用于配置多处理器阵列的方法和设备以及开发系统技术方案

技术编号:12017266 阅读:129 留言:0更新日期:2015-09-09 13:18
本发明专利技术公开涉及用于设计重用的多处理器编程工具包。公开了用于指定和实现目标在于在多处理器阵列(MPA)上执行的软件应用的技术。MPA可以包括多个处理元件、支持存储器以及通信耦合多个处理元件和支持存储器的高带宽互连网络(IN)。在一种实施例中,软件代码可以包括可执行以执行函数的第一程序指令。在这个实施例中,软件代码也可以包括可配置来指定一个或多个通信端口和一个或多个参数输入的一个或多个语言构造。在这个实施例中,一个或多个通信端口可配置来指定与其它软件代码的通信。在这个实施例中,一个或多个参数输入可配置来指定可用来执行软件代码的一组硬件资源。在这个实施例中,硬件资源包括多个处理器并且可以包括多个支持存储器。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的领域一般而言涉及用于数字电子系统的软件开发,并且更具体而言,涉及用于多处理器阵列的编程技术。
技术介绍
越来越多地,数字电子系统使用一个或多个多处理器阵列(MPA)。数字电子系统的例子包括:计算机、数字信号处理器(DSP)以及嵌入在封闭装备中的那些系统,所述封闭装备诸如是无线电电话、政府服务无线电、诸如蜂窝电话、智能电话和平板电脑的消费者无线装备、蜂窝基站装备、视频处理和广播装备、物体识别装备、超光谱图像数据处理,等等。MPA可以被松散地定义为多个处理元件(Processing Element,PE)(即,处理器)、支持存储器(Supporting Memory,SM)和高带宽互连网络(Interconnection Network,IN)。在MPA的上下文中,术语“阵列”在其最广泛的意义上被用来指通过网络互连的多个计算单元(每个计算单元包含处理和存储器资源),其中网络具有在一个、两个、三个或更多个维度中可用的连接,其中维度包括圆形维度(回路或环)。应当指出,较高维度的MPA可以被映射到具有较少维度的制造介质上。例如,在IN中具有四维(4D)超立方体形状的MPA可以被映射到硅集成电路(IC)芯片的3D堆叠上,或者映射到单个2D芯片上,或者甚至计算单元的1D行上。同样,低维度的MPA可以被映射到较高维度的介质。例如,计算单元的1D行可以以蜿蜒的形状布置到IC芯片的2D平面上,或者盘绕在芯片的3D堆叠中。MPA可以包含多种类型的计算单元以及处理器和存储器的穿插布置。在一些MPA实现的广泛意义中,还包括MPA的层次或嵌套布置,尤其是由互连的IC芯片组成的MPA,其中IC芯片包含一个或多个还可以具有更深层次结构的MPA。MPA为软件开发方法和工具提出了新的问题和机遇。由于MPA可以扩展到上千个PE,因此需要管理大量的软件来操作阵列,并且以高效的方式来测试、调试和重建这种软件。通常,这需要模块化、层次化、可适应的模块重用以及自动构建方法。虽然这些想法已出现在常规的软件开发系统中,但是它们没有以支持通用模块的方式集成到开发工具中,其中通用模块取决于性能要求或者不同的形状或拓扑结构要求,可以静态地和/或动态地适应于不同数量的PE和其它资源,而性能要求或者不同的形状或拓扑结构要求又可能取决于资源的可用性或应用要求。因此,期望有改进的技术和工具用于多处理器阵列软件开发。
技术实现思路
以下提供了用于为多处理器阵列或结构及其使用开发软件的技术的各种实施例。多处理器结构可以包括多个处理器和多个通信元件,并且如所期望的,可以是(一般地)同构或异构的。每个通信元件可以是可动态配置的和/或可以包括多个通信端口、存储器和/或路由引擎,以及其它可能的元件。每个处理器可以包括用于执行算法逻辑的装置、指令处理单元和/或多个处理器端口,以及其它可能的元件。通信元件和处理器可以以穿插的方式耦合在一起。例如,对于每个处理器,可以将多个处理器端口配置为耦合到多个通信元件的第一子集,并且对于每个通信元件,通信端口的第一子集可以被配置为耦合到多个处理器的子集并且通信端口的第二子集可以被配置为耦合到多个通信元件的第二子集。在一些实施例中,软件编程语言工具包可以指定并实现目标是在多处理器阵列(MPA)上执行的软件应用。在一种实施例中,软件代码可以包括可执行以执行函数的第一程序指令。在这个实施例中,软件代码也可以包括一个或多个语言构造(construct),其可配置来指定一个或多个通信端口和一个或多个参数输入。在该实施例中,一个或多个通信端口可配置来指定与其它软件代码的通信。在该实施例中,一个或多个参数输入可配置来指定可用来执行软件代码的一组硬件资源。在该实施例中,硬件资源包括多个处理器并且可以包括多个支持存储器。在该实施例中,软件代码的实例能部署在MPA上以执行不同软件应用中的函数。每个实例可以包括软件构造的配置。在一些实施例中,一个或多个参数输入可以配置为指定第一函数的操作、数据流大小、用来存储临时状态的数据量和通信资源量、外部输入和/或输出等。软件代码可以被包括在非暂时性计算机可存取存储介质上。各种功能可以被实现为编程语言或者对现有编程语言的扩展,例如,对C或C++的扩展,等等。多处理器阵列可以包括多个处理元件、支持存储器以及通信地耦合该多个处理元件和支持存储器的高带宽互连网络(IN)。软件编程语言工具包可以包括用于(例如,利用上述软件代码实施例)实现小区模型(cell model)的函数,其可提供:基于小区的层次设计、小区重用和MPA的物理资源的分配。物理资源可以包括处理元件、通信资源和存储器。小区并因此阵列资源的分配可以被静态地或动态地配置或修改,并且因此可以提供用于配置在MPA上执行的软件应用的高度灵活和有效的工具。附图说明当结合以下附图来考虑以下对优选实施例的详细描述时,可获得对本专利技术的更好理解,其中附图中:图1说明示例性开发系统的一种实施例;图2和3说明示例性多处理器阵列(MPA)系统的实施例;图4和5A是说明用于MPA的软件开发流程的实施例的流程图;图5B是说明软件开发流程的另一种实施例的流程图;图6根据一种实施例说明小区的层次结构;图7和8根据一种实施例说明相应的参数化的小区层次;图9和10根据一种实施例说明对一对小区的相应物理资源分配;及图11根据一种实施例说明以反映不同资源优化的两种不同方法实例化的小区和较低层次小区的视图。虽然本专利技术易于进行各种修改和替换形式,但其具体实施例在附图中作为例子示出并且在本文中进行详细描述。但是,应当理解,附图和对其的详细描述不是要将本专利技术限制到所公开的特定形式,而是相反,意图是要覆盖属于如所附权利要求定义的本专利技术的精神和范围内的所有修改、等效物和替换。这里使用术语“被配置为”是通过指示单元/电路/组件包括在操作过程中执行一个或多个任务的结构(例如,电路系统)来意指结构。因此,单元/电路/组件可以被称为被配置为执行任务,即使在指定的单元/电路/组件目前没有操作(例如,没有开启)时。与“被配置为”语言一起使用的单元/电路/组件包括硬件––例如,电路、存储可执行以实现操作的程序指令的存储器等。陈述单元/电路/组件“被配置为”执行一个或多个任务明确地不是要对那个单元/电路/组件援引35本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN104903855.html" title="用于配置多处理器阵列的方法和设备以及开发系统原文来自X技术">用于配置多处理器阵列的方法和设备以及开发系统</a>

