首页 / 专利库 / 电脑零配件 / 微码 / 包括多个处理器的系统以及操作该系统的方法及设备

包括多个处理器的系统以及操作该系统的方法及设备

阅读:1029发布:2020-06-23

专利汇可以提供包括多个处理器的系统以及操作该系统的方法及设备专利检索,专利查询,专利分析的服务。并且一种系统(300)包括主控处理器(301)及至少一个从属处理器(321、331)。该主控处理器(301)的状态包括第一多个变量,且该从属处理器(321、331)的状态包括第二多个变量。该系统(300)包括由该主控处理器(301)及该从属处理器(321、331)处理数据的并行操作模式、以及由该主控处理器(301)处理数据的串行操作模式。响应该并行操作模式中发生的中断或异常,该系统(300)执行下列步骤:将该第一多个变量及该第二多个变量的至少一部分储存到缓冲 存储器 (313);以及将该系统(300)切换到该串行操作模式。响应该从属处理器(321、331)中发生的异常,则将该第一多个变量中的至少一个变量设定为该第二多个变量中的至少一个变量的值。,下面是包括多个处理器的系统以及操作该系统的方法及设备专利的具体信息内容。

1.一种计算机系统,包括:
主控处理器,包括第一存储器操作以维持定义该主控处理器状态的第一多个变量,该第一多个变量包括第一返回地址;
至少一个从属处理器,包括第二存储器操作以维持定义该从属处理器状态的第二多个变量,该第二多个变量包括第二返回地址;以及
缓冲存储器,
其中,该系统被设定成响应并行操作模式中发生中断或异常,其中,由该主控处理器及该从属处理器处理数据,而执行下列步骤:
将该第一多个变量及该第二多个变量中的至少一部分储存到该缓冲存储器,以及将该系统切换到串行操作模式,其中,由该主控处理器处理数据;
响应在该从属处理器中发生该中断或异常,将在该第一存储器的该第一多个变量中的至少一个变量设定为在该第二存储器的该第二多个变量中的至少一个变量的值;以及响应该主控处理器中发生该中断或异常,将该第一返回地址及该第二多个变量储存到该缓冲存储器,以及以跳转指令的地址取代该第一返回地址,以及在执行该跳转指令时,执行下列步骤:将该系统切换到该并行操作模式,且自该缓冲存储器读取该第二多个变量及该第一返回地址。
2.如权利要求1所述的系统,其中,该系统被进一步设定成响应该从属处理器中发生该中断或异常而执行下列步骤:将该第一多个变量及该第二多个变量储存到该缓冲存储器,以该跳转指令的该地址取代该第一返回地址,以及切换到该串行操作模式,以及执行该跳转指令以执行下列步骤:将该系统切换到该并行操作模式,自该缓冲存储器读取该第二多个变量,将该第二多个变量中的该至少一个变量设定为该第一多个变量中的该至少一个变量的值,以及自该缓冲存储器读取该第一多个变量。
3.如权利要求1所述的系统,其中,该系统操作以执行用来启动该并行操作模式的启动指令,该启动指令适于:将该第一多个变量的第一变量设定为该缓冲存储器的地址,将该第一多个变量的第二变量设定为该跳转指令的地址,并将该处理器切换到该并行操作模式。
4.如权利要求1所述的系统,其中,该系统操作以执行变量传送指令,该变量传送指令适于将在该第一存储器的该第一多个变量中的一个或多个变量的值写到在该第二存储器的该第二多个变量中的一个或多个变量。
5.如权利要求1所述的系统,其中,该系统操作以执行变量接收指令,该变量接收指令适于将在该第二存储器的该第二多个变量中的一个或多个变量的值写到在该第一存储器的该第一多个变量中的一个或多个变量。
6.如权利要求1所述的系统,其中,该系统操作以执行适于开始该至少一个从属处理器的指令执行的分叉指令,且该指令执行开始于被指定的存储器地址。
7.如权利要求1所述的系统,其中,该系统操作以执行从属联合指令,该从属联合指令适于停止该至少一个从属处理器的指令执行。
8.如权利要求7所述的系统,其中,该系统操作以执行主控联合指令,该主控联合指令适于使该主控处理器保持等候到已终止了该至少一个从属处理器上的指令执行为止。
9.如权利要求1所述的系统,其中,该系统操作以执行结束指令,该结束指令适于将该系统自该并行操作模式切换到该串行操作模式。
10.一种操作系统的方法,该系统包含:主控处理器,包括第一存储器操作以维持定义该主控处理器状态的第一多个变量,该第一多个变量包括第一返回地址;至少一个从属处理器,包括第二存储器操作以维持定义该从属处理器状态的第二多个变量,该第二多个变量包括第二返回地址;以及缓冲存储器,该方法包括:
响应并行操作模式中发生中断或异常,其中,由该主控处理器及该从属处理器处理数据,将该第一多个变量及该第二多个变量中的至少一部分储存到该缓冲存储器,以及将该系统切换到串行操作模式,其中,由该主控处理器处理数据;
响应在该从属处理器中发生该中断或异常,将在该第一存储器的该第一多个变量中的至少一个变量设定为在该第二存储器的该第二多个变量中的至少一个变量的值;以及响应该主控处理器中发生该中断或异常,将该第一返回地址及该第二多个变量储存到该缓冲存储器,以及以跳转指令的地址取代该第一返回地址,以及在执行该跳转指令时,将该系统切换到该并行操作模式,且自该缓冲存储器读取该第二多个变量及该第一返回地址。
11.如权利要求10所述的方法,进一步包括:响应该从属处理器中发生该中断或异常,将该第一多个变量及该第二多个变量储存到该缓冲存储器,以该跳转指令的该地址取代该第一返回地址,以及切换到该串行操作模式,以及执行该跳转指令以将该系统切换到该并行操作模式,自该缓冲存储器读取该第二多个变量,将该第二多个变量中的该至少一个变量设定为该第一多个变量中的该至少一个变量的值,以及读取该第一多个变量。
12.如权利要求10所述的方法,进一步包括:执行用来启动该并行操作模式的启动指令,该启动指令适于:将该第一多个变量的第一变量设定为该缓冲存储器的地址,将该第一多个变量的第二变量设定为该跳转指令的地址,并将该处理器切换到该并行操作模式。
13.如权利要求10所述的方法,进一步包括:执行变量传送指令,该变量传送指令适于将在该第一存储器的该第一多个变量中的一个或多个变量的值写到在该第二存储器的该第二多个变量中的一个或多个变量。
14.如权利要求10所述的方法,进一步包括:执行变量接收指令,该变量接收指令适于将在该第二存储器的该第二多个变量中的一个或多个变量的值写到在该第一存储器的该第一多个变量中的一个或多个变量。
15.如权利要求10所述的方法,进一步包括:执行适于开始该至少一个从属处理器的指令执行的分叉指令,且该指令执行开始于被指定的存储器地址。
16.如权利要求10所述的方法,进一步包括:执行从属联合指令,该从属联合指令适于停止该至少一个从属处理器的指令执行。
17.如权利要求16所述的方法,进一步包括:执行主控联合指令,该主控联合指令适于使该主控处理器保持等候到已终止了该至少一个从属处理器上的指令执行为止。
18.如权利要求10所述的方法,进一步包括:执行结束指令,该结束指令适于将该系统自该并行操作模式切换到该串行操作模式。
19.一种操作系统的设备,该系统包括:
主控处理器,包括第一存储器操作以维持定义该主控处理器状态的第一多个变量,该第一多个变量包括第一返回地址;
从属处理器,包括第二存储器操作以维持定义该从属处理器状态的第二多个变量,该第二多个变量包括第二返回地址;
缓冲存储器;以及
该设备包括:
第一装置,用以响应并行操作模式中发生中断或异常,其中,由该主控处理器及该从属处理器处理数据,将该第一多个变量及该第二多个变量中的至少一部分储存到该缓冲存储器,以及将该系统切换到串行操作模式,其中,由该主控处理器处理数据;
第二装置,用以响应在该从属处理器中发生该中断或异常,将在该第一存储器的该第一多个变量中的至少一个变量设定为在该第二存储器的该第二多个变量中的至少一个变量的值;以及
第三装置,用以响应该主控处理器中发生该中断或异常,将该第一返回地址及该第二多个变量储存到该缓冲存储器,以及以跳转指令的地址取代该第一返回地址,以及在执行该跳转指令时,将该系统切换到该并行操作模式,且自该缓冲存储器读取该第二多个变量及该第一返回地址。
20.如权利要求19所述的设备,进一步包括:第四装置,用以响应该从属处理器中发生该中断或异常,将该第一多个变量及该第二多个变量储存到该缓冲存储器,以该跳转指令的该地址取代该第一返回地址,以及切换到该串行操作模式,以及执行该跳转指令以执行下列步骤:将该系统切换到该并行操作模式,自该缓冲存储器读取该第二多个变量,将该第二多个变量中的该至少一个变量设定为该第一多个变量中的该至少一个变量的值,以及自该缓冲存储器读取该第一多个变量。
21.如权利要求19所述的设备,其中,该第一装置、该第二装置及该第三装置包括置于该主控处理器或该从属处理器的至少一个处理器上第三存储器中的微码

说明书全文

包括多个处理器的系统以及操作该系统的方法及设备

技术领域

