在具有相应精确异常处理机构的数字计算机上的延迟异常仿真的制作方法

文档序号:6411897阅读:180来源:国知局
专利名称:在具有相应精确异常处理机构的数字计算机上的延迟异常仿真的制作方法
技术领域
本发明通常涉及到数字计算机领域,特别是涉及到在具有精确异常处理机构的数字计算机上对被延迟的异常处理机构进行仿真的领域。
由于每一程序都包括能够使计算机执行与数据规定元素相联系的规定操作的一系列指令,所以数字计算机要处理各种各样的程序。由于每种处理器都是根据在后面章节中将要描述的系统结构构成的,所以,可以得到各种各样的处理器以用在数字计算机系统之中,所述的系统结构描述了根据所述系统结构构成的处理器所希望执行的多种指令、各种指令格式、可以被进行处理的数据类型和格式、用于在指令处理期间可以被使用的各种寄存器的定义、在计算机存储器中甚麽样的信息将可以被访问以及根据所述系统结构构成的一个处理器如何处理在指令处理期间可以被检测到的异常状态。
还经常希望一种被称之为“仿真”处理器的处理器能够被称之为“主处理器” 的另一种处理器所仿真。主处理器通常通过多个被写入用于仿真处理器的处理程序产生一个与将要被仿真处理器产生的输出有效对应的输出对仿真处理器进行仿真。通常,所述仿真是通过将为由一个仿真处理器执行所产生的程序(“原始”程序)传送给一个可以被主处理器处理的程序(“变换后”程序)实现的。这个变换处理例如可以包括根据原始程序的指令和其它要素产生以主处理器的系统结构为基础的指令和其它要素,借此以提供变换后程序加以实现。所述变换例如可以通过主处理器本身执行、通过在同一个计算机系统或另一个计算机系统中的另一个处理器执行,并且,在一个变换程序的控制之下该变换可以被提供给对所述程序进行处理的主处理器。在执行这个变换的过程中,在原始程序中的每个指令或指令序列或各个组(即以仿真处理器的系统结构为基础的程序)可以被变换成由所述主处理器处理的一个或一系列或一组指令。当处理器开始处理原始程序时,尽管知道在处理进行过程中原始程序多个指令中的一个或一组指令可以被进行变换,但通常还是对原始程序的全部或所选择的多个部分执行变换处理。另外,如果仿真处理器的数据格式不能够被主处理器直接使用,可以对所述数据进行处理,以便将其从仿真处理器的格式转换成可由主处理器使用的格式。
如上所述,系统结构定义包括对一个根据所述系统结构构成的处理器如何对可以在指令处理期间检测到的异常状态进行处理的描述。研制了两种用于对异常状态进行处理的方法。在其中的一种代表如下多个处理器(即这些处理器的系统结构规定一个“被延迟的”异常处理模式)的方法中,假如在一个指令的处理期间检测到一个异常,那么,在所述处理器定序到对已经被指出有异常的一个指令之后的一个指令进行处理之后的某个点之前,所述异常处理器将不被启动。例如,在通常包括它的8086、8088、80286、80386、80486和“Pent iumTM”多线处理器的Intel Corporat ion x86一族微处理器中的异常处理方面,如果在一个浮点指令处理期间检测到一个异常状态,则微处理器将不启动用于那个异常的异常处理器,直到下一个浮点指令被处理为止。这种方法的一个优点在于如果微处理器没有对在检测到所述异常状态之后的另一个浮点指令进行处理,就可以不必考虑这个异常状态,因而所述异常处理器就可以不必被启动。但是,所述处理器通常需要保证在被检测到一个异常状态的浮点指令之后保持某些异常状态信息长达某段时间,所以,如果所述异常处理器最终被启动的话,它具有对异常进行处理所需要的信息。
另一方面,在第二种代表如下多个计算机,即所述多个计算机的处理器遵守“精确”异常处理模式的方法中,如果在一个指令处理期间检测到一个异常状态,所述异常处理器被立即启动以跟随对所述指令执行处理的操作。根据这种方法构成的处理器的某些执行过程例如包括根据在SPARCInternationa l第9版SPARC Inc[David L.Veaver和TomGermond(eds)]The SPARC Archi tacture Manual Vers ion 9(Prent ice-Hall,1994)中描述(此后称之为“SPARC系统结构手册,第9版”)的系统结构的执行过程。这种方法的一个优点是由于在对出现异常状态的指令处理之后立即启动异常处理器,所以可以直接得到异常处理器所需要的异常状态信息并在对出现异常状态的程序指令进行处理之后不再需要保留所述的异常状态信息。但是,这种方法必须保证即使是在由所述处理器处理的顺序不再需要考虑所述异常状态的情况下,所述的处理器也总是处理所述的异常处理器。
但是,如果希望使遵循“精确”异常处理模式的主处理器能够仿真遵循“被延迟的”异常处理模式的仿真处理器,就会出现问题。如上所述,由于遵循精确异常处理模式的主处理器不能够以类似于遵循被延迟的异常处理模式的仿真处理器对异常进行处理的方式对异常进行处理,所以,要保证这种主处理器对这种仿真处理器进行正确的仿真是特别困难的。
本发明提供一种新的和经过改进的系统和方法,用于使用具有相应精确异常机理的处理器很方便地对被延迟的异常机理进行仿真。
总之,根据本发明的一个方面提供了包括精确异常处理处理器和控制子系统在内的一个数字计算机。精确异常处理处理器在指令的控制之下执行处理操作。精确处理处理器是根据精确异常处理模式构成的。其中,如果在指令方面检测到一个异常状态,则根据这个指令对所述的异常状态进行处理。该精确异常处理处理器还包括一个具有现行(pending)异常指示状态和非现行异常指示状态的现行异常指示器。控制子系统向精确处理处理器提供一系列指令,以执行至少一个来自仿真程序的指令的仿真。仿真程序是由被延迟的异常处理处理器执行的,该处理器是根据被延迟的异常处理模式构成的,其中,如果在对一个指令进行处理期间检测到一个异常,则根据一个后续指令对所述的异常状态进行处理。在仿真程序指令的仿真过程中,由控制子程序提供的一系列指令控制精确异常处理处理器去(i)确定现行异常指示器是否处于现行异常指示状态,如果是,则启动一个程序对现行异常进行处理并将现行异常指示器的状态规定为非现行异常指示状态,(ii)根据仿真处理指令执行处理操作,和(iii)如果在所述处理期间检测到一个异常状态,根据所述处理器的精确异常处理模式启动一个异常处理器,以将所述现行异常指示器的状态规定为现行异常指示状态,从而在对后续仿真程序指令进行处理操作的过程中对所述的异常状态进行处理。
如果控制子系统提供的指令使精确处理处理器能够根据来自仿真程序的某些指令执行这些处理,那么,精确异常处理处理器将可以被由所述控制子系统提供的指令所使能去(a)当在对提供给一个仿真程序指令的多个指令进行处理期间指出一个异常状态时,根据精确异常处理处理器的精确异常处理模式启动一个异常处理器,以控制现行异常指示器去指示现行异常状态的存在(该操作是由上述(iii)执行的),和(b)在后续仿真程序指令的处理期间对现行异常状态进行处理(该操作是由上述(I)执行的),借此,对正在仿真的被延迟的异常处理处理器的被延迟的异常处理模式进行仿真。
根据本发明的另一个方面,本发明提供了一种变换系统,用于响应至少一个由根据被延迟的异常处理模式构成的被延迟的异常处理处理器进行处理的仿真程序指令产生至少一个变换后的指令,其中,如果在一个指令的处理期间检测到一个异常,则利用根据精确异常处理模式构成的精确异常处理处理器借助于后续指令对所述异常状态进行处理,其中,如果借助于一个指令检测到一个异常状态,则借助于这个指令对所述的异常状态进行处理,所述精确异常处理处理器包括具有现行异常指示状态和非现行异常指示状态的现行异常指示器。至少一个变换后的指令控制所述精确异常处理处理器去(i)确定所述的现行异常指示器是否处于现行异常指示状态,如果是,则启动一个现行异常处理程序以对所述的现行异常进行处理;(ii)根据仿真处理指令执行处理操作;和(iii)如果在处理操作期间检测到一个异常状态,则根据精确异常处理处理器的精确异常处理模式启动一个异常处理器,以将现行异常指示器的状态规定到现行异常指示状态,从而使得在对后续仿真程序指令进行处理期间对所述的异常状态进行处理。
如果一系列这样的指令被提供给精确异常处理处理器,则所述精确异常处理处理器将被使能去(a)当在对被提供给一个仿真程序指令的多个指令进行处理期间指出一个异常状态时,根据精确异常处理处理器的精确异常处理模式启动一个异常处理器,以控制现行异常指示器去指示现行异常状态的存在(该操作是由上述(iii)执行的),和(b)在对后续仿真程序指令进行处理的过程中对所述的现行异常状态进行处理(该操作是由上述(i)执行的),借此,对正在被仿真的处理器的被延迟的异常处理模式进行仿真。
本发明特别是由权利要求指出的。该发明的上述和其它的优点通过下面参照附图的详细描述可以得到更好的理解,其中

