Montecitoのウエハーを手にするIntel社Director of EngineeringのRory McInerney氏
Montecitoのウエハーを手にするIntel社Director of EngineeringのRory McInerney氏
[画像のクリックで拡大表示]


 米Intel Corp.が出荷を開始したIA-64アーキテクチャの新製品「Itanium 2 processor 9000 series」(開発コード名:Montecito)。同社で開発責任者を務めたDirector of EngineeringのRory McInerney氏に,設計思想やIA-64の将来について聞いた。(聞き手:枝 洋樹=日経エレクトロニクス

--2005年第2四半期に予定していたMontecitoの出荷が遅れたのはなぜか。

 McInerney氏 クロック信号の取り回しや回路設計に思ったよりも手間取った。このため,状況に応じて動作周波数と電源電圧を動的に変更する「Foxton Technology」の利用は,今回の製品では見送った。機能を確実にするか,出荷を優先するかのトレードオフに直面したが,最終的には2本のスレッドの並列実行が可能なCPUコアを2個集積することで,既存の製品に比べて十分アドバンテージが得られると判断した。

--Foxton Technologyを実現する回路自体は,Montecitoに集積してあるのか。

 McInerney氏 物理的には載っている。チップ全体に占める割合はごくわずかにすぎない。だたし,動かすのが難しかった。動作周波数をさらに高める将来の製品では,利用する予定だ。

--Montecitoの最大動作周波数は1.6GHzと,1.67GHzで動く既存のItanium 2より低い。

 McInerney氏 外部インタフェースの動作周波数が533MHzだからだ。既存品種は667MHzだった。Montecinoはデュアル・コアであるにも関わらず1.6GHz動作時の消費電力が104Wと低い。1.67GHzで動く既存品種はシングル・コアであるにも関わらず,同じ条件で130Wを消費した。3次キャッシュを9Mバイトから12Mバイトに増やした分,高速動作が難しくなったという側面もある。

--いずれにせよ,IA-64系のマイクロプロセサの動作周波数は,86系に水を空けられている。そもそもIA-64を開発したのは,コアを単純にして動作周波数を上げやすくすることが狙いだったのではないか。

 McInerney氏 IA-64の設計思想は,out-of-order実行などのハードウエアによる複雑な命令スケジューリングを廃し,コンパイラでもっと高度なスケジューリングをすることで,並列度を高めることにあった。もともと動作周波数の引き上げに主眼を置いていたわけではない。8段という短いパイプラインにもかかわらず,回路技術の工夫によって現在の動作周波数を実現している。

--Montecitoで現行のItanium 2に比べて約2倍の性能を実現できた最大の要因は,デュアル・コアにあるのか。

 McInerney氏 エンタープライズ系のアプリケーション・ソフトウエアを想定したTPC-Cベンチマークの性能は,デュアルコアであることよりも,HyperTreadingに対応したことが効いている。整数演算や科学技術計算の性能向上は,デュアル・コアとキャッシュ容量の増加が寄与する傾向にある。

--Montecitoに実装したHyperThreadingは,Xeonのものと違いがあるのか。

 McInerney氏 詳しくは言えないが,実装方式は異なる。Montecitoでは,HyperThreadingの効果を引き出すために,86系にはないいくつかの専用命令を追加している。デュアル・コアの86系マイクロプロセサは,コア間でキャッシュを共有しているが,Montecitoは共有していない。こうした違いも,HyperTreadingの実装方式に影響を与えている。

--IA-64では,コンパイル時に命令レベルの並列度を十分生かしたスケジューリングを施す。スレッドを並列処理することによる性能向上は,それほど望めないのでは。

 McInerney氏 高度な命令スケジューリングを行っているのは確かだが,HyperTreadingの効果は期待できる。特に複数のアプリケーション・ソフトウエアを同時に実行するエンタープライズ系の用途では,12Mバイトの3次キャッシュといえども,ヒットしない頻度が高い傾向にある。そのときに,スレッドの切り替えが起こる。一方,整数演算ではHyperTreadingを使わなくても,3次キャッシュに十分収まるのでそこそこの演算性能が望める。スレッドの切り替えは,スレッド・スイッチ制御,スイッチ・ヒント,といった命令で,ソフトウエアで明示的に指定できる。

--3次キャッシュの障害を回避する「Intel Chache Safe」(開発コード名:Pellston)について教えてほしい。

 McInerney氏 3次キャッシュにアクセスする際に,ECCによる誤り訂正が特定のアドレスで頻発するようになった場合に,ハードウエアがこれを検知して,ファームウエアに伝える技術だ。この情報をOSに伝えて,それ以降はキャッシュの該当部分を使わないようにする。キャッシュの容量が増えれば増えるほど,こうした技術が重要になる。

--代替のメモリ・セルを用意しているのか

 McInerney氏 障害が起こっていると判断した部分を無効にするだけだ。マイクロプロセサは動き続けるため,ソフトウエアの実行には影響を及ぼさない。これまでは,内蔵キャッシュに定常的な障害が起こった場合は,システムを止めてマイクロプロセサを交換しなければならなかった。その分,サーバー機の稼働率が低下した。

--4コアを集積する品種(開発コード名:Tukwila)には,Montecitoと同じコアを用いるのか。

 McInerney氏 基本的には同じコアを集積する。IA-64アーキテクチャの場合,製品ごとにコアを変えていたら,コンパイラの開発が大変になる。このため,既存の設計資産を有効に活用することになる。信頼性を向上するための機能などは強化する可能性がある。このほか,Tukwilaではシステム・インタフェースを刷新する。

--プレゼンテーションの資料に,Tukwilaのチップ写真が載っていた。既にファースト・シリコンを得ているのか。

 McInerney氏 まだだ。Tukwilaの詳細については,話せるようになった時点で説明する。