420 likes | 555 Vues
情報処理系論第 2 回. 1999 年 4 月 16 日. 今日のテーマ. 「コンピュータアーキテクチャ」 目的による違い 用途 速度 何ができるの? コンピュータの構成要素 コンピュータアーキテクチャの比較. コンピュータアーキテクチャを知る. 様々なコンピュータ. 何がちがうのかしら? その 1. 使う目的が違う. ゲーム機 グラフィックが高速 ゲームに特化 PDA ある程度性能を無視して可搬性を向上 コンピュータ 拡張性、汎用性をもった(一般的な)コンピュータ 特定の計算処理に特化したスーパーコンピュータ
E N D
情報処理系論第2回 1999年4月16日
今日のテーマ 「コンピュータアーキテクチャ」 • 目的による違い • 用途 • 速度 • 何ができるの? • コンピュータの構成要素 • コンピュータアーキテクチャの比較
コンピュータアーキテクチャを知る • 様々なコンピュータ
何がちがうのかしら? その1 使う目的が違う • ゲーム機 • グラフィックが高速 • ゲームに特化 • PDA • ある程度性能を無視して可搬性を向上 • コンピュータ • 拡張性、汎用性をもった(一般的な)コンピュータ • 特定の計算処理に特化したスーパーコンピュータ • とにかく早く処理が終わることを目的とした並列コンピュータ
何が違うのかしら? その2 構成要素が違う • ゲーム機 • 高速なグラフィックチップ • 拡張スロット、拡張ベイなどはない • PDA • すべて小型、軽量な構成要素 • PCカード、コンパクトフラッシュカードスロット • コンピュータ • 用途に合わせた能力/個数のCPU • 用途に合わせた周辺機器
様々なコンピュータアーキテクチャ • これから話すアーキテクチャの話 • 科学技術計算やCGで使われるアーキテクチャ • 超たくさんの計算を行なう(レイトレーシング) • 超たくさんの「場合」にチャレンジする(暗号解読) • バンキングシステムで使われるアーキテクチャ • 超たくさんのデータを扱う • アトランタオリンピックで使われたアーキテクチャ • 超たくさんのクリック小僧が同じデータを同時にアクセス • インターネットTVで使われるアーキテクチャ • みんなのPC-AT互換機のアーキテクチャ
*CGで、見えない部分を消す処理のこと レイトレーシングするとき • CGで2時間の映画(Toy Storyみたいな) • 大量の浮動小数点演算(それ以外いらない) • こんな画像を15万枚くらい作る必要がある
どんなアーキテクチャが必要? • 強力な浮動小数点演算能力をもつCPU • 高速なデータバス でも、CPUが一つ以上あってはいけないきまりはないよ!
どんなアーキテクチャが必要? • まずは高速な各CPU! • 大量の1次/2次キャッシュ • スーパースカラ、スーパーパイプライン • 浮動小数点を扱う特別な命令セット • 各CPU内部で命令実行の並列度を高くする • CPUをいくつもならべちゃえ! • マルチプロセッサ型システムアーキテクチャ • 処理を並列化(いくつもの計算を同時に行なう)
CPU高速化技術の話 • スーパースカラ • 複数の命令を並列実行可能にする技術 • 複数の演算ユニットが同時に命令を実行する CPU内の処理の流れ 命令デコーダ 演算 ユニット 演算 ユニット 演算 ユニット 演算 ユニット 演算 ユニット ロード/ストア キュー
AMD K7のブロックダイアグラム 2-way, 64KB Instruction Cache 24-entry L1 TLB/256-entry L2 TLB Predecode Cache Branch Prediction Table Fetch/Decode Control 3-Way x86 Instruction Decoders Instruction Control Unit (72-entry) Integer Scheduler (18-entry) FPU Stack Map / Rename FPU Scheduler (36-entry) IEU AGU IEU AGU IEU AGU FPU Register File (88-entry) Bus Interface Unit L2 Cache Controller FStore FADD MMX 3DNow! FMUL MMX 3DNow! Load / Store Queue Unit 2-way, 64KB Data Cache 32-entry L1 TLB/256-entry L2 TLB L2 SRAMs System Interface
CPU高速化技術の話 • スーパーパイプライン • 各演算ユニットが処理する命令を小さくデコードする。 • プロセッサの高クロック化が容易になる。 Clock フェッチ 3 フェッチ 4 フェッチ 5 フェッチ 6 結果の 格納1 フェッチ 1 フェッチ 2 バスユニット デコード 5 デコード 3 デコード 4 デコード 1 デコード 2 デコードユニット 実行 3 実行 4 実行 1 実行 2 制御ユニット ALU アドレス 3 アドレス 4 アドレス 1 アドレス 2 メモリ管理 ユニット
CPU高速化の話 • 浮動小数点を扱う各社の命令セット • SSE(Intel) KNIとも呼ばれることがある • 4個の倍精度浮動小数点演算を1命令で処理(SIMD:Single Instruction Multiple Data) • SSE命令セット専用のレジスタを設置 • 3DNow!(AMD K6-2/III) • 最大4個の浮動小数点演算を1クロックで処理 • MMXレジスタを共有 • MVI(DEC Alpha) Motion Video Instruction • マルチメディア処理用の命令系統
CPU高速化の話 • 1次キャッシュ/2次キャッシュの大容量化 • メモリバスの高速化 • 入出力バスの高速化
並列コンピュータの話 • 1個のCPUをいくら高速にしても光の限界を超えられない。 • CPUを数十個から数万個結合して並列処理しようぜ!(Massively Parallel Processing)
CPU CPU CPU CPU メモリ メモリ メモリ メモリ 並列コンピュータの話 • 密結合並列システム • 複数のCPUがメモリを共有 • 疎結合並列システム • CPU間でメモリの共有は起こらない CPU CPU CPU 高速ネットワーク バス メモリ 周辺機器
バンキングシステムするとき • コンピュータで客の金を管理 • 銀行間の決済処理 • 信頼性と耐故障性 • 迅速な応答 • 要するにデータベースシステム 管理システム ここが問題!
どんなアーキテクチャが必要? • 高速な応答性をもったアーキテクチャ • ディスクアクセス、メモリアクセス、入出力動作の合計 • CPUの処理時間は↑よりもずっと少ない • 故障に強いアーキテクチャ • 停電、地震、雷、火事その他の天災。ソフトウエアが異常終了など。 • バックアップとなるソフトウエア • バックアップとなるコンピュータ • 他には?
コンピュータの応答時間 • CPUの処理時間と入出力動作時間の合計 • ほとんどが入出力動作時間 • 入出力動作時間を短縮するには • 高速なメモリを大量に利用する。 • 高速な2次記憶装置(HDD、ほげほげドライブ)を利用する。 • 高速なバスを利用する。
バスの話 • CPUとメモリや周辺機器とを結ぶ線 • バスの先には拡張スロットがついている。 • バスの速さとは • データ幅、バスクロック • データ転送速度
PCIバスをもつAT互換機の構成図 KB LAN DPU PCIブリッジ CPU SOUND SCSI ODP RTC メモリ VIDEO バッファ SIO DPU PCIブリッジ DRAM 2MB-128M キャッシュメモリ 64K-512K CPUバス PCIバス ISAバス
メモリの話 • 記憶装置には2種類ある • 電源が切れるとデータがきえてしまう:RAM • 電源が切れてもデータは保持される:ROM
メモリの話(価格) 10万円 5万円 1万円 1998年1月1日 1998年7月1日
長野オリンピックしたとき • 16日間で650,000,000ヒット • 一日あたり40,625,000ヒット • 一分あたり28211ヒット • 一秒あたり470ヒット • 最もアクセスが集中した時は分103429ヒット • 1998年2月20日9時 • 一秒あたり1723ヒット • 女子フィギュア決勝+アイスホッケー準決勝 • 総量4.5tera byteのデータ
どんなアーキテクチャが必要? • 超たくさんのアクセスを同時に処理するためには? • 分散アーキテクチャ • アクセスする人に対して、分散していることを隠蔽するためには? • 透過的アーキテクチャ 長野 透過的な分散 アトランタ
RS6000(model H70) • 1~4のSMP構成(symmetric multiprocessing) • 64bit processor • RS64-II(340Mhz) • システムバス • 1.4GB/s • PCIバス • 独立4系統、8スロット
長野オリンピックでの負荷分散 • WWWサーバは世界数カ所に分散配置 • 各サーバへアクセスを分散する仕組み • 各サーバ間でのコンテンツの整合性の確保 • 各サーバへのアクセスを分散 • 世界各地に設置されたサーバに、全て同じIPアドレスを割り当て、各クライアントは最も近いサーバにアクセスする • コンテンツの整合性の確保 • DFS(Distributed File System)を利用
X.X.X.X X.X.X.X X.X.X.X X.X.X.X 同一のアドレス 各クライアントは、 経路的に最も近い サーバを利用
各サーバ(SP2)内での負荷分散 • Net Dispatch • HTTPのセッションをTCPセッションのレベルで負荷の低いノードを選択してルーティング • 長野で使用されたNP2では、各サーバは30ノードから構成されていた。 HTTP Request Net Dispatch Node1 Node2 Node3 TCP Session Nodes Map Table Nodeの 負荷情報 Noden HTTP Response
今日のまとめ • コンピュータアーキテクチャを理解 • 用途によって適するアーキテクチャが違う • PCの構造を理解(少し) • CPU、メモリ、バス • いろいろな用途に使われるアーキテクチャの具体例
コンピュータアーキテクチャ比較の視点 • CPUの速さ • 整数演算、浮動小数点演算 • メモリの速さ • アクセスタイム、メモリバスの帯域 • 記憶装置の速さ • HDDやほげほげドライブの回転数 • 周辺機器が備える特殊な機能 • DVDやMPEGのデコード • システム構成の違い
アーキテクチャの比較(CPU) • MIPS(million instructions per second) • 1秒あたりの命令実行数を100万個単位で数えたもの • FLOPS(Floating Point Operations per second) • 1秒あたりの浮動小数点演算実行数を数えたもの • SPECint95, SPECfp95 • CPUの整数/浮動小数点演算性能をSun SS10/40を1として相対評価したもの • MHz(MEGA Hertz) • 1秒あたりの(CPUの)クロックサイクル数
CPUの性能(SPECint95) プロセッサの性格、目的、構造などから、クロック サイクル数と性能が比例しないことがわかる。
計算機の性能 プロセッサのクロックサイクル数よりも数によって 性能が異なるのがわかる。 ccz00?とか
アーキテクチャの比較(メモリ) • RAS Latency • アクセスする「列」を指定してからデータ取得可能になるまでのクロック数 • CAS Latency • 指定した「列」の内アクセスするセルを指定してからデータ取得可能になるまでのクロック数
アーキテクチャの比較(HDD) • 回転数 • 1分あたりの円盤の回転数 • 平均シークタイム • 特定のデータを円盤から探すのに要する時間 • インタフェースの転送速度 • ハードディスクからデータを読み出すときの帯域
アーキテクチャの比較(周辺機器) • DVDのデコード • ATI RAGE128(ビデオチップ) • TVチューナカード • TV映像を受信してPCで表示 • ビデオキャプチャカード • NTSC/PAL信号を入力してPCに保存/表示 • CPUの特殊な能力 • Katmai Native Instruction set(Intel PentiumIII) • 3DNow!(AMD K6-2, K6-III)
HDDの性能(回転数) スピンドルモーター アーム
コンピュータアーキテクチャ構成要素 • CPU(中央演算装置) • メモリ • 周辺機器 • 記憶装置(ハードディスク、ほげほげドライブ) • ビデオカード • サウンドカード • その他の入出力デバイス • バス
コンピュータアーキテクチャ構成要素の概念図コンピュータアーキテクチャ構成要素の概念図 1次キャッシュ CPU バス メモリ 2次記憶装置 周辺機器 周辺機器
CPUの中身 • アドレス生成ユニット • 演算ユニット • 加減算 • 乗除算 • 浮動小数点演算 • 1次・2次キャッシュ • レジスタ