3.コンピュータ構成要素

メモリ

  • RAM
    • 読み書き可能
    • 揮発性(電源を切るとデータは消える)
  • ROM
    • 読みだし専用
    • 不揮発性(電源を切ってもデータは消えない)
分類 動作原理 速度 集積度 ビット単価 用途
DRAM MOS 低速 安価 主記憶
SRAM MOS 中速 安価 主記憶
SRAM バイポーラ 高速 高価 キャッシュ、レジスタ

DRAMの種類

DRAM Dynamic RAM
EDO RAM Extended Data Out DRAM メモリからデータを読み出すタイミングを工夫することで転送速度を高める
SDRAM Synchronous DRAM 外部クロックに同期して動作、クロックの立ち上がりに同期
DDR-SDRAM Double-Data-Rate SDRAMの2倍。クロックの立ち上がりと立ち下がりに同期
DDR2-SDRAM SDRAMの4倍
DDR3-SDRAM SDRAMの8倍
RD-RAM Direct Rambus DRAM

ROMの種類

  • マスクROM
    • 製造工場でプログラムを書き込んだもの
    • 後からデータを変更できない

メモリアクセスの高速化

主記憶への再書き込み方式

  • ライトスルー
    • データをキャッシュに書き込むときに同時に主記憶にも書き込む
  • ライトバック
    • データを書き込むときはキャッシュのみで、データを追い出すときに主記憶に書き込む

メモリインタリーブ

  • メモリをブロックに分割、隣接ブロックのアドレスを連続に割り付けることで、各ブロックへの並列アクセスを行うことにより高速化

キャッシュメモリへのメモリ割り当て

  • ダイレクトマッピング方式
    • ハッシュを用い、主記憶上のブロックからキャッシュ上のブロックが一意に定まる
    • アクセスは高速だが、衝突すると追い出されてしまうためヒット率は低下する
  • フルアソシエイティブ方式
    • 主記憶上のブロックをキャッシュのあいているブロックに割り当てる
    • 空きを有効に使用するのでヒット率は高いが、検索が遅い
  • セットアソシエイティブ方式
    • ダイレクトマッピングとフルアソシエイティブの中間
    • キャッシュを複数のセットに分割し、ハッシュを用いてセットを割り当て、セット内の空きブロックに割り当て

追い出しアルゴリズム

  • LRU
    • Least Recently Used
    • 最後に参照してから最も時間が経過しているデータを追い出す
  • FIFO
    • 最初にキャッシュにロードされたデータを先に追い出す
  • LIFO
    • 最後にロードしたデータを先に追い出す
  • LFU
    • Least Frequently Used
    • 使用頻度が最も低いデータを追い出す

CPUの命令サイクル

  1. 命令読みだし
    • メモリから命令を取り出す
  2. 命令解読
    • CPU内の制御装置で命令を解読する
  3. アドレス計算
    • 計算に使用しているデータが格納されているアドレスを求める
  4. オペランドフェッチ
    • メモリのデータを汎用レジスタ、アキュムレータへ読みだし
  5. 実行
    • 処理を実行し、実行結果をアキュムレータに保存

CPUの高速化技法

  • 逐次制御方式(ふつうの方式)
    • ひとつの命令の実行が完了してから次の命令の読みだしを開始する
  • 先行制御方式
    • 前の命令の命令実行のサイクルと同時に次の命令の命令読みだしを実行する
  • パイプライン方式
    • 命令をステージに分割し、1ステージずつずらしながら次々と実行する
    • 速度は向上するが、分岐命令やデータ書き換えなどで先読みしていた処理が無駄になることもある(パイプラインハザード)
  • スーパースカラ
    • パイプラインを複数用意して並列で同時実行
    • 分岐予測や順序の関係ない命令を選択して同時に実行する
  • VLIW方式
    • Very Long Instruction Word
    • 依存関係のない命令を組み合わせて複合命令を構成しパイプラインで命令をステージとして並列実行

アドレス指定方式

  • 命令は「命令部+アドレス部」から分かれる
  • アドレス部はアドレス指定方式によって複数のエリアにわかれることがある
  • 即値アドレス指定
    • アドレス部にアドレスではなくデータそのものが入っている
  • 直接アドレス指定(絶対アドレス指定)
    • アドレス部に対象データの有効アドレスが入っている
  • 間接アドレス指定
    • アドレス部で指定するアドレスに、対象データのアドレスが入っている
  • 相対アドレス指定
    • 指標アドレス指定(インデックスアドレス指定)
      • アドレス部の値と、インデックスレジスタに入っている値を足して有効アドレスを計算する
    • 既定アドレス指定(ベースアドレス指定)
  • レジスタアドレス指定
    • アドレス部で指定したレジスタに有効アドレスが入っている

