ARM Arch
目录
什么是ARM?
ARM是一种处理器架构,就像汽车的发动机设计图。ARM公司只设计"蓝图",其他公司(如苹果、高通、三星)根据这个蓝图制造实际的芯片。
核心特点
- 低功耗:非常省电,适合手机、平板等移动设备
- 高性价比:性能足够强,成本相对较低
- 广泛应用:从智能手表到服务器都在使用
RISC架构简介
什么是RISC?
RISC(精简指令集计算机)是一种处理器设计哲学,与CISC(复杂指令集)相对。
RISC的核心思想
- 简单指令:每条指令只完成一个基本操作
- 固定长度:指令长度一致,解码简单
- Load-Store架构:只有专门的加载/存储指令可以访问内存
- 多用寄存器:大量通用寄存器提高效率
RISC vs CISC 对比
| 特性 | RISC (ARM) | CISC (x86) |
|---|---|---|
| 指令数量 | 较少,简单 | 很多,复杂 |
| 指令长度 | 固定 | 可变 |
| 内存访问 | 只能通过Load/Store | 指令可直接操作内存 |
| 设计哲学 | 硬件简单,编译器复杂 | 硬件复杂,编译器简单 |
| 功耗 | 低 | 高 |
核心部件:主控、内存、FLASH
详见: - ARM Cortex-M CPU
1. 主控芯片(CPU) - "大脑"
主控芯片是设备的"大脑",负责所有的计算和控制工作。
主要功能: - 执行数学运算(1+1=2) - 逻辑判断(如果...那么...) - 控制其他部件(让屏幕显示、让喇叭发声)
2. 内存(RAM) - "工作台"
内存就像是工作时的"临时工作台"。
特点: - 速度快:CPU可以快速读写 - 临时存储:断电后数据消失 - 空间有限:同时只能处理一定量的数据
工作方式:
CPU 从 FLASH 加载程序 → 在 内存 中运行程序 → 处理完成后保存结果
3. FLASH存储 - "文件柜"
FLASH就像是"文件柜",用于长期保存数据。
特点: - 永久存储:断电后数据不丢失 - 容量较大:可以存储很多程序和数据 - 速度较慢:比内存读写慢
存储内容: - 操作系统(如Android、iOS) - 应用程序(微信、游戏) - 用户数据(照片、文档)
三者如何协同工作?
简单比喻
想象你在办公室工作: - 主控(CPU) = 你本人(思考和工作) - 内存(RAM) = 办公桌(临时放正在处理的文件) - FLASH = 文件柜(长期存放所有文件)
实际工作流程
- 开机启动:从FLASH加载操作系统到内存
- 运行程序:从FLASH加载App到内存运行
- 数据处理:CPU在内存中计算和处理
- 保存结果:将重要数据写回FLASH保存
运算的基本原理
1. 二进制世界
计算机只认识0和1,所有数据都用二进制表示: - 数字:5 = 二进制 101 - 文字:A = 二进制 01000001 - 图片:由无数个彩色点组成,每个点用数字表示
2. 基本运算过程
加法示例:
计算:3 + 2
二进制:011 + 010
步骤:
011
+ 010
------
101 (十进制5)
3. 指令执行流程
CPU的工作就是不断重复以下步骤:
- 取指令:从内存读取下一条要执行的命令
- 解码:理解这个命令要做什么
- 执行:实际进行运算
- 存储:将结果保存到内存或寄存器
指向指令
CPU是靠机器码和寄存器操作来运行的,见: - GeneralReg - - SpecialReg_xPSR
从C代码到CPU执行的完整流程
C源代码 → 编译器 → 汇编代码 → 汇编器 → 机器码 → 存储在FLASH
↓
开机加载到内存
↓
CPU逐条执行
实际应用举例
手机拍照过程
- 启动相机:从FLASH加载相机程序到内存
- 取景预览:CPU处理摄像头数据,在内存中生成预览画面
- 按下快门:CPU进行图像处理、压缩
- 保存照片:将处理好的图片从内存写入FLASH存储
游戏运行
- 游戏程序存储在FLASH中
- 运行时加载到内存
- CPU和GPU(图形处理器)在内存中进行计算
- 生成画面输出到屏幕
- 游戏进度保存到FLASH
重要概念总结
| 部件 | 比喻 | 特点 | 作用 |
|---|---|---|---|
| 主控(CPU) | 大脑 | 运算、控制 | 执行所有计算任务 |
| 内存(RAM) | 工作台 | 速度快、临时性 | 提供运行空间 |
| FLASH | 文件柜 | 永久存储、容量大 | 长期保存数据 |
学习
- 理解层次关系:C语言 → 汇编 → 机器码 → 硬件执行
- 动手实验:尝试写简单C程序,查看生成的汇编代码
- 关注数据流:观察数据如何在寄存器、内存、FLASH之间流动
- 理解RISC优势:简单指令如何通过流水线提高效率