CN102216902A - 确定性执行和同步包括执行***任务的多个处理核心的信息处理***的方法 - Google Patents
确定性执行和同步包括执行***任务的多个处理核心的信息处理***的方法 Download PDFInfo
- Publication number
- CN102216902A CN102216902A CN200980145920XA CN200980145920A CN102216902A CN 102216902 A CN102216902 A CN 102216902A CN 200980145920X A CN200980145920X A CN 200980145920XA CN 200980145920 A CN200980145920 A CN 200980145920A CN 102216902 A CN102216902 A CN 102216902A
- Authority
- CN
- China
- Prior art keywords
- task
- core
- kernel
- micro
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title abstract description 43
- 230000010365 information processing Effects 0.000 title abstract 2
- 238000000034 method Methods 0.000 title description 23
- 238000004891 communication Methods 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 11
- 239000010453 quartz Substances 0.000 claims description 4
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 4
- 239000013078 crystal Substances 0.000 claims description 3
- 238000004377 microelectronic Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 33
- 238000009413 insulation Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 15
- 230000000875 corresponding effect Effects 0.000 description 12
- 230000001960 triggered effect Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000032798 delamination Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
- Power Sources (AREA)
- Hardware Redundancy (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及包括两个处理核心的信息处理***。由于由该***执行应用程序包括应用任务的执行和***任务的执行,所以该***包括执行***任务的微内核,该***任务与硬件资源直接相关。该处理***包括:微内核的计算部分mN-TT,其用于执行与切换核心A上的任务相关的***任务;微内核的控制部分mN-ET,其用于执行与核心A不同的核心上的、与控制核心A上的任务分配顺序相关的***任务。应用:微电子,具有高的计算能力的嵌入式电子***。
Description
技术领域
本发明涉及用于确定性执行和同步包括执行***任务的多个处理核心的信息处理***的方法。本发明能够特别地应用于微电子领域或应用于具备高计算能力的嵌入式电子***领域。
背景技术
半导体工业正面临着令人失望事实:不再有任何可靠的途径来显著地增加处理器的性能水平,至少在单处理器级别上是不可能的。只有使用多个并行操作的处理器的***才能形成令人感到期望的途径来增加这些***的计算能力。实际上,20世纪60年代进行的研究表明,并行计算***的计算能力与效率之间的比率可能远远高于顺序***。如今,在诸如多媒体、通信或实时处理***等领域中的新应用针对消耗的功率水平和受控的表面面积提出越来越高的计算能力。由于不能增加单核心的处理能力,所以唯一的解决方案是增加核心的数量并使这些核心并行操作,从而给出了新的架构概念,即片上并行***。在处理器的相当具体的上下文(即嵌入式***)中,这种增加同一芯片上的执行核心的数量的趋势是非常明显的。在介质方面,应当趋向于引入或者甚至标准化具有几十甚至几百个执行核心的***。这些***中值得引用的是片上多处理器***,通常用首字母缩写“MPSoC”来表示,其表示“片上多处理器***”。
然而,并行***比顺序***更难以编程和调试。应用程序的不断增加的复杂度使得这些编程和调试更加困难。在嵌入式应用中,期望集成越来越多的功能以及要被处理的数据量的不断增加也增加了这些困难。例如,蜂窝电话与具有多媒体、定位甚至游戏功能的电信功能相关联。这产生了嵌入式***,在该嵌入式***中,密集的计算任务与控制占主导的任务一起运行,使得应用程序的各种元件之间具有非常强的交互。这样,响应于相关联的实时约束,对不同核心的处理功能进行同步以最佳地管理高效的并行性是关键的性能和能力因素。在有效地操作嵌入式***的并行架构方面,这是主要的困难。不得不从三个方面来看待该困难,即不确定性的掌握、通信的掌握以及控制的掌握。一旦已经识别、从应用程序中提取并在程序中表示了潜在的并行性,则接下来关键是能够以给定的硬件架构来有效地实施这种并行性。例如,在MPSoC中,为了从程序员进行的提取应用程序并行性的工作中获得最大利益,必须最佳地向芯片的所有资源分发众多的处理序列,虽然这些序列通过数据相依性或执行控制相依性而相互关联。下文中,这些序列将被称为“执行任务”:执行任务与处理核心上处理功能的执行相关。应当指出的是,软件技术人员也将其称为“线程”。在本申请的剩余部分中,我们将不做区分,并且术语“任务”将仅指代执行任务。为了对MPSoC上的这些任务的执行进行组织以及为了方便开发人员的工作,在纯粹的应用程序部分以及其他所谓的“***”部分中构建针对它们的执行的软件支持,它们的功能是用于抽象底层硬件的资源。为了最好地利用由任务表示并在MPSoC中可用的并行性,一方面有必要研究要在各种核心上执行的处理功能的选择方式,另一方面有必要研究使它们一起操作的方式,即如何在硬件上组织控制任务执行的基本软件。因此,同样地,如同程序表示应用程序并行性的潜在性那样,关键是找到一种方式来通过适当地控制基本软件级(通常称为“内核”)上的任务来表示架构并行性的潜在性。该研究应当考虑会不利地影响很好地使用架构的潜在并行性的所有情况。首先,存在着受访问关键共享资源(诸如中央存储器、网络、通信总线或任务管理器)限制的风险。还存在着不能足够好地管理任务之间的相依性的风险,尤其是在所述任务具有动态特性时。最后,存在着不能控制并行执行的不确定性从而使得程序调试复杂且困难的风险。处理该问题的一个标准方式是分层软件方法,在该方法中,至少能够将应用层与内核相区分,其中,应用层包括要被执行的任务,所述内核抽象硬件资源并管理机器上的任务的有效执行。通常内核自身被组织成两部分,一部分称为“微内核”,其执行与硬件直接相关的所有***功能(诸如管理寄存器、计时器和***设备等),以及另一部分在本文中被称做“***层”,其负责任务间通信和其他的高级任务控制方面。该研究应当达到组织内核这样的顶峰,其中,对内核进行组织定义了选择处理核心的方式以及使处理核心以协调和高效的方式进行操作的方式。这构成了微电子学和嵌入式软件行业当前面临的主要挑战之一,并且本发明为此提供了解决方案。
现有的解决方案建议对称地使用处理核心来执行内核。这在“对称多处理”(SMP)类型的结构中得到实施。例如,其可以包括使Linux或Windows(注册商标)类型的相同的内核在每个不同的处理核心上执行。然而,主要的缺点在于,Linux或Windows(注册商标)类型的内核不能在两个不同的核心上以实际上同时的方式被执行,至少对于内核的关键功能是如此的。因此,并行性被局限于内核的非关键性功能。这正是本发明建议通过将内核的一些关键功能分发到多个处理核心上来解决的其中一个技术问题。
还存在着所谓的“划分”解决方案,其建议每个处理核心应当专用于相互未意识的活动。然后通过共享存储空间来进行交换。例如,标题为“Real-time threading service for partitioned multiprocessor systems”的、专利申请号为WO/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上的任务相关的***任务,包括为每个任务更新表明该任务是否是可执行的状态,所述状态被包括在与所述任务相关联的执行上下文中,以及为所述任务收集执行数据,所述状态能够为:
-表明任务就绪的值;
-表明任务空闲的值;
-表明任务错误的值;
-第二核心O上的微内核的控制部分mN-ET执行由输入/输出中断触发的应用任务以及执行与核心A上的任务分配顺序的控制相关的***任务,该***任务包括管理:
-就绪任务的有序列表,和/或;
-空闲任务的有序列表,和/或;
-错误任务的列表;
该处理***的特征在于,由核心A执行的与切换任务相关的***任务包括在每个任务的执行上下文中更新:
-最早的执行开始限制时间和/或最后的执行结束限制时间;
-剩余执行时间配额;
以便核心O以使得能够根据其执行限制时间和根据其执行时间配额来执行每个任务的顺序对就绪任务列表中的任务进行排序。
有利地,由微内核的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核心)可被放置在核心O上,其能够被优化以用于提供中断。例如,Freescale S12XE(注册商标)架构自身非常适用于这种分发,其中,mN-TT部分被放置在CISC核心上而mN-ET部分被放置在RISC核心上。因此,既能够在用户模式(对应于该***的应用程序或功能处理功能)中又能够在监督模式(对应于专用于包括控制其逻辑和时间趋势以及管理其任务间通信的任务的***处理功能)中执行应用任务。因此,***调用被保持在执行应用任务的核心上。本发明能够实施ET和TT任务之间的通信,而不需要阻塞同步机制。
如所指示的那样,本申请描述了一种信息处理***,该信息处理***能够有效地(也就是说,以安全和确定性的方式)执行多个时间速率任务和相关联的快速输入/输出的专用处理功能。本发明基于在核心A和核心O上有效地分发内核的各种低级功能。为了定义这种根据本发明的有效分发,在本发明的示例性实施方式中,已经区分了内核中的两个不同部分。
●***层,其可以是通过计时器来管理速率并且管理任务之间的通信的通用层:因此其包括对由任务执行计时器描述的速率,并且其还能够执行任务之间的通信;
●微内核,其是用于管理处理资源的分配、异常的管理和实时时间戳的层。
例如,计时器可以由石英晶体时钟来提供速率,以便触发由核心A来执行实时任务。核心A专用于TT绝缘区的实时任务的执行,但其还实施微内核的mN-TT部分的功能。核心O专用于ET绝缘区的中断调节的处理功能的执行,但其还实施微内核的mN-ET部分的与控制计算核心的处理功能的分配顺序相关的功能。微内核的mN-ET部分还触发在mN-TT部分中微内核的与分配次数的监控相关的功能。这是本发明的关键原理之一,即,使用核心O来确定并监控其中应用程序的实时任务使用核心A的方式。在本发明的示例性实施方式中,本发明能够通过释放核心A的与更新任务(就绪任务、空闲任务以及错误任务)列表相关联的***活动、以及通过释放核心A的与根据就绪任务来选择计算核心的分配相关联的***活动,来增强性能。本发明能够在两个核心上分发以非阻塞的方式执行任务分配的***活动。
在本发明的示例性实施方式中,核心A上的微内核的mN-TT部分负责管理核心A上的任务切换。其还可以涉及对任务的执行上下文的内容进行更新,例如,在有效执行时间和剩余配额(配额是为所关心的任务的执行预留的执行时间的上限)方面。其还可以在存在来自核心O的中断时参与触发任务的执行,从而例如借助于最早开始时间或者编译者知道的超时来对计时器进行管理。当这种任务到达其应用处理功能的最后时,其借助于所谓的“软件”中断来将控制传递给核心A上的mN-TT微内核,以便或者尽可能晚地推后它的超时或者调整它的下一个唤醒时间。
在本发明的示例性实施方式中,微内核的mN-ET部分有利地负责考虑任务上下文的更新以及因此负责对下面的任务列表进行排序:就绪任务列表、空闲任务的列表以及错误任务的列表。因此,微内核的mN-TT部分能够有利地以就绪任务列表中的任务的顺序来对它的CPU(中央处理器)进行授权,并计算每个任务的有效执行时间。微内核的mN-ET部分有利地还能够负责维护当前时间,这对用于唤醒任务的计时器-速率***是有用的。其还可以激活计算核心上的有效执行时间控制。其还可以触发输入-输出中断调节的(interrupt-conditioned)任务的执行。核心O上的内核的部分还可以对它们的结果加盖时间戳,以使得它们能够应用于核心A的应用任务。
图1示出了根据本发明的在执行TT绝缘区中的应用任务A1和A2期间核心O和核心A上的微内核(μkernel)的活动的示例性分发。如图1所示,可以在出现来自计时器(计时器IT)的中断(IT)时触发微内核的执行,这对应于任务的唤醒。微内核的执行还能够在出现软件中断(软件IT)时被触发。其最终还能够在出现与快速输入-输出相关联的中断(I/O IT)时被触发。由于将微内核的执行分发到两个核心上,所以微内核中的跟随在计时器中断和跟随在输入-输出中断之后的输入能够直接在核心O上进行。如下文详细描述的那样,微内核中的跟随在软件中断之后的输入在其中执行任务的核心A与核心O之间分发。根据本发明的对微内核进行划分的一个主要优点在于,其使得核心A能够预期任务的执行。实际上,当在出现计时器中断之前第一任务已经结束了它的处理时,这意味着被分配但没有被消耗的时间对于根据其时间参数就绪其他任务来说是可用的。然后,通过执行就绪其他任务来共计消耗已经分配给第一任务的所有剩余处理时间。这也避免了等待计算新的任务调度(由核心O上的mN-TT部分执行)以及避免了以阻塞的方式来等待该操作被完成。由于每个任务的终止都与要求重新调度执行列表的状态改变相对应,所以存在着若干方式来使两个核心协作以便宣布这种状态改变。第一个方法主要是等待计时器中断的出现,这相当于处理被执行和终止的所有任务的所有状态改变。第二个方法主要是在mN-ET微内核中设有由源自微内核的mN-TT部分的中断触发的相关联的附加输入。其效果在于阻止下一个计时器中断并预期调度列表的更新。在下面的详细描述中保留的是第一状态改变宣布协作方法。应当指出的是,在本发明的示例性实施方式中,总是能够在任务的两个时限之间以及根据该任务的时间配额来很好地执行该任务。
在本发明的示例性实施方式中,在出现来自计时器的中断时正在被异步执行的微内核的mN-ET部分,即核心A上的微内核的mN-TT部分的附加输入,有利地使得能够传送被考虑的任务列表中的改变或者要被执行的配额控制。由于与按照配额有效执行时间相关的控制之后被部分地转交给mN-TT微内核处理,所以之后有必要在微内核的mN-ET部分中设有由源自微内核的mN-TT部分的中断触发的、相关联的附加输入,以便向其传送与有效执行时间相关的控制结果。在另一实施方式中,为了避免核心A和核心O上的配额测量之间的管理差异,针对配额控制的中断可以完全由核心A来管理。
遵循上面所述的原理,存在着多个方式来在有效执行时间控制活动方面使两个核心协作。第一个方法主要是在两个核心之间适当地放置单个中断往返行程:计时器触发与微内核的mN-ET部分相关的配额控制,该配额控制继而触发朝向核心A的中断;然后在所述控制被执行时,由mN-TT微内核触发朝向核心O的第二中断。其优点在于节省硬件资源,计时器能够管理任务的唤醒以及配额控制。不具有往返行程的第二个方法可以被定义为:计时器此时发起mN-TT微内核关心的控制,一旦配额计算结束,mN-TT微内核就触发朝向核心O的中断以宣布状态改变。通过采用该方法,降低了总的中断数量,但在切换次数方面证明是费成本的,例如,在管理中间中断时。在下面的详细描述中保留的是用于对配额控制进行协调的第一方法。
在本发明的示例性实施方式中,微内核的称为natInt的状态变量因此在***中位于微内核的mN-ET部分的所有处理功能的输出处,以便知晓下一预期中断的性质。这对mN-ET微内核是特定的。例如,当natInt为0时,这意味着预期中断是源自核心A的中断。来自核心O的相关联的处理功能可以有利地包括更新就绪任务的列表、更新空闲任务的列表、更新错误任务的列表以及提供下一个计时器中断。例如,当natInt为1时,这意味着预期中断是用于控制激活任务的有效执行时间的计时器中断。与mN-ET微内核相关联的处理功能包括触发朝向核心A的用于有效控制的中断。例如,当natInt为2时,这意味着预期中断是用于唤醒空闲任务的计时器中断。与mN-ET微内核相关联的处理功能可以有利地包括:更新就绪任务的列表,更新空闲任务的列表,更新错误任务的列表、触发朝向核心A的中断以及提供下一个计时器中断。
在本发明的示例性实施方式中,微内核的称为natAlert的状态变量因此位于来自核心O的朝向核心A的中断被触发之前。其由微内核的mN-ET部分进行更新,并由微内核的mN-TT部分进行查阅。例如,当natAlert为0时,这意味着来自核心A的中断对应于任务唤醒。与微内核的mN-TT部分相关联的处理功能包括考虑新的列表。例如,当NatAlert为1时,这意味着源自核心O的中断对应于对有效执行时间的控制。有利地,核心A上的相关联的处理功能可以包括对激活任务的有效执行时间的控制,然后是定位任务状态,然后是触发来自计算核心的朝向核心O的中断。图1清楚地示出了由核心A和O执行的并行处理功能。
图2示出了根据本发明的由核心O处理的来自计时器的中断的示例。在每次相关联的例程终止时,该中断可以有利地由微内核的mN-ET部分执行,如框20所示。因此,能够监控核心A上的处理功能的时间趋势,如框21所示。计时器中断之后对应于由计时器唤醒任务(“TT唤醒”),或者例如在配额或超时方面,对应于激活任务的时间限制被观察到的控制。
就超时或配额而言,唤醒时间或时间限制被表示为计时器速率***时间。这可以在一定数量的比特(例如,32比特)上进行编码。在计时器不允许直接表示时间限制的情况中(也就是说,如框24所示,在要被提供的下一个中断对应于其值大于计时器容量的时间限制时),微内核之后可以负责管理计时器速率***时间向计时器的时间基准的转录。在这种情况中,如框23所示,微内核的mN-ET部分管理中间中断,以在出现最后中断之前对时间进行倒数,该最后中断对应于关心的时间限制的最后中断。该最后中断导致用于更新就绪任务列表以及空闲任务的列表的处理功能,然后是导致触发核心A上的中断(如框22所示),以便根据natint的值(1或2)来考虑微内核被激活的时间事件。
在本发明的示例性实施方式中,由于mN-ET微内核是计时器中断的管理者,所以其之后负责调度和控制核心A和这些任务的分配。这样,当就绪上下文列表得到更新时或者当产生配额控制中断时,它使用软件中断来中断核心A并借助于natAlert向核心A指示其介入的本质。微内核的mN-TT部分可以之后有利地执行对活动任务的配额的更新和控制,然后有可能通过确认就绪新的任务以及通过加载其执行上下文来承担上下文切换,如图3中的框33所示。然后,当配额控制中断结束符由mN-ET微内核处理(如框25所示)时,提供与速率相关联的下一个中断(框24)。在图2以及随后的附图中,首字母缩写“RTI”表示“从中断返回”指令。
如图3中的框30和31所示,在本发明的示例性实施方式中,当mN-ET微内核考虑进行配额控制请求时,其等待mN-TT微内核部分上的配额分析结果。该等待是非阻塞的,mN-ET微内核继续它的处理功能,直到mN-TT微内核通过继而触发其关心的中断来向其宣布该处理功能结束,如框32所示。自此,如图2中的框25和框24所示,微内核的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中定义的数据。然而,对于数据而言,仅存在着单个的记录器。
表1:根据本发明的同步数据的示例
任务执行上下文的结构使用与下面的表2中的示例定义的那些字段相类似的字段。这些字段的内容由单个记录器来更新,该单个记录器可以是mN-ET微内核或者mN-TT微内核。应当指出的是,在本发明的示例性实施方式中,mN-TT微内核有利地对“状态”变量进行更新,该“状态”变量显著地指示就绪可激活任务是变为空闲任务还是变为错误任务。微内核的mN-ET部分是在任务列表被更新时能够使其恢复到可激活状态的唯一的部分。
表2:根据本发明的上下文结构的示例
在本发明的示例性实施方式中,contexPret列表在读取模式中由mN-TT微内核访问,并由mN-ET微内核维护(也就是说,在读取模式和写入模式中被访问)。显然,mN-TT微内核读取contexPret列表:
●在来自核心O的中断控制配额或用于唤醒之后。对于配额控制而言,将contexPret列表的头与当前执行的任务进行比较,以确定是否已经超过所述配额。对于唤醒而言,访问contexPret列表的头,以使得新的任务将被执行;
●在经由来自***层的软件中断的***输入上,修改时间限制。对于继续执行而言,然后仅读取当前正在执行的任务的下一个指针。
在mN-ET微内核侧,通过首先修改跟随在上下文C之后的上下文(其将等于上下文D)、然后通过修改跟随在上下文B之后的上下文(其将等于上下文C),来完成两个上下文B与D之间上下文C的***。
在本发明的示例性实施方式中,上下文的提取可以通过考虑不再是可激活的上下文来执行。因此,所述控制使用第一可激活任务上的contexPret(前者被排除在外)。所述提取对于核心A而言是不可见的,因为如果上下文不再是可激活的,则这意味着核心A已经执行了执行上下文,因此核心A上的当前正在执行的任务相当于第一可激活任务或者相当于第一可激活任务之后的任务中的其中一个任务。因此,将不再向其返回。
关于DATETARD状态的管理,应当指出的是,该操作的目的是在其执行期间推后上下文的限制时间。当该限制时间推延发生时,mN-TT微内核进入到该上下文的下一时限。现在,如果尽管存在该推延但是限制时间仍然处于下一个时限的上游,则该任务将不是可再执行的,直到来自核心O的下一个中断的natAlert被设置成0。
为了使得用于管理输入/输出中断的应用例程的结果在核心O上可用,如之前解释的那样,在读取模式中使得缓冲器能够由计算任务的***层使用。该表中的索引使得核心A侧上的***层能够维护并识别由该任务返回或未返回的输入/输出结果。
图6示出了根据本发明的用于两个并行核心的示例性操作场景,其中,首字母缩写CS表示“***层”,agMN表示“从应用程序任务模式(代理程序-ag)改变到微内核(MN)”,以及csMN表示“从***任务模式(***层-cs)改变到微内核(MN)”。
在时刻t0:
●任务AG1和AG2位于就绪任务的列表中;
●任务AG1是当前正在执行的并且其配额超出时刻t1的任务;
●对于时刻t1而言,下一个最后中断是计时器唤醒任务AG3的唤醒时刻;
●任务AG3位于空闲任务列表中。
在时刻t0与时刻t1之间:
●在O上存在着三个中间中断;
●在任务AG1的配额达到之前,任务AG1结束其基本活动。mN-TT微内核在用于任务AG1的配额内切换并执行任务AG2。
在时刻t1:
●计时器导致的中断发生,以唤醒任务AG3;
●mN-ET微内核将任务AG1放入空闲任务列表中,将任务AG3放入就绪任务列表的头处,向计时器提供用于任务AG3的配额(其对应于时刻t2),将natAlert置为0,以及通过对mN-TT微内核的中断来通知要被考虑的新的任务列表。mN-TT微内核之后执行关于任务AG2的配额控制,并然后将控制转向任务AG3。
在时刻t1与时刻t2之间:
●在O上存在着中间中断;
●在达到任务AG3的配额之前,任务AG3结束其基本活动。mN-TT微内核切换,之后在用于任务AG3的配额内继续执行任务AG2。
在时刻t2:
●为了任务AG3的配额控制,计时器中断发生;
●mN-ET微内核将natAlert置为1,通过中断向mN-TT微内核通知要被执行的配额控制;
●核心A在接收到来自mN-ET微内核的中断之后改变到微内核模式,并修改为了配额控制当前正在执行的任务的上下文的内容(AG3已经结束了它的活动),向mN-ET微内核发送中断以通知更新,然后将控制返回到就绪并是可激活的唯一任务,即任务AG2。
●mN-ET微内核将任务AG3放入空闲任务列表中,并提供计时器以在时刻t3时唤醒任务AG3(更接近剩余给AG2的配额的末尾)。
在时刻t3:
●计时器中断发生,以唤醒任务AG3;
●mN-ET微内核将任务AG3放入就绪任务的列表(在任务AG2之后)中,向计时器提供授权给任务AG2的剩余配额(其对应于时刻t4),将natAlert置为0,以及向mN-TT微内核发送中断来通知要被考虑的新的任务列表。mN-TT微内核之后执行关于任务AG2的配额控制,并然后将控制转向任务AG3。
在时刻t3与时刻t4之间:
●在核心O上存在着中间中断。
在时刻t4:
●为了任务AG2的配额控制,计时器中断发生;
●mN-ET微内核将natAlert置为1,向mN-TT微内核发送中断以通知要被执行的配额控制;
●核心A在接收到来自核心O的中断之后改变到微内核模式,并修改当前正在执行的任务的上下文的内容(任务AG2已经超过了它的配额),向mN-ET微内核发送中断以通知更新,然后将控制转给就绪并是可激活的唯一任务,即任务AG3;
●mN-ET微内核将任务AG2放入错误任务列表中,并提供计时器以在时刻t5时唤醒任务AG1(更接近剩余给AG3的配额的末尾)。
在时刻t4与时刻t5之间:
●在达到任务AG3的配额之前,任务AG3结束其基本活动。核心A的微内核改变到空闲模式。
在时刻t5:
●计时器中断发生,以唤醒任务AG1;
●mN-ET微内核将任务AG3放入空闲任务列表中,将任务AG1放入就绪任务的列表中,向计时器提供用于任务AG1的配额,将natAlert置为0,以及向mN-TT微内核发送中断来通知要被考虑的新的任务列表。
通过转移到专用于控制内核功能的子集(其是任务调度、时间管理以及中断调节的输入-输出管理)的核心,之前描述的本发明能够完全地利用并最好地使用多核心硬件架构的有效并行性。本发明提出的在两个部分mN-TT和mN-ET中不对称地分发微内核的功能还使得能够确保实时地执行时间速率计算任务以及执行由输入-输出中断调节的例程。实际上,由本发明提出的不对称地分发微内核的功能确保了在核心O上执行的ET绝缘区与在核心A上执行的一个或多个TT绝缘区之间的空间和时间分离。这样,对中断调节的处理功能的管理并不归因于核心A,显然,输入-输出处理功能绝不扰乱能够由计算任务获得的性能水平,反之亦然。从存储器的角度来看,存储器布置以及有可能是存储器保护都避免了核心O访问计算任务的存储区域。与核心O上的输入-输出中断的出现相关的控制以及与一个或多个计算核心上的有效执行时间相关的控制使得能够监控中断并能够检测任意的时间相关的行为异常。
上面描述的本发明的其他主要优点在于,其允许高效、受控以及安全地执行完全嵌入式的实时***,例如对于车辆领域中的应用而言。实际上,本发明使得能够最好地使用嵌入式硬件架构,从而在每个处理器的任务或功能数量方面允许非常高程度的集成。由于相关联的多任务执行方法结合了多个核心的协作,所以本发明还能够以对开发人员透明的方式来在多核心架构上执行包括一组由输入-输出中断条件的任务和例程的应用程序。实际上,借助于内核中的接口以及共享元件,开发者本身不再关心任务或例程的位置,在所述内核中被定义为管理其对核心的不对称划分。
Claims (9)
1.一种包括两个处理核心的信息处理***,由该***执行应用程序包括:应用任务的执行和***任务的执行,该***包括执行与硬件资源直接有关的所述***任务的微内核,该处理***包括:
第一核心A上所述微内核的计算部分mN-TT,该计算部分mN-TT执行与所述核心A上的任务的切换相关的***任务,包括为每个任务更新表明该任务是否是可执行的状态以及为该任务收集执行数据,所述状态被包括在与该任务相关联的执行上下文中,所述状态能够为:
表明该任务就绪的值;
表明该任务空闲的值;
表明该任务错误的值;
第二核心O上所述微内核的控制部分mN-ET,该控制部分mN-ET执行由输入/输出中断触发的应用任务以及执行与对所述核心A上的任务分配顺序的控制相关的***任务,所述***任务包括管理:
就绪任务的有序列表,和/或;
空闲任务的有序列表,和/或;
错误任务的列表;
所述处理***的特征在于,由所述核心A执行的与所述任务的切换相关的***任务包括在每个任务的所述执行上下文中更新:
最早的执行开始限制时间和/或最晚的执行结束限制时间;
剩余执行时间配额;
以便所述核心O以一顺序对就绪任务的列表中的任务进行排序,所述顺序使得能够根据每个任务的执行限制时间和根据每个任务的执行时间配额来执行每个任务。
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所述的***,其特征在于,所述处理器被实现在芯片上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0805770A FR2937439B1 (fr) | 2008-10-17 | 2008-10-17 | Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes. |
FR0805770 | 2008-10-17 | ||
PCT/EP2009/063577 WO2010043706A2 (fr) | 2008-10-17 | 2009-10-16 | Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102216902A true CN102216902A (zh) | 2011-10-12 |
Family
ID=40433856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980145920XA Pending CN102216902A (zh) | 2008-10-17 | 2009-10-16 | 确定性执行和同步包括执行***任务的多个处理核心的信息处理***的方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9128752B2 (zh) |
EP (1) | EP2338109B1 (zh) |
JP (1) | JP5688591B2 (zh) |
KR (1) | KR101629989B1 (zh) |
CN (1) | CN102216902A (zh) |
CA (1) | CA2740978C (zh) |
FR (1) | FR2937439B1 (zh) |
WO (1) | WO2010043706A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577376A (zh) * | 2012-08-02 | 2014-02-12 | 通用汽车环球科技运作有限责任公司 | 改善多核芯处理器的处理性能的方法和装置 |
CN103744342A (zh) * | 2014-01-22 | 2014-04-23 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制*** |
CN103914346A (zh) * | 2013-12-16 | 2014-07-09 | 西北工业大学 | 一种基于分组的实时操作***双优先级任务调度节能方法 |
CN110837415A (zh) * | 2018-08-17 | 2020-02-25 | 北京嘉楠捷思信息技术有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101610828B1 (ko) * | 2009-09-23 | 2016-04-08 | 삼성전자주식회사 | 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법 |
WO2011118012A1 (ja) * | 2010-03-25 | 2011-09-29 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
JP5354102B2 (ja) * | 2010-06-29 | 2013-11-27 | 富士通株式会社 | マルチコアプロセッサシステム、通信制御方法、および通信制御プログラム |
US8762794B2 (en) * | 2010-11-18 | 2014-06-24 | Nec Laboratories America, Inc. | Cross-layer system architecture design |
KR101880452B1 (ko) | 2012-02-06 | 2018-08-17 | 삼성전자주식회사 | 커널 수행 순서 스케줄링 방법 및 장치 |
US20130227238A1 (en) * | 2012-02-28 | 2013-08-29 | Thomas VIJVERBERG | Device and method for a time and space partitioned based operating system on a multi-core processor |
EP2833264B1 (en) * | 2012-03-29 | 2020-06-24 | Hitachi, Ltd. | Virtual computer schedule method |
FR2993070B1 (fr) * | 2012-07-09 | 2014-07-18 | Commissariat Energie Atomique | Procede d'execution, au sein d'un systeme embarque multitaches, d'une application cadencee par plusieurs domaines de temps differents incluant une gestion d'interruptions |
CN103870327A (zh) * | 2012-12-18 | 2014-06-18 | 华为技术有限公司 | 一种实时多任务调度方法和装置 |
US9304945B2 (en) * | 2013-01-24 | 2016-04-05 | Raytheon Company | Synchronizing parallel applications in an asymmetric multi-processing system |
JP6540166B2 (ja) * | 2015-03-31 | 2019-07-10 | オムロン株式会社 | 制御装置 |
US9720836B2 (en) | 2015-05-11 | 2017-08-01 | International Business Machines Corporation | Preemptible-RCU CPU hotplugging while maintaining real-time response |
CN105718320B (zh) * | 2016-01-18 | 2020-11-06 | 华为技术有限公司 | 一种时钟任务处理方法、装置及设备 |
CN106911592B (zh) * | 2016-06-01 | 2020-06-12 | 创新先进技术有限公司 | 一种自适应资源分配方法及装置 |
CN107463856B (zh) * | 2017-08-01 | 2020-06-16 | 杭州中天微***有限公司 | 一种基于可信内核的防攻击数据处理器 |
JP7253871B2 (ja) | 2017-11-28 | 2023-04-07 | サントリーホールディングス株式会社 | 自動販売機及び自動販売機からコイン状の物体を供給する方法 |
CN109002659B (zh) * | 2018-09-07 | 2020-08-28 | 西安交通大学 | 一种基于超级计算机的流体机械仿真程序优化方法 |
CN111897635B (zh) * | 2020-07-10 | 2022-11-22 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于时间触发的硬实时和软实时的任务调度方法 |
CN117806789A (zh) * | 2023-11-01 | 2024-04-02 | 宁德时代(上海)智能科技有限公司 | 多核操作***的任务处理方法、装置及计算设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1488097A (zh) * | 2000-11-13 | 2004-04-07 | �Դ���� | 具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法 |
WO2007051935A1 (fr) * | 2005-11-04 | 2007-05-10 | Commissariat A L'energie Atomique | Procede et systeme de calcul intensif multitache et multiflot en temps reel |
US20080244599A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Master And Subordinate Operating System Kernels For Heterogeneous Multiprocessor Systems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69031233T2 (de) | 1989-02-24 | 1997-12-04 | At & T Corp | Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme |
US5481707A (en) * | 1991-05-19 | 1996-01-02 | Unisys Corporation | Dedicated processor for task I/O and memory management |
US8225320B2 (en) * | 2006-08-31 | 2012-07-17 | Advanced Simulation Technology, Inc. | Processing data using continuous processing task and binary routine |
JP2008090546A (ja) | 2006-09-29 | 2008-04-17 | Toshiba Corp | マルチプロセッサシステム |
US8397235B2 (en) * | 2008-10-07 | 2013-03-12 | Futurewei Technologies, Inc. | User tolerance based scheduling method for aperiodic real-time tasks |
-
2008
- 2008-10-17 FR FR0805770A patent/FR2937439B1/fr not_active Expired - Fee Related
-
2009
- 2009-10-16 WO PCT/EP2009/063577 patent/WO2010043706A2/fr active Application Filing
- 2009-10-16 EP EP09743885.7A patent/EP2338109B1/fr active Active
- 2009-10-16 CN CN200980145920XA patent/CN102216902A/zh active Pending
- 2009-10-16 US US13/124,494 patent/US9128752B2/en active Active
- 2009-10-16 JP JP2011531504A patent/JP5688591B2/ja active Active
- 2009-10-16 CA CA2740978A patent/CA2740978C/en active Active
- 2009-10-16 KR KR1020117011164A patent/KR101629989B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1488097A (zh) * | 2000-11-13 | 2004-04-07 | �Դ���� | 具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法 |
WO2007051935A1 (fr) * | 2005-11-04 | 2007-05-10 | Commissariat A L'energie Atomique | Procede et systeme de calcul intensif multitache et multiflot en temps reel |
US20080244599A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Master And Subordinate Operating System Kernels For Heterogeneous Multiprocessor Systems |
Non-Patent Citations (1)
Title |
---|
MINYEOL SEO等: "An effective Design of Master-Slave Operating System Architecture for Multiprocessor Embedded System", 《ADVANCES IN COMPUTER SYSTEMS ARCHITECTURE》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577376A (zh) * | 2012-08-02 | 2014-02-12 | 通用汽车环球科技运作有限责任公司 | 改善多核芯处理器的处理性能的方法和装置 |
CN103577376B (zh) * | 2012-08-02 | 2016-11-02 | 通用汽车环球科技运作有限责任公司 | 改善多核芯处理器的处理性能的方法 |
CN103914346A (zh) * | 2013-12-16 | 2014-07-09 | 西北工业大学 | 一种基于分组的实时操作***双优先级任务调度节能方法 |
CN103744342A (zh) * | 2014-01-22 | 2014-04-23 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制*** |
CN103744342B (zh) * | 2014-01-22 | 2016-09-14 | 大连理工计算机控制工程有限公司 | 一种基于双核处理器的pac实时控制*** |
CN110837415A (zh) * | 2018-08-17 | 2020-02-25 | 北京嘉楠捷思信息技术有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
CN110837415B (zh) * | 2018-08-17 | 2024-04-26 | 嘉楠明芯(北京)科技有限公司 | 一种基于risc-v多核处理器的线程调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CA2740978C (en) | 2017-12-05 |
EP2338109B1 (fr) | 2018-01-17 |
WO2010043706A3 (fr) | 2011-03-24 |
JP2012506082A (ja) | 2012-03-08 |
JP5688591B2 (ja) | 2015-03-25 |
CA2740978A1 (en) | 2010-04-22 |
EP2338109A2 (fr) | 2011-06-29 |
KR101629989B1 (ko) | 2016-06-21 |
KR20110071018A (ko) | 2011-06-27 |
FR2937439A1 (fr) | 2010-04-23 |
FR2937439B1 (fr) | 2012-04-20 |
US20110302589A1 (en) | 2011-12-08 |
WO2010043706A2 (fr) | 2010-04-22 |
US9128752B2 (en) | 2015-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102216902A (zh) | 确定性执行和同步包括执行***任务的多个处理核心的信息处理***的方法 | |
Lampson | A scheduling philosophy for multiprocessing systems | |
US8423999B2 (en) | Computer system, virtual machine monitor and scheduling method for virtual machine monitor | |
US5506963A (en) | Real-time management system having coprocessors allocated time slices of different durations to functions and processors executed functions simultaneously in accordance with the time allocation | |
CN100504763C (zh) | 启用同时多线程(smt)的***及其管理方法 | |
CN104272256B (zh) | 任务处理装置 | |
JPH03144847A (ja) | マルチプロセッサ・システムおよびそのプロセス同期方法 | |
US8321874B2 (en) | Intelligent context migration for user mode scheduling | |
CN101203831A (zh) | 用于增强线程级推测的原语 | |
EP1520228A2 (en) | Multi-processor computer system | |
CN101452404A (zh) | 一种嵌入式操作***的任务调度装置及方法 | |
WO2009158220A2 (en) | Protected mode scheduling of operations | |
CN110447012A (zh) | 协作虚拟处理器调度 | |
CN103645941A (zh) | 一种新型无线传感器网络操作*** | |
Kopetz et al. | Real-time scheduling | |
CN109313581B (zh) | 用于多核处理器的同步操作的方法 | |
Sousa et al. | On the implementation of real-time slot-based task-splitting scheduling algorithms for multiprocessor systems | |
CN103995743A (zh) | 基于资源预约的两级混合任务调度方法 | |
Huang et al. | Investigating time properties of interrupt-driven programs | |
KR100728899B1 (ko) | 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서 | |
Mellin et al. | Refining timing constraints of applications in DeeDS | |
CN205959186U (zh) | 医疗多线程共享资源*** | |
Goubaa Ep Bettaieb | Software parametrization of feasible reconfigurable real-time systems under energy and dependency constraints | |
Irfanulla et al. | Real-time Resource Management in Smart Energy-Harvesting Systems | |
Yi-Min et al. | Research reform on real-time operating system based on Linux |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20160224 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |