嵌入式知识点总结 ARM体系与架构 专题提升(二)-ARM处理器

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。

目录

1.什么是哈佛结构和冯诺依曼结构?

2.什么是ARM流水线技术?

3.ARM有几种工作模式?

4.Arm有多少32位寄存器?

5.Arm2440和6410有什么区别?

6.ARM指令集分为几类?

7.通用寄存器包括R0~R15,可以分为具体哪三类?

8.Arm处理器有几种工作状态?

9.ARM系统中,在函数调用的时候,参数是通过哪种方式传递的?

10.为什么2440的内存起始地址是0x30000000?

11.ARM协处理器指令包括哪3类,请描述它们的功能。

12.什么是PLL(锁相环)?


1.什么是哈佛结构和冯诺依曼结构?

定义

冯诺依曼结构采用指令和数据统一编址,使用同条总线传输 ,CPU读取指令和数据的操作无法重叠 哈佛结构采用指令和数据独立编址,使用两条独立的总线传输 ,CPU读取指令和数据的操作可以重叠.

利弊

冯诺依曼结构主要用于通用计算机领域,需要对存储器中的代码和数据频繁的进行修改,统一编址有利于节约资源。

哈佛结构主要用于嵌入式计算机,程序固化在硬件中,有较高的可靠性、运算速度和较大的吞吐。

结构类型 优点 缺点
冯诺依曼结构 - 资源节约:指令和数据共享同一存储器,硬件设计简单,成本低。 - 总线瓶颈:指令和数据通过同一总线传输,导致总线竞争和性能瓶颈(称为"冯诺依曼瓶颈")。
- 灵活性强:适合通用计算任务,尤其是需要动态修改代码或数据的场景。 - 速度限制:指令和数据不能并行传输,处理速度较慢。
哈佛结构 - 高效传输:指令和数据各自独立传输,可实现并行操作,提高性能。 - 硬件复杂:需要两套存储器和总线设计,硬件成本较高。
- 高可靠性:指令和数据独立存储,程序固化在硬件中,适合嵌入式系统。 - 灵活性低:数据和指令存储空间固定,动态调整较为困难。

2.什么是ARM流水线技术?

流水线技术通过多个功能部件并行工作来缩短程序执行时间 ,提高处理器核的效率和吞吐率,从而成为微处理器设计中最为重要的技术之一。ARM7 处理器核使用了典型三级流水线的冯·诺伊曼结构 ,ARM9系列则采用了基于五级流水线的哈佛结构 。通过增加流水线级数简化了流水线各级的逻辑,进一步提高了处理器的性能。

PC代表程序计数器,流水线使用三个阶段,因此指令分为三个阶段执行:1.取指(从存储器装载一条指令);2.译码(识别将要被执行的指令);3.执行(处理指令并将结果写回寄存器)。而R15(PC)总是指向"正在取指"的指令,而不是指向"正在执行"的指令或正在"译码"的指令。一般来说,人们习惯性约定将"正在执行的指令作为参考点 ",称之为当前第一条指令,因此PC总是指向第三条指令。当ARM状态时,每条指令为4字节长,所以PC始终指向该指令地址加8字节的地址,即:PC值=当前程序执行位置+8;

ARM指令是三级流水线,取指,译指,执行,同时执行的,现在PC指向的是正在取指的地址(下一条指令) ,那么cpu正在译指的指令地址是PC-4(假设在ARM状态下,一个指令占4个字节),cpu正在执行的指令地址是PC-8 ,也就是说PC所指向的地址和现在所执行的指令地址相差8。

当突然发生中断的时候,保存的是PC的地址(PC-8+4=PC-4 下一条指令的地址)

ARM流水线的基本原理

  1. 分阶段执行:指令的执行被划分为多个独立的步骤(如取指、译码、执行等),每个阶段由硬件模块专门负责。
  2. 并行处理:不同指令可以同时在不同的阶段上处理,从而实现指令的并行执行。
  3. 吞吐量优化:流水线的目标是每个时钟周期都能完成一条指令,从而增加处理器的指令吞吐量。

ARM流水线的基本阶段

ARM经典三阶段流水线:

  1. 取指阶段 (Fetch, F)
    从存储器中取出一条指令,并将其放入指令寄存器。
  2. 译码阶段 (Decode, D)
    对取出的指令进行译码,识别操作类型和操作数地址。
  3. 执行阶段 (Execute, E)
    执行指令,包括算术运算、逻辑运算、内存访问等操作。

ARM增强型流水线可能包括更多阶段,例如:

  • 访存阶段 (Memory, M):访问数据存储器。
  • 写回阶段 (Write Back, WB):将计算结果写回寄存器。

3.ARM有几种工作模式?

ARM处理器的工作模式主要分为 用户模式 (User Mode)特权模式 (Privileged Modes),总共有7到9种模式(具体数量取决于ARM架构版本,例如ARMv4、ARMv7等)。以下是主要工作模式:

