開発日記

Erlangをダラダラ書きます。

コンピュータの超基本

プログラム

  • 計算の手順を示したもの

  • メモリ上にある機械語(バイナリ)

プログラム用語

  • オペコード(opcode)... 演算命令を指定

  • オペランド(operand)... 演算命令に用いる演算子

ISA

  • バイナリと演算命令の対応表

コンピュータ構成要素

  • CPU(メモリから命令を取り出して計算)

  • メモリ(命令列とデータを保持,単一の巨大な配列,アドレスとデータ)

CPU構成要素

  • Functional Unit

  • Register

  • Program counter

CPUの動作

  1. PCに保持しているアドレスでメモリにアクセス
  2. 読んだ命令に応じて処理
  3. PCを更新
  4. 1に戻る

たったこれだけ.

CPU具体的な動作

  1. 命令からメモリを読み出し(Fetch)
  2. 読み出したバイナリを解読(Decode)
  3. 解読結果を用いて演算(Execute)
  4. 必要であればメモリアクセス(Memory access
  5. 必要であればレジスタアクセス(Write back)

なぜレジスタがある?

メモリより高速に動作できるから.

レジスタは必須の存在ではない.