分级多处理器系统及其控制方法

文档序号:92566阅读:262来源:国知局
专利名称:分级多处理器系统及其控制方法
本发明有关一种由若干处理器(CPU)共用一个主存储器的多处理器系统。
众所周知,一个计算机系统设置有操作系统(OS),使系统资源得以有效利用,并使计算机系统进行有效地运转。
已有技术的多处理器系统中,多个CPU共用一个主存储器,OS给CPU提供执行作业时必需具备的控制。在这种情况下,就会遇到下列的问题(1)当一个CPU为了执行一项作业而在主存储器的一个区域里存取时,需有一个禁止其它CPU在主存储器上存取的封锁控制,这项操作是复杂的,而且OS的维护也很麻烦。
(2)封锁必须经常锁定和释放。这样就增加了OS的额外开销。
(3)由于有封锁竞争,即使增加CPU的数量,也不能改善性能。
本发明的目的,是提供一种多处理器系统及其控制方法,以便即使在CPU的数目所有增加,其OS的设计和维护均十分容易,且使CPU竞争减少到最低限度。
在本发明中,OS被分为两个层级,即一个本地管理程序处理本地资源,一个全局管理程序处理全局资源。这两个管理程序分别由两个CPU执行。指定给本地管理程序的CPU称为本地CPU,而指定给全局管理程序的CPU称为全局CPU。由于本地管理程序不需要考虑其它CPU的存在,因此便不需要对封锁进行锁定和释放,故OS的设计和维护可与无多处理器功能的OS一样容易。由于减少了对管理程序的依赖,从而减少了与其它CPU的竞争(用户程序和本地管理程序操作时可不受任何其它CPU的干扰),这样系统的性能便随CPU的数目增加而成比例提高。
附图简述图1表示本发明一个实施方案的总结构形式,图2表示为一个本地管理程序的控制流程图,图3表示一个GETMAIN指令的一种格式,图4表示一个控制程序块,图5为说明全局管理程序进行控制的一个流程图,图6,7和8表明固件控制的若干实例。
图1表示本发明一个实施方案的总体结构。CPU2-1,2-2,3-1,3-2和3-3共用一个主存储器1,主存储器1有局部区域12-1……12-N,其中每一个区域只在指定的CPU处理时使用,另有一个共用区域11,由局部区域在处理时共同使用。每个局部区域12中包括有一个本地管理程序16。局部区域12又包括一个作业专用区17,它包括一个本地资源19和一个应用程序18。当由本地管理程序16和管理程序13控制执行应用程序时,便在计算机系统中产生一作业。每一个本地CPU仅在一个局部区域里进行处理,而在一个局部区域里进行处理时,不能由若干CPU2和3同时进行。例如,本地CPU3-1进行局部区域12-1的处理,本地CPU3-2进行局部区域12-2的处理,而本地CPU 3-3进行局部区域12-3里的处理。在此时间内其它局部区域不进行处理。其它局部区域只在一个本地CPU3完成了相应局部区域处理或中断处理后允许别的局部区域处理时才进行处理。本地CPU3处理时不依靠其它的CPU而单独进行。本地管理程序16非常简单,就象一个只有一个CPU的系统一样,并能充分利用CPU的操作。
为了执行应用程序18,不仅可以在一个局部区域里进行处理,而且可以利用供全体局部区域共同使用的全局资源进行处理。需要进行这种处理时,本地管理程序16请求全局管理程序13执行。全局管理程序13由两个全局CPU2-1和2-2执行。全局管理程序可以由一个或由任何数目的CPU执行。全局管理程序13的处理结果被送回提出请求的本地管理的局部区域。当全局管理程序13正在进行处理时,为了防止全局管理程序的处理与本地管理程序的处理之间的竞争,禁止本地管理程序16的在局部区域与全局管理程序13所进行的处理有关的处理。
在本实施方案中,全局CPU2和本地CPU3的构造完全相同,只是他们存取主存储器的不同区域。
下面参看图2至图8对本发明的实施方案作详细解释。
我们假设本地CPU3-1在局部区域12-1中执行应用程序18时,发出一个请求在主存储器上分配一个工作区的指令GETMAIN。这时就向本地管理程序16-1发出一个叫作调用管理程序(SVC)的中断命令,然后本地管理程序16-1便进行处理。
指令GETMAIN的指令格式如图3所示。符号31表示操作码,符号32-35表示操作数字段。字段32包括所需使用区域的大小,字段33包括该区域的类型,字段34包括其中存有区域分配结果的应答区域地址,字段35包括其它操作数。区域类型用0-255共256个号码编号,每一个编号均有与其它编号不同的含义。0-127号代表全局资源14中的区域,128-255号代表本地资源19中的区域。本地管理程序16-1检验区域字段33的类型,以决定是否请求分配局部区域(101)。假如结论是“是”,便根据请求指定本地资源19的区域(102)。然后再使控制回到应用程序18上。假如步骤101的结论是“否”,那么本地管理程序16-1便请求全局管理程序13执行(111)。这被称为全局管理程序调用。
此时本地CPU3-1在局部区域12-1里的处理中断执行,但在其它局部区域12中执行处理。
现在先对用于上述处理的控制程序块15作解释如下。程序块15位于全局资源14内,其格式如图4所示。它包括每一局部区域里的各种控制信息。列41说明局部区域号码,列42显示在局部区域执行处理的若干个全局CPU(ASCBGCPU),列43显示多个正在局部区域执行处理的本地CPU(ASUBLCPU),列44显示多个可以在局部区域中执行的任务(ASCBTCBS),列45显示其它控制信息。
本地管理程序16-1向在局部区域执行处理的本地CPU 3-1的固件21提出请求,查找有就绪任务而没有执行的其它局部区域(112)。固件21在微程序控制下,进行在图6所示的处理。首先检验控制程序块15的第一局部区域里的列42(ASCBGCPU)和列43(ASCBLCPU)是否为“0”(301)。假如是“0”的话,就检验到44(ASCBTCBS)是否大于“0”(302)。如果大于“0”,就把当前局部区域的号码报告给本地管理程序(303)。
假如步骤301和302里的任何一个步骤的结论是“非”,那么就检验是否检查过控制程序块15的最后一个局部区域(304),如果没有检查过,那么就检查下一个局部区域(305),并重复步骤301和302。如果步骤304的结论是“是”,那么便报告没有和本地管理程序对应的区域(306)。
本地管理程序16-1检测固件21的应答,决定是否存在对应的局部区域(113)。如果有的话,便提出局部区域的号码,请求固件21进行控制,把处理转移到局部区域(114)。固件21据此响应,进行处理,其处理过程如图7所示。它首先检查局部区域的列42(ASCBGCPU)是否为“0”(401),列43(ASCBLCPU)是否为“0”。如果两者有一个的结论是“否”,便通知本地管理程序CC≠0(405)。如果步骤401和402的结论都是“0”,便对局部区域(403)的列43(ASCBLCPU)置“1”,并向本地管理程序(404)报告CC=0。本地管理程序检验CC是否等于0(115),假如是0,便请求固件将CPU从当前的局部区域释放出来,并转换局部区域(116)。由CPU处理的空间的转换已在美国专利第4,326,248上公布。它用一个称为段表原始地址的寄存器的一个内容将被更换为新地址,从而可以执行新地址区域的处理。
固件21把局部区域里的列43(ASCBLCPU)置“0”,如图8所示(501)。假如步骤113和115的结论是“非”,那么便执行步骤112。
现在再解释图2中步骤111的处理。当调用全局管理程序时,程序状态字(PSW)控制寄存器(包括段表原始地址)和通用寄存器的内容被存储进将开始新的处理的CPU的前置区里,如同通常的管理程序调用一样。在本实施方案里,因为有许多全局CPU,所以这些寄存器的内容被存储在全局CPU使用的前置区里,全局CPU通过对步骤111的响应执行该处理。此时从非忙碌全局CPU中选出一个执行。假如没有可用的全局CPU,那么就按次序排队。
当全局管理程序13收到全局管理程序调用时,便进行图5所示的处理。全局管理程序将全局资源存储区域封锁,防止其被其它的处理使用(201)。为了检验作该处理的本地CPU是否已从局部区域中释放出来,全局管理程序13检验控制程序块15的局部区域ASCBLCPU列43是否为“0”(202)。如果不是“0”,重复上述步骤。如果是“0”,那么就将局部区域的ASCBGCPU列42增1(203),然后释放封锁(204),然后根推写入前置区22中的信息(205),存取局部区域12-1,并读出发出的GETMAIN命令的操作数(206),根据该信息指定存储区(207),把赋值在操作数里的应答区域地址34所指定的本地资源19里的地址位置中置位(208)。然后与步骤201一样,封锁存储区域(209),把控制程序块15局部区域的ASCBGCPU列42减1(210)。随后释放封锁(211)。
据此,当局部区域12-1的应用程序发出指令,请求处理的指令,其处理所涉及局部区域12-1以外的区域时,处理不由本地管理程序16-1执行,而由全局管理程序13执行,并把处理结果提供给本地管理程序6-1。
当不处理任何局部区域的本地CPU进行图2里的步骤112-116时,本地管理程序16-1的处理便恢复。
在另外一种实施方案中,对局部区域给予优先级别,假如在局部区域中有一个就绪的任务,优先级高于本地CPU当前还在处理的局部区域,于是把当前的处理中断而处理就绪任务。
因此,本地管理程序可以不受其它处理的影响而独立进行处理。
权利要求
1.一具有一主存储器和多个处理器的多处理系统,其特征在于所说主存储器具有一个共用区域和多个局部区域,每个局部区域有一本地管理程序,所说共用区域有一全局管理程序,所说多个处理器由所说本地管理程序或所说全局管理程序共享主存进行处理,所说本地管理程序在因需处理而需存取所说共用区域时,请求执行全局管理程序,所说全局管理程序在收到这样的请求时执行处理。
2.权利要求
1中所述多处理器系统,其进一步特征为在所说局部区域内存有一应用程序,它由所说本地管理程序控制下执行,并向所说本地管理程序发出处理请求,当所说本地管理程序收到请求处理时,如果处理可在该本地管理程序所在的局部区域内执行的话,则执行处理,如果不能在局部区域内执行处理的话,则请求所说全局管理程序执行处理。
3.权利要求
1中所述的多处理器系统,其进一步特征为在一组所说的处理器中,每一处理器执行局部区域内的处理,而由另外一个处理器执行需要在所说共用区域中作存取的处理。
4.权利要求
1中所述的多处理器系统,其进一步特征是在一个时间内,只有一个所说处理器在所说本地管理程序控制下操作。
5.权利要求
2中所述的多处理器系统,其进一步特征为所说本地管理器在请求执行后,使由本地管理程序执行处理的处理器,转由另一个本地管理程序执行处理。
6.权利要求
5中所述的多处理器系统,其进一步特征为在所说共用区域中,有一个控制程序块,用于存储是否有处理器正在为局部区域执行处理是否有处理器正在局部区域内由本地管理程序执行处理及要执行的处理是否要在局部区域内进行的信息,所说另一个本地管理程序是指其存储于所说控制程序块的位息已表明无任何处理器为其执行处理、无任何处理器由在其中的本地管理程序执行的处理及无任何处理器将在其中执行处理的所说局部区域的所说管理程序之一。
7.具有一由多个处理器共用的主存储器的多处理器系统,其特征为所说主存储器有一个共用区域和若干局部区域,若干本地处理器,每一处理器只在所说局部区域里的一个中执行处理,一个全局处理器执行需在所说共用区域中存取的处理。
8.一用于控制多处理器系统的方法,所说系统包括一有一共用区域和若干局部区域的主存储器,每一个所说局部区域各有一个本地管理程序,一个供所说共用区域使用的全局管理程序,多个共享所说主存储器的处理器,它们或由所说本地管理程序或所说全局管理程序执行处理,所说局部区域各有一个应用程序,所说方法的特征为以下的操作步骤执行所说应用程序,当所说应用程序请求所说本地管理程序作处理时,决定处理是否可以在所说局部区域中之一个里执行,如果处理可在局部区域里执行,本地管理程序使执行处理,如果处理不能在局部区域里执行,请求所说全局管理程序执行处理。
专利摘要
在一个由若干处理器共用主存的多处理器系统中,有两个操作系统,一个是在局部区域内执行处理的本地管理程序;一个是需在共用区域存取以执行处理的全局管理程序。当本地管理程序执行处理而需要存取局部区域以外的区域时,它可以请求全局管理程序执行处理。这样,本地管理程序就只在局部区域内的进行处理。一个局部区域里没有一个以上的处理器同时执行处理。
文档编号G06F15/16GK85104907SQ85104907
公开日1987年2月4日 申请日期1985年6月25日
发明者高桥英夫 申请人:株式会社日立制作所导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1