CN88100704A - 多重处理的方法和设备 - Google Patents

多重处理的方法和设备 Download PDF

Info

Publication number
CN88100704A
CN88100704A CN88100704.8A CN88100704A CN88100704A CN 88100704 A CN88100704 A CN 88100704A CN 88100704 A CN88100704 A CN 88100704A CN 88100704 A CN88100704 A CN 88100704A
Authority
CN
China
Prior art keywords
processor
carrying
storehouse
execution
unusual
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.)
Withdrawn
Application number
CN88100704.8A
Other languages
English (en)
Other versions
CN1010991B (zh
Inventor
小爱德华·保罗·山
布赖恩·肯特·斯特雷理奥夫
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.)
Nokia Bell Labs
Original Assignee
AT&T Bell Laboratories Inc
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 AT&T Bell Laboratories Inc filed Critical AT&T Bell Laboratories Inc
Publication of CN88100704A publication Critical patent/CN88100704A/zh
Publication of CN1010991B publication Critical patent/CN1010991B/zh
Expired 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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

Abstract

一主从多处理机通过连接从处理机至单处理机输入/输出槽并最低限度改变单处理机操作系统方式产生。初始化时用一程序改变从属中断矢量方向使其指向一公用中断处理程序。在从处理机上执行进程前,用另一程序使该进程的执行堆栈上下限变差。执行进程时调用不中断操作系统使执行堆栈指示字对照堆栈上下限值由固件自动检查。出现中断或遇到堆栈异常时分别暂停执行该进程并调用中断处理程序或从属堆栈异常处理程序。

Description

