コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

85
Computer Architecture 章 章章章章章章章章章章章章章章章章章章章

Upload: masayuki-kimura

Post on 15-Apr-2017

959 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Computer Architecture4章 マルチプロセッサとスレッドレベル並列性

Page 2: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 2

おしながき

4.1 イントロダクション 4.2 対称型共有メモリアーキテクチャ 4.3 対称型共有メモリマルチプロセッサの性能 4.4 分散型共有メモリとディレクトリベースのコヒーレン

ス 4.5 同期 : 基本 4.6 メモリコンシステンシのモデル : イントロダクション 4.7 分野横断的な問題 4.8 総合的なまとめ 4.9 誤信と落とし穴 4.10 まとめ 4.11 歴史的展望と参考文献

Page 3: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 3

4.1 イントロダクション マルチプロセッサのモチベーション (p.196)

単一プロセッサ時代の終焉の予想- 1986 – 2002- マイクロプロセッサによって性能が向上

- 素晴らしい性能向上率の達成マルチプロセッサの重要性は増してきている

- スーパーコンピュータ,サーバ- 単一のプロセッサでは達成できない能力

ILP を利用した単一プロセッサの性能向上の限界- 第 1 章,第 3 章- コンピュータアーキテクチャの新しい時代の到来 → マルチプロセッサが主役に

Page 4: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 4

4.1 イントロダクション マルチプロセッサのモチベーション (p.196) マルチプロセッサのニーズ

サーバやその性能の必要性 データ集中型のアプリケーションの増加 デスクトップの性能向上の必要性は低下 サーバ環境

多くのスレッドレベル並列性 マルチプロセッサを効率的に利用するための理解

「複製」することによる性能の向上 2 つの問題点1. マルチプロセッサはまだ若い!

- いろいろな方式が出ては消え,出ては消え…2. 全部詳細に議論しようとしたら日が暮れる

そこで- マルチプロセッサ (4 – 32 個くらい ) を考える

Page 5: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 5

4.1 イントロダクション Flynn の分類 (p.197)

マルチプロセッサの分類- マルチプロセッサの範囲の広さ- 設計において最も重視する点

- 隠れている設計思想- SISD- SIMD- MISD- MIMD

Page 6: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 6

4.1 イントロダクション Flynn の分類 (p.197) 4 つのカテゴリに分類

- 命令とデータの流れに分けて並列性を考える

SISD - 単一命令流・単一データ流- 単一プロセッサ

SIMD - 単一データ流・複数データ流- 複数プロセッサ 同じ命令を実行し,

異なるデータを扱う- 個々のプロセッサがメモリを持つ- データに並列にアクセス

- 「データレベル並列性」の利用- Multi-Media eXtension (MMX)- ベクトルアーキテクチャ- 3 次元,リアルな仮想空間

- ゲーム業界

Instruction Pool

Dat

a P

ool

PU

Instruction Pool

Dat

a P

ool

PU

PU

PU

PU

Page 7: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 7

4.1 イントロダクション Flynn の分類 (p.197) MISD

- 複数命令流・複数データ流- そんな商用プロセッサ無い

MIMD- 複数命令流・複数データ流- スレッドレベル並列性- データレベル並列性よりも柔軟

Instruction Pool

Dat

a P

ool

PU

PU

PU

PU

PU

PU

PU

PU

Instruction Pool

Dat

a P

ool

PU PU

Page 8: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 8

4.1 イントロダクション Flynn の分類 (p.197) MIMD の特徴

1. MIMD には柔軟性がある- 単一ユーザで複数のタスクを同時に動かせる

- 高い性能を発揮するアプリケーション2. MIMD は今日のプロセッサの中ではコストパフォーマンスで有利

- 多くのマルチプロセッサは,単一のプロセッサを並べている MIMD の例:クラスタ

- 標準的な構成要素とネットワーク技術を用いたもの→ 共通の技術を可能な限り使う

- コモデティクラスタ:何でもかんでも共通部品を使って設計- カスタムクラスタ:詳細なノード設計や相互ネットワークを設計

者がカスタマイズ

Page 9: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 9

4.1 イントロダクション オンチップマルチプロセッサ (p.198)

マルチコア- チップ容量の増大→単一ダイに複数プロセッサ- 資源共有 : L2Cache , L3Cache ,メモリ, I/O バス- プロセッサを単純に複製⇔ワイドなスーパスカラ

MIMD の特徴- 各プロセッサは 1 つの命令ストリームを実行- プロセッサごとに異なるプロセス→マルチプログラム環境

- 各々のプロセッサは独立のタスクを実行- プロセス

