1 / 105

第 2 章 ARM/THUMB 微处理器结构及指令系统

第 2 章 ARM/THUMB 微处理器结构及指令系统. 主讲人:李岩 哈尔滨理工大学计算机学院. 本章主要内容: (1) ARM/Thumb 及相关技术简介 (2) ARM/Thumb 微处理器的应用领域及特点 (3) ARM/Thumb 微处理器系列 (4) ARM/Thumb 微处理器的结构 (5) ARM/Thumb 指令系统. 1 ARM 微处理器概述 1.1 ARM 处理器系列 1.2 RISC 体系结构 1.3 ARM 和 Thumb 状态 1.4 寄存器 1.5 ARM 指令集概述 1.6 Thumb 指令集概述.

kasi
Download Presentation

第 2 章 ARM/THUMB 微处理器结构及指令系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章ARM/THUMB微处理器结构及指令系统 主讲人:李岩 哈尔滨理工大学计算机学院

  2. 本章主要内容: (1) ARM/Thumb及相关技术简介 (2) ARM/Thumb微处理器的应用领域及特点 (3) ARM/Thumb微处理器系列 (4) ARM/Thumb微处理器的结构 (5) ARM/Thumb指令系统

  3. 1 ARM微处理器概述 1.1 ARM处理器系列 1.2 RISC体系结构 1.3ARM和Thumb状态 1.4 寄存器 1.5 ARM指令集概述 1.6 Thumb指令集概述 2 ARM微处理器体系结构 2.1数据类型 2.2ARM微处理器的工作状态 2.3ARM体系结构的存储器格式 2.4处理器模式 2.5寄存器组织 2.6异常 第二章 目录 • 3 ARM/Thumb指令系统 • 3.1处理器寻址方式 • 3.2指令集介绍 • 3.3指令集介绍

  4. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  5. ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 ARM 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM 技术知识产权(IP)核的微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场, 1 ARM微处理器概述 • ARM简介:

  6. . . . • ARM公司简介 将技术授权给其它芯片厂商 形成各具特色的ARM芯片

  7. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  8. ARM7 ARM9 ARM9E ARM10 SecurCore Xscale 1.1ARM处理器系列 • ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:

  9. 1.1ARM处理器系列 • ARM处理器核简介——ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。

  10. 1.1ARM处理器系列 • ARM处理器核简介——ARM9 该系列包括ARM9TDMI、ARM920T和带有告诉缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。

  11. 1.1ARM处理器系列 • ARM处理器核简介——ARM10 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。

  12. 1.1ARM处理器系列 • ARM处理器核简介——SecurCore 该系列涵盖了SC100、SC110、SC200和SC210处理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。

  13. 1.1ARM处理器系列 • ARM处理器核简介——Xscale Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。

  14. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  15. 1.2 RISC体系结构 ●RISC特点如下: 精简指令集计算机RISC结构的产生是相对于传统的复杂指令集计算机CISC 结构而言的。

  16. 1.2 RISC体系结构 ●RISC特点如下: ■ 指令规整、对称、简单。指令小于100条,基本寻址方 式有2~3种。 ■ 单周期指令。 ■ 指令字长度一致,单拍完成,便于流水操作; ■ARM7 三级流水线:取指、译码、执行; ■ARM9 五级流水线; ■ARMl0 六级流水线。 ■ 大量的寄存器。寄存器不少于32个。数据处理器的指令只对寄存器的内容操作。只有加载/存储指令可以访问存储器。

  17. ※1 ARM微处理器概述 ●ARM处理器系列 ● RISC体系结构 ● ARM和Thumb状态 ●寄存器 ● ARM指令集概述 ● Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  18. 1.3 ARM和Thumb状态 Thumb指令集的功能是32位ARM指令集的功能子集。Thumb在性能和代码大小之间提供了出色的折中。 • 正在执行Thumb指令集的处理器是工作在Thumb状态下。 • 正在执行ARM指令集的处理器是工作在ARM状态下。

  19. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  20. 1.4. 寄存器 • ARM处理器有37(31+6)个物理寄存器,有18个可编程访问的寄存器。 • 寄存器被安排成部分重叠的组。每种处理器模式都有不同的寄存器组。 • 分组的寄存器在异常处理和特权操作时,可得到快速的上下文切换。

  21. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  22. 1.5 ARM指令集概述 • ARM指令集 ARM指令集可分为5大类指令,所有指令都可以条件执行,其中一些指令还可以根据执行结果更新CPSR寄存器的相关标志位: • 数据处理指令加载和存储指令 • 分支指令 协处理器指令 杂项指令

  23. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ●ARM微处理器的工作状态 ●ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  24. 1.6 Thumb指令集概述 • Thumb指令集 Thumb指令集可分为4大类指令: • 分支指令; • 数据处理指令; • 寄存器加载和存储指令; • 异常产生指令。

  25. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  26. 上节内容回顾: ARM—公司名称、微处理器名称和嵌入式技术名称; 特点—高性能、小体积、低功耗、紧代码密度、多供应商、高占有率; 系列—ARM7、ARM9(E)、ARM10、Xscale、StrongARM和SecurCore等; 结构—两种CPU工作状态、32位RISC结构、多寄存器、多处理器模式 、两种指令集;

  27. 教学内容: ARM处理器体系结构 ●数据类型 ●ARM微处理器的工作状态 ●ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常

  28. 1 1 2 1 2 3 4 2.1 数据类型 • 体系结构直接支持的数据类型 ARM处理器支持下列数据类型: • 字节 8位 • 半字 16位(必须分配为占用两个字节) • 字 32为(必须分配为占用4各字节)

  29. 1 1 2 1 2 3 4 2.1 数据类型 • 体系结构直接支持的数据类型 ARM处理器支持下列数据类型: • 字节 8位 • 半字 16位(必须分配为占用两个字节) • 字 32为(必须分配为占用4各字节)

  30. 1 1 2 1 2 3 4 2.1 数据类型 • 体系结构直接支持的数据类型 ARM处理器支持下列数据类型: • 字节 8位 • 半字 16位(必须分配为占用两个字节) • 字 32位(必须分配为占用4各字节)

  31. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  32. 2.2 ARM微处理器的工作状态 ARM微处理器的工作状态一般有两种: ARM状态—处理器执行32位的字对齐的 ARM指令; Thumb状态—处理器执行16位的、半字对齐的 Thumb指令。

  33. 进入Thumb状态:  当操作数寄存器的状态位(位[0])为1时,执行 BX指令进入Thumb状态。  如果处理器在Thumb状态进入异常,则当异常 处理返回时,自动转换到Thumb状态。 • 处理器状态切换 进入ARM状态。  当操作数寄存器的状态位(位[0])为0时执行BX指令进入ARM状态。  当处理器进行异常处理是时,进入ARM状态从异常向量地址处开始执行。

  34. 2.2 ARM微处理器的工作状态 • 处理器状态切换 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。 ;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0 ;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0 跳转地址标号 地址最低位为1,表示切换到Thumb状态 地址最低位为0,表示切换到ARM状态

  35. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  36. 2.3 ARM体系结构的存储器格式 ARM体系结构可以用两种方法存储字数据, 称为大端格式和小端格式。 小端模式 字地址 8 4 0 31   2423 1615  8 7   0位

  37. 2.3 ARM体系结构的存储器格式 ARM体系结构可以用两种方法存储字数据, 称为大端格式和小端格式。 大端模式 字地址 8 4 0 31  2423  1615   8 7   0位

  38. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  39. 2.2.4 处理器模式 • 简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。

  40. 2.2.4 处理器模式 • 处理器模式

  41. 系统 (sys) 快中断 (fiq) 中断 (irq) 管理 (svc) 中止 (abt) 未定义 (und) 2.2.4 处理器模式 • 特权模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。

  42. 快中断 (fiq) 中断 (irq) 管理 (svc) 中止 (abt) 未定义 (und) 2.2.4 处理器模式 • 异常模式 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。

  43. 用户 (usr) 系统 (sys) 2.2.4 处理器模式 • 用户和系统模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。

  44. 处理器启动时的模式转换图 多种特权模式变化 用户程序的运行模式 管理模式SVC (Supervisor) 主要完成各模式的堆栈设置,注意不要进入用户模式 复位后 缺省模式 一般为用户模式User

  45. ※1 ARM微处理器概述 ●ARM处理器系列 ●RISC体系结构 ●ARM和Thumb状态 ●寄存器 ●ARM指令集概述 ●Thumb指令集概述 ※2 ARM微处理器体系结构 ●数据类型 ● ARM微处理器的工作状态 ● ARM体系结构的存储器格式 ●处理器模式 ●寄存器组织 ●异常 第二章 目录 ※3 ARM/Thumb指令系统 ●处理器寻址方式 ●指令集介绍 ●指令集介绍

  46. 2.5 寄存器组织 简介 • ARM处理器有37(31+6)个物理寄存器,有18个可编程访问的寄存器。 • 寄存器被安排成部分重叠的组。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。 • 分组的寄存器在处理处理器异常和特权操作时可得到快速的上下文切换。

  47. ARM状态各模式下的寄存器

  48. R0 R1 R2 R3 R4 R5 R6 R7 R8 R8_fiq R9 R9_fiq R10 R10_fiq R11 R11_fiq R12 R12_fiq R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15 CPSR SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq ARM状态各模式下的寄存器 所有的37个寄存器,分成两大类: • 31个通用32位寄存器; • 6个状态寄存器。

  49. 用户 系统 管理 中止 未定义 中断 快中断 R0 R0 R0 R0 R0 R0 R0 R1 R1 R1 R1 R1 R1 R1 R2 R2 R2 R2 R2 R2 R2 R3 R3 R3 R3 R3 R3 R3 R4 R4 R4 R4 R4 R4 R4 R5 R5 R5 R5 R5 R5 R5 R6 R6 R6 R6 R6 R6 R6 R7 R7 R7 R7 R7 R7 R7 R8 R8 R8 R8 R8 R8 R8_fiq R9 R9 R9 R9 R9 R9 R9_fiq R10 R10 R10 R10 R10 R10 R10_fiq R11 R11 R11 R11 R11 R11 R11_fiq R12 R12 R12 R12 R12 R12 R12_fiq R13 R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14 R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15 R15 R15 R15 R15 R15 R15 CPSR CPSR CPSR CPSR CPSR CPSR CPSR 无 无 SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq ARM状态各模式下可以访问的寄存器

  50. R0 R1 R2 R3 R4 R5 R6 R7 R8 R8_fiq R9 R9_fiq R10 R10_fiq R11 R11_fiq R12 R12_fiq R13 R13_svc R13_abt R13_und R13_irq R13_fiq 一般的通用寄存器 在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。

More Related