第9回講義資料 2009/11/20

メモリアーキテクチャ

主記憶の歴史
  • 黎明期:水銀遅延管、ウィリアムズ管
  • 磁気コアメモリ
    • IBM System360など第3世代までの主役
    • ドーナツ型のフェライトに1ビットを記憶
    • 手作業で線を線を通さなくてはならないためたいへん高価だった(らしい)
  • 半導体メモリ
    • LSI時代の主役
    • 半導体メモリが半導体産業の主役に...
    • DRAM:ダイナミックRAM
    • SRAM:スタテッィクRAM
水銀遅延管
  • 水銀を満たしたパイプにパルスを伝え、その遅延の間だけ記憶するしくみ
  • 遅延した情報を連蔵して繰り返すことにより記憶
  • 水銀以外にもパルスの物理遅延を利用したものがあった
ウィリアムズ管
  • CRT(ブラウン管)の残像を利用した記憶
  • 記憶のビットパターンを直接目で確認することができる
  • 東大のTACでも使われた
磁気コアメモリ
  • 第3世代までの商用のマシンに広く搭載された
  • 1mmより小さいドーナツ状の磁気コアに磁気記憶
  • 2本のアドレス線と、読み書き用のデータ線、3本を配線
  • 編み込まれた布のような実体
  • 半導体記憶が一般化するまで主役
半導体メモリ
  • LSIチップによる記憶ディバイス
  • VLSI集積技術により大容量化
  • 主記憶はダイナミックRAM
  • キャッシュメモリはスタティックRAM
DRAM:ダイナミックRAMの原理
  • Dynamic Random Access Memory
  • キャパシタ(コンデンサ)1つと、読み書き用のトランジスタ1つで構成
  • しくみが単純
  • 容量は微量であるため、わずかな時間でリークする(電荷が漏れる)
  • ダイナミックな記憶管理が必要
    • 定期的なリフレッシュが必要
    • 読み出し後は再書き込みも必要
  • 動作時間は一般的に遅い

DRAMの回路(Wikipediaより引用リンク)

SRAM:スタティックRAM
  • Static Random Access Memory
  • フリップ・フロップによる記憶
  • トランジスタのスイッチによる記憶のため高速
  • 1ビットに4素子以上のトランジスタが必要
  • 素子以上に回路が複雑
  • 高集積に向かない
  • 低消費電力(リフレッシュの必要がない)
  • キャッシュメモリに用いられる
メインメモリの速度の問題
  • メインメモリ(DRAM)は大容量を実現できるが遅い
  • CPUの高速化に対応できない
  • いくらCPUのロジックを高速化しても命令の読み出しが遅い
記憶の階層化
  • 速度と容量の両立の実現方法
  • 高速、小容量のSRAM(キャッシュメモリ)をCPUが直接アクセス
  • 低速、大容量のDRAM(メインメモリ)の内容を必要に応じてSRAMに転送
メモリの速度
 記憶 記憶媒体 アクセス時間 容量
 レジスタ     フリップフロップ 数ns 数十ワード
 キャッシュメモリ     SRAM 数+ns 数MB
 メインメモリ DRAM 数百ns 数GB
 補助記憶                 ハードディスク    数ms 数百GB

アクセスの局所性
  • コンピュータの命令は連続している場合が多い
  • アクセスはランダムではなく連続している
  • ループや分岐があるが、アクセスには局所性がある
  • メモリのアクセスの局所性を利用すれば、キャッシュメモリで高速化が可能
局所性
  • 時間局所性
    • あるデータがアクセスされる近い将来同じデータがアクセスされる可能性が高い
  • 空間局所性
    • ある特定の場所がアクセスされると、その後近傍がアクセスされることが多い
キャッシュメモリ
  • 高速なSRAMを利用する
  • 最近ではCPUと同じダイの上に存在(高速アクセスのため)
  • キャッシュにデータが存在しない場合は、メインメモリよりデータをバースト転送する


キャッシュの問題
  • キャッシュに必要なデータが存在しない場合(ミスキャッシュ)
  • メインメモリから読み込みが必要
  • 性能が一気に低下
  • キャッシュミスを少なくするアルゴリズムが必要
キャッシュのアルゴリズム
  • キャッシュのどのデータを入れ替えるかを選ぶアルゴリズム
  • アルゴリズムには速度も考慮されなくてはいけない
  • 基本的なアルゴリズム
    • FIFO : 読み込まれて時間がたったものから追い出されていく
    • LRU : もっとも最近使われていないものから追い出されていく
    • ランダム : ランダムに追い出されていく
  • LRUが優秀であるが、速度も考慮されなくてはいけない(1サイクルで決定)
キャッシュの種類
  • ライトスルーキャッシュ(書き込みはメインメモリにスルーされる)
  • ライトバックキャッシュ(書き込みもキャッシュされる)
キャッシュメモリの実際
  • 以前はCPUチップとは独立して実装されていた
  • 現在はCPUダイに実装
  • キャッシュの多段化(レベル1キャッシュ、レベル2キャッシュ、レベル3キャッシュ)
  • Intelチップの場合
    • i486キャッシュメモリが外部
    • Pentium レベル1キャッシュを内蔵
    • Pentium Pro レベル2キャッシュをパッケージ内に内蔵
    • Pentium II, III ソケット構造に、CPUボード内にレベル2キャッシュを搭載
    • Pentium III 途中からCPUダイ内にレベル2キャッシュを内蔵
    • Pentium 4 以降はCPUダイにキャッシュをすべて内蔵(徐々に容量も増加)
メインメモリのアクセス
  • DRAM:ダイナミックRAMの利用
  • 高密度実装ができるため大容量が可能
  • アクセスに時間がかかる
    • プリチャージの必要性(破壊読み出しのため読み込み時の書き戻しが必要)
    • 定期的なリフレッシュ
  • バースト転送によるスループットの確保
メインメモリの高速化
  • 行と列を選択するアクセスはそれほど高速化できない
  • 同じ行のデータを連続転送するモードの強化
  • ページモードによる連続転送
    • ファーストページモード
    • EDO:Extended Data Out
    • SDRAM:Synchronos DRAM
      • 行単位の同期転送
SDRAM:シンクロナス・ダイナミックRAM
  • 行単位の連続同期転送(クロックに同期した連続転送を基本とする)
  • SDRAM(PC-100, PC-133)
  • DDR-SDRAM (PC-2100, PC-2700, PC-3200)
    • 1クロックで2回転送(倍速転送)
  • DDR2-SDRAM(PC2-4200, PC2-5300, PC2-6400)
    • 1クロックで4回転送(4倍速転送)
  • DDR3-SDRAM(PC3-8400)
    • 1クロックで8回転層(8倍速転送)

Ċ
Hideto Sazuka,
2009/11/19 18:12
Comments