專利名稱:通過合并存儲操作進行集中存儲的處理機及方法
本說明書的技術(shù)領域一般地涉及數(shù)據(jù)處理的方法和系統(tǒng),尤其涉及用于把數(shù)據(jù)存儲到數(shù)據(jù)處理系統(tǒng)中的存儲器的一種處理機和方法。再更具體地,其技術(shù)領域涉及用于通過合并存儲指令進行集中存儲的一種處理機和方法。
現(xiàn)有技術(shù)的典型處理機包括多個執(zhí)行部件,它們各優(yōu)化成執(zhí)行相應類型的指令。這樣,例如,一個處理機可包括分別用于執(zhí)行定點指令、浮點指令、轉(zhuǎn)移指令和裝入及存儲指令的定點部件(FXU)、浮點部件(FPU)、轉(zhuǎn)移處理部件(BPU)和裝入-存儲部件(LSU)。
當從存儲器檢索一條由處理機執(zhí)行的存儲指令時,首先譯碼該指令以確定該指令要調(diào)度到的執(zhí)行部件。在存儲指令被譯碼之后,該存儲指令被調(diào)度到LSU以供執(zhí)行。執(zhí)行一條存儲指令需要計算和該存儲指令關聯(lián)的數(shù)據(jù)要寫到的存儲單元的有效地址(EA)。在一條存儲指令結(jié)束之后,即計算出該存儲指令的EA之后,通過把和該存儲指令關聯(lián)的數(shù)據(jù)提交給存儲隊列完成該存儲指令,該數(shù)據(jù)將從存儲隊列寫到規(guī)定的存儲單元。
為了減少存儲及檢索數(shù)據(jù)所需的周期數(shù)量,處理機通常裝備機載高級數(shù)據(jù)高速緩存。這種高級數(shù)據(jù)高速緩存允許少至在單個周期內(nèi)執(zhí)行數(shù)據(jù)存取。由于對超高速緩存數(shù)據(jù)的數(shù)據(jù)存取伴隨著最小數(shù)據(jù)等待時間,對存儲器中相同雙字的多次相繼存儲只在性能效率上造成小的影響。但是在不具有超高速緩存或者其存儲指令是超高速緩存禁止的或是直寫的數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)下,由于附加的總線訪向的等待時間對相同雙字的多次相繼存儲會造成性能效率低下。
從而,需要為在數(shù)據(jù)處理系統(tǒng)中對存儲器存儲數(shù)據(jù)提供一種對同一雙字進行多次存儲訪問所需的周期數(shù)據(jù)為最小的有效方法和系統(tǒng)。
從而本公開的一個目的是提供一種用于數(shù)據(jù)處理的方法和系統(tǒng)。
本公開的另一個目的是為在數(shù)據(jù)處理系統(tǒng)中把數(shù)據(jù)存儲到存儲器中提供一種改進的處理機及方法。
本公開的再一個目的是提供一種用于通過合并存儲指令進行集中存儲的處理機和方法。
如現(xiàn)要所說明的那樣達到上述目的。標記以超高速緩存中的一個或多個單元為目標的第一和第二存儲指令。判定該超高速緩存是否忙碌。響應判定超高速緩存為忙碌,由第一和第二存儲指令規(guī)定的操作被合并到一個單個的包含著由第一及第二存儲指令規(guī)定的存儲操作的存儲操作中。然后,執(zhí)行該單個的存儲操作。
在下述詳細的書面說明中,上述以及其它的目的、特點和優(yōu)點將變?yōu)榍逦?br>
在附屬權(quán)利要求書中敘述所確信的本發(fā)明的新穎特性。而本發(fā)明本身,其使用的最佳方式以及其它目的和優(yōu)點可通過參考與附圖連帶在一起的對示范實施方式的下述詳細說明得到最好的理解。附圖是
圖1是一種利用集中存儲以增強對存儲器的存儲訪問性能的處理機的一種最佳實施方式。
圖2是表示圖1中所示的處理機的裝入-存儲部件(LSU)的更詳盡方塊圖;圖3A和3B是流程圖,說明圖1中所示的處理機采用的集中存儲的方法;圖4A-4C表示圖2中所示的裝入-存儲部件(LSU)的存儲隊列中的集中存儲。
圖5是一個時序圖,說明集中存儲操作中不同事件的時序。
現(xiàn)參考各附圖尤其參考圖1,圖1中表示一種概括地在10處表示的處理機的示范性實施方式,該處理機用于根據(jù)在附屬權(quán)利要求書中所敘述的本發(fā)明處理信息。在所示的示范性實施方式中,處理機10由一個單塊集成電路的超標量微處理機構(gòu)成。因此,如下面進一步討論的,處理機10包括各種用集成電路形成的執(zhí)行部件、寄存器、緩沖器、存儲器以及其它功能部件。處理機10最好由可從IBM公司微電子部購到的PowerPC系列中的一種微處理機組成,這種系列的微處理機是按照精簡指令系統(tǒng)計算(RISC)技術(shù)運行的;不過,熟練的技術(shù)人員可從下述說明中意識到可使用其它合適的處理機。如圖1中所示,處理機10通過處理機10之內(nèi)的總線接口部件(BIU)12和系統(tǒng)總線11連接。通過參與總線仲裁,BIU12控制處理機10和其它與系統(tǒng)總線11連接的設備(諸如未示出的主存儲器)之間的信息傳送。處理機、系統(tǒng)總線11以及其它和系統(tǒng)總線11連接的設備一起構(gòu)成一個主機數(shù)據(jù)處理系統(tǒng)。
BIU12和處理機10內(nèi)的指令高速緩存及MMU(存儲管理部件)14和數(shù)據(jù)高速緩存及MMU16連接。例如在指令高速緩存及MMU14和數(shù)據(jù)高速緩存及MMU16中的這種高速緩存器可使處理機10以相對快的存取時間訪問事先從主存儲器傳送到超高速緩存中的數(shù)據(jù)或指令子集,從而提高了主機數(shù)據(jù)處理系統(tǒng)的運行速度。指令高速緩存及MMU14還和順序取出器17連接,后者在每個周期內(nèi)從指令高速緩存和MMU14中取出供執(zhí)行的指令。順序取出器17把從指令高速緩存及MMU14中取出的轉(zhuǎn)移指令發(fā)送到轉(zhuǎn)移處理部件(BPU)18以供執(zhí)行,但是在指令隊列19中臨時性地存儲順序指令以供處理機10內(nèi)的其它執(zhí)行電路執(zhí)行。
在所示的示范性實施方式中,除BPU18之外,處理機10的執(zhí)行電路含有多個用于執(zhí)行順序指令的執(zhí)行部件,包括定點部件(FXU)22、裝入-存儲部件(LSU)28以及浮點部件(FPU)30。每個執(zhí)行部件22、28和30一般在每個處理機周期之內(nèi)執(zhí)行一種特定類型的順序指令中的一條或幾條指令。例如,F(xiàn)XU22進行定點數(shù)學和邏輯運算,諸如利用從規(guī)定的通用寄存器(GPRs)32或者GPR更名緩沖器33接收的源操作數(shù)進行加法、減法、“與”操作、“或”操作和“異或”操作等運算。在執(zhí)行一條定點指令之后,F(xiàn)XU22把該指令的數(shù)據(jù)結(jié)果輸出到GPR更名緩沖器33,后者在通過把結(jié)果數(shù)據(jù)從GPR更名緩沖器33傳送到一個或多個GPRS32以完成該指令之前為結(jié)果數(shù)據(jù)提供暫時的存儲。相反地,F(xiàn)PU30一般對從浮點寄存器(FPRs)36或FPR更名緩沖器37接收的源操作數(shù)進行單、雙精度浮點算術(shù)運算和邏輯運算,諸如浮點乘法和除法。FPU30把執(zhí)行浮點指令產(chǎn)生的數(shù)據(jù)輸出到選定的FPR更名緩沖器37,后者在通過把結(jié)果數(shù)據(jù)從FPR更名緩沖器37傳送到FPR36以完成指令執(zhí)行之前暫時存儲結(jié)果數(shù)據(jù)。如其名字所意味的,LSU28一般執(zhí)行浮點和定點指令,這些指令或者把數(shù)據(jù)從存儲器(即數(shù)據(jù)高速緩存及MMU16或主存儲器中的一個)裝入到選定的GPRs32或FPRs36,或者把來自選定的一個GPRs32,GPR更名緩沖器、FPRs36或FPR更名緩沖器37中的數(shù)據(jù)存儲到存儲器。
處理機10利用流水線技術(shù)和不按序的指令執(zhí)行進一步改進其超標量體系結(jié)構(gòu)的性能。因此,只要保持數(shù)據(jù)相關性可以按任何次序由FXU22、LSU28和FPU30執(zhí)行指令。另外,按流水線各階段的順序由各個FXU22、LSU28和FPU30處理指令。作為典型的高性能處理機,每條指令按五個不同的流水線階段得到處理,這些階段即為取出、譯碼/調(diào)度、執(zhí)行、結(jié)束和完成。
在取出階段,順序取出器17從指令高速緩存及MMU14檢索一個或多個涉及一個或多個存儲器地址的指令。順序取出器17把從指令高速緩存及MMU14中取出的順序指令存儲到指令隊列19中。但是,順序取出器17從指令流中去掉(分出)轉(zhuǎn)移指令并把轉(zhuǎn)移指令送到BPU18以供執(zhí)行。BPU18包括轉(zhuǎn)移預測機制,一種實施方式里的這種機制含有例如轉(zhuǎn)移歷史表的動態(tài)預測機制,它使BPU18通過預測是否要采取該轉(zhuǎn)移推測式地執(zhí)行未定的條件轉(zhuǎn)移指令。
在譯碼/調(diào)度階段,調(diào)度部件20典型地按程序次序?qū)碜灾噶铌犃?9的一個或多個指令進行譯碼并調(diào)度到執(zhí)行部件22、28和30。此外,調(diào)度部件20把GPR更名緩沖器組33或FPR更名緩沖器組37中的一個更名緩沖器分配給每個調(diào)度后的指令的結(jié)果數(shù)據(jù)。一旦調(diào)度后,還把指令存儲到完成部件40的多槽完成緩沖器中以等待完成。按照所示的示范性實施方式,處理機10利用唯一指令標識符在不按序的執(zhí)行期間跟蹤被調(diào)度指令的程序次序。
在執(zhí)行階段,執(zhí)行部件22、28和30可能在得到指明指令的操作數(shù)和執(zhí)行資源時執(zhí)行從調(diào)度部件20接收的指令。執(zhí)行部件22、28和30中的每個最好裝備一個保留站,用于在可得到操作數(shù)或執(zhí)行資源前存儲調(diào)度到該執(zhí)行部件的指令。在一條指令的執(zhí)行終止之后,如果有數(shù)據(jù)結(jié)果,執(zhí)行部件22、28和30根據(jù)指令類型把數(shù)據(jù)結(jié)果存儲到GPR更名緩沖器33或FPR更名緩沖器37中的一個里。接著,執(zhí)行部件22、28和30通知完成部件40哪條指令已結(jié)束執(zhí)行。最后,把按程序次序完成的指令脫離完成部件40的完成緩沖器。通過把指令的數(shù)據(jù)結(jié)果從GPR更名緩沖器33和FPR更名緩沖器37分別傳送到GPRs32和FPRs36,完成FXU22和FPU30執(zhí)行的指令。通過把結(jié)束的指令傳送到完成存儲隊列中或者完成裝入隊列中完成由LSU28執(zhí)行的裝入和存儲指令,從這兩個隊列將進行指令所指示的裝入和存儲操作。
現(xiàn)參照圖2,圖中表示圖1所示的裝入-存儲部件(LSU)28的執(zhí)行電路的較詳細方塊圖。如所示,LSU28包括控制由調(diào)度部件20調(diào)度給LSU28的裝入和存儲指令的執(zhí)行的執(zhí)行控制單元50。執(zhí)行控制單元50包括用于譯碼裝入和存儲指令的操作碼的邏輯線路以及用于比較存儲指令地址和屬性以確定是否合并存儲指令的邏輯線路。LSU28還包括地址計算單元52,該單元接收伴隨每條裝入和存儲指令的32位地址操作數(shù)。利用加法器70,地址計算單元52對地址操作數(shù)求和以生成相關指令的32位有效地址(EA)。LSU28還包括存儲隊列54和裝入隊列55,它們管理EA、數(shù)據(jù)以及伴隨調(diào)度到LSU28的裝入和存儲指令的其它指令信息。
存儲隊列54由結(jié)束存儲隊列(FSQ)58和完成存儲隊列(CSQ)60以及其它電路和調(diào)整邏輯62和多路復用器64、66組成,F(xiàn)SQ58和CSQ60各包括一個多項的先進先出子隊列。如所示,F(xiàn)SQ58和CSQ60中的每項包括一個32位的存儲地址計算單元52生成的EA的EA字段,一個規(guī)定那個(或那些)GPR32或FPR36存儲著和該存儲指令相關的數(shù)據(jù)的數(shù)據(jù)源字段,以及一個64位的容納要存儲的數(shù)據(jù)的數(shù)據(jù)字段。FSQ58和CSQ60的每個項的EA字段和數(shù)據(jù)字段的有效性分別由有效字段中有效位的狀態(tài)指示。FSQ58和CSQ60中的每個項還包含幾個屬性字段,包括一個指示數(shù)據(jù)的字節(jié)尺寸的數(shù)據(jù)量字段、一個規(guī)定那些數(shù)據(jù)字節(jié)包含著有效數(shù)據(jù)的字節(jié)啟用(BE)字段、一個含有與數(shù)據(jù)的格式屬性有關的格式字段以及一個指示數(shù)據(jù)的MMU屬性的MMU屬性字段。除了存儲在FSQ58的一項的EA字段中之外,為每條存儲指令由地址計算單元52生成的EA還傳送到執(zhí)行控制單元50,如下文中詳細說明的那樣,執(zhí)行控制單元50利用該EA確定該相關的存儲指令能否和另一條存儲指令合并以便提高處理機的效率。如在參考數(shù)字59處所示,執(zhí)行控制單元50還和FSQ58連接,從而執(zhí)行控制單元50可以讀FSQ58的底項,以把底項中存儲指令的EA和屬性與另一條存儲指令的EA和屬性進行比較來確定這兩條存儲指令是否可以合并。在把一條存儲指令存儲到FSQ58時,該存儲指令的EA被傳送到數(shù)據(jù)高速緩存MMU16的地址轉(zhuǎn)換單元80,以便把該存儲指令的EA轉(zhuǎn)換成物理地址并且判定該存儲指令是否產(chǎn)生異常。由地址轉(zhuǎn)換單元80回送到FSQ58的物理地址位(位0-20)被存儲到FSQ58中適當項的EA字段中。
仍參照存儲隊列54,如果一條存儲指令出現(xiàn)在FSQ58的底項內(nèi),該存儲指令被認為是用于在一個周期內(nèi)完成的。在一種實施方式中,僅當一條存儲指令是處理機10之中最老的指令才完成該存儲指令,即,若該存儲指令存儲在完成部件40的底部完成緩沖器存儲槽時;但是,在別的實施方式中允許推測式的完成,在其它的完成緩沖器槽中的存儲指令可以被完成。一旦一條存儲指令證實成要完成,該存儲指令的EA和數(shù)據(jù)被從FSQ58的底部項中移出并分別傳送到多路復用器64和66。除了該存儲指令的32位EA之外,多路復用器64還接收第二個輸入,該輸入由和000位銜接的存儲指令EA的29個高位構(gòu)成,000位是每個64位雙字的三個低位地址位。這樣,在執(zhí)行控制單元50的控制下,多路復用器64選擇從FSQ58中傳送過來的EA或者選擇64位雙字的EA中的一個EA,該雙字包含著由規(guī)定EA定址的存儲位置。然后,多路復用器64把選定的EA存儲到CSQ60中的一項里。
多路復用器66的輸入包括一個旁路輸入68、一個反饋輸入70和一個FSQ輸入72,F(xiàn)SQ輸入72提供來自FSQ58的底項中的數(shù)據(jù)字段的數(shù)據(jù)。為了避免不必要的LSU空閑周期,當FSQ58空時旁路輸入68允許存儲指令數(shù)據(jù)繞過FSQ58。另一方面,反饋輸入70提供存儲在CSQ60的底項的64位數(shù)據(jù)字段里的數(shù)據(jù),用于選擇或者可能和多路復用器66的其它數(shù)據(jù)輸入組合。根據(jù)從執(zhí)行控制單元50接收到的控制信號,多路復用器66選擇FSQ輸入72或者旁路輸入68中的一個里的各數(shù)據(jù)位,而且若要合并存儲指令則選擇反饋輸入70中的零個或者更多的位。在由多路復用器66選擇和組合數(shù)據(jù)位之后,這些數(shù)據(jù)位被存儲到CSQ60的一項的64位數(shù)據(jù)字段中。在FSQ58和CSQ60中采用64位數(shù)據(jù)字段可允許多路復用器66合并單精度及雙精度數(shù)據(jù),從而使完成集中存儲所需的附加硬件為最少。例如,F(xiàn)SQ58和CSQ60中的每項能存儲單個64位的雙精度數(shù)據(jù)字。此外,如下面參照圖4A-4C詳細說明的那樣,CSQ60中的各項可以存儲兩個不同的指向數(shù)據(jù)高速緩存82中連續(xù)地址的32位單精度數(shù)據(jù)字。
如所示,存儲隊列54還包括調(diào)整邏輯線路62,如果一條存儲指令和別的存儲指令合并該線路適當?shù)匦薷暮驮撝噶钣嘘P的數(shù)據(jù)源字段、數(shù)據(jù)量字段以及字節(jié)啟用字段。當從FSQ58向CSQ60傳送一條存儲指令時,執(zhí)行控制單元50向完成部件40發(fā)送結(jié)束報文86以指示那條存儲指令已結(jié)束。接著當該存儲指令存儲在完成緩沖器的底存儲槽內(nèi)時完成部件40從完成緩沖器中去掉該指明的存儲指令。
仍請參照圖2,CSQ60包括一個存儲已完成的但它們所標明的存儲操作尚待進行的存儲指令的隊列。如在參考數(shù)字61處所示,類似于FSQ58,CSQ60也和執(zhí)行控制單元50連接,從而執(zhí)行控制單元50可以讀CSQ60的底項,以把底項中存儲指令的EA和屬性與FSQ58中一條指令的EA和屬性進行比較來判定是否可以合并這兩條存儲指令。CSQ60還和數(shù)據(jù)高速緩存及MMU16中的地址轉(zhuǎn)換單元80及數(shù)據(jù)高速緩存82連接。在要進行一次存儲操作時,例如在低總線使用階段期間,如果該存儲是能高速緩存的,則CSQ60的底項的EA字段中的物理地址連同存儲在CSQ60的底項中的數(shù)據(jù)一起傳送到數(shù)據(jù)高速緩存82。接著數(shù)據(jù)高速緩存82中的高速緩存控制器管理數(shù)據(jù)高速緩存82中的數(shù)據(jù)存儲。如果和該物理地址關聯(lián)的數(shù)據(jù)未駐留在數(shù)據(jù)高速緩存82中或者如果這次存儲是高速緩存禁止的,則把該物理地址和數(shù)據(jù)傳送到BIU12,BIU12通過系統(tǒng)總線把該數(shù)據(jù)存儲到主存儲器。如所示,當數(shù)據(jù)高速緩存82忙碌從而不能支持單周期數(shù)據(jù)存儲時,數(shù)據(jù)高速緩存82向執(zhí)行控制單元50提供忙信號84以進行指示。
現(xiàn)參照圖3A和3B,圖中表示兩個邏輯示意圖,它們一起說明根據(jù)圖1中所示的處理機的示范性實施方式的一種集中存儲方法的示范性實施方式。熟練的技術(shù)人員可以理解,盡管圖3A和3B表示了一種合并存儲指令的方法的備步驟的邏輯順序,最好并行地進行多個所示的步驟。圖3A和3B所示的方法將在圖4A-4C所示的示例集中存儲操作以及圖5中所示的時序圖的情況下得到說明。
首先參照圖3A,處理在塊100開始然后進入塊102,塊102表示執(zhí)行控制單元50判定是否已通過LS028從調(diào)度部件20接收第一存儲指令(以下稱為STA)。如果沒有,處理在塊102重復直至接收到STA?,F(xiàn)參照圖5,如果STA由LSU28接收,在周期1由地址計算單元52計算STA的EA。另外,向數(shù)據(jù)高速緩存及MMU16發(fā)送一個存儲請求以把EA變換成物理地址并且檢查EA有否異常。在計算STA的EA之后,在周期2的起點在FSQ58中的STA的EA是有效的,如圖4A和圖5中所示。如圖4A中所示,F(xiàn)SQ58的示例項的EA字段、長度字段和字節(jié)啟用(BE)字段表示該STA是一次32位存儲,以一個八字節(jié)雙字的四個最低有效(最右)字節(jié)為目標。該FSQ58的示例項的數(shù)據(jù)源字段還規(guī)定與STA相關的數(shù)據(jù)位于GPRs32中的寄存器31里。但是,如有效值V0所示,和STA相關的數(shù)據(jù)尚未在FSQ58中有效。
回到圖3A和3B,在把存儲隊列54中的一項分配給STA之后,接著在周期2執(zhí)行控制單元50在塊104-116進行幾次判定以弄清STA能否和相繼的存儲指令合并。這樣,在塊104,執(zhí)行控制單元50從數(shù)據(jù)高速緩存及MMU16回送的異常信息確定STA是否引起異常。如果引起,處理返回到塊102并等待另一條STA指令。但是,如果在塊104確定該STA不造成異常,處理進入塊106,該塊表示確定STA是否位于完成部件40的完成緩沖器的底存儲槽中。如上面所述,在塊106進行的判定反映處理機10的一種示范性實施方式,這種方式只完成處理機10中最老的那些存儲指令;處理機10的其它實施方式可以允許不按序地完成存儲指令。如果確定出該STA不在完成緩沖器的底槽中,則在塊106重復處理過程直到STA位于完成緩沖器的底槽中的時刻。接著處理從塊106進入塊108,塊108表示判定LSU28是否已從調(diào)度部件20接收相繼的存儲指令STB。如果沒有,處理經(jīng)頁面連接符B進入圖3B的塊124。但是,如果在周期2期間LSU28接收STB,如圖5所示在周期2計算STB的EA。
回到圖3A,處理從塊108進入塊110,塊110表示判定是否允許集中存儲。在處理機10內(nèi)通過缺省或者通過執(zhí)行一條設定處理機10中一個未示出的控制寄存器的集中存儲位的指令可允許集中存儲。如果不允許集中存儲,按已說明的方式處理從塊110進入圖3B的塊124。但是,如果允許集中存儲,處理從塊110進入塊112,塊112表示判定執(zhí)行STA所指示的存儲操作是否要求經(jīng)系統(tǒng)總線11把數(shù)據(jù)寫到主存儲器。塊112處進行的判定表示不論存儲操作是否是可高速緩存的合并對主存儲器的存儲操作在數(shù)據(jù)等待時間上和總線使用上具有效率上的好處。如果STA請求經(jīng)系統(tǒng)總線11對主存儲器的存儲操作,例如,如果STA為直寫存儲或者是禁止高速緩存的,處理進入下面要說明的塊115。但是,如果由STA指示的存儲操作不要求對主存儲器寫數(shù)據(jù),處理從塊112進入塊114。
塊114表示通過檢測忙信號84的狀態(tài)判定周期3期間數(shù)據(jù)高速緩存82是否忙碌。如果數(shù)據(jù)高速緩存82不忙,處理經(jīng)頁面連接符進入塊124。從而,對于不必經(jīng)系統(tǒng)總線11對主存儲器寫的可高速緩存的存儲,所描述的執(zhí)行控制單元50的實施方式僅在忙信號84表示數(shù)據(jù)高速緩存82在周期3期間忙碌時才預先地判定STA和STB可否合并(塊116中所示)。在數(shù)據(jù)高速緩存82在二個或更多的周期連續(xù)忙的情況下(如圖5中所示),因為可在單個周期中執(zhí)行多個通常每個至少各需要一個周期的存儲,集中存儲導致性能上的優(yōu)越。在數(shù)據(jù)高速緩存在周期3期間忙碌的情況下,所示的集中存儲的方法還具有使數(shù)據(jù)高速緩存82的功耗最小的優(yōu)點。因為只允許數(shù)據(jù)高速緩存82用于合并的可高速緩存的存儲而不是用于STA和STB,功率得到節(jié)省。
為了明顯地減少數(shù)據(jù)高速緩存82的功耗,執(zhí)行控制單元50的備擇的實施方式可省略掉塊114處所述的判定并且甚至在數(shù)據(jù)高速緩沖不忙碌時從而在最多造成單個周期數(shù)據(jù)等待時間下潛在地合并可高速緩存的存儲。例如,在處理機10的低功率實現(xiàn)下,由把多個可高速緩存的存儲合并成單個存儲操作導致的最小附加數(shù)據(jù)等待時間經(jīng)常優(yōu)于允許數(shù)據(jù)高速緩存82分別進行各次存儲所造成的功率消耗。再次參照塊114,如果確定出在周期3數(shù)據(jù)高速緩存82會忙碌,處理進入塊115,塊115表示判定CSQ60在周期3是否是空的或?qū)⑹强盏?除用于STA之外)。如果不空,按已說明的方式處理進入塊124。但是,如果在周期3內(nèi)CSQ60是空的或?qū)⑹强盏?除用于STA之外),處理經(jīng)頁面連接將A進入圖3B的塊116。
塊116表示第一次比較,其比較STA和STB的EA變址位(位21-28)和可使用的數(shù)據(jù)格式屬性。存儲指令的數(shù)據(jù)格式屬性包括,例如,該數(shù)據(jù)是否表示定點或浮點值、數(shù)據(jù)量、該數(shù)量處于大的還是小的終止格式,以及該數(shù)據(jù)是否表示圖形信息。如果STA和STB的EA的變址位以及可使用的數(shù)據(jù)格式屬性彼此匹配,執(zhí)行控制單元50封鎖STA直到最終判定是否合并STA和STB,如圖5中所示。但是,如果兩個EA的變址位或者STA和STB的可使用數(shù)據(jù)格式屬性不匹配,處理從塊116進入到塊124,塊124表示由LSU28分別執(zhí)行STA和STB指示的存儲操作。因為只有在數(shù)據(jù)高速緩存82忙從而不能立即執(zhí)行STA指示的存儲操作時塊116所示的第一次比較對非經(jīng)系統(tǒng)總線11對存儲器寫的可高速緩存的存儲進行,所以塊116處的STA和STB的不匹配不會造成性能損失。
現(xiàn)參照圖4B,在周期2中進行STA和STB之間的第一次比較后,不加修改地把STA的EA、數(shù)據(jù)及屬性傳送給CSQ60。從而,在周期3期間,STA變成在CSQ60中是有效的,而STB的EA變成在FSQ58中是有效的。在周期3期間執(zhí)行控制單元50還判定在圖3B的塊118-122中所示的第二組集中存儲條件是否滿足?,F(xiàn)參照圖3B的塊118和120,執(zhí)行控制單元50判定STB是否造成異常以及STB是否位于完成部件40的完成緩沖器的底槽內(nèi)。如果STB造成異常或者如果STB不在完成緩沖器的底槽里,處理進入塊124,塊124表示LSU28分別執(zhí)行STA和STB。但是,如果STB不造成異常并且存儲在完成緩沖器的底槽里,處理進入塊122,塊122表示執(zhí)行控制單元50進行對STA和STB的第二次比較,以判定STA和STB的實地址位(位0-19)是否匹配以及STA和STB的MMU屬性是否匹配。在該示范性最佳實施方式中,STA和STB的MMU屬性可以包括一個直寫值、一個禁止高速緩存位、一個強制被訪存儲單元相關性的存儲器相關性位以及一個防止從被訪存儲單元推測性地裝入和預取出的保護位。如果STA和STB的實地址位以及STA和STB的MMU屬性不全匹配,處理從塊122進入已說明過的塊124。但是,如果STA和STB的實地址位以及STA和STB的MMU屬性都匹配,處理從塊122進入塊126,塊126表示執(zhí)行控制單元50如圖5所示在周期4合并STA和STB。因為在周期2中不能得到STB的實地址位,處理機10的示范性實施方式分別在周期2中和周期3中獨立地進行第一比較和第二比較。如上面所述,在周期2中進行第一次局部比較允許處理機10在數(shù)據(jù)高速緩存82忙碌的情況下避免STA和STB之間的不匹配造成的性能損失。但是,在別的實施方式下可以進行對STA和STB的單次比較。
為了如圖3B的塊126處所示合并STA和STB,執(zhí)行控制單元50斷言一個或幾個控制信號以使多路復用器64選擇規(guī)定一個雙字EA的輸入。接著把該雙字EA寫入到CSQ60的底項的地址字段中以代替STA的EA。另外,執(zhí)行控制單元50斷言一個或幾個控制信號以使多路復用器66合并由反饋輸入70(STA數(shù)據(jù))和FSQ輸入72(STB數(shù)據(jù))提供的數(shù)據(jù)并且把結(jié)果的合并數(shù)據(jù)存儲到CSQ60的底項的數(shù)據(jù)字段里。
現(xiàn)參照圖4B和4C,它們分別描述周期3中和周期5中FSQ58和CSQ60的內(nèi)容,從而說明STA和STB的合并。如圖4B中所示,F(xiàn)SQ58包含STB的32位EA,該EA規(guī)定一個雙字邊界的地址單元。如進一步所示,和STB相關的數(shù)據(jù)包含GPRs32的寄存器4中,為4字節(jié)長,并且將在8字節(jié)數(shù)據(jù)總線的4個高位字節(jié)上寫入到存儲器中。STA包含在CSQ60的項0內(nèi),并且在和與STB的EA相同的雙字中具有它的EA。和STA相關的數(shù)據(jù)包含在GPRs32的寄存器31中,為4字節(jié)長,并將在該總線的4個低位字節(jié)上寫入到存儲器中。
在周期4中合并STA和STB之后,CSQ60的項0看起來如圖4中所描述。如所示,合并后的存儲指令的EA和STB的EA相同,因為STA和STB都瞄向由STB的EA規(guī)定的雙字內(nèi)的存儲單元。還如圖4C中所示,和STA及STB相關的數(shù)據(jù)已合并,從而在執(zhí)行由合并后的存儲指令所指示的存儲操作之后存儲器被訪雙字所保持的數(shù)據(jù)將和按程序次序執(zhí)行由STA和STB指示的存儲操作所具有的數(shù)據(jù)相同。另外,CSQ60的項0的數(shù)據(jù)源字段、數(shù)據(jù)量字段以及字節(jié)啟用字段已由調(diào)整邏輯電路62調(diào)整,并反映和合并后的存儲指令相關的數(shù)據(jù)包含在GPRs32的寄存器4和31中,為8字節(jié)長,并且將利用數(shù)據(jù)總線的所有8個字節(jié)寫入到存儲器中。CSQ60的項0中的數(shù)據(jù)源字段也由調(diào)整邏輯電路62修改,以指示數(shù)據(jù)源用于STA和STB。盡管圖4A-4C表示一個在其中由合并后的存儲指令寫的存儲地址不重疊的集中存儲的例子,熟練的技術(shù)人員可從本文提供的說明中認識到圖2中所述的LSU28的示范性實施方式還可以合并對重疊的存儲地址寫入的存儲指令。如上面參照圖2所述的那樣,和面向重疊地址的存儲指令相關的數(shù)據(jù)根據(jù)執(zhí)行控制單元50生成的控制信號由多路復用器66合并。
再參照圖3B,在塊126中STA和STB合并之后,處理進入塊128,塊128表示進行由合并的存儲指令指示的存儲操作。這樣,如圖5中所示,在周期5和6中合并的數(shù)據(jù)寫入到存儲器。
然后,圖3B中所示的處理在塊130終止。
如可從上面的說明中理解的那樣,通過選擇性地組合存儲指令,所說明的集中存儲機制改進了處理機的性能。盡管集中存儲的方法是通過參考一個在其中集中兩個單精度存儲的示范性集中存儲操作說明的,從上述的說明中可以理解,利用上面所說明的示范性實施方式單精度和雙精度存儲都可以集中。此外,還可以理解,由于減少系統(tǒng)總線的等待時間,對于直寫存儲指令和高速緩存禁止的存儲指令集中存儲對處理機性能提供最大的增強。例如,如果不集中的存儲指令各需要7個周期的總線訪問,進行兩次存儲需要14個周期。相反,如果合并存儲指令,僅需要7個周期的總線訪問,從而明顯地減少所需的總線時間。
盡管具體地顯示了和說明了一種示范性的實施方式。熟練的技術(shù)人員可以理解在不違背該示范性實施方式的精神和范圍的前提下在形式上和細節(jié)上可對它進行各種修改。
權(quán)利要求
1.一種在其中具有附屬超高速緩存的處理機內(nèi)集中存儲的方法,所述方法包括識別目標對著所述超高速緩存中的一個或多個單元的第一存儲指令和第二存儲指令;判定所述超高速緩存是否忙碌;根據(jù)確定所述超高速緩存忙碌,把所述第一和所述第二存儲指令合并為一個單存儲操作;以及然后,執(zhí)行所述單存儲操作。
2.權(quán)利要求1的方法,其特征在于,所述第二指令按相繼的次序緊接在所述第一指令的后面。
3.權(quán)利要求1的方法,其特征在于,還包括根據(jù)判定所述超高速緩存中的所有所述一個或多個單元是否可由所述單存儲操作寫入判定是否合并所述第一和所述第二存儲指令的步驟。
4.權(quán)利要求1的方法,其特征在于,所述一個或多個單元的至少一個單元是由所述第一以及所述第二存儲指令作為目標的。
5.權(quán)利要求1的方法,其特征在于,把所述第一和所述第二存儲指令合并成所述單存儲操作的所述步驟包括從由所述第一和所述第二存儲指令中的至少一個指令規(guī)定的地址中確定所述單存儲操作的目標地址;以及按照所述第一和所述第二存儲指令的順序次序通過組合和所述第一及所述第二存儲指令相關的數(shù)據(jù)確定和所述單存儲操作相關的數(shù)據(jù)。
6.權(quán)利要求1的方法,其特征在于還包括在所述單存儲操作之前禁用所述超高速緩存;以及為所述單存儲操作允許僅啟用一次所述超高速緩存。
7.權(quán)利要求1的方法,其特征在于,所述第一和所述第二存儲指令各關聯(lián)著目標對著所述超高速緩存中相鄰地址區(qū)的單精度數(shù)據(jù),而所述單存儲操作關聯(lián)著雙精度數(shù)據(jù)。
8.一種其中帶有一個超高速緩存的處理機,所述處理機包括執(zhí)行控制邏輯線路,用于識別目標對著所述超高速緩存中的一個或多個單元的第一存儲指令和第二存儲指令;和所述執(zhí)行控制邏輯線路連接的合并邏輯線路,其中所述合并邏輯線路根據(jù)確定所述超高速緩存忙碌把所述第一和所述第二存儲指令合并成一個單存儲操作;以及和所述合并邏輯線路連接的存儲器存取邏輯線路,其中所述存儲器存取邏輯線路執(zhí)行所述單存儲操作。
9.權(quán)利要求8的處理機,其特征在于,所述執(zhí)行控制邏輯線路還包括用于判定所述超高速緩存中的所述一個或多個單元是否可由所述單存儲操作寫的邏輯線路。
10.權(quán)利要求8的處理機,其特征在于,所述合并邏輯線路包括地址選擇邏輯線路,其中所述地址選擇邏輯線路為所述單存儲操作從所述第一和所述第二存儲指令中至少一個指令的地址中選擇目標地址;以及數(shù)據(jù)組合邏輯線路,其中所述數(shù)據(jù)組合邏輯線路按照所述第一和所述第二存儲指令的順序次序組合和所述第一及所述第二存儲指令相關的數(shù)據(jù)。
11.權(quán)利要求8的處理機,其特征在于,所述存儲器存取邏輯線路包括對向所述超高速緩存存儲數(shù)據(jù)進行管理的一個存儲管理單元。
12.權(quán)利要求11的處理機,其特征在于,所述存儲管理單元包括超高速緩存啟用邏輯線路,其中所述超高速緩存啟用邏輯在所述單存儲操作之前禁用所述超高速緩存并且為所述單存儲操作僅允許啟用所述超高速緩存一次。
13.權(quán)利要求8的處理機,其特征在于還包括具有至少一個表項的第一隊列,所述第一隊列和所述合并邏輯線路的一個輸入端連接,其中所述第一隊列的所述至少一個表項暫時存儲所述第二存儲指令;以及具有至少一個表項的第二隊列,所述第二隊列和所述合并邏輯線路的一個輸出端連接,其中所述第二隊列的所述至少一個表項在所述第一和所述第二存儲指令的所述合并之前暫時存儲所述第一存儲指令。
14.權(quán)利要求13的處理機,其特征在于,所述第二隊列的所述至少一表項在所述第一和所述第二存儲指令的所述合并后暫時存儲所述單存儲操作。
15.權(quán)利要求8的處理機,其特征在于,所述第一和所述第二存儲指令各關聯(lián)著對著所述存儲器中相鄰地址區(qū)的單精度數(shù)據(jù),而所述第二隊列的所述至少一表項包括一個用于暫時存儲和所述單存儲操作相關的雙精度數(shù)據(jù)的數(shù)據(jù)字段。
16.權(quán)利要求8的處理機,其特征在于,所述一個或多個單元的至少一個單元是由所述第一和所述第二存儲指令作為目標的。
17.一種數(shù)據(jù)處理系統(tǒng),包括一個超高速緩存;一個和所述超高速緩存連接的處理機;所述處理機包括執(zhí)行控制邏輯線路,用于識別目標對著所述超高速緩存中一個或多個單元的第一存儲指令和第二存儲指令;和所述執(zhí)行控制邏輯線路連接的合并邏輯線路,其中所述合并邏輯線路根據(jù)確定所述超高速緩存忙碌把所述第一和所述第二存儲指令合并成一個單存儲操作;以及和所述合并邏輯線路連接的存儲器存取邏輯線路,其中所述存儲器存取邏輯線路執(zhí)行所述單存儲操作。
18.權(quán)利要求17的數(shù)據(jù)處理系統(tǒng),其特征在于,所述執(zhí)行控制邏輯線路還包括用于判定是否可由所述單存儲操作對所述超高速緩存中的所述一個或多個單元進行寫的邏輯線路。
19.權(quán)利要求17的數(shù)據(jù)處理系統(tǒng),其特征在于,所述合并邏輯線路包括地址選擇邏輯線路,其中所述地址選擇邏輯線路為所述單存儲操作從所述第一和所述第二存儲指令的至少一條指令的地址中選擇目標地址;以及數(shù)據(jù)組合邏輯線路,其中所述數(shù)據(jù)組合邏輯線路按照所述第一和所述第二存儲指令的順序次序組合和所述第一及所述第二存儲指令相關的數(shù)據(jù)。
20.權(quán)利要求17的數(shù)據(jù)處理系統(tǒng),其特征在于,所述存儲器存取邏輯線路包括對向所述超高速緩存存儲數(shù)據(jù)進行管理的存儲管理單元。
21.權(quán)利要求20的數(shù)據(jù)處理系統(tǒng),其特征在于,所述存儲管理單元包括超高速緩存啟用邏輯線路,其中所述超高速緩存啟用邏輯線路在所述單存儲操作之前禁用所述超高速緩存并且對所述單存儲操作僅允許啟用所述超高速緩存一次。
22.權(quán)利要求17的數(shù)據(jù)處理系統(tǒng),其特征在于還包括具有至少一表項的第一隊列,所述第一隊列和所述合并邏輯線路的一個輸入端連接,其中所述第一隊列的所述至少一表項暫時存儲所述第二存儲指令;以及具有至少一表項的第二隊列,所述第二隊列和所述合并邏輯線路的一個輸出端連接,其中所述第二隊列的所述至少一表項在所述第一和所述第二存儲指令的所述合并之前暫時存儲所述第一存儲指令。
23.權(quán)利要求22的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第二隊列的所述至少一表項在所述第一和所述第二存儲指令的所述合并后暫時存儲所述單存儲操作。
24.權(quán)利要求23的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第一和所述第二存儲指令各關聯(lián)著對著所述超高速緩存中相鄰地址區(qū)的單精度數(shù)據(jù),而所述第二隊列的所述至少一表項包括一個用于暫時存儲和所述單存儲操作相關的雙精度數(shù)據(jù)的數(shù)據(jù)字段。
25.權(quán)利要求17的數(shù)據(jù)處理系統(tǒng),其特征在于,所述一個或多個單元中的至少一個單元是由所述第一以及所述第二存儲指令作為目標的。
全文摘要
識別目標對向超高速緩存中一個或多個單元的第一存儲指令和第二存儲指令。判定該超高速緩存是否忙碌。根據(jù)確定該超高速緩存為忙碌,由第一及第二存儲指令規(guī)定的操作合并成單個存儲操作,其包含由第一和第二存儲指令規(guī)定的存儲操作。然后,執(zhí)行該單存儲操作。
文檔編號G06F12/00GK1178941SQ97117589
公開日1998年4月15日 申請日期1997年9月4日 優(yōu)先權(quán)日1996年10月7日
發(fā)明者拉杰謝·B·帕特 申請人:國際商業(yè)機器公司