220 likes | 339 Views
計算機システム Ⅱ 現代的な計算機アーキテクチャの解説. 和田俊和. 講義計画. コンピュータ の歴史 1 コンピュータ の歴史 2 コンピュータ の歴史 3 論理 回路と記憶,計算:レジスタと ALU 主 記憶装置とALU,レジスタの 制御 命令セットアーキテクチャ 演習 問題 パイプライン処理 メモリ 階層:キャッシュと仮想 記憶 命令 レベル並列 処理 入出力 と周辺 装置 演習問題(問題配布) 演習問題(解答例配布) 現代的 な計算機アーキテクチャの 解説 ( ← 本日 ) 演習問題 試験
E N D
計算機システムⅡ現代的な計算機アーキテクチャの解説計算機システムⅡ現代的な計算機アーキテクチャの解説 和田俊和
講義計画 • コンピュータの歴史1 • コンピュータの歴史2 • コンピュータの歴史3 • 論理回路と記憶,計算:レジスタとALU • 主記憶装置とALU,レジスタの制御 • 命令セットアーキテクチャ • 演習問題 • パイプライン処理 • メモリ階層:キャッシュと仮想記憶 • 命令レベル並列処理 • 入出力と周辺装置 • 演習問題(問題配布) • 演習問題(解答例配布) • 現代的な計算機アーキテクチャの解説(←本日) • 演習問題 • 試験 • 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社 • 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.
本日の講義の範囲 • 並列コンピュータ • SMP(UMA)とNUMA • MIMDとSIMD • 並列コンピュータのキャッシュ • スヌープキャッシュ • 投機的実行 • 分岐予測 • 積極的実行 • その他
ムーアの法則 • 集積回路上のトランジスタの数は18ヶ月で倍になる.2019年あたりまで継続すると考えられている. • コンピュータの速度上昇には別の制限がある. • 単位面積当たりの発熱制限が厳しくなり,クロックが上げられない. • 並列化による速度向上しか方法はない.
マルチコア キャッシュメモリ キャッシュメモリ キャッシュメモリ キャッシュメモリ キャッシュメモリ
SMPと NUMA • SMP(Symmetric Multi Processor)全コアから共通にメモリアクセスが行える必要があり,フロントサイドバスが混む.UMAとも呼ぶ. • NUMA(Non-Uniform Memory Architecture)複数のコアとメモリを持つノードがクロスバースイッチにより相互接続されている.
NUMA詳細 • 一つのノードはSMPと考えて良い. • 全てのメモリにアクセスできるが,他のノードのメモリにアクセスする際は遅くなる. • メモリ番地によるアクセス速度の違いを考慮したソフトウエア設計が必要 • Intel: Itanium, Nahalem系統(Xeron, Corei5,7,etc) • AMD: Opteron
命令とデータの関係から見た並列コンピュータ命令とデータの関係から見た並列コンピュータ • MIMD: Multi Instruction Multi Data 個々のCPUが実行する命令を別々に用意し,多数のデータに対して演算を適用する.→分散メモリ形計算機 • SIMD: Single Instruction Multi Data CPUが一つの命令を読み,複数の演算器を動作させて,複数のデータに対して処理を行う.→GPU, MMX(SSE)
メモリ共有型並列計算機で起きること • CPU1がアドレス1の内容を読み出す→CPU1のキャッシュへのコピーが起きる. • CPU2もアドレス1の内容を読み出す→CPU2のキャッシュへのコピーが起きる. • CPU1がアドレス1の内容を変更するためにキャッシュを書き換えた.(Write backであると仮定する.) • CPU2には,元のアドレス1の内容がコピーされたキャッシュが残っている.どうするか... キャッシュの一貫性(キャッシュコヒーレンシー)が崩れる.
キャッシュメモリ間で協議させる. • スヌープ方式 • 無効型プロトコル:あるキャッシュが更新を行うとき,「そのアドレスはダーティである」として参照中の全キャッシュの該当ラインを無効化するように依頼する. • 更新型プロトコル :他が参照しているときにデータ更新を行うときはライトスルー型となり,単独でアクセスしている場合はライトバック型となるような制御を行う
その他の方式 • ディレクトリ方式 (Directory-based Protocol) メモリの一貫性をディレクトリと呼ぶ専用領域にて一元管理する方式.分散メモリ型システムに適している. • 共有キャッシュ (Shared Cache) 1つのキャッシュに対し複数のCPUが参照できるような構成を持つキャッシュ.キャッシュ自体の構造が非常に複雑となり,多くのCPUを接続することは困難.
PCクラスタ • 数十から数百台のPCを相互に結合して1つの計算を行うBeowolf (PVC, MPIなどの並列計算ライブラリ)などがよく使われる. • Hadoop:データが他のノードにある場合の参照に時間がかかってしまう→タプル(組み)で,データを管理する:<key,値> Map Shuffle Reduce
投機的実行の分類 • 分岐予測 • これまでの講義で述べた方法 • 積極的実行 • 計算機資源がある限り,分岐先を両方とも実行する
どんな計算機が速いのか? 整数演算で速かったもの 浮動小数点で速かったもの
CPUの性能評価 • SPEC社が実施しているベンチマーク http://www.spec.org/cpu2006/results/ • SPECint2006 単一ジョブ • SPECfp2006 単一ジョブ • SPECint_rate2006 複数ジョブ • SPECfp_rate2006 複数ジョブ これらの結果は,日々更新されており,各PCメーカがしのぎを削っている.
ARMの場合 • ARMの場合は,MIPS (Mega Instruction Per Second)で計測される(基本設計が同じなので,これで評価できる.) • マルチコア化も進んでいる. • 携帯機器向けなので,消費電力も重要な評価要素になる. • 浮動小数点演算は外付けのFPUで.ベクトル(SIMD)化も行われている. • Qualcom社の実装が評価され,ARMCPU市場の大部分を同社が抑えている. • 同社snapdragonでは,GPUの組み込み,コア毎のクロック制御,HDビデオのデコード機能の搭載,SIMDが128bit化されており,理論上は,他社製品よりも倍の性能が出る設計.