用于设计重用的多处理器编程工具包的制作方法

文档序号:8926979阅读:179来源:国知局
用于设计重用的多处理器编程工具包的制作方法
【技术领域】
[0001] 本发明的领域一般而言涉及用于数字电子系统的软件开发,并且更具体而言,涉 及用于多处理器阵列的编程技术。
【背景技术】
[0002] 越来越多地,数字电子系统使用一个或多个多处理器阵列(MPA)。数字电子系统的 例子包括:计算机、数字信号处理器OSP)以及嵌入在封闭装备中的那些系统,所述封闭装 备诸如是无线电电话、政府服务无线电、诸如蜂窝电话、智能电话和平板电脑的消费者无线 装备、蜂窝基站装备、视频处理和广播装备、物体识别装备、超光谱图像数据处理,等等。
[0003] MPA可以被松散地定义为多个处理元件(Processing Element,PE) ( 即,处理器)、 支持存储器(Supporting Memory,SM)和高带宽互连网络(Interconnection Network,IN) 〇 在MPA的上下文中,术语"阵列"在其最广泛的意义上被用来指通过网络互连的多个计算单 元(每个计算单元包含处理和存储器资源),其中网络具有在一个、两个、三个或更多个维 度中可用的连接,其中维度包括圆形维度(回路或环)。应当指出,较高维度的MPA可以被 映射到具有较少维度的制造介质上。例如,在IN中具有四维(4D)超立方体形状的MPA可以 被映射到硅集成电路(1C)芯片的3D堆叠上,或者映射到单个2D芯片上,或者甚至计算单 元的1D行上。同样,低维度的MPA可以被映射到较高维度的介质。例如,计算单元的1D行 可以以蜿蜒的形状布置到1C芯片的2D平面上,或者盘绕在芯片的3D堆叠中。MPA可以包 含多种类型的计算单元以及处理器和存储器的穿插布置。在一些MPA实现的广泛意义中, 还包括MPA的层次或嵌套布置,尤其是由互连的1C芯片组成的MPA,其中1C芯片包含一个 或多个还可以具有更深层次结构的MPA。
[0004] MPA为软件开发方法和工具提出了新的问题和机遇。由于MPA可以扩展到上千 个PE,因此需要管理大量的软件来操作阵列,并且以高效的方式来测试、调试和重建这种软 件。通常,这需要模块化、层次化、可适应的模块重用以及自动构建方法。虽然这些想法已 出现在常规的软件开发系统中,但是它们没有以支持通用模块的方式集成到开发工具中, 其中通用模块取决于性能要求或者不同的形状或拓扑结构要求,可以静态地和/或动态地 适应于不同数量的PE和其它资源,而性能要求或者不同的形状或拓扑结构要求又可能取 决于资源的可用性或应用要求。
[0005] 因此,期望有改进的技术和工具用于多处理器阵列软件开发。

【发明内容】

