構成原理--- CPUの構造と機能

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に送信する必要もあります。
元の記事を30件公開 いいね1 訪問数379

おすすめ

転載: blog.csdn.net/weixin_46265246/article/details/105472745