アプリケーションの命令は、中央処理装置 (CPU) の命令セットと、オペレーティング システムに特定のサービスを要求するために使用される命令セットの 2 つのカテゴリに分類でき、アプリケーションの処理フローは中央プロセッサの操作命令は、命令フェッチと変換に大別され、コード化、実行、フェッチ、ライトバック、PC の更新を行います。
処理命令フロー
命令セットの重要な特性は、バイト エンコーディングが独自の解釈を持つ必要があることです。バイト シーケンスは、一意の命令シーケンスをエンコードしているか、有効なバイト シーケンスではありません。各命令の最初のバイトにはコードと機能の一意の組み合わせがあるため、このバイトが与えられると、他のすべての追加バイトの長さと意味を判断できます。 各命令には、必要なフィールドに応じて 1 ~ 6 バイトが必要です。各命令の最初のバイトは命令のタイプを示します。上位 4 ビットはコード部分 (例: 6 は整数演算命令)、下位 4 ビットは関数部分 (例: 1 は減算命令) です。整数クラス) 61 これらは一緒にサブコマンドになります。以下は、各命令を処理するためのフローチャートです。
Fetch (フェッチ)値フェーズはメモリから命令バイトを読み取り、それを命令メモリ (CPU 内) に置くと、アドレスはプログラム カウンタ (PC) の値になります。現在の命令に続く次の命令のアドレス (つまり、PC の値にフェッチされた命令の長さを加えたもの) を計算します。 デコード(デコード)ALU は、レジスタ ファイル (汎用レジスタの集合) から最大 2 つのオペランドを読み取ります。 (つまり、一度に最大 2 つのレジスタの内容を読み取ります) 実行(execute)実行フェーズでは、算術論理演算ユニット (ALU) がさまざまな目的で使用されます。命令の種類に応じて機能します。他の命令の場合、スタック ポインターのインクリメントまたはデクリメントを計算するための加算器として機能するか、実効アドレスを計算するか、または単純に 0 を加算して入力を出力に渡します。 条件コード レジスタ (CC) には 3 つの条件ビットがあります。 ALU は、条件コードの新しい値を計算する役割を果たします。ジャンプ命令が実行されると、条件コードとジャンプの種類に基づいて分岐信号 cnd が計算されます。 メモリ アクセス (メモリ)メモリ アクセス フェーズでは、(CPU 内の) データ メモリがメモリ ワードの読み取りまたは書き込みを行います。命令メモリとデータ メモリは同じメモリ位置にアクセスしますが、目的は異なります。 ライトバック(ライトバック)ライトバックフェーズでは、最大 2 つの結果をレジスタ ファイルに書き込むことができます。レジスタ ファイルには 2 つの書き込みポートがあります。ポート E は ALU によって計算された値を書き込むために使用され、ポート M はデータ メモリから読み取られた値を書き込むために使用されます。 Update PC (PC更新)命令コードと分岐フラグに従い、前ステップで取得した信号値から次のPC値を選択します。 関連知識の詳細については、PHP 中国語 Web サイト をご覧ください。
以上がアプリケーションの指示は次のように分類できます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。