한국   대만   중국   일본 
後藤弘茂のWeekly海外ニュ?ス


後藤弘茂のWeekly海外ニュ?ス

x86からの?却を?るIntelの新ロ?ドマップ




●Sandy BridgeとLarrabeeが見えるIntelの命令?張

 Intelは、今後CPUの命令セットア?キテクチャを次?に大きく?張して行く。Intelは、2010年から先も含めた命令セットロ?ドマップを、4月2~3日に中??上海で開催した技術カンファレンス「Intel Developer Forum(IDF)」で示した。2010年のCPU「Sandy Bridge(サンディブリッジ)」以降は、主に、命令セットを?張することで、CPUコアの性能を飛躍させて行く。

 Intelは、そのための土台となる新命令?張「Intel Advanced Vector Extensions (Intel AVX)」をSandy Bridgeから導入する。AVXでは、SIMD(Single Instruction, Multiple Data)演算の幅を??の128bitsから256bitsに?張する。それに合わせて、Sandy BridgeのSIMD演算ユニットの演算幅も256bitsに?張、デ?タロ?ドも倍?させる。そのため、理論値ではCPUコア?たりの浮動小?点演算パフォ?マンスは2倍に跳ね上がる。

新?張命令「Intel AVX」の?要 浮動小?点演算の幅を2倍に?張

 Intelのこの方針によって、2010年から先は、ソフトウェアが新命令に??し、SIMD浮動小?点演算を多用しないと、CPUの性能向上を活かすことが難しくなる。また、パフォ?マンスが?張されるのは、主にSIMDの浮動小?点演算となる。?存のコ?ド、特にスカラ整?演算中心のソフトウェアは、今後、性能向上の幅が小さく留まるだろう。もっとも、現?でも、シングルスレッドの整?演算性能の向上は難しくなっている。今回のIDFでは、CPU開?の方向の?化という形で、その技術トレンドが明瞭に示された。

2008年以降のIntel命令セットの?化
Intel命令セットの?張の方向性
PDF版は こちら

 Intel AVXは、CPUの性能をSIMD演算で?張するMMX/SSEの延長にある。しかし、MMX/SSEとは根本的に異なる点がある。それは、?張したAVX命令では、命令フォ?マットも大きく?える点だ。x86(IA-32/Intel 64)ア?キテクチャでは、これまで命令の頭に「プリフィックス(Prefix)」を加えることで、新命令を?現してきた。これは、あたかも、?い家を次?に?築するようなもので、その結果、家(命令セット)は不格好でつぎはぎだらけになってしまった。こうした命令セットの複?化と命令長の伸張は、x86 CPUのパフォ?マンス向上の大きな壁になっている。

 そこで、AVXでは、??の不格好なx86命令の?張方式をやめる。その代わりに、より?率的で、CPUハ?ドウェアが扱いやすく、??の?張も容易な命令フォ?マットシステムを導入する。家(命令セット)を大改築して、すっきりした建築に直そうというのが、AVXの方向性だ。命令フォ?マットを再定義することで、“?統的x86”を?すると言い換えてもいい。Intelは、??のSSE命令も、AVXへと移行させて行く予定だ。そのため、AVXはSSE命令をポ?トしやすいようになっている。

 AVXの新しい命令エンコ?ディングシステムによって、Intelは、この先も次?に大幅な命令セット?張が可能となる。例えば、Sandy Bridgeの先では、?算と加算の2命令を融合させた「積和算命令」を導入する。また、512bitsや1,024bitsといったベクタ長の?張も容易になる。Intelが、2008年末から2009年にかけて投入する予定のメニイコアCPU「Larrabee(ララビ?)」は、AVXの命令フォ?マット?張の上に?っている可能性が高い。AVXには、今後、?世代命令セットを大きく?張して行く、Intelの?略が根幹を伺うことができる。

