データ処理部内の各機能ブロック間のデータの伝達に用いられているデータバスとのアクセスの仕方について述べよう。
これには三つの関係の仕方が存在する。
データを送る,受ける,それと無関係の三つである。
これをプリチャージ回路で実現するには,
図 9.2のような回路にする必要がある。
機能ブロックの出力をバスに出すには
のタイミングで
によって,電位を引き下げればよい。
この出力をバスに接続するかは,
(Select)で決定される。
入力はもっと簡単であり,
で選択するだけでよい。
シフタなどの回路は,バスからデータをもらって, 同じバスの異なる線にデータを返す。 このため,出力データをいったん蓄えて, 次のタイミングで出力するような配慮が必要である。 このためには,1クロック遅延を与える遅延回路, もしくは何らかのレジスタが必要となる。
ALUには同時に最大2入力が必要である。 このため,バスの本数が少ないと, ALU側にいくつかのレジスタを置くなどの配慮が必要となる。
バスを多くするのは,速度も速くなり,一見楽のようであるが,
集積回路のチップの面積は限られており,
バスをどんどん増やすのは常に得策とは限らない。
要するに,何を重視し,何を犠牲にするかの問題となる。
こうした,回路の大まかな構造をアーキテクチャ(architecture)と言う。
本書ではバスAとバスBの2バスを用いよう。
なお,本書のALUは演算のタイミング(
)とデータ移動のタイミング(
)が異なるため,
2バスシステムでも,ALUは入力側にも出力側にもレジスタを必要とする。