注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

瘋人院

lunatic asylum

 
 
 

日志

 
 

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载)  

2011-08-03 21:31:18|  分类: 硬件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

深入浅出多核心处理器技术

                 ——全面解析Intel Core微架构

 

作者:牛子敏 杨博 陈庆

 

摘要:多核处理器技术已经逐渐成为处理器发展的趋势。本文首先阐述了Intel采用多核处理器作为发展方向的原因,介绍了多核处理器的概念及特点,并以Intel Core微架构为例,详细介绍了该系列处理器的技术特点和性能。本文最后还对多核处理器的前景进行了展望。

 

关键词:多核处理器,IntelCore微架构

 

一、

    由于近几年来,由于PC应用越来越复杂,需要越来越强大的CPU处理能力。而CPU性能提高是通过提高CPU主频和前端总线频率,以及扩大缓存来实现。提高主频对PC散热的设计是很大的挑战,同时会增加成本,单核心处理器的发展已经达到一个极限。为了解决这些问题,人们提出了多核技术的概念。多核技术不但可以提高性能,而且很好地解决了功耗的问题,成为未来处理器的发展方向。

    由于Intel 原本寄以厚望、号称频率将提升至10GHz NetBurst 微架构屡遭重创,如采用90nm制造工艺的 Prescott 遭遇功耗过高、散热困难的问题,原定推出的4GHz Pentium 4 580被无限期推迟,而后继产品也被取消。NetBurst 微架构遭遇无法解决的功耗问题,发展受阻。与此同时,竞争对手 AMD K8 处理器在性能和功耗两方面都表现良好,正在桌面和服务器平台上侵占原本属于 Intel 的市场,势头迅猛。这也迫使 Intel 只能选择重新研发兼具高性能与低功耗的微架构。因此Intel选择了使用多核心架构的Core微架构作为其下一代产品。

    因此本文着重讨论了Intel Core微架构各方面的技术细节,这对未来处理器的发展是具有重大意义的。

 

二、 Intel为何转向Multi-Core的开发?

    其实在Intel之前,HP,IBM已经有多核处理器开发出来,例如苹果之前用的IBM POWER4处理器,只不过没有应用到桌面系统而已。此次Intel调整方向主要应该有如下三个原因。

    第一,双核心技术的引入是提高处理器性能的另一个行之有效的方法。因为处理器实际性能是处理器在每个时钟周期内所能处理的指令数的总量,因此增加一个内核,处理器每个时钟周期内可执行的指令数将增加一倍。在双核处理系统中,所有的任务和线程都能够使用系统中的所有资源。操作系统会安排每个处理器使用资源的顺序和使用时间,任务或者线程会在两个物理内核中并行处理。而在单个物理内核中,任务和线程在本质上还是串行处理的。因此在同等级别中双核处理器的工作效率要远远高于单核处理器。

第二,引入双核心的架构还可以全面增加处理器的功能,这也是一个很重要的因素。有这么一个事实:双处理器架构的引入和微软下一代Vista操作系统将在很大程度上促进虚拟技术的发展。AMD和英特尔都坚信虚拟技术将成为下一代电脑系统的一个主要特征,而且是重要特征。

    第三,引入双核心架构的一个重要原因是随着单核集成度越来越大,所需要的核心电压也随之增长,CPU功耗是和电压成立方比的,因此将导致CPU功耗会大幅度增长,散热也会成为一个很难解决的问题。综上诸个因素,双核心架构都是很有利的,这也就难怪突变方向朝双核架构大力发展。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

  

 

三、 Intel Core微架构技术细节的介绍

 

