TWI502599B - 於支援低功率狀態系統中使用快取記憶體的方法與設備、及其製造物件與計算系統 - Google Patents
於支援低功率狀態系統中使用快取記憶體的方法與設備、及其製造物件與計算系統 Download PDFInfo
- Publication number
- TWI502599B TWI502599B TW100114662A TW100114662A TWI502599B TW I502599 B TWI502599 B TW I502599B TW 100114662 A TW100114662 A TW 100114662A TW 100114662 A TW100114662 A TW 100114662A TW I502599 B TWI502599 B TW I502599B
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- data
- logic
- cache
- error
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Detection And Correction Of Errors (AREA)
- Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
Description
本發明係普遍關於記憶體,尤其是關於當一系統係於一低功率狀態時,減少快取記憶體之功率消耗。
技術進步已致能大的片上嵌入式動態隨機存取記憶體(eDRAM)快取與一中央處理單元(CPU)之整合。嵌入式動態隨機存取記憶體係顯著地較傳統的靜態隨機存取記憶體(SRAMs)密集,但是必須週期性地更新以保留資料。就像SRAM,eDRAM易受設備變化影響,其係於為eDRAM記憶格決定一更新週期上發揮作用。更新eDRAM的消耗功率表示全部系統功率的一大部份,特別是當CPU閒置,在低功率狀態時。
習知錯誤校正碼(ECC)係用以允許非揮發性記憶體及儲存裝置以容忍軟硬體錯誤。一裝置及記憶體裝置(晶片、積體電路)中的晶片內載快取記憶體係使用簡單且快速的ECC,例如,單一錯誤更正-雙位元錯誤偵測(SECDED)漢明碼。例如快閃記憶體等之較慢的裝置使用具有強錯誤校正能力的多位元ECC,舉例來說,Reed-Solomon碼。強ECC機制之較高的解碼潛候期,對例如硬碟之大容量儲存裝置來說不構成問題,因為比起內部裝置存取時間,該編碼/解碼潛候期是微小的。然而,技術微縮的結果,片上記憶體陣列(快取)係更易受到多位元錯誤影響。因此,強ECC碼對片上記憶體來說亦為適合需要的。除了潛候期酬載,外加ECC位元的儲存負載在對片上快取記憶體使用多位元ECC上係為一障礙。
追蹤改善的功率及能源效率,微處理器實施一些閒置狀態以支援低功率模式(狀態)。在閒置狀態減少功率消耗是特別地重要,因為典型的中央處理單元在閒置狀態上花許多時間。嵌入式DRAM技術致能比SRAM記憶格小的記憶體記憶格,結果在記憶體密度上大幅增加。因此,DRAM可用以取代SRAM作為在高性能處理器中最下層的片上快取。
然而,一嵌入式DRAM(eDRAM)記憶格之問題係為漏電流造成記憶格隨時間失去電荷。一eDRAM記憶格的滯留時間係定義為記憶格可以保留其狀態(電荷)的時間長度。記憶格滯留時間係取決於漏電流,其係依次取決於該裝置漏電。為保留儲存資料之狀態,需定期更新eDRAM記憶格。為了避免快取中減少的狀態,更新周期需要小於記憶格保留時間。由於eDRAM係為於一傳統邏輯程序上整合之DRAM,其使用帶有比傳統DRAM所使用之電晶體為高之一漏電流之快速邏輯電晶體。因此,eDRAM的更新時間係大約比傳統DRAM要短一千次。較短的更新周期在閒置狀態增加功率消耗並且亦導致可利用性減少。
在SRAM快取中,由於一些弱記憶格在較低電壓故障(失去電荷(狀態)),所以本徵變動迫使運作於高電壓,並且妨礙在閒置狀態減少功率消耗的努力。同樣地,在嵌入式DRAM快取中,裝置變化係影響個別DRAM記憶格的更新間之保留時間,一些特別弱的記憶格(位元)係決定整個快取之更新時間。在閾值電壓上的變化造成不同DRAM記憶格的保留時間顯著變化。這些變化主要由隨機摻雜濃度變動所造成,並顯示為在eDRAM記憶格之中保留時間之隨機分佈。然而,增加更新率係顯著地增加快取功率。
用來減少快取功率之一方法係使用電源閘。電源閘係在電源供應上的開關,其係允許電源對一電晶體群完全關斷。由於例如eDRAM與SRAM之記憶體技術不能在喪失電源時保留狀態,以損失記憶狀態為代價實施電源閘控。
隨著快取密度增加,電源閘的性能及功率耗損亦增加。隨著嵌入式DRAM快取的尺寸增加,在閒置離開潛候期(自主記憶體檢索快取列取回快取狀態的時間)與於閒置狀態功率消耗之間有一取捨。
經由錯誤校正碼(ECC)的使用可增加DRAM更新周期,以動態地識別及修復失去其狀態之記憶格。更新率係被設定為與最弱的eDRAM記憶格無關,使用ECC以對失去的狀態補償。一較強的錯誤校正碼,具有校正多位元錯誤之能力,表示增加的更新率以及減少功率消耗。然而,多位元ECC碼具有一高儲存性及複雜度損耗,係限制其之應用性。
本發明之一實施例係提供一彈性的記憶體結構,其使用具有一低儲存性與複雜度損耗之多位元ECC碼,並可以以非常低的閒置電源運作,而不會劇烈增加進/出該閒置電源狀態之由於記憶格(位元)之狀態喪失的轉移潛候期。
圖1係依據本發明之原理之包括一快取記憶體及錯誤碼校正(ECC)邏輯122之一處理器100之實施例。該ECC邏輯122係低潛候期、低成本、多位元錯誤校正邏輯,其補償在例如圖1中所顯示的記憶體快取110等之揮發性記憶體中之高失敗率。在所示實施例中,該記憶體快取110係嵌入式DRAM(eDRAM)。在其他實施例中,該記憶體快取110可為靜態隨機存取記憶體(SRAM)或任何其他類型的揮發性記憶體。
校正越多錯誤需要越高的冗位,其係導致一高檢查位元負載。舉例來說,於k位元的輸入資料中校正t位元的錯誤,一BCH碼典型地需要r=t*ceil(log2
k)+1個檢查位元。由於r與k之間的對數關係,檢查位元的數目增加的比輸入資料的大小要慢得多。因此,該ECC檢查位元負載係隨著增加的k而減少。
舉例來說,對於一64位元組(512位元)快取列來說,一單一錯誤更正-雙位元錯誤偵測(SECDED)碼需要11位元,其係約2%的負載。關於資料字中的位元數目之一ECC碼中的位元數目,係隨著資料字中位元數目增加而減少。舉例來說,對於一64位元組快取列,一SECDED碼有一11位元的損耗(2%),而對於一1024位元組(1KB)快取列的SECDED碼有一15位元的損耗(0.18%)。
然而,當使用一大快取列時,寫入子區塊至快取列中可能要求每次都要讀取整個快取列,以再生該ECC位元。作為一線性碼,BCH繼承線性系統之加成性,其係保證只使用修正子區塊(資料塊)之資訊可更新該ECC檢查位元。該資料字d
(表示一快取列)係被分為複數塊(子區塊)[d i-1 ,d i-2 ,...,d 0
]。使用於ECC編碼之G矩陣可以被分為兩部分G
=[I k
,P
],此處P係對ECC檢查字C的產生器,即,C=d x P
。若資料d j
的第j
個塊係被寫入一新值d j_new
,則該新的ECC係:
方程式(1)顯示新檢查位元的產生僅需要檢查位元之舊值以及欲修正子區塊之舊值與新值。
回到圖1,該ECC邏輯122係低潛候期、低成本、多位元錯誤校正邏輯,其可以對該eDRAM快取110中的高失敗率進行補償。該ECC邏輯122實施具有能力以校正五個錯誤(5EC)與偵測六個錯誤(6ED)之一強BCH碼(此後稱作一5EC6ED碼)。使用多位元ECC之一傳統方法受到限制其應用性之兩個過高負載損害。首先,建立對多位元ECC碼一低潛候期解器係非常昂貴。第二,ECC位元的儲存損耗高(對具有64位元組之一快取列來說,一5EC6ED ECC碼來大約是10%)。
該ECC邏輯122實施具有非常小區域、潛候期及功率消耗之一多位元錯誤校正碼。該ECC邏輯122在低功率運作模式(閒置狀態)使嵌入式DRAM功率消耗減到最小而在正常的運作模式無性能損失。該ECC邏輯122包括一快速ECC邏輯104,其係對於需要少或不用校正的快取列係最佳化。該ECC邏輯122包括一高潛候期ECC邏輯106,對於需要複雜多位元校正之快取列。在一實施例中,為了使處理高潛候期多位元校正的性能影響減到最小,該ECC邏輯122使具有多位元故障的線失效。在另一實施例中,該ECC邏輯122影響資料的正常空間區域性,以減少儲存該ECC位元之成本。
在一實施例中,該嵌入式DRAM 110係包括於該處理器100中之一128百萬位元組(MB)之最下層(Level 3(L3))快取。在沒有錯誤校正能力之一基準型構中,該嵌入式DRAM快取110在更新之間的時間係30微秒(us)。此導致一相當數量之功率消耗,甚至於該中央處理單元(CPU)102係閒置時。藉由在例如閒置狀態等之低功率運作模式時清除及電源閘控該嵌入式DRAM快取110可減少在更新時所消耗的功率(更新功率)。然而,此於該CPU 102自閒置模式(狀態)醒來時導致一顯著的性能損失,因為該CPU 102需要自外部記憶體(主記憶體(未示))重載資料至該嵌入式DRAM快取110,因此引起一大量的冷開機快取遺失。替代地,藉由減少該更新頻率可減少更新功率消耗,即,增加儲存於該嵌入式DRAM快取110中之該快取列之資料之更新周期(更新之間的時間)。然而,若減少更新頻率,則對各快取列有更高數目的失敗(各位元(記憶格)之狀態之損失)。
該ECC邏輯122在各1KB快取列(5EC6ED)上實施一編碼,對於各快取列需要一額外的71位元(0.87%損耗)以儲存該5EC6ED編碼。在一實施例中,其中選擇該更新周期,以使得快取列將失敗不超過1E-03(即,1/1000),沒有失敗減輕之該基準型構運作於30微秒(us)之該基線更新時間下。該錯誤校正碼邏輯122允許在該更新周期增加至440微秒,其與該基準型構相較,在該更新周期上幾乎是減少15倍。
用以支援一5EC6ED編碼的邏輯是非常複雜的,並且有一長解碼潛候期缺點,其與所校正錯誤位元之數目以及資料位元之數目皆成比例。若每次存取該快取記憶體係需要全編碼/解碼,則此可顯著地增加快取存取潛候期。在本發明之一實施例中,可使該快取之易出錯的部分失效,避免運作時解碼的高潛候期性。
該錯誤碼校正邏輯122包括一快速錯誤校正碼(ECC)邏輯(第一錯誤校正邏輯)104,以及一高潛候期性錯誤校正碼(ECC)邏輯(第二錯誤碼校正邏輯)106。
該快速ECC邏輯(單元)104包括徵候群產生邏輯以及錯誤校正邏輯,針對在具有零或一失敗的eDRAM 110中的快取列。該快速ECC邏輯104亦基於徵候群該將快取列分類為兩群組:需要複雜多位元錯誤校正之快取列、以及具有少於二,即零或一錯誤之快取列。需要多位元錯誤校正之快取列係發送至該高潛候期ECC程序邏輯(單元)106,其係執行多位元錯誤校正。由該快速ECC邏輯104校正之快取列係經由L1/L2快取124發送至該CPU 102。
在一實施例中,該高潛候期性ECC程序邏輯106使用軟體執行錯差校正。在另一實施例中,該高潛候期性多位元ECC程序邏輯106使用一狀態機執行多位元錯誤校正。該快速ECC邏輯104與該高潛候期性ECC程序邏輯106之結合允許在eDRAM 110中需要一或更少錯誤校正之快取列立即被校正,並低潛候期的經由該L1/L2快取124發送至該CPU 102。
在該ECC邏輯122中之該快速ECC邏輯104執行一單周ECC以於該嵌入式DRAM 110之一快取列中校正一單位元錯誤。在該ECC邏輯122中之該高潛候期校正邏輯106執行非管線化、高潛候期ECC程序以校正在一快取列中的多位元錯誤。
當一快取列係自該嵌入式DRAM 110讀取,其和關於讀自該標籤/ECC陣列108之該快取列之標籤與ECC係經過資料緩衝器114至該快速錯誤校正邏輯104。該標籤與ECC係經過資料緩衝器116至該快速ECC邏輯104。在該快速ECC邏輯104中之一解碼器(未示)對該接收的快取列產生該徵候群。所產生的徵候群包括不管該快取列有0、1、或一更高數目的錯誤的資訊。若該快取列有零或一位元失敗,在該快速ECC邏輯104於一短時段中之解碼器執行該一位元失敗之校正。在一實施例中,該短時段可為一單周(500披秒(ps))。在另一實施例中,該短時段可為大於一週期。該時段係短於藉由該高潛候期ECC程序邏輯106以執行多位元錯誤校正的時間。
關於處理多位元失敗的高潛候期係顯著地減少性能。為了避免引起此高潛候期,在一實施例中,使問題的線失效或例如位元修復之一機制可被整合於修復邏輯120中。
在失效策略中錯誤頻度發揮作用。若有一低的多位元錯誤率,例如使包含多位元錯誤之快取列失效之一方法減少性能損失。然而,若多位元錯誤率高,則快取列失效導致無法接受的快取容量損失。若有一高的多位元錯誤率,例如位元修復等之一更複雜的機制可被用來使快取列失效的容量損失減至最小。
在一實施例中,修復邏輯120係連接於該資料緩衝器114、116與該快速ECC邏輯122之間。用外加的修復邏輯120僅引起一次多位元解碼性能損失,即,起因於該eDRAM 110中之一弱細胞之一錯誤第一次被發現。該修復邏輯120在發送該快取列至該ECC邏輯122以前允許欲減少之錯誤之數目。因此,藉由在將ECC應用於該快取列以前,先使用一修復機制修復一快取列中已知的錯誤使總潛候期降低。
在一實施例中,該修復邏輯120包括位元修復邏輯。位元修復邏輯識別「損壞的」位元對,並維護區塊以修復該快取列中的該「損壞的」位元對。在一實施例中,該位元修復邏輯使用於一快取集四分之一向以儲存用於失敗位元(即,針對該失敗位元之該正確狀態(值)於該集之其他向)之位置與修復位元。在低電壓模式中,在針對實施為一8向快取之一快取記憶體110之一實施例中,八向中之其二係保留以儲存缺陷校正資訊以校正該「損壞的」位元對。
該位元修復邏輯允許缺陷對,即,快取列中二位元的群組,其中至少一位元係有缺陷的(起因於一邏輯狀態保留失敗)欲使其失效。該位元修復邏輯維護一2位元「區塊」(正確位元狀態),其可被用來校正該有缺陷的2位元對。修復樣態係儲存於快取記憶體(eDRAM)110之所選擇的快取列中。在低電壓運作下,該修復樣態(修復指標及區塊)係儲存於該快取記憶體110中。在一快取列上的一讀取或寫入運作先針對該快取列讀取該修復樣態。當讀取時,修復樣態允許讀取以避免自「損壞的」位元(有缺陷的位元)讀取資料。使用來自該修復樣態之該區塊,該快取列係於發送至該CPU 102之前重建,另一快取,或寫回至記憶體。當寫入時,修復樣態允許寫入以避免寫入至失敗位元。新區塊係寫入至該修復樣態以反射寫入至該快取之新資料。一修復機制之一實施例,使用位元修復邏輯之修復邏輯120已說明。在其他實施例中,不同於位元修復的修復機制可用以於應用ECC之前修復已知錯誤。
在一實施例中,該快取記憶體110係具有64B快取列之一32K 8向快取。每次對儲存該快取記憶體110中之資料進行存取需要一額外存取以擷取該適當的修復樣態。為了存取該修復樣態而不增加埠的數目,該位元修復方案將該快取記憶體110組織為兩記憶體組。維持兩修復列,各記憶體組中有一線,並且各被用來修復相對的記憶體組中之快取列。三個快取列的修復樣態適於一單一快取列中。因此,每三快取列之一單一修復列(儲存修復樣態之一快取列)係被維護。一修復列係分配至相反於使用其之修復樣態之該三個快取列之記憶體組。此允許一快取列與其修復樣態平行被讀取而不會增加快取埠的數目。
在一快取命中上,該資料列係自該快取記憶體110中之一記憶體組讀出,而一修復列係自該快取記憶體110中之另一記憶體組讀出。該資料列經過「n」位元移位級,其中「n」代表有缺陷位元對之數目。各級移除一有缺陷對,並以該修復對取代。當該修復列亦包括損壞的位元,係應用SECDED ECC以於使用前校正該修復列中該修復樣態。在該修復樣態已被修復後,其被用來校正該資料列。修復由三部分所組成之一單一有缺陷對。首先,SECDED ECC修復在該修復樣態中任何有缺陷的位元。第二,一缺陷指標識別該缺陷對。第三,在已移除該缺陷對後,一區塊再引入該缺少的校正位元至該快取列。
圖2係包含圖1中所示之一最近存取列表(RALT)112及該嵌入式DRAM快取110及ECC邏輯122之一實施例之一系統200之一方塊圖,其係說明對該eDRAM快取110中之一快取列一快存取。
大於64位元組之一快取列規模係被用來減少儲存多位元ECC碼所需之該記憶體儲存。在一實施例中,該eDRAM快取110係一層級3(L3)快取,其係128MB嵌入式DRAM,且一快取列202之大小係1024Bytes(1千位元組(KB))。一層級2(L2)快取/層級1(L1)快取124具有一64位元組(B)快取列(稱為該L3快取列之一子區塊)。大部分產生於低層級(L1或L2)快取記憶體124或讀取自非快取記憶體(主記憶體/外部記憶體(未示))係以小於64位元組子區塊之形式寫入至該L3 eDRAM快取110。
為修正在一1KB快取列202中之一64B子區塊204,該CPU 102執行一讀取修正寫入運作,以計算該ECC碼。首先,用於整個1KB快取列202之ECC碼208與被覆寫之該64B子區塊204係自該eDRAM快取110讀出。舊資料、舊ECC碼、以及新資料係用以計算用於整個1KB快取列202之該新ECC碼208。該新64B子區塊204及一新ECC碼208係寫回至該L3 eDRAM快取110。然而,該整個1 KB快取列202並未依序讀取,以如後討論計算該新ECC碼208。
自L3快取110執行大部分讀取以提供用於在低層級(L1或L2)快取124中之配置之快取列。處理一快取列202之任何子區塊204需要處理該ECC 208與其保護之該整個資料字(一1KB快取列)202。當需要檢查在該1KB快取列202中之各64B子區塊204時,一64B子區塊204之各參考係伴隨附近的64B子區塊204之一參考。因此,任何該L3嵌入式DRAM快取110之讀取存取在該1KB快取列202中所有的16個64位元子區塊204,除該ECC208(每快取列)之外,於該快取列202中,所有的子區塊204係共用。例如,為了只讀取一1KB快取列202中之16個子區塊204中的八個,所有的16個子區塊204係被讀取八次,總共128次分別的子區塊讀取。此大量之額外子區塊讀取導致在動態功率消耗上之一顯著增加,以及在由該eDRAM快取110所提供之該有用快取頻寬上之一減少。
多數的eDRAM失敗係起因於保留失敗,因為就如已詳述的,所以該eDRAM快取110需要周期性更新以維護各記憶細胞之現狀。在一實施例中,該保留時間係30微秒(us),並且一特定快取列之各讀取係自動包含該快取列之一更新。因此,於該快取列已讀取後,在一特定快取列中,應該不會發生保留失敗30微秒。此觀察允許不必要讀取的數量是被最小化。RALT 112被用以追蹤在最近30微秒內已經被參考(讀取)的快取列。
第一次讀取該eDRAM快取110中之一快取列202,導致讀取及錯誤檢查在該快取列202中之所有子區塊204。所讀取之該快取列202之位址係儲存於該RALT 112之一RALT輸入項206中。該儲存位址指出該快取列202最近已被讀取及檢查,因此於之後30微秒應保持沒有保留錯誤。當該讀取之快取列之位址係儲存於該RALT 112中,任何其後之自該快取列202之子區塊之讀取可以放棄ECC程序,並且因此避免讀取關於該快取列202之該ECC 208以及該快取列202中之其他子區塊204。該RALT 112藉由將各30微秒時段分為多個相等的「快取列讀取」周期而保證不會有輸入項206已儲存超過30微秒。配置於該RALT 112中之輸入項206於各周期被標示以識別該子更新周期之一周期識別符214。子更新周期之間的躍遷導致先前配置於該等「快取列讀取」周期其中之一中之所有RALT輸入項無效(如由關於該RALT中之該輸入項206之該「有效」欄位之狀態所指出)。
該RALT 112中之各輸入項206包括下列欄位:一列位址欄位209,以識別關於該輸入項之該快取列;一有效欄位212;一周期識別符欄位214,以指出該列係被配置至哪一周期;以及一同位欄位211,其包括針對該快取列中之各子區塊之一同位位元。在一實施例中,該周期識別符欄位214具有二位元以指出該快取列係配置至四周期(P0、P1、P2、P3)中之何者,該同位欄位211在該快取列中有16位元、每64B子區塊一位元。該RALT 112係直接映射,但支援於該周期欄位214上之一內容定址記憶體(CAM)無效,以於周期躍遷時允許該RALT 112中之輸入項206之整個無效。
一子區塊204第一次被讀取的,該整個ECC 208亦與在該1KB快取列202中與各子區塊一起被讀取,以允許針對一單一64B子區塊204之ECC處理。關於該RALT 112中之該快取列202之該輸入項206被以該參考的快取列202之該列位址、一周期識別符、以及針對該快取列202中之各子區塊204之一單一同位位元被更新。第一次命中一快取列202之後,在該更新周期內對相同快取列202之未來存取不需要ECC程序。
第一次讀取一快取列造成列中所有子區塊被讀取及針對失敗檢查。該列之位址係接著被儲存於該RALT中,以指出最近已檢查並將於其後30微秒內保持沒有保留錯誤。只要該列之位址係儲存於該RALT中,讀取自該列之任何子區塊可以放棄ECC程序,並因此避免讀取該ECC碼及該列中之其他子區塊。
為正確地運作,該RALT 112保證沒有任何其輸入項超過30微秒。為保證此,一計數器216係用以測量各30微秒周期之通道。各30微秒周期係分成四個相同的子周期(P0、P1、P2、P3)。在各周期中配置於該RALT 112中之輸入項係以一2位元識別符標示,以表示該配置子周期,其可由檢查該計數器之現值決定。舉例來說,在2GHz處理器100中之30微秒之通道,可使用每周期計數增加至60000之一計數器216測量。例如,計數器數值介於0至15000之間符合子周期P0,15001至30000符合子周期P1,30001至45000符合子周期P2,以及45001至60000符合子周期P3。當該計數器216到達60000,其重新設定為0,造成自P3至P0之一躍遷。各子周期躍遷可以造成在先前的子周期情況期間,一些或所有配置之RALT輸入項之無效。例如,自子周期P0至子周期P1的躍遷將造成先前配置於子周期P1之所有RALT輸入項無效。
圖3係圖2中所示之該系統之一方塊圖,其係說明在該更新周期中之一快取列之一其後讀取。在多數例子中,僅讀取該請求的64B子區塊204。計算該64B子區塊204之同位,並與儲存於該RALT 112中之該快取列202之64B子區塊204之該同位211比較。若有一符合,推論為該64B子區塊204係有效,並且將該64B子區塊204發送至該請求的快取124或處理器102。一同位不符合係被視為一RALT未中,而讀取該整個1KB快取列202。該RALT 112係用以追蹤最近存取的快取列202,以避免在每一快取讀取時讀取該整個1KB快取列202,因此使動態功率減至最小。
圖4A係一方塊圖,其係說明包括於圖1中所示之該快速ECC邏輯104中之一ECC編碼器400之一實施例。BCH碼係一大類別多位元錯誤校正碼,其可以校正高集中的及寬分散的錯誤。一般,各BCH碼係一線性區塊碼,其係定義於具有一產生器多項式之一有限的伽羅瓦體(Galois Field,GF)(2m
)上,此處2m
代表碼字位元之最大數目。
該ECC編碼器(編碼邏輯)400取k
位元輸入資料字d
,並使用一事先定義的編碼矩陣G
以產生對應的編碼字u
(u
=d
×G
)。當BCH係一系統碼,該原本的k
位元資料係保持於該編碼字u(x),並且跟隨r
檢查位元。
圖4B係一方塊圖,其係說明包括於圖1中所示之該快速ECC邏輯之一ECC解碼器(解碼邏輯)402之一實施例。該解碼邏輯402偵測並校正在該接收碼字u(x)中之任何錯誤,以回復資料之原始值。該解碼邏輯402包括徵候群產生器邏輯404、錯誤分類邏輯406以及錯誤校正邏輯408。
該徵候群產生器邏輯404首先藉由將v
(具有錯誤e
之一碼字,如此v
=u
+e
)與一事先定義的H
矩陣之轉置相乘(S
=v
×H T
)計算一徵候群S。該G及H矩陣係以G×H T
=0這樣一方式建立。H矩陣之一般形式如下:
在該有限體GF(2m
)中,各元素αi
可以表示為α之一多項式,其係具有小於m之次數,或僅該多項式之具有m二進位係數之一向量。因此,該H矩陣可以被擴展成具有(t
*m+1)列之一二進位矩陣,此處t
係碼可校正之錯誤之最大數目。由於S
=v×H T
,S亦具有t
*m+1位元,其可被分成多個分量[Parity,S 1 ,S 3 ,
...,S 2t-1
]。
該錯誤分類邏輯使用該徵候群S,以偵測是否碼字有任何錯誤。由於:
S
=v
×H T
=(u
+e
)×H T
=(d
×G
+e
)×H T
=d
×(G
×H T
)+e
×H T
=e
×H T
(3)
因此,在零錯誤的情況,S=0並且下列方程式為真:
Parity
=S 1
=S 3
=...=S 2 t -1
=0 (4)
在碼字上沒有錯誤導致一為零之徵候群數值,如方程式(3)所示。此情況可藉由執行所有徵候群位元之一邏輯OR偵測。此需要ceil
(log 2 tm
)2輸入閘潛候期。
若上面的方程式沒有被滿足,則該錯誤校正邏輯使用該徵候群數值以確定錯誤位元之位置。
將錯誤位置之e表示為[j 1 ,j 2 ,
...,j t
],則各徵候群分量S i
可表示為:
S i
=α j 1* i
+α j 2* i
+...+α jt * i
(5)
該校正邏輯實施下列三步驟:
步驟1:決定錯誤位置多項式σ(x
)之係數,此處σ(x
)係被定義,如此σ(x
)的根係分別由錯誤元素α j1
、α j2
、…、α jt
之倒數所給定,
σ(x
)=1+σ1 x
+...+σ t x t
=(1-α j 1 x
)(1-α j 2 x
)...(1-α jt x
) (6)
錯誤校正之步驟1係基於一t步驟疊代演算法,此處各疊代包括一伽羅瓦體轉換,其單獨取2m運算。
步驟2:解出σ(x
)的根,其係錯誤位置。當多項式σ(x
)係決定,各欄位元素α j
係替代至該多項式中。使多項式等於零的那些元素係為根。步驟2的實施可以於一電路取n週期,或於n並聯電路取一週期。任一方法,該基礎電路係O(t*m2
)。
步驟3:針對資料位元計算校正值。此藉由在錯誤位置上倒裝位元而可簡單地完成。
在一單一位元錯誤的情況,該徵候群正好符合對應該錯誤位元之該H矩陣欄。因此,一單一位元錯誤可藉由比較該H矩陣之各欄和該徵候群而被偵測。此校正係顯著地較t位元校正(t>1)之一般情況要快,因為不需要步驟1和錯誤校正邏輯之步驟2之大部分。所有的徵候群分量不需要符合整個H矩陣欄位。所需要的是比較S1
與H1
(定義於方程式(1))各欄位,以及證明滿足下列方程式:
[(parity
=1)&(S 1 3
==S 3
)&(S 1 5
==S 5
)&...&(S 1 2 t -1
==S 2 t -1
)]==1 (7)
為使潛候期減至最小,S1
與H1
之比較,以及所有在方程式(7)中之比較可以並行進行。
圖5係一流程圖,其係說明根據本發明之原理,使用圖1中所示之該系統100之一方法之一實施例。
在區塊500,若該快取列位址(addr)係關於該最近存取列表112之一RALT輸入項206,該快取列最近已被存取且不需要錯誤檢查,該快取列位址係經由L1/L2快取124發送至該CPU 102。若非,則程序繼續至區塊502。
在區塊502,該快取列位址(addr)係儲存於先前已於圖2說明之該RALT 112之一RALT輸入項206之一列位址欄位209中。儲存於快取記憶體110之該快取列中之資料,以及依據該位址而儲存於該標籤/ECC陣列118中之該標籤/ECC係被讀取並經由資料緩衝器114、116發送。程序繼續至區塊504。
在區塊504,在包括修復邏輯120之一實施例中,程序繼續至區塊512以修復該快取列。在不包括修復邏輯之一實施例中,程序繼續至區塊506。
在區塊506,快速ECC係藉由快速ECC邏輯104執行,以決定在該快取列中是否有錯誤。程序繼續至區塊508。
在區塊508,若在快取列中有多於二個錯誤欲校正,程序繼續至區塊514。若少於二個錯誤,該錯誤係由該快速ECC邏輯104校正,並且程序繼續至區塊510。
在區塊510,該校正的快取列資料係經由L1/L2快取124發送至該CPU 102。
在區塊512,讀取自快取記憶體110並經由資料緩衝器114、116發送之該快取列資料係如先前說明被修復。程序繼續至區塊506。
在區塊514,該Hi ECC邏輯校正該快取列中之該多位元錯誤,並且程序繼續至區塊510。
圖6係包括圖1中所示之該處理器100之一實施例之一系統600之一方塊圖。該系統600包括具有嵌入式快取記憶體、一記憶體控制集線器(MCH)602及一輸入/輸出(I/O)控制集線器(ICH)604之一處理器100。該MCH 602包括一記憶體控制器606,其係控制該處理器601與外部記憶體(主記憶體)610之間的通訊。該處理器100及MCH 602於一系統匯排流616上通訊。
該CPU 102係可為多個處理器中之任一,例如一單核心IntelPentiumIV處理器、一單核心Intel Celeron處理器、一IntelXScale處理器,或一多核心處理器,例如IntelPentiumD、IntelXeon處理器、或IntelCoreDuo處理器或任何其他類型的處理器。
該記憶體610可為動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、同步動態隨機存取記憶體(SDRAM)、雙倍資料傳輸速率2(DDR2)隨機存取記憶體、或Rambus動態隨機存取記憶體(RDRAM)或任何其他類型的記憶體。
該ICH 604可使用例如直接媒體介面(DMI)之一高速晶片對晶片互連614連接至該MCH 602。DMI經由二單向道支援二十億位元/秒之同時傳輸速率。
該ICH 604可包括一儲存輸入/輸出(I/O)控制器,以控制與連接至該ICH 604之至少一儲存裝置612之通訊。該儲存裝置可為,例如,一磁碟驅動器、數位視訊光碟(DVD)驅動器、光碟(CD)驅動器、冗餘獨立磁盤陣列(RAID)、磁帶驅動器或其他儲存裝置。該ICH 604可使用例如序列式附接小型電腦系統介面(SAS)或串行高級技術附件(SATA)之一連續儲存通訊協定,經由一儲存通訊協定互連618與該儲存裝置612通訊。
具有通常技術者將可理解,包括本發明之實施例之方法係可實施於包括一電腦可用媒體之一電腦程式化產品中。舉例來說,這樣一個電腦可用媒體可由一唯讀記憶體裝置組成,例如一光碟唯讀記憶體(CD ROM)或傳統的ROM裝置、或一電腦磁片,具有一電腦可讀取程式碼儲存於其上。
當本發明之實施例已特定顯示並由此參考實施例說明,具通常技術者將理解此處可於形式及細節上做多種變化,而未脫離附屬項之本發明之實施例之領域。
100...處理器
102...中央處理單元
104...快速錯誤校正碼邏輯
106...高潛候期錯誤校正碼邏輯
108...標籤/ECC陣列
110...快取記憶體
112...最近存取列表
114...資料緩衝器
116...資料緩衝器
120...修復邏輯
122...錯誤校正碼邏輯
124...L1/L2快取
200...系統
202...快取列
204...64B子區塊
206...最近存取列表輸入項
208...新錯誤校正碼
209...列位址欄位
210...同位欄位
211...同位欄位
212...有效欄位
214...周期識別符
216...計數器
400...錯誤校正碼編碼器
402...錯誤校正碼解碼器
404...徵候群產生邏輯
406...錯誤分類邏輯
408...錯誤校正邏輯
500-514...區塊
600...系統
601...處理器
602...記憶體控制集線器
604...I/O控制集線器
606...記憶體控制器
610...外部記憶體(主記憶體)
612...儲存裝置
614...高速晶片對晶片互連
616...系統匯排流
618...儲存協定互連
620...儲存輸入/輸出控制器
圖1係依據本發明原理之包括一快取記憶體以及錯誤碼校正邏輯(ECC)之一處理器之一實施例。
圖2係包括圖1中所示之一最近存取列表(RALT)及快取記憶體及錯誤碼校正邏輯之一系統之方塊圖,其係說明於針對快取記憶體中一快取列之一快速存取。
圖3係圖2中所示之系統之方塊圖,其係說明於更新週期中一快取列之一隨後讀取。
圖4A係說明包括於圖1中所示之快速錯誤校正碼邏輯中之一錯誤校正碼編碼器之一實施例之一方塊圖。
圖4B係說明包括於圖1中所示之快速錯誤校正碼邏輯中之一錯誤校正碼解碼器(解碼邏輯)之一實施例之一方塊圖。
圖5係說明依據本發明之原理之用於圖1中所示之系統之一方法之一實施例之一流程圖;以及
圖6係包括圖1中所示之處理器之一實施例之一系統之一方塊圖。
100...處理器
102...中央處理單元
104...快速錯誤校正碼邏輯
106...高潛候期錯誤校正碼邏輯
108...標籤/ECC陣列
110...快取記憶體
112...最近存取列表
114...資料緩衝器
116...資料緩衝器
120...修復邏輯
122...錯誤校正碼邏輯
124...L1/L2快取
Claims (23)
- 一種在系統中使用快取記憶體的設備,包括:一快取記憶體;以及一錯誤校正邏輯,回應於來自請求裝置的資料請求,如果一快取列並未在該快取記憶體的目前更新時段內被事先存取,則接收儲存於該快取記憶體中在該快取列中之資料,並執行該接收之資料的錯誤校正,該錯誤校正邏輯包括:一第一錯誤校正邏輯,用以產生一徵候群,以決定於該資料中之錯誤數目,並且如果該錯誤數目被決定為一,則執行該資料的錯誤校正;以及一第二錯誤校正邏輯,如果該錯誤數目被決定為大於一時,則自該第一錯誤校正邏輯接收該資料,該第二錯誤校正邏輯用以針對該接收之資料執行多位元錯誤校正;其中如果該快取列已經在該快取記憶體的該目前更新時段內被事先存取,則該資料為無錯誤並將該資料發送至該請求裝置,而該錯誤校正邏輯不必執行錯誤校正。
- 如申請專利範圍第1項所述之設備,更包括:修復邏輯,該修復邏輯用以於發送該資料至所述錯誤校正邏輯之前,修復於該資料中之已知錯誤。
- 如申請專利範圍第1項所述之設備,其中該第一錯誤校正邏輯包括一解碼器,以比與該多位元錯誤校正相關之第二時段為短的時段內執行該錯誤校正。
- 如申請專利範圍第1項所述之設備,更包括: 一最近存取列表(RALT),其係耦接至該快取記憶體之位址匯排流,該RALT係用以決定該快取列於該快取記憶體之目前更新時段中是否曾被存取。
- 如申請專利範圍第1項所述之設備,其中所述錯誤校正邏輯可以偵測達六個錯誤。
- 如申請專利範圍第1項所述之設備,其中所述錯誤校正邏輯可以偵測達五個錯誤。
- 一種在系統中使用快取記憶體之方法,包括:如果快取記憶體中的快取列在該快取記憶體的目前更新時段內並未被事先存取,則執行錯誤校正,包括:以錯誤校正邏輯接收儲存於該快取列中之資料,該錯誤校正邏輯包括一第一錯誤校正邏輯以及一第二錯誤校正邏輯;由該第一錯誤校正邏輯,產生一徵候群以決定該資料中之錯誤數目;如果該資料具有一個以上之錯誤,則由該第一錯誤校正邏輯發送該資料至第二錯誤校正邏輯;以及回應於接收到由該第一錯誤校正邏輯所發送的該資料,由該第二錯誤校正邏輯,執行針對該資料的多位元錯誤校正;及回應於來自請求裝置的請求,如果該快取列已經在該目前更新時段內被事先存取及因此該資料無錯誤,則發送該資料至該請求裝置,而不必執行該錯誤校正。
- 如申請專利範圍第7項所述之方法,其中在該錯誤 校正邏輯接收該資料之前,在該資料中的已知錯誤係為使用位元修復邏輯的修復邏輯所修復,該位元修復邏輯使用一或更多區塊。
- 如申請專利範圍第7項所述之方法,更包括:由耦接至該快取記憶體之位址匯排流之一最近存取列表(RALT),決定該快取列於該快取記憶體之該目前更新時段中是否曾被存取。
- 如申請專利範圍第7項所述之方法,更包括:偵測達六個錯誤。
- 如申請專利範圍第7項所述之方法,更包括:偵測達五個錯誤。
- 如申請專利範圍第7項所述之方法,其中單一位元錯誤校正係在一周期內被執行。
- 一種包括具有相關資訊之機器可存取非暫態媒體的製造物件,其中當該資訊被存取時,導致機器執行:如果於快取記憶體之快取列並未在該快取記憶體的目前更新時段內被事先存取,回應於來自請求裝置的資料請求:由錯誤校正邏輯接收儲存於該快取列中之資料,所述錯誤校正邏輯包括一第一錯誤校正邏輯以及一第二錯誤校正邏輯;由該第一錯誤校正邏輯,產生一徵候群以決定在該資料中之錯誤數目;如果該資料具有一個以上之錯誤,則由該第一錯誤校 正邏輯發送該資料至該第二錯誤校正邏輯;以及如果該第二錯誤校正邏輯接收到為該第一錯誤校正邏輯所發送的資料,則由該第二錯誤校正邏輯,針對該資料執行多位元錯誤校正;及如果該快取列已經在該目前更新時段內事先被存取及該資料無錯誤,則回應於該資料的該請求,發送該資料至該請求裝置,而不必執行錯誤校正。
- 如申請專利範圍第13項所述之製造物件,其中當該資訊被存取時,導致該機器進一步執行:於所述錯誤校正邏輯接收該資料前,由修復邏輯修復於該資料中之已知錯誤。
- 如申請專利範圍第13項所述之製造物件,其中當該資訊被存取時,導致:由耦接至該快取記憶體之位址匯排流之一最近存取列表(RALT),決定該快取列於該快取記憶體之該目前更新時段中是否曾被存取。
- 如申請專利範圍第13項所述之製造物件,其中當該資訊被存取時,導致:回應於表示在該資料中的單一錯誤,由該第一錯誤校正邏輯執行錯誤校正。
- 如申請專利範圍第16項所述之製造物件,其中該錯誤在一周期內被修復。
- 如申請專利範圍第14項所述之製造物件,更包括如果該快取列已經在該快取記憶體的目前更新時段內被事 先存取並該資料無錯誤,則回應於該資料請求,將該資料發送至該請求裝置,而不必執行錯誤校正。
- 一種計算系統,包括:一外部記憶體;以及一處理器,該處理器包括:一快取記憶體,用以儲存讀取自該外部記憶體之資料於快取列中;以及錯誤校正邏輯,其中如果該快取列並未在該快取記憶體的目前更新時段期間被事先存取,則回應於來自請求裝置的資料請求,所述錯誤校正邏輯接收該資料並執行錯誤校正,所述錯誤校正邏輯包括:一第一錯誤校正邏輯,用以產生一徵候群,以決定於該資料中之錯誤數目並且如果在該資料中只偵測到一錯誤,則校正該資料;以及一第二錯誤校正邏輯,自該第一錯誤校正邏輯接收該資料,如果決定在該資料中的該錯誤數目大於一,則該第二錯誤校正邏輯回應於來自該第一錯誤校正邏輯的資料之接收,執行多位元錯誤校正;及其中如果該快取列已經在該快取記憶體的該目前更新時段內被事先存取及該資料無錯誤,則回應於該請求,將該資料發送至該請求裝置,而不必以所述錯誤校正邏輯執行該錯誤校正。
- 如申請專利範圍第19項所述之計算系統,其中該處理器更包括修復邏輯,用以於發送該資料至所述錯誤校 正邏輯前,透過使用一或更多區塊修復於該資料中之已知錯誤。
- 如申請專利範圍第19項所述之計算系統,其中如果只在該資料中偵測到一個錯誤,則該第一錯誤校正邏輯在該資料的校正完成後,將該已校正資料傳送至該請求裝置,而不必送至該第二錯誤校正邏輯。
- 如申請專利範圍第19項所述之計算系統,其中所述錯誤校正邏輯可以偵測達六個錯誤。
- 如申請專利範圍第20項所述之計算系統,更包含:耦接至該快取記憶體之位址之一最近存取列表(RALT),該RALT決定該快取列於該快取記憶體之目前更新時段中是否曾被存取。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/785,182 US8640005B2 (en) | 2010-05-21 | 2010-05-21 | Method and apparatus for using cache memory in a system that supports a low power state |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201209841A TW201209841A (en) | 2012-03-01 |
TWI502599B true TWI502599B (zh) | 2015-10-01 |
Family
ID=44973483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100114662A TWI502599B (zh) | 2010-05-21 | 2011-04-27 | 於支援低功率狀態系統中使用快取記憶體的方法與設備、及其製造物件與計算系統 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8640005B2 (zh) |
JP (1) | JP5604513B2 (zh) |
KR (1) | KR101495049B1 (zh) |
CN (1) | CN102253865B (zh) |
BR (1) | BRPI1105243A8 (zh) |
DE (1) | DE112011100579B4 (zh) |
GB (1) | GB2506833B (zh) |
TW (1) | TWI502599B (zh) |
WO (1) | WO2011146823A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI741631B (zh) * | 2020-03-27 | 2021-10-01 | 旺宏電子股份有限公司 | 記憶體裝置及記憶體裝置操作方法 |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484539B1 (en) * | 2009-06-09 | 2013-07-09 | Sk Hynix Memory Solutions Inc. | Controlling power consumption in iterative ECC processing systems |
US8533572B2 (en) | 2010-09-24 | 2013-09-10 | Intel Corporation | Error correcting code logic for processor caches that uses a common set of check bits |
US8924817B2 (en) * | 2010-09-29 | 2014-12-30 | Advanced Micro Devices, Inc. | Method and apparatus for calculating error correction codes for selective data updates |
US8788904B2 (en) * | 2011-10-31 | 2014-07-22 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to perform error detection and correction |
US9304570B2 (en) | 2011-12-15 | 2016-04-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements |
US9195551B2 (en) | 2012-03-29 | 2015-11-24 | Intel Corporation | Enhanced storage of metadata utilizing improved error detection and correction in computer memory |
US9444496B2 (en) * | 2012-04-04 | 2016-09-13 | University Of Southern California | Correctable parity protected memory |
US9323608B2 (en) | 2012-06-07 | 2016-04-26 | Micron Technology, Inc. | Integrity of a data bus |
KR101979734B1 (ko) | 2012-08-07 | 2019-05-17 | 삼성전자 주식회사 | 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법 |
US9703364B2 (en) * | 2012-09-29 | 2017-07-11 | Intel Corporation | Rotational graphics sub-slice and execution unit power down to improve power performance efficiency |
KR102081980B1 (ko) * | 2012-10-08 | 2020-02-27 | 삼성전자 주식회사 | 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법 |
US9128858B1 (en) * | 2013-01-29 | 2015-09-08 | Pmc-Sierra Us, Inc. | Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values |
US9092353B1 (en) | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
KR102024033B1 (ko) * | 2013-03-04 | 2019-09-24 | 삼성전자주식회사 | 이동 통신 시스템에서 메모리 제어 방법 및 장치 |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US9397701B1 (en) | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US9590656B2 (en) | 2013-03-15 | 2017-03-07 | Microsemi Storage Solutions (Us), Inc. | System and method for higher quality log likelihood ratios in LDPC decoding |
JP2014211800A (ja) * | 2013-04-19 | 2014-11-13 | 株式会社東芝 | データ記憶装置、ストレージコントローラおよびデータ記憶制御方法 |
TWI502601B (zh) * | 2013-04-24 | 2015-10-01 | Ind Tech Res Inst | 混合式錯誤修復方法及其記憶體裝置 |
WO2015016880A1 (en) | 2013-07-31 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Global error correction |
WO2015016879A1 (en) * | 2013-07-31 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Operating a memory unit |
CN107632904B (zh) * | 2013-08-23 | 2020-12-22 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
JP6275427B2 (ja) * | 2013-09-06 | 2018-02-07 | 株式会社東芝 | メモリ制御回路およびキャッシュメモリ |
US9286224B2 (en) | 2013-11-26 | 2016-03-15 | Intel Corporation | Constraining prefetch requests to a processor socket |
CN103811047B (zh) * | 2014-02-17 | 2017-01-18 | 上海新储集成电路有限公司 | 一种基于分块dram的低功耗刷新方法 |
JP6140093B2 (ja) | 2014-03-18 | 2017-05-31 | 株式会社東芝 | キャッシュメモリ、誤り訂正回路およびプロセッサシステム |
US9417804B2 (en) | 2014-07-07 | 2016-08-16 | Microsemi Storage Solutions (Us), Inc. | System and method for memory block pool wear leveling |
KR102193682B1 (ko) | 2014-08-01 | 2020-12-21 | 삼성전자주식회사 | 선택적 ecc 기능을 갖는 반도체 메모리 장치 |
US9442801B2 (en) | 2014-09-26 | 2016-09-13 | Hewlett Packard Enterprise Development Lp | Platform error correction |
US9703632B2 (en) * | 2014-11-07 | 2017-07-11 | Nxp B. V. | Sleep mode operation for volatile memory circuits |
US9489255B2 (en) | 2015-02-12 | 2016-11-08 | International Business Machines Corporation | Dynamic array masking |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9740558B2 (en) | 2015-05-31 | 2017-08-22 | Intel Corporation | On-die ECC with error counter and internal address generation |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
US10127101B2 (en) | 2015-08-28 | 2018-11-13 | Intel Corporation | Memory device error check and scrub mode and error transparency |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US10268539B2 (en) * | 2015-12-28 | 2019-04-23 | Intel Corporation | Apparatus and method for multi-bit error detection and correction |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US11169707B2 (en) | 2016-01-22 | 2021-11-09 | Netapp, Inc. | Garbage collection pacing in a storage system |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10157677B2 (en) | 2016-07-28 | 2018-12-18 | Ip Gem Group, Llc | Background reference positioning and local reference positioning using threshold voltage shift read |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
US10379944B2 (en) * | 2017-04-17 | 2019-08-13 | Advanced Micro Devices, Inc. | Bit error protection in cache memories |
US10642683B2 (en) | 2017-10-11 | 2020-05-05 | Hewlett Packard Enterprise Development Lp | Inner and outer code generator for volatile memory |
KR102606009B1 (ko) * | 2018-08-16 | 2023-11-27 | 에스케이하이닉스 주식회사 | 캐시 버퍼 및 이를 포함하는 반도체 메모리 장치 |
US10985780B2 (en) * | 2018-10-15 | 2021-04-20 | SK Hynix Inc. | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller |
US10884940B2 (en) * | 2018-12-21 | 2021-01-05 | Advanced Micro Devices, Inc. | Method and apparatus for using compression to improve performance of low voltage caches |
KR20200140074A (ko) | 2019-06-05 | 2020-12-15 | 에스케이하이닉스 주식회사 | 휘발성 메모리 장치 및 이의 동작 방법 |
US11036636B2 (en) | 2019-06-28 | 2021-06-15 | Intel Corporation | Providing improved efficiency for metadata usages |
KR20210015087A (ko) | 2019-07-31 | 2021-02-10 | 에스케이하이닉스 주식회사 | 오류 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
KR20210122455A (ko) | 2020-04-01 | 2021-10-12 | 삼성전자주식회사 | 반도체 메모리 장치 |
CN112181712B (zh) * | 2020-09-28 | 2022-02-22 | 中国人民解放军国防科技大学 | 一种提高处理器核可靠性的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604753A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for performing error correction on data from an external memory |
US6480975B1 (en) * | 1998-02-17 | 2002-11-12 | International Business Machines Corporation | ECC mechanism for set associative cache array |
US20030167437A1 (en) * | 2002-03-04 | 2003-09-04 | Desota Donald R. | Cache entry error-correcting code (ECC) based at least on cache entry data and memory address |
US20060031708A1 (en) * | 2004-08-04 | 2006-02-09 | Desai Kiran R | Method and apparatus for correcting errors in a cache array |
US20070162824A1 (en) * | 2004-01-30 | 2007-07-12 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
US7296213B2 (en) * | 2002-12-11 | 2007-11-13 | Nvidia Corporation | Error correction cache for flash memory |
US20090006899A1 (en) * | 2007-06-26 | 2009-01-01 | International Business Machines Corporation | Error correcting code with chip kill capability and power saving enhancement |
US7647536B2 (en) * | 2005-12-30 | 2010-01-12 | Intel Corporation | Repair bits for a low voltage cache |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4139148A (en) * | 1977-08-25 | 1979-02-13 | Sperry Rand Corporation | Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory |
US4236247A (en) * | 1979-01-15 | 1980-11-25 | Organisation Europeene De Recherches Spatiales | Apparatus for correcting multiple errors in data words read from a memory |
JP2696212B2 (ja) | 1987-05-06 | 1998-01-14 | セイコーエプソン株式会社 | 誤り訂正装置 |
JPH0275039A (ja) | 1988-09-12 | 1990-03-14 | Mitsubishi Electric Corp | メモリ回路 |
US5604213A (en) * | 1992-03-31 | 1997-02-18 | British Technology Group Limited | 17-substituted steroids useful in cancer treatment |
CN1159648C (zh) | 1994-12-02 | 2004-07-28 | 现代电子美国公司 | 有限游程转移预测方法 |
JPH0991206A (ja) * | 1995-09-27 | 1997-04-04 | Toshiba Corp | メモリ制御装置およびメモリ検査方法 |
US5802582A (en) * | 1996-09-10 | 1998-09-01 | International Business Machines Corporation | Explicit coherence using split-phase controls |
US6044479A (en) * | 1998-01-29 | 2000-03-28 | International Business Machines Corporation | Human sensorially significant sequential error event notification for an ECC system |
US6304992B1 (en) | 1998-09-24 | 2001-10-16 | Sun Microsystems, Inc. | Technique for correcting single-bit errors in caches with sub-block parity bits |
US6772383B1 (en) * | 1999-05-27 | 2004-08-03 | Intel Corporation | Combined tag and data ECC for enhanced soft error recovery from cache tag errors |
US6505318B1 (en) * | 1999-10-01 | 2003-01-07 | Intel Corporation | Method and apparatus for partial error detection and correction of digital data |
JP2003203010A (ja) | 2002-01-07 | 2003-07-18 | Nec Computertechno Ltd | L2キャッシュメモリ |
JP4299558B2 (ja) * | 2003-03-17 | 2009-07-22 | 株式会社ルネサステクノロジ | 情報記憶装置および情報処理システム |
US7069494B2 (en) * | 2003-04-17 | 2006-06-27 | International Business Machines Corporation | Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism |
JP4041076B2 (ja) * | 2004-02-27 | 2008-01-30 | 株式会社東芝 | データ記憶システム |
US7653862B2 (en) * | 2005-06-15 | 2010-01-26 | Hitachi Global Storage Technologies Netherlands B.V. | Error detection and correction for encoded data |
US7590920B2 (en) * | 2005-08-05 | 2009-09-15 | Hitachi Global Storage Technologies Netherlands, B.V. | Reduced complexity error correction encoding techniques |
US7590913B2 (en) * | 2005-12-29 | 2009-09-15 | Intel Corporation | Method and apparatus of reporting memory bit correction |
US7512847B2 (en) * | 2006-02-10 | 2009-03-31 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
US7890836B2 (en) * | 2006-12-14 | 2011-02-15 | Intel Corporation | Method and apparatus of cache assisted error detection and correction in memory |
JP4672743B2 (ja) * | 2008-03-01 | 2011-04-20 | 株式会社東芝 | 誤り訂正装置および誤り訂正方法 |
-
2010
- 2010-05-21 US US12/785,182 patent/US8640005B2/en active Active
-
2011
- 2011-04-27 TW TW100114662A patent/TWI502599B/zh active
- 2011-05-19 CN CN201110130191.XA patent/CN102253865B/zh active Active
- 2011-05-20 WO PCT/US2011/037319 patent/WO2011146823A2/en active Application Filing
- 2011-05-20 BR BRPI1105243A patent/BRPI1105243A8/pt active Search and Examination
- 2011-05-20 GB GB1122300.5A patent/GB2506833B/en active Active
- 2011-05-20 KR KR20127033246A patent/KR101495049B1/ko active IP Right Grant
- 2011-05-20 JP JP2012517938A patent/JP5604513B2/ja active Active
- 2011-05-20 DE DE112011100579.2T patent/DE112011100579B4/de active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604753A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for performing error correction on data from an external memory |
US6480975B1 (en) * | 1998-02-17 | 2002-11-12 | International Business Machines Corporation | ECC mechanism for set associative cache array |
US20030167437A1 (en) * | 2002-03-04 | 2003-09-04 | Desota Donald R. | Cache entry error-correcting code (ECC) based at least on cache entry data and memory address |
US7296213B2 (en) * | 2002-12-11 | 2007-11-13 | Nvidia Corporation | Error correction cache for flash memory |
US20070162824A1 (en) * | 2004-01-30 | 2007-07-12 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
US7389465B2 (en) * | 2004-01-30 | 2008-06-17 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
US20060031708A1 (en) * | 2004-08-04 | 2006-02-09 | Desai Kiran R | Method and apparatus for correcting errors in a cache array |
US7647536B2 (en) * | 2005-12-30 | 2010-01-12 | Intel Corporation | Repair bits for a low voltage cache |
US20100070809A1 (en) * | 2005-12-30 | 2010-03-18 | Dempsey Morgan J | Repair bits for a low voltage cache |
US20090006899A1 (en) * | 2007-06-26 | 2009-01-01 | International Business Machines Corporation | Error correcting code with chip kill capability and power saving enhancement |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI741631B (zh) * | 2020-03-27 | 2021-10-01 | 旺宏電子股份有限公司 | 記憶體裝置及記憶體裝置操作方法 |
Also Published As
Publication number | Publication date |
---|---|
DE112011100579B4 (de) | 2021-09-02 |
DE112011100579T5 (de) | 2013-02-07 |
JP2012531683A (ja) | 2012-12-10 |
TW201209841A (en) | 2012-03-01 |
WO2011146823A3 (en) | 2012-04-05 |
CN102253865B (zh) | 2014-03-05 |
GB2506833A (en) | 2014-04-16 |
US8640005B2 (en) | 2014-01-28 |
WO2011146823A2 (en) | 2011-11-24 |
CN102253865A (zh) | 2011-11-23 |
US20110289380A1 (en) | 2011-11-24 |
KR101495049B1 (ko) | 2015-02-24 |
KR20130020808A (ko) | 2013-02-28 |
BRPI1105243A2 (pt) | 2017-06-20 |
JP5604513B2 (ja) | 2014-10-08 |
GB201122300D0 (en) | 2012-02-01 |
GB2506833B (en) | 2018-12-19 |
BRPI1105243A8 (pt) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI502599B (zh) | 於支援低功率狀態系統中使用快取記憶體的方法與設備、及其製造物件與計算系統 | |
US8276039B2 (en) | Error detection device and methods thereof | |
Wilkerson et al. | Reducing cache power with low-cost, multi-bit error-correcting codes | |
US10901840B2 (en) | Error correction decoding with redundancy data | |
US7437597B1 (en) | Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines | |
Yoon et al. | FREE-p: Protecting non-volatile memory against both hard and soft errors | |
US8560922B2 (en) | Bad block management for flash memory | |
US10020822B2 (en) | Error tolerant memory system | |
US11687404B2 (en) | Technologies for preserving error correction capability in compute-in-memory operations | |
US8869007B2 (en) | Three dimensional (3D) memory device sparing | |
Mittal et al. | A survey of techniques for improving error-resilience of DRAM | |
KR20120031875A (ko) | 의사 에러 발생 장치 | |
US9966147B1 (en) | Determining read voltages for a storage device | |
US10481975B2 (en) | Memory system | |
US9430375B2 (en) | Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency | |
US12019881B1 (en) | Reduced power consumption by SSD using host memory buffer | |
Nair et al. | SuDoku: Tolerating high-rate of transient failures for enabling scalable STTRAM | |
Wang et al. | Improving 3D DRAM fault tolerance through weak cell aware error correction | |
Hijaz et al. | NUCA-L1: A non-uniform access latency level-1 cache architecture for multicores operating at near-threshold voltages | |
Wang | Architecting Memory Systems Upon Highly Scaled Error-Prone Memory Technologies | |
US20240303156A1 (en) | Patrol scrubbing cycle for data storage circuitry | |
US20230153026A1 (en) | Storage device and operation method thereof | |
Li et al. | Improving DRAM Reliability Using a High Order Error Correction Code | |
CN118210649A (zh) | 存储设备和操作存储设备的方法 | |
Wang | An Adaptive ECC Scheme for Runtime Write Failure Suppression of STT-RAM Cache |