本发明总的来说是关于多处理机系统,特别是关于在多处理机系统中各处理机之间分配功能和转移控制的方式。
和单处理机计算机系统比较,多处理机计算机系统一般在硬件和软件方面的设计都更为复杂。例如,典型多处理机系统一般需要专用的并且是复杂的处理机间通信装置和协议、由多个处理机访问以便共享输入和输出资源的专用装置、和存储器以及其它防止各处理机之间处于竞争状态和产生同时存取矛盾的资源封锁装置。
这些复杂情况有很多可借助于主从多处理机布局方式加以避免。在该布局方式中,一个或多个从处理机只进行按用户指令进行的处理,并将操作系统业务处理进程转移到主处理机上。就输入/输出设备和其它外围设备而论,这类系统作为由主处理机组成的单处理机出现,因而可作为该种单处理机与该种单处理机互相配合。这样就可以避免许多操作系统在涉及共享资源封锁、避免竞争状态和其它处理机间相互配合事宜等方面的复杂性。
然而由于需要多个处理机进行通信和将控制从一个处理机转移到另一个处理机,因而在这类多处理机的设计中有许多地方仍然极为复杂,特别是在操作系统的软件方面更是如此。因此在本技术领域中存在这样的问题,例如,单处理机一般不能“增长”为多处理机,单处理机只有通过大幅度重新设计操作系统才能将其转变为多处理机,将单处理机系统设计转变为多处理机系统设计所需进行的改变,对应用程序来说是不透明的。
本发明的目的是解决现有技术的上述问题。举例说,本发明的多处理机系统是按下列方式工作的:确保预定条件的存在(例如堆栈下限异常之类的故障),使得当第一(从)处理机在执行某一进程时试图转移不在该第一处理机上执行的功能,且附带检查条件的存在情况时,可满足该预定条件,促使某一处理功能的执行。处理功能的执行会使进程转移到第二(主)处理机上。
根据本发明,具有第一和第二处理机的多处理机系统还具有确保预定条件存在的第一设备和检查预定条件存在情况的第二设备。第二设备是根据在第一处理机执行某一进程中想转移不在第一处理机上执行的功能的意图而这样做的。举例说,这个功能是一个在特许执行方式下执行的操作系统功能,这个意图是调用该功能。第二设备满足预定条件,并作出执行某一处理功能的响应。系统的第三设备(例如处理机的中央处理机)执行处理功能,把执行的进程转移到第二处理机上。
根据本发明的一个实施例,当多处理机系统的从处理机在用户执行方式下执行进程时企图进入特许执行方式以获取操作系统的服务时,就要使从处理机的硬件或固件处理诸如堆栈下限异常或存储器异常之类的故障。从处理机的硬件或固件是在容许进入特许方式之前自动检查这类故障的存在情况。这一处理引起某一处理功能的执行,使执行进程转移到主处理机上。被转移的进程大致上是在从处理机停止执行程序时恢复在主处理机上执行的。举例说,中断的进程/指令的执行不是在主处理机上再起动就是只在主处理机上完成。在前一种情况下,输入特许方式的企图与检查故障一样,是在主处理机上反复进行的,但故障并非由主处理机加以解决。因此在两者的任一情况下,均只进入主处理机特许方式并使操作系统工作。
以主从配置方式操纵多处理机系统的好处在于简化了操作系统,大大减少了与存储器封锁机构有关的复杂性和对竞争状态的处理,并避免了与用户以及输入/输出(I/O)接口有关的复杂性。上述简要介绍的配置方式和主从式多处理机系统的操作方式进一步简化了操作系统,也进一步简化了多处理机硬件。这样做的好处是:只要把普通处理机的硬件加到普通单处理机系统上(例如,只要把新的处理机的硬件连接到单处理机通信总线的上槽),并将单处理机系统的操作系统进行最小限度的修改,即可从单处理机改变为多处理机。其它的优点为:避免了对由从处理机通过调用操作系统进行操作的大量程序进行通常必需进行的改变。上述进行的最小限度的改变使多处理机操作系统软件在特性不变差的情况下仍可在单处理机上高效率地运行,从而可构成一个可在其后扩充成一个多处理机系统,而无需改变操作系统软件的单处理机系统。
作为本发明的优点,将单处理机操作系统变换成多处理机系统而对单处理机操作系统所需要进行的改变具有这样一种性质:即用户与输入/输出接口可以保持原封不动,从而使源代码和二进制代码两者都与现有的各种应用程序兼容。从客户、用户或开发人员的角度来看,这种改变成多重处理的作法并不会给操作系统带来不相容性或错综复杂的问题。此外,本多处理机系统所提供的所有功能度都适用于所有应用程序,不管目前是采用哪一种处理机执行该应用程序,对所有进程都只显示单个虚拟机图象。这样,便可将单处理机系统发展成为多处理机系统以改进单处理机系统的特性而无需对现有的应用程序重新编码、重新编译、重新设计、重新分配、重新制定格式、重新连接、重新制作、重新构成或取代。
从下面对本发明一个实施例结合附图所进行的介绍即可清楚地了解本发明的上述优点和其它优点和特点。
图1是包括本发明一个实施例的计算机系统方框图;
图2是图1系统的进程控制块和指示字的方框图;
图3是图1系统的系统调用微程序的程序流程图;
图4概括性地叙述了涉及确保使执行特许方式的进程从图1的从处理机转移到主处理机所涉及的各步骤的流程图;
图5至图16是图1系统各种操作系统的程序流程图;
图1是基于AT&T    3B15型电子计算机的一个多处理机系统实例的示意图。3B15系统具有许多单元或站,从图中可以看到其中的四个站12、13、26和27。系统需要履行的各种功能都在这些站中分配。系统的每个站是专门执行某些功能的,各站所执行的功能通常是彼此不同的,但各站在执行系统的任务时彼此协作。因此,举例说,第一站12起系统的主处理机和中央控制器的作用,执行数据处理操作和进行使系统协调工作的各种工作;第二站13起系统的主存储器(MM)的作用。控制处理机12中所执行的程序和处理机12在执行程序的过程中所需用或所产生的数据从存储器中的存取;第三和第四站26和27起输入和输出控制器(IOC)的作用,控制和协调为系统提供海量存储或与外界通信的各种外围设备的功能。3B15系统中还可包括其它具有与站12、13、26和27类似或不同的功能能力的站(图中未示出)。各站的功能受其内部结构的支配,在智能站的情况下则受在其处理机上所执行的程序的支配。根据系统用途的要求可将站加到系统上或从系统上去除。
为了使在执行系统任务的过程中彼此互相协作,系统各站彼此用本地总线(LB)11连接起来,本地总线11作为各站的通信媒体,并可使系统中的任何站与任何其它站通信。
3B15计算机的硬件借助连接到本地总线11的第二处理机25扩充成多处理机的配置方式。单板处理机以任何其它站的方式连接到本地总线11的单扩充站的槽口上。但是双板处理机(例如与普通3B15处理机12完全相同的处理机)则占据本地总线11的两个扩充站槽口。在后一种配置方式中,须在处理机25的两个板之间另外接上专用处理机通信总线,以使其连接方式与通常由本地总线11提供的处理机12专用的两个台槽口间的连接方式相同。无论采用什么样的板连接形式构成处理机25,所有I/O的外部中断都只由本地总线11连接到主处理机12上而不连接到从处理机25上。这在图1中是用平行于总线11的虚线表示。
举例说,处理机12和25个个都包括一个作为处理机的中央处理机(CPU)AT&T    WE32100型微处理机、两个WE32101型请求分页的存储器管理部件(MMUs)和一个WE32106型数学加速部件(MAU)。这些部件合在一起标以100的编号。虽然处理机12和25共用存储器13,但各处理机都具有装在板上的专门或专用存储器,编号为101。I/O单元26-27具有支持请求分页存储器13的磁盘。
处理机12和25在AT&T请求分页版本的UNIX操作系统的控制下运行。操作系统实质上是按下面即将谈到的方式修改过的普通单处理机型操作系统。
为使修改的目的和效果清楚起见,需要对传统的单处理机的运作和所期待的多处理机的运作作一简要介绍。有关WE32100型微处理机的详细介绍可见美国新泽西州莫里斯敦市AT&T技术有限公司文件编制编排微电子设备规划组出版的《UNIXTM微系统资料手册》中查到。因此下面只简要介绍我们认为全面了解本发明例示的实施例所必需的有关操作的某些方面。
一般说来,3B15系统通常采用WE32100型微处理机的两种操作方式或操作级,一种是用户操作方式,用于执行用户程序指令,另一种是特许操作方式,用于执行诸如具有潜在败坏象硬件资源之类的共享系统资源功能的操作系统指令。有两种从用户操作方式进入特许操作方式的途径:进程转换和系统调用。系统调用也叫做管理程序调用和操作系统俘获。
系统调用实际上起子程序调用的作用。它通过在处理机上建立新的处理机状态字(PSW)和程序计数器(PC)从而提供一进入一功能的受控入口的装置。系统调用是由显式操作系统GATE调用而使用以将控制从用户操作方式转移到特许操作方式。系统调用也用以处理“正常的”系统异常(“快速”中断也由此处理,但UNIX操作系统或类似的环境并不使用它,因而这里不予讨论)。异常状态是中断状态以外的错误状态(故障或俘获)。正常的异常状态构成系统大多数的异常状态。正常异常状态处理程序为特许操作方式功能。
系统调用使用本进程的执行堆栈,即经由GATE指令调用的正常异常状态处理程序或功能为了其本身的执行使用在发生异常状态或GATE调用时执行任务的进程的执行堆栈。
各执行堆栈具有上下限,这些上下限都保存在正使用该堆栈的进程的进程控制块(PCB)中。典型的进程控制块200如图2所示。进程控制块是存于存储器13中包含该进程在进程不运行时硬件上下文的数据结构。该上下文包括处理机状态字(含有关于微处理机和现时执行进程的状态信息的寄存器)的初始和中间(目前)内容211和212、程序计数器的初始和中间内容213和214、执行堆栈指示字(SP)的初始和中间内容215和216、执行堆栈用的下限值217和上限值218和其它诸如通用寄存器、帧指示器和变亢指示器的最后内容和块移动一览表之类的其它信息219。
在从非特许状态转入特许状态时,系统应始终进行检查,以确保特许状态不变坏。因此在合法进入特许功能之前,即在出现正常异常状态或GATE请求而执行转入特许操作方式的操作之前,系统调用按图3所示的方式将现有的执行堆栈指示字的值与执行堆栈界限值进行核对。执行堆栈界限值存于目前正执行的进程的进程控制块中。进程控制块指示字(PCBP)202和堆栈指示字(SP)203都是微处理机的专用寄存器。PCBP202的现行值指示着现时正执行的进程的PCB200的中间值(见图2)。在步骤300进行核实,并在步骤302将堆栈指示字203的现行值与由PCBP202的内容加上12而得PCB位置值(在此为堆栈下限217)进行比较。若堆栈指示字值越过下限,则在步骤304将堆栈指示字203的现行值加上8与由PCBP202的内容加上16(十进制)而得PCB位置值(在此为堆栈上限218)进行比较。只有当堆栈指示字值在规定的上下限内,转移过程才在步骤306发生;若堆栈指示字值不在规定的上下限内,则在步骤308产生堆栈异常状态。这时微处理机,或直接在硬件中自动履行检查程序,或通过执行某一微指令序列(即固件)自动履行检查程序。
若在出现GATE调用或正常异常状态时发现堆栈指示字处于规定的上下限范围内,则处理机就在发生正常异常状态或GATE请求的进程中处理该情况:将系统调用受驱动时正在执行的进程的处理机状态字和程序计数器都存于该进程的执行堆栈上,使堆栈指示字增值,并将所调用功能的程序计数器和处理机状态字输进程序计数器和处理机状态字寄存器中。这些动作都是以同样的方式通过硬件或通过执行微指令序列自动进行的。举例说,GATE调用和正常异常状态都有它们自己独立的微指令序列。
进程转换是由中断和包括堆栈异常在内的“非正常”异常使用的。进程转换对新旧进程采用不同的执行堆栈。因此举例说,堆栈异常处理进程具有自己的执行堆栈,它与进程异常(excepted-to    process)的执行堆栈不一样。同样,中断处理进程也有自己的执行堆栈,与被中断的进程的执行堆栈不一样。由于对各中断处理和非正常异常处理采用不同的执行堆栈,因而在发生中断或非正常异常时不执行对堆栈上下限值的检查。
在中断或堆栈异常进程转换离开一进程时,微处理机将该进程的进程控制块指示字存储在一全系统中断堆栈上,然后将该进程的硬件上下文(目前程序计数器、堆栈指示字和处理机状态字值,以及通常存储在进程控制块中的其它寄存器的内容)写入进程控制块中(由进程控制块指示字指示)。若要进入新进程时,微处理机获取新进程的进程控制块指示字,用它访问新进程的进程控制块并从那里将新进程的硬件上下文存入硬件寄存器中。
上述作业都是由微处理机自动进行的,它可以是直接在硬件中进行,也可以通过执行微指令序列进行的。举例说,各中断和各非正常异常都有它们自己独立的微指令序列。
系统调用和进程转换的微指令序列将新功能的处理机状态字和程序计数器或新进程的进程控制程序块存入操作系统所提供的矢量表中。在正常异常状态和GATE调用状态下,操作系统提供一含有一套处理程序表起动地址的指示字表和处理程序表本身。各处理程序表包含处理机状态字和一组功能的程序计数器值。在非正常异常状态下,操作系统提供一含有非正常异常处理进程的进程控制块的异常矢量表。在中断状态下,操作系统提供一存储中断处理进程的初始进程控制块指示字的中断矢量表。图2示意性地表示了矢量表201。
为达到本说明书背景技术部分所述的目的,最好使处理机12和25在主从配置方式下工作。在这种配置方式下,从处理机25实质上只进行用户操作方式的处理,即只进行不要求操作系统(特许)服务的处理,主处理机12则除了进行用户操作方式的处理外不进行基本上所有涉及操作系统服务的处理。任何在从处理机25上执行在接下去执行的过程中要求操作系统服务的进程都转移到主处理机12中执行。
为了使对操作系统进行最少的修改便可实现处理机间的转移,在从处理机25上执行的某一进程可令其仍在从处理机25上执行,直到由于执行其一个指令而引起某一操作系统工作为止,或直到检测出要求为该进程提供操作系统服务的某些非同步事件为止。后一种情况的例子如报警时钟计时器计时时间到期。这时,在从处理机25上的进程暂停执行。对能引起操作系统工作的指令的执行并不在从处理机25上完成。进程被转移到主处理机12上。在主处理机12上执行被转移的进程是从中断了的指令处恢复的。举例说,中断了的指令的执行或是在主处理机12上重新开始,或是在主处理机12上完成部分执行了的指令的执行。除非产生想要进入特许操作方式的情况是一瞬间故障,否则在主处理机12上执行该指令将会导致操作系统工作。操作系统然后在主处理机12上以普通单处理机的方式工作。举例说,被转移的进程这时继续在主处理机12上执行。
为了能进行上述进程从从处理机25至主处理机12的转移而无需大幅度改变操作系统功能,或可使进程可在从处理机25上进行那种可导致调用进程被转移到主处理机12上的调用,一切想在本例所示系统从处理机25上进入特许操作方式的意图均或令其满足一预定条件,该条件再导致一对所有这种意图通用的处理程序的调用,或将其引向某一公用处理程序。然后由所引用的处理程序进行上述进程转移。处理程序是在从处理机25上直接通过硬件或通过执行微指令序列自动调用。
自动调用基本上如图4所示那样进行的。在从处理机25上执行一进程之前,在步骤450给存储在进程程序控制块200的执行堆栈上下限217、218一不正确的值。这一下确保在步骤452试图通过GATE调用或正常异常状态的出现而进入特许执行操作方式的过程中在步骤453所进行的堆栈上下限检查时在步骤454发现不合格。由于检查不合格因而在步骤455时调用了堆栈异常处理进程。此外,在系统初始准备阶段,为从处理机25在其专用存储器101中建立了中断和异常进程控制程序块,且其中供处理可能在从处理机25上出现的中断或非正常异常状态用的值在步骤456中更改为在本应用中为堆栈异常处理进程的复制品的错误处理进程的值(使用专用在板(on    board)存储器的另一方法为每一个处理机复制一个虚拟-物理对照表,并更换其中相应的入口,以便给各处理机提供在一定范围内的虚拟地址的不同的、独占的虚拟-物理对照)。在步骤457当从处理机25上出现中断或非正常异常状态时,这些值会在步骤458引起对处理程序进程的调用。从处理机25的堆栈异常和错误处理程序进程是一些在步骤459将在调用处理程序进程时在从处理机25上执行的用户进程的堆栈上下限恢复到正确值并在步骤460将该用户执行进程从从处理机25转移到主处理机12的通信进程(如果堆栈上下限的检查在步骤454为合格,则从处理机25就会在步骤461进入特许执行操作方式,程序的执行也会在步骤462继续在该操作方式下进行下去,如用在主处理机12上所进行的那样。同样,如果在步骤456没有更改各矢量,则在步骤458就已会调用普通的处理程序,而该处理程序就会在步骤463对中断或当时的情况进行处理,如用在主处理机12上所进行的那样)。
现在回过头来研究图1的系统,图4中示出了对图1单处理机系统的初始化所进行的修改。
作为所有系统硬件主初始化的一部分,主处理机12执行从初始化程序,其流程如图5所示。当在步骤400进入对该程序的执行之后,主处理机12就对系统进行检查,看其是一个单处理机系统还是一个多处理机系统,即在步骤401检查处理机25是否出现在图1的系统中。处理机12通过观测普通固件器件表的内容作出判定。举例说,由于从处理机25的板标识符完全与主处理机12的相同,且主处理机12的板地址是固定的,因而对从处理机25进行的查找是通过扫描所装备的器件表来寻找安置在该固定地址以外的地址的处理机插件。
若在步骤401没有发现从处理机25,则处理机12将存储器13中的一个UTILIZE变量置零,表明系统中没有从处理机25,然后回到主初始化程序,在步骤405按普通单处理机方式完成系统的初始化。
若在步骤401发现系统装备有从处理机25,则初始化的下一步是在步骤402建立能在处理机12和25出现的供异常和错误状态用的独立的进程控制块。这样做是必要的,因为如果进程控制块为处理机12和25所共用,则主处理机12可能就会执行进程控制块以外的进程,并使从处理机25同样开始试图执行同一个进程控制块以外的进程,从而导致寄存器和堆栈变得不可靠。因此通过在主存储器13中改变进程控制块指示字值以使其指向位于处理机12和25的专用存储器101地址范围内的进程控制块而为堆栈异常和系统错误异常建立各自的进程控制块,从而给主处理机和从处理机的进程控制块提供公用的但在实际位置和实际值上不同的虚拟地址和物理地址。主处理机12和从处理机25都使用这些新变换过的进程控制块指示字,因而必须为处理机12和25对存有进程控制块的专用存储器107进行初始化处理。
接着,在步骤402在主处理机12的专用存储器101中对新安置的进程控制块进行初始化。虽然仅仅是进程控制块中的5个字段需要进行初始化(初始程序计数器、初始程序状态字、初始堆栈指示字、堆栈下限和堆栈上限),但为简化代码,初始化是通过复制“原始的”进程控制块的整个内容进行的。
到目前为止,对专用存储器的全部修改是在主处理机12的专用存储器101上进行的,而且要给从处理机的专用存储器复制全部修改内容。这个复制是将dpccram_t数据结构(此数据结构含有全部单位处理机的数据元素,且这时存于主处理机12的专用存储器101中)复制到从处理机25的专用存储器101上,然后在步骤402中改变其中具体与从处理机有关的变量。并不是所有结构元素都需要改变,只有那些属于会在从处理机25上出现的中断和异常状态的结构元素才需要改变。
这时,从处理机25还未启动。要真正启动从处理机25,首先需要在步骤403为从处理机25的初始进程(见图6)准备好控制块。这包括将从处理机初始的进程控制块的物理地址放入从处理机中断堆栈的第一个入口中,并将初始程序计数器调节到从属程序的实际地址,以便能够通过普通的ENBVJMP指令(见图6的步骤503)进行虚拟编址;设定初始程序状态字、初始虚拟堆栈指示字和初始虚拟堆栈上下限,并将寄存器rO的初始值调到从属虚拟器操作方式起动程序的虚拟地址(见图6的步骤504)。
在步骤403也要制备从属设备的存储器管理信息。鉴于核心变换可通用于所有的处理机,因而MMU寄存器内容通用于所有操作系统的核心部分。但访问从处理机25上的MMU是不可能从主处理机12上进行的(反之亦然),因此MMU变换寄存器内容的实际初始化应由从处理机25进行。完成这项工作的一个方法是利用微处理机的块移动能力。这包括在初始从进程控制块的一系列块移动区内进行初始化,使得进行从一个进程转换到从处理机的初始进程控制块时,MMU变换寄存器会自动作为微处理机XSWTICH_THREE()宏-ROM程序的一部分初始化(见WE32100微处理机资料手册)。
从属初始进程控制块一经建立,就在步骤403对与从属后援有关的各种控制参数进行初始化。最后,在步骤404将从属实际起动程序的物理地址(见图6的步骤501和502)置入由从属固件所轮询的从处理机25的专用存储器101中的一个存储单元中,以便给从处理机25发送信号使其开始执行从属实际起动程序。接着,处理机12返回到主初始化程序,以便在步骤405按普通单处理机的方式完成系统的初始化。
主处理机12和从处理机25的固件完全一样。提高功率时,固件就核实处理机是主处理机还是从处理机。举例说,此核实过程是通过检查处理机所连接的总线11的槽口的地址进行的。若处理机是个主处理机,则开始在预定的存储器地址按普通的方式执行任务。若处理机是个从处理机,则在初始化之后开始对预定位置进行轮询。
图6是从处理机25执行初始从属处理的流程图。一旦从处理机25的固件在步骤500轮询上述地址对发现该位置已调到非零值,控制就被转移到用该值表示的物理地址上。于是就开始执行从处理机25的实际起动程序。这是在从处理机25上应予执行的第一个代码。此代码的用途是完成从处理机25的硬件初始化。
第一步是在步骤501冲洗从处理机25的指令高速缓冲存储器,因为其内容是不能预测的。这一步一经通过普通的CFLUSH指令完成,就在步骤502对从处理机的中断堆栈指示字寄存器进行初始化,以指向中断堆栈中的第二个字(中断堆栈中的第一个字系初始化后所得的从处理机的初始进程控制块的物理地址)。此外,在步骤502还用普通的RETPS指令进行某一进程到从处理机初始进程控制块的转换作为该进程转换的一部分,从处理机的进程控制块指示字寄存器是置于从处理机初始进程控制块的中间部分的物理地址,初始程序计数器置于代码的物理地址,以便能够进行虚拟方式编址,寄存器rO被置于使其包含从处理机虚拟方式启动程序的虚拟地址(步骤504),从处理机的MMU转换寄存器置于与主处理机的MMU转换寄存器同样的值(从而表示普通的主/从转换),其它初始寄存器值则为从处理机25所设立,这是由图5的初始化程序制备的。
这时在步骤503在从处理机25继续执行enbvjmp代码它将进程控制块指示字寄存器复位到从处理机初始进程控制块中间部分的虚拟地址,并执行普通能对从处理机25进行虚拟编址的ENBVJMP指令并将其转移到包含在寄存器rO的虚拟地址中。
步骤504体现了从属虚拟方式的起动程序。该程序负责从处理机25的最终初始化和将同步化信息传回主处理机12以表明初始化过程已完成。该最终初始化包括从处理机25硬件初始化,以将可存于高速缓冲存储器的位码存入从MMU结构的寄存器中,冲洗和启动与从处理机25有关的系统高速缓冲存储器,中止所有的从处理机25的硬件计时器(它们从来没有被启动过,因为从计时器的中断不需用软件后援),通过标准mauinit()程序进行标准从处理机25的MAU初始化,对中断控制器进行初始化,并启动从处理机25的中断(初始从程序状态字的所有中断状态都处于屏蔽状态,因而虽然硬件线路启动中断状态,但这时它们仍处于屏蔽状态)。
从处理机25的硬件一经初始化,驻留在从处理机25的专用存储器101中的进程控制块也在步骤504也由与这些进程控制有关的从处理程序初始化。它包括重新定义从属堆栈异常处理程序和从系统错误异常处理程序的初始值和堆栈上下限,因为这些异常状态的处理对从处理机25来说是不同于对主处理机12进行的普通处理。
最后,在步骤505将信息传送到主处理机12中。信息表明从处理机已处于初始化状态,从处理机25的程序状态字中断级被置0,以便对处理机25上所产生的中断进行中断处理。
图7是作为主处理机12的时钟中断处理程序的一部分加以调用的从属时钟程序的流程图。
虽然从处理机25的硬件按主处理机12完全相同的方式支持计时器中断,但在本示意实施例中没有必要对从属设备上的计时器中断在软件上加以支持。相反,任何时候只要在主处理机上发生计时器中断,就得检查UTILIZE标志,若有该标志(表示有从处理机25存在),则在步骤600调用图7的程序。该程序履行三个基本功能:在步骤601中断从处理机25;在步骤602确定现时在主处理机12上执行的进程是否适宜在从处理机25上执行;若不合适,则在步骤603确定是否需要进行由于现时在主处理机12上执行的进程的时间段到时的进程转换。
在步骤602上所作的值得在从处理机25上执行的判定是基于从处理机25上能否执行某一进程而定。只有当一个进程是在时钟中断时处于用户执行方式,并且只有当该进程在当时没有由剖面法进行过处理(profiled),即为达到收集信息目的而按通常方式由系统监视时,才能在该从处理机25上执行该进程。若在步骤602时认为某一进程可以在从处理机25上执行,则在步骤604将处理机P标志字段中的SONSLAVE位置位表明这种情况,且在步骤605中设标准运行标志(runrun    flag)。前者向从属加法程序(见图8)提出将进程转移到从处理机25的要求,后者向普通的pswtch()程序提出在步骤606在时钟中断处理程序返回到受中断的程序之前进行进程转换。
时间的分片是在步骤603进行的,方法是通过将随每一个时钟滴答声而增加计数的计数器与各进程相关联来,而且一旦发现计时器值超出系统阈值时,就在步骤605通过运行标志提出进程转换的请求。举例说,只有在系统中具有被封锁的可运行的进程才提出进程转换请求。举例说,在每次进程转换时令计数器复位。
图8是从属加法程序的流程图,该程序是在主处理机12上执行的,且可通过两处理机中任一处理机的中断处理程序在步骤700加以调用,以便将现时在主处理机12上执行的进程加到从处理机25的运行队列中。从属加法程序与主处理机12运行队列的标准setrg()程序类似。实际上,setrg()程序中有一个检查程序,它检查该进程应否转移到从处理机25的运行队列中(在P标志字段上的SONSLAVE标志)。如果是的,则调用从属加法程序以履行该转移。将某一进程转移到从处理机25的运行队列关系到在步骤701存储现时执行进程MAU状态(相当于标准mau_save()程序),和实际上在回到步骤703之前在步骤702中将进程加到从处理机25运行队列上。若从处理机25处于空闲状态,则可将其中断以确保新加入的进程能立即执行。
图9是在从处理机25上执行的从处理机系统中断处理程序(或简称从属中断程序)的流程图。在此实例中,需要中断从处理机25的原因只有两个:或是由于主处理机12上发生时钟中断,或是当从处理机25空闲时将进程从主处理机12转移到从处理机25的运行队列上。
这两种中断状态是可以区别的,方法是在步骤801检查主处理机12的普通时间计数器1bolt是否从上一次调用从属中断程序以来改变过了。若已经改变,则自上一次中断起已经过一段时间,而这次中断是由这个时间的消逝引起的;若没有发生变化,则这次中断是当从处理机25空闲时往从处理机25运行队列加入一进程所致。
若中断不是由于时间期满所致,则应采取的第一个行动是在步骤802检查标志参数,看主处理机12是否试图对存储器进行回收。若是,则暂停从处理机25上执行的进程,直到回收过程完成为止。这样做是必要的,因为这里存在着一旦回收处理修改了驻留在从处理机25MMU描述符指示字高速缓冲存储器的页面指示字就会潜在恶化问题。目前还没有给从处理机25通知有关描述符变化情况的方法。因此从处理机25会使用过时的变换信息。一旦完成回收过程,现时在从处理机25上执行的进程的堆栈上下限217和218就在步骤803中恢复到正确值(见图15的步骤1302),同时在步骤804通过调用从属进程转移程序(见图11)将进程转移强加于从处理机25上。从属进程转移程序确保MMU变换寄存器存有新内容,这样也具有冲洗潜在恶化的MMU高速缓冲存储器描述符入口的益处。
若在步骤801测定出中断是由于时间已到引起的,则在步骤805就调节现行过程与时间有关的信息。计算出从上一次调用从属中断程序起所经过的时间,并存储现时的1bolt值。若从处理机25空闲,即从处理机25在调用从属中断程序时不在执行某一进程,则所经过的时间按与主处理机12的空闲时间同样的方式的系统空闲时间计算(即sysinfo.cpu[CPU_IDLE]增加一个经过时间值)。否则,与一正在执行的进程有关的计时器和计时累加器就增加一个大小等于该经过时间的值。
下一步是在步骤806进行象步骤802那样的检查,以确定主处理机12是否试图对存储器进行回收。若然,则暂停从处理机25上,执行的进程,直到回收过程完成为止。这时就在步骤807检查现时执行的进程在从处理机25上执行时是否有异步信号加到其上。若然,则在步骤808将进程送回到主处理机12,并通过调用从属删除程序(见图15)在从处理机25上进行进程转换。
若步骤807测定的结果表明不存在有待现时执行进程加以解决的异步信号,则在步骤809检查时间累加器为进程刚完成的增值是否会导致产生大于系统时间片允许值的P_时间片计数器值。若然,则在步骤810将现时执行进程的上下文信息存储在该进程的进程控制块中,在步骤811将进程的堆栈上下限217、218恢复到正确值(见图15的步骤1302),在步骤812调用图8的从属加法程序,以便将现时执行中的进程连回从处理机25运行队列中,然后在步骤813通过调用图11的从属进程转换程序将进程转换强加到从处理机25上。
若步骤806测定的结果表明主处理机12并非在回收,若步骤807测定的结果表明不存在有待现行进程加以解决的信号,且若步骤809测定的结果表明现行进程执行的时间没有超过其时间段,则在步骤814在中断时将控制直接转回当时正在从处理机25上执行的进程上。
图11是在从处理机25上执行的从属进程转换程序的流程图。该程序负责选择下一个在从处理机25上执行的进程,并为新进程对从处理机25进行初始化。它相当于主处理机12的标准pswtch()程序。
紧接着在步骤900的程序调用之后是在步骤901检查在从处理机25运行队列上是否有任何进程。若无,则在步骤902通过调用从属空闲程序(见图17)使从处理机25装入空闲状态。若在从处理机25运行队列上有进程,则在步骤903选择下一个待执行的进程。举例说,选择可采用pswtch()程序中所履行的进程选择算法。
一经选定待执行的进程,则在步骤904核定确保主处理机12没有进行任何回收(见上面的论述)。一旦测定出没有进行任何回收,则在步骤905将待执行进程的堆栈上限218的实际值存储在一变量中,并在步骤906将该新进程的有效堆栈上限值置于可能的最低堆栈地址中(在本实例中为0)。对在从处理机25上执行的进程将堆栈上限值置于0,以确保从用户进程不会通过正常异常或GATE进入特许方式中。相反,无论什么时间需要进行特许方式处理,就会产生堆栈异常,使从处理机25的堆栈异常处理程序(见图12)处于受控状态。改变堆栈上下限之后,就在步骤907为新进程提供从处理机25的上下文,办法是将信息装入MMU变换寄存器和MAU寄存器(必要时)中,清除MMU的故障指示,并将进程的时间片计数器(P_时间片)复位。然后在步骤908将执行转移到新进程上。
图12是从属堆栈异常处理程序处理过程的流程图。假设最小特许方式处理是在从处理机25上进行的(就用户进程而言,从处理机25上是不进行特许方式处理的),从属异常处理程序的作用为将现时执行的用户进程转移到主处理机12上。这是在步骤1002通过调用从属删除程序(见图15)进行的。举例说,在本实例中,由于故障指令的地址因堆栈异常处理而已存入进程控制块中,因而一旦进程在主处理机12上重新开始执行,故障指令就再次得到执行。这是在具有请求分页的存储器管理系统中一个相当典型的特征。这导致在从处理机25上引起任何形式的原故障动作的重复,从而无需从属堆栈异常处理程序来保存潜在故障指示字,也无需主异常处理程序来查找所存储的潜在故障指示字。
但并不是所有指令都可在此例示的实施例中安全地再次执行。例如,如果在发生异常情况之前曾对部分目的操作数进行过更新,则某些具有破坏性操作数重叠的多字MAU指令可能不会再行起动,从而破坏源操作数。因此在主处理机12上重新起动该进程时,应实行某一指令的重新起动程序以避免重新起动问题(见图14)。步骤1001即为执行该程序的一个实例,方法是从进程控制块中除去故障指令的地址而代之以指令再起动程序的起动地址,并将所除去的故障指令的地址存储在一变量中。当完成指令再起动程序时,它重新将故障指令地址存储在进程控制块中。
虽然比正常异常经常出现的机会少,但在执行用户方式进程时,另一种异常状态-系统错误还是有可能发生的。这个范畴包括校准错误和由从处理机25执行的动作时所遇到的硬件问题。在这些情况下,就要在步骤1100调用其流程图在图13中表示出来的从属系统错误处理程序进程。该进程的执行情况完成与图12的从属堆栈处理程序进程一样。在步骤1101建立用户处理进程PCB,使在主处理机12上的执行指令再起动程序开始执行,然后在步骤1102通过实行从属删除程序将该进程转移到主处理机12上。
图14是指令再起动程序的流程图。此程序是每当一进程由于异常状态或中断状态的出现而从从处理机25被转移而开始在主处理机12上执行时而在步骤1200时在主处理机12上进行的。该程序在步骤1201检查故障指令是否为一个不可再起动的指令(例如一个具有破坏性操作数重叠的MAU指令)。若是,则在步骤1202纠正再起动问题。该程序利用现有程序按与标准主堆栈异常处理程序处理MAU再起动问题的同样方式处理再起动性问题。接着指令再起动程序在步骤1203在故障进程的进程控制块中恢复用户进程的故障指令的地址,从而构成故障指令的执行,并回到步骤1204以执行该指令。
图15是从属删除程序的流程图。此程序是当需要将现时正在从处理机25上执行的进程转移到主处理机12的运行队列时在从处理机25上调用的。前面已经谈过,这种情况可以或是由已写入现时执行的进程的非同步信号引起的(见图9的步骤808)或是由于现时执行中的从属进程需要特许方式处理引起的(见图12的步骤1002和图13的步骤1102)。在该两种情况的任一种情况下,执行的方式是相同的:保留进程的现状,将现进程加到主处理机12的运行队列上,然后选择在从处理机25执行的新进程。
本进程状态的保留基本上是在调用从属删除程序前完成的:所有导致从属删除程序的调用的途径将导致现时正执行的从属进程所需与CPU有关的寄存器存入进程控制块中。但进程控制块只定义一进程的硬件上下文,但并不定义进程的软件所保留的信息,例如MAU寄存器的内容等。因此应在步骤1301中将由软件定义的状态存储在进程PCB中。此外还应将SONSLAVE标志在P_标志字段中复位。这一下就只剩下需要在步骤1302中将堆栈上限218的实际值复原。
这一步完成后,就在步骤1303调用标准setrg()程序将进程加到主处理机12运行队列中,并在步骤1304通过引用图11的从属进程转换程序选择在从处理机25上执行的新进程。
图16是从属进程周期挪用程序的流程图,该程序是在启动pswtch()程序后在主处理机12上调用的。pswtch()程序在步骤1400调用从属进程周期挪用程序,以便在步骤1401避免出现主处理机12运行队列空置并且主处理机12空闲的情况,而在步骤1402则在从处理机25的运行队列上存在着用户方式进程的积压。该程序仅仅是在步骤1403遵循图11的从属进程转移程序的进程选择算法从从处理机25的运行队列上除去一进程,并在步骤1403将进程移到主处理机12的运行队列中。紧接步骤1403之后,或者若在步骤1401发现主处理机12的运行队列不空置时,程序就在步骤1404返回到pswtch()程序上,以便从主处理机12的运行队列选择在主处理机12上执行的进程。若在步骤1401发现主处理机12运行队列处于空置状态,且在步骤1402也发现从处理机25处于空置状态,则程序就在步骤1405通过执行标准WAIT指令使主处理机12空闲。然后主处理机12就等待着中断状态的出现。
图17是从属空闲程序的流程图,该程序是在步骤1500当在从处理机25上没有可予以执行的进程时在从处理机25上实行的。此程序在步骤1501使从处理机25中断堆栈指示字复位,在步骤1502将程序状态字中的中断优先级降低到最低级(通过在引用从属堆栈异常处理程序之前操作硬件提高优先级)以允许所有中断,并在步骤1503执行WAIT指令。一有中断发生时,则由图9的从属中断程序恢复在从处理机25的执行。
当然,不言而喻,熟悉本技术领域的人士都清楚,对上述例示的实施例是可以进行各种改变和修改的。例如可以将AT&T3B2型单处理机计算机和其它单处理机计算机按类似方式扩充成多处理机配置方式。此外还可以与给系统加入一个从处理机的方式给系统加入多个从处理机。再者,各从处理机不一定非要彼此完全相同或与主处理机相同不可,它们各个是可以基于不同微处理机的体系结构的。这类改变和修改可以在不脱离本发明精神实质和不减少本发明由此而具有的优点的前提下进行。因此我们的意图是,所有这类改变和修改都包括在下列权利要求范围内。

