<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>中文 &#187; tfnew21</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/tfnew21/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Sat, 26 May 2012 06:34:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>多核研究现状</title>
		<link>http://software.intel.com/zh-cn/blogs/2009/08/26/400002199/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2009/08/26/400002199/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 06:30:19 +0000</pubDate>
		<dc:creator>tfnew21</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[多核]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2009/08/26/400002199/</guid>
		<description><![CDATA[目前，多核技术已经成为最受关注的话题和研究方向。多核体系结构为性能提高和节能计算等领域开辟了新的方向。然而，现在的多核处理器还没有统一的标准，基本上处于探索阶段。核与核之间的连接方式、通讯协调方式、同一处理器中核与核间结构的差异、器件资源分配策略、任务调度策略、节能策略、软硬件协同设计策略等方面都处于研究探索之中。多核必将带来影响整个计算机行业方方面面的巨大变革，包括体系结构研究、嵌入式系统设计和解决方案设计、编译技术、操作系统核心算法、应用软件设计等计算机系统的各个领域。 在单核处理器研究中，主要集中在提高频率，提高指令级并行度等方面。而在多核体系中，更加关注核与核之间的协作、共享资源的分配、提高线程级并行度等方面。 多核处理器必然带来一个问题是，需要提高程序的并行度，因为单线程程序是无法发挥多核处理器的优势的。通过编译优化可以把原先单线程的代码编译成多线程的形式。OpenMP提供了一种方法，程序员根据需要把可以并行处理的代码加上合适的标记，编译器根据这些标记把相应代码编译成多线程的程序段。多线程程序开发涉及到多线程调试的难题，这在多核处理器上会变得更加困难，所以多核体系导致程序开发模式发生巨大变化。 多核处理器上的任务调度也是个新问题，常用的调度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务等待队列，当系统中有一个CPU核心空闲时，操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU核心利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列，当系统中有一个CPU内核空闲时，便从该核心的任务等待队列中选取恰当的任务执行，这种方法的优点是任务基本上无需在多个CPU核心间切换，有利于提高CPU核心局部Cache命中率，从而提高系统的性能。目前多数CMP操作系统采用的是基于全局队列的任务调度算法。 如何有效地利用多核技术，对于多核平台上的应用程序员来说是个首要问题。多核时代的到来需要软件开发者必须找出新的开发软件的方法，选择程序执行模型。在多核系统中，核心是通过内存共享数据和通讯。为了充分利用多核，程序需要同时做很多事情。并行程序执行指令的速度将比传统的串行程序要快很多，因为它能将工作负载按照不同需求分配给处理器的不同核心]]></description>
			<content:encoded><![CDATA[<p>目前，多核技术已经成为最受关注的话题和研究方向。多核体系结构为性能提高和节能计算等领域开辟了新的方向。然而，现在的多核处理器还没有统一的标准，基本上处于探索阶段。核与核之间的连接方式、通讯协调方式、同一处理器中核与核间结构的差异、器件资源分配策略、任务调度策略、节能策略、软硬件协同设计策略等方面都处于研究探索之中。多核必将带来影响整个计算机行业方方面面的巨大变革，包括体系结构研究、嵌入式系统设计和解决方案设计、编译技术、操作系统核心算法、应用软件设计等计算机系统的各个领域。</p>
<p>在单核处理器研究中，主要集中在提高频率，提高指令级并行度等方面。而在多核体系中，更加关注核与核之间的协作、共享资源的分配、提高线程级并行度等方面。</p>
<p>多核处理器必然带来一个问题是，需要提高程序的并行度，因为单线程程序是无法发挥多核处理器的优势的。通过编译优化可以把原先单线程的代码编译成多线程的形式。OpenMP提供了一种方法，程序员根据需要把可以并行处理的代码加上合适的标记，编译器根据这些标记把相应代码编译成多线程的程序段。多线程程序开发涉及到多线程调试的难题，这在多核处理器上会变得更加困难，所以多核体系导致程序开发模式发生巨大变化。</p>
<p>多核处理器上的任务调度也是个新问题，常用的调度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务等待队列，当系统中有一个CPU核心空闲时，操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU核心利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列，当系统中有一个CPU内核空闲时，便从该核心的任务等待队列中选取恰当的任务执行，这种方法的优点是任务基本上无需在多个CPU核心间切换，有利于提高CPU核心局部Cache命中率，从而提高系统的性能。目前多数CMP操作系统采用的是基于全局队列的任务调度算法。</p>
<p>如何有效地利用多核技术，对于多核平台上的应用程序员来说是个首要问题。多核时代的到来需要软件开发者必须找出新的开发软件的方法，选择程序执行模型。在多核系统中，核心是通过内存共享数据和通讯。为了充分利用多核，程序需要同时做很多事情。并行程序执行指令的速度将比传统的串行程序要快很多，因为它能将工作负载按照不同需求分配给处理器的不同核心</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2009/08/26/400002199/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多核软件设计方案</title>
		<link>http://software.intel.com/zh-cn/blogs/2009/08/26/400002197/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2009/08/26/400002197/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 06:29:55 +0000</pubDate>
		<dc:creator>tfnew21</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[多核]]></category>
		<category><![CDATA[软件设计]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2009/08/26/400002197/</guid>
		<description><![CDATA[对于只关心数据转发的应用，例如IDS系统只需关心数据的解析，告警，然后进行转发。可以让所有的core都作为Simple Executive进行数据处理，每个core都运行的是同一个程序的副本，核间通过共享数据结构，共享内存以及硬件提供的通信机制进行通信。充分发挥出多核的优势，实现高性能的数据处理。 Bootloader支持将不同的应用程序加载到不同的core上，core 0做为control core，core 1-15做为service core。Core 0运行linux kernel，做为控制平面，core 1-15运行应用程序，做为数据平面，完成数据处理及报文转发的协议栈。 Linux 2.6 内核对SMP（对称多处理机）提供了很好的支持。引入了新的 O(1) 调度程序，它包含更好的 SMP 系统支持。能在 CPU 之间进行负载平衡，同时维持亲合性以提高缓存效率。 内核为每个处理器维护两个 runqueue（过期的和活动的 runqueue）。每个 runqueue 支持 140 个优先级，前面的 100 个用于实时任务，而后面的 40 个用于用户任务。任务分时间片执行，在使用完它们分配到的时间片时，这些任务被从活动的 runqueue 移至过期的 runqueue。如果活动运行队列中已经没有某个给定优先级的任务了，那么指向活动运行队列和过期运行队列的指针就会交换，这样就可以让过期优先级列表变成活动优先级的列表。这就为所有的任务提供了公平访问 CPU 的机会（仅根据每个 CPU 锁定）。 利用每个 CPU 的任务队列，可以根据系统中所有 CPU 的负载进行负载平衡。每 200 毫秒，调度程序就执行一次负载平衡调节，以便重新分配任务负载，维持处理器之间的平衡。 目前，Linux 2.6 kernel已比较成熟，由Linux kernel进行多核的硬件资源管理，调度，构建在linux下的应用程序。可以大大减小开发的工作量，软件系统也会有很高的稳定性。]]></description>
			<content:encoded><![CDATA[<p>对于只关心数据转发的应用，例如IDS系统只需关心数据的解析，告警，然后进行转发。可以让所有的core都作为Simple Executive进行数据处理，每个core都运行的是同一个程序的副本，核间通过共享数据结构，共享内存以及硬件提供的通信机制进行通信。充分发挥出多核的优势，实现高性能的数据处理。</p>
<p>Bootloader支持将不同的应用程序加载到不同的core上，core 0做为control core，core 1-15做为service core。Core 0运行linux kernel，做为控制平面，core 1-15运行应用程序，做为数据平面，完成数据处理及报文转发的协议栈。</p>
<p>Linux 2.6 内核对SMP（对称多处理机）提供了很好的支持。引入了新的 O(1) 调度程序，它包含更好的 SMP 系统支持。能在 CPU 之间进行负载平衡，同时维持亲合性以提高缓存效率。</p>
<p>内核为每个处理器维护两个 runqueue（过期的和活动的 runqueue）。每个 runqueue 支持 140 个优先级，前面的 100 个用于实时任务，而后面的 40 个用于用户任务。任务分时间片执行，在使用完它们分配到的时间片时，这些任务被从活动的 runqueue 移至过期的 runqueue。如果活动运行队列中已经没有某个给定优先级的任务了，那么指向活动运行队列和过期运行队列的指针就会交换，这样就可以让过期优先级列表变成活动优先级的列表。这就为所有的任务提供了公平访问 CPU 的机会（仅根据每个 CPU 锁定）。</p>
<p>利用每个 CPU 的任务队列，可以根据系统中所有 CPU 的负载进行负载平衡。每 200 毫秒，调度程序就执行一次负载平衡调节，以便重新分配任务负载，维持处理器之间的平衡。</p>
<p>目前，Linux 2.6 kernel已比较成熟，由Linux kernel进行多核的硬件资源管理，调度，构建在linux下的应用程序。可以大大减小开发的工作量，软件系统也会有很高的稳定性。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2009/08/26/400002197/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多核体系结构的发展</title>
		<link>http://software.intel.com/zh-cn/blogs/2009/08/26/400002200/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2009/08/26/400002200/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 06:28:26 +0000</pubDate>
		<dc:creator>tfnew21</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[多核]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2009/08/26/400002200/</guid>
		<description><![CDATA[随着芯片制造工艺的不断进步，从体系结构来看，传统的处理器体系结构技术已面临瓶颈，晶体管的集成度已超过上亿个，很难单纯地通过提高主频来提升性能，而且主频的提高同时也带来功耗的提高。所以并行计算技术应用而生，通过增加计算机中物理处理器的数量，能够有效地利用线程的并行性，实现真正意义上的并行执行。 并行计算机是由一组处理单元组成的，通过相互之间的通信与协作，以更快的速度共同完成一项大规模的计算任务。20世纪60年代初，晶体管以及磁芯存储器的出现，处理单元变得越来越小，存储器也更加小巧和廉价。这些技术导致了并行计算机的出现。这一时期的并行计算机多是规模不大的共享存储器系统，例如IBM 360。20年代末期，同一个处理器开始设置多个功能相同的功能单元，流水线技术也出现了。这些并行特性的应用大大提高了并行计算机系统的性能。 Flynn根据指令流和数据流的不同组织方式，把计算机系统的结构分为以下4类： 单指令流单数据流（Single Instruction stream Single Data stream, SISD） 单指令流多数据流（Single Instruction stream Multiple Data stream, SIMD） 多指令流单数据流（Multiple Instruction stream Single Data stream, MISD） 多指令流多数据流（Multiple Instruction stream Multiple Data stream, MISD） 指令流是指机器执行的指令序列，数据流是指指令流调用的数据序列，包括输入数据和中间结果。SISD就是顺序处理的串行机。SIMD和MIMD是典型的并行计算机。SIMD计算机中，有一个控制部件和许多处理单元。大量的处理单元通常构成阵列，因此SIMD计算机也称为“阵列处理机”。所有处理单元在控制部件统一控制下工作，控制部件向所有的处理单元广播同一条指令，所有的处理单元同时执行这条指令，但是每个处理单元操作的数据不同。控制部件可以有选择地屏蔽掉一些处理单元，被屏蔽掉的处理单元不执行控制部件广播的指令。MIMD计算机没有统一的控制部件。各处理器可以独立地执行不同的指令，每个处理器都有控制部件，各处理器通过互联网络进行通信。SIMD所使用的CPU通常是专门设计的，而MIMD可以使用通用的CPU。 从系统结构的角度，并行计算机目前有以下几种： (1)分布式存储器的SIMD处理机。含有多个同样结构的处理单元（PE），通过寻径网络以一定方式互相连接。每个PE有各自的本地存储器（LM）。在阵列控制部件的统一指挥下，实现并行操作。程序和数据通过主机装入控制存储器。通过控制部件的是单指令流，所以指令的执行顺序还是和单处理机一样，基本上是串行处理。指令送到控制部件进行译码。划分后的数据集合通过向量数据总线分布到所有PE的本地存储器LM。PE通过数据寻径网络互连。数据寻径网络执行PE间的通信。控制部件通过执行程序来控制寻径网络。PE的同步由控制部件的硬件实现。 (2)向量超级计算机（共享式存储器SIMD）。集中设置存储器，共享的多个并行存储器通过对准网络与各PE相连。存储模块的数目等于或略大于处理单元的数目。通过灵活的高速对准网络，使存储器与处理单元之间的数据传送在大多数向量运算中都能以存储器的最高频率进行。这种方案在处理单元数目不太大的情况下很理想。 (3)对称多处理器（SMP）。一个计算机上汇集了一组处理器，各处理器之间共享内存子系统以及总线结构。在这种架构下，一台电脑不再由单个CPU组成，而同时由多个处理器运行操作系统的单一复本，并共享内存和一台计算机的其它资源。从系统管理角度来看，就像一台单机一样。系统将任务队列对称地分布于多个CPU之上，从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。系统的所有资源被所有的CPU共享，工作负载能够均匀地分配到所有可用的处理器之上。 (4)并行向量处理机（PVP）。有专门定制的向量处理器，通过向量处理和多个向量处理器并行处理两条途径来提高处理能力。通常使用定制的高带宽网络将向量处理器连向共享存储器模块。存储器可以以很高的速度向处理器提供数据。 (5)集群计算机。随着微处理器和网络技术的进步而逐渐发展起来的，它主要用来解决大型计算问题。是一种并行或分布式处理系统，由很多连接在一起的独立计算机组成，像一个单集成的计算机资源一样协同工作。计算机节点可以是一个单处理器或多处理器的系统，拥有内存、I/O设备和操作系统。集群一般是指连接在一起的两个或多个计算机(节点)。连接在一起的计算机集群对用户和应用程序来说像一个单一的系统，这样的系统可以提供一种价格合理的且可获得所需性能和快速而可靠的服务的解决方案。 （6）网格计算是伴随着互联网技术而迅速发展起来的，专门复杂科学计算的新型计算模式。这种计算模式是利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”，其中每一台参与计算的计算机就是一个“节点”，而整个计算是由成千上万个“节点”组成的“一张风格”，所以这种计算方式叫网格计算。网格类似于集群，但是跟集群相比，节点更加分散，节点的组织方式也更加灵活，相应的是，平均每个节点所能提供的计算能力一般比集群要低，并且节点间的通讯效率也较低。 并行计算机与超级计算机技术，为多核计算机的出现奠定了基础。集成电路的进步也为多核芯片提供了物理条件。 多核即在一个单芯片上面集成两个甚至更多个处理器内核，其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元，一级cache、二级cache共享或独有，其部件的完整性和单核处理器内核相比完全一致。 片上多核处理器(CMP)是将多个计算内核集成在一个片处理器芯片中，从而提高计算能力。每个微处理器核心实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器，这样多个微处理器核心就可以并行地执行程序代码，因而具有了较高的线程级并行性。由于CMP采用了相对简单的微处理器作为处理器核心，使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、通信延迟低等优点。此外，CMP还能充分利用不同应用的指令级并行和线程级并行，具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。 按照内核的对等与否，CMP可分为同构多核和异构多核。计算内核相同，地位对等的称为“同构多核”。同构CMP大多数由通用的处理器组成，多个处理器执行相同或者类似的任务。计算内核不同，地位不对等的称为“异构多核”，异构多核多采用“主处理核＋协处理核”的设计，Cell处理器正是这种异构架构的典范。它是一枚拥有9个硬件核心的多核处理器。在Cell芯片中，只有一个是IBM完整的Power(精简的PowerPC970)处理器，其余8个内核都是为处理图像而专门设计的、用于浮点运算的协处理器。主处理器的主要职能就是负责任务的分配，实际的浮点运算工作都是由协处理器来完成。由于Cell中的协处理器只负责浮点运算任务，所需的运算规则非常简单，对应的电路逻辑同样如此，只要CPU运行频率足够高，Cell就能获得惊人的浮点效能。整数性能和动态指令执行性能并不理想。由于电路逻辑简单，主处理器和协处理器都可以轻松工作在很高的频率上，Cell起步频率可达到4GHz。在高效率的专用核心和高频率的帮助下，Cell可以获得高达256Gigaflops（2560亿次浮点运算每秒）的浮点运算能力。Cell聚集在消费性电子市场。 CMP处理器由多个CPU核心组成，每个核心执行各自的程序代码，但是CMP处理器的各CPU核心执行的程序之间要进行数据共享和同步，所以硬件结构必须支持核间通信。高效的通信机制是CMP处理器高性能的重要保障，比较主流的片上高效通信机制有两种，一种是基于总线共享的cache结构，一种是基于片上的互连结构。 总线共享cache结构是指每个CPU内核拥有共享的二级或三级cache，用于保存比较常用的数据，并通过连接核心的总线进行通信。这种系统的优点是结构简单，通信速度高，缺点是基于总线的结构可扩展性较差。 基于片上互连的结构是指每个CPU核心具有独立的处理单元和cache，各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好，数据带宽有保证，缺点是硬件结构复杂，且软件改动较大。]]></description>
			<content:encoded><![CDATA[<p>随着芯片制造工艺的不断进步，从体系结构来看，传统的处理器体系结构技术已面临瓶颈，晶体管的集成度已超过上亿个，很难单纯地通过提高主频来提升性能，而且主频的提高同时也带来功耗的提高。所以并行计算技术应用而生，通过增加计算机中物理处理器的数量，能够有效地利用线程的并行性，实现真正意义上的并行执行。</p>
<p>并行计算机是由一组处理单元组成的，通过相互之间的通信与协作，以更快的速度共同完成一项大规模的计算任务。20世纪60年代初，晶体管以及磁芯存储器的出现，处理单元变得越来越小，存储器也更加小巧和廉价。这些技术导致了并行计算机的出现。这一时期的并行计算机多是规模不大的共享存储器系统，例如IBM 360。20年代末期，同一个处理器开始设置多个功能相同的功能单元，流水线技术也出现了。这些并行特性的应用大大提高了并行计算机系统的性能。</p>
<p>Flynn根据指令流和数据流的不同组织方式，把计算机系统的结构分为以下4类：</p>
<p>单指令流单数据流（Single Instruction stream Single Data stream, SISD）</p>
<p>单指令流多数据流（Single Instruction stream Multiple Data stream, SIMD）</p>
<p>多指令流单数据流（Multiple Instruction stream Single Data stream, MISD）</p>
<p>多指令流多数据流（Multiple Instruction stream Multiple Data stream, MISD）</p>
<p>指令流是指机器执行的指令序列，数据流是指指令流调用的数据序列，包括输入数据和中间结果。SISD就是顺序处理的串行机。SIMD和MIMD是典型的并行计算机。SIMD计算机中，有一个控制部件和许多处理单元。大量的处理单元通常构成阵列，因此SIMD计算机也称为“阵列处理机”。所有处理单元在控制部件统一控制下工作，控制部件向所有的处理单元广播同一条指令，所有的处理单元同时执行这条指令，但是每个处理单元操作的数据不同。控制部件可以有选择地屏蔽掉一些处理单元，被屏蔽掉的处理单元不执行控制部件广播的指令。MIMD计算机没有统一的控制部件。各处理器可以独立地执行不同的指令，每个处理器都有控制部件，各处理器通过互联网络进行通信。SIMD所使用的CPU通常是专门设计的，而MIMD可以使用通用的CPU。</p>
<p>从系统结构的角度，并行计算机目前有以下几种：</p>
<p>(1)分布式存储器的SIMD处理机。含有多个同样结构的处理单元（PE），通过寻径网络以一定方式互相连接。每个PE有各自的本地存储器（LM）。在阵列控制部件的统一指挥下，实现并行操作。程序和数据通过主机装入控制存储器。通过控制部件的是单指令流，所以指令的执行顺序还是和单处理机一样，基本上是串行处理。指令送到控制部件进行译码。划分后的数据集合通过向量数据总线分布到所有PE的本地存储器LM。PE通过数据寻径网络互连。数据寻径网络执行PE间的通信。控制部件通过执行程序来控制寻径网络。PE的同步由控制部件的硬件实现。</p>
<p>(2)向量超级计算机（共享式存储器SIMD）。集中设置存储器，共享的多个并行存储器通过对准网络与各PE相连。存储模块的数目等于或略大于处理单元的数目。通过灵活的高速对准网络，使存储器与处理单元之间的数据传送在大多数向量运算中都能以存储器的最高频率进行。这种方案在处理单元数目不太大的情况下很理想。</p>
<p>(3)对称多处理器（SMP）。一个计算机上汇集了一组处理器，各处理器之间共享内存子系统以及总线结构。在这种架构下，一台电脑不再由单个CPU组成，而同时由多个处理器运行操作系统的单一复本，并共享内存和一台计算机的其它资源。从系统管理角度来看，就像一台单机一样。系统将任务队列对称地分布于多个CPU之上，从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。系统的所有资源被所有的CPU共享，工作负载能够均匀地分配到所有可用的处理器之上。</p>
<p>(4)并行向量处理机（PVP）。有专门定制的向量处理器，通过向量处理和多个向量处理器并行处理两条途径来提高处理能力。通常使用定制的高带宽网络将向量处理器连向共享存储器模块。存储器可以以很高的速度向处理器提供数据。</p>
<p>(5)集群计算机。随着微处理器和网络技术的进步而逐渐发展起来的，它主要用来解决大型计算问题。是一种并行或分布式处理系统，由很多连接在一起的独立计算机组成，像一个单集成的计算机资源一样协同工作。计算机节点可以是一个单处理器或多处理器的系统，拥有内存、I/O设备和操作系统。集群一般是指连接在一起的两个或多个计算机(节点)。连接在一起的计算机集群对用户和应用程序来说像一个单一的系统，这样的系统可以提供一种价格合理的且可获得所需性能和快速而可靠的服务的解决方案。</p>
<p>（6）网格计算是伴随着互联网技术而迅速发展起来的，专门复杂科学计算的新型计算模式。这种计算模式是利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”，其中每一台参与计算的计算机就是一个“节点”，而整个计算是由成千上万个“节点”组成的“一张风格”，所以这种计算方式叫网格计算。网格类似于集群，但是跟集群相比，节点更加分散，节点的组织方式也更加灵活，相应的是，平均每个节点所能提供的计算能力一般比集群要低，并且节点间的通讯效率也较低。</p>
<p>并行计算机与超级计算机技术，为多核计算机的出现奠定了基础。集成电路的进步也为多核芯片提供了物理条件。</p>
<p>多核即在一个单芯片上面集成两个甚至更多个处理器内核，其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元，一级cache、二级cache共享或独有，其部件的完整性和单核处理器内核相比完全一致。</p>
<p>片上多核处理器(CMP)是将多个计算内核集成在一个片处理器芯片中，从而提高计算能力。每个微处理器核心实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器，这样多个微处理器核心就可以并行地执行程序代码，因而具有了较高的线程级并行性。由于CMP采用了相对简单的微处理器作为处理器核心，使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、通信延迟低等优点。此外，CMP还能充分利用不同应用的指令级并行和线程级并行，具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。</p>
<p>按照内核的对等与否，CMP可分为同构多核和异构多核。计算内核相同，地位对等的称为“同构多核”。同构CMP大多数由通用的处理器组成，多个处理器执行相同或者类似的任务。计算内核不同，地位不对等的称为“异构多核”，异构多核多采用“主处理核＋协处理核”的设计，Cell处理器正是这种异构架构的典范。它是一枚拥有9个硬件核心的多核处理器。在Cell芯片中，只有一个是IBM完整的Power(精简的PowerPC970)处理器，其余8个内核都是为处理图像而专门设计的、用于浮点运算的协处理器。主处理器的主要职能就是负责任务的分配，实际的浮点运算工作都是由协处理器来完成。由于Cell中的协处理器只负责浮点运算任务，所需的运算规则非常简单，对应的电路逻辑同样如此，只要CPU运行频率足够高，Cell就能获得惊人的浮点效能。整数性能和动态指令执行性能并不理想。由于电路逻辑简单，主处理器和协处理器都可以轻松工作在很高的频率上，Cell起步频率可达到4GHz。在高效率的专用核心和高频率的帮助下，Cell可以获得高达256Gigaflops（2560亿次浮点运算每秒）的浮点运算能力。Cell聚集在消费性电子市场。<br />
CMP处理器由多个CPU核心组成，每个核心执行各自的程序代码，但是CMP处理器的各CPU核心执行的程序之间要进行数据共享和同步，所以硬件结构必须支持核间通信。高效的通信机制是CMP处理器高性能的重要保障，比较主流的片上高效通信机制有两种，一种是基于总线共享的cache结构，一种是基于片上的互连结构。</p>
<p>总线共享cache结构是指每个CPU内核拥有共享的二级或三级cache，用于保存比较常用的数据，并通过连接核心的总线进行通信。这种系统的优点是结构简单，通信速度高，缺点是基于总线的结构可扩展性较差。</p>
<p>基于片上互连的结构是指每个CPU核心具有独立的处理单元和cache，各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好，数据带宽有保证，缺点是硬件结构复杂，且软件改动较大。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2009/08/26/400002200/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

