cpu做成一个性能超强的单核不行吗?这种技术可以实现吗?

cpu做成一个性能超强的单核不行吗?这种技术可以实现吗?,第1张

CPU的的单核性能有多重要,这个不用再重复了,但是CPU的单核性能可以无限增加下去吗?回答这个问题之前,先说一个小故事吧。很多年前VIA威盛还可以跟英特尔硬刚,那时候是Pentium 4时代,英特尔在CPU频率不断突破1GHz、2GHz、3GHz之后要做更高频率的CPU,放言称奔4频率上4GHz,后来就有了英特尔前任CEO巴瑞特下跪的一幕,因为英特尔在奔4时代并没有如承诺的那样推出4GHz高频的产品。

但是很多人不知道的是,4GHz并不是英特尔当时的最终目标,2001年的IDF会议上英特尔曾经表示奔4处理器可以上10GHz频率。如今18年过去了,这个目标一直都没实现,(硅基时代)可能永远都无法实现了。

这件事就能说明CPU频率不是想提升就提升的,奔4时代过去这么多年了,其实CPU的主流频率依然在4GHz左右,英特尔虽然在酷睿i7-8086K上首次实现官方5GHz频率,但绝大多数处理器日常使用的频率都没这么高,高负载下频率在4GHz出头就不错了。

制约单核性能超强的CPU出现的第一个问题就是频率无法大幅提升,而这个因素也跟现在的制程工艺有关,实质上是摩尔定律已经失效了,这个影响了半导体行业50年的金科玉律随着硅基芯片物理极限的到来已经失效了,从28nm节点之后其实就没有带来很大的性能改进了,而且功耗问题也越来越严重。

大家都知道理论上制程工艺越先进(制程数字越小),CPU性能会更高,功耗、发热会更低,但是实际上这个问题很复杂,CPU的功耗可以分为静态功耗(Static Power)及动态功耗(Dynamic Power),前者主要是漏电流引起的,制程越先进,漏电流又有增加的趋势,而动态功耗可以用1/2CV2F这个公式来计算,F频率越高,动态功耗就越高。

为了上更高的频率,电压增加不可避免,但电压高了功耗也高了,总之静态功耗、动态功耗的存在就决定了CPU频率越高,功耗就会极速增加,将会严重影响处理器的性能表现,因为要降频。

说到这一点,英特尔的14nm工艺虽然被人调侃挤牙膏,但从技术上来说真的很牛了,从Skylake架构的第一代14nm到现在Coffee Lake的14nm++工艺,性能提升26%,或者功耗降低52%,在不改变基本结构的情况下这个成绩很难得。

制程工艺的放缓导致CPU频率不可能大幅提升,有很多人会想到那么有没有非常牛的CPU架构让IPC性能大幅提升呢?理论上这种思路是可以的,但是现实很残酷,CPU架构还是要服从半导体工艺物理定律的,没有先进的工艺,再好的CPU架构也不可能实现。

此外,即便不考虑工艺对CPU架构的影响,单纯说CPU架构的话,不论是X86还是ARM架构,在64位时代CPU单元不外乎就是ALU单元、缓存、I/O等子单元, 但是不论提升那部分单元,归根到底还是要算到晶体管数量上来,还要考虑提升导致的成本——这个成本不只是钱的问题,比如提升L1/L2/L3缓存可以提高性能,但是缓存占用的核心面积很大,而且还有命中率及命中惩罚的问题,不是随便加加单元就行的。

此外,CPU的内部还可以分为整数部分、浮点部分,前者对日常使用很重要,浮点性能对计算更重要,但CPU的浮点性能并不是日常所需的,所以大家普遍感觉不到这部分的提升。

支持AVX512的酷睿i9-7900X浮点性能提升很大

公平地说,近年来CPU浮点单元的进步是符合题目所说的单核超强的要求的,因为从SSE到AVX到AVX2再到最新的AVX-512,CPU浮点性能是有大幅提升的。如英特尔所说:“借助多达两个512位融合乘加 (FMA) 单元,应用程序在512位矢量内的每个时钟周期每秒可打包32次双精度和64次单精度浮点运算,以及八个64位和十六个32位整数。因此,与英特尔高级矢量扩展 20(英特尔 AVX2)相比,数据寄存器的宽度、数量以及FMA单元的宽度都增加了一倍。”

但是前面也说了,CPU的浮点性能不是日常所需的,整数性能更加重要一些,但是整数单元性能提升就没这么明显了,导致很多人以为CPU架构多年来挤牙膏。

多核CPU就是因为如今的单核CPU已经难以大幅度提升性能才诞生的,像X86和ARM这类通用处理器架构,一旦进入成熟期想通过修改架构来提升性能难度非常大,相比为了单核性能而消耗的时间和人力成本是相当不划算的,可以参考下奔腾4当年为了提升单核性能而造成的失败后果。

单核性能的提升除了架构以外很重要的一点是取决于频率和缓存,而频率限于CPU温度和功耗不可能增长太快,缓存限于CPU面积和成本同样不能快速增长,这样频率和缓存只能依靠半导体工艺的进步来逐步提升。

最无奈的是,如今半导体工艺进步的越来越缓慢,单单是英特尔从14nm到10nm就用了好几年的时间,工艺进步慢,CPU的单核性能和效率就难以大幅度提高,英特尔又不可能把X86架构大幅改动,即使ARM处理器工艺进化更快,但是受限于手机对续航和芯片面积的要求,CPU的单核性能仍然无法大幅提高。

相比之下,CPU通过增加核心数的方式来提升性能是效率最高的,因为CPU每个核心几乎都是相同的,只要整体架构定型,设计制造起来相对容易得多,而应用程序通过多线程优化可以有效利用到多核CPU,最高甚至能达到翻倍的提升,这可不是单核简单提升一下频率和架构就可以达到的幅度,比纯粹做单核的性价比高多了。

就这样随着多核CPU普及,支持多核的应用程序也越来越多,多核CPU也就越来越吃香,当然如果拿多核CPU的晶体管来做一颗超强单核也未必不可,但是这对制造商的良品率要求太高了,因为是单核CPU,一旦晶圆和芯片上有一点瑕疵就可能使CPU报废,而多核CPU可以通过屏蔽核心来降级销售,成本和利润自然无法相比。

英特尔、高通、联发科都是企业,必须要权衡成本和利润,综合来看,做多核CPU的好处自然更符合它们的利益,即使是苹果,也是在不断增加A芯片的核心数,所以多核CPU是大势所趋。

