- 締切済み
CPUの条件分岐について教えて下さい。
現在趣味でSF物の小説を書いています。その中で 「暴走した人型ロボットのCPUの弱点(欠陥)をついて倒す」 というシチュエーションを使おうと思っています。 CPUはCell BroadBandEngineやFUSIONコアをベースに自分なりに調べて設定を作りました。その中で 「汎用CPUではないので分岐予測をカットしその分高速化を図った」 という設定をつくったまでは良いのですが「分岐予測」、「パイプライン」がどういうものなのかイマイチわかりません。とりあえず 「CPUという工場」には「パイプライン」というコンベアーがあり「IF,ID,EX,MA,WB」という五人の従業員がそれぞれ担当の仕事をしては隣のコンベヤーに移り作業をする。結果5ターン目以降次々と製品がでてくるが、『もし甲さんが来たら携帯を、乙さんが来たら電子辞書を作る』といった「条件付命令」がありこのままではどちらかが来るまで工場はストップせざるをえない。そこで『こういうときには乙さんが来る』といった今までの事例を「分岐フェッチ」という帳簿につけ、あらかじめ電子辞書を作り始めておく。という風に理解しています。 質問したいのはこの条件付命令であり、なぜCellプロセッサがハードウェア分岐予測を持たないのか(ゲーム機には分岐予測は必要ないのか)、どのような状況で予測ミスによるペナルティが発生するのかが知りたいのです。アマチュアとはいえ小説下記のクセにわかりづらい文章ですみませんが1つよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tasuke22
- ベストアンサー率33% (1799/5383)
回答No.1
お礼
ありがとうございます。認識間違ってましたかorz。 要するに「もしaの値が0なら8へ、1なら9へ飛べ」といった命令があった場合まずパイプラインを使って89両方へとんで処理を行なってみた上でaの値が1と決まった瞬間に「9へ飛んだときの結果」を返す、といった感じでしょうか。この時に「8へ飛んだときの結果」を破棄する、と。 Cellに分岐予測が搭載されなかったのはSPEで代用できるからなのでしょうか。それともあらかじめ分岐予測(ここはこう分岐する)と言った情報をあらかじめ仕込んで置けるからなのでしょうか。