1

Datapath次の図のように、1 つの CPU から構成されています。次の命令アドレスが にある場合PC Register

次の命令をいくつフェッチして実行clock cycleする必要がありますか?word add

メモリは 10 ビットで、各命令は少なくとも 2 ワードです。すべてのレジスタは 10 ビットで、INC (increment), CLR (clear), LD(load)命令があります。Addrダイレクトアドレッシングを意味します。命令は 10 ビット ワードで機能します。

Wadd (src1), (src2), (dst)

ここに画像の説明を入力

私のインストラクターは、それが15クロックサイクルであることを解決します。ヒントやアイデア、これはどのように計算されますか?

編集:

私の試行 * よくわかりません。私の試行は True または False です。

ここに画像の説明を入力

4

1 に答える 1

0

PC一度を何度も移動すると、ソリューションはうまく機能しません。つまり、宛先ポインターをソース 2 ポインターとしてロードしています (手順 5 では、PC を再度インクリメントしないでください)。あなたのソリューションに他のエラーはありませんでしたが、より高速なエラーを見つけることができました:

[更新: どうやら、プロセッサにあると想定される IR があります。そのため、DR から IR をロードできると仮定します]

オペコードを取得

ステップ1:AR <- PC

ステップ2:DR <- M[AR]; PC++; AR++

ステップ 3:IR <- DR; DR <- M[AR]

ステップ 4:Decode(IR)

SRC1を取得

ステップ 5:AR <- DR; PC++

ステップ 6:DR <- M[AR]; AR <- PC

SRC2 取得 (SRC1 ~AC)

ステップ 7:AC <- DR; DR <- M[AR]; PC++

ステップ 8:AR <- DR

ステップ 9:DR <- M[AR]; AR <- PC

DEST を追加して取得する

ステップ 10:AC <- AC + DR; DR <- M[AR]

答えを DEST に入れます (別々のものは、次の命令に進みたい場合です)

ステップ 11:AR <- DR; DR <- AC PC++

ステップ 12:M[AR] <- DR AR <- PC

[UPDATE2: 15 サイクルかかるというランダムな要件があるようです。ここに 15 サイクルのソリューションがあります... 12 サイクルが理想的であり、TA/教授と話し合う必要があることに注意してください]

オペコードを取得

ステップ1:AR <- PC

ステップ2:DR <- M[AR]; PC++; AR++

ステップ 3:IR <- DR

ステップ 4:DR <- M[AR]

ステップ 5:Decode(IR)

SRC1を取得

ステップ 6:AR <- DR; PC++

ステップ 7:DR <- M[AR]

ステップ 8:AR <- PC

SRC2 取得 (SRC1 ~AC)

ステップ 9:AC <- DR

ステップ 10:DR <- M[AR]; PC++

ステップ 11:AR <- DR

ステップ 12:DR <- M[AR]; AR <- PC

DEST を追加して取得する

ステップ 13:AC <- AC + DR; DR <- M[AR]

答えを DEST に入れます (別々のものは、次の命令に進みたい場合です)

ステップ 14:AR <- DR; DR <- AC PC++

ステップ 15:M[AR] <- DR AR <- PC

于 2015-02-18T21:20:46.460 に答える