assembly - 使用铁律寻找性能
问题描述
考虑为加载存储机器的 ALU 指令的源操作数添加寄存器内存寻址模式。这个想法是替换序列
LOAD R1, 0(Rb) # R1 = MEM[0 + Rb]
ADD R2, R1, R2 # R2 = R1 + R2
通过单一指令
ADD R2, 0(Rb) # R2 = R2 + MEM[0+Rb]
假设新指令会使处理器的时钟周期增加 5%。使用指令组合回答以下问题:
40% ALU,25% 跳转,20% 负载,10% 存储,5% 其他
(a) 必须消除多少百分比的负载才能使带有新指令的机器至少具有与原始指令相同的性能? 提示:使用铁律。
(b) 这种替换是否可以应用于所有加载序列,然后是加载值的 ALU 操作,或者是否存在不能使用的情况?
有人知道从哪里开始吗?
解决方案
推荐阅读
- c++ - 我可以 memcpy 对象数据,它在 C++11 中具有标准布局兼容类吗?
- python - Python 和 Tkinter:类和实例创建错误
- javascript - 如何在react-native中显示从另一个js文件到当前文件的模式?
- angular - Angular 6如何获取两个位置AGM之间的距离
- c# - 打开本地pdf文件时,Wpf WebView显示空白窗口
- javascript - 类型“T”上不存在属性 - 一般问题
- javascript - 使用 JSON 文件作为 Javascript Web 应用程序的数据库
- import - 当名称从 HelloWorld 更改时,vuejs2 不导入
- java - 使用列表锁定实现生产者消费者问题
- java - setAttribute 在 HtmlUnit 中没有按预期工作