多路处理器,多处理器是多CPU吗

fhuyi0XCV 数码 3 0

一、多处理器是多CPU吗

并行处理不仅可以改善性能,而且还可以通过更好地反映系统行为和开发资源的自然分割来简化设计。

人们可以将多处理器设计定义为这样的系统:它把各项功能和任务分配给多个处理器去完成,而这些处理器彼此协调、互相沟通,以保证行为一致。多处理器系统比单处理器设计更加复杂。它要求为内务操作和协调功能进行额外的编程,调试也更为复杂。这是因为多处理器系统需要各处理器间的交互作用,而在单处理器体系结构中不存在这种处理器之间的交互作用的问题。尽管多处理器设计增加了复杂性,但多年来,它一直用于高性能计算机和工作站中,而且正跻身于日益增多的嵌入式系统应用之中。

人们之所以使用多个处理器,一条突出的理由是,它们能够比单个处理器提供更强的处理能力。在选择单处理器体系结构还是多处理器体系结构时,需要考虑的一些性能因素有:实时算法的处理量,处理外部事件所需的响应时间,所需的数学密集处理量,以及所需的并行运作的能力。多处理器体系结构可提供某种平衡负载的能力,并提供了使用定制的处理器来完成各项系统任务的机会。

现在来考虑一下如果执行时间具有很大的不定性的话,实时处理将会遇到多大困难的问题。例如,当一个处理器刷新流水线、碰上高速缓存器故障、实施关联转换或者采用无序的推理性执行来提高效率时,系统行为就会更加不确定。同样,如果同一个处理器还必须执行高度优先级的、连续而且实时的任务,特别是当这些任务采用“多发布指令”(multi-issue instruction)、而这类指令在任务执行过程中会阻塞“中断服务”时,处理外部事件的响应时间会受很大的影响。如果分别用合适的处理器来完成两项任务,则可以把每一类任务的性能问题和确定性问题分开并予以克服。硬盘驱动器就是这样的实例:主接口功能用一个配置高速缓存的处理器就能很好地实现,而系统的伺服控制部分则由一个精减(stripped-down)处理器来执行。

dsp体系结构通过与外设的紧密交互作用来支持快速的数据传送,从而侧重于执行连续迭代数学处理,主要是乘法-累加运算。为了实现这种连续处理功能,这些处理器常常采用复杂的存储器结构(例如多条总线和多种类型存储器的混合)和专门的指令集,其中包括定点数学运算和通过硬件加速的专用运算操作。虽然这些机制非常适合于预定的用途,但它们的性能却不如用risc体系结构进行控制和响应处理的机制好。

单片系统(soc)设计采用可编程模块这种发展趋势,使人们在明确支持嵌入式多处理器设计的处理器和芯核方面有了更多的选择。这些soc设计所提供的性能可以升级,可以通过编程来达到超过单处理器体系结构为计算密集型应用所能提供的性能;这些soc设计能够更好地反映许多联网系统、多媒体系统和其他嵌入式系统的自然分割,而这些系统本来就是适合多通道或会聚式应用的。对于这些类型的系统,采用多个处理器能够最好地平衡并达到工程的性能、成本、功耗、风险以及上市时间等目标。

许多嵌入式设计正在采用多处理器体系结构,并不是纯粹出于提高性能的考虑。其他考虑因素包括:既有的软件资源和开发工具,关键部件(如那些支持演进中标准的部件)的稳定性,简化工程工作,系统安全性,容错要求,满足价格、功耗、散热和电磁干扰等约束条件。多处理器体系结构可为人们提供用最合适的工程资源来完成每一项设计任务的灵活性和机遇。

人们在处理体系结构方面的经验和既有资源对目前工程的适用性方面的经验,会影响他们采用单处理器还是采用多处理器设计的抉择(参考文献1)。既有的代码或操作系统可能会决定人们选择何种处理器和如何分配工程技术人员。譬如,用不同的小组来从事前端、后端、控制和信号处理方面的工作,会影响对处理器体系结构的选择。在移动电话应用中,信号处理小组开发由dsp芯片来执行的无线电控制功能和语音编译码功能,应用小组则开发由微控制器来执行的人机界面功能。诸如多媒体和无线应用的标准或协议的稳定性会影响人们是将这些协议或标准作为软件来实施,以保证可编程性和灵活性,还是使用某些硬件来降低功耗和成本。

由于软件复杂性并不是随代码长度增加而线性增加,而是比线性增加还要快,因此把软件设计得可在多个专用处理器上运行,可比在单个处理器上运行缩短开发时间,还可简化调试,并改善系统的可靠性。使用单独的处理器可以使人们更容易理解系统中被分割的各项任务之间的相互作用,并最大限度地减少由中断等待时间、处理器加载和内存使用等造成的任务之间的相互依赖性。相互作用的重点可从任务间资源共享转变为处理器之间资源的共享和专用。人们只要让整个操作系统支持系统的某些部分,而几乎不支持其他部分就可以简化性能的分配。

即使一个单处理器可以满足对性能的要求,也不可能满足对成本、功耗、电磁干扰和散热预算等指标的要求。使用多个处理器可以降低时钟频率,以避开某些射频频率,并降低系统的电磁干扰和散热分布。如果任务分割允许把高速的突发性处理分配给某个处理器来完成,并在其不工作期间禁用该处理器,而另一个处理器则处理连续性操作,则可进一步降低系统的功耗预算。只要将安全或加密措施交给与主处理器分开的另一个处理器来实现,就可以提高系统的安全性,而且还能运行一个可以简化逆向工程的标准操作系统。

尽管把多个芯核集成到一个器件中有许多好处,但人们仍然愿意选用在物理上将一个多处理器体系结构分配成若干个离散器件。例如,如果系统需要冗余或容错,就要想法使处理器故障相互隔离。分配多处理器体系结构的另一个例子是采用处理器网络模型。当将每个处理器设置在相关处理及信号的附近(如在汽车中),要求弱化处理器之间的通信、降低信号噪声并且减小系统布线重量时,这种方法是非常合适的。

某些应用不能将多个处理器轻易地分割开来,认识到这一点十分重要。如果在被分割的任务之间需要密切的通信而又想不出合适的互联方式来支持系统的吞吐量或等待时间要求,那就需要重新考虑这种分割或者放弃多处理器方案。

能否成功采用多处理器体系结构,取决于应用系统中固有的并行操作的数量与类型(参见附文《利用并行操作》)。许多单处理器体系结构采用了诸如流水线和超标量指令等技术,这些技术都依赖指令级的时间并行操作或空间并行操作来提高性能。simd(单指令多数据)和多线程技术使系统能够在数据抽象级或线程抽象级采用并行操作。软件分割是多处理系统取得成功的关键,而且这样的体系结构在人们制造它来利用系统的进程级并行操作时具有最大效益。

对称多处理(smp)是一种同类处理器拓扑结构,在此结构中,系统能动态地将处理负载分配到一个紧密耦合的“共享一切”的多个处理器网络中。在这样的系统中,操作系统一般都了解每个处理器并管理任务的分配。这些系统保持着与高速缓存一致的子系统,并能够在处理器之间移植包括操作系统内核在内的各种进程,以平衡负载。处理器数量的增减是有限的,因为随着处理器数目的增加,系统的通信开销在总系统工作负荷中会占据更大的比例。管理多用户环境的网络服务器和事务服务器是smp体系结构的共同目标。

二、多核处理器的应用

技术应用:

并行计算技术是云计算的核心技术,也是最具挑战性的技术之一。多核处理器的出现增加了并行的层次性能使得并行程序的开发比以往更难。

而当前业内并无有效的并行计算解决方案,无论是编程模型、开发语言还是开发工具,距离开发者的期望都有很大的差距。

自动的并行化解决方案在过去的30年间已经被证明基本是死胡同,但传统的手工式的并行程序开发方式又难以为普通的程序员所掌握。

Intel、微软、SUN、Cray等业内巨头正投入大量人力物力进行相关的研究,但真正成熟的产品在短期内很难出现。可扩展性是云计算时代并行计算的主要考量点之一,应用性能必须能随着用户的请求、系统规模的增大有效的扩展。

