文围绕计算机系统基础架构、存储器体系、处理器分类、ARM 架构及关键扩展问题展开,对核心概念进行系统化梳理与补充,兼顾理论定义与实际应用场景,适合嵌入式开发入门及计算机硬件基础学习。
一、计算机系统基础
计算机系统由硬件 (物理载体)和软件(逻辑功能层)组成,二者协同实现数据处理与指令执行。
(一)软件组成
软件按功能分为系统软件和应用软件,前者为基础运行环境,后者满足特定业务需求:
- 系统软件 :支撑计算机硬件运行的底层软件,负责资源调度与硬件管理,是应用软件的运行基础。
- 核心类型:操作系统(Windows 11、Linux Ubuntu、macOS)、驱动程序(显卡驱动、声卡驱动)、编译器(GCC、Clang)、数据库管理系统(MySQL、SQLite)。
- 应用软件 :面向用户特定需求开发的软件,依赖系统软件运行。
- 常见类型:办公软件(Microsoft Office、WPS)、设计软件(Photoshop、AutoCAD)、娱乐软件(游戏《原神》、视频播放器 PotPlayer)、行业软件(医疗影像系统、工业控制软件)。
(二)硬件组成
硬件遵循冯・诺依曼体系核心框架("存储程序" 原理:程序与数据一同存储,按指令顺序执行),由五大核心部件构成,各部件通过总线协同工作:
核心部件 | 英文缩写 | 核心功能 | 关键特点与示例 |
---|---|---|---|
运算器 | ALU | 执行算术运算 (加 / 减 / 乘 / 除 / 模)和逻辑运算(与 / 或 / 非 / 异或 / 比较) | CPU 的核心运算单元,运算速度决定计算机 "计算能力";如 Intel Core i9 的 ALU 支持 128 位向量运算 |
控制器 | CU | 协调各部件同步工作,控制指令执行流程(指令预取→译码→执行→写回) | 计算机 "大脑中枢",通过时钟信号、读写信号指挥硬件;如 CPU 的控制单元调度 Cache 与内存的数据交互 |
存储器 | Memory | 存储程序代码与数据,按 "速度 - 容量 - 成本" 权衡分为多级存储体系 | 详见 "第二章 存储器分类",如 RAM 存运行中的程序,ROM 存操作系统镜像 |
输入设备 | Input | 将外部信息(用户操作、物理信号)转换为计算机可识别的电信号 | 键盘(输入文字)、鼠标(定位操作)、传感器(温度传感器 DS18B20 采集环境温度)、摄像头(采集图像) |
输出设备 | Output | 将计算机处理后的电信号转换为人类可感知的信息(视觉 / 听觉)或物理动作 | 显示器(显示图像)、打印机(打印文档)、音箱(播放声音)、电机(机器人运动驱动) |

二、存储器分类
存储器按 "速度由快到慢、容量由小到大、成本由高到低" 分为四级,形成多级存储体系,平衡速度与成本(CPU 优先访问高速存储,减少对低速存储的依赖):
类型 | 英文全称 | 核心特性 | 应用场景与示例 |
---|---|---|---|
寄存器(Register) | CPU Internal Register | 1. 位于 CPU 内部,速度最快(纳秒级,<1ns ); 2. 容量极小(几十~几百字节); 3. 临时存储指令执行中的数据 / 地址; 4. 按功能分通用寄存器(R0-R12)、特殊功能寄存器 | CPU 内部数据缓存,如 PC(程序计数器,存下一条指令地址)、SP(栈指针,管理函数栈空间)、CPSR(程序状态寄存器) |
高速缓存(Cache) | High-Speed Cache Memory | 1. 位于 CPU 与主存之间,速度次之(纳秒级,~10ns ); 2. 容量较小(KB~MB 级,如 L1 Cache 64KB、L2 Cache 256KB); 3. 缓存 CPU 频繁访问的指令 / 数据; 4. 分 I-Cache(指令缓存)、D-Cache(数据缓存) | 减少 CPU 访问主存的延迟,如 Intel Core i7 的 L3 Cache 为 16MB,供多核共享;游戏运行时,常用纹理数据存于 Cache |
随机存取存储器(RAM) | Random Access Memory | 1. 即 "主存 / 内存",速度中等(纳秒级,~100ns ); 2. 容量较大(MB~GB 级,如 4GB、16GB、64GB); 3. 可读写,掉电后数据丢失 (易失性); 4. 可被 CPU 直接寻址(按字节寻址); 5. 分 DRAM(动态 RAM,如 DDR5)、SRAM(静态 RAM,速度快但成本高) | 存储运行中的程序与临时数据,如 Windows 系统加载到 RAM 中运行;游戏进程的临时数据(角色位置、血量)存于 RAM |
只读存储器(ROM) | Read-Only Memory | 1. 即 "外存 / 辅存",速度较慢(微秒级,~100μs ); 2. 容量大(GB~TB 级,如 512GB SSD、2TB HDD); 3. 非易失性(掉电数据不丢失); 4. 现多为可擦写(如 Flash ROM、EEPROM); 5. 不可被 CPU 直接寻址(需通过块设备驱动访问) | 长期存储静态数据,如 SSD 存操作系统镜像(Windows 镜像)、U 存存用户文档、嵌入式设备的 Flash 存固件(路由器固件) |