技术路线的选择要考虑可行性,所谓可行性不仅仅包括能否实现,还包括实现难度是不是在可接受的范围,实现的成本是不是可以承担。而题主说的把CPU做成一个性能超强的单核,技术难度大,成本也高,并不实用。 CPU之所以选择了多核心发展,就是因为单核心很难继续做下去,无法持续稳定提高性能,厂商才做的多核心。

单核性能的提高遇到了瓶颈,多核处理器技术的成熟共同决定了多核处理器成为技术发展的主流选择,而单核处理器被抛弃。

我们看看当年的几代入门级处理器的性能,就会发现,单核性能的提升已经进入了瓶颈期。 第四代入门级的 i3 4130 CPU,单核性能成绩为 1982。上一代入门级的 i3 3220 CPU,单核性能成绩为 1759。再上一代入门级的 i3 2130 CPU,其单核性能成绩为 1744。经历三代升级,性能的提绳微乎其微。一般认为,只有性能提升五成以上才会有比较直观的感受。因此,单核性能的突破是一个难以克服的困难,不一定说完全不能实现,但至少是一件非常困难的事情。从理论上来说,从1990年左右开始,提高芯片的性能主要方法有两种:

1在有限面积内加入更多的场效应管。

2提高时钟。

经过二十多年的发展之后,我们已经几乎把这两种方法应用得炉火纯青,单核CPU想要继续突破面临着难以克服的功耗和发热问题,而时钟也会受到限制。相比之下,多核CPU可以通过并行计算实现降低时钟的目的,与此同时维持原有的计算能力。而多核处理器的协同能力则随着技术成熟而变得稳定高效,在这个情况下,回归单核路线,尝试做一个超强的单核处理器是不符合现实需求的做法。

而从另外一个角度来说,就算我们继续发展单核技术,不计代价投入,不计成本生产出来。但是,理论来说,单核处理器的性能是会有上限的,这个上限一定会比多核处理器低。 这就好比一个人可以通过锻炼提高身体力量,但是你再能打,来十个二十个人,你也够呛能对付吧?所以,个体的提高很重要,但是多人合作,良好的协作才是提高战斗力更有效更现实的选择。同样的道理,当多核处理器可以良好协作的时候,取代单核处理器成为技术选择的主流也是情理之中的事情。超强单核的技术构想则不实用,太昂贵,并不存在实际可行性。

2004年64岁的英特尔CEO贝瑞特当着6500多技术员为奔腾4的时钟频率不能突破4GHz而当众下跪道歉,并决定放弃4GHz主频的奔腾4的时候,其实有已经间接的宣告了单核不可能一条道走到黑。

随后英特尔就转向了多核之路,2005年英特尔发布了双核CPU,标志着CPU从单核到多核的一大转折。在这之前多核的CPU早已经出现,比如IBM在2000年发布的POWER4就是一个双核CPU,但毕竟电脑CPU的天下还是X86的,要说英特尔引领AMD、Sun、IBM走向多核也不为过,但也可以说英特尔是第一个在单核之路上走不下去的人,谁叫英特尔有那么庞大的市场份额呢。

超频能用来干嘛?电脑爱好者都知道超频可以发挥CPU的最强能效。超频的原理就好像你完成举手这个动作,本来你举一次手需要2秒钟,让你1秒钟完成一次举手动作,再让你1秒钟完成10次举手动作,再让你1秒钟完成100次举手动作。CPU的性能就是这样被提高的。如果让时钟的周期提高到4GHz,那么CPU每秒就会执行40亿个周期。

超频是需要付出代价的,超频爱好者会通过升高CPU的电压、调教DRAM的CL等,这就意味着CPU会产生更多的热量。所以超频也需要更有效地散热装置,这才有了水冷、压缩机散热装置。CPU烤肉、煮火锅、液氮降温的确有其事,这些事情也间接的告诉了我们单核的会有极限。

超频爱好者会告诉你超频一定要有干废CPU、主板等硬件的心理准备。一件事情一个人干很累,那么就分担给多个人干。多核CPU就是将多个核心全部做到一个大的Die上,再加上一些外围电路封装成一个单独的CPU。

但其实这种封装技术还是属于传统的多核心封装技术,多个核心需要极度地依赖PCB基板上布置的电路来完成相互通信,而PCB板限制了电路的密度,所以很难形成大规模集成IP核心的个数。

于是就有了硅中介和EMIB的解决方案,硅中介就相当于地铁挖空建一个换乘大厅,而EMIB就好比地下隧道。至于换乘大厅好还是地下隧道好还是得看区域的用途。

从CPU这个东西发明以来曾试了无数种方法来提升性能,但除了提高频率一直很好用之外,其他方法都很快被pass掉,因为提升的并不是很明显。这就能解释为什么英特尔、AMD会乐此不疲地在提升主频的路上,直到有一天提升主频翻车了才走向了多核之路。

CPU的性能=时钟频率IPC,IPC就是一个时钟周期内完成的指令数,从上面的每秒钟举手的次数这个例子就能很好地理解。增加IPC仅会线性的增加CPU的功耗,但增加主频就有可能以指数级的增加CPU的功耗。多核可以增加IPC来提升CPU的性能,也可以压住频率的提升,于是同时CPU的性能也一样提高了。

以上个人浅见,欢迎批评指正。

我给你解释一下你使劲理解一下

计算机处理器有个参数叫频率什么24G 45G啊这个是指一秒钟有多少个时钟周期不是指令周期指令周期一般为1-12个时钟周期甚至更多一般只有内部寄存器读写指令加减乘指令能做到1时钟周期而内存存取指令的周期数很高所有数据都在内存根本无法有效减少内存读写指令需要注意的是内存读写速度基本是恒定的也就是CPU快没用比如假如在24G的处理器中读内存中的数据为6个时钟周期那么在48G的处理器就需要12个时钟周期也就是说在04G的处理器里是一周期所以单纯提高频率提高性能微乎其微

最先想到的就是利用CPU在等待读内存数据的周期中提前读下一个内存中的数据这一系列技术最早叫预读但代码有条件跳转能判断条件跳转的预读叫分支预测预读的层深叫流水线

流水线并不完美在多任务操作系统中操作系统的时间片是通过保存和恢复整个寄存器实现的术语叫保存恢复现场这样切换会严重破坏预读的成功率影响预读命中率导致CPU仍然需要等待读取数据解决这个问题的办法就是两个处理器核心分别处理两个进程当进程为3-4个的时候在单核处理器上程序一定会正常运行但破坏预读性能运行效率很低也就是说1个4G的核跑4线速度不如4个1G的核跑4线

所以提高频率完全不会显著提高处理器性能而提高核数会提高性能很明显

理论上工厂建一个超级大的生产线就可以,那为什么要修好多厂房和生产车间呢?

