嵌入式微处理器是由通用计算机中的CPU演变而来的。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。据不完全统计,全世界的嵌入式微处理器已经超过1000多种,体系结构也有很多种类。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。......
2023-11-08
Cortex-A8处理器是一款适用于复杂操作系统及用户应用的应用处理器,已在工业控制、医疗电子、节能环保、智能交通、能源节能、电力系统、通信系统等环境恶劣场合广泛应用。
1.Cortex-A8处理器的特性:
(1)顺序,双发射,超标量微处理器内核,13级主整数流水线。10级NEON媒体流水线(10-stage NEONmedia pipeline);专用的L2缓存,带有可编程的等待状态;基于全局历史的分支预测。
(2)结合功率优化的加载存储流水线,为功率敏感型应用提供2.0 DMIPS/MHz的速率遵从ARMv7架构规范,其中包括:用于实现更高的性能、能量效率和代码密度的Thumb-2技术;
NEONTM信号处理扩展,用于加速H.264和MP3等媒体编解码器;Jazelle RCT Java-加速技术,用于最优化即时(JIT)编译和动态自适应编译(DAC),并将存储器尺寸减小了多达3倍;TrustZone技术,用于安全交易和数字权限管理(DRM)。
(3)集成的L2缓存。使用标准编译的ARM建立而成;64K到2MB的可配置容量;可编程的延迟。
(4)优化的L1缓存。经过性能和功耗的优化;结合最小访问延迟和散列确定方式,以便将性能最大化,将功耗最小化。
(5)动态分支预测.通过分支目标和全局历史缓冲区实现;按照行业基准,达到95%的准确率;重放机制,以实现预测失败代价的最小化。
(6)存储器系统.访问L1缓存导致的单周期加载使用代价;L1缓存的散列数组使得只有在可能需要时才会启用存储器;集成的、可配置L2缓存和用于数据流的NEON媒体单元之间的直连接口;Bank化的L2缓存设计,每次只设计1个Bank;支持多项与L3存储器之间的未完成事务,以充分利用CPU。
2.Cortex-A8处理器组成结构
Cortex-A8处理器主要由指令取值单元、指令译码单元、指令执行单元、数据存取单元(load/store)、L2缓存单元、ETM单元、NONE单元、及处理器外部接口单元八部分组成。具体见图2.1。
图2.1 Cortex-A8处理器组成结构
图2.1各个单元的功能为:(www.chuimin.cn)
(1)指令取值单元:指令取值单元对指令流进行预测,从L1缓存中取出指令后送到解码流水线进行译码,因此,L1指令缓存也包含在指令取指单元中。
(2)指令解码单元:指令解码单元对ARM和Thumb-2指令完成解码工作。这些指令包括来自调试控制协处理器(CP14)和系统控制协处理器(CP15)的指令。当存在多条指令时,指令解码单元处理指令的顺序为:异常、调试事件、复位初始化、存储去内嵌自测MBIST(Memory Built-In Self Test)等待中断、其他异常事件。
(3)执行指令单元。执行指令单元包含两个对称的算术逻辑运算单元(ALU)流水线,一个用于load/store指令的地址发生器,另一个为乘法流水线。执行单元流水线同时也负责寄存器回写操作。执行指令单元的作用如下:执行所以整数ALU运算和乘法运算,并同时对标志位产生影响;产生用于存取的虚拟地址和基地址;为存取指令提供格式化数据,并将数据和标志向前发送;处理分支及其他指令流变化,并评估指令条件码。
(4)数据存储单元(load/store)。load/store单元含有完整的L1数据存储系统和整数存储流水线。包括L1数据缓存、数据TLB、整数存储缓冲区、NEON存储缓冲区、整数数据加载地址边沿对齐和格式化以及整数数据存储数据地址边沿对齐和格式化。
(5)L2缓存单元。L2缓存单元包含L2缓存和缓存接口单元(BIU)。当预取指令和存取指令被L1缓存错过时,那么L2缓存单元将为他们服务。
(6)NEON单元。NEON技术可加速多媒体和信号处理算法。NEON单元包含一个10段NEON流水线,用于译码和执行高级SIMD多媒体指令集。NEON单元具体包含NEON指令队列、NEON加载数据队列、NEON译码逻辑的两条流水线、用于高级SIMD整数指令的三条执行流水线、用于高级SIMD浮点数指令的两条执行流水线、用于高级SIMD和VFP存取指令的一条执行流水线及用于可完全执行VFPv3数据处理指令集的VFP引擎。
(7)非侵入式跟踪宏单元(ETM)。ETM也被称为无创跟踪单元。在系统调试和性能分析时,ETM可以对指令和数据进行跟踪,并对其进行过滤和压缩。ETM通过高级跟踪总线(ATB)与处理器外部连接。
(8)处理器外部接口单元。Cortex-A8处理器包含以下4种外部接口。
①AXI:AXI接口是系统总线的主要接口,用于L2缓存的填充和L1缓存指令及数据的访问。它支持64位和128位的数据总线宽度。AXI总线还支持多个未处理请求。同时AXI信号时钟与CLK输入同步,使用ACLKEN可以获得较大总线占用比。
②APB:跟踪调试接口APB用来访问ETM、CTI和调试寄存器。
③ATB:跟踪调试接口ATB用来输出调试跟踪信息。
④DFT:DFT接口用于为制造商提供内存内置自测试及其方案。
APB和ATB接口与ARM多处理器跟踪调试体系兼容。
有关ARM嵌入式系统原理与应用的文章
嵌入式微处理器是由通用计算机中的CPU演变而来的。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。据不完全统计,全世界的嵌入式微处理器已经超过1000多种,体系结构也有很多种类。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。......
2023-11-08
之前介绍的TI处理器都属于ARM体系结构。表2-7TI处理器内核特殊代码目录说明表2-7中有一个奇怪的现象,新一代DaVinci处理器的代码不是在mach-davinci中,而是在mach-omap2中。从这个角度考虑,新一代Da Vinci芯片应该和OMAP2及以后的OMAP处理器在芯片内部结构方面相似度更高一些。因此笔者会以TI官方发布的Android开发包中DM 3730的内核代码为主,进行Linux内核及设备驱动的剖析,但是为了避免局限性,必要时会扩展到其他芯片,以及新版本的内核进行说明。......
2023-11-22
Cortex-A8处理器总共有40个32位长的寄存器,其中包括33个通用寄存器和7个状态寄存器。图3-2 ARM状态下Cortex-A8通用寄存器组图3-3 ARM状态下Cortex-A8状态寄存器组未分组的通用寄存器R0~R716个数据寄存器中R0~R7是未分组的通用寄存器,用来保存数据和地址。R13常作堆栈指针;R14子程序连接寄存器,当处理器执行BL和BLX指令时,R14可以保存返回地址。在寄存器名中,模式标识符usr通常省略。......
2023-11-08
同时,ARM处理器又有8种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。关于ARM处理器的寄存器结构,在后面的相关章节将会详细描述。其中,ARM指令为32位长度,Thumb指令为16位长度。......
2023-11-08
IA处理器使用VT-d技术将PCI总线域的物理地址转换为HPA地址。在IA处理器系统中,所有的外部设备都是PCI设备。IA处理器使能VT-d机制后,PCI设备进行DMA操作需要根据Bus、Device和Function号确定Context Entry,之后使用图13-4所示的方法完成PCI总线地址到HPA地址的转换。为了加快PCI总线地址到HPA地址的转换速度,IA处理器分别为Root Entry和Context Entry设置了Context Cache以加快Context Entry的获取速度,同时还设置了IOTLB加速PCI总线地址到HPA地址的转换速度。......
2023-10-20
ARM内核的体系架构到目前为止有V1~V7共7个版本,具体如表2-1所示。表2-1 ARM内核采用的体系结构1.V1版本该版架构只在原型机ARM1上出现过,只有26位的寻址空间,没有用于商业产品。版本V2a是版本V2的变种,ARM3芯片采用了版本V2a,是第一片采用片上Cache的ARM处理器。......
2023-11-08
进行拆卸前首先要从互联网上搜集手机的相关资料,越全面越好,图1-1所示为iPhone 5的器件清单图。图1-2所示为iPhone 5主板正视图,图中含有iPhone 5的“大脑”A6处理器,其放大图如图1-3所示。配备A6处理器的iPhone 5应用加载速度非常快,例如,Page加载速度达到之前的2.1倍,Keynote加载速度也有之前的1.7倍。......
2023-10-28
HOST处理器对PCI设备的数据访问主要包含两方面内容,一方面是处理器向PCI设备发起存储器和I/O读写请求;另一方面是处理器对PCI设备进行配置读写。HOST处理器访问PCI设备I/O地址空间的过程,与访问存储器地址空间略有不同。处理器必须通过HOST主桥将存储器域的数据访问转换为PCI总线事务才能对PCI总线地址空间进行访问。......
2023-10-20
相关推荐