10/01/26 23:03:33 43Eg5jmS
ふーむ、こんな感じか?
●どっちに分岐するか予測して、こっちだと思ったほうに分岐する = 分岐予測
●とりあえず、予測したほうを実行する(予測が外れたら無駄) = 投機的実行 (これもプリフェッチ?)
●ひとつのプログラムを、本来の順序通りに実行するのでなく、
実行できるものからどんどん実行してしまう = アウトオブオーダー
●"投機スレッド"と呼ばれるサブスレッドで、メインスレッドから
「メモリからデータを読み出す命令」と「それに依存する命令」
だけを抜き出し、本スレッドと平行して走る投機スレッドで、
先に実行してしまう。
そうすることで本来のスレッドがロード命令を実行する時には、
必要データがL1キャッシュにロードされていることになる。 = 投機的マルチスレッディングの、投機的プリコンピュテーション
(投機マルチスレッディングでやることって分岐予測&投機実行でも出来そうな気が。。?)