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

文档序号:9602484阅读:来源:国知局
的电路可以包括硬件电路。类似地,为了描述的方便,各种单元/电路/部件可以被描述为执行一个或多个任务。这种描述应当被解释为包括短语“被配置为”。阐述被配置为执行一个或多个任务的单元/电路/部件明确地不是要对那个单元/电路/部件援引35U.S.C.§ 112第六段的解释。更一般而言,任何元件的阐述都明确地不是要对那个元件援引35U.S.C.§112第六段的解释,除非具体地阐述了语言“用于……的装置”或“用于……的步骤”。
【具体实施方式】
[0057]引入作为参考
[0058]其发明人为Michael Β.Doerr、William H.Hallidy、David A.Gibson 和 CraigM.Chase 的、标题为“Processing System With Interspersed Stall PropagatingProcessors And Communicat1n Elements” 的美国专利 N0.7,415,594 的全部内容通过引用被结合于此,就好像在本文完全被描述了一样。
[0059]于2011 年 10 月 14 日提交、其发明人为Michael B.Doerr、Carl S.Dobbs、MichaelB.Solka、Michael R Trocino 和 David A.Gibson 的、标题为 “Disabling Communicat1nin a Multiprocessor System”的美国专利申请序列N0.13/274, 138的全部内容通过引用被结合于此,就好像在本文完全被描述了一样。
[0060]术语
[0061]计算机系统一各种类型的计算或处理系统中的任何一种,包括个人计算机系统(PC)、大型机计算机系统、工作站、网络设备、互联网设备、个人数字助理(PDA)、网格计算系统或者其它设备或设备的组合。一般而言,术语“计算机系统”可被广泛地定义为涵盖具有执行来自存储介质的指令的至少一个处理器的任何设备(或设备的组合)。
[0062]软件应用-术语“软件应用”(在本文也被仅称为“应用”)旨在具有其普通含义的全部范围,并且包括可以被存储在一个或多个存储器中并且由一个或多个处理器执行的任何类型的程序指令、代码、脚本和/或数据,或它们的组合。示例性软件应用包括以基于文本的编程语言,诸如(:、0++、?0奶狀队如抑、汇编语言等编写的程序;图形程序(以图形化编程语言编写的程序);汇编语言程序;已被编译成机器语言的程序;脚本;以及其它类型的可执行软件。
[0063]应用可以在MPS的一个或多个处理器上执行并且可以从MPS的一个或多个本地存储器读出数据和/或向其写入数据。应用可以包括一个或多个计算任务,其中每个任务通常在MPS的单个处理器上运行并且可以与来自一个或多个应用的一个或多个任务共享该处理器。应用可以执行特定的功能或操作。如果应用包含多于一个任务,则这些任务可以彼此通信,以执行功能或操作。
[0064]MPS可以同时执行多个应用,例如,当应用彼此并行地执行时。应用可以彼此通信,并且由应用执行的相应功能或操作可以建立在彼此之上,以执行更大或更高级的功能或操作。
[0065]自动-指的是在没有直接指定或执行动作或操作的用户输入的情况下由计算机系统(例如,由计算机系统执行的软件)或设备(例如,电路、可编程硬件元件、ASIC,等等)执行的动作或操作。从而,术语“自动”与在用户提供输入来直接执行操作的情况下由用户手动执行或指定的操作形成对照。自动过程可由用户提供的输入启动,但是“自动”执行的后续动作不是用户指定的,即,不是在用户指定每个要执行的动作的情况下“手动”执行的。例如,通过选择每个字段并且提供指定信息的输入(例如,通过键入信息、选择复选框、单选选择,等等)来填写电子表单的用户是在手动填写该表单,虽然计算机系统必须响应于用户动作来更新表单。表单可由计算机系统自动填写,其中计算机系统(例如,在计算机系统上执行的软件)分析表单的字段并且在没有任何指定字段的答案的用户输入的情况下填写表单。如上所述,用户可调用表单的自动填写,但不参与表单的实际填写(例如,用户不是手动指定字段的答案,而是这些字段被自动地完成)。本说明书提供了响应于用户采取的动作而自动执行操作的各种例子。
[0066]详细描沐
[0067]描述了多处理器系统(MPS)以及用于动态交换在MPS上执行的应用的相关联方法的各种实施例。多处理器系统(MPS)可以被定义为包括多个处理元件(PE)的系统。MPS可以具有散置在PE当中的多个存储器,或者作为替代可以具有单个共享存储器。如本文所使用的,术语“处理元件”指的是处理器或CPU(中央处理单元)、微处理器或处理器核心。虽然MPS可以包括任何数量的两个或更多个PE,但是应当注意的是,一些MPS可以包括比通常只包括一个通用处理器(GPP)或几个GPP的传统计算机系统显著更多的PE。例如,一些MPS可以包括4、8、16,32或64个PE (其它例子包括,例如,几十、几百甚至上千个PE)。在一些实施例中,由于其用于低功耗目的的特殊构造,适于大型MPS的PE设备可以比由传统计算机系统使用的通用处理器更能量高效。
[0068]MPS还可以包括互连PE和/或存储器的互连网络(IN)。PE和存储器可以在一个、两个、三个或更多个维度,包括圆形维度(例如,循环或环),中互连。较高维度的MPS可以被映射到具有较少维度的制造介质上。例如,具有四维(4D)超立方体形状的MPS可以被映射到硅集成电路(1C)芯片的3D堆叠上、或单个2D芯片上,或者甚至1D的计算单元行。此夕卜,低维度的MPS可以被映射到更高维度的介质。例如,1D的计算单元行可以以蛇形形状布置到1C芯片的2D平面上,或盘绕到芯片的3D堆叠中。MPS可以包括多种类型的计算单元以及处理器和存储器的散置布置。在板的意义上还包括在MPS中的是MPS的层次结构或嵌套布置,尤其是由互连的1C芯片组成的MPS,其中1C芯片包含一个或多个还可以具有更深层次结构的MPS。
[0069]如本文所使用的,术语MPS既覆盖相对同质的处理器集合,又覆盖异质的通用集合,以及在所谓的“平台1C”芯片上集成的专用处理器。平台1C芯片可以包含几个到许多个处理器,通常与共享存储器和可能的片上网络互连。在MPS与“平台1C”芯片之间可以有或者可以没有区别。但是,“平台1C”芯片可以在市场上销售,以解决在特定垂直市场中的特定技术要求。
[0070]一般而言,用于MPS的存储器可以按层次组织,快速存储器在顶部,并且更慢但更高容量的存储器在层次结构中逐层向下。在MPS中,位于层次结构顶部的支持存储器可以位于每个PE附近。每个支持存储器可以专门只保持指令或只保持数据。用于特定PE的支持存储器可以是那个PE私有的或者与其它PE共享。
[0071]沿存储器层次再往下,可以有更大的共享存储器,诸如半导体同步动态随机存取存储器(SDRAM),其具有比与PE相邻的支持存储器大许多倍的位容量。沿存储器层次再往下,可以有其它类型的存储器,诸如闪存存储器、磁盘和光盘。
[0072]MPS可以用软件应用进行编程,以完成特定操作。每个应用可以由MPS中的一个或多个PE执行。多个应用常常可以彼此并发地在MPS上执行。应用可以一起执行并彼此通信,以执行实时操作。实时操作可以执行关于实时数据的输入和/或输出。例如,MPS可以经由输入信号接收实时数据。一个或多个应用可以处理输入信号,并且有可能产生具有基于所述处理被修改的或附加的实时数据的输出信号。
[0073]在系统执行期间的某个点,可以确定特定的应用可能不需要被执行。例如,该应用可以变成空闲并保持空闲很长一段时间,或者该应用的优先级可以比正在等待运行的另一个应用低,或者另一个应用可能需要访问正在由该应用使用的特定资源。因此,停止该正在运行的应用的执行并允许另一个应用使用新的可用处理器资源可能是有利的。这在本文中被称为“换出”先前运行的应用,和“换入”另一应用。
[0074]嵌入式系统通常需要保持活动并持续工作,并且通常不能被随意停止。一个例子是用于控制关键安全设备的系统,其中停止该系统可能会产生不安全的情况。作为另一个例子,其中嵌入式系统正在处理用于向用户呈现或传输的视频和/或音频,停止该嵌入式系统可以引起媒体数据中不期望的伪影。因此,在嵌入式系统中,应用通过其被停止和起动的过程可以需要被谨慎处理。本文所述的交换方法可以在不停止系统的情况下使得应用能够被交换。例如,当前在MPS上执行的、除被换入/换出的应用之外的其它应用可以在交换发生时继续执行。此外,该交换方法还可以使得交换能够快速进行,以确保系统的完整性并保持平稳运行。
[0075]本文所述的交换方法可以考虑特定MPS的资源限制。这种限制可以包括每个PE可用的指令存储器的量、每个PE可用的数据存储器的量、PE之间的通信带宽、PE与外部存储器之间的通信带宽,等等。例如,其中PE具有有限指令存储器的MPS可以要求新指令从外部储存器被移入指令存储器,以便初始化新的应用。因此,该交换方法可以对资源有限的MPS敏感。如下面详细描述的,该交换方法可以使第一应用(或第一应用集合)能够被安全地停止并且其处理资源被释放以作他用,并且还使得第二应用(或第二应用集合)能够快速且安全地开始在可用的处理资源上运行。
[0076]在交换过程期间,在嵌入式系统中执行的其它应用可以继续操作,并且可以不知道正在执行交换。此外,被换入或换出的应用可以自己不“知道交换”。换句话说,可交换应用可以不需要被特别构造。这可以有利地使可交换应用容易构造,例如,通过按常规方式作为普通应用来编写或开发它们,而无需包括特殊程序逻辑来实现交换。实现交换的程序代码可以在可交换应用本身外部的其它部件中实现。
[0077]图1A-3B嵌入式系统中动态可重新配置的MPS的例子
[0078]图1A-3B示出了可重新配置的MPS的几个例子,例如,其中MPS被配置为根据本文所述的技术动态地换入和换出应用。每个MPS可以是在设备中操作的嵌入式系统的一部分,以执行实时操作。应当注意的是,图1A-3B仅仅是例子,并且各种其它类型的嵌入式系统当中任何一种都可以使用本文所述的方法。
[0079]图1A示出了摄像机201,并且图1B示出了可被包括在摄像机201中或耦合到其的嵌入式系统202。如图2B中所示,嵌入式系统202包括从摄像机201接收视频信号并将其传递给MPS 203的相机链路接口 204。在这个例子中,MPS 203包括基本系统208,该基本系统208接收原始视频流并执行基本处理,诸如去马赛克和色彩空间转换,以便将原始相机数据变换成可被下游过滤器消费的数据。基本系统208可以将变换后的数据提供给一个或多个图像处理应用209。图像处理应用可以包括至少两个应用,其中每个应用被配置为过滤或另外地以各种方式当中任何一种处理视频数据。图像处理应用可被动态地换入和换出,以改变视频信号被处理的方式。作为一个例子,系统可以最初执行对信号执行边缘过滤算法的边缘过滤器应用。响应于用户输入或其它条件,边缘过滤器应用可以与对信号执行中值过滤算法的中值过滤器应用动态地交换。当前图像处理应用的结果可以与由基本系统208产生的原始数据通过“组合视频流”方框207组合,例如,在分割屏幕显示器中。然后,组合的信号可以经由数字视频接口(DVI)方框206被传递到耦合到显示设备的DVI接口 210。因此,交换边缘过滤器应用和中值过滤器应用的结果可以实时地在显示设备上查看。视频流也可以被传递到通用处理器(GPP)211。在GPP211上执行的程序还可以向MPS提供控制信号,以指示哪个过滤器应当在MPS 203上执行。
[0080]图2A示出了蜂窝电话215,并且图2B和2C示出了在该电话中被使用的MPS 216。在图2B中所示的MPS的配置中,MPS当前正在执行蜂窝搜索应用218。该电话使用长期演进(LTE)4G蜂窝电信无线电接口技术标准。根据LTE标准,电话首先利用蜂窝搜索应用218向本地蜂窝基站注册。一旦注册,蜂窝搜索应用218就不再被需要。因此,蜂窝搜索应用218可以被动态地用不同的应用,例如,图2C中所示的共享链路数据处理应用219,取代。前端应用217执行重新采样和上/下变频,并且在这种交换发生的时候保持在MPS上执行。如果MPS足够大(例如,100+处理器),则蜂窝搜索和共享链路数据处理应用的一部分可以在任何时候都保持被加载,例如,而不是在它们被交换时完全装载和卸载它们。
[0081]在这个例子中,用于从蜂窝搜索应用切换到共享链路数据处理应用所期望的时间间隔,以及在需要重新注册的情况下反过来的所期望的时间间隔,为4ms。如果切换太慢,则介质访问控制器221回到重新注册。蜂窝搜索应用并行地执行许多CRC计算,并且在发现真实信号时,电话锁定到那个信号上。当介质访问控制器完成注册过程并请求共享链路中的数据时隙时,存在短的间隔。介质访问控制器被设计为预测当前发送的数据,以便适当地预留时隙。通常,它预测4个子帧,或大约4毫秒,并且因此,这是用于切换到共享链路数据处理应用的期望间隔。
[0082]图3A示出了无线发送器/接收器设备230。设备230可以替代地仅仅是接收器设备,诸如无线电。图3B示出了可以由无线设备230执行的通信算法。顶部示出了该算法的发送部分231,并且底部示出了该算法的接收部分232。调制器组235执行调制算法,并且解调器组236执行解调算法。调制器组235和有可能还有算法的发送部分231的其它部分可以在使用多个调制器应用的MPS上实现。在任何给定的时间,只有一个调制器应用可以被加载并执行。MPS可以被配置为用不同的应用动态地交换当前加载的调制器应用,以改变所使用的特定调制算法。不同的解调应用可以以类似的方式被换入和换出,以动态地改变由解调器组236执行的解调算法。对理解本公开内容不必要的通信算法的部分从本描述中被省略了。
[0083]应当注意的是,图1A-3B是作为其中可以使用被配置为动态交换软件应用的MPS的设备的例子给出的。在各种实施例中,诸如本文所述的MPS可以在任何类型的设备或系统中使用。而且,被换入和换出的应用可以是任何类型的软件应用,例如,以各种方式中任何一种处理实时数据或者执行其它各种功能当中任何一种以便实现由设备或系统执行的实时操作或其它操作的应用。
[0084]图4-12示例MPS体系架构
[0085]在各种实施例中,本文所述的应用交换技术可用在各种MPS当中任何一种上。MPS可以具有任何期望的体系架构。图4-6示出了根据一种实施例的用于MPS的示例体系架构。这种MPS体系架构是在美国专利N0.7,415,594中公开的HyperX体系架构的例子。这种体系架构可以适于实现具有同时运行多个应用的能力的可编程的、非常低功率、低成本的多处理器嵌入式计算机系统(在这里被体现为单个集成电路芯片)。下面对HyperX?体系架构的描述仅仅是例子,并且各种其它MPS体系结构当中任何一种都可以根据需要被使用。
[0086]在图4中所示的实施例中,MPS 10包括多个表示为方块的处理元件(PE)。MPS还包括多个表示为圆圈的数据存储器路由器(DMR)。DMR充当用于相邻的PE的支持存储器,以及通信路由器或交换机节点。DMR之间的线说明了实现互连网络(IN)的DMR到DMR通信信道或链路。DMR可以与该链路一起使用,以形成PE之间以及PE和将MPS耦合到外部设备的I/O端口之间的通信路径。在每个PE,所传送的任何信息都可以被缓存在相邻的DMR的存储器中。如本文所使用的,PE也可以被称为PE节
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1