CN1209207A - 指令处理机作业的调度 - Google Patents

指令处理机作业的调度 Download PDF

Info

Publication number
CN1209207A
CN1209207A CN 96199957 CN96199957A CN1209207A CN 1209207 A CN1209207 A CN 1209207A CN 96199957 CN96199957 CN 96199957 CN 96199957 A CN96199957 A CN 96199957A CN 1209207 A CN1209207 A CN 1209207A
Authority
CN
China
Prior art keywords
signal
processor
instruction
instruction processor
current
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
Application number
CN 96199957
Other languages
English (en)
Inventor
M·龙斯特伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1209207A publication Critical patent/CN1209207A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)

Abstract

处理系统(120、220)中,信号处理机(124、224)对由一个或多个指令处理机(122、222)执行的作业进行调度,当指令处理机要执行作业时,信号处理机向指令处理机发送一个与作业关联的信号。指令处理机(122)管理着存储器中的一个当前表(150)。当指令处理机执行的当前作业引起指令处理机生成一个与有待执行的新作业关联的缓存信号时,指令处理机使与新作业关联的缓存信号存储到当前表中。缓存信号是按照当前作业的优先级高低,有选择地被存入当前表中的。如果当前作业中生成缓存信号的指令处于当前作业中预先规定的次序,新作业被立即执行。当指令处理机执行的缓存信号的关联作业结束时,指令处理机选择:(1)[如果该缓存信号的关联作业具有预定的优先权级或当前表为空时]向信号处理机发送一个退出信号;(2)[如果信号处理机向指令处理机发出过中断]向信号处理机发送当前表中的所有剩余作业;或(3)提取并执行当前表中的另一个作业。

Description

