2013-04-25 36 views
1

運行程序所需的最小內存量(其部分在下面給出)以及MIPS爲5個流水線階段的哪個運行時間,定點操作每階段爲2納秒?在浮點運算階段EX的成本爲16納秒。這些指令只保存其執行所需的多個流水線階段(假定沒有流水線衝突)。MIPS最小需要的內存空間

.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) 

回答

0

AFAIK,花費在特定階段的流水線和時間有助於動態指令計數和/或指令的處理時間,但不是說需要存儲該程序的存儲器。

.text開始在0x10010000

.data開始在0x00400000

這似乎是合理的,你需要多少內存取決於如果硬件/芯片組可以在不同的地點實際上目前的內存,而不需要物理內存來填補差距。

沒有虛擬/邏輯內存管理

如果沒有芯片或系統提供邏輯存儲管理,似乎你需要4194304個字節,或4 MB,如果你沒有一個.data部分。如果您在.data中有任何內容,那麼您至少需要256MB + 64 KB +無論您存儲多少字節。

在您的示例中,這意味着您需要256 MB + 64 KB + 36個字節= 268501028個字節或256.07 MB。

使用虛擬內存管理

假設你的MIPS程序是做虛擬內存管理的平臺上運行。然後,系統可以在位置0x10010000處呈現存儲器,例如,實際上不具有所有以前的地址(如0x1000ffff)的物理位置。

此外,如果您使用修改的MIPS內存佈局,此分析可能會有效。在MARS中,您可以通過將.data設置爲從地址0x0開始來壓縮內存。

這裏是對指令和數據的直接計算。在你的例子中,由於blel.d是僞指令,它們將指令的數量從明顯的8條增加到11條真正的機器指令。 .text(44字節)中的11個字加.data(36字節)中的9個字給出80個字節。