欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速緩存裝置、運算處理裝置及其控制方法

文檔序號:6457350閱讀:255來源:國知局
專利名稱:高速緩存裝置、運算處理裝置及其控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及具有救濟在高速緩存行中產(chǎn)生的故障的高速緩存行交替 寄存器的高速緩存裝置、運算處理裝置及其控制方法。
背景技術(shù)
作為現(xiàn)有的針對高速緩存的固定故障的救濟裝置,使用了塊退化和
WAY (路徑)退化這樣的方法。在塊退化和WAY退化中,以高速緩存的 WAY單位來觀測高速緩存故障次數(shù),如果在單位時間內(nèi)產(chǎn)生的故障次數(shù) 超過了規(guī)定閾值,則進行塊或WAY的切斷。將首次超過閾值時對故障的 高速緩存行和其WAY進行切斷的功能稱為塊退化。在塊退化中,切斷l(xiāng) 行數(shù)據(jù)。當在塊退化的高速緩存行以外的數(shù)據(jù)中也產(chǎn)生故障時,將塊退 化對象切換為最后產(chǎn)生故障的高速緩存行和WAY。 S卩,基于塊退化的故 障救濟以保護高速緩存的1行數(shù)據(jù)為目的,在多個高速緩存行產(chǎn)生故障 時,在塊退化發(fā)生后,高速緩存的故障次數(shù)也仍增加,當其達到規(guī)定值 時,對故障的WAY進行切斷。在引起WAY退化時,雖然說處理器能夠 繼續(xù)進行工作,但是引起性能大幅降低。因此,通過在WAY退化前引起 僅對1個高速緩存行進行切斷的塊退化,由此,能夠降低性能降低的程 度。
但是,在高速緩存的存儲容量小的情況下,由1個高速緩存行的損 失引起的性能劣化也無法忽略,所以,在引起塊退化的情況下,也需要 將故障芯片作為更換對象。在具有多個核的CPU的情況下,無法僅更換 由于1位固定故障進行塊退化的核,所以,以包含全部正常工作的其他 核的芯片單位進行更換。在迄今為止的CPU開發(fā)中,存在增加搭載于芯 片的核數(shù)量、同時縮小一次高速緩存的容量的傾向,所以,在現(xiàn)有的基 于塊退化的高速緩存的故障保護機構(gòu)中,將沒有故障的核無端地作為更換對象的可能性很高。其結(jié)果,在現(xiàn)有的基于塊退化的救濟處置中,CPU
芯片單位的故障耐性不充分。
因此,考慮了如下方法在引起1位固定故障時,通過設(shè)置用于登 記故障行的高速緩存數(shù)據(jù)的高速緩存行交替寄存器,由此,交替1位固 定故障行的數(shù)據(jù),救濟1位固定故障而不損失高速緩存行(專利文獻1)。
在裝配高速緩存行交替寄存器時,在以往采用的方式中,在交替對 象地址的比較中使用物理地址,該物理地址一致時,讀出高速緩存行交 替寄存器的數(shù)據(jù)。物理地址的位數(shù)多,所以地址處理需要花費時間。并 且,為了得到作為比較對象的物理地址,需要參照TLB (Translation Look-aside Buffer)或高速緩存標簽。因此,在高速緩存的讀出中,能夠 使用高速緩存行交替寄存器,但是,在高速緩存的寫入中,TLB、高速 緩存標簽的參照比較和寫入的流程與通常的高速緩存控制流程相差甚 遠,所以,放棄使用高速緩存行交替寄存器。S卩,每次將高速緩存交替 寄存器作為存儲對象時,使高速緩存行交替寄存器無效化,從主存儲參 照起重做等,在存儲工作時產(chǎn)生性能降低。
并且,現(xiàn)有的高速緩存行交替寄存器構(gòu)成為能夠交替高速緩存行的 1行的全部位。但是,實際上,在1個高速緩存行中,在多處產(chǎn)生1位錯 誤的概率很低,電路資源的使用效率不太好。
因此,在本發(fā)明中,提出了解決現(xiàn)有的高速緩存行交替寄存器的問 題的新結(jié)構(gòu)的高速緩存行交替寄存器。
因此,首先,下面說明沒有搭載本發(fā)明的高速緩存行交替寄存器的 現(xiàn)有的高速緩存的結(jié)構(gòu)。通過追加對沒有搭載高速緩存行交替寄存器的 現(xiàn)有的高速緩存的工作進行局部替換的功能,來實現(xiàn)本發(fā)明的結(jié)構(gòu),所 以,需要預(yù)先清楚現(xiàn)有的高速緩存的結(jié)構(gòu)。
圖1示出現(xiàn)有的CPU的結(jié)構(gòu)。
圖1所示的CPU101具有4個核CORE-0(102-0)、CORE-1(102-1)、 CORE畫2 (102-2)、 CORE-3 (102-3)(以下設(shè)CORE為102)。
各核CORE 102具有IU (Instruction Unit:命令處理裝置)(104-0、 104-1、 104-2、 104-3:以下設(shè)IU為104)、 EU (Execution Unit:運算裝
8置)(105-0、 105-1、 105-2、 105-3:以下設(shè)EU為105)、以及SU (Storage Unit:存儲控制裝置)(103-0、 103-1、 103-2、 103-3:以下設(shè)SU為103)。
進而,SU( 103)分別具有命令高速緩存即IF-LBS (Instruction Fetch Local Buffer Storage) (106-0、 106-1、 106-2、 106-3:以下設(shè)IF-LBS為 106)、以及操作數(shù)高速緩存即OP-LBS (Operand Local Buffer Storage) (107-0、 107-1、 107-2、 107-3:以下設(shè)OP-LBS為107)。
并且,CPU 101具有二次高速緩存即SX (SecondCache) 108,進行 與各個核CORE 102的數(shù)據(jù)交換,進而,SX 108經(jīng)由SYSTEM BUS 109 與主存儲器即Memory 110進行數(shù)據(jù)交換。
接著,圖2示出搭載于CPU 101的一次高速緩存即IF-LBS 106和 OP-LBS 107的結(jié)構(gòu)。
高速緩存由WAYO (201)和WAYl (202)這兩個WAY構(gòu)成。對 各個WAY賦予地址信號時,讀出各個地址的數(shù)據(jù),輸出到數(shù)據(jù)信號線。 對數(shù)據(jù)線205輸出WAY 0的高速緩存RAM輸出數(shù)據(jù),對數(shù)據(jù)線206輸 出WAY1的高速緩存RAM輸出數(shù)據(jù)。并且,對WAY選擇電路203賦予 WAY信息時,選擇數(shù)據(jù)線205和數(shù)據(jù)線206的任一方,對IU 104 (或EU 105)輸出數(shù)據(jù)(207)。
另外,本發(fā)明將構(gòu)成命令高速緩存IF-LBS 106和操作數(shù)高速緩存 OP-LBS 107的一次高速緩存作為對象。
下面,使用流程圖詳細說明上述這種結(jié)構(gòu)中的高速緩存的工作。
首先,圖3示出高速緩存的讀出工作的流程。
在高速緩存的讀出中,對高速緩存數(shù)據(jù)部和高速緩存標簽部以及 TLB部進行訪問。
從虛擬地址中取出位14 5并送出到高速緩存數(shù)據(jù)部(S301),在所 參照的下一循環(huán)中,在RAM內(nèi)部進行數(shù)據(jù)的取出(S302),在下一循環(huán) 中,從全部高速緩存RAM中合計取出64字節(jié)的數(shù)據(jù)(S3(B)。所取出的 數(shù)據(jù)由32字節(jié)的與2個WAY相當?shù)臄?shù)據(jù)構(gòu)成。
從虛擬地址中取出位14 6并送出到高速緩存標簽部(S304),在所 參照的下一循環(huán)中,在RAM內(nèi)部進行標簽地址的取出(S305),在下一循環(huán)中,取出與2個WAY相當?shù)奈锢淼刂?S306)。
從虛擬地址中取出位63 13并送出到TLB部,并且,作為表示進 行高速緩存的參照的訪問空間的信息,送出訪問空間編號或訪問空間的 上下文ID、段表起點等表示訪問空間的信息(S307),在所參照的下一循 環(huán)中,對在TLB中登記的虛擬地址和表示訪問空間的信息進行比較,取 出與一致的登記信息對應(yīng)的物理地址(S308),在下一循環(huán)中,讀出l個 物理地址,完成從虛擬地址到物理地址的轉(zhuǎn)換(S309)。
在S310中,對從標簽部讀出的與2個WAY相當?shù)奈锢淼刂泛蛷腡LB 部讀出的物理地址進行比較,如果一致,則判斷為在高速緩存中存在取 出對象數(shù)據(jù),使用一致的高速緩存WAY的數(shù)據(jù)。在S311中,向高速緩 存數(shù)據(jù)部送出表示在高速緩存標簽中一致的WAY的信息,在S312中, 選擇從高速緩存數(shù)據(jù)部讀出的個WAY的數(shù)據(jù)的一方,完成高速緩存的讀 出。
此后,在命令高速緩存IF-LBS106中,直接向命令處理裝置送出所 讀出的32字節(jié)的數(shù)據(jù),在命令處理裝置側(cè),作為8個4字節(jié)長的命令來 受理。在操作數(shù)高速緩存OP-LBS107中,所讀出的數(shù)據(jù)根據(jù)讀出對象的 數(shù)據(jù)寬度l字節(jié)、2字節(jié)、4字節(jié)、8字節(jié)進行讀出數(shù)據(jù)的對齊,同時, 根據(jù)需要進行符號擴展,轉(zhuǎn)換為對l字節(jié)、2字節(jié)、4字節(jié)的數(shù)據(jù)的正負 的符號部分進行擴展后的數(shù)據(jù)形式,對運算器送出完成了對齊和符號擴 展后的數(shù)據(jù)。在運算器側(cè),將所受理的數(shù)據(jù)寫入作為受理對象的寄存器, 并且,使用所受理的數(shù)據(jù)開始運算。
在高速緩存的讀出控制中,在訪問開始2個循環(huán)后,在讀出了高速 緩存數(shù)據(jù)、髙速緩存標簽、TLB的時點,通過分別具有的故障檢測電路 確認有無故障。如果沒有故障,則根據(jù)圖3所示的處理順序直接完成處 理。在檢測出故障的情況下,在該故障是TLB的故障的情況下,全部刪 除TLB,從TLB的登記處理起重做,但是,這里省略其詳細說明。關(guān)于 故障存在于高速緩存數(shù)據(jù)或高速緩存標簽中的情況下的現(xiàn)有的處理方 式,在專利文獻2中進行了公開。下面說明該現(xiàn)有的處理方式。
圖4、圖5示出故障存在于高速緩存數(shù)據(jù)或高速緩存標簽中的情況
10下的處理工作的流程。圖4示出在操作數(shù)高速緩存OP-LBS 107中的數(shù)據(jù) 或標簽中存在故障時的故障處理,圖5示出在命令高速緩存IF-LBS 106 中的數(shù)據(jù)或標簽中存在故障時的故障處理。
首先,在圖4中,在高速緩存數(shù)據(jù)或高速緩存標簽中檢測出故障后, SU103內(nèi)的操作數(shù)高速緩存OP-LBS 107臨時中斷數(shù)據(jù)處理,導(dǎo)通高速緩 存控制部的ERROR-STATE標志(S401)。在ERAR(Error Address Register ) 中登記錯誤的高速緩存行地址和高速緩存WAY (S402)。 ERAR存在兩 種,操作數(shù)高速緩存用的OP-ERAR和命令高速緩存用的IF-ERAR。任 意一種都保持高速緩存行地址位14 5和WAY信息。在ERROR-STATE 中,相應(yīng)的有中斷全部后續(xù)處理,并且,此前執(zhí)行中的處理、例如針 對主存儲器或其他高速緩存請求具有高速緩存行的處理,但是,該情況 下高速緩存行到達,等待完成針對高速緩存的登記。
然后,針對下位級的高速緩存(SX 108)請求實施故障救濟處理, 并且,向操作數(shù)高速緩存OP-LBS 107通知產(chǎn)生了故障的情況,根據(jù) OP-ERAR的信息,通知故障的高速緩存的高速緩存行地址和高速緩存 WAY (S403)。
接收到故障救濟處理請求的下位級的高速緩存具有通知方高速緩存 標簽的副本,為了進行故障救濟處理而參照該副本(S404)。在高速緩存 標簽的副本中,存儲表示該高速緩存行有效還是無效的Valid位和與該高 速緩存行對應(yīng)的物理地址作為信息。判斷請求故障處理的高速緩存行是 否有效(S405),在請求故障處理的高速緩存行為無效狀態(tài)的情況下 ("否"),對所通知的高速緩存行指示將故障作為原因的無效化,并且, 明示其是針對操作數(shù)高速緩存或命令高速緩存的哪一個高速緩存的處 理,直接向故障通知方回送故障高速緩存行和故障WAY信息(S406)。 在故障方的高速緩存中,受理將故障作為原因的無效化的指示后,針對 接收到操作數(shù)高速緩存行的無效化通知的高速緩存行和高速緩存WAY, 以操作數(shù)高速緩存流水線來執(zhí)行將操作數(shù)高速緩存標簽的有效位改寫為 無效狀態(tài)的處理流程(S407)。在進行改寫處理的操作數(shù)高速緩存流水線 的被稱為B循環(huán)(Buffer Read Cycle)的流程中,通過將ERROR-STATE
ii標志設(shè)置為關(guān)閉,由此,完成錯誤處理,并且再次開始執(zhí)行后續(xù)命令, 同時,向下位級的高速緩存通知完成了高速緩存標簽的無效化的情況,
并且通知無效化的高速緩存行和高速緩存WAY (S408)。接收該通知, 在下位級的高速緩存中,將高速緩存標簽副本的相應(yīng)行改寫為無效狀態(tài) (S409)。
如果檢索高速緩存標簽副本的結(jié)果為故障處理對象高速緩存行為有 效狀態(tài)(S405中為"是"的情況),則對故障方高速緩存指示將故障作為 原因的高速緩存行排除,并且,明示其是針對操作數(shù)高速緩存的處理, 直接向故障通知方回送故障高速緩存行和故障WAY信息(S410)。在故 障方的高速緩存中,受理將故障作為原因的高速緩存行排除的指示后, 針對接收到操作數(shù)高速緩存行的無效化通知的高速緩存行和高速緩存 WAY,執(zhí)行參照操作數(shù)高速緩存標簽并進行操作數(shù)高速緩存數(shù)據(jù)的讀出 的處理流程、以及將操作數(shù)高速緩存標簽的有效位改寫為無效狀態(tài)并進 行操作數(shù)高速緩存數(shù)據(jù)的讀出的處理流程(S411)。在進行改寫高速緩存 標簽的處理的操作數(shù)流水線的被稱為B循環(huán)的流程中,通過將 ERROR-STATE標志設(shè)置為關(guān)閉,由此,完成錯誤處理,并且再次開始執(zhí) 行后續(xù)命令,同時,向下位級的高速緩存通知使高速緩存標簽無效化的 情況,并且通知無效化的高速緩存行和高速緩存WAY (S414)。關(guān)于操 作數(shù)高速緩存OP-LBS 107,此時,有時伴有數(shù)據(jù)傳送。操作數(shù)高速緩存 數(shù)據(jù)的讀出實施2次,為了在1次的讀出中讀出32字節(jié),在上述流程中, 讀出與高速緩存1行相當?shù)?4字節(jié)的高速緩存數(shù)據(jù),在處理被稱為MOB
(Move-out Buffer)的從下位級指示的請求時,存儲于在伴有數(shù)據(jù)傳送的 處理時所使用的數(shù)據(jù)緩存中。關(guān)于高速緩存標簽的參照,進行讀出參照 和寫入?yún)⒄?。在S412、 S413中,在讀出參照中檢索到高速緩存標簽時, 確認高速緩存行是變更型還是除此以外的類型。如果是變更型,則向下 位級傳送高速緩存行(S415、 S416),如果是無效型或共享型,則不向下 位級傳送高速緩存行(S408、 S409)。不傳送高速緩存行時的處理順序
(S408、 S409)進行與命令高速緩存?zhèn)鹊墓收暇葷幚硐嗤奶幚?,?成高速緩存行的無效化。在傳送高速緩存行時(S415、 S416),通知伴隨數(shù)據(jù)傳送完成了髙速緩存的故障處理的情況,并且,通知作為處理對象
的高速緩存行和高速緩存WAY (S415)。接收該通知,在下位級的高速 緩存中,將高速緩存標簽副本的相應(yīng)行改寫為無效狀態(tài),并且,將受理 的高速緩存數(shù)據(jù)寫入自身的高速緩存級的高速緩存的數(shù)據(jù)部中(S416)。 并且,圖5示出在命令高速緩存IF-LBS 106中的數(shù)據(jù)或標簽中存在 故障時的故障處理,但是,在圖5中,在IF-LBS 106的高速緩存數(shù)據(jù)或 高速緩存標簽中檢測出故障時,進行S501 S503的處理。這些處理與圖 4的處理S401 S403相同。然后,與高速緩存標簽副本的參照結(jié)果無關(guān) 地,對所通知的高速緩存行指示將故障作為原因的無效化,并且,明示 其是針對命令高速緩存的處理,直接向故障通知方回送故障高速緩存行 和故障WAY信息(S504)。在故障方的高速緩存中,受理將故障作為原 因的無效化的指示后,針對接收到命令高速緩存行的無效化通知的高速 緩存行和高速緩存WAY,以命令高速緩存流水線來執(zhí)行將命令高速緩存 標簽的有效位改寫為無效狀態(tài)的處理流程(S505)。在進行改寫處理的命 令高速緩存流水線的被稱為B循環(huán)的流程中,通過將ERROR-STATE標 志設(shè)置為關(guān)閉,由此,完成錯誤處理,并且再次開始執(zhí)行后續(xù)命令。同 時,向下位級的高速緩存通知完成了高速緩存標簽的無效化的情況,并 且通知無效化的高速緩存行和高速緩存WAY (S506)。接收該通知,在 下位級的高速緩存中,將高速緩存標簽副本的相應(yīng)行改寫為無效狀態(tài) (S507)。
并且,圖6是示出現(xiàn)有的高速緩存中的存儲工作的流程的圖。 在針對存儲命令的對高速緩存的寫入中,對高速緩存標簽部和TLB 部進行1次參照,對高速緩存數(shù)據(jù)部進行2次參照,作為操作數(shù)高速緩 存流水線,執(zhí)行2次處理流程。
在存儲命令的第1次的處理流程中,對高速緩存數(shù)據(jù)部和高速緩存 標簽部以及TLB部進行訪問。從虛擬地址中取出位14 5并送出到高速 緩存數(shù)據(jù)部,在所參照的下一循環(huán)中,在RAM內(nèi)部進行數(shù)據(jù)的取出,在 下一循環(huán)中,從全部高速緩存RAM中合計取出64字節(jié)的數(shù)據(jù)。所取出 的數(shù)據(jù)由32字節(jié)的與2個WAY相當?shù)臄?shù)據(jù)構(gòu)成。從虛擬地址中取出位14 6并送出到高速緩存標簽部,在所參照的下一循環(huán)中,在RAM內(nèi)部 進行標簽地址的取出,在下一循環(huán)中,取出與2個WAY相當?shù)奈锢淼刂贰?從虛擬地址中取出位63 13并送出到TLB部,并且,作為表示進行高 速緩存的參照的訪問空間的信息,送出訪問空間編號或訪問空間的上下 文ID、段表起點等表示訪問空間的信息,并進行參照(S601)。
在所參照的下一循環(huán)中,對在TLB中登記的虛擬地址和表示訪問空 間的信息進行比較,取出與一致的登記信息對應(yīng)的物理地址,在下一循 環(huán)中,讀出1個物理地址,完成從虛擬地址到物理地址的轉(zhuǎn)換。對從標 簽部讀出的與2個WAY相當?shù)奈锢淼刂泛蛷腡LB部讀出的物理地址進 行比較,如果一致,則判斷為在高速緩存中存在存儲對象的數(shù)據(jù)(S602)。
并且,從高速緩存標簽中讀出變更型位,如果其表示是變更型,則 未共享高速緩存,判斷為能夠執(zhí)行存儲。并且,為了在以后針對高速緩 存的寫入中進行使用,將一致的高速緩存信息記錄在存儲命令處理部中。 與此同時,向高速緩存數(shù)據(jù)部送出表示在高速緩存標簽中一致的WAY的 信息,選擇從高速緩存數(shù)據(jù)部讀出的2WAY的數(shù)據(jù)的一方。在對高速緩 存執(zhí)行存儲時,為了將ECC (Error Correction Code)信息改寫為與更新 后的數(shù)據(jù)對應(yīng)的ECC,將所選擇的數(shù)據(jù)存儲在8字節(jié)數(shù)據(jù)邊界內(nèi)的存儲 對象外的數(shù)據(jù)保持部或部分ECC保持部中(S603)。另外,關(guān)于存儲對 象外的ECC的處理,在專利文獻3和專利文獻4中進行了詳細敘述。
然后,在S603的處理后,與高速緩存?zhèn)鹊奶幚砹鞒酞毩⒌?,操作?shù) 高速緩存從運算器受理將存儲命令作為存儲對象的存儲數(shù)據(jù),將其存儲 在存儲數(shù)據(jù)寄存器中(S604)。
然后,完成高速緩存?zhèn)鹊奶幚砹鞒?,并且,如果存儲?shù)據(jù)針對高速 緩存的傳送完成,則命令處理裝置判斷是否能夠執(zhí)行存儲命令(S605、 S606)。即,確認如下情況在存儲命令之前進行的命令中沒有產(chǎn)生命令 處理列的分支、是否不需要轉(zhuǎn)移到陷阱處理等其他處理。通過在命令處 理裝置中的提交堆棧入口 (Commit Stack Entry)中,確認存儲命令之前 進行的命令的處理全部完成的情況,來執(zhí)行。于是,命令處理裝置針對 能夠執(zhí)行的存儲命令,導(dǎo)通提交信號,指示執(zhí)行存儲(S607)。在高速緩存?zhèn)?,為了將受理提交信號的存儲命令的?shù)據(jù)寫入高速緩
存,執(zhí)行存儲處理的第2次的流程(S608)。在存儲命令的第2次的流程 中,僅對高速緩存數(shù)據(jù)部進行訪問。首先,在P循環(huán)(Priority循環(huán)決 定根據(jù)所決定的優(yōu)選順序?qū)Ω髡埱筮M行處理的請求)中,從虛擬地址中 取出位14 5并送出到高速緩存數(shù)據(jù)部,并且,通知存儲對象WAY和存 儲對象字節(jié)位置(S609)。通過該信息,在高速緩存數(shù)據(jù)部中,確認作為 存儲對象的高速緩存RAM和該RAM上的存儲對象字節(jié)位置,針對對象 RAM的對象字節(jié)位置,導(dǎo)通WE (WriteEnable)信號。與其并行地,取 出存儲在存儲數(shù)據(jù)寄存器中的存儲數(shù)據(jù),送出到高速緩存數(shù)據(jù)部(S610)。 在下一T循環(huán)(TLB/TAG循環(huán)對TAG/LBS/TLB進行訪問的循環(huán)) 中,將存儲數(shù)據(jù)存儲在存儲對象高速緩存RAM的存儲對象字節(jié)位置 (S611)。
然后,在T循環(huán)的3循環(huán)后的R循環(huán)(Result循環(huán)完成流水線處 理的循環(huán))中,根據(jù)存儲數(shù)據(jù)和存儲對象外數(shù)據(jù)信息生成ECC,向 ECC-ARRAY-RAM寫入與存儲后的數(shù)據(jù)對應(yīng)的ECC信息,由此,完成存 儲命令的處理(S612)。
如上所述,說明了針對存儲命令的對高速緩存的寫入工作,但是, 在伴隨存儲處理的第1次的處理流程中,在檢測出故障的情況下,執(zhí)行 與在圖3所示的高速緩存的讀出工作中檢測出故障時相同的處理,解除
接著,參照圖7,說明使現(xiàn)有的高速緩存中包含故障的高速緩存行 無效化后、再次開始使用了故障高速緩存行的命令的處理的工作。
當完成故障高速緩存行的無效化、再次開始執(zhí)行命令時,再次開始 的命令所使用的高速緩存行無效化,所以,從高速緩存錯誤起再次開始 命令處理(S701)。再次開始的命令檢索高速緩存標簽后的結(jié)果,檢測出 高速緩存錯誤(S702),向下位級的高速緩存送出用于向本高速緩訪問入 高速緩存錯誤的高速緩存行的遷入請求,并且,在MIB (Move In Buffer) 中保持遷入請求中的物理地址以及登記遷入(MI: Move-In)的高速緩存 行的高速緩存上的高速緩存行地址和高速緩存WAY信息(S703)。關(guān)于作為遷入對象的高速緩存WAY,如果不存在無效的WAY,則根據(jù)LRU(Least Recently Used)進行選擇,如果存在無效的WAY,則選擇該WAY。錯誤處理后的再次開始執(zhí)行命令時,高速緩存行無效化,所以,選擇無效的高速緩存WAY。此時,選擇在之前的錯誤處理中無效化的WAY。
在受理了遷入請求的下位級的高速緩存中,檢索該高速緩存級的高速緩存標簽(S704)。如果高速緩存被命中,則向請求方高速緩存?zhèn)魉蛷脑摳咚倬彺婕壍母咚倬彺鏀?shù)據(jù)部取出的高速緩存數(shù)據(jù)(S705)。與其并行地,將請求方的高速緩存標簽副本改寫為遷入請求地址,并且,對請求方的高速緩存送出針對替換塊的指示(S706)。在錯誤處理后的命令再次開始的情況下,替換塊、即在遷入請求前在遷入請求對象的高速緩存行中登記的高速緩存WAY被無效化,所以,對請求方的高速緩存指示不需要替換處理。
在遷入請求方的高速緩存中,受理高速緩存行后,繼續(xù)進行使用所受理的高速緩存行再次開始的工作,并且,在高速緩存中寫入所受理的高速緩存fi1。在1次的寫入中寫入32字節(jié),所以,在64字節(jié)的1高速緩存行的登記處理中,執(zhí)行2次處理流程。
首先,在第l次的處理流程中,向高速緩存數(shù)據(jù)部送出存儲在MIB中的高速緩存行和高速緩存WAY信息、以及所受理的高速緩存行的32字節(jié),將其寫入高速緩存數(shù)據(jù)部的RAM (S707)。接著,在第2次的流程中,在高速緩存數(shù)據(jù)部的RAM中寫入剩余的32字節(jié),同時,在高速緩存標簽部中寫入保持在MIB中的物理地址(S708),并且,導(dǎo)通高速緩存標簽的Valid位(S709)。關(guān)于引起高速緩存錯誤并請求了遷入的命令以外的命令,在針對高速緩存進行登記之前,從MIB中取出數(shù)據(jù),在登記后,對高速緩存標簽部、高速緩存數(shù)據(jù)部進行訪問,取出髙速緩存的內(nèi)容。如果此時再次檢測出故障,則再次執(zhí)行故障處理的一連串的處理流程,消除故障。
如果反復(fù)進行規(guī)定次數(shù)的故障消除處理流程也沒有消除故障,則利用稱為塊刪除的手段對故障高速緩存行進行切斷。關(guān)于塊刪除處理,在專利文獻5中進行了詳細敘述。但是,執(zhí)行塊刪除處理時,無法避免由
16于對高速緩存行進行1行切斷而引起的性能降低。因此,尋求救濟高速緩存的1位固定故障而不喪失高速緩存行的方法。
如上所述,參照圖1 圖7,說明了沒有搭載高速緩存行交替寄存器的現(xiàn)有的高速緩存。
總結(jié)上述內(nèi)容,在現(xiàn)有的高速緩存行交替寄存器的裝配方式中,在交替對象地址的比較中使用物理地址,物理地址一致時,讀出交替寄存器的數(shù)據(jù),但是,物理地址的比較對象位數(shù)多,所以,存在地址處理需要花費時間這樣的問題。并且,為了得到作為比較對象的物理地址,需要參照TLB或高速緩存標簽,所以,在高速緩存的讀出中,能夠使用高速緩存行交替寄存器,但是,在高速緩存的寫入中,TLB、高速緩存標簽的參照比較和寫入的流程與通常的高速緩存控制流程相差甚遠,所以,不得不放棄使用高速緩存行交替寄存器,每次將高速緩存行交替寄存器作為存儲對象時,使高速緩存行交替寄存器無效化,從主存儲參照起重做等,在存儲工作時產(chǎn)生性能降低。
并且,以往,交替寄存器以能夠交替的與1行相當?shù)娜课坏姆绞綐?gòu)成。實際上,在1個高速緩存行中的多處產(chǎn)生1位錯誤的概率很低,尋求以更少數(shù)量的寄存器實現(xiàn)交替寄存器的功能,節(jié)約電路資源。
因此,在現(xiàn)有的高速緩存中搭載新的高速緩存行交替寄存器,來解決問題。
專利文獻l:日本特開昭52-15236號公報專利文獻2:日本特許第3483296號公報專利文獻3:日本特愿2006-999902號專利文獻4:日本特愿2006-353505號專利文獻5:日本特愿2006-999821號

