JP2011227908A - Data processing - Google Patents

Data processing Download PDF

Info

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
Application number
JP2011120250A
Other languages
Japanese (ja)
Other versions
JP5746916B2 (en
Inventor
Colin Jonathan Hughes
コリン ジョナサン ヒューズ
Sargaison Stewart
スチュアート サーゲイソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2011227908A publication Critical patent/JP2011227908A/en
Application granted granted Critical
Publication of JP5746916B2 publication Critical patent/JP5746916B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical 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

PROBLEM TO BE SOLVED: To provide faster and more efficient emulation in an emulation system which uses a multi-processor architecture.SOLUTION: By dividing the emulation of an emulated processing unit into two (or more) emulating processing units, message traffic necessary for providing communication between the emulation of those emulated processing units is recognized to be able to been reduced. Similarly, by grouping the emulation of multiple processing units which are normally high-traffic between one another (on a single emulating processing unit), the message traffic necessary for providing communication between the emulation of those emulated processing units can be greatly reduced as well.

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の全体的なシステムアーキテクチャを概略的に示す図である。FIG. 1 schematically illustrates the overall system architecture of the PlayStation 2. は、エモーションエンジンのアーキテクチャを概略的に示す図である。FIG. 2 is a diagram schematically showing an architecture of an emotion engine. 図3は、グラフィックスシンセサイザの構成を概略的に示す図である。FIG. 3 is a diagram schematically showing the configuration of the graphics synthesizer. 図4は、エミュレーション側プロセッサ、特にソニー(登録商標)プレイステーション3(登録商標)装置の構造を概略的に示す図である。FIG. 4 is a diagram schematically showing the structure of an emulation-side processor, particularly a Sony (registered trademark) PlayStation 3 (registered trademark) device. 図5は、セルプロセッサを概略的に示す図である。FIG. 5 is a diagram schematically showing the cell processor. 図6は、グラフィックスユニットを概略的に示す図である。FIG. 6 is a diagram schematically showing the graphics unit. 図7は、エミュレーション側プロセッサ内の論理的な相互作用を概略的に示す図である。FIG. 7 is a diagram schematically showing a logical interaction in the emulation processor.

図を参照すると、図1はプレイステーション2コンピュータゲーム機の全体的なシステムアーキテクチャを概略的に示したものである。システムユニット10が設けられており、様々な周辺デバイスをシステムユニットに接続することができる。   Referring to the figure, FIG. 1 schematically illustrates the overall system architecture of a PlayStation 2 computer game machine. A system unit 10 is provided, and various peripheral devices can be connected to the system unit.

システムユニット10は、エモーションエンジン100と、グラフィックスシンセサイザ200と、ダイナミックランダムアクセスメモリ(DRAM)を有するサウンドプロセッサユニット300と、読取り専用メモリ(ROM)400と、コンパクトディスク(CD)/DVDディスク(DVD)読取り装置450と、ラムバスDRAM(RDRAM)ユニット500と、専用RAM750を備えた入出力プロセッサ(IOP)700とを有している。オプションとして、外部ハードディスクドライブ(HDD)390を接続することができる。   The system unit 10 includes an emotion engine 100, a graphics synthesizer 200, a sound processor unit 300 having a dynamic random access memory (DRAM), a read only memory (ROM) 400, and a compact disc (CD) / DVD disc (DVD). ) Read device 450, Rambus DRAM (RDRAM) unit 500, and input / output processor (IOP) 700 with dedicated RAM 750. As an option, an external hard disk drive (HDD) 390 can be connected.

入出力プロセッサ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 / output processor 700 has two universal serial bus (USB) ports 715 and an iLink or IEEE1394 port (not shown) (iLink is an IEEE 1394 standard implemented by Sony). The IOP 700 handles all USB, iLink and game controller data traffic. For example, when the user is playing a game, the IOP 700 receives data from the game controller and transmits the received data to the emotion engine 100, which updates the current state of the game accordingly. The IOP 700 has a direct memory access (DMA) architecture to achieve high data transfer rates. DMA involves transferring data from main memory to the device without passing it through the CPU. The USB interface conforms to the open host controller interface (OHCI) and can process data transfer rates of 1.5 Mbps to 12 Mbps. By providing these interfaces, the PlayStation 2 may be compatible with peripheral devices such as digital video cassette recorders (VCRs) such as camcorders, digital cameras, microphones, printers, keyboards, input devices such as mice and joysticks. is doing.

一般に、USBポート715に接続された周辺デバイスとのデータ通信を成功裏に実現するためには、デバイスドライバなどの適切なソフトウェアを提供する必要がある。デバイスドライバ技術は良く知られているので、ここでは詳しく説明しないが、ここに記載された実施例においてデバイスドライバや類似のソフトウェアが必要とされるであろうことは、当業者には知られている。   In general, in order to successfully realize data communication with a peripheral device connected to the USB port 715, it is necessary to provide appropriate software such as a device driver. Device driver technology is well known and will not be described in detail here, but those skilled in the art know that device drivers and similar software may be required in the embodiments described herein. Yes.

本実施例では、USBマイク730がUSBポートに接続されている。USBマイク730は手持ち式のマイクでもよいし、オペレータが装着するヘッドセットの一部をなしていてもよいことは理解されるであろう。ヘッドセットを装着することの利点は、オペレータの手が自由に他の動作ができることである。マイクはアナログ−ディジタル変換器(ADC)と基本的なハードウェアベースのリアルタイムデータ圧縮符号化装置とを含んでいるので、マイク730によってオーディオデータはプレイステーション2システムユニット10で復号するのに適切なフォーマットで、例えばストリーミング圧縮オーディオフォーマットで、USBポート715に送信される。   In this embodiment, a USB microphone 730 is connected to the USB port. It will be appreciated that the USB microphone 730 may be a handheld microphone or may be part of a headset worn by the operator. The advantage of wearing a headset is that the operator's hand is free to perform other actions. Since the microphone includes an analog-to-digital converter (ADC) and a basic hardware-based real-time data compression encoder, the microphone 730 allows the audio data to be in a format suitable for decoding by the PlayStation 2 system unit 10. For example, the data is transmitted to the USB port 715 in a streaming compressed audio format.

USBポートを別にすると、他の2つのポート705、710は独自仕様のソケットであり、ゲーム関連の情報を記憶するための独自仕様の不揮発性RAMメモリカード720や、手持ち式のゲームコントローラ725、あるいは手持ち式コントローラを模倣するダンスマットなどのデバイス(図示されていない)を接続することができる。   Aside from the USB port, the other two ports 705 and 710 are sockets of a unique specification, and a proprietary nonvolatile RAM memory card 720 for storing game-related information, a handheld game controller 725, or Devices (not shown) such as dance mats that mimic handheld controllers can be connected.

