CPU缓存一致性:从理论到实战 | 您所在的位置:网站首页 › cpu缓存大小重要吗知乎 › CPU缓存一致性:从理论到实战 |
本文转自:一、存储体系结构 速度快的存储硬件成本高、容量小,速度慢的成本低、容量大。为了权衡成本和速度,计算机存储分了很多层次,扬长避短,有寄存器、L1 cache、L2 cache、L3 cache、主存(内存)和硬盘等。图1 展示了现代存储体系结构。 根据程序的空间局部性和时间局部性原理,缓存命中率可以达到 70~90% 。因此,增加缓存可以让整个存储系统的性能接近寄存器,并且每字节的成本都接近内存,甚至是磁盘。 所以缓存是存储体系结构的灵魂。 二、缓存原理2.1 缓存的工作原理cache line(缓存行)是缓存进行管理的最小存储单元,也叫缓存块,每个 cache line 包含 Flag、Tag 和 Data ,通常 Data 大小是 64 字节,但不同型号 CPU 的 Flag 和 Tag 可能不相同。从内存向缓存加载数据是按整个缓存行加载的,一个缓存行和一个相同大小的内存块对应。 图2中,缓存是按照矩阵方式排列(M × N),横向是组(Set),纵向是路(Way)。每一个元素是缓存行(cache line)。 那么给定一个虚拟地址 addr 如何在缓存中定位它呢?首先把它所在的组号找到,即: //右移6位是因为 Block Offset 占 addr 的低 6 位,Data 为 64 字节 Set Index = (addr >> 6) % M;然后遍历该组所有的路,找到 cache line 中的 Tag 与 addr 中 Tag 相等为止,所有路都没有匹配成功,那么缓存未命中。 整个缓存容量 = 组数 × 路数 × 缓存行大小我电脑的CPU信息: 我电脑的缓存信息: |
CopyRight 2018-2019 实验室设备网 版权所有 |