JP2011227908A - Data processing - Google Patents
Data processing Download PDFInfo
- Publication number
- JP2011227908A JP2011227908A JP2011120250A JP2011120250A JP2011227908A JP 2011227908 A JP2011227908 A JP 2011227908A JP 2011120250 A JP2011120250 A JP 2011120250A JP 2011120250 A JP2011120250 A JP 2011120250A JP 2011227908 A JP2011227908 A JP 2011227908A
- Authority
- JP
- Japan
- Prior art keywords
- emulation
- data
- emulated
- processing unit
- processing units
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Bus Control (AREA)
Abstract
Description
本発明はデータ処理に関する。 The present invention relates to data processing.
データ処理の例として、電子ゲームが良く知られており、そのような電子ゲームは磁気ディスクや光ディスクあるいは光磁気ディスクなどの様々な配布媒体によって供給できる。通常のコンピュータや専用のゲーム機を用いて、これらのゲームをプレイすることができる。 As an example of data processing, an electronic game is well known, and such an electronic game can be supplied by various distribution media such as a magnetic disk, an optical disk, or a magneto-optical disk. These games can be played using a normal computer or a dedicated game machine.
あるプロセッサの動作を別のプロセッサ上でエミュレートする必要がある場合がある。すなわち、エミュレーション側プロセッサはネイティブなプログラムコードを実行するのであるが、そのネイティブなプログラムコードの構成は、ネイティブな命令あるいはネイティブな命令のグループが、被エミュレーション側のシステムに関するデータ処理命令と同じ効果を有するように構成されている。 It may be necessary to emulate the operation of one processor on another. In other words, the emulation side processor executes native program code, but the configuration of the native program code is such that the native instruction or group of native instructions has the same effect as the data processing instruction for the emulated system. It is comprised so that it may have.
このような必要が生じる状況として、データプロセッサが製造者によって新しい「世代」へと(例えば、新しいハードウェアアーキテクチャや命令プロトコルへと)アップグレードされたのに、その製造者が依然として古い世代の装置に関係するソフトウェアが使用できること(いわゆる、下位互換性)を望む場合がある。多くの場合、これを実現する唯一の方法は、新世代の装置がエミュレーションソフトウェアを実行し、エミュレーションソフトウェアが旧世代の装置に関する命令に応じて動作することである。この場合、勿論、ネイティブなソフトウェアを実行する場合に比べて、エミュレーションを実行するほうがプロセッサを通常より多く使用することが認められているが、データ処理ハードウェア性能の世代による進歩の全体的な傾向として、処理オーバーヘッドの増加が普通に扱えるようになっている。 A situation where such a need arises is that a data processor has been upgraded by a manufacturer to a new “generation” (eg, to a new hardware architecture or instruction protocol), but the manufacturer is still an older generation device. It may be desired that the software involved can be used (so-called backward compatibility). In many cases, the only way to accomplish this is for the new generation of devices to run emulation software and the emulation software to operate in response to instructions for the old generation of devices. In this case, of course, it is allowed to use more processor than usual to perform emulation compared to running native software, but the overall trend of progress by generation of data processing hardware performance As a result, an increase in processing overhead can be handled normally.
本発明は、複数の相互に接続された被エミュレーション側プロセシングユニットを有する被エミュレーション側プロセッサの動作をエミュレートするように配列された複数の相互に接続された実際のプロセシングユニットを有するデータプロセッサであって、
少なくとも1つの被エミュレーション側プロセシングユニットが、2つ以上の実際のプロセシングユニットの寄与によってエミュレートされ、
少なくとも1つの実際のプロセシングユニットが、2つ以上の被エミュレーション側プロセシングユニットのエミュレーションに寄与する、
ことを特徴とするデータプロセッサを提供する。
The present invention is a data processor having a plurality of interconnected actual processing units arranged to emulate the operation of an emulated processor having a plurality of interconnected processed processing units. And
At least one emulated processing unit is emulated by the contribution of two or more actual processing units,
At least one actual processing unit contributes to the emulation of two or more emulated processing units;
A data processor is provided.
本発明は、マルチプロセッサアーキテクチャを使用するエミュレーションシステムに関連する問題を扱うものであり、特に(しかし、それに限定するわけではないが)、(エミュレーション側システムにおける)プロセッサ間の通信がエミュレーション側システムの一般的な動作速度に比較して遅い場合を扱ったものである。本発明は、ある被エミュレーション側プロセシングユニットのエミュレーションを2つ(あるいはそれ以上の)エミュレーション側プロセシングユニットに分割することにより、それら被エミュレーション側プロセシングユニットのエミュレーション間の通信を提供するために必要なメッセージトラフィックを減少できることを認識したものである。同様に、通常互いの通信量の多い複数のプロセシングユニットのエミュレーションを(単一のエミュレーション側プロセシングユニット上に)グルーピングすることにより、それら被エミュレーション側プロセシングユニットのエミュレーション間の通信を提供するために必要なメッセージトラフィックをやはり大幅に減少することができる。これらの手段を共に採用することにより、より高速でより効率的なエミュレーションを提供することができる。 The present invention addresses the problems associated with emulation systems that use multiprocessor architectures, and in particular (but not limited to), communication between processors (in an emulation-side system) It deals with the case where it is slower than the general operation speed. The present invention divides the emulation of a given emulation processing unit into two (or more) emulation processing units, thereby providing a message necessary for providing communication between the emulations of the emulation processing units. Recognizing that traffic can be reduced. Similarly, it is usually necessary to group the emulations of multiple processing units that are busy with each other (on a single emulation-side processing unit) to provide communication between the emulations of the emulation-side processing units. Message traffic can still be significantly reduced. By adopting these means together, faster and more efficient emulation can be provided.
本発明の他の様々な側面および特徴は、添付した請求の範囲に記載されている。 Various other aspects and features of the present invention are set forth in the appended claims.
添付図面を参照して、本発明の実施形態について以下に説明するが、それら実施形態は例示のためだけのものである。 Embodiments of the present invention are described below with reference to the accompanying drawings, which are for illustration only.
図を参照すると、図1はプレイステーション2コンピュータゲーム機の全体的なシステムアーキテクチャを概略的に示したものである。システムユニット10が設けられており、様々な周辺デバイスをシステムユニットに接続することができる。
Referring to the figure, FIG. 1 schematically illustrates the overall system architecture of a PlayStation 2 computer game machine. A
システムユニット10は、エモーションエンジン100と、グラフィックスシンセサイザ200と、ダイナミックランダムアクセスメモリ(DRAM)を有するサウンドプロセッサユニット300と、読取り専用メモリ(ROM)400と、コンパクトディスク(CD)/DVDディスク(DVD)読取り装置450と、ラムバスDRAM(RDRAM)ユニット500と、専用RAM750を備えた入出力プロセッサ(IOP)700とを有している。オプションとして、外部ハードディスクドライブ(HDD)390を接続することができる。
The
入出力プロセッサ700は、2つのユニバーサルシリアルバス(USB)ポート715と図示していないiLinkあるいはIEEE1394ポート(iLinkはソニーによってIEEE1394規格を実現したものである)とを有している。IOP700は、すべてのUSB、iLinkおよびゲームコントローラのデータトラフィックを処理する。例えば、ユーザがゲームをプレイしているとき、IOP700はゲームコントローラからデータを受け取り、受け取ったデータをエモーションエンジン100に向けて送信し、エモーションエンジン100はそれに応じてゲームの現在状態を更新する。IOP700は、速いデータ転送速度を達成するために、直接メモリアクセス(DMA)アーキテクチャを有している。DMAは、データをCPUを介して渡さずに、メインメモリから装置にデータを転送することが関係している。USBインタフェースはオープンホストコントローラインタフェース(OHCI)に準拠しており、1.5Mbpsないし12Mbpsのデータ転送速度を処理することができる。これらのインタフェースを設けることにより、プレイステーション2は、カムコーダーなどのディジタルビデオカセットレコーダ(VCR)、ディジタルカメラ、マイク、プリンタ、キーボードやマウスやジョイスティックなどの入力装置などの周辺デバイスに適合できる可能性を有している。
The input /
一般に、USBポート715に接続された周辺デバイスとのデータ通信を成功裏に実現するためには、デバイスドライバなどの適切なソフトウェアを提供する必要がある。デバイスドライバ技術は良く知られているので、ここでは詳しく説明しないが、ここに記載された実施例においてデバイスドライバや類似のソフトウェアが必要とされるであろうことは、当業者には知られている。
In general, in order to successfully realize data communication with a peripheral device connected to the
本実施例では、USBマイク730がUSBポートに接続されている。USBマイク730は手持ち式のマイクでもよいし、オペレータが装着するヘッドセットの一部をなしていてもよいことは理解されるであろう。ヘッドセットを装着することの利点は、オペレータの手が自由に他の動作ができることである。マイクはアナログ−ディジタル変換器(ADC)と基本的なハードウェアベースのリアルタイムデータ圧縮符号化装置とを含んでいるので、マイク730によってオーディオデータはプレイステーション2システムユニット10で復号するのに適切なフォーマットで、例えばストリーミング圧縮オーディオフォーマットで、USBポート715に送信される。
In this embodiment, a
USBポートを別にすると、他の2つのポート705、710は独自仕様のソケットであり、ゲーム関連の情報を記憶するための独自仕様の不揮発性RAMメモリカード720や、手持ち式のゲームコントローラ725、あるいは手持ち式コントローラを模倣するダンスマットなどのデバイス(図示されていない)を接続することができる。
Aside from the USB port, the other two
システムユニット10は、ネットワークへのインタフェース(例えば、イーサネット(登録商標)インタフェース)を提供するネットワークアダプタ805に接続することができる。このネットワークは、例えば、LAN、WAN、あるいはインターネットとすることができる。ネットワークは一般のネットワークでもよいし、ゲーム関連の通信専用のネットワークでもよい。ネットワークアダプタ805により、データを同じネットワークに接続された他のシステムユニット10へ送信し、また他のシステムユニット10から受信することができる(他のシステムユニット10も対応するネットワークアダプタ805を備えている)。
The
エモーションエンジン100は、ゲームアプリケーション用の3次元(3D)グラフィックスの効率的なシミュレーションのために特別に設計された128ビットの中央演算処理装置(CPU)である。エモーションエンジンの構成要素には、データバス、キャッシュメモリ(CPUコアの一部)、およびレジスタが含まれており、そのすべては128ビットタイプである。これにより、大量のマルチメディアデータの高速処理が容易となる。比較として、従来のPCは64ビットの基本データ構造を有している。プレイステーション2の浮動小数点計算の性能は6.2ギガフロップス(GFLOPS)である。エモーションエンジンはまたMPEG2デコーダ回路を有しており、それにより3DグラフィックスデータとDVDデータの同時処理が可能である。エモーションエンジンは、数学的変換および平行移動を含む幾何学的な計算を実行し、また、シミュレーション物体の物理に関連した計算、例えば、2つの物体間の摩擦の計算、を実行する。エモーションエンジンは、画像レンダリングコマンドのシーケンスを生成し、それらのシーケンスは、後に、グラフィックスシンセサイザ200により利用される。画像レンダリングコマンドは、ディスプレイリストの形で出力される。ディスプレイリストは、グラフィックスシンセサイザに対して画面上でどの基本グラフィックスオブジェクト(例えば、点、線、三角形、スプライト)をどの座標位置に描くべきかを指定する描画コマンドのシーケンスである。それで、典型的なディスプレイリストは、頂点を描くコマンド、多角形(ポリゴン)の面に陰影付けするコマンド等を有している。エモーションエンジン100は複数のディスプレイリストを非同期的に生成することができる。
グラフィックスシンセサイザ200は、エモーションエンジン100により生成されたディスプレイリストのレンダリングを実行するビデオアクセラレータである。グラフィックスシンセサイザ200はグラフィックスインタフェースユニット(GIF)を含んでおり、GIFは複数のディスプレイリストを処理し、追跡し、管理する。グラフィックスシンセサイザ200のレンダリング機能は幾つかの代替的な標準出力画像フォーマット(即ち、NTSC/PAL、高品位テレビおよびVESA)に適合した画像データを生成することができる。一般に、グラフィックスシステムのレンダリング性能は、ピクセルエンジンとビデオメモリ(どちらもグラフィックスプロセッサ内に配置されている)の間のメモリ帯域幅によって定義されている。従来のグラフィックスシステムは外部ビデオランダムアクセスメモリ(VRAM)を用いており、そのVRAMはオフチップバスによってピクセルロジックに接続されているので、利用できる帯域幅は制限されがちである。しかし、プレイステーション2のグラフィックスシンセサイザ200は単一の高性能チップ上にピクセルロジックとビデオメモリを設けているので、毎秒38.4ギガバイトという比較的大きなメモリアクセス帯域幅が可能である。グラフィックスシンセサイザは、理論的には、毎秒7千5百万ポリゴンというピーク描画性能を達成することができる。テクスチャ、照明および透明度など一そろいの効果を用いる場合でも、持続的に毎秒2千万ポリゴンの速度で連続的に描画することができる。したがって、グラフィックスシンセサイザ200はフィルム品質の画像を描くことができる。
The
サウンドプロセッサユニット(SPU)300は、事実上、本システムのサウンドカードであり、ディジタルシアターサラウンド(DTS、登録商標)サウンドや、DVD用のサウンドフォーマットであるAC−3(ドルビーディジタルとしても知られている)などの3Dディジタルサウンドを扱うことができる。 The sound processor unit (SPU) 300 is effectively the sound card of this system, also known as digital theater surround (DTS®) sound, or AC-3 (Dolby Digital), a sound format for DVDs. 3D digital sound can be handled.
付属スピーカ装置310を備えたビデオモニタやテレビなどのディスプレイ/サウンド出力デバイス305が接続されており、グラフィックスシンセサイザ200およびサウンド処理ユニット300からのビデオ信号およびオーディオ信号を受信する。
A display /
エモーションエンジン100をサポートするメインメモリは、ラムバス社(Rambus Incorporated)からライセンスされたRDRAM(ラムバスダイナミックランダムアクセスメモリ)モジュール500である。このRDRAMメモリサブシステムは、RAMと、RAMコントローラと、RAMをエモーションエンジン100に接続するバスとを有している。
The main memory that supports the
図2は、図1のエモーションエンジン100のアーキテクチャを概略的に示す図である。エモーションエンジン100は、相互に接続されて所望の機能集合を実現する幾つかの処理ユニットの総称である。この文脈の観点からすれば、エモーションエンジンは、浮動小数点演算ユニット(FPU)104と、中央演算処理装置(CPU)コア102と、ベクトル演算ユニット0(VU0)106と、ベクトル演算ユニット1(VU1)108と、グラフィックスインタフェースユニット(GIF)110と、割り込みコントローラ(INTC)112と、タイマーユニット114と、直接メモリアクセスコントローラ116と、画像データプロセッサユニット(IPU)118と、ダイナミックランダムアクセスメモリコントローラ(DRAMC)120と、サブバスインタフェース(SIF)122とを有しており、これらすべての個々の処理ユニットは128ビットのメインバス124によって接続されている。
FIG. 2 schematically illustrates the architecture of the
CPUコア102は、300MHz(実際には294.912MHzであるが、この数字の略記として300MHzが用いられる傾向がある)のクロックで動作する128ビットプロセッサである。CPUコアはDRAMC120を介して32MBのメインメモリにアクセスできる。CPUコア102の命令セットはMIPS III RISCに基づいており、幾らかのMIPS IV RISC命令と付加的なマルチメディア命令を備えている。MIPS IIIおよびIVは、MIPSテクノロジーズ社(Mips Technologies, Inc)の所有する縮小命令セットコンピュータ(RISC)命令セットアーキテクチャである。標準命令は64ビットの2ウェイスーパースケーラーであり、これは2つの命令が同時に実行できることを意味している。他方、マルチメディア命令は、2つのパイプラインを介して128ビット命令を利用する。CPUコア102は、16KBの命令キャッシュと、8KBのデータキャッシュと、16KBのスクラッチパッドRAMとを有しており、スクラッチパッドRAMは専用バスでCPUに接続されたキャッシュの一部であり、メインバスからは独立してデータアクセスが可能である。
The
FPU104はCPUコア102に対して第一のコプロセッサとしての役割を果たす。ベクトル演算ユニット106は第二のコプロセッサとして機能する。FPU104は、浮動小数点除算計算器(FDIV)を有している。ベクトル演算ユニット106および108は数学演算を実行するが、本質的に、ベクトル方程式の乗算および加算の評価が非常に高速な特化したFPUである。それらベクトル演算ユニットは、加算および乗算の演算用の浮動小数点乗加算器(FMAC)と除算および平方根演算用の浮動小数点除算器(FDIV)とを用いている。FMACは32ビット値に対して演算を行い、従って、演算が(4個の32ビット値からなる)128ビット値に対して実行される場合、演算は4部分について同時に実行することができる。例えば、2つのベクトルの加算を同時に行なうことができる。ベクトル演算ユニット(VU)は、マイクロプログラムを格納するための内蔵メモリを有しており、また、ベクトルインタフェースユニット(VIF)(対応するベクトル演算ユニットと同じ番号で参照される)を介して、本システムの残りの部分とのインタフェースを取る。ベクトル演算ユニット0 106は、専用の128ビットバスを介してCPUコア102に対するコプロセッサとして機能することができるので、本質的に、第二の特化したFPUである。他方、ベクトル演算ユニット1 108は、グラフィックスシンセサイザ200に対する専用バスを有しており、従って、完全に別個のプロセッサと考えることができる。2つのベクトル演算ユニットを設けることにより、ソフトウェアの開発者は作業をCPUの異なる部分の間で分割することができ、ベクトル演算ユニットは直列接続でも並列接続でも用いることができる。
The
ベクトル演算ユニット0 106は、4個のFMACと1個のFDIVとを有している。ベクトル演算ユニット0は、コプロセッサ接続によってCPUコア102に接続されている。ベクトル演算ユニット0は、データ用の4KBのベクトル演算ユニットメモリと、命令用の4KBのマイクロメモリとを有している。ベクトル演算ユニット0 106は、表示する画像に関連した物理計算を実行するのに有用である。ベクトル演算ユニット0 106はCPUコア102と共に、主に、パターン化されていない幾何学的処理を実行する。
The
ベクトル演算ユニット1 108は5個のFMACと1個のFDIVとを有している。ベクトル演算ユニット1はCPUコア102への直接的な経路を有していないが、GIFユニット110への直接的な経路を有している。ベクトル演算ユニット1は、データ用の16KBのベクトル演算ユニットメモリと、命令用の16KBのマイクロメモリとを有している。ベクトル演算ユニット1 108は変換を実行するのに有用である。ベクトル演算ユニット1は、パターン化された幾何学的処理を主に実行し、生成されたディスプレイリストを直接GIF110に出力する。
The
GIF110はグラフィックスシンセサイザ200へのインタフェースユニットである。GIF110は、ディスプレイリストパケットの最初にあるタグスペシフィケーションに従ってデータを変換し、描画コマンドをグラフィックスシンセサイザ200に転送すると共に、相互に複数の転送のアービトレーションを行なう。割り込みコントローラ(INTC)112は、DMAC116を除く周辺デバイスからの割り込みのアービトレーションを行なう。
The
タイマーユニット114は、16ビットカウンタを備えた4個の独立したタイマーを有している。これらのタイマーはバスクロック(1/16あるいは1/256の間隔)あるいは外部クロックによって駆動される。DMAC116は、メインメモリとスクラッチパッドRAMとの間の、あるいはメインメモリかスクラッチパッドRAMと周辺装置との間のデータ転送を処理する。同時に、DMAC116はメインバス124のアービトレーションを行なう。DMAC116の性能の最適化はエモーションエンジンの性能を向上するための主要な方法である。画像処理ユニット(IPU)118は、圧縮された動画およびテクスチャ画像を展開するために用いられる画像データプロセッサである。画像処理ユニット118はマクロブロックの復号、色空間の変換、そしてベクトル量子化を実行する。最後に、サブバスインタフェース(SIF)122は、IOP700へのインタフェースユニットである。IPUは、サウンドチップや記憶装置などのI/Oデバイスを制御するために、自分自身のメモリとバスを有している。
The
図3は、グラフィックスシンセサイザ200の構成を概略的に示す図である。グラフィックスシンセサイザは、ホストインタフェース202と、ピクセルパイプライン206と、メモリインタフェース208と、フレームページバッファ214およびテクスチャページバッファ216を含むローカルメモリ212と、ビデオ変換器210とを有している。
FIG. 3 is a diagram schematically showing the configuration of the
ホストインタフェース202は、ホスト(この場合はGIF110)との間でデータを転送する。ホストからの描画データおよびバッファデータはどちらもこのインタフェースを通過する。ホストインタフェース202からの出力はグラフィックスシンセサイザ200に供給され、グラフィックスシンセサイザ200は、グラフィックスを展開して、エモーションエンジン100から受信した頂点情報に基づいてピクセルを描き、各ピクセルについてRGBA値、デプス値(Z値)、テクスチャ値およびフォグ値などの情報を計算する。RGBA値は、赤、緑、青(RGB)の色成分および画像オブジェクトの不透明度を示すA成分(アルファ成分)を指定する。アルファ値は完全な透明から完全な不透明までの範囲の値を取り得る。ピクセルデータはピクセルパイプライン206に供給され、ピクセルパイプライン206はテクスチャマッピング、フォギング、およびアルファブレンディングなどの処理を実行し、計算されたピクセル情報に基づいて最終的な描画色を決定する。
The
ピクセルパイプライン206は16個のピクセルエンジンPE1,PE2,...,PE16を有しているので、最大で16個のピクセルを同時に処理することができる。ピクセルパイプライン206は150MHz(実際には294.912/2MHz)で動作し、32ビットカラーで、32ビットZバッファを備えている。メモリインタフェース208はローカルグラフィックスシンセサイザメモリ212に対してデータの読み書きを行なう。メモリインタフェース208は、ピクセル演算の最後に描画ピクセル値(RGBAおよびZ)をメモリに書き込み、フレームバッファ214のピクセル値をメモリから読み出す。フレームバッファ214から読み出されたこれらのピクセル値は、ピクセルテストあるいはアルファブレンディングに用いられる。メモリインタフェース208はまた、ローカルメモリ212からフレームバッファの現行内容に関するRGBA値を読み出す。ローカルメモリ212は、グラフィックスシンセサイザ200に内蔵された32Mビット(4MB)メモリである。ローカルメモリ212は、フレームバッファ214とテクスチャバッファ216とZバッファ215とに構成することができる。フレームバッファ214はビデオメモリの一部であり、色情報などのピクセルデータが格納される。
The
グラフィックスシンセサイザは、2D−3Dテクスチャマッピング工程を用いて3D図形に対して視覚的ディテールを付与する。各テクスチャは3D画像オブジェクトの周りに巻きつけて、伸縮させ、歪ませることにより3Dグラフィック効果を与えることができる。テクスチャバッファは、画像オブジェクト用のテクスチャ情報を格納するために用いられる。Zバッファ215(デプスバッファとしても知られている)は、ピクセルのデプス情報を格納するために用いることのできるメモリである。画像は、グラフィックス基本要素あるいはポリゴン(多角形)として知られる基本的なビルディングブロックから構成されている。ポリゴンがZバッファリングによってレンダリングされる場合、そのピクセルの各々のデプス値はZバッファに格納されている対応値と比較される。Zバッファに格納されている値が新しいピクセル値のデプス値以上であれば、ピクセルは可視であると判断され、そのピクセルはレンダリングされ、Zバッファは新しいピクセルデプス値によって更新される。しかし、Zバッファのデプス値が新しいピクセルデプス値より小さい場合は、その新しいピクセル値は既に描画されているものに隠されているので、レンダリングされない。あるいは、Zバッファテストを利用することができ、(a)新しいピクセルは常に以前の値に取って代わるか、(b)新しいピクセルのデプスがZバッファに格納されている以前の値以上であれば、新しいピクセルが以前のピクセル値に取って代わる。 The graphics synthesizer uses a 2D-3D texture mapping process to give visual details to 3D figures. Each texture can be wrapped around a 3D image object, stretched, and distorted to give a 3D graphic effect. The texture buffer is used to store texture information for the image object. Z buffer 215 (also known as depth buffer) is a memory that can be used to store pixel depth information. An image is composed of basic building blocks known as graphics basic elements or polygons. When a polygon is rendered by Z buffering, the depth value of each of the pixels is compared with the corresponding value stored in the Z buffer. If the value stored in the Z buffer is greater than or equal to the depth value of the new pixel value, the pixel is determined to be visible, the pixel is rendered, and the Z buffer is updated with the new pixel depth value. However, if the depth value of the Z buffer is smaller than the new pixel depth value, the new pixel value is hidden by what has already been drawn and is not rendered. Alternatively, a Z buffer test can be used: (a) a new pixel always replaces the previous value, or (b) if the new pixel depth is greater than or equal to the previous value stored in the Z buffer. , The new pixel replaces the previous pixel value.
ローカルメモリ212は、フレームバッファとZバッファにアクセスするための1024ビットの読み出しポートと1024ビットの書き込みポート、そしてテクスチャの読み出しのための512ビットのポートを備えている。ビデオ変換器210は、フレームメモリの内容を指定された出力フォーマットで表示するように動作することができる。
The
次に、図1ないし図3を参照して説明された本システムのエミュレーションを可能とする構成について説明する。注意すべき点として、便宜上、図1ないし図3に示された処理ユニットを「被エミュレーション側」処理ユニットとして言及し、一方、以下に説明されるエミュレーションシステムでは、その(エミュレーション)システムの処理ユニットは「エミュレーション側」処理ユニットとして言及することにする。生じ得るどんな混同をも避けるために、処理ユニットのどちらの種類も(「被エミュレーション側」ユニットも「エミュレーション側」ユニットも)物理的な処理ユニットであって、それらの処理ユニットに適切なネイティブなソフトウェアをそれぞれ実行できることに注意すべきである。 Next, a configuration that enables emulation of the system described with reference to FIGS. 1 to 3 will be described. It should be noted that for the sake of convenience, the processing unit shown in FIGS. 1 to 3 is referred to as the “emulated side” processing unit, whereas in the emulation system described below, the processing unit of that (emulation) system. Will be referred to as the “emulation side” processing unit. To avoid any confusion that may arise, both types of processing units (both “emulated” units and “emulation side” units) are physical processing units and are appropriate native to those processing units. It should be noted that each software can be executed.
図4は、ソニー(登録商標)のプレイステーション3(登録商標)娯楽装置の全体的なシステムアーキテクチャを概略的に示す図である。システムユニット910には、そのシステムユニットに接続可能な様々な周辺デバイスが提供されている。
FIG. 4 schematically illustrates the overall system architecture of a Sony® PlayStation 3® entertainment device. The
システムユニット910は、セルプロセッサ1100と、ラムバス(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1500と、専用ビデオランダムアクセスメモリ(VRAM)ユニット1250を備えたリアリティシンセサイザグラフィックスユニット1200と、I/Oブリッジ1700とを有している。
The
システムユニット910はまた、ディスク1440を読み取るためのブルーレイ(登録商標)ディスクBD−ROM(登録商標)光ディスク読取り装置1430と、取外し可能スロットインハードディスクドライブ(HDD)1400とを有しており、それらにはI/Oブリッジ1700を介してアクセスすることができる。オプションとして、システムユニットはまた、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(登録商標)メモリカードなどを読み取るためのメモリカード読取装置1450を有しており、同様にI/Oブリッジ1700を介してアクセスすることができる。
The
I/Oブリッジ1700はまた、6個のユニバーサルシリアルバス(USB)2.0ポート1710と、ギガビットイーサネット(登録商標)ポート1720と、IEEE802.11b/gワイヤレスネットワーク(Wi−Fi)ポート1730と、7つのブルートゥース接続をサポートできるブルートゥース(登録商標)ワイヤレスリンクポート1740とに接続されている。
The I /
動作の際に、I/Oブリッジ1700はすべてのワイヤレス、USBそしてイーサネット(登録商標)のデータを扱うが、それには1つ以上のゲームコントローラ1751からのデータが含まれる。例えば、ユーザがゲームをプレイしている場合、I/Oブリッジ1700はブルートゥースリンクを介してゲームコントローラ1751からデータを受信し、そのデータをセルプロセッサ1100へと向け、セルプロセッサ1100はそれに従ってゲームの現在状態を更新する。
In operation, the I /
ワイヤレスポート、USBポート、そしてイーサネット(登録商標)ポートによって、ゲームコントローラ1751のほかに他の周辺デバイスが接続できるが、そのような周辺デバイスとして、リモコン1752、キーボード1753、マウス1754、ソニープレイステーションポータブル(登録商標)娯楽装置などのポータブル娯楽装置1755、アイトイ(登録商標)ビデオカメラなどのビデオカメラ1756、マイクヘッドセット1757などがある。従って、そのような周辺デバイスは、原理的には、システムユニット910に無線で接続できる。例えば、ポータブル娯楽装置1755はWi−Fiアドホック接続により通信することができ、マイクヘッドセット1757はブルートゥースリンクによって通信することができる。
In addition to the
これらのインタフェースが設けられていることは、プレイステーション3装置が、ディジタルビデオレコーダ(DVR)、セットトップボックス、ディジタルカメラ、ポータブルメディアプレイヤー、ボイスオーバーIP電話、携帯電話、プリンタ、スキャナなどの他の周辺デバイスにも対応できる可能性があることを意味する。 The provision of these interfaces means that the PlayStation 3 device has other peripherals such as a digital video recorder (DVR), set-top box, digital camera, portable media player, voice over IP phone, mobile phone, printer, scanner, etc. It means that there is a possibility that the device can be supported.
それに加えて、USBポート1710を介してレガシーメモリカード読取装置1410をシステムユニットに接続し得るので、プレイステーション(登録商標)あるいはプレイステーション2(登録商標)装置によって使用される種類のメモリカード1420の読み取りが可能になる。
In addition, a legacy
本実施形態では、ゲームコントローラ1751は、ブルートゥースリンクによってシステムユニット910と無線通信を行なうことができる。しかし、その代わりとして、ゲームコントローラ1751をUSBポートに接続してもよく、それによればゲームコントローラ1751のバッテリを充電する電源を供給できる。1個以上のアナログジョイスティックや従来のコントロールボタンに加えて、ゲームコントローラは、各軸での平行移動および回転に対応する6自由度の動きを感知できる。その結果、従来のボタンあるいはジョイスティックによるコマンドに加えあるいは替えて、ゲームコントローラのユーザによるジェスチャーおよび動作をゲームに対する入力に変換することができる。オプションとして、プレイステーションポータブル装置などワイヤレスで使用可能な他の周辺デバイスをコントローラとして使用することができる。プレイステーションポータブル装置の場合、付加的なゲーム情報あるいは制御情報(例えば、制御命令あるいはゲームオーバーまでリトライできる数)を装置の画面上に提供することができる。他の代替的あるいは補助的なコントロール装置を用いることもでき、例えば、ダンスマット(図示されていない)、ライトガン(図示されていない)、ステアリングホイールとペダル(図示されていない)、あるいは迅速応答クイズゲーム用の1個あるいは数個の大きなボタンなどのオーダーメイドのコントローラなどを用いることもできる。
In the present embodiment, the
リモコン1752もブルートゥースリンクによってシステムユニット910との無線通信を行なうことができる。リモコン1752は、ブルーレイディスクBD−ROM読取り装置1430の操作およびディスクコンテンツの操作に適切なコントロールを有している。
The
ブルーレイディスクBD−ROM読取り装置1430は、従来の記録済みのあるいは追記型のCDならびにいわゆるスーパーオーディオCDに加えて、プレイステーションおよびプレイステーション2装置に適合したCD−ROMの読み取りを行なうことができる。読取り装置1430はまた、従来の記録済みのあるいは追記型のDVDに加えて、プレイステーション2およびプレイステーション3装置に適合したDVD−ROMの読み取りを行なうこともできる。更に、読取り装置1430は、従来の記録済みのあるいは追記型のブルーレイディスクに加えて、プレイステーション3に適合したBD−ROMの読み取りを行なうことができる。
The Blu-ray Disc BD-
システムユニット910は、表示画面1305および1以上のスピーカ1310を有するモニタやテレビなどのディスプレイ/サウンド出力デバイス1300にオーディオコネクタおよびビデオコネクタを介してオーディオおよびビデオを提供することができる。それらのオーディオおよびビデオは、プレイステーション3装置がリアリティシンセサイザグラフィックスユニット1200によって生成あるいは復号したものである。オーディオコネクタ1210は従来のアナログならびにディジタル出力を含むことができ、他方、ビデオコネクタ1220はコンポーネントビデオ、S−ビデオ、複合ビデオ、1以上の高精細度マルチメディアインタフェース(HDMI)出力を様々に含むことができる。その結果、ビデオ出力は、PAL方式あるいはNTSC方式、あるいは720p、1080i、1080pでの高精細度のフォーマットとすることができる。
The
オーディオ処理(生成、復号など)はセルプロセッサ1100によって実行される。プレイステーション3装置のオペレーティングシステムはドルビー(登録商標)5.1サラウンドサウンド、ドルビー(登録商標)シアターサラウンド(DTS)、およびブルーレイ(登録商標)ディスクからの7.1サラウンドサウンドの復号をサポートしている。
Audio processing (generation, decoding, etc.) is performed by the
本実施形態では、ビデオカメラ1756は1個の電荷結合素子(CCD)と、LEDインジケータと、ハードウェアベースのリアルタイムデータ圧縮符号化装置とを有しているので、圧縮されたビデオデータを、画像内ベースのMPEG(motion picture expert group)規格など、システムユニット910による復号に適したフォーマットで送信することができる。カメラのLEDインジケータはシステムユニット910からの適切な制御データに応じて光を照らすようにされており、例えば、照明条件が悪いことなどを知らせる。ビデオカメラ1756の実施形態は、USB、ブルートゥース、あるいはWi−Fi通信ポートを介してなど、様々な仕方でシステムユニット910に接続できる。ビデオカメラの実施形態は、関連したマイクを含むことができ、オーディオデータを送信することもできる。ビデオカメラの実施形態では、CCDの解像度は高精細ビデオキャプチャに適したものとすることができる。使用時に、ビデオカメラによりキャプチャされた画像をゲーム内に組み込んだり、ゲームを制御する入力として解釈したりすることができる。
In this embodiment, the
一般に、システムユニット910の通信ポートの1つを介してビデオカメラやリモコンなどの周辺デバイスとのデータ通信が成功裏に実現されるためには、デバイスドライバなどの適切なソフトウェアが提供されなければならない。デバイスドライバ技術は良く知られているので、ここでは詳細に説明しないが、上記本実施形態においてデバイスドライバあるいは同様のソフトウェアインタフェースが必要であることは当業者には既知であろう。
In general, in order to successfully implement data communication with a peripheral device such as a video camera or remote control via one of the communication ports of the
次に図5を参照すると、セルプロセッサ1100のアーキテクチャは、4つの基本構成要素、すなわち、メモリコントローラ1160およびデュアルバスインタフェースコントローラ1170A,1170Bを有する外部入出力構造と、パワープロセシングエレメント(PPE)1150として言及されるメインプロセッサと、シナジスティックプロセシングエレメント(SPE)1110A−1110Hとして言及される8個のコプロセッサと、エレメントインターコネクトバス1180として言及され、前記構成要素を接続する循環データバスとを有している。セルプロセッサの全体としての浮動小数点演算性能は218GFLOPSであり、これに比較してプレイステーション2装置のエモーションエンジンは6.2GFLOPSである。
Referring now to FIG. 5, the architecture of
パワープロセシングエレメント(PPE)1150は、3.2GHzの内部クロックで動作する両方向同時マルチスレッディングパワー970対応パワーPCコア(PPU)1155をベースにしたものである。PPE1150は、512kBの二次(L2)キャッシュと32kBの一次(L1)キャッシュとを有している。PPE1150は、クロックサイクル毎に単精度演算を8回実行でき、言い換えれば、3.2GHzでは25.6GFLOPSとなる。PPE1150の主な役割はシナジスティックプロセシングエレメント1110A−1110Hに対するコントローラとして機能することであり、シナジスティックプロセシングエレメント1110A−1110Hが計算の作業負荷の大部分を扱う。動作の際に、PPE1150はジョブ待ち行列を保持し、シナジスティックプロセシングエレメント1110A−1110Hのためのジョブをスケジュールし、その進展をモニタする。その結果、シナジスティックプロセシングエレメント1110A−1110Hの各々はカーネルを実行するが、カーネルの役割はジョブをフェッチし、実行し、PPE1150と同期することである。
The power processing element (PPE) 1150 is based on a power PC core (PPU) 1155 that supports a bidirectional multi-threading power 970 that operates with an internal clock of 3.2 GHz. The
各シナジスティックプロセシングエレメント(SPE)1110A−1110Hは、それぞれのシナジスティックプロセシングユニット(SPU‘−これは、上記サウンドプロセシングユニットと区別するため)1120A−1120Hと、それぞれのメモリフローコントローラ(MFC)1140A−1140Hとを有しており、各メモリフローコントローラMFCの方は、それぞれのダイナミックメモリアクセスコントローラ(DMAC)1142A−1142Hと、それぞれのメモリマネジメントユニット(MMU)1144A−1144Hと、バスインタフェース(図示されていない)とを有している。各SPU’1120A−1120Hは、3.2GHzのクロックで駆動されるRISCプロセッサであり、256kBのローカルRAM1130A−1130Hを有しているが、そのローカルRAMは原理的には4GBまで拡張可能である。各SPEは、理論的に25.6GFLOPSの単精度演算性能を実現できる。SPU‘は、単一クロックサイクルで、4つの単精度浮動小数点数、あるいは4つの32ビット数、あるいは8つの16ビット整数の演算ができる。同じクロックサイクルで、SPU’はメモリオペレーションも実行できる。SPU‘1120A−1120HはシステムメモリXDRAM1500に直接アクセスすることはない。SPU’1120A−1120Hにより作成された64ビットアドレスはMFC1140A−1140Hに引き渡され、MFC1140A−1140HがそのDMAコントローラ1142A−1142Hに対してエレメントインターコネクトバス1180ならびにメモリコントローラ1160を介してメモリにアクセスするように命令する。
Each synergistic processing element (SPE) 1110A-1110H includes a respective synergistic processing unit (SPU'-to distinguish it from the sound processing unit) 1120A-1120H and a respective memory flow controller (MFC) 1140A- Each memory flow controller MFC includes a dynamic memory access controller (DMAC) 1142A-1142H, a respective memory management unit (MMU) 1144A-1144H, and a bus interface (not shown). Not). Each SPU'1120A-1120H is a RISC processor driven by a 3.2 GHz clock and has a 256 kB
エレメントインターコネクトバス(EIB)1180はセルプロセッサ1100内の論理的に循環する通信バスであり、前述のプロセッサエレメント、即ち、PPE1150と、メモリコントローラ1160と、デュアルバスインタフェース1170A,1170Bと、8個のSPE1110A−1110Hとを、すなわち全部で12の関与エレメントを、接続している。関与エレメントは毎クロックサイクル8バイトの速度でバスに対して同時に読み書きすることができる。各SPE1110A−1110Hは、長い読み出しあるいは書き込みシーケンスをスケジュールするために、先に述べたようにDMAC1142A−1142Hを有している。EIBは4つのチャネルを有しており、2つずつ時計回りと反時計回りの方向である。従って、12の関与エレメントに関して、任意の2つの関与エレメント間の最長のステップワイズデータフローは適切な方向に6ステップである。従って、12スロットに対する理論的にピークの瞬時EIB帯域幅は毎クロック96B(バイト)であり、それは関与エレメント間のアービトレーションによってフルに利用した場合である。これは、3.2GHzのクロック速度の場合の理論的ピーク帯域幅307.2GB/s(ギガバイト/秒)に等しい。
An element interconnect bus (EIB) 1180 is a logically circulating communication bus in the
メモリコントローラ1160は、ラムバス社(Rambus Incorporated)により開発されたXDRAMインタフェース1162を有している。メモリコントローラは、ラムバスXDRAM1500に対して理論的ピーク帯域幅25.6GB/sでインタフェース接続する。
The
デュアルバスインタフェース1170A,Bは、ラムバスFlexIO(登録商標)システムインタフェース1172A,Bを有している。インタフェースは12チャネルに組織され、各チャネル8ビット幅であり、5つの経路はインバウンドで、7つの経路はアウトバウンドである。これによって、コントローラ1170Aを介してセルプロセッサとI/Oブリッジ1700との間に、またコントローラ1170Bを介してリアリティシミュレータグラフィックスユニット1200との間に、62.4GB/s(アウトバウンド36.4GB/s、インバウンド26GB/s)の理論的ピーク帯域幅が提供される。
The
セルプロセッサ1100によりリアリティシミュレータグラフィックスユニット1200に送信されるデータは、通常、ディスプレイリストから成っており、ディスプレイリストは頂点を描画するコマンド、テクスチャをポリゴンに適用するコマンド、照明条件を指定するコマンドなどのシーケンスである。
The data sent to the reality
次に、図6を参照すると、リアリティシミュレータグラフィックス(RSX)ユニット1200はNVidia(登録商標)G70/71アーキテクチャをベースにしたビデオアクセラレータであり、セルプロセッサ1100により生成されたコマンドのリストを処理し、レンダリングする。RSXユニット1200は、セルプロセッサ1100のバスインタフェースコントローラ1170Bと通信できるホストインタフェース1202と、8個のバーテックスシェーダ1205を備えたバーテックスパイプライン(VP)1204と、24個のピクセルシェーダ1207を備えたピクセルパイプライン(PP)1206と、8個のレンダー出力ユニット(ROP)1209を備えたレンダーパイプライン(RP)1208と、メモリインタフェース1210と、ビデオ出力を生成するビデオ変換器1212とを有している。RSX1200は256MBのダブルデータレート(DDR)ビデオRAM(VRAM)1250により補完されており、このVRAM1250は600MHzのクロックで動作し、理論的ピーク帯域幅25.6GB/sでRSK1200とインタフェース接続できる。動作の際には、VRAM1250はフレームバッファ1214とテクスチャバッファ1216を保持する。テクスチャバッファ1216はピクセルシェーダ1207にテクスチャを提供し、フレームバッファ1214は処理パイプラインの結果を格納する。RSXは、例えばテクスチャをVRAM1250にロードするために、EIB1180を介してメインメモリ1500にアクセスすることができる。
Referring now to FIG. 6, the reality simulator graphics (RSX)
バーテックスパイプライン1204は、主として、レンダリングされる画像内のポリゴンを定義する頂点(バーテックス)の変形および変換を処理する。
The
ピクセルパイプライン1206は、主として、それらポリゴンに対する色、テクスチャ、照明の適用を処理するが、それにはピクセルの透明度も含まれる。ピクセルパイプラインはまた、処理される各ピクセルに対する赤、緑、青およびアルファ(透明度)の値を生成する。テクスチャマッピングは、単にグラフィックス画像を表面に適用することでもよいし、バンプマッピング(表面の概念上の向きをテクスチャ値に応じて摂動させることによって照明モデルにハイライトや陰を生成する方法)あるいは変位マッピング(適用されるテクスチャが更に頂点の位置を摂動させることにより、テクスチャと調和する変形された表面を生成する方法)を含んでもよい。
The
レンダーパイプライン1208はピクセル間のデプスを比較して、最終画像においてどちらをレンダリングすべきかを決定する。オプションとして、途中のピクセル工程がデプス値に影響しない場合(例えば、透明度や変位マッピングが無い場合)、レンダーパイプラインおよびバーテックスパイプライン1204は互いにデプス情報を通知して、見えないエレメントをピクセル処理の前に取り除くことにより、全体としてのレンダリングの効率性を向上できる。それに加えて、レンダーパイプライン1208はまた、結果として得られた画像に対して、フルスクリーンのアンチエイリアス処理のような、その後の効果を適用する。
The render
バーテックスシェーダ1205およびピクセルシェーダ1207のどちらもシェーダモデル3.0規格に基づいている。クロックサイクル毎に136シェーダ演算まで実行でき、連結されたパイプラインは毎秒748億シェーダ演算を実行でき、毎秒8億4千万個の頂点および100億個のピクセルまでを出力することができる。RSX1200の全体としての浮動小数点演算性能は1.8TFLOPSである。
Both the
通常、RSX1200はセルプロセッサ1100と密接に連携して動作する。例えば、爆発や雨や雪などの気象効果を表示する際に、多数の粒子の跡をたどり、更新し、場面内でレンダリングしなければならない場合である。この場合、セルプロセッサのPPU1155は、粒子のそれぞれの群れの軌跡を計算するために、1つ以上のSPE1110A−1110Hをスケジュールしなければならない。その間に、RSX1200は、ビデオRAM1250に現在保持されていないテクスチャデータ(例えば、雪片)があれば、エレメントインターコネクトバス1180、メモリコントローラ1160およびバスインタフェースコントローラ1170を介してメインシステムメモリ1500からそのテクスチャデータを読み出す。その(あるいは各)SPE1110A−1110Hは、計算した粒子のプロパティ(典型的には、位置および姿勢を示す座標および法線)をビデオRAM1250に直接出力するが、その(あるいは各)SPE1110−1110HのDMAコントローラ1142A−1142Hはバスインタフェースコントローラ1170Bを介してビデオRAM1250をアドレス指定する。このように、割り当てられたSPEは、タスクの存続期間中は、事実上ビデオ処理パイプラインの一部となる
一般に、PPU1155は利用できる8つのSPEのうち6個に対してこのようにしてタスクを割り当てる。すなわち、1つのSPEをオペレーティングシステムのために取っておき、一方、1つのSPEは任意に使用禁止とする。1つのSPEを使用禁止とする場合、1つのSPEによる製造工程の失敗を許容できるので、セルプロセッサの製造の際の許容値のレベルを大きくできる。あるいは、8個すべてのSPEが動作可能な場合、8番目のSPEは、後にセルプロセッサの寿命中に他のSPEのうちの1個により障害が生じた場合のための冗長性を提供できる。
In general, the
PPU1155は様々な仕方でSPEにタスクを割り当てることができる。例えば、SPEを互いに連鎖させることにより、DVDのアクセスやビデオならびにオーディオの復号、エラーマスキングなどのような複雑な動作の各ステップをそれぞれ別個のSPEに割り当てて、扱うようにさせることができる。それとは別に、あるいはそれに加えて、上記の粒子のアニメーションの例の場合など、2個以上のSPEで入力データをパラレルに扱うように割り当てることができる。
セルプロセッサ1100および/またはRSX1200により実行されるソフトウェア命令は、製造時に供給してHDD1400に記憶してもよいし、および/または、光ディスクや固体状態記憶装置などのデータキャリヤあるいは記憶媒体によって、あるいは有線あるいは無線ネットワークやインターネット接続のような伝送媒体によって、あるいはそれらの組み合わせによって供給してもよい。
Software instructions executed by
製造時に供給されるソフトウェアには、システムファームウェアとプレイステーション3装置のオペレーションシステム(OS)とが含まれる。動作の際、OSはユーザが様々な機能から選択するためのユーザインタフェースを提供するが、それらの機能にはゲームをプレイすること、音楽を聴くこと、写真を見ること、あるいはビデオを観ることが含まれる。このインタフェースはいわゆるクロスメディアバー(XMB)の形を取って、様々な種類の機能が水平に配列されている。ユーザは、ゲームコントローラ1751、リモコン1752、あるいは他の適切なコントロール装置を用いて所望の機能をハイライトするように機能間を水平に移動することにより操作するが、ハイライトされた機能の個所では、その機能に関係するオプションがその機能を中心にした位置に垂直方向にスクロールできるリストとして現れ、そのリストを類似の仕方で操作することができる。しかし、ゲーム、オーディオ、あるいは映画のディスク1440がBD−ROM光ディスク読取り装置1430に挿入されると、プレイステーション3装置は適切な選択肢を自動的に選択する(例えば、ゲームを開始する)ようにしてもよいし、あるいは、適切な選択肢(例えば、オーディオディスクの再生とそのコンテンツのHDD1400への圧縮との間の選択)を提供するようにしてもよい。
The software supplied at the time of manufacture includes system firmware and an operation system (OS) of the PlayStation 3 device. In operation, the OS provides a user interface for the user to select from a variety of functions, such as playing games, listening to music, watching photos, or watching videos. included. This interface takes the form of a so-called cross media bar (XMB), in which various types of functions are arranged horizontally. The user operates by moving horizontally between functions so as to highlight a desired function using the
更に、OSはオンライン機能を提供するが、それには、ウェブブラウザや、追加のゲームコンテンツ、デモ版、および他のメディアをダウンロードできるオンラインストアとのインタフェースや、当該装置のユーザにより指名された他のプレイステーション3装置のユーザとのオンライン通信を提供するフレンド管理機能が含まれ、利用できる周辺デバイスに応じて、テキスト、オーディオ、ビデオを用いるものとすることができる。オンライン機能はまた、適切に設定したゲームをプレイしているときにオンライン通信、コンテンツダウンロード、コンテンツ購入に対応しており、プレイステーション3装置それ自身のファームウェアおよびOSの更新に対応している。 In addition, the OS provides online functionality, including an interface to a web browser and an online store where additional game content, demo versions, and other media can be downloaded, as well as other devices designated by the user of the device. A friend management function that provides online communication with the user of the PlayStation 3 device is included, and text, audio, and video may be used depending on the peripheral devices available. The online function also supports online communication, content download, and content purchase when playing a properly set game, and supports firmware and OS updates for the PlayStation 3 device itself.
図4ないし図6のエミュレーション側プロセシングユニットが、図1ないし図3の被エミュレーション側プロセシングユニットと比較して(大まかな言って)異なるアーキテクチャ、速度、メモリアクセス機能などを有しているという事実にも拘らず、図1ないし図3を参照して説明したPS2の構成の動作は、図4ないし図6の構成の上で実行されるソフトウェアにより再現される(あるいは殆ど再現される)。 The fact that the emulation-side processing unit of FIGS. 4 to 6 has (roughly speaking) a different architecture, speed, memory access function, etc. compared to the emulation-side processing unit of FIGS. Nevertheless, the operation of the PS2 configuration described with reference to FIGS. 1 to 3 is reproduced (or almost reproduced) by software executed on the configurations of FIGS.
PS2構成の動作の再現は、シミュレーションというよりはエミュレーションである。すなわち、PS2の機能に寄与する動作のすべてが、融通性のない仕方でクロック毎にエミュレーション側システムで再現されるというわけではない。むしろ、ある機能は単一のエミュレーション側プロセシングユニット上で時分割で実行してもよく、一般に(被エミュレーション側システム内で)必要がある場合にだけプロセシングユニットは互いに通信し合う。 The reproduction of the operation of the PS2 configuration is emulation rather than simulation. That is, not all of the operations that contribute to the PS2 function are reproduced on the emulation side system for each clock in an inflexible manner. Rather, certain functions may be performed in a time-sharing manner on a single emulation-side processing unit, and the processing units generally communicate with each other only when needed (within the emulated system).
PPE1150はエミュレーション側システムの全体的な動作を制御し、エミュレーション側システム用のオペレーティングシステム(OS)を実行する。PPE1150はまた、1つのスレッドで、ネイティブなエモーションエンジンPS2命令をネイティブなSPE命令に翻訳し、エミュレーションの各部分を実行するのに必要な関連情報(エミュレーション機能のアロケーションなど−下の説明を参照)と共にEIBを介して適切なSPEに供給する。一方、他のスレッドは、エミュレーション側システムにネイティブな新しいコードを再コンパイルする機能を提供して、翻訳されたPS2コードにより定義される特定の機能を提供する。上に説明されたPS2システムの様々な部分のエミュレーションは、エミュレーション側プロセシングユニットの役割をする8つのSPEに移譲され、それらSPEが下に示すPS2の機能をエミュレートする。個々のSPEの正確な識別は単に表記上の便宜のためであって、SPE間のメッセージの受け渡しの本質からして、技術的な重要性がないことを理解できるであろう。それで、例えば、SPE1110Aと1110Bとに割り当てられた演算は、全体としてのエミュレーションプロセスに技術的な影響を及ぼすことなく、そっくり交換することが可能である。また、上に述べたように1つのSPEを使用禁止とすることができるので、タスクは実際には残り7個のSPEの間で分割されることも理解されるであろう。
The
SPE1110A IPU118
SPE1110B エモーションエンジンCPU102およびベクトル演算ユニット0
SPE1110C VIF0、VIF1、GIF110
SPE1110D ベクトル演算ユニット1
SPE1110E GS200(即ち、GS200の動作のうちPS2に特有の部分;SPE1110Gはまた、PS2に特有でないグラフィックス演算に関して、エミュレーション側グラフィックスコントローラ(図示されていない)とのインタフェースを取る)
SPE1110F 一般に使用されないが、上記PPE1150の1つのスレッドの負荷を軽減するために、コードを再コンパイルしてベクトル演算ユニット1をエミュレートすることができる
SPE1110G SPU300
SPE1110H IOP700およびSIF122
PS2は、様々な被エミュレーション側プロセシングユニット間の通信のために従来のバスを使用する。エミュレーション側システムは、SPE間でまたSPEとPPE1150とI/Oブリッジ1700(そして/またはRSX1200などの他のシステムデバイス)との間でメッセージを受け渡すためにEIB1180を使用する。PS2システムはRDRAM500にアクセスするために従来のメモリアクセス構成を有している。エミュレート側システムは分散型DMAシステム(DMAコントローラ1142A−1142H)を使用する。メインシステムメモリ1500は共通メモリ「プール」として扱われ、すべてのSPEがそれに対してアクセスできる。
SPE1110A IPU118
SPE1110B Emotion Engine CPU102 and Vector
SPE1110C VIF0, VIF1, GIF110
SPE1110D Vector
SPE1110E GS200 (ie PS2 specific part of GS200 operation; SPE1110G also interfaces with emulation graphics controller (not shown) for graphics operations not specific to PS2)
SPE1110F Although not generally used, the code can be recompiled to emulate the
SPE1110H IOP700 and SIF122
PS2 uses a conventional bus for communication between various emulated processing units. The emulation side system uses the
SPEの各々はローカルに、自分自身のタイムクロックで、動作する。SPEはソフトウェアを実行して、PS2システムの機能の一部のエミュレーションを可能にする。EPU間に関して、同期が必要なのは、EPUによってエミュレーションされる被エミュレーション側プロセシングユニットが互いに通信する必要がある場合だけである。そのとき、同期は関係するデバイス間の間だけで行なわれ、EIBを介してメッセージ転送機構を用いてなされる。 Each SPE operates locally with its own time clock. The SPE executes software to allow emulation of some of the functions of the PS2 system. With respect to the EPUs, synchronization is required only when the processing units to be emulated that are emulated by the EPU need to communicate with each other. At that time, synchronization is only performed between the devices involved, and is done using a message transfer mechanism via the EIB.
これを達成するために、2つのSPE間で(被エミュレーション側の機能の)同期が必要な場合、SPEの1つがSPEの他方をアドレス指定したメッセージをEIB上に発行する(ソースSPE識別子、デスティネーションSPE識別子などを含める)。このメッセージはあるデータに対する請求を含めることができ、あるいはその特定の同期に関係する前記他のSPEに送信されるデータ項目を含めることができる。前記他のSPEから確認応答が返信されると、このトランザクションは完了する。これは、被エミュレーション側プロセッサ間を同期させる信頼できる方法ではあるが、かなり遅い方法である。 To achieve this, if synchronization between the two SPEs (function of the emulated side) is required, one SPE issues a message on the EIB addressing the other SPE (source SPE identifier, destination Including the Nation SPE identifier). This message can include a charge for certain data, or it can include a data item sent to the other SPE that is involved in that particular synchronization. The transaction is completed when an acknowledgment is returned from the other SPE. While this is a reliable way to synchronize between the emulation side processors, it is a rather slow method.
SPEが論理的に配列される仕方は、図5に概略的に示されている。SPE間の論理的な通信の経路の例も示されているが、これらは網羅的なものではない。幾つかの機能が同一のSPEを共用すれば、通信するためのメッセージ受け渡し機構を用いる必要を全く回避できる。それで、単一のSPE上で2個(あるいはそれ以上)の被エミュレーション側プロセシングユニットのエミュレーションを提供すれば、SPE間の必要な通信量を減少することによってシステムの性能を向上することができる。 The manner in which the SPEs are logically arranged is shown schematically in FIG. Examples of logical communication paths between SPEs are also shown, but these are not exhaustive. If several functions share the same SPE, the need to use a message passing mechanism for communication can be completely avoided. Thus, providing emulation of two (or more) processed processing units on a single SPE can improve system performance by reducing the amount of communication required between SPEs.
図の明瞭さのために図5に網羅的に示されていない他の特徴として、2つの異なるSPEによりエミュレートされる被エミュレーション側プロセシングユニットがPS2の特定の機能を実行するために互いに大量に通信する必要がある場合、1つの実際のプロセッサの機能の一部を「他の」プロセッサのSPEによって実行することができる。 Another feature not shown exhaustively in FIG. 5 for the sake of clarity of the figure is that the emulated processing units emulated by two different SPEs are in large quantities with each other to perform a specific function of PS2. If there is a need to communicate, some of the functions of one actual processor can be performed by the SPE of the “other” processor.
例えば、PS2のサウンドプロセシングユニットはほとんど1つのSPEによってエミュレートされる。そのSPEはサンプルを処理し、それらをミックスして出力のための最終サンプルとする。それはまた、そのレジスタマップへのアクセスを処理する。しかし、サウンドプロセシングユニットのサンプルメモリに書き込むために用いられるレジスタをエミュレートするのはIOP上のSPEであり、それはアクセスの待ち行列を管理し、メインメモリのサンプルメモリイメージに直接アクセスし、それらが生じさせ得る割り込みを、あたかもサウンドプロセシングユニットから送られたかのように、発生させる。 For example, a PS2 sound processing unit is almost emulated by one SPE. The SPE processes the samples and mixes them into the final sample for output. It also handles access to that register map. However, it is the SPE on the IOP that emulates the registers used to write to the sound processing unit's sample memory, which manages the access queue and directly accesses the sample memory image in the main memory, where they occur. Interrupts that can be generated are generated as if they were sent from the sound processing unit.
2つ以上のSPEで実現されるPS2システムのデバイスの他の例はDMACであり、その機能は、エモーションエンジン、VIF、GIF、IPUなどのために主に用いられるエミュレーション側の構成要素に分配される。 Another example of a PS2 system device implemented with two or more SPEs is the DMAC, whose function is distributed to the components on the emulation side that are mainly used for the Emotion Engine, VIF, GIF, IPU, etc. The
1つのエミュレーション側SPEで複数のPS2システムデバイスのエミュレーションを扱う場合の例は、(単一のエミュレーション側デバイスを)PS2のIOPのエミュレーションとCDディスクコントローラのエミュレーションの大分分とが共用する場合である。 An example in which a single emulation-side SPE handles the emulation of multiple PS2 system devices is a case where a single emulation-side device shares the majority of PS2 IOP emulation and CD disk controller emulation. .
被エミュレーション側プロセシングユニットのエミュレーションを2つの(あるいはそれ以上の)SPE(エミュレーション側プロセシングユニット)で分割するこのことは、それら被エミュレーション側プロセシングユニットのエミュレーションの間の通信を実現するために必要なメッセージトラフィックをやはり減少させることができる。PPEは、どのSPEが特定の被エミュレーション側プロセシングユニットをエミュレートするか、および/または、どの被エミュレーション側プロセシングユニットが特定のSPEによってエミュレートされるかを変更するために、(エミュレーションオペレーション全体にわたる)SPE間のエミュレーションタスクの分配を変えることができる。 The emulation of the processing unit to be emulated is divided into two (or more) SPEs (emulation processing units). This is a message necessary for realizing communication between the emulations of the processing units to be emulated. Traffic can still be reduced. The PPE can change which SPE emulates a particular emulated processing unit and / or which emulated processing unit is emulated by a particular SPE (overall emulation operations). ) Distribution of emulation tasks among SPEs can be changed.
上に記載された本発明の実施形態が、ソフトウェア制御されるデータプロセシング装置を(少なくとも部分的にでも)用いて実現される場合、そのようなソフトウェア制御を提供するコンピュータプログラム、そのようなコンピュータプログラムが記憶される記憶媒体、そしてそのようなコンピュータプログラムを伝送する伝送媒体が本発明の特徴として想定されていることは理解されるであろう。そのようなソフトウェアは、光ディスクあるいはハードウェアメモリなどの記憶媒体、および/または、ネットワーク接続やインターネットなどの伝送媒体によって提供できることに留意されたい。 Computer program providing such software control when such an embodiment of the present invention described above is implemented (at least in part) using a software-controlled data processing device, such computer program It will be understood that a storage medium in which is stored and a transmission medium for transmitting such a computer program are envisaged as features of the present invention. It should be noted that such software can be provided by a storage medium such as an optical disc or hardware memory and / or a transmission medium such as a network connection or the Internet.
Claims (13)
少なくとも1つの被エミュレーション側プロセシングユニットが、2つ以上のエミュレーション側プロセシングユニットの寄与によってエミュレートされ、
少なくとも1つのエミュレーション側プロセシングユニットが、2つ以上の被エミュレーション側プロセシングユニットのエミュレーションに寄与する、
ことを特徴とするデータプロセッサ。 A data processor having a plurality of interconnected emulation-side processing units arranged to emulate the operation of a processor to be emulated with a plurality of interconnected emulation-side processing units,
At least one emulated processing unit is emulated by the contribution of two or more emulation processing units,
At least one emulation processing unit contributes to the emulation of two or more emulated processing units;
A data processor characterized by that.
前記方法は、
2つ以上のエミュレーション側プロセシングユニットの寄与によってある被エミュレーション側プロセシングユニットをエミュレートするステップと、
1つのエミュレーション側プロセシングユニットで2つ以上の被エミュレーション側プロセシングユニットをエミュレートするステップと、
を有することを特徴とするデータ処理方法。 A data processing method for a system having a plurality of interconnected emulation-side processing units arranged to emulate the operation of a processor to be emulated having a plurality of interconnected emulation-side processing units. And
The method
Emulating an emulated processing unit with the contribution of two or more emulation processing units;
Emulating two or more emulation-side processing units with one emulation-side processing unit;
A data processing method characterized by comprising:
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0603446A GB2435335A (en) | 2006-02-21 | 2006-02-21 | Multi-processor emulation by a multi-processor |
GB0603446.6 | 2006-02-21 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008555861A Division JP2009527836A (en) | 2006-02-21 | 2007-02-19 | Data processing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011227908A true JP2011227908A (en) | 2011-11-10 |
JP5746916B2 JP5746916B2 (en) | 2015-07-08 |
Family
ID=36178463
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008555861A Pending JP2009527836A (en) | 2006-02-21 | 2007-02-19 | Data processing |
JP2011120250A Active JP5746916B2 (en) | 2006-02-21 | 2011-05-30 | Data processing |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008555861A Pending JP2009527836A (en) | 2006-02-21 | 2007-02-19 | Data processing |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090247249A1 (en) |
EP (1) | EP1987426A1 (en) |
JP (2) | JP2009527836A (en) |
GB (1) | GB2435335A (en) |
WO (1) | WO2007096602A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458754B2 (en) | 2001-01-22 | 2013-06-04 | Sony Computer Entertainment Inc. | Method and system for providing instant start multimedia content |
US7770050B2 (en) | 2006-05-03 | 2010-08-03 | Sony Computer Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
US7813909B2 (en) | 2006-05-03 | 2010-10-12 | Sony Computer Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US7792666B2 (en) | 2006-05-03 | 2010-09-07 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
US9483405B2 (en) | 2007-09-20 | 2016-11-01 | Sony Interactive Entertainment Inc. | Simplified run-time program translation for emulating complex processor pipelines |
US8060356B2 (en) | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
JP5242628B2 (en) * | 2010-05-06 | 2013-07-24 | 株式会社スクウェア・エニックス | A high-level language that improves programmer productivity in game development |
US8433759B2 (en) | 2010-05-24 | 2013-04-30 | Sony Computer Entertainment America Llc | Direction-conscious information sharing |
US10554955B2 (en) * | 2010-10-11 | 2020-02-04 | Texas Instruments Incorporated | Method and apparatus for depth-fill algorithm for low-complexity stereo vision |
US10960300B2 (en) | 2011-11-23 | 2021-03-30 | Sony Interactive Entertainment LLC | Sharing user-initiated recorded gameplay with buffered gameplay |
US10525347B2 (en) * | 2012-03-13 | 2020-01-07 | Sony Interactive Entertainment America Llc | System and method for capturing and sharing console gaming data |
US9116555B2 (en) | 2011-11-23 | 2015-08-25 | Sony Computer Entertainment America Llc | Gaming controller |
US10486064B2 (en) | 2011-11-23 | 2019-11-26 | Sony Interactive Entertainment America Llc | Sharing buffered gameplay in response to an input request |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03198161A (en) * | 1989-12-27 | 1991-08-29 | Fujitsu Ltd | Logical design parallel processing system |
JPH06202877A (en) * | 1992-12-28 | 1994-07-22 | Fujitsu Ltd | Emulator |
JPH09506727A (en) * | 1993-12-13 | 1997-06-30 | クレイ・リサーチ・インコーポレイテッド | Message Mechanism for Large Scale Parallel Processing System |
JP2002132496A (en) * | 2000-08-15 | 2002-05-10 | Sony Computer Entertainment Inc | Emulating apparatus and parts, emulation method, recording medium, and program |
JP2003196107A (en) * | 2001-11-29 | 2003-07-11 | Hewlett Packard Co <Hp> | System and method for integrating code to be emulated to native code |
JP2004110809A (en) * | 2002-09-17 | 2004-04-08 | Internatl Business Mach Corp <Ibm> | Method and system for multiprocessor emulation on multiprocessor host system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701479A (en) * | 1993-06-15 | 1997-12-23 | Xerox Corporation | Pipelined image processing system for a single application environment |
JPH08263306A (en) * | 1995-03-10 | 1996-10-11 | Xerox Corp | Data-processing system for pipeline data processing and pipeline data-processing method |
US5966515A (en) * | 1996-12-31 | 1999-10-12 | Unisys Corporation | Parallel emulation system and method |
US6339752B1 (en) * | 1998-12-15 | 2002-01-15 | Bull Hn Information Systems Inc. | Processor emulation instruction counter virtual memory address translation |
US6978233B1 (en) * | 2000-03-03 | 2005-12-20 | Unisys Corporation | Method for emulating multi-processor environment |
US8149048B1 (en) * | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US6842728B2 (en) * | 2001-03-12 | 2005-01-11 | International Business Machines Corporation | Time-multiplexing data between asynchronous clock domains within cycle simulation and emulation environments |
US7472055B2 (en) * | 2002-06-03 | 2008-12-30 | Broadcom Corporation | Method and system for deterministic control of an emulation |
US7146607B2 (en) * | 2002-09-17 | 2006-12-05 | International Business Machines Corporation | Method and system for transparent dynamic optimization in a multiprocessing environment |
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
-
2006
- 2006-02-21 GB GB0603446A patent/GB2435335A/en not_active Withdrawn
-
2007
- 2007-02-19 JP JP2008555861A patent/JP2009527836A/en active Pending
- 2007-02-19 WO PCT/GB2007/000587 patent/WO2007096602A1/en active Application Filing
- 2007-02-19 EP EP07712762A patent/EP1987426A1/en not_active Ceased
- 2007-02-19 US US12/280,144 patent/US20090247249A1/en not_active Abandoned
-
2011
- 2011-05-30 JP JP2011120250A patent/JP5746916B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03198161A (en) * | 1989-12-27 | 1991-08-29 | Fujitsu Ltd | Logical design parallel processing system |
JPH06202877A (en) * | 1992-12-28 | 1994-07-22 | Fujitsu Ltd | Emulator |
JPH09506727A (en) * | 1993-12-13 | 1997-06-30 | クレイ・リサーチ・インコーポレイテッド | Message Mechanism for Large Scale Parallel Processing System |
JP2002132496A (en) * | 2000-08-15 | 2002-05-10 | Sony Computer Entertainment Inc | Emulating apparatus and parts, emulation method, recording medium, and program |
JP2003196107A (en) * | 2001-11-29 | 2003-07-11 | Hewlett Packard Co <Hp> | System and method for integrating code to be emulated to native code |
JP2004110809A (en) * | 2002-09-17 | 2004-04-08 | Internatl Business Mach Corp <Ibm> | Method and system for multiprocessor emulation on multiprocessor host system |
Also Published As
Publication number | Publication date |
---|---|
US20090247249A1 (en) | 2009-10-01 |
EP1987426A1 (en) | 2008-11-05 |
GB0603446D0 (en) | 2006-04-05 |
WO2007096602A1 (en) | 2007-08-30 |
JP2009527836A (en) | 2009-07-30 |
JP5746916B2 (en) | 2015-07-08 |
GB2435335A (en) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5746916B2 (en) | Data processing | |
US8705845B2 (en) | Entertainment device and method of interaction | |
JP5149985B2 (en) | Graphics processing system with function expansion memory controller | |
US9048859B2 (en) | Method and apparatus for compressing and decompressing data | |
US8180295B2 (en) | Bluetooth enabled computing system and associated methods | |
EP2306399B1 (en) | Image processing method, apparatus and system | |
JP2006520213A (en) | Controlling data processing | |
JP2014149836A (en) | Interactive user controlled avatar animations | |
JP2006518237A (en) | Controlling data processing | |
JP5570421B2 (en) | Entertainment apparatus and method | |
US8269691B2 (en) | Networked computer graphics rendering system with multiple displays for displaying multiple viewing frustums | |
JP2023516819A (en) | Systems and methods for efficient multi-GPU execution of kernels with region-based dependencies | |
US20100328354A1 (en) | Networked Computer Graphics Rendering System with Multiple Displays | |
JP5345780B2 (en) | Data processing | |
JP2007512603A (en) | Image drawing | |
WO2010139984A1 (en) | Device and method of display | |
EP2446431A1 (en) | Networked computer graphics rendering system with multiple displays | |
GB2465772A (en) | Analysing memory accessed by an application | |
JP5142419B2 (en) | Method and apparatus for accessing shared resource | |
WO2008035027A1 (en) | Video game |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130927 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150316 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150511 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5746916 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |