确定性执行和同步包括执行系统任务的多个处理核心的信息处理系统的方法

文档序号:6595516阅读:291来源:国知局
专利名称:确定性执行和同步包括执行系统任务的多个处理核心的信息处理系统的方法
技术领域
本发明涉及用于确定性执行和同步包括执行系统任务的多个处理核心的信息处理系统的方法。本发明能够特别地应用于微电子领域或应用于具备高计算能力的嵌入式电子系统领域。
背景技术
半导体工业正面临着令人失望事实不再有任何可靠的途径来显著地增加处理器的性能水平,至少在单处理器级别上是不可能的。只有使用多个并行操作的处理器的系统才能形成令人感到期望的途径来增加这些系统的计算能力。实际上,20世纪60年代进行的研究表明,并行计算系统的计算能力与效率之间的比率可能远远高于顺序系统。如今,在诸如多媒体、通信或实时处理系统等领域中的新应用针对消耗的功率水平和受控的表面面积提出越来越高的计算能力。由于不能增加单核心的处理能力,所以唯一的解决方案是增加核心的数量并使这些核心并行操作,从而给出了新的架构概念,即片上并行系统。在处理器的相当具体的上下文(即嵌入式系统)中,这种增加同一芯片上的执行核心的数量的趋势是非常明显的。在介质方面,应当趋向于引入或者甚至标准化具有几十甚至几百个执行核心的系统。这些系统中值得引用的是片上多处理器系统,通常用首字母缩写“MPSoC”来表示,其表示“片上多处理器系统”。然而,并行系统比顺序系统更难以编程和调试。应用程序的不断增加的复杂度使得这些编程和调试更加困难。在嵌入式应用中,期望集成越来越多的功能以及要被处理的数据量的不断增加也增加了这些困难。例如,蜂窝电话与具有多媒体、定位甚至游戏功能的电信功能相关联。这产生了嵌入式系统,在该嵌入式系统中,密集的计算任务与控制占主导的任务一起运行,使得应用程序的各种元件之间具有非常强的交互。这样,响应于相关联的实时约束,对不同核心的处理功能进行同步以最佳地管理高效的并行性是关键的性能和能力因素。在有效地操作嵌入式系统的并行架构方面,这是主要的困难。不得不从三个方面来看待该困难,即不确定性的掌握、通信的掌握以及控制的掌握。一旦已经识别、从应用程序中提取并在程序中表示了潜在的并行性,则接下来关键是能够以给定的硬件架构来有效地实施这种并行性。例如,在MPSoC中,为了从程序员进行的提取应用程序并行性的工作中获得最大利益,必须最佳地向芯片的所有资源分发众多的处理序列,虽然这些序列通过数据相依性或执行控制相依性而相互关联。下文中,这些序列将被称为“执行任务”执行任务与处理核心上处理功能的执行相关。应当指出的是,软件技术人员也将其称为“线程”。在本申请的剩余部分中,我们将不做区分,并且术语“任务”将仅指代执行任务。为了对MPSoC 上的这些任务的执行进行组织以及为了方便开发人员的工作,在纯粹的应用程序部分以及其他所谓的“系统”部分中构建针对它们的执行的软件支持,它们的功能是用于抽象底层硬件的资源。为了最好地利用由任务表示并在MPSoC中可用的并行性,一方面有必要研究要在各种核心上执行的处理功能的选择方式,另一方面有必要研究使它们一起操作的方式,即如何在硬件上组织控制任务执行的基本软件。因此,同样地,如同程序表示应用程序并行性的潜在性那样,关键是找到一种方式来通过适当地控制基本软件级(通常称为“内核”) 上的任务来表示架构并行性的潜在性。该研究应当考虑会不利地影响很好地使用架构的潜在并行性的所有情况。首先,存在着受访问关键共享资源(诸如中央存储器、网络、通信总线或任务管理器)限制的风险。还存在着不能足够好地管理任务之间的相依性的风险,尤其是在所述任务具有动态特性时。最后,存在着不能控制并行执行的不确定性从而使得程序调试复杂且困难的风险。处理该问题的一个标准方式是分层软件方法,在该方法中,至少能够将应用层与内核相区分,其中,应用层包括要被执行的任务,所述内核抽象硬件资源并管理机器上的任务的有效执行。通常内核自身被组织成两部分,一部分称为“微内核”,其执行与硬件直接相关的所有系统功能(诸如管理寄存器、计时器和外围设备等),以及另一部分在本文中被称做“系统层”,其负责任务间通信和其他的高级任务控制方面。该研究应当达到组织内核这样的顶峰,其中,对内核进行组织定义了选择处理核心的方式以及使处理核心以协调和高效的方式进行操作的方式。这构成了微电子学和嵌入式软件行业当前面临的主要挑战之一,并且本发明为此提供了解决方案。现有的解决方案建议对称地使用处理核心来执行内核。这在“对称多处理”(SMP) 类型的结构中得到实施。例如,其可以包括使Linux或Windows (注册商标)类型的相同的内核在每个不同的处理核心上执行。然而,主要的缺点在于,Linux或Windows (注册商标) 类型的内核不能在两个不同的核心上以实际上同时的方式被执行,至少对于内核的关键功能是如此的。因此,并行性被局限于内核的非关键性功能。这正是本发明建议通过将内核的一些关键功能分发到多个处理核心上来解决的其中一个技术问题。还存在着所谓的“划分”解决方案,其建议每个处理核心应当专用于相互未意识的活动。然后通过共享存储空间来进行交换。例如,标题为“Real-time threading service for partitioned multiprocessor systems” 的、专利申请号为 W0/2007/038011 的专利描述了如何使核心专用于执行实时任务,从而为在另一核心上执行的非实时内核执行的应用程序提供结果。类似地,存在着其他解决方案,其中,每个核心执行使其专用于特定类型的处理功能(逻辑计算、密集计算、用网络进行输入/输出中断等)的内核。典型的示例是使一个核心专用于计算而使其他核心专用于处理中断以为外围输入/输出服务。在这种典型情况中,计算核心的内核能够执行对源自由核心使其可用的输入/输出的异步数据的计算,其中在该核心中对中断的采取进行管理。中断对应于程序外部事件的发生,所述事件触发了当前任务的执行的暂停,以便执行另一个更高优先级的任务(这种执行上下文的改变称为切换)。外部事件可以是真实或模拟时钟的超前,更高优先级的任务有可能由计时器触发。这显然是受时间限制的实时任务的情况;或者“由时间触发”(TT)假设实时任务必须在给定时间之前结束,其也必须在给定时间之前开始,这依赖于任务的执行持续时间。 实时任务由计时器触发,该计时器在物理上由石英晶体振荡器来速率,因此形成了真实的时钟。外部事件也可以是数据传递的完成,则更高优先级的任务被称为经历输入-输出中断的“事件触发”(ET)。在这种类型的相对传统的设计中,采取中断的核心和计算核心弱耦合。这种类型的解决方案类似于具有协处理器的架构,其中,协处理器的协作依赖于数据和相关联信号收集的提供。这种解决方案的一个优点在于,其为快速输入/输出提供了良好的响应性,也就是说,其能够进行相关的基本计算而不必以任何方式来干扰计算核心上的处理功能的调度。当要被执行的任务彼此独立时该方法是有效的,也就是说,当他们需要很少或不需要数据交换和/或同步时。然而,当输入/输出要求与计算的强同步时或当存在着具有不同速率的多个输入/输出时,这种类型的解决方案不是非常有效。这又成为本发明建议解决的一个技术问题。另一现有的解决方案的种类由“主-从”类型的内核架构构成(如标题为"Coordination and synchronization of an asymmetric, single-chip, dual multiprocessor”的美国专利申请号US005978838A中提到的)。一个核心被指定为“主”核心并负责管理所有的系统调用和所有的中断,而其他的核心被指定为“从”核心并且仅执行应用任务的算法部分。因此,主核心完全负责由其他从核心执行的处理功能的控制和分配 它将从核心的执行同步。其优点在于,简化了由主处理器完全管理的同步问题。该架构的主要缺点在于,其具有很强的集中特性,当涉及大量的任务乃至核心时会导致主处理器被争用的问题,从而其整体性能水平快速地被主处理器的性能所限制。已经例如在Advances in Computer Systems Architecture (vol. 4697)中公开的标题为"An effective design of master/slave operating system architecture for multiprocessor embedded systems”、作者为Minyeol Seo等人的文章中提出了改进。该公开的目的在于优化调度问题。他们建议在每个核心上分层次地组织调度策略,而不必以任何方式来释放主核心对所有输入/输出以及所有系统调用的处理,尤其是与任务间通信相关的那些处理。为了实现这个目的,他们定义了内核的称为“硬件抽象层”的部分,该“硬件抽象层”被复制在每个核心上并且管理核心之间的通信(“处理器间通信”或IPC)。用于对核心进行同步的IPC机制是以远程过程调用为基础而实施的机制。现在,这种客户端-服务器分配功能调用机制引起了堵塞当核心上的任务涉及发送信息以引起另一任务的注意时,其在主核心上继续调用远程系统功能。该调用核心然后被堵塞直到来自该功能的返回调用,从而在该时间段期间阻止任何其他并行执行。类似地,如果由于一个或其他原因主核心被堵塞了,那么所有的从核心也被堵塞,反之亦然。因此,这种解决方案仍然是太集中化了。这也成为本发明建议解决的一个技术问题。最后,还存在着针对单核心处理器的内核组织建议,例如在专利EP 1337 919B1 中所述的,其公开了在微内核中和系统层中组织内核,从而能够在单核心上协调任务的确定性执行。该专利没有指示如何在MPSoC架构的不同核心之间继续有利地划分内核。这是本发明的目的之一。

发明内容
显然,本发明的目的是通过建议在处理核心上优化地划分微内核来为上述缺点提供解决方案。因此,以速率和时间管理功能的优化分发为基础来分配系统功能,以便每个核心仅处理微内核的一些处理功能。然后,一个核心专用于执行任务,而第二个核心则充当第一核心的部分控制器和中断管理器。本发明建议将微内核组织成两个不同的且互补的部分,即 面向控制的部分,其处理对与时间基准的维持和调度列表的更新相关的系统中断的捕获;以及 面向计算的部分,其与提供时间速率任务的执行相关。然后,这部分的微内核根据由“控制”部分实施和驱动的调度策略来处理任务的切换。微内核的这种构建便于源自以下各项的任务的有效共存 来自ET(“事件触发”)绝缘区,该ET绝缘区集聚了由中断触发的输入-输出活动,中断调节的任务在该ET绝缘区中被执行;眷来自TT( “时间触发”)绝缘区,该TT绝缘区集聚了时间速率的活动,实时任务在该TT绝缘区中被执行。因此,TT绝缘区被分配给面向计算的部分,而微内核的专用于采取系统中断的面向控制的部分还能够处理ET绝缘区的输入/输出应用中断的捕获和处理。这提供了将这两个绝缘区划分在不同的核心上的优点,但是也提供了将最大的计算资源授予给源自TT绝缘区的任务的优点,由于ET绝缘区的任务的激活,所以这些任务未遭遇切换。下文中,将微内核的“计算”部分称为“mN-TT微内核”或“mN-TT部分”,而将微内核的“控制”部分称为 "mN-ET微内核”或“mN-ET部分”。为此,本发明的主题显然是包括两个处理核心的信息处理系统。该系统执行的应用程序包括应用任务的执行和系统任务的执行,该系统包括执行系统任务的微内核,该系统任务与硬件资源直接相关,其中-第一核心A上的微内核的计算部分mN-TT执行与切换核心A上的任务相关的系统任务,包括为每个任务更新表明该任务是否是可执行的状态,所述状态被包括在与所述任务相关联的执行上下文中,以及为所述任务收集执行数据,所述状态能够为-表明任务就绪的值;-表明任务空闲的值;-表明任务错误的值;-第二核心0上的微内核的控制部分mN-ET执行由输入/输出中断触发的应用任务以及执行与核心A上的任务分配顺序的控制相关的系统任务,该系统任务包括管理-就绪任务的有序列表,和/或;-空闲任务的有序列表,和/或;-错误任务的列表;该处理系统的特征在于,由核心A执行的与切换任务相关的系统任务包括在每个任务的执行上下文中更新-最早的执行开始限制时间和/或最后的执行结束限制时间;-剩余执行时间配额;以便核心0以使得能够根据其执行限制时间和根据其执行时间配额来执行每个任务的顺序对就绪任务列表中的任务进行排序。有利地,由微内核的mN-TT部分执行的与任务切换相关的系统任务包括,在接收到由核心A执行的中断时-从就绪任务中加载任务的执行上下文;-触发所述任务的执行。有利地,在接收到中断时,微内核的mN-TT部分能够将第一任务的执行上下文加载到就绪任务的列表中。如果需要,能够用由微内核的mN-ET部分实施的计时器来生成中断。可以用石英晶体时钟来为该计时器提供速率,以便触发由微内核的mN-TT部分执行的实时应用任务。有利地,每个核心都能够执行与对其来说特定的任务之间的通信相关的系统任务。有利地,该系统可以包括共享存储器空间和一组中断以便所述核心进行交互。在一个实施方式中,所述核心可以是不同类型的处理器。处理器可实施在芯片上。本发明的其他主要优点在于,对微内核的划分使得计算核心能够释放快速输入-输出条件中断处理功能和某些系统处理功能,从而避免在计算任务与条件中断处理功能之间频繁地改变上下文。通过被实施在芯片上,可获得的性能水平得到了改善,同时确保了多核心硬件架构上的不同获取或计算处理功能之间的高级安全性。本发明还能够使得时间速率计算处理功能和与事件速率输入-输出相关联的例程有效地共存。


从下面根据附图的描述中,本发明的其他特征和优点将变得显而易见,其中图1通过时序图示出了根据本发明的在两个处理核心上的示例性地分发微内核的活动;图2通过功能框图示出了根据本发明的针对微内核的mN-ET部分的中断的示例;图3通过功能框图示出了根据本发明的来自微内核的mN-ET部分并针对微内核的 mN-TT部分的软件中断的示例;图4通过功能框图示出了根据本发明的针对微内核的mN-ET部分的输入-输出中断的示例;图5通过功能框图示出了根据本发明的来自针对微内核的mN-TT部分的mN-TT部分的软件中断的示例;图6通过时序图示出了根据本发明的并行双核心的操作场景的示例。
具体实施例方式根据本发明,微内核的mN-ET部分和mN-TT部分共享一组针对就绪/空闲/错误任务的调度列表,其中,该列表内的顺序由mN-ET部分来维护,而该列表中的每个元素的内容则由mN-TT部分来维护。mN-TT微内核直接查阅该列表,而不需要本地调度。mN-TT和 mN-ET部分的处理功能还通过软件中断产生异步交互。实际上,只要其中一个部分已经完成了对共享信息的状态进行修改的系统处理功能,就针对另一部分生成软件中断以向其宣布该事实。然后,发送方继续它的执行,以并行执行剩余系统或应用任务。因此,当mN-ET部分修改了就绪任务的列表时,其向mN-TT部分宣布该事实,然后其继续它的执行。相反地, mN-TT部分向mN-ET部分宣布任务状态的改变(这需要更新这些列表),然后其通过立即将控制传递给就绪下一任务来继续它的执行。因此,通过使用目前不存在的异步交互方法,可将微内核作为整体来分发。在本发明的示例性实施方式中,mN-TT部分(也称为mN_TT核心)可以位于核心A 上,从而提供最大的计算能力。尽管如此,mN-ET部分(也称为mN-ET核心)可被放置在核心0上,其能够被优化以用于提供中断。例如,Freescale S12XE(注册商标)架构自身非常适用于这种分发,其中,mN-TT部分被放置在CISC核心上而mN-ET部分被放置在RISC核心上。因此,既能够在用户模式(对应于该系统的应用程序或功能处理功能)中又能够在监督模式(对应于专用于包括控制其逻辑和时间趋势以及管理其任务间通信的任务的系统处理功能)中执行应用任务。因此,系统调用被保持在执行应用任务的核心上。本发明能够实施ET和TT任务之间的通信,而不需要阻塞同步机制。如所指示的那样,本申请描述了一种信息处理系统,该信息处理系统能够有效地 (也就是说,以安全和确定性的方式)执行多个时间速率任务和相关联的快速输入/输出的专用处理功能。本发明基于在核心A和核心0上有效地分发内核的各种低级功能。为了定义这种根据本发明的有效分发,在本发明的示例性实施方式中,已经区分了内核中的两个不同部分。 系统层,其可以是通过计时器来管理速率并且管理任务之间的通信的通用层 因此其包括对由任务执行计时器描述的速率,并且其还能够执行任务之间的通信; 微内核,其是用于管理处理资源的分配、异常的管理和实时时间戳的层。例如,计时器可以由石英晶体时钟来提供速率,以便触发由核心A来执行实时任务。核心A专用于TT绝缘区的实时任务的执行,但其还实施微内核的mN-TT部分的功能。 核心0专用于ET绝缘区的中断调节的处理功能的执行,但其还实施微内核的mN-ET部分的与控制计算核心的处理功能的分配顺序相关的功能。微内核的mN-ET部分还触发在mN-TT 部分中微内核的与分配次数的监控相关的功能。这是本发明的关键原理之一,即,使用核心 0来确定并监控其中应用程序的实时任务使用核心A的方式。在本发明的示例性实施方式中,本发明能够通过释放核心A的与更新任务(就绪任务、空闲任务以及错误任务)列表相关联的系统活动、以及通过释放核心A的与根据就绪任务来选择计算核心的分配相关联的系统活动,来增强性能。本发明能够在两个核心上分发以非阻塞的方式执行任务分配的系统活动。在本发明的示例性实施方式中,核心A上的微内核的mN-TT部分负责管理核心A 上的任务切换。其还可以涉及对任务的执行上下文的内容进行更新,例如,在有效执行时间和剩余配额(配额是为所关心的任务的执行预留的执行时间的上限)方面。其还可以在存在来自核心0的中断时参与触发任务的执行,从而例如借助于最早开始时间或者编译者知道的超时来对计时器进行管理。当这种任务到达其应用处理功能的最后时,其借助于所谓的“软件”中断来将控制传递给核心A上的mN-TT微内核,以便或者尽可能晚地推后它的超时或者调整它的下一个唤醒时间。在本发明的示例性实施方式中,微内核的mN-ET部分有利地负责考虑任务上下文的更新以及因此负责对下面的任务列表进行排序就绪任务列表、空闲任务的列表以及错误任务的列表。因此,微内核的mN-TT部分能够有利地以就绪任务列表中的任务的顺序来对它的CPU(中央处理器)进行授权,并计算每个任务的有效执行时间。微内核的mN-ET 部分有利地还能够负责维护当前时间,这对用于唤醒任务的计时器-速率系统是有用的。 其还可以激活计算核心上的有效执行时间控制。其还可以触发输入-输出中断调节的 (interrupt-conditioned)任务的执行。核心0上的内核的部分还可以对它们的结果加盖时间戳,以使得它们能够应用于核心A的应用任务。图1示出了根据本发明的在执行TT绝缘区中的应用任务Al和A2期间核心0和核心A上的微内核(ykernel)的活动的示例性分发。如图1所示,可以在出现来自计时器(计时器IT)的中断(IT)时触发微内核的执行,这对应于任务的唤醒。微内核的执行还能够在出现软件中断(软件IT)时被触发。其最终还能够在出现与快速输入-输出相关联的中断(I/O IT)时被触发。由于将微内核的执行分发到两个核心上,所以微内核中的跟随在计时器中断和跟随在输入-输出中断之后的输入能够直接在核心0上进行。如下文详细描述的那样,微内核中的跟随在软件中断之后的输入在其中执行任务的核心A与核心0之间分发。根据本发明的对微内核进行划分的一个主要优点在于,其使得核心A能够预期任务的执行。实际上,当在出现计时器中断之前第一任务已经结束了它的处理时,这意味着被分配但没有被消耗的时间对于根据其时间参数就绪其他任务来说是可用的。然后,通过执行就绪其他任务来共计消耗已经分配给第一任务的所有剩余处理时间。这也避免了等待计算新的任务调度(由核心0上的mN-TT部分执行)以及避免了以阻塞的方式来等待该操作被完成。由于每个任务的终止都与要求重新调度执行列表的状态改变相对应,所以存在着若干方式来使两个核心协作以便宣布这种状态改变。第一个方法主要是等待计时器中断的出现,这相当于处理被执行和终止的所有任务的所有状态改变。第二个方法主要是在mN-ET 微内核中设有由源自微内核的mN-TT部分的中断触发的相关联的附加输入。其效果在于阻止下一个计时器中断并预期调度列表的更新。在下面的详细描述中保留的是第一状态改变宣布协作方法。应当指出的是,在本发明的示例性实施方式中,总是能够在任务的两个时限之间以及根据该任务的时间配额来很好地执行该任务。在本发明的示例性实施方式中,在出现来自计时器的中断时正在被异步执行的微内核的mN-ET部分,即核心A上的微内核的mN-TT部分的附加输入,有利地使得能够传送被考虑的任务列表中的改变或者要被执行的配额控制。由于与按照配额有效执行时间相关的控制之后被部分地转交给mN-TT微内核处理,所以之后有必要在微内核的mN-ET部分中设有由源自微内核的mN-TT部分的中断触发的、相关联的附加输入,以便向其传送与有效执行时间相关的控制结果。在另一实施方式中,为了避免核心A和核心0上的配额测量之间的管理差异,针对配额控制的中断可以完全由核心A来管理。遵循上面所述的原理,存在着多个方式来在有效执行时间控制活动方面使两个核心协作。第一个方法主要是在两个核心之间适当地放置单个中断往返行程计时器触发与微内核的mN-ET部分相关的配额控制,该配额控制继而触发朝向核心A的中断;然后在所述控制被执行时,由mN-TT微内核触发朝向核心0的第二中断。其优点在于节省硬件资源,计时器能够管理任务的唤醒以及配额控制。不具有往返行程的第二个方法可以被定义为计时器此时发起mN-TT微内核关心的控制,一旦配额计算结束,mN-TT微内核就触发朝向核心 0的中断以宣布状态改变。通过采用该方法,降低了总的中断数量,但在切换次数方面证明是费成本的,例如,在管理中间中断时。在下面的详细描述中保留的是用于对配额控制进行协调的第一方法。在本发明的示例性实施方式中,微内核的称为natlnt的状态变量因此在系统中位于微内核的mN-ET部分的所有处理功能的输出处,以便知晓下一预期中断的性质。这对 mN-ET微内核是特定的。例如,当natlnt为0时,这意味着预期中断是源自核心A的中断。 来自核心0的相关联的处理功能可以有利地包括更新就绪任务的列表、更新空闲任务的列表、更新错误任务的列表以及提供下一个计时器中断。例如,当natlnt为1时,这意味着预期中断是用于控制激活任务的有效执行时间的计时器中断。与mN-ET微内核相关联的处理功能包括触发朝向核心A的用于有效控制的中断。例如,当natlnt为2时,这意味着预期中断是用于唤醒空闲任务的计时器中断。与mN-ET微内核相关联的处理功能可以有利地包括更新就绪任务的列表,更新空闲任务的列表,更新错误任务的列表、触发朝向核心A的中断以及提供下一个计时器中断。在本发明的示例性实施方式中,微内核的称为natAlert的状态变量因此位于来自核心0的朝向核心A的中断被触发之前。其由微内核的mN-ET部分进行更新,并由微内核的mN-TT部分进行查阅。例如,当natAlert为0时,这意味着来自核心A的中断对应于任务唤醒。与微内核的mN-TT部分相关联的处理功能包括考虑新的列表。例如,当NatAlert 为1时,这意味着源自核心0的中断对应于对有效执行时间的控制。有利地,核心A上的相关联的处理功能可以包括对激活任务的有效执行时间的控制,然后是定位任务状态,然后是触发来自计算核心的朝向核心0的中断。图1清楚地示出了由核心A和0执行的并行处理功能。图2示出了根据本发明的由核心0处理的来自计时器的中断的示例。在每次相关联的例程终止时,该中断可以有利地由微内核的mN-ET部分执行,如框20所示。因此,能够监控核心A上的处理功能的时间趋势,如框21所示。计时器中断之后对应于由计时器唤醒任务(“TT唤醒”),或者例如在配额或超时方面,对应于激活任务的时间限制被观察到的控制。就超时或配额而言,唤醒时间或时间限制被表示为计时器速率系统时间。这可以在一定数量的比特(例如,32比特)上进行编码。在计时器不允许直接表示时间限制的情况中(也就是说,如框M所示,在要被提供的下一个中断对应于其值大于计时器容量的时间限制时),微内核之后可以负责管理计时器速率系统时间向计时器的时间基准的转录。在这种情况中,如框23所示,微内核的mN-ET部分管理中间中断,以在出现最后中断之前对时间进行倒数,该最后中断对应于关心的时间限制的最后中断。该最后中断导致用于更新就绪任务列表以及空闲任务的列表的处理功能,然后是导致触发核心A上的中断(如框22所示),以便根据natint的值(1或2)来考虑微内核被激活的时间事件。在本发明的示例性实施方式中,由于mN-ET微内核是计时器中断的管理者,所以其之后负责调度和控制核心A和这些任务的分配。这样,当就绪上下文列表得到更新时或者当产生配额控制中断时,它使用软件中断来中断核心A并借助于natAlert向核心A指示其介入的本质。微内核的mN-TT部分可以之后有利地执行对活动任务的配额的更新和控制,然后有可能通过确认就绪新的任务以及通过加载其执行上下文来承担上下文切换,如图3中的框33所示。然后,当配额控制中断结束符由mN-ET微内核处理(如框25所示) 时,提供与速率相关联的下一个中断(框对)。在图2以及随后的附图中,首字母缩写“RTI” 表示“从中断返回”指令。如图3中的框30和31所示,在本发明的示例性实施方式中,当mN-ET微内核考虑进行配额控制请求时,其等待mN-TT微内核部分上的配额分析结果。该等待是非阻塞的, mN-ET微内核继续它的处理功能,直到mN-TT微内核通过继而触发其关心的中断来向其宣布该处理功能结束,如框32所示。自此,如图2中的框25和框M所示,微内核的mN-ET部分能够之后重新激活下一个计时器中断。无论这是针对配额控制还是针对由计时器执行的唤醒(改变就绪任务的列表、空闲任务的列表或者错误任务的列表),微内核的mN-TT部分确认该就绪新的任务并加载它的执行上下文(框33)。如图4所示,mN-ET微内核可以有利地实施对输入/输出中断的管理。其之后可以负责激活与输入/输出中断相关联的例程。该例程可以包括用于控制中断出现的通用初始部分(如框40所示)以及包括传送几率的专用应用程序处理部分,以便已经生成的并与该输入/输出相关联的结果可以由所述核心应用到核心A上的任务,如框41所示。例如, 其可以有利地被放置在两个核心之间的共享存储区域中,例如,该共享存储区域也可以共享一组用于交互的专用中断。用于控制中断出现的该策略依赖于所针对的工业领域以及被适当布置的监控的类型。该策略可以例如利用被授权的最大数量的输入/输出中断或者利用两个输入/输出中断之间的被授权的最小或最大时间。在这些准则中的其中一个准则没有被观察到的情况中,所述控制还必须指定相关联的“失败”管理策略。该策略还可以具有不同的种类,可能从将用于该输入/输出的管理模块复位成零变化到临时或明确地禁止其操作。内核能够通过调用mN-ET部分的系统功能来使得生成的数据能够在应用程序处理功能中使用。该功能的作用是对结果加盖时间戳,并将该编译与索引相关联,从而传递它在缓冲器中的位置,使得核心A侧上的内核能够使用。根据输入/输出中断的出现以及根据相关联的应用程序实时任务对这些数据的使用,来改变缓存器的大小。应当指出的是,对由内核生成的结果加盖时间戳应当经由计时器中断来与当前时间的维护原子相关。如图5所示,源自任务的软件中断被触发以发出系统调用的信号,例如,针对某个节点的执行图的到达。在本发明的示例性实施方式中,mN-TT微内核之后可以对执行上下文进行修改(如框50所示),以允许调用任务的系统层的执行(如框51所示)。当其正在被处理时,系统层会被要求根据其执行图来修改任务的时间限制。然后,该操作导致系统层承担对消耗的配额的管理(如框52所示),然后,如果需要的话,可以导致mN-TT微内核执行核心A上的任务切换(如框53所示)。一个功能可以设置通信区域中的状态变量以及与源输入相关联的指示符,然后可以在之前被执行的任务的上下文中传递自变量以及占用次数和释放计算核心的次数。然后,可以调用切换模块来激活就绪下一个任务。可以通过计算所述任务放弃CPU的时刻或者从CPU移除所述任务的时刻与将所述任务给CPU的时刻之间的差异来平台消耗的CPU配额。该计算由mN-ET微内核基于微内核的mN-TT部分提供的信息来完成。实际上,一旦抢占了并未导致任务的状态发生改变的任务(其因此保持是激活的),在该任务的上下文中包括的相关联的消耗的配额信息就可以有利地由计算核心来更新。为了进行同步,微内核的两个部分共享如在下面的表1中定义的数据。然而,对于数据而言,仅存在着单个的记录器。
数据记录器natAlertmN-ET微内核核心A上的进入的中断的特征 0=>任务唤醒; 1 =>配额控制contexPretmN-ET微内核就绪任务的列表contexDeroutmN-ET微内核错误任务的列表contexReposmN-ET微内核空闲任务的列表heureComptOmN-ET微内核计时器的当前时刻的值(当相关联的计时器的计数器变为0 时)表1 根据本发明的同步数据的示例任务执行上下文的结构使用与下面的表2中的示例定义的那些字段相类似的字段。这些字段的内容由单个记录器来更新,该单个记录器可以是mN-ET微内核或者mN-TT 微内核。应当指出的是,在本发明的示例性实施方式中,mN-TT微内核有利地对“状态”变量进行更新,该“状态”变量显著地指示就绪可激活任务是变为空闲任务还是变为错误任务。 微内核的mN-ET部分是在任务列表被更新时能够使其恢复到可激活状态的唯一的部分。
权利要求
1.一种包括两个处理核心的信息处理系统,由该系统执行应用程序包括应用任务的执行和系统任务的执行,该系统包括执行与硬件资源直接有关的所述系统任务的微内核, 该处理系统包括第一核心A上所述微内核的计算部分mN-TT,该计算部分mN-TT执行与所述核心A上的任务的切换相关的系统任务,包括为每个任务更新表明该任务是否是可执行的状态以及为该任务收集执行数据,所述状态被包括在与该任务相关联的执行上下文中,所述状态能够为表明该任务就绪的值; 表明该任务空闲的值; 表明该任务错误的值;第二核心0上所述微内核的控制部分mN-ET,该控制部分mN-ET执行由输入/输出中断触发的应用任务以及执行与对所述核心A上的任务分配顺序的控制相关的系统任务,所述系统任务包括管理就绪任务的有序列表,和/或; 空闲任务的有序列表,和/或; 错误任务的列表;所述处理系统的特征在于,由所述核心A执行的与所述任务的切换相关的系统任务包括在每个任务的所述执行上下文中更新最早的执行开始限制时间和/或最晚的执行结束限制时间; 剩余执行时间配额;以便所述核心0以一顺序对就绪任务的列表中的任务进行排序,所述顺序使得能够根据每个任务的执行限制时间和根据每个任务的执行时间配额来执行每个任务。
2.如权利要求1所述的系统,其特征在于,由所述微内核的mN-TT部分执行的与所述任务的切换相关的所述系统任务包括在由所述核心A接收到中断时,加载就绪任务中的一任务的执行上下文; 触发该任务的执行。
3.如权利要求2所述的系统,其特征在于,在接收到中断时,所述微内核的mN-TT部分将第一任务的所述执行上下文加载到就绪任务的列表中。
4.如权利要求2所述的系统,其特征在于,由所述微内核的mN-ET部分实现的计时器来生成所述中断。
5.如权利要求4所述的系统,其特征在于,由石英晶体时钟来为所述计时器提供速率, 以便触发由所述微内核的mN-TT部分执行实时应用任务。
6.如权利要求1所述的系统,其特征在于,每个核心执行与对其来说特定的任务之间的通信有关的所述系统任务。
7.如权利要求1所述的系统,其特征在于,该系统包括共享存储器空间和一组中断以便所述核心进行交互。
8.如权利要求1所述的系统,其特征在于,所述核心是不同类型的处理器。
9.如权利要求8所述的系统,其特征在于,所述处理器被实现在芯片上。
全文摘要
本发明涉及包括两个处理核心的信息处理系统。由于由该系统执行应用程序包括应用任务的执行和系统任务的执行,所以该系统包括执行系统任务的微内核,该系统任务与硬件资源直接相关。该处理系统包括微内核的计算部分mN-TT,其用于执行与切换核心A上的任务相关的系统任务;微内核的控制部分mN-ET,其用于执行与核心A不同的核心上的、与控制核心A上的任务分配顺序相关的系统任务。应用微电子,具有高的计算能力的嵌入式电子系统。
文档编号G06F9/48GK102216902SQ200980145920
公开日2011年10月12日 申请日期2009年10月16日 优先权日2008年10月17日
发明者C·奥萨盖斯, D·樊尚, D·沙布罗尔 申请人:原子能和辅助替代能源委员会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1