「.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命令は単一クロックサイクル処理
命令セットアーキテクチャ (ISA) †
- 命令セット
入出力を含むコンピュータシステムのハードウェア全体の、
ユーザーから見たソフトウェアインタフェースの定義
- 使用できるレジスタの構成
- 命令 (コンピュータ)とデータ型
- アドレッシングモード
- メモリマネジメント
- 割り込みと例外処理
- さらに(もしあれば)入出力
- 命令セットアーキテクチャ (ISA)
- 命令セット≒コンピュータ・アーキテクチャ
- コンピュータ・アーキテクチャの実装方法≒マイクロアーキテクチャ(プロセッサの回路的な構造を指す)
- マイクロアーキテクチャ上に構築したプログラム的な仕様、設計の体系が命令セットアーキテクチャ (ISA)
キャッシュとコヒーレンシ †
- キャッシュ
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が使用されている。
キャッシュメモリ †
CPUキャッシュ、CPUレジスタ(キャッシュの一般的な概念はキャッシュ (コンピュータシステム)を参照のこと。)
- CPUなど処理装置がデータや命令などの情報を取得/更新する際に主記憶装置やバスなどの
遅延/低帯域を隠蔽し、処理装置と記憶装置の性能差を埋めるための高速小容量メモリ
- 通常は下位レベルの記憶装置より小容量で高速なSRAMを用いて構成される。
- データ格納構造、ライン入替え、データ更新方式などに多数のアーキテクチャが存在する。
データ更新方式 †
命令キャッシュはプログラムという静的なデータを扱うのでデータ更新は存在しないが、
データキャッシュはメモリへのライト動作があるためデータ更新が存在する。
データを下位レベルのメモリに反映するタイミングにより2つのアルゴリズムが存在する。
- ライトスルー方式 (Write Through Algorithm)
CPUがメモリ書き込みを行ったら、キャッシュにストアすると同時に下位レベルのメモリにも書き戻す方式。
- バスの競合や下位レベルの低いスループットに律速されるなどの制約はある
- 単純な構成で実現でき、またデータのコヒーレンシを保つことが容易である。
- 出力段にライトバッファを設けることにより、単一CPUであれば遜色のない性能が期待できるためL1キャッシュに実装される場合が多い。
- ライトバック方式 (Write Back Algorithm)
CPUがメモリ書き込みを行っても、条件が整わない限りキャッシュに留まりメモリへの書き戻しを行わない方式。
- ライトスルー方式に対し下位レベルのバスが競合を起こし難い。
- マルチCPU構成に向くため、記憶階層の同一レベルに複数のキャッシュが接続されているようなL2キャッシュに実装される。
※ スルーとバックが対になっていないので覚え難い。
メモリインターリーブ †
主記憶装置とCPUとの間のデータ転送を高速化する方法の一つ
- 主記憶装置を複数のメモリバンクに分割する。
- CPUからのデータ転送要求を同時に複数のメモリバンクに発行する。
- それにより、CPUの待ち時間を極小化し、高速化することができる
- メモリモジュール要件は、通常、各バンクで同じ駆動周波数、同一容量となる。
※ メモリのストライピング的な。
キャッシュヒット率と平均アクセス時間 †
- キャッシュ
容量 a アクセス時間 x ヒット率 r
- 主記憶
容量 b アクセス時間 y ヒット率 (1-r)
バス †
コンピュータの内外、各回路がデータを交換するための共通の経路
プロトコル(制御) †
- バス型トポロジーを採るバスでは、同時に送信を行わないよう、
伝送路へ信号を送り出す権利を調停する調停回路が設けられるのが一般的。
- 調停回路を設けずに使用権を順番に与える方式もあるが、バスの伝送効率は悪くなる。
- バス・アービター
- バス・アービトレーション(調停)を行い、使用権を取得したバス装置が使用する。
- 1本のバスには、複数のバスマスタ・スレーブを接続できるが同時に1組しか通信できない。
- バスマスタ
使用権を取得したバスマスタが、バススレーブを制御する。
- バススレーブ
- アドレスを出力して、転送相手の装置とその装置内の転送対象を指定する。
- バスを使用したデータ転送が終了すると、各信号線の駆動を停止する。
I2Cバス †
- 抵抗でプルアップされた2本の双方向オープンコレクタ信号線を使用する。
- シリアルデータ (SDA)
- シリアルクロック (SCL)
- 2本の汎用I/Oピンとソフトウェアだけで、ネットワークを制御できる。
- 2本のバス型ネットワーク上に1つのマスタと複数のスレーブを接続できる。
- シンプルで製造コストを抑えることが速度よりも重要とされるようなケース。
- 組込システム、携帯電話など、低速な周辺機器をマザーボードへ接続する場合。
- 電圧は最高で +5V までで、よく使われるのは +3.3V だが、他の電圧でも構わない。
入出力デバイス †
Bluetooth †
デジタル機器用の近距離無線通信規格の1つ。
- 数mから数十m程度の情報機器間で、電波を使い比較的低速度の情報のやりとりを行う。
- マウス、キーボードなど周辺機器接続や、携帯電話、スマートフォンでの文字や音声情報交換など。
- Bluetooth Low Energy (Bluetooth LE, BLE)は、Bluetoothの拡張仕様の一つで、極低電力で通信が可能なもの。
IrDA †
赤外線による光無線データ通信を規格化している団体、規格そのものの名称
- 通信に必要なインターネットやLANなどの通信規格同様、層に分かれている。
- 携帯電話に標準的に採用されるようになり、普及していった。
- パソコン用の物では、USBやRS-232Cポートに接続して利用するのが一般的。
- IrDA機器上からこれら赤外線リモコンの通信を学習しエミュレートできる(学習リモコン)。
ZigBee? †
センサーネットワークを主目的とする近距離無線通信規格の一つ。
センサーネットワークは、複数のセンサ付無線端末を空間に散在させ、
それらが協調して環境や物理的状況を採取することを可能とする無線ネットワーク
- 転送可能距離が短く転送速度も非常に低速
- 代わりに、安価で消費電力が少ない
入出力装置 †
ディスプレイ †
- CRTディスプレイ
電子銃から発射された電子ビームを蛍光体に照射し、
発光させつつ、偏向コイルで磁気偏向することで図像を表示する
- 液晶ディスプレイ
- 液晶組成物を利用する平面状で薄型の視覚表示装置。
- それ自体発光しない液晶組成物を利用して光を変調する(カラーフィルタ)。
- プラズマ・ディスプレイ
- 放電による発光を利用した平面型表示素子の一種。
- 平面型表示素子に電圧をかけ、紫外線を発生させ、蛍光体を光らせて表示する。
- 有機ELディスプレイ
- 有機半導体内の励起子により発光し、必要な電圧も数V程度と低く、発光効率も近年飛躍的に向上している。
- 自ら光る物質を利用しているため、バックライトは不要で薄型化を図りやすい。
シンプロビジョニング †
- ストレージ容量を仮想的に割り当てるので、リソースの無駄を排除できる
- 実際に利用するストレージ容量が増えたら、都度、ディスクを増設が必要。
- このとき、「しきい値」を設けて、その値を超えたときに警告する
- ストレージ側のシンプロビジョニング機能を活用できるよう、
OS側も以下の様な機能を追加で実装してきている。
- SCSI UNMAP : OSで使用していない領域を通知する。
- 容量可変ディスク、容量固定ディスク+動的拡張