考虑对执行以下指令的单周期非流水线处理器进行更改:LDUR
、STUR
和。考虑以以下方式用一对新指令替换指令的修改:R-type
CBZ
LDUR
原始代码:
LDUR X1, X2, #100 /* X1=mem[X2+100] */
新代码:
ADD X4, x2, #100 /* X4=X2+100 */
LD X1, X4 /* X1=mem[X4] */
我被问到可能的优点和缺点。我可以看到在非流水线处理器上将一条指令变成 2 条指令的缺点。我似乎找不到任何可能的优势。
有谁知道这样做的可能优势?