ARM处理器的体系结构

ARM体系结构

ARM处理器为RISC芯片,其简单的结构使ARM内核非常小这使得器件的功耗也非常低。它具有经典RISC的特点:

① 大的、统一的寄存器;
② 装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;
③ 简单的寻址模式;
④ 统一和固定长度的指令域,简化了指令的译码。


ARM7TDMI基于ARM体系结构V4T版本,是目前低端的ARM核

注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。

ARM7TDMI处理器使用流水线来增加处理器指令流的速度。ARM7TDMI的流水线分3级,分别为:取指、译码、执行

对于存储器的访问,ARM7TDMI处理器使用了冯·诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。


体系结构支持的数据类型

ARM处理器支持下列数据类型:

字节 8位

半字 16位

字 32位

所有的数据操作都是以字为单位

装载和保存指令可以对字节、半字和字进行操作

ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。


处理器状态

ARM7TDMI处理器有两种操作状态:

ARM状态:32位,这种状态下执行的是字方式的ARM指令;

Thumb状态:16位,这种状态下执行半字方式的Thumb指令。

(两个状态之间的切换并不影响处理器模式或寄存器内容。)

从Arm状态切换到Thumb状态

LDR  R0, = Lable+1  地址最低位为1,表示切换到Thumb状态

BX R0

从Thumb状态切换到ARM状态

LDR R0,=Lable     地址最低位为0表示切换到ARM状态
BX R0


为何需要两种状态的切换:

Thumb指令在某些特殊情况下具有比ARM指令更为出色的表现,主要是在代码长度和窄带宽存储器系统性能两方面。但是因为下面一些原因,Thumb又不可能独立
地组成一个应用系统。

Thumb指令集在功能上只是ARM指令集的一个子集,某些功能只能在ARM状态下执行,如CPSR和协处理器的访问。

进行异常响应时,处理器会自动进入ARM状态。

从系统优化考虑,在宽带存储器上不应该放置Thumb代码,很多窄带系统具有宽带的内部存储器。

即使是一个单纯的Thumb应用系统,也必须加一个汇编的交互头程序,因为系统总是自动从ARM 开始启动。


处理器模式 

ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式

用户(usr)      正常程序工作模式                                    不能直接切换到其它模式

系统(sys)     用于支持操作系统的特权任务等            与用户模式类似,但具有可以直接切换到其它模式等特权

快中断(fiq)   支持高速数据传输及通道处理                 FIQ异常响应时进入此模式

中断(irq)       用于通用中断处理                                     IRQ异常响应时进入此模式

管理(svc)      操作系统保护代码                                     系统复位和软件中断响应时进入此模式

中止(abt)      用于支持虚拟内存和/或存储器保护         在ARM7TDMI没有大用处

未定义(und) 支持硬件协处理器的软件仿真                  未定义指令异常响应时进入此模式

说明:

除用户模式外其他模式均为特权模式,ARM内部寄存器和一些片内外设在硬件设计上只允许特权模式下访问。此外特权模式可以自由切换处理器模式而用户模式不能自由切换到别的模式。

除了用户模式和系统模式,其他的五种模式被称为异常模式。他们除了可以通过程序切换进入外,也可以由特定的异常进入。每种异常模式都由一些独立的寄存器以避免异常退出时用户模式状态不可靠

用户模式和系统模式都不能由异常进入,而且他们使用相同的寄存器组。系统模式是特权模式,不受用户模式限制,操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。


寄存器名称 用户 系统 管理 中止 未定义 中断 快中断
R0 R0 R0 R
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值