1

以下に示す部分のプログラムを実行するために必要なメモリの最小量と、5 つのパイプライン ステージの MIPS、固定小数点演算のステージごとに 2 ナノ秒のランタイムはどれですか? 浮動小数点演算では、ステージ EX のコストは 16 ns です。命令は、その実行に必要な数のパイプライン ステージのみを継続します (パイプラインの競合がないと仮定します)。

.data
    Pf1:    .word 0x41400000
    Vet1:   .double 1.0, 2.0, 3.0, 4.0

.text

leaf_example:
    addi $sp, $sp, -48
    sw $s0, 0($sp)
    sll $t0, $s0, 5
label:  addu $t0, $t0, $s2
    sll $t0, $t0, 3
    addu $t0, $a1, $t0
    bgt $t0, $s0, label
    l.d $f18, 0($t0)
4

1 に答える 1

0

私の知る限り、パイプライン処理と特定のステージに費やされる時間は、動的な命令数や命令処理時間に役立ちますが、プログラムを格納するために必要なメモリには役立ちません。

.text0x10010000 から開始

.data0x00400000 から開始

ハードウェア/チップセットが、ギャップを埋めるために物理メモリを必要とせずに、さまざまな場所にメモリを仮想的に提示できるかどうかに応じて、必要なメモリの量が決まるのは当然のことです。

仮想/論理メモリ管理なし

.data論理メモリ管理を提供するチップセットまたはシステムがなければ、4194304 バイト、またはセクションがなければ 4 MB が必要になるようです。に何かがある場合.data、少なくとも 256MB + 64 KB + 保存するバイト数が必要です。

あなたの例では、これは 256 MB + 64 KB + 36 バイト = 268501028 バイト、または約 256.07 MB が必要であることを意味します。

仮想メモリ管理あり

仮想メモリ管理を行っているプラ​​ットフォーム上で MIPS プログラムが実行されているとします。次に、システムは、たとえば、以前のすべてのアドレス (0x1000ffff など) を実際に物理的に配置することなく、メモリを位置 0x10010000 に提示することができます。

また、この分析は、変更された MIPS メモリ レイアウトを使用する場合にも機能する可能性があります。.dataMARS では、アドレス 0x0 から開始するように設定することで、メモリを圧縮できます。

ここでは、命令とデータの単純な計算になります。あなたの例では、blel.dは疑似命令であるため、見かけの8から11の実際のマシン命令に命令の数を増やします。11 ワード.text(44 バイト) と 9 ワード.data(36 バイト) で 80 バイトになります。

于 2017-09-13T06:20:17.277 に答える