發(fā)明內(nèi)容
本發(fā)明解決現(xiàn)有的高速緩存交替寄存器的問題。詳細地講,其目的在于,改善在高速緩存行中產(chǎn)生故障等而進行交替時的處理時間;解決每次將高速緩存行交替寄存器作為存儲對象時,使高速緩存行交替寄存器無效化而從主存儲器參照起重做等,在存儲工作時產(chǎn)生性能降低的情
況;以及不像現(xiàn)有的高速緩存行交替寄存器那樣以能夠交替與1行相當 的全部位的方式構(gòu)成寄存器,而以更少數(shù)量的寄存器構(gòu)成,節(jié)約必要的 電路資源。
為了解決上述課題,在本發(fā)明中,高速緩存裝置構(gòu)成為具有數(shù)據(jù) 保持部,其具備多個路徑,各路徑具有多個高速緩存行,在所述高速緩 存行中保持數(shù)據(jù);交替數(shù)據(jù)寄存器,其保持所述數(shù)據(jù)保持部所具有的高 速緩存行的1行數(shù)據(jù)或所述高速緩存行的一部分數(shù)據(jù);交替地址寄存器, 其保持用于高速緩存訪問的索引地址,該索引地址指示在所述數(shù)據(jù)保持 部中產(chǎn)生了故障的故障高速緩存行和所述故障高速緩存行內(nèi)的故障產(chǎn)生 部;交替路徑寄存器,其保持所述數(shù)據(jù)保持部中的、包含所述數(shù)據(jù)保持 部的故障位的路徑的路徑信息;地址匹配電路,其在對所述數(shù)據(jù)保持部 進行訪問的情況下,對在訪問中使用的索引地址和所述交替地址寄存器 所保持的所述索引地址進行比較;以及路徑匹配電路,其在對所述數(shù)據(jù) 保持部進行訪問的情況下,對在訪問中使用的路徑信息和所述交替路徑 寄存器所保持的路徑信息進行比較。
根據(jù)本發(fā)明,在交替對象地址的比較中,使用指示高速緩存上的故 障高速緩存行和包含所述高速緩存行內(nèi)的故障位的數(shù)據(jù)塊的索引地址, 所以,與使用物理地址的情況相比,比較對象的位寬度變小,所以,能 夠縮短在地址比較中花費的時間,并且,能夠在判明TLB和高速緩存標 簽的參照結(jié)果之前,完成交替地址的比較。并且,通過使用索引地址, 保持交替數(shù)據(jù)的交替數(shù)據(jù)寄存器只要能夠保持比與產(chǎn)生了故障的故障高 速緩存行的1行相當?shù)拈L度短的數(shù)據(jù)即可。這樣,交替數(shù)據(jù)寄存器只要 保持數(shù)據(jù)塊的長度的數(shù)據(jù)即可,所以,能夠抑制在高速緩存行交替寄存 器中使用的電路尺寸,能夠期待電路裝配面積的削減和電力消耗量降低 的效果。
并且,在現(xiàn)有的高速緩存控制流程中,同時實施TLB和高速緩存標 簽的參照以及數(shù)據(jù)的寫入,但是,根據(jù)本發(fā)明的高速緩存行交替寄存器, 在存儲命令的處理流程與現(xiàn)有的高速緩存控制流程相同的情況下,能夠
18與存儲數(shù)據(jù)對應(yīng)地,始終將高速緩存行交替寄存器的內(nèi)容更新為最新的 狀態(tài),在存儲命令中也能夠使用交替寄存器,所以,能夠避免在存儲對 象存在于交替寄存器中的情況下產(chǎn)生的性能降低。