-独立に動作するコード群 ( 各プロセスは互いに独立

Instruction Pool

Dat

a P

ool PU

PU

PU

PU

PU

PU

PU

PU

Page 10: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 10

4.1 イントロダクション スレッド (p.199)スレッド

-      を共有しているプロセス群

または

- 異なるプロセッサ上で動作するプログラム実行のカジュアルな呼び名

MIMD マルチプロセッサ- n 個の MIMD マルチプロセッサによってその利益を得る

⇒n 個以上のスレッドが必要- プログラマ,コンパイラによって生成

- オペレーティングシステムによるスケジューリング- 並列コンパイラによって生成されたもの etc…

コードデータ ( アドレス )

Processor

Processor Processor

Processor

スレッド スレッド

スレッド スレッド

Page 11: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 11

4.1 イントロダクション スレッド (p.199)スレッドに割りつけられている計算の数⇒粒度

- どのようにして効率的にスレッドレベル並列性を取り出す?

ILP との重要な違い- スレッドレベル並列性:ソフトウェアシステムによって高いレベルで識別される

- 100~ 100万の並列に実行される命令で構成

スレッドを使えばデータレベル並列性も抽出できる- SIMD よりもオーバヘッドは大きくなるだろう- 並列性を抽出するためには,粒度を大きくする- 例:ベクトルプロセッサ:短いベクトルに対して並列性を抽出できる

- 並列性が複数のスレッドに分割される⇒並列性のオーバヘッドが大きくなる!

Page 12: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 12

4.1 イントロダクション MIMD の分類 (p.199)MIMD を 2種類に分類する

- プロセッサの数?- メモリ構成?プロセッサ間の接続方式?

集中型共有メモリアーキテクチャ- プロセッサのチップの数は 100以下- これくらいならメモリを共有できる

- P2P接続や,スイッチ,多くのメモリバンク⇒ 20~30のプロセッサ構成に拡大

- 100台以上→ちょっと難しくなる

集中型共有メモリアーキテクチャメモリを分散させたマルチプロセッサ

Page 13: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 13

4.1 イントロダクション MIMD の分類 (p.200)

1. 対称型共有メモリアーキテクチャ (SMP , UMA)- プロセッサに対して対称的にメモリを配置- メモリへのアクセスレイテンシが等しい

Page 14: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 14

4.1 イントロダクション MIMD の分類 (p.200)

2. 物理的にメモリを分散させたアーキテクチャ- 大量のメモリを利用できる- 1. の方式ではアクセスレイテンシの問題

Page 15: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 15

4.1 イントロダクション MIMD の分類 (p.200)

 

- 高いバンド幅を持つ相互結合網の必要性 (Appendix E)

分散メモリの 2 つの利点- アクセスがローカルメモリに限られるなら,効果大- ローカルメモリへのアクセスレイテンシ減

分散メモリの欠点- プロセッサ同士の通信が複雑⇒ソフトウェアによる努力- 分散メモリではプロセス間通信で 2 つのパラダイムがある

- あとでやる

プロセッサの性能の増加必要なメモリバンド幅の増加

Page 16: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 16

4.1 イントロダクション 通信モデルとメモリアーキテクチャ (p.201)

データ通信を行うための 2 つのアプローチ

1. 共通アドレス空間- Any processor, any location- UMA (Uniform Memory Access)- 分散共有メモリ (distributed-Shared

memory)- NUMA (Non-Uniform Memory Access)

2. アドレス空間は別々 (DSM)- 明示的なメッセージ転送命令- メッセージパッシング型マルチプロセッサ

PU 1 PU 2 PU 3 PU 4

Address Space

PU 1

PU 2

PU 3

PU 4

AddressSpace

AddressSpace

AddressSpace

AddressSpace

Node 1

Node   2

Node 3

Node 0 0

InterconnectonNetwork

Logical address space

1

2

3

Page 17: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 17

4.1 イントロダクション 並列計算の困難さ (p.202)

アムダールの法則による,並列計算の困難さ- アプリケーションの並列性の限界- 通信コストの増大

例 : 100台のプロセッサで 80倍の性能を発揮するためには,逐次的な部分はどの程度か?- アムダールの法則

並列計算を困難なものにしている

高速化率部分率改善後

高速化率改善後部分率改善後

高速化率部分率改善後

高速化率改善後部分率改善後

部分率並列化後 部分率並列化後

部分率並列化後 部分率並列化後

部分率並列化後

部分率並列化後

部分率並列化後

Page 18: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 18

4.1 イントロダクション 例題 1 (p.203)

この例の示すこと- 全体の 0.25%(1-0.9975) しか逐次的な部分は存在してはい

けない- 100倍にしたかったら,全部並列にする

高速化率部分率改善後

高速化率改善後部分率改善後

部分率並列化後 部分率並列化後

部分率並列化後 部分率並列化後

部分率並列化後

部分率並列化後

部分率並列化後

Page 19: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 19

4.1 イントロダクション 例題 2 (p.203)

32 個のマルチプロセッサ (2GHz , CPI = 0.5)- リモートメモリ参照のレイテンシ : 200ns- ローカルメモリ参照は 100% ヒットと仮定

- 全体の 0.2% のみリモート参照が起きる場合- リモート参照が全く生じない場合

何倍速い?

PU PU PU PU PU…

LocalMemory

LocalMemory

LocalMemory

LocalMemory

LocalMemory

…99.8% 99.8% 99.8% 99.8%99.8%

0.2%

0.2%

Page 20: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 20

4.1 イントロダクション 例題 2 (p.203)

- 通信なしの場合, CPI = 0.5- 通信ありの場合

高速化率部分率改善後

高速化率改善後部分率改善後

部分率並列化後 部分率並列化後

部分率並列化後 部分率並列化後

部分率並列化後

部分率並列化後

部分率並列化後

基本 リモート要求頻度 リモート要求コスト

リモート要求コスト

リモート要求コストリモートアクセスコスト

サイクル時間

サイクル

高速化率部分率改善後

高速化率改善後部分率改善後

部分率並列化後 部分率並列化後

部分率並列化後 部分率並列化後

部分率並列化後

部分率並列化後

部分率並列化後

基本 リモート要求頻度 リモート要求コスト

リモート要求コスト

リモート要求コストリモートアクセスコスト

サイクル時間

サイクル

高速化率部分率改善後

高速化率改善後部分率改善後

部分率並列化後 部分率並列化後

部分率並列化後 部分率並列化後

部分率並列化後

部分率並列化後

部分率並列化後

基本 リモート要求頻度 リモート要求コスト

リモート要求コスト

リモート要求コストリモートアクセスコスト

サイクル時間

サイクル

高速化 リモート参照あり

リモート参照なし

高速化率部分率改善後

高速化率改善後部分率改善後

部分率並列化後 部分率並列化後

部分率並列化後 部分率並列化後

部分率並列化後

部分率並列化後

部分率並列化後

基本 リモート要求頻度 リモート要求コスト

リモート要求コスト

リモート要求コストリモートアクセスコスト

サイクル時間

サイクル

高速化 リモート参照あり

リモート参照なし

ローカル参照など

リモート参照

Page 21: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 21

4.1 イントロダクション 並列計算の困難さ (p.204) マルチプロセッサにおける速度向上を阻害するも

の1. 並列性が十分大きくないプログラム2. リモート参照におけるレイテンシの増大

解決法1. 新しい並列性の強いプログラム2. アーキテクチャ,プログラマによってレイテンシを削減

- データのキャッシュ- ローカル参照の多いプログラムに改善

マルチスレッド化 ( 第 3 章 ) プリフェッチング ( 第 5 章 )

Page 22: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 22

4.1 イントロダクション 並列計算の困難さ (p.204)課題:レイテンシをどのように削減するか

- 4.2, 4.3 リモートアクセス頻度を減少させる方法- キャッシュを用いた技法

- 4.5 同期- 4.6 レイテンシを隠ぺいする技法,共有メモリのためのメモリコンシ

ステンシモデル

Appendix I : 大規模マルチプロセッサの話

- キャッシュの基本的な理解については,パタヘネを読んでおいてね- ライトバックキャッシュ,マルチレベルキャッシュに関しては付録

C を見てね

Page 23: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 23

4.2 対称型共有メモリアーキテクチャ (p.205)

複数のプロセッサでメモリを共有する- プロセッサに必要なバンド幅の問題

- → マルチレベルキャッシュにより減少- 複数のプロセッサが,バスを用いて 1 つのメモリを共有す

ることが可能に- プロセッサのサイズ 小- キャッシュのサイズ 大

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

メモリバンド幅の削減

Page 24: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 24

4.2 対称型共有メモリアーキテクチャ (p.205)

IBM : オンチップマルチプロセッサの先駆 (2000年に汎用向け )- AMD, Intel が続く ( サーバ市場に 2005年 )- Sun T1 (8 プロセッサ 2006年 : 4.8節 )

現代のマルチプロセッサ:メモリバンド幅が足りない場合- 小規模なスイッチによって 1 対 1 のネットワーク

Core

Core

Core

Core

Core

Core

Core

Core

CrossbarSwitch

FPU

L2Cachebank

Directory

L2Cachebank

Directory

L2Cachebank

Directory

L2Cachebank

Directory

Single issue six-stage pipelineRISC with 16KB Instruction cache/8KB Data cache for L1 Total 3MB, 64byte Interleaved

Memory

Page 25: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 25

4.2 対称型共有メモリアーキテクチャ (p.205)

キャッシングするデータの分類:共有データと固有データ-固有データ:単一のプロセッサで使用するデータ

- キャッシングにより,アクセスレイテンシの減少に貢献-他のプロセッサが利用しない→単一プロセッサの場合と同じ

- 共有データ:複数のプロセッサが使用するデータ- 共有データによる読み書き⇒プロセッサ間通信を実現- キャッシングにより,アクセスレイテンシの減少に貢献- 新しい問題

-キャッシュコヒーレンス

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

固有データ

固有データ

共通データ

固有データ

Page 26: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 26

4.2 対称型共有メモリアーキテクチャ マルチプロセッサのキャッシュコヒーレンスとは何か ?(p.205)同一メモリアドレスの内容なのに…

- 2 つのプロセッサからは異なる値に見える- キャッシングの影響-図 4.3 同じ場所のデータが異なる値に見える例

- キャッシュコヒーレンス問題

Page 27: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 27

4.2 対称型共有メモリアーキテクチャ マルチプロセッサのキャッシュコヒーレンスとは何か ?(p.205)図 4.3 をアニメーションにしてみた

時間 イベント CPU A のキャッシュの内容

CPU B のキャッシュの内容 番地 X の内容

0

1 CPU A が X をリード

2 CPU B が X をリード

3 CPU A が 0 を X にストア

11 1

11 1

10 0

コア 1

L1

コア 4

L1

           主記憶メモリ

CPU A

キャッシュ

CPU B

キャッシュ

1X : 11

00

Page 28: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 28

4.2 対称型共有メモリアーキテクチャ マルチプロセッサのキャッシュコヒーレンスとは何か ?(p.206) あいまいな定義 ( イメージ )

- コヒーレンス  : Read によってどのような値が返ってくるか

- コンシステンシ  : Write された値が Read によってどの時点で返されるか

Page 29: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 29

4.2 対称型共有メモリアーキテクチャ マルチプロセッサのキャッシュコヒーレンスとは何か ?(p.206) メモリシステムがコヒーレンスとは (厳密な定義 )

1. 単一プロセッサにて- いつも正しい値が返ってくる- プログラムの順序を維持する

2. 他のプロセッサによる Write- 十分な時間がたった後読み出し

→ 常に正しい値が返ってくる- コヒーレントとは何かを定義する

X

Write

Read

他プロセッサによる干渉なし

t

X : Data

Write (X, Data)

Read (X) == Data

P2P1

Page 30: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 30

4.2 対称型共有メモリアーキテクチャ マルチプロセッサのキャッシュコヒーレンスとは何か ?(p.206)

3. Write はシリアライズされる

- 同じメモリ番地に対するすべての Write を同じ順序に見せる

- Write のシリアライズ化

X : Data

①Write (X, 1)

③Read (X) == 2

②Write (X, 2)

④Read (X) == 2

Must!!

Page 31: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 31

4.2 対称型共有メモリアーキテクチャ マルチプロセッサのキャッシュコヒーレンスとは何か ?(p.207)コンシステンシとは

- Write した値はどれくらい時間がたてば正しく Read できる?

- メモリコンシステンシモデル (4.6)

2 つの仮定- すべてのプロセッサに Write が反映されるまで, Write は

Complete しない ( 次の Write を許さない )- プロセッサは任意のメモリアクセスに対しても Write の順序

を変えない

X : 0P2 : Write (X, 1)P1: Read (X)

= 0

X : 1

タイムラグ

t

Page 32: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 32

4.2 対称型共有メモリアーキテクチャ コヒーレンスを維持するための基本的な機構(p.207) マルチプロセッサ : 複数のキャッシュを持つ

- Migration : 移植- データはローカルなキャッシュに移植される

(transparency)- Replication : 複製

- キャッシュ上にデータあるため,同時に読み込み可能

共有データアクセスの性能に対して重大な影響⇒ハードウェアでの実装 ( プロトコルの導入 )

キャッシュコヒーレントプロトコル1. ディレクトリベース (4.8)2. スヌーピング ( この節 )

コア 1コア 2L1 L1

コア 3コア 4L1 L1

主記憶メモリ

P1 P2キャッシュキャッシュ

P3 P4キャッシュキャッシュ

固有データ

固有データ

共通データ

固有データ

Page 33: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 33

4.2 対称型共有メモリアーキテクチャ コヒーレンスを維持するための基本的な機構(p.208)ディレクトリベース  : 状態記憶を 1 つの場所 ( ディレクトリ ) に置く- スヌーピングよりもオーバヘッドが大きい- 大規模にできる

スヌーピング- データのコピーと共有ステータスを保持 ( 集中化しない )- キャッシュは Broadcast メディアを通じてアクセス-⇒キャッシュコントローラは,メディア媒体をスヌープ

(覗き見 )

スヌーププロトコル⇒有名 (過去の遺産が使える )- 基本的な考え方 : ブロードキャスト

Page 34: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 34

4.2 対称型共有メモリアーキテクチャ スヌーププロトコル (p.208)

Write インバリデートプロトコル-書き込みを行う前に,排他的なアクセス権を保持する-書き込み時 : 全てのキャッシュコピーをインバリデート

( 無効化 )-書き込み時にはどのプロセッサも該当データを読み書き不能 コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

固有データ

固有データ

共通データ

固有データ

固有データ

Write

Page 35: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 35

4.2 対称型共有メモリアーキテクチャ スヌーププロトコル (p.209)図 4.4

イベント バスの動作 CPU A のキャッシュの内容

CPU B のキャッシュの内容

メモリ番地 X の内容

CPU A が X をリード X に対するキャッシュミス

CPU B が X をリード X に対するキャッシュミス

CPU A が X に 1 をライト

X に対するインバリデート

CPU B の X のリード X に対するキャッシュミス

00 0

00 0Invalidate!1 0

コア 1

L1

コア 4

L1

           主記憶メモリ

CPU A

キャッシュ

CPU B

キャッシュ

0X : 00

11

11 1

1

Page 36: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 36

4.2 対称型共有メモリアーキテクチャ スヌーププロトコル (p.209)同じデータに対する Write

のシリアライズ化の必要性- 書き込みに対しては排他的なア

クセス権を与える

ライトインバリデート以外の他の方式- ライトアップデート- ライトブロードキャスト- Write 時に,そのデータのすべ

てのキャッシュコピーを更新- 余り使われない

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

共通データ

共通データ

共通データ

共通データ

Write Write

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

共通データ

共通データ

共通データ

共通データ

Write Update! Update! Update!

Page 37: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 37

4.2 対称型共有メモリアーキテクチャ 基本的な実装技術 (p.209)実装の鍵となる技術

- バスの利用 ( もしくは他のブロードキャストメディア )- インバリデートの動作

アドレス指定しインバリデートをバスへ投げるバスを監視してキャッシュをインバリデート

キャッシュミスへの対処:何処に本物のデータがある?- ライトスルーキャッシュなら簡単:メモリバンド幅が大きいなら有

効- ライトバックキャッシュ:最新の値はメモリの中?キャッシュの

中?→探すことが困難- アドレス監視の方式 ( スヌープ方式 ) で実現

- ずっとバス見てろ!

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

共通データ

共通データ

共通データ

共通データ

Page 38: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 38

4.2 対称型共有メモリアーキテクチャ基本的な実装技術 (p.210)

キャッシュミスに対する対処法- リード要求に対して他プロセッサのキャッシュが応答

- キャッシュブロックの取り出しは一般的に困難な作業

- ライトバックキャッシュではバスがそれほど使われない⇒大規模,高速なプロセッサでも有効⇒今後の説明はライトバックキャッシュで

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

共通データ

Read Request Reply

Page 39: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 39

4.2 対称型共有メモリアーキテクチャ基本的な実装技術 (p.210)

スヌーピングの実装:通常のキャッシュタグを利用- インバリデートを容易に実装できる

Write インバリデートを簡略化するためのビット-他のキャッシュが該当ブロックを保持している?- Write を転送しない→ Write 時間の減少→バンド幅の向上- 共有されているかを示すビット

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

共通データ

Write

Page 40: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 40

4.2 対称型共有メモリアーキテクチャ基本的な実装技術 (p.210) valid + dirty + Exclusive bit Invalidate を発行するかどうか判断

共有していないExclusive = True

共有しているExclusive = False write

Invalidate 発行  → Exclusive(排他 )状態

これ以上 Invalidate が送られることはないこのブロックの「オーナ」になった

バスへ対しては何もしない

他プロセッサからの     Request 発生

再び共有状態になる

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

XShared

共通データ

XShared

XShared

XShared

XExclusive

Write

Page 41: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 41

4.2 対称型共有メモリアーキテクチャ基本的な実装技術 (p.211)マルチレベルキャッシュ

- キャッシュにかかる負荷を軽減

P1

L1

Bus

SnoopingData Transfer

Read/Write

P1

L1

Bus

SnoopingData Transfer

Read/Write

L2

L1 Miss 発生時のみ

Data1

Data 1

Data 2

Data n

包含性

Snoop

L2 hit 時のみアクセス

Page 42: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 42

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.211)

