专利名称:计算机系统的制作方法
技术领域:
本发明涉及一种通过实现高度的指令级别的并行性,而能够实现高性能的创新结构的计算机方式。
背景技术:
以往,作为通用计算机已经实用化的计算机方式,可以被大致分成堆栈式计算机和基于寄存器的计算机两种。堆栈式计算机,尽管程序的编码尺寸很小,在快速中断处理、上下文转接方面具有优势,但实现快速化却有困难。另一方面,尽管基于寄存器的计算机比较容易实现快速化,但在其它方面与堆栈式计算机相比劣势很多。
堆栈式计算机与基于寄存器的计算机不存在相互之间的程序的互换性,而且如上面所述的,无论哪种方式,都不具有绝对的优势。
现有技术中,通过堆栈操作,堆栈的下部不动而最上位(对应于最上位的入口/寄存器)移动,因此,必须有用于表示最上位的寄存器,一般要设置被称为TOS(Top of Stack)的寄存器。在例如申请号为01814965.0的中国专利所公开的技术中,设置了PP-A作为上述寄存器。
发明内容
本发明为解决现有技术的问题而做出,其目的在于实现一种与堆栈式计算机的指令格式和基于寄存器的计算机的指令格式都具有亲合性,且能实现高性能的计算机方式。
根据本发明的一个方面,提供了一种计算机系统,具有构成为可在各入口中保持数据的数据文件、和构成为可在各入口中保持该数据文件的入口地址的正向映射文件,并且按无序方式执行,该计算机系统具备用于构成操作数堆栈的先行状态的先行堆栈管理系统,该操作数堆栈的先行状态构成为,在每次发行指令/指令群时,在该正向映射文件中进行调整,以使得特定的入口总是对应于操作数堆栈的最上位,而与操作数堆栈的最上位以下的各个要素相对应的入口,按照地址的顺序,接续于该特定的入口之后。
根据本发明的另一个方面,提供了一种计算机系统,按无序方式执行,并具有数据存储机构,包括分别可保持数据的多个寄存器;和先行映射机构,包括分别可保持该数据存储机构的寄存器号码的多个寄存器,该计算机系统具备用于构成操作数堆栈的先行状态的先行堆栈管理系统,该操作数堆栈的先行状态构成为,在每次发行指令/指令群时,在该先行映射机构中进行调整,以使得特定的寄存器总是对应于操作数堆栈的最上位,而与操作数堆栈的最上位以下的各个要素相对应的寄存器,按照寄存器号码的顺序,接续于该特定的寄存器之后。
本发明中的计算机方式,基本上与可按无序(out-of-order)方式执行的超标量体系结构相同,其采用了长的位长度的指令格式,在其中可以记述操作群的内容以及虚拟的操作数堆栈或逻辑寄存器群的状态改变的内容。
本发明中的计算机系统,具有用于将数据写入各入口的数据保存装置,用于将数据保存装置的入口地址写入各入口的正向映射保存装置及完成映射保存装置,用于通过各个指令的映射保存装置的状态改变的内容写入各入口的状态改变队列,分别与状态改变队列的各个入口相对应而设置的保存操作群的执行状态的状态保存装置群,和将已发出的操作按无序方式进行处理的装置。尽管可以考虑到将上述已发出的操作按无序方式处理的手段有各种构成,但其基本上是通过作为保存已发出的操作内容的缓冲器的操作窗口,及执行操作的功能单元群等实现的。
本发明的计算机系统在每一循环中发出一个命令,并执行正向映射保存装置的内容改变,其改变的内容向状态改变队列的写入,以及操作群的发出(向操作窗口进行写入)。在发出产生结果数据的操作的情况下,应该保存结果数据的数据保存装置的入口被重新分配,其将成为目标寄存器。另外,在被发出的各个操作中,作为源寄存器的,是地址通过访问正向映射保存装置而被得到的数据保存装置的入口,或者,在相同指令中所包含的操作中的作为目标寄存器而被分配的数据保存装置的入口。
已发出的操作分别按无序的方式通过任意一个功能单元来执行,如果正常完成,则与此相对应地对上述状态保存装置群的对应部分进行重写。
通过相对应的状态保存装置,指示基于和状态改变队列的前端的入口内容相同的指令的发出的操作全部正常完成之后,根据状态改变队列前端入口的内容,应该对发出该指令时的正向映射保存装置的改变内容进行再现,并进行完成映射保存装置的内容改变,从该状态队列中去掉上述前端的入口。
本发明的计算机系统,可以在堆栈方式和寄存器方式这两种方式下工作。在将利用基于堆栈的处理器的机器语言编程的程序,转换成本发明的计算机系统的指令格式的情况下,为堆栈方式。另一方面,在将利用RISC或CISC的基于寄存器的处理器的机器语言编程的程序,转换成本发明的计算机系统的指令格式的情况下,为寄存器方式。由于堆栈式计算机或寄存器机的多个指令可以简单地转换成本发明的计算机系统中的1个指令,因此能够快速地处理广泛的程序。
在堆栈方式中,映射保存装置被用于保存一种堆栈的内容。在以往的堆栈式计算机中,操作数栈变为…,word3,word2,word1(右端为栈顶)的状态,对应着在本发明的计算机系统中,映射保存装置中所保存的内容按入口地址的顺序是a,b,c,…时,在数据保存装置中入口地址为a,b,c,…的各入口中,分别保存着word1,word2,word3,…的状态。
在寄存器方式中,映射保存装置作为与基于寄存器的超标量处理机中的寄存器映射表的等同物而被使用。
本发明对基于相同的目的的申请(国际申请号PCT/JP01/07442)中所公开的发明增加了一定的改进。其主要改进点为(1)与状态改变队列的各入口相对应地设置了保存操作群的执行状态的状态保存装置,及(2)在堆栈方式中,映射保存装置将堆栈的内容按照从其前端开始的入口地址的顺序进行保存。
图1是表示根据本发明的令人满意的计算机系统的基本结构的方框图。
图2是表示根据本发明的令人满意的计算机系统的指令格式的概念图。
图3是表示在堆栈方式中的正向映射保存装置、完成映射保存装置以及将在后面描述的2个栈底指针的关系的说明图。
图4是表示数据保存装置的入口的结构的说明图。
图5是表示将在后面描述的操作队列的入口的结构的说明图。
图6是表示状态改变队列的入口的结构的说明图。
图7是表示空闲表的内部结构的说明图。
图8~图14是具体表示在堆栈方式的一个操作例中,7个时间点的正向映射保存装置、完成映射保存装置、状态改变队列、操作队列、数据保存装置以及空闲表的内容的说明图。
图15~图21是具体表示在寄存器方式的一个操作例中,7个时间点的正向映射保存装置、完成映射保存装置、状态改变队列、操作队列、数据保存装置以及空闲表的内容的说明图。
具体实施例方式 下面,将说明根据本发明的令人满意的计算机系统。
(1)基本结构 首先说明本实施例的计算机系统的基本结构。
图1为计算机系统的方框图。10为指令高速缓存,11为数据高速缓存,12为数据缓冲器,20为指令取出单元,21为指令发出单元,3a为正向映射保存装置(正向映射文件),3c为完成映射保存装置,4为状态改变队列,5为操作队列,6为数据保存装置(数据文件),7为空闲表,80和81分别为运算单元0和1,82为转移单元,83为输入/存储单元。
在本发明的计算机系统中,必须与状态改变队列的入口相对应而设置的保存操作群的执行状态的状态保存装置,在本实施例中,通过后面将要说明的四个操作状态字段来实现。
本发明的计算机系统必须具备作为保存已发出的操作的内容的缓冲器的操作窗口。为实现该操作窗口,基本上有集中型和分散型两种方法,但本实施例的计算机系统为具备集中型操作队列的系统。
根据本发明的计算机系统,可以在堆栈方式和寄存器方式这两种方式下工作。在将以基于堆栈的处理器的机器语言所编程的程序转换成本发明的计算机系统的指令格式并执行的情况,为堆栈方式。另一方面,在将以RISC或者CISC的基于寄存器的处理器的机器语言所编程的程序转换成本发明的计算机系统的指令格式并执行的情况,则为寄存器方式。
本发明的计算机系统所具有的映射保存装置,其构成为将数据保存装置的入口的地址写入各个入口,并且在寄存器方式中,与基于寄存器的可以无序执行的超标量处理机中的寄存器映射表具有相同的功能。在本发明中,映射保存装置在堆栈方式中也具有同等的功能。
(2)指令格式 图2是表示本发明实施例的计算机系统的指令格式的概念图,无论在堆栈方式中还是在寄存器方式中,各个指令的格式基本上都由格式信息字段101、操作字段102和状态改变字段103构成。
在格式信息字段(FI字段)中,指示与该指令的长度以及该指令所包含的操作的数目等相关的信息。
在操作字段(Op字段)中,指示由算术逻辑运算和转移、输入/存储等所构成的操作群的内容。在本实施例中,各个操作以与RISC处理器中的指令相同的格式来记述。在本实施例中,假设一条指令最多包含4个操作(但在包含转移操作这样的情况下,则绝对没有一条指令包含4个操作的必要)。
在状态改变字段(SM字段)中,指示映射保存装置内容的改变。也就是说,在堆栈方式中时指示虚拟的操作数栈、及在寄存器方式中指示虚拟的逻辑寄存器群的状态改变。如后文所描述的,状态改变字段内部的格式,在堆栈方式和寄存器方式下是不同的。
在发出产生结果数据的操作的情况下,尽管用于保存结果数据的数据保存装置的入口被分配,但其入口的逻辑的所处位置是通过SM字段的内容来指示的。
本实施例的计算机系统,可以在每个循环中发出上述格式的一条指令。
(2-1)堆栈方式中的指令格式 下面,将说明堆栈方式中的指令格式。
假设本实施例的计算机系统中的数据保存装置的各入口,能够保存虚拟的堆栈式计算机的操作数栈的一个入口的保存数据。在本实施例中,假设映射保存装置的地址0,1,2,…的入口内容分别为s0,s1,s2,…时,通过将入口地址为s0,s1,s2,…的数据保存装置的各入口中所分别应该保存的数据顺序排列,来构成虚拟的堆栈式计算机的操作数栈的内容(S0与堆顶相对应)。
例如,对A*X+B/X进行计算,并将其结果作为变量Y存储在存储器中的程序,在堆栈式计算机中可以写成如下形式。
这里,变量A、B、X、Y的存储区域分别为局部变量1,2,4,5。
下面说明上述程序是如何转换成本实施例的计算机系统中的堆栈方式的指令的。
将上述程序分成2个指令群,针对各个指令,将操作的内容和映射保存装置中所加入的改变的内容分开写时,变为如下所示。
这里,将用于保存结果数据的新分配的数据保存装置的入口的地址,在各个指令群中依次设置成f1,f2,…。在本实例中,f1,f2,…中的每一个与在各个循环中从空闲表中所取出的内容相对应。
另外,对于在映射保存装置中所加入的改变,指示了堆栈所要增长的入口的量,和在栈顶附近所加入的改变内容(右端与栈顶相对应)。
指令1a的意思是,将局部变量<4>的数据输入,并写入与f1相对应的数据保存装置的入口,然后使得其元素被保存在映射保存装置中的堆栈增长一个入口的量,使新成为栈顶的入口的内容变为对应于f1的数据保存装置的入口的地址。指令1b的意思是,在对应于f1的数据保存装置的入口的数据中加入0,将该结果数据写入与f2相对应的数据保存装置的入口,使其元素被保存在映射保存装置中的堆栈增长一个入口的量,并将新成为栈顶的入口的内容变为与f2相对应的数据保存装置的入口地址,尽管如此,但对于在映射保存装置中加入的改变,也包含并表示了通过指令1a产生的改变内容。其它的指令也是一样的。
对于两个指令群中的每一个,将其内容集中,分成操作和映射保存装置的内容的改变来表示的话,则变为如下所示。
这是将上述程序转换成本发明实施例的计算机系统的堆栈方式的指令格式时的两个指令中的每一个的Op字段和SM字段的内容。这样,在堆栈方式的指令格式下,在SM字段中,指示了堆栈的成长量,并且也可以指示出表示更新后的栈顶附近的内容的符号序列。
(2-2)寄存器方式中的指令格式 下面,说明寄存器方式中的指令格式。
假设本实施例的计算机系统中的数据保存装置的各入口,能够保存虚拟的寄存器机的一个寄存器的保存数据。在本实施例中,假设映射保存装置的地址0,1,2,…的入口的内容分别为r0,r1,r2,…时,入口地址为r0,r1,r2,…的数据保存装置的各入口中,将分别保存虚拟的寄存器机的寄存器R0,R1,R2,…的数据。
例如,从存储器中将变量A,B,X的数据输入寄存器组,计算(A*X+B/X)*2,并将其结果作为变量Y存入存储器的程序,在寄存器方式中,可写成如下形式。
这里,变量A,B,X,Y的在存储器中的存储区域的地址,为分别在R0的内容加上100,200,400,500。
下面说明上述程序如何转换成本实施例的计算机系统中的寄存器方式的指令。
将上述程序分割成由每4条指令所构成的组,对于各个指令,将操作内容和加入在映射保存装置中的改变内容分开写时,将变为如下所示。
这里,与堆栈方式的情况相同,将用于保存结果数据的新分配的数据保存装置的入口的地址,在各个指令群中依次设置为f1,f2,…。
指令1a的意思是,输入(与r0相对应的数据保存装置的入口的数据+100)地址的数据,并写入到与f1对应的数据保存装置的入口中,然后将映射保存装置的地址1的入口的内容置换成与f1相对应的数据保存装置的入口的地址。指令1c的意思是,将分别与f1和f2相对应的数据保存装置的入口的数据相乘,将其结果数据写入与f3相对应的数据保存装置的入口中,将映射保存装置的地址5的入口的内容置换成与f3相对应的数据保存装置的入口的地址。其它指令也是一样。
对于两个指令组中的每一个,将4个指令内容集中,分成操作和映射保存装置的内容的改变来表示的话,则变为如下所示。
这是将上述程序转换成本发明实施例的计算机系统的寄存器方式的指令格式时的两条指令中的每一个的Op字段和SM字段的内容。在转换成第二条指令时,映射保存装置的地址5的入口的内容的置换虽然有两个,但作为SM字段的内容则只留下最后的内容。这样,在寄存器方式的指令格式下,在SM字段中,便可以列举出指示内容应该改变的映射保存装置的入口的地址和各改变内容的符号的组合。
以VLIW(very Long instruction word超长指令字)体系结构为基础的各指令也能够很容易地转换为本发明的计算机系统的寄存器方式的指令格式。
(3)堆栈方式 (3-1)堆栈方式中的动作所必需的功能和结构 这里,将按照本实施例的计算机系统的各构成元素,说明堆栈方式的动作中所利用的功能和结构。这些功能和结构,除一部分之外,在寄存器方式下也是必需的功能和结构。
(A)指令取出单元 指令取出单元具有图中未示出的程序计数器,该单元从指令高速缓存中取出指令,传递给指令发出单元。同时它还具有转移的预测与转换的执行的功能。
(B)指令发出单元 指令发出单元为了发出从指令取出单元所传递的指令,根据其内容,产生用于执行正向映射保存装置和数据保存装置的操作、向操作队列和状态改变队列写入的各种信号。
(C)映射保存装置 映射保存装置构成为在各个入口中写入数据保存装置的入口的地址。
在本发明实施例的计算机系统的堆栈方式中,通过映射保存装置及数据保存装置,可以虚拟地构成堆栈式计算机中应该具有的堆栈的最上位部分。也就是说,在堆栈方式中,映射保存装置被用于保存一种堆栈的内容。在现有的堆栈式计算机中,操作数栈为…,word3,word2,word1(右端是栈顶)的状态,对应于在本发明的计算机系统中,映射保存装置的地址0,1,2,…的入口的内容分别为a,b,c,…时,在数据保存装置中入口地址为a,b,c,…的各入口中,分别保存word1,word2,word3,…的状态。当操作数栈的规模变大时,剩余的部分便被保存在数据缓冲器中,以及进一步的数据高速缓存中。
本发明的计算机系统具有正向映射保存装置(AMF;AdvancedMapping File)和完成映射保存装置(CMF;completed Mapping File)两个相同形状的映射保存装置。
在本发明的计算机系统中,每当指令被发出,就对应于该指令的内容改变AMF的内容。也就是说,AMF反映了已发出的全部指令的内容。
另一方面,CMF则反映出以程序上的顺序结束后的全部指令的内容。本发明的计算机系统可以无序地执行包含在已发出的指令中的操作,但是,CMF的存在,一是为了保证正确地对例外进行处理,二是为了构成基于按次序结束的全部指令的状态。
各个映射保存装置中均存在着指示保存堆栈元素的最下位入口的被称作栈底指针的寄存器。在初始状态或者映射保存装置为空的情况下,栈底指针的值为-1。
图3为表示本实施例的计算机系统中的两组映射保存装置与栈底指针之间关系的说明图。两个映射保存装置AMF 3a及CMF 3c具有相同数量的入口,在各映射保存装置中的各自的入口中从上方开始顺序地标以0,1,2,…的地址。未加斜线的AMF/CMF的入口,保存有作为堆栈的结构元素的数据保存装置的入口的地址。如图3所示,将对应于AMF及CMF中的每一个而设置的栈底指针,分别取名为Ba和Bc。
(D)数据保存装置(DF;Data File) 数据保存装置(DF)构成为在各个入口中写入一个字的数据。
在本实施例中,DF的入口中被标以p00,p01,p02,…这样的地址。
图4是表示在本实施例的计算机系统中,DF6的各入口6(i)的结构的说明图。图中,i是入口的地址。DF6的各入口6(i)由数据字段61(i)和写入标志(WF;write Flag)字段62(i)构成。
实际的DF的硬件上构成是分别对上述的各字段所设置的寄存器文件的集合体。
DF的各个入口的数据字段可以写入一个字的数据。
在DF的各个入口中,当在数据字段中数据的写入完成时,WF字段被写入1,在未完成时被写入0。
(E)操作队列(OQ;Operation Queue) 操作队列(OQ)是保存未完成的已发出的指令中所包含的操作内容的缓冲器,它采用了循环型的FIFO队列的结构。
图5是表示本实施例的计算机系统中,OQ5的各个入口5(i)的结构的说明图。图中,i是入口的地址。OQ5的各个入口5(i)是由操作字段50(i)、目标字段51(i)、操作数字段52(i)、第1源字段53(i)、第1源写标志(SWF1)字段54(i)、第2源字段55(i)、第2源写标志(SWF2)字段56(i)、报表字段57(i)及发送标志字段58(i)所构成。
OQ的各个入口的操作字段被写入有操作码。
OQ的各个入口的目标字段,在产生结果数据的操作的情况下,被写入有用于保存该结果数据而分配的DF的入口的地址。
OQ的各个入口的操作数字段,在指令的Op字段中指示操作数的值的操作的情况下,被写入有该操作数的值。
OQ的各个入口的第1、第2源字段中的每一个,被写入有用于保存操作的源数据而分配的DF的入口的地址。
在OQ的各个入口中,第1、第2SWF字段中的每一个与第1、第2源字段相对应地设置。SWF 1/2字段在第1/2源字段中所指示的DF的入口中数据写入完成时,被写入1,未完成时被写入0。
OQ的各个入口的报表字段,被写入有与包含该操作的指令相对应的状态改变队列的入口地址和识别号码(A,B,C,D中的任意一个)。
在OQ的各个入口中,发送标志字段在操作还未被发送时被写入0,在已被发送时被写入1。
(F)状态改变队列(SMQ;State Modification Queue) 状态改变队列(SMQ)是保存根据尚未完成的已发出的指令中的每一个的映射保存装置的状态改变内容的缓冲器,它采用了循环型的FIFO队列的结构。在本实施例中,SMQ的各个入口对应于一条指令。
图6表示在本实例的计算机系统中,SMQ4的各个入口4(i)的结构的说明图。图中,i是入口的地址,SMQ4的各入口4(i)由状态改变(SM)字段40(i)、操作状态A(OS_A)字段41(i)、操作状态B(OS_B)字段42(i)、操作状态C(OS_C)字段43(i)及操作状态D(OS_D)字段44(i)所组成。
实际的SMQ的硬件上的构成是分别对上述各个字段所设置的寄存器文件的集合体。
SMQ的各个入口的SM字段,被写入有在所对应的指令的SM字段中所指示的映射保存装置的改变内容。
在SMQ的各个入口中,OS_A、OS_B、OS_C、OS_D中的每一个字段,被写入有与各自所对应的操作的执行状态有关的信息。在本实施例中,为了简单起见,当所对应的操作不存在或正常完成时写入1,其它情况下写入0。
(G)数据缓冲器 数据缓冲器是在各个入口中写入一个字的数据的循环型缓冲器。
(H)功能单元 如图1所示,本实施例的计算机系统具有运算单元0及1、转移单元及输入/存储单元(LSU;Load Store Unit)这4个功能单元。这些单元可分别进行流水线处理、相互独立并行地操作。
在堆栈方式中,LSU可以对数据缓冲器及数据高速缓存进行访问。
在本发明实施例的计算机系统的堆栈方式中,尽管通过映射保存装置及数据保存装置(DF),虚拟地构成了堆栈式计算机中所应该具备的堆栈的最上位的部分,但是,其下面的部分被存储在数据缓冲器中,进一步其下面的部分被存储在数据高速缓存中。LSU可以高速地对数据缓冲器进行访问,应该访问的变量数据被保存在数据缓冲器里的比例越大,计算的效率就可以越高。另外,通过在数据缓冲器中事先预存了适当的字数量的数据,能够有效地在后文将要描述的DF数据缓冲器——数据高速缓存之间进行溢出/装填操作。
LSU具有图中未示出的保存有指向初始的局部变量的指针的寄存器(vars寄存器)。在本实施例的计算机系统中,尽管局部变量的储存区域是数据缓冲器或者数据高速缓存,但在vars寄存器中,可以写入数据高速缓存中的相当的地址值。也就是说,既使全部或者一部分局部变量的数据实际上被保存在数据缓冲器中,也能够让假定全部的局部变量在溢出至数据高速缓存时的数据高速缓存中的地址值与各局部变量相对应。在输入/存储操作处理中,LSU利用vars寄存器的值进行地址计算,并判断作为对象的局部变量的储存区域是数据缓冲器还是数据高速缓存,并对该存储区域进行访问。
LSU进行程序中所指示的输入/存储操作,并且为了回避溢出/下溢,可以让处于由AMF/CMF及DF所构成的虚拟的部分堆栈的最下位的数据在其与数据缓冲器之间自动地溢出/装填。
为使1个字的数据从DF溢出给数据缓冲器,则必须满足下述两个条件(否则等待直到满足为止)。(a)、在AMF和CMF中由各个栈底指针(Ba、Bc)所指示的入口内容是一致的,(b)、与该一致的内容相同的DF的入口地址被写入任意一个源字段的入口在OQ中所保存的队列内不存在。对于条件(b),通过对作为包含在指令中的操作的源寄存器而被使用的DF的入口地址,在被保存在映射保存装置中的状态下剩余的情况设置一定的限制,通常可以满足。在指令体系中未设有这样的限制的情况下,计算机系统必须被构成为具备以OQ中的各源字段对作为上述一致内容的DF的入口地址进行对照,以便能够对上述条件(b)进行检查的功能。当上述两个条件被满足时,便可以使由入口的内容所表示的DF的入口中所写入的1个字的数据溢出至数据缓冲器中,其中该入口的内容是由AMF/CMF的栈底指针Ba/Bc所指示的。此时,从Ba及Bc的值中减1,并将上述DF的入口地址登录在FL中。
反之,为了从数据缓冲器向DF装填1个字的数据,从数据缓冲器里取出应该装填的一个字的数据,并对其分配空闲的DF的1个入口,在其数据字段中进行写入。WCF字段为1。进一步,对栈底指针Ba及Bc的值加1,并将上述被分配的DF的入口地址,分别写入到由AMF及CMF中的每一个加1后的栈底指针值所表示的入口中。
在数据缓冲器与数据高速缓存之间,也可以对应于数据缓冲器的空位进行适当的溢出/装填操作。
以上,尽管在随着指令的发出/完成AMF/CMF没有操作的前提下,对DF与数据缓冲器之间的溢出/装填操作进行了说明,但是,指令的发出/完成的操作与溢出/装填操作合起来,同时进行的结构也是很容易实现的。
此外,本发明的计算机系统也可以被构成为在DF与数据缓冲器之间以及在数据缓冲器与数据高速缓存之间,一次完成多字的数据的溢出/装填。
(I)空闲表(FLFree List) 空闲表(FL)的空闲,是指保存未被分配的DF入口的地址之意,在本实施例中,如图7所示,其包括指令完成用登录缓冲器(EBIC;Entry Buffer for Instruction Completion)71a、堆栈溢出用登录缓冲器(EBSS;Entry Buffer for Stack Spill)71b、目标用分配队列(AQD;Allocation Queue for Destinations)72a、以及堆栈装填用分配队列(AQSF;Allocation Queue for Stack Fill)72b。它们可以保存各自适当数量的DF的入口地址,AQD和AQSF为循环型的FIFO队列的结构。
在初始状态下,DF的各个入口地址被保存在AQD与AQSF中的任意一处。在需要新分配DF入口的情况下,空闲的DF入口的地址被从FL取出,但是随着指令的发出为了保存操作的数据结果而进行分配时,从AQD中取出,另外,在为了对其元素被保存在映射保存装置中的堆栈进行装填时,则从AQSF中取出。反之,对于被解除了分配的DF的各个入口,虽然其地址被登录至FL中,但随着指令的完成而被解除分配的被写入EBIC中,另外,随着其元素被保存在映射保存装置中的堆栈的溢出而被解除分配的则被写入EBSS中。被写入至EBIC/EBSS中的各个DF的入口地址,会立即根据AQD及AQSF所保存的内容量,移动至其中的任意一个。
(3-2)堆栈方式中的动作 接下来,说明本发明实施例的计算机系统的堆栈方式中的动作。
本实施例的计算机系统基本上通过下述4个阶段对指令进行处理,即(1)指令取出、(2)指令发出、(3)操作执行、(4)指令完成。下面按不同阶段说明动作内容。
(1)指令取出 在该阶段中,指令取出单元将指令从指令高速缓存中取出,并且随后确定取出指令的地址。接下来,将指令取出通常是从下一个地址值开始,但是在所取出的指令含有无条件转移操作,或者在含有条件转移操作时预测出要转移的情况下,在转移预测不准的情况下,或者发生例外的情况下,将改变取出的地址值。
(2)指令发出 在该阶段中,执行基于发出的指令的Op字段的内容的操作群的发出(向操作队列(OQ)的写入)、根据SM字段的内容的正向映射保存装置(AMF)及其栈底指针Ba的内容的改变,以及该改变的内容向状态改变队列(SMQ)的写入。此时,虽然指令中的s0,s1,s2,…中的每一个对应于堆栈的最上位,第2位,第3位,…,但是,在各个改变前的AMF地址0,1,2,…的入口的内容中,f1,f2,…中的每一个被分别置换成从空闲表(FL)中顺序取出的DF的入口地址。
对于AMF及Ba内容的改变可按如下进行。首先,将指令的SM字段中所指示的各符号按照上述要领分别置换成适当的DF的入口地址,并分别写入相对应的AMF的入口中。这里,AMF的地址0的入口与栈顶即指令的SM字段中的右端所指示的符号相对应,以下的地址依次是AMF的入口与堆栈元素相对应。对于在指令的SM字段中内容改变尚未被显示的部分,入口的内容只是移位堆栈增长量。也就是说,在堆栈增长量为g时,AMF的地址i的内容通过指令的发出被写入AMF的地址(i+g)中。另外,栈底指针Ba的值被加上堆栈增长量。
在发出指令中所包含的操作内容被写入的OQ各入口中,报表字段中被写入将依据相同指令进行写入的SMQ的入口地址和识别号码(以机器方式顺序地被标以A,B,C,D)。将0写入OQ的入口的发送标志字段。
在随着指令的发出(对应于f1,f2,f3,…)而新分配的DF的入口中,在WF字段中写入0。
在存储操作的情况下,其内容被写入OQ,并且被送至LSU。
与OQ的进行写入的源字段相对应的SWF字段首先为0,但对于从s0,s1,s2,…中的任意一个被置换的DF的入口地址的向源字段的写入中的每一个,在下一个循环中,该地址的DF的入口的WF字段的内容被读出,其如果是1,则OQ的对应的SWF字段便会被改变为1。
在根据所发出的指令而进行写入的SMQ的入口中,在存在着相对应的操作的操作状态字段中写入意味着尚未执行的0,在其它字段中写入1。
(3)操作执行 OQ中所保存的未被执行的操作,由于是可以执行的,因此会被发送到适当的功能单元进行处理。因而,操作的执行顺序是无序的。
在OQ中,如果存在通过所对应的SWF字段的内容,确认操作所必需的源数据已全部被写入DF的相应入口中的入口,则为了执行其所保存的操作,该入口的内容与访问DF所得到的源数据一起被送至适当的功能单元。此时,该OQ的入口的发送标志字段被改变为1。
对于产生输入操作和算术逻辑运算等的结果数据的操作,如果结果数据能够正常得到,则将结果数据写入作为目标的DF的入口的数据字段中,WF字段被改变为1。另外,以OQ中的各个源字段对上述作为目标的DF的入口地址进行对照,与一致的源字段相对应的SWF字段被改变为1 对于以存储操作为写入内容的OQ的入口,相同的内容在指令发出阶段被送至LSU。在指令发出阶段并未被确定的地址计算所必需的源数据,在本实施例中,在其向DF的写入在OQ中得到确认之后,立即被送至LSU。
无论是哪种操作,如果其执行是正常完成的话,就会根据报表字段的内容,将所对应的SMQ的入口的操作状态字段改变为1。
对于存储操作,尽管地址计算在操作执行阶段中以无序的方式执行,但为保证正确的例外处理,存储的执行要在指令完成阶段中进行。因此,在存储操作的情况下,如果存储数据和存储地址能一起确定,则所对应的SMQ的入口的操作状态字段便被修改为1。
在某种操作的处理中,发生例外事件的情况下,其信息会被写入到所对应的SMQ的入口的操作状态字段中,并且通知指令取出单元。
(4)指令完成 指令的完成按程序上的顺序来进行。
在SMQ队列的前端的入口中,如果所有操作状态字段的内容是1或者能成为1,则所对应的指令便可以完成。为了执行指令的完成,根据SMQ的前端的内容改变CMF及Bc的内容,在SMQ中将上述前端的入口从队列中去掉。这里,在指令被发出时对AMF所进行的内容改变在CMF中将再现。
此外,随着指令的完成,应该解除分配的DF的入口地址被分别登录至FL中。在堆栈方式中,应该解除分配的DF的入口群的地址由下面两个组构成。这两个组是,随着指令完成由于内容改变而未被保存在CMF中的,以及被写入到保存指令中所包含的操作的OQ的入口群的目标字段中但还未执行向CMF写入的。
在完成包含存储操作的指令的情况下,委托LSU进行存储的执行。这样,可以保证数据按程序上的顺序被存储。
以上,说明的是本发明实施例的计算机系统在堆栈方式中的动作的概要。
(3-3)堆栈方式时的动作例 下面,说明具体的动作例。现在,假设在本实例的计算机系统中,执行计算前述的Y=A*X+B/X的由下面两个指令所构成的程序。
图8~图14是在本实施例的计算机系统中,按照时间序列表示处理上述程序时的状态变化的说明图。下面,基于这些图对详细的动作进行说明。在图8~图14中,DF6、OQ5及SMQ4的各入口的结构分别与图4、图5及图6的相同。在映射保存装置的栈底指针所指示的入口以下的入口、和从形成FIFO队列结构的结构元素的队列退出的入口等,写入内容并未作为有意义的内容被保存的部分处,加有斜线。标有p##的地方意味着尽管DF的某个入口地址被写入,但在本动作例的说明中无需注意。另外,在本动作例中,为使说明简单,假设DF与数据缓冲器之间不进行溢出/装填操作。
假设作为FL的结构元素的目标用分配队列(AQD)72a及AMF3a的初始内容如图8所示。这里,在形成循环型FIFO队列结构的AQD 72a中,从队列开始的4个入口,指示分别与下面将要发出的指令中的f1,f2,f3,f4相对应。在AMF 3a及CMF 3c中,在各个入口中,从上面开始顺序标以0,1,2,…的地址,它们分别与s0,s1,s2,…相对应。
假设当计算机系统处于如图8所示状态时,进行指令1的发出。
根据指令1的Op字段的内容,将包含在指令中的操作的内容写入OQ,根据SM字段的内容改变AMF及Ba的内容,该改变的内容被写入SMQ。此时,指令中的f1,f2,f3,f4中的每一个分别被置换成从空闲表里依次取出的p26,p34,p42,p51。对于AMF内容的改变,在地址0,1的入口中,将分别从f1、f4被置换的p26、p51写入,在其以下的部分中,入口的内容只移位堆栈的增长量(2)(图8中AMF的地址0,1,…的各入口的内容分别被写入到地址2,3,…的各入口中)。在以图9中的OQ指示写入内容的4个入口中,在报表字段中,基于相同的指令1进行写入的SMQ的入口地址1和识别号码(依次为A,B,C,D)被写入。此外,这些OQ的4个入口的发送标志字段中被写入0。
在分别与f1,f2,f3,f4相对应的新分配的DF的地址p26,p34,p42,P51的各入口中,假设WF字段为0。
由于在SMQ的进行写入的入口的各操作状态字段中,任何一个都存在着相对应的操作,因此写入0。
这样,计算机系统将从图8所表示的状态达到图9所表示的状态。
在下一个循环中,接着指令1进行指令2的发出。
与指令1的情况一样,根据指令2的Op字段的内容将包含在指令中的操作内容写入OQ,根据SM字段的内容改变AMF及Ba的内容,并将该改变的内容写入SMQ。此时,指令中的s0,s1被置换为改变前(图9)的AMF的各个地址0,1的入口的内容p26,p51,而f1,f2,f3中的每一个则被分别置换为从空闲表中依次取出来的p16,p18,p57。由于SM字段中只指示了负的堆栈增长量(-2),因此对于AMF,入口内容仅移位这个量(图9中的AMF的地址2,3,…的各入口的内容分别被写入地址0,1,…的入口中)。
在分别与f1,f2,f3相对应的新分配的DF的地址p16,p18,p57的各入口中,假设WF字段为0。
进一步,由于指令2包含存储操作,因此其内容被写入OQ,并且被送至LSU。
这样,计算机系统到达如图10所示的状态。
保存在OQ中的尚未执行的操作,由于是可以执行的,因此被发送至适当的功能单元进行处理。
图11表示经过数个循环,在指令1之前所发出的指令全部完成、且包含在指令1中的4个操作也全部正常完成后的时间点的计算机系统的状态。在与指令1相对应的SMQ的地址1的入口中,所有的操作状态字段为1。另外,该时间点的CMF及Bc的内容,与指令1就要发出之前(图8)的AMF及Ba的内容相同(如果在DF与数据缓冲器之间进行溢出/装填操作,则指令发出时的Ba的值与指令完成时的Bc的值不一致)。从该状态开始,指令的完成按如下所述执行。
在图11中,由于SMQ的地址1的入口处于该时间点的队列的前端,因此根据该内容来改变CMF及Bc的内容。也就是说,在Bc的值中加2,在CMF的地址0,1的入口中分别写入p26,p51,在其以下部分中,入口的内容仅移位堆栈的增长量(2)。此外,在SMQ中上述前端的入口被从队列中去掉。
另外,随着指令1的完成应该解除分配的DF的入口地址被登录在FL中。在这种情况下,被写入到保存指令1中所包含的操作的OQ的入口群的目标字段中,但并未执行向CMF写入的p34,p42被写入到作为FL构成元素的指令完成用的登录缓冲器(EBIC)71a中(在这种情况下,并没有随着指令的完成由于内容改变而未被保存在CMF中的内容)。这样,计算机系统达到图12所示的状态。
图13表示计算机系统在进一步经过数个循环,包含在指令2中的三个操作正常完成后,对于最后的存储操作,存储数据与存储地址一起变为被确定完了的时间点的状态。被写入到EBIC中的p34,p42被移到AQD中。
从图13的时间点开始在一个循环之内,指令2的完成与指令1的情况相同地进行。在这种情况下,由于指令2包含存储操作,因此该存储的执行依赖于LSU。另外,随着指令的完成而应该解除分配的DF的入口地址被登录至FL中。在这种情况下,作为随着指令的完成由于内容的改变而未被保存在CMF中的p51,p26,和被写入至保存指令2中所包含的操作的OQ的入口群的目标字段中但并未执行向CMF的写入的p16,p18,p57被写入EBIC中。这样,计算机系统达到如图14所示的状态。
以上,本实施例的计算机系统中Y=A*X+B/X的计算完成。
(4)寄存器方式 (4-1)在寄存器方式中的动作所必需的功能和结构 在(3-1)中所叙述的功能和结构,除一部分之外,在寄存器方式中也是必要的。这里,只对与堆栈方式的情况的不同点做出说明。
首先,在寄存器方式中,映射保存装置采用的是在基于寄存器的超标量处理机中的寄存器映射表的等同物。
因此,与映射保存装置的栈底指针、数据缓冲器、输入/存储单元(LSU)的溢出/装填相关的功能、空闲表(FL)中的堆栈溢出用登录缓冲器(EBSS)以及堆栈装填用分配队列(AQSF)等,基本上是不需要的。
(4-2)寄存器方式中的动作 下面,说明本发明实施例的计算机系统在寄存器方式中的动作。
本实施例的计算机系统,在寄存器方式中与在堆栈方式中的情况一样,基本上按下述四个阶段进行指令处理,即(1)指令取出、(2)指令发出、(3)操作执行、(4)指令完成。下面,将按各阶段说明动作内容。
(1)指令取出 在该阶段中,指令取出单元从指令高速缓存中取出指令,并且随后确定取出指令的地址。
(2)指令发出 在该阶段中,进行根据发出的指令的Op字段的内容的操作群的发出(写入到操作队列(OQ)中)、根据SM字段的内容改变正向映射保存装置(AMF)的内容,以及被改变的内容的向状态改变队列(SMQ)的写入。此时,指令中的r0,r1,r2,…中的每一个分别被置换成改变前的AMF的地址0,1,2,…的入口的内容,f1,f2,…中的每一个则分别被置换成从空闲表(FL)中依次取出的DF的入口的地址。
对于AMF的内容的改变,按如下所述进行。对于指令的SM字段中所指示的AMF的入口地址和符号的组合中的每一个,其中的符号按上述要领分别被置换成适合的DF的入口的地址,而地址则被写入所指示的AMF的入口中。
在所发出的指令中包含的操作内容被写入的OQ的各入口中,根据相同指令进行写入的SMQ的入口地址和识别号码(通过机器依次被标以A,B,C,D)被写入到报表字段中。在OQ的入口的发送标志字段中写入0。
在随着指令的发出(与f1,f2,f3,…相对应)而新分配的DF的入口中,WF字段中被写入0。
在存储操作的情况下,其内容被写入OQ,并被送至LSU。
与OQ的进行写入的源字段相对应的SWF字段首先为0,但对于向从r0,r1,r2,…中的任何一个被置换的DF的入口地址的源字段的写入中的每一个,在下一个循环中,其地址的DF入口的WF字段的内容被读出,如果内容是1,则将OQ的对应的SWF字段改变为1。
在根据所发出的指令进行写入的SMQ的入口中,在存在相对应的操作的操作状态字段中,写入表示未执行的0,而在其它字段中则写入1。
(3)操作执行 由于保存在OQ中的未执行的操作,与堆栈方式中的情况一样,是可以执行的,因此其被发送至适当的功能单元进行处理。
(4)指令完成 指令的完成除了以下一点之外,与堆栈方式中的情况一样,按程序上的顺序进行。
首先,在发出指令之际,对AMF所进行的内容改变虽在CMF中被再现,但是其是依据在寄存器方式中的指令的SM字段内部的格式,即状态改变队列(SMQ)的写入格式而进行的。
另外,随着指令的完成,应该解除分配的DF的入口地址分别被登录至FL中。在寄存器方式中,应该解除分配的DF入口群的地址由以下两组构成。这两个组是,随着指令的完成将内容被重写的CMF的各入口的改变前的内容读出来的部分,以及被写入到保存指令中所包含的操作的OQ的入口群的目标字段中但尚未执行向CMF的写入的部分。
以上,是本发明实施例的计算机系统在寄存器方式中的动作的概要。
(4-3)寄存器方式中的动作例 接着说明详细的动作例。现在,假设在本实施例的计算机系统中,执行计算前述的Y=(A*X+B/X)*2的由以下两条指令构成的程序。
图15~图21是表示在本实施例的计算机系统中,处理上述程序时的状态变化按时间序列的说明图。下面,基于这些图对详细的动作进行说明。在图15~图21中,DF6、OQ5及SMQ4的各入口的结构分别与图4、图5和图6的相同。在从形成为FIFO队列结构的结构元素的队列退出的并未被保存为代表写入内容的部分处加有斜线。标有p##的地方,表示虽然DF中的某一个的入口地址被写入,但在本实例的说明中没有必要进行留意。
假设作为FL的结构元素的目标用分配队列(AQD)72a及AMF3a的初始内容为如图15所示。这里,在形成为循环型的FIFO队列结构的AQD 72a中,从队列前端开始的4个入口指示分别与随后要发出的指令中的f1,f2,f3,f4相对应。在AMF 3a及CMF 3c中,在各入口中,按从上面开始的顺序标以0,1,2,…的地址,并分别与r0,r1,r2,…相对应。
假设当计算机系统处于图15所示状态时,进行指令1的发出。
根据指令1的Op字段的内容将指令中所包含的操作内容写入至OQ,根据SM字段的内容改变AMF的内容,该修改的内容被写入至SMQ中。此时,指令中的r0被置换成改变前(图15)的AMF的地址0的入口的内容p12,而f1,f2,f3,f4中的每一个则分别被置换成从空闲表中依次被取出的p26,p34,p42,p51。对于AMF的内容的改变,在地址1,2,4,5的入口中,分别写入从f1,f4,f2,f3被置换的p26,p51,p34,p42。在以图16的OQ指示写入内容的4个入口中,在报表字段中,写入根据相同的指令1进行写入的SMQ的入口地址1和识别号码(依次为A,B,C,D)。此外,这些OQ的4个入口的发送标志字段中被写入0。
在分别与f1,f2,f3,f4相对应的新分配的DF的地址p26,p34,p42,p51的各入口中,假设WF字段为0(在与r0相对应的DF的地址p12的入口中,WF字段为1,并且数据“1000”已经被写入)。
在SMQ的进行写入的入口的各操作状态字段中,由于任何一个都存在着对应的操作,因此被写入0。
这样,计算机系统便从图15所示的状态达到图16所示的状态。
在下面的循环中,接着指令1发出指令2。
与指令1的情况相同,根据指令2的Op字段的内容将指令中包含的操作内容写入OQ,根据SM字段的内容改变AMF的内容,并将该改变的内容写入SMQ。
在分别与f1,f2,f3相对应的新分配的DF的地址p16,p18,p57的各入口中,假设WF字段为0。
另外,由于指令2含有一个存储操作,因此其内容被写入OQ,并被送至LSU。
还有,在前面循环的指令1的发出中,由于在OQ的源字段中写有从r0被置换的p12,因此其地址的DF的入口的WF字段的内容被读出,由于其为1,因此在OQ中与p12被写入的源字段相对应的SWF字段被改变成1。
这样,计算机系统达到如图17所示的状态。
由于保存在OQ中的尚未执行的操作是可以执行的,因此它们被发送到适当的功能单元进行处理。
图18表示的是经过数个循环,在指令1之前被发出的指令全部完成,且包含在指令1中的4个操作全部正常完成的时间点的计算机系统的状态。在与指令1相对应的SMQ的地址1的入口中,所有的操作状态字段为1。此外,该时间点的CMF的内容与指令1就要发出之前(图15)的AMF的内容相同。从该状态开始指令1的完成如下所述地执行。
由于图18中SMQ的地址1的入口处于该时间点的队列前端,因此根据其内容改变CMF的内容。也就是说,在CMF的地址1,2,4,5的入口中分别写入p26,p51,p34,p42。进一步,将SMQ中的上述前端的入口从队列中去掉。
另外,随指令1的完成应该解除分配的DF的入口地址被登录至FL中。在这种情况下,内容被重写的CMF的地址1,2,4,5的各入口的改变前的内容(p02,p10,p24,p60)被读出,这些被写入作为FL的结构元素的指令完成用登录缓冲器(EBIC)71a中(此时,没有已在保存指令1中所包含的操作的OQ的入口群的目标字段中写入,但并未执行向CMF写入的内容)。这样,计算机系统达到如图19所示的状态。
图20表示在进一步经过数个循环后,在指令2中所包含的3个操作正常完成,对于最后的存储操作,存储数据与存储地址一起变为被确定完了的时间点的计算机系统的状态。EBIC中所写入的p02,p10,p24,p60被移入到AQD中。
从图20的时间点开始在一个循环中,指令2的完成和指令1的情况相同地进行。在这种情况下,由于指令2包括存储操作,因此该存储的执行依赖于LSU。另外,随指令的完成应该解除分配的DF的入口的地址被登录至FL中。在这种情况下,内容被重写的CMF的各入口的改变前的内容被读出的p34,p42,和已在保存指令2中所包含的操作的OQ的入口群的目标字段中被写入,但尚未进行向CMF写入的p18被写入EBIC中。这样,计算机系统达到图21所示的状态。
以上,本实施例的计算机系统中的Y=(A*X+B/X)*2的计算完成。
(5)例外恢复 这里,说明有关本发明的计算机系统中的例外恢复。
在某个指令中所包含的操作的执行中发生例外事件的情况下,必须恢复该指令的发出时间点的状态(但是,在堆栈方式中,已进行的数据保存装置DF与数据缓冲器之间的溢出/装填的操作并未取消)。
为此,在发生了例外的指令之后所发出的指令全部被取消,该时间点的完成映射保存装置CMF(及其栈底指针Bc)的内容被复制到正向映射保存装置AMF(及其栈底指针Ba)中,进一步,根据从状态改变队列SMQ的队列的前端入口开始到与产生上述例外的指令相对应的入口为止的各内容对AMF(及Ba)的内容进行改变。
为了取消在某个指令以后所发出的所有指令,最好将与操作队列OQ及SMQ中应该被取消的指令群相对应的范围内的入口从队列中全部去掉,将作为应该取消的操作的目标寄存器的已分配的DF的入口地址中的每一个返还至FL中。
将作为应该取消的操作的目标寄存器的已分配的DF的入口地址中的每一个返还至FL中的方法基本上有两种。即,正面地在指令完成用登录缓冲器EBIC中进行顺序写入的方法,和重写指示目标用分配队列AQD的队列前端的指针的方法。在采用后一个方法的情况下,有必要将作为指示AQD的队列前端的指针值的有可能被写入的值预先保存在什么地方。为此,考虑(a)在SMQ中设置用于此目的的字段,且每当发出指令便进行写入,和(b)设置一种履历文件,每当包含条件转移操作的指令发出时便进行写入的方法。
如上所述,在本发明的计算机系统中,由于基本上能够恢复发生例外的指令发出的时间点的AMF(及Ba)的状态,因此可以正确地进行例外处理。
(6)其它实施例 本发明的计算机系统并非仅限于上述实施例,还存在着细部结构不同的各种实施例。例如,可列举下面几个。
(6-1)实施例A 本发明的计算机系统也可以被构成为,将根据现有的基于堆栈或者基于寄存器的处理器的指令格式的程序,预先贮存在指令高速缓存中,并在执行时在指令发出阶段的前期,转换成依照由(2)中所规定的那种指令格式。
(6-2)实施例B 本发明的计算机系统也可被构成为,在发出各个指令时,将该指令完成时必须解除分配的DF的入口的地址,或用于指定它们的信息预先记入到状态改变队列或专用的队列中。
(6-3)实施例C 也可以实现一种计算机系统,其构成为同时具备具有栈底指针的堆栈型的正向映射保存装置及完成映射保存装置,和寄存器型的正向映射保存装置及完成映射保存装置,并能够在指令状态改变字段中,同时指示堆栈型的映射保存装置的内容改变和寄存器型的映射保存装置的改变内容。
(6-4)实施例D 尽管在基于寄存器的超标量的体系结构中所考虑的各种变形很多,但在基于本发明的计算机系统中也可以应用。例如,可列举如下。
(1)通过在各功能单元的输入段中分别设置保留站(reservationstation)来实现操作窗口。
(2)在操作队列的后段设置调度程序。
(3)对整数数据用/浮点小数点数据用、或者通用/多媒体用这样的数据类型另外设置数据保存装置、操作队列、功能单元组、空闲表。
(4)构成为设置多组正向映射保存装置、完成映射保存装置、操作队列、状态改变队列等,可以并行处理多个线程。
在产业上的应用可能性 根据本发明,可以实现高性能的计算机系统。另外,以现有的基于堆栈的或者基于寄存器处理器的机器语言所编写的程序,也可以容易地转换成本发明的计算机系统的指令格式。
权利要求
1.一种计算机系统,具有构成为可在各入口中保持数据的数据文件、和构成为可在各入口中保持该数据文件的入口地址的正向映射文件,并且按无序方式执行,
该计算机系统具备用于构成操作数堆栈的先行状态的先行堆栈管理系统,该操作数堆栈的先行状态构成为,在每次发行指令/指令群时,在该正向映射文件中进行调整,以使得特定的入口总是对应于操作数堆栈的最上位,而与操作数堆栈的最上位以下的各个要素相对应的入口,按照地址的顺序,接续于该特定的入口之后。
2.一种计算机系统,按无序方式执行,并具有数据存储机构,包括分别可保持数据的多个寄存器;和先行映射机构,包括分别可保持该数据存储机构的寄存器号码的多个寄存器,
该计算机系统具备用于构成操作数堆栈的先行状态的先行堆栈管理系统,该操作数堆栈的先行状态构成为,在每次发行指令/指令群时,在该先行映射机构中进行调整,以使得特定的寄存器总是对应于操作数堆栈的最上位,而与操作数堆栈的最上位以下的各个要素相对应的寄存器,按照寄存器号码的顺序,接续于该特定的寄存器之后。
全文摘要
一种计算机系统,按无序方式执行,并具有数据存储机构,包括分别可保持数据的多个寄存器;和先行映射机构,包括分别可保持该数据存储机构的寄存器号码的多个寄存器,该计算机系统具备用于构成操作数堆栈的先行状态的先行堆栈管理系统,该操作数堆栈的先行状态构成为,在每次发行指令/指令群时,在该先行映射机构中进行调整,以使得特定的寄存器总是对应于操作数堆栈的最上位,而与操作数堆栈的最上位以下的各个要素相对应的寄存器,按照寄存器号码的顺序,接续于该特定的寄存器之后。
文档编号G06F9/38GK101178647SQ200710199529
公开日2008年5月14日 申请日期2003年8月27日 优先权日2002年8月30日
发明者一 关 申请人:一 关