システムユニット10は、ネットワークへのインタフェース(例えば、イーサネット(登録商標)インタフェース)を提供するネットワークアダプタ805に接続することができる。このネットワークは、例えば、LAN、WAN、あるいはインターネットとすることができる。ネットワークは一般のネットワークでもよいし、ゲーム関連の通信専用のネットワークでもよい。ネットワークアダプタ805により、データを同じネットワークに接続された他のシステムユニット10へ送信し、また他のシステムユニット10から受信することができる(他のシステムユニット10も対応するネットワークアダプタ805を備えている)。   The system unit 10 can be connected to a network adapter 805 that provides an interface to a network (eg, Ethernet interface). This network can be, for example, a LAN, a WAN, or the Internet. The network may be a general network or a network dedicated to game-related communication. The network adapter 805 can transmit data to other system units 10 connected to the same network, and can receive data from other system units 10 (other system units 10 also have corresponding network adapters 805. ).

エモーションエンジン100は、ゲームアプリケーション用の3次元(3D)グラフィックスの効率的なシミュレーションのために特別に設計された128ビットの中央演算処理装置(CPU)である。エモーションエンジンの構成要素には、データバス、キャッシュメモリ(CPUコアの一部)、およびレジスタが含まれており、そのすべては128ビットタイプである。これにより、大量のマルチメディアデータの高速処理が容易となる。比較として、従来のPCは64ビットの基本データ構造を有している。プレイステーション2の浮動小数点計算の性能は6.2ギガフロップス(GFLOPS)である。エモーションエンジンはまたMPEG2デコーダ回路を有しており、それにより3DグラフィックスデータとDVDデータの同時処理が可能である。エモーションエンジンは、数学的変換および平行移動を含む幾何学的な計算を実行し、また、シミュレーション物体の物理に関連した計算、例えば、2つの物体間の摩擦の計算、を実行する。エモーションエンジンは、画像レンダリングコマンドのシーケンスを生成し、それらのシーケンスは、後に、グラフィックスシンセサイザ200により利用される。画像レンダリングコマンドは、ディスプレイリストの形で出力される。ディスプレイリストは、グラフィックスシンセサイザに対して画面上でどの基本グラフィックスオブジェクト(例えば、点、線、三角形、スプライト)をどの座標位置に描くべきかを指定する描画コマンドのシーケンスである。それで、典型的なディスプレイリストは、頂点を描くコマンド、多角形(ポリゴン)の面に陰影付けするコマンド等を有している。エモーションエンジン100は複数のディスプレイリストを非同期的に生成することができる。   Emotion engine 100 is a 128-bit central processing unit (CPU) specially designed for efficient simulation of three-dimensional (3D) graphics for gaming applications. The Emotion Engine components include a data bus, a cache memory (part of the CPU core), and registers, all of which are 128-bit types. This facilitates high-speed processing of a large amount of multimedia data. As a comparison, a conventional PC has a 64-bit basic data structure. The performance of the floating point calculation of PlayStation 2 is 6.2 gigaflops (GFLOPS). The Emotion Engine also has an MPEG2 decoder circuit, which allows simultaneous processing of 3D graphics data and DVD data. The Emotion Engine performs geometric calculations including mathematical transformations and translations, and performs calculations related to the physics of the simulated object, eg, the friction between two objects. The emotion engine generates a sequence of image rendering commands that are later utilized by the graphics synthesizer 200. The image rendering command is output in the form of a display list. The display list is a sequence of drawing commands that specifies to the graphics synthesizer which basic graphics objects (eg, points, lines, triangles, sprites) should be drawn at which coordinate positions on the screen. Therefore, a typical display list has a command for drawing a vertex, a command for shading a polygon (polygon) surface, and the like. The emotion engine 100 can generate a plurality of display lists asynchronously.

グラフィックスシンセサイザ200は、エモーションエンジン100により生成されたディスプレイリストのレンダリングを実行するビデオアクセラレータである。グラフィックスシンセサイザ200はグラフィックスインタフェースユニット(GIF)を含んでおり、GIFは複数のディスプレイリストを処理し、追跡し、管理する。グラフィックスシンセサイザ200のレンダリング機能は幾つかの代替的な標準出力画像フォーマット(即ち、NTSC/PAL、高品位テレビおよびVESA)に適合した画像データを生成することができる。一般に、グラフィックスシステムのレンダリング性能は、ピクセルエンジンとビデオメモリ(どちらもグラフィックスプロセッサ内に配置されている)の間のメモリ帯域幅によって定義されている。従来のグラフィックスシステムは外部ビデオランダムアクセスメモリ(VRAM)を用いており、そのVRAMはオフチップバスによってピクセルロジックに接続されているので、利用できる帯域幅は制限されがちである。しかし、プレイステーション2のグラフィックスシンセサイザ200は単一の高性能チップ上にピクセルロジックとビデオメモリを設けているので、毎秒38.4ギガバイトという比較的大きなメモリアクセス帯域幅が可能である。グラフィックスシンセサイザは、理論的には、毎秒7千5百万ポリゴンというピーク描画性能を達成することができる。テクスチャ、照明および透明度など一そろいの効果を用いる場合でも、持続的に毎秒2千万ポリゴンの速度で連続的に描画することができる。したがって、グラフィックスシンセサイザ200はフィルム品質の画像を描くことができる。   The graphics synthesizer 200 is a video accelerator that performs rendering of a display list generated by the emotion engine 100. Graphics synthesizer 200 includes a graphics interface unit (GIF), which processes, tracks and manages a plurality of display lists. The rendering function of the graphics synthesizer 200 can generate image data compatible with several alternative standard output image formats (ie, NTSC / PAL, high definition television and VESA). In general, the rendering performance of a graphics system is defined by the memory bandwidth between the pixel engine and video memory (both located within the graphics processor). Conventional graphics systems use external video random access memory (VRAM), which is connected to the pixel logic by an off-chip bus, so the available bandwidth tends to be limited. However, since the graphics synthesizer 200 of the PlayStation 2 has pixel logic and video memory on a single high performance chip, a relatively large memory access bandwidth of 38.4 gigabytes per second is possible. The graphics synthesizer can theoretically achieve peak drawing performance of 75 million polygons per second. Even when a set of effects such as texture, lighting and transparency is used, it is possible to continuously draw at a speed of 20 million polygons per second. Thus, the graphics synthesizer 200 can draw a film quality image.

