计算机底层原理 - 1

- CPU、内存
- CPU:用于计算的硬件
- 内存:用于存储
一个程序的执行过程: 程序代码在内存中跑,cpU向内存要一条条待执行指令(即代码编译后的底层计算指令),到cpu中进行计算,计算完毕后结果在存放到内存,以待后续使用,依此执行所有指令
- cpu在自己的缓存或寄存器等事物中取出数据计算,速度非常快,是到内存中取数据的100倍。
- 如何提高这个速度? —— 使用缓存技术(目前使用最多为三级缓存L1,L2,L3)
- 依次从 L1 -> L2 -> L3 -> 内存 查找数据,返回数据时则依次 内存 -> L3 -> L2 -> L1 留下数据备份(缓存)
- 空间局部性原理:取数据时,将待取数据附近的数据一同取了,减少频繁的向内存取数据操作(这里绝大多数采用 64字节 作为附近数据同一取出,这个概念叫 缓存行)


- 缓存一致性协议(硬件协议):
当多线程编程时,两个计算读取了同一行数据,并做修改后,通知另一线程更新数据就极为重要了,这里同步数据的协议即为 缓存一致性协议,目前Inter、AMD使用MESI最为广泛。

让两个不同线程修改数据,尽量在不同一行缓存行,如此减少缓存一致性原则带来的数据同步消耗



