第2章 多核ARM体系结构

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据通道 输入 输出
数据
数据0 数据1 数据2
中央处理器
冯· 诺依曼体系的特点
1)数据与指令都存储在存储器中
2)被大多数计算机所采用
3)ARM7——冯诺依曼体系
2、哈佛体系结构
地址 程序存储器
指令寄存器
指令0
控制器
指令
指令1 指令2
地址 数据通道 输入 中央处理器 输出
数据存储器
数据0
数据
数据1 数据2
对于 Java 平台,开发人员可以选择:
•对资源受限设备单独实现 Jazelle DBX,在这些设备中 ,编译器的可用内存或 JIT 编译时间开销平均值 AOT
或 JIT 不适合。
•在支持 Jazelle DBX 和 Jazelle RCT 的中型平台上,同
时使用这两种解决方案(其中 Jazelle DBX 针对解释的
(2)动态分支预测
动态分支预测是近来的处理器已经尝试采用的的技术。最简
单的动态分支预测策略是分支预测缓冲区(Branch Prediction
Buff)或分支历史表(branch history table)。
2.2 ARM 处理器 体系结构
现代ARM 处理器体系结构
ARM 体系结构支持跨跃多个性能点的实现,并已在许多 细分市场中成为主导的体系结构。ARM 体系结构支持非常广泛
这样,他们就可以灵活地根据应用需求在子例程级别上增强性
能或调整代码大小。 Thumb ISA 受 ARM 生态系统的广泛支持,包括完善的 Windows 软件开发环境以及开发和评估卡。
2. Thumb-2
Thumb-2指令集在原有Thumb指令的基础上做了如下的扩充: 增加了一些新的16位Thumb指令来改进程序的执行流程;
8、总线和总线桥
CPU
低速设备
高速总线

低速总线
存储器
高速设备
数据
高速设备
32位多AHB总线矩阵
9、存储器系统
RAM:随机存取存储器 SRAM:静态随机存储器 DRAM:动态随机存储器 1)SRAM比DRAM快
CS
R/W Addr Data
SRAM
2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多 4)DRAM需要周期性刷新 ROM:只读存储器 FLASH:闪存
代码大小平均降低5%;
代码速百度文库平均提高2-3%。
1、ARM Jazelle技术
用于加速执行环境的 ARM Jazelle 技术可向 ARM Connected Community 提供高质量的一流 ARM
体系结构解决方案,该解决方案是高性能、低功耗和低
成本的完美组合。
Jazelle 技术是 ARM 提供的组合型硬件和软件解
速技术“Jazelle DBX(Direct Bytecode eXecution,直接字节码
执行)”。而此次则开发出了面向JIT(Just In Time Compilation ,即时编译)、DAC (Dynamic Adaptive Compilation,动态适应 编译)和AOT(Ahead Of Time Compilation,预编译)等Java的 各种编译器的技术。通过使用Jazelle RCT最多可以把存储代码
哈佛体系结构的特点
1)程序存储器与数据存储器分开 2)提供了较大的数存储器带宽 3)适合于数字信号处理 4)大多数DSP都是哈佛结构 5)ARM9是哈佛结构
3、CISC:复杂指令集(Complex Instruction Set Computer)
具有大量的指令和寻址方式
8/2原则:80%的程序只使用20%的指令
,在同一时间内执行同一条指令。
SIMD在性能上的优势
以加法指令为例,单指令单数据(SISD)的CPU对加法指 令译码后,执行部件先访问内存,取得第一个操作数;之后再一
次访问内存,取得第二个操作数;随后才能进行求和运算。而在
SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一 次性获得所有操作数进行运算。这个特点使SIMD特别适合于多 媒体应用等数据密集型运算。 如:AMD公司引以为豪的3D NOW! 技术实质就是SIMD,
序执行指令,然后由重新排列单元将各执行单元结果按
指令顺序重新排列。
11. 分支预测
(1)静态分支预测
最简单的静态分支预测方法就是任选一条分支。这样平均
命中率为50%。更精确的办法是根据原先运行的结果进行统计从 而尝试预测分支是否会跳转。 任何一种分支预测策略的效果都取决于该策略本身的精确度 和条件分支的频率。
式可使得应用程式核心能够在两个状态之间切换(通常
改称为领域(worlds)以避免和其他功能领域的名称混
淆),在此架构下可以避免资讯从较可信的核心领域泄
漏至较不安全的领域。
TrustZone有两种工作模式,一种是正常模式(
Normal World),可以执行富指令,称为REE环境(
Rich Execution Environment),另一种模式就是安全

