收藏 分享(赏)

嵌入式ppt第二章.ppt

上传人:bubibi 文档编号:20014192 上传时间:2023-12-02 格式:PPT 页数:106 大小:1.78MB
下载 相关 举报
嵌入式ppt第二章.ppt_第1页
第1页 / 共106页
嵌入式ppt第二章.ppt_第2页
第2页 / 共106页
嵌入式ppt第二章.ppt_第3页
第3页 / 共106页
嵌入式ppt第二章.ppt_第4页
第4页 / 共106页
嵌入式ppt第二章.ppt_第5页
第5页 / 共106页
亲,该文档总共106页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第第2章章 ARM处理器体系结构处理器体系结构目目 录录 2.1 2.1 ARMARM处理器概述处理器概述2.2 2.2 Cortex-A8Cortex-A8处理器架构处理器架构2.3 2.3 Cortex-A8Cortex-A8处理器工作模式和状态处理器工作模式和状态2.4 2.4 Cortex-A8Cortex-A8存储器管理存储器管理2.5 2.5 Cortex-A8Cortex-A8异常处理异常处理2.6 2.6 本章小结本章小结 ARM(Advanced RISC Machines)处理器是一种RISC(精简指令集)结构的高性价比、低功耗处理器,广泛用于各种嵌入式系统设计中。目前,各

2、种采用ARM技术知识产权(IP核)的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。基于ARM 技术的微处理器应用约占据了32 位RISC 微处理器80%以上的市场份额,ARM 技术正在逐步渗入到我们生活的各个方面。本章主要内容:1、介绍ARM体系结构的不同版本以及比较有代表性的ARM产品,并对相关开发工具进行了阐述;2、对ARM Cortex-A8处理器的组成结构、寄存器组织、运行模式和状态以及存储管理方法进行了说明;3、详细介绍了ARM Cortex-A8处理器的异常处理原理及过程。ARM处理器概述处理器概述Part One2.12.12.1.1

3、 ARM处理器理器简介介嵌入式微处理器按指令系统分类精简指令集系统RISC复杂指令集系统CISCRISC结构一般具有如下特点:(1)单周期的执行。(2)采用高效的流水线操作。(3)无微代码的硬连线控制。(4)指令格式的规格化和简单化。(5)采用面向寄存器组的指令。(6)采用Load/Store(装载/存储)指令结构。(7)注重编译的优化,力求有效地支撑高级语言程序。一种CPU的体系结构定义了其支持的指令集和基于该体系结构下的处理器编程模型。2.1.2 ARM体系体系结构构发展展到目前为止,ARM处理器的体系结构发展了v1v8共8个版本。相同的体系结构下,由于所面向的应用不同,对性能的要求不同,

4、会有多种处理器。体系结构体系结构ARM内核版本内核版本v1ARM1v2ARM2v2aARM2aS、ARM3v3ARM6、ARM600、ARM610、ARM7、ARM700、ARM710v4Strong ARM、ARM8、ARM810v4TARM7TDMI、ARM720T、ARM740T、ARM9TDMI、ARM920T、ARM940Tv5TEARM9E-S、ARM10TDMI、ARM1020Ev6ARM11、ARM1156T2-S、ARM1156T2F-S、ARM1176JZF-S、ARM11JZF-Sv7ARM Cortex-M、ARM Cortex-R、ARM Cortex-Av8Cort

5、ex-A53/57、Cortex-A72等1.v1版本版本 v1版本ARM处理器没有商品化,只出现在ARM1原型机上。它的主要特点有:(1)26位的地址空间,寻址空间64MB;(2)只有基本的数据处理指令,甚至没有乘法指令;(3)基于字节、半字和字的Load/Store存储器访问指令;(4)子程序调用指令(BL)和链接指令;(5)操作系统调用的软件中断指令(SWI)。2.v2版本版本 对v1版本进行了扩展和完善。仍旧采用26位地址空间和64M寻址空间。它的主要特点有:(1)增加了32位乘法指令和乘加指令;(2)支持协处理器指令;(3)对快速中断模式支持;(4)支持最基本的存储器与寄存器交换指令