一条生产线建的再大,也只能保证用最快的速度生产完一个批次的产品。如果要同时生产好几个批次和品种的产品呢?那是选择用这个超大生产线一个一个批次生产,还是建几个生产线同时生产更好呢?

同样的,做一个超级大核只能保证用最快的时间完成一个任务。但是,如果你的电脑要同时完成几个任务呢?你是选择让这个超级大核一个个任务去做,还是选择做几个小核分别去做?

结论:

大多数时候手机和电脑要同时处理的是很多个任务,这时候让多个小核分别处理比让一个大核排队处理更高效。而一个大核的制造工艺更麻烦,发热功耗比几个小核更难散热。

再举个不恰当的例子,你要从北京送一个火箭去西昌,只能用火车拉,但是你要从食堂送几份盒饭到宿舍楼,最好还是叫几个快递小哥骑电动车给你送吧。我们日常使用手机和电脑遇到很多小任务的场景远比需要处理大任务的场景多,所以做很多小核远比做一个大核更实用。毕竟不是每个人一天到晚都有火箭需要送到西昌。但是几乎每天都有人需要订外卖。

这么说吧,一个加工中心,有个分开的原料仓库,用一辆10吨大卡车运材料,运一次可以满足一天生产。后来产能提升,品种有多了,又在不同地点造了几个仓库,这时要满足生产要么原来的车加快速度不停的运(加快频率),要么买个50吨的车,每个原料还是每天运一次,运一次管几天(加强单核运算能力),还要么换几台5吨的,分开运不同仓库(多核)。

那么问题来了,在同时生产多个产品,且产量都不高,而且生产仓库分散的情况下是用一个50吨的车来运,还是用几个5吨的车来运合算?

所以单核强劲固然好,但往往运用时更多时候要同时处理几个任务,这样多核更适用。

苹果单核强劲,那是因为苹果都是单线程处理的,不像安卓后台会挂一大堆进程

cpu做成一个强劲单核心是可行,只要频率够高,制作工艺够先进,高速缓存l1 l2 l3参数不低于 l1不低于8way 64k,不过单核心效率就算够高,都只能处理一件任务事情,而且达不到节能效果,发热方面高频u会比低频多核心cpu高,这是其一,其二因为单核心物理核心很容易使用达到百分之99,那么你要是多开个qq很容易造成系统未响应卡顿,相反你使用2个核心或者以上,因为其核心数量多,在处理器占用方面随之减少,那么这个时候你就可以做更多的下载之类任务,或者网游多开更多窗口,同时登陆多个帐号,这是为何处理器不向单核心高频率发展,而走向更多核心路线发展的原因,现在不管是amd 还是英特尔公司都往核心数量不断增多 就是有用户觉得以前处理器处理数据效率太低,不如现在多核心,所以2家公司都把核心数量推上8核心或者以上,处理器分为民用,商业用,国家监测国防部用,微软云端服务器,为了节能环保,达到低碳,2家公司都往多核心发展,而不是一直走高频路线就可以,线程数量也在不断增加。超线程效率比单线程效率高,何必只做1核心1处理器线程,给你研发个6ghz单核,它能使用范围也是很窄,要来什么用,所以不是单核心技术达不到超强效率,也不是技术做不到,而是无那个必要去实现浪费时间得益不明显。

后面我们来说说关于多核心存在的意义,存在即合理,那么为何要做那么多核心,而不是4核心呢,这个要从网游时代 游戏 多开说起,就我自己玩的网游剑灵,双开把amd fx8320 关闭核心到4个核心4个线程,此时处理器占用使用为89%,其次像一些使用格式化工厂转码类软件hd 1920x1080高分辨率转换下都会占满100% cpu及线程,日常4k视频转码

不在话下,虽然说当年snb处理器双核心4线程i3就能干翻fx 4300跟6300差不多持平这样的处境,问题是2160p硬解一个已经爆占满了占用100开始卡顿,fx 6300则没有,处理器多核心战未来,虽然路漫长但是已经是 如今的趋势, 不然英特尔不会把堆核心到10核心出现了i7 6950x,i9 9900k ,频率再高单核心再强,cpu资源抢夺厉害核心数小不足的地方,不利于大数据流处理,最终导致结果必然为以卡顿告终或处理器造成程序无响应,所以多核心发展出来意义非常之重大,尤其是服务器它的核心数量一般是民用2倍或者8倍多的核心,电脑真的不是只是用来玩 游戏 这一用途,你要明白,计算机它的用途很广,计算机主要工作还是以计算速度快慢为主要,32多核心处理器不但是跑分高那么简单,它的渲染速度都不是8核心能比较的因为它的核心数量多,速度是比8核心快4倍,再举个列子fx8跟翼龙x6 跑分差不多,核心数量只差2个,线程也是2个,但是跑r15浮点运算软件速度比较慢,x6可以花费1分钟才跑完,而fx8只需要45秒,这个时候就体现出多核心的价值了,现在锐龙8核心16线程比8核心8线程推土机渲染快2倍那么多,道理也是一样。

首先我们要清楚如何衡量单核CPU的性能,首先自然是频率,频率更高意味着一个时间周期内可以处理更多的数据,不过光有频率还不行,其次还要看架构等方面,这方面的表现可以通过IPC性能来进行衡量,简单来说就是同样的频率下面,谁的单核心性能表现越好,IPC性能越强,所以提升单核性能可以通过提升IPC性能和频率来实现。

而这些年以来,芯片厂家为了提升性能,在单核性能上就是通过频率和架构的进步来实现的,频率方面,1981年IBM电脑CPU频率477Mhz, 1995年intel CPU频率100Mhz,2000年AMD率先突破1Ghz,2003年intel CPU频率达到了37Ghz,而目前最高的单核频率才53GHz,可以看到 历史 上的一段时间里面,频率的增长是很猛的,而这自然带来了性能的提升,但是可以看到2003年到现在,频率提升已经无法和以前相比了。

至于架构方面,PC那边大家比较熟悉的AMD Zen1,Zen2,Zen2+,Zen3的架构,每次都会带来性能的提升,Intel那边也是如此,ARM处理器也是如此,从Arm V4到V9版本升级,而且在每个版本内部,还可以进行细分,实际上随着频率提升的变慢,通过架构升级来实现性能提升已经是目前最常见的手段之一了,不过这个地方的升级也不是随随便便的,一般来说一个全新的架构出来后,这个架构会使用较长的一段时间,会在这个架构的基础上进行优化迭代,这方面Intel的Skylake就是典型。

