ARM处理器的体系结构

本文详细介绍了ARM7TDMI处理器的体系结构,包括其RISC特性、冯·诺依曼结构、数据类型、处理器状态切换、处理器模式以及程序状态寄存器。ARM7TDMI使用流水线技术,支持字、半字和字节数据类型,并具备两种状态:ARM和Thumb状态。处理器有7种模式,其中用户和系统模式是非特权模式,其他五种为特权模式。寄存器分为通用寄存器和状态寄存器,R14作为链接寄存器在异常处理和子程序调用中起到关键作用。

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 R0 R0 R0 R0 R0
R1 R1 R1 R1 R1 R1 R1 R1
### ARM处理器体系结构详解 ARM 处理器是一种广泛应用于移动设备、嵌入式系统和其他低功耗场景中的微处理器。其体系结构具有高效能、低功耗的特点,这得益于其精简指令集计算机 (RISC) 的设计理念。 #### RISC 架构特点 ARM 采用的是 RISC(Reduced Instruction Set Computing)架构,这意味着它的指令集相对简单且执行速度快。每条指令长度固定,通常为 32 位,并且大多数操作都在寄存器之间完成[^1]。这样的设计减少了每次取指和解码的时间开销,从而提高了整体性能。 #### 多核异构概念 在现代 ARM 设计中,“多核异构”成为一个重要特性。“多核异构”是指在一个芯片上集成不同类型的 CPU 或处理单元,它们可能拥有不同的架构、指令集支持以及功率消耗水平。通过这种方式可以更好地满足多样化的工作负载需求;例如,在智能手机和平板电脑里常见到由高性能大核心搭配节能小核心组成的配置方案,前者用于运行复杂应用而后者则负责轻量级后台任务管理等基本功能实现。 #### 特定领域优化的核心组合 除了通用计算外,某些特定应用场景还需要专门定制化硬件加速模块来提升效率并降低能耗。因此,在一些高端 SoC 中还会加入图形渲染 GPU 单元、AI/DSP 加速引擎以及其他专用协处理器作为补充部分共同构成完整的片上系统(SoC)[^1] 。 这些额外组件不仅增强了产品的多媒体表现力还促进了人工智能技术的发展落地实践当中去。 ```c // 示例代码展示如何初始化一个简单的 ARM Cortex-M 系列 MCU 定时器 void Timer_Init(void){ SysTick->CTRL = 0; // Disable timer before configuration. SysTick->LOAD = SystemCoreClock / 10 - 1; // Configure reload value for a delay of approximately 1/10 second. SysTick->VAL = 0; // Reset current timer value to zero. SysTick->CTRL |= SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk; } ``` 上述片段展示了针对基于 ARM Cortex-M 内核开发板上的基础定时服务设置方法之一。它利用了内置的 SYSTICK 计数机制提供精确时间间隔控制能力给应用程序开发者使用方便快捷可靠稳定等特点深受广大工程师喜爱追捧至今不衰败迹象明显可见一斑矣乎哉! ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值