【IDF Spring 2003レポート】単なる90nm Pentium 4ではないPrescott

  [2003/02/21]

2日目の基調講演では、煩雑に取り上げられつつも詳細はさっぱり公開されなかったPrescottプロセッサだが、これに続くテクニカルセッションでその一端が明らかにされた(Photo01,02)。

Photo01:Senior Fellow and Director, Microprocessor Research LabsのJustin Rattner氏。全般の説明とMultiThreading関連の解説を行った
Photo02:Vice President and Director, Logic Technology DevelopmentのJoe Schutz氏。Prescottのアーキテクチャの詳細について説明を行った

○従来までのトレンドと今後の課題

Photo03:プロセスの微細化に伴い13倍の性能向上があったが、これに加えてマイクロアーキテクチャの改良(例えば486→Pentiumでは、内部のRISC化やスーパースケーラ・アウトオブオーダ発行などが行われ、動作周波数・性能共に向上した)が功を奏しているわけだ

まず、過去のIntelプロセッサを振り返りつつ全般的なトレンドに関してのおさらいをしておこう。プロセッサの性能は動作周波数×IPC(Instructions Per Cycle:1クロックあたりの処理命令数)により決まるわけだが、プロセスの微細化や回路構成の工夫により、動作周波数・性能ともに大きく向上してきた。動作クロックで言えば50倍、性能比では75倍もの向上が得られているわけだ(Photo03)。

ところが、最近になって色々な問題点が出てきつつある。例えば配線遅延がそれだ。これまでだと、動作周波数に比べて配線遅延は無視できるほど小さかったから、これが問題になるケースはなかった。ところが周波数の高速化に伴い、配線遅延が1クロック以上になりつつある(Photo04)。これは、さらなる周波数の高速化の際にはかなり問題になってくる。

また、メモリバンド幅とのギャップも問題になりつつある。486DX2あたりから、CPUコアの動作速度とCPUバスの動作速度が一致しなくなっており、この結果プロセッサは3GHzにも達しているというのに、メモリの速度は未だに400MHzに満たない程度である(Photo05)。これは当然、最終的には処理性能の妨げになってくる。

Photo04:RCとは抵抗(Register:配線抵抗)とC(Capacitance:浮動容量)の事。130nmプロセスで胴配線を採用したことで、Rを削減したために一時的に遅延も減ったが、プロセスルールの微細化によりどうしても抵抗は増える傾向にあるから、次第に配線遅延が大きくなると言う話だ
Photo05:例えば現状の製品だと、メモリ自体は533MHz(266MHzのデュアル)まで高速化されているが、それでも3GHzを超えるプロセッサと比べると6倍近いギャップがあることになる

○内部構造に大変更あり - Prescottの新機能

Photo06:まだ名前が出ているだけで詳細は未公開という話も多かった。例えば"Improved Hyper-Threading Technology"も、「何をどう」Improveしたかは一切未公開で、ちょっと残念である

ということでいよいよPrescottの新機能である。主な違いはPhoto06の通りである。これについて、もう少し判る範囲で紹介してゆきたい。

まず動作クロック/キャッシュ関係である。動作周波数はやはり3.2GHzあたりからスタートするようで、FSBも800MHzからのスタートとなる。ここまではまぁ事前情報通りだ。L2キャッシュが1MBになったのは驚かないが、データL1キャッシュも従来の8KBから16KBに拡張された。ここには示されなかったが、TraceCacheも容量が変わったそうで、こうした部分に徹底的に手が入ったことになる(Photo07)。

内部構造についても、いくつかの違いがある。そもそもWillamette→Northwood→HT対応Northwoodと進化するなかで改良が行われてきたわけだが、それに加えていくつかの改良と機能追加がなされている(Photo08)。

Photo07:これはPhoto05の動作周波数・メモリクロックのギャップを埋めるための取り組み、と考えてよいだろう
Photo08:"La Grande Support"ってなに?という話は当然あったのだが、これも当然ながら非公開だった。なお、「Prescott New InstructionはSSE3とかになるの?」と聞いたら、「いやー、おりゃMarketing Guyじゃないから知らん(笑)」という答えがSchutz氏から返ってきた。Intel広報によれば、このあたりはまだ決定していないそうな。でも順序から言えばやはりSSE3だと(筆者は)思う

それはPNI(Prescott New Instruction)と呼ばれるものだが、全部で13命令存在する(Photo09)。内訳はというと、殆どが既存の命令に若干の機能追加をした程度のものだが、Thread Syncronizationと呼ばれるMONITOR/MWAITの2命令だけは、ちょっと毛色が違っている。これらはHyper-Threadingを使って複数のスレッドを動作させている際の、スレッド操作命令にあたる。従来のHyper-Threading環境では、スレッドの動作はあくまでCPU任せで、ソフトウェア側からコントロールは一切不能だったが、これを拡張しているわけで、今後のOSなどでは利用されそうだ。

Photo09:これがどう利用できるか、というとSpin-WaitによるDead-Lock回避である。HyperThreadingで2つのスレッドが同時にSpin-Waitに入ると、永久に抜けないDead-Lock状態に落ちいる可能性があるため、必ずPause命令を使うべきという制限があったが、今後はMonitorで相手のスレッドの状態を確認したり、Mwaitで相手のスレッドと同期するといった形で、より柔軟にDead-Lock回避をインプリメントできるようになる。まぁ一般のアプリケーションには殆ど関係ない命令ではある
Photo10:Northwoodに比べて4倍も性能を上げやすくなっているとしている。スキュー(Skew:遅延)はインバータ一つ分(の時間)未満だそうで、徹底してクリティカルパスを削減したことがわかる