スヌーププロトコル:有限状態遷移機械を用いて実装- バスを用いたデータアクセス or Invalidate- キャッシュブロックの状態を変化させる

- 今回のコントローラ: 3状態保持

- Modified状態は Exclusive状態であることに注意せよ- Modified : Invalidate 発行済みのはず- Modified→Exclusive ⇒ ライトスルーキャッシュ

InvalidShared : 他プロセッサと共有Modified : 書き込み済み

Page 43: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 43

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

図 4.5 状態遷移表 (Write Back の場合 )

Page 44: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 44

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.214)

図 4.6 状態遷移図- 左:プロセッサからの要求- 右:バスからの要求

Page 45: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 45

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read hit Processor Shared or Modified Normal hit Read data in cache.

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

XShared

共通データ

XShared

XShared

Page 46: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 46

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

コア 1 コア 2

L1 L1

コア 3 コア 4

L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

XModified

共通データ

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read hit Processor Shared or Modified Normal hit Read data in cache.

Page 47: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 47

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read miss processor Invalid normal-miss Place read miss on bus.

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

XShared

XShared

Request X

Read X

Page 48: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 48

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

YShared

YShared

XShared

Read X

Request X

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read miss processor Shared replacement アドレス競合ミス:ブロック書き戻し,リードミス発行