Claims (25)

1、一操作多处理机系统的方法,其特征在于,该方法包括:
确保某一预定条件的存在;
试图在系统的第一处理机执行一进程时执行一第一类型功能,其中第一类型功能,是不在第一处理机上执行的;
在试图那样做时,检查所述条件是否存在;
通过根据所述条件的存在执行所调用的用以处理所述条件的功能,将需执行的所述进程转移到系统的第二处理机上。
2、根据权利要求1的方法,其特征在于,所述转移步骤包括下列步骤:
根据所述条件的存在,促使执行处理所述条件的功能;
通过执行所述处理功能以转移需执行的进程到系统的第二处理机上。
3、根据权利要求1的方法,其特征在于,所述试图步骤包括以下步骤:
启动将执行往操作系统功能的转移。
4、根据权利要求1的方法,其特征在于,所述试图步骤包括以下步骤:
试图进入特许执行方式。
5、根据权利要求1的方法,其特征在于,所述检查步骤包括以下步骤:
用其中一个硬件和固件检查所述条件的存在。
6、根据权利要求1的方法,其特征在于,所述确保步骤包括以下步骤:
往在第一处理机上执行的进程中插加一个故障;其中所述检查步骤包括以下步骤:
检查所述故障的存在。
7、根据权利要求1的方法,其特征在于,所述确保步骤包括以下步骤:
变差在第一处理机上执行的进程的执行堆栈上下限,以确保堆栈上下限异常的存在;其中所述检查步骤包括以下步骤:
检查堆栈上下限异常。
8、根据权利要求1的方法,其特征在于,所述方法还包括以下步骤:
根据所述条件的存在停止在第一处理机上执行所述进程;
开始在第二处理机上执行所述进程;
在第二处理机上执行第一类型功能。
9、一操作多处理机系统的方法,其特征在于,该方法包括以下步骤:
确保在系统的从处理机上存在堆栈上下限异常;
试图在从处理机执行用户执行方式进程时进入特许执行方式;
在试图那样做的过程中检查是否存在堆栈上下限异常;
在检查过程中发现所述堆栈上下限异常;
根据所发现的异常请求一处理所述异常的进程的执行;
通过执行处理程序进程将所述进程从系统的从处理机转移到主处理机上;
基本上在从处理机停止执行进程的同时开始在主处理机上执行被转移的进程。
10、根据权利要求9所述的方法,其特征在于,该方法还包括以下步骤:
在主处理机上执行所述进程时试图进入特许执行方式;
在试图那样做的过程中检查有否堆栈上下限异常存在;
根据在检查过程中不遇到堆栈上下限异常的情况在主处理机上的进入特许执行方式。
11、根据权利要求9的方法,其特征在于,所述确保所述条件存在的步骤包括以下步骤:
在从处理机上执行用户方式进程之前使用户方式进程的执行堆栈上下限变差;其中所述检查步骤包括以下步骤:
将堆栈指示字对照处理过程的堆栈上下限进行检查;所述方法还包括以下步骤:
在主处理机上执行被转移的进程前恢复进程的堆栈上下限。
12、一操作多处理机系统的方法,其特征在于,该方法包括以下步骤:
在系统的从处理机上执行进程之前使用户执行方式进程的执行堆栈上下限值变差;
在从处理机上执行用户方式进程的指令过程中试图将进程执行等级从用户方式改变成特许方式;
进行用户进程的执行堆栈指示字值对照用户方式的执行堆栈上下限值的固件和硬件检查;
在检查过程中发现堆栈上下限异常;
根据上述发现的情况在指令处停止执行用户方式进程;
根据上述发现的情况在从处理机上请求堆栈异常处理程序进程的执行;
通过执行处理进程将用户方式进程的堆栈上下限恢复到有效值;
通过执行处理进程将需执行的用户方式进程从从处理机转移到系统的主处理机上;
在所述指令处开始在主处理机上执行用户进程;
在主处理机上进入特许执行方式。
13、根据权利要求12的方法,其特征在于,其中所述进入特许执行方式的步骤包括以下步骤:
在主处理机上执行用户进程指令时试图将进程的执行等级从用户方式改变成特许方式;
进行用户进程的堆栈指示字对照用户进程堆栈上下限固件和硬件的检查;然后
根据在检查过程中没有遇到堆栈上下限异外情况在主处理机上进入特许执行方式。
14、一多处理机系统,其特征在于,该系统包括:
一第一处理机和一第二处理机;
确保某一预定情况存在的确保装置;
用于根据在第一处理机中执行一进程时试图执行第一类型功能的企图检查预定条件是否存在(其中各所述第一类功能并不准备在第一处理机上执行)并用于根据所述条件的存在促使处理该条件用的功能的执行的检查促使装置。
与检查促使装置配合工作的用于通过执行处理功能将所述进程转移到第二处理机上执行的转移装置。
15、根据权利要求14的系统,其特征在于,所检查促使装置包括:
检查装置,用于根据在执行一进程时试图使执行转移到操作系统功能的企图检查是否存在所述预定条件。
16、根据权利要求14的系统,其特征在于,所述检查促使装置包括:
检查装置,用于根据在执行一进程中试图进入特许执行方式的企图检查是否存在所述预定条件。
17、根据权利要求14的系统,其特征在于,所述检查促使装置包括:
一个硬件和固件装置,用于检查是否存在所述预定条件。
18、根据权利要求14的系统,其特征在于,所述确保装置包括将一故障插入在第一处理机上执行的进程的装置,其中所述检查促使装置包括供检查是否存在故障的装置。
19、根据权利要求14的系统,其特征在于,所述确保装置包括:使在第一处理机上执行的进程的执行堆栈上下限变差以确保在一堆栈上下限异常的装置;其中所述检查促使装置包括用以检查堆栈上下限异常的装置。
20、根据权利要求14的系统,其特征在于,所述第二处理机包括:
用于根据在第二处理机上开始执行的所述进程而执行第一类型功能的装置。
21、一多处理机系统,其特征在于,该系统包括:
一从处理机和一主处理机;所述从处理机包括:
用于确保堆栈上下限异常的存在的装置;
用于根据在执行一用户执行方式进程时试图进入特许执行方式的企图检查是否存在某一堆栈上下限异常,并根据检测堆栈上下限异常存在时请求执行处理该异常的进程的检查请求装置;和
与检查请求装置配合工作并用于通过执行所述处理进程将用户方式进程从从处理机转移到主处理机的转移装置;主处理机则包括:
用于基本上是执行进程在从处理机上停下来的同时开始执行所转移的进程执行装置。
22、根据权利要求21的系统,其特征在于,所述第二处理机还包括:
与执行装置配合工作并用于以根据在执行所述进程时试图进入特许执行方式的企图检查是否存在堆栈上下限异常和根据在检查过程中没有遇到堆栈上下限异常的情况进入特许执行方式的检查促使装置。
23、根据权利要求21的系统,其特征在于,所述确保异常存在的装置包括:
用于在从处理机上执行用户方式进程之前使用户方式进程的执行堆栈上下限变差的变差装置;其中所述检查请求装置包括:
用于对照进程堆栈上下限值检查堆栈指示字的检查装置;其中所述系统还包括:
用于在主处理机上执行转移的用户方式进程之前恢复用户方式进程的堆栈上下限值的恢复装置。
24、一多处理机系统,其特征在于,该系统包括:
一从处理机和一主处理机;
所述从处理机包括:
用于在从处理机执行所述进程之前使用户执行方式进程的执行堆栈上下限值变差的变差装置;
一个硬件和固件装置,用于根据在执行用户方式进程的一个指令时试图在从处理机上进入特许执行方式的企图对照所述进程的堆栈上下限值检查执行堆栈指示字的值并根据在检查过程中遇到堆栈上下限异常在指令处停止执行用户方式的进程并请求执行堆栈异常处理程序进程;和
与所述硬件和固件装置配合工作用于执行处理程序进程,从而将用户方式进程的堆栈上下限恢复到有效值并将用户方式进程从从处理机转移到主处理机执行的执行装置;且
主处理机包括:
用于通过在主处理机上进入特许执行方式启动对所转移进程的执行的启动装置。
25、根据权利要求24的系统,其特征在于,所述启动装置包括:
用于在指令处启动所转移的进程的执行的启动装置;和
一个硬件和固件装置,用于根据在执行所述指令时试图在主处理机上进入特许执行方式的企图对照所述进程的堆栈上下限值检查执行堆栈指示字的值并根据在检查过程中没遇到堆栈上下限异常的情况促使进入特许方式。
CN88100704A 1987-02-06 1988-02-05 多重处理的方法和设备 Expired CN1010991B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US012,089 1987-02-06
US07/012,085 US5109329A (en) 1987-02-06 1987-02-06 Multiprocessing method and arrangement
US012,085 1987-02-06

