20260420_2


計算機はどれも論理ゲートから構成されている

ANDは直列のスイッチ、ORは並列のスイッチのイメージを持つといい

  • スイッチはリレー→真空管→トランジスタへと変遷
    • トランジスタは高速なスイッチングが可能で省スペース/省電力なので多用された
    • 写真技術を応用したエッチングが可能になる

ノイマン型計算機の定義

  • プログラム内蔵方式
    • データだけでなくプログラム(命令列)もコンピュータ内部のメモリに置く
    • 配線による制御はこれにあたらない
  • 逐次制御方式
    • 命令は一つずつ順に実行
    • 並列実行はこれにあたらない
  • 一つのプロセッサーと一つのメモリ
    • プロセッサは
      • メモリから命令とデータを読み込む
      • 命令の実行
      • 結果をメモリに格納
    • を繰り返す
  • 線形アドレス空間
    • メモリには整数で表すアドレスが一次元的につく
    • アドレスの表現にはビット定数を用いる
    • アドレスの範囲=空間は0からまで
    • 64bitマシンとかのbitは一気にアクセスできるアドレスの範囲

アドレス長が32bitだったならアドレス空間は0~までで4GiBを扱える

CPUによって最大メモリ量が決まっているのはこの関係

キャッシュメモリやアウトオブオーダ、マルチコアなどもあるがこれもノイマン型とみなす(命令の順序によって結果が変わらないようにした並列化)

ノイマン型計算機の基本構成

graph LR
A[CPU]<-->B[バス]<-->C[メモリ]
B<-->D[I/O装置]
B<-->E[I/O装置]

CPUは高速だが、バスを介すためメモリは低速、I/Oはさらに低速

バスで一度に転送できるビットがバス幅


機械語命令の表現

CPUは0x01C8みたいなのをメモリに格納して実行する
0x01c8

オペコード、オペランドを格納している

  • オペコード
    • 命令の種類(加算/乗算etc…)
  • オペランド
    • 命令の内容(引数)

機械語命令の実行

マルチサイクル方式の例(5ステージ)

graph LR
A[命令の読み込み]-->B[命令の解読]-->C[オペランド読み込み]-->D[命令の実行]-->E[結果の格納]-->A

このサイクルをクロック信号に合わせて同期する
この場合は5クロック1サイクル

CPUは早いがメモリ律速になる
→ノイマンボトルネック

cerebrasで聞いた話だ