專利名稱:信息處理系統(tǒng)、管線處理器以及計(jì)算機(jī)可讀記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在例如設(shè)置有用于保持請(qǐng)求的寄存器(其用于在包含多個(gè)多級(jí)寄存器的管線寄存器的最后一級(jí)保持請(qǐng)求)的設(shè)備里,在該請(qǐng)求被中途保持在管線寄存器的階段對(duì)寄存器中的記錄(存儲(chǔ))做出判斷的技術(shù)。
背景技術(shù):
通常,管線設(shè)備設(shè)置有隊(duì)列,用于在包含多級(jí)寄存器的管線寄存器的最后一級(jí)保持請(qǐng)求并作為移位寄存器使用(例如,參考下面提到的專利文件1)。
設(shè)置有這種管線處理器的傳統(tǒng)信息處理系統(tǒng)如圖9所示。如圖9所示,信息處理系統(tǒng)100包括多個(gè)(這里8個(gè))管線處理器110-0到110-7(圖中標(biāo)為SB(系統(tǒng)板)0到SB7),彼此同步地同時(shí)執(zhí)行管線進(jìn)程的多個(gè)管線處理器110-0到110-7(在下文中,在不需要將管線110-0到110-7彼此做區(qū)分時(shí),為了描述簡(jiǎn)單,簡(jiǎn)單標(biāo)記為110),并且每個(gè)管線處理器110-0到110-7通過(guò)數(shù)據(jù)總線(FSB前端總線)111-0到111-7(在下文中,在不需要將數(shù)據(jù)總線111-0到111-7彼此做區(qū)分時(shí),為了描述簡(jiǎn)單,簡(jiǎn)單標(biāo)記為“111”)連接到兩個(gè)操作部分(圖中標(biāo)記為CPU(中央處理單元))A-0到A-7和B-0到B-7(在下文中,在不需要將操作部分A-0到A-7和B-0到B-7彼此做區(qū)分時(shí),為了描述簡(jiǎn)單,簡(jiǎn)單標(biāo)記為“A和B”)。
注意到,管線處理器110-0到110-7每個(gè)連接至數(shù)據(jù)總線111-0到111-7的對(duì)應(yīng)的一個(gè),該對(duì)應(yīng)的數(shù)據(jù)總線和管線處理器的符號(hào)的末位數(shù)字相同,并且管線處理器110-0到110-7每個(gè)通過(guò)數(shù)據(jù)總線111連接至對(duì)應(yīng)的兩個(gè)操作部分A-0到A-7和B-0到B-7,該對(duì)應(yīng)的兩個(gè)操作部分和管線處理器的符號(hào)的末位數(shù)字相同。
例如,管線處理器110-0通過(guò)數(shù)據(jù)總線111-0連接到操作部分A-0和B-0,管線處理器110-1通過(guò)數(shù)據(jù)總線111-1連接到操作部分A-1和B-1,以及管線處理器110-7通過(guò)數(shù)據(jù)總線111-7連接到操作部分A-7和B-7。
在圖9中,為了簡(jiǎn)化圖形,管線處理器110-2、110-3、110-4、110-5和110-6,數(shù)據(jù)總線111-2、111-3、111-4、111-5和111-6,操作部分A-2、B-2,A-3、B-3、A-4、B-4、A-5、B-5、A-6和B-6在圖中并沒有示出。
信息處理系統(tǒng)100包括控制器(在圖中標(biāo)記為XB(橫板))120,用于通知多個(gè)管線處理器110請(qǐng)求,并使其中一個(gè)管線處理器110處理該請(qǐng)求。
在信息處理系統(tǒng)100中,控制器120的選擇部分121根據(jù)每個(gè)請(qǐng)求REQ0到REQn的優(yōu)先級(jí),從對(duì)控制器120提出的請(qǐng)求REQ0到REQn中選擇一請(qǐng)求,同時(shí)用GSA(全局系統(tǒng)地址)-SB0到GSA-SB7將所選擇的請(qǐng)求通知給對(duì)應(yīng)的管線處理器110-0到110-7。
接著,每個(gè)管線處理器110利用包含多個(gè)寄存器112a的管線寄存器112保持所通知的請(qǐng)求。同時(shí),基于信息處理系統(tǒng)100的系統(tǒng)時(shí)鐘(同步信號(hào)),每個(gè)管線處理器110使用與其他管線處理器110相同的定時(shí),在將請(qǐng)求順序地從寄存器112a的上游側(cè)移動(dòng)到下游側(cè)時(shí)保持該請(qǐng)求。
另一方面,每個(gè)管線處理器110的LCST(本地緩存狀態(tài))產(chǎn)生邏輯電路電路114使用與其他管線處理器110相同的定時(shí),檢索存儲(chǔ)部分(圖中標(biāo)記為TAG),判斷該請(qǐng)求將要使用的數(shù)據(jù)是否保持在下屬操作部分A和B。
進(jìn)一步,LCST產(chǎn)生邏輯電路114判斷后面將要描述的請(qǐng)求隊(duì)列(圖中標(biāo)記為SLVQ_FSB(從請(qǐng)求隊(duì)列))117是否能存儲(chǔ)請(qǐng)求(也就是,請(qǐng)求隊(duì)列117是否處于忙碌狀態(tài))。
然后,基于該緩存是否被LCST產(chǎn)生邏輯電路114擊中的判斷結(jié)果和請(qǐng)求隊(duì)列117是否處于繁忙狀態(tài)的判斷結(jié)果,LCST產(chǎn)生邏輯電路114的條件產(chǎn)生部分(圖中標(biāo)記為“條件產(chǎn)生”)115確定判斷該請(qǐng)求是否為能被處理的有效請(qǐng)求的操作。
下一步,LCST產(chǎn)生邏輯電路114進(jìn)一步利用LCST-SB0到LCST-SB-7,將自身的TAG信息(也就是,關(guān)于緩存是否被命中的信息作為上述存儲(chǔ)部分113的檢索結(jié)果)和關(guān)于請(qǐng)求是否是可被處理的有效請(qǐng)求的操作確定信息傳輸?shù)娇刂破?20。
接著,控制器120的LCST總結(jié)邏輯電路122總結(jié)傳輸自各個(gè)管線處理器110的信息,并且GCST(全局緩存狀態(tài))產(chǎn)生邏輯電路123對(duì)傳輸自各個(gè)管線處理器110的信息做全面判斷,確定信息處理系統(tǒng)100的操作以使某個(gè)管線處理器110處理這一請(qǐng)求,并利用GCST-SB0到GCST-SB7將所確定的操作通知給對(duì)應(yīng)的管線處理器110。
此外,控制器120也包括包含多個(gè)寄存器124a的管線寄存器124,并且管線寄存器124基于系統(tǒng)時(shí)鐘在將請(qǐng)求從上游側(cè)順序地移動(dòng)到下游側(cè)時(shí)保持該請(qǐng)求,以在從將請(qǐng)求通知給每個(gè)管線處理器110直到從每個(gè)管線處理器110傳輸對(duì)該請(qǐng)求的操作確定信息期間與每個(gè)管線處理器110保持同步,。
接著,每個(gè)管線處理器110的GCST判斷邏輯電路116利用相應(yīng)的GCST-SB0到GCST-SB7,接收控制器120所通知的確定操作,并基于所收到的確定操作,判斷請(qǐng)求是否存儲(chǔ)在設(shè)置在管線寄存器112后續(xù)級(jí)(subsequent stage)的請(qǐng)求隊(duì)列117中。
換句話說(shuō),多個(gè)管線處理器110中獲得操作權(quán)限的管線處理器110(也就是,被確定處理該請(qǐng)求的管線處理器110)將請(qǐng)求存儲(chǔ)在請(qǐng)求隊(duì)列117中。
這里,請(qǐng)求隊(duì)列117是采用FIFO(先進(jìn)先出)方法保持請(qǐng)求的寄存器,從而請(qǐng)求被保持在請(qǐng)求隊(duì)列117中,由此通過(guò)數(shù)據(jù)總線111傳遞給操作部分A和B而被執(zhí)行。
每個(gè)管線處理器110的管線寄存器112基于系統(tǒng)時(shí)鐘在從上游側(cè)到下游側(cè)順序地移動(dòng)請(qǐng)求時(shí)保持該請(qǐng)求,以吸收從控制器120的接收到請(qǐng)求到自身的操作確定的時(shí)間延遲(也就是,取回保持在存儲(chǔ)器113信息的時(shí)間)。
進(jìn)一步,每個(gè)管線處理器110的管線寄存器112基于系統(tǒng)時(shí)鐘在從上游側(cè)到下游側(cè)順序地移動(dòng)請(qǐng)求時(shí)保持該請(qǐng)求,以在從通過(guò)LCST產(chǎn)生邏輯電路114傳輸自身操作確定信息等給控制器120到GCST判斷邏輯電路116從GCST產(chǎn)生邏輯電路123接受確定操作的時(shí)間期間與控制器120保持同步。
如上所述,在信息處理系統(tǒng)100中,在該請(qǐng)求被中途保持在每個(gè)管線處理器110的管線寄存器112階段,有必要使LCST產(chǎn)生邏輯電路114(條件產(chǎn)生部分115)判斷該請(qǐng)求是否記錄(存儲(chǔ))到請(qǐng)求隊(duì)列中。
換句話說(shuō),在該請(qǐng)求被中途保持在管線寄存器112階段,有必要使每個(gè)管線處理器110判斷這一請(qǐng)求是否是能夠由自己處理的有效請(qǐng)求(也就是,該請(qǐng)求能否被其從屬的操作部分A和B執(zhí)行)。
此外,由于是否實(shí)際處理該請(qǐng)求的操作的最終確定是通過(guò)控制器120的GCST產(chǎn)生邏輯電路123來(lái)執(zhí)行的并且當(dāng)請(qǐng)求通過(guò)管線寄存器112的最后一級(jí)時(shí)在每一管線處理器中將被清除,當(dāng)考慮插置于條件產(chǎn)生部分115與請(qǐng)求隊(duì)列117之間的寄存器112a中保持的其他請(qǐng)求時(shí),有必要使每個(gè)管線處理器110的LCST產(chǎn)生邏輯電路114判斷請(qǐng)求隊(duì)列117是否處于繁忙狀態(tài)。
換句話說(shuō),當(dāng)將請(qǐng)求實(shí)際存儲(chǔ)到請(qǐng)求隊(duì)列117時(shí),有必要使LCST產(chǎn)生邏輯電路114事先判斷請(qǐng)求隊(duì)列117是否處于繁忙狀態(tài),以避免當(dāng)請(qǐng)求實(shí)際存儲(chǔ)到請(qǐng)求隊(duì)列117時(shí)請(qǐng)求隊(duì)列117正處于繁忙狀態(tài)的情況。
這里,參考圖10,對(duì)LCST產(chǎn)生邏輯電路114判斷請(qǐng)求隊(duì)列117繁忙狀態(tài)的具體方法解釋如下。
如圖10所示,當(dāng)請(qǐng)求隊(duì)列有m級(jí)(m是不小于1的整數(shù),也就是,m個(gè)請(qǐng)求可以放入目錄項(xiàng)(entry))時(shí),在條件產(chǎn)生部分115和請(qǐng)求隊(duì)列117之間的管線寄存器112a中有n級(jí)(n是不小于1的整數(shù)),并且請(qǐng)求隊(duì)列117的x級(jí)(x是整數(shù);x<m)被有效請(qǐng)求(也就是,有x個(gè)有效目錄項(xiàng))占用,假設(shè)各級(jí)寄存器112a的所有n級(jí)都具有效請(qǐng)求,LCST產(chǎn)生邏輯電路114依據(jù)下面表達(dá)式(X)所示的條件對(duì)請(qǐng)求隊(duì)列117的繁忙狀態(tài)做出判斷,x+n=m...(X)也就是說(shuō),如果x(即請(qǐng)求隊(duì)列117中有效目錄項(xiàng)數(shù))與n(即條件產(chǎn)生部分115和請(qǐng)求隊(duì)列117之間寄存器112a的級(jí)數(shù))的和等于請(qǐng)求隊(duì)列117中目錄項(xiàng)的總數(shù)m,LCST產(chǎn)生邏輯電路114就判斷請(qǐng)求隊(duì)列117處于繁忙狀態(tài)。
另外,傳統(tǒng)上,對(duì)用于保持請(qǐng)求的隊(duì)列(寄存器)中的有效目錄項(xiàng)(在圖10中是x級(jí))進(jìn)行計(jì)數(shù)的技術(shù)已經(jīng)提出(例如,參考下面提到的專利文件1和2)。
然而,參考上面圖10描述的LCST產(chǎn)生邏輯電路114的繁忙判斷方法,即使當(dāng)隊(duì)列沒處于繁忙狀態(tài),有時(shí)會(huì)判斷該隊(duì)列將處于繁忙狀態(tài),因?yàn)榧拇嫫?12a的n級(jí)中的無(wú)效記錄被視為有效目錄項(xiàng)處理了,從而不可能有效利用請(qǐng)求隊(duì)列117中的目錄項(xiàng)目數(shù)。
進(jìn)一步,上面描述的繁忙判斷方法不適用于這種情況,在該情況中在條件產(chǎn)生部分115和請(qǐng)求隊(duì)列117之間寄存器112a的級(jí)數(shù)n,等于或大于請(qǐng)求隊(duì)列117中目錄項(xiàng)總數(shù)m,因?yàn)長(zhǎng)CST產(chǎn)生邏輯電路114總會(huì)檢測(cè)繁忙狀態(tài)。
因此,可以想象到一種每當(dāng)條件產(chǎn)生部分115確定操作時(shí)都判斷寄存器112a的所有n級(jí)是否保持有效目錄項(xiàng)的方法,但這種方法需要判斷每個(gè)寄存器112a是否保持有效或無(wú)效請(qǐng)求的電路等,因此,需要增加硬件資源從而增加制造成本。
日本專利特許公開No.HEI 4-367031[專利文件2]日本專利特許公開No.SHOWA 64-10332發(fā)明內(nèi)容本發(fā)明鑒于上述問題完成,其目標(biāo)是在如上所述的信息系統(tǒng)的管線處理器中,既不誤判也不增加硬件資源地進(jìn)行寄存器繁忙狀態(tài)判斷,從而在請(qǐng)求被中途保持在管線寄存器階段將該請(qǐng)求存儲(chǔ)到設(shè)置在管線寄存器最后一級(jí)的寄存器中。
為達(dá)到上述目的,本發(fā)明的信息處理系統(tǒng)是這樣的信息處理系統(tǒng),包括多個(gè)管線處理器,連接至執(zhí)行請(qǐng)求的操作部分,用于彼此同步地執(zhí)行管線處理;和控制器,用于將請(qǐng)求同時(shí)通知給多個(gè)管線處理器,并確定對(duì)請(qǐng)求的最終操作,其中多個(gè)管線處理器的每一個(gè)管線處理器包括管線寄存器,包含多個(gè)能夠保持控制器所通知的請(qǐng)求的多級(jí)寄存器,用于在從上游側(cè)向下游側(cè)順序移動(dòng)請(qǐng)求時(shí)保持請(qǐng)求;請(qǐng)求隊(duì)列,設(shè)置在管線寄存器的后續(xù)級(jí),用于存儲(chǔ)請(qǐng)求;判斷部分,用于判斷存儲(chǔ)在請(qǐng)求隊(duì)列中的請(qǐng)求是否是能夠被請(qǐng)求隊(duì)列保持的有效請(qǐng)求;第一計(jì)數(shù)器,用于對(duì)判斷部分與請(qǐng)求隊(duì)列之間的多個(gè)多級(jí)寄存器中的有效請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目,判斷請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);判斷結(jié)果通知部分,用于將繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果通知給控制器;判斷部分基于繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果做出判斷;控制器包括請(qǐng)求通知部分,用于將請(qǐng)求同時(shí)通知給多個(gè)管線處理器;確定部分,用于基于多個(gè)管線處理器的判斷結(jié)果通知部分所通知的繁忙狀態(tài)判斷結(jié)果,確定對(duì)該請(qǐng)求的最終操作;和確定結(jié)果通知部分,用于將確定部分作出的判斷結(jié)果同時(shí)通知給多個(gè)管線處理器。
此外,優(yōu)選如果繁忙判斷部分判斷請(qǐng)求隊(duì)列處在繁忙狀態(tài),判斷部分判斷請(qǐng)求不是有效請(qǐng)求。
優(yōu)選每個(gè)管線處理器包含第二計(jì)數(shù)器,用于對(duì)請(qǐng)求隊(duì)列的有效目錄項(xiàng)的數(shù)目進(jìn)行計(jì)數(shù);和計(jì)算部分,用于計(jì)算第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目與第二計(jì)數(shù)器計(jì)數(shù)的有效目錄項(xiàng)的數(shù)目之和;繁忙判斷部分將計(jì)算部分計(jì)算所得的和與請(qǐng)求隊(duì)列的目錄項(xiàng)的總數(shù)進(jìn)行比較,并在和等于目錄項(xiàng)的總數(shù)時(shí),判斷請(qǐng)求隊(duì)列處于繁忙狀態(tài)。
進(jìn)一步,優(yōu)選如果有效請(qǐng)求作為有效目錄項(xiàng)新近放入請(qǐng)求隊(duì)列,第二計(jì)數(shù)器將有效目錄項(xiàng)的數(shù)目加一,并且另一方面,如果與保持在請(qǐng)求隊(duì)列中的有效目錄項(xiàng)相關(guān)的請(qǐng)求處理完成,第二計(jì)數(shù)器將有效目錄項(xiàng)的數(shù)目減一。
此外,優(yōu)選每個(gè)管線處理器包括決定部分,該決定部分用于在控制器的確定結(jié)果通知部分所通知的確定結(jié)果是該請(qǐng)求將由自己處理時(shí),將該請(qǐng)求作為有效目錄項(xiàng)放入請(qǐng)求隊(duì)列,另一方面,用于在確定結(jié)果是該請(qǐng)求將不由自己完成時(shí),使請(qǐng)求無(wú)效。
優(yōu)選每個(gè)管線處理器包含數(shù)據(jù)信息保持部分,用于保持關(guān)于這種數(shù)據(jù)的數(shù)據(jù)信息,這種數(shù)據(jù)保持在連接著的操作部分的存儲(chǔ)部分中;保持判斷部分,用于基于保持在數(shù)據(jù)信息保持部分中的數(shù)據(jù)信息,判斷連接著的操作部分是否保持有控制器所通知的請(qǐng)求將要使用的數(shù)據(jù);判斷結(jié)果通知部分將保持判斷部分作出的保持判斷結(jié)果通知給控制器;和判斷部分基于保持判斷部分作出的保持判斷結(jié)果做出判斷。
此時(shí),優(yōu)選控制器的確定部分基于多個(gè)管線處理器的判斷結(jié)果通知部分所通知的保持判斷部分作出的保持判斷結(jié)果,確定對(duì)請(qǐng)求的最終操作。
進(jìn)一步,優(yōu)選保持判斷部分基于數(shù)據(jù)信息判斷該請(qǐng)求所使用的數(shù)據(jù)是否是最新數(shù)據(jù);和判斷結(jié)果通知部分在保持判斷部分判斷得出該請(qǐng)求所使用的數(shù)據(jù)是最新數(shù)據(jù)時(shí),將關(guān)于請(qǐng)求所使用的最新數(shù)據(jù)的保持的信息作為保持判斷部分的保持判斷結(jié)果通知給控制器。
此外,為了達(dá)到上述目的,本發(fā)明中的管線處理器是一種管線處理器,其連接至執(zhí)行請(qǐng)求的操作部分和確定對(duì)請(qǐng)求的最終操作并通知該請(qǐng)求的控制器,用于和其他管線處理器同步地執(zhí)行管線處理,管線處理器包括管線寄存器,包含多個(gè)能夠保持控制器所通知的請(qǐng)求的多級(jí)寄存器,用于在從上游側(cè)到下游側(cè)順序移動(dòng)請(qǐng)求時(shí)保持請(qǐng)求;請(qǐng)求隊(duì)列,設(shè)置在管線寄存器的后續(xù)級(jí),用于存儲(chǔ)請(qǐng)求;判斷部分,用于判斷存儲(chǔ)在請(qǐng)求隊(duì)列中的請(qǐng)求是否是能夠被請(qǐng)求隊(duì)列保持的有效請(qǐng)求;第一計(jì)數(shù)器,用于對(duì)判斷部分與請(qǐng)求隊(duì)列之間的多個(gè)多級(jí)寄存器中的有效請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目,判斷請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);判斷結(jié)果通知部分,用于將繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果通知給控制器;其中判斷部分基于繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果做出判斷。
此外,優(yōu)選如果繁忙判斷部分判斷請(qǐng)求隊(duì)列處在繁忙狀態(tài),判斷部分判斷請(qǐng)求不是有效請(qǐng)求。
優(yōu)選包含第二計(jì)數(shù)器,用于對(duì)請(qǐng)求隊(duì)列的有效目錄項(xiàng)的數(shù)目進(jìn)行計(jì)數(shù);和計(jì)算部分,用于計(jì)算第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目與第二計(jì)數(shù)器計(jì)數(shù)的有效目錄項(xiàng)的數(shù)目之和;繁忙判斷部分將計(jì)算部分計(jì)算所得的和與請(qǐng)求隊(duì)列的目錄項(xiàng)的總數(shù)進(jìn)行比較,并在和等于目錄項(xiàng)的總數(shù)時(shí),判斷請(qǐng)求隊(duì)列處于繁忙狀態(tài)。
還優(yōu)選如果有效請(qǐng)求作為有效目錄項(xiàng)新近放入請(qǐng)求隊(duì)列,第二計(jì)數(shù)器將有效目錄項(xiàng)的數(shù)目加一,并且另一方面,如果與保持在請(qǐng)求隊(duì)列中的有效目錄項(xiàng)相關(guān)的請(qǐng)求處理完成,第二計(jì)數(shù)器將有效目錄項(xiàng)的數(shù)目減一。
此外,優(yōu)選包含確定部分,用于在控制器所通知的對(duì)該請(qǐng)求的最終確定結(jié)果是該請(qǐng)求將由自己處理時(shí),將請(qǐng)求作為有效目錄項(xiàng)放入請(qǐng)求隊(duì)列,并且另一方面,在該請(qǐng)求將不由自己完成時(shí),使請(qǐng)求無(wú)效。
進(jìn)一步,優(yōu)選包含數(shù)據(jù)信息保持部分,用于保持關(guān)于這種數(shù)據(jù)的數(shù)據(jù)信息,這種數(shù)據(jù)保持在連接著的操作部分的存儲(chǔ)部分中;保持判斷部分,用于基于保持在數(shù)據(jù)信息保持部分中的數(shù)據(jù)信息,判斷連接著的操作部分是否保持有控制器所通知的請(qǐng)求將要使用的數(shù)據(jù);其中判斷結(jié)果通知部分將保持判斷部分作出的保持判斷結(jié)果通知給控制器;和判斷部分基于保持判斷部分作出的保持判斷結(jié)果做出判斷。此時(shí),保持判斷部分基于數(shù)據(jù)信息判斷該請(qǐng)求所使用的數(shù)據(jù)是否是最新數(shù)據(jù);和判斷結(jié)果通知部分在保持判斷部分判斷得出該請(qǐng)求所使用的數(shù)據(jù)是最新數(shù)據(jù)時(shí),將關(guān)于請(qǐng)求所使用的最新數(shù)據(jù)的保持的信息作為保持判斷部分的保持判斷結(jié)果通知給控制器。
此外,為達(dá)到上述目的,本發(fā)明中的繁忙判斷程序是用于使計(jì)算機(jī)完成在請(qǐng)求被中途保持在多個(gè)管線處理器每一個(gè)的管線寄存器階段為該請(qǐng)求判斷請(qǐng)求隊(duì)列的繁忙狀態(tài)的功能;該多個(gè)管線處理器連接至執(zhí)行請(qǐng)求的操作部分和確定對(duì)請(qǐng)求的最終操作并通知該請(qǐng)求的控制器,用于彼此同步地執(zhí)行管線處理,并分別包括管線寄存器,包含多個(gè)能夠保持控制器所通知的請(qǐng)求的多級(jí)寄存器,用于在從上游側(cè)到下游側(cè)順序移動(dòng)請(qǐng)求時(shí)保持請(qǐng)求;請(qǐng)求隊(duì)列,設(shè)置在管線寄存器的后續(xù)級(jí),程序指示計(jì)算機(jī)完成以下功能判斷部分,用于在請(qǐng)求被中途保持在管線寄存器階段判斷存儲(chǔ)在請(qǐng)求隊(duì)列中的請(qǐng)求是否是能夠被請(qǐng)求隊(duì)列保持的有效請(qǐng)求;第一計(jì)數(shù)器,用于對(duì)判斷部分與請(qǐng)求隊(duì)列之間的多個(gè)多級(jí)寄存器中的有效請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目,判斷請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);與此同時(shí),繁忙判斷程序使計(jì)算執(zhí)行使判斷部分基于繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果做出判斷。
優(yōu)選繁忙判斷程序指示計(jì)算機(jī)實(shí)現(xiàn)以下功能第二計(jì)數(shù)器,用于對(duì)請(qǐng)求隊(duì)列的有效目錄項(xiàng)的數(shù)目進(jìn)行計(jì)數(shù);及計(jì)算部分,用于計(jì)算第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目與第二計(jì)數(shù)器計(jì)數(shù)的有效目錄項(xiàng)的數(shù)目之和,并且同時(shí),使計(jì)算機(jī)實(shí)現(xiàn)功能,使繁忙判斷部分將計(jì)算部分計(jì)算所得的和與請(qǐng)求隊(duì)列的目錄項(xiàng)的總數(shù)進(jìn)行比較,并在和等于目錄項(xiàng)的總數(shù)時(shí),判斷請(qǐng)求隊(duì)列處于繁忙狀態(tài)。
為了達(dá)到上述目的,本發(fā)明中的計(jì)算機(jī)可讀記錄介質(zhì)是存儲(chǔ)上面提到的繁忙判斷程序的計(jì)算機(jī)可讀記錄介質(zhì)。
根據(jù)本發(fā)明,由于每個(gè)管線處理器設(shè)置有對(duì)保持在判斷部分和請(qǐng)求隊(duì)列之間的有效請(qǐng)求數(shù)進(jìn)行計(jì)數(shù)的第一計(jì)數(shù)器,可使繁忙判斷部分沒有錯(cuò)誤地做出請(qǐng)求隊(duì)列的繁忙判斷,這又用于在請(qǐng)求被中途保持在管線寄存器階段判斷請(qǐng)求是否是有效請(qǐng)求。
進(jìn)一步,由于第一計(jì)數(shù)器對(duì)保持在判斷部分和請(qǐng)求隊(duì)列間的多個(gè)寄存器的有效請(qǐng)求數(shù)進(jìn)行計(jì)數(shù),就不必為每個(gè)寄存器提供判斷是否保持效請(qǐng)求或無(wú)效請(qǐng)求的電路等,從而不會(huì)增加硬件資源。
圖1示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的信息處理系統(tǒng)的結(jié)構(gòu)框圖;圖2示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中管線處理器的保持判斷部分的判斷結(jié)果的圖表;圖3示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中管線處理器的繁忙判斷部分的判斷結(jié)果的圖表;圖4示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中繁忙判斷部分和管線繁忙計(jì)數(shù)器的示意圖;圖5示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中由控制器的確定部分對(duì)請(qǐng)求作出的最終操作確定的示例的示意圖;圖6示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中由控制器的確定部分對(duì)請(qǐng)求作出的最終操作確定的示例的示意圖;圖7示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中由控制器的確定部分對(duì)請(qǐng)求作出的最終操作確定的示例的示意圖;圖8示出用于說(shuō)明在本實(shí)施例的信息處理系統(tǒng)中由控制器的確定部分對(duì)請(qǐng)求作出的最終操作確定的示例的示意圖;圖9示出傳統(tǒng)信息處理系統(tǒng)的結(jié)構(gòu)框圖;圖10示出用于說(shuō)明由傳統(tǒng)信息處理系統(tǒng)的管線處理器的LCST產(chǎn)生邏輯電路對(duì)請(qǐng)求隊(duì)列的繁忙狀態(tài)判斷方法的示意圖。
具體實(shí)施例方式
本發(fā)明的實(shí)施例通過(guò)參照
如下。
關(guān)于本發(fā)明的實(shí)施例首先,通過(guò)參照?qǐng)D1所示的框圖,本發(fā)明實(shí)施例中的信息處理系統(tǒng)的結(jié)構(gòu)說(shuō)明如下。
如圖1所示,信息處理系統(tǒng)1由多個(gè)(這里8個(gè))管線處理器(在圖中由SB(系統(tǒng)板)表示)10-0至10-7,數(shù)據(jù)總線(FSB前端總線)11-0至11-7,操作部分(在圖中由CPU(中央處理單元)表示)A-0至A-7和B-0至B-7和控制器(在圖中由XB(橫板)表示)30構(gòu)成。
多個(gè)管線處理器10-0至10-7中的每一個(gè)(以下,當(dāng)不需要將多個(gè)管線處理器10-0至10-7彼此區(qū)分時(shí),簡(jiǎn)單地用符號(hào)“10”來(lái)表示)通過(guò)數(shù)據(jù)總線11-0至11-7(以下,當(dāng)不需要將數(shù)據(jù)總線11-0至11-7彼此區(qū)分時(shí),簡(jiǎn)單地用符號(hào)“11”表示)連接至兩個(gè)操作部分A-0至A-7和B-0至B-7(以下,當(dāng)不需要將操作部分A-0至A-7和B-0至B-7彼此區(qū)分時(shí),簡(jiǎn)單地由符號(hào)“A”和“B”表示)。
注意多個(gè)管線處理器10-0至10-7中的每一個(gè)都與數(shù)據(jù)總線11-0至11-7彼此相互連接,并且多個(gè)管線處理器10-0至10-7中的每一個(gè)通過(guò)數(shù)據(jù)總線11連接到操作部分A-0至A-7和B-0至B-7的相應(yīng)的兩個(gè)上,該兩個(gè)對(duì)應(yīng)的操作部分與管線處理器10的符號(hào)的最后數(shù)字相同。
例如,管線處理器10-0通過(guò)數(shù)據(jù)總線11-0連接到操作部分A-0和B-0上,管線處理器10-1通過(guò)數(shù)據(jù)總線11-1連接到操作部分A-1和B-1上,以及管線處理器10-7通過(guò)數(shù)據(jù)總線11-7連接至操作部分A-7和B-7上。
而且,在圖1中,為了簡(jiǎn)化,管線處理器10-2、10-3、10-4、10-5和10-6,總線11-2、11-3、11-4、11-5和11-6,操作部分A-2、B-2、A-3、B-3、A-4、B-4、A-5、B-5、A-6和B-6在圖中沒有示出。
多個(gè)管線處理器中的每一個(gè)配置為彼此同步地執(zhí)行管線處理(該處理將在后面描述),控制器30將請(qǐng)求通知給多個(gè)管線處理器10并同時(shí)確定對(duì)請(qǐng)求的最終操作。
多個(gè)管線處理器10中的每一個(gè)包含管線寄存器12、請(qǐng)求隊(duì)列13(在圖中由SLVQ_FSB標(biāo)識(shí);從屬請(qǐng)求隊(duì)列),數(shù)據(jù)信息保持部分14(在圖中由TAG標(biāo)識(shí))、LCST(本地緩存狀態(tài))產(chǎn)生邏輯電路20、管線繁忙計(jì)數(shù)器(第一計(jì)數(shù)器;在圖中由PIPELINE BUSY CNTR標(biāo)識(shí)出)25、有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路(第二計(jì)數(shù)器)26、加法器(計(jì)算部分)27和GCST(全局緩存狀態(tài))判斷邏輯電路(確定部分)28。
管線寄存器12保持控制器30所通知的請(qǐng)求并包括多個(gè)多級(jí)寄存器12a。
管線寄存器12基于在信息處理系統(tǒng)1中的系統(tǒng)時(shí)鐘(同步信號(hào)1;脈沖信號(hào)),在將請(qǐng)求從多個(gè)多級(jí)寄存器12a上游側(cè)移動(dòng)到的下游側(cè)時(shí)保持了該請(qǐng)求。換句話,管線寄存器12作為移位寄存器使用。
結(jié)果,多個(gè)管線處理器10的每一個(gè)基于系統(tǒng)時(shí)鐘,彼此同步地將請(qǐng)求移動(dòng)到管線寄存器12中下游側(cè)的寄存器12a。
每個(gè)管線處理器10也被配置為基于系統(tǒng)時(shí)鐘彼此同步地執(zhí)行其它處理(將在后面描述的在LCST產(chǎn)生邏輯電路20中、管線繁忙計(jì)數(shù)器25、加法器27和GCST判斷邏輯電路28中的處理)。
請(qǐng)求隊(duì)列13是用先進(jìn)先出(FIFO)方法保持請(qǐng)求的寄存器,設(shè)置在該管線寄存器的后續(xù)級(jí)。
此外,響應(yīng)于來(lái)自與其相連的操作部分A和B的請(qǐng)求,作為有效記錄項(xiàng)保持在請(qǐng)求隊(duì)列13中的請(qǐng)求通過(guò)FSB11傳遞給操作部分A和B,并在操作部分A和B中被執(zhí)行。
數(shù)據(jù)信息保持部分14保持了關(guān)于保持在與其相連的操作部分A和B的存儲(chǔ)部分(例如,緩存存儲(chǔ)器或DIMM;雙列直插內(nèi)存模塊)中的數(shù)據(jù)的數(shù)據(jù)信息。注意由數(shù)據(jù)信息保持部分保持的數(shù)據(jù)信息是保持在操作部分A和B的存儲(chǔ)部分中的TAG信息,但是在本發(fā)明中由數(shù)據(jù)信息保持部分14保持的數(shù)據(jù)信息不受限制,即,數(shù)據(jù)信息可以是能表示操作部分A和B的存儲(chǔ)部分所保持的數(shù)據(jù)內(nèi)容的任何信息,只要至少對(duì)保持判斷部分21(將在后面描述)基于該數(shù)據(jù)信息能判斷操作部分A和B是否保持有將由管線寄存器12中保持的請(qǐng)求使用的數(shù)據(jù)即可。
LCST產(chǎn)生邏輯電路20插置在寄存器12中間,判斷對(duì)管線寄存器12所保持的請(qǐng)求的操作,與此同時(shí)通知控制器30判斷結(jié)果,其由保持判斷部分21、繁忙判斷部分(繁忙判斷電路)22、條件產(chǎn)生部分(確定部分;參照?qǐng)D中的“條件產(chǎn)生”)23和判斷結(jié)果通知部分24組成。
基于數(shù)據(jù)信息保持部分14中保持的數(shù)據(jù)信息,保持判斷部分21判斷與其相連的操作部分A和B是否保持有將由控制器30所通知的請(qǐng)求(也就是,保持在管線寄存器12中的請(qǐng)求)使用的數(shù)據(jù)。
具體地,保持判斷部分21判斷圖2所示的狀態(tài)(1)到狀態(tài)(6)。
(1)在與其相連的從屬操作部分A和B的任何緩存(圖中用“Cache”標(biāo)識(shí))以及在DIMM中均未保持有該請(qǐng)求將要使用的數(shù)據(jù)[沒有命中]。
(2)在與其相連的從屬操作部分A和B的DIMM中命中數(shù)據(jù)[DIMM命中]。
(3)在與其相連的從屬操作部分A和B其中之一以共享類型命中數(shù)據(jù)[共享單個(gè)命中]。
(4)在與其相連的從屬操作部分A和B二者中以共享類型命中數(shù)據(jù)[共享雙命中]。
(5)在與其相連的從屬操作部分A和B任意一個(gè)中以互斥的類型命中數(shù)據(jù)[互斥命中]。
(6)在與其相連的從屬操作部分A和B任意一個(gè)中以修改類型命中數(shù)據(jù)[修改]。
如上所示,基于保持在數(shù)據(jù)信息保持部分14中的數(shù)據(jù)信息,保持判斷部分21判斷該請(qǐng)求所使用的數(shù)據(jù)的保持狀態(tài),且如上述(6)所描述,保持部分判斷數(shù)據(jù)是否是最新的。換言之,保持判斷部分21判斷保持在與其相連的操作部分A和B的存儲(chǔ)部分中的將由該請(qǐng)求使用的數(shù)據(jù)是否是最新的數(shù)據(jù)。
另外,管線處理器10包含用于保持請(qǐng)求的寄存器12a,以由保持判斷部分21進(jìn)行數(shù)據(jù)信息保持部分14的恢復(fù)。因此,當(dāng)控制器30的請(qǐng)求通知部分31(將在后面描述)通知該請(qǐng)求時(shí),管線處理器10將請(qǐng)求保持到管線寄存器12和寄存器12a中。
基于管線繁忙計(jì)數(shù)器25計(jì)數(shù)的在LCST產(chǎn)生邏輯電路20和請(qǐng)求隊(duì)列13之間的寄存器的有效請(qǐng)求數(shù),繁忙判斷部分22判斷請(qǐng)求隊(duì)列13是否處于繁忙狀態(tài)。
具體地,繁忙判斷部分22判斷圖3所示的狀態(tài)(a)至狀態(tài)(c)。
(a)沒有重試因子諸如地址匹配,且請(qǐng)求隊(duì)列13不在繁忙狀態(tài)中[沒有異常結(jié)束]。
(b)檢測(cè)到諸如地址匹配的重試因子[重試]。
(c)檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài)[繁忙]。
此外,參照?qǐng)D4,由繁忙判斷部分22進(jìn)行的是否在繁忙狀態(tài)的判斷方法將在后面描述。
條件產(chǎn)生部分23插入在管線寄存器12中間(也就是,在多個(gè)寄存器12a之間插入),判斷控制器30所通知的請(qǐng)求是否為能被保持在請(qǐng)求隊(duì)列中的有效請(qǐng)求(隊(duì)列獲得確定請(qǐng)求)。
換言之,條件產(chǎn)生部分23在該請(qǐng)求被中途保持在管線寄存器12階段,對(duì)該請(qǐng)求是否為能由自身來(lái)處理的有效請(qǐng)求(也就是,該請(qǐng)求是否能由自己的從屬操作部分A和B執(zhí)行)判斷對(duì)該請(qǐng)求的操作,并且判斷管線繁忙計(jì)數(shù)器25(將在后面描述)是否增加“1”。
這里,條件產(chǎn)生部分23配置為能夠在由保持判斷部分21作出的判斷結(jié)果和由繁忙判斷部分22作出的繁忙狀態(tài)判斷結(jié)果的基礎(chǔ)上,作出上述判斷。具體地,條件產(chǎn)生部分23在下面(x)至(z)的情況下判斷該請(qǐng)求不是有效的請(qǐng)求(也就是,無(wú)效的請(qǐng)求),并且另一方面在不同于下面(x)至(z)的情況下判斷該請(qǐng)求是有效請(qǐng)求,從而增加管線繁忙計(jì)數(shù)器25的計(jì)數(shù)值。
(x)當(dāng)保持判斷部分21作出的判斷是與其相連的操作部分A和B沒有保持將要由該請(qǐng)求使用的數(shù)據(jù)時(shí)[當(dāng)所述(1)是判斷結(jié)果時(shí)]。
(y)當(dāng)繁忙判斷部分22作出的判斷是請(qǐng)求隊(duì)列13處于繁忙狀態(tài)時(shí)[當(dāng)所述(c)是判斷結(jié)果時(shí)]。
(z)當(dāng)檢測(cè)到諸如地址匹配的重試因子時(shí)[當(dāng)上面描述的(b)是判斷結(jié)果時(shí)]。
判斷結(jié)果通知部分24使用LCST(本地緩存狀態(tài);在圖中由LCST-SB0至LCST-SB7標(biāo)識(shí)),將保持判斷部分21和繁忙判斷部分22作出的判斷結(jié)果通知給控制器30的LCST總結(jié)邏輯電路33(將在后面描述)。
具體地,判斷結(jié)果通知部分24將圖2所示的保持判斷部分21作出的判斷結(jié)果和圖3所示的繁忙判斷部分22作出的判斷結(jié)果通知給控制器30。
換言之,如圖2所示,判斷結(jié)果通知部分24采用4比特緩存狀態(tài)(在圖2中縮寫為CST),將保持判斷部分21作出的判斷結(jié)果通知給LCST總結(jié)邏輯電路33。也就是,在(1)“沒有命中”情況下的“0000”,在(2)“DIMM命中”情況下的“0001”,在(3)“共享單個(gè)命中”情況下的“0010”,在(4)“共享雙命中”情況下的“0011”,在(5)“互斥命中”情況下的“0100”,以及在(6)“修改命中”情況下的“0101”。
如上所述,判斷結(jié)果通知部分24配置為根據(jù)內(nèi)容的區(qū)別將保持判斷部分21作出的判斷結(jié)果通知給控制器30由,并在保持判斷部分21判斷得出該請(qǐng)求將要使用的最新數(shù)據(jù)已保持時(shí),將表示該請(qǐng)求將要使用的最新數(shù)據(jù)已保持的信息(這里,CST“0101”)作為保持判斷部分21作出的判斷結(jié)果通知給控制器30。
如圖2所示,由保持判斷部分21作出的判斷結(jié)果的優(yōu)先級(jí)從判斷結(jié)果(1)到判斷結(jié)果(6)變得越來(lái)越高(也就是,狀態(tài)值越大,優(yōu)先級(jí)越高)。因此,當(dāng)保持判斷部分21獲得上述多個(gè)判斷結(jié)果時(shí),判斷結(jié)果通知部分24基于優(yōu)先級(jí)順序僅將具有最高優(yōu)先級(jí)的判斷結(jié)果通知給LCST總結(jié)邏輯電路33。
判斷結(jié)果通知部分24采用2比特異常中斷狀態(tài)(在圖3中縮寫為ABTST),將繁忙判斷部分23作出的判斷結(jié)果通知給LCST總結(jié)邏輯電路33。也就是,在(a)“沒有異常中斷”情況下的“00”,在(b)“重試”情況下的01”,在(c)“繁忙”情況下的“10”。
如上所述,管線繁忙計(jì)數(shù)器25對(duì)LCST邏輯電路20與請(qǐng)求隊(duì)列13之間的寄存器12a中的有效請(qǐng)求數(shù)進(jìn)行計(jì)數(shù)。
換言之,如圖4所示,當(dāng)條件產(chǎn)生部分23判斷該請(qǐng)求為有效請(qǐng)求并且該請(qǐng)求已從條件產(chǎn)生部分23移動(dòng)到條件產(chǎn)生部分23的后續(xù)級(jí)寄存器12a中時(shí),管線繁忙計(jì)數(shù)器25將有效請(qǐng)求數(shù)(計(jì)數(shù)所得的數(shù)目)加一。
另一方面,當(dāng)有效請(qǐng)求通過(guò)管線寄存器12的末級(jí)寄存器12a時(shí),管線繁忙計(jì)數(shù)器25將有效請(qǐng)求數(shù)(計(jì)數(shù)所得的數(shù)目)減一。
注意,在圖4中,由斜線表示的寄存器12a保持有效請(qǐng)求。
有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26在存在有效請(qǐng)求時(shí),對(duì)目錄項(xiàng)數(shù)(有效目錄項(xiàng))進(jìn)行計(jì)數(shù),并在有效請(qǐng)求被設(shè)置在請(qǐng)求隊(duì)列13中時(shí)也就是,當(dāng)有效請(qǐng)求被作為有效目錄項(xiàng)新近放到請(qǐng)求隊(duì)列13中時(shí),將有效目錄項(xiàng)數(shù)(計(jì)數(shù)所得的數(shù)目)加一。
另一方面,當(dāng)與保持在請(qǐng)求隊(duì)列13中的有效目錄項(xiàng)相關(guān)的請(qǐng)求處理完成并且該有效目錄項(xiàng)變?yōu)榭諘r(shí),有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26將有效目錄項(xiàng)數(shù)減一。
加法器27通過(guò)將管線繁忙計(jì)數(shù)器25計(jì)數(shù)所得的有效請(qǐng)求數(shù)與有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26計(jì)數(shù)所得的有效目錄項(xiàng)數(shù)目相加,計(jì)算出有效請(qǐng)求數(shù)與有效目錄項(xiàng)數(shù)之和。
這里,繁忙判斷部分22對(duì)請(qǐng)求隊(duì)列13的繁忙判斷方法描述如下。繁忙判斷部分22將加法器27計(jì)算所得的有效請(qǐng)求數(shù)與有效目錄項(xiàng)數(shù)之和與請(qǐng)求隊(duì)列13的目錄項(xiàng)總數(shù)相比較,并且在該和與請(qǐng)求隊(duì)列13目錄項(xiàng)總數(shù)相等時(shí),判斷請(qǐng)求隊(duì)列13處于繁忙狀態(tài)。
換言之,如圖4所示,如果請(qǐng)求隊(duì)列13的目錄項(xiàng)總數(shù)是m(m是不小于1的整數(shù)),請(qǐng)求隊(duì)列13的有效目錄項(xiàng)數(shù)(也就是,由有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26計(jì)數(shù)所得的有效目錄項(xiàng)數(shù))是x(x是一個(gè)整數(shù);x<m),并且保持在n-級(jí)寄存器(n是不小于1的整數(shù))12a中的有效請(qǐng)求數(shù)(也就是,由管線繁忙計(jì)數(shù)器25計(jì)數(shù)所得的有效請(qǐng)求數(shù))是y(y是整數(shù))時(shí),其中,n-級(jí)寄存器12a插入到條件產(chǎn)生部分23(LCST產(chǎn)生邏輯電路)和請(qǐng)求隊(duì)列13之間?;谙旅娴谋磉_(dá)式(1),繁忙判斷部分22做出關(guān)于請(qǐng)求隊(duì)列13的繁忙判斷。
x+y=m...(1)當(dāng)有效請(qǐng)求(y)數(shù)與有效目錄項(xiàng)數(shù)(x)之和小于請(qǐng)求對(duì)列13(m)的目錄項(xiàng)總數(shù),繁忙部分22判斷該請(qǐng)求13不處于繁忙狀態(tài)。
如圖1所示,GCST判斷邏輯電路28在控制器(具體地,GCST產(chǎn)生邏輯電路33,將在后面描述)通知的確定結(jié)果是請(qǐng)求由自己處理時(shí),把請(qǐng)求作為有效目錄項(xiàng)放入請(qǐng)求隊(duì)列13,并且另一方面,在控制器30通知的確定結(jié)果是請(qǐng)求將不能由自己處理或需重新進(jìn)入(重試)時(shí),使請(qǐng)求無(wú)效,而不是把請(qǐng)求作為有效目錄項(xiàng)放入請(qǐng)求隊(duì)列13。
這里,每個(gè)管線處理器10的管線寄存器12的功能參照?qǐng)D1說(shuō)明。如上所述,每個(gè)管線處理器10的管線寄存器12彼此同步地且使用基于信息處理系統(tǒng)1的系統(tǒng)時(shí)鐘的相同的定時(shí),在將請(qǐng)求移動(dòng)到下游側(cè)的寄存器12a時(shí)保持該請(qǐng)求。
然后,在每個(gè)管線處理器10的最上游側(cè)與LCST產(chǎn)生邏輯電路20之間的寄存器12a,吸收每個(gè)管線處理器10的保持判斷部分21和繁忙判斷部分22的處理(判斷)時(shí)間,以便使由條件產(chǎn)生部分23和判斷結(jié)果通知部分24的處理與其他管線處理器10同步。
換言之,寄存器12a設(shè)置在管線寄存器12的最上游側(cè)與LCST邏輯電路20之間,其個(gè)數(shù)設(shè)置為使得在每個(gè)管線處理器10中,在與保持判斷部分21和繁忙判斷部分22的處理時(shí)間相同的時(shí)間期間,該請(qǐng)求通過(guò)這些寄存器12a移動(dòng)。
設(shè)置在LCST產(chǎn)生邏輯電路20和請(qǐng)求隊(duì)列13之間的寄存器12a的目的是吸收判斷結(jié)果通知部分24作出的判斷結(jié)果通知之后,控制器30(LCST總結(jié)邏輯電路33和GCST產(chǎn)生邏輯電路34的處理時(shí)間,將在后面描述)執(zhí)行的處理時(shí)間和GCST判斷邏輯電路28的處理時(shí)間。
換言之,寄存器12a設(shè)置在LCST產(chǎn)生邏輯電路20和請(qǐng)求隊(duì)列13之間,其個(gè)數(shù)設(shè)置為使得在與控制器30和GCST判斷邏輯電路28的總處理時(shí)間相同的時(shí)間期間,該請(qǐng)求通過(guò)這些寄存器移動(dòng)。
下一步,參照?qǐng)D1,說(shuō)明信息處理系統(tǒng)1的控制器30。控制器30由請(qǐng)求通知部分、管線寄存器32、LCST總結(jié)邏輯電路33和GCST產(chǎn)生邏輯電路34組成。
請(qǐng)求通知部分31通過(guò)判斷請(qǐng)求REQ0至REQn的每一個(gè)的優(yōu)先級(jí),從外部或者連接到每個(gè)管線處理器10的操作部分A和操作部分B發(fā)出的請(qǐng)求REQ0到REQn中選擇一個(gè)請(qǐng)求,同時(shí)使用GSA(全局系統(tǒng)地址;由GSA-SB0到GSA-SB7表示)通知每個(gè)管線處理器所選擇的請(qǐng)求。
管線寄存器32通過(guò)請(qǐng)求通知部分31來(lái)保持通知給每個(gè)管線處理器10的請(qǐng)求,并與管線處理器10的管線寄存器12相似包含多個(gè)多級(jí)寄存器32a,且基于信息處理系統(tǒng)1的系統(tǒng)時(shí)鐘,在將請(qǐng)求從上游側(cè)順序移動(dòng)到下游側(cè)時(shí)保持該請(qǐng)求。
管線寄存器32的在請(qǐng)求通知部分31和LCST總結(jié)邏輯電路33之間的寄存器32a用來(lái)吸收每個(gè)管線處理器10中從接收請(qǐng)求到判斷結(jié)果通知部分24通知所作出的判斷結(jié)果的時(shí)間,以和每個(gè)管線處理器10同步。
換言之,寄存器32a設(shè)置在請(qǐng)求通知部分31與LCST總結(jié)邏輯電路電路33之間,其個(gè)數(shù)設(shè)置為使得在每個(gè)管線處理器10中,在與從接收請(qǐng)求到判斷結(jié)果通知部分24通知所作出的判斷結(jié)果的處理時(shí)間相同的時(shí)間期間,該請(qǐng)求通過(guò)這些寄存器移動(dòng)。
LCST總結(jié)邏輯電路插入到管線寄存器32中間,利用LCST-SB0至LCST-SB7總結(jié)每個(gè)管線處理器10中由判斷結(jié)果通知部分24通知的保持判斷部分21作出的判斷結(jié)果(圖2所示的“CST”)和繁忙判斷部分22作出的判斷結(jié)果(圖3所示的“ABTST”)。
GCST產(chǎn)生邏輯電路34設(shè)置在管線寄存器32的后續(xù)級(jí),基于LCST總結(jié)邏輯電路33總結(jié)的每個(gè)管線處理器10中的保持判斷部分21和繁忙判斷部分22作出判斷結(jié)果,向多個(gè)管線處理器10中的一個(gè)分配請(qǐng)求,GCST產(chǎn)生邏輯電路由確定部分35和確定結(jié)果通知部分36構(gòu)成。
確定部分35確定信息處理系統(tǒng)1對(duì)請(qǐng)求的最終操作,并基于由LCST總結(jié)邏輯電路33總結(jié)的判斷結(jié)果確定請(qǐng)求是否被執(zhí)行,并且當(dāng)執(zhí)行請(qǐng)?jiān)撉髸r(shí),確定多個(gè)管線處理器中的一個(gè)處理該請(qǐng)求。
確定結(jié)果通知部分36使用GCST(全局緩存狀態(tài);由圖中的GCST-SB0至GCST-SB7標(biāo)識(shí)),將確定部分35作出的對(duì)該請(qǐng)求的最終操作(判斷結(jié)果)同時(shí)通知給每個(gè)管線處理器10的GCST判斷邏輯電路28。
這里,參照?qǐng)D5至圖8所示的示例,說(shuō)明通過(guò)確定部分35確定對(duì)請(qǐng)求的最終操作的方法。在圖5至圖8中,為了說(shuō)明和制圖的簡(jiǎn)化,未示出管線處理器10-3至10-7,并且進(jìn)一步,在控制器30中只示出LCST總結(jié)邏輯電路33,并且在管線處理器10-0至10-2中只示出數(shù)據(jù)信息保持部分14和LCST產(chǎn)生邏輯電路20。圖5至圖8所示的示例表示從控制器30向每個(gè)管線處理器10發(fā)出(通知)讀內(nèi)存的請(qǐng)求(以下稱為讀請(qǐng)求)的情況。
圖5所示的示例是這樣一種情況,在該情況中,每個(gè)管線處理器10-0至10-2中的LCST產(chǎn)生邏輯電路20的繁忙判斷部分22沒有檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài)(ABTST;“00”),管線處理器10-0的保持判斷部分21檢測(cè)到對(duì)讀請(qǐng)求(CST;“0001”)的數(shù)據(jù)的DIMM命中,并且管線處理器10-0至10-2中的保持判斷部分21沒有檢測(cè)到該讀請(qǐng)求的數(shù)據(jù)(CST;“0000”)。
這時(shí),如圖5所示,LCST總結(jié)邏輯電路33總結(jié)每個(gè)管線處理器10-0至10-2所通知的判斷結(jié)果。
然后,基于LCST總結(jié)邏輯電路33總結(jié)的判斷結(jié)果,GCST產(chǎn)生邏輯電路34確定對(duì)讀請(qǐng)求的最終操作。
這里,從10-0至10-2中任何一個(gè)管線處理器均沒有檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài),并且只有管線處理器10-0檢測(cè)到DIMM命中,因此,確定部分35確定向管線處理器10-0分配讀請(qǐng)求。換言之,確定結(jié)果通知部分36發(fā)出使所連接的操作部分A或B的DIMM去執(zhí)行對(duì)管線處理器10-1的請(qǐng)求隊(duì)列13的讀訪問的SLAVE_REQ(請(qǐng)求)。
當(dāng)確定部分35所作出的確定結(jié)果通過(guò)確定結(jié)果通知部分36通知給管線處理器10-0至10-2中的每一個(gè)時(shí),在管線處理器10-0中,GCST判斷邏輯電路28把管線寄存器12中保持的讀請(qǐng)求作為有效目錄項(xiàng)注冊(cè)到請(qǐng)求隊(duì)列13中,并且另一方面,在管線處理器10-1和10-2中,GCST判斷邏輯電路28使管線寄存器12保持的讀請(qǐng)求無(wú)效。
下一步,說(shuō)明圖6所示的示例。圖6所示的示例是這樣一種情況,在該情況中每個(gè)管線處理器10-0至10-2中的LCST產(chǎn)生邏輯電路20的繁忙判斷部分22沒有檢測(cè)到請(qǐng)求對(duì)列13的繁忙狀態(tài)(ABTST;“00”),管線處理器10-0的保持判斷部分對(duì)讀請(qǐng)求的數(shù)據(jù)檢測(cè)到DIMM命中(CST,“0001”),管線處理器10-1的保持判斷部分21檢測(cè)到對(duì)讀請(qǐng)求的數(shù)據(jù)的修改命中(CST;“0101”),并且管線處理器10-2的保持判斷部分21沒有檢測(cè)到該讀請(qǐng)求的數(shù)據(jù)(CST;“0000”)。
這時(shí),如圖6所示,LCST總結(jié)邏輯電路33總結(jié)出判斷結(jié)果,任何一個(gè)管線處理器10-0至10-2均未檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài),因此,確定部分35確定向已經(jīng)檢測(cè)到優(yōu)先級(jí)高于DIMM命中(CST;“0001”)的修改命中(CST;“0101”)的管線處理器10-1分配讀請(qǐng)求。
換言之,確定部分35沒有使管線處理器10-0執(zhí)行對(duì)所連接的操作部分A或B的DIMM的讀訪問而是使管線處理器10-1執(zhí)行對(duì)所連接的操作部分A或B的讀訪問。
當(dāng)接收到確定部分的判斷結(jié)果,在管線處理器10-0和10-2中使保持在管線寄存器12中的讀請(qǐng)求無(wú)效,并且在管線處理器10-1中將讀請(qǐng)求作為有效請(qǐng)求被注冊(cè)到請(qǐng)求隊(duì)列13中。
下一步,說(shuō)明圖7所示的示例如下。圖7所示的示例是這樣一種情況,在該情況中,每個(gè)管線處理器10-0至10-2中的LCST產(chǎn)生邏輯電路20的繁忙判斷部分22沒有檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài)(ABTST;“00”),管線處理器10-0的保持判斷部分21對(duì)檢測(cè)到讀請(qǐng)求的數(shù)據(jù)的DIMM命中(CST;“0001”),管線處理器10-1的保持判斷部分21檢測(cè)到對(duì)該讀請(qǐng)求的數(shù)據(jù)的共享雙命中(CST;“0011”),管線處理器10-2的保持判斷部分21檢測(cè)到對(duì)該讀請(qǐng)求的數(shù)據(jù)的共享單命中(CST;“0010”)。
這時(shí),如圖7所示,LCST總結(jié)邏輯電路33總結(jié)出判斷結(jié)果,由于任意一個(gè)管線處理器10-0至10-2均未檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài),確定部分35確定向已經(jīng)檢測(cè)到具有最高優(yōu)先級(jí)的共享雙命中(CST;“0011”)的管線處理器10-1分配讀請(qǐng)求。
同樣這種情況,在管線處理器10-0和10-2中使讀請(qǐng)求無(wú)效,并且在管線處理器10-1中將讀請(qǐng)求作為有效目錄項(xiàng)注冊(cè)到請(qǐng)求隊(duì)列13中。
下一步,說(shuō)明圖8所示的示例如下。圖8所示的示例是這樣一種情況,在該情況中,管線處理器10-0和10-2中的LCST產(chǎn)生邏輯電路20的繁忙判斷部分22沒有檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài)(ABTST;“00”),管線處理器10-1的繁忙判斷部分22檢測(cè)到請(qǐng)求隊(duì)列13的繁忙狀態(tài)(ABTST;“10”),管線處理器10-0的保持判斷部分21檢測(cè)到對(duì)讀請(qǐng)求的數(shù)據(jù)的DIMM命中(CST;“0001”),管線處理器10-1的保持判斷部分21檢測(cè)到對(duì)該讀請(qǐng)求的數(shù)據(jù)的修改命中(CST;“0101”),管線處理器10-2的保持判斷部分21沒有檢測(cè)到該讀請(qǐng)求的數(shù)據(jù)(CST;“0000”)。
這時(shí),如圖8所示,LCST總結(jié)邏輯電路33總結(jié)出判斷結(jié)果,由于在管線處理器10-1檢測(cè)到請(qǐng)求隊(duì)列13繁忙(ABTST;“10”),確定部分35不再將該讀請(qǐng)求分配給10-0到10-2管線處理器的任何一個(gè),而是將請(qǐng)求重新放入請(qǐng)求通知部分31以再次執(zhí)行該讀請(qǐng)求。
在此情況下,因此,發(fā)出該讀請(qǐng)求的無(wú)效給每個(gè)管線處理器10-0到10-2,從而使每個(gè)管線處理器10-0到10-2中的該讀請(qǐng)求無(wú)效。
這樣,確定部分35基于LCST總結(jié)邏輯電路33總結(jié)的判斷結(jié)果(參考圖2和圖3)的優(yōu)先級(jí)確定對(duì)該請(qǐng)求的最終操作。這時(shí),如果至少一個(gè)管線處理器10的繁忙判斷部分22的判斷結(jié)果是“重試”或“繁忙”,無(wú)論其他管線處理器10的保持判斷部分21的判斷結(jié)果是什么,確定部分35都不分配請(qǐng)求給任何管線處理器10,而是重新將請(qǐng)求加入到請(qǐng)求通知部分31以重試該請(qǐng)求。
如上所述,根據(jù)本發(fā)明實(shí)施例的信息處理系統(tǒng)1,由于每個(gè)管線處理器10設(shè)置有用于對(duì)保持在LCST產(chǎn)生邏輯電路20和請(qǐng)求隊(duì)列13之間的寄存器12a的有效請(qǐng)求數(shù)進(jìn)行計(jì)數(shù)的管線繁忙計(jì)數(shù)器25,繁忙判斷部分22可以無(wú)誤地做出請(qǐng)求隊(duì)列13的繁忙判斷,從而使條件產(chǎn)生部分23可以在請(qǐng)求被中途保持在管線寄存器12階段判斷請(qǐng)求是否是有效請(qǐng)求,。
此外,由于管線繁忙計(jì)數(shù)器25在請(qǐng)求通過(guò)最后續(xù)級(jí)寄存器12a時(shí)減少計(jì)數(shù)值而在條件產(chǎn)生部分23判斷請(qǐng)求是有效請(qǐng)求時(shí)增加計(jì)數(shù)值,這樣就不必設(shè)置用于判斷有效請(qǐng)求或無(wú)效請(qǐng)求是否保持在LCST產(chǎn)生邏輯電路20與請(qǐng)求隊(duì)列13間的每個(gè)寄存器12a的電路等,因此,可以利用更少的資源通過(guò)對(duì)有效請(qǐng)求數(shù)進(jìn)行計(jì)數(shù)來(lái)做出請(qǐng)求隊(duì)列13的繁忙判斷。
此外,無(wú)論在LCST產(chǎn)生邏輯電路20和請(qǐng)求隊(duì)列13間寄存器12a個(gè)數(shù)有多少,甚至那里的寄存器12a的數(shù)量非常巨大,都可以利用管線繁忙計(jì)數(shù)器25對(duì)保持在寄存器12a的有效請(qǐng)求數(shù)精確地計(jì)數(shù),因此可以無(wú)誤地執(zhí)行請(qǐng)求隊(duì)列13的繁忙管理。
此外,由于在結(jié)構(gòu)中設(shè)置有有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26和加法器27,繁忙判斷部分22可以只需通過(guò)判斷加法器27計(jì)算的管線繁忙計(jì)數(shù)器25的有效請(qǐng)求數(shù)與有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26的有效目錄項(xiàng)數(shù)之和是否等于請(qǐng)求隊(duì)列13的目錄項(xiàng)總數(shù),來(lái)做出請(qǐng)求隊(duì)列13的繁忙判斷,因此可以簡(jiǎn)化繁忙判斷部分22的結(jié)構(gòu)。
其他本發(fā)明不局限于上面描述的實(shí)施例,也是進(jìn)行不脫離本發(fā)明的概念和范圍的各種修改。
例如,在如上所述的實(shí)施例中每個(gè)管線處理器10連接到控制器30,但本發(fā)明不限于此,另外的結(jié)構(gòu)也可以,如IOU(輸入/輸出單元)連接到控制器30并被通知IOU請(qǐng)求以使IOU執(zhí)行該請(qǐng)求,在GCST產(chǎn)生邏輯電路中總結(jié)來(lái)自IOU的判斷結(jié)果(LCST)以確定對(duì)請(qǐng)求的最終操作,包括在GCST產(chǎn)生邏輯電路內(nèi)的IOU和每個(gè)管線處理器,并通知IOU和每個(gè)管線處理器10。在此情況下,如上述圖1所示,優(yōu)選寄存器32a將來(lái)自每個(gè)管線處理器10的判斷結(jié)果的總結(jié)與來(lái)自IOU判斷結(jié)果的總結(jié)彼此同步。
此外,保持判斷部分21、繁忙判斷部分22、條件產(chǎn)生部分23、判斷結(jié)果通知部分24、管線繁忙計(jì)數(shù)器25、有效目錄項(xiàng)數(shù)計(jì)數(shù)邏輯電路26、加法器27、每個(gè)管線處理器的GCST判斷邏輯電路28、請(qǐng)求通知部分31,LCST總結(jié)邏輯電路33、確定部分35、控制器30的確定結(jié)果通知部分36的功能可以由計(jì)算機(jī)(包括CPU、信息處理器以及各種終端)執(zhí)行預(yù)定應(yīng)用程序來(lái)實(shí)現(xiàn)。
該程序以記錄在計(jì)算機(jī)可讀記錄介質(zhì)的形式提供,計(jì)算機(jī)可讀記錄介質(zhì)比如軟盤、CD(CD-ROM、CD-R、CD-RW等),和DVD(DVD-ROM、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)。在此情況下,計(jì)算機(jī)從這樣的記錄介質(zhì)上讀取例如繁忙判斷程序,然后傳輸、存儲(chǔ)以及在內(nèi)部存儲(chǔ)裝置或外部存儲(chǔ)設(shè)備上使用它。也可以將程序存儲(chǔ)在存儲(chǔ)設(shè)備(記錄介質(zhì))比如磁盤、光盤、磁光盤上,然后經(jīng)由通信線將程序提供給計(jì)算機(jī)。
這里,計(jì)算機(jī)是一個(gè)概念,包括硬件和OS(操作系統(tǒng)),指硬件在OS的控制下運(yùn)行。在OS是不必要的且應(yīng)用程序單獨(dú)操作硬件的情況下,硬件自身相當(dāng)于一個(gè)計(jì)算機(jī)。硬件至少包含微處理器,比如CPU,和讀取存儲(chǔ)在記錄介質(zhì)上的計(jì)算機(jī)程序的裝置。
應(yīng)用程序如上所述的繁忙判斷程序包含一段程序代碼,以實(shí)現(xiàn)例如上述計(jì)算機(jī)中的保持判斷部分21、繁忙判斷部分22、條件產(chǎn)生部分23、判斷結(jié)果通知部分24、管線繁忙計(jì)數(shù)器25、有效目錄項(xiàng)數(shù)計(jì)算邏輯電路26、加法器27、GCST判斷邏輯電路28、請(qǐng)求通知部分31、LCST總結(jié)邏輯電路33、確定部分35以及確定結(jié)果通知部分36實(shí)現(xiàn)的功能,更多功能可以借助OS實(shí)現(xiàn)而不是在應(yīng)用程序中實(shí)現(xiàn)。
此外,作為本實(shí)施例中的記錄介質(zhì),除了上述軟盤、CD、DVD,磁盤、光盤以及磁光盤,各種計(jì)算機(jī)可讀介質(zhì)比如IC卡、ROM殼(ROMcartridge)、磁帶、打孔卡、計(jì)算機(jī)內(nèi)部存儲(chǔ)設(shè)備(存儲(chǔ)器比如RAM和ROM)、外部存儲(chǔ)設(shè)備,以及包含打印碼比如條碼等的打印設(shè)備都可以使用。
權(quán)利要求
1.一種信息處理系統(tǒng),包括多個(gè)管線處理器,連接至執(zhí)行請(qǐng)求的操作部分,用于彼此同步地執(zhí)行管線處理;和控制器,用于將請(qǐng)求同時(shí)通知給所述多個(gè)管線處理器,并確定對(duì)請(qǐng)求的最終操作,其中所述多個(gè)管線處理器的每一個(gè)管線處理器包括管線寄存器,包含多個(gè)能夠保持所述控制器所通知的請(qǐng)求的多級(jí)寄存器,用于在從上游側(cè)向下游側(cè)順序移動(dòng)請(qǐng)求時(shí)保持請(qǐng)求;請(qǐng)求隊(duì)列,設(shè)置在所述管線寄存器的后續(xù)級(jí),用于存儲(chǔ)請(qǐng)求;判斷部分,用于判斷存儲(chǔ)在所述請(qǐng)求隊(duì)列中的請(qǐng)求是否是能夠被所述請(qǐng)求隊(duì)列保持的有效請(qǐng)求;第一計(jì)數(shù)器,用于對(duì)所述判斷部分與所述請(qǐng)求隊(duì)列之間的所述多個(gè)多級(jí)寄存器中的所述有效請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于所述第一計(jì)數(shù)器計(jì)數(shù)所得的所述有效請(qǐng)求的數(shù)目,判斷所述請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);判斷結(jié)果通知部分,用于將所述繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果通知給所述控制器;所述判斷部分基于所述繁忙判斷部分作出的所述繁忙狀態(tài)判斷結(jié)果做出所述判斷;所述控制器包括請(qǐng)求通知部分,用于將請(qǐng)求同時(shí)通知給所述多個(gè)管線處理器;確定部分,用于基于所述多個(gè)管線處理器的所述判斷結(jié)果通知部分所通知的所述繁忙狀態(tài)判斷結(jié)果,確定對(duì)該請(qǐng)求的最終操作;和確定結(jié)果通知部分,用于將所述確定部分作出的判斷結(jié)果同時(shí)通知給所述多個(gè)管線處理器。
2.如權(quán)利要求1所述的信息處理系統(tǒng),其中,如果所述繁忙判斷部分判斷所述請(qǐng)求隊(duì)列處于繁忙狀態(tài),所述判斷部分判斷得出請(qǐng)求不是所述有效請(qǐng)求。
3.如權(quán)利要求1所述的信息處理系統(tǒng),其中,所述多個(gè)管線處理器的每一個(gè)管線處理器包括第二計(jì)數(shù)器,用于對(duì)所述請(qǐng)求隊(duì)列的有效目錄項(xiàng)的數(shù)目進(jìn)行計(jì)數(shù);和計(jì)算部分,用于計(jì)算所述第一計(jì)數(shù)器計(jì)數(shù)所得的所述有效請(qǐng)求的數(shù)目與所述第二計(jì)數(shù)器計(jì)數(shù)的所述有效目錄項(xiàng)的數(shù)目之和;所述繁忙判斷部分將所述計(jì)算部分計(jì)算所得的所述和與所述請(qǐng)求隊(duì)列的目錄項(xiàng)的總數(shù)進(jìn)行比較,并在所述和等于所述目錄項(xiàng)的總數(shù)時(shí),判斷所述請(qǐng)求隊(duì)列處于繁忙狀態(tài)。
4.如權(quán)利要求3所述的信息處理系統(tǒng),其中如果所述有效請(qǐng)求作為所述有效目錄項(xiàng)新近放入所述請(qǐng)求隊(duì)列,所述第二計(jì)數(shù)器將所述有效目錄項(xiàng)的數(shù)目加一,并且另一方面,如果與保持在所述請(qǐng)求隊(duì)列中的所述有效目錄項(xiàng)相關(guān)的請(qǐng)求處理完成,所述第二計(jì)數(shù)器將所述有效目錄項(xiàng)的數(shù)目減一。
5.如權(quán)利要求1所述的信息處理系統(tǒng),其中如果所述判斷部分判斷請(qǐng)求是所述有效請(qǐng)求,所述第一計(jì)數(shù)器將所述有效請(qǐng)求的數(shù)目加一,并且另一方面,如果所述有效請(qǐng)求經(jīng)過(guò)了所述管線寄存器的最后一級(jí)寄存器,所述第一計(jì)數(shù)器將所述有效請(qǐng)求的數(shù)目減一。
6.如權(quán)利要求1所述的信息處理系統(tǒng),其中所述多個(gè)管線處理器的每一個(gè)管線處理器包括決定部分,該決定部分用于在所述控制器的所述確定結(jié)果通知部分所通知的所述確定結(jié)果是該請(qǐng)求將由自己處理時(shí),將該請(qǐng)求作為所述有效目錄項(xiàng)放入所述請(qǐng)求隊(duì)列,另一方面,用于在所述確定結(jié)果是該請(qǐng)求將不由自己完成時(shí),使所述請(qǐng)求無(wú)效。
7.如權(quán)利要求1所述的信息處理系統(tǒng),其中所述多個(gè)管線處理器的每一個(gè)管線處理器包括數(shù)據(jù)信息保持部分,用于保持關(guān)于這種數(shù)據(jù)的數(shù)據(jù)信息,這種數(shù)據(jù)保持在連接著的所述操作部分的存儲(chǔ)部分中;保持判斷部分,用于基于保持在所述數(shù)據(jù)信息保持部分中的所述數(shù)據(jù)信息,判斷連接著的所述操作部分是否保持有所述控制器所通知的請(qǐng)求將要使用的數(shù)據(jù);所述判斷結(jié)果通知部分將所述保持判斷部分作出的保持判斷結(jié)果通知給所述控制器;和所述判斷部分基于所述保持判斷部分作出的保持判斷結(jié)果做出所述判斷。
8.如權(quán)利要求7所述的信息處理系統(tǒng),其中所述控制器的所述確定部分基于所述多個(gè)管線處理器的所述判斷結(jié)果通知部分所通知的所述保持判斷部分作出的保持判斷結(jié)果,確定對(duì)請(qǐng)求的最終操作。
9.如權(quán)利要求7所述的信息處理系統(tǒng),其中所述保持判斷部分基于所述數(shù)據(jù)信息判斷該請(qǐng)求所使用的數(shù)據(jù)是否是最新數(shù)據(jù);和所述判斷結(jié)果通知部分在所述保持判斷部分判斷得出該請(qǐng)求所使用的數(shù)據(jù)是最新數(shù)據(jù)時(shí),將關(guān)于所述請(qǐng)求所使用的最新數(shù)據(jù)的保持的信息作為所述保持判斷部分的保持判斷結(jié)果通知給所述控制器。
10.如權(quán)利要求8所述的信息處理系統(tǒng),其中所述保持判斷部分基于所述數(shù)據(jù)信息判斷該請(qǐng)求所使用的數(shù)據(jù)是否是最新數(shù)據(jù);和所述判斷結(jié)果通知部分在所述保持判斷部分判斷得出該請(qǐng)求所使用的數(shù)據(jù)是最新數(shù)據(jù)時(shí),將關(guān)于所述請(qǐng)求所使用的最新數(shù)據(jù)的保持的信息作為所述保持判斷部分的保持判斷結(jié)果通知所述控制器。
11.一種管線處理器,連接至執(zhí)行請(qǐng)求的操作部分和確定對(duì)請(qǐng)求的最終操作并通知該請(qǐng)求的控制器,用于和其他管線處理器同步地執(zhí)行管線處理,所述管線處理器包括管線寄存器,包含多個(gè)能夠保持所述控制器所通知的請(qǐng)求的多級(jí)寄存器,用于在從上游側(cè)到下游側(cè)順序移動(dòng)請(qǐng)求時(shí)保持請(qǐng)求;請(qǐng)求隊(duì)列,設(shè)置在所述管線寄存器的后續(xù)級(jí),用于存儲(chǔ)請(qǐng)求;判斷部分,用于判斷存儲(chǔ)在所述請(qǐng)求隊(duì)列中的請(qǐng)求是否是能夠被所述請(qǐng)求隊(duì)列保持的有效請(qǐng)求;第一計(jì)數(shù)器,用于對(duì)所述判斷部分與所述請(qǐng)求隊(duì)列之間的多個(gè)多級(jí)寄存器中的所述有效請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于所述第一計(jì)數(shù)器計(jì)數(shù)所得的所述有效請(qǐng)求的數(shù)目,判斷所述請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);判斷結(jié)果通知部分,用于將所述繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果通知給所述控制器;其中所述判斷部分基于所述繁忙判斷部分作出的所述繁忙狀態(tài)判斷結(jié)果做出所述判斷。
12.如權(quán)利要求11所述的管線處理器,其中,如果所述繁忙判斷部分判斷所述請(qǐng)求隊(duì)列將處于繁忙狀態(tài),所述判斷部分判斷得出該請(qǐng)求不是所述有效請(qǐng)求。
13.如權(quán)利要求11所述的管線處理器,還包括第二計(jì)數(shù)器,用于對(duì)所述請(qǐng)求隊(duì)列的有效目錄項(xiàng)的數(shù)目進(jìn)行計(jì)數(shù);計(jì)算部分,用于計(jì)算所述第一計(jì)數(shù)器計(jì)數(shù)所得的所述有效請(qǐng)求的數(shù)目與所述第二計(jì)數(shù)器計(jì)數(shù)的所述有效目錄項(xiàng)的數(shù)目之和;所述繁忙判斷部分將所述計(jì)算部分計(jì)算所得的所述和與所述請(qǐng)求隊(duì)列的目錄項(xiàng)的總數(shù)進(jìn)行比較,如果所述和等于所述目錄項(xiàng)的總數(shù)則判斷所述請(qǐng)求隊(duì)列處于繁忙狀態(tài)。
14.如權(quán)利要求13所述的管線處理器,其中如果所述有效請(qǐng)求作為所述有效目錄項(xiàng)新近放入所述請(qǐng)求隊(duì)列,所述第二計(jì)數(shù)器將所述有效目錄項(xiàng)的數(shù)目加一,并且另一方面,如果與保持在所述請(qǐng)求隊(duì)列中的所述有效目錄項(xiàng)相關(guān)的請(qǐng)求處理完成,所述第二計(jì)數(shù)器將所述有效目錄項(xiàng)的數(shù)目減一。
15.如權(quán)利要求11所述的管線處理器,其中如果所述判斷部分判斷請(qǐng)求是所述有效請(qǐng)求,所述第一計(jì)數(shù)器將所述有效請(qǐng)求的數(shù)目加一,并且另一方面,如果所述有效請(qǐng)求經(jīng)過(guò)了所述管線寄存器的最后一級(jí)寄存器,所述第一計(jì)數(shù)器將所述有效請(qǐng)求的數(shù)目減一。
16.如權(quán)利要求11所述的管線處理器,還包括決定部分,該決定部分用于在所述控制器所通知的對(duì)該請(qǐng)求的最終確定結(jié)果是該請(qǐng)求將由自已處理時(shí),將所述請(qǐng)求作為所述有效目錄項(xiàng)放入所述請(qǐng)求隊(duì)列,并且另一方面,在該請(qǐng)求將不由自己完成時(shí),使所述請(qǐng)求無(wú)效。
17.如權(quán)利要求11所述的管線處理器,還包括數(shù)據(jù)信息保持部分,用于保持關(guān)于這種數(shù)據(jù)的數(shù)據(jù)信息,這種數(shù)據(jù)保持在連接著的所述操作部分的存儲(chǔ)部分中;保持判斷部分,用于基于保持在所述數(shù)據(jù)信息保持部分中的所述數(shù)據(jù)信息,判斷連接著的所述操作部分是否保持有所述控制器所通知的請(qǐng)求將要使用的數(shù)據(jù);其中所述判斷結(jié)果通知部分將所述保持判斷部分作出的保持判斷結(jié)果通知給所述控制器;和所述判斷部分基于所述保持判斷部分作出的保持判斷結(jié)果做出所述判斷。
18.如權(quán)利要求17所述的管線處理器,其中所述保持判斷部分基于所述數(shù)據(jù)信息判斷該請(qǐng)求所使用的數(shù)據(jù)是否是最新數(shù)據(jù);和所述判斷結(jié)果通知部分在所述保持判斷部分判斷得出該請(qǐng)求所使用的數(shù)據(jù)是最新數(shù)據(jù)時(shí),將關(guān)于所述請(qǐng)求所使用的最新數(shù)據(jù)的保持的信息作為所述保持判斷部分的保持判斷結(jié)果通知給所述控制器。
19.一種計(jì)算機(jī)可讀記錄介質(zhì),其中記錄有繁忙判斷程序,該繁忙判斷程序用于使計(jì)算機(jī)完成在請(qǐng)求被中途保持在多個(gè)管線處理器每一個(gè)的管線寄存器階段為該請(qǐng)求判斷請(qǐng)求隊(duì)列的繁忙狀態(tài)的功能;該多個(gè)管線處理器連接至執(zhí)行請(qǐng)求的操作部分和確定對(duì)請(qǐng)求的最終操作并通知該請(qǐng)求的控制器,用于彼此同步地執(zhí)行管線處理,并分別包括管線寄存器,包含多個(gè)能夠保持所述控制器所通知的請(qǐng)求的多級(jí)寄存器,用于在從上游側(cè)到下游側(cè)順序移動(dòng)請(qǐng)求時(shí)保持請(qǐng)求;請(qǐng)求隊(duì)列,設(shè)置在所述管線寄存器的后續(xù)級(jí),所述程序指示計(jì)算機(jī)完成以下功能判斷部分,用于在所述請(qǐng)求被中途保持在所述管線寄存器階段判斷存儲(chǔ)在所述請(qǐng)求隊(duì)列中的請(qǐng)求是否是能夠被所述請(qǐng)求隊(duì)列保持的有效請(qǐng)求;第一計(jì)數(shù)器,用于對(duì)所述判斷部分與所述請(qǐng)求隊(duì)列之間的所述多個(gè)多級(jí)寄存器中的所述有效請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于所述第一計(jì)數(shù)器計(jì)數(shù)所得的所述有效請(qǐng)求的數(shù)目,判斷所述請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);與此同時(shí),所述繁忙判斷程序使所述計(jì)算執(zhí)行使所述判斷部分基于所述繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果做出所述判斷。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀記錄介質(zhì),所述繁忙判斷程序指示計(jì)算機(jī)完成以下功能第二計(jì)數(shù)器,用于對(duì)所述請(qǐng)求隊(duì)列的有效目錄項(xiàng)的數(shù)目進(jìn)行計(jì)數(shù);以及計(jì)算部分,用于計(jì)算所述第一計(jì)數(shù)器計(jì)數(shù)所得的所述有效請(qǐng)求的數(shù)目與所述第二計(jì)數(shù)器計(jì)數(shù)的所述有效目錄項(xiàng)的數(shù)目之和;所述繁忙判斷程序指示計(jì)算機(jī)使所述繁忙判斷部分將所述計(jì)算部分計(jì)算所得的所述和與所述請(qǐng)求隊(duì)列的目錄項(xiàng)的總數(shù)進(jìn)行比較,并在所述和等于所述目錄項(xiàng)的總數(shù)時(shí),判斷所述請(qǐng)求隊(duì)列處于繁忙狀態(tài)。
全文摘要
在本發(fā)明中,為了在請(qǐng)求被中途保持在管線處理器的管線寄存器階段在進(jìn)行寄存器的繁忙判斷時(shí)不發(fā)生誤判且不增加將請(qǐng)求存儲(chǔ)到設(shè)置在管線寄存器最后一級(jí)的寄存器的硬件資源,設(shè)置有第一計(jì)數(shù)器,用于對(duì)插置在管線寄存器中且用于判斷請(qǐng)求是否是有效請(qǐng)求的判斷部分與請(qǐng)求隊(duì)列之間的多個(gè)多級(jí)寄存器中的有效請(qǐng)求數(shù)進(jìn)行計(jì)數(shù);繁忙判斷部分,用于基于第一計(jì)數(shù)器計(jì)數(shù)所得的有效請(qǐng)求的數(shù)目,判斷請(qǐng)求隊(duì)列是否處于繁忙狀態(tài);并且由判斷部分基于所述繁忙判斷部分作出的繁忙狀態(tài)判斷結(jié)果做出所述判斷。
文檔編號(hào)G06F9/38GK1834900SQ20051008703
公開日2006年9月20日 申請(qǐng)日期2005年7月25日 優(yōu)先權(quán)日2005年3月16日
發(fā)明者松井孝夫, 細(xì)川由佳, 畑井田誠(chéng), 植木俊和, 岡田誠(chéng)之 申請(qǐng)人:富士通株式會(huì)社