22
計計計計計計計計計計計計計計計計計計計計計計計計 計計計計

計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

Embed Size (px)

DESCRIPTION

計算機システム Ⅱ 現代的な計算機アーキテクチャの解説. 和田俊和. 講義計画. コンピュータ の歴史 1 コンピュータ の歴史 2  コンピュータ の歴史 3  論理 回路と記憶,計算:レジスタと ALU 主 記憶装置とALU,レジスタの 制御 命令セットアーキテクチャ 演習 問題 パイプライン処理 メモリ 階層:キャッシュと仮想 記憶 命令 レベル並列 処理 入出力 と周辺 装置 演習問題(問題配布) 演習問題(解答例配布) 現代的 な計算機アーキテクチャの 解説 ( ← 本日 ) 演習問題 試験 - PowerPoint PPT Presentation

Citation preview

Page 1: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

計算機システムⅡ現代的な計算機アーキテクチャの解説

和田俊和

Page 2: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

講義計画1. コンピュータの歴史12. コンピュータの歴史2 3. コンピュータの歴史3 4. 論理回路と記憶,計算:レジスタとALU5. 主記憶装置とALU,レジスタの制御6. 命令セットアーキテクチャ7. 演習問題8. パイプライン処理9. メモリ階層:キャッシュと仮想記憶10. 命令レベル並列処理11. 入出力と周辺装置12. 演習問題(問題配布)13. 演習問題(解答例配布)14. 現代的な計算機アーキテクチャの解説(←本日)15. 演習問題16. 試験

• 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社

• 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

Page 3: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

本日の講義の範囲

• 並列コンピュータ– SMP(UMA) と NUMA– MIMD と SIMD

• 並列コンピュータのキャッシュ– スヌープキャッシュ

• 投機的実行– 分岐予測– 積極的実行

• その他

Page 4: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

1 並列コンピュータ

Page 5: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

ムーアの法則• 集積回路上のトランジスタの数は18ヶ月で倍になる.

2019年あたりまで継続すると考えられている.• コンピュータの速

度上昇には別の制限がある.

• 単位面積当たりの発熱制限が厳しくなり,クロックが上げられない.

• 並列化による速度向上しか方法はない.

Page 6: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

マルチコア

キャッシュメモリ キャッシュメモリ

キャッシュメモリ

キャッシュメモリ

キャッシュメモリ

Page 7: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

SMP と NUMA

• SMP ( Symmetric Multi Processor )全コアから共通にメモリアクセスが行える必要があり,フロントサイドバスが混む. UMA とも呼ぶ.

• NUMA ( Non-Uniform Memory Architecture )複数のコアとメモリを持つノードがクロスバースイッチにより相互接続されている.

Page 8: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

NUMA 詳細• 一つのノードは SMP と考えて良い.• 全てのメモリにアクセスできるが,他のノード

のメモリにアクセスする際は遅くなる.• メモリ番地によるア

クセス速度の違いを考慮したソフトウエア設計が必要

• Intel: Itanium, Nahalem系統( Xeron, Corei5,7,etc )

• AMD: Opteron

Page 9: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

命令とデータの関係から見た並列コンピュータ

• MIMD: Multi Instruction Multi Data個々の CPU が実行する命令を別々に用意し,多数のデータに対して演算を適用する.→分散メモリ形計算機

• SIMD: Single Instruction Multi DataCPU が一つの命令を読み,複数の演算器を動作させて,複数のデータに対して処理を行う.→ GPU, MMX(SSE)

Page 10: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

並列計算機用キャッシュ

Page 11: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

メモリ共有型並列計算機で起きること

• CPU1 がアドレス1の内容を読み出す→ CPU 1のキャッシュへのコピーが起きる.

• CPU 2もアドレス1の内容を読み出す→ CPU2 のキャッシュへのコピーが起きる.

• CPU 1がアドレス1の内容を変更するためにキャッシュを書き換えた.( Write back であると仮定する.)

• CPU2 には,元のアドレス1の内容がコピーされたキャッシュが残っている.どうするか...

キャッシュの一貫性(キャッシュコヒーレンシー)が崩れる.

Page 12: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

キャッシュメモリ間で協議させる.

• スヌープ方式– 無効型プロトコル:あるキャッシュが更新を行う

とき,「そのアドレスはダーティである」として参照中の全キャッシュの該当ラインを無効化するように依頼する.

– 更新型プロトコル :他が参照しているときにデータ更新を行うときはライトスルー型となり,単独でアクセスしている場合はライトバック型となるような制御を行う

Page 13: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

その他の方式• ディレクトリ方式 (Directory-based Protocol)

メモリの一貫性をディレクトリと呼ぶ専用領域にて一元管理する方式.分散メモリ型システムに適している.

• 共有キャッシュ (Shared Cache) 1 つのキャッシュに対し複数の CPU が参照できるような構成を持つキャッシュ.キャッシュ自体の構造が非常に複雑となり,多くの CPU を接続することは困難.

Page 14: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

更なる並列化へ

Page 15: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

PC クラスタ• 数十から数百台の PC を相互に結合して1

つの計算を行う Beowolf (PVC, MPI などの並列計算ライブラリ ) などがよく使われる.

• Hadoop: データが他のノードにある場合の参照に時間がかかってしまう→タプル(組み)で,データを管理する: <key,値> Map

Shuffle

Reduce

Page 16: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

Hadoop

Page 17: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

投機的実行

Page 18: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

投機的実行の分類• 分岐予測–これまでの講義で述べた方法

• 積極的実行– 計算機資源がある限り,分岐先を両方とも実

行する

Page 19: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

その他

Page 20: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

どんな計算機が速いのか?整数演算で速かったもの  浮動小数点で速かったもの  

Page 21: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

CPU の性能評価• SPEC 社が実施しているベンチマークhttp://www.spec.org/cpu2006/results/• SPECint2006  単一ジョブ• SPECfp2006  単一ジョブ• SPECint_rate2006  複数ジョブ• SPECfp_rate2006  複数ジョブこれらの結果は,日々更新されており,各PC メーカがしのぎを削っている.

Page 22: 計算機システム Ⅱ 現代的な計算機アーキテクチャの解説

ARM の場合• ARM の場合は, MIPS (Mega Instruction Per Second) で計

測される(基本設計が同じなので,これで評価できる.)

• マルチコア化も進んでいる.• 携帯機器向けなので,消費電力も重要な評価要素になる.• 浮動小数点演算は外付けの FPU で.ベクトル( SIMD )

化も行われている.• Qualcom 社の実装が評価され, ARM   CPU市場の大部

分を同社が抑えている.• 同社 snapdragon では, GPU の組み込み,コア毎のク

ロック制御, HDビデオのデコード機能の搭載, SIMDが 128bit 化されており,理論上は,他社製品よりも倍の性能が出る設計.