指令处理机作业的调度
本发明涉及中央处理系统中指令处理机所执行作业的调度。
有些处理系统,例如Ericsson APZ 212 20,用一个信号处理机对指令处理机所执行作业进行调度,籍此使指令处理机执行的作业之间的上下文转接(context switching)非常迅速。与其它大多数处理机相比,这类系统中的上下文转接时间很快。
这类系统中,各个作业均有一个关联的信号与之对应。信号中的信息提示指令处理机,对应该作业,指令处理机应执行(例如程序储存器中的)哪块指令码,执行中要用什么数据。指令处理机执行一个作业后,信号处理机提取一个(与新的作业关联的)新信号,将之传递给指令处理机。信号处理机是在其若干作业缓冲器中选定的一个作业缓冲器中提取该新信号的,新信号是按优先级顺序提取的。
从信号处理机中提取的新作业可能与旧作业毫不相干,因此所用数据可能也完全不同。此外,来自外部资源(例如其它处理系统)的其它作业纷至沓来,如果这些作业具有更高的优先权,就会在旧作业退出之前,中断旧作业的执行。
因此,在上述的处理系统中,指令码和数据频繁地变化上下文。这意味着该上下文丢失之频繁,即使用高速内存(例如高速缓冲存储器)来保存上下文也无济于事。在一些这类系统中,保存上下文的唯一方法是在寄存器中存储数据,而这只能在一个作业的执行期间进行。
为了更详细地考察这种系统,附图1显示了一个中央处理单元20的局部、具体来说是一个指令处理机单元(IP)22,信号处理(SP)单元24,程序存储器(PS)26,数据与引用(reference)存储器(DRS)28,多个区域处理机总线处理器(RPHs)301,…n,“其它”处理机总线处理器(IPH)31和维护单元(MAU)32。指令处理机22、信号处理机24、IPHB 31和RPH 30都是独立的处理机。指令处理机22执行作业,各作业对应的指令块被存储在程序存储器(PS)26中。信号处理机24起着指令处理机22的作业调度器的作用。这种作业调度方式中,对于每个作业,信号处理机24都要接收一个例如来自外部或来自指令处理机22的“信号”。一个信号就是一指令,它规定要执行的特定部分的指令块的位置,信号中还包括执行该指令块所要用的数据。信号处理机24首先分析、准备输入信号,向这些信号分配优先权,再将它们发送到指令处理机22。数据引用部分与引用存储器28,保存着系统中所用的信号、块、变量的描述信息。
在某些配置中,附图1的中央处理系统20中包括两个指令处理机22、两个信号处理机24、一个或多个其它处理机总线处理器(RPH)31、另外若干区域处理机总线处理器30,它们通过MAU32及总线34与36,与附图1呈镜面对称地连接。在这种配置下,各指令处理机22都配有自己的程序存储器26和自己的数据与引用存储器28。
区域处理机总线处理器(RPH)301,…n通过对应的区域处理机总线381,…n连接到未在图中表示的各区域处理机。与此类似,也可以将一个或多个其它处理机总线处理器31连接到一条适当的总线39上。区域处理机总线处理器(RPH)301,…n和其它处理机总线处理器,以及信号处理机24,作用都是为了减轻指令处理机22上的负载,因为指令处理机22的任务是执行程序存储器26中存储的应用软件。
附图2更详细地表示了中央处理系统20的指令处理机22、信号处理机24、其它处理机总线处理器31和区域处理机总线处理器(RPH)301,…n,以及它们之间的相互作用。特别是附图2表示的信号处理机24中,包括一个作业调度器40和多个作业缓冲器42A~42D(分别记为缓冲器A~缓冲器D)。
在中央处理系统20中,当指令处理机22结束一个作业时(通过向信号处理机24发送的退出信号来表示),信号处理机24从缓冲器42A~42D中优先权最高而又非空的一个缓冲器中检索出下一个要被执行的作业。然后,信号处理机24向指令处理机22发送与该下一个待执行作业关联的信号。指令处理机22一接到该信号就开始执行由该信号所指定的新指令码块。
有时候,指令处理机22执行的指令会促使指令处理机22本身生成一个新信号。这类由指令处理机生成的信号有多种多样的类型:组合信号、区域处理机(RP)信号、其它指令处理机(IP)信号、缓存信号。组合信号很像子例程调用,它使指令处理机22立即执行组合信号,然后返回去执行生成组合信号的作业。
由指令处理机22生成的RP信号和其它处理机信号,是与作业关联的信号,其中的作业或者是将要由区域处理机执行的作业(如果是RP信号),或者是将要由另一个指令处理机执行的作业(如果是IP信号)。RP信号或其它IP信号由信号处理机24接收,转送到某个适当的区域处理机总线处理器30(如果是其它IP信号),或者转送到一个其它处理机总线处理器31(如果是RP信号)。
有一种指令处理机生成的信号被称作“缓存信号”,它与由指令处理机22生成并由指令处理机22执行的组合信号不同。在先有技术条件下,缓存信号被发送到信号处理机24(如附图2中线54所示)。指令处理机22继续执行指令处理机22当前正执行着的指令块中的指令。信号处理机24一旦收到指令处理机22发出的这种缓存信号,就根据所接收缓存信号的优先权级,从两种可能中采取其中一个行动。具体来说,如果所接收缓存信号的优先权级比指令处理机22当前正在执行的作业(即生成该缓存信号的作业)的优先权级高,信号处理机24就向指令处理机22发出中断当前作业的中断命令(如附图2中导线56所示)。否则,信号处理机24就将该缓存信号放到作业缓冲器42A~42D中与缓存信号优先权级相同的一个缓冲器内的最后作业位置上。这样,缓存信号以与任何其它优先权级与缓存信号相同的信号相同的方式被执行(如附图2中线58所示)。
因此,在上述的先有技术条件下,当指令处理机22在作业结束时执行退出指令时,指令处理机22总指望信号处理机24调度下一个作业。在这种调度中,信号处理机24按照优先权级别,从作业缓冲器42A~42D中提取下一个作业。然而,如果用这种先有技术水平的调度方法,所提取的作业可能与上一个作业毫不相干。这个不相干的作业使用的也可能是大不相同的数据。另一个特点是,如果有优先权级更高的作业出现,更高级的作业就会在一个作业的执行到达退出指令之前,中断作业的执行。
中央处理系统20有大量的实现,其中例如电话交换系统的控制系统。如上所述,这种实现的一例便是Ericsson AXE10交换机的APZ21220控制系统。《APZ 21220-用于AXE10的新型高端处理机》(“APZ 21220-The New High-end Processor for AXE10”,作者Egeland,Terje,Ericsson Review 1995第1期5~12页)叙述了该系统,通过引用将其结合在此。
这种中央处理系统所需要的是一种不要如此频繁地改变上下文方法,以便能够有效地使用高速缓冲存储器之类的快速存储器。所需的其它改进应是减少信号处理机的一些工作。
指令处理机所执行信号的调度主要是由信号处理机完成的。根据本发明方法,信号处理机采用独特的调度技术,指令处理机在不妨碍信号处理机的情况下,(用一个“当前表”存储器)完成某些自我调度。
信号处理机按照信号的给定优先级,将信号分派到四个缓冲器中的其中一个,例如调度缓冲器A、调度缓冲器B、调度缓冲器C或调度缓冲器D。一般来讲,当指令处理机需要从信号处理机获得新的执行信号时(如信号处理机收到指令处理机的退出信号时),信号是按照优先级的高低(A、B、C或D)与排队时间的先后从缓冲器A~D中提取出来的。(在本文中,“最高”优先权级的指定没有考虑跟踪级(tracelevel))
如果所提取作业的优先级是“C”级或者“D”级,信号处理机先检查当前是否有类似优先级的作业被中断,如果有,就恢复执行被中断作业,同时将所提取的作业送回其一个适当的缓冲器中。另外,如果在信号处理机收到一个优先级比D高的信号(例如来自指令处理机、区域处理机或是“其它”指令处理机的信号)时,指令处理机正在执行一个D级信号,则指令处理机对该D级信号的执行被立即中断。
指令处理机(IP)对信号的执行会引起新的信号的生成。这种由指令处理机生成的信号一般是在信号的退出指令的前面一点生成的。这种由指令处理机生成的信号可能是组合信号或缓存信号(两种信号都要由指令处理机执行),或者是要送往另一个处理机(例如区域处理机或“其它”指令处理机)的信号。组合信号与子例程调用非常相象,它使指令处理机22立即处理组合信号,然后返回去执行生成组合信号的信号。
当指令处理机生成一个缓存信号时,指令处理机将该缓存信号放入一个被称作为“当前表”(current list)的专用寄存器或队列中。如果缓存信号恰巧是紧邻在当前执行的作业的出口之前,其优先级不是最低级,并且没有中断被设置,则在从生成该缓存信号的的作业退出时,执行该缓存信号的关联作业。
随后,当指令处理机从因为生成缓存信号而执行的作业退出时,指令处理机根据缓存信号的优先级,根据是否有中断已经被设置,可选择执行一个或数个可能步骤。第一个这种选择步骤包括,从当前表中提取第一个(下一个)作业并执行之。第二个这种选择步骤包括,将调度控制权交还给信号处理机一当缓存信号是最低优先级时就是这样。第三个这种选择步骤包括,将当前表的全部内容传递给信号处理机一当发生中断时就是这样。在第一个选择步骤中,当前表中的作业按照先后被执行,退出一个执行一个。
缓存信号的关联作业是否在生成缓存信号的作业后立即执行,取决于缓存信号是否是紧邻在预定类型的指令(例如退出指令)之前被生成的。所以,引起缓存信号生成的指令必须被设置在作业内部的预定位置上,才能使缓存信号在作业结束后立即被执行。否则,缓存信号关联的作业就可能被留在当前表中,在其它缓存信号关联的作业之后被执行,甚至会被转移到信号处理机。
每当指令处理机对作业的执行被中断,当前表的全部内容就被转移到信号处理机。信号处理机然后按照传递过来的信号的优先级,将当前表中的各信号分别放入其适当的缓冲器中。
信号处理机还能向当前表发送信号。当信号处理机向指令处理机传送要执行的信号时,信号处理机还检索其缓冲器,将其缓冲器中另一个与正在向指令处理机发送的信号具有相同线程标识(threadidentification)的信号,转移到当前表。当信号处理机确定,外部生成的信号(例如通过区域处理机总线处理器或通过处理机总线处理器接收的信号)的线程标识就是指令处理机正在处理的当前线程标识标志(CurrentThreadID)的内容、但却没有引起中断或设置中断标志时,也要类似地向当前表中放置该信号。
前文所述的本发明目的、特点和优点,以及本发明的其它目的,特点和优点,将显见于以下对最佳实施例的更具体的描述中。各附图表现了最佳实施例,图中的标记符号在全体不同的图中代表相同的部件。附图的尺寸未必合乎比例,着重于表示本发明的原理。
附图1是至少一部分中央处理单元的示意图。
附图2是表示先有技术水平下中央处理系统配备的各种组成单元的示意图。
附图3是表示本发明的实施例的中央处理系统配备的各种组成单元的示意图。
附图4是表示附图3中的中央处理系统配备的指令处理机的配置图的示意图。
附图5是表示本发明另一个实施例中,基于多指令处理机的中央处理系统配备的各种组成单元的示意图。
附图6是表示附图3中的中央处理系统的信号处理机所遇到的事件和经历的各种状态的示意图。
附图7是表示附图3中的中央处理系统的指令处理机所遇到的事件和经历的各种状态的示意图。
附图8(1)的流程图,表示信号处理机在遇到来自指令处理机的退出信号时,所执行的步骤。
附图8(2)的流程图,表示信号处理机在遇到来自指令处理机的非退出信号时,所执行的步骤。
附图8(3)的流程图,表示信号处理机在遇到超时事件时,所执行的步骤。
附图8(4)的流程图,表示信号处理机在遇到来自区域处理机(RP)或其它指令处理机的信号时,所执行的步骤。
附图9(1)~9(3)的示意图,分别表示指令处理机执行操作A(SP)1~A(SP)3时,所执行的步骤。
附图9(4)的流程图,表示指令处理机执行操作A(SP)4时,所执行的步骤。
附图9(5)~9(10)的示意图,分别表示指令处理机执行操作A(SP)5~A(SP)10时,所执行的步骤。
附图9(11)的流程图,表示指令处理机执行操作A(SP)11时,所执行的步骤。
附图10是表示本发明所用信号格式的示意图。
附图3的中央处理系统120包括,指令处理机单元(IP)122、信号处理(SP)单元124、程序存储器(PS)126、数据与引用存储器(DRS)128、若干区域处理机总线处理器(RPHs)1301,…n、“其它”处理机总线处理器(IPB)131。除非另有明示或暗示,系统120中类似命名的单元与前文所述的附图2中的系统20中的单元相同。系统120与系统20的不同点之一,是有一个当前表存储器150,它存储在指令处理机122的一组寄存器中,由指令处理机122访问。此外,信号处理机有一个定时器141。
附图3的中央处理系统120,在图示的实施例中是以一台SUN Ultra2工作站实现的,该工作站有两个共享内存的处理机。本领域的熟练人员知道如何通过共享内存的技术在两个处理机之间传送信号。
指令处理机122与信号处理机124的工作方式,不同于先有技术水平下相应处理机的工作方式。后文将要详细说明,特别是指令处理机122有选择地存储其在当前表150中生成的缓存信号,由此能绕开信号处理机124而更好地保存上下文。在不超过时限的条件下,信号处理机124允许当前表150中的一个或多个信号被执行。此外,当信号处理机124有一个优先级更高的作业时,信号处理机124总要中断指令处理机122正在执行的优先权为“D”级的作业。信号处理机124还允许优先权为“A”级的作业在信号发送时中断其它作业。
附图4表示指令处理机122的一种配置。在附图4的配置中,指令处理机122有中央处理单元(CPU)160、寄存器存储器162、快速存储器164、内存存取/接口166、一组高速缓冲存储器168A~168C、一组内存卡170A~1706、以及用于连接内存存取/接口166与内存卡170的内存总线172。在附图4所示的的配置中,高速缓冲存储器168A可以进行128字节的存取,高速缓冲存储器168B可以进行16字节的存取,高速缓冲存储器168C可以进行4字节的存取。内存卡170A~170F是DRAM主存卡。卡1706是一个直接内存存取(DMA)卡,它由IOB总线连接到盘驱动器控制器之类的外围设备,以便能使用盘之类的其它存储器。
在附图4的指令处理机配置中,快速存储器164被用于存取使用非常频繁的变量,诸如用于锁定和跟踪盘缓冲器的数据结构。为各变量分配特定的存储器类型的工作可以通过编译器或者由设计者完成。高速缓冲存储器168A~168C线宽(line size)的不同具有灵活性。哪些变量应该被高速缓存,也能用块参数或变量类型规定。
附图10表示本发明一个实施例所用的一种信号的格式。如附图10所示,信号包括:第1个域“ThreadID”,表示信号所属于的线程(thread);第2个域“JobLevel”,表示信号的优先权级;第3个域“FORMAT”,表示信号的最后一个域中数据项的数目;第4个域“SingnalNumber”,表示信号的序号;第6个域“RecBlock”,表示接收块号;第7个域“SendBlock”,表示发送块号;第8个域“Forlopp Id”,这是一个用于可靠性目的的标记;第9个域“RegPRO”,它存放第一个数据值;第10个域“DataList”,它存放一个或多个(最多24个)其它数据值。
“线程”的概念是,为响应从外部系统(例如区域处理机或“其它”指令处理机)所接收信息而必须执行的一个作业集合。在一个线程中,数个作业可能同时执行,与外部系统的通讯可能作为线程的一部分而发生。
                        操作
