Emotion Engine

読み:エモーション・エンジン
外語:EE: Emotion Engine 英語
品詞:商品名,@部品

PlayStation2で採用された、東芝SCEIの開発した世界初の完全128ビットマイクロプロセッサ。レジスタやデータバス、内部キャッシュメモリーまでが全て128ビット化されたスーパースケーラ構造のプロセッサで、294.912MHz(約300MHz)で動作する。180nmプロセスルールで製造され、集積トランジスタ数は1,050万個、ダイサイズが238平方mm、パッケージは540ピンPBGA、コア電圧は1.8V、消費電力は15Wである。Emotion EngineはSCEIの登録商標である。

米国MIPS TechnologiesのRISCアーキテクチャMIPS Ⅲをベースに、SIMDを整数演算でサポートするマルチメディア命令107個を追加し、またCPUのレジスタを128ビットが32本に拡張した。マイクロプロセッサコアには64ビット整数演算器2機が搭載された。これは1機の128ビット整数演算器としても機能する。

CPUコアには他に6.2GFLOPSの単精度浮動小数点演算ユニット(FPU)、1サイクルでアクセスできる16KiバイトのスクラッチパッドRAM(SPRAM)、16Kiバイトの命令キャッシュ、8Kiバイトのデータキャッシュ、DVD再生を支援するIPU(イメージプロセッシングユニット)、そしてDirect RDRAMに対応し、メモリーバス帯域幅は3.2Gバイト/秒(2.8Gバイト/cBeat)のDMACが2チャンネル搭載されている。

Emotion Engineの大きな特徴は、2系統の単精度ベクトル演算ユニット(VU)である。VUは独自に16ビット整数レジスタと128ビット浮動小数点レジスタを持っていて、これ自身がマイクロプロセッサであるともいえる。浮動小数点演算については、ゲームで用いるIEEE 754の単精度(32ビット)だけに対応し、倍精度(64ビット)などはゲームでは使わないので対応しない、実に潔い設計がなされている。128ビットレジスタには4個の単精度浮動小数点データが格納でき、各4個のFMACで、3Dグラフィックスの4×4のマトリックス演算を並列処理できる。2系統の浮動小数点演算性能はピーク時で6.2GFLOPSとなり、スパコン用マイクロプロセッサにも匹敵する性能を実現する。

これらはそれぞれVU0とVU1と呼ばれ、双方は同等のアーキテクチャであるが、それぞれ役割が異なり、接続などが大きく違う。

VU0は4個の浮動小数点積和演算器(FMAC)と1個の浮動小数点除算演算器(FDIV)を持ち、マイクロ命令用メモリー(命令用/データ用各4Kiバイト)を持つ。

対してVU1は5個の浮動小数点積和演算器(FMAC)と2個の浮動小数点除算演算器(FDIV)を持ち、マイクロ命令用メモリー(命令用/データ用各16Kiバイト)を持つ。そしてVU1には更に、ジオメトリパイプラインで多用されるサイン/コサイン演算を行なうEFU(エレメンタリファンクションユニット)が搭載されており、FMACとFDIVの各1個ずつはこのEFU内に格納されている。

VU0はCPUコアと専用の128ビットポート直結されているため、CPUと同期する処理に向く。言うなれば、CPUの第二のコプロセッサである。対してVU1はCPUとはメインバス経由で接続される。その代わりEFUを持ち、更にグラフィック処理を行なうGraphics SynthesizerとのインターフェイスGIFへの専用ポートを持っている、CPUよりGPUに近い存在である。これはVU1がグラフィック処理専用に設計されているためで、VU1が生成したデータをメインバスを使わずに渡せるように考慮されているのである。

このVUはRISCであるCPUコアとは異なり、32ビット長命令2つを収めた2イシュー64ビット長のVLIWで、命令のうちアッパーインストラクションがFMAC群に、ローワーインストラクションがFDIVやEFU、ロードストアユニットなどFMAC以外のユニット群に発行されるようになっている。

すなわち、CPUコアと二つのVUは別々のマイクロプロセッサであり、いうなれば1チップ上に複数のプロセッサを統合したマルチコアプロセッサと呼ぶことが可能である。