当前目前大部分并行应用在超过一千个的处理器(核)上都难以获得有效的加速性能,未来的许多并行应用必须能有效扩展到成千上万个处理器上。这对开发者是巨大的挑战。

扩展资料:

多核处理器的技术优势:

从应用需求上去看,越来越多的用户在使用过程中都会涉及到多任务应用环境,日常应用中用到的非常典型的有两种应用模式。

一种应用模式是一个程序采用了线程级并行编程,那么这个程序在运行时可以把并行的线程同时交付给两个核心分别处理,因而程序运行速度得到极大提高。

这类程序有的是为多路工作站或服务器设计的专业程序,例如专业图像处理程序、非线视频编缉程序、动画制作程序或科学计算程序等。对于这类程序,两个物理核心和两颗处理器基本上是等价的,所以,这些程序往往可以不作任何改动就直接运行在双核电脑上。

还有一些更常见的日常应用程序,例如Office、IE等,同样也是采用线程级并行编程,可以在运行时同时调用多个线程协同工作,所以在双核处理器上的运行速度也会得到较大提升。

参考资料来源:百度百科-多核处理器

三、什么是多核处理器【多核处理器的未来路径】

尽管CMP(单芯片多处理器,俗称多核)一度仿佛让人看到了处理器无限美好的未来,但通用处理器的内核数并未如很多人预想的那样快速增加。而未来很多核(many core)处理器和有限多核(Multicore)处理器将并行发展,以共同满足日益分化和复杂的计算环境的需求。

很多核和有限多核

尽管CMP一度仿佛让人看到了处理器无限美好的未来,但通用处理器的内核数并未如很多人预想的那样快速增加。

日益分化和复杂的计算环境对处理器的要求差别是如此之大,以致于仅仅通过一种结构的产品已经越来越难以满足不同细分市场的需求:目前主流电脑的应用领域对并行计算能力的需求并不需要数十甚至上百个内核来实现,更看重每个内核的单线程性能(尽管可能每个内核也支持多个线程),而要在有限的空间内容纳上百个内核必然要求核的设计简单,因而单线程能力相对有限,在执行并行度不高的任务时不能有效发挥其架构优势;另一方面,在流计算和SoC领域,处理器执行的往往是一些并行度很高、重复性较强的任务,这时候,结构相对简单、数量巨大的特殊功能单元(SFU,Special Function Unit)则可以有效地解决工作效率和功耗问题。

于是可以得出这样的结论:未来主流的计算市场(台式机、服务器和笔记本电脑)需要的是有限多核架构,更加强调核的单线程性能,而很多核架构(数十甚至上百个内核)则将应用于流计算、HPC和SoC等特殊计算环境。

这也将成为未来英特尔处理器的一个分水岭,于是就有了所谓“大核”和“小核”处理器之分。前者以目前的酷睿架构为发展基准,追求更好的单线程性能;后者则以凌动(Atom)内核为基础,在设计上强调更高的并行度和更低的功耗。

在指令执行方面,“大核”采用的是乱序执行(out-of-order execution)模式,而“小核”则采用顺序执行(In-order execution)模式。与顺序执行相对应的乱序执行,是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。

与顺序执行技术相比,乱序执行能够更有效地提高IPC,即提高每个时钟频率能够执行的指令数量。一般来说在同样一个主频周期当中,无序核执行指令数量要比有序核执行的数量更多,因而乱序执行架构的处理器单核的计算能力比较强。但乱序执行模式的处理器在电路设计上比较复杂,核的功耗也比较高,在手机和某些嵌入式应用需要绝对低功耗的场合较难达到其设计要求,因此凌动处理器很自然地就采用了顺序执行模式。

未来,很多核处理器和有限多核处理器将并行发展,以共同满足日益分化和复杂的计算环境的需求。而评价一款处理器好坏的标准也会更加复杂,可能既不是通过主频甚至也不是IPC,而要根据其应用特性来具体判断。

Nehalem:迎接“模块化”处理器时代的到来

作为“大核”的代表,酷睿架构在2008年将迎来换代产品―Nehalem。