附图6表示信号处理机124所发现的事件和所采取的行动。附图7表示指令处理机122所发现的事件和所采取的行动。图中,信号处理机124所发现的事件以“E(SP)X”标识符标记,指令处理机122所发现的事件以“E(IP)X”标识符标记。信号处理机124所采取的行动以“A(SP)X”标识符标记,指令处理机122所采取的行动以“A(IP)X”标识符标记。所有上述标识符中X代表事件号或行动号。
如附图6所示,信号处理机124有3种状态:“空闲”状态(IDLE)、“工作”状态(WORKING)、“排队”状态(QUEUED)。附图6中用粗黑线表示状态的转换。附图6还表示,信号处理机会遇到4种“SP”事件,即事件E(SP)1~E(SP)4。信号处理机遇到一个事件时,可能处于这三种状态中的任意一种状态。所以附图6中以虚线表示,各个状态上发生的每种SP事件。
对于附图6中的每个事件,信号处理机124以相应的行动作出响应。这里的“行动”,可能包括一个或多个步骤,这些步骤可以有选择地执行,也可以一个接一个地执行。附图8(1)~8(4)分别表示信号处理机124所采取的各种行动,以及各种行动中所包含的步骤。在采取这类行动时执行哪些步骤,一般取决于信号处理机124所处的状态。
如附图7所示,指令处理机122有3种状态:“空闲”状态(IDLE),“工作”状态(WORKING)、“组合”/“工作”状态(COMBINED/WORKING)。不要将指令处理机122与信号处理机124的名称相似的状态相混淆,每个状态都是独立的。如附图6中一样,附图7中也用粗黑线表示状态的转换。附图7还表示,信号处理机124会遇到11种“IP”事件,即事件E(IP)1-E(IP)11。这些IP事件中的有些事件,例如事件E(IP)1、E(IP)3、E(IP)9,其发生是与信号处理机124所采取的行动有联系的。
信号处理机124和指令处理机122相互作用,所以,某些IP事件,只有在指令处理机122处于其特定的一种或多种状态下才能发生。为此,图中把指令处理机122所采取的行动圈在几个表示可出现这些行动的状态的圆圈中。附图7中的虚线连接表示能遇到IP事件的状态。附图9(1)~9(11)更详细地分别表示了行动E(SP)1-E(SP)11中包含的步骤。从以下对附图9(1)-9(11)的说明中我们会知道,指令处理机122所采取的各种行动,产生了附图6中所示的SP事件E(SP)1~E(SP)2。
A.信号处理机的操作
信号处理机124的操作与其定时器141(见附图3)相联系。如果在定时器141中装入一个特定的时间值(例如“X”或“Y”),定时器就会在与时间值对应的时段期满时,报告信号处理机124。时间值的期满,例如定时器141的报告,导致一个超时事件(事件E(SP)3)的发生(在讨论附图8(3)时会详细叙述)。超时事件使信号处理机124能够知道,指令处理机122采取的某个行动是否花费了太长的时间。为此,某些操作启动(例如从信号处理机124的缓冲器142传递一个要指令处理机122执行的新信号)时,要为定时器设置一个“X”值(例如1ms)。如果发生超时事件,而定时器141未被复位到“X”值,信号处理机124就将中断标志“SP_中断”(SP_Interrupt)置位,表明指令处理机122执行同一线程标识的作业已经用了一个时段。于是,要为定时器设置第二个时间值“Y”(例如3ms)。假设时间值“Y”期满后发生第二个超时事件,那么采取何种行动就取决于正在执行的作业的优先级。如果正在执行的作业的优先级为“C”或“D”,则该正在执行的作业被中断。如果正在执行的作业的优先级为“A”或“B”,就会产生一个出错条件,并发出一个“删除”(KILL)信号。
以下是对信号处理机124收到SP事件时所采取各种行动的描述:
(1)SP接收到非退出性(NON-EXIT)信号
指令处理机122在执行作业时,可能会生成一个非退出性信号,并赋予该生成信号一个优先权。如果这种信号被送到信号处理机124,信号处理机24就发现了附图6中所示的事件E(SP)2。信号处理机124接收到事件E(SP)2时,就采取行动A(SP)2。附图8(2)表示该行动的各个步骤。
在步骤8(2)-1和8(2)-2中,信号处理机124分别判断所接收的来自指令处理机122的信号目的地,是某个区域处理机还是某个“其它”指令处理机。如果所接收的指令处理机122信号要送往某个区域处理机,步骤8(2)-3将该信号发送到一个适当区域处理机总线处理器130上。如果所接收的指令处理机122信号要送往某个“其它”指令处理机,步骤8(2)-4将该信号发送到“其它”指令处理机总线处理器131。
如果所接收的指令处理机122的非退出性信号的目的地不在外部,在步骤8(2)-5检查指令处理机122正在执行的当前信号的优先级。如果当前执行的信号的优先级不是“D”,步骤8(2)-6按照所收到的信号的优先级从作业缓冲器42A~42D中选择一个适当的作业缓冲器,将信号放置在最后。否则,如果当前执行的信号的优先级是“D”,就执行步骤8(2)-7。步骤8(2)-7将超时开关设置为“X”值,将“D级作业被中断”标志(Job_interrupted_level(D))设置为活动状态(表示正在中断一个优先级为D的作业),当前的(“D”级)作业的执行被中断。指令处理机122将该作业中断视为事件E(IP)8,并相应地采取附图9(8)中的行动A(IP)8。步骤8(2)-3、8(2)-4、8(2)-6或8(2)-7中无论哪个步骤一完成,行动A(SP)2就以符号8(2)-8所表示那样结束。
(2)SP接收到退出(EXIT)信号
信号处理机124接收来自指令处理机122的退出信号(事件E(SP)1)触发行动A(SP)1,A(SP)1的步骤如附图8(1)所示。接收到来自指令处理机122的退出信号并相应地触发行动A(SP)1,这种情形发生在主处理机122执行完一个不是由于生成缓存信号而产生的作业时。接收到退出信号的另一种可能情形是,指令处理机122执行完了一个或一系列由于生成缓存信号而产生的作业(见附图9(4)中的步骤9(4)-6、9(4)-9和9(4)-4,附图9(7)中的步骤9(7)-3和附图9(3)中的步骤9(3)-3)。
当信号处理机124接收到来自指令处理机122的退出信号(事件E(SP)1)时,它从缓冲器42A~42D中优先级最高并且非空的缓冲器中提取排在第一位的作业(步骤8(1)-1)。步骤8(1)-2中,信号处理机124清除超时错误标志(Error_timeout)和SP_中断标志,并将超时开关设置为“X”值。步骤8(1)-3和步骤8(1)-4中,检查步骤8(1)-1中提取的作业的优先级,确定该优先级是“C”(步骤8(1)-3)还是“D”(步骤8(1)-4)。
如果所提取作业的优先级为“C”,执行步骤8(1)-5,查看Job_Interrupted_Level[c]标志,判断该标志是否处于活动状态,即判断指令处理机122执行的另一个C优先级的作业是否已经被信号处理机中断。如果步骤8(1)-5中的判断结果是肯定的,就执行步骤8(1)-6。步骤8(1)-6中,在步骤8(1)-1被提取的作业被放回到原来取自的缓冲器中,Job_Interrupted_Level[c]标志被设置为非活动状态(这是因为此前被中断的C级作业现在将要被执行,因此不被中断),当前优先级标志(Active_Priority)被设置为“C”(以重新建立此前被中断的作业的优先级),恢复被中断的作业。信号处理机124恢复执行被中断的作业,产生了IP事件E(IP)2,这从附图9(2)一见可知。然后,行动A(SP)1结束(图中以符号8(1)-9表示)。
如果所提取作业的优先级为“C”,但Job_interrupted_level[c]标志处于非活动状态(即当前没有C优先级的作业被中断),就执行步骤8(1)-7和步骤8(1)-8。步骤8(1)-7,当前优先级标志被设置为与步骤8(1)-1中所提取作业的优先级相同的优先级,将该被提取作业的关联信号作为IP事件E(IP)1发送到指令处理机122(见附图9(1)),将当前线程标识标志设置成该所提取作业的线程标识。步骤8(1)-8,检查“C”或更高优先级的作业缓冲器中的所有作业的线程标识,如果有的作业的线程标识与当前线程标识标志相同(也即与所提取作业的线程标识相同),则将所有这些作业的每个关联信号发送到指令处理机122的当前表150中。换言之,为(“C”或更高优先级的)作业缓冲器中线程标识与当前线程标识标志相同的每一个作业生成事件E(IP)11。指令处理机122响应事件E(IP)11所采取的行动在9(11)中描述。然后,行动A(SP)1结束(图中以符号8(1)-9表示)。
如果(在步骤8(1)-4)判定所提取作业的优先级为“D”,则执行步骤8(1)-10,查看Job_Interrupted_Level[C]标志和Job_Interrupted_Level[D]标志,判断指令处理机122执行的“C”或“D”优先级的作业当前有没有被信号处理机中断。如果步骤8(1)-10中的判断结果是肯定的(即有处于活动状态的标志之一),就将步骤8(1)-1中所提取的作业放回缓冲器(步骤8(1)-11),在步骤8(1)-12作进一步检查。步骤8(1)-12更具体地甄别,Job_Interrupted_Level[c]标志是否处于活动状态。如果步骤8(1)-12中的判断结果是肯定的,执行步骤8(1)-13,将Job_Interrupted_Level[c]标志设置为非活动状态,当前优先级标志设置为“C”值。如果步骤8(1)-12中的判断结果是否定的,执行步骤8(1)-14,将Job_Interrupted_Level[D]标志设置为非活动状态,当前优先级标志设置为“D”值。步骤8(1)-13或步骤8(1)-14之一完成后,执行步骤8(1)-15,信号处理机124通过生成IP事件E(IP)2,指示指令处理机122恢复执行最高优先级的被中断作业。然后,行动A(SP)1结束(图中以符号8(1)-16表示)。
如果执行步骤8(1)-10时判明,Job_Interrupted_Level[C]标志和Job_Interrupted_Level[D]标志都不处于活动状态,则执行步骤8(1)-17和步骤8(1)-18,然后结束行动A(SP)1。步骤8(1)-17中,将活动优先级标志设置为与步骤8(1)-1中所提取的作业的优先级相同的优先级,将当前线程标识标志设置成所提取作业的线程标识,并以与步骤8(1)-7中类似的方式,将所提取作业的关联信号作为IP事件E(IP)1发送给指令处理机122(见附图9(1))。步骤8(1)-18,检查“C”级或更高优先级的的作业缓冲器中的所有作业的线程标识,如果有的作业的线程标识与当前线程标识标志相同(也即与所提取作业的线程标识相同),则将与这些作业的每个关联信号发送到指令处理机122的当前表150中。换言之,为作业缓冲器中线程标识与当前线程标识标志相同的每一个作业生成事件E(IP)11。前文说过,指令处理机122响应事件E(IP)11所采取的行动在9(11)中描述。
如果所提取的作业的优先级既非“C”,也非“D”,则在结束行动A(SP)1之前先执行步骤8(1)-19和步骤8(1)-20。步骤8(1)-19和8(1)-20与步骤8(1)-17和8(1)-18类似,主要结果是将作业缓冲器中线程标识与当前线程标识标志相同的所有作业发送到指令处理机的当前表中。行动A(SP)1的结束以符号8(1)-21表示。
(3)SP接收到来自区域处理机的或者由其它指令处理机发出的信号
正如信号处理机124能向区域处理机总线处理器30和“其它”指令处理机总线处理器31发送信号一样,信号处理机124也能接收从这些总线处理器生成的外部信号,这在附图6中以事件E(SP)4表示。当接收到这种外部生成的信号时,采取行动A(SP)4。附图8(4)中表示了行动A(SP)4的步骤。
采取行动A(SP)4时,如果外部生成的信号中不包含线程标识(在步骤8(4)-1中判断),信号处理机124就为其分配一个线程标识(步骤8(4)-2)。例如,信号处理机124分配线程标识的方法是,将一个处理机的标识符与一个内部计数器的值连缀起来,当作线程标识;每分配一个新线程标识,计数器的值就递增一次。
步骤8(4)-3和步骤8(4)-4中,信号处理机124检查外部生成的信号的优先级。如果既不满足步骤8(4)-3的条件又不满足步骤8(4)-4的条件,就检查步骤8(4)-5的线程标识条件,如果步骤8(4)-5的线程标识条件不满足,就执行步骤8(4)-6。
在步骤8(4)-3中,如果外部生成信号的优先级大于指令处理机122当前执行的作业的优先级,并且指令处理机122正在执行的作业的优先级最低(“D”)时,信号处理机124执行步骤8(4)-7。在步骤8(4)-7中,信号处理机124将超时开关设置为“X”值,将Job_Interrupted_Level(D)标志设置为活动状态(表示中断一个优先级为“D”的作业),将中断信号发送给指令处理机122。指令处理机122将该中断视为IP事件E(IP)8,要了解对该事件的反应,可参见附图9(8)中对行动A(IP)8的描述。
在步骤8(4)-4中,如果外部生成信号的优先级为最高级(例如“A”优先级)并且高于指令处理机122当前执行的作业的优先级,信号处理机124执行步骤8(4)-8,将SP_中断标志置位(该置位标志使指令处理机122在当前执行的作业结束时执行新的信号)。此外,步骤8(4)-8还将超时开关设置为“Y”值。
假设外部生成信号既没有导致中断,也没有使SP_中断标志置位,信号处理机124执行步骤8(4)-5,判断(从区域处理机总线处理器30或处理机总线处理器31接收的)外部生成信号的线程标识是不是指令处理机122正在处理的当前线程标识标志,外部生成信号的优先级是否高于D级。如果是,执行步骤8(4)-9,将外部生成信号发送到指令处理机122,要求存入当前表150。指令处理机122一收到这种信号(事件E(IP)9),就将该外部生成信号放入当前作业表150中(见附图9(9))作为最后一项。
如果步骤8(4)-3~步骤8(4)-5中的条件都不满足,信号处理机124就执行步骤8(4)-6,按照外部生成信号的优先级在作业缓冲器142A~142D中选择一个适当的缓冲器,将外部生成信号放入其中。步骤8(4)-7、8(4)-8、8(4)-9或8(4)-6中无论哪个步骤一完成,行动A(SP)4就以符号8(4)-10所表示那样结束。
(4)信号处理机的超时
当作为超时开关存储的数值随着时钟被定时器141减为0时,定时器141会产生超时条件。当定时器141产生超时条件时,信号处理机124将其视为事件E(SP)3(见附图8(3))并采取行动A(SP)3,具体步骤如附图8(3)所示。发生超时条件时,信号处理机124首先在步骤8(3)-1检查SP_中断标志是否置位。如果该标志未被设置,执行步骤8(3)-2,将定时器141(超时开关值)设置为“Y”值,将SP_中断标志置位,然后结束行动A(SP)3(如符号8(3)-3所示)。如果该标志已经置位,下一步执行步骤8(3)-4。
步骤8(3)-4中,将SP_中断标志清除。然后执行步骤8(3)-5,判断指令处理机122当前正在执行的作业的优先级是不是“C”或“D”。如果步骤8(3)-5的判断结果是肯定的,就依次执行步骤8(3)-6、步骤8(3)-7和步骤8(3)-8,然后结束行动A(SP)3。执行步骤8(3)-6时,信号处理机124从缓冲器142A-142D中优先级最高的缓冲器中提取第一个(最先排队的)作业。步骤8(3)-7中,将Job_interrupted_level[Active_Priority]标志设置为活动状态。换言之,信号处理机124注意到超时会引起当前正在执行的(具有Active_Priority优先级的)作业的中断,因此必须将相应的Job_interruptec_level标志设置成被中断作业的优先级。步骤8(3)-8中,指令处理机122当前正在执行的作业(超时就发生在其执行期间)被中断。这种中断被指令处理机122视为IP事件E(IP)8,要了解对该事件的反应,可参见附图9(8)中对行动A(IP)8的描述。
如果步骤8(3)-5的判断结果是否定的,就是说,指令处理机122当前正在执行的作业的优先级高于“C”,就执行步骤8(3)-10,将“删除”(KILL_SIGNAL)信号发送给指令处理机122。指令处理机122将“删除”信号视为IP事件E(IP)3,针对性地采取9(3)中所示的行动A(IP)3。步骤8(3)-8和8(3)-10完成后,行动A(SP)3就以符号8(3)-3所表示那样结束。
B.指令处理机的操作
如上所述,指令处理机122在执行作业过程中(如图7所示)的各种状态下,自己能够生成信号。这种工P生成的信号包括以区域处理机或其它指令处理机为目的地的信号、组合信号、缓存信号。IP生成信号引起的各种事件如附图7中所示,包括对应生成缓存信号的事件E(IP)11,对应生成组合信号或“紧急”(HURRY)信号的事件E(IP)10,对应向区域处理机或其它指令处理机生成信号的事件E(IP)6。“紧急”信号是不经过信号处理机124处理而由指令处理机122立即执行的信号。“紧急”信号的内容是,使指令处理机122转向新的指令码块,并开始执行新的码块。所以“紧急”信号与组合信号不同,它在退出作业时不返回到调用块。
指令处理机122响应IP事件执行如下的各行动:
(1)指令处理机接收到来自信号处理机的信号
当指令处理机122处于空闲状态时,它执行附图9(1)中所示的A(IP)1。具体来说,在步骤9(1)-1,指令处理机122将自己的状态由“空闲”转换为“工作”(见附图7)。然后,步骤9(1)-2,指令处理机122转向其关联程序存储器126中的新的指令码块,开始执行该新指令码块。
(2)IP作业执行被中断
当接到中断(事件E(IP)8)时,指令处理机122采取附图9(8)所示的行动A(IP)8。在步骤9(8)-1,指令处理机122保存上下文。就是说,指令处理机(例如在寄存器存储器162中)保存被中断的指令码块、程序计数器及其各寄存器在中断发生时的内容。然后在步骤9(8)-2,指令处理机122为当前表150中存储的每个作业向信号处理机124发送一个信号,以此有效地将当前表150中的内容转移到信号处理机124。然后在步骤9(8)-3,指令处理机122将当前优先级变为中断信号的优先级,并执行中断信号的关联作业。
(3)IP恢复被中断的作业
事件E(IP)2代表指令处理机122要恢复执行一个被中断的作业。附图9(2)表示对事件E(IP)2所采取的行动A(IP)2。步骤9(2)-1,指令处理机122恢复被中断作业的上下文(从前文可知,从寄存器存储器162中恢复上下文)。然后在步骤9(2)-2,指令处理机122将当前优先级变为被恢复作业的优先级,重新执行被恢复作业的关联信号。
(4)IP向RP或其它IP发送信号
当指令处理机122执行的代码要求向区域处理机或“其它”指令处理机生成信号时,事件E(IP)6发生。附图9(6)表示响应事件E(IP)6所采取的行动A(IP)6。在行动A(IP)6中,指令处理机122只是将这种生成信号发送给信号处理机124,并继续执行当前正在执行的指令块(即生成区域处理机信号或“其它”指令处理机信号时所在的指令块)。
(5)IP发送组合信号或“紧急”信号
当指令处理机122执行的代码要求生成一个组合信号或“紧急”信号(事件E(IP)10)时,指令处理机122立即将其状态设置为“组合”(见附图7和附图9(10)的步骤9(10)-1)。在步骤9(10)-2,指令处理机122保存调用块(即生成组合信号或“紧急”信号时所在的指令块)并将调用块的返回地址放在其堆栈的顶部。在步骤9(10)-3,指令处理机122转向组合信号或“紧急”信号要求执行的新的指令码块,并从头执行该新码块。
(6)IP退出组合信号或“紧急”信号
当指令处理机遇到组合信号或“紧急”信号中的退出指令时,发生事件E(IP)5。附图9(5)表示了发生事件E(IP)5时所采取的行动A(IP)5。在步骤9(5)-1,指令处理机122恢复调用块(即生成组合信号或“紧急”信号时所在的块),并从指令处理机122的堆栈中取回调用块中下一条待执行指令的地址。在步骤9(5)-2,指令处理机122检查“上一个组合信号返回”标志(Last_Combined_Signal_Return)是否处于表示堆栈空的置位状态,如果是,就将指令处理机122的状态设置为“工作”。然后在步骤9(5)-3,指令处理机122从堆栈地址规定的指令恢复执行调用块。
(7)IP发送缓存信号
当指令处理机122执行的指令要求生成一个缓存信号时(事件E(IP)11),指令处理机122采取附图9(11)中表示的响应行动A(IP)11。在步骤9(11)-1,评估当前正在执行的作业的优先级,确定其是否为最低(“D”)级。如果是,执行步骤9(11)-2,将缓存信号作为事件E(SP)2发送给信号处理机124(见附图6)并继续执行生成缓存信号的指令块(如步骤9(11)-3所示),到行动A(IP)11结束(如符号9(11)-4所示)。
如果当前正在执行的作业的优先级比最低优先级高,就执行步骤9(11)-5,判断下一个待执行指令是不是退出指令,SP_中断标志是不是没有被置位。如果步骤9(11)-5中的两个条件的判定结果都是肯定的,则(如步骤9(11)-6所示)该退出指令由指令处理机122将其与发送信号的指令合并执行。否则,如果步骤9(11)-5中的两个条件有一条是否定的,指令处理机122就将缓存信号的关联作业放到当前表150的最后作业位置上(步骤9(11)-7)。完成步骤9(11)-6或步骤9(11)-7后,行动A(IP)11即告结束(如符号9(11)-4所示)。
(8)IP退出缓存信号
当指令处理机122执行缓存信号的关联作业时,指令处理机122最后会遇到退出指令(事件E(IP)4)。当遇到缓存信号的关联作业的退出指令时,指令处理机122采取附图9(4)中表示的行动A(IP)4。“缓存信号”不仅包括前文所述的、由指令处理机122生成的信号,也包括信号处理机124为指令处理机122调度的所有信号。
指令处理机122采取的行动A(IP)4,是通过步骤9(4)-1-9(4)-3执行检查,如果所有这些检查的结果都是否定的,就执行步骤9(4)-4,然后结束行动A(IP)4(如符号9(4)-5所示)。
步骤9(4)-1,指令处理机122判断正在执行的作业的优先级是不是最低(“D”级)。如果是,指令处理机122执行步骤9(4)-6,将其状态设置为“空闲”,然后向信号处理机124发送一个退出信号,交给信号处理机124去处理(见附图6中的事件E(IP)1)。此时,任何在当前表150中存储的剩余信号都不被执行。
步骤9(4)-2,指令处理机122检查SP_中断标志是否置位。对SP_中断标志的置位可能在附图8(4)中的步骤8(4)-7中进行,其时外部生成信号具有最高优先级而当前执行的作业没有最高优先权,或者发生了一个超时条件时(行动A(SP)3的步骤8(3)-2)。如果步骤9(4)-2的判断是肯定的,就在结束行动A(IP)4前执行步骤9(4)-7~9(4)-9。
步骤9(4)-7,指令处理机122将其状态设置为“空闲”。然后在步骤9(4)-8,指令处理机122为当前表150中的每个作业,发送一个信号给信号处理机124(将当前表150中的作业按照先后次序有效地传递给信号处理机124)。对当前表150的每个这种信号的传递,被信号处理机124视为事件E(SP)2(见附图6和行动A(SP)2)。在步骤9(4)-9,指令处理机122向信号处理机124发送退出信号,该退出信号被信号处理机124视为事件E(SP)1,对应采取的行动为A(SP)1。
如果步骤9(4)-1和9(4)-2检查的结果是否定的,指令处理机122在步骤9(4)-3中检查当前表150是不是不空。如果当前表150不是空表,指令处理机122执行步骤9(4)-10,提取当前表150第一个作业的关联信号并开始执行该第一个作业。步骤9(4)-10完成后,行动A(IP)4结束(如符号9(4)-5所示)。
如果上述各步骤9(4)-1、9(4)-2、9(4)-3检查的结果都不是肯定的,指令处理机122执行步骤9(4)-4,将其状态设置为“空闲”,并向信号处理机124发送一个退出信号,表明当前表150中没有等待执行的作业。退出信号被信号处理机124视为事件E(IP)1并以行动A(SP)1响应。步骤9(4)-4完成后,行动A(IP)4结束(如符号9(4)-5所示)。
从上述内容可知,在适当的情况下,作业的执行可能以一种循环的方式,执行当前表150中的缓存信号,直到当前表150中的作业全部被执行完毕。
(9)IP从SP接收要放入当前表的信号
如上所述,指令处理机122可以从信号处理机124接收要放入当前表150中的信号。这种情况特别发生在信号处理机124执行行动A(SP)1(例如步骤8(1)-8、8(1)-18和8(1)-20)和行动A(SP)4(例如步骤8(4)-9)时,它被指令处理机122视为事件E(IP)9。指令处理机122对事件E(IP)9的响应是,采取行动A(IP)9,如图9(9)所示,A(IP)9只是将该信号记入当前表150中作为最后位置(步骤9(9)-1)。
(10)IP接收来自SP的“删除”(KILL)信号
前文说过,信号处理机124可能会生成一个“删除”信号,这种情况发生在(例如)时段超时期间(参见行动A(SP)3的步骤8(3)-10)。这种“删除”信号被指令处理机122视为事件E(IP)3,对其采取图9(3)中所示的行动A(IP)3。当指令处理机122接收到“删除”信号时,执行步骤9(3)-1,将其状态设置为“空闲”。然后,由于时间段期满(例如超时),所以指令处理机122执行步骤9(3)-2,将当前的线程放弃。在步骤9(3)-3,指令处理机122向信号处理机124发送一个退出信号。信号处理机124将这种退出信号视为事件E(SP)1,对其采取行动A(SP)1。行动A(SP)1在图8(1)中表示,前文中讨论过其过程。
(11)IP缓存信号的强行退出(foreced exit)
产生缓存信号的强行退出指令的原因是,应用程序设计者需要保证确实存在这种退出动作。就是说,为了能够执行其它线程,必须插入一个短小的延迟。缓存信号的强行退出确实发生时,则指令处理机122遇到事件E(IP)7,并以行动A(IP)7响应。图9(7)中表示了行动A(IP)7的各步骤。步骤9(7)-1,指令处理机122向信号处理机124发送当前表150中剩余的每个作业的信号,有效地将当前表150的内容转移到信号处理机124。然后,指令处理机122将其状态设置为“空闲”(步骤9(7)-2)。然后在步骤9(7)-3,指令处理机122向信号处理机124发送退出信号。信号处理机124将这种退出信号视为事件E(SP)1,对其采取图8(1)中所示的行动A(SP)1。行动A(SP)1的过程已在前文中讨论过。
图9(7)中表示的各步骤,也可以用其它行动代替以取得强行退出的效果,方法是发送具有延时的信号。
图5表示本发明的另一个实施例,其特点是,中央处理系统220中除了信号处理机224、总线处理器230和共享存储器227(它有一个程序存储器和一个数据存储器)外,还包括若干指令处理机2221、2222、222n。图5实施例中的每个指令处理机222都可以具有图4中的配置。
在诸如图5所示的多指令处理机环境中指令块的执行,必须能处理一个指令块内的数个并发执行,要不然就必须能证明每次在一个指令块中只有一个处理机在执行指令(例如,必须使用信志或某种对不同线程进行同步的装置)。在如图5所示的系统220中,也可能将某些指令块只分配给某一个指令处理机222。这种配置下,如此分配到指令块的指令处理机222要把它的一些数据存储在一个特殊的快速存储器中,以便能够非常高效地执行某些作业。不过作为代价,其它指令处理机222就不得不要变换上下文。
因此从前面内容可知,本发明的指令处理机要涉及对其所执行的作业进行调度,主要是由指令处理机自己将缓存信号的关联作业放置到当前表150中(例如图9(11)中的行动A(IP)11的步骤9(11)-7)。如果缓存信号恰好是在当前正在执行的作业刚要退出之前生成的,其优先权的级别不是最低,并且如果没有中断被设置,则在从生成该缓存信号的作业退出时,执行该缓存信号的关联作业(参见图9(11)中的行动A(IP)11的步骤9(11)-6)。
随后,当指令处理机从因为生成缓存信号而执行的作业退出时,指令处理机可以在几个可选步骤中选择执行某个步骤,选择的根据是,缓存信号的优先级的高低,有没有中断被设置。第一个这种选择包括,从当前表中取出排在第一位的(下一个)作业并执行之(参见图9(4)中的行动A(IP)4的步骤9(4)-10)。第二个这种可选步骤包括,将调度控制权返还给信号处理机124,当缓存信号的优先权级别最低时就是这样处理的(参见图9(4)中的行动A(IP)4的步骤9(4)-6)。第三个这种可选步骤包括,将当前表150的全部内容传递给信号处理机124,当有中断发生时就是这样处理的(参见图9(4)中的行动A(IP)4的步骤9(4)-8)。
采取第一种选择时,连续执行当前表中的作业,每退出一个当前表中的作业,就依次执行下一个。就是说,当(按照步骤9(4)-10)从当前表150提取的作业完成后,作业的退出指令产生(另一个)事件E(IP)4,如果优先级和中断状态的条件许可,事件E(IP)4会导致对当前表150中的下一个信号的执行。
从附图9(11)的步骤9(11)-5可知,缓存信号的关联作业是不是在生成该缓存信号的作业之后立即执行,取决于缓存信号的生成时间,是不是刚好在某个预定种类的指令(例如退出指令)之前。因此,欲使缓存信号在作业完成后立即被执行,引起缓存信号生成的指令必须位于作业中的一个预定的次序上。否则,缓存信号的关联作业就可能会被放在当前表150中,在其它缓冲信号的关联作业之后被执行,甚至会被转移到信号处理机124。
每当指令处理机执行的作业被中断,当前表150的全部内容就被转移到信号处理机124。然后,信号处理机124按照被转移过来的信号的优先级,将当前表150中的信号放置到其缓冲器组142中适当的缓冲器里。
一般而言,当指令处理机需要从信号处理机获得新的执行信号时(例如当信号处理机收到指令处理机的退出信号时),信号是按照优先级(A、B、C、D)的高低和先后次序从缓冲器142A~142D中提取的(参见图8(1)中的步骤8(1)-19)。活动优先级标志和CurrentThread_ID标志是按照所提取信号的优先级和线程标识而设置的,并将所提取的信号送至指令处理机(见图8(1)中步骤8(1)-(9))。此外,信号处理机还将缓冲器142A~142D中与所提取信号的线程标识相同的作业发送到当前表150中,以便使线程标识相同的作业在相近的时间被执行。
因此,信号处理机124也能向当前表150发送信号。这种能力的一个例子如上所述,即信号处理机将其至少一个缓冲器中的、与正在转移到指令处理机的信号的线程标识相同的另一个信号转移到当前表中。与此类似,当信号处理机124确定(从区域处理机总线处理器30或处理机总线处理器31接收的)外部生成信号的线程标识就是指令处理机122正在处理的当前线程标识标志时,该外部生成信号被记入当前表150中(参见图8(4)中的步骤8(4)-5)。
如果上述所提取作业的优先级是“C”或“D”,信号处理机确定当前是否有类似优先级的作业被中断,如果有,就恢复执行该被中断的作业,同时将所提取作业送回到相应的缓冲器142C或142D中(参见图8(1)中的行动A(SP)1)。
如果指令处理机正在执行一个D级信号时,信号处理机收到一个更高优先级的(例如来自指令处理机、区域处理机或“其它”指令处理机的)信号,则指令处理机执行的该D级信号立即被中断(参见图8(2)中的步骤8(2)-7和图8(4)中的步骤8(4)-8)。
在另一个实施例中,指令处理机122配备有多个当前表150A~150D,它们中每一个对应一个优先权级。例如,适当时,“A”优先级的作业会被放置到当前表150A中,适当时,“B”优先级的作业会被放置到当前表150B中,其余类推。
应当明白,针对特定需要的通讯方案,实施上述方法时可以作些变化。例如,对于事件E(SP)1(接收到指令处理机122的退出信号)和行动A(SP)1,就可以有适当的替换过程。就该例而言,信号处理机124在等待指令处理机122的退出信号的同时,可以先行为指令处理机122准备一个信号。然后,当指令处理机122到达出口(EXIT)位置时(此时一般要向信号处理机124请求信息),指令处理机可以检查一下,看看是否有准备好的信息在等着它用。在这种过程中,指令处理机122在执行退出指令的情形中不必等待信号处理机124。
通过当前表150等的提供,本发明的中央处理系统具有能有效地使用速度很快的存储器(例如高速缓冲存储器)的优点,这是因为本发明的中央处理系统变换上下文的频率,不会高到抵销这类快速存储器作用的程度。具体来说,本发明的指令处理机能反复使用“高速缓存”数据。这意味着,以前从某个线程中存取的数据可以再次使用。而且,通过从主存(例如DRAM)提取数据,一次可以提取一个数据字以上的缓冲块。所以,大多数主存访问都能以对高速缓冲存储器的访问而实现,由此减轻了指令处理机的负荷。
此外,本发明的中央处理系统也减轻了信号处理机124的工作量,因为指令处理机122自己调度在当前表150中存储的、与缓冲信号关联的作业。在某些(限时值为1ms的)正常通信量的混合设备(mix implementations)中,能显著减轻信号处理机124的负载。
另外,因为本发明中的缓存信号经常是一生成就立即被执行,所以减轻了与信号处理机124的通讯负载,结果也减轻了指令处理机122的工作负载。
在按照本发明配置的系统中,指令处理机122的时钟频率不必受信号处理机124的时钟频率的限制。
本发明的中央处理系统处理缓存信号调度的速度,比所述先有技术的快。用本发明时尽管减少了访问主存的次数,但却增加了存储器的带宽,这是因为指令处理机122每次访问主存时能提取更大的数据块。
按照本发明方法,因为信号处理机124从作业缓冲器142A~142D中提取作业的时间间隔加大了,所以,信号处理机对这些作业就有更多的准备时间。于是,指令处理机将控制权交给信号处理机去提取下一个线程时,所处“空闲”状态的时间缩短了。
本发明特别有益于那些无须频繁地与区域处理机交互作用的密集执行型任务,例如基于CCITT第7信号的转接开关(transit switches based on CCITT NO.7 signaling)、内部定位寄存器(HLRs-Home Location Registers)、业务控制点(SCPs-Service Control Points)。为了支持这类应用,本发明提供了具有线程标识的外部生成信号(参见图6A中的步骤A(SP)4-1),以便将属于相同线程的作业作为一个线程来执行,这就增加了在上下文转接之间执行作业的数量。
本发明也能在RISC工作站上模拟某些设备,诸如Ericsson AXE10交换机的中央处理机,尤其是因为这种工作站带有高速缓冲存储器。
此外应该明白,本发明的原则并不要求非要为实现信号处理机和指令处理机功能分别配备处理机。为此,本发明用单独一个处理机完成本文所述的信号处理机和指令处理机两者的不同功能。
本文参照本发明的最佳实施例,对本发明作了具体的描述。技术熟练的人员自然明白,在不偏离本发明的精神和范围的情况下可以对本发明的形式和细节作出各种变动。