【技术保护点】
一种存储能部署在多处理器阵列(MPA)上的软件代码的非临时性计算机可存取存储介质,其中所述软件代码包括:可执行以执行第一函数的第一程序指令;及一个或多个第一语言构造,所述第一语言构造是用户可配置来指定一个或多个通信端口和一个或多个参数输入;其中所述一个或多个通信端口是用户可配置来指定与软件应用中其它软件代码的通信;其中所述一个或多个参数输入是用户可配置来指定可用来执行所述软件代码的一组硬件资源,其中所述硬件资源包括多个处理器和多个存储器;及其中所述软件代码的实例能部署在至少一个MPA中以执行在不同软件应用中的所述第一函数;其中所述软件代码的每个实例包括指定所述一个或多个通信端口的连接性的一个或多个通信端口的相应配置;及其中所述软件代码的每个实例还包括指定在用于部署所述软件代码的相应实例的所述至少一个MPA中的一组硬件资源的一个或多个参数输入的相应配置。

【技术特征摘要】
【国外来华专利技术】2012.11.06 US 61/722,8501.一种存储能部署在多处理器阵列(MPA)上的软件代码的非
临时性计算机可存取存储介质,其中所述软件代码包括:
可执行以执行第一函数的第一程序指令;及
一个或多个第一语言构造,所述第一语言构造是用户可配置来指
定一个或多个通信端口和一个或多个参数输入;
其中所述一个或多个通信端口是用户可配置来指定与软件应用中
其它软件代码的通信;
其中所述一个或多个参数输入是用户可配置来指定可用来执行所
述软件代码的一组硬件资源,其中所述硬件资源包括多个处理器和多
个存储器;及
其中所述软件代码的实例能部署在至少一个MPA中以执行在不
同软件应用中的所述第一函数;
其中所述软件代码的每个实例包括指定所述一个或多个通信
端口的连接性的一个或多个通信端口的相应配置;及
其中所述软件代码的每个实例还包括指定在用于部署所述软
件代码的相应实例的所述至少一个MPA中的一组硬件资源的一
个或多个参数输入的相应配置。
2.如权利要求1所述的非临时性计算机可存取存储介质,
其中所述软件代码的第一实例化能部署在至少一个MPA上以执
行第一软件应用中的第一函数,其中所述一个或多个通信端口具有指
定第一连接性的第一配置,并且其中所述一个或多个参数输入指定在
用于部署的所述至少一个MPA上的第一组硬件资源;及
其中所述软件代码的第二实例化能部署在至少一个MPA上以执
行第二软件应用中的第一函数,其中所述一个或多个通信端口具有指
定第二连接性的第二配置,并且其中所述一个或多个参数输入指定在
用于部署的所述至少一个MPA上的第二组硬件资源。
3.如权利要求2所述的非临时性计算机可存取存储介质,其中
所述软件代码的第二实例化基于所述一个或多个参数输入的配置比所
述软件代码的第一实例化使用更多的处理器。
4.如权利要求2所述的非临时性计算机可存取存储介质,其中
第二软件应用是与第一软件应用相同的软件应用并且其中所述第一实
例化和所述第二实例化被配置为并行地执行所述第一函数。
5.如权利要求1所述的非临时性计算机可存取存储介质,其中
所述一个或多个通信端口包括一个或多个结构端口和一个或多个共享
存储器端口。
6.如权利要求1所述的非临时性计算机可存取存储介质,其中
所述一个或多个参数输入可配置来指定以下中的至少一个:
所述第一函数的操作;
数据流大小;
用于部署所述软件代码的多个处理器;
对所述MPA外部的一个或多个通用存储器的访问;
对一个或多个MPA输入和/或输出的访问;
在执行所述第一函数时用来存储临时状态的数据量;及
可访问所述软件代码的通信资源量。
7.如权利要求1所述的非临时性计算机可存取存储介质,
其中所述软件代码的一个或多个实例能部署在软件代码的另一给
定实例中;及
其中所述软件代码的给定实例包括一个或多个语言构造,所述语
言构造用户可配置来指定一个或多个通信端口和一个或多个参数输入,
其中所述一个或多个通信端口可配置来指定与所述软件应用中的其它

\t软件代码的通信并且其中所述一个或多个参数输入可配置来指定可用
来执行所述软件代码的给定实例的一组硬件资源。
8.如权利要求1所述的非临时性计算机可存取存储介质,其中
所述一个或多个参数输入在所述软件代码的执行过程中是可配置来调
整用来执行所述软件代码的所述一组硬件资源的。
9.一种用于配置多处理器阵列(MPA)的方法,其中所述
MPA包括硬件资源,所述硬件资源包括多个处理器和多个存储器,...

【专利技术属性】
技术研发人员:S·E·利姆V·N·恩苟J·M·尼科尔森J·M·比尔兹利TI·王Z·Q·尚M·L·珀内尔
申请(专利权)人:相干逻辑公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1