TW202143040A - 記憶體控制器、記憶體系統以及記憶體模組 - Google Patents
記憶體控制器、記憶體系統以及記憶體模組 Download PDFInfo
- Publication number
- TW202143040A TW202143040A TW110100521A TW110100521A TW202143040A TW 202143040 A TW202143040 A TW 202143040A TW 110100521 A TW110100521 A TW 110100521A TW 110100521 A TW110100521 A TW 110100521A TW 202143040 A TW202143040 A TW 202143040A
- Authority
- TW
- Taiwan
- Prior art keywords
- error
- syndrome
- memory
- correctable
- parity
- Prior art date
Links
Images
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/1068—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 sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
-
- 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
- G06F11/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- 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/1044—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 with specific ECC/EDC distribution
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用以控制記憶體模組的記憶體控制器,記憶體控制器包含錯誤校正碼(ECC)引擎、用以控制ECC引擎的中央處理單元以及錯誤管理電路。ECC引擎對來自記憶體模組的讀取碼字集執行ECC解碼以在讀取操作中產生第一校正子及第二校正子,基於第一校正子及第二校正子來校正使用者資料集中的可校正錯誤,且向錯誤管理電路提供與可校正錯誤相關聯的第二校正子。錯誤管理電路計數與經由讀取操作偵測到的可校正錯誤相關聯的錯誤位址,藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子,基於計數及累積的第二校正子來判定可校正錯誤的屬性,且判定與可校正錯誤相關聯的記憶體區上的錯誤管理策略。
Description
一些實例實施例是關於記憶體,且更特定言之,是關於記憶體控制器、包含記憶體控制器的記憶體系統以及/或記憶體模組。
可使用半導體,例如矽(Si)、鍺(Ge)、砷化鎵(GaAs)、磷化銦(InP)及/或類似者來實施記憶體裝置。記憶體裝置通常在揮發性記憶體裝置與非揮發性記憶體裝置之間劃分。
揮發性記憶體裝置是指在電源關閉時丟失所儲存資料的記憶體裝置。另一方面,非揮發性記憶體裝置是指在電源關閉時保留所儲存資料的記憶體裝置。由於作為一種揮發性記憶體裝置的動態隨機存取記憶體(dynamic random access memory;DRAM)具有較高的存取速度,因此DRAM廣泛地用作計算系統的工作記憶體、緩衝記憶體、主記憶體及/或類似者。
近年來,在一種類型的記憶體模組中設置多個DRAM,例如,數個封裝晶片設置於印刷電路板(諸如雙行記憶體模組(dual in-line memory module;DIMM))上。需要或期望有效地校正及/或管理記憶體模組中出現的錯誤。
一些實例實施例提供一種記憶體控制器,所述記憶體控制器能夠有效地管理記憶體模組中出現的錯誤。
一些實例實施例提供一種記憶體系統,所述記憶體系統包含能夠有效地管理記憶體模組中出現的錯誤的記憶體控制器。
一些實例實施例提供一種記憶體模組,所述記憶體模組能夠有效地管理記憶體模組中出現的錯誤。
根據一些實例實施例,一種記憶體控制器包含記憶體控制器包括:錯誤校正碼(error correction code;ECC)引擎電路;中央處理單元(central processing unit;CPU),經組態以控制ECC引擎;以及錯誤管理電路。記憶體控制器電路經組態以:對來自記憶體模組的讀取碼字集執行ECC解碼以產生第一校正子及第二校正子,第一校正子及第二校正子產生於讀取操作中;基於第一校正子及第二校正子來校正讀取的碼字集中的使用者資料集中的可校正錯誤;向錯誤管理電路提供與可校正錯誤相關聯的第二校正子;計數與經由多個讀取操作偵測到的可校正錯誤相關聯的錯誤位址;藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子;基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性;以及判定與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略,至少一個記憶體區與多個資料晶片相關聯。
根據一些實例實施例,一種記憶體系統包含:記憶體模組,包含多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片;及記憶體控制器電路,經組態以控制記憶體模組。記憶體控制器電路錯誤校正碼(ECC)引擎;中央處理單元(CPU),經組態以控制ECC引擎;以及錯誤管理電路。記憶體控制器電路經組態以:對來自記憶體模組的讀取碼字集執行ECC解碼以在讀取操作中產生第一校正子及第二校正子;基於第一校正子及第二校正子來校正讀取碼字集中的使用者資料集中的可校正錯誤;計數與經由多個讀取操作偵測到的可校正錯誤相關聯的錯誤位址;累積與可校正錯誤相關聯的第二校正子以儲存第二校正子;基於計數的結果與第二校正子的累積的比較來判定可校正錯誤的屬性;以及判定多個資料晶片的與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
根據一些實例實施例,一種記憶體模組包含:多個資料晶片,經組態以儲存使用者資料集及元資料;第一奇偶校驗晶片及第二奇偶校驗晶片,經組態以分別儲存第一奇偶校驗資料及第二奇偶校驗資料,第一奇偶校驗資料及奇偶校驗資料基於使用者資料集及元資料產生;以及緩衝晶片,經組態以基於自外部記憶體控制器提供的命令及位址將使用者資料集及元資料提供至多個資料晶片,且經組態以將第一奇偶校驗資料及第二奇偶校驗資料分別提供至第一奇偶校驗晶片及第二奇偶校驗晶片。緩衝晶片包含:錯誤校正碼(ECC)引擎電路;記憶體管理電路,經組態以控制ECC引擎;以及錯誤管理電路。 ECC引擎電路經組態以:對來自多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片的讀取碼字集執行ECC解碼,以在讀取操作中產生第一校正子及第二校正子;基於第一校正子及第二校正子來校正讀取碼字集中的使用者資料集中的可校正錯誤;以及向錯誤管理電路提供與可校正錯誤相關聯的第二校正子。錯誤管理電路經組態以:計數與經由多個讀取操作偵測到的可校正錯誤相關聯的錯誤位址;藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子;基於計數的結果與第二校正子的累積的比較來判定可校正錯誤的屬性;以及判定多個資料晶片的與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
因此,錯誤管理電路可計數與可校正錯誤相關聯的錯誤位址,可藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子,可基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性,且可判定多個資料晶片的與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
將參考隨附圖式在下文中更充分地描述實例實施例。在隨附圖式中,類似附圖標號可指類似元件。
圖1為示出根據一些實例實施例的記憶體系統的方塊圖。
參考圖1,記憶體系統20可包含記憶體控制器100及記憶體模組MM。記憶體模組MM包含多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb。多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb包含多個資料晶片200a至資料晶片200k及第一奇偶校驗晶片200pa以及第二奇偶校驗晶片200pb。記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb中的每一者可稱作半導體記憶體裝置。
記憶體控制器100可控制記憶體系統20的總體操作。記憶體控制器100可控制主機與多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb之間的總體資料交換。舉例而言,記憶體控制器100可回應於來自主機的請求而將資料寫入多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb且/或自多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb讀取資料。
替代地或另外,記憶體控制器100可向多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb發出操作命令以用於控制多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb。
在一些實例實施例中,多個記憶體晶片200a至記憶體晶片200k、記憶體晶片200pa以及記憶體晶片200pb中的每一者包含揮發性記憶體單元,諸如動態隨機存取記憶體(DRAM)。
在一些實例實施例中,資料晶片200a至資料晶片200k的數目可為16。然而,資料晶片200a至資料晶片200k的數目不限於此,且可多於或少於16,且可能為二的冪或可能不為二的冪。在一些實例實施例中,資料晶片200a至資料晶片200k中的每一者可稱作資料記憶體,且奇偶校驗晶片200pa及奇偶校驗晶片200pb中的每一者可稱作錯誤校正碼(ECC)記憶體或冗餘記憶體。
記憶體控制器100將位址ADDR及命令CMD傳輸至記憶體模組MM,且可自記憶體模組MM交換碼字集SCW。
記憶體控制器100可包含錯誤校正碼(ECC)引擎130,且ECC引擎130可對使用者資料集及元資料執行ECC編碼以便使用奇偶校驗產生矩陣來產生奇偶校驗資料集,且可向記憶體模組MM提供在記憶體系統20的寫入操作中包含使用者資料集、元資料以及奇偶校驗資料集的碼字集SCW。使用者資料集可儲存於資料晶片200a至資料晶片200k中,元資料及奇偶校驗資料集的第一部分可儲存於第一奇偶校驗晶片200pa中,且奇偶校驗資料集的第二部分可儲存於第二奇偶校驗晶片200pb中。
替代地或另外,ECC引擎130可使用奇偶校驗核對矩陣自記憶體模組MM讀取碼字集SCW執行ECC解碼以產生第一校正子及第二校正子,且可基於第一校正子及第二校正子校正碼字集SCW的使用者資料集中的可校正錯誤。
替代地或另外,記憶體控制器100可更包含錯誤管理電路(error managing circuit;EMC)400。錯誤管理電路400可為ECC引擎130的一部分或可與ECC引擎130分離。錯誤管理電路400可計數與在多個讀取操作中偵測到的可校正錯誤相關聯的錯誤位址,可藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子,可基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性,且可判定多個資料晶片的與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
錯誤管理電路400可基於可校正錯誤的數目與藉由參考累積的第二校正子的參考值的比較來判定錯誤管理策略。舉例而言,當以符號為單位的錯誤的數目超出藉由累積第二校正子所獲得的參考值時,錯誤管理電路400可防止或降低可校正錯誤累積的可能性,且可藉由修復記憶體區來防止或降低由於可校正錯誤的累積而引起的不可校正錯誤的出現的可能性。
圖2為示出根據實例實施例的圖1的記憶體系統中的記憶體控制器的方塊圖。
參考圖2,記憶體控制器100包含中央處理單元(CPU)110、主機介面120、資料暫存器125、ECC引擎130、命令緩衝器190、位址緩衝器195以及錯誤管理電路400。ECC引擎130包含ECC編碼器140、ECC解碼器150以及記憶體(ECC記憶體)180。
主機介面120自主機接收請求REQ及使用者資料集SDT,產生與使用者資料集SDT相關聯的元資料MDT,將使用者資料集SDT提供至資料暫存器125且將元資料MDT提供至ECC編碼器140。資料暫存器125將使用者資料集SDT連續地(及/或依序及/或串列)輸出至ECC引擎130。
ECC編碼器140可使用奇偶校驗產生矩陣對使用者資料集SDQ及元資料MDT執行ECC編碼以產生第一碼字集SCW1。
ECC解碼器150可使用奇偶校驗核對矩陣對第二碼字集SCW2執行ECC解碼以將解碼狀態旗標DSF輸出至CPU 110且產生第一校正子及第二校正子。ECC解碼器150可校正以符號為單位的第二碼字集SCW2中的使用者資料集中的可校正錯誤,且可將校正的使用者資料集C_SDQ(或未偵測到錯誤時的使用者資料集)提供至CPU 110。ECC解碼器150可向錯誤管理電路400提供與可校正錯誤相關聯的第二校正子SDR_M及與出現可校正錯誤的符號相關聯的錯誤符號資訊。
記憶體180可儲存奇偶校驗產生矩陣及奇偶校驗核對矩陣。
CPU接收使用者資料集SDQ及/或校正的使用者資料集C_SDQ,且控制ECC引擎130、命令緩衝器190及/或位址緩衝器195。命令緩衝器190儲存對應於請求REQ的命令CMD且在CPU 110的控制下將命令CMD傳輸至記憶體模組MM。
位址緩衝器195儲存位址ADDR且在CPU 110的控制下將位址ADDR傳輸至記憶體模組MM。位址緩衝器195可向錯誤管理電路400提供與可校正錯誤相關聯的位址作為錯誤位址EADDR。
錯誤管理電路400可計數自位址緩衝器195提供的且與在記憶體模組MM上的多個讀取操作中偵測到的可校正錯誤相關聯的錯誤位址EADDR,可藉由累積第二校正子SDR_M來儲存與可校正錯誤相關聯的第二校正子SDR_M,可基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性,且可判定與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。錯誤管理電路400可基於判定的屬性向CPU 110提供警報訊號ALRT及修復訊號RPR。警報訊號ALRT可告知出現不可校正錯誤的可能性或與出現不可校正錯誤的可能性相關聯,且修復訊號RPR可與修復記憶體區相關聯。
符號可對應於自多個資料晶片中的一者讀取的使用者資料集SDQ中的多個資料位元。舉例而言,在使用者資料集SDQ中,自一個資料晶片讀取的資料單元可稱為符號。
圖3示出根據一些實例實施例的對應於圖1的記憶體系統中的多個叢發長度的資料集。
參考圖3,資料晶片200a至資料晶片200k及奇偶校驗晶片200pa以及奇偶校驗晶片200pb中的每一者可執行叢發操作。
本文中,叢發操作是指藉由依序增加及/或減少自記憶體控制器100提供的初始位址來寫入及/或讀取大量資料的操作。叢發操作的基本單元可稱為叢發長度BL。
參考圖3,對應於多個叢發長度的資料集DQ_BL1至資料集DQ_BLk中的每一者輸入至資料晶片200a至資料晶片200k中的每一者/自資料晶片200a至資料晶片200k中的每一者輸出。資料集DQ_BL1至資料集DQ_BLk中的每一者可包含對應於多個叢發長度中的每一叢發長度的資料片段DQ_BL_SG11至資料片段DQ_BL_SG18。資料集DQ_BL1至資料集DQ_BLk可對應於使用者資料集SDQ。假設在圖3中叢發長度為8;然而,實例實施例不限於此。
儘管在資料晶片200a至資料晶片200k中的每一者中執行叢發操作,但對應於多個叢發長度的元資料MDT及第一奇偶校驗資料PRTL輸入至第一奇偶校驗晶片200pa/自第一奇偶校驗晶片200pa輸出;且對應於多個叢發長度的第一子奇偶校驗資料PRTM1及第二子奇偶校驗資料PRTM2輸入至第二奇偶校驗晶片200pb/自第二奇偶校驗晶片200pb輸出。第二奇偶校驗資料PRTM包含第一子奇偶校驗資料PRTM1及第二子奇偶校驗資料PRTM2。
第一奇偶校驗資料PRTL可稱為錯誤定位器奇偶校驗資料且可與使用者資料集SDQ中的錯誤位元的位置相關聯。第二奇偶校驗資料PRTM可稱為錯誤數量奇偶校驗資料且可與使用者資料集SDQ中的錯誤位元的數量(或數目或計數值)相關聯。
圖4為示出根據實例實施例的圖1的記憶體模組中的資料晶片中的一者的方塊圖。
參考圖4,資料晶片200a可包含控制邏輯電路210、位址暫存器220、記憶庫控制邏輯電路230、列位址多工器240、行位址鎖存器250、列解碼器260、行解碼器270、記憶體單元陣列300、感測放大器單元285、輸入/輸出(I/O)閘控電路290、資料輸入/輸出(I/O)緩衝器295以及/或更新計數器245。資料晶片200a可包含上述中的每一者的單個或多個。
記憶體單元陣列300可包含第一記憶庫陣列310至第八記憶庫陣列380(例如,第一記憶庫陣列310、第二記憶庫陣列320、第三記憶庫陣列330、第四記憶庫陣列340、第五記憶庫陣列350、第六記憶庫陣列360、第七記憶庫陣列370以及第八記憶庫陣列380)。
列解碼器260可包含分別耦接至第一記憶庫陣列310至第八記憶庫陣列380的第一組列解碼器260a至第八組列解碼器260h。行解碼器270可包含分別耦接至第一記憶庫陣列310至第八記憶庫陣列380的第一組行解碼器270a至第八組行解碼器270h。感測放大器單元285可包含分別耦接至第一記憶庫陣列310至第八記憶庫陣列380的第一組感測放大器285a至第八組感測放大器285h。
第一記憶庫陣列310至第八記憶庫陣列380、第一記憶庫列解碼器260a至第八記憶庫列解碼器260h、第一記憶庫行解碼器270a至第八記憶庫行解碼器270h以及第一記憶庫感測放大器285a至第八記憶庫感測放大器285h可形成第一組至第八組。第一記憶庫陣列310至第八記憶庫陣列380中的每一者可包含多個字元線WL、多個位元線BL以及形成於字元線WL與位元線BL的相交點處的多個記憶體單元MC。
儘管資料晶片200a在圖4中示出為包含八個記憶庫,但資料晶片200a可包含任何數目的記憶庫;例如,一、二、四、八、十六或三十二個記憶庫或一與三十二其間的任何數目。
位址暫存器220可自記憶體控制器100接收位址ADDR,所述位址ADDR包含記憶庫位址BANK_ADDR、列位址ROW_ADDR以及行位址COL_ADDR。位址暫存器220可將接收到的記憶庫位址BANK_ADDR提供至記憶庫控制邏輯電路230,可將接收到的列位址ROW_ADDR提供至列位址多工器240,且可將接收到的行位址COL_ADDR提供至行位址鎖存器250。
記憶庫控制邏輯電路230可回應於記憶庫位址BANK_ADDR而產生記憶庫控制訊號。可回應於記憶庫控制訊號而激活對應於記憶庫位址BANK_ADDR的第一記憶庫列解碼器260a至第八記憶庫列解碼器260h中的一者,且可回應於記憶庫控制訊號而激活對應於記憶庫位址BANK_ADDR的第一記憶庫行解碼器270a至第八記憶庫行解碼器270h中的一者。
列位址多工器240可自位址暫存器220接收列位址ROW_ADDR,且可自更新計數器245接收更新列位址REF_ADDR。列位址多工器240可將列位址ROW_ADDR或更新列位址REF_ADDR選擇性地輸出為列位址RA。自列位址多工器240輸出的列位址RA可施加至第一記憶庫列解碼器260a至第八記憶庫列解碼器260h。
第一記憶庫列解碼器260a至第八記憶庫列解碼器260h中的激活的一者可解碼自列位址多工器240輸出的列位址RA,且可激活對應於列位址RA的字元線WL。舉例而言,激活的記憶庫列解碼器可產生字元線驅動電壓,且可將字元線驅動電壓施加至對應於列位址RA的字元線WL。
行位址鎖存器250可自位址暫存器220接收行位址COL_ADDR,且可暫時儲存接收到的行位址COL_ADDR。在一些實例實施例中,在叢發模式中,行位址鎖存器250可產生自接收到的行位址COL_ADDR遞增的行位址。行位址鎖存器250可將暫時儲存的或產生的行位址施加至第一記憶庫行解碼器270a至第八記憶庫行解碼器270h。
第一記憶庫行解碼器270a至第八記憶庫行解碼器270h中的激活的一者可解碼自行位址鎖存器250輸出的行位址COL_ADDR,且可控制I/O閘控電路290以輸出對應於行位址COL_ADDR的資料。
I/O閘控電路290可包含用於閘控輸入/輸出資料的電路。I/O閘控電路290可更包含用於儲存自第一記憶庫陣列310至第八記憶庫陣列380輸出的資料的讀取資料鎖存器,且亦可包含用於將資料寫入第一記憶庫陣列310至第八記憶庫陣列380的寫入控制裝置。
待自第一記憶庫陣列310至第八記憶庫陣列380中的一者讀取的資料可藉由耦接至自其中讀取資料的一個記憶庫陣列的感測放大器來感測,且可儲存於讀取資料鎖存器中。
在ECC引擎130對資料(例如碼字CW)執行ECC解碼之後,儲存於讀取資料鎖存器中的資料可經由資料I/O緩衝器295提供至記憶體控制器100。待寫入第一記憶庫陣列310至第八記憶庫陣列380中的一者中的資料可自記憶體控制器100提供至資料I/O緩衝器295。資料I/O緩衝器295可將資料集DQ_BL提供至I/O閘控電路290。
控制邏輯電路210可控制資料晶片200a的操作。舉例而言,控制邏輯電路210可產生用於資料晶片200a的控制訊號以執行寫入操作及/或讀取操作。控制邏輯電路210可包含解碼自記憶體控制器100接收到的命令CMD的命令解碼器211及設置資料晶片200a的操作模式的模式暫存器212。根據一些實例實施例,本文中描述為由控制邏輯電路210執行的操作可由處理電路執行。
奇偶校驗晶片200pa及奇偶校驗晶片200pb中的每一者可具有與資料晶片200a相同或實質上相同的組態。奇偶校驗晶片200pa及奇偶校驗晶片200pb中的每一者可輸入/輸出對應的奇偶校驗資料。
圖5示出根據實例實施例的圖4的資料晶片的第一記憶庫陣列。
參考圖5,第一記憶庫陣列310包含多個字元線WL1至字元線WL2m(其中m為大於或等於二的自然數)、多個位元線BTL1至位元線BTL2n(其中n為可與m或可不與m相同的大於或等於二的自然數)以及多個記憶體單元MC,所述多個記憶體單元MC安置於字元線WL1至字元線WL2m與位元線BTL1至位元線BTL2n之間的相交點處或其附近。在一些實例實施例中,多個記憶體單元MC中的每一者可包含DRAM單元結構。與多個記憶體單元MC連接的多個字元線WL1至字元線WL2m可稱為第一記憶庫陣列310的列,且與多個記憶體單元MC連接的多個位元線BL1至位元線BL2n可稱為第一記憶庫陣列310的行。
圖6為示出根據一些實例實施例的圖2中ECC引擎的實例的方塊圖。
參考圖6,ECC引擎130包含ECC編碼器140、ECC解碼器150以及記憶體180。記憶體180可稱為ECC記憶體。儘管ECC編碼器140及CC解碼器150示出為單獨組件,但實例實施例不限於此。
記憶體180連接至ECC編碼器140及ECC解碼器150,且可儲存奇偶校驗產生矩陣PGM及奇偶校驗核對矩陣PCM。
ECC編碼器140可藉由使用奇偶校驗產生矩陣PCM對使用者資料集SDQ及元資料MBT執行ECC編碼以產生包含第一奇偶校驗資料PRTL及第二奇偶校驗資料PRTM的奇偶校驗資料集SPRT,且可輸出包含使用者資料集SDQ、元資料MBT以及奇偶校驗資料集SPRT的第一碼字集SCW1。
ECC解碼器150可自記憶體模組MM接收包含使用者資料集SDQ、元資料MBT以及奇偶校驗資料集SPRT的第二碼字集SCW2。ECC解碼器150連接至暫存器185且接收錯誤資訊訊號EIS。 ECC解碼器150可藉由使用奇偶校驗核對矩陣PCM對第二碼字集SCW2執行ECC解碼以產生第一校正子及第二校正子,可基於第一校正子及第二校正子校正以符號為單位的第二碼字集SCW2中的使用者資料集中的可校正錯誤,且可輸出指示正在校正可校正錯誤的解碼狀態旗標DSF,同時輸出校正的使用者資料集C_SDQ(或未偵測到錯誤時的使用者資料集)。ECC解碼器150可將與可校正錯誤及錯誤符號資訊ESBI相關聯的第二校正子SDR_M提供至圖2中的錯誤管理電路400。
ECC解碼器150可執行ECC解碼以產生第一校正子及第二校正子,可藉由使用錯誤資訊訊號EIS及第二校正子來基於第一校正子及第二校正子來校正不可校正的使用者資料集SDQ中的多個錯誤位元,且可輸出校正的使用者資料集C_SDQ。
圖7示出儲存於圖6的ECC引擎中的記憶體中的奇偶校驗產生矩陣。
參考圖7,奇偶校驗產生矩陣PGM可包含第一奇偶校驗子矩陣HS11
、第二奇偶校驗子矩陣HS12
以及第三奇偶校驗子矩陣HS13
。
第一奇偶校驗子矩陣HS11
包含對應於資料晶片200a至資料晶片200k的多個偏移子矩陣OSM1至偏移子矩陣OSM2k以及對應於奇偶校驗晶片200pa及奇偶校驗晶片200pb的兩個零子矩陣ZSM1及零子矩陣ZSM2。偏移子矩陣OSM1至偏移子矩陣OSM2k及零子矩陣ZSM1以及零子矩陣ZSM2中的每一者包含p×p個元素(其中p為大於一的自然數)。
第二奇偶校驗子矩陣HS12
包含多個(k+1)單元子矩陣ISM及多個(k+1)零子矩陣ZSM。(k+1)單元子矩陣ISM及(k+1)零子矩陣ZSM中的每一者包含p×p個元素。另外,交替地配置(k+1)單元子矩陣ISM及(k+1)零子矩陣ZSM。
第三奇偶校驗子矩陣HS13
包含多個(k+1)零子矩陣ZSM及多個(k+1)單元子矩陣ISM。(k+1)零子矩陣ZSM及(k+1)單元子矩陣ISM中的每一者包含p×p個元素。另外,交替地配置(k+1)零子矩陣ZSM及(k+1)單元子矩陣ISM。
圖8示出用於在第一奇偶校驗子矩陣中產生偏移子矩陣的基礎偏移子矩陣的實例。
參考圖8,基礎偏移子矩陣OSMb可包含(p+3)高水準元素(在圖8中用「1」表示)。可基於質性多項式(諸如x16
+x12
+x3
+x+1)獲得基礎偏移子矩陣OSMb。若第p階質性多項式變化,則偏移子矩陣OSM1至偏移子矩陣OSM2k中的每一者的元素可變化。
可藉由基礎偏移子矩陣OSMb的冪獲得偏移子矩陣OSM1至偏移子矩陣OSM2k中的偏移子矩陣OSM1。可藉由將偏移子矩陣OSM1及由基礎偏移子矩陣OSMb的冪所獲得的子矩陣乘以偏移來獲得偏移子矩陣OSM1至偏移子矩陣OSM2k中的偏移子矩陣OSM2。
另外,與偏移子矩陣OSM1至偏移子矩陣OSM2k的一個(記憶體)晶片相關聯的兩個偏移子矩陣OSM(2i-1)與偏移子矩陣OSM(2i)之間的間隙可為規則的。此處,i為一至八中的一者。舉例而言,可藉由將偏移子矩陣OSM3及由基礎偏移子矩陣OSMb的冪所獲得的子矩陣乘以偏移來獲得偏移子矩陣OSM4。
圖9示出圖7中的奇偶校驗產生矩陣中的零子矩陣的實例。
參考圖9,在對應於零子矩陣ZSM中的每一者的零子矩陣ZSM中,元素中的每一者具有零。
圖10示出圖7中的奇偶校驗產生矩陣中的單元(或識別)子矩陣的實例。
參考圖10,對應於單元子矩陣ISM中的每一者的元子矩陣ISM包含在對角線方向上安置的p個高水準元素。除了高水準元素之外的其他元素中的每一者具有零。
在圖7至圖10中,p可對應於16,且可對應於在一個叢發操作期間輸入至資料晶片200a至資料晶片200k中的每一者/自資料晶片200a至資料晶片200k中的每一者輸出的資料集DQ_BL的位元的數目。另外,第一奇偶校驗子矩陣HS11
中的非零元素的數目可大於第二奇偶校驗子矩陣HS12
中的非零元素的數目或第三奇偶校驗子矩陣HS13
中的非零元素的數目。
圖11示出根據一些實例實施例的圖6的ECC引擎中的ECC編碼器的實例。
參考圖11,ECC編碼器140包含錯誤定位器奇偶校驗產生器141、第一錯誤數量奇偶校驗產生器143、第二錯誤數量奇偶校驗產生器145以及緩衝器147。
錯誤定位器奇偶校驗產生器141藉由使用第一奇偶校驗子矩陣HS11
對使用者資料集SDQ及元資料MDT執行ECC編碼以產生第一奇偶校驗資料PRTL,所述錯誤定位器奇偶校驗產生器141用於判定錯誤的位置且將第一奇偶校驗資料PRTL提供至緩衝器147。第一奇偶校驗資料PRTL可稱為第一奇偶校驗資料。
錯誤定位器奇偶校驗產生器141可藉由對具有第一奇偶校驗子矩陣HS11
的使用者資料集SDQ及元資料MDT執行矩陣乘法操作來產生第一奇偶校驗資料PRTL。若使用者資料集SDQ及元資料MDT的向量表示對應於ms
且錯誤定位器奇偶校驗資料PRTL的向量表示對應於pL
,則pL
= HS11 [ms 0] T
。此處,T表示轉置矩陣,且0
表示零矩陣。
第一錯誤數量奇偶校驗產生器143可藉由使用第二奇偶校驗子矩陣HS12對使用者資料集SDQ及元資料MDT執行ECC編碼以產生第一子奇偶校驗資料PRTM1,所述第一錯誤數量奇偶校驗產生器143用於判定位元錯誤的數目且將第一錯誤數量奇偶校驗資料PRTM1提供至緩衝器147。第一子奇偶校驗資料PRTM1可稱為第一錯誤數量奇偶校驗資料。
第一錯誤數量奇偶校驗產生器143可藉由對具有第二奇偶校驗子矩陣HS12
的使用者資料集SDQ及元資料MDT執行矩陣乘法操作來產生第一子奇偶校驗資料PRTM1。若第一子奇偶校驗資料PRTM1的向量表示對應於pM1
,則pM1
= HS12 [ms pL
0] T
。
第二錯誤數量奇偶校驗產生器145藉由使用第三奇偶校驗子矩陣HS13
對使用者資料集SDQ及元資料MDT執行ECC編碼以產生第二子奇偶校驗資料PRTM2,所述第二錯誤數量奇偶校驗產生器145用於判定位元錯誤的數目且將第二錯誤數量奇偶校驗資料PRTM2提供至緩衝器147。第二子奇偶校驗資料PRTM2可稱為第二錯誤數量奇偶校驗資料。
第二錯誤數量奇偶校驗產生器145可藉由對具有第三奇偶校驗子矩陣HS13
的使用者資料集SDQ及元資料MDT執行矩陣乘法操作來產生第二子奇偶校驗資料PRTM2。若第二錯誤數量奇偶校驗資料PRTM2的向量表示對應於pM2
,則pM2
= HS13 [ms pL
0] T
。第一子奇偶校驗資料PRTM1及第二子奇偶校驗資料PRTM2可包含於第二奇偶校驗資料PRTM中。
緩衝器147接收使用者資料集SDQ、元資料MDT、第一奇偶校驗資料PRTL、第一子奇偶校驗資料PRTM1以及第二子奇偶校驗資料PRTM2,且向記憶體模組MM提供碼字集SCW1,所述碼字集SCW1包含使用者資料集SDQ、元資料MDT、第一奇偶校驗資料PRTL、第一子奇偶校驗資料PRTM1以及第二子奇偶校驗資料PRTM2。
圖12示出儲存於圖6的ECC引擎中的記憶體中的奇偶校驗核對矩陣的實例。
參考圖12,奇偶校驗核對矩陣PCM包含第一奇偶校驗子矩陣HS21
、第二奇偶校驗子矩陣HS22
以及第三奇偶校驗子矩陣HS23
。
第一奇偶校驗子矩陣HS21
包含對應於資料晶片200a至資料晶片200k的多個偏移子矩陣OSM1至偏移子矩陣OSM2k以及對應於奇偶校驗晶片200pa及奇偶校驗晶片200pb的兩個零子矩陣ZSM1及零子矩陣ZSM2。偏移子矩陣OSM1至偏移子矩陣OSM2k以及零子矩陣ZSM1及零子矩陣ZSM2中的每一者包含p×p個元素。
第二奇偶校驗子矩陣HS22
包含多個(k+1)單元子矩陣ISM及多個(k+1)零子矩陣ZSM。(k+1)單元子矩陣ISM及(k+1)零子矩陣ZSM中的每一者包含p×p個元素。另外,交替地配置(k+1)單元子矩陣ISM及(k+1)零子矩陣ZSM。
第三奇偶校驗子矩陣HS23
包含多個(k+1)零子矩陣ZSM及多個(k+1)單元子矩陣ISM。(k+1)零子矩陣ZSM及(k+1)單元子矩陣ISM中的每一者包含p×p個元素。另外,交替地配置(k+1)零子矩陣ZSM及(k+1)單元(單位)子矩陣ISM。
參考圖7及圖12,第一奇偶校驗子矩陣HS21
與第一奇偶校驗子矩陣HS11
相同,且第二奇偶校驗子矩陣HS22
與第二奇偶校驗子矩陣HS12
相同。第三奇偶校驗子矩陣HS23
與第三子矩陣HS13
相同。另外,圖6中的ECC編碼器141及ECC解碼器150共用奇偶校驗產生矩陣PGM且分別執行ECC編碼及ECC解碼。奇偶校驗產生矩陣PGM可等效於圖6中的奇偶校驗核對矩陣PCM。
圖13示出圖12中的偏移子矩陣的實例。
參考圖3,可藉由基礎偏移子矩陣OSMb的冪乘以偏移ofs來獲得偏移子矩陣OSM。
參考圖12及圖13,第一奇偶校驗子矩陣HS21
中的非零元素的數目可大於第二奇偶校驗子矩陣HS22
中的非零元素的數目或第三奇偶校驗子矩陣HS23
中的非零元素的數目。因此,圖6中的ECC解碼器150藉由使用第二奇偶校驗子矩陣HS22
及第三奇偶校驗子矩陣HS23
來產生第一子校正子及第二子校正子,且可藉由求和第一子校正子及第二子校正子來產生第二校正子。
圖14示出根據一些實例實施例的圖6的ECC引擎中的ECC解碼器的實例。
參考圖14,ECC解碼器150包含第一錯誤數量校正子產生器151、第二錯誤數量校正子產生器152、錯誤定位器校正子產生器153、資料校正器155以及解碼狀態旗標產生器156。
第一錯誤數量校正子產生器151藉由對讀取碼字集SCW2及第二奇偶校驗子矩陣HS22
執行矩陣乘法操作來產生指示錯誤位元的數目的第一子校正子SDR_M1。若讀取碼字集SCW2的向量表示對應於r T
且第一子校正子SDR_M1的向量表示對應於SM01
,則SM01
= HS22 r T
。
第二錯誤數量校正子產生器152藉由對讀取碼字集SCW2及第三奇偶校驗子矩陣HS23
執行矩陣乘法操作來產生指示錯誤位元的數目的第二子校正子SDR_M2。若第二子校正子SDR_M2的向量表示對應於SM02
,則SM02
= HS23 r T
。第一子校正子SDR_M1及第二子校正子SDR_M2包含於第二校正子SDR_M(亦即錯誤數量校正子)中。
錯誤定位器校正子產生器153產生指示讀取碼字集SCW2中的可校正錯誤的位置的第一校正子SDR_L,且將第一校正子SDR_L提供至資料校正器155。若第一校正子SDR_L的向量表示對應於SL
,則SL
= HS21 r T
。
當使用者資料集SDQ包含不可校正錯誤時,資料校正器155可基於第一校正子SDR_L及第二校正子SDR_M來校正讀取碼字集SCW2的使用者資料集SDQ中的以符號為單位的可校正錯誤位元,以輸出校正的使用者資料集C_SDQ或使用者資料集SDQ。另外,資料校正器155可將指示是否校正錯誤的錯誤旗標EF輸出至解碼狀態旗標產生器156。
當第一校正子SDR_L及第二校正子SDR_M指示碼字集SCW2中的使用者資料集包含可校正錯誤時,資料校正器155可向圖2中的錯誤管理電路400提供第二校正子SDR_M及與可校正錯誤相關聯的錯誤符號資訊ESBI。
解碼狀態旗標產生器156可基於第一第二校正子SDR_L、第二校正子SDR_M以及錯誤旗標EF來產生指示碼字CW2中的使用者資料集是否包含可校正錯誤或不可校正錯誤的解碼狀態旗標DSF。
具有零值的第一校正子SDR_L及具有零值的第二校正子SDR_M指示碼字CW2中的使用者資料集不包含錯誤。具有非零值的第一校正子SDR_L及具有非零值的第二校正子SDR_M指示碼字CW2中的使用者資料集包含以符號為單位的可校正錯誤。
具有零值的第一校正子SDR_L及具有非零值的第二校正子SDR_M指示碼字CW2中的使用者資料集包含使用第一校正子SDR_L及第二校正子SDR_M無法校正的不可校正錯誤。
當碼字CW2中的使用者資料集包含經由多個讀取操作偵測到的以符號為單位的可校正錯誤時,錯誤管理電路400可計數與可校正錯誤相關聯的錯誤位址,可藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子,可基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性,且可判定其中出現可校正錯誤的記憶體區上的錯誤管理策略。
圖15為示出根據實例實施例的圖2的記憶體控制器中的錯誤管理電路的實例的方塊圖。
參考圖15,錯誤管理電路400可包含錯誤計算電路405及錯誤管理器430。
錯誤計算電路405可基於指示出現可校正錯誤的符號的錯誤符號資訊ESBI來計數錯誤位址EADDR以輸出計數值CV。
錯誤管理器430可接收計數值CV及第二校正子SDR_M。錯誤管理器430可基於計數值CV來判定可校正錯誤的第一屬性(關於其中出現可校正錯誤的實體位置的屬性),可基於第一屬性及第二校正子的累積來產生用於修復至少一個記憶體區的修復訊號RPR,且可基於第二校正子的累積來預測至少一個記憶體區中的不可校正錯誤的出現以向CPU 110提供與預測相關聯的警報訊號ALRT。錯誤管理器430可將改變修復訊號RPR提供至CPU 110,且CPU 110可向MM提供待修復的位址及指定修復操作的命令。
圖16為示出根據實例實施例的圖15的錯誤管理電路中的錯誤計數電路的實例的方塊圖。
參考圖16,錯誤計算電路405可包含錯誤位址暫存器410、位址比較器415以及計數器電路420。
錯誤位址暫存器410可儲存錯誤位址EADDR及錯誤符號資訊ESBI。連接至錯誤位址暫存器410的位址比較器415可將先前錯誤位址P_EADDR與當前錯誤位址C_EADDR進行比較以輸出指示比較結果的位址比較訊號ACS,先前錯誤位址P_EADDR包含與讀取操作中的先前讀取操作相關聯的錯誤符號資訊,當前錯誤位址C_EADDR包含與當前讀取操作相關聯的錯誤符號資訊。
計數器電路420可接收位址比較訊號ACS以基於位址比較訊號ACS中的多個位元來輸出計數值CV。計數器電路420可包含第一計數器(列計數器)421、第二計數器(行計數器)423、第三計數器(記憶庫計數器)425以及第四計數器(晶片計數器)427。
第一計數器421可基於位址比較訊號ACS來輸出與記憶體區的列位址相關聯的第一子計數值R_CNT。第二計數器423可基於位址比較訊號ACS來輸出與記憶體區的行位址相關聯的第二子計數值C_CNT。第三計數器425可基於位址比較訊號ACS來輸出與記憶體區的記憶庫位址相關聯的第三子計數值BN_CNT。第四計數器427可基於位址比較訊號ACS來輸出與包含記憶體區的記憶體晶片相關聯的第四子計數值CH_CNT。
計數值CV可包含第一子計數值R_CNT、第二子計數值C_CNT、第三子計數值BN_CNT以及第四子計數值CH_CNT。錯誤管理器430可基於第一子計數值R_CNT、第二子計數值C_CNT、第三子計數值BN_CNT以及第四子計數值CH_CNT中的每一者的變化來判定記憶體區的實體屬性。
圖17示出根據實例實施例的圖16中的計數值的實例。
在圖17中,假設經由對圖3中的碼字集SCW執行的兩個讀取操作在使用者資料集SDQ中偵測到兩個可校正錯誤,與所述兩個可校正錯誤相關聯的錯誤位址EADDR中的列位址不同。
參考圖17,當與兩個可校正錯誤相關聯的錯誤位址EADDR中的列位址不同時,第一子計數值R_CNT遞增『一』。
圖18示出根據實例實施例的圖16中的錯誤位址暫存器的實例。
參考圖18,錯誤位址暫存器410可組態為圖表的形式。
索引Idx11及索引Idx12可儲存與可校正錯誤相關聯的錯誤位址資訊EAI及錯誤符號資訊ESBI。
錯誤位址暫存器410可包含第一行411及第二行413,第一行411可儲存其中出現可校正錯誤的記憶體區的記憶庫位址BA/列位址RA/行位址CA_11及記憶庫位址BA/列位址RA/行位址CA_11作為錯誤位址資訊EAI,且第二行413可儲存包含其中出現可校正錯誤的記憶體區的資料晶片的晶片標識符CID1作為錯誤符號資訊ESBI。
儲存於第一索引Idx11中的錯誤位址資訊EAI及錯誤符號資訊ESBI可提供至位址比較器415作為先前錯誤位址P_EADDR,且儲存於第二索引Idx12中的錯誤位址資訊EAI及錯誤符號資訊ESBI可提供至位址比較器415作為當前錯誤位址C_EADDR。
圖19為示出根據實例實施例的圖15的錯誤管理電路中的錯誤管理器的實例的方塊圖。
參考圖19,錯誤管理器430可包含故障屬性預測器440、校正子暫存器450、校正子累積暫存器460、不可校正錯誤(uncorrectable error;UE)判定器470、警報訊號產生器475以及修復訊號產生器480。
故障屬性預測器440可基於計數值CV判定可校正錯誤的第一屬性以產生指示第一屬性的故障屬性訊號FAS。校正子暫存器450可儲存與經由一個讀取操作所獲得的可校正錯誤相關聯的第二校正子SDR_M。
連接至校正子暫存器450的校正子累積暫存器460可藉由累積第二校正子來儲存與經由多個讀取操作所獲得的可校正錯誤相關聯的第二校正子作為校正子資訊SDRI。連接至校正子累積暫存器460的UE判定器470可基於累積的第二校正子來產生預測不可校正錯誤的出現的不可校正錯誤資訊UEI,以將不可校正錯誤資訊UEI提供至警報訊號產生器475。UE判定器470可指累積的第二校正子,可將可校正錯誤的數目與參考值進行比較,且當可校正錯誤的數目超出參考值時,可將不可校正錯誤資訊UEI提供至警報訊號產生器475。
警報訊號產生器175可基於指示在記憶體區中可出現不可校正錯誤的不可校正錯誤資訊UEI將警報訊號ALRT提供至CPU 110。修復訊號產生器480可基於故障屬性訊號FAS及累積的第二校正子將修復訊號RPR提供至CPU 110。
UE判定器470及修復訊號產生器480可指校正子累積暫存器460中的累積的第二校正子以判定與可校正錯誤相關聯的記憶體區的第二屬性。第二屬性可指示符號中的錯誤出現模式是否與叢發長度方向或資料輸入/輸出襯墊方向相關聯。第二屬性可與記憶體區中的錯誤的原因相關聯。
舉例而言,當第二屬性與叢發長度方向相關聯時,判定錯誤是由於安置於圖4中的記憶體單元陣列300中的子陣列區塊中的每一者中的子字元線驅動器的故障而出現的。舉例而言,當第二屬性與資料輸入/輸出襯墊方向相關聯時,判定錯誤是由於資料輸入且輸出的資料輸入/輸出襯墊的故障而出現的。
亦即,錯誤管理器430可基於計數值CV判定可校正錯誤的第一屬性以產生指示第一屬性的故障屬性訊號FAS,藉由累積第二校正子SDR_M,可儲存與經由一個讀取操作所獲得的可校正錯誤相關聯的第二校正子SDR_M,可儲存與經由多個讀取操作所獲得的可校正錯誤相關聯的第二校正子,可基於累積的第二校正子產生預測不可校正錯誤的出現的不可校正錯誤資訊UEI,可基於不可校正錯誤資訊UEI將警報訊號ALRT提供至CPU 110,且可基於故障屬性訊號FAS及累積的第二校正子將修復訊號RPR提供至CPU 110。
圖20示出根據實例實施例的圖19的錯誤管理器中的校正子暫存器的實例。
參考圖20,校正子暫存器450a可暫時與經由一個(當前)讀取操作偵測到的可校正錯誤相關聯的第二校正子SDR_M。校正子暫存器450a可儲存與經由當前讀取操作偵測到的可校正錯誤相關聯的第二校正子SDR_M。
當以符號為單位的可校正錯誤在使用者資料集SDQ中出現時,圖14的ECC解碼器150中的資料校正器155將第二校正子SDR_M儲存在錯誤管理電路400中,儲存於校正子暫存器450a中的第二校正子SDR_M可表示使用者資料集SDQ中的符號中的一者。可藉由在校正子暫存器450a中沿著資料輸入/輸出襯墊方向DQP及叢發長度方向BL配置第二校正子SDR_M來判定第二屬性。
圖21示出根據一些實例實施例的圖19的錯誤管理器中的校正子累積暫存器的實例。
參考圖21,校正子累積暫存器460a可累積與經由多個讀取操作所獲得的可校正錯誤相關聯的第二校正子以將累積的校正子SDR_M_ACM儲存於其中。亦即,校正子累積暫存器460a可儲存其中出現經由多個讀取操作所獲得的可校正錯誤的符號中的每一者的每一位元的錯誤計數。UE判定器470可藉由將每一位元的累積的錯誤計數與參考值進行比較來判定出現不可校正錯誤的可能性。可基於校正子累積暫存器460a中的每一位元的累積的錯誤計數來判定第二屬性。在圖21中,應注意,可校正錯誤在特定的叢發長度方向BL上反覆地出現。亦即,在圖21中,應注意,第二屬性與子字元線驅動器相關聯。
圖22為示出根據實例實施例的操作記憶體系統的方法的流程圖。
參考圖1至圖22,提供一種操作包含記憶體模組MM的記憶體系統20及控制記憶體模組MM的記憶體控制器100的方法,所述記憶體模組MM包含多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片。根據方法,記憶體控制器100中的ECC引擎130的ECC編碼器140基於奇偶校驗產生矩陣PGM對使用者資料集SDQ及元資料MDT執行ECC編碼,以產生包含第一奇偶校驗資料PRTL及第二奇偶校驗資料PRTM的奇偶校驗資料集SPRT(操作S210)。
記憶體控制器100將包含使用者資料集SDQ、元資料MDT以及奇偶校驗資料集SPRT的碼字集SCW1儲存在多個資料晶片200a至資料晶片200k、第一奇偶校驗晶片以及第二奇偶校驗晶片中(操作S220)。
記憶體控制器100可自記憶體模組MM讀取包含使用者資料集SDQ、元資料MDT以及奇偶校驗資料集SPRT的碼字集SW2(操作S230)。ECC引擎130的ECC解碼器150基於讀取碼字集SCW2及奇偶校驗核對矩陣PCM來產生第一校正子SDR_L及第二校正子SDR_M(操作S240)。
ECC解碼器150將與可校正錯誤相關聯的第二校正子SDR_M儲存在錯誤管理電路400中,同時基於第一校正子SDR_L及第二校正子SDR_M校正以符號為單位的可校正錯誤(操作S250)。錯誤管理電路400可藉由累積第二校正子來儲存與經由多個讀取操作所獲得的可校正錯誤相關聯的第二校正子SDR_M,可預測不可校正錯誤的出現且產生用於修復與可校正錯誤相關聯的記憶體區的修復訊號(操作S260),且可將修復訊號RPR提供至CPU 110。
因此,根據所述方法,錯誤管理電路400可計數與可校正錯誤相關聯的錯誤位址,可藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子,可基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性,且可判定多個資料晶片的與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
圖23為示出根據實例實施例的記憶體系統可採用的記憶體模組的方塊圖。
參考圖23,記憶體模組500包含安置於電路板501中或安裝於電路板501上的緩衝晶片590(暫存的時鐘驅動器(registered clock driver;RCD))、多個半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d、模組電阻單元560及模組電阻單元570、串列存在偵測(serial present detect;SPD)晶片580及/或功率管理積體電路(power management integrated circuit;PMIC)585。
緩衝晶片590在記憶體控制器100的控制下可控制半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d以及PMIC 585。舉例而言,緩衝晶片590可自記憶體控制器100接收位址ADDR、命令CMD、使用者資料集SDQ以及元資料MDT。
SPD晶片580可為可程式化唯讀記憶體(programmable read only memory;PROM)(例如電子可抹除PROM(electrically erasable PROM;EEPROM))。SPD晶片580可包含記憶體模組500的初始資訊及/或裝置資訊DI。在一些實例實施例中,SPD晶片580可包含記憶體模組500的初始資訊及/或裝置資訊DI,諸如模組形式、模組組態、儲存容量、模組類型、執行環境及/或類似者。
當包含記憶體模組500的記憶體系統啟動時,記憶體控制器100可自SPD晶片580讀取裝置資訊DI且可基於裝置資訊DI識別記憶體模組500。記憶體控制器100可基於來自SPD晶片580的裝置資訊DI來控制記憶體模組500。舉例而言,記憶體控制器100可基於來自SPD晶片580的裝置資訊DI來識別包含於記憶體模組500中的半導體記憶體裝置的類型。
此處,作為印刷電路板的電路板501可在與第一邊緣部分503與第二邊緣部分505之間的第一方向D1垂直的第二方向D2上延伸。第一邊緣部分503及第二邊緣部分505可在第一方向D1上延伸。
緩衝晶片590可安置於電路板501的中心上。多個半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d可配置於緩衝晶片590與第一邊緣部分503之間以及緩衝晶片590與第二邊緣部分505之間的多個列中。根據一些實例實施例,本文中描述為由緩衝晶片590執行的操作可由處理電路執行。
在此情況下,半導體記憶體裝置601a至半導體記憶體裝置601e及半導體記憶體裝置602a至半導體記憶體裝置602e可沿著緩衝晶片590與第一邊緣部分503之間的多個列配置。半導體記憶體裝置603a至半導體記憶體裝置603d及半導體記憶體裝置604a至半導體記憶體裝置604d可沿著緩衝晶片590與第二邊緣部分505之間的多個列配置。半導體記憶體裝置601a至半導體記憶體裝置601d、半導體記憶體裝置602a至半導體記憶體裝置602d、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d可稱為資料晶片,且半導體記憶體裝置601e及半導體記憶體裝置602e可分別稱為第一奇偶校驗晶片及第二奇偶校驗晶片。
緩衝晶片590可基於使用者資料集SDQ及元資料MDT產生第一奇偶校驗資料及第二奇偶校驗資料,可將使用者資料集SDQ及元資料MDT儲存在資料晶片中,可將第一奇偶校驗資料儲存在第一奇偶校驗晶片中,且可將第二奇偶校驗資料儲存在第二奇偶校驗晶片中。
緩衝晶片590可經由命令/位址傳輸線561將命令/位址訊號(例如CA)提供至半導體記憶體裝置601a至半導體記憶體裝置601e,且可經由命令/位址傳輸線563將命令/位址訊號提供至半導體記憶體裝置602a至半導體記憶體裝置602e。另外,緩衝晶片590可經由命令/位址傳輸線571將命令/位址訊號提供至半導體記憶體裝置603a至半導體記憶體裝置603d,且可經由命令/位址傳輸線573將命令/位址訊號提供至半導體記憶體裝置604a至半導體記憶體裝置604d。
命令/位址傳輸線561及命令/位址傳輸線563可共同地連接至安置為鄰近於第一邊緣部分503的模組電阻單元560,且命令/位址傳輸線571及命令/位址傳輸線573可共同地連接至安置為鄰近於第二邊緣部分505的模組電阻單元570。模組電阻單元560及模組電阻單元570中的每一者可包含連接至終端電壓Vtt的終端電阻器Rtt/2。
另外,多個半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d中的每一者或至少一者可為DRAM裝置或包含DRAM裝置。
SPD晶片580安置為鄰近於緩衝晶片590,且PMIC 585可安置於半導體記憶體裝置603d與第二邊緣部分505之間。PMIC 585可基於輸入電壓VIN產生電源電壓VDD,且可將電源電壓VDD提供至半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d。
圖24為示出根據實例實施例的圖23的記憶體模組中的緩衝晶片的實例的方塊圖。
參考圖24,緩衝晶片590可包含記憶體管理單元(memory management unit;MMU)610、ECC引擎630以及錯誤管理電路700。
MMU 610可自記憶體控制器100向半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d重複命令CMD及位址ADDR。MMU 610可包含控制單元611、命令緩衝器(CMF BUF)613以及位址緩衝器(ADDR BUF)615。控制單元611控制命令緩衝器613及位址緩衝器615以控制命令CMD及位址ADDR的緩衝時序。位址緩衝器615在控制單元511的控制下可向錯誤管理電路700提供與可校正錯誤相關聯的位址作為錯誤位址EADDR。
ECC引擎630可包含ECC編碼器640、ECC解碼器650以及記憶體680。ECC編碼器640使用奇偶校驗產生矩陣對使用者資料集SDQ及元資料MDT執行ECC編碼以在寫入操作中產生碼字集SCW11,所述碼字集SCW11包含資料集SDQ、元資料MDT、第一奇偶校驗資料PRTL以及第二奇偶校驗資料PRTM。
ECC解碼器650使用奇偶校驗核對矩陣對包含使用者資料集SDQ、元資料MDT、第一奇偶校驗資料PRTL以及第二奇偶校驗資料PRTM的碼字集SCW12執行ECC解碼以產生第一校正子及第二校正子。ECC解碼器650可基於第一校正子及第二校正子來校正碼字集SCW12中的使用者資料集SDQ中的以符號為單位的可校正錯誤,且將校正的使用者資料集提供至記憶體控制器100。ECC解碼器650可向錯誤管理電路700提供與可校正錯誤相關聯的第二校正子SDR_M及與出現可校正錯誤的符號相關聯的錯誤符號資訊SBI。
記憶體680可儲存奇偶校驗產生矩陣及奇偶校驗核對矩陣。ECC引擎630可採用圖6的ECC引擎130。
錯誤管理電路700可計數自位址緩衝器615提供的且與在記憶體模組MM上的多個讀取操作中偵測到的可校正錯誤相關聯的錯誤位址EADDR,可藉由累積第二校正子SDR_M來儲存與可校正錯誤相關聯的第二校正子SDR_M,可基於計數的結果及第二校正子的累積來判定可校正錯誤的屬性,且可判定與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。錯誤管理電路700可基於所述屬性向MMU 610提供通知出現不可校正錯誤的可能性的警報訊號ALRT。
圖25為示出根據實例實施例的圖24的緩衝晶片中的錯誤管理電路的實例的方塊圖。
參考圖25,錯誤管理電路700可包含錯誤計算電路710及錯誤管理器730。
錯誤計算電路710可基於指示其中出現可校正錯誤的符號的錯誤符號資訊ESBI來計數錯誤位址EADDR以輸出計數值CV。
錯誤管理器730可接收計數值CV及第二校正子SDR_M。錯誤管理器730可基於計數值CV來判定可校正錯誤的第一屬性(例如,關於出現可校正錯誤的實體位置的屬性),可基於第一屬性及第二校正子的累積來產生用於修復至少一個記憶體區的修復訊號RPR,且可基於第二校正子的累積來預測至少一個記憶體區中的不可校正錯誤的出現以向MMU 610提供與預測相關聯的警報訊號ALRT。錯誤管理器730可將改變修復訊號RPR提供至MMU 610,且MMU 610可向資料晶片提供待修復的位址。
錯誤計算電路710可採用圖16中的錯誤計算電路405,且錯誤管理器730可採用圖19的錯誤管理器430。因此,記憶體模組500可計數與可校正錯誤相關聯的錯誤位址,可藉由累積第二校正子來儲存與可校正錯誤相關聯的第二校正子,可基於計數的結果及第二校正子的累積來判定可校正錯誤的至少一個屬性,且可判定與可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
圖26為示出根據一些實例實施例的具有四列記憶體模組的記憶體系統的方塊圖。
參考圖26,記憶體系統800可包含記憶體控制器810及/或記憶體模組820以及記憶體模組830。儘管在圖26中描繪兩個記憶體模組,但根據一些實例實施例,在記憶體系統800中可包含更多或更少的記憶體模組。
記憶體控制器810可控制記憶體模組820及/或記憶體模組830以便執行處理器及/或主機供應的命令。記憶體控制器810可使用處理電路(例如處理器)實施且/或可經由主機、應用處理器或晶片上系統(system-on-a-chip;SoC)實施。為了訊號完整性,源極終端可藉由記憶體控制器810的匯流排840上的電阻器RTT實施。電阻器RTT可耦接至電源電壓VDDQ。記憶體控制器810可包含可將訊號傳輸至記憶體模組820及/或記憶體模組830中的至少一者的傳輸器811及可自記憶體模組820及/或記憶體模組830中的至少一者接收訊號的接收器813。記憶體控制器810可包含ECC引擎815及錯誤管理電路(EMC)817。ECC引擎815可採用圖6的ECC引擎130,且錯誤管理電路817可採用圖15的錯誤管理電路400。
因此,ECC引擎815包含ECC編碼器及ECC解碼器,且解碼器可對來自記憶體模組820及/或記憶體模組830中的至少一者的讀取碼字執行ECC解碼以產生第一校正子及第二校正子,且可向錯誤管理電路提供與可校正錯誤及第二校正子相關聯的錯誤位址。
錯誤管理電路817可基於計數錯誤位址及第二校正子的累積來判定可校正錯誤的至少一個屬性,且可判定與可校正錯誤相關聯的記憶體區上的錯誤管理策略。因此,錯誤管理電路817可防止或降低由於記憶體模組820及記憶體模組830中的累積的可校正錯誤而引起的不可校正錯誤的出現的可能性。因此,記憶體系統800可更有效地校正且管理錯誤。
記憶體模組820及記憶體模組830可稱為第一記憶體模組820及第二記憶體模組830。第一記憶體模組820及第二記憶體模組830可經由匯流排840耦接至記憶體控制器810。第一記憶體模組820及第二記憶體模組830中的每一者可對應於圖1中的記憶體模組MM。第一記憶體模組820可包含記憶體列RK1及記憶體列RK2,且第二記憶體模組830可包含記憶體列RK3及記憶體列RK4。
第一記憶體模組820及第二記憶體模組830中的每一者可包含多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片。
圖27為示出根據一些實例實施例的包含記憶體模組的行動系統的方塊圖。
參考圖27,行動系統900可包含應用處理器(application processor;AP)910、連接模組920、諸如DIMM的記憶體模組(MM)950、非揮發性記憶體裝置940、使用者介面930及/或電源970。應用處理器910可包含記憶體控制器911。記憶體控制器911可包含圖6的ECC引擎130及圖15的錯誤管理電路400。
應用處理器910可執行應用,諸如網路瀏覽器、遊戲應用、視訊播放器等中的至少一者。連接模組920可執行與外部裝置的有線及/或無線通訊。
記憶體模組950可儲存由應用處理器910處理的資料及/或操作為工作記憶體。記憶體模組950可包含多個半導體記憶體裝置(memory device;MD)951、半導體記憶體裝置952、半導體記憶體裝置953以及半導體記憶體裝置95q(其中q為大於三的正整數)及/或緩衝晶片(RCD)961。
半導體記憶體裝置951、半導體記憶體裝置952、半導體記憶體裝置953以及半導體記憶體裝置95q可包含多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片。因此,記憶體控制器911可對來自記憶體模組950的讀取的碼字執行ECC解碼以產生第一校正子及第二校正子,且可向錯誤管理電路提供與可校正錯誤及第二校正子相關聯的錯誤位址。錯誤管理電路可基於計數錯誤位址及第二校正子的累積來判定可校正錯誤的一個屬性或多個屬性,且可判定與可校正錯誤相關聯的記憶體區上的錯誤管理策略。
非揮發性記憶體裝置940可儲存用於啟動行動系統900的啟動影像。使用者介面930可包含至少一個輸入裝置,諸如小鍵盤、觸控式螢幕等,及至少一個輸出裝置,諸如揚聲器、顯示裝置等。電源970可將操作電壓供應至行動系統900。
可使用各種類型的封裝來安裝行動系統900或行動系統900的組件。
一些實例實施例可應用至包含記憶體模組及/或包含ECC引擎的記憶體控制器的各種系統。
非揮發性記憶體裝置940可儲存用於啟動行動系統900的啟動影像。使用者介面930可包含至少一個輸入裝置,諸如小鍵盤、觸控式螢幕等,及至少一個輸出裝置,諸如揚聲器、顯示裝置等。電源970可將操作電壓供應至行動系統900。
可使用各種類型的封裝來安裝行動系統900或行動系統900的至少一些組件。
一些實例實施例可應用至包含記憶體模組及/或包含ECC引擎的記憶體控制器的各種系統。
如本文中所使用,除非另外指定,否則諸如「引擎」及/或「模組」及/或「單元」的元件及/或以「-er」或「-or」結尾的元件可為或可包含:處理電路,諸如包含邏輯電路的硬體;硬體/軟體組合,諸如執行軟體的處理器;或其組合。舉例而言,處理電路系統更特定言之可包含但不限於中央處理單元(CPU)、算術邏輯單元(arithmetic logic unit;ALU)、數位訊號處理器、微電腦、場可程式化閘陣列(field programmable gate array;FPGA)、晶片上系統(SoC)、可程式化邏輯單元、微處理器、特殊應用積體電路(application-specific integrated circuit;ASIC)等。
儘管已參考其的實例實施例具體繪示及描述一些實例實施例,但所屬技術領域中具有通常知識者將理解,可在不脫離如以下申請專利範圍所定義的本揭露內容的精神及範疇的情況下在其中作出形式及細節上的各種改變。
20、800:記憶體系統
100、810、911:記憶體控制器
110:中央處理單元
120:主機介面
125:資料暫存器
130、630、815:ECC引擎
140、640:ECC編碼器
141:錯誤定位器奇偶校驗產生器
143:第一錯誤數量奇偶校驗產生器
145:第二錯誤數量奇偶校驗產生器
147:緩衝器
150、650:ECC解碼器
151:第一錯誤數量校正子產生器
152:第二錯誤數量校正子產生器
153:錯誤定位器校正子產生器
155:資料校正器
156:解碼狀態旗標產生器
180、680:記憶體
185:暫存器
190、613:命令緩衝器
195、615:位址緩衝器
200a~200k:資料晶片/記憶體晶片
200pa:第一奇偶校驗晶片/記憶體晶片
200pb:第二奇偶校驗晶片/記憶體晶片
210:控制邏輯電路
211:命令解碼器
212:模式暫存器
220:位址暫存器
230:記憶庫控制邏輯電路
240:列位址多工器
245:更新計數器
250:行位址鎖存器
260:列解碼器
260a~260h:第一組列解碼器至第八組列解碼器
270:行解碼器
270a~270h:第一記憶庫組行解碼器至第八記憶庫行解碼器
285:感測放大器單元
285a~285h:第一記憶庫組感測放大器至第八記憶庫感測放大器
290:輸入/輸出閘控電路
295:資料輸入/輸出緩衝器
300:記憶體單元陣列
310:第一記憶庫陣列
320:第二記憶庫陣列
330:第三記憶庫陣列
340:第四記憶庫陣列
350:第五記憶庫陣列
360:第六記憶庫陣列
370:第七記憶庫陣列
380:第八記憶庫陣列
400、700、817:錯誤管理電路
405、710:錯誤計算電路
410:錯誤位址暫存器
411:第一行
413:第二行
415:位址比較器
420:計數器電路
421:第一計數器
423:第二計數器
425:第三計數器
427:第四計數器
430、730:錯誤管理器
440:故障屬性預測器
450、450a:校正子暫存器
460、460a:校正子累積暫存器
470:不可校正錯誤判定器
475:警報訊號產生器
480:修復訊號產生器
500、950、MM:記憶體模組
501:電路板
503:第一邊緣部分
505:第二邊緣部分
560、570:模組電阻單元
561、563、571、573:命令/位址傳輸線
580:串列存在偵測晶片
585:功率管理積體電路
590、961、RCD:緩衝晶片
601a~601e、602a~602e、603a~603d、604a~604d、951、952、953、95q:半導體記憶體裝置
610:記憶體管理單元
611:控制單元
811:傳輸器
813:接收器
820:第一記憶體模組
820:第二記憶體模組
840:匯流排
900:行動系統
910:應用處理器
920:連接模組
930:使用者介面
940:非揮發性記憶體裝置
970:電源
ACS:位址比較訊號
ADDR:位址
ALRT:警報訊號
BA、BANK_ADDR:記憶庫位址
BL、BTL1~BTL2n:叢發長度/位元線
BN_CNT:第三子計數值
CA:命令/位址訊號
CA_11、CA_12:行位址
CID1:晶片標識符
CH_CNT:第四子計數值
CMD:命令
C_EADDR:當前錯誤位址
COL_ADDR:行位址
CV:計數值
CW、CW2:碼字
C_CNT:第二子計數值
C_SDQ:校正的使用者資料集
D1:第一方向
D2:第二方向
DI:初始資訊及/或裝置資訊
DSF:解碼狀態旗標
DQP:資料輸入/輸出襯墊
DQ_BL、DQ_BL1~DQ_BLk:資料集
DQ_BL_SG11~DQ_BL_SG18:資料片段
EADDR:錯誤位址
EAI:錯誤位址資訊
EF:錯誤旗標
EIS:錯誤資訊訊號
ESBI:錯誤符號資訊
FAS:故障屬性訊號
HS11
、HS21
:第一奇偶校驗子矩陣
HS12
、HS22
:第二奇偶校驗子矩陣
HS13
、HS23
:第三奇偶校驗子矩陣
Idx11、Idx12:索引
ISM:單元子矩陣
MBT、MDT:元資料
MC:記憶體單元
ofs:偏移
OSM1~OSM2k、OSM2、OSM3、OSM4:偏移子矩陣
OSMb:基礎偏移子矩陣
PCM:奇偶校驗核對矩陣
PGM:奇偶校驗產生矩陣
PRTL:第一奇偶校驗資料
PRTM第二奇偶校驗資料
PRTM1第一子奇偶校驗資料
PRTM2第二子奇偶校驗資料
P_EADDR先前錯誤位址
RA、ROW_ADDR:列位址
REF_ADDR:更新列位址
REQ:請求
RK1、RK2、RK3、RK4:記憶體列
RPR:修復訊號
RTT:電阻器
Rtt/2:終端電阻器
R_CNT:第一子計數值
S210、S220、S230、S240、S250、S260:操作
SCW、SCW11、SCW12:碼字集
SCW1:第一碼字集
SCW2:第二碼字集
SDQ、SDT:使用者資料集
SDRI:校正子資訊
SDR_L:第一校正子
SDR_M:第二校正子
SDR_M1:第一子校正子
SDR_M2:第二子校正子
SDR_M_ACM:累積的校正子
SPRT:奇偶校驗資料集
UEI:不可校正錯誤資訊
VDD、VDDQ:電源電壓
VIN:輸入電壓
Vtt:終端電壓
WL、WL1~WL2m、WL2、WL2m-1:字元線
ZSM、ZSM1、ZSM2:零子矩陣
本揭露的上述及其他特徵將藉由參考隨附圖式詳細描述其一些實例實施例而變得更顯而易見。
圖1為示出根據一些實例實施例的記憶體系統的方塊圖。
圖2為示出根據一些實例實施例的圖1的記憶體系統中的記憶體控制器的方塊圖。
圖3示出根據一些實例實施例的對應於圖1的記憶體系統中的多個叢發長度的資料集。
圖4為示出根據一些實例實施例的圖1的記憶體模組中的資料晶片中的一者的方塊圖。
圖5示出根據一些實例實施例的圖4的資料晶片的第一記憶庫陣列。
圖6為示出根據一些實例實施例的圖2中ECC引擎的實例的方塊圖。
圖7示出儲存於圖6的ECC引擎中的記憶體中的奇偶校驗產生矩陣。
圖8示出用於在第一奇偶校驗子矩陣中產生偏移子矩陣的基礎偏移子矩陣的實例。
圖9示出圖7中的奇偶校驗產生矩陣中的零子矩陣的實例。
圖10示出圖7中的奇偶校驗產生矩陣中的單元子矩陣的實例。
圖11示出根據一些實例實施例的圖6的ECC引擎中的ECC編碼器的實例。
圖12示出儲存於圖6的ECC引擎中的記憶體中的奇偶校驗核對矩陣的實例。
圖13示出圖12中的偏移子矩陣的實例。
圖14示出根據一些實例實施例的圖6的ECC引擎中的ECC解碼器的實例。
圖15為示出根據一些實例實施例的圖2的記憶體控制器中的錯誤管理電路的實例的方塊圖。
圖16為示出根據一些實例實施例的圖15的錯誤管理電路中的錯誤計數電路的實例的方塊圖。
圖17示出根據一些實例實施例的圖16中的計數值的實例。
圖18示出根據一些實例實施例的圖16中的錯誤位址暫存器的實例。
圖19為示出根據一些實例實施例的圖15的錯誤管理電路中的錯誤管理器的實例的方塊圖。
圖20示出根據一些實例實施例的圖19的錯誤管理器中的校正子暫存器的實例。
圖21示出根據一些實例實施例的圖19的錯誤管理器中的校正子累積暫存器的實例。
圖22為示出根據一些實例實施例的操作記憶體系統的方法的流程圖。
圖23為示出根據一些實例實施例的記憶體系統可採用的記憶體模組的方塊圖。
圖24為示出根據一些實例實施例的圖23的記憶體模組中的緩衝晶片的實例的方塊圖。
圖25為示出根據一些實例實施例的圖24的緩衝晶片中的錯誤管理電路的實例的方塊圖。
圖26為示出根據一些實例實施例的具有四列記憶體模組的記憶體系統的方塊圖。
圖27為示出根據一些實例實施例的包含記憶體模組的行動系統的方塊圖。
100:記憶體控制器
110:中央處理單元
120:主機介面
125:資料暫存器
130:ECC引擎
140:ECC編碼器
150:ECC解碼器
180:記憶體
190:命令緩衝器
195:位址緩衝器
400:錯誤位址暫存器
ADDR:位址
ALRT:警報訊號
CMD:命令
DSF:解碼狀態旗標
EADDR:錯誤位址
ESBI:錯誤符號資訊
MDT:元資料
REQ:請求
RPR:修復訊號
SCW1、SCW2:碼字集
SDQ、C_SDQ:使用者資料集
SDR_M:第二校正子
Claims (10)
- 一種記憶體控制器電路,經組態以控制記憶體模組,所述記憶體模組包含多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片,所述記憶體控制器包括: 錯誤校正碼(ECC)引擎電路; 中央處理單元(CPU),經組態以控制所述錯誤校正碼引擎電路;以及 錯誤管理電路, 其中所述記憶體控制器電路經組態以: 對來自所述記憶體模組的讀取碼字集執行錯誤校正碼解碼以產生第一校正子及第二校正子,所述第一校正子及所述第二校正子產生於讀取操作中, 基於所述第一校正子及所述第二校正子來校正所述讀取碼字集中的使用者資料集中的可校正錯誤, 向所述錯誤管理電路提供與所述可校正錯誤相關聯的所述第二校正子, 計數與經由多個讀取操作偵測到的可校正錯誤相關聯的錯誤位址, 藉由累積所述第二校正子來儲存與所述可校正錯誤相關聯的所述第二校正子, 基於所述計數的結果及所述第二校正子的所述累積來判定所述可校正錯誤的屬性,以及 判定與所述可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略,所述至少一個記憶體區與所述多個資料晶片相關聯。
- 如請求項1所述的記憶體控制器電路,其中所述記憶體控制器電路經組態以: 基於錯誤符號資訊而計數所述錯誤位址以輸出計數值,所述錯誤符號資訊指示其中出現所述可校正錯誤的符號, 基於所述計數值而判定所述可校正錯誤的第一屬性, 基於所述第一屬性及所述第二校正子的所述累積來產生用於修復所述至少一個記憶體區的修復訊號,以及 基於所述第二校正子的所述累積來預測所述至少一個記憶體區中的不可校正錯誤的出現,以向所述中央處理單元提供與所述預測相關聯的警報訊號。
- 如請求項2所述的記憶體控制器電路,其中所述錯誤管理電路包含: 錯誤位址暫存器,經組態以儲存所述錯誤位址及所述錯誤符號資訊,且所述錯誤管理電路經組態以: 將先前錯誤位址與當前錯誤位址進行比較以輸出指示所述比較的結果的位址比較訊號,所述先前錯誤位址包含與所述讀取操作中的先前讀取操作相關聯的錯誤符號資訊,所述當前錯誤位址包含與所述讀取操作中的當前讀取操作相關聯的錯誤符號資訊,以及 接收所述位址比較訊號以基於所述位址比較訊號中的多個位元而輸出所述計數值, 其中所述錯誤管理電路更包含: 第一計數器,經組態以第一輸出與所述記憶體區的列位址相關聯的第一子計數值,所述第一輸出基於所述位址比較訊號; 第二計數器,經組態以第二輸出與所述記憶體區的行位址相關聯的第二子計數值,所述第二輸出基於所述位址比較訊號; 第三計數器,經組態以第三輸出與所述記憶體區的記憶庫位址相關聯的第三子計數值,所述第三輸出基於所述位址比較訊號;以及 第四計數器,經組態以第四輸出與包含所述記憶體區的記憶體晶片相關聯的第四子計數值,所述第四輸出基於所述位址比較訊號,以及 其中所述計數值包含所述第一子計數值、所述第二子計數值、所述第三子計數值以及所述第四子計數值。
- 如請求項2所述的記憶體控制器電路,其中所述錯誤管理電路經組態以: 基於所述計數值而判定所述第一屬性以產生指示所述第一屬性的故障屬性訊號, 儲存經由一個讀取操作所獲得的與所述可校正錯誤相關聯的所述第二校正子; 藉由累積所述第二校正子來儲存經由所述多個讀取操作所獲得的與所述可校正錯誤相關聯的所述第二校正子; 基於所累積的所述第二校正子來產生預測所述不可校正錯誤的出現的不可校正錯誤資訊; 基於所述不可校正錯誤資訊將所述警報訊號提供至所述中央處理單元;以及 基於所述故障屬性訊號及所累積的所述第二校正子將所述修復訊號提供至所述中央處理單元。
- 如請求項4所述的記憶體控制器電路,其中所述錯誤管理電路經組態以回應於在所述記憶體區中出現的所述可校正錯誤的數目超出參考值而提供所述警報訊號,所述警報訊號藉由參考所累積的所述第二校正子來提供,且 其中所述錯誤管理電路經組態以基於所述故障屬性訊號及所累積的所述第二校正子來判定所述可校正錯誤的第二屬性,且 基於所述第二屬性將所述修復訊號提供至所述中央處理單元。
- 如請求項2所述的記憶體控制器電路,其中所述錯誤管理電路經組態以: 基於所述計數值而判定所述第一屬性以產生指示所述第一屬性的故障屬性訊號, 且所述錯誤管理電路包含:校正子暫存器,經組態以儲存經由一個讀取操作所獲得的與所述可校正錯誤相關聯的所述第二校正子, 校正子累積暫存器,連接至所述校正子暫存器,經組態以藉由累積所述第二校正子來儲存經由所述多個讀取操作所獲得的與所述可校正錯誤相關聯的所述第二校正子,且所述錯誤管理電路經組態以: 基於所累積的所述第二校正子來產生預測所述不可校正錯誤的出現的不可校正錯誤資訊,基於所述不可校正錯誤資訊將所述警報訊號提供至所述中央處理單元,以及 基於所述故障屬性訊號及所累積的所述第二校正子將所述修復訊號提供至所述中央處理單元,且 其中不可校正錯誤判定器經組態以提供所述不可校正錯誤資訊,以基於以符號為單位的所述可校正錯誤的數目與藉由參考所累積的所述第二校正子的參考值的比較來提供所述警報訊號。
- 如請求項1所述的記憶體控制器電路,其中所述錯誤校正碼引擎電路包含: 錯誤校正碼記憶體,經組態以儲存奇偶校驗核對矩陣;且所述錯誤校正碼引擎電路 經組態以對所述讀取碼字集執行錯誤校正碼解碼以產生所述第一校正子及所述第二校正子,且經組態以向所述錯誤管理電路提供所述第二校正子及與所述可校正錯誤相關聯的所述錯誤位址, 其中所述錯誤校正碼引擎電路經組態以回應於所述第一校正子為非零且所述第二校正子為非零而判定所述可校正錯誤出現於所述多個資料晶片中的一者中,且 其中: 所述讀取碼字集包含使用者資料集、與所述使用者資料集相關聯的元資料、與所述使用者資料集中的位元錯誤的位置相關聯的第一奇偶校驗資料以及與所述位元錯誤的數量相關聯的第二奇偶校驗資料; 自所述多個資料晶片讀取所述使用者資料集,自所述第一奇偶校驗晶片讀取所述元資料及所述第一奇偶校驗資料,且自所述第二奇偶校驗晶片讀取所述第二奇偶校驗資料;且 所述奇偶校驗核對矩陣包含第一奇偶校驗子矩陣、第二奇偶校驗子矩陣以及第三奇偶校驗子矩陣。
- 一種記憶體系統,包括: 記憶體模組,包含多個資料晶片、第一奇偶校驗晶片以及第二奇偶校驗晶片;以及 記憶體控制器電路,經組態以控制所述記憶體模組, 其中所述記憶體控制器電路錯誤校正碼(ECC)引擎; 中央處理單元(CPU),經組態以控制所述錯誤校正碼引擎;以及 錯誤管理電路, 其中所述記憶體控制器電路經組態以: 對來自所述記憶體模組的讀取碼字集執行錯誤校正碼解碼以在讀取操作中產生第一校正子及第二校正子, 基於所述第一校正子及所述第二校正子來校正所述讀取碼字集中的使用者資料集中的可校正錯誤, 計數與經由多個讀取操作偵測到的可校正錯誤相關聯的錯誤位址, 累積與所述可校正錯誤相關聯的第二校正子以儲存所述第二校正子, 基於所述計數的結果與所述第二校正子的所述累積的比較來判定所述可校正錯誤的屬性,以及 判定所述多個資料晶片的與所述可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
- 如請求項8所述的記憶體系統,其中所述記憶體控制器電路經組態以: 基於錯誤符號資訊而計數所述錯誤位址以輸出計數值,所述錯誤符號資訊指示其中出現所述可校正錯誤的符號, 基於所述計數值而判定所述可校正錯誤的第一屬性, 基於所述第一校正子及所述第二校正子的所述累積來產生用於修復所述至少一個記憶體區的修復訊號,以及 基於所述第二校正子的所述累積來預測所述至少一個記憶體區中的不可校正錯誤的出現,以向所述中央處理單元提供與所述預測相關聯的警報訊號。
- 一種記憶體模組,包括: 多個資料晶片,經組態以儲存使用者資料集及元資料; 第一奇偶校驗晶片及第二奇偶校驗晶片,經組態以分別儲存第一奇偶校驗資料及第二奇偶校驗資料,所述第一奇偶校驗資料及所述奇偶校驗資料基於所述使用者資料集及所述元資料而產生;以及 緩衝晶片,經組態以基於自外部記憶體控制器提供的命令及位址將所述使用者資料集及所述元資料提供至所述多個資料晶片,且經組態以將所述第一奇偶校驗資料及所述第二奇偶校驗資料分別提供至所述第一奇偶校驗晶片及所述第二奇偶校驗晶片, 其中所述緩衝晶片包含: 錯誤校正碼(ECC)引擎電路; 記憶體管理電路,經組態以控制所述錯誤校正碼引擎;以及 錯誤管理電路, 其中所述錯誤校正碼引擎電路經組態以: 對來自所述多個資料晶片、所述第一奇偶校驗晶片以及所述第二奇偶校驗晶片的讀取碼字集執行錯誤校正碼解碼,以在讀取操作中產生第一校正子及第二校正子; 基於所述第一校正子及所述第二校正子來校正所述讀取碼字集中的使用者資料集中的可校正錯誤;以及 向所述錯誤管理電路提供與所述可校正錯誤相關聯的所述第二校正子,且 其中所述錯誤管理電路經組態以: 計數與經由多個讀取操作偵測到的可校正錯誤相關聯的錯誤位址, 藉由累積所述第二校正子來儲存與所述可校正錯誤相關聯的第二校正子, 基於所述計數的結果與所述第二校正子的所述累積的比較來判定所述可校正錯誤的屬性,以及 判定所述多個資料晶片的與所述可校正錯誤相關聯的至少一個記憶體區上的錯誤管理策略。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200056319A KR20210138241A (ko) | 2020-05-12 | 2020-05-12 | 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈 |
KR10-2020-0056319 | 2020-05-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202143040A true TW202143040A (zh) | 2021-11-16 |
TWI773079B TWI773079B (zh) | 2022-08-01 |
Family
ID=78476973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100521A TWI773079B (zh) | 2020-05-12 | 2021-01-07 | 用於管理記憶體模組中出現的錯誤的記憶體控制器、記憶體系統以及記憶體模組 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11392454B2 (zh) |
KR (1) | KR20210138241A (zh) |
CN (1) | CN113656213A (zh) |
TW (1) | TWI773079B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4120083A1 (en) * | 2021-07-13 | 2023-01-18 | STMicroelectronics Application GmbH | Processing system, related integrated circuit, device and method |
US11914469B2 (en) * | 2021-07-16 | 2024-02-27 | Vmware, Inc. | Resiliency and performance for cluster memory |
US11942966B2 (en) * | 2021-08-17 | 2024-03-26 | Micron Technology, Inc. | Managing error control information using a register |
US11789813B2 (en) * | 2021-12-16 | 2023-10-17 | Micron Technology, Inc. | Memory device crossed matrix parity |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE33332E (en) | 1983-03-12 | 1990-09-11 | Sony Corporation | Apparatus for correcting errors |
US5003539A (en) * | 1986-04-11 | 1991-03-26 | Ampex Corporation | Apparatus and method for encoding and decoding attribute data into error checking symbols of main data |
KR930007928B1 (ko) | 1991-01-31 | 1993-08-21 | 삼성전자 주식회사 | 오류정정방법 및 장치 |
GB2289779B (en) | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US20050022091A1 (en) | 2003-07-21 | 2005-01-27 | Holman Thomas J. | Method, system, and apparatus for adjacent-symbol error correction and detection code |
US7949927B2 (en) | 2006-11-14 | 2011-05-24 | Samsung Electronics Co., Ltd. | Error correction method and apparatus for predetermined error patterns |
US7949931B2 (en) | 2007-01-02 | 2011-05-24 | International Business Machines Corporation | Systems and methods for error detection in a memory system |
US8041990B2 (en) | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
US8468422B2 (en) | 2007-12-21 | 2013-06-18 | Oracle America, Inc. | Prediction and prevention of uncorrectable memory errors |
JP5422974B2 (ja) | 2008-11-18 | 2014-02-19 | 富士通株式会社 | 誤り判定回路及び共有メモリシステム |
US8448033B2 (en) * | 2010-01-14 | 2013-05-21 | Mediatek Inc. | Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same |
JP5910356B2 (ja) | 2012-06-29 | 2016-04-27 | 富士通株式会社 | 電子装置、電子装置制御方法及び電子装置制御プログラム |
US9043674B2 (en) | 2012-12-26 | 2015-05-26 | Intel Corporation | Error detection and correction apparatus and method |
US9454422B2 (en) | 2014-01-30 | 2016-09-27 | International Business Machines Corporation | Error feedback and logging with memory on-chip error checking and correcting (ECC) |
US10372535B2 (en) * | 2017-08-29 | 2019-08-06 | Winbond Electronics Corp. | Encoding method and a memory storage apparatus using the same |
US11301317B2 (en) * | 2019-07-23 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method of controlling repair of volatile memory device and storage device performing the same |
KR20210026201A (ko) * | 2019-08-29 | 2021-03-10 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 리페어 제어 방법 |
-
2020
- 2020-05-12 KR KR1020200056319A patent/KR20210138241A/ko unknown
- 2020-12-23 US US17/132,028 patent/US11392454B2/en active Active
-
2021
- 2021-01-07 TW TW110100521A patent/TWI773079B/zh active
- 2021-05-10 CN CN202110504822.3A patent/CN113656213A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113656213A (zh) | 2021-11-16 |
TWI773079B (zh) | 2022-08-01 |
US20210357287A1 (en) | 2021-11-18 |
US11392454B2 (en) | 2022-07-19 |
KR20210138241A (ko) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI773079B (zh) | 用於管理記憶體模組中出現的錯誤的記憶體控制器、記憶體系統以及記憶體模組 | |
KR102002925B1 (ko) | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 | |
US11088710B2 (en) | Memory controllers and memory systems including the same | |
KR101668972B1 (ko) | 오류 검출 및 정정 장치 및 방법 | |
US20180143873A1 (en) | Memory repair method and apparatus based on error code tracking | |
US7328377B1 (en) | Error correction for programmable logic integrated circuits | |
US7036068B2 (en) | Error correction coding and decoding in a solid-state storage device | |
CN113157201B (zh) | 存储器控制器及包括存储器控制器的存储器系统 | |
US8869007B2 (en) | Three dimensional (3D) memory device sparing | |
JP2005216301A (ja) | 誤り訂正符号を有する固体記憶装置を構成するシステムおよび方法 | |
US20210311820A1 (en) | Semiconductor memory devices and memory systems | |
US7984363B2 (en) | Integrated circuit device including a circuit to generate error correction code for correcting error bit for each of memory circuits | |
US11068347B2 (en) | Memory controllers, memory systems including the same and memory modules | |
CN110970081A (zh) | 存储器器件、错误校正码系统和校正错误的方法 | |
KR20210080807A (ko) | 메모리 컨트롤러 및 메모리 시스템 | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
US11726670B2 (en) | Methods of operating memory controllers, memory controllers performing the methods and memory systems including the memory controllers | |
US7904786B2 (en) | Assisted memory system | |
US11815997B2 (en) | Memory controllers, memory systems, and memory modules | |
US20230146904A1 (en) | Error correction circuit, memory system, and error correction method | |
KR20230068235A (ko) | 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈 | |
TW202329106A (zh) | 記憶體系統及其操作方法 | |
KR20230068265A (ko) | 에러 정정 회로, 메모리 시스템 및 에러 정정 방법 |