对于多核cpu和多核编程模型的讨论_第1页
对于多核cpu和多核编程模型的讨论_第2页
对于多核cpu和多核编程模型的讨论_第3页
对于多核cpu和多核编程模型的讨论_第4页
对于多核cpu和多核编程模型的讨论_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

对于多核cpu和多核编程模型的讨论多内核定义:多内核(multicorechips)是指在一枚处理器(chip)中集成两个或多个完整的计算引擎(内核)。背景:为什么不能用单核的设计达到用户对处理器性能不断提高的要求呢?答案是功耗问题限制了单核处理器不断提高性能的发展途径。多核技术的开发源于工程师们认识到,仅仅提高单核芯片(onechip)的速度会产生过多热量且无法带来相应的性能改善,先前的处理器产品就是如此。他们认识到,在先前产品中以那种速率,处理器产生的热量很快会超过太阳表面。即便是没有热量问题,其性价比也令人难以接受,速度稍快的处理器价格要高很多。上世纪八九十年代以来,推动微处理器性能不断提高的因素主要有两个:半导体工艺技术的飞速进步和体系结构的不断发展。半导体工艺技术的每一次进步都为微处理器体系结构的研究提出了新的问题,开辟了新的领域;体系结构的进展又在半导体工艺技术发展的基础上进一步提高了微处理器的性能。这两个因素是相互影响,相互促进的。一般说来,工艺和电路技术的发展使得处理器性能提高约20倍,体系结构的发展使得处理器性能提高约4倍,编译技术的发展使得处理器性能提高约1.4倍。但这种规律性的东西却很难维持。多核的出现是技术发展和应用需求的必然产物。这主要基于以下事实:晶体管时代即将到来根据摩尔定律,微处理器的速度以及单片集成度每18个月就会翻一番。多核通过在一个芯片上集成多个简单的处理器核充分利用这些晶体管资源,发挥其最大的能效。2.门延迟逐渐缩短,而全局连线延迟却不断加长3.符合Pollack规则按照Pollack规则,处理器性能的提升与其复杂性的平方根成正比。如果一个处理器的硬件逻辑提高一倍,至多能提高性能40%,而如果采用两个简单的处理器构成一个相同硬件规模的双核处理器,则可以获得70%〜80%的性能提升。同时在面积上也同比缩小。4.能耗不断增长5.设计成本的考虑6.体系结构发展的必然研究人员提出了两种新型体系结构:单芯片多处理器(CMP)与同时多线程处理器(SimultaneousMultithreading,SMT),这两种体系结构可以充分利用这些应用的指令级并行性和线程级并行性,从而显著提高了这些应用的性能。从体系结构的角度看,SMT比CMP对处理器资源利用率要高,在克服线延迟影响方面更具优势。CMP相对SMT的最大优势还在于其模块化设计的简洁性。复制简单设计非常容易,指令调度也更加简单。同时SMT中多个线程对共享资源的争用也会影响其性能,而CMP对共享资源的争用要少得多,因此当应用的线程级并行性较高时,CMP性能一般要优于SMT。此外在设计上,更短的芯片连线使CMP比长导线集中式设计的SMT更容易提高芯片的运行频率,从而在一定程度上起到性能优化的效果。总之,单芯片多处理器通过在一个芯片上集成多个微处理器核心来提高程序的并行性。每个微处理器核心实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器,这样多个微处理器核心就可以并行地执行程序代码,因而具有了较高的线程级并行性。由于CMP采用了相对简单的微处理器作为处理器核心,使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、通信延迟低等优点。此外,CMP还能充分利用不同应用的指令级并行和线程级并行,具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。单芯片多处理器已经成为处理器体系结构发展的一个重要趋势。2005年下半年,Intel和AMD的新型处理器也将融入CMP结构。分类:面对主频之路走到尽头,Intel和AMD开始寻找其它方式用以在提升能力的同时保持住或者提升处理器的能效,而最具实际意义的方式是增加CPU内处理核心的数量。多核CPU主要分为原生多核和封装多核。原生多核最原生多核指的是真正意义上的多核,早由AMD提出,每个核心之间都是完全独立的,都拥有自己的前端总线,不会造成冲突,即使在高负载状况下,每个核心都能保证自己的性能不受太大的影响,通俗的说,原生多核的抗压能力强,但是需要先进的工艺,每扩展一个核心都需要很多的研发时间。封装多核封装多核是只把多个核心直接封装在一起,比如Intel早期的PD双核系列,就是把两个单核直接封装在一起,但两核心只能共同拥有一条前端总线,在两个核心满载时,两个核心会争抢前端总线,导致性能大幅度下降,所以早期的PD被扣上了“高频低能”的帽子,要提高封装多核的性能,在多任务的高压下尽量减少性能损失,只能不断的扩大前端总线的总体大小,来弥补多核心争抢资源带来的性能损失,但这样做只能在一定程度上弥补性能的不足,和原生的比起来还是差了很多,而且后者成本比较高,优点在于多核心的发展要比原生快的多。现在的多核处理器设计呈现数种倾向。以AMD和IBM的HyperTransport派,可以实现分离缓存的高速共享和数据交换,处理器之间的通信也有直接的通道进行,因此可以通过分离的缓存实现很高的性能。同时因为各个处理器核心具有自己的访问内存机制,不相互干扰,在一些缓存相关性特别严重的应用中,它这种架构是很有优势的。所谓成也萧何,败也萧何,它这种架构具有明显的取向,HyperTransport作为它们传输干道,是分利于小数据块的连续传输,而对大数据块的传输表现一般。对于未来应用,均衡性不是很好,但可以肯定的是,商用性能断然奇佳。Intel目前的PentiumD核心处理器太像一个模仿出来的产品,由于Pentium4本身不具备处理器相互通信的机制并且处理器访问内存受到很多限制,这让它的双核处理器并不太成功。尤其是一些考虑数据相关性的应用,两个Cache之间的数据通信都将给总线带来无上压力,从而大大降低了因为多核带来的计算能力提高的好处。尤其是两个核进行通信的时候双方都无法访问内存,设若某个软件的某个片断有大量的需要进行修改的数据,结果将是灾难性的。业界普遍认为,ARM的处理器比传统x86处理器更加节能,相同功耗下核心数量更多,更加适合较轻负载下的多任务执行。如果大规模部署至数据中心,将会节省大量电能,从而实现更高效的绿色环保。发展:将来处理器发展的趋势是:为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升。根据阿姆达尔定律,我们知道为了提升多核处理器的性能,合理划分任务和减少核减通信时关键点.1.合理划分任务合理的任务分解方案使得不同任务相对独立,既降低了串行比例执行,也减少了核间通信需求.减少核间通信减少核间通信技术主要包括异步并行,无锁编程等技术.多核处理器产生的直接原因是替代单处理器,解决微处理器的发展瓶颈,但发展多核的深层次原因还是为了满足人类社会对计算性能的无止境需求,而且这种压力还会持续下去。即便在当前,设计者已经有效地将多核性能提高到了一个新的水平,可是人们对性能的渴望并未就此泯灭。阻碍多核性能向更高水平发展的问题很多,可真正束缚多核发展的是低功耗和应用开发两个问题。由于现有的多核结构设计方法和技术还不能有效地处理好这两个问题。因此有必要在原有技术基础上探索新的思路和方法。下面的内容是为了实现高性能、低功耗和高应用性的目标多核处理器呈现得几种发展趋势:多核上将集成更多结构简单、低功耗的核心。为了满足性能需求,通过集成更多核心来提高性能是必然选择,但是核心的结构也必须考虑。因为如果核心结构过于复杂,随着核心数量的增多,不仅不能提升性能,还会带来线延迟增加和功耗变大等问题。例如,2007年Tilera公司和Plurality公司分别推出自己的64核处理器产品,而Intel公司也将推出80个核心的低功耗处理器。异构多核是一个重要的方向。研究表明,将结构、功能、功耗、运算性能各不相同的多个核心集成在芯片上,并通过任务分工和划分将不同的任务分配给不同的核心,让每个核心处理自己擅长的任务,这种异构组织方式比同构的多核处理器执行任务更有效率,实现了资源的最佳化配置,而且降低了整体功耗。多核上应用可重构技术。大规模高性能可编程器件的出现,推动了现场可编程门阵列(fieidprogrammablegatearrays,FPGA)技术的发展。在芯片上应用FPGA技术有高灵活性、高可靠性、高性能、低能耗和低成本多种优势。微处理器设计人员注意到了这种优势,并将FPGA等可重构技术应用到多核结构上,让结构具备可重构性和町编程性。这种创新思路大大提高了多核的通用性和运算性能,使处理器既有了通用微处理器的通用性,又有专用集成电路的高性能,使之兼具了灵活性、高性能、高可靠、低能耗等众多优良特点。多核的未来及面临的问题多核处理器面世后给人们的最深印象就是出色的多任务处理性能,对于本身有此需求的用户们来说这自然是一大福音,可以更为迅速地提升工作效率,通俗地说即是可以在同一时

