第三方 - MontaVista、QNX、Wind River Symbian Windows CE 需要使用内存管理单元的其他操作系统支持 指令集支持 - ARM、Thumb-2、Thumb、Jazelle 示例处理器- ARM7TDMI® • ARMv5TEJ 架构 引进了数字信号处理 (DSP) 算法(如饱和运算)的算术支持和 Jazelle® Java 字节码引擎来启用 Java 字节码的硬件执行 与非 Java 加速内核比较,Jazelle 将 Java 执行速度提高了 8 倍,并且减少了 80% 的功耗。
许可费用:RISC-V是开放的,可以免费使用,而X86和ARM等则需要许可费 广义上,它们的功能集:浮点数(x87)、加密(AES-NI)、支持本地高级字节码执行(Jazelle、AVR32B)、矢量计算
还提供了一些扩展功能,比如Java加速器(Jazelle)、用以提高安全性能的TrustZone技术、智能能源管理(IEM,Intelligent Energy Manager)、SIMD和NEONTM 在2000年,ARMv5TEJ版本中增加了Jazelle技术用于提供Java加速功能。相比于仅用软件实现的Java虚拟机,Jazelle技术使得Java代码的运行速度提高8位,而功耗降低80%。 Jazelle技术使得可以在一个单后的处理器上运行Java程序、已经建立好的操作系统和应用程序。 (5)ARMv6。 在2001年,ARMv6问世。 :表示支持Thumb指令集 ② D:表示支持片上调试(Debug) ③ M:表示内嵌硬件乘法器(Multiplier) ④ I:支持片上断点和调试点 ⑤ E:表示支持增强型DSP功能 ⑥ J:表示支持Jazelle
3.J位: * 仅ARM 5TE/J 架构支持 * J=1时,处理器处于Jazelle状态 跳转过程 异常向量表 所有的CPU都有异常向量表,这是CPU设计时就设定好的,是硬件决定的。
Hardware execution of Java bytecode, such as that offered by ARM's Jazelle, was also explored to offer
其中比较出名的是Jazelle DBX,这是一个主要支持J2ME环境的硬件架构。为了提升java在手机端的执行速度。 但是这样做其实也是有缺点的,后面我们会讲到,java字节码中的指令非常非常多。
(3)ARM1176支持ARM指令、Thumb指令、Jazelle指令,故有三种状态:ARM状态、Thumb状态、Jazelle状态。
技术伪指令 其他指令 寄存器寻址方式 跳转指令 指令 简介 B 无条件跳转 BL 带链接的无条件跳转 BX 带状态跳转,更改指令集 BLX 带链接和状态切换的无条件跳转,更改指令集 BXJ 跳转,更改为 Jazelle
这两代没有做CPU,没有商业化; ARMv3 对应的 CPU 是 ARM6; ARMv4 首次增加 Thumb 指令集; ARMv5 改进了 Thumb,首次增加 E(增强型DSP指令)、J(Java加速器Jazelle
J和T这两个位记录处理器的当前状态,告诉内核当前正在执行哪一行指令集,可能是ARM状态,即正在执行ARM指令;Thumb状态,即正在执行Thumb指令;或者Jazelle状态,即正在执行Java字节代码
J和T这两个位记录处理器的当前状态,告诉内核当前正在执行哪一行指令集,可能是ARM状态,即正在执行ARM指令;Thumb状态,即正在执行Thumb指令;或者Jazelle状态,即正在执行Java字节代码
比如,浮点数(x87)、加密(AES-NI)、支持本地高级字节码执行(Jazelle、AVR32B)、矢量计算(SSE、AVX、AltiVec)。
0],作为 IF-THEN 指令执行状态 J(bit24)和T(bit5):控制指令执行状态,表明本指令是ARM指令还是Thumb指令,如表 JT描述00ARM01Thumb11ThumbEE10Jazelle
这些条件标记位可以在任何模式下读写 GE[3:0],bit[19:16]一些SIMD指令使用 IT[7:2],bit[15:10]Thumb2指令集的If-then条件指令使用 J, bit[24] 处理器是否处于Jazelle