計算機システムⅡ キャッシュと仮想記憶 和田俊和.

Slides:



Advertisements
Similar presentations
計算機システムⅡ 命令レベル並列処理とアウトオブオーダ処理
Advertisements

オペレーティングシステム (仮想記憶管理)
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
情報システム基盤学基礎1 コンピュータアーキテクチャ編 第6回 記憶階層
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Chapter11-4(前半) 加藤健.
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)
記 憶 管 理(1) オペレーティングシステム 第9回.
計算機工学III オペレーティングシステム #9 主記憶管理:ページング 2006/06/09 津邑 公暁
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
計算機システムⅡ 主記憶装置とALU,レジスタの制御
キャッシュ 頻繁にアクセスされるデータを入れておく小規模高速なメモリ 当たる(ヒット)、はずれる(ミスヒット) マッピング(割り付け)
記 憶 管 理(2) オペレーティングシステム 第10回.
計算機システムⅡ 命令セットアーキテクチャ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
プログラムはなぜ動くのか.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
計算機システムⅡ 入出力と周辺装置 和田俊和.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
第7回 2006/6/12.
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
メモリ管理 4.3, 4.4 章 さだ.
第8回入出力制御 デバイスコントローラ ポーリングと割込み 入出力の方式 PIO DMA 入出力のためのソフトウェア技法.
明星大学 情報学科 2010年度後期     コンピュータ設計論  
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
オペレーティングシステム (仮想記憶管理)
メモリとHDD.
オペレーティングシステム (仮想記憶管理)
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
高速剰余算アルゴリズムとそのハードウェア実装についての研究
第6回 メモリの種類と特徴 主記憶装置、ROM、RAM
作りながら学ぶコンピュータアーキテクチャ(改訂版)授業資料 テキスト ページ対応 天野英晴
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
コンピュータアーキテクチャ 第 5 回.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 5 回.
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

計算機システムⅡ キャッシュと仮想記憶 和田俊和

講義計画 コンピュータの歴史1 コンピュータの歴史2 コンピュータの歴史3 論理回路と記憶,計算:レジスタとALU コンピュータの歴史2  コンピュータの歴史3  論理回路と記憶,計算:レジスタとALU 主記憶装置とALU,レジスタの制御 命令セットアーキテクチャ 演習問題 パイプライン処理 メモリ階層:キャッシュと仮想記憶(←本日) 命令レベル並列処理 命令実行順序の変更 入出力と周辺装置:DMA,割り込み処理 現代的な計算機アーキテクチャの解説 総括と試験 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

本日の講義の範囲

5.1 記憶階層(キャッシュと仮想記憶を包含する,総論) 5.1 記憶階層(キャッシュと仮想記憶を包含する,総論)

5.1.1 命令パイプラインとメモリ パイプラインを動かすためには,メモリの読み書きを1クロックで済ませる必要がある. 5.1.1 命令パイプラインとメモリ パイプラインを動かすためには,メモリの読み書きを1クロックで済ませる必要がある. バス駆動を伴うメモリアクセスは遅い. 遅いメモリのコピーを高速なメモリにとって使う

5.1.2記憶階層と局所性 空間的局所性 時間的局所性 あるメモリ語が参照された際に,その周辺の語も参照され易い. あるメモリ語が参照された際に,その語が時間をおかずに再び参照され易い. 高速小容量メモリには,よく使われる命令やデータが格納される. 低速大容量メモリには,プログラムカウンタが指すことの出来る全ての命令と,ロード,ストアできる全ての命令が格納されている. 人間も同じ.長期記憶と短期記憶がある.

5.1.3 透過性 高速メモリへのデータのコピーや,メモリへの書き戻しを,プログラマに意識させない. CPUと主記憶の関係だけしか見えないようにする. 仮想記憶 (プログラム間で干渉しない,大容量化) HDD (補助記憶装置) キャッシュ(高速化) 主記憶 (物理メモリ) CPU

5.2 キャッシュ

