デバイスコントローラ(I/O機器向けハードウェアインターフェース)
コンピュータのCPUとバスを周辺機器につなぎ、データ転送、信号処理、バッファリング、低レベル制御を担うハードウェアモジュール。プリンタ、ディスク、ネットワーク、USBなどに用いられる。
デバイスコントローラは、コンピュータの中央処理装置(CPU)と1つ以上の周辺機器との通信を仲介するハードウェア部品である。CPUおよびシステムバスには標準化された интерфェースを提供し、接続された機器に必要な電気信号、タイミング、低レベルのプロトコルを処理する。コントローラは、独立した拡張カード、マザーボード上の集積回路、あるいは周辺機器内に組み込まれた形で存在することがある。
画像ギャラリー
1 画像機能と特徴
基本的には、デバイスコントローラはCPUからの命令を機器固有の動作に変換し、機器の状態をオペレーティングシステムへ返す。典型的な役割には、コマンドの解釈、データのバッファリング、エラー検出、タイミング制御、信号変換が含まれる。多くのコントローラは、CPUやデバイスドライバが読み書きする制御レジスタとステータスレジスタを備え、処理完了やエラー条件を知らせるための割り込み信号にも対応する。
主な構成要素
- インターフェース論理:システムバス(メモリマップドI/OまたはポートマップドI/O)へ接続する。
- 制御レジスタとステータスレジスタ:コマンド、状態、設定情報を提供する。
- データバッファ:CPUと機器の速度差を吸収する一時保存領域。
- タイミング回路と信号回路:機器固有の電気信号を生成し、解釈する。
- ファームウェアまたはマイクロコントローラ:多くの現代的なコントローラは、処理を肩代わりするオンボードプロセッサを備える。
種類と例
- ディスクコントローラ(IDE、SATA、NVMe)は、ストレージ機器のプロトコルを扱い、DMAやキャッシュを実装することが多い。
- ネットワークインターフェースコントローラ(NIC)は、パケット送信、チェックサム、リンク層プロトコルを管理する。
- USBホストコントローラは、複数の機器に対するホスト側のUSBプロトコル処理を担う。
- グラフィックスコントローラ/GPUインターフェースは、表示ハードウェアを制御し、描画処理を高速化する。
コントローラは、単に信号を通すだけの単純なトランシーバから、自身のプロセッサとファームウェアを持ち、大きな前処理を行う知的な装置まで幅広い。低レベルの作業をCPUから切り離すことで、コントローラは非同期I/Oを可能にし、スループットを向上させ、オペレーティングシステムのドライバを簡潔にする。
ソフトウェアとの関係
オペレーティングシステムはデバイスドライバを通じてデバイスコントローラと通信し、ドライバは高レベルのI/O要求を、コントローラが理解できる個別のレジスタ操作やコマンド列へ変換する。このやり取りで重要なのが、割り込み、ポーリング、そしてダイレクトメモリアクセス(DMA)であり、これらによってコントローラはCPUの介入を最小限にしてデータを移動できる。
歴史的には、デバイスコントローラは、機器の複雑化と性能要求の高まりに伴い、初歩的な電気インターフェースから高度な組み込みシステムへと発展してきた。コントローラの理解は、ハードウェア性能の診断、ドライバ設計、新しい周辺機器との接続を行う際に不可欠である。
関連項目
著者
AlegsaOnline.com デバイスコントローラ(I/O機器向けハードウェアインターフェース) Leandro Alegsa
URL: https://ja.alegsaonline.com/art/26976