缓存分歧性疑问深度解析 CPU

  • 电脑网络维修
  • 2024-11-14

在现代多核处置器系统中,数据的分歧性和访问效率是确保高功能计算的关键要素之一。随着技术的开展和运行需求的增长,传统的单核处置架构曾经不可满足日益复杂的计算义务要求。因此,多核乃至少处置器系统的出现成为肯定趋向。但是,在这样的并行计算环境中,如何保障各个外围之间的数据同步与分歧成为了新的应战。

缓存分歧性疑问是多核系统中最为外围的疑问之一。当多个处置器外围共享同一块内存区域时,每个外围都或许领有该内存区域的正本。假设一个外围修正了其缓存中的数据,其余外围肯定能够及时感知这一变动,以坚持数据的分歧性。为了处置这个疑问,各种缓存分歧性协定应运而生。

本文将从最基本的总线嗅探技术入手,逐渐深化讨论几种干流的缓存分歧性协定,特意是MESI协定。咱们将详细引见这些协定的上班原理、优缺陷以及对系统功能的影响。宿愿经过本文的解说,读者能够对缓存分歧性疑问有一个片面的了解,并把握处置这一疑问的有效方法。

一、详解CPU体系结构和数据读写机制

1.CPU Cache Line是什么

每个CPU都会有自己的二级缓存,其中一级缓存分为数据缓存和指令缓存,这些缓存的数据都是从内存中读取的,而且每次都会加载一个cache line,而CPU Cache Line的物理结构大体如下图所示:

关于cache line的大小可以经常使用命令键入如下指令启动检查:

cat sysdevicessystemcpucpu0cacheindex0coherency_line_size

以笔者的主机为例,可以看到对应的输入结果为64:

同时对应的咱们给出CPU缓存与内存的体系结构图,其中依照数值减小访问速度越快,不同CPU外围都有独立的二级缓存,而三级缓存则是共享缓冲区,与物理内存空间间接打交道:

假设开发者能够很好的经常使用缓存技术,那么程序的功能就会很高,详细可以参照笔者之前写的这篇文章

计算机组成原理-基于计组CPU的基础常识启动代码调优:

2.CPU Cache和内存同步技术

(1) 写中转(Write Through)技术

写中转技术处置cache和内存同步疑问的模式很繁难,例如CPU1要操作变量i,先看看cache中有没有变量i,若有则间接操作cache中的值,而后立刻写回内存。 若变量i不在cache中,那么CPU就回去内存中加载这个变量到cache中启动操作,而后立刻写回内存中。 这样做的好处就是成功繁难,缺陷也很显著,由于每次都要将修正的数据立刻写回内存,这其中的写入开支关于须要高速运行的CPU是一种劫难:

(2) 回写技术(Write Back)

Write Back即一种提前写技术,为了防止上一种操作频繁写入内存的资源开支而提出的一种打算,它的上班原理是将数据加载到CPU cache并修正但并不写入内存,仅仅是将数据标志为dirty,由此缩小写入内存的次数,假设没有出现缓存置换,这些数据就不会被写入内存中。

举个例子,CPU cache加载data1到缓存中,并启动数次修正操作,随后cpu cache出现data10不在缓存中须要从内存中加载,又由于cpu cache空间无余,此时触发缓存置换算法便将最近起码经常使用且是dirty的数据写到内存中,并将data10加载到cpu cache里:

可以看出这种写法假设出如今毫秒级的断电场景或许存在数据失落疑问,又由于提前写的要素,对应的数据加载在读未命中的状况下存在两次操作:

这里咱们也补充一下几种比拟经常出现的缓存置换算法:

二、详解CPU缓存分歧性疑问

1.多外围缓存修正疑问

当一台计算机由多核CPU形成的时刻,每个CPU都从内存里加载相反的变量i(初值为0)启动累加操作,咱们试想这种状况:

而处置这个疑问咱们只需攻破以下两点疑问即可:

2.总线嗅探(Bus Snooping)

总线嗅探是处置写流传的处置打算,举个例子,当CPU1降级Cache中变量i的值时,就会通知其余外围变量i已被修正,当其余CPU发现自己Cache中也有这个值的时刻就会将CPU1中cache的结果降级到自己的cache中。 这种模式缺陷很显著,CPU肯定无时不刻监听变动,而且出现变动的数据自己还不肯定有,这样的作法参与了总线的压力:

而且也不能保障事务串行化,如下图,CPU-0加载了变量修正了值通知其余CPU这个值有变动了。 而CPU-1也改了i的值,依照反常的逻辑CPU-2、CPU-3的值应该是先变为100在变为200。 但是CPU-3先收到CPU-2的通知先改为200再收到CPU-0的通知变为100,这就造成的数据不分歧的疑问,即事务串行化失败:

3.MESI协定如何处置上述疑问

MESI是总线嗅探的改良版,他很好的处置了总线的带宽压力,以及很好的处置了数据分歧性疑问。 在引见MESI之前,咱们肯定了解以下MESI是什么。

好了引见完这几个形态之后,咱们无妨用一个例子过一下这个流程:

三、小结

自此,咱们从多核CPU体系结构所引发缓存分歧性疑问为入手,再从总线嗅探到MESI协定深度解说了缓存分歧性疑问的处置打算,宿愿对你有协助。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/4126.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号