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

最終更新日 2023年09月07日

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 命令は解釈できないようです。


キャンペーン情報(PR)
マウスコンピューター
・春のパソコンセール
最大70,000円OFF!!
(4月24日迄)
DELL
・今週のおすすめ製品
対象製品が最大20%OFF
(キャンペーン実施中)
パソコン工房
・WEB開催!スプリングセール
ゲーミング・クリエイター向けパソコンなどをご用意
(4月23日迄)

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



デル株式会社