2.1 先进的65nm制程

    1965年,Intel公司的创建者Gordon Moore提出了一个众所周知的理论--“摩尔定律”:认为集成电路密度大约每两年翻一番。在过去40年的时间里面,摩尔定律不但印证了集成电路技术的发展,而且也印证了计算机技术的发展。Intel公司在2005年开始采用65nm的生产工艺,在其最新推出的双核处理器中使用的就是这种最新的生产工艺。

    如今的65nm的工艺与之前Intel使用的90nm工艺相比,Intel65nm工艺沿用了90nm工艺和以往使用的很多成熟技术,比如300mm直径的晶圆(Wafer Size)、硅化镍栅极、1.2nm二氧化硅栅极电介质、低介电碳掺杂氧化物(Low-K CDO)、铜连接工艺等。除此以外,65nm工艺还拥有一些新特性:将从90nm工艺开始使用的应变硅技术升级到第二代,使得晶体管的效率更高;此外,8层金属传导层堆叠比90nm工艺的7层增加了一层,接触栅极节距也减小到220nm,使得晶体管密度进一步加大;采用更新的光刻技术,以便制造出35nm宽的栅极。

    Intel的处理器都是由CMOS(互补金属氧化物半导体)组成的,CMOS包括N型和P型两种晶体管,由源极、栅极和漏极组成,在栅极和其他两级之间有一层栅极(绝缘)电介质。在NMOS中,载流子是带负电荷的电子,当NMOS的栅极电压高的时候,电流处于“开”的状态,电压低的时候处于“关”的状态。而PMOS的载流子是带有正电荷的空穴,开关状态与NMOS正好相反。

    但是随着制造工艺的进步,晶体管的体积变得越来越小,某些问题也随之而来。在130nm及以前工艺的时候,由二氧化硅制成的栅极电介质的厚度足以阻挡电子的通过,由于漏电带来的损耗功率非常小。但当制造工艺发展到90nm工艺的时候,栅极电介质的厚度减少到了1.2nm,仅仅是5个原子层的厚度,由于隧道效应,电子可以从其中穿过,带来的后果就是漏电量和发热量的增加。源极与漏极之间的硅层也越来越薄,在晶体管处于“关”状态的时候产生了严重的阈下泄漏。这两种泄漏电流给晶体管增加了沉重的负担。此外,源极也在向硅基板泄漏电流。根据Intel官方网站报道的一些相关研究,如果没有任何技术措施,65nm工艺CPU漏电功率将达到100W150W,而45nm工艺的CPU仅仅阈下泄漏功率就将达到100W,总发热量足以使CPU在开机数秒钟之内烧毁。针对这一问题,Intel公司提出了如下解决方案:

    为了提高晶体管的工作效率,降低动态能耗,Intel90nm工艺中引入了单轴应变硅技术。其基本的思想就是减小源极与漏极之间的电阻,使得工作电流(Ion)更大,以提高晶体管的响应能力。应变硅技术在栅极氧化物层下面使用了一层极薄的单晶硅,并对其预施加张力或者压力,改变原有的晶格结构。

    对于NMOS来说,载流子是电子,使用高张力的氮化硅陶瓷薄膜帽,对硅晶格施加张力,加大硅原子的距离,可以让电子更方便地通过,提高Ion;对PMOS而言,载流子是空穴,使用选择性硅锗源极/漏极,可以施加压力提高空穴密度,从而加大Ion65nm工艺依然沿用了90nm工艺的基本原理,但将应变硅技术提升为第二代,进一步提高了工作电流(Ion)和漏电电流(Ioff)之比,与90nm工艺相比,使得晶体管的工作电流提升了15%,漏电电流降低了4倍。

    随着工艺的改进,晶体管的栅电容也有了进一步的下降。65nm工艺的栅极氧化物二氧化硅层的尺寸没有变化,仍然维持着1.2nm的厚度,但栅极长度减少为35nm,这使得栅极电容下降了大约20%,加上工作电流的提高,带来的好处是使晶体管的切换频率提高了1.4倍。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

 

    65nm工艺制程的SRAM中,Intel还引入了休眠晶体管模式来降低能耗,这一技术也将被引进65nm工艺制程的处理器核心中,减少缓存的发热量。在SRAM缓存子块上连接一个NMOS休眠晶体管,使其在空闲时进入休眠状态,可以大幅度降低SRAMALU(算术逻辑单元)的电流泄漏。与90nm工艺中采用的体偏置技术相比,它的性能大约是后者的1~100倍。除此之外,堆叠效应也能够对降低能耗有一定的贡献。多重供应电压技术也是65nm工艺降低能耗的手段之一,它可以有效降低运行功率(Active Power)。通过这些技术,65nm工艺处理器的发热量将会有不小的降低。

 