Claims (41)

1.一种处理系统,其中的信号处理机对由指令处理机执行的作业进行调度,并在指令处理机要求执行下一个作业时向指令处理器传送一个与作业关联的信号,其中的改进包括:
由指令处理机管理的一个当前表,其中,当指令处理机执行的当前作业引起指令处理机生成一个与有待执行的新作业关联的缓存信号时,指令处理机使与新作业关联的缓存信号存储到当前表中。
2.权利要求1的系统,其中,指令处理机按照引起缓存信号生成的当前作业的优先权级,有选择地将与新作业关联的缓存信号存储到当前表中。
3.权利要求1的系统,其中,指令处理机根据信号处理机是否向其发出一个中断,有选择地将与新作业关联的缓存信号存储到当前表中。
4.权利要求1的系统,其中,如果当前作业中生成缓存信号的指令处于当前作业中预先规定的次序时,新作业被立即执行。
5.权利要求4的系统,其中,如果当前作业中生成缓存信号的指令是当前作业的退出指令的前一条指令时,新作业被立即执行。
6.权利要求1的系统,其中,指令处理机使与新作业关联的缓存信号存储到当前表中的一个预定的位置上。
7.权利要求6的系统,其中,指令处理机使与新作业关联的缓存信号存储到当前表中排在最后的作业位置上。
8.权利要求1的系统,其中,当指令处理机完成与缓存信号关联的作业时,如果该缓存信号的关联作业具有预定的优先权级,则指令处理机向信号处理机发送一个退出信号。
9.权利要求8的系统,其中,预定的优先权级是最低优先级。
10.权利要求1的系统,其中,当指令处理机执行的缓存信号的关联作业结束时,如果信号处理机向其发出过中断,则指令处理机向信号处理机发送当前表中的所有剩余作业。
11.权利要求1的系统,其中,当指令处理机执行的缓存信号的关联作业结束时,指令处理机提取并执行当前表中的另一个作业。
12.权利要求1的系统,其中,当指令处理机执行的缓存信号的关联作业结束时,指令处理机有选择地执行下列中的一个:
(A)如果该缓存信号的关联作业具有预定的优先权级,则指令处理机向信号处理机发送一个退出信号;
(B)如果信号处理机向其发出过中断,则指令处理机向信号处理机发送当前表中的所有剩余作业;或
(C)提取并执行当前表中的另一个作业。
13.权利要求1的系统,其中,信号处理机由执行信号处理机所调度的作业的指令处理机仿真。
14.权利要求1的系统,其中,信号处理机有选择地在当前表中存储信号。
15.权利要求14的系统,其中,如果信号处理机中至少有一个能从中提取信号并向指令处理机传送的缓冲器,并且其中当信号处理机向指令处理机传送一个信号时,信号处理机将其至少一个缓冲器中的、与正被传送到指令处理机的信号具有相同线程标识的另一个信号转移到当前表中。
16.权利要求1的系统,其中,指令处理机管理着多个当前表存储器。
17.权利要求16的系统,其中,多个当前表存储器的每一个与一个相应的优先级相关联。
18.一种处理系统,其中的信号处理机对由指令处理机执行的作业进行调度,并在指令处理机要执行作业时向指令处理机传送一个与作业关联的信号,信号处理机能够接收处理系统的外部生成的信号和指令处理机的信号,其中的改进包括:
信号处理机接收到指令处理机的信号或处理系统的外部生成的信号时,如果所接收信号的优先级最高并且高于指令处理机正在执行的当前作业的优先级,信号处理器就向指令处理机设置一个中断。
19.权利要求18的系统,其中,指令处理机管理着一个当前表存储器;其中,当指令处理机执行的当前作业引起指令处理机生成一个与有待执行的新作业关联的缓存信号时,指令处理机使与新作业关联的缓存信号存储到当前表中;其中,当外部生成信号的优先级最高并且高于指令处理机正在执行的当前作业的优先级时,当前表的内容被转移到信号处理机。
20.权利要求18的系统,其中,如果指令处理机正在执行的当前作业的优先级最低,而外部生成信号的优先级比最低优先权级高时,信号处理器就就中断指令处理机正在执行的当前作业。
21.权利要求18的系统,其中,信号处理机由执行信号处理机所调度的作业的指令处理机仿真。
22.一种操作处理系统的方法,该系统中的信号处理机对由指令处理机执行的作业进行调度,并在指令处理机要执行一个由信号处理机调度的作业时,向指令处理器传送一个与作业关联的信号,其中的改进包括:
指令处理机管理着一个当前表,以便当指令处理机执行的当前作业引起指令处理机生成一个与有待执行的新作业关联的缓存信号时,指令处理机使与新作业关联的缓存信号存储到当前表中。
23.权利要求22的方法,其中,指令处理机按照引起缓存信号生成的当前作业的优先权级,有选择地将与新作业关联的缓存信号存储到当前表中。
24.权利要求22的方法,其中,指令处理机根据信号处理机是否发出一个中断,有选择地将与新作业关联的缓存信号存储到当前表中。
25.权利要求22的方法,其中,如果当前作业中生成缓存信号的指令处于当前作业中预先规定的次序时,新作业被立即执行。
26.权利要求23的方法,其中,如果当前作业中生成缓存信号的指令是当前作业的退出指令的前一条指令时,新作业被立即执行。
27.权利要求22的方法,其中,指令处理机使与新作业关联的缓存信号存储到当前表中的一个预定的位置上。
28.权利要求27的方法,其中,指令处理机使与新作业关联的缓存信号存储到当前作业表中排在最后的作业上。
29.权利要求22的方法,其中,当指令处理机执行的缓存信号的关联作业结束时,如果该缓存信号的关联作业具有预定的优先权级,则指令处理机向信号处理机发送一个退出信号。
30.权利要求29的方法,其中,预定的优先权级是最低优先级。
31.权利要求22的方法,其中,当指令处理机执行的缓存信号的关联作业结束时,如果信号处理机向其发出过中断,则指令处理机向信号处理机发送当前作业表中的所有剩余作业。
32.权利要求22的方法,其中,当指令处理机执行的缓存信号的关联作业结束时,指令处理机提取并执行当前表中的另一个作业。
33.权利要求22的方法,其中,当指令处理机执行的缓存信号的关联作业结束时,指令处理机有选择地执行下列中一种工作:
(A)如果该缓存信号的关联作业具有预定的优先权级,则指令处理机向信号处理机发送一个退出信号;
(B)如果信号处理机向其发出过中断,则指令处理机向信号处理机发送当前表中的所有剩余作业;或
(C)提取并执行当前表中的另一个作业。
34.权利要求22的方法,其中,信号处理机由执行信号处理机所调度的作业的指令处理机仿真。
35.权利要求22的方法,其中,信号处理机有选择地在当前表中存储信号。
36.权利要求33的方法,其中,如果信号处理机中至少有一个从中提取信号向指令处理机传送的缓冲器,并且其中当信号处理机向指令处理机传送一个信号时,信号处理机将其至少一个缓冲器中的、与正被传送到指令处理机的信号具有相同线程标识的另一个信号转移到当前表中。
37.权利要求22的方法,其中,指令处理机管理着多个当前表存储器。
38.权利要求22的方法,其中,多个当前表存储器的每一个与一个对应的优先级相关联。
39.一种操作处理系统的方法,其中的信号处理机对由指令处理机执行的作业进行调度,并在指令处理机要执行作业时向指令处理器传送一个与作业关联的信号,处理系统能够接收处理系统的外部生成的信号和指令处理机的信号,其中的改进包括:
信号处理机接收到指令处理机的信号或处理系统的外部生成的信号时,如果外部生成的信号的优先级最高并且高于指令处理机正在执行的当前作业的优先级,信号处理器就向指令处理机设置一个中断。
40.权利要求39的方法,其中,指令处理机管理着一个当前表存储器;其中,当指令处理机执行的当前作业引起指令处理机生成一个与有待执行的新作业关联的缓存信号时,指令处理机使与新作业关联的缓存信号存储到当前表中;其中,当外部生成信号的优先级最高并且高于指令处理机正在执行的当前作业的优先级时,当前表的内容被转移到信号处理机。
41.权利要求39的方法,其中,如果指令处理机正在执行的当前作业的优先级最低,而外部生成信号的优先级比最低优先权级高时,信号处理器就就中断指令处理机正在执行的当前作业。
CN 96199957 1995-12-19 1996-12-19 指令处理机作业的调度 Pending CN1209207A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US57497795A 1995-12-19 1995-12-19
US08/574,977 1995-12-19

