Bootstrap

重头开始嵌入式第四十二天(硬件 ARM体系架构)

目录

一,ARM是什么?

1.公司名称

ARM的主流架构:

2.处理器架构

二,什么是处理器架构?什么是处理器?

一、处理器

二、处理器架构

三,一个计算机由什么构成呢?

一、硬件系统

二、软件系统

四,存储器有哪些?

一、内部存储器

二、外部存储器

五,什么是SOC?

六,什么是CUP?

一、定义与作用

二、组成部分

三、性能指标

四、应用领域

七,ARM

1.数据和指令类型

​​​2.字节顺序

八,ARM寄存器


一,ARM是什么?

1.公司名称

ARM公司 成立于1990年11月 ,前身为 Acorn计算机公司
主要设计ARM系列RISC处理器内核 ,授权ARM内核给生产和销售半导体的合作伙伴 ,ARM 公司不生产芯片 ,另外也提供基于ARM架构的开发设计技术 ,软件工具, 评估板, 调试工具,应用 软件,总线架构, 外围设备单元等等。

ARM的主流架构:

ARM 的主流架构主要有以下几类:

 
  1. Cortex-A 系列5:
    • 特点:这是面向高性能应用的系列,主要用于移动设备(如智能手机、平板电脑)、服务器等对性能要求较高的场景。具备强大的计算能力、较高的频率以及复杂的内存管理和缓存体系,能够支持多任务处理和复杂的操作系统。
    • 举例
      • Cortex-A73:曾经在高端智能手机中广泛应用,具有较高的单核性能和能效比,能够为手机提供流畅的操作体验和快速的应用响应。
      • Cortex-A53:是一款较为节能的高性能处理器核心,常与其他高性能核心搭配使用,形成大小核架构,兼顾性能和功耗,在中低端智能手机和平板电脑中应用较多。
      • Cortex-A76:进一步提升了性能和能效,为笔记本电脑等设备的 ARM 处理器提供了强大的支持,推动了 ARM 架构在笔记本电脑市场的发展。
  2. Cortex-R 系列5:
    • 特点:针对实时性要求极高的嵌入式系统设计,例如汽车电子、工业控制、航空航天等领域。具有快速的中断响应能力、高可靠性和严格的实时性保证,能够在规定的时间内完成任务的处理。
    • 举例
      • Cortex-R5:在实时性要求较高的嵌入式系统中应用广泛,能够满足汽车电子系统中对发动机控制、制动系统等关键任务的实时处理要求。
      • Cortex-R7:具有更高的性能和更强的实时处理能力,可用于对实时性和可靠性要求极高的航空航天电子系统等。
  3. Cortex-M 系列3:
    • 特点:主要面向低功耗的微控制器应用,适用于各种物联网设备、传感器、智能家居等对功耗和成本敏感的场景。该系列具有简单的架构、低功耗设计和较高的能效比,能够在有限的资源下实现高效的运算。
    • 举例
      • Cortex-M0:是能耗最低的 ARM 处理器之一,代码密度高,能效优势明显,适用于各种对功耗要求苛刻的小型嵌入式设备3。
      • Cortex-M3:具有较高的性能和丰富的功能,支持 Thumb-2 指令集,能够提供较好的性能和代码大小优化,广泛应用于智能家居、工业自动化等领域3。
      • Cortex-M7:是 Cortex-M 系列中的高性能处理器,具有较高的主频和强大的运算能力,可用于需要高效处理能力的嵌入式系统,如高端智能家居设备、智能仪表等。

2.处理器架构

ARM 即 Advanced RISC Machines 的缩写。

ARM 是一种处理器架构,广泛应用于嵌入式系统、移动设备等领域。以下是关于 ARM 的一些主要特点:

一、低功耗

