CPU は命令カウンタの内容に基づいてメインメモリにアクセスするときにどのような情報を取得しますか?

王林
リリース: 2023-02-10 14:18:49
オリジナル
12019 人が閲覧しました

CPUは命令カウンタの内容に従ってメインメモリにアクセスし、読み出した情報が命令です。命令カウンタは、次の命令が配置されているユニットのアドレスが格納される場所です。プログラムの実行を開始する前に、その開始アドレスを命令カウンターに入力する必要があります。

CPU は命令カウンタの内容に基づいてメインメモリにアクセスするときにどのような情報を取得しますか?

#この記事の動作環境: Windows10 システム、Thinkpad t480 コンピューター。

CPUは命令カウンタの内容に従ってメインメモリにアクセスし、読み出した情報が命令です。

命令カウンタの概要:

プログラム カウンタは、次の命令が配置されているユニットのアドレスを格納するために使用されます。

命令を実行する際には、まずPCに格納されている命令アドレスに従ってメモリから命令レジスタに命令をフェッチする必要があり、この処理を「命令フェッチ」と呼びます。同時に、PC 内のアドレスが自動的に 1 増加するか、次の命令のアドレスが分岐ポインタによって与えられます。その後、命令が解析されて実行されます。最初の命令の実行が完了したら、PC に従って 2 番目の命令のアドレスをフェッチするなど、各命令を実行します。

プログラム (オペレーティング システムではプロセスとして理解される) を継続的に実行できるようにするには、プロセッサは次の命令のアドレスを決定する何らかの手段を備えている必要があります。プログラム カウンタはこの役割を果たすため、命令カウンタと呼ばれることがよくあります。プログラムの実行を開始する前に、その開始アドレス、つまりプログラムの最初の命令が配置されているメモリ ユニットのアドレスをプログラム カウンタに送信する必要があるため、プログラム カウンタの内容が命令のアドレスになります。記憶から取り出したもの。

命令が実行されると、プロセッサは PC の内容を自動的に変更します。つまり、命令が実行されるたびに、PC はバイト数に等しい量だけ増加します。常に実行されるように命令に含まれる次の命令のアドレス。ほとんどの命令は順次実行されるため、変更プロセスは通常、PC に 1 を加算するだけです。

ただし、JMP(ジャンプ、外国語正式名:JUMP)命令などの転送命令があった場合は、後続の命令のアドレス(つまりPCの内容)を以下から取得する必要があります。命令レジスタ内のアドレスフィールド。この場合、メモリからフェッチされる次の命令は、通常のように順番にフェッチされるのではなく、分岐命令によって指定されます。したがって、プログラムカウンタの構造は、情報の登録とカウントの2つの機能を備えた構造とする必要があります。

(学習ビデオの共有: プログラミング ビデオ)

以上がCPU は命令カウンタの内容に基づいてメインメモリにアクセスするときにどのような情報を取得しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート