国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      計(jì)算機(jī)系統(tǒng)的制作方法

      文檔序號(hào):6415481閱讀:143來源:國知局
      專利名稱:計(jì)算機(jī)系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種通過實(shí)現(xiàn)高度的指令級(jí)別的并行性,而能夠?qū)崿F(xiàn)高性能的創(chuàng)新結(jié)構(gòu)的計(jì)算機(jī)方式。
      背景技術(shù)
      以往,作為通用計(jì)算機(jī)已經(jīng)實(shí)用化的計(jì)算機(jī)方式,可以被大致分成堆棧式計(jì)算機(jī)和基于寄存器的計(jì)算機(jī)兩種。堆棧式計(jì)算機(jī),盡管程序的編碼尺寸很小,在快速中斷處理、上下文轉(zhuǎn)接方面具有優(yōu)勢,但實(shí)現(xiàn)快速化卻有困難。另一方面,盡管基于寄存器的計(jì)算機(jī)比較容易實(shí)現(xiàn)快速化,但在其它方面與堆棧式計(jì)算機(jī)相比劣勢很多。
      堆棧式計(jì)算機(jī)與基于寄存器的計(jì)算機(jī)不存在相互之間的程序的互換性,而且如上面所述的,無論哪種方式,都不具有絕對(duì)的優(yōu)勢。
      本發(fā)明的目的在于實(shí)現(xiàn)一種與堆棧式計(jì)算機(jī)的指令格式和基于寄存器的計(jì)算機(jī)的指令格式都具有親合性,且能實(shí)現(xiàn)高性能的計(jì)算機(jī)方式。

      發(fā)明內(nèi)容
      本發(fā)明中的計(jì)算機(jī)方式,基本上與可按無次序(out-of-order)方式執(zhí)行的超標(biāo)量體系結(jié)構(gòu)相同,其采用了長的位長度的指令格式,在其中可以記述操作群的內(nèi)容以及虛擬的操作數(shù)堆?;蜻壿嫾拇嫫魅旱臓顟B(tài)改變的內(nèi)容。
      本發(fā)明中的計(jì)算機(jī)系統(tǒng),具有用于將數(shù)據(jù)寫入各入口的數(shù)據(jù)保存裝置,用于將數(shù)據(jù)保存裝置的入口地址寫入各入口的正向映射保存裝置及完成映射保存裝置,用于通過各個(gè)指令的映射保存裝置的狀態(tài)改變的內(nèi)容寫入各入口的狀態(tài)改變隊(duì)列,分別與狀態(tài)改變隊(duì)列的各個(gè)入口相對(duì)應(yīng)而設(shè)置的保存操作群的執(zhí)行狀態(tài)的狀態(tài)保存裝置群,和將已發(fā)出的操作按無次序方式進(jìn)行處理的裝置。盡管可以考慮到將上述已發(fā)出的操作按無次序方式處理的手段有各種構(gòu)成,但其基本上是通過作為保存已發(fā)出的操作內(nèi)容的緩沖器的操作窗口,及執(zhí)行操作的功能單元群等實(shí)現(xiàn)的。
      本發(fā)明的計(jì)算機(jī)系統(tǒng)在每一循環(huán)中發(fā)出一個(gè)命令,并執(zhí)行正向映射保存裝置的內(nèi)容改變,其改變的內(nèi)容向狀態(tài)改變隊(duì)列的寫入,以及操作群的發(fā)出(向操作窗口進(jìn)行寫入)。在發(fā)出產(chǎn)生結(jié)果數(shù)據(jù)的操作的情況下,應(yīng)該保存結(jié)果數(shù)據(jù)的數(shù)據(jù)保存裝置的入口被重新分配,其將成為目標(biāo)寄存器。另外,在被發(fā)出的各個(gè)操作中,作為源寄存器的,是地址通過訪問正向映射保存裝置而被得到的數(shù)據(jù)保存裝置的入口,或者,在相同指令中所包含的操作中的作為目標(biāo)寄存器而被分配的數(shù)據(jù)保存裝置的入口。
      已發(fā)出的操作分別按無次序的方式通過任意一個(gè)功能單元來執(zhí)行,如果正常完成,則與此相對(duì)應(yīng)地對(duì)上述狀態(tài)保存裝置群的對(duì)應(yīng)部分進(jìn)行重寫。
      通過相對(duì)應(yīng)的狀態(tài)保存裝置,指示基于和狀態(tài)改變隊(duì)列的前端的入口內(nèi)容相同的指令的發(fā)出的操作全部正常完成之后,根據(jù)狀態(tài)改變隊(duì)列前端入口的內(nèi)容,應(yīng)該對(duì)發(fā)出該指令時(shí)的正向映射保存裝置的改變內(nèi)容進(jìn)行再現(xiàn),并進(jìn)行完成映射保存裝置的內(nèi)容改變,從該狀態(tài)隊(duì)列中去掉上述前端的入口。
      本發(fā)明的計(jì)算機(jī)系統(tǒng),可以在堆棧方式和寄存器方式這兩種方式下工作。在將利用基于堆棧的處理器的機(jī)器語言編程的程序,轉(zhuǎn)換成本發(fā)明的計(jì)算機(jī)系統(tǒng)的指令格式的情況下,為堆棧方式。另一方面,在將利用RISC或CISC的基于寄存器的處理器的機(jī)器語言編程的程序,轉(zhuǎn)換成本發(fā)明的計(jì)算機(jī)系統(tǒng)的指令格式的情況下,為寄存器方式。由于堆棧式計(jì)算機(jī)或寄存器機(jī)的多個(gè)指令可以簡單地轉(zhuǎn)換成本發(fā)明的計(jì)算機(jī)系統(tǒng)中的1個(gè)指令,因此能夠快速地處理廣泛的程序。
      在堆棧方式中,映射保存裝置被用于保存一種堆棧的內(nèi)容。在以往的堆棧式計(jì)算機(jī)中,操作數(shù)棧變?yōu)椤?,word3,word2,word1(右端為棧頂)的狀態(tài),對(duì)應(yīng)著在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,映射保存裝置中所保存的內(nèi)容按入口地址的順序是a,b,c,…時(shí),在數(shù)據(jù)保存裝置中入口地址為a,b,c,…的各入口中,分別保存著word1,word2,word3,…的狀態(tài)。
      在寄存器方式中,映射保存裝置作為與基于寄存器的超標(biāo)量處理機(jī)中的寄存器映射表的等同物而被使用。
      本發(fā)明對(duì)基于相同的目的的申請(qǐng)(國際申請(qǐng)?zhí)朠CT/JP01/07442)中所公開的發(fā)明增加了一定的改進(jìn)。其主要改進(jìn)點(diǎn)為(1)與狀態(tài)改變隊(duì)列的各入口相對(duì)應(yīng)地設(shè)置了保存操作群的執(zhí)行狀態(tài)的狀態(tài)保存裝置,及(2)在堆棧方式中,映射保存裝置將堆棧的內(nèi)容按照從其前端開始的入口地址的順序進(jìn)行保存。


      圖1是表示根據(jù)本發(fā)明的令人滿意的計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)的方框圖。
      圖2是表示根據(jù)本發(fā)明的令人滿意的計(jì)算機(jī)系統(tǒng)的指令格式的概念圖。
      圖3是表示在堆棧方式中的正向映射保存裝置、完成映射保存裝置以及將在后面描述的2個(gè)棧底指針的關(guān)系的說明圖。
      圖4是表示數(shù)據(jù)保存裝置的入口的結(jié)構(gòu)的說明圖。
      圖5是表示將在后面描述的操作隊(duì)列的入口的結(jié)構(gòu)的說明圖。
      圖6是表示狀態(tài)改變隊(duì)列的入口的結(jié)構(gòu)的說明圖。
      圖7是表示空閑表的內(nèi)部結(jié)構(gòu)的說明圖。
      圖8~圖14是具體表示在堆棧方式的一個(gè)操作例中,7個(gè)時(shí)間點(diǎn)的正向映射保存裝置、完成映射保存裝置、狀態(tài)改變隊(duì)列、操作隊(duì)列、數(shù)據(jù)保存裝置以及空閑表的內(nèi)容的說明圖。
      圖15~圖21是具體表示在寄存器方式的一個(gè)操作例中,7個(gè)時(shí)間點(diǎn)的正向映射保存裝置、完成映射保存裝置、狀態(tài)改變隊(duì)列、操作隊(duì)列、數(shù)據(jù)保存裝置以及空閑表的內(nèi)容的說明圖。
      具體實(shí)施例方式
      下面,將說明根據(jù)本發(fā)明的令人滿意的計(jì)算機(jī)系統(tǒng)。
      (1)基本結(jié)構(gòu)首先說明本實(shí)施例的計(jì)算機(jī)系統(tǒng)的基本結(jié)構(gòu)。
      圖1為計(jì)算機(jī)系統(tǒng)的方框圖。10為指令高速緩存,11為數(shù)據(jù)高速緩存,12為數(shù)據(jù)緩沖器,20為指令取出單元,21為指令發(fā)出單元,3a為正向映射保存裝置(正向映射文件),3c為完成映射保存裝置,4為狀態(tài)改變隊(duì)列,5為操作隊(duì)列,6為數(shù)據(jù)保存裝置(數(shù)據(jù)文件),7為空閑表,80和81分別為運(yùn)算單元0和1,82為轉(zhuǎn)移單元,83為輸入/存儲(chǔ)單元。
      在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,必須與狀態(tài)改變隊(duì)列的入口相對(duì)應(yīng)而設(shè)置的保存操作群的執(zhí)行狀態(tài)的狀態(tài)保存裝置,在本實(shí)施例中,通過后面將要說明的四個(gè)操作狀態(tài)字段來實(shí)現(xiàn)。
      本發(fā)明的計(jì)算機(jī)系統(tǒng)必須具備作為保存已發(fā)出的操作的內(nèi)容的緩沖器的操作窗口。為實(shí)現(xiàn)該操作窗口,基本上有集中型和分散型兩種方法,但本實(shí)施例的計(jì)算機(jī)系統(tǒng)為具備集中型操作隊(duì)列的系統(tǒng)。
      根據(jù)本發(fā)明的計(jì)算機(jī)系統(tǒng),可以在堆棧方式和寄存器方式這兩種方式下工作。在將以基于堆棧的處理器的機(jī)器語言所編程的程序轉(zhuǎn)換成本發(fā)明的計(jì)算機(jī)系統(tǒng)的指令格式并執(zhí)行的情況,為堆棧方式。另一方面,在將以RISC或者CISC的基于寄存器的處理器的機(jī)器語言所編程的程序轉(zhuǎn)換成本發(fā)明的計(jì)算機(jī)系統(tǒng)的指令格式并執(zhí)行的情況,則為寄存器方式。
      本發(fā)明的計(jì)算機(jī)系統(tǒng)所具有的映射保存裝置,其構(gòu)成為將數(shù)據(jù)保存裝置的入口的地址寫入各個(gè)入口,并且在寄存器方式中,與基于寄存器的可以無次序執(zhí)行的超標(biāo)量處理機(jī)中的寄存器映射表具有相同的功能。在本發(fā)明中,映射保存裝置在堆棧方式中也具有同等的功能。
      (2)指令格式圖2是表示本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的指令格式的概念圖,無論在堆棧方式中還是在寄存器方式中,各個(gè)指令的格式基本上都由格式信息字段101、操作字段102和狀態(tài)改變字段103構(gòu)成。
      在格式信息字段(FI字段)中,指示與該指令的長度以及該指令所包含的操作的數(shù)目等相關(guān)的信息。
      在操作字段(Op字段)中,指示由算術(shù)邏輯運(yùn)算和轉(zhuǎn)移、輸入/存儲(chǔ)等所構(gòu)成的操作群的內(nèi)容。在本實(shí)施例中,各個(gè)操作以與RISC處理器中的指令相同的格式來記述。在本實(shí)施例中,假設(shè)一條指令最多包含4個(gè)操作(但在包含轉(zhuǎn)移操作這樣的情況下,則絕對(duì)沒有一條指令包含4個(gè)操作的必要)。
      在狀態(tài)改變字段(SM字段)中,指示映射保存裝置內(nèi)容的改變。也就是說,在堆棧方式中時(shí)指示虛擬的操作數(shù)棧、及在寄存器方式中指示虛擬的邏輯寄存器群的狀態(tài)改變。如后文所描述的,狀態(tài)改變字段內(nèi)部的格式,在堆棧方式和寄存器方式下是不同的。
      在發(fā)出產(chǎn)生結(jié)果數(shù)據(jù)的操作的情況下,盡管用于保存結(jié)果數(shù)據(jù)的數(shù)據(jù)保存裝置的入口被分配,但其入口的邏輯的所處位置是通過SM字段的內(nèi)容來指示的。
      本實(shí)施例的計(jì)算機(jī)系統(tǒng),可以在每個(gè)循環(huán)中發(fā)出上述格式的一條指令。
      (2-1)堆棧方式中的指令格式下面,將說明堆棧方式中的指令格式。
      假設(shè)本實(shí)施例的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)保存裝置的各入口,能夠保存虛擬的堆棧式計(jì)算機(jī)的操作數(shù)棧的一個(gè)入口的保存數(shù)據(jù)。在本實(shí)施例中,假設(shè)映射保存裝置的地址0,1,2,…的入口內(nèi)容分別為s0,s1,s2,…時(shí),通過將入口地址為s0,s1,s2,…的數(shù)據(jù)保存裝置的各入口中所分別應(yīng)該保存的數(shù)據(jù)順序排列,來構(gòu)成虛擬的堆棧式計(jì)算機(jī)的操作數(shù)棧的內(nèi)容(S0與堆頂相對(duì)應(yīng))。
      例如,對(duì)A*X+B/X進(jìn)行計(jì)算,并將其結(jié)果作為變量Y存儲(chǔ)在存儲(chǔ)器中的程序,在堆棧式計(jì)算機(jī)中可以寫成如下形式。

      這里,變量A、B、X、Y的存儲(chǔ)區(qū)域分別為局部變量1,2,4,5。
      下面說明上述程序是如何轉(zhuǎn)換成本實(shí)施例的計(jì)算機(jī)系統(tǒng)中的堆棧方式的指令的。
      將上述程序分成2個(gè)指令群,針對(duì)各個(gè)指令,將操作的內(nèi)容和映射保存裝置中所加入的改變的內(nèi)容分開寫時(shí),變?yōu)槿缦滤尽?br>
      這里,將用于保存結(jié)果數(shù)據(jù)的新分配的數(shù)據(jù)保存裝置的入口的地址,在各個(gè)指令群中依次設(shè)置成f1,f2,…。在本實(shí)例中,f1,f2,…中的每一個(gè)與在各個(gè)循環(huán)中從空閑表中所取出的內(nèi)容相對(duì)應(yīng)。
      另外,對(duì)于在映射保存裝置中所加入的改變,指示了堆棧所要增長的入口的量,和在棧頂附近所加入的改變內(nèi)容(右端與棧頂相對(duì)應(yīng))。
      指令1a的意思是,將局部變量&lt;4&gt;的數(shù)據(jù)輸入,并寫入與f1相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口,然后使得其元素被保存在映射保存裝置中的堆棧增長一個(gè)入口的量,使新成為棧頂?shù)娜肟诘膬?nèi)容變?yōu)閷?duì)應(yīng)于f1的數(shù)據(jù)保存裝置的入口的地址。指令1b的意思是,在對(duì)應(yīng)于f1的數(shù)據(jù)保存裝置的入口的數(shù)據(jù)中加入0,將該結(jié)果數(shù)據(jù)寫入與f2相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口,使其元素被保存在映射保存裝置中的堆棧增長一個(gè)入口的量,并將新成為棧頂?shù)娜肟诘膬?nèi)容變?yōu)榕cf2相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口地址,盡管如此,但對(duì)于在映射保存裝置中加入的改變,也包含并表示了通過指令1a產(chǎn)生的改變內(nèi)容。其它的指令也是一樣的。
      對(duì)于兩個(gè)指令群中的每一個(gè),將其內(nèi)容集中,分成操作和映射保存裝置的內(nèi)容的改變來表示的話,則變?yōu)槿缦滤尽?br>
      這是將上述程序轉(zhuǎn)換成本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的堆棧方式的指令格式時(shí)的兩個(gè)指令中的每一個(gè)的Op字段和SM字段的內(nèi)容。這樣,在堆棧方式的指令格式下,在SM字段中,指示了堆棧的成長量,并且也可以指示出表示更新后的棧頂附近的內(nèi)容的符號(hào)序列。
      (2-2)寄存器方式中的指令格式下面,說明寄存器方式中的指令格式。
      假設(shè)本實(shí)施例的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)保存裝置的各入口,能夠保存虛擬的寄存器機(jī)的一個(gè)寄存器的保存數(shù)據(jù)。在本實(shí)施例中,假設(shè)映射保存裝置的地址0,1,2,…的入口的內(nèi)容分別為r0,r1,r2,…時(shí),入口地址為r0,r1,r2,…的數(shù)據(jù)保存裝置的各入口中,將分別保存虛擬的寄存器機(jī)的寄存器R0,R1,R2,…的數(shù)據(jù)。
      例如,從存儲(chǔ)器中將變量A,B,X的數(shù)據(jù)輸入寄存器組,計(jì)算(A*X+B/X)*2,并將其結(jié)果作為變量Y存入存儲(chǔ)器的程序,在寄存器方式中,可寫成如下形式。

      這里,變量A,B,X,Y的在存儲(chǔ)器中的存儲(chǔ)區(qū)域的地址,為分別在R0的內(nèi)容加上100,200,400,500。
      下面說明上述程序如何轉(zhuǎn)換成本實(shí)施例的計(jì)算機(jī)系統(tǒng)中的寄存器方式的指令。
      將上述程序分割成由每4條指令所構(gòu)成的組,對(duì)于各個(gè)指令,將操作內(nèi)容和加入在映射保存裝置中的改變內(nèi)容分開寫時(shí),將變?yōu)槿缦滤尽?br>
      這里,與堆棧方式的情況相同,將用于保存結(jié)果數(shù)據(jù)的新分配的數(shù)據(jù)保存裝置的入口的地址,在各個(gè)指令群中依次設(shè)置為f1,f2,…。
      指令1a的意思是,輸入(與r0相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口的數(shù)據(jù)+100)地址的數(shù)據(jù),并寫入到與f1對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口中,然后將映射保存裝置的地址1的入口的內(nèi)容置換成與f1相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口的地址。指令1c的意思是,將分別與f1和f2相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口的數(shù)據(jù)相乘,將其結(jié)果數(shù)據(jù)寫入與f3相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口中,將映射保存裝置的地址5的入口的內(nèi)容置換成與f3相對(duì)應(yīng)的數(shù)據(jù)保存裝置的入口的地址。其它指令也是一樣。
      對(duì)于兩個(gè)指令組中的每一個(gè),將4個(gè)指令內(nèi)容集中,分成操作和映射保存裝置的內(nèi)容的改變來表示的話,則變?yōu)槿缦滤尽?br>
      這是將上述程序轉(zhuǎn)換成本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的寄存器方式的指令格式時(shí)的兩條指令中的每一個(gè)的Op字段和SM字段的內(nèi)容。在轉(zhuǎn)換成第二條指令時(shí),映射保存裝置的地址5的入口的內(nèi)容的置換雖然有兩個(gè),但作為SM字段的內(nèi)容則只留下最后的內(nèi)容。這樣,在寄存器方式的指令格式下,在SM字段中,便可以列舉出指示內(nèi)容應(yīng)該改變的映射保存裝置的入口的地址和各改變內(nèi)容的符號(hào)的組合。
      以VLIW(very Long instruction word超長指令字)體系結(jié)構(gòu)為基礎(chǔ)的各指令也能夠很容易地轉(zhuǎn)換為本發(fā)明的計(jì)算機(jī)系統(tǒng)的寄存器方式的指令格式。
      (3)堆棧方式(3-1)堆棧方式中的動(dòng)作所必需的功能和結(jié)構(gòu)這里,將按照本實(shí)施例的計(jì)算機(jī)系統(tǒng)的各構(gòu)成元素,說明堆棧方式的動(dòng)作中所利用的功能和結(jié)構(gòu)。這些功能和結(jié)構(gòu),除一部分之外,在寄存器方式下也是必需的功能和結(jié)構(gòu)。
      (A)指令取出單元指令取出單元具有圖中未示出的程序計(jì)數(shù)器,該單元從指令高速緩存中取出指令,傳遞給指令發(fā)出單元。同時(shí)它還具有轉(zhuǎn)移的預(yù)測與轉(zhuǎn)換的執(zhí)行的功能。
      (B)指令發(fā)出單元指令發(fā)出單元為了發(fā)出從指令取出單元所傳遞的指令,根據(jù)其內(nèi)容,產(chǎn)生用于執(zhí)行正向映射保存裝置和數(shù)據(jù)保存裝置的操作、向操作隊(duì)列和狀態(tài)改變隊(duì)列寫入的各種信號(hào)。
      (C)映射保存裝置映射保存裝置構(gòu)成為在各個(gè)入口中寫入數(shù)據(jù)保存裝置的入口的地址。
      在本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的堆棧方式中,通過映射保存裝置及數(shù)據(jù)保存裝置,可以虛擬地構(gòu)成堆棧式計(jì)算機(jī)中應(yīng)該具有的堆棧的最上位部分。也就是說,在堆棧方式中,映射保存裝置被用于保存一種堆棧的內(nèi)容。在現(xiàn)有的堆棧式計(jì)算機(jī)中,操作數(shù)棧為…,word3,word2,word1(右端是棧頂)的狀態(tài),對(duì)應(yīng)于在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,映射保存裝置的地址0,1,2,…的入口的內(nèi)容分別為a,b,c,…時(shí),在數(shù)據(jù)保存裝置中入口地址為a,b,c,…的各入口中,分別保存word1,word2,word3,…的狀態(tài)。當(dāng)操作數(shù)棧的規(guī)模變大時(shí),剩余的部分便被保存在數(shù)據(jù)緩沖器中,以及進(jìn)一步的數(shù)據(jù)高速緩存中。
      本發(fā)明的計(jì)算機(jī)系統(tǒng)具有正向映射保存裝置(AMF;AdvancedMapping File)和完成映射保存裝置(CMF;completed Mapping File)兩個(gè)相同形狀的映射保存裝置。
      在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,每當(dāng)指令被發(fā)出,就對(duì)應(yīng)于該指令的內(nèi)容改變AMF的內(nèi)容。也就是說,AMF反映了已發(fā)出的全部指令的內(nèi)容。
      另一方面,CMF則反映出以程序上的順序結(jié)束后的全部指令的內(nèi)容。本發(fā)明的計(jì)算機(jī)系統(tǒng)可以無次序地執(zhí)行包含在已發(fā)出的指令中的操作,但是,CMF的存在,一是為了保證正確地對(duì)例外進(jìn)行處理,二是為了構(gòu)成基于按次序結(jié)束的全部指令的狀態(tài)。
      各個(gè)映射保存裝置中均存在著指示保存堆棧元素的最下位入口的被稱作棧底指針的寄存器。在初始狀態(tài)或者映射保存裝置為空的情況下,棧底指針的值為-1。
      圖3為表示本實(shí)施例的計(jì)算機(jī)系統(tǒng)中的兩組映射保存裝置與棧底指針之間關(guān)系的說明圖。兩個(gè)映射保存裝置AMF 3a及CMF 3c具有相同數(shù)量的入口,在各映射保存裝置中的各自的入口中從上方開始順序地標(biāo)以0,1,2,…的地址。未加斜線的AMF/CMF的入口,保存有作為堆棧的結(jié)構(gòu)元素的數(shù)據(jù)保存裝置的入口的地址。如圖3所示,將對(duì)應(yīng)于AMF及CMF中的每一個(gè)而設(shè)置的棧底指針,分別取名為Ba和Bc。
      (D)數(shù)據(jù)保存裝置(DF;Data File)數(shù)據(jù)保存裝置(DF)構(gòu)成為在各個(gè)入口中寫入一個(gè)字的數(shù)據(jù)。
      在本實(shí)施例中,DF的入口中被標(biāo)以p00,p01,p02,…這樣的地址。
      圖4是表示在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,DF6的各入口6(i)的結(jié)構(gòu)的說明圖。圖中,i是入口的地址。DF6的各入口6(i)由數(shù)據(jù)字段61(i)和寫入標(biāo)志(WF;write Flag)字段62(i)構(gòu)成。
      實(shí)際的DF的硬件上構(gòu)成是分別對(duì)上述的各字段所設(shè)置的寄存器文件的集合體。
      DF的各個(gè)入口的數(shù)據(jù)字段可以寫入一個(gè)字的數(shù)據(jù)。
      在DF的各個(gè)入口中,當(dāng)在數(shù)據(jù)字段中數(shù)據(jù)的寫入完成時(shí),WF字段被寫入1,在未完成時(shí)被寫入0。
      (E)操作隊(duì)列(OQ;Operation Queue)操作隊(duì)列(OQ)是保存未完成的已發(fā)出的指令中所包含的操作內(nèi)容的緩沖器,它采用了循環(huán)型的FIFO隊(duì)列的結(jié)構(gòu)。
      圖5是表示本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,OQ5的各個(gè)入口5(i)的結(jié)構(gòu)的說明圖。圖中,i是入口的地址。OQ5的各個(gè)入口5(i)是由操作字段50(i)、目標(biāo)字段51(i)、操作數(shù)字段52(i)、第1源字段53(i)、第1源寫標(biāo)志(SWF1)字段54(i)、第2源字段55(i)、第2源寫標(biāo)志(SWF2)字段56(i)、報(bào)表字段57(i)及發(fā)送標(biāo)志字段58(i)所構(gòu)成。
      OQ的各個(gè)入口的操作字段被寫入有操作碼。
      OQ的各個(gè)入口的目標(biāo)字段,在產(chǎn)生結(jié)果數(shù)據(jù)的操作的情況下,被寫入有用于保存該結(jié)果數(shù)據(jù)而分配的DF的入口的地址。
      OQ的各個(gè)入口的操作數(shù)字段,在指令的Op字段中指示操作數(shù)的值的操作的情況下,被寫入有該操作數(shù)的值。
      OQ的各個(gè)入口的第1、第2源字段中的每一個(gè),被寫入有用于保存操作的源數(shù)據(jù)而分配的DF的入口的地址。
      在OQ的各個(gè)入口中,第1、第2SWF字段中的每一個(gè)與第1、第2源字段相對(duì)應(yīng)地設(shè)置。SWF 1/2字段在第1/2源字段中所指示的DF的入口中數(shù)據(jù)寫入完成時(shí),被寫入1,未完成時(shí)被寫入0。
      OQ的各個(gè)入口的報(bào)表字段,被寫入有與包含該操作的指令相對(duì)應(yīng)的狀態(tài)改變隊(duì)列的入口地址和識(shí)別號(hào)碼(A,B,C,D中的任意一個(gè))。
      在OQ的各個(gè)入口中,發(fā)送標(biāo)志字段在操作還未被發(fā)送時(shí)被寫入0,在已被發(fā)送時(shí)被寫入1。
      (F)狀態(tài)改變隊(duì)列(SMQ;State Modification Queue)狀態(tài)改變隊(duì)列(SMQ)是保存根據(jù)尚未完成的已發(fā)出的指令中的每一個(gè)的映射保存裝置的狀態(tài)改變內(nèi)容的緩沖器,它采用了循環(huán)型的FIFO隊(duì)列的結(jié)構(gòu)。在本實(shí)施例中,SMQ的各個(gè)入口對(duì)應(yīng)于一條指令。
      圖6表示在本實(shí)例的計(jì)算機(jī)系統(tǒng)中,SMQ4的各個(gè)入口4(i)的結(jié)構(gòu)的說明圖。圖中,i是入口的地址,SMQ4的各入口4(i)由狀態(tài)改變(SM)字段40(i)、操作狀態(tài)A(OS_A)字段41(i)、操作狀態(tài)B(OS_B)字段42(i)、操作狀態(tài)C(OS_C)字段43(i)及操作狀態(tài)D(OS_D)字段44(i)所組成。
      實(shí)際的SMQ的硬件上的構(gòu)成是分別對(duì)上述各個(gè)字段所設(shè)置的寄存器文件的集合體。
      SMQ的各個(gè)入口的SM字段,被寫入有在所對(duì)應(yīng)的指令的SM字段中所指示的映射保存裝置的改變內(nèi)容。
      在SMQ的各個(gè)入口中,OS_A、OS_B、OS_C、OS_D中的每一個(gè)字段,被寫入有與各自所對(duì)應(yīng)的操作的執(zhí)行狀態(tài)有關(guān)的信息。在本實(shí)施例中,為了簡單起見,當(dāng)所對(duì)應(yīng)的操作不存在或正常完成時(shí)寫入1,其它情況下寫入0。
      (G)數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器是在各個(gè)入口中寫入一個(gè)字的數(shù)據(jù)的循環(huán)型緩沖器。
      (H)功能單元如圖1所示,本實(shí)施例的計(jì)算機(jī)系統(tǒng)具有運(yùn)算單元0及1、轉(zhuǎn)移單元及輸入/存儲(chǔ)單元(LSU;Load Store Unit)這4個(gè)功能單元。這些單元可分別進(jìn)行流水線處理、相互獨(dú)立并行地操作。
      在堆棧方式中,LSU可以對(duì)數(shù)據(jù)緩沖器及數(shù)據(jù)高速緩存進(jìn)行訪問。
      在本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的堆棧方式中,盡管通過映射保存裝置及數(shù)據(jù)保存裝置(DF),虛擬地構(gòu)成了堆棧式計(jì)算機(jī)中所應(yīng)該具備的堆棧的最上位的部分,但是,其下面的部分被存儲(chǔ)在數(shù)據(jù)緩沖器中,進(jìn)一步其下面的部分被存儲(chǔ)在數(shù)據(jù)高速緩存中。LSU可以高速地對(duì)數(shù)據(jù)緩沖器進(jìn)行訪問,應(yīng)該訪問的變量數(shù)據(jù)被保存在數(shù)據(jù)緩沖器里的比例越大,計(jì)算的效率就可以越高。另外,通過在數(shù)據(jù)緩沖器中事先預(yù)存了適當(dāng)?shù)淖謹(jǐn)?shù)量的數(shù)據(jù),能夠有效地在后文將要描述的DF數(shù)據(jù)緩沖器——數(shù)據(jù)高速緩存之間進(jìn)行溢出/裝填操作。
      LSU具有圖中未示出的保存有指向初始的局部變量的指針的寄存器(vars寄存器)。在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,盡管局部變量的儲(chǔ)存區(qū)域是數(shù)據(jù)緩沖器或者數(shù)據(jù)高速緩存,但在vars寄存器中,可以寫入數(shù)據(jù)高速緩存中的相當(dāng)?shù)牡刂分?。也就是說,既使全部或者一部分局部變量的數(shù)據(jù)實(shí)際上被保存在數(shù)據(jù)緩沖器中,也能夠讓假定全部的局部變量在溢出至數(shù)據(jù)高速緩存時(shí)的數(shù)據(jù)高速緩存中的地址值與各局部變量相對(duì)應(yīng)。在輸入/存儲(chǔ)操作處理中,LSU利用vars寄存器的值進(jìn)行地址計(jì)算,并判斷作為對(duì)象的局部變量的儲(chǔ)存區(qū)域是數(shù)據(jù)緩沖器還是數(shù)據(jù)高速緩存,并對(duì)該存儲(chǔ)區(qū)域進(jìn)行訪問。
      LSU進(jìn)行程序中所指示的輸入/存儲(chǔ)操作,并且為了回避溢出/下溢,可以讓處于由AMF/CMF及DF所構(gòu)成的虛擬的部分堆棧的最下位的數(shù)據(jù)在其與數(shù)據(jù)緩沖器之間自動(dòng)地溢出/裝填。
      為使1個(gè)字的數(shù)據(jù)從DF溢出給數(shù)據(jù)緩沖器,則必須滿足下述兩個(gè)條件(否則等待直到滿足為止)。(a)、在AMF和CMF中由各個(gè)棧底指針(Ba、Bc)所指示的入口內(nèi)容是一致的,(b)、與該一致的內(nèi)容相同的DF的入口地址被寫入任意一個(gè)源字段的入口在OQ中所保存的隊(duì)列內(nèi)不存在。對(duì)于條件(b),通過對(duì)作為包含在指令中的操作的源寄存器而被使用的DF的入口地址,在被保存在映射保存裝置中的狀態(tài)下剩余的情況設(shè)置一定的限制,通??梢詽M足。在指令體系中未設(shè)有這樣的限制的情況下,計(jì)算機(jī)系統(tǒng)必須被構(gòu)成為具備以O(shè)Q中的各源字段對(duì)作為上述一致內(nèi)容的DF的入口地址進(jìn)行對(duì)照,以便能夠?qū)ι鲜鰲l件(b)進(jìn)行檢查的功能。當(dāng)上述兩個(gè)條件被滿足時(shí),便可以使由入口的內(nèi)容所表示的DF的入口中所寫入的1個(gè)字的數(shù)據(jù)溢出至數(shù)據(jù)緩沖器中,其中該入口的內(nèi)容是由AMF/CMF的棧底指針Ba/Bc所指示的。此時(shí),從Ba及Bc的值中減1,并將上述DF的入口地址登錄在FL中。
      反之,為了從數(shù)據(jù)緩沖器向DF裝填1個(gè)字的數(shù)據(jù),從數(shù)據(jù)緩沖器里取出應(yīng)該裝填的一個(gè)字的數(shù)據(jù),并對(duì)其分配空閑的DF的1個(gè)入口,在其數(shù)據(jù)字段中進(jìn)行寫入。WCF字段為1。進(jìn)一步,對(duì)棧底指針Ba及Bc的值加1,并將上述被分配的DF的入口地址,分別寫入到由AMF及CMF中的每一個(gè)加1后的棧底指針值所表示的入口中。
      在數(shù)據(jù)緩沖器與數(shù)據(jù)高速緩存之間,也可以對(duì)應(yīng)于數(shù)據(jù)緩沖器的空位進(jìn)行適當(dāng)?shù)囊绯?裝填操作。
      以上,盡管在隨著指令的發(fā)出/完成AMF/CMF沒有操作的前提下,對(duì)DF與數(shù)據(jù)緩沖器之間的溢出/裝填操作進(jìn)行了說明,但是,指令的發(fā)出/完成的操作與溢出/裝填操作合起來,同時(shí)進(jìn)行的結(jié)構(gòu)也是很容易實(shí)現(xiàn)的。
      此外,本發(fā)明的計(jì)算機(jī)系統(tǒng)也可以被構(gòu)成為在DF與數(shù)據(jù)緩沖器之間以及在數(shù)據(jù)緩沖器與數(shù)據(jù)高速緩存之間,一次完成多字的數(shù)據(jù)的溢出/裝填。
      (I)空閑表(FLFree List)空閑表(FL)的空閑,是指保存未被分配的DF入口的地址之意,在本實(shí)施例中,如圖7所示,其包括指令完成用登錄緩沖器(EBIC;Entry Buffer for Instruction Completion)71a、堆棧溢出用登錄緩沖器(EBSS;Entry Buffer for Stack Spill)71b、目標(biāo)用分配隊(duì)列(AQD;Allocation Queue for Destinations)72a、以及堆棧裝填用分配隊(duì)列(AQSF;Allocation Queue for Stack Fill)72b。它們可以保存各自適當(dāng)數(shù)量的DF的入口地址,AQD和AQSF為循環(huán)型的FIFO隊(duì)列的結(jié)構(gòu)。
      在初始狀態(tài)下,DF的各個(gè)入口地址被保存在AQD與AQSF中的任意一處。在需要新分配DF入口的情況下,空閑的DF入口的地址被從FL取出,但是隨著指令的發(fā)出為了保存操作的數(shù)據(jù)結(jié)果而進(jìn)行分配時(shí),從AQD中取出,另外,在為了對(duì)其元素被保存在映射保存裝置中的堆棧進(jìn)行裝填時(shí),則從AQSF中取出。反之,對(duì)于被解除了分配的DF的各個(gè)入口,雖然其地址被登錄至FL中,但隨著指令的完成而被解除分配的被寫入EBIC中,另外,隨著其元素被保存在映射保存裝置中的堆棧的溢出而被解除分配的則被寫入EBSS中。被寫入至EBIC/EBSS中的各個(gè)DF的入口地址,會(huì)立即根據(jù)AQD及AQSF所保存的內(nèi)容量,移動(dòng)至其中的任意一個(gè)。
      (3-2)堆棧方式中的動(dòng)作接下來,說明本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的堆棧方式中的動(dòng)作。
      本實(shí)施例的計(jì)算機(jī)系統(tǒng)基本上通過下述4個(gè)階段對(duì)指令進(jìn)行處理,即(1)指令取出、(2)指令發(fā)出、(3)操作執(zhí)行、(4)指令完成。下面按不同階段說明動(dòng)作內(nèi)容。
      (1)指令取出在該階段中,指令取出單元將指令從指令高速緩存中取出,并且隨后確定取出指令的地址。接下來,將指令取出通常是從下一個(gè)地址值開始,但是在所取出的指令含有無條件轉(zhuǎn)移操作,或者在含有條件轉(zhuǎn)移操作時(shí)預(yù)測出要轉(zhuǎn)移的情況下,在轉(zhuǎn)移預(yù)測不準(zhǔn)的情況下,或者發(fā)生例外的情況下,將改變?nèi)〕龅牡刂分怠?br> (2)指令發(fā)出在該階段中,執(zhí)行基于發(fā)出的指令的Op字段的內(nèi)容的操作群的發(fā)出(向操作隊(duì)列(OQ)的寫入)、根據(jù)SM字段的內(nèi)容的正向映射保存裝置(AMF)及其棧底指針Ba的內(nèi)容的改變,以及該改變的內(nèi)容向狀態(tài)改變隊(duì)列(SMQ)的寫入。此時(shí),雖然指令中的s0,s1,s2,…中的每一個(gè)對(duì)應(yīng)于堆棧的最上位,第2位,第3位,…,但是,在各個(gè)改變前的AMF地址0,1,2,…的入口的內(nèi)容中,f1,f2,…中的每一個(gè)被分別置換成從空閑表(FL)中順序取出的DF的入口地址。
      對(duì)于AMF及Ba內(nèi)容的改變可按如下進(jìn)行。首先,將指令的SM字段中所指示的各符號(hào)按照上述要領(lǐng)分別置換成適當(dāng)?shù)腄F的入口地址,并分別寫入相對(duì)應(yīng)的AMF的入口中。這里,AMF的地址0的入口與棧頂即指令的SM字段中的右端所指示的符號(hào)相對(duì)應(yīng),以下的地址依次是AMF的入口與堆棧元素相對(duì)應(yīng)。對(duì)于在指令的SM字段中內(nèi)容改變尚未被顯示的部分,入口的內(nèi)容只是移位堆棧增長量。也就是說,在堆棧增長量為g時(shí),AMF的地址i的內(nèi)容通過指令的發(fā)出被寫入AMF的地址(i+g)中。另外,棧底指針Ba的值被加上堆棧增長量。
      在發(fā)出指令中所包含的操作內(nèi)容被寫入的OQ各入口中,報(bào)表字段中被寫入將依據(jù)相同指令進(jìn)行寫入的SMQ的入口地址和識(shí)別號(hào)碼(以機(jī)器方式順序地被標(biāo)以A,B,C,D)。將0寫入OQ的入口的發(fā)送標(biāo)志字段。
      在隨著指令的發(fā)出(對(duì)應(yīng)于f1,f2,f3,…)而新分配的DF的入口中,在WF字段中寫入0。
      在存儲(chǔ)操作的情況下,其內(nèi)容被寫入OQ,并且被送至LSU。
      與OQ的進(jìn)行寫入的源字段相對(duì)應(yīng)的SWF字段首先為0,但對(duì)于從s0,s1,s2,…中的任意一個(gè)被置換的DF的入口地址的向源字段的寫入中的每一個(gè),在下一個(gè)循環(huán)中,該地址的DF的入口的WF字段的內(nèi)容被讀出,其如果是1,則OQ的對(duì)應(yīng)的SWF字段便會(huì)被改變?yōu)?。
      在根據(jù)所發(fā)出的指令而進(jìn)行寫入的SMQ的入口中,在存在著相對(duì)應(yīng)的操作的操作狀態(tài)字段中寫入意味著尚未執(zhí)行的0,在其它字段中寫入1。
      (3)操作執(zhí)行OQ中所保存的未被執(zhí)行的操作,由于是可以執(zhí)行的,因此會(huì)被發(fā)送到適當(dāng)?shù)墓δ軉卧M(jìn)行處理。因而,操作的執(zhí)行順序是無次序的。
      在OQ中,如果存在通過所對(duì)應(yīng)的SWF字段的內(nèi)容,確認(rèn)操作所必需的源數(shù)據(jù)已全部被寫入DF的相應(yīng)入口中的入口,則為了執(zhí)行其所保存的操作,該入口的內(nèi)容與訪問DF所得到的源數(shù)據(jù)一起被送至適當(dāng)?shù)墓δ軉卧?。此時(shí),該OQ的入口的發(fā)送標(biāo)志字段被改變?yōu)?。
      對(duì)于產(chǎn)生輸入操作和算術(shù)邏輯運(yùn)算等的結(jié)果數(shù)據(jù)的操作,如果結(jié)果數(shù)據(jù)能夠正常得到,則將結(jié)果數(shù)據(jù)寫入作為目標(biāo)的DF的入口的數(shù)據(jù)字段中,WF字段被改變?yōu)?。另外,以O(shè)Q中的各個(gè)源字段對(duì)上述作為目標(biāo)的DF的入口地址進(jìn)行對(duì)照,與一致的源字段相對(duì)應(yīng)的SWF字段被改變?yōu)?對(duì)于以存儲(chǔ)操作為寫入內(nèi)容的OQ的入口,相同的內(nèi)容在指令發(fā)出階段被送至LSU。在指令發(fā)出階段并未被確定的地址計(jì)算所必需的源數(shù)據(jù),在本實(shí)施例中,在其向DF的寫入在OQ中得到確認(rèn)之后,立即被送至LSU。
      無論是哪種操作,如果其執(zhí)行是正常完成的話,就會(huì)根據(jù)報(bào)表字段的內(nèi)容,將所對(duì)應(yīng)的SMQ的入口的操作狀態(tài)字段改變?yōu)?。
      對(duì)于存儲(chǔ)操作,盡管地址計(jì)算在操作執(zhí)行階段中以無次序的方式執(zhí)行,但為保證正確的例外處理,存儲(chǔ)的執(zhí)行要在指令完成階段中進(jìn)行。因此,在存儲(chǔ)操作的情況下,如果存儲(chǔ)數(shù)據(jù)和存儲(chǔ)地址能一起確定,則所對(duì)應(yīng)的SMQ的入口的操作狀態(tài)字段便被修改為1。
      在某種操作的處理中,發(fā)生例外事件的情況下,其信息會(huì)被寫入到所對(duì)應(yīng)的SMQ的入口的操作狀態(tài)字段中,并且通知指令取出單元。
      (4)指令完成指令的完成按程序上的順序來進(jìn)行。
      在SMQ隊(duì)列的前端的入口中,如果所有操作狀態(tài)字段的內(nèi)容是1或者能成為1,則所對(duì)應(yīng)的指令便可以完成。為了執(zhí)行指令的完成,根據(jù)SMQ的前端的內(nèi)容改變CMF及Bc的內(nèi)容,在SMQ中將上述前端的入口從隊(duì)列中去掉。這里,在指令被發(fā)出時(shí)對(duì)AMF所進(jìn)行的內(nèi)容改變?cè)贑MF中將再現(xiàn)。
      此外,隨著指令的完成,應(yīng)該解除分配的DF的入口地址被分別登錄至FL中。在堆棧方式中,應(yīng)該解除分配的DF的入口群的地址由下面兩個(gè)組構(gòu)成。這兩個(gè)組是,隨著指令完成由于內(nèi)容改變而未被保存在CMF中的,以及被寫入到保存指令中所包含的操作的OQ的入口群的目標(biāo)字段中但還未執(zhí)行向CMF寫入的。
      在完成包含存儲(chǔ)操作的指令的情況下,委托LSU進(jìn)行存儲(chǔ)的執(zhí)行。這樣,可以保證數(shù)據(jù)按程序上的順序被存儲(chǔ)。
      以上,說明的是本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)在堆棧方式中的動(dòng)作的概要。
      (3-3)堆棧方式時(shí)的動(dòng)作例下面,說明具體的動(dòng)作例?,F(xiàn)在,假設(shè)在本實(shí)例的計(jì)算機(jī)系統(tǒng)中,執(zhí)行計(jì)算前述的Y=A*X+B/X的由下面兩個(gè)指令所構(gòu)成的程序。

      圖8~圖14是在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,按照時(shí)間序列表示處理上述程序時(shí)的狀態(tài)變化的說明圖。下面,基于這些圖對(duì)詳細(xì)的動(dòng)作進(jìn)行說明。在圖8~圖14中,DF6、OQ5及SMQ4的各入口的結(jié)構(gòu)分別與圖4、圖5及圖6的相同。在映射保存裝置的棧底指針?biāo)甘镜娜肟谝韵碌娜肟?、和從形成FIFO隊(duì)列結(jié)構(gòu)的結(jié)構(gòu)元素的隊(duì)列退出的入口等,寫入內(nèi)容并未作為有意義的內(nèi)容被保存的部分處,加有斜線。標(biāo)有p##的地方意味著盡管DF的某個(gè)入口地址被寫入,但在本動(dòng)作例的說明中無需注意。另外,在本動(dòng)作例中,為使說明簡單,假設(shè)DF與數(shù)據(jù)緩沖器之間不進(jìn)行溢出/裝填操作。
      假設(shè)作為FL的結(jié)構(gòu)元素的目標(biāo)用分配隊(duì)列(AQD)72a及AMF3a的初始內(nèi)容如圖8所示。這里,在形成循環(huán)型FIFO隊(duì)列結(jié)構(gòu)的AQD 72a中,從隊(duì)列開始的4個(gè)入口,指示分別與下面將要發(fā)出的指令中的f1,f2,f3,f4相對(duì)應(yīng)。在AMF 3a及CMF 3c中,在各個(gè)入口中,從上面開始順序標(biāo)以0,1,2,…的地址,它們分別與s0,s1,s2,…相對(duì)應(yīng)。
      假設(shè)當(dāng)計(jì)算機(jī)系統(tǒng)處于如圖8所示狀態(tài)時(shí),進(jìn)行指令1的發(fā)出。
      根據(jù)指令1的Op字段的內(nèi)容,將包含在指令中的操作的內(nèi)容寫入OQ,根據(jù)SM字段的內(nèi)容改變AMF及Ba的內(nèi)容,該改變的內(nèi)容被寫入SMQ。此時(shí),指令中的f1,f2,f3,f4中的每一個(gè)分別被置換成從空閑表里依次取出的p26,p34,p42,p51。對(duì)于AMF內(nèi)容的改變,在地址0,1的入口中,將分別從f1、f4被置換的p26、p51寫入,在其以下的部分中,入口的內(nèi)容只移位堆棧的增長量(2)(圖8中AMF的地址0,1,…的各入口的內(nèi)容分別被寫入到地址2,3,…的各入口中)。在以圖9中的OQ指示寫入內(nèi)容的4個(gè)入口中,在報(bào)表字段中,基于相同的指令1進(jìn)行寫入的SMQ的入口地址1和識(shí)別號(hào)碼(依次為A,B,C,D)被寫入。此外,這些OQ的4個(gè)入口的發(fā)送標(biāo)志字段中被寫入0。
      在分別與f1,f2,f3,f4相對(duì)應(yīng)的新分配的DF的地址p26,p34,p42,P51的各入口中,假設(shè)WF字段為0。
      由于在SMQ的進(jìn)行寫入的入口的各操作狀態(tài)字段中,任何一個(gè)都存在著相對(duì)應(yīng)的操作,因此寫入0。
      這樣,計(jì)算機(jī)系統(tǒng)將從圖8所表示的狀態(tài)達(dá)到圖9所表示的狀態(tài)。
      在下一個(gè)循環(huán)中,接著指令1進(jìn)行指令2的發(fā)出。
      與指令1的情況一樣,根據(jù)指令2的Op字段的內(nèi)容將包含在指令中的操作內(nèi)容寫入OQ,根據(jù)SM字段的內(nèi)容改變AMF及Ba的內(nèi)容,并將該改變的內(nèi)容寫入SMQ。此時(shí),指令中的s0,s1被置換為改變前(圖9)的AMF的各個(gè)地址0,1的入口的內(nèi)容p26,p51,而f1,f2,f3中的每一個(gè)則被分別置換為從空閑表中依次取出來的p16,p18,p57。由于SM字段中只指示了負(fù)的堆棧增長量(-2),因此對(duì)于AMF,入口內(nèi)容僅移位這個(gè)量(圖9中的AMF的地址2,3,…的各入口的內(nèi)容分別被寫入地址0,1,…的入口中)。
      在分別與f1,f2,f3相對(duì)應(yīng)的新分配的DF的地址p16,p18,p57的各入口中,假設(shè)WF字段為0。
      進(jìn)一步,由于指令2包含存儲(chǔ)操作,因此其內(nèi)容被寫入OQ,并且被送至LSU。
      這樣,計(jì)算機(jī)系統(tǒng)到達(dá)如圖10所示的狀態(tài)。
      保存在OQ中的尚未執(zhí)行的操作,由于是可以執(zhí)行的,因此被發(fā)送至適當(dāng)?shù)墓δ軉卧M(jìn)行處理。
      圖11表示經(jīng)過數(shù)個(gè)循環(huán),在指令1之前所發(fā)出的指令全部完成、且包含在指令1中的4個(gè)操作也全部正常完成后的時(shí)間點(diǎn)的計(jì)算機(jī)系統(tǒng)的狀態(tài)。在與指令1相對(duì)應(yīng)的SMQ的地址1的入口中,所有的操作狀態(tài)字段為1。另外,該時(shí)間點(diǎn)的CMF及Bc的內(nèi)容,與指令1就要發(fā)出之前(圖8)的AMF及Ba的內(nèi)容相同(如果在DF與數(shù)據(jù)緩沖器之間進(jìn)行溢出/裝填操作,則指令發(fā)出時(shí)的Ba的值與指令完成時(shí)的Bc的值不一致)。從該狀態(tài)開始,指令的完成按如下所述執(zhí)行。
      在圖11中,由于SMQ的地址1的入口處于該時(shí)間點(diǎn)的隊(duì)列的前端,因此根據(jù)該內(nèi)容來改變CMF及Bc的內(nèi)容。也就是說,在Bc的值中加2,在CMF的地址0,1的入口中分別寫入p26,p51,在其以下部分中,入口的內(nèi)容僅移位堆棧的增長量(2)。此外,在SMQ中上述前端的入口被從隊(duì)列中去掉。
      另外,隨著指令1的完成應(yīng)該解除分配的DF的入口地址被登錄在FL中。在這種情況下,被寫入到保存指令1中所包含的操作的OQ的入口群的目標(biāo)字段中,但并未執(zhí)行向CMF寫入的p34,p42被寫入到作為FL構(gòu)成元素的指令完成用的登錄緩沖器(EBIC)71a中(在這種情況下,并沒有隨著指令的完成由于內(nèi)容改變而未被保存在CMF中的內(nèi)容)。這樣,計(jì)算機(jī)系統(tǒng)達(dá)到圖12所示的狀態(tài)。
      圖13表示計(jì)算機(jī)系統(tǒng)在進(jìn)一步經(jīng)過數(shù)個(gè)循環(huán),包含在指令2中的三個(gè)操作正常完成后,對(duì)于最后的存儲(chǔ)操作,存儲(chǔ)數(shù)據(jù)與存儲(chǔ)地址一起變?yōu)楸淮_定完了的時(shí)間點(diǎn)的狀態(tài)。被寫入到EBIC中的p34,p42被移到AQD中。
      從圖13的時(shí)間點(diǎn)開始在一個(gè)循環(huán)之內(nèi),指令2的完成與指令1的情況相同地進(jìn)行。在這種情況下,由于指令2包含存儲(chǔ)操作,因此該存儲(chǔ)的執(zhí)行依賴于LSU。另外,隨著指令的完成而應(yīng)該解除分配的DF的入口地址被登錄至FL中。在這種情況下,作為隨著指令的完成由于內(nèi)容的改變而未被保存在CMF中的p51,p26,和被寫入至保存指令2中所包含的操作的OQ的入口群的目標(biāo)字段中但并未執(zhí)行向CMF的寫入的p16,p18,p57被寫入EBIC中。這樣,計(jì)算機(jī)系統(tǒng)達(dá)到如圖14所示的狀態(tài)。
      以上,本實(shí)施例的計(jì)算機(jī)系統(tǒng)中Y=A*X+B/X的計(jì)算完成。
      (4)寄存器方式(4-1)在寄存器方式中的動(dòng)作所必需的功能和結(jié)構(gòu)在(3-1)中所敘述的功能和結(jié)構(gòu),除一部分之外,在寄存器方式中也是必要的。這里,只對(duì)與堆棧方式的情況的不同點(diǎn)做出說明。
      首先,在寄存器方式中,映射保存裝置采用的是在基于寄存器的超標(biāo)量處理機(jī)中的寄存器映射表的等同物。
      因此,與映射保存裝置的棧底指針、數(shù)據(jù)緩沖器、輸入/存儲(chǔ)單元(LSU)的溢出/裝填相關(guān)的功能、空閑表(FL)中的堆棧溢出用登錄緩沖器(EBSS)以及堆棧裝填用分配隊(duì)列(AQSF)等,基本上是不需要的。
      (4-2)寄存器方式中的動(dòng)作下面,說明本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)在寄存器方式中的動(dòng)作。
      本實(shí)施例的計(jì)算機(jī)系統(tǒng),在寄存器方式中與在堆棧方式中的情況一樣,基本上按下述四個(gè)階段進(jìn)行指令處理,即(1)指令取出、(2)指令發(fā)出、(3)操作執(zhí)行、(4)指令完成。下面,將按各階段說明動(dòng)作內(nèi)容。
      (1)指令取出在該階段中,指令取出單元從指令高速緩存中取出指令,并且隨后確定取出指令的地址。
      (2)指令發(fā)出在該階段中,進(jìn)行根據(jù)發(fā)出的指令的Op字段的內(nèi)容的操作群的發(fā)出(寫入到操作隊(duì)列(OQ)中)、根據(jù)SM字段的內(nèi)容改變正向映射保存裝置(AMF)的內(nèi)容,以及被改變的內(nèi)容的向狀態(tài)改變隊(duì)列(SMQ)的寫入。此時(shí),指令中的r0,r1,r2,…中的每一個(gè)分別被置換成改變前的AMF的地址0,1,2,…的入口的內(nèi)容,f1,f2,…中的每一個(gè)則分別被置換成從空閑表(FL)中依次取出的DF的入口的地址。
      對(duì)于AMF的內(nèi)容的改變,按如下所述進(jìn)行。對(duì)于指令的SM字段中所指示的AMF的入口地址和符號(hào)的組合中的每一個(gè),其中的符號(hào)按上述要領(lǐng)分別被置換成適合的DF的入口的地址,而地址則被寫入所指示的AMF的入口中。
      在所發(fā)出的指令中包含的操作內(nèi)容被寫入的OQ的各入口中,根據(jù)相同指令進(jìn)行寫入的SMQ的入口地址和識(shí)別號(hào)碼(通過機(jī)器依次被標(biāo)以A,B,C,D)被寫入到報(bào)表字段中。在OQ的入口的發(fā)送標(biāo)志字段中寫入0。
      在隨著指令的發(fā)出(與f1,f2,f3,…相對(duì)應(yīng))而新分配的DF的入口中,WF字段中被寫入0。
      在存儲(chǔ)操作的情況下,其內(nèi)容被寫入OQ,并被送至LSU。
      與OQ的進(jìn)行寫入的源字段相對(duì)應(yīng)的SWF字段首先為0,但對(duì)于向從r0,r1,r2,…中的任何一個(gè)被置換的DF的入口地址的源字段的寫入中的每一個(gè),在下一個(gè)循環(huán)中,其地址的DF入口的WF字段的內(nèi)容被讀出,如果內(nèi)容是1,則將OQ的對(duì)應(yīng)的SWF字段改變?yōu)?。
      在根據(jù)所發(fā)出的指令進(jìn)行寫入的SMQ的入口中,在存在相對(duì)應(yīng)的操作的操作狀態(tài)字段中,寫入表示未執(zhí)行的0,而在其它字段中則寫入1。
      (3)操作執(zhí)行由于保存在OQ中的未執(zhí)行的操作,與堆棧方式中的情況一樣,是可以執(zhí)行的,因此其被發(fā)送至適當(dāng)?shù)墓δ軉卧M(jìn)行處理。
      (4)指令完成指令的完成除了以下一點(diǎn)之外,與堆棧方式中的情況一樣,按程序上的順序進(jìn)行。
      首先,在發(fā)出指令之際,對(duì)AMF所進(jìn)行的內(nèi)容改變雖在CMF中被再現(xiàn),但是其是依據(jù)在寄存器方式中的指令的SM字段內(nèi)部的格式,即狀態(tài)改變隊(duì)列(SMQ)的寫入格式而進(jìn)行的。
      另外,隨著指令的完成,應(yīng)該解除分配的DF的入口地址分別被登錄至FL中。在寄存器方式中,應(yīng)該解除分配的DF入口群的地址由以下兩組構(gòu)成。這兩個(gè)組是,隨著指令的完成將內(nèi)容被重寫的CMF的各入口的改變前的內(nèi)容讀出來的部分,以及被寫入到保存指令中所包含的操作的OQ的入口群的目標(biāo)字段中但尚未執(zhí)行向CMF的寫入的部分。
      以上,是本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)在寄存器方式中的動(dòng)作的概要。
      (4-3)寄存器方式中的動(dòng)作例接著說明詳細(xì)的動(dòng)作例?,F(xiàn)在,假設(shè)在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,執(zhí)行計(jì)算前述的Y=(A*X+B/X)*2的由以下兩條指令構(gòu)成的程序。

      圖15~圖21是表示在本實(shí)施例的計(jì)算機(jī)系統(tǒng)中,處理上述程序時(shí)的狀態(tài)變化按時(shí)間序列的說明圖。下面,基于這些圖對(duì)詳細(xì)的動(dòng)作進(jìn)行說明。在圖15~圖21中,DF6、OQ5及SMQ4的各入口的結(jié)構(gòu)分別與圖4、圖5和圖6的相同。在從形成為FIFO隊(duì)列結(jié)構(gòu)的結(jié)構(gòu)元素的隊(duì)列退出的并未被保存為代表寫入內(nèi)容的部分處加有斜線。標(biāo)有p##的地方,表示雖然DF中的某一個(gè)的入口地址被寫入,但在本實(shí)例的說明中沒有必要進(jìn)行留意。
      假設(shè)作為FL的結(jié)構(gòu)元素的目標(biāo)用分配隊(duì)列(AQD)72a及AMF3a的初始內(nèi)容為如圖15所示。這里,在形成為循環(huán)型的FIFO隊(duì)列結(jié)構(gòu)的AQD 72a中,從隊(duì)列前端開始的4個(gè)入口指示分別與隨后要發(fā)出的指令中的f1,f2,f3,f4相對(duì)應(yīng)。在AMF 3a及CMF 3c中,在各入口中,按從上面開始的順序標(biāo)以0,1,2,…的地址,并分別與r0,r1,r2,…相對(duì)應(yīng)。
      假設(shè)當(dāng)計(jì)算機(jī)系統(tǒng)處于圖15所示狀態(tài)時(shí),進(jìn)行指令1的發(fā)出。
      根據(jù)指令1的Op字段的內(nèi)容將指令中所包含的操作內(nèi)容寫入至OQ,根據(jù)SM字段的內(nèi)容改變AMF的內(nèi)容,該修改的內(nèi)容被寫入至SMQ中。此時(shí),指令中的r0被置換成改變前(圖15)的AMF的地址0的入口的內(nèi)容p12,而f1,f2,f3,f4中的每一個(gè)則分別被置換成從空閑表中依次被取出的p26,p34,p42,p51。對(duì)于AMF的內(nèi)容的改變,在地址1,2,4,5的入口中,分別寫入從f1,f4,f2,f3被置換的p26,p51,p34,p42。在以圖16的OQ指示寫入內(nèi)容的4個(gè)入口中,在報(bào)表字段中,寫入根據(jù)相同的指令1進(jìn)行寫入的SMQ的入口地址1和識(shí)別號(hào)碼(依次為A,B,C,D)。此外,這些OQ的4個(gè)入口的發(fā)送標(biāo)志字段中被寫入0。
      在分別與f1,f2,f3,f4相對(duì)應(yīng)的新分配的DF的地址p26,p34,p42,p51的各入口中,假設(shè)WF字段為0(在與r0相對(duì)應(yīng)的DF的地址p12的入口中,WF字段為1,并且數(shù)據(jù)“1000”已經(jīng)被寫入)。
      在SMQ的進(jìn)行寫入的入口的各操作狀態(tài)字段中,由于任何一個(gè)都存在著對(duì)應(yīng)的操作,因此被寫入0。
      這樣,計(jì)算機(jī)系統(tǒng)便從圖15所示的狀態(tài)達(dá)到圖16所示的狀態(tài)。
      在下面的循環(huán)中,接著指令1發(fā)出指令2。
      與指令1的情況相同,根據(jù)指令2的Op字段的內(nèi)容將指令中包含的操作內(nèi)容寫入OQ,根據(jù)SM字段的內(nèi)容改變AMF的內(nèi)容,并將該改變的內(nèi)容寫入SMQ。
      在分別與f1,f2,f3相對(duì)應(yīng)的新分配的DF的地址p16,p18,p57的各入口中,假設(shè)WF字段為0。
      另外,由于指令2含有一個(gè)存儲(chǔ)操作,因此其內(nèi)容被寫入OQ,并被送至LSU。
      還有,在前面循環(huán)的指令1的發(fā)出中,由于在OQ的源字段中寫有從r0被置換的p12,因此其地址的DF的入口的WF字段的內(nèi)容被讀出,由于其為1,因此在OQ中與p12被寫入的源字段相對(duì)應(yīng)的SWF字段被改變成1。
      這樣,計(jì)算機(jī)系統(tǒng)達(dá)到如圖17所示的狀態(tài)。
      由于保存在OQ中的尚未執(zhí)行的操作是可以執(zhí)行的,因此它們被發(fā)送到適當(dāng)?shù)墓δ軉卧M(jìn)行處理。
      圖18表示的是經(jīng)過數(shù)個(gè)循環(huán),在指令1之前被發(fā)出的指令全部完成,且包含在指令1中的4個(gè)操作全部正常完成的時(shí)間點(diǎn)的計(jì)算機(jī)系統(tǒng)的狀態(tài)。在與指令1相對(duì)應(yīng)的SMQ的地址1的入口中,所有的操作狀態(tài)字段為1。此外,該時(shí)間點(diǎn)的CMF的內(nèi)容與指令1就要發(fā)出之前(圖15)的AMF的內(nèi)容相同。從該狀態(tài)開始指令1的完成如下所述地執(zhí)行。
      由于圖18中SMQ的地址1的入口處于該時(shí)間點(diǎn)的隊(duì)列前端,因此根據(jù)其內(nèi)容改變CMF的內(nèi)容。也就是說,在CMF的地址1,2,4,5的入口中分別寫入p26,p51,p34,p42。進(jìn)一步,將SMQ中的上述前端的入口從隊(duì)列中去掉。
      另外,隨指令1的完成應(yīng)該解除分配的DF的入口地址被登錄至FL中。在這種情況下,內(nèi)容被重寫的CMF的地址1,2,4,5的各入口的改變前的內(nèi)容(p02,p10,p24,p60)被讀出,這些被寫入作為FL的結(jié)構(gòu)元素的指令完成用登錄緩沖器(EBIC)71a中(此時(shí),沒有已在保存指令1中所包含的操作的OQ的入口群的目標(biāo)字段中寫入,但并未執(zhí)行向CMF寫入的內(nèi)容)。這樣,計(jì)算機(jī)系統(tǒng)達(dá)到如圖19所示的狀態(tài)。
      圖20表示在進(jìn)一步經(jīng)過數(shù)個(gè)循環(huán)后,在指令2中所包含的3個(gè)操作正常完成,對(duì)于最后的存儲(chǔ)操作,存儲(chǔ)數(shù)據(jù)與存儲(chǔ)地址一起變?yōu)楸淮_定完了的時(shí)間點(diǎn)的計(jì)算機(jī)系統(tǒng)的狀態(tài)。EBIC中所寫入的p02,p10,p24,p60被移入到AQD中。
      從圖20的時(shí)間點(diǎn)開始在一個(gè)循環(huán)中,指令2的完成和指令1的情況相同地進(jìn)行。在這種情況下,由于指令2包括存儲(chǔ)操作,因此該存儲(chǔ)的執(zhí)行依賴于LSU。另外,隨指令的完成應(yīng)該解除分配的DF的入口的地址被登錄至FL中。在這種情況下,內(nèi)容被重寫的CMF的各入口的改變前的內(nèi)容被讀出的p34,p42,和已在保存指令2中所包含的操作的OQ的入口群的目標(biāo)字段中被寫入,但尚未進(jìn)行向CMF寫入的p18被寫入EBIC中。這樣,計(jì)算機(jī)系統(tǒng)達(dá)到圖21所示的狀態(tài)。
      以上,本實(shí)施例的計(jì)算機(jī)系統(tǒng)中的Y=(A*X+B/X)*2的計(jì)算完成。
      (5)例外恢復(fù)這里,說明有關(guān)本發(fā)明的計(jì)算機(jī)系統(tǒng)中的例外恢復(fù)。
      在某個(gè)指令中所包含的操作的執(zhí)行中發(fā)生例外事件的情況下,必須恢復(fù)該指令的發(fā)出時(shí)間點(diǎn)的狀態(tài)(但是,在堆棧方式中,已進(jìn)行的數(shù)據(jù)保存裝置DF與數(shù)據(jù)緩沖器之間的溢出/裝填的操作并未取消)。
      為此,在發(fā)生了例外的指令之后所發(fā)出的指令全部被取消,該時(shí)間點(diǎn)的完成映射保存裝置CMF(及其棧底指針Bc)的內(nèi)容被復(fù)制到正向映射保存裝置AMF(及其棧底指針Ba)中,進(jìn)一步,根據(jù)從狀態(tài)改變隊(duì)列SMQ的隊(duì)列的前端入口開始到與產(chǎn)生上述例外的指令相對(duì)應(yīng)的入口為止的各內(nèi)容對(duì)AMF(及Ba)的內(nèi)容進(jìn)行改變。
      為了取消在某個(gè)指令以后所發(fā)出的所有指令,最好將與操作隊(duì)列OQ及SMQ中應(yīng)該被取消的指令群相對(duì)應(yīng)的范圍內(nèi)的入口從隊(duì)列中全部去掉,將作為應(yīng)該取消的操作的目標(biāo)寄存器的已分配的DF的入口地址中的每一個(gè)返還至FL中。
      將作為應(yīng)該取消的操作的目標(biāo)寄存器的已分配的DF的入口地址中的每一個(gè)返還至FL中的方法基本上有兩種。即,正面地在指令完成用登錄緩沖器EBIC中進(jìn)行順序?qū)懭氲姆椒?,和重寫指示目?biāo)用分配隊(duì)列AQD的隊(duì)列前端的指針的方法。在采用后一個(gè)方法的情況下,有必要將作為指示AQD的隊(duì)列前端的指針值的有可能被寫入的值預(yù)先保存在什么地方。為此,考慮(a)在SMQ中設(shè)置用于此目的的字段,且每當(dāng)發(fā)出指令便進(jìn)行寫入,和(b)設(shè)置一種履歷文件,每當(dāng)包含條件轉(zhuǎn)移操作的指令發(fā)出時(shí)便進(jìn)行寫入的方法。
      如上所述,在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,由于基本上能夠恢復(fù)發(fā)生例外的指令發(fā)出的時(shí)間點(diǎn)的AMF(及Ba)的狀態(tài),因此可以正確地進(jìn)行例外處理。
      (6)其它實(shí)施例本發(fā)明的計(jì)算機(jī)系統(tǒng)并非僅限于上述實(shí)施例,還存在著細(xì)部結(jié)構(gòu)不同的各種實(shí)施例。例如,可列舉下面幾個(gè)。
      (6-1)實(shí)施例A本發(fā)明的計(jì)算機(jī)系統(tǒng)也可以被構(gòu)成為,將根據(jù)現(xiàn)有的基于堆棧或者基于寄存器的處理器的指令格式的程序,預(yù)先貯存在指令高速緩存中,并在執(zhí)行時(shí)在指令發(fā)出階段的前期,轉(zhuǎn)換成依照由(2)中所規(guī)定的那種指令格式。
      (6-2)實(shí)施例B本發(fā)明的計(jì)算機(jī)系統(tǒng)也可被構(gòu)成為,在發(fā)出各個(gè)指令時(shí),將該指令完成時(shí)必須解除分配的DF的入口的地址,或用于指定它們的信息預(yù)先記入到狀態(tài)改變隊(duì)列或?qū)S玫年?duì)列中。
      (6-3)實(shí)施例C也可以實(shí)現(xiàn)一種計(jì)算機(jī)系統(tǒng),其構(gòu)成為同時(shí)具備具有棧底指針的堆棧型的正向映射保存裝置及完成映射保存裝置,和寄存器型的正向映射保存裝置及完成映射保存裝置,并能夠在指令狀態(tài)改變字段中,同時(shí)指示堆棧型的映射保存裝置的內(nèi)容改變和寄存器型的映射保存裝置的改變內(nèi)容。
      (6-4)實(shí)施例D盡管在基于寄存器的超標(biāo)量的體系結(jié)構(gòu)中所考慮的各種變形很多,但在基于本發(fā)明的計(jì)算機(jī)系統(tǒng)中也可以應(yīng)用。例如,可列舉如下。
      (1)通過在各功能單元的輸入段中分別設(shè)置保留站(reservationstation)來實(shí)現(xiàn)操作窗口。
      (2)在操作隊(duì)列的后段設(shè)置調(diào)度程序。
      (3)對(duì)整數(shù)數(shù)據(jù)用/浮點(diǎn)小數(shù)點(diǎn)數(shù)據(jù)用、或者通用/多媒體用這樣的數(shù)據(jù)類型另外設(shè)置數(shù)據(jù)保存裝置、操作隊(duì)列、功能單元組、空閑表。
      (4)構(gòu)成為設(shè)置多組正向映射保存裝置、完成映射保存裝置、操作隊(duì)列、狀態(tài)改變隊(duì)列等,可以并行處理多個(gè)線程。
      在產(chǎn)業(yè)上的應(yīng)用可能性根據(jù)本發(fā)明,可以實(shí)現(xiàn)高性能的計(jì)算機(jī)系統(tǒng)。另外,以現(xiàn)有的基于堆棧的或者基于寄存器處理器的機(jī)器語言所編寫的程序,也可以容易地轉(zhuǎn)換成本發(fā)明的計(jì)算機(jī)系統(tǒng)的指令格式。
      權(quán)利要求
      1.一種計(jì)算機(jī)系統(tǒng),具有用于將數(shù)據(jù)寫入各入口的數(shù)據(jù)保存裝置,用于將該數(shù)據(jù)保存裝置的入口地址寫入各入口的正向映射保存裝置及完成映射保存裝置,用于將該正向映射保存裝置的狀態(tài)改變的內(nèi)容寫入各入口的狀態(tài)改變隊(duì)列,分別與該狀態(tài)改變隊(duì)列的各個(gè)入口相對(duì)應(yīng)而設(shè)置的保存操作群的執(zhí)行狀態(tài)的狀態(tài)保存裝置群,將已發(fā)出的操作按無次序方式進(jìn)行處理的裝置;該系統(tǒng)在每一循環(huán)中,執(zhí)行所述正向映射保存裝置的內(nèi)容改變、其改變的內(nèi)容向所述狀態(tài)改變隊(duì)列的寫入,以及與所述正向映射保存裝置的該內(nèi)容改變相組合的操作群的發(fā)出;已發(fā)出的操作中的每一個(gè)按無次序方式被執(zhí)行,如果正常完成,則相應(yīng)地使所述狀態(tài)保存裝置群的對(duì)應(yīng)部分被重寫;在通過相對(duì)應(yīng)的狀態(tài)保存裝置,表示出與所述狀態(tài)改變隊(duì)列的前端的入口內(nèi)容所表示的所述正向映射保存裝置的內(nèi)容改變相組合的操作群中所包含的操作全部正常完成之后,根據(jù)所述狀態(tài)改變隊(duì)列的所述前端的入口的該內(nèi)容,進(jìn)行所述完成映射保存裝置的內(nèi)容改變,并從所述狀態(tài)改變隊(duì)列中去掉所述前端的入口。
      2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中所述正向映射保存裝置及所述完成映射保存裝置可以從堆棧的前端開始,按照入口地址的順序保存該堆棧的內(nèi)容。
      3.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中為了訪問所述正向/完成映射保存裝置,指示入口地址。
      全文摘要
      一種計(jì)算機(jī)系統(tǒng),已發(fā)出的操作中的每一個(gè)按無次序方式執(zhí)行,如果正常完成的話,則相應(yīng)地使?fàn)顟B(tài)保存裝置群的對(duì)應(yīng)部分被重寫,當(dāng)通過相對(duì)應(yīng)的狀態(tài)保存裝置,表示與狀態(tài)改變隊(duì)列的前端入口的內(nèi)容所表示的正向映射保存裝置的內(nèi)容改變結(jié)合的操作群中所包含的操作全部正常完成之后,根據(jù)該狀態(tài)改變隊(duì)列的該前端入口的內(nèi)容,對(duì)該完成映射保存裝置的內(nèi)容進(jìn)行改變,并從該狀態(tài)改變隊(duì)列中去掉該前端的入口。
      文檔編號(hào)G06F9/38GK1678987SQ03820508
      公開日2005年10月5日 申請(qǐng)日期2003年8月27日 優(yōu)先權(quán)日2002年8月30日
      發(fā)明者關(guān)一 申請(qǐng)人:關(guān)一
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1