CPUの命令デコーダーとは?

最終更新日 2019年10月11日

CPU の命令デコーダーとは何か

命令デコーダー - 意味・説明・解説 : ASCII.jpデジタル用語辞典 には、命令デコーダーについて、以下のとおり書かれています。(この記事の更新年月日は2008年10月7日)
CPUに含まれる回路のひとつ。命令レジスターに読み込まれた命令の内容を解読して、実行の準備をする。
CPU に何らかの処理をさせたい場合は命令を与えますが、その命令を保持するレジスターを命令レジスターと呼びます。

レジスターは CPU 内部にあり、CPU の処理に必要なデータを保持します。キャッシュメモリーと似ていますが、レジスターの方がアクセス速度が速く、処理直前のデータや処理中のデータ、処理直後のデータを保持して処理速度を高速化します。

CPU の処理を大まかに分けると、一般的にフェッチ、デコード、データフェッチ、エグゼキュート、ライトバックに分けられます。

フェッチでキャッシュメモリーやメインメモリーから命令を読み込み、命令レジスターへ保持します。

読み込んだ命令の内容をデコードで解読し実行の準備をしますが、デコードを行う回路を命令デコーダーと呼ぶようです。

ちなみに、データフェッチでは処理に必要なデータを読み込み、エグゼキュートでは処理を実行し、ライトバックでは実行した処理の結果をレジスターやキャッシュメモリー、メインメモリーへ書き込みます。

Part2 CPUの基本的な動作原理とは | 日経 xTECH(クロステック) では、CPU を外部バスインタフェース、制御ユニット、演算ユニットに分けて解説しています。(この記事の公開年月日は2007年8月27日)

フェッチ、デコード、データフェッチ、エグゼキュート、ライトバックに分けて解説する方法と比べると、基本は同じです。

同記事にはキャッシュメモリーは出てきませんが、解説内容をシンプルにするためにキャッシュメモリーがない CPU を扱ったと考えられます。

まずメインメモリーに保持している命令を、外部インターフェースを通して制御ユニットに読み込みますが、これをフェッチと呼びます。

同記事には命令レジスターは出てきませんが、解説内容をシンプルにするために命令レジスターを省略したと考えられます。

制御ユニットにはデコーダーがあり、デコーダーについて以下のとおり書かれています。
ここには、命令の解読を専門に行う「デコーダー」という機能がある。

(略)

フェッチされた命令は制御ユニットにあるデコーダーで、足し算なのか、かけ算なのか、あるいはデータ転送なのか、といった具体的な情報に解読される。
冒頭の「ここ」とは、制御ユニットを指します。フェッチで読み込んだ命令を解読することをデコードと呼びますが、デコードする機能をデコーダーと呼ぶようです。

デコーダーが解読した命令は、演算ユニットをどのように動作させて演算させるか制御する制御情報となります。

メインメモリーに保持している演算に必要なデータは、外部インターフェースを通して演算ユニットに読み込みますが、これをデータフェッチと呼びます。

演算ユニットには処理中のデータを保持するレジスターと演算する演算器があり、読み込んだ演算に必要なデータはレジスターに保持します。

制御情報に従って演算器はレジスターに保持したデータを利用し演算しますが、これをエグゼキュートと呼びます。

演算が終わったら結果をレジスターに書き込み、外部インターフェースを通してメインメモリーにも書き込みますが、これをライトバックと呼びます。


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