CN1043932C - 多任务处理低功率控制器 - Google Patents
多任务处理低功率控制器 Download PDFInfo
- Publication number
- CN1043932C CN1043932C CN93121278A CN93121278A CN1043932C CN 1043932 C CN1043932 C CN 1043932C CN 93121278 A CN93121278 A CN 93121278A CN 93121278 A CN93121278 A CN 93121278A CN 1043932 C CN1043932 C CN 1043932C
- Authority
- CN
- China
- Prior art keywords
- task
- controller
- microprocessor
- scheduler
- signal
- 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
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 22
- 230000005055 memory storage Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000004886 process control Methods 0.000 abstract 1
- 101150065817 ROM2 gene Proteins 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 239000003607 modifier Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101000708578 Milk vetch dwarf virus (isolate N) Para-Rep C3 Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 235000013409 condiments Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 230000009711 regulatory function Effects 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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, 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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Abstract
一种多任务处理控制器,包含用于存储多达N个各含一系列指令的任务的任务存储装置,用于通过分时处理多个所述N个任务的微处理器,及用于存储所述微处理器的各种数据的数据存储装置。微处理器还包含以硬件实现用于通过进程控制微处理器的使用的调度部件,及用于存储各为调度部件所用的N个程序计数器的程序计数器存储装置,这样当微处理器处理的任务改变时调度部件能选择不同的一个程序计数器而无需从数据存储装置传输数据。
Description
本发明一般涉及多任务处理控制器,它包含用于通过分时处理各含一系列指令的多个任务的微处理器,用于存储多个所述任务的任务存储装置,比如ROM,以及用于存储所述微处理器产生和使用的多种数据的数据存储装置,例如RAM。该多任务处理控制器适于用在钟表领域中,下文中对应列举的实际应用来公开本发明将是方便的。然而,可以理解的是本发明并不限于该应用。
在钟表领域的许多应用是基于含有一系列顺序指令的任务。通常用微计算机来执行这种任务以此形成具备其要求功能的手表。现有微计算机包含用于存储待执行的每一个任务的指令的只读存储器或ROM,用于实现执行这些指令所需的操作的微处理器,以及用于存储该微处理器形成和使用的多种数据的随机存取存储器或RAM。值得注意地该微处理器包含用于执行算术和逻辑运算的算术-逻辑单元或ALU和用于存储这些运算的结果的一系列寄存器。控制、数据和地址总线连接该微处理器、ROM、RAM和I/O接口以允许这些设备与外部设备之间的通信。
利用微计算机来实现这些任务常常由于若干严格限制的存在而难于达到。微计算机不仅必须实时执行这些任务中的每一个。而且必须迅速响应内部产生或来自用户的信号。理想地,还应以功耗尽可能少的方式构造和执行这些任务。
手表设计者面临的另一挑战是用要求顺序执行一系列指令的任务来重现需同时发生的多种手表功能的操作。例如,可要求手表上的按钮动作的同时使步进电机工作,而同时又使位置测定器旋转。
为了解决该问题,已设计某些手表利用微计算机借助于多任务或分时处理技术同时执行若干个任务。在多任务处理中,允许ROM中必须执行的每一任务的部分依次运用微处理器。所执行任务快速循环使得用户看来每一任务正连续地并与其它任务同时地执行着。
常规上是借助于称之为调度程序部件的软件机构来实现由微处理器同时执行任务。这种机构以存储在ROM中的一系列指令实现,并管理上述由微处理器执行的多种任务的顺序。
虽然在计算机产业中其它地方普遍利用这种实施方式,但其不适于用在钟表领域中。由调度程度部件引入额外指令的负担使微处理器执行的任务的有效规模增大,并同时使其在速度和功耗方面的性能降低。
为了使在任务管理中必须执行的附加指令所导致的处理速度上的降低到最小,通常是使由微处理器依次执行的任务部分的大小为若干个指令长,以使任务尽可能少地发生变化。然而,这减少了表对用户输入及其它对任务初始化的请求的反应时间,这些输入和请求只能在另一任务的若干指令已执行之后起作用。
而且,由微处理器完成对许多任务的执行还要求执行该任务内指令的一个或多个子程序。当从现有多任务处理控制器中的一任务内启动子程序时,需要有附加指令,这样在执行子程序之后,可首先将表明任务以后将重新开始的指令的地址的程序计数器的值存储在RAM中。还可要求将累加寄存器和变址寄存器中的值加以存储。实现这些数据传输操作所需的额外指令进一步增大了微处理器所执行的任务的有效规模,并降低其运行速度和功率损耗。
本发明的目的是提供一种减少或克服了现有技术的缺点的多任务处理控制器。
考虑该目的,本发明提供一种包含用于存储多达N个各含有一系列指令的任务的任务存储装置,用于通过分时来处理所述N个任务的微处理器以及用于存储所述微处理器产生和运用的多种数据的数据存储装置的多任务处理控制器,其特征在于:所述微处理器还包含从硬件上实现用来以所述进程控制所述微处理器的运用的调度程序,以及用于存储各为所述调度部件所用的N个程序计数器的程序计数器存储装置,以控制所述N个进程中各个指令序列,以便所述调度程序能够在所述微处理器处理的任务改变时选择不同的一个所述程序计数器,而无需从所述数据存储装置传输数据。
为每一任务配备单独的程序计数器并以硬件实现调度程序使得能够更有效地管理由微处理器所处理的任务,允许程序计数器变化而不要求数据存储装置来回传输数据,由此减少存储在ROM中的指令数。避免了在任务管理期间执行多个附加指令的需要,因此降低了控制器的功耗,增加了执行任务的速度并减小了微处理器所处理部分的大小。所执行的任务还可更快地循环,由此改进控制器的响应时间。
有益地,多任务处理控制器还包含用于每一任务存储各累加值的分立的累加值存储装置,因此微处理器能够在所述微处理器处理的任务改变时选择不同的一个所述累加值,而不需要从所述数据存储装置传输数据。
该多任务处理控制器还可包括用于存储每个任务的各个变址值的变址值存储装置,这样当所述微处理器处理的任务改变时所述微处理器能够选择不同的一个所述变址值,而无需要求从所述数据存储装置传输数据。
在本发明的另一实施例中,微处理器是可构造的,以便依次处理X个所述任务中每一个的部分,其中1<X<N,剩余的N-X个任务中的一个或多个的程序计数器为所述微处理器所用以控制自所述X个任务之内调用的子程序的指令序列。
因此,当请求加以处理的任务数少于微处理器可处理的最大任务数时,剩下未用进程中一个或多个进程的程序计数器可以被使用以跟踪从一个任务内部调用的子程序的指令序列。因此重调用子程序时所用的程序计数器在已执行了子程序时仍保持使用。本发明调度部件的利用致使调用子程序时所需的数据传输以及完成该数据传输所需的附加指令数最小。如上所述,这降低了控制器的功耗,增加了其响应时间并达到更有效地管理其任务。
以下的描述更详细地涉及本发明多任务处理控制器的各种特征。为便于理解本发明,参照以图示出多任务处理控制器的最佳实施例的附图来描述本发明。可以理解本发明的多任务处理控制器并不受限于附图中所示出的最佳实施例。
附图中:
图1是表示本发明多任务处理控制器一个实施例的操作原理的示意图;
图2是表示图1多任务处理控制器所处理的进程的管理的示意图;
图3是表示图1控制器相对不同级别子程序的任务结构的示意图;
图4是表示图1控制器对图3示出的子程序的管理的示意图;以及
图5是表示安排内部和外部事件程序并用来请求由图1控制器所执行的进程的启动的示意图。
现在参见图1,该图总体示出了多任务处理控制器1,控制器1主要含有ROM2,指令寄存器/解码器3,资源组4,事件存储单元5,任务管单元6和用于存储四个程序计数器Pc0,Pc1,Pc2和Pc3中每个的各寄存器。ROM2存储控制器1用来实现所需功能的达四个任务的指令序列。这些任务中每一任务分别用一个程序计数器Pc0,Pc1,Pc2和Pc3以跟踪其指令序列。由此利用每个程序计数器指向包含待执行的任务内下一指令的ROM中的存储器单元。将会理解虽然在该实施例中使用了四个任务和四个相应的程序计数器,但在本发明的其它实施例中可利用任何数量的任务和相应的程序计数器。
包含在ROM2中的每一任务可由控制器1的外围设备发送的外部事件信号启动或由控制器1内部发送的内部事件信号启动。可将许多这样的信号提供给钟表应用中所采用的多任务处理控制器。这些事件信号被送至成组对它们进行处理的事件存储单元5。尽管在其它实施例中提供另一数目的分组,该分组的数目可对应于存储在ROM2中的任务数。一旦从特定组收到任务事件信号,事件存储单元5发送事件组信号到任务管理单元6。
任务管理单元6包含调度部件7、事件路由器8和两个堆栈指钟9和10。事件路由器8接收从事件存储单元5发送的每一事件组信号并产生任务请求信号以请求ROM2中存储的任务之一启动。事件路由器8可为可构造的,以便能够选择由每一任务请求信号请求启动的任务。
调度部件7接收事件路由器8送出的任务请求信号并管理请求的每一任务的执行。由控制器1根据调度部件7指明的任务依次处理每一激活任务(即已请求启动的任务)的部分。当执行每一任务时,用其程序计数器跟踪在ROM2中哪一指令被执行。当一部分第一任务已执行时,调度部件7通过使用第二任务的程序计数器指出下一有待处理的指令而使部分第二任务被加以处理。由于第一任务有其自已的程序计数器,可容易地使每一任务的执行暂停然后在正确的指令重新开始。
尤其,每一程序计数器的值在每次刚执行完其相对应的任务的一部分时不必传输到并存储在控制器1中别处的数据寄存器中,而每次要执行其任务的新一部分时也不必传回到并存储在公共程序计数器中。有益地,这使得控制器1执行的一个或多个任务部分仅为一个指令长,以便使控制器1的响应时间最短。
如后文将解释的,可利用一个或多个程序计数器启动某一任务之内的子程序。当调用子程序时,当前使用的程序计数器被保存,以便在执行了该子程序后可以执行后面的指令。堆栈指针9和10用来指出启动子程序时未用的程序计数器,然后用该程序计数器跟踪该子程序中的指令序列。因此调用子程序时所用的程序计数器被保存以便跟踪在执行了子程序后将继续的指令序列。
资源组4包含算术逻辑单元或ALU11,随机存取存储器或RAM12,累加器组13和变址寄存器组14。该后一组寄存器仅在控制器1所执行的任务运用变址寻址时需要。
ALU11和RAM12是共享资源,并可由控制器执行的所有任务进行访问。从下述方式用信号来控制对控制器1的共享资源的访问。当一任务使用共享资源时,所选数据寄存器中-经被置为忙。当该任务巳结束使用共享资源时,该位被置为空闲。所有想访问共享资源的任务测试该位的状态,若该位已被较早任务置为忙,后面的任务必须等等直到该位被置为空闲。
累加寄存器组13由四个累加器13a,13b,13c及13d组成,而变址寄存器组14由四个变址寄存器14a、14b、14c和14d组成。与程序计数器Pc0至Pc3一起,累加器13a至13d和变址寄存器14a至14d包含不能在多个任务之间共享但仅在给定应用中可为-特定任务所用的控制器1内的资源。
当控制器1执行当前任务时,为该进程所用的程序计数器指向的指令由ROM2传送给指令寄存器/解码器3。在此,对指令加以检验并将其位转换为控制器1的ALU11,数据缓冲器,地址缓冲器、定时电路及各种寄存器所知的语言。
ALU11接收来自指令寄存器/解码器3的已解码的指令,并进行执行该指令所需的算术或逻辑运算。与当前任务相关的累加器提供数据给ALU11,以便进行这些算术或逻辑运算。然后这些运算的结果返回到该累加器。RAM12用来存储在这些运算过程中所产生和使用的数据。
与正由控制器1执行的任务相关联的变址寄存器用于存储正在执行的任务所用的地址作为偏移值。该偏移值增大指定地址以便指向控制器1中存储ALU11的所需操作数或其它所需数据的另一地址。
为控制器1所执行的每个任务配备单独的累加器和在必要时配备单独的变址寄存器使每个激活任务能够当任务在控制器1内循环时使用并保持其自已的累加值和变址值,而无需来回由RAM12传输数据。
如前文所指出的,当控制器1内出现所选内部事件时,指令寄存器/解码器3还提供信号给事件存储单元5。
调度部件7以与ROM2和RAM12分离的硬设备形式实现,这样可达到任务的改变而无需传输在程序计数器的存储和二次调用操作中涉及的数据。RAM12中每个任务的累加值和变址值。诸如硬件有限状态机、可编程逻辑阵列、分离ROM或其它类似设备一类的硬件设备可用来实现调度部件7。
现在更详细地说明控制器1对存储在ROM2中的任务的管理。图2示意性地示出图1的事件存储单元5、事件路由器8和调度程序部件7。可由控制器1执行的N个任务标为P0、P1、P2和P3。调度程序部件7按照循环优先方案依次执行每个激活任务的指令。因此,如果四个任务中的每一任务都是激活的,调度程序部件7顺序执行每任务的一个指令。但是,如果仅一个任务是激活的,调度程序部件7顺序执行该任务的指令而无任何延迟,并在该方式下作为单处理器工作。
任务P0,P1,P2及P3各由分别标为PEO、PE1、PE2和PE3的双稳进程启动开关连接到事件路由器8。当从事件路由器8收到请求启动相应任务的信号时,执行每个任务。任务启动开关PE0、PE1、PE2和PE3根据它们的开或关状态允许或阻止任务P0、P1、P2及P3分别接收任务请求信号Req0、Req1,Req2和Rep3。在一定条件下,最好通过将一个或多个任务启动开关设置为开状态防止任务请求信号对调度程序部件7的访问。例如,可利用该便利使一个任务(例如,时间调节功能)能够暂时挂起一个或多个其它任务(例如秒针的运动)。该任务启动开关可以作为任务管理单元6中数据寄存器内的可单独设置位实现。
图3代表N个任务P0,P1,P2及P3的每一个可为控制1所用的多种方式中的数种方式。在a)情况下,仅任务P0是激活的。如以下将说明的,在该构造中任务P1、P2及P3的非共享资源可用于在任务P0内建立子程序级别。
在b)情况下,任务P0和P3是激活的。剩下两进程的非共享资源在该情况下可用来建立子程序级别,也可在任务P0和P3之间以三种不同方式共享。首先,每个两任务P1和P2的非共享资源可用于从任务P0之内调用子程序,而任务P3则没有其可采用的子程序级别。第二,每个两任务P1和P2的非共享资源可用于从进程P3调用子程序,而进程P0则没有可用于此的子程序级别。最后,每个两上激活进程P0和P3可利用剩下两进程中不同一个的非共享资源调用单个子程序级。
在c)情况下,三个任务是激活的,剩下一个任务的非共享资源可用于任一个激活任务P0或P3对子程序的调用。在d)情况下,四个任务P0,P1,P2和P3都是激活的,无非共享资源可用在对子程序的调用中。
下面参照图4进一步说明对各任务的管理,图4示出了调度程序部件7,堆栈指针9和10,任务P0,P1,P2和P3及分别与它们相连的程序计数器Pc0,Pc1,Pc2和Pc3。控制器1适于执行分支控制指令,例如指令调用(CALL)和返回(RETURN),它们可在构成四个任务P0,P1,P2或P3每个的指令序列中出现。
在图4中a)所示出的本发明实施例中,有可能仅从任务P0调用子程序。构造控制器1使堆栈指针9属于任务P0。在这种布局中,若有任务P1,P2和P3的各非共享资源,可用来调用任务P0之内的子程序。构造控制器1以便仅能够将任务启动开关PE0置于关闭状态,由此仅任务请求信号Req0能够引起任务的运行。
因此,在该实例中调度程序部件7总是指向任务P0。在初始化时,堆栈指针9被置为指向存储程序计数器Pc0的地址。执行诸如调用(CALL)指令一类的分支控制指令致使存储在ROM2中的一系列指令从任务P0内作为子程序启动。如本领域技术人员会理解的,诸如调用指令一类的分支控制旨令包括待启动子程序的起始地址。当在这样的任务中启动子程序时,首先增大启动子程序时的地址,以指出跟随分支控制指令的返回地址,当子程序已结束时任务将在该返回地址再继续。然后调节堆栈指针9的值指向未使用的程序计数器(Pc1,Pc2或Pc3)之一。在执行程序期间,该以前未用的程序计数器跟踪该子程序中执行的指令。当完成了子程序的执行时,再次将堆栈指针9调节到指向程序计数器Pc0并继续执行该任务。
如果利用一级以上的子程序,每次启动新子程序时将堆栈指针9的值调节到指向未使用的程序计数器。以该方式,控制器1适于从任务内部启动子程序而无需在RAM12中的数据堆栈上存储返回地址。
程序计数器Pc0,Pc1,Pc2和Pc3最好具有顺序地址,这样堆栈指针9能够简单地在存储返回地址时增长而在完成了子程序的执行时减小。
虽然图4中a)示出了可从任务P0内利用控制器1的所有非共享资源的设置,但可根据实际应用以不同方式构造控制器1。如图3所示,任务P0可运用三、二、一或无其它子程序级。在每种情况下,堆栈指针9仅适于用在与该构造中分配给任务P0的非共享资源一起时。例如,在任务P0利用任务P1的非共享资源定义子程序级的构造中,堆栈指针9仅可与进程P1的程序计数器一起使用。
在图4b)中所示的本发明实施例中,安排控制器1使堆栈指针10适于用在任务P3内。在该配置中,堆栈指针10可用于指向在这样的任务中使用的无论哪个程序计数器Pc2,Pc1和Pc0。可以看出当任务P0和P3各具有一个子程序级时,将同时用到堆栈指针9和10。
虽然已仅相对任务P0和P3描述了堆栈指针9和10,在其它实施例中,一个或这两个堆栈指针可与其它任务相关联。类似地,控制器1的其它实施例可包含与任务P1和/或P2相关联的附加堆栈指针,因此任何数量的任务P0,P1,P2或P3可利用其它剩余任务的非共享资源,若这些资源适用,即可用来调用子程序。
如本领域技术人员将会理解的,通过建立重复上述分支控制指令功能的一系列指令,无限数量的子程序和子程序级可同时归于每个任务P0,P1,P2和P3。
返回图2,现在描述控制器1接收的内部和外部事件的管理及适当的任务请求信号的产生。可以指向事件存储单元5的事件分为标着gr0,gr1,gr2及gr3的四组。控制器1用这些事件开始其不同任务的处理。六个事件与这些事件组中每组相关联,其中四个为内部事件两个为外部事件。对这些事件组中每一组而言,其六个事件在事件存储单元5中从“或”(0R)功能求和,以便产生事件组信号。因此,特定事件组的六个事件到达任何一个都会致使事件存储单元5产生相应于该事件组的事件组信号。
这样产生的每一事件组信号送至事件路由器8,根据事件路由器8的构造,其产生相应于任务P0,P1,P2或P3之一的任务请求信号。每一任务请求信号可具有表示指向特定任务的一个或多个任务存在的激活状态,或者表示设有指向该任务的事件存在的非激活状态。
当不存在与特定任务请求信号相关的事件时,使对应那个的任务不激活是可能的。因此中断控制器1执行该任务。当所有的任务请求信号为非激活的因此无任务处于执行状态时,控制器1进入休眠状态,其功耗为准零。然而,当存在一个或多个事件时,不能使相应的任务请求信号成为不激活的。
图5描绘出事件路由器8提供的各种结构模式。在本举例应用中,5个这种模式是可能的。在模式0,如图5中a)所示,所有事件组信号及至所有事件指向任务P0。这样多任务处理控制器1用作单一处理器,顺序地执行任务P0的指令。事件存储单元5中的事件不能请求执行任务P1,P2和P3,由此释放这些任务的各非共享资源以能够从控制器1执行的单个任务内调用子程序。
在模式1中,如图5中b)所示,来自事件组gr0,gr1和gr2的事件组信号指向任务P0,而来自事件组gr3的事件组信号指向任务P3。任务P1和P2的大量共享资源适用于从任务P0和P3内调用2程序。如图5中c)所示,在模式2中,任务P0和P3分别接收事件组gr0和gr1及事件组gr2和gr3的事件组信号产生的任务请求信号。而且,任务P1和P2的非共享资源也适用于从任务P0和P3内调用子程序。
在模式3中,如图5中d)所示,事件组gr0和gr1的事件组信号指向任务P0,而来自事件组gr2的事件组信号仅指向任务P2,来自事件组gr3的事件组信号仅指向任务P3。仅任务P1的非共享资源可用于调用子程序。最后,在模式4中如c)所示,各任务P0,P1,P2和P3分别从事件组gr0,gr1,gr2和gr3接收事件组信号。这样控制器1的用户可选择最好对应特定应用的事件路由选择模式。
最后,可以理解对本发明的多任务处理控制器可作出各种改型和/或附加物而不偏离所附权利要求书所定义的本发明范围。
Claims (12)
1.一种多任务处理控制器包含:
用于存储多达N个各包含一系指令的任务(P0,P1,P2,P3)的任务存储装置(2);
通过分时处理所述N个任务中的多个的微处理器,以及
用于存储由所述微处理器建立和运用的各种数据的数据存储装置(12);
其特征在于:所述微处理器还包含:
以硬件实现、用于通过所述进程控制所述微处理器的运用的调度部件(7),以及
用于存储各为所述调度部件(7)所用的N个程序计数器以控制所述N个进程中各个的指令序列的程序计数器存储装置,因此当所述微处理器所处理的任务改变时所述调度部件(7)能够选择所述程序计数器(Pc0,Pc1,Pc2,Pc3)中不同的一个,而无需从所述数据存储装置(12)传输数据。
2.如权利要求1所述的多任务处理控制器,其特征在于:所述微处理器还包含用于存储所述N个任务中每一个的各自累计值的累计值存储装置(13),这样当所述微处理器处理的任务改变时所述微处理器能够选择不同的所述累计值,而无需从所述数据存储装置(12)传输数据。
3.如权利要求1或2所述的多任务处理控制器,其特征在于:所述微处理器还包含用于存储所述N个任务中每个的各自变址值的变址存储装置(14),这样当所述微处理器处理的任务改变时所述微处理器能够选择不同的所述变址值之一,而无需自所述数据存储装置(12)传输数据。
4.如权利要求1所述的多任务处理控制器,其特征在于:所述调度部件(7)包括一硬件有限状态机。
5.如权利要求1所述的多任务处理控制器,其特征在于:所述调度部件(7)包含一可编程逻辑阵列。
6.如权利要求1所述的多任务处理控制器,其特征在于:所述调度部件(7)包含-ROM。
7.如权利要求1所述的多任务处理控制器,其特征在于:所述微处理器是可配置以便依次处理X个所述任务中每个的一个部分,其中1<X<N,所述微处理器运用剩余N-X个任务之一或多个的程序计数器,以控制由所述X个任务内调用的子程序的指令序列。
8.如权利要求7所述的多任务处理控制器,其特征在于:所述微处理器还包括用于控制在所述X个任务之一的处理中所用的所述程序计数器的运用的一个或一个以上的堆栈指针。
9.如权利要求8所述的多任务处理控制器,其特征在于:所述微处理器还包含用于接收来自一组一个或多个事件信号的事件组信号并产生对应于所述X个任务之所选的一个的任务请求信号(Req0,Req1,Req2,Req3),所述任意请求信号请求所述调度部件执行所述选出的任务的事件路由器(8)。
10.如权利要求9所述的多任务处理控制器,其特征在于:每一所述事件信号由来自所述控制器处围设备的外部事件信号或所述微处理器产生的内部事件信号组成。
11.如权利要求10所述的多任务处理控制器,其特征在于:所述事件路由器(8)是用于接收来自N组事件信号(gr0,gr1,gr2,gr3)中每组的事件组信号。
12.如权利要求11所述的多任务处理控制器,其特征在于:所述事件路由器(8)是配置以使对应于所述选出的任务的任务请求信号(Req0,Req1,Req2,Req3)响应从一个或多个所选事件信号组(gr0,gr1,gr2,gr3)接收的事件组信号而产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN93121278A CN1043932C (zh) | 1992-12-23 | 1993-12-22 | 多任务处理低功率控制器 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CH393592 | 1992-12-23 | ||
CH3935/92 | 1992-12-23 | ||
CN3935/92 | 1992-12-23 | ||
CN93121278A CN1043932C (zh) | 1992-12-23 | 1993-12-22 | 多任务处理低功率控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1089740A CN1089740A (zh) | 1994-07-20 |
CN1043932C true CN1043932C (zh) | 1999-06-30 |
Family
ID=4266665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN93121278A Expired - Fee Related CN1043932C (zh) | 1992-12-23 | 1993-12-22 | 多任务处理低功率控制器 |
Country Status (12)
Country | Link |
---|---|
US (1) | US5630130A (zh) |
EP (1) | EP0627100B1 (zh) |
JP (1) | JP3776449B2 (zh) |
KR (1) | KR100313261B1 (zh) |
CN (1) | CN1043932C (zh) |
AT (1) | ATE188559T1 (zh) |
CA (1) | CA2128393C (zh) |
DE (1) | DE69422448T2 (zh) |
DK (1) | DK0627100T3 (zh) |
HK (1) | HK1012453A1 (zh) |
TW (1) | TW250549B (zh) |
WO (1) | WO1994015287A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100351798C (zh) * | 1999-12-28 | 2007-11-28 | 英特尔公司 | 在多线程网络处理器中线程信令的分组处理方法和系统 |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3097434B2 (ja) * | 1994-01-25 | 2000-10-10 | ヤマハ株式会社 | 効果付加用ディジタル信号処理装置 |
KR960706125A (ko) * | 1994-09-19 | 1996-11-08 | 요트.게.아. 롤페즈 | 다수의 마이크로 콘트롤러의 동작을 실행하기 위한 마이크로 콘트롤러 시스템(A microcontroller system for performing operations of multiple microcontrollers) |
FR2725054B1 (fr) * | 1994-09-26 | 1997-01-17 | Suisse Electronique Microtech | Dispositif multitache de traitement de sequences d'instructions, a basse consommation d'energie |
GB2296352A (en) * | 1994-12-22 | 1996-06-26 | Motorola Gmbh | Microprocessor for executing multiplexed streams of instructions |
JPH08320797A (ja) * | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
DE19530483A1 (de) * | 1995-08-18 | 1997-02-20 | Siemens Ag | Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks |
GB2311882B (en) * | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
US5974438A (en) * | 1996-12-31 | 1999-10-26 | Compaq Computer Corporation | Scoreboard for cached multi-thread processes |
DE69841526D1 (de) | 1997-03-04 | 2010-04-15 | Panasonic Corp | Zur effizienten Ausführung vieler asynchronen Ereignisaufgaben geeigneter Prozessor |
US5938708A (en) * | 1997-07-03 | 1999-08-17 | Trw Inc. | Vehicle computer system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of vehicle processes |
DE19846461B4 (de) * | 1997-10-08 | 2006-05-11 | Hitachi, Ltd. | Sensoreinstellschaltung |
US6697935B1 (en) * | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
DE69838374T2 (de) * | 1997-12-23 | 2008-05-29 | Texas Instruments Inc., Dallas | Prozessor und Verfahren zum Verringern von dessen Energieverbrauch |
JP3407859B2 (ja) * | 1998-04-24 | 2003-05-19 | 富士通株式会社 | コーデック |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6606704B1 (en) | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
US6668317B1 (en) * | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
ATE475930T1 (de) | 1999-09-01 | 2010-08-15 | Intel Corp | Verzweigungsbefehl für einen mehrfachverarbeitungsprozessor |
US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine used in multithreaded parallel processor architecture |
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US6889319B1 (en) * | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
US6496925B1 (en) | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6307789B1 (en) | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US7620702B1 (en) | 1999-12-28 | 2009-11-17 | Intel Corporation | Providing real-time control data for a network processor |
US6631430B1 (en) | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6976095B1 (en) | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US6584522B1 (en) | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US7480706B1 (en) | 1999-12-30 | 2009-01-20 | Intel Corporation | Multi-threaded round-robin receive for fast network port |
US6952824B1 (en) | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US7296271B1 (en) * | 2000-06-28 | 2007-11-13 | Emc Corporation | Replaceable scheduling algorithm in multitasking kernel |
US7681018B2 (en) * | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US20020053017A1 (en) * | 2000-09-01 | 2002-05-02 | Adiletta Matthew J. | Register instructions for a multithreaded processor |
EP1199632A1 (en) * | 2000-10-20 | 2002-04-24 | Sun Microsystems, Inc. | Method and apparatus for resource access synchronization |
US7020871B2 (en) * | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US7216204B2 (en) | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US7487505B2 (en) | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7225281B2 (en) | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US7126952B2 (en) * | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
DE10158774A1 (de) * | 2001-11-30 | 2003-06-18 | Infineon Technologies Ag | Basisband-Chip mit integrierter Echtzeit-Betriebssystem-Funktionalität und Verfahren zum Betreiben eines Basisband-Chips |
US7158964B2 (en) * | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
US7107413B2 (en) | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7434222B2 (en) * | 2001-12-20 | 2008-10-07 | Infineon Technologies Ag | Task context switching RTOS |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) * | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
US7437724B2 (en) | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
US7471688B2 (en) | 2002-06-18 | 2008-12-30 | Intel Corporation | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports |
US7337275B2 (en) | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US7352769B2 (en) | 2002-09-12 | 2008-04-01 | Intel Corporation | Multiple calendar schedule reservation structure and method |
US7433307B2 (en) | 2002-11-05 | 2008-10-07 | Intel Corporation | Flow control in a network environment |
US6941438B2 (en) * | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
US7672965B2 (en) * | 2003-02-24 | 2010-03-02 | Avaya, Inc. | Finite-state machine augmented for multiple evaluations of text |
US7443836B2 (en) | 2003-06-16 | 2008-10-28 | Intel Corporation | Processing a data packet |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US7917906B2 (en) * | 2004-07-02 | 2011-03-29 | Seagate Technology Llc | Resource allocation in a computer-based system |
US20060095719A1 (en) * | 2004-09-17 | 2006-05-04 | Chuei-Liang Tsai | Microcontroller having partial-twin structure |
US7620057B1 (en) * | 2004-10-19 | 2009-11-17 | Broadcom Corporation | Cache line replacement with zero latency |
US7793160B1 (en) | 2005-03-29 | 2010-09-07 | Emc Corporation | Systems and methods for tracing errors |
ITRM20060139A1 (it) * | 2006-03-13 | 2007-09-14 | Micron Technology Inc | Sistema ad unita di controllo distribuito di dispositivo di memoria |
CN100437482C (zh) * | 2006-12-31 | 2008-11-26 | 中国建设银行股份有限公司 | 应用软件的开发系统、生成方法及运行系统、运行方法 |
US8639913B2 (en) * | 2008-05-21 | 2014-01-28 | Qualcomm Incorporated | Multi-mode register file for use in branch prediction |
JP6117120B2 (ja) * | 2014-01-17 | 2017-04-19 | 株式会社東芝 | イベント管理装置、イベント管理方法およびモータシステム |
GB2563587B (en) * | 2017-06-16 | 2021-01-06 | Imagination Tech Ltd | Scheduling tasks |
CN113326221B (zh) * | 2021-06-30 | 2024-03-22 | 上海阵量智能科技有限公司 | 数据处理装置、方法、芯片、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4779194A (en) * | 1985-10-15 | 1988-10-18 | Unisys Corporation | Event allocation mechanism for a large data processing system |
US4796178A (en) * | 1985-10-15 | 1989-01-03 | Unisys Corporation | Special purpose processor for off-loading many operating system functions in a large data processing system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT986411B (it) * | 1973-06-05 | 1975-01-30 | Olivetti E C Spa | Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario |
JPS5430074A (en) * | 1977-08-10 | 1979-03-06 | Seiko Epson Corp | Time measuring system |
JPS578853A (en) * | 1980-06-17 | 1982-01-18 | Mitsubishi Electric Corp | Digital computer |
JPS57161941A (en) * | 1981-03-30 | 1982-10-05 | Fujitsu Ltd | Data processing device |
WO1987002486A1 (en) * | 1985-10-15 | 1987-04-23 | Burroughs Corporation | A special purpose processor for off-loading many operating system functions in a large data processing system |
JPS6352241A (ja) * | 1986-08-22 | 1988-03-05 | Hitachi Ltd | マイクロプロセツサ |
JPH02254544A (ja) * | 1989-03-29 | 1990-10-15 | Matsushita Electric Ind Co Ltd | マルチタスク型シーケンスプロセッサおよびその起動方法 |
US5237700A (en) * | 1990-03-21 | 1993-08-17 | Advanced Micro Devices, Inc. | Exception handling processor for handling first and second level exceptions with reduced exception latency |
US5317745A (en) * | 1992-01-10 | 1994-05-31 | Zilog, Inc. | Minimal interrupt latency scheme using multiple program counters |
-
1993
- 1993-12-10 EP EP94902757A patent/EP0627100B1/en not_active Expired - Lifetime
- 1993-12-10 KR KR1019940702926A patent/KR100313261B1/ko not_active IP Right Cessation
- 1993-12-10 CA CA002128393A patent/CA2128393C/en not_active Expired - Fee Related
- 1993-12-10 DK DK94902757T patent/DK0627100T3/da active
- 1993-12-10 US US08/290,954 patent/US5630130A/en not_active Expired - Lifetime
- 1993-12-10 WO PCT/EP1993/003498 patent/WO1994015287A2/en active IP Right Grant
- 1993-12-10 JP JP51474694A patent/JP3776449B2/ja not_active Expired - Fee Related
- 1993-12-10 DE DE69422448T patent/DE69422448T2/de not_active Expired - Lifetime
- 1993-12-10 AT AT94902757T patent/ATE188559T1/de not_active IP Right Cessation
- 1993-12-22 CN CN93121278A patent/CN1043932C/zh not_active Expired - Fee Related
-
1994
- 1994-02-03 TW TW083100910A patent/TW250549B/zh active
-
1998
- 1998-12-15 HK HK98113402A patent/HK1012453A1/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4779194A (en) * | 1985-10-15 | 1988-10-18 | Unisys Corporation | Event allocation mechanism for a large data processing system |
US4796178A (en) * | 1985-10-15 | 1989-01-03 | Unisys Corporation | Special purpose processor for off-loading many operating system functions in a large data processing system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100351798C (zh) * | 1999-12-28 | 2007-11-28 | 英特尔公司 | 在多线程网络处理器中线程信令的分组处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CA2128393C (en) | 2001-10-02 |
DE69422448D1 (de) | 2000-02-10 |
KR950700572A (ko) | 1995-01-16 |
WO1994015287A3 (en) | 1994-08-18 |
WO1994015287A2 (en) | 1994-07-07 |
JPH07504058A (ja) | 1995-04-27 |
EP0627100A1 (en) | 1994-12-07 |
EP0627100B1 (en) | 2000-01-05 |
JP3776449B2 (ja) | 2006-05-17 |
KR100313261B1 (ko) | 2002-02-28 |
TW250549B (zh) | 1995-07-01 |
ATE188559T1 (de) | 2000-01-15 |
CA2128393A1 (en) | 1994-07-07 |
US5630130A (en) | 1997-05-13 |
DK0627100T3 (da) | 2000-06-26 |
HK1012453A1 (en) | 1999-07-30 |
CN1089740A (zh) | 1994-07-20 |
DE69422448T2 (de) | 2001-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1043932C (zh) | 多任务处理低功率控制器 | |
US7650601B2 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
US4779194A (en) | Event allocation mechanism for a large data processing system | |
Black | Scheduling support for concurrency and parallelism in the Mach operating system | |
US4980824A (en) | Event driven executive | |
US4796178A (en) | Special purpose processor for off-loading many operating system functions in a large data processing system | |
US10838760B2 (en) | Systems and methods for interrupt distribution | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
JPS6220589B2 (zh) | ||
US4837688A (en) | Multi-channel shared resource processor | |
Manner | Hardware task/processor scheduling in a polyprocessor environment | |
EP0243402B1 (en) | A special purpose processor for off-loading many operating system functions in a large data processing system | |
EP0274339B1 (en) | Event driven executive | |
US6993766B2 (en) | Integrated circuits for multi-tasking support in single or multiple processor networks | |
US20060095719A1 (en) | Microcontroller having partial-twin structure | |
Yang et al. | Fine-grained dynamic load balancing in spatial join by work stealing on distributed memory | |
Gracon et al. | A high performance computing system for time critical applications | |
JP2686438B2 (ja) | 大型データ処理システムにおいて多くのオペレーティングシステム機能をオフロードするための特殊目的プロセッサおよびプロセス制御機構 | |
JPH11249917A (ja) | 並列型計算機及びそのバッチ処理方法及び記録媒体 | |
Weatherbee | Simulation in the evaluation of an executive system design | |
Ohrman et al. | Comparison of Schedulers in a small and a large real-time operating systems | |
KR100241356B1 (ko) | 분산 시스템에서 동적 동기화를 위한 다단계 스케줄링 구조 및 그 방법 | |
Halang et al. | A function oriented design for industrial distributed real time control systems | |
Chaudhry et al. | Multithreaded tightly-coupled multiprocessor system | |
Simpson et al. | Object Orientated Simulation on Transputer Arrays Using Time Warp |
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: 19990630 Termination date: 20111222 |