在包括多个寄存器组的处理器中,当使用寄存器组之一执行任务,下一个要执行的任务的上下文被恢复到另一寄存器组。如果当前正在执行的任务的执行在恢复开始之前被挂起,则通过使用其中保留之前执行的任务的上下文的寄存器组并执行该任务以继续任务执行。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种多任务处理器,具体来说,涉及一种有效执行任务的技术。
技术介绍
多任务的意思是单一计算机系统同时执行多个任务,即,由多个程序实现多个处理。然而,由于具有单一程序执行机制的计算机系统在一个时刻只能执行一个任务,其它控制机制例如OS(操作系统)使程序执行机制在极短的间隔内交替执行多个任务。这给用户一种错觉好像多个任务是同时执行。作为实现这种多任务的一种方法,循环方法已经为公众所知,其中多个任务按照分配给各任务的预先确定的时间周期循环执行。如果分配给任务用于程序执行机制的时间周期(下文中称为“时间片”)用完,该任务的执行暂时挂起。然后,重新设定执行该任务的顺序。当再次轮到该任务,重新开始该任务剩余部分的执行。当该任务的执行被暂时挂起时,保留在各种寄存器(下文中称为“寄存器组”)中该执行所需要的控制信息(下文中称为“上下文”)存储在存储器中。当该执行重新开始,存储在存储器中的上下文被存储在寄存器组中并且该执行从挂起点重新开始。关于该多任务,公开号为No.2003-271399的日本专利申请公开了一种为了通过在多个寄存器组之间执行切换避免程序执行机制的浪费以有效执行多个任务的技术。在该技术中,当采用寄存器组之一执行任务时,下一个要执行的任务的上下文预先存储在寄存器组的另一个中。一旦分配给采用该一个寄存器组正在执行的任务的执行时间周期结束,则采用另一个寄存器组执行下一个要执行的任务。这样,增加了执行多个任务的效率。
技术实现思路
本专利技术要解决的问题然而,当正在执行任务时,可能发生的一种情况为不能使用分配给任务的全部执行时间周期执行任务,即,高速缓存丢失等导致在分配的执行时间周期期间发生任务执行的挂起的情况。如果这种情况发生,在分配的执行时间周期的剩余时间周期中什么也不执行,或者按照在循环方法中设置的调度将要执行下一个要执行的任务。在剩余的时间周期中不执行意味着处理器将使程序执行机制空闲。同时,为了执行下一个要执行的任务,可能发生任务需要在寄存器组中的上下文存储完成之后执行的情况。因此,任何一种情况都没有有效地利用程序执行机制。本专利技术是考虑到关于任务执行的挂起的以上问题作出的,并且其目的在于提供一种能够采用单一程序执行机制以伪并行的方式更有效地执行多个任务的处理器。解决该问题的手段为了解决以上问题,根据本专利技术的处理器是一种根据分配给各任务的执行时间周期循环执行多个任务的处理器,所述处理器包括存储单元,用于存储分别对应所述任务的执行控制信息条目;多个寄存器组;执行单元,用于顺序采用寄存器组之一以基于保留在正在使用的寄存器组中的执行控制信息执行任务;选择单元,用于在所述任务中选择下一个要执行的任务;恢复单元,用于当任务其中之一正在执行分配给其的一个执行时间周期时,将对应选择的任务的一条执行控制信息恢复到除了正在使用的寄存器组之外的寄存器组其中之一内;检测单元,用于检测正在执行的任务之一的挂起原因;以及控制单元,用于(1)如果在恢复开始之前检测到挂起原因,使执行单元挂起执行并使用除了已经用于执行的寄存器组之外的寄存器组其中之一执行所述任务其中之一,以及(2)如果下一个要使用的寄存器组是其中恢复将要开始的寄存器组,使恢复单元取消恢复。本专利技术的效果通过以上结构,即使正在执行的任务需要挂起,根据本专利技术的处理器简单地通过基于在任务的执行被挂起之前刚执行的任务的信息在寄存器组之间执行切换来执行任务,所述信息保留在另一个寄存器组。因此,可以没有浪费地使用程序执行机制。同时,存储单元还可以存储各表示直到解决在正在执行的各任务时发生的挂起原因的时间周期的时间信息条目,并且只有在恢复完成之前检测到挂起原因并且控制单元基于对应的时间信息条目判断挂起原因在恢复完成之后被解决,控制单元使执行单元挂起该执行并且使用除了已经用于执行的寄存器组之外的寄存器组之一执行所述任务其中之一。通过以上结构,如果在正在执行的任务中发生的挂起原因在通过切换到另一各寄存器组开始另一个任务的执行之前被解决,该处理器可以等待挂起原因的解决。因此,与无条件地通过切换到另一个寄存器组执行任务的情况相比,可以更有效地使用程序执行机制。同时,存储单元还可以存储各关于在各任务执行时可能发生的挂起原因的信息条目,检测单元检测多种类型挂起原因,如果控制单元使执行单元基于检测到的挂起原因挂起所述任务其中之一的执行,选择单元参照有关挂起原因的存储信号的相应条目选择所述任务中不会发生与检测到的挂起原因相同类型的挂起原因的另一个任务。通过以上结构,在正在执行的任务中发生的挂起原因被解决之前,可以选择并执行不会发生与在正在执行的任务中发生的挂起原因类型相同的挂起原因的任务。因此,可以在程序执行机制用于处理挂起原因的能力范围之内执行任务。因此,可以更有效地使用程序执行机制。同时,处理还可以包括解决检测单元,用于检测挂起原因的解决,其中检测单元检测多种类型的挂起原因,并且如果(1)已经执行的任务的执行通过检测的挂起原因被挂起之后,所述任务中另一任务正在执行,并且(2)如果在检测到挂起原因的解决之前检测到与检测到的挂起原因相同类型的另一个挂起原因,控制单元可以使执行单元挂起所述中另一任务的执行并且不执行任务直到检测到解决。通过以上结构,如果与在正在执行的任务中发生的挂起原因相同类型的挂起原因在正在执行的任务中发生的挂起原因已经被解决之前发生,该任务不执行直到前一个挂起原因被解决。这可以防止相同类型的挂起原因的连续发生。换句话说,当任务的执行被挂起时,发生其中程序执行机制没有使用的时间周期。然而,这可以防止由于相同类型挂起原因的连续发生,超过程序执行机制的处理能力。因此,这样可以更有效地利用程序执行机制。此外,在当任务的执行被挂起时没有使用程序执行机制的时间周期中,不提供时钟。这可以抑制电功率损耗。附图说明图1中图1(A)表示根据本专利技术的处理器中多任务执行的实施例的时序图,而图1(B)是表示在传统处理器中正在执行的任务被挂起的实施例的时序图;图2表示处理器中已经执行的任务被挂起的实施例的时序图;图3表示在一实施方式中处理器1000的结构的功能方框图;图4中图4(A)表示任务控制表1810的结构及其内容的实施例,而图4(B)表示任务信息1820的结构及其内容的实施例;图5表示任务控制表1810和任务信息1820之间的对应的实施例;图6表示程序信息1910的结构及其内容的实施例;图7表示上下文信息1930的结构及其内容的实施例;图8表示任务切换处理(第一种方法)的流程图;图9表示下一个任务选择处理(第一种方法)的流程图;图10表示正在执行的任务的执行历史信息1822的转换,其中图10(A)表示其中在正在执行的任务中不发生挂起原因的实施例,而图10(B)表示其中正在执行的任务中发生挂起原因的实施例;图11表示任务切换处理(第二种方法)的流程图;图12表示下一个任务选择处理(第二种方法)的流程图;图13表示在执行任务切换处理(第二种方法)的情况下执行历史信息1822的转换,其中图13(A)表示其中挂起原因发生一次的情况,而图13(B)表示其中挂起原因发生两次的情况;图14表示在执行任务切换处理(第二种方法)的情况下任务控制表1810的实施例;图15表示在执行任务切换处理(第二种方法本文档来自技高网...
【技术保护点】
一种根据分配给各任务的执行时间周期循环执行多个任务的处理器,所述处理器包括:存储单元,用于存储分别对应所述任务的执行控制信息条目;多个寄存器组;执行单元,用于顺序采用寄存器组之一以基于保留在正在使用的寄存器组中的执行 控制信息执行任务;选择单元,用于在所述任务中选择下一个要执行的任务;恢复单元,用于当任务其中之一正在执行分配给其的一个执行时间周期时,将对应选择的任务的一条执行控制信息恢复到除了正在使用的寄存器组之外的寄存器组其中之一内; 检测单元,用于检测所述正在执行的任务其中之一的挂起原因;以及控制单元,用于(1)如果在恢复开始之前检测到挂起原因,使执行单元挂起执行并使用除了已经用于执行的寄存器组之外的寄存器组其中之一执行所述任务其中之一,以及(2)如果下一 个要使用的寄存器组是其中恢复将要开始的寄存器组,使恢复单元取消恢复。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:蔵田和司,
申请(专利权)人:松下电器产业株式会社,
类型:发明
国别省市:JP[日本]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。