記事ディレクトリ
CPUの構造
CPU機能
- フォンノイマン構造のコンピューターの場合、プログラムがメモリに入ると、コンピューターは命令のフェッチと実行のタスクを自動的に完了できます。コントローラは、プログラムの命令シーケンスを実行するために各コンピュータコンポーネントを調整および制御する責任があります。
- 命令フェッチ:コントローラは、命令のアドレスを自動的に形成し、命令フェッチ命令を発行し、このアドレスに対応する命令をコントローラにフェッチする必要があります。最初の命令のアドレスは、手動で指定するか、システムで設定できます。
- 分析指示:完了する操作、つまりコントローラが発行する必要のある操作コマンドを分析します。この操作に参加しているオペランドのアドレス、つまりオペランドの実効アドレスを分析します。
- 実行命令:動作制御信号列を形成し、メモリ、演算装置、IOデバイスの動作により各命令を実行します。
- プログラムの入力や演算結果の出力やバスの管理を制御し、プロセッサの動作中に発生する異常や特殊な要求、つまり割り込み処理能力に対応します。
CPUブロック図
CPUレジスタ
-
ユーザー可視レジスタ:CPUが機械語アクセスを実行するレジスタ。サブルーチンを呼び出す前に、ユーザーが表示できるすべてのレジスタの内容を、CPUが自動的に、またはプログラマがプログラムして保存する必要があります。
汎用レジスタ:オペランドを格納するために使用でき、特定のアドレッシングモードを満たすレジスタとしても使用できます。
データレジスタ:オペランドを格納します。
アドレスレジスタ:アドレスを格納します。
条件コードレジスター:ユーザーに対して部分的に透過的な条件コードを格納します。
-
制御およびステータスレジスタ:ユーザーに対して透過的
MAR:メモリアドレスレジスタ。
MDR:メモリデータレジスタ。
PC:プログラムカウンター。
IR:命令レジスタ。
コントロールユニット
- すべてのコンピュータ命令操作を完了するマイクロ操作コマンドシーケンスコンポーネントを提供します
命令サイクル
- 命令サイクル:CPUが命令をフェッチして実行するために必要な合計時間は、命令サイクルと呼ばれます。これは、CPUが命令を完了するのにかかる時間です。命令フェッチフェーズは、命令のフェッチと分析を完了します。これは、命令フェッチサイクルと実行フェーズとも呼ばれます。命令の実行操作の完了は、実行サイクルとも呼ばれます。動作機能が異なるため、さまざまな命令の命令サイクルが異なります。
- 命令フェッチサイクルフェッチ命令フェッチ、アドレス間サイクルフェッチ実効アドレスフェッチ、実行サイクルフェッチオペランドフェッチ、割り込みサイクル保護プログラムブレークポイント。
命令サイクルのデータフロー
現在の命令のアドレスは、フェッチサイクルのデータストリームPCに格納されます。このアドレスはMARに送信され、アドレスバスに送信されます。その後、コントロールユニットCUがメモリに読み取りコマンドを送信し、対応するMARが指すユニットの内容がデータバスを介してMDRに送信されます。 、次にIRに送信され、CUはPCを制御して1を追加し、次の命令のアドレスを形成します。- アドレス間サイクルのデータストリームが終了
すると、CUはIRのコンテンツを確認し、アドレス間操作があるかどうかを判断します。アドレス間操作が必要な場合は、MDRの正式アドレスの右NビットがMARに送信されます、次にアドレスバスに送信されます。その後、CUはメモリに読み取りコマンドを送信して有効なアドレスを取得し、MDRに保存します。 - 実行サイクルのデータフロー実行サイクルでは
命令によってオペレーションが異なるため、実行サイクルのデータフローは多様であり、CPU内部レジスタ間のデータ転送、メモリまたはIO、またはALUへの読み取りおよび書き込みオペレーションが含まれる場合があります。オペレーションは、統一されたデータフローで表すことはできません。
割り込みサービスルーチンの実行後、割り込みサービスルーチンをプログラムの割り込みに正確に戻すことができるように、現在のPC の内容を保存する必要があります。CUはプログラムブレークポイントを格納するための特別な地質学的メモリをMARに送信し、それをアドレスバスに送信します。次に、CUはメモリに書き込みコマンドを送信し、PCの内容をMDRに送信します。最後に、プログラムブレークポイントはデータバスを通過しますさらに、CUはメモリに格納され、次の命令サイクルのフェッチサイクルに備えるために、プログラムのエントリアドレスをPCに送信する必要もあります。