【自学嵌入式:计算机组成原理】58. 杂项知识点 59. 复习
58. 杂项知识点
CPU与编程体系:分类、指令集及语言演进
一、CPU的分类
CPU家族庞大,可从 功能定位 和 应用场景 两大维度分类:
(一)按功能分类
| 类别 | 核心特点 | 类比理解 |
|---|---|---|
| 专用CPU | 为特定任务设计,专注优化单一功能(如AI计算、图形渲染),通用性弱 | 专业厨师(只擅长做蛋糕) |
| 通用CPU | 支持多任务、多场景,可运行复杂操作系统(如Intel i9、AMD Ryzen),通用性强 | 家庭主厨(能做满汉全席) |
(二)按使用场景分类
- 科学计算CPU(如TPU):
针对大规模并行计算优化(如AI训练、气象模拟),典型代表是谷歌TPU。 - 信息化设备CPU(如Intel、AMD):
驱动PC、服务器,需平衡性能、功耗、兼容性,是桌面和数据中心的核心。 - 移动计算CPU(如高通骁龙、华为麒麟):
面向手机、平板,侧重低功耗和能效比,支持移动网络(5G)和多媒体处理。 - 嵌入式CPU(如STM32、GD32):
用于智能硬件(如汽车ECU、智能手表),功能专一、资源有限,强调稳定可靠。 - 微控制器CPU(单片机,如51单片机):
集成度极高(CPU+内存+外设),适合简单控制(如电灯开关、玩具),成本极低。
二、指令集:CPU的“语言字典”
(一)定义与作用
指令集是 CPU能识别的机器语言指令集合,包含三类核心指令:
- 运算指令:加减乘除、逻辑运算等(如
ADD指令实现加法); - 控制指令:条件判断、循环(如
JMP跳转指令); - 输入输出指令:读写内存、硬盘(如
LOAD从内存取数据)。
它是CPU的“语言规范”——不同指令集的CPU,如同说不同语言的人,软件无法直接兼容(如苹果M1的ARM指令集软件,不能直接在Intel x86电脑运行)。
(二)指令集与生态
“生态”指围绕指令集的 软件工具链(编译器、汇编器、操作系统、调试器等):
- x86生态:统治桌面/服务器,Windows、Linux深度适配,工具链成熟;
- ARM生态:主导移动领域(手机、平板),安卓系统原生支持,低功耗优势明显;
- 生态的壁垒:新指令集需适配海量软件,难度极高(类比“让全世界突然改用新语言交流”)。
此外,指令集受 专利保护,掌握指令集的企业(如Intel、ARM)可通过授权获利,这就是“一流企业卖规则(指令集),二流企业卖技术(芯片)”的底层逻辑。
三、RISC与CISC:指令集的两种哲学
(一)核心差异
| 类别 | 全称 | 设计思路 | 典型代表 |
|---|---|---|---|
| RISC | 精简指令集计算机 | 用简单指令组合实现复杂功能,指令少而高效,硬件设计简单 | RISC-V、ARM |
| CISC | 复杂指令集计算机 | 用单条复杂指令直接实现高级功能,指令多而灵活,硬件设计复杂 | x86(Intel/AMD) |
(二)演进逻辑与现状
- 历史背景:早期CPU(如Intel 4004)只有45条指令(精简),但随着功能需求增长,x86指令集膨胀到上千条(复杂)。
- 80/20法则:CPU日常80%的运算,仅依赖20%的常用指令——复杂指令的利用率极低。
- RISC的崛起:
基于80/20法则,RISC用简单指令组合替代复杂指令,降低硬件设计难度,还支持 开源授权(如RISC-V),让企业无需支付高昂专利费即可使用,迅速在物联网、嵌入式领域普及,甚至威胁x86和ARM的统治地位。
四、汇编语言与汇编器:接近硬件的编程
(一)汇编语言的本质
汇编语言是 机器语言的“助记符翻译”:用人类易读的符号(如LOAD_A)代替二进制指令(如0000 000F),但仍和机器指令 一一对应(属于低级语言)。
(二)汇编器的作用
汇编器是 翻译工具:将汇编代码(如LOAD_A #1)转换成CPU能执行的机器码(如0000 000F)。
- 优势:直接控制硬件,效率极高(接近机器语言);
- 劣势:编写繁琐,对硬件细节依赖强(不同CPU的汇编指令不通用)。
示例:汇编代码实现“加载数据并相加”:
0000 LOAD_A ; 把内存数据加载到A寄存器
0001 LOAD_B ; 把内存数据加载到B寄存器
0010 ADD ; A和B相加,结果存入Out寄存器
# 59. 复习
(就是把之前学的又说一遍,没啥新内容,看一看,不记了)
浙公网安备 33010602011771号