5.2.1 キャッシュとは何か キャッシュは命令パイプラインの動作速度でデータの読み書きが出来なければならない. キャッシュには何も入っていない(a) 最初のデータが参照されるとキャッシュにそのデータと周辺の数語のメモリも入れられる.(b) 引き続きデータの参照が起きるとキャッシュにデータが入れられる.(c) メモリ参照時にはまずキャッシュが参照され,ここにデータがあれば,実際のメモリアクセスは生じない.(d) キャッシュがいっぱいになると不要なデータは捨てられ,新しいデータがキャッシュに入れられる.(e) キャッシュライン(ブロック)

現金ではありません.

5.2.2 ライトスルーとライトバック Write through, Write back CPUがキャッシュに対する書き込みを行った場合,元のメモリにもこの変更を書き戻す必要が生じる.このタイミングの違い. キャッシュから追い出されるときに書き戻す キャッシュライン(ブロック) 即座に書き戻す

ライトバック,ライトスルーの比較 項目 Write through Write back メモリアクセス ストア命令の実行時 キャッシュライン追い出しの時 Write命令の実行速度 Write bufferの速度 キャッシュの速度 キャッシュライン書き戻し 不要 キャッシュライン書き出しの時 実装 単純 複雑 ライトスルーの場合には速度が遅くなりすぎるので,キャッシュと,主記憶の間にwrite bufferという比較的高速なメモリを設けるのが普通である.

5.2.3 ダイレクトマップ型キャッシュの機構と動作 読み出し:  タグ→求めるキャッシュラインかどうかの判定 インデックス→キャッシュライン上の位置 インデックスから,キャッシュラインとタグを読み出す. メモリアドレスのタグと,タグを比較し,一致していればヒット,そうでなければミス ヒットしていればキャッシュライン内オフセットを参照してキャッシュからデータを読み出す. ミスしていた場合は,主記憶に書き戻し,メモリからここにデータを読み出す.そして,キャッシュからデータを読み出す.

ダイレクトマップ型キャッシュの機構と動作:書き込み     ダイレクトマップ型キャッシュの機構と動作:書き込み タグ→求めるキャッシュラインかどうかの判定 インデックス→インデックス%ライン数=キャッシュラインの番号 インデックスから,タグを読み出す. 書き込みアドレスのタグと,1のタグを比較し,ヒットかミスかを判定 ヒットしていればキャッシュライン内オフセットを参照してキャッシュにデータを書き込む. ミスしていた場合は,主記憶に書き戻し,ここに所望のデータを読み出してくる.その上で,オフセットを参照してキャッシュにデータを書き込む. デ

用語 マルチプレクサ:多数の信号を一本のラインに乗せて送出するための機構 デマルチプレクサ:一本のラインの信号を複数のラインにつなぎ替えて送出する機構.

5.2.4 キャッシュミス 初期参照ミス: (compulsory miss, cold start miss) 最初にキャッシュラインにアクセスすることで生じるミス 競合性ミス: (conflict miss, collision miss) 同じインデックスを持つ異なるキャッシュラインにアクセスすることで生じるミス. 容量性ミス: (capacity miss) キャッシュに入れたいラインの数がキャッシュの容量を上回ることで起こるミス. 3つのC

競合性ミスの実例: Dec Alpha CPU 21064 幅の広い銅配線でクロックを上げるだけという超高速CPU. キャッシュはダイレクトマッピング形のキャッシュのみ. 小技は殆ど使わない,王道の高速化路線. しかし,下記の背景差分計算をすると,何故か極めて速度が落ちた. ある単純なことをするだけで,全く同じアルゴリズムであるのに,速度が6倍も向上した. ー =

5.2.5 フルアソシアティブ形キャッシュとセットアソシアティブ形キャッシュ ダイレクトマッピングは,高速であるが,競合性のミスが多発する可能性がある. インデックスを使わずタグだけでキャッシュラインを求める. 回路が大規模になり,遅延も発生しやすいため,小規模のキャッシュでしか用いられない. ・は,複数個存在するという意味

セットアソシアティブ形キャッシュ インデックスの剰余によって決まるキャッシュラインを複数持つことで,キャッシュ競合を回避する. 一つのインデックスに対して,A本のキャッシュラインが保持される場合,Aを「連想度」と呼び,方式を「Aウエイのセットアソシアティブ形キャッシュ」と呼ぶ.

