CN1011357B - 多重处理的方法和设备 - Google Patents
多重处理的方法和设备Info
- Publication number
- CN1011357B CN1011357B CN88100705A CN88100705A CN1011357B CN 1011357 B CN1011357 B CN 1011357B CN 88100705 A CN88100705 A CN 88100705A CN 88100705 A CN88100705 A CN 88100705A CN 1011357 B CN1011357 B CN 1011357B
- Authority
- CN
- China
- Prior art keywords
- processor
- indicator
- incident
- carrying
- functional device
- 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
Links
Images
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
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型微处理机、两个WE 32101型请求分页的存储器管理部件(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的普通时间计数器lbolt是否从上一次调用从属中断程序以来改变过了。若已经改变,则自上一次中断起已经过一段时间,而这次中断是由这个时间的消逝引起的;若没有发生变化,则这次中断是当从处理机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 (12)
1、一具有一第一处理机和一第二处理机的多处理机操作系统的操作方法,其特征在于,该方法包括下列步骤:
在第一处理机中执行一进程;
在第一处理机中执行该进程期间,检测在第一处理机上是否存有预定的多项事件中的任一事件;
观测与所发生事件有关的第一指示器,以确定根据该事件的发生应在第一处理机上予以执行的第一功能;
执行经由所观测的第一指示器鉴别的第一功能,将在第一处理机上执行的进程转移到第二处理机上继续执行;
在第二处理机中执行所述进程;
在第二处理机中执行该进程期间检测是否再发生上述事件;
检查与所发生事件有关的第二指示器,以确定根据该事件的出现应在第二处理机上予以执行的第二功能;和
执行由所检查的第二指示器鉴别的第二功能,以处理所发生的事件;
从而在第二处理机上处理在第一或第二处理机上发生的预定事件。
2、在一具有第一处理机和一第二处理机且其中执行方式根据所发生的多个事件的任一事件而在执行用户程序指令的用户方式和执行操作系统指令的特许方式之间变化的多处理机系统中,一操作方法的特征在于,该操作法包括以下步骤:
在第一处理机中执行一进程;
在执行所述进程时检测有否发生多个事件中的一个事件;
观测与所发生的事件有关的指示器,所观测的指示器为多个指示器中的一个指示器,各指示器与一个不同的事件有关,且各指示器用以鉴别有待在第一处理机上根据有关事件的发生的予以执行的功能,多个指示器都鉴别同一种功能;和
执行由所观测的指示器鉴别的功能,将所述进程转移到第二处理机上继续执行;
从而使在执行一进程时在第一处理机上改变执行方式的企图导致所述进程被转移到第二处理机上继续执行。
3、根据权利要求2所述的方法,其特征在于,执行方式的改变包括进入特许执行方式的入口;其中
检测步骤包括检测中断情况的步骤;其中
检查步骤包括检查与所发生的中断有关的中断矢量的方法,所检查的矢量为多个中断矢量中的一个,各中断矢量与一不同的中断有关,且各用以鉴别一中断处理程序;且其中
执行步骤包括以特许方式执行所鉴别的中断处理程序的步骤。
4、根据权利要求2所述的方法,其特征在于,该方法还包括以下步骤:
基本上在第一处理机上停止执行的同时开始在第二处理机上执行所转移的进程;
观测与所发生的事件有关的第二指示器,所观测的指示器为多个第二指示器中的一个,各个都与不同的一个事件有关,且各用以鉴别有待在第二处理机上根据有关事件的发生予以执行的第二功能;和
执行由所观测的第二指示器鉴别的第二功能以处理所发生的事件;
从而根据所述事件的发生改变在第二处理机上的执行方式。
5、根据权利要求4所述的方法,其特征在于,在观测第二指示器这步之前有以下的步骤:
在执行所转移的进程时检测是否再发生所述事件。
6、一多重处理系统,其特征在于,该系统包括:
一第一处理机和一第二处理机;
一第一功能装置,用于将在第一处理机上执行的进程转移到第二处理机上执行;
一第一指示器,用于鉴别有待根据多个预定事件中任一事件的发生在第一处理机上执行的一功能装置,第一指示器鉴别第一功能装置;
与第一指示器配合工作并对在第一处理机上多个事件中的某一事件的发生有所响应以用于执行由第一指示器鉴别的功能装置的执行装置;
一第二功能装置,用于处理一事件;
一第二指示器,用于鉴别有待根据某一事件的发生在第二处理机上执行的一功能装置,第二指示器鉴别第二功能装置;和
与第二指示器配合工作并对所转移的进程在第二处理机上的继续执行有所响应以用于执行由第二指示器鉴别的功能装置的执行装置;
从而在第二处理机上处理在第一或第二处理机上发生的预定事件。
7、根据权利要求6所述的系统,其特征在于,第一功能装置包括一种功能装置,用于在发生多个预定事件的任一事件时转移某一在第一处理机中执行的进程。
8、根据权利要求7所述的系统,其特征在于,用以执行由第二指示器鉴别的功能装置的装置根据在第二处理机中执行所转移的进程中再次发生的事件执行所述功能装置的。
9、在一多处理机系统中,该系统包括有一第一处理机和一第二处理机,以及用以根据多个事件中的任一事件的发生来在执行用户程序指令的用户方式和执行操作系统指令的特许方式之间变换的装置,其特征在于,改进内容包括:
用于将出现某一事件时在第一处理机上执行的进程转移到第二处理机上继续执行的功能装置;
多个指示器,各指示器都与不同的一个事件有关,且各指示器鉴别根据有关事件的发生有待在第一处理机上执行的功能装置,多个指示器都鉴别所述功能装置;和
与所述诸指示器配合工作且对在第一处理机上发生的事件有响应以用于执行由与所发生事件有关的指示器鉴别的功能装置的执行装置;
从而使执行一进程时改变第一处理机上执行方式的企图导致所述进程被转移到第二处理机上继续执行。
10、根据权利要求9所述的系统中改进,其特征在于,执行方式的改变包括进入特许执行方式的入口;其中多个事件包括中断事件;其中诸指示器包括中断矢量;且其中经诸指示器鉴别的功能装置包括可以特许方式执行的中断处理程序。
11、根据权利要求9所述的改进,其特征在于,所述改进还包括:
多个第二功能装置,各个用于处理某一事件;和
多个第二指示器,各指示器与不同的其中一个事件有关,且各个都用于鉴别根据有关事件的发生在第二处理机上执行的第二功能装置;和
与诸第二指示器配合工作且对所转移的进程在第二处理机上的开始执行有所响应以用于执行由与所发生的事件有关的第二指示器鉴别过的第二功能装置的执行装置;
从而根据所述事件的发生改变第二处理机上的执行方式。
12、根据权利要求11所述的改进,其特征在于,执行第二功能装置的装置在第二处理机上执行所转移的进程时对所述事件的重现有所响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
---|---|
CN88100705A CN88100705A (zh) | 1988-08-24 |
CN1011357B true CN1011357B (zh) | 1991-01-23 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN88100704A Expired CN1010991B (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) |
Families Citing this family (61)
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 |
US5758168A (en) * | 1996-04-18 | 1998-05-26 | International Business Machines Corporation | Interrupt vectoring for optionally architected facilities in computer systems |
US5963737A (en) * | 1996-04-18 | 1999-10-05 | International Business Machines Corporation | Interupt vectoring for trace exception facility in computer systems |
US5790846A (en) * | 1996-04-18 | 1998-08-04 | International Business Machines Corporation | Interrupt vectoring for instruction address breakpoint facility 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 |
US6725250B1 (en) * | 1996-11-29 | 2004-04-20 | Ellis, Iii Frampton E. | 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 |
US6167428A (en) * | 1996-11-29 | 2000-12-26 | Ellis; Frampton E. | Personal computer microprocessor firewalls for internet distributed processing |
US7805756B2 (en) | 1996-11-29 | 2010-09-28 | Frampton E Ellis | Microchips with inner firewalls, faraday cages, and/or photovoltaic cells |
US20050180095A1 (en) * | 1996-11-29 | 2005-08-18 | Ellis Frampton E. | Global network computers |
US8225003B2 (en) | 1996-11-29 | 2012-07-17 | Ellis Iii Frampton E | Computers and microchips with a portion protected by an internal hardware firewall |
US7035906B1 (en) | 1996-11-29 | 2006-04-25 | Ellis Iii Frampton E | Global network computers |
US8312529B2 (en) | 1996-11-29 | 2012-11-13 | Ellis Frampton E | Global network computers |
US7506020B2 (en) | 1996-11-29 | 2009-03-17 | Frampton E Ellis | Global network computers |
US6732141B2 (en) | 1996-11-29 | 2004-05-04 | Frampton Erroll Ellis | Commercial distributed processing by personal computers over the internet |
US7024449B1 (en) * | 1996-11-29 | 2006-04-04 | Ellis Iii Frampton E | Global network computers |
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 |
JP3247330B2 (ja) * | 1997-12-25 | 2002-01-15 | 株式会社神戸製鋼所 | 複数プロセッサシステム |
AU5271600A (en) * | 1999-05-17 | 2000-12-05 | Frampton E. Ellis Iii | Global network computers |
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 |
JP4148223B2 (ja) * | 2005-01-28 | 2008-09-10 | セイコーエプソン株式会社 | プロセッサおよび情報処理方法 |
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 |
ATE518191T1 (de) | 2007-12-17 | 2011-08-15 | Continental Teves Ag & Co Ohg | Speicherabbildungssystem, anforderungssteuerung, mehrfach-verarbeitungsanordnung, zentrale interrput-request-steuerung, vorrichtung, verfahren zur steuerung des speicherzugriffs und computerprogrammprodukt |
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 |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | 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)
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 |
-
1987
- 1987-02-06 US US07/012,085 patent/US5109329A/en not_active Expired - Fee Related
- 1987-07-27 JP JP62504590A patent/JPH02502764A/ja active Pending
- 1987-07-27 DE DE8787905127T patent/DE3784521T2/de not_active Expired - Lifetime
- 1987-07-27 WO PCT/US1987/001802 patent/WO1988005943A1/en active IP Right Grant
- 1987-07-27 EP EP87905127A patent/EP0354899B1/en not_active Expired - Lifetime
-
1988
- 1988-01-29 CA CA000557724A patent/CA1302577C/en not_active Expired - Fee Related
- 1988-02-05 CN CN88100705A patent/CN1011357B/zh not_active Expired
- 1988-02-05 CN CN88100704A patent/CN1010991B/zh not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CN1010991B (zh) | 1990-12-26 |
CN88100704A (zh) | 1988-08-24 |
EP0354899B1 (en) | 1993-03-03 |
EP0354899A1 (en) | 1990-02-21 |
DE3784521D1 (de) | 1993-04-08 |
US5109329A (en) | 1992-04-28 |
WO1988005943A1 (en) | 1988-08-11 |
CN88100705A (zh) | 1988-08-24 |
JPH02502764A (ja) | 1990-08-30 |
CA1302577C (en) | 1992-06-02 |
DE3784521T2 (de) | 1993-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1011357B (zh) | 多重处理的方法和设备 | |
US3905025A (en) | Data acquisition and control system including dynamic interrupt capability | |
Black et al. | Translation lookaside buffer consistency: A software approach | |
US5003466A (en) | Multiprocessing method and arrangement | |
US7363434B2 (en) | Method, system, and computer-readable medium for updating memory devices in a multi-processor computer system | |
US8271989B2 (en) | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages | |
CA1305799C (en) | Logical resource partitioning of a data processing system | |
US4325120A (en) | Data processing system | |
CN100489784C (zh) | 多线程微处理器及其新线程的创建方法和多线程处理系统 | |
CN1007938B (zh) | 虚拟计算机系统的输入输出控制方式 | |
EP0052712A2 (en) | Method for identifying a process in a data processing system | |
EP0093267A2 (en) | Method for switching the control of central processing units in a data processing system, and apparatus for initiating the switching of CPU control | |
JPH0695898A (ja) | 仮想計算機の制御方法および仮想計算機システム | |
US7200701B2 (en) | System and method for processing system management interrupts in a multiple processor system | |
JP2023545818A (ja) | チップ・システム、仮想割り込み処理方法および対応する装置 | |
AU603876B2 (en) | Multiple i/o bus virtual broadcast of programmed i/o instructions | |
Satyanarayanan | Special Feature: Commercial Multiprocessing Systems | |
WO1981002477A1 (en) | Data processing system | |
EP4177743A1 (en) | User-level interrupts in virtual machines | |
MacKinnon | Advanced function extended with tightly-coupled multiprocessing | |
GB1495729A (en) | Apparatus and method for handling exceptions in a data processing system | |
TW482960B (en) | Method for preventing process contradiction between each processors in a multi-processor computer | |
JPS6097440A (ja) | 仮想多重プロセツサ装置 | |
SU692400A1 (ru) | Вычислительна система | |
JPS5935055B2 (ja) | デ−タ処理システム |
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 | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |