計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · •...
Transcript of 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · •...
![Page 1: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/1.jpg)
計算機アーキテクチャ特論
• 前半(並列アーキテクチャの基本、枝廣)– 10/3, 10/17, 10/24, 10/31, 11/7, 11/14(⽇程は予定)– 内容(変更の可能性あり)
• 序論(マルチコア=並列アーキテクチャ概論)• キャッシュ・コヒーレンシ、メモリ・コンシステンシ• 並列アーキテクチャモデル、OSモデル• スケーラビリティに関する法則• 並列プログラミングモデル、⾔語
– 資料置場︓ http://www.pdsl.jp/class/• 後半(先端トピックス、本⽥)
– 11/21〜– 内容(変更の可能性あり)
• 組込みアーキテクチャ• 再構成可能アーキテクチャ
Page 1
2016年10⽉17⽇ 枝廣
![Page 2: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/2.jpg)
ボード
SoC
メモリ・アーキテクチャCPU CPU
メモリ
CPU CPU
メモリ メモリ
集中メモリ方式 分散メモリ方式
CPU
キャッシュ
CPU内蔵メモリ
SoC内蔵メモリ
ボード上メモリ
別ボード上メモリ
ストレージシステム
メモリ階層
高速小容量
低速大容量
![Page 3: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/3.jpg)
⽬次• キャッシュ・コヒーレンシ
(キャッシュの⼀貫性)
• メモリ・コンシステンシ(メモリの整合性)
Page 3
![Page 4: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/4.jpg)
キャッシュの⼀貫性(coherency)
Page 4
33
CPU1 CPU2
3→4
メモリバス
キャッシュ
3?
AMP型(ハードウェアサポートなし)
CPU1 CPU2
3→4
共有メモリ
4
SMP型 (キャッシュのSnoop(盗み見)機構)
AMP型の場合、SW2でメモ
リ上の同じデータを使いたい場合、SW1はキャッシュの内
容を一度共有メモリに戻す必要がある。SW1からSW2への「通信」をプログラムに明示的に書く
SMP型では隣のCPUの
キャッシュの内容を盗み見る(Snoop)ハードウェア機
構を持つ。ソフトでは気にせずにSW1とSW2のデータ共有ができる。(オーバーヘッドが小さい)
キャッシュ
SW1 SW2 SW1 SW2
CPU1
3→4キャッシュ
シングルプロセッサ
3
SW1 SW2
共有メモリ
メモリバス
シングルプロセッサの場合SW1もSW2も同じ
キャッシュから読むので、オーバーヘッドなく正しい値が読める
![Page 5: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/5.jpg)
キャッシュの役割(復習)
Page 5
キャッシュは高速だが容量が小さい(入替がある)
![Page 6: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/6.jpg)
キャッシュの構造(復習)
Page 6
![Page 7: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/7.jpg)
ダイレクトマップ⽅式(復習)
Page 7
![Page 8: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/8.jpg)
ライトスルーとライトバック• ライトスルー
– 新しいデータを常にメモリに書き戻す– 書き込みデータをキャッシュに残す⽅式と残さない⽅式がある– いずれにしてもメモリとキャッシュはいつも同じ値– 書き込みの時に時間がかかる
• 後述のストアバッファ(ライトバッファ)を使うことによって改善できるが、それでも多くの書き込みが発⽣するとCPUが⽌まる
• ライトバック– 新しいデータをキャッシュに書き、メモリにはその時には書き戻さな
い– 3つの状態
• インバリッド︓初期値、無効な値• クリーン︓メモリと同じ値を保持• ダーティ︓メモリと異なる新しい値を保持
Page 8
![Page 9: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/9.jpg)
ライトバックキャッシュの状態遷移
Page 9
ライトのキャッシュミス
![Page 10: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/10.jpg)
例初期状態→インバリッド
値3を読む→クリーン
値4に書き換える→ダーティ
Page 10
CPU1
3→4キャッシュ
3
SW1 SW2
![Page 11: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/11.jpg)
マルチコアのキャッシュ(スヌープ⽅式)
Page 11
Snoop Control Unit (SCU) I & D64bit bus
CoherenceControl
BusPrimaryAXI R/W64bit bus
Optional 2nd
AXI R/W64bit bus
Private lines
Interrupt Distributor
Configurable number ofhardware interrupt lines
IRQ
Configurable SMP(1 and 4 PEs)
Per CPUPeripherals
CPU/VFPL1 Cache
CPU/VFPL1 Cache
CPU/VFPL1 Cache
CPU/VFPL1 Cache
TimerWdog
CPUinterface
TimerWdog
CPUinterface
TimerWdog
CPUinterface
TimerWdog
CPUinterface
ARM11 MPCore
![Page 12: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/12.jpg)
ライトアップデートとライトインバリデート
• ライトアップデート– 書き込みがあった場合、同じデータをもつす
べてのコアのキャッシュの該当データを書き換える
• ライトインバリデート– 書き込みがあった場合、同じデータをもつす
べてのコアのキャッシュの該当データを無効化(インバリデート)する
– データ書き換えよりも無効化の⽅が簡単なので、組込みプロセッサでは主流
Page 12
![Page 13: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/13.jpg)
スヌープキャッシュの状態遷移• いろいろな⽅式がある
– MESI、MOESIなど
– M(Exclusive Modified︓モディファイド)データが書き変わっている状態(主記憶と⼀致せず、⾃分だけがデータを持っている)
– O(Owned︓オウンド)主記憶と⼀致していないが、他のコアも同じデータを持っている
– E(Exclusive Clean︓イクスクルーシブ)主記憶と⼀致し、⾃分だけが持っている
– S(Shared Clean︓シェアード)主記憶と⼀致し、他のコアも同じデータを持っている
– I(Invalid︓ インバリッド)無効状態
Page 13
![Page 14: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/14.jpg)
例(MESI)
Page 14
![Page 15: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/15.jpg)
Page 15
![Page 16: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/16.jpg)
Page 16
![Page 17: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/17.jpg)
Page 17
キャッシュ間コピーができるアーキテクチャもある
![Page 18: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/18.jpg)
Page 18
キャッシュ間コピーができるアーキテクチャもある
![Page 19: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/19.jpg)
Page 19
ミス
I
Invalid ミス
![Page 20: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/20.jpg)
Page 20
![Page 21: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/21.jpg)
Page 21
![Page 22: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/22.jpg)
ディレクトリ型• スヌープ型は集中メモリ型に多く使われるが、メモリが
分散している場合には実装が難しい• その場合にはディレクトリ型が使われる• 今後、⼀つのLSIに多くのプロセッサが搭載される時
代に有⽤になると思われる
Page 22
![Page 23: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/23.jpg)
Page 23
![Page 24: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/24.jpg)
Page 24
I
![Page 25: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/25.jpg)
フォールスシェアリング問題
Page 25
![Page 26: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/26.jpg)
キャッシュ スラッシング問題
Page 26
同じキャッシュラインになってしまった
・セットアソシアティブ・キャッシュなら回避
・それでもダメなら配列参照がずれるようにする
![Page 27: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/27.jpg)
メモリ整合性
Page 27
CPU1 CPU2
キャッシュ
AMP型(ハードウェアサポートなし)
SW1 SW2
同時に書き込みがあったときの順番は?キャッシュなどの影響は?
![Page 28: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/28.jpg)
メモリ整合性(メモリコンシステンシ)
• プロセッサP1とP2でそれぞれのプログラムが動く• 変数A、Bは共有メモリ上にあるとする• 両⽅のIF⽂が同時に真になることはないはず。ある種のス
イッチ/排他制御になっているつもり– 例えばP1でIFが真になったとすると、P2はL2の前を実⾏している
はずだからP2のIF⽂の評価のときには既にA=1になっているはず
• しかしながら、実際にはうまく動かない場合が多い
• なんらかの順序関係の記述が必要Page 28
![Page 29: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/29.jpg)
順序関係• 順序関係の保証をハードでやるのか、ソフトでやるのか
• ハードですべて保証しようと思えばできないことはないが、オーバーヘッドが⼤きい(プログラムのごく⼀部の話で全体が遅くなっていいのか)
• ⼀部ソフトで保証することにしてハードを簡単化• 緩和する順序関係の候補
– Read → Write– Write → Read– Write → Write– (Read → Read)
Page 29
![Page 30: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/30.jpg)
順序関係
Page 30
スレッド2
Load M[x]
スレッド1
Store M[x]
W→R
W→W
R→W
スレッド2
Load M[x]スレッド1
Store M[x]
スレッド2
Store M[x]
スレッド1
Store M[x]スレッド2
Store M[x]スレッド1
Store M[x]
スレッド2
Store M[x]
スレッド1
Load M[x]スレッド2
Store M[x]スレッド1
Load M[x]
スレッド2
Load M[x]
スレッド1
Store M[x]同期
![Page 31: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/31.jpg)
メモリ整合性モデル
Page 31
W→R
W→R, W→W
ソフトウェアでの対応:同期をとって、(例えば)ライトバッファをはきだす命令を出す。sync()やflush()など
![Page 32: 計算機アーキテクチャ特論 2016年10⽉17⽇ 枝廣 · • 再構成可能アーキテクチャ Page 1 2016年10⽉17⽇ 枝廣 ... ダイレクトマップ⽅式(復習)](https://reader030.fdocument.pub/reader030/viewer/2022040713/5e199f4754a21f48e377c18a/html5/thumbnails/32.jpg)
ライトバッファ、ライトマージ、ノンブロッキングキャッシュ
• ライトバッファ– 書き込み終了を待つことなく、バッファにためる– ライトバッファがあると、リードがライトを追い越
すことがある
• ライトマージ– 近く(同時にメモリに書きこめる)の書き込み命令
をまとめる– ライトマージすると、ライトがライトを追い越すこ
とがある
• ノンブロッキングキャッシュ– 前データ到着前にCPUはキャッシュアクセスが可能– あらゆるメモリアクセス処理の追い越しがあり得る
Page 32