目录
什么是计算机?
计算机就是一个有着超高计算能力的时分系统计算器;能根据输入的指令对数据进行运算;
计算机最核心的单元部件是CPU,CPU的核心硬件是晶体管;
晶体管的组成元素是硅;硅来自于沙子 - 人类最牛逼的发现之一;
计算机始于冯·诺伊曼,其设计的架构体系如下图:
CPU - 中央处理器
CPU分类
CPU分为单核(1核1线程)、多核(4核4线程)、线程撕裂者(4核8线程);
CPU的组成
- PC - Program Counter 指令计数器,寄存器的一种,记录当前正在执行的指令在内存中的位置
- Registers - 寄存器,CPU中存在多个寄存器,用于记录计算时需要用到的数据
- ALU - 计算&逻辑单元,CPU进行数据运算与逻辑运算的单元
- CN - Control Unit 控制单元
- MMU - Memory Management Unit
- 多级缓存
CPU指令集
CPU指令集是平台相关的,Intel、AMD不同的厂商设计的CPU指令集完全不同;
指令乱序性:相邻的两条指令如果没有逻辑上的相互依赖是允许调换顺序执行的,这就是指令乱序;
那么如何避免指令乱序呢?
- 内存屏障 - 个别cpu有通过指令原语实现(sfence、rfence、mfence)
- 锁 - 未实现内存屏障原语的cpu则使用lock指令锁总线实现
缓存行
CPU一次性读取内存数据的基本单位;
工业实践 - 64Byte;
缓存一致性协议
MESI - 参考:https://www.cnblogs.com/z00377750/p/9180644.html
是硬件协议,只有个别cpu实现了
存储金字塔
![](https://img-blog.csdnimg.cn/20201025230351265.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3E2MjUwNjIxMg==,size_16,color_FFFFFF,t_70)
寄存器的读取速度是主存的100倍。
什么是局部性原理?
时间局部性 - 指令在一段时间内有多次读取同一块数据块的倾向;
空间局部性 - 程序很可能会用到当前正在使用数据的附近的数据;