ARM 处理器以其低功耗特性而著称。在移动设备中,这一特性至关重要,因为它可以延长电池续航时间。例如,智能手机和平板电脑等设备需要在有限的电池容量下尽可能长时间地运行,ARM 架构的处理器能够在满足高性能需求的同时,保持较低的功耗水平。这使得移动设备可以在不频繁充电的情况下持续使用,为用户提供了更好的使用体验。

二、高性能

虽然 ARM 处理器注重低功耗,但它同样能够提供出色的性能。随着技术的不断进步,ARM 处理器的性能不断提升,能够满足各种复杂应用的需求。在移动设备上,ARM 处理器可以流畅地运行多任务、高清视频播放、复杂的游戏等应用。同时,在一些嵌入式系统中,ARM 处理器也能够高效地处理各种实时任务。

三、可定制性强

ARM 架构允许芯片制造商根据不同的应用需求进行定制化设计。芯片制造商可以根据特定的市场需求,选择不同的 ARM 处理器内核,并在其基础上进行扩展和优化。这种可定制性使得 ARM 处理器能够适应各种不同的应用场景,从低功耗的传感器节点到高性能的服务器领域都有广泛的应用。

四、生态系统丰富

ARM 拥有庞大的生态系统,包括芯片制造商、软件开发工具提供商、操作系统供应商等。这为开发者提供了丰富的资源和支持,使得开发基于 ARM 架构的产品更加容易。开发者可以利用成熟的开发工具和软件库,快速地开发出各种应用程序。同时,丰富的生态系统也促进了 ARM 技术的不断创新和发展。

二,什么是处理器架构?什么是处理器?

一、处理器

 

处理器,也称为中央处理器(CPU),是计算机系统的核心部件。它主要负责执行计算机程序中的指令,对数据进行运算和处理,以实现各种计算任务。

 

处理器的主要功能包括:

 
  1. 指令执行:从内存中读取指令,并按照指令的要求进行操作,如算术运算、逻辑运算、数据传输等。
  2. 数据处理:对输入的数据进行加工和处理,生成输出结果。
  3. 控制计算机系统:协调和控制计算机系统中各个部件的工作,确保整个系统的正常运行。
 

处理器的性能通常由以下几个方面来衡量:

 
  1. 时钟频率:表示处理器每秒钟执行的时钟周期数,通常以赫兹(Hz)为单位。时钟频率越高,处理器的执行速度越快。
  2. 核心数量:处理器中包含的处理核心数量。多核心处理器可以同时执行多个任务,提高系统的并行处理能力。
  3. 缓存大小:处理器内部的高速缓存存储器,用于存储频繁访问的数据和指令。缓存越大,处理器访问数据的速度越快。
  4. 指令集:处理器支持的指令集合,不同的指令集对不同类型的任务有不同的优化效果。
 

二、处理器架构

 

处理器架构是指处理器的设计结构和组织方式。它定义了处理器的内部组成、指令集、寄存器组织、总线结构等方面的规范。

 

处理器架构的主要特点包括:

 
  1. 指令集架构(ISA):规定了处理器能够执行的指令类型和格式。不同的指令集架构适用于不同的应用场景,如 x86 架构主要用于个人电脑和服务器,ARM 架构则广泛应用于移动设备和嵌入式系统。
  2. 微架构:描述了处理器的内部实现细节,包括流水线结构、缓存设计、分支预测等。微架构的优化可以提高处理器的性能和能效比。
  3. 寄存器组织:定义了处理器内部的寄存器数量、类型和用途。寄存器是处理器内部用于暂存数据和指令的高速存储单元。
  4. 总线结构:规定了处理器与外部设备之间的数据传输方式和总线协议。总线结构的设计影响着处理器的扩展性和性能。
 

不同的处理器架构具有各自的优势和特点,选择合适的处理器架构取决于具体的应用需求。例如,对于高性能计算和服务器应用,x86 架构可能更适合,因为它具有强大的性能和广泛的软件支持;而对于移动设备和嵌入式系统,ARM 架构则以其低功耗和可定制性受到青睐。

