BaniasのPipelineからMicroOps Fusionのメリットを理解する

最終更新日 2024年02月12日

パイプラインとマイクロオプスフュージョン

はじめに

インテルのマイクロアーキテクチャーのBaniasがMicroOps Fusionを初採用です。BaniasのPipelineを見てMicroOps Fusionのメリットを理解したいと思います。以下ではPipelineをパイプライン、MicroOps Fusionをマイクロオプスフュージョンと書きます。

パイプライン

パイプラインとは、命令の特定の処理を専門に行うステージを複数並べ、流れ作業のように各ステージが専門の処理を行い終わったら次の命令の専門の処理を行い、各ステージの待機時間をなくして性能を向上させることです。

マイクロオプスフュージョン

マイクロオプスフュージョンとは、組み合わせが多い2個のマイクロオプを統合する技術です。

Baniasのパイプライン

Baniasのパイプラインのステージ一覧

ステージ 特徴
Fetch 1 ・命令キャッシュから複数のx86命令を読み込む
Fetch 2 ・それぞれのx86命令の長さを解読する
Fetch 3/Decode 1 ・それぞれのx86命令を並べる
Decode 2 ・Complex Decodeが1個、Simple Decodeが2個、MISが1個ある
・Complex Decodeでは1個のx86命令を2個以上のマイクロオプに変換する
・Simple Decodeでは1個のx86命令を1個のマイクロオプに変換する
・MISとはMicro Instruction Sequencerの略で、Simple DecodeやComplex Decodeでは変換できない複雑なx86命令を、マイクロコードを使用してマイクロオプに変換する
Decode 3 ・Decode Instruction Queueがある
・RATのために最大6個のマイクロオプを一時的に保存する
RAT ・RATとはRegister Alias Tableの略で、同時実行できるマイクロオプを増やすために、レジスターの重複使用を解消する処理を行う
ROB ・ROBとはRe-Order Bufferの略で、マイクロオプの並び替え、実行中のマイクロオプの一覧を管理する、リタイアメント、以上の処理を行う
RS ・RSとはReady/Scheduleの略で、最大20個のマイクロオプを一時的に保存するキュー
Dispatch ・RSからマイクロオプを順次取り出し実行ユニットに振り分ける処理を行う
・Port 0,Port 1,Port 2,Port 3,Port 4があり各Port先に実行ユニットがある
・1サイクル当たり1個のポート先に転送できるマイクロオプが1個
Execution ・複数の実行ユニットがある
・各実行ユニットがマイクロオプを実行する

Baniasのパイプラインのステージ数が10個です。12個や13個とする場合もありますが、一般的には10個とします。

マイクロオプスフュージョンのメリット

マイクロオプスフュージョンなしの場合

「レジスターAの値とメモリーBの値を足し算してレジスターAに書き込む」x86命令があるとします。Decode 2のComplex Decodeが、「メモリーBの値をレジスターCに書き込む」、「レジスターAの値とレジスターCの値を足し算してレジスターAに書き込む」、以上2個のマイクロオプに分解します。

この2個のマイクロオプをDecode 3のDecode Instruction Queueが一時的に保存します。ROBでは実行中の命令の一覧を管理しますが、この2個のマイクロオプを管理します。RSではマイクロオプを一時的に保存しますが、この2個のマイクロオプを保存します。

マイクロオプスフュージョンありの場合

マイクロオプスフュージョンでは、2個のマイクロオプに分解せずに統合して1個のマイクロオプに変換します。そのため、Decode 2のComplex DecodeではなくSimple Decodeを使用します。Complex Decodeは1個、Simple Decodeは2個なので、x86命令からマイクロオプに変換する効率が高くなります。

この1個のマイクロオプをDecode 3のDecode Instruction Queueが一時的に保存します。保存するマイクロオプが2個から1個に減るので効率が高くなります。ROBでは実行中の命令の一覧を管理しますが、管理するマイクロオプが2個から1個に減るので効率が高くなります。RSではマイクロオプを一時的に保存しますが、保存するマイクロオプが2個から1個に減るので効率が高くなります。

ディスパッチが実行ユニットにマイクロオプを振り分けるとき、統合した1個のマイクロオプを2個のマイクロオプに分解します。そのため、実行ユニットが実行するマイクロオプが2個から1個に減ることはありません。

出典

ASCII.jp:インテルCPUの進化 効率と省電力を実現したPentium M (1/4)|ロードマップでわかる!当世プロセッサー事情(2012/08/13更新記事)
ASCII.jp:インテルCPUの進化 効率と省電力を実現したPentium M (2/4)(2012/08/13更新記事)


キャンペーン情報(PR)
マウスコンピューター
・ゴールデンウィークセール
最大30,000円OFF!!
(5月8日迄)
DELL
・ゴールデンウイーク
GWはお得がいっぱい
(キャンペーン実施中)
パソコン工房
・ゴールデンウィークセール
ゲーミングPCやクリエイター向けパソコンをラインナップ
(5月7日迄)