1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,本章将全面论述,ARM,技术。,通过本章的学习,对,ARM,技术有个全面的了解和掌握,建立起以,ARM,技术为基础的嵌入式系统应用和以,ARM,核为基础的嵌入式,SoC,芯片设计的技术基础。,ARM,处理器概述,Thumb,技术,ARM,体系结构,ARM,处理器概述,第一节,ARM,处理器概述,ARM,技术发展,RISC,体系结构,ARM,体系结构的技术特征,ARM,技术发展,一、,ARM,技术发展,1.ARM,发展的历程,第一片,ARM,处理器是,1983,年,10,月到,1985,年,4,月间在位于英国
2、剑桥的,Acorn Computer,公司开发。,1990,年,11,月,成立了,Advanced RISC Machines Limited(ARM,公司,),。,20,世纪,90,年代,,ARM,快速进入世界市场。,ARM,处理器核因为其卓越的性能和显著优点,已经成为高性能、低功耗、低成本嵌入式处理器核的代名词,得到了众多的半导体厂家和整机厂商的大力支持。,世界上几乎所有的半导体公司都获得了,ARM,的授权,他们结合自身的产品发展,开发具有自己特色的、基于,ARM,核的嵌入式,SoC,系统芯片。,从,ARM7,开始,,ARM,核被普遍认可和广泛使用。,1995,年,StrongARM,问世
3、。,XScale,是下一代,StrongARM,芯片的发展基础。,ARM10TDMI,是,ARM,处理器核中的高端产品。,ARM11,是,ARM,家族中性能最强的一个系列。,在嵌入式领域,,ARM,已取得了极大的成功,造就了,IP,核商业化、市场化的神话,迄今为止,还没有任何商业化的,IP,核交易和使用达到,ARM,的规模。,据最新统计,全球有,103,家巨型,IT,公司在采用,ARM,技术,,20,家最大的半导体厂商中有,19,家是,ARM,的用户,包括德州仪器,意法半导体,,Philips,,,Intel,等。,ARM,系列芯片已经被广泛的应用于移动电话、手持式计算机以及各种各样的嵌入式应
4、用领域,成为世界上销量最大的,32,位微处理器。,2.ARM,核综述,在高性能的,32,位嵌入式,SoC,设计中,几乎都是以,ARM,作为处理器核。,ARM,核已是现在嵌入式,SoC,系统芯片的核心,也是现代嵌入式系统发展的方向。,(1)ARM7,系列核,ARM7TDMI,、,ARM7TDMI-S,、,ARM710T/720T/740T,ARM7TDMI,是目前低端的,ARM,核,具有广泛的应用,最显著的应用为数字移动电话。,3,级流水线,冯,诺依曼架构,CPI(Cycle Per Instruction,,每条指令的时钟数,),约为,1.9,个周期,ARM7,32,位整数核,ARM6,的,3
5、V,兼容版本,(v4T),T,Thumb,16,位压缩指令集,D,支持片上,Debug,M,增强型,Multiplier,I,嵌入式,ICE,硬件以支持片上断点和观察点。,ARM7TDMI,外部接口,ARM7TDMI,内核,存储器接口,地址总线,数据总线,控制,协处理器接口,时钟,配置,中断,复位,ARM7TDMI,方框图,ARM7TDM,内核,TAP,控制器,JTAG,接口,数据总线,控制信号,D31:0,地址总线,A31:0,DIN31:0,DOUT31:0,BUS,Splitter,Embedded,ICE,逻辑,总线分裂器:双向总线转换为分开的单向数据总线,扫描链:分别环绕着内核,(0
6、),、数据总线,(1),和,Embedded ICE,(2)ARM9,系列核,ARM9TDMI,、,ARM9E,、,ARM920T/940T,ARM9TDMI,核将,ARM7TDMI,的功能显著地提高到更高性能的水平。,1),和,ARM7TDMI,一样支持,Thumb,指令集;,2),并含有嵌入式,ICE,模块以支持片上调试;,3),通过采用,5,级流水线以增加最高时钟速率;,4),使用分开的指令与数据存储器端口以改善,CPI(,1.5),,增强处理器性能。,4)v4T,架构,基于存储系统的复杂性,,ARM9TDMI,没有作为一个单独的内核发布,5,级流水线,哈佛架构,片上,cache,ARM
7、922T(,如图),2 x 8K caches,内存管理单元,(,MMU),写缓冲器,ARM920T,和,ARM922T,差不多,只是,cache,大小为 2,x 16K,(3)ARM10,系列核,ARM10TDMI,、,ARM1020E/10200,ARM10TDMI,是目前,ARM,处理器核的高端产品,,ARM10TDMI,也以,ARM9TDMI,的两倍性能工作。,1),增加最高时钟速率,,6,级流水线。,2),降低,CPI(1.3),。,3)v5TE,架构,Jazelle,状态允许直接执行,Java 8,位码,ARM1026EJ-S(,如图),ARM10EJ-S,内核,可配置的,cach
8、e,和,TCM,支持,MMU,和,MPU,两个,64,位,AHB,总线接口(多层),ARM1020E,内存管理单元,(,MMU),32K,指令和数据,Cache,ARM1022E,内存管理单元(,MMU,),16K,指令和数据,Cache,ARM1136JF-S(,如图,),可综合的,,ARM V6,体系,高性能内核,(,8-,级流水线、静态和动态分支预取、返回堆栈,),快速反应中断模式,内挂,4-64k I&D Caches,内部可配置,TCMs,4,个主存储器口,Jazelle,技术,完整的,VFP,协处理器,(4)ARM1,1,概述,ARM1136J-S,没有,VFP,提高多媒体性能,多
9、媒体处理扩展,包括许多新的,SIMD,指令,2,个,MPEG4,编码/解码,更快的音频,DSP,提高实时性能,更快的异常/中断处理,支持向量中断控制器,减少了中断反映时间的模式,新的栈和模式转变指令,减少处理进入和退出的开销,ARM,V6,体系概述,改进,与非,ARM,处理器数据共享,增强非,ARM,处理器的应用程序的移植性,支持混合,endian,系统,支持,unaligned,数据访问,ARM,V6,体系概述,(5)StrongARM,和,XScale,系列核,Intel StrongARM,融合了,Intel,公司的设计和处理技术,以及,ARM,体系结构的电源效率,采用在软件上兼容,AR
10、Mv4,体系结构,同时采用具有,Intel,技术优点的体系结构。,ARM V4,架构 (无,Thumb,支持),5,级流水线,改进的乘法器(典型地比,ARM9TDMI,快2个周期),Intel Xscale,系列处理器核是基于,ARMv5TE,体系结构的,它提供了从手持互联网设备到互联网基础设施产品全面解决方案,支持,16,位,Thumb,指令和,DSP,扩充。,V5TE,兼容架构,7-8,级流水线带统计分支预测,32k,的数据和指令,Cache,,外加,2k,的数据,Minicache,完整的,32,位协处理器接口,(6)SecurCore,系列核,SecurCore,系列微处理器专为安全需
11、要而设计,提供了完善的,32,位,RISC,技术的安全解决方案。特点:,1),带有灵活的保护单元,以确保操作系统和应用,2),数据的安全。,3),采用软内核技术,防止外部对其进行扫描探测。,4),可集成用户自己的安全特性和其他协处理器。,SecurCore SC100,第一个适合安全应用的,32,位,RISC,处理器,可用于,smart,卡和其他有安全性要求的嵌入式领域,基于,ARM7,内核的安全设计,完全可合成的,全静态设计,安全的存储器保护单元,Thumb,指令支持,降低代码密度,特殊的、独一无二的防伪造设计,小尺寸,(1mm,2,典型的,0.25,工艺,),低功耗,(2,个的中断源!,(
12、1),需要一个中断控制器,(,通常是地址映射的,),来控制中断是怎样传递给,ARM,的。,(2),优先级处理,地址映射,中断控制器,外部设备,中断控制源,ARM,nIRQ,nFIQ,ARM,读控制器寄存器并找到,IRQ/FIQ,中断源,ARM,写外设寄存器清相应中断源,FIQs,有高于,IRQs,的优先级表现在,:,(1),当多个中断时,,CPU,优先处理,FIQ,。,(2),处理,FIQ,时禁止,IRQs,。,FIQs,的设计使中断响应尽可能的快,。,(1)FIQ,向量位于中断向量表的最末,为了使中断处理程序可从中断向量处连续执行。,(2)FIQ,模式有,5,个额外的私有寄存器,(r8,r1
13、2),。,(3),可以有多个,FIQ,中断源,但是考虑到系统性能应避免嵌套,。,7.,其它异常处理,(1),复位,(reset),设置异常向量,初始化存储器系统,初始化所有需要的模式的堆栈和寄存器,初始化所有,C,所需的变量,初始化所有临界,I/O,设备,使能中断,改变处理器模式或,/,和状态,调用主应用程序,(2),未定义指令,下列情况将引起未定义指令异常:,ARM,试图执行一真正的未定义指令,ARM,遇到一协处理器指令,可是系统的协处理器硬件不存在,ARM,遇到一协处理器指令,系统的协处理器硬件也存在,可是,ARM,不是在超级用户模式,(privileged mode),解决方法:,在处理
14、程序中执行软协处理器仿真,禁止在非超级用户模式下操作,报告错误并退出,(3),预取异常,不论异常是发生在,ARM,还是,Thumb,状态下,导致预取异常的指令地址在,lr-4,处。,处理方法取决于存储器管理策略,有存储器管理的系统,修正问题,返回并重新执行预取异常的指令,没有存储器管理的系统,通常表示一个致命的错误,报告错误,(,如果可能,),然后退出,(4),数据异常,导致异常的指令地址在,lr-8,处。,处理方法取决于存储器管理策略,有存储器管理的系统,如使用,MMU,,数据异常的地址在,MMU,的,”,Fault Address”,寄存器中,修正问题,返回并重新执行数据异常的指令,没有存
15、储器管理的系统,通常表示一个致命的错误,报告错误,(,如果可能,),然后退出,第三节,ARM,体系结构,ARM,处理器工作状态,ARM,处理器工作模式,ARM,寄存器组织,ARM,的异常中断,ARM,组织结构,ARM,存储器接口及存储器层次,ARM,片上总线,AMBA,ARM,组织结构,五、,ARM,组织结构,ARM6,、,ARM7,三级流水线结构,ARM9,五级流水线结构,ARM7TDMI,三级流水线结构,寄存器,Bank,乘法器,地址自增器,ALU,B,A,Vectors,A31:0,地址寄存器,桶,移位器,PC,ALU,读数据,寄存器,写数据,寄存器,D31:0,指令解码,(2),在,A
16、LU,执行一次逻辑或算术运算,数据通道:,寄存器,Bank,桶移位器,ALU,一个周期,(1),读两个操作数从寄存器,Bank,,,1,个可经桶移位器,(3),写回结果至寄存器,Bank,ARM7TDMI,外部地址产生,PC31:2 ARM State,PC31:1 Thumb State,ALU31:0,INC,自增器,A31:0,向量,0 x1C,0 x00,地址,寄存器,(2)ALU,产生的跳转地址,外部地址来自:,(1),程序指针,(3),地址递增器,(4),异常中断提供的地址,为增加处理器指令流的速度,,ARM7,系列使用,3,级流水线,。,(1),允许多个操作同时处理,而非顺序执行
17、。,(2)PC,指向正被取指的指令,而非正在执行的指令。,Fetch,从存储器中读取指令,PCPC,Decode,解码指令中用到的寄存器,PC-4PC-2,Execute,寄存器读(从寄存器,Bank,),移位及,ALU,操作,寄存器写(到寄存器,Bank,),PC-8PC-4,ARMThumb,最佳流水线,Cycle,Operation,ADD,SUB,ORR,AND,EOR,ORR,1,2,3,4,5,6,7,8,9,F,D,E,F,D,E,F,E,F,D,E,F,D,E,D,F,D,E,W,F,取指,D,解码,E,执行,M,该例中用,6,个时钟周期执行了,6,条指令,所有的操作都在寄存器
18、中(单周期执行),指令周期数,(CPI)=1,LDR,流水线举例,该例中用,6,个时钟周期执行了,4,条指令,指令周期数,(CPI)=1.5,Cycle,Operation,ADD,SUB,ORR,AND,EOR,LDR,1,2,3,4,5,6,7,8,9,F,D,E,F,D,E,F,E,F,D,E,F,D,E,D,F,D,W,F-FetchD,-DecodeE ExecuteM MemoryW Writeback S-Stall,M,M,W,S,S,S,S,数据总线在周期,1,、,2,、,3,被使用,将数据移进片内导致指令,/,数据总线被占用,随后紧跟了内部的写周期以完成将数据写回寄存器。,
19、周期,3,为执行周期,产生地址,周期,4,为数据周期,从存储器取数,周期,5,为写回周期,通过,B,总线和,ALU,写回寄存器,Bank,中,周期,6,的执行被推迟了,直到周期,5,写回完成,分支流水线举例,流水线被阻断,注意:内核运行在,ARM,状态,Cycle,AddressOperation,0 x8000BL 0 x8FEC,0 x8004SUB,0 x8FF0ORR,0 x8FECAND,0 x8FF4EOR,0 x8008ORR,1,2,3,4,5,6,7,8,9,F,D,E,F,D,F,E,F,D,E,F,D,F,D,E,W,F-FetchD,-DecodeE ExecuteL
20、LinkretA-Adjust,M,L,A,第,2,周期在分支的目标地址完成取指,而返回地址则存于,R14,分支指令在其第,1,周期计算分支的目的地,同时在现行,PC,处完成一次指令预取。,第,3,周期完成目标地址,+4,的取指,重新填满流水线,中断流水线举例,IRQ,中断的反应时间最小,=7,周期,Cycle,AddressOperation,0 x8000ADD,0 x8004SUB,0 x0018B 0 xAF00,0 x800CX,0 x001CX,0 x8008MOV,1,2,3,4,5,6,7,8,F,D,E,F,DI,F,E,F,F,D,F,D,W,F-FetchD,-Decod
21、eE ExecuteDI Decode IRQ EI Execute IRQ L Linkret A-Adjust,M,L,A,F,F,D,F,EI,D,E,0 x0020X,0 xAF00STMFD,0 xAF04MOV,0 xAF08LDR,F,IRQ,周期,2:,执行中断,(,获取中断向量,),保存,CPSR,周期,1:IRQ,中断产生,现行指令执行完前不会被响应,中断解码,周期,3:,保存,PC(0 x800C),于,r14_irq,,从,IRQ,向量处取指,周期,4:,解码向量表中的指令,调整,ir14_irq,为,0 x8008,周期,4,、,5:,无有用指令取指,因周期,6,的跳
22、转,周期,6:,取异常处理子程序的第一条指令,从异常中断处理程序返回方法:,1.,返回地址保存在,R14,(1),从,SWI,或未定义指令陷阱返回,由指令本身引起,因此在计算,LR,时的,PC,值并没有被更新。,SWI pc-8,xxx pc-4,yyy pc,E,D,F,返回指令为:,MOVS PC,,,R14,异常返回后将执行的指令,ARM LR,产生,(2),从,IRQ,、,FIQ,返回,异常在当前指令执行完后才被响应,因此内核在计算,LR,时的,PC,值已被更新。,www pc-12,xxx pc-8,yyy pc-4,zzz pc,中断产生,返回指令为:,SUBS PC,,,R14,
23、,,#4,ARM LR,异常返回后将执行的指令,(3),从预取指中止返回,当指令到达执行阶段时异常才产生,因此内核在计算,LR,时的,PC,值已被更新。,需要重新执行导致异常的指令。,www pc-8,xxx pc-4,yyy pc,预取异常产生,ARM LR,返回指令为:,SUBS PC,,,R14,,,#4,(4),从数据中止返回并重新存取数据,异常发生时,在计算,LR,时的,PC,值已被更新。,需要重新执行导致异常的指令。,www pc-12,xxx pc-8,yyy pc-4,zzz pc,数据中止产生,ARM LR,返回指令为:,SUBS PC,,,R14,,,#8,2.,返回地址保
24、存在,堆栈,LDMFD R13,!,,(R0-R3,,,PC),寄存器后面的“,”,表示这是一条特殊的指令,在从存储器中装入,PC,的同时,,CPSR,也得到恢复。,第三节,ARM,体系结构,ARM,处理器工作状态,ARM,处理器工作模式,ARM,寄存器组织,ARM,的异常中断,ARM,组织结构,ARM,存储器接口及存储器层次,ARM,片上总线,AMBA,ARM,存储器接口及存储器层次,六、,ARM,存储器接口及存储器层次,1.ARM,支持的数据类型,(1)8,位有符号和无符号字节。,(2)16,位有符号和无符号半字,它们以两字节的边界定位。,(3)32,位有符号和无符号字,它们以,4,字节的
25、边界定位。,2.ARM,体系的存储器格式,(1),小端格式,较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。,(2),大端格式,较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。,ARM,处理器的缺省设置为小端格式。,3.ARM,的,存储器接口,支持,4,种不同的周期类型,由存储器接口信号,nMREQ,和,SEQ,来指示。,(1),顺序周期,nMREQ=0,,,SEQ=1,(2),非顺序周期,nMREQ=0,,,SEQ=0,,与前一周期地址不相关,(3),内部周期,nMREQ=1,,,SEQ=0,,不要求地址转换。,(4),协处理寄存器转换
26、周期,nMREQ=1,,,SEQ=1,,与,协处理器通信。,4.ARM,的,存储器层次,(1),寄存器组,32,个,32,位寄存器,(2),片上,RAM,(3),片上,Cache,8,32KB,(4),主存储器,(5),硬盘,第三节,ARM,体系结构,ARM,处理器工作状态,ARM,处理器工作模式,ARM,寄存器组织,ARM,的异常中断,ARM,组织结构,ARM,存储器接口及存储器层次,ARM,片上总线,AMBA,ARM,片上总线,AMBA,七、,ARM,片上总线,AMBA,1.,基于,ARM,的系统,16 bit RAM,8 bit ROM,32 bit RAM,ARM,Core,I/O,外
27、设,中断控制器,nFIQ,nIRQ,2.AMBA,总线,Bridge,Timer,On-chip,RAM,ARM,Interrupt,Controller,Remap/,Pause,TIC,Arbiter,Bus Interface,External,ROM,External,RAM,Reset,System Bus,Peripheral Bus,AMBA,A,dvanced,M,icrocontroller,B,us,A,rchitecture,ASB,A,dvanced System Bus,AHB or ASB,APB,External,Bus,Interface,Decoder,通用系
28、统总线,连接高性能系统模块,目前普遍使用,先进的微控制器总线体系结构,,3,种总线,为低性能的外围部件提供的较简单的接口,高性能系统中取代,ASB,总线,6,AHB,A,dvanced High-performance Bus,APB,A,dvance Peripheral Bus,思考题,1.,说出,ARM,可以工作的模式名字。,2.ARM,核有多少个寄存器?,3.,什么寄存器用于存储,PC,和连接寄存器?,4.R13,通常用来存储什么?,5.,哪种模式使用的寄存器最少?,6.CPSR,的哪一位反映了处理器的状态?,7.,所有的,Thumb,指令采取什么对齐方式,?,8.,在复位后,,ARM,处理器处于何种模式、何种状态?,9.ARM,有哪几个异常类型。,10.,为什么,FIQ,的服务程序地址要位于,0X1C,?,11.,中断向量表位于存储器的什么位置?,12.IRQ,或,FIQ,异常的返回指令是什么?,13.FIQ,的什么特点使它处理速度比,IRQ,快?,14.ARM7TDMI,指令流水线有几个阶段,?,15.ARM7TDMI,是否使用,ALU,计算地址,?,16.AMBA,代表是什么,?,
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100