情報処理系論第2回 1999年4月16日
今日のテーマ 「コンピュータアーキテクチャ」 目的による違い コンピュータの構成要素 コンピュータアーキテクチャの比較 用途 速度 何ができるの? コンピュータの構成要素 コンピュータアーキテクチャの比較
コンピュータアーキテクチャを知る 様々なコンピュータ
使う目的が違う 何がちがうのかしら? その1 ゲーム機 PDA コンピュータ グラフィックが高速 ゲームに特化 何がちがうのかしら? その1 使う目的が違う ゲーム機 グラフィックが高速 ゲームに特化 PDA ある程度性能を無視して可搬性を向上 コンピュータ 拡張性、汎用性をもった(一般的な)コンピュータ 特定の計算処理に特化したスーパーコンピュータ とにかく早く処理が終わることを目的とした並列コンピュータ
構成要素が違う 何が違うのかしら? その2 ゲーム機 PDA コンピュータ 高速なグラフィックチップ 拡張スロット、拡張ベイなどはない 何が違うのかしら? その2 構成要素が違う ゲーム機 高速なグラフィックチップ 拡張スロット、拡張ベイなどはない PDA すべて小型、軽量な構成要素 PCカード、コンパクトフラッシュカードスロット コンピュータ 用途に合わせた能力/個数のCPU 用途に合わせた周辺機器
様々なコンピュータアーキテクチャ これから話すアーキテクチャの話 科学技術計算やCGで使われるアーキテクチャ 超たくさんの計算を行なう(レイトレーシング) 超たくさんの「場合」にチャレンジする(暗号解読) バンキングシステムで使われるアーキテクチャ 超たくさんのデータを扱う アトランタオリンピックで使われたアーキテクチャ 超たくさんのクリック小僧が同じデータを同時にアクセス インターネットTVで使われるアーキテクチャ みんなのPC-AT互換機のアーキテクチャ
レイトレーシングするとき CGで2時間の映画(Toy Storyみたいな) 大量の浮動小数点演算(それ以外いらない) こんな画像を15万枚くらい作る必要がある
どんなアーキテクチャが必要? 強力な浮動小数点演算能力をもつCPU 高速なデータバス でも、CPUが一つ以上あってはいけないきまりはないよ!
どんなアーキテクチャが必要? まずは高速な各CPU! CPUをいくつもならべちゃえ! 大量の1次/2次キャッシュ スーパースカラ、スーパーパイプライン 浮動小数点を扱う特別な命令セット 各CPU内部で命令実行の並列度を高くする CPUをいくつもならべちゃえ! マルチプロセッサ型システムアーキテクチャ 処理を並列化(いくつもの計算を同時に行なう)
CPU高速化技術の話 スーパースカラ 複数の命令を並列実行可能にする技術 複数の演算ユニットが同時に命令を実行する CPU内の処理の流れ 命令デコーダ 演算 ユニット 演算 ユニット 演算 ユニット 演算 ユニット 演算 ユニット ロード/ストア キュー
AMD K7のブロックダイアグラム Load / Store Queue Unit System Interface L2 SRAMs 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 System Interface L2 SRAMs
CPU高速化技術の話 スーパーパイプライン 各演算ユニットが処理する命令を小さくデコードする。 プロセッサの高クロック化が容易になる。 Clock フェッチ 1 フェッチ 2 フェッチ 3 フェッチ 4 結果の 格納1 フェッチ 5 フェッチ 6 バスユニット デコード 1 デコード 2 デコード 3 デコード 4 デコード 5 デコードユニット 制御ユニット ALU 実行 1 実行 2 実行 3 実行 4 メモリ管理 ユニット アドレス 1 アドレス 2 アドレス 3 アドレス 4
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の処理時間と入出力動作時間の合計 入出力動作時間を短縮するには ほとんどが入出力動作時間 高速なメモリを大量に利用する。 高速な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ヒット 最もアクセスが集中した時は分103429ヒット 一日あたり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の構造を理解(少し) いろいろな用途に使われるアーキテクチャの具体例 用途によって適するアーキテクチャが違う PCの構造を理解(少し) CPU、メモリ、バス いろいろな用途に使われるアーキテクチャの具体例
第2回 おわり
コンピュータアーキテクチャ 比較の視点 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 アクセスする「列」を指定してからデータ取得可能になるまでのクロック数 CAS Latency 指定した「列」の内アクセスするセルを指定してからデータ取得可能になるまでのクロック数
アーキテクチャの比較(HDD) 回転数 平均シークタイム インタフェースの転送速度 1分あたりの円盤の回転数 特定のデータを円盤から探すのに要する時間 インタフェースの転送速度 ハードディスクからデータを読み出すときの帯域
アーキテクチャの比較(周辺機器) DVDのデコード TVチューナカード ビデオキャプチャカード CPUの特殊な能力 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次キャッシュ レジスタ