メモリシステム コンピュータシステムの構成 制御装置 演算装置 記憶装置

メモリシステム
小林広明
2003年6月27日
<計算機工学>
6/27/2003
1
コンピュータシステムの構成
コンピュータシステム
プロセッサ
入力装置
制御装置
記憶装置
出力装置
演算装置
6/27/2003
<計算機工学>
2
1
第6章で学ぶこと
•
•
計算機内部でのデータの記憶方法
動作速度と容量の間のトレードオフ
– 大容量・低速
– 小容量・高速
記憶装置の分類:記憶方式の違い
による分類
–
–
–
–
•
•
•
半導体メモリ
磁気ディスク
磁気テープ
光磁気ディスク
階層型メモリシステム
– 参照の局所性
– 仮想記憶方式
– キャッシュメモリ
記憶装置の分類:データの配置方
法による違い
– ランダムアクセスメモリ:半導体メモ
リ、(光)磁気ディスク
– シーケンシャルアクセスメモリ:磁
気テープ
6/27/2003
<計算機工学>
3
記憶装置を作る上で考えること
• 1ビットをどうやって記憶するか?
2状態を記憶できる素子を考える
– 電気的に記憶する
– 磁気的に記憶する
– 機械的加工してに記憶する
• 機能・目的に応じて記憶装置を作る
–
–
–
–
–
–
6/27/2003
書き換えの有無
記憶容量
データの読み書きする速度
データの保存性
データの可搬性
(1ビットあたりの)値段
<計算機工学>
4
2
記憶装置
半導体記憶装置:
• RAM (Random Access Memory)
書き換え可能なROMもある
–
–
–
– SRAM (Static RAM)
– DRAM (Dynamic RAM)
– 高速読み書き可能:主記憶として、プ
ログラム&データの処理に使われる
– 電気を切るとデータが消える
• 長期保存が必要な場合は、消え
ない記憶装置に保存
•
•
磁性体記憶装置:
ROM (Read Only Memory)
– 半導体記憶装置で読み出し専用
– 読み込みは高速だが、書き込みは最
初の1回
– 辞書、コンピュータの制御プログラム
などに適する
6/27/2003
EEPROM, フラッシュメモリ、メモリーカード
ただし、書き込みは一括で行うため遅い
ほとんど固定だけど、たまに書き換えがあ
るような情報の保存に便利
• 携帯電話、パソコンの機能のバージョ
ンアップ用プログラムの記憶など
–
–
磁気ディスク装置
磁気テープ装置
半導体装置より、1ビットのあたりのコストは
安い→大容量
機械動作を伴うため、半導体記憶装置より
低速
主記憶に対する補助記憶として、比較的よ
く使われるプログラム&データの長期大量
保存に使われる
<計算機工学>
5
さまざまな半導体記憶素子
SIMM/DIMM
コンパクトフラッシュ
スマートメディア
6/27/2003
<計算機工学>
6
3
記憶装置
•
媒体を機械的に加工して記憶する
– CD-ROM(光ディスク)
•
その他
光と磁気の融合:
–
着脱可能なディスクのため、可搬
性がよく、データ交換用記憶装置
として使われる
CD-ROMは、完全な機械加工に
よる記憶のため、書き換え不能
一括機械加工が可能で、大量生
産が容易なため、コストが安い
辞書、市販ソフト用の媒体として
最適、
6/27/2003
MO(光磁気ディスク装置)
レーザで媒体を磁化し0,1を記憶し、
磁化された部分にレーザを当てて、反
射された光の偏向から情報を読み出
す
書き換え可能、可搬性がよい
上書きが直接できないため、磁気ディ
スクより遅い
CD-R(RW)
レーザで媒体を加工し、情報を記憶、
読み出しは加工した部分にレーザを当
てて、加工状態を読み出す
CD-R:1度だけ加工可能
CD-RW:複数回加工可能
上書きが直接できないため、磁気ディ
スクより遅い
CDと同一書式のため、可搬性がよい
<計算機工学>
7
CD/CD-Rの仕組み
特徴
• 寿命が抜群に長い
– 100年を超えるといわれる安定性、
耐久性を持っている
• メディアの容量は650MB。A4文書で、な
んと6千〜1万枚分。
• CDは記録済のデータの読出しのみ、
CD-Rは読み書きが可能
CD/CD-R
• 再生時 … レーザー光が、記録ピットの
有無による反射率の変化をデジタル信
号として読み取る
CD-R
• 記録時 … 基板側から照射されたレー
ザー光が、色素の熱変化を起こし、記録
ピットを形成する
CD
ピット
CD-R
6/27/2003
<計算機工学>
8
4
主記憶(メモリ)の構造
• 論理的構造
– 1次元に並べられた1ビットメモリセルにアドレス(番地)がつけられ、
データアクセスはアドレスを指定して行う
•
物理的構造
– メモリセルを2次元(行と列)に配置して,行アドレスと列アドレスによっ
て指定する.
論理構造
物理構造
<計算機工学>
6/27/2003
9
SRAM
1ビット記憶セル
512Kビット(8ビット×64K)
SRAMの構成
SRAMの内部構造
6/27/2003
<計算機工学>
10
5
DRAM
• コンデンサに電荷をチャージ(蓄える)ことにより、1ビットデータを記憶
☺ 記憶するためのハードウェア量が少なくてすむ
高集積が可能となり、大容量メモリが作れる
リフレッシュが必要
キャパシタから漏れる電荷を再チャージ
– 全動作時間の1〜2%
DRAMの1ビットメモリセル
6/27/2003
<計算機工学>
11
DRAMの構造(つづき)
• 大容量メモリではアドレス指定のためのビット数が増加
• チップの入出力ピン数の制限
DRAMではアドレス指定を行と列に分けて指定
11ビットずつ2回
に分けて与える
DRAMインタフェース
DRAM内部構造
6/27/2003
<計算機工学>
12
6
ランダムアクセスメモリ
• SRAM
– 4個のトランジスタを用いてフリッププ
ロップを構成し、1ビットを記憶
• 安定記憶
• 1ビットあたりのハードウェア量が
大きい
高速・小容量・高価格
キャッシュメモリ
• DRAM
– 1つのトランジスタで構成されるキャパ
シタ(静電容量素子)の電荷量によって
1ビットを記憶
• 1ビットのハードウェアが小さいの
で、大容量のメモリを作れる
• 漏れ電流による格納内容の消失を
防ぐために、リフレッシュが必要
6/27/2003
<計算機工学>
低速・大容量・低価格
主記憶
13
ROM
•
読み出し専用のメモリ(ROM:Read Only Memory)
– 電源を切ってもメモリの内容が消えない
• 辞書データ、フォントデータなどの内容の変更が必要のないデータの保持に
最適。また、真理値表を記憶させ、組み合わせ回路の替わりに用いることも
できる
•
ROM素子
– マスクROM
製品化後は書き換え不能メモリ
– PROM、EEPROM、フラッシュメモリ
電気的に内容を消去し,書き込み可能.
ただし,構造上、半導体RAMのように、高速に
読み書きはできない
ソフトウェアのバージョンアップが必要なPC,カーナビ、
携帯電話の制御プログラム。
以前は半導体メモリを意味したが,最近は書き換えできない媒体に記憶されたも
のを指す
• 例 CD-ROM
6/27/2003
<計算機工学>
14
7
ROMの応用例
6/27/2003
<計算機工学>
15
磁気ディスク・磁気テープ装置
• 磁気ディスク装置(ハードディス
ク装置)
– 円盤の表面に蒸着した磁性体
薄膜上にデータを記憶
• ランダムアクセスが可能
– 半導体メモリより
• 大容量
• 低価格
• 低速
6/27/2003
<計算機工学>
16
8
ハードディスクの容量の推移
・大容量化
・小型化
・高信頼性
小型化が進み、1インチで数〜10数ギガバイトのディスクも現在は商品化
6/27/2003
<計算機工学>
17
磁気テープ装置
• 磁気テープ装置
– 磁気テープ上にデータを記
憶
• シーケンシャル(逐次)
アクセス
– 磁気ディスク装置より
• 大容量
• 低価格
• 低速
• データ&プログラムの
長期保存に適切
8mmテープ装置
6/27/2003
<計算機工学>
8mmテープカートリッジ
マガジン
18
9
コンピュータシステムの構成
コンピュータシステム
プロセッサ
入力装置
制御装置
記憶装置
出力装置
演算装置
<計算機工学>
6/27/2003
19
Mooreの法則
The
TheNumber
Numberof
ofTransistors
TransistorsPer
PerChip
Chip
Doubles
DoublesEvery
Every18
18Months!
Months!
Pentium 4
2.4GHz
2014年
2014年
•64B
•64BTr
Tr
•4.3GHz
•4.3GHz
750KHz
1+ GHz
Source: Intel
6/27/2003
<計算機工学>
20
10
メモリとプロセッサの処理能力の比較
プロセッサの性能は
60%/yearで向上
メモリのデータ転送能力は
5%/yearしか向上していない
6/27/2003
<計算機工学>
21
メモリ参照の局所性
• 空間的局所性
– あるデータがアクセスされたとき,その近
傍のデータもアクセスされる可能性が高
い
• 時間的局所性
– あるデータがアクセスされたときに、同じ
データが近いうちにアクセスされる可能
性が高い
90% of
execution
80%
計算に必要なデータとそれに隣接するデータを
計算に必要なデータとそれに隣接するデータを
一括してより高速なメモリ階層に置くようにする
一括してより高速なメモリ階層に置くようにする
・キャッシュメモリシステム
・キャッシュメモリシステム
・仮想記憶システム
・仮想記憶システム
6/27/2003
<計算機工学>
22
11
参照の局所性を利用した大容量高速メモリシステムの実現
• 仮想記憶装置
– メモリ(主記憶)に入りきれないプログラムとデータを、ディスク(補助記
憶装置)に置き、必要に応じてその一部を主記憶に移動させる
• 大規模プログラムでも、主記憶上で実行することができる
• キャッシュメモリ
– プロセッサ内部に、小容量ながら高速のSRAM記憶装置を用意し、そこ
に実行プログラム&データを一時的に格納し、プロセッサの動作速度に
適合した速度でのデータ転送を可能とする
6/27/2003
<計算機工学>
23
計算機システムのメモリ階層構造
キャッシュメモリ
システム
(高速性)
6/27/2003
<計算機工学>
仮想記憶システム
(大容量性)
24
12
メモリ階層を構成するためのキーポイント
• どのように下の階層(容量:大)のメモリ要素を上の階層(容量:小)に
割当てるか
– 上位の階層のメモリ容量の効率的利用
– 処理速が速い
• 衝突が起きたときどの要素を置換えるか
– なるべく使用する確率の高い要素を上位の要素として保持したい
– 処理が速い
6/27/2003
<計算機工学>
25
ダイレクトマップキャッシュ
• メモリアドレスの下位ビットを
利用してキャッシュでの格納
先を決定
000
001
010
011
100
101
110
111
Cache
☺ 行き先を簡単に決められる
高速
キャッシュの利用効率が悪
い
ヒット率の低下
ヒット率:キャッシュに
データを見つけられる
確率
6/27/2003
00001
00101
<計算機工学>
01001
01101
10001
10101
11001
11101
Memory
26
13
ダイレクトマップキャッシュの実現例
Address (showing bit positions)
• アドレスの特定部分を利用して、
キャッシュの場所を指定する:
インデックス
31 30
13 12 11
210
20
10
Byte
offset
Hit
Index
Index Valid Tag
• さらに、格納要素が現在アクセ
スしようとしている要素である
かを判定するためにアドレスの
別の部分を利用:タグ
Data
0
1
2
1021
1022
– 複数のメモリ要素が同一の
キャッシュ要素として格納され
るため
1023
20
32
<計算機工学>
6/27/2003
Data
Tag
27
空間的局所性を利用する
• キャッシュの1要素(ブロック)に連続する複数のメモリ要素を格納
する
Address (showing bit positions)
31
16 15
16
Hit
4 32 1 0
12
2 Byte
offset
Tag
Data
Index
V
Block offset
16 bits
128 bits
Tag
Data
4K
entries
16
32
32
32
32
Mux
32
6/27/2003
<計算機工学>
28
14
キャッシュの振る舞い
リードヒット(Read-Hit)
•
ライトヒット(Write-Hit)
•
– ライトスルー方式(write-through):
キャッシュとメモリ両方に書きこむ
– ライトバック方式(write-back):そ
のときはキャッシュにだけ書き込
み、当該要素がキャッシュから追
い出されたときに、メモリに修正内
容を反映させる
– キャッシュにデータが存在するの
で、キャッシュからデータを読み込
む
リードミス(Read-Miss)
•
– キャッシュにデータが存在しない
ので、
• プロセッサを停止し、
• メモリから当該要素をキャッ
シュに読み込み、
• プロセッサにデータを送り、
処理を再開
ライトミス(Write-Miss)
•
– プロセッサを停止し、
– 当該要素をキャッシュに読み込ん
だ後、
– ライトヒットと同様な処理を行う
<計算機工学>
6/27/2003
29
性能
ブロックサイズを大きくすることによ
り、ヒット率は向上する
– ただし、ブロックを大きくしすぎ
るとキャッシュをミスしたときの
キャッシュへのデータ読み込み
に時間がかかる
40%
35%
30%
Miss rate
•
25%
20%
15%
10%
5%
0%
•
空間的局所性は命令用キャッシュ
で効果が大きい
4
16
256
64
Block size (bytes)
1 KB
8 KB
16 KB
64 KB
256 KB
Program
gcc
spice
6/27/2003
Block size in
words
1
4
1
4
Instruction
miss rate
6.1%
2.0%
1.2%
0.3%
Data miss
rate
2.1%
1.7%
1.3%
0.6%
<計算機工学>
Effective combined
miss rate
5.4%
1.9%
1.2%
0.4%
30
15
高性能のメモリシステムを設計するためには。。。
プロセッサの処理時間=
(キャッシュにデータが存在した場合の実行時間 +
キャッシュのミス率*キャッシュミスペナルティ)
• キャッシュミスペナルティ
– キャッシュがミスしたときに必要なキャッシュへのデータ読み込
み時間
性能向上させるためには
– キャッシュのヒット率を上げる
– キャッシュミスペナルティを小さくする
6/27/2003
<計算機工学>
31
連想度を高めてキャッシュのヒット率を向上させる
• ダイレクトマップの欠点は、
格納先が1つしかない
– 他が空いていても置き換
えを必要とする
One-way set associative
(direct mapped)
Block
Two-way set associative
1
2
連想度(associativity)
格納先としての候補数
Tag Data
0
Set
3
0
4
1
5
2
6
3
Tag Data Tag Data
7
Four-way set associative
Set
Tag Data Tag Data Tag Data Tag Data
0
1
Eight-way set associative (fully associative)
Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data
6/27/2003
<計算機工学>
32
16
4-way Set associative Cacheの実現例
連想度を上げると
Address
31 30
12 11 10 9 8
• キャッシュを有効
に使える
Index
0
1
2
– ヒット率の向上
V
Tag
Data
3210
8
22
V
Tag
Data
V
Tag
Data
V
Tag
Data
253
254
255
• ヒット・ミスの判定
に時間がかかる
22
32
– キャッシュ処理
時間の増加
どの階層にどの程度の連想度を用意す
るかなど、慎重な設計が必要
4-to-1 multiplexor
Hit
Data
<計算機工学>
6/27/2003
33
性能
• 連想度を上げ
るとミス率が低
下する
12%
9%
Miss rate
– 小容量の
キャッシュほ
どその効果
が大きい
15%
6%
3%
0%
One-way
Two-way
Four-way
Associativity
6/27/2003
<計算機工学>
Eight-way
1 KB
16 KB
2 KB
32 KB
4 KB
64 KB
8 KB
128 KB
34
17
キャッシュ置き換えルール
•
格納先がいっぱいのとき、どの要素を置換えるべきか
1. FIFO (First-In, First-Out)
• 先に入ったものから追い出す
2. ランダム
• ランダムに選ぶ
3. LRU (Least Recentry Used)
もっとも使われていない要素を追い出す
•
3が良い性能を示すことが実験により実証されている
<計算機工学>
6/27/2003
35
仮想記憶方式
• 主記憶が補助記憶装置(ディスク)のキャッシュとして動作
– 補助記憶上に主記憶容量を超えるメモリ空間を実現し、主記憶容量の
物理的制限を受けないプログラムの実行を可能とする
Virtual addresses
Physical addresses
Address translation
Disk addresses
6/27/2003
<計算機工学>
36
18
仮想記憶の特徴
• ディスクへの書き込みが非常に遅いためミスペナルティが大きいの
で、ヒット率を高めることが重要
– ページという比較的大きな単位で管理
• 通常1KB〜4KB
– フルアソシアティブ方式&LRUによる置換え管理
– ライトバック管理
• OSによる実現
Virtual address
31 30 29 28 27
15 14 13 12
11 10 9 8
Virtual page number
3210
Page offset
Translation
29 28 27
15 14 13 12
3210
11 10 9 8
Physical page number
Page offset
Physical address
<計算機工学>
6/27/2003
37
ページテーブル管理
Virtual page
number
Valid
Page table
Physical page or
disk address
Physical memory
1
1
1
1
0
1
1
0
1
Disk storage
1
0
1
6/27/2003
<計算機工学>
38
19
ページテーブル管理(続き)
Page table register
Virtual address
31 30 29 28 27
15 14 13 12 11 10 9 8
Virtual page number
20
Valid
3 2 1 0
Page offset
12
Physical page number
Page table
18
If 0 then page is not
present in memory
29 28 27
15 14 13 12 11 10 9 8
Physical page number
3 2 1 0
Page offset
Physical address
<計算機工学>
6/27/2003
39
TLB:ページ変換を高速化する
• TLB (Translation
Look-aside Buffer)
– ページテーブル情
報の一部をキャッ
シュ化
Virtual page
number
TLB
Valid
Tag
Physical page
address
1
1
Physical memory
1
1
0
1
Page table
Physical page
Valid or disk address
1
1
1
Disk storage
1
0
1
1
0
1
1
0
1
6/27/2003
<計算機工学>
40
20
アドレス変換とキャッシュ制御の関係
Virtual address
TLB access
TLB miss
exception
No
Yes
TLB hit?
Physical address
No
Yes
Write?
Try to read data
from cache
No
Write access
bit on?
Write protection
exception
Cache miss stall
No
Cache hit?
Yes
Yes
Write data into cache,
update the tag, and put
the data and the address
into the write buffer
Deliver data
to the CPU
6/27/2003
<計算機工学>
41
プロセッサでの実装例
Characteristic
Virtual address
Physical address
Page size
TLB organization
Characteristic
Cache organization
Cache size
Cache associativity
Replacement
Block size
Write policy
6/27/2003
Intel Pentium Pro
32 bits
32 bits
4 KB, 4 MB
A TLB for instructions and a TLB for data
Both four-way set associative
Pseudo-LRU replacement
Instruction TLB: 32 entries
Data TLB: 64 entries
TLB misses handled in hardware
Intel Pentium Pro
Split instruction and data caches
8 KB each for instructions/data
Four-way set associative
Approximated LRU replacement
32 bytes
Write-back
PowerPC 604
52 bits
32 bits
4 KB, selectable, and 256 MB
A TLB for instructions and a TLB for data
Both two-way set associative
LRU replacement
Instruction TLB: 128 entries
Data TLB: 128 entries
TLB misses handled in hardware
PowerPC 604
Split intruction and data caches
16 KB each for instructions/data
Four-way set associative
LRU replacement
32 bytes
Write-back or write-through
<計算機工学>
42
21