●命令フォ?マットが根底から?わるAVX

 AVXの256bits SIMDや3オペランドシンタックスは大きな?張だが、?は、AVXで最も革新的な部分は別にある。それは、命令エンコ?ディングフォ?マットの?更だ。

 x86(IA-32/Intel 64)命令は、命令の中のオペコ?ドの前に1バイト長のプリフィックスをつけることで、?張することができる。新たに命令を加えたり、レジスタを?張することは、命令の頭にプリフィックスを次?と足すことで?現して?た。SIMD系の命令を示すSIMDプリフィックスや、Intel 64ア?キテクチャで?張した8本のレジスタにアクセスできるREXプリフィックスがそれだ。

 IA-32/Intel 64は、プリフィックスで?張ができることが利点だが、副作用もある。それは、プリフィックスによって命令フォ?マットが複?になり、命令長が長くなることだ。そのため、IA-32/Intel 64命令は、デコ?ドが難しく、命令デコ?ドが性能のボトルネックとなったり、命令デコ?ダが肥大化して電力を消費するといった問題を引き起こしている。?際、Core Microarchitecture(Core MA)では、大きなパフォ?マンスボトルネックが、命令のプリデコ?ドとフェッチだった。また、命令?張を繰り返すと、プリフィックスがどんどん?えて、命令長がネバ?エンディングで長くなって行くという?在的な問題もある。

 「AVXの命令エンコ?ディングシステムを?えた理由は、ここ?年のSSE命令の進化にある。(IA-32/Intel 64の)SIMD命令は、最初は3バイト長の命令からスタ?トした。しかし、デ?タタイプを追加するために、1バイトのプリフィックスを命令の最初に加え、次に、64-bitア?キテクチャでレジスタを8本加えたため、もう1バイトを命令頭に加えた。そうやって、3バイト長だった命令が、5バイト長になってしまった」とIntelのBob Valentine(ボブ?バレンタイン)氏(CPU Architect, Mobility Group)は問題点を?明する。

 AVXでは、命令エンコ?ディングフォ?マットを大きく?更することで、この問題を解決する。1バイト長のプリフィックスを次?に重ねるという“間に合わせ”の非?率なフォ?マットをやめる。代わって、1バイトの「VEX(Vector Extension)」と呼ぶプリフィックスと、VEXに?く1~2バイトの「ペイロ?ド(Payload)」システムを導入する。??のプリフィックスで表現していた情報は、ペイロ?ドのビットフィ?ルドの中で表現する。

 「VEXエンコ?ディングシステムのアイデアは、これらプリフィックス群に含まれる情報を?縮することにある。1バイトのペイロ?ドの中に、プリフィックスの情報を全て入れ?んでしまう。さらに、これから導入する新しいレジスタや、128bits長か256bits長などの情報も、ペイロ?ドの中に?縮する」(Valentine氏)。

AVXは??に向けた命令フォ?マット

●??の16wayのSIMD?張まで可能にする命令フォ?マット

IntelのBob Valentine(ボブ?バレンタイン)氏(CPU Architect, Mobility Group)

 VEXによって、AVXでは相?的に命令長が短くなる。VEXのペイロ?ドは1バイトと2バイトの2種類がある。1バイトペイロ?ドのVEXプリフィックスは「C5」、2バイトは「C4」となっている。1バイトペイロ?ドの場合は、同じ命令でも、??の命令フォ?マットと較べると1バイト分命令が短くなる。

 「?際には、全てを1バイトのペイロ?ドに入れることはできない。そこで、2つのバ?ジョンのVEXを用意した。4バイトバ?ジョン(ペイロ?ドは1バイト)と5バイトバ?ジョン(ペイロ?ドは2バイト)だ。ほとんどのレガシ?コ?ドは、例え、64bits命令であっても、4バイトバ?ジョン命令に格納できる。そのため、1バイト分は命令が短くなる。いくつかの新しい命令は、新レジスタを使うため、5バイトバ?ジョン命令を使うことになる。それでも、現?と同じ5バイトに?まる」と、Valentine氏は命令長でVEXが有利であることを?明する。

 VEXエンコ?ディングフォ?マットのもう1つの重要な点は、今後の命令セットの?張も、同じ命令長で容易に?現できるようになることだ。命令を?張すると、どんどん命令長が長くなるといった問題から解放される。

 「5バイトバ?ジョンの2つ目のペイロ?ドはフルではない。??の?張のために3ビットが?されている。3bitsあれば、1,000以上の新命令を加えることができる。新しいフィ?チャ、新しいレジスタ、新しいベクタ長。ほとんどなんでも加えることができる」(Valentine氏)。

 VEXのフォ?マットの命令長のままで、512ビットまたは1,024bitsのSIMDも導入できるという。また、多種のプリフィックスを重ねる??の方式と較べると、命令全?のフォ?マットが絞られ、命令長が予測しやすくなる。先頭の1バイトがC5かC4かで、オペコ?ドまでの長さは決まる。そのため、ハ?ドウェア側から見た場合に、命令のプリデコ?ドが容易になると考えられる。

●x86 CPUのボトルネックを?減するVEXエンコ?ドフォ?マット

 AVXのVEXエンコ?ドシステムは、Intel CPUの今後の進化に深く?わっている。なぜなら、x86系CPUの最大の弱点が、命令デコ?ドにあるからだ。

 Core MAは、4命令?行の?力な?行パイプラインを持つが、フロントエンドに弱点がある。まず、L1命令キャッシュから命令をフェッチするポ?トは16バイト長と、フェッチ幅が限られている。そのため、個?の命令が長いと、フェッチできる命令?が制約される場合がある。次に、IA-32/Intel 64命令を切り出すプリデコ?ドにもボトルネックがある。オペランドやアドレス長を?化させる命令プリフィックス「LCP(Length Changing Prefixes)」がつくと、プリデコ?ドが格段に?くなる。命令長マ?キングのアルゴリズムを?えなければならないからだ。

