「投機的実行」の版間の差分
削除された内容 追加された内容
編集の要約なし |
Okiifstation (会話 | 投稿記録) 脆弱性(Spectre)の追記等 |
||
1行目:
'''投機的実行'''(とうきてきじっこう、{{Lang-en-short|speculative execution}})とは、[[コンピュータ]]に必要
== 概要 ==
投機的実行は性能[[最適化 (情報工学)|最適化]]の一種である。その主たる考え方は、
以下のようなテクノロジーがこの考え方を採用している。
16行目:
== 積極的実行 ==
'''積極的実行'''({{En|eager execution}})は投機的実行の一種であり、条件分岐の両方の経路を実行し、実際に条件分岐命令を実行して通ることが判明した経路の結果のみを採用する。計算資源に制限がなく、
ミクロなレベルでの積極的実行としては、演算装置における桁上げ選択加算器(足し算の桁上げ(繰り上がり)は、高速化の手法はあるものの、最下位桁から伝搬する性質がある。そこで、桁上げありの場合となしの場合の両方を計算し、最後に(あるいは次のクロックで)桁上げの情報に応じてどちらかを選択する)といったものがある。
22行目:
== 遅延評価 ==
[[遅延評価]]は投機的ではない。投機的実行と言える[[先行評価]]({{En|eager evaluation}})を[[Haskell|Haskellプログラミング言語]]の実装に導入することは最近の研究上の話題のひとつである。Eager Haskellはそのような試みとして生まれた言語である。[[Glasgow Haskell Compiler]] (GHC) の最近のバージョンでは、選択を間違った場合にやり直すアボート機能をそなえた一種の投機的実行をサポートしており、「楽観的評価」と呼ばれている<ref name="Robert Ennals and Simon Peyton Jones">[http://research.microsoft.com/~simonpj/papers/optimistic/ Optimistic Evaluation: a fast evaluation strategy for non-strict programs]</ref>。
== 脆弱性 ==
2018年頃より、汎用的なプロセッサでの投機的実行において、セキュリティ上の脆弱性があることが判明している。例えば、投機的実行においてアクセス禁止されているメモリ空間にアクセスする[[Spectre]]などが知られている<ref>[https://www.fujitsu.com/jp/solutions/business-technology/security/secure/column/201802-1/ CPUの脆弱性「Spectre(スペクター)」と「Meltdown(メルトダウン)」] 富士通</ref>。
== 出典 ==
|