三,一个计算机由什么构成呢?

一个计算机主要由硬件系统和软件系统构成。

0f9925e2ffa543da9bccacaf714c12de.png

一、硬件系统

 

硬件系统是计算机的物理基础,是看得见、摸得着的各种电子元件和设备的总称。主要包括以下几个部分:

 
  1. 中央处理器(CPU)

    • 是计算机的核心部件,负责执行指令和进行数据处理。它就像计算机的 “大脑”,决定了计算机的运算速度和性能。
    • 由运算器和控制器组成。运算器负责进行算术运算和逻辑运算,控制器则负责指挥计算机各个部件协同工作。
  2. 存储器

    • 用于存储程序和数据。分为内存和外存。
    • 内存也称为主存储器,速度快,但容量相对较小,断电后数据会丢失。包括随机存取存储器(RAM)和只读存储器(ROM)。RAM 可随机读写数据,是计算机运行时程序和数据的临时存储场所;ROM 中的数据在制造时就被固化,只能读取,不能修改,用于存储计算机的基本输入输出系统(BIOS)等。
    • 外存也称为辅助存储器,容量大,速度相对较慢,但数据可以长期保存。常见的外存有硬盘、固态硬盘、U 盘、光盘等。
  3. 输入设备

    • 用于将外部信息输入到计算机中。例如键盘、鼠标、扫描仪、摄像头等。
    • 键盘是最常用的输入设备之一,可以输入文字、数字和命令等。鼠标用于控制光标位置和进行各种操作。扫描仪可以将纸质文档或图片转换为数字图像输入到计算机中。摄像头则可以采集视频和图像信息。
  4. 输出设备

    • 用于将计算机处理后的结果输出给用户。常见的输出设备有显示器、打印机、音箱等。
    • 显示器是最主要的输出设备之一,用于显示文本、图像和视频等信息。打印机可以将计算机中的文档、图片等打印到纸上。音箱则可以播放计算机中的音频信息。
  5. 总线

    • 是连接计算机各个部件的通信线路,用于在部件之间传输数据、地址和控制信号。
    • 分为数据总线、地址总线和控制总线。数据总线用于传输数据,地址总线用于传输内存地址,控制总线用于传输控制信号。
 

二、软件系统

 

软件系统是计算机的灵魂,是为了运行、管理和维护计算机而编制的各种程序和数据的总称。主要包括以下几个部分:

 
  1. 系统软件

    • 是管理和控制计算机硬件和软件资源的软件,为用户提供一个使用计算机的平台。
    • 包括操作系统、语言处理程序、数据库管理系统等。操作系统是最核心的系统软件,负责管理计算机的硬件资源和软件资源,为用户提供一个友好的操作界面。语言处理程序用于将高级语言编写的程序翻译成计算机能够识别的机器语言。数据库管理系统用于管理和维护数据库。
  2. 应用软件

    • 是为了满足用户特定需求而开发的软件。例如办公软件、图形图像处理软件、游戏软件等。
    • 办公软件如 Microsoft Office、WPS Office 等,用于文字处理、表格制作、幻灯片演示等。图形图像处理软件如 Adobe Photoshop、CorelDRAW 等,用于图像编辑、设计和处理。游戏软件则用于娱乐和休闲。

四,存储器有哪些?

0e92c6806dad4bd1b6f070155037ee1a.png

存储器主要分为内部存储器(内存)和外部存储器(外存)两大类。

一、内部存储器

 
  1. 随机存取存储器(RAM)

    • 特点:可以随机读写数据,速度较快。但断电后数据会丢失。
    • 用途:用于存储计算机正在运行的程序和数据。当计算机运行程序时,程序和数据会被加载到 RAM 中,CPU 可以直接从 RAM 中读取指令和数据进行处理。
    • 举例:常见的有 DDR4、DDR5 内存等。
  2. 只读存储器(ROM)

    • 特点:只能读取数据,不能写入数据。断电后数据不会丢失。
    • 用途:用于存储计算机的基本输入输出系统(BIOS)、固件等。这些数据在计算机制造时就被固化在 ROM 中,不会因为断电而丢失。
    • 举例:BIOS 芯片就是一种 ROM。
  3. 71611cf63fc64a529d3e0de4591d5f58.png

