スーパースカラーとアウトオブオーダーはセットの技術
スーパースカラーの次に紹介する技術が、アウトオブオーダーである。アウトオブオーダーはスーパースカラーを前提とした技術である。アウトオブオーダーなしのスーパースカラーはあるが、スーパースカラーなしのアウトオブオーダーはありえない(というか意味がない)ので、現実問題としてスーパースカラーが前提の技術、と考えてよいだろう。
アウトオブオーダーの言葉の意味は「乱れる、狂う、故障する」で、米国では故障した自動販売機とかに「Out of order」とか張り紙がしてあったりする。もちろんここで扱うのは別の意味。「乱れる、狂う」に近いが、ようするに「命令の実行順序を変えてしまう」ものだ。こう書くと、「では前回の命令の並び替えと何が違うのか?」と聞かれそうだが、実は「半分は」同じものである。
アウトオブオーダーは上に書いたとおり、「与えられた命令を一度展開し、依存関係がない順に順次実行する」方式である。前回「命令の並び替え」として説明した以下の並び替え例が、すでにアウトオブオーダーなのである。
並び替え前 | 並び替え後 | |
---|---|---|
命令1 | R1=Data1 | R1=Data1 |
命令2 | R2=Data2 | R2=Data2 |
命令3 | R3=R1+R2 | R4=Data3 |
命令4 | R4=Data3 | R5=Data4 |
命令5 | R5=Data4 | R3=R1+R2 |
命令6 | R6=R4+R5 | R6=R4+R5 |
つまり本来の命令の並び順を、CPU内部で入れ替えているからだ。これによる効果は、前回述べたとおり非常に大きい。
さて、前回はアウトオブオーダーにはあまり積極的に触れなかったこともあり、従来のパイプラインの延長的な構図を示したが、本来のアウトオブオーダーのパイプラインは図1のようになる。前回と異なり、「Re-Order Buffer」と呼ばれるものが新たに出現しているわけだが、これがアウトオブオーダーの肝の部分である。
まず、命令キャッシュからFetchを経て取り込まれた命令は、Decodeで解釈される。ここまでは「インオーダー」、つまりあくまで読み込んだ順に処理されてゆく。解釈が終わった命令は、いったんスケジューラに入る。ここで命令の並び替えが行なわれる。この例で言えば、左の4命令は先に処理され、右の2命令は後回しにされる。
先に処理 | 後回し |
---|---|
R1=Data1 | R3=R1+R2 |
R2=Data2 | R6=R4+R5 |
R4=Data3 | |
R5=Data4 |
この連載の記事
-
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ -
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ -
第759回
PC
プリンター接続で業界標準になったセントロニクスI/F 消え去ったI/F史 -
第758回
PC
モデムをつなぐのに必要だったRS-232-CというシリアルI/F 消え去ったI/F史 - この連載の一覧へ