为什么微处理器要从单核转向多核.docx
《为什么微处理器要从单核转向多核.docx》由会员分享,可在线阅读,更多相关《为什么微处理器要从单核转向多核.docx(21页珍藏版)》请在冰豆网上搜索。
为什么微处理器要从单核转向多核
Blogs@IntelBrasilDigital@Intel博客@英特尔中国CSR@IntelIntelSoftwareNetworkBlogsIntelvProExpertCenterIT@IntelLatinInsights@IntelMobility@IntelOpenPortGeneralBlogResearch@IntelКакживетITвIntelTheServerRoomBlogTechnology@IntelRecentPostsArchivesAboutthisBlogContactMeettheBloggers为什么微处理器要从单核转向多核?
作者赵军,2007年6月03日
自从英特尔在2005年推出了第一代双核处理器之后,我们经常会被用户问到这个问题,为什么微处理要从单核转向多核?
计算机上不断涌现的新兴使用模式让最终用户对处理器的处理能力——即性能——提出了更高的要求,并且对性能每年提高的幅度还在不断加速,而多核技术是目前行之有效的方法。
图注:
如何将处理器性能提高10倍——采用多核技术
为什么不能用单核的设计达到用户对处理器性能不断提高的要求呢?
答案是功耗问题限制了单核处理器不断提高性能的发展途径。
作为计算机核心的处理器就是将输入的数字化的数据和信息,进行加工和处理,然后将结果输出。
假定计算机的其他子系统不存在瓶颈的话,那么影响计算机性能高低的核心部件就是处理器。
反映在指令上就是处理器执行指令的效率。
处理器性能=主频xIPC
从上面的公式可以看出,衡量处理器性能的主要指标是每个时钟周期内可以执行的指令数(IPC:
InstructionPerClock)和处理器的主频。
其实频率就是每秒钟做周期性变化的次数,1秒钟只有1次时钟周期的改变叫1Hz(赫兹)。
主频为1GHz就是1秒钟有10亿个时钟周期。
因此,提高处理器性能就是两个途径:
提高主频和提高每个时钟周期内执行的指令数(IPC)。
处理器微架构的变化可以改变IPC,效率更高的微架构可以提高IPC从而提高处理器的性能。
但是,对于同一代的架构,改良架构来提高IPC的幅度是非常有限的,所以在单核处理器时代通过提高处理器的主频来提高性能就成了唯一的手段。
不幸的是,给处理器提高主频不是没有止境的,从下面的推导中可以看出,处理器的功耗和处理器内部的电流、电压的平方和主频成正比,而主频和电压成正比。
因为:
“处理器功耗正比于电流x电压x电压x主频”,“主频正比于电压”
所以:
“处理器功耗正比于主频的三次方”
如果通过提高主频来提高处理器的性能,就会使处理器的功耗以指数(三次方)而非线性(一次方)的速度急剧上升,很快就会触及所谓的“频率的墙”(frequencywall)。
过快的能耗上升,使得业界的多数厂商寻找另外一个提高处理器性能的因子,提高IPC。
提高IPC可以通过提高指令执行的并行度来实现,而提高并行度有两种途径:
一是提高处理器微架构的并行度;二是采用多核架构。
在采用同样的微架构的情况下,为了达到处理器IPC的目的,我们可以采用多核的方法,同时有效地控制功耗的急剧上升。
为什么?
看看下面的推导。
因为:
“处理器功耗正比于电流x电压x电压x主频”,“IPC正比于电流”
所以:
“处理器功耗正比于IPC”
由单核处理器增加到双核处理器,如果主频不变的话,IPC理论上可以提高一倍,功耗理论上也就最多提高一倍,因为功耗的增加是线性的。
而实际情况是,双核处理器性能达到单核处理器同等性能的时候,前者的主频可以更低,因此功耗的下降也是指数方(三次方)下降的。
反映到产品中就是双核处理器的起跳主频可以比单核处理器更低,性能更好。
由此可见,将来处理器发展的趋势是:
为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。
这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升。
除了多核技术的运用,采用更先进的高能效微架构可以进一步提高IPC和降低功耗——即提高能效。
基于英特尔®酷睿™架构的英特尔®酷睿™2双核处理器和至强处理器就是现实中的例子。
相比英特尔前一代的NetBurst微架构(Intel®Pentium®4和Pentium®D),酷睿微架构采用的英特尔®宽区动态执行引擎和英特尔®高级数字媒体增强技术,就是提高IPC的创新技术;英特尔®智能功率特性则是降低微架构功耗的技术。
评论(68)添加到:
del.icio.us
ma.gnolia
digg
newsvine
disclaimer
其他归属标签:
IPC,单核,处理器性能,多核,主频
评论
2007年6月04日|andy:
功耗问题限制了单核处理器不断提高性能的发展途径.这句话是问题的症结所在,双核的出现像是打开了性能的潘多拉盒子,让人们看到了三核,甚至N核,但是在这种情况之下,留给价值链上其他厂商的技术压力,可能会是将来IT行业的看点。
2007年6月04日|赵军:
不应该是“潘多拉盒子”,呵呵!
因为开启双核和多核的设计思路,给业界带来了新的发展机会,而不是给大家带来了“瘟疫和灾难”。
IT业的发展本来就充满了创新和机会,同时也给大家带来了不断成长的压力。
英特尔公司也不例外。
2007年6月04日|chantao:
多核心处理器与单核心处理器就像同样的水,用一个大功率的水泵抽水不如用多个功率稍小的水泵抽水。
只不过问题在于软件行业现在支持双核心的OS还很少,双核心的优势只能表现在多任务的情况下,而多任务的表现又受限于其他硬件,表现的也不尽完美,所以未来必须要有更多的OS与应用软件相结合,才会更快的进入多核心的时代。
2007年6月04日|赵军:
3楼比喻非常贴切,让大家更容易理解,谢谢!
其实,支持双核的服务器操作系统已经很普及了。
对于客户端操作系统,像WindowsXP,Vista都是支持双核的操作系统——支持多任务多线程的操作系统。
目前,越来越多的软件和应用程序都支持多线程和多任务。
这种趋势不是出现双核处理器才开始的,早在英特尔在Pentium4上支持超线程就开始了。
只要使用支持多线程的编译器编译高级程序设计语言编写的程序,就可以让生成的可执行程序支持多线程,当然就可以充分利用双核处理器的能力。
2007年6月04日|chantao:
技术部够敬业,我转了一圈回来竟然回应了所有的发言。
xp似乎只支持双核,英特尔好像已经发布了四核心的处理器,未来要开发8核心,据说还要开发2XX核心的处理器,看你的博客,似乎英特尔会在里面加入更多的协处理器。
2007年6月04日|赵军:
WindowsXPHomeEdition(家用版)可以支持一个物理处理器,而不管其中有几个内核,也就是说它可以支持多个内核没有问题。
WindowsXPProfessional(专业版)可以支持多达2个物理处理器,而不管其内部有几个内核。
因此,从目前来看,这版本可以支持2个双核的处理器,或者2个四核的处理器。
我把微软网上的原话贴在这里,具体的,请你咨询微软公司。
WindowsXPProfessionalcansupportuptotwoprocessorsregardlessofthenumberofcoresontheprocessor.MicrosoftWindowsXPHomesupportsoneprocessor.
2007年6月04日|陈昞睿:
既然芯片频率的提升导致功耗三次方的加大,那么内存是否也有类似的情况呢?
是否应该设计多核内存来降低能耗并提升性能呢?
2007年6月04日|赵军:
陈先生提到的设想说对了方向,但是实现方法不是通过多核,而是通过提高内存芯片每个读写周期内发送比特的数量,从而可以使每个内存芯片的物理工作频率降低。
例如,内存技术从SDRAM,发展到DDRSDRAM,然后是DDR2SDRAM,到最近的DDR3SDRAM,就是按照这样的思路开发和设计的。
DDR-400和DDR2-400的数据传输率理论上是一样的,但是DDR-400内存的物理工作频率是200MHz,而DDR2-400内存的物理工作频率只有100MHz,DDR2-800内存的物理工作频率是200MHz,可DDR2-800的数据传输率是DDR-400的两倍。
2007年6月04日|孙永杰:
IBM的Power6的主频高达5GHz,但发热量和功耗仍就保持了Power5的水平,看来处理器架构的设计也很重要。
2007年6月05日|小二黑:
从“铜矿”到“图拉丁”到“奔四”再到“酷睿”,Intel似乎经历了一个轮回;时至今日,想起当初价廉物美又性能卓越的图拉丁赛扬,依然感慨万千;令我至今迷惘的是这么好的CPU架构却遭遇了被抛弃的命运;不过令人欣慰的是,现在看到了“酷睿2”……其实想来,如果当初Intel在图拉丁架构基础上开发多核心技术,那么现在不知道CPU的发展会是怎样……
呵呵,扯远了……其实对于多核心,一直有一个疑问,对于个人用户来说,到底CPU需要多少的性能,与之相对应的多少核心的集成是最合理最经济、性能最优的?
比方说将上千个8086的核心集成在一颗CPU上那么结果会是怎样?
当然这只是玩笑:
)
2007年6月05日|刘行:
我觉得最大的原因还在于应用,市场有需求,产品才能卖的出去.硬件推动软件,软件推动硬件.相符相承.就象VISTA一出内存狂卖一样.ROBSON同样也是开机太慢才存在的应用需求.
2007年6月05日|袁超:
POWER6虽说是性能翻番,功耗与上一代产品保持不变,但是从绝对数值上来看,它的功耗也太吓人了.另外,还是期待Nehalem,它应该算是在整个平台的架构上都更新了.尤其是处理器与其他组件的数据带宽上.
2007年6月05日|赵军:
看到数码相机,数码摄像机,高清电视/电影等等数字设备越来越普及,面对越来越多的数字内容和数字媒体需要加工、处理、共享等等,面对这样的应用,大家永远都会觉得自己的计算机不够用。
这只是众多涌现出的新的使用模式中的一种。
另一方面,摩尔定律让我们有这样的经验,硅芯片技术的不断进步,让我们每2年都可以在同样面积的硅片上集成2倍的晶体管。
这样,我们就可以在相同面积的硅片上集成更多的功能,功能强大的处理器又反过来催生了更多新兴的应用。
所以,用户如果需要自己的计算机做更多更复杂的事情,那么对更高性能计算机的需求就没有止境,今天看来还是这样的。
目前选择多核技术作为提高处理器性能的方案之一就是自然而然的事了。
2007年6月05日|chantao:
不知道XP支持的双核心和多核心是并行处理还是串行处理,如果是串行,那么处理器仍然是单线程的工作。
多核心是未来的趋势,而且技术也日趋成熟,不过似乎目前的核心之间的数据通讯,以及前端总线已经成为了多核心的瓶颈。
2007年6月05日|赵军:
XP支持双核和多核心是并行处理的,都是通过支持多线程方式来实现的。
对于英特尔的四核处理器而言,每2个内核都共享高达4MB的L2Cache,目前高达1066MHz甚至1333MHz的前端总线不会给单处理器(四核)的系统带来瓶颈。
甚至对于双路的服务器来说,这么高速的前端总线预留的带宽也绰绰有余。
当然,对于更多路(4路,8路)的服务器,单条前端总线会是瓶颈,英特尔在不同阶段会采用不同的方案,如:
2条前端总线,4条前端总线,将来的连接技术等等。
2007年6月07日|汪儒:
请问双路CPU和双核CPU在结构和性能上又是什么关系呢?
2007年6月07日|赵军:
双路CPU是指系统里面可以插上2颗CPU,双核CPU是一颗CPU内部有2个内核。
例如,双路服务器,里面可以有2颗CPU,这两颗CPU可以是单核的,也可以是双核,四核的,等等。
2007年6月07日|赵军:
双路CPU是指系统里面可以插上2颗CPU,双核CPU是一颗CPU内部有2个内核。
例如,双路服务器,里面可以有2颗CPU,这两颗CPU可以使单核的,也可以是双核,四核的,等等。
2007年6月07日|汪儒:
那么双路单核和一颗双核谁更强呢?
2007年6月07日|赵军:
如果是同样的微架构,当然一颗双核强。
2007年6月07日|汪儒:
真是谢谢您了。
还有一个问题:
既然主频和电压成正比,那么E4300、E2140可以不加电压把主频从200MHz升到333MHz与之矛盾吗?
2007年6月07日|赵军:
E4300的主频是1.8GHz,E2140的主频是1.6GHz。
你上面讲的主频应该有误。
这2个CPU的主频相差200MHz,即0.2GHz。
这个差别是靠倍频选择来实现的,倍频不同取决于给CPU提供的VCC电压(核心电压)的不同来实现的。
我尽量解释的简单些,如果你有工程背景就更容易看的懂。
给CPU供电的电压不只是核心电压。
你所说的电压相同,可能是指主板上给CPU供电的VRM,同一个版本VRM可以支持E4300和E2140,也可以支持同一个家族处理器的其他型号。
VRM=VoltageRegulatorModule,即供电调节模块。
自适应CPU供电技术之后,给CPU核心供电的电压高低是由5到6根VID(VoltageIdentificationDefinition)引脚的0/1相位所决定的,核心电压的供电不是额定不变的,就是由所谓的动态VID技术来实现的。
VRM可以实时根据CPU的需求来改变输出的电压。
一方面,处理器在高负荷运行时,VRM提供稳定的电压输出。
另一方面,CPU在低载荷时,动态调节CPU的电压也可以有效地降低CPU的能耗和热量。
VRM会根据处理器上几根VID[0:
5]引脚的0/1相位来判别这块处理器所需要的实际VCC电压(也就是我们常说的CPU核心电压)。
VID[4:
0]定义的电压变化是每0.025V一个档次,而VID[5:
0]定义的是每0.0125V一个档次。
因此,E4300和E2140的核心电压是不相同的。
另外,对于同型号同主频的处理器,实际的VID设定也不是完全相同的,是在出厂时才确定的,也就是说它们实际的核心电压还是有细微差别的,因为VID可以做到电压变化的微调。
VID[5:
0]就可以做到微调的一档为0.0125V,也就是一档12.5mV(毫伏)。
2007年6月07日|汪儒:
我的意思是,这两款CPU不加电压时,都能把主频超到333MHz,这是怎么回事?
(即:
它们在OC时,核心电压都没有调,这时电压变了吗?
)(汗,真不好意思)
2007年6月08日|赵军:
我已经说过,这两款CPU的主频不是200MHz,也不是333MHz。
我估计你说的是超外频,通过超外频可以提高CPU的主频,因为除了至尊版的酷睿2处理器,其他商业版本的酷睿2处理器都锁倍频了。
要超主频,就只能通过超外频。
实际上,如果不通过可超频主板上BIOS提供的设置或者主板跳线来提高CPU的核心电压,是超不上去的,即使看起来启动了,但是会不稳定,甚至死机,或者没法进入操作系统。
但是要注意,不管超频的技术有多高,CPU的都会受到不同程度的损坏,寿命将短于正常使用的寿命。
2007年6月08日|汪儒:
汗~其实想说的是外频,不知道为什么就打成了主频,现在懂了,谢谢!
2007年6月08日|程轩:
我是做流体数值模拟的迫切又欣喜地看着cpu核心的发展。
不过在使用双核计算机计算一些数值计算程序的时候,感觉开双核反而效率没有关掉超线程技术后效率高。
就是程序计算的时候开着超线程反而比关掉超线程技术要慢。
好像一点也没有体现双核的好处啊。
我使用的计算机是delloptiplexgx620,OS是xp中文版,系统默认是开超线程就是单cpu双核,可以看到硬件设备有2个cpu显示;关掉超线程计算后只有1个cpu显示。
最后可否推荐能够充分利用双核的软件呢我想体验下双核的优势
2007年6月08日|赵军:
程先生:
你好!
你用的程序是商用软件,还是自己编写的?
如果是商用软件,请确认一下所用的版本是否支持超线程。
如果这个计算程序是你编写的,建议你使用支持超线程的编译器重新编译一下。
只要用支持超线程和多线程的编译器编译的程序,运行在支持超线程或者多核处理器的系统中都会有很好的表现。
如果再对这个程序进行多核优化,效果会更好。
例外,英特尔推出的系列编译器现在都支持多线程,如:
C++,Fortran,等等。
还有优化和分析工具如VTune™AnalyzersPerformanceLibrariesThreadingAnalysisTools
你可以到英特尔的这个网页去看看:
2007年6月09日|程轩:
感谢赵先生的回复及建议谢谢
2007年6月10日|biz4cn:
可是对于像python这样不支持多核的语言来说,多核的优势似乎无法正常发挥吧?
2007年6月10日|小何:
请问:
2ndcachedependsonCPU是什么意思?
IntelPentium®4533/800MHzFSB是不是800mhz就相当于双核了?
谢谢!
2007年6月10日|罗骥:
PD915倍频大多时候是12,如何锁定成14.
2007年6月10日|赵军:
Python是一种面向对象的解释性程序设计语言,基本上也算是一种脚本语言。
虽然脚本语言泛指单用作简单编程任务,但是Python比JavaScript等只能处理简单任务的编程语言要强大。
因为Python支持新的内置模块(module)可以用C或C++写成。
所以,遇到纯Python语言不能很好地支持多线程和多任务,或者支持时的运行效率不高,就可以用C或者C++编写的模块来解决。
总之,Python支持多线程(也就可以支持多核),但是其运行效率不高。
2007年6月10日|赵军:
小何,你好!
我没有看到你提供的英文的上下文,就“2ndcachedependsonCPU”的字面意思是“二级高速缓存取决于CPU”。
对于IntelPentium®4533/800MHzFSB,即使FSB是800MHz也还是单核,前端总线(FSB)和CPU双核与否没有关系。
2007年6月11日|赵军:
罗骥,你好!
英特尔正式产品都是锁倍频的,之所以叫“锁”,就是不让修改倍频。
对于DIY的超频发烧友,他们都是通过超外频实现超CPU主频的。
英特尔最新的酷睿架构的至尊版处理器,把锁频保护关闭了,DIY发烧友可能根据自己的喜好选择倍频率,当然除了必备的超频知识外,需要支持超频的主板,内存,电源,散热方案等等。
2007年6月11日|小何:
谢谢我懂了。
我本来是想升级我的电脑可我不太懂,电脑主板是fujitsusiemensGA-8ISXT芯片组是Intel82865/pe,cpu是IntelP4NorthwoodProcessor(0.13)内存768m主板是否支持双核处理器,最佳配置是怎样的?
多谢!
期待您的答复。
2007年6月11日|赵军:
小何,你好!
865芯片组是英特尔在2003年推出的,基于865芯片组的主板只能支持478PPGA的Pentium4处理器,内存也只能支持DDR的,不支持DDR2的内存。
这样的主板不支持LGA775封装的Pentium4处理器,就更不能支持LGA775封装的PentiumD双核处理器。
因此,你需要更换主板,才可以支持双核的处理器。
如果想支持酷睿2双核处理器,尽量选择采用比较新的芯片组的主板。
如英特尔的芯片组:
945/946系列的,965系列的,甚至更新的3系列芯片组。
2007年6月14日|lhftonny:
博主好,对于您的精彩介绍十分钦佩,请问我从哪里可以看到Intel处理器发展的历史和现状,以及将来处理器发展的趋势?
请您推荐一些文章或者链接,谢谢!
2007年6月14日|赵军:
楼上Tonny,你可以从下面的链接看到Intel的历史,不过是英文的介绍。
另外,链接中不光介绍了Intel处理器发展史,还有介绍了其他技术和产品发展史。
在英特尔今天宣布投资大连建厂的时候,新浪做了一个专题,里面有不少英特尔历史的介绍。
你可以去看看,URL如下:
2007年6月15日|S2:
感觉要充分发挥多核的CPU性能,必须使用多线程/进程的编程,但这对开发人员的要求会很高.
单单靠编译器优化,有多少帮助呢?
赵军你有什么见解吗?
2007年6月15日|dingAdministrator:
赵先生您好CPU的发展到双核时,总是双核,四核,八核(2的倍数)地发展,为什么没有三核,六核呢?
2007年6月15日|小李:
我想请问下,为什么多核心CPU都是2的倍数发展的?
为什么没有奇数核的多核CPU?
比如3核、5核、7核的
2007年6月15日|赵军:
S2,你好!
如果希望最充分地利用多核CPU的性能,首先要选用支持多核和多任务的操作系统;其次,是用支持多线程的编译器编译编好的程序,大部分人做到这一点,就足够了,因为优秀的多线程编译器可以让程序做到80%甚至更高比例的多线程优化,也就是大部分多线程优化的工作都让编译器代劳了。
多核CPU带来的绝大多数好处都得到了。
第三,如果需要让程序的执行效率达到更高的境界,最为充分的利用多核的优势,就需要编程人员具有专业的多线程编程技术,除了编程时运用多线程编程的技术,还要使用多线程优化和分析工具。
对于第三点,一般都是专业软件公司才可以做到。
英特尔公司不但提供了多线程编程的指南和白皮书,而且提供了多线程编译器,分析和优化工具。
2007年6月15日|赵军:
dingAdministrator/小李,你们好!
不知道你们是一个人,还是两个人,问的问题一样,如果是两个人,就太巧了。
今天多核处理器技术其实来源于以前的多处理器计数,就是一台计算机(多为服务器或者工作站)中可以有2颗,4颗,8颗,按照2个指数增加的处理器,当然,也可以有2个倍数的系统如6颗,10颗,12颗,但是不太常见,还是以2个指数增加的方式为多。
在多处理器系统中,比较典型的技术是SMP,就是对称式多处理器技术,顾名思义,多处理器系统内的处理器是对称配备的,因而没有奇数多处理器系统的情况。
也许有人会说,在4-路服务器中,我们可以根