2.2 14级指令执行管线和四组指令编码器

    随着当今技术的不断发展,新型体系结构设计需要考虑两方面的要素:一是合理的增加计算机系统中硬件功能的比例,使体系结构对操作系统,高级语言甚至应用软件提供更多,更好的支持;二是通过多种途径提高计算机体系结构中的并行性等级,使得凡是能并行计算和处理得问题都能并行计算和处理,使这种体系结构和组成能对算法提供更多,更好得支持。而提高并行性有3种有效的途径,一是时间重叠,二是资源重复,三是资源共享。时间重叠就是要使计算机能够流水的处理数据和指令,而流水线是一把双刃剑,使用不好的话,未伤人先伤己。Intel最新发布的多核处理器在架构变化中,Core核心第一个变化就是处理器流水线缩短了---仅采用14级指令执行管线设计。此前,NorthwoodWillamette核心的流水线为20级,相对于当时的PIII或者Athlon XP10级左右的流水线来说,增长了几乎一倍。到现在市场上采用Proscott核心的PDCeleron流水线为31级。众所周知,流水线越长,频率提升潜力越大,但是一旦分支预测失败或者缓存不中的话,所耽误的延迟时间越长。如果一旦发生分支预测失败或者缓存不中的情况,Prescott核心就会有39个周期的延迟。这要比其他的架构延迟时间多得多。

 

    因此,参照现在的Pentium MAthlon 64架构,Core新架构将采用14级流水线,可以在原来Pentium 4的基础上提升执行效率,不过想要在短期之内看到突破4GHz频率的CPU变成了一个不可能实现梦。

 

   除了执行管线有所精简外, Core多核处理器架构另一特色莫过于内建四组指令编码器,可在一个频率周期(clock cycle)内,同时编码四个x86指令。自从AMD失败的K5之后,有超过十年的时间,x86的世界从没出现过四组指令编码器的设计。因x86的指令长度、格式与寻址模式都相当的紊乱,导致x86指令编码器是非常难作的东西,甚至连Intel先前的NetBurst微处理器架构,就通过导入Trace Cache存放编码后的微指令,企图替代高性能复数指令编码器,但改进并不是很明显。因此在Core微处理器架构上,Intel最后采用了四组指令编码器设计。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

 

    Core多核微处理器延续先前P6Banias微处理器架构的方式,由三组简单编码器(simple decoder)与一组复杂编码器(complex decoder)所组成的"4-1-1-1"结构,四组指令编码器中,仅有复杂编码器可处理最多由四个微指令所组成的复杂x86指令;如果不幸碰到非常复杂的指令,复杂编码器就必须呼叫微码循序器(Microcode Sequencer),以取得微指令序列。

 

    为了配合四组编码单元,Core多核微处理器架构的指令取指单元在一个频率周期内,从第一阶指令缓存中,获取(fetch)六个x86指令至指令编码缓冲区(Instruction Queue),判定是否有符合宏指令融合的配对后,将最多五个x86指令,交派给四组指令编码器。四组指令编码器在每个频率周期中,发给(issue)保留站(Reservation Station)四个编码后的微指令,保留站再将存放的微指令交派(dispatch)给五个执行单元。执行指令数越多,意味着其处理能力越强,表现出来的性能越高。

 

 

2.3 多核处理器高效内存管理技术

    在处理器速度发展越来越快的今天,计算机的瓶颈之一就是内存与处理器速度的不匹配,导致内存存取延迟较长。Intel为了弥补缺乏整合型内存控制器、导致内存存取延迟较长的缺憾,在内存系统上花了很大的功夫。在降低Cache延迟方面有一个关键技术,称之为:Memory Disambiguation技术,即在存数和取数指令都乱序执行的情况下,保证取数指令都能取回它前面的最近一条对同一地址的存数指令所存的值。比如如果一条取数指令在一条存数指令之后且两条指令的地址相等,但取数指令先访问Cache,也要保证取数指令取回该存数指令的值。

 

    在过去,一个接连在回存指令后的加载指令,因可能目标内存地址相同之故,为了确保内存数据一致性(Memory Consistency),必须等待该回存动作结束后,才能执行该加载动作,避免因使用相同地址,导致内存数据一致性发生错误。为此,Core多核微处理器架构提供内存数据相依性预测功能(Memory Disambiguation),可在处理器将数据回存内存的同时,预测后继的加载指令是否采用相同的内存地址,如果不是就可立即执行加载动作,毋需等待该回存指令,这可大幅改善非循序执行(Out-Of-Order Execution)核心的效率,以及缩短存取内存的延迟。

 

    又如果一条取数指令在一条存数指令之前且两条指令的地址相等,但存数指令先访问Cache,也要保证取数指令取回原来Cache中的值,而不是存数指令新存的值。这是有风险的。因为你刚刚读的数据可能会在CPU内部的处理过程中发生变化,从而出现错误。但是Intel称,这个系统非常聪明,可以得到不会发生变化的数据。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院 

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

 

    Core多核微处理器架构每个核心分别内建一组指令及二组数据预先撷取器,而共享的L2缓存控制器内建两组、可动态分配至不同的核心的数据预先撷取器,可根据应用程序数据的行为,进行指令与数据的预先撷取动作,让所需要的内存地址数据,尽量存放在缓存之中,减少存取内存的次数。

 