プロセッサの構造、方式

マルチプロセッサ

  • 密結合型
    • 主記憶を複数のCPUで共有
    • 1つのOS
    • 1つのプログラムを複数のCPUで分散実行
  • 疎結合
    • CPUごとに主記憶
    • CPUごとにOS
    • メモリ競合が起きない

MPU(Micro Processing Unit)

CISC RISC
実装方式 マイクロプログラム ワイヤードロジック
命令語長 命令ごとに異なる、長い 固定、短い
メリット 高機能命令を実装できる 1命令の処理が単純で高速化しやすい。パイプライン向き
デメリット 1命令の内部構造が複雑 1命令では単純な処理しかできない
その他 CPUが複雑化するのでレジスタ数が少ない CPUが単純なのでキャッシュ、レジスタを内蔵可能
  • マイクロプログラム
    • マイクロ命令(CPUを基本的なレベルで制御する命令)の組み合わせで複雑な命令セットを装備
    • 人間に都合のよりマイクロプログラムを定義できる
    • ファームウェア
  • ワイヤードロジック
    • 論理回路を組み合わせことで必要な処理を実現
    • 非常に高速だが、単純な命令しか実装できない

並列実行方式

SISD 1つの命令で1つのデータを処理
SIMD 1つの命令で複数のデータを同時処理
MISD 1つのデータを複数の命令が同時処理
MIMD 複数の独立した命令が異なるデータを処理

英語の意味で覚える。Single、Multiple、Instruction、Data

CPUの命令実行時間

  • CPI
    • Clock Per Instruction
    • 1命令の実行に必要なクロック数
    • 1命令の実行時間=CPI×1クロックの時間
  • IPC
    • Instruction Per Clock
    • 1クロックあたりの命令数
  • MIPS
    • Million Instruction Per Second
    • 1秒あたり何100万命令実行できるか

バスシステム

入出力制御方式

  • 直接制御方式(プログラム制御方式)
    • CPUが直接入出力制御命令を出して入出力装置の動作をコントロール
    • 入出力動作中はCPUが占有
  • DMA(Direct Memory Access)方式
    • 専用の制御回路(DMAコントローラ)を用い、CPUを介さずに手記オクト外部装置のデータ転送
    • CPUと並行動作が可能
  • チャネル制御方式
    • DMA方式の拡張
    • CPUが専用回路に入出力命令を出し、あとはチャネルがチャネルプログラムに従って入出力を実行
    • 入出力が終わるとチャネル割り込みによってCPUに報告

磁気ディスクの構造

  • 構造:複数のディスクの重なりで構成される
    • トラック(周)
      • 各円盤におけるデータを記録する同心円状の領域
    • セクタ
      • トラックを分割した区画
      • 物理的な区画の最小単位
    • クラスタ
      • 複数のセクタの固まり(物理的に連続している必要はない)
      • ファイルに領域を割り当てていくときの単位
    • シリンダ
      • 重なっている円盤において、同筒上に重なったトラックの集まり

ディスクの容量計算

  • レコード
  • ブロック
    • 複数のレコードをまとめたもの。
  • ブロック化係数
    • 1ブロックあたりのレコード数
  • ブロック間隔
    • ブロックとブロックの間隔(バリアブル方式の場合のみ)
  • バリアブル方式
    • ブロックとブロックの間にブロック間隔をとりながら割り当て
    • トラックのうち、ブロックが入りきらない区間は使用できない
    • 1トラックに記録できるブロック数=1トラックのバイト数÷(ブロック+ブロック間隔のバイト数)
  • セクタ方式
    • セクタ分割し、ブロックの割り当てを行う。
    • 複数ブロックを同一セクタにまたいで配置できない
    • 1トラックに記録できるブロック数=1トラックのセクタ数÷1ブロックに必要なセクタ数

ディスクのアクセス時間

アクセス時間=待ち時間+データ転送時間
待ち時間=シーク時間+平均回転待ち時間

平均回転待ち時間=1回転の時間÷2
1回転の時間=1トラックの記憶容量÷データ転送速度
データ転送時間=ブロック長÷データ転送速度