1. 缓存行的概念
1.1 CPU的缓存机制
我们都知道在现代计算机的架构中,CPU负责执行命令,主存负责存储运行时所需的数据。由于CPU执行命令的效率要远高于主存对数据的读写效率。所以如果让CPU直接从主存中读写数据,会造成CPU因为等待主存完成数据读写而大量空转。
为了解决这个问题,现代CPU引入了多级缓存机制(L1,L2,L3…)。我们以写数据举例,在此机制下,CPU不再直接往主存里写数据,而是往离它最近且读写性能最强的L1缓存里写数据。随后再由其他的控制单元负责将这些数据一级一级的转存,直到最后写进主存里。之所以缓存还要分多级,主要是CPU执行效率和主存的读写性能差距实在太大,而能匹配上CPU执行效率的存储介质又非常的贵,所以和CPU直接交互的L1缓存通常只有很小的存储空间。那为了降低存储介质的成本,同时又不对CPU执行命令的效率造成太大影响,所以只能加多几级空间较大但性能较差(相对与L1较差,但依然明显优于主存)的缓存,也就是常见的用空间换时间的做法。
如果对CPU的多级缓存机制感兴趣大家可以在网上检索一些相关资料,它并不是我们在这篇文档谈论的重点
1.2 缓存行
除了通过CPU的多级缓存机制来提高CPU执行效率外,现代CPU通常在读某一数据时,会将该数据附近相连的一块内存区域一并读入到缓存中,而不是仅仅读取某一变量,这样的一个内存区域被称为缓存行。既然读数