《arm7体系结构详细介绍》由会员分享,可在线阅读,更多相关《arm7体系结构详细介绍(110页珍藏版)》请在金锄头文库上搜索。
1、3,C H A P T E R,ARM7体系结构,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.1 ARM简介,ARM公司简介,ARM是Advanced RISC
2、 Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。,3.1 ARM简介,ARM公司简介,将技术授权给其它芯片厂商,形成各具特色的ARM芯片,3.1 ARM简介,微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。,3.1 ARM简介,ARM处理器的应用 当前主要应用于消费类电子领域; 到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75以上的市场份额 全球80%的GSM
3、/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器, “掌上计算”相关的所有领域皆为其所主宰。 ARM技术正在逐步渗入到我们生活的各个方面。,3.1 ARM简介,ARM体系结构,ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:,3.1 ARM简介,ARM体系结构,ARM体系结构的特点:,3.1 ARM简介,各ARM体系结构版本,ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号
4、V1V6表示。,3.1 ARM简介,各ARM体系结构版本V1,该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为: 基本的数据处理指令(不包括乘法); 字节、字和半字加载/存储指令; 具有分支指令,包括在子程序调用中使用的分支和链接指令; 在操作系统调用中使用的软件中断指令。,3.1 ARM简介,各ARM体系结构版本V2,同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进: 具有乘法和乘加指令; 支持协处理器; 快速中断模式中的两个以上的分组寄存器; 具有原子性加载/存储指令SWP和SWPB。,3.1 ARM简介,各ARM体系结构版本V3,寻址范围扩展到32位
5、(目前已废弃),具有独立的程序: 具有乘法和乘加指令; 支持协处理器; 快速中断模式中具有的两个以上的分组寄存器; 具有原子性加载/存储指令SWP和SWPB。,3.1 ARM简介,各ARM体系结构版本V4,不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进: 半字加载/存储指令; 字节和半字的加载和符号扩展指令; 具有可以转换到Thumb状态的指令(BX); 增加了用户模式寄存器的新的特权处理器模式。,3.1 ARM简介,各ARM体系结构版本V5,在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩
6、展并并增加了指令,具体如下: 改进了ARM/Thumb状态之间的切换效率; E-增强型DSP指令集,包括全部算法操作和16位乘法操作; J-支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。,3.1 ARM简介,ARM处理器核简介,ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:,ARM7,ARM9,ARM9E,ARM10,SecurCore,Xscale,ARM11,Cortex,3.1 ARM简介,3.1 ARM简介,3.1 ARM简介,3.1 ARM简介,3.1 ARM简介,3.1 A
7、RM简介,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.2 ARM7TDMI,简介,ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。,注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。,3.2 ARM7TDMI,简介,ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V
8、电源电压下工作的不足。ARM7TDMI的后缀意义为:,3.2 ARM7TDMI,简介,ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:,高的指令吞吐量; 出色的实时中断响应; 小的、高性价比的处理器宏单元。,3.2 ARM7TDMI,三级流水线,ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级
9、,分别为: 取指译码执行,3.2 ARM7TDMI,存储器访问,ARM7TDMI处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。 数据可以是字节( 8位)、半字( 16位)或者字(32位)。,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.3 系统内部结构图,ARM7TDMI处理器部件和主要信号路径的框图如图所示。
10、它内部由处理器核、用于边界扫描的TAP控制器和在线仿真器ICE组成。双向数据总线D31:0被分割成单向输入和输出总线,以便于与外部存储器兼容。,3.3 ARM7TDMI的模块和内核框图,ARM7TDMI模块,地址寄存器,寄存器组 31*32位寄存器 (6个状态寄存器),地址增量器,乘法器,桶形移位器,32位ALU,写数据寄存器,指令流水线读数据寄存器 Thumb指令译码器,指令译码 和 逻辑控制,ADDR31:0,CLK,CLEN,CFGBIGEND,nIRQ,nFIQ,nRESET,ABORT,LOCK,WRITE,SIZE1:0,PROT1:0,TRANS1:0,DBG输出,DBG输入,C
11、P控制,CP握手,WDATA31:0,RDATA31:0,扫描调试 控制,A总线,B总线,ALU总线,增量器总线,PC总线,3.3 ARM7TDMI功能信号图,ARM7TDMI,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.4 体系结构直接支持的数据类型,体系结构直接支持的数据类型,ARM处理器支持下列数据类型: 字节 8位 半字 16位(必须分配为占用两个字节) 字 32位(必须分配为占用4各字节
12、),体系结构直接支持的数据类型,注意: V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版本只支持字节和字; 当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为02N-1的非负整数; 当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1+2N-1-1的整数;,3.4 体系结构直接支持的数据类型,体系结构直接支持的数据类型,注意: 所有数据操作,例如ADD,都以字为单位; 装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展; ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是
13、半字(占用2个字节)。,3.4 体系结构直接支持的数据类型,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.5 处理器状态,处理器状态,ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态: ARM状态:32位,这种状态下执行的是字方式的ARM指令; Thumb状态:16位,这种状态下执行半字方式的ARM指
14、令。,注意:两个状态之间的切换并不影响处理器模式或寄存器内容。,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.
15、处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.6 处理器模式,处理器7种模式,3.6 处理器模式,特权模式,除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。,3.6 处理器模式,异常模式,这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。,3.6
16、处理器模式,用户和系统模式,这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.复位 11.存储器及存储器映射I/O,3.7 内部寄存器,简介,在ARM7TDMI处理器内部有37个用户可见的寄存器。 在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。,ARM状态各模式下的寄存器,ARM状态各模式下的寄存器,所有的37个寄存器,分成两大类: 31个通用32位寄存器; 6个状态寄存器。,ARM状态各模