next up previous
: データパスの構築と制御 : マイクロプロセッサ演習 : データパス構成の準備1

データパス構成の準備2~レジスタファイル

本章では、データパス構築の際に頻出するレジスタファイル の構造と動作を解説する。 レジスタファイルとはレジスタが複数集まったものである (MIPS では 32 個)。 なお、本章は教科書下巻「付録 B 論理設計の基礎」に基づいている。

MIPS で用いられるレジスタファイルを図 5 に示した。 2 つの読み出しポートと 1 つの書き込みポート、および クロックとして用いられる書き込み用の制御信号 (Write) があることがわかる。

図 5: MIPS で用いられるレジスタファイル。2 つの読み出しポートと 1 つの書き込みポート、およびクロックとして用いられる書き込み用の制御信号 (Write) がある。
\includegraphics[scale=1.0]{eps/register1}

読み出し用ポートとその構成を図 6 に示した。

図 6: レジスタの読み出しポート。
\includegraphics[scale=0.9]{eps/register2}
32 個あるレジスタの番号を指定すると、そのレジスタの内容が出力に 現れる。図にあるように、レジスタの読み出しデータは組合せ論理回路のように、 レジスタ番号の変更に伴い、即座に反映される (もちろん、マルチプレクサ (Mux) 分の遅延は伴う)。 このように、レジスタの読み出しは組合せ論理回路の様に読み出せることに 注意しよう。

一方、レジスタの書き込みポートは 図 7 の様に構成される。 レジスタ番号 (0 ~ 31) から、デコーダを利用して一つのレジスタのみを選択し、 そこにレジスタデータ D (32 ビット) を書き込むようになっている。 また、一つ一つのレジスタは 32 個の D フリップフロップから構成される。

図 7: レジスタ・ファイルの書き込みポート。D フリップフロップは、クロックの立ち下がりエッジでトリガされるとして図を描いた。
\includegraphics[scale=0.9]{eps/register3}
レジスタファイルの書き込みは状態論理要素として利用されることに注意しよう。

平成17年1月12日