本期视频给大家科普一下这个 cpu 缓存,就是我们在购买 cpu 的时候,我们会看到一个什么三级缓存,呃,在樱桃的那个官网上可以看到那个二级缓存和三级缓存,但是一级缓存这个这个信息他是看不到的。那我们第一项目就是 cp 的缓存怎么看? 还是要记住一个工具,就是这个托盘工具箱 aw 四,这个我已经讲了很多次了, 他的功能咱们慢慢讲,然后进去以后他的一个主板直接点中央处理器,然后进去以后我们就在在这里可以看到 l 一代码还存三十号 k b l 一数据还存三十号 k b, 然后这个嘛,我们就默认他的一级还存,也就是 l 一还存就是三十二 k b l 二还存二五六 k b l 三还存六兆币。 然后呢我这个芯片是 i 五的四五九零,这个就是他三级缓存,一级、二级、三级的缓存的一个大小,看就是在这里看方法就是这个样子,然后在这里也可以看到他的全和技术频率和一个呃,背频, 呃, ok, 看,就是这么看。然后我们第二项嘛,就是 cpu 缓存的一个工作原理, cpu 缓存的一个工作原理嘛,他其实就是起了一个缓冲作用。电脑里面哦有两个东西其实就是起了一个缓冲作用。第一个嘛就是 cpu 的缓存, 他是呃在那个 cpu 和内存之间起一个缓冲作用。另外一个东西嘛,就是内存,内存其实也起一个那个缓冲作用,他是在 cpu 和硬盘之间起一个缓冲作用,然后他的那个工作原理。我打个比方给大家讲一 下,就假如说你在桌面上把一个英雄联盟双击了一下,然后这样就生成了一个命令给到 cpu, 然后 cpu 计算了一下,生成了一个指令,这个指令就给到了二一缓存,二一缓存计算了一下,然后看了一下,没有 啊,英雄英雄联盟相关的一个指令,他就把这个指令直接给到了 l 二环村, l 二环村看了一下,也没有相关的一个指令,他就把这个 啊指令就给到了 l 三缓存, l 换三缓存,同样的看一下没有英雄联盟的相关指令,他就给到了内存,内存看了一下,也是没有 啊,英雄联盟的相关指令,他就把这个直接给他来硬盘,硬盘一看,哎,我有英雄联盟的相关数据,然后把这个指令又返给了内存,内存再给了三级缓存,三级缓存再给了二级缓存,二级缓存再给了一级缓存。 一句话说再给他的 cpu cpu, 然后计算了一下,然后给到了显卡,显卡然后给到了显示器,然后显示器就显示出来了,你把英雄联盟打开了大概的作用,大概的那个工作原理,他就是这个样子, 这只是单和单线程的一个工作原理,多和多线程其实也一样的,只不过是 cpu 声称多个指令同时给到了 l 一缓存,二二二三缓存和二二三缓存,这样的话他那个速度会更快嘛,然后他的一个 cp 缓存的工作原理就是这个样子,他就是这个样子的。 第三个呢,就是 cpu 缓存大小对电脑使用的影响,你看啊, cpu 的缓存,它起的是 cpu 和内存之间的一个缓冲作用,这可以解决什么问题呢?它可以有效的解决一个内存内存延迟问题,因为它是起缓冲作用的。嗯,起那个 缓冲作用,那我们可以劳动大开一点吧。就是说假如说 cpu 的缓存已经达到了和内存差不多,那完全就可以把内存取代掉了,所以说他可以有效的解决一个内存延迟问题 啊。你,你想那个十几年前,十几年前我们一般用的内存是多大的?六十四兆的、幺八兆的,现在的,你看他 cpu 的三极缓存,你有,你看十二代的啊,三极缓存基本上都是十八兆、二十兆、三十兆 啊,估计过个几年嘛,啊,那个三级缓存到六十四涨到幺二八涨,估计也不奇怪。然后举个例子啊,举个例子嘛,就是现在比较火的十二代芯片 i 五的幺二四零零 f 和幺二四九零 f, 因为幺二四九零 f 是那个中国特供的,他这个和幺二四零零相比啊,就很很有比较性。第一个门 就是他们两个呢,全和基础频率都是三点零 g, 全和瑞平频率嘛,是幺四九零 f, 比幺四零零 f 多了零点两个 g。 然后他的三环、二环是一样的,他的三环是二十兆,幺二四零零 f 的三环是十八兆。就是说幺二四九零 f 的 啊,三级缓存比幺幺四零零 f 的三级缓存多了两兆,然后这两个相差那个价格好像就是一百块钱左右。那这个样子,对于我们假如说你要去买一个芯片,那这两个芯片怎么挑? 然后幺四九零 f 贵了一百块,他值不值得?贵了一百块。你如果是全和瑞平频率,呃,全和瑞平频率多了零点两个 g 的话,有没有花这一百块?有没有必要花这一百块钱的?我认为是没必要的,但是他三级缓存也多了,呃,两个账,这个就要, 这个就要衡量一下了,为什么呢?就要看你玩啥游戏,就是对内存延迟比较敏感的是什么啊?一般一般游戏嘛,就是网游,网游嘛,就是什么 cs, 过啊,罗啊罗啊,运气问题哈,绝对求生,这些都是对内个内存延迟比较敏感的网游。 然后呢?你如果说玩这种游戏,那肯定是选幺幺四九零 f 了,因为为什么呢?他的三级缓速更大呀,而且差一百块钱。瑞皮全和瑞皮评论也多了一点,两个 g, 所以说这个 这个就是按从那个 cp 缓存大小这样来考量的话,这个就是这个样子啊。 这个缓冲大小其实我们只是把它要了解一下,然后他的工作原理我们大概了解一下,因为我们也改变不了什么。就是这个对大家一个有 有意义的东西吗?就是你就比如说遇到幺幺四九零 f 和幺幺四九,呃,幺幺四零零 f 和幺幺四九零 f, 这个你大概可以知道,可以选一下他好在哪里,你最起码就明白了。 ok 啊,本期视频也很简单,就是给大家大概科普一下这个东西。讲到这里嘛,总归是要讲一下的, ok, 本期视频就到这里了。
粉丝1.5万获赞10.6万
cpu 三级缓存到底是啥?有什么作用?大缓存真的能提升游戏的性能吗? cpu 的缓存是为了解决 cpu 和内存之间速度不同步问题的一个临时储存器,不同的设备读写速度,处理能力都是不同的, 当处理任务不同步的时候,系统的整体效率就会很低。缓存就是为了解决这类问题应运而生的,越靠近 cpu 的层级,速度越快,容量越小。 cpu 要找数据,从 l e 开始找,如果没有依次往下找,最终有可能到内存, 需要把热点数据尽可能保留在更快的缓存中,提升整体效率。而 l 三是为内存服务的,所以是多核共享,而且容量也是最大的,能够放置重复利用高的数据也 也就越多,减少 cpu 频繁从内存中读取数据的次数,增加了 cpu 的利用率,从而实现游戏性能的提升。所以大的缓存对游戏来说是有正面影响的,特别是对于一些三 a 来说。注意不是全部。
本期视频我们来看一下 cpu 的三级缓存。先来简单介绍一下 cpu 的工作原理,这对我们理解缓存有很大的帮助。这是硬盘上面的一个可执行文件,它的具体内容是什么呢?如果使用一些特定的工具去查看,就会发现它是一些二进制的数据,这些二进制的数据你是完全看不懂的, 不过没关系,我也看不懂,俺也一样,但是 cpu 说他能看懂,在他眼里这些二金制代表着数据和指令。什么是数据和指令呢?我们举个简单的例子,例如这一个一加一的计算,这是一个非常简单的任务,我们知道这是一个加法, cpu 就会认为它是一个指令,而加数和被加数一就是 cpu 认为的数据。当我们点击了可执行文件,可执行文件就会变成一个进程实力,然后就会和 cpu 不断的产生数据交互, cpu 会不断的处理和反馈这些数据。如果把 cpu 看成一个人, 那么这些要处理的任务总需要拿到手上来做,只有放在手里的任务才是这个人可以直接处理的,手头上那点空间在 cpu 里面就叫做计存器。实际上硬盘的读写速度比较慢,通常只用于永久性数据的存储,而真正运行的进程数据都是完全放在内存里的,所以真实的情况应该是这样的, 先从硬盘里把文件交付给内存, cpu 指示和内存频繁的进行数据交互。我们今天要聊的是三 g 缓存, 所以我们先说一下缓存设计,其实缓存是一个非常强大的存在,在计算机世界中无处不在。来看一下 cpu 缓存的工作流程,我们知道 cpu 需要从内存中读取数据, 而这种操作往往是很频繁的,甚至很多数据都需要反复的读写到计存器中。现在通常的做法就是给 cpu 设置三个层级缓存,也就是图中的 l 一、 l 二、 l 三,越靠近 cpu 的层级,速度越快, 容量越小。工作流程很简单, cpu 先去找 l 一,如果 l 一没有需要的数据,再去找 l 二,一次找下去,最终可能找到内存,需要把热点数据,也就是使用次数多的数据, 尽可能的保留在速度快的缓存上。现在的 cpu 由于大部分是多核架构,所以缓存大概是这样的结构,可以理解为 led 是为计存器服务的, 所以离计算机最近,一定是每个核心独占的,而 l 三是为内存服务的,一定是多和共享的。而二的理解就有分歧了,不同的工程师有不同的看法,所以不同的芯片设计很可能不同,独享的缓存浪费空间,但是没有多个核心共同争抢的情况, 效率更高。共享的缓存由于存在多核化争抢,通常需要锁或串形化解决。介绍完了基础知识,我们来解释一下大家当前比较关心的几个三级缓存的问题,毕竟当前的 cpu 市场,三级缓存 是 cpu 场上宣传的主要卖点之一。我们知道 cpu 的缓存通常都分为三级,为什么我们只讨论第三级。通常 l 一的缓存特别小,例如幺三九零零 k 也只有每个核心八十 k 的容量,而 amd 的七九五零 x 就更小了,每个核心只有六十四 k。 而 l 二缓存的容量也不大, 幺三九零零 k 只有每个核心两兆,七九五零 x 每个核心只有一兆。由于 l 一和 l 二本身太小,所以厂商往往都已经不做宣传了。第二个就是针对指令数据的读写速度差异有多少,其实我们可以利用 iw 四的内存与缓存测试得到答案,这是一台主机的测试结果, 可以看到, l 三缓存相比滴滴二五六千的内存,延迟只是内存的五分之一,读写速度也比内存快了十几倍。当然了,不同的 cpu 和内存组合会有不同的结果。我这里的图片仅供参考, l 一和 l 三虽然也有很大的速度 差距,但是由于都足够快,差异基本可以忽略。第三个问题,三级缓存是越大越好吗?其实要明白一个道理,天下没有免费的午餐,如果三级缓存没有提高售价,没有占用 cp 内部寸土寸金的空间,那自然是越大越好。事实上,每个 cp 的设计 都是工程师寻求全局最优解的结果,没必要把三级缓存当成一个致命的武器,以为三级缓存大了,一切就好了。最后一个问题,也许是大多数人最关心的就是三级缓存增大真的可以提升游戏性能吗?注意,不是所有场景, 如果三 g 缓存增大,可以减少 cpu 频繁的从内存中读写数据的次数,也就意味着提升了 cpu 的利用率,增强了游戏性能。
好,三级缓存长什么样?看这张图大家都理解了,三级缓存长什么样呢?三级缓存长这样好,注意看,这是一颗 cpu, 一颗 cpu 就是你打开你的主机箱,找到你的主板上面,插在上面的就是一颗 cpu, 如果服务器的话呢,可以插好多好多颗 cpu, 你的机器往往只有一颗,但是呢,在这一颗里面呢,会有好多个盒,每一个盒可以单独跑一个县城。我画的呢,就是单颗 cpo 里面有两个盒。好,这是我们的内存,这是我们 cpo 的计算单元, 这是我们 cpu 的存储单元,在 cpu 每一个盒的内部有它最直接的一个缓存叫 l one, 有它第二层缓存叫 l two, 两个盒,单颗 cpu 里面共享一个 l three, 两颗 cpu, 多颗 cpu 共享我们的主内存。 当我们去访问数据的时候,是这么来访问的,我内存里面有个 x, 现在呢,我需要把它放到计算器里,让 cpu 去做计算,他首先会去二万里面找,有 x 吗?木有。再去第二层里找,有木有,依然木有,二三里有没有,还是木有好, 到内存里面去找,找到了 x, 往回返,这放一份,这放一份,这放一份,放到计算器开始做计算,下次再访问 x 呢?哎,本地就有了,再不需要去往内存 去访问了,这个就是缓存的用法。好的,现在会带来第二个问题,认真听啊,这个是大厂面试里头经常会被问到的问题了。第二个问题,第二个问题是,当 我们只访问一个 x, 比如说他是一个 inte 类型四个字节, inte 类型四个字节。然后呢,每次往这儿访问放一个 x, 再往这儿翻一个 x, 再往这儿 反应 x, 但是我拿到它了,这个当然没有问题,旁边还有一个 y, 我下次再仿 y 的时候,我是不是又得来一遍呀?又得一层防不了二层防不了,三层防不了到第四层,哎,读到 y 再发三次啊,回来把 y 往这放一份,哇,你这样的话,看上去效率就不如原来高了都, 因为你总是要走,走这么远的距离,中间还要耽误好多次时间。那你要这缓存还有啥用啊?所以我们有没有什么办法来改进它呢? 改进的办法呢?非常简单,就是当我们读到这个 x 的时候,顺带着把 x 旁边的数据一块的给他放进来。比如说我们读一个数组,往往对这个数组呢,就是要做循环使用。做循环,那做循环的话呢, 我每次只拿数字的一个元素,这个效率显然不高,当我读到他这个数字的时候,我就把这 x 周边的,哎,顺带他旁边的数据一块拿过来, x y z 啊,等等, x, y z, 等等,哎, x y z。 好,那当我们去访问这个缓存的时候,下次再访问 y 的时候,我从这是不是就直接就访问到了, 我还用跑这么远吗?就不需要了。好了,这个东西呢,被我们称之为一个叫缓存行,但是缓存用来管理数据的最基本的单位被称之为叫缓存行啊。这个概念记下来啊,对程序的局部性原理啊,八十 cpu 是只要他位于一颗里面,他就 把那八个盒共享一个二三啊。但是现在马上带来个新问题啊,大家认真思考啊,跟着我的思路走,你别断了,听我说,那这一行到底是大了好还是小了好?是大好还是小好?特别大个,还特别小一个。哪个好啊?我看有时候不大不小,大了好,小了好,哼哼哼。不是说越大越好, 也不是说越小越好,依然是大有大的优点,小有小的好处。大的优点是什么呀?装的数据多,命中率 就会变高,这个 x 旁边的数据在访问的时候,大概率在这里边待着,我总是能找到他的。但是大了的话呢,每一次访问的时候,这个缓存行啊,都得占的空间比较大,就意味着每次在中间缓存访问和存储的时候,效率就会比较低,每次更改呢,也的也是一样的, 越大你改起来呢,整个更新一下的速度就越慢好,大了不太好。那小了呢?小了就反过来,虽然说改起来,存起来速度都都非常快,但是呢, 你命中率不会太高,我只拿一个 s, 只拿一位过来才好,那速度最快了,可是我命中不了,我是不是每次都得拿呀?也不行,所以依然是一个妥协的结果。这个妥协的结, 结果是什么样子的呢?到目前为止,绝大多数的咱们的硬件结构上,对于缓存行所采用的是六十四个字节大小。来,这个数据请给我背过,他大厂会考, 我敲黑板,这个数据是六十四个字节,当然你说明年的硬点会不会变,后年的硬点会不会变?没准现在用的最多的就是六十四个字节。那有的同学说,那如果说每一个这样的话呢,我们每一行的数据啊, 呃,就是有六十四个字节,这么打啊,比方说这个虚线框,这是一行六十四个字节,这也是六十四个字节。那现在有一个很严重的问题,同学们往这看,现在我有一行数据里面有装了 x 和 y 两个值,然后呢,我左边有一个 cpu, 这个左边这个 cpu 啊,他只访问 x, 我再说一遍,只访问 x, 就说这个 c, 他紧紧去访问这个 x。 但是呢,由于刚才我们讲的这个缓存行的概念,他会把 x 所在的整个行,整个这一行的数据,哎,全给取过来,我只对你们班的某一个女生感兴趣,但是呢,请把你们班所有的女生全带过来,大概就是这个意思, 就是总而言之,言而总之,他会带着他旁边的姐姐妹妹一块过来,但是我弱水三千,我只取一瓢盐,所以呢,我只防这个 x。 但是很不幸的是呢,另外一颗 cpu, 他访问同一行里面的外,那现在就会产生呢很严重的问题,我不知道大家发现没有, 这个问题是这样这样子的啊,这样式的这颗 cpu 啊,仿这个 x, 这个 cpu 呢,改了这个 y, 但是呢,这这这个这个同一行数据在硬件内部有多份存在,我要不要 维护他们的已知性呢?我改了这个 x, 我要不要通知我们这个另外另外一颗 cpu 呢?我这边改了个 y, 要不要通知他呢?我这么说大家能理解吗?他一定是要维护的,对不对?一定要维护啊, 所以呢,大多数的硬件都有一种机制,这种机制呢,被我们称之为叫缓存移植性好。讲到这呢,你们网上去刷各种文章的时候,会刷到方方面面的关于缓存移植性的,读的最多的应该是 masi, 很多人呢把这个等同于缓存移植性。错了, 这个只是缓存一致性协议的一种,是英特尔 cpu 使用的。那么我再强调一遍,缓存一致性这个东西,不同的 cpu 它是不同的自己的协议,这个东西没有标准 经常使用的 cpu 的缓存一个性协议叫 mesi。 现代的 cpu 都有自己内部的机制 来保证缓存的一致性,那这个事情就比较好玩了。好,记住啊,任何 cpu 都有机制保证一致性。那我现在想问你,假如说我们有这样一种机制存在的话, 实际上我改了一个之后,我需要通知另外的人,这个需要需不需要消耗我们的 cq 的时间啊?需不需要消耗我们的效率啊?当然需要维护一致性,你也是需要付出效率的,也是需要你付出你自己的经历跟时间的。假如要是写程序的时候不用维护这个一致性的,效率显然就提高了。哦, 稍微复习一下,我们讲了缓存行的概念,缓存行多大来着?敲出来给我。缓存行有多大?六十四个字节。不要敲那个六十四个比特啊, 六十四个字节。咱们这的国九同学该该问了,老师你这是在讲扎吧吗?是在讲县城吗?好,往这看,严格讲,今天讲的东西呢,跟语言无关,只不过是 所有成员应该掌握的一点点新鲜的底层知识。大家往这里看,我们看一个小程序,这小程序长这样,另一个成量值十亿,他是一个循环值啊,不用去管他,我们有一个 class 叫 p, 里边有一个,他自己有个成员边量,这成员边量呢,是 long 类型。好,听我说 long 类型的边量长度是多大? 八个字节,这个事你一定要记住啊,八个字节,嗯啊,现成的故事。我打开一个 ppt 啊,记住这个事啊,叫八个字节。浪类型是八个字节。那我想问你啊,我那一句话就是一行数据是多少来着? 六十四个字节,那一行数据能装多少个浪类型啊?八八六十四,一共能装八份浪类型,浪一浪二,浪三浪四,一只浪八个就占满了一整行。然后呢,我定义了一个数组,这个数组呢,一共有两份 对象,二位零,二位一。那你可以想象一下,在内存之中啊,数组的存储是挨着存,哎,这是一个题对象,这是一个题对象,这是 这个题里面的 x 这是这个题里面的 x 啊。在主线城里面,我们干了一件什么事呢?起了两个县城,这是题一,这是题二。在题一里面,我们对数组的第一个 x 做出了十亿次的修改,在 t 二里边呢,我们对数组的第二个 x 做出了十一次的修改。然后来我们来计算一下呢,整个修改完成之后,我们大概花费了多少系统时间?先跑一下,看走你 好,大家记着这个数字,七百六十二个毫秒,再跑一下,走你,七百六十四个毫秒,大概就是这样子吧,七百多。然后我对程序呢做出一点简单的修改,我做这样的修改,我在 x 两边放一些没有意义的数据, p 一, prp 三, p 四, pg, 往那后边也放七个浪类型,同样的程序,哪别的地方哪都不要动,跑起来,两百四十一,再跑一遍,两百四十一,再跑一遍,两百四十一,再跑一遍, 我这个是真的稳定啊!两百四十一,好了,同学们来思考一下,看这里,我再把它,再把它注掉,再把它注掉,再跑一遍,马上七百六十二,大概速度拆了三到四倍,你们不是要调优吗?来琢磨一下,为什么?原因是什么?思考一下,好看这里,他这个原因是什么呀? 我觉得多少同学应该能想到了啊?原因就是,同学们,你们琢磨一下,在第一种情况下,就跟我们画这个图似的,看张图,在第一种存储的情况下,这个 x 和另外一个 x, 他们两个是挨着的,大概率是同一个火车行啊,这是大概 概率的时间在同一个缓存行里面。那呢?我的其中的一个县城猛改 x, 另外一个县城猛改 y, 它位于不同的盒里面,那么改完 x 就得通知一遍 y 啊,改从这边这边右边,改完又得从这边左边。十一次的时间总是要花费很多时间的,对不对?但是呢, 我们琢磨一下第二种的存储,第二种存储长这样,同学们,你们好好琢磨,假如我这个 x 是存在了这样的数据里面,那么在内存里面他是什么样子的呀?内存里面是不是这样子?我这个 x, 然后前面有一大堆 没有用的数据,后面有一大堆没有用的数据,这是第一个 x。 那第二个 x 呢?前面有一大堆没有用的数据,后面有一大堆没有用的数据。那这个没有用的数据是多大呀?五十六个字节,中间这个呢?是八个字节,这是五十六个,这是八个,这是五 六个。来,同学们,你们告诉我这两个 x 有没有可能位于统一号,甚至说这两个 x 有没有可能和其他任意数据位于统一号, 能不能你说我边上还有一个数据叫 y, 或者叫 z, 或者叫 a, 或者叫 b, 我管他在哪儿。这俩哥们儿能过一同一行吗?绝对不可能,因为每一行数据是多大?最大就是六十四。所以呢, 我把它给隔离了,你发现没有?给隔离出来一个单独的缓存号,他无论怎么选,他都位于自己单独的一号。那就意味着这个 x 在这, 这个 s 在这这边呢,我猛改这个,这边我猛改这个,但是呢,我两边没有共享的数据,我有必要通知对方吗?我是不是就把通知的时间给省了?这就叫缓存方对齐啊,明白了是吧?对, 当时我同学说了,老师你这个有点扯淡,这没,没事写程序,有人,有人这么写吗?好,如果你打开这里可以一点七的代码, 一点七代码里面的有一个叫 lbq 的,我同学说,老师能不能帮我读一读这个一点七代码,我懒得帮你找了。但是呢,开元领域有一个著名的开元的框架, 他的名字呢叫做 this rapture。 这我不知道大家有没有听说过,这个是英国的一家做股票交易的啊,股票和期货交易的一个机构开发的一个开元框架,这个开元框架呢叫 dish rapture, 翻译过来叫闪电,他基本上是到目前为止单击最快的 mq, 用来做那个中间电,呃,中间消息存储的处理,这种交易消息的呃速度最快。他有一个非常显著的特点,大家可能都我不知道,大家了不了解啊。就是 message q 存消息用的,他一定有个容器往里头存消息嘛。这个容器呢,要么大概率是数组,要么呢就是链表。呃,其他的数据结构,要么就是哈哈系表。嗯, 其他的呢?其实很少哎,这哥们采用的呢,也是数组。如果你采用普通数组的话,大概是有两个指针,一个头指针,一个尾指针。哎,就是说我头指针在这里,我尾指针,哎,我存到哪了?下一个数据呢?往后再挪一格,两个指针。但这哥们异想天开,这哥们采用的是一个 环形缓冲区,简单说也是数组,只不过这个数组呢,是首尾相连。那同学们,你们在脑子里简单过一遍啊。
cpu 缓存是不是越大越好?在 cpu 参数中,除了核心线上和各种频率外,还会看到缓存参数有九 mb 的,也有十六 mb 的,甚至还有七十二 mb 以及更大的。 cpu 缓存分为三级,一级缓存二级缓存以及三级缓存。一般来讲,英特尔和 amd 的一二级缓存能量都是差不多, 三级缓存差别特别大,但并不是三级缓存越大, cp 的性能就越强,因为三级缓存容量依托于价格和工艺,如果是与价格工业搭配升级的三级缓存容量越大,性能就会越高。 比如 amg 的三代入容依靠的是最新架构和七纳米的工艺,带来超大容量的三级缓冲,解决了前两代的延迟问题,实际效果就是三代入容整体游戏表现的提升。
本期视频我们来聊一下 cpu 的三级缓存。先来简单的介绍一下 cpu 的工作原理,这对我们理解缓存有很大的帮助。这是一个词盘上的可执行文件,它的具体内容是什么呢?如果使用一些工具去查看,会发现它就是一些二进制数据, 这些二进制数据你是完全看不懂的,但是没关系,我也看不懂,然而 cpu 说他能看懂,在他眼里这些二进制代表着指令和数据。 什么是指令和数据呢?我们举个简单的例子,例如这个一加二的计算,这是一个非常简单的任务,我们知道这是一个加法, cpu 认为它就是一个指令,而这里的背加数一和加数二就是 cpu 认为的数据。 当我们点击了可执行文件,可执行文件会运行起来,变成一个进程实力,然后就会和 cpu 不断的产生数据交互, cpu 会不断 处理和反馈这些数据。如果把 cpu 看成一个人,那么要处理这些任务总需要拿到手上来做,只有放在手里的任务才是这个人直接可以处理的。手头上那点空间在 cpu 里就叫计算器。实际上磁盘读写相对比较慢,通常只用于永久数据的存储, 而真正运行的进程数据都是完全放到内存里的,所以真实的情况应该是这样的, cpu 只是和内存进行频繁的数据交互,好像还少点东西。因为计算机是为人服务的,所以需要建立与人的沟通途径,所以我们加上输入输出。再看一下这张图,这就是冯诺易曼的计算机体系结构了,是不是很好理解。 我们今天要聊的是三级缓存,所以我们先说一下缓存设计。其实缓存是一个非常强大的存在,在计算机世界无处不在。关于缓存,我们必 必须清楚这三个事实。首先,缓存存在的意义就是解决速度不同步的问题,不同的设备读写速度、处理能力都是不同的,当处理任务不同步的时候,系统的整体效率就会很低, 缓存就是为了解决这类问题应运而生的。第二点,缓存是计算机界最常见的优化手段之一,随处可见。例如电商的促销活动,如何应对海量的并发和交易量,其实也只要在每一层都应用好缓存和负载均衡技术,即可解决大部分问题。 最后一点,缓存的设计是否成功,命中率是最重要的指标,如果命中率过低,意味着缓存并没有起到应有的作用。 来看一下 cpu 中缓存的工作流程,我们知道 cpu 要从内存中读取数据,但是这种操作往往是很频繁的,甚至很多数据要反复的读写到计存器中。现在通常的做法就是为 cpu 设置 三个层级的缓存,也就是图中的 l 一、 l 二、 l 三,越靠近 cpu 的层级,速度越快,容量越小。工作流程很简单, cpu 先找 l 一,如果未能命中,去找 l 二,依次找下去,最终可能到内存,需要把热点数据尽可能保留在更快的缓存中,提升整体效率。 现在的 cpu 由于大部分值多合架构,所以缓存上大致是这样的结构,可以理解成 l 一是为姬存器服务的,所以离姬存器最近,一定是每个核心独占的, 而 l 三是为内存服务的,所以一定是多和共享的。 l 二的理解就有分歧了,不同的工程师有不同的看法,所以不同的芯片设计很可能不同。独享的缓存浪费空间,但是没有多个核心同时争抢的情况,所以效率更高。共享的缓存由于存在多和争抢,通常 需要锁或者串型化来解决,效率不如独享。介绍完了基础知识,我们来解释一下当前大家比较关心的三级缓存的几个问题。 毕竟当前的 cpu 市场,三级缓存是 cpu 厂商重点宣传的卖点之一。第一个问题就是我们知道缓存是分三级的,为什么都只讨论第三级? 通常 led 缓存特别小,例如幺三九零零 k 也只有每个核心八十 k 的容量,而 amd 的七九五零 x 就更小了,每个核心只有六十四 k, 而 l 二的容量也不大,幺三九零零 k 是每个核心两兆,七九五零 x 是每个核心一兆。由于 l 一和 l 二本身太小,所以往往厂商已经不做宣传,导致消费者们也逐步淡化他们。 第二个问题就是针对指定数据的读写速度差异有多少。其实我们可以利用爱达六十四的内存与缓存测试得到答案, 这是我当前主机的测试结果,可以得到我们想了解的所有数据。可以看到 l 三缓存相比 ddr 五六千的内存,延迟只是内存的五分之一, 而且速度也比内存快了十几倍。当然了,不同的 cpu 和内存的组合会有不同的结果,我这里的图片仅供参考。 l 一和 l 三虽然也有较大的速度差距,但由于都足够快,差异基本可以忽略。 第三个问题,三级缓存是越大越好吗?其实要明白一个道理,天下没有免费的午餐,如果三级缓存没有提高售价,没有占用 cpu 内部寸土寸金的空间,那自然是越大越好。实际上,每个 cpu 的设计都是工程师寻求全局最优解的结果, 没必要把三极缓存当成致命武器,以为只要三极缓存大了,一切都好了。最后一个问题,也许是很多人最关心的就是,三极缓存增大真的可以提升游戏性能吗?答案是,在某些场景下 确实可以提升游戏性能的。注意,不是所有场景,如果把这个过程利比成厨师做菜,厨师是 cpu, 而食材就是指定数据。如果我们发现厨师的效率非常高,但是食材却准备的很慢,准备一个大的区域用来堆放准备好的食材,那么厨师就会更忙碌。 厨师不需要频繁的等待食材准备的过程,整体效率自然提高了。回到 cpu, 如果三级缓存的增大,可以减少 cpu 频繁从内存中读写数据的次数,也就意味着提升了 cpu 的利用率,增强了游戏性能。看一下这个游戏画面的对比,重点观察五八零零 x 和五八零零 x 三 d 的区别, 会发现五八零零 x 三 d 的游戏真率和 cpu 使用率平均都会比五八零零 x 高一些,这就是增大三级缓存的结果。感谢观赏,欢迎留言讨论!
缓存大小对 cpu 有何影响?在购买笔记本电脑的时候呢,除了锐屏、核心等常见的参数,我们也要关注 cpu 的缓存。 但所谓的 cpu 缓存到底是什么呢?它对于电脑的性能的影响又有多大呢? cpu 的缓存呢,是离 cpu 最近的储存器之一,其作为 cpu 调取数据的第一选择,提高了 cpu 的访问内存的效率。 其分为三级, l 一、 l 二和 l 三,缓存的大小呢,也随之的是递增的。那么, cpu 的缓存大小 对电脑性能的影响究竟有多大呢?我们可以举个例子来说明啊。 cpu 的缓存呢,就像我们出门时随身的手提包或者是酷似的口袋,容量是很小的, 但往往呢,是可以以最快取出物品。同时呢,也是我们第一想到要去翻找的储存空间,当口袋或者是手提包内找不到了,才去背包和行李箱内查找,而背包或行李箱呢,则更像是内存或者是硬盘。当缓存越大,所以这样能缓存 更多的数据,从而提高系统的处理速度。反之啊,如果缓存过小,则会影响程序的运行的效率,导致电脑卡顿或者出现其他的问题。所以啊,在选购电脑的时候呢,适当的选择合适的 cpu 缓存大小是非常重要的。
怎么查看电脑 cpu 的相关参数?你新买的笔记本如何查阅 cpu 的相关参数呢?你可以通过以下的步骤来查看你电脑 cpu 的相关参数, 比如说你先按一下 ctrl 加 shift 加 esc 键,打开任务管理器,在性能选项卡中呢,可以看到当前 cpu 的利用率以及 cpu 各核心的利用率,主屏、三级缓存等参数。 如果想查看更详细的 cpu 的参数信息呢,可以在任务管理器中选择性能选项卡下的 cpu 选择卡,并点击资源监视器按钮。 这里啊,不仅能查看 cpu 的相关参数信息,还可以查阅内存、网络状况等信息。希望今天的分享呢,对你了解自己的电脑参数有所帮助。
看完这期视频,小白也能配置出高性能电脑。电脑一共就八大硬件,这些硬件究竟该如何选购呢?首先是 cpu 的挑选。 cpu 是整个电脑的核心,选购不好会直接影响到电脑的性能。在 cpu 内部有一块小芯片,根据 cpu 的不同, 芯片会被分成数量不等的核心。核心数是挑选 cpu 最重要的指标,核心数越多, cpu 的处理能力越强。同时为了提高 cpu 的效率, cpu 还内置了三级高速缓存。当 cpu 读取数据时,首先会从一级缓存读取,如果读取不到, 会从二级缓存读取。如果二级缓存也读取不到,会从三级缓存读取。三级缓存再读取不到,才会去内存里面读取。所以缓存也是挑选 cpu 的一个重要指标。如果是 相同架构、相同工艺的 cpu, 三级缓存容量大的性能越强。除了核心和缓存外,挑选 cpu 的另外一个重要指标就是主频。主频是 cpu 的工作频率,一般说来,一个时钟周期完成的指令数是固定的, 所以主屏越高, cpu 的速度就越快。接下来是主板,主板是一个巨大的印刷电路板,电路板上安装着各种微芯片和接口、插槽以及组件,几乎所有电脑的硬件设备都连接在主板上。主板上最昂贵的就是芯片组, 他直接连接到 cpu, 并管理着所有连接到主板的硬件。所以芯片组是挑选主板的一个重要指标。根据需求和预算,如果需要进行高性能的游戏或者图形处理工作,选择性能较高的芯片组。如果是办公或者普通家庭使用, 选择性价比高的芯片组。如果你有扩展硬件的需求,在购买主板时需要注意扩展插槽的数量和类型,以满足自己的扩展需求。需要注意的是,目前市面的 cpu 和芯片组一般都是 intel 和 amd 的,并且 cpu 的安装插槽不一致。所以在购买主板之前, 需要先确定 cpu 属于哪个厂家,能否与芯片组兼容。对于小白来说,如果实在弄不清楚这些,那就买品牌主板。接下来是内存, 内存是配置电脑时必不可少的部件,内存的运行速度非常快, cpu 在读取数据时,内存会先从硬盘读取数据,然后 cpu 再从内存中读取数据。所以内存在很大程度上也决定了电脑的性能。选购内存时,首先考虑的就是内存容量,容量越 大,一次性传输的数据就越多,然后就是内存的颗粒,颗粒越好,内存的工作频率就越高,传输速率也就越快。内存颗粒的好坏与生产厂家有很大的关系,尽量选择大厂生产的。 除了容量和颗粒,内存通道和代数也是一个重要指标。内存通道越多,可以提供的代宽越大,数据传输速度就越快。内存目前最新一代是 dd 二五, 代数越新,越能彻底的发挥处理器的性能。除了内存,硬盘也是电脑重要的存储设备, 硬盘该如何选购呢?回答这个问题前,如果你对这种科普动画感兴趣,可以下载左下角的抖音精选 app 进行学习,里面的合集广场都是三分钟以上的优质视频,感兴趣的可以下载一下。言归正传,硬盘主要分为机械硬盘 和固态硬盘两种,机械硬盘价格低廉,容量大,数据不易丢失,它的内部有一块旋转的磁盘,磁盘上的磁性材料会根据磁场的方向进行磁化,从而存储数据,但是这个过程需要磁盘不停的旋转, 所以机械硬盘的读写速度跟转速有很大关系,转速越高,读写速度越快,但是价格也越高。固态硬盘内部是一个三 d 闪存单元阵列,单元阵列由一个个存储单元构成,存储单元通过操作电子来存储数据,所以读写速度要比机械硬盘快很多倍。 选择固态硬盘时,首先要考虑的就是容量,容量越大,价格越高。其次是读写速度,读写速度的大小取决于固态硬盘的主控芯片和闪存颗粒的品质,一般选择主流厂商不会错, 但是相应的价格也会越高。最后是固态硬盘的接口,接口类型主要有 sata 和按摩点二等。选购 m 点二接口的硬盘在读写速度和体积方面有很大的优势。选购固态硬盘前,必须先确定主板上支持的硬盘接口类型, 否则硬盘无法安装。接下来是电脑另外一个非常重要的部件,那就是显卡。我们能够在显示屏看到画面就依赖于显卡。显卡分为集成显卡和独立显卡, 现在的集成显卡一般都集成在 cpu 内部或者主板上,如果你对画质和性能要求并不高,极显就够用了。 如果你是高端游戏玩家,对显卡性能有很高要求,可以选择独立显卡。首先要关注的就是显卡的核心,核心的频率越高,运行速度越快,核心的 数量越多,并行处理任务的能力也越强。其次是显存容量,显存是显卡中存储图像数据的内存,显存容量越大,显卡处理大型游戏和图形任务的性能越高,当然,越高端的显卡 价格也越昂贵。接下来要说到的另外一个重要硬件就是电源。由于电脑各个硬件使用的电压并不相同,电源很大一部分工作就是调整电压并产生各种输出电压,然后将匹配的工作电压提供给电脑中所有不同的硬件。所以选购电源时 最重要的指标就是电源的功率。功率计算有个公式, cpu 功耗加上显卡功耗加上一百,再乘以一点二,就大概能计算出电脑的功耗,然后根据功耗选择匹配的电源功率就可以了。电脑的各个硬件都会消耗电量,消 耗电量就会产生热量,尤其是 cpu。 cpu 在工作时消耗的功率相当于大约十六个 led 灯泡,温度能达到一百多度,因此会产生大量的热量,这就需要用到 cpu 散热器。 散热器分为风冷和水冷,风冷是由风扇吹出的气流将其片上的热量带走,借此降低 cpu 温度。而水冷则是用一个泵让液体循环通过管道进入散热器,然后通过散热器的散热片将热量散发出去。 如果对 cpu 的冷却要求比较高,可以选择水冷散热器,不过水冷散热器价格相对较高。上面讲到的所有硬件都需要装到一个地方,那就是机箱。选购机箱时,需要根据主板、电源、显卡等硬件的尺寸选择合适的机箱尺寸,确定合适尺寸后,再 根据个人爱好选择喜欢的外观和材质。最后,对于小白来说,只需记住一点,根据自己的需求,只选对的,不选贵的。
如何查看电脑中央处理器的参数?中央处理器简称 cpu, 它是整个计算机运作的核心部件, 计算机处理速度很大程度上取决于中央处理器的性能。中央处理器的主要性能指标有以下几个,集核心数、始终频率、自长和缓存容量。 那么我们在哪查看电脑中央处理器的性能呢?第一步,找到左上方的此电脑。第二步,点击鼠标右键,随后选择属性。 在这个界面我们就可以查看电脑的处理器了。当然,我们也可以看到关于这台电脑的其他信。 好了,如果视频对你有帮助,麻烦留下你的鼓励,你的鼓励就是我前进的动力。
说到三级缓存这个参数,相信很多小伙伴都知之甚少, cpu 的缓存就是为了解决 cpu 和内存之间速度不同步问题的一个临时存储器,它的作用就是当处理器发出内存访问请求时,会先查看缓存中是否有请求数据, 如果存在则不必访问内存,直接返回该数据。缓存分为三个层级,一级、二级、三级。其中一级和二级是核心独占的,三级缓存是多核心共享的。当 cpu 要读取一个数据时,首先要从一级缓存查找,命中则返回落位命中,再从二级缓存中查找, 若还是没有,则从三级缓存查找,若还是没有,就需要从内存中查找。三级缓存在 cpu 核心外部,所以 cpu 核心共享同一个三级缓存,存储空间达到 mb 级别。比如 amd 的二二五五六零零五七零零叉七六零零,这三个 处理器都拥有三十二兆的三级缓存,而号称最强游戏 cpu 的七八零零叉三 d 的三级缓存更是达到了惊人的九十六兆。三级缓存容量越大,能够放置重复利用高的数据也就越多, 从内存中读取数据的频率也就越小, cpu 的利用率也就越高,这就提升了游戏的性能,尤其玩三 a 大作。所以理论上是三级缓存越大,游戏性能也就越高。你用的是什么处理器呢?
就在前段时间, amd 为了夺回最强游戏 cpu 的荣誉,推出了两款使用三 tv 开始技术的认识处理器,分别是七九五零叉三 d 和七九零零叉三 d, 而最受大家瞩目的七八零零叉三 damd 还得再憋一会。这一代叉三 d 版本认识和普通认识的区别也主要在三 g 缓存的大小上。以七九五零叉为例, 普通版本三阶缓存容量为六十四兆,而七九五零叉三 d 的三阶缓存容量则是直接翻了个倍,达到了恐怖的一百二十八兆。 叉三 t 版本的锐龙出到了第二代,相信大家也逐渐认识到了三级缓存对游戏的重要性,那么本期节目就来和大家一起简单测试一下三级缓存容量对游戏增速到底有多大影响。不过按照我们这个频道的尿性, 是肯定测不起最新的七九五零叉三 d 的,就连去年的五八零零叉三 d, 那也是只可远观不可亵玩。迫于无奈,咱们的测试对象就只能在老平台里选了。如果要测试三级缓存 容量差异所带来的游戏性能差异,那就得让三级缓存成为唯一变量。说简单点,就是得保证参与测试的 cpu 除了三级缓存大小不一样以外,哪哪都一样,核心数量、架构、频率、制成等都要尽可能保持一致。 思索良久,我还是找到了两颗既便宜又满足要求的 cpu, 二十块的一五幺六二零 v 三和三十八块的一五二六三七 v 三,这两者都为二十二纳米工艺 highswill 架构,适合八线城。 主要区别就是前者三级缓存容量为十兆,后者为十五兆。如果说一五幺六二零 v 三是巧克力味的达变的话,那一五二六三七 v 三就是达变味的巧克力。这两坨放一块,一般人还真分辨不出来哪个能吃哪个不能吃。 不仅一般人分辨不出来,就连 c b u z 也是一个头两个大。画面中的 c b u z 就直接把这块一五二六三七 v 三识别成了一个十五兆三缓的一五幺六二零 v 三。美中不足的是,这两者除了 三 g 缓存容量有区别外,频率上也有点细微差异。幺六二零 v 三最高锐屏为三点六 g, 比二六三七 v 三的三点七 g 低的零点一,好在他俩基础频率都为三点五 g, 我们只需要进入主板 bios 界面关闭锐屏后,就可以让两颗 cpu 全程跑在三点五 g 的基础频率上。 通过这最后一番操作,这俩 cpu 的区别就真的只剩三 g 缓存容量了,完美符合本次验证需求,对于整个测试平台来说,也应保证 cpu 是唯一变量。所以主板统一采用的这块关闭锐屏的双维叉九九再版内存为两根英瑞达三二零零八 g, 当然, 搭配这俩 c p u 都只能跑到二幺三三频率。散热器随便摸了个玄冰四百,测试硬盘为吸速 s n 五五零五百 g, 电源使用了一块华硕的英七百五十瓦全模组电源。为了保证显卡在测试过程中不给 c p u 拖后腿,这次的显卡采用了一张万利 r t x 三零七零,因为这期节目 是库存,不出意料的话,这块三零七零应该已经在上一期人人有机用番外篇中抽给大家了,首先我们来简单跑个分,可以看到不论是娱乐大师还是 cpu z 比瑞平后的一五幺六二零 v 三和一五二六三七 v 三的跑分成绩几乎都在同一水平线上,并没有因为三级缓存差了一半而导致跑分有较大差距。那么实际游戏中的表现又如何呢? 第一个测试项目还是英雄联盟至狗熊模拟器,在一零八零 p 全最高化之下,一五二六三七 v 三凭借多出来的五兆三级缓存比一五幺六二零 v 三高出时针左右,领先幅度超过百分之十。 然后是刀头二画质为一零八零 p 预设最高,战斗场景下和撸啊撸表现差不多,一五二六三七悲伤同样领先百分之十左右, 有力气,我真的羡慕我自己。 接下来是大家印象里主要是频率不怎么吃三缓的 cs, go 一零八零 pd 画质下跑创意工坊增速测试,一五二六三七 v 三的成绩还是要高出四十帧,隐形幅度也超过了百分之十。看来 cs, go 这个游戏对于三七缓存的敏感程度也并不比前面两兄弟低, 到了吃鸡这里两者表现就差不多了,不过大部分场景下,一五二六三七 v 三还是能高出个四五针,偶尔也能拉开接近时针的差距。 然后我们再来看看更次显卡的单机大作地平线五一零八零 p 预设最高画质跑游戏自带的基准测试,两者差距进一步变小,最终成绩仅相差五帧, 到了荒野达标科二这里,一零八零 p 预设平衡党画质下,一五二六三七 v 三仅领先四帧, 最后再来跑一下对 cpu 也压力巨大的赛博朋克二零七七 一零八零 p 预测最高画质不开光锥,也不开 fsr 和 dlss。 在测试中,两颗 cpu 都几乎全程满载,最终成绩也比较出乎意料。拥有更多三级缓存的一五二六三七 v 三,不管是平均帧还是最大最小帧, 都落后于一五幺六二零 v 三,重复测试了好几次,成绩都差不多。可能在 cpu 满载运行的情况下,三级缓存所提供的帮助就比较有限了,甚至在某些应用里还会出现开倒车的情况。 最后总结一下,即使是对于比较老旧的平台来说,三级缓存的大小对于游戏的影响也是不容忽视的,特别是在撸啊撸、 cs、 go 和 dota 二中,这五兆三级缓存都带来了百分之十以上的增速提升。但是对于单机大作来说,三级缓存可能就没那么重要了,要 要么提升很小,要么就根本没有提升。当然这也有可能是 cpu 性能已经达到了瓶颈的原因,后面有机会的话,我们再使用更高端的 cpu 进行一次补充测试。
怎么这个针是这么高的?你告诉我是不是三零六零泰?是不是这针是太小了, 三级缓存的作用就出来了。三级缓存是吧?对,三级缓存为什么?跟三级缓存有什么关系?因为地图小了加载那个硬盘。那个三级缓存没有显卡呀。好不容易说错内存了。 cpu cpu 啊哈哈哈哈。牛牛牛牛 什么画质看一下省。他们说低画质高高低低高三高三高画质,然后第二力水手性能模式 okoko。 牛逼。可以,能不能找个十个人对团的嘛?对砍。
cpu 上的这个参数你注意到了吗?缓存拿这么大点东西,他有什么用啊,尤其这个一级和二级缓存,那小的还不如你女朋友一张自拍啊。不对啊,你没有女朋友啊。现在主流装机固态硬盘是主硬盘速度快,但是固态硬盘的速度和内存条相比还是差太远了, 而内存调和的速度和 cpu 缓存比,那就差了很远。内存到 cpu 核心需要一百纳秒,而一级缓存只需要一纳秒,二 二级缓存只需要四纳秒,三级缓存只需要十二纳秒。这个地方我以手工梗做个比喻啊,那脑梗今天又要搞发明创造啊,需要用到很多工具, 他的背带裤,工装裤的口袋里面就可以装一些是吧?螺丝刀啊,什么镊子啊这些这些小东西,这些就是一级缓存离老总最近的,而工作台上的这些工具就是二 二级缓存距离更远一些,那三级缓存就是他墙上的什么扳手啊这些东西啊,那就更远了。这样你就好理解吧,以此类推,你都可以推到。硬盘是个大仓库,找东西需要花费更多的时间,所以你会发现,离脑梗越近的可以容量的容量就越小,但是优点是他的获取速度会更快。那 cpu 缓存其实也承载着核心需要处理的很多数据,也是非常重要的一个参数,但是现在却越来越不受到重视了。比如你能够查到 i 五幺零四零年 f 的三级缓存是这样找那一级和二级的缓存,你能够查得到吗?快去试试吧。