制御装置とは、一般的に何らかのシステム全体、またはその一部を
制御する
装置を指します。その適用範囲は非常に広く、発電
施設や輸送機器、さらには
コンピュータのプロセッサに至るまで、多岐にわたります。ここでは特に、
コンピュータのプロセッサにおける
制御装置に焦点を当てて解説します。
プロセッサにおける制御装置
プロセッサにおける
制御装置(Control Unit)は、プロセッサの中核をなす要素の一つであり、
演算[[装置]]やレジスタの動作、記憶
装置へのデータの読み書き、
入出力など、プロセッサ全体の動作を統括する役割を担います。この
装置の出力によって、プロセッサ内の他の
装置の活動が
制御されます。
制御装置は、
有限オートマトンとしてモデル化されることがあり、理論的には
シーケンス[[制御]]と類似の動作を行います。しかし、一般的には、プロセッサの
制御を指す場合には「
シーケンス[[制御]]」という用語は使用されません。
初期の
コンピュータでは、
制御は「ランダム論理」によるワイヤードロジックで実現されていました。その後、マイクロプログラム方式が発明され、広く採用されるようになりました。例えば、System/360では、互換性のためのエミュレーションや、下位機種のハードウェアの単純化を目的として、マイクロプログラム方式が採用されました。
マイクロプロセッサの分野では、
16[[ビット]]化以降(例:インテルの8086)でマイクロプログラムが使われるようになりました。一方、
RISCはワイヤードロジックによる高速化を追求し、CISCもそれに対抗してワイヤードロジックを取り入れました。しかし、近年では
RISCにも複雑な命令を備えるものが登場してきています。
初期の
コンピュータでは、プロセッサの構成要素は「
制御装置と
演算[[装置]]」のように分類されていましたが、プロセッサの高機能化・高性能化に伴い、「
実行ユニット」という考え方が主流になりつつあります。
また、バスマスタリングのように、各サブシステムが専用のコントローラを持ち、そのコントローラが監督者として動作する仕組みも存在します。
制御装置は、プロセッサの各部分を
制御するための電子的
制御信号を生成します。
制御の複雑さによって、
制御装置の設計も異なります。
マイクロプログラム方式
マイクロプログラム方式では、コントロールストアに格納されたマイクロプログラムを用いて
制御を行います。マイクロシーケンサがマイクロ命令を読み取り、実行します。マイクロ命令は、プロセッサ内の各部の
制御に割り当てられており、例えばレジスタ、
演算[[装置]]、命令レジスタ、バス、そしてチップ外部との
入出力などを
制御します。
ワイヤードロジック方式
ワイヤードロジック方式では、論理回路によって直接的に
制御信号を生成します。現代の複雑なプロセッサをワイヤードロジックで
実装することは、
集積回路の大規模化や設計技術の向上によって可能になりました。
コンピュータのプロセッサ以外にも、様々な
制御装置が存在します。例えば、輸送機器における
速度や姿勢の
制御装置があり、これには
手動制御(
運転手、
操縦士による操作)と
自動制御(ATO、
自動運転車、
オートパイロット)の両方が存在します。また、サーボ系による
制御装置(サーボ機構)も、精密な
制御を必要とする場面で広く利用されています。
関連項目
CPU設計
コンピュータ・アーキテクチャ
操縦
マスター・コントローラー
主[[制御器]]
アビオニクス
* 飛行管理
装置