间内让电脑干更多的事情。然而熟悉电脑的玩家们也清楚地看到,从单核到双核,多任务性能的提升是非常明显的,但是从双核到四核,这种提升的幅度就相对减少,并不是简单的“双倍”关系。因此,随着核心数量的增加,在软、硬件上如何更好地提高多核产品的并行处理效率将是今后上游厂商努力发展的一个方向17-9赫17-940;17-940<7-920如00E6&W鬧200牌2如LytWiSesd?MainstreamQ66WQ6600ESSOC!E-R5401期AOE84M[zi792olLyni,inicM:,.效率将是今后上游厂商努力发展的一个方向17-9赫17-940;17-940<7-920如00E6&W鬧200牌2如LytWiSesd?MainstreamQ66WQ6600ESSOC!E-R5401期AOE84M[zi792olLyni,inicM:,.■■“fP®rfc»rm&nc®DesktopPlatform:RoadmapPerformanceww37多核在规划中占多数呼100[E&fiflO]QflJOO95弭E36OD囲500^■lhew*ilcra'iDufrfKC(intel)另一方面,对于并不习惯处于多任务操作的用户们来说,使用多核处理器是否存在着浪费资源的现象呢?其实根据目前所作的调查,即使是非常“专一”的用户,也不可能是永远在同一时间内只运行一个应用。因为很简单,操作系统也不允许这样。多线程处理效率的提升可以让软件更快地完成处理任务,而这种后台的利用多核资源的情况,对于用户来说或许是无形的。举个例子来说,像大家熟知的Winrar压缩软件,在多核PC上它的压缩时间将会得到较大的改善,或许用户不容易在每一次察觉几十秒甚至是数秒的区别,但是客观上确是为用户节省了这个时间,长期来看这个节省量还是比较可观的。从这个角度去看,软件如何更充分地利用多核PC的硬件条件,不断地优化软件设计对多核PC的发展起到非常关键的作用。当然,在这个优化过程中,厂商也同样也起非常重要的参与作用,协助软件厂商最大化地利用多核是CPU制造商必须正视的课题。新推出的17处理器在功耗上继续有突破新推出的17处理器在功耗上继续有突破从能源角度去看,多核处理器发展的一个重要方向还应该包括如何节能的问题。目前正在解决或者将在解决的是多核处理器要动态实现根据实际使用需求去使用核心数量以节省能源。目前已经实现的随意开启或屏蔽核心数量已经在一定程度上实现了这个功能,今后核心数量的开启与关闭将会越来越节能化。既然多核技术能够如此有效的提升运算速度,为什么不早早的就开始发展多核技术,而是在单片的运算频率上面拼来拼去呢?首先就是软件部分,开发工具没有部署到位的时候,能够合理运用多核技术的应用开发几乎无法进行。有人悲观地预测,应用开发商们将需要几年时间重新编写程序。一旦确立了一种转换方法,IDE工具厂商将开始推出帮助管理多线程开发复杂性的自动化扩展工具。这两个过程很容易用上3〜5年的时间。具有全集成多线程控制结构的商业开发语言应当在5〜7年后得到广泛使用。但即使那样,个人用户也不要指望在每次推出新CPU时,桌面应用程序的性能都会马上提升。对于多内核系统来说,拥有桌面上的CPU带宽与能够利用它是两件完全不同的事情。我们必须清醒地认识到,多核的大众时代尚未到来。对于桌面应用,多核的大众化并不会很快变为现实。大家希望能够利用上多核的高性能,在一般人的理解中,也是如果我用了双核芯片,我的电脑速度就会比原来增加一倍。但是实际上不是这样的。每个应用都能随着越来越多的处理器可供使用而适度地提高性能。正如过去提高时钟速度和应用带宽那样,增加处理器内核的数量同样应当提高性能,为什么对桌面应用就不行呢?尽管利用并行CPU提高总体软件性能的概念至少已经出现35年了,但是在开发工具方面,使这种方法进入商业市场的东西却非常少。可供程序员迅速开发出来的程序还是单线程的。虽然多内核CPU使你可以将多个应用分配到多个处理器上,但是单个应用的性能仍受到单个处理器的速度的限制。夸张一点的说:不管你有一个处理器还是100个处理器,现今的大部分应用程序性能增加不会很大,因为在任何时刻,每个应用只能运行在一个处理器上。因此,对多核技术的真正有效应用成为了限制多核处理器在PC上面的普及的瓶颈。今天的情况正在迅速演变为10年前一幕的重现。需要更多CPU带宽的应用厂商再也不能依靠提高时钟速度来获得更好的性能和功能。多数大规模客户端应用是用C或C++编写的,而且历史上一直被设计为单线程。这使应用的多线程优化是个需要耗费大量劳动力的改写过程。就多内核CPU而言,广泛的桌面性能和功能的改进仍需要几年时间。为了再一次提咼性能和功能,一直依靠CPU时钟速度不断提咼的桌面应用厂商现在必须向长期的、痛苦的软件改写投资,这个过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论