6、SWP/SWPB。3.v3版本版本 该版本在体系结构上较以前的版本有很大变化。基于该版本的ARM6处理器,做为IP核独立的处理器,具有片上高速缓存、MMU和写缓存的集成CPU。它的主要特点有:(1)寻址空间增加到32位(4G);(2)增加了当前程序状态寄存器(CPSR)保存当前程序运行的状态信息;(3)增加了备份程序状态寄存器(SPSR),在程序运行被异常中断时保存现场;(4)增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;(5)增加了中止和未定义两种异常模式,以方便操作系统使用数据访问中止异常、指令预取中止异常和未定义指令异常;(6)改进了从异常返回指令。4.v4版本版本 该

7、版本在v3版本的基础上做了进一步的扩充,是目前被应用最广的ARM体系结构,ARM7TDMI、ARM9、StrongARM等都采用该结构。它的主要特点有:(1)增加了对有符号、无符号半字及有符号字节的存/取指令;(2)增加 T变种,引入Thumb状态,处理器工作在该状态下时,指令集为新增的16位Thumb指令集;(3)增加了系统模式,该模式下处理器使用用户寄存器;(4)完善了软件中断(SWI)指令功能;(5)把一些未使用的指令空间捕获为未定义指令。5.v5版本版本 在v4版本的基础上增加了一些新的指令。ARM9E、ARM10和Intel的XScale处理器都采用该版本结构。它的主要特点有:(1)

8、改进了ARM指令集和Thumb指令集的混合使用效率;(2)增加了带有链接和交换的转移指令(BLX)、计数前导零指令(CLZ)、软件断点指令(BKPT);(3)v5TE版本中增加了DSP(数字信号处理)指令集,包括全部算法和16位指令集;支持新的Java,提供字节代码执行的硬件和优化软件加速性能。6.v6版本版本 该版本2001年发布,并应用在2002年发布的ARM11处理器中。该版本降低耗电量的同时提高了图像处理能力,适合无线和消费类电子产品;高数据吞吐量和高性能的结合。它的主要特点有:(1)支持多微处理器内核;(2)Thumb代码压缩技术;(3)引入Jazelle技术,提高了Java性能,降

9、低了Java应用程序对内存的空间占用;(4)通过SIMD(单指令多数据流)技术,提高了音/视频处理能力。7.v7版本版本 v7版本架构是在v6版本的基础上诞生的,对于早期的ARM处理器软件提供了较好的兼容性。它的主要特点有:(1)采用了在Thumb代码压缩技术上发展的Thumb-2技术,比纯32位代码减少了31%的内存占用,减小了系统开销,能够提供比基于Thumb技术的解决方案高出38%的性能;(2)首次采用NEON信号处理扩展集,它是一个结合64位和128位的SIMD指令集,对H.264和MP3等媒体解码提供加速,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算;(3)支持改良的运行

10、环境,迎合不断增加的JIT(Just In Time)和DAC(Dynamic Adaptive Compilation)技术的使用。该架构定义了三大系列:Cortex-A系列:面向基于虚拟内存的操作系统和用户应用,主要用于运行各种嵌入式操作系统(Linux、WindowsCE、Android、Symbian等)的消费娱乐和无线产品;Cortex-M系列:主要面向微控制器领域,用于对成本和功耗敏感的终端设备,如智能仪器仪表、汽车和工业控制系统、家用电器、传感器、医疗器械等;Cortex-R系列:该系列主要用于具有严格的实时响应限制的深层嵌入式实时系统。8.v8版本版本 2011年11月,ARM

11、公司发布了新一代处理器架构ARMv8的部分技术细节,这是ARM公司的首款支持64位指令集的处理器架构,将被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。目前的ARMv7架构的主要特性都将在ARMv8架构中得以保留或进一步拓展,如TrustZone技术、虚拟化技术及NEON advanced SIMD技术等。ARMv8 架构将64位架构支持引入ARM架构中,其中包括:(1)64位通用寄存器、SP(堆栈指针)和PC(程序计数器);(2)64位数据处理和扩展的虚拟寻址;(3)两种主要执行状态:AArch64(64位执行状态)和AArch32(32位执行

12、状态);两种执行状态支持三个主要指令集:A32(或ARM):32位固定长度指令集,通过不同架构变体增强部分32位架构执行环境,现在称为AArch32;T32(Thumb):以16位固定长度指令集的形式引入的,随后在引入Thumb-2技术时增强为16位和32位混合长度指令集,部分32位架构执行环境现在称为 AArch32。A64:提供与ARM和Thumb指令集类似功能的32位固定长度指令集,随ARMv8一起引入,它是一种 AArch64 指令集。2.1.3 ARM处理器系列主要理器系列主要产品品1.ARM7系列系列ARM7系列主要包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单