サウンドプロセッサユニット(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 / sound output device 305 such as a video monitor or a television provided with the attached speaker device 310 is connected to receive video signals and audio signals from the graphics synthesizer 200 and the sound processing unit 300.

エモーションエンジン100をサポートするメインメモリは、ラムバス社(Rambus Incorporated)からライセンスされたRDRAM(ラムバスダイナミックランダムアクセスメモリ)モジュール500である。このRDRAMメモリサブシステムは、RAMと、RAMコントローラと、RAMをエモーションエンジン100に接続するバスとを有している。   The main memory that supports the Emotion Engine 100 is an RDRAM (Rambus Dynamic Random Access Memory) module 500 licensed from Rambus Incorporated. The RDRAM memory subsystem includes a RAM, a RAM controller, and a bus that connects the RAM to the emotion engine 100.

図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 emotion engine 100 of FIG. The emotion engine 100 is a general term for several processing units that are connected to each other to realize a desired function set. From this context point of view, the Emotion Engine includes a floating point unit (FPU) 104, a central processing unit (CPU) core 102, a vector unit 0 (VU0) 106, and a vector unit 1 (VU1). 108, a graphics interface unit (GIF) 110, an interrupt controller (INTC) 112, a timer unit 114, a direct memory access controller 116, an image data processor unit (IPU) 118, and a dynamic random access memory controller (DRAMC). ) 120 and a sub-bus interface (SIF) 122, all these individual processing units are connected by a 128-bit main bus 124.

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 CPU core 102 is a 128-bit processor that operates with a clock of 300 MHz (actually 294.912 MHz, but 300 MHz tends to be used as an abbreviation for this number). The CPU core can access the 32 MB main memory via the DRAMC 120. The instruction set of CPU core 102 is based on MIPS III RISC, with some MIPS IV RISC instructions and additional multimedia instructions. MIPS III and IV are reduced instruction set computer (RISC) instruction set architectures owned by MIPS Technologies, Inc. The standard instruction is a 64-bit 2-way superscaler, which means that two instructions can be executed simultaneously. On the other hand, multimedia instructions utilize 128-bit instructions via two pipelines. The CPU core 102 has a 16 KB instruction cache, an 8 KB data cache, and a 16 KB scratch pad RAM. The scratch pad RAM is a part of a cache connected to the CPU via a dedicated bus. Can access data independently.

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 FPU 104 serves as a first coprocessor for the CPU core 102. The vector operation unit 106 functions as a second coprocessor. The FPU 104 has a floating point division calculator (FDIV). Vector arithmetic units 106 and 108 perform mathematical operations, but are essentially specialized FPUs with very fast evaluation of multiplication and addition of vector equations. These vector operation units use a floating point multiplier / adder (FMAC) for addition and multiplication operations and a floating point divider (FDIV) for division and square root operations. FMAC operates on a 32-bit value, so if the operation is performed on a 128-bit value (consisting of four 32-bit values), the operation can be performed on four parts simultaneously. For example, two vectors can be added simultaneously. The vector operation unit (VU) has a built-in memory for storing a microprogram, and the vector operation unit (VIF) (referred to by the same number as the corresponding vector operation unit) Interfacing with the rest of the system. Vector arithmetic unit 0 106 is essentially a second specialized FPU because it can function as a coprocessor to CPU core 102 via a dedicated 128-bit bus. On the other hand, the vector arithmetic unit 1 108 has a dedicated bus for the graphics synthesizer 200 and can therefore be considered a completely separate processor. By providing two vector operation units, the software developer can divide the work among different parts of the CPU, and the vector operation units can be used in series or parallel connection.

ベクトル演算ユニット0 106は、4個のFMACと1個のFDIVとを有している。ベクトル演算ユニット0は、コプロセッサ接続によってCPUコア102に接続されている。ベクトル演算ユニット0は、データ用の4KBのベクトル演算ユニットメモリと、命令用の4KBのマイクロメモリとを有している。ベクトル演算ユニット0 106は、表示する画像に関連した物理計算を実行するのに有用である。ベクトル演算ユニット0 106はCPUコア102と共に、主に、パターン化されていない幾何学的処理を実行する。   The vector arithmetic unit 0 106 has four FMACs and one FDIV. The vector arithmetic unit 0 is connected to the CPU core 102 by a coprocessor connection. The vector operation unit 0 has a 4 KB vector operation unit memory for data and a 4 KB micro memory for instructions. Vector arithmetic unit 0 106 is useful for performing physical calculations related to the image to be displayed. Vector arithmetic unit 0 106, together with CPU core 102, primarily performs unpatterned geometric processing.

ベクトル演算ユニット1 108は5個のFMACと1個のFDIVとを有している。ベクトル演算ユニット1はCPUコア102への直接的な経路を有していないが、GIFユニット110への直接的な経路を有している。ベクトル演算ユニット1は、データ用の16KBのベクトル演算ユニットメモリと、命令用の16KBのマイクロメモリとを有している。ベクトル演算ユニット1 108は変換を実行するのに有用である。ベクトル演算ユニット1は、パターン化された幾何学的処理を主に実行し、生成されたディスプレイリストを直接GIF110に出力する。   The vector operation unit 1 108 has 5 FMACs and 1 FDIV. The vector operation unit 1 does not have a direct path to the CPU core 102 but has a direct path to the GIF unit 110. The vector operation unit 1 has a 16 KB vector operation unit memory for data and a 16 KB micro memory for instructions. Vector arithmetic unit 1 108 is useful for performing transformations. The vector operation unit 1 mainly executes the patterned geometric processing and outputs the generated display list directly to the GIF 110.

GIF110はグラフィックスシンセサイザ200へのインタフェースユニットである。GIF110は、ディスプレイリストパケットの最初にあるタグスペシフィケーションに従ってデータを変換し、描画コマンドをグラフィックスシンセサイザ200に転送すると共に、相互に複数の転送のアービトレーションを行なう。割り込みコントローラ(INTC)112は、DMAC116を除く周辺デバイスからの割り込みのアービトレーションを行なう。   The GIF 110 is an interface unit to the graphics synthesizer 200. The GIF 110 converts the data according to the tag specification at the beginning of the display list packet, transfers the drawing command to the graphics synthesizer 200, and arbitrates a plurality of transfers with each other. An interrupt controller (INTC) 112 arbitrates interrupts from peripheral devices other than the DMAC 116.

タイマーユニット114は、16ビットカウンタを備えた4個の独立したタイマーを有している。これらのタイマーはバスクロック(1/16あるいは1/256の間隔)あるいは外部クロックによって駆動される。DMAC116は、メインメモリとスクラッチパッドRAMとの間の、あるいはメインメモリかスクラッチパッドRAMと周辺装置との間のデータ転送を処理する。同時に、DMAC116はメインバス124のアービトレーションを行なう。DMAC116の性能の最適化はエモーションエンジンの性能を向上するための主要な方法である。画像処理ユニット(IPU)118は、圧縮された動画およびテクスチャ画像を展開するために用いられる画像データプロセッサである。画像処理ユニット118はマクロブロックの復号、色空間の変換、そしてベクトル量子化を実行する。最後に、サブバスインタフェース(SIF)122は、IOP700へのインタフェースユニットである。IPUは、サウンドチップや記憶装置などのI/Oデバイスを制御するために、自分自身のメモリとバスを有している。   The timer unit 114 has four independent timers with 16-bit counters. These timers are driven by a bus clock (1/16 or 1/256 interval) or an external clock. The DMAC 116 handles data transfer between the main memory and the scratch pad RAM, or between the main memory or the scratch pad RAM and the peripheral device. At the same time, the DMAC 116 arbitrates the main bus 124. Optimizing the performance of the DMAC 116 is the primary method for improving the performance of the emotion engine. An image processing unit (IPU) 118 is an image data processor used to decompress compressed moving images and texture images. Image processing unit 118 performs macroblock decoding, color space conversion, and vector quantization. Finally, the sub-bus interface (SIF) 122 is an interface unit to the IOP 700. The IPU has its own memory and bus to control I / O devices such as sound chips and storage devices.

