欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式系统第二讲arm体系结构与编程模型.ppt

    • 资源ID:6415015       资源大小:457.50KB        全文页数:77页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式系统第二讲arm体系结构与编程模型.ppt

    第二讲 ARM体系结构与编程模型,电信学院崔寅鸣,本讲主要内容,ARM体系结构体系结构的版本ARM体系的变种 ARM系列处理器介绍ARM处理器架构流水线结构 MMU,I/O,DMA,AMBA,JTAG核与内核ARM编程模型,ARM体系结构,ARM体系结构的发展,ARM 版本性能结构概览,ARM处理器命名规则,ARM7TDMI核命名规则7 体系结构 T Thumb 代码支持(16 bit 指令)D Debug 硬件调试模块支持M 加强的乘法支持I EmbeddedICE LogicS 可综合的软核E DSPJ Jazeller,允许直接执行Java字节码,ARM体系的变种(一),Thumb指令集(T变种)Thumb指令集是ARM指令集的子集,16位长,与ARM指令集相比:完成同样任务,Thumb代码通常使用更多的指令Thumb指令集不包括异常处理所需的指令目前Thumb指令集有2个版本V1用于ARMV4V2用于ARMV5,与V1比切换ARM/Thumb更高效,增加SWI,更严格定义了乘法指令对条件标志位的影响,ARM体系的变种(二,略),长乘法指令(M变种)增加了两条用于长乘法操作的ARM指令32326432323264在V3体系中引入,ARM体系的变种(三,略),增强型DSP指令(E变种)几个新的16位乘法运算和乘加指令;完成饱和带符号加减运算;可对双字数据操作的加载寄存器(LDRD)、存储寄存器STRD和协处理器寄存器传输指令MCRR、MRRC;Cache预加载指令PLD;,ARM体系的变种(四,略),另外,一些早期体系结构的E变量未实现指令LDRD、STRD、MCRR、MRRC,为了表示这种结构,通常用xP表示;在非T或非M变量的体系结构中,E变量无效。例如:ARMv5TExP表示:ARM指令集版本v5,支持Thumb指令集,支持长乘法,支持除LDRD、STRD、MCRR、MRRC外的所有增强型DSP指令。,ARM体系的变种(五,略),Java加速器Jazelle(J变种)提供Java加速功能,比普通虚拟机(VM)相比,Jazelle使Java代码运行速度提高8倍,功耗降低80使得同时运行Java应用程序,操作系统,中间件可以在单独的处理器上实现在ARM v4TEJ中首先使用,ARM体系的变种(六,略),媒体功能扩展(SIMD变种)音频/视频处理性能提高24倍可以同时进行两个16位操作数或四个8位操作数的运算提供小数算术运算用户可定义饱和运算模式(溢出后使用最大的整数或最小的负数来表示)两套16位操作数的乘加/乘减运算3232位的小数MAC同时8位/16位选择操作低功耗,ARM微处理器分类,ARM7系列:如ARM7TDMI(TDMI=Thumb,Debugger,Multiplier,ICE)、ARM720T等ARM9系列:MX1采用ARM920T核ARM9E系列ARM10系列ARM11系列StrongARM系列Xscale,ARM7系列处理器特点(一),ARM7系列:如ARM7TDMI、ARM720T等采用ARMV4T结构常见芯片主频为20133MHzARM720T以下没有MMU适合对价位和功耗要求较高的产品。3级流水线和冯.诺依曼结构支持Window CE、Linux Palm OS等,ARM7系列处理器特点(二),指令和数据Cache(ARM710,720,740)平均功耗0.6mW/MHz每条指令平均需要1.9时钟周期处理速度0.9MIPS/MHz小型、快速、低能耗、集成式RISC内核广泛应用于手持式计算机、数据通信和消费类多媒体,ARM9系列处理器特点(一),ARM9系列:MX1采用ARM920T核采用ARMV4T结构常见的芯片主频为100233MHz5级流水线和哈佛结构支持32位的高速AMBA总线接口MMU支持实时操作系统,ARM9系列处理器特点(二),指令数据分离的Cache(ARM920,940,9E)平均功耗0.7mW/MHz132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟)配写缓冲低价、低能耗、高性能应用于高级引擎管理、保安系统、机顶盒、便携计算机和高档打印机,ARM9E处理器特点(略),ARM9E系列采用ARMV5TE结构5级流水线和哈佛结构紧耦合的存储器接口支持32位的高速AMBA总线接口MMU支持DSP指令集,适合高速数字信号处理支持实时操作系统具有指令Cache和数据Cache支持VFP9浮点处理协处理器,ARM10系列处理器特点(一),ARM10系列采用ARMV5TE结构6级流水线和哈佛结构支持64位的高速AHB总线接口MMU支持DSP指令集,适合高速数字信号处理支持实时操作系统具有指令Cache和数据Cache支持VFP9浮点处理协处理器,ARM10系列处理器特点(二),时钟速度300MHz每条指令平均需要1.2个时钟周期适用于高性能手持式因特网设备,数字式消费类产品,ARM11系列处理器特点,ARM11采用ARMV6结构8级流水时钟达到550MHz0.13um工艺支持IEM(Intelligent Energy Manager),节约高达75的处理器功耗ARM1156T2-S,ARM1156T2F-S首批含有Thumb-2内核技术,其他系列ARM处理器(一),SecureCore系列专为安全需要而设计灵活的保护单元Strong ARM融合了Intel技术的具有ARM体系结构的32位处理器采用ARMV4T结构5级流水Intel以SA110命名包括SA1100 PDA系统芯片和SA1500 多媒体处理器芯片,其他系列ARM处理器(二),XscaleIntel新一代的性能全、性价比高、低功耗的微处理器 ARMV5TE7级超流水线32k数据缓存、32k指令缓存,ARM处理器架构简述,ARM处理器架构(三级流水),ARM处理器包括:32位ALU 31个32位通用寄存器及6个状态寄存器 32x8位乘法器 32x32位桶形移位寄存器 指令译码及控制逻辑 数据/地址寄存器组成,ARM处理器流程示意,ARM的流水线结构(一),流水线结构一条指令典型执行过程可能包括:取指:从存储器中取出指令(fetch);译码(dec);取操作数,从寄存器组中读操作数(reg);执行运算(ALU);存储器访问(mem);结果写回寄存器(res);,ARM的流水线结构(二),指令流水线,ARM7的三级流水,ARM7 采用3级流水线,即分为取指、译码和执行。,ARM9的五级流水,ARM9 5级流水线,即分为取指、译码、执行、数据缓存和写回。3级流水线阻塞主要发生在存储器访问和数据通路的占用上,ARM9则采用5级流水线,把存储器存取和数据存取分开,且增加I-Cache和D-Cache,同时增加了数据写回的专用通道,I-Cache和D-Cache,快存(Cache)结构 新型ARM处理器采用I-Cache和D-Cache独立的结构,存储器管理单元MMU,存储器管理单元MMU(Memory Management Unit)MMU可以通过CP15协处理器的R1的设置,选择打开或关闭。MMU的主要功能将虚拟地址转换为物理地址;控制存储器访问权限。MMU支持基于段或页的存储器访问,其中有段(1MB)、大页面(64kB)、小页面(4 kB)、微小页面(1 kB),MMU的控制,ARM存储器管理单元的控制,通过协处理器CP15的寄存器R1、R2、R3、R4、R5、R6、R8、和R10来实现,其中R2为转换表基址寄存器,详细内容参见ARM Architecture Reference Manual。,地址变换后备缓冲器TLB,类似Cache,只存放最近使用过的页表项,也称为快表是虚拟地址和物理地址之间的高速缓存,包含了64项虚页号和实页号的对应关系,同时还为访问控制提供信息。若TLB包含虚拟地址的变换项,则存储控制逻辑决定是否允许访问;若允许访问,则MMU输出与虚拟地址对应的物理地址;若不允许访问,则MMU向CPU发出中止信号若请求的虚拟地址不在TLB中时,则引发地址变换过程,直接存储器访问DMA,DMA直接存储器访问I/O的数据块直接传送到存储器的缓冲区而不需要处理器的介入在I/O的数据流量比较大,中断处理频繁的场合可以提高系统性能,ARM的I/O结构形式,ARM采用存储器映像I/O的方式,即把I/O端口当作特殊的存储器地址来访问。一般有若干个寄存器:发送数据寄存器(只写)接收数据寄存器(只读)控制寄存器状态寄存器(只读)中断控制寄存器中断IRQ和快速中断FIQ对于FIQ的请求响应时长最多28个周期,ARM JTAG调试接口(一),JTAG测试标准是由联合测试行动小组(Joint Test Action Group)提出的一种国际标准,主要用于芯片内部测试及对系统进行仿真、调试,ARM JTAG调试接口(二),TAP控制器(测试访问端口)指令寄存器器件ID寄存器 旁路寄存器边界扫描寄存器,ARM JTAG调试接口(三),Embedded-ICE模块JTAG调试接口基础上的扩展;包含2个观察点寄存器以及控制与状态寄存器;能够中止ARM处理器的运行,完成设置断点、观测点等功能;包含调试通信端口,使得目标系统的软件可以与主机通信;其寄存器需要通过JTAG测试端口来编程。,ARM处理器内核,核与内核的概念核=内核I-Cache/D-Cache/MMU/AMBA/写缓冲ARM架构的处理器内核有ARM7TDMIARM8ARM9TDMIARM10TDMIStrongARM(SA-1),ARM处理器核,ARM架构的处理器核有ARM720T/ARM740TARM920T/ARM940TARM946E-S/ARM966E-SARM1020EStrongARM SA-110,ARM920T结构图,ARM编程模型,主要内容,ARM处理器编程模型寄存器组处理器工作模式异常处理,ARM处理器支持的运行模式,ARM处理器共支持7种运行模式,分别为:用户(usr):ARM处理器正常的程序执行状态;系统模式(sys):运行具有特权的操作系统任务;快速中断(fiq):用于高速数据传输或通道处理;外部中断(irq):用于通用的中断处理;管理模式(svc):操作系统使用的保护模式;中止(abt):当数据或指令访问中止时进入该模式,可用于虚拟存储及存储保护;未定义(und):当未定义指令执行时进入该模式,可用于硬件协处理器的软件仿真。,ARM处理器运行模式,除用户模式之外的其余6种称为非用户模式,或特权模式(Privileged Modes);而特权模式中,除系统模式之外的其余5种又称为异常模式(Exception Modes)。用户程序运行在用户模式下,不能访问一些受操作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器处理器模式的切换。这种体系结构可以使系统控制整个系统的资源。,系统模式,系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时可以正常保存当前工作状态,进行模式切换。,ARM处理器运行模式,当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保存了程序运行状态)不被破坏。,ARM的寄存器组织,ARM处理器共有37个32位寄存器,其中31个为通用寄存器,6个状态寄存器。ARM状态下的寄存器组织未分组寄存器R0R7分组寄存器R8R14程序计数器R15(PC)当前程序状态寄存器(CPSR)备份的程序状态寄存器(SPSR),ARM状态下寄存器组织,Thumb状态下的寄存器组织,Thumb状态下的寄存器组织通用寄存器R0R7程序计数器PC堆栈指针SP(R13)连接寄存器LRCPSP和SPSR,R13(SP堆栈指针),每种异常模式都有备份寄存器R13_usr,R13_svc,R13_abt,R13_und,R13_irq,R13_fiq用作堆栈指针每种异常模式有自己专用的栈地址R13用于被中断程序的现场保护,即保存需要保护的寄存器值,R14(LR连接寄存器),每种异常模式都有备份寄存器R14_usr,R14_svc,R14_abt,R14_und,R14_irq,R14_fiq作用存放当前子程序的返回地址异常中断发生时,该异常模式R14_xxx被设置为将要返回的地址,R15(PC程序计数器),指令地址PC=当前执行指令地址8地址值字对齐及半字对齐例MOV PC,PC;跳转到下面第二条指令,状态寄存器,状态寄存器:当前程序状态寄存器 CPSR,可以在任何工作模式下被访问;程序状态备份寄存器SPSR,只有在异常模式下,才能被访问;,CPSR当前程序状态寄存器(一),当前程序状态寄存器CPSR N:补码形式的有符号数运算时,1为负,0为正;Z:1表示结果为零;C:加减法的进位或借位,以及非加减法的最后移位;V:1表示补码形式的有符号数加减运算时符号位溢出;,CPSR当前程序状态寄存器(二),Q:v5以上版本才有,描述增强DSP运算指令是否发生溢出;I、F:中断禁止位,1表示中断禁止;T:指示处理器处于ARM或Thumb工作状态;,CPSR当前程序状态寄存器(三),M4:0:表示处理器的运行模式0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System,ARM控制程序执行的方式,正常执行,每执行一条指令ARM指令PC+4Thumb指令PC+2跳转:B、BL、BX、BLX异常中断执行完当前指令,跳转到异常中断处理程序执行完返回到发生中断指令的下一条处要保护和恢复被中断程序的执行现场,ARM处理器的异常中断(一),异常是指正常的程序执行流程发生暂时的停止或改变,例如在复位、有中断请求及指令预取中止时;ARM处理器支持7种类型的异常。复位(RESET):当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。未定义指令(UDEF):当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。软件中断(SWI):该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。使用该异常机制可以实现系统功能调用。,ARM处理器的异常中断(二),指令预取中止(PABT):若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。数据中止(DABT):若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。IRQ(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务。FIQ(快速中断请求):当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。,ARM处理器的异常中断(三),ARM处理器的异常中断(四),ARM处理器对异常的处理(一),对异常的响应:将下一条指令的地址存入相应异常类型的连接寄存器LR_mode;将CPSR复制到相应异常类型的SPSR_mode中;设置CPSR的M4:0,强制改变到相应的运行模式;禁止正常中断,如果异常类型为快速中断或复位,同时禁止快中断;强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。,ARM处理器对异常的处理(二),异常返回从堆栈中恢复用户寄存器将SPSR_mode复制回CPSR中复制LR_modePC,未定义异常的操作过程,进入异常:R14_und=产生异常的下一条指令地址SPSR_und=CPSRCPSR4:0=0b11011/*进入未定义运行模式*/CPSR5=0/*进入ARM工作状态*/CPSR7=1/*禁止正常中断*/如果设置了高向量模式,则PC=0 xFFFF0004 否则PC=0 x00000004退出异常:MOVS PC R14 恢复PC(从R14_und)和CPSR(从SPSR_und),并返回到该未定义指令的下一条指令处,ARM推荐的异常退出指令,例:SWI中断的R14,例如:0 x8000 mov.0 x8004 add.0 x8008 SWI.0 x800C mov.0 x8010 add.当程序执行SWI异常时,PC指向0 x8010,在跳转到异常向量的之前,ARM会把R14调整到0 x800C,ARM数据类型,字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位,请注意区分。半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。,存储器组织,以0 x87654321为例小端方式对应于地址A+3=0 x87,A+2=0 x65,A+1=0 x43,A=0 x21大端方式对应于地址A=0 x87,A+1=0 x65,A+2=0 x43,A+3=0 x21,字对齐与半字对齐,ARM状态,字地址的低两位bits1:0必须为0b00,半字地址的最低位bit0为0b0Thumb状态,字地址最地位bit0必须为0b0如果写入PC的指令地址非对齐ARMV3及以下,忽略R15的bits1:0ARMV4及以上,执行结果不可预知Thumb,忽略R15的bit0,ARM处理器工作状态,从编程的角度看,ARM处理器有2种工作状态并可自由切换:ARM状态:处理器执行32位的、字对准ARM指令;Thumb状态:处理器执行16位、半字对准的Thumb指令。,ARM/Thumb状态的切换,ARM处理器总是从ARM状态开始执行可用指令实现状态切换BLXLDR、LDM及POP当处理器进入异常中断处理程序时,自动切换到ARM状态如果从Thumb状态进入异常,处理完成退出后仍自动进入Thumb状态,立即数,一条ARM指令32位,可能含12位立即数immediate=immed_8循环右移(2*rotate_imm)合法:0 xff,x0104,0 xff0,0 x3f0非法:0 x101,0 xff1,0 x102(非偶数位)Qu:0 x1fc,

    注意事项

    本文(嵌入式系统第二讲arm体系结构与编程模型.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开