二、外部存储器

 
  1. 硬盘

    • 特点:容量大,速度相对较慢,但数据可以长期保存。
    • 用途:用于存储大量的程序、文档、图片、视频等数据。
    • 举例:机械硬盘(HDD)和固态硬盘(SSD)。机械硬盘通过磁盘的旋转和磁头的读写来存储数据,价格相对较低,但读写速度较慢。固态硬盘则使用闪存芯片存储数据,读写速度快,抗震性好,但价格相对较高。
  2. U 盘

    • 特点:小巧便携,容量相对较小,读写速度较快。
    • 用途:用于在不同设备之间传输数据,或者临时存储少量数据。
    • 举例:常见的有 USB2.0、USB3.0、USB3.1 等接口的 U 盘。
  3. 光盘

    • 特点:容量较大,价格便宜,但读写速度较慢,且需要使用光盘驱动器。
    • 用途:用于存储音乐、电影、软件等数据。
    • 举例:CD、DVD、蓝光光盘等。
  4. 存储卡

    • 特点:体积小,容量相对较小,读写速度较快。
    • 用途:主要用于数码相机、手机、平板电脑等设备中,存储照片、视频、音乐等数据。
    • 举例:SD 卡、Micro SD 卡等。

五,什么是SOC?

System on Chip,简称Soc,也即片上系统。从狭义角度讲,它是信息
系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度
讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC
就是包括大脑、心脏、眼睛和手的系统。
从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键
部件集成在一块芯片上;从广义角度讲, SoC是一个微小型
系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大
脑、心脏、眼睛和手的系统。
常见的SOC:
8051,DSP,MIPS,PPC,ARM
90d4ac4b28c547c396d352fbda864696.png

六,什么是CUP?

你可能想问的是 “CPU”,即中央处理器(Central Processing Unit)。

 

一、定义与作用

 

CPU 是计算机的核心部件,它的主要功能是执行指令和进行数据处理,就像计算机的 “大脑” 一样指挥着整个计算机系统的运行。具体来说:

 
  1. 执行指令:从计算机内存中读取指令,然后对这些指令进行译码和执行。指令可以包括算术运算(如加法、减法)、逻辑运算(如与、或、非)、数据传输等操作。
  2. 进行数据处理:对各种数据进行运算和处理,例如进行数学计算、文本处理、图形处理等。
 

二、组成部分

06e18dd782704823b0e79ddabefcee45.png
  1. 运算器:负责进行算术运算和逻辑运算。算术运算包括加法、减法、乘法、除法等,逻辑运算包括与、或、非等。运算器通常由算术逻辑单元(ALU)和寄存器组成。
  2. 控制器:负责指挥计算机各个部件协同工作。它从内存中读取指令,对指令进行译码,然后产生控制信号,控制其他部件执行相应的操作。控制器通常由指令寄存器、指令译码器、程序计数器等组成。
  3. 寄存器:用于暂时存储数据和指令。寄存器的速度非常快,可以在一个时钟周期内完成读写操作。寄存器通常分为通用寄存器和特殊寄存器,通用寄存器可以用于存储各种数据,特殊寄存器则用于存储特定的控制信息或状态信息。
 

三、性能指标

 
  1. 主频:也称为时钟频率,是 CPU 内部时钟信号的频率,单位通常为赫兹(Hz)。主频越高,CPU 的运算速度就越快。但主频并不是唯一决定 CPU 性能的因素,还需要考虑其他因素如架构、缓存等。
  2. 核心数:指 CPU 中物理核心的数量。多核心的 CPU 可以同时执行多个任务,提高计算机的并行处理能力。例如,四核 CPU 可以同时处理四个任务,相比单核 CPU 可以大大提高处理效率。
  3. 缓存:是 CPU 内部的高速存储器,用于存储频繁使用的数据和指令。缓存分为一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)等,级别越高,容量越大,速度相对较慢。缓存的存在可以减少 CPU 从内存中读取数据的次数,提高数据访问速度。
  4. 制程工艺:指 CPU 制造过程中所采用的工艺尺寸,单位通常为纳米(nm)。制程工艺越小,意味着在同样大小的芯片上可以集成更多的晶体管,从而提高 CPU 的性能和降低功耗。
 

四、应用领域

 
  1. 个人计算机:无论是台式机还是笔记本电脑,CPU 都是其核心部件。不同的应用需求需要不同性能的 CPU,例如游戏玩家可能需要高性能的 CPU 来保证游戏的流畅运行,而办公用户则可以选择性能适中、功耗较低的 CPU。
  2. 服务器:服务器需要处理大量的并发请求和数据,因此需要高性能、高可靠性的 CPU。服务器 CPU 通常具有更多的核心数、更大的缓存和更高的主频,以满足服务器的高负载需求。
  3. 移动设备:如智能手机、平板电脑等,也需要 CPU 来运行各种应用程序。移动设备的 CPU 通常需要具备低功耗、高性能的特点,以保证设备的续航能力和流畅的使用体验。

27d5964f67e84dc2bbcc0b0253a8c1e4.png

七,ARM

1.数据和指令类型

ARM 采用的是32位架构.
ARM 约定:
Byte : 8 bits
Halfword : 16 bits (2 byte)
Word : 32 bits (4 byte)
Doubleword 64-bits(8byte)(Cortex-A处理器)
大部分ARM core 提供:
ARM 指令集(32-bit)
Thumb 指令集(16-bit )
Cortex-A处理器
16位和32位Thumb-2指令集
16位和32位ThumbEE指令集
Jazelle cores 支持 Java bytecode

​​​2.字节顺序

2910df717c2e460997b6bf51f94915b9.png

八,ARM寄存器

ARM 寄存器是 ARM 处理器内部用于存储数据、地址和处理器状态等信息的存储单元。ARM 寄存器主要分为通用寄存器和特殊寄存器两类:

 
  1. 通用寄存器
    • 未分组寄存器 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。
  2. 特殊寄存器
    • 栈指针 SP(R13):实际上 R13 在不同的处理器模式下有不同的物理寄存器,每个异常模式都有自己独立的 R13。在 ARM 指令中,R13 常用作堆栈指针,用于存储函数调用时的局部变量、参数、返回地址等信息。通过PUSH(入栈)和POP(出栈)操作可以实现对栈的访问23。
    • 链接寄存器 LR(R14):用于保存函数或子程序调用时的返回地址。当执行子程序调用指令(如BL)时,会自动将返回地址放入 LR 中,当子程序执行结束后,将 LR 中的值加载至 PC 中,就可以返回到调用处继续执行。在发生异常时,异常模式的 LR 也可以用来保存异常返回地址23。
    • 程序状态寄存器3:
      • 当前程序状态寄存器 CPSR:可以在任何运行模式下被访问,它包含条件标志位(如 N、Z、C、V)、中断禁止位、当前处理器模式标志位以及其他一些相关的控制和状态位。这些标志位可以被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。
      • 备份的程序状态寄存器 SPSR:每种异常模式下都有一个专用的 SPSR,当异常发生时,SPSR 用于保存 CPSR 的当前值,以便从异常退出时可以由 SPSR 来恢复 CPSR。用户模式和系统模式不属于异常模式,它们没有 SPSR。

1e444fac9079450db76f8ef28426a819.png

a4d2ceb5d272444aaf415bf2f9e39066.png

;