Skip to content

DNET_AdvancedAMComputer

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

高度午前 - コンピューター・システム - コンピュータ

概要

電気を動力として計算処理を自動で行う計算機、
即ち電子式汎用計算機(高度:午前Ⅰ、午前Ⅱ)

詳細

プロセッサ

省電力機能

CPUの消費電力は以下で決定される。

  • 供給する電源電圧

  • クロック周波数
    01(オンオフ)の切り替えスピードのこと(回数 / 秒)。

このため、電源・クロックの制御が省電力につながる。

  • パワーゲーティング
    電力供給を遮断する。

  • クロックゲーティング
    クロックを停止する。

  • アンダークロック

    • 電源・クロックの制御する。
    • オーバークロックの逆。
    • AMDのPowerNow!などがある。
  • マルチコアプロセッサ
    使用しないコアの電力枠を他に割り当てる。

マルチスレッド

  • 「CPU処理時間」、「割り込み」などと聞いてくるので注意。
  • 今風に言うと、「1コア、A, B, Cの3スレッド」などを問うてくる。
  • B, Cの割り込みと処理時間を設定しAの処理時間を問うてくるなど。

内部・外部割込

色々な割込みがある(仕組みは様々)。

  • 内部割込
    プログラム内部の割り込み

    • プログラム割込
      各種の例外発生

    • SVC割込
      システムコール(カーネルモードへ遷移)

  • 外部割込
    ハード(I/O)による。

    • マシン・チェック割込

      • ハードウェアの誤動作を検出
      • 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

となる。

  • MPU/CPUの種類

    • 命令パイプライン(CPU)
      前述のパイプライン方式

    • ソフトウェアパイプライン

      • スーパーパイプライン(CPU)
        パイプライン処理の高速化手法の一つで、
        命令のステージ(パイプライン)を
        細分化・多段化する(5段 -> 10 -30段)。

      • スーパースカラ(MPU)
        複数のパイプラインをもつため、
        同時に同じ命令を複数実行可能。

    • ベクトルプロセッサ

      • ベクトル演算(SIMD)(フリンの分類を参照)を行えるコンピュータ
      • 命令をベクトル長に分割して処理を繰り返す。
  • 参考

CISC / RISC

  • CISC

    • 命令フォーマットとサイズに決まりがない
    • 命令デコードはマイクロROM方式
    • 1命令は複数クロックサイクル処理
  • RISC

    • パイプライン処理
    • 固定長命令サイズ
    • 命令デコードはランダム論理方式
    • 1命令は単一クロックサイクル処理
  • 参考

