Emotion Engine
読み:エモーション-エンジン
外語:EE: Emotion Engine

 PlayStation2のCPUであり、東芝SCEIの開発した世界初の完全128ビットマイクロプロセッサーである。Emotion EngineはSCEIの登録商標である。
目次

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

特徴
 レジスターやデータバス、内部キャッシュメモリーまでが全て128ビット化されたスーパースケーラー構造のプロセッサーである。

ベクトル演算ユニット

性能
 Emotion Engineを特徴付けるのが、2系統の単精度ベクトル演算ユニット(VU)である。
 このVUはRISCであるCPUコアとは異なり、32ビット長命令2つを収めた2イシュー64ビット長のVLIWで、命令のうちアッパーインストラクションがFMAC群に、ローワーインストラクションがFDIVやEFU、ロードストアユニットなどFMAC以外のユニット群に発行されるようになっている。また、CPUとは独立した、16ビット整数レジスターと128ビット浮動小数点レジスターを持つ。
 すなわち、CPUコアと二つのVUは別々のマイクロプロセッサーであり、いうなれば1チップ上に複数のプロセッサーを統合したマルチコアプロセッサーと呼ぶことが可能である。
 浮動小数点演算については、ゲームで用いるIEEE 754単精度(32ビット)だけに対応し、倍精度(64ビット)などはゲームでは使わないので対応しない、実に潔い設計がなされている。
 128ビットレジスターには4個の単精度浮動小数点データが格納でき、各4個のFMACで、3Dグラフィックスの4×4のマトリックス演算を並列処理できる。2系統の浮動小数点演算性能はピーク時で6.2GFLOPSとなる。

VU0とVU1
 これらはそれぞれ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が生成したデータをメインバスを使わずに渡せるように考慮されている。

バス
 CPU内部に128ビット内部バスがあり、各ユニットが結ばれている。
 CPU内には大きく次のようなものがあり、それぞれがこのメインバスに直結されている。
 基本的にはメインバス経由でコンタクトを取ることが可能だが、他に専用バスで直結される組み合わせがある。

利用例
 高性能なプロセッサーではあるが、それほど多くは利用されていない。

再検索