频率提升基本上遇到瓶颈了,架构的升级也不是那么随随便便的,而用户对性能的追求又是没有止境的,所以单核的确是不够用了,这种情况下厂家就想到了超线程,多核心等技术来提升CPU的性能,因此现在市面上的处理器基本上都是多核心的了,所以就目前的实际情况来看,如果可以做出超强的单核,自然不需要多核心了,但问题是很难做出这样的单核产品。

技术方面主要是CPU频率提升遇到了能耗这个瓶颈。因为CPU的能耗和时钟频率的三次方成近似正比关系,CPU频率在3Ghz之后, 继续提高频率会使CPU面临发热烧毁的危险,而且随着工艺的提升,晶体管密度的增加,积热问题也越来越严重,会加剧烧毁的可能,所以频率这个路子的确是很难走下去了,而架构升级,说白了就是PPA的取舍,存在能耗和芯片面积的制约。

总之单核性能当然是越高越好,但是目前的技术而言,就算是做出一个很强的单核处理器,其整体性能也不会超过那些高阶的多核处理器,而且目前的操作系统是多任务的,这也让多核处理器有了用武之地。

1单核性能提升幅度有限,频率有5G瓶颈,再高频率有电子隧道效应,功耗直线上升,稳定性下降;

2单核在一时刻只能做一件事情,没办法让任务流起来,即使有指令流水线,也只是缩短了指令的平均执行周期,一个时刻仍旧最多只有一个指令被执行;

3多核CPU可以让多个任务同时执行,软件优化后还可以让一个任务拆解在多个核心上运行,大大提高执行效率

  IT168 评测Intel于今年10月5号发布了代号为Coffee Lake-S的第8代桌面级酷睿处理器,顶级型号自然是i7-7700K的继任者i7-8700K,要知道,两代i7旗舰处理器的发布时间其实只隔了区区9个月。

  i7-8700K最明显的变化就是增加了两个物理核心,从之前的4核心8线程来到了6核心12线程,而i5和i3也全部增加了两个物理核心,个中原因大家都懂,这个变化也打破了酷睿家族一直以来i3双核、i5/i7四核的不变规格。

  一、CPU工艺/芯片组解读

  i7-8700K虽然已经是酷睿第8代处理器,但其实用的还是14nm工艺。通过Anandtech制作的这张CPU架构、工艺对应表可以看到,8代酷睿处理器中的Coffee Lake架构用的是14nm++工艺,也就是第三代14nm工艺,而它之前的Broadwell、Skylake、Kaby Lake用的也都是14nm工艺,如果按照Intel的Tick-Tock钟摆策略来看,从第7代的Kaby Lake开始就应该是10nm工艺了,但显然Intel并没有能够按照既定的Tick-Tock策略走下去。

  那么,从初代的14nm到现在的14++,经历了三代的14nm工艺到底有着怎样的不同呢?Intel官方给出的答案如上图所示:性能相同的情况下,功耗降低52%;功耗相同的情况下,性能增长26%。当然,这只是一个官方说法,具体的性能表现还是要测测才知道嘛,所以,我们本篇评测正是基于这样一个疑问,采用第三代14nm工艺的i7-8700K相比前两代到底有着怎样的性能提升呢?

  尽管从第六代的Skylake架构到第八代的Coffee Lake架构用的都是LGA 1151接口,但是这并不意味着Coffee Lake架构的CPU可以向下兼容100/200系主板。事实证明,i7-8700K确实不能插在100/200系主板上,而是必须要搭配300系主板才行,Intel官方给出的解释是八代酷睿CPU的供电需要重新设计,而之前华硕ROG主板经理就曾说过,理论上200系主板是可以兼容Coffee Lake架构的,当然前提是Intel愿意。不管怎么说,八代酷睿目前只有Z370主板可用,而性价比更高的H/B系列主板则要等到明年才能上市。

  Z370芯片组相较于Z270芯片组并没有实质性的提升,PCI-E通道方面依旧是CPU提供16条,PCH提供24条,总共40条。内存支持频率由之前的2400MHz提升到2666MHz,但是只有搭配八代i5/i7才行,用i3的话还是2400MHz,但是这在各种高频内存面前都不是事儿,所以,仅有的这点提升也基本可以忽略。

  二、规格/外观解析

  三代14nm i7旗舰CPU的规格如上表所示,i7-8700K最明显的变化就是增加了两个物理核心,线程数也增加到12条,基础频率比i7-7700K降低了500MHz,最大睿频上倒是比i7-7700K提高了200MHz, L3缓存也增加到12MB,标称的内存支持频率提高到了2666MHz,核显变为UHD630,但实际上依然是GT2级别,24个EU单元,此外,TDP也增加到了95W。

  我们把从Skylake到Coffee Lake的三代14nm i7旗舰处理器放在一起看,从左到右依次是i7-8700K、i7-7700K和i7-6700K。除了编号和频率外,i7-8700K和i7-7700K在正面顶盖上基本看不出区别,而6700K相比左边的两款处理器在顶盖上更加方正,没有4个角的缺陷。

  虽然三代处理器的接口都是LGA 1151,但是i7-8700K并不能插在100/200系主板上,i7-6700K/i7-7700K也不能插在300系主板上,根据Intel的说法是在i7-8700K的供电上做了重新设计。从背面来看,i7-8700K的中间部分确实比i7-7700K有更多、更密的电容。

  侧面厚度基本一致,相比AMD的Ryzen处理器来说PCB更薄。

  三、测试平台说明

  测试平台如下表:

  测试环境、软件、游戏如下表:

  因为i7-8700K无法向下兼容100/200系主板,同时i7-6700K/i7-7700K处理器也不能向上兼容300系主板(6700K/7700K和100/200系主板是可以互相兼容的),所以测试平台根据芯片组共分为两套,一套是i7-8700K搭配微星的Z370 GAMING PRO CARBON AC主板,另一套是i7-6700K/i7-7700K搭配七彩虹iGame Z270烈焰战神X主板,其余配置见上表。