セットアソシアティブ形キャッシュ ライン数L,セット数S,連想度をAとすると        L=S×A フルアソシアティブは,S=1とした場合.

質問はありませんか? ダイレクトマップ形キャッシュメモリの連想度Aはいくら? 何故,有効ビットがあるのでしょう? セットとは何でしょうか?

5.2.6 キャッシュの入ったCPU 命令キャッシュとデータキャッシュは通常分けておく.(パイプライン動作で競合が起きるのを避けるため) ミスの際は,パイプライン全体を止め,ラインをキャッシュからメモリに書き戻し,メモリから必要なラインをキャッシュに読み込んだ後,パイプラインの実行を行う.

キャッシュの入ったCPU

5.2.7 キャッシュの性能 プログラムの実行時間を,CPUが動いている時間と,メモリがストールしている時間に分ける. プログラムの命令数  ,ロードストア命令の割合  ,メモリストールは全てキャッシュミスによって起こると考え,ミスの割合  ,1回のミス当たりのストール時間   ,クロックを  [Hz]とすると.  が成り立つ.    は主記憶の速度で決まる.

例題5.1 のとき,下記のミス率,ミスペナルティで速度はどの程度落ちるか? 本来の速度 実行時間相対値

例題5.1

5.3 仮想記憶

5.3.1 仮想記憶とは何か 低速大容量の補助記憶装置(二次記憶)を利用して,主記憶の容量を大きく見せるための透過的な仕組み. 効果 5.B 仮想記憶の原理 仮想アドレス(virtual address) ⇒ 物理アドレス(physical address) [変換] 二次記憶のデータ ⇔ 主記憶のデータ [コピー,スワップ] 効果 大きなメモリを要するプログラムが書けるようになる. 複数のプログラムが1つの物理記憶を安全に分け合って使えるようになる.

5.3.2 仮想記憶の構成 アドレス変換と,ページスワップ機構. ページスワップは時間がかかるので,ページのミスが発生しにくいフルアソシアティブ方式を採用. ページテーブルによるアドレス変換 ページテーブルは,各プログラム(プロセス)毎に主記憶上の連続した領域にとられるが,ユーザプログラムでは,書き換えられない. 有効=1ならメモリ上 有効=0なら二次記憶

5.3.3 ページフォールト 有効ビット=0のページは主記憶上ではなく,二次記憶の上に存在する.ここのページに対してアクセスが起きることを「ページフォールト」と呼ぶ. 【ページフォールト時の処理手順】 CPUの処理を中断 もし,主記憶に空き領域がなければ,主記憶上のページを2次記憶に書き出す.ページテーブルも更新. 二次記憶上のページデータを主記憶に転送する. ページテーブルの物理アドレスを書き換え,有効ビットを1にする. CPUの処理を再開する.

5.3.4 TLB ページテーブル専用のキャッシュ(translation lookaside buffer)フルアソシアティブのキャッシュ メモリアクセスが起きると仮想ページアドレスをタグとしてTLBの参照が起きる. TLBがヒットすると,物理ページアドレスが取り出され,ページ内オフセットと組み合わせて物理アドレスが生成される. TLBがミスすると,ページテーブルが参照され,その結果がTLBの空き部分に書き込まれる. 空いていない場合は空きが作られる.

5.4 メモリアクセス機構

5.4.1 キャッシュと仮想記憶 キャッシュと仮想記憶の組み合わせ方 ページテーブルの参照は省略して記述してある. 速度的には遅いが,キャッシュサイズに制限がなく,エイリアスの問題も発生しない. 速度的には速く,エイリアスの問題も発生しないが,キャッシュのサイズがページ内オフセットに制限される. 速度的には速く,キャッシュのサイズにも制限はないが,二つの仮想アドレスが一つの物理アドレスを指してしまう現象(エイリアス)が発生する. キャッシュサイズを特に大きくしたいなどの要求名なければ,へいれつ物理アドレスキャッシュが良いとされる.

5.4.2 メモリアクセス機構 並列物理アドレスキャッシュ 仮想ページアドレスを対象としたTLBはフルアソシアティブ ページ内オフセットについては,2ウェイセットアソシアティブキャッシュ

本日の講義の範囲