为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,而非顺序执行。
ARM
PC
Thumb
PC
Fetch
从存储器中读取指令 解码指令中用到的寄存器 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank )
PC - 4 PC-2 PC - 8 PC - 4
CS
R/W RAS CAS Addr Data
DRAM
10. 乱序执行
乱序执行(out-of-orderexecution):是指CPU允许 将多条指令不按程序规定的顺序分开发送给各相应电路
单元处理的技术。这样将根据个电路单元的状态和各指
令能否提前执行的具体情况分析后,将能提前执行的指
令立即发送给相应电路单元执行,在这期间不按规定顺
增加了一些新的32位Thumb指令以实现一些ARM指令的专
有功能,32位的ARM指令也得到了扩充; 增加了一些新的指令来改善代码性能和数据处理的效率,给 Thumb指令集增加32位指令,就解决了之前Thumb指令集不能 访问协处理器、特权指令和特殊功能指令的局限。 新的Thumb-2指令集现在可以实现所有的功能,这样就
Java 执行,Jazelle RCT 针对对用户体验问题(如启动 时间)敏感的平台上的选择性 AOT)。
Jazelle RCT
•将 Jazelle RCT 用于 JIT 和 AOT,以及使用 Jazelle DBX 减少对用户体验问题(如启动时间)敏感的平台
上有关 JIT 的启动时间和用户体验问题。 •在高端平台上,将 Jazelle RCT 单独用于 JIT 和 AOT
Jazelle DBX
在已有处理器架构上加硬件扩展可以同样支持直接运行 Java字节码,而且保持了操作系统和应用程序的兼容性。架构扩 展方案相当于为处理器附加了一套指令集,重用已有的处理器资 源不会增加额外的硬件成本和功耗。带扩展的内核能够同时执行 Java字节码及本地码,开发者可以充分利用已有的操作系统、应 用程序开发技术,在Java程序可移植性和性能之间取得很好的平 衡。
大多数程序只使用少量的指令就能够运行。
4、RISC:精简指令集(Reduced Instruction Set Computer)
在通道中只包含最有用的指令
确保数据通道快速执行每一条指令
使CPU硬件结构设计变得更为简单
5、流水线技术: 几个指令可以并行执行
提高了CPU的运行效率
内部信息流要求通畅流动
第 2章 多核ARM体系结构
目 录
2.1 微处理器的体系结构基础
2.2 ARM 处理器体系结构 2.3 Cortex-A9 处理器体系结构
2.1 微处理器的体系结构基础
一、经典ARM 处理器体系结构
1.1 硬件基础
诺依曼体系结构模型 1、冯·
存储器
指令寄存器 控制器
程序 指令0 指令1 指令2 指令3 指令4
所需的内存容量--占用空间(Footprint)减至原来的1/3。
2、ARM TrustZone 技术
TrustZone(TM) 技术出现在 ARMv6KZ 以及较 晚期的应用核心架构中。它提供了一种低成本的方案,
针对系统单芯片(SoC)内加入专属的安全核心,由硬
件建构的存取控制方式支援两颗虚拟的处理器。这个方
(因为平台可能以 GHz 的频率运行),这样会减少启 动时间等问题。
JIT与AOT
• JIT:Just in time,在运行是动态编译,可以只编译那些经 常使用的方法,提高效率。缺点是编译时自身需要耗资