▲微星Z370 GAMING PRO CARBON AC主板

  测试共分为基准性能测试、实际应用测试以及游戏性能测试3部分,基准性能测试主要测试处理器的单/多线程能力和整数/浮点性能,实际应用测试包括压缩/解压缩和PCMark 8/10测试,游戏性能分别测试DX11和DX12游戏各两款。

  四、基准性能测试

  基准性能测试部分包括Cinebench R15、Sandra 2017 SP2、SuperPI和wPrime四项,着重测试处理器的单/多线程性能和整数/浮点性能。

  测试项目一:Cinebench R15038

  首先来看CPU的测试标杆Cinebench R15的成绩,i7-8700K单线程183cb,多线程1406cb,多线程性能提升明显,相比7700K提升了46%,比6700K提升59%,多出来的两个核心确实大幅提升了多线程性能。

  单线程方面8700K并没能超过7700K,反而是倒退了3%,相比6700K提升4%,3款处理器在单线程性能上的差距都在5%以内。

  测试项目二:SiSoftware Sandra Platinum 2017 SP2 Lite

  i7-8700K在Sandra 2017 SP2的测试中领先幅度就比较明显了,算数处理器领先7700K 49%,领先6700K 64%,多媒体处理器领先7700K同样是49%,领先6700K 65%,也和算数处理器的结果十分接近。

  测试项目三:SuperPI Mod 19 WP

  SuperPI的测试中又重现了Cinebench R15中单线程测试的一幕,i7-8700K并没能跑赢7700K,两者差距在4%,8700K领先6700K 6%,虽然三者的单线程性能差距不大,但是相比前代不进反退的情况还是第一次见。

  测试项目四:wPrime 210

  最后来看wPrime的测试,单线程方面,8700K依然没能跑赢7700K,数据显示落后24%,领先6700K 5%。多线程方面就是8700K的天下了,毕竟加了两个核心,领先7700K 30%,领先6700K 43%。

  小结:

综合4款测试软件的成绩,我们大致可以得出以下结论,单线程性能上8700K不如上一代的7700K,尽管两者的差距都在5%以内,但是对于一款新晋旗舰来说这样的成绩显然不能令人满意。

  多线程方面得益于增加的两个核心确实有比较大的提升,相比7700K提升幅度在30%以上,领先6700K更是在40%以上。

  五、实际应用测试

  实际应用测试部分包括WinRAR、7-Zip、PCMark 10和PCMark 8,主要测试处理器的压缩/解压缩性能和在实际应用中的表现。

  测试项目一:WinRAR 550

  在WinRAR的单线程测试中,i7-8700K终于挽回了一点颜面,领先上代的7700K 5%,领先6700K 8%。多线程方面,8700K的领先幅度更加明显,相比7700K涨幅为55%,领先6700K更是到达了59%。

  测试项目二:7-Zip 1604

  i7-8700K在7-Zip的单线程测试中又出现了不如7700K的局面,两者差距依然在5%左右,和6700K基本打平。多线程上就体现出核心数量的优势了,相比7700K有着40%的提升,相比6700K的提升幅度更大,为52%。

  测试项目三:PCMark 10

  从PCMark 10的测试来看,i7-8700K在总分、常用基本功能和数位内容创作这三项上都领先前两代,尤其是在数位内容创作上,领先7700K 11%,领先6700K 17%,可见在处理、剪辑视频上还是比较依赖多核心的。但是我们也看到在生产力这项上8700K并没能领先7700K,两者差距接近9%,这个锅恐怕要推给8700K的单线程性能了。

  测试项目四:PCMark 8

  最后来看PCMark 8的测试,i7-8700K在家用、创作两项测试中都领先前两代,在创作测试中领先7700K 8%左右,领先6700K 13%,在家用测试中小幅领先7700K,但基本属于同一水平。而在侧重编辑电子表格的工作测试中8700K依然没有跑赢7700K,这和PCMark 10中的生产力测试结果类似。

  小结:

在基准测试中反映出的i7-8700K单线程性能不如7700K这个情况同样体现在了实际应用测试中,比如7-Zip的单线程测试、PCMark 10的生产力测试和PCMark 8的工作测试,7-Zip和PCMark 8的测试结果两者差距最小,都没有超过5%,PCMark 10的测试结果差距大一些,为9%。多线程方面的优势得以延续,尤其是WinRAR和7-Zip的测试,领先7700K都在40%以上。

  六、游戏性能测试

  游戏性能测试部分我们分别选择了2款DX12游戏《古墓丽影:崛起》、《杀手6》和2款DX11游戏《GTA 5》、《绝地求生:大逃杀》,这些游戏基本能够代表目前的主流网游和单机游戏。

  测试项目一:《古墓丽影:崛起》

  《古墓丽影:崛起》图形设置为非常高、FXAA,分辨率为2K,通过游戏自带的benchmark来跑分。从结果来看,三代14nm i7旗舰CPU的帧数都非常接近, 都是小数点后的不同了。

  测试项目二:《杀手6》

  《杀手6》设置为细节超高、FXAA、2K分辨率。《杀手6》同样内建了benchmark,不过成绩并没有最后的汇总,因此我们选择最后一个场景的FPS作为最终数据。从结果来看,i7-8700K依然有着小幅的领先优势,尽管和7700K的差距不到两帧,领先6700K也不到3帧。

  测试项目三:《GTA 5》

  之前测GTA 5的时候笔者都是选择游戏中的某一个固定场景来测试,但是想想这种测试方法并不全面,所以还是用回游戏自带的benchmark,至于帧数没有汇总的问题就交给Fraps吧。从Fraps记录的benchmark过程的分数来看,8700K和7700K相当接近,两者差距不到1帧,领先6700K 4帧多,当然,即使是最慢的6700K也完全能够流畅运行了。

  测试项目四:《绝地求生:大逃杀》

  最后来看看最近大热的绝地求生吧,游戏设置为质量极致、2K分辨率,因为游戏没有自带benchmark,所以我们用Fraps手动记录两分钟,测试场景和动作为在伐木场附近的小屋捡装备,然后出门走向伐木场。从测试结果来看,i7-8700K的帧数能够达到55帧多,领先7700K 3帧多,领先6700K不到4帧,差距并不大。

  小结:

从游戏环节的表现来看,i7-8700K确实比前两代旗舰好一点,但是这个好是十分有限的,和7700K最大差距也不过5帧,并且即使是最慢的6700K,也完全能够在最高画质、2K分辨率下流畅运行了。

  七、温度、功耗测试

  最后我们再来看看3款处理器在温度和功耗上的表现,温度测试分为待机和满载两种,待机温度是进入系统10分钟后用AIDA64中的温度传感器读取,满载温度是用AIDA64单烤FPU 10分钟后通过传感器读取。

  功耗测试为平台整体功耗,同样分为待机和满载两种,待机功耗是进入系统10分钟后用功耗记录仪读取,满载功耗是用AIDA64单烤FPU 10分钟后用功耗记录仪读取。

  测试项目一:温度测试

  i7-8700K待机温度为39℃,满载后达到了105℃,没错,这个温度已经远远超过了10核心20线程的i9-7900X了,甚至已经逼近超到48GHz之后的7900X了。增加的两个核心除了为8700K带来30%以上的多线程性能增长外,也带来了满载温度的大幅增长。

  测试项目二:功耗测试

  i7-8700K的整机待机功耗还算理想,45W多比6700K还低一点,但是满载后就一发不可收拾了,比7700K多了77W,涨幅高达54%,220W的整机功耗又差点追上i9-7900X。

  小结:

