我正在读一本教科书,上面写着:
RISC处理器在嵌入式处理器市场上表现出色,控制着手机、汽车刹车和互联网设备等系统。在这些应用程序中,节省成本和电源比保持向后兼容性更重要。
这是否意味着RISC处理器(如ARM(与旧版本不向后兼容?
这是正确的;例如在真正旧的ARM上,具有非零低位的字加载意味着旋转对齐的字。在现代ARM上,这些位只是地址的一部分,并为您提供未对齐的负载。
因此,ARM一度巧妙地用依赖于该功能的罕见代码破坏了compat,使那些旧的二进制文件在现代ARM上无法使用。大多数ARM二进制文件仍然很好,因为它们完全避免了未对齐的字加载/存储。
另一个例子是MIPS
通常,当引入新的ISA版本时,会添加指令,但为了向后兼容,旧指令仍保留原样。例如,在x86中,许多几十年来没有人使用的指令直到现在仍然有效和受支持。然而,在MIPS III中,删除了一些指令以释放一些操作码。在MIPS V之后,当MIPS Technologies从SGI分离时,引入了一个重大的大修:MIPS32/MIPS64。命名方案被更改,一些更多的指令被删除
- 一些条件移动
- 分支可能指令(在早期版本中已弃用(
- 带16位立即数的整数溢出陷阱指令
- 整数累加器指令(与HI/LO寄存器一起,移动到DSP应用程序特定扩展(
- 未对齐的加载指令(LWL和LWR(,(要求大多数普通加载和存储支持未对齐的访问,可能通过捕获和添加新指令(BALIGN((
MIPS32/MIPS64
它也"重新组织了指令编码,为将来的扩展腾出了空间">
其中一个原因可能是MIPS将重点从高性能系统转移到了嵌入式系统