図3は、グラフィックスシンセサイザ200の構成を概略的に示す図である。グラフィックスシンセサイザは、ホストインタフェース202と、ピクセルパイプライン206と、メモリインタフェース208と、フレームページバッファ214およびテクスチャページバッファ216を含むローカルメモリ212と、ビデオ変換器210とを有している。   FIG. 3 is a diagram schematically showing the configuration of the graphics synthesizer 200. The graphics synthesizer has a host interface 202, a pixel pipeline 206, a memory interface 208, a local memory 212 including a frame page buffer 214 and a texture page buffer 216, and a video converter 210.

ホストインタフェース202は、ホスト(この場合はGIF110)との間でデータを転送する。ホストからの描画データおよびバッファデータはどちらもこのインタフェースを通過する。ホストインタフェース202からの出力はグラフィックスシンセサイザ200に供給され、グラフィックスシンセサイザ200は、グラフィックスを展開して、エモーションエンジン100から受信した頂点情報に基づいてピクセルを描き、各ピクセルについてRGBA値、デプス値(Z値)、テクスチャ値およびフォグ値などの情報を計算する。RGBA値は、赤、緑、青(RGB)の色成分および画像オブジェクトの不透明度を示すA成分(アルファ成分)を指定する。アルファ値は完全な透明から完全な不透明までの範囲の値を取り得る。ピクセルデータはピクセルパイプライン206に供給され、ピクセルパイプライン206はテクスチャマッピング、フォギング、およびアルファブレンディングなどの処理を実行し、計算されたピクセル情報に基づいて最終的な描画色を決定する。   The host interface 202 transfers data to and from the host (in this case, the GIF 110). Both drawing data and buffer data from the host pass through this interface. The output from the host interface 202 is supplied to the graphics synthesizer 200. The graphics synthesizer 200 decompresses the graphics and draws pixels based on the vertex information received from the emotion engine 100, and the RGBA value, depth for each pixel. Information such as value (Z value), texture value and fog value is calculated. The RGBA value designates red, green and blue (RGB) color components and an A component (alpha component) indicating the opacity of the image object. Alpha values can range from completely transparent to completely opaque. Pixel data is supplied to the pixel pipeline 206, which performs processes such as texture mapping, fogging, and alpha blending, and determines the final drawing color based on the calculated pixel information.

ピクセルパイプライン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 pixel pipeline 206 includes 16 pixel engines PE1, PE2,. . . , PE16, a maximum of 16 pixels can be processed simultaneously. The pixel pipeline 206 operates at 150 MHz (actually 294.912 / 2 MHz), is 32-bit color and has a 32-bit Z buffer. The memory interface 208 reads / writes data from / to the local graphics synthesizer memory 212. The memory interface 208 writes the drawing pixel values (RGBA and Z) to the memory at the end of the pixel operation, and reads the pixel values of the frame buffer 214 from the memory. These pixel values read from the frame buffer 214 are used for pixel testing or alpha blending. The memory interface 208 also reads RGBA values for the current contents of the frame buffer from the local memory 212. The local memory 212 is a 32 Mbit (4 MB) memory built in the graphics synthesizer 200. The local memory 212 can be configured as a frame buffer 214, a texture buffer 216, and a Z buffer 215. The frame buffer 214 is a part of the video memory, and stores pixel data such as color information.

グラフィックスシンセサイザは、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 local memory 212 includes a 1024-bit read port and a 1024-bit write port for accessing the frame buffer and the Z buffer, and a 512-bit port for reading textures. Video converter 210 is operable to display the contents of the frame memory in a specified output format.

次に、図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 system unit 910 is provided with various peripheral devices that can be connected to the system unit.

