CPUの高速化技術
CPUは命令の取り出し、解読、読み出し、実行の4つのステップを踏みます。
ノーマルな逐次制御方式だと、このように1つの命令が終わるまで次の命令が実行できず、非効率です。
そこで、命令を効率的に行えるように登場した処理方法がパイプライン処理です。
パイプライン処理
パイプライン処理とは、1つの命令を複数の段階に分け、各段階を別の回路で実行することで、複数の命令を並行して行う処理のことです。
先ほどの命令をパイプラインで行った場合です。
1ブロックを1クロックと考えると、逐次制御方式では、
12クロック必要だったところパイプライン処理では6クロックまでに短縮できています。
よって短縮された分CPUの処理効率が上がります。
分岐バザード
パイプライン処理では次から次へと命令を先読みして実行していくので、もし命令が分岐するような処理の場合、効率性を上げるはずの命令の先読みが無駄になることもあります。
このことを分岐バザードといいます。
分岐予測
分岐バザードを回避する処理のことを分岐予測といいます。
次の命令を実行できないとパイプライン処理の命令先読みの利点を生かせません。そこで、もし分岐が実行されたら次の命令はどうなるのかというところまで予測することで待ち時間の短縮をしています
投機実行
分岐予測で予測した結果に基づいて次の命令をおこなうことを投機実行といいます。
パイプライン処理をさらに高速化する方法
スーパーパイプライン
スーパーパイプラインは、①命令の取り出し②命令の解読③データ読み出し④命令実行この各ステップをさらに細分化して並行して処理できる範囲を広げたものです。
スーパースカラ
パイプライン処理を行える回路を複数搭載し、同時に複数の命令を実行できるようにした方法です。