其实如果单单从处理器内核基本结构角度来讲,Nehalem与酷睿的差别并不大,两者最大的差异在于引入了QPI(Quickpath Interface)互联架构。正是这种点对点互联总线架构的出现,才彻底改变了多年以来CPU与高速外围部件之间存在的带宽和延迟障碍,也给多核处理器的发展注入了新的活力。

新一代的Nehalem架构处理器由内核和核外部分构成,内核实际上就是一个基础的计算引擎,核外则是支持这种基础计算引擎的各种逻辑元件,包括集成的内存控制器、QPI,还有相应的I/O部分、电源和时钟。而正是由于采用了QPI架构,Nehalem处理器核外部分得以采用灵活的模块化设计,并可以根据不同的市场需求灵活配置各个模块,一旦有产品需求,就可以把这些模块灵活地搭配组合设计。

尽管这样的模块化设计并不会进一步缩小处理器的尺寸,但能够进一步加快产品推向市场的时间,因为模块化的设计能够更快地做出变化,把市场所需要的功能,或者设计方案以最快的速度融入到处理器架构当中,推出适合市场需求的新产品。

今年第四季度,英特尔将首先推出面向主流服务器/工作站和高端桌面机市场的Nehalem处理器,研发代码分别为Nehalem-EP和Bloomfield,每个CPU将最高支持4C/8T(即4核/8线程),最高8MB共享三级缓存,含有2个QPI链路;明年将后续推出面向移动和主流桌面客户端的版本,也具备4C/8T和共享三级缓存等特性,其中包括在低端差异化市场推出的内置北桥功能的Lynnfield和进一步集成显示引擎的Havendale处理器;之后是面向高端MP(多路服务器)市场的Nehalem-EX处理器,具备8C/16T,每个CPU含有4个QPI链路。

根据英特尔内部的测试,在双路的情况下,集成内存控制器设计的Nehalem-EP比目前采用1600MHz FSB的Harpertown至强的数据带宽将提高4倍,其性能增益值得期待。

关键的QPI和全互联

是QPI的特点决定了处理器各部件的模块化趋势。而其对处理器性能和设计灵活性方面的帮助更是潜力巨大。从设计思路上来看,QPI的目的是试图为处理器内核和外部高速部件提供充足的带宽,有效解决CPU与GPU、网络的高速连接和内存延迟问题。

传统上芯片组的北桥主要连接GPU、网络、内存等高速部件,南桥则连接USB、键盘、鼠标等低速I/O部件。QPI的出现使得北桥的功能逐渐分化,芯片组逐渐弱化甚至消失,主板设计进一步简单化,计算机也将逐步走向“单芯片”。

尽管这将是一个渐进的过程,但其趋势已经隐约可见。不过需要说明的是,QPI也是处于不断发展成熟的过程中,对于逐渐增多的处理器内核,实现全互联即所有内核之间均有QPI链路直接连接(另外每个内核还带有一个用于I/O的QPI链路)将是必然的。从目前英特尔公布的第一代Nehalem架构来看,还没有实现核间的全互联,但随着QPI架构的逐渐成熟,这一天似乎并不遥远。

效能依然是关注重点

根据假定的核数量、频率和 SSE/AVX等指令集的发展推断,明年单处理器的性能就将达到1GFlops,2011年超过100GFlops,2012年将有望冲击300GFlops……

对于处理器性能的发展,英特尔高级院士兼数字企业部首席技术官庞思立表示:“英特尔未来仍将快速提高处理器单线程的处理性能,并通过SSE指令集、线程和核心数量提升处理器的并行处理能力。”

这似乎没有悬念,但很自然地想到,功耗问题将如何解决?

功耗控制可以细分为活跃、空闲、休眠和待机等不同状态。短期来看,活跃能耗已经基本没有下降的空间,除了采用更简单高效的内核设计外,性能的持续增长似乎已经榨干了有限的能耗降低空间,未来处理器的功耗主要通过控制其低工作负荷或休眠状态下的能耗为主,而多核并行处理时的能耗控制将成为重点关注的一个方面。

如何将晶体管有效地布置到一定的半导体晶圆上,人类确实需要足够的智慧。

抱歉,评论功能暂时关闭!