You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MIPS五级流水线代码执行周期计算及程序终止性疑问

MIPS流水线周期计算与程序终止性疑问

背景

32位MIPS处理器,五级流水线支持停顿但无转发,分支指令比较在执行阶段完成,无分支延迟槽。需计算从foo标签后的addi指令取指周期开始,到jr指令取指周期(含)的时钟周期总数。

汇编代码

.data
.align 2

numbers: .space 40
.align 2

.text
start:
    la $a0, numbers
    addi $a1, $0, 10
    jal foo

foo:
    addi $sp, $sp, -4
    sw $a0, 0($sp)

loop:
    sw $a1, 0($a0)
    addi $a0, $a0, 4
    addi $a1, $a1, -1
    bne $a1, $0, loop

    lw $t3, 0($sp)
    addi $sp, $sp, 4
    lw $t0, 0($t3)
    lw $t1, 4($t3)
    add $v0, $t0, $t1
    jr $ra

周期计算分歧

我的计算逻辑:无数据/控制冒险时总周期为52(首条addi指令占5个时钟周期,后续47条指令每个增加1个周期),加上52个冒险延迟周期,总周期应为104。但参考答案仅累加48个延迟周期,得出总周期96的结论,我认为这个答案有误。

程序终止性疑问

我认为这段程序会正常终止,但参考答案认为程序不会终止,希望能得到明确的解答。

内容的提问来源于stack exchange,提问作者Need_MathHelp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:52:34