具有分层处理器组织的多处理器架构的制作方法

文档序号:6455892阅读:208来源:国知局
专利名称:具有分层处理器组织的多处理器架构的制作方法
技术领域
本发明涉及将来自主计算机的操作分布在一个或多个不同类型 的从计算机之间。本发明的各种方面可以适用于将第一类型操作分 布到第一类型从计算单元,以及将第二类型操作分布到第二类型从
计算单元。
背景技术
很多软件应用可以高效地运行在单处理器计算机上。然而,在 某些情况下,运行软件应用可能需要执行非常多的操作以致于不能 在经济的时间内、在单处理器计算机上顺序执行。例如,微型器件 设计过程软件应用可能需要对几十万甚至上百万输入数据值执行十 万次或更多次操作。为了更快速地运行这种类型的软件应用,研发 出了这样的计算机,其使用能够同时利用多处理线程的多个处理器。 尽管这些计算机可以比单处理器计算机更快速地执行复杂软件应 用,但是多处理器计算机购买和维护起来都非常昂贵。在多处理器 计算机中,处理器同时执行为数众多的操作,因此这些处理器必须 使用专门的操作系统来协调相关操作的并发执行。进一步地,由于 多处理器计算机的多个处理器可能同时想要访问计算机的资源(诸 如,存储器),则其总线结构和物理布局本身就比单处理器计算机 更加复杂。
鉴于大型多处理器计算机涉及的困难和花费,链接起来的单处 理器计算机网络已经成为使用单个多处理器计算机的流行备选。在 过去几年中,传统单处理器计算机(诸如,个人计算机)的成本已 经显著下降。而且,用于将多个单处理器计算机的操作链接成网络 的技术已经变得越来越成熟可靠。因此,数百万美元的多处理器计
5算机现在通常由相对简单和低成本的单处理器计算机的网络或"农 场"所取代。
在所处理的数据具有并行性的情况下,从单个多处理器计算机 变成多个网络化的单处理器计算机尤其有用。就这种类型的数据而 言,数据的一部分独立于数据的另一部分。即,对数据第一部分的 操纵不需要知道或者访问数据的第二部分。这样, 一个单处理器计 算机可以对数据第 一部分执行操作,而另 一单处理器计算机可以同 时对数据第二部分执行另一操作。通过使用多个计算机来同时对不 同数据组执行(即,"并行地")操作,可以很快处理大量数据。
因此,使用多个单处理器计算机来执行并行操作对于分析微型 器件设计数据而言非常有益。就这种类型的数据而言,设计的一部 分(诸如,微型电路第一区域中的半导体栅极)可以完全独立于设 计的另一部分(诸如,微型电路第二区域中的布线)。设计分析操 作(诸如定义结构的最小宽度检查的操作)从而可以由一个计算机 针对栅极执行,而另 一计算机针对布线执行相同操作。
尽管使用多个网络化的单处理器计算机基本上改善了操作并行 数据的软件应用的处理效率,但是很多软件应用仍然需要大量时间 来执行。例如,即使当使用多个单处理器计算机时,设计分析软件 应用也需要花费若干小时甚至是若干天来完整地分析超大型集成电 路设计。因此, 一直在不断地探索改进使用多个单处理器计算机的 计算系统的速度和操作效率。

发明内容
本发明的各种方面涉及用于使用多个计算机为软件应用更高效 地处理数据的技术。如以下更详细讨论的,实现这些技术的工具和 方法二者的实施方式通过将操作分布在网络中不同类型单处理器计 算机之间,尤其适用于分析微型器件设计数据。
根据本发明的各种实施方式,提供了具有多处理器架构的计算 系统。这些处理器被分层组织,从而高级分层水平处的一个或多个从处理器向初级分层水平处的一个或多个从处理器提供任务。进一 步地,初级分层水平处的从处理器具有与高级分层水平处的从处理 器不同的操作能力,使得针对某种操作,初级从处理器可以比高级 从处理器更好地执行。根据本发明的某些实施方式,例如,初级从 处理器能够比高级从处理器更快速地执行 一 个或多个操作,诸如浮
多个处理器,用于协调高级从处理器的操作;和/或中间分层水平处 的一个或多个处理器,用于管理高级从处理器与初级从处理器之间
的协作。
根据本发明的不同实施方式,主计算进程将操作集合分布在运 行于高级处理器上的 一 个或多个计算进程之间。利用本发明的某些 实现,这些操作集合可以是并行的(即,操作集合中一个的执行不 需要从操作集合中另一个的在先执行获取的结果,反之亦然)。进 一步地,每个操作集合可以包括由初级从处理器能够更好执行的那 种类型的操作。利用本发明的各种示例,运行在初级从处理器上的 计算进程将开始执行操作集合中的操作。当高级从计算进程识别了 由初级从处理器能够更好执行的那种类型的一个或多个操作时,其 将此一个或多个操作提供给运行在第二类型计算设备上的初级从处 理器。在初级计算进程执行指派给其的一个或多个操作之后,其将 结果返回给高级计算进程以完成操作集合的执行。
通过考虑以下详细描述,本发明的这些和其他特征与方面将变 得明显。


