
エモーションエンジンは、ソニー・コンピュータエンタテインメントと東芝が開発・製造した、ビデオゲーム機プレイステーション2用の中央処理装置である。また、日本と北米で販売された初期のプレイステーション3モデル(モデル番号CECHAxxおよびCECHBxx)にも使用され、プレイステーション2のゲームサポートを提供した。エモーションエンジンの量産は1999年に始まり、プレイステーション2の生産終了とともに2012年後半に終了した。[1]
説明


エモーション エンジンは、それぞれが特定のタスクを実行する 8 つの独立した「ユニット」で構成され、同じダイに統合されています。これらのユニットは、CPU コア、2 つのベクトル処理ユニット(VPU)、10 チャネルDMAユニット、メモリ コントローラ、および画像処理ユニット(IPU) です。インターフェイスは 3 つあります。I/O プロセッサへの入力出力インターフェイス、グラフィックス シンセサイザーへのグラフィックス インターフェイス (GIF)、およびシステム メモリへのメモリ インターフェイスです。[2]
CPU コアは、最初の VPU (VPU 0 ) と密接に結合されています。これらは一緒になって、ゲーム コードと高レベルのモデリング計算を実行します。2 番目の VPU (VPU 1 ) は、ジオメトリ変換とライティング専用で、CPU コアと並行して独立して動作し、マイクロコードによって制御されます。VPU 0 は、使用されていない場合は、ジオメトリ変換にも使用できます。CPU /VPU0 と VPU1 によって生成されたディスプレイ リストはGIF に送信され、優先順位が付けられてから、レンダリングのためにグラフィックス シンセサイザーに送信されます。
CPUコア
CPUコアは双方向スーパースカラ・ インオーダー RISCプロセッサである。[3] MIPS R5900をベースに、MIPS-III 命令セットアーキテクチャ(ISA)とMIPS-IVの大部分を実装している。さらに、ソニーが開発したカスタム命令セットも実装しており、128ビット幅の32ビット、16ビット、または8ビットの整数のグループを単一命令複数データ(SIMD)方式で操作する(例えば、4つの32ビット整数を1つの命令で他の4つの整数に加える)。定義されている命令には、加算、減算、乗算、除算、最小/最大、シフト、論理、先頭ゼロカウント、128ビットロード/ストア、256ビットから128ビットへのファンネルシフトなどがあり、さらにソニーが競合上の理由で説明していない命令もある。一部の誤解に反して、これらの SIMD 機能はプロセッサが「128 ビット」になるわけではありません。メモリ アドレスも整数自体も 128 ビットではなく、共有 SIMD/整数レジスタのみが 128 ビットだったからです。比較すると、128 ビット幅のレジスタと SIMD 命令は、 1999 年のSSE導入以来、 32 ビットx86アーキテクチャに存在していました。ただし、内部データ パスは 128 ビット幅であり、そのプロセッサは単一のレジスタで 4x32 ビットの量を並列に処理することができました。
6 段の整数パイプラインと 15 段の浮動小数点(FP) パイプラインを備えています。レジスターの種類は、32 個の 128 ビット VLIW SIMD レジスター (命名/名前変更)、1 個の 64 ビット アキュムレーターと 2 個の 64 ビット汎用データ レジスター、8 個の 16 ビット固定機能レジスター、16 個の 8 ビット コントローラー レジスターで構成されています。また、このプロセッサーには、2 個の 64 ビット整数算術論理ユニット(ALU)、128 ビットロード/ストア ユニット(LSU)、分岐実行ユニット (BXU)、および 32 ビット VU1浮動小数点ユニット(FPU) コプロセッサー (VPU0/VPU1 の同期コントローラーとして機能) があり、32 個の 64 ビット FP レジスターと 15 個の 32 ビット整数レジスターを備えた MIPS ベース プロセッサー コアが含まれています。 ALU は 64 ビットで、IEEE 754 に準拠していない 32 ビット FPU を備えています。カスタム命令セット 107 MMI (マルチメディア拡張) は、2 つの 64 ビット整数 ALU をグループ化して実装されました。整数パイプラインと浮動小数点パイプラインはどちらも 6 ステージの長さです。
実行ユニットに命令とデータを供給するため、16KBの2ウェイセットアソシエイティブ 命令キャッシュ、8KB [4]の2ウェイセットアソシエイティブ非ブロッキングデータキャッシュ、および16KBのスクラッチパッドRAMがある。命令キャッシュとデータキャッシュは両方とも仮想的にインデックス付けされ、物理的にタグ付けされているが、スクラッチパッドRAMは別のメモリ空間に存在する。仮想アドレスを変換するために、48のダブルエントリ命令およびデータ変換ルックアサイドバッファが提供されている。分岐予測は、64エントリの分岐ターゲットアドレスキャッシュと、命令キャッシュに統合された分岐履歴テーブルによって行われる。分岐予測ミスのペナルティは、短い6ステージパイプラインのため3サイクルである。
ベクトル処理装置
Emotion Engine の浮動小数点パフォーマンスの大部分は、VPU0 と VPU1 と呼ばれる 2 つのベクトル処理ユニット (VPU) によって提供されます。これらは基本的に3D 数学用にカスタマイズされたDSPであり、ハードウェア頂点シェーダ パイプラインの先駆けです。各 VPU には、32 個 の 128 ビットベクトル SIMDレジスタ( 4D ベクトルデータを保持)、16 個の 16 ビット固定小数点レジスタ、4 つの浮動小数点積和演算 (FMAC) ユニット、浮動小数点除算 (FDIV) ユニット、およびローカル データ メモリが備わっています。VPU0 のデータ メモリのサイズは 4 KB で、VPU1 のデータ メモリは 16 KB です。
高い帯域幅を実現するために、VPU のデータ メモリは GIF に直接接続されており、両方のデータ メモリはDMAユニットによって直接読み取ることができます。1 つのベクトル命令は 4 つの 32 ビット単精度浮動小数点値で構成され、4 つの単精度 (32 ビット) FMAC ユニットに分散されて処理されます。この方式は、Intel のSSEx拡張に似ています。
FMAC ユニットは 1 つの命令を実行するのに 4 サイクルかかりますが、ユニットには 6 ステージのパイプラインがあるため、1 サイクルあたり 1 つの命令のスループットがあります。FDIV ユニットには 9 ステージのパイプラインがあり、7 サイクルごとに 1 つの命令を実行できます。
画像処理ユニット (IPU)
IPUはMPEG-2圧縮画像のデコードを可能にし、DVDやゲームFMVの再生を可能にした。また、2Dグラフィックスデータのベクトル量子化も可能にした。[5]
DMA、DRAM、メモリ管理ユニット (MMU)
メモリ管理ユニット、RDRAMコントローラ、DMAコントローラはシステム内のメモリアクセスを処理します。[5]
内部データバス
MIPS コア、2 つの VPU、GIF、メモリ コントローラ、およびその他のユニット間の通信は、Emotion Engine のクロック周波数の半分で動作する 128 ビット幅の内部データ バスによって処理されますが、より広い帯域幅を提供するために、CPU と VPU0 の間に 128 ビットの専用パスがあり、VPU1 と GIF の間にも 128 ビットの専用パスがあります。150 MHz では、内部データ バスは最大理論帯域幅 2.4 GB/秒を提供します。
外部インターフェース
Emotion Engine と RAM 間の通信は、2 つのDRDRAM (Direct Rambus Dynamic Random Access Memory) チャネルと、内部データ バスに接続するメモリ コントローラを介して行われます。各チャネルは 16 ビット幅で、400 MHz DDR (Double Data Rate) で動作します。2 つの DRDRAM チャネルを合わせると、理論上の最大帯域幅は 25.6 Gbit/s (3.2 GB/s) となり、内部データ バスよりも約 33% 広い帯域幅になります。このため、メモリ コントローラは DRDRAM チャネルから送信されたデータをバッファリングし、CPU が余分な帯域幅を利用できるようにします。
エモーションエンジンは、最大理論帯域幅が1.2GB/秒の専用64ビット、150MHzバスを備えたGIFを介してグラフィックスシンセサイザーに直接インターフェースします。[6]
エモーション エンジンと入出力プロセッサ (IOP) 間の通信を提供するために、入出力インターフェイスは、最大理論帯域幅が 150 MB/s の 32 ビット幅、37.5 MHz の入出力バスを内部データ バスに接続します。このインターフェイスは、より高速なデータ アクセスとオンライン機能のために P-ATA インターフェイスを内蔵したネットワーク アダプタに使用される PCMCIA 拡張コネクタに十分な帯域幅を提供します。高帯域幅の利点は、IDE HDD サポートを内蔵したネットワーク アダプタなどのハードウェア拡張機能や、機能と製品ライフサイクルを拡張するその他の拡張機能を簡単に導入できることで、これは競争上の優位性と見なされます。ただし、新しいバリアント (スリム エディションなど) では、HDD サポートが削除され、PCMCIA コネクタ デザインが廃止されてよりスリムなデザインが採用されたため、このインターフェイスは PlayStation の入出力デバイスに必要な帯域幅よりもはるかに多くの帯域幅を提供します。
製作
エモーションエンジンには、 240 mm 2の集積回路(IC)ダイ上に1,350万個の金属酸化物半導体(MOS)トランジスタ[7]が搭載されていました。[8]ソニーと東芝によって、 4層の相互接続を備えた0.25 μm(実効L G 0.18 μm)の相補型金属酸化物半導体(CMOS)プロセスで製造されました。
パッケージ
Emotion Engine は、540 コンタクトのプラスチックボール グリッド アレイ(PBGA) にパッケージ化されました。
用途
Emotion Engine の主な用途は、PlayStation 2の CPU として機能することでした。
最初に生産されたPlayStation 3のリビジョンでは、PlayStation 2のゲームとの下位互換性を実現するために、マザーボードにEmotion Engineも搭載されていました。しかし、PlayStation 3の2番目のリビジョンでは、コスト削減のために物理的なEmotion Engineが省略され、Cell Broadband Processorによるソフトウェアエミュレーションと、PlayStation 2との下位互換性を実現するためにハードウェアグラフィックスシンセサイザーが引き続き搭載され、すべての機能を実行していました。その後のすべてのリビジョンでは、グラフィックスシンセサイザーは削除されましたが、後のシステムソフトウェアリビジョンでは、Sony Entertainment Networkで購入できるSonyのPS2 Classicsタイトルで使用するために、PlayStation 2ソフトウェアエミュレーターが提供されています。
Emotion Engine は、PlayStation 2 ハードウェアを使用したPSX (デジタル ビデオ レコーダー)や HDTV テレビ モデル Sony WEGA HVX (モデル番号 KDE-xxxHVX/KDL-xxxHVX)、Sony BRAVIA KDL22PX300 でも使用されました。
技術仕様
- クロック周波数: 294 MHz、299 MHz (後のバージョン)
- 命令セット: MIPS III、MIPS IV サブセット、107 個のベクトル命令
- 2 発行、2 つの 64 ビット固定小数点ユニット、1 つの浮動小数点ユニット、6 ステージ パイプライン
- 命令キャッシュ: 16 KB、2ウェイセットアソシエイティブ
- データキャッシュ: 8 KB、2ウェイセットアソシエイティブ
- スクラッチパッド RAM : 16 KB
- 変換ルックアサイドバッファ:48エントリの命令/データの組み合わせ
- ベクトル処理装置: FMAC ユニット 4 個、FDIV ユニット 1 個
- ベクトル処理ユニットレジスタ: 128ビット幅、32エントリ
- 画像処理ユニット:MPEG2 マクロブロックレイヤーデコーダ
- ダイレクトメモリアクセス:10チャネル
- VDD電圧: 1.8V
- 消費電力: 1.8 Vで15 W
- 組み込みメモリ: 1 KB RAM、4 KB FeRAM、16 KB ROM [9]
理論上の性能
- 浮動小数点: 1 秒あたり 62 億回の単精度(32 ビット)浮動小数点演算
- 透視 変換: 1秒あたり6,600万ポリゴン
- 照明と霧あり: 1秒あたり3600万ポリゴン
- ベジェサーフェス パッチ: 1 秒あたり 1,600 万ポリゴン
- 画像解凍: 1 億 5000 万ピクセル/秒
参照
- グラフィックカード
- グラフィックス処理ユニット
- コンピュータグラフィックス
- コンピュータグラフィックスと記述幾何学のトピックのリスト
- Cellマイクロプロセッサは、 PlayStation 3で使用されているEmotion EngineのCPU+VU0/VU1配置に触発された設計です。
参考文献
- ^ Gilbert, Ben (2013年1月7日). 「ソニー、PlayStation 2の全世界での生産終了を確認」 Engadget . 2013年6月23日閲覧。
- ^ Stokes, Jon (2000年2月16日). 「Sound and Vision: A Technical Overview of the Emotion Engine」. Ars Technica . 2018年6月10日時点のオリジナルよりアーカイブ。2015年6月9日閲覧。
- ^ Diefendorff, Keith (1999年4月19日). 「Sony's Emotionally Charged Chip」(PDF) . Microprocessor Report . 第13巻第5号. 2018年7月25日時点のオリジナルよりアーカイブ(PDF) 。 2017年9月1日閲覧。
- ^ RAM、ROM、フラッシュ、キャッシュなどのトランジスタメモリのサイズやファイルサイズは、K (1024 1 )、M (1024 2 )、G (1024 3 ) などのバイナリの意味を使用して指定されます。
- ^ ab Sporny, Many; Carper, Gray; Turner, Jonathan (2002). 「The Playstation 2 Linux Kit Handbook」.フリーソフトウェア財団。 2003年9月18日時点のオリジナルよりアーカイブ。 2015年6月10日閲覧。
- ^ ディフェンドルフ 1999、5 ページ
- ^ ヘネシー、ジョン L. ;パターソン、デビッド A. (2002 年 5 月 29 日)。コンピュータ アーキテクチャ: 定量的アプローチ (第 3 版)。モーガン カウフマン。p. 491。ISBN 978-0-08-050252-6. 2013年4月9日閲覧。
- ^ Diefendorff, Keith (1999 年4 月 19 日)。「ソニーの感情を込めたチップ: キラー浮動小数点「エモーション エンジン」が PlayStation 2000 に搭載」。マイクロプロセッサ レポート。13 (5) 。S2CID 29649747。
- ^ Scott, JF (2003). 「ナノ強誘電体」。 Tsakalakos, Thomas、Ovid'ko, Ilya A.、Vasudevan, Asuri K. (編)。ナノ構造: 合成、機能特性および応用。Springer Science & Business Media。 pp. 583-600 (584-5, 597)。ISBN 9789400710191。
参考文献
- ヘネシー、ジョン L. ;パターソン、デビッド A. (2002 年 5 月 29 日)。コンピュータ アーキテクチャ: 定量的アプローチ (第 3 版)。モーガン カウフマン。ISBN 978-0-08-050252-6. 2013年4月9日閲覧。
- Diefendorff, Keith (1999年4 月 19 日)。「ソニーの感情を込めたチップ」。マイクロプロセッサ レポート。13 (5)。マイクロデザイン リソース。