システムユニット910は、セルプロセッサ1100と、ラムバス(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1500と、専用ビデオランダムアクセスメモリ(VRAM)ユニット1250を備えたリアリティシンセサイザグラフィックスユニット1200と、I/Oブリッジ1700とを有している。   The system unit 910 includes a cell processor 1100, a Rambus® dynamic random access memory (XDRAM) unit 1500, a reality synthesizer graphics unit 1200 including a dedicated video random access memory (VRAM) unit 1250, an I / O And a bridge 1700.

システムユニット910はまた、ディスク1440を読み取るためのブルーレイ(登録商標)ディスクBD−ROM(登録商標)光ディスク読取り装置1430と、取外し可能スロットインハードディスクドライブ(HDD)1400とを有しており、それらにはI/Oブリッジ1700を介してアクセスすることができる。オプションとして、システムユニットはまた、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(登録商標)メモリカードなどを読み取るためのメモリカード読取装置1450を有しており、同様にI/Oブリッジ1700を介してアクセスすることができる。   The system unit 910 also includes a Blu-ray (registered trademark) disk BD-ROM (registered trademark) optical disk reader 1430 for reading the disk 1440, and a removable slot-in hard disk drive (HDD) 1400. Can be accessed via the I / O bridge 1700. Optionally, the system unit also has a memory card reader 1450 for reading a CompactFlash® memory card, a Memory Stick® memory card, etc., as well via an I / O bridge 1700. Can be accessed.

I/Oブリッジ1700はまた、6個のユニバーサルシリアルバス(USB)2.0ポート1710と、ギガビットイーサネット(登録商標)ポート1720と、IEEE802.11b/gワイヤレスネットワーク(Wi−Fi)ポート1730と、7つのブルートゥース接続をサポートできるブルートゥース(登録商標)ワイヤレスリンクポート1740とに接続されている。   The I / O bridge 1700 also includes six universal serial bus (USB) 2.0 ports 1710, a Gigabit Ethernet port 1720, an IEEE 802.11b / g wireless network (Wi-Fi) port 1730, It is connected to a Bluetooth® wireless link port 1740 that can support seven Bluetooth connections.

動作の際に、I/Oブリッジ1700はすべてのワイヤレス、USBそしてイーサネット(登録商標)のデータを扱うが、それには1つ以上のゲームコントローラ1751からのデータが含まれる。例えば、ユーザがゲームをプレイしている場合、I/Oブリッジ1700はブルートゥースリンクを介してゲームコントローラ1751からデータを受信し、そのデータをセルプロセッサ1100へと向け、セルプロセッサ1100はそれに従ってゲームの現在状態を更新する。   In operation, the I / O bridge 1700 handles all wireless, USB, and Ethernet data, including data from one or more game controllers 1751. For example, if the user is playing a game, the I / O bridge 1700 receives data from the game controller 1751 via the Bluetooth link and directs the data to the cell processor 1100, which in accordance with the game's Update the current state.

ワイヤレスポート、USBポート、そしてイーサネット(登録商標)ポートによって、ゲームコントローラ1751のほかに他の周辺デバイスが接続できるが、そのような周辺デバイスとして、リモコン1752、キーボード1753、マウス1754、ソニープレイステーションポータブル(登録商標)娯楽装置などのポータブル娯楽装置1755、アイトイ(登録商標)ビデオカメラなどのビデオカメラ1756、マイクヘッドセット1757などがある。従って、そのような周辺デバイスは、原理的には、システムユニット910に無線で接続できる。例えば、ポータブル娯楽装置1755はWi−Fiアドホック接続により通信することができ、マイクヘッドセット1757はブルートゥースリンクによって通信することができる。   In addition to the game controller 1751, other peripheral devices can be connected through a wireless port, a USB port, and an Ethernet (registered trademark) port. As such peripheral devices, a remote controller 1752, a keyboard 1753, a mouse 1754, a Sony PlayStation Portable ( A portable entertainment device 1755 such as a registered trademark entertainment device, a video camera 1756 such as an eye toy video camera, a microphone headset 1757, and the like. Accordingly, such peripheral devices can in principle be connected to the system unit 910 wirelessly. For example, portable entertainment device 1755 can communicate over a Wi-Fi ad hoc connection and microphone headset 1757 can communicate over a Bluetooth link.

これらのインタフェースが設けられていることは、プレイステーション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 memory card reader 1410 can be connected to the system unit via the USB port 1710 so that the type of memory card 1420 used by the PlayStation® or PlayStation 2® device can be read. It becomes possible.

本実施形態では、ゲームコントローラ1751は、ブルートゥースリンクによってシステムユニット910と無線通信を行なうことができる。しかし、その代わりとして、ゲームコントローラ1751をUSBポートに接続してもよく、それによればゲームコントローラ1751のバッテリを充電する電源を供給できる。1個以上のアナログジョイスティックや従来のコントロールボタンに加えて、ゲームコントローラは、各軸での平行移動および回転に対応する6自由度の動きを感知できる。その結果、従来のボタンあるいはジョイスティックによるコマンドに加えあるいは替えて、ゲームコントローラのユーザによるジェスチャーおよび動作をゲームに対する入力に変換することができる。オプションとして、プレイステーションポータブル装置などワイヤレスで使用可能な他の周辺デバイスをコントローラとして使用することができる。プレイステーションポータブル装置の場合、付加的なゲーム情報あるいは制御情報(例えば、制御命令あるいはゲームオーバーまでリトライできる数)を装置の画面上に提供することができる。他の代替的あるいは補助的なコントロール装置を用いることもでき、例えば、ダンスマット(図示されていない)、ライトガン(図示されていない)、ステアリングホイールとペダル(図示されていない)、あるいは迅速応答クイズゲーム用の1個あるいは数個の大きなボタンなどのオーダーメイドのコントローラなどを用いることもできる。   In the present embodiment, the game controller 1751 can perform wireless communication with the system unit 910 via a Bluetooth link. However, as an alternative, the game controller 1751 may be connected to a USB port, whereby power to charge the battery of the game controller 1751 can be supplied. In addition to one or more analog joysticks and conventional control buttons, the game controller can sense six degrees of freedom movement corresponding to translation and rotation on each axis. As a result, in addition to or in place of the conventional buttons or joystick commands, gestures and actions by the game controller user can be converted into input to the game. Optionally, other peripheral devices that can be used wirelessly, such as a PlayStation portable device, can be used as the controller. In the case of a PlayStation portable device, additional game information or control information (eg, a control command or a number that can be retried until the game is over) can be provided on the screen of the device. Other alternative or auxiliary control devices can be used, such as a dance mat (not shown), light gun (not shown), steering wheel and pedal (not shown), or quick response Custom controllers such as one or several large buttons for a quiz game can also be used.

リモコン1752もブルートゥースリンクによってシステムユニット910との無線通信を行なうことができる。リモコン1752は、ブルーレイディスクBD−ROM読取り装置1430の操作およびディスクコンテンツの操作に適切なコントロールを有している。   The remote controller 1752 can also perform wireless communication with the system unit 910 via the Bluetooth link. The remote controller 1752 has appropriate controls for the operation of the Blu-ray Disc BD-ROM reader 1430 and the operation of the disc content.

ブルーレイディスクBD−ROM読取り装置1430は、従来の記録済みのあるいは追記型のCDならびにいわゆるスーパーオーディオCDに加えて、プレイステーションおよびプレイステーション2装置に適合したCD−ROMの読み取りを行なうことができる。読取り装置1430はまた、従来の記録済みのあるいは追記型のDVDに加えて、プレイステーション2およびプレイステーション3装置に適合したDVD−ROMの読み取りを行なうこともできる。更に、読取り装置1430は、従来の記録済みのあるいは追記型のブルーレイディスクに加えて、プレイステーション3に適合したBD−ROMの読み取りを行なうことができる。   The Blu-ray Disc BD-ROM reader 1430 can read CD-ROMs suitable for PlayStation and PlayStation 2 devices in addition to conventional recorded or write-once CDs and so-called super audio CDs. The reader 1430 can also read DVD-ROMs compatible with PlayStation 2 and PlayStation 3 devices in addition to conventional recorded or write-once DVDs. Further, the reading device 1430 can read a BD-ROM adapted to the PlayStation 3 in addition to a conventional recorded or write-once Blu-ray disc.

システムユニット910は、表示画面1305および1以上のスピーカ1310を有するモニタやテレビなどのディスプレイ/サウンド出力デバイス1300にオーディオコネクタおよびビデオコネクタを介してオーディオおよびビデオを提供することができる。それらのオーディオおよびビデオは、プレイステーション3装置がリアリティシンセサイザグラフィックスユニット1200によって生成あるいは復号したものである。オーディオコネクタ1210は従来のアナログならびにディジタル出力を含むことができ、他方、ビデオコネクタ1220はコンポーネントビデオ、S−ビデオ、複合ビデオ、1以上の高精細度マルチメディアインタフェース(HDMI)出力を様々に含むことができる。その結果、ビデオ出力は、PAL方式あるいはNTSC方式、あるいは720p、1080i、1080pでの高精細度のフォーマットとすることができる。   The system unit 910 can provide audio and video via an audio connector and a video connector to a display / sound output device 1300 such as a monitor or television having a display screen 1305 and one or more speakers 1310. Those audio and video are generated or decoded by the PlayStation 3 device by the reality synthesizer graphics unit 1200. Audio connector 1210 can include conventional analog as well as digital outputs, while video connector 1220 includes various component video, S-video, composite video, and one or more high definition multimedia interface (HDMI) outputs. Can do. As a result, the video output can be in a PAL format, NTSC format, or a high definition format in 720p, 1080i, 1080p.

オーディオ処理(生成、復号など)はセルプロセッサ1100によって実行される。プレイステーション3装置のオペレーティングシステムはドルビー(登録商標)5.1サラウンドサウンド、ドルビー(登録商標)シアターサラウンド(DTS)、およびブルーレイ(登録商標)ディスクからの7.1サラウンドサウンドの復号をサポートしている。   Audio processing (generation, decoding, etc.) is performed by the cell processor 1100. The PlayStation 3 device operating system supports decoding Dolby 5.1 Surround Sound, Dolby® Theater Surround (DTS), and 7.1 Surround Sound from Blu-ray® discs .

本実施形態では、ビデオカメラ1756は1個の電荷結合素子(CCD)と、LEDインジケータと、ハードウェアベースのリアルタイムデータ圧縮符号化装置とを有しているので、圧縮されたビデオデータを、画像内ベースのMPEG(motion picture expert group)規格など、システムユニット910による復号に適したフォーマットで送信することができる。カメラのLEDインジケータはシステムユニット910からの適切な制御データに応じて光を照らすようにされており、例えば、照明条件が悪いことなどを知らせる。ビデオカメラ1756の実施形態は、USB、ブルートゥース、あるいはWi−Fi通信ポートを介してなど、様々な仕方でシステムユニット910に接続できる。ビデオカメラの実施形態は、関連したマイクを含むことができ、オーディオデータを送信することもできる。ビデオカメラの実施形態では、CCDの解像度は高精細ビデオキャプチャに適したものとすることができる。使用時に、ビデオカメラによりキャプチャされた画像をゲーム内に組み込んだり、ゲームを制御する入力として解釈したりすることができる。   In this embodiment, the video camera 1756 has one charge-coupled device (CCD), an LED indicator, and a hardware-based real-time data compression encoding device. It can be transmitted in a format suitable for decoding by the system unit 910, such as a motion picture expert group (MPEG) standard. The LED indicator of the camera is adapted to illuminate light in accordance with appropriate control data from the system unit 910, and informs that the lighting conditions are bad, for example. Embodiments of video camera 1756 can be connected to system unit 910 in various ways, such as via USB, Bluetooth, or Wi-Fi communication ports. Video camera embodiments can include an associated microphone and can also transmit audio data. In video camera embodiments, the CCD resolution may be suitable for high definition video capture. In use, the image captured by the video camera can be incorporated into the game or interpreted as input to control the game.

一般に、システムユニット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 system unit 910, appropriate software such as a device driver must be provided. . Device driver technology is well known and will not be described in detail here, but it will be known to those skilled in the art that a device driver or similar software interface is required in this embodiment.

次に図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 cell processor 1100 includes four basic components: an external input / output structure having a memory controller 1160 and dual bus interface controllers 1170A, 1170B, and a power processing element (PPE) 1150. A main processor referred to, eight coprocessors referred to as synergistic processing elements (SPE) 1110A-1110H, and a circular data bus referred to as an element interconnect bus 1180 connecting the components Yes. The overall floating point arithmetic performance of the cell processor is 218 GFLOPS, and the Emotion Engine of the PlayStation 2 device is 6.2 GFLOPS.

パワープロセシングエレメント(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 PPE 1150 has a 512 kB secondary (L2) cache and a 32 kB primary (L1) cache. The PPE 1150 can perform single precision operations 8 times per clock cycle, in other words, 25.6 GFLOPS at 3.2 GHz. The main role of the PPE 1150 is to function as a controller for the synergistic processing elements 1110A-1110H, and the synergistic processing elements 1110A-1110H handle the majority of the computational workload. In operation, PPE 1150 maintains a job queue, schedules jobs for synergistic processing elements 1110A-1110H, and monitors their progress. As a result, each of the synergistic processing elements 1110A-1110H executes a kernel, but the role of the kernel is to fetch and execute jobs and synchronize with the PPE 1150.

各シナジスティックプロセシングエレメント(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 local RAM 1130A-1130H, but the local RAM can be expanded to 4 GB in principle. Each SPE can theoretically realize single-precision computing performance of 25.6 GFLOPS. SPU 'can perform operations on four single precision floating point numbers, or four 32-bit numbers, or eight 16-bit integers in a single clock cycle. In the same clock cycle, SPU 'can also perform memory operations. SPU'1120A-1120H does not directly access system memory XDRAM 1500. The 64-bit address created by SPU'1120A-1120H is handed over to MFC 1140A-1140H so that MFC 1140A-1140H accesses the memory via its element interconnect bus 1180 and memory controller 1160 to its DMA controller 1142A-1142H. Command.

エレメントインターコネクトバス(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 cell processor 1100. The processor element, that is, the PPE 1150, the memory controller 1160, the dual bus interfaces 1170A and 1170B, and the eight SPEs 1110A. -1110H, ie a total of 12 participating elements. Participating elements can simultaneously read from and write to the bus at a rate of 8 bytes per clock cycle. Each SPE 1110A-1110H has a DMAC 1142A-1142H as described above to schedule a long read or write sequence. The EIB has four channels, two clockwise and two counterclockwise. Thus, for 12 participating elements, the longest stepwise data flow between any two participating elements is 6 steps in the appropriate direction. Thus, the theoretical peak instantaneous EIB bandwidth for 12 slots is 96B (bytes) per clock, when fully utilized by arbitration between participating elements. This is equivalent to a theoretical peak bandwidth of 307.2 GB / s (gigabytes / second) for a clock rate of 3.2 GHz.

メモリコントローラ1160は、ラムバス社(Rambus Incorporated)により開発されたXDRAMインタフェース1162を有している。メモリコントローラは、ラムバスXDRAM1500に対して理論的ピーク帯域幅25.6GB/sでインタフェース接続する。   The memory controller 1160 has an XDRAM interface 1162 developed by Rambus Incorporated. The memory controller interfaces to the Rambus XDRAM 1500 with a theoretical peak bandwidth of 25.6 GB / s.

デュアルバスインタフェース1170A,Bは、ラムバスFlexIO(登録商標)システムインタフェース1172A,Bを有している。インタフェースは12チャネルに組織され、各チャネル8ビット幅であり、5つの経路はインバウンドで、7つの経路はアウトバウンドである。これによって、コントローラ1170Aを介してセルプロセッサとI/Oブリッジ1700との間に、またコントローラ1170Bを介してリアリティシミュレータグラフィックスユニット1200との間に、62.4GB/s(アウトバウンド36.4GB/s、インバウンド26GB/s)の理論的ピーク帯域幅が提供される。   The dual bus interfaces 1170A, B have Rambus FlexIO (registered trademark) system interfaces 1172A, B. The interface is organized into 12 channels, each channel is 8 bits wide, 5 paths are inbound and 7 paths are outbound. Thus, 62.4 GB / s (outbound 36.4 GB / s) is transmitted between the cell processor and the I / O bridge 1700 via the controller 1170A and between the reality simulator graphics unit 1200 via the controller 1170B. , A theoretical peak bandwidth of inbound 26 GB / s) is provided.

セルプロセッサ1100によりリアリティシミュレータグラフィックスユニット1200に送信されるデータは、通常、ディスプレイリストから成っており、ディスプレイリストは頂点を描画するコマンド、テクスチャをポリゴンに適用するコマンド、照明条件を指定するコマンドなどのシーケンスである。   The data sent to the reality simulator graphics unit 1200 by the cell processor 1100 usually consists of a display list. The display list is a command for drawing vertices, a command for applying textures to polygons, a command for specifying lighting conditions, etc. This is the sequence.

次に、図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) unit 1200 is a video accelerator based on the NVidia® G70 / 71 architecture that processes the list of commands generated by the cell processor 1100. , Render. The RSX unit 1200 includes a host interface 1202 capable of communicating with the bus interface controller 1170B of the cell processor 1100, a vertex pipeline (VP) 1204 including eight vertex shaders 1205, and a pixel pipe including 24 pixel shaders 1207. It includes a line (PP) 1206, a render pipeline (RP) 1208 with eight render output units (ROP) 1209, a memory interface 1210, and a video converter 1212 that generates video output. The RSX 1200 is complemented by a 256 MB double data rate (DDR) video RAM (VRAM) 1250 that operates with a 600 MHz clock and can interface with the RSK 1200 with a theoretical peak bandwidth of 25.6 GB / s. In operation, the VRAM 1250 holds a frame buffer 1214 and a texture buffer 1216. Texture buffer 1216 provides texture to pixel shader 1207 and frame buffer 1214 stores the results of the processing pipeline. The RSX can access the main memory 1500 via the EIB 1180 to load textures into the VRAM 1250, for example.

バーテックスパイプライン1204は、主として、レンダリングされる画像内のポリゴンを定義する頂点(バーテックス)の変形および変換を処理する。   The vertex pipeline 1204 primarily handles vertex transformations and transformations that define the polygons in the rendered image.

ピクセルパイプライン1206は、主として、それらポリゴンに対する色、テクスチャ、照明の適用を処理するが、それにはピクセルの透明度も含まれる。ピクセルパイプラインはまた、処理される各ピクセルに対する赤、緑、青およびアルファ(透明度)の値を生成する。テクスチャマッピングは、単にグラフィックス画像を表面に適用することでもよいし、バンプマッピング(表面の概念上の向きをテクスチャ値に応じて摂動させることによって照明モデルにハイライトや陰を生成する方法)あるいは変位マッピング(適用されるテクスチャが更に頂点の位置を摂動させることにより、テクスチャと調和する変形された表面を生成する方法)を含んでもよい。   The pixel pipeline 1206 primarily handles the application of color, texture, and lighting to those polygons, including pixel transparency. The pixel pipeline also generates red, green, blue and alpha (transparency) values for each pixel processed. Texture mapping can be simply applying a graphics image to the surface, or bump mapping (a method that generates highlights and shades in the lighting model by perturbing the conceptual orientation of the surface according to the texture value) or Displacement mapping (a method in which the applied texture further perturbs the position of the vertices to produce a deformed surface that matches the texture).

レンダーパイプライン1208はピクセル間のデプスを比較して、最終画像においてどちらをレンダリングすべきかを決定する。オプションとして、途中のピクセル工程がデプス値に影響しない場合(例えば、透明度や変位マッピングが無い場合)、レンダーパイプラインおよびバーテックスパイプライン1204は互いにデプス情報を通知して、見えないエレメントをピクセル処理の前に取り除くことにより、全体としてのレンダリングの効率性を向上できる。それに加えて、レンダーパイプライン1208はまた、結果として得られた画像に対して、フルスクリーンのアンチエイリアス処理のような、その後の効果を適用する。   The render pipeline 1208 compares the depth between pixels to determine which to render in the final image. As an option, if the pixel process in the middle does not affect the depth value (for example, if there is no transparency or displacement mapping), the render pipeline and the vertex pipeline 1204 notify each other of the depth information, and the invisible elements are processed by pixel processing. By removing it in advance, the overall rendering efficiency can be improved. In addition, the render pipeline 1208 also applies subsequent effects, such as full screen anti-aliasing, to the resulting image.

バーテックスシェーダ1205およびピクセルシェーダ1207のどちらもシェーダモデル3.0規格に基づいている。クロックサイクル毎に136シェーダ演算まで実行でき、連結されたパイプラインは毎秒748億シェーダ演算を実行でき、毎秒8億4千万個の頂点および100億個のピクセルまでを出力することができる。RSX1200の全体としての浮動小数点演算性能は1.8TFLOPSである。   Both the vertex shader 1205 and the pixel shader 1207 are based on the shader model 3.0 standard. Up to 136 shader operations can be performed every clock cycle, and the concatenated pipeline can perform 74.8 billion shader operations per second, outputting up to 840 million vertices and 10 billion pixels per second. The overall floating point performance of RSX1200 is 1.8TFLOPS.

通常、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 RSX 1200 operates in close cooperation with the cell processor 1100. For example, when displaying weather effects such as explosions, rain or snow, it is necessary to trace the traces of many particles, update them, and render them in the scene. In this case, the cell processor PPU 1155 must schedule one or more SPEs 1110A-1110H to calculate the trajectory of each swarm of particles. Meanwhile, if there is texture data (for example, snowflakes) that is not currently held in the video RAM 1250, the RSX 1200 sends the texture data from the main system memory 1500 via the element interconnect bus 1180, the memory controller 1160, and the bus interface controller 1170. read out. The (or each) SPE 1110A-1110H outputs the computed particle properties (typically coordinates and normals indicating position and orientation) directly to the video RAM 1250, but the (or each) SPE 1110-1110H DMA Controllers 1142A-1142H address video RAM 1250 via bus interface controller 1170B. Thus, the assigned SPE is effectively part of the video processing pipeline for the life of the task. In general, the PPU 1155 will thus assign tasks to six of the eight available SPEs in this way. assign. That is, one SPE is reserved for the operating system, while one SPE is arbitrarily disabled. When one SPE is prohibited from being used, the failure of the manufacturing process by one SPE can be allowed, so that the level of the allowable value at the time of manufacturing the cell processor can be increased. Alternatively, if all eight SPEs are operational, the eighth SPE can provide redundancy for later failure by one of the other SPEs during the lifetime of the cell processor.

PPU1155は様々な仕方でSPEにタスクを割り当てることができる。例えば、SPEを互いに連鎖させることにより、DVDのアクセスやビデオならびにオーディオの復号、エラーマスキングなどのような複雑な動作の各ステップをそれぞれ別個のSPEに割り当てて、扱うようにさせることができる。それとは別に、あるいはそれに加えて、上記の粒子のアニメーションの例の場合など、2個以上のSPEで入力データをパラレルに扱うように割り当てることができる。   PPU 1155 can assign tasks to SPEs in various ways. For example, by chaining SPEs to each other, steps of complicated operations such as DVD access, video and audio decoding, error masking, etc. can be assigned to separate SPEs for handling. Alternatively or additionally, the input data can be assigned to be handled in parallel by two or more SPEs, such as in the case of the particle animation example described above.

セルプロセッサ1100および/またはRSX1200により実行されるソフトウェア命令は、製造時に供給してHDD1400に記憶してもよいし、および/または、光ディスクや固体状態記憶装置などのデータキャリヤあるいは記憶媒体によって、あるいは有線あるいは無線ネットワークやインターネット接続のような伝送媒体によって、あるいはそれらの組み合わせによって供給してもよい。   Software instructions executed by cell processor 1100 and / or RSX 1200 may be supplied at the time of manufacture and stored in HDD 1400 and / or by a data carrier or storage medium such as an optical disk or solid state storage device, or wired Alternatively, it may be supplied by a transmission medium such as a wireless network or Internet connection, or a combination thereof.

製造時に供給されるソフトウェアには、システムファームウェアとプレイステーション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 game controller 1751, remote control 1752, or other suitable control device, but at the highlighted function location. The options related to the function appear as a list that can be scrolled vertically to a position centered on the function, and the list can be manipulated in a similar manner. However, when a game, audio or movie disc 1440 is inserted into the BD-ROM optical disc reader 1430, the PlayStation 3 device may automatically select the appropriate option (eg, start the game). Alternatively, an appropriate option (for example, selection between playback of an audio disc and compression of the content into the HDD 1400) may be provided.

更に、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 PPE 1150 controls the overall operation of the emulation side system and executes an operating system (OS) for the emulation side system. The PPE 1150 also translates the native emotion engine PS2 instructions into native SPE instructions in a single thread and related information needed to execute each part of the emulation (such as allocation of emulation functions-see description below) To the appropriate SPE via the EIB. Other threads, on the other hand, provide the emulation system with the ability to recompile new code that is native and provide specific functionality defined by the translated PS2 code. The emulation of the various parts of the PS2 system described above is transferred to eight SPEs acting as emulation-side processing units, which emulate the PS2 functions shown below. It will be appreciated that the precise identification of individual SPEs is merely for convenience of notation and is not of technical importance due to the nature of message passing between SPEs. Thus, for example, operations assigned to SPEs 1110A and 1110B can be interchanged without any technical impact on the overall emulation process. It will also be appreciated that a task can actually be divided among the remaining 7 SPEs, as described above, since one SPE can be disabled.

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 Arithmetic Unit 0
SPE1110C VIF0, VIF1, GIF110
SPE1110D Vector arithmetic unit 1
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 vector arithmetic unit 1 to reduce the load on one thread of the PPE1150. SPE1110G SPU300
SPE1110H IOP700 and SIF122
PS2 uses a conventional bus for communication between various emulated processing units. The emulation side system uses the EIB 1180 to pass messages between SPEs and between SPEs, PPEs 1150 and I / O bridges 1700 (and / or other system devices such as RSX 1200). The PS2 system has a conventional memory access configuration for accessing the RDRAM 500. The emulated system uses a distributed DMA system (DMA controllers 1142A-1142H). The main system memory 1500 is treated as a common memory “pool” and all SPEs can access it.

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.
請求項1に記載のデータプロセッサであって、エミュレーション側プロセシングユニットが、メッセージ受け渡し通信プロトコルによって互いに通信することを特徴とするデータプロセッサ。 The data processor according to claim 1, wherein the emulation-side processing units communicate with each other by a message passing communication protocol. 請求項2に記載のデータプロセッサであって、エミュレーション側プロセシングユニットは、エミュレートされる動作を前記メッセージ受け渡し通信プロトコルを介して同期させるように、構成されていることを特徴とするデータプロセッサ。 3. A data processor according to claim 2, wherein the emulation processing unit is configured to synchronize the emulated operation via the message passing communication protocol. 請求項2あるいは3に記載のデータプロセッサであって、エミュレーション側プロセシングユニットが循環データバスによって相互接続されていることを特徴とするデータプロセッサ。 4. A data processor according to claim 2, wherein the emulation-side processing units are interconnected by a circular data bus. 請求項4に記載のデータプロセッサであって、前記データバスは双方向バスであることを特徴とするデータプロセッサ。 5. The data processor according to claim 4, wherein the data bus is a bidirectional bus. 上に記載された請求項のいずれか1つに記載のデータプロセッサであって、監視プロセッサを有し、前記監視プロセッサは被エミュレーション側プロセッサに関する命令を翻訳し、翻訳された命令が実行できるように、エミュレーション側プロセシングユニットに情報を提供することを特徴とするデータプロセッサ。 A data processor according to any one of the preceding claims, comprising a supervisory processor, wherein the supervisory processor translates instructions relating to the emulated processor so that the translated instructions can be executed. A data processor for providing information to the processing unit on the emulation side. 請求項6に記載のデータプロセッサであって、被エミュレーション側プロセシングユニットに供給される前記情報が、エミュレーション側プロセシングユニットにネイティブなオブジェクトコードを有することを特徴とするデータプロセッサ。 7. The data processor according to claim 6, wherein the information supplied to the emulation-side processing unit has an object code native to the emulation-side processing unit. 請求項6あるいは請求項7に記載のデータプロセッサであって、前記監視プロセッサは、どの被エミュレーション側プロセシングユニットがあるエミュレーション側プロセシングユニットによりエミュレートされるかを変更するために、エミュレーションタスクのエミュレーション側プロセシングユニットへのアロケーションを変化させるように動作できることを特徴とするデータプロセッサ。 8. A data processor according to claim 6 or claim 7, wherein the monitoring processor is configured to change which emulation-side processing unit is emulated by an emulation-side processing unit. A data processor, characterized in that it is operable to change the allocation to the processing unit. 複数の相互に接続された被エミュレーション側プロセシングユニットを備えた被エミュレーション側プロセッサの動作をエミュレートするように配列された複数の相互に接続されたエミュレーション側プロセシングユニットを有するシステムに関するデータ処理方法であって、
前記方法は、
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:
請求項9に記載の方法を実行するためのコンピュータソフトウェア。 Computer software for performing the method of claim 9. 請求項10に記載のコンピュータソフトウェアを提供する媒体。 A medium for providing the computer software according to claim 10. 請求項11に記載の媒体であって、記憶媒体であることを特徴とする媒体。 The medium according to claim 11, wherein the medium is a storage medium. 請求項11に記載の媒体であって、伝送媒体であることを特徴とする媒体 12. A medium according to claim 11, wherein the medium is a transmission medium.
JP2011120250A 2006-02-21 2011-05-30 Data processing Active JP5746916B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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