2.4 Smart Cache

       IntelCore 微架构中,在对性能的各种提升方面,一个重要突破就是对二级缓存的设计改进。主要包括两方面:一,缓存的共享设计;二,节能机制。Intel没有给各自的核心设置独立的二级缓存而是让两个核心共享一个2MB二级缓存。当一个核心空闲时,另一个核心可以完全的访问所有2MB缓存。但大部分时间下不是这种情况,那智能的动态分配就显得很重要。共享缓存相对独立缓存的一个重要好处就是它降低了缓存的一致性复杂度。如果多核拥有各自的二级缓存,那么它很类似于计算机体系结构中的集中式多处理器架构,各个处理器之间缓存的一致性就是通过相当复杂的监听技术来实现的,而这必然得付出额外的开销,对性能有影响,多核心间的缓存一致性也是相似的。所以这种共享设计对双核心来说还是很有优势的。另一个重要好处就是Intel通过采用动态缓存分配技术对两个核心进行智能的分配缓存使得两个核心协作,可以增大缓存利用率又减少缓存的命中失效情况发生。这种方法直接通过共享来达到两个核心的通信和数据共享,而不需要外部前端总线的参与进而改善了性能。Intelsmart cache技术还增强了数据预取技术,在缓存请求还未发生时可以猜测性的把数据预取到二级缓存。此外,数据缓存单元带(Data Cache Unit Streamer)可以更早的唤起一级缓存以增益二级缓存的预取性能。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

  

    Smart cache 的另外一个特点就是它的节能机制。Intelsmart cache可以根据需要或者在非活动期将其内容刷回到系统主存。当一旦数据被保存到主存,缓存槽(cache ways)就会关闭。由于二级缓存数据完整性的要求,于是决定了供给处理器进行深度睡眠(Deeper sleep)的最小电压极限。因此当数据存回主存时,IntelCore Duo 双核处理器会转换到另一种称为增强型深度睡眠(Enhanced Deeper Sleep)的新型电源管理状态。在这种状态下,处理器会降低电压,使电压低于之前的深度睡眠最小电压极限,从而达到节能的目的。据研究可知,功率和电压是成平方比的,所以降低电压可以有效的降低功率。

 

 

2.5 Power coordination

       Intel开发双核处理器的一个重要的原因就是原来的单处理器随着集成度的不断提高,主频的不断加快,功耗突飞猛进。Proscott核心失败最大的一个原因就是功耗过高,因此Intel在新一代Core内核架构中在功耗控制方面下了相当的功夫,引入了在Pentium MYonah移动处理器上应用的诸多节能技术 Core微处理器架构的电源管理机制基本上改良自Pentium MYonah的设计,处理器内各功能单元并非随时保持启动状态,可根据预测机制,仅启动需要的功能单元,这点与Pentium M/Yonah相同,从而降低功耗。Smart cache 技术中也引入了节能技术,上面已经详述过。同时Core架构中引入了独具特色的Split Buses(分离式总线)设计。在传统的x86处理器内的总线,往往仅为了应付特殊的需求而加长宽度,例如ALU单元写回128位数据,但大多数的情况都不需要这么宽,导致浪费电力在这些额外的总线线路上。Core微处理器架构导入分离式总线(Split Buses),仅有遇到特殊状况时,才会启动全部的总线宽度,平时只启用一半的宽度以节省电力。

 

2.6 分支预测

    在性能与能耗的平衡决策中,Intel最终在CoreBP分支预测单元(Branch Predictor)上投入了大量的晶体管。

  作为连接内存和CPU的重要环节,在BP分支预测上投入宝贵的晶体管资源是十分值得的。相对于预测错误后让CPU浪费时间和电耗来等待再次预测,一次准确的预测不仅仅节约了处理时间、提高了性能,也同样降低了CPU的功耗。

  Core的三重分支预测单元实际上与Pentium M的预测单元是一样的,在Core的分支预测核心中存在一个双模态预测器和一个球型预测器,这些预测器记录下过去的执行历史并随时通知内核前端的ROBRSROBRSBTB分支目标缓冲器(Branch Target Buffer)中快速取回所需要的数据地址,常规预测如通知一个分支在循环中仅在奇次迭代发生, 而不在偶次迭代中发生等,这些在动态执行(P6系列)处理器上的静态预测技术还有有着长远的发展空间。

  Core的分支预测单元拥有新的预测器- 循环回路预测(Loop Detector)与间接分支预测(Indirect Branch Predictor)。

  循环回路预测

  分支历史表(Branch History Tables)不能够记录下足够详细的循环回路历史来准确预测下次的运算,所以每次循环回路的运行都浪费了大量的亢余时间。循环回路预测(Loop Detector)则可以记录下每个循环回路结束前的所有的详细分支地址,当下一次同样的循环回路程序需要运算时,内核前端的ROBRS就可以以100%的准确度来快速完成任务,Core构架拥有一个专门的运算法则来进行这种循环回路预测。

  间接分支预测