圖1是示出現(xiàn)有的CPU的整體結(jié)構(gòu)的圖。
圖2是示出現(xiàn)有的高速緩存的結(jié)構(gòu)的圖。
圖3是說明現(xiàn)有的高速緩存的讀出工作的流程圖。
圖4是說明在現(xiàn)有的OP-LBS中存在故障時的故障處理的流程圖。
圖5是說明在現(xiàn)有的IF-LBS中存在故障時的故障處理的流程圖。
圖6是說明現(xiàn)有的高速緩存的存儲工作的流程圖。
圖7是說明在現(xiàn)有的高速緩存中使高速緩存行無效化后、再次開始
使用了故障高速緩存行的命令的處理的工作的流程圖。 圖8是示出本實施方式的CPU的整體結(jié)構(gòu)的圖。 圖9是示出本實施方式的高速緩存的結(jié)構(gòu)的圖。 圖IO是說明本實施方式的交替地址寄存器的結(jié)構(gòu)的圖。 圖11是說明本實施方式的高速緩存的讀出工作的流程圖。 圖12是說明在本實施方式的OP-LBS中存在故障時的故障處理的流程圖。
圖13是說明在本實施方式的IF-LBS中存在故障時的故障處理的流 程圖。
圖14是說明在本實施方式的高速緩存中使高速緩存行無效化后、再 次開始使用了故障高速緩存行的命令的處理的工作的流程圖。
圖15是說明本實施方式的存儲工作的流程圖。
圖16是說明在本實施方式中使交替地址寄存器的位數(shù)增加1位的情 況的圖。
圖17是示出本實施方式的交替地址寄存器和交替數(shù)據(jù)寄存器的物 量關(guān)系的圖。
圖18是說明本實施方式的交替地址寄存器更新模式打開時的處理的圖。
圖19是說明本實施方式的交替地址寄存器更新模式關(guān)閉時的處理 的圖。
具體實施例方式
下面,參照

高速緩存行交替寄存器的實施方式的一例。 圖8示出本實施方式的CPU的整體結(jié)構(gòu)。
圖8的CPU 1的結(jié)構(gòu)與圖1所示的CPU 101的結(jié)構(gòu)大致相同。CORE 2對應(yīng)于圖1的CORE 102, SU3對應(yīng)于圖1的SU103, IU4對應(yīng)于圖1 的IU 104,EU5對應(yīng)于圖1的EU 105,IF-LBS 6對應(yīng)于圖1的IF-LBS 106, OP-LBS 7對應(yīng)于圖1的OP-LBS 107, SX 10對應(yīng)于圖1的SX 108, SYSTEM BUS 11、 Memory 12分別對應(yīng)于圖1的SYSTEM BUS 109、 Memory 110。
在本實施方式中,新追加IF-CLAR (Cache Line Alternation Register: 高速緩存行交替寄存器)8、 OP-CLAR9。
圖9示出本實施方式的高速緩存行交替寄存器CLAR的結(jié)構(gòu),與圖 2進行比較可知在本實施方式中追加的部分。
利用64字節(jié)單位來管理高速緩存RAM21、 22中的高速緩存行,高 速緩存RAM利用2個WAY來構(gòu)成64千字節(jié)的容量。每1個WAY的高 速緩存行的數(shù)量為512行,針對高速緩存行的訪問地址由9位構(gòu)成。在 高速緩存數(shù)據(jù)RAM中,采用8個讀出數(shù)據(jù)寬度為8字節(jié)、行數(shù)為1024 的RAM。
本實施方式的高速緩存行交替寄存器由3種寄存器和2種匹配電路 構(gòu)成。第1寄存器是交替地址寄存器26 (CLAAR: Cache Line Alternation Address Register),其登記并保持用于指示1位固定故障高速緩存行及其 錯誤位處存在于高速緩存上的何處的索引地址。第2寄存器是交替WAY 寄存器27,其登記并保持1位固定故障高速緩存行的WAY信息。第3 寄存器是交替數(shù)據(jù)寄存器25 (CLADR: Cache Line Alternation Data RegisteO,其登記并保持RAM固定故障高速緩存行的半行數(shù)據(jù)。并且,
20第1匹配電路是對索引地址進行比較的地址匹配電路28。第2匹配電路 是對WAY進行比較的WAY匹配電路29。
對數(shù)據(jù)信號線30輸出WAY 0 (21)的輸出數(shù)據(jù),對數(shù)據(jù)信號線31 輸出WAY 1 (22)的輸出數(shù)據(jù),對信號線32輸出由地址匹配電路28比 較后的結(jié)果即CLAAR-MCH信號,對信號線33輸出由WAY匹配電路 29比較后的結(jié)果即WAY-MCH信號,對數(shù)據(jù)線34輸出交替數(shù)據(jù)寄存器 25的輸出數(shù)據(jù),對信號線35輸出WAY 0 CLAAR-MCH信號,對信號線 36輸出WAY 1 CLAAR-MCH信號。37是WAY 0側(cè)的高速緩存RAM(21) 和交替數(shù)據(jù)寄存器25的選擇電路,38是WAY 1側(cè)的髙速緩存RAM(22) 和交替數(shù)據(jù)寄存器25的選擇電路。對數(shù)據(jù)線39輸出向命令處理裝置或 運算裝置送出的數(shù)據(jù)。
圖10示出交替地址寄存器26的說明。在本實施方式中,為了指示 產(chǎn)生故障的錯誤位處存在于高速緩存上的何處,將高速緩存分割為由塊0 和塊1構(gòu)成的兩個塊。即,索引地址由高速緩存行地址(訪問地址)用 的9位和用于表示故障塊的1位的合計10位構(gòu)成。因此,交替地址寄存 器26保持表示產(chǎn)生故障的高速緩存行的訪問地址用的9位(從虛擬地址 中取出位14 6)和表示在哪個塊產(chǎn)生了故障的1位(從虛擬地址中取出 位5)。而且,交替數(shù)據(jù)寄存器25只要能夠保持各塊的尺寸即32字節(jié)的 數(shù)據(jù)即可。
下面,使用流程圖詳細說明圖9、圖IO所示的結(jié)構(gòu)的高速緩存的工作。
首先,圖ll示出說明本實施方式的高速緩存的讀出工作的流程圖。 在高速緩存的讀出中,如以往那樣,參照高速緩存數(shù)據(jù)部、高速緩存標 簽部和TLB部,同時對交替地址寄存器進行訪問。圖11中的S1101 S1112的處理進行與示出現(xiàn)有的高速緩存讀出工作的圖3的S301 S312 相同的處理。
在本實施方式中,在高速緩存行交替寄存器中進行S1120 S1125所 示的處理。
首先,在參照高速緩存數(shù)據(jù)部的循環(huán)中,分別將存儲在交替地址寄
21存器26中的索引地址和在高速緩存數(shù)據(jù)部的參照中使用的高速緩存的索 引地址、以及高速緩存WAY與交替地址寄存器26所保持的內(nèi)容和交替 WAY寄存器27所保持的內(nèi)容進行比較(S1120)。然后,取出CLAAR-WAY 信號和CLADR數(shù)據(jù)(S1121)。向全部高速緩存數(shù)據(jù)RAM送出表示比較 結(jié)果的CLAAR-MCH信號、表示存儲在交替WAY寄存器27中的交替對 象WAY的CLAAR-WAY信號、以及交替數(shù)據(jù)寄存器25的內(nèi)容(S1122)。 在下一循環(huán)中,在S1123中,如果CLAAR-MCH信號和WAY-MCH信號 導(dǎo)通,則針對從全部高速緩存RAM讀出的64字節(jié)的數(shù)據(jù),將 CLARR-WAY信號所示的WAY的32字節(jié)數(shù)據(jù)替換為交替數(shù)據(jù)寄存器25 的內(nèi)容,作為高速緩存讀出數(shù)據(jù)(S1124)。在S1123中,如果CLAAR-MCH 信號截止,則不對從全部高速緩存RAM讀出的64字節(jié)數(shù)據(jù)實施操作 (S1125),直接使用從高速緩存讀出的數(shù)據(jù)。
此后,進行與現(xiàn)有的高速緩存裝置相同的工作,g卩,根據(jù)標簽匹配 結(jié)果選擇高速緩存WAY的數(shù)據(jù)的一方,完成高速緩存的讀出。這樣,高 速緩存行交替寄存器的功能在沒有產(chǎn)生故障時也是有效的。
接著,圖12、圖13分別示出說明在本實施方式的OP-LBS和IF-LBS 中存在故障時的故障處理的流程圖。在存在故障時的故障處理中,進行 與以往的處理相同的處理,但是,在圖12中追加S1217、 S1218、 S1219、 S1220的處理,在圖13中追加S1308、 S1309的處理,除此之外的處理 相同。圖12的S1201 S1216的處理對應(yīng)于圖4的S401 S416的處理, 圖13的S1301 S1307的處理對應(yīng)于圖5的S501 S507的處理。
在高速緩存數(shù)據(jù)的RAM中檢測出故障時,g卩,CLAAR-MCH信號 沒有導(dǎo)通而檢測出高速緩存數(shù)據(jù)部的故障時,表示在從高速緩存數(shù)據(jù) RAM讀出的數(shù)據(jù)中檢測出故障。此時,為了使以往的故障處理流程中的 故障高速緩存行無效化,在將高速緩存標簽的有效位改寫為無效狀態(tài)的 流水線處理的R循環(huán)的2循環(huán)后的定時,在交替地址寄存器26和交替 WAY寄存器27中寫入無效化對象高速緩存索引和高速緩存WAY (S1218、 S1220、 S1309)。
通過以上的工作,在高速緩存行交替寄存器中登記故障高速緩存行及其WAY,所以,在參照故障的高速緩存行時,參照高速緩存行交替數(shù) 據(jù)寄存器的內(nèi)容,無法使用故障的高速緩存RAM的內(nèi)容,所以,能夠隱 蔽高速緩存RAM的故障,實現(xiàn)對故障的恢復(fù)。
另外,S1217、 S1219、 S1308的與模式有關(guān)的說明在后面敘述。 接著,圖14示出使高速緩存行無效化后、再次開始使用了故障高速 緩存行的命令的處理的工作。關(guān)于再次開始高速緩存行的無效化后的故 障高速緩存行的工作,也仍進行與以往的處理相同的處理。即,圖14的 S1401 S1409的處理對應(yīng)于圖7的S701 S709。而且,追加了圖14的 S1410 S1419所示的由高速緩存行交替寄存器進行的處理。
在完成故障高速緩存行的無效化、并在交替地址寄存器26中登記了 故障高速緩存索引后,再次開始執(zhí)行命令時,將再次開始的命令所使用 的高速緩存行登記在交替地址寄存器26中。該高速緩存行處于引起高速 緩存錯誤的狀態(tài),所以,如以往那樣請求高速緩存行的遷入。然后,高 速緩存行到達時,對高速緩存數(shù)據(jù)部指示高速緩存索引和高速緩存WAY, 并向高速緩存數(shù)據(jù)部送出所遷入的高速緩存行,指示高速緩存行的登記。 在高速緩存數(shù)據(jù)部中,在受理了高速緩存行的登記指示的下一循環(huán) 中,在與所受理的高速緩存索引和高速緩存WAY對應(yīng)的高速緩存數(shù)據(jù) RAM中寫入遷入數(shù)據(jù),并且,分別將寫入對象的高速緩存索引和高速緩 存WAY與交替地址寄存器26所保持的內(nèi)容和交替WAY寄存器27所保 持的內(nèi)容進行比較(S1410、 S14U)。在S1412中,如果高速緩存索引地 址和高速緩存WAY雙方一致,則在交替數(shù)據(jù)寄存器25中也寫入遷入數(shù) 據(jù)(S1413)。在S1412中不一致的情況下,不寫入任何數(shù)據(jù)(S1414)。 這樣,即使寫入高速緩存的數(shù)據(jù)故障,也能夠在交替數(shù)據(jù)寄存器25中預(yù) 先準備該數(shù)據(jù)。因此,在存在讀出故障高速緩存行等的參照的情況下, 參照存儲在高速緩存行交替寄存器中的數(shù)據(jù),所以,能夠取出該數(shù)據(jù)的 沒有故障的狀態(tài)的數(shù)據(jù)。
另外,S1415 S1419的處理與S1410 S1414的處理相同。 接著,參照圖15說明本實施方式的針對存儲命令的對高速緩存的寫 入。在針對存儲命令的對高速緩存的寫入處理中,如以往那樣對高速緩存標簽部和TLB部進行1次參照,對高速緩存數(shù)據(jù)部進行2次參照。并且,圖15的S1501 S1512的處理進行與圖6所示的現(xiàn)有的針對存儲命令的對高速緩存的寫入處理的S601 S612相同的處理。
在圖15中,首先,在存儲命令的第1次的處理流程中,通過交替地址寄存器26和交替數(shù)據(jù)寄存器25,救濟高速緩存數(shù)據(jù)的故障(S1501 S1507)。
在存儲命令的第2次的處理流程中,在P循環(huán)中,對高速緩存數(shù)據(jù)部指示高速緩存索引地址、存儲對象WAY以及存儲對象字節(jié)位置(S1509),并且,針對存儲對象RAM的存儲對象字節(jié)位置導(dǎo)通WE(WriteEnable)信號(S1513)。與其并行地,取出存儲在存儲數(shù)據(jù)寄存器中的存儲數(shù)據(jù),送出到高速緩存數(shù)據(jù)部(S1510)。在下一循環(huán)的T循環(huán)中,將存儲數(shù)據(jù)存儲在存儲對象高速緩存RAM的存儲對象字節(jié)位置,并且,將索引地址和存儲對象WAY與交替地址寄存器26和交替WAY寄存器27的內(nèi)容進行比較(S1514)。在S1515中比較的結(jié)果為與交替地址寄存器26和交替WAY寄存器27的內(nèi)容一致的情況下,根據(jù)表示存儲對象字節(jié)位置的信息,在交替數(shù)據(jù)寄存器25的存儲對象位置寫入存儲數(shù)據(jù)(S1516)。如果在S1515中比較的結(jié)果不一致,則不在交替數(shù)據(jù)寄存器25中寫入任何數(shù)據(jù)(S1517),結(jié)束處理。在此后的R循環(huán)中,如以往那樣執(zhí)行ECC處理(S1518)。這樣,在存儲命令的執(zhí)行中,也能夠?qū)⒔惶鏀?shù)據(jù)寄存器25的內(nèi)容更新為高速緩存的最新狀態(tài),所以,在后續(xù)命令參照作為高速緩存行交替寄存器的交替對象的高速緩存行時,也能夠從高速緩存行交替數(shù)據(jù)寄存器中取出與最新狀態(tài)的高速緩存數(shù)據(jù)對應(yīng)的數(shù)據(jù),所以,從高速緩存的故障解脫出來。
因此,不僅是加載命令,在存儲命令中也能夠使用高速緩存行交替寄存器,所以,能夠避免在存儲對象存在于高速緩存行交替寄存器中的情況下產(chǎn)生的性能降低。
如上所述說明了本實施方式,但是,在上述說明中,如圖10所示構(gòu)成交替地址寄存器26所保持的位數(shù)。
艮P,保持索引地址的交替地址寄存器26構(gòu)成為,由表示故障高速緩
24存行的訪問地址的9位和表示故障塊的1位的合計10位構(gòu)成。
這里,使索引地址增加1位,用于表示高速緩存的故障塊。由此,能夠使對高速緩存進行分割的塊數(shù)增加2倍,進而,使進行高速緩存數(shù)據(jù)的替換的數(shù)據(jù)尺寸為二分之一,所以,能夠使交替數(shù)據(jù)寄存器25的尺寸也成為二分之一。
同樣,l位l位地增加索引地址時,交替數(shù)據(jù)寄存器25的尺寸能夠減半。圖16圖示了該情況。
首先,在圖16 (a)中,示出交替地址寄存器26所保持的位數(shù)為11位的情況。保持用于表示故障高速緩存行的行地址即訪問地址的9位和用于表示故障塊的2位的合計11位。由此,高速緩存塊數(shù)為4塊,進行高速緩存數(shù)據(jù)的替換的數(shù)據(jù)尺寸為圖10所示的32字節(jié)的一半即16字節(jié)。
同樣,在圖16 (b)中,示出交替地址寄存器26所保持的位數(shù)為12位、即用于表示訪問地址的9位和用于表示故障塊的3位的合計12位的情況。由此,高速緩存塊數(shù)為8塊,能夠使進行高速緩存數(shù)據(jù)的替換的數(shù)據(jù)尺寸為圖16 (a)的一半即8字節(jié)。
在圖16 (c)中,同樣地,交替地址寄存器26所保持的位數(shù)增加1位時,進行高速緩存數(shù)據(jù)的替換的數(shù)據(jù)尺寸從圖16 (b)所示的尺寸能夠減半。
圖17總結(jié)該情況示出交替地址寄存器26的位數(shù)和交替數(shù)據(jù)寄存器的物量關(guān)系??芍?,交替地址寄存器26的位數(shù)增加1位時,交替數(shù)據(jù)的尺寸減半。
并且,在本實施方式中,能夠在高速緩存行的無效化時進行交替地址寄存器26的更新。因此,設(shè)置在高速緩存替換(交替)產(chǎn)生時進行交替地址寄存器26的更新的模式。該模式打開時,在使交替對象塊無效化的替換處理的第2次的流程中,利用交替對象的高速緩存索引來更新交替地址寄存器26。這樣,在通常工作中,也能夠頻繁地更新交替地址寄存器26。與僅在固定故障產(chǎn)生時更新交替地址寄存器26的方式相比,交替地址寄存器26的更新頻度和更新定時的產(chǎn)生模式增加,所以,能夠容易地進行與交替地址寄存器26的控制有關(guān)的設(shè)計錯誤的檢測。另外,在
25上述圖12的S1217、 S1219、圖13的S1308中,判斷是否是交替地址寄存器26更新模式。
并且,高速緩存數(shù)據(jù)部在CPU芯片出廠時,需要進行全部高速緩沖存儲單元的測試。進行高速緩沖存儲單元的測試時,在替換中進行交替地址寄存器26的更新,由此,能夠避免產(chǎn)生由交替地址寄存器功能所保護的從基于測試的故障檢査中遺漏的高速緩沖存儲單元。
例如,在測試的開始狀態(tài)下,交替地址寄存器26成為地址"0WAY0"時,在未由高速緩存行交替寄存器引起故障的情況下,地址0、 WAYO成為交替對象。由此,利用高速緩存行交替寄存器的內(nèi)容替換地址O、塊0、WAYO的高速緩存RAM的數(shù)據(jù)并進行讀出(參照圖18的交替地址寄存器更新模式關(guān)閉的情況)。這里,當交替地址寄存器更新模式打開時,每次進行替換(交替)時,利用交替對象的高速緩存索引和高速緩存WAY來更新交替地址寄存器26,所以,能夠避免地址0、 WAYO的高速緩存行從故障檢查中遺漏的情況(參照圖19的交替地址寄存器更新模式打幵的情況)。
如上所述,詳細說明了本實施方式,但是,本發(fā)明不限于上述實施方式,只要能夠?qū)崿F(xiàn)與上述各結(jié)構(gòu)等同的功能,則當然可以是任意結(jié)構(gòu)。
根據(jù)本發(fā)明,在交替對象地址的比較中,使用指示高速緩存上的故障高速緩存行和包含所述高速緩存行內(nèi)的故障位在內(nèi)的數(shù)據(jù)塊的索引地址,所以,與使用物理地址的情況相比,比較對象的位寬度變小,所以,能夠縮短在地址比較中花費的時間,并且,能夠在判明TLB和高速緩存標簽的參照結(jié)果之前,完成交替地址的比較。并且,通過使用索引地址,保持交替數(shù)據(jù)的交替數(shù)據(jù)寄存器只要能夠保持比產(chǎn)生了故障的故障高速緩存行的1行長度短的數(shù)據(jù)即可。這樣,交替數(shù)據(jù)寄存器只要保持數(shù)據(jù)塊的長度的數(shù)據(jù)即可,所以,能夠抑制在高速緩存行交替寄存器中使用的電路尺寸,能夠期待電路裝配面積的削減和電力消耗量降低的效果。
并且,在現(xiàn)有的高速緩存控制流程中,同時實施TLB和高速緩存標簽的參照以及數(shù)據(jù)的寫入,但是,根據(jù)本發(fā)明的高速緩存行交替寄存器,存儲命令的處理流程與現(xiàn)有的高速緩存控制流程相同,能夠與存儲數(shù)據(jù)對應(yīng)地,始終將高速緩存行交替寄存器的內(nèi)容更新為最新的狀態(tài),在存儲命令中也能夠使用交替寄存器,所以,能夠避免在存儲對象存在于交替寄存器中的情況下產(chǎn)生的性能降低。
權(quán)利要求
1.一種高速緩存裝置,其特征在于,該高速緩存裝置具有數(shù)據(jù)保持部,其具備多個路徑,各路徑具有多個高速緩存行,在所述高速緩存行中保持數(shù)據(jù);交替數(shù)據(jù)寄存器,其保持所述數(shù)據(jù)保持部所具有的高速緩存行的1行數(shù)據(jù)或所述高速緩存行的一部分數(shù)據(jù);交替地址寄存器,其保持用于高速緩存訪問的索引地址,該索引地址指示在所述數(shù)據(jù)保持部中產(chǎn)生了故障的故障高速緩存行和所述故障高速緩存行內(nèi)的故障產(chǎn)生部;交替路徑寄存器,其保持所述數(shù)據(jù)保持部中的、包含所述數(shù)據(jù)保持部的故障位的路徑的路徑信息;地址匹配電路,其在對所述數(shù)據(jù)保持部進行訪問的情況下,對在訪問中使用的索引地址和所述交替地址寄存器所保持的所述索引地址進行比較;以及路徑匹配電路,其在對所述數(shù)據(jù)保持部進行訪問的情況下,對在訪問中使用的路徑信息和所述交替路徑寄存器所保持的路徑信息進行比較。
2. 根據(jù)權(quán)利要求1所述的高速緩存裝置,其特征在于, 在對所述數(shù)據(jù)保持部進行讀出參照訪問時,在所述地址匹配電路的比較結(jié)果是一致的情況下,將從與所述交替路徑寄存器所保持的路徑信 息對應(yīng)的路徑中讀出的數(shù)據(jù)替換為所述交替數(shù)據(jù)寄存器的內(nèi)容,作為從 所述數(shù)據(jù)保持部讀出的讀出數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的高速緩存裝置,其特征在于, 在對所述數(shù)據(jù)保持部進行寫入?yún)⒄赵L問時,在所述地址匹配電路和所述路徑匹配電路的比較結(jié)果都是一致的情況下,在所述數(shù)據(jù)保持部的 寫入對象路徑中寫入數(shù)據(jù),并且在所述交替數(shù)據(jù)寄存器中寫入數(shù)據(jù),使 該交替數(shù)據(jù)寄存器的內(nèi)容符合數(shù)據(jù)保持部的最新狀態(tài)。
4. 根據(jù)權(quán)利要求1 3中的任一項所述的高速緩存裝置,其特征在于, 在所述數(shù)據(jù)保持部上檢測出故障位的情況下,根據(jù)需要對下級的高速緩存或主存儲器回寫包含該故障位的高速緩存行中所保持的數(shù)據(jù),并 且,使該高速緩存行無效化,在無效化完成時,將作為無效化對象的高 速緩存行的地址保持在所述交替地址寄存器中,將作為無效化對象的高 速緩存路徑保持在所述交替路徑寄存器中。
5. 根據(jù)權(quán)利要求1所述的高速緩存裝置,其特征在于, 在高速緩存裝置的工作模式是在產(chǎn)生高速緩存替換時進行所述交替地址寄存器的更新的高速緩存替換模式的情況下,利用高速緩存替換對 象的高速緩存索引地址和高速緩存路徑,更新所述交替地址寄存器和所 述交替路徑寄存器。
6. 根據(jù)權(quán)利要求5所述的高速緩存裝置,其特征在于, 不在所述數(shù)據(jù)保持部中產(chǎn)生了故障位時,而在通常工作中,將所述工作模式切換為所述高速緩存替換模式,進行所述交替地址寄存器的工 作檢査和高速緩存位的檢査。
7. 根據(jù)權(quán)利要求1 6中的任一項所述的高速緩存裝置,其特征在于, 所述索引地址中的表示所述高速緩存行內(nèi)的包含故障位的數(shù)據(jù)塊的位數(shù)每增加1位,所述交替數(shù)據(jù)寄存器的尺寸能夠減半。
8. —種運算處理裝置,該運算處理裝置具有高速緩存裝置和對保持 在所述高速緩存裝置中的數(shù)據(jù)進行運算的運算處理部,該運算處理裝置 的特征在于,該運算處理裝置具有-數(shù)據(jù)保持部,其具備多個路徑,各路徑具有多個高速緩存行,在所 述高速緩存行中保持數(shù)據(jù);交替數(shù)據(jù)寄存器,其保持所述數(shù)據(jù)保持部所具有的高速緩存行的1 行數(shù)據(jù)或所述高速緩存行的一部分數(shù)據(jù);交替地址寄存器,其保持用于高速緩存訪問的索引地址,該索引地 址指示在所述數(shù)據(jù)保持部中產(chǎn)生了故障的故障高速緩存行和所述故障高 速緩存行內(nèi)的故障產(chǎn)生部;交替路徑寄存器,其保持所述數(shù)據(jù)保持部中的、包含所述數(shù)據(jù)保持部的故障位的路徑的路徑信息;地址匹配電路,其在對所述數(shù)據(jù)保持部進行訪問的情況下,對在訪 問中使用的索引地址和所述交替地址寄存器所保持的所述索引地址進行 比較;以及路徑匹配電路,其在對所述數(shù)據(jù)保持部進行訪問的情況下,對在訪 問中使用的路徑信息和所述交替路徑寄存器所保持的路徑信息進行比 較。
9. 根據(jù)權(quán)利要求8所述的運算處理裝置,其特征在于, 在對所述數(shù)據(jù)保持部進行讀出參照訪問時,在所述地址匹配電路的比較結(jié)果是一致的情況下,將從與所述交替路徑寄存器所保持的路徑信 息對應(yīng)的路徑中讀出的數(shù)據(jù)替換為所述交替數(shù)據(jù)寄存器的內(nèi)容,作為從 所述數(shù)據(jù)保持部讀出的讀出數(shù)據(jù)。
10. 根據(jù)權(quán)利要求8所述的運算處理裝置,其特征在于, 在對所述數(shù)據(jù)保持部進行寫入?yún)⒄赵L問時,在所述地址匹配電路和所述路徑匹配電路的比較結(jié)果都是一致的情況下,在所述數(shù)據(jù)保持部的 寫入對象路徑中寫入數(shù)據(jù),并且在所述交替數(shù)據(jù)寄存器中寫入數(shù)據(jù),使 該交替數(shù)據(jù)寄存器的內(nèi)容符合數(shù)據(jù)保持部的最新狀態(tài)。
11. 根據(jù)權(quán)利要求8 10中的任一項所述的運算處理裝置,其特征在于,在所述數(shù)據(jù)保持部上檢測出故障位的情況下,根據(jù)需要對下級的高 速緩存或主存儲器回寫包含該故障位的高速緩存行中所保持的數(shù)據(jù),并 且,使該高速緩存行無效化,在無效化完成時,將作為無效化對象的高 速緩存行的地址保持在所述交替地址寄存器中,將作為無效化對象的高 速緩存路徑保持在所述交替路徑寄存器中。
12. 根據(jù)權(quán)利要求8所述的運算處理裝置,其特征在于, 在所述高速緩存裝置的工作模式是在產(chǎn)生高速緩存替換時進行所述交替地址寄存器的更新的高速緩存替換模式的情況下,利用高速緩存替 換對象的高速緩存索引地址和高速緩存路徑,更新所述交替地址寄存器和所述交替路徑寄存器。
13. 根據(jù)權(quán)利要求12所述的運算處理裝置,其特征在于, 不在所述數(shù)據(jù)保持部中產(chǎn)生了故障位時,而在通常工作中,將所述工作模式切換為所述高速緩存替換模式,進行所述交替地址寄存器的工 作檢查和高速緩存位的檢查。
14. 根據(jù)權(quán)利要求8 13中的任一項所述的運算處理裝置,其特征在于,所述索引地址中的表示所述高速緩存行內(nèi)的包含故障位的數(shù)據(jù)塊的 位數(shù)每增加1位,所述交替數(shù)據(jù)寄存器的尺寸能夠減半。
15. —種高速緩存的控制方法,該高速緩存具有數(shù)據(jù)保持部,其具 備多個路徑,各路徑具有多個高速緩存行;進行地址比較的地址匹配電 路;進行所述路徑的比較的路徑匹配電路;以及控制高速緩存行的交替 的第1 第3寄存器,該控制方法的特征在于,該控制方法包括如下步驟在所述數(shù)據(jù)保持部的所述高速緩存行中保持數(shù)據(jù);在所述第1寄存器中保持所述數(shù)據(jù)保持部所具有的高速緩存行的1 行數(shù)據(jù)或所述高速緩存行的一部分數(shù)據(jù);在所述第2寄存器中保持用于高速緩存訪問的索引地址,該索引地 址指示在所述數(shù)據(jù)保持部中產(chǎn)生了故障的故障高速緩存行和所述故障高 速緩存行內(nèi)的故障產(chǎn)生部;在所述第3寄存器中保持所述數(shù)據(jù)保持部中的、包含所述數(shù)據(jù)保持 部的故障位的路徑的路徑信息;在對所述數(shù)據(jù)保持部進行訪問的情況下,通過所述地址匹配電路, 對在訪問中使用的索引地址和所述第2寄存器所保持的所述索引地址進 行比較;以及在對所述數(shù)據(jù)保持部進行訪問的情況下,通過所述路徑匹配電路, 對在訪問中使用的路徑信息和所述第3寄存器所保持的信息進行比較。
16. 根據(jù)權(quán)利要求15所述的控制方法,其特征在于, ^ 述控制方法包括如下步驟在對所述數(shù)據(jù)保持部進行讀出參照訪問時,在所述地址匹配電路的比較結(jié)果是一致的情況下,將從與所述交 替路徑寄存器所保持的路徑信息對應(yīng)的路徑中讀出的數(shù)據(jù)替換為所述第 l寄存器的內(nèi)容,作為從所述數(shù)據(jù)保持部讀出的讀出數(shù)據(jù)。
17. 根據(jù)權(quán)利要求15所述的控制方法,其特征在于,所述控制方法包括如下步驟在對所述數(shù)據(jù)保持部進行寫入?yún)⒄赵L 問時,在所述地址匹配電路和所述路徑匹配電路的比較結(jié)果都是一致的 情況下,在所述數(shù)據(jù)保持部的寫入對象路徑中寫入數(shù)據(jù),并且在所述第1 寄存器中寫入數(shù)據(jù),使所述第1寄存器的內(nèi)容符合數(shù)據(jù)保持部的最新狀 態(tài)。
18. 根據(jù)權(quán)利要求15 17中的任一項所述的控制方法,其特征在于, 所述控制方法包括如下步驟在所述數(shù)據(jù)保持部上檢測出故障位的情況下,根據(jù)需要對下級的高速緩存或主存儲器回寫包含該故障位的高 速緩存行中所保持的數(shù)據(jù),并且,使該高速緩存行無效化,在無效化完成時,將作為無效化對象的高速緩存行的地址保持在所述第2寄存器中, 將作為無效化對象的高速緩存路徑保持在所述第3寄存器中。
19. 根據(jù)權(quán)利要求15所述的控制方法,其特征在于, 所述控制方法包括如下步驟在所述高速緩存的工作模式是在產(chǎn)生高速緩存替換時進行所述第2寄存器的更新的高速緩存替換模式的情況 下,利用高速緩存替換對象的高速緩存索引地址和高速緩存路徑,更新 所述第2寄存器和所述第3寄存器。
20. 根據(jù)權(quán)利要求19所述的控制方法,其特征在于, 所述控制方法包括如下步驟不在所述數(shù)據(jù)保持部中產(chǎn)生了故障位時,而在通常工作中,將所述工作模式切換為所述高速緩存替換模式, 進行所述第2寄存器的工作檢査和高速緩存位的檢查。
全文摘要
本發(fā)明提供高速緩存裝置、運算處理裝置及其控制方法。高速緩存裝置構(gòu)成為具有數(shù)據(jù)保持部,其具備多個具有多個高速緩存行的路徑;交替數(shù)據(jù)寄存器,其保持數(shù)據(jù)保持部所具有的高速緩存行的1行數(shù)據(jù)或高速緩存行的一部分數(shù)據(jù);交替地址寄存器,其保持指示在數(shù)據(jù)保持部中產(chǎn)生了故障的故障高速緩存行和故障高速緩存行內(nèi)的故障產(chǎn)生部的索引地址;交替路徑寄存器,其保持包含故障產(chǎn)生部的路徑信息;地址匹配電路,其在對數(shù)據(jù)保持部進行訪問的情況下,對在訪問中使用的索引地址和交替地址寄存器所保持的索引地址進行比較;以及路徑匹配電路,其在對數(shù)據(jù)保持部進行訪問的情況下,對在訪問中使用的路徑信息和交替路徑寄存器所保持的路徑信息進行比較。
文檔編號G06F12/08GK101689141SQ20078005335
公開日2010年3月31日 申請日期2007年6月20日 優(yōu)先權(quán)日2007年6月20日
發(fā)明者今井裕之, 本車田強, 清田直宏 申請人:富士通株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
襄汾县| 班玛县| 无锡市| 鄂托克前旗| 西和县| 临沧市| 雷波县| 巴彦淖尔市| 墨江| 孟州市| 报价| 八宿县| 南开区| 织金县| 南乐县| 修水县| 宁津县| 交口县| 克什克腾旗| 慈利县| 洛川县| 延吉市| 十堰市| 虎林市| 宁陵县| 当阳市| 昆明市| 拉萨市| 铜陵市| 逊克县| 邵阳县| 卫辉市| 贺兰县| 荣成市| 阿拉尔市| 大余县| 资阳市| 隆德县| 永川市| 隆昌县| 江都市|