x86曾经遇到过制造商插入新的、未记录的操作码的情况。由于ARM控股公司缺乏晶圆厂,许可证持有人可能会插入"隐藏"操作码。在使用我的谷歌傅之后,这个理论似乎是不正确的。从文件或过去的经历来看,你知道任何"隐藏的助记符"吗?
XScale就是一个非常明显的例子。英特尔当时添加了自己的指令,以提供更具媒体功能的核心。
摘自"英特尔XScale®;核心开发人员手册":
2.3 ARM架构的扩展
第三代微体系结构扩展了ARMv5TE体系结构,以满足各种市场的需求以及设计要求。以下是扩展的列表这将在随后的部分中进行讨论。
- 添加了一个包含40位内部累加器的媒体处理协处理器(CP0)。增加了五条新指令,用于访问40位累加器。页面属性被添加到页面表描述符中,并增强了ARMv5TE中现有属性的描述。请注意,使用先前微体系结构的页表属性开发的软件保持兼容性
- 协处理器7和协处理器14寄存器被添加到第三代微体系结构中
- 协同处理器15的功能被扩展并且添加了新的寄存器
- 对异常体系结构进行了增强,其中包括指令缓存和数据缓存奇偶校验错误异常、调试异常和不精确的外部数据中止
在撰写本文时,Qualcomm
与Intel
类似,但方法更为封闭。可能他们不会直接向核心添加新指令,但他们会尝试以某种方式对其进行修改,使其相对于其他ARM
核心具有优势。SIMD指令就是一个例子,高通公司有自己的协同处理器VeNum
,与ARM内核相比,它在寄存器寻址方面的限制更少——请阅读Michael的评论作为例子。