补充:Cache 按层级分 L1(CPU 内核独占)、L2(CPU 内核独占或共享)、L3(多核共享),层级越低(L1)速度越快、容量越小。
三、处理器体系
处理器是计算机的 "运算与控制核心",按应用领域分为通用计算机处理器 (面向 PC、服务器)和嵌入式处理器(面向家电、工业控制)两大类。
(一)通用计算机处理器
面向高算力、通用场景,强调多任务处理与复杂计算能力:
处理器类型 | 英文全称 | 定位与核心功能 | 代表产品与应用场景 |
---|---|---|---|
中央处理器(CPU) | Center Processing Unit | 通用计算核心,类比 "公司 CEO";负责指令执行、数据运算、系统资源(内存、外设)调度;支持多任务并发(如同时运行浏览器、微信、游戏) | Intel Core i7-14700K(PC 端)、AMD Ryzen 9 7950X(PC 端)、Intel Xeon Platinum 8480(服务器端,用于云计算) |
图形处理器(GPU) | Graphics Processing Unit | 专用图形与并行计算核心,类比 "公司体力劳动者";核心数量多(上千个),擅长大规模并行数据处理(如像素渲染、矩阵运算) | NVIDIA GeForce RTX 4090(PC 端游戏 / 图形设计)、AMD Radeon RX 7900 XT(PC 端)、NVIDIA A100(数据中心端,用于 AI 模型训练) |
浮点运算单元(FPU) | Floating-Point Unit | CPU/GPU 内部的专用模块;负责浮点型数据(带小数点,如 3.14、0.618)的运算;提升科学计算、工程模拟效率 | 集成于 CPU(如 Intel Core 系列的 FPU 支持 AVX-512 指令集)、GPU(如 NVIDIA GPU 的 Tensor Core 支持浮点运算);应用于气象模拟、3D 建模 |
(二)嵌入式领域处理器
面向低功耗、高集成度、特定场景,强调 "按需定制"(无需通用算力,仅满足专属功能):
处理器类型 | 英文全称 | 核心特性 | 应用场景 | 代表产品 |
---|---|---|---|---|
微处理器(MPU) | Micro Processing Unit | 1. 偏向 "数据处理",通用计算能力强; 2. 需外接内存(RAM)、存储(ROM)、外设; 3. 支持复杂操作系统(Linux、Android) | 智能设备、工业控制主机(如智能家居网关、车载信息娱乐系统) | NXP I.MX6ULL、Samsung S5PV210 |
微控制器(MCU) | Micro Control Unit | 1. 偏向 "控制",高集成度(片上集成 RAM、ROM、GPIO、UART 等外设); 2. "单芯片即可工作",无需外接大量元件; 3. 低功耗、低成本,支持 RTOS(实时操作系统)或裸机编程 | 小型嵌入式控制(如空调控制板、智能门锁、传感器节点) | STM32F103(STM32 系列)、Atmel ATmega328P(Arduino Uno 核心) |
数字信号处理器(DSP) | Digital Signal Processing Unit | 1. 专为 "高强度数字信号运算" 设计,支持快速乘法 - 累加(MAC) 操作; 2. 实时性强,适合时序信号处理(音频、视频、雷达信号); 3. 指令集优化并行运算 | 音频处理(降噪、均衡器)、视频编码、工业检测(振动分析)、医疗设备(心电图处理) | Texas Instruments TMS320C6000、ADI ADSP-SHARC |
片上系统(SoC) | System on Chip | 1. 集成 "处理器核心 + 外设 + 存储 + 专用模块" 的完整系统,类比 "城市蓝图"; 2. 可集成 MPU/MCU/DSP/GPU/Modem(调制解调器); 3. 高集成度、小体积,适合便携设备 | 智能手机、平板电脑、智能手表、物联网网关 | Qualcomm Snapdragon 8 Gen3(手机 SoC)、Apple A17 Pro(iPhone SoC)、华为麒麟 9000S(手机 SoC) |

