北工大_嵌入式系统复习.ppt
《北工大_嵌入式系统复习.ppt》由会员分享,可在线阅读,更多相关《北工大_嵌入式系统复习.ppt(142页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1体系结构体系结构:CISCRISCCISC指令集 Intel及其兼容的处理器用最少的机器语言指令来完成所需的计算任务 RISC:ReducedInstructionsSetComputing嵌入式系统:RISC 处理器速度比内存快寄存器,流水线 思想:针对流水线化的处理器优化 RISC和CISC之间的区别2指标指标RISCCISC指令集指令集一一个个周周期期执执行行一一条条,指指令令长长度度固固定定指指令令长长度度不不固固定定,执执行行需需要要多多个个周周期期流水线流水线流流水水线线每每周周期期前前进一步进一步指指令令的的执执行行需需要要调调用用微微代代码码的的一一个微程序个微程序寄存器寄存
2、器更多通用寄存器更多通用寄存器专用寄存器专用寄存器Load/Store结构结构独独立立,完完成成数数据据在在寄寄存存器器与与外外部部存存储器之间传输储器之间传输处处理理器器可可直直接接处处理理存存储储器器中中的的数数据据3Samsung S3C44B0XSamsung S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:4体系结构变化THUMB指令集(T)uTHUMB 指令集:32位ARM指令集的子集,按16位指令重新编码u代码尺寸小(up t
3、o 40%compression)u简化设计5ARM体系结构版本ARM/Thumb体系版本命名格式ARMv4xMARMv字符串 体系结构版本号 18表示变种的字符:MDTEJIS内核的命名:ARM7TDMI-S系列号系列号Thumb片上调试片上调试 64位乘法位乘法Embeded ICE可综合软核可综合软核6ARM编程模型1.ARM流水线技术2.存储模式I/O空间3.工作模式和寄存器组4.异常和异常向量表5.AMBA总线6.JTAG调试接口7指令流水线(Pipeline)指令流水线是RISC结构的共同点ARM73级ARM95级ARM106级ARMCortexA813级8按照冯诺依曼型计算机执行
4、程序的原理,指令必须是按顺序方式逐条串行执行的。比如加法指令可以分成取指令、指令译码、取操作数、ALU运算、写结果五个步骤,如果有程序中有连续两条这样的指令,在传统的计算机里必须等第一条指令完全结束才能开始执行流水线的好处是:第一条指令开始译码的时候,第二条就可以开始取指令了。9指令流水线(Pipeline)允许多个操作同时处理,比逐条指令执行快PC指向正被取指的指令,而非正在执行的指令寄存器读(从寄存器寄存器读(从寄存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank)FetchDecodeExecute从存储器中读取指令从存储器中读取指令解码指令解码指令PC
5、 PCPC-4 PC-2PC-8 PC-4ARM Thumb10三级流水线:FetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecute11指令流水线(Pipeline)更多级的PipelineARM10ARM10采用了采用了6 6级流水线,但是处于兼容考虑,直级流水线,但是处于兼容考虑,直接读取接读取PCPC值依然等于值依然等于“当前指令地址当前指令地址+8+8”。1213多周期指令:时间片 123456781.取ADD译码 执行2.取STR译码 算地址 存数 3.取ADD译码 执行4.取ADD译码 执行5.取ADD译码.冯冯 诺依曼结构:不能
6、同时访问指令和数据存储器诺依曼结构:不能同时访问指令和数据存储器14ARM95级流水线:哈佛结构数据和指令分别进行独立编址步骤:取指、译码、执行、缓冲、写回缓冲、写回取指:从程序存储器中取指令流水线译码:读取寄存器操作数执行:如果是LDRSTR,则计算地址缓冲:LDRSTR访问数据存储器,否则缓冲写回:结果写到寄存器中1516指令流水线(Pipeline)流水线的效率也可能低下,两个原因:1.相关性问题:一是如果第一条指令的结果是第二条指令执行所需要的,那么就出现了相关性问题。这就导致流水线必须停下来等前面的运算结束才能够继续后面的指令。解决这个问题的办法有乱序执行乱序执行技术。17指令流水线
7、(Pipeline)2.程序转移问题:由于无法事先判断转移指令会走那一边,所以必须等待结果出现。由于这样的指令在程序中数量众多,通常会导致流水线的停顿状况非常严重。解决的方法:一般是通过风险的预测执行风险的预测执行或强行并强行并行执行来解决行执行来解决。18ARM编程模型1.ARM流水线技术2.存储模式I/O空间3.工作模式和寄存器组4.异常和异常向量表5.AMBA总线6.JTAG调试接口19处理器的工作状态ARM7TDMI 处理器有两种工作状态:uARM-32-bit,按字排列的ARM指令集uThumb-16-bit,按半字排列的Thumb指令集ARM7TDMI 核的操作状态可能通过BX指令
8、(分支和交换指令)在ARM状态和Thumb状态之间切换20例:例:从从ARM状态切换到状态切换到Thumb状态:状态:LDRR0,=Label+1BXR0从从Thumb状态切换到状态切换到ARM状态:状态:LDRR0,=LabelBXR021存储器模式1.I/O存储空间ARM 32位架构,I/O空间采用统一编址方式地址从0 x00000000开始以字节为单位的线性组合地址空间:232,(4GB)0232-1 230个32位的字单元 231个16位的半字单元地址:32位无符号数,可加减运算结果232取模 22数据和指令类型ARM 32位地址线/数据线,支持如下数据类型:Byte:8 bitsHa
9、lfword:16 bits(2 byte),必须对齐2字节边界Word:32 bits(4 byte),必须对齐4字节边界有符号数,无符号数 共6种数据类型23存储器模式2.ARM存储器工作模式 (ENDIAN管脚)(1)Big Endian 大端模式u字数据的高位字节存储在低地址中u字数据的低字节则存放在高地址中3124 23 16158 70字地址字地址840低地址低地址 高地址高地址1234 位位123412340 x123456787856341224存储器模式(2)Little Endian 小端模式(默认)u低地址中存放字数据的低字节u高地址中存放字数据的高字节3124 23 1
10、6158 70字地址字地址840低地址低地址 高地址高地址4321 位位432143210 x123456781234567825存储器模式举例26ARM编程模型1.ARM流水线技术2.存储模式I/O空间3.工作模式和寄存器组4.异常和异常向量表5.AMBA总线6.JTAG调试接口27工作模式和寄存器ARM有7个基本工作模式USR FIQ IRQ SVC ABT UND SYS 1、User:用户模式,一般的非特权任务运行的模式l正常程序执行的模式2、FIQ快中断模式:当一个高优先级(fast)中断产生时将会进入这种模式l高速数据传输和通道处理3、IRQ中断模式:当一个低优先级(normal)
11、中断产生时将会进入这种模式l通常的中断处理28工作模式和寄存器4、Supervisor管理员(特权)模式(SVC):当复位或软中断指令执行时将会进入这种模式l供操作系统使用的一种保护模式5、Abort中止模式:当存取异常时将会进入这种模式l虚拟存储及存储保护6、Undef未定义模式:当执行未定义指令时会进入这种模式l软件仿真硬件协处理器7、System系统模式:使用和User模式相同寄存器集,权限比用户模式高l系统级的操作系统任务工作模式工作模式的类型用户模式:程序不能访问受操作系统保护的资源,也不能改变模式特权模式:除User之外的其他6种,处理异常和监控调用,可自由访问系统资源和改变模式异
12、常模式:除系统模式外其他5中特权模式,处理异常和中断系统模式:不能通过异常进入,操作系统的任务可以访问所需系统和用户资源,不能访问异常寄存器组。确保异常不会破坏任务状态。2930工作模式工作模式的切换:软件切换 外部中断或异常OS控制系统整个资源31寄存器ARM处理器共有37个寄存器(32位)31个通用寄存器6个状态寄存器每种工作模式对应一组寄存器:15个通用寄存器 R0R14一个或两个状态寄存器 一个程序计数器R15(PC)32通用寄存器R0 到 R15 可以直接访问R0 到 R14 是通用寄存器R13:堆栈指针(sp)(通常)u每种处理器模式都有单独的堆栈R14:链接寄存器(LR)R15
13、包含程序计数器(PC)33程序状态寄存器CPSR 当前程序状态寄存器,包括代码标志状态和当前模式位5个SPSRs-(程序状态保存寄存器)当异常发生时保存CPSR状态34程序状态寄存器ARM7TDMI 包含当前程序状态寄存器(CPSR),加上5个程序状态保存寄存器SPSR,当异常发生时,用于保存CPSR的状态 这些寄存器的功能是:u保存ALU当前操作信息u控制允许和禁止中断u设置处理器操作模式35程序状态寄存器CPSR格式:NZCVIFQT M4M3M2M1M03130 29 28 2701234567控制位控制位条件标志位条件标志位Q标志位标志位361.条件标志位Negative Zero C
14、arry oVerflowN=1 结果为负,0-结果为正或0Z=1 结果为0,0 结果不为0C=1-有进位无借位,否则 0V=1-结果溢出,0结果没溢出NZCVIFQT M4M3M2M1M03130 29 28 2701234567程序状态寄存器372.Q位:bit(27)仅ARM 5TE/J架构支持指示增强型DSP指令是否溢出J位:bit(24)仅ARM 5TE/J架构支持J=1:处理器处于Jazelle状态NZCVIFQT M4M3M2M1M03130 29 28 2701234567程序状态寄存器38控制位 中断禁止位:I =1:禁止 IRQ.F=1:禁止 FIQ.T Bit仅ARM x
15、T架构支持T=0:处理器处于 ARM 状态T=1:处理器处于 Thumb 状态NZCVIFQT M4M3M2M1M03130 29 28 2701234567程序状态寄存器39M控制位 处理器模式0b10000 User0b10001 FIQ0b10010 IRQ0b10011 Supervisor0b10111 Abort0b11011 Undefined0b11111 SystemNZCVIFQT M4M3M2M1M03130 29 28 2701234567程序状态寄存器40ARM编程模型1.ARM流水线技术2.存储模式I/O空间3.工作模式和寄存器组4.异常和异常向量表5.AMBA总线
16、6.JTAG调试接口41异常和异常向量表1.异常(Exceptions)内部或外部中断源产生并引起处理器处理一个事件,如外部中断或试图执行未定义指令都会引起异常。程序流程控制的3种方式:(1).顺序执行(2).跳转指令(3).异常中断处理异常之前必须保留处理处理异常之前必须保留处理器的状态器的状态42异常和异常向量表2.异常的产生直接异常:软件中断,未定义指令(包括所要求的协处理器不存在时的协处理器命令)和预取指令间接异常:数据中止(在Load和Store数据访问时的存储器故障)外部异常:复位,IRQ和FIQ43异常和异常向量表3.异常类型:7种RESET复位UND未定义的指令SWI软件中断P
17、ABT指令预取中止DABT数据访问中止IRQ外部中断请求FIQ快速中断请求44异常和异常向量表5.异常的优先级异常同时发生时,处理顺序(1)Reset(highest priority)(2)Data abort(3)FIQ(4)IRQ(5)Prefetch abort(6)未定义指令,Software interrupt(最低优先级)互斥的互斥的45异常和异常向量表6.异常向量表指定各异常中断及其处理程序的对应关系RESETRESET可以从可以从0 x000000000 x00000000开始或开始或0 xffff00000 xffff0000开始,因此开始,因此异常向量异常向量表可以放在上
18、述地址表可以放在上述地址32Bytes46本章内容ARM指令分类与格式指令分类与格式3.1寻址方式寻址方式3.2ARM 指令集介绍指令集介绍3.34471.ARM指令分类与格式Load/Store结构:在通用寄存器中操作 Load/Store从存储器中读取数据,操作后再放回存储器 把寄存器和存储器分开481.ARM指令分类与格式指令分类(6类)u数据处理指令 使用和改变寄存器的值u数据传送指令 把存储器的值拷贝到寄存器中(load)or 把寄存器中的值拷贝到存储器中(store)uCPSR与通用寄存器间的传送指令u跳转指令u异常中断指令u协处理器指令491.ARM指令分类与格式指令格式:u3
19、地址指令格式 在ARM状态中使用u2 地址指令格式 在 ARM和 THUMB 状态下使用50指令执行的条件编码指令执行的条件编码1.ARM指令分类与格式ARM指令的一般编码格式:cond001opcode sRnRdoperand2312827252421201916151211870指令操作符编码指令操作符编码结果影响结果影响CPSR第第1操作数寄存器编码操作数寄存器编码目的寄存器编码目的寄存器编码第第2操作数寄存器编码操作数寄存器编码S,例:例:ANDENS R0,R1,#0X0F51条件码域ARM指令根据CPSR中的条件位自动判断是否执行指令,在条件满足时,指令执行,否则指令被忽略。在A
20、RM的指令编码表中,统一占用编码的最高四位31:28来表示“条件码”(即“cond”)。52条件码域-1(P117)条件码后缀标志含义0000EQZ置位相等0001NEZ清零不相等0010CSC置位无符号数大=0011CCC清零无符号数小于0100MIN置位负数0101PLN清零正数或零0110VSV置位溢出0111VCV清零未溢出53条件码域-2条件码后缀标志含义1001LSC清零Z置位无符号数=1011LTN不等于V带符号数1101LEZ置位或(N不等于V)带符号数=1110AL忽略无条件执行54ARM指令中的操作符号1.立即数符号:“#”2.二进制符号:“2_”or“%”3.十六进制符号
21、:“0 x”#0 xFF#%1001010155移位操作移位:作为指令的选项 1.逻辑左移:LSL低位补零2.算数左移:ASL低位补零 MOVR0,R1,LSL#2MOVR0,R1,ASL#23.逻辑右移:LSR高位补零4.算数右移:ASR高位用31位值填充5.循环右移:ROR左端用右端移出数据补5.扩展循环右移:RRX循环包括C位 5657本章内容ARM指令分类与格式指令分类与格式1寻址方式寻址方式2ARM 指令集介绍指令集介绍3458ARM寻址方式处理器根据指令中的地址信息寻找物理地址的方式寻址方式种类:F1 立即寻址F2 寄存器寻址F3 寄存器间接寻址F4 基址加偏址寻址 F5 堆栈寻址
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北工大 嵌入式 系统 复习
限制150内