计算机基本理论与 ARM 相关概念深度解析

一、计算机基本理论

1. 计算机的组成

计算机硬件系统由五大部件构成:

  • 运算器:负责算术运算(如加减乘除)与逻辑运算(如与、或、非),是数据处理的核心单元。
  • 控制器:从存储器中逐条提取指令,分析指令功能并指挥各部件协同工作,如协调内存与硬盘的数据交互。
  • 存储器:包括内存(如 RAM,临时存储运行中的程序和数据)与外存(如硬盘、SSD,长期存储文件),内存读写速度快但断电数据丢失,外存则相反。
  • 输入设备:如键盘、鼠标,将外部信息转化为计算机能识别的电信号。
  • 输出设备 :如显示器、打印机,将计算机处理结果展示给用户。
    软件系统则分为系统软件(如操作系统、编译器)和应用软件(如办公软件、游戏),前者管理硬件资源,后者满足特定需求。

2. 指令和指令集

  • 机器指令 :以二进制形式存在,由操作码(指明操作类型,如 0011 表示加法)和操作数(参与操作的数据或地址)组成。例如 0011 0001 0010 可能表示将地址 0010 的数据与 0001 相加。
  • 汇编指令 :用助记符替代二进制操作码,更易理解。如 ADD R0, R1, R2 表示将寄存器 R1R2 的值相加,结果存入 R0。常见汇编指令还有 MOV(数据传送)、JMP(跳转)等。
  • 指令集:分为复杂指令集(CISC)和精简指令集(RISC)。CISC 指令功能复杂,如一条指令可完成 "读取内存数据并进行复杂运算";RISC 指令简单,强调单步操作的高效性,通过组合简单指令实现复杂功能。
  • 一条指令的执行过程
    1. 取指令:控制器根据程序计数器(PC)从内存中读取指令,存入指令寄存器。
    2. 译码:分析指令操作码,确定指令功能,如判断是加法还是跳转指令。
    3. 执行:若为算术指令,运算器执行计算;若为跳转指令,修改 PC 值以改变执行流程。
    4. 写回:将运算结果存回寄存器或内存。

3. 程序编译的基本原理

  • 程序编译的步骤
    1. 预处理 :处理 #include(包含头文件)、#define(宏替换)等指令。例如,将 #include <stdio.h> 替换为头文件的具体内容。
    2. 编译:将预处理后的代码转换为汇编代码。此阶段进行词法分析(识别单词,如变量名、关键字)、语法分析(检查语句结构是否正确,如括号是否匹配)、语义分析(确保操作合法,如除数不为零),并优化代码。
    3. 汇编 :通过汇编器将汇编代码转换为机器码(目标文件),如将 ADD 指令转为二进制形式。
    4. 链接:合并多个目标文件及库文件(如 C 语言的标准库),解决符号引用(如函数调用),生成可执行程序。
  • 编译的原理:利用有限状态自动机进行词法分析,语法树进行语法分析,通过代码优化算法(如常量折叠、循环优化)提升程序效率。

4. 精简指令集和复杂指令集

  • 复杂指令集(CISC)
    • 优点:指令功能强大,可减少代码行数,适合对代码体积敏感的场景(如早期内存有限的情况)。
    • 缺点:指令长度不固定,执行周期长,硬件设计复杂,功耗较高。典型代表 x86 架构,广泛用于 PC。
  • 精简指令集(RISC)
    • 优点:指令简单、执行速度快,便于流水线技术(多条指令重叠执行),功耗低。
    • 缺点:需更多指令完成复杂操作,依赖高效编译器。ARM 采用此架构,主导移动设备市场。
  • 常见精简指令示例 :ARM 的 ADD R0, R1, #5 表示将 R1 的值与常数 5 相加,结果存到 R0LDR R0, [R1] 表示从 R1 指向的内存地址读取数据到 R0

二、ARM 相关概念

1. ARM 发展历史

1985 年,ARM 首款处理器 ARM1 诞生,随后不断演进。1990 年,ARM 公司成立,专注授权模式。2000 年后,ARM 架构因低功耗、高性能,在智能手机领域崛起,击败 x86 架构,成为移动设备主流。

2. ARM 架构

定义了处理器的编程模型、指令集版本及特性。如 ARMv7 架构引入 Thumb-2 指令集(混合 16/32 位指令,平衡代码密度与性能);ARMv8 架构支持 64 位处理,提升数据处理能力与内存寻址范围(最大支持 1TB 内存)。

3. ARM 内核

是处理器的核心模块,如 Cortex-A53 内核采用乱序执行技术,提升指令执行效率;Cortex-M3 内核采用哈佛结构(指令与数据总线分离),加快数据读写速度。内核设计决定了处理器的性能、功耗及兼容性。

