専用プロセッサ(チャネル)が入出力処理を独立して行う制御方式
チャネル制御方式とは、入出力処理を専門に行う「チャネル」という専用プロセッサが、CPUに代わって入出力を独立して処理する方式のことです。チャネルは、入出力のためだけに用意された「もう一つの小さなCPU」のような存在だと考えると分かりやすいです。
身近な例で考えると、会社の社長(CPU)が、面倒な事務作業を専属の事務担当者(チャネル)に丸ごと任せるのに似ています。社長は「この書類を処理しておいて」と指示を出すだけで、あとは自分の本業(経営=計算)に専念できます。事務担当者は複数の作業を自分の判断で順番にこなし、終わったら社長に報告します。
上の図解では、CPUがチャネルに入出力命令を渡し(①)、チャネルが複数のI/O装置をまとめて面倒みて(②)、メモリへ直接転送し(③)、完了をCPUへ割込みで通知する(④)という流れを示しています。CPUは入出力の細かい処理にほとんど関わりません。
チャネルが「専用プロセッサ」と呼ばれるのは、チャネル自身が入出力用の命令列(チャネルプログラム)を解釈して、自分で実行できるからです。CPUは入出力の手順を1つずつ指示するのではなく、「この一連の入出力をやっておいて」とまとめて任せられます。
チャネルが担う具体的な役割は次のとおりです。
・入出力命令の実行:CPUから受け取ったチャネルプログラムを自分で順に処理する
・複数のI/O装置の管理:1つのチャネルに複数の装置をつなぎ、まとめて制御する
・メモリとの直接転送:データをCPUを介さずメモリへ直接やり取りする
・完了の通知:処理が終わったらCPUへ割込みで知らせる
チャネルには接続方法によって種類があり、代表的なものにセレクタチャネル(1台の高速装置を集中して扱う)とマルチプレクサチャネル(多数の低速装置を切り替えながら扱う)があります。いずれも「CPUの代わりに入出力を一手に引き受ける専門家」という点は共通です。大型のコンピュータ(メインフレーム)で、多数の装置を効率よくさばくために発展した仕組みです。
チャネル制御方式とDMA制御方式は、どちらも「CPUを介さずにメモリとI/Oを転送する」点が共通しているため混同しやすいですが、CPUを助ける度合いに違いがあります。
| 項目 | DMA制御方式 | チャネル制御方式 |
|---|---|---|
| 担当する装置 | DMAコントローラ | チャネル(専用プロセッサ) |
| 賢さ | データ転送に特化(単純) | 命令列を解釈し自分で実行(高度) |
| 扱う範囲 | 主に1つの転送を代行 | 複数のI/Oを独立してまるごと処理 |
| CPUの関与 | 転送条件を設定 | 入出力命令を渡すだけ |
| 主な用途 | PCなど一般的な機器 | 大型機(メインフレーム) |
両者の関係を一言でまとめると、DMAは「データ運びだけを代行する単純な助手」、チャネルは「入出力の段取りごと任せられる賢い専門家」です。チャネルはDMAの機能を含みつつ、さらに自分でプログラムを実行して複数の装置をさばける、より高度な仕組みだと考えると整理できます。
身近な例で対比すると、DMAは「指定した荷物を運ぶだけの配送スタッフ」、チャネルは「複数の取引先とのやり取りを段取りから任せられる営業担当」のような違いがあります。CPUをより深く入出力の手間から解放するのがチャネル制御方式だと覚えておくとよいでしょう。