Page 49: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 49

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read miss processor Modified replacement アドレス競合ミス:ブロック書きだし,リードミス発行

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

YModified

共通データ

Read X

Write YRequest X

Page 50: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 50

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write hit processor Modified Normal hit キャッシュデータ書き込み

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

XModified

共通データ

Write X

Page 51: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 51

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write hit processor Shared Coherent インバリデート発行.アップグレードもしくはオーナミス

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Write X

Invalidate

XShared

XShared

XModified

Page 52: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 52

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write miss processor Invalid normal miss バスにライトミス発行

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Write X

Miss

XModified

Page 53: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 53

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write miss processor Shared replacement アドレス競合ミス:ライトミス発行

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Write X

XShared

XShared

Miss

Page 54: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 54

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write miss processor Modified replacement アドレス競合ミス:ブロック書き戻し,ライトミス発行

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Write X

Write XMiss

YModified

Page 55: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 55

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read miss bus Shared no action 何もしない

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Read X

Miss

XShared

XShared

Page 56: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 56

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Read miss bus Modified coherence データ共有開始:キャッシュブロックを転送し状態を Shared に

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Read X

Miss

XShared

XShared

XModified

Page 57: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 57

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Invalidate Bus Shared coherence 共有ブロックへの書き込み:ブロックのインバリデート

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Read X