从测试结果来看,i7-8700K在满载温度和功耗方面控制的并不好,这个问题除了和增加的两个核心有关外,CPU核心和顶盖之间的硅脂散热也脱不了干系。

  八、评测总结

  i7-8700K凭借增加的两个物理核心史无前例的将酷睿i7的规格提升到了6核心12线程上,直接受益的就是CPU的多线程性能,相比上一代的i7-7700K增长幅度高达40%,相比6700K的涨幅更是达到了50%。

  但是,单线程性能上却没能带来更多的提升,在一部分测试中甚至出现了不升反降的情况,毕竟14nm工艺已经战了三代,大幅提升恐怕还得靠制程上的进步。

  游戏方面三代14nm工艺的产物并没有拉开差距,即使是最慢的i7-6700K也能够在测试游戏中以最高画质、2K分辨率流畅运行。

  和多线程性能一同增长的还有满载温度和功耗,这不光和增加的两个核心有关,CPU核心和顶盖之间的硅脂散热还是迈不过去的那道坎。

  最后,再来说说价格,i7-8700K上市之初为3399元,现在已经涨到了3999元,并且还是缺货状态,我们暂且不考虑购买新主板的成本,单就CPU而言相比i7-7700K多出的两个核心就真的值1500?

超线程当然不能算一个核心效率最高的时候也就一半样子

多数时候只能当14个而已当CPU满载时候反而会拖累不过四核以上很难满载就是了

但是现在INTEL单核性能太高了基本上INTEL一个核心性能要高于AMD大约40%样子了

而AMD的模块式8核实际性能也只能和I5 四核比较

所以六核12线程要超过八核非常多

第一:主频,也就是CPU的时钟频率,简单地说也就是CPU的工作频率。一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。不过由于各种CPU的内部结构也不尽相同,所以并不能完全用主频来概括CPU的性能。至于外频就是系统总线的工作频率;而倍频则是指CPU外频与主频相差的倍数。用公式表示就是:主频=外频×倍频。通常说的赛扬433、PIII 550都是指CPU的主频而言的。

第二:内存总线速度或者叫系统总路线速度,一般等同于CPU的外频。内存总线的速度对整个系统性能来说很重要,由于内存速度的发展滞后于CPU的发展速度,为了缓解内存带来的瓶颈,所以出现了二级缓存,来协调两者之间的差异,而内存总线速度就是指CPU与二级(L2)高速缓存和内存之间的工作频率。

第三:工作电压。工作电压指的也就是CPU正常工作所需的电压。早期CPU(386、486)由于工艺落后,它们的工作电压一般为5V,发展到奔腾586时,已经是35V/33V/28V了,随着CPU的制造工艺与主频的提高,CPU的工作电压有逐步下降的趋势,Intel最新出品的Coppermine已经采用16V的工作电压了。低电压能解决耗电过大和发热过高的问题,这对于笔记本电脑尤其重要。

第四:协处理器或者叫数学协处理器。在486以前的CPU里面,是没有内置协处理器的。由于协处理器主要的功能就是负责浮点运算,因此386、286、8088等等微机CPU的浮点运算性能都相当落后,自从486以后,CPU一般都内置了协处理器,协处理器的功能也不再局限于增强浮点运算。现在CPU的浮点单元(协处理器)往往对多媒体指令进行了优化。比如Intel的MMX技术,MMX是“多媒体扩展指令集”的缩写。MMX是Intel公司在1996年为增强Pentium CPU在音像、图形和通信应用方面而采取的新技术。为CPU新增加57条MMX指令,把处理多媒体的能力提高了60%左右。

第五:流水线技术、超标量。流水线(pipeline)是 Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高了CPU的运算速度。超流水线是指某型 CPU内部的流水线超过通常的5~6步以上,例如Pentium pro的流水线就长达14步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。超标量是指在一个时钟周期内CPU可以执行一条以上的指令。这在486或者以前的CPU上是很难想象的,只有Pentium级以上CPU才具有这种超标量结构;这是因为现代的CPU越来越多的采用了RISC技术,所以才会超标量的CPU。

第六:乱序执行和分枝预测,乱序执行是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。分枝是指程序运行时需要改变的节点。分枝有无条件分枝和有条件分枝,其中无条件分枝只需要CPU按指令顺序执行,而条件分枝则必须根据处理结果再决定程序运行方向是否改变,因此需要“分枝预测”技术处理的是条件分枝。

第七:L1高速缓存,也就是我们经常说的一级高速缓存。在CPU里面内置了高速缓存可以提高CPU的运行效率。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。采用回写(Write Back)结构的高速缓存。它对读和写操作均有可提供缓存。而采用写通(Write-through)结构的高速缓存,仅对读操作有效。在486以上的计算机中基本采用了回写式高速缓存。

第八:L2高速缓存,指CPU外部的高速缓存。Pentium Pro处理器的L2和CPU运行在相同频率下的,但成本昂贵,所以Pentium II运行在相当于CPU频率一半下的,容量为512K。为降低成本Intel公司曾生产了一种不带L2的CPU名为赛扬。

第九:制造工艺, Pentium CPU的制造工艺是035微米, PII和赛扬可以达到025微米,最新的CPU制造工艺可以达到018微米,并且将采用铜配线技术,可以极大地提高CPU的集成度和工作频率。

CPU又叫中央处理器,是英文单词Central Processing Unit的缩写,负责对信息和数据进行运算和处理,并实现本身运行过程的自动化。在早期的计算机当中,CPU被分成了运算器和控 制器两个部分,后来由于电路集成度的提高,在微处理器问世时,就将它们都集成在一个芯片中了。需要智能控制、大量信息处理的地方就会 用到CPU。

CPU有通用CPU和嵌入式CPU,通用和嵌入式的分别,主要是根据应用模式的不同而划分的。通用CPU芯片的功能一般比较强,能运 行复杂的操作系统和大型应用软件。嵌入式CPU在功能和性能上有很大的变化范围。随着集成度的提高,在嵌入式应用中,人们倾向于把CPU、 存储器和一些外围电路集成到一个芯片上,构成所谓的系统芯片(简称为SOC),而把SOC上的那个CPU成为CPU芯核。

现在,指令系统的优化设计有两个截然相反的方向。一个是增强指令的功能,设置一些功能复杂的指令,把一些原来有软件实现的常用功能 改用硬件的指令系统来实现,这种计算机成为复杂指令系统计算机。早期Intel的X86指令体系就是一种CISC指令结构。