Publications (2)

Publication Number Publication Date
CN88100704A true CN88100704A (zh) 1988-08-24
CN1010991B CN1010991B (zh) 1990-12-26

Family

ID=21753327

Family Applications (2)

Application Number Title Priority Date Filing Date
CN88100705A Expired CN1011357B (zh) 1987-02-06 1988-02-05 多重处理的方法和设备
CN88100704A Expired CN1010991B (zh) 1987-02-06 1988-02-05 多重处理的方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN88100705A Expired CN1011357B (zh) 1987-02-06 1988-02-05 多重处理的方法和设备

Country Status (7)

Country Link
US (1) US5109329A (zh)
EP (1) EP0354899B1 (zh)
JP (1) JPH02502764A (zh)
CN (2) CN1011357B (zh)
CA (1) CA1302577C (zh)
DE (1) DE3784521T2 (zh)
WO (1) WO1988005943A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380329C (zh) * 2005-01-28 2008-04-09 精工爱普生株式会社 处理器及信息处理方法

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0384635B1 (en) * 1989-02-24 1997-08-13 AT&T Corp. Adaptive job scheduling for multiprocessing systems
EP0534597B1 (en) * 1991-09-23 2000-04-26 Intel Corporation Computer system having software interrupt (INTN) instructions selectively operating in a virtual mode
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5490279A (en) * 1993-05-21 1996-02-06 Intel Corporation Method and apparatus for operating a single CPU computer system as a multiprocessor system
DE69535409T2 (de) * 1994-06-29 2007-11-08 Intel Corp., Santa Clara Prozessor, das das systembusrecht in einem erweiterbaren multiprozessor-rechnersystem anzeigt
US5555374A (en) * 1994-08-26 1996-09-10 Systech Computer Corporation System and method for coupling a plurality of peripheral devices to a host computer through a host computer parallel port
JP3672634B2 (ja) 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
JPH0888668A (ja) * 1994-09-20 1996-04-02 Nippondenso Co Ltd 通信装置
US5550973A (en) * 1995-03-15 1996-08-27 International Business Machines Corporation System and method for failure recovery in a shared resource system having a moving write lock
US6016531A (en) * 1995-05-26 2000-01-18 International Business Machines Corporation Apparatus for performing real time caching utilizing an execution quantization timer and an interrupt controller
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5790846A (en) * 1996-04-18 1998-08-04 International Business Machines Corporation Interrupt vectoring for instruction address breakpoint facility in computer systems
US5963737A (en) * 1996-04-18 1999-10-05 International Business Machines Corporation Interupt vectoring for trace exception facility in computer systems
US5758168A (en) * 1996-04-18 1998-05-26 International Business Machines Corporation Interrupt vectoring for optionally architected facilities in computer systems
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
US7634529B2 (en) 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US6725250B1 (en) 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US7926097B2 (en) 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US20050180095A1 (en) * 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US7805756B2 (en) 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US6732141B2 (en) 1996-11-29 2004-05-04 Frampton Erroll Ellis Commercial distributed processing by personal computers over the internet
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US8312529B2 (en) 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
US6167428A (en) * 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US7035906B1 (en) 1996-11-29 2006-04-25 Ellis Iii Frampton E Global network computers
US7024449B1 (en) 1996-11-29 2006-04-04 Ellis Iii Frampton E Global network computers
JP3247330B2 (ja) * 1997-12-25 2002-01-15 株式会社神戸製鋼所 複数プロセッサシステム
WO2000070448A2 (en) * 1999-05-17 2000-11-23 Ellis Frampton E Iii Multiprocessor with optical connection to a network
US6516410B1 (en) * 2000-02-17 2003-02-04 Compaq Information Technologies Group, L.P. Method and apparatus for manipulation of MMX registers for use during computer boot-up procedures
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
GB2397668B (en) * 2003-01-27 2005-12-07 Picochip Designs Ltd Processor array
US7375035B2 (en) * 2003-04-29 2008-05-20 Ronal Systems Corporation Host and ancillary tool interface methodology for distributed processing
US7155726B2 (en) * 2003-10-29 2006-12-26 Qualcomm Inc. System for dynamic registration of privileged mode hooks in a device
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7996659B2 (en) * 2005-06-06 2011-08-09 Atmel Corporation Microprocessor instruction that allows system routine calls and returns from all contexts
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US8397043B2 (en) 2007-12-17 2013-03-12 Freescale Semiconductor, Inc. Memory mapping system, request controller, multi-processing arrangement, central interrupt request controller, apparatus, method for controlling memory access and computer program product
US7802042B2 (en) * 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US9239801B2 (en) * 2013-06-05 2016-01-19 Intel Corporation Systems and methods for preventing unauthorized stack pivoting
US9811467B2 (en) * 2014-02-03 2017-11-07 Cavium, Inc. Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor
US10802866B2 (en) * 2015-04-30 2020-10-13 Microchip Technology Incorporated Central processing unit with DSP engine and enhanced context switch capabilities
DE102016117495A1 (de) 2016-09-16 2018-03-22 Infineon Technologies Ag Datenverarbeitungseinrichtung und verfahren zum ausführen von computerprogrammcode
CN108563518A (zh) * 2018-04-08 2018-09-21 广州视源电子科技股份有限公司 主从机通信方法、装置、终端设备及存储介质
CN112783626B (zh) * 2021-01-21 2023-12-01 珠海亿智电子科技有限公司 中断处理方法、装置、电子设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors
US3812463A (en) * 1972-07-17 1974-05-21 Sperry Rand Corp Processor interrupt pointer
JPS5362945A (en) * 1976-11-17 1978-06-05 Toshiba Corp Disc address system
FR2490434B1 (fr) * 1980-09-12 1988-03-18 Quinquis Jean Paul Dispositif de resolution des conflits d'acces et d'allocation d'une liaison de type bus interconnectant un ensemble de processeurs non hierarchises
DE3105527A1 (de) * 1981-02-16 1982-09-09 Theodor Dr Tempelmeier Verfahren zur verbesserung des antwortzeitverhaltens von prozessrechnern
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
JPS58154058A (ja) * 1982-03-10 1983-09-13 Hitachi Ltd マルチプロセッサシステム
JPS5960676A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd マルチプロセツサ方式
US4703419A (en) * 1982-11-26 1987-10-27 Zenith Electronics Corporation Switchcover means and method for dual mode microprocessor system
US4729094A (en) * 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
US4591975A (en) * 1983-07-18 1986-05-27 Data General Corporation Data processing system having dual processors
US4598356A (en) * 1983-12-30 1986-07-01 International Business Machines Corporation Data processing system including a main processor and a co-processor and co-processor error handling logic

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380329C (zh) * 2005-01-28 2008-04-09 精工爱普生株式会社 处理器及信息处理方法

