大家好,欢迎来到IT知识分享网。
一、ARM的架构
ARM是一种基于精简指令集(RISC
)的处理器架构.
1、ARM芯片特点
ARM芯片的主要特点有以下几点:
精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率和处理器的性能。相比之下,复杂指令集(CISC)的指令可以完成多项复杂的操作,但是需要更多的硬件资源和执行时间。
负载/存储架构:ARM芯片使用负载/存储架构,即只有专门的负载和存储指令可以访问内存,其他指令只能在寄存器之间进行操作。这样可以减少内存访问的次数和延迟,提高数据处理的速度。相比之下,寄存器/内存架构的处理器可以直接在内存和寄存器之间进行操作,但是会增加内存访问的开销。
统一寄存器文件:ARM芯片使用统一寄存器文件,即所有的通用寄存器都可以用于任何目的,没有专门的数据寄存器或地址寄存器。这样可以提高寄存器的利用率和灵活性,减少数据移动的开销。相比之下,分段寄存器文件的处理器需要区分不同类型的寄存器,并进行相应的转换。
条件执行:ARM芯片支持条件执行,即每条指令都可以根据一个条件码来决定是否执行。这样可以减少分支指令的使用,提高代码密度和流水线效率。相比之下,非条件执行的处理器需要使用专门的分支指令来实现条件跳转。
多种工作模式:ARM芯片支持多种工作模式,例如用户模式、系统模式、管理模式、中断模式、异常模式等。不同的工作模式有不同的权限和功能,可以实现不同级别的任务切换和异常处理。相比之下,单一工作模式的处理器需要使用软件来模拟多任务和异常处理。
2、按核心类型分类
ARM核心 是指实现了某个版本ARM架构的具体处理器设计,它由ARM公司设计并授权给其他厂商生产。不同类型的ARM核心有不同的性能、功耗、面积等。例如,Cortex-A系列是针对高性能应用的核心,Cortex-R系列是针对实时应用的核心,Cortex-M系列是针对微控制器应用的核心等。
一、Cortex-A系列
- 特点:面向高性能应用,支持虚拟内存和复杂的操作系统,具有较高的处理能力和较大的缓存容量。
- 适用领域:智能手机、平板电脑、服务器和嵌入式系统等需要高性能的领域。
- 典型内核:Cortex-A76、Cortex-A75、Cortex-A73、Cortex-A72、Cortex-A9以及最新的Cortex-X2、Cortex-A710和Cortex-A510等。
二、Cortex-R系列
- 特点:针对实时系统,具有较低的延迟和较高的可靠性,专门设计用于实时应用。
- 适用领域:汽车电子、工业控制、医疗设备等需要实时控制和嵌入式系统的领域。
- 典型内核:Cortex-R4、Cortex-R5、Cortex-R7以及最新的Cortex-R8等。
三、Cortex-M系列
- 特点:面向低功耗嵌入式应用,具有较低的功耗和较小的尺寸,易于编程。
- 适用领域:物联网设备、传感器、智能家居、可穿戴设备和嵌入式控制器等低功耗、实时和成本敏感的应用。
- 典型内核:Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4和Cortex-M7等。其中,Cortex-M4在Cortex-M3的基础上增加了DSP指令集,具有更强的计算能力和信号处理能力;而Cortex-M7则是Cortex-M4的升级版本,提供更高的性能和计算能力。
二、计算机的组成
闪存(Flash)则结合了RAM和ROM的优点,它既可以在断电后保留数据,又具有较快的读写速度。
三、cpu的内部架构
MMU(Memory Manager Unit),是内存管理单元,负责将虚拟地址转换成物理地址。除此之外,MMU 实现了内存保护,进程无法直接访问物理内存,防止内存数据被随意篡改。
PC指针的工作原理
1、取指(Fetch):
2、解码(Decode):
3、执行(Execute):
流水线结构:
流水线:
ARM寄存器
ARM 寄存器是 ARM 处理器内部用于存储数据、地址和处理器状态等信息的存储单元。ARM 寄存器主要分为通用寄存器和特殊寄存器两类:
通用寄存器:
未分组寄存器 R0-R7:在所有的运行模式下,这 8 个寄存器都指向同一个物理寄存器,它们没有被系统用作特殊用途。但是在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成这些寄存器中数据的破坏。
分组寄存器 R8-R12:对于这 5 个寄存器,每个寄存器对应 2 个不同的物理寄存器。当使用快速中断模式(FIQ)时,访问的是R8_fiq – R12_fiq;当使用除 FIQ 模式以外的其他模式时,访问的是R8_usr – R12_usr。这些寄存器可用于数据的暂存和运算,在不同的模式下可以根据需要切换使用不同的物理寄存器。
程序计数器 PC(R15):用于存放当前指令的下一条指令的地址。由于 ARM 体系结构采用了多级流水线技术,对于 ARM 指令集而言,PC 总是指向当前指令的下两条指令的地址,即 PC 的值为当前指令的地址值加 8 个字节(在 Thumb 指令集中,PC 的值为当前指令的地址值加 4 个字节)3。
特殊寄存器:
栈指针 SP(R13):实际上 R13 在不同的处理器模式下有不同的物理寄存器,每个异常模式都有自己独立的 R13。在 ARM 指令中,R13 常用作堆栈指针,用于存储函数调用时的局部变量、参数、返回地址等信息。通过PUSH(入栈)和POP(出栈)操作可以实现对栈的访问23。
链接寄存器 LR(R14):用于保存函数或子程序调用时的返回地址。当执行子程序调用指令(如BL)时,会自动将返回地址放入 LR 中,当子程序执行结束后,将 LR 中的值加载至 PC 中,就可以返回到调用处继续执行。在发生异常时,异常模式的 LR 也可以用来保存异常返回地址23。
四、处理器内部架构
Cache:
高速缓存。
五、工作模式
处理器(CPU)的7种工作模式主要包括:
- 用户模式(User Mode):
- 非特权模式,是大多数用户程序正常执行的模式。
- 在此模式下,程序无法直接访问硬件资源或改变处理器的工作模式,除非通过软中断或异常。
- 快速中断模式(FIQ Mode):
- 也称为快速中断响应模式,用于处理高优先级的中断请求。
- 这种模式支持高速数据传输和通道处理,适用于需要快速响应的中断场景。
- 普通中断模式(IRQ Mode):
- 也称为一般中断模式,用于处理普通的中断请求。
- 在硬件产生中断信号后,处理器会自动进入此模式,并允许程序访问系统硬件资源。
- 管理模式(SVC Mode):
- 也称为操作系统保护模式,是操作系统内核代码运行的模式。
- 当CPU上电复位或应用程序执行SVC指令调用系统服务时,会进入此模式。
- 中止模式(Abort Mode):
- 当数据或指令预取终止时进入此模式。
- 此模式用于处理存储器故障、实现虚拟存储或存储保护。
- 当用户程序访问非法地址或没有权限读取的内存地址时,会触发此模式。
- 未定义指令异常模式(Undefined Instruction Mode):
- 当处理器执行未定义的指令时进入此模式。
- 此模式主要用于处理未定义的指令陷阱,并支持硬件协处理器的软件仿真。
- 系统模式(System Mode):
- 特权模式之一,使用与管理模式相同的寄存器组。
- 用于运行特权级的操作和系统任务。
在这7种工作模式中,除了用户模式以外,其他6种模式可以称为特权模式。在特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除了系统模式外的其他5种特权模式又称为异常模式。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130074.html