【问题标题】:Memory accesses in MIPSMIPS 中的内存访问
【发布时间】:2011-09-25 18:43:54
【问题描述】:

我们周二正在准备计算机组织与设计的期中考试,但我们都不懂以下问题:

procedure:
    addi $sp, $sp, -4
    sw $ra, 0($sp)
    ... Some unknown work is done ...
    addi $sp, $sp, 4
    lw $ra, -4($sp)
    jr $ra

(1-H) 再次考虑上面的代码,并假设它有效。如果在执行过程中,“未知 work' 部分导致从内存中读取 100 个单词,将从中读取多少个单词 整个过程执行期间的内存? (考虑所有内存访问。

这是答案:106. 100 次内存读取用于未知工作,加上 5 次内存读取以读取所示指令,再加上 1 次内存读取在“lw”指令期间。

如果有人能帮助我们准确了解这 6 次内存读取中的每一个发生的位置,我们将不胜感激!

【问题讨论】:

  • 顺便说一句,如果您提到确切的教科书及其版本,可能会指向相关部分。
  • 谢谢!这是计算机组织与设计第 4 版。 ISBN 9780123744937 但是,我已经有了解决方案手册。我只是在寻找更彻底的解释。此外,这个特殊问题来自教授发布的练习中期(连同答案)。
  • 我怀疑它可能来自COD,不幸的是我手头只有第二版,所以我不能给你一个好的章节引用。但是以后请记住包括问题中使用的教科书,因为它可能会引出更好的答案。

标签: assembly mips


【解决方案1】:

让我们从显而易见的开始:在“未知工作”部分执行 100 次读取,剩下 6 次读取。一次读取是针对lw 指令(lw $ra, -4($sp)),它从内存中读取一个字。最后 5 次读取由 CPU 在指令获取阶段隐式完成。

addi $sp, $sp, -4                   # 1 read (CPU reads the instruction word)
sw $ra, 0($sp)                      # 1 read -------------- ## --------------
... Some unknown work is done ...   # 100 reads (given in question)
addi $sp, $sp, 4                    # 1 read (CPU reads the instruction word)
lw $ra, -4($sp)                     # 2 reads (CPU reads the instruction word, lw instruction also reads)
jr $ra                              # 1 read (CPU reads the instruction word)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-17
    • 2019-05-13
    • 2016-07-14
    • 2018-06-06
    • 2011-07-11
    • 2016-06-03
    • 2013-11-05
    • 2016-03-12
    相关资源
    最近更新 更多