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

多核在规划中占多数
  另一方面,对于并不习惯处于多任务操作的用户们来说,使用多核处理器是否存在着浪费资源的现象呢?其实根据目前所作的调查,即使是非常专一的用户,也不可能是永远在同一时间内只运行一个应用。因为很简单,操作系统也不允许这样。多线程处理效率的提升
可以让软件更快地完成处理任务,而这种后台的利用多核资源的情况,对于用户来说或许是无形的。

  举个例子来说,像大家熟知的Winrar压缩软件,在多核PC上它的压缩时间将会得到较大的改善,或许用户不容易在每一次察觉几十秒甚至是数秒的区别,但是客观上确是为用户节省了这个时间,长期来看这个节省量还是比较可观的。从这个角度去看,软件如何更充分地利用多核PC的硬件条件,不断地优化软件设计对多核PC的发展起到非常关键的作用。当然,在这个优化过程中,厂商也同样也起非常重要的参与作用,协助软件厂商最大化地利用多核是CPU制造商必须正视的课题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。