请朋友们使用新域名 www.gcores.com 访问机核,并更新移动端 App
巨人手中的三叉戟:Intel性能优势之源

巨人手中的三叉戟:Intel性能优势之源

不只是等灯等灯这么简单

奔街命

PC
本文系用户投稿,不代表机核网观点

作为芯片产业的蓝色巨人,Intel统治个人电脑芯片市场已经有很长一段时间了。提到电脑CPU,大部分人们都会想起那一抹蓝色,以及耳熟能详的“等灯等灯”广告音效。在进入21世纪之后,Intel遇到过挑战与困难,在进行了一定的调整之后,又以雷霆万钧之势重新取得市场的主导。最危急的时刻,Intel采取了哪些措施让它确立了市场的领导地位,又是依靠什么,让Intel的CPU一直保持着性能优势直到今天,今天我们就来聊一聊Intel的霸业之路。

在我们深入Intel的成功秘诀之前,我们得先了解一下Intel在21世纪的前几年到底哪里出了问题。

2006年1月5日,随着Intel发布最后一代Pentium 4处理器,Pentium 4的65nm改良型号,NetBurst这一自2000年就成为Pentium 4基石的架构寿终正寝。这6年里,Intel携手微软,正式确立了Wintel联盟的统治,扫清六合,席卷八荒。但不仅有光鲜的一面,也有对技术路线的选择失误,造成市场占有率开始不断下滑。NetBurst架构作为21世纪初期,Intel推出的第一款主打设计,它代表了Intel对自身产品的期望与规划。

Intel为了尽可能避免流水线填充时的性能损失,决定将流水线拉长,NetBurst架构最鲜明的特征就是那长达20级的指令处理流水线(Instruction Pipeline),在这之前的Pentium 3处理器架构里,流水线级数只有它的一半。

我们可以将CPU看作是一个生产汽车的工厂,流水线的级数就是生产的不同阶段,而指令(Instruction)就是我们要生产的汽车。假如我们的工厂里面,成功生产一辆汽车需要4个阶段:

  1. 车身组装

  2. 安装引擎

  3. 安装内饰

  4. 整车喷漆

我们请四组专业工人来负责不同的阶段,每一组就专门做一件事情。在福特引入流水线的概念之前,生产的过程将是下面这样:

  • 第一组工人组装好车身,然后将车身送往第二组工人处,进行引擎的安装工作,自己去休息室休息。

  • 第二组工人装配好引擎,然后送往第三组工人处,安装内饰,第二组工人去休息室和第一组工人一起休息。

  • 第三组工人安放内时候,将汽车送到最后一组工人处进行喷漆,去休息室休息。

  • 第四组工人喷漆完成,去休息,第一组工人出来组装车身。

显而易见,这样的生产流程对于人力、物力资源有着极大的浪费,生产效率低到令人发指,而福特的流水线则是让这四组工人不停的进行工作,第一组组装好一个车身,送到第二组之后,继续组装新的车身,让整个生产线不停的运转。这样运转之后,单位时间内能生产出来的汽车总量大幅增加,生产效率也有了很大的提升

之所以要强调单位时间,是因为生产一辆汽车所需要的总时间没有变化,理论上这样的流水线作业可以让生产线的单位时间内总产出量提升四倍,但实际上并不能达到这样的提升幅度,因为第一辆车生产的时候,后面三个阶段还是处于闲置状态,他们需要等第一辆车慢慢推进到自己这一阶段。

为了进一步提升单位时间内能生产出的汽车总量,我们决定将每一个阶段进一步细分:

  1. 车身组装

    • 组装前半部分

    • 组装后半部分

  2. 安装引擎

    • 将引擎安装到车身内

    • 连接引擎和传动装置

  3. 安装内饰

    • 安装车门、方向盘

    • 安装座椅、面板

  4. 整车喷漆

    • 前半部分喷漆

    • 后半部分喷漆

类似于这样的细分,引入更多的工人,让流水线可以同时处理的车辆从4辆翻倍至8辆,单位时间内的生产总量又有了很大的提升。回到CPU工作流程本身,一个指令被完全执行完毕需要一定的时间,而在执行这些指令的时候,CPU是以和汽车生产工厂类似的流水线进行作业的。显而易见,更多的流水线级数可以让CPU在同一时间里能处理的指令数量更多。

Intel之所以在NetBurst以及后续的改进设计里加入如此庞大的流水线级数,这更多的是出于市场宣传的角度。在大众的认知里,数字越大,性能就越好。为了达到更高的核心频率,Intel选择了将流水线拉长这一手段,他们也确实达到了自己的目的:极限超频玩家借助液氮的力量,可以将Pentium 4超频至8GHz,Intel当时还打算冲击10Ghz的目标。

CPU的最基本构成是半导体二极管开关,这些开关的闭合早就了电脑里的大脑中枢,核心频率(Clock Rate)的单位是赫兹,这是因为CPU工作过程中,有一个信号来控制所有开关的闭合,而开关的频率高低在一定程度上代表了CPU的计算能力,现代CPU的频率都是以Giga Hz作为单位,意味着这些CPU可以在一秒钟内闭合数十亿次。在CPU工作流水线里,每一级流水线必须在一个时钟周期(Clock Cycle)内执行完毕,在时钟周期固定的情况下,核心频率越高,单位时间内所能提供的时钟周期越多,所以能处理的指令也更多。

如果流水线只有10级,那么一个指令走完一整条流水线所用的时间就是10个时钟周期,现在变成了20级流水线,那么一个同样的指令走完流水线就需要20个时钟周期,为了让指令执行的时间和以前的一样,必须将运行速度提高一倍才行,这样,性能不会有很大的损失,核心频率就更好看了。

更多的流水线就一定代表了更多的指令处理量吗?并不一定。

我们上面的假设都是基于理想情况下,但实际中,并不是所有的指令都是有效指令,有些指令是空白的,有些指令需要被挂起等待几个周期,而且CPU在执行不同程序的指令时,有可能需要从头重新加载指令,要填满如此多的流水线级数,需要很长的时间,这对于CPU资源来说是一个巨大的浪费。只有在整个流水线全部都处于工作状态时,CPU的工作效率才能尽可能的最大化,过长的流水线反而会拉低性能,为了弥补这一点,Intel不得不大幅度拉高主频。后期的改进型Prescott和Cedar Mill甚至有31级流水线,核心频率超过了3.8Ghz,虽然现在CPU核心频率超过3.8Ghz稀疏平常,甚至可以达到5Ghz,但要明白,现在的制程普遍都是14nm、12nm,而那时的制程都是90nm和65nm,如此高的频率带来的后果就是发热与高功耗。

更多的流水线级数与更高的核心频率并没有为Intel的产品带来实质性的性能优势,反而提升了产品的制造成本与售价,Intel在设计上付出了巨大的硬件电路开销,造成整体芯片尺寸大增,从Pentium III的100m㎡,飙升至217m㎡。与此同时,AMD凭借着Athlon系列良好的性价比与偏低的功耗及发热在个人电脑市场开始攻城略地,在最接近的时候,AMD与Intel的市场占有率几近持平。

为了扭转这一不利的局面,Intel内部当机立断,果断抛弃了NetBurst这一失败的架构设计,放弃了利用高主频来吸引眼球的营销策略,转而从底层变革,彻底转变自己的技术路线,而这一转变的成果,就是为后面辉煌十年打下基础的Nehalem架构(Intel Core架构面向的更多是企业级服务器市场)。

我们先来看看Nehalem带来了一些什么新东西:

  1. Core i7、i5、i3的命名模式从这一代开始使用

  2. Intel开始迈入45nm制程

  3. 重新引入超线程技术

  4. Intel Turbo Boost 1.0睿频技术

  5. 8MB L3缓存

Intel为了解决NetBurst架构带来的一系列问题,从几个方面重新设计了Nehalem架构,第一个要处理的就是CPU发热功耗严重的问题。

在Intel Core架构下的芯片里,处于待机空载状态的核心可以被休眠,以节省电源开销,减少发热,但是由于电流泄露的问题,这些休眠的核心还是会一定程度上发热并消耗电源,Intel通过对晶体管采用全新设计,引入了“Power Gating”技术,这项技术可以隔绝泄露的电流,让休眠的核心可以接近于0的电源消耗与发热。

引入的“Power Gating”技术带来的另一个好处就是,本来应该由这些休眠的核心所消耗的功耗,可以被分配到正在工作的核心上去,让这些核心能够以更高的频率和电压进行工作,在相同的电源功率下,提供更高的性能表现。不仅如此,Intel还在芯片上集成了一个可编程的微控制器来进行更加细致、复杂的电源管理算法,让CPU性能调教更加智能,并且45nm制程的引入让Nehalem架构的芯片功耗与发热表现更上一层楼,也打下了Intel Turbo Boost睿频技术的基础。

Nehalem抛弃了NetBurst的长流水线设计,将流水线级数从31级减少到了20级,看起来和NetBurst开始的20级流水线级数一样,但是Nehalem的核心数量从Pentium 4系列的单核增加到了2 - 8核心,20级的流水线数量对于多核心来说是一个比较恰当的设计。

CPU架构设计的核心目标就是让CPU尽可能保持在满载状态,减少空指令与指令挂载,Intel在Nehalem里引入了的是模块化设计:

四个核心拥有自己的L1、L2缓存,共享一个8MB的L3缓存,通过QPI(Quick Path Interconnect)进行核心之间的通信,QPI技术有着低延迟、高带宽的传输特性,Intel通过一系列创新与改进,让内存中等待执行的指令通往Nehalem的四个核心的道路畅通无阻,极大的提高了流水线效率与核心性能。

不仅如此,超高的带宽还让超线程技术(Simultaneous Multithreading )有了用武之地,Nehalem的单个核心可以同时执行两个指令,SMT技术可以充分利用高带宽的性能优势,让CPU的整体利用率更上一层楼,为了进一步释放SMT技术的潜力,Intel在Nehalem架构里面加大了重排序缓冲区(Re-order Buffer, ROB),当只有核心内只有一个线程在执行时,它可以独享所有资源,而双线程同时进行时,则可以共享资源,将硬件资源的利用率最大化。

同时期AMD的Barcelona架构处理器,虽然有着更高的L1、L2缓存,但是仅仅2MB的L3共享缓存和DDR2以及效率更低的核心内部通信效率,让整体性能大幅落后全新设计的Nehalem架构CPU。更大的L3缓存可以让四个核心以更快的速度和更高的效率来执行指令,因为大缓存可以减少从内存里拉取待执行指令的次数,一次性多存储一点。

模块化的设计让Intel对于产品有了更灵活的定位,通过削减核心数量、减小缓存大小就可以推出定位更低的产品,而反过来,只要堆叠硬件资源就可以轻松推出性能更强劲的产品。

Intel通过大刀阔斧的改进自己的底层架构设计,抛弃了主频才是一切的观念之后,推出的Nehalem让世界为之惊叹,强劲的性能与优秀的功耗表现,让Intel在市场上一扫之前的颓势,给AMD带来了非常大的冲击。AMD暴露了自己赌徒的特性,在后续的推土机(Bulldozer)架构中,它押宝未来是属于多核心多线程的,将整体设计倾斜于加入更多的核心,忽视了单核性能的挖掘,为了弥补单核性能的孱弱,只能依靠拉高核心频率来弥补,这和Pentium 4时代的Intel做法如出一辙,结果也是一模一样。八核心的推土机CPU甚至在某些情况下还竞争不过自己的前代旗舰产品,更不用说浴火重生的Intel Core i7处理器。

与同时代CPU相比,i7创造的优势可谓是空前的:i7是至少8线程,支持Turbo Boost动态频率技术;i5是4个线程,支持Turbo Boost;i3全部是双核4线程,不支持Turbo Boost。

同一代的Core处理器中,i7和i5主要区别是前者支持超线程,多任务能力和支持大量线程并行的应用,如视频渲染、3D渲染、科学计算、程序编译、文件压缩等,工作性能比同频率的i5高出5%-30%。而更多核心、更高主频的i7在这类应用中的性能优势就更大了。

Intel并没有停下自己继续扩大优势的脚步,与Nehalem一同推出的还有它们未来的发展计划:Tick-Tok战略。如果说Nehalem为Intel后续十年的CPU打下了坚实的基础的话,那么钟摆战略就是Intel个人电脑芯片市场上的护城河。

Intel每年不仅投入巨资,进行CPU基础架构的研发改进工作,它还有着全球顶尖的芯片制造工厂,同样投入海量资金进行制程的升级。制程代表了CPU内半导体元器件的最小尺寸,在同样的核心面积里,能放更多的元器件,就能得到更多的性能。更小尺寸的元器件还能实现更加复杂的电路设计,让新的架构设计得以实现。Tick-Tok战略就是Intel以两年为一个产品迭代周期,其中一年更新CPU的制造工艺,改良制程,另外一年升级底层架构,两者相配合,给研发团队和制造工厂一定的时间进行缓冲,也让消费者有升级的动力。

由于钟摆战略的执行,让Intel的产品迭代速度十分的稳定,这就给了竞争对手十足的压力:友商一直在有条不紊的更新产品,如果AMD不给出回应,对于本就已经十分糟糕的市场份额只会火上添油,让情况更加恶化。在推土机发布后的数年里,AMD一直疲于追赶Intel的发布速度,没有办法,也没有资源和精力来彻底重新设计心的CPU架构,直到拿下Sony和微软的游戏主机订单后,才有了喘息之力,有了Zen架构的出现。

Intel在Nehalem的基础上,稳步提升自己产品的性能,不断深挖单核性能与效率,而电源控制更是重中之重,不仅在个人桌面电脑领域大幅领先对手,更是实际上垄断了笔记本电脑市场,这与10多年前在Pentium 4上吃的亏是密切相关的。

自从Nehalem发布已经10年过去了,新的十年里,Intel又会拿出什么样的东西来保持自己的领先,让我们拭目以待吧。

109

查看更多评论

下载 App