このページでは、プログラム制御・DMA・チャネルなど、CPUと周辺装置の間でデータを受け渡す方式と、USBなどのインタフェース規格の特徴がわかります。
- 一言で言うと:
- CPUと周辺機器の間でデータをやり取りする仕組みの話。誰がデータの受け渡しを仕切るか(入出力制御)と、どんな規格でつなぐか(インタフェース)。
データの受け渡しを仕切る(入出力制御)→ つなぐ規格(インタフェースの規格)
覚え方の軸
- 入出力制御は「CPUがどれだけ手を出すか」で3つ:
- CPUが全部やる(プログラム制御)→ CPUは指示だけでDMACが運ぶ(DMA)→ 専用装置がプログラムに従って全部やる(チャネル)
- インタフェースは「1本で順に送る(シリアル)」か「何本も並べて同時に送る(パラレル)」か:
- 今はシリアルが主流(USB、シリアルATA、PCI Express、SAS)
- USBは「バージョンが上がるごとにおよそ速くなる」:
- 1.5M → 12M → 480M → 5G。2.0までは半二重、3.0から全二重
- 無線は「何で飛ばすか、どこまで届くか」:
- 赤外線(IrDA、直進、遮蔽物に弱い)、2.4GHz帯の電波(Bluetooth、1〜100m)、かざす(NFC、数cm〜1m)
入出力制御:データの受け渡しを誰が仕切るか
- 入出力制御:
- コンピュータの入出力インタフェースが適切に動くように管理すること。主に3つの方式がある
- プログラム制御方式(直接制御方式):
- CPUが入出力制御コマンドを出す
- 単純だが、入出力のたびにデータがCPUのレジスタを経由するので、処理効率が落ちる原因になる
- DMA制御方式:
- CPUを介さずに、外部装置と主記憶装置の間で直接データをやり取りする。プログラム制御方式より速い
- DMA要求が起きると、システムバスが遮断され、外部装置と主記憶の間にデータの伝送路が確保される
- CPUがDMAコントローラ(DMAC)に指示し、DMACがCPUとは独立にデータを伝送する。終わったら入出力割込み(外部割込み)でDMACからCPUに知らせる
- チャネル制御方式:
- DMA制御方式を拡張したもの。チャネルという入出力専用の装置を介して、外部装置と主記憶のデータ伝送を行う
- CPUがチャネルに開始命令を出したあとは、チャネルがチャネルプログラムに従って入出力処理をするので、CPUに負荷がかからない。CPUの処理と入出力処理を並行して行える
- 伝送の終了は、チャネル割込み(入出力割込み)でCPUに知らせる
- チャネルの仕組み
- チャネル指令語(CCW):
- 入出力動作を指示する命令
- チャネルプログラム:
- CCWを使って一連の入出力動作を決めた、チャネル専用のプログラム。入出力要求が出たときにデータ管理プログラムが作り、主記憶に記憶する
- チャネルアドレス語(CAW):
- チャネルプログラムが記憶されているアドレスを示すもの。主記憶上の決まった領域に記憶される
- 流れ:
- CPUから入出力開始の指示を受ける → チャネルが所定の領域のCAWを読む → チャネルプログラムを1つずつ解釈して実行する
- チャネル指令語(CCW):
- チャネル制御方式の種類
- マルチプレクサチャネル方式:
- チャネルが、複数の入出力装置を時分割で切り替えながら同時に制御する。データ転送の単位によって、バイトマルチプレクサチャネル方式とブロックマルチプレクサチャネル方式がある
- セレクタチャネル方式:
- 入出力処理の最初から最後まで、1つの装置がチャネルを占有する
- マルチプレクサチャネル方式:
- ストリーミング方式:
- 汎用コンピュータのチャネル制御方式を使った補助記憶装置とのデータ転送で、確認信号を待たずに次々とデータを送って速くする方式
USBメモリとSSD
- USBメモリ:
- USBコネクタにつないで使う記憶装置。差し込むだけで読み書きできる。不揮発性のフラッシュメモリを使うので、電源を切っても内容は消えない
- SSD(Solid State Drive):
- ハードディスクの代わりとして登場した、フラッシュメモリを使う記憶装置。ハードディスクと同じインタフェース(シリアルATAなど)でつなげる
- 機械的に動く部分がないので、ハードディスクより「速い、消費電力が低く発熱も少ない、衝撃に強く軽い、動作音がない」
- ビットあたりの値段はハードディスクより高いが、速さ・信頼性・低消費電力を生かして、ノートPC、タブレット、サーバなどで広く使われる
インタフェースの規格:周辺機器をつなぐ規格
- インタフェース:
- コンピュータと周辺機器をつなぐための規格や方式
- シリアルインタフェース:
- 1本の信号線で1ビットずつ直列に送る
- パラレルインタフェース:
- 複数の信号線で同時に複数ビットを並列に送る。効率は良さそうだが、構造が複雑になる
- 今は、単純で安いUSBなどのシリアルインタフェースが主流
- USB(Universal Serial Bus):
- キーボードやマウスなど、いろいろな機器の接続を統一したシリアルインタフェース規格。試験で最もよく出る
- プラグアンドプレイ:
- PCにプラグを差し込むだけで使える
- ホットプラグ:
- 電源が入ったまま機器を抜き差しできる
- 「USB1.0 → USB1.1 → USB2.0 → USB3.0 …」の順に、互換性を保ちながら機能・性能が上がってきた
- 通信方式:
- USB2.0までは半二重通信、USB3.0からは全二重通信
- コネクタのピン数が4本から9本に増えたが、後方互換性を保っているのでUSB2.0のケーブルも挿せる
| 転送モード | 転送速度(ビット/秒) | 対応する規格 |
|---|---|---|
| ロースピードモード(LS) | 1.5M | USB1.0・1.1、USB2.0、USB3.0 |
| フルスピードモード(FS) | 12M | USB1.0・1.1、USB2.0、USB3.0 |
| ハイスピードモード(HS) | 480M | USB2.0、USB3.0 |
| スーパースピードモード(SS) | 5G | USB3.0 |
-
覚え方:
- 新しい規格は、古いモードも全部使える。USB1.xの最高は12M、USB2.0は480M、USB3.0は5G
-
USB3.1、USB3.2:
- 10〜20Gbpsの転送ができる
-
USB4:
- 40Gbpsを実現
-
注意(新しい情報):
- 2022年にUSB4 Version 2.0の仕様が公開され、最大80Gbps(条件付きで120Gbps)になった。試験対策としては上の数字を優先して覚える
-
例題:
- 480Mbps(ハイスピード)で60Mバイトのファイルを送ると、60×8=480Mビットなので、理論上1秒(実際はオーバヘッドで長くなる)
-
USBの転送方式
- アイソクロナス転送:
- リアルタイム性を重視する方式(データが届いたかの確認はしない)。音声や映像に使う
- インタラプト転送:
- 一定周期で少量のデータを送る方式
- コントロール転送:
- デバイスの設定や制御のための方式
- バルク転送:
- 大量のデータを一括で送る方式。USB3.0には、さらに大量のデータを送るバルクストリーム転送がある
- アイソクロナス転送:
-
Wireless USB:
- USBを拡張した無線通信の規格。ただし有線USBとの互換性はない
-
主なインタフェース規格・通信規格
| 規格 | ざっくり |
|---|---|
| ATA | 内蔵ハードディスクをつなぐパラレルインタフェース規格(パラレルATA)。最初はIDE規格として普及し、後にATAとして標準化された |
| ATAPI(ATA-4) | IDE(ATA)を拡張して、CD-ROM装置などハードディスク以外の機器もつなげるようにした規格(EIDE)の一部を規格化したもの。ATA/ATAPI-4としてATA規格に統合された |
| SCSI | ANSI(米国規格協会)が定めたパラレルインタフェース規格。PCと周辺機器をつなぐ。7台までの周辺機器を数珠つなぎ(デイジーチェーン)にできる。高速化した規格にUltra SCSIがある |
| iSCSI | SCSIプロトコルをTCP/IPネットワーク上で使えるようにした規格 |
| IEEE 1394 | 音声や映像など、リアルタイム性が必要なデータの転送に向いた高速なシリアルインタフェース。FireWireともいう |
| PCI | ISAに代わって普及した、PC用の拡張バスのパラレルインタフェース規格 |
| AGP | ビデオカードとメインメモリを結ぶバス規格。ビデオカード専用のバスなのでスループットが高い |
| PCI Express | シリアルインタフェースの拡張バス規格。PCIとAGPの後継 |
| I2Cバス | 組込みシステムで使う、クロックとデータの2線式バス(双方向シリアルバス)。最大転送速度は3.4Mビット/秒 |
| HDMI | 映像と音声を1本のケーブルで送る、デジタル接続の規格。デジタルテレビ、DVDレコーダ、PCとディスプレイの接続などに使う |
| DisplayPort | HDMIの対抗規格。映像と音声をパケットに分けてシリアルで送る。シングルモードとデュアルモードがあり、デュアルモードはHDMIに対応。HDCPもサポート |
| IrDA | 赤外線でデータを送る無線通信規格。赤外線は直進するので、遮蔽物があると使えない |
| Bluetooth | 無線LANと同じ2.4GHz帯の電波を使う近距離無線通信。届く距離は1〜100m程度で、遮蔽物があっても通信できる。キーボード、マウス、携帯電話など比較的低速な通信に使う |
| NFC(Near Field Communication) | 数cm〜1m程度の極短距離で通信する、“かざして通信”の規格。ピアツーピアで通信する機能もある |
| PLC(Power Line Communication:電力線通信) | コンセントからつながる電力線を通信回線に使う技術 |
| バスパワー | USBケーブル経由で周辺機器に電力を供給する方式 |
- シリアルATA:
- パラレルATAをシリアル転送方式に変えたもの
- SAS(Serial Attached SCSI):
- SCSIの後継規格。シリアル転送のSCSIで、シリアルATAに対して上位互換性を持つ。接続方式はPoint-to-Point。旧来のSCSIをパラレルSCSIと呼ぶことがある
- HDCP:
- デジタルコンテンツの著作権保護技術。著作権で保護されたコンテンツの不正コピーを防ぐ。HDCP対応のHDMI端子から出力される映像や音声は暗号化される
- 注意(略語の重なり):
- PLCは3つある。Programmable Logic Controller(シーケンス制御)、Penta-Level Cell(NAND型フラッシュメモリ)、Power Line Communication(電力線通信)
混同しやすいペア
- プログラム制御(CPUのレジスタを経由、遅い)/DMA(CPUを介さず直接。DMACが運ぶ)/チャネル(DMAの拡張。専用装置がチャネルプログラムで実行、CPUと並行)
- CCW(チャネル指令語=命令)/CAW(チャネルアドレス語=チャネルプログラムの場所)
- マルチプレクサチャネル(時分割で複数装置を同時に)/セレクタチャネル(1つの装置が最初から最後まで占有)
- シリアル(1本で1ビットずつ。今の主流)/パラレル(複数本で同時に)
- プラグアンドプレイ(差すだけで使える)/ホットプラグ(電源を入れたまま抜き差しできる)
- USB2.0まで(半二重)/USB3.0から(全二重)
- アイソクロナス転送(リアルタイム、確認なし)/バルク転送(大量を一括)/インタラプト転送(一定周期で少量)/コントロール転送(設定・制御)
- SCSI(パラレル、デイジーチェーンで7台)/SAS(シリアルのSCSI、Point-to-Point)/iSCSI(TCP/IP上のSCSI)
- パラレルATA/シリアルATA
- PCI(パラレル)/PCI Express(シリアル。PCIとAGPの後継)
- HDMI(映像+音声を1本で)/DisplayPort(HDMIの対抗、パケットで送る)
- IrDA(赤外線、遮蔽物に弱い)/Bluetooth(2.4GHz帯、1〜100m、遮蔽物OK)/NFC(かざす、数cm〜1m)