投機的実行

計算機システムⅡ
現代的な計算機アーキテクチャの解説
和田俊和
講義計画
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
コンピュータの歴史1
コンピュータの歴史2
コンピュータの歴史3
論理回路と記憶,計算:レジスタとALU
主記憶装置とALU,レジスタの制御
命令セットアーキテクチャ
演習問題
パイプライン処理
メモリ階層:キャッシュと仮想記憶
命令レベル並列処理
入出力と周辺装置
演習問題(問題配布)
演習問題(解答例配布)
現代的な計算機アーキテクチャの解説(←本日)
演習問題
試験
•
教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロ
ナ社
•
最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.
本日の講義の範囲
• 並列コンピュータ
– SMP(UMA)とNUMA
– MIMDとSIMD
• 並列コンピュータのキャッシュ
– スヌープキャッシュ
• 投機的実行
– 分岐予測
– 積極的実行
• その他
1 並列コンピュータ
ムーアの法則
• 集積回路上のトランジスタの数は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
Hadoop
投機的実行
投機的実行の分類
• 分岐予測
– これまでの講義で述べた方法
• 積極的実行
– 計算機資源がある限り,分岐先を両方とも実行
する
その他
どんな計算機が速いのか?
整数演算で速かったもの
浮動小数点で速かったもの
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社の実装が評価され,ARM CPU市場の大
部分を同社が抑えている.
• 同社 snapdragonでは,GPUの組み込み,コア毎のク
ロック制御,HDビデオのデコード機能の搭載,SIMDが
128bit化されており,理論上は,他社製品よりも倍の
性能が出る設計.