1. 用户模式 (User Mode)

特点

用于运行普通用户程序。

访问受限,无法直接操作系统资源或硬件。

只能切换到特权模式通过异常(如中断)。

用途:运行普通应用程序。


2. 系统模式 (System Mode)

特点

特权模式,允许访问全部系统资源。

与用户模式共享寄存器,但拥有特权访问权限。

用途:用于操作系统任务,运行内核代码。


3. 中断模式 (IRQ Mode)

特点

特权模式,用于处理快速中断请求(IRQ)。

拥有一组专用的寄存器(R13、R14)。

用途:处理外部硬件中断,响应高优先级事件。


4. 快速中断模式 (FIQ Mode)

特点

特权模式,用于处理快速中断请求(FIQ)。

有更多的专用寄存器(R8到R14),减少保存和恢复上下文的开销。

优先级高于IRQ模式。

用途:处理对实时性要求高的任务(如音频或视频数据流处理)。


5. 管理模式 (Supervisor Mode, SVC)

特点

特权模式,用于进入操作系统内核或执行系统调用。

常在系统启动或异常处理时进入该模式。

用途:执行系统级操作,如初始化、管理资源。


6. 数据访问中止模式 (Abort Mode)

特点

特权模式,当程序尝试访问非法内存时触发。

用于处理内存保护机制。

用途:处理数据访问异常或保护内存资源。


7. 未定义指令模式 (Undefined Mode)

特点

特权模式,当处理器遇到未定义或不支持的指令时进入。

用途:用于模拟未定义指令或扩展功能的异常处理。


8. 系统掉电模式 (Monitor Mode)

特点

主要用于支持ARM TrustZone安全架构。

特权模式,用于管理安全切换和安全任务。

用途:处理安全相关操作(仅ARMv6及以上支持)。


9. 恒定模式 (Hyp Mode)

特点

特权模式,用于虚拟化环境(ARMv7及以上支持)。

允许一个虚拟机管理程序(Hypervisor)运行多个操作系统。

用途:支持虚拟化的运行环境。


模式切换

ARM通过以下方式切换工作模式:

异常触发:如中断、系统调用、未定义指令等。

手动设置:通过修改CPSR(Current Program Status Register)中的模式位。

模式名称 描述 应用场景
用户模式 (User) 运行普通应用程序。 普通用户程序
系统模式 (System) 特权模式,支持内核任务。 操作系统内核
中断模式 (IRQ) 处理外部硬件中断。 响应中断
快速中断 (FIQ) 处理高优先级快速中断。 实时任务
管理模式 (SVC) 系统调用或初始化。 系统启动、管理资源
数据中止 (Abort) 内存访问异常处理。 内存保护
未定义模式 处理未定义指令异常。 调试或扩展功能
监控模式 (Monitor) 安全模式(TrustZone)。 安全任务
虚拟化模式 (Hyp) 虚拟机环境。 多操作系统虚拟化

4.Arm有多少32位寄存器?

ARM处理器共有37个寄存器。它包含31个通用寄存器和6个状态寄存器。

寄存器 用户模式 FIQ模式 IRQ模式 异常模式 Supervisor模式 系统模式
R0 ~ R7 共用 共用 共用 共用 共用 共用
R8 ~ R12 共用 专用 共用 共用 共用 共用
R13 (SP) 共用 专用 专用 专用 专用 专用
R14 (LR) 共用 专用 专用 专用 专用 专用
R15 (PC) 共用 共用 共用 共用 共用 共用
CPSR 共用 共用 共用 共用 共用 共用
SPSR

5.Arm2440和6410有什么区别?

1.主频不同。2440是400M的。6410是533/667M的;

2.处理器版本不一样:2440是arm920T内核,6410是arm1176ZJF内核;

3.6410在视频处理方面比2440要强很多。内部视频解码器,包括MPEG4等视频格式。

4.6410支持WMV9、xvid、mpeg4、h264等格式的硬解码和编码;

5.6410多和很多扩展接口比如:tv-out、CF卡和S-Video输出等

6.spi、串口、sd接口也比那两个要丰富;

7.6410采用的是DDR内存控制器;2440采用的是SDRam内存控制器

8.6410为双总线架构,一路用于内存总线、一路用于Flash总线;

9.6410的启动方式更加灵活:主要包括SD、Nand Flash、Nor Flash和OneFlash等设备启动;

10.6410的Nand Flash支持SLC和MLC两种架构,从而大大扩大存储空间;

11.6410为双总线架构,一路用于内存总线、一路用于Flash总线;

12.6410具备8路DMA通道,包括LCD、UART、Camera等专用DMA通道

13.6410还支持2D和3D的图形加速;

6.ARM指令集分为几类?

2类,分别为Thumb 指令集,ARM 指令集。ARM指令长度为32位,Thumb指令长度为16位。这种特点使得ARM既能执行16位指令,又能执行32位指令,从而增强了ARM内核的功能。

7.通用寄存器包括R0~R15,可以分为具体哪三类?

1. 数据寄存器

范围:R0 ~ R12

用途

用于一般数据的存储和操作。

作为函数的参数传递寄存器(前四个寄存器 R0 ~ R3,通常传递前四个参数)。

用于临时存储计算过程中的中间结果。

特点

这些寄存器是通用的,可在任何模式下被大多数指令直接访问。

2. 特殊用途寄存器

范围:R13 ~ R15

用途

R13(SP,Stack Pointer,堆栈指针)

指向当前堆栈顶部。

负责函数调用和任务切换中的数据保存与恢复。

不同模式下有独立的堆栈指针,以支持异常和中断。

R14(LR,Link Register,链接寄存器)

存储函数调用的返回地址。

在异常或中断处理时,保存被打断的指令地址。

R15(PC,Program Counter,程序计数器)

存储当前指令的地址。

每次指令执行后自动递增以指向下一条指令。

3. 特权模式下的专用寄存器

范围:R8 ~ R12(在FIQ模式下)

用途

在快速中断(FIQ)模式下,这些寄存器具有专用的版本,避免了寄存器共享的上下文切换开销。

提高FIQ处理的速度和效率。

8.Arm处理器有几种工作状态?

从编程的角度来看,ARM微处理器的工作状态一般ARM和Thumb有两种,并可在两种状态之间切换。

1.ARM 状态:此时处理器执行32位的字对齐ARM指令 ,绝大部分工作在此状态。

2.Thumb 状态:此时处理器执行16位的半字对齐的Thumb指令。

9.ARM系统中,在函数调用的时候,参数是通过哪种方式传递的?

当参数小于等于4的时候是通过r0-r3寄存器来进行传递的当参数大于4的时候是通过压栈的方式进行传递。

超过4个参数的部分通过 堆栈 传递。

按照参数列表的顺序,额外的参数从右到左压入堆栈。

调用函数时,从堆栈中读取额外参数。

10.为什么2440的内存起始地址是0x30000000?

S3C2440处理器有八个固定的内存块,只有两个是可以作为ROM,SRAM和SDRAM等存储器bank。具体

如下图所示。

11.ARM协处理器指令包括哪3类,请描述它们的功能。

ARM协处理器指令包括以下3类:

1.用于ARM处理器初始化ARM协处理器的数据处理操作。

2.用于ARM处理器的寄存器和ARM协处理器的寄存器间的数据传送操作。

3.用于在ARM协处理器的寄存器和内存单元之间传送数据。

12.什么是PLL(锁相环)?

简单来说,输入时钟的存在是作为"参考源"。锁相环不是为了单纯产生同频同相信号,而是一般集成进某种"频率综合电路",产生一个不同频,但锁相的信号。

有点绕,打个比方:某参考晶振10Mhz,频率综合器A使用该参考源产生了900Mhz时钟,而频率综合器B产生了1Ghz时钟。虽然两路频率不同,但由于使用的通一个参考源,他们俩仍然是同源信号。相反,如果不同源,那么即便同频他们也不可能一致,因为世界上没有两个钟能做到完全一样,总有微弱的频差,导致相位飘移。在很多现实应用中有要求同源时钟的场合,所以,锁相环被广泛应用。锁相环的另外一项衍生应用是相干解调,可以自己查查相关资料。

  • 锁定:能够将输出信号的相位和频率锁定到输入信号上。
  • 宽范围:通过调整VCO的范围,支持多种频率的输入信号。
  • 实时调节:对输入信号的变化做出快速反应。
相关推荐
漫无目的行走的月亮18 分钟前
51单片机开发:矩阵按键实验
单片机·嵌入式硬件·51单片机
jax不摆烂2 小时前
Jetson Xavier NX (ARM) 使用 PyTorch 安装 Open3D-ML 指南
arm开发·人工智能·pytorch
Once_day2 小时前
Linux-arm(1)ATF启动流程
linux·arm开发
测试冲鸭2 小时前
【可实战】Linux 系统扫盲、 Shell扫盲(如何写一个简单的shell脚本)
linux·运维·arm开发
gyeolhada3 小时前
计算机组成原理(计算机系统3)--实验五:处理器结构实验二
stm32·单片机
fly-iot3 小时前
【fly-iot飞凡物联】(20):2025年总体规划,把物联网整套技术方案和实现并落地,完成项目开发和课程录制。
物联网
简知圈3 小时前
03-画P封装(制作2D+添加3D)
笔记·stm32·单片机·学习·pcb工艺
LS_learner3 小时前
MAX98357A一款数字脉冲编码调制(PCM)输入D类音频功率放大器
嵌入式硬件
亿坊电商4 小时前
可以称之为“yyds”的物联网开源框架有哪几个?
物联网·开源
Uitwaaien5410 小时前
51单片机——串口向电脑发送数据
单片机·嵌入式硬件·51单片机