[周报全文]多核改善计算机性能

2006-05-09 |  作者:迈普通信技术有限公司 肖志辉 |  来源:互联网 |  查看原文

摘要

 

今天花1万元买的PC机已经比1980年花1000万元买的计算机具有更高的性能。计算机制造技术的发展和计算机设计技术的创新是计算机性能不断提升的两驾马车。

 集成电路制造技术的发展速度到目前为止仍然遵守着摩尔定律。一想到提升处理器的性能,大家最容易想到的手段是提高主频,但是主频的提升要求大幅度增加晶体管的数量。晶体管的密度以大约每年35%的速度增长,差不多四年翻两番;芯片尺寸增长速度大约在每年10%~20%之间。二者总的效果是每个芯片上的晶体管数目以每年大约55%的速度增加。以这种速度,保守估计2007年PC处理器上晶体管的数目就会达到10亿只,频率大约是6GHz。巨大的晶体管数量意味着巨大的能耗,随之而来的散热问题也日益凸显。今天,集成电路的加工工艺已经达到了划时代的65nm。

另一方面,计算机设计技术的创新在20世纪80年代以后对计算机性能以每年50%以上的速度增长贡献巨大。总的来说,计算机设计技术的创新主要体现在以下几方面:指令级并行技术ILP(包括流水线技术、RISC技术、超标量技术、VLIW技术、分支预测技术、猜测执行技术、动态调度技术等)、存储器层次结构优化设计(Cache)技术、I/O技术、线程级并行技术TLP(包括并行多线程技术SMT、对称多处理技术SMP、片上多核处理技术CMP等)。

这里着重强调一下指令级并行技术ILP与线程级并行技术TLP。

指令级并行技术ILP(Instruction-Level Parallelism)是使指令重叠进行以提高效率的方法。归结起来,提高指令级并行度有两种方法,一种是依赖于硬件的动态技术(例如Pentium 4、PowerPC603等),一种是依赖于软件的静态技术(如Itanium)。这两种技术之间的划分并不是绝对的。

1966年,Flynn提出了一种对所有计算机进行分类的简单模型(单指令流单数据流SISD,单指令流多数据流SIMD,多指令流单数据流MISD,多指令流多数据流MIMD),其中SISD就是单处理器,而MIMD简单地说就是每个处理器取用自己的指令对自己的数据进行处理的多处理器系统。为了利用有n个处理器的MIMD计算机,我们通常必须执行至少n个进程或线程(这里的线程概念已经与经典操作系统课程中的线程不同,通常用来指运行在不同处理器上的多个执行过程,即使它们没有共享同一地址空间)。各个独立线程由程序员所标示或由编译器所创建。这种由多个线程同时执行所带来的并行性即为线程级并行。

MIMD计算机根据存储组织方式可以分为集中式共享存储结构(也叫SMP或UMA。特别是如果在一个芯片上实现的多处理技术,称为CMP,Chip Multi-Processing,也即所谓多核处理技术)和分布式存储多处理器系统(又可分为分布式共享存储器系统DSM与多机系统,其中前者又可称为NUMA系统,后者又可称为集群)。

为了与多核处理技术做比较,有必要介绍一下同属于线程级并行范畴的多线程(Multi-Threading)技术。

所谓多线程(Multi-Threading)技术是指允许多个线程以重叠方式共享一个单处理器的功能单元的线程级并行技术,典型的代表有Intel的超线程(Hyper-Threading)技术。Intel的超线程技术可以让单物理内核的处理器通过模拟方式实现在对称处理模式下双处理器运行的效果。当然模拟出来的逻辑处理器其实并没有独立的资源,它们在运行过程中仍需要共用执行单元、寄存器、缓存和系统总线接口。在执行多线程时两个逻辑处理器交替工作,如果两个线程都同时需要某一个资源时,其中一个要暂停并让出资源,要待该资源闲置才能继续。

多核处理技术,也称芯片多处理技术(CMP,Chip Multi-Processing):就是在一个处理器基板上集成多个功能相同的处理器核心。我们知道(+微信networkworldweixin),处理器实际性能是处理器在每个时钟周期内所能处理指令数的总量。由于每增加一个内核,处理器将增加一套执行单元和寄存器等资源,所以处理器性能也就相应地大幅度增加。正因为如此,全球芯片巨擎莫不投入巨资于多核处理器的研发上。

一、多核处理技术能有效提高性能

相比以前的由分立处理器构成的多处理技术,多核处理技术由于将多个CPU放在一块硅片上,当工程技术人员在两个CPU内核之间传送数据时,可以利用更短的距离和更快的总线速度的优势达到更高的性能。测试证明,CMP性能超过SMP性能50%以上。

与超线程技术相比,多核处理器中每个核心拥有独立的执行单元和寄存器等资源,可以真正并发执行多项任务,其效率要比超线程技术高得多。

二、多核处理技术能有效降低功耗

现代的CMOS微处理器,能量主要消耗在晶体管状态的转换上。每个晶体管需要的能量是正比于晶体管的负载电容、转换频率和电压的平方三者的乘积。多核处理器可以用较低的频率达到单核处理器使用更高频率才能达到的性能,因此也就能有效降低功耗了。

三、多核处理技术能有效节约成本

对于今天的芯片制造商来说,封装和测试占总成本的四分之一到一半。多核处理器共享相同的封装和I/O(I/O有时能占到芯片的四分之一面积),显然可以有效地降低成本。

四、多核处理技术能有效增加功能

多核处理技术能有效增加单核处理器所难以具备的某些功能,最典型的当属虚拟技术。虚拟技术可以让一台物理计算机虚拟出若干个独立的系统,这些虚拟系统能使用同样的计算机资源独立工作。

介绍完多核处理器的种种优点之后,让我们以AMD的双核Opteron为例来介绍一下多核处理器的内部架构吧。

在多核处理器的体系结构中,最关键的是核与核之间的协作,高效的核间通信机制是多核处理器高性能的重要保障。从图中所示的AMD双核处理器架构可以看出,AMD的双核Opteron并不只是简单地将两个Opteron处理器核心集成在一个硅晶片(或称DIE)上,与单核Opteron相比,它增添了“系统请求接口”(SRI)和“交叉开关”(Crossbar Switch),它们的作用是对两个核心的任务进行仲裁,实现核与核之间的通信。它们与集成的内存控制器和超传输(Hyper Transport)总线(带宽19.2Gbps)配合,可让每个核心都有独享的I/O带宽,有效地避免了资源争抢,实现更小的内存延迟。AMD把这种通过超传输技术让CPU内核直接跟外部I/O相连而不通过前端总线的架构称为直连架构。

多核处理技术是提高计算机性能的创新手段,但是要真正发挥出多核处理技术的性能优势是对软件程序员的严峻挑战,因为他们必须对平台中运行的系统软件进行重新编写,使系统软件能在多个执行内核间妥善分配任务并协调运行。迈普通信技术有限公司在2005年推出的双核路由器MP7200就是采用了直连架构的通信专用多核处理器+优秀的系统软件设计而成的。

相关文章