四、ARM 架构与内核
ARM(Advanced RISC Machines)架构是嵌入式领域主流架构,基于 RISC(精简指令集)设计,核心优势是 "低功耗、高性能、小体积",广泛应用于智能手机、物联网设备、工业控制。
(一)ARM 核心系列与应用场景
ARM 内核按性能与场景分为三大系列,覆盖从低功耗 MCU 到高性能 SoC:

核心系列 | 定位与核心特点 | 应用场景 | 典型型号 |
---|---|---|---|
Cortex-A | 高性能、多核心;支持复杂操作系统(Linux、Android);侧重通用计算与多任务处理 | 智能手机、平板电脑、机顶盒、工业控制主机 | Cortex-A7(入门级)、Cortex-A53(中低端手机)、Cortex-A78(高端手机,如骁龙 888 用 A78 核心) |
Cortex-R | 高实时性、高可靠性;支持硬实时任务(任务响应时间可预测);侧重安全与稳定 | 工业控制(如 PLC)、汽车电子(如发动机控制)、医疗设备(如呼吸机) | Cortex-R5(工业控制)、Cortex-R8(汽车电子) |
Cortex-M | 低功耗、低成本、小体积;支持裸机编程或轻量级 RTOS;侧重简单控制任务 | 传感器节点、小型控制器(如智能灯、遥控器)、家电控制板 | Cortex-M0(超低功耗)、Cortex-M4(支持浮点运算,用于电机控制)、Cortex-M7(高性能 MCU,用于工业检测) |
(二)主流 ARM 芯片与开发板
开发板是学习 ARM 架构的核心工具,提供硬件平台与软件支持(驱动、SDK):
类别 | 代表厂商 / 产品 | 核心参数与特点 | 适用场景(学习 / 开发) |
---|---|---|---|
主流 SoC 芯片 | NXP(恩智浦):I.MX6ULL Samsung(三星):S5PV210 ST(意法半导体):STM32MP157 | I.MX6ULL(Cortex-A7,工业控制);S5PV210(Cortex-A8,早期学习);STM32MP157(Cortex-A7 + Cortex-M4,异构多核,兼顾控制与计算) | 工业控制开发、嵌入式 Linux 学习、异构多核编程 |
常用开发板 | 正点原子:I.MX6ULL-Mini、STM32F4 探索者 友善之臂:Tiny4412 Arduino:Uno | I.MX6ULL-Mini(Linux 嵌入式开发);STM32F4 探索者(Cortex-M4,MCU 开发);Tiny4412(ARM9 架构学习);Arduino Uno(入门级 MCU,适合新手) | Linux 驱动开发、MCU 裸机编程、嵌入式入门学习 |
(三)处理器架构对比(CISC vs RISC vs RISC-V)
处理器架构核心是 "指令集设计",决定硬件复杂度与软件编译效率:

