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

文档序号:9602484阅读:330来源:国知局
多处理器嵌入式系统上应用的动态重新配置的制作方法
【技术领域】
[0001]本发明涉及多处理器系统,并且更具体而言涉及在多处理器系统(MPS)上执行的软件应用的动态重新配置。
【背景技术】
[0002]嵌入式系统可以被描述为为特定功能而设计的计算机系统,常常具有实时计算约束。物理上,嵌入式系统的范围从便携式消费者电子设备,诸如视频和/或音频设备,到大的固定装置,诸如交通灯、工厂控制器,以及在很大程度上复杂的系统,诸如混合动力车辆和航空电子设备。嵌入式系统可以接收输入信号并实时地处理信号,以执行特定的实时操作。嵌入式系统可以替代地(或另外地)执行实时处理并生成输出信号。
[0003]由嵌入式系统执行的处理可以以不同的方式实现。一些设备使用现场可编程门阵列(FPGA)或其它可编程逻辑设备。FPGA是在无需使用存储的命令式软件编程方法的情况下实现复杂系统的一种手段。相反,这些设备利用硬件描述语言,诸如VHDL或Verilog,来配置,这使得用户能够描述互连的电气部件集合。通过在芯片被初始化时编程熔丝或设置配置存储器位置,FPGA实现这种互连设计。
[0004]嵌入式系统还可以利用一个或多个处理器或数字信号处理(DSP)引擎来实现。例如,传统的粗粒度可编程嵌入式系统可以有少量的处理器或DSP引擎,诸如两个或四个处理器核心以及固定的或可编程的特定于应用的逻辑功能。这些系统通常具有大的数据和指令存储器或者利用虚拟存储器方案来扩展可被寻址的数据和指令存储器的范围。
[0005]在一些情况下,可能期望在运行时重新编程嵌入式系统,例如,重新编程在不停止系统的情况下发生。但是,基于FPGA的和传统的基于处理器的嵌入式系统都有使这种重新编程成问题的缺点。例如,虽然一些FPGA设备可以具有用于在运行时重新配置FPGA的特定物理区域的有限能力,但是一般难以在运行时动态地重新编程FPGA来执行不同的应用。例如,FPGA重新配置能力可能不是以逻辑(或应用)为基础,而是基于逻辑设计的哪一部分被映射到芯片的特定物理部分。要花费很大的努力在FPGA上对齐设计的逻辑和物理映射,但这可能会造成实现非常低效。
[0006]在传统的基于处理器的系统中,处理能力可以通过众所周知的多任务技术在不同的应用之间共享。在这种方法中,两个或更多个应用可以以交织的方式同时在同一处理器上运行。处理器动态地管理多个应用的状态。但是,这会引起性能下降并且注入不确定的时间延迟,对于实时嵌入式系统,这可能是无法接受的。
[0007]因此,可能期望提供一种实时嵌入式系统,该系统提供,例如通过在不停止系统执行的情况下动态地交换应用,在运行时执行系统的重新编程的改进能力。

【发明内容】