13、元的ARM720T等。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。ARM7TDMI中的T代表Thumb 架构扩展,提供两个独立的指令集,D代表内核具有Debug扩展结构,M代表EmbeddedICE 逻辑,I代表增强乘法器,支持64位结果。ARM7TDMI属于ARM v4体系结构,采用冯诺依曼结构(指令和数据在存储中统一存放,采用同一套总线分时传输),3级流水处理,平均0.9DMIPs/Mhz性能。ARM7TDMI没有MMU(Memory Management Unit)和Cache,所以仅支持那些不需要MMU和Cahce的小型实时操作系统,如VxWorks、uC/OS-

14、II和uLinux等RTOS。ARM7 系列使用三级流水线。该流水线允许多个操作同时处理,而非顺序执行。而ARM处理器中的程序计数器PC指向正被取指的指令,而非正在执行的指令。ARM7的三级流水线技术首先从存储器中读取指令,然后解码指令中用到的寄存器,接下来进行执行操作,主要包括从寄存器组中读寄存器值或者移位及ALU操作或者在寄存器组中写入寄存器值操作等。ARM7TDMI指令流水线为增加处理器指令流的速度,ARM7 系列使用3级流水线。允许多个操作同时处理,而非顺序执行。PC指向正被取指的指令,而非正在执行的指令。FetchDecodeExecute从存储器中读取指令从存储器中读取指令解码指令

15、中用到的寄存器解码指令中用到的寄存器寄存器读(从寄存器寄存器读(从寄存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank)PCPCPC-4PC-2PC-8PC-4ARMThumbARM9TDMI指令流水线InstructionFetch Shift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decod

16、eInstructionFetchFETCHDECODEEXECUTEARM7TDMI理想的3级流水线(ARM7TDMI:无访存操作)ARM的LDR流水线 思考题思考题设指令由取指、分析、执行3个子部件完成,每个子部件的工作周期均为Dt,采用常规标量单流水线处理机。若连续执行10条指令,则共需时间?Dt。(3)A8B10C12D14分析本题考查指令流水的概念。顺序执行时,每条指令都需三步才能执行完,没有重叠。所以连续执行10条指令后,共需时间为2+10=12Dt。参考答案C2.ARM9系列和系列和ARM9E系列系列ARM9采用哈佛体系结构,指令和数据分开存放于不同的存储器,分别采用各自的总线进

17、行传输。ARM9TDMI相比ARM7TDMI,将流水级数提高到五级从而增加了处理器的时钟频率,并使用指令和数据存储器分开的哈佛结构以改善CPI和提高处理器性能。在ARM9TDMI基础上又有ARM920T、ARM940T和ARM922T,其中ARM940T增加了MPU(Memory Protect Unit)和Cache;ARM920T和ARM922T加入了MMU、Cache和ETM9,从而更好的支持像Linux和WinCE这样的多线程、多任务操作系统。ARM9E系列属于ARM v5TE,其中ARM926EJ-S是最具代表性的。通过DSP和Java的指令扩展,可获得70的DSP处理能力和8倍的J

18、ava处理性能提升。另外分开的指令和数据Cache结构进一步提升了软件性能;指令和数据TCM(Tightly Couple Memory:紧耦合存储器)接口支持零等待访问存储器;双AMBA AHB总线接口等。ARM9处理器的主要特点:(1)32bit定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-time)调试;(2)片内指令和数据SRAM,而且指令和数据的存储器容量可调;(3)片内指令和数据高速缓冲器(cache)容量从4K字节到1M字节;(4)设置保护单元(protection unit),非常适合嵌入式系统应用中对存储器进行分段和保护;(5)采

19、用AMBA AHB总线接口,为外部设备提供统一的地址和数据总线;(6)支持外部协处理器,指令和数据总线有简单的握手信令支持;(7)支持标准基本逻辑单元扫描测试方法,而且支持BIST(built-in-self-test);(8)支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。3.ARM11系列系列ARM11系列主要有ARM1136、ARM1156、ARM1176和ARM11 MP-Core等,它们都是v6体系结构,相比v5系列增加了SIMD多媒体指令,获得1.75x多媒体处理能力的提升。除了ARM1136外,其他的处理器都支持AMBA3.0-AXI总线。ARM11系列内核最高的处理速度可达500

