8

私のコンピュータアーキテクチャの本はそれを説明しています

「レジスタファイルへの書き込みはエッジトリガーであるため、私たちの設計では、クロックサイクル内で同じレジスタを合法的に読み書きできます。読み取りでは、以前のクロックサイクルで書き込まれた値が取得され、書き込まれた値は読み取りに使用できます。後続のクロックサイクル。」

これはある程度意味があり、レジスタファイルで何が起こっているのかをある程度理解しています。しかし、それぞれの出来事がいつ起こるのかわかりません。32個のレジスタファイルの1つから読み取り、同じサイクルで書き込みを行っているとします。レジスターはいつから読み取られますか?いつ書き込まれますか?イベントがクロックエッジによってどのようにトリガーされるかを完全には理解していないので、それについても説明しておくと役に立ちます。ありがとうございました!

4

2 に答える 2

6

レジスタの値の読み取りは非同期ですが、クラスで作業しているアーキテクチャでは、レジスタは同期的に書き込まれます (つまり、書き込みはエッジ トリガーされます)。

これは、レジスタの現在の値を読み取り、何らかの操作を適用し (即値を追加するなど)、次の立ち上がりクロック エッジで結果を書き込むことができることを意味します。

を発行するとしますaddiu $1, $1, 123。つまり、 の現在の値を取得し$1、123 を加算して、結果を に戻し$1ます。

クロック サイクルの開始時に、コントロール ユニットはレジスタ ファイルに、ALU に入るデータ バスの 1 つに $1 の内容を入れるように指示します。制御ユニットは、即値 123 を、ALU にも入る他のデータ バスに入れるようにも指示します。ALU内に実装された単なる組み合わせ回路である加算は、前述の加算を計算し、その結果をレジスタファイルを接続するデータバスに格納します。これはすべて、クロックの立ち上がりエッジが発生する前に行われ、加算の結果は次の立ち上がりエッジまで表示されます。ある時点で立ち上がりエッジが発生し、加算の結果がレジスタに書き戻されます$1

于 2012-11-05T17:30:39.280 に答える
1

レジスタファイルはフリップフロップから作成されます。各フリップフロップには、ストア、入力、出力、およびトリガーがあります。出力は常に保存された値を示しているため、常に読み取ることができます。トリガーの立ち上がりエッジで、入力値がストアに移動します。

于 2012-11-08T12:54:47.817 に答える