ARM架构.ppt

上传人:爱问知识人 文档编号:5015279 上传时间:2020-01-28 格式:PPT 页数:32 大小:853.50KB
返回 下载 相关 举报
ARM架构.ppt_第1页
第1页 / 共32页
ARM架构.ppt_第2页
第2页 / 共32页
ARM架构.ppt_第3页
第3页 / 共32页
ARM架构.ppt_第4页
第4页 / 共32页
ARM架构.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《ARM架构.ppt》由会员分享,可在线阅读,更多相关《ARM架构.ppt(32页珍藏版)》请在三一文库上搜索。

1、ARM 架构,Agenda,ARM公司简介 编程模式 指令集 系统设计,ARM Ltd,成立于1990年11月 前身为 Acorn计算机公司 Advance RISC Machine(ARM) 主要设计ARM系列RISC处理器内核 授权ARM内核给生产和销售半导体的合作伙伴 ARM 公司不生产芯片 IP(Intelligence Property) 另外也提供基于ARM架构的开发设计技术 软件工具, 评估板, 调试工具,应用软件, 总线架构, 外围设备单元,等等,ARM Offices Worldwide,800+ 雇员 全球,England Cambridge, Maidenhead, Sh

2、effield, Blackburn Germany Munich France Paris, Sophia Antipolis Korea Seoul,US Seattle, Los Gatos, Walnut Creek, Austin, Boston, San Diego China Taiwan and Shanghai Japan Shin-Yokohama (Tokyo),ARM Partnership Model,目录,ARM公司简介 编程模式 指令集 系统设计,数据和指令类型,ARM 采用的是32位架构. ARM 约定: Byte : 8 bits Halfword :16 b

3、its (2 byte) Word : 32 bits (4 byte) 大部分ARM core 提供: ARM 指令集(32-bit) Thumb 指令集(T变种)(16-bit ) Jazelle cores 支持 Java bytecode(J变种,4TEJ),处理器工作模式,ARM 有7个基本工作模式: User:非特权模式,大部分任务执行在这种模式 正常程序执行的模式 FIQ:当一个高优先级(fast)中断产生时将会进入这种模式 高速数据传输和通道处理 IRQ:当一个低优先级(normal)中断产生时将会进入这种模式 通常的中断处理 Supervisor:当复位或软中断指令执行时将会

4、进入这种模式 供操作系统使用的一种保护模式 Abort: 当存取异常时将会进入这种模式 虚拟存储及存储保护 Undef: 当执行未定义指令时会进入这种模式 软件仿真硬件协处理器 System: 使用和User模式相同寄存器集的特权模式 特权级的操作系统任务,ARM 寄存器,寄存器组织概要,User mode r0-r7, r15, and cpsr,r8,r9,r10,r11,r12,r13 (sp),r14 (lr),spsr,FIQ,User,r13 (sp),r14 (lr),spsr,IRQ,User mode r0-r12, r15, and cpsr,r13 (sp),r14 (l

5、r),spsr,Undef,User mode r0-r12, r15, and cpsr,r13 (sp),r14 (lr),spsr,SVC,User mode r0-r12, r15, and cpsr,r13 (sp),r14 (lr),spsr,Abort,User mode r0-r12, r15, and cpsr,Thumb state Low registers,Thumb state High registers,Note: System模式使用user模式寄存器集,ARM 寄存器,ARM 有37个32-Bits长的寄存器. 1 个用作PC( program counter

6、) 1个用作CPSR(current program status register) 5个用作SPSR(saved program status registers) 30 个通用寄存器 当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取: 相应的r0-r12子集 相应的 r13 (the stack pointer, sp) and r14 (the link register, lr) 相应的 r15 ( the program counter, pc) 相应的CPSR(current program status register, cpsr) 特权模式 (除system模式

7、) 还可以存取; 相应的 spsr (saved program status register),程序状态寄存器,条件位: N = 1-结果为负,0-结果为正或0 Z = 1-结果为0,0-结果不为0 C =1-进位,0-借位 V =1-结果溢出,0结果没溢出 Q 位: 仅ARM 5TE/J架构支持 指示增强型DSP指令是否溢出 J 位 仅ARM 5TE/J架构支持 J = 1: 处理器处于Jazelle状态,中断禁止位: I = 1: 禁止 IRQ. F = 1: 禁止 FIQ. T Bit 仅ARM xT架构支持 T = 0: 处理器处于 ARM 状态 T = 1: 处理器处于 Thum

