TWI893407B - 記憶體控制器及包括其的記憶體系統 - Google Patents
記憶體控制器及包括其的記憶體系統Info
- Publication number
- TWI893407B TWI893407B TW112124801A TW112124801A TWI893407B TW I893407 B TWI893407 B TW I893407B TW 112124801 A TW112124801 A TW 112124801A TW 112124801 A TW112124801 A TW 112124801A TW I893407 B TWI893407 B TW I893407B
- Authority
- TW
- Taiwan
- Prior art keywords
- decoding
- ecc
- memory
- data
- codeword set
- Prior art date
Links
Classifications
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/102—Error in check bits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06—COMPUTING OR CALCULATING; 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/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1515—Reed-Solomon codes
-
- 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- 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/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Pure & Applied Mathematics (AREA)
- Human Computer Interaction (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種記憶體控制器,用以控制包含多個資料晶片、第一同位晶片以及第二同位晶片的記憶體模組,所述記憶體控制器包含系統錯誤校正碼(ECC)引擎及用以控制系統ECC引擎的處理器。系統ECC引擎包含ECC解碼器及儲存同位核對矩陣的記憶體。ECC解碼器基於解碼狀態標記而選擇多個ECC解碼方案中的一者且藉由基於所選擇解碼方案及同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自記憶體模組的讀取碼字集中的多個符號錯誤。解碼狀態標記自多個資料晶片提供,且解碼狀態標記中的各者指示是否在多個資料晶片中的各別者中偵測到至少一個錯誤位元。
Description
[相關申請案的交叉參考]
本申請案主張2022年11月29日在韓國智慧財產局申請的韓國專利申請案第10-2022-0162247號的優先權,所述申請案的揭露內容以全文引用的方式併入本文中。
本揭露的態樣是關於記憶體,且更尤其是關於記憶體控制器及包含其的記憶體系統。
可使用半導體,例如矽(Si)、鍺(Ge)、砷化鎵(GaAs)、磷化銦(InP)或類似者來實施記憶體裝置。記憶體裝置通常劃分成揮發性記憶體裝置及非揮發性記憶體裝置。
揮發性記憶體裝置是指在電源關閉時丟失所儲存資料的記憶體裝置。另一方面,非揮發性記憶體裝置是指在電源關閉時保留所儲存資料的記憶體裝置。由於作為一種揮發性記憶體裝置的動態隨機存取記憶體(dynamic random access memory;DRAM)具有較高存取速度,故DRAM廣泛地用作運算系統的工作記憶體、緩衝記憶體、主記憶體或類似者。
另外,多個揮發性記憶體裝置可以記憶體模組形式提供
以用於相對較大儲存容量。研究人員進行有效校正記憶體模組中出現的錯誤的各種研究計劃。
一些例示性實施例提供一種能夠更有效地校正記憶體模組中出現的錯誤的記憶體控制器。
一些例示性實施例提供一種記憶體系統,所述記憶體系統包含能夠更有效地校正記憶體模組中出現的錯誤的記憶體控制器。
根據一些例示性實施例,記憶體控制器可經組態以控制包含多個資料晶片、第一同位晶片以及第二同位晶片的記憶體模組,其中所述記憶體控制器包含系統錯誤校正碼(error correction code;ECC)引擎及用以控制系統ECC引擎的處理器。系統ECC引擎包含ECC解碼器及儲存同位核對矩陣的記憶體。ECC解碼器基於解碼狀態標記而選擇多個ECC解碼方案中的一者且藉由基於所選擇解碼方案及同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自記憶體模組的讀取碼字集中的多個符號錯誤。解碼狀態標記自多個資料晶片提供,且解碼狀態標記中的各者指示是否在多個資料晶片中的各別者中偵測到至少一個錯誤位元。
根據一些例示性實施例,記憶體系統包含記憶體模組及用以控制記憶體模組的記憶體控制器。記憶體模組包含多個資料晶片、第一同位晶片以及第二同位晶片。多個資料晶片中的各者包含晶粒上錯誤校正碼(ECC)引擎。記憶體控制器包含解碼狀態標記解碼器及ECC解碼器。解碼狀態標記解碼器自記憶體模組接收
由多個晶粒上ECC引擎產生的解碼狀態標記,且藉由對解碼狀態標記進行解碼來產生指示對應於來自解碼狀態標記當中的具有第一邏輯位準的解碼狀態標記的數目的擦除數目的決策信號。解碼狀態標記中的各者指示是否在多個資料晶片中的各別者中偵測到至少一個錯誤位元。ECC解碼器基於決策信號而選擇多個ECC解碼方案中的一者,且藉由基於所選擇解碼方案及同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自記憶體模組的讀取碼字集中的多個符號錯誤。
根據一些例示性實施例,提供一種記憶體控制器,所述記憶體控制器用以控制包含多個資料晶片、第一同位晶片以及第二同位晶片的記憶體模組且藉由經由運算高速鏈接(compute express link;CXL)介面與一或多個主機通信來控制記憶體模組。多個資料晶片中的各者包含晶粒上錯誤校正碼(ECC)引擎。記憶體控制器包含解碼狀態標記解碼器及ECC解碼器。解碼狀態標記解碼器自記憶體模組接收由多個晶粒上ECC引擎產生的解碼狀態標記,且藉由對解碼狀態標記進行解碼來產生指示對應於來自解碼狀態標記當中的具有第一邏輯位準的解碼狀態標記的數目的擦除數目的決策信號。解碼狀態標記中的各者指示是否在多個資料晶片中的各別者中偵測到至少一個錯誤位元。ECC解碼器基於決策信號而選擇多個ECC解碼方案中的一者,且藉由基於所選擇解碼方案及同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自記憶體模組的讀取碼字集中的多個符號錯誤。
因此,記憶體控制器中的ECC解碼器可在以第二解碼模式操作時藉由回應於解碼指示在資料晶片的部分中偵測到至少一
個錯誤位元的狀態標記DSFs而執行福尼(Forney)演算法來減小解碼時間間隔而不執行BM演算法及CS演算法,可覆蓋晶粒上ECC引擎的誤偵測且可在以第一解碼模式或第三解碼模式操作時確保錯誤校正能力。
20、700、1000:記憶體系統
30、1300:運算系統
50:CXL匯流排
100、710、811、1100、1321:記憶體控制器
110、910、1110、2110_1、2110_u、2210_1、2210_v:處理器
120:主機介面
125:資料暫存器
130、715、1130:系統錯誤校正碼引擎
140、410:ECC編碼器
141:第一同位產生器
143:第二同位產生器
147、195:緩衝器
150、430:ECC解碼器
155:第一校正子計算器
157、175:解多工器
160:第一子解碼器
165:第一錯誤值估計器
170:第二校正子計算器
180、415、2120_1、2120_u、2220_1、2220_v:記憶體
181:第二子解碼器
183:錯誤定位估計器
185、1140:解碼狀態標記解碼器
187:第二錯誤值估計器
190a:命令緩衝器
190b:位址緩衝器
191:第三校正子計算器
197:信號產生器
201:接腳
200a、200k、1210a、1210k:記憶體晶片/資料晶片
200pa、1220:第一同位晶片
200pb、1230:第二同位晶片
210:控制邏輯電路
211:命令解碼器
212:模式暫存器
220:位址暫存器
230:組控制邏輯電路
240:列位址多工器
245:刷新計數器
250:行位址鎖存器
260:列解碼器
260a:第一組列解碼器
260h:第八組列解碼器
270:行解碼器
270a:第一組行解碼器
270h:第八組行解碼器
285:感測放大器單元
285a:第一組感測放大器
285h:第八組感測放大器
290:輸入/輸出閘控電路
295:資料輸入/輸出緩衝器
310:記憶體胞元陣列
310a:第一組陣列
310h:第八組陣列
320:標記緩衝器
400a、400k、1240a、1240k:晶粒上ECC引擎
412:同位產生器
420:ECC
440:校正子產生電路
441:核對位元產生器
443:校正子產生器
460:錯誤定位器
470:資料校正器
480:DSF產生器
500、MM、850、1200:記憶體模組
501:電路板
503:第一邊緣部分
505:第二邊緣部分
541、544、545、551、554:資料緩衝器
560、570:模組電阻單元
561、563、571、573:命令/位址傳輸線
580:串行存在偵測晶片
585:功率管理積體電路
590:暫存時鐘驅動器
601a、601d、601e、602a、602d、602e、603a、603d、604a、604d、851、852、853、85r、MD:半導體記憶體裝置
711:傳輸器
713:接收器
720:第一記憶體模組
730:第二記憶體模組
740:匯流排
800:行動系統
810:應用程式處理器
820:連接模組
830:使用者介面
840:非揮發性記憶體裝置
870:電源
900a、900b、900g:主機
911:核心
912:I/O裝置
913:相干/快取記憶體電路
914:匯流排電路
915:介面電路
916:多協定多工器
917:實體層
940:主機記憶體
1310:根複合體
1311:本籍代理
1313:I/O橋
1320:CXL記憶體擴展器
1330:記憶體資源
2000:資料中心
2100_1、2100_U:應用程式伺服器
2130_1、2130_u、2230_1、2230_v:開關
2140_1、2240_1、2240_v:NIC
2150_1、2250_1、2250_v:儲存裝置
2160_1、2160_u、2260_1、2260_v:CXL介面
2200_1、2200_V:儲存伺服器
2251_1、2251_v:控制器
2252_1、2252_v:非揮發性記憶體
2253_1、2253_v:DRAM
2254_1、2254_v:介面
2300:記憶體擴展器
ADDR:位址
BANK_ADDR:組位址
BB:基礎位元
BL:突發長度
BTL:位元線
BTL0:位元線
BTLn-1:位元線
CACHE:相干協定
CHB:核對位元
CHIP1、CHIP2、CHIP3、CHIP5、CHIP8:晶片
CK:時鐘信號
CMD:命令
C_MD:經校正主要資料
C_SDQ:經校正使用者資料集
COL_ADDR、COL_ADDR':行位址
CTL1:第一控制信號
CTL2:第二控制信號
D1:第一方向
D2:第二方向
DI:裝置資訊
DOUT1:第一輸出資料
DOUT2:第二輸出資料
DQ:資料信號
DQS:資料選通信號
DQ_BL1、DQ_BL2、DQ_BL3、DQ_BL5、DQ_BL8:資料集
DQ_BLK:資料集
DQ_BL_SG1:資料區段
DQ_BL_SG8:資料區段
DS:決策信號
DSDR:最終校正子
DSF1、DSF2、DSF3、DSF5、DSF8、DSFs:解碼狀態標記
DUE:不可校正錯誤信號
EPS:錯誤位置信號
ECW:經估計碼字集
ESCW1:第一經估計碼字集
ESCW2:第二經估計碼字集
FSDR1:第一最終校正子
FSDR2:第二最終校正子
GF(256):高氏場
HS11:第一子產生矩陣
HS12:第二子產生矩陣
HS21:第一子核對矩陣
HS22:第二子核對矩陣
IM:單位矩陣
IO:非相干協定
MC:記憶體胞元
MD:主要資料
MEM:記憶體協定
MR1、MR2、MRt:記憶體區
NCA:普通胞元陣列
NT:網路
OD ECCE:晶粒上ECC引擎
PCM:同位核對矩陣
PGM:同位產生矩陣
PRT:同位資料
PRTS、SPRT:同位資料集
PRTS1:第一同位資料
PRTS2:第二同位資料
RA:列位址
RCA:冗餘胞元陣列
REF_ADDR:刷新列位址
REQ:請求
RK1、RK2、RK3、RK4:記憶體列
RMD:讀取資料
ROW_ADDR:列位址
RSM11、RSM12、RSM1K、RSM(1K+1)、RSM(1K+2)、RSM21、RSM22、RSM2K、RSM(2K+1)、RSM(2K+2):高氏場子矩陣
RTT:電阻器
Rtt/2:端接電阻器
S110、S120、S130、S140、S150、S160、S170、S175、S177、S179、S180、S190、S210、S220、S310、S330、S350、S370:操作
SCW、SCW1:碼字集
SCW2:讀取碼字集
SDQ:使用者資料集
SDR、SSDR:校正子
WL:字元線
WL0、WL1、WLm-1、:字元線
WMD:寫入資料
VDD、VDDQ:電源電壓
VIN:輸入電壓
Vtt:端接電壓
自結合隨附圖式進行的以下詳細描述將更清楚地理解說明性、非限制性例示性實施例。
圖1為示出根據例示性實施例的記憶體系統的方塊圖。
圖2為示出根據例示性實施例的圖1的記憶體系統中的記憶體控制器的方塊圖。
圖3示出根據例示性實施例的對應於圖1的記憶體系統中的多個突發長度的資料集。
圖4為示出根據例示性實施例的圖1的記憶體模組中的資料晶片中的一者的方塊圖。
圖5示出根據例示性實施例的圖4的資料晶片中的第一組陣列的實例。
圖6為示出根據例示性實施例的圖2中的系統ECC引擎的實例的方塊圖。
圖7示出儲存於圖6的系統ECC引擎中的記憶體中的同位核對矩陣的實例。
圖8示出圖7中的高氏場(Galois field)子矩陣的部分。
圖9示出圖8中的單位矩陣。
圖10示出圖7中的高氏場子矩陣的部分。
圖11示出根據例示性實施例的圖6的系統ECC引擎中的ECC編碼器的實例。
圖12示出儲存於圖6的錯誤校正電路中的記憶體中的同位產生矩陣的實例。
圖13為示出根據例示性實施例的圖6的系統ECC引擎中的ECC解碼器的實例的方塊圖。
圖14為示出根據例示性實施例的包含於圖4的資料晶片中的晶粒上ECC引擎的實例的方塊圖。
圖15為示出包含於圖14的晶粒上ECC引擎中的ECC編碼器的實例的方塊圖。
圖16為示出包含於圖14的晶粒上ECC引擎中的ECC解碼器的實例的方塊圖。
圖17為示出根據例示性實施例的系統ECC引擎的解碼操作的實例的流程圖。
圖18為示出根據例示性實施例的系統ECC引擎的解碼操作的實例的流程圖。
圖19至圖22示出根據例示性實施例的ECC解碼器可校正的各種類型的錯誤。
圖23為示出根據例示性實施例的校正用以控制記憶體模組的記憶體控制器中的錯誤的方法的流程圖。
圖24為示出可由根據例示性實施例的記憶體系統採用的記憶體模組的方塊圖。
圖25為示出根據例示性實施例的具有四列記憶體模組的記憶體系統的方塊圖。
圖26為示出包含根據例示性實施例的記憶體模組的行動系統的方塊圖。
圖27為示出根據例示性實施例的運算系統的方塊圖。
圖28為示出根據例示性實施例的圖27的運算系統中的多個主機中的一者的方塊圖。
圖29示出用於圖27的運算系統中的通信的多協定的實例。
圖30為在根據例示性實施例的記憶體系統對應於由CXL協定定義的3型記憶體系統時的運算系統的實例。
圖31為示出包含根據例示性實施例的運算系統的資料中心的方塊圖。
下文將參考隨附圖式更全面地描述本揭露的例示性實施例。貫穿隨附圖式,相同附圖標記可指相同元件。
圖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的數目可為8。然而,資料晶片200a至資料晶片200k的數目不限於此。在一些實施例中,資料晶片200a至資料晶片200k中的各者可稱為資料記憶體,且同位晶片200pa及同位晶片200pb中的各者可稱為錯誤校正碼(ECC)記憶體或冗餘記憶體。
記憶體控制器100可將位址ADDR及命令CMD傳輸至記憶體模組MM,且可與記憶體模組MM交換碼字集SCW。
記憶體控制器100可包含系統錯誤校正碼(ECC)引擎130及解碼狀態標記(decoding status flag;DSF)解碼器185。
系統ECC引擎130可使用同位產生矩陣對使用者資料集
執行錯誤校正碼(ECC)編碼以產生同位資料集,且系統ECC引擎130可在記憶體系統20的寫入操作中向記憶體模組MM提供包含使用者資料集及同位資料集的碼字集SCW。使用者資料集可儲存於資料晶片200a至資料晶片200k中,同位資料集的第一部分可儲存於第一同位晶片200pa中,且同位資料集的第二部分可儲存於第二同位晶片200pb中。
DSF解碼器185可在記憶體系統20的讀取操作中自資料晶片200a至資料晶片200k中的晶粒上(on-die;OD)ECC引擎400a至晶粒上ECC引擎400k接收解碼狀態標記DSFs。解碼狀態標記DSFs中的各者可指示是否在資料晶片200a至資料晶片200k中的各者中偵測到至少一個錯誤位元。DSF解碼器185可藉由對解碼狀態標記DSFs進行解碼來產生指示對應於來自解碼狀態標記DSFs當中的具有第一邏輯位準的解碼狀態標記的數目的擦除數目的決策信號DS,且可將決策信號DS提供至系統ECC引擎130。
系統ECC引擎130可基於決策信號DS或解碼狀態標記DSFs而選擇多個ECC解碼方案中的一者,且可藉由基於所選擇解碼方案及同位核對矩陣而對讀取碼字集SCW執行ECC解碼來校正來自記憶體模組MM的讀取碼字集SCW中的多個符號錯誤。
系統ECC引擎130可藉由回應於指示在資料晶片200a至資料晶片200k的一部分(例如,發送解碼狀態標記DSFs的資料晶片200a至資料晶片200k的數目小於預定數目)中偵測到至少一個錯誤位元的解碼狀態標記DSFs而執行擦除校正解碼來減小解碼時間間隔,可藉由回應於指示不在資料晶片200a至資料晶
片200k中偵測到錯誤位元的解碼狀態標記DSFs而執行錯誤校正解碼來覆蓋晶粒上ECC引擎400a至晶粒上ECC引擎400k的誤偵測,且可藉由回應於指示在資料晶片200a至資料晶片200k的一部分(例如,當發送解碼狀態標記DSFs的資料晶片200a至資料晶片200k的數目在預定數目範圍內時)中偵測到至少一個錯誤位元的解碼狀態標記DSFs而執行擦除校正解碼及錯誤校正解碼來確保錯誤校正能力。
因此,系統ECC引擎130可校正與一個資料晶片中的錯誤相關聯的晶片錯誤,校正出現於多個資料晶片中的隨機多符號錯誤且可校正各種類型的錯誤。
圖2為示出根據一些例示性實施例的圖1的記憶體系統中的記憶體控制器的實例的方塊圖。
參考圖2,記憶體控制器100包含處理器110、主機介面120、資料暫存器125、系統ECC引擎130、DSF解碼器185、命令緩衝器190a以及位址緩衝器190b。系統ECC引擎130可包含ECC編碼器140、ECC解碼器150以及記憶體180。
主機介面120可自主機接收請求REQ及使用者資料集SDQ,且可將使用者資料集SDQ提供至資料暫存器125。資料暫存器125可將使用者資料集SDQ提供至系統ECC引擎130。
ECC編碼器140可使用同位產生矩陣對使用者資料集SDQ執行ECC編碼且可產生碼字集SCW1。
ECC解碼器150可使用同位核對矩陣對自記憶體模組MM提供的碼字集SCW2執行ECC解碼以校正碼字集SCW2中的錯誤,可向處理器110提供使用者資料集SDQ及經校正使用者資
料集C_SDQ中的一者。記憶體180可儲存同位產生矩陣及同位核對矩陣。
處理器110可自ECC解碼器150接收使用者資料集SDQ或經校正使用者資料集C_SDQ且可控制系統ECC引擎130、命令緩衝器190a以及位址緩衝器190b。命令緩衝器190a可儲存對應於請求REQ的命令CMD且可在處理器110的控制下將命令CMD傳輸至記憶體模組MM。位址緩衝器190b可儲存位址ADDR且可在處理器110的控制下將位址ADDR傳輸至記憶體模組MM。
DSF解碼器185可在記憶體系統20的讀取操作中自記憶體模組MM接收指示是否在資料晶片200a至資料晶片200k中的各者偵測到至少一個錯誤位元的解碼狀態標記DSFs。DSF解碼器185可藉由對解碼狀態標記DSFs進行解碼來產生指示對應於來自解碼狀態標記DSFs當中的具有第一邏輯位準的解碼狀態標記的數目的擦除數目的決策信號DS,且可將決策信號DS提供至系統ECC引擎130。
圖3示出根據一些例示性實施例的對應於圖1的記憶體系統中的多個突發長度的資料集。
參考圖3,資料晶片200a至資料晶片200k及同位晶片200pa以及同位晶片200pb中的各者可執行突發操作。在本文中,突發操作可指藉由依序增加或減小自記憶體控制器100提供的初始位址來寫入或讀取大量資料的操作。突發操作的基本單位可指突發長度(BL)。
對應於多個突發長度的資料集DQ_BL1至資料集DQ_BLk中的各者輸入至資料晶片200a至資料晶片200k中的各
者/自資料晶片200a至資料晶片200k中的各者輸出。
資料集DQ_BL1至資料集DQ_BLk中的各者可包含對應於多個突發長度中的各突發長度的資料區段DQ_BL_SG1至資料區段DQ_BL_SG8。資料集DQ_BL1至資料集DQ_BLk可對應於使用者資料集SDQ。
突發長度在圖3中假定為8,且假定執行一次突發操作,應理解本揭露不限於此。當突發操作在資料晶片200a至資料晶片200k中的各者中執行一次時,對應於多個突發長度的第一同位資料PRTS1輸入至第一同位晶片200pa/自第一同位晶片200pa輸出,且對應於多個突發長度的第二同位資料PRTS2輸入至第二同位晶片200pb/自第二同位晶片200pb輸出。
圖4為示出根據一些例示性實施例的圖1的記憶體模組中的資料晶片中的一者的方塊圖。
在圖4中,假定圖1中的資料晶片200a至資料晶片200k中的各者採用揮發性記憶體裝置。
參考圖4,資料晶片200a可包含控制邏輯電路210、位址暫存器220、組控制邏輯電路230、列位址多工器240、行位址鎖存器250、列解碼器260、行解碼器270、記憶體胞元陣列310、感測放大器單元285、輸入/輸出(input/output;I/O)閘控電路290、晶粒上ECC引擎400a、資料輸入/輸出(I/O)緩衝器295、刷新計數器245以及標記緩衝器320。
記憶體胞元陣列310可包含第一組陣列310a至第八組陣列310h。
列解碼器260可包含分別耦接至第一組陣列310a至第八
組陣列310h的第一組列解碼器260a至第八組列解碼器260h。行解碼器270可包含分別耦合至第一組陣列310a至第八組陣列310h的第一組行解碼器270a至第八組行解碼器270h。感測放大器單元285可包含分別耦合至第一組陣列310a至第八組陣列310h的第一組感測放大器285a至第八組感測放大器285h。
第一組陣列310a至第八組陣列310h、第一組列解碼器260a至第八組列解碼器260h、第一組行解碼器270a至第八組行解碼器270h以及第一組感測放大器285a至第八組感測放大器285h可形成第一組至第八組。第一組陣列310a至第八組陣列310h,中的各者可包含多個字元線WL、多個位元線BTL以及形成於字元線WL與位元線BTL的相交點處的多個記憶體胞元MC。
儘管圖4中示出資料晶片200a為包含八個組,但資料晶片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。自列位址多工器240輸出的位址RA可應用於藉由來自組控制邏輯電路230的組控制信號激活的第一組列解碼器260a至第八組列解碼器260h中的經激活一者。
第一組列解碼器260a至第八組列解碼器260h中的經激活一者可解碼自列位址多工器240輸出的列位址RA,且可激活對應於列位址RA的字元線WL。舉例而言,組列解碼器260a至組列解碼器260h的經激活組列解碼器可產生字元線驅動電壓,且可將字元線驅動電壓施加至對應於列位址RA的字元線WL。
行位址鎖存器250可自位址暫存器220接收行位址COL_ADDR,且可暫時儲存接收到的行位址COL_ADDR。在根據本發明概念的一些例示性實施例中,在突發模式中,行位址鎖存器250可產生自接收到的行位址COL_ADDR遞增的行位址COL_ADDR'。行位址鎖存器250可將暫時儲存的或產生的行位址COL_ADDR'施加至第一組行解碼器270a至第八組行解碼器270h。
第一組行解碼器270a至第八組行解碼器270h中的經激活一者可解碼自行位址鎖存器250輸出的行位址COL_ADDR,且可控制I/O閘控電路290以輸出對應於行位址COL_ADDR的資料。
I/O閘控電路290可包含用於閘控輸入/輸出資料的電路系統。I/O閘控電路290可更包含用於儲存自第一組陣列310a至第八組陣列310h輸出的資料的讀取資料鎖存器,及用於將資料寫入第一組陣列310a至第八組陣列310h的寫入控制裝置。
可藉由耦接至自其中讀取資料的一個組陣列的感測放大器來感測自第一組陣列310a至第八組陣列310h中的一者讀取的碼字,且可儲存於讀取資料鎖存器中。
可將儲存於讀取資料鎖存器中的碼字提供至晶粒上ECC引擎400a。晶粒上ECC引擎400a可藉由對碼字執行ECC解碼來產生資料集,且可將資料集提供至資料I/O緩衝器295。資料I/O緩衝器295可將資料集DQ_BL1提供至記憶體控制器100。待寫入第一組陣列310a至第八組陣列310h中的一者中的資料集DQ_BL1可自記憶體控制器100提供至資料I/O緩衝器295。資料I/O緩衝器295可將資料集提供至晶粒上ECC引擎400a。晶粒上ECC引擎400a可基於資料集而產生同位位元,且可向I/O閘控電路290提供包含資料集及同位位元的碼字。I/O閘控電路290可將碼字儲存於一個組陣列的子頁面中。
在寫入操作中,晶粒上ECC引擎400a可藉由對來自資料I/O緩衝器295的資料集DQ_BL1執行ECC編碼來產生同位位元,且可將包含資料集DQ_BL1及同位位元的碼字儲存於記憶體胞元陣列310的目標頁面中。
在讀取操作中,晶粒上ECC引擎400a可自目標頁面讀取包含資料集及同位位元的碼字,可藉由基於同位位元而對資料集執行ECC解碼來偵測資料集中的至少一個錯誤位元,且當在資
料集中偵測到至少一個錯誤位元時,可將具有第一邏輯位準的解碼狀態標記DSF1輸出至標記緩衝器320。晶粒上ECC引擎400a可在不校正偵測到的至少一個錯誤位元的情況下將資料集DQ_BL1提供至資料I/O緩衝器295。
標記緩衝器320可經由接腳201將解碼狀態標記DSF1傳輸至記憶體控制器100。
控制邏輯電路210可控制資料晶片200a的操作。舉例而言,控制邏輯電路210可產生用於資料晶片200a的控制信號以執行寫入操作或讀取操作。控制邏輯電路210可包含解碼自記憶體控制器100接收到的命令CMD的命令解碼器211及設置資料晶片200a的操作模式的模式暫存器212。
舉例而言,命令解碼器211可藉由對寫入啟用信號、列位址選通信號、行位址選通信號、晶片選擇信號等進行解碼來產生對應於命令CMD的控制訊號。
控制邏輯電路210可藉由對命令CMD進行解碼來產生第一控制信號CTL1以控制I/O閘控電路290及第二控制信號CTL2以控制晶粒上ECC引擎400a。
圖1中的同位晶片200pa及同位晶片200pb中的各者可具有與資料晶片200a實質上相同的組態。同位晶片200pa及同位晶片200pb中的各者可輸入/輸出對應同位資料。
圖5示出根據一些例示性實施例的圖4的資料晶片中的第一組陣列的實例。
參考圖5,第一組陣列310a可包含多個字元線WL0至字元線WLm-1(其中m為等於或大於二的偶數)、多個位元線BTL0
至位元線BTLn-1(其中n為等於或大於二的偶數)以及位於字元線WL0至字元線WLm-1與位元線BTL0至位元線BTLn-1之間的相交點處的多個記憶體抱怨MC。
字元線WL0至字元線WLm-1可在第一方向D1上延伸,且位元線BTL0至位元線BTLn-1可在第二方向D2上延伸。
記憶體胞元MC中的各者可包含耦接至字元線WL0至字元線WLm-1中的一者及位元線BTL0至位元線BTLn-1中的一者的存取(胞元)電晶體及耦接至胞元電晶體的儲存(胞元)電容器。亦即,記憶體胞元MC中的各者具有DRAM胞元結構。
另外,記憶體胞元MC可取決於記憶體胞元MC耦接至偶數字元線(例如WL0)或奇數字元線(例如WL1)而具有不同配置。亦即,耦接至鄰近記憶體胞元的位元線可取決於由存取位址選擇的字元線是偶數字元線還是奇數字元線而不同。
圖6為示出根據一些例示性實施例的圖2中的系統ECC引擎的實例的方塊圖。
參考圖6,系統ECC引擎130可包含ECC編碼器140、ECC解碼器150以及記憶體180。記憶體180可稱為ECC記憶體180。
ECC記憶體180可連接至ECC編碼器140及ECC解碼器150且可儲存同位產生矩陣PGM及同位核對矩陣PCM。
ECC編碼器140可藉由使用同位產生矩陣PGM對使用者資料集SDQ執行ECC編碼以產生包含第一同位資料PRTS1及第二同位資料PRTS2的同位資料集SPRT,且可輸出包含使用者資料集SDQ、第一同位資料PRTS1及第二同位資料PRTS2的碼字
集SCW1。
ECC解碼器150可基於決策信號DS而選擇多個ECC解碼方案中的一者,可基於所選擇解碼方案及同位核對矩陣PCM而對包含使用者資料集SDQ及同位資料集SPRT的碼字集SCW2執行ECC解碼,可根據由包含於使用者資料集SDQ中的決策信號DS及錯誤類型指示的擦除數目來校正多個符號錯誤以輸出經校正使用者資料集C_SDQ,或當ECC解碼器150不可校正多個符號錯誤時,可輸出使用者資料集SDQ。
圖7示出儲存於圖6的系統ECC引擎中的記憶體中的同位核對矩陣的實例。
同位產生矩陣PGM可具有與同位核對矩陣PCM類似的組態。
參考圖7,同位核對矩陣PCM可包含第一子核對矩陣HS21及第二子核對矩陣HS22。
第一子核對矩陣HS21及第二子核對矩陣HS22可基於里德所羅門碼(Reed-Solomon code)而產生且可用於產生校正子。
第一子核對矩陣HS21可包含對應於資料晶片200a至資料晶片200k、第一同位晶片200pa以及第二同位晶片200pb的k+2高氏場子矩陣RSM11、高氏場子矩陣RSM12、...、高氏場子矩陣RSM1k、高氏場子矩陣RSM(1k+1)、高氏場子矩陣RSM(1k+2)。在一實施例中,第一子核對矩陣HS21可對應於使用者資料集、第一同位資料及/或第二同位資料。
第二子核對矩陣HS22可包含對應於資料晶片200a至資料晶片200k、第一同位晶片200pa以及第二同位晶片200pb的k+2
高氏場子矩陣RSM21、高氏場子矩陣RSM22、...、高氏場子矩陣RSM2k、高氏場子矩陣RSM(2k+1)、高氏場子矩陣RSM(2k+2)。k+2高氏場子矩陣RSM11、高氏場子矩陣RSM12、...、高氏場子矩陣RSM1k、高氏場子矩陣RSM(1k+1)、高氏場子矩陣RSM(1k+2)中的各者以及k+2高氏場子矩陣RSM21、高氏場子矩陣RSM22、...、高氏場子矩陣RSM2k、高氏場子矩陣RSM(2k+1)、高氏場子矩陣RSM(2k+2)可具有p×p個元素。在此,k為大於二的整數且p為大於三的整數。在一實施例中,第二子核對矩陣HS22可對應於使用者資料集、第一同位資料及/或第二同位資料。
圖8示出圖7中的高氏場子矩陣的部分。
參考圖8,高氏場子矩陣RSM11可包含單位矩陣IM及α矩陣αs、α矩陣α2s、α矩陣α3s、α矩陣α4s、α矩陣α5s、α矩陣α6s以及α矩陣α7s。在此,s為1、2、3、4、5、6、7以及8中的一者。高氏場子矩陣RSM21可包含單位矩陣IM及α矩陣αs+8、α矩陣α2(s+8)、α矩陣α3(s+8)、α矩陣α4(s+8)、α矩陣α5(s+8)、α矩陣α6(s+8)以及α矩陣α7(s+8)。
在此,可使用q階質性多項式獲得α矩陣。α2可藉由α的退化來獲得。α矩陣的元素可屬於高氏場。
圖9示出圖8中的單位矩陣。
參考圖9,在對角線方向上的q元素具有邏輯高位準(亦即,『1』值),且在對角線方向上除q元素之外的其他元素(例如,所有其他元素)具有邏輯低位準(亦即,『0』值)。
圖10示出圖7中的高氏場子矩陣的部分。
在圖10中,假定k為8。
參考圖10,高氏場子矩陣RSM(1k+1)及高氏場子矩陣RSM(2k+1)可包含α矩陣α64至α矩陣α71、α矩陣α128至α矩陣α142、α矩陣α192至α矩陣α213、α矩陣α1至α矩陣α29、α矩陣α65至α矩陣α100、α矩陣α129至α矩陣α171、α矩陣α193至α矩陣α242以及α矩陣α2至α矩陣α58,其中指數值為255或小於255。包含於高氏場子矩陣RSM(1k+1)及高氏場子矩陣RSM(2k+1)中的α矩陣為具有256個元素的高氏場的元素,且指數值可具有1至255中的一者。
圖11示出根據一些例示性實施例的圖6的系統ECC引擎中的ECC編碼器的實例。
參考圖11,ECC編碼器140可包含第一同位產生器141、第二同位產生器143以及緩衝器147。
第一同位產生器141可使用第一子產生矩陣HS11對以符號為基礎的使用者資料集SDQ執行ECC編碼以產生第一同位資料PRTS1且可將第一同位資料PRTS1提供至緩衝器147。第一同位產生器141可藉由對使用者資料集SDQ及第一子產生矩陣HS11執行矩陣乘法運算來產生第一同位資料PRTS1。
第二同位產生器143可使用第二子產生矩陣HS12對以符號為基礎的使用者資料集SDQ執行ECC編碼以產生第二同位資料PRTS2且可將第二同位資料PRTS2提供至緩衝器147。第二同位產生器143可藉由對使用者資料集SDQ及第二子產生矩陣HS12執行矩陣乘法運算來產生第二同位資料PRTS2。
緩衝器147可接收使用者資料集SDQ、第一同位資料PRTS1以及第二同位資料PRTS2,且可向記憶體模組MM提供包
含使用者資料集SDQ、第一同位資料PRTS1以及第二同位資料PRTS2的碼字集SCW1。
圖12示出儲存於圖6的錯誤校正電路中的記憶體中的同位產生矩陣的實例。
參考圖12,同位產生矩陣PGM可包含第一子產生矩陣HS11及第二子產生矩陣HS12。
第一子產生矩陣HS11可包含對應於資料晶片200a至資料晶片200k的高氏場子矩陣RSM11、高氏場子矩陣RSM12、...、高氏場子矩陣RSM1k。第二子產生矩陣HS12可包含對應於資料晶片200a至200k的高氏場子矩陣RSM21、高氏場子矩陣RSM22、...、高氏場子矩陣RSM2k。可基於里德所羅門碼而產生第一子產生矩陣HS11及第二子產生矩陣HS12。
圖13為示出根據例示性實施例的圖6的系統ECC引擎中的ECC解碼器的實例的方塊圖。
參考圖13,ECC解碼器150可包含校正子計算器155、解多工器157、第一子解碼器160以及第二子解碼器181。校正子計算器155可稱為第一校正子計算器155。
第一子解碼器160可包含錯誤值估計器165、校正子計算器170以及解多工器175。第二子解碼器181可包含錯誤定位估計器183、錯誤值估計器187、校正子計算器191以及緩衝器195。校正子計算器170可稱為第二校正子計算器170,且校正子計算器191可稱為第三校正子計算器191。錯誤值估計器165可稱為第一錯誤值估計器165,且錯誤值估計器187可稱為第二錯誤值估計器187。第一錯誤值估計器165及第二錯誤值估計器187中的各者可
執行福尼演算法。錯誤定位估計器183可執行伯勒蘭普梅西(Berlekamp-Massey;BM)演算法及陳氏尋根法(Chien search;CS)演算法。
第一校正子計算器155可藉由對讀取碼字集SCW2及同位核對矩陣PCM執行矩陣乘法運算來產生校正子SSDR。
解多工器157可基於指示擦除數目的決策信號DS而將校正子SSDR提供至第一子解碼器160及第二子解碼器181中的一者。解多工器157可以第二解碼模式經由第二路徑將校正子SSDR提供至第一子解碼器160,且可基於決策信號DS而以第一解碼模式及第三解碼模式經由第一路徑將校正子SSDR提供至第二子解碼器181。
回應於擦除數目大於零且等於或小於2t,第一錯誤值估計器165可藉由基於經由第二路徑接收到的校正子SSDR而對讀取碼字集SCW2執行福尼演算法以校正讀取碼字集SCW2中的符號錯誤來產生第一經估計碼字集ESCW1。在此,t可為指示ECC解碼器150使用第一解碼的可校正符號錯誤的數目的自然數,且2t可指示ECC解碼器150使用第二解碼的可校正符號錯誤的數目。第一錯誤值估計器165可將第一經估計碼字集ESCW1提供至校正子計算器170及解多工器175。
第二校正子計算器170可藉由對第一經估計碼字集ESCW1及同位核對矩陣PCM執行矩陣乘法運算來產生第一最終校正子FSDR1,且可將第一最終校正子FSDR1提供至解多工器175。
解多工器175可接收第一經估計碼字集ESCW1且可將
第一經估計碼字集ESCW1提供為第一輸出資料DOUT1,或可基於第一最終校正子FSDR1而將第一經估計碼字集ESCW1提供至第二子解碼器181。回應於第一最終校正子FSDR1為零,解多工器175可將第一經估計碼字集ESCW1提供為第一輸出資料DOUT1,且回應於第一最終校正子FSDR1不為零,可將第一經估計碼字集ESCW1提供至第二子解碼器181。
回應於擦除數目為零,錯誤定位估計器183可藉由以下操作來產生錯誤位置信號EPS:藉由對校正子SSDR或第一經估計碼字集ESCW1執行BM演算法來產生錯誤定位多項式的係數,且藉由基於係數而執行CS演算法來搜尋錯誤位置。
錯誤值估計器187可藉由基於錯誤位置信號EPS而對讀取碼字集SCW2執行福尼演算法來校正讀取碼字集SCW2中的符號錯誤來產生第二經估計碼字集ESCW2。錯誤值估計器187可將第二經估計碼字集ESCW2提供至校正子計算器191及緩衝器195。
校正子計算器191可藉由對第二經估計碼字集ESCW2及同位核對矩陣PCM執行矩陣乘法運算來產生第二最終校正子FSDR2,且可將第二最終校正子FSDR2提供至緩衝器195。
回應於第二最終校正子FSDR2為零,緩衝器195可將儲存於其中的第二經估計碼字集ESCW2提供為第二輸出資料DOUT2,且回應於第二最終校正子FSDR2的校正子值中的至少一者不為零,可輸出指示讀取碼字集SCW2中出現的不可校正符號錯誤的不可校正錯誤信號DUE。緩衝器195可包含信號產生器197,且信號產生器197可基於第二最終校正子FSDR2的校正子值而產生不可校正錯誤信號DUE。
當讀取碼字集SCW2的向量表示對應於r T,且校正子SSDR的向量表示對應於S時,S=PCM×r T。當經估計碼字集ESCW的向量(例如,第一經估計碼字集ESCW1及/或第二經估計碼字集ESCW2)表示對應於er T,且最終校正子FSDR的向量(例如,第一最終校正子FSDR1及/或第二最終校正子FSDR2)表示對應於FS時,FS=PCM×er T。
因此,基於解碼狀態標記DSFs,ECC解碼器150可以第二解碼模式在第一子解碼器160中執行第二解碼,且可以第一解碼模式及第三解碼模式在第二子解碼器181中執行第一解碼或第二解碼。
當解碼狀態標記DSFs的至少一部分指示在資料晶片200a至資料晶片200k的至少一部分中偵測到錯誤位元時,亦即當決策信號DS指示在資料晶片200a至資料晶片200k的至少一部分中偵測到錯誤位元時,ECC解碼器150可以第二解碼模式操作,且可藉由基於校正子SSDR而對讀取碼字集SCW2執行福尼演算法來校正讀取碼字集SCW2中的符號錯誤來產生第一經估計碼字集ESCW1,而不執行可增加計算延遲的錯誤定位估計器183的BM演算法及CS演算法。ECC解碼器150可減小第二解碼模式中的解碼時間間隔。
圖14為示出根據一些例示性實施例的包含於圖4的資料晶片中的晶粒上ECC引擎的實例的方塊圖。
在圖14中,為方便解釋起見,示出第一組陣列310a。第一組陣列310a可包含普通胞元陣列NCA及冗餘胞元陣列RCA。
參考圖14,晶粒上ECC引擎400a可包含ECC編碼器
410、記憶體415以及ECC解碼器430。
記憶體415可儲存ECC 420。舉例而言,ECC 420可為單錯誤校正/雙錯誤偵測(single error correction/double error detection;SECDED)碼。然而,本揭露不限於此。
使用ECC 420,ECC編碼器410可產生與待儲存於第一組陣列310a的普通胞元陣列NCA中的寫入資料WMD相關聯的同位資料PRT。同位資料PRT可儲存於第一組陣列310a的冗餘胞元陣列RCA中。
使用ECC 420,ECC解碼器430可基於分別自第一組陣列310a的普通胞元陣列NCA及冗餘胞元陣列RCA讀取的讀取資料RMD及同位資料PRT而對讀取資料RMD執行ECC解碼。當讀取資料RMD包含作為ECC解碼結果的至少一個錯誤位元時,ECC解碼器430可產生解碼狀態標記DSF1且可將解碼狀態標記DSF1提供至記憶體控制器100,且可不校正讀取資料RMD中的錯誤位元且在讀取操作中輸出主資料MD。主要資料MD可對應於資料集DQ_BL1。
圖15為示出包含於圖14的晶粒上ECC引擎中的ECC編碼器的實例的方塊圖。
參考圖15,ECC編碼器410可包含同位產生器412。同位產生器412可接收寫入資料WMD及基礎位元BB,且可藉由執行例如XOR陣列操作來產生同位資料PRT。
圖16為示出包含於圖14的晶粒上ECC引擎中的ECC解碼器的實例的方塊圖。
參考圖16,ECC解碼器430可包含校正子產生電路440、
錯誤定位器460、資料校正器470以及DSF產生器480。校正子產生電路440可包含核對位元產生器441及校正子產生器443。
校正子產生電路440可基於讀取資料RMD及同位資料PRT來產生校正子SDR。核對位元產生器441可藉由執行XOR陣列操作基於讀取資料RMD而產生核對位元CHB。校正子產生器443可藉由比較同位資料PRT與核對位元CHB的對應位元來產生校正子SDR。
當校正子SDR的所有位元皆不為零時,錯誤定位器460可產生表示讀取資料RMD中的錯誤位元的位置的錯誤位置信號EPS,且可將錯誤位置信號EPS提供至資料校正器470。
資料校正器470可接收讀取資料RMD。當讀取資料RMD包含錯誤位元時,資料校正器470可藉由校正讀取資料RMD中的錯誤位元來輸出經校正主要資料C_MD,或可在不校正讀取資料RMD中的錯誤位元的情況下輸出主要資料MD。
DSF產生器480可基於校正子SDR及錯誤位置信號EPS而產生指示讀取資料RMD是否包含至少一個錯誤位元的解碼狀態標記DSF1。舉例而言,DSF產生器480可在讀取資料RMD包含至少一個錯誤位元時產生具有第一邏輯位準(邏輯高位準)的解碼狀態標記DSF1,且可在讀取資料RMD不包含錯誤位元時產生具有第二邏輯位準(邏輯低位準)的解碼狀態標記DSF1。
圖17為示出根據一些例示性實施例的系統ECC引擎的解碼操作的實例的流程圖。
參考圖2、圖6、圖13以及圖17,ECC解碼器150可基於決策信號DS而基於對應於來自解碼狀態標記DSFs當中的具有
第一邏輯位準的解碼狀態標記的數目的擦除數目而選擇多個ECC解碼方案中的一者。多個ECC解碼方案可包含第一解碼及第二解碼,第一解碼可對應於t錯誤校正解碼且第二解碼可對應於2t擦除及校正解碼(或2t錯誤擦除解碼)。在此,t可為指示ECC解碼器150使用第一解碼的可校正符號錯誤的數目的自然數,且2t可指示ECC解碼器150使用第二解碼的可校正符號錯誤的數目。
亦即,ECC解碼器150可核對解碼狀態標記DSFs(操作S110),且可基於具有第一邏輯位準的解碼狀態標記而判定擦除數目E是否大於零(操作S120)。
回應於擦除數目E為零(在S120中為否),ECC解碼器150可判定由第一校正子計算器155產生的校正子SSDR是否為零(操作S130)回應於校正子SSDR為零(在S130中為是),ECC解碼器150可判定讀取碼字集SCW2不包含由NE標示的符號錯誤。
回應於校正子SSDR不為零(在S130中為否),ECC解碼器150可對讀取碼字集SCW2執行第一ECC解碼(操作S140)以產生經估計碼字集,可藉由對經估計碼字集執行校正子計算來產生最終校正子FSDR,且可判定最終校正子FSDR是否為零(操作S150)。
回應於最終校正子FSDR為零(在S150中為是),ECC解碼器150可判定成功解碼由SUCCESS標示,且回應於最終校正子FSDR不為零(在S150中為否),ECC解碼器150可判定經估計碼字集包含由DUE標示的不可校正符號錯誤。
回應於擦除數目E大於零(在S120中為是),ECC解碼
器150可判定擦除數目E是否等於或小於2t(操作S160)。
回應於擦除數目E等於或小於2t(在S160中為是),ECC解碼器150可對讀取碼字集SCW2執行第二ECC解碼(操作S170)以產生經估計碼字集,可藉由對經估計碼字集執行校正子計算來產生最終校正子FSDR,且可判定最終校正子FSDR是否為零(操作S175)。
回應於最終校正子FSDR為零(在S175中為是),ECC解碼器150可判定成功解碼由SUCCESS標示。回應於最終校正子FSDR不為零(在S175中為否)或回應於擦除數目E大於2t(在S160中為否),ECC解碼器150可對讀取碼字集SCW2執行第一ECC解碼(操作S180)以產生經估計碼字集,可藉由對經估計碼字集執行校正子計算來產生最終校正子FSDR,且可判定最終校正子FSDR是否為零(操作S190)。
回應於最終校正子FSDR為零(在S190中為是),ECC解碼器150可判定成功解碼由SUCCESS標示,且回應於最終校正子FSDR不為零(在S190中為否),ECC解碼器150可判定經估計碼字集包含由DUE標示的不可校正符號錯誤。
因此,ECC解碼器150可藉由在擦除數目E大於零且等於或小於2t時執行(例如,立即執行)第二(ECC)解碼來減小解碼時間間隔,ECC解碼器150可在擦除數目E為零時覆蓋晶粒上ECC引擎400a至晶粒上ECC引擎400k的誤偵測,且ECC解碼器150可在擦除數目E大於2t時確保錯誤校正能力。
圖18為示出根據一些例示性實施例的系統ECC引擎的解碼操作的實例的流程圖。
參考圖2、圖6、圖13以及圖18,ECC解碼器150可基於決策信號DS而基於對應於來自解碼狀態標記DSFs當中的具有第一邏輯位準的解碼狀態標記的數目的擦除數目而選擇多個ECC解碼方案中的一者。多個ECC解碼方案可包含第一解碼、第二解碼以及第三解碼,第一解碼可對應於t錯誤校正解碼,第二解碼可對應於2t擦除校正解碼且第三解碼可對應於x錯誤及擦除解碼。在此,t可為指示ECC解碼器150使用第一解碼的可校正符號錯誤的數目的自然數,2t指示ECC解碼器150使用第二解碼的可校正符號錯誤的數目,x指示ECC解碼器使用第三解碼的可校正符號錯誤的數目且x可為大於t且小於2t的自然數。
圖17重複關於操作S110、操作S120、操作S130、操作S140、操作S150、操作S160以及操作S170的描述且將省略。
回應於擦除數目E等於或小於2t(在S160中為是),ECC解碼器150可對讀取碼字集SCW2執行第二ECC解碼(操作S170)以產生經估計碼字集,可藉由對經估計碼字集執行校正子計算來產生最終校正子FSDR,且可判定最終校正子FSDR是否為零(操作S177)。
回應於最終校正子FSDR為零(在S177中為是),ECC解碼器150可判定成功解碼由SUCCESS標示。回應於最終校正子FSDR不為零(在S177中為否),ECC解碼器150可判定擦除數目E等於或小於2t-2是否(操作S179)。
回應於擦除數目E等於或小於2t-2(在S179中為是),ECC解碼器可對讀取碼字集SCW2執行第三ECC解碼(操作S210)以產生經估計碼字集,可藉由對經估計碼字集執行校正子計算來
產生最終校正子FSDR,且可判定最終校正子FSDR是否為零(操作S220)。
回應於最終校正子FSDR為零(在S220中為是),ECC解碼器150可判定成功解碼由SUCCESS標示。回應於最終校正子FSDR不為零(在S210中為否),回應於擦除數目E大於2t(在S160中為否)或回應於擦除數目E大於2t-2(在S179中為否),ECC解碼器150可對讀取碼字集SCW2執行第一ECC解碼(操作S180)以產生經估計碼字集,可藉由對經估計碼字集執行校正子計算來產生最終校正子FSDR且可判定最終校正子FSDR是否為零(操作S190)。
回應於最終校正子FSDR為零(在S190中為是),ECC解碼器150可判定成功解碼由SUCCESS標示,且回應於最終校正子FSDR不為零(在S190中為否),ECC解碼器150可判定經估計碼字集包含由DUE標示的不可校正符號錯誤。
圖19至圖22示出根據一些例示性實施例的ECC解碼器可校正的各種類型的錯誤。
在圖19至圖22中,假定晶片CHIP1至晶片CHIP8對應於圖3中的資料晶片200a至資料晶片200k,晶片CHIP1至晶片CHIP8中的各者可輸出資料集DQ_BL1至資料集DQ_BL8中的各別者,第一同位晶片200pa可輸出第一同位資料PRTS1且第二同位晶片200pb可輸出第二同位資料PRTS2。
另外,假定第一同位資料PRTS1及第二同位資料PRTS2中的各者包含八個同位符號,ECC解碼器150可藉由使用兩個同位符號校正隨機符號錯誤,且ECC解碼器150可藉由使用一個同
位符號校正錯誤位置已知的符號錯誤。
另外,在圖19至圖22中,X標示在以符號為基礎的資料中出現的符號錯誤。
參考圖19,當自晶片CHIP2、晶片CHIP3、晶片CHIP5以及晶片CHIP8輸出的資料集DQ_BL2、資料集DQ_BL3、資料集DQ_BL5以及資料集DQ_BL8中的各者包含一個符號錯誤時,且由於晶片CHIP2、晶片CHIP3、晶片CHIP5以及晶片CHIP8中的各者中的晶粒上ECC引擎不偵測符號錯誤,因此解碼狀態標記DSF1至解碼狀態標記DSF8中的各者具有第二邏輯位準(例如,邏輯低位準『L』),系統ECC引擎130認為接收到的碼字集SCW2不包含錯誤符號,且實際碼字集包含四個符號錯誤。在此情況下,擦除數目E為零。
因此,ECC解碼器150可藉由基於第一同位資料PRTS1及第二同位資料PRTS2而對碼字集SCW2執行第一ECC解碼來校正四個符號錯誤。
參考圖20,當自晶片CHIP5輸出的資料集DQ_BL5包含兩個符號錯誤時,自晶片CHIP8輸出的資料集DQ_BL8包含八個符號錯誤,且由於晶片CHIP5及晶片CHIP8中的各者中的晶粒上ECC引擎偵測符號錯誤,因此解碼狀態標記DSF5及解碼狀態標記DSF8中的各者具有第一邏輯位準(例如,邏輯高位準『H』),系統ECC引擎130認為接收到的碼字集SCW2包括十六個符號錯誤,且實際碼字集包含十個符號錯誤。在此情況下,擦除數目E為十六。
ECC解碼器150可藉由基於第一同位資料PRTS1及第二
同位資料PRTS2而對碼字集SCW2執行第二ECC解碼來校正十個符號錯誤。
參考圖21,當自晶片CHIP2、晶片CHIP3以及晶片CHIP8輸出的資料集DQ_BL2、資料集DQ_BL3以及資料集DQ_BL8中的各者包含兩個符號錯誤時,且由於晶片CHIP2、晶片CHIP3以及晶片CHIP8中的各者中的晶粒上ECC引擎偵測符號錯誤,因此解碼狀態標記DSF2、解碼狀態標記DSF3以及解碼狀態標記DSF8中的各者具有第一邏輯位準(例如,邏輯高位準『H』),系統ECC引擎130認為接收到的碼字集SCW2包括二十四個符號錯誤,且實際碼字集包含六個符號錯誤。在此情況下,擦除數目E為二十四。
ECC解碼器150可藉由基於第一同位資料PRTS1及第二同位資料PRTS2而對碼字集SCW2執行第一ECC解碼來校正六個符號錯誤。
參考圖22,當自晶片CHIP3輸出的資料集DQ_BL3包含四個符號錯誤時,自晶片CHIP5及晶片CHIP8輸出的資料集DQ_BL5及資料集DQ_BL8中的各者包含兩個符號錯誤,由於晶片CHIP3中的晶粒上ECC引擎不偵測符號錯誤,因此解碼狀態標記DSF3具有第二邏輯位準(例如,邏輯低位準『L』),且由於晶片CHIP5及晶片CHIP8中的各者中的晶粒上ECC引擎偵測符號錯誤,因此解碼狀態標記DSF5及解碼狀態標記DSF8中的各者具有第一邏輯位準(例如,邏輯高位準『H』),系統ECC引擎130認為接收到的碼字集SCW2包括十六個符號錯誤,且實際碼字集包含八個符號錯誤。在此情況下,擦除數目E為十六。
ECC解碼器150基於第一同位資料PRTS1及第二同位資料PRTS2而對碼字集SCW2執行第二解碼,且第二ECC解碼失敗。ECC解碼器150可藉由基於第一同位資料PRTS1及第二同位資料PRTS2而對碼字集SCW2執行第一ECC解碼來校正八個符號錯誤。
圖23為示出根據例示性實施例的校正用以控制記憶體模組的記憶體控制器中的錯誤的方法的流程圖。
參考圖1、圖4以及圖6至圖23,提供一種校正用以控制記憶體模組MM的記憶體控制器100中的錯誤的方法,所述記憶體模組MM包含多個資料晶片、第一同位晶片以及第二同位晶片。根據所述方法,記憶體控制器100可接收包含來自多個資料晶片、第一同位晶片以及第二同位晶片的使用者資料集及同位資料集的碼字集SCW2,以及在資料晶片中的晶粒上ECC引擎中產生的解碼狀態標記DSFs(操作S310)。解碼狀態標記DSFs中的各者指示是否在資料晶片中的各別者中偵測到至少一個錯誤位元。
記憶體控制器100中的DSF解碼器185可基於解碼狀態標記DSFs而產生擦除數目E(操作S320),且向系統ECC引擎130中的ECC解碼器150提供擦除數目E(或指示擦除數目E的決策信號DS)。
ECC解碼器150可基於擦除數目E而選擇多個解碼方案中的一者(操作S330),可基於所選擇解碼方案而對碼字集SCW2執行ECC解碼(操作S340),且可校正碼字集SCW2中的多個符號錯誤。
多個解碼方案可包含第一解碼及第二解碼或可包含第一解碼、第二解碼以及第三解碼。
第一解碼可對應於t錯誤校正解碼,第二解碼可對應於2t擦除校正解碼且第三解碼可對應於x錯誤及擦除解碼。在此,t可為指示ECC解碼器150使用第一解碼的可校正符號錯誤的數目的自然數,2t指示ECC解碼器150使用第二解碼的可校正符號錯誤的數目,x指示ECC解碼器使用第三解碼的可校正符號錯誤的數目且x可為大於t且小於2t的自然數。
因此,當擦除數目E大於零且等於或小於2t時,ECC解碼器150可藉由基於校正子SSDR而對讀取碼字集SCW2執行福尼演算法來校正讀取碼字集SCW2中的符號錯誤來產生經估計碼字集,而不執行引起計算延遲的錯誤定位估計器183的BM演算法及CS演算法。ECC解碼器150可減小第二解碼模式中的解碼時間間隔。
圖24為示出可由根據例示性實施例的記憶體系統採用的記憶體模組的方塊圖。
參考圖24,記憶體模組500可包含電路板501中或安裝於電路板501上的暫存時鐘驅動器(registered clock driver;RCD)590、多個半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d、多個資料緩衝器541至資料緩衝器545及資料緩衝器551至資料緩衝器554、模組電阻單元560及模組電阻單元570、串行存在偵測(serial present detect;SPD)晶片580
以及功率管理積體電路(power management integrated circuit;PMIC)585。
RCD 590可在記憶體控制器100的控制下控制半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d及PMIC 585。舉例而言,RCD 590可自記憶體控制器100接收位址ADDR、命令CMD以及時鐘信號CK。
SPD晶片580可為可程式化唯讀記憶體(例如EEPROM)。SPD晶片580可包含記憶體模組100的初始資訊或裝置資訊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之間在垂直於第二方向D2的第一方向D1上延伸。第一邊緣部分503及第二邊緣部分105可在第二方向D2上延伸。
RCD 590可在電路板501的中心處。多個半導體記憶體
裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d可在RCD 590與第一邊緣部分503之間及RCD 590與第二邊緣部分505之間以多個列配置。
在此情況下,半導體記憶體裝置601a至半導體記憶體裝置601e及半導體記憶體裝置602a至半導體記憶體裝置602e可在RCD 590與第一邊緣部分503之間沿著多個列配置。半導體記憶體裝置603a至半導體記憶體裝置603d及半導體記憶體裝置604a至半導體記憶體裝置604d可在RCD 590與第二邊緣部分505之間沿著多個列配置。半導體記憶體裝置601a至半導體記憶體裝置601d、半導體記憶體裝置602a至半導體記憶體裝置602d、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d可稱為資料晶片,且半導體記憶體裝置601e及半導體記憶體裝置602e可分別稱為第一同位晶片及第二同位晶片。
多個半導體記憶體裝置601a至半導體記憶體裝置601d、半導體記憶體裝置602a至半導體記憶體裝置602d、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d中的各者可經由用於接收/傳輸資料信號DQ及資料選通信號DQS的資料傳輸線耦接至資料緩衝器541至資料緩衝器544及資料緩衝器551至資料緩衝器554中的對應一者。半導體記憶體裝置601e及半導體記憶體裝置602e中的各者可經由用於接收/傳輸同位資料PRTS及資料選通信號DQS的資
料傳輸線耦接至資料緩衝器545。
RCD 590可經由命令/位址傳輸線561將命令/位址信號(例如CA)提供至半導體記憶體裝置601a至半導體記憶體裝置601e,且可經由命令/位址傳輸線563將命令/位址信號提供至半導體記憶體裝置602a至半導體記憶體裝置602e。
另外,RCD 590可經由命令/位址傳輸線571將命令/位址信號提供至半導體記憶體裝置603a至半導體記憶體裝置603d,且可經由命令/位址傳輸線573將命令/位址信號提供至半導體記憶體裝置604a至半導體記憶體裝置604d。
命令/位址傳輸線561及命令/位址傳輸線563可共同地連接至安置以鄰近於第一邊緣部分503的模組電阻單元560,且命令/位址傳輸線571及命令/位址傳輸線573可共同地連接至安置以鄰近於第二邊緣部分505的模組電阻單元570。
模組電阻單元560及模組電阻單元570中的各者可包含連接至端接電壓Vtt的端接電阻器Rtt/2。在此情況下,模組電阻單元560及模組電阻單元570的配置可減少模組電阻單元的數目,因此減小配置端接電阻器的面積。
另外,多個半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d中的各者可為DRAM裝置。
SPD晶片580可鄰近於RCD 590,且PMIC 585可處於半導體記憶體裝置603d與第二邊緣部分505之間。PMIC 585可基於輸入電壓VIN而產生電源電壓VDD,且可將電源電壓VDD提
供至半導體記憶體裝置601a至半導體記憶體裝置601e、半導體記憶體裝置602a至半導體記憶體裝置602e、半導體記憶體裝置603a至半導體記憶體裝置603d以及半導體記憶體裝置604a至半導體記憶體裝置604d。
儘管其示出為PMIC 585鄰近於圖24中的第二邊緣部分505,但在一些例示性實施例中,PMIC 585可在電路板501的中心部分中且可鄰近於RCD 590。
圖25為示出根據一些例示性實施例的具有四列記憶體模組的記憶體系統的方塊圖。
參看圖25,記憶體系統700可包含記憶體控制器710以及至少一或多個記憶體模組720及記憶體模組730。
記憶體控制器710可控制記憶體模組720及/或記憶體模組730以便執行自處理器或主機提供的命令。記憶體控制器710可在處理器或主機中實施,或可藉由應用程式處理器或晶片上系統(system-on-a-chip;SoC)實施。記憶體控制器710可包含經組態以將信號傳輸至至少一或多個記憶體模組720及記憶體模組730的傳輸器711,及經組態以自至少一或多個記憶體模組720及記憶體模組730接收信號的接收器713。為了信號完整性,源極端接可藉由記憶體控制器710的匯流排740上的電阻器RTT實施。電阻器RTT可耦合至電源電壓VDDQ。記憶體控制器710可包含系統ECC引擎715,且系統ECC引擎715可採用圖6的系統ECC引擎130。
因此,系統ECC引擎715可包含ECC編碼器及ECC解碼器。ECC解碼器可基於自一或多個記憶體模組720及記憶體模
組730接收到的解碼狀態標記而判定擦除數目,可基於擦除數目而選擇多個解碼方案中的一者,可基於所選擇解碼方案而對自一或多個記憶體模組720及記憶體模組730讀取的碼字集執行ECC解碼,且可校正碼字集中的多個符號錯誤。
至少一或多個記憶體模組720及記憶體模組730可稱為第一記憶體模組720及第二記憶體模組730。第一記憶體模組720及第二記憶體模組730可經由匯流排740耦接至記憶體控制器710。第一記憶體模組720及第二記憶體模組730中的各者可對應於圖1中的記憶體模組MM。第一記憶體模組720可包含至少一或多個記憶體列RK1及記憶體列RK2,且第二記憶體模組730可包含一或多個記憶體列RK3及記憶體列RK4。
第一記憶體模組720及第二記憶體模組730中的各者可包含多個資料晶片、第一同位晶片以及第二同位晶片。資料晶片中的各者可包含產生解碼狀態標記的晶粒上ECC引擎OD ECCE。
圖26為示出包含根據一些例示性實施例的記憶體模組的行動系統的方塊圖。
參考圖26,行動系統800可包含應用程式處理器810、連接模組820、記憶體模組MM 850、非揮發性記憶體裝置840、使用者介面830以及電源870。應用程式處理器810可包含記憶體控制器(memory controller;MCT)811。記憶體控制器811可包含圖6的系統ECC引擎130。
應用程式處理器810可執行應用程式,諸如網路瀏覽器、遊戲應用程式、視訊播放機等。連接模組820可與外部裝置執行有線或無線通信。
記憶體模組850可儲存藉由應用程式處理器810處理的資料或操作為工作記憶體。記憶體模組850可包含多個半導體記憶體裝置MD 851、半導體記憶體裝置MD 852、半導體記憶體裝置MD 853以及半導體記憶體裝置MD 85r(其中r為大於三的正整數)以及RCD 861。
半導體記憶體裝置851、半導體記憶體裝置852、半導體記憶體裝置853以及半導體記憶體裝置85r可包含多個資料晶片、第一同位晶片以及第二同位晶片。因此,記憶體控制器811中的系統ECC引擎可基於自記憶體模組850接收到的解碼狀態標記而判定擦除數目,可基於擦除數目而選擇多個解碼方案中的一者,可基於所選擇解碼方案而對自記憶體模組850讀取的碼字集執行ECC解碼,且可校正碼字集中的多個符號錯誤。
非揮發性記憶體裝置840可儲存用於啟動行動系統800的啟動影像。使用者介面830可包含至少一個輸入裝置,諸如小鍵盤、觸控螢幕等;及至少一個輸出裝置,諸如揚聲器、顯示裝置等。電源870可將操作電壓供應至行動系統800。
可使用各種類型的封裝安裝行動系統800或行動系統800的組件。
圖27為示出根據一些例示性實施例的運算系統的方塊圖。
參考圖27,運算系統30可包含多個主機900a、主機900b、...、主機900g以及記憶體系統1000,且記憶體系統1000可包含記憶體控制器1100及記憶體模組1200。此處,g為大於二的自然數。
記憶體模組1200可包含多個資料晶片1210a至資料晶片1210k、第一同位晶片1220以及第二同位晶片1230。第一同位晶片1220及第二同位晶片1230可稱為ECC晶片。資料晶片1210a至資料晶片1210k中的各者可包含晶粒上ECC引擎1240a至晶粒上ECC引擎1240k中的各別者。
記憶體控制器1100可將命令CMD及位址ADDR應用於記憶體模組1200,可與記憶體模組1200交換碼字集SCW且可自記憶體模組1200接收解碼狀態標記DSFs。
記憶體控制器1100可包含處理器1110、系統ECC引擎1130以及DSF解碼器1140。
處理器1110可控制記憶體控制器1100的總體操作。
系統ECC引擎1130可對使用者資料集執行ECC編碼以產生同位資料集,且可在寫入操作中向記憶體模組1200提供包含使用者資料集及同位資料集的碼字集SCW。
DSF解碼器1140可在讀取操作中自資料晶片1210a至資料晶片1210k中的晶粒上ECC引擎1240a至晶粒上ECC引擎1240k接收解碼狀態標記DSFs。解碼狀態標記DSFs中的各者可指示是否在資料晶片1210a至資料晶片1210k中的各者中偵測到至少一個錯誤位元。DSF解碼器1140可藉由對解碼狀態標記DSF進行解碼來產生指示來自解碼狀態標記DSFs當中的具有第一邏輯位準的解碼狀態標記的數目的決策信號,且可將決策信號提供至系統ECC引擎1130。
系統ECC引擎1130可基於決策信號而選擇多個解碼方案中的一者,可基於所選擇解碼方案及同位核對矩陣而對自記憶
體模組1200讀取的碼字集SCW執行ECC解碼,且可校正碼字集SCW中的多個符號錯誤。
記憶體控制器1100可經由運算高速鏈接(CXL)匯流排50連接至多個主機900a、主機900b、...、主機900g,且可藉由經由CXL介面使多個主機900a、主機900b、...、主機900g連通來控制多個資料晶片1210a至資料晶片1210k、第一同位晶片1220以及第二同位晶片1230。
在一些實施例中,CXL匯流排50可支援多個CXL協定且訊息及/或資料可經由多個CXL協定傳輸。舉例而言,多個CXL協定可包含非相干協定(及/或I/O協定CXL.io)、相干協定(或快取記憶體協定CXL.快取記憶體)以及記憶體存取協定(或記憶體協定CXL.記憶體)。在一些實施例中,CXL匯流排50可支援諸如周邊組件互連(peripheral component interconnection;PCI)、PCI互連(快速周邊組件互連;PCIe)、通用串列匯流排(universal serial bus;USB)以及串列先進技術附接(serial advanced technology attachment;SATA)的協定。由CXL匯流排50支援的協定可稱為互連協定。
記憶體控制器1100可指將功能提供至多個主機900a、主機900b、...、主機900g的裝置。基於CXL規範2.0,記憶體控制器1100可為支援CXL規範的加速器。舉例而言,在多個主機900a、主機900b、...、主機900g中執行的運算操作及I/O操作中的至少一些可卸載至記憶體控制器1100。在一些實施例中,多個主機900a、主機900b、...、主機900g中的各者可包含提供固定功能的可程式化組件(例如,圖形處理單元(graphic processing unit;GPU)
及神經處理單元(neural processing unit;NPU)、組件(例如,智慧財產權(intellectual property;IP)核心))及可重組態組件(例如,場可程式化閘陣列(field programmable gate array;FPGA))中的任一者或任何組合。
圖28為示出根據一些例示性實施例的圖27的運算系統中的多個主機中的一者的方塊圖。
在圖28中,來自多個主機900a、主機900b、...、主機900g當中的主機900a的組態及主機900b、...、主機900g的各組態可與主機900a的組態實質上相同。
參考圖28,主機900a可包含處理器910及主機記憶體940。
處理器910可為主機900a的中央處理單元(central processing unit;CPU)。在一些實施例中,處理器910可為基於CXL的處理器。如圖28中所示出,處理器910可連接至主機記憶體940且可包含實體層917、多協定多工器916、介面電路915、相干/快取記憶體電路913、匯流排電路914、至少一個核心911以及I/O裝置912。
至少一個核心911可執行指令且連接至相干/快取記憶體電路913。相干/快取記憶體電路913可包含快取記憶體階層,且可稱為相干/快取記憶體邏輯。如圖28中所示出,相干/快取記憶體電路913可與至少一個核心911及介面電路915通信。舉例而言,相干/快取記憶體電路913可經由包含至少相干協定及記憶體存取協定的協定實現通信。在一些實施例中,相干/快取記憶體電路913可包含直接記憶體存取(direct memory access;DMA)電
路。I/O裝置912可用於與匯流排電路914通信。舉例而言,匯流排電路914可為PCIe邏輯,且I/O裝置912可為PCIe I/O裝置。
介面電路915可在處理器910的組件(例如,相干/快取記憶體電路913及匯流排電路914)與記憶體系統1000之間實現通信。在一些實施例中,介面電路915可根據多個協定(例如,非相干協定、相干協定以及記憶體存取協定)在處理器910的組件與記憶體系統1000之間實現通信。舉例而言,介面電路915可基於用於在處理器910的組件與記憶體系統1000之間通信的訊息及資料而判定多個協定中的一者。
多協定多工器916可包含至少一個協定佇列。介面電路915可連接至至少一個協定佇列且經由至少一個協定佇列將訊息及/或資料傳輸至記憶體系統1000及自記憶體系統1000接收訊息及/或資料。在一些實施例中,介面電路915及多協定多工器916可一體成形為單個組件。在一些實施例中,多協定多工器916可包含分別對應於由CXL匯流排50支援的多個協定的多個協定佇列。在一些實施例中,多協定多工器916可判斷不同協定的通信且提供所選擇通信至實體層917。
圖29示出用於圖27的運算系統中的通信的多協定的實例。
參考圖29,處理器910及記憶體控制器1100可與基於多個協定彼此通信。
根據上述CXL實例,多個協定可包含記憶體協定MEM、相干協定CACHE以及非相干協定IO。記憶體協定MEM可界定自主至從屬的異動及自從屬至主的異動。相干協定CACHE可界定
記憶體控制器1100與處理器910之間的互動。舉例而言,相干協定CACHE的介面可包含包含請求、回應以及資料的三個通道。非相干協定IO可提供用於I/O裝置的非相干裝載/儲存。
記憶體控制器1100可與記憶體模組1200通信,且處理器910可與主機記憶體940通信。
圖30為在根據一些例示性實施例的記憶體系統對應於由CXL協定定義的3型記憶體系統時的運算系統的實例。
參考圖30,運算系統1300可包含根複合體1310、連接至根複合體1310的CXL記憶體擴展器1320以及記憶體資源1330。
根複合體1310可包含本籍代理1311及I/O橋1313,且本籍代理1311可基於相干協定CXL.mem而與CXL記憶體擴展器1320通信,I/O橋1313可基於非相干協定,例如I/O協定CXL.io與CXL記憶體擴展器1320通信。在CXL協定基礎中,本籍代理1311可對應於針對給定位址經配置以解決運算系統1300的整個一致性的主機側上的代理。
CXL記憶體擴展器1320可包含記憶體控制器1321(其可為智慧型控制器)且記憶體控制器1321可採用圖27中的記憶體控制器1100。
另外,CXL記憶體擴展器1320可基於I/O協定CXL.io或PCIe而經由I/O橋1313將資料輸出至根複合體1310。
記憶體資源1330可包含多個記憶體區MR1、記憶體區MR2、...、記憶體區MRf,且多個記憶體區MR1、記憶體區MR2、...、記憶體區MRf中的各者可實施為各種單元的記憶體。在此,f可以是大於二的自然數。
圖31為示出包含根據一些例示性實施例的運算系統的資料中心的方塊圖。
參考圖31,資料中心2000可為收集各種類型的資料且提供各種服務的設施,且可稱為資料儲存中心。資料中心2000可為用於操作搜尋引擎及資料庫的系統,且可為供諸如銀行或政府機構的公司使用的運算系統。資料中心2000可包含應用程式伺服器2100_1至應用程式伺服器2100_U以及儲存伺服器2200_1至儲存伺服器2200_V。應用程式伺服器2100_1至應用程式伺服器2100_U的數目以及儲存伺服器2200_1至儲存伺服器2200_V的數目可根據一些例示性實施例不同地進行選擇,且應用程式伺服器2100_1至應用程式伺服器2100_U的數目與儲存伺服器2200_1至儲存伺服器2200_V的數目可彼此不同。
在下文中,為便於說明,將描述儲存伺服器2200_1的實例。
儲存伺服器2200_1可包含處理器2210_1、記憶體2220_1、開關2230_1、網路介面控制器(network interface controller;NIC)2240_1、儲存裝置2250_1以及CXL介面2260_1。儲存伺服器2200_V可包含處理器2210_v、記憶體2220_v、開關2230_v、NIC 2240_v、儲存裝置2250_v以及CXL介面2260_v。
處理器2210_1可控制儲存伺服器2200_1的總體操作。記憶體2220_1可在處理器2210_1的控制下儲存各種指令或資料。處理器2210_1可經組態以存取記憶體2220_1以執行各種指令或處理資料。在一些實施例中,記憶體2220_1可包含各種種類的記憶體裝置中的至少一者,諸如雙資料速率同步DRAM(Double Data
Rate Synchronous DRAM;DDR SDRAM)、高頻寬記憶體(High Bandwidth Memory;HBM)、混雜記憶體立方體(hybrid Memory Cube;HMC)、雙直列記憶體模組(Dual In-line Memory Module;DIMM)、傲騰DIMM(Optane DIMM)或非揮發性DIMM(Non-Volatile DIMM;NVDIMM)。
在一些實施例中,包含於儲存伺服器2200_1中的處理器2210_1的數目及包含於儲存伺服器2200_1中的記憶體2220_1的數目可不同地改變或修改。在實施例中,包含於儲存伺服器2200_1中的處理器2210_1及記憶體2220_1可構成處理器記憶體對,且包含於儲存伺服器2200_1中的處理器記憶體對的數目可不同地改變或修改。在一些實施例中,包含於儲存伺服器2200_1中的處理器2210_1的數目及包含於儲存伺服器2200_1中的記憶體2220_1的數目可不同。處理器2210_1可包含單一核心處理器或多核心處理器。
在處理器2210_1的控制下,開關2230_1可選擇性地連接處理器2210_1及儲存裝置2250_1或可選擇性地連接NIC 2240_1、儲存裝置2250_1以及CXL介面2260_1。
NIC 2240_1可將儲存伺服器2200_1與網路NT連接。NIC 2240_1可包含網路介面卡、網路配接器以及類似者。NIC 2240_1可經由有線介面、無線介面、藍牙介面或光學介面連接至網路NT。NIC 2240_1可包含內部記憶體、數位信號處理器(digital signal processor;DSP)、主機匯流排介面以及類似者,且可經由主機匯流排介面與處理器2210_1或開關2230_1連接。主機匯流排介面可包含各種介面方案中的至少一者,諸如先進技術附接
(advanced technology attachment;ATA)、串行ATA(SATA)、外部SATA(external SATA;e-SATA)、小電腦系統介面(small computer system interface;SCSI)、串列附接SCSI(serial attached SCSI;SAS)、周邊組件互連(PCI)、PCI快速(PCI express;PCIe)、NVMe、運算高速鏈接(CXL)、IEEE 1394、通用串列匯流排(universal serial bus;USB)、安全數位(secure digital;SD)卡介面、多媒體卡(multi-media card;MMC)介面、嵌入MMC(embedded MMC;eMMC)介面、通用快閃儲存裝置(universal flash storage;UFS)介面、嵌入UFS(embedded UFS;eUFS)介面、緊密快閃(compact flash;CF)卡介面等。在實施例中,NIC 2240_1可與處理器2210_1、開關2230_1以及儲存裝置2250_1中的至少一者整合。
在處理器2210_1的控制下,儲存裝置2250_1可儲存資料或可輸出所儲存資料。儲存裝置2250_1可包含控制器CTRL 2251_1、非揮發性記憶體NAND 2252_1、DRAM 2253_1以及介面(I/F)2254_1。在一些實施例中,儲存裝置2250_1可更包含用於安全性或隱私權的安全元件SE。儲存裝置2250_v可包含控制器CTRL 2251_v、非揮發性記憶體NAND 2252_v、DRAM 2253_v以及介面I/F 2254_v。在一些實施例中,儲存裝置2250_v可更包含用於安全性或隱私權的安全元件SE。
控制器2251_1可控制儲存裝置2250_1的總體操作。控制器2251_1可包含SRAM。回應於經由I/F 2254_1接收到的信號,控制器2251_1可將資料儲存於非揮發性記憶體2252_1中或可輸出儲存於非揮發性記憶體2252_1中的資料。控制器2251_1可經組態以基於雙態觸發介面或ONFI而控制非揮發性記憶體
2252_1。
DRAM 2253_1可經組態以暫時儲存待儲存於非揮發性記憶體2252_1中的資料或自非揮發性記憶體2252_1讀取的資料。DRAM 2253_1可經組態以儲存控制器2251_1操作必要的各種資料(例如,元資料及映射資料)。I/F 2254_1可提供控制器2251_1與處理器2210_1、開關2230_1或NIC 2240_1之間的實體連接。I/F 2254_1可經實施以支援允許儲存裝置2250_1經由專用電纜直接連接的直接附接儲存(direct-attached storage;DAS)方式。I/F 2254_1可經由主機介面匯流排基於各種上述介面中的至少一者而實施。
儲存伺服器2200_1的以上組件提供為實例,且本揭露內容不限於此。儲存伺服器2200_1的以上組件可應用於其他儲存伺服器中的各者或應用程式伺服器2100_1至應用程式伺服器2100_U中的各者。在應用程式伺服器2100_1至應用程式伺服器2100_U中的各者中,可選擇性地省略儲存裝置2150_1。
應用程式伺服器2100_1可包含處理器2110_1、記憶體2120_1、開關2130_1、NIC 2140_1以及CXL介面2160_1。應用程式伺服器2100_U可包含處理器2110_u、記憶體2120_u、開關2130_u、NIC 2140_u以及CXL介面2160_u。
應用程式伺服器2100_1至應用程式伺服器2100_U以及儲存伺服器2200_1至儲存伺服器2200_V可經由網路NT彼此通信。網路NT可使用光纖通道(fiber channel;FC)或乙太網路實施。FC可為用於相對高速度資料傳輸的媒體,且可使用提供高效能及/或高可用性的光學開關。儲存伺服器2200_1至儲存伺服器
2200_V可根據網路NT 3300的存取方案提供作為檔案儲存器、區塊儲存器或物件儲存器。
在一些例示性實施例中,網路NT可為僅儲存網路或專用於儲存的網路,諸如儲存區域網路(儲存區域network;SAN)。舉例而言,SAN可為使用FC網路且根據FC協定(FC protocol;FCP)實施的FC-SAN。對於另一實例,SAN可為IP-SAN,其使用傳輸控制協定/網際網路協定(transmission control protocol/internet protocol;TCP/IP)網路且根據iSCSI(經由TCP/IP的SCSI或網際網路SCSI)協定實施。在其他例示性實施例中,網路NT可為通用網路,諸如TCP/IP網路。舉例而言,可根據協定中的至少一者實施網路NT,諸如經由乙太網的FC(FC over Ethernet;FCoE)、網路附接儲存(network attached storage;NAS)、經由組構的非揮發性記憶體高速(nonvolatile memory express;NVMe)(nonvolatile memory express over Fabrics;NVMe-oF)等。
在一些例示性實施例中,多個應用程式伺服器2100_1至應用程式伺服器2100_U中的至少一者可經組態以經由網路NT存取剩餘應用程式伺服器中的至少一者或儲存伺服器2200_1至儲存伺服器2200_V中的至少一者。
舉例而言,應用程式伺服器2100_1可經由網路NT儲存由儲存伺服器2200_1至儲存伺服器2200_V中的至少一者中的使用者或用戶端請求的資料。替代地,應用程式伺服器2100_1可經由網路NT獲得由儲存伺服器2200_1至儲存伺服器2200_V中的至少一者中的使用者或用戶端請求的資料。在此情況下,應用程式伺服器2100_1可由網頁伺服器、資料庫管理系統(database
management system;DBMS)或類似者實施。
應用程式伺服器2100_1可經由網路NT存取應用程式伺服器2100_U的記憶體2120_u或儲存裝置2150_u或儲存伺服器2200_1的儲存裝置2250_1。因此,應用程式伺服器2100_1可對儲存於應用程式伺服器2100_1至應用程式伺服器2100_U及/或儲存伺服器2200_1至儲存伺服器2200_V中的資料執行各種操作。舉例而言,應用程式伺服器2100_1可執行命令以在應用程式伺服器2100_1至應用程式伺服器2100_U及/或儲存伺服器2200_1至儲存伺服器2200_V之間移動資料或複製資料。可直接或經由儲存伺服器2200_1至儲存伺服器2200_V的記憶體2220_1至記憶體2220_v將資料自儲存伺服器2200_1至儲存伺服器2200_V的儲存裝置2250_1至儲存裝置2250_v傳送至應用程式伺服器2100_1至應用程式伺服器2100_U的記憶體2120_1至記憶體2120_u。舉例而言,經由網路NT傳送的資料可為針對安全性或隱私權進行加密的資料。
儲存伺服器2200_1至儲存伺服器2200_V及應用程式伺服器2100_1至應用程式伺服器2100_U可經由CXL介面2260_1至CXL介面2260_v以及CXL介面2160_1至CXL介面2160_u與記憶體擴展器2300連接。記憶體擴展器2300可用作儲存伺服器2200_1至儲存伺服器2200_V中的各者的擴展記憶體,且應用程式伺服器2100_1至應用程式伺服器2100_U或包含於其中的虛擬化組件可經由CXL介面2260_1至CXL介面2260_v以及CXL介面2160_1至CXL介面2160_u以及記憶體擴展器2300彼此通信。
本揭露可應用於包含記憶體模組及記憶體系統的各種電子裝置及系統。舉例而言,本揭露可應用於系統,諸如個人電腦(personal computer;PC)、伺服器電腦、資料中心、工作站、行動電話、智慧型手機、平板電腦、膝上型電腦、個人數位助理(personal digital assistant;PDA)、攜帶型多媒體播放器(portable multimedia player;PMP)、數位攝影機、攜帶型遊戲控制台、音樂播放器、攝錄影機、視訊播放器、導航裝置、可穿戴裝置、物聯網(internet of things;IoT)裝置、萬物網(internet of everything;IoE)裝置、電子書閱讀器、虛擬實境(virtual reality;VR)裝置、擴增實境(augmented reality;AR)裝置、機器人裝置、無人機等。
雖然已參考本揭露的一些例示性實施例特定地繪示及描述本揭露,但所屬技術領域中具有通常知識者應理解,可在不脫離如由以下申請專利範圍定義的本揭露的範疇的情況下在其中進行形式及細節的各種改變。
130:系統錯誤校正碼引擎
140:ECC編碼器
150:ECC解碼器
180:記憶體
C_SDQ:經校正使用者資料集
DS:決策信號
PCM:同位核對矩陣
PGM:同位產生矩陣
PRTS1:第一同位資料
PRTS2:第二同位資料
SCW1:碼字集
SCW2:讀取碼字集
SDQ:使用者資料集
SPRT:同位資料集
Claims (20)
- 一種記憶體控制器,經組態以控制包含多個資料晶片、第一同位晶片以及第二同位晶片的記憶體模組,所述記憶體控制器包括:系統錯誤校正碼(ECC)引擎;以及處理器,經組態以控制所述系統ECC引擎,其中所述系統ECC引擎包含ECC解碼器及經組態以儲存同位核對矩陣的記憶體,其中所述ECC解碼器經組態以:基於解碼狀態標記而選擇多個ECC解碼方案中的一者,所述解碼狀態標記自所述多個資料晶片提供,其中所述解碼狀態標記中的各者指示是否在所述多個資料晶片中的各別者中偵測到至少一個錯誤位元;以及藉由基於所述所選擇解碼方案及所述同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自所述記憶體模組的所述讀取碼字集中的多個符號錯誤,且其中所述ECC解碼器經組態以基於對應於具有第一邏輯位準的所述解碼狀態標記的數目的擦除數目而選擇所述多個ECC解碼方案中的一者。
- 如請求項1所述的記憶體控制器,其中所述多個ECC解碼方案包含第一解碼及第二解碼,其中所述第一解碼對應於t錯誤校正解碼,其中所述第二解碼對應於2t擦除校正解碼,其中t為指示所述ECC解碼器使用所述第一解碼的可校正符號錯誤的數目的自然數,以及其中2t指示所述ECC解碼器使用所述第二解碼的可校正符號錯誤的數目。
- 如請求項2所述的記憶體控制器,其中回應於所述擦除數目為零且基於所述讀取碼字集及所述同位核對矩陣的校正子不為零,所述ECC解碼器經組態以藉由對所述讀取碼字集執行所述第一解碼來產生第一經估計碼字集,且其中,回應於所述擦除數目為零且所述校正子為零,所述ECC解碼器經組態以判定所述讀取碼字集不包含符號錯誤。
- 如請求項3所述的記憶體控制器,其中所述ECC解碼器經組態以:藉由對所述校正子執行伯勒蘭普梅西(Berlekamp-Massey)演算法產生錯誤定位多項式的係數,並基於所述係數執行陳氏尋根法(Chien search)演算法搜尋錯誤位置,而產生錯誤位置信號;基於所述錯誤位置信號對所述讀取碼字集執行福尼(Forney)演算法來產生所述第一經估計碼字集;基於所述第一經估計碼字集及所述同位核對矩陣而產生最終校正子;回應於所述最終校正子為零而判定已成功解碼;以及回應於所述最終校正子不為零而判定存在不可校正錯誤。
- 如請求項2所述的記憶體控制器,其中回應於所述擦除數目大於零且等於或小於2t,所述ECC解碼器經組態以藉由對所述讀取碼字集執行所述第二解碼來產生第一經估計碼字集,且其中所述ECC解碼器經組態以對所述讀取碼字集執行福尼(Forney)演算法來產生所述第一經估計碼字集。
- 如請求項5所述的記憶體控制器,其中所述ECC解碼器經組態以:基於所述第一經估計碼字集及所述同位核對矩陣而產生最終校正子;回應於所述最終校正子為零而判定已成功解碼;以及回應於所述最終校正子不為零而藉由對所述讀取碼字集執行所述第一解碼來產生第二經估計碼字集。
- 如請求項2所述的記憶體控制器,其中回應於所述擦除數目大於2t,所述ECC解碼器經組態以藉由對所述讀取碼字集執行所述第一解碼來產生經估計碼字集。
- 如請求項7所述的記憶體控制器,其中所述ECC解碼器經組態以:基於所述經估計碼字集及所述同位核對矩陣而產生最終校正子;回應於所述最終校正子為零而判定已成功解碼;以及回應於所述最終校正子不為零而判定存在不可校正錯誤。
- 如請求項1所述的記憶體控制器,其中所述多個ECC解碼方案包含第一解碼、第二解碼以及第三解碼,其中所述第一解碼對應於t錯誤校正解碼,其中所述第二解碼對應於2t擦除校正解碼,其中所述第三解碼對應於x錯誤及擦除解碼,其中t為指示所述ECC解碼器使用所述第一解碼的可校正符號錯誤的數目的自然數,其中2t指示所述ECC解碼器使用所述第二解碼的可校正符號錯誤的數目,其中x指示所述ECC解碼器使用所述第三解碼的可校正符號錯誤的數目,以及其中x為大於t且小於2t的自然數。
- 如請求項9所述的記憶體控制器,其中所述ECC解碼器經組態以:回應於所述擦除數目大於零且等於或小於2t而藉由對所述讀取碼字集執行所述第二解碼來產生第一經估計碼字集;基於所述第一經估計碼字集及所述同位核對矩陣而產生第一最終校正子;以及回應於所述第一最終校正子不為零且所述擦除數目小於或等於2t-2而藉由對所述讀取碼字集執行所述第三解碼來產生第二經估計碼字集。
- 如請求項10所述的記憶體控制器,其中所述ECC解碼器經組態以:基於所述第二經估計碼字集及所述同位核對矩陣而產生第二最終校正子;回應於所述第二最終校正子為零而判定已成功解碼;以及回應於所述第二最終校正子不為零而藉由對所述讀取碼字集執行所述第一解碼來產生第三經估計碼字集。
- 如請求項11所述的記憶體控制器,其中所述ECC解碼器經組態以:基於所述第三經估計碼字集及所述同位核對矩陣而產生第三最終校正子;回應於所述第三最終校正子為零而判定已成功解碼;以及回應於所述第三最終校正子不為零而判定存在不可校正錯誤。
- 如請求項1所述的記憶體控制器,其中所述ECC解碼器包括:第一校正子計算器,經組態以藉由對所述讀取碼字集及所述同位核對矩陣執行矩陣乘法運算來產生校正子;第一子解碼器,經組態以回應於所述擦除數目大於零且等於或小於2t而藉由基於所述校正子而校正所述讀取碼字集中的所述符號錯誤來產生第一經估計碼字集;第二子解碼器,經組態以回應於所述擦除數目為零而藉由基於所述校正子而產生錯誤定位多項式的係數、藉由基於所述係數而產生錯誤位置信號以及藉由基於所述錯誤位置信號而校正所述讀取碼字集中的所述符號錯誤來產生第二經估計碼字集;以及解多工器,經組態以基於指示所述擦除數目的決策信號而將所述校正子提供至所述第一子解碼器或所述第二子解碼器中的一者,以及其中t為指示所述ECC解碼器使用第一解碼的可校正符號錯誤的數目的自然數,以及其中2t為指示所述ECC解碼器使用第二解碼的可校正符號錯誤的數目的自然數。
- 如請求項13所述的記憶體控制器,更包括解碼狀態標記解碼器,其中所述解碼狀態標記解碼器經組態以:接收所述解碼狀態標記;藉由解碼所述解碼狀態標記來產生所述決策信號;以及將所述決策信號提供至所述ECC解碼器,其中所述第一子解碼器經組態以:藉由對所述第一經估計碼字集及所述同位核對矩陣執行所述矩陣乘法運算來產生第一最終校正子;以及回應於所述第一最終校正子的校正子值不為零而將所述第一經估計碼字集提供至所述第二子解碼器,其中所述第二子解碼器包含緩衝器,所述緩衝器經組態以:儲存所述第二經估計碼字集;以及基於基於所述同位核對矩陣及所述第二經估計碼字集而產生的第二最終校正子而輸出所述第二經估計碼字集或不可校正錯誤信號中的一者。
- 如請求項1所述的記憶體控制器,其中:所述讀取碼字集包含使用者資料集、第一同位資料以及第二同位資料;自所述多個資料晶片讀取所述使用者資料集;自所述第一同位晶片讀取所述第一同位資料;以及自所述第二同位晶片讀取所述第二同位資料,其中基於里德所羅門碼(Reed-Solomon code)而產生所述同位核對矩陣,且所述同位核對矩陣包含:第一子核對矩陣,對應於所述使用者資料集、所述第一同位資料及/或所述第二同位資料;以及第二子核對矩陣,對應於所述使用者資料集、所述第一同位資料及/或所述第二同位資料,以及其中所述ECC解碼器經組態以基於第一子核對矩陣及所述第二子核對矩陣而產生校正子。
- 一種記憶體系統,包括:記憶體模組,包含多個資料晶片、第一同位晶片以及第二同位晶片,其中所述多個資料晶片中的各者包含晶粒上錯誤校正碼(ECC)引擎;以及記憶體控制器,經組態以控制所述記憶體模組,其中所述記憶體控制器包含:解碼狀態標記解碼器,經組態以自所述記憶體模組接收由包含在所述多個資料晶片中的多個晶粒上ECC引擎產生的解碼狀態標記,且藉由對所述解碼狀態標記進行解碼來產生指示對應於具有第一邏輯位準的所述解碼狀態標記的數目的擦除數目的決策信號,所述解碼狀態標記中的各者指示是否在所述多個資料晶片中的各別者中偵測到至少一個錯誤位元;以及ECC解碼器,經組態以基於所述決策信號而選擇多個ECC解碼方案中的一者,且藉由基於所述所選擇解碼方案及同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自所述記憶體模組的讀取碼字集中的多個符號錯誤。
- 如請求項16所述的記憶體系統,其中所述多個晶粒上ECC引擎中的各者包括:校正子產生器,經組態以基於讀取資料及同位資料而產生子校正子;錯誤定位器,經組態以藉由對所述校正子進行解碼來產生錯誤位置信號,所述錯誤位置信號指示所述讀取資料中的錯誤位元的位置;以及解碼狀態標記產生器,經組態以基於所述校正子及所述錯誤位置信號而產生所述解碼狀態標記的對應解碼狀態標記,所述對應解碼狀態標記指示是否在所述讀取資料中偵測到所述錯誤位元。
- 如請求項16所述的記憶體系統,其中所述ECC解碼器經組態以基於所述擦除數目而選擇所述多個ECC解碼方案中的一者,其中所述多個ECC解碼方案包含第一解碼及第二解碼,其中所述第一解碼對應於t錯誤校正解碼,其中所述第二解碼對應於2t錯誤擦除解碼,其中t為指示所述ECC解碼器使用所述第一解碼的可校正符號錯誤的數目的自然數,其中2t為指示所述ECC解碼器使用所述第二解碼的可校正符號錯誤的數目的自然數,其中回應於所述擦除數目為零且基於所述讀取碼字集及所述同位核對矩陣的校正子不為零,所述ECC解碼器經組態以藉由對所述讀取碼字集執行所述第一解碼來產生經估計碼字集,或其中回應於所述擦除數目大於零且等於或小於2t,所述ECC解碼器經組態以藉由對所述讀取碼字集執行所述第二解碼來產生經估計碼字集。
- 如請求項16所述的記憶體系統,其中所述ECC解碼器經組態以基於所述擦除數目而選擇所述多個ECC解碼方案中的一者,其中所述多個ECC解碼方案包含第一解碼、第二解碼以及第三解碼,其中所述第一解碼對應於t錯誤校正解碼,其中所述第二解碼對應於2t錯誤擦除解碼,其中所述第三解碼對應於x錯誤及擦除解碼,其中t為指示所述ECC解碼器使用所述第一解碼的可校正符號錯誤的數目的自然數,其中2t指示所述ECC解碼器使用所述第二解碼的可校正符號錯誤的數目,其中x指示所述ECC解碼器使用所述第三解碼的可校正符號錯誤的數目,其中x為大於t且小於2t的自然數,以及其中所述ECC解碼器經組態以:回應於所述擦除數目大於零且等於或小於2t而藉由對所述讀取碼字集執行所述第二解碼來產生第一經估計碼字集;基於所述第一經估計碼字集及所述同位核對矩陣而產生第一最終校正子;以及回應於所述第一最終校正子不為零且所述擦除數目小於或等於2t-2而藉由對所述讀取碼字集執行所述第三解碼來產生第二經估計碼字集。
- 一種記憶體控制器,經組態以控制包含多個資料晶片、第一同位晶片以及第二同位晶片的記憶體模組,所述多個資料晶片中的各者包含晶粒上錯誤校正碼(ECC)引擎,所述記憶體控制器經組態以藉由經由運算高速鏈接(CXL)介面與一或多個主機通信來控制所述記憶體模組,所述記憶體控制器包括:解碼狀態標記解碼器,經組態以自所述記憶體模組接收由包含在所述多個資料晶片中的多個晶粒上ECC引擎產生的解碼狀態標記,且藉由對所述解碼狀態標記進行解碼來產生指示對應於具有第一邏輯位準的所述解碼狀態標記的數目的擦除數目的決策信號,所述解碼狀態標記中的各者指示是否在所述多個資料晶片中的各別者中偵測到至少一個錯誤位元;以及ECC解碼器,經組態以基於所述決策信號而選擇多個ECC解碼方案中的一者,且藉由基於所述所選擇解碼方案及同位核對矩陣而對讀取碼字集執行ECC解碼來校正來自所述記憶體模組的讀取碼字集中的多個符號錯誤。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2022-0162247 | 2022-11-29 | ||
| KR1020220162247A KR20240079388A (ko) | 2022-11-29 | 2022-11-29 | 메모리 컨트롤러 및 메모리 시스템 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202422552A TW202422552A (zh) | 2024-06-01 |
| TWI893407B true TWI893407B (zh) | 2025-08-11 |
Family
ID=91191196
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112124801A TWI893407B (zh) | 2022-11-29 | 2023-07-03 | 記憶體控制器及包括其的記憶體系統 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12334953B2 (zh) |
| KR (1) | KR20240079388A (zh) |
| CN (1) | CN118113210A (zh) |
| TW (1) | TWI893407B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20250113104A (ko) * | 2024-01-18 | 2025-07-25 | 삼성전자주식회사 | 메모리 장치, 메모리 장치의 동작 방법, 및 메모리 장치를 포함하는 메모리 시스템 |
| CN121364969A (zh) * | 2024-07-19 | 2026-01-20 | 北京超弦存储器研究院 | Cxl内存模组、纠错方法、控制芯片、介质和系统 |
| US20260037371A1 (en) * | 2024-08-01 | 2026-02-05 | SK Hynix Inc. | Memory system, memory device and operating methods thereof |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190340067A1 (en) * | 2018-04-12 | 2019-11-07 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and memory systems including the same |
| US20200082891A1 (en) * | 2018-09-12 | 2020-03-12 | SK Hynix Inc. | Apparatus and method for managing valid data in memory system |
| US20200192754A1 (en) * | 2018-12-17 | 2020-06-18 | Samsung Electronics Co., Ltd. | Error correction code circuits, semiconductor memory devices and memory systems |
| US20200371873A1 (en) * | 2019-05-23 | 2020-11-26 | Micron Technology, Inc. | Error correction memory device with fast data access |
| US20210194508A1 (en) * | 2019-12-23 | 2021-06-24 | Samsung Electronics Co., Ltd. | Memory controllers and memory systems including the same |
| TW202238607A (zh) * | 2021-03-09 | 2022-10-01 | 華邦電子股份有限公司 | 半導體儲存裝置及錯誤檢測校正方法 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0812612B2 (ja) * | 1983-10-31 | 1996-02-07 | 株式会社日立製作所 | 誤り訂正方法及び装置 |
| KR20100120991A (ko) | 2009-05-07 | 2010-11-17 | 삼성전자주식회사 | 이레이저 조작을 수행하는 메모리 시스템 및 그것의 읽기 방법 |
| US8250435B2 (en) | 2009-09-15 | 2012-08-21 | Intel Corporation | Memory error detection and/or correction |
| WO2011092641A1 (en) * | 2010-01-28 | 2011-08-04 | International Business Machines Corporation | Method, device and computer program product for decoding a codeword |
| US8935592B2 (en) | 2012-11-20 | 2015-01-13 | Arm Limited | Apparatus and method for correcting errors in data accessed from a memory device |
| US9691505B2 (en) | 2015-03-27 | 2017-06-27 | Intel Corporation | Dynamic application of error correction code (ECC) based on error type |
| CN110275796B (zh) * | 2018-03-16 | 2023-08-08 | 爱思开海力士有限公司 | 具有混合解码方案的存储器系统及其操作方法 |
| US10949293B2 (en) * | 2018-07-24 | 2021-03-16 | Micron Technology Inc. | Erroneous bit discovery in memory system |
| US10824507B2 (en) * | 2018-10-24 | 2020-11-03 | Samsung Electronics Co., Ltd. | Semiconductor memory device, controller, and memory system |
| KR102859477B1 (ko) | 2019-05-29 | 2025-09-15 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템에서의 에러 정정 방법 |
| US11301320B2 (en) | 2020-04-03 | 2022-04-12 | Micron Technology, Inc. | Erasure decoding for a memory device |
| KR102705065B1 (ko) * | 2019-07-29 | 2024-09-09 | 에스케이하이닉스 주식회사 | 낮은 레이턴시를 갖는 에러정정코드 디코더 |
| US20200328879A1 (en) * | 2019-08-13 | 2020-10-15 | Intel Corporation | Secure communications over computer buses |
| KR20210032810A (ko) * | 2019-09-17 | 2021-03-25 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 시스템 |
| US12126361B2 (en) | 2022-03-21 | 2024-10-22 | Intel Corporation | Techniques to improve latency of retry flow in memory controllers |
-
2022
- 2022-11-29 KR KR1020220162247A patent/KR20240079388A/ko active Pending
-
2023
- 2023-06-22 US US18/339,490 patent/US12334953B2/en active Active
- 2023-07-03 TW TW112124801A patent/TWI893407B/zh active
- 2023-09-01 CN CN202311126929.4A patent/CN118113210A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190340067A1 (en) * | 2018-04-12 | 2019-11-07 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and memory systems including the same |
| US20200082891A1 (en) * | 2018-09-12 | 2020-03-12 | SK Hynix Inc. | Apparatus and method for managing valid data in memory system |
| US20200192754A1 (en) * | 2018-12-17 | 2020-06-18 | Samsung Electronics Co., Ltd. | Error correction code circuits, semiconductor memory devices and memory systems |
| US20200371873A1 (en) * | 2019-05-23 | 2020-11-26 | Micron Technology, Inc. | Error correction memory device with fast data access |
| US20210194508A1 (en) * | 2019-12-23 | 2021-06-24 | Samsung Electronics Co., Ltd. | Memory controllers and memory systems including the same |
| TW202238607A (zh) * | 2021-03-09 | 2022-10-01 | 華邦電子股份有限公司 | 半導體儲存裝置及錯誤檢測校正方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202422552A (zh) | 2024-06-01 |
| US20240178861A1 (en) | 2024-05-30 |
| US12334953B2 (en) | 2025-06-17 |
| KR20240079388A (ko) | 2024-06-05 |
| CN118113210A (zh) | 2024-05-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12117901B2 (en) | Memory device, a controller for controlling the same, a memory system including the same, and an operating method of the same | |
| TWI893407B (zh) | 記憶體控制器及包括其的記憶體系統 | |
| US11789815B2 (en) | Memory controller and memory device including the same | |
| KR102768318B1 (ko) | 데이터 저장 장치의 에러 정정 코드 처리 방법 | |
| US12572413B2 (en) | Memory controllers and memory systems | |
| US20230112776A1 (en) | Operation method of memory module, operation method of memory controller, and operation method of memory system | |
| US12547494B2 (en) | Memory controllers and memory systems | |
| US12198778B2 (en) | Memory controllers and memory systems including the same | |
| CN118053487A (zh) | 存储器控制器和包括其的存储器系统 | |
| CN118398042A (zh) | 存储器封装和包括该存储器封装的存储器系统 | |
| US12032492B2 (en) | Method of operating storage device and method of operating storage system using the same | |
| KR20240072877A (ko) | 메모리 컨트롤러 및 메모리 시스템 | |
| US12224769B2 (en) | Fast polynomial division by monomial for Reed-Solomon ELP maintenance | |
| US20240289284A1 (en) | Storage controller, storage device having the same, and method of operating the same | |
| US12572415B2 (en) | Semiconductor memory devices with error correction | |
| CN117795466B (zh) | 使用子命令的存取请求管理 |