嵌入是系统结构 第2讲 ARM技术与ARM体系结构.ppt
《嵌入是系统结构 第2讲 ARM技术与ARM体系结构.ppt》由会员分享,可在线阅读,更多相关《嵌入是系统结构 第2讲 ARM技术与ARM体系结构.ppt(75页珍藏版)》请在三一办公上搜索。
1、嵌入式系统结构,主讲教师:邱铁 E_mail:Tel:87571521 参考教材:1.嵌入式系统开发与应用,田泽北京航空航天大学出版社2.嵌入式系系结构与编程,杜春蕾.清华大学出版社,第二讲 ARM技术与ARM体系结构,第一片ARM处理器是1983年10月到1985年4月 间在位于英国剑桥的Acorn Computer公司开发 1990年,ARM公司成立20世纪90年代,ARM快速进入世界市场1995年 StrongARM 问世 XScale是下一代StrongARM芯片的发展基础 ARM10TDMI是ARM处理器核中的高端产品 ARM11是ARM家族中性能最强的一个系列,一.ARM体系结构的
2、基本版本,ARM7TDMI,4T,1,支持Halfword 和signed halfword/byte 和System mode,支持Thumb指令集,2,4,ARM9TDMI,ARM720T,ARM940T,改良的ARM/Thumb 交互作用以及CLZ 指令,5TE,Saturated mathsDSP multiply-accumulate instructions,XScale,ARM1020E,ARM9E-S,ARM966E-S,3,早期的ARMs,ARM9EJ-S,5TEJ,ARM7EJ-S,ARM926EJ-S,Jazelle支持Java字节码,6,ARM11,SIMD,SISIM
3、DMD,S,SIMD,ARM体系结构的基本版本,版本4与以前版本相比增加了下列指令:有符号、无符号的半字和有符号字节的load和store指令。增加了T变种,处理器可以工作于Thumb状态,在该状态下的指令集是16位的Thumb指令集。增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。,ARM体系结构的基本版本,版本5主要由两个变型版本5T、5TE组成 相比与版本4,版本5的指令集有了如下的变化:提高了T变种中ARM/Thumb混合使用的效率。增加前导零记数(CLZ)指令,该指令可使整数除法和中断优先级排队操作更为有效;增加了BKPT(软件断点)指令;为协处理器设计提供了更多的可
4、供选择的指令;更加严格地定义了乘法指令对条件码标志位的影响。,ARM体系结构的基本版本,ARM体系版本6是2001年发布的。新架构v6在降低耗电量的同时还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD功能,将语音及图像的处理功能提高到了原机型的4倍。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。,ARM体系结构的基本版本,二.Thumb技术,为解决代码长度的问题,ARM体系结构增加了变种,这就是Thumb指令集,它是ARM技术的一大特色。Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的
5、代码密度。ARM7TDMI是第一个支持Thumb的核。,三.处理器工作模式,ARM 有7个基本工作模式:User:非特权模式,大部分任务执行在这种模式正常程序执行的模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式高速数据传输和通道处理IRQ:当一个低优先级(normal)中断产生时将会进入这种模式通常的中断处理Supervisor:当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式Abort:当存取异常时将会进入这种模式虚拟存储及存储保护Undef:当执行未定义指令时会进入这种模式软件仿真硬件协处理器System:使用和User模式相同寄存器集的特权模式特权级
6、的操作系统任务,ARM 寄存器,寄存器组织概要,Usermoder0-r7,r15,andcpsr,r8,r9,r10,r11,r12,r13(sp),r14(lr),spsr,FIQ,User,r13(sp),r14(lr),spsr,IRQ,Usermoder0-r12,r15,andcpsr,r13(sp),r14(lr),spsr,Undef,Usermoder0-r12,r15,andcpsr,r13(sp),r14(lr),spsr,SVC,Usermoder0-r12,r15,andcpsr,r13(sp),r14(lr),spsr,Abort,Usermoder0-r12,r1
7、5,andcpsr,Thumb stateLow registers,Thumb stateHigh registers,Note:System模式使用user模式寄存器集,ARM 寄存器,ARM 有37个32-Bits长的寄存器.1 个用作PC(program counter)1个用作CPSR(current program status register)5个用作SPSR(saved program status registers)30 个通用寄存器当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:相应的r0-r12子集相应的 r13(the stack pointer,sp)
8、and r14(the link register,lr)相应的 r15(the program counter,pc)相应的CPSR(current program status register,cpsr)特权模式(除system模式)还可以存取;相应的 spsr(saved program status register),程序状态寄存器,条件位:N=1-结果为负,0-结果为正或0Z=1-结果为0,0-结果不为0C=1-进位,0-借位V=1-结果溢出,0结果没溢出Q 位:仅ARM 5TE/J架构支持指示增强型DSP指令是否溢出J 位仅ARM 5TE/J架构支持J=1:处理器处于Jazel
9、le状态,中断禁止位:I=1:禁止 IRQ.F=1:禁止 FIQ.T Bit仅ARM xT架构支持T=0:处理器处于 ARM 状态T=1:处理器处于 Thumb 状态Mode位(处理器模式位):0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System,当处理器执行在ARM状态:所有指令 32 bits 宽所有指令必须 word 对齐所以 pc值由bits 31:2决定,bits 1:0 未定义(所以指令不能halfword/byte对齐).当处理器执行在Thumb状态:所有
10、指令 16 bits 宽所有指令必须 halfword 对齐所以 pc值由bits 31:1决定,bits 0 未定义(所以指令不能 byte对齐).当处理器执行在Jazelle状态:所有指令 8 bits 宽处理器执行 word 存取一次取4条指令,程序指针PC(r15),Vector Table,异常处理,当异常产生时,ARM core:拷贝 CPSR 到 SPSR_设置适当的 CPSR 位:改变处理器状态进入 ARM 态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断(如果需要)保存返回地址到 LR_设置 PC 为相应的异常向量返回时,异常处理需要:从 SPSR_恢复CPSR从
11、LR_恢复PC Note:这些操作只能在 ARM 态执行.,Vector table can be at 0 xFFFF0000 on ARM720T and on ARM9/10 family devices,FIQ,IRQ,(Reserved),Data Abort,Prefetch Abort,Software Interrupt,Undefined Instruction,Reset,The ARM 可以用 little/big endian 格式存取数据.,r0=0 x11223344,STR r0,r1,LDRB r2,r1,r1=0 x100,Memory,3 2 1 0,0 1
12、 2 3,Byte Lane,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,00,00,00,44,31,24,23,16,15,8,7,0,00,00,00,11,Little endian,Big endian,R2=0 x44,R2=0 x11,For more information,see:“Application Note:Big and Little Endian Byte Address
13、ing”,字节顺序,四.ARM7TDMI,ARM7TDMI 是基于 ARM7 内核3 级流水线-0.9MIPS/MHz冯.诺依曼架构CPI(Cycle Per Instruction)约为1.9 T-Thumb 架构扩展,提供两个独立的指令集:ARM 指令,均为 32位Thumb指令,均为 16位两种运行状态,用来选择哪个指令集被执行D-内核具有Debug扩展结构M-增强乘法器 支持64位结果.I-EmbeddedICE-RT逻辑-提供片上断点和调试点支持,ARM7TDMI 内核信号,ARM7TDMI 方框图,ARM7TDMI内核,TAP 控制器,JTAG 接口,数据总线,控制信号,D31:0
14、,地址总线,A31:0,DIN31:0,DOUT31:0,BUSSplitter,EmbeddedICE逻辑,乘法器,ARM7TDMI 内核,指令解码,地址自增器,nRESET,nMREQ,SEQ,ABORT,nIRQ,nFIQ,nRW,MAS1:0,LOCK,nCPI,CPA,CPB,nWAIT,MCLK,nOPC,BIGEND,ISYNC,nTRANS,nM4:0,D31:0,桶形移位器,32 位 ALU,DBE,写数据 寄存器,读数据 寄存器,地址寄存器,寄存器,A31:0,ABE,及,控制 逻辑,PC Update,解码站,指令 解码,Incrementer,PC,ABus,BBus,
15、ALUBus,外部地址产生,PC31:2 ARM StatePC31:1 Thumb State,ALU31:0,INC,自增器,A31:0,向量,0 x1C,0 x00,地址寄存器,指令流水线,为增加处理器指令流的速度,ARM7 系列使用3级流水线.允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank),PCPC,PC-4PC-2,PC-8PC-4,ARMThumb,最佳流水线,该例中用6个机器周期执行了6条指令所有的
16、操作都在寄存器中(单周期执行)指令周期数(CPI)=1机器周期,操作,周期,1 2 3 45 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR 流水线举例,该例中,用6机器周期执行了4条指令指令周期数(CPI)=1.5 机器周期,周期,操作,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetc
17、h,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水线举例,流水线被阻断注意:内核运行在ARM状态,周期,1 2 3 4 5,地址 操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,中断流水线举例,周期,1 2 3 4 5 6 7 8,IRQ,IRQ 中断的反应时间最小=7机器周期,地址 操作,F,D,E,Li
18、nkret,Adjust,F,F,Decode IRQ,Linkret,Execute IRQ,Adjust,F,D,E,F,D,F,F,D,E,F,D,F,F,D,对齐,存储器访问必须始终适当地保持地址对齐非对齐地址将产生不可预测的/未定义的结果用Data Abort 异常来检测无效的非对齐数据存取扩展逻辑要求,或使用MMU在 720T,920T,926E-S,1020E谨防指令读取时出现非对齐非对齐数据存取能够完成,但不是用 LDR使用 LDRB,STRB 传递字节,或使用LDM 加移位/屏蔽,T标志位的作用,16,16,32-bit data,16,A1,Mux,Thumb指令解码,Mu
19、x,Mux,T标志,ARM指令解码,阶段 1,阶段 2,D31:0,0,1,1,0,Fetch,Decode,Execute,带Cache的ARM7TDMI,ARM710T8K 统一的 cache 完整的内存管理单元(mmu),支持虚拟地址和存储器保护写缓冲,ARM720T同ARM710T,但支持 WinCEARM740T8K 统一的 cache内存管理单元写缓冲,ARM7TDMI内核,地址,地址,数据读,AMBA接口,写缓冲,MMU,数据写,数据,ARM7xxT,控制逻辑,Cache,AMBA总线接口,JTAG 和非 AMBA 信号,CP15,五.ARM9TDMI,Harvard架构增加了可
20、用的存储器宽度指令存储器接口数据存储器接口可以实现对指令和数据存储器的同时访问5 级流水线实现了以下改进:提高了最大时钟频率,ARM9TDMI流水线的变化,InstructionFetch,Shift+ALU,MemoryAccess,RegWrite,RegRead,RegDecode,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM or ThumbInst Decode,Reg Select,RegRead,Shift,ALU,RegWrite,ThumbARMdecompress,ARM decode,InstructionFetch,FET
21、CH,DECODE,EXECUTE,ARM7TDMI,ARM9TDMI数据通道(1),寄存器Bank,ALU,C,B,A,DINFWD,结果,DA,DD,数据递增,向量,指令递增,IA,字节旋转/符号扩展.,MU 逻辑,双向缓冲器,字节/半字复制,MU逻辑单元包含有:多路复用器,乘法器和桶形移位器,数据总线,地址总线,字节/半字,指令地址总线,ARM9TDMI 数据通道(2),寄存器Bank,PSR,乘法器,移位器,ALU,B,A,Imm,DINFWD,BDATA,ADATA,锁存,锁存,MU 逻辑,(至 IA 生成逻辑),结果,周期,操作,ADD R1,R1,R2,SUB R3,R4,R1,
22、ORR R8,R3,R4,AND R6,R3,R1,EOR R3,R1,R2,1,2,3,4,5,6,7,8,LDRR4,R7,9,F,D,E,F,D,E,W,F,D,E,W,F,D,E,W,F,D,W,E,F,D,E,W,F 取指(Fetch)D 解码(Decode)E 执行(Execute)I 互锁(Interlock)M 存储器(Memory)W 写回(Writeback),I,LDR互锁,本例中,用了7个机器周期执行6条指令,CPI=1.2 机器周期。LDR指令之后立即跟一条数据操作指令,由于使用了相同的寄存器,将会导致互锁。,W,I,M,周期,操作,ADD R1,R1,R2,SUB
23、R3,R4,R1,ORR R8,R3,R4,AND R6,R3,R1,EOR R3,R1,R2,LDRR4,R7,最佳流水线,本例中,用了6个机器周期执行6条指令,CPI=1机器周期。LDR指令没有引起流水线互锁,LDM互锁(1),本例中,用了8个机器周期执行5条指令,CPI=1.6在LDM期间,有并行的存储器访问和回写周期,周期,操作,LDMIA R13!,R0-R3,SUB R9,R7,R8,ORR R8,R4,R3,AND R6,R3,R1,1,2,3,4,5,6,7,8,STRR4,R9,9,F 取指(Fetch)D 解码(Decode)E 执行(Execute)MW-存储器和回写同时
24、执行I 互锁(Interlock)M 存储器(Memory)W 写回(Writeback),F,D,E,W,F,D,E,W,D,E,F,D,E,W,F,M,D,W,E,I,I,I,I,I,I,M,F,LDM 互锁(2),本例中,用了9个机器周期执行5条指令,CPI=1.8 此处SUB 使用了 R3,增加了一个额外的互锁周期来完成该寄存器数据的获取 这种情况对任何LDM 指令,像带IA,DB,FD,等,都会发生。,ARM9TDMI系统举例,注意:数据接口必须能够读取指令存储器中的数据。为调试方便,建议数据接口能够读写指令存储器。,带Cache的ARM9TDMI,ARM9TDMI,D Cache,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入是系统结构 第2讲 ARM技术与ARM体系结构 嵌入 系统 结构 ARM 技术 体系结构
链接地址:https://www.31ppt.com/p-6415049.html