メモリに関する話題(1) - Cache Memory (1) - Cache

Slides:



Advertisements
Similar presentations
だい六か – クリスマスとお正月 ぶんぽう. て form review ► Group 1 Verbs ► Have two or more ひらがな in the verb stem AND ► The final sound of the verb stem is from the い row.
Advertisements

て -form - Making て -form from ます -form -. With て -form, You can say... ~てもいいですか? (= May I do…) ~てください。 (= Please do…) ~ています。 (= am/is/are doing…) Connecting.
第 5 章 2 次元モデル Chapter 5 2-dimensional model. Contents 1.2 次元モデル 2-dimensional model 2. 弱形式 Weak form 3.FEM 近似 FEM approximation 4. まとめ Summary.
Essay writing rules for Japanese!!. * First ・ There are two directions you can write. ・よこがき / 横書き (same as we write English) ・たてがき / 縦書き (from right to.
DATE : 11. メモリ 五島 正裕 今日の内容 メモリ  SRAM  DRAM  Flash Memory.
VE 01 え form What is え form? え? You can do that many things with え form?
スーパースカラ Super Scalar From CPI(Clock/Instruction)to IPC(Instruction/clock) スーパースカラ/Super Scalar 考え方 - 複数命令の同時実行構造 Basic idea: Simultaneous issues of several.
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
キャッシュの高速化手法と仮想記憶 天野英晴.
07. 値予測 五島 正裕.
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
07. 値予測 五島 正裕.
記憶の階層とキャッシュ 天野英晴.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第6回 仮想記憶とページング ページング ページ取り出し方式 ページ置き換え方式 中間テスト(40分)
10. メモリ 五島 正裕.
五段動詞の歌 ごだんどうしのうた.
英語勉強会.
第1回レポートの課題 6月15日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
Chapter 11 Queues 行列.
日本語... ジェパディー! This is a template for you to use in your classroom.
データベース工学 データベースとは データモデル 関係データベースとSQL 物理データベース編成とインデクス
キャッシュ 頻繁にアクセスされるデータを入れておく小規模高速なメモリ 当たる(ヒット)、はずれる(ミスヒット) マッピング(割り付け)
Solid State Transformer (SST)
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
INSERTを高速化したPostgreSQL
SP0 check.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
メモリに関する話題(2) - 仮想メモリ Memory (2) – Virtual Memory
Tohoku University Kyo Tsukada
十年生の 日本語 Year 10 Writing Portfolio
Reasonので + Consequence clause
Chapter 4 Quiz #2 Verbs Particles を、に、で
Who Is Ready to Survive the Next Big Earthquake?
Possible Damping Ring Timing
“You Should Go To Kyoto”
Nihongo Japanese 日本ご ‘Numbers ’ & ‘Hiragana Revision’
コンピュータ基礎 記憶階層とキャッシュ テキスト第10章
ストップウォッチの カード ストップウォッチの カード
Lazy Release Consistency
2018/11/19 The Recent Results of (Pseudo-)Scalar Mesons/Glueballs at BES2 XU Guofa J/ Group IHEP,Beijing 2018/11/19 《全国第七届高能物理年会》 《全国第七届高能物理年会》
キャッシュの高速化手法と仮想記憶 作りながら学ぶコンピュータアーキテクチャ(改訂版)授業資料 テキスト152-157ページ対応 天野英晴.
作りながら学ぶコンピュータアーキテクチャ(改訂版)授業資料 テキスト ページ対応 天野英晴
Cache Organization for Memory Speculation メモリ投機を支援するキャッシュの構成法
WLTC Mode Construction
全国粒子物理会 桂林 2019/1/14 Implications of the scalar meson structure from B SP decays within PQCD approach Yuelong Shen IHEP, CAS In collaboration with.
Traits 形質.
Advanced Computer Architecture
Term paper, Report (1st, first)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Where is Wumpus Propositional logic (cont…) Reasoning where is wumpus
メモリ投機を支援する CMPキャッシュコヒーレンスプロトコルの検討
22 物理パラメータに陽に依存する補償器を用いた低剛性二慣性系の速度制御実験 高山誠 指導教員 小林泰秀
2019/4/22 Warm-up ※Warm-up 1~3には、小学校外国語活動「アルファベットを探そう」(H26年度、神埼小学校におけるSTの授業実践)で、5年生が撮影した写真を使用しています(授業者より使用許諾済)。
Term paper, report (2nd, final)
第1回レポートの課題 6月24日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
Genetic Statistics Lectures (4) Evaluation of a region with SNPs
コンピュータアーキテクチャ 第 9 回.
Created by L. Whittingham
英語音声学(7) 音連結.
非等方格子上での クォーク作用の非摂動繰り込み
Mondriaan Memory Protection の調査
Cluster EG Face To Face meeting
Grammar Point 2: Describing the locations of objects
コンピュータアーキテクチャ 第 9 回.
Term paper, report (2nd, final)
Cluster EG Face To Face meeting 3rd
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Improving Strategic Play in Shogi by Using Move Sequence Trees
Presentation transcript:

メモリに関する話題(1) - Cache Memory (1) - Cache Memory-CPUボトルネック/Bottleneck メモリ階層性/Hierarchy of Memory メモリ構造/Memory Structure : SRAM/DRAM Cache(キャッシュ)メモリ Cacheの発明/Innovation of Cache Cache構造/ Cache Structure Mapping 方式/Methods Cache組み込みのキーポイント/Optimization of Cache Mapping parametersによる効率(ミス率) Efficiency (Miss rate) with Mapping methods/parameters 更新方式/書き込み制御 Replacement/Restoring cacheが有効でない場合(実行プログラム特性) Cases that the cache works inefficiently (Characteristics of programs) 福永 力; Chikara Fukunaga

フォンノイマンボトルネック(隘路) Von Neumann Bottleneck 「プログラム内蔵方式のコンピュータ(フォンノイマン型)」はプロセッサ のプログラム実行時のメモリ参照に弱点がある. Computer architecture with the “stored program method” needs frequent access of memory for program execution. 通常メモリのアクセススピードはプロセッサの計算スピードに較べて 遅い Memory access rates are lower than ones of Arithmetic-Logical processes メモリアクセススピードによってプログラムの実行性能が規定される The memory access rate becomes one of the important parameters for the overall performance of the processor . ⇒フォンノイマン型(Von Neumann) ボトルネック(Bottleneck) 福永 力; Chikara Fukunaga

メモリの階層性とCache hierarchy of the storage and Cache Register : FF circuits Cache : Bipolar, CMOS SRAM Main Storage : SRAM, DRAM Disk Cache : DRAM 早いメモリは消費電力 発熱量が高い. Memories with high access rate have high power dissipation and consequently high thermal emission. 福永 力; Chikara Fukunaga

SRAM構造 structure Static Read Access Memory Cell Structure (1 bit) 福永 力; Chikara Fukunaga

DRAM構造 Dynamic RAM structure 構造が簡単、記憶原理が簡単 Simple structure and storage method コンデンサの充電(1)・放電(0)による記憶 Charge-up (1) and empty (0) of a capacitors make the 1 bit information in the memory 自然放電に対してRefresh動作が必要 Refresh cycle is required to refrain from the natural discharge of capacitors 読み出しは充電されていた電荷の放出→ 破壊的読み出し→W線全体の再書き込み Readout makes the discharge of capacitors, which means a destructive readout, we need re-reading for a W line to keep info. 福永 力; Chikara Fukunaga

プログラムのもつ局所性 Locality of a program ある短い時間に限ってみるとメモリのある特定の領域の情報(命令+データ)のみで動作 A program is operated with the instructions and data stored in a limited region of the MS in small time interval 情報の再利用あるいは近辺の情報の参照による情報更新 Information is updated with the re-use of it and the reference of neighbourhood info. メモリ参照の局所性(locality of the memory reference) temporal locality(時間的) spatial locality(空間) 福永 力; Chikara Fukunaga

Cacheの登場 Introduction of Cache よく参照されるデータの特殊領域への待避(ボトルネックの解消) We needed a temporally small storage to keep a copy of frequently accessed parts in the Main Storage (MS) in order to eliminate the bottle-neck between CPU and MS. それは効率的に局所性を再現するもの でなくてはならない It must simulate the parts of MS efficiently. 時間にともなう内容変化に対応 The contents must be changed with time ⇒ ⇒ Cacheの登場 / Development of Cache Cacheの組み込み Installation of Cache between MS and the main processor 福永 力; Chikara Fukunaga

Cacheの内部構成 Cache - conceptual structure 抽象化されたCacheの構造 Abstracted structure of Cache コントロール部(アドレス デコーダとtag,コンパ レータ)とCacheメモリ部 Control block (the address decoder, tags, the comparator) and the Cache memory (SRAM) Main Storage (MS) のアドレス とtagの素早い参照が重要(Mapping) Efficient mapping between the actual address in the Main storage (MS) with tag is issue for cache design データの格納法にもさまざまな工夫 Pick up of hot blocks in MS and Storage of them in cache are also very important items for cache construction 福永 力; Chikara Fukunaga

いくつかの基本データ Several Basic Data for Cache Block size : 1024~4096Byte Hit cycle : 1 clock or more Miss Penalty : 8~32 clock Miss rate : 1%~20% Cache size : 1k~1M Byte Memory (MS) accessing: handled as 2 dim. Array of row and column for Physically Linear Array of Memory 福永 力; Chikara Fukunaga

ブロック(バースト)データ転送 Block (Burst) Data Transfer 一般のデータ読込みではアドレスラインをバスに出してしばらくしてデータがバスにメモリからロードされる. In general data is loaded on bus a little after the address in on the bus. ブロック転送では開始アドレスと転送バイトサイズを指定すれば最初のアドレスロード以降データは間髪をおかずバスにロードされる. If the start address and size of data are specified in a instruction, data is transferred to the target without any intervention 福永 力; Chikara Fukunaga

MSからCacheへのデータ選択法 Mapping method from MS to Cache Mechanism Characteristics セクター Sector きめ細やかのMSの領域(ブロック)の写像 The most sophisticated algorithm for mapping アドレス変換に1ステップ必要 Address conversion from tagging needs an another hardware step ダイレクトマップ Direct Mapping 比較的簡単なマッピング Simple mapping ブロックの構成によっては効率悪い Inefficiency will be observed フルアソシエーティブ Full Associative もっとも直感的なマッピング Simplest idea for mapping Tag→アドレス変換が複雑 The conversion between address and tag is complicated n-way セットアソシエーティブ n-way set associative ダイレクトマップとフルアソシエーティブ方法の折衷 Mixed idea of Direct Mapping & Full Associative 今一般的に使われている 福永 力; Chikara Fukunaga

セクタ方式 Sector Mapping Method Memory Segment:例 Example Row(10bit addr),Block(1024 Byte,16 Block/Row) Max. 16 blocks for 1 Row can be registered in cache at once Dataのvalidity bit (validity bit for data in a block) invalid bitであれば同じブロックのメインストレージからの再読み込み If valid bit is off (invalid), reread the columns from the Main Storage Tag = 10bit address(Row addr.) & 16bit tagged column pattern/block Tag match & valid bit → any block in the Row can be used (cache hit) If Tag match & invalid bit → blocks must be retransferred If Tag mismatch, exchange an old Row with new (now required) 福永 力; Chikara Fukunaga

ダイレクトマップ方式 Direct Map method 各Rowにつき、ただ1つのblockが選ばれcache登録されうる Only a block in a Row can be registered in cache. Tagは単純にRowの順番.例えばBlockのcolumn番号をtagに記録する. Tag number is simply the number of the row (Tag 0 for Row 0, Tag 1 for Row 1, etc.) Tag contains the column number in the row in which the cached block is assigned. Tagとメインアドレスの比較は10bit以下のcolumn番号のみでよいので制御は容易 Matching algorithm of tag and the address in the MS is therefore simple 1 rowにつき1個のブロックしかcacheできない.特定のrowに所属するブロックへのアクセスが集中すると効率は悪くなる. Since only a block can be cached for one row, the efficiency will be worsen if accesses are concentrated into several blocks in the same row 福永 力; Chikara Fukunaga

フルアソシエーティブ方式 Full Associative mapping MSとcache間の対応はBlockで行うがその他の対応はなにもしない. A block is used still as a unit for mapping between cache and MS, but nothing others. 任意のブロックがcacheの任意の位置に記録される. No sequential ordering. First block comes in the first free block in Cache メインストレージの実アドレスとtagはフルにブロック番号で比較させ,一致をと るので制御機構が複雑 Matching of the tag and the address in MS is complicated since it needs full bit comparison. 使用頻度の高い複数ブロックの無制限有効利用 Effective use of highly frequently referred blocks without restriction 福永 力; Chikara Fukunaga

(n-way) セットアソシエーティブ方式 (n-way) Set Associative mapping ダイレクトマップとフーリーアソシエーティブ方式の折衷案 Combined method of the direct and fully associative mapping cache内で記録block数が1 rowで1個 だったものを複数個に拡大.この複数 のblock数をwayと呼ぶ. Extension of number of blocks in a row from one to n (unit is called way) of the direct mapping method 以下の例は2-way,6 bit row addr.、 8 bit column addr. The example here is 2 way 6 bit row address,8 bit column address 福永 力; Chikara Fukunaga

16-way セットアソシエーティブ構成例 16-way Set Associative Mapping Cache-Example 福永 力; Chikara Fukunaga

Cache構成のキーポイント(1) Optimization of Cache (1) Cacheメモリの容量 Capacity of Cache Memory ブロックサイズ Size of a block マッピング方式の選択 Selection of Mapping methods セットアソシエーティブwayの数とrow数(set数) Number of ways and Rows for the Set Associative Mapping 福永 力; Chikara Fukunaga

Cache構成のキーポイント(2) Optimization of Cache (2) Replacement方式 Cache memory replacement method Restore動作- 更新アルゴリズム Restoring of Cache data – rewrite algorithm Compulsory(初動遅延; Initial delay; cache initial state) Conflict:ブロック集中アクセスによるミス (ダイレクトマップ,セットアソシエーティブ) Conflict: Miss with concentrated access of particular blocks (Direct, Set-associative Mapping) 実行プログラムの特性(データアクセスの効率) Data access characteristics of programs run on the machine 福永 力; Chikara Fukunaga

Cacheパラメータ変更によるMiss rate実測値例 Measurement of Miss rate with Cache parameters From Hennessy & Patterson, CA A Quantum Approach 4th ed. Cache size 8,4,2, 1 Cache capacity → increase, capacity miss,conflict miss → decrease (Fig. C9) Number of ways → increase, conflict miss rate → decrease (Fig. C9) Block size → decrease, inefficient (Fig. C10) Block size → increase, miss rate → increase (Fig. C10) 1 ways miss rate ~ cache size 50% of 2 ways (Fig. C9) Cache size double → miss rate sqrt(2) (Fig. C9) 福永 力; Chikara Fukunaga

リプレースメント(旧データの追出し)方式 Replacement (Kick out) of old unused contents ミスヒットによるcache更新時のデータ追出しアルゴリズム Algorithm for the kick-out of old data with miss-hit Invalid bitタグのブロックの追放 Invalid tag bit to indicate the useless block LRU(Least Recently Used)ブロックの認定・追放 Recognition of Least Recently Used Block, and kick it out 履歴用(タイムスタンプ)のtag bitを必要とする need a time stamp information for each block FIFO(First-In First-Out) 最古参ブロックから追い出し The block entered first must be purged out first LRUより制御機構が簡単 (Simpler control logic than LRU, just sequence) ブロックのランダム抽出(Random Selection) 時間にかかわらずどのブロックのアクセス頻度は同じであろうという考え方 The frequency of access to any blocks will be more-or-less constant regardless of the time Cache Access Counter for each block cacheアクセスごと,あるいはクロックごとにカウンターを増やす.カウンター値と同じラインのブロックを追放,そしてカウンターリセット Count up with clock or access, and if it exceeds some limit, it will be candidate to be purged 福永 力; Chikara Fukunaga

データCache 書き込み制御 Restoring Control キャッシュ一貫性制御ともいう It is also called “Cache Coherence Control”. Data cacheのみが対象 The operation is applied to the Data cache. データ更新にともなうメインストレージへの再書き込み ストアスルーあるいはライトスルー (Store-Through or Write-Through) ストアイン,ライトバックあるいはコピーバック (Store-In,Write-Back or Copy-Back) 福永 力; Chikara Fukunaga

ストア(ライト)スルー Store(Write)-Through 書き込みデータのブロックがcacheでヒット(Write Cache hit)した場合,cacheデータとMSともに更新(Write) If the block to be modified by write is found in Cache (Write Cache hit), Both contents in cache and MS are modified. Write Cache missした場合,MSの対応ブロックのデータ更新するとともに If Write Cache miss, the corresponding block in the MS is updated but also cacheに当該ブロックを読込みMSとcacheをともに更新(Write Allocate),あるいは The block is also refilled into the cache, and it is updated, or cacheは何もせずMSのみ変更 No touch with the cache (only the MS will be affected). ライトバッファ(Write Buffer) メインストレージへのアクセス中CPU処理がストールされてしまう.この期間を最小限にするために中間バッファ(ライトバッファ)を持つ必要がある. We need a special buffer called “Write Buffer” in order to keep minimize the access time of the MS to avoid stalls in the CPU pipeline. 福永 力; Chikara Fukunaga

ストアインあるいはライト(コピー)バック (Store In or Write(Copy)-Back) Write Cache hitした場合,cacheのみ変更(Dirty) If write Cache hit, only Cache is modified (Dirty) Write Cache missした場合,必ずMSからcacheへ当該ブロックを読込み,cacheのみを変更しcacheとMSとで当該ブロックのある値が異なるという旨をマークしておく. (clean bitをOFF → dirty) If Write Cache miss, always the corresponding block is load into the Cache from the MS and is modified only in the cache. The block is marked up with “dirty” from “clean”. このブロックがcacheから追出されるときにメインストレージを更新する(ライトバック). (clean bitをON → clean) If this block is once kicked out, the MS is updated, and the block is backed to “clean”. Readではcacheのhit/missにかかわらずclean The block is kept “clean” for Read case regardless of the hit/miss. 福永 力; Chikara Fukunaga

ストアイン(ライトバック)キャッシュの状態遷移 State Transition Diagram for Store In (Write back) Cache mechanism 福永 力; Chikara Fukunaga

cacheの多重(マルチ)レベル化 Multi-Level Cache L1,L2 Victim(n-wayセットアソシエーティブ法cacheの追い出されたデータ保持用) Victim buffer for temporal storage buffer for blocks kicked out in the n-way set associative mapping. 福永 力; Chikara Fukunaga

cacheが有効でない場合(1) Some cases that the cache is not effective (1) C=C + A[i] * B[i] MFLOPS 配列長 Array size Performance (rate) 長い(要素の多い)ベクトル計算 Calculation of Long one dimensional arrays データ量がcacheサイズを越えるとパフォーマンスの低下が見える If the size exceeds the cache block size, the degradation of the performance サイズのみでなくcacheの構成をも考慮したプログラミングの配慮が必要 If the cache is structured in multi-level, the programming must be optimized with this structure. QCD (Physics) 福永 力; Chikara Fukunaga

cacheが有効でない場合(2) Some cases that the cache is not effective (2) 行列計算の繰り返し順序 Loop order for Matrix multiplication of Zij=ΣXik・Ykj CとFortranでは異なることも. Optimization of C and Fortran is different. 福永 力; Chikara Fukunaga