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