CN114579350A - 控制器及其操作方法 - Google Patents
控制器及其操作方法 Download PDFInfo
- Publication number
- CN114579350A CN114579350A CN202110774402.7A CN202110774402A CN114579350A CN 114579350 A CN114579350 A CN 114579350A CN 202110774402 A CN202110774402 A CN 202110774402A CN 114579350 A CN114579350 A CN 114579350A
- Authority
- CN
- China
- Prior art keywords
- data
- cyclic redundancy
- redundancy check
- controller
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本技术包括一种控制器及其操作方法。一种控制器包括:缓冲器,存储N位数据;以及循环冗余校验控制器,被配置为将存储在缓冲器中的N位数据划分成每个包括K位数据的m个数据组,通过处理m个数据组中包括的数据来生成包括K位的压缩数据,并且使用压缩数据生成循环冗余校验码。
Description
相关申请的交叉引用
本申请要求于2020年11月30日向韩国国家知识产权局提交的申请号为10-2020-0164597的韩国专利申请的优先权,其全部公开通过引用并入本文。
技术领域
本公开涉及一种控制器及其操作方法,更特别地,涉及一种能够生成循环冗余校验码的控制器及其操作方法。
背景技术
存储器系统可以被配置为在主机的控制下存储从主机传输的数据或将所存储的数据输出到主机。存储器系统可以包括能够存储数据的存储装置以及能够控制该存储装置的控制器。存储装置可以包括多个存储器装置。存储器装置通常可以分类为易失性存储器装置和非易失性存储器装置。控制器可以被配置为在主机和存储装置之间进行通信。
控制器可以生成循环冗余校验码,该循环冗余校验码用于在将从主机接收的数据传输到存储装置之前检查该数据。例如,控制器可以通过处理原始数据来生成循环冗余校验码,通过将循环冗余校验码添加到原始数据中来生成数据集,并且将数据集传输到存储装置。
近来,随着主机与控制器之间传输的数据量增加,用于生成循环冗余校验码的操作的复杂度也在增加。
发明内容
本公开的实施例提供一种能够降低用于生成循环冗余校验码的操作的复杂度的控制器及其操作方法。
根据本公开的实施例,一种控制器包括:缓冲器,存储N位数据;以及循环冗余校验控制器,被配置为将存储在缓冲器中的N位数据划分成每个包括K位数据的m个数据组,通过处理m个数据组中包括的数据生成包括K位的压缩数据,并且使用压缩数据生成循环冗余校验码。
根据本公开的实施例,一种操作控制器的方法包括:将输入数据划分成多个数据组,通过以位为单位将多个数据组中包括的数据进行逻辑组合来生成压缩数据,并且通过对压缩数据执行循环冗余校验操作来生成循环冗余校验码。
本技术可以即使在数据的大小增加的情况下,也可降低用于生成循环冗余校验码的操作的复杂度。
附图说明
图1示出根据本公开实施例的存储器系统。
图2示出根据本公开的实施例的图1的控制器。
图3示出根据本公开的实施例的图2的主机接口。
图4示出根据本公开的实施例的划分数据的方法。
图5是示出根据本公开的第一实施例的操作控制器的方法的流程图。
图6A和图6B具体地示出根据本公开的第一实施例的操作控制器的方法。
图7是示出根据本公开的第二实施例的操作控制器的方法的流程图。
图8具体地示出根据本公开的第二实施例的操作控制器的方法。
图9是示出根据本公开的第三实施例的操作控制器的方法的流程图。
图10A和图10B具体地示出根据本公开的第三实施例的操作控制器的方法。
图11是示出根据本公开的第四实施例的操作控制器的方法的流程图。
图12A和图12B具体地示出根据本公开的第四实施例的操作控制器的方法。
图13示出应用了本公开的控制器的存储卡系统。
图14示出应用了本公开的控制器的固态驱动器(SSD)系统。
具体实施方式
图1示出根据本公开的实施例的存储器系统1000。
参照图1,存储器系统1000可以包括能够存储数据的存储装置1100和能够控制存储装置1100的控制器1200。
存储装置1100可以包括多个管芯D11至Dij,其中i和j是正整数。管芯D11至Dij可以是彼此相同地配置的存储器装置。管芯D11至Dij可以响应于由控制器1200提供的命令来执行编程操作、读取操作或擦除操作。管芯D11至Dij可以被配置为非易失性存储器装置。例如,非易失性存储器装置可以包括:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)、自旋转移力矩磁性RAM(STT-MRAM)等。
控制器1200可以在主机2000和存储装置1100之间通信。例如,控制器1200可以根据主机2000提供的请求生成编程命令、读取命令或擦除命令,并且将所生成的命令传输到存储装置1100的所选择管芯。
当在主机2000和存储装置1100之间传输数据时,控制器1200可以生成用于校验数据的循环冗余校验(CRC)码。例如,控制器1200可以将输入数据划分成多个组,并且通过处理数据针对每组生成循环冗余校验码。
图2具体地示出根据本公开的实施例的图1的控制器1200。
参照图2,当在主机2000和存储装置1100之间传输数据时,控制器1200可以基于数据生成CRC码并且传输将CRC码添加到数据中的数据集。例如,控制器1200可以包括中央处理单元200、主机接口210、系统接口220、系统存储器230和存储器接口240。中央处理单元200、主机接口210、系统接口220和存储器接口240可以通过总线BUS相互通信。
中央处理单元200可以包括能够控制控制器1200的整体操作的软件和硬件。例如,中央处理单元200可以根据通过主机接口210接收到的主机2000的请求来控制主机接口210、系统接口220和存储器接口240。此外,即使请求不是由主机2000提供的,中央处理单元200也可以执行用于提高或管理存储器系统1000的性能的后台操作。
当从主机2000接收到请求时,主机接口210可以将所接收到的请求传输到中央处理单元200,并且在主机2000和控制器1200之间传输数据DATA。例如,在编程操作中,当主机接口210从主机2000接收数据DATA时,主机接口210可以执行循环冗余校验操作,以校验所接收的数据DATA并生成循环冗余校验码CRCC。循环冗余校验操作可以是用于校验数据DATA的各种操作中的一个。由于循环冗余校验操作通过处理数据DATA而生成循环冗余校验码CRCC,因此随着从主机2000接收到的数据DATA的大小增加,循环冗余校验操作的复杂度可能增加,并且执行循环冗余校验操作所需的时间可能增加。例如,随着主机2000和控制器1200之间的通道21的大小增加,在主机接口210中执行的循环冗余校验操作的复杂度也增加。
因此,在本实施例中,提供了一种用于简化循环冗余校验操作的技术。
当生成循环冗余校验码CRCC时,主机接口210可以输出通过将循环冗余校验码CRCC添加到数据DATA而获得的数据集DATA+CRCC。
从主机接口210输出的数据集DATA+CRCC可以通过总线BUS和系统接口220传输到系统存储器230(22)。系统接口220可以在中央处理单元200的控制下将加载在总线BUS上的数据集DATA+CRCC传输到系统存储器230(22)。
系统存储器230可以临时存储由控制器1200使用的和待使用的各条信息。例如,系统存储器230可以由诸如DRAM、SRAM等的易失性存储器配置。因此,当存储器系统1000的电源被切断时,存储在系统存储器230中的信息可能会丢失。在编程操作期间,可以保持暂时存储在系统存储器230中的数据集DATA+CRCC,直到在存储装置1100中完成了数据集DATA+CRCC的编程操作。
在系统接口220的控制下,可以通过总线BUS将系统存储器230中存储的数据集DATA+CRCC传输到存储器接口240(23)。
存储器接口240可以在控制器1200和存储装置1100之间传输数据集DATA+CRCC。例如,在编程操作中,存储器接口240可以从系统接口220(23)接收数据集DATA+CRCC,并且使用包括在所接收到的数据集DATA+CRCC中的循环冗余校验码CRCC来校验数据DATA。作为检查的结果,当数据DATA中不存在错误时,存储器接口240可以通过通道24将数据集DATA+CRCC传输到存储装置1100。除了数据集DATA+CRCC之外,存储器接口240还可以传输命令和地址。
主机接口210和存储器接口240可以执行循环冗余校验操作。在下面描述的实施例中,描述了主机接口210执行循环冗余校验操作,但是本实施例也可以应用于存储器接口240。
图3示出根据本公开的实施例的图2的主机接口210。
参照图3,主机接口210可以包括缓冲器31和循环冗余校验(CRC)控制器32。
缓冲器31可以临时存储从主机2000接收的数据DATA。因此,随着连接到主机2000的通道21的大小增加,存储在缓冲器31中的数据DATA的大小可能增加。例如,假设在一个周期期间通过通道21输入N位数据(N为正整数),那么在第一周期期间可以将N位第一数据DATA1输入到缓冲器31,在第二周期期间可以将N位第二数据DATA2输入到缓冲器31,在第三周期期间可以将N位第三数据DATA3输入到缓冲器31,并且在第四周期期间可以将N位第四数据DATA4输入到缓冲器31。
CRC控制器32可以通过对第一数据DATA1执行循环冗余校验操作来生成第一循环冗余校验码CRCC1,并且输出包括第一数据DATA1和第一循环冗余校验码CRCC1的第一数据集DATA1+CRCC1。通过这种方法,CRC控制器32可以通过对其余的第二至第四数据DATA2至DATA4中的每一个执行循环冗余校验操作来顺序地输出第二至第四数据集DATA2+CRCC2、DATA3+CRCC3和DATA4+CRCC4。
然而,随着由存储器系统1000处理的数据大小的增加,N可能增加,并且随着N增加,循环冗余校验操作的复杂度增加。因此,CRC控制器32输出第一至第四数据集DATA1+CRCC1、DATA2+CRCC2、DATA3+CRCC3和DATA4+CRCC4所花费的时间可能增加。
因此,在本实施例中,可以将存储在缓冲器31中的数据DATA划分成多个数据组,每个数据组包括数量小于N的多个位,并且可以以数据组为单位执行循环冗余校验操作,即可以对每个数据组执行循环冗余校验操作。
图4示出根据实施例的划分数据的方法。将参照图2和图3描述图4所示的方法。
参照图4,假设每个周期通过通道21接收的数据DATA的大小为N位。CRC控制器32可以将存储在缓冲器31中的N位数据DATA划分成m个数据组DTG1至DTGm。数据组DTG1至DTGm中的每一个可以由K位数据构成。也就是说,由于将N位数据DATA划分成m个数据组,并且每个数据组由K位构成,因此K为N/m。
例如,当将N位第一数据DATA1输入到缓冲器31时,第一数据DATA1可以被划分为第(1-1)至第(1-m)数据组DTG1-1至DTG1-m,并且第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中可以包括K位数据。在第一数据DATA1的下一个周期中输入的第二数据DATA2也可以划分为第(2-1)至第(2-m)数据组DTG2-1至DTG2-m。第三和第四数据DATA3和DAT4也可以分别划分为第(3-1)至第(3-m)数据组DTG3-1至DTG3-m和第(4-1)至第(4-m)数据组DTG4-1至DTG4-m。
可选地,数据DATA可以被划分为多个数据组,该多个数据组的数量与在主机2000和控制器1200之间传输数据DATA所通过的通路(lane)的数量相对应。例如,当通道21包括两个通路时,数据DATA可以划分为第一和第二数据组DTGi-1和DTGi-2,并且当通道21包括四个通路时,数据DATA可以划分为第一至第四数据组DTGi-1至DTGi-4。
缓冲器31可以包括能够存储数据的多个单元,并且每个单元可以存储1位数据。例如,由于第(1-1)数据组DTG1-1包括K位数据,所以第(1-1)数据组DTG1-1的K位数据可以分别存储在第一至第K单元R1至RK中。第一至第K单元R1至RK也可以分配给其余的数据组中的每一个,并且在每个单元中可存储1位数据。再例如,缓冲器31可包括分别对应于第(1-1)至第(1-m)数据组DTG1-1至DTG1-m的多个单元组,每个单元组包括K个单元,并且该K个单元分别存储第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的相应数据组中包括的K位数据。
在本实施例中,可以针对每个数据组来确定循环冗余校验码CRCC,下面对其具体实施例进行描述。
图5是示出根据本公开的第一实施例的操作控制器的方法的流程图。将参照图4来描述图5所示的方法。
参照图5,当将包括N位的数据DATA输入到缓冲器31时,CRC控制器32可以将N位数据DATA划分为第一至第m数据组DTG1至DTGm。
随后,在S51处,CRC控制器32可以通过压缩第一至第m数据组DTG1至DTGm的数据DATA来生成压缩数据DATA_CP。例如,CRC控制器32可以通过将从第一至第m数据组DTG1至DTGm中选择的、存储在相应单元中的数据进行逻辑组合来生成具有K位的压缩数据DATA_CP。
在S52处,CRC控制器32可以通过对具有K位的压缩数据DATA_CP执行循环冗余校验操作来生成循环冗余校验码CRCC。由于压缩数据DATA_CP包括比N位数据DATA少的K位数据,因此可以降低由CRC控制器32执行的循环冗余校验操作的复杂度,从而可以减少执行循环冗余校验操作所需的时间。
在S53处,当生成循环冗余校验码CRCC时,CRC控制器32可以输出数据集DATA+CRCC,在数据集DATA+CRCC中循环冗余校验码CRCC被添加到数据DATA。
下面更具体地描述根据参照图5描述的第一实施例的方法。
图6A和图6B具体地示出根据本公开的第一实施例的操作控制器的方法。
图6A示出生成第一数据DATA1的循环冗余校验码CRCC的方法。当将N位第一数据DATA1输入到缓冲器31时,第一数据DATA1可划分为第(1-1)至第(1-m)数据组DTG1-1至DTG1-m。第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个可以包括小于N位数据的K位数据。
在S51处,可以通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m执行XOR运算来生成压缩数据DATA_CP。例如,CRC控制器32可以通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中的相同位置的1位数据执行XOR运算,来生成压缩数据DATA_CP。换言之,通过对m个数据执行XOR运算而获得的值可以为压缩数据DATA_CP的1位数据,其中从第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中选择该m个数据中的每个数据。通过这种方法,CRC控制器32可以生成包括K位的压缩数据DATA_CP,其中通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的相同位置的m个数据执行XOR运算来获得该K个位中的每个位。例如,对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中的K个位之中的第一位执行XOR运算,以生成压缩数据DATA_CP的第一位。
在S52处,当生成压缩数据DATA_CP时,CRC控制器32可以通过对压缩数据DATA_CP执行循环冗余校验操作来生成循环冗余校验码CRCC。循环冗余校验码CRCC可被生成为包括L个位。L可以是正整数并且可以根据循环冗余校验操作而变化。
由于CRC控制器32使用K位压缩数据DATA_CP,而不是存储在缓冲器31中的N位第一数据DATA1来生成循环冗余校验码CRCC,因此相比于使用N位第一数据DATA1执行操作,可以更快速地生成循环冗余校验码CRCC。以下更具体地描述参照图5和图6A描述的进程S51和S52。
参照图6B,在S51处,可以通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中包括的1位数据执行XOR运算来生成压缩数据DATA_CP。例如,当第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个(包括K个位)存储在第一至第K单元R1至RK中时,通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第一单元R1中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第一压缩数据C1;通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第二单元R2中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第二压缩数据C2;通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第三单元R3中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第三压缩数据C3;并且,通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第K单元RK中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第K压缩数据CK。因此,包括在压缩数据DATA_CP中的位数与第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中包括的位数相同。例如,假设如上所示第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个包括K位数据,则压缩数据DATA_CP也可以包括K位数据。
在S52处,CRC控制器32可以通过对K位压缩数据DATA_CP执行循环冗余校验操作来生成L位循环冗余校验码CRCC。也就是说,在现有技术中,通过使用N位数据来执行循环冗余校验操作,但在本实施例中,通过使用小于N位数据的K位压缩数据DATA_CP来执行循环冗余校验操作。因此,可以简化循环冗余校验操作,并且也可以缩短其操作时间。
图7是示出根据本公开的第二实施例的操作控制器的方法的流程图。将参照图4来描述图7所示的方法。
参照图7,当将包括N位的数据DATA输入到缓冲器31时,CRC控制器32可以将N位数据DATA划分为第一至第m数据组DTG1至DTGm。
在S71处,CRC控制器32可以生成与各个第一至第m数据组DTG1至DTGm相对应的第一至第m循环冗余校验码CRCC1至CRCCm。例如,CRC控制器32可以通过处理包括在第一数据组DTG1中的数据来生成第一循环冗余校验码CRCC1,并且通过处理包括在第m数据组DTGm中的数据来生成第m循环冗余校验码CRCCm。当第一至第m数据组DTG1至DTGm中的每一个都包括K位数据时,由于通过使用小于N位的K位来生成第一至第m循环冗余校验码CRCC1至CRCCm,所以与使用N位数据的情况相比,可以减少执行循环冗余校验操作所需的时间。
随后,在S72处,CRC控制器32可以通过压缩第一至第m循环冗余校验码CRCC1至CRCCm来生成循环冗余校验码CRCC。
在S73处,当生成循环冗余校验码CRCC时,CRC控制器32可以输出数据集DATA+CRCC,在数据集DATA+CRCC中循环冗余校验码CRCC被添加到数据DATA。
下面更具体地描述根据参照图7描述的第二实施例的方法。
图8具体地示出根据本公开的第二实施例的操作控制器的方法。
参照图8,当将N位第一数据DATA1输入到缓冲器31时,CRC控制器32可以将第一数据DATA1划分为第(1-1)至第(1-m)数据组DTG1-1至DTG1-m。
假设第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个包括K位数据,则在S71处,可以将分别对应于第(1-1)至第(1-m)数据组DTG1-1至DTG1-m的第一至第m循环冗余校验码CRCC1至CRCCm生成为L位代码,其中L位小于K位。例如,CRC控制器32可以针对包括在第(1-1)数据组DTG1-1中的数据生成第一循环冗余校验码CRCC1,并且针对包括在第(1-2)数据组DTG1-2中的数据生成第二循环冗余校验码CRCC2。通过这种方法,CRC控制器32可以生成分别对应于第(1-1)至第(1-m)数据组DTG1-1至DTG1-m的第一至第m循环冗余校验码CRCC1至CRCCm。
在S72处,可以通过对第一至第m循环冗余校验码CRCC1至CRCCm中的相同位置的数据执行XOR运算来生成循环冗余校验码CRCC。例如,可以以与参照图6B描述的S51的方法类似的方法来执行S72。也就是说,假设第一至第m循环冗余校验码CRCC1至CRCCm中的每一个都存储在第一至第L单元中,则通过对第一至第m循环冗余校验码CRCC1至CRCCm中的、存储在第一单元中的m个数据执行XOR运算获得的值可以成为循环冗余校验码CRCC的第一位,并且通过对第一至第m循环冗余校验码CRCC1至CRCCm中的、存储在第二单元中的m个数据执行XOR运算获得的值可以成为循环冗余校验码CRCC的第二位。通过这种方法,当对第一至第m循环冗余校验码CRCC1至CRCCm中的、存储在第L单元中的m个数据执行XOR运算时,可以最终生成L位循环冗余校验码CRCC。
在S73处,可以输出第一数据集DATA1+CRCC,在第一数据集DATA1+CRCC中循环冗余校验码CRCC被添加到第一数据DATA1。
图9是示出根据本公开的第三实施例的操作控制器的方法的流程图。将参照图4来描述图9所示的方法。
参照图9,当将N位数据DATA输入到缓冲器31时,CRC控制器32可以将数据DATA划分成第一至第m数据组DTG1到DTGm,每个数据组包括K个位。
在S91处,CRC控制器32可以通过对包括在第一至第m数据组DTG1至DTGm中的每一个中的所选择数据的数量进行计数来计算第一至第m计数值CTV1至CTVm。例如,当所选择数据为1时,可以对包括在第一数据组DTG1中的数据1的数量进行计数,并将其确定为第一计数值CTV1。可以将第一至第m计数值CTV1至CTVm中的每一个生成为二进制记数法代码。包括在第一至第m计数值CTV1至CTVm中的每一个中的位数可以相同。例如,当第一计数值CTV1包括J位数据(J为正整数)时,其余的第二至第m计数值CTV2至CTVm中的每一个也可以包括J位数据。
之后,在S92处,CRC控制器32可以生成第一至第m计数值CTV1至CTVm的压缩计数值CTV_CP。例如,通过对第一计数值CTV1中包括的所有位执行XOR运算获得的值可以成为压缩计数值CTV_CP的第一压缩数据,并且通过对第二计数值CTV2中包括的所有位执行XOR运算获得的值可以成为压缩计数值CTV_CP的第二压缩数据。通过这种方法,通过对其余的第三至第m计数值CTV3至CTVm中的每一个执行XOR运算获得的值可以成为压缩计数值CTV_CP的第三至第m压缩数据。因此,压缩计数值CTV_CP的位数与数据组DTG1至DTGm的数量相同。
在S93处,CRC控制器32可以通过处理压缩计数值CTV_CP来生成总计数值CV。例如,总计数值CV可以是通过对压缩计数值CTV_CP的所有位执行XOR运算而获得的值。
在S94处,CRC控制器32可以通过压缩第一至第m数据组DTG1至DTGm的数据DATA来生成压缩数据DATA_CP。例如,CRC控制器32可以通过将从第一至第m数据组DTG1至DTGm中选择的、存储在相同位置的单元中的数据进行逻辑组合来生成具有K位的压缩数据DATA_CP。
在S95处,CRC控制器32可以通过对具有K位的压缩数据DATA_CP执行循环冗余校验操作来生成循环冗余校验码CRCC。由于压缩数据DATA_CP包括小于N位的K位,因此可以简化由CRC控制器32执行的循环冗余校验操作,从而可以缩短循环冗余校验操作所需的时间。
在上述的S91至S95之中,用于生成总计数值CV的S91至S93与用于生成循环冗余校验码CRCC的S94至S95之间的顺序可以改变。
在S96处,CRC控制器32可以通过将循环冗余校验码CRCC和总计数值CV进行逻辑组合来生成循环冗余校验计数码CRCCv。例如,可以通过对循环冗余校验码CRCC和总计数值CV执行XOR运算来计算循环冗余校验计数码CRCCv。
在S97处,当生成循环冗余校验计数码CRCCv时,CRC控制器32可以输出数据集DATA+CRCCv,在数据集DATA+CRCCv中循环冗余校验计数码CRCCv被添加到数据DATA。
下面更具体地描述根据参照图9描述的第三实施例的操作方法。
图10A和图10B具体地示出根据本公开的第三实施例的操作控制器的方法。
参照图10A,具体示出了参照图9描述的S91至S93。
在S91处,可以计算第一数据DATA1的第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中包括的所选择数据的数量作为第一至第m计数值CTV1至CTVm。例如,假设所选择数据是1并且第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个包括K位数据。在这种情况下,第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个可以包括分别存储在第一至第K单元R1至RK中的K位数据。当以第(1-1)数据组DTG1-1为例进行描述时,第(1-1)数据组DTG1-1中包括的数据可以存储在第一至第K单元R1至RK中,每个单元包括1位数据。存储在每个单元中的数据包括0或1,并且1为本实施例中的所选择数据。因此,CRC控制器32可以通过对第(1-1)数据组DTG1-1中包括的数据1的数量进行计数来计算第一计数值CTV1。可将第一至第m计数值CTV1至CTVm中的每一个生成为二进制记数法代码。第一至第m计数值CTV1至CTVm中的每一个的位数可以相同。例如,当第一计数值CTV1包括J位代码(J是正整数)时,其余的第二至第m计数值CTV2至CTVm中的每一个也可以包括J位代码。
例如,假设K为32,由于第(1-1)数据组DTG1-1的数据包括32位,因此每个数据组中包括的数据1的最大数量为32。当将十进制数32转换为二进制数时,32变为100000,因此可以将J设置为至少6或更大的整数。也就是说,第一计数值CTV1可以包括至少6位数据。在实施例中,假设第(1-1)数据组DTG1-1的数据包括32位数据01000111010101110010101010000101,则包括在第(1-1)数据组DTG1-1的数据1的数量为15。CRC控制器32可以将计数值,即15转换为二进制数001111,并且转换后的值001111可以为第一计数值CTV1。通过这种方法,可以计算其余的第二至第m计数值CTV2至CTVm。
在S92处,CRC控制器32可以通过对第一至第m计数值CTV1至CTVm中的每一个执行XOR运算来生成m位压缩计数值CTV_CP。
例如,通过对第一计数值CTV1中包括的所有位执行XOR运算获得的值可以为压缩计数值CTV_CP的第一压缩数据C1,并且通过对第二计数值CTV2中包括的所有位执行XOR运算获得的值可以为压缩计数值CTV_CP的第二压缩数据C2。通过这种方法,通过对其余的第三至第m计数值CTV3至CTVm中的每一个执行XOR运算而获得的值可以为压缩计数值CTV_CP的第三至第m压缩数据。因此,压缩计数值CTV_CP的位数为m,其中m与数据组DTG1-1至DTG1-m的数量相同。
在S93处,CRC控制器32可以通过处理压缩计数值CTV_CP来生成总计数值CV。例如,总计数值CV可以通过对压缩计数值CTV_CP的所有位,即m位执行XOR运算而获得。
参照图10B,具体示出了参照图9描述的S94至S96。
在S94处,可以通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在相同位置处的单元中的数据执行XOR运算来生成压缩数据DATA_CP。例如,通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第一单元R1中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第一压缩数据C1;通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第二单元R2中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第二压缩数据C2;通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第三单元R3中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第三压缩数据C3;并且,通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第K单元RK中的m个数据执行XOR运算获得的值可以是压缩数据DATA_CP的第K压缩数据CK。因此,压缩数据DATA_CP的位数与第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个的位数相同。例如,假设第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个包括K位数据,则压缩数据DATA_CP也可生成为具有K位数据。
在S95处,CRC控制器32可以通过使用K位压缩数据DATA_CP执行循环冗余校验操作来生成包括L位的循环冗余校验码CRCC。在现有技术中,通过使用N位数据来执行循环冗余校验操作,而在本实施例中,通过使用小于N位数据的K位压缩数据DATA_CP来执行循环冗余校验操作。因此,在本实施例中,可以简化循环冗余校验操作,并且也可以缩短其操作时间。
在S96处,CRC控制器32可以通过对循环冗余校验码CRCC和总计数值CV执行XOR运算来生成循环冗余校验计数码CRCCv。
图11是示出根据本公开的第四实施例的操作控制器的方法的流程图。将参照图4描述图11的方法。
参照图11,当将包括N位的数据DATA输入到缓冲器31时,CRC控制器32可以将数据DATA划分成第一至第m数据组DTG1至DTGm,每个数据组包括K位数据。
在S111处,CRC控制器32可以通过对包括在第一至第m数据组DTG1至DTGm中的每一个中的所选择数据的数量进行计数来计算第一至第m计数值CTV1至CTVm。例如,当所选择数据为1时,可以计算第一数据组DTG1中包括的数据1的数量作为第一计数值CTV1。可以将第一至第m计数值CTV1至CTVm中的每一个生成为二进制记数法代码。第一至第m计数值CTV1至CTVm的位数可以相同。例如,当第一计数值CTV1包括J位数据(J为正整数)时,其余的第二至第m计数值CTV2至CTVm中的每一个也可以包括J位数据。
在S112处,CRC控制器32可以通过处理第一至第m计数值CTV1至CTVm来生成子计数值CTV_S。子计数值CTV_S包括J位数据。例如,通过对构成第一至第m计数值CTV1至CTVm的所有数据执行XOR运算而获得的值可以被生成为子计数值CTV_S。
在S113处,CRC控制器32可以通过处理子计数值CTV_S来生成总计数值CV。例如,可以通过对子计数值CTV_S的所有位执行XOR运算来获得总计数值CV。
在S114处,CRC控制器32可以通过压缩第一至第m数据组DTG1至DTGm的数据DATA来生成压缩数据DATA_CP。例如,CRC控制器32可以通过将第一至第m数据组DTG1至DTGm中的数据之中的、存储在相同位置的单元中的数据进行逻辑组合来生成具有K位的压缩数据DATA_CP。
在S115处,CRC控制器32可以通过处理具有K位的压缩数据DATA_CP来生成循环冗余校验码CRCC。由于压缩数据DATA_CP中包括小于N位数据的K位数据,因此可以简化由CRC控制器32执行的循环冗余校验操作,从而可以缩短循环冗余校验操作所需的时间。
在上述的S111至S115之中,用于生成总计数值CV的S111至S113与用于生成循环冗余校验码CRCC的S114至S115之间的顺序可以改变。
在S116处,CRC控制器32可以通过将循环冗余校验码CRCC和总计数值CV进行逻辑组合来生成循环冗余校验计数码CRCCv。例如,可以通过对循环冗余校验码CRCC和总计数值CV执行XOR运算来计算循环冗余校验计数码CRCCv。
在S117处,当生成循环冗余校验计数码CRCCv时,CRC控制器32可以输出数据集DATA+CRCCv,在数据集DATA+CRCCv中循环冗余校验计数码CRCCv被添加到数据DATA。
下面更具体地描述根据参照图11描述的第四实施例的操作方法。
图12A和图12B具体地示出根据本公开的第四实施例的操作控制器的方法。
参照图12A,具体示出了参照图11描述的S111至S113。
在S111处,可以计算第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个中包括的所选择数据的数量作为第一至第m计数值CTV1至CTVm。例如,假设所选择数据是1,并且第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个包括K位数据。在这种情况下,第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个可以包括存储在第一至第K单元R1至RK中的数据。当以第(1-1)数据组DTG1-1为例进行描述时,第(1-1)数据组DTG1-1中包括的数据可以以1位存储在第一至第K单元R1至RK中。该数据包括0或1,并且1为本实施例中的所选择数据。因此,CRC控制器32可以通过对第(1-1)数据组DTG1-1中包括的数据1的数量进行计数来计算第一计数值CTV1。可将第一至第m计数值CTV1至CTVm中的每一个生成为二进制记数法代码。包括在第一至第m计数值CTV1至CTVm中的每一个中的位数可以相同。例如,当第一计数值CTV1包括J位代码(J是正整数)时,其余的第二至第m计数值CTV2至CTVm中的每一个也可以包括J位代码。
在S112处,CRC控制器32可以通过对第一至第m计数值CTV1至CTVm执行XOR运算来生成包括J位数据的子计数值CTV_S。
在S113处,CRC控制器32可以通过处理子计数值CTV_S来生成总计数值CV。例如,可以通过对压缩计数值CTV_CP的所有位执行XOR运算来获得总计数值CV。
参照图12B,具体示出了参照图11描述的步骤S114至S116。
在S114处,可以通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的相同位置的数据执行XOR运算来生成压缩数据DATA_CP。例如,通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第一单元R1中的数据执行XOR运算获得的值可以是压缩数据DATA_CP的第一压缩数据C1;通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第二单元R2中的数据执行XOR运算获得的值可以是压缩数据DATA_CP的第二压缩数据C2;通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第三单元R3中的数据执行XOR运算获得的值可以是压缩数据DATA_CP的第三压缩数据C3;并且,通过对第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的、存储在第K单元RK中的数据执行XOR运算获得的值可以是压缩数据DATA_CP的第K压缩数据CK。因此,压缩数据DATA_CP的位数与第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个的位数相同。例如,假设第(1-1)至第(1-m)数据组DTG1-1至DTG1-m中的每一个包括K位数据,则压缩数据DATA_CP也可以生成为具有K位数据。
在S115处,CRC控制器32可以通过使用K位压缩数据DATA_CP执行循环冗余校验操作来生成包括L位的循环冗余校验码CRCC。
在S116处,CRC控制器32可以通过对循环冗余校验码CRCC和总计数值CV执行XOR运算来计算循环冗余校验计数码CRCCv。循环冗余校验计数码CRCCv可以包括L位。
图13示出应用了本公开的控制器的存储卡系统3000。
参照图13,存储卡系统3000包括控制器3100、存储器装置3200和连接器3300。
控制器3100连接到存储器装置3200。控制器3100被配置为访问存储器装置3200。例如,控制器3100可以被配置为控制存储器装置3200的编程操作、读取操作或擦除操作或控制后台操作。控制器3100可以执行参照图2描述的控制器1200的功能。控制器3100被配置为提供存储器装置3200和主机(未示出)之间的接口。控制器3100被配置为驱动用于控制存储器装置3200的固件。
例如,控制器3100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正电路的组件。
控制器3100可以通过连接器3300与外部装置(例如,主机)通信。控制器3100可以根据诸如以下的各种通信标准中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI、蓝牙和NVMe等。例如,连接器3300可以由上述各种通信标准中的至少一种来定义。
例如,存储器装置3200可以由诸如以下的各种非易失性存储器装置中一种或多种来配置:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋转移力矩磁性RAM(STT-MRAM)等。
控制器3100和存储器装置3200可以集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、标准闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)、通用闪存(UFS)等。
图14示出应用了本公开的控制器的固态驱动器(SSD)系统4000。
参照图14,SSD系统4000包括主机4100和SSD 4200。SSD 4200通过信号连接器4001与主机4100交换信号,并且通过电源连接器4002接收电力。SSD 4200包括控制器4210、多个非易失性存储器(NVM)4221至422n、辅助电源4230和缓冲存储器4240。
控制器4210可以执行参照图2描述的控制器1200的功能。
控制器4210可以响应于从主机4100接收到的信号来控制多个非易失性存储器4221至422n。例如,该信号可以包括基于主机4100和SSD 4200之间的接口的信号。例如,该信号可以是由诸如以下的接口中的至少一种来定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI、蓝牙和NVMe等。
辅助电源4230通过电源连接器4002而连接到主机4100。辅助电源4230可以从主机4100接收电源电压,并利用该电源电压充电。当来自主机4100的电力供应不平稳时,辅助电源4230可以向SSD 4200提供电源电压。例如,辅助电源4230可以位于SSD 4200中或SSD4200外部。例如,辅助电源4230可以位于主板上,并且可以向SSD 4200提供辅助电力。
缓冲存储器4240用作SSD 4200的缓冲存储器。例如,缓冲存储器4240可以临时存储从主机4100接收的数据或从多个非易失性存储器4221至422n接收的数据,或者可以临时存储非易失性存储器4221至422n的元数据(例如,映射表)。缓冲存储器4240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM等的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM、PRAM等的非易失性存储器。
Claims (19)
1.一种控制器,包括:
缓冲器,存储N位数据;以及
循环冗余校验控制器,将存储在所述缓冲器中的所述N位数据划分成每个包括K位数据的m个数据组,通过处理所述m个数据组中包括的数据来生成包括K位的压缩数据,并且使用所述压缩数据生成循环冗余校验码。
2.根据权利要求1所述的控制器,其中N、m和K是正整数,并且
N满足m×K。
3.根据权利要求1所述的控制器,其中所述缓冲器包括分别对应于所述m个数据组的多个单元组,每个单元组包括K个单元,并且每个单元组的所述K个单元分别存储所述m个数据组中的相应数据组中包括的K位数据。
4.根据权利要求3所述的控制器,其中所述循环冗余校验控制器生成包括K位的压缩数据,通过对存储在所述单元组的第I单元中的数据执行XOR运算来获得所述K位中的每个位,I的范围为1至K。
5.根据权利要求1所述的控制器,其中所述循环冗余校验控制器进一步输出通过将所述循环冗余校验码添加到所述N位数据而获得的数据集。
6.根据权利要求1所述的控制器,其中所述循环冗余校验控制器进一步对所述m个数据组中的每个中包括的所选择数据的数量进行计数,并且生成分别对应于所述m个数据组的多个计数值,所述计数值中的每个包括J位数据,J为正整数。
7.根据权利要求6所述的控制器,其中所述循环冗余校验控制器进一步通过将构成所述多个计数值的数据进行逻辑组合来生成压缩计数值,并且通过对所述压缩计数值中包括的数据执行XOR运算来生成总计数值。
8.根据权利要求7所述的控制器,其中所述循环冗余校验控制器进一步通过对所述总计数值和所述循环冗余校验码执行XOR运算来生成循环冗余校验计数码,并且输出通过将所述循环冗余校验计数码添加到所述N位数据而获得的数据集。
9.根据权利要求6所述的控制器,其中所述循环冗余校验控制器进一步通过对所述多个计数值的每个中的J位数据之中的第I位执行XOR运算来生成子计数值,并且通过对所述子计数值的所有位执行XOR运算来生成总计数值,其中I的范围为1至J。
10.根据权利要求9所述的控制器,其中所述循环冗余校验控制器通过对所述总计数值和所述循环冗余校验码执行XOR运算来生成循环冗余校验计数码,并且输出通过将所述循环冗余校验计数码添加到所述N位数据而获得的数据集。
11.一种操作控制器的方法,所述方法包括:
将输入数据划分成多个数据组;
通过以位为单位,将所述多个数据组中包括的数据进行逻辑组合来生成压缩数据;并且
通过对所述压缩数据执行循环冗余校验操作来生成循环冗余校验码。
12.根据权利要求11所述的方法,其中当所述输入数据包括N位并且所述多个数据组是m个数据组时,所述多个数据组中的每个包括K位数据,K为N/m,并且K、m和N为正整数。
13.根据权利要求12所述的方法,其中在将所述输入数据划分成所述多个数据组时,所述控制器的缓冲器中包括的多个单元被划分成分别对应于所述多个数据组的多个单元组,每个单元组包括K个单元,所述K个单元分别存储所述多个数据组中的每个中包括的K位数据。
14.根据权利要求13所述的方法,其中生成所述压缩数据包括生成包括K位的所述压缩数据,通过对存储在所述单元组的第I单元中的数据执行XOR运算来获得所述K位中的每个位,I的范围为1至K。
15.根据权利要求11所述的方法,进一步包括:
在生成所述循环冗余校验码之后,输出通过将所述循环冗余校验码添加到所述输入数据而获得的数据集。
16.根据权利要求11所述的方法,进一步包括,在将所述输入数据划分成所述多个数据组和生成所述压缩数据之间:
通过对所述数据组中的每个中包括的所选择数据的数量进行计数,生成分别对应于所述多个数据组的多个计数值;
通过对所述多个计数值中的每个中包括的所有位执行XOR运算来生成压缩计数值;并且
通过对所述压缩计数值的所有位执行XOR运算来生成总计数值。
17.根据权利要求16所述的方法,进一步包括,在生成所述循环冗余校验码之后:
通过对所述循环冗余校验码和所述总计数值执行XOR运算,生成循环冗余校验计数码;并且
输出通过将所述循环冗余校验计数码添加到所述输入数据而获得的数据集。
18.根据权利要求11所述的方法,进一步包括,在将所述输入数据划分成所述多个数据组和生成所述压缩数据之间:
通过对所述数据组的每个中包括的所选择数据的数量进行计数,生成分别对应于所述多个数据组的多个计数值,每个计数值包括J位数据;
通过对所述多个计数值的每个中的J位数据之中的第I位执行XOR运算来生成子计数值,I的范围为1至J;并且
通过对所述子计数值的所有位执行XOR运算来生成总计数值。
19.根据权利要求18所述的方法,进一步包括,在生成所述循环冗余校验码之后:
通过对所述循环冗余校验码和所述总计数值执行XOR运算,生成循环冗余校验计数码;并且
输出通过将所述循环冗余校验计数码添加到所述输入数据而获得的数据集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200164597A KR20220075948A (ko) | 2020-11-30 | 2020-11-30 | 컨트롤러 및 이의 동작 방법 |
KR10-2020-0164597 | 2020-11-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579350A true CN114579350A (zh) | 2022-06-03 |
Family
ID=81752646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110774402.7A Pending CN114579350A (zh) | 2020-11-30 | 2021-07-08 | 控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11494263B2 (zh) |
KR (1) | KR20220075948A (zh) |
CN (1) | CN114579350A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201689A1 (en) * | 2005-06-30 | 2008-08-21 | Freescale Semiconductor, Inc. | Vector Crc Computatuion on Dsp |
KR100801083B1 (ko) | 2006-12-28 | 2008-02-05 | 삼성전자주식회사 | 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법 |
US10372534B2 (en) * | 2016-09-20 | 2019-08-06 | Samsung Electronics Co., Ltd. | Method of operating memory device using a compressed party difference, memory device using the same and memory system including the device |
KR20180063475A (ko) | 2016-12-02 | 2018-06-12 | 삼성전자주식회사 | 반도체 장치의 오류 검출 코드 생성 회로, 이를 포함하는 메모리 컨트롤러 및 반도체 메모리 장치 |
-
2020
- 2020-11-30 KR KR1020200164597A patent/KR20220075948A/ko unknown
-
2021
- 2021-05-28 US US17/333,913 patent/US11494263B2/en active Active
- 2021-07-08 CN CN202110774402.7A patent/CN114579350A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20220075948A (ko) | 2022-06-08 |
US20220171675A1 (en) | 2022-06-02 |
US11494263B2 (en) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110390979B (zh) | 存储器控制器和具有存储器控制器的存储器系统 | |
CN108388525B (zh) | 存储器系统及其操作方法 | |
US9940189B2 (en) | Method and system for data rebuilding and memory control circuit unit thereof | |
CN108694138B (zh) | 控制器及其操作方法 | |
TW202018512A (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN103035294A (zh) | 从非易失性存储器读数据的方法及实施方法的设备和系统 | |
CN106649144B (zh) | 数据储存设备及其操作方法 | |
CN110532194B (zh) | 存储器系统及其操作方法 | |
US9977735B2 (en) | Data storage device and operating method thereof | |
CN110716883A (zh) | 存储器系统及其操作方法 | |
US20150228344A1 (en) | Partial page programming of nonvolatile memory device | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
CN110825316A (zh) | 控制器及该控制器的操作方法 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN110703983B (zh) | 控制器及其操作方法 | |
CN111176554A (zh) | 存储器系统及其操作方法 | |
US20210397378A1 (en) | Storage device and operating method thereof | |
US20210397364A1 (en) | Storage device and operating method thereof | |
CN110688061A (zh) | 存储器系统及其操作方法 | |
KR20170031311A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11494263B2 (en) | Controller and method of operating the same | |
CN111309247B (zh) | 存储器系统及其操作方法 | |
US10067677B2 (en) | Memory management method for configuring super physical units of rewritable non-volatile memory modules, memory control circuit unit and memory storage device | |
CN110609658B (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 |