コンピュータ構成要素
CPU・メモリ・バス・入出力装置が、どう役割を分けて命令を実行するかを学びます。試験では、キャッシュでどれだけ速くなるかや、CPUの速さを数で比べる計算がよく出ます。
要点
プロセッサ
- コンピュータの種類
- PC・ワークステーション・スーパーコンピュータのほか、基幹業務の汎用コンピュータ、機器に組み込むマイクロコンピュータがある。
- 1枚の基板にCPU・メモリ・入出力端子を載せた小型の計算機がシングルボードコンピュータ(SBC)。
- コンピュータの構成
- 演算装置・制御装置・記憶装置・入力装置・出力装置の5つ。制御装置が他の4つに指示を出す。
- プロセッサの種類
- CPUは複雑な処理を順に速くこなす。GPUは単純な計算を大量に並列で行い、画像処理や機械学習に向く。
- プロセッサのアーキテクチャ
- RISCは単純な命令を少数そろえ、ワイヤドロジック制御方式で速く実行する。
- CISCは複雑な命令を多く持ち、命令の動作をマイクロプログラム制御方式で実現する。
- プロセッサの構造と方式
- 次に実行する命令の番地はプログラムカウンタ、取り出した命令は命令レジスタに入り、デコーダが解読する。
- 演算結果をためるアキュムレータ、番地の計算に使うインデックスレジスタ・ベースレジスタ、スタックの位置を指すスタックポインタがある。
- 演算の仕組み
- AND・OR・NOTを組み合わせた半加算器は1桁の和と桁上がりを出す。下の桁からの桁上がりも足すのが全加算器。
- 入力だけで出力が決まるのが組み合わせ回路、記憶を持ち前の状態にもよるのが順序回路。
- 命令とアドレッシング
- 命令は命令部とオペランド部からなる。取出し→解読→データの取出し→実行の順に処理する。
- 実際の番地(実効アドレス)の求め方がアドレス修飾。直接・間接・指標・基底・相対などの方式がある。
- 割込み
- 実行中の処理を止めて別の処理に移る仕組み。内部割込みはプログラムが原因(0除算、SVC割込みなど)。
- 外部割込みは外の出来事が原因(入出力割込み、タイマ割込み、電源異常など)。
- プロセッサの性能
- 1クロックの時間(サイクルタイム)=1÷クロック周波数。1GHzなら1ナノ秒。
- CPIは1命令に要するクロック数。MIPS=クロック周波数(MHz)÷CPI。命令の出現割合(命令ミックス)で平均CPIを求める。
- 1秒間の浮動小数点演算の回数がFLOPS。科学技術計算の性能を表す。
- プロセッサの高速化技術
- パイプラインは命令の段階をずらして重ねる。段をさらに細かく分けるのがスーパーパイプライン。
- 複数のパイプラインで同時に実行するのがスーパースカラ、まとめた長い命令を並列実行するのがVLIW。
- 1つのチップに複数のコアを載せたのがマルチコアプロセッサ。
- 並列処理
- 命令とデータの流れの数で分ける。1命令で複数データを処理するのがSIMD。ほかにSISD・MISD・MIMD。
- マルチプロセッサシステム
- 主記憶を共有するのが密結合、それぞれ主記憶とOSを持つのが疎結合。複数台をまとめて1台に見せるのがクラスタ。
- アムダールの法則:並列化できない部分があると、プロセッサを増やしても速さは頭打ちになる。
メモリ
- メモリの種類と特徴
- 電源を切ると消えるのがRAM(揮発性)、消えないのがROMやフラッシュメモリ(不揮発性)。
- DRAMは安く大容量だがリフレッシュが要り主記憶に使う。SRAMは速く高価でキャッシュに使う。
- 主記憶に差し込むメモリモジュールがDIMM、ノートPC用の小型がSO-DIMM。
- 主記憶装置の構成
- 記憶部・アドレス選択機構・読取り書込み機構からなる。番地を選んで、そこのデータを読み書きする。
- メモリシステムの構成と記憶階層
- レジスタ→キャッシュ→主記憶→補助記憶の順に、遅いが大容量で安くなる。速さと容量を両立させるための記憶階層。
- 書込みで主記憶も同時に更新するのがライトスルー、追い出すときにまとめて書くのがライトバック。
- 補助記憶の読み書きを速くするため主記憶に置くのがディスクキャッシュ。
- アクセス方式
- 主記憶を複数のバンクに分けて交互にアクセスし、待ち時間を重ねて隠すのがメモリインターリーブ。
- メモリの容量と性能
- 実効アクセス時間=ヒット率×キャッシュの時間+(1−ヒット率)×主記憶の時間。
- 読み出しにかかるアクセス時間と、次のアクセスまでの間隔のサイクル時間は区別する。
- 記録媒体の種類と特徴
- CD-ROM・DVD-ROMは読出し専用型、CD-R・DVD-Rは追記型、DVD-RAMは書換型。ブルーレイディスクは大容量。
- SSDやUSBメモリ・SDカードはフラッシュメモリを使う。書込みを全体に散らして寿命を延ばすのがウェアレベリング。
- 磁気テープでバックアップをとる装置がストリーマ。主記憶の一部をディスクのように使うのがRAMファイル。
バス
- バスの種類と特徴
- 番地を送るアドレスバス、データを運ぶデータバス、読み書きの合図を送るコントロールバスがある。
- CPU内部の内部バス、CPUと主記憶・装置をつなぐ外部バス、拡張カード用の拡張バス(PCIなど)に分ける。
- 1本の線で順に送るのがシリアルバス、複数の線で同時に送るのがパラレルバス。
- バスのシステムの構成
- 命令とデータで別のバスを使うのがハーバードアーキテクチャ。同じバスを使う方式(ノイマン型)より同時に読める。
- バスの容量と性能
- 1秒に運べる量=バス幅(バイト)×クロック周波数×1クロックの転送回数。64ビット・100MHzで毎秒800Mバイト。
入出力デバイス
- 入出力インタフェースの種類と特徴
- 有線はUSB・Thunderbolt・シリアルATA(ディスク)・HDMIとDisplayPort(映像)、古いRS-232C。
- 無線はBluetoothと省電力のBLE、センサ網のZigbee、赤外線のIrDA、かざして使うNFC。
- データ転送の方式と接続形態
- USBはハブを使ったツリー接続(スター接続のカスケード接続)。
- 装置を数珠つなぎにするのがデイジーチェーン。端に信号の反射を防ぐターミネータを付ける方式もある。
- 入出力制御の方式
- CPUが1語ずつ転送するのがプログラム制御方式。CPUを通さず装置と主記憶が直接やり取りするのがDMA方式。
- 入出力専用のプロセッサに任せるのがチャネル制御方式。終わると入出力割込みでCPUに知らせる。
- デバイスドライバ
- OSと装置の間で、装置ごとの操作を引き受けるソフトウェア。
- つなぐだけで設定されるのがプラグアンドプレイ、電源を入れたまま抜き差しできるのがホットプラグ。
入出力装置
- 入力装置
- マウスやタッチパネルなどのポインティングデバイス、キーボード、スキャナ、生体認証装置、バーコード読取装置など。
- 文字を読み取るのがOCR、マークシートを読み取るのがOMR。アナログ信号を数値にするのがA/Dコンバータ。
- 出力装置
- 有機ELディスプレイは自ら光り、バックライトが要らない。液晶ディスプレイはTFT液晶が主流。
- 画像1枚のデータ量=横の画素数×縦の画素数×1画素のビット数。1024×768・24ビットなら2,359,296バイト。
- プリンタは、紙をたたくインパクトプリンタと、レーザプリンタ・インクジェットプリンタなどのノンインパクトプリンタに分かれる。
- 力や振動で手に感触を返すのがハプティックデバイス。ほかにヘッドマウントディスプレイ、3Dプリンタ、電子ペーパー。
- 補助記憶装置
- ハードディスクは円板の同心円(トラック)をセクタに区切り、同じ位置のトラックの集まりをシリンダと呼ぶ。
- アクセス時間=平均シーク時間+平均回転待ち時間(半回転の時間)+データ転送時間。
- 磁気テープでは、まとめる記録の数がブロック化因数。ディスクの断片化を直すのがデフラグメンテーション。
- その他の入出力装置
- ネットワークにつなぐ有線LANインタフェースカード・無線LANインタフェースカード、モータを動かす駆動装置、カメラなどの撮像装置。
さわって確かめる
メモリとCPUの速さを、次の3つで計算します。値を変えると、式と途中の計算がすぐに出ます。
1. キャッシュメモリの実効アクセス時間
キャッシュ10ナノ秒・主記憶60ナノ秒のまま、ヒット率を90から99に上げて、実効アクセス時間がどれだけ縮むか確かめよう。
2. 命令ミックスからMIPSと実行時間を求める
クロック2,000MHz、CPI3の命令が80%・CPI8の命令が20%のとき、平均CPIとMIPSを確かめよう。
命令ミックス(割合の合計を100%にする)
3. パイプラインの処理時間
5段・1段2ナノ秒で、命令を1個から6個に増やし、かかる時間が段の数ずつではなく1段ずつ増えることを確かめよう。
表の列はクロックの番号。「段N」は、その命令がそのクロックにN段目を処理していること。
3問チェック
最初に選んだ答えで採点します。全問正解で、この単元に「済み」の印が付きます。
-
キャッシュメモリのアクセス時間が10ナノ秒、主記憶のアクセス時間が60ナノ秒、ヒット率が90%のとき、実効アクセス時間は何ナノ秒か。
- 9ナノ秒
- 15ナノ秒
- 55ナノ秒
- 60ナノ秒
答えと解説
正解はイ。0.9×10+0.1×60=9+6=15ナノ秒。9ナノ秒はヒットした分だけを足した値。55ナノ秒はヒット率をキャッシュと主記憶で逆に掛けた値(0.9×60+0.1×10)。
-
クロック周波数2GHzのCPUで、CPIが3の命令が80%、CPIが8の命令が20%の割合で実行される。このCPUの性能は約何MIPSか。
- 250
- 364
- 500
- 667
答えと解説
正解はウ。平均CPI=3×0.8+8×0.2=2.4+1.6=4。2GHz=2,000MHzなので、2,000÷4=500MIPS。364は割合を無視してCPIを単純平均(5.5)した値、667はCPI3だけ、250はCPI8だけで計算した値。
-
1段の処理に2ナノ秒かかる5段のパイプラインで、20個の命令を実行する。分岐などで流れが乱れないとすると、全部の実行にかかる時間は何ナノ秒か。
- 40ナノ秒
- 48ナノ秒
- 50ナノ秒
- 200ナノ秒
答えと解説
正解はイ。最初の命令が5段を通るのに5クロック、残り19個は1クロックずつ遅れて終わるので(5+20−1)×2=48ナノ秒。200ナノ秒はパイプラインを使わない場合(5×20×2)。50ナノ秒は「−1」を忘れた値、40ナノ秒は命令の数×1段の時間だけで、最初の命令が段を通り抜ける分を数えていない値。