ARM7体系结构介绍
姓名:猪俞坑
专业:通信工程
班级:二班
学号:2010132114
2012年6月23日
ARM7体系结构介绍
ARM体系结构
ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗
也非常低。它具有经典RISC的特点:
1、大的、统一的寄存器文件;
2、装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进
行操作;
3、简单的寻址模式;
4、统一和固定长度的指令域,简化了指令的译码
一、ARM体系结构的特点:
1、每条数据处理指令都对算术逻辑单元和移位器控制,以实现ALU和移位器
的最大利用;
2、地址自动增加和减少寻址模式,优化程序循环;
3、多寄存器装载和存储指令实现最大数据吞吐量;
4、所有指令的条件执行实现最快速的代码执行ARM处理器核简介——ARM7
该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的
ARM720T。该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,
适用于更大规模的SoC设计中。
ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制
解调器设备,以及移动电话、PDA等无线设备。
ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,
其最显著的应用为数字移动电话。
ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,
其最显著的应用为数字移动电话。
注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合
在一起才能构成现实的芯片。
ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作
的不足。ARM7TDMI的后缀意义为:
ARM7TDMI,7支持高密度16位的Thumb指令集;T支持片上调试;D支持64
位乘法;M支持EmbededICE观察硬件;
ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的
性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复
杂指令集计算机(CISC)要简单得多。这样的简化实现了:
高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。
三级流水线:ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样
可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的
指令执行速度。ARM7TDMI的流水线分3级,分别为:取指译码执行
正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条
指。令从存储器中取出。
二、存储器访问
ARM7TDMI处理器使用了冯·诺依曼(VonNeumann)结构,指令和数据共用一
条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访
问。数据可以是字节(8位)、半字(16位)或者字(32位)。
计算机结构说明:
“冯·诺依曼”结构:把代码作为一种特殊的数据来操作,指令总线和数据总
线及其存储区域是统一的;
“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。
体系结构直接支持的数据类型
ARM处理器支持下列数据类型:字节8位;半字16位(必须分配为占用两个字
节)字;32为(必须分配为占用4各字节)
注意:V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版
本只支持字节和字;
当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为
0~2N-1的非负整数;
当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-
1~+2N-1-1的整数;
所有数据操作,例如ADD,都以字为单位;装载和保存指令可以对字节、半字和
字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好
是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。
ARM体系中的数据的存储
ARM处理器可以对32位的数据字进行操作,也可以对16位的数据半字进行操
作,也可以对8位的字节进行操作。
对于ARM这样的结构,每一个数据(或指令代码)要占据4个存储单元(32位)
或两个存储单元(16位)。这些存储单元是怎样排列的?这就产生两种存储格是:小
端(littleendian),大端(bigendian).大端存储格式:数据0x11335577小端存储
格式:数据0x11335577
ARM处理器的指令存储
下面一段ARM程序,首地址是0x8004,小端格式
0x8004[0xe3a00018]movr0,#0x18
0x8008[0xe59f1000]ldrr1,=0x20026
0x800c[0xef123456]swi0x123456
可以推论出,可以被4整除的地址都是指令的存储地址,而其它地址例如
0x200B,0x2017等都不是正确的指令地址。
同样,Thumb指令存储的正确地址应该能被2整除。
对数据存储来说,首先要找到正确的地址,在对32位数据操作时,地址末两位
(1:0)都是零;在对16位数据操作时,地址末位(0)是零。
处理器状态
ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集
和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:
ARM状态:32位,这种状态下执行的是字方式的ARM指令;
Thumb状态:16位,这种状态下执行半字方式的Thumb指令。
注意:两个状态之间的切换并不影响处理器模式或寄存器内容。
使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行
切换,程序如下所示。
Thumb技术介绍
Thumb是ARM体系结构的T变种,是一种新的指令体系,它是ARM技术的一大
特色。
它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的
操作码。这能带来很高的代码密度。
ARM7TDMI是第一个支持Thumb的核,支持Thumb的核仅仅是ARM体系结构的
一种发展的扩展,所以编译器既可以编译Thumb代码,又可以编译ARM代码
支持Thumb的ARM体系结构的处理器状态可以方便的切换到Thumb状态,并在
该状态下运行,在该状态下指令集是16位的。
与ARM指令集相比.Thumb指令集具有以下局限
完成相同的操作,Thumb指令通常需要更多的指令,因此在对系统运行时间要
求苛刻的应用场合ARM指令集更为适合;
Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,
还是需要使用ARM指令,这种限制决定了Thumb指令需要和ARM指令配合使用。
四、处理器模式
简介:ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中
断模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处
是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。
内部寄存器
简介:在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式
和处理器状态下,程序员可以访问的寄存器也不尽相同。
ARM状态和Thumb状态之间寄存器的关系
Thumb状态R0~R7与ARM状态R0~R7相同;Thumb状态CPSR和SPSR与ARM状
态CPSR和SPSR相同;Thumb状态SP映射到ARM状态R13;Thumb状态LR映射到
ARM状态R14;Thumb状态PC映射到ARM状态PC(R15)。程序状态寄存器
简介:ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR
反映了当前处理器的状态,其包含:4个条件代码标志(负(N)、零(Z)、进位(C)和溢
出(V));2个中断禁止位,分别控制一种类型的中断;5个对当前处理器模式进行编
码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。每个异常模式还带有一
个程序状态保存寄存器(SPSR),它用于保存在异常事件发生之前的CPSR。CPSR和
SPSR通过特殊指令进行访问。
注意:如果通过程序修改CPSR寄存器中的模式位进入异常模式,那么硬件将不
会把CPSR保存至SPSR中。
五、条件代码标志
大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令
带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条
件代码标志。
N、Z、C和V位都是条件代码标志。通过算术操作、逻辑操作、MSR或者LDM
指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只
有分支指令可按条件执行。
各标志位的含义如下:N运算结果的最高位反映在该标志位。对于有符号二进
制补码,结果为负数时N=1,结果为正数或零时N=0;Z指令结果为0时Z=1(通常表
示比较结果“相等”),否则Z=0;C当进行加法运算(包括CMN指令),并且最高位产
生进位时C=1,否则C=0。当进行减法运算(包括CMP指令),并且最高位产生借位时
C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,
其它指令C通常不变;V当进行加法/减法运算,并且发生有符号溢出时V=1,否则
V=0,其它指令V通常不变。
控制位
CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于
一个特权模式时,可用软件操作这些位。它们分别是:中断禁止位;T位;模式位。中
断禁止位包括I和F位:当I位置位时,IRQ中断被禁止;当F位置位时,FIQ中断被
禁止。T位反映了正在操作的状态:当T位置位时,处理器正在Thumb状态下运行;
当T位清零时,处理器正在ARM状态下运行。模式位包括M4、M3、M2、M1和M0,这
些位决定处理器的操作模式。注意:不是所有模式位的组合都定义了有效的处理器
模式,如果使用了错误的设置,将引起一个无法恢复的错误。
保留位
CPSR中的保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR
标志和控制位时,请不要改变这些保留位。另外,请确保您程序的运行不受保
留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。
ARM的异常中断
在ARM体系结构中,异常中断用来处理软件中断、未定义指令陷阱(它不是真
正的“意外”事件)及系统复位功能和外部事件,这些“不正常”事件都被划归“异
常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。ARM的异
常中断响应过程;从异常中断处理程序中返回;异常中断向量表;异常中断的优先级
ARM的异常中断响应过程:将CPSR的内容保存到将要执行的异常中断对应的SPSR
中(硬件);设置当前状态寄存器CPSR中的相应位(硬件);将引起异常指令的下一条
指令的地址
保存到新的异常工作模式的R14(硬件);给程序计数器(PC)强制赋值(硬件);
每个异常模式对应有两个寄存器R13_
堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,这样
异常处理程序就可以使用这些寄存器(软件)。FIQ模式还有额外的专用寄存器
R8_fiq~R12_fiq,使用这些寄存器可以加快快速中断的处理速度。从异常中断处理
程序中返回:
从异常中断处理程序中返回时,需要执行以下四个基本操作:所有修改过的用
户寄存器必须从处理程序的保护堆栈中恢复,即出栈(软件);将SPSR_mode寄存器内
容复制到CPSR中,即恢复被中断的程序工作状态(软件);根据异常类型将PC变回到
用户指令流中相应指令处(软件);最后清除CPSR中的中断禁止标志位I/F(软
件)。
异常中断向量表
中断向量表中指定了各异常中断与其处理程序的对应关系,每个异常中断对应
的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中
赋值的数据访问指令(一条ARM指令),存储器的前8个字中除了地址0x00000014之
外,全部被用作异常矢量地址
异常中断的含义:复位:复位引脚有效,系统复位;未定义:未定义的指令;软中
断:用户自定义的指令,可以由用户模式进入特权模式。;取指中止:在取指时发生指
令不存在或取制无效。;数据中止:在取数据时发生数据不存在或数据无效。;IRQ:
普通中断,IRQ引脚引起的中断;FIQ:快速中断,FIQ引脚引起的中断
异常中断的优先级
当几个异常中断同时发生时,在ARM中通过给各异常中断赋予一定的优先级来
实现处理次序:复位(最高优先级);数据异常中止;FIQ;IRQ;预取指异常中止;SWI、
未定义指令。
三级流水线ARM的组织
到ARM7为止的ARM处理器使用简单3级流水线,分别为:取指-译码-执行。在
3级流水线的执行过程中,当通过R15寄存器直接访问PC时,必须考虑到此时流水
线的执行过程的真实情况。
ARM的存储器层次简介
寄存器组;片上RAM;片上Cache;主存储器;硬盘
基于ARM核的芯片选择
从应用的角度,ARM芯片选择的一般原则:MMU;处理器速度;内置存储;容
量;USB接口;GPIO数量;中断控制器;IIS(IntegrateInterfaceofSound)音频接
口;RTC(RealTimeClock);LCD控制器;PWM输出
本文发布于:2023-03-07 11:47:11,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678160832171827.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:最小处理器状态.doc
本文 PDF 下载地址:最小处理器状态.pdf
留言与评论(共有 0 条评论) |