[0001] 本发明的揭示大致有关计算机系统的领域,尤有关包含多个处理器的系统。 背景技术
[0002] 在现代的计算机系统中,采用了包含多个指令之处理器。处理器自被连接到该处理器的系统存储器读取指令及数据,并根据该等指令而修改该等指令及(或)数据。该系统存储器可包含诸如随机存取存储器(RAM)的易失性但可迅速存取的存储器装置、以及诸如硬盘等的缓慢但永久性的存储器装置。此外,计算机可自诸如键盘鼠标、及(或)网络联机等的装置接收输入,并可将输出提供给诸如监视器、一个或多个喇叭、及(或)打印机等的装置。在大部分的计算机系统中,采用被称为“操作系统”之专计算机程序,以便控制对各种程序的处理、以及该计算机系统的各组件间之数据传输。
[0003] 图1a是现阶段技术状态的计算机系统100之方示意图。计算机系统100包含处理器101、系统存储器104、以及一个或多个输入/输出装置103。箭头102示意地指示处理器101、系统存储器104、与输入/输出装置103间之数据传输。
[0004] 处理器101包含多个寄存器102、103、104、105。可将数据自系统存储器104读取到寄存器102至105,且可将寄存器102至105中之数据写到系统存储器104。处理器101可包括适于修改寄存器102至105的内容之指令、以及在寄存器102至105与系统存储器104之间及(或)在寄存器102至105之间传输数据之指令。此外,可提供用来执行这些工作的一组合之指令。处理器101通常可以比存取系统存储器104中储存的数据的速度快许多之速度存取寄存器102至105中之数据。
[0005] 为了改善计算机系统100的效能,最好是可提供取代单一处理器101的多个处理器。因此,可同时执行多个工作及(或)执行绪。此 种方式可有助于提高计算机系统100的作业速度。
[0006] 然而,在根据现阶段最高技术的计算机系统中,如将于下文中参照图1b而说明的,处理器的数目增加时,可能需要有操作系统的修改。图1b示出在根据现阶段最高技术的计算机系统100的处理器101中执行之工作201之示意流程图。工作201包含将被处理器101循序地处理的多个210至215。因此,处理器101以自指令210至指令211且自指令211至指令212之方式循序处理该等指令。
[0007] 当工作201被处理时,诸如在处理指令212期间或之后,可能发生以图1b中之箭头230示意地指示之中断或异常。如果在处理指令212期间发生错误,例如,如果发生除以零,或如果有来自系统存储器104的诸如分页错误等的错误讯息,则可产生异常。也可由工作201的指令(例如,指令212)有规律地产生异常。工作201所产生的异常之典型应用是呼叫计算机系统100的操作系统。诸如输入到输入/输出装置103或输入/输出装置103的同步要求等的处理器101以外的其它装置引起之事件可产生中断。如果计算机系统100中执行多任务,则可将时序电路所产生的中断用来交替地激活可以是程序或执行绪的各种工作。
[0008] 如果发生了中断或异常,则可中断工作201的执行,并执行可以是诸如该操作系统的一部分之中断例程202。中断例程202包含多个指令220至225。这些指令被循序地处理。在处理了中断例程202的最后一个指令225之后,接续在发生中断的指令212之后的指令(在上述例子中为指令213)上继续对工作201之处理。
[0009] 中断例程202可修改处理器101的寄存器102至105之内容。为了保证工作201在发生中断或异常之后可不管该中断或异常而正确地工作,寄存器102至105之内容被复制到系统存储器104中之储存位置。在继续执行工作201之前,该储存位置的内容被读回到寄存器102至105。因此,当执行指令213而继续执行工作201时,寄存器102至105可包含如同在指令212之后将立即执行指令213一般的实质上相同之数据。
[0010] 在根据现阶段最高技术的计算机系统100中,被实施为计算机系统100的该操作系统的一部分之中断例程202中之指令完成将该等 寄存器的复制到该储存位置及将该储存位置的内容复制回该等寄存器。因此,如果计算机系统100中提供了额外的处理器,则对该操作系统的修改可能被要求保证:如果在该等处理器的任何处理器中发生中断或异常,则该等处理器的内容被正确地储存在系统存储器中,且该内容在该中断例程结束之后被读回到该等寄存器。
[0011] 可能需要对该操作系统的进一步修改,以便将个别处理器中之程序及工作的执行排程。在根据现阶段最高技术的计算机系统中,系由操作系统执行对该等处理器中之程序及(或)执行绪的执行以及对将各程序及(或)执行绪分配给该等处理器之控制。除了需要根据多个处理器的存在而调整操作系统之外,对程序及(或)执行绪的执行之控制可能在产生及(或)控制程序及(或)执行绪时需要较大的管理负担(overhead)。尤其在呼叫操作系统例程之前将该等处理器的寄存器之内容复制到储存位置以及在该操作系统例程终止之后将该储存位置之内容读回该等寄存器时,可能产生相当大的管理负担。 [0012] 根据现阶段最高技术的计算机系统100之问题在于:在操作系统的制造商实施了对计算机系统100中提供的额外的处理器或任何其它可能装置的支持之前,可能无法合理地使用该等额外的处理器。
[0013] 根据现阶段最高技术的计算机系统100之另外的一问题在于:利用操作系统执行的对程序及(或)执行绪之产生及(或)控制的较大之管理负担可能降低了计算机系统100的效能,尤其在使用较细粒(fine grain)的多任务及(或)多绪执行(multithreading)时更是如此。
[0014] 此外,纵然在提供了对多个处理器的支持的根据现阶段最高技术之计算机系统中,可能希望对操作系统隐藏额外的处理器或特征。额外的处理器或特征也可能包含操作系统不知道的额外的硬件及(或)处理器。因此,根据现阶段最高技术的计算机系统之另外的一问题在于:该计算机系统可能难以使用诸如操作系统不知道的处理器或硬件等的额外的资源。
[0015] 本发明之揭示系有关可避免或至少减轻前文所述的一个或多个问题的影响之各种系统及方法。

发明内容

[0016] 下文中提供了本发明的简化摘要,以便提供对本发明的某些态様的基本了解。该摘要并不是本发明的彻底的概述。其目的并不是识别本发明的关键性或紧要的组件,也不是描述本发明的范围。其唯一目的只是以简化的形式提供某些观念,作为将于后文中提供的更详细的说明之前言。
[0017] 根据一个显示范例,系统包含主控处理器及至少一个从属处理器。该主控处理器之状态包含第一多个变量,且该从属处理器之状态包含第二多个变量。该系统包括由该主控处理器及该从属处理器处理数据的并行操作模式、以及由该主控处理器处理数据的串行操作模式。该系统之组态被设定成在该并行操作模式中发生中断或异常时执行下列步骤:将该第一多个变量及该第二多个变量的至少一部分储存到缓冲存储器;以及将该系统切换到该串行操作模式。该系统之组态被进一步设定成:若该从属处理器中发生中断或异常,则将该第一多个变量中之至少一个变量设定为该第二多个变量中之至少一个变量的值。 [0018] 根据另一个显示范例,系统包含主控处理器及至少一个从属处理器。该主控处理器之状态包括其中包含第一返回地址之第一多个变量,且该从属处理器之状态包括其中包含第二返回地址之第二多个变量。该系统包括由该主控处理器及该从属处理器处理数据的并行操作模式、以及由该主控处理器处理数据的串行操作模式。该系统包含跳转(trampoline)指令。该系统之组态被设定成在该并行操作模式期间于该主控处理器中发生中断或异常时执行下列步骤:将该第一返回地址及该第二多个变量储存到缓冲存储器;
以该跳转指令的地址取代该第一返回地址;以及切换到该串行操作模式。该系统之组态被进一步设定成在该并行操作模式期间于该从属处理器中发生中断或异常时执行下列步骤:
将该第一多个变量及该第二多个变量储存到缓冲存储器;将该第一多个变量中之至少一个变量设定为该等第二变量中之至少一个变量的值;以该跳转指令的地址取代该第一返回地址;以及切换到该第一作业模式。该跳转指令适于执行下列步骤:将该系统切换到该并行操作模式;以及如果在该主控处理器中发生中断或异常,则自该缓冲存储器读取该第二多个变量及该第一返回地址。该跳转指令进一步适于执行下列步骤:将该系统切换到该并行操作模式;自该缓冲存 储器读取该第二多个变量;将该第二多个变量中之至少一个变量设定为该第一多个变量中之至少一个变量的值;以及如果在该至少一个从属处理器中发生中断或异常,则自该缓冲存储器读取该第一多个变量。
[0019] 根据另外的显示范例,揭示了一种操作包含主控处理器及至少一个从属处理器的系统之方法,该主控处理器之状态包含第一多个变量,且该从属处理器之状态包含第二多个变量,该系统包含由该主控处理器及该从属处理器处理数据的并行操作模式、以及由该从属处理器处理数据的串行操作模式,该方法包含下列特征。如果在该并行操作模式中发生中断或异常,则执行下列步骤:将该第一多个变量及该第二多个变量中之至少一部分储存到缓冲存储器:以及将该系统切换到该串行操作模式。如果在该至少一个从属处理器中发生中断或异常,则将该第一多个变量中之至少一个变量设定为该第二多个变量中之至少一个变量的值。附图说明
[0020] 若配合各附图而参阅前文中说明,将可了解本发明之揭示,在该等附图中,相同的代号识别类似的组件,其中:
[0021] 图1a示出根据现阶段最高技术的计算机系统之示意图;
[0022] 图1b示出在根据现阶段最高技术的计算机系统上运行的程序及中断例程之示意流程图;
[0023] 图2a示出根据本发明所揭示的实施例的计算机系统之示意图;
[0024] 图2b示出在根据本发明所揭示的实施例的计算机系统上运行的程序之示意流程图;以及
[0025] 图2c示出在根据本发明所揭示的实施例的计算机系统上运行的程序及中断例程之示意流程图。
[0026] 虽然易于对本发明所揭示的标的内容作出各种修改及替代形式,但是该等图式中系以举例方式示出本发明的一些特定实施例,且已在本说明书中详细说明了这些特定实施例。然而,我们当了解,本说明书对这些特定实施例的说明之用意并非将本发明限制在所揭示的该等特定形式,相反地,本发明将涵盖最后的权利要求书所界定的本发明的精神及范围内之所有修改、等效物、及替代。

具体实施方式