内部構造ついても、ずいぶん手が入ったようだ。Photo10は内部の回路の動作速度の違いを色で表したものである。パイプライン動作を考えるとき、クリティカルパスという概念がある。各ステージの動作を見たとき、これ以上速度が上げられないのはどこか、という話だ。Northwoodのフロアプランを見ると、あちこちに緑あるいは黄色が点在しており、こうした部分がクリティカルパスになりやすいのだが、Prescottではほぼすべてが青で、いくつかの個所で水色が目立つ程度である。これは回路内部のレイアウトがずいぶん進化した、という証拠である。

Photo11:一見Northwoodの方がよさそうに見えるが、実はそうではない。Northwoodの様にブロック分けをすると、ブロック間の移動に無駄な伝達を行う必要があり、トータルでの処理時間が掛かったり(=クリティカルパスになったり)、無駄な消費電力を使ったりするわけだ。Prescottの方がこうした点では遥かに優れている。ただし、こういうものを設計するのは難しい訳で、Willamette/Northwoodの時にはツールがここまで対応できなかったものと思われる

このレイアウトに関しては、もう一つデータがある。Photo13は浮動小数点演算を行う際の内部のデータフロー(データの流れ)を示したものだが、Northwoodでは演算の各機能
が整然とブロック分けされ、どちらかというと縦方向の移動になっている。ところがPrescottでは各機能ブロックが渾然一体となった形で構成され、データも横方向の流れになっている。このあたりはデザインツールやレイアウトツールが大幅に進化して、より効率の良いレイアウトが作成できるようになった事を物語っている。

Photo12:会場から「SOIを使う予定は?」の質問に、「それはBad Ideaだと思うな(笑)」という返事が
Photo13:あまり詳細な情報は開示されなかったが、レイアウトの柔軟度を高めるためには配線側にも色々な配慮が必要であり、改良が繰り返されていると思われる

ちなみにPrescottで利用されるトランジスタは、ゲート長は50nm。ゲート部分にはStrained Transistorを採用し、より高速に動作するとしている(Photo12)。また、配線は7層の銅配線を利用するが、Low-K材料を使う事で浮動容量を減らし、配線遅延の低下を狙っているとの事だ(Photo13)。

○非同期マルチスレッディング

Photo14:筆者が大昔に書いた原稿がまだ参照可能なので、興味ある方はどうぞ。ちなみにこれによる性能改善は、最大2.8倍の性能アップとなっている

これに続き、Prescott以降に関する話題も取り上げられた。2001年のMicroProcessor Forumで初めて公開され、現在販売されているIntel C++/VTune 7.0などでサポートが始まった技術にSpeculative Pre-computationという技法がある。シングルスレッドのプログラムを仮想的に複数のスレッドで順次先行して実行する事で、必要な命令やデータをキャッシュ側にプリフェッチさせ、これにより処理性能をあげるという技法である(Photo14)。

この、先行して実行する仮想スレッドをHelper Threadと呼ぶわけだが、これを効率良く処理する方法に関しても研究をおこなっているそうだ。現在は、本命のスレッド(Main ThreadであってもHelper Threadであっても区別しない、Symmetric Hyper-Threading(対称型HT)がインプリメントされているが、これを区別してMain Threadを優先すれば、より効果的に処理ができないかという事で、この形式をAsymmetric Hyper-Threading(非対称型HT)と呼んでいる(Photo15)。Asymmetricの場合、その制御はOSよりもっとローレベル、つまりプロセッサ内部で管理する必要があるため、方法論を含めて現在検討中との事だった。ちなみにコンパイラからみると、むしろAsymmetricの方が作りやすいという話だった(Photo16)。

Photo15:アイディアとしては面白い。ちなみにThread SwitchにSyncとAsyncの2つのトリガーがあるのは、割り込み処理(例えばドライバの内部)とかは非同期で行う必要があり、それ以外は普通のContext Switch(例えば一定時間ごとのスレッド切り替え)で行うからだ。前者がAsync、後者がSyncという話だ
Photo16:まぁSymmetricが作りにくい理由は理解できる

最後に全般的な目標として、2010年のタイムフレームで15~20GHzの動作周波数に達することが再確認されたほか、様々な技法を今後も追及することで、単にプロセス微細化による以上の性能向上を目指す、との事であった(Photo17)。

(大原雄介)

IDF Spring 2003レポート
http://pcweb.mycom.co.jp/news/special/2003/02/08/02.html

Intel Developer Forum
http://developer.intel.com/idf/us/spr2003/



IT製品 "比較/検討" 情報

転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

[ふたがしら2]松ケン主演時代劇続編9月17日放送決定 成宮と菜々緒の濃密シーンも健在
[08:00 6/25] エンタメ
お金がない休日の過ごし方
[08:00 6/25] マネー
【連載】鉄道トリビア 第360回 電車の運転中、運転士がガムを噛むことは認められている
[08:00 6/25] ホビー
【連載】1コマ漫画 ホモサピエンス取扱説明書 第691回 人を叱る時には大事なことよね
[08:00 6/25] 趣味
遠藤憲一、悪い刑事役で真骨頂の演技を披露!“乾いた笑顔”が恐すぎる
[07:00 6/25] エンタメ

求人情報