返回首页  设为首页  加入收藏  今天是:
网站首页电脑主板电脑cpu电脑内存电脑硬盘电脑显卡电脑电源显示器电脑配件电脑维修
相关文章
 CPU缓存那些事儿
 惠普顶配超值游戏本!最强i9…
 龙芯中科:龙芯GPU的定位是为…
 五六千元白色海景房主机 i5 …
 5万元电脑主机配置单曝光 玩…
 2019台式游戏电脑推荐 九代i…
 微星发布暗黑骑士电脑主机5大…
 主机12万起推荐5套华硕TUF全…
 要上8G内存!iPhone 15全系曝…
 iPhone 15 Pro有望标配8GB运…
 双11前登场!小米14系列将首…
 13900KF支持什么内存频率
 华为mate50pro内存运行多大 …
 不知道如何自己更换台式机的…
 RTX 4080性能怎么样 4080显卡…
 RTX 4060是独立显卡吗 40系显…
 RTX 4060玩吃鸡怎么样 可以用…
 RTX 4060上市时间是什么时候…
 【安徽日报】“九章”科研实…
 CPU官方TDP数据只是逗你玩?…
 芯海科技新一代EC芯片CSCE20…
 计算机硬件工程:追求更高能…
 以存算一体架构创新迎AI 20时…
 steam的游戏怎么硬盘 将Stea…
 拥有超快的移动固态硬盘是什…
 致态SC001 XT固态硬盘评测 老…
 “老爷机”再战3年不是梦长江…
 老爷机再战3年不是梦长江存储…
 五项民生服务暗访结果发布 涉…
 华硕笔记本键盘失灵?快来了…
 曲面连屏科技感十足 奥迪Q6 …
 【open car】729元!小金刚显…
 首发5299元 微星新款32寸显示…
 深科达:公司平板显示模组生…
 深科达:公司平板显示模组生…
 飞腾走进校园:1万多名学生体…
 飞腾CPU助力全国数十所学校点…
 采用大小核的AMD CPU模具截图…
 半导体周期拐点到了?
 国产CPU里程碑!龙芯3A6000电…
 win11死机没有反应怎么办 wi…
 win7系统如何查看电脑的配置…
 轻薄办公本该选谁?酷睿i5-1…
 1个月完成1000家门店网络升级…
 豪沃驾驶模拟器陕汽驾驶模拟…
 GBT 411342-2021 英文版
 宁夏教育厅通报违规组织校外…
 经典福克斯碳罐电磁阀坏了表…
 荣耀Magic V2真机提前看 黑色…
 后摩尔时代芯片发展的四堵墙…
专题栏目
湖南视觉网络"模板城"--汇集CMS、EShop、BBS、BLOG等系统模板
您现在的位置: 电脑评测网 >> 电脑cpu >> 正文
高级搜索
CPU缓存那些事儿
作者:佚名 文章来源:本站原创 点击数: 更新时间:2023/9/12 16:20:22 | 【字体:

  儿女传奇旗袍高速缓存集成于CPU的内部,其是CPU可以高效运行的成分之一,本文围绕下面三个

  从1->

  4,速度越来越慢,价格越来越低,容量越来越大。这样的设计使得一台计算机的价格会处于一个合理的区间,使得计算机可以走进千家万户。

  由于硬盘的速度比内存访问慢,因此我们在开发应用软件时,经常会使用redis/memcached这样的组件来加快速度。

  通常cpu内有3级缓存,即L1、L2、L3缓存。其中L1缓存分为数据缓存和指令缓存,cpu先从L1缓存中获取指令和数据,如果L1缓存中不存在,那就从L2缓存中获取。每个cpu核心都拥有属于自己的L1缓存和L2缓存。如果数据不在L2缓存中,那就从L3缓存中获取。而L3缓存就是所有cpu核心共用的。如果数据也不在L3缓存中,那就从内存中获取了。当然,如果内存中也没有那就只能从硬盘中获取了。

  CPU Cache 在读取内存数据时,每次不会只读一个字或一个字节,而是一块块地读取,这每一小块数据也叫CPU 缓存行(CPU Cache Line)。这也是对局部性原理的运用,当一个指令或数据被拜访过之后,与它相邻地址的数据有很大概率也会被拜访,将更多或许被拜访的数据存入缓存,可以进步缓存命中率。

  cache line 又分为多种类型,分别为直接映射缓存,多路组相连缓存,全相连缓存。

  其思想是将一个内存地址划分为三块,分别是Tag, Index,Offset(这里的内存地址指的是虚拟内存)。将cacheline理解为一个数组,那么通过Index则是数组的下标,通过Index就可以获取对应的cache-line。再获取cache-line的数据后,获取其中的Tag值,将其与地址中的Tag值进行对比,如果相同,则代表该内存地址位于该cache line中,即cache命中了。最后根据Offset的值去data数组中获取对应的数据。整个流程大概如下图所示:

  从图中我们可以看出,0x00,0x40,0x80这三个地址,其地址中的index成分的值是相同的,因此将会被加载进同一个cache line。

  当我们访问0x00时,cache miss,于是从内存中加载到第0行cache line中。当访问0x40时,第0行cache line中的tag与地址中的tag成分不一致,因此又需要再次从内存中加载数据到第0行cache line中。最后再次访问0x00时,由于cache line中存放的是0x40地址的数据,因此cache再次miss。可以看出在这个过程中,cache并没有起什么作用,访问了相同的内存地址时,cache line并没有对应的内容,而都是从内存中进行加载。

  这种现象叫做cache颠簸(cache thrashing)。针对这个问题,引入多路组相连缓存。下面一节将讲解多路组相连缓存的工作原理。

  多路组相连缓存的原理相比于直接映射缓存复杂一些,这里将以两路组相连这种场景来进行讲解。

  所谓多路就是指原来根据虚拟的地址中的index可以唯一确定一个cache line,而现在根据index可以找到多行cache line。而两路的意思就是指通过index可以找到2个cache line。在找到这个两个cache line后,遍历这两个cache line,比较其中的tag值,如果相等则代表命中了。

  由于多路组相连的缓存需要进行多次tag的比较,对于比直接映射缓存,其硬件成本更高,因为为了提高效率,可能会需要进行并行比较,这就需要更复杂的硬件设计。

  以两路为例,通过index可以找到两个cache line,如果此时这两个cache line都是处于空闲状态,那么cache miss时可以选择其中一个cache line加载数据。如果两个cache line有一个处于空闲状态,可以选择空闲状态的cache line 加载数据。如果两个cache line都是有效的,那么则需要一定的淘汰算法,例如PLRU/NRU/fifo/round-robin等等。

  当我们访问0x00时,cache miss,于是从内存中加载到第0路的第0行cache line中。当访问0x40时,第0路第0行cache line中的tag与地址中的tag成分不一致,于是从内存中加载数据到第1路第0行cache line中。最后再次访问0x00时,此时会访问到第0路第0行的cache line中,因此cache就生效了。由此可以看出,由于多路组相连的缓存可以改善cache颠簸的问题。

  从多路组相连,我们了解到其可以降低cache颠簸的问题,并且路数量越多,降低cache颠簸的效果就越好。那么是不是可以这样设想,如果路数无限大,大到所有的cache line都在一个组内,是不是效果就最好?基于这样的思想,全相连缓存相应而生。

  下面还是以8个cache line的全相连缓存为例,假设现在有一个虚拟地址是0,其tag值为0x19,offset为4。依次遍历,直到遍历到第4行cache line时,tag匹配上。

  全连接缓存中所有的cache line都位于一个组(set)内,因此地址中将不会划出一部分作为index。在判断cache line是否命中时,需要遍历所有的cache line,将其与虚拟地址中的tag成分进行对比,如果相等,则意味着匹配上了。因此对于全连接缓存而言,任意地址的数据可以缓存在任意的cache line中,这可以避免缓存的颠簸,但是与此同时,硬件上的成本也是最高。

  看下面这个例子,对一个二维数组求和时,可以进行按行遍历和按列遍历,那么哪一种速度会比较快呢?

  原因就是按行遍历时, 在访问matrix[r][c]时,会将后面的一些元素一并加载到cache line中,那么后面访问matrix[r][c+1]和matrix[r][c+2]时就可以命中缓存,这样就可以极大的提高缓存访问的速度。

  而按列遍历时,访问完matrix[0][0]之后,下一个要访问的数据是matrix[1][0],不在高速缓存中,于是需要再次访问内存,这就使得程序的访问速度相较于按行缓存会慢很多。

电脑cpu录入:admin    责任编辑:admin 
  • 上一个电脑cpu:

  • 下一个电脑cpu: 没有了
  •  
     栏目文章
    普通电脑cpu CPU缓存那些事儿 (09-12)
    普通电脑cpu 惠普顶配超值游戏本!最强i9搭配满血RTX4060满… (09-12)
    普通电脑cpu 龙芯中科:龙芯GPU的定位是为了与CPU形成自我… (09-12)
    普通电脑cpu 飞腾走进校园:1万多名学生体验国产CPU的力量 (09-12)
    普通电脑cpu 飞腾CPU助力全国数十所学校点亮信息科技“开学… (09-12)
    普通电脑cpu 采用大小核的AMD CPU模具截图曝光:核心规模更… (09-12)
    普通电脑cpu 半导体周期拐点到了? (09-12)
    普通电脑cpu 国产CPU里程碑!龙芯3A6000电脑年内发布:性能… (09-12)
    普通电脑cpu 哪款商用笔记本电脑好?聪明人已经用上了联想… (09-11)
    普通电脑cpu 笔记本电脑推荐:商用笔记本就选联想昭阳X7 (09-11)
    普通电脑cpu 笔记本电脑升级固态硬盘需要注意什么? (09-11)
    普通电脑cpu Win11笔记本电脑连接不上wifi怎么办 Win11笔记… (09-11)
    普通电脑cpu 联想昭阳笔记本电脑好不好?昭阳X7凭实力回答 (09-11)
    普通电脑cpu 有限元分析(FEA)软件Abaqus下载及安装 (09-11)
    普通电脑cpu 机械革命新迷你主机预售!锐龙7-7840HS全套配… (09-11)
    普通电脑cpu 酷睿I7 12700H属于什么档次 酷睿I7 12700H可以… (09-11)
    普通电脑cpu 摩托罗拉Edge 40 Neo官宣:9月14日发布 3128元… (09-11)
    普通电脑cpu I5 12500H支持WIN10吗 酷睿I5 12500H是哪一年… (09-11)
    普通电脑cpu eCPU篇:2023年618台式电脑CPU一文搞定ԅ… (09-10)
    普通电脑cpu 2021还不会选择笔记本电脑CPU吗?这篇CPU的超… (09-10)