TukwilaとPoulsonコアの諸元

Poulsonコアはトランジスタ数もTukwilaコアの108Mから89Mと減少しているが、面積は69平方mmから20平方mmへと減少し、(単純にTukwilaを32nmプロセスに設計変更した場合と比較して)消費電力も40%に減少し、また、クロック周波数も20%以上向上している。

PoulsonコアはTukwilaコアの改良版というよりも、新規開発のコアであり大きな変更がある。Poulsonでは、コアの構造が命令をフェッチするフロントエンドと命令を実行するメインのパイプラインが独立で、その間が命令バッファで結合されている。そして命令フェッチとメインのパイプラインがそれぞれが独立に2スレッドの切り替え型のマルチスレッドをサポートできるようになったことである。これにより、例えば、フロントエンドはスレッド1の命令をフェッチして命令バッファに溜め、その後、メインの実行パイプラインは溜まったスレッド1の命令の処理を進めるが、フロントエンドは既にスレッド2に切り替わってスレッド2の命令をフェッチしてスレッド2の命令バッファに溜めこんでいるというような動作ができるようになっている。そして、命令のフェッチは6命令/サイクルであるが、実行パイプラインへの命令発行は、整数2、浮動小数点2というような区別はあるが、合計では12命令/サイクルを発行できるように強化されており、実行パイプラインが制限となって命令が発行できないケースを減らして、性能を上げている。

そして、命令フェッチと実行のパイプラインはパイプラインハザードやエラーが検出された場合には、Replayによりその命令を再実行する機能を持つようになった。

Poulsonではフロンドエンドとメインの2つのパイプラインと、中間レベルキャッシュをアクセスするパイプラインが独立に動作する

このパイプラインごとのReplayは、ハザードが生じた時に全部のパイプラインを止める方法よりも電力効率も良いという。

そして、整数と浮動小数点のレジスタファイルは、従来はエラー検出だけのパリティチェックであったが、Poulsonでは1ビットエラー訂正、2ビットエラー検出ができるSECDEDコードを適用した。そして、浮動小数点演算器は剰余チェックを組み込み、プロセサ内部のデータパスにはパリティチェックなどを付加してエラーを検出して、Replayでエラーを訂正することになった。これで、Itaniumの高信頼機構はIBMのPOWER7や富士通のSPARC64 VIIIfxに並ぶレベルとなり、トップレベルの高信頼ミッションクリティカルサーバ用のプロセサとなったと言える。

また、従来、SECDEDコードであったLLCは、Poulsonでは2ビットエラー訂正、3ビットエラー検出のDECTEDコードを採用している。これは微細化の進展により2ビットエラーの確率が高くなってきたことに対応する目的と考えられる。POWER7やSPARC64も、まだ、DECTEDにはなっておらず、この点ではPoulsonの方が一歩、先んじている。

そして、PoulsonではFPUに使用していたダイナミック回路のスタティック回路への置き換え、徹底したクロックゲート、低リークトランジスタの使用などの一般的な省電力設計は、当然、適用されており、リプレイ型のパイプラインとすることによっても電力の削減がなされている。また、Tukwilaから装備されたディジタル電力計を改良し、誤差を従来の35%から2%に低減したという。これにより、精度の高い電力制御が可能になり、消費電力削減に繋がっている。これらの改善により、従来のTukwilaを32nmプロセスで設計したと想定した場合と比べると、TDPが60%減り、プロセサアイドル時のダイナミックな消費電力は70%減少したという。

現状では、Poulsonは実チップでの検証が進んでおり、複数のOSでの動作が確認されている。また、多種の構成での動作検証も進んでおり、2012年の出荷に向けて順調に進んでいるという。