[0027] 下文中将说明本发明的各实施例。为了顾及说明的清晰,本说明书中将不说明实际实施例的所有特征。当然,我们当了解,在任何此种实际实施例的开发过程中,必须作出许多与实施例相关的决定,以便达到开发者的特定目标,诸如符合与系统相关的及与商业相关的限制条件,而该等限制将随着各实施例而有所不同。此外,我们当了解,虽然此种开发的工作可能是复杂且耗时的,但是此种开发工作仍然是对此项技术具有一般知识者在受益于本发明的揭示后所从事的日常工作。
[0028] 现在将参照各附图而说明本发明之标的内容。只为了解说之用,而在该等图式中以示意图之方式示出各种结构、系统、及装置,以便不会以熟习此项技术者习知的细节模糊了本发明之揭示。然而,该等附图被加入,以便描述并解说本发明揭示之各例子。应将本说明书所用的字及词汇了解及诠释为具有与熟习相关技术者对这些字及词汇所了解的一致之意义。不会因持续地在本说明书中使用一术语或词汇,即意味着该术语或词汇有特殊的定义(亦即与熟习此项技术者所了解的一般及惯常的意义不同之定义)。如果想要使术语或词汇有特殊的意义(亦即与熟习此项技术者所了解的意义不同之意义),则会将在本说明书中以一种直接且毫不含糊地提供该术语或词汇的特殊定义之下定义之方式明确地述及该特殊的定义。
[0029] 根据一个实施例,提供了一种包含主控处理器及至少一个从属处理器之计算机系统。虽然在某些实施例中,该计算机系统可包含单一的从属处理器,但是在其它实施例中,可提供多个从属处理器。该计算机系统包含由主控处理器及至少一个从属处理器处理数据的并行操作模式。在计算机系统包含多个从属处理器之实施例中,每一个从属处理器或该等从属处理器的一部分可在该并行操作模式中同时执行一些指令。因此,在该并行操作模式中,可在该主控处理器及该等从属处理器中同时执行多个工作,以便改善该计算机系统之效能。在某些实施例中,该串行操作模式可以是该计算机系统提供只有单一处理器的先前机型的功能之兼容模式。
[0030] 该主控处理器的状态包含可代表该主控处理器的寄存器的内容之 多个变量。同样地,每一从属处理器的状态可包含可代表该从属处理器之寄存器的内容之多个变量、及(或)用来指示该从属处理器是否目前正在执行指令之运行状态位。在该主控处理器及该等从属处理器中,个别处理器的该多个变量中之一变量可包含该处理器于没有中断或异常时用来继续指令执行之返回地址。例如,可在该等个别处理器的该等寄存器中之一寄存器中提供该返回地址。
[0031] 该计算机系统可包含适于将该主控处理器的该多个变量中之一个或多个变量的值写到该等从属处理器中之一个从属处理器的该多个变量中之一个或多个变量。因此,可在由该从属处理器开始执行执行绪之前,先建立该从属处理器之参数。可利用可接收将要开始指令执行的从属处理器的识别号码以及要开始指令执行时作为自变量(argument)的目标地址之分叉指令(fork instruction)开始每一从属处理器上之指令执行。可利用从属联合指令(slave join instruction)停止从属处理器上的执行绪之执行。如果在从属处理器执行的指令序列中发生从属联合指令,则该从属处理器将停止指令的执行。可将主控联合指令(master join instruction)用来执行该主控处理器与该等从属处理器中之一个从属处理器间之同步。系以被用来作为自变量的从属处理器之识别号码呼叫该主控联合指令。如果在该主控处理器执行的指令序列中发生该主控联合指令,则该主控处理器将等候到该主控联合指令的自变量中指定的该从属处理器中之指令的执行终止为止。该计算机系统进一步包含适于将该等从属处理器中之一个从属处理器的该多个变量中之一个或多个变量的值写到该主控处理器的该多个变量中之一个或多个变量之变量接收指令。可将该变量接收指令用来接收其中包含该从属处理器中之工作的执行结果的缓冲存储器之结果值或指针
[0032] 因此,在该计算机系统中,可以一种平行之方式在该主控处理器及该等从属处理器中执行程序及(或)执行绪。使用上述的该等指令时,可以独立于在该计算机系统上运行的操作系统之方式开始及停止该等从属处理器中之一个或多个从属处理器中之工作的执行。
[0033] 可将该计算机系统之组态设定成:若在该并行操作模式中发生中断或异常,则将代表该主控处理器及该等从属处理器的状态的变量之 至少一部分储存到缓冲存储器,将该系统切换到该串行操作模式。尤其可储存诸如该计算机系统的先前机型中不存在的寄存器之内容等的该等从属处理器之变量及该主控处理器之变量。因此,无须使该操作系统适于储存包含单一处理器的计算机系统中并未被使用的从属处理器之变量及主控处理器之变量。因此,可提供该计算机系统与包含单一处理器的先前机型间之兼容性,且可将适于该先前机型的操作系统用于该计算机系统。
[0034] 若在从属处理器中发生了中断或异常,则可将该主控处理器的该多个变量中之至少一个变量设定为发生了该中断或异常的该从属处理器的该多个变量中之至少一个变量的值。因此,可将该从属处理器的各变量传送到该操作系统,而该操作系统可自该主控处理器读取与该操作系统执行的中断例程相关之数据。
[0035] 该计算机系统可进一步包含跳转指令。该跳转指令可适于自该缓冲存储器读取于中断或异常时被储存的该等从属处理器及或有的该主控处理器之那些变量。此外,该跳转指令可适于将该计算机系统自该串行操作模式切换到该并行操作模式。若在从属处理器中发生中断或异常,则该跳转指令可将该中断或异常发生时被设定为该从属处理器的各变量的值之该主控处理器的那些变量写到该从属处理器的该等变量。可在自该缓冲存储器读取该主控处理器的该等原始变量之前,先执行上述步骤。
[0036] 若发生了中断或异常,则可以该跳转指令之地址取代该主控处理器之返回地址。因此,在该中断例程终止之后,自动地呼叫该跳转指令。因此,可以独立于该操作系统之方式处理包含单一处理器的计算机系统中不存在的从属处理器及(或)主控处理器之变量。
此种方式可以对操作系统透通之方式使用该计算机系统的该并行操作模式。因此,实质上不需要调整该操作系统,即可使用该计算机系统的该并行操作模式。
[0037] 图2a示出根据一个实施例的计算机系统300之示意图。计算机系统300包含主控处理器301以及从属处理器321、331。然而,本发明并不限于图2a所示的提供两个从属处理器之实施例。在其它实施例中,可提供三个或更多个从属处理器。在另外的实施例中,计算机 系统300可包含单一从属处理器。此外,本发明不限于从属处理器321、331是一般用途处理器之实施例。在其它实施例中,从属处理器321、331可包含特殊功能的硬件。 [0038] 计算机系统300可进一步包含系统存储器304及输入/输出装置303。箭头314示意地指示主控处理器301、从属处理器321、331、系统存储器304、与输入/输出装置303间之数据传输。
[0039] 主控处理器301包含多个寄存器302至307。在某些实施例中,该多个寄存器302至307可包含其中可包含诸如寄存器302至305之第一子集,以及其中可包含寄存器306、307之第二子集。该第一子集之寄存器302至305可对应于根据现阶段最高技术的计算机系统中之处理器的各寄存器,例如,对应于前文中参照图1a至1b所述的计算机系统100中之处理器101的寄存器102至105。主控处理器301之组态可进一步被设定成:在计算机系统300的串行操作模式中提供其中包含根据现阶段最高技术的处理器101的指令集之指令集。因此,在该串行操作模式中,计算机系统300可执行提供给根据现阶段最高技术的计算机系统100之二进制代码。
[0040] 如将于下文中更详细说明的,可将该第二子集之寄存器306、307用来处理与主控处理器301及从属处理器321、331中之数据的平行处理相关联之数据传输。 [0041] 与主控处理器301类似,第一从属处理器321可包含多个寄存器322至325,且第二从属处理器331可包含多个寄存器332至335。在某些实施例中,从属处理器321、331之寄存器322至325、332至335可对应于主控处理器301之该第一子集的寄存器302至305。在寄存器302至307、322至325、332至335的每一寄存器中,可储存代表主控处理器302、第一从属处理器321、及第二从属处理器331的状态之变量。
[0042] 在某些实施例中,可使主控处理器301及从属处理器321、331中之每一处理器适于提供熟悉此项技术者习知的x86或x86-64类型的处理器之功能。在其它实施例中,可将主控处理器301及从属处理器321、331中之每一处理器之组态设定成提供不同类型的处理器之功能。在另外的实施例中,可使主控处理器301适于提供与从属处理 器321、331的类型不同的一类型的处理器之功能。
[0043] 在一个实施例中,可使主控处理器301适于提供现有操作系统支持的处理器类型之功能,例如,提供x86或x86-64处理器之功能,且从属处理器321、331可以是无须被该操作系统支持的不同类型之处理器。例如,从属处理器321、331可包含简化架构,以便将从属处理器321、331所占用的晶粒面积最小化。此种方式可有助于增加计算机系统300的从属处理器321、331之数目,以便增强计算机系统300之效能。此外,从属处理器321、331的简化架构可增加从属处理器321、331的时脉速率,因而增加了每一个别从属处理器之工作速度。
[0044] 在某些实施例中,在单晶粒上提供主控处理器301、以及从属处理器321、331中之一个或多个从属处理器。在其它实施例中,可在不同的晶粒上提供主控处理器301以及从属处理器321、331。
[0045] 主控处理器301可包含指示器位308以及控制寄存器位309。指示器位308可以是架构上看不到的位,用以指示计算机系统300目前正在可由主控处理器301处理数据的串行操作模式或可由主控处理器301及从属处理器321、331中之一个或多个从属处理器处理数据之并行操作模式中运行。控制寄存器位309可指示是否容许该并行操作模式。如果控制寄存器位309被设定为例如值“开”等的第一值,则程序可在计算机系统300的该并行操作模式中运行。然而,如果控制寄存器位309被设定为例如值“关”等的第二值,则只可在该串行操作模式中使用计算机系统300。
[0046] 与主控处理器301类似,从属处理器321、331中之每一从属处理器可包含指示器位及控制寄存器位。在图2a中,代号328、338表示从属处理器321、331之指示器位,且代号329、339表示从属处理器321、331之控制寄存器位。在其它实施例中,从属处理器321、331无须包含指示器位328、329。在这些实施例中,可将主控处理器301之控制寄存器位
309用来指示容许计算机系统300的并行操作模式,且可将主控处理器301之控制寄存器位
309用来指示计算机系统300正处于并行操作模式中。
[0047] 第一从属处理器321可进一步包含运行状态位330。运行状态位 330指示第一从属处理器321目前是否正在运行或从属处理器321是否被停止了。例如,运行状态位330之值“开”可指示第一从属处理器321目前正在运行,且运行状态位330之值“关”可指示第一从属处理器321被停止了。与第一从属处理器321类似,第二从属处理器331亦可包含运行状态位340。
[0048] 在系统存储器304中,可提供缓冲存储器313。如将于下文中更详细说明的,若在计算机系统300处于该并行操作模式时发生了一中断或异常,则可将主控处理器的寄存器302至307的一部分或全部之内容、从属处理器321、331的寄存器322至325、332至335的一部分或全部之内容、以及诸如指示器位308、328、338、控制寄存器位309、329、339、及(或)运行状态位330、340的值等的进一步信息储存在在缓冲存储器313中。若正在计算机系统300中执行多任务,则可为每一程序而分配个别的缓冲存储器。
[0049] 在某些实施例中,可自将使用计算机系统300的该并行操作模式的一程序之程序代码呼叫中央处理单元(CPU)驱动例程,而分配缓冲存储器313。可使该CPU驱动例程适于分配足以储存寄存器302至307、322至325、及332至335、以及前文所详述之或有的进一步信息的内容的容量之存储器区域。在某些实施例中,可在将不会被操作系统交换到诸如硬盘等的大量储存装置之非分页系统存储器库(non-paged pool systemmemory)中提供缓冲存储器313。在某些计算机系统300中,只可由CPU驱动例程执行该非分页系统存储器中之存储器的分配。
[0050] 有利之处在于:在该非分页系统存储器库中分配缓冲存储器313之方式可有助于确保缓冲存储器313将一直是保持在实体存储器的状态,且不会发生分页错误。此种方式可较易于利用不可分割的作业(atomic operation)对缓冲存储器313进行第二多个寄存器309至312的内容及或有的进一步数据之分别写入及读取。因此,可有利地避免在将数据写到缓冲存储器313时碰到中断或异常而可能发生的错误。
[0051] 可将该CPU驱动例程之组态设定成返回缓冲存储器313之存储器地址。在某些实施例中,该存储器地址可以是虚拟地址。此种方式可有助于将在计算机系统300上运行的所有程序相互隔离,且可能 要求每一程序使用独立的存储器分页。如果缓冲存储器313的分配是不可行的,例如,如果非分页存储器区域中没有可供使用的存储器,则该CPU驱动例程可指示失败。
[0052] 在某些实施例中,用来分配缓冲存储器313的该CPU驱动例程可以是处理器供货商可能提供的CPU驱动程序的一部分。除了用来分配缓冲存储器313的该CPU驱动例程之外,可提供用来释出缓冲存储器313之第二CPU驱动例程。如熟悉此项技术者所习知的,该等CPU驱动例程可在开机期间被操作系统加载,且提供了在计算机系统300上运行的程序可执行之功能。因此,使用第二作业模式之程序可呼叫用来分配及释出缓冲存储器313之该等CPU驱动例程。
[0053] 计算机系统300可包含启动指令,用以启动计算机系统300之该并行操作模式。该启动指令接收缓冲存储器313的诸如虚拟地址等的地址,作为操作数,且该启动指令接收跳转指令的地址。计算机系统300提供该跳转指令。在某些实施例中,主控处理器301可提供该跳转指令。如将于下文中更详细说明的,在完成了中断例程之后,通常将该跳转指令用来恢复寄存器302至307、322至325、及332至335的一部分或全部之内容。可在使用该并行操作模式之程序中提供该跳转指令,且该跳转指令的地址可以是该程序中提供的该跳转指令的记忆位置之指针。
[0054] 可将计算机系统300之组态设定成:如果该启动指令被呼叫,则执行下列步骤。计算机系统300可检查控制寄存器位309。如果控制寄存器位309指示不容许使用该并行操作模式,则该启动指令将产生非法指令错误,且将不执行任何进一步的步骤。否则,可将主控处理器301的寄存器302至307的第二子集的寄存器306、307中之第一寄存器(例如,寄存器306)设定为缓冲存储器313之地址,且可将寄存器302至307的第二子集的寄存器306、307中之第二寄存器(例如,寄存器307)设定为该跳转指令之地址。在其它实施例中,可将主控处理器301的寄存器302至307中之另一寄存器用来储存缓冲存储器313及该跳转指令之地址。此外,计算机系统300可将指示器位308以及或有的从属处理器321、331之指示器位328、338设定为用来指示该计算机系统正处于该并行操作模式之值。然后,计算 机系统300可在该并行操作模式中执行次一指令。
[0055] 在某些实施例中,该启动指令之组态可进一步设定成清除从属处理器321、331之寄存器322至325、332至335。因此,可避免不同的程序间之状态信息的传播,因而可有助于计算机系统300之安全。
[0056] 计算机系统300可进一步包含适于将主控处理器301的寄存器302至307中之一个或多个寄存器的内容写到从属处理器321、331中之一个从属处理器的寄存器322至325、332至335中之一个或多个寄存器的变量传送指令。在某些实施例中,该变量传送指令接收内容将被写到其寄存器的从属处理器321、331之识别号码、用来识别其内容将被传送到从属处理器321、331的主控处理器301的寄存器之数据、以及用来识别其值将被设定的从属处理器321、331的寄存器之数据,作为操作数。在一个实施例中,可将该变量传送指令之组态设定成每次将主控处理器301的该等寄存器中之一个寄存器的内容传送到从属处理器
321、331中之一个从属处理器,且用来识别主控处理器301及个别从属处理器321、331的寄存器之数据可包含主控处理器301及从属处理器321、331的个别寄存器之识别号码。 [0057] 可将计算机系统300之组态设定成:如果该变量传送指令被呼叫,则执行下列步骤。计算机系统300可检查指示器位308。如果指示器位308指示计算机系统300并非处于并行操作模式,则该变量传送指令将产生非法指令错误,且将不执行任何进一步的步骤。
否则,可检查主控处理器301是否执行该变量传送指令。如果从属处理器321、331中之一个从属处理器执行该变量传送指令,则产生非法指令错误,且将不执行任何进一步的行动。
否则,将该变量传送指令的操作数中指定的主控处理器301的寄存器302至307中之一个或多个寄存器的内容写到被指定的从属处理器321、331之被指定的寄存器。然后,计算机系统300可执行次一指令。
[0058] 计算机系统300可进一步包含适于将从属处理器321、331中之一个从属处理器的寄存器322至325、332至335中之一个或多个寄存器的内容写到主控处理器301的寄存器302至307中之一个或多个寄存器之变量接收指令。该变量接收指令可接收将自其接收变量的从属处理器321、331之识别号码、用来识别其内容将被读取的从属处 理器321、331的寄存器之数据、以及用来识别其值将被设定的主控处理器301的寄存器之数据,作为操作数。与该变量传送指令类似,用来识别该等寄存器之数据可包含从属处理器321、331的寄存器之识别号码、以及主控处理器301的寄存器之识别号码。
[0059] 可将计算机系统300之组态设定成:如果该变量接收指令被呼叫,则执行下列步骤。计算机系统300可检查指示器位308。如果指示器位308指示计算机系统300并非处于并行操作模式,则该变量接收指令将产生非法指令错误,且将不执行任何进一步的步骤。否则,可检查主控处理器301是否执行该变量接收指令。如果从属处理器321、331中之一个从属处理器执行该变量接收指令,则该变量接收指令产生非法指令错误,且将不执行任何进一步的行动。否则,将被指定的从属处理器321、331之被指定的一个或多个寄存器之内容写到主控处理器301之被指定的寄存器。
[0060] 可将该变量传送指令及该变量接收指令用来交换主控处理器301与从属处理器321、331间之信息。如将于下文中更详细说明的,尤其可将该变量传送指令用来在从属处理器321、331中开始执行绪之前先建立从属处理器321、331之参数,且尤其可将该变量接收指令用来在完成了执行绪的执行之后撷取其中包含一个或多个结果值的记忆位置之结果值或指针。
[0061] 计算机系统300可进一步包含适于激活从属处理器321、331中之一个从属处理器的指令执行之分叉指令。该分叉指令可接收将开始指令执行的从属处理器321、331之识别号码、以及将用来开始指令执行之目标地址,作为操作数。
[0062] 可将计算机系统300之组态设定成:如果该分叉指令被呼叫,则执行下列步骤。计算机系统300可检查指示器位308。如果指示器位308指示计算机系统300并非处于并行操作模式,则产生非法指令错误,且将不执行任何进一步的步骤。否则,检查主控处理器301是否执行该分叉指令。如果从属处理器321、331中之一个从属处理器执行该分叉指令,则产生非法指令错误,且将不执行任何进一步的行动。否则,将被指定的目标地址传送到被指定的从属处理器321、331。从属处理器321、331接收该目标地址。在从属处理器321、331中, 运行状态位330、340被设定为用来指示从属处理器321、331正在运行之值,且从属处理器321、331在该目标地址上开始指令执行。然后,可执行另外的指令。 [0063] 在某些实施例中,若于指令的操作数中指定的个别从属处理器321、331正在运行时,使用该变量传送指令、该变量接收指令、及(或)该分叉指令,则将产生不可预测的结果。在这些实施例中,可改写在该计算机系统上运行的程序之程序代码,使上述的状况不会发生。在其它实施例中,如果在操作数中指定的从属处理器321正在运行时,呼叫该变量传送指令、该变量接收指令、或该分叉指令,则可使计算机系统300适于产生非法指令错误。 [0064] 计算机系统300可进一步包含适于停止从属处理器321、331中之一个从属处理器的指令执行之从属联合指令。从属处理器321、331中之一个从属处理器可执行该从属联合指令,且可在执行该从属联合指令的从属处理器上停止指令执行。更具体而言,可将计算机系统300适于在该从属联合指令被呼叫时执行下列步骤。计算机系统300可检查指示器位308。如果指示器位308指示计算机系统300并非处于并行操作模式,则产生非法指令错误,且将不执行任何进一步的步骤。否则,检查从属处理器321、331中之一个从属处理器是否执行该从属联合指令。如果并非在从属处理器321、331上执行该从属联合指令,则产生非法指令错误,且将不执行任何进一步的行动。否则,将运行状态位330设定为用来指示从属处理器321、331并不正在运行且可停止从属处理器321、331上的指令执行之值。 [0065] 计算机系统300可进一步包含适于使主控处理器301保持等候直到从属处理器
321、331中之一个从属处理器上的指令执行停止了为止之主控联合指令。该主控联合指令可接收主控处理器301必须等候的从属处理器321、331中之一个从属处理器的识别号码,作为操作数。
[0066] 可将计算机系统300之组态设定成:如果该主控联合指令被呼叫,则执行下列步骤。计算机系统300可检查指示器位308。如果指示器位308指示计算机系统300并非处于并行操作模式,则产生非法指令错误,且将不执行任何进一步的步骤。否则,检查主控处理器 301是否执行该主控联合指令。如果主控处理器301并不执行该主控联合指令,则产生非法指令错误,且将不执行任何进一步的行动。否则,检查该主控联合指令的操作数中指定的从属处理器321、331之运行状态位330、340是否指示个别的从属处理器321、331正在运行。然后,主控处理器301将等候到运行状态位330、340被设定为用来指示从属处理器321、331不再运行之值为止。然后,可在接续在主控联合指令之后的指令上继续主控处理器
301中之指令执行。
[0067] 在其它实施例中,该主控联合指令可检查该等个别的从属处理器321、331是否仍然在运行中。然后该主控联合指令可在诸如主控处理器301的寄存器302至307中之一寄存器等的架构上可看见之寄存器中送回该结果。在计算机系统300上运行的程序然后可将该状态用来决定进一步的作业。因此,主控处理器301可检查该等个别的从属处理器321、331之运行状态,然后继续程序的执行。在这些实施例中,该主控联合指令的进一步之特征可类似于前文所述的其它实施例的那些指令之特征。
[0068] 可将该从属联合指令及该主控联合指令用来同步在主控处理器301及从属处理器321、331中运行的执行绪。该主控联合指令可精确地指定从属处理器321、331中之一个从属处理器。因此,在程序的执行期间,不需要所有执行绪的共同联合点,即可在不同的时点将该不同从属处理器中运行的执行绪同步。因此,可得到较大程度的弹性。 [0069] 本发明不限于提供相互不同的主控联合指令及从属联合指令之实施例。在其它实施例中,可提供单一的联合指令。当该联合指令被呼叫时,即检查是在主控处理器301中或在从属处理器321、331的一个从属处理器中执行该联合指令。如果是在从属处理器321、331的一个从属处理器中执行该联合指令,则执行与前文中针对该从属联合指令所述之那些步骤对应的步骤。相反地,如果是在主控处理器301中执行该联合指令,则可执行与前文中针对该主控联合指令所述之那些步骤对应的步骤。
[0070] 如前文所述,计算机系统300可进一步包含跳转指令。在完成了中断例程之后,可将该跳转指令用来恢复主控处理器301的寄存器 302至307以及从属处理器321、331的寄存器322至325、332至335的一部分或全部之内容。
[0071] 可使该跳转指令适于执行下列步骤:如果在主控处理器301中发生中断,则将计算机系统300切换到该并行操作模式;以及自缓冲存储器313读取寄存器322至325、332至335之内容以及主控处理器301之返回地址。此外,可自该缓冲存储器读取寄存器302至307中之第二子集的寄存器306、307之内容。
[0072] 可使该跳转指令进一步适于执行下列步骤:如果在从属处理器321、331中之一个从属处理器中发生中断或异常,则将计算机系统300切换到该并行操作模式;自该缓冲存储器读取从属处理器321、331的寄存器322至325、332至335之内容;将该主控处理器的寄存器302至307中之一个或多个寄存器的内容写到发生该中断或异常的从属核心321、331之各寄存器;以及自该缓冲存储器读取主控处理器301的寄存器302至307之内容。 [0073] 在某些实施例中,可将计算机系统300之组态设定成:若该跳转指令被呼叫,则执行下列步骤。计算机系统300可检查控制寄存器位309。如果控制寄存器位309指示不容许使用计算机系统300的该并行操作模式,则将产生非法指令错误。否则,可自主控处理器
301的寄存器302至307中之一个寄存器读取缓冲存储器313之地址。在某些实施例中,可自主控处理器301的寄存器302至307中之第一子集的寄存器302至305中之一个寄存器(例如,自寄存器305)读取缓冲存储器313之地址。
[0074] 然后,计算机系统300可自缓冲存储器313读取造成中断或异常的处理器之识别号码。在某些实施例中,主控处理器301可具有识别号码0,第一从属处理器321可具有识别号码1,且第二从属处理器331可具有识别号码2。在提供不同于2的数目的从属处理器之实施例中,每一个从属处理器可具有大于零的自然数之识别号码,且主控处理器301可具有识别号码0。在另外的实施例中,可使用处理器301、321、331的不同之编号体系。计算机系统300然后可自该识别号码决定是由主控处理器301或是由从属处理器321、331中之一个从属处理器造成该中断或异常。
[0075] 如果因处理器识别号码等于零而指出是由主控处理器301造成该中断或异常,则计算机系统300可自缓冲存储器313读取第一从属处理器321的寄存器322至325以及第二从属处理器331的寄存器332至335中之每一寄存器的内容。此外,可自缓冲存储器313读取主控处理器301的寄存器302至307中之第二子集的寄存器306、307之内容。此外,可自该缓冲存储器读取主控处理器301之返回地址。在某些实施例中,可将该主控处理器之该返回地址写到主控处理器301的该等寄存器中之一个寄存器,例如,写到寄存器302。此外,可自缓冲存储器313读取从属处理器321、331之运行状态位330、340。在某些实施例中,自缓冲存储器313读取的从属处理器321、331的寄存器322至325、332至335之内容可包含从属处理器321、331之返回地址。在其它实施例中,可自缓冲存储器313分别地读取从属处理器321、331之返回地址。
[0076] 然后,可交换主控处理器301的寄存器302至307中之第二子集的寄存器306、307中之一个寄存器的内容(例如,寄存器306的内容)、以及用来读取该缓冲存储器的地址之寄存器的内容(例如,寄存器305的内容)。因此,将缓冲存储器313之地址写到寄存器306,而寄存器306可以是该启动指令用来储存缓冲存储器313的地址之寄存器。自缓冲存储器313读取的第二子集的寄存器306、307中之另一寄存器(例如,寄存器307)可包含该跳转指令之地址。
[0077] 然后,可将指示器位308设定为用来指示计算机系统300系处于该并行操作模式之值,例如,设定为值“开”。因此,可将计算机系统300切换到该并行操作模式,且可自从属处理器321、331的每一从属处理器中开始指令执行,其中运行状态位330、340指示该等个别的从属处理器321、331之运行状态。在主控处理器301中,系在自缓冲存储器301读取的该返回地址上继续指令的执行。因此,可在计算机系统300的该并行操作模式中继续被该中断或异常打断的程序之处理。
[0078] 如果从属处理器321、331中之一个从属处理器造成该中断或异常,则可自缓冲存储器313读取第一从属处理器321的寄存器322至325及第二从属处理器331的寄存器332至335之内容、以及运 行状态位330、340。此外,可自缓冲存储器313读取主控处理器
301的寄存器302至307中之第二子集的寄存器306、307之内容。第二子集的寄存器306、
307中之寄存器307或在其它实施例中之另一寄存器可包含该跳转指令之地址。 [0079] 然后,可将用来读取该缓冲存储器的地址的该等寄存器中之一个寄存器的内容(例如,寄存器305的内容)写到可例如在缓冲存储器313中提供的暂时性寄存器,且可自缓冲存储器313将造成该中断或异常的从属处理器321、331的对应的寄存器之内容读取到寄存器305。例如,如果第一从属处理器321造成该中断或异常,则可自缓冲存储器313将第一从属处理器321的寄存器325之被储存的内容读取到寄存器305。如果第二从属处理器331造成该中断或异常,则可自缓冲存储器313将第二从属处理器331的寄存器335之被储存的内容读取到寄存器305。
[0080] 如将于下文中更详细说明的,在完成了该中断例程之后,第一处理器301的其它寄存器302至304包含发生该中断或异常的从属处理器321、331的各寄存器之内容,其中该中断例程可已经修改了该等寄存器中之某些寄存器的内容。因此,在将发生中断或异常的该从属处理器的对应的寄存器之内容写到主控处理器301的寄存器305之后,主控处理器301的第一子集的寄存器302至305包含代表发生中断或异常的该从属处理器的对应的寄存器的内容之数据,其中该中断例程可已经修改了该等寄存器中之某些寄存器的内容。 [0081] 现在可将主控处理器301的第一子集的寄存器302至305之内容写到发生该中断或异常的从属处理器321、331之寄存器。例如,如果在第一从属处理器321中发生该中断或异常,则可将寄存器302至305之内容写到第一从属处理器321之寄存器322至325。如果在第二从属处理器331中发生该中断或异常,则可将寄存器302至305之内容写到第二从属处理器331之寄存器332至335。因此,可将该中断例程造成的寄存器内容之修改写到从属处理器321、331之该等寄存器。
[0082] 本发明并不限于将该主控处理器的寄存器302至307中之第一子集的寄存器302至305的每一寄存器之内容复制到造成中断或异常的 该从属处理器的各寄存器之实施例。在其它实施例中,可以只将第一子集的寄存器302至305中已被中断例程修改的某些寄存器之内容复制到该从属处理器。因此,可加速该跳转指令的执行,这是因为只须将较少量的数据自主控处理器301复制到从属处理器321、331。
[0083] 在将主控处理器301的寄存器302至307的第一子集的寄存器302至305中之一部分或全部的内容写到造成该中断或异常的从属处理器321、331的各寄存器之后,可自缓冲存储器313读取主控处理器301的寄存器302至307中之第一子集的寄存器302至305之内容,而该等内容亦可包含主控处理器301之返回地址。此外,可将先前被储存到该暂时性寄存器的缓冲存储器313之地址写到主控处理器301的该第二多个寄存器中之一个寄存器,例如,写到寄存器306。因此,可恢复主控处理器301在该中断或异常之前的状态。 [0084] 然后,可将计算机系统300的指示器位308及或有的从属处理器321、331的指示器位328、338设定为用来指示系在该并行操作模式中操作计算机系统300之值,且可在从属处理器321、331的每一从属处理器中启动指令的执行,其中运行状态位330、340指示个别的从属处理器在该中断或异常之前是正在运行中。此外,可在主控处理器301的该返回地址上开始主控处理器301中之指令执行。因此,可在计算机系统300中继续程序的执行。 [0085] 可使计算机系统300适于以一不可分割的作业之方式执行该跳转指令的上述之步骤。因此,可有利地避免该跳转指令的执行期间因中断或异常而造成的错误。 [0086] 计算机系统300可进一步包含适于将计算机系统300自该并行操作模式切换到该串行操作模式之结束指令(end instruction)。为达到此一目的,计算机系统300可将指示器位308及或有的从属处理器321、331的指示器位328、338设定为用来指示计算机系统300正在该串行操作模式中操作之值。在一个实施例中,可将指示器位308、328、338设定为值“关”。
[0087] 可使计算机系统300进一步适于在该并行操作模式期间发生中断或异常时执行下列步骤:将主控处理器301的寄存器302至307及从属处理器321、331的寄存器322至325、332至335的内容之至少 一部分、以及或有的从属处理器321、331的运行状态位330、
340之值储存到缓冲存储器313;以及将计算机系统300切换到该串行操作模式。如果在从属处理器321、331中之一个从属处理器中正在发生中断或异常,则计算机系统300可额外地将该主控处理器的寄存器302至307中之至少一个寄存器的内容设定为个别的从属处理器的该等寄存器中之至少一个寄存器的内容。因此,可以独立于操作系统之方式储存处理器301、321、331的该等寄存器中之数据。如果在从属处理器321、331中之一个从属处理器中正在发生中断或异常,则可将与操作系统的中断例程有关之数据自从属处理器321、331写到主控处理器301之各寄存器。因此,该操作系统可处理这些数据,其中该操作系统无须考虑到从属处理器321、331是否存在。尤其无须使该操作系统适于自从属处理器321、331中之任何从属处理器取得与中断例程的执行有关之数据。
[0088] 在某些实施例中,可将计算机系统300之组态设定成:如果在指示器位308被设定为用来指示计算机系统300处于该第二作业模式中之值时,发生了中断或异常,则执行下列步骤。计算机系统300所执行的行动可取决于是在主控处理器301中或是在从属处理器321、331的从属处理器中发生中断或异常。
[0089] 如果正在主控处理器301中发生中断或异常,则计算机系统300可停止从属处理器321、331中之指令执行。在停止了从属处理器321、331中之每一从属处理器的指令执行之后,计算机系统300可将从属处理器321、331的寄存器322至325、332至335之内容写到缓冲存储器313,且可自主控处理器301的寄存器302至307的第二子集的寄存器306、307中之一个寄存器(例如,自寄存器306)读取缓冲存储器313之地址。这些寄存器可包含从属处理器321、331中之每一个从属处理器的返回地址。此外,可将从属处理器321、331的运行状态位330、340储存到缓冲存储器313。运行状态位330、340指示从属处理器321、
331中之每一从属处理器在发生该中断或异常之前是否正在执行指令。此外,可将主控处理器301的识别号码储存到缓冲存储器313。如前文所述,在某些实施例中,主控处理器301可具有识别号码0。在这些实施例中,如果在主控处理器301中 发生了中断或异常,则可将该识别号码0储存到缓冲存储器313。
[0090] 然后,可将其中包含缓冲存储器313的地址的主控处理器301的寄存器302至307的第二子集的寄存器306、307中之一个寄存器(在某些实施例中,该寄存器可以是寄存器306)的内容与主控处理器301的寄存器302至307的第一子集的寄存器302至305中之一个寄存器的内容交换,例如,与寄存器305的内容交换。其内容与寄存器305的内容交换之该寄存器可以相同于该跳转指令用来读取缓冲存储器313的地址之寄存器。 [0091] 主控处理器301的第一子集的寄存器302至305可对应于根据现阶段最高技术的处理器之寄存器组。因此,可将适于在计算机系统300中运行的根据现阶段最高技术的该处理器之操作系统之组态设定成:若发生了中断或异常,则储存主控处理器301的第一子集的寄存器302至305之内容,且在完成了系为该操作系统的一部分的中断例程之后,恢复第一子集的寄存器302至305之内容。因此,可藉由将包含该缓冲存储器的地址的该寄存器之内容与第一子集的寄存器302至305中之一个寄存器之内容交换,而确保该缓冲存储器的该地址在完成了该中断例程之后出现在主控处理器301的寄存器302至305中之一个寄存器,且确保该地址可被该跳转指令存取。此外,在计算机系统300之该并行操作模式中,在计算机系统300中运行的程序可使用第一子集的寄存器302至305中之每一寄存器,这是因为缓冲存储器313之该地址于该并行操作模式中被储存在该主控处理器的第二子集的寄存器306、307中之一个寄存器。因此,可改善计算机系统300与根据现阶段最高技术的计算机系统100间之兼容性。
[0092] 然后,可将主控处理器301之寄存器302至307中之第二子集的寄存器306、307之内容储存到缓冲存储器313。然后,可撷取主控处理器301之返回地址。在某些实施例中,可自该第一子集的寄存器中之一个寄存器(例如,自寄存器302)读取主控处理器301之该返回地址。在储存了主控处理器301的该返回地址之后,可以可自主控处理器301的寄存器302至307的第二子集的寄存器306、307中之一个寄存器(例如,寄存器307)读取的该跳转指令的地址取代主控处理器301之该返回地址。因此,在完成了该操作系统的该中断例程 之后,该跳转指令被呼叫,以便恢复主控处理器301的第二子集的寄存器306、307之内容、从属处理器321、331的寄存器322至325、332至335之内容、以及并未被该操作系统恢复的从属处理器321、331之运行状态位330、340。从属处理器321、331之该等寄存器可包含从属处理器321、331中之每一个从属处理器的返回地址。
[0093] 如果正在从属处理器321、331的其中一个从属处理器中发生中断或异常,则可停止主控处理器301以及从属处理器321、331的每一个从属处理器中之指令的执行。在所有的处理器301、321、331中停止了指令的执行之后,计算机系统300可将主控处理器301的寄存器302至307中之每一个寄存器的内容储存到缓冲存储器313,且可自主控处理器301的寄存器302至307的第二子集的寄存306、307中之一个寄存器(例如,自寄存器306)读取缓冲存储器313之地址。此外,可将从属处理器321、331中之每一个从属处理器的寄存器322至325、332至335之内容以及从属处理器321、331中之每一个从属处理器的运行状态位330、340之值储存到缓冲存储器313。运行状态位330、340的值指示从属处理器321、331在发生该中断或异常时正在运行。
[0094] 然后,可将主控处理器301的寄存器302至307的第二子集的寄存器306、307中用来储存缓冲存储器313的地址之其中一个寄存器的内容写到暂时性寄存器,而在某些实施例中,可在缓冲存储器313中提供该暂时性寄存器。此外,可将发生中断或异常的从属处理器321、331之识别号码储存在缓冲存储器313。在某些实施例中,第一从属处理器321可具有识别号码1,且第二从属处理器331可具有识别号码2。在这些实施例中,如果在第一从属处理器321中发生中断或异常,则可将识别号码1储存到缓冲存储器313,且如果在第二从属处理器331中发生中断或异常,则可将识别号码2储存到缓冲存储器313。从属处理器321、331之该等寄存器可包含从属处理器321、331中之每一个从属处理器的返回地址。 [0095] 然后,可将发生中断或异常的从属处理器321、331的该等寄存器之内容写到主控处理器301的寄存器302至307中之第一子集的寄存器302至305。如果在第一从属处理器321中发生中断或异常, 则可将第一从属处理器321的寄存器322至325之内容写到主控处理器301之寄存器302至305。同样地,如果在第二从属处理器331中发生中断或异常,则可将第二从属处理器331的寄存器332至335之内容写到寄存器302至305。本发明不限于将第一从属处理器321或第二从属处理器331的寄存器322至325或332至335中之每一个寄存器的内容分别写到主控处理器301之对应的寄存器之实施例。在其它实施例中,可以只将被操作系统的中断例程修改的某些从属处理器之内容写到主控处理器301之寄存器。
[0096] 在该中断例程中,操作系统将处理主控处理器301的寄存器302至307中可对应于根据现阶段最高技术的处理器的寄存器组(例如,对应于前文中参照图1a至1b所述的现阶段最高技术的处理器101之寄存器102至105)之第一子集的寄存器302至305之内容。寄存器302至305之内容可包含与该操作系统有关的中断或异常相关之所有信息,其中包括包含了与该中断或异常有关的进一步信息之从属处理器321、331的堆栈之存储器地址。
[0097] 在将发生中断或异常的从属处理器321、331的该等寄存器之内容写到主控处理器301的寄存器302至307之后,主控处理器301之状态可对应于主控处理器301中若发生中断或异常时所存在之状态。因此,对该操作系统而言,看起来犹如主控处理器301遭遇到了中断或异常。因此,纵然在使该操作系统适于只包含单一处理器的计算机系统之实施例中,该操作系统也可处理该中断或异常。
[0098] 然后,可将主控处理器301的寄存器302至307的第一子集的寄存器302至305中之一个寄存器(诸如寄存器305,而寄存器305之内容相同于发生中断或异常的从属处理器321、331的对应的寄存器之内容)的内容写到缓冲存储器313(可自暂时性缓冲器撷取缓冲存储器313之地址),且可将缓冲存储器313之地址写到寄存器305。因此,可在主控处理器301的寄存器302至307的第一子集的寄存器302至305中之一个寄存器中提供缓冲存储器313之地址,且在完成了该中断例程之后,该操作系统可恢复主控处理器301之状态。
[0099] 然后,可将主控处理器301之返回地址储存在缓冲存储器313,且可用可自主控处理器301的寄存器302至307的第二子集的寄存 器306、307中之一个寄存器(例如,自寄存器307)读取的该跳转指令的地址取代主控处理器301之返回地址。因此,可在完成该中断例程之后,执行该跳转指令。
[0100] 可用不可分割的作业之方式执行计算机系统300的该并行操作模式期间发生中断或异常时由计算机系统300执行的上述步骤。如熟悉此项技术者习知的,因而可避免计算机系统300执行该等步骤时出现中断或异常。
[0101] 在执行了上述的步骤之后,不论是否在主控处理器301或从属处理器321、331中之一个从属处理器中发生中断或异常,计算机系统300都可将主控处理器301的指示器位308设定为用来指示计算机系统300系处于该串行操作模式之值,例如,设定为值“关”。在此种方式下,计算机系统300可被切换到该串行操作模式。然后,可执行该操作系统之中断例程。
[0102] 在下文中,将参照图2b及图2c而说明计算机系统300之作业,其中图2b示出在计算机系统300上运行的程序400之示意流程图,且图2c示出程序400及中断例程502之示意流程图。
[0103] 在计算机系统300的操作系统被加载之前,可先识别主控处理器301及从属处理器321、331。在某些实施例中,可以硬件之形式提供将处理器指定为主控处理器301或从属处理器321、331中之一个从属处理器。在这些实施例中,在计算机系统300的整个使用寿命中,可使作为主控处理器301或从属处理器321、331中之一个从属处理器的指定保持不变。在其它实施例中,可利用软件实现作为主控处理器301或从属处理器321、331中之一个从属处理器的指定。例如,可以计算机系统300的基本输入/输出系统(Basic Input/Output System;简称BIOS)识别主控处理器301及从属处理器321、331。在这些实施例中,可藉由修改计算机系统300的BIOS设定值,而改变对该等处理器的指定。
[0104] 在识别了主控处理器301及从属处理器321、331之后,计算机系统300的操作系统可被加载。当该操作系统已激活时,计算机系统300可处于该串行操作模式。因此,主控处理器301可提供根据现阶段最高技术的计算机处理器之功能,例如,提供前文中参照图1a至 1b所述的计算机系统100中之处理器101之功能。因此,计算机系统300可与在某些实施例中可适于根据现阶段最高技术的计算机系统100之该操作系统协作。一旦该操作系统在计算机系统300中运行,即可激活程序400。
[0105] 在程序400之步骤401中,可分配系统存储器304中之缓冲存储器313,其方式系藉由呼叫为该目的而提供之CPU驱动例程。然后,在步骤402中,可执行启动指令,以便启动计算机系统300之该并行操作模式,且在步骤403中,可将堆栈存储器分配给将被从属处理器321、331执行的程序之各执行绪。可将熟悉此项技术者习知的存储器分配技术用来分配该堆栈存储器。
[0106] 在步骤404中,可执行第一多个指令。可由主控处理器301以一种序列之方式执行该第一多个指令。因为主控处理器301可提供诸如前文中参照图1a至1b所述的处理器101等的根据现阶段最高技术的处理器之指令集,所以该第一多个指令可包含亦可根据现阶段最高技术的该处理器执行之指令码。因此,可利用适于提供根据现阶段最高技术的处理器101的程序代码之编译器而产生该第一多个指令。因此,来自现有函式库之程序代码可被包含在程序400中。
[0107] 在步骤405中,可一次或多次呼叫该变量传送指令,以便将数据传送到第一从属处理器321之寄存器322至325。因此,可使第一主控处理器321准备执行程序400之执行绪。在步骤407中,可将该变量传送指令用来将数据传送到第二从属处理器331之寄存器332至335,以便使该第二从属处理器准备执行程序400之另一执行绪。本发明不限于先将数据传送到第一从属处理器321的寄存器322至325且然后将数据传送到第二从属处理器
331之实施例。在其它实施例中,可在将数据传送到第一从属处理器321的寄存器322至
325之前,先将数据传送到第二从属处理器331的寄存器332至335。
[0108] 在步骤409中,可执行该分叉指令,以便开始执行第一从属处理器321中之指令。因此,在步骤410中,第一从属处理器321可执行第二多个指令。在步骤411中,可将该分叉指令用来开始第二从属处理器331中之指令的执行。因此,在步骤412中,第二从属处理器
331可执行第三多个指令。然后,主控处理器301可执行第四多 个指令。计算机系统300可同时执行该第二多个指令、该第三多个指令、及该第四多个指令,其中该第二多个指令的执行、该第三多个指令的执行、及该第四多个指令的执行构成了程序400之不同的执行绪。
因此,程序400的执行速度可比在前文中参照图1a至1b所述的根据现阶段最高技术的计算机系统100时加快。
[0109] 在主控处理器301及从属处理器321、331中之每一处理器都适于提供特定类型的处理器的功能(例如,前文中参照图1a至1b所述的根据现阶段最高技术的处理器101的功能)之实施例中,该第二、第三、及第四多个指令之每一指令可包含适于在该个别类型的处理器中执行之指令码。例如,该第二、第三、及第四多个指令之每一个指令可包含适于在该x86或x86-64类型的处理器中执行之指令码。
[0110] 在从属处理器321、331是与主控处理器301不同类型的处理器之其它实施例中,该第二多个指令及该第三多个指令可包含特别适于在从属处理器321、331中执行的指令码,而该第四多个指令可包含特别适于在主控处理器301中执行的指令码。 [0111] 在完成了其中包含该第二多个指令的执行绪之后,第一从属处理器321可以执行该从属联合指令,以便停止执行第一从属处理器321中之指令(步骤415)。为达到此一目的,可提供该从属联合指令作为该第二多个指令之最后的指令。同样地,亦可提供该从属联合指令作为该第三多令指令之最后的指令,因而在执行了该第三多个指令之后,停止执行第二从属处理器331中之指令(步骤423)。
[0112] 在完成了该第四多个指令的执行之后,主控处理器301可在步骤414中执行该主控联合指令,以便等候到第一从属处理器321完成了该第二多个指令的执行为止。接着,在步骤416中,主控处理器301可再执行该主控联合指令一次,以便等候到第二从属处理器331完成了该第三多个指令的执行为止。
[0113] 然后,主控处理器301可在步骤417、419中执行该变量接收指令,以便分别自第一从属处理器321及第二从属处理器331读取该第二多个指令及该第三多个指令所提供的执行绪之执行结果。在图2b中,代号418指示第一从属处理器321提供寄存器322至325之内容,且代号420指示第二从属处理器331提供寄存器332至335之 内容。
[0114] 然后,主控处理器421可以序列之方式执行第五多个指令(步骤421)。与在步骤404中执行的该第一多个指令类似,该第五多个指令可包含适于在诸如前文中参照图1a至
1b所述的处理器101等的根据现阶段最高技术的处理器中执行之指令码,而主控处理器
301提供了该根据现阶段最高技术的处理器之功能。因此,该第五多个指令可包含适于提供根据现阶段最高技术的处理器101的程序代码的编译器所产生之程序代码。 [0115] 在终止程序400的执行之前,主控处理器301可在步骤422中执行该结束指令,以便将计算机系统300切换到该串行操作模式。此外,可在终止程序400的执行之前,先空出缓冲存储器313,且可呼叫计算机系统300中提供的CPU驱动例程,而执行该步骤。 [0116] 图2c示出程序400以及分别在从属处理器321、331及主控处理器301中执行该第二多个指令、该第三多个指令、及该第四多个指令时发生中断或异常的情形下可执行的中断例程502之示意流程图。
[0117] 在图2c中,代号510、511、512表示被主控处理器301执行的该第四多个指令之指令。代号510′、511′、512′表示被第一从属处理器321执行的该第二多个指令之指令,且代号510″、511″、512″表示被第二从属处理器331处理的该第三多个指令之指令。 [0118] 于分别在主控处理器301及从属处理器321、331中执行该等指令510′、511′、512′之时点上,可能发生了中断或异常460。在该中断或异常460之后,系统300可执行将主控处理器301的寄存器302至307及从属处理器321、331的寄存器322至325、332至
335之内容之至少一部分储存到缓冲存储器313以及将计算机系统300切换到该串行操作模式之步骤。如果在从属处理器321、331的一个从属处理器中发生中断或异常,则计算机系统300可进一步将发生中断或异常的从属处理器321、331的寄存器322至325或332至
335中之至少一个寄存器的内容分别写到主控处理器301的寄存器302至307的第一子集的寄存器302至305中之至少一个寄存器。在图2c中,以代号540指示发生中断或异常时由计算机系统300执行的行动。如前文中参照图2a所述的,当计算机系统300处于该并行操作 模式时,若发生中断或异常,则计算机系统300亦可执行进一步的行动。 [0119] 然后,计算机系统300可执行中断例程502之指令520至525。中断例程502可以是包含对计算机系统300的该串行操作模式的支持且无须支持该并行操作模式的操作系统之一部分。因此,中断例程502可包含适于将该主控处理器的寄存器302至307的第一子集的寄存器302至305之内容储存到系统存储器304以及在中断例程502的执行终止时自系统存储器304读取第一子集的寄存器302至305之内容之指令。此外,中断例程502可修改主控处理器301的寄存器302至307的第一子集的寄存器302至305的一部分或全部之内容。
[0120] 然而,中断例程502无须适于储存且恢复主控处理器301的寄存器302至307的第二子集的寄存器306、307之内容、第一从属处理器321的寄存器322至325之内容、第二从属处理器331的寄存器332至335之内容、以及从属处理器321、331的运行状态位330、340之值。在某些实施例中,中断例程502可以是容许多任务的操作系统之一部分。尤其,可使中断例程502适于执行可使用计算机系统300的该并行操作模式之另一程序,其中寄存器306、307、322至325、332至335以及运行状态位330、340的内容可被修改。因为在执行了中断例程502的最后的指令525之后,中断例程502无须恢复寄存器306、307、322至325、
332至335以及运行状态位330、340的内容,所以寄存器306、307、322至325、332至335以及运行状态位330、340的内容可以不同于在执行了程序400的指令512、512′、512″之后的该等寄存器以及运行状态位之内容。
[0121] 在完成了中断例程502之后,计算机系统300执行该跳转指令550,这是因为已以跳转指令550之地址取代了可在其上执行中断例程502的主控处理器301之返回地址。 [0122] 于执行跳转指令550时,计算机系统300可执行前文中参照图2a所述之步骤。在执行了该跳转指令之后,恢复处理器301、321、331的寄存器302至307、322至325、332至335中之每一个寄存器以及运行状态位330、340之内容,其中可适当地考虑中断例程502对某些寄存器所作的修改。
[0123] 因此,虽然计算机系统300的操作系统(尤其是中断例程502)不适于储存及恢复处理器301、321、331的寄存器302至307、322至325、332至335中之每一个寄存器以及运行状态位330、340之内容,但是在执行了中断例程502之后,恢复了寄存器302至307、322至325、332至335以及运行状态位330、340之内容。此外,可在计算机系统300的该串行操作模式下执行中断例程502。因此,不需要针对计算机系统300的该并行操作模式而调适该操作系统。因此,根据本发明揭示的计算机系统300提供了与为不支持从属处理器321、331的存在的现有计算机系统所设计的软件间之高兼容性。
[0124] 在某些实施例中,计算机系统300可进一步包含第一模式切换指令,用以将计算机系统300自该并行操作模式切换到该串行操作模式。可使该系统适于执行在该第一模式切换指令被呼叫时将主控处理器301及从属处理器321、331的寄存器302至307、322至325、332至335的至少一部分之内容储存到缓冲存储器313并将该系统切换到该串行操作模式之步骤。如果从属处理器321、331中之一个从属处理器执行该第一模式切换指令,则计算机系统300之组态可额外地被设定成:将执行该第一模式切换指令的从属处理器321或从属处理器331的寄存器322至325或332至335中之至少一个寄存器的内容分别写到主控处理器301的寄存器302至307中之至少一个寄存器。
[0125] 在某些实施例中,计算机系统300之组态可设定成:于执行该第一模式切换指令时,执行下列步骤,计算机系统300可检查指示器位308是否被设定为用来指示计算机系统300处于该并行操作模式之值。如果指示器位308指示计算机系统300系处于该串行操作模式,则产生非法指令错误,且将不执行任何进一步的行动。计算机系统300执行之进一步的行动系取决于是由主控处理器301或是由从属处理器321、331中之从属处理器执行该第一模式切换指令。
[0126] 如果是由主控处理器301执行该第一模式切换指令,则计算机系统300可停止从属处理器321、331中之指令执行。在已停止了从属处理器321、331的每一从属处理器中之指令的执行之后,可将从属处理器321、331的寄存器322至325、332至335之内容以及或有的 从属处理器321、331之运行状态位330、340写到缓冲存储器313,且可自主控处理器301的寄存器302至307的第二子集的寄存器306、307之一个寄存器(例如,自寄存器306)读取缓冲存储器313之地址。此外,可将主控处理器301之识别号码(在某些实施例中,该识别号码可以是号码0)写到缓冲存储器313。
[0127] 然后,可将其中包含缓冲存储器313的地址的主控处理器301的寄存器302至307的第二子集的寄存器306、307中之一个寄存器之内容(例如,寄存器306之内容)与主控处理器301的寄存器302至307的第一子集的寄存器302至305中之一个寄存器之内容交换(例如,与寄存器305之内容交换)。如前文所述,可将在计算机系统300上运行的操作系统之组态设定成:若发生中断或异常,则处理主控处理器301之第一子集的寄存器302至305。因此,寄存器305、306的内容之交换可有助于保证该操作系统在发生中断或异常之情形下将储存并恢复缓冲存储器313之地址。
[0128] 然后,该计算机系统可将主控处理器301的第二子集的寄存器306、307之内容储存到缓冲存储器313。如前文所述,寄存器302至307的第二子集的寄存器306、307中之一个寄存器(例如,寄存器307)可包含该跳转指令之地址。因此,于储存寄存器306、307之内容时,可将该跳转指令之地址储存到缓冲存储器313。然后,计算机系统300可将指示器位308设定为用来指示该计算机系统系处于该第二作业模式之值,例如,设定为值“关”。 [0129] 如果从属处理器321、331中之一个从属处理器执行该第一模式切换指令,则计算机系统300可停止主控处理器301以及从属处理器321、331中之指令的执行。在停止了所有处理器301、321、331中之指令的执行之后,可将主控处理器301的寄存器302至307之内容储存到缓冲存储器313,且可自主控处理器301的寄存器302至307的第二子集的寄存器306、307中之寄存器(例如,自寄存器306)读取缓冲存储器313之地址。此外,可将从属处理器321、331的寄存器322至325、332至335之内容以及或有的从属处理器321、331的运行状态位330、340之值储存到缓冲存储器313。
[0130] 在某些实施例中,无须将执行该第一模式切换指令的从属处理器 321、331之内容储存到该缓冲存储器。在这些实施例中,只有将另一从属处理器的寄存器之内容储存到缓冲存储器313。因此,如果第一从属处理器321执行该第一模式切换指令,则将第二从属处理器331的寄存器332至335之内容以及或有的除了从属处理器321、331以外在计算机系统300中提供的另外的从属处理器的寄存器之内容储存到缓冲存储器313。相反地,如果第二从属处理器331执行该第一模式切换指令,则该系统可将第一从属处理器321的寄存器322至325之内容储存到缓冲存储器313。然而,在这些实施例中,可将运行状态位330、340中之每一个运行状态位的值储存到缓冲存储器313。
[0131] 然后,可将其中包含该缓冲存储器的地址的主控处理器301的寄存器之内容(例如,寄存器306之内容)储存到暂时性寄存器,且在某些实施例中,可在缓冲存储器313中提供该该暂时性寄存器。此外,可将执行该第一模式切换指令的该处理器之识别号码储存到缓冲存储器313。例如,如果由第一从属处理器321执行该第一模式切换指令,则计算机系统300可将识别号码1储存到缓冲存储器313。如果由第二从属处理器331执行该第一模式切换指令,则计算机系统300可将识别号码2储存到缓冲存储器313。在其它实施例中,可使用不同的识别号码。
[0132] 然后,可将执行该第一模式切换指令的从属处理器321或331的个别寄存器322至325或332至335之内容分别写到主控处理器301的寄存器302至307中之第一子集的寄存器302至305。在某些实施例中,当将寄存器322至325或332至335的内容写到第一子集的寄存器302至305时,可覆写主控处理器301的寄存器302至307的第二子集的寄存器306、307之一部分或全部寄存器的内容。
[0133] 然后,计算机系统300可将主控处理器301的第一子集的寄存器302至305中之一个寄存器的内容(例如,寄存器305的内容)储存到缓冲存储器313。然后,可将该暂时性缓冲器的内容写到寄存器305。因此,缓冲存储器313之地址被储存在寄存器中,且该操作系统在发生中断或异常时可处理该寄存器之内容。然后,可将指示器位308设定为用来指示计算机系统300系处于第一作业模式之值(例 如,设定为值“关”),以便将计算机系统300切换到该串行操作模式。
[0134] 在某些实施例中,可将计算机系统300之组态设定成不可分割的作业之方式执行前文所述之步骤,以避免在执行该第一模式切换指令期间因中断或异常而造成之问题。 [0135] 在执行了该第一模式切换指令之后,该计算机系统可在该串行操作模式下执行一个或多个指令。在执行了前文所述之启动指令或将于后文中更详细说明的第二模式切换指令之前,计算机系统300可保持在该串行操作模式中。例如,计算机系统300可执行对计算机系统300的该操作系统之呼叫。
[0136] 计算机系统300可进一步包含第二模式切换指令,且第二模式切换指令适于将计算机系统300自该串行操作模式切换到该并行操作模式,并自缓冲存储器313读取处理器301、321、331的寄存器302至307、322至325、332至335的一部分或全部寄存器之内容、以及或有的从属处理器321、331的运行状态位330、340之值。如果从属处理器321、331中之一个从属处理器先前执行了该第一模式切换指令,则计算机系统300可额外地将主控处理器301的寄存器302至307中之至少一个寄存器的内容写到先前执行了该第一模式切换指令之从属处理器321、331。
[0137] 在某些实施例中,计算机系统300之组态可被设定成于执行该第二模式切换指令时执行下列步骤。首先,计算机系统300可检查控制寄存器位309。如果控制寄存器位309之值指示不容许计算机系统300的该并行操作模式,则产生非法指令错误,且将不执行任何进一步的行动。否则,计算机系统300可读取用来指示先前执行了该第一模式切换指令的处理器之识别号码。计算机系统300所执行的进一步之步骤可取决于是由主控处理器301或是由从属处理器321、331中之一个从属处理器执行了该第一模式切换指令。 [0138] 如果是由在某些实施例中可以0值的指示器号码指示之主控处理器301执行了该第一模式切换指令,则计算机系统300可自缓冲存储器313读取从属处理器321、331的寄存器322至325、332至335之内容、以及或有的运行状态位330、340之值。此外,则计算 机系统300可自缓冲存储器读取主控处理器301的寄存器302至307的第二子集的寄存器
306、307之内容。然后,可将其中包含该缓冲存储器的地址的主控处理器301的寄存器302至307的第一子集的寄存器302至305中之一个寄存器的内容与第二子集的寄存器306、
307中之一个寄存器的内容交换,以便将缓冲存储器313之地址储存在第二子集的寄存器
306、307。在某些实施例中,可交换寄存器305、306之内容。
[0139] 然后,计算机系统300可将指示器位308设定为用来指示计算机系统300系处于该并行操作模式之值。在某些实施例中,可将指示器位308设定为值“关”。然后,可恢复主控处理器301及从属处理器321、331中之任何从属处理器中之指令的执行,其中运行状态位330、340之值指示个别的从属处理器321、331在该第一模式切换指令被执行之前正在执行指令。
[0140] 如果该等从属处理器中可由大于零的识别号码的值指示之其中一个从属处理器先前执行了该第一模式切换指令,则可自缓冲存储器313读取从属处理器321、331的寄存器322至325、332至335之内容、以及运行状态位330、340之值,且可自主控处理器301的第一子集的寄存器302至305中之一个寄存器(例如,自寄存器305)读取缓冲存储器313之地址。在某些实施例中,只须自缓冲存储器313读取先前并未执行该第一模式切换指令的该从属处理器321、331的寄存器之内容。此外,计算机系统300可自缓冲存储器313读取主控处理器301的寄存器302至307的第二子集的寄存器306、307之内容。 [0141] 然后,可将包含缓冲存储器313的地址的寄存器(在某些实施例中,可以是寄存器305)之内容写到可在缓冲存储器313中提供的暂时性寄存器,且可自缓冲存储器313读取寄存器305之内容。然后,可将主控处理器301的寄存器302至307的第一子集的寄存器
302至305之内容写到先前执行了该第一模式切换指令的从属处理器321、331之寄存器。
因此,从属处理器321、331之寄存器可包含当计算机系统300在该串行操作模式下操作时对主控处理器的寄存器所作之修改。因此,可更容易在该从属处理器中继续于该串行操作模 式期间在主控处理器301上运行的执行绪之执行。例如,主控处理器301的寄存器302至307中之第一子集的寄存器302至305可包含当计算机系统300系处于该并列作业模式时可能被从属处理器321、331视为当计算机系统300在该串行操作模式下操作时发生的中断或异常有关之异常信息。
[0142] 然后,可自缓冲存储器313读取主控处理器301的寄存器302至307的第一子集的寄存器302至305之内容,且可将指示器位308设定为用来指示计算机系统300系处于该并行操作模式之值,且可恢复主控处理器301及从属处理器321、331中之那些从属处理器中之指令的执行,其中各自的运行状态位330、340之值指示当该第一模式切换指令被呼叫而将该计算机系统切换到该串行操作模式时系在个别的从属处理器321、331中执行指令。 [0143] 在某些实施例中,计算机系统300之组态可被设定成:以不可分割的作业之方式执行该第二模式切换指令的上述步骤,以避免于该第二模式切换指令的执行期间因中断或异常的发生而造成之问题。可将该第一模式切换指令及该第二模式切换指令用来实施可将计算机系统300在该平行与串行操作模式之间切换的程序。如果执行该第一模式切换指令,则在执行该启动指令或该第二模式切换指令之前,将在该串行操作模式下执行程序之进一步的执行。使用该第一模式切换指令及(或)该第二模式切换指令之程序可包含用来执行下列步骤之进一步的指令:在执行该第一模式切换指令之后,将其中储存缓冲存储器313的地址的该主控处理器的该寄存器302至307的寄存器305或另一寄存器之内容储存在系统存储器304中;以及在执行该第二模式切换指令之前,先自系统存储器304读取寄存器305之内容。可利用计算机系统300的该串行操作模式之标准储存及加载指令以执行上述步骤。在将寄存器305的内容储存在该系统存储器之后,该程序可使用主控处理器301的寄存器302至307的第一子集的寄存器302至305中之每一个寄存器。或者,可在执行该第一及(或)该第二模式切换指令之前,先将缓冲存储器313之地址储存在可自其加载寄存器305之变量。
[0144] 可利用主控处理器301及从属处理器321、331中提供的专门电 路或利用主控处理器301及从属处理器321、331中提供的微码而提供计算机系统300的上述之功能及指令。
[0145] 前文所揭示的该等特定实施例只是举例,这是因为熟悉此项技术者在受益于本发明的揭示之后,可易于以不同但等效之方式修改及实施本发明。例如,可按照不同的顺序执行前文所述之程序步骤。此外,除了在最后的权利要求书中所述者之外,将不受本说明书中示出的结构或设计的细节之限制。因此,显然可改变或修改前文中揭示的该等特定实施例,且所有此类变化将被视为在本发明之范围及精神内。因此,最后的权利要求书将述及本发明所寻求的保护。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