20、Mhz以上(其中90nm工艺下,ARM1176可达到750Mhz)以及600DMIPS的性能。基于ARMv6架构的ARM11系列处理器是根据下一代的消费类电子、无线设备、网络应用和汽车电子产品等需求而制定的。它的媒体处理能力和低功耗特点使它特别适合于无线和消费类电子产品;高数据吞吐量和高性能的结合非常适合网络处理应用;另外,在实时性能和浮点处理等方面ARM11可以满足汽车电子应用的需求。ARM11 芯片已经面世ARM11300-700+MHzSIMD 指令扩展支持更丰富的多媒体应用指令扩展支持更丰富的多媒体应用40家授权芯片公司,一些已开始量产家授权芯片公司,一些已开始量产FOMA N902i

21、First ARM11 based phoneOMAP2420i.MX31/i.MX31L4.XScale系列系列Intel公司开发的Xscale系列是基于ARM v5TE的 ARM体系结构的内核,在架构扩展的基础上同时也保留了对于以往产品的向下兼容,因此获得了广泛的应用。相比于ARM处理器,XScale功耗更低,系统伸缩性更好,支持16位的Thumb指令和DSP指令集,同时核心频率也得到提高,达到了400Mhz甚至更高。XScale系列处理器还支持高效通讯指令,可以和同样架构处理器之间达到高速传输。XScale系列处理器的另外一个主要扩展是使用了无线MMX,这是一种64位的SIMD指令集,并

