CN100535862C - 优先化任务之间的有效切换 - Google Patents
优先化任务之间的有效切换 Download PDFInfo
- Publication number
- CN100535862C CN100535862C CNB2005800408842A CN200580040884A CN100535862C CN 100535862 C CN100535862 C CN 100535862C CN B2005800408842 A CNB2005800408842 A CN B2005800408842A CN 200580040884 A CN200580040884 A CN 200580040884A CN 100535862 C CN100535862 C CN 100535862C
- Authority
- CN
- China
- Prior art keywords
- task
- priority
- synchronic command
- processor
- memory stack
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 50
- 230000007246 mechanism Effects 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000010219 correlation analysis Methods 0.000 description 7
- 230000002146 bilateral effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000002123 temporal effect Effects 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/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Vehicle Body Suspensions (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- Power Steering Mechanism (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种处理器装置、任务调度方法和计算机程序产品,其中,将程序例程的任务基于所分配的优先级有选择地存储到至少两个具有不同优先级的存储器栈机构(62,64)内。响应于***到所述程序例程中的同步指令访问所述至少两个存储器栈机构(62,64),从而控制在所述至少两个处理器模块(20,30)处执行的任务切换。由此,能够实现优先化任务之间的有效的、零周期任务切换。
Description
技术领域
本发明涉及用于执行任务调度,从而在优先化任务之间提供有效切换的处理器装置、方法和计算机程序产品。
背景技术
就计算机的常规发展状况而言,任务切换指令序列导致了在任务之间的切换上耗费了大量的时间。将耗费在任务之间的切换上的时间称为任务变更处理开销。所述开销是寄存器存储和恢复所用的时间,并且其包括其他延迟,例如,确定任务优先级和任务执行论证所用的时间。因而,无法将这些时间段用于有效的处理当中。在很多新型计算机或处理器***中,这样的中断和任务变更处理开销占用几十到几百周期。
在消费者应用中,例如,必须对某些***数据进行实时处理,而对其他一些任务则能够以倾尽能力的方式处理。因此,程序由高优先级任务和低优先级任务构成,并且要执行相关分析,以导出任务之间的时间相关性。通常提供主处理器用于运行普通任务,而用协处理器以时间/能力有效的方式运行专门任务,而且必须通过主处理器上运行的任务将其配置为在前。其目的在于使相关程序得到最短等待执行的时间。
图2(a)示出了程序的例子及其大部分并行执行。以顺序程序语言,例如C语言写下初始程序。其包括高优先级任务HPi、低优先级任务LPi和能够在独立协处理器上运行的任务CPi。编译-时间相关性分析确定了任务的局部顺序,如图2(b)的例子所示。根据图2(b),低优先级任务LP1能够立即启动,并且对其他任务不具有任何依赖性,而低优先级任务LP7则依赖于高优先级任务HP4的执行。可以从图2(b)所示的时间顺序汇集高优先级任务HP2、HP4、HP6、HP8、HP10和协处理器任务CP3、CP5、CP9和CP10的相关性,其中,所述示意图中的每一下方任务均取决于上方任务,因而不能在完成上方任务之前执行。
图2(c)示出了这一程序的预期执行流。如果可以获得任何能够在一般或主处理器上执行的高优先级任务,那么应当立即开始执行。如果还没有有待执行的高优先级任务,那么主处理器能够将其时间用在执行低优先级任务上。将这样的调度称为抢先调度,例如,在L.Peterson等人的“Operating System Concepts”,Addison Wesley,1986中对这样的调度给出了说明。
可以将所述相关分析简化为这样一种分析,其中,按照C程序的顺序对高优先级任务和协处理器任务排序,并尽快使低优先级任务按照这一顺序并行设置。
但是,由于通常在编译时不知道任务的延迟,因而不能将执行追踪有效地编写在单线程汇编程序中。
图3示出了两个不同执行追踪的例子,所述的两个不同的执行追踪源自于同一程序及其相关分析,并且是由协处理器CP3和CP5的不同运行时延迟导致的。具体而言,图3(a)示出了第一执行追踪,其中,以短运行时延迟执行协处理器任务CP3和CP5,从而能够在较早的阶段执行高优先级任务。与之形成对比的是,图3(b)示出了第二执行追踪,其中,协处理器任务CP3和CP5占用了更多的周期,因而主处理器需要等待更长的时间来执行低优先级任务LP1,并在较晚的阶段执行高优先级任务HP6、HP8和HP10。
因此,不能预先确定执行追踪,并且任务切换应当是运行时活动。操作***将根据可得的任务以它们的优先级为基础将所述任务分配给处理器。为了实现这一点,通常采用堆或优先级队列存储任务及其优先级。例如,在T.H.Cormen等人的“Introduction to algorithms”,MIT Press,1990中对其进行了说明。这一提议的缺点在于,向/从这样的结构存储/检索任务要占用大量的处理周期。与任务的数量相比,其将任务切换的适用性限制在了由很多周期构成的大粒度任务上,因为如若不然,任务切换开销将变得显著,甚至与程序的顺序执行相比可能导致周期的损失。
但是,在具有细粒度的域或应用中,这一方法将不起作用,因而希望获得优选具有零周期的任务切换。
发明内容
因此,本发明的目的在于提供一种改进的任务调度方案,通过其能够在没有存储和检索成本缺点的情况下执行并行任务切换。
这一目的是通过根据本发明的处理器装置、和任务调度方法。
根据本发明的一个方面,提供了一种处理器装置,包括:a)至少两个各自具有存储器存取功能的处理器模块(20,30),其用于以分配给程序例程的任务的优先级为基础处理所述任务;b)至少两个具有不同优先级的存储器栈机构(62,64),其用于以所分配到的优先级为基础选择性地存储任务;以及c)任务切换模块(50),其用于响应于***到所述程序例程中的同步指令访问所述至少两个存储器栈机构(62,64),从而控制在所述至少两个处理器模块(20,30)处执行的任务的切换。
根据本发明的另一个方面,提供了一种在处理器装置中执行任务调度的方法,所述处理器装置具有至少两个各自具有存储器存取功能的处理器模块(20,30),所述方法包括的步骤有:a)基于所分配到的优先级将程序例程的任务选择性地存储到至少两个具有不同优先级的存储器栈机构(62,64)中;b)将同步指令***到所述程序例程中;以及c)响应于所述同步指令访问所述至少两个存储器栈机构(62,64),由此控制在所述至少两个处理器模块(20,30)处执行的任务的切换。
因此,通过响应于***到程序例程内的同步指令访问至少两个存储器栈,由此执行任务切换。最初将任务推入将占用一个周期,与此同时,与常用程序指令同时调用同步指令,其能够在没有开销的情况下实现任务切换。因而,能够获得优先化任务之间的有效切换。
可以提供运行时处理模块,其用于监测所述至少两个存储器栈,并提供对具有最高优先级的非空存储器栈的顶部的访问。由此能够确保在访问存储器栈时使高优先级任务优先于低优先级任务。
所述同步指令可以包括启动指令,其用于将所述处理器模块中的一个的程序计数器设置为指定任务地址,以及将所述处理器模块中的另一个的当前任务从所述至少两个存储器栈中具有高优先级的一个中退栈。这一指令在处理器模块的高优先级任务之间提供了有效切换。
此外,所述同步指令可以包括停止指令,其用于将指定任务推入到所述至少两个存储器栈机构中具有高优先级的一个上,以及采用所述处理器模块中的一个的下一任务地址替代所述至少两个存储器栈机构中具有低优先级的一个的顶部。这一指令当在另一处理器模块处执行完相关任务之后提供了有效逆向切换。
最后,所述同步指令可以包括保持指令,其用于使当前任务从所述至少两个存储器栈中具有高优先级的一个中退栈,以及存储指定任务地址。可以结合抢先高优先级任务有利地采用这一任选保持指令。
所述任务切换模块适于从指令自身中导出指定任务地址。由于所述同步指令中已经包含了指定任务地址,因而不需要为地址检索提供额外的任务切换周期。
可以基于程序例程的任务的相关性分析步骤向程序例程的汇编码中***同步指令。由此,能够在不需要外部交互的情况下实现对汇编码的自动修改。
能够与程序例程的常用或常规指令同时调用低优先级任务和高优先级任务之间的切换。通过这种措施,能够避免为任务切换分配额外的处理周期。
附图说明
现在将参考附图、基于优选实施例对本发明予以说明,其中:
图1示出了根据优选实施例的处理器装置的示意性方框图,
图2示出了具有任务切换的并行化执行流的例子的示意图;
图3示出了取决于运行时延迟的、不同执行追踪的示意性表示;
图4示出了根据优选实施例的针对不同优先级等级的双侧栈存储器和交替独立栈存储器;
图5示出了执行不具有开销的同步指令的示意流程图;
图6示出了根据优选实施例、执行允许高优先级任务抢先的同步指令的示意流程图;
图7示出了说明根据优选实施例的同步指令的执行的第一实例的示意流程图;
图8示出了说明根据优选实施例的同步指令的执行的第二实例的示意流程图;以及
图9示出了根据优选实施例的同步指令的处理的示意流程图。
具体实施方式
现在将描述处理器装置的优选实施例,所述处理器装置具有主处理器20和协处理器30,从而基于具有支持功能的双侧栈60执行两级优先级任务的任务切换。
图1示出了所提出的架构的示意性方框图,所述架构包括主处理器20和用于专门任务的协处理器30,二者各自都能够对存储***10进行存取,在存储***10中存储了程序代码或例程以及处理数据。存储***10的至少一部分可以由两个处理器共享,即两个处理器都可以对同一共享存储器单元进行存取,其中,所述存储***10由单个或多个存储电路或器件构成。所述主处理器20可以安装有操作***,其执行各种功能,包括***存储器管理、***任务管理和其他在该***上运行的本地任务。
此外,提供任务调度功能或单元50,以控制主处理器20和协处理器30之间的任务切换。根据优选实施例,将优先化任务存储在栈存储器60的相应的优先级相关栈内,任务切换单元50可以通过运行时处理功能或单元40访问栈存储器60,其中运行时处理功能或单元40用于管理对栈存储器60的访问。应当注意,可以通过单独的软件或硬件功能实现任务调度单元50和运行时处理单元40,或者可以将其提供为运行于主处理器20上的操作***的一部分。但是,应当注意软件实现自然会导致与效率相关的折衷。
图4(a)示出了被布置为双侧栈的栈存储器60的第一实例,其中,运行时处理单元40提供了对任务切换的支持。在本实例中,任务切换限于二级优先级任务,可以将其应用于具有高优先级任务和低优先级任务的相应数字信号处理背景下。出于这一目的,栈存储器60包括被空栈或栈字段或者通过预定比特或信息模式(如图4(a)中的阴影部分所示)分开的低优先级栈64和高优先级栈62。
但是,本发明不限于双侧栈或两个独立的栈存储器。可以扩展为采用针对不同级别的优先级的独立栈,例如,所述不同级别的优先级可以是高优先级、中优先级、低优先级乃至更多级别的优先级。
图4(b)示出了栈存储器60的第二实例,其中,提供了独立的栈存储器,每一栈存储器表示指定级别的优先级。最低栈字段(如阴影部分所示)是空的,或者含有表示栈末尾的预定信息。
通常,可以通过任何类型的存储器件或电路,基于任何栈机制实现上述栈存储器。
再次参考图1,任务调度单元50能够对主处理器20和协处理器30二者进行访问。此外,任务调度单元50能够访问存储***10。与运行时处理单元40连接的任务调度单元50和栈存储器60将通过在运行时处理同步指令而支持任务切换。基于可以由操作***执行的相关分析的结果,将所述指令***到存储在存储***10内的程序或例程的汇编码当中。最初使任务向栈存储器60内进栈将占用一个周期,与此同时,与常用指令同时调用同步指令,同步指令例如是开始协理器任务、终止协处理器任务以及低优先级任务和高优先级任务之间的切换等。只需简单地向常用指令中添加额外的比特就能够实现额外的同步指令的加入,从而实现无开销的任务切换。
图5示出了执行不具有开销的同步指令的示意流程图。使同步指令附着于常用指令。在图5的例子中,将启动指令“Start_cp(CP_address,HP_address)”***到高优先任务HP2的末尾,从而将协处理器的程序计数器设置为指定地址“CP_address”,并传递高优先级任务的下一地址“HP_address”。此外,这一启动指令将引起退栈操作,所述操作使调用协处理器30的高优先级任务从栈存储器60的高优先级栈62退栈。在协处理器任务CP3的末尾,加入了停止指令“Stop_cp(HP_address)”,其采用低优先级任务的下一个地址“LP_address”替代低优先级栈64的顶部,并使高优先级任务的下一个地址“HP_address”进栈到低优先级栈64。
运行时处理单元40对高优先级栈62和低优先级栈64二者进行监测,并执行高优先级栈62的顶部的任务,如果那里没有剩下的任务了,它就执行低优先级栈64的顶部的任务。
这样将同步指令***或加入到汇编码当中,由此控制任务切换。与运行时处理单元40连接的栈存储器60和任务调度单元50将通过在运行时处理这些同步指令而支持任务切换。就上文所述的非抢先高优先级任务的情况而言,可以采用启动指令和停止指令。
作为替换或修改,可以为抢先高优先级任务提供额外的保持指令,在下文中将对其予以说明。
图6示出了在不需要开销的情况下执行的相应同步指令的示意流程图,其允许处于临界相关性的高优先级任务抢先。可以将这种方案应用于执行更为详细的相关性分析的情况下,其允许高优先级任务朝向实际需要来自协处理器任务的信息的点继续其执行。
根据图6,在高优先级任务HP2的执行过程中,***启动指令“Start_cp(CP_address)”,其将协处理器的程序计数器设定为指定地址“CP_address”。此外,***保持指令“Hold_task(HP_address)”,其使当前高优先级任务从高优先级栈62退栈,并存储所述高优先级任务的下一个地址“HP_address”。在执行协处理器任务CP3之后,如果高优先级任务处于保持状态,那么添加将低优先级任务的下一个地址存储到低优先级栈64内的停止指令“Stop_cp”,并将高优先级任务的下一个地址推入高优先级栈62上。
在下文中,将参考图7和图8解释处理实例。这一例子是以图5所示的非抢先同步指令为基础的。
具体而言,图7(a)示出了操作***的相关分析的结果,图7(b)示出了栈存储器60的内容,图7(c)示出了主处理器20的运行程序。在出现高优先级任务时,任务调度单元50经由运行时处理单元40将其推入到高优先级栈62的顶部,使主处理器20的程序计数器切换至这一高优先级任务HP2所处的存储***10的存储器地址。类似地,将通过相应的推入操作将第一低优先级任务LP1推入到低优先级栈64的顶部。
图8示出了第一高优先级任务HP2已经结束并发出了切换指令的情况。如果高优先级栈62包括下一高优先级任务HP4,那么运行时处理单元40将通过如下方式控制对栈存储器60的访问,即只要任务调度单元50没有确定高优先级任务HP4与同时运行的协处理器任务CP3具有相关性,就执行高优先级任务HP4。如果高优先级栈62是空的,或者高优先级栈62上的下一高优先级任务与同时运行的协处理器任务CP3具有相关性(其表示高优先级任务HP4必须等到协处理器完成操作之后,如图8(a)所示),那么程序计数器将跳转到低优先级栈64上的第一个低优先级任务LP1,并执行这一任务,直到接收到了来自协处理器30的中断信号。这一中断信号引起低优先级任务LP1中止,并将程序计数器改为处于高优先级栈62的行或队列内的下一高优先级任务HP4。
根据优选实施例,只要将由同步指令触发的功能调用作为对高优先级或协处理器任务的调用或跳转处理,就能保持对程序语言的支持。将对应的功能推入到高优先级栈62的顶部,或者将其作为协处理器任务调用。
图9示出了由任务调度单元50执行的控制过程的示意流程图。在步骤S100中,从存储***10中取出下一指令码(汇编码),如果提供了同步指令,那么在步骤S101中提取所述同步指令。之后,在步骤S102中对同步指令译码,以确定用于任务调度的同步指令的类型。根据优选实施例,译码步骤S102可以确定用于协处理器30的启动指令,使得所述过程分支到步骤S103,在步骤S103中,将协处理器30的程序计数器PC2设定为给定的协处理器地址,并传递高优先级任务的下一地址。另一方面,如果在译码步骤S102中探测到针对协处理器30的停止指令,那么该过程分支到步骤S104,其中,任务调度单元50通过操作采用低优先级任务的下一地址替代低优先级栈64的顶部,并将高优先级任务的下一地址推入到高优先级栈62的顶部。在允许或实施抢先高优先级任务的任选情况下,可以在步骤S102中对保持指令译码,之后,该过程可以分支到步骤S105,从而使任务调度单元50通过操作使当前任务从高优先级栈62中退栈,并存储所述高优先级任务的下一地址。由此,实现了优先化任务之间的高度有效的任务切换,并将其作为针对细粒度任务的零周期任务切换选择。
总之,提出了一种任务调度方案,其中,将程序例程的任务基于指定的优先级有选择地存储在至少两个具有不同优先级的存储器栈机构内。响应于***在程序例程中的同步指令访问所述至少两个存储器栈机构,由此控制在所述至少两个处理器模块处执行的任务的切换。由此,能够实现优先化任务之间的有效的、零周期任务切换。
应当注意,可以将所提出的根据上述优选实施例的解决方案引入到任何为上下文切换或就共享寄存器而言为状态保存保留了最终的额外周期的主/协处理器方案。具体而言,本发明适用于任何如下领域,即任务能够在没有高优先级任务需要执行的情况下填充处理时隙。此类领域的例子包括图像视图、具有用户交互和背景画面的游戏应用、具有危险和非危险情况的安全应用、具有危险和非危险情况的冲突检测、具有错误方向处理和路程跟踪处理的GPS(全球定位***)应用、具有流处理和用户界面处理的实时信号处理、具有电话呼叫处理和游戏处理的移动电话应用等。
此外,应当注意栈存储器60的结构不限于上述双侧存储器栈,可以采用任何类型的栈存储器或具有其他存储器类型的栈存储器机构。此外,可以将本发明用于在两个以上的处理器装置之间切换任务。当然,可以采用具有其他记法的其他同步指令控制与栈存储器60联系的任务切换。可以以任何方式或长度将它们加入或添加到常规或常用程序指令内。因而,优选实施例可以在权利要求的范围内变化。
应当进一步指出,上述实施例的作用在于对本发明举例说明,而不是限制本发明,本领域技术人员可以在不背离由相关权利要求界定的本发明的范围的情况下设计出很多替代的实施例。在权利要求中,不应将任何置于括号内的附图标记视作是对权利要求的限制。“包括”等词语不排除在任何权利要求或整个说明书中列举的元件或步骤之外还存在其他元件或步骤。对元件的单数引用不排除对此类元件的复数引用,反之亦然。如果在互不相同的从属权利要求内引用了某些措施,那么不表示不能从有利的角度将这些措施结合使用。
Claims (11)
1、一种处理器装置,包括:
a)至少两个各自具有存储器存取功能的处理器模块(20,30),其用于以分配给程序例程的任务的优先级为基础处理所述任务;
b)至少两个具有不同优先级的存储器栈机构(62,64),其用于以所分配到的优先级为基础选择性地存储任务;以及
c)任务切换模块(50),其用于响应于***到所述程序例程中的同步指令访问所述至少两个存储器栈机构(62,64),从而控制在所述至少两个处理器模块(20,30)处执行的任务的切换。
2、根据权利要求1所述的装置,还包括运行时处理模块(40),其用于监测所述至少两个存储器栈机构(62,64),并且用于提供对具有最高优先级的非空存储器栈机构的顶部的访问。
3、根据权利要求1所述的装置,其中,所述同步指令包括启动指令,其用于将所述处理器模块中的一个(30)的程序计数器设置为指定任务地址,以及使所述处理器模块中的另一个(20)的当前任务从所述至少两个存储器栈机构(62,64)中具有高优先级的一个(62)中退栈。
4、根据权利要求1所述的装置,其中,所述同步指令包括停止指令,其用于将指定任务地址推入到所述至少两个存储器栈机构(62,64)中具有高优先级的一个(62)上,以及采用所述处理器模块中的一个(20)的下一任务地址替代所述至少两个存储器栈机构(62,64)中具有低优先级的一个(64)的顶部。
5、根据权利要求1所述的装置,其中,所述同步指令包括保持指令,其用于使当前任务从所述至少两个存储器栈机构(62,64)中具有高优先级的一个(62)中退栈,以及存储指定任务地址。
6、根据权利要求3到5中的任何一项所述的装置,其中,所述任务切换模块(50)适于从所述同步指令中导出所述指定任务地址。
7、根据权利要求1所述的装置,其中,将所述同步指令作为附加位添加到所述程序例程的指令上。
8、一种在处理器装置中执行任务调度的方法,所述处理器装置具有至少两个各自具有存储器存取功能的处理器模块(20,30),所述方法包括的步骤有:
a)基于所分配到的优先级将程序例程的任务选择性地存储到至少两个具有不同优先级的存储器栈机构(62,64)中;
b)将同步指令***到所述程序例程中;以及
c)响应于所述同步指令访问所述至少两个存储器栈机构(62,64),由此控制在所述至少两个处理器模块(20,30)处执行的任务的切换。
9、根据权利要求8所述的方法,其中,步骤b)还包括分析所述程序例程的任务的相关性的步骤,以及基于所述分析步骤的结果将所述同步指令***到所述程序例程的汇编码内的步骤。
10、根据权利要求8或9所述的方法,其中,所述同步指令包括用于在所述处理器模块中的一个上开始任务的启动指令、用于在所述处理器模块中的一个上停止任务的停止指令以及在所述处理器模块中的一个上保持任务的保持指令。
11、根据权利要求8到9中的任何一项所述的方法,其中,步骤c)还包括以下步骤:与所述程序例程的常用指令的执行同时地调用低优先级任务和高优先级任务之间的切换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04106190 | 2004-11-30 | ||
EP04106190.4 | 2004-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101065728A CN101065728A (zh) | 2007-10-31 |
CN100535862C true CN100535862C (zh) | 2009-09-02 |
Family
ID=36228556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800408842A Expired - Fee Related CN100535862C (zh) | 2004-11-30 | 2005-11-24 | 优先化任务之间的有效切换 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20080098398A1 (zh) |
EP (1) | EP1820100B1 (zh) |
JP (1) | JP2008522277A (zh) |
CN (1) | CN100535862C (zh) |
AT (1) | ATE406613T1 (zh) |
DE (1) | DE602005009398D1 (zh) |
WO (1) | WO2006072841A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007026095A (ja) * | 2005-07-15 | 2007-02-01 | Matsushita Electric Ind Co Ltd | 並列演算装置 |
US8032889B2 (en) * | 2006-04-05 | 2011-10-04 | Maxwell Technologies, Inc. | Methods and apparatus for managing and controlling power consumption and heat generation in computer systems |
US8281294B1 (en) * | 2007-11-12 | 2012-10-02 | Nvidia Corporation | System and method for representing and managing a multi-architecture co-processor application program |
US8276132B1 (en) * | 2007-11-12 | 2012-09-25 | Nvidia Corporation | System and method for representing and managing a multi-architecture co-processor application program |
WO2009090684A1 (ja) * | 2008-01-15 | 2009-07-23 | Netcleus Systems Corporation | タスク処理装置 |
CN101290590B (zh) * | 2008-06-03 | 2012-01-11 | 北京中星微电子有限公司 | 一种嵌入式操作***中切换任务的方法和单元 |
CN101290591B (zh) * | 2008-06-03 | 2011-10-12 | 北京中星微电子有限公司 | 一种嵌入式操作***中切换任务的方法和单元 |
FR2942556B1 (fr) * | 2009-02-24 | 2011-03-25 | Commissariat Energie Atomique | Unite d'allocation et de controle |
US20120192147A1 (en) * | 2011-01-25 | 2012-07-26 | Argen Wong | Develop real time software without an RTOS |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4286322A (en) * | 1979-07-03 | 1981-08-25 | International Business Machines Corporation | Task handling apparatus |
US4435780A (en) * | 1981-06-16 | 1984-03-06 | International Business Machines Corporation | Separate stack areas for plural processes |
GB2191612A (en) * | 1986-06-11 | 1987-12-16 | Ibm | Display terminal |
JPH02271435A (ja) * | 1989-04-13 | 1990-11-06 | Mitsubishi Electric Corp | タスクトレース装置 |
US5161226A (en) * | 1991-05-10 | 1992-11-03 | Jmi Software Consultants Inc. | Microprocessor inverse processor state usage |
EP0706126A1 (en) * | 1994-10-07 | 1996-04-10 | International Business Machines Corporation | Multi-priority level scheduler |
EP0842470B1 (en) * | 1995-07-27 | 2003-09-24 | Intel Corporation | Protocol for arbitrating access to a shared memory area using historical state information |
US6128728A (en) * | 1997-08-01 | 2000-10-03 | Micron Technology, Inc. | Virtual shadow registers and virtual register windows |
US6157989A (en) * | 1998-06-03 | 2000-12-05 | Motorola, Inc. | Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system |
JP4072271B2 (ja) * | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
US6993018B1 (en) * | 1999-08-03 | 2006-01-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Priority signaling for cell switching |
FR2799081B1 (fr) * | 1999-09-27 | 2002-02-22 | Cit Alcatel | Procede et dispositif de gestion des circuits de transmission d'un reseau |
JP3641997B2 (ja) * | 2000-03-30 | 2005-04-27 | 日本電気株式会社 | プログラム変換装置及び方法並びに記録媒体 |
US6822959B2 (en) * | 2000-07-31 | 2004-11-23 | Mindspeed Technologies, Inc. | Enhancing performance by pre-fetching and caching data directly in a communication processor's register set |
US6751711B1 (en) * | 2000-10-27 | 2004-06-15 | Nortel Networks Limited | Methods and systems for process rollback in a shared memory parallel processor computing environment |
GB2369464B (en) * | 2000-11-27 | 2005-01-05 | Advanced Risc Mach Ltd | A data processing apparatus and method for saving return state |
US20030014474A1 (en) * | 2001-05-30 | 2003-01-16 | Mckaig Ray S. | Alternate zero overhead task change circuit |
EP1391820A3 (en) * | 2002-07-31 | 2007-12-19 | Texas Instruments Incorporated | Concurrent task execution in a multi-processor, single operating system environment |
US20050015768A1 (en) * | 2002-12-31 | 2005-01-20 | Moore Mark Justin | System and method for providing hardware-assisted task scheduling |
CA2514662A1 (en) * | 2003-02-11 | 2004-08-26 | Thomson Licensing | Asynchronous communications technique |
US7487502B2 (en) * | 2003-02-19 | 2009-02-03 | Intel Corporation | Programmable event driven yield mechanism which may activate other threads |
DE10353267B3 (de) * | 2003-11-14 | 2005-07-28 | Infineon Technologies Ag | Multithread-Prozessorarchitektur zum getriggerten Thread-Umschalten ohne Zykluszeitverlust und ohne Umschalt-Programmbefehl |
US7904905B2 (en) * | 2003-11-14 | 2011-03-08 | Stmicroelectronics, Inc. | System and method for efficiently executing single program multiple data (SPMD) programs |
-
2005
- 2005-11-24 WO PCT/IB2005/053897 patent/WO2006072841A2/en active IP Right Grant
- 2005-11-24 DE DE602005009398T patent/DE602005009398D1/de active Active
- 2005-11-24 JP JP2007542478A patent/JP2008522277A/ja not_active Revoked
- 2005-11-24 AT AT05826687T patent/ATE406613T1/de not_active IP Right Cessation
- 2005-11-24 EP EP05826687A patent/EP1820100B1/en not_active Not-in-force
- 2005-11-24 US US11/719,964 patent/US20080098398A1/en not_active Abandoned
- 2005-11-24 CN CNB2005800408842A patent/CN100535862C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE406613T1 (de) | 2008-09-15 |
EP1820100A2 (en) | 2007-08-22 |
DE602005009398D1 (de) | 2008-10-09 |
EP1820100B1 (en) | 2008-08-27 |
WO2006072841A3 (en) | 2006-10-12 |
US20080098398A1 (en) | 2008-04-24 |
JP2008522277A (ja) | 2008-06-26 |
WO2006072841A2 (en) | 2006-07-13 |
CN101065728A (zh) | 2007-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100535862C (zh) | 优先化任务之间的有效切换 | |
RU2285947C2 (ru) | Способ обеспечения безопасности с детерминированным выполнением в реальном времени многозадачных приложений типа управление-регулирование с локализацией ошибок | |
KR101255382B1 (ko) | 운영체제에 친숙한 부트로더 | |
CN102193853B (zh) | 虚拟机监控器及其调度方法 | |
CN1318968C (zh) | 执行实时操作的方法和*** | |
CN100504763C (zh) | 启用同时多线程(smt)的***及其管理方法 | |
KR101664108B1 (ko) | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 | |
CN103080903A (zh) | 调度器、多核处理器***以及调度方法 | |
CN100449478C (zh) | 用于实时多线程处理的方法和装置 | |
CN1940858B (zh) | 媒体播放装置上实现多任务的方法 | |
JPH07200323A (ja) | 解放された同期メカニズムの所有権を管理するための方法及びシステム | |
JP2008506187A (ja) | 複数のカーネルの並列実行のための方法およびシステム | |
JP2006515690A (ja) | 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法 | |
US10782999B2 (en) | Method, device, and single-tasking system for implementing multi-tasking in single-tasking system | |
CN104008013A (zh) | 一种核资源分配方法、装置及众核*** | |
CN101310257A (zh) | 多处理器***和用于使计算机执行多处理器***的控制方法的程序 | |
JP2009087332A (ja) | ダンプ・データを収集する装置、システム、方法およびプログラム | |
CN101005486A (zh) | 一种资源访问控制方法及*** | |
CN103577158A (zh) | 数据处理方法与装置 | |
CN103383642A (zh) | 用于从超前运行重新进入的设检查点的缓冲区 | |
CN101169737A (zh) | 任务切换控制方法以及计算机*** | |
EP1760580B1 (en) | Processing operation information transfer control system and method | |
JP2007188523A (ja) | タスク実行方法およびマルチプロセッサシステム | |
CN103970511A (zh) | 能够支持多模式的处理器及其多模式支持方法 | |
CN110443529A (zh) | 资源调度方法、装置、设备与计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090902 Termination date: 20121124 |