Miss

XShared

XShared

XModified

Page 58: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 58

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write miss Bus Shared Coherence 共有されているブロックへの書き込み:キャッシュブロックのインバリデート

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Write X

Miss

XShared

XShared

XModified

Page 59: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 59

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.213)

Request Source State of addressedCache block

Type of cache action

Function and explanation

Write miss Bus Modified Coherence 共有されているブロックへの書き込み:キャッシュブロックのインバリデート

コア 1 コア 2

L1 L1

コア 3 コア 4

L1 L1

主記憶メモリ

P1 P2

キャッシュ キャッシュ

P3 P4

キャッシュ キャッシュ

共通データ

Write X

Miss

XModified

XModified

Page 60: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 60

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.212)

普通に考えられる拡張- Exclusive状態を追加: Modified ではない状態- 単一プロセッサのキャッシュとの対応

-図 4.6 の左図は Invalidate を除いて単一プロセッサでも必要-右図はいらない

InvalidValid (clean)Dirty

InvalidSharedModified

単一プロセッサ マルチプロセッサ≡

Page 61: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 61

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.215)図 4.6 の右側の図と左側の図を結合

赤囲み部分:バスの動作 スヌープコントローラによって 行われるもの

Page 62: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 62

4.2 対称型共有メモリアーキテクチャプロトコル例 (p.214)

不可分 (atomic) な操作- 「書き込みミス検出」→「バス権獲得」→「応答受取」 : 不可分⇒そうでない場合,デッドロックを引き起こす可能性

- 2-4位までのマルチプロセッサなら簡単- Pentium 4 Xeon , AMD Opteron

- スヌーピングをサポート,直接 4 つのプロセッサをつなげるピン- 大容量キャッシュを保持- Opteron : 複数のプロセッサを相互に接続するための機構- Intel : +他のチップを追加することでマルチプロセッサ化P0 P1

P2 P3

Page 63: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 63

4.2 対称型共有メモリアーキテクチャ対称型共有メモリマルチプロセッサとスヌーププロトコルの限界 (p.216)プロセッサの数,性能の増加⇒メモリ,バスが間に合わない-⇒バスの数を増やす ( クロスバー, P2P接続 )-⇒物理的に複数のバンクを用意する⇒均一アクセス,バ

ンド幅中間的な手法

集中型と分散型の中間

Page 64: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 64

4.2 対称型共有メモリアーキテクチャ対称型共有メモリマルチプロセッサとスヌーププロトコルの限界 (p.216)AMD Opteron の場合

- 1 チップに 2 コア ×4 チップ = 8 コア- コヒーレンス制御

-残りの 3 つのプロセッサへのブロードキャスト- インバリデート操作の終了:明示的な acknowledge- 共有コピーの走査:ディレクトリプロトコルのような

acknowledge を用いる- リモートメモリとローカルメモリのレイテンシは劇的に異なるわけではない

スヌープキャッシュコヒーレンスの弱点-ミスのたびにブロードキャストが必要となる- スケーラビリティの制限⇒ディレクトリベースのプロトコル

2 core 2 core

2 core 2 core

Page 65: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 65

4.2 対称型共有メモリアーキテクチャスヌープキャッシュコヒーレンス制御の実現 (p.217) 1990年の第 1版

1995年の第 2版

2006年

実装の問題: write and upgrade が atomic ではない

スヌープベースコヒーレンス50MB/s 単一バス30 個のプロセッサ

Pentium 4 にも及ばない

複数バスの登場付録の追加

すべてのマルチプロセッサは2 つかそれ以上のバスを保持

シリアライズ化を複雑なバス構造で実現する

Write/upgradeミスの検出他のプロセッサとの通信

最新の値を手に入れてインバリデート⇒1 サイクルで実行不可能

Page 66: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 66

4.2 対称型共有メモリアーキテクチャスヌープキャッシュコヒーレンス制御の実現 (p.217)

単一バスシステムの場合の atomic操作

バス以外のシステムの場合-ミス時の動作をアトミックにこなす方法が必要- レース状態: 2 つのプロセッサが同時に同場所に書き込もう

とする状態⇒順番に並べる必要性- スヌーププロトコル:ミスのブロードキャストを使って防止- 詳しくは Appendix H

完了しますた!

PU1 PU2 PU3

完了しますた!

ミスの検出通信

インバリデート

完了しますた!

PU1 PU2 PU3

完了しますた!

ミスの検出通信

インバリデート

Page 67: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 68

4.3 対称型共有メモリマルチプロセッサの性能(p.218)スヌープキャッシュコヒーレンスを用いたプロセッサの性

能⇒様々な要素がからんでくる

Appendix C : 3C についての議論- 容量 (Capacity)- 初期参照 (Compulsory)- 競合 (Conflict)

単一プロセッサのキャッシュミストラフィック通信トラフィック

プロセッサの数キャッシュサイズブロックサイズミス率に大きく影響→システム全体の動作に大きく影響

Cache

size

Block size

Page 68: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 69

4.3 対称型共有メモリマルチプロセッサの性能(p.218)プロセッサ間通信におけるコヒーレンスミスの 2 つの要因

- true シェアリングミス:キャッシュコヒーレンスのメカニズムによって生じる- 共有ブロックを write Invalidate⇒ ⇒所有権獲得- 他プロセッサが該当アドレスを読み込もうとする⇒ブロック転送- ブロックサイズとは関係なし

- false シェアリングミス:ブロックあたりの Validビットが 1 つしか存在しないため- Read したい場所ではなく,ブロック内の別の場所が write された故

のミス- ブロックサイズに依存 (1ブロック 1 ワードなら生じないミス )

主記憶メモリ

CPU A

キャッシュ

CPU B

キャッシュ

1. New2. Data

0. Data

3. Data

Read 11. Data2. Data

0. Data

3. Data

主記憶メモリ

CPU A

キャッシュ

CPU B

キャッシュ

1. New2. Data

0. Data

3. Data

Read 21. Data2. Data

0. Data

3. Data

Page 69: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 70

4.3 対称型共有メモリマルチプロセッサの性能(p.219)例題 1. True シェアリングミス

P2 の x1( を含むキャッシュ )の Invalidate

2. False シェアリングミス P2 で x1 は使われていない 本当は不要なミス

3. False シェアリングミス x1 は P2 で使われているわけで

はない

4. False シェアリングミス 関係ないのに Invalidate され

た!

5. True シェアリングミス P1 は P2 の持つ最新の値が必要

主記憶メモリ

P1

キャッシュ

P2

キャッシュx2x1

x2x1

Time P1 P21 Write x12 Read x23 Write x14 Write x25 Read x2

x2x1

x2x1

Page 70: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 71

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーション処理 (p.220)

Alpha Server 4100 ( あるいはそのモデル )- Alpha 21164 , 4 プロセッサ,共有メモリ- 300MHz , 1 クロック 4 命令発行

主記憶メモリ

CPU A

L1 : 8kB32kB のダイレクトマップ命令,データキャッシュ

L2 : 96kBオンチップ 3way セットアソシアティブ

32byte のブロックサイズ,ライトバック方式

L3 : 2MB64byteブロック,ダイレクトマップ,

ライトバック方式

7cycle 21cycle

80cycle

CPU Bミス時キャッシュ間転送 : 125cycle

現代のシステムに比べると転送レイテンシは小さい

現代のシステムはミス率を小さくしてペナルティを許容

Page 71: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 72

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーション処理 (p.220)

今回の調査では 3 つのアプリケーションを使用- TPC-B によってモデル化された OLTP (Oracle 7.3.2)

-負荷

-意思決定システム (DSS) TPC-D に基づく (Oracle 7.3.2)- Xxx

- AltaVista Web インデックス Search- 200GB ,内部ループは徹底的な最適化-静的な検索→スレッド間の同期をほとんど必要としない

ユーザタイム: 15% 85%

クライアントプロセスの集合

リクエストを生成 それを処理するサーバ

Page 72: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 73

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーション処理 (p.221)

AltaVista はチューニングが行われているため,カーネル時間,アイドル時間はほとんどない

CPU 時間測定においては I/O待ち時間は無視される

DSS に関しては複数のベンチマークを測定し結果を平均する

ベンチマーク ユーザ時間 (%) カーネル時間(%)

CPU アイドル時間(%)

OLTP 71 18 11

DSS( 全クエリの平均 )

87 4 9

AltaVista >98 <1 <1

Page 73: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 74

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーションによる性能測定 (p.222)

ベンチマーク

CPI

OLTP 7.0DSS 1.6AltaVista 1.3

メモリ階層の脆弱性

OLTP にはメモリアクセス(特に L3)のアクセスが多く含まれている⇒メモリの脆弱性が影響に出ている : じゃあ具体的にどのように影響している ?

Page 74: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 75

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーションによる性能測定 (p.223) OLTP において

- L3 の容量を変えながら調査

- なぜ L3 が 2- 4MBでは性能が向上しない ?- ミスの要因調査

主記憶メモリ

CPU AL1 : 8kB

L2 : 96kB

L32 ウェイセットアソシアティブ1MB – 8MB ( もともと2MB)

1- 2MBL3 によるキャッ

シュミス減少

2- 8MB性能向上ほとんど無

しIdle 時間増加

Page 75: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 76

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーションによる性能測定 (p.224)

OLTP の 5 つのキャッシュミスの要因

- 容量・初期参照,命令ミスは減少

- True シェアリングミスはキャッシュサイズに影響しない!

ミスの主要因

急激な減少

True シェアリングミスが主要因削減に上限

⇒ではプロセッサ数を増やすと ?

Page 76: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 77

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーションによる性能測定 (p.225)

True シェアリング

ミスが増加

主記憶メモリ

CPU AL1 : 8kB

L2 : 96kB

L32 ウェイセットアソシアティブ

2MB

プロセッサの数を増やす- メモリアクセスサイクル

数の増加- True シェアリングミスが

増加

Page 77: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 78

4.3 対称型共有メモリマルチプロセッサの性能 商用アプリケーションによる性能測定 (p.226)

キャッシュのブロックサイズを変えてみる- 32- 256 バイト

命令ミス率に変化なし

- 空間的局所性が殆どない ?

- 命令とデータの競合の影響- 高い命令ミス率に影響?

True シェアリングミス減少

(Invalidate される前に置き換えられる )

初期参照ミスは減少 容量・競合ミスはわずかに減少

(局所性が強くない )

False シェアリングミスは 2倍に増加

命令ミス率に変化なし

Page 78: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 79

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS の負荷 (p.225)マルチプログラム処理の負荷

- ブロックサイズ,キャッシュサイズを変更して性能測定- Andrew ベンチマークの 2 つの独立したコピー操作

- 8台のプロセッサで 5.24秒- 203 このプロセス生成, 787回のディスク要求- 128MB のメモリ,ページングなし

• ユーザモード• OS モード

ベンチマークのコンパイル

ライブラリ内のオブジェクトファイルのインストール

オブジェクトファイルの削除I/O によるところが大きい

2 のプロセッサしか活用されない

多くの計算量を必要とする

I/O によるところが大きいプロセッサはアイドルになり

がち

⇒負荷全体では実際の処理よりも I/O が中心的

Page 79: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 80

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS の負荷 (p.226)

CPU アイドル- カーネルモード中のアイドルループ

ユーザ実行- ユーザモードでの実効

同期待ち- 実行もしくは同期変数の待ち

カーネル実行- OS がアイドルもしくは同期まちでない

実行

主記憶単一メモリ

CPU

L1  命令キャッシュ32KB , 2ウェイ64 バイトブロック

L2 キャッシュ1MB , 2ウェイセットアソシアティブ

128 バイトブロック

L1  命令キャッシュ32KB , 2ウェイ64 バイトブロック

ディスクシステム

1cyc

le

10cy

cle

100c

ycle

3ms

ユーザ実行

カーネル実行

同期待ち

CPU アイドル

(I/O待ち )

実行命令数の割合 (%) 27 3 1 69

実行時間の割合 (%) 27 7 2 64

Page 80: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 81

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS の負荷 (p.227)

主記憶単一メモリ

CPU

L1  命令キャッシュ32KB , 2ウェイ64 バイトブロック

L2 キャッシュ1MB , 2ウェイセットアソシアティブ

128 バイトブロック

L1  データキャッシュ32KB , 2ウェイ64 バイトブロック

ディスクシステム

命令キャッシュのミス率- ブロックサイズ: 64 バイト- 2ウェイセットアソシアティブ- 1.7%(32KB) → 0.2%(256KB)- OS レベルでのミス率:ユーザレベル

の 6倍- ユーザコード:カーネルコードの 9倍- ユーザ実行時間:カーネルコードの 4倍

32KB↓

256KB

Page 81: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 82

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS負荷性能 (p.227) キャッシュ容量とブロックサイズを変化させる

- ユーザプロセスのコードはカーネルプロセスの 8倍- 全体ではユーザプロセスのミス率が主となる (1/5)xxx

なぜ OS コードがユーザコードよりもミス率が大きい ?• ページを割り当てる前に初期化を行う (初期参照ミス )• 共有データによる無視のできないミス

同時に 2 つのプロセスにスケジュールされない限りユーザプロセスはコヒーレンスミスを起こさない

Page 82: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 83

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS負荷性能 (p.228)データキャッシュサイズ vs. ミス率

- ユーザプロセスの方が減少率が大きいブロックサイズ vs. ミス率

- ユーザプロセス,カーネルプロセスに大きく影響- 初期参照ミスと容量ミスが大部分:ブロックサイズ向上で改善

減少量3倍

減少量1.3倍

どちらのプロセスも大きく

改善

コヒーレンスミスが少ないので

ブロックサイズ増でも影響弱

なぜユーザプロセスとカーネルプロセスが異なる結果を出

す ?

Page 83: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 84

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS負荷性能 (p.229)カーネルプロセスミスの生じる原因

ブロックサイズ増により

初期参照ミス減

キャッシュサイズ増により

容量ミス減

Invalidate 増によりコヒーレンスミス増

ここがユーザプロセスとの違い ?

False シェアリングミスの影響が少ないため, True シェアリングミス減に

より相殺

Page 84: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 85

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS負荷性能 (p.229)データ参照あたりに必要なバイト数

- カーネル:ブロックの増加に応じて急激に上昇- 転送量: 8倍増加- ミス率: 3.7倍軽減 (Figure 4.16右 )

結果的に増えてる!

転送量 8倍ミス率 3.7倍減⇒2倍以上増

ユーザプログラムも同様の傾向

Page 85: コンピュータアーキテクチャ 定量的アプローチ 第4章前半 要約

Page 86

4.3 対称型共有メモリマルチプロセッサの性能 マルチプログラミングと OS負荷性能 (p.229)結論

- OS のメモリに対する要求は厳しい⇒十分対応できるメモリ  システムを作るのは困難- 性能向上のために

- OS がキャッシュ構造をより意識- よいプログラミング環境を利用すること