メモリシステム 小林広明 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
© Copyright 2024 Paperzz