コンテンツにスキップ

アウト・オブ・オーダー実行

出典: フリー百科事典『ウィキペディア(Wikipedia)』

: out-of-order executionIPC1'OoO''O-o-O'

Instruction-level parallelism; ILP112OoO1

歴史

[編集]

1960CDC 6600[1]6600scoreboarding (WAW)  (WAR) IBM System/360 91Tomasulo[1]scoreboardingTomasulo

19801980Yale PattHPSm

1985J.E.Smith & A.R.Pleszkun

1990POWER1x86P6Pentium Pro1995Cyrix 6x861995IBMPowerPC 601 (1992/1993)HALSparc641 (1995)PA-8000 (1996)MIPS MIPS R10000 (1996)AMD K5 (1996)DEC Alpha  21264 (1998)

OoOUltraSPARCSPARC T3SPARC64ItaniumCrusoeVLIWOoO

AtomARM

基本的コンセプト

[編集]

イン・オーダー実行プロセッサ

[編集]



(一)

(二)(functional unit)

(三)

(四)

アウト・オブ・オーダー実行プロセッサ

[編集]

OoO

(一)

(二)(reorder buffer)

(三)(reservation station, issue queue)(dispatch)

(四)

(五)(issue)

(六)

(七)(graduation, retire)()

OoO(2)OoO

OoO(program order)(data order)

OoO

デコードと発行の分離によって、順序通りでない発行が可能になった

[編集]

OoO(dispatch step)(issue step)OoO(decoupled architecture)


処理の実行と結果の書き込みを分離することで、プログラムの再起動が可能になった

[編集]

実行結果を格納する待ち行列は分岐予想が外れた時及び例外/トラップの処理の際発生する問題を解決するために必須である。例外が起きた場合はプログラム順で命令が実行されることが必要になるが、結果待ち行列があるおかげで、例外を起こした後でも当該プログラムを再実行することができる。以前実行した分岐命令の予測が失敗した際や、例外が発生した際は、この待ち行列から(まだ書き込まれていない段階で)ゴミになってしまった結果を削除することができる。

分岐をまたいだ命令の発行は現在も未解決の問題で、投機的実行という名で知られる。

選択されるマイクロアーキテクチャ

[編集]

?

IBM PowerPC IBMreservation stations

使

OoORe-order BufferOoO

脆弱性

[編集]

O-o-Oの手法に起因した、MeltdownSpectreといった脆弱性が2018年1月に発表され、業界に衝撃を与えたた[2]

脚注

[編集]
  1. ^ a b Hisa Ando 2011, p. 86.
  2. ^ Bright, Peter (2018年1月5日). “Meltdown and Spectre: Here's what Intel, Apple, Microsoft, others are doing about it”. Ars Technica. 2018年1月6日閲覧。

参考文献

[編集]
  • Hisa Ando『プロセッサを支える技術 : 果てしなくスピードを追求する世界』技術評論社、2011年1月25日。ISBN 978-4-7741-4521-1 

関連項目

[編集]