命令セットアーキテクチャ (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

不揮発性メモリ > フラッシュメモリ

  • NAND型とNOR型

    • 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レジスタ
(キャッシュの一般的な概念はキャッシュ (コンピュータシステム)を参照のこと。)

データ更新方式

命令キャッシュはプログラムという静的なデータを扱うのでデータ更新は存在しないが、
データキャッシュはメモリへのライト動作があるためデータ更新が存在する。
データを下位レベルのメモリに反映するタイミングにより2つのアルゴリズムが存在する。

  • ライトスルー方式 (Write Through Algorithm)
    CPUがメモリ書き込みを行ったら、キャッシュにストアすると同時に下位レベルのメモリにも書き戻す方式。

    • バスの競合や下位レベルの低いスループットに律速されるなどの制約はある
    • 単純な構成で実現でき、またデータのコヒーレンシを保つことが容易である。
    • 出力段にライトバッファを設けることにより、単一CPUであれば遜色のない性能が期待できるためL1キャッシュに実装される場合が多い。
  • ライトバック方式 (Write Back Algorithm)
    CPUがメモリ書き込みを行っても、条件が整わない限りキャッシュに留まりメモリへの書き戻しを行わない方式。

    • ライトスルー方式に対し下位レベルのバスが競合を起こし難い。
    • マルチCPU構成に向くため、記憶階層の同一レベルに複数のキャッシュが接続されているようなL2キャッシュに実装される。

※ スルーとバックが対になっていないので覚え難い。

メモリインターリーブ

主記憶装置とCPUとの間のデータ転送を高速化する方法の一つ

  • 主記憶装置を複数のメモリバンクに分割する。
  • CPUからのデータ転送要求を同時に複数のメモリバンクに発行する。
  • それにより、CPUの待ち時間を極小化し、高速化することができる
  • メモリモジュール要件は、通常、各バンクで同じ駆動周波数、同一容量となる。

※ メモリのストライピング的な。

キャッシュヒット率と平均アクセス時間

  • キャッシュ
    容量 a アクセス時間 x ヒット率 r

  • 主記憶
    容量 b アクセス時間 y ヒット率 (1-r)

  • 平均アクセス時間

    • ヒット率が容量に関係ない場合

      xr + y(1-r)
      
    • ヒット率が容量に関係ある場合

      axr    by(1-r)
      --- + -------
      a+b     a+b
      

バス

コンピュータの内外、各回路がデータを交換するための共通の経路

プロトコル(制御)

  • バス型トポロジーを採るバスでは、同時に送信を行わないよう、
    伝送路へ信号を送り出す権利を調停する調停回路が設けられるのが一般的。

  • 調停回路を設けずに使用権を順番に与える方式もあるが、バスの伝送効率は悪くなる。

  • 調停回路

    • バス・アービター

      • バス・アービトレーション(調停)を行い、使用権を取得したバス装置が使用する。
      • 1本のバスには、複数のバスマスタ・スレーブを接続できるが同時に1組しか通信できない。
    • バスマスタ
      使用権を取得したバスマスタが、バススレーブを制御する。

    • バススレーブ

      • アドレスを出力して、転送相手の装置とその装置内の転送対象を指定する。
      • バスを使用したデータ転送が終了すると、各信号線の駆動を停止する。

I2Cバス

  • フィリップス社で開発されたデバイスを利用するシリアル・バス

  • 2本の汎用I/Oピン(GPIO)とソフトウェアだけで、ネットワークを制御できる。

    • 2本のバス型ネットワーク上に1つのマスタと複数のスレーブを接続できる。

      • スレーブのデバイスを数珠繋ぎで何台も接続できる。
      • スレーブのデバイスにはアドレスがある。
    • シンプルで製造コストを抑えることが速度よりも重要とされるようなケース。

    • 組込システム、携帯電話など、低速な周辺機器をマザーボードへ接続する場合。

  • 実際には、デバイスには4本の線を接続する。

    • 電源
      電圧は最高で +5V までで、よく使われるのは +3.3V だが、他の電圧でも構わない。

      • Vdd
      • GND
    • GPIO
      抵抗でプルアップされた2本の双方向オープン・コレクタ信号線を使用する。

      • シリアル・データ (SDA)
      • シリアル・クロック (SCL)

入出力デバイス

Bluetooth

デジタル機器用の近距離無線通信規格の1つ。

  • 数mから数十m程度の情報機器間で、電波を使い比較的低速度の情報のやりとりを行う。
  • マウス、キーボードなど周辺機器接続や、携帯電話、スマートフォンでの文字や音声情報交換など。
  • Bluetooth Low Energy (Bluetooth LE, BLE)は、Bluetoothの拡張仕様の一つで、極低電力で通信が可能なもの。

IrDA

赤外線による光無線データ通信を規格化している団体、規格そのものの名称

  • 通信に必要なインターネットやLANなどの通信規格同様、層に分かれている。
  • 携帯電話に標準的に採用されるようになり、普及していった。
  • パソコン用の物では、USBやRS-232Cポートに接続して利用するのが一般的。
  • IrDA機器上からこれら赤外線リモコンの通信を学習しエミュレートできる(学習リモコン)。

ZigBee

センサーネットワークを主目的とする近距離無線通信規格の一つ。
センサーネットワークは、複数のセンサ付無線端末を空間に散在させ、
それらが協調して環境や物理的状況を採取することを可能とする無線ネットワーク

  • 転送可能距離が短く転送速度も非常に低速
  • 代わりに、安価で消費電力が少ない

SAN

入出力装置

ディスプレイ

シンプロビジョニング

  • ストレージ容量を仮想的に割り当てるので、リソースの無駄を排除できる

  • 実際に利用するストレージ容量が増えたら、都度、ディスクの増設が必要。

  • このとき、「しきい値」を設けて、その値を超えたときに警告する

  • ストレージ側のシンプロビジョニング機能を活用できるよう、
    OS側も以下の様な機能を追加で実装してきている。

    • SCSI UNMAP : OSで使用していない領域を通知する。
    • 容量可変ディスク、容量固定ディスク+動的拡張

移行メモ

  • 見出し「省力電力機能」→「省電力機能」に正した。
  • フリンの分類の参考リンクが「SISD」の 3 回繰り返しになっていたため、 本文に合わせて SISD / SIMD / MISD / MIMD に正した。
  • 「都度、ディスクを増設が必要。」→「ディスクの増設が必要。」に正した。
  • 元 Wiki の行頭空白による式は、フェンス付きコードブロックにした。
  • 元 Wiki で見出しそのものが他ページへのリンクになっていた箇所(「SAN」)は、 GitHub Wiki では見出しからアンカが生成されるため、 見出しをプレーン・テキストとし、リンクは直下の本文に置いた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。
  • 未移行のページはファイル名を予約し、TODO.md に記録した。

Tags: 移行, 資格, 高度午前, コンピュータ, プロセッサ, 割込, CPI, パイプライン, CISC, RISC, ISA, キャッシュ, コヒーレンシ, フリンの分類, アムダールの法則, SRAM, DRAM, フラッシュメモリ, メモリインターリーブ, バス, I2C, Bluetooth, IrDA, ZigBee, ディスプレイ, シンプロビジョニング

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally