笑看天下无敌手 发表于 2025-4-5 03:44:08

嵌入式知识点总结 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(锁相环)?
https://i-blog.csdnimg.cn/direct/67cd7c0827dd4315908d1885b9de1047.png
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 下一条指令的地址)
https://i-blog.csdnimg.cn/direct/ae0e0941c3264290833215e911239302.png
ARM流水线的基本原理

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

[*]取指阶段 (Fetch, F)
从存储器中取出一条指令,并将其放入指令寄存器。
[*]译码阶段 (Decode, D)
对取出的指令举行译码,识别操纵类型和操纵数地址。
[*]实行阶段 (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。具体
如下图所示。
https://i-blog.csdnimg.cn/direct/15ac31ee196b4ba6be8b4fa90407ee88.png

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

ARM协处理器指令包括以下3类:
1.用于ARM处理器初始化ARM协处理器的数据处理操纵。
2.用于ARM处理器的寄存器和ARM协处理器的寄存器间的数据传送操纵。
3.用于在ARM协处理器的寄存器和内存单位之间传送数据。
 
12.什么是PLL(锁相环)?

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


[*]锁定:可以或许将输出信号的相位和频率锁定到输入信号上。
[*]宽范围:通过调解VCO的范围,支持多种频率的输入信号。
[*]实时调治:对输入信号的变化做出快速反应。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 嵌入式知识点总结 ARM体系与架构 专题提拔(二)-ARM处理器