データパスのハードウエア


図1:分岐無しの場合の動作説明用の図


図2: minimipsプロセッサのブロック図

部品の説明

 部品名     説明 
IROM
(命令ROM)
組合せ回路 図1では、ひとつのメモリ(メインメモリ)で、ある部分に命令(コード)を置き、他の部分にデータを置いたが、この実現例では命令用のメモリ(IROM)とデータ用メモリ(DRAM)の2つに分けている。
命令は自らのプログラム自身で内容を変更(セルフ・モディファイ・コード)しない方式が最近では普通であるので、読み出し専用メモリ(Read Only Memory: ROM)で実現されているとする。
Addで指定された部分に命令がDoutに読み出される。
DRAM
(データRAM)
順序回路 DRAMはデータ部を記憶するメモリであり、読み出し及び書き込みの両方の機能が必要であるので、ランダム・アクセス・メモリ(Random Access Memory: RAM)で実現されている。
図で明記していなが、三角マークはCLOCK入力を示しており、CLOCKの立ち上がりエッジで、書き込み可能信号WE=1であるとき、Addで指定された場所にDinのデータが書き込まれる。
RFILE
(レジスタファイル)
順序回路 32ビット(ワード) X 32のメモリです。このメモリに対して、同時に2つの場所のデータ読み出しと、ひとつの場所のデータ書き込みが可能です。
2つの場所の読み出しアドレスはそれぞれ、ra1, ra2であり、読み出されたデータはdo1, do2へ出力されます。
書き込みはCLOCKの立ち上がりエッジにて、waで指定されたアドレスにdinのデータが書き込まれます。
PC
(プログラムカウンタ)
順序回路 実行中の命令のアドレスを指定する32ビットレジスタで、中味は32個のD-FFです。
CLOCKの立ち上がりエッジにて、左からの入力を取り込み右へ出力します。
ALU
(算術論理計算ユニット)
組合せ回路 2つの32ビットの数をsr1, sr2で受け取り、CONTROLからの制御(図示なし)により、演算を行い結果をrstへ出力します。BEQ命令では引き算を行い、その結果が’0’であることを知るために、結果が’0’の時はzero出力(1ビット)が’1’となる。

(加算器)
組合せ回路 加算器です。
SE
(サインエクステンド)
組合せ回路 16ビットの数(正数も負数も)を32ビットの数に変換します。
M
(マルチプレクサ)
組合せ回路 複数の入力から一つを選びます。制御信号(図示なし)はCONTROLからやってきます。

(ビットの連接)
組合せ回路 入力の信号を束ねるだけで、実際にはゲートはなく、配線だけかもしれません。

 

図3:minimipsプロセッサの内部波形


 

図4:分岐ありの場合の動作説明用の図


宿題5 :学籍番号、名前、日付を書いて提出のこと。

1) 図1に示すメモリ内の5命令を実行した時のminimipsプロセッサの内部波形を

図3の形式で示せ!(5サイクル分)

 

2) 図4に示すメモリ内の5命令を実行した時のminimipsプロセッサの内部波形を

図3の形式で示せ!(13サイクル分)

 

3)minimipsプロセッサにCPIはいくらか?

 

4)図2に示すようにminimipsプロセッサのメモリを2つの同時に使用可能な、IROMとDRAM

で構成しているが、これをひとつのメモリで構成すると、CPIはどうなるか?

以上