[0008]公开了多处理器系统以及用于交换在该多处理器系统上执行的应用的相关联方法的各种实施例。多处理器系统可以包括多个处理器和散置在处理器当中的多个存储器。多个应用可以在多处理器系统上加载。加载应用可以包括在多个存储器中的不同存储器当中分布来自多个应用的指令和数据,以供由关联的处理器执行。所述多个应用可以在多处理器系统上执行。在一些实施例中,所述多个应用可以一起执行并且彼此通信,以执行实时操作。例如,所述多个应用可以处理实时数据。实时操作可以执行关于实时数据的输入或输出当中至少其一。
[0009]所述多个应用可以包括第一应用和多个其它应用。根据一些实施例,第一应用可以用第二应用交换,其中该第二应用可以不是先前已被加载在多处理器系统上并执行的多个应用之一。可以在不停止所述多个其它应用的同时执行交换。换句话说,所述多个其它应用可以在交换期间继续执行,以执行实时操作和处理实时数据。交换之后,所述多个其它应用可以继续与第二应用一起执行,并且所述多个其它应用的至少一个子集可以与第二应用通信,以执行实时操作通信和处理实时数据。所述多个其应用可以不知道交换正在发生。
[0010]在交换之前,第一应用可以在多个处理器的第一子集上执行。在一些实施例中,交换可以包括在多个处理器的第一子集上停止第一应用,将第一应用与在多处理器系统外部的一个或多个外部资源解耦,以及可选地保存第一应用的状态。交换还可以包括,在第二应用中的交换之前,复位多个处理器的第一子集,以便将多个处理器的第一子集置于已知状态。交换还可以包括解耦第一应用与一个或多个其它应用的通信。
[0011]然后,交换可以涉及将第二应用加载到与多个处理器的第一子集相关联的存储器中。在加载第二应用之后,第二应用可以被耦合到一个或多个外部资源,这些外部资源可以是第一应用之前耦合到的相同的一个或多个外部资源,或者可以是不同的外部资源。在第二应用已被加载之后,交换还可以包括耦合第二应用与一个或多个其它应用的通信,这些其它应用可以是第一应用先前与其通信的相同的应用,或者可以是不同的应用。
[0012]在一些实施例中,一个或多个第一缓冲存储器可以耦合在多个处理器的第一子集与多个处理器的其它子集之间。解耦第一应用的通信可以包括控制一个或多个第一缓冲存储器,以启用解耦,例如,通过更改由第一缓冲存储器执行的、到和/或来自第一应用的通
?目Ο
[0013]在一些实施例中,第一应用可以在第一缓冲存储器的下游侧,并且更改由第一缓冲存储器执行的通信可以包括在交换期间停止第一缓冲存储器从发送应用接受数据。在一些实施例中,发送应用可以响应于第一缓冲存储器停止从发送应用接收数据而暂停。在其它实施例中,更改可以包括配置第一缓冲存储器在交换期间继续从发送应用接受数据并且重写先前存储且未发送的数据。
[0014]在其它实施例中,第一应用可以在第一缓冲存储器的上游侧,并且更改由第一缓冲存储器执行的通信可以包括在交换期间停止第一缓冲存储器向接收应用转发数据。在一些实施例中,一旦没有来自第一应用的更多进入的数据,第一缓冲存储器就可以停止向接收应用转发数据。在其它实施例中,更改可以包括配置第一缓冲存储器在交换期间重复地将其数据,例如先前从第一应用接收并存储在第一缓冲存储器中的数据,发送到接收应用两次或更多次。因此,相同的数据可以在交换期间被重复地发送到接收应用。
[0015]在一些实施例中,第一应用可以经由第一缓冲存储器传送结构化数据元素。每个数据元素可以具有开始边界和结束边界。第一缓冲存储器可以在第一数据元素的传输已被启动之后接收停止数据通信的请求。在一些实施例中,第一缓冲存储器可以继续第一数据元素的传输,直到第一数据元素的结束边界。
[0016]当第二应用被换入时,通过配置一个或多个缓冲存储器,第二应用可以被耦合到它与其通信的(一个或多个)应用。例如,如果第二应用和第一应用与相同的(一个或多个)其它应用通信,则通过控制参与解耦第一应用与(一个或多个)其它应用的相同的一个或多个第一缓冲存储器,第二应用可以耦合到这些(一个或多个)其它应用。
[0017]例如,第一应用可以已经在给定缓冲存储器的下游侧,并且该缓冲存储器可以已经在第一应用被换出时被停止从发送应用接受数据。当第二应用被换入时,缓冲存储器可以被放回接受数据的模式。因此,当开始第二应用的执行时,由发送应用发送的数据现在可以被发送到第二应用,而不是先前从发送应用接收数据的第一应用。
[0018]作为另一个例子,第一应用可以已经在给定缓冲存储器的上游侧,并且该缓冲存储器可以已经在第一应用被换出时被停止向接收应用转发数据。当第二应用被换入时,缓冲存储器可以被放回转发数据的模式。因此,当开始第二应用的执行时,接收应用现在可以从第二应用,而不是先前将数据发送到接收应用的第一应用,接收数据。
[0019]第二应用可以在先前被用来执行第一应用的多处理器系统的处理器的同一子集上执行,或者可以在处理器的不同子集上执行,或者在相同和不同处理器的组合上执行。交换可以包括将第二应用的程序指令和/或数据加载到与执行第二应用的处理器子集相关联的一个或多个存储器中。在一些实施例中,第二应用可以从外部存储器设备,诸如RAM设备、闪存存储器设备或者在多处理器系统外部的其它存储器设备,被加载到一个或多个存储器中。在其它实施例中,第二应用可以从由多处理器系统外部的外部处理器发送的指令流被加载到一个或多个存储器中。
[0020]将第二应用的程序指令和数据加载到一个或多个存储器中可以包括沿两条或更多条交换路线通过多处理器系统发送指令和数据(通信路线是物理地实现多处理器系统中的通信的一种手段)。每条交换路线可以与特定存储器相关联并且可以被用来将指令/数据加载到该存储器中。在一些实施例中,这两条或更多条交换路线可以共享共同的第一部分,被称为交换路线的主干部分。该主干部分可以包括从多处理器系统的I/O端口到多处理器系统内的端点的路线。交换路线的第二部分可以将主干路线的端点连接到被第二应用使用的目标存储设备。
[0021]在一些实施例中,第一应用可以响应于从在多处理器系统上执行的其中一个其它应用接收信息而用第二应用交换,例如,其中该信息指示第一应用应当被换出。在其它实施例中,交换可以包括响应于接收到指示第一应用应当被换出的外部信号而换出第一应用。外部信号可以从多处理器系统的外部接收。例如,在一些实施例中,外部信号可以从在多处理器系统外部的处理器上执行的系统控制器程序接收。
[0022]在一些实施例中,主任务或管理任务可以连同多个应用一起在多处理器系统上执行。管理任务可以在多处理器系统的一个或多个处理器上执行,并且可以被配置为管理用第二应用交换第一应用。
[0023]在一些实施例,第二应用可以包括多个可执行任务,并且用第二应用交换第一应用可以包括配置每个所述任务由多处理器系统的不同处理器执行。
[0024]在一些实施例中,用第二应用交换第一应用可以包括同时从多处理器系统外部的两个或更多个源存储器设备向多处理器系统发送两个或更多个指令流。每个指令流可以包括第二应用的程序指令。
[0025]在一些实施例中,交换可以包括同时用多个第二应用交换第一应用。多个第二应用可以同时从不同的源存储设备被加载到多处理器系统中。
[0026]在进一步的实施例中,程序指令可以被存储在计算机可读存储介质上。程序指令可以由多处理器系统执行,以便在多处理器系统上加载多个应用。多处理器系统可以包括多个处理器和散置在处理器当中的多个存储器。加载可以包括在多个存储器中的不同存储器当中分布来自多个应用的指令和数据以供关联的处理器执行。
[0027]程序指令还可以由多处理器系统执行,以启动多个应用在多处理器系统上的执行。多个应用可以一起执行并且彼此通信,以执行实时操作。实时操作可以执行关于实时数据的输入或输出当中至少其一。多个应用可以处理实时数据。
[0028]多个应用可以包括第一应用和多个其它应用。程序指令还可以由多处理器系统执行,以便用第二应用交换第一应用,其中第二应用不是先前被加载在多处理器系统上并执行的多个应用之一。可以在不停止所述多个其它应用的情况下执行交换。换句话说,所述多个其它应用可以在交换期间继续执行,以执行实时操作和处理实时数据。在交换之后,所述多个其它应用可以继续与第二应用一起执行。所述多个其它应用的至少一个子集可以与第二应用通信,以执行实时操作和处理实时数据。
[0029]根据一些实施例,多处理器系统可以包括:多个处理器;散置在处理器当中的多个存储器;以及互连多个处理器和散置在处理器当中的多个存储器的通信架构。通信架构可以包括散置在多个处理器的至少一个子集当中的多个缓冲存储器。多个缓冲存储器可以可配置为在多处理器系统中执行的应用之间传送数据。在多个应用在多处理器系统上被执行以便执行包括实时数据的接收和/或发送以及实时数据的处理的实时操作的过程中,多个缓冲存储器可以可配置为在用第二应用交换第一应用期间中断和恢复活动应用之间的连接。
[0030]在一些实施例中,多处理器系统还可以包括耦合在多个处理器之间的多个数据存储器路由器(DMR)。DMR可以包括散置在处理器当中的多个存储器。
【附图说明】
[0031 ] 图1A示出了示例摄像机;
[0032]图1B示出了可被包括在摄像机中或耦合到其的嵌入式系统,其中该嵌入式系统利用配置为具有可交换应用的多处理器系统(MPS);
[0033]图2A示出了示例性蜂窝电话;
[0034]图2B和2C示出了用在电话中的MPS,其中该MPS配置为具有可交换应用;
[0035]图3A示出了无线发送器/接收机设备;
[0036]图3B示出了可以由无线设备执行的通信算法,其中该通信算法是利用在MPS上执行的可交换应用实现的;
[0037]图4-6示出了根据一种实施例、用于MPS的HyperX?体系架构的例子;
[0038]图7-12示出了根据一种实施例、在MPS上执行的算法的示例踪迹;
[0039]图13示出了多个应用在其上执行的MPS的例子;
[0040]图14示出了在应用被换出并且另一个应用被换入以取代其之后的图13的MPS ;
[0041]图15示出了在三个应用被其它两个应用取代之后的图13的MPS ;
[0042]图16示出了其中主任务被触发以便通过在MPS内部执行的应用来启动应用交换的实施例;
[0043]图17示出了其中主任务被触发以便通过在位于MPS外部的通用处理器(GPP)上执行的系统控制器程序来启动应用交换的不同实施例;
[0044]图18示出了其中主任务与系统控制器一起在外部GPP上执行的实施例;
[0045]图19示出了在从外部存储器设备换入应用时所涉及的资源;
[0046]图20示出了备选实施例,其中,通过从外部处理器向MPS发送指令和数据流,应用代码被加载到MPS中;
[0047]图21示出了其中两个应用同时从两个不同的外部RAM设备被换入MPS的实施例;
[0048]图22示出了换入和换出应用的生命周期;
[0049]图23示出了换入和换出简单应用的生命周期;
[0050]图24示出了用于生成实现应用交换所需的可执行软件代码的一组软件工具;
[0051]图25示出了从MPS上的一个应用配置到该MPS上的另一应用配置的过渡;
[0052]图26示出了可以在系统的开发阶段被用来构造互不干扰的应用集的开发工作流;
[0053]图27示出了其中多条交换路线被用来换入应用的例子;及
[0054]图28示出了其中可交换应用与其它应用通过经由隔离器传递数据来通信的例子。
[0055]虽然本公开内容容许各种修改和备选形式,但是其具体实施例作为例子在附图中示出并且将在本文中详细描述。但是,应当理解,附图和对其的详细描述不是要将本公开内容限定到所示出的特定形式,相反,其意图是覆盖所有属于由所附权利要求所限定的本公开内容的精神和范围之内的修改、等同物和备选方案。本文所使用的标题仅用于组织目的,并且不意味着被用来限制本描述的范围。如贯穿本说明书所使用的,词“可以”在许可的意义(即,意味着有可能)而不是强制的意义(即,意味着必须)上被使用。类似地,词“包括”或“包含”的意思是包括,但不限于。
[0056]各种单元、电路或其它部件可以被描述为“被配置为”执行一个或多个任务。在这种语境下,“被配置为”是一般地指“具有”在操作期间执行一个或多个任务的“电路”的“结构”的广义阐述。照此,即使当单元/电路/部件当前不执行任务时,单元/电路/部件也可以被配置为执行该任务。一般而言,构成对应于“被配置为”的结构
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1