当前位置: 首页 > 知识库问答 >
问题:

MIPS中的数据危害(真正的依赖关系)

丰景同
2023-03-14
I1:LW R1, 0(R4) ; R1 ← address (0+R4)
I2:ADDI R2, R1, #8 ; R2 ← R1+8
I3:MULT R3, R1, R1 ; R3 ← R1*R1
I4:SW R3, 4(R2) ; address(4+R2) ← R3 

在上面的MIPS代码中,在解决方案表中,真正的依赖项标记为I3-

共有1个答案

刘绍晖
2023-03-14

写后写危险

不,这不是一个写后再写的危险。

因此,R3在被I3写入后被I4读取。

 类似资料:
  • 考虑以下mips代码段 我知道指令1和2之间的$t1上存在WAW数据危险,但第1行是否存在战争危险,因为我们在一条指令中读取和写入$t1?

  • 我在读OOOE(无序执行)以及如何解决虚假依赖关系(通过使用重命名)。 但我的问题是,我们如何解决真正的依赖关系(RAW-写后读)? 例如: 如果CPU选择在#1之前运行#2,则重命名在此处没有帮助。

  • 问题内容: 我需要找到函数/过程(在包体内定义)和它们使用的表之间的依赖关系。 我试过了,但它仅在包级别有效,而在内部功能/过程级别无效。是否有可能使用eg找到这种依赖关系? 在此先感谢您的帮助。 问题答案: 无法找到过程(在包中)和表之间的依赖关系。 有几种工具可以检查依赖关系。正如您已经发现的那样,仅在每个包级别上跟踪对象依赖关系。有一个整洁的工具PL / Scope 可以跟踪软件包各部分之间

  • 在具有管道和转发功能的MIPS体系结构上: add指令将在步骤3(执行操作)准备好结果,但我假设sw指令希望在步骤2(指令解码)得到结果 David A. Patterson的《计算机组织与设计》一书中有一个已解决的练习:在以下代码段中找到危险并重新排序指令以避免任何管道停滞: 解决方案: 在解决方案中,它正确识别加载使用危险并相应地重新排列代码,但是否也存在执行存储危险?

  • 本文向大家介绍浅谈Python中eval的强大与危害,包括了浅谈Python中eval的强大与危害的使用技巧和注意事项,需要的朋友参考一下 eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表达式的结果。 python中eval函数的用法十分的灵活,但

  • 我现在开始学习Java和Spring Boot,并且在集成测试中遇到了一些依赖注入问题。我在src/main/java/com/rfd/domain/service下有一个名为TransactionService的类,它被标记为@Service,它有另一个依赖项,其中一个是Spring Boot创建的存储库。当我启动应用程序时,它会正确启动,因此我假设依赖项正在正确解析。这是总结的类: 现在,我在