4. SOC(system on chip)

将 ARM 内核与多种模块集成:

  • 存储器控制器:管理内存(如 DDR4)的读写。
  • 外设接口:如 USB、UART(串口)、SPI,用于连接外部设备。
  • 图形处理单元(GPU) :如 ARM Mali 系列,负责图像渲染,提升显示效果。
    典型应用如手机 SOC 芯片,集成 CPU、GPU、通信基带等,实现完整功能。

5. ARM 的产品分布

  • Cortex - A 系列
    • 定位:高性能应用,支持复杂操作系统。
    • 示例:Cortex-A76 用于高端智能手机,采用大内核设计,单核性能强劲,满足多任务处理与大型游戏需求。
  • Cortex - R 系列
    • 定位:实时系统,强调可靠性与快速响应。
    • 示例:汽车发动机控制单元(ECU),需实时处理传感器数据,Cortex-R5 内核可确保在微秒级响应。
  • Cortex - M 系列
    • 定位:微控制器,低功耗、低成本。
    • 示例:智能手环中,Cortex-M33 内核在低功耗下处理心率监测、数据传输等任务。
  • SecurCore 系列
    • 定位:安全敏感领域,如金融 IC 卡、身份识别芯片。
    • 特性:集成硬件加密模块,防止数据篡改与非法访问。

6. ARMv7 架构 SOC 工作模式

包括 7 种模式:

  • 用户模式(User):普通程序运行模式,权限最低,不能直接访问某些系统资源(如内核寄存器)。
  • 快速中断模式(FIQ):处理高优先级中断,如紧急硬件故障,可快速切换上下文。
  • 外部中断模式(IRQ):处理一般外部设备中断(如键盘输入)。
  • 特权模式(Supervisor):操作系统内核运行模式,可访问所有资源,用于管理用户程序。
  • 数据访问终止模式(Abort):处理数据访问异常(如访问不存在的内存地址)。
  • 未定义指令终止模式(Undefined):处理无法识别的指令。
  • 系统模式(System) :与用户模式使用相同寄存器,但具有特权模式权限,用于运行特殊系统任务。
    模式切换通过修改程序状态寄存器(CPSR)的模式位实现,确保系统安全与稳定。

7. ARMv7 架构下的寄存器组织

  • 通用寄存器(R0 - R12) :用于暂存数据与地址,如 R0 可存放函数返回值,R1 - R3 常用于传递函数参数。
  • R13(堆栈指针,SP):指向堆栈顶部,每次函数调用时,SP 调整以分配局部变量空间,遵循 "满递减栈" 原则(先减地址再存数据)。
  • R14(链接寄存器,LR) :保存子程序返回地址。例如,执行 BL(带链接跳转)指令调用函数时,当前 PC 值 + 4(下一条指令地址)存入 LR,函数结束时通过 MOV PC, LR 返回。
  • R15(程序计数器,PC):始终指向即将执行的指令地址,写入 PC 可实现程序跳转。
  • CPSR/SPSR(程序状态寄存器)
    • CPSR :包含标志位(如 N(负数)、Z(零)、C(进位)、V(溢出)),控制中断使能(I、F 位)与处理器模式。例如,执行 ADD 指令后,根据结果设置 Z 标志位(结果为零则 Z=1)。
    • SPSR :当异常发生时,保存 CPSR 当前状态,异常处理结束后,通过 MSR 指令将 SPSR 值恢复到 CPSR,确保系统状态还原。
相关推荐
GOATLong5 小时前
网络基础概念
linux·运维·服务器·网络·arm开发·c++
易知嵌入式小菜鸡1 天前
在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器
arm开发
mucheni2 天前
迅为iTOP-RK3576开发板/核心板6TOPS超强算力NPU适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品
arm开发·人工智能·边缘计算
dadaobusi3 天前
qemu构建arm环境(AI生成)
arm开发
mucheni4 天前
迅为RK3562开发板ARM四核A53核心板多种系统适配全开源
arm开发
阿让啊4 天前
单片机获取真实时间的实现方法
c语言·开发语言·arm开发·stm32·单片机·嵌入式硬件
手打猪大屁4 天前
ARM裸机开发——I.MX6U_汇编LED灯驱动
汇编·arm开发
深圳信迈科技DSP+ARM+FPGA4 天前
基于ARM+FPGA+DSP的储能协调控制器解决方案,支持国产化
arm开发·fpga开发·信号处理
承接电子控制相关项目4 天前
STM32F103 单片机(基于 ARM Cortex-M3 内核)的启动过程涉及硬件初始化、固件配置和程序执行流程。
arm开发·stm32·单片机·cortex-m3内核启动