CPU基本知识大全
CPU 的全称是 Central Processing Unit(中央处理器),是电脑中最硬核组件。CPU 是计算机最核心组件。CPU 核心:从程序或应用程序获取指令并执行计算。这个过程可以分为三个关键阶段:提取,解码和执行。下面就让小编带你去看看CPU基本知识大全,希望能帮助到大家!
CPU超频小知识:CPU什么情况下需要超频?CPU超频需要什么条件?
一、什么是CPU频率吗?
CPU频率其实就是指CPU在一秒内发生脉冲的次数,单位是赫兹,同一款CPU在一秒内发生脉冲的次数越多,就说明它的运行速度越快。
二、CPU超频有什么用?
CPU超频的作用是可以使工作频率提高,并让其在高于其额定的频率状态下稳定工作,能够让cpu发挥更强大的性能,以提高电脑的运行速度。通常所说的超频简单来说就是人为提高CPU的外频或倍频,使之运行频率得到大幅提升,即CPU超频。
公式:CPU主频=CPU倍频__CPU外频;
举个例子:
例如:i7 9700K基础频率大小3.6GHz,通过设置超频,让其频率固定在5Ghz,超过它原来限制的频率上。
打个比方说,我们在跑步的时候,以5米/S的速度进行跑步,但是您想要快点跑到终点,这时候您就需要加速跑,这时您的速度调到了7米/S,你的步频就加快了。
三、CPU超频需要什么条件?
1、CPU需要支持超频
intel在CPU市场实行了严格的产品等级划分,只有CPU带K后缀的型号,例如i7-9700K,才可以支持超频,其它CPU频率已经锁死了。而AMD这边良心点,因为要抢占市场份额,目前几乎全系CPU采用不锁频技术,均支持超频。
2、主板需要支持超频
在intel主板芯片组中,Z开头才支持超频,例如Z370、Z390主板,而在AMD主板芯片组中,__开头、B开头的主板芯片组支持超频,例如__470、B450。一般主板采用6相核心供电或者更多的主板就可以进行超频尝试。
3、CPU散热器加强
由于CPU超频之后,会带来更高的温度表现,如果散热器太垃圾,超频产生的巨量热量无法尽快散热,导致温度飙升,CPU稳定性就会大大折扣。
4、电源功率
超频后CPU的耗电是大幅度增加,所以电源功率有合理预留一定的空间。
四、CPU什么情况下需要超频?
当你对这块CPU的性能不满意的时候,这时候可以考虑通过超频来提升性能。
五、超频对cpu的影响
由于CPU超频之后,主板和CPU的温度升高,对硬件使用寿命会有一定的影响。如果超频不当,还有可能造成CPU损坏、缩肛(CPU无法稳定运行在默认出厂的频率上)等问题。
以上就是装机之家分享的CPU超频小知识,如果CPU在平时够用的情况下,是无需超频的,正常使用即可,只有当性能不够的情况下,例如老处理器,才可以尝试超频,以提高CPU的性能。
CPU 高速缓存知识
01概述
在计算机系统中,CPU高速缓存(英语:CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。
当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。
缓存之所以有效,主要是因为程序运行时对内存的访问呈现局部性(Locality)特征。这种局部性既包括空间局部性(Spatial Locality),也包括时间局部性(Temporal Locality)。有效利用这种局部性,缓存可以达到极高的命中率。
在处理器看来,缓存是一个透明部件。因此,程序员通常无法直接干预对缓存的操作。但是,确实可以根据缓存的特点对程序代码实施特定优化,从而更好地利用缓存。
02CPU 的多级缓存
CPU 缓存离 CPU 核心更近,由于电子信号传输是需要时间的,所以离 CPU 核心越近,缓存的读写速度就越快。但 CPU 的空间很狭小,离 CPU 越近缓存大小受到的限制也越大。所以,综合硬件布局、性能等因素,CPU 缓存通常分为大小不等的三级缓存。
CPU 缓存的材质 SRAM 比内存使用的 DRAM 贵许多,所以不同于内存动辄以 GB 计算,它的大小是以 MB 来计算的。比如,在我的 Linu__ 系统上,离 CPU 最近的一级缓存是 32KB,二级缓存是 256KB,最大的三级缓存则是 20MB。
你可能注意到,三级缓存要比一、二级缓存大许多倍,这是因为当下的 CPU 都是多核心的,每个核心都有自己的一、二级缓存,但三级缓存却是一颗 CPU 上所有核心共享的。
程序执行时,会先将内存中的数据载入到共享的三级缓存中,再进入每颗核心独有的二级缓存,最后进入最快的一级缓存,之后才会被 CPU 使用,就像下面这张图。
通过上图可以知道:
L1缓分成两种,一种是指令缓存,一种是数据缓存。L2缓存和L3缓存不分指令和数据。
L1和L2缓存在每一个CPU核中,L3则是所有CPU核心共享的内存。
L1、L2、L3的越离CPU近就越小,速度也越快,越离CPU远,速度也越慢。
缓存要比内存快很多,那么我们来看下他们的访问速度是什么样的。
L1 的存取速度:4 个CPU时钟周期
L2 的存取速度:11 个CPU时钟周期
L3 的存取速度:30 个CPU时钟周期
RAM内存的存取速度:100 个CPU时钟周期以上
根据上面的访问速度可知,如果 CPU 所要操作的数据在缓存中,则直接读取,这称为缓存命中。命中缓存会带来很大的性能提升,因此,我们的代码优化目标是提升 CPU 缓存的命中率。
通常我们查看 CPU 缓存时会发现有 2 个一级缓存(比如 Linu__ 上就是上图中的 inde__0 和 inde__1),这是因为,CPU 会区别对待指令与数据。比如,“1+1=2”这个运算,“+”就是指令,会放在一级指令缓存中,而“1”这个输入数字,则放在一级数据缓存中。虽然在冯诺依曼计算机体系结构中,代码指令与数据是放在一起的,但执行时却是分开进入指令缓存与数据缓存的,因此我们要分开来看二者的缓存命中率。
03提升L1数据缓存的命中率
在说明这个问题之前。我们需要了解一个术语 Cache Line。缓存基本上来说就是把后面的数据加载到离自己近的地方,对于CPU来说,它是不会一个字节一个字节的加载的,因为这非常没有效率,一般来说都是要一块一块的加载的,对于这样的一块一块的数据单位,术语叫“Cache Line”,一般来说,一个主流的CPU的Cache Line 是 64 Bytes,64Bytes也就是16个32位的整型,这就是CPU从内存中捞数据上来的最小数据单位。
比如:Cache Line是最小单位(64Bytes),所以先把Cache分布多个Cache Line,比如:L1有32KB,那么,32KB/64B = 512 个 Cache Line。
Linu__ 上你可以通过 coherency_line_size 配置查看它。
Cache的数据放置的策略决定了内存中的数据块会拷贝到CPU Cache中的哪个位置上,因为Cache的大小远远小于内存,所以,需要有一种地址关联的算法,能够让内存中的数据可以被映射到Cache中来。这个有点像内存地址从逻辑地址向物理地址映射的方法,但不完全一样。
基本上来说,我们通常会想到如下的算法:
一种方法是,任何一个内存地址的数据可以被缓存在任何一个Cache Line里,这种方法是最灵活的,但是,如果我们要知道一个内存是否存在于Cache中,我们就需要进行O(n)复杂度的Cache遍历,这是很没有效率的。
另一种方法,为了降低缓存搜索算法,我们需要使用像Hash Table这样的数据结构,最简单的hash table就是做“求模运算”,比如:我们的L1 Cache有512个Cache Line,那么,公式:(内存地址 mod 512)__ 64 就可以直接找到所在的Cache地址的偏移了。但是,这样的方式需要我们的程序对内存地址的访问要非常地平均,不然冲突就会非常严重。这成了一种非常理想的情况了。
为了避免上述的两种方案的问题,于是就要容忍一定的hash冲突,也就出现了 N-Way 关联。也就是把连续的N个Cache Line绑成一组,然后,先把找到相关的组,然后再在这个组内找到相关的Cache Line。这叫 Set Associativity。如下图所示。
对于 N-Way 组关联,可能有点不好理解,举个例子进行说明,Intel 大多数处理器的L1 Cache都是32KB,8-Way 组相联,Cache Line 是64 Bytes。
这意味着,
32KB的可以分成,32KB / 64 = 512 条 Cache Line。
因为有8 Way,于是会每一Way 有 512 / 8 = 64 条 Cache Line。
于是每一路就有 64 __ 64 = 4096 Byts 的内存。
为了方便索引内存地址,
Tag:每条 Cache Line 前都会有一个独立分配的 24 bits用来存的 tag,其就是内存地址的前24bits
Inde__:内存地址后续的6个bits则是在这一Way的是Cache Line 索引,2^6 = 64 刚好可以索引64条Cache Line
Offset:再往后的6bits用于表示在Cache Line 里的偏移量
当拿到一个内存地址的时候,先拿出中间的 6bits 来,找到是哪组。
然后,在这一个8组的cache line中,再进行O(n) n=8 的遍历,主要是要匹配前24bits的tag。如果匹配中了,就算命中,如果没有匹配到,那就是cache miss,如果是读操作,就需要进向后面的缓存进行访问了。L2/L3同样是这样的算法。而淘汰算法有两种,一种是随机一种是LRU。现在一般都是以LRU的算法(通过增加一个访问计数器来实现)
这也意味着:
L1 Cache 可映射 36bits 的内存地址,一共 2^36 = 64GB的内存
当CPU要访问一个内存的时候,通过这个内存中间的6bits 定位是哪个set,通过前 24bits 定位相应的Cache Line。
就像一个hash Table的数据结构一样,先是O(1)的索引,然后进入冲突搜索。
因为中间的 6bits 决定了一个同一个set,所以,对于一段连续的内存来说,每间隔4096的内存会被放在同一个组内,导致缓存冲突。
此外,当有数据没有命中缓存的时候,CPU就会以最小为Cache Line的单元向内存更新数据。当然,CPU并不一定只是更新64Bytes,因为访问主存实在是太慢了,所以,一般都会多更新一些。好的CPU会有一些预测的技术,如果找到一种pattern的话,就会预先加载更多的内存,包括指令也可以预加载。这叫 Prefetching 技术。关于预取技术是如何影响性能的请看我们下面的案例。
CPU(一篇有点搞笑的CPU科普)
主频:
我们常在CPU的信息里看到 3.0GHz、3.7GHz等就是CPU的主频,严谨的说他是CPU内核的时钟频率,但是我们也可以直接理解为运算速度。
举个有趣的例子:CPU的主频相当于我们胳膊的肌肉(力量),主频越高,力量越大。
核心:
我们更多听到的是,这个CPU是几核几核的。如2核、4核、6核、8核、16核等等。
这个核心可以理解为我们人类的胳膊,2核就是两条胳膊,4核就是4条胳膊,6核就是6条胳膊。
线程:
光有胳膊(核心)和肌肉(频率)是干不了活的,还必须要有手(线程)才行。
一般来说,单核配单线程、双核配双线程,就相当于一条胳膊长一只手。后来由于技术越来越厉害,造出了一条胳膊长两只手的情况,这样干活的效率就大大的提高了。
架构:
现在胳膊有了,肌肉有了,手也有了,就差一个工具就可以干活了,这个工具就是CPU的架构,架构对性能的影响巨大。
所以说有句话叫“抛开架构看核心、频率都是耍流氓!”这就是为啥以前AMD的CPU虽然核心数量和频率都比同时期的英特尔高,但是依然流传着“i3战A8,i5秒全家、i7轰成渣”这样的说法了。
这个时候可能有的人不理解了,怎么看架构呢?这个其实不用担心,因为一般来说,每一代CPU的架构都是一样的,比如i3-8100、i5-8500、i7-8700都是8代的CPU,使用的架构也是一样的,现在官方店在售的也都是最新款。
缓存:
缓存也是CPU里一项很重要的参数。由于CPU的运算速度特别快,在内存条的读写忙不过来的时候,CPU就可以把这部分数据存入缓存中,以此来缓解CPU的运算速度与内存条读写速度不匹配的矛盾,所以缓存是越大越好。
参数就算是说完了。既然开头就说了“CPU也跟人脑一样,术业有专攻。”那接下来就分析一波,什么样的U适合干什么样的工作。
游戏:
由于游戏运行需要的是粗暴直接的计算工作,所以主频高的CPU会更有优势。
这就好比我的工作是要搬个砖,肌肉强点,力气大才是硬性需求。就算我有8条胳膊16只手,看起来张牙舞爪的很厉害,但是我搬砖的时候根本用不到,而且这些胳膊大多力气又小,所以效果并不会很好。
所以,有游戏需求的玩家可以选择主频高点的CPU,核心和线程数少一点无所谓。(4核4线程就差不多了)
整体来说,英特尔i3、i5、i7和锐龙2代的CPU主频都挺高的,很适合玩游戏。英特尔后面带“K”的CPU不仅主频更高,而且是支持超频的(需要用Z系或__系主板)。新出的锐龙2代CPU主频也很高,而且性价比也还不错。
图形渲染等工作需求:
对于需要进行大量并行运算的图形渲染来说,多核心多线程同时工作能比单核心高主频的傻大粗节省大量的时间。
绿巨人虽然搬砖能力出众,但是如果让他去完成一幅复杂的拼图,速度自然是比那种有多条胳膊和多只手同时工作的小机灵慢了不少。
适合图形渲染和视频制作的CPU:
日常家用,偶尔玩LOL、DNF等
这一类的用户平时就是看看网页,看看视频、看文档、玩玩LOL、DNF等游戏。
这类用户可以选择自带核显的CPU,如699元的AMD 锐龙3 2200G、英特尔600块的奔腾G5500,或者800元的i3-8100。这类CPU的自带的HD630核显完全可以轻松解码4K视频以及流畅运行LOL、DNF这类游戏,省下的钱买块固态硬盘,加条内存岂不是美滋滋。(使用核显请尽量组双通道内存条,为什么可以看我内存条的文章)
总结:
1.游戏用户选择高主频的CPU,4核4线程差不多就够用了。如英特尔i3-8350K、i5-8600K(这种带K的CPU还可以通过超频来达到更高的频率,不过要搭配较贵的Z370系主板使用);锐龙二代CPU也很不错,建议购买后缀带__的如 锐龙R5 2600__,虽然本身性价比并不突出,但是好在可以搭配AMD平台较便宜的B350主板进行超频。
2.对于需要做图形渲染工作的用户来说,多核心多线程的CPU是最优的选择。AMD多核心多线程的锐龙系列性价比非常的高。
3.普通用户,如果没有大型游戏需求,AMD的锐龙R3 2200G绝对是最有性价比的选择。首先是4核4线程3.5GHz,性能足够用,而且自带的核显性能也不俗,LOL、DNF毫无压力,还能省下买显卡的钱。
4.选择CPU的时候,一定要询问店家是不是支持自己的主板。有时候虽然接口针脚数量是一样的,但是可能并不兼容。(英特尔,别左右瞎看了,说的就是你)
CPU基本知识大全相关文章:
★ CPU的基础知识