间接分支预测(Indirect Branch Predictor)在运用时并不是立即分支,而是从寄存器中装载需要的预测目标,它实际上是一个首选目标地址的历史记录表。在ROBRS需要间接分支的时候它就可以提供帮助,ROBRS就可以快速提取到适用的结果,这与P6构架用可预测的条件分支替换间接分支来改善性能是相反的。

 

2.7 宏指令融合

    所谓宏融合即针对译码工作前的X86指令,可以在预解码阶段将相似类型的X86指令进行融合操作,然后将其送入单译码器中产生一条微指令操作。这项操作的对于X86指令的针对性很强,并不是所有的X86都可以进行,比如像compare test指令就可以和分支指令相融合译码,只会产生一条微指令操作。在Core的四个译码器单元中,每一个单元都有一周期完成一次宏融合到产生微指令的能力,但是总体存在每周期产生一条微操作的总限制。增加微指令融合不但要在预译码部分和译码部分的流水线增加新的硬件设计,同时也要对后端的ALU和分支执行单元进行修改。这些新增加的硬件部分负担会被宏融合带来节省后端硬件开销弥补,因为宏融合在同样的X86指令输入数量下产生更少的微操作指令,最终完成同等工作需要更少的后端硬件开销,从Core核心整体来看就是获得每条X86指令最佳的功耗效率,这就是Intel为何努力尽可能的让译码单元获得X86指令和处理器执行的微操作指令的11 译码产生率的原因。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

 

当然,如果说宏融合可以在更少的ROB以及RS后端硬件资源下完成等同甚至更多的工作,那么也意味着该技术的应用为同等或者更宽更强大的后端硬件提供了足够的前端译码能力,总体获得了更大的执行带宽。一个单ALU可以执行一条实际上是两条X86指令融合后的微操作,就好比两条指令同时并行运行,即相同的执行单元数量的前提下获得更强的处理能力。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

  

 

 

四、

 

摩尔定律会是永恒的真理吗?多年以来,处理器似乎都在走一条比较顺畅的道路,从当年的以MHz计发展到现在的以GHz计,但是鉴于功耗、制程、散热等多方面的原因,频率再有突破性的提高已是非常困难了,厂商们开始探讨一条多核心之路。

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

 

  在使用Windows的时候,就算你的处理器能提高一倍的频率,你的操作系统也能提高一倍的工作效率吗?太多复杂程序的同时处理使得频率的提升意义显得不是那么重要。从HT超线程开始,到现在的热门双核心处理器,似乎就是多核心之路的开始。双核处理器可以有两个处理器单元,也就是相当于两台处理器同时运作,可以大大减轻系统的负担,Intel未来预计Core 微架构的核心将会提升到10个,以适应更加严酷的考验!

深入浅出多核心处理器技术——全面解析Intel Core微架构(转载) - Hyobo - 瘋人院

 

    而同时Intel认为,Core 微架构并不是最终的解决方案,它发展到一定阶段之后,也会遇到现在这种困镜,毕竟Core 微架构的核心是每颗完全相同x86处理器核心,只是提高并行线程处理能力而已。

  Intel认为未来的最终方向是另一种“Multi-Core”结构,这种结构是x86核心再配合另外一些特定用途的核心集成在一起,在工作时,主核心分配专门的核心来完成特定的工作,例如解码运算,普通核心并不是专门设计用来解码,所以效率一般,而Multi Core可以使用专用的解码核心来完成这些工作。专用解码芯片的体积比较小,放在处理器内部也没有问题。还可以把整个系统的功能整合到处理器中,比如内存控制器、PCIE控制器,甚至显示设备、网卡、声卡等等,全部都集成在处理器内部。

无论如何,未来很长的一段时间内多核心处理器技术取代单核心处理器将成为发展的大势所趋。

 

 

五、 参考文献

M/OLIntel Core Duo Whitepaper

 

M/OLWhy Intel Is Designing Multi-core Processor, Geoff Lowney

 

M/OLNetBurst的继承者 Core微处理器架构技术解析, http://diy.yesky.com/cpu/389/2340389_1.shtml

 

M/OL英特尔 酷睿 双核心处理器十大特性, http://www.1p2p3p.com/writing/3p.asp?writing_ph=29616

 

 

  评论这张
 
阅读(371)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017