Cpu如何读取内存
读书《计算机底层的秘密》
内存中存数据和指令。
cpu从内存中读取数据很慢的。cpu和内存中间有个桥梁。叫高速缓存。
cpu向高速缓存中更新数据,需要同步到内存中。可以采用异步同步的办法。cpu先更新高速缓存。等到高速缓存清空部分数据块的时候,再更新内存数据。
cpu是多核的,每个核都都有各自的高速缓存,这又涉及到多核间数据同步的问题。
缓存有多级高速缓存,L1,L2,L3,等等。串联的,L1取不到从L2取。
操作系统将内存封装了。叫虚拟内存。操作系统给程序分配的内存是大块的,连续的。实际上不是这样,要去找真实的内存地址。
CPU执行的大部分时间都是那少部分指令,这是指令的二八定律。
程序操作的数据也有类似定律,叫程序的局部性。程序访问数据A,接下来很有可能再次访问数据A,这叫程序的时间局部性。我们访问A,接下来很有可能访问A旁边的B,这叫程序的空间局部性。