TWI605460B - 自晶粒上動態隨機存取記憶體(ram)錯誤校正碼(ecc)擷取選擇性資訊的技術 - Google Patents
自晶粒上動態隨機存取記憶體(ram)錯誤校正碼(ecc)擷取選擇性資訊的技術 Download PDFInfo
- Publication number
- TWI605460B TWI605460B TW105104802A TW105104802A TWI605460B TW I605460 B TWI605460 B TW I605460B TW 105104802 A TW105104802 A TW 105104802A TW 105104802 A TW105104802 A TW 105104802A TW I605460 B TWI605460 B TW I605460B
- Authority
- TW
- Taiwan
- Prior art keywords
- error
- memory
- read data
- correction
- bit
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明的實施例一般係涉及記憶體管理,更具體地說係涉及只存取來自一記憶體裝置之晶粒上錯誤檢查和校正之選擇性資訊的技術。
本專利文件所公開的部分會包含受版權保護的材料。該版權擁有者不反對該由本專利文件或本專利公開之任何一人的重製,因為它出現在專利和商標局的專利檔案或記錄中,但在其他方面則保留任何的全部的版權權利。本版權公告適用於以下所描述之所有資料、和在附圖中所繪、以及以下所描述之所有何軟體:版權所有©2015,英特爾公司,保留所有權利。
依電性記憶體資源可在當前的運算平台中找到廣泛的使用,不論是用於伺服器、桌上型或膝上型電腦、行動裝置、以及消費性和商業電子。DRAM(動態隨機存取記憶體)裝置係在使用上最常見的記憶體裝置類型。然而,
隨著生產該等DRAM的製程持續地縮小到更小的幾何結構,意味著DRAM錯誤將增加。用於解決該日益增加之DRAM錯誤的一種技術係採用晶粒上ECC(錯誤檢查和校正)。晶粒上ECC係指駐留在該記憶體裝置本身的錯誤檢測和校正邏輯。使用晶粒上ECC邏輯,一DRAM可以校正單一位元錯誤,諸如透過一單一錯誤校正(SEC)或單一錯誤校正、雙錯誤檢測(SECDED)技術。晶粒上ECC可被使用來附加於系統級的ECC,但該系統級的ECC無法洞察在該記憶體裝置級中已經執行何種錯誤校正。然而,提供該DRAM所進行的錯誤校正細節會暴露有關於該等DRAM之設計和操作的敏感性資料。
依據本發明之一實施例,係特地提出一種用於在一記憶體子系統中錯誤校正的方法,其包含有下列步驟:在一記憶體裝置中執行內部錯誤偵測以回應於來自一相關聯記憶體控制器的一讀出請求而偵測在讀出資料中的錯誤;回應於在該讀出資料中偵測到一錯誤而在該讀出資料上選擇性地執行一內部錯誤校正操作;在執行該內部錯誤偵測和校正之後為該讀出資料產生可指出一錯誤向量的檢查位元;以及回應於該讀出請求而提供該等檢查位元與該讀出資料給該記憶體控制器,該等檢查位元由該記憶體控制器在於該記憶體裝置外部之額外的錯誤校正中使用。
100、200、400‧‧‧系統
110、510‧‧‧處理器
120、302、434、564‧‧‧記憶體控制器
122、132‧‧‧I/O
124、134‧‧‧ECC管理器
130、220、304、432、562‧‧‧記憶體
136‧‧‧陣列
210‧‧‧主機
222‧‧‧檢查位元產生器
224‧‧‧信種解碼
226‧‧‧信種產生器
228‧‧‧錯誤校正
232‧‧‧寫入
234‧‧‧讀出
242、254‧‧‧資料
244、256、268‧‧‧檢查位元
246‧‧‧碼字寫入
252‧‧‧碼字讀出
258‧‧‧信種
260‧‧‧CE,錯誤位置
262‧‧‧無錯誤
264‧‧‧DUE
266‧‧‧經校正的資料
312~336‧‧‧方塊
410‧‧‧匯流排
420、710‧‧‧處理器
430、760、560‧‧‧記憶體子系統
436‧‧‧OS
438‧‧‧指令
440‧‧‧I/O介面
450‧‧‧網路介面
460‧‧‧儲存器
462‧‧‧程式碼/資料
470‧‧‧週邊介面
480、566‧‧‧ECC
500‧‧‧裝置
520‧‧‧音訊子系統
530‧‧‧顯示器子系統
532‧‧‧顯示器介面
540‧‧‧I/O控制器
550‧‧‧電源管理
570‧‧‧連接
572‧‧‧蜂巢式
574‧‧‧無線
580‧‧‧週邊連接
582‧‧‧至
584‧‧‧從
以下的描述包括了對附圖的討論,該等附圖具有
以本發明實施例之示例實現方式所給出的圖示。該等附圖應當被理解係以舉例的方式,而不是以限制性的方式。如本文所使用的,提及一或多個「實施例」將被理解成係描述包含有在本發明至少一種實現方式中之一特定的功能、結構、及/或特徵。因此,在本文中出現的用詞諸如「在一實施例中」或「在一替代實施例中」描述各種實施例及本發明的實現方式,並不必然指的是相同的實施例。然而,它們也不一定是互斥的。
圖1係一系統實施例的方塊圖,其中一記憶體裝置暴露內部ECC檢查位元給一主機。
圖2係在一記憶體裝置產生內部檢查位元以發送給一主機之邏輯的一實施例方塊圖。
圖3係用於執行錯誤校正之一程序的實施例流程圖,該錯誤校正包含有把內部檢查位元從一記憶體裝置傳送到一主機。
圖4係一運算系統之一實施例方塊圖,其中具有交換之內部檢查位元的ECC可被實現。
圖5係一行動裝置之一實施例方塊圖,其中具有交換之內部檢查位元的ECC可被實現。
以下為特定細節和實現方式的描述,包括該等附圖的描述,其可描繪以下所描述之該等實施例的一些或全部,以及討論其他潛在實施例或本文中所呈現之發明性概念的實現方式。
如本文所描述的,在一記憶體子系統中的錯誤檢查和校正(ECC)包括一記憶體裝置在執行內部錯誤檢測和校正之後產生內部檢查位元,並提供該等內部檢查位元給記憶體控制器。該記憶體裝置執行內部錯誤偵測以偵測在讀出資料中的錯誤以回應於來自該記憶體控制器的一讀出請求。若在該讀出資料中偵測到一錯誤,該記憶體裝置會選擇性地執行內部錯誤校正。該記憶體裝置在執行內部錯誤偵測和校正之後,產生為該讀出資料指出一錯誤向量的檢查位元,並提供該等檢查位元與該讀出資料給該記憶體控制器以回應於該讀出請求。若沒有錯誤或若有一單一錯誤被該記憶體裝置校正,發送給該記憶體控制器的該等檢查位元將顯示沒有錯誤。該等檢查位元將顯示由該記憶體裝置所檢測到之一種多位元錯誤而不指出該記憶體裝置之一單一位元錯誤資訊。該記憶體控制器可運用該等檢查位元在外部於該記憶體裝置之系統級ECC中。
目前在記憶體子系統之可靠性、可存取性、和可維護性(RAS)的水準上已經有了許多的改進。提供對內部ECC資訊的存取預期將進一步地改善系統級的ECC。然而,提供對一記憶體裝置內部校正資料(錯誤位元)的存取會公開有關於所有校正的資訊,其包括單一位元校正。如本文所描述的,一記憶體子系統啟用來自該記憶體裝置內部之檢查位元的交換,其可以只提供有關在該記憶體裝置層級校正的選擇性資訊。具體地說,藉由產生經校正資料的
檢查位元,該記憶體裝置提供給該記憶體控制器的檢查位元將可區分單一位元錯誤(SBE)的狀況和沒有錯誤的狀況。
因此,在一實施例中,本文所描述的ECC允許記憶體裝置傳遞ECC資訊來改善系統級的ECC而不會透露私有資訊。該傳遞的ECC資訊可被稱為公布校正檢查位元。雖然該等SBE檢查位元不會洩露有關於該記憶體裝置的資訊,但指出多位元錯誤的檢查位元可由該記憶體控制器使用來改善系統ECC。該記憶體控制器可以從該等檢查位元擷取該多位元錯誤資訊。該記憶體控制器可運用該多位元資訊,以決定如何把ECC應用到該系統(例如,藉由知道該記憶體何處發生故障)。在一實施例中,該記憶體控制器使來自該記憶體裝置之內部檢查位元作為元資料來改善針對多位元錯誤之SDDC(單一裝置資料校正)ECC操作。
本文所提及的記憶體裝置可以是不同類型的記憶體。記憶體裝置通常係指依電性記憶體技術。依電性記憶體係若該裝置電源中斷,其狀態(並因此儲存在其上的資料)係不確定的記憶體。非依電性記憶體係就算該裝置電源中斷,其狀態係確定的記憶體。動態依電性記憶體需要刷新儲存在該裝置中的該資料以保持其狀態。動態依電性記憶體的一實例包括DRAM(動態隨機存取記憶體),或一些變型諸如同步DRAM(SDRAM)。如本文所述之一記憶體子系統可與一些記憶體技術相容,諸如DDR3(雙倍資料速率版本3,最初由JEDEC(電子裝置工程聯合委員會)於2007年六月27日所發行,目前發行21)、DDR4(DDR版本4,由JEDEC
在2012年九月刊登最初的規格)、LPDDR3(低功率DDR版本3,JESD209-3B,由JEDEC在2013年八月)、LPDDR4(低功率雙倍資料速率(LPDDR)版本4,JESD209-4,最初由JEDEC在2014年八月公佈)、WIO2(寬I/O 2(WideIO2),JESD229-2,最初由JEDEC在2014年八月公佈)、HBM(高頻寬記憶體DRAM,JESD235,最初由JEDEC在2013年十月公佈)、DDR5(DDR版本5,目前由JEDEC討論中)、LPDDR5(目前由JEDEC討論中)、WIO3(寬I/O 3,目前由JEDEC討論中)、HBM2(HBM版本2),目前由JEDEC討論中)、及/或其他的、以及基於這些規格之衍生或延伸之技術。
除了依電性記憶體之外,或替代於其,在一實施例中,提及記憶體裝置可以是指一非依電性記憶體裝置其狀態即使該裝置電源中斷還是確定的。在一實施例中,該非依電性記憶體裝置係一區塊可定址的記憶體裝置,諸如NAND或NOR技術。因此,一記憶體裝置還可包括未來世代的非依電性裝置,諸如一個三維交叉點記憶體裝置、或其他位元組可定址非依電性記憶體裝置。在一實施例中,該記憶體裝置可以是或包含有多臨界準位NAND快閃記憶體、NOR快閃記憶體、單一或多準位相變記憶體(PCM)、一電阻式記憶體、納米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、納入憶阻器技術之磁阻式隨機存取記憶體(MRAM)記憶體、或自旋轉移力矩(STT)-MRAM、或任何上述的一種組合、或其他記憶體。
圖1係一系統實施例的方塊圖,其中一記憶體裝
置暴露內部ECC檢查位元給一主機。系統100代表一記憶體子系統的組件。系統100可被包含在任何類型使用具內部ECC之記憶體的運算裝置或電子電路中。處理器110代表任何類型的處理邏輯或組件,其基於儲存在記憶體130中的資料來執行操作或產生資料以儲存在記憶體130中。處理器110可以是或包括一主機處理器、中央處理單元(CPU)、微控制器或微處理器、圖形處理器、週邊處理器、應用特定處理器、或其他處理器。處理器110可以是或包括一單核心或多核心處理器。
記憶體控制器120代表介接記憶體130及管理對儲存在該記憶體130中的資料進行存取的邏輯。在一實施例中,記憶體控制器120被整合到處理器110的該硬體中。在一實施例中,記憶體控制器120係獨立的硬體,與該處理器110分開。記憶體控制器120可以是在包含有處理器110之一基板上的一獨立的電路。記憶體控制器120可以是一單獨的晶粒或晶片,其與具有處理器110的一晶粒整合在一共用的基板上(例如,作為一系統單晶片(SoC))。在一實施例中,若不是記憶體130的全部,記憶體130的至少一些可被包含在具有處理器110及/或記憶體控制器120的一SoC上。
處理器110在系統100的環境中一般被理解為產生對記憶體130的資料請求,以及回應於這樣的請求,消耗從記憶體130所傳回的該資料。在一實施例中,處理器110和記憶體控制器120可以一起被視為記憶體130存儲和傳回資料的「主機」。在一實施例中,記憶體130只包括依電性
記憶體資源。在一實施例中,記憶體130包括非依電性記憶體資源。在一實施例中,記憶體130包括具有內部ECC的DDR4 DRAM(其在工業中會被稱為DDR4e)。
在一實施例中,系統100包括多個記憶體資源130。記憶體130在系統100中可被實現為支援經由記憶體控制器120使用ECC進行存取之任何類型的結構。記憶體130能夠被管理,例如,成為具有分開通道之不同層級的記憶體、DIMM(雙列直插式記憶體模組)、rank、DRAM、排組、頁、列。每一個分開的記憶體層級和資源可個別地定址。記憶體控制器120包括I/O(輸入/輸出),其包括硬體資源以與記憶體130之對應的I/O 132互連。I/O可包含有驅動器、ODT(晶粒上終結電阻)、引腳、連接器、跡線、焊墊、電線、及/或其他的硬體。I/O 122和132通常被組織成信號線的一或多個匯流排,諸如一命令/位址(C/A)匯流排用於記憶體控制器120發送存取命令和位址資訊,以及一資料匯流排以讓記憶體控制器120和記憶體130可交換資料。該資料可用一讀出(Read)命令從該等不同的記憶體資源被讀出,或可用一寫入命令被寫入到該等記憶體資源。
在一實施例中,記憶體控制器包含有ECC管理器124來管理在系統100之記憶體存取中的錯誤檢查和校正。在一實施例中,記憶體130包含有由ECC管理器134所管理的內部ECC。記憶體控制器120的ECC管理器124管理系統範圍的ECC,以及可以平行地偵測和校正遍及多個不同記憶體資源(例如,多個記憶體資源130)的錯誤。用於系統範
圍ECC之許多的技術是已知的,並且可包括ECC管理器124以一種散播錯誤遍及多個資源的方式來管理記憶體資源。藉由散播錯誤遍及多個資源,記憶體控制器120甚至可在記憶體130中有一或多個故障的情況下恢復資料。記憶體故障通常被歸類要麼是軟錯誤即軟故障,其係典型由隨機環境條件下所產生的瞬態位元錯誤;要麼是硬錯誤即硬故障,其係肇因於一硬體故障所發生結果之非瞬態位元錯誤。
記憶體130的ECC管理器134管理發生在陣列136之該等記憶體資源中的一或多個錯誤。在記憶體130中該ECC的使用可被稱為內部ECC或晶粒上ECC、或內部晶粒上ECC。在一般情況下,內部ECC係指ECC實現在記憶體130中,沒有由記憶體控制器120或該主機之該等ECC操作的命令或管理。陣列136包括多列資料,其可以是一或多個字組寬。對於實現ECC的記憶體130,陣列136包含有被使用來內部地把故障映射出至不同實體資源的備用記憶體資源。因此,在陣列136中的一故障可以透過把該資料映射到一不同的可用記憶體資源並校正該錯誤來恢復。在一實施例中,ECC管理器134為在陣列136中的資料實現SEC(單一錯誤校正)或SECDED(單一錯誤校正,雙錯誤偵測)的程序或操作。因此,記憶體130可以傳回經校正的資料來取代具單一錯誤的資料。
在一實施例中,記憶體控制器120可以使用來自記憶體裝置或裝置130之該晶粒上ECC的資訊來擴增系統級ECC。若在記憶體130內的ECC被稱為內部ECC,則外部
ECC可以指在一記憶體裝置130外部的ECC。該主機的ECC管理器124管理外部的ECC。在一實施例中,ECC管理器124可以監視一個別記憶體資源130的該一般健康狀況,諸如一DRAM裝置的該健康狀況。將被理解的是,由該主機對內部ECC校正細節之完全的存取將暴露DRAM廠商的故障資料,其可能包含有一DRAM製造商不希望告知之私有的資料和/或其他的資料。
在一實施例中,ECC管理器134被組配來分享有關於內部ECC選擇性的資訊,其可提供該主機使用的資訊而不洩漏每一個記憶體130的故障資料。在一實施例中,ECC管理器134只產生有關於多位元錯誤資訊之檢查位元並提供對其之存取。因不揭露有關於SBE故障的資訊,記憶體130的故障資料一般不會是公知的,但該多位元故障資訊仍可由該主機使用來校正來自硬故障所造成的多位元錯誤(例如,經由SDDC ECC)。在一實施例中,記憶體控制器120可產生會觸發記憶體130來暴露內部ECC檢查位元的一讀出命令。例如,記憶體控制器120可產生一個兩週期的讀出命令,一讀出命令之後跟著一CAS(欄位址選通)命令。在一實施例中,記憶體控制器120設置了一較高階的位址位元來觸發記憶體130以暴露該等內部ECC檢查位元。例如,記憶體控制器120可以把位址位元13設置成一邏輯1(A13=1)以從一DRAM陣列抓出ECC位元。亦可替代地使用一不同位址或控制位元的該邏輯值。在一實施例中,ECC位元的該讀出延遲將被設置成相同於讀出資料延遲以簡化交換內
部ECC資訊的該實現方式。
將被理解的是,記憶體控制器124的ECC管理器124和記憶體130的ECC管理器134可以是或包含有錯誤偵測邏輯和錯誤校正邏輯。錯誤偵測邏輯係指可偵測在讀出資料中錯誤的邏輯(如在圖2中所示的硬體邏輯)。ECC管理器134的錯誤偵測邏輯可以偵測錯誤以回應於來自記憶體控制器120的一讀出請求。錯誤校正邏輯係指可校正在讀出資料中錯誤的邏輯(如在圖2中所示的硬體邏輯)。ECC管理器134的錯誤校正邏輯可以校正讀出自陣列136之資料中的一錯誤以回應於該讀出請求。錯誤校正邏輯可被視為係選擇性地操作,因為它僅需要在偵測到有錯誤時校正錯誤。在一實施例中,該錯誤偵測邏輯可以在執行內部錯誤偵測和校正之後產生指出該讀出資料之一錯誤向量的檢查位元。因此,該等檢查位元將會對沒有錯誤的資料指出沒有錯誤,並對於具有一經校正之SBE的資料指出沒有錯誤。該等檢查位元可指出一多位元錯誤若偵測到此種錯誤的話,其提供有關於多位元錯誤的資訊給記憶體控制器120。
I/O 132可以選擇性地把該等檢查位元發送給記憶體控制器120的I/O 122若該讀出命令指出要發送該等位元的話。否則,記憶體130可以產生該內部ECC資訊而不發送該資訊給該主機。在一實施例中,記憶體控制器120的ECC管理器124被組配來並行地使用該等檢查位元作為在讀出自多個記憶體裝置130之該資料上SDDC ECC應用程式的元資料。
圖2係在一記憶體裝置處產生內部檢查位元以發送給一主機之邏輯的一實施例方塊圖。系統200係根據圖1的系統100之一記憶體子系統的一實例。主機210包含有管理存取記憶體220之一記憶體控制器或等效或替代的電路或組件。主機210在讀出自記憶體220的資料上執行外部ECC。
系統200圖示出在記憶體220中的寫入路徑232,其代表把資料從主機210寫入到記憶體220的一路徑。主機210提供資料242給記憶體220用於寫入該(等)記憶體陣列。在一實施例中,記憶體220用檢查位元產生器222產生檢查位元244以與該資料儲存在記憶體中。檢查位元244可以啟用記憶體220來校正可能會發生在寫入和讀出該(等)記憶體陣列中的一錯誤。資料242和檢查位元244可以被一起包裹成為在246中碼字,其被寫入到該等記憶體資源中。
讀出路徑234代表一路徑用於把資料從記憶體220讀出到主機210。在一實施例中,寫入路徑232和讀出路徑234至少有某些硬體組件係相同的硬體。在一實施例中,記憶體220提取出碼字252以回應於來自主機210的一讀出命令。該碼字可以包括資料254和檢查位元256。資料254和檢查位元256可以分別對應於寫入在寫入路徑232中的資料242和檢查位元244。將被理解的是讀出路徑234的錯誤校正可包括施加一XOR(互斥或)樹到一對應的H矩陣來偵測錯誤和選擇性地校正錯誤(在單一位元錯誤的情況下)。如在本領域中所理解的,一H矩陣係指一種漢明碼同位檢查矩陣,
其指出該碼字之數字要如何被線性組合成等於零。因此,該等H矩陣的列指出同位檢查式的該等係數,該同位檢查式必須被一碼字之部分的成分或數字來滿足。在一實施例中,記憶體220包括信種解碼224,其使得該記憶體可以運用檢查位元256到資料254以在該讀出資料中偵測錯誤。信種解碼224可以產生信種258用於產生該讀出資料之適當的錯誤資訊。資料254也可以被轉發到錯誤校正228用於校正一被偵測到錯誤。
在一實施例中,信種解碼224傳遞信種258給信種產生器226以產生一錯誤向量。在一實施例中,檢查位元產生器222和信種產生器226係完全地由該記憶體裝置的一對應H矩陣來完全地指定。在一實施例中,若在該讀出資料中沒有錯誤(例如,零信種258),信種產生器226產生一無錯誤信號262。在一實施例中,若在該讀出的資料中有多個錯誤(例如,不匹配一對應H矩陣之該等行中任一的非零信種258),信種產生器226產生一DUE(偵測到未校正的錯誤)信號264,其指出一偵測到的、未校正的錯誤。DUE信號264可以指出記憶體220無法由內部ECC來校正的一種多位元錯誤。
在一實施例中,若有一單一位元錯誤(例如,匹配一對應H矩陣該等行中之一的非零信種258),信種產生器226可以產生一具錯誤位置260的CE(校正錯誤)信號,其是一校正錯誤指示給錯誤校正邏輯228。錯誤校正228可以運用該校正錯誤在資料254該指定位置上以產生用於輸出到
主機210之經校正的資料266。在一實施例中,錯誤校正228還產生檢查位元268,其包括該讀出資料的該等檢查位元。
檢查位元268可以被視為是一錯誤向量,其指出在發送給主機210之該讀出資料中錯誤的狀態。將被理解的是,零信種(沒有錯誤262)狀況和導致有經校正資料266之一經校正的SBE將具有相同的檢查位元268,指出沒有錯誤給主機210。因此,檢查位元268將不會提供在記憶體220中有關於SBE的資訊,只提供多位元錯誤。
圖3係一執行錯誤校正之程序實施例的流程圖,其包含有把內部檢查位元從一記憶體裝置傳送到一主機。該圖示出的程序可根據本文所描述之任何實施例的記憶體子系統來執行。更具體地說,該流程圖圖示出用於記憶體控制器302和記憶體304的操作。一般而言,記憶體控制器302產生並發送一讀出請求給記憶體304。記憶體304將傳回資料和檢查位元以回應於該讀出請求。
在一實施例中,記憶體控制器302接收來自該主機系統之一處理器的讀出請求,312。該記憶體控制器產生一讀出命令來服務來自該主機的該讀出請求,314。在一實施例中,該記憶體控制器設置該命令的一邏輯值以從該記憶體裝置請求內部檢查位元,316。該記憶體控制器發送該讀出命令給該記憶體裝置,318。
在一實施例中,記憶體304接收並解碼該讀出命令,320。該解碼包括判定該命令是否被設置為請求該等內部檢查位元。該記憶體從該(等)記憶體陣列存取該經定址的
資料,322。在一實施例中,該記憶體執行錯誤偵測,324。若在該讀出資料中沒有錯誤,326的NONE分支,該記憶體產生出一錯誤向量其具有指出沒有錯誤的檢查位元,328。若有一單一位元錯誤,326 SBE分支,在一實施例中該記憶體校正該單一位元錯誤,330。在該單一位元錯誤被校正之後,該記憶體可以產生一錯誤向量其具有指出沒有錯誤的檢查位元,328。
若有一種多位元錯誤,326 MBE分支,在一實施例中該記憶體產生多位元錯誤的指示,332。不論是產生一多位元錯誤指示或是產生指出無錯誤的一錯誤向量,該記憶體傳回該資料和伴隨的檢查位元給該記憶體控制器,334。該記憶體控制器接收該資料和檢查位元,並使用該等檢查位元用於錯誤校正,336。
圖4係一種運算系統之一實施例的方塊圖,其中具有經交換之內部檢查位元的ECC可被實現。系統400代表根據本文所描述之任一實施例的一種運算裝置,並且可以是一膝上型電腦、一桌上型電腦、一伺服器、一遊戲或娛樂控制系統、一掃描機、影印機、印表機、路由或交換裝置、或其他電子裝置。系統400包含有處理器420,其為系統400提供指令的處理、操作管理、和執行。處理器420可以包括任何類型的微處理器、中央處理單元(CPU)、處理核心、或者其他的處理硬體來為系統400提供處理。處理器420控制系統400的整體操作,並且可以是或包括,一或多個可規劃通用或特定目的微處理器、數位信號處理器(DSP)、可
規劃控制器、特定應用積體電路(ASIC)、可規劃邏輯裝置(PLD)、或類似者、或這些裝置的一種組合。
記憶體子系統430代表系統400的主記憶體,並提供將由處理器420來執行之程式碼、或將被使用在一程序執行中資料值的暫時儲存。記憶體子系統430可包括一或多個記憶體裝置諸如唯讀記憶體(ROM)、快閃記憶體、隨機存取記憶體(RAM)之一或多個變型、或其他記憶體裝置、或這種裝置的一種組合。記憶體子系統430儲存和代管,除其他事項之外,作業系統(OS)436以提供一軟體平台用於執行在系統400中的指令。此外,其他的指令438從記憶體子系統430被儲存並執行以提供系統400的該邏輯和該處理。OS 436和指令438係由處理器420執行。記憶體子系統430包括記憶體裝置432,在那它儲存資料、指令、程式,或其他的項目。在一實施例中,記憶體子系統包括記憶體控制器434,其係一種記憶體控制器以產生和發出命令給記憶體裝置432。將被理解的是記憶體控制器434可以是處理器420的一實體部分。
處理器420和記憶體子系統430被耦合到匯流排/匯流排系統410。匯流排410係一抽象的概念,其代表任何一或多個獨立的實體匯流排、通信線路/介面、及/或點對點的連接,由適當的橋接器、適配器、及/或控制器連接。因此,匯流排410可以包括,例如,系統匯流排的一或多個、一週邊組件互連(PCI)匯流排、一超傳輸或工業標準架構(ISA)匯流排、一小型電腦系統介面(SCSI)匯流排、一通用
串列匯流排(USB)、或國際電機和電子工程師學會(IEEE)標準1394匯流排(通常被稱為「火線」)。匯流排410的該等匯流排也可以對應到在網路介面450中的介面。
系統400還包括一或多個輸入/輸出(I/O)介面440、網路介面450、一或多個內部大容量儲存裝置460、以及耦合到匯流排410的週邊裝置介面470。I/O介面440可以包括一或多個介面組件透過其一使用者與系統400(例如,視訊、音訊、及/或字母數字介面)互動。網路介面450提供系統400可與遠端裝置(例如,伺服器、其他運算裝置)透過一或多個網路進行通信的能力。網路介面450可包括一乙太網適配器、無線互連組件、USB(通用串列匯流排)、或其他有線或無線基於標準的或專有的介面。
儲存器460可以是或包括任何傳統的媒體用於以一種非依電性的方式儲存大量的資料,諸如一或多個磁性、固態、或基於光學的碟、或一種組合。儲存器460以一種持續的狀態(即,儘管系統400電力中斷該值還是被保留)保存程式碼或指令和資料462。儲存器460可被一般認為是一種「記憶體」,雖然記憶體430係該執行的或操作的記憶體以提供指令給處理器420。雖然儲存器460係非依電性的,記憶體430可包括依電性記憶體(即,若系統400的電力被中斷,該資料的該值或狀態係未定的)。
週邊介面470可以包括以上沒被具體提及之任何的硬體介面。週邊通常係指從屬連接到系統400的裝置。一從屬連接係指系統400提供其中操作執行在其上、和一使用
者與其互動之該軟體及/或硬體平台。
在一實施例中,記憶體子系統430包括ECC 480。ECC 480被展示為一單獨的元件,但代表在記憶體裝置432中內部ECC和在記憶體控制器434中的系統級ECC。該內部ECC在執行錯誤偵測和校正之後產生內部檢查位元以回應於一讀出請求。記憶體控制器434的該外部ECC可以使用該等檢查位元作為擴增在該系統等級錯誤校正之元資料。在一實施例中,系統400係一伺服器裝置。在一伺服器裝置實施例中,系統400可以是在一伺服器組配中結合在一起之多個系統中之一。例如,該伺服器可被實現為一刀鋒伺服器其在一底盤系統中與其他的刀鋒伺服器相結合。
圖5係一種行動裝置之一實施例的方塊圖,其中具有經交換之內部檢查位元的ECC可被實現。裝置500代表一行動運算裝置,諸如一運算平板電腦、一行動電話或智慧型手機、一具有無線功能的電子閱讀器、可穿戴式運算裝置、或其他的行動裝置。將被理解的是該等組件的某些係被一般地顯示,並非這一裝置之所有的組件都被圖示於裝置500中。
裝置500包括處理器510,其執行裝置500的主要處理操作。處理器510可以包括一或多個實體裝置,諸如微處理器、應用程式處理器、微控制器、可規劃邏輯裝置、或其他的處理構件。由處理器510所執行的該等處理操作包括在其上應用程式及/或裝置功能被執行之一作業平台或作業系統的執行。該等處理操作包括與一人類使用者或與
其他裝置I/O(輸入/輸出)有關的操作、與電源管理有關的操作、及/或與把裝置500連接到另一裝置有關的操作。該等處理操作也可以包括與音訊I/O及/或顯示器I/O有關的操作。
在一實施例中,裝置500包括音訊子系統520,其代表與提供音訊功能給該運算裝置之相關聯的硬體(例如,音訊硬體和音訊電路)和軟體(例如,驅動程式、編解碼器)組件。音訊功能可以包括揚聲器及/或耳機輸出、以及麥克風輸入。用於這種功能的裝置可被整合到裝置500中,或被連接到裝置500。在一實施例中,藉由提供由處理器510所接收和處理之音訊命令一使用者與裝置500互動。
顯示子系統530代表為使用者提供一視覺及/或觸覺顯示用於與該運算裝置互動之硬體(例如,顯示器裝置)和軟體(例如,驅動程式)組件。顯示子系統530包括顯示介面532,其包括用於提供一顯示給一使用者之特定的螢幕或硬體裝置。在一實施例中,顯示器介面532包括分離於處理器510的邏輯以執行至少一些與該顯示器有關的處理。在一實施例中,顯示器子系統530包括可同時提供輸出和輸入兩者給使用者之一觸控螢幕裝置。在一實施例中,顯示器子系統530包括提供一輸出給一使用者之一高解晰度(HD)顯示器。高解晰度可以指具有大約100PPI(每英寸像素)或更高像素密度之顯示器,並且可以包括格式諸如全高畫質(例如,1080p)、視網膜顯示器、4K(超高畫質或UHD)、或其他。
I/O控制器540代表與一使用者互動有關的硬體裝置和軟體組件。I/O控制器540可以操作以管理係音訊子系統520及/或顯示子系統530之一部分的硬體。此外,I/O控制器540圖示為用於連接到裝置500之附加裝置的一連接點透過其一使用者可以與該系統互動。例如,可被連接到裝置500的裝置可以包含有麥克風裝置、揚聲器或立體聲系統、視訊系統或其他顯示器裝置、鍵盤或鍵板裝置、或其他的I/O裝置用於特定的應用諸如讀卡機或其他的裝置。
如以上所述,I/O控制器540可以與音訊子系統520及/或顯示器子系統530互動。例如,透過一麥克風或其他音訊裝置的輸入可以提供輸入或命令用於裝置500之一或多個應用程式或功能。另外,音訊輸出可被提供來取代顯示器輸出或除了顯示器輸出之外的輸出。在另一實例中,如果顯示器子系統包括一觸控螢幕,該顯示器裝置還充當一輸入裝置,其可以透過I/O控制器540被至少部分地管理。在裝置500上還可以有額外的按鈕或開關以提供由I/O控制器540管理的I/O功能。
在一實施例中,I/O控制器540管理裝置諸如一加速度計、相機、光感測器或其他的環境感測器、陀螺儀、全球定位系統(GPS)、或可被包括在裝置500中之其他的硬體。該輸入可以是直接使用者互動的一部分,以及對該系統提供環境輸入以影響其操作(諸如濾波雜訊、為亮度檢測調整顯示器、為相機施加閃光燈、或其他的功能)。在一實施例中,裝置500包括電源管理550,其管理電池電力使用、
電池的充電、以及與節電功能有關的操作。
記憶體子系統560包括記憶體裝置562用於儲存在裝置500中的資訊。記憶體子系統560可以包括非依電性(若該記憶體裝置的電力被中斷其狀態不改變)及/或依電性(若該記憶體裝置的電力被中斷其狀態是不確定的)記憶體裝置。記憶體560可以儲存應用程式資料、使用者資料、音樂、照片、文件、或其他資料、以及有關於系統500之應用程式和功能該執行的系統資料(不管是長期的或暫時性的)。在一實施例中,記憶體子系統560包括記憶體控制器564(其也可被認為是系統500之該控制的一部分,並有可能被認為是處理器510的一部分)。記憶體控制器564包括一排程器來產生並發出命令給記憶體裝置562。
連接570包括硬體裝置(例如,無線及/或有線連接器和通訊硬體)和軟體組件(例如,驅動程式、協定堆疊)以使得裝置500可與外部裝置進行通信。該外部裝置可以是單獨的裝置,諸如其他的運算裝置、無線存取點或基地台,以及週邊裝置諸如耳機、印表機、或其他的裝置。
連接570可以包括多個不同類型的連接。一概而論,裝置500被圖示為具有蜂巢式連接572和無線連接574。蜂巢式連接572一般係指由無線載波所提供的蜂巢式網路連接,諸如經由GSM(全球行動通信系統)或變型或衍生物、CDMA(分碼多重存取)或變型或衍生物、TDM(分時多工)或變型或衍生物、LTE(長期演進-也被稱為「4G」)、或其他蜂巢式服務標準來提供。無線連接574指的是不是蜂
巢式的無線連接,並且可以包括個人區域網路(諸如藍牙)、區域網路(諸如WiFi)、及/或廣域網路(諸如WiMAX)、或其他的無線通信。無線通信係指透過一非固體媒體透過經調變的電磁輻射的使用來傳輸資料。有線通信係透過一固體通信媒體來發生。
週邊連接580包括硬體介面和連接器、以及軟體組件(例如,驅動程式、協定堆疊)來做出週邊連接。將被理解的是裝置500可以同時係一週邊裝置(「至」582)於其他的運算裝置,以及有週邊裝置(「從」584)連接到它。裝置500通常具有一個「對接」連接器以連接到其他的運算裝置用於目的諸如管理(例如,下載及/或上傳、改變、同步)在裝置500上的內容。另外,一個對接連接器可以允許裝置500連接到允許裝置500來控制內容輸出,例如,給音訊視訊或其他系統的某些週邊裝置。
除了一專有對接連接器或其他專有的連接硬體之外,裝置500可以經由公共或基於標準的連接器做出週邊連接580。常見的類型可包括通用串列匯流排(USB)連接器(其可以包括任何數量的不同的硬體介面)、包括MiniDisplayPort(MDP)的DisplayPort、高解晰度多媒體介面(HDMI)、火線、或其他類型。
在一實施例中,記憶體子系統560包括ECC 566。ECC 566被展示為一單獨的元件,但代表在記憶體裝置562中內部ECC和在記憶體控制器564中系統級ECC。該內部ECC在執行錯誤偵測和校正之後產生內部檢查位元以
回應於一讀出請求。記憶體控制器564的該外部ECC可以使用該等檢查位元作為元資料以在該系統層級中擴增錯誤校正。
在一方面中,一種在一記憶體子系統中用於錯誤校正的方法包含有:在一記憶體裝置中執行內部錯誤偵測以偵測在讀出資料中的錯誤以回應於來自一相關聯記憶體控制器的一讀出請求;在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在該讀出資料中偵測到一錯誤;在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及提供該等檢查位元與該讀出資料給該記憶體控制器以回應於該讀出請求,該等檢查位元由該記憶體控制器使用在外部於該記憶體裝置之額外的錯誤校正中。
在一實施例中,產生指出該錯誤向量的該等檢查位元更包含有產生指出沒有錯誤的一錯誤向量以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,產生指出該錯誤向量的該等檢查位元更包含有產生指出沒有錯誤的一錯誤向量以回應於在該讀出資料中偵測到一單一位元錯誤,其中該錯誤校正操作更包含有執行單一位元錯誤校正。在一實施例中,產生指出該錯誤向量的該等檢查位元更包含有產生指出一未經校正錯誤的一錯誤向量以回應於在該讀出資料中偵測到一種多位元錯誤,其中該錯誤校正操作更包含有偵測該多位元錯誤。在一實施例中,提供該等檢查位元與該讀出資料包含有提供該等檢查位元作為用
於由該記憶體控制器在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。在一實施例中,提供該等檢查位元更包含有選擇性地提供該等檢查位元以回應於在該記憶體控制器所發出之一讀出欄位址選通(CAS)命令中一位址位元的一邏輯值。
在一方面,一種運用內部錯誤校正的記憶體裝置包含有:錯誤偵測邏輯來在一記憶體裝置中執行內部錯誤偵測以偵測在讀出資料中的錯誤以回應於來自一相關聯記憶體控制器之一讀出請求;錯誤校正邏輯來在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在讀出資料中偵測到一錯誤,並在執行內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及I/O(輸入/輸出)硬體來把該等檢查位元與該讀出資料發送給該記憶體控制器以回應於該讀出請求,該等檢查位元由該記憶體控制器使用在外部於該記憶體裝置之額外的錯誤校正中。
在一實施例中,該錯誤校正邏輯將產生指出沒有錯誤的一錯誤向量以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,該錯誤校正邏輯將產生指出沒有錯誤的一錯誤向量以回應於在該讀出資料中偵測到一單一位元錯誤,其中該錯誤校正操作更包含有執行單一位元錯誤校正。在一實施例中,該錯誤校正邏輯將產生指出一未經校正錯誤的一錯誤向量以回應於在該讀出資料中偵測到一種多位元錯誤,其中該錯誤校正操作更包含有偵測該多位元
錯誤。在一實施例中,該I/O硬體將提供該讀出資料與該等檢查位元作為用於由該記憶體控制器在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。在一實施例中,該I/O硬體將選擇性地提供該等檢查位元以回應於在該記憶體控制器所發出之一讀出欄位址選通(CAS)命令中一位址位元的一邏輯值。
在一方面中,一種在一記憶體子系統執行錯誤校正的記憶體控制器包含有:C/A(命令/位址)邏輯以產生一讀出命令至一相關聯的記憶體裝置,該讀出命令請求內部檢查位元與該讀出資料一起被傳回;耦合到該記憶體裝置之I/O(輸入/輸出)硬體以發送該讀出命令至該記憶體裝置,以致使該記憶體裝置執行內部錯誤偵測來偵測在讀出資料中的錯誤,在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在讀出資料中偵測到一錯誤,並在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及接收該等檢查位元與該讀出資料以回應於該讀出請求;以及錯誤校正邏輯以存取該等檢查位元用於外部於該記憶體裝置之額外的錯誤校正。
在一實施例中,該C/A邏輯將產生一讀出欄位址選通(CAS)命令其具有指示該記憶體裝置發送該等檢查位元的一邏輯值。在一實施例中,該I/O硬體將接收指出一未經校正錯誤的一錯誤向量以回應於在該讀出資料中偵測到一種多位元錯誤。在一實施例中,該錯誤校正邏輯將存取
該等檢查位元作為用於在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。
在一方面中,一種具有一記憶體子系統的電子裝置包含有:一記憶體控制器以產生一讀出命令來從相關聯的記憶體裝置讀出資料,該讀出命令包含有請求來自執行在該記憶體裝置之一內部錯誤校正操作的內部檢查位元以回應於該讀出命令;多個DRAM(動態隨機存取記憶體裝置)各自包含有一可定址記憶體位置的一記憶體陣列,其中該等記憶體陣列每一個可根據多種不同的粒度等級來定址,每一個DRAM包含有錯誤偵測邏輯來執行內部錯誤偵測以偵測在讀出資料中的錯誤以回應於該讀出請求;錯誤校正邏輯在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在讀出資料中偵測到一錯誤,並在執行內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及I/O(輸入/輸出)硬體來把該等檢查位元與該讀出資料發送給該記憶體控制器以回應於該讀出請求;其中該記憶體控制器將存取該等檢查位元用於外部於該DRAM之額外的錯誤校正;以及一底盤系統以把該記憶體子系統耦合到一刀鋒伺服器。
在一實施例中,該記憶體控制器更包含有C/A邏輯以產生一讀出欄位址選通(CAS)命令其具有指示該DRAM發送該等檢查位元的一邏輯值。在一實施例中,該DRAM錯誤校正邏輯將產生指出一未經校正錯誤的一錯誤
向量以回應於在該讀出資料中偵測到一種多位元錯誤。在一實施例中,該記憶體控制器更包含有錯誤校正邏輯以存取該等檢查位元作為用於在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。
在一方面中,一種在一記憶體子系統中用於錯誤校正的方法包含有:產生一讀出命令給一相關聯的記憶體裝置,該讀出命令請求內部檢查位元與該讀出資料一起被傳回;發送該讀出命令至該記憶體裝置,以致使該記憶體裝置執行內部錯誤偵測來偵測在讀出資料中的錯誤,在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在讀出資料中偵測到一錯誤,並在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及接收該等檢查位元與該讀出資料以回應於該讀出請求;以及存取該等檢查位元用於外部於該記憶體裝置之額外的錯誤校正。
在一實施例中,產生該讀出命令更包含有產生一讀出欄位址選通(CAS)命令其具有指示該記憶體裝置發送該等檢查位元的一邏輯值。在一實施例中,存取指出該錯誤向量的該等檢查位元更包含有存取指出沒有錯誤的一錯誤向量以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,存取指出該錯誤向量的該等檢查位元更包含有存取指出沒有錯誤的一錯誤向量以回應於在該讀出資料中偵測到一單一位元錯誤,並且更包含有執行單一位元錯誤校
正。在一實施例中,存取指出該錯誤向量的該等檢查位元更包含有存取指出一未經校正錯誤的一錯誤向量以回應於在該讀出資料中偵測到一種多位元錯誤,並且更包含有偵測該多位元錯誤。在一實施例中,存取該等檢查位元與該讀出資料包含有存取該等檢查位元作為用於在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。
在一方面中,一種用於在一記憶體子系統中進行錯誤校正的設備包含有:用於在一記憶體裝置中執行內部錯誤偵測的構件以偵測在讀出資料中的錯誤以回應於來自一相關聯記憶體控制器的一讀出請求;用於在該讀出資料上選擇性地執行一內部錯誤校正操作的構件以回應於在該讀出資料中偵測到一錯誤;用於在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元的構件;以及用於提供該等檢查位元與該讀出資料給該記憶體控制器以回應於該讀出請求的構件,該等檢查位元由該記憶體控制器使用在外部於該記憶體裝置之額外的錯誤校正中。
在一實施例中,用於產生指出該錯誤向量的該等檢查位元之該等構件更包含有用於產生指出沒有錯誤的一錯誤向量的構件以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,用於產生指出該錯誤向量的該等檢查位元之該等構件更包含有用於產生指出沒有錯誤的一錯誤向量
的構件以回應於在該讀出資料中偵測到一單一位元錯誤,其中該錯誤校正操作更包含有執行單一位元錯誤校正。在一實施例中,用於產生指出該錯誤向量的該等檢查位元之該等構件更包含有用於產生指出一未經校正錯誤的一錯誤向量的構件以回應於在該讀出資料中偵測到一種多位元錯誤,其中該錯誤校正操作更包含有偵測該多位元錯誤。在一實施例中,用於提供該等檢查位元與該讀出資料之該等構件包含有構件用於提供該等檢查位元作為用於由該記憶體控制器在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。在一實施例中,用於提供該等檢查位元之該等構件更包含有用於選擇性地提供該等檢查位元的構件以回應於在該記憶體控制器所發出之一讀出欄位址選通(CAS)命令中一位址位元的一邏輯值。
在一方面,一製造產品包含有具內容儲存在其上之一電腦可讀取儲存媒體,當其被存取時提供用於執行操作的指令,該等操作包含有:在一記憶體裝置中執行內部錯誤偵測以偵測在讀出資料中的錯誤以回應於來自一相關聯記憶體控制器的一讀出請求;在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在該讀出資料中偵測到一錯誤;在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及提供該等檢查位元與該讀出資料給該記憶體控制器以回應於該讀出請求,該等檢查位元由該記憶體控制器使用在外部於該記憶體裝置
之額外的錯誤校正中。
在一實施例中,用於產生指出該錯誤向量之該等檢查位元的該內容更包含有用於產生指出沒有錯誤的一錯誤向量的內容以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,用於產生指出該錯誤向量之該等檢查位元的該內容更包含有用於產生指出沒有錯誤的一錯誤向量的內容以回應於在該讀出資料中偵測到一單一位元錯誤,其中該錯誤校正操作更包含有執行單一位元錯誤校正。在一實施例中,用於產生指出該錯誤向量之該等檢查位元的該內容更包含有用於產生指出一未經校正錯誤之一錯誤向量的內容以回應於在該讀出資料中偵測到一種多位元錯誤,其中該錯誤校正操作更包含有偵測該多位元錯誤。在一實施例中,用於提供該等檢查位元與該讀出資料的該內容包含有內容用於提供該等檢查位元作為由該記憶體控制器在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。在一實施例中,用於提供該等檢查位元的該內容更包含有用於選擇性地提供該等檢查位元的內容以回應於在該記憶體控制器所發出之一讀出欄位址選通(CAS)命令中一位址位元的一邏輯值。
在一方面中,一種在一記憶體子系統中用於錯誤校正的設備包含有:用於產生一讀出命令給一相關聯的記憶體裝置的構件,該讀出命令請求內部檢查位元與該讀出資料一起被傳回;用於發送該讀出命令至該記憶體裝置的
構件,以致使該記憶體裝置執行內部錯誤偵測來偵測在讀出資料中的錯誤,在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在讀出資料中偵測到一錯誤,並在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及接收該等檢查位元與該讀出資料以回應於該讀出請求;以及用於存取該等檢查位元用於外部於該記憶體裝置之額外的錯誤校正的構件。
在一實施例中,用於產生該讀出命令的該等構件更包含有用於產生一讀出欄位址選通(CAS)命令的構件其具有指示該記憶體裝置發送該等檢查位元的一邏輯值。在一實施例中,用於存取指出該錯誤向量的該等檢查位元的該等構件更包含有用於存取指出沒有錯誤的一錯誤向量的構件以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,用於存取指出該錯誤向量之該等檢查位元的該等構件更包含有用於存取指出沒有錯誤的一錯誤向量的構件以回應於在該讀出資料中偵測到一單一位元錯誤,並且更包含有用於執行單一位元錯誤校正的構件。在一實施例中,用於存取指出該錯誤向量之該等檢查位元的該等構件更包含有用於存取指出一未經校正錯誤的一錯誤向量的構件以回應於在該讀出資料中偵測到一種多位元錯誤,並且更包含有用於偵測該多位元錯誤的構件。在一實施例中,用於存取該等檢查位元與該讀出資料的該等構件包含有構件用於存取該等檢查位元作為用在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正
(SDDC)錯誤檢查及校正(ECC)操作的元資料。
在一方面,一製造產品包含有具內容儲存在其上之一電腦可讀取儲存媒體,當其被存取時提供用於執行操作的指令,該等操作包含有:產生一讀出命令給一相關聯的記憶體裝置,該讀出命令請求內部檢查位元與該讀出資料一起被傳回;發送該讀出命令至該記憶體裝置,以致使該記憶體裝置執行內部錯誤偵測來偵測在讀出資料中的錯誤,在該讀出資料上選擇性地執行一內部錯誤校正操作以回應於在讀出資料中偵測到一錯誤,並在執行該內部錯誤偵測和校正之後為該讀出資料產生指出一錯誤向量的檢查位元;以及接收該等檢查位元與該讀出資料以回應於該讀出請求;以及存取該等檢查位元用於外部於該記憶體裝置之額外的錯誤校正。
在一實施例中,用於產生該讀出命令的該內容更包含有內容用於產生一讀出欄位址選通(CAS)命令其具有指示該記憶體裝置發送該等檢查位元的一邏輯值。在一實施例中,用於存取指出該錯誤向量的該等檢查位元的該內容更包含有用於存取指出沒有錯誤的一錯誤向量的內容以回應於在該讀出資料中沒偵測到錯誤。在一實施例中,用於存取指出該錯誤向量之該等檢查位元的該內容更包含有用於存取指出沒有錯誤的一錯誤向量的內容以回應於在該讀出資料中偵測到一單一位元錯誤,並且更包含有用於執行單一位元錯誤校正的內容。在一實施例中,用於存取指出該錯誤向量之該等檢查位元的該內容更包含有用於存取
指出一未經校正錯誤的一錯誤向量的內容以回應於在該讀出資料中偵測到一種多位元錯誤,並且更包含有用於偵測該多位元錯誤的內容。在一實施例中,用於存取該等檢查位元與該讀出資料的該內容包含有內容用於存取該等檢查位元作為在該讀出資料連接來自一附加記憶體裝置之並行資料上所執行之一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料。
如本文所圖示的流程圖提供各種處理操作順序的實例。該等流程圖可以指出將由一軟體或韌體程序來執行的操作,以及實體的操作。在一實施例中,一流程圖可以說明一有限狀態機(FSM)的狀態,其可以以硬體及/或軟體來實現。雖然圖示出一種特定的序列或順序,但除非另有說明,該等操作的順序可以被修改。因此,該等圖示的實施例應被理解為只是一示例,且該程序可以以不同的順序來執行,並且一些操作可被平行地執行。另外,一或多個動作可以在各種實施例中被省略;因此,並非所有的動作都在每一個實施例中被需要。其他的處理流程也是有可能的。
就在本文中所描述之各種操作或功能的程度而言,它們可以被描述或定義為軟體碼、指令、組配、及/或資料。該內容可以是直接可執行的(「物件」或「可執行」形式)、原始碼、或差異碼(「差量」或「補丁」程式碼)。本文所描述實施例之該軟體內容的提供可經由具有內容儲存於其上的製造物品、或經由操作一通信介面的一種方法
以把該資料經由該通信介面來發送。一種機器可讀取儲存媒體可致使一機器執行所描述的功能或操作,並且包含任何以一種可由一機器(例如,運算裝置、電子系統、等等)來存取的形式來儲存資訊的機制,諸如可記錄/不可紀錄的體(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光儲存媒體、快閃記憶體裝置、等等)。一通信介面包含有介接一固線式、無線的、光學、等等媒體之任一的機制以通信到另一裝置,諸如一記憶體匯流排介面、一處理器匯流排介面、一網際網路連接、一碟控制器、等等。該通信介面的組配可以藉由提供組配參數及/或發送信號來製備該通信介面,以提供描述該軟體內容的一資料信號。該通信介面可以經由一或多個發送到該通信介面的命令或信號來存取。
本文中所描述的各種組件可以是用於執行所描述之操作或功能的構件。本文中所描述的每一個組件包括軟體、硬體、或它們的一種組合。該等組件可以被實現為軟體模組、硬體模組、特定目的硬體(例如,特定應用硬體、特定應用積體電路(ASIC、數位信號處理器(DSP)、等等)、嵌入式控制器、固線式電路、等等。
除了本說明書的描述之外,可以對本發明所公開的實施例和實現方式進行多種修改而不脫離其範圍。因此,在本文中的該圖說和實例應被理解係為說明性的,而不是限制性的意義。本發明的範圍應當只由參考到下面的申請專利範圍來度量。
100‧‧‧系統
110‧‧‧處理器
120‧‧‧記憶體控制器
122、132‧‧‧I/O
124、134‧‧‧ECC管理器
130‧‧‧記憶體
136‧‧‧陣列
Claims (20)
- 一種用於在一記憶體子系統中錯誤校正的方法,其包含有下列步驟:在一記憶體裝置中執行內部錯誤偵測以回應於來自一相關聯記憶體控制器的一讀出請求而偵測在讀出資料中的錯誤,該內部錯誤偵測係以於該記憶體裝置中產生之內部檢查位元而被執行;回應於以該內部檢查位元在該讀出資料中偵測到一錯誤而對該讀出資料選擇性地執行一內部錯誤校正操作;在執行該內部錯誤偵測和校正之後為該讀出資料產生可指出一錯誤向量的檢查位元;以及回應於該讀出請求而提供該等檢查位元與該讀出資料給該記憶體控制器,該等檢查位元由該記憶體控制器在於該記憶體裝置外部之額外的錯誤校正中使用。
- 如請求項1之方法,其中,產生可指出該錯誤向量之該等檢查位元之步驟更包含下列步驟:回應於在該讀出資料中沒偵測到錯誤而產生可指出沒有錯誤的一錯誤向量。
- 如請求項1之方法,其中,產生可指出該錯誤向量之該等檢查位元之步驟更包含下列步驟:回應於在該讀出資料中偵測到一單一位元錯誤而產生可指出沒有錯誤的一錯誤向量,其中,該錯誤校正操作更包含有執行單一 位元錯誤校正的步驟。
- 如請求項1之方法,其中,產生可指出該錯誤向量之該等檢查位元之步驟更包含下列步驟:回應於在該讀出資料中偵測到一種多位元錯誤而產生指出一未經校正錯誤的一錯誤向量,其中,該錯誤校正操作更包含偵測該多位元錯誤的步驟。
- 如請求項1之方法,其中,提供該等檢查位元與該讀出資料之步驟包含下列步驟:提供該等檢查位元作為用於一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料,該單一裝置資料校正錯誤檢查及校正操作係由該記憶體控制器對關連於來自一附加記憶體裝置之並行讀出資料的該讀出資料執行。
- 如請求項1之方法,其中,提供該等檢查位元之步驟更包含下列步驟:回應於一位址位元的一邏輯值而選擇性地提供該等檢查位元,該位址位元在由該記憶體控制器所發出之一讀出欄位址選通(CAS)命令中。
- 一種可運用內部錯誤校正的記憶體裝置,其包含有:一錯誤偵測電路,其用於在一記憶體裝置中執行內部錯誤偵測以回應於來自一相關聯記憶體控制器之一讀出請求而偵測出在讀出資料中的錯誤,該內部錯誤偵測係以於該記憶體裝置內產生之內部檢查位元而被執行;一錯誤校正電路,其用於回應於以該內部檢查位元在讀出資料中偵測到一錯誤而對該讀出資料選擇性地 執行一內部錯誤校正操作,並且在執行內部錯誤偵測和校正之後,為該讀出資料產生可指出一錯誤向量的檢查位元;以及I/O(輸入/輸出)硬體,其用以回應於該讀出請求而將該等檢查位元與該讀出資料發送給該記憶體控制器,該等檢查位元由該記憶體控制器在於該記憶體裝置外部之額外的錯誤校正中使用。
- 如請求項7之記憶體裝置,其中,該錯誤校正邏輯要產生可回應於在該讀出資料中沒偵測到錯誤而指出沒有錯誤的一錯誤向量。
- 如請求項7之記憶體裝置,其中,該錯誤校正邏輯要產生可回應於在該讀出資料中偵測到一單一位元錯誤而指出沒有錯誤的一錯誤向量,其中,該錯誤校正操作更包含有單一位元錯誤校正的實行。
- 如請求項7之記憶體裝置,其中,該錯誤校正邏輯可回應於在該讀出資料中偵測到一種多位元錯誤而產生可指出一未經校正錯誤的一錯誤向量,其中,該錯誤校正操作更包含偵測該多位元錯誤。
- 如請求項7之記憶體裝置,其中,該I/O硬體可提供該讀出資料與該等檢查位元作為用於一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料,該單一裝置資料校正錯誤檢查及校正操作係由該記憶體控制器對關連於來自一附加記憶體裝置之並行讀出資料的該讀出資料執行。
- 如請求項7之記憶體裝置,其中,該I/O硬體可回應於一位址位元的一邏輯值而選擇性地提供該等檢查位元,該位址位元在由該記憶體控制器所發出之一讀出欄位址選通(CAS)命令中。
- 一種在一記憶體子系統執行錯誤校正的記憶體控制器,其包含有:C/A(命令/位址)電路,用於產生一讀出(Read)命令至一相關聯的記憶體裝置,該讀出命令包括關於內部檢查位元要與讀出資料一起被傳回之一請求,該內部檢查位元要由該記憶體裝置產生並且用於在該記憶體裝置內之內部錯誤偵測;耦合到該記憶體裝置之I/O(輸入/輸出)硬體,用於發送該讀出命令至該記憶體裝置,以致使該記憶體裝置執行內部錯誤偵測以偵測出在讀出資料中的錯誤,用於回應於在讀出資料中偵測到一錯誤而對該讀出資料選擇性地執行一內部錯誤校正操作,並且用於在執行該內部錯誤偵測和校正之後為該讀出資料產生可指出一錯誤向量的檢查位元;以及用於回應於該讀出請求而接收該等檢查位元與該讀出資料;以及一錯誤校正電路,用於存取該等檢查位元以用於在於該記憶體裝置外部之額外的錯誤校正中。
- 如請求項13之記憶體控制器,其中,該C/A邏輯可產生一讀出欄位址選通(CAS)命令,其具有指示該記憶體裝置發送該等檢查位元的一邏輯值。
- 如請求項13之記憶體控制器,其中,該I/O硬體可回應於在該讀出資料中偵測到一種多位元錯誤而接收可指出一未經校正錯誤的一錯誤向量。
- 如請求項13之記憶體控制器,其中,該錯誤校正邏輯可存取該等檢查位元以作為用於一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料,該單一裝置資料校正錯誤檢查及校正操作係對關連於來自一附加記憶體裝置之並行讀出資料的該讀出資料上執行。
- 一種具有一記憶體子系統的電子裝置,其包含:一記憶體控制器,用於產生一讀出命令以從相關聯的記憶體裝置讀出資料,該讀出命令包括用於內部檢查位元的一請求,該內部檢查位元來自在該記憶體裝置處回應於該讀出命令而執行之一內部錯誤校正操作;多個DRAM(動態隨機存取記憶體)裝置,各自包括一記憶體位置可定址的一記憶體陣列,各者,其中,該等記憶體陣列可根據多種不同的粒度等級來定址,該等DRAM裝置包括有一錯誤偵測電路,用於回應於該讀出命令而執行內部錯誤偵測以偵測在讀出資料中的錯誤,該內部錯誤偵測係以於該DRAM裝置中產生之內部檢查位元而被執行;一錯誤校正電路,用於回應於以該內部檢查位元在讀出資料中偵測到一錯誤而對該讀出資料選擇性地執行一內部錯誤校正操作,並且用於在執行內部錯誤 偵測和校正之後,為該讀出資料產生可指出一錯誤向量的檢查位元;以及I/O(輸入/輸出)硬體,用於回應於該讀出請求而將該等檢查位元與該讀出資料發送給該記憶體控制器;其中,該記憶體控制器可存取用於在該等DRAM裝置外部之額外的錯誤校正中的該等檢查位元;以及一底盤系統,用於將該記憶體子系統與一刀鋒伺服器耦合。
- 如請求項17之電子裝置,其中,該記憶體控制器更包括有C/A邏輯,用於產生一讀出欄位址選通(CAS)命令,其具有指示該DRAM裝置去發送該等檢查位元的一邏輯值。
- 如請求項17之電子裝置,其中,該DRAM錯誤校正邏輯可回應於在該讀出資料中偵測到一種多位元錯誤而產生可指出一未經校正錯誤的一錯誤向量。
- 如請求項17之電子裝置,其中,該記憶體控制器更包括錯誤校正邏輯,用於存取該等檢查位元以作為用於一單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料,該單一裝置資料校正(SDDC)錯誤檢查及校正(ECC)操作的元資料係對關連於來自一附加記憶體裝置之並行讀出資料的該讀出資料執行。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/670,413 US9811420B2 (en) | 2015-03-27 | 2015-03-27 | Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC) |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201638966A TW201638966A (zh) | 2016-11-01 |
TWI605460B true TWI605460B (zh) | 2017-11-11 |
Family
ID=56975578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105104802A TWI605460B (zh) | 2015-03-27 | 2016-02-18 | 自晶粒上動態隨機存取記憶體(ram)錯誤校正碼(ecc)擷取選擇性資訊的技術 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9811420B2 (zh) |
KR (1) | KR102552933B1 (zh) |
CN (1) | CN107430537B (zh) |
TW (1) | TWI605460B (zh) |
WO (1) | WO2016160274A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI749691B (zh) * | 2019-08-28 | 2021-12-11 | 美商美光科技公司 | 用於內容可定址記憶體之錯誤校正 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9904591B2 (en) | 2014-10-22 | 2018-02-27 | Intel Corporation | Device, system and method to restrict access to data error information |
US9740558B2 (en) | 2015-05-31 | 2017-08-22 | Intel Corporation | On-die ECC with error counter and internal address generation |
US9817714B2 (en) | 2015-08-28 | 2017-11-14 | Intel Corporation | Memory device on-die error checking and correcting code |
US9852809B2 (en) * | 2015-12-28 | 2017-12-26 | Micron Technology, Inc. | Test mode circuit for memory apparatus |
US9891864B2 (en) | 2016-01-19 | 2018-02-13 | Micron Technology, Inc. | Non-volatile memory module architecture to support memory error correction |
EP3453022B1 (en) | 2016-05-02 | 2022-07-06 | INTEL Corporation | Internal error checking and correction (ecc) with extra system bits |
US10120749B2 (en) * | 2016-09-30 | 2018-11-06 | Intel Corporation | Extended application of error checking and correction code in memory |
KR20190054533A (ko) | 2017-11-14 | 2019-05-22 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
KR102449346B1 (ko) | 2017-12-12 | 2022-10-04 | 삼성전자주식회사 | 메모리 장치의 내부 상태에 따라 메모리 컨트롤러의 동작을 가변하는 메모리 시스템 |
US20190042358A1 (en) * | 2018-02-06 | 2019-02-07 | Intel Corporation | Shared parity check for correcting memory errors |
CN108600043A (zh) * | 2018-04-02 | 2018-09-28 | 郑州云海信息技术有限公司 | 连接服务器和控制端的方法、服务器Memory功能模块测试方法 |
US10692560B2 (en) | 2018-06-06 | 2020-06-23 | Intel Corporation | Periodic calibrations during memory device self refresh |
US10719397B2 (en) | 2018-06-08 | 2020-07-21 | Samsung Electronics Co., Ltd. | System, device and method for storage device assisted low-bandwidth data repair |
CN113626235A (zh) * | 2018-06-28 | 2021-11-09 | 华为技术有限公司 | 容错处理的方法、装置和服务器 |
KR20200058048A (ko) | 2018-11-19 | 2020-05-27 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 구비하는 메모리 시스템 |
CN109862076B (zh) * | 2018-12-30 | 2022-05-03 | 贝壳技术有限公司 | 一种业务数据交互方法、装置和系统 |
DE112020000036T5 (de) * | 2019-01-22 | 2021-01-21 | Advantest Corporation | Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm unter verwendung eines pufferspeichers |
US10872010B2 (en) * | 2019-03-25 | 2020-12-22 | Micron Technology, Inc. | Error identification in executed code |
US11237903B2 (en) * | 2019-06-25 | 2022-02-01 | Intel Corporation | Technologies for providing ECC pre-provisioning and handling for cross-point memory and compute operations |
CN112289365B (zh) * | 2019-07-24 | 2024-02-23 | 华邦电子股份有限公司 | 半导体存储器装置 |
US11294766B2 (en) | 2019-08-13 | 2022-04-05 | Micron Technology, Inc. | Coordinated error correction |
KR20210089016A (ko) | 2020-01-07 | 2021-07-15 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 시스템 |
CN111310891A (zh) * | 2020-01-20 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种卷积运算方法、装置、设备及存储介质 |
US11314589B2 (en) | 2020-05-15 | 2022-04-26 | Intel Corporation | Read retry to selectively disable on-die ECC |
KR20210149314A (ko) * | 2020-06-02 | 2021-12-09 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
US11170869B1 (en) | 2020-06-04 | 2021-11-09 | Western Digital Technologies, Inc. | Dual data protection in storage devices |
US11907544B2 (en) * | 2020-08-31 | 2024-02-20 | Micron Technology, Inc. | Automated error correction with memory refresh |
US12086026B2 (en) | 2021-03-17 | 2024-09-10 | Micron Technology, Inc. | Multiple error correction code (ECC) engines and ECC schemes |
US20210224155A1 (en) * | 2021-04-08 | 2021-07-22 | Intel Corporation | Reduction of latency impact of on-die error checking and correction (ecc) |
US11789817B2 (en) * | 2021-04-26 | 2023-10-17 | Micron Technology, Inc. | Error correction for internal read operations |
CN117581211A (zh) * | 2021-12-13 | 2024-02-20 | 英特尔公司 | 基于置信因子、基于故障感知分析的不可校正错误的系统内减轻 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100272708B1 (ko) * | 1997-12-30 | 2000-11-15 | 전주범 | D-vhs시스템에서 셔플링을 이용한 디지털 데이터의 코딩/디코딩 방법 |
US6044483A (en) * | 1998-01-29 | 2000-03-28 | International Business Machines Corporation | Error propagation operating mode for error correcting code retrofit apparatus |
WO2005101207A1 (en) * | 2004-04-14 | 2005-10-27 | Koninklijke Philips Electronics N.V. | Data handling device that corrects errors in a data memory |
US7099221B2 (en) * | 2004-05-06 | 2006-08-29 | Micron Technology, Inc. | Memory controller method and system compensating for memory cell data losses |
US7322002B2 (en) | 2004-05-26 | 2008-01-22 | Micron Technology, Inc. | Erasure pointer error correction |
US7444579B2 (en) | 2005-04-28 | 2008-10-28 | Micron Technology, Inc. | Non-systematic coded error correction |
US7774684B2 (en) | 2006-06-30 | 2010-08-10 | Intel Corporation | Reliability, availability, and serviceability in a memory device |
US7755961B2 (en) * | 2006-07-07 | 2010-07-13 | Rao G R Mohan | Memories with selective precharge |
US7958427B1 (en) * | 2007-03-30 | 2011-06-07 | Link—A—Media Devices Corporation | ECC with out of order completion |
US8136008B1 (en) * | 2007-03-30 | 2012-03-13 | Link—A—Media Devices Corporation | ECC with out of order completion |
US20080288712A1 (en) | 2007-04-25 | 2008-11-20 | Cornwell Michael J | Accessing metadata with an external host |
US8006166B2 (en) | 2007-06-12 | 2011-08-23 | Micron Technology, Inc. | Programming error correction code into a solid state memory device with varying bits per cell |
KR100888842B1 (ko) * | 2007-06-28 | 2009-03-17 | 삼성전자주식회사 | 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법 |
US8086936B2 (en) | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US7934052B2 (en) * | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
US8737129B2 (en) * | 2008-11-14 | 2014-05-27 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and read method thereof |
JP2010146654A (ja) * | 2008-12-19 | 2010-07-01 | Toshiba Corp | メモリ装置 |
US8438453B2 (en) * | 2009-05-06 | 2013-05-07 | Apple Inc. | Low latency read operation for managed non-volatile memory |
US8255620B2 (en) * | 2009-08-11 | 2012-08-28 | Texas Memory Systems, Inc. | Secure Flash-based memory system with fast wipe feature |
KR101602939B1 (ko) | 2009-10-16 | 2016-03-15 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
WO2011094454A2 (en) * | 2010-01-27 | 2011-08-04 | Fusion-Io, Inc. | Apparatus, system, and method for determining a read voltage threshold for solid-state storage media |
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 |
US8402349B2 (en) * | 2010-12-06 | 2013-03-19 | Apple Inc. | Two dimensional data randomization for a memory |
US8484542B2 (en) * | 2011-02-08 | 2013-07-09 | Sandisk Technologies Inc. | Data recovery using additional error correction coding data |
KR101739878B1 (ko) | 2011-02-22 | 2017-05-26 | 삼성전자주식회사 | 컨트롤러, 이의 동작방법, 및 상기 컨트롤러를 포함한 메모리 시스템 |
US9318166B2 (en) * | 2011-07-22 | 2016-04-19 | SanDisk Technologies, Inc. | Systems and methods of storing data |
WO2013147794A1 (en) | 2012-03-29 | 2013-10-03 | Intel Corporation | Enhanced storage of metadata utilizing improved error detection and correction in computer memory |
US9146856B2 (en) | 2012-04-10 | 2015-09-29 | Micron Technology, Inc. | Remapping and compacting in a memory device |
US8839073B2 (en) * | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
CN103578535B (zh) * | 2012-07-23 | 2016-06-15 | 华邦电子股份有限公司 | 用于读取nand快闪存储器的方法和设备 |
US9009566B2 (en) | 2012-09-12 | 2015-04-14 | Macronix International Co., Ltd. | Outputting information of ECC corrected bits |
CN202930048U (zh) * | 2012-10-30 | 2013-05-08 | 深圳市江波龙电子有限公司 | 闪存及包含该闪存的存储设备 |
US9026888B2 (en) | 2012-12-21 | 2015-05-05 | Intel Corporation | Method, system and apparatus for providing access to error correction information |
US9329943B2 (en) * | 2013-01-08 | 2016-05-03 | Symantec Corporation | Methods and systems for instant restore of system volume |
US9367391B2 (en) | 2013-03-15 | 2016-06-14 | Micron Technology, Inc. | Error correction operations in a memory device |
US10115174B2 (en) | 2013-09-24 | 2018-10-30 | 2236008 Ontario Inc. | System and method for forwarding an application user interface |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
KR102210327B1 (ko) | 2014-08-21 | 2021-02-01 | 삼성전자주식회사 | 에러 알림 기능이 있는 메모리 장치 |
US9558066B2 (en) | 2014-09-26 | 2017-01-31 | Intel Corporation | Exchanging ECC metadata between memory and host system |
-
2015
- 2015-03-27 US US14/670,413 patent/US9811420B2/en not_active Expired - Fee Related
-
2016
- 2016-02-18 TW TW105104802A patent/TWI605460B/zh not_active IP Right Cessation
- 2016-03-07 CN CN201680012438.9A patent/CN107430537B/zh active Active
- 2016-03-07 KR KR1020177023554A patent/KR102552933B1/ko active IP Right Grant
- 2016-03-07 WO PCT/US2016/021142 patent/WO2016160274A1/en active Application Filing
-
2017
- 2017-10-03 US US15/724,222 patent/US10496473B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI749691B (zh) * | 2019-08-28 | 2021-12-11 | 美商美光科技公司 | 用於內容可定址記憶體之錯誤校正 |
US11436071B2 (en) | 2019-08-28 | 2022-09-06 | Micron Technology, Inc. | Error control for content-addressable memory |
US11789797B2 (en) | 2019-08-28 | 2023-10-17 | Micron Technology, Inc. | Error control for content-addressable memory |
Also Published As
Publication number | Publication date |
---|---|
US10496473B2 (en) | 2019-12-03 |
CN107430537A (zh) | 2017-12-01 |
WO2016160274A1 (en) | 2016-10-06 |
CN107430537B (zh) | 2021-08-24 |
KR102552933B1 (ko) | 2023-07-10 |
KR20170129703A (ko) | 2017-11-27 |
US20180024878A1 (en) | 2018-01-25 |
US9811420B2 (en) | 2017-11-07 |
US20160283318A1 (en) | 2016-09-29 |
TW201638966A (zh) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI605460B (zh) | 自晶粒上動態隨機存取記憶體(ram)錯誤校正碼(ecc)擷取選擇性資訊的技術 | |
CN107924698B (zh) | Dram设备、错误校正管理的方法和存储器控制器 | |
CN107430538B (zh) | 基于错误类型的ecc的动态应用 | |
US10872011B2 (en) | Internal error checking and correction (ECC) with extra system bits | |
TWI541642B (zh) | 在記憶體與主機系統之間交換錯誤校正碼元資料之技術 | |
US10025685B2 (en) | Impedance compensation based on detecting sensor data | |
US10120749B2 (en) | Extended application of error checking and correction code in memory | |
US9697094B2 (en) | Dynamically changing lockstep configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |