计算机体系结构基础知识介绍之缓存性能的十大进阶优化之小型且简单的一级缓存(二)

news2024/9/21 10:37:39

缓存是一种高速的存储器,用于存放处理器经常访问的数据和指令。缓存的组织方式有多种,其中一种是按照不同的关联度(associativity)来划分。关联度表示一个缓存块(block)可以放在缓存中的位置数。关联度越高,缓存中可以容纳的不同块的数量越多,从而减少了冲突不命中(conflict miss)的概率。冲突不命中是指由于缓存中位置有限,导致两个或多个不同的块争夺同一个位置而发生的不命中。

优化一:小型且简单的一级缓存,减少命中时间和功耗

一级缓存的大小受到快速时钟周期和功率限制。 类似地,使用较低级别的关联性可以减少命中时间和功率,但这种权衡比涉及大小的权衡更复杂。

高速缓存命中的关键时序路径有三个步骤:使用地址的索引部分对标签存储器进行寻址、将读取的标签值与地址进行比较、以及设置多路复用器,这里是确保在高速缓存处于可用状态时选择正确的数据项。

关联较少的直接映射缓存可以将标签检查与数据传输重叠,有效减少命中时间。 此外,较低级别的关联性通常会降低功耗,因为必须访问的高速缓存行较少。

下图显示了缓存大小和关联性变化对命中时间的估计影响。 根据缓存大小,对于这些参数,模型表明直接映射的命中时间略快于两路组关联,并且两路组关联的速度是四路的 1.2 倍。

相对访问时间通常会随着缓存大小和关联性的增加而增加。 数据采用典型的嵌入式 SRAM 技术、单个存储体和 64 字节块。 关于缓存布局的假设以及互连延迟(取决于正在访问的缓存块的大小)与标签检查和多路复用的成本之间的复杂权衡偶尔会导致看似不太合理的结果,例如2-way64KB访问时间。 同样,随着缓存大小的增加,八路集关联性的结果会产生异常行为。 

在选择缓存大小和关联性时,能耗也是一个考虑因素,如下图所示。 当从直接映射到双向集关联时,较高关联性的能量成本范围从超过 2 倍到在 128 或 256 KiB 缓存中可以忽略不计。八路组关联高速缓存的巨大损失是由于并行读出八个标签和相应数据的成本造成的。

 另一种方法是按存储体组织高速缓存,以便访问仅激活高速缓存的一部分,即所需块所在的存储体。 多组缓存的主要用途是增加缓存的带宽。事实上多银行(multibanked)缓存的方法,它可以将缓存分成若干个部分(bank),每次访问只激活其中一个部分,从而节省能量并提高带宽。多核处理器中的L3缓存就是一种多银行缓存,它在逻辑上是统一的,但在物理上是分布的,每个核心只访问自己对应的L3缓存部分。

三个因素导致了一级缓存(L1 cache)使用更高的关联度。
第一个因素是许多处理器访问缓存需要至少2个时钟周期,所以增加关联度带来的命中时间(hit time)延长可能不是很重要。
第二个因素是为了避免TLB(转换后备缓冲器)成为关键路径,几乎所有的L1缓存都应该使用虚拟索引(virtually indexed),即用虚拟地址而不是物理地址来索引缓存。这样做会限制缓存的大小为页大小(page size)乘以关联度,因为只有页内的位才能用于索引。虚拟索引也可以解决在地址转换完成之前索引缓存的问题。
第三个因素是随着多线程(multithreading)的引入,冲突不命中可能会增加,所以更高的关联度更有吸引力。

这里简单介绍一下TLB:

TLB是translation lookaside buffer的简称,也就是地址转换缓存。它是一种存储虚拟地址和物理地址对应关系的高速缓存,用于加速内存访问。当处理器访问一个虚拟地址时,首先会在TLB中查找是否有相应的物理地址,如果有,就直接使用该物理地址访问内存,这叫做TLB命中(hit)。如果没有,就需要通过多级页表(page table)来查找物理地址,这叫做TLB不命中(miss)。这个过程比较耗时,所以TLB可以提高内存访问的效率。TLB通常位于处理器和缓存之间,或者缓存和主存之间,或者多级缓存的不同层次之间。

TLB成为关键路径的意思是,TLB的访问时间或者不命中率对内存访问的性能有很大的影响。如果TLB的访问时间太长,或者TLB不命中的概率太高,那么内存访问的效率就会降低,从而影响整个程序的执行速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/733391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态规划之62 不同路径(第4道)

题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…

网络的构成要素【图解TCP/IP(笔记七)】

文章目录 网络的构成要素通信媒介与数据链路网卡中继器网桥/2层交换机路由器/3层交换机4~7层交换机网关各种设备及其对应网络分层概览 网络的构成要素 通信媒介与数据链路 计算机之间通过电缆相互连接。电缆可以分为很多种,包括双绞线电缆、光纤电缆、同…

Vue3.3 编译宏

Vue 3.3新增了一些语法糖和宏&#xff0c;包括泛型组件、defineSlots、defineEmits、defineOptions defineProps 父子组件传参 <template><div><Child name"xiaoman"></Child></div> </template><script langts setup>…

简要介绍 | 两阶段点云目标检测:理论与实践

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对两阶段点云目标检测进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 两阶段点云目标检测&#xff1a;理论与实践 在这篇博客中&#xff0c;我们将探索两阶段点云目标检测的理论基础和实际应用…

【朱颜不曾改,芳菲万户香。AIGC人物图片创作---InsCode Stable Diffusion 美图活动一期】

【朱颜不曾改&#xff0c;芳菲万户香。AIGC人物图片创作 ---InsCode Stable Diffusion 美图活动一期】 本文目录&#xff1a; 一、 Stable Diffusion 模型在线使用 1.1、模板运行环境配置 1.2、运行InsCode平台的Stable Diffusion模板 二、Stable Diffusion主界面功能 2.…

【5G PHY】5G控制资源集CORESET介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

OpenCV 的安装与配置指南(Windows环境,Python语言)

OpenCV 的安装与配置指南&#xff08;Windows环境&#xff0c;Python语言&#xff09; 导语一、安装 Python 二、安装 OpenCV 库三、配置 OpenCV 环境变量四、验证 OpenCV 安装总结 导语 OpenCV 是一个功能强大的计算机视觉库&#xff0c;广泛应用于图像处理和计算机视觉领域。…

解决IDEA/WebStorm的Ctrl+Shift+F冲突失效

IDEA 的 CtrlShiftF 是全文或全项目搜索搜索快捷键&#xff0c;非常好用。 当这个快捷键偶而会失效时&#xff0c;基本可以确定是快捷键冲突了。 检查所有运行的软件的快捷键&#xff0c;若有设置为CtrlShiftF的则改掉。特别是输入法会占用较多的快捷键。 例如我这里的搜过输…

MySQL表单查询

根据题目完成下列要求 CREATE TABLE emp ( empno int(4) NOT NULL, ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, mgr int(4) NULL DEFAULT …

网络管理(包括网络管理的功能,管理系统及相关协议:SNMP,CMIS/CMIP)

1.OSI定义的网络管理 OSI定义的网络管理功能有以下5大类 (1)性能管理(PerformanceManagement) 在最少的网络资源和最小时延的前提下&#xff0c;网络能提供可靠、连续的通信能力。性能管理的功能有性能检测、性能分析、性能管理、性能控制。 (2)配置管理(ConfigurationManagem…

基于Arduino、BMP280、RC2202A开发的无线传感系统——测量温度和气压

核心器件 1. Arduino UNO 2. BMP280 可测量温度&#xff0c;气压(气压可换算为高度)。功耗为为微瓦级。 3. OLED 128x32 4. RC2202A 目前最低功耗的蓝牙模块&#xff08;功耗微瓦级&#xff09;&#xff0c;只支持从模式。 接线方式 代码 #include <Adafruit_SSD130…

outlook如何添加联系人群组?

如下图所示&#xff0c;新增联系人组 从通讯录选择组内用户 填写组名&#xff0c;点保存 以后在outlook写邮件时&#xff0c;就能联想使用你创建的群组了

RabbitMQ系列(27)--RabbitMQ使用Federation Exchange(联邦交换机)解决异地访问延迟问题

前言&#xff1a; (broker北京)、(broker深圳)彼此之间相距甚远&#xff0c;网络延迟是一个不得不面对的问题。有一个在北京的业务(Client北京&#xff09;需要连接(broker北京),向其中的交换器exchangeA发送消息&#xff0c;此时的网络延迟很小,(Client北京)可以迅速将消息发…

macOS访达当前目录打开终端

在windows 11中&#xff0c;可以在【此电脑】中任意文件夹中鼠标右键&#xff0c;可能直接在当前目录打开【终端】。用久也感觉还是很方便的。 与是在macOS中&#xff0c;我也想得到类似的功能。如何实现记录下来。 实战过程 我的实战环境是&#xff1a; 操作系统&#xff1a…

【数据结构常见七大排序(一)】—插入排序篇【直接插入排序】And【希尔排序】

目录 1.排序的概念及其运用 1.1排序的概念 1.2排序运用 1.3常见的七大排序 2.直接插入排序 2.1基本思想 2.2直接插入排序 2.3动图助解 2.4直接插入排序源码 2.5直接插入排序的特性总结 3.希尔排序( 缩小增量排序 ) 3.1希尔排序概念及思想 3.2希尔排序图解 3.3希尔…

用颜色表示数据的第三个维度

横纵坐标显示时间和空间后&#xff0c;第三个数据的特征有时就不好表示了&#xff0c;3d图有的时候看起来更复杂。对于某些情况&#xff0c;用颜色来表示更加简洁。 这里展示的效果图有点像烟花&#xff0c;所以选了这张&#xff0c;但是换其他的cmap才能使得数据展示更加直观 …

举例解释Lingo的条件执行@if语句

可变成本问题 某公司生产A、B、C共3种产品&#xff0c;售价分别是12元、7元和6元。生产1件这些产品的技术服务、直接劳动、材料的消耗以及这些资源的限量如表所示。 产品\项目 技术服务(h) 直接劳动(h) 材料(kg) 售价(&#xffe5;/件&#xff09; A 1 10 3 12 B 2…

Linux的

&#xff08;该图由AI绘制 关注我 学习AI画图&#xff09; 目录 网络配置 1、ifconfig查看网络信息 2、与网卡相关的配置文件 3、查询计算机的网络状态 4、systemctl启动/重启/停止网络 Linux远程连接与文件传输 1、为什么需要远程连接 2、SSH协议 3、sshd服务 4、…

SpringBoot——设置随机值测试

在测试中加入随机值 之前我们在测试的时候都是写死的数据&#xff0c;但是有时候我们的数据并不一定是已知的数据&#xff0c;有可能你不知道用户要输入什么数据&#xff0c;这时候我们可以用随机值的方式进行代码的测试。 设置随机值 设置随机值的方式非常简单&#xff0c;…

6-开发模型(5个)

目录 1.瀑布模型&#xff08;Waterfall Model&#xff09; 2.螺旋模型&#xff08;Spiral Model&#xff09; 3.增量模型&#xff08;Incremental Model&#xff09; 4.迭代模型&#xff08;Iterative Model&#xff09; PS&#xff1a;增量模型和迭代模型的区别 5.敏捷模…