22、在新款的Xscale处理器中集成有SIMD协处理器,可以有效的加快视频、3D图像、音频以及其他SIMD传统元素处理。基于XScale PXA250微处理器性能如下:(1)内核工作频率:100-400MHZ;I-Cache 32KB和D-Cache 32KB;I-MMU+D-MMU(各32路变换后备缓冲器TLB快表);7/8级流水线。(2)系统存储器接口:100MHZ SDRAM;4-256MB SDRAM;支持16-256MB DRAM;4个SDRAM区,每个区支持64MB存储器;支持2个PCMCIA/CF卡插槽。(3)外围接口:具有16个通道的DMA控制器;LCD控制器(支持被动DSTN和主

23、动TFT显示,最大分辨率800*600*16;系统集成模块(GPIO、中断控制器、PWM);USB,3个UART,红外(FIR)、I2C总线接口、多媒体通信口、动态电源管理技术。5ARM Cortex系列系列在ARM11系列之后,Cortex系列是ARM公司目前最新内核系列,属于v7架构。该架构定义了三大系列:Cortex-A系列、Cortex-M系列和Cortex-R系列。ARM Cortex-A 系列应用型处理器可向具备操作系统平台和用户应用程序的设备提供全方位的解决方案,从超低成本手机、智能手机、移动计算平台、数字电视到企业网络、打印机服务器解决方案。常见Cortex系列型号:(1)Co

24、rtex-A5 处理器(2)Cortex-A7 处理器(3)Cortex-A8 处理器(4)Cortex-A9处理器(5)Cortex-A15 处理器(6)ARM Cortex-R处理器(7)ARM Cortex-M处理器高性能的ARM嵌入式处理器最快的处理器提供超过2000 DMIPS 的性能运行于运行于 1GHz 频率频率(90nm or 65nm 制造工艺制造工艺)功耗小于 300mWARM Cortex A8 Application ProcessorCortex-M3 实现$1 ARM芯片ARM Cortex ArchitectureThumb-2 ISA3 Stage Pipeli

25、ne1.22 DMIPS/MHz 30%over ARM7TDMI33K gates 30%smaller than ARM7TDMILuminary Micro的Stellaris系列MCU产品售价仅1美元ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。ARM FamilyARM7 FamilyARM9 FamilyARM10 FamilyARM11 Family150DMIPS300 DMIPS500 DMIPS1000 DMIPSARM Cortex FamilyARM720TARM1136J ARM1176JZARM1026EARM9

26、20T/ARM922T ARM926EJCortex AApplication ProcessorARM7TDMIARM1156T2ARM1026EARM946ECortex REmbedded RT ControllerARM7TDMIARM966E ARM968ECortex MMicro-controllerARM Architecture2.1.4 ARM开开发工具工具简介介ARM开发工具就是ARM公司为庞大的各领域工程师和开发人员装备的完整的开发工具链,帮助迅速搭建开发平台,降低开发的成本和难度,缩短开发周期,让工程师们充分针对ARM架构处理器进行开发。根据开发目标平台的不同,ARM

27、提供不同的工具解决方案。最常见的是MDK-ARM、RVDS,ARM DS5。他们分别针对低端和高端ARM处理器应用。1.MDK-ARMRealView Microcontroller Development Kit(MDK)支持基于包括ARM7,ARM9,Cortex-M3微控制处理器等在内的众多处理器,例如Atmel,Freescale,Luminary,NXP,OKI,Samsung,Sharp,ST,TI等厂家的产品。MDK提供工业标准的编译工具和强大的调试支持。MDK是专为MCU的用户开发嵌入式软件而设计的一套开发工具。包括根据器件定制的调试仿真支持,丰富的项目模版,固件示例以及为内存

28、优化的RTOS库。MDK上手容易,功能强大,适合微控制器应用程序开发。MDK主要是为终端客户提供价格低廉,功能强大的开发工具。集成了RealView编译工具,Keil uVision开发环境,支持基于ARM7,ARM9,Cortex-M1,Cortex-M3,Cortex-R4等ARM产品的仿真,提供非常高效的RTOS Kernel,此外,提供的Real-Time库还有TCP/IP网络套件,Flash文件系统,USB器件接口,CAN总线接口等,方便终端用户进行应用开发。因此对于MDK用户来说,他们得到的就是可以对MCU进行仿真和调试,容易使用又没有冗余的功能,关键是价格实惠,而且用户可以先试用

29、再购买。2.RVDSRVDS(RealView Development Suite)是ARM公司推出的专为SOC,FPGA 以及ASIC用户开发复杂嵌入式应用程序或者和操作系统平台组件接口而设计的开发工具,被业界称为最好的ARM开发工具。RVDS支持器件设计,支持多核调试,支持基于所有ARM 和Cortex系列CPU的程序开发。RVDS还可以和第三方软件进行很好的连接。RVDS 是ARM公司继SDT 与ADS1.2之后主推的新一代开发工具,目前最高版本是4.1。RVDS对代码密度的提升、代码执行速度的提高,都可以由ARM开发工具自动实现,而不需要软件开发人员花费过多的时间手动优化高级语言代码。

30、这是RVDS的优势所在。RVDS包含有四个模块:(1)IDE:RVDS中集成了Eclipse IDE,用于代码的编辑和管理。支持语句高亮和多颜色显示,以工程的方式管理代码,支持第三方Eclipse功能插件。(2)RVCT:RVCT是业界最优秀的编译器,支持全系列的ARM和XSCALE架构,支持汇编语言、C语言和C+语言。RVDS的编译器根据最新的ARM架构进行特别的优化,针对每个ARM架构都提供最好的代码执行性能,最优的代码密度。可以根据需要选择调试信息级别,以及不同的代码优化方向和优化级别。(3)RVD:是RVDS中的调试软件,功能强大,支持Flash烧写和多核调试,支持多种调试手段,快速错

31、误定位。(4)RVISS:是指令集仿真器,支持外部设备虚拟,可以使软件开发和硬件开发同步进行,同时可以分析代码性能,加快软件开发速度。3.ARM DS5ARM DS5,也叫ARM DS-5,是一款支持开发所有ARM内核芯片的集成开发环境,也是一套针对 ARM 支持的linux和android平台的全面的端到端软件开发工具套件。ARM DS5提供具有跟踪、系统范围性能分析器、实时系统模拟器和编译器的应用程序和内核空间调试器。这些功能包含在定制的、功能强大且用户友好的基于Eclipse的IDE中。借助于该工具套件,可以很轻松地为ARM支持的系统开发和优化基于Linux的系统,缩短开发和测试周期,并

32、且可帮助工程师创建资源利用效率高的软件。图2-2 ARM DS-5功能框架图2-1 ARM DS5的工程配置试题(试题(2)某计算机系统由下图所示的部件构成,假定每个部件的千小时可靠度R均为0.9,则该系统的千小时可靠度约为(2)。(2)A0.882B0.951 C0.9D0.99试题(2)分析本题考查系统可靠度的概念。串联部件的可靠度=各部件的可靠度的乘积。并联部件的可靠度=1各部件失效率的乘积。题目中给出的系统由三个部件串联组成,其中第二、第三部件又分别由两个部件并联构成,因此整个系统的可靠度为0.9(1(10.9)(10.9)(1(10.9)(10.9)0.882参考答案(2)A Cor

33、tex-A8处理器架构Part Two2.22.2Cortex-A8处理器是第一款基于ARMv7构架的的应用处理器,使用了能够带来更高性能、更低功耗和更高代码密度的Thumb-2技术,新增了130条指令。新增的功能使用户在进行终端服务时无需在ARM和Thumb模式间进行切换,同时可访问整套处理器寄存器。产生的代码保持Thumb指令的传统代码密度,却可以实现32位ARM代码的性能。ARM处理器中首次采用面向音频、视频和3D图形的NEON媒体和信号处理技术。这是一个64/128位混合SIMD架构。通过使用NEON技术执行典型的多媒体功能,Cortex-A8处理器可在275MHz以30帧/秒的速度解

34、码MPEG-4 VGA视频(包括去环状块、解块过滤和YUV至RGB的变换)并以350MHz解码H.264视频。Cortex-A8还采用了Jazelle-RCT Java加速技术,可以支持Java程序的预编译与实时编译,对实时(JIT)和动态调整编译(DAC)提供最优化,将即时(JIT)字节码应用程序的内存占用削减到原先的三分之一。代码变少可增强性能并降低功率。Cortex-A8中采用的TrustZone技术可确保消费类产品(如运行开放式操作系统的移动电话、个人数字助理和机顶盒)中的数据隐私和DRM得到保护。图2-3 ARM Cortex-A8内核系统框图1.指令读取单元(指令读取单元(Inst

35、ruction Fetch)指令读取单元的主要构成如下图所示,指令读取单元对指令流进行预测,从L1指令缓存中取出指令放到译码流水线中。在此过程中使用到了TLB(Translation Lookaside Buffers,转换旁路缓冲器)。图2-4 指令读取单元主要构成2.指令译码(解码)单元(指令译码(解码)单元(Instruction Decode)指令译码单元对所有的ARM、Thumb-2指令进行译码排序,包括调试控制协处理器CP14的指令、系统控制协处理器CP15的指令。指令译码单元处理指令的顺序是:异常、调试事件、复位初始化、存储器内嵌自测CMI3IST、等待中断、其它事件。3.指令执

36、行单元(指令执行单元(Instruction Execute)指令执行单元包括两个对称的ALU(算术逻辑单元)流水线(ALU0和ALU1),它们都可以处理大多数算术指令。ALU流水线0始终执行一对旧的发射指令。Cortex-A8处理器还配备乘法器和加载存储流水线,但这些都不对两条ALU流水线执行额外指令,可将它们视为“独立”流水线。使用它们必需同时使用两条ALU流水线中的一个,乘法器流水线只能与ALU1流水线中的指令结合使用,而加载存储流水线只能与任一ALU中的指令结合使用。指令执行单元的功能:执行所有整数ALI运算和乘法运算,并修改标志位;根据要求产生用于存取的虚拟地址以及基本回写值;将要存

37、放的数据格式化,并将数据和标志向前发送;处理分支及其它指令流变化,并评估指令条件码。4.数据存取单元(数据存取单元(Load/Store)数据存取单元包括全部的L1数据缓存部分和整数存取流水线,流水线可在每个周期接收一次数据存或取,可以是在流水线0或流水线1上。数据存取单元由以下几个部分组成:L1数据缓存;数据TLB;整数存储缓存;NEON存储缓存;取整数数据对齐、格式化单元;存整数数据对齐、格式化单元。5.L2缓存单元(缓存单元(L2 Cache)Cortex-A8处理器的L2缓存单元大小可配置为从64k到2M,包括L2 Cache和缓冲接口单元BIU。L1数据缓存的内容与L2缓存不兼容,L

38、1指令缓存的内容是L2缓存的子集,当指令预取单元和数据存取单元在L1 Cache中未命中时,L2 Cache将为它们提供服务。L2缓存与L1缓存之间采用低延迟、高带宽专用接口,这将L1缓存行填充的延迟时间降至最低,并且与主系统总线不会产生流量冲突。图2-5 2级高速缓存主要构成6.NEON媒体处理引擎媒体处理引擎ARM NEON技术是适用于ARM Cortex-A系列处理器的一种SIMD(Single Instruction,Multiple Data,单指令、多数据)扩展结构。Cortex-A8处理器的NEON媒体处理引擎包括一个10段流水线以及高级SIMD多媒体指令集。NEON媒体处理引擎

39、主要由以下几个部分组成:NEON指令队列;NEON数据队列;NEON译码逻辑的两个流水线;三条用于SIMD整数指令的执行流水线;两条用于SIMD的单精度浮点流水线;一条加载存储/交换流水线;一个非流水线向量浮点单元(VFPLite),执行VFPv3数据处理指令。7.ETM单元(嵌入式跟踪宏单元)单元(嵌入式跟踪宏单元)ETM单元是一个非侵入跟踪宏单元,对嵌入式处理器内核提供了实时跟踪能力。它向一个跟踪端口输出处理器执行的信息。在系统调试和系统性能分析时,可以对指令和数据进行跟踪,并能对跟踪信息进行过滤和压缩。ETM单元直接连接到ARM处理器内核,通过一个称为ATB(高级跟踪总线)的外部接口与处

40、理器外部连接。8.外部接口外部接口Cortex-A8有丰富的外部接口。主要有:AMBA AXI总线接口:一种面向高性能、高带宽、低延迟的片内总线。AXI总线接口是可配置的64位或128位AMBA高速总线接口,用于执行L2 Cache的填充和L1 Cache指令及数据的访问。AMBA APB接口:Cortex-A8处理器通过一个APB接口来访问ETM、CTI和调试寄存器。APB接口与CoreSight调试体系结构(ARM多处理器跟踪调试体系)兼容。AMBA ATB接口:Cortex-A8处理器通过一个ATB接口输出调试信息。ATB接口兼容CoreSight调试体系结构。DFT(Design Fo

41、r Test)接口:DFT接口为生产时使用MBIST(内存内置自测试)和ATPG(自动测试模式生成)进行内核测试提供支持。Cortex-A8处理器工作模式和状态Part Three2.32.32.3.1 Cortex-A8处理器工作模式理器工作模式Cortex-A8是基于ARMv7构架的处理器,共有8种工作模式:处理器模式处理器模式模式标模式标识符识符备注备注用户模式用户模式(User)usr正常程序执行模式系统模式系统模式(System)sys使用和用户模式相同的寄存器组,用于运行特权级操作系统任务管理模式管理模式(Supervisor)svc系统复位或软件中断时进入该模式,是供操作系统使用

42、的一种保护模式外部中断模式外部中断模式(IRQ)irq低优先级中断发生时进入该模式,常用于普通的外部中断处理快速中断模式快速中断模式(FIQ)fiq高优先级中断发生时进入该模式,用于高速数据传输和通道处理数据访问中止模数据访问中止模式式(Abort)abt当存取异常时进入该模式,用于虚拟存储和存储保护未定义指令中止未定义指令中止模式模式(Undefined)und当执行未定义指令时进入该模式,用于支持硬件协处理器的软件仿真安全监控模式安全监控模式(Monitor)mon可在安全模式和非安全模式下转换非用户模式,或特权模式非用户模式,或特权模式用户模式用户模式异异常常模模式式处理器的运行模式可以

43、通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数情况下,应用程序运行在用户模式下,应用程序不能访问受操作系统保护的系统资源,也不能直接进行处理器工作模式的切换。在需要进行工作模式切换时,应用程序可以产生异常处理,在异常处理过程中进行工作模式切换,由操作系统控制整个系统资源的使用。特权模式:是为了服务中断或异常,或访问受保护的资源,具有多系统资源的完全访问权限,可自由的切换工作模式。用户模式系统模式:系统模式不能由任何异常进入,它有与用户模式完全相同的寄存器。系统模式供需要访问系统资源的操作系统任务使用,这样避免使用和异常模式相关的寄存器,保证在任何异常发生时都不会使任务的

44、状态不可靠。异常模式:除了可以通过程序切换进入外,还可以在发生特定的异常中断时进入。每一种异常模式都有一组专用的寄存器,以保证在进入异常模式时用户模式下的寄存器(保存着工作模式切换前的程序运行状态)不被破坏。2.3.2 Cortex-A8处理器状理器状态Cortex-A8处理器是32位处理器,可执行32位ARM指令集指令,同时兼容16位Thumb-2指令集指令和数据类型。有3种工作状态,这些状态由程序状态寄存器(CPSR)的T位和J位控制与切换。ARM状态:执行32位的字对齐的ARM指令集指令,T位和J位为0;Thumb状态:执行16位或32位半字对齐的Thumb-2指令集指令,T位为1,J位

45、为0;ThumbEE状态:执行为动态产生目标而设计的16位或32位半字对齐的Thumb-2指令集的变体,T位和J位为1。ARM指令必须在ARM状态下执行;Thumb指令也必须在Thumb状态下执行;ARM处理器可以在两种状态下切换,只要遵循ATPCS调用规则,ARM子程序和Thumb子程序之间可以相互调用。ARM状态和Thumb状态之间的切换并不影响处理器工作模式和寄存器组的内容。处理器复位后开始执行代码时,处于ARM状态。处理器状态之间的切换:(1)ARM状态和Thumb状态之间切换执行BX和BLX指令时,将通用寄存器的中所存储的目标地址值复制到程序寄存器PC,该目标地址值的最低一位为1则切

46、换到Thumb状态。如果处理器在Thumb状态时发生异常(异常处理必须在ARM状态下),当异常处理返回时自动切换到Thumb状态。执行BX和BLX指令时,将通用寄存器的中所存储的目标地址值复制到程序寄存器PC,该目标地址值的最低一位为0则切换到ARM状态。处理器进行异常处理时,把PC的值放入异常模式链接寄存器中,从异常向量地址开始执行程序,系统自动进入ARM状态。(2)Thumb状态和ThumbEE状态之间切换使用ENTERX指令和LEAVEX指令。Cortex-A8存储器管理Part Four2.42.47.若内存按字节编址,用存储容量为8K*8比特的存储器芯片构成地址编号A0000HDFF

47、FFH的内存空间,则至少需要多少片。本题考查内存容量的计算。给定起、止地址码的内存容量=终止地址起始地址+1。将终止地址加1等于E0000H,再减去起始地址,即E0000HA0000H=40000H。十六进制的(40000)16=218。组成内存储器的芯片数量=内存储器的容量/单个芯片的容量。218/(8*210)=218/213=252.4.1 ARM的基本数据的基本数据类型型Cortex-A8是32位处理器,支持多种数据类型:字节(Byte):8位;半字(Half word):16位;字(Word):32位;双字(Double word):64位。当数据是无符号数时,二进制格式存储,数据范

48、围为:02N-1,其中N为数据类型长度;当数据是有符号数时,二进制补码格式存储,数据范围为:-2N-12N-1-1,其中N为数据类型长度。ARM的体系结构将存储器看成是从0 x00000000地址开始的按字节编码的线性存储结构,每个字节都有对应的地址编码。由于数据有不同的字节大小(1字节、2字节、4字节等),导致数据在存储器中存放不是连续的,这样降低了存储系统的效率,甚至引起数据读写错误。因此数据必须按照一下方式对齐:以字为单位,按4字节对齐,地址最末两位为00。以半字为单位,按2字节对齐,地址最末一位为0;以字节为单位,按1字节对齐;2.4.2 浮点数据浮点数据类型型浮点运算使用在ARM硬件

49、指令集中未定义的数据类型。在协处理器指令空间定义了一系列浮点指令,这些指令全部可以通过未定义指令异常(该异常收集所有硬件协处理器不接受的协处理器指令)在软件中实现,其中的一小部分也可以由浮点运算协处理器FPA10以硬件方式实现。另外ARM公司还提供了C语言编写的浮点库作为ARM浮点指令集的替代方法(Thumb代码只能使用浮点指令集)。该库支持IEEE标准的单精度和双精度格式。C编译器有一个关键字标志来选择,它产生的代码与软件仿真(通过避免中断、译码和浮点指令仿真)相比既快又紧凑。2.4.3 大大/小端存小端存储模式模式Cortex-A8处理器支持大端(Big-endian)和小端(Little

50、-endian)两种存储模式,同时还支持混合大小端模式(既有大端模式也有小端模式)和非对齐数据访问。可以通过硬件的方式设置(没有提供软件的方式)端模式。大端模式是被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。例如,一个32位的字数据 0 x12345678小端模式中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。高对低高对低低对高低对高低对低低对低高对高高对高判断处理器使用大端还是小端最简单的方法可以使用C语言中的union,下面程序段中的IsBigEndian()可以简单判断该处理器是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 网络技术 > 前端技术

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报