2013-04-25 65 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个字节。