多核处理器的性能最优化设计.doc_第1页
多核处理器的性能最优化设计.doc_第2页
多核处理器的性能最优化设计.doc_第3页
多核处理器的性能最优化设计.doc_第4页
多核处理器的性能最优化设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

多核处理器的性能最优化设计:对于空间、能耗及同构异构型的讨论摘要:本篇论文综述了关于多核体系的芯片在设计上所考虑的各种因素以达到最高的性能。在设计多核处理器芯片上,空间、能耗、性能以及在芯片上各核之间的通讯都是必须考虑周到的东西。而在06年的一篇文章中更是提出用异构型的多核处理器的性能要比用通用处理器芯片组成的多核心处理器的性能要来得高【1】。当然,在设计一个芯片时,空间,能耗是首要考虑周到的问题。关键字:多核体系结构,计算机体系结构1 引言随着计算机硬件技术的不断发展,多核处理器体系结构已经是最具有吸引力和挑战性的领域。多核的处理器能够在保证了能耗以及复杂度的前提下,最大限度地提高系统的整体吞吐率。因此,当今的处理器体系结构设计的重点已经转移到了对多核心处理器芯片的设计上。如今已经有多种多核的处理器架构存在于市面上,如IBM POWER4,POWER5,Intel的酷睿和AMD公司的架构。然后,对于这种日益增长的将N个核心放在一块芯片上的趋势,我们对于真正影响多核芯片的因素以及之间的联系却仍然不是非常的清楚。而事实上,影响多核体系结构设计的因素是各式各样成千上万的,比如说,我们得考虑我们的性能输出,同时得考虑到面积的区域大小的限制,得考虑到由于核心过多导致的电量供给不足,以及带宽总线的数量产生的影响甚至于我们还得考虑到软件对多核处理器所带来的影响。因此,对于各种因素有个良好的分析以及对于总体性能影响而导致的主次之分的区别,对于整体设计而言是十分重要的。首先而言,能耗(电量)、区域大小限制、延时以及带宽是对于设计多核处理器的最重要的瓶颈因素,其设计方式以及采用的各种各样的参数直接影响了能够采用的核的数量,性能的高低及其他关键性的因素。其次而言就是处理核心的数量,缓存使用的形式,这几项是影响总体性能的次要关键。而在处理核心数量和缓存这两个中,处理核心数又直接影响了面积的参数,当今比较流行的是双核的体系结构,现在intel实现了4核的处理器架构并且发布,事实上,SUN公司已经成功将8个核放在一个核心上了【6】,最近有证据显示,INTEL公司甚至有八十核的处理器,然后其功耗以及面积并非市面所见了,暂且不论。而缓存的使用方式对于性能的影响在许多论文中也有过探讨。现在,Intel的CoreDuo系列,IBM的power5系列以及SUN的Niagara系列都是采用的核上共享二级缓存的做法。同样,一些使用单独的核心自带二级缓存的多核处理器也是存在的,其性能也是有差距的。事实上,增加处理核心的数量意味着增加核间总线以及对缓存或者其他共享设备的冲突。因此,在性能与能耗,性能与空间限制等一系列参数值中寻找到一个最好的折中点,是我们当前最该做好的事情。试验数据表明,对于多核处理器体系的未来设计而言,核间的内部联系或者共享将是一个巨大的挑战也是首要的设计要素。比如,在【2】中提到的8核心处理器在保守的情况下,其能耗只相当于一个单核处理器,而其面积等于三个核。不论核/缓存架构或者是内联的架构,都是可以单独发展和单独设计的,而研究表明,最好的设计是综合考虑这二者。2 相关知识首先,介绍一下在内联体系结构中的几个层次结构。SBF(共享总线结构)提供了一种到多个模块共享的连接,P2P(点对点连接)系统在一个多SBF系统中用来连接2个不同的SBF,最后一个层次结构就是纵横连接系统(crossbar interconnection system)。2.1 共享总线结构这里首先介绍一下SBF的一些知识。SBF(共享总线结构)是一种用于连接CMP上处理器,缓存,I/O设备以及存储器的告诉连接线路。这种连接就相当于是在多处理器架构中的探测总线那样的作用了。由于这种原因,SBF是一种复用线路,它必须提供多种传输协议,比如说请求、探测、响应、数据传输等等。又由于其在芯片上的巨大的传输距离以及巨大的线路等待延时,因此,SBF被设计成为是流水线方式以及单向方式。又正是由于这种定义,SBF总是成对出现的。下面介绍一下在SBF上比较典型的事务发生,我们假设所有的处理核心都拥有自己独立的1级和2级缓存,SBF连接的是所有的2级缓存。首先,一个在二级缓存上的load指令miss将导致这个指令进入SBF寻求帮助。一个处理核心将请求发到中央仲裁器(central address arbiter)告诉它有请求。当它通过其请求时,它将请求发送到一个地址总线上(address bus)。请求将到达地址总线的末端并且置于探测队列的末尾,等待着进入探测总线(snoop bus)。当请求进入了探测总线后,将会使得每个位于探测总线末端的节点都将一个响应消息放在响应总线(response bus)上。而在响应总线末端的逻辑部件将收集这些响应并且产生一个广播消息,这个广播消息通过响应总线回到所包括的每个节点并且告诉它所应该做的行为。最终,数据将通过一个双向数据总线(data bus)来到最初的请求者。实际上,我们刚才提到了,SBF总线是单向总线,而这里说的双向数据总线实际的处理中是两个单向总线合成的。而如果,在这里有许多的SBF,比如说通过P2P连接了多个SBF,那么这个地址的请求将会通过这个连接广播到其他的SBF上去,并且最终一个来自远程SBF的联合响应将返回到本地,并且与本地的响应融合在一起了。以下是典型的一个SBF图。2.2 P2P连接结构当在一个体系结构中存在了多个SBF时,那么在SBF中间通过一个P2P的连接结构就是必要的了。与SBF相似的是,P2P连接结构也同样必须支持多种协议,比如说请求,响应以及数据传输等等,但P2P必须支持的是双向连接。下图展示的是一个16核体系下的P2P连接。在16核体系中,由于考虑到处理核心的大小,以及延迟性等一系列问题,因此,无法将16个核心都连接到一个SBF上。这时候2条SBF中间的P2P连接结构就成为必要了。而事实上,对于这样的结构而言,SBF如何增加带宽,减少线路上的延迟或者减轻平面的布置就成为必须进行改进的话题了。2.3 纵横内联系统我们以上对于SBF以及P2P连接结构的讨论都是建立在每个处理核心都拥有自己独立的一级和二级缓存的基础上的。然而,在现在的市场上,多核处理器大多都是共享二级缓存的。那么,如果我们允许多个处理核心共享一个缓存池的话,那么在核间以及缓存池的中间就需要一个高带宽的连接,而这个连接比较典型的就是靠我们的纵横内联系统完成。一个纵横内联系统由纵横连接的总线以及纵横连接的逻辑部件组成,它包含了从每个处理核心到缓存池的地址线路,从每个处理核心到到缓存池的数据线路以及从每个缓存池到每个处理核心的数据线路。以下是一个比较经典的纵横内联系统:在这里我们必须注意的是,在共享二级缓存的体系中,并不是说SBF就不需要,相反,在共享二级缓存的CMP系统中,SBF仍然需要用来保持在CMP系统中的多个单元的一致性。3 多核处理器结构的设计这里,考虑的是乱序发射的IBM POWER4相似的结构。假设我们采用的是65nm的工艺,一个处理核心的面积大约是10mm2,而每个处理核心的能耗(包含了能耗泄露)大约为10W。接着,同样考虑在核上的存储器的大小。使用的是IBM POWER5的缓存机制,65nm工艺。为了研究的方便,仅仅只考虑芯片上存在二级缓存,而不考虑三级缓存。但是,这里指出的模型并不是仅仅包含了二级缓存以及存储控制器,同样的也考虑和包含了在芯片上能够产生事件的DMA控制器以及非缓存性指令功能单元(Non-cacheable Instruction Units,UCUs)。在这里要指出NCUs的作用,它能够传递诸如syncs,eieios(enforce inorder execution of I/Os),TLB invalidates等等一系列的不能被缓存必须被直接进入结构的指令。每个处理核心都拥有一个相应的自己的NCU。详细的设计可以查看IBM 的Power4 和Power5架构【7,8】。3.1 SBF的考虑做完这一系列的假设后,我们来看看SBF的各种参数的采用对于整体性能的影响以及我们在设计时需要考虑到的问题。也许SBF这种总线结构对于大多数人来说觉得空间细小影响甚微,然而,我们将看到的是,SBF对于整体的性能影响是巨大的,在随着处理核心的增加时,SBF的增加以及SBF的一系列性能瓶颈将甚至能够直接让整个架构崩溃。同样,像前面所说的,我们在考虑SBF结构时,一般考虑的是每个处理核心都拥有一个独立的二级缓存,同时,所有的二级缓存通过SBF进行连接。同时对四核、八核以及十六核处理器进行考虑,但是,我们的芯片大小为固定的面积400mm2。这种考虑与设计就要求我们对于不同的处理核心数量在平面分布图上的设计要小心再小心的尽可能增加每个处理核心所自带的缓存。假设,我们考虑SBF上地址总线、探测总线、相应总线以及数据总线的带宽分别为7字节,12字节,8字节以及38字节,其中数据总线是每个方向都是38字节的带宽。就像在介绍纵横内联系统时所看到的图,对于4核和8核的处理器上,我们可以仅仅才取单SBF结果,但是对于16核的处理器来说,必须使用2个SBF同时使用一个P2P的连接。对于4核、8核以及十六核来说,由于其处理核心所占的大小是相同的,因此随着核的数量的增加其二级缓存将会减小。这里,4核中每个处理核心所拥有的二级缓存是8MB,而8核是3MB,对于16核来说仅仅只有0.5MB了。值得注意的是,在当前的技术工艺的条件下,这种16核的结构是不现实的,因为这种架构将会产生巨大的能耗,这里仅仅只是因为分析完整性的需要了。接下来考虑SBF所占的空间问题。SBF所消耗的空间主要是来自于线路以及内部相关的逻辑单元部件。而线路的消耗主要是来自于体系总线以及控制总线的消耗,而这些都是控制与裁决所必须的。对于数据总线来说,我们假设其运行在4X架构上【9】,因此其占据的空间(76字节)是2um*76*8*length,结果是24.32mm2。对于运行在8X架构上地址总线(7字节),探测总线(12字节),响应总线(8字节)以及控制线路(8核的控制线路至少有198条),由于其能够从数据总线的顶上飞过,因此其所占据的空间能够与数据总线重合而不考虑过多。对于16核处理器来说,P2P连接也是相同的道理,它能够从2级缓存的顶上飞过。下图是随着处理核心的增加所产生的SBF所占面积的增加:从上图可以看到,对于一个400mm2固定的芯片空间来说,16核的内联体系的总线面积就以及占到了13%,8核以及4核所占8.7%和7.2%。而如果我们假设的是每个处理核心的大小是固定的10mm2的话,也就是说,我们的SBF的就相当于多出了3-5个额外的处理核心,或者一个4-6MB的额外的二级缓存了。我们同样还能够看到,控制总线在整个SBF内所占据的空间是巨大的。对于一个4核来说至少是37%而对于16核来说其占据了SBF所占的空间的62.8%了。这是因为,当处理核心增加时,控制单元的数量也将随着成线性增加,而这种增加所带来的空间上的消耗是无法通过减小SBF带宽来恢复的,因此,控制总线的多少直接限制了通过带宽减小所能够带来的空间消耗的恢复量。对于能耗,我们可以从下图找到一些对比及启示:对于SBF,能耗主要来自于线路以及逻辑功能部件能耗的总和。从图中我们可以看出来,SBF的能耗是相当巨大的,在16核处理器中它相当于两个处理核心的能耗了,在一个8核体系中它也相当于是一个完整核心所占的能耗量了。而可以看到的是,当处理核心数量增加时,其能耗是超线性的,这是因为当处理核心数量增加时,其各种控制器或者说是多路选择器逻辑功能部件等等呈线性增加趋势直接导致了能耗的突飞猛进。而可悲的是,这些能耗有一半竟然都来自于能量泄露(主要是继电器结构)。接下来考虑SBF带宽与性能的一些联系。从下图我们可以看出来,SBF的带宽与空间的一些联系:当带宽比较高时,其占据的空间是巨大的,但是其性能的减少却是微乎其微的。但是,当带宽以2为参数减少时,SBF所节省下来的空间却是巨大的。我们如果能将节省下来的空间用来增加我们每个处理核心上二级缓存的大小的话,其性能的提高将是显而易见的。比如说,减少一倍的带宽将会减少0.57%的性能,可是却能够节省出8.64mm2的空间,将这些空间用来增加二级缓存能够增加每个处理核心135KB的二级缓存,最终其性能提升了0.675%。然而这种方式不能无限制进行,比如说,我们将带宽减小了8倍的话,其性能减少达到了31%,可是其空间面积却只是节省了15.12mm2,这些面积仅仅只能给每个处理核心增加240KB的二级缓存。也就是说,这种增加二级缓存所带来的性能提高还不足以弥补减少带宽所带来的性能确实。因此,我们有理由认为,在多核处理器的设计中,对于内联以及存储器层次的联合设计与考虑是重要的。也就是说,并不一定是最大的带宽或者说是最大的缓存就一定能够带来最好的性能。3.2 共享缓存以及纵横内联系统我们以上所介绍的都是在每个处理核心拥有独立的二级缓存时所采取的方式SBF连接的一系列参数。接下来我们讨论在多个处理核心共享二级缓存这样一种机制下所才用的纵横内联系统。我们前面介绍过,这种系统是用来连接处理核心到共享的二级缓存池的。这种系统种,数据总线是32字节的而地址总线是5字节的。在接下来的讨论中,主要是讨论8核处理器下,拥有8个二级缓存池同时分别采取2路,4路和全联方式共享缓存池。下图是使用不同的方式共享二级缓存所导致的空间消耗:我们使用的纵横内联系统可以用两种方式来放置我们的线路,一种是将线路放置在处理核心与二级缓存之间,另一种则是将线路从二级缓存的上方通过。当我们的线路从处理核心以及二级缓存之间通过时,我们的接口是容易设计的,然而其空间面积的消耗却是巨大的。如果我们使用的是从二级缓存的上方通过我们的线路的话,那么这种实现将提高我们的垂直线路的设计复杂度同时也增加处理核心到二级缓存的接口设计的问题。从图中我们可以看到,对于共享二级缓存来说其线路所带来的巨大空间消耗。假定我们的芯片面积是400mm2,那么对于我们能够接受的线路延迟来说(2X,【9】)其线路所占空间在2路共享上占了11.4%,在4路共享上占了22.8%,而在全联方式下则是46.8%。而当我们是将线路从二级缓存上通过时,其占的空间虽然说是相对固定的,但是它却要求我们提升我们所采用的金属的层次,这将导致我们的线路延迟的变化。这种对于共享二级缓存所带来的巨大线路消耗使得我们不得不考虑内联、缓存以及处理核心的联合设计了。当我们将纵横内联系统的线路都置于处理核心和二级缓存之间的话,那么仅仅是二路共享的方式,其占的空间大小就比两个处理核心所占的大小还要大得多了,四路共享是四个处理核心,而八路共享的话其占地面积已经比9个处理核心还要多了。假设我们将这些相同的面积都用来增加二级缓存的大小的话,那么我们可以分别得到2.75MB,5.5MB以及11.6MB的额外的缓存了。而对于能耗来说,仅仅只是2路共享的话,其能耗也比一个单核的能耗的一半还多了。因此,我们在考虑设计时,如果说能耗是首要的限制因素的话,那么我们得首先考虑是否采取这种共享二级缓存的方式进行我们的总体设计了。对于共享式的二级缓存的方式,现在比较流行的有这几种,一些论文中提到应该强调每个共享二级缓存线程的缺失率都是比较低的,而另外一些论文则更强调的是对于总体及整个系统的平均性能的最大化。然而,现在,我们却没有一个公认的最好的方法来在二级缓存的共享使用方式上取得最大性能。在过去,评论二级缓存策略的好坏一般都是用缺失率(miss rate)来衡量。但是在【4】的论文中,我们看到,对于已经设定的标准来说,miss rate是个不好的衡量标准,因为它与预期所需要的性能目标是不完全吻合的。因此,采用IPC和MPC来测量在强调全局性能的模型的带权IPC是个好方法,而对于强调公平性的性能模型来说,却没有找到一个很好的测量方法。同样也是在【4】文中,我们发现,对于大多数的工作测试平台来说,对于预期的目标,如果强调线程的公平性或者强调全局的性能最大化来说,其差距都是较小的。对于线程的公平性,其最终结果和强调全局性能的最终结果也很接近的;而对于全局性能的强调似乎也能够保证每个线程的公平性。但是,也总是有这样的一些测试工作平台,在测试时无法达到其另外一个目标的要求。因此,实际而言,完全的想要既保证公平性又保证全局性能最大化的策略似乎是不存在的。这让我们对于未来的工作是有启示的:发展动态的调度功能,使得每个二级缓存分区能够最优化。4 改进正如前面所主要介绍的,我们是采用的是65nm的工艺进行的设计。我们可以想象随着工艺技术的发展可以采用更高级的纳米技术来设计我们的芯片。那时候,继电器或者锁存器等所占用的空间都将减小。或者说,更深层次的流水线或是更快的时钟周期同样能够在逻辑上减少继电器和锁存器等设备所占的空间大小。同样,对于采用新技术来说,还能够增加我们所猜测的存储器大小或者说减少缓存的读取时间。对于400mm2固定面积上的芯片来说,采用65nm,45nm以及32nm的八核结构能够分别让每个处理核心拥有自己的3MB,6MB和10MB的独立二级缓存,这就意味着在性能上将会大大地提高。我们以上讨论的多核处理器都是在一个芯片上集成多个相同的处理器核心以组成我们想要的多核处理器的结构。但是,有研究表明,对于一个多核处理器来说,这种同构型的多核处理器的性能以及设计并非是最好的【14、15】。如果我们的一个芯片上集成了多个不同的核心,由于不同的程序运行的重点不同,因此程序能够在调度时如果送到最适合该程序的处理核心进行处理的话,其性能将会大大地提高,也就将会见到异构型的CMP能够获得比同构型的CMP更高的吞吐量以及更好的执行效率了。然而,仅仅这些似乎不够,因为【14、15】采用的方法都是使用现存的处理核心凑在一起作为一个新的处理芯片,这缺少了过多的灵活性。其次,这些处理核心都采用的是一种单一的关系,无论是在设计还是在性能上。比如说现在的处理核心,一般性能最强,功能最全的处理核心总是最大最复杂。最后,可以说,所有的处理核都是通用型的处理核心。这也就是说,其并不能对某一种单一的应用程序进行最大的优化,这也就从另一种角度限制了多核处理器的发展。而在【1】的文章中第一次对异构型的多核处理器的设计进行了探讨。与前人相比,作者指出,设计一个异构型的多核处理器,最好的方法并不是寻找到那些通用的处理核心,而是找到那些能够对不同种类的应用程序能够使其运行效率最大化的多种不同的处理芯片合在一起。我们还能够看到,对于自己设计的处理器比其过去从前的异构型处理器拥有更好的性能以及更小的能耗。比如说,对于这种设计【1】来说,它能够超过最好的同构型多处理器设计性能的15.4%,同时也超过了那种单一型设计的异构型处理器的性能的7.5%,甚至对于完全的同构性的测试平台以及单线程的测试平台来说,其性能还是要高出许多。对于多核处理器来说,能耗和空间问题是很大的一个瓶颈。而对于这些异构型的多核处理器来说,在能耗以及空间都是严格限制的情况下,能够取得性能高出40%的可能性。我们可以看到,随着时间的推移,能耗将成为多核处理器上最难处理的问题,也就是说,对于这种增长,采用异构型的多处理器核心将真正使得多核处理器的设计性能的最大化。5 总结本文介绍了对于在一个假设的多核处理器芯片上进行建立我们的多核心处理器所需要的点点滴滴。我们从中看到,对于一个多核处理器体系架构来说,在芯片上总线内联,二级缓存等等一系列的部件都比在芯片外部设计时来得复杂得多,因为我们要既要考虑到处理芯片的大小功耗同时也得考虑到总线结构以及二级缓存的大小和功耗,因为它们所占的空间甚至比一个处理核心还要大,或者说它们所具有的功耗比一个处理核心还要强。而二级缓存的大小和其所占的空间是成正比的,同时二级缓存的大小又直接的影响了整个多核处理器的整体性能。如此一来,我们可以很清楚的看到,内联系统对于设计一个多核处理器所带来的挑战。另外我们同时也看到了可以通过减少内联系统的带宽增加整体的性能,那是因为节省下来的总线空间可以用来增加二级缓存的空间也就是增加二级缓存的大小来直接提高性能。然而这种方法并不能无限制的提高整体性能。当减少带宽所带来的性能确实无法通过增加缓存的方法来增加时,这种方法将直接导致另外一种极端。因此,在设计一个多核处理器时,内联系统的整体设计是需要总和和全盘进行考虑的,这是最好的一个例子。最后我们通过【1】文章看到了现在设计多核处理器的新的思路异构型的处理器设计。这种设计的理念在于使用特殊的处理核心结合在一起,而不是想往常那样使用已存在的通用型的处理核心来组合成一个多核处理器。而这些处理核心,每个处理核心都是能够在某一类的应用程序上要发挥出比通用型处理核心更好性能的。尽管从单核处理器的角度来看这些处理核心,其性能要差很多,但是,其充分发挥了多核处理器的天生优势,使得不同类型的应用程序能够走到最适合运行它的芯片上去,这样能够最大限度的提升总体性能。同时,我们还能够看到,在日益增长的技术面前,对于能耗的瓶颈,异构型的多核处理器能够更好地适应其变化。我们有理由相信,时间与技术发展的同时,异构型的非传统多核处理器将会成为多核处理器市场的主要产品。6 参考文献【1】Rakesh Kumar, Dean M. Tullsen 。Core Architecture Optimization for Heterogeneous Chip Multiprocessors .Dept of Computer Science and Engineering University of California, San Diego. In ACM 2006【2】R. Kumar, V. Zyuban, and D. M. Tullsen. Interconnections in multi-core architectures: Understanding mechanisms, overheads and scaling. In Proceedings of International Symposium on Computer Architecture, 2005.【3】Jeffery A. Brown,Rakesh Kumar,Dean Tullsen. Proximity-Aware Directory-based Coherence for Multi-core Processor Architectures. In ACM 2007【4】Lisa R. Hsu, Steven K. Reinhardt, Ravishankar Iyer Srihari Makineni. Communist, Utilitarian, and Capitalist Cache Policies on CMPs:Caches as a Shared Resource.In ACM 2006【5】Keith A. Bowman, Alaa R. Alameldeen, Srikanth T. Srinivasan, and Chris B. Wilkerson. Impact of Die-to-Die and Within-Die Parameter Variations on the Throughput Distribution of Multi-Core Processors. In ACM 2007【6】P. Kongetira, K. Aingaran, and K. Olukotun. Niagara:A 32-way multithreaded sparc processor. In IEEE MICRO Magazine, Mar. 2005.【7】IBM. Power4:/power4.【8】IBM. Power5: Presentation at microprocessor forum. 2003.【9】C. Kaanta, W. Cote, J. Cronin, K. Holland, P. Lee, and T. Wright. Submicron wiring technology with tungsten and plana

温馨提示

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

评论

0/150

提交评论