8、b 状态 Mode位(处理器模式位): 0b10000 User 0b10001 FIQ 0b10010 IRQ 0b10011 Supervisor 0b10111 Abort 0b11011 Undefined 0b11111 System,当处理器执行在ARM状态: 所有指令 32 bits 宽 所有指令必须 word 对齐 所以 pc值由bits 31:2决定, bits 1:0 未定义 (所以指令不能halfword / byte对齐). 当处理器执行在Thumb状态: 所有指令 16 bits 宽 所有指令必须 halfword 对齐 所以 pc值由bits 31:1决定, bit

9、s 0 未定义 (所以指令不能 byte对齐). 当处理器执行在Jazelle状态: 所有指令 8 bits 宽 处理器执行 word 存取一次取4条指令,程序指针PC (r15),Vector Table,异常处理,当异常产生时, ARM core: 拷贝 CPSR 到 SPSR_ 设置适当的 CPSR 位: 改变处理器状态进入 ARM 态 改变处理器模式进入相应的异常模式 设置中断禁止位禁止相应中断 (如果需要) 保存返回地址到 LR_ 设置 PC 为相应的异常向量 返回时, 异常处理需要: 从 SPSR_恢复CPSR 从LR_恢复PC Note:这些操作只能在 ARM 态执行.,Vect

10、or table can be at 0xFFFF0000 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 = 0x11223344,STR r0, r1,LDRB r2, r1,r1 = 0x100,Memory,3 2 1 0,0 1 2 3,Byte Lane,31,24,23,16,15,8

11、,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 = 0x44,R2 = 0x11,For more information, see: “Application Note 61: Big and Little Endian Byte Addressing”,字节顺序,ARM发展,SA-110,

12、ARM7TDMI,4T,1,支持Halfword 和signed halfword / byte 和System mode,支持Thumb指令集,2,4,ARM9TDMI,SA-1110,ARM720T,ARM940T,改良的ARM/Thumb 交互作用 以及CLZ 指令,5TE,Saturated maths DSP multiply-accumulate instructions,XScale,ARM1020E,ARM9E-S,ARM966E-S,3,早期的ARMs,ARM9EJ-S,5TEJ,ARM7EJ-S,ARM926EJ-S,Jazelle 支持 Java字节码,6,ARM11,S

13、IMD,SISIMDMD,S,SIMD,测验1,1) 说出ARM可以工作的模式名字。 2) ARM核有多少个寄存器? 3) 什么寄存器用于存储PC和连接寄存器? 4) R13通常用来存储什么? 5) 哪种模式使用的寄存器最少? 6) 在Thumb 指令集中,哪些寄存器处于Low group? 7) CPSR的哪一位反映了处理器的状态? 8) 所有的Thumb指令采取什么对齐方式? 9) ARM有哪几个异常类型。 10) 为什么FIQ的服务程序地址要位于0X1C? 11) 在复位后,ARM处理器处于何种模式、何种状态?,Agenda,ARM公司简介 编程模式 指令集 系统设计,ARM 指令集,所

14、有ARM指令均为32-bits长 大部分为单周期指令 所有指令都可以条件执行 采用 Load/Store 架构 数据处理指令: SUB r0,r1,#5 ;r1-5-r0 ADD r2,r3,r3,LSL #2 ;R3x4+r3-r2 ANDS r4,r4,#0x20 ;r4+0x20-r4,更新条件码标志位 ADDEQ r5,r5,r6 ;r5+r6-r5(条件-相等) 存储器存取指令: LDR r0,r1,#4 ;r1+4-r0 STRNEB r2,r3,r4 ;NE符合-将r2低8位数写到r3+r4内存单元 LDRSH r5,r6,#8! ;r6+8-r5(半字节),r5中高16位设置成