Publications (1)

Publication Number Publication Date
CN1209207A true CN1209207A (zh) 1999-02-24

Family

ID=24298404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 96199957 Pending CN1209207A (zh) 1995-12-19 1996-12-19 指令处理机作业的调度

Country Status (7)

Country Link
EP (1) EP0868690A1 (zh)
JP (1) JP2000502202A (zh)
KR (1) KR20000064491A (zh)
CN (1) CN1209207A (zh)
AU (1) AU714853B2 (zh)
CA (1) CA2240778A1 (zh)
WO (1) WO1997022927A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549578A (zh) * 2017-12-25 2018-09-18 贵阳忆芯科技有限公司 一种中断聚合装置及其方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100401443B1 (ko) 1998-11-16 2003-10-17 텔레폰아크티에볼라게트 엘엠 에릭슨 이벤트를 기반으로한 시스템의 병행 처리
SE9803901D0 (sv) * 1998-11-16 1998-11-16 Ericsson Telefon Ab L M a device for a service network
JP2001022600A (ja) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
AU2002317219A1 (en) * 2001-07-12 2003-01-29 Do Labs Method and system for modifying a digital image taking into account its noise
KR101355295B1 (ko) * 2006-08-29 2014-02-07 엔에이치엔엔터테인먼트 주식회사 온라인 게임에서 메시지 송신 제어 방법 및 장치
CN103246591B (zh) * 2013-04-26 2016-01-27 华为技术有限公司 信号处理的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286322A (en) * 1979-07-03 1981-08-25 International Business Machines Corporation Task handling apparatus
EP0362903B1 (en) * 1985-10-15 1994-11-30 Unisys Corporation A special purpose processor for off-loading many operating system functions in a large data processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549578A (zh) * 2017-12-25 2018-09-18 贵阳忆芯科技有限公司 一种中断聚合装置及其方法
CN108549578B (zh) * 2017-12-25 2020-02-07 贵阳忆芯科技有限公司 一种中断聚合装置及其方法