架构类型 | 英文全称 | 指令集特点 | 优势 | 劣势 | 典型代表 |
---|---|---|---|---|---|
复杂指令集(CISC) | Complex Instruction Set Computer | 1. 指令数量多(数百条),功能复杂(一条指令完成多步操作,如 "复制内存块"); 2. 指令长度不固定(1-15 字节); 3. 寻址方式多样 | 1. 程序代码短(少指令完成复杂操作); 2. 编译器设计简单 | 1. 硬件控制电路复杂(难流水线化); 2. 指令执行效率低(部分指令需多个时钟周期); 3. 功耗高 | Intel x86、AMD x86 系列(PC / 服务器) |
精简指令集(RISC) | Reduced Instruction Set Computer | 1. 指令数量少(几十~上百条),功能精简(一条指令仅完成一个基本操作,如 "加法""取数"); 2. 指令长度固定(如 32 位); 3. 寻址方式简单; 4. 单时钟周期完成大部分指令 | 1. 硬件简单(易实现流水线); 2. 执行效率高(并行性强); 3. 低功耗、小体积 | 1. 程序代码长(复杂操作需多条指令组合); 2. 编译器设计复杂(需优化指令组合) | ARM 系列(嵌入式 / 手机)、MIPS(路由器) |
开源精简指令集(RISC-V) | RISC-V Instruction Set Architecture | 1. 基于 RISC 设计,指令集开源 (无专利费); 2. 模块化设计(按需扩展,如浮点、向量模块); 3. 支持 32/64/128 位地址空间 | 1. 开源免费(降低芯片设计成本); 2. 灵活可扩展(适配从 MCU 到服务器); 3. 社区活跃(生态快速发展) | 1. 生态成熟度低于 ARM/x86(部分外设驱动缺失); 2. 高端芯片产品较少 | 平头哥玄铁 910、SiFive U74、兆易创新 GD32V 系列 |

(四)ARM 内核核心组件与流水线
ARM 内核是 ARM 处理器的 "运算核心",包含五大关键模块,通过流水线技术提升指令执行效率:
1. 核心组件
- 算术逻辑单元(ALU):执行算术 / 逻辑运算,如加法、异或,是内核的 "运算引擎"。
- 寄存器组(Register Bank):存储临时数据与地址,分两类:
- 特殊功能寄存器(SFR):PC(程序计数器,存下一条指令地址)、SP(栈指针,管理栈空间)、LR(链接寄存器,存函数返回地址)、CPSR(当前程序状态寄存器,存进位 / 溢出标志、中断屏蔽位)、SPSR(异常时备份 CPSR)。
- 通用寄存器(GPR):R0-R12,临时存储数据与地址(如 R0 存函数返回值)。
- 指令译码器:将机器码指令(二进制)翻译成控制信号(如 "R1 与 R2 相加""从地址 0x1234 取数据")。
- 控制器(CU):根据译码后的控制信号,协调 ALU、寄存器、总线同步工作,控制指令执行时序。
- 流水线(Pipeline):将指令执行拆分为多阶段并行处理,减少指令等待时间(类似工厂流水线)。
2. 典型流水线结构
- 三级流水线(ARM7TDMI) :适用于低功耗、入门级内核,分为三阶段:
- 指令预取(Fetch):从 I-Cache / 内存读取下一条指令,存入流水线寄存器。
- 指令译码(Decode):译码器将指令翻译成控制信号。
- 指令执行(Execute):驱动 ALU 运算、寄存器读写,输出结果。
- 五级流水线(ARM926EJ-S) :适用于中高端内核,拆分 "执行" 阶段,提升并行性:
- 指令预取(Fetch)→ 2. 指令译码(Decode)→ 3. 指令执行(Execute,仅 ALU 运算 / 地址计算)→ 4. 内存访问(Memory,读写内存数据)→ 5. 写回(Writeback,将结果写入通用寄存器)。
五、关键扩展问题解析
1. 冯・诺依曼架构 vs 哈佛架构?ARM 内核属于哪一种?
两种架构的核心区别是 "程序与数据的存储方式",直接影响指令执行效率:
对比维度 | 冯・诺依曼架构 | 哈佛架构 |
---|---|---|
存储结构 | 程序指令与数据共享同一存储空间、同一条总线 | 程序指令与数据分开存储(独立空间)、独立总线(指令总线 + 数据总线) |
工作特点 | 指令与数据访问存在 "时序冲突"(需先取指令、再取数据),总线带宽是性能瓶颈 | 可同时取指令与取数据,数据吞吐率高,适合实时性场景 |
典型应用 | 早期 PC(如 Intel x86 架构)、ARM7 内核 | DSP、ARM9 及以后内核(如 ARM926EJ-S)、FPGA |
ARM 内核的选择:ARM 内核灵活适配两种架构 ------ 早期 ARM7TDMI 采用冯・诺依曼架构(低功耗、简单场景);ARM9、Cortex-A/R/M 系列(如 Cortex-A78、Cortex-M4)多采用哈佛架构(通过独立指令 / 数据总线提升并行性)。
2. ARM 有几种工作模式?
ARM 内核通过 "工作模式" 实现权限管理与异常处理,共7 种基本模式,Cortex-A 系列额外扩展 2 种模式:
模式类型 | 模式名称 | 核心用途与触发场景 | 权限等级(特权 / 非特权) |
---|---|---|---|
基本模式 | User(用户模式) | 普通任务执行(如 APP 运行);无硬件访问权限,防止误操作硬件 | 非特权 |
基本模式 | FIQ(快速中断模式) | 高优先级中断处理(如紧急信号、硬件故障);响应速度最快,独占部分寄存器以减少上下文切换时间 | 特权 |
基本模式 | IRQ(普通中断模式) | 低优先级中断处理(如键盘输入、串口数据接收);最常用的中断模式 | 特权 |
基本模式 | Supervisor(管理模式) | 系统初始化(复位后进入)、软中断(SWI 指令)触发;操作系统内核运行在此模式 | 特权 |
基本模式 | Abort(中止模式) | 内存访问异常(如访问无效地址、权限不足)时进入;用于异常处理(如页错误) | 特权 |
基本模式 | Undef(未定义模式) | 执行未定义指令(如不支持的指令)时进入;用于指令扩展(如模拟协处理器指令) | 特权 |
基本模式 | System(系统模式) | 操作系统内核的高权限任务(如进程调度);使用与 User 模式相同的寄存器集,便于切换 | 特权 |
Cortex-A 扩展模式 | Monitor(监控模式) | 安全相关任务(如 TrustZone 技术,隔离安全世界与普通世界);执行安全监控代码 | 特权 |
Cortex-A 扩展模式 | Hyp(虚拟化模式) | 虚拟化任务(如运行多个操作系统);支持硬件虚拟化,提升虚拟机性能 | 特权 |
3. 什么是异常向量表?
异常向量表是 ARM 内核中固定地址的内存区域,存储各类 "异常处理程序的入口地址",是内核响应异常的 "导航表"。
核心特性:
- 工作原理:当异常触发(如中断、复位、未定义指令)时,CPU 自动切换到对应工作模式,并将 PC(程序计数器)指向向量表中 "与异常类型绑定的固定地址",从该地址执行跳转指令,进入异常处理程序。
- ARM 中的位置:传统 ARM 内核(如 ARM9)默认位于 0x00000000(或高地址 0xFFFF0000,可通过协处理器配置);Cortex-M 系列支持向量表重定位(可移至 RAM/Flash 其他地址)。
- 典型异常向量表结构(32 位 ARM,每个条目 4 字节,存跳转指令):
地址(默认) | 异常类型 | 触发场景 | 进入的工作模式 |
---|---|---|---|
0x00000000 | 复位(Reset) | 上电、复位按钮按下 | Supervisor |
0x00000004 | 未定义指令(Undefined) | 执行不支持的机器码指令 | Undef |
0x00000008 | 软件中断(SWI/SVC) | 执行 SWI 指令(用户态→内核态切换) | Supervisor |
0x0000000C | 指令预取中止(Prefetch Abort) | 取指令时地址无效 / 权限不足 | Abort |
0x00000010 | 数据访问中止(Data Abort) | 读写数据时地址无效 / 权限不足 | Abort |
0x00000014 | 保留(Reserved) | 未使用(预留扩展) | - |
0x00000018 | IRQ(普通中断) | 外部中断请求(如键盘输入) | IRQ |
0x0000001C | FIQ(快速中断) | 高优先级中断请求(如硬件故障) | FIQ |
4. 计算机的总线结构
总线是连接计算机各硬件部件的 "公共信息通道",负责传输数据、地址、控制信号,按 "连接部件数量" 分为单总线结构 和多总线结构:
(1)单总线结构
- 结构 :CPU、内存、外设(输入 / 输出设备)通过一条总线连接,所有部件共享总线带宽。
- 优点:结构简单、成本低、易于设计(适合早期微型机)。
- 缺点:总线带宽成为瓶颈(同一时间仅能传输一组数据,CPU 与内存通信时,外设需等待);性能低。
- 应用:早期 8 位微型机(如 Intel 8080)、简单嵌入式设备(如计算器)。
(2)多总线结构
- 结构 :按功能拆分多条总线,常见分层:
- 系统总线(CPU 总线):连接 CPU 与内存、高速 Cache,传输速度快。
- I/O 总线(外设总线):连接内存与低速外设(如键盘、打印机),如 PCI 总线、USB 总线。
- 存储总线:连接内存与高速外设(如 SSD),提升存储访问速度。
- 优点:各总线独立工作,带宽高、性能强(适合现代 PC / 服务器)。
- 缺点:结构复杂、成本高。
- 应用:现代 PC(如 Intel 平台的 DMI 总线)、服务器(如 PCIe 5.0 总线)。
5. 编译器的作用与编译流程
编译器是 "将高级语言代码(如 C、C++)转换为机器码(CPU 可执行的二进制指令)" 的工具,核心作用是 "打通软件与硬件的交互通道"。
编译流程(以 GCC 编译器为例)
编译分为四个阶段,每个阶段输出特定文件,最终生成可执行文件:
-
预处理(Pre-Processing)
- 功能:处理源代码中的 "预处理指令"(以
#
开头),如#include
(导入头文件)、#define
(宏替换)、#ifdef
(条件编译)。 - 输入文件:
.c
(C 语言源文件)、.h
(头文件)。 - 输出文件:
.i
(预处理后的源文件,纯 C 代码,无预处理指令)。 - 示例命令:
gcc -E test.c -o test.i
。
- 功能:处理源代码中的 "预处理指令"(以
-
编译(Compiling)
- 功能:将预处理后的
.i
文件转换为汇编语言代码 (人类可读的指令,如add r1, r2, r3
),同时进行语法检查、代码优化(如删除无用代码、循环优化)。 - 输入文件:
.i
文件。 - 输出文件:
.s
(汇编语言文件)。 - 示例命令:
gcc -S test.i -o test.s
。
- 功能:将预处理后的
-
汇编(Assembling)
- 功能:将汇编代码
.s
转换为机器码(二进制指令),生成 "目标文件"(仅包含当前源文件的机器码,未链接依赖库)。 - 输入文件:
.s
文件。 - 输出文件:
.o
(目标文件,Windows 为.obj
)。 - 示例命令:
gcc -c test.s -o test.o
。
- 功能:将汇编代码
-
链接(Linking)
- 功能:将多个目标文件(如
test.o
、func.o
)与 "系统库文件"(如libc.so
,C 标准库)合并,解决符号引用(如函数调用、全局变量),生成可执行文件。 - 输入文件:
.o
文件、库文件(.so
动态库、.a
静态库)。 - 输出文件:可执行文件(Windows 为
.exe
,Linux 为无后缀文件,如test
)。 - 示例命令:
gcc test.o func.o -o test
。
- 功能:将多个目标文件(如



1. 什么是 RISC、CISC?
- RISC(精简指令集计算机) :
指令集精简(仅包含高频简单指令)、长度固定,大部分操作在寄存器内完成,仅取数 / 存数指令访问内存;采用流水线技术,单周期执行指令,硬件通过组合逻辑控制,无需微码;寄存器数量多,代码密度较低但执行效率高,能效比好,典型代表为 ARM、RISC - V、MIPS,适用于嵌入式系统和移动设备。- CISC(复杂指令集计算机) :
指令集复杂庞大(含 200~300 条指令)、长度不固定,支持内存直接操作;指令执行时间差异大(多周期完成),硬件通过微码控制;寄存器数量少,代码密度高但执行速度慢,能效比低,典型代表为 x86,适用于传统桌面计算机和服务器。2. 冯・诺伊曼架构和哈佛架构有何区别?ARM 内核属于哪一种?
架构区别:
维度 冯・诺伊曼架构 哈佛架构 存储与总线 程序和数据共用一个存储器与总线,取指令和存取数据分时复用总线 程序和数据存储分离,有独立的存储器模块与总线,可同时访问指令和数据 执行效率 总线瓶颈导致执行速度受限 并行访存提升数据吞吐率 硬件复杂度 结构简单,成本低 设计复杂,成本高 ARM 内核的架构归属:
- ARM7 系列 :采用冯・诺伊曼架构(程序和数据共用存储)。
- ARM9~ARM11 系列、Cortex - M 系列 :采用哈佛架构(指令和数据存储分离)。
- Cortex - A/R 系列 :采用改进型哈佛架构(通过指令 Cache 和数据 Cache 实现并行访存,仅用一套物理总线分时访问存储)。
3. ARM 内核中都有什么?
ARM 内核的核心组件包括:
- CPU 核心:如 ARMTTDMI(支持 Thumb 指令集、调试功能的 32 位 RISC 处理器)。
- 寄存器组:37 个 32 位寄存器(31 个通用寄存器 + 6 个状态寄存器),部分模式下有专用寄存器(如 FIQ 模式的 R8 - R14)。
- 运算单元:32 位 ALU(算术逻辑单元)、32×32 位桶形移位寄存器、32×8 位高速乘法器(支持快速乘法运算)。
- 存储管理:MMU(内存管理单元,用于虚拟地址转物理地址,部分内核含 TLB 加速地址转换)、Cache(指令 / 数据缓存,如 8KB 四路组相联 Cache)。
- 调试与控制:JTAG(边界扫描链,用于调试)、EmbeddedICE Logic(断点观测逻辑)、写缓冲器(Write Buffer)等。
- 总线接口:如 AMBA AHB 总线,用于连接内存和外设。
4. ARM 有几种工作模式?
ARM 处理器共有8 种工作模式(7 种基本模式 + Cortex - A 特有模式):
基本工作模式(7 种):
- User(用户模式):非特权模式,普通任务执行。
- FIQ(快速中断模式):高优先级中断触发时进入,支持高速数据传输。
- IRQ(普通中断模式):低优先级中断触发时进入。
- Supervisor(管理模式):复位或软中断(SWI)时进入,操作系统特权模式。
- Abort(中止模式):内存存取异常(如缺页)时进入。
- Undef(未定义模式):执行未定义指令时进入。
- System(系统模式):特权模式,使用与 User 模式相同的寄存器集,供操作系统内核任务使用。
Cortex - A 特有模式:
- Monitor(监控模式):为安全扩展的特权模式,用于执行安全监控代码(如处理虚拟化或信任区切换)。
5. 什么是异常向量表?
异常向量表(Exception Vector Table)是 ARM 架构中存储异常处理程序入口地址的数据结构,通常位于内存最低地址(如 0x00000000)。其核心作用是:
- 快速定位异常处理程序:每种异常(如中断、未定义指令、数据 Abort 等)对应一个 "向量"(即处理程序的入口地址),处理器触发异常时,自动跳转到表中对应的向量位置执行 ISR(中断服务例程)。
- 支持多异常优先级:不同异常的向量按优先级排列,确保高优先级异常(如 FIQ)优先处理。
- 结构灵活:在 ARMv8 - A 等架构中,不同异常级别(EL0~EL3)可配置独立的向量表,进一步提升系统安全性与响应效率。