多处理器嵌入式系统上应用的动态重新配置的制作方法_3

文档序号:9602484阅读:来源:国知局
点,并且DMR也可以被称为DMR节点。DMR在本文中也被称为“可配置的通信元件”。
[0087]在图4和5中所示的DMR之间的链路构成直线网格。但是,许多其它的连接方案也是可能的和预期的。在图5中示出的MPS连接方案中,每个PE被连接到四个邻居DMR,而每个DMR被连接到四个邻居PE以及4个邻居DMR。其它连接方案也是可以预见的,以支持更高维度的IN,诸如每个DMR使用六条DMR到DMR链路,以支持三维直线网格,或者每个DMR使用8条链路,以便除北、东、南和西方向之外还支持四个对角线方向。链路不必局限于物理上最近的邻居。
[0088]具有芯片I/O的MPS 20可以在当前使用通用微处理器、DSP、FPGA或ASIC的各种系统和应用当中任何一种中使用。例如,图4和5中示出的处理系统可以在需要计算的各种类型的计算机系统、数字信号处理器(DSP)或其它设备当中任何一种中使用。
[0089]HyperX硬件架构
[0090]在HyperX?体系架构的一种实施例中,多处理器阵列可以由基于单元的硬件架构(网)组成,其中每个单元被称为HyperSlice (超片)。硬件架构可以通过在网格上布置单元并且互连相邻的单元来形成。每个HyperSlice单元可以包括一个或多个数据存储器和路由器(DMR)以及一个或多个处理元件(PE)。
[0091]在美国专利N0.7,415,594中,DMR可以被称为动态可配置通信(DCC)元件,并且PE可以被称为动态可配置处理(DCP)元件。DMR可以为其邻居PE提供支持存储器,并且为互连网络(IN)提供路由器和链路。在这种语境下的动态可配置意味着那些硬件资源(PE、DMR链路和DMR存储器)可以在应用软件运行的时候被重新分配。这可以通过将应用软件划分成更小任务和通信消息的层次结构来实现。这些任务和消息可以被指派给资源并且被同时执行(或者,如果需要的话,串行地执行)。当任务和消息完成时,它们可以被重新执行或者被其它任务和消息取代,以形成应用软件的新配置。除其它之外,“在运行时”改变配置的能力支持使得有限资源能更高效地使用并且更好地适应不断变化的外部需求的灵活性。
[0092]HyperX?硬件架构具有独立地操作并对处理元件透明的主IN(PIN),并且可以通过支持任意通信网络拓扑的HyperSlices之间实时可编程并可修改的通信路径(可以被称为路线或路径)的集合体提供按需带宽。协调的HyperSlices组可以“在进行时(on-the-fly) ”在软件的控制下被形成并重组。这种动态更改被用来评估功能的硬件的量的能力允许硬件资源的最优应用,以减轻处理瓶颈。在硬件架构的边缘,链路可以连接到专用于在存储器层次结构进一步向下的存储器类型或者用于在集成电路(1C)芯片边缘的1/0的电路。
[0093]HyperX硬件架构的互连的DMR可以跨芯片和从芯片到芯片提供最邻近、区域性和全局通信。这些通信模式当中每一种可以物理地利用DMR资源来不同地发送数据/消息,这取决于数据和软件算法需求的局部性。“快速端口”设施可以被提供,以支持数据的一个或多个字从处理器到任何网络目的地的低等待时间传输。对于块传输,DMR内的直接存储器访问(DMA)引擎可用于跨存储器和路由架构(或通信架构)管理数据的运动。对于PE之间的最邻近通信,共享存储器和寄存器的使用可以是数据运动的最高效方法。对于区域性和全局数据运动,利用路由架构(PIN)可能是最高效的方法。通信通路(或路线)可以是动态的或者是静态的。动态路线可以为数据传输设置并且在传输完成之后被推倒,以释放PIN资源,供其它路线和数据传输使用。静态路线可以在整个程序执行过程中都保持并且可以主要用于高优先级和关键通信。通信通路的物理位置和数据传输跨该通信通路的定时可以在软件程序控制之下。多条通信通路可以存在,以支持任何发送方和接收方之间的同时数据传输。
[0094]处理元件(PE)
[0095]DMR的体系架构可以允许在多处理器架构中使用不同的可互换PE来优化用于特定应用的系统。HyperX多处理器系统可以包括或异质或同质的PE阵列。PE可以是常规的处理器,或者作为替代,PE可以不符合处理器的常规定义。在一些实施例中,PE可以是充当用于某些逻辑功能的硬连线处理器的逻辑门的集合,其中,为了更高的性能、更小的面积和/或更低的功率,可编程性被折中。
[0096]如图5中所示,例如,通过在PE当中散置DMR,在诸如HyperX MPS的MPS中的PE可以利用到多个存储器的并行连接来提供。相对于隔离(即,非散置)布置,这种布置可以减少给定PE访问DMR中的存储器所需的时间和能量,并且在本文中可以被称为散置布置。
[0097]在图4的实施例中,PE与DMR之比大约为1:1。在各种其它实施例中,PE与DMR的不同比率是可能的。
[0098]HyperX处理器体系架构可以包括固有的多维度,但是可以在平面实现中被物理实现。处理器体系架构可以具有能量高效的特点并且还可以从根本上可扩展(到大阵列)并且是可靠的-代表既低功率又可靠的概念。使处理器体系架构能够实现高性能的各方面可以包括流线型处理器、存储器-网络以及灵活的10。处理元件(PE)可以是全功能的DSP/GPP并且基于由可变宽度指令字指令集体系架构支撑的存储器到存储器(无高速缓存)体系架构,该体系结构可以动态地扩展执行管线,以维持吞吐量,同时最大化硬件资源的利用。
[0099]通信通路的设置
[0100]图4示出了 HyperX?系统的实施例,包括处理元件(PE)和数据存储器路由器(DMR)的网络。PE被示为矩形块并且DMR被示为圆圈。DMR之间的路由路径被示为点线。实心三角形示出离网通信并且粗实线示出DMR之间的活动数据通信。计算任务由其数字标识符示出并且被放在执行其的PE上。用于通信的数据变量由其名称示出并且被放在包含其的DMR上。在示出的实施例中,左上方的PE已经被指派了具有任务ID 62的任务并且可以经由与PE相邻的相应DMR与其它PE或存储器通信,由通信路径变量t、w和u指出。在这个实施例中,还示出了经由标记为“ X ”的相邻DMR将指定为71 (例如,另一个任务ID)的PE连接到离网通信路径或端口的活动通信路线。
[0101]数据存储器路由器
[0102]DMR硬件结构的示例实施例的框图在图6中示出。在所示实施例中,中央数据存储器(DM)被表示路由器的八角形环环绕。应当注意的是,所示的八角形形状仅是象征性的,并且实际形状可以不同,例如,可以是矩形。环绕DMR的是代表到其它DMR与PE的数据路径的多个双向箭头。这些双向数据路径可以利用在每一端的实际双向收发器来实现,或者被实现为一对相反定向的单向路径。
[0103]图6中路由器与数据存储器之间的单向箭头表示存储器与路由器之间的单向数据路径。这些箭头附近的小方块表示DMA引擎,S卩,支持从DM读出的DMA读取器(DMAR),和/或支持将数据写入DM的DMA写入器(DMAW)。DMAR引擎为存储器生成地址信号,通常跨缓冲区增加,从而读取数据,以便送出到另一 DMR的链路。类似地,DMAW引擎为存储器生成地址信号,通常跨缓冲区增加,从而写入它从链路接收到的数据。每个DMA引擎比PE小得多并且使用更少的功率,因此它们对于存储器块的读和写的使用是有吸引力的。DMA引擎可以被PE写配置到DM存储器空间中相关联的配置寄存器。写到特定地址触发DMA开始递增。当DMA完成通过一块地址的递增时,它停止-除非被配置为继续循环,或者无限期地或者预定义次数的循环。
[0104]为了支持诸如图5中所示的MPS 20的MPS中的高带宽端口,端口之间的连接或链路(PE到DMR或DMR到DMR)可以短(即,限定到邻居)并且由许多平行的导电迹线或“电线”或“线路”组成。在一些实施例中,链路可以由仅仅几条平行迹线、一条迹线或一个波导组成。
[0105]PE到DMR连接可以分离用于存储器地址的迹线与用于数据的迹线。用于数据的迹线可以被连接到收发器,以支持双向数据传输,或者被分离成将写数据带入存储器的一组迹线与从存储器带来读数据的另一组迹线。DMR到DMR连接可以不必具有地址线,但可以具有表示所传输数据中特殊字,诸如用于消息报头或消息终止的控制字,的线路。
[0106]所有DMR连接都可以具有用于流控制的附加线路。例如,线路可以发信号通知上游(从目的地到源)数据字的进一步前进由于在路线中存在某个其它通信路径或者目的地不能接受更多数据而被阻塞。另一条线路可以发信号通知下游(从源到目的地)有效数据已准备就绪。上游和下游信令都可以被用来指示连接到DMR—一其或者是本地(相邻)DMR或全局(非相邻的)DMR——之间的链路的端部的发送器和接收器的状态。在一些MPS实施例中,节点之间的通信可以在程序员控制之下。
[0107]图7-12示出了在MPS上执行的算法的示例踪迹。为了说明的目的,该算法是故意简单和稀疏的。该算法将样本数据带到MPS上、处理数据,然后将结果送离MPS。然后,该算法重新开始并且将下一组样本数据带到网上。
[0108]在图8中,任务62从MPS外部的源读取数据并将数据存储在变量“t”和“u”中。同时,任务62组合变量“t”和“u”并且将结果写入变量、”。同时,任务71将数据带离网并将其存储在变量“X”中。
[0109]在某个稍后的时间(图9),任务62结束读取变量“t”和“u”并且开始向任务12发送变量“¥”,在那里它将被进一步处理。任务12必须一直等到变量“w”和变量“X”都可用才能开始其下一个计算任务。一旦数据就绪,任务12就从它的输入“X”和“y”计算变量“sv” (图10),其中“sv”是共享变量。
[0110]在图11中,任务5作用于共享变量“SV”,以产生变量“z”。由于“SV”是共享的,因此在任务12(在图10中)与任务5之间没有显式通信,但是存在任务之间的同步。同时,任务62和71开始从离网(off mesh)读取下一数据样本(如图8中)。
[0111]在图12中,在任务62和71继续读取下一数据样本的时候,任务5将最终结果(变量“Z”)送离网。
[0112]图13-28-应用夺换
[0113]MPS可以具有同时运行多个软件应用的能力。图13示出了多个应用在其上执行的MPS 300的例子。为了执行应用,来自这从多个应用的指令和数据可以在MPS的不同存储器当中分布以供由与存储器关联的处理器执行。例如,用于其中一个应用的程序指令和数据可以存储在MPS的存储器的第一子集中。MPS的处理器的第一子集可以被耦合到存储器的第一子集并且可以执行用于该应用的指令和数据。类似地,用于另一应用的程序指令和数据可以存储在MPS的存储器的第二子集中以供处理器的第二子集执行,等等。
[0114]在一些实施例中,MPS的给定存储器可以与MPS的特定处理器关联或为其预留。在其它实施例中,给定的存储器可以由MPS的多于一个处理器共享。在一些实施例中,由给定处理器使用的存储器或存储器集合可以物理地位于该处理器附近,例如,使得该处理器可以直接访问存储器,而无需使用互连网络或与其它路由元件通信。
[0115]在图13中,椭圆的相对尺寸旨在说明被分配给应用的系统资源的相对量(例如,处理器和存储器的数量)。例如,应用5C由大椭圆表示,这指示这个应用比用小椭圆表示的应用5A使用更多系统处理器。而且,MPS 300内的椭圆的相对位置旨在说明应用在MPS上的物理位置,例如,由每个应用使用的处理器和存储器位于其中的MPS的相应物理区域。(在这个例子中,MPS被示为具有二维布局,但在其它实施例中,MPS的处理器和存储器可以根据不同的维度数被布置,例如,1D、3D、4D,等等。)
[0116]术语“应用交换”指的是除去一个或多个应用并且用一个或多个其它应用取代它们的过程。交换可以在其它应用继续执行的时候动态地发生。例如,图14示出了在应用5E已经被换出并且应用5K已经被换入以取代其之后的MPS 300。当应用5E和5K之间的交换发生时,其它应用5A、5B、5C、5D、5F、5G、5H和5J可以在MPS上继续执行。虽然应用5K被放在MPS中先前执行的应用5E所处的相同通用区域中,但是应用5K不必使用与应用5E完全相同的处理器和存储器资源。
[0117]系统也可以一次换入和/或换出多于一个应用。图15示出了其中来自图13的三个应用5E、5G、5H被两个应用5L和5J取代的例子。因此,被交换的应用的数目、形状(就物理位置而言)和大小(就所使用的处理器和存储器资源而言)不必相同。
[0118]对于为什么在各种实施例中期望从运行的MPS除去一个或多个应用并且用一个或多个其它应用取代其,存在各种原因。例如,应用程序可以执行一段时间,然后再没有什么可做很长一段时间。在这段时间里,该应用的资源可以被某个其它应用使用,由此提高整个系统的性能。另一个原因是,可能期望通过除去一个应用并用另一个应用取代其来改变的MPS的功能。例如,两个应用可以执行相同的通用功能,但是以稍微不同的途径执行。
[0119]如下面更详细描述的,应用交换可以包括动态加载和执行应用、停止正在运行的应用并且清除停止的应用的资源的操作。这些操作可以被设计为以这样一种方式被执行,使得在应用交换正在进行时,在该MPS上运行的其它应用不受干扰,因此其它应用可以继续执行其保留的正常操作。
[0120]在一些实施例中,应用交换可以由在本文被称为主任务或管理任务的特殊任务或应用进行管理。主任务可以从MPS内部或外部被触发,以启动应用交换。图16示出了其中主任务55被在MPS内部执行的应用6F触发以便启动应用交换的实施例。例如,应用6F可以包括响应于在该应用6F中发生的各种内部状态变化而触发应用交换的程序逻辑。图17示出了不同的实施例,其中主任务55被在位于MPS外部的通用处理器(GPP)260上执行系统控制器程序262触发,以启动应用交换。例如,系统控制器262可以响应于用户输入或者源自MPS外部的各种其它类型的触发器或条件当中任何一种而触发应用交换。在一些实施例中,主任务55可以在MPS外部执行。例如,图18示出了其中主任务55连同系统控制器262 —起在外部GPP 260上执行的实施例。
[0121]系统控制器262可以利用高级应用编程接口(API)编写。通过隐藏底层控制和通信层的细节,该API可以使系统控制器能够容易地从一个GPP移植到另一个。
[0122]主任务55可以从系统控制器262(或者从MPS中的其它应用)接收高级命令,诸如“换出应用X”或“换入应用Y”,并且,作为响应,可以启动并管理所请求的应用交换。
[0123]主任务的缺省行为可以是起动和停止应用,如由系统控制器262指示的。在一些情况下,主任务55可以与可交换应用通信以管理其执行状态。例如,主任务55可以请求可交换应用进入稳定状态,使得它可以被换出,或者主任务55可以被可交换应用通知它处于稳定状态并准备好被换出。这种通信可以通过可交换应用可以调用以便与主任务55通信的API来实现,反之亦然。
[0124]在各种实施例中,如以上所指出的,MPS可以具有不同的形状因子。在一些实施例中,MPS可以被实现为芯片上的集成电路。在一些实施例中,多个MPS芯片可以在系统中被使用。(一个或多个)芯片可以耦合到在所述(一个或多个)芯片外部的其它硬件设备,诸如一个或多个芯片外的处理器(例如,通用处理器)或者一个或多个芯片外存储器设备(例如,RAM、闪存存储器、盘驱动器,或者其它类型的存储器或存储
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1