CN112397127A - 先算信息轮换数据保护的非挥发性存储器写入方法和设备 - Google Patents
先算信息轮换数据保护的非挥发性存储器写入方法和设备 Download PDFInfo
- Publication number
- CN112397127A CN112397127A CN202010794638.2A CN202010794638A CN112397127A CN 112397127 A CN112397127 A CN 112397127A CN 202010794638 A CN202010794638 A CN 202010794638A CN 112397127 A CN112397127 A CN 112397127A
- Authority
- CN
- China
- Prior art keywords
- matrix
- parity
- code
- local
- inverse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000011159 matrix material Substances 0.000 claims abstract description 554
- 230000036961 partial effect Effects 0.000 claims abstract description 193
- 238000004891 communication Methods 0.000 claims abstract description 159
- 238000004364 calculation method Methods 0.000 claims abstract description 28
- 125000004122 cyclic group Chemical group 0.000 claims description 91
- 238000012937 correction Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 18
- 230000007704 transition Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
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/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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- 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
-
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了使用借助于先算信息轮换的数据保护的非挥发性存储器写入方法和相关设备如记忆装置、控制器及编码电路。此方法包括:从主装置接收写入指令和数据;取得至少一部分数据以作为多个通信信息,以通过先算信息轮换型编码产生多个同位码,其中针对一通信信息:开始对所述通信信息进行编码以依据所述通信信息以及同位检查矩阵内的第一部分矩阵的转置矩阵来计算一局部同位码;从存储电路加载所述同位检查矩阵中的第二部分矩阵的逆矩阵的局部矩阵;以及应用局部矩阵及其通过轮换控制产生的轮换版本来产生并输出对应的同位码;以及写入非挥发性存储器。本发明的方法及设备确保记忆装置在各种情况妥善运作,没有如内部存储空间、增加成本等问题。
Description
技术领域
本发明是关于存储器控制,尤其关于一种使用借助于先算信息轮换(rotation)的数据保护的非挥发性(non-volatile,NV)存储器写入方法以及相关设备诸如一记忆装置、所述记忆装置的控制器、以及所述控制器的一编码电路。
背景技术
近年来由于存储器的技术不断地发展,各种可携式以及非可携式记忆装置(例如:分别符合SD/MMC、CF、MS、XD及UFS标准的记忆卡;又例如:固态硬盘(solid state drive,SSD);又例如:分别符合UFS及EMMC标准的嵌入式(embedded)存储装置)被广泛地实施于诸多应用中。因此,这些记忆装置中的存储器的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可包括单阶细胞(single level cell,SLC)与多阶细胞(multiple level cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆细胞(memory cell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。相较于此,多阶细胞闪存中的每个被当作记忆细胞的晶体管的存储能力则被充分利用,其采用较高的电压来驱动,以通过不同位准的电压在一个晶体管中记录至少两个位(bit;也可称为“比特”)的信息(诸如00、01、11、10)。理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保在记忆装置中对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,具备上列管理机制的记忆装置仍有不足的地方。例如,在错误更正码(Error Correction Code,ECC)处理中的某类型的编码的期间,相关的矩阵乘法的计算可能仰赖先算(pre-calculated)信息以避免编码延迟,而所述先算信息可能会在一控制器集成电路(integrated circuit,IC)的硬件架构中需要某大小的存储空间,其中这个存储空间的大小可对应于同位校验长度的倍数。上述方式可能会带来某些副作用,举例来说,由于控制器IC可能需要支持如不同记忆装置制造商所要求的各种ECC处理规范,控制器IC的内部存储空间可能因此被迫增加,这可能进一步造成相关成本提高。因此,需要一种新颖的方法以及相关架构,以在没有副作用或较不会带来副作用的情况下改善记忆装置的效能。
发明内容
本发明的一目的在于提供一种使用借助于先算信息轮换(pre-calculationinformation rotation)的数据保护的非挥发性存储器(non-volatile memory,NVmemory)写入方法、以及相关设备诸如一记忆装置、所述记忆装置的一控制器、以及所述控制器的一编码电路,以解决上述问题。
本发明的另一目的在于提供一种使用借助于先算信息轮换的数据保护的非挥发性存储器写入方法、以及相关设备诸如一记忆装置、所述记忆装置的一控制器、以及所述控制器的一编码电路,以优化所述记忆装置的效能。
本发明至少一实施例提供一种使用借助于先算信息轮换的数据保护的非挥发性存储器写入方法,其中所述非挥发性存储器写入方法是可应用于(applicable to)一记忆装置的一存储器控制器。所述记忆装置可包括所述存储器控制器以及一非挥发性存储器,且所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述非挥发性存储器写入方法可包括:利用所述存储器控制器自一主装置接收一写入指令以及对应于所述写入指令的数据;利用所述存储器控制器的一编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码(Error CorrectionCode,ECC)组块(chunk)的复数个通信信息(message;“通信信息”(message)也可称为“消息”),以通过先算信息轮换型编码(pre-calculated information rotation typeencoding)依据所述复数个通信信息产生所述错误更正码组块的复数个同位码(paritycode),其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息;以及利用所述存储器控制器将包括有所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。例如,针对所述复数个通信信息中的任一通信信息,所述先算信息轮换型编码包括:在所述通信信息的至少一部分被发送至所述编码电路后,开始对所述通信信息进行编码以依据所述通信信息以及一同位检查矩阵(parity check matrix)中的一第一部分矩阵(part-one matrix)的一转置矩阵(transpose matrix)来计算一局部同位码(partial parity code),其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;在所述局部同位码的至少一部分被产生后,从所述编码电路中的一存储电路加载所述同位检查矩阵中的一第二部分矩阵(part-twomatrix)的一逆矩阵的一局部矩阵(partial matrix),其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的先算信息(pre-calculated information);将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至(apply to)所述局部同位码以产生对应于所述通信信息的一同位码的一第一子同位码(sub-parity code),以及输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分;进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本;以及将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;以及利用所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
除了以上方法外,本发明亦提供一种记忆装置,且所述记忆装置包括一非挥发性存储器以及一存储器控制器。所述非挥发性存储器是用来存储信息,其中所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述存储器控制器是耦接至所述非挥发性存储器,且所述存储器控制器是用来控制所述记忆装置的运作。另外,所述存储器控制器包括一处理电路,且所述处理电路是用来依据来自一主装置的复数个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器。所述存储器控制器还包括一控制逻辑电路,其耦接至所述处理电路且是用来控制所述非挥发性存储器。尤其,所述控制逻辑电路包括一编码电路,其用来借助于先算信息轮换进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用。此外,所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块(ECC chunk)的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息;以及所述存储器控制器将包括有所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。例如,针对所述复数个通信信息中的任一通信信息,所述先算信息轮换型编码的运作可包括:在所述通信信息的至少一部分被发送至所述编码电路后,开始对所述通信信息进行编码以依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;在所述局部同位码的至少一部分被产生后,从所述编码电路中的一存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的先算信息;将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的一同位码的一第一子同位码,以及输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分;进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本;以及将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;以及利用所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
除了以上方法外,本发明亦提供一种记忆装置的存储器控制器,其中所述记忆装置包括所述存储器控制器以及一非挥发性存储器。所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。另外,所述存储器控制器包括一处理电路,且所述处理电路是用来依据来自一主装置的复数个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器。所述存储器控制器还包括一控制逻辑电路,其耦接至所述处理电路且是用来控制所述非挥发性存储器。尤其,所述控制逻辑电路包括一编码电路,其是用来借助于先算信息轮换进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用。此外,所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息;以及所述存储器控制器将包括有所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。例如,针对所述复数个通信信息中的任一通信信息,所述先算信息轮换型编码的运作可包括:在所述通信信息的至少一部分被发送至所述编码电路后,开始对所述通信信息进行编码以依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;在所述局部同位码的至少一部分被产生后,从所述编码电路中的一存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的先算信息;将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的一同位码的一第一子同位码,以及输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分;进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本;以及将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;以及利用所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
除了以上方法外,本发明亦提供一种记忆装置的存储器控制器的编码电路,其中所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述存储器控制器包括所述编码电路,以及所述非挥发性存储器包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述编码电路包括一桶式移位器(barrel shifter)以及耦接至所述桶式移位器的一乘法电路(multiplication circuit),而所述乘法电路包括一循环卷积(circulant convolution)控制单元、耦接至所述循环卷积控制单元的复数个循环卷积电路、以及耦接至所述复数个循环卷积电路的一组合电路,其中所述循环卷积控制单元包括一存储电路以及耦接至所述存储电路的一轮换控制电路。所述桶式移位器用以进行局部同位码计算(partial parity code calculation)。例如,所述存储器控制器从一主装置接收一写入指令以及对应于所述写入指令的数据,以及所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息。在所述复数个通信信息中的任一通信信息的至少一部分被发送至所述编码电路后,所述桶式移位器依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵。另外,所述乘法电路用以进行乘法操作以产生对应于所述通信信息的一同位码。例如,所述存储电路用以存储先算信息,且所述轮换控制电路用以控制所述编码电路借助于先算信息轮换来进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用,并且所述复数个循环卷积电路用以进行循环卷积操作。在所述局部同位码的至少一部分被产生后,所述轮换控制电路从所述存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,以容许所述复数个循环卷积电路将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的所述同位码的一第一子同位码,以及进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本,以容许所述复数个循环卷积电路将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的所述先算信息。所述组合电路用以输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分。此外,所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
本发明的方法以及相关设备能确保记忆装置能在各种情况下妥善地运作,而不会遭遇到相关技术的问题。例如,本发明的非挥发性存储器写入方法提供了多个控制方案以供存取控制。借助于本发明的方法以及相关设备,记忆装置不会遭受相关技术中现有的问题,例如内部存储空间问题、增加的成本的问题等。
附图说明
图1为依据本发明一实施例的一电子系统的示意图,其中所述电子系统可包括一主装置以及一记忆装置。
图2依据本发明一实施例绘示针对图1所示的记忆装置的错误更正码处理的某些运作以及所述记忆装置中的某些相关组件。
图3依据本发明一实施例绘示一种使用借助于先算信息轮换的数据保护的非挥发性存储器写入方法的一局部存储轮换(partial storage rotation)控制方案。
图4是依据本发明一实施例的对应于如图3所示的非挥发性存储器写入方法的一编码电路的示意图。
图5依据本发明一实施例绘示如图3所示的非挥发性存储器写入方法的一局部矩阵轮换(partial matrix rotation)控制方案。
图6绘示如图5所示的局部矩阵轮换控制方案的某些实施细节。
图7绘示如图5所示的局部矩阵轮换控制方案的工作流程。
图8依据本发明一实施例绘示如图3所示的非挥发性存储器写入方法的一加载地址轮换控制方案。
图9绘示如图8所示的加载地址轮换控制方案的某些实施细节。
图10绘示如图8所示的加载地址轮换控制方案的工作流程。
其中,附图标记说明如下:
10 电子装置
50 主装置
52 处理器
54 电源供应电路
100 记忆装置
110 存储器控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑电路
114E 先算信息轮换型ECC电路
116 随机存取存储器
118 传输接口电路
120 非挥发性存储器
122-1、122-2~122-N 非挥发性存储器组件
200 编码电路
m 通信信息
{p} 同位码
y 局部同位码
H 同位检查矩阵
M 第一部分矩阵
MT、(K-1)T 转置矩阵
K 第二部分矩阵
K-1 逆矩阵
PM(K-1) 局部矩阵
p1~pz 子同位码
y1~yz 子局部同位码
c 码字
210 桶式移位器
220 QC矩阵乘法电路
222 循环卷积控制单元
224、CC0~CC4 循环卷积电路
226 组合电路
222S 存储电路
222R 轮换控制电路
S10、S20、S21、S22、S22'、S23、 步骤
S24、S25、S25'、S26、S30
具体实施方式
图1为依据本发明一实施例的电子系统10的示意图,其中电子系统10可包括一主装置50以及一记忆装置100。主装置50可包括至少一处理器(例如一或多个处理器),其可统称为处理器52,且可还包括耦接至处理器52的一电源供应电路54。处理器52是用来控制主装置50的运作,而电源供应电路54是用来提供电源给处理器52以及记忆装置100,并且输出一或多个驱动电压给记忆装置100。记忆装置100可用来提供存储空间给主装置50,并且自主装置50取得所述一或多个驱动电压以作为记忆装置100的电源。主装置50的例子可包括(但不限于):多功能移动电话(multifunctional mobile phone)、可穿戴式装置、平板计算机(tablet)以及个人计算机(personal computer)诸如桌面计算机与膝上型计算机。记忆装置100的例子可包括(但不限于):固态硬盘(solid state drive,SSD)以及嵌入式(embedded)存储装置诸如符合通用快闪存储(Universal Flash Storage,以下简称“UFS”)或嵌入式多媒体卡(Embedded Multimedia Card,EMMC)标准的嵌入式存储装置。依据本实施例,记忆装置100可包括一控制器诸如存储器控制器110以及一非挥发性存储器(non-volatile memory,NV memory)120,其中所述控制器诸如存储器控制器110是用来控制记忆装置100的运作以及存取非挥发性存储器120,而非挥发性存储器120是用来存储信息。非挥发性存储器120可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件),诸如复数个非挥发性存储器组件122-1、122-2、…及122-N,其中“N”可表示大于一的正整数。例如,非挥发性存储器120可为一闪存,而非挥发性存储器组件122-1、122-2、…及122-N可为复数个闪存芯片或复数个闪存裸晶,但本发明不限于此。
如图1所示,存储器控制器110可包括一处理电路诸如一微处理器112、一存储单元诸如一只读存储器(Read Only Memory,ROM)112M、一控制逻辑电路114、一随机存取存储器(Random Access Memory,RAM)116以及一传输接口电路118,其中这些组件可通过一总线彼此耦接。随机存取存储器116是以一静态随机存取存储器(Static RAM,SRAM)来实施,但本发明不限于此。随机存取存储器116可用来提供内部存储空间给存储器控制器110,例如,随机存取存储器116可用来作为一缓冲存储器以缓冲数据。另外,本实施例的只读存储器112M是用来存储一程序代码112C,而微处理器112是用来执行程序代码112C以控制对非挥发性存储器120的存取。请注意,在某些例子中,程序代码112C可存储在随机存取存储器116或任何形式的存储器内。此外,控制逻辑电路114可包括一数据保护电路诸如一先算信息轮换(pre-calculated information rotation)型错误更正码(Error Correction Code,以下简称“ECC”)电路114E,且所述数据保护电路诸如先算信息轮换型ECC电路114E可保护数据及/或进行错误更正。传输接口电路118可符合一特定通讯标准(例如UFS标准等),且可依据所述特定通讯标准进行通讯,例如为记忆装置100,和主装置50进行通讯。
在本实施例中,主装置50可传送主装置指令(host command)与对应的逻辑地址至存储器控制器110来存取记忆装置100。存储器控制器110接收主装置指令与逻辑地址,并将主装置指令转译成存储器操作指令(可简称为操作指令),再以操作指令控制非挥发性存储器120读取、写入/编程非挥发性存储器120当中于某些实体地址的记忆单位(例如数据页面),其中实体地址对应于逻辑地址。当存储器控制器110对非挥发性存储器组件122-1、122-2、…及122-N中的任一非挥发性存储器组件122-n0(其中“n0”可表示区间[1,N]中的任一整数)进行一抹除(erase)运作时,非挥发性存储器组件122-n0的多个区块(block)中的至少一个区块可被抹除,其中所述多个区块的每一区块可包括多个页面(例如数据页面),且一存取运作(例如读取或写入)可对一或多个页面进行,但本发明不限于此。
依据某些实施例,记忆装置100可实施为符合SD/MMC、CF、MS、XD或UFS标准的记忆卡,其中记忆装置100可通过一中介装置诸如一读卡机(card reader)耦接至主装置50,但本发明不限于此。
图2依据本发明一实施例绘示针对图1所示的记忆装置的ECC处理的某些运作以及所述记忆装置中的某些相关组件。先算信息轮换型ECC电路114E可包括至少一编码电路(例如一或多个编码电路)诸如图2所示的编码电路200,且编码电路200可包括至少一编码器(例如一或多个编码器)诸如一低密度同位检查(low-density parity-check,简称LDPC)编码器,但本发明不限于此。先算信息轮换型ECC电路114E可于一写入运作或一读取运作的期间对复数个通信信息进行ECC处理以产生复数个同位码(parity code),其中所述复数个通信信息的每一通信信息包括一组通信信息比特,且所述复数个同位码的每一同位码包括一组同位比特(parity bit)。以所述写入运作为例,当所述复数个通信信息的任一通信信息被发送至编码电路200,编码电路200的通信信息输入及通信信息输出可表示这个通信信息,而编码电路200的同位输出(parity output)可表示对应于这个通信信息的所述同位码。先算信息轮换型ECC电路114E可产生包括有所述复数个通信信息以及所述复数个同位码(在图2中分别标示为“m”以及“p”以求简明)的一ECC组块(chunk)作为一保护单元。例如,所述ECC组块可还包括一或多个其它同位比特诸如一或多行(row)的同位比特以保护所述复数个通信信息以及所述复数个同位码,其中所述一或多行同位比特可附于(attachedto)图2所示的ECC组块中的多行的通信信息同位码组合,但本发明不限于此。如图2所示,存储器控制器110可将一或多个ECC组块写入或编程至非挥发性存储器组件122-n中的某一区块内的某一页面。由于非挥发性存储器120的架构可取决于非挥发性存储器制造商(例如闪存制造商)的各种设计规则来予以变化,在每一页面中的ECC组块的数量可相应地予以变化。
基于图1所示的架构,记忆装置100可为主装置50存储数据,且记忆装置100可响应来自主装置50的一主装置指令诸如一写入指令将所述数据写入非挥发性存储器120中。于将所述数据写入非挥发性存储器120的期间,所述先算信息轮换型ECC电路114E(例如所述编码电路200)可进行编码以产生一同位码的多个同位比特以保护一通信信息(例如所述复数个通信信息的任一者)的多个通信信息比特,其中所述通信信息可对应于将被写入非挥发性存储器120的数据中的一组数据。另外,记忆装置100可响应来自主装置50的另一主装置指令诸如一读取指令读取被存储的数据,并且将自非挥发性存储器120读取到的数据提供给主装置50。于自非挥发性存储器120读取被存储的数据的期间,先算信息轮换型ECC电路114E(例如编码电路200)可取得所述多个通信信息比特的一读出版本以及所述多个同位比特的一读出版本。例如,先算信息轮换型ECC电路114E(例如编码电路200)可对所述多个通信信息比特的所述读出版本进行编码以产生所述多个同位比特的一非读出版本,并且可判断所述多个同位比特的所述非读出版本与所述同位比特的所述读出版本是否相同,以侦测所述多个通信信息比特的所述读出版本是否正确,但本发明不限于此。当所述多个同位比特的所述非读出版本与所述多个同位比特的所述读出版本相同,先算信息轮换型ECC电路114E(例如编码电路200)可判断所述多个通信信息比特的所述读出版本是正确的。于是,存储器控制器110可利用所述多个通信信息比特的所述读出版本作为来自非挥发性存储器120的被存储的数据中的所述组数据,以供被传送或回传给主装置50。当所述多个同位比特的所述非读出版本与所述多个同位比特的所述读出版本之间存在任何差异,先算信息轮换型ECC电路114E(例如编码电路200)可判断所述多个通信信息比特的所述读出版本是不正确的,并且依据所述多个同位比特的所述读出版本对所述多个通信信息比特的所述读出版本进行错误更正,以产生所述多个通信信息比特的一正确版本。于是,存储器控制器110可利用所述多个通信信息比特的所述正确版本作为来自非挥发性存储器120的被存储的数据中的所述组数据,以供被传送或回传给主装置50。基于图1所示的架构,尤其,图2所示的针对ECC处理的运作,存储在非挥发性存储器120中的数据的各种错误能得以避免。
图3依据本发明一实施例绘示一种使用借助于先算信息轮换的数据保护的非挥发性存储器写入方法的一局部存储轮换(partial storage rotation)控制方案,其中所述非挥发性存储器写入方法是可应用于(applicable to)图1所示的架构,尤其,是可应用于记忆装置100、存储器控制器110以及先算信息轮换型ECC电路(例如编码电路200)。为便于理解,存储器控制器110可接收一写入指令诸如上述写入指令,并且可自主装置50接收对应于所述写入指令的所述数据(例如上述将被写入非挥发性存储器120的数据)。编码电路200可取得对应于所述写入指令的所述数据中的至少一部分数据(例如复数组数据,诸如前面提到的所述组资料)作为所述ECC组块的复数个通信信息{m},以通过编码电路200的先算信息轮换型编码依据复数个通信信息{m}分别产生复数个同位码{p},以分别保护复数个通信信息{m}。例如,复数个通信信息{m}各自的内容可取决于自主装置50接收到的数据的内容予以变化。另外,存储器控制器110可将包括有复数个通信信息{m}以及复数个同位码{p}的所述ECC组块写入非挥发性存储器120。例如,针对复数个通信信息{m}中的任一通信信息m,所述先算信息轮换型编码的运作可包括:在通信信息m的至少一部分(例如一部分或全部)被发送至编码电路200后,编码电路200开始对通信信息m进行编码以依据通信信息m以及一同位检查矩阵H中的一第一部分矩阵(part-one matrix)M的一转置矩阵(transpose matrix)MT来计算一局部同位码(partial parity code)y,其中第一部分矩阵M是同位检查矩阵H的一第一子矩阵;在局部同位码y的至少一部分(例如一部分或全部)被产生后,编码电路200从编码电路200中的一存储电路加载所述同位检查矩阵H中的一第二部分矩阵(part-twomatrix)K的一逆矩阵K-1的一局部矩阵PM(K-1),其中第二部分矩阵K是同位检查矩阵H的一第二子矩阵,以及第二部分矩阵K的逆矩阵K-1的局部矩阵PM(K-1)是被存储作为所述存储电路中的先算信息;编码电路200将第二部分矩阵K的逆矩阵K-1的局部矩阵PM(K-1)应用至(apply to)局部同位码y(例如通过进行矩阵乘法)以产生对应于通信信息m的一同位码p的一第一子同位码(sub-parity code)(例如一子同位码p1),以及输出同位码p的所述第一子同位码(例如子同位码p1)以作为同位码p的一起始部分;编码电路200进行针对所述先算信息的轮换控制以加载第二部分矩阵K的逆矩阵K-1的局部矩阵PM(K-1)的至少一轮换后版本(例如一或多轮换后版本);以及将第二部分矩阵K的逆矩阵K-1的局部矩阵PM(K-1)的前述至少一轮换后版本应用至局部同位码y(例如通过进行矩阵乘法)以产生对应于通信信息m的同位码p的至少一后续子同位码(例如子同位码p2、p3等),以及输出同位码p的前述至少一后续子同位码(例如子同位码p2、p3等)以作为同位码p的至少一后续部分。
为了有更好的理解,包括通信信息m以及同位码p的一码字c、包括第一部分矩阵M以及第二部分矩阵K的同位检查矩阵H、以及同位检查矩阵H中的第二部分矩阵K的逆矩阵K-1可绘示如图3的左半部所示来举例说明。码字c可用具有单一行(row)以及n列(column)的一1×n矩阵来表示,其中n可代表一正整数。在码字c中,通信信息m可用具有单一行以及k列的一1×k矩阵来表示,以及同位码p可用具有单一行以及w列(例如w=n-k)的一1×w矩阵来表示,其中k以及w可分别代表正整数。此外,同位检查矩阵H可用具有w行以及n列的一w×n矩阵来表示。在同位检查矩阵H中,第一部分矩阵M可用具有w行以及k列的一w×k矩阵来表示,以及第二部分矩阵K可用具有w行以及w列的一w×w矩阵来表示。请注意,同位检查矩阵H可被妥善地设计以加强编码的效能。举例来说,在准循环(Quasi-Cyclic,可简称QC)LDPC码被编码电路200的所述LDPC编码器所采用的情况下,第二部分矩阵K可被配置为具有(z*z)个QC单元的一QC形式(form),且第二部分矩阵K的所述(z*z)个QC单元中的任何QC单元可以是一方阵(square matrix),诸如通过以循环方式用一偏移量(shifting amount)SFT对一单位矩阵(identity matrix)I(a x a)的矩阵元素(matrix element)进行选择性偏移而取得的方阵,其中z可代表大于1的正整数(例如z=5的例子可被绘示以便有更好的理解),SFT可代表一非负整数(例如SFT≥0),以及单位矩阵I(a x a)的符号的下标中的“a”可代表一正整数(例如(a*z)=w)。第二部分矩阵K的逆矩阵K-1可为具有(z*z)个QC单元的一QC形式,以及逆矩阵K-1的所述(z*z)个QC单元中的任何QC单元可包括矩阵元素0和1。尤其是,当这个QC单元的一行(例如第一行)具有矩阵元素0和1所构成的某一序列,则这一行的下一行可具有所述序列的偏移版本,诸如通过以循环方式对所述序列进行偏移而产生的一偏移后序列,但本发明不限于此。由于这一行与下一行之间的偏移关系可重复套用于所述QC单元中任两个相邻行(例如第二行和第三行、第三行和第四行等),在这一行是所述QC单元的第一行的情况下,所述QC单元可用所述序列来表示,因此,存储所述QC单元可通过存储所述序列来实现。当所述序列中的矩阵元素0和1的比例大约相同时,通过压缩所述序列的比特信息来进一步降低所述QC单元的数据大小的作法可能会不切实际或不可行。
第一部分矩阵M以及第二部分矩阵K的逆矩阵K-1的内容可依据存储器控制器110的制造商的某些预定规则来决定。举例来说,第一部分矩阵M的一部分可配置为具有一或多个特征,诸如相似第二部分矩阵K的一部分的一或多个特征,但本发明不限于此。虽然第一部分矩阵M以及逆矩阵K-1可被事先预备以供对通信信息m进行编码以产生同位码p,但存储第一部分矩阵M以及逆矩阵K-1的全部的内容可能导致高成本。
依据本实施例,第二部分矩阵K可配置为具有一阶层式(hierarchical)准循环结构(以下简称“阶层式QC结构”),其中第二部分矩阵K的阶层式QC结构可容许编码电路200具有逆矩阵K-1的局部存储(partial storage),而不需要存储整个逆矩阵K-1。基于上述阶层式QC结构,编码电路200可具有逆矩阵K-1的所述局部存储(例如通过仅存储逆矩阵K-1的一部分,而非存储逆矩阵K-1的全部,以供对通信信息m进行编码来产生同位码p)并且进行所述轮换控制来复原(recover)第二部分矩阵K的逆矩阵K-1,以依据复原自如图3右半部所示的轮换控制的逆矩阵K-1来进行编码(例如对通信信息m进行编码以产生同位码p的操作)。举例来说,y=mMT以及p=y(K-1)T。由于逆矩阵K-1的转置矩阵(K-1)T可通过对逆矩阵K-1进行转置(transpose)来取得,尤其,通过将逆矩阵K-1翻过(flip over)逆矩阵K-1的对角线,所以转置矩阵(K-1)T可具有与逆矩阵K-1相同的矩阵元素,除了在对逆矩阵K-1进行转置的期间将逆矩阵K-1翻过对角线而导致的翻转排列(flipped arrangement)。因此,编码电路200可用所述翻转排列的方式来直接地使用逆矩阵K-1的局部矩阵PM(K-1)(例如局部矩阵PM(K-1)中复数个行,诸如其内的行向量),以作为转置矩阵(K-1)T中的相对应局部矩阵(例如所述相对应局部矩阵中的复数列,诸如其内的列向量),举例来说,通过依据所述翻转排列选取局部矩阵PM(K-1)中的任何矩阵元素作为所述相对应局部矩阵中的一对应的矩阵元素。此外,基于所述阶层式QC结构,编码电路200中的针对第二部分矩阵K的逆矩阵K-1的每编码器存储率(storage rate per encoder)是小于1。举例来说,上述每编码器存储率可等于用于前述编码器的编码电路200中的逆矩阵K-1的存储率,诸如在编码电路200中的所述存储电路中用来存储逆矩阵K-1的局部矩阵PM(K-1)的存储空间的大小SIZE_PM(K-1)对在一般的编码电路中用来存储整个逆矩阵K-1的存储空间的大小SIZE_K-1的比值,尤其,所述比值可等于(1/z)。为了有更好的理解,z=5的例子可被绘示如图3的下半部所示,但本发明不限于此。在此情况下,存储率可等于(1/5)。
针对通信信息m、局部同位码y以及同位码p之间的关系的某些实施细节可描述如下:
令cH=0;
令y为局部同位码,其中y=mMT;
其中第一部分矩阵M以及逆矩阵K-1可为先算(pre-calculated)以供于编码期间被使用,且第一部分矩阵M的至少一部分(例如一部分或全部)以及逆矩阵K-1的至少一部分(例如一部分或全部)可被事先存储于编码电路200中,例如于存储器控制器110的一生产阶段的期间被存储作为在先算信息轮换型ECC电路114E中的硬件码(例如ROM码),但本发明不限于此。如图3所示,在编码电路200具备逆矩阵K-1的所述局部存储的情况下,编码电路200可进行轮换控制以复原整个逆矩阵K-1,并且依据复原自所述轮换控制的逆矩阵K-1进行编码。
图4是依据本发明一实施例的对应于如图3所示的非挥发性存储器写入方法的一编码电路200的示意图,其中图4所示的架构可作为编码电路200的前述至少一编码器中的任何编码器的例子。编码电路200(尤其是这个编码器)可包括一桶式移位器210以及一乘法电路诸如耦接至桶式移位器210的QC矩阵乘法电路220,且QC矩阵乘法电路220可包括一循环卷积(circulant convolution,CC)控制单元222、耦接至循环卷积控制单元222的复数个循环卷积电路224(可简称为“CC电路”)、以及耦接至复数个循环卷积电路224的一组合电路226,其中循环卷积控制单元222可包括一存储电路222S以及耦接至存储电路222S的一轮换控制电路222R,且复数个循环卷积电路224可包括z个循环卷积电路诸如CC电路CC0、CC1等。存储电路222S可用一ROM来实施,轮换控制电路222R可用逻辑电路来实施,以及组合电路226可用一加法器(例如二进制加法器)诸如一互斥或(exclusive-OR,XOR)闸(于图4标示为“+”以便有更好的理解)来实施,但本发明不限于此。举例来说,轮换控制电路222R可包括多个计数器、多个寄存器(register)电路、及/或多个逻辑闸,并且可依据一时钟讯号进行所述轮换控制。依据本实施例,桶式移位器210可进行局部同位码计算,且QC矩阵乘法电路220可进行乘法操作以产生对应于通信信息m的同位码p。举例来说,循环卷积控制单元222可进行循环卷积控制,复数个循环卷积电路224可进行循环卷积,以及组合电路226可组合并且输出所述第一子同位码(例如子同位码p1)以及前述至少一后续子同位码(例如子同位码p2、p3等)以分别作为同位码p的所述起始部分以及前述至少一后续部分。此外,存储电路222S可存储所述先算信息,且轮换控制电路222R可控制编码电路200借助于先算信息轮换来进行编码以供在存取非挥发性存储器120期间提供数据保护。
如图4所示,桶式移位器210可在对通信信息m进行编码的期间依据通信信息m以及转置矩阵MT来计算局部同位码y。举例来说,桶式移位器210可对通信信息m乘以转置矩阵MT以产生局部同位码y,其中局部同位码y可包括子局部同位码(sub-partial-parity code)y1、y2、…、以及yz(例如y=(y1,y2,…,yz))。此外,所述乘法电路诸如QC矩阵乘法电路220可分别将复数个局部矩阵{PM(K-1)}诸如z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}应用至局部同位码y以产生同位码p的子同位码p1、p2、…、以及pz,其中同位码p可包括子同位码p1、p2、…、以及pz(例如p=(p1,p2,…,pz))。举例来说,复数个局部矩阵{PM(K-1)}可包括被存储作为所述先算信息的局部矩阵PM(K-1)1,诸如逆矩阵K-1中的所述QC形式中的第一个QC单元列(例如逆矩阵K-1的多列QC单元中的第一列),以及可包括复原自所述轮换控制的后续局部矩阵{PM(K-1)2,…,PM(K-1)z},诸如逆矩阵K-1的所述QC形式中的后续的QC单元列(例如逆矩阵K-1的所述多列QC单元中的后续列)。为了有更好的理解,z=5的例子可被绘示如图4的下半部所示来说明,但本发明不限于此。在此情况下,复数个循环卷积电路224可包括CC电路CC0、CC1、CC2、CC3以及CC4,局部同位码y可包括子局部同位码y1、y2、y3、y4以及y5,以及同位码p可包括子同位码p1、p2、p3、p4以及p5。
存储电路222S可作为图3所示的实施例所提到的存储电路的例子,并且可为编码电路200提供逆矩阵K-1的所述局部存储(于图4中标示为“K-1的局部存储”以求简明),举例来说,通过仅存储逆矩阵K-1的所述部分(例如:被存储作为所述先算信息的局部矩阵PM(K-1)1)的方式来完成,而非存储整个逆矩阵K-1(例如:上述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z})。在复原自所述轮换控制的逆矩阵K-1中(于图4中标示“复原自轮换控制的K-1”以求简明),所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}可于举例时被绘示成z组垂直条且其每一组垂直条具有z个垂直条(例如z=5),以指出所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}已准备好来依据所述翻转排列被使用作为其转置矩阵{PM(K-1)1 T,PM(K-1)2 T,…,PM(K-1)z T},以及所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}的任何局部矩阵的z个QC单元可于举例时被绘示为所述z组垂直条中的对应组中的z个垂直条(例如z=5),其中转置矩阵{PM(K-1)1 T,PM(K-1)2 T,…,PM(K-1)z T}分别等于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵{PM(K-1)T 1,PM(K-1)T 2,…,PM(K-1)T z}。从循环卷积控制单元222到复数个循环卷积电路224的某些数据路径或数据流可被绘示如图4来说明,以指出循环卷积控制单元222(例如轮换控制电路222R)可分别将所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中任何局部矩阵中的z个QC单元加载至循环卷积电路224的z个循环卷积电路{CC0,CC1,…,CC(z-1)},无论这个局部矩阵是被存储作为所述先算信息的局部矩阵PM(K-1)1或是复原自所述轮换控制的后续局部矩阵{PM(K-1)2,…,PM(K-1)z}中的一者,但本发明不限于此。
依据本实施例,逆矩阵K-1的局部矩阵PM(K-1)的前述至少一轮换后版本(例如一或多轮换后版本)可包括逆矩阵K-1的局部矩阵PM(K-1)的(z-1)个轮换后版本。基于上述阶层式QC结构,局部矩阵PM(K-1)的这(z-1)个轮换后版本分别等同于逆矩阵K-1的所述QC形式中的剩余的局部矩阵,诸如剩余的QC单元列(例如逆矩阵K-1的所述多列QC单元中的剩余的列)。阶层式QC结构可被妥善地设计来确保逆矩阵K-1的所述局部存储足以供编码电路200进行所述轮换控制来复原逆矩阵K-1。如此一来,编码电路200可依据复原自所述轮换控制的逆矩阵K-1来进行编码以产生同位码p。
针对上述阶层式QC结构的某些实施细节可描述如下。依据某些实施例,第二部分矩阵K可被配置成包括多层QC矩阵,且所述多层QC矩阵的每一层可为准循环(quasi-cyclic)。举例来说,所述多层QC矩阵中的一层(例如第一层)的一QC矩阵,诸如第二部分矩阵K的全部(就是整个第二部分矩阵K),可包括所述多层QC矩阵中的另一层(例如第二层)的一组QC矩阵。由于利用具有所述阶层式QC结构的第二部分矩阵K的逆矩阵K-1的结果,编码电路200可通过进行所述轮换控制来复原逆矩阵K-1。举例来说,第二部分矩阵K可被配置成具有以下阶层式QC结构:
[[QCA QCB QCC QCD QCE]
[QCE QCA QCB QCC QCD]
[QCD QCE QCA QCB QCC]
[QCC QCD QCE QCA QCB]
[QCB QCC QCD QCE QCA]];
其中QCA、QCB、QCC、QCD以及QCE可代表QC单元,且具有相同符号(例如这个阶层式QC结构中的符号诸如“QCA”、“QCB”、“QCC”、“QCD”以及“QCE”中的任一符号)的任何两个QC单元可具有相同内容,但本发明不限于此。依据某些实施例,所述层(例如第一层)以及所述另一层(例如第二层)之间的关系可被重复套用于所述多层QC矩阵中任何两个相邻层。举例来说,所述多层QC矩阵中的所述另一层(例如第二层)的一QC矩阵可包括所述多层QC矩阵中的又一层(例如第三层)的一组QC矩阵。在另一例子中,第二部分矩阵K可被配置成具有如上所述的所述第一层与所述第二层之间的关系以及所述第二层与所述第三层之间的关系,而后续诸如其它层之间的关系可依此类推。由于利用具有所述阶层式QC结构的第二部分矩阵K的逆矩阵K-1的结果,编码电路200可通过进行所述轮换控制来复原逆矩阵K-1。
图5依据本发明一实施例绘示如图3所示的非挥发性存储器写入方法的一局部矩阵轮换(partial matrix rotation)控制方案,且图6绘示如图5所示的局部矩阵轮换控制方案的某些实施细节。于局部同位码y被产生后,在循环卷积控制单元222(例如轮换控制电路222R)的控制下,QC矩阵乘法电路220可将被存储作为所述先算信息的局部矩阵PM(K-1),诸如局部矩阵PM(K-1)1,从存储电路222S加载至复数个循环卷积电路224(在图5中标示为“载入局部逆矩阵”以求简明)。此外,复数个循环卷积电路224可将局部矩阵PM(K-1)1应用至局部同位码y以产生所述第一子同位码诸如子同位码p1,并且输出子同位码p1来作为同位码p的起始部分。在将局部矩阵PM(K-1)1应用至局部同位码y的期间,复数个循环卷积电路224可依据所述翻转排列来使用局部矩阵PM(K-1)1作为局部矩阵PM(K-1)1的转置矩阵PM(K-1)1 T,以及依据转置矩阵PM(K-1)1 T(其是等同于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵PM(K-1)T 1)对局部同位码y进行循环卷积操作,以产生同位码p中的子同位码p1。
于子同位码p1被产生后,在循环卷积控制单元222(例如轮换控制电路222R)的控制下,QC矩阵乘法电路220可进行针对所述先算信息的所述轮换控制,尤其可对局部矩阵PM(K-1)1的所述z个QC单元进行轮换以产生所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中的下一个局部矩阵PM(K-1)2(于图6中标示为“轮换局部逆矩阵”以求简明)。举例来说,QC矩阵乘法电路220可通过所述轮换控制将局部矩阵PM(K-1)2的z个QC单元分别从循环卷积电路{CC0,CC1,…,CC(z-1)}的各自的前一循环卷积电路{CC(z-1),CC0,…,CC(z-2)}加载至循环卷积电路{CC0,CC1,…,CC(z-1)}。此外,复数个循环卷积电路224可将局部矩阵PM(K-1)2应用至局部同位码y以产生下一个子同位码诸如子同位码p2,以及输出子同位码p2作为同位码p的下一部分。在将局部矩阵PM(K-1)2应用至局部同位码y的期间,复数个循环卷积电路224可依据所述翻转排列来使用局部矩阵PM(K-1)2作为局部矩阵PM(K-1)2的转置矩阵PM(K-1)2 T,以及依据转置矩阵PM(K-1)2 T(其是等同于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵PM(K-1)T 2)来对局部同位码y进行循环卷积操作,以产生同位码p中的子同位码p2。
QC矩阵乘法电路220可用类似的方式来进行所述轮换控制以产生从局部矩阵{PM(K-1)2起的这(z-1)个局部矩阵{PM(K-1)2,…,PM(K-1)z}中任何局部矩阵PM(K-1)z1,以及可将局部矩阵PM(K-1)z1应用至局部同位码y以产生和输出子同位码pz1,直到完成整个同位码p的产生,其中z1可代表区间[2,z]中的一整数。于子同位码pz1-1被产生后,在循环卷积控制单元222(例如轮换控制电路222R)的控制下,QC矩阵乘法电路220可进行针对所述先算信息的所述轮换控制,尤其可对局部矩阵PM(K-1)z1-1的z个QC单元进行轮换以产生所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中下一局部矩阵PM(K-1)z1(于图6中标示“轮换局部逆矩阵”以求简明)。举例来说,QC矩阵乘法电路220可通过所述轮换控制将局部矩阵PM(K-1)z1的z个QC单元分别从循环卷积电路{CC0,CC1,…,CC(z-1)}的各自的前一循环卷积电路{CC(z-1),CC0,…,CC(z-2)}加载至循环卷积电路{CC0,CC1,…,CC(z-1)}。此外,复数个循环卷积电路224可将局部矩阵PM(K-1)z1应用至局部同位码y以产生下一个子同位码诸如子同位码pz1,以及输出子同位码pz1作为同位码p的下一部分。在将局部矩阵PM(K-1)z1应用至局部同位码y的期间,复数个循环卷积电路224可依据所述翻转排列来使用局部矩阵PM(K-1)z1作为局部矩阵PM(K-1)z1的转置矩阵PM(K-1)z1 T,以及依据转置矩阵PM(K-1)z1 T(其是等同于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵PM(K-1)T z1)来对局部同位码y进行循环卷积操作,以产生同位码p中的子同位码pz1。
图7绘示如图5所示的局部矩阵轮换控制方案的工作流程。
在步骤S10中,存储器控制器110可接收所述写入指令并且开始从主装置50接收对应于所述写入指令的所述数据(例如前述将被写入非挥发性存储器120的数据)。
在步骤S20中,编码电路200可取得前述至少一部分数据(例如所述复数组数据,诸如前面提到的所述组资料)以作为所述ECC组块的复数个通信信息{m},以通过编码电路200的所述先算信息轮换型编码来依据复数个通信信息{m}产生所述ECC组块的复数个同位码{p}。
在步骤S21中,编码电路200(例如桶式移位器210)可依据通信信息m以及转置矩阵MT来计算局部同位码y。
在步骤S22中,编码电路200(例如QC矩阵乘法电路220)可将被存储作为所述先算信息的局部逆矩阵诸如局部矩阵PM(K-1)(例如局部矩阵PM(K-1)1)从存储电路222S加载至复数个循环卷积电路224。
在步骤S23中,编码电路200(例如QC矩阵乘法电路220)可依据目前所载入的局部逆矩阵,诸如所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中的一者,来对局部同位码y进行循环卷积,以计算和输出同位(parity),诸如同位码p的子同位码p1、p2等的对应的子同位码。
在步骤S24中,编码电路200(例如QC矩阵乘法电路220)可判断是否已完成整个同位诸如同位码p的计算。若是(例如已完成整个同位码p的产生),则进入步骤S26;若否(例如尚未完成整个同位码p的产生),则进入步骤S25。
在步骤S25中,编码电路200(例如QC矩阵乘法电路220)可对所述局部逆矩阵进行轮换,例如对局部矩阵PM(K-1)z1-1的所述z个QC单元进行轮换以产生所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中的下一局部矩阵PM(K-1)z1。
在步骤S26中,编码电路200(例如控制电路210)可检查是否需要处理下一通信信息。当需要处理下一通信信息时,进入步骤S21;否则,进入步骤S30。
在步骤S30中,存储器控制器110可将包括复数个通信信息{m}以及复数个同位码{p}的所述ECC组块写入非挥发性存储器120。
此外,在对通信信息m进行编码以产生同位码p的期间,步骤S23和S24可被执行z次,且包括步骤S23、S24以及S25的循环可被重复执行直到已完成整个同位诸如同位码p的计算。为了简明起见,本实施例中与前述实施例相仿的内容在此不重复赘述。
为了有更好的理解,所述非挥发性存储器写入方法可用图7所示的工作流程来来说明,但本发明不限于此。依据某些实施例,一或多个步骤可于图7所示的工作流程中被增加、删除或修改。
图8依据本发明一实施例绘示如图3所示的非挥发性存储器写入方法的一加载地址轮换控制方案,而图9绘示如图8所示的加载地址轮换控制方案的某些实施细节。循环卷积控制单元222(例如轮换控制电路222R)可利用复数个循环卷积电路224的复数个加载位置地址(loading location address;可简称为加载地址(loading address)以求简明),以指出分别用以将信息加载至复数个循环卷积电路224的复数个加载位置(例如所述z个循环卷积电路诸如CC电路CC0、CC1等)。举例来说,上述加载地址可包括分别指向z个循环卷积电路{CC0,CC1,…,CC(z-1)}(例如{CC0,CC1,…,CC4},在z=5的情况下)的z个加载地址ADD(0)、ADD(1)…、以及ADD(z-1)。依据本实施例,循环卷积控制单元222(例如轮换控制电路222R)可进行关于加载地址的轮换控制,尤其可依据对应的加载地址将被存储作为所述先算信息的局部矩阵PM(K-1)的z个QC单元中任何QC单元加载至所述z个循环卷积电路{CC0,CC1,…,CC(z-1)}中任何循环卷积电路。举例来说,循环卷积控制单元222可在有需要时依据加载地址ADD(0)来将这个QC单元加载至循环卷积电路CC0;循环卷积控制单元222可在有需要时依据加载地址ADD(1)来将这个QC单元加载至循环卷积电路CC1;而后续诸如其余载入操作可依此类推。如此一来,QC矩阵乘法电路220(例如循环卷积控制单元222)可利用这个QC单元作为所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中另一局部矩阵的某一QC单元。
于局部同位码y被产生后,在循环卷积控制单元222(例如轮换控制电路222R)的控制下,QC矩阵乘法电路220可依据一组初始地址诸如这组加载地址{ADD(0),ADD(1),…,ADD(z-1)},将被存储作为所述先算信息的局部矩阵PM(K-1),诸如局部矩阵PM(K-1)1,从存储电路222S加载至复数个循环卷积电路224(于图8标示为“以初始地址加载局部逆矩阵”以求简明)。此外,复数个循环卷积电路224可将局部矩阵PM(K-1)1应用至局部同位码y以产生所述第一子同位码诸如子同位码p1,以及输出子同位码p1来作为同位码p的起始部分。在将局部矩阵PM(K-1)1应用至局部同位码y的期间,复数个循环卷积电路224可依据所述翻转排列来使用局部矩阵PM(K-1)1作为局部矩阵PM(K-1)1的转置矩阵PM(K-1)1 T,以及依据转置矩阵PM(K-1)1 T(其等同于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵PM(K-1)T 1)来对局部同位码y进行循环卷积操作,以产生同位码p中的子同位码p1。
于子同位码p1被产生后,在循环卷积控制单元222(例如轮换控制电路222R)的控制下,QC矩阵乘法电路220可进行针对所述先算信息的所述轮换控制,尤其可将对应于局部矩阵PM(K-1)1(例如其z个QC单元)的加载地址进行轮换以产生所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中的下一局部矩阵PM(K-1)2,以供通过一组轮换后地址(例如所述组初始地址的一轮换后版本)来被加载。举例来说,QC矩阵乘法电路220可依据所述组轮换后地址诸如加载地址{ADD(1),…,ADD(z-2),ADD(z-1),ADD(0)},将局部矩阵PM(K-1)2的所述z个QC单元从存储电路222S加载至复数个循环卷积电路224中的循环卷积电路{CC0,CC1,…,CC(z-1)}(于图9中标示为“以轮换后地址加载局部逆矩阵”以求简明)。通过关于上述加载地址的轮换控制,QC矩阵乘法电路220可将局部矩阵PM(K-1)2的所述z个QC单元从存储电路222S加载至循环卷积电路{CC0,CC1,…,CC(z-1)},犹如在图6所示实施例中所提到将局部矩阵PM(K-1)2的所述z个QC单元分别从循环卷积电路{CC0,CC1,…,CC(z-1)}的各自的前一循环卷积电路{CC(z-1),CC0,…,CC(z-2)}加载至循环卷积电路{CC0,CC1,…,CC(z-1)}。此外,复数个循环卷积电路224可将局部矩阵PM(K-1)2应用至局部同位码y以产生下一子同位码诸如子同位码p2,以及输出子同位码p2作为同位码p的下一部分。在将局部矩阵PM(K-1)2应用至局部同位码y的期间,复数个循环卷积电路224可依据所述翻转排列来使用局部矩阵PM(K-1)2作为局部矩阵PM(K-1)2的转置矩阵PM(K-1)2 T,以及依据转置矩阵PM(K-1)2 T(其是等同于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵PM(K-1)T 2)来对局部同位码y进行循环卷积操作,以产生同位码p中的子同位码p2。
QC矩阵乘法电路220可用类似方式来进行所述轮换控制以产生所述(z-1)个局部矩阵{PM(K-1)2,…,PM(K-1)z}中的任何局部矩阵PM(K-1)z1,以及可将局部矩阵PM(K-1)z1应用至局部同位码y以产生和输出子同位码pz1,直到完成产生整个同位码p的产生,其中z1可代表区间[2,z]中的一整数。于子同位码pz1-1被产生后,在循环卷积控制单元222(例如轮换控制电路222R)的控制下,QC矩阵乘法电路220可进行针对所述先算信息的所述轮换控制,尤其可将对应于局部矩阵PM(K-1)z1-1(例如其z个QC单元)的加载地址进行轮换以产生所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中的下一局部矩阵PM(K-1)z1,以供通过一组轮换后地址(例如所述组初始地址的一轮换后版本)来被加载。举例来说,QC矩阵乘法电路220可依据所述组轮换后地址,诸如彼此轮换的z组加载地址{ADD(0),ADD(1),…,ADD(z-1)}、{ADD(1),…,ADD(z-1),ADD(0)}、…、以及{ADD(z-1),ADD(0),…,ADD(z-2)}中的第z1组加载地址,将局部矩阵PM(K-1)z1的所述z个QC单元从存储电路222S加载至复数个循环卷积电路224中的循环卷积电路{CC0,CC1,…,CC(z-1)}(于图9中标示为“以轮换后地址加载局部逆矩阵”以求简明)。通过关于上述加载地址的轮换控制,QC矩阵乘法电路220可将局部矩阵PM(K-1)z1的所述z个QC单元从存储电路222S加载至循环卷积电路{CC0,CC1,…,CC(z-1)},犹如在图6所示实施例中所提到将局部矩阵PM(K-1)z1的所述z个QC单元分别从循环卷积电路{CC0,CC1,…,CC(z-1)}的各自的前一循环卷积电路{CC(z-1),CC0,…,CC(z-2)}加载至循环卷积电路{CC0,CC1,…,CC(z-1)}。此外,复数个循环卷积电路224可将局部矩阵PM(K-1)z1应用至局部同位码y以产生下一子同位码诸如子同位码pz1,以及输出子同位码pz1作为同位码p的下一部分。在将局部矩阵PM(K-1)z1应用至局部同位码y的期间,复数个循环卷积电路224可依据所述翻转排列来使用局部矩阵PM(K-1)z1作为局部矩阵PM(K-1)z1的转置矩阵PM(K-1)z1 T,以及依据转置矩阵PM(K-1)z1 T(其等同于局部矩阵PM(K-1)的转置矩阵PM(K-1)T的对应的子矩阵PM(K-1)T z1)来对局部同位码y进行循环卷积操作,以产生同位码p中的子同位码pz1。
图10绘示如图8所示的加载地址轮换控制方案的工作流程,其中图10所示的工作流程可通过修改图7所示的工作流程来绘示。举例来说,图10所示的步骤S10、S21、S23、S24、S26、以及S30分别等同于图7所示的同编号步骤,而图10所示的步骤S22’以及S25’则分别取代图7所示的步骤S22以及S25。响应某些改变诸如分别用步骤S22’与S25’取代步骤S22与S25,步骤S20于本实施例中可被重新命名为步骤S20’。
在步骤S22’中,编码电路200(例如QC矩阵乘法电路220)可依据最新组加载地址(例如上述z组加载地址{ADD(0),ADD(1),…,ADD(z-1)}、{ADD(1),…,ADD(z-1),ADD(0)}、…、以及{ADD(z-1),ADD(0),…,ADD(z-2)}中的第z0组加载地址),将局部逆矩阵诸如局部矩阵PM(K-1)z0(例如所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z})中的第z0个局部矩阵)从存储电路222S加载至复数个循环卷积电路224,其中z0可代表区间[1,z]中的一整数。
在步骤S25’中,编码电路200(例如QC矩阵乘法电路220)可对局部逆矩阵的加载地址,诸如对应于局部矩阵PM(K-1)z0的多个加载地址,进行轮换,以将最新组加载地址设定成对应于通过所述轮换控制所复原的下一局部矩阵PM(K-1)z0+1。
在所述z组加载地址{ADD(0),ADD(1),…,ADD(z-1)}、{ADD(1),…,ADD(z-1),ADD(0)}、…、以及{ADD(z-1),ADD(0),…,ADD(z-2)}中,第一组加载地址{ADD(0),ADD(1),…,ADD(z-1)}可作为所述组初始地址的例子,而其它组加载地址{ADD(1),…,ADD(z-1),ADD(0)}、…、以及{ADD(z-1),ADD(0),…,ADD(z-2)}可作为所述组轮换后地址的例子。在编码通信信息m以产生同位码p的期间,于第一次执行步骤S22’(例如z0=1)时,最新组加载地址可代表所述组初始地址诸如第一组加载地址{ADD(0),ADD(1),…,ADD(z-1)},且局部矩阵PM(K-1)z0可代表被存储作为所述先算信息的局部矩阵PM(K-1),诸如局部矩阵PM(K-1)1。此外,在编码通信信息m以产生同位码p的期间,于另一次执行步骤S22’(例如z0>1)时,最新组加载地址可代表第(z0-1)组轮换后地址,诸如所述其它组加载地址{ADD(1),…,ADD(z-1),ADD(0)}、…、以及{ADD(z-1),ADD(0),…,ADD(z-2)}中的第(z0-1)组加载地址,以及局部矩阵PM(K-1)z0可代表所述(z-1)个局部矩阵{PM(K-1)2,…,PM(K-1)z}的第(z0-1)个局部矩阵。
依据本实施例,步骤S25’的操作可包括如图9所示实施例所描述的关于加载地址的轮换控制,诸如轮换对应于局部矩阵PM(K-1)z1-1的加载地址以产生所述z个局部矩阵{PM(K-1)1,PM(K-1)2,…,PM(K-1)z}中的下一局部矩阵PM(K-1)z1的操作,其中前面提到的局部矩阵PM(K-1)z1-1以及下一局部矩阵PM(K-1)z1可分别作为步骤S25’中所提到的局部矩阵PM(K-1)z0以及下一局部矩阵PM(K-1)z0+1的例子。另外,步骤S22’的操作可包括如图9所示实施例所描述的加载控制,诸如依据所述组轮换后地址将局部矩阵PM(K-1)z1的所述z个QC单元从存储电路222S加载至复数个循环卷积电路224中的循环卷积电路{CC0,CC1,…,CC(z-1)}的操作,其中上述局部矩阵PM(K-1)z1(例如具有正被加载的z个QC单元的局部矩阵PM(K-1)z1)可作为步骤S22’中所提到的局部矩阵PM(K-1)z0的例子,例如z0>1的情况。此外,在编码通信信息m以产生同位码p的期间,步骤S22’、S23以及S24可被执行z次,且包括步骤S22’、S23、S24以及S25’的循环可被重复地执行直到整个同位诸如同位码p的计算皆已完成。为了简明起见,本实施例中与前述实施例相仿的内容在此不重复赘述。
为了有更好的理解,所述非挥发性存储器写入方法可用图10所示的工作流程来说明,但本发明不限于此。依据某些实施例,一或多个步骤可于图10所示的工作流程中被增加、删除或修改。
依据某些实施例,编码电路200的前述至少一编码器可包括一组编码器,且图4所示架构可作为所述组编码器中任何编码器的例子。举例来说,所述组编码器的每一编码器可存储相同的第一部分矩阵M以及相同的逆矩阵K-1。假设所述组编码器中的编码器数量是等于b(其中b可代表大于2的正整数)。因此,针对逆矩阵K-1的存储空间的大小可被大幅缩减,举例来说,可减少某一减少量(decrement),诸如比率((z-1)/z)以及用来存储整个逆矩阵K-1的存储空间的大小SIZE_K-1的乘积(((z-1)/z)*SIZE_K-1)的倍数(b*((z-1)/z)*SIZE_K-1),且相关成本可对应地减少。
依据某些实施例,编码电路200的上述至少一编码器可包括多组编码器,且图4所示架构可作为所述多组编码器中任一组编码器中的任何编码器的例子,其中所述多组编码器可对应于针对不同的ECC处理需求的复数个同位检查矩阵{H}的各自的逆矩阵{K-1}。举例来说,这一组编码器的每一编码器可存储相同的第一部分矩阵M以及相同的逆矩阵K-1。假设所述复数个同位检查矩阵{H}的各自的逆矩阵{K-1}包括J个逆矩阵{K-1 j}(举例来说,J可代表大于1的正整数,以及j可代表区间[1,J]中的一整数),以及对应于逆矩阵K-1 j的某一组编码器中的编码器的数量是等于bj(举例来说,bj可为大于1的正整数)。因此,针对逆矩阵K-1的存储空间的大小可被大幅减少,举例来说,可减少某一更大的减少量,诸如比率((z-1)/z)以及用来存储完整的J个逆矩阵{K-1 j}的各自的存储空间的各自的大小{SIZE_K-1 j}的各自的乘积{(((z-1)/z)*SIZE_K-1 j)}的各自的倍数{(bj*((z-1)/z)*SIZE_K-1 j)}的总和Σj=1,…,J{(bj*((z-1)/z)*SIZE_K-1 j)},且相关成本可对应地减少。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种使用借助于先算信息轮换的数据保护的非挥发性存储器写入方法,其特征在于,所述非挥发性存储器写入方法是可应用于一记忆装置的一存储器控制器,所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述非挥发性存储器写入方法包括:
利用所述存储器控制器自一主装置接收一写入指令以及对应于所述写入指令的数据;
利用所述存储器控制器的一编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息,以及针对所述复数个通信信息中的任一通信信息,所述先算信息轮换型编码包括:
在所述通信信息的至少一部分被发送至所述编码电路后,开始对所述通信信息进行编码以依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;
在所述局部同位码的至少一部分被产生后,从所述编码电路中的一存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的先算信息;
将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的一同位码的一第一子同位码,以及输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分;
进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本;以及
将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;以及
利用所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
2.如权利要求1所述的非挥发性存储器写入方法,其特征在于,所述编码电路具备所述第二部分矩阵的所述逆矩阵的局部存储。
3.如权利要求2所述的非挥发性存储器写入方法,其特征在于,还包括:
利用所述存储器控制器进行所述轮换控制来复原所述第二部分矩阵的所述逆矩阵,以依据复原自所述轮换控制的所述逆矩阵进行编码,其中所述编码包括对所述通信信息进行编码以产生所述同位码。
4.如权利要求1所述的非挥发性存储器写入方法,其特征在于,还包括:
利用所述存储器控制器仅存储所述第二部分矩阵的所述逆矩阵的一部分,而非存储所述第二部分矩阵的所述逆矩阵的全部,以供对所述通信信息进行编码以产生所述同位码。
5.如权利要求4所述的非挥发性存储器写入方法,其特征在于,还包括:
利用所述存储器控制器进行所述轮换控制来复原所述第二部分矩阵的所述逆矩阵,以依据复原自所述轮换控制的所述逆矩阵进行编码,其中所述编码包括对所述通信信息进行编码以产生所述同位码。
6.如权利要求1所述的非挥发性存储器写入方法,其特征在于,所述第二部分矩阵的一阶层式准循环结构容许所述编码电路具有所述第二部分矩阵的所述逆矩阵的局部存储,而不需要存储所述第二部分矩阵的所述逆矩阵的全部。
7.如权利要求6所述的非挥发性存储器写入方法,其特征在于,基于所述阶层式准循环结构,所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本是等同于所述第二部分矩阵的所述逆矩阵的一准循环形式中的至少一剩余的局部矩阵。
8.如权利要求6所述的非挥发性存储器写入方法,其特征在于,针对所述阶层式准循环结构,所述第二部分矩阵是被配置以包括多层准循环矩阵,且所述多层准循环矩阵的每一层是准循环。
9.如权利要求6所述的非挥发性存储器写入方法,其特征在于,基于所述阶层式准循环结构,所述编码电路中的针对所述第二部分矩阵的所述逆矩阵的每编码器存储率是小于1;以及所述每编码器存储率是等于在所述编码电路中的所述存储电路中用来存储所述第二部分矩阵的所述逆矩阵的所述局部矩阵的存储空间的大小对用来存储整个所述逆矩阵的存储空间的大小的比值。
10.如权利要求9所述的非挥发性存储器写入方法,其特征在于,所述同位码包括数量为z的多个子同位码,所述多个子同位码包括所述第一子同位码以及所述至少一后续子同位码,而z代表大于1的正整数,以及所述至少一后续子同位码包括(z-1)个子同位码;以及所述每编码器存储率是等于(1/z)。
11.如权利要求1所述的非挥发性存储器写入方法,其特征在于,所述同位码包括数量为z的多个子同位码,所述多个子同位码包括所述第一子同位码以及所述至少一后续子同位码,而z代表大于1的正整数,以及所述至少一后续子同位码包括(z-1)个子同位码;以及所述编码电路中的针对所述第二部分矩阵的所述逆矩阵的每编码器存储率是等于(1/z)。
12.如权利要求11所述的非挥发性存储器写入方法,其特征在于,所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本是等同于所述第二部分矩阵的所述逆矩阵的至少一剩余的局部矩阵;以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本包括所述第二部分矩阵的所述逆矩阵的所述局部矩阵的(z-1)个轮换后版本,以及所述第二部分矩阵的所述逆矩阵的所述至少一剩余的局部矩阵包括所述第二部分矩阵的所述逆矩阵的(z-1)个剩余的局部矩阵。
13.如权利要求12所述的非挥发性存储器写入方法,其特征在于,还包括:
进行所述轮换控制以产生所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述(z-1)个轮换后版本,以供被用来作为所述第二部分矩阵的所述逆矩阵的所述(z-1)个剩余的局部矩阵,以复原所述第二部分矩阵的所述逆矩阵。
14.一种记忆装置,其特征在于,包括:
一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括至少一非挥发性存储器组件;以及
一存储器控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的运作,其中所述存储器控制器包括:
一处理电路,用来依据来自一主装置的复数个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器;以及
一控制逻辑电路,耦接至所述处理电路,用来控制所述非挥发性存储器,其中所述控制逻辑电路包括:
一编码电路,用来借助于先算信息轮换进行编码以供于存取所述非挥发性存储器的期间的数据保护;
其中:
所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;
所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息,以及针对所述复数个通信信息中的任一通信信息,所述先算信息轮换型编码的运作包括:
在所述通信信息的至少一部分被发送至所述编码电路后,开始对所述通信信息进行编码以依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;
在所述局部同位码的至少一部分被产生后,从所述编码电路中的一存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的先算信息;
将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的一同位码的一第一子同位码,以及输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分;
进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本;以及
将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;以及
所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
15.如权利要求14所述的记忆装置,其特征在于,所述编码电路具备所述第二部分矩阵的所述逆矩阵的局部存储。
16.如权利要求15所述的记忆装置,其特征在于,所述存储器控制器进行所述轮换控制来复原所述第二部分矩阵的所述逆矩阵,以依据复原自所述轮换控制的所述逆矩阵来进行编码,其中所述编码包括对所述通信信息进行编码以产生所述同位码。
17.如权利要求14所述的记忆装置,其特征在于,所述存储器控制器仅存储所述第二部分矩阵的所述逆矩阵的一部分,而非存储所述第二部分矩阵的所述逆矩阵的全部,以供对所述通信信息进行编码来产生所述同位码。
18.如权利要求17所述的记忆装置,其特征在于,所述存储器控制器进行所述轮换控制来复原所述第二部分矩阵的所述逆矩阵,以依据复原自所述轮换控制的所述逆矩阵来进行编码,其中所述编码包括对所述通信信息进行编码以产生所述同位码。
19.一种记忆装置的存储器控制器,其特征在于,所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述存储器控制器包括:
一处理电路,用来依据来自一主装置的复数个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器;以及
一控制逻辑电路,耦接至所述处理电路,用来控制所述非挥发性存储器,其中所述控制逻辑电路包括:
一编码电路,用来借助于先算信息轮换进行编码以供于存取所述非挥发性存储器的期间的数据保护;
其中:
所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;
所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息,以及针对所述复数个通信信息中的任一通信信息,所述先算信息轮换型编码的运作包括:
在所述通信信息的至少一部分被发送至所述编码电路后,开始对所述通信信息进行编码以依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;
在所述局部同位码的至少一部分被产生后,从所述编码电路中的一存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的先算信息;
将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的一同位码的一第一子同位码,以及输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分;
进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本;以及
将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;以及
所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
20.一种记忆装置的存储器控制器的编码电路,其特征在于,所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述存储器控制器包括所述编码电路,所述非挥发性存储器包括至少一非挥发性存储器组件,所述编码电路包括:
一桶式移位器,用以进行局部同位码计算,其中所述存储器控制器从一主装置接收一写入指令以及对应于所述写入指令的数据,以及所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的复数个通信信息,以通过先算信息轮换型编码依据所述复数个通信信息产生所述错误更正码组块的复数个同位码,其中所述复数个同位码分别对应于所述复数个通信信息以分别保护所述复数个通信信息,以及在所述复数个通信信息中的任一通信信息的至少一部分被发送至所述编码电路后,所述桶式移位器依据所述通信信息以及一同位检查矩阵中的一第一部分矩阵的一转置矩阵来计算一局部同位码,其中所述第一部分矩阵是所述同位检查矩阵的一第一子矩阵;以及
一乘法电路,耦接至所述桶式移位器,用以进行乘法操作以产生对应于所述通信信息的一同位码,其中所述乘法电路包括:
一循环卷积控制单元,包括:
一存储电路,用以存储先算信息;以及
一轮换控制电路,耦接至所述存储电路,所述轮换控制电路用以控制所述编码电路借助于先算信息轮换来进行编码以供于存取所述非挥发性存储器的期间的数据保护;
复数个循环卷积电路,耦接至所述循环卷积控制单元,用以进行循环卷积操作,其中在所述局部同位码的至少一部分被产生后,所述轮换控制电路从所述存储电路加载所述同位检查矩阵中的一第二部分矩阵的一逆矩阵的一局部矩阵,以容许所述复数个循环卷积电路将所述第二部分矩阵的所述逆矩阵的所述局部矩阵应用至所述局部同位码以产生对应于所述通信信息的所述同位码的一第一子同位码,以及进行针对所述先算信息的轮换控制以加载所述第二部分矩阵的所述逆矩阵的所述局部矩阵的至少一轮换后版本,以容许所述复数个循环卷积电路将所述第二部分矩阵的所述逆矩阵的所述局部矩阵的所述至少一轮换后版本应用至所述局部同位码以产生对应于所述通信信息的所述同位码的至少一后续子同位码,其中所述第二部分矩阵是所述同位检查矩阵的一第二子矩阵,以及所述第二部分矩阵的所述逆矩阵的所述局部矩阵是被存储作为所述存储电路中的所述先算信息;以及
一组合电路,耦接至所述复数个循环卷积电路,所述组合电路用以输出所述同位码的所述第一子同位码以作为所述同位码的一起始部分,以及输出所述同位码的所述至少一后续子同位码以作为所述同位码的至少一后续部分;
其中所述存储器控制器将包括所述复数个通信信息以及所述复数个同位码的所述错误更正码组块写入所述非挥发性存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/541,103 US10838811B1 (en) | 2019-08-14 | 2019-08-14 | Non-volatile memory write method using data protection with aid of pre-calculation information rotation, and associated apparatus |
US16/541,103 | 2019-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112397127A true CN112397127A (zh) | 2021-02-23 |
CN112397127B CN112397127B (zh) | 2023-12-22 |
Family
ID=73264196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010794638.2A Active CN112397127B (zh) | 2019-08-14 | 2020-08-10 | 先算信息轮换数据保护的非挥发性存储器写入方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10838811B1 (zh) |
CN (1) | CN112397127B (zh) |
TW (2) | TWI751096B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10866861B1 (en) * | 2019-08-29 | 2020-12-15 | Micron Technology, Inc. | Deferred error-correction parity calculations |
TWI798017B (zh) * | 2022-03-09 | 2023-04-01 | 群聯電子股份有限公司 | 編碼控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1476013A (zh) * | 2002-08-13 | 2004-02-18 | 联发科技股份有限公司 | 具有错误处理的光盘数据读取方法 |
JP2010199811A (ja) * | 2009-02-24 | 2010-09-09 | Fanuc Ltd | 制御装置のメモリシステム |
TW201438406A (zh) * | 2013-03-27 | 2014-10-01 | Nat Univ Tsing Hua | 雙重準循環低密度同位校驗碼 |
CN105280238A (zh) * | 2014-06-17 | 2016-01-27 | 慧荣科技股份有限公司 | 用来控制一记忆装置的方法以及记忆装置与控制器 |
GB2541299A (en) * | 2015-08-11 | 2017-02-15 | HGST Netherlands BV | Storing parity data separate from protected data technical field |
CN108268337A (zh) * | 2017-01-03 | 2018-07-10 | 慧荣科技股份有限公司 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009140700A1 (en) * | 2008-05-16 | 2009-11-19 | Fusion Multisystems, Inc. | Apparatus, system, and method for detecting and replacing failed data storage |
US8307258B2 (en) * | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8281227B2 (en) * | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US9122625B1 (en) * | 2012-12-18 | 2015-09-01 | Western Digital Technologies, Inc. | Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems |
US9639268B2 (en) * | 2014-08-21 | 2017-05-02 | Datrium, Inc. | Distributed data storage system with key-based addressing |
US9417955B2 (en) * | 2014-08-21 | 2016-08-16 | Datrium, Inc. | Data reconstruction in distributed data storage system with key-based addressing |
US10514982B2 (en) * | 2014-08-21 | 2019-12-24 | Datrium, Inc. | Alternate storage arrangement in a distributed data storage system with key-based addressing |
US20160188327A1 (en) * | 2014-12-24 | 2016-06-30 | Elmoustapha Ould-Ahmed-Vall | Apparatus and method for fused multiply-multiply instructions |
JP6606039B2 (ja) * | 2016-09-09 | 2019-11-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
TWI698742B (zh) * | 2017-11-30 | 2020-07-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
-
2019
- 2019-08-14 US US16/541,103 patent/US10838811B1/en active Active
-
2020
- 2020-05-14 TW TW110129882A patent/TWI751096B/zh active
- 2020-05-14 TW TW109115956A patent/TWI740499B/zh active
- 2020-08-10 CN CN202010794638.2A patent/CN112397127B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1476013A (zh) * | 2002-08-13 | 2004-02-18 | 联发科技股份有限公司 | 具有错误处理的光盘数据读取方法 |
JP2010199811A (ja) * | 2009-02-24 | 2010-09-09 | Fanuc Ltd | 制御装置のメモリシステム |
TW201438406A (zh) * | 2013-03-27 | 2014-10-01 | Nat Univ Tsing Hua | 雙重準循環低密度同位校驗碼 |
CN105280238A (zh) * | 2014-06-17 | 2016-01-27 | 慧荣科技股份有限公司 | 用来控制一记忆装置的方法以及记忆装置与控制器 |
GB2541299A (en) * | 2015-08-11 | 2017-02-15 | HGST Netherlands BV | Storing parity data separate from protected data technical field |
CN108268337A (zh) * | 2017-01-03 | 2018-07-10 | 慧荣科技股份有限公司 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
Also Published As
Publication number | Publication date |
---|---|
TWI740499B (zh) | 2021-09-21 |
US10838811B1 (en) | 2020-11-17 |
CN112397127B (zh) | 2023-12-22 |
TW202147104A (zh) | 2021-12-16 |
TWI751096B (zh) | 2021-12-21 |
TW202107284A (zh) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI768511B (zh) | 使用藉助於具有局部順序資訊之奇偶校驗矩陣之資料保護的資料存取方法以及設備 | |
TWI530959B (zh) | 用來控制一記憶裝置之方法以及記憶裝置與控制器 | |
US20180026658A1 (en) | Ldpc decoder, semiconductor memory system and operating method thereof | |
US20170063400A1 (en) | On-the-fly syndrome and syndrome weight computation architecture for ldpc decoding | |
TW201428756A (zh) | 更新可靠度資料 | |
KR20110015269A (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
US10484014B2 (en) | Controller, semiconductor memory system and operating method thereof | |
CN112397127B (zh) | 先算信息轮换数据保护的非挥发性存储器写入方法和设备 | |
US10200063B2 (en) | Memory controller, semiconductor memory system and operating method thereof | |
CN111726121A (zh) | 错误校正解码器和具有该错误校正解码器的存储器系统 | |
US10236915B2 (en) | Variable T BCH encoding | |
US9236886B1 (en) | Universal and reconfigurable QC-LDPC encoder | |
CN111869111B (zh) | 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字 | |
CN105164646A (zh) | 具有早期解码终止检测的解码器 | |
TW201732833A (zh) | 錯誤率降低 | |
CN108877869B (zh) | 控制器及其操作方法 | |
US10396825B2 (en) | Memory controller, semiconductor memory system and operating method thereof | |
CN112017725B (zh) | 超前处理的数据保护的非挥发性存储器存取方法和设备 | |
CN105938728B (zh) | 用于近似平衡码的编码器和解码器设计 | |
US20230421175A1 (en) | Method and apparatus for decoding low-density parity-check (ldpc) code | |
CN111406282B (zh) | 一种用于存储设备的存储器控制电路 | |
CN114616550A (zh) | 使用半尺寸数据阵列对二进制对称不变乘积码的高效编码 | |
CN117631962A (zh) | 存储器控制器及快闪存储器的存取方法 | |
CN111427717A (zh) | 用于在存储器系统中编码和解码数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |