8.プロセッサと周辺装置のインターフェース

計算機アーキテクチャー Computer Architecture
8.プロセッサと周辺装置のインターフェース
コンパイラ
・バス:プロセッサとメモリ
への入出力装置の接続
インタフェース
コンピュータ
制 御
入 力
記 憶
データ
パ ス
プロセッサ
出 力
1
計算機アーキテクチャー Computer Architecture
2
代表的な入出力装置
プロセッサ
割込み
キャッシュ
メモリー入出力間バス
主記憶
入出力
コントローラ
入出力
コントローラ
ディスク ディスク
装置 装置
グラフィク
出力
入出力
コントローラ
ネットワーク
計算機アーキテクチャー Computer Architecture
プロセッサバス
バス
・ 1組の制御線と1組のデータ線で構成される。
(制御線:入出力リクエストとそれに対する応答信号の送信)
・ サブシステムが共有する通信リンク。
・ メモリとプロセッサ間、プロセッサと入出力装置間等の通信は
このバスを介して行われる。
利点
・ 融通性が高い
・ 低コスト
欠点
・ 通信のボトルネックになって、入出力スループットの最大値が
制約される場合がある。
(バスのバンド幅が入出力スループットの上限を決定)
3
計算機アーキテクチャー Computer Architecture
4
バス・トランザクション
バス・トランザクション (bus transaction)
・ バスを通じての一連の処理。
・ アドレスの送出と、それに続くデータの送信または受信から成る。
入力操作 (ディスクから主記憶へ)
(1)プロセッサは、制御線を介して書込みリクエストを主記憶へ送り、
データ線を介して、アドレスを主記憶へ送る。
制御線
主記憶
データ線
ディスク装置
プロセッサ
(2)主記憶は準備が整うとディスク装置に信号を送り、ディスク装置がデータを
主記憶に転送する。
制御線
主記憶
データ線
ディスク装置
プロセッサ
計算機アーキテクチャー Computer Architecture
5
バス・トランザクション
出力操作 (主記憶からディスクへ)
(1)プロセッサは、制御線を介して読出しリクエストを主記憶へ送り、
データ線を介して、アドレスを主記憶へ送る。
制御線
主記憶
データ線
ディスク装置
プロセッサ
(2)主記憶はデータを読み出す。
制御線
主記憶
データ線
ディスク装置
プロセッサ
(3)主記憶はデータ線を介してデータをディスク装置に送り、制御線を通して、
データが利用可能であることをプロセッサに送る。
制御線
主記憶
データ線
ディスク装置
プロセッサ
計算機アーキテクチャー Computer Architecture
バスの種類
6
プロセッサ−主記憶間バス (processor-mimory bus):
・ 短距離
・ 高速。
・ マシンごとに固有設計
入出力バス (I/O bus):
・ 長距離。
・ 接続される装置のバンド幅が広範囲にまたがることが多い。
・ 直接主記憶にインタフェースされることは稀。
・ 標準バスとして、さまざまなマシンで使用されることが多い。
バックプレーン・バス (backplane bus):
・ プロセッサ、主記憶、入出力装置が単一バス上で共存できるように考案。
・ プロセッサ−主記憶間通信と入出力装置−主記憶間通信の要求の
バランスをとる働きをもつ。
・ 標準バスとして、さまざまなマシンで使用されることが多い。
計算機アーキテクチャー Computer Architecture
7
バスの種類
(1)
バックプレーン・バス
プロセッサ
主記憶
(2)
プロセッサ−主記憶間バス
プロセッサ
バス・アダプタ
入出力
バス
主記憶
バス・アダプタ
入出力
バス
(3)
プロセッサ−主記憶間バス
プロセッサ
バス・アダプタ
バックプレーン・
バス
バス・アダプタ
バス・アダプタ
入出バス
主記憶
計算機アーキテクチャー Computer Architecture
同期式バス
同期式 (synchronous):
・ 制御線の中にクロック線が組込まれ、クロックを基準とした固定的な
通信プロトコルが使用される。
・ プロセッサ−主記憶間バスに適用されることが多い。
利点
・ プロトコルがあらかじめ定められており、論理も簡単なので、
高速化可能。
欠点
・ 同じバスに接続される装置は同じクロック周波数で動作する必要有り
・ 高速な同期式バスでは、クロック・スキューの問題が発生するため、
バス長を長く出来ない。
8
計算機アーキテクチャー Computer Architecture
非同期式バス
非同期式 (synchronous):
・ クロックが組込まれない。
・ プロセッサ−主記憶間バスに適用されることが多い。
・ ハンドシェーク型プロトコルを使用する。
利点
・ 多種多様な装置に対応可能。
・ クロック・スキューや同期を取る問題に煩わされる事なく、バス長を
を延ばすことができる。
欠点
・ 遅い。
ハンドシェーク型プロトコル データの送り手と受け手の間で一連の手順を踏んで連絡を行い、
両者が合意した時のみ次のステップに進む。
9
計算機アーキテクチャー Computer Architecture
バスのバンド幅の拡大
1.データ・バスの幅
・ 複数語転送に必要なバスのサイクル数が少なくなる
2.アドレス線とデータ線の分離/多重化
・ 分離すれば、アドレスとデータを同じバス・サイクルで転送可能
3.ブロック転送
・ 1回のリクエストに応じて、アドレスの最送出やバスの解法をせずに、
複数語を転送。
・ 大きなブロックの転送時間短縮
コスト
・ バス線の増加
・ 複雑化
・ リクエストへの応答時間の増大(大きなブロック転送時の待ち)
10
計算機アーキテクチャー Computer Architecture
バスへのアクセス権の獲得方法
11
通信を欲する入出力装置がどのようにバスを予約するのか
バス・マスター
・ バスへのアクセス制御装置
・ 全てのバス・リクエストを起動および制御
例: プロセッサ=バス・マスター、主記憶=スレーブ
・ バス・マスターが複数ある場合は調停が必要
バスの調停 (bus arbitration)
・ どのバス・マスターが次にバスを使用するかを決定する操作
(バスを使用したい装置が調停回路にリクエスト信号を出し、許可を得る。
許可を得たらバスを使用し、終わったら必要が無くなった旨を調停回路に送る)
・ 各入出力装置にバス優先順位を付け、高い順にサービスを提供
・ バスを使用したい装置に、最終的にはバスが割り当てられる様に保証(公平さ)
計算機アーキテクチャー Computer Architecture
バスの調停機構
12
デイジーチェイン方式 :
・ bus grant(許可)線が優先順位の高い装置から低い装置へ芋づる式に接続。
・ バス権を要求した優先順位の高い装置は、下位の装置へのbus grant線を
引き下げ、信号が中継されないようにする。
△ 公平さを保証できない。
集中並列方式: PCI(標準規格のバックプレーン・バス)で採用
・ 複数のbus request線を使用して、各装置が独立にバスの使用権を要求
・ 調停回路は許可を与える装置を選択し、その装置にバス・マスターになった旨を通知
△ 調停回路がバス使用上のボトルネックとなる可能性がある。
分散型自己判定方式: NuBus(Apple MacintoshⅡのバックプレーン・バス)で採用
・ 複数のbus request線を使用して、使用権を要求している各装置自らが次に使用する
装置を決定する。
・ バスを使用しようとする各装置は、バス上に自分の識別コードを送り、
各装置はバス上の識別コードを調べて、優先順位の最も高い装置を判定。
△ 多くのbus request用の信号線が必要
分散型衝突検出方式: Ethernet
・ 各装置が必要に応じて独自にバスの使用を開始。
・ 衝突が検出されると、その中からどれかを選択する機構が働く。
計算機アーキテクチャー Computer Architecture
13
代表的なバス規格
特性
PCI
SCSI
バックプレーン
入出力
基本データ・バス幅(信号)
32∼64
8∼32
アドレス線とデータ線の多重化
多重化
多重化
複数
複数
集中並列方式
自己判定
クロック方式
同期式(33∼66MHz)
非同期式/同期式(5∼10MHz)
理論上のピーク・バンド幅
133∼512Mバイト/秒
5∼40Mバイト/秒
80Mバイト/秒
2.5∼40Mバイト/秒(同期式)
1.5Mバイト/秒(非同期式)
装置の最大数
1024(複数のバス・セグメント
を使用、各セグメントには
最大32装置)
7∼31(バス幅−1)
バスの最大長
0.5メートル
25メートル
PCI
ANSI X3.131
バスのタイプ
バス・マスター数
調停方式
基本バスの達成可能な
バンド幅(推測値)
規格の名称
計算機アーキテクチャー Computer Architecture
14
9.並列プロセッサ
単一チップのプロセッサ上で時分割の負荷
を処理しきれない場合、高性能な単一
チップの単体プロセッサを作成するよりも、
単一チップの単体プロセッサ多数で構成
されるマルチプロセッサの方が効率が良い
コンパイラ
インタフェース
コンピュータ
制 御
入 力
記 憶
データ
パ ス
プロセッサ
プロセッサ
出 力
計算機アーキテクチャー Computer Architecture
マルチプロセッサ設計の鍵
15
¾ 並列プロセッサ間でどのようにデータを共有するか。
− 単一アドレス空間(共有記憶型プロセッサ)
・均等型メモリ・アクセス(UMA)マルチプロセッサ
または対称型マルチプロセッサ(SMP)
・非均等型メモリ・アクセス(NUMA)マルチプロセッサ
− メッセージ交換(私有記憶型プロセッサ)
¾ 並列動作しているプロセッサ間の調整はどのように行うか。
¾ プロセッサをいくつ組み込むか。
UMA:uniform memory access
SMP:symmetric multiprocessor
NUMA:non-uniform memory access
計算機アーキテクチャー Computer Architecture
16
マルチプロセッサの物理的接続方式
単一バス方式のマルチプロセッサ
ネットワーク結合のマルチプロセッサ
プロセッサ
プロセッサ
・・・
プロセッサ
プロセッサ
プロセッサ
・・・
プロセッサ
キャッシュ
キャッシュ
・・・
キャッシュ
キャッシュ
キャッシュ
・・・
キャッシュ
主記憶
主記憶
・・・
主記憶
単一バス
ネットワーク
主記憶
入出力
計算機アーキテクチャー Computer Architecture
単一バス方式のマルチプロセッサ
¾ 個々のマイクロプロセッサは複数チップからなる1台のプロセッサ
¾ よりはるかに小さいので、バスを短くできる。
¾ キャッシュの使用により、バス・トラヒックを軽減できる。
¾ キャッシュと主記憶との一貫性を保つ機構が考案されている。
プロセッサ
プロセッサ
・・・
プロセッサ
キャッシュ
キャッシュ
・・・
キャッシュ
同一データのコピー
を複数のキャッシュ
に配置する必要あり
単一バス
主記憶
入出力
17
計算機アーキテクチャー Computer Architecture
18
キャッシュ・コヒーレンシ
スヌープ方式
・ 全てのキャッシュ・コントローラがバスを監視し、自分のキャッシュ
に保持されているデータが共有ブロックのコピーかどうかチェック。
・ バス上にアクセス要求が流れるごとにアドレス・タグをチェック。
⇒ キャッシュのアドレス・タグ部を二重化し、スヌープ用の
読出しポートを別に設ける。
プロセッサ
スヌープ・
タグ
キャッシュ・タグ
およびデータ
プロセッサ
スヌープ・
タグ
キャッシュ・タグ
およびデータ
・・・
・・・
プロセッサ
スヌープ・
タグ
キャッシュ・タグ
およびデータ
単一バス
主記憶
入出力
計算機アーキテクチャー Computer Architecture
キャッシュ・コヒーレンシ
19
キャッシュ・コヒーレンシの維持には・・・
・ 書込み時、プロセッサは排他的にアクセスできなければならない。
・ データ・オブジェクト読出し時、プロセッサが最新のコピーを得る必要有り。
⇒ 書込みが行われた後、全てのプロセッサは該当データの新しい値を入手要。
⇒ 書込まれるデータ・オブジェクトを共有するのは、どのキャッシュか把握要。
キャッシュ・ブロック中の状態ビットをスヌープ方式用に拡張しバス上の動きを
監視するために使用。
読出しミス発生時
全てのキャッシュは要求されたデータ・ブロックのコピーが自分の所に
保持されているか否かをチエックし、保持されていれば適切は措置を行う。
書込みミス発生時
全てのキャッシュは要求されたデータ・ブロックのコピーが保持されているか
否かをチエックし、無効あるいは新しい値への更新をいう措置をとる。
計算機アーキテクチャー Computer Architecture
スヌープ方式のプロトコル(書込み対処法)
ライト・インバリデート (該当データ以外のコピーを無効にする)
あるプロセッサがデータを書き込む場合、
① 自分の所のデータを更新前に、無効化要求信号をバスに流す。
② 他の全てのキャッシュは、自分の所に該当データのコピーを保持している
か否かをチェックし、保持している場合はそのブロックを無効にする。
利点 バスのバンド幅に対する需要削減
(最初の書込み時に他のコピーを無効化する時のみバスを使用)
ライト・アップデート/ライト・ブロードキャスト
(共有される全コピーを新しく書き込まれる値で更新する)
あるプロセッサがデータを書き込む場合、
① 書込みをい行ったプロセッサからバスを通して、新データを他のキャッシュ
にブロードキャスト。
② 他の全てのキャッシュは、該当データの各コピーを新しい値で更新。
利点 レイテンシ削減 (新しい値がキャッシュ中で直ちに利用可能)
20
計算機アーキテクチャー Computer Architecture
コヒーレンシ制御を用いた同期
21
共通タスクに関与している複数プロセッサ間の協調動作=同期
・ ロック変数(セマフォ)を使用 [0:ロック解除状態、1:ロック状態]
課題:
9 ロックを獲得するプロセッサの決定機構
9 変数をロックする命令の実現
ライト・インバリデート方式
不可分なスワップ命令を実行できる構成の場合のロック機構
a.1回のバス操作の中で、主記憶のあるアロケーションに対し、
読出しとロック値の書込みが同時に実行可能
b.この命令実行中は、他のプロセッサまたは入出力装置による
主記憶の読み書きはスワップ命令が完了するまで禁止
① 最初にロック変数を読出し状態を判定、ロックが解除されるまで、繰り返す。
(スピン待機)
② ロック変数値が0になったのを知ったプロセッサは1を書込み(スワップ命令)
ロック以降のコード部分を実行。
③ 抜け出る時にロックに0を書き込む。(ロック競合状態)
計算機アーキテクチャー Computer Architecture
並列コンピュータの例(1)
科学技術計算向けサーバ SR8000
22
計算機アーキテクチャー Computer Architecture
並列コンピュータの例
● 高性能RISCマイクロプロセッサ
最先端のゲート長0.14μmCMOSテクノロジーを採用。
1) 64ビットアドレッシング
2) 高演算性能、高メモリースループット
3) 高信頼性
● 擬似ベクトル処理機構
後続命令を止めることなく、メモリーからデータをパイプライン的に
取り込むこと機構。ベクトル型スーパーコンピュータと同様に、メモ
リー上の大規模データを演算器へ高速に供給。
● 協調型マイクロプロセッサ機構
ノードを構成する複数のマイクロプロセッサを一斉にしかも高速に
起動させる機構。要素並列処理においてベクトルプロセッサと同
等の高速性を実現するとともに、より広範囲な並列処理による実
効性能を向上。
23
計算機アーキテクチャー Computer Architecture
24
並列コンピュータ用CPUの例
特徴
浮動小数点演算器
レジスタファイル
診断ユニット
レジスタ
ファイル 演算制御
アドレス
加算器
アドレス
キャッシュ
シノニムRAM
データキャッシュ
ル
ー
ロ
ト
ン
コ
ュ
シ
ッ
ャ
キ
整数演算器
レジスタファイル
データキャッシュ
命令ユニット
分岐
キャッシュ
アドレス
キャッシュ
分岐予測
ユニット
- 64bitアドレッシング
- 4wayスーパースカラー
- 4wayセットアソシアティブ
キャッシュ:
命令キャッシュ 64KB
データキャッシュ 128KB
命令キャッシュ
命令キャッシュ
データキャッシュ
メモリインターフェイス
- 0.14um CMOS
- クロック周波数: 450MHz
計算機アーキテクチャー Computer Architecture
並列コンピュータの例
25
計算機アーキテクチャー Computer Architecture
並列コンピュータの例
大規模解析はシステム性能をフルに活用して高速実行
(大規模ベクトル演算処理サーバとして使用)
複数の解析を同時に多重実行
(複数ミニスーパーコンピュータとして使用)
26
計算機アーキテクチャー Computer Architecture
並列コンピュータの例
● 多次元クロスバネットワーク
多数のノード間を相互に接続するネットワークは、並列処理の
キーテクノロジー。ノード数の増加に伴い、そのシステム性能を
維持するためには、高速ノード間ネットワークが必要。
「多次元クロスバネットワーク」により、小規模システムから大
規模システムまで高いシステム性能を実現。
● スケーラビリティ
理論ピーク性能32GFLOPS(4ノード、32CPU)から
7,372GFLOPS(512ノード、4096CPU)まで、230倍の性能レ
ンジをもつスケーラビリティを実現。
27
計算機アーキテクチャー Computer Architecture
28
並列コンピュータの例
ノード数
4
8
16
32
64
128
256
512
32
64
128
256
512
1,024
-
-
SR8000モデルE1
38.4
76.8
153.6
307.2
614.4
1,228.8
2,457.6
4,915.2
SR8000モデルF1
48
96
192
384
768
1,536
3,072
6,144
SR8000モデルG1
57.6
115.2
230.4
460.8
921.6
1,843.2
3,686.4
7,372.8
SR8000
1次元クロス
バ
2次元クロスバ
3次元クロスバ
-
-
SR8000モデルE1/F1/G1
1次元クロス
バ
2次元クロスバ
SR8000
理論ピーク性能
(GFLOPS)
ノード間ネットワーク
システム
SR8000
ノード間転送速度
最大総メモリー容量
(GB)
外部接続インタフェース
3次元クロスバ
最大 1GB/秒(単方向)×2
SR8000モデルE1
最大 1.2GB/秒(単方向)×2
SR8000モデルF1
最大 1GB/秒(単方向)×2
SR8000モデルG1
最大 1.6GB/秒(単方向)×2
-
-
SR8000
32
64
128
256
512
1,024
-
-
SR8000モデルE1/F1/G1
64
128
256
512
1,024
2,048
4,096
8,192
Ultra SCSI, Ethernet/Fast Ethernet, Gigabit Ethernet, ATM, HIPPI, Fibre Channel
計算機アーキテクチャー Computer Architecture
2002/12/6 円周率計算の世界記録を更新
スーパーコンピュータシステム「HITACHI SR8000/MPP」を用いて、東京大
学 情報基盤センタースーパーコンピューティング研究部門 金田康正教授
が、円周率計算の桁数で約1兆2,400億桁の世界記録を樹立しました。
今回の円周率計算においては、新たに共同開発した分割有理数化法
(DRM法)*1 という計算アルゴリズムを用い、金田教授が1999年9月にスー
パーテクニカルサーバ「HITACHI SR8000」(128ノード、1TFLOPS*2)を用い
て樹立した約2,061億桁の円周率計算世界記録の約6倍と、初めて1兆桁を
超える桁数を達成しました。
*1) 分割有理数化法(DRM法):Divide and Rationalize Method.、情報処理学会
論文誌 第41巻 第6号(2002年6月) P.1,811∼1,819「級数に基づく多数計算の演
算量削減を実現する分割有理数化法」(後 保範、金田康正、高橋大介)にて発表
*2) TFLOPS:Tera FLoating Operations Per Second、1秒当たり、1兆回の64ビット
浮動小数点演算を行う性能
29
計算機アーキテクチャー Computer Architecture
スーパーコンピュータの動向
30
http://www.top500.org/
計算機アーキテクチャー Computer Architecture
地球シミュレータ
31
http://www.es.jamstec.go.jp/
・640台の計算ノード(PN: Processor Node)を、640×640の単段
クロスバネットワークで結合させた分散メモリ型並列計算機
・各PNは、ピーク性能8Gflopsのベクトル型計算プロセッサ(AP:
Arithmetic Processor)8台が主記憶装置16GBを共有
・全体ではAPが5120台でピーク性能は40Tflops、主記憶容量は
10TB
計算機アーキテクチャー Computer Architecture
32
計算機アーキテクチャー Computer Architecture
33
計算機アーキテクチャー
1章:コンピュータの構成とテクノロジ(5つの構成要素、半導体、コスト)
コンパイラ
2章:性能の評価
(CPU時間、CPI)
3章:命令
(MIPS命令セット)
インターフェース
コンピュータ
制御
記憶
4章:算術論理演算
(符号付整数、ALU)
入力
5章:データパスと制御
6章:パイプライン
(ストール、フォワーディンク)
9章:並列プロセッサ
(SMP)
データパス
プロセッサ
7章:
記憶階層
(キャッシュ、
仮想記憶)
8章:
(バス)
出力
計算機アーキテクチャー Computer Architecture
期末試験と成績の評価について
・日時:
・場所:
日時と場所は、工学事務課で確認のこと。
・試験時間:60分。筆記用具以外、持込不可。
・出題範囲:本授業の内容。
・成績の評価方法:講義出席、講義中の演習などの
平常点と期末試験で評価を行う。(シラバスのとおり)
34