「.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) )
メモリ †
揮発性メモリ > SRAM / DRAM †
- SRAM
- フリップフロップ等の順序回路を利用し、定期的なリフレッシュ(回復動作)が不要
- のシンプルかつ高速なアクセスが可能だが、DRAMと比べ複雑で高コスト。
- アクセス動作が無ければ極く僅かな電力のみで記憶を保持できる。
フラッシュメモリ一般化以前に、ゲーム機のセーブデータ用に多用された。
- DRAM
- 常にリフレッシュ(記憶保持動作)を必要とするダイナミックメモリ
- リフレッシュが欠点だが、大容量を安価に提供できるという利点から、DRAMが主流。
不揮発性メモリ > フラッシュメモリ †
- NAND型
ランダムアクセス読み出しの単位はブロック
- NOR型に比べて書き込みは高速
- NOR型に比べて高集積化に有利
- NOR型
ランダムアクセス読み出しの単位はバイト
- NAND型に比べて書き込みは低速
- NAND型に比べて高集積化に不利
- 1記憶素子に格納可能なデータ
耐久性能が下がるが、低価格化と大容量化が可能。
- SLC (Single Level Cell):
- 1個のメモリセルに1ビットを記憶、
- セルトランジスタのしきい電圧は2段階(消去が1つ、書き込みが1つ)
- MLC (Multi Level Cell):
- 1個のメモリセルに2ビット(2ビット以上)を記憶、
- セルトランジスタのしきい電圧は4段階(消去が1つ、書き込みが3つ)
- TLC (Triple Level Cell):
- 1個のメモリセルに3ビットを記憶、
- セルトランジスタのしきい電圧は8段階(消去が1つ、書き込みが7つ)
- QLC (Quadruple Level Cell):
- 1個のメモリセルに4ビットを記憶、
- セルトランジスタのしきい電圧は16段階(消去が1つ、書き込みが15)
- フラッシュメモリ以外の不揮発性メモリ
- PROM、EPROM、EEPROM
- FeRAM、MRAM、ReRAM
誤り検出/訂正 †
メモリ・ディスクでは、ECCが使用されている。
バス †
入出力デバイス †
入出力装置 †
参考 †