亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

高速緩沖存儲器系統(tǒng)的制作方法

文檔序號:6435155閱讀:164來源:國知局
專利名稱:高速緩沖存儲器系統(tǒng)的制作方法
技術(shù)領(lǐng)域
以下實施例涉及一種能夠抑制軟錯誤的影響的高速緩沖存儲器。
背景技術(shù)
利用近來的先進半導體技術(shù),半導體裝置具有用于寫入等的精細結(jié)構(gòu)是大勢所趨。然而,當半導體裝置的寫入等的電路越精細時,從外部接收的α射線和宇宙射線(中子束)引發(fā)電路的操作錯誤的可能性越高。對于存儲器,已經(jīng)生產(chǎn)出了具有大容量的小型存儲器單元。然而,由于電路的結(jié)構(gòu)是精細的,因此存在α射線和宇宙射線(中子束)引起所儲存的數(shù)據(jù)中的錯誤的可能性。該錯誤被稱為軟錯誤。在主存儲器和高速緩沖存儲器二者中都可能引起軟錯誤。用于高速緩沖存儲器的寫系統(tǒng)可以是回寫(write-back)系統(tǒng)和直寫(write through)系統(tǒng)。已知的是,雖然回寫系統(tǒng)的運算速度性能較高,但是回寫系統(tǒng)的控制更為復雜。然而,對于軟錯誤,直寫系統(tǒng)在軟錯誤方面是值得推薦的,這是因為在回寫系統(tǒng)中,存儲于高速緩沖存儲器中的數(shù)據(jù)內(nèi)容常常在過去長時間之后才被回寫到主存儲器中,并且作為存儲器內(nèi)容的數(shù)據(jù)可能被反轉(zhuǎn),從而在數(shù)據(jù)被回寫時引起顯著的軟錯誤。另一方面,在直寫系統(tǒng)中,數(shù)據(jù)被寫入高速緩存中并且同時被寫入主存儲器中,從而省卻了在過去長時間之后讀內(nèi)容的操作,使得軟錯誤率明顯更低。因此,直寫系統(tǒng)被用作以高速緩沖存儲器的運算速度性能為代價的高速緩沖存儲器系統(tǒng)是有效的。當直寫系統(tǒng)被用于高速緩沖存儲器時,據(jù)說可以在高速緩沖存儲器和主存儲器之間維護相同的數(shù)據(jù)內(nèi)容?;诖耍敻咚倬彌_存儲器中發(fā)生錯誤時,高速緩沖存儲器中的數(shù)據(jù)被丟棄,并且主存儲器中的與該高速緩沖存儲器中發(fā)生了錯誤的地址相對應(yīng)的數(shù)據(jù)可以被讀出并傳送給CPU,并且高速緩沖存儲器中發(fā)生了錯誤的數(shù)據(jù)內(nèi)容可以被重寫,從而繼續(xù)正常操作。傳統(tǒng)技術(shù)包括校正作為緩沖存儲器中的臨時錯誤的錯誤,通過組合由α射線引起的軟錯誤和源自硬件故障的錯誤來防止超過可校正比特數(shù)目的錯誤,以及抑制軟錯誤的累積。現(xiàn)有技術(shù)文獻專利文獻專利文獻1 日本早期專利公開No. 58-1899專利文獻2 日本早期專利公開No. 2-143352專利文獻3 日本早期專利公開No. 63-27816
發(fā)明內(nèi)容
以下實施例提供了一種能夠更正確地抑制軟錯誤的影響的高速緩沖存儲器系統(tǒng)。作為以下實施例的一個方面的高速緩沖存儲器系統(tǒng)包括高速緩沖存儲器,該高速緩沖存儲器用于存儲包含標簽分區(qū)和數(shù)據(jù)分區(qū)的數(shù)據(jù);錯誤檢測單元,該錯誤檢測單元用于檢測所述標簽分區(qū)和所述數(shù)據(jù)分區(qū)中的錯誤;以及控制單元,該控制單元用于在直寫系統(tǒng)中操作所述高速緩沖存儲器,并且將如下兩個信號的邏輯乘積的結(jié)果的信號定義為將被傳送給CPU的高速緩存命中信息所述標簽分區(qū)中的高速緩存命中信息中的指示存在高速緩存命中的信號和指示在所述錯誤檢測單元的錯誤檢測處理中沒有檢測到錯誤的信號, 當與存在高速緩存未命中的情況中一樣已經(jīng)發(fā)生錯誤時,從主存儲器讀取與所述高速緩沖存儲器中的已經(jīng)發(fā)生錯誤的數(shù)據(jù)相對應(yīng)的地址的數(shù)據(jù),并且用讀取的數(shù)據(jù)替換所述高速緩沖存儲器中的導致該錯誤的數(shù)據(jù)。 如下實施例提供了一種能夠更正確地抑制軟錯誤的影響的高速緩沖存儲器系統(tǒng)。