15、该字节的符号位 STMFD sp!,r0,r2-r7,r10 ;出栈,ARM 跳转分支指令,B PC 32 Mbyte . BL 保存返回地址到 LR 返回时从 LR 恢复 PC 对于 non-leaf 函数, LR 必须压栈保存,STMFD sp!,regs,lr : BL func2 : LDMFD sp!,regs,pc,func1,func2,: : BL func1 : :,: : : : : MOV pc, lr,协处理器,多达16个可定义协处理器,用唯一的ID来标示 扩充ARM指令集 通常用作ARM “internal functions” (例如:cp15通常 用作 ARM c

16、ache 控制器) 通常系统设计的时候最好用内存映射外设 容易实现,Thumb指令集,Thumb 是一个 16-bits 指令集 优化代码密度 (65% of ARM ) 提高窄内存操作性能 是ARM指令集的一个功能子集 ARM / Thumb 转换使用 BX 指令,对于有编译器产生的绝大多数指令: 条件执行不可用 源和目的寄存器相同 只有低端寄存器可用 常量大小受限制 内嵌的桶形移位不可用,ARM / Thumb 性能分析,存储器宽度 (zero wait state),指令流,执行单元,ARM,Thumb,解码阶段,执行阶段,预取阶段,Jazelle,Jazelle,Jazelle 使得

17、ARM cores 执行 8-bit 的Java 字节码 95% 的字节码执行使用 hardware (typical) Normal JVM: 1.0 Caffeinemarks/MHz ARM9EJ: 5.5 Caffeinemarks/MHz 更高的性能 增加的门电路12K (ARM9EJ-S 同 ARM9E-S比较) ARM JTEK (Java Technology Enabling Kit) 提供支持代码,Agenda,介绍 编程模式 指令集 系统设计,基于ARM的系统示例,16 bit RAM,8 bit ROM,32 bit RAM,I/O,外设,中断控制器,nFIQ,nIRQ

18、,AMBA总线,Bridge,Timer,On-chip RAM,ARM,Interrupt Controller,Remap/ Pause,TIC,Arbiter,Bus Interface,External ROM,External RAM,Reset,系统总线,片内外设总线,AMBA Advanced Microcontroller Bus Architecture ADK Complete AMBA Design Kit,ACT AMBA Compliance Testbench PrimeCell ARMs AMBA compliant peripherals,AHB or ASB,

19、APB,External Bus Interface,Decoder,ARM Developer Suite 1.2,ADS1.2是为嵌入式ARM开发而设计的一整套软件开发工具 从最初的软件原型到最终优化的ROM代码。 ADS1.2发布于2001的12月份 支持的主机系统 IBM compatible PCs with Windows 95, 98, 2000, ME or NT4 Sun workstations with Solaris 2.6, 2.7 or 2.8 HP workstations with HPUX 10.20, 11 Red Hat Linux 6.2 & 7.1 使

20、用FLEXLM管理器,管理它的LICENSE 45天的评估版软件 第三方工具支持: http:/ Multi-ICE 调试,5线JTAG,被调试的系统可以是最终系统! 也可以使用第三方开发调试工具。,Data,Address,Control,BREAKPT,CPU,ARM,Debugger and Multi-ICE server (可以运行在不同的主机上),TAP,EmbeddedICE Logic-RT,ARM 实时跟踪,Embedded Trace Macrocell (ETM) 实时指令 (PC) 跟踪 实时数据访问跟踪 包含 ICE功能(trigger & filter logic)

21、 MultiTrace Trace Port Analyzer (TPA) 更深层次的追踪 Trace Debug Tools 通过 JTAG/Multi-ICE配置 ETM 跟踪 从ETM/MultiTrace接收跟踪信息 使用源代码镜像文件得到 ETM跟踪的数据,5,ARM core,ETM,RAM,ROM,TAP controller,Trace,Trigger / Filter,9,13,21 wire Trace Port,5 wire JTAG port,Serial/Ethernet,并口l,主机运行Trace Debug 工具 (Add-on for ADS),ARM Powe

22、red Products,Lexmark Z52 Color Jetprinter,Samsung ML5100A,JVC “Pixstar“ GC-X1,HP Jornado 820,Psion Revo Plus,HP CapShare,Sony MZ-R90 MiniDisc,Nokia 8810,Nokia Mediamaster,Nintendo Gameboy Advance,Ericsson R380,Alba Bush Internet TV,3Com 10/100 PCI NIC,Iomega HipZip,Diamond Multimedia Rio 600,测验 2,1) 哪些ARM指令可以有条件的执行? 2) 下面的指令完成什么工作? MOVNES r2,r3,ASR #2 3) Thumb代码与ARM代码比较的两大优势? 4) AMBA代表是什么? 5) Multi-ICE为你完成什么工作?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1