加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 创业 > 正文

无处不在的缓存,究竟有何作用?

发布时间:2020-09-08 17:39:14 所属栏目:创业 来源:网络整理
导读:副标题#e# 从廉价笔记本电脑到价值一百万美元的服务器,任何一台计算机中CPU都有一个叫做“缓存”的东西。当然缓存的级别往往有所不同。 缓存很重要,不然也不会无处不在。但是缓存到底有什么作用,为什么是不同级别的呢? 而且 12 路路组相连到底意味着什

另一个白色矩形表示 1 级指令高速缓存,大小也为 32 kB。顾名思义,该命令存储了各种命令,这些命令可以分解成较小的所谓的微操作(通常标记为μop),以供 ALU 执行。它们也有一个缓存,您可以将其归类为 0 级,因为它比 L1 缓存小(仅进行 1,500 次操作)并且更近。

您可能想知道为什么这些 SRAM 块这么小?为什么它们不是一兆字节大小?数据和指令高速缓存一起占用的芯片空间几乎与主要逻辑单元占用的空间相同,因此使其增大将增加芯片的整体尺寸。

无处不在的缓存,究竟有何作用?

但是它们仅保留几 kB 的主要原因是,随着内存容量的增大,查找和检索数据所需的时间也会增加。L1 高速缓存必须达到真正意义上的快,因此必须在大小和速度之间达成折衷 - 最多需要大约 5 个时钟周期(较长的浮点值)才能从该高速缓存中获取数据,以备使用。

但是,如果这是处理器内部唯一的缓存,则其性能将突然崩溃。这就是为什么它们都在内核中内置了另一级内存的原因:二级缓存。这是一个通用的存储块,保存着指令和数据。

它总是比级别 1 大很多:AMD Zen 2 处理器的最大容量为 512 kB,因此可以保持较低级别的缓存的良好供应。但是,这种额外的大小需要付出一定的代价,而与 1 级相比,从此缓存中查找和传输数据大约要花费两倍的时间。

追溯到最初的 Intel Pentium 时代,Level 2 高速缓存是一个单独的芯片,其位于小型插入式电路板上(例如RAMDIMM)或内置在主板中。最终它像奔腾 III 和 AMD K6-III 处理器一样,一直运用于 CPU 封装本身,直到最终被集成到 CPU 裸片中。

无处不在的缓存,究竟有何作用?

由于多核芯片的兴起,这项发展很快之后又有了另一个级别的缓存,以支持其他较低的级别。

上图是 Intel Kaby Lake 芯片,其左中间有 4 个内核(集成 GPU 占据了右侧一半的裸片)。每个内核都有其自己的“专用”组 1 级和 2 级缓存(白色和黄色高亮显示),但它们也带有第三组 SRAM 块。

3 级高速缓存即使直接围绕一个内核也可以与其他内核完全共享 - 每个都可以自由访问另一个 L3 高速缓存的内容。它 内存更大(在 2 到 32 MB 之间),但也慢得多,平均超过 30 个周期(尤其是在内核需要使用相距一定距离的缓存块中的数据时)。

无处不在的缓存,究竟有何作用?

在下面,我们可以看到 AMD Zen 2 架构中的单核:白色的 32 kB 1 级数据和指令缓存,黄色的 512 KB 2 级缓存和红色的 4 MB 巨大块 L3 缓存。

不只是一个数字:

高速缓存两个环节:其一是来提高性能通过加速向逻辑单元的数据传输,其二是保留常用指令和数据的副本。缓存中存储的信息分为两部分:数据本身以及它最初位于系统内存 / 存储中的位置。此地址称为缓存标签。

当 CPU 运行要从内存读取数据或向内存写入数据的操作时,它首先检查 1 级缓存中的变量。如果存在所需的数据(缓存命中),则几乎可以立即访问该数据。当所需标签不在最低缓存级别中时,即缓存未命中。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读