CPU缓存一致性:从理论到实战 您所在的位置:网站首页 cpu缓存大小重要吗知乎 CPU缓存一致性:从理论到实战

CPU缓存一致性:从理论到实战

2024-05-30 06:56| 来源: 网络整理| 查看: 265

本文转自:一、存储体系结构

速度快的存储硬件成本高、容量小,速度慢的成本低、容量大。为了权衡成本和速度,计算机存储分了很多层次,扬长避短,有寄存器L1 cacheL2 cacheL3 cache主存(内存)和硬盘等。图1 展示了现代存储体系结构。

图1

根据程序的空间局部性时间局部性原理,缓存命中率可以达到 70~90% 。因此,增加缓存可以让整个存储系统的性能接近寄存器,并且每字节的成本都接近内存,甚至是磁盘。

所以缓存是存储体系结构的灵魂。

二、缓存原理2.1 缓存的工作原理

cache line(缓存行)是缓存进行管理的最小存储单元,也叫缓存块,每个 cache line 包含 FlagTagData ,通常 Data 大小是 64 字节,但不同型号 CPU 的 Flag 和 Tag 可能不相同。从内存向缓存加载数据是按整个缓存行加载的,一个缓存行和一个相同大小的内存块对应。

图2

图2中,缓存是按照矩阵方式排列(M × N),横向是组(Set),纵向是路(Way)。每一个元素是缓存行(cache line)。

那么给定一个虚拟地址 addr 如何在缓存中定位它呢?首先把它所在的组号找到,即:

//右移6位是因为 Block Offset 占 addr 的低 6 位,Data 为 64 字节 Set Index = (addr >> 6) % M;

然后遍历该组所有的路,找到 cache line 中的 TagaddrTag 相等为止,所有路都没有匹配成功,那么缓存未命中。

整个缓存容量 = 组数 × 路数 × 缓存行大小

我电脑的CPU信息:

我电脑的缓存信息:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有