「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
詳細 †
プロセッサ †
省力電力機能 †
CPUの消費電力は以下で決定される。
- クロック周波数
01(オンオフ)の切り替えスピードのこと(回数 / 秒)。
このため、電源・クロックの制御が省電力につながる。
- アンダークロック
- 電源・クロックの制御する。
- オーバークロックの逆。
- AMDのPowerNow?!などがある。
- マルチコアプロセッサ
使用しないコアの電力枠を他に割り当てる。
マルチスレッド †
- 「CPU処理時間」、「割り込み」などと聞いてくるので注意。
- 今風に言うと、「1コア、A, B, Cの3スレッド」などを問うてくる。
- B, Cの割り込みと処理時間を設定しAの処理時間を問うてくるなど。
内部・外部割込 †
色々な割込みがある(仕組みは様々)。
- SVC割込
システムコール(カーネルモードへ遷移)
- マシン・チェック割込
- ハードウェアの誤動作を検出
- CPUが検出、CPUやソフトウェアが訂正
- 入出力割込
- I/O完了ポート的な。
- 入出力システムに実装されている。
- タイマ割込
- 各種タイマによる割り込み。
- カーネル・オブジェクトなど
- コンソール割込
- 入力デバイスにより割込み。
- Windowシステム(VIQとメッセージ・ループ)
CPI(Cycles Per Instruction) †
1 命令の実行に要するクロック数
処理Xが以下の様に構成される場合。
# | 命令 | CPI | 比率 |
1 | 命令 A | a | x % |
2 | 命令 B | b | y % |
3 | 命令 C | c | z % |
処理Xを n 回実行するときのCPIは、
x cpi = n(a(x/100) + b(y/100) + c(z/100))
x CPIをZHで処理するのにかかる時間(ZHは回 / 秒)
x / ZH = y 秒
となる。
パイプライン処理 †
- マイクロプロセッサ(MPU/CPU)は一度に x 個の命令(のステージ)を並行を処理できる。
- 命令はy ステージ(デコード部、演算部、レジスタフェッチ部など)で構成される。
- サイクル:1 ステージ, z サイクル で動作を完了する。
などと定義された場合。
必要になるサイクルは
= (x + (y - 1))z
となる。
- 命令パイプライン(CPU)
前述のパイプライン方式
- スーパーパイプライン(CPU)
パイプライン処理の高速化手法の一つで、
命令のステージ(パイプライン)を
細分化・多段化する(5段 -> 10 -30段)。
- スーパースカラ(MPU)
複数のパイプラインをもつため、
同時に同じ命令を複数実行可能。
- ベクトルプロセッサ
命令をベクトル長に分割して処理を繰り返す。
CISC / RISC †
- CISC
- 命令フォーマットとサイズに決まりがない
- 命令デコードはマイクロROM方式
- 1命令は複数クロックサイクル処理
- RISC
- パイプライン処理
- 固定長命令サイズ
- 命令デコードはランダム論理方式
- 1命令は単一クロックサイクル処理
キャッシュとコヒーレンシ †
- キャッシュ
CPUのキャッシュは、CPUレジスタとも呼ぶ。
- キャッシュ・コヒーレンシ(一貫性)
キャッシュと外部メモリ間のデータの整合性をとる事
- 共有キャッシュ
- 共有のキャッシュ。
- コヒーレンシ(一貫性)が保たれる。
- 専有キャッシュ
- 専有のキャッシュ。
- コヒーレンシ(一貫性)が保たれない。
- バススヌーピング(バススヌープ、スヌープキャッシュ)
- 各専有キャッシュがデータを更新した場合、ブロードキャストを流す。
- ブロードキャストを受信したら、データを無効化することで一貫性を維持する。
- 大規模化にうまく対応できない
- UMA(Uniform Memory Access)
- 共有メモリ型のアーキテクチャでSMP (Symmetric Multi-Processor) とも呼ばれる。
- メモリアクセスコストの均一性を保ったまま大規模SMPシステムを構築する。
- NUMA(Non-Uniform Memory Access)
- バスを共有するプロセッサ数を抑えることでバスの輻輳を防ぎ、バスクロックの向上を容易にする。
- 共有メモリ型で、メモリを共通の物理アドレス空間にマップできることが要件。
- 同一ノードのローカルメモリ、他ノードのリモートメモリがあり、後者のアクセスコストが大きい。
フリンの分類 †
- SISD: Single Instruction, Single Data stream
- ノイマン型アーキテクチャに対応する命令にもデータにも並列性のない逐次的なコンピュータ。
- パイプライン処理やスーパースカラ実装による命令の並列実行はSISDでも普通に行われている。
- SIMD: Single Instruction, Multiple Data streams
- 命令列は1つだが、それを複数のデータストリームに適用する形態のコンピュータ。
- 大量のデータに同じ処理を施すときに性能を発揮する。
- 画像、音声、動画などを扱うマルチメディア処理で多用されている。
- MISD: Multiple Instruction, Single Data stream
- 命令列が複数あり、それを1つのデータストリームに適用する形態のコンピュータ。
- あまり一般的ではないが、フォールトトレラント設計の冗長性を確保するために使われる。
- MIMD: Multiple Instruction, Multiple Data streams
- 複数のプロセッサが同時並行的にそれぞれ異なるデータを異なる命令で処理するコンピュータ。
- 独立して機能する複数のプロセッサを持ち、共有メモリ型と分散メモリ型に分類される。
アムダールの法則 †
計算機の並列度を上げた場合に、全体として期待できる
全体の性能向上の程度を数式として表現したもの。
- E: 高速化率
- n: プロセッサ数
- r: 並列化が可能な処理の割合
E = 1 / (1 - r + (r/n) )
システム †
ソフトウェア †
ハードウェア †
参考 †