计算机是什么,要设计成什么样子
冯诺依曼体系结构
计算机的必备概念
计算机有通用计算机(例如桌面计算机),服务器,嵌入式计算机
但是都符合冯诺依曼体系结构
办公用的笔记本或台式机(2022-3-5 10:52:42 一般是X64架构)
输入设备 : 键盘 , 鼠标 , 触摸板,触摸屏 , 麦克风 , 摄像头
输出设备 : 显示器 , 喇叭
存储器 : 机械硬盘 , 内存条
运算器&控制器 : CPU
服务器
类似于 "办公用的笔记本或台式机"
嵌入式计算机
输入设备 : 传感器 ,开关, 及 办公用的笔记本或台式机的输入设备
输出设备 : LED灯 及 办公用的笔记本或台式机的输出设备
存储器 : flash mmc 及 办公用的笔记本或台式机的存储器
运算器&控制器 : SOC
CPU 要完成什么工作
运算和控制
一定要设计如下两类指令集
运算
算术运算 : 整数/浮点/向量
逻辑运算
控制
分支控制 : 程序流控制/跳转
访存 : 通过写内存来控制外设
其他:
异常处理
原子操作
fence
系统寄存器访问
CPU的架构设计
其实只要设计能完成 运算和 控制就算完成了 CPU 的架构设计,但是 不同的人有不同的想法
他们对"完成"运算和控制"这个操作"所需的
1.指令条数
2.指令编码
不同,产生了 不同的 "架构"
而基于某一个 架构(指令集) , 他们 对 "取值,解析,执行" 所需的 具体设计
1. 流水线条数
2. ...
不同,产生了 不同的 "基于该结构的 微架构"
而基于 某一个 微架构 , 他们 对 "一个芯片应该包含什么外设"
1. 是否应该包括 I2C
2. 某设备应该挂到什么总线上
不同,产生了 不同的 "基于 某 微架构的 芯片"
不同的CPU架构
X86
X64
ARMv7
ARMv8
RISCV32
RISCV64
debug架构
虚拟化架构