RISC是Reduced Instruction Set Computer的缩写中文翻译成精简指令系统计算机,是八十年代发展起来的,尽量简化指令功能,只保留那些功能简单,能在 一个节拍内执行完成的指令,较复杂的功能用一段子程序来实现,这种计算机系统成为精简指令系统计算机。目前采用RISC体系结构的处理器 的芯片厂商有SUN、SGI、IBM的Power PC系列、DEC公司的Alpha系列、Motorola公司的龙珠和Power PC等等。

介绍一下 MIPS体系。

MIPS是世界上很流行的一种RISC处理器。MIPS的意思是"无内部互锁流水级的微处理器"(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。他最早是在80年代初期由斯坦福(Stanford)大学 Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品以为很多打计算机 公司采用构成各种工作站和计算机系统。

指令系统

要讲CPU,就必须先讲一下指令系统。 指令系统指的是一个CPU所能够处理的全部指

令的集合,是一个CPU的根本属性。比如我们现在所用的CPU都是采用x86指令集的,他们都是 同一类型的CPU,不管是PIII、Athlon或Joshua。我们也知道,世界上还有比PIII和Athlon快得多的CPU,比如Alpha,但它们不是用x86指令集 ,不能使用数量庞大的基于x86指令集的程序,如Windows98。之所以说指令系统是一个CPU的根本属性,是因为指令系统决定了一个CPU能够运 行什么样的程序。

所有采用高级语言编出的程序,都需要翻译(编译或解释)成为机器语言后才能运行,这些机器语言中 所包含的就是一条条的指令。

1、 指令的格式

一条指令一般包括两个部分:操作码和地址码。操 作码其实就是指令序列号,用来告诉CPU需要执行的是那一条指令。地址码则复杂一些,主要包括源操作数地址、目的地址和下一条指令的地址 。在某些指令中,地址码可以部分或全部省略,比如一条空指令就只有操作码而没有地址码。

举个例子吧,某个指令系统 的指令长度为32位,操作码长度为8位,地址长度也为8位,且第一条指令是加,第二条指令是减。当它收到一个 “00000010000001000000000100000110”的指令时,先取出它的前8位操作码,即00000010,分析得出这是一个减法操作,有3个地址,分别是 两个源操作数地址和一个目的地址。于是,CPU就到内存地址00000100处取出被减数,到00000001处取出减数,送到ALU中进行减法运算,然后 把结果送到00000110处。

这只是一个相当简单化的例子,实际情况要复杂的多

2、 指令的分类与寻址 方式

一般说来,现在的指令系统有以下几种类型的指令:

(1)算术逻辑运算指令

算术逻辑运算 指令包括加减乘除等算术运算指令,以及与或非异或等逻辑运算指令。现在的指令系统还加入了一些十进制运算指令以及字符串运算指令等。

(2)浮点运算指令

用于对浮点数进行运算。浮点运算要大大复杂于整数运算,所以CPU中一般还会有专门负责浮点运 算的浮点运算单元。现在的浮点指令中一般还加入了向量指令,用于直接对矩阵进行运算,对于现在的多媒体和3D处理很有用。

(3)位 操作指令

学过C的人应该都知道C语言中有一组位操作语句,相对应的,指令系统中也有一组位操作指令,如左移一位右移 一位等。对于计算机内部以二进制不码表示的数据来说,这种操作是非常简单快捷的。

(4)其他指令

上面三种都是 运算型指令,除此之外还有许多非运算的其他指令。这些指令包括:数据传送指令、堆栈操作指令、转移类指令、输入输出指令和一些比较特 殊的指令,如特权指令、多处理器控制指令和等待、停机、空操作等指令。

对于指令中的地址码,也会有许多不同的寻址 (编址)方式,主要有直接寻址,间接寻址,寄存器寻址,基址寻址,变址寻址等,某些复杂的指令系统会有几十种甚至更多的寻址方式。

3、 CISC与RISC

CISC,Complex Instruction Set Computer,复杂指令系统计算机。RISC,Reduced Instruction Set Computer,精简指令系统计算机。虽然这两个名词是针对计算机的,但下文我们仍然只对指令集进行研究。

(1)CISC 的产生、发展和现状

一开始,计算机的指令系统只有很少一些基本指令,而其他的复杂指令全靠软件编译时通过简单指令 的组合来实现。举个最简单的例子,一个a乘以b的操作就可以转换为a个b相加来做,这样就用不着乘法指令了。当然,最早的指令系统就已经 有乘法指令了,这是为什么呢?因为用硬件实现乘法比加法组合来得快得多。

由于那时的计算机部件相当昂贵,而且速度 很慢,为了提高速度,越来越多的复杂指令被加入了指令系统中。但是,很快又有一个问题:一个指令系统的指令数是受指令操作码的位数所 限制的,如果操作码为8位,那么指令数最多为256条(2的8次方)。

那么怎么办呢?指令的宽度是很难增加的,聪明的设计师们又想出了 一种方案:操作码扩展。前面说过,操作码的后面跟的是地址码,而有些指令是用不着地址码或只用少量的地址码的。那么,就可以把操作码 扩展到这些位置。

举个简单的例子,如果一个指令系统的操作码为2位,那么可以有00、01、10、11四条不同的指令。现在 把11作为保留,把操作码扩展到4位,那么就可以有00、01、10、1100、1101、1110、1111七条指令。其中1100、1101、1110、1111这四条指令 的地址码必须少两位。

然后,为了达到操作码扩展的先决条件:减少地址码,设计师们又动足了脑筋,发明了各种各样的寻址方式,如基 址寻址、相对寻址等,用以最大限度的压缩地址码长度,为操作码留出空间。

就这样,慢慢地,CISC指令系统就形成了, 大量的复杂指令、可变的指令长度、多种的寻址方式是CISC的特点,也是CISC的缺点:因为这些都大大增加了解码的难度,而在现在的高速硬 件发展下,复杂指令所带来的速度提升早已不及在解码上浪费点的时间。除了个人PC市场还在用x86指令集外,服务器以及更大的系统都早已不 用CISC了。x86仍然存在的唯一理由就是为了兼容大量的x86平台上的软件。

]:(2)RISC的产生、发展和现状

1975年,IBM的设计师John Cocke研究了当时的IBM370CISC系统,发现其中占总指令数仅20%的简单指令却在程序调用中占了80% ,而占指令数80%的复杂指令却只有20%的机会用到。由此,他提出了RISC的概念。

事实证明,RISC是成功的。80年代末,各公司的RISC CPU如雨后春笋般大量出现,占据了大量的市场。到了90年代,x86的CPU如pentium和k5也开始使用先进的RISC核心。

RISC 的最大特点是指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线 ,寄存器数量多,大量操作在寄存器之间进行。由于下文所讲的CPU核心大部分是讲RISC核心,所以这里就不多介绍了,对于RISC核心的设计下 面会详细谈到。

RISC目前正如日中天,Intel的Itanium也将最终抛弃x86而转向RISC结构。

二、CPU内核结构

好吧 ,下面来看看CPU。CPU内核主要分为两部分:运算器和控制器。

(一) 运算器

1、 算术逻辑运算单元ALU(Arithmetic and Logic Unit)

ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还 有专门用于处理移位操作的移位器。

通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。

2、 浮点运算单元FPU(Floating Point Unit)

FPU主要负责浮点运算和高精度整数运算。有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。

3、通用寄存器组

通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。

在通用寄存器的设计上,RISC与CISC有 着很大的不同。CISC的寄存器通常很少,主要是受了当时硬件成本所限。比如x86指令集只有8个通用寄存器。所以,CISC的CPU执行是大多数时 间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。而RISC系统往往具有非常多的通用寄存器,并采用了重叠寄存 器窗口和寄存器堆等技术使寄存器资源得到充分的利用。

对于x86指令集只支持8个通用寄存器的缺点,Intel和AMD的最新 CPU都采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。不过,相对于RISC来说 ,这种技术的寄存器操作要多出一个时钟周期,用来对寄存器进行重命名。

4、 专用寄存器

专用寄存器通常是一些状 态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。

(二) 控制器

运算器只能完成运算,而控 制器用于控制着整个CPU的工作。

1、 指令控制器

指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然 后交给执行单元(ALU或FPU)来执行,同时还要形成下一条指令的地址。

2、 时序控制器

时序控制器的作用是为每条 指令按时间顺序提供控制信号。时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,就 是CPU的主频;而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍。

3、 总线控制器

总线控制器主要用于控制CPU 的内外部总线,包括地址总线、数据总线、控制总线等等。

4、中断控制器

中断控制器用于控制各种各样的中断请求,并根据优先 级的高低对中断请求进行排队,逐个交给CPU处理。

(三) CPU核心的设计

CPU的性能是由什么决定的呢?单纯的一个ALU速度在一个CPU中并不起决定性作用,因为ALU的速度都差不多。而一个CPU的性能表现的决 定性因素就在于CPU内核的设计。

1、超标量(Superscalar)

既然无法大幅提高ALU的速度,有什么替代的方法呢?并行处理的方 法又一次产生了强大的作用。所谓的超标量CPU,就是只集成了多个ALU、多个FPU、多个译码器和多条流水线的CPU,以并行处理的方式来提高 性能。

超标量技术应该是很容易理解的,不过有一点需要注意,就是不要去管“超标量”之前的那个数字,比如“9路超标量”,不同 的厂商对于这个数字有着不同的定义,更多的这只是一种商业上的宣传手段。

2、流水线(Pipeline)

流水线是现代RISC核心的一 个重要设计,它极大地提高了性能。

对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算 (ALU),写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控制器工 作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作,完成第二条指令的前三步,在是运算器,完成第二条指令 的后两部……很明显,当指令控制器工作是运算器基本上在休息,而当运算器在工作时指令控制器却在休息,造成了相当大的资源浪费。解决 方法很容易想到,当指令控制器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是。这样就形成了流水线系统,这是 一条2级流水线。

如果是一个超标量系统,假设有三个指令控制单元和两个运算单元,那么就可以在完成了第一条指令的取址工作后直 接开始第二条指令的取址,这时第一条指令在进行译码,然后第三条指令取址,第二条指令译码,第一条指令取操作数……这样就是一个5级流 水线。很显然,5级流水线的平均理论速度是不用流水线的4倍。

流水线系统最大限度地利用了CPU资源,使每个部件在每个时钟周期都 工作,大大提高了效率。但是,流水线有两个非常大的问题:相关和转移。

在一个流水线系统中,如果第二条指令需要用到第一条指 令的结果,这种情况叫做相关。以上面哪个5级流水线为例,当第二条指令需要取操作数时,第一条指令的运算还没有完成,如果这时第二条指 令就去取操作数,就会得到错误的结果。所以,这时整条流水线不得不停顿下来,等待第一条指令的完成。这是很讨厌的问题,特别是对于比 较长的流水线,比如20级,这种停顿通常要损失十几个时钟周期。目前解决这个问题的方法是乱序执行。乱序执行的原理是在两条相关指令中 插入不相关的指令,使整条流水线顺畅。比如上面的例子中,开始执行第一条指令后直接开始执行第三条指令(假设第三条指令不相关),然 后才开始执行第二条指令,这样当第二条指令需要取操作数时第一条指令刚好完成,而且第三条指令也快要完成了,整条流水线不会停顿。当 然,流水线的阻塞现象还是不能完全避免的,尤其是当相关指令非常多的时候。

另一个大问题是条件转移。在上面的例子中,如果第 一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令?这时就必须等第一条指令的判断结果出来才能执行第二条指令 。条件转移所造成的流水线停顿甚至比相关还要严重的多。所以,现在采用分支预测技术来处理转移问题。虽然我们的程序中充满着分支,而 且哪一条分支都是有可能的,但大多数情况下总是选择某一分支。比如一个循环的末尾是一个分支,除了最后一次我们需要跳出循环外,其他 的时候我们总是选择继续循环这条分支。根据这些原理,分支预测技术可以在没有得到结果之前预测下一条指令是什么,并执行它。现在的分 支预测技术能够达到90%以上的正确率,但是,一旦预测错误,CPU仍然不得不清理整条流水线并回到分支点。这将损失大量的时钟周期。所以 ,进一步提高分支预测的准确率也是正在研究的一个课题。

越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越 长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。

1、解码器(Decode Unit)

这是x86CPU才有的东西,它的作用是把长度不定的x86指令转换为长度固定的类似于RISC的指令,并交给RISC内核。解码分为硬件解码和微解码 ,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复 杂。好在这些复杂指令很少会用到。

Athlon也好,PIII也好,老式的CISC的x86指令集严重制约了他们的性能表现。

2、一级缓存 和二级缓存(Cache)

以及缓存和二级缓存是为了缓解较快的CPU与较慢的存储器之间的矛盾而产生的,以及缓存通常集成在CPU内核, 而二级缓存则是以OnDie或OnBoard的方式以较快于存储器的速度运行。对于一些大数据交换量的工作,CPU的Cache显得尤为重要。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/1201918.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-09-05
下一篇2023-09-05

随机推荐

发表评论

登录后才能评论
保存