Also Published As

Publication number Publication date
EP0354899B1 (en) 1993-03-03
US5109329A (en) 1992-04-28
EP0354899A1 (en) 1990-02-21
JPH02502764A (ja) 1990-08-30
WO1988005943A1 (en) 1988-08-11
CA1302577C (en) 1992-06-02
CN1011357B (zh) 1991-01-23
DE3784521D1 (de) 1993-04-08
CN88100705A (zh) 1988-08-24
DE3784521T2 (de) 1993-09-16
CN1010991B (zh) 1990-12-26

Similar Documents

Publication Publication Date Title
CN1010991B (zh) 多重处理的方法和设备
US7363434B2 (en) Method, system, and computer-readable medium for updating memory devices in a multi-processor computer system
US5003466A (en) Multiprocessing method and arrangement
CN100573456C (zh) 一种并行多处理器虚拟机系统
CN1007938B (zh) 虚拟计算机系统的输入输出控制方式
US20090204959A1 (en) Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
US7454547B1 (en) Data exchange between a runtime environment and a computer firmware in a multi-processor computing system
JPH03201130A (ja) データ処理システム
JPH0430053B2 (zh)
WO2013100992A1 (en) Context-state management
CN1831777A (zh) 用于管理多个热插拔操作的系统和方法
CN1525353A (zh) 多处理器系统及其共享引导模块的方法
JP2023545818A (ja) チップ・システム、仮想割り込み処理方法および対応する装置
CN113806006A (zh) 一种异构指令集架构下异常或中断的处理方法、装置
US9779050B2 (en) Allocating virtual resources to root PCI bus
Satyanarayanan Special Feature: Commercial Multiprocessing Systems
CN1728097A (zh) 切换在系统复位异常时锁定页表项的锁定位组合的方法
EP4177743A1 (en) User-level interrupts in virtual machines
WO1981002477A1 (en) Data processing system
MacKinnon Advanced function extended with tightly-coupled multiprocessing
CN1332866A (zh) 运算标志寄存器的延迟重新分配
JPS6097440A (ja) 仮想多重プロセツサ装置
JPS62123552A (ja) 中央処理装置割当て方式
JPS5935055B2 (ja) デ−タ処理システム
TW482960B (en) Method for preventing process contradiction between each processors in a multi-processor computer

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C13 Decision
C14 Grant of patent or utility model
C19 Lapse of patent right due to non-payment of the annual fee