理論的には、アプリケーション内の命令は、オペレーティング システムと中央処理装置 (CPU) に特定のサービスを要求するために使用される命令セットに分割できます。 CPUの動作命令の処理の流れは、命令フェッチ、デコード、実行、メモリアクセス、ライトバックなどに大別され、各命令は必要なフィールドに応じて1~6バイトを必要とします。
#この記事の動作環境: Windows10 システム、Thinkpad t480 コンピューター。
理論的には、アプリケーション内の命令は、中央処理装置 (CPU) の命令セットと、オペレーティング システムに特定のサービスを要求するために使用される命令セットの 2 つのカテゴリに分類できます。
中央処理装置 (CPU、Central Processing Unit) は、非常に大規模な集積回路であり、コンピューターの計算コア (コア) と制御コア (コントロール ユニット) です。その機能は主に、コンピュータの命令を解釈し、コンピュータ ソフトウェアでデータを処理することです。
中央処理装置は、主に演算装置(算術論理演算装置、ALU、Arithmetic Logic Unit)とキャッシュメモリ(Cache)、それらの間の接続を実現するバス(Data)、制御およびステータスで構成されます。バス)。内部メモリ (Memory) および入出力 (I/O) デバイスとともに、電子コンピュータの 3 つのコア コンポーネントとして総称されます。
CPUの動作命令の処理の流れは、大きく分けて命令フェッチ、デコード、実行、メモリアクセス、ライトバックなどのいくつかのステップに分かれます。各命令には、どのフィールドが必要かに応じて、1 ~ 6 バイトが必要です。各命令の最初のバイトは命令のタイプを示します。上位 4 ビットはコード部分 (例: 6 は整数演算命令)、下位 4 ビットは関数部分 (例: 1 は減算命令) です。整数クラス) 61 これらは一緒にサブコマンドになります。
処理命令フロー
命令セットの重要な特性は、バイト エンコーディングが独自の解釈を持つ必要があることです。バイト シーケンスは、一意の命令シーケンスをエンコードしているか、有効なバイト シーケンスではありません。各命令の最初のバイトにはコードと機能の一意の組み合わせがあるため、このバイトが与えられると、他のすべての追加バイトの長さと意味を判断できます。
各命令には、必要なフィールドに応じて 1 ~ 6 バイトが必要です。各命令の最初のバイトは命令のタイプを示します。上位 4 ビットはコード部分 (例: 6 は整数演算命令)、下位 4 ビットは関数部分 (例: 1 は減算命令) です。整数クラス) 61 これらは一緒にサブコマンドになります。
以下は、各命令を処理するためのフローチャートです。
fetch
get value ステージは読み取ります。メモリから命令バイトを取得し、それを命令メモリ (CPU 内の) に配置します。アドレスはプログラム カウンタ (PC) の値です。現在の命令に続く次の命令のアドレス (つまり、PC の値にフェッチされた命令の長さを加えたもの) を計算します。
デコード (デコード)
ALU は、レジスタ ファイル (汎用レジスタの集合) から最大 2 つのオペランドを読み取ります。 (つまり、一度に最大 2 つのレジスタの内容を読み取ることができます)
Execution(execute)
実行フェーズでは、算術論理ユニット(ALU) はさまざまな目的に使用されます。他の命令の場合、スタック ポインターのインクリメントまたはデクリメントを計算するための加算器として機能するか、実効アドレスを計算するか、または単純に 0 を加算して入力を出力に渡します。
条件コード レジスタ (CC) には 3 つの条件ビットがあります。 ALU は、条件コードの新しい値を計算する役割を果たします。ジャンプ命令が実行されると、条件コードとジャンプの種類に基づいて分岐信号 cnd が計算されます。
メモリ アクセス (メモリ)
メモリ アクセス フェーズでは、(CPU 内の) データ メモリがメモリ ワードの読み取りまたは書き込みを行います。命令メモリとデータ メモリは同じメモリ位置にアクセスしますが、目的は異なります。
ライトバック(ライトバック)
ライトバックフェーズでは、最大 2 つの結果をレジスタ ファイルに書き込むことができます。レジスタ ファイルには 2 つの書き込みポートがあります。ポート E は ALU によって計算された値を書き込むために使用され、ポート M はデータ メモリから読み取られた値を書き込むために使用されます。
Update PC(PC更新)
命令コードと分岐フラグに従い、前ステップで取得した信号値から次のPC値を選択します。
以上がアプリケーション内の指示は、オペレーティング システムからの特定のサービスの要求と、何を要求するかに分けることができます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。