next up previous contents index
Next: 制御線 Up: データ処理部 Previous: バス   Contents   Index

レジスタ

レジスタ(register)とはデータを一時的に蓄えておくメモリーのことである。 各バスとはスイッチを経由して入出力の授受ができるようになっているが, バスの線間の情報のやりとりはしないので, 線ごとにデータのビット幅だけのメモリーを配置すればよい。 また,当然メモリーの内容は書換え可能でなければならない。

図 9.3に1bit分のレジスタ回路の構成を示す。 基本的には前に示した図 5.8の簡易型と同じであるが, 2バスに接続可能なことだけが異なる。 この回路をデータ幅の個数だけ用意したものをレジスタ1個とする。 簡易型のレジスタを採用したのは,回路規模が小さくなることに加え, 読み込んだデータを同じバスへ戻すことはないこと, AバスからBバスへ直ちに移動するような作業も滅多にないことによる。

Figure 9.3: レジスタ回路($Wt$$Rd$は,各バスからの書込み,読み出し)
\begin{figure}\centering
%
\unitlength 1pt
\begin{picture}(177,130)
\put(0,0){\...
...\makebox(0,0)[lb]{{\footnotesize$\phi_1\cdot WtB$}}}
\end{picture}
\end{figure}

この内容を書き換えるには,$\phi _1$のクロックでいずれかのバスの値に設定する。 このとき,$\phi_2=0$のため,ループは開いているので,書換えは容易である。 また,レジスタの内容をバスに出力したいときには, 同じく$\phi _1$のタイミングで出力側のスイッチをバスに接続する。 つまり,$\phi _1$のタイミングはデータの移動など主たる動作に充てられている。 $\phi _2$はリフレッシュに用いられる。

レジスタは多いほど便利がよいが,その分チップ面積をとるので,数個に抑える。 この例の場合には16個のレジスタを考えよう。 データ幅を16bitとすると, 上記の回路と同じものが $16\times16=256$あることになる。

なお,ALUの入力レジスタは,データをバスから$\phi _1$で受領して, $\phi _2$でALU本体に渡さねばならない。 この場合には,図 9.3の右側の $\phi_1\cdot RdA$ などを外したものを利用する。 $\phi _2$で動くゲートはALU出力レジスタ側に用意することにする。 ALUは,この出力のNOTも必要とするが, それは二つのNOTの間から出力を取り出すことで達成する。 同様にALUの出力レジスタは,データをALUより$\phi _2$で受領して, $\phi _1$でバスに渡さねばならない。 この場合には, 同図左側の $\phi_1\cdot WtA$などを一つにしてALU本体出力に接続し, $\phi_2\cdot Wt$に置き換え, さらに中央の$\phi _2$$\phi _1$に変更することで達成する。


next up previous contents index
Next: 制御線 Up: データ処理部 Previous: バス   Contents   Index
Yoichi OKABE 2008-03-29