[0006] 以下提供了用于为多处理器阵列或结构及其使用开发软件的技术的各种实施例。 多处理器结构可以包括多个处理器和多个通信元件,并且如所期望的,可以是(一般地)同 构或异构的。每个通信元件可以是可动态配置的和/或可以包括多个通信端口、存储器和 /或路由引擎,以及其它可能的元件。每个处理器可以包括用于执行算法逻辑的装置、指令 处理单元和/或多个处理器端口,以及其它可能的元件。通信元件和处理器可以以穿插的 方式耦合在一起。例如,对于每个处理器,可以将多个处理器端口配置为耦合到多个通信元 件的第一子集,并且对于每个通信元件,通信端口的第一子集可以被配置为耦合到多个处 理器的子集并且通信端口的第二子集可以被配置为耦合到多个通信元件的第二子集。
[0007] 在一些实施例中,软件编程语言工具包可以指定并实现目标是在多处理器阵列 (MPA)上执行的软件应用。在一种实施例中,软件代码可以包括可执行以执行函数的第一程 序指令。在这个实施例中,软件代码也可以包括一个或多个语言构造(construct),其可配 置来指定一个或多个通信端口和一个或多个参数输入。在该实施例中,一个或多个通信端 口可配置来指定与其它软件代码的通信。在该实施例中,一个或多个参数输入可配置来指 定可用来执行软件代码的一组硬件资源。在该实施例中,硬件资源包括多个处理器并且可 以包括多个支持存储器。在该实施例中,软件代码的实例能部署在MPA上以执行不同软件 应用中的函数。每个实例可以包括软件构造的配置。在一些实施例中,一个或多个参数输入 可以配置为指定第一函数的操作、数据流大小、用来存储临时状态的数据量和通信资源量、 外部输入和/或输出等。软件代码可以被包括在非暂时性计算机可存取存储介质上。
[0008] 各种功能可以被实现为编程语言或者对现有编程语言的扩展,例如,对C或C++的 扩展,等等。多处理器阵列可以包括多个处理元件、支持存储器以及通信地耦合该多个处理 元件和支持存储器的高带宽互连网络(IN)。软件编程语言工具包可以包括用于(例如,利 用上述软件代码实施例)实现小区模型(cell model)的函数,其可提供:基于小区的层次 设计、小区重用和MPA的物理资源的分配。物理资源可以包括处理元件、通信资源和存储 器。小区并因此阵列资源的分配可以被静态地或动态地配置或修改,并且因此可以提供用 于配置在MPA上执行的软件应用的高度灵活和有效的工具。
【附图说明】
[0009] 当结合以下附图来考虑以下对优选实施例的详细描述时,可获得对本发明的更好 理解,其中附图中:
[0010] 图1说明示例性开发系统的一种实施例;
[0011] 图2和3说明示例性多处理器阵列(MPA)系统的实施例;
[0012] 图4和5A是说明用于MPA的软件开发流程的实施例的流程图;
[0013] 图5B是说明软件开发流程的另一种实施例的流程图;
[0014] 图6根据一种实施例说明小区的层次结构;
[0015] 图7和8根据一种实施例说明相应的参数化的小区层次;
[0016] 图9和10根据一种实施例说明对一对小区的相应物理资源分配;及
[0017] 图11根据一种实施例说明以反映不同资源优化的两种不同方法实例化的小区和 较低层次小区的视图。
[0018] 虽然本发明易于进行各种修改和替换形式,但其具体实施例在附图中作为例子示 出并且在本文中进行详细描述。但是,应当理解,附图和对其的详细描述不是要将本发明限 制到所公开的特定形式,而是相反,意图是要覆盖属于如所附权利要求定义的本发明的精 神和范围内的所有修改、等效物和替换。
[0019] 这里使用术语"被配置为"是通过指示单元/电路/组件包括在操作过程中执行一 个或多个任务的结构(例如,电路系统)来意指结构。因此,单元/电路/组件可以被称为 被配置为执行任务,即使在指定的单元/电路/组件目前没有操作(例如,没有开启)时。 与"被配置为"语言一起使用的单元/电路/组件包括硬件--例如,电路、存储可执行以 实现操作的程序指令的存储器等。陈述单元/电路/组件"被配置为"执行一个或多个任 备明确地不是耍对那个单元/电路/组件援引35U. S. C. § 112 (f)。
【具体实施方式】
[0020] 通讨引用结合
[0021] 以下专利的全部内容通过引用被结合于此,就好像在本文被完全和完整地阐述了 一样:
[0022] 于 2003 年 6 月 24 日提交的、标题为"Processing System With Interspersed Stall Propagating Processors And Communication Elements" 的美 国专利 No. 7, 415, 594,其发明人是 Michael B.Doerr、William H.Hallidy、David A. Gibson 和 Craig M. Chase〇
[0023] 于 2011 年 10 月 14 日提交的、标题为"Disabling Communication in a Multiprocessor System"的美国专利申请序列No. 13/274, 138,其发明人是Michael B.Doerr、Carl S. Dobbs、Michael B. Solka、Michael R Trocino 和 David A. Gibson。
[0024] 术语
[0025] 以下是在本申请中使用的术语表:
[0026] 存储介质-各种类型的存储器设备或存储设备中的任何一种。术语"存储介质" 意图包括:安装介质,例如CD-ROM、软盘104或者磁带设备;计算机系统存储器或随机存取 存储器,比如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;或非易失性存储器,比如磁介 质,例如,硬盘驱动器、光存储装置或ROM、EPROM、FLASH等。存储介质也可包括其它类型的 存储器或者其组合。此外,存储介质可位于执行程序的第一计算机中,或者可位于通过网 络一一比如互联网一一连接到第一计算机的另一不同的第二计算机中。在后一种情况下, 第二计算机可将程序指令提供给第一计算机以便执行。术语"存储介质"可包括两个或更多 个存储介质,这些存储介质可存在于不同位置,例如存在于通过网络连接的不同计算机中。
[0027] 承载介质一如上所述的存储介质,以及物理传送介质,比如传达诸如电或光信号 之类的信号的总线、网络和/或其它物理传送介质。
[0028] 可编程硬件元件一包括各种硬件设备,其中包括经由可编程的或硬连线的互连连 接的多个可编程功能块。例子包括FPGA(Field Programmable Gate Array,现场可编程门 阵列)、PLD(Programmable Logic Device,可编程逻辑器件)、FP0A(Field Programmable Object Array,现场可编程对象阵列)和CPLD (Complex PLD,复杂PLD)。可编程功能块可 从细粒的(组合逻辑或查找表)到粗粒的(算术逻辑单元或处理器核)不等。可编程硬件 元件也可被称为"可重配置逻辑"。
[0029] 专用集成电路(ASIC) -这个术语意图具有其普通含义的完整广度。尽管术语 ASIC意图包括为特定应用定制的
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1