マイクロアーキテクチャに関する論文を読んでいる。今回はIBM POWER7に関する論文。
本論文では、POWER7プロセッサの主な機能について説明する。
- 各コアは4-wayの同時マルチスレッディングが可能な8コアのプロセッサが搭載されている。
- IBMの45nm SOIテクノロジで製造
- メモリサブシステム : 3レベルのオンチップキャッシュが搭載されている
イントロダクション
Power7の目標は、1つのテクノロジ世代で以下のすべてを達成することである。
- Power6と同じ電力で、プロセッサチップ上に4倍のコアを配置できるようにする。
- 図1はPower7チップの外観を示している。8個のプロセッサコアを持ち、各コアは4つのスレッドを実行できる。
- Power7はチップの両側に2つのメモリコントローラを搭載しており、4チャネルのDDR3メモリをサポートしている。
- プロセッサチップ上の8つのコアは、32個の同時実行スレッドを持っており、高いスループットを実現する。
POWER7コアの概要
- 図2は、プロセッサコアのフロアプランを示している。以下の機能により、Single Thread性能を大幅に向上させる。
- 高度な分岐予測機能
- プリフェッチ機能
- アウトオブオーダ機能
- 1コアあたり4スレッドを効率的にサポートする。
- 図3は、プロセッサコアの命令フローを示したものである。
- いくつかのスレッドモードを備えている。
- ST (Single Thread)
- SMT2 (Two-way SMT)
- SMT4 (Four-way SMT)
- 2スレッドが1つの汎用レジスタ(GPR)を共有する。これにより、Power5に対してより少ない物理GPRファイルエントリ数で、2倍のスレッドのレジスタを効率的にリネームすることができる。
- Power7では、整数レジスタ(GPR)、浮動小数点レジスタ(FPR)、ベクトルレジスタ(VR)のレジスタリネームが別々だったが、これらをすべて統合した。これにより、面積と消費電力が大幅に低下した。
- 浮動小数点命令と固定小数点命令(FX)の命令発行キューは別々だったが、これを統一した。
- これをUnified Issue Queue (UQ)と呼んでいる。
- 1ユニットで24エントリのキューを、2ユニット実装している。
- 浮動小数点ユニット(FPU)とベクトルメディア拡張(VMX)ユニットをベクトルスカラユニット(VSU)に統合した。
L1命令キャッシュとデータキャッシュをバンク化し、キャッシュへの読み込みと書き込みの同時アクセスが可能となった。
- 1サイクルで2-readもしくは1-writeのみサポート
図4は、命令が様々な発行キューに流れ、その後機能ユニットに送られる様子を示している。
- 殆どのVSU命令は、すべてのモード(Single Thread, SMT2, SMT4)でUQ0もしくはUQ1にディスパッチ可能だが、以下の例外がある。
- コアは以下のユニットから構成されている。
- 命令フェッチユニット (IFU)
- 32KB命令キャッシュ (I-Cache)
- 命令シーケンスユニット(ISU)
- ロードストユニット(LSU)
- 32KBデータキャッシュ (D-Cache)
- 固定小数点ユニット(FXU)
- ベクトル演算ユニット(VSU)
- 10進数FPU (DFU)
- 命令フェッチユニット (IFU)
- 1サイクルで最大8命令フェッチ、最大6命令ディスパッチ、最大8命令発行。
- 12個の機能ユニットから構成されている