Open1

忘れがちなCPUの仕組み

momo1205momo1205

概要

  • CPUの仕組みを深く理解したい時に基本を忘れていることがあるのでメモ程度に書き残す
  • 間違えている個所があれば、その都度修正する

コンピュータの5大装置

  • 制御装置
    • 記憶装置から命令を取り出して解読、その後それぞれの装置に指示を出す
  • 演算装置
  • 記憶装置
    • 処理対象のデータやプログラムを記憶する場所
    • 読み書きができるRAMと読み出しだけができるROMがある
      • RAMにもDRAMとSRAMがある
      • ここらへんは別の記事にまとめる
  • 入力装置
    • キーボードやマウスなど外部からコンピュータに情報を与える装置
  • 出力装置
    • ディスプレイなどの内部で処理された結果を外部に表示する装置

CPUの構成要素

  • 上記の5大装置の中の制御装置と演算装置を合わせて中央処理装置(CPU:Central Processing Unit)という
  • CPUは計算の実行や、メモリから値を読み書きなどを以下のハードウェアを使用して行う
    • レジスタ
    • ALU
    • 制御ユニット
  • 一定間隔で電圧が「高」「低」を繰り返す信号を生成するクロック周波数を用いてCPUやメモリなどの各部の動作を統制している
    • 一概には言えないがクロック周波数が高くなると処理速度は向上する
    • 処理速度にはメモリなどの性能も関わってくる

CPUの実行サイクル

  • ざっくりとした流れだが、CPUは制御装置で主記憶装置(メインメモリ)から命令を取得、解釈して他の装置に指示を出して演算装置で演算を行う(それぞれは以下のように呼ばれている)
    • フェッチ
      • プログラムの置かれたメモリから実行する処理を読み込む
    • デコード
      • 読み込んだ命令をCPUが解釈できる形に解読する
    • 実行
      • 解読した命令に沿って指示を出して実際に処理を行っていく
  • 上記の流れを実行するにあたり、毎回メモリにアクセスしていると処理に時間がかかるため読み込んだ処理をレジスタに格納して処理を行っていく
  • レジスタはCPU回路の中に存在している記憶装置であり、メモリと比較すると小さな記憶装置
    • レジスタがCPU回路内に存在することでCPUから別の装置にアクセスする必要がないこと、何百万と存在するメモリの中のセルと比較して数える程度のセルしかないことから、メモリにアクセスするよりもレジスタを使用する方が処理速度が速くなる

命令実行サイクル

  • 以下の流れで命令が実行されていく
  • 主記憶装置から命令を読み込む
  • 読み込んだ命令をCPUが理解できる形に解読する
  • 実効アドレスの計算
    • 解読した命令には処理対象となるデータが存在する主記憶装置のアドレスなどを指示する内容がある
    • これをオペランドと呼ぶ
  • オペランド読み出し
    • 実効アドレスの計算で得たオペランドを読み出して、主記憶装置に指示を出す
  • 命令の実行
    • 主記憶装置が指示を受けて、演算装置に値を渡してくれるのでその値を使用して命令の実行を行う
  • 演算結果の格納
    • 演算結果を主記憶装置に書き込む

参考