图1是本发明各种实施方式可以使用的计算机示意图。 图2是本发明各种实施方式可以使用的、用于计算机的处理器 单元的示意图。
图3示意性地示出了根据本发明各种实施方式的、具有分层处 理器布置的计算系统示例。图4A-图4C和图5A及图5B示出了根据本发明各种实施方式的、 描述图3中所示计算系统操作的流程图。
图6示出了可以从根据本发明各种实施方式的不同计算系统配 置获得的操作速度的估计改进。
图7示出了根据本发明各种实施方式的、具有分层处理器布置
的计算系统另一示例。
图8示出了根据本发明各种实施方式的、具有分层处理器布置
的计算系统又一示例。
具体实施例方式
介绍
本发明的各种实施方式涉及用于将操作分布在多个网络化的计 算设备之间以便执行的工具和方法。因此,为了更好地理解本发明, 将讨论可以在网络中使用的计算设备示例,其中该网络由链接到多 个不同从计算机的主计算机组成。
示例性操作环境
如本领域技术人员所知,可以使用多个可编程计算设备(每一 个都能够执行软件指令)来实现本发明的各种示例。因此,首先参 照图1描述可以由本发明各种实施方式使用的通用可编程计算机类 型的组件和操作。
图1中示出了可以用来实现本发明各种实施方式的计算设备IOI 的示意性示例。如图所示,计算设备101具有计算单元103。计算单 元103通常包括处理器单元105和系统存储器107。处理器单元可以 是用于执行软件指令的任意类型的处理器件,但是传统上是微处理 器器件。系统存储器107可以包括只读存储器(ROM) 109和随机 存取存储器(RAM) 111两者。如本领域技术人员所知,只读存储 器(ROM) 109和随机存取存储器(RAM) 111两者都可以存储软
8件指令,以供处理器单元105执行。
如以下更详细讨论的,本发明的某些实现可以使用具有处理器
单元105的计算设备101,其中处理器单元105具有多于一个的处理 器内核。相应地,图2示出了可以由本发明各种实施方式使用的多 核处理器单元105的示例。如图所示,处理器单元105包括多个处 理器内核201。每个处理器内核201包括计算引擎203和存储器緩存 205。如本领域技术人员所知,计算引擎包含用于执行各种计算功能 (诸如,取出软件指令并随后执行该取出的指令中规定的动作)的 逻辑器件。这些动作例如可以包括将数字相加、相减、相乘以及进 行比较;执行逻辑操作,诸如AND、 0R、 NOR和XOR;以及取回 数据。每个计算引擎203随后可以使用其相应的存储器緩存205来 快速存储和/或取回数据和/或指令,以供执行。
每个处理器内核201连4妾至互连(interconnect) 207。互连207 的具体结构可以随处理器单元201的架构而改变。在某些处理器单 元201 ,诸如Sony公司、Toshiba公司和IBM公司创造的Cell (细 胞)微处理器中,互连207可以实现为互连总线。然而,在其他处 理器单元201 ,诸如来自California州、Sunnyvale市的Advanced Micro Devices的Opteron 和Athlon 双核处理器中,互连207可以实现 为系统请求接口设备。在任何情况下,处理器内核201通过互连207 与输入/输出接口 209和存储器控制器211通信。输入/输出接口 209 在处理器单元201与总线113之间提供通信。类似地,存储器控制 器211控制在处理器单元201与系统存储器107之间的信息交换。 在本发明的某些实现中,处理器单元201可以包括附加的组件,诸 如处理器内核201可以共享访问的高级緩存存储器。
201的一个图示,但是应当理解此图示仅用于说明,而不是意在进行 限制。例如,如以下更详细讨论的,本发明的各种实施方式可以使 用具有Cell处理器的计算设备。Cell处理器使用多个输入/输出接口 209和多个存储器控制器211。而且,Cell处理器具有9个不同类型的处理器内核201。更具体地,Cell处理器具有6个或更多的协处理 器元件(SPE)和主处理器元件(PPE)。每个协处理器元件具有矢 量类型计算引擎203,其中矢量类型计算引擎203具有128x128比特 寄存器、四个单精度浮点计算单元、四个整数计算单元和存储指令 和数据两者的256KB本地储存存储器。主处理器元件随后控制协处 理器元件执行的任务。由于其配置,Cell处理器可以以基本上高于 传统处理器单元105的速度来执行某些数学操作,诸如快速傅立叶 变换(FFT)的计算。
现在返回图1中所示计算设备101的示例,计算单元103可以 直接或间接连接至一个或多个网络接口 115,以与网络中的其他设备 进行通信,这将在下面进行详细讨论。网络接口 115将来自于计算 单元103的数据和控制信号翻译成按照一个或多个通信协议的网络 消息,这些通信协议诸如传输控制协议(TCP)、用户数据报协议 (UDP)和网际协议(IP)。这些和其他传统通信协议在本领域中 是公知的,因而无需在此进行更详细讨论。接口 123可以使用任何 适当的连接代理(或者代理的组合)连接至网络,其中连接代理例 如是无线收发机、调制解调器或者以太网连接。而且,连接代理可 以使用任何期望的介质,诸如射频传输、光缆或者导线。
处理单元105和系统存储器107直接或者通过总线113或备用 通信结构间接连接至一个或多个外设。例如,处理单元105或者系 统存储器107可以直接或间接连接至一个或多个附加存储器设备, 诸如磁盘驱动器117或者可移除的磁光盘驱动器119。当然,计算设 备101可以包括附加的或备用的存储器储存设备,诸如磁盘驱动器 (未示出)或者闪存卡(未示出)。处理单元105和系统存储器107 还可以直接或间接连接至一个或多个输入设备121和一个或多个输 出设备123。输入设备121例如可以包括键盘和指点设备(诸如鼠标、 触摸板、数字转换器、轨迹球或者游戏杆)。输出设备123例如可 以包括显示监控器和打印机。
应当理解,这些外设中的一个或多个可以与计算设备103和总线113容纳在一起。备选地或附加地,这些外设中的一个或多个可
以与计算设备103和总线113分离容纳,并随后(直接或间接)连 接至总线113。而且,应当理解,根据本发明各种实施方式使用的计 算设备101可以包括图1中所示的任何组件、可以仅包括图1中所 示的组件子集,或者可以包括图1中所示组件的备选组合(包括图1 中未示出的某些组件)。
应当理解,计算机101的描述仅作为示例而提供,而不是意在 对本发明备选实施方式的使用或功能的范围进行任何限制。
操作集合
如前所示,本发明的各种方面涉及由具有多处理器架构的计算 系统执行操作集合。因此,本发明的不同实施方式可以与各种不同 类型的软件应用一起使用。然而,本发明的某些实施方式可能尤其 适用于运行这样的软件应用,其执行用于仿真、验证或修改表示微 型器件(诸如微型电路)的设计数据的操作。设计和制造微型电路 器件涉及在"设计流程"过程期间的很多步骤。这些步骤高度依赖于 微型电路的类型、复杂度、设计团队以及微型电路制造者或代工厂。 若千步骤对于所有设计流程是通用的首先,通常以硬件设计语言 (HDL)在逻辑上对设计规格进行建模。软件和硬件"工具"随后通 过运行软件模拟器和/或硬件仿真器,在设计流程的各种阶段验证设 计,并且改正错误。
在满意逻辑设计之后,合成软件将其转换成物理设计数据。物 理设计数据例如可以表示将写在掩膜上的几何构图,其中掩膜用来 在代工厂的光刻工艺中制造期望的微型器件。对于器件的适当操作
而言,物理设计信息准确地体现设计规格和逻辑设计是非常重要的。 进一步地,由于物理设计数据用来创建在代工厂使用的掩膜,所以 数据必须符合代工厂的要求。每个代工厂都规定了其自己的物理设 计参数,以便与它们的工艺、设备和技术兼容。因此,设计流程可 以包括设计规则检查过程。在此过程期间,将电路设计的物理布局与设计规则相比较。除了代工厂规定的规则以外,设计规则检查过 程还针对其他设计规则(诸如,从测试芯片获得的那些设计规则)、 本领域中的知识等来检查电路设计的物理布局。
一旦设计者已经使用了验证软件应用来验证电路设计的物理布 局符合设计规则,则设计者随后可以修改电路设计的物理布局,以 便改进在光刻工艺中物理布局将产生的图像的分辨率。这些分辨率
增强技术(RET)例如可以包括通过使用光学邻近修正(OPC)或 利用增加次分辨率辅助特征(SRAF)来修改物理布局。 一旦已经使 用分辨率增强技术修改了电4"设计的物理布局,则可以对修改后的 布局执行设计规则检查,重复该过程直到获得分辨率的期望程度。 这种模拟工具和验证工具的示例在2001年5月8日授予McSherry 等人的美国专利号6, 230, 299、在2001年6月19日授予McSherry 等人的美国专利号6, 249, 903、在2002年1月15日授予Eisenhofer 等人的美国专利号6, 339, 836、在2002年5月28日授予Bozkus 等人的美国专利号6, 397, 372、 2002年7月2日授予Anderson等 人的美国专利号6, 415, 421和2002年7月23日授予Anderson等 人的美国专利号6, 425, 113中进行了描述,这些专利的每一个都 被全部并入以便参考。
新集成电路的设计可以包括将上百万的晶体管、电阻器、电 容器或者其他电子结构互连到逻辑电路、存储器电路、可编程现场 阵列和其他电路器件中。为了允许计算机更容易地创建并分析这些
大型数据结构(以及允许人类用户更好地理解这些数据结构),通 常将这些大型数据结构分层地组织成更小的数据结构,通常称为"基 元(cell)"。这样,针对微处理器或闪存设计,组成用于存储单个
比特的存储器电路的所有晶体管可以分类成单"比特存储器"基元。 由于不需要单独地列举每个晶体管,所以组成单比特存储器电路的
晶体管组可以作为单个单元被集体参考和操纵。类似地,描述大型 16比特存储器寄存器电路的设计数据可以被分类成单个基元。此更 高层的"寄存器基元,,随后可以包括16比特存储器基元,以及描述其他杂项电路的设计数据,诸如用于将数据传输至每个比特存储器基
元或从其传输出的输入/输出电路。类似地,描述128KB存储器阵列
的设计数据随后可以连同描述其自己杂项电路的设计数据(诸如用 于将数据传输至每个比特存储器基元或从其传输出的输入/输出电
路)一起,简明地描述为仅64, OOO个寄存器基元的组合。
通过将微型电路设计数据分类成分层基元,大型数据结构可以 被更快速和高效地处理。例如,电路设计者通常会分析设计,以确 保在设计中描述的每个电路特征符合将根据设计来制造微型电路的 代工厂所规定的设计规则。在上述示例中,设计规则检查过程可以 分析单比特基元中的特征,而不是必须分析整个128KB存储器阵列 中的每个特征。检查的结果随后将适用于所有的单比特基元。 一旦 确认了单比特基元的 一 个实例符合设计规则,则设计规则检查过程 可以简单地通过分析其附加杂项电路(其自身可以由一个或多个分 层基元组成)的特征而完成对寄存器基元的分析。此检查的结果随 后将适用于所有的寄存器基元。 一旦确认了寄存器基元的一个实例 符合设计规则,则设计规则检查软件应用可以简单地通过分析存储 器阵列中的附加杂项电路而完成对整个12 8 KB存储器阵列的分析。 这样,对大型数据结构的分析可以压缩成对组成数据结构的相对少 量的基元的分析。
除了分层结构外,组成电路设计的数据也可以具有并行性。即, 微型电路设计的某些部分可以独立于设计的其他部分。例如,包含 用于16比特比较器的设计数据的基元将独立于寄存器基元。尽管"较 高"基元可以包括比较器基元和寄存器基元,但是一个基元不会包括 另一基元。而是,这两个较低基元中的数据是并行的。因为这些基 元是并行的,所以可以在两个基元上同时进行同样的设计规则检查 操作,而不会产生冲突。这样,在运行多个计算线程的多处理器计 算机中,第一计算线程可以对寄存器基元执行设计规则检查操作, 而另 一单独的第二计算线程可以对比较器基元执行同样的设计规则 检查操作。与工艺数据类似,微型电路分析软件应用执行的操作也可以具 有带有并行性的分层组织。为了示出操作并行性的示例,将描述实 现针对微型电路设计的物理布局数据的设计规则检查操作的软件应 用。如前所指出,此类型的软件工具对定义了微型电路几何特征的 数据执行操作。例如,在多晶硅材料区域与扩散材料区域的交集处 创建晶体管栅极。因此,用于在光刻工艺中形成晶体管栅极的物理 布局设计数据将由多晶硅材料层中的多边形和扩散材料层中的重叠 多边形组成。通常,微型电路物理设计数据包括两种不同类型的数据"导出层(drawn layer)"设计数据和"衍生层(derived layer )"设计数据。 导出层数据描述了从将形成微型电路的材料层中导出的多边形。导 出层数据通常包括金属层、扩散层和多晶硅层中的多边形。衍生层 随后可以包括由导出层数据和其他衍生层数据的组合组成的特征。 例如,在上述晶体管栅极的情况中,描述栅极的衍生层设计数据将 从多晶硅材料层中的多边形与扩散材料层中的多边形的交集而衍生 出。通常,设计规则检查软件应用执行两种类型的操作确认设计 数据值是否符合指定参数的"检查"操作,和创建衍生层数据的"衍生" 操作。例如,可以由以下衍生操作来创建晶体管栅极设计数据栅极=扩散AND多晶硅此操作的结果将识别扩散层多边形与多晶硅层多边形的所有交集。 类似地,通过利用n型材料对扩散层进行掺杂而形成的p型晶体管 栅极由下述衍生#:作来识别p型栅极^n型阱AND栅极此操作的结果随后将识别扩散层中的多边形已由n型材料进行了掺14杂的所有晶体管栅极(即,扩散层多边形与多晶硅层多边形的交集)。 随后,检查操作将定义用于数据设计值的参数或参数范围。例 如,用户可能希望确保在布线的1微米范围内不存在其他金属布线。 这种分析可以由以下检查操作执行外部金属<1此操作的结果将识别与金属层设计数据中其他多边形距离小于1微 米的金属层设计数据中的每个多边形。而且,虽然上述操作使用了导出层数据,但是检查操作也可以 在衍生层数据上执行。例如,如果用户想要确认在栅极的1微米范 围内没有其他晶体管栅极,则设计规则检查过程将包括下述检查操作外部栅极<1此操作的结果将识别代表与其他栅极相距小于1微米的栅极的所有 栅极设计数据。然而,应当理解,在从导出层设计数据中识别栅极 的衍生操作之前,不能执行此检查操作。通过使用整数计算,可以执行很多模拟和验证操作。例如,使 用整数计算,可以执行上述的设计规则检查操作。然而,使用浮点 数计算能够更高效地执行某些模拟和验证操作。光学邻近修正 (O P C )操作是通常使用浮点数计算来执行的模拟和验证操作的一 种示例。由于微型电路已经进化到包括越来越小的功能部件,所以现在 很多电路设计包括对小于以下光波长的功能部件的需求,其中该光 波长用来在光刻工艺期间创建那些功能部件。然而,此种亚波长成 像通常在光刻工艺期间产生失真。为了解决这些失真,如上所述, 使用修正算法来修改电路设计的物理布局。此过程通常称为光学邻近修正(OPC)。这样,如在此所用的,术语光学邻近修正包括对 电路设计的物理布局进行修改,以便改进在光刻工艺期间重现布局 的准确性。然而,除此之外,在此使用的术语光学邻近修正还包括 对物理布局的修改,以改进例如用于印刷隔离的功能部件和/或在突 变邻近过渡区处印刷功能部件的光刻工艺的鲁棒性。在光学邻近修正期间,物理布局的多边形的边被划分成小段。 随后,这些段被移动至策略位置处的物理层,并且附加的小多边形 可以添加至此。随后,对光刻工艺进行模拟,以确定可能由修改的 或"修正的,,布局创建的图像是否比对布局图像的之前修改创建的图 像更好。随后,反复重复此过程,直到模拟和验证工具生成的修改 布局能在实际的光刻工艺期间产生满意的图像分辨率为止。通常,光学邻近修正被分为基于规则的或者基于模型的。在基 于规则的光学邻近修正的情况下,基于特定的规则来生成布局修改。例如,可以自动地向布局中的每个凸面(即,向外鼓)90度角添加 小衬线(serif)。基于模型的光学邻近修正通常明显复杂于基于规则 的光学邻近修正。在基于模型的光学邻近修正的情况下,从测试布 局获得的光刻工艺数据用于创建光刻构图行为的数学模型。利用适 当的模型,模拟和验证工具随后计算修正的布局将在光刻工艺期间 创建的图像。随后,对经过修正的布局特征进行反复操纵,直到用 于布局的图像(使用模型计算出的)与所期望的布局图像足够接近 为止。这样,某些基于模型的光学邻近修正算法可能需要通过计算 用于边和角的预模拟结果的加权和来对多个光刻工艺效果进行模拟。光学邻近修正算法的示例在1998年、Berkeley市加州大学Nick Cobb发表的"Fast Optical and Process Proximity Correction Algorithms for Integrated Circuit Manufacturing"(博士论文)中进行了描述。如本领域技术人员所知,执行基于规则的光学邻近修正过程在 计算上的强度比执行设计规则检查更大,并且执行基于模型的光学 邻近修正更是如此。进一步地,光学邻近修正过程所需的计算比通 常在设计规则检查过程中使用的计算更加复杂。获得模拟的光刻图像例如可以涉及将光刻光源建模成布置在不同角度的多个单独的相干光源。针对每个这种相干光源,通过计算快速傅立叶变换(FFT) 以对在光刻工艺中使用的透镜操作进行建模来获得模拟的图像。这 些模拟的图像随后被相加以获得将由光刻工艺产生的图像。通常这 些操作使用浮点计算比使用整数计算能够更高效地执行。类似地, 验证光学邻近修正的操作通常使用浮点计算比使用整数计算能够更 高效地执行。其结果是,传统的计算系统在实现传统的模拟和验证工具上存 在困难,因为这些工具可能针对诸如设计规则检查的过程使用整数 计算,而针对诸如光学邻近修正技术的过程使用浮点计算。即使计 算系统使用多个单处理器计算机的网络,在计算中使用的处理器通 常更适用于整数计算,而不是浮点数计算。这样,它们可能高效地 实现使用整数计算的过程。然而,当这些计算机系统开始实现使用 浮,#、数计算的过程时,它们的操作变得不可接受的慢。分层处理器计算系统的结构图3示出了根据本发明各种实施方式的分层处理器计算系统 301。如以下更详细所述,此分层处理器计算系统301可以用来高效 地实现模拟和验证工具,该工具进行整数计算和浮点数计算。从图3 可见,分层处理器计算系统301包括主计算模块303和多个高级从 计算模块305A-305a。分层处理器计算系统301还包括分发器计算模 块307和多个初级从计算模块309A-30邓。根据本发明的各种实现,高级从计算模块305A-305a的每一个 可以由使用一个或多个处理器单元103的计算机(诸如,计算设备 101)实现。例如,根据本发明的某些实施方式,高级从计算模块 305A-305a的每 一 个可以由使用传统单核处理器(诸如,来自 California州、Sunnyvale市的Advanced Micro Devices的OpteronTM 单核处理器)的传统服务器计算机实现。仍然根据本发明的其他实 现,高级从计算模块305A-305a的一个或多个可以由具有多个单核处理器的服务器计算机实现。例如,根据本发明的某些实施方式,单个服务器计算机101可以具有多个OpteronTM单核处理器。每个 Opteron 单核处理器随后可以用来实现高级从计算模块305的实例。本发明的其他实现可以使用具有多核处理器的计算机,其中每 个处理器(或者备选地,每个内核)被用来实现高级从计算模块305 的实例化。例如,根据本发明的某些实施方式,计算设备101可以 使用单个Opteron 双核处理器来实现高级从计算模块305的单个实 例化。然而,根据本发明的其他实施方式,计算设备101可以使用 单个Opteron 双核处理器来实现高级从计算模块305的两个单独实 例化(即,Opteron 双核处理器的每个内核实现 一 个单独的实例化)。 当然,如前所述,用于实现高级从计算模块305的多个实例化的计 算设备101可以具有多个单核处理器、多核处理器,或者它们的某 些组合。利用本发明的各种实施方式,主计算模块303与分发器计算模 块307的每个可以由与高级从计算模块305A-305a分离的计算设备 101实现。例如,根据本发明的某些实施方式,主计算模块303可以 由具有单个Opteron 单核处理器或Opteron 双核处理器的计算设 备101实现。分发器计算模块307继而可以由具有单个OpteronTM单 核处理器或Opteron 双核处理器的另一计算设备101实现。根据本 发明的其他实施方式,可以使用与高级从计算模块305相同的计算 设备101或处理器单元201来实现主计算模块303和/或分发器计算 模块307。例如,主计算模块303可以由多核计算设备实现。 一个处理器 单元201可以用于运行主计算模块303的实例化,而剩余的处理器 单元201中的每个随后可以用于实现高级从计算模块305的实例化。 备选地,多核处理器单元201中的单个内核可以用来运行主计算模 块303的实例化,而剩余的内核中的每个随后可以用来实现高级从 计算模块305的实例化。根据本发明的某些实施方式,主计算模块18303、分发器计算模块307或者二者甚至可以共享单核处理器单元 201 (或者多核处理器单元201的单个内核),其中高级从计算模块 305的一个或多个实例化例如使用多线程技术。
根据本发明的各种示例,初级从计算模块309A-309(3的每一个 可以由计算机(诸如,使用具有与实现高级从计算模块305A-305a 的处理器单元103不相同的功能能力的一个或多个处理器单元103 的计算设备101 )实现。例如,如前所述,高级从计算模块305A-305a 可以使用从Advanced Micro Devices可得的某种类型的Opteron 处 理器实现。如本领域中所知,这种处理器被配置成执行整数计算快 于执行浮点数计算。因此,根据本发明的各种实施方式,初级从计 算模块309A-309(3的一个或多个可以使用从纽约Armonk市的国际 商业机器公司可得的Cell处理器来实现。如上更详细所述,这种处 理器被配置成比Opteron 处理器更快速地执行浮点数计算。
主计算模块303、高级从计算模块305A-305a、分发器计算模块 307和初级从计算模块309A-30邓的每一个都可以是使用Unix操作 系统的某些变体、从Washington的Redmond市的微软公司可得的 Microsoft Windows操作系统的某些变体或者二者某些组合的变体创 建的计算进程。当然,应当理解,根据本发明的某些其他实施方式, 任何软件操作系统或者软件操作系统的組合可以用来实现主计算模 块303、高级从计算模块305A-305a、分发器计算模块307和初级从 计算模块309A-309(3的任何一个。
根据本发明的各种示例,主计算模块303、高级从计算模块 305A-305a、分发器计算模块307和初级从计算模块309A-309(3中的 每一个通过网络311互连。网络311可以使用任何通信协议,诸如 公知的传输控制协议(TCP)和网际协议(IP)。网络311可以是使 用传统导线的有线网络、无线网络(例如使用射频信号或者红外频 率信号作为介质)、光缆网络或者其某些组合。然而,应当理解, 网络311的通信速率应当足够快,以便不会延迟计算模块303-309 的操作。分层处理器计算系统的操作
现在参照图4A-图4C和图5所示的流程图,来讨论根据本发明 各种实施方式的分层处理器计算系统301的操作。最初,在步骤401 中,主计算模块303和高级从计算模块305A-305a的每一个发起将 在分层处理器计算系统301上运行的目标软件应用的实例。如前所 述,本发明的某些示例可以用来运行模拟和验证软件应用,以分析 和修改微型电路设计。例如,本发明的某些实施方式可以用于运行 从Oregon的Wilsonville的Mentor Graphics公司可得的CALIBRE微 型电路设计分析软件应用。接着,在步骤403,主计算模块303发起 分发器计算模块307的操作。然而,根据本发明的某些备选实施方 式,分发器计算模块307的操作可以由用户手动开始。反过来,在 步骤405,分发器计算模块307使初级从计算模块309A-309P的每一 个发起目标软件应用的实例。
在步骤407,当高级从计算模块305A-305a的每一个准备好开始 运行目标软件应用的实例化时,其向主计算机模块303报告其准备 就绪及其网络地址。类似地,在步骤409,当初级从计算模块 309A-309(3中的每一个准备好开始运行目标软件应用的实例化时,其 向分发器计算模块307报告其准备就绪及其网络地址。在步骤411, 当初级从计算模块309A-30邓中的每一个已经向分发器计算模块 307报告了其准备就绪及其网络地址时,分发器计算模块307将其准 备就绪及网络地址报告给主计算模块303。依次地,在步骤413,主 计算模块303将分发器计算模块307的网络地址提供给高级从计算 模块305A-305a的每一个。
接着,在步骤415,主计算模块303开始将操作集合指派给各个 高级从计算模块305A-305a以便执行。更具体地,主计算模块303 访问目标软件应用将执行的下一操作集合。其将此操作集合与执行 该操作集合所需的相关数据一起提供给下 一可用的高级从计算模块 305。重复此过程,直到所有的高级从计算模块305A-305a都被占用为止(或者,直到不再有要执行的其他操作为止)。现在,针对图
5A-图5B的流程图来讨论高级从计算模块305A-305a、分发器计算 模块307和初级从计算模块309A-30邓的操作。
在步骤501中,高级从计算模块305执行操作集合中的操作, 其中这些操作属于更适合由高级从计算模块305执行的第一类型。 例如,如前所述,高级从计算模块305A-305a可以使用以下处理器 单元201来实现,其中该处理器单元201执行整数计算的效率高于 执行浮点数计算。因此,如果操作集合包括主要涉及整数计算的操 作(诸如,设计规则检查操作),则这些操作将由主计算模块303 指派给高级从计算模块305来执行。
接着,在步骤503,高级从计算模块305识别操作集合中的一个 或多个操作,其中这些操作属于更适合由初级从计算模块309执行 的第二类型。例如,如前所述,初级从计算模块309A-309P可以使 用以下处理器单元201来实现,其中该处理器单元201能比用于实 现高级从计算模块305A-305a的处理器单元201更高效地执行浮点 数计算。因此,如果操作集合包括主要涉及浮点数计算的操作(诸 如,光学邻近修正操作或者光学邻近修正验证操作),则这些操作 将由主计算模块303指派到高级从计算模块305来识别。
在步骤505,响应于识别出操作集合中属于更适合由初级从计算 模块309执行的第二类型的一个或多个操作,高级从计算模块305 向分发器计算模块307发送对可用的初级从计算模块309的网络地 址的查询。作为响应,在步骤507,分发器计算模块307向高级从计 算模块305发送当前并未被占用执行其他操作的初级从计算模块 309的网络地址。分发器计算模块307可以使用任意期望的算法(诸 如,round-robin算法)来选择可用的初级从计算模块309A-309卩。
接着,在步骤509,开始将第二类型的已识别操作传输至可用的 初级从计算模块309以供执行。在步骤511,初级从计算模块309 执行所传输的操作,并且在步骤513,将执行所传输的操作的结果返 回给高级从计算模块305。根据本发明的各种示例,高级从计算模块
21305可以无限期地等待来自于初级从计算模块309的结果。然而,根 据本发明的其它示例,高级从计算模块305可以针对来自于初级从 计算模块309的结果仅等待阈值时段。在此时段期满后,假设初级 从计算模块309发生故障或者不会返回操作结果,高级从计算模块 305可以开始自己执行所传输的操作。
而且,根据本发明的某些示例,高级从计算模块305可以简单 地针对来自于初级从计算模块309的结果在空闲模式中等待。然而, 根据本发明的其他示例,高级从计算模块305可以使用多任务技术 来开始执行主计算模块303指派的第二操作集合,而同时等待来自 于初级从计算模块309的结果以完成第一操作集合的执行。
重复步骤501-511,直到操作集合中的所有操作都被执行。在步 骤515, —旦操作集合中的所有操作都被执行,则高级从计算模块 305将从执行操作集合获得的结果返回至主计算模块303。
现在返回图4,在步骤417,主计算模块303从高级从计算模块 305接收操作结果。在步骤419,主计算模块303确定是否存在需要 执行的其他操作集合。如果存在,则针对此接下来的操作集合重复 步骤415和417.如果不存在需要执行的任何更多操作,则过程结束。
从前述描述可知,显而易见的是使用分层处理器布置的本发 明各种示例提供了比传统多核计算系统更加快速的执行时间。例如, 就设计电路模拟和验证软件应用而言,针对执行某些操作,诸如用 于光学邻近控制的图像模拟操作,Cell微处理器比传统OpteronTM处 理器快大约100倍。另一方面,针对其他类型的操作(诸如,设计 规则检查操作),Cell处理器比传统OpteronTM处理器要慢(例如, 是其0.9倍)。通过在计算系统301中采用不同类型的处理器单元 201,然后将每个操作与最适合于执行该操作的处理器单元201类型 相匹配,本发明的各种实现可以比同构处理器计算系统更快速地冲丸 行进程的操作。
应当理解,高级从计算模块305A-305a与初级从计算模块 309A-309卩的比率取决于希望由计算系统301执行的操作类型。例如,如上更详细讨论的,本发明的某些实施方式可以实现计算系统
301,其使用OpteronTM处理器和Cell处理器来执行模拟和验证操作 (包括图像模拟操作)。图6示出了基于计算系统301中所使用的 Cell处理器的数量、针对不同的模拟/非模拟操作的比率可以获得的 估计的速度增长。更具体地,此附图的y轴示出了利用本发明实施 方式的典型集成电路设计分析进程的估计运行时间与在传统分布式 处理系统上的集成电路设计分析进程的估计运行时间之间的比率, 而x轴继而对应于计算系统301中使用的Cell处理器的数量。每个 曲线继而对应于分析进程中的浮点数操作与整数操作的比率。
备用计算系统
虽然图3示出了可以根据本发明各种实施方式实现的分层处理 器计算系统的一个示例,但是应当理解,根据本发明的备选实施方 式,可以实现多种其他计算系统。例如,图7示出了计算系统701, 其包括第二主计算模块703和高级从计算模块705A-705 oc的第二集 合。如此图中所示,第二主计算模块703和高级从计算模块705A-705 a的第二集合共享分发器计算模块307和初级从计算模块309A-309 [3的用户。这种布置对于以下情况是有用的,例如,用于实现初级 从计算模块309A-309 P的处理器单元201相对较贵和/或较少使用, 并且将在主计算模块和高级从计算模块的两个或更多集合之间共

另一方面,图8示出了计算系统801,其完全省略了分发器计算 模块307。取而代之的是,每个高级从计算模块305被指派给相应的 初级从计算模块309专用。这种配置在以下情况中是有用的,例如, 用于实现初级从计算模块309A-309 P的处理器单元201相对便宜和 /或频繁使用,致使为了获得期望的操作速度而需要的初级从计算模 块309A-309I3的最佳数量与高级从计算模块305A-305 a的数量匹 配。当然,使用不同类型处理器的分层布置的其他配置对于本领域 技术人员而言是显然的。结论
尽管使用所附权利要求限定了本发明,但是这些权利要求是示 例性的,因为本发明意在以任何组合或子组合包括在此描述的元素 和步骤。因此,存在用于限定本发明的任意数量的备选组合,这些
附图的一个或多个元素。对于相关技术领域的技术人员而言,鉴于
本说明书和权利要求书,显而易见的是本发明方面的备选组合(无 论是单独的还是与在此限定的一个或多个元素或步骤相结合)可以 用作本发明的变形或备选,或本发明的一部分,并且包含于此的本 发明书面描述意在覆盖所有这种修改和备选。
权利要求
1. 一种执行操作的方法,包括在主进程处接收操作集合,第一操作集合包括一个或多个将要执行的操作;将所述操作集合从所述主进程传输至在第一处理器类型的处理器上执行的第一从进程;将所述操作集合中的至少一个操作从所述第一从进程传输至在第二处理器类型的处理器上执行的第二从进程;所述第二从进程执行所述至少一个操作以产生操作结果;以及将所述操作结果从所述第二从进程传输至所述第一从进程。
2. 如权利要求1的执行操作的方法,其中所述第一处理器类型 的处理器最适于执行第 一种类的操作。
3. 如权利要求2的执行操作的方法,其中所述第一种类的操作 包括整数计算。
4. 如权利要求1的执行操作的方法,其中所述第二处理器类型 的处理器最适于执行第二种类的操作。
5. 如权利要求4的执行操作的方法,其中所述第二种类的操作 包括浮点数计算。
6. 如权利要求1的执行操作的方法,其中 所述操作集合包括第一操作和第二操作;以及 进一步包括将所述第一操作传输至所述第二从进程;以及所述第 一从进程使用所述操作结果来执行所述第二操作。
7. 如权利要求6的执行操作的方法,其中所述第一操作包括 计算快速傅立叶变换的指令。
8. 如权利要求1的执行操作的方法,还包括 在所述主进程处接收第二操作集合,所述第二操作集合包括将要执行的 一 个或多个第二操作;将所述第二操作集合从所述主进程传输至在所述第一处理器类 型的第二处理器上执行的第三从进程。
9. 如权利要求8的执行操作的方法,还包括将所述第二操作集合中的至少 一 个第二操作从所述第三从进程传输至在所述第二处理器类型的第二处理器上执行的第四从进程; 以及所述第四从进程执行所述第二操作以产生第二操作结果。
10. 如权利要求8的执行操作的方法,还包括 将所述第二操作集合中的至少一个第二操作从所述第三从进程传输至所述第二从进程;以及所述第二从进程执行所述第二操作以产生第二操作结果。
11. 一种计算系统,包括 多个第一处理器类型的第一从处理器;多个不同于所述第一处理器类型的第二处理器类型的第二从处 理器,每个所述第二从处理器被配置用于执行第一从处理器提供的 操作;以及主进程模块,其被配置用于将操作分发到所述第一从处理器以便 执行。
12. 如权利要求11的计算系统,其中 所述第一处理器类型的处理器最适于执行第一种类的操作。
13. 如权利要求12的计算系统,其中所述第一种类的操作包括整数计算。
14. 如权利要求11的计算系统,其中所述第二处理器类型的处 理器最适于执行第二种类的操作。
15. 如权利要求14的计算系统,其中所述第二种类的操作包括浮点数计算。
16. 如权利要求11的计算系统,还包括分发器模块,其被配置用于监控每个所述第二类型处理器的可用性;以及将每个所述第二类型处理器的可用性报告给所述第一类型处理器。
全文摘要
提供了一种计算系统,其具有多处理器架构。这些处理器被分层地组织,以使得高级分层水平的一个或多个从处理器向初级分层水平的一个或多个从处理器提供任务。进一步地,初级分层水平的从处理器具有与高级分层水平的从处理器不同的功能能力,使得针对某种操作,初级从处理器可以比高级从处理器更好地执行。主计算进程将操作集合分布在运行在高级分层水平的处理器上的一个或多个计算进程之间,其将开始执行操作集合中的操作。当运行在高级分层水平的进程识别出初级分层水平处的处理器能更好执行的那种类型的一个或多个操作时,其将此一个或多个操作提供给运行在初级分层水平的处理器上的进程。在运行在初级分层水平上的进程执行了指派给其的一个或多个操作后,其将结果返回给运行在高级分层水平上的进程,以完成操作集合的执行。
文档编号G06F15/76GK101523381SQ200780033941
公开日2009年9月2日 申请日期2007年8月3日 优先权日2006年8月13日
发明者D·杜多, E·米洛斯拉瓦斯凯, N·科布 申请人:明导公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1