Also Published As

Publication number Publication date
JP2000502202A (ja) 2000-02-22
CA2240778A1 (en) 1997-06-26
EP0868690A1 (en) 1998-10-07
AU1218897A (en) 1997-07-14
WO1997022927A1 (en) 1997-06-26
AU714853B2 (en) 2000-01-13
KR20000064491A (ko) 2000-11-06

Similar Documents

Publication Publication Date Title
CN105389209B (zh) 一种异步批量任务处理方法及系统
CN1021536C (zh) 数据处理系统中串行通信控制器的可度量的调度器
US6732139B1 (en) Method to distribute programs using remote java objects
CN1152304C (zh) 并行数据处理的方法和装置
CA2704269C (en) Uniform synchronization between multiple kernels running on single computer systems
CN101694631B (zh) 实时作业调度系统及方法
CN1790270A (zh) 支持多进程的Java虚拟机实现方法
CN114840304B (zh) 一种容器调度方法、电子设备和存储介质
US20080104296A1 (en) Interrupt handling using simultaneous multi-threading
CN100346307C (zh) Java操作系统中实时任务调度的实现方法
CN1277387A (zh) 监视和处理数据处理系统中相关线程事件的方法和设备
CN1297880C (zh) 控制打印工作调度的方法及应用该方法的打印系统
CN112559159A (zh) 一种基于分布式部署的任务调度方法
CN1209207A (zh) 指令处理机作业的调度
CN1797349A (zh) 多重呼叫处理线程处理方法
CN111158875B (zh) 基于多模块的多任务处理方法、装置及系统
US20030191794A1 (en) Apparatus and method for dispatching fixed priority threads using a global run queue in a multiple run queue system
CN105763481A (zh) 一种信息缓存方法及装置
CN110503318A (zh) 综合模块化航空电子处理系统资源配置与仿真评估平台
CN100383743C (zh) Java操作系统中实时任务调度方法
CN106897147A (zh) 一种应用容器引擎容器资源调度方法及装置
CN1156860A (zh) 计算机系统
CN1310146C (zh) 单片机操作系统的模块化实现方法
CN1519735A (zh) 嵌入式实时操作系统的进程调度方法
CN110162381A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication