コンピュータハードウェア(6)

工学部講義
コンピュータハードウェア(6)
坂井
はじめに
本講義の目的
–
コンピュータアーキテクチャの基本を学ぶ
時間・場所
修一
–
東京大学大学院 情報理工学系研究科 電子情報学専攻
東京大学 工学部 電子情報工学科/電気工学科
火曜日 10:15 - 11:45、工3−31
ホームページ(ダウンロード可能)
–
url: http://www.mtl.t.u-tokyo.ac.jp/ sakai/hard/
教科書
–
坂井修一『コンピュータアーキテクチャ』(コロナ社、電子情報レクチャーシリーズC-9)
教科書通りやります
• はじめに
参考書
• キャッシュ
–
–
–
D. Patterson and J. Hennessy, Computer Organization & Design、2nd Ed.(邦訳『コン
ピュータの構成と設計』( 第2版)上下 (日系BP) )
馬場敬信『コンピュータアーキテクチャ』(改訂2版)、オーム社
富田眞治『コンピュータアーキテクチャⅠ』、丸善
予備知識:
–
論理回路
坂井修一『論理回路入門』、培風館
成績
–
コンピュータハードウェア
東大・坂井
講義の概要と予定(1/2)
1.コンピュータアーキテクチャ入門
ディジタルな表現、負の数、実数、加算器、ALU,フリップフロップ、
レジスタ、計算のサイクル
2. データの流れと制御の流れ
主記憶装置、メモリの構成と分類、レジスタファイル、命令、命令実行の仕
組み、実行サイクル、算術論理演算命令、シーケンサ、条件分岐命令
3.命令セットアーキテクチャ
操作とオペランド、命令の表現形式、アセンブリ言語、命令セット、
算術論理演算命令、データ移動命令、分岐命令、アドレシング、
サブルーチン、RISCとCISC
4.パイプライン処理(1)
パイプラインの原理、命令パイプライン、オーバヘッド、構造ハザード、
データハザード、制御ハザード
5.パイプライン処理(2)
フォワーディング、遅延分岐、分岐予測、命令スケジューリング
試験(+出席)
コンピュータハードウェア
東大・坂井
講義の概要と予定(2/2)
7.仮想記憶
仮想記憶、ページフォールト、TLB、物理アドレスキャッシュ、
仮想アドレスキャッシュ、メモリアクセス機構
8.命令レベル並列処理(1)
並列処理、並列処理パイプライン、VLIW、スーパスカラ、並列処理とハザード
9.命令レベル並列処理(2)
静的最適化、ループアンローリング、ソフトウェアパイプライニング、トレーススケ
ジューリング
10.アウトオブオーダ処理
インオーダーとアウトオブオーダー、フロー依存、逆依存、出力依存、
命令ウィンドウ、リザベーションステーション、レジスタリネーミング、
マッピングテーブル、リオーダバッファ、プロセッサの性能
11.入出力と周辺装置
周辺装置、ディスプレイ、二次記憶装置、ハードウェアインタフェース、割り込みと
ポーリング、アービタ、DMA、例外処理
6.キャッシュ
記憶階層と局所性、透過性、キャッシュ、ライトスルーとライトバック、
ダイレクトマップ型、フルアソシアティブ型、セットアソシアティブ型、
キャッシュミス
東大・坂井
コンピュータハードウェア
試験: 7月後半
コンピュータハードウェア
東大・坂井
1
命令パイプラインとメモリ
6.キャッシュ
問題: はたしてメモリは1クロックで読み書きできるか?
内容
– 記憶階層
FD
レジスタ
4
命令メモリ変位
命令
デコ
ーダ
命
令
レ
ジ
レジスタ
ス
タ レジスタ ファイル
アドレス (読み)
演算
制御
+
メモリアドレス
レジスタ
データメモリ変位
データ
メモリ
命令メモリ、データメモリは
CPUチップの外に置かれる
↓
アクセスに時間がかかる
フォワー
ディング
機構
①命令フェッチ(F)
②命令デコード(D)
③演算実行(E)
アドレスの流れ
東大・坂井
メモリの理想と現実
制御の流れ
④結果格納(W)
データの流れ
東大・坂井
コンピュータハードウェア
記憶階層と局所性
理想
低速大容量メモリ
(下位)
– 無限大の容量
– 無限小のアクセス時間
– 単純なアドレシング
なぜ記憶階層が有効か?
命令やデータに局所性があるから
高速小容量メモリ
(上位)
コピー
書き戻し
(必要な時のみ)
現実
– 大容量と高速アクセスは両立しない
• 容量が大きくなるとアクセス時間も大きくなる
コンピュータハードウェア
メモリ
アドレス
演算結果
フラグ
レジスタ
ファイル
(書き)
A
L
U
データ選択
即値
メモリ
制御
P
C
セット
データ選択
命令
アドレス
選択
回路
+4
データ選択
P
C
キャッシュとはなにか
ライトスルーとライトバック
ダイレクトマップ型キャッシュ
キャッシュミス
フルアソシアティブ型キャッシュ
セットアソシアティブ型キャッシュ
キャッシュの入ったCPU
キャッシュの性能
コンピュータハードウェア
命令メモリ
– キャッシュ
•
•
•
•
•
•
•
•
EW
レジスタ
DE
レジスタ
+
• 命令パイプラインとメモリ
• 記憶階層と局所性
• 透過性
命令パイプライン
東大・坂井
コンピュータハードウェア
メモリ語
– 空間局所性
• あるメモリ語が参照されたと
きに、その語の近くの語が引
き続き参照される性質
– 時間局所性
• あるメモリ語が参照されたと
き、その語が時間をおかずに
再び参照される性質
東大・坂井
2
記憶階層と機械語プログラム
キャッシュとは何か
キャッシュ
◆ 記憶階層を陽に見せる方式
• 各階層のメモリのそれぞれにアドレスを付け、コピーや書き戻しもロード命令・
ストア命令で実現する
×アセンブリ言語のプログラマが記憶階層を意識しなくてはならず、いつも最良の
メモリの利用法を考えてプログラムをしなくてはならない。
×命令セットが同じでもメモリの階層構成が変化したり、各階層のメモリの大きさ
が変化したりするたびにプログラムを作り直さなくてはならない。
– 記憶階層の最上位のメモリ
キャッシュライン(キャッシュブロック)
= キャッシュの読み書きの単位
– 1クロックで読み書きする
キャッ
シュ
◆ 記憶階層を見せない方式
メモリ
• 見かけ上は、高速で大容量のメモリが1つだけあるものとして機械語のプログ
ラムを書き、ハードウェアの機構でどの階層のメモリをどう使って局所性を活か
すかを決める
◎単純に命令セットだけを意識して機械語プログラムを書いておけば、効率や安
全性はハードウェアが勝手に面倒を見てくれる。この性質を
(1)初期状態
(2)最初のデータ参照
(3)複数の参照の後
CPU
衝突
追い出し
再コピー
透過性
(transparency)と呼ぶ。
東大・坂井
コンピュータハードウェア
東大・坂井
コンピュータハードウェア
(4)キャッシュ参照
ライトスルー方式とライトバック方式
(5)キャッシュの入れ替え
ダイレクトマップ型キャッシュ(1)
アドレス
CPU
キャッシュ
31
CPU
ヒット/ミス
=
ストア命令
ストア命令
15 14
(2)ライトバック方式
タグ インデクス
(17)
(1)ライトスルー方式
キャッシュライン
データ語(32)
データ語(32)
ライトバック方式
ストア命令の実行時
キャッシュライン追い出しの時
ライト命令の実行速度
ライトバッファの速度
キャッシュの速度
キャ ッ シュ ライ ン書き 戻
不要
キャッシュライン追い出しの時
単純
複雑
4 3210
ライトスルー方式
メモリアクセス
有効 タグ
(1) (17)
キャッシュライン
内オフセット(2)
選択
マルチプレクサ
データ語(32)
し
コンピュータハードウェア
データ語(32)
(11)
表 5.1 ライトスルー方式とライトバック方式
実装
データ語(32)
東大・坂井
コンピュータハードウェア
読み出し
東大・坂井
3
ダイレクトマップ型キャッシュ(2)
アドレス
キャッシュ
キャッシュミス
31
キャッシュミス
ヒット/ミス
=
3つのC
=
タグ インデクス
(17)
15 14
①初期参照ミス(compulsory miss, cold start miss)
キャッシュラインを最初にアクセスするときに起こるミス
②競合性ミス(conflict miss, collision miss)
同じインデクスをもつ異なるキャッシュラインにアクセスすること
で起こるミス
③容量性ミス(capacity miss)
キャッシュしたいライン数がキャッシュ容量を上回ることで起こる
ミス
キャッシュライン
データ語(32)
データ語(32)
データ語(32)
データ語(32)
(11)
4 3210
有効 タグ
(1) (17)
マルチプレクサ
選択
キャッシュライン
内オフセット(2)
データ語(32)
書き込み
コンピュータハードウェア
東大・坂井
フルアソシアティブ型キャッシュ
キャッシュ
キャッシュ
ヒット/ミス
L = S × A
・
・
31
キャッシュライン
=
データ語(32)
・
・
◆フルアソシアティブ型
A=L
・
コンピュータハードウェア
選択
4 3210
4 3210
◆ダイレクトマップ型
A=1
有効 タグ
(1) (28)
キャッシュライン
内オフセット(2)
ライン選択
データ語(32)
データ語(32)
データ語(32)
データ語(32)
(10)
・
データ語(32)
インデクス
・
・
データ語(32)
セット選択
14 13
(28)
データ語(32)
・
キャッシュライン
=
(18)
タグ
・
・
・
=
ライン選択
・
・
・
・
タグ
L:ライン数
S:セット数
A:連想度
・
=
アドレス
31
・
・
=
セットアソシアティブ型
ヒット/ミス
・
アドレス
東大・坂井
コンピュータハードウェア
有効 タグ
(1) (18)
キャッシュライン
内オフセット(2)
マルチプレクサ
語選択
マルチプレクサ
データ語(32)
データ語(32)
東大・坂井
コンピュータハードウェア
東大・坂井
4
キャッシュ方式の比較
キャッシュの入ったCPU
シーケンサ
セットアソシアティブ
フルアソシアティブ
A(2、4など)
=ライン数
S
1
ハードウェア
◎
○
×
ゲート遅延
◎
○
×
競合性ミス
×
○
◎
+1
分岐先アドレス
命令フェッチ
命令レジスタ
演算
制御
命令デコーダ
メモリ
アドレス
レジスタアドレス
(3種)
読み 出し
データ
書き込み
データ
メモリ制御
レジスタ
ファイル
ALU
演算結果
フラグ
データ選択
1
=ライン数
プログラム
カウンタ
分岐信号
連想度
セット数
選択回路
ダイレクトマップ
命令アドレス
命令キャッシュ
表 5.2 キャッシュの3つの型
結果の格納
キャッシュラインの交換
追い出すラインをどう決めるか?
データキャッシュ
– ランダム
– LRU (Least Recently Used)
使われていない時間が最も長い(Least Recent Used)ラインを
追い出しの対象とする
東大・坂井
コンピュータハードウェア
キャッシュの入った命令パイプライン
FD
①命令フェッチ(F) レジスタ
②命令デコード(D)
DE
レジスタ
③演算実行(E)
EW
レジスタ
命
令
レ
ジ
ス
タ
命令
デコ
ーダ
演算
制御
即値
+
メモリアドレス
レジスタ
データメモリ変位
メモリ
制御
A
L
U
データ選択
レジスタ
レジスタ ファイル
アドレス (読み)
メモリ
アドレス
P
C
キャッシュの性能
–
–
–
–
–
–
セット
演算結果
フラグ
レジスタ
ファイル
(書き)
データ選択
データ選択
命令
アドレス
命令キャッシュ
P
C
選択
回路
+4
+
命令メモリ変位
東大・坂井
コンピュータハードウェア
Tp = N・ (1 + rls ・rmiss ・tmstall) / C
④結果格納(W)
4
主記憶(メインメモリ)
データ
キャッシュ
Tp:プログラム実行時間、
C [Hz] :CPUのクロック速度
N :プログラムで実行される命令の数
rls:ロード・ストア命令の割合
rmiss:ロード・ストア命令ごとのキャッシュミス率
tmstall :1回のミスによるストール時間(ミスペナルティ、miss penalty)
表 5.4 キャッシュミス率とミスペナルティの例(解答)
フォワー
ディング
機構
主記憶(メインメモリ)
ミス率
ミスペナルティ
事例1
0
−
実行時間相対値
1
事例2
0.05
10
1.15
事例3
0.05
50
1.75
事例4
0.5
10
2.5
事例5
0.5
50
8.5
Rls = 0.3の場合
コンピュータハードウェア
アドレスの流れ
制御の流れ
データの流れ
東大・坂井
コンピュータハードウェア
東大・坂井
5