Comments
Description
Transcript
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