チャネル・コントローラ
チャネルコマンド語(channel command word、CCW)とは、チャネルに接続された機器の入出力操作("read" や "seek" など)を指示するコマンドである。
CCW によってチャネルプログラムが構成される。チャネルプログラムはOSか何らかの独立したソフトウェア(診断プログラムなど)が作成する。CPUが上述の機械語命令を実行すると、独立した入出力処理ユニットに信号が送られ、その装置が要求されたI/Oに責任を持つ。システムのメインCPUはその間別の作業ができる。I/O操作処理中にOSに通知すべき事象が発生すると、入出力プロセッサはCPUに割り込みを送信し、OSにその後の処理を任せる。
IBMメインフレームの初期の機種では、チャネルは1つの周辺装置と1対1に対応していた。その後、RISCプロセッサをチャネル・プロセッサとして使用するようになり、全チャネルを1つのチャネル・プロセッサで扱うようになっていった。
IBMのCCWはチェーニングによってチャネルプログラムを構成する。CCW内のビットで記憶装置上の次の位置にあるデータが同じチャネルプログラムを構成するCCWかどうかを示している。チャネルプログラムは例外発生や分岐CCW実行といった事象が発生するまで逐次的に実行され、チェーニング指定が途切れたところで終了する。チェーニングには「コマンドチェーニング」と「データチェーニング」がある。コマンドチェーニングは次のCCWが新たなコマンドであることを示す。データチェーニングは次のCCWが現在のコマンドの追加データのアドレスであることを示し、例えばデバイスに書き込む1レコード分のデータが主記憶上でばらばらに存在している場合などに対応できる。