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