圖1是用于說明高速緩沖存儲器的操作的示圖(1);
圖2A、圖2B和圖2C是用于說明高速緩沖存儲器的操作的示圖3A是根據(jù)本實施例的高速緩沖存儲器系統(tǒng)的示圖3B圖示出了根據(jù)本實施例的高速緩沖存儲器系統(tǒng)的操作;
圖4A是根據(jù)本實施例的高速緩沖存儲器系統(tǒng)的示圖4B圖示出了根據(jù)本實施例的高速緩沖存儲器系統(tǒng)的操作;
圖5是2通道Q-way)集合關(guān)聯(lián)系統(tǒng)的配置;
圖6圖示出了用于執(zhí)行奇偶校驗的電路;
圖7是作為錯誤檢測電路的ECC電路的電路圖8A是應(yīng)用于圖3A的具有圖7中示出的ECC電路的配置;
圖8B是使用圖9中所示的電路的配置;
圖9圖示出了用于執(zhí)行奇偶校驗的電路;
圖10是適用于執(zhí)行奇偶校驗和ECC校正兩者的錯誤檢測配置的說明性示圖
圖11是根據(jù)本發(fā)明實施例的操作的詳細說明性示圖(1);
圖12是根據(jù)本發(fā)明實施例的操作的詳細說明性示圖(2);
圖13是根據(jù)本發(fā)明實施例的操作的詳細說明性示圖(3)。
具體實施例方式在本實施例中,高速緩沖存儲器在直寫系統(tǒng)中操作,并且,當高速緩存未命中 (mishit)發(fā)生時所執(zhí)行的操作在高速緩沖存儲器中沒有相應(yīng)數(shù)據(jù)時或在雖然有數(shù)據(jù)但是發(fā)生錯誤時被執(zhí)行。隨后,在高速緩沖存儲器中提供指示之前已經(jīng)發(fā)生軟錯誤的比特。如果當該比特指示“1”時再次發(fā)生錯誤,則判定已經(jīng)發(fā)生硬件錯誤,并且在CPU中生成中斷。 有關(guān)是否已經(jīng)發(fā)生硬件錯誤的判斷是通過提供寄存器來進行的,該寄存器在高速緩沖存儲器中發(fā)生錯誤時被設(shè)置并且被以比發(fā)生軟錯誤的頻率短足夠多的時間間隔重置。如果當該寄存器被設(shè)置時高速緩沖存儲器中發(fā)生錯誤,則判定已經(jīng)發(fā)生硬件錯誤,并且在CPU中生成中斷。如上所述,當高速緩沖存儲器中的數(shù)據(jù)中存在錯誤時,與高速緩存未命中的情況中一樣,數(shù)據(jù)從主存儲器被讀取,并且新數(shù)據(jù)被重寫入高速緩沖存儲器,從而抑制錯誤的影響的傳播。圖1和圖2是高速緩沖存儲器的操作的說明性示圖。通常,高速緩沖存儲器被分割成(具有大約16-64個字節(jié)的)行單元,并且每個行被指派一標簽。標簽的內(nèi)容包括指示該行對應(yīng)于主存儲器中的位置的狀態(tài)和地址信息。在直寫系統(tǒng)中存在兩種狀態(tài),“有效”和“無效”?!盁o效”指示重置,并且“有效”指示高速緩存中的正確數(shù)據(jù)。另一方面,在回寫系統(tǒng)中,存在三種狀態(tài),即,“無效”、“干凈”(高速緩存的內(nèi)容與主存儲器的內(nèi)容相同)、以及“不干凈”(高速緩存的內(nèi)容是正確的,并且主存儲器的內(nèi)容是過時且不可用的)。當從CPU的數(shù)據(jù)寫發(fā)生時,如果高速緩存中存在寫地址的命中(hit),則在該直寫系統(tǒng)中,寫數(shù)據(jù)被寫入主存儲器并且同時被寫入高速緩沖存儲器的數(shù)據(jù)分區(qū)。在高速緩存未命中的情況中,高速緩沖存儲器被忽略,并且數(shù)據(jù)只被寫入主存儲器。在回寫系統(tǒng)中,當進行寫操作時,如果存在高速緩存命中,則數(shù)據(jù)只被寫入高速緩存。顯然,不能在主存儲器和高速緩沖存儲器之間保持數(shù)據(jù)一致性。此狀態(tài)被作為“不干凈狀態(tài)”儲存在標簽中。在未命中的情況下,重填操作(從主存儲器讀取1行數(shù)據(jù))被執(zhí)行, 并且隨后讀取的數(shù)據(jù)被寫入高速緩沖存儲器中(也是在此情況下,進入不干凈狀態(tài))。圖1是從CPU寫數(shù)據(jù)和讀數(shù)據(jù)的框圖的配置。使能信號、讀/寫信號、以及指示讀 /寫地址的地址信號被從CPU 10輸入到高速緩存控制器IlB和高速緩沖存儲器11A。高速緩沖存儲器IlA確認其中是否存儲有對應(yīng)于C-地址信號所指示的地址的數(shù)據(jù)。如果存在該數(shù)據(jù),則高速緩存-命中信號被設(shè)置為“ 1 ”。如果不存在該數(shù)據(jù),則高速緩存-命中信號被設(shè)置為“0”,用于輸出給高速緩存控制器11B。如果存在高速緩存命中,則高速緩沖存儲器IlA以讀/寫信號在指定地址處寫或讀數(shù)據(jù)。高速緩存控制器IlB在回寫系統(tǒng)中的未命中的情況下要求重填操作。然而,在此情況下,高速緩存控制器IlB向存儲器控制器12發(fā)布用于從主存儲器讀取該高速緩存中的1行數(shù)據(jù)的指令。存儲器控制器12是用于控制對主存儲器13的存取的電路。來自CPU 10的使能信號、讀/寫信號、和地址信號通過存儲器控制器12被輸入到主存儲器13。如果在數(shù)據(jù)讀期間高速緩沖存儲器IlA中存在未命中,則高速緩存控制器IlB 向存儲器控制器12發(fā)布用于讀取指定地址處的數(shù)據(jù)的讀指令。讀取的數(shù)據(jù)被存儲在高速緩沖存儲器IlA中。當數(shù)據(jù)在直寫系統(tǒng)中被寫入時,如果存在未命中,則數(shù)據(jù)只被寫入主存儲器13,而不被寫入高速緩沖存儲器IlA0如果存在命中,則數(shù)據(jù)被寫入高速緩沖存儲器IlA和主存儲器13 二者中。圖2A、圖2B和圖2C圖示出了用于說明回寫系統(tǒng)和直寫系統(tǒng)中的操作的信號。每個信號前面的字符“C”指示去往高速緩沖存儲器的信號,并且每個信號前面的字符“M”指示去往主存儲器的信號。圖2A圖示出了回寫系統(tǒng)中的當高速緩沖存儲器中存在命中時的寫操作的信號。 當?shù)刂沸盘柋皇┘佑谕ㄐ趴刂菩畔⒉⑶彝瑫rC-使能信號被輸入時,高速緩存中的標簽被讀取。如果該標簽的數(shù)據(jù)與地址的高階部分匹配,則指示在高速緩沖存儲器中存在命中的命中信號被設(shè)置為“1”。當高速緩存中存在命中時,在寫信號C-讀/寫被設(shè)置為低的情況下,來自CPU的C-數(shù)據(jù)(寫)被寫入高速緩存中的相應(yīng)地址處的一個工作區(qū)。另外,雖然沒有在圖2中示出,但是高速緩存控制器IlB的標簽的狀態(tài)是“不干凈”。圖2B是指示回寫系統(tǒng)中的當高速緩沖存儲器中存在未命中時所執(zhí)行的操作的信號的示圖。雖然C-使能信號被使能,但是高速緩沖存儲器中存在未命中,因此,命中信號仍然為“0”。如果存在未命中,則高速緩存控制器向存儲器控制器發(fā)布用于利用由地址信號 (圖2中未示出)指示的地址來從主存儲器讀一行數(shù)據(jù)的指令。在此情況下,如果數(shù)據(jù)已經(jīng)被存儲在對應(yīng)的緩存行中,并且標簽的狀態(tài)是不干凈,則數(shù)據(jù)將被回寫至相應(yīng)的主存儲器。 然而,因為這與本發(fā)明沒有什么關(guān)系,因此,在圖2中并沒有示出。從主存儲器讀出的數(shù)據(jù)被寫入相應(yīng)的高速緩沖存儲器。寫指令被再次利用相同的地址發(fā)送給高速緩存,并且高速緩沖存儲器存儲此來自CPU的數(shù)據(jù)。圖2C圖示出了用于說明直寫系統(tǒng)中的操作的信號。首先,C-使能信號被使能。 C-讀/寫信號指定寫操作,并且地址信號被輸出。由地址信號指定的地指處的標簽分區(qū)被讀取,并且如果存在命中,則數(shù)據(jù)被寫入高速緩沖存儲器,并且隨后相同的數(shù)據(jù)被寫入主存儲器。如果高速緩沖存儲器中存在未命中,則在高速緩沖存儲器中不執(zhí)行操作,但是數(shù)據(jù)只被寫入主存儲器。如果高速緩沖存儲器中存在數(shù)據(jù),則相應(yīng)數(shù)據(jù)的內(nèi)容是指高速緩沖存儲器和主存儲器之間的相同內(nèi)容。圖3A圖示出了根據(jù)本實施例的高速緩沖存儲器系統(tǒng)。在本實施例中,如圖3A中所示,在高速緩存控制器中取出來自CPU的地址,并且使用該地址的一部分從高速緩沖存儲器11讀取標簽分區(qū)。如果標簽的狀態(tài)是無效,則比較器和兩個奇偶校驗電路被禁用,并且輸出是“0”。如果狀態(tài)是有效,則來自CPU的高階地址和內(nèi)容被相互比較。如果它們匹配,則其是指命中。奇偶校驗是針對從數(shù)據(jù)分區(qū)和標簽分區(qū)讀取的內(nèi)容執(zhí)行的。如果不存在錯誤,則判定內(nèi)容是有效的,并且被發(fā)送給CPU。如果標簽分區(qū)中的數(shù)據(jù)不匹配,或者如果奇偶校驗錯誤發(fā)生(參考圖3B),則數(shù)據(jù)是無效的。S卩,如果發(fā)生奇偶校驗錯誤,則與正常的未命中情況一樣,數(shù)據(jù)被從主存儲器讀取,數(shù)據(jù)被發(fā)送給 CPU并且讀取的數(shù)據(jù)還被寫入高速緩存的數(shù)據(jù)分區(qū),并且標簽分區(qū)的內(nèi)容被重寫入新地址。 如果標簽由于奇偶校驗錯誤被重寫,則“1”被寫入相同行中的SE比特(稍后描述)。當數(shù)據(jù)從CPU被寫入包括該高速緩存的存儲器時,雖然標簽的狀態(tài)是有效并且標簽分區(qū)的內(nèi)容與相應(yīng)地址匹配,但是如果高速緩存中發(fā)生奇偶校驗錯誤,則仍然判定已經(jīng)發(fā)生未命中。因此,來自CPU的數(shù)據(jù)只被寫入主存儲器,并且標簽的狀態(tài)被改變?yōu)闊o效。如果不存在奇偶校驗錯誤,則由奇偶校驗生成電路PG(65)為來自CPU的數(shù)據(jù)生成奇偶校驗比特,并且來自 CPU的數(shù)據(jù)和該奇偶校驗比特一起被寫入高速緩存的數(shù)據(jù)分區(qū)。由于在該情況中使用直寫系統(tǒng),所以數(shù)據(jù)也被寫入主存儲器。當CPU從存儲器讀數(shù)據(jù)時,如果發(fā)生高速緩存未命中或奇偶校驗錯誤(圖:3B),則數(shù)據(jù)從主存儲器的相應(yīng)地址處被讀取,并且奇偶校驗生成電路為內(nèi)容生成奇偶校驗比特,并且將其與從主存儲器讀取的內(nèi)容一起寫入高速緩存的數(shù)據(jù)分區(qū)。奇偶校驗生成電路PG(66)為標簽分區(qū)的相應(yīng)地址的一部分生成奇偶校驗比特,從而將其寫入高速緩存的標簽分區(qū)。作為比較器20的輸出的命中信號和通過對作為標簽奇偶校驗單元21和奇偶校驗輸出單元22的奇偶校驗結(jié)果的信號進行邏輯反轉(zhuǎn)獲得的信號被輸入到邏輯乘算電路23。因此,如果存在高速緩存命中,并且在兩個奇偶校驗中都沒有檢測到錯誤,則邏輯乘算電路 23的輸出是“1”(有效)。如果存在高速緩存命中和奇偶校驗錯誤,則該輸出為“0”(無效)。僅當邏輯乘算電路23的輸出有效時,數(shù)據(jù)輸出單元沈輸出來自高速緩沖存儲器11 的數(shù)據(jù)分區(qū)的數(shù)據(jù)。作為標簽奇偶校驗單元21的奇偶校驗結(jié)果的信號和作為奇偶校驗輸出單元22的奇偶校驗結(jié)果的信號被輸入邏輯加算電路24。邏輯加算電路M的輸出被輸入邏輯乘算電路25。SE比特(稍后描述)的值也被輸入邏輯乘算電路25。因此,如果在兩個奇偶校驗結(jié)果中的至少一個結(jié)果中存在錯誤并且SE比特(稍后描述)為“1”,則用于在CPU 中生成中斷的中斷信號被生成。因此,高速緩存的質(zhì)量可以通過增加非常簡單的電路而不必增加軟件就得到改進(增加用于輸出發(fā)生錯誤的時間的電路作為高速緩存未命中)。艮口, 當奇偶校驗錯誤發(fā)生時,與發(fā)生高速緩存未命中時一樣,可以通過如下方式去除錯誤從主存儲器讀取相應(yīng)地址的數(shù)據(jù),在高速緩存中覆寫數(shù)據(jù),并且更新標簽的內(nèi)容。此外,為了提供用于確定奇偶校驗錯誤是硬件錯誤還是軟錯誤的確定電路,例如,在高速緩沖存儲器11 的條目中增加一個比特(作為軟錯誤比特的SE比特)。當奇偶校驗錯誤發(fā)生時,該比特被設(shè)置為“1”。當相同地址處的數(shù)據(jù)被讀取,并且SE比特為“1”時,如果發(fā)生奇偶校驗錯誤, 則判定該錯誤是硬件錯誤(基于如下事實由于軟錯誤在隨機的點處發(fā)生,因此很少在相同地址發(fā)生軟錯誤)。圖4A(在圖4A中,圖3A中圖示的相同組件被指派相同的標號并且其詳細說明被省略)是這樣的一個示例,其中,確定錯誤是硬件錯誤還是軟錯誤的系統(tǒng)(這是圖3A中圖示的SE比特的用途)被實現(xiàn)在另一系統(tǒng)中。當發(fā)生奇偶校驗錯誤一次時,JK-FF被設(shè)置為 “1”。當該值被設(shè)置為“0”時,減法計數(shù)器激活用于重置JK-FF的信號(=0),并且同時設(shè)置其自身的值的重置值。如果在JK-FF被設(shè)置為“ 1 ”的情況下發(fā)生奇偶校驗錯誤,則JK-FF 的輸出和P-錯誤信號二者都被設(shè)置為“1”,并且邏輯乘算電路獲取這些值的邏輯乘積,從而激活中斷信號。即,如果在減法計數(shù)器生成“=0”的時段中奇偶校驗錯誤發(fā)生兩次,則中斷信號進行操作以確定硬件錯誤(還是基于這樣的確定軟錯誤很少頻繁發(fā)生并且軟錯誤連續(xù)發(fā)生的可能性很低)。減法計數(shù)器指示0所用的時間是發(fā)生軟錯誤的時間間隔的約 1/10。例如,當軟錯誤一年發(fā)生一次時,上述時間間隔被設(shè)置為約一個月。因此,當奇偶校驗錯誤在一個月里發(fā)生兩次或更多次時,判定該錯誤是硬件錯誤。圖4B是圖4A中由虛線包圍的部分的時序圖。當在JK-FF被設(shè)置為“1”的情況下高速緩沖存儲器的標簽分區(qū)的數(shù)據(jù)分區(qū)中發(fā)生奇偶校驗錯誤(P-錯誤)時,在P-錯誤的下降沿處,JK-FF的內(nèi)容被設(shè)置為“1”。減法計數(shù)器被設(shè)置為0,并且同時返回預(yù)置值。當減法計數(shù)器的值是0( = 0指示高電平)時,JK-FF指示“0”。如果在JK-FF被設(shè)置為“1”的情況下再次發(fā)生奇偶校驗錯誤,即,如果在發(fā)生一次奇偶校驗錯誤之后發(fā)生另一奇偶校驗錯誤,則與JK-FF的輸出的邏輯乘積激活中斷信號。當在確定錯誤是軟錯誤還是硬件錯誤時通過使用中斷信號判定已經(jīng)發(fā)生軟錯誤時,即,當不存在中斷信號時,數(shù)據(jù)從主存儲器被讀取以將數(shù)據(jù)寫入高速緩沖存儲器。如果中斷信號被激活,并且判定已經(jīng)發(fā)生了硬件錯誤,則可以生成在CPU中生成中斷信號的事件,并且該過程可以被委托給CPU的程序。顯然,主存儲器中的數(shù)據(jù)可以被讀取并且該過程的執(zhí)行可以繼續(xù),雖然判定已經(jīng)發(fā)生了硬件錯誤。在圖3A中所示的示例中,高速緩沖存儲器在直接映射系統(tǒng)中操作。然而,其可以
8被應(yīng)用于集合關(guān)聯(lián)系統(tǒng)(set associative system)。圖5是當使用兩通道關(guān)聯(lián)系統(tǒng)時的配置。在此示圖中,省略了標簽的狀態(tài)比特。高速緩沖存儲器Ila配置有兩個通道。因此,兩個比較器20-1和20_2被提供用于將CPU地址的高階與標簽分區(qū)相比較,并且生成命中信號。比較器20-1和20-2生成指示高速緩沖存儲器Ila中是否存在由CPU地址指定的數(shù)據(jù)的信號。此信號、來自用于檢測每個通道的標簽分區(qū)中的錯誤的標簽奇偶校驗單元21-1和21-2的奇偶校驗結(jié)果、以及通過對用于檢測數(shù)據(jù)分區(qū)中的錯誤的奇偶校驗輸出單元22-1和22-2的奇偶校驗結(jié)果進行邏輯反轉(zhuǎn)獲得的信號被輸入邏輯乘算電路30-1和30-2。邏輯乘算電路30-1和30-2的輸出的邏輯和是由邏輯加算電路31獲得的并且被作為高速緩存命中信號輸出。因此,在包括與 CPU地址相對應(yīng)的數(shù)據(jù)的通道中,當在標簽分區(qū)或數(shù)據(jù)分區(qū)中沒有檢測到錯誤時,生成高速緩存命中信號。在不僅相應(yīng)條目被存儲在高速緩沖存儲器Ila中而且沒有錯誤發(fā)生時,通過定義高速緩存命中來指示允許CPU存取高速緩沖存儲器11a。因此,當不僅沒有相應(yīng)條目被存儲在高速緩沖存儲器Ila中并且發(fā)生錯誤時,與發(fā)生高速緩存未命中時一樣執(zhí)行操作。邏輯乘算電路30-1和30-2的輸出也被輸入到通道選擇單元32,以選擇其中“1” 被輸出的通道。此外,在此情況中,選擇這樣的通道,其中不僅相應(yīng)條目被存儲在高速緩沖存儲器Ila中并且不存在錯誤。另外,來自標簽奇偶校驗單元21-1和21-2的校驗結(jié)果以及通過對來自奇偶校驗輸出單元21-1和22-2的校驗結(jié)果的邏輯進行反轉(zhuǎn)獲得的信號被輸入邏輯乘算電路33-1 和33-2以用于每個通道獲取邏輯乘積。通過對邏輯乘算電路33-1和33-2的輸出的邏輯進行反轉(zhuǎn)獲得的信號被分別輸入邏輯乘算電路;34-1和34-2。各個通道的SE比特被輸入邏輯乘算電路34-1和34-2,并且針對每個通道的邏輯乘積被獲取。邏輯乘算電路34-1和 34-2的輸出被輸入邏輯加算電路35,邏輯和被獲得,并且結(jié)果被作為CPU中的中斷信號輸出。中斷信號是在如下情況時被生成的當在這些通道的一個或多個通道中在標簽分區(qū)和數(shù)據(jù)分區(qū)中的一者或兩者中檢測到錯誤時并且當存在其中SE比特是“1”的條目時發(fā)生硬件錯誤。電路可以被如上所述地配置以用于N通道集合關(guān)聯(lián)系統(tǒng)中的高速緩沖存儲器。 即,針對每個通道提供用于將CPU地址的高階與標簽分區(qū)相比較的比較器,以獲取該比較器的輸出與該通道的標簽分區(qū)和數(shù)據(jù)分區(qū)的奇偶校驗結(jié)果的邏輯反轉(zhuǎn)信號的邏輯乘積,并且該結(jié)果被定義為通道選擇信號。另外,通道選擇信號的邏輯和被定義為高速緩存命中信號。在這些通道的一個或多個通道中,當標簽分區(qū)和數(shù)據(jù)分區(qū)中的一者或二者中存在錯誤并且SE比特指示“1”時,對于CPU的中斷信號被生成。圖6圖示出了用于執(zhí)行奇偶校驗的電路。圖7是作為錯誤檢測電路的ECC電路的示圖。用于圖6中示出的奇偶校驗的電路可應(yīng)用于標簽奇偶校驗單元和奇偶校驗輸出單元。在圖6中,字節(jié)奇偶校驗被用于高速緩沖存儲器。字節(jié)奇偶校驗是8奇偶校驗比特的配置,假定一個奇偶校驗比特被提供用于一個字節(jié),即一個字由8字節(jié)構(gòu)成。利用該配置,針對1個字節(jié)執(zhí)行奇偶校驗。多個奇偶校驗在電路中被并行執(zhí)行,并且所有奇偶校驗結(jié)果的邏輯和被用作整個數(shù)據(jù)的奇偶校驗結(jié)果。通過讀取除奇偶校驗比特之外的數(shù)據(jù)來使用由8字節(jié)組成的64比特的數(shù)據(jù)。利用圖6中示出的條件,這8個奇偶校驗比特被用冗余的ECC比特替換,以增強質(zhì)量。圖7是當8個ECC冗余比特被使用時的配置。通過讀取8個ECC冗余比特,一比特錯誤被校正并被輸出。錯誤信號被輸出以用于兩個或更多比特的錯誤的不可校正的錯誤。然而,在此系統(tǒng)中,在校驗和校正ECC時需要過多的時間。當軟錯誤率高時,質(zhì)量被考慮,并且可以采用使用圖7中所示的ECC的更高可靠性的系統(tǒng),盡管處理速度的性能低。圖8A是應(yīng)用于圖3A的具有圖7中所示出的附加ECC電路的配置。在圖8A中,也在圖3A中使用的相同組件被指派相同標號,并且在此省略詳細說明。ECC/奇偶校驗選擇單元40可以設(shè)置錯誤檢測系統(tǒng)是使用ECC還是奇偶校驗來操作。在圖8A中,省略了對于高速緩沖存儲器的寫單元。然而,如果ECC/奇偶校驗選擇單元 40選定ECC系統(tǒng),則與從CPU輸入的64比特數(shù)據(jù)相對應(yīng)的數(shù)據(jù)被ECC比特生成電路(在附圖中未示出)生成并被寫入圖7中所示的ECC比特。如果ECC/奇偶校驗選擇單元40選定奇偶校驗系統(tǒng),則與從CPU輸入的64比特數(shù)據(jù)的每個字節(jié)相對應(yīng)的奇偶校驗數(shù)據(jù)被奇偶校驗比特生成電路(在附圖中未示出)生成并被寫入圖6中示出的ρ(奇偶校驗)比特。當 ECC系統(tǒng)被選定時,ECC/奇偶校驗選擇單元40將圖7中所示的ECC電路41的不可校正的錯誤信號輸入邏輯加算電路45。當奇偶校驗系統(tǒng)被選定時,具有圖6中所示的配置的奇偶校驗輸出單元22的奇偶校驗錯誤信號被輸入邏輯加算電路45。邏輯加算電路45的輸出與高速緩沖存儲器的SE比特的邏輯乘積被單元46獲得,作為對于CPU的中斷信號。在圖8A中,高速緩沖存儲器11的數(shù)據(jù)分區(qū)的數(shù)據(jù)被輸入奇偶校驗輸出單元22和 ECC電路41。來自該數(shù)據(jù)分區(qū)的數(shù)據(jù)和已被ECC電路41校正了錯誤的數(shù)據(jù)被輸入復用器 42。復用器42根據(jù)ECC/奇偶校驗選擇單元40的設(shè)置來向數(shù)據(jù)輸出單元沈輸出任意數(shù)據(jù)。奇偶校驗輸出單元22的奇偶校驗結(jié)果和ECC/奇偶校驗選擇單元40的設(shè)置信號被輸入邏輯乘算電路43。ECC電路41的不可校正的錯誤信號和ECC/奇偶校驗選擇單元40的設(shè)置信號的邏輯反轉(zhuǎn)信號被輸入邏輯乘算電路44。ECC/奇偶校驗選擇單元40的設(shè)置信號中的邏輯已經(jīng)被相互反轉(zhuǎn)的信號被輸入邏輯乘算電路43和44,從而選擇一個邏輯乘算電路的輸出。邏輯乘算電路43和44的輸出被輸入邏輯加算電路45。即,當來自ECC/奇偶校驗選擇單元40的輸出是“0”時,作為當來自ECC/奇偶校驗選擇單元40的輸出是“0”時的“0”的邏輯反轉(zhuǎn)的“1”被輸入邏輯乘算電路44的輸入端子,從而選擇邏輯乘算電路44。 另一方面,當來自ECC/奇偶校驗選擇單元40的輸出是“1”時,“1”被輸入邏輯乘算電路43 的輸入端子,從而選擇邏輯乘算電路43。標簽奇偶校驗單元21的輸出也被輸入邏輯加算電路45,邏輯和被獲得,并且結(jié)果作為中斷信號被輸出給CPU。因此,如果在奇偶校驗中檢測到數(shù)據(jù)分區(qū)中的錯誤,在ECC校驗中檢測到不可校正的錯誤,或者在標簽中檢測到奇偶校驗錯誤,則雖然有關(guān)標簽分區(qū)的信息與來自CPU的地址匹配,錯誤信號仍然為低,并且邏輯乘積被單元47獲得。因此,沒有獲得命中并且高速緩存控制器執(zhí)行與未命中時一樣的處理。從單元45輸出的錯誤與高速緩沖存儲器的SE比特的邏輯乘積(與參考圖3A中的實施例所描述的一樣)被單元46獲得,并且如果SE比特是1,則輸出也是1。因此,對于CPU 的中斷信號是有效的,從而執(zhí)行與硬件錯誤時一樣的處理。在ECC處理中,考慮電路延遲是顯著的。依賴于軟錯誤率的預(yù)測結(jié)果,將選擇在運行速度方面具有較低性能但是具有較高可靠性的系統(tǒng)(ECC處理)。即,當軟錯誤率的預(yù)測結(jié)果高于制造者的預(yù)測時,復用器42被切換,從而使得來自ECC電路的已校正的數(shù)據(jù)可以被選定。當軟錯誤率的預(yù)測結(jié)果在制造者的預(yù)測范圍以內(nèi)時,數(shù)據(jù)被原樣輸出,并且奇偶校驗結(jié)果將被輸出。圖9和圖10是可應(yīng)用于奇偶校驗和ECC的錯誤校驗的配置的說明性示圖。圖9是針對每個字節(jié)而添加至64比特數(shù)據(jù)的1比特奇偶校驗的配置并且是僅用于奇偶校驗的配置。在圖10中,ECC比特被添加至圖9中的配置。在ECC中,采用最常用的SE⑶ED (1 比特錯誤校正/2比特錯誤檢測)。使用添加的ECC比特,可以執(zhí)行錯誤校正,并且可以同時執(zhí)行奇偶校驗和ECC。圖8B是使用該電路的實施例。在此實施例中,在沒有發(fā)生正常的奇偶校驗錯誤的狀態(tài)中,復用器MPX原樣輸出來自高速緩存的數(shù)據(jù)。如果發(fā)生奇偶校驗錯誤, 則復用器MPX選擇來自ECC電路的輸出。當發(fā)生2比特錯誤,即不可校正的錯誤時,其被定義為高速緩存未命中,并且本發(fā)明的上述實施例中執(zhí)行的處理被執(zhí)行。在此電路中,在不包括奇偶校驗錯誤的正常狀態(tài)下,執(zhí)行只利用奇偶校驗的更高速的處理。當發(fā)生奇偶校驗錯誤時,高可靠性的ECC是有效的,從而實現(xiàn)了高速的并且高可靠性的系統(tǒng)。圖11至圖13是根據(jù)本發(fā)明另一實施例的詳細操作的說明性示圖。在本實施例中,高速緩沖存儲器配置被設(shè)計用于兩個通道。在圖11中,在圖5中也示出的相同組件被指派相同的標號。在圖11中的實施例中,可以設(shè)置執(zhí)行高可靠性操作的模式或正常操作模式。模式的設(shè)置是針對通道選擇單元32做出的。模式設(shè)置值被寫入寄存器52中,并且被輸入通道選擇單元32。CPU向地址譯碼器50輸出對于寄存器52的模式設(shè)置值的寫地址。地址譯碼器 50對地址進行譯碼,并且將其輸入邏輯乘算電路51。該地址是指寄存器52的地址,并且通過被譯碼而成為對于寄存器52的寫使能信號。來自CPU的寫信號也被輸入邏輯乘算電路 51。使能信號和寫信號被輸入邏輯乘算電路51,并且邏輯乘積被獲得并被輸出。邏輯乘算電路51的輸出被輸入寄存器52,并且來自CPU的數(shù)據(jù)(模式設(shè)置值)被鎖存在寄存器52 中。在正常操作模式(模式0)中,來自CPU的地址的一部分讀取兩個通道的標簽分區(qū),并且從標簽分區(qū)讀取的數(shù)據(jù)被與來自CPU的地址的高階部分相比較。如果任意標簽分區(qū)中的值匹配,則其是指高速緩存命中,并且檢測到命中的那個通道的數(shù)據(jù)分區(qū)通過通道選擇單元32被讀至CPU。在正常操作模式中,不同的內(nèi)容被存儲于通道0和通道1中,并且被用于高速緩存中的更高比特速率。此外,在正常操作模式中,圖4A中所示的奇偶校驗系統(tǒng)被使用,并且當奇偶校驗錯誤發(fā)生時,其可以被作為未命中處理。在本實施例的高可靠性模式(模式1)中,相同的內(nèi)容被存儲于兩個通道中,以提供增強的質(zhì)量。當不存在錯誤時, 這兩個通道中的數(shù)據(jù)都被讀取。雖然在一個通道中發(fā)生奇偶校驗錯誤,但是CPU可以讀取沒有發(fā)生奇偶校驗錯誤的另一通道中的數(shù)據(jù),從而通過避免奇偶校驗錯誤來增強質(zhì)量。因此,當相同的內(nèi)容被存儲在兩個通道中時,高速緩沖存儲器中的通道的數(shù)目可以是2的倍數(shù)。在該方法中,兩個通道可以存儲作為一對的相同內(nèi)容的數(shù)據(jù)。用于存儲相同內(nèi)容的通道的數(shù)目不限于2,而可以是任意數(shù)目M。然而,高速緩沖存儲器的通道的總數(shù)是M的倍數(shù)。以下參考圖12來描述根據(jù)本實施例的操作。圖12是從高速緩沖存儲器讀取數(shù)據(jù)的操作的模式與信號值之間的關(guān)系的圖表。圖12中示出的圖表中的操作由通道選擇單元32執(zhí)行。操作1至6是指正常的兩通道集合關(guān)聯(lián)操作。操作1是指這兩個通道中的未命中,并且不能從高速緩存讀取任何數(shù)據(jù)。操作1是指從通道0的正常讀取(沒有奇偶校驗錯誤)。操作3是指通道0中的命中,但是因為已經(jīng)發(fā)生奇偶校驗錯誤,所以來自高速緩存的數(shù)據(jù)不能被傳送至CPU。操作4是指通道1中的命中,并且數(shù)據(jù)被正常地讀取(沒有奇偶校驗錯誤)。操作5是指通道1中的命中,但是因為已經(jīng)發(fā)生了奇偶校驗錯誤,所以來自高速緩存的數(shù)據(jù)不能被傳送至CPU。操作6是指兩個通道中的命中,但是因為這是在正常操作中永遠不會發(fā)生的異常操作,所以其被作為錯誤進行處理。操作7至10是根據(jù)本實施例的操作,并且相同的內(nèi)容被讀取,這是因為在高速緩沖存儲器中的標簽分區(qū)和數(shù)據(jù)分區(qū)中都不存在錯誤。操作7是根據(jù)本實施例的模式中的操作。因為存在通道0中的命中并且沒有奇偶校驗錯誤,所以通道0中的數(shù)據(jù)被傳送至CPU。 因為操作8是指兩個通道中的命中,但是在通道0中發(fā)生奇偶校驗錯誤并且在通道1中沒有檢測到奇偶校驗錯誤,所以通道1中的數(shù)據(jù)被傳送至CPU。因為操作9是指僅通道1中的命中并且沒有奇偶校驗錯誤,所以通道1中的數(shù)據(jù)被傳送至CPU。操作10是指兩個通道中的命中,但是在兩個通道的數(shù)據(jù)中都已經(jīng)發(fā)生了奇偶校驗錯誤。因此,高速緩存的內(nèi)容不被傳送至CPU。以下參考圖13中的圖表來描述根據(jù)本實施例的將數(shù)據(jù)寫入高速緩存的操作。在正常操作模式(模式0)中,兩通道關(guān)聯(lián)高速緩存被操作。操作1至7是正常操作。操作1是指通道0中的命中,并且來自CPU的數(shù)據(jù)被寫入通道0。操作2是指通道1中的命中并且來自CPU的數(shù)據(jù)被寫入通道1中。操作3是指兩個通道中的未命中。然而,因為通道0中的內(nèi)容是無效的,所以來自CPU的數(shù)據(jù)被寫入通道0。操作4是指兩個通道中的未命中。然而,因為通道1中的內(nèi)容是無效的,所以來自CPU的數(shù)據(jù)被寫入通道1。操作5 是指兩個通道中的未命中,并且這兩個通道的內(nèi)容是有效的。因此,有必要將通道中的一個通道中的數(shù)據(jù)存儲在主存儲器中,并且數(shù)據(jù)將被寫入相應(yīng)位置。一種確定要保存哪個通道的方法是公知的LRU(最近最少使用)系統(tǒng),其在2通道系統(tǒng)中容易實現(xiàn)。S卩,標簽分區(qū)中的一個比特被指派為LRU比特,并且當從CPU的存取是指命中時,如果在通道0中檢測到命中則LRU比特被設(shè)置為1,并且如果在通道1中檢測到命中則LRU比特被設(shè)置為0。因此, 不是最后命中通道中的信息被寫入。通過采用該系統(tǒng),數(shù)據(jù)被寫入通道0,這是因為在操作 5中,LRU是0。然而,在操作6中,LRU是1,并且數(shù)據(jù)被寫入通道1。因為操作7是指兩個通道中的未命中和無效數(shù)據(jù),所以數(shù)據(jù)被寫入通道0。操作8至9是根據(jù)本實施例的(高可靠性)模式,并且數(shù)據(jù)在模式1中的寫操作期間被寫入兩個通道中,即,兩個通道中的內(nèi)容是相同的。然而,在操作9中,因為兩個通道都有效,所以高速緩存的內(nèi)容被保存在主存儲器中,并且隨后數(shù)據(jù)被寫入這兩個通道。因此,上述實施例可以提供一種能夠增強高速緩沖存儲器的操作質(zhì)量來作為對抗由α射線和宇宙射線(中子束)引起的軟錯誤的措施的高速緩沖存儲器系統(tǒng)。
權(quán)利要求
1.一種高速緩沖存儲器系統(tǒng),包括高速緩沖存儲器,所述高速緩沖存儲器用于存儲包含標簽分區(qū)和數(shù)據(jù)分區(qū)的數(shù)據(jù);錯誤檢測單元,所述錯誤檢測單元用于檢測所述標簽分區(qū)和所述數(shù)據(jù)分區(qū)中的錯誤;以及控制單元,所述控制單元在直寫系統(tǒng)中操作所述高速緩沖存儲器,并且將如下兩個信號的邏輯乘積的結(jié)果的信號定義為將被傳送給CPU的高速緩存命中信息所述標簽分區(qū)中的高速緩存命中信息中的指示存在高速緩存命中的信號和指示在所述錯誤檢測單元的錯誤檢測處理中沒有檢測到錯誤的信號,其中當與在存在高速緩存未命中的情況中一樣已經(jīng)發(fā)生錯誤時,與所述高速緩沖存儲器中的已經(jīng)發(fā)生錯誤的數(shù)據(jù)相對應(yīng)的地址的數(shù)據(jù)被從主存儲器讀取,并且所述高速緩沖存儲器中的導致該錯誤的數(shù)據(jù)被用讀取的數(shù)據(jù)替換。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述高速緩沖存儲器包括軟錯誤比特,當每條數(shù)據(jù)中發(fā)生錯誤時,所述軟錯誤比特被設(shè)置為“1”;并且當在所述錯誤檢測單元中針對其中所述軟錯誤比特被設(shè)置為“1”的數(shù)據(jù)檢測到錯誤時,所述控制單元生成對于CPU的中斷信號。
3.如權(quán)利要求1所述的系統(tǒng),還包括寄存器,所述寄存器在之前已經(jīng)發(fā)生錯誤時被設(shè)置并且被周期性的重置,其中當所述寄存器被設(shè)置并且所述錯誤檢測單元檢測到錯誤時,所述控制單元生成對于 CPU的中斷信號。
4.如權(quán)利要求1所述的系統(tǒng),其中所述錯誤檢測單元包括奇偶校驗電路。
5.如權(quán)利要求1所述的系統(tǒng),其中所述錯誤檢測單元包括奇偶校驗電路和ECC電路,并且在所述電路之間切換。
6.如權(quán)利要求1所述的系統(tǒng),其中所述錯誤檢測單元包括用于1比特錯誤校正和2比特錯誤檢測的ECC電路,并且在能夠檢測的2比特錯誤已經(jīng)被檢測到時判定已經(jīng)發(fā)生錯誤。
7.如權(quán)利要求1所述的系統(tǒng),其中當在寫操作期間所述高速緩沖存儲器中發(fā)生錯誤時,所述標簽分區(qū)的狀態(tài)被置于無效狀態(tài)。
8.如權(quán)利要求1所述的系統(tǒng),其中所述錯誤檢測單元包括奇偶校驗電路和ECC電路,并且同時操作這兩個電路。
9.如權(quán)利要求1所述的系統(tǒng),其中所述高速緩沖存儲器采用2N通道集合關(guān)聯(lián)系統(tǒng);并且所述控制單元執(zhí)行對將相同數(shù)據(jù)寫入一對通道的控制并且在兩個通道中同時執(zhí)行數(shù)據(jù)讀取,并且如果在一個通道中發(fā)生錯誤,則將另一個通道置于有效狀態(tài)以用于讀存取。
10.一種半導體裝置,包括根據(jù)權(quán)利要求1所述的系統(tǒng)。
11.一種控制高速緩沖存儲器系統(tǒng)的方法,所述高速緩沖存儲器系統(tǒng)具有高速緩沖存儲器,所述高速緩沖存儲器存儲包含標簽分區(qū)和數(shù)據(jù)分區(qū)的數(shù)據(jù),所述方法包括檢測所述標簽分區(qū)和所述數(shù)據(jù)分區(qū)中的錯誤;在直寫系統(tǒng)中操作所述高速緩沖存儲器,并且將如下兩個信號的邏輯乘積的結(jié)果的信號定義為將被傳送給CPU的高速緩存命中信息所述標簽分區(qū)中的高速緩存命中信息中的指示存在高速緩存命中的信號和指示在錯誤檢測處理中沒有檢測到錯誤的信號;以及當與存在高速緩存未命中的情況中一樣已經(jīng)發(fā)生錯誤時,從主存儲器讀取與所述高速緩沖存儲器中的已經(jīng)發(fā)生錯誤的數(shù)據(jù)相對應(yīng)的地址的數(shù)據(jù),并且用讀取的數(shù)據(jù)替換所述高速緩沖存儲器中的導致該錯誤的數(shù)據(jù)。
全文摘要
本發(fā)明公開了高速緩沖存儲器系統(tǒng)。高速緩沖存儲器在直寫系統(tǒng)中操作,并且當相應(yīng)數(shù)據(jù)未被存儲在高速緩沖存儲器中時,或者僅當雖然存在該數(shù)據(jù)但是發(fā)生錯誤時,當發(fā)生高速緩存未命中時將要執(zhí)行的操作被執(zhí)行。隨后,指示之前已經(jīng)發(fā)生軟錯誤的比特被設(shè)置在高速緩沖存儲器中,并且當該比特指示“1”時,如果再次發(fā)生錯誤,則判定已經(jīng)發(fā)生硬件錯誤,并且在CPU中生成中斷。該比特將以比認為發(fā)生軟錯誤的頻率短足夠多的時間間隔被重置。
文檔編號G06F12/08GK102541756SQ20111030424
公開日2012年7月4日 申請日期2011年9月29日 優(yōu)先權(quán)日2010年11月9日
發(fā)明者福田高利 申請人:富士通株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1