950 likes | 1.17k Views
第 3 章 ARM7 体系结构. 第 3 章 目录. 1. 简介 2.ARM7TDMI 3.ARM7TDMI 的模块和内部框图 4. 体系结构直接支持的数据类型 5. 处理器状态 6. 处理器模式 7. 内部寄存器 8. 程序状态寄存器. 9. 异常 10. 中断延迟 11. 复位 12. 存储器及存储器映射 I/O 13. 寻址方式简介 14.ARM7 指令简介 15. 协处理器接口 16. 调试接口简介 17.ETM 接口简介. 第 3 章 目录. 1. 简介 2.ARM7TDMI 3.ARM7TDMI 的模块和内部框图
E N D
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。 3.1 ARM简介 • ARM公司简介
ARM公司简介 1)ARM是一个CPU内核。ARM公司自己并不生产或销售芯片,它采用技术授权模式,通过出售芯片技术授权,收取授权费和技术转让费。 2)基于ARM内核的处理器是目前消费类电子市场中占有量第一的处理器, 尤其是手机行业。 3)ARM是“Advanced RISC Machine”的缩写, 最早的ARM处理器诞生 于80年代的英国。
. . . 3.1 ARM简介 • ARM公司简介 将技术授权给其它芯片厂商 形成各具特色的ARM芯片
大的、统一的寄存器文件; • 装载/保存结构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作; • 简单的寻址模式; • 统一和固定长度的指令域,简化了指令的译码。 3.1 ARM简介 • ARM体系结构 ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:
每条数据处理指令都对算术逻辑单元和移位器控制,以实现ALU和移位器的最大利用;每条数据处理指令都对算术逻辑单元和移位器控制,以实现ALU和移位器的最大利用; • 地址自动增加和减少寻址模式,优化程序循环; • 多寄存器装载和存储指令实现最大数据吞吐量; • 所有指令的条件执行实现最快速的代码执行。 3.1 ARM简介 • ARM体系结构 ARM体系结构的特点:
3.1 ARM简介 • 各ARM体系结构版本 ARM体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了5种主要的ARM指令集体系结构版本,以版本号V1~V5表示。
3.1 ARM简介 • 各ARM体系结构版本——V1 • 该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为: • 基本的数据处理指令(不包括乘法); • 字节、字和半字加载/存储指令; • 具有分支指令,包括在子程序调用中使用的分支和链接指令; • 在操作系统调用中使用的软件中断指令。
3.1 ARM简介 • 各ARM体系结构版本——V2 • 同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进: • 具有乘法和乘加指令; • 支持协处理器; • 快速中断模式中的两个以上的分组寄存器; • 具有原子性加载/存储指令SWP和SWPB。
3.1 ARM简介 • 各ARM体系结构版本——V3 • 寻址范围扩展到32位(事实上也基本废弃),具有独立的程序: • 具有乘法和乘加指令; • 支持协处理器; • 快速中断模式中具有的两个以上的分组寄存器; • 具有原子性加载/存储指令SWP和SWPB。
3.1 ARM简介 • 各ARM体系结构版本——V4 • 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进: • 半字加载/存储指令; • 字节和半字的加载和符号扩展指令; • 具有可以转换到Thumb状态的指令; • 用户模式寄存器的新的特权处理器模式。
3.1 ARM简介 • 各ARM体系结构版本——V5 • 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下: • 改进了ARM/Thumb状态之间的切换效率; • 允许非T变量和T变量一样,使用相同的代码生成技术; • 增加计数前导零指令和软件断点指令; • 对乘法指令如何设置标志作了严格的定义。
ARM7 ARM9 ARM9E ARM10 SecurCore Xscale 3.1 ARM简介 • ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:
3.1 ARM简介 • ARM处理器核简介——ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。
3.1 ARM简介 • ARM处理器核简介——ARM9 该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。
3.1 ARM简介 • ARM处理器核简介——ARM10 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。
3.1 ARM简介 • ARM处理器核简介——SecurCore 该系列涵盖了SC100、SC110、SC200和SC210处理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。
3.1 ARM简介 • ARM处理器核简介——Xscale Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
3.2 ARM7TDMI • 简介 ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。 注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。
ARM7 T D M I - S ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致; 支持EmbededICE观察硬件; 支持64位乘法; 支持片上调试; 支持高密度16位的Thumb指令集; 3.2 ARM7TDMI • 简介 ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:
3.2 ARM7TDMI • 简介 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了: • 高的指令吞吐量; • 出色的实时中断响应; • 小的、高性价比的处理器宏单元。
3.2 ARM7TDMI • 三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为: 取指译码执行
3.2 ARM7TDMI • 三级流水线 正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:
3.2 ARM7TDMI • 存储器访问 ARM7TDMI处理器使用了冯·诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。 数据可以是字节( 8位)、半字( 16位)或者字(32位)。
3.2 ARM7TDMI • 存储器访问 计算机结构说明: “冯·诺依曼” 结构:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域是统一的; “哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。
3.2 ARM7TDMI • 存储器访问 • ARM7TDMI处理器的存储器接口可以使潜在的性能得以实现,这样减少了存储器的使用。对速度有严格要求的控制信号使用流水线,这样使系统控制功能以标准的低功耗逻辑实现。ARM7TDMI处理器的存储器周期有4个基本类型: • 内部周期; • 非连续的周期; • 连续 的周期; • 协处理器寄存器的传输周期。
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
3.3 ARM7TDMI的模块和内核框图 ARM7TDMI模块
指令译码 和 控制逻辑 CLK CLEN ADDR[31:0] CFGBIGEND nIRQ 扫描调试 控制 地址寄存器 nFIQ • 3.3 ARM7TDMI的模块和内核框图 nRESET ABORT 地址增加器 LOCK WRITE SIZE[1:0] 寄存器组 31*32位寄存器 (6个状态寄存器) PROT[1:0] TRANS[1:0] DBG输出 DBG输入 CP控制 乘法器 CP握手 桶形移位器 写数据寄存器 指令管线读数据寄存器 Thumb指令译码器 32位ALU WDATA[31:0] RDATA[31:0] ARM7TDMI模块
3.3 ARM7TDMI的模块和内核框图 ARM7TDMI模块
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
1 1 2 1 2 3 4 3.4 体系结构直接支持的数据类型 • 体系结构直接支持的数据类型 • ARM处理器支持下列数据类型: • 字节 8位 • 半字 16位(必须分配为占用两个字节) • 字 32为(必须分配为占用4各字节)
3.4 体系结构直接支持的数据类型 • 体系结构直接支持的数据类型 • 注意: • V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版本只支持字节和字; • 当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为0~2N-1的非负整数; • 当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1~+2N-1-1的整数;
3.4 体系结构直接支持的数据类型 • 体系结构直接支持的数据类型 • 注意: • 所有数据操作,例如ADD,都以字为单位; • 装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展; • ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
3.5 处理器状态 • 处理器状态 • ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态: • ARM状态:32位,这种状态下执行的是字方式的ARM指令; • Thumb状态:16位,这种状态下执行半字方式的ARM指令。 注意:两个状态之间的切换并不影响处理器模式或寄存器内容。
3.5 处理器状态 • 处理器状态 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换(详见第4章) ,程序如下所示。 跳转地址标号 ;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0 ;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0 地址最低位为1,表示切换到Thumb状态 地址最低位为0,表示切换到ARM状态
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介
3.6 处理器模式 • 简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。
3.6 处理器模式 • 处理器模式
系统 (sys) 快中断 (fiq) 中断 (irq) 管理 (svc) 中止 (abt) 未定义 (und) 3.6 处理器模式 • 特权模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
快中断 (fiq) 中断 (irq) 管理 (svc) 中止 (abt) 未定义 (und) 3.6 处理器模式 • 异常模式 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。
用户 (usr) 系统 (sys) 3.6 处理器模式 • 用户和系统模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。
第3章 目录 • 1.简介 • 2.ARM7TDMI • 3.ARM7TDMI的模块和内部框图 • 4.体系结构直接支持的数据类型 • 5.处理器状态 • 6.处理器模式 • 7.内部寄存器 • 8. 程序状态寄存器 • 9.异常 • 10.中断延迟 • 11.复位 • 12.存储器及存储器映射I/O • 13.寻址方式简介 • 14.ARM7指令简介 • 15.协处理器接口 • 16.调试接口简介 • 17.ETM接口简介