AOT:Ahead of time.运行前编译好,缺点是全编译了,
不用的也编译了,解释时耗时间
Decode
Execute
PC指向正被取指的指令,而非正在执行的指令
6、超标量执行
超标量(superscalar)CPU采用多条流水线结构。超标量 CPU架构是指在一颗处理器内核中实行了指令级并行的一类并行 运算,如图2-4所示。这种技术能够在相同的CPU主频下实现更 高的CPU吞吐率(throughput)。
模式(secure world),只能执行受信指令,成为TEE
环境(Trusted Execution Environment)。
3、SIMD
SIMD(Single Instruction Multiple Data,单指令多 数据流)能够复制多个操作数,并把它们打包在大型寄
存器的一组指令集,例:3DNow!、SSE。 以同步方式
Jazelle DBX是一种硬件架构扩展技术,为ARM处理器引入
了第三套指令集—Java字节码。新指令集建立了一种新的状态, 处理器在此状态下处理Java字节码取指、译码和维护Java操作数
栈。
Jazelle RCT
Java应用高速技术“Jazelle RCT(Runtime Compiler Target,运行时编译器目标)”。此前该公司已经推出了解释器高
指令CACHE
预取
预取
流 水 线 1
译码1 译码2 执行1 执行2
流 水 线 2
译码1 译码2 执行1 执行2
数据
7、高速缓存(CACHE)
高速缓 存控制 器
数据
CACHE 主存
CPU
地址 数据
当CPU处理数据时,它会先到Cache中去寻找,如果数据因 之前的操作已经读取而被暂存其中,就不需要再从随机存取存储 器(Main memory)中读取数据——由于CPU的运行速度一般比 主内存的读取速度快,主存储器周期(访问主存储器所需要的时 间)为数个时钟周期。因此若要访问主内存的话,就必须等待数 个CPU周期从而造成浪费。
不需要在ARM/Thumb状态之间反复切换,代码密度和性能得
到的显着的提高。
新的Thumb-2技术可以带来很多好处:
可以实现ARM指令的所有功能; 增加了12条新指令,可以改进代码性能和代码密度之 间的平衡; 代码性能达到了纯ARM代码性能的98%; 相对ARM代码,Thumb-2代码的大小仅有其74%; 代码密度比现有的Thumb指令集更高;
决方案。ARM Jazelle 技术软件是功能丰富的多任务
Java 虚拟机 (JVM),经过高度优化,可利用许多 ARM
处理器内核中提供的 Jazelle 技术体系结构扩展。
高性能
Jazelle DBX (Direct Bytecode eXecution,直接字节码 执行)广泛用于为移动设备和其他消费类设备提供高 性能 Java,同时不会影响内存消耗、电池寿命或用户 体验。 Jazelle RCT (Runtime Compilation Target,运行时编译 目标) 可显著降低与 AOT 和 JIT 编译关联的代码膨 胀,从而使 AOT 技术能够应用于大众市场设备。
的性能点,因而可以利用最新的微体系结构技术获得极小的
ARM 处理器实现和极有效的高级设计实现。实现规模、性能和 低功耗是 ARM 体系结构的关键特性。 已经开发了体系结构扩展,从而为 Java 加速 (Jazelle®)、安 全性 (TrustZone®)、SIMD 和高级 SIMD (NEON™) 技术提供支
持。ARMv8-A 体系结构增加了密码扩展作为可选功能。
ARM 处理器体系结构
1. Thumb
Thumb 可向设计人员提供:
卓越的代码密度,可实现最小的系统内存大小和最低的成本。 在 8 位或 16 位总线上的 8 位或 16 位内存中实现 32 位性能, 从而降低系统成本。 设计人员可以同时使用 16 位 Thumb 和 32 位 ARM 指令集,
相关文档
最新文档