P6のデコーダ2つは解釈できる命令に制限あり?

最終更新日 2019年10月11日

P6 マイクロアーキテクチャのデコーダ2つは解釈できる命令に制限があるのか

アーキテクチャ総まとめ 2/2 DOS/V POWER REPORT | Impress Japan には、以下のとおり書かれています。(この記事は2008年3月号の記事)
P6もK7もx86命令を内部命令に変換するデコーダは三つだが、そのうち二つは解釈できる命令に制限があるP6に対し、K7は三つとも制限がなく高速なデコードが可能となっているほか、ALUにAGU(アドレス生成ユニット)をペアで用意することで、1サイクルあたりの命令処理数を高めるアプローチを採っていた。
デコーダとは CPU 内部にある機能であり、命令を解釈し、どのような処理を行えば良いのか理解します。

その際に x86 命令を内部命令に変換しますが、x86 命令とはインテルが開発した命令セットを使って書かれた命令です。

デコーダは x86 命令を解釈して理解し 内部命令に変換します。CPU は x86 命令のままでは処理できる段階ではありませんが、内部命令となれば処理できる段階に入れます。

P6 マイクロアーキテクチャにはデコーダが3つありますが、その中の2つのデコーダは解釈できる命令に制限があるようです。どのような制限があるのかは、具体的に書かれておらず不明です。

ASCII.jp:インテルCPUはこうして進化した すべての基本は「P6」 (2/3)|ロードマップでわかる!当世プロセッサー事情 には、P6 マイクロアーキテクチャのデコーダについて、以下のとおり書かれています。(この記事の公開年月日は2012年8月6日)
「Decode 0」は「Complex Decode」と呼ばれ、ひとつのx86命令を2つ“以上”のμOpに、「Decode 1/2」は「Simple Decode」と呼ばれ、ひとつのx86命令をひとつのμOpにそれぞれ変換する。
P6 マイクロアーキテクチャには Decode 0、Decode 1、Decode 2、これら3つのデコーダがあり、2つのデコーダは2つ以上の μOp に変換することになる x86 命令を取り扱えない(解釈できない)ようです。

μOp(マイクロオプ)とは、内部命令のことです。x86 命令が μOp になれば、CPU は処理できます。

例えば、「メモリーから2つのデータを読み込みレジスタに書き込み、両者を加算して結果をレジスタに書き込む。」、このような意味の x86 命令を、「メモリーからデータ1を読み込みレジスタ1に書き込む。」、「メモリーからデータ2を読み込みレジスタ2に書き込む。」、「レジスタ1とレジスタ2のデータを加算して結果をレジスタに書き込む」、以上の3つの内部命令に変換しますが、それぞれの内部命令が μOp です。

P6 マイクロアーキテクチャにある2つのデコーダは、ひとつの μOp に変換となる x86 命令を解釈できますが、2つ以上の μOp に変換する x86 命令は解釈できないようです。


キャンペーン情報
マウスコンピューター
冬のボーナスセール icon
期間限定で大幅値引き!最大60,000円OFF!!(一部モデルのみ)
(11月20日迄)
DELL
・PRE-BLACK FRIDAYセール
Office付き秋の感謝モデルほか、デスクトップ製品がクーポンで最大18%Off
(キャンペーン実施中)
ドスパラ
・最大20%還元 冬のボーナスセール
特価パソコンをはじめ、お買得なパソコンパーツ、周辺機器を多数ご用意
(11月28日迄)
パソコン工房
・Windows 10乗り換え応援セール×総額3億円分早い者勝ち!
BTOパソコンやPCパーツ・周辺機器などがお得な価格
(11月26日迄)

P6マイクロアーキテクチャ



マウスコンピューター/G-Tune