图1的功能方框图示出了根据本发明构成的一个数字计算机系统;图2的流程图示出了根据本发明在将一个指令从一个原始程序变换到一个变换后程序过程中由所述数字计算机执行的操作;图3是流程图示出了在本发明第一实施例中所述数字计算机执行的操作;图4的流程图示出了在本发明第二实施例中所述数字计算机执行的操作。
图1的功能性方框图示出了根据本发明构成的一个数字计算机系统10。参看图1,数字计算机系统10包括一个用于和存储器子系统12、通常用标号13加以识别的一个或多个输入/输出子系统和存储器管理单元14进行通信的微处理器11。微处理器11对包括操作系统和一个或多个应用程序的程序进行处理,由于所述的指令和数据(此后将一概被称之为“信息”)被存储在存储器子系统12中,所以,所述的应用程序全都包括与数据相一致的多个指令。通常,微处理器11将从存储器子系统12中提取用于处理的指令和数据,并将经过处理的数据存储在存储器子系统12中。存储器子系统12包括一定数量的可寻址存储单元,在这些可寻址存储单元中,可以存储将被微处理器11处理的信息,并且,微处理器11将经过处理的数据存储在这些可寻址存储单元中。
数字计算机系统10可以包括一定数量不同种类的输入/输出子系统13、输入/输出子系统包括海量存储子系统、操作员输入和输出子系统、网络端口以及类似的子系统。海量存储子系统通常提供用于某种可以被微处理器11进行处理的信息的长项存储。海量存储子系统可以包括诸如磁盘或磁带子系统的装置、光盘存储装置和CD-ROM装置,信息可以被存储在这些子系统中和/或从这些子系统中提取。一个或多个海量存储子系统可以使用可以被擦除的可擦除存储介质并由一个操作员插入,这可以允许操作员将程序和数据装入到数字计算机系统10并从中获取经过处理的数据信息。在由微处理器11提供给它的控制信息的控制下,存储在海量存储子系统中的信息可以被传送给存储器子系统12以用于存储。在信息被存储在存储器子系统12中之后,微处理器11可以从存储器子系统1 2中提取它们以用于处理。在产生了经过处理的数据之后,微处理器11还可以使得海量存储子系统从存储器子系统12中提取经过处理的数据以用于相对长项的存储。
操作员输入/输出子系统通常提供一个到数字计算机系统10的操作员接口。特别是,操作员输入子系统例如可以包括一个键盘和鼠标装置,一个操作员可以使用这些装置相互作用地输入信息给数字计算机系统10以用于处理。另外,操作员输入子系统还可以提供一些处理机构,借此使操作员可以控制数字计算机系统10。操作员输出子系统可以包括诸如视频显示装置的多个装置,通过这些装置,数字计算机系统10可以在微处理器11的控制之下向操作员显示各种处理结果。另外,可以提供一个打印机以向操作员提供硬拷贝输出。
网络端口可以使得数字计算机系统10被连接到通信链路上,借此以连接在计算机网络中的计算机系统10。网络端口使计算机系统10可以将信息传送给位于网络中的其它计算机系统和装置(未示出)和从这些其它的计算机系统和装置中接收信息。在根据例如客户-服务器范例组织的一般网络中,网络中的某些计算机系统被指定为服务器,这些服务器存储用于由其它委托计算机系统进行处理的信息,借此以使得其它的计算机系统可以很容易地共享这些信息。需要对由特殊服务者保留信息进行访问的委托计算机系统将使得所述服务者可以将这些信息下装载到整个网络中。在对数据进行处理之后,委托计算机系统还可以将经过处理的数据返回到所述服务者以进行存储。除了所述计算机系统(包括客户和服务器)以外,一个网络还可以包括例如打印机和传真装置、视频和音频存储装置和分布装置以及其它类似装置,这些装置可以被连接在该网络中的各个计算机系统所共享。如一般情况,在网络中多个计算机系统之间进行互连的通信链路包括任何一种合适的信息传递介质,包括导线、光缆或用于在计算机系统之间传递信号的其它介质。由于每个载体都包括信息和用于识别将要接收该载体的装置的识别苻,所以计算机系统能够借助于在整个通信联络上传送的载体在整个网络中传送信息,与通常情况相同,输入/输出子系统13中的每一个通常都包括用于存储控制、状态和其它信息的多个寄存器和其它的数据存储元件(未示出),所述的信息被用于控制由相应输入/输出子系统13执行的操作并指出它的操作状态。微处理器11可以在所属寄存器和其它存储元件中存储信息,借此以类似于在存储器子系统12中存储数据的方式控制相应的输入/输出子系统13。类似的,微处理器11可以以类似于在存储器子系统12中提取信息的方式提取包含在输入/输出子系统13中的信息,从而确定相应输入/输出子系统的操作状态。
存储器管理单元14执行一定数量的操作。特别是,存储器管理单元14通常包括一个存储器超高速缓存器,该超高速缓存器高速缓存来自存储器子系统12并由微处理器11请求的信息。另外,如一般情况,当微处理器11请求将要被从例如存储器子系统12中提取的信息或提供在例如存储器子系统12中进行存储的经过处理的数据时,微处理器11将一个位于虚拟地址空间内的地址提供给存储器管理单元14。可以相对于所述的虚拟地址空间提供各种由微处理器11处理的应用程序。所述虚拟地址空间被分成多“页”,其中的每一页都包括有选定数量的虚拟可寻址存储单元,每个虚拟可寻址存储单元都被用于存储信息。应用程序虚拟地址空间的页通常被存储在海量存储子系统中,并且,当在处理过程需要时微处理器11可以使所述多页中单独的一页被拷贝到存储器子系统12中,对于那些在处理过程中被修改的页,微处理器11可以使它们被拷贝到所述海量存储子系统中以用于长项存储。
虚拟地址空间的各页可以被密置存储在由实际地址识别的存储器子系统12中的实际地址之中,并且,在响应来自微处理器11的请求而执行针对特定虚拟地址空间单元的访问操作时,存储器管理单元14将执行虚拟地址的一个转换以获得在执行针对存储器子系统12进行的访问操作中使用的实际地址。另外,存储器管理单元14还可以执行一系列的检查操作,包括确定所述页是否位于存储器子系统12之内的检查操作、是否允许应用程序对所述页进行访问(即;从所述页读出数据或向所述页写入数据)的检查操作、在所述虚拟空间内的所述页是否是有效页的检查操作等等。如果存储器管理单元14在检查操作中得到的是一个否定的确定,即;例如,如果它确定所述页并没有位于存储器子系统12之中、应用程序不具有适当的访问许可,或,如果它确定虚拟地址空间页的被请求页在应用程序的虚拟地址空间中是无效页,那么,它将产生一个ACCESS FAULT指示,微处理器11可以接收该指示并在执行所选择的故障处理操作的过程中使用该指示。
在一个实施例中,在所使用系统10中的微处理器11包括一个根据在SPARC系统结构手册第九版中描述的SPARC第九版系统结构构成的一个微处理器。微处理器11通常包括一定数量的元件,这些元件包括寄存器组20、一个或多个功能单元21、总线接口22和控制电路23。通常,在控制电路23的控制下,与存储器管理单元14协同工作的总线接口22从存储器子系统12或由特定输入/输出子系统13保持的数据存储单元中提取指令和数据以用于对所提取的数据进行处理和将其装载到寄存器组20中的寄存器内。另外,在控制电路23的控制下,功能单元21执行逻辑的整数和浮点算法并根据数据执行其它的处理操作,控制电路23使所述的数据能够被从寄存器组20传送给功能单元21,以产生经过处理的数据,这些经过处理的数据将被传送给寄存器组20以用于存储。控制电路23还可以使也是与存储器管理单元14协同工作的总线接口22将经过处理的数据从寄存器组20传送给存储器子系统12或由特定输入/输出子系统13保持的数据存储元件以用于存储。
在控制电路23控制下由微处理器11执行的操作被程序指令所控制,这些指令控制在寄存器组20中数据的装载、由功能单元21执行的操作和用于存储的从寄存器组20向存储器子系统12或输入/输出装置13的数据传送。在这些指令的处理期间,根据将要被处理的特定数据的值和将要被执行的特定操作,功能单元21可以产生一个EXC COND异常状态指示,该指示指出在请求进一步处理的处理期间已经遭遇到了异常状态。在现有技术中已经知道了一些异常状态,例如包括在一个整数或浮点运算中产生零、下溢或上溢、在浮点运算中产生非规格化结果等等。在响应产生EXC COND异常状态指示的过程中,控制电路23启动一个异常处理器,以确定异常状态的性质和响应它将要被执行的操作。
在一个特定的实施例中,微处理器11、特别是控制电路23从功能单元21中接收所述EXC COND异常状态指示,并启动一个处理器,以在该处理器完成与已经被产生有EXC COND异常状态指示的指令相关的操作之后立即对EXCCOND所述异常状态指示进行处理或在所述完成操作之后、在根据程序中的下一个指令启动处理操作之前对所述指示进行处理。因此,微处理器11被用做为一个“精确”异常处理模型。
在那个相同的实施例中,微处理器11被用在与一个处理器的仿真相关的数字计算机系统10中。该处理器被用做一个“被延迟的”异常处理模型。被用做这种被延迟的异常处理模型的一个微处理器家族是例如IntelCorporation的x86家族(该家族当前包括它的8086、8088、80286、80386、80486和“PentiumTM”线微处理器)。在被用做为被延迟的异常处理模型的微处理器中,在对已经产生有EXC COND异常状态的指令进行处理期间的微处理器至少要选择异常状态的类型、记录如下事实,即;EXC CONID异常状态指示已经产生,并且,在对所选择的后续指令进行处理期间启动一个异常处理器以对现行异常状态,即已经被指定给在前指令的异常状态进行处理。关于前述的Intel x86家族微处理器,被延迟的异常处理模型被用于指令的特定类型,特别是,用于浮点指令。因此,当在对浮点指令进行处理期间利用x86家族处理器产生EXC COND异常状态指示时,微处理器存储一个包括涉及到异常状态信息的异常指针,并在处理下一个浮点指令期间启动所述异常处理器。所述异常处理器可以使用一个在它的处理中在前保留的异常指针以识别特殊异常状态或将被处理的状态。
本发明提供了一种配置,借此,诸如被用做精确异常处理模型的处理器11被使能对诸如被用做被延迟的异常处理模型的Intel x86家族微处理器的微处理器进行仿真。被用做精确异常处理模型的微处理器11在这里被称做“主”微处理器11,和被用做被延迟的异常处理模型的微处理器被称做为“被仿真的”微处理器。特别是,本发明提供了一种配置,在对由转换程序26产生的“转换后”程序25进行处理的同时,所述配置使主处理器11在对写入仿真处理器中的“原始”程序27进行处理的过程中对由仿真微处理器(未示出)执行的操作进行仿真,并特别使主微处理器11去仿真所述仿真微处理器在浮点异常状态下进行处理的模式。
在那个操作中,主微处理器11响应在对以原始程序27的浮点指令为基础的变换程序25的指令进行处理期间产生的EXC COND异常状态指示有效地记录一个表示异常状态已经产生的指示,借此以指出存在有现行浮点异常状态。当对被产生用于原始程序27后续浮点指令的变换程序的一个指令或一组指令进行处理时,主微处理器11将被使能启动一个浮点异常处理器,以对现行浮点异常进行处理。
这些操作是由变换程序25使能的,所以,对于每一个将要被微处理器11仿真的原始程序27的浮点指令来讲,变换程序提供一个或多个指令去(i)使能主微处理器11确定是否存在有现行浮点状态,即确定一个浮点异常状态是否已经被记录以用于一个在前浮点指令,如果是,则使能主微处理器11对现行浮点异常进行处理。这个操作整体上或部分上是例如在这个处理期间由用于原始程序27的浮点指令变换程序26将作为变换程序25的一部分或作为可以被主微处理器11启动的一个异常处理器的一部分而提供的的一个或一系列指令使能的;(ii)使能主微处理器11根据原始程序27执行浮点指令所需的操作;和(iii)如果在上述(ii)中的处理期间产生一个异常状态指示,使能主微处理器11记录所述指示,借此以指示存在有现行浮点异常状态。另外,所述指令可以使能主微处理器11存储可能对现行浮点异常状态进行处理所必须的异常信息(诸如上述异常指针信息)。主微处理器11根据它的精确异常处理模式执行在(iii)中的操作,在这种情况下,所述操作至少部分地是由被提供给微处理器11的异常处理器使能的。
因此,下述的情况是合适的,即由变换程序26产生的变换后程序25提供多个指令,以使能主微处理器11(a)根据它的(主微处理器的)精确异常处理模式记录如下事实,即在对与原始程序相关的一个浮点指令进行处理操作期间已经产生了一个异常状态指示,借此以指出现行浮点异常状态的存在(该操作是由在上述(iii)中描述的一个或一系列指令使能的),和(b)在对用于原始程序的后续浮点指令进行处理期间对现行浮点异常状态进行处理(该操作是由在上述(i)中描述的指令使能的),借此,对正在被仿真的处理器的被延迟的异常处理模型进行仿真。
下面,利用示出了用于理解由主微处理器11根据变换程序26执行的操作流程的图2和示出了用于理解本发明的两个实施例操作流程的图3和图4解释由主微处理器11根据变换后程序25执行的操作,所述两个实施例中的每一个都示出了一个特定的系统结构,在由微处理器11进行处理的过程中,利用这种系统结构指出现行浮点异常状态。
继续参看图1,主微处理器11保存有仿真微处理器寄存器组30,该寄存器组30通常包括多个驻留在仿真微处理器中并可以由用于仿真微处理器的一个应用程序或用于所述仿真微处理器的一个操作系统进行访问的寄存器。在仿真微处理器寄存器组30中的寄存器例如可以包括仿真微处理器的通用寄存器组31、用于存储如上所述根据异常处理器的处理将被使用的异常指针的异常指针存储器32,还可以包括一个或多个仿真微处理器的控制和状态寄存器33。仿真微处理器11可以将仿真微处理器寄存器组30保存在它的存储器子系统12之中或它自己的寄存器组20之中。
另外,根据将在下面结合图3的流程描述的一个本发明实施例,主微处理器11保存一个将被用于指示存在有现行故障状态的浮点异常标记34。在图1中,浮点异常标记34被表示为包含有主微处理器11的一部分,但是,下面的做法是适当的,即它可以包括位于系统10中任何一个位置处的一个元素,诸如可以例如是位于仿真微处理器组30中的多个寄存器。通常,主微处理器11响应在一个浮点指令处理期间由功能单元21产生的EXC COND异常状态指示使能设置浮点异常标记34,借此以指出一个现行浮点异常状态的存在,和保留较晚在现行浮点异常状态的处理过程中将被使用的信息。需要被保留的信息可以装入到例如位于仿真微处理器寄存器组30中的异常指针存储器32内。如上所述,根据“精确”异常处理模式构成的主微处理器11和浮点异常标记34的设置以及与较晚使用信息的保留可以包括由主微处理器11的“精确”异常处理器响应EXC COND异常状态指示的产生所使能的操作。
在主微处理器11设置了浮点异常标记和保留了异常信息之后,根据顺序它将开始对变换后程序25的一个指令或多个指令进行处理,所述变换后程序25是由变换程序26产生的并用于原始程序27的下一个指令。在变换后程序25的每个指令或每一系列指令开始时,为了对原始程序27的每个浮点指令进行仿真,主微处理器11根据浮点异常标记34的状态确定是否存在有现行浮点异常状态,借此,确定是否产生了用于在前浮点指令的异常状态指示。如果存在有现行浮点故障状态,变换后程序的顺序将使微处理器11能够启动一个程序以对现行浮点异常状态进行处理,在此之后执行对与原始程序相关的当前浮点指令进行处理的操作。因此,变换后程序使得主微处理器11能够以延迟方式对异常状态进行处理,该处理方式类似于仿真微处理器对异常状态进行处理的方式。
特别是,如果主微处理器11在开始执行与浮点指令相关的操作时确定设置了浮点异常标记34,那么,主微处理器11将启动一个处理器以对所述的浮点异常状态进行处理,该浮点异常状态是由在前保留在异常指针存储器32中的异常指针表示的,在这点处被启动的处理器可以构成一个浮点异常处理器,该浮点异常处理器通常是由仿真微处理器进行处理的,它可以被主微处理器11进行仿真。另外,该处理器还可以构成一个程序,该程序通常被主微处理器11调用以对由在前保留在异常指针存储器32中的异常指针指出的那种异常状态进行处理。在另一种情况下,在对浮点异常处理器的处理之后,主微处理器11通常将使能浮点指令(即在已经产生了EXC COND异常状态指示的浮点指令之后的浮点指令)所需的操作。
另一方面,如果主微处理器11开始与执行浮点指令相关的操作时确定没有设置浮点异常标记34,那么,就不会产生与各种浮点指令相关的EXC COND异常状态指示。在这种情况下,主微处理器11将旁路所述的浮点异常处理器和直接定序到浮点指令所需要的操作。因此,由于用于在前浮点指令的现行浮点异常状态的存在是由浮点异常标记34指出的,所以,被用做精确异常处理模型的主微处理器11将对在开始下一个浮点指令进行处理时指定给一个特定浮点指令的浮点异常进行处理,其处理模式与具有被主微处理器11进行仿真的仿真处理器特征的被延迟的异常处理模型相同。
在一个实施例中,微处理器11是根据SPARC系统结构菜单第九版中描述的SPARC Version 9构成的,浮点异常标记34可以包括例如一个“浮点使能”标记,该标记可以被结构成使能和禁止功能单元21中的一项浮点功能。另外,在原始程序27中的每个浮点指令通常可以被在变换后程序25中的至少一个浮点指令所仿真。在那个实施例中,如果不存在现行故障状态,将设置一个浮点使能标记,该标记使能由浮点功能单元执行的操作。另一方面,如果存在有一个现行故障状态,那么,浮点使能标记将被清除,通常这将禁止由浮点功能单元执行的操作。(很明显,这里所描述的浮点使能标记的状态对应于上述浮点异常标记34的状态)在那种情况下,假如当主微处理器11试图执行浮点指令时所述浮点使能标记被清零,那么,产生一个异常状态,并启动一个异常处理器。该异常处理器将在那个点处对现行浮点异常进行处理、设置浮点使能标记并使能主微处理器11重新开始对那个浮点指令进行处理。
根据本发明的第二实施例,所述主微处理器11在对被仿真微处理器进行仿真的过程中还可以利用被仿真微处理器通用寄存器组30、仿真指针存储器32以及控制和状态寄存器33。但是,主微处理器11不能利用图10所示的浮点异常标记34去指出是否存在有一个现行浮点异常状态。而是在第二实施例中,主微处理器11通过控制到与当前执行程序相关的虚拟地址空间被选择页的访问允许指出一个现行浮点异常状态是否存在,反之,这些页将不被用于存储需要被进行处理的数据和指令。
特别是,假如在对在变换后程序25中提供并与在原始程序27中的浮点指令相关的一个或一系列指令进行处理期间产生了一个异常指示,微处理器11将被使能一个步骤,以禁止例如是向所述页写入的一个或一个序列的指令,借此以指出存在有一个现行浮点异常状态。在变换后程序25中提供并用于在原始程序27中每个浮点指令的一个或一系列指令可以包括一个存储指令,该指令使能微处理器11在所述页中存储数据。如果在对存储指令处理期间没有产生访问故障,微处理器11将确定不存在现行浮点异常状态,在这种情况下,它可以对在变换后程序25中的后续指令进行处理,特别是,执行对在程序27中浮点指令进行仿真所需要的操作。
另一方面,如果当在对存储指令进行处理时产生了一个访问故障指示,主微处理器11将确定存在有一个现行浮点异常状态。在这种情况下,主微处理器11能够启动一个异常处理器去处理这个现行浮点异常。在异常处理器进行处理期间,主微处理器11能够修改用于被选择页的访问允许与使能对它的访问,借此以建立一个指示现行异常状态存在的指示。在主微处理器11对异常处理器进行处理之后,它可以重复存储指令,由于现在是写入访问被使能,所以,这种重复可以在没有产生访问故障指示的情况下被完成。在主微处理器11完成对存储指令的处理之后,它可以对在变换后程序25中的后续指令进行处理以执行对在原始程序27中的浮点指令进行仿真所需要的操作。
很明显,变换程序26将在被变换程序中的一个位置内提供所述存储指令,在该位置内,主微处理器11将在需要对现行浮点异常状态进行处理的任何一个指令之前执行所述的存储指令。
特别是,当建立了一个被选择的页时,其中的所有存储位置都将被启动以含有一个或多个诸如“0”的预定值。根据该第二实施例,主微处理器11响应在浮点指令处理期间功能单元21产生的EXC COND异常状态指示使能存储器管理单元14随后控制用于被选择页的访问允许,从而,如果试图将数据存储到所述页中就会产生一个访问故障指示。在使能存储器管理单元14控制到所述页写入允许过程中由主微处理器11执行的操作接下来可以由一个异常处理器进行控制,该异常处理器是在根据主微处理器的精确异常处理模式进行处理期间起动的。此后,主微处理器11将定序到开始对下一个指令进行处理。
即将到开始用于执行原始程序27每个浮点指令的变换后程序25的指令时,主微处理器11将被提供一个指令以便启动存储操作,从而将诸如是一个“0”的被选择值存储到位于被选择页中一个存储位置内。如果存储器管理单元14确定变换后程序25已经允许在被选择页中存储数据,它将不产生指示存在有现行浮点异常状态的访问故障指示。在这种情况下,主微处理器11定序到为当前正在处理的原始程序浮点指令产生的变换后程序25的一个或多个指令处。
另一方面,如果存储器管理单元14确定变换后程序25不允许在被选择页中存储数据,那么,存储器管理单元14将产生一个访问故障指示,借此以指示存在有一个现行浮点异常故障。响应该异常故障指示,主微处理器11可以使用存储在仿真微处理器寄存器组30中的异常指针32启动一个浮点异常处理器的操作。在对浮点异常处理器进行处理之后,主微处理器11将定序到当前浮点指令(即在已经产生了EXC COND异常状态指示之后的浮点指令)所需要的操作处。
由此,由于存在有用于正在由所述被选择页的可访问性指示的一个在前浮点指令的现行浮点异常状态,所以,当在其特征在于具有一个正在被主微处理器11进行仿真的仿真微处理器的被延迟的异常处理模式中需要时,作为精确异常处理模型的主微处理器11对被指示用于在开始对下一个浮点指令进行处理处的特定浮点指令的浮点异常进行处理。
利用这种背景,下面将结合图2到图4对在各个实施例中由主微处理器11执行的操作进行描述。图2的流程图描述了例如在变换程序26控制下在产生用于与原始程序25的浮点指令相关的变换后程序25的一个或多个指令的过程中由主微处理器11执行的操作。图3和图4的流程图示出了在为原始程序27浮点指令产生的变换后程序25的一个或多个指令的控制下由主微处理器11执行的操作。图3一般示出了根据第一实施例,即使用浮点异常标记34指示存在有现行浮点异常状态的实施例中产生的一个或多个指令的控制下执行的操作。另一方面,图4的流程图一般地示出了根据第二实施例,即使用用于虚拟地址空间被选择页的访问允许去指示存在有现行浮点异常状态的实施例中产生的一个或多个指令控制下执行的操作。
图2示出了在产生用于与原始程序27相关的变换后程序25的指令的过程中在变换程序26控制下由例如主微处理器11[或在一个数字计算机系统(未示出)或在另一个数字计算机系统(也未示出)中的另一个微处理器]执行的操作。参看图2,变换程序26最初使能主微处理器11提取一个需要被变换的原始程序27的指令(步骤80)。变换程序26然后使能主微处理器11确定所提取的原始程序指令是否是一个浮点指令(步骤81)。如果在步骤81得到一个肯定的结果,变换程序26将使能主处理器11提供一个或多个指令以使能主微处理器11确定是否存在一个现行浮点异常,如果是,则对该现行异常执行处理。在步骤82或步骤81之后,如果主微处理器11在变换程序26控制之下确定所提取的原始指令不是一个浮点指令,该变换程序将提供一个或多个指令以使能主微处理器11产生多个指令去使能用于将被执行的被提取原始程序指令所需要的操作(步骤83)。另外,当对变换后程序25进行处理时,如果在对步骤83产生的指令进行处理期间产生一个异常状态指示,变换后程序25将使所述主微处理器11启动一个异常处理器以根据它的精确异常处理模式对该异常状态进行处理(步骤84)。在这方面,如果在步骤80提取的原始程序27的指令是一个浮点指令,当主微处理器11启动所述现行异常处理器时,它将记录这个异常状态指示,借此以指示存在有现行浮点异常状态,并且,可以存储对于现行浮点异常状态的处理可能需要的异常信息(诸如上述异常指针信息)。
如上所述,在根据在SPARC Archtecture Manual Vresion 9中描述的SPARC第九版构成的一个实施例中的微处理器11和浮点异常标记34包括一个“浮点使能标记”,该标记的状态可以使能和禁止位于功能单元21中的浮点功能单元。很明显,在步骤83中变换程序26使能所述主微处理器在变换后程序25中提供至少一个用于在原始程序中每个浮点指令的一个浮点指令。当第一变换后程序浮点指令被执行时,主微处理器11将有效测试浮点使能标记的状态并借此自动确定是否存在一个现行浮点异常状态。在那种情况下,变换程序26将不需要使能提供附加的指令去测试浮点使能标记(基本步骤82),并确实不需要使能测试被提取的指令(基本步骤81)去确定它是否是一个浮点指令。
另外,在那种情况下,下述是适当的,即在对现行浮点异常进行处理过程中在步骤82描述的操作可以被提供给与变换后程序处理相关的主微处理器的异常处理器使能。进而,结合步骤84描述的用于记录所产生异常状态指示和异常信息的操作可以被提供给用于与变换后程序处理相关的主微处理器11的异常处理器所使能。
图3一般地示出了在根据第一实施例,即使用浮点异常标记34指示存在有现行异常状态的实施例中产生的指令控制下执行的操作。参看图3,主微处理器11最初对变换后程序的指令进行处理以确定是否存在有浮点异常标记34(步骤101),该标记34接下来指出是否存在有一个现行浮点异常,该浮点异常是在执行原始程序27的在前浮点指令时指出的。假如主微处理器11在步骤101给出了一个肯定的确定结果,它将启动一个浮点异常处理器以对现行浮点异常进行处理(步骤102)。
在对现行浮点异常进行处理(步骤102)之后,或在步骤101之后,如果主微处理器11在那个步骤确定没有设置浮点异常标记34(接下来它指示没有现行浮点异常),则微处理器11对执行正在被处理原始程序的浮点指令所需要的一个或多个指令进行处理(步骤103)。在结合步骤103执行的操作期间的某个点处,被使能实际执行操作的功能单元21可以产生一个EXC COND异常状态指示,主微处理器11将在步骤104识别该异常状态指示。假如微处理器11在步骤104中确定已经产生了EXC COND异常状态指示,它将被定序到步骤109以设置浮点异常标记34,借此以指出现行浮点异常状态,或者在步骤104之后,如果主微处理器11在那个步骤中得到了一个否定的确定结果,那么主微处理器11将对用于原始程序27下一个指令的变换后程序25的一个或多个指令进行处理。
图4一般地示出了根据在第二实施例,即使用用于所述虚拟地址空间的被选择页指示存在有现行浮点异常状态的实施例中产生的一个或多个指令的控制下执行的操作。参看图4,主微处理器11最初对一个变换后程序25的存储指令进行处理以试图将存储数据存储在一个虚拟地址空间的被选择页中,并确定存储管理单元1 4是否产生了一个访问故障指示(步骤121),该访问故障指示指出是否存在有在执行原始程序27的一个在前浮点指令期间被指出的现行浮点异常。如果主微处理器11在步骤121获得一个肯定的结果,它将启动一个访问故障异常处理器对所述的现行浮点异常进行处理(步骤122)。
在对现行浮点异常进行处理之后(步骤122)或在步骤121之后,如果主微处理器11在那个步骤中确定存储器管理单元14在存储操作期间没有产生访问故障指示(这表示不存在有现行浮点异常),那么,主微处理器11对执行用于正在被处理的原始程序的浮点指令所需要的指令进行处理(步骤123)。在根据步骤123执行操作期间的某个点处,使能实际执行所述操作的功能单元21可以产生一个EXC COND异常状态指示,该指示可以在步骤124被主微处理器11所识别。如果主微处理器11在步骤124中确定没有产生EXC COND异常状态指示,它将被定序到步骤125以使被选择页不能够被执行与存储操作相关的访问,借此以指示现行浮点异常状态。在步骤125之后,或在步骤124,如果主微处理器11在那个步骤得到一个否定的确定结果,所述主微处理器11将对用于原始程序27的下一个指令的变换后程序25的一个或多个指令进行处理。
很明显本发明提供了很多的优点。特别是,它提供了一种配置,借此以使作为一个“精确”异常处理模型的微处理器能够正确地对用在根据浮点指令对异常进行处理的用做“被延迟的”异常处理模型的一个微处理器进行仿真。
虽然已经结合在对浮点指令进行处理期间产生的异常所进行的处理描述了本发明,但是很明显,本发明还可以被应用在对在多种其它指令产生的异常进行处理的情况,所述多种其它指令例如包括整函数指令、逻辑指令和程序流程控制指令。另外,虽然已经借助于一个在同种类型的后续指令处理期间对在一种特殊种类的指令(诸如一个浮点指令)的处理期间产生的现行故障状态进行处理的系统,但是很明显,在对一种特殊种类的指令进行处理期间产生的现行故障状态也可以在对任何一种后续指令进行处理期间进行处理。
另外,虽然已经借助于利用浮点标记34直接指示现行浮点异常状态的存在和间接指示现行浮点异常状态访问故障指示的存在的主微处理器11描述了本发明,但是很明显,在对变换后程序25的指令进行处理期间可以被访问和控制的各种其它系统结构也可以被用于指示现行浮点状态的存在。
很明显,可以对结合图1到图3所描述的实施例作出很多的变化和修改,例如,当在图1中描述的主微处理器11和存储器管理单元14由分立元件组成时,由于存储器管理单元14通过总线接口22与微处理器进行通信,所以很明显,主微处理器11和存储器管理单元14可以由一个或多个集成电路芯片集成到一起的单个元件组成。如果主微处理器11和存储器管理单元14被集成到一起,总线接口22和存储器管理单元14可以例如被综合为一个单一的元件。
很明显,根据被选择系统结构(诸如在前述SPARC ArchitectureManual,Version9的SPARC第九版系统结构)构成的、包括有根据本发明被延迟异常仿真能力的整个主微处理器11可以使用例如被提供有适当仿真程序或微码的其它系统结构的微处理器仿真。
另外,很明显,包括有根据本发明被延迟异常仿真能力的微处理器可以利用特殊目的硬件或一个或多个程序可控程序整体或部分地构成,所述装置的任何一部分都可以被适当的程序加以控制。
前述对本发明的特定实施例进行了限制。但是很明显,可以作出很多的变化和修改并达到本发明的全部或部分优点。所附权利要求的目的就是要覆盖具有本发明实质精神和范围的这些或那些变化和修改。
权利要求
1,一种数字计算机系统,包括A,一个精确异常处理处理器,用于在多个指令的控制下执行处理操作,该处理器是根据精确异常处理模型构成的,其中,如果在一个指令中检测到一个异常状态,则根据该指令对所述异常进行处理,所述处理器还包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器;和B,一个控制子系统,用于向所述精确异常处理处理器提供至少一个指令以便于对仿真程序指令的仿真,仿真程序指令被构成以便由一个被延迟的异常处理处理器进行处理,所述被延迟的异常处理处理器是根据被延迟的异常处理模型构成的,其中,如果在对一个指令处理期间检测到一个异常,则根据一个后续指令对该异常状态进行处理,由所述控制子系统提供的指令控制所述的精确异常处理处理器去i 确定现行异常指针是否处于现行异常指示状态,如果是,则启动一个现行异常处理程序对该现行异常进行处理;ii 根据被仿真的处理指令执行操作;和iii 如果在对一个指令进行处理期间检测到一个异常状态,则根据处理器的精确异常处理模型启动一个异常处理器以将所述现行异常指示器的状态确定到所述现行异常指示状态,从而在对后续被仿真程序指令的处理操作期间对所述的异常状态进行处理。
2,如权利要求1所述的数字计算机系统,其中,假如控制子系统确定现行异常指示器处于现行异常指示状态,则该子系统将使能所述的精确异常处理处理器将现行异常指示器确定到非现行异常指示状态。
3,如权利要求1所述的数字计算机系统,其中,所述被仿真的程序指令是 从一组能够被所述被延迟的异常处理处理器进行处理的被仿真的程序指令中选择的,该组被仿真的程序指令被分成多种类型,并且其中,控制子系统提供所述指令以根据被选择仿真程序指令类型的被仿真程序指令控制如权利要求1所述的精确异常处理处理器。
4,如权利要求3所述的数字计算机系统,其中,所述被选择仿真程序指令类型的指令包括浮点指令。
5,如权利要求1所述的数字计算机系统,其中,由所述控制子系统提供的指令是从一组指令中选择的,该组指令被分成多种指令,并且其中,所述现行异常指示器包括一个具有使能状态的标记,该使能状态对应于一个非现行异常状态并使得所述精确异常处理处理器能够执行所选择种类的指令,该标记还具有一个禁止状态,该禁止状态对应于现行异常状态并禁止精确异常处理处理器执行所选择种类的指令,控制子系统提供至少一个所选择种类的指令,该指令使得所述精确异常处理处理器能够对所述标记进行测试,并且,如果该标记处于禁止状态,则启动所述现行异常处理程序。
6,如权利要求5所述的数字计算机系统,其中,所述被选择指令类型的指令包括浮点指令。
7,如权利要求1所述的数字计算机系统,还包括一个存储器,用于存储由受至少一个所选择类型指令控制的精确异常处理处理器进行访问的信息,该信息还用于到可根据对具有访问允许状态和非允许状态的访问指示器的响应进行控制的所述存储器的一部分进行访问,所述访问指示器对应于所述现行异常状态,从而使访问允许状态对应于非现行异常状态,使非访问允许状态对应于现行异常状态,控制子系统提供至少一个所述被选择类型的指令,该指令使精确异常处理处理器能够测试访问指示器,并且,如果所述访问指示器处于非访问允许状态,将启动所述现行异常处理程序。
8,如权利要求7所述的数字计算机系统,其中,所述的存储器被分成多页,在这些页中,所述存储器的至少一部分包括所述多页中一被选择的页。
9,如权利要求7所述的数字计算机系统,其中,所述被选择种类的至少一个指令包括一个存储指令,该存储指令使得精确异常处理处理器能够执行将所述指令存储到所述存储器中的存储操作。
10,一种用于连接到精确异常处理处理器的控制子系统,所述精确异常处理处理器在多个指令的控制之下执行处理操作,岁数紧缺异常处理处理器是根据精确异常处理模型构成的,其中,假如在一个指令中检测到一个异常状态,根据这个指令对所述异常状态进行处理,该精确异常处理处理器还包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,控制子系统向所述精确异常处理处理器提供至少一个指令以便于至少一个被仿真程序指令的仿真,被仿真的程序指令被构成以便由被延迟的异常处理处理器进行处理,所述被延迟的异常处理处理器是根据被延迟的异常处理模型构成的,其中,如果在对一个指令进行处理期间检测到一个异常,利用一个后续指令对该异常进行处理,由所述控制子系统提供的至少一个指令控制所述的精确异常处理处理器去A 确定现行异常指示器是否处于现行异常指示状态,如果是,则启动一个程序以对该现行异常进行处理,并将现行异常指示器转换到非现行异常指示状态;B 根据被仿真的处理指令执行处理操作;和C 如果在所述的处理操作期问检测到一个异常状态,则根据精确异常处理处理器的精确异常处理模型启动一个异常处理器,从而在与后续被仿真程序指令相关的处理操作中对该异常状态进行处理。
11,如权利要求10所述的控制子系统,如果该控制子系统确定现行异常指示器处于现行异常指示状态,它还使能所述的精确异常处理处理器将现行异常指示器的状态转换到非现行异常指示状态。
12,如权利要求10所述的控制子系统,其中,所述被仿真的程序指令是从一组能够被被延迟的异常处理处理器进行处理的被仿真程序指令中选择的,该组被仿真的程序指令被分成多种类型,和其中,控制子系统提供指令以根据所选择被仿真程序指令种类的一个被仿真程序指令控制如权利要求10所述的精确异常处理处理器。
13,如权利要求12所述的控制子系统,其中,所述被仿真程序指令类型的指令包括浮点指令。
14,如权利要求10所述的控制子系统,其中,由所述控制子系统提供的指令是从一组指令中选择的,该组指令被分成多种类型指令,并且其中,现行异常指示器包括具有与非现行异常状态相对应并使能精确异常处理处理器执行被选择类型指令的使能状态和与现行异常状态相对应并禁止所述精确异常处理处理器执行所选择类型指令的禁止状态的一个标记,控制子系统提供至少一个所述被选择类型的指令,该指令使能精确异常处理处理器对所述标记进行测试,并且,如果该标记处于禁止状态,启动所述的现行异常处理程序。
15,如权利要求14所述的控制子系统,其中,所述被选择指令类型的指令包括浮点指令。
16,如权利要求10所述的控制子系统,还包括一个存储器,用于存储被与所选类型至少一个指令控制的精确异常处理处理器进行访问的信息,对可由响应具有访问允许状态和非访问允许状态的一个访问指示器进行控制的所述存储器的一部分进行访问,所述访问指示器相当于现行异常指示器,从而使得访问允许状态对应于非现行异常状态,非访问允许状态对应于现行异常状态,控制子系统提供所选择类型的至少一个指令,该指令使能精确异常处理处理器对访问指示器进行测试,和如果访问指示器处于非访问允许状态,则启动所述的现行异常处理程序。
17,如权利要求16所述的控制子系统,其中,所述的存储器被分成多页,且其中,所述存储器的至少一部分包括所述多页的被选择的一页。
18,如权利要求16所述的控制子系统,其中,所述被选择类型的至少一个指令包括一个存储指令,该指令使能精确异常处理处理器执行存储操作以将信息存储在所述存储器中。
19,一种用于连接到一精确异常处理处理去器的包括一计算机可读介质的仿真程序计算机程序产品,所述精确异常处理处理器在多个指令的控制下执行处理操作,该精确异常处理处理器是根据精确异常处理模式构成的,其中,如果在执行一个指令的过程中检测到一个异常状态,则根据该指令对该异常状态进行处理,所述精确异常处理处理器还包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,具有至少在一个代码载体上被编码的计算机可读介质控制所述精确异常处理处理器以便于至少一个被仿真程序指令的仿真,被仿真程序指令被结构的能够被被延迟的异常处理处理器进行处理,所述被延迟的异常处理处理器是根据被延迟的异常处理模型构成的,其中,如果在一个指令的处理过程中检测到一个异常,则根据后续指令对该异常状态进行处理,所述代码载体控制所述精确异常处理处理器去A 确定现行异常指示器是否处于现行异常指示状态,如果是,则启动一个程序对所述的现行异常进行处理,并将现行异常指示器转换到非现行异常指示状态;B 根据被仿真的处理指令执行处理操作;和C 如果在所述处理操作期间检测到一个异常状态,则根据精确异常处理处理器的精确异常处理模型启动一个异常处理器以将所述现行异常指示器转换到所述现行异常指示状态,从而在与后续仿真程序指令相关的处理操作期间对所述的异常状态进行处理。
20,如权利要求19所述的仿真程序计算机程序产品,仿真程序计算机程序产品包括至少一个代码载体(CODE DIVESE),用于假如它确定现行异常指示器处于现行异常指示状态,该代码载体将控制所述精确异常处理处理器把现行异常指示器转换到非现行异常指示状态。
21,如权利要求19所述的仿真程序计算机程序产品,其中,所述被仿真程序指令是从一组能够被所述被延迟的异常处理处理器进行处理的被仿真程序指令中选择的,所述一组被仿真程序指令被分成多种类型,和其中,仿真程序计算机程序产品包括至少一个代码载体,用于根据所选择被仿真程序指令类型的被仿真程序指令对如权利要求19所述的精确异常处理处理器进行控制。
22,如权利要求21所述的仿真程序计算机程序产品,其中,所述所选择被仿真程序指令类型的指令包括浮点指令。
23,如权利要求19所述的仿真程序计算机程序产品,其中,构成仿真程序计算机程序产品的代码载体是从一组代码载体中选择的,该组代码载体被分成多种代码载体类型,和其中,所述的现行异常指示器包括一个具有与非现行异常状态相应并使能精确异常处理处理器执行所选类型代码载体的使能状态和与现行异常状态相应并禁止精确异常处理处理器执行所述被选择类型装置的禁止状态的一个标记,所述仿真程序计算机程序产品提供至少一个所选择类型的代码载体,该装置使能精确异常处理处理器对所述标记进行测试,并且,如果该标记处于禁止状态,则启动所述现行异常处理程序。
24,如权利要求23所述的仿真程序计算机程序产品,其中,所述被选择指令类型的一个代码载体包括浮点指令。
25,如权利要求19所述的仿真程序计算机程序产品,还包括一个存储器,用于存储可由所选择类型至少一个代码载体进行控制的精确异常处理处理器进行访问的数据,对被响应具有访问允许状态和非访问允许状态的的一个访问指示器进行控制的存储器的至少以部分进行访问,所述访问指示器相当于所述现行异常指示器从而使访问允许状态对应于非现行异常状态,非访问允许状态对应于现行异常状态,仿真程序计算机程序产品提供所选类型的至少一个代码载体,该代码载体使能精确异常处理处理器对访问指示器进行测试,如果访问指示器处于非访问允许状态,则启动所述的现行异常处理程序。
26,如权利要求25所述的仿真程序计算机程序产品,其中,所述的存储器被分成多页,且其中,所述存储器的至少一部分包括所述多页中一个被选择的页。
27,如权利要求25所述的仿真程序计算机程序产品,其中,所选择类型的至少一个代码载体包括一个存储指令,且其中,该存储指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
28,一种控制精确异常处理处理器的方法,所述精确异常处理处理器在多个指令的控制下执行处理操作,该精确异常处理处理器是根据精确异常处理模型构成的,其中,如果在一个指令的处理过程中检测到一个异常状态,根据该指令对所述的异常状态进行处理,所述精确异常处理处理器还被提供有一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,所述的方法包括如下步骤由至少一个指令使能,用于使能所述精确异常处理处理器对至少一个被仿真程序指令进行仿真,被仿真的程序指令被构成以便被被延迟的异常处理处理器进行处理,所述被延迟的异常处理处理器是根据被延迟的异常处理模型构成的,其中,如果在一个指令的处理期间检测到一个异常,则根据后续指令对该异常状态进行处理,所述指令控制所述的精确异常处理处理器去A 确定现行异常指示器是否处于现行异常指示状态,和如果是,则启动一个程序对该现行异常进行处理,并将现行异常指示器转换到所述非现行异常指示状态;B 根据被仿真处理指令执行处理操作;和C 如果在对一个指令进行处理期间检测到一个异常状态,则根据精确异常处理处理器的精确异常处理模型启动一个异常处理器以将所述现行异常指示器转换到所述现行异常指示状态,从而在后续仿真程序指令的处理操作期间对所述的异常状态进行处理。
29,如权利要求28所述的方法,所述方法还包括如果所述精确异常处理处理器确定现行异常指示器处于现行异常指示状态,则使能该精确异常处理处理器将现行异常指示器转换到非现行异常指示状态包括的步骤。
30,如权利要求28所述的方法,其中,所述的被仿真程序指令是从一组能够被所述被延迟的异常处理处理器进行处理的被仿真程序指令中选择的,所述一组被仿真程序指令被分成多种类型,和其中,所述方法还包括提供多个指令以根据所选择的被仿真程序指令类型的被仿真程序指令对如权利要求2 7所述的精确异常处理处理器进行控制的步骤。
31,如权利要求30所述的方法,其中,所述所选择的被仿真程序指令类型的指令包括浮点指令。
32,如权利要求28所述的方法,其中,被提供给所述精确异常处理处理器的指令是从一组指令中选择的,该组指令被分成多种指令类型,且其中,所述的现行异常指示器包括一个标记,该标记具有使能精确异常处理处理器对被选择类型的指令进行处理并与非现行异常状态对应的使能状态和禁止所述精确异常处理处理器执行所选择类型指令并与现行异常状态对应的禁止状态,该方法包括提供至少一个所选择类型指令的步骤,该指令使能精确异常处理处理器对所述标记进行测试,如果所述标记处于禁止状态,则启动所述精确异常处理程序。
33,如权利要求32所述的方法,其中,所述被选择指令类型的指令包括浮点指令。
34,如权利要求28所述的方法,还包括一个存储器,用于存储由至少一个所选择类型指令控制的精确异常处理处理器访问的信息,对可响应具有访问允许状态和非访问允许状态的一个指示器进行控制的所述存储器至少一部分进行访问,所述访问指示器相应于现行异常指示器,从而使访问允许状态相应于非现行异常状态,非访问允许状态相应于现行异常状态,所述方法包括提供至少一个所选择类型指令的步骤,该指令使能精确异常处理处理器对所述访问指示器进行测试,如果访问指示器处于非访问允许状态,则启动所述现行异常处理程序。
35,如权利要求34所述的方法,其中,所述的存储器被分成多页,且其中,所述存储器的至少一部分包括所述多页的被选择的一页。
36,如权利要求34所述的方法,其中,所述被选择类型的至少一个指令包括一个存储指令,该指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
37,一种变换系统,用于响应将要被一个根据被延迟的异常处理模型构成的被延迟的异常处理处理器进行处理的至少一个被仿真程序指令产生至少一个被一个根据精确异常处理模型构成的精确异常处理处理器进行处理的指令,在被延迟的异常处理模型中,如果在对指令进行处理期间检测到一个异常,则根据后续指令对该异常进行处理,在精确异常处理模型中,如果在执行一个指令处理期间检测到一个异常状态,则根据所述指令对该异常进行处理,所述精确异常处理处理器包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,所述变换系统包括一个变换程序指令发生器,用于响应所述至少一个被仿真指令产生至少一个指令,用于控制所述精确异常处理处理器去A 确定所述现行异常指示器是否处于现行异常状态,如果是,则启动一个现行异常处理程序对所述的现行异常进行处理;B 根据被仿真的处理指令执行处理操作;和C 如果在处理操作期间检测到一个异常状态,根据精确异常处理处理器的精确异常处理模型启动一个异常处理器,将所述现行异常指示器变换到现行异常指示状态,从而在后续被仿真程序指令的处理操作期间对所述异常状态进行处理。
38,如权利要求37所述的变换系统,其中,如果确定现行异常指示器处于现行异常指示状态,则至少一个指令还使能所述精确异常处理处理器将现行异常指示器变换到非现行异常指示状态。
39,如权利要求37所述的变换系统,其中,所述被仿真程序指令是从一组能够被所述被延迟的异常处理处理器处理的被仿真程序指令中选择的,该组被仿真程序指令被分成多种类型,且其中,至少一个指令根据所选择被仿真程序指令类型的被仿真程序指令控制如权利要求36所述的精确异常处理处理器。
40,如权利要求39所述的变换系统,其中,所述所选择的被仿真程序指令类型的指令包括浮点指令。
41,如权利要求37所述的变换系统,其中,至少一个指令是从一组指令中选择的,该组指令被分成多种指令类型,且其中,所述的现行异常指示器包括一个具有使能精确异常处理处理器执行所选择类型指令并与非现行异常状态相应的使能状态和禁止精确异常处理处理器执行所选择类型指令并与现行异常状态相应的禁止状态的标记。所选择类型的至少一个指令使能精确异常处理处理器对所述标记进行测试,如果该标记处于禁止状态,则启动所述现行异常处理程序。
42,如权利要求41所述的变换系统,其中,所述所选择指令类型的指令包括浮点指令。
43,如权利要求38所述的变换系统,还包括一个存储器,用于存储由所选择类型至少一个指令控制的精确异常处理处理器访问的信息,对可响应具有访问允许状态和非访问允许状态的访问指示器进行控制的所述存储器的至少一部分进行访问,所述访问指示器对应于现行异常指示器,从而使访问允许状态对应于非现行异常状态和非访问允许状态对应于现行异常状态,所述所选择类型的至少一个指令使能精确异常处理处理器对所述访问指示器进行测试,和如果访问指示器处于非访问允许状态,启动所述现行异常处理程序。
44,如权利要求43所述的变换系统,其中所述的存储器被分成多个页,和其中,所述存储器的至少一部分包括所述多个页的被选择的一个页。
45,如权利要求43所述的变换系统,其中,所选择类型的至少一个指令包括一个存储指令,该指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
46,一种变换系统,用于响应将要被一个根据被延迟的异常处理模型构成的被延迟的异常处理处理器进行处理的至少一个被仿真程序指令产生至少一个用于由一个根据精确异常处理模型构成的精确异常处理处理器进行处理的指令,在被延迟的异常处理模型中,如果在一个指令处理期间检测到一个异常,则根据后续指令对该异常状态进行处理,在精确异常处理模型中,如果在一个指令操作期间检测到一个异常状态,则根据该指令对所述异常状态进行处理,所述精确异常处理处理器包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,所述的变换系统包括A 变换处理器;和B 变换程序指令产生控制,用于响应所述至少一个被仿真指令控制所述的变换程序产生至少一个指令,以控制所述精确异常处理处理器去i.确定现行异常指示器是否处于现行异常指示状态,如果是,则启动一个现行异常处理程序对所述现行异常进行处理;ii.根据被仿真的处理指令执行处理操作;和iii.如果在一个处理操作期间检测到一个异常状态,根据处理器的精确异常处理模型启动一个异常处理器,以将现行异常指示器变换到所述现行异常指示状态,从而在与后续被仿真程序指令相关的处理操作期间对所述异常状态进行处理。
47,如权利要求46所述的变换系统,其中所述的变换后程序指令产生控制还包括所述的变换处理器,用于产生至少一个指令,假如确定现行异常指示器处于现行异常指示状态,该指令使能所述精确异常处理处理器将现行异常指示器变换到非现行异常指示状态。
48,如权利要求46所述的变换系统,其中,所述被仿真程序指令是从-组能够被所述被延迟的异常处理处理器处理的被仿真程序指令中选择的,该组被仿真程序指令被分成多种类型,且其中,至少一个指令根据所选择的被仿真程序指令类型的被仿真程序指令控制如权利要求4 5所述的精确异常处理处理器。
49,如权利要求48所述的变换系统,其中,所述所选择被仿真程序指令类型的指令包括浮点指令。
50,如权利要求46所述的变换系统,其中,至少一个指令是从一组指令中选择的,该组指令被分成多种指令类型,且其中,所述的现行异常指示器包括一个具有使能精确异常处理处理器执行所选择类型指令并与非现行异常状态相对应的使能状态和禁止所述精确异常处理处理器执行所选择类型指令并与现行异常状态相对应的禁止状态的标记,如果该标汜处于禁止状态,则所选择类型的至少一个指令使能精确异常处理处理器启动所述现行异常处理程序。
51,如权利要求50所述的变换系统,其中,所述所选择指令类型的指令包括浮点指令。
52,如权利要求46所述的变换系统,还包括一个存储器,用于存储可由一个被至少一个所选择类型指令控制的精确异常处理处理器进行访问的的信息,对可被响应一个具有访问允许状态和非访问允许状态的访问指示器进行控制的所述存储器的至少一部分进行访问,所述的访问指示器相当于现行异常指示器,从而使得访问允许状态对应于非现行异常状态,和非访问允许状态对应于现行异常状态,所述被选择类型的至少一个指令使能精确异常处理处理器对所述的访问指示器进行测试,和如果该访问指示器处于非访问允许状态,启动所述现行异常处理程序。
53,如权利要求52所述的变换系统,其中,所述的存储器被分成多页,和其中,所述存储器的至少一部分包括所述多页的一被选择的页。
54,如权利要求52所述的变换系统,其中,所述被选择类型的至少一个指令包括一个存储指令,该指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
55,一种变换后程序指令产生控制子系统,用于响应将被一个根据被延迟的异常处理模型构成的被延迟的异常处理处理器进行处理的至少一个被仿真程序指令对一个变换处理器进行控制,以产生至少一个用于被根据精确异常处理模型构成的一个精确异常处理处理器进行处理的指令,在被延迟的异常处理模型中,如果在一个指令的处理过程中检测到一个异常,则根据后续指令对该异常状态进行处理,在精确异常处理模型中,如果在执行一个指令的过程中检测到一个异常状态,则根据该指令对所述异常状态进行处理,所述精确异常处理处理器包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,所述的至少一个指令用于控制所述的精确异常处理处理器去A 确定现行异常指示器是否处于现行异常指示状态,如果是,启动一个现行异常处理程序对所述现行异常进行处理;B 根据被仿真处理程序执行处理操作;和C 如果在处理操作期间检测到一个异常状态,根据处理器的精确异常处理模型启动一个异常处理器以将现行异常指示器变换到所述现行异常指示状态,从而在用于后续被仿真程序指令的处理操作中对该异常状态进行处理。
56,如权利要求55所述的变换后程序指令产生控制子系统,如果确定现行异常指示器处于非现行异常指示状态,则控制所述变换处理器以进一步使能所述精确异常处理处理器将现行异常指示器变换到非现行异常指示状态。
57,如权利要求55所述的变换后程序指令产生控制子系统,其中,所述的被仿真程序指令是从一组能够被所述被延迟的异常处理处理器进行处理的被仿真程序指令中选择的,该组被仿真程序指令被分成多种类型,且其中,至少一个指令根据所选择的被仿真程序指令类型的被仿真程序指令控制如权利要求55所述的精确异常处理处理器。
58,如权利要求57所述的变换后程序指令产生控制子系统,其中,所选择的被仿真程序指令类型的指令包括浮点指令。
59,如权利要求55所述的变换后程序指令产生控制子系统,其中,至少一个指令是从一组指令中选择的,该组指令被分成多种类型,且其中,所述现行异常指示器包括具有与非现行异常状态对应并使能精确异常处理处理器执行所选择类型指令的使能状态和与现行异常状态对应并禁止精确异常处理处理器对所选类型指令进行处理的禁止状态的一个标记,所选类型的至少一个指令使能精确异常处理处理器对所述标记进行测试,如果该标记处于禁止状态,则启动所述现行异常处理程序。
60,如权利要求59所述的变换后程序指令产生控制子系统,其中,所选指令类型的指令包括浮点指令。
61,如权利要求55所述的变换后程序指令产生控制子系统,还包括一个存储器,用于存储可由至少一个所选类型指令控制的精确异常处理处理器进行访问的信息,到可被响应一个具有访问允许状态和非访问允许状态的访问指示器控制的所述存储器的与部分进行访问,所述访问指示器对应于所述现行异常指示器,从而访问允许状态对应于非现行异常状态,非访问允许状态对应于现行异常状态,所选类型的至少一个指令使能精确异常处理处理器对所述访问指示器进行测试,和如果所述访问指示器处于非访问允许状态,启动所述现行异常处理程序。
62,如权利要求61所述的变换后程序指令产生控制子系统,其中,所述存储器被分成多页,和其中,所述存储器的至少以部分包括所述多页的一个被选择的页。
63,如权利要求61所述的变换后程序指令产生控制子系统,其中所选择类型的至少一个指令包括一个存储指令,该指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
64,一种包括其上具有代码载体的计算机可读介质的变换后程序指令产生控制程序产品,用于控制变换处理器响应可由根据被延迟的异常处理模型构成的被延迟的异常处理处理器进行处理的至少一个被仿真程序指令产生至少一个可由根据精确异常处理模型构成的精确异常处理处理器进行处理的指令,在所述被延迟的异常处理模型中,如果在一个指令的处理过程中检测到一个异常,则根据后续指令对所述异常进行处理,在所述精确异常处理模型中,如果在一个指令处理过程中检测到一个异常状态,则根据该指令对所述异常状态进行处理,精确异常处理处理器包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,至少一个指令控制所述的精确异常处理处理器去A 确定所述现行异常指示器是否处于现行异常状态,和如果是,则启动一个现行异常处理程序对现行异常进行处理;B 根据被仿真程序指令执行处理操作;和C 如果在处理操作期间检测到一个异常状态,则根据处理器的精确异常处理模型启动一个异常处理器,以将所述现行异常指示器变换到所述现行异常指示状态,从而在用于后续被仿真程序指令的处理操作期间对所述异常状态进行处理。
65,如权利要求64所述的变换后程序指令产生控制计算机程序产品,还包括多个代码载体,用于当确定现行异常指示器处于现行异常指示状态时产生至少一个指令去控制所述变换处理器将现行异常指示器变换到非现行异常指示状态。
66,如权利要求64所述的变换后程序指令产生控制计算机程序产品,其中,所述被仿真程序指令是从一组能够被所述被延迟的异常处理处理器进行处理的被仿真程序指令程序中选择的,该组被仿真程序指令程序被分成多种类型,且其中,至少一个指令根据所选被仿真程序指令类型的被仿真指令控制如权利要求64所述的精确异常处理处理器。
67,如权利要求66所述的变换后程序指令产生控制计算机程序产品,其中,所选被仿真程序指令类型的指令包括浮点指令。
68,如权利要求64所述的变换后程序指令产生控制计算机程序产品,其中,至少一个指令是从一组指令中选择的,该组指令被分成多种类型,和其中,所述现行异常指示器包括具有与非现行异常状态相对应并使能精确异常处理处理器执行所选类型指令的使能状态和与现行异常状态相对应并禁止所述精确异常处理处理器执行所选类型指令的禁止状态的的一个标记,所选类型的至少一个指令使能精确异常处理处理器对所述标记进行测试,如果所述标记处于禁止状态,则启动所述的现行异常处理程序。
69,如权利要求68所述的变换后程序指令产生控制计算机程序产品,其中,所选指令类型的指令包括浮点指令。
70,如权利要求64所述的变换后程序指令产生控制计算机程序产品,还包括一个存储器,用于存储可被所选类型至少一个指令控制的精确异常处理处理器进行访问的信息,对可响应一个具有访问允许状态和非访问允许状态的访问指示器加以控制的所述存储器的至少一部分进行访问,所述访问指示器对应于所述现行异常指示器,从而所述访问允许状态对应于非现行异常状态,非访问允许状态对应于现行异常状态,所选类型的至少一个指令使能精确异常处理处理器对所述访问指示器进行测试,和如果访问指示器处于非访问允许状态,则启动所述现行异常处理程序。
71,如权利要求70所述的变换后程序指令产生控制计算机程序产品,其中,所述存储器被分成多页,和其中,所述存储器的至少一部分包括所述多页的被选择的一页。
72,如权利要求70所述的变换后程序指令产生控制计算机程序产品,其中,所选类型的至少一个指令包括一个存储指令,该存储指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
73,一种变换方法,用于响应由根据被延迟的异常处理模型构成的被延迟异常处理处理器进行处理的至少一个被仿真程序指令产生至少一个用于被根据精确异常处理模型构成的精确异常处理处理器进行处理的指令,在被延迟的异常处理模型中,如果在一个指令的处理过程中检测到一个异常,根据后续指令对异常进行处理,在精确异常处理模型中,如果在对一个指令进行处理的过程中检测到一个异常状态,则根据该指令对所述异常状态进行处理,所述处理器包括一个具有现行异常状态和非现行异常状态的现行异常指示器,所述变换方法使能所述变换处理器响应所述至少一个被仿真指令产生至少一个所述指令以控制所述精确异常处理处理器执行如下步骤A 提取所述至少一个被仿真程序指令;和B 产生所述指令,用于控制所述精确异常处理处理器去i.确定所述现行异常指示器是否处于现行异常指示状态,如果是,启动现行异常处理程序对所述异常进行处理;ii.根据被仿真程序指令执行处理操作;和iii.如果在处理操作期间检测到一个异常状态,根据处理器的精确异常处理模型启动一个异常处理器以将所述现行异常指示器变换到所述现行异常指示状态,从而在用于后续被仿真程序指令的处理操作期间对所述异常状态进行处理。
74,如权利要求73所述的变换方法,其中,如果确定现行异常指示器处于现行异常指示状态,至少一个指令还进一步使能精确异常处理处理器将现行异常指示器变换到非现行异常指示状态。
75,如权利要求73所述的变换方法,其中,所述被仿真程序指令是从一组能够被所述被延迟的异常处理处理器进行处理的被仿真程序指令中选择的,该组被仿真程序指令被分成多种类型,和其中,至少一个指令根据所选被仿真程序指令类型的指令控制如权利要求73所述的精确异常处理处理器。
76,如权利要求75所述的变换方法,其中,所选被仿真程序指令类型的指令包括浮点指令。
77,如权利要求73所述的变换方法,其中,至少一个指令是从一组指令中选择的,该组指令被分成多种类型,和其中,所述精确异常处理处理器还包括一个具有对应于非现行异常状态并使能所述精确异常处理处理器执行所选类型指令的使能状态和对应于现行异常状态并禁止所述精确异常处理处理器执行所选类型指令的禁止状态的标记,所选类型的至少一个指令使能精确异常处理处理器对所述标记进行测试,和如果该标记处于禁止状态,启动所述现行异常处理程序。
78,如权利要求75所述的变换方法,其中,所选被仿真程序指令类型的指令包括浮点指令。
79,如权利要求77所述的变换方法,所述精确异常处理处理器还包括一个存储器,用于存储可被所选类型至少一个指令进行控制的精确异常处理处理器进行访问的信息,对响应具有访问允许状态和非访问允许状态的访问指示器而被进行控制的所述存储器的至少一部分进行访问,所述访问指示器对应了现行异常指示器,从而使访问允许状态对应于非现行异常状态,非访问允许状态对应于现行异常状态,所选类型的至少一个指令使能精确异常处理处理器对所述访问指示器进行测试,和,如果访问指示器处于非访问允许状态,启动所述现行异常处理程序。
80,如权利要求79所述的变换方法,其中,所述存储器被分成多页,和,其中所述存储器的至少一部分包括所述多页的一个被选择的页。
81,如权利要求79所述的变换方法,其中,所述被选择类型的至少一个指令包括一个存储指令,该指令使能精确异常处理处理器执行将信息存储到所述存储器中的存储操作。
82,一种控制精确异常处理处理器的方法,所述精确异常处理处理器在多个指令的控制下执行处理操作,该精确异常处理处理器是根据精确异常处理模型构成的,其中,如果在执行一个指令处理的过程中检测到一个异常状态,则根据指令对所述异常状态进行处理,所述精确异常处理处理器还被提供有一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,所述方法包括被至少一个指令使能的如下步骤A 使能所述精确异常处理处理器确定现行异常指示器是否处于现行异常指示状态,如果是,启动一个程序对现行异常进行处理并将现行异常指示器变换到所述非现行异常指示状态;B 使能所述的精确异常处理处理器根据被仿真的处理指令执行一个处理操作;和C 如果在所述的处理操作期间检测到一个异常状态,使能所述精确异常处理处理器根据精确异常处理处理器的精确异常处理模式启动一个异常处理器,以将所述的现行异常指示器变换到所述现行异常指示状态,从而在用于后续被仿真程序指令的处理操作期间对所述的异常状态进行处理。
83,如权利要求82所述的方法,其中,所述至少一个指令使能所述精确异常处理处理器对一个仿真后的程序指令进行仿真,仿真后的程序指令被构成以便由一个根据被延迟的异常处理模型构成的被延迟的异常处理处理器进行处理,其中,如果在一个指令处理期间检测到一个异常,根据后续指令对所述的异常进行处理。
全文摘要
一种数字计算机系统包括精确异常处理处理器和控制系统。精确异常处理处理器在多个指令的控制下操作。该处理器是根据精确异常处理模型构成的,如果在一个指令处理期间检测到一个异常状态,则根据该指令对所属异常进行处理。该处理器还包括一个具有现行异常指示状态和非现行异常指示状态的现行异常指示器,控制系统向精确异常处理处理器提供多个指令,以便至少一个被仿真程序指令的仿真。被仿真程序指令能被延迟的异常处理处理器进行处理。
文档编号G06F9/455GK1164704SQ9710480
公开日1997年11月12日 申请日期1997年2月15日 优先权日1996年2月15日
发明者P·H·霍恩斯, D·戴斯 申请人:太阳微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1