Skip to main content

Command Palette

Search for a command to run...

Cpu如何读取内存

Published
1 min readView as Markdown

读书《计算机底层的秘密》

内存中存数据和指令。

cpu从内存中读取数据很慢的。cpu和内存中间有个桥梁。叫高速缓存。

cpu向高速缓存中更新数据,需要同步到内存中。可以采用异步同步的办法。cpu先更新高速缓存。等到高速缓存清空部分数据块的时候,再更新内存数据。

cpu是多核的,每个核都都有各自的高速缓存,这又涉及到多核间数据同步的问题。

缓存有多级高速缓存,L1,L2,L3,等等。串联的,L1取不到从L2取。

操作系统将内存封装了。叫虚拟内存。操作系统给程序分配的内存是大块的,连续的。实际上不是这样,要去找真实的内存地址。

CPU执行的大部分时间都是那少部分指令,这是指令的二八定律。

程序操作的数据也有类似定律,叫程序的局部性。程序访问数据A,接下来很有可能再次访问数据A,这叫程序的时间局部性。我们访问A,接下来很有可能访问A旁边的B,这叫程序的空间局部性。

More from this blog

EddieQiao's blog

84 posts

coder, work in suzhou