next up previous contents index
Next: レジスタ Up: データ処理部 Previous: タイミング   Contents   Index

バス

データ処理部内の各機能ブロック間のデータの伝達に用いられているデータバスとのアクセスの仕方について述べよう。

これには三つの関係の仕方が存在する。 データを送る,受ける,それと無関係の三つである。 これをプリチャージ回路で実現するには, 図 9.2のような回路にする必要がある。 機能ブロックの出力をバスに出すには$\phi _1$のタイミングで $\overline{Out}$によって,電位を引き下げればよい。 この出力をバスに接続するかは,$Sel$(Select)で決定される。 入力はもっと簡単であり,$Sel$で選択するだけでよい。

Figure 9.2: 機能ブロックとバスとの結合回路
\begin{figure}\centering
%
\unitlength 1pt
\begin{picture}(158,96)
\put(0,0){\s...
...kebox(0,0)[rb]{{\footnotesize\rm$\phi_1\cdot Sel$}}}
\end{picture}
\end{figure}

シフタなどの回路は,バスからデータをもらって, 同じバスの異なる線にデータを返す。 このため,出力データをいったん蓄えて, 次のタイミングで出力するような配慮が必要である。 このためには,1クロック遅延を与える遅延回路, もしくは何らかのレジスタが必要となる。

ALUには同時に最大2入力が必要である。 このため,バスの本数が少ないと, ALU側にいくつかのレジスタを置くなどの配慮が必要となる。

問題1
バスが1系統しかない場合,ALUにはいくつのレジスタが必要か。 また,レジスタをどこに置くのがよいであろうか。 バスが2系統の場合,3系統の場合についても考察せよ。

バスを多くするのは,速度も速くなり,一見楽のようであるが, 集積回路のチップの面積は限られており, バスをどんどん増やすのは常に得策とは限らない。 要するに,何を重視し,何を犠牲にするかの問題となる。 こうした,回路の大まかな構造をアーキテクチャ(architecture)と言う。 本書ではバスAとバスBの2バスを用いよう。 なお,本書のALUは演算のタイミング($\phi _2$)とデータ移動のタイミング($\phi _1$)が異なるため, 2バスシステムでも,ALUは入力側にも出力側にもレジスタを必要とする。


next up previous contents index
Next: レジスタ Up: データ処理部 Previous: タイミング   Contents   Index
Yoichi OKABE 2008-03-29