运行其部分如下所示的程序所需的最小内存量是多少?在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)发布于 2017-09-13 14:20:17
AFAIK,流水线和在特定阶段上花费的时间有助于动态指令计数和/或指令处理时间,但不能帮助存储程序所需的内存。
.text从0x10010000开始
.data从0x00400000开始
您需要多少内存似乎是合理的,这取决于硬件/芯片组是否可以在不同位置虚拟呈现内存,而不需要物理内存来填补空白。
无虚拟/逻辑内存管理
如果没有提供逻辑内存管理的芯片组或系统,似乎需要4194304字节,或者如果没有.data部分,则需要4MB。如果你在.data中有任何东西,那么它至少需要256MB +64KB+无论你存储多少字节。
在您的示例中,这意味着您需要256MB+64KB+ 36字节= 268501028字节,或大约256.07 MB。
使用虚拟内存管理
假设您的MIPS程序运行在一个执行虚拟内存管理的平台上。则系统可以在例如0x10010000位置呈现存储器,而不实际具有物理上定位的所有先前地址(如0x1000ffff)。
此外,如果您使用修改后的MIPS内存布局,则此分析可能会起作用。在MARS中,可以通过将.data设置为从地址0x0开始来压缩内存。
在这里,它将是指令加上数据的直接计算。在您的示例中,由于ble和l.d是伪指令,因此它们将指令的数量从表面上的8条增加到11条。.text中的11个字(44字节)加上.data中的9个字(36字节)即为80个字节。
https://stackoverflow.com/questions/16205593
复制相似问题