命令フェッチ&プリデコ?ドの最適化

 Core MAのプリデコ?ド&デコ?ド部分の弱点は、IA-32/Intel 64の命令セットア?キテクチャそのものに?わっている根が深い問題だ。可?長命令に?築を重ねた現在のIA-32/Intel 64では、?張した命令は長くなり命令フェッチ?域を?迫し、複?な命令フォ?マットは命令を切り出しにくくしている。それに?して、一般的なRISC(Reduced Instruction Set Computer)では、命令長と命令フォ?マットが決まっているため、デコ?ドはずっと容易だ。x86系CPUベンダ?は、この問題を解決しようとするとリソ?スが必要となり、電力?率を落とすという、ジレンマを抱えている。

 そして?は、最新のNehalemですら、Core MAのこうした弱点は、ある程度引き?がれている。明白な弱点であるため、Nehalemでは改良されると推測していたが、16bytesフェッチやプリデコ?ドのシステムなどは、ほぼそのままだという。なぜなら、改良しようとすると、膨大なトランジスタが必要となり、電力消費を?やしてしまうからだという。

Nehalemのフェッチ&デコ?ド
PDF版は こちら

 Nehalemのこの設計チョイスには疑問があったが、VEXフォ?マットの仕?を見ると、意?は明白だ。Intelは、CPU側のプリデコ?ド&デコ?ドハ?ドウェアをいじるよりは、命令フォ?マットそのものを改革した方が良策だと判?したと思われる。つまり、問題の根源の方から手をつけようと判?したわけだ。命令フェッチ幅の?さも、命令マ?キングアルゴリズムの複?さも、命令フォ?マット側が改良されれば、自然に?減されて行く。

 Intelは、CPUハ?ドウェア側のこうした設計を考えて、VEXフォ?マットを開?したと推測される。IDFでVEXフォ?マットの?明を行なったValentine氏が、Core MAのフロントエンドのフェッチからデコ?ドまでの部分を開?したシニアア?キテクトであることが、それを?明している。IA-32/Intel 64命令のデコ?ダ設計のスペシャリストが、VEXでの命令フォ?マットの改革を先導したと推測される。

Nehalemブロックダイヤグラム
PDF版は こちら
Core Architectureブロックダイヤグラム
PDF版は こちら

 このように、AVX?張命令を??すると、IntelのCPU開?の全?の流れが見えてくる。Intelは、以前と較べると、よりドラスティックに命令セットア?キテクチャを改革しようとし始めた。なぜなら、同じコ?ドのソフトウェアが、マイクロア?キテクチャの改良により、新CPUでは、より速く走るという構?が、もはや通用しないからだ。CPUパフォ?マンスをアップさせるには、もはやソフトウェア側の??を促すしかない。それなら、命令セットをハイペ?スで進化させ、ついでに命令フォ?マットも?革してしまおう、それがIntelの現在の方向性だ。

 AVX?張命令は、SSEを包含するもので、AVXへの移行を促すことで、今日のSSEもVEXフォ?マットへと置き換えようとしている。「全?を見ると、Intel AVXは、徐?に、今日のアプリケ?ションの中の??型のSSE命令を置き換えて行くと予想している」とIntelのBenny Eitan氏(CPU Architect, Mobility Group)は語る。

 Sandy Bridgeのデコ?ダハ?ドは、??のIA-32/Intel 64のプリフィックス型フォ?マットと、新しいVEXフォ?マットの?方をデコ?ドできる。しかし、VEXの方が命令長で有利であるため、1サイクルでデコ?ドできる命令?は原理的には多くなる。また、プリデコ?ダが、VEXをより?率よくマ?キングできるとしたら、そこでもVEXの方が有利になる。Sandy Bridgeの世代では、まだ差がつかないかもしれないが、いつかはそうなるだろう。

Intel命令セット?張の?遷
PDF版は こちら

□?連記事
【3月21日】【海外】モバイルにもL3キャッシュをもたらすNehalem
http://pc.watch.impress.co.jp/docs/2008/0321/kaigai427.htm
【1月29日】【海外】2つのCPU開?チ?ムに競わせるIntelの社??略
http://pc.watch.impress.co.jp/docs/2008/0129/kaigai412.htm
【2007年12月11日】【海外】イスラエルから?信されるIntelの次世代CPUテクノロジ?
http://pc.watch.impress.co.jp/docs/2007/1211/kaigai406.htm

バックナンバ?

( 2008年4月7日 )

[Reported by 後藤 弘茂(Hiroshige Goto) ]


【PC Watchホ?ムペ?ジ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に?して、個別にご回答はいたしません

Copyright (c) 2008 Impress Watch Corporation, an Impress Group company. All rights reserved.