コンピュータ基礎 記憶階層とキャッシュ テキスト第10章

Slides:



Advertisements
Similar presentations
3章 主記憶装置(pp ) 4章 補助記憶装置(pp ). 記憶装置の分類 主記憶装置(メインメモリ) 単に「主記憶」とも. コンピュータの電源が入っている間に, 作業中の情報を蓄える. 実行中のプログラムの,プログラム本体 実行中のプログラムの使う情報(C言語では,変数の値)
Advertisements

DATE : 11. メモリ 五島 正裕 今日の内容 メモリ  SRAM  DRAM  Flash Memory.
ディジタル回路 11. メモリ 五島 正裕 ディジタル回路 今日の内容 メモリ  SRAM  DRAM  Flash Memory.
オペレーティングシステムJ/K 2004年10月18日(5時限目)
オペレーティングシステム (仮想記憶管理)
キャッシュの高速化手法と仮想記憶 天野英晴.
07. 値予測 五島 正裕.
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
CPU、記憶装置について 情報機器工学 2015年4月20日 Ⅳ限目.
07. 値予測 五島 正裕.
記憶の階層とキャッシュ 天野英晴.
情報システム基盤学基礎1 コンピュータアーキテクチャ編 第6回 記憶階層
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Ibaraki Univ. Dept of Electrical & Electronic Eng.
計算機システムⅡ キャッシュと仮想記憶 和田俊和.
ダイレクトマップキャッシュの構成 例: メモリアドレス=32ビット キャッシュ容量C=256Kbyte C=B×A×S ブロックサイズ(ラインサイズ)B=32byte セット数(ブロック数、ライン数)S=8K アソシアティビティA=1 (ダイレクトマップは1) メモリアドレス=32ビット タグ 14ビット.
第6回 仮想記憶とページング ページング ページ取り出し方式 ページ置き換え方式 中間テスト(40分)
オペレーティングシステム 第10回 仮想記憶管理(1)
入 出 力 管 理 オペレーティングシステム 6/26/09.
11. メモリ 五島 正裕.
10. メモリ 五島 正裕.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
~補助記憶装置~  主記憶装置に記憶されるデータは,パソコンの電源を切ると記憶内容が消えてしまう。また,容量にも限界があるので,補助記憶装置にデータを記憶させる。補助記憶装置はパソコンの電源を切っても記憶内容は消えない。補助記憶装置の内容は主記憶装置上で利用することができる。 電源OFF 電源OFF.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
情報塾( ) CPUとメモリがどんなふうに動くのだろう。 レジスタやI/O プログラムの実行、マシン語。
小テスト解説 1.以下の10進数、2進数、16進数を、10進数、2進数、16進数に変換せよ。但し、16進数は1-9の後はA, B, C, D, E, Fと続けて繰り上がる記数法とする。  146 (10進)= (2進)= 92 (16進)  221 (10進)=  (2進)= DD (16進)
オペレーティングシステム 第11回 仮想記憶管理(2)
メモリのあれこれ 神戸大学 大学院 理学研究科 島津 通.
3章 主記憶装置(pp ) 4章 補助記憶装置(pp )
キャッシュ 頻繁にアクセスされるデータを入れておく小規模高速なメモリ 当たる(ヒット)、はずれる(ミスヒット) マッピング(割り付け)
ストレージ・メモリ分野の技術マップ ストレージ・メモリデバイス 新規デバイス ● ● ● ● ● ● ● ● ● 凡例 項目 開発技術 分類
データベースとストレージ の最新動向 12.MAR.2015.
第6回 今日の目標 §2.1 コンピュータ コンピュータの五大機能を示せる プログラム内蔵型コンピュータの装置を示せる
情 報 技 術 基 礎 処理装置の構成と動作 D17kog706pr101 始.
記 憶 管 理(2) オペレーティングシステム 第10回.
『コンピュータ構成要素』 (C)Copyright, Toshiomi KOBAYASHI,
3章 主記憶装置(pp ) 4章 補助記憶装置(pp )
オペレーティングシステム 第12回 仮想記憶管理(3)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
人間とコンピュータの違い コンピュータ 人間
パソコンの歴史 ~1970年 1970年代 1980年代 1990年~ ▲1946 ENIAC(世界最初の計算機、1,900加算/秒, 18,000素子) ▲1947 UNIVACⅠ(最初の商用計算機) ▲1964 IBM System/360(5.1MHz, 1MB, 2億円) ▲1974 インテル8080(8.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
第6回 今日の目標 §2.1 コンピュータ コンピュータの五大機能を示せる プログラム内蔵型コンピュータの装置を示せる
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
明星大学 情報学科 2010年度後期     コンピュータ設計論  
オペレーティングシステム (仮想記憶管理)
メモリとHDD.
オペレーティングシステム (仮想記憶管理)
6. 順序回路の基礎 五島 正裕.
キャッシュの高速化手法と仮想記憶 作りながら学ぶコンピュータアーキテクチャ(改訂版)授業資料 テキスト152-157ページ対応 天野英晴.
第6回 メモリの種類と特徴 主記憶装置、ROM、RAM
作りながら学ぶコンピュータアーキテクチャ(改訂版)授業資料 テキスト ページ対応 天野英晴
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
ストレージの最新動向 ITソリューション塾・第20期 2015年11月10日.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータの仕組み 1E16M048 圓谷 英一 1E16M050 徳弘 徹也 1E16M051 戸張 将義 1E16M052 飛田 優輝
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
SiTCP-VME変換モジュールの開発 KEK 物構研:中性子 佐藤節夫.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
慶應義塾大学理工学部 天野英晴 共有メモリ型計算機  慶應義塾大学理工学部 天野英晴
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
コンピュータアーキテクチャ 第 9 回.
8. 順序回路の実現 五島 正裕.
コンピュータアーキテクチャ 第 9 回.
「コンピュータと情報システム」 02章 ハードウェア
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

コンピュータ基礎 記憶階層とキャッシュ テキスト第10章 天野英晴 hunga@am.ics.keio.ac.jp

記憶システム 膨大な容量を持ち、アクセス時間(読み出し、書き込み)が短いメモリが欲しい! しかし 容量の大きい(ビット単価が安い)メモリは遅い 高速なメモリは容量が小さい お金にモノを言わせて高速なメモリをたくさん揃えても大容量化の段階で遅くなってしまう そこでアクセスの局所性(Locality)を利用 時間的局所性(Temporal Locality) 一度アクセスされたアドレスは近いうちにまたアクセスされる 空間的局所性(Special Locality) 一度アクセスされたアドレスに近い場所がまたアクセスされる

記憶の階層 ソフトウェアから は透過 CPU (トランスペアレント) チップ内メモリ L1キャッシュ ~64KB 1-2clock 高速小容量の CPUの近くに置き よく使うデータを入れておく そこになければより遅い 大容量メモリに取りに行く チップ内メモリ L1キャッシュ ~64KB 1-2clock L2キャッシュ ~256KB 3-10clock L3キャッシュ SRAM 2M~4MB 10-20clock 主記憶 DRAM 4~16GB 50-100clock OSが管理 補助記憶 (2次記憶) μ-msecオーダー 数百GB

半導体メモリの分類 RAM (RWM): 揮発性メモリ ROM(Read Only Memory):不揮発性メモリ 電源を切ると内容が消滅 SRAM(Static RAM) DRAM(Dynamic RAM) ROM(Read Only Memory):不揮発性メモリ 電源を切っても内容が保持 Mask ROM 書き換え不能 PROM(Programmable ROM) プログラム可 One Time PROM 一回のみ書き込める Erasable PROM 消去、再書き込み可能 UV EPROM (紫外線消去型) EEPROM (電気的消去可能型) FLASH Memory

メモリの基本構造 記憶要素により 性質が定まる Memory Cell Address Sense Amp Data Selecter Data Selecter I/Oバッファは 3ステート I/O Buffer

SRAM (Static RAM) 非同期式SRAM 古典的なSRAM クロックを用いない 現在も低電力SRAMシリーズなどで用いられる 連続転送機能を強化したSSRAM (Synchronous SRAM)が登場、高速大容量転送に用いられる 8Mbit/Chip-64Mbit/Chip程度 TSOP (Thin Small Outline Package)やBGA(Ball Grid Array)を利用

SRAM型のメモリセル構造 Word Bit Bit 最も基本に忠実な6トランジスタ方式:安定なので よく用いられる

非同期SRAM I/O 幅 メモリは幅wbit, 深さ2 この例はw=16, n=8 1 深さ2 =256 1 8 深さ2 =256 (本当はもっとずっと多数のデータを 格納する) 制御端子は3本 CS:チップ全体を制御 OE:読み出し WE:書き込み いずれもアクティブL 2 Address 8bitならば … 255 CS OE WE 非同期SRAMのモデル

RAMの容量 アドレス 本数 容量 省略した言い方 8 256 10 1024 1K 12 4096 4K 16 65536 64K 18 262144 256K 20 1048576 1M 24 16777216 16M 28 26835456 256M 30 1073741824 1G 32 4204067296 4G 深さ×幅 右の表に幅を掛ければ全体の容量が出る 省略した言い方でも十分(端数を覚えている人は少ない)

DRAM(Dynamic RAM) 記憶はコンデンサ内の電荷によって行う リフレッシュ、プリチャージが必要 256Mbit/Chipの大容量 連続転送は高速 SDRAM(Synchronous DRAM)の普及 DDR-SDRAMの登場 DDR2 → DDR3

DDR-SDRAMカードの例 下は1GBでやや小さい。今は4GB-8GBのカードが良く使われる

DRAMの構造 Memory Cell Row Address Sense Amp Data Selecter Column Address Data Selecter Column Address I/O Buffer

古典的なDRAMの利用法 アドレス 行 列 RAS CAS データ 有効

DRAMの記憶部分 D W 記憶用コンデンサ 基準用コンデンサ

DRAMアクセスの特徴 破壊読出しなので、書き戻しが必要 微小電位を検出するセンスアンプが必要 基準コンデンサを充電するためのプリチャージ時間が必要 ほっておくと電荷が放電してしまうので、リフレッシュが必要 SRAMに比べて使い難い

SDR (Single Data Rate) SDRAM:同期式DRAM 100MHz-133MHzの高速クロックに同期した読み・書きを行う CS,RAS,CAS,WEなどの制御線の組み合わせでコマンドを構成 コマンドにより、同期式に読み、書き、リフレッシュ等を制御 バンクの切り替えにより連続読み・書きが高速に可能

SDR-SDRAMの 読み出しタイミング CLK Command ACT Read Address Row Column Data0

DDR (Double Data Rate) SDRAM:同期式DRAM SDR SDRAM同様の高速周波数(100MHz-133MHz)のクロックの両エッジで転送を行うことにより、倍のデータ転送レートを実現 差動クロックを利用 データストローブ信号によりタイミング調整 より豊富なコマンド

DDR-SDRAMの 読み出しタイミング CLK ~CLK Command ACT Read Address Row Column DQS Data0 Data1 Data2 Data3

DRAMのまとめ SRAMの4倍程度集積度が大 使い難いが、連続アクセスは高速 転送はますますパケット化する傾向にある SDR-SDRAM→ DDR-SDRAM→DDR2-SDRAM DDR2: 800Mbps (400MHz両エッヂ) 2Gbit /Chip DDR3: 1600Mbps (800MHz両エッヂ) 4Gbit /Chip パッケージ:FBGA(Fine pitch Ball Grid Array)の利用 SO-DIMM(Small outline Dual dual in-line memory module)の形で供給される: 8GByte/DIMM 現在PC用にはDDR3が標準となる プリフェッチ機能→ 連続転送可能 1.5V電源、電気的特性の改善 DDR-4が準備中 Hybrid Memory Cubeという3次元積層の新しい規格が登場 制御は複雑、高速なため取り扱いもたいへん → IP( Intellectual Property)の利用が進む

フラッシュメモリ EEPROM型の発展:小型化のために選択ゲートを用いず、ブロック単位で消去を行う. NOR型、NAND型、DINOR型、AND型等様々な構成法がある. オンチップ用:高速消去可能NOR型 1Gbit程度まで 単独読み出しが可能、消去が高速 ファイルストレージ用:大容量のNAND型 1Gbit- 128Gbit/チップ 連続読み出し、消去はミリ秒オーダー掛かる SDメモリカード・SDHCメモリカードなど、8GB-32GBが使われる 書き換え回数に制限がある みんなが最も身近に使うメモリ

ストレージシステム:ディスク装置 トラック:同心円状のアクセスの単位 1万-5万ある シリンダ:ヘッドの下にある すべてのトラックのこと 磁性体の塗布された円板に データを格納 可動式のヘッドを使って読み書き 不揮発性 セクタ:512B程度に分割したアクセスの単位 100-500 セクタ番号、誤り訂正符号付きのデータを含む

容量と動作速度 2.5インチー3.5インチ ヘッド数:2-4 容量: 100GB-1TB 平均ディスクアクセス時間=   平均シーク時間(ヘッドを動かす時間)+   平均回転待ち時間+転送時間→数msec インタフェース ATA(Advanced Technology Attachment) SCSI(Small Computer Systems Interface) ディスク内にマイクロプロセッサを装備し、アクセス時間を最適化 ディスクキャッシュの利用

演習1 CLK ~CLK Command ACT Read Address Row Column DQS Data0 Data1 Data2 Data3 100MHzで動作する時、データの幅が32ビットだとすると、転送容量は何Mbyte/secか?

記憶の階層 ソフトウェアから は透過 CPU (トランスペアレント) チップ内メモリ=SRAM L1キャッシュ ~64KB 1-2clock 高速小容量の CPUの近くに置き よく使うデータを入れておく そこになければより遅い 大容量メモリに取りに行く チップ内メモリ=SRAM L1キャッシュ ~64KB 1-2clock L2キャッシュ ~256KB 3-10clock SRAM L3キャッシュ SRAM 2M~4MB 10-20clock 主記憶 DRAM 4~16GB 50-100clock 補助記憶 (2次記憶) μ-msecオーダー 数百GB ディスク フラッシュROM OSが管理

キャッシュ 頻繁にアクセスされるデータを入れておく小規模高速なメモリ 当たる(ヒット)、はずれる(ミスヒット) マッピング(割り付け) CacheであってCashではないので注意 元々はコンピュータの主記憶に対するものだが、IT装置の色々なところに使われるようになった ディスクキャッシュ、ページキャッシュ..etc.. 当たる(ヒット)、はずれる(ミスヒット) ミスヒットしたら、下のメモリ階層から取ってきて入れ替える(リプレイス) マッピング(割り付け) 主記憶とキャッシュのアドレスを高速に対応付ける Direct map ⇔ Full associative cache 書き込みポリシー ライトスルー、ライトバック リプレイス(追い出し)ポリシー LRU (Least Recently Used)

アドレスマッピング(割り付け) ワード単位に割り付けるのは効率が悪い 順番に割り付けていって1周したら、元に戻る 一定の連続アドレスのブロック(ライン)を管理単位とする ブロックサイズは8byte-128byte程度 ここでは8word(16byte)を使う やや小さい 順番に割り付けていって1周したら、元に戻る キャッシュのブロック数(セット数)が2のn乗、ブロックサイズが2のm乗とすると、、、 残り n m タグ (キー) インデックス ブロック内アドレス

… Direct Map のアドレス 割り付け 主記憶:1024ワード ブロックサイズ:8ワード キャッシュ:64ワード =8ブロック 0000000000     … 0000000111 0000010000     … 0000010111 0000100000     … 0000100111 0000110000     … 0000110111 0001000000     … 0001000111 0001010000     … 0001010111 1111111000     … 1111111111 0000001000     … 0000001111 0000011000     … 0000011111 0000101000     … 0000101111 0000111000     … 0000111111 0001001000     … 0001001111 1111110000     … 1111110111 … Direct Map のアドレス 割り付け 主記憶:1024ワード ブロックサイズ:8ワード キャッシュ:64ワード        =8ブロック 000 001 010 011 100 101 110 111 Index Tag (Key) 0000101000     … 0000101111 ブロック内 アドレス

ダイレクトマップ方式 From CPU 0011010 0011 010 100 … … 010 010 Main Memory (1KB=128Lines) Yes:Hit = Data 0011 Cache (64B=8Lines) Cache Directory (Tag Memory) 8 entries X (4bit ) ディレクトリは小さくて済む

ダイレクトマップ方式 (Conflict Miss) From CPU 0000010 0000 010 100 … … 010 010 Main Memory No: Miss Hit = 0000 0011 Cache 010を共通するキャッシュラインは Conflict Missを起こす Cache Directory (Tag Memory)

… 2-way set associative のアドレス 割り付け 00 01 10 11 Index Tag (Key) キャッシュ内 0000000000     … 0000000111 0000010000     … 0000010111 0000100000     … 0000100111 0000110000     … 0000110111 0001000000     … 0001000111 0001010000     … 0001010111 1111111000     … 1111111111 0000001000     … 0000001111 0000011000     … 0000011111 0000101000     … 0000101111 0000111000     … 0000111111 0001001000     … 0001001111 1111110000     … 1111110111 … 2-way set associative のアドレス 割り付け 00 01 10 11 Index Tag (Key) 0000101000     … 0000101111 キャッシュ内 アドレス

2-wayセットアソシアティブマップ From CPU 0011010 00110 10 100 … … 10 Main Memory (1KB=128Lines) Yes: Hit = Data 00110 Cache (64W=8Block) 10 Set No = 00000 Cache Directory (Tag Memory) 4 entries X 5bit X 2 セット単位に割り付ける

2-wayセットアソシアティブマップ From CPU 0000010 0011010 00000 10 100 … … 10 Main Memory (1KB=128Lines) No = 00110 Cache (64B=8Lines)   10 Data Yes: Hit = 00000 Cache Directory (Tag Memory) 4 entries X 5bit X 2 競合ミス (Conflict Miss)が減る

4-wayセットアソシィアティブマップ From CPU 0000010 0011010 001101 100 … … 100 … … Main Memory (1KB=128Lines) 001101 = Data = = 000000 Cache (64W=8Blocks) Cache Directory (Tag Memory) 2 entries X 6bit X 4 =

8-wayセットアソシアティブ→ここではフルマップ From CPU 0000010 0011010 … … 0011010 100 Main Memory (1KB=128Lines) 0011010 = = = Data = = = = 0000001 Cache (64W=8Blocks) Cache Directory (Tag Memory) 7bit X 8 =

タグメモリの設計法 キャッシュ内に何ブロック入るかを計算する。 2のn乗である時 インデックスはnbitとなる メモリ内に何ブロック入るかを計算する。 2のh乗である時 タグはh-n=mbitとなる ダイレクトマップでは幅m,深さ2のn乗のタグメモリが必要 2-way set associativeは、インデックスが1bit減り深さが半分となり、タグが1bitを増える。しかしこれがダブルで必要 way数が倍になる度にインデックスが1bit減り、深さが半分になり、タグが1bit増え、タグ自体が倍になる。

Way数のトレードオフ 大きくすると、、、 ヒット率が改善 遅延時間が大きくなる(マルチプレクサの遅延) 8くらいまでが多い Direct Map→2way set associative 32人で1つの椅子を争う VS. 64人で2つの椅子を争う   偶然同じ時間に椅子を狙うライバルが居る場合は効果的 サイズを倍にするのと同じ程度の効果が見込まれる それ以上はどんどん効果が減る 4以上はあまり効果が上がらない 遅延時間が大きくなる(マルチプレクサの遅延) 8くらいまでが多い

演習2 64kワードの主記憶に対して8kワードのキャッシュを設ける ブロックサイズは16ワードとする ダイレクトマップ、2way set associative、4way set associativeキャッシュのタグメモリ構成をそれぞれ示せ