RISC 处理器不具有向后兼容性吗?

Do RISC processors not have backward compatibility?

我正在阅读一本教科书,上面写着:

RISC processors have done very well in the market for embedded processors, controlling such systems as cellular telephones, automobile brakes, and Internet appliances. In these applications, saving on cost and power is more important than maintaining backward compatibility.

这是否意味着 RISC 处理器(例如 ARM)不向后兼容旧版本?

没错;例如,在非常老的 ARM 上,具有非零低位的字加载意味着旋转对齐的字。在现代 ARM 上,这些位只是地址的一部分,并为您提供未对齐的负载。

所以 ARM 一度巧妙地破坏了与依赖于该功能的稀有代码的兼容,使得那些旧的二进制文件无法在现代 ARM 上使用。大多数 ARM 二进制文件仍然很好,因为它们完全避免了未对齐的字 loads/stores。

另一个例子是MIPS

通常在引入新的 ISA 版本时会添加指令,但仍保留旧指令 as-is 以实现向后兼容性。例如,在 x86 中,许多几十年来没有人使用的指令直到现在仍然有效并受到支持。然而,在 MIPS III 中,一些指令被删除以释放一些操作码。然后在 MIPS V 之后,当 MIPS Technologies 从 SGI 中分离出来时,引入了一次大修:MIPS32/MIPS64。更改了命名方案并删除了更多说明

  • some conditional moves
  • branch likely instructions (deprecated in previous releases).
  • integer overflow trapping instructions with 16-bit immediate
  • integer accumulator instructions (together HI/LO registers, moved to the DSP Application-Specific Extension)
  • unaligned load instructions (LWL and LWR), (requiring that most ordinary loads and stores support misaligned access, possibly via trapping and with the addition of a new instruction (BALIGN))

MIPS32/MIPS64

它还 “重新组织了指令编码,释放 space 用于未来的扩展。”

其中一个原因可能是因为 MIPS 将他们的重点从高性能系统转向了嵌入式系统