CN112017725B - 超前处理的数据保护的非挥发性存储器存取方法和设备 - Google Patents
超前处理的数据保护的非挥发性存储器存取方法和设备 Download PDFInfo
- Publication number
- CN112017725B CN112017725B CN202010406740.0A CN202010406740A CN112017725B CN 112017725 B CN112017725 B CN 112017725B CN 202010406740 A CN202010406740 A CN 202010406740A CN 112017725 B CN112017725 B CN 112017725B
- Authority
- CN
- China
- Prior art keywords
- encoding
- communication information
- circuit
- communication
- bits
- 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.)
- Active
Links
Images
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/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
-
- 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
- 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
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/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/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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/0409—Online test
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了使用借助于超前处理的数据保护的非挥发性存储器存取方法以及设备诸如记忆装置、控制器及其编码电路,所述方法包括:自主装置接收写入指令以及数据;取得至少一部分数据以作为多个通信信息,以通过超前型编码产生多个校验码,其中针对一通信信息:开始对第一局部通信信息编码以产生第一编码结果;将预定输入响应信息施加于第二局部通信信息以产生第二编码结果,并且结合所述第一及第二编码结果以产生第一局部校验码;开始对所述通信信息编码以产生第二局部校验码,并且输出所述第一及第二局部校验码以产生校验码;以及写入所述非挥发性存储器。本发明提供多个控制方案以供存取控制的使用,可避免相关技术中编码延迟、空缺问题等。
Description
技术领域
本发明是关于存储器控制,尤指一种使用借助于超前处理的数据保护的非挥发性存储器(non-volatile memory,NV memory)存取方法、以及相关设备诸如一记忆装置、所述记忆装置的一控制器、以及所述控制器的一编码电路。
背景技术
近年来由于存储器的技术不断地发展,各种可携式以及非可携式记忆装置(例如:分别符合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。相较的下,多阶细胞闪存中的每个被当作记忆细胞的晶体管的存储能力则被充分利用,其采用较高的电压来驱动,以通过不同位准的电压在一个晶体管中记录至少两位的信息(诸如00、01、11、10)。理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保在记忆装置中对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,具备上列管理机制的记忆装置仍有不足的地方。例如,在错误更正码(error correction code)处理中的某种类型的编码的期间,直到全部的消息(message;或可称为“通信信息”)都已被输入编码器以前是无法进行相关的矩阵乘法计算的,这会导致编码延迟,诸如于所述矩阵乘法的一起始时间点与自所述矩阵乘法取得第一结果的一较晚时间点之间的延迟时间。另外,硬件架构中的数据传递路径可能会有空缺(vacancy),例如缺乏数据。相关技术中提出某些建议来尝试解决以上问题,却也可能因而造成某些副作用。例如,电路可能需要被分为多个级以互相等待。在某些例子中,电路架构可能变得复杂许多。因此,需要一种新颖的方法以及相关架构,以在没有副作用或较不会带来副作用的情况下改善记忆装置的效能。
发明内容
本发明的一目的在于公开一种使用借助于超前处理的数据保护的非挥发性存储器(non-volatile memory,NV memory)存取方法、以及相关设备诸如一记忆装置、所述记忆装置的一控制器、以及所述控制器的一编码电路,以解决上述问题。
本发明的另一目的在于公开一种使用借助于超前处理的数据保护的非挥发性存储器存取方法、以及相关设备诸如一记忆装置、所述记忆装置的一控制器、以及所述控制器的一编码电路,以优化所述记忆装置的效能。
本发明至少一实施例公开一种使用借助于超前(look-ahead)处理的数据保护的非挥发性存储器存取方法,其中所述非挥发性存储器存取方法是可应用于(applicableto)一记忆装置的一存储器控制器。所述记忆装置可包括所述存储器控制器以及一非挥发性存储器,且所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述非挥发性存储器存取方法可包括:利用所述存储器控制器自一主装置接收一写入指令以及对应于所述写入指令的数据;利用所述存储器控制器的一编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码(errorcorrection code,ECC)组块(chunk)的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码(parity code),其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息;以及利用所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器。例如,针对所述多个通信信息中的任一通信信息,所述超前型编码可包括:在所述通信信息的一第一局部通信信息被发送至所述编码电路后,开始对所述第一局部通信信息进行编码以产生一第一编码结果;在所述通信信息的一第二局部通信信息被发送至所述编码电路后,将预定输入响应信息施加(apply)于所述第二局部通信信息以产生一第二编码结果,以及结合(combine)所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;以及在所述通信信息被完整地发送至所述编码电路后,开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码,以及输出所述第一局部校验码与所述第二局部校验码以产生对应于所述通信信息的所述校验码。
除了以上方法外,本发明还公开一种记忆装置,且所述记忆装置包括一非挥发性存储器以及一存储器控制器。所述非挥发性存储器是用来存储信息,其中所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述存储器控制器是耦接至所述非挥发性存储器,且所述存储器控制器是用来控制所述记忆装置的运作。另外,所述存储器控制器包括一处理电路,且所述处理电路是用来依据来自一主装置的多个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器。所述存储器控制器还包括一控制逻辑电路,其耦接至所述处理电路且是用来控制所述非挥发性存储器。尤其,所述控制逻辑电路包括一编码电路,其用来借助于超前处理进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用。此外,所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息;以及所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器。例如,针对所述多个通信信息中的任一通信信息,所述超前型编码的运作可包括:在所述通信信息的一第一局部通信信息被发送至所述编码电路后,所述编码电路开始对所述第一局部通信信息进行编码以产生一第一编码结果;在所述通信信息的一第二局部通信信息被发送至所述编码电路后,所述编码电路将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果,以及结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;以及在所述通信信息被完整地发送至所述编码电路后,所述编码电路开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码,以及输出所述第一局部校验码与所述第二局部校验码以产生对应于所述通信信息的所述校验码。
除了以上方法外,本发明还公开一种记忆装置的存储器控制器,其中所述记忆装置包括所述存储器控制器以及一非挥发性存储器。所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。另外,所述存储器控制器包括一处理电路,且所述处理电路是用来依据来自一主装置的多个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器。所述存储器控制器还包括一控制逻辑电路,其耦接至所述处理电路且是用来控制所述非挥发性存储器。尤其,所述控制逻辑电路包括一编码电路,其是用来借助于超前处理进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用。此外,所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息;以及所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器。例如,针对所述多个通信信息中的任一通信信息,所述超前型编码的运作可包括:在所述通信信息的一第一局部通信信息被发送至所述编码电路后,所述编码电路开始对所述第一局部通信信息进行编码以产生一第一编码结果;在所述通信信息的一第二局部通信信息被发送至所述编码电路后,所述编码电路将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果,以及结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;以及在所述通信信息被完整地发送至所述编码电路后,所述编码电路开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码,以及输出所述第一局部校验码与所述第二局部校验码以产生对应于所述通信信息的所述校验码。
除了以上方法外,本发明还公开一种记忆装置的存储器控制器的编码电路,其中所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述存储器控制器包括所述编码电路,以及所述非挥发性存储器包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述编码电路包括:一控制电路;一通信信息输入端子;耦接至所述通信信息输入端子以及所述控制电路的一切换电路;耦接至所述切换电路的一第一编码器;耦接至所述切换电路的一超前电路;耦接至所述第一编码器以及所述超前电路的一结合电路;耦接至所述通信信息输入端子的一第二编码器;以及耦接至所述结合电路以及所述第二编码器的一输出电路。所述控制电路是用来控制所述编码电路借助于超前处理进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用。所述存储器控制器自一主装置接收一写入指令以及对应于所述写入指令的数据,以及所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息。另外,所述通信信息输入端子是用来接收所述多个通信信息中的任一通信信息,以及所述切换电路是用来在所述控制电路的控制下进行切换,以将所述多个通信信息中的所述通信信息分为一第一局部通信信息以及一第二局部通信信息。在所述通信信息的所述第一局部通信信息被发送至所述编码电路后,所述第一编码器开始对所述第一局部通信信息进行编码以产生一第一编码结果。在所述通信信息的所述第二局部通信信息被发送至所述编码电路后,所述超前电路将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果。所述结合电路是用来结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码。在所述通信信息被完整地发送至所述编码电路后,所述第二编码器开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码。在所述控制电路的控制下,所述输出电路输出所述第一局部校验码以及所述第二局部校验码以产生对应于所述通信信息的所述校验码。此外,所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器中。
本发明的方法以及相关设备能确保所述记忆装置能在各种情况下妥善地运作,而不会遭遇到相关技术的问题。例如,所述非挥发性存储器存取方法提供多个控制方案以供存取控制的使用。借助于本发明的方法以及相关设备,所述记忆装置不会遭受到相关技术中现有的问题,诸如编码延迟问题、空缺问题等。
附图说明
图1为依据本发明一实施例的一电子系统的示意图,其中所述电子系统可包括一主装置以及一记忆装置。
图2依据本发明一实施例绘示针对图1所示的记忆装置的错误更正码处理的某些运作以及所述记忆装置中的某些相关组件。
图3依据本发明一实施例绘示一种使用借助于超前处理的数据保护的非挥发性存储器存取方法的一加速控制方案。
图4依据本发明一实施例绘示图3所示的非挥发性存储器存取方法的一通信信息划分(partition)控制方案。
图5依据本发明一实施例绘示图3所示的非挥发性存储器存取方法的一脉冲响应映射控制方案。
图6为依据本发明一实施例的对应于图3所示的非挥发性存储器存取方法的一编码电路的示意图。
图7依据本发明一实施例绘示图6所示的编码电路的某些实施细节。
图8依据本发明一实施例绘示图3所示的非挥发性存储器存取方法的工作流程。
其中,附图标记说明如下:
10: 电子系统
50: 主装置
52: 处理器
54: 电源供应电路
100: 记忆装置
110: 存储器控制器
112: 微处理器
112C: 程序代码
112M: 只读存储器
114: 控制逻辑电路
114E: 超前型ECC电路
116: 随机存取存储器
118: 传输接口电路
120: 非挥发性存储器
122-1、122-2、…、122-N、122-n: 非挥发性存储器组件
200: 编码电路
210: 控制电路
212: 计数器
214: 寄存器电路
220: 切换电路
230a、230b: 编码器
240: 超前电路
242: 存储单元
244: 乘法电路
246: 加法电路
248: 结合电路
250: 输出电路
m_in: 通信信息输入端子
CLK_in: 时钟输入端子
CLK: 时钟信号
p_out: 校验输出端子
m: 通信信息
p: 校验码
m1: 第一局部通信信息
m2: 第二局部通信信息
pa: 第一局部校验码
pb: 第二局部校验码
p1a: 第一编码结果
p2a: 第二编码结果
m2,0、m2,1、m2,2、m2,3、m2,4、
m2,5、m2,6、m2,7、m2,8、m2,9、
m2,10、m2,11、m2,12、m2,13、m2,14、
m2,15、…、m2,k-2、m2,k-1: 第二局部通信信息的位
pa,u(0)、pa,u(1)、pa,u(2)、pa,u(3)、
pa,u(4)、pa,u(5)、pa,u(6)、pa,u(7)、
pa,u(8)、pa,u(9)、pa,u(10)、pa,u(11)、
pa,u(12)、pa,u(13)、pa,u(14)、pa,u(15)、…、
pa,u(k-2)、pa,u(k-1): 基底校验码
S10、S20、S21、S22、S23、
S24、S25、S26、S26a、S26b、
S27、S28、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可包括一数据保护电路诸如一超前(look-ahead)型错误更正码(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-n(其中"n"可表示区间[1,N]中的任一整数)进行一抹除(erase)运作时,非挥发性存储器组件122-n的多个区块(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的校验输出(parityoutput)可表示对应于这个通信信息的所述校验码。超前型ECC电路114E可产生包括有所述多个通信信息以及所述多个校验码(在图2中分别标示为"m"以及"p"以求简明)的一ECC组块(chunk)作为一保护单元。例如,所述ECC组块可还包括一或多个其它校验位诸如一或多行(row)的校验位以保护所述多个通信信息以及所述多个校验码,其中所述一或多行校验位可附于(attached to)图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依据本发明一实施例绘示一种使用借助于超前处理的数据保护的非挥发性存储器存取方法的一加速控制方案,其中所述非挥发性存储器存取方法是可应用于(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的一第一局部通信信息m1被发送至编码电路200后,编码电路200开始对第一局部通信信息m1进行编码以产生一第一编码结果p1a;在通信信息m的一第二局部通信信息m2被发送至编码电路200后,编码电路200将预定输入响应信息施加于第二局部通信信息m2以产生一第二编码结果p2a,并且结合第一编码结果p1a与第二编码结果p2a以产生对应于通信信息m的一校验码p的一第一局部校验码pa;以及在通信信息m被完整地发送至编码电路200后,编码电路200开始对通信信息m(例如包括有第一局部通信信息m1以及第二局部通信信息m2的通信信息m)进行编码以产生对应于通信信息m的校验码p的一第二局部校验码pb,并且将第一局部校验码pa以及第二局部校验码pb输出以产生对应于通信信息m的校验码p。
为便于理解,传统编码架构的典型行为可绘示如图3上半部所示,其中绘示有"泡泡"诸如计算多个校验位的起始的时间。例如,所述泡泡的时间长度可等于Tb。如图3下半部所示,编码电路200可在完全接收了第一局部通信信息m1后开始计算第一编码结果p1a以预先准备第一编码结果p1a,并且可利用完全接收了第一局部通信信息m1的时间点与完全接收了通信信息m的时间点之间的时期作为用于第一编码结果p1a的计算时间。另外,编码电路200可在完全接收了第二局部通信信息m2后借助于所述超前处理立即产生第二编码结果p2a,以在一预定时间内准备第一局部校验码pa。例如,准备所述第一局部校验码pa的任一位(例如第一位)的时间可和一个时钟周期一样短,其较上述泡泡的时间要短了许多。尤其,在完全接收了通信信息m后的瞬间(例如接收到通信信息m的最后一位的某一时钟周期的下一时钟周期),第一局部校验码pa的第一位已备妥以自编码电路200输出。由于第一局部校验码pa的第一位在这个瞬间确实存在,编码电路200可开始输出校验码p的起始,诸如第一局部校验码pa,而不需等待。此外,编码电路200可利用完全接收了通信信息m的时间点与完全输出了第一局部校验码pa的时间点之间的时期作为用于第二局部校验码pb的计算时间,并且可及时开始输出第二局部校验码pb。于是,编码电路200能在不产生任何泡泡的情况下输出包括有第一局部校验码pa以及第二局部校验码Pb的校验码p。因此,编码电路200能加速整体处理以提前完成时间,例如,减少时间诸如Tb,但本发明不限于此。相较于相关技术,利用所述非挥发性存储器存取方法的所述加速控制方案的记忆装置100能达到较佳的效能。
图4依据本发明一实施例绘示图3所示的非挥发性存储器存取方法的一通信信息划分控制方案。通信信息m可包括一组通信信息位,且可被分为第一局部通信信息m1以及第二局部通信信息m2,如图4所示。第一局部通信信息m1可包括所述组通信信息位中的多个起始位,且第二局部通信信息m2可包括所述组通信信息位中的多个剩余位{m2,j,j=0,1,…,k-1}(例如m2,j=0或1),其中符号"k"可表示一正整数。例如,通信信息m等效于将一第一序列与一第二序列相加的结果,尤其,所述第一序列包括有第一局部通信信息m1以及于所述第一序列的结尾部分的零位(在图4中于第一局部通信信息m1旁边标示为"0"以便于理解),而所述第二序列包括有第二局部通信信息m2以及于所述第二序列的起始部分的零位(在图4中于第二局部通信信息m2旁边标示为"0"以便于理解)。
图5依据本发明一实施例绘示图3所示的非挥发性存储器存取方法的一脉冲响应映射控制方案。如图5左半部所示,第二局部通信信息m2可视为多个基底(basis){u0,u1,u2,…,uk-2,uk-1}(例如图5所示k行的位{100…000,010…000,001…000,…,000…010,000…001},其每行有k个位)的线性组合((m2,0·u0)+(m2,1·u1)+(m2,2·u2)+…+(m2,k-2·uk-2)+(m2,k-1·uk-1)),其中多个剩余位{m2,j,j=0,1,…,k-1}诸如m2,0、m2,1、m2,2、…、m2,k-2及m2,k-1可视为线性组合((m2,0·u0)+(m2,1·u1)+(m2,2·u2)+…+(m2,k-2·uk-2)+(m2,k-1·uk-1))中的多个基底{u0,u1,u2,…,uk-2,uk-1}的各自的系数,但本发明不限于此。另外,多个基底{u0,u1,u2,…,uk-2,uk-1}的每一基底可包括多个基底位诸如k个位,且通信信息m的所述组通信信息位中的多个剩余位{m2,j,j=0,1,…,k-1}(例如m2,0、m2,1、m2,2、…、m2,k-2及m2,k-1)的位数k以及所述多个基底位的位数k彼此相等。为便于理解,假设多个基底{u0,u1,u2,…,uk-2,uk-1}可以用一行一行的方式排列,尤其,排列成k行的位{100…000,010…000,001…000,…,000…010,000…001}。在此情况下,k行的位{100…000,010…000,001…000,…,000…010,000…001}的全部位的排列结果可视为具有(k*k)个元素的一单位矩阵(identity matrix)Ik。
依据本实施例,所述预定输入响应信息可包括分别对应于多个基底{u0,u1,u2,…,uk-2,uk-1}(例如k行的位{100…000,010…000,001…000,…,000…010,000…001})的多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}。如图5右半部所示,多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}可通过和对第一局部通信信息m1进行编码相同的方式分别对多个基底{u0,u1,u2,…,uk-2,uk-1}(例如k行的位{100…000,010…000,001…000,…,000…010,000…001})进行编码来产生。例如,相同的低密度奇偶校验编码方法可被利用于以下两个运作:对第一局部通信信息m1进行编码以产生第一编码结果p1a;以及分别对多个基底{u0,u1,u2,…,uk-2,uk-1}(例如k行的位{100…000,010…000,001…000,…,000…010,000…001})进行编码以产生多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}。另外,一生产工具诸如另一主装置(例如个人计算机诸如桌面计算机、膝上型计算机等)可用来处理分别对多个基底{u0,u1,u2,…,uk-2,uk-1}进行编码以产生多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}的运作,以供预先被存储于记忆装置100中。例如,在一生产阶段中,在所述生产工具的控制下,存储器控制器110可将多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}存储于非挥发性存储器120中的一系统信息区中,以于记忆装置100启动的期间加载至编码电路200供一用户使用,但本发明不限于此。由于所述预定输入响应信息诸如多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}被预先准备且对于编码电路200是可用的(available),编码电路200可在需要时依据所述预定输入响应信息进行所述超前处理。
依据某些实施例,准备多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}的实施方式可予以变化。例如,在所述生产阶段中,在所述生产工具的控制下,存储器控制器110可将多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}存储于存储器控制器110中的某一存储单元中,以于记忆装置100启动的期间加载至编码电路200供所述用户使用。又例如,依据预设设定或使用者设定,存储器控制器110可控制编码电路200(例如其内的低密度奇偶校验编码器)分别对多个基底{u0,u1,u2,…,uk-2,uk-1}(例如k行的位{100…000,010…000,001…000,…,000…010,000…001})进行编码以产生多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}。再举一例,多个基底校验码{pa,u(0),pa,u(1),pa,u(2),…,pa,u(k-2),pa,u(k-1)}可实施为编码电路200中的一部分硬件电路。
图6为依据本发明一实施例的对应于图3所示的非挥发性存储器存取方法的编码电路200的示意图。编码电路200可用来借助于所述超前处理进行编码以供于存取非挥发性存储器120的期间的数据保护的使用。如图6所示,编码电路200可包括多个输入端子诸如一通信信息输入端子m_in以及一时钟输入端子CLK_in、一输出端子诸如一校验输出端子p_out、一控制电路210、耦接至通信信息输入端子m_in以及控制电路210的一切换电路220、分别耦接至切换电路220以及通信信息输入端子m_in的编码器230a以及230b、耦接至切换电路220的一超前电路240、耦接至编码器230a以及超前电路240的一结合电路248、以及耦接至结合电路248以及编码器230b的一输出电路250。另外,控制电路210可包括一计数器(counter)212以及一寄存器(register)电路214(在图6中分别标示为"CNT"以及"REG"以求简明),以及超前电路240可包括一存储单元242(在图6中标示为"SU"以求简明)、包括有分别对应于多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}的多个子电路(在图6中标示为"pa,u(0)"、"pa,u(1)"、…及"pa,u(k-1)"以便于理解)的一乘法电路244、以及一加法电路246。例如,结合电路248以及输出电路250可分别用一互斥或门(exclusive-OR gate,XOR gate)以及一多任务器(在图6中分别标示为"X"以及"MUX"以便于理解)来实施,乘法电路244的所述多个子电路可包括用来存储多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}的多个寄存器且包括用来进行二进制乘法的多个与门(AND gate),以及加法电路246可包括多个互斥或门(在图6中标示为"X"以便于理解)以供进行二进制加法,但本发明不限于此。
依据本实施例,控制电路210可用来控制编码电路200借助于所述超前处理进行编码以供于存取非挥发性存储器120的期间的数据保护的使用。通信信息输入端子m_in是用来接收多个通信信息{m}中的通信信息m,以及切换电路220是用来在控制电路210的控制下进行切换,以将通信信息m分为第一局部通信信息m1以及第二局部通信信息m2。例如,当编码电路200依据通过时钟输入端子CLK_in接收的时钟信号CLK开始接收通信信息m时,控制电路210可启用(enable)一第一局部通信信息路径(例如切换电路220的上方输出路径)并且禁用(disable)一第二局部通信信息路径(例如切换电路220的下方输出路径),以及计数器212可开始计算已接收到的作为第一局部通信信息m1的位的数量诸如位数以产生一第一计数值,以依据一第一预定值(例如第一局部通信信息m1的一预定位数,诸如k0)判断接收第一局部通信信息m1的运作是否已完成,其中所述第一计数值达到所述第一预定值可指出接收第一局部通信信息m1的运作已完成。在第一局部通信信息m1被完全发送至编码电路200(尤其,编码器230a)后,编码器230a开始对第一局部通信信息m1进行编码以产生第一编码结果p1a。
当编码电路200开始接收第二局部通信信息m2时,控制电路210可禁用所述第一局部通信信息路径(例如切换电路220的上方输出路径)并且启用所述第二局部通信信息路径(例如切换电路220的下方输出路径),以及计数器212可开始计算已接收到的作为第二局部通信信息m2的位的数量诸如位数以产生一第二计数值,以依据一第二预定值(例如第二局部通信信息m2的一预定位数,诸如k)判断接收第二局部通信信息m2的运作是否已完成,其中所述第二计数值达到所述第二预定值可指出接收第二局部通信信息m2的运作已完成。所述第一预定值以及所述第二预定值可被存储在寄存器电路214,例如,可于记忆装置100启动的期间加载至寄存器电路214,但本发明不限于此。另外,存储单元242可包括用来存储第二局部通信信息m2的位m2,0、m2,1、…及m2,k-1的多个寄存器。在第二局部通信信息m2被完全发送至编码电路200(尤其,超前电路240的存储单元242)后,第二局部通信信息m2的每一位对于所述超前处理是可用的,而超前电路240以及结合电路248可同时运作以产生第一局部校验码pa。例如,超前电路240将所述预定输入响应数据诸如多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}施加于第二局部通信信息m2以产生第二编码结果p2a,以及结合电路248结合第一编码结果p1a与第二编码结果p2a以产生第一局部校验码pa。
针对超前电路240的这些运作,乘法电路244可将多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}分别乘以第二局部通信信息m2的位m2,0、m2,1、…及m2,k-1以产生多个相乘结果诸如多个乘积{(m2,0·pa,u(0)),(m2,1·pa,u(1)),…,(m2,k-1·pa,u(k-1))},以及加法电路246可结合所述多个相乘结果诸如多个乘积{(m2,0·pa,u(0)),(m2,1·pa,u(1)),…,(m2,k-1·pa,u(k-1))}以产生第二编码结果p2a。请注意,校验码p可包括一组校验位,其中第一局部校验码pa可包括所述组校验位中的多个起始位,以及第二局部校验码pb可包括所述组校验位中的多个剩余位。依据本实施例,多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}的每一基底校验码可包括多个基底校验位,且所述组校验位中的所述多个起始位的位数(例如第一局部校验码pa的长度)与所述多个基底校验位的位数(例如多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}的每一者的长度)彼此相等。另外,第一编码结果p1a的位数与第二编码结果p2a的位数都等于所述组校验位中的所述多个起始位的位数(例如第一局部校验码pa的长度)。针对结合第一编码结果p1a与第二编码结果p2a的运作,结合电路248可将第一编码结果p1a与第二编码结果p2a各自的位以逐位(bit by bit)诸如位对位的方式相加以产生第一局部校验码pa。例如,结合电路248的这些运作可包括:将第一编码结果p1a的第一位与第二编码结果p2a的第一位相加以产生第一局部校验码pa的第一位;将第一编码结果p1a的第二位与第二编码结果p2a的第二位相加以产生第一局部校验码pa的第二位;依此类推。在将第一编码结果p1a的最后一位与第二编码结果p2a的最后一位相加以产生第一局部校验码pa的最后一位后,结合电路248可完全输出第一局部校验码pa。
此外,编码器230b可利用完全接收了通信信息m的时间点与完全输出了第一局部校验码pa的时间点之间的时期来当作用于第二局部校验码pb的计算时间。在通信信息m被完整地发送至编码电路200(尤其,编码器230b)后,编码器230b开始对通信信息m(例如包括有第一局部通信信息m1以及第二局部通信信息m2的通信信息m)进行编码以产生第二局部校验码pb。在控制电路210的控制下,输出电路250输出第一局部校验码pa以及第二局部校验码pb以产生校验码p,以通过校验输出端子p_out来输出。针对第一局部校验码pa以及第二局部校验码pb的局部校验路径选择的运作可分别对应于产生第一局部校验码pa以及第二局部校验码pb的时间。由于编码电路200(例如其内的编码器230a、超前电路240、及结合电路248)能在完全接收了通信信息m后的瞬间(例如接收到通信信息m的最后一位的某一时钟周期的下一时钟周期)产生第一局部校验码pa的第一位,这个瞬间与编码电路200完全输出了第一局部校验码pa的时间之间的时间差(例如用于输出第一局部校验码pa的时钟周期数)可对应于第一局部校验码pa的位数(例如第一局部校验码pa的长度)。例如,当输出电路250开始接收包括有第一局部校验码pa的校验码p时,控制电路210可启用一第一局部校验路径(例如输出电路250的上方输入路径)并且禁用一第二局部校验路径(例如输出电路250的下方输入路径),以使输出电路250通过校验输出端子p_out输出第一局部校验码pa。于所述时间差的结尾,输出电路250已完成接收并输出第一局部校验码pa的运作,以及第二局部校验码pb的第一位是可用的。当输出电路250开始接收第二局部校验码pb时,控制电路210可禁用所述第一局部校验路径(例如输出电路250的上方输入路径)并且启用所述第二局部校验路径(例如输出电路250的下方输入路径),以使输出电路250通过校验输出端子p_out输出第二局部校验码pb。控制输出第一局部校验码pa的时间与输出第二局部校验码pb的时间的运作可用和计数器212的运作类似的计数运作来实施。例如,控制电路210可包括耦接至寄存器电路214的另一计数器,并且利用所述另一计数器控制输出电路250的所述局部校验路径选择。
基于所述非挥发性存储器存取方法以及相关架构诸如图6所示的编码电路200,记忆装置100(例如存储器控制器110及其超前型ECC电路114E)能连续地处理所述ECC组块的多个通信信息{m}而不产生任何泡泡。为简明起见,本实施例中与前述实施例类似的说明在此不重复赘述。
图7依据本发明一实施例绘示图6所示的编码电路200的某些实施细节。为便于理解,假设多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}包括16个基底校验码{pa,u(0),pa,u(1),pa,u(2),pa,u(3),pa,u(4),pa,u(5),pa,u(6),pa,u(7),pa,u(8),pa,u(9),pa,u(10),pa,u(11),pa,u(12),pa,u(13),pa,u(14),pa,u(15)},且第二局部通信信息m2的位m2,0、m2,1、…及m2,k-1包括16个位{m2,0,m2,1,m2,2,m2,3,m2,4,m2,5,m2,6,m2,7,m2,8,m2,9,m2,10,m2,11,m2,12,m2,13,m2,14,m2,15},其中在本实施例中k=16,但本发明不限于此。图7所示的多个与门可作为用来进行上述二进制乘法的所述多个与门的例子,于图7所示的使用于产生第二编码结果p2a的前四层互斥或门(即除了最右边的互斥或门以外的互斥或门)可作为用来进行上述二进制加法的所述多个互斥或门的例子,以及图7所示的最右边的互斥或门可作为结合电路248的互斥或门的例子。为简明起见,本实施例中与前述实施例类似的说明在此不重复赘述。
依据某些实施例,在将多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}分别乘以第二局部通信信息m2的位m2,0、m2,1、…及m2,k-1以产生所述多个相乘结果诸如多个乘积{(m2,0·pa,u(0)),(m2,1·pa,u(1)),…,(m2,k-1·pa,u(k-1))}的运作中,所述多个与门(例如图7所示的多个与门)可对多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}以及第二局部通信信息m2的位m2,0、m2,1、…及m2,k-1分别进行多个与运作(AND operation)以产生所述多个相乘结果诸如多个乘积{(m2,0·pa,u(0)),(m2,1·pa,u(1)),…,(m2,k-1·pa,u(k-1))}。此外,在结合所述多个相乘结果诸如多个乘积{(m2,0·pa,u(0)),(m2,1·pa,u(1)),…,(m2,k-1·pa,u(k-1))}以产生第二编码结果p2a的运作中,所述多个互斥或门(例如图7所示的使用于产生第二编码结果p2a的前四层互斥或门)可对所述多个相乘结果诸如多个乘积{(m2,0·pa,u(0)),(m2,1·pa,u(1)),…,(m2,k-1·pa,u(k-1))}进行多个互斥或运作以产生第二编码结果p2a。通过所述多个与运作以及所述多个互斥或运作,将所述预定输入响应信息施加于第二局部通信信息m2以产生第二编码结果p2a能在第二局部通信信息m2被发送至编码电路200后的一预定时间内完成。例如,通过所述多个与运作以及所述多个互斥或运作,准备第二编码结果p2a的任一位的时间是在一个时钟周期内。尤其,通过所述多个与运作以及所述多个互斥或运作的至少一部分,准备第二编码结果p2a的第一位的时间是在第二局部通信信息m2被发送至编码电路200后的一个时钟周期内。为简明起见,这些实施例中与前述实施例类似的说明在此不重复赘述。
依据某些实施例,在结合第一编码结果p1a与第二编码结果p2a以产生对应于通信信息m的校验码p的第一局部校验码pa的运作中,结合电路248的互斥或门(例如图7所示的最右边的互斥或门)可对第一编码结果p1a以及第二编码结果p2a进行一互斥或运作以产生校验码p的第一局部校验码pa。通过所述多个与运作、所述多个互斥或运作以及所述互斥或运作,将所述预定输入响应信息施加于第二局部通信信息m2以产生第二编码结果p2a以及结合第一编码结果p1a与第二编码结果p2a以产生对应于通信信息m的校验码p的第一局部校验码pa是在第二局部通信信息m2被发送至编码电路200后的所述预定时间内完成。例如,通过所述多个与运作、所述多个互斥或运作以及所述互斥或运作,准备第一局部校验码pa的任一位的时间是在一个时钟周期内。尤其,通过所述多个与运作、所述多个互斥或运作以及所述互斥或运作的至少一部分,准备第一局部校验码pa的第一位的时间是在第二局部通信信息m2被发送至编码电路200后的一个时钟周期内。为简明起见,这些实施例中与前述实施例类似的说明在此不重复赘述。
图8依据本发明一实施例绘示图3所示的非挥发性存储器存取方法的工作流程,其中所述非挥发性存储器存取方法是可应用于记忆装置100以及存储器控制器110。
在步骤S10中,存储器控制器110可自主装置50接收所述写入指令并且开始接收对应于所述写入指令的数据(例如上述将被写入非挥发性存储器120的数据)。
在步骤S20中,编码电路200可取得上述至少一部分数据(例如所述多组数据,诸如以上提到的所述组数据)以作为所述ECC组块的多个通信信息{m},以通过编码电路200的所述超前型编码依据多个通信信息{m}产生所述ECC组块的多个校验码{p}。
在步骤S21中,当编码电路200开始接收通信信息m,控制电路210可启用所述第一局部通信信息路径(例如切换电路220的上方输出路径)并且禁用所述第二局部通信信息路径(例如切换电路220的下方输出路径)。
在步骤S22中,编码电路200可开始接收包括有第一局部通信信息m1的通信信息m。例如,在控制电路210的控制下,编码器230a可开始接收第一局部通信信息m1。又例如,编码器230b可开始接收包括有第一局部通信信息m1的通信信息m。
在步骤S23中,在第一局部通信信息m1被完全发送至编码电路200(尤其,编码器230a)后,编码器230a可开始对第一局部通信信息m1进行编码以产生第一编码结果p1a。
在步骤S24中,当编码电路200开始接收第二局部通信信息m2,控制电路210可禁用所述第一局部通信信息路径(例如切换电路220的上方输出路径)并且启用所述第二局部通信信息路径(例如切换电路220的下方输出路径)。
在步骤S25中,编码电路200可开始接收第二局部通信信息m2。例如,在控制电路210的控制下,超前电路240可开始接收第二局部通信信息m2。又例如,编码器230b可开始接收第二局部通信信息m2。
在步骤S26中,编码电路200可触发平行处理。
在步骤S26a中,在第二局部通信信息m2被完全发送至编码电路200(尤其,超前电路240中的存储单元242)后,超前电路240可将所述预定输入响应信息诸如多个基底校验码{pa,u(0),pa,u(1),…,pa,u(k-1)}施加于第二局部通信信息m2以产生第二编码结果p2a,以及结合电路248可结合第一编码结果p1a与第二编码结果p2a以产生第一局部校验码pa。
在步骤S26b中,在通信信息m被完整地发送至编码电路200(尤其,编码器230b)后,编码器230b可开始对通信信息m(例如包括有第一局部通信信息m1以及第二局部通信信息m2的通信信息m)进行编码以产生第二局部校验码pb。
在步骤S27中,在完全接收了通信信息m后的瞬间(例如接收到通信信息m的最后一位的时钟周期的下一时钟周期),编码电路200(例如其内的编码器230a、超前电路240、及结合电路248)可开始输出第一局部校验码pa以及第二局部校验码pb以产生校验码p。
在步骤S28中,编码电路200(例如控制电路210)可检查是否需要处理下一通信信息。当需要处理下一通信信息时,进入步骤S21;否则,进入步骤S30。
在步骤S30中,存储器控制器110可将包括有多个通信信息{m}以及多个校验码{p}的所述ECC组块写入非挥发性存储器120中。为简明起见,本实施例中与前述实施例类似的说明在此不重复赘述。
为便于理解,所述非挥发性存储器存取方法可用图8所示的工作流程做说明,但本发明不限于此。依据某些实施例,一或多个步骤可于图8所示的工作流程中被新增、删除、或修改。
另外,步骤S28可被绘示于图8所示的步骤S20中以指出步骤S21、S22、…、及S28可分别为多个通信信息{m}来进行,但本发明不限于此。依据某些实施例,在步骤S20中,编码电路200可用一管线(pipeline)方式处理多个通信信息{m},其中用于多个通信信息{m}中的一者的这些运作的一部分以及用于多个通信信息{m}中的另一者(例如下一个)的这些运作的一部分可同时进行。为简明起见,这些实施例中与前述实施例类似的说明在此不重复赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种使用借助于超前处理的数据保护的非挥发性存储器存取方法,其特征在于,所述非挥发性存储器存取方法是可应用于一记忆装置的一存储器控制器,所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述非挥发性存储器存取方法包括:
利用所述存储器控制器自一主装置接收一写入指令以及对应于所述写入指令的数据;
利用所述存储器控制器的一编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息,以及针对所述多个通信信息中的任一通信信息,所述超前型编码包括:
在所述通信信息的一第一局部通信信息被发送至所述编码电路后,开始对所述第一局部通信信息进行编码以产生一第一编码结果;
在所述通信信息的一第二局部通信信息被发送至所述编码电路后,将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果,以及结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;以及
在所述通信信息被完整地发送至所述编码电路后,开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码,以及输出所述第一局部校验码与所述第二局部校验码以产生对应于所述通信信息的所述校验码;以及
利用所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器。
2.如权利要求1所述的非挥发性存储器存取方法,其特征在于,所述通信信息包括一组通信信息位;以及所述第一局部通信信息包括所述组通信信息位中的多个起始位,且所述第二局部通信信息包括所述组通信信息位中的多个剩余位。
3.如权利要求2所述的非挥发性存储器存取方法,其特征在于,所述预定输入响应信息包括分别对应于多个基底的多个基底校验码,且所述多个基底的每一基底包括多个基底位;以及所述组通信信息位中的所述多个剩余位的位数与所述多个基底位的位数彼此相等。
4.如权利要求1所述的非挥发性存储器存取方法,其特征在于,所述校验码包括一组校验位;以及所述第一局部校验码包括所述组校验位中的多个起始位,且所述第二局部校验码包括所述组校验位中的多个剩余位。
5.如权利要求4所述的非挥发性存储器存取方法,其特征在于,所述预定输入响应信息包括分别对应于多个基底的多个基底校验码,且所述多个基底校验码的每一基底校验码包括多个基底校验位;以及所述组校验位中的所述多个起始位的位数与所述多个基底校验位的位数彼此相等。
6.如权利要求5所述的非挥发性存储器存取方法,其特征在于,所述第一编码结果的位数以及所述第二编码结果的位数都等于所述组校验位中的所述多个起始位的位数。
7.如权利要求4所述的非挥发性存储器存取方法,其特征在于,所述第一编码结果的位数以及所述第二编码结果的位数都等于所述组校验位中的所述多个起始位的位数。
8.如权利要求1所述的非挥发性存储器存取方法,其特征在于,所述预定输入响应信息包括分别对应于多个基底的多个基底校验码;以及将所述预定输入响应信息施加于所述第二局部通信信息以产生所述第二编码结果包括:
将所述多个基底校验码分别乘以所述第二局部通信信息的多个位以产生多个相乘结果;以及
结合所述多个相乘结果以产生所述第二编码结果。
9.如权利要求8所述的非挥发性存储器存取方法,其特征在于:
将所述多个基底校验码分别乘以所述第二局部通信信息的所述多个位以产生所述多个相乘结果包括:
对所述多个基底校验码以及所述第二局部通信信息的所述多个位分别进行多个与运作以产生所述多个相乘结果;以及
结合所述多个相乘结果以产生所述第二编码结果包括:
对所述多个相乘结果进行多个互斥或运作以产生所述第二编码结果;
其中通过所述多个与运作以及所述多个互斥或运作,将所述预定输入响应信息施加于所述第二局部通信信息以产生所述第二编码结果是在所述第二局部通信信息被发送至所述编码电路后的一预定时间内完成。
10.如权利要求9所述的非挥发性存储器存取方法,其特征在于:
结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的所述校验码的所述第一局部校验码包括:
对所述第一编码结果以及所述第二编码结果进行一互斥或运作以产生所述校验码的所述第一局部校验码;
其中通过所述多个与运作、所述多个互斥或运作以及所述互斥或运作,将所述预定输入响应信息施加于所述第二局部通信信息以产生所述第二编码结果并且结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的所述校验码的所述第一局部校验码是在所述第二局部通信信息被发送至所述编码电路后的所述预定时间内完成。
11.如权利要求10所述的非挥发性存储器存取方法,其特征在于,通过所述多个与运作、所述多个互斥或运作以及所述互斥或运作,准备所述第一局部校验码的任一位的时间是在一个时钟周期内。
12.如权利要求10所述的非挥发性存储器存取方法,其特征在于,通过所述多个与运作、所述多个互斥或运作以及所述互斥或运作的至少一部分,准备所述第一局部校验码的一第一位的时间是在所述第二局部通信信息被发送至所述编码电路后的一个时钟周期内。
13.如权利要求9所述的非挥发性存储器存取方法,其特征在于,通过所述多个与运作以及所述多个互斥或运作,准备所述第二编码结果的任一位的时间是在一个时钟周期内。
14.如权利要求9所述的非挥发性存储器存取方法,其特征在于,通过所述多个与运作以及所述多个互斥或运作的至少一部分,准备所述第二编码结果的一第一位的时间是在所述第二局部通信信息被发送至所述编码电路后的一个时钟周期内。
15.一种记忆装置,其特征在于,包括:
一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括至少一非挥发性存储器组件;以及
一存储器控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的运作,其中所述存储器控制器包括:
一处理电路,用来依据来自一主装置的多个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器;以及
一控制逻辑电路,耦接至所述处理电路,用来控制所述非挥发性存储器,其中所述控制逻辑电路包括:
一编码电路,用来借助于超前处理进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用;
其中:
所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;
所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息,以及针对所述多个通信信息中的任一通信信息,所述超前型编码的运作包括:
在所述通信信息的一第一局部通信信息被发送至所述编码电路后,所述编码电路开始对所述第一局部通信信息进行编码以产生一第一编码结果;
在所述通信信息的一第二局部通信信息被发送至所述编码电路后,所述编码电路将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果,以及结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;以及
在所述通信信息被完整地发送至所述编码电路后,所述编码电路开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码,以及输出所述第一局部校验码与所述第二局部校验码以产生对应于所述通信信息的所述校验码;以及
所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器。
16.如权利要求15所述的记忆装置,其特征在于,所述通信信息包括一组通信信息位;以及所述第一局部通信信息包括所述组通信信息位中的多个起始位,且所述第二局部通信信息包括所述组通信信息位中的多个剩余位。
17.如权利要求15所述的记忆装置,其特征在于,所述校验码包括一组校验位;以及所述第一局部校验码包括所述组校验位中的多个起始位,且所述第二局部校验码包括所述组校验位中的多个剩余位。
18.如权利要求15所述的记忆装置,其特征在于,所述预定输入响应信息包括分别对应于多个基底的多个基底校验码;以及针对所述编码电路将所述预定输入响应信息施加于所述第二局部通信信息以产生所述第二编码结果,所述编码电路将所述多个基底校验码分别乘以所述通信信息的所述第二局部通信信息的多个位以产生多个相乘结果,以及结合所述多个相乘结果以产生所述第二编码结果。
19.一种记忆装置的存储器控制器,其特征在于,所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述存储器控制器包括:
一处理电路,用来依据来自一主装置的多个主装置指令来控制所述存储器控制器,以容许所述主装置通过所述存储器控制器存取所述非挥发性存储器;以及
一控制逻辑电路,耦接至所述处理电路,用来控制所述非挥发性存储器,其中所述控制逻辑电路包括:
一编码电路,用来借助于超前处理进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用;
其中:
所述存储器控制器自所述主装置接收一写入指令以及对应于所述写入指令的数据;
所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息,以及针对所述多个通信信息中的任一通信信息,所述超前型编码的运作包括:
在所述通信信息的一第一局部通信信息被发送至所述编码电路后,所述编码电路开始对所述第一局部通信信息进行编码以产生一第一编码结果;
在所述通信信息的一第二局部通信信息被发送至所述编码电路后,所述编码电路将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果,以及结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;以及
在所述通信信息被完整地发送至所述编码电路后,所述编码电路开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码,以及输出所述第一局部校验码与所述第二局部校验码以产生对应于所述通信信息的所述校验码;以及
所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器。
20.一种记忆装置的存储器控制器的编码电路,其特征在于,所述记忆装置包括所述存储器控制器以及一非挥发性存储器,所述存储器控制器包括所述编码电路,所述非挥发性存储器包括至少一非挥发性存储器组件,所述编码电路包括:
一控制电路,用来控制所述编码电路借助于超前处理进行编码以供于存取所述非挥发性存储器的期间的数据保护的使用,其中所述存储器控制器自一主装置接收一写入指令以及对应于所述写入指令的数据,以及所述编码电路取得对应于所述写入指令的所述数据中的至少一部分数据以作为一错误更正码组块的多个通信信息,以通过超前型编码依据所述多个通信信息产生所述错误更正码组块的多个校验码,其中所述多个校验码分别对应于所述多个通信信息以分别保护所述多个通信信息;
一通信信息输入端子,用来接收所述多个通信信息中的任一通信信息;一切换电路,耦接至所述通信信息输入端子以及所述控制电路,用来在所述控制电路的控制下进行切换,以将所述多个通信信息中的所述通信信息分为一第一局部通信信息以及一第二局部通信信息;
一第一编码器,耦接至所述切换电路,其中在所述通信信息的所述第一局部通信信息被发送至所述编码电路后,所述第一编码器开始对所述第一局部通信信息进行编码以产生一第一编码结果;
一超前电路,耦接至所述切换电路,其中在所述通信信息的所述第二局部通信信息被发送至所述编码电路后,所述超前电路将预定输入响应信息施加于所述第二局部通信信息以产生一第二编码结果;
一结合电路,耦接至所述第一编码器以及所述超前电路,用来结合所述第一编码结果与所述第二编码结果以产生对应于所述通信信息的一校验码的一第一局部校验码;
一第二编码器,耦接至所述通信信息输入端子,其中在所述通信信息被完整地发送至所述编码电路后,所述第二编码器开始对所述通信信息进行编码以产生对应于所述通信信息的所述校验码的一第二局部校验码;以及
一输出电路,耦接至所述结合电路以及所述第二编码器,其中在所述控制电路的控制下,所述输出电路输出所述第一局部校验码以及所述第二局部校验码以产生对应于所述通信信息的所述校验码;
其中所述存储器控制器将包括有所述多个通信信息以及所述多个校验码的所述错误更正码组块写入所述非挥发性存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/423,177 US10866859B1 (en) | 2019-05-28 | 2019-05-28 | Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus |
US16/423,177 | 2019-05-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112017725A CN112017725A (zh) | 2020-12-01 |
CN112017725B true CN112017725B (zh) | 2022-10-21 |
Family
ID=73506884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010406740.0A Active CN112017725B (zh) | 2019-05-28 | 2020-05-14 | 超前处理的数据保护的非挥发性存储器存取方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10866859B1 (zh) |
CN (1) | CN112017725B (zh) |
TW (1) | TWI721817B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894590A (zh) * | 2009-05-21 | 2010-11-24 | 成都市华为赛门铁克科技有限公司 | 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备 |
CN103137213A (zh) * | 2011-12-01 | 2013-06-05 | 慧荣科技股份有限公司 | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 |
CN103824598A (zh) * | 2012-11-19 | 2014-05-28 | 智微科技股份有限公司 | 错误检查及校正方法以及错误检查及校正电路 |
CN107403640A (zh) * | 2016-04-27 | 2017-11-28 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN109788290A (zh) * | 2017-11-13 | 2019-05-21 | 慧荣科技股份有限公司 | 影像处理装置及利用帧内预测的无损影像压缩方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100921748B1 (ko) * | 2007-06-04 | 2009-10-15 | 삼성전자주식회사 | Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법 |
US8892980B2 (en) * | 2010-06-15 | 2014-11-18 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
US8972824B1 (en) * | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
US9021337B1 (en) * | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US9021336B1 (en) * | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
US9026867B1 (en) * | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
US9009565B1 (en) * | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US9152495B2 (en) * | 2013-07-03 | 2015-10-06 | SanDisk Technologies, Inc. | Managing non-volatile media using multiple error correcting codes |
KR102108386B1 (ko) * | 2013-12-23 | 2020-05-08 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들 |
US9984768B2 (en) * | 2014-10-20 | 2018-05-29 | Sandisk Technologies Llc | Distributing storage of ECC code words |
US20160283321A1 (en) * | 2015-03-28 | 2016-09-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and Methods for Flash Memory Access |
KR20170121798A (ko) * | 2016-04-26 | 2017-11-03 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
US10985780B2 (en) * | 2018-10-15 | 2021-04-20 | SK Hynix Inc. | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller |
-
2019
- 2019-05-28 US US16/423,177 patent/US10866859B1/en active Active
-
2020
- 2020-03-11 TW TW109108030A patent/TWI721817B/zh active
- 2020-05-14 CN CN202010406740.0A patent/CN112017725B/zh active Active
- 2020-11-13 US US17/096,960 patent/US11169878B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894590A (zh) * | 2009-05-21 | 2010-11-24 | 成都市华为赛门铁克科技有限公司 | 存储数据纠错的编码和译码方法,装置以及存储数据纠错设备 |
CN103137213A (zh) * | 2011-12-01 | 2013-06-05 | 慧荣科技股份有限公司 | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 |
CN103824598A (zh) * | 2012-11-19 | 2014-05-28 | 智微科技股份有限公司 | 错误检查及校正方法以及错误检查及校正电路 |
CN107403640A (zh) * | 2016-04-27 | 2017-11-28 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN109788290A (zh) * | 2017-11-13 | 2019-05-21 | 慧荣科技股份有限公司 | 影像处理装置及利用帧内预测的无损影像压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112017725A (zh) | 2020-12-01 |
US20200379844A1 (en) | 2020-12-03 |
US11169878B2 (en) | 2021-11-09 |
TW202044267A (zh) | 2020-12-01 |
US20210064466A1 (en) | 2021-03-04 |
US10866859B1 (en) | 2020-12-15 |
TWI721817B (zh) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108447523B (zh) | 用来控制一记忆装置的方法以及记忆装置与控制器 | |
CN108268337B (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
US8719491B2 (en) | Encoding flash memory data with a randomizer using different seeds for different sectors | |
CN113064547B (zh) | 有局部顺序信息的校验矩阵的保护的数据存取方法及设备 | |
US11243838B2 (en) | Methods and apparatuses for error correction | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
CN108932202B (zh) | 存储器系统及其操作方法 | |
CN109783005B (zh) | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 | |
CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
CN113360303A (zh) | 进行数据存储管理以提升数据可靠度的方法以及相关设备 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
CN117437957A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI751096B (zh) | 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 | |
CN110349615B (zh) | 控制器、其操作方法及包括控制器的存储器系统 | |
CN117149059A (zh) | 非易失性存储器装置中的功率高效码字加扰 | |
CN112017725B (zh) | 超前处理的数据保护的非挥发性存储器存取方法和设备 | |
TWI651730B (zh) | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 | |
US10141072B2 (en) | Efficient encoder based on modified RU algorithm | |
US20230223078A1 (en) | Memory device, memory system, and method of operating the same |
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 |