更新时间:2023-09-12 09:47
自1989年起英特尔就一直有条不紊地遵循着其称为“Tick-Tock模式”的新产品创新节奏,即每隔一年交替推出新一代的先进制程技术和处理器微体系架构,随着时间的推移,我们逐渐看到了这二者在处理器整体性能表现中所起到的作用已远远超出了处理器主频和缓存技术。先进的制程技术为处理器性能的变革提供了一个良好的基础,而优秀的核心架构则能够弥补处理器主频的不足,更能简化缓存设计而降低成本,二者结合才是优秀处理器的根基。然而对于处理器厂商而言,更换核心架构是极其艰难的举动,因为这将投入大量研发资金,更冒着性能不佳的风险。
(今天我们主要谈谈处理器架构,至于制程技术大家可以查阅“32纳米”词条)
回顾历代处理器,我们不难发现英特尔在绝大部分时间内都保持业界的领先地位,无论是早期的P5/P6微架构,还是造就辉煌的Core微架构以及即将全面铺向市场的Nehalem微架构处理器,都已经或者即将促使整个产业的变革。
奔腾采用P5架构,这被证明是伟大的创举。在英特尔的发展历史中,第一代奔腾绝对是具有里程碑意义的产品,这一品牌甚至沿用至今,已经有十几年的历史了。尽管第一代奔腾60的综合表现很一般,甚至不比486DX66强多少,但是当主频优势体现出来之后,此时所表现出来的威力令人震惊。奔腾75、奔腾 100以及奔腾 133,经典的产品一度称雄业界。
在奔腾时代,虽然英特尔在处理器微架构方面一直保持着领先,但是英特尔并未停止前进的步伐,于是在发布奔腾的下一代产品奔腾 II时,英特尔采用了专利保护的P6架构。P6架构与奔腾的P5架构最大的不同在于,以前集成在主板上的二级缓存被移植到了处理器内,从而大大地加快了数据读取和命中率,提高了性能。
NetBurst微架构是P6微架构的后继者,第一个使用这架构的是Willamette核心,于2000年推出。Willamette是第一代奔腾IV处理器所用的核心,而全部的奔腾 IV处理器都是使用Netburst微架构。2001年推出的Foster(至强处理器)也是使用本架构,同时基于奔腾IV的赛扬、赛扬 D,以及双核心的奔腾 D、奔腾 Extreme Edition都是使用本架构。
立足于性能而设计的英特尔NetBurst微架构将频率提升超过了40%,虽然IPC值较低,但由于频率的增加弥补了不足(性能=频率×IPC),并且为最终用户提供了更高的整体性能。和P6微架构一样,英特尔NetBurst微架构凭借无序推测执行,尽管分支预测算法相当精确,但也不可能100%正确。
为了使由于分支误预测而引起的损失降到最低并使IPC均值最大化,采用扩展深度流水线技术的Intel NetBurst微架构极大地减小了分支预测错误的数量,并提供了从这些错误恢复的快速方法。为了能使误预测引起的损失最小,英特尔NetBurst微架构实现了高级动态执行引擎和一个执行跟踪缓存。
不过值得一提的是,英特尔NetBurst微架构中使用了超流水线技术,这使得流水线的深度相比P6微处理器体系结构的提高了一倍,不过在后来的实际应用中表明提高流水线长度之后会令执行效率大幅度降低,
能够弥补这个问题的办法只能是再次提高主频和增加二级缓存容量。
不过由于当时处理器工艺制程的限制,导致处理器的主频的可提升空间越来越小, 与此同时巨大的缓存容量也是一个负担,这不仅提高了成本,也令发热量骤升。这一点使得英特尔必须要及时地对处理器微架做出新的,根本性地调整。
由于NetBurst架构已经无法满足未来处理器发展的需要,所以英特尔于2006年推出了具有革新意义的Core微架构。
1.流水线效率大幅度提升
主频至上的处理器研发思路显然已经被淘汰。Core微架构的处理器将超流水线缩短到14级,这将大幅度提升整体效率。此外Core微架构采用了四组指令编译器,就是指能够在单一频率周期内编译四个x86指令。这四组指令编译器由三组简单编译器(Simple Decoder)与一组复杂编译器(Complex Decoder)组成。四组指令编译器中,仅有复杂编译器可处理最多由四个微指令所组成的复杂x86指令。如果不幸碰到非常复杂的指令,复杂编译器就必须呼叫微码循序器(Microcode Sequencer),以便取得微指令序列。
为了配合超宽的编译单元,Core微架构的指令读取单元在一个频率周期内,从第一阶指令快取中,抓取六个x86指令至指令编译缓冲区(Instruction Queue),判定是否有符合宏指令融合的配对,然后再将最多五个x86指令,交派给四组指令编译器。四组指令编译器在每个频率周期中,发给保留站(Reservation Station)四个编译后的微指令,保留站再将存放的微指令交派(dispatch)给五个执行单元。
因为x86指令集的指令长度、格式与定址模式都相当混乱,导致x86指令解码器的设计是非常困难的。但是如今的局面已经有所改变,一方面是高主频对于四组精简结构有着很大的依赖性,另一方面是其它辅助性技术也能很大程度上弥补解决定址模式混乱的难题。毫无疑问,英特尔的这一创举将是在处理器核心架构设计上具有里程碑意义的。
2.全新的整数与浮点单元
从P6到NetBurst架构,整数与浮点单元的变化还是相当明显,不过Core微架构的变化也同样不小,只是部分关键技术又改回P6架构时代的设计。Core具备了3个64bit的整数执行单元,每一个都可以单独完成的64位整数运算操作。
能够独立完成64bit整数运算对英特尔 x86处理器来说还是头一回,这也让Core得以走在了竞争对手的前列。此外,64bit的整数单元使用彼此独立的数据端口,因此Core能够在一个周期内同时完成3组64bit的整数运算。极强的整数运算单元使得Core在包括游戏、服务器项目、移动等方面都能够发挥广泛而强大的作用。
在以往的NetBurst架构中,浮点单元的性能很一般,Core构架针对这个问题进行了不小的改进。Core构架拥有2个浮点执行单元同时处理向量和标量的浮点运算,其中一个浮点单元执行负责加减等简单的处理,而另一个浮点单元则执行负责乘除等运算。尽管不能说Core构架令浮点性能有很大幅度的提升,但是其改进效果还是显而易见的。
Core微架构的预读取机制还有更多新特性。数据预取单元经常需要在缓存中进行标签查找。为了避免标签查找可能带来的高延迟,数据预取单元使用存储接口进行标签查找。存储操作在大多数情况下并不是影响系统性能的关键,因为在数据开始写入时,处理器即可以马上开始进行下面的工作,而不必等待写入操作完成。缓存/内存子系统会负责数据的整个写入到缓存、复制到主内存的过程。
此外,Core架构使用了Smart Memory Access算法,这将帮助处理器在前端总线与内存传输之间实现更高的效率。
Core架构的缓存系统也令人印象深刻。双核心Core架构的二级缓存容量高达4MB,且两个核心共享,访问延迟仅12到14个时钟周期。每个核心还拥有32KB的一级指令缓存和一级数据缓存,访问延迟仅仅3个时钟周期。从 NetBurst架构开始引入的追踪式缓存(Trace Cache)在 Core架构中消失了。NetBurst 架构中的追踪式缓存的作用与常见的指令缓存相类似,是用来存放解码前的指令的,对NetBurst架构的长流水线结构非常有用,而Core架构回归相对较短的流水线之后,追踪式缓存也随之消失。
经历Core微架构的辉煌之后,英特尔再接再厉,于2008年末推出了新的Nehalem微架构, 它基本是建立在Core微架构的骨架上,外加增添了SMT、3层Cache、TLB和分支预测的等级化、IMC、QPI和支持DDR3等技术,比起从Pentium4的NetBurst架构到Core 微架构的较大变化来说,从Core微架构到Nehalem微架构的基本核心部分的变化则要小一些。
1.QPI总线技术
Nehalem架构使用的QPI总线是基于数据包传输(packet-based)、高带宽、低延迟的点到点互连技术(point to point interconnect),速度达到6.4GT/s(每秒可以传输6.4G次数据)。每一条连接(link)是20bit位宽的接口,使用高速的差分信号(differential signaling)和专用的时钟通道(dedicated clock lane),这些时钟通道具有失效备援(failover)。QPI数据包是80bit的长度,发送需要用4个周期。尽管数据包是80bit,但只有64bit是用于数据,其它的数据位则是用于流量控制、CRC和其它一些目的。这样,每条连接就一次传输16bit(2Byte)的数据,其余的位宽则是用于CRC。由于QPI总线可以双向传输,那么一条QPI总线连接理论最大值就可以达到25.6GB/s(2×2B×6.4GT/s)的数据传送。单向则是12.8GB/s。(更详细资料参考“快速通道互联QPI”词条)
2.IMC整合内存控制器
Nehalem架构的IMC(integrated memory controller,整合内存控制器),可以支持3通道的DDR3内存,运行在1.33GT/s(DDR3-1333),这样总共的峰值带宽就可以达到32GB/s。不过还并不支持FB-DIMM,要Nehalem EX(Beckton)才有可能会支持FB-DIMM(Fully Buffered-DIMM,全缓冲内存模组)。每通道的内存都能够独立操作,控制器需要乱序执行来降低(掩盖)延迟。(更详细资料参见整合内存控制器词条)
3.SMT
同步多线程(Simultaneous Multi-Threading,SMT)技术又重新回归到了Nehalem架构,这最早出现在130纳米的奔腾IV上。对于打开了SMT的处理器来说,将会遭受到更多的命中失败,并需要使用更多的带宽。所以Nehalem比奔腾IV是更适合使用SMT的。
Nehalem的同步多线程(Simultaneous Multi-Threading,SMT)是2-way的,每核心可以同时执行2个线程。对于执行引擎来说,在多线程任务的情况下,就可以掩盖单个线程的延迟。SMT功能的好处是只需要消耗很小的核心面积代价,就可以在多任务的情况下提供显著的性能提升,比起完全再添加一个物理核心来说要划算得多。这个和以前P4的HT技术是一样的,但比较起来,Nehalem的优势是有更大的缓存和更大的内存带宽,这样就更能够有效的发挥。按照英特尔的说法,Nehalem的SMT可以在增加很少能耗的情况下,让性能提升20-30%。(更详细资料参见同步多线程技术词条)
4.全新设计的缓存体系
Nehalem的每个核心有一个私有的通用型L2,是8路联合的256KB,访问速度相当快。Nehalem的L2相对于其L1D来说,既不是包含式(inclusive)也不是独占式(exclusive),可以在两个核心的私有缓存(L1D和L2)之间传递数据,尽管不能够达到全速。
与Core微架构相比,Nehalem新增加了一层L3缓存,这是为了多个核心共享数据的需要(Nehalem-EX具有8个核心),也因此这个L3的容量很大。从架构上看,Nehalem架构的处理器所配备的16路联合、8MB的L3对于前两级来说,是完全包含式的,并且由4个核心共享。(更详细资料参见新增缓存层级体系词条)
英特尔长期以来不懈遵循摩尔定律,一直是引领行业创新的排头兵。通过对处理器架构的不断创新,这种惊人的创新速度不仅提升了处理器的性能,还提供了新的特性和能力,最终满足了用户日益增长的需求。我们十分关注这种持续的发展,行业需要能够以更快且更加可预测的创新步伐来提供平台,这些平台的特点就是更快、能够实现更多连接、值得信赖、个性化且能够带来出色的计算体验。凭借行业领先的芯片专业知识,以及将为未来十年及以后提供强劲增长动力的架构设计能力,英特尔公司已迈出了协调且日益加快的架构创新步伐。
发展步调是指英特尔公司的战略,即大约每两年推出一款新的微体系结构和新一代硅制程技术。
英特尔公司在硅制程技术上的不断创新使晶体管密度约每两年就要翻一番,这就为处理器设计师提供了强大的设计灵活性来设计出更出色的产品。过去,设计灵活性一直被用来在降低功耗的同时提供更卓越的性能和特性。展望未来,用户不断增长的需求将要求更加快速地提升性能,并跨越模糊的使用界限实现各种能力的融合。因此,这就需要一种能够跨越广泛使用领域进行扩展的解决方案架构,而这一目标只能通过全行业的创新来实现。英特尔 架构和芯片发展步调模式可提供强大的创新动力,不但能够以快速、协调的步伐推动全新处理器架构和芯片组的发展,而且还能成为平台级行业创新的“催化剂”,提供高能效表现的种种优势。
发展步调所坚持的原则基于英特尔公司所谓的芯片和微体系结构“tick-tock”模式。该模式将提供一款横跨所有规模市场的通用处理器架构。每一“tick”代表硅压缩频率(beat rate),并且每一“tick”都有一个相对应的“tock”,后者代表新微体系结构的设计,大约每两年更新一次。英特尔公司全球范围的设计方法和大量的纪律是其发展步调原则的奠基石,该发展步调支持英特尔公司提供对超越个别产品能力的处理器和平台的创新。
一个很好的实例即英特尔公司为提供出色的服务器性能而扩展笔记本电脑架构所实现的巨大飞跃。英特尔在其处理器中实现了这一巨大飞跃。英特尔酷睿(TM)2双核处理器基于英特尔酷睿(TM) 微体系结构。一个物理处理器中内置了两个完整的执行内核,它们以相同的频率运行,可为笔记本电脑以及台式机提供行业领先的能效表现。英特尔酷睿(TM) 微体系结构的计算元件被形容为一个整合的内核,它支持架构和技术的优化,以满足突破性性能和能效的使用需求。英特尔将一如既往地为服务器、台式机和移动产品提供基于多核处理器技术的通用可扩充架构。最终,经过不断创新,一款专门针对性能功耗比和扩展的能力进行优化的架构诞生,由此将推动基于通用芯片基础的“tick-tock”发展步调中芯片组、互连、内存以及平台等的一系列创新。
兑现发展步调承诺的核心是全球多个设计团队能够并肩作战。这就要求各团队之间进行有效协调,以最少的重合和冗余实现彼此方法和计划的相互补充。英特尔还支持软件社区和一些大学开发多线程应用,并致力于促使行业价值链厂商充分感受创新步伐带来的优势。这包括推进标准活动、行业与监管环境的契合以及为满足用户需求所做出的真正努力。
早在 20 世纪 90 年代初,英特尔公司凭借其 32 位英特尔 处理器架构(IA32)赢得行业领先地位,从而确立了一个行业标准,并对英特尔奔腾处理持领先地位。1993 年,英特尔奔腾处理器的推出标志着第五代台式机处理器的问世。随后,一系列创新紧随其至:1995 年,英特尔 高能奔腾处理器推出;1997 年,英特尔 奔腾 II 处理器推出;1999 年,英特尔 奔腾 III 处理器推出;2000 年,基于英特尔 NetBurst 架构的英特尔 奔腾 4 处理器推出。同年,英特尔还推出了英特尔至强处理器。
2003 年,首款基于 90 纳米制程技术的英特尔奔腾M 处理器的推出标志着向高能效表现的转奔腾 M 处理器的推出标志着向高能效表现的转变,以性能功耗比作为衡量标准,具有扩展的能力。这些处理器的推出均基于芯片创新发展步调,并不一定伴随有设计流程和方法。
2006 年,英特尔推出全新英特尔酷睿(TM) 微体系结构,它为英特尔 架构台式机、笔记本电脑和主流服务器多核处理器奠定了坚实的基础。此次创新基于 65 纳米制程技术,是发展步调中架构设计和芯片创新挂钩的发展道路上的首款微体系结构。英特尔 架构和芯片发展步调有几个方面与业内其他厂商不同。这些方面包括:
一个面向所有大规模市场并针对性能、能力和能效而优化的微体系架构;
风行设计再利用原则而无需等待芯片密度可用的联合设计团队,但这却推动向共同目标及设计目标迈进;
关注利用并联的芯片组和行业价值链厂商的发展实现平台级创新,快速增强平台能力。
因此,英特尔的发展步调模式进一步巩固了其它芯片创新的可信基础,以便按照将推动行业范围内的创新和增长的步伐提供行业领先的高能效表现架构。
英特尔公司的“tick-tock”发展战略
面向多核处理器的“tick-tock”发展步调的实施一直基于整合的内核,后者是基本计算元件,能够提供目标性能和能力以及出色的能效。
因此,“Tick-tock”就需要同步化设计流程来实现下列创新,符合横跨各市场领域的用户价值:
更低功耗; 多线程性能;特性和能力;增强模块性和灵活性。
执行的关键在于将这一创新步伐带给行业创新者,以便为用户带来真正的利益。所以,英特尔公司调整了关乎整体行业领先情况的发展步调:
每两年更新一次硅制程技术(“ticks”),同时,每两年更新一次架构( “tocks”);
多个经验丰富的设计团队,同时致力于保持设计目标和重要事件的同步,并确定流程接触点来最大限度地提高效率;
对技术能力和特性的频繁“培训”也提供了适应改变的能力。
通过不断遵循摩尔定律,英特尔几乎每两年就将一个硅核上的晶体管数量增加一倍。双倍的晶体管数量提供了极大的设计灵活性,进而可提升性能、扩展能力并提高能效。在最新一代英特尔 酷睿(TM) 微体系结构产品中,通过增加内核数量这一设计灵活性带来了巨大的性能提升,为全新改进的应用带来卓越的特性/能力,并大幅降低了功耗。英特尔正着眼于可信且日益加快的创新步伐,大约每两年就要兑现一款新的微体系结构和一次硅制程技术改进。
英特尔的“tick-tock”架构和芯片发展步调模式为业界和用户带来了巨大优势,新的能力和解决方案将满足他们日益增长的需求。在英特尔,我们的宗旨是以摩尔定律的创新速度兑现架构创新。