CN114550784A - 存储器装置和存储器系统 - Google Patents

存储器装置和存储器系统 Download PDF

Info

Publication number
CN114550784A
CN114550784A CN202110763317.0A CN202110763317A CN114550784A CN 114550784 A CN114550784 A CN 114550784A CN 202110763317 A CN202110763317 A CN 202110763317A CN 114550784 A CN114550784 A CN 114550784A
Authority
CN
China
Prior art keywords
data
soft
alphabet
memory device
symbol
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.)
Withdrawn
Application number
CN202110763317.0A
Other languages
English (en)
Inventor
金大成
安成浩
梁信镐
郑在亨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN114550784A publication Critical patent/CN114550784A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4081Static prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6041Compression optimized for errors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6094Selection strategies according to reasons other than compression rate or data type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/102Compression or decompression of data before storage
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及存储器装置和存储器系统。存储器装置包括:多个存储器单元;软读取逻辑,被配置成响应于来自控制器的软读取命令而通过从多个存储器单元读取数据来生成软数据,该软数据包括至少一个主要符号和至少一个次要符号;压缩器,被配置成通过以下方式生成压缩数据:将软数据中包括的多个源字母表之中的主要源字母表编码为具有第二长度的代码字母表,该主要源字母表包括主要符号按第一长度进行的重复,并且将次要源字母表编码为长度长于第二长度的代码字母表,该次要源字母表包括主要符号按短于第一长度的长度进行的重复并且以一个次要符号结尾;以及接口,被配置成将压缩数据提供到控制器。

Description

存储器装置和存储器系统
相关申请的交叉引用
本申请要求于2020年11月25日提交的、申请号为10-2020-0159958 的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
示例性实施例涉及一种存储器装置以及包括该存储器装置的存 储器系统。
背景技术
系统半导体装置用于执行诸如数据计算和控制的信息处理操作, 并且存储器半导体装置用于存储数据。存储器半导体装置可以包括用 于临时地存储数据的易失性存储器装置以及用于永久地存储数据的 非易失性存储器装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的 优点在于,因为不具有机械驱动部件(例如,机械臂)所以它具有优 异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这 些优点的存储器系统的背景下,示例性数据存储装置包括USB(通用 串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD) 等。
发明内容
各个实施例涉及一种存储器系统、数据处理系统及其操作方法, 该存储器系统可以避免存储器系统的复杂性以及性能降低,并且提高 存储器装置的使用效率,从而稳定保护并快速处理在存储器装置中存 储的数据。
而且,各个实施例涉及一种可以使用可变长度编码对软数据进行 压缩从而提高存储器装置和控制器之间的数据传送效率并且降低存 储器装置和控制器之间的接口中的功耗的方法和设备。
本公开的技术问题不限于上述技术问题,并且本领域技术人员通 过以下描述可以清楚地理解未被提及的其他技术问题。
根据实施例,一种存储器装置包括:多个存储器单元;软读取逻 辑,被配置成响应于来自控制器的软读取命令而通过从多个存储器单 元读取数据来生成软数据,该软数据包括至少一个主要符号和至少一 个次要符号;压缩器,被配置成通过以下方式生成压缩数据:将软数 据中包括的多个源字母表(source alphabet)之中的主要源字母表编 码为具有第二长度的代码字母表,该主要源字母表包括主要符号按第 一长度进行的重复,并且将次要源字母表编码为长度长于第二长度的 代码字母表,该次要源字母表包括主要符号按短于第一长度的长度进 行的重复,并且以一个次要符号结尾;以及接口,被配置成将压缩数 据提供到控制器。
压缩器可以基于一个或多个压缩表之中的所选择的压缩表来生 成压缩数据,每个压缩表指示主要源字母表和次要源字母表与相应代 码字母表之间的关系。
存储器装置可以进一步包括压缩方法选择器,该压缩方法选择器 被配置成存储压缩表,并且根据主要符号的值、次要符号的值以及第 一长度的值来选择压缩表之中的一个压缩表。
压缩方法选择器可以基于错误率信息来选择具有第一长度的特 定值的压缩表,并且其中错误率信息包括先前压缩数据的长度信息和 关于从先前压缩数据解压缩的数据中检测到的错误位的数量的信息 中的至少任意一个。
压缩方法选择器可以进一步基于软读取电压来选择具有第一长 度的特定值的压缩表,通过该软读取电压从存储器单元读取数据。
压缩方法选择器可以基于软数据中包括的、主要符号和次要符号 的数量以及主要符号和次要符号的值来选择具有主要符号的特定值 和次要符号的特定值的压缩表。
软数据可以是包括每存储器单元的多位可靠性信息的多位软数 据,其中压缩器被进一步配置成将软数据划分为偶数位数据和奇数位 数据,其中压缩方法选择器进一步基于偶数位数据和奇数位数据中的 每一个的错误率信息来针对偶数位数据和奇数位数据中的每一个选 择压缩表,其中压缩器针对偶数位数据和奇数位数据中的每一个生成 压缩数据,并且其中针对偶数位数据和奇数位数据中的每一个的错误 率信息包括针对偶数位数据和奇数位数据中的相应一个的先前压缩 数据的长度信息和关于从先前压缩数据解压缩的数据中检测到的错 误位的数量的信息中的至少任意一个。
软数据可以是包括每存储器单元的非二进制可靠性信息的非二 进制软数据,其中压缩方法选择器进一步基于错误率信息和用于指示 非二进制可靠性信息的符号的数量来选择压缩表,并且其中错误率信 息包括先前压缩数据的长度信息和关于从先前压缩数据解压缩的数 据中检测到的错误位的数量的信息中的至少任意一个。
具有第二长度的代码字母表可以不是长度长于第二长度的代码 字母表的前缀,并且其中由不同次要源字母表编码的代码字母表具有 不同的值。
具有第二长度的代码字母表可以是“0”,并且其中长度长于第 二长度的代码字母表的第一数字可以是“1”。
压缩器可以基于在一个或多个压缩表之中选择的一个压缩表来 生成压缩数据,每个压缩表指示主要源字母表和次要源字母表与相应 代码字母表之间的关系,其中,在压缩表中的每一个中,次要源字母 表的总数量取决于第一长度,其中长度长于第二长度的代码字母表的 长度取决于次要源字母表的总数量。
主要符号最有可能出现在软数据中,并且其中次要符号是除主要 符号之外的符号。
主要符号可以是可靠性强于次要符号的符号。
压缩器可以进一步通过以下方式生成压缩数据:将结束数据添加 到软数据的末尾,并且将由结束数据和剩余符号构成的组块编码为次 要源字母表,该剩余符号与结束数据连续并且不属于软数据中的主要 源字母表或次要源字母表。
结束数据可以是次要符号。
压缩器可以通过即时检查软数据内的多个符号来从软数据中检 测主要源字母表和次要源字母表。
根据实施例,一种存储器系统,包括:存储器装置;以及控制器, 被配置成将软读取命令和错误率信息提供到存储器装置,其中存储器 装置包括:逻辑,被配置成响应于软读取命令而生成包括至少一个主 要符号和至少一个次要符号的软数据;选择器,被配置成基于软读取 命令和错误率信息来选择多个压缩表中的任意一个,每个压缩表指示 源字母表和相应代码字母表之间的关系;压缩器,被配置成通过根据 所选择的压缩表来将从软数据中检测到的源字母表编码为相应的代 码字母表来生成压缩数据,并且将压缩数据提供到控制器,其中源字 母表不是多个压缩表中的每一个内的另一源字母表的前缀,其中在多个压缩表中的每一个内的源字母表之中,主要源字母表最有可能出现 并且具有最长的长度,并且其中在多个压缩表中的每一个内的代码字 母表之中,与主要源字母表相对应的代码字母表具有最小的长度。
控制器可以根据与所选择的压缩表相对应的解压缩表,通过对压 缩数据进行解压缩来生成解压缩数据,并且对解压缩数据执行软判决 解码。
存储器装置可以进一步通过以下方式生成压缩数据:将结束数据 添加到软数据的末尾,并且将由结束数据和剩余符号构成的组块编码 为从软数据中检测到的源字母表中的一个,该剩余符号与结束数据连 续并且不属于软数据中的源字母表。
控制器可以通过对压缩数据进行解压缩生成解压缩数据,并且当 解压缩数据具有预定长度并且在该解压缩数据的末尾具有结束数据 时,对解压缩数据执行软判决解码,并且其中预定长度为软数据的长 度与结束数据的长度之和。
控制器可以被进一步配置成在解压缩数据不具有预定长度或在 解压缩数据的末尾没有结束数据时,从存储器装置请求压缩数据。
根据实施例,一种数据系统,包括:压缩器,被配置成通过参考 表对原始序列进行压缩,该原始序列包括至少第一和第二符号;以及 解压缩器,被配置成通过参考该表从压缩后的序列中恢复原始序列, 其中该表包括不同值的原始字母表和相应的不同值的压缩字母表,字 母表是根据霍夫曼(Huffman)编码方案定义的,其中各种长度的原 始字母表中的每一个以第一符号和第二符号之间的一个符号结束,并 且原始字母表的剩余部分由第一符号进行的重复构成,并且其中与以 第一符号结尾的原始字母表相对应的压缩字母表短于具有相同长度 的其他压缩字母表。
根据本实施例,该方法和设备可以使用压缩数据(代码)来对软 数据进行压缩,该压缩数据(代码)根据单个符号的出现概率通过应 用霍夫曼码来表达多个单个符号(或符号),从而提高存储器装置和 控制器之间的软数据传送效率,并且降低存储器装置和控制器之间接 口的功耗。
本公开的效果不限于上述效果,本领域技术人员从以下描述可以 清楚地理解未被提及的其他效果。
附图说明
图1示出根据实施例的数据处理系统。
图2示出根据实施例的存储器系统。
图3A至图3D是用于描述存储器单元的阈值电压分布的曲线图。
图4是示出在2位软读取操作期间形成读取电压和软数据的曲线 图。
图5示出根据实施例的第一压缩表。
图6示出软数据和压缩数据。
图7示出根据实施例的第一解压缩表。
图8示出压缩数据和解压缩数据。
图9是用于描述根据实施例的结束数据的示图。
图10A至图10C是用于描述第一软数据生成方法和第一类型压缩 表的示图。
图11A至图11C是用于描述第二软数据生成方法和第二类型压缩 表的示图。
图12A和图12B是用于描述第三软数据生成方法和第三类型压缩 表的示图。
图13示出根据实施例的存储器系统。
图14是示意性地示出根据实施例的存储器系统的操作的流程图。
具体实施方式
在下文中,将参照附图详细描述示例性实施例。应当注意的是, 以下描述将集中于理解根据实施例的操作所需的部分,并且将排除其 他部分的描述,以免使本公开的主题被不必要地混淆。
在下文中,将参照附图更详细地描述示例性实施例。
图1示出根据实施例的数据处理系统。
参照图1,数据处理系统100包括主机102和存储器系统110。 例如,主机102和存储器系统110可以通过诸如数据总线或主机电缆 的数据传送单元联接,并且将数据传输至彼此/从彼此接收数据。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机 的各种便携式电子装置中的任意一种或诸如台式计算机、游戏机、电 视(TV)和投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS),OS可管理和控制 主机102的全部功能和操作,并且使用数据处理系统100或存储器系 统110来提供主机102和用户之间的操作。OS可以支持与用户的使 用目的和使用相对应的功能和操作。例如,根据主机102的移动性,OS可以被划分为通用OS和移动OS。根据用户的环境,通用OS可 以被划分为个人OS和企业OS。
例如,被配置为支持向一般用户提供服务的功能的个人OS可以 包括Windows和Chrome,并且被配置为获得和支持高性能的企业 OS可以包括Windows Server、Linux和Unix。此外,被配置为支持 向用户提供移动服务的功能和系统的省电功能的移动OS可以包括 Android、iOS和Windows Mobile。主机102可以包括多个OS,并且 运行OS以对存储器系统110执行与用户的请求相对应的操作。
存储器系统110中包括的控制器130可以响应于来自主机102的 请求来控制存储器装置150。例如,控制器130可以将从存储器装置 150读取的数据提供至主机102,并且可将从主机102提供的数据存 储到存储器装置150中。对于该操作,控制器130可以控制存储器装 置150的读取操作、编程操作和擦除操作。
在实施例中,控制器130可以包括主机接口(I/F)132、处理器 134、错误校正电路(ECC)138、电源管理单元(PMU)140、存储 器I/F 142以及存储器144。
参照图1描述的控制器130中包括的组件可以根据存储器系统 110的实施方案和操作性能而改变。存储器系统110的非限制性示例 可包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、 通用串行总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA) 卡和记忆棒。MMC可以包括嵌入式MMC(eMMC)、缩小尺寸的 MMC(RS-MMC)、微型MMC等。可以根据存储器系统110的实施 方案来添加或移除控制器130中包括的组件。主机102和存储器系统 110可以各自包括用于响应于承诺的标准而传输/接收信号、数据等的 控制器或接口。例如,存储器系统110内的主机I/F 132可以包括能 够将信号、数据等传输到主机102或者从主机102接收信号、数据等的装置。
主机I/F 132可以被配置成处理主机102的命令和数据,并且可 以通过诸如以下的各种接口协议中的一种或多种与主机102通信:通 用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e 或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高 级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘 接口(ESDI)和电子集成驱动器(IDE)。主机I/F 132可以通过被称 为主机接口层(HIL)的固件来驱动,以便与主机交换数据。
作为传输/接收数据的标准中的一种的电子集成驱动器(IDE)或 高级技术附件(ATA)可以通过使用其中40条布线(line)并行联接 的电缆来支持主机102与存储器系统110之间的数据传输/接收进程。 当多个存储器系统110联接到一个主机102时,根据相应存储器系统 110被联接到的拨码开关(dip switch)或位置,多个存储器系统110 可以各自被划分为主设备和从设备。被设置为主设备的存储器系统 110可以用作主存储器装置。IDE(ATA)已经发展为Fast-ATA、ATAPI 和EIDE(增强型IDE)等。
串行高级技术附件(SATA)是一种与作为IDE装置的连接标准 的、基于并行数据传输/接收方法的各种ATA标准兼容的串行数据传 输/接收方法,并且可以将连接布线的数量从40条并行信号布线减少 到6条串行信号布线。由于SATA比IDE具有更快的数据传输/接收速度以及在主机102内消耗更少的资源来传输/接收数据,因此SATA 已得到广泛使用。SATA可以将最多30个外部装置连接到主机102 中包括的一个传输/接收装置。此外,由于SATA支持热插拔(hot plugging)功能,通过该热插拔功能,即使在执行数据通信时也可拆 卸/附接外部装置,因此即使在向主机102供应电力时,SATA也可以 使存储器系统110如通用串行总线(USB)那样作为附加装置连接或 分离。例如,在具有eSATA端口的装置的情况下,存储器系统110 可以如外部硬盘驱动器一样从主机102拆卸/附接到主机102。
小型计算机系统接口(SCSI)是指一种用于连接诸如计算机或服 务器的外围装置的串行连接方法,并且具有比诸如IDE和SATA的其 他接口更高的传输速度。在SCSI中,虽然主机102和多个外围装置 (例如,存储器系统110)可以串联连接,但是可以将主机102和外围装置中的每一个之间的数据传输/接收方法实施为并行数据传输/接 收方法。在SCSI中,可以容易地将诸如存储器系统110的装置连接 到主机102/与主机102分离。SCSI可以支持将15个外部装置连接到 主机102中包括的一个传输/接收装置。
串列SCSI(SAS)可以被理解为SCSI的串行数据传输/接收版本。 根据SAS,主机102和多个外围装置可以串联连接,并且可以通过串 行数据传输/接收方法在主机102和外围装置之间传输/接收数据。根 据SAS,主机102和外围装置可以通过串行电缆而不是包括大量连接 布线的宽并行电缆连接。因此,可以容易地进行设备管理,并且可以 提高可靠性和性能。SAS可以将最大8个外部装置连接到主机102 中包括的一个传输/接收装置。
高速非易失性存储器(NVMe)可指代基于能够提高安装有非易 失性存储器系统110的诸如服务器或计算装置的主机102的性能并且 增加设计灵活性的高速外围组件互连(PCIe)的协议。此处,通过使 用插槽或专用电缆以用于将诸如计算装置的主机102连接到诸如连 接到计算装置的外围装置的存储器系统110,PCIe可以通过多个引脚 (例如,18个引脚、32个引脚、49个引脚、82个引脚等)和一条或 多条布线(例如,x1、x4、x8、x16等)而具有每布线每秒数百MB 或更多(例如250MB/s,500MB/s,984.6250MB/s,1389MB/s等) 的带宽。通过这种配置,PCIe可以实施每秒数十到数百千兆位(Gbit) 的带宽。NVMe可以支持以比硬盘驱动器更高的速度运行的诸如SSD 的非易失性存储器系统110的速度。
在实施例中,主机102和存储器系统110可以通过USB连接。 USB可以包括热插拔式即插即用串行接口,其具有优异的扩展性以 保证与诸如键盘、鼠标、操纵杆、打印机、扫描仪、存储装置、调制 解调器或视频会议摄像机的外围装置的经济性标准连接。诸如存储器系统110的多个外围装置可以连接到主机102中包括的一个传输/接 收装置。
参照图1,控制器130内的ECC 138可以校正由存储器装置150 处理的数据的错误位。在实施例中,ECC 138可以包括ECC编码器 和ECC解码器。ECC编码器可以通过对待编程在存储器装置150中 的数据执行错误校正编码来生成具有奇偶校验位的数据,并且具有奇偶校验位的数据可以存储在存储器装置150中。当ECC解码器读取 存储器装置150中存储的数据时,ECC 138可以对从存储器装置150 读取的数据执行错误校正解码,确定错误校正解码是否已经成功执行, 根据确定结果输出指示信号,例如错误校正成功/失败信号,并且通过使用ECC编码过程期间生成的奇偶校验位来校正读取数据的错误 位。当错误位的数量超过可校正错误位限制时,ECC 138可能无法校 正错误位,而是输出与错误位无法校正的情况相对应的错误校正失败 信号。
ECC 138可通过诸如以下的编码调制来执行错误校正:低密度奇 偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、涡轮码、 里德-所罗门码、卷积码、递归系统码(RSC)、网格编码调制(TCM) 和分组编码调制(BCM)。然而,ECC 138不限于任何特定的结构。ECC 138可包括用于错误校正的所有电路、模块、系统或装置。
例如,ECC解码器可以对从存储器装置150传送的数据执行硬 判决解码或软判决解码。硬判决解码可以理解为通过粗略划分错误校 正获得的两种方法中的一种。硬判决解码可以包括从存储器装置150 内的非易失性存储器单元读取数字数据“0”或“1”并且校正读取 数据的错误的操作。因为硬判决解码处置二进制逻辑信号,所以电路 或算法可以简单设计,处理速度可以较高。
与硬判决解码不同,软判决解码可以包括基于两个或更多个量化 值来校正错误的操作,该两个或更多个量化值通过量化存储器装置 150内的非易失性存储器单元的阈值电压来获得。例如,量化值可以 包括多位数据、近似值或模拟值。控制器130可以从存储器装置150 内的多个非易失性存储器单元接收两个或更多个量化值,然后基于通 过诸如条件概率或似然性的信息的组合来表征量化值而生成的多条 信息来执行解码。
在实施例中,在针对软判决解码的方法之中,ECC解码器可以 使用低密度奇偶校验和生成器矩阵(LDPC-GM)码。LDPC码使用 一种算法,该算法不是简单地将存储器装置150中的数据的值读取为 1或0或者不使用硬判决解码,而是可以根据可靠性将数据的值读取为若干位,并且通过消息交换方法重复提高可靠性信息,从而决定最 终值1或0。例如,使用LDPC码的解码算法可以被理解为概率解码, 并且与针对存储器装置150中可能发生的位翻转而将从非易失性存 储器单元输出的值编码为0或1的硬判决解码相比,使用LDPC码的 解码算法可以根据概率信息来确定在非易失性存储器单元中存储的 值。因此,使用LDPC码的解码算法可以增加恢复可能性,并且提高 校正后的信息的可靠性和稳定性。LDPC-GM码可以具有内部LDGM 码可以与高速LDPC码串联连接的方案。
在实施例中,ECC解码器可以使用用于软判决解码的方法之中 的低密度奇偶校验卷积码(LDPC-CC)。LDPC-CC可具有使用基于 可变块长度和移位寄存器的线性时间编码和管线解码的方案。
在实施例中,ECC解码器可以使用用于软判决解码的方法之中 的对数似然比涡轮码(LLR-TC)。对数似然比(LLR)可以被计算为 采样值与理想值之间的距离的非线性函数。此外,涡轮码(TC)可 以具有以2D或3D方式构造简单码(例如,汉明码等)的方案,并 且在行方向和列方向上重复解码,从而提高可靠性。
虽然未示出,但是在将数据写入存储器装置150或读取存储器装 置150中存储的数据的过程期间,控制器130可以通过纠删码(Erasure Coding,EC)对数据进行编码或解码。EC可以理解为使用纠删码对 数据进行编码并且在数据丢失情况下通过解码过程恢复原始数据的 数据恢复方法。由于作为纠删码生成的奇偶校验数据比生成数据副本 时占用的存储空间更小,因此EC可以在提供存储器系统110的可靠 性的同时提高存储空间的效率。在这种情况下,可以使用各种纠删码。 纠删码的示例可以包括里德-所罗门码、塔霍最小权威文件系统 (Tahoe Least-Authority File System,Tahoe-LAFS)、EVENODD码、 韦弗(Weaver)码、X码等。可以针对各个纠删码使用不同的算法, 并且控制器130可以使用纠删码在降低计算复杂度的同时提高恢复 性能。
PMU 140可以监测向存储器系统110供应的电力(例如,向控制 器130供应的电压),并且向控制器130中包括的组件提供电力。当 所供应电压的电平不稳定时,PMU 140不仅可以检测通电/断电,还 可以生成触发存储器系统110紧急地备份当前状态的触发信号。在实 施例中,PMU 140可以包括能够累积可以在紧急情况下使用的电力的 装置。
存储器I/F 142可用作用于接口连接控制器130和存储器装置150 使得控制器130响应于来自主机102的请求而控制存储器装置150的 存储器/存储接口。当存储器装置150是闪速存储器或具体地是NAND 闪速存储器时,存储器I/F 142可在处理器134的控制下生成用于存 储器装置150的控制信号并处理待提供至存储器装置150的数据。存 储器I/F142可用作用于处理控制器130和存储器装置150之间的命 令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142 可以支持控制器130和存储器装置150之间的数据传送。存储器I/F 142可以通过被称为闪存接口层(FIL)的固件来驱动,以便与存储 器装置150交换数据。
在实施例中,存储器I/F 142可以支持开放式NAND闪存接口 (ONFi)模式、toggle模式等用于在存储器装置150和存储器I/F 142 之间的数据输入/输出。例如,ONFi可以使用包括能够支持以8位或 16位数据为单位的双向传输/接收过程的信号线的数据路径(例如, 通道或通路)。可以通过支持异步单倍数据速率(ASDR)、同步双倍 数据速率(SDDR)和Toggle双倍数据速率(TDDR)接口之中的一 个或多个接口的装置来执行控制器130与存储器装置150之间的数据 通信。
存储器144可以用作存储器系统110和控制器130的工作存储器, 并且存储用于驱动存储器系统110和控制器130所需的数据或者在驱 动存储器系统110和控制器130时生成的数据。例如,在控制器130 响应于来自主机102的请求而将从存储器装置150提供的读取数据提 供到主机102之前,存储器144可以临时存储该读取数据。此外,在 将从主机102提供的写入数据存储到存储器装置150中之前,控制器 130可以将该写入数据临时存储在存储器144中。当控制器130控制 存储器装置150的读取操作、写入操作、编程操作或擦除操作时,可 以将在存储器系统110内的控制器130和存储器装置150之间传送或 生成的数据存储在存储器144中。除了读取数据或写入数据之外,存 储器144可以存储在主机102和存储器装置150之间执行数据写入操 作或数据读取操作所需的信息(例如,映射数据、读取命令和编程命 令)。存储器144可以包括命令队列、程序存储器、数据存储器、写 入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、 映射缓冲器/高速缓存等。映射缓冲器/高速缓存可以是用于存储映射 信息的装置或区域。
在实施例中,存储器144可以通过易失性存储器来实现。例如, 存储器144可通过静态随机存取存储器(SRAM)或动态随机存取存 储器(DRAM)来实现。存储器144可设置在控制器130内部或外部。 图1例示了设置在控制器130内部的存储器144。在实施例中,存储 器144可通过具有在存储器144和控制器130之间传送数据的存储器 接口的外部易失性存储器来实现。
处理器134可以控制存储器系统110的全部操作。处理器134可 以驱动固件来控制存储器系统110的全部操作。固件可以被称为闪存 转换层(FTL)。而且,处理器134可以被实现为微处理器或中央处 理单元(CPU)。
在实施例中,处理器134可以被实施为作为集成有两个或更多个 内核的电路的多内核处理器,两个或更多个内核是彼此不同的计算处 理区域。例如,当多内核处理器内的多个内核分别驱动多个FTL时, 可以提高存储器系统110的数据输入/输出速度。
控制器130内的处理器134可以执行对应于从主机102输入的命 令的操作,并且存储器系统110可以不考虑从诸如主机102的外部装 置输入的命令而独立地执行操作。典型地,控制器130响应于从主机 102传送的命令而执行的操作可以被理解为前台操作,并且控制器 130不考虑从主机102传送的命令而独立地执行的操作可以被理解为 后台操作。通过前台操作或后台操作,控制器130可以执行读取存储 器装置150中存储的数据、将数据写入或编程在存储器装置150中、 或者擦除存储器装置150中存储的数据的操作。此外,与作为从主机 102传送的设置命令的设置参数命令或设置特征命令相对应的参数设 置操作可以被理解为前台操作。作为没有从主机102传送的命令的后 台操作,存储器系统110可以执行与存储器装置150中包括的多个存 储块152、154、156相关的针对垃圾收集(GC)、损耗均衡(WL) 和坏块管理的操作。坏块管理指示检测和处理坏块的操作。
同时,可以执行与前台操作或后台操作基本相似的操作。例如, 当存储器系统110响应于主机102的命令而执行手动GC时,该手动 GC可以被理解为前台操作,并且当存储器系统110独立地执行自动 GC时,该自动GC可以被理解为后台操作。
当存储器装置150被配置为各自包括非易失性存储器单元的多 个管芯或芯片时,控制器130可以在存储器装置150内的多个管芯或 芯片中同时处理从主机102传送的请求或命令,以便提高存储器系统 110的性能。控制器130内的存储器I/F 142可以通过一个或多个通道 和一个或多个通路联接到存储器装置150内的多个管芯或芯片。当控 制器130通过各个通道或通路对数据进行分配和存储以便处理与各 自被配置为非易失性存储器单元的多个页面相对应的请求或命令时, 可以同时或并行地执行对应于该请求或命令的操作。这种处理方法可 以被理解为交错方法。因为可以根据交错方法操作的存储器系统110 的数据输入/输出速度可以比存储器装置150内的每个管芯或芯片的 数据输入/输出速度更快,所以交错方法可以提高存储器系统110的 数据输入/输出性能。
控制器130可以检查联接到存储器装置150中包括的多个存储器 管芯的多个通道或通路的状态。例如,可以将通道或通路的状态划分 为忙碌状态、就绪状态、激活状态、空闲状态、正常状态、异常状态 等。响应于通过其传送命令、请求和/或数据的通道或通路,控制器 130可以确定待存储的数据的物理地址。控制器130可以参考从存储 器装置150传送的描述符。描述符是具有预定格式或方案的数据,并 且可以包括描述关于存储器装置150的一些信息的块参数或页面参 数。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。 控制器130参考或使用描述符来确定通过哪个(或哪些)通道或方法 交换命令或数据。
存储器系统110内的存储器装置150可以包括多个存储块152、 154和156。存储块152、154和156中的每一个包括多个非易失性存 储器单元。虽然未示出,但是根据实施例,存储块152、154和156 中的每一个可以具有3D堆叠结构。
存储器装置150中包括的多个存储块152至156可以包括存储1 位数据的单层单元(SLC)存储块和/或存储多位数据的多层单元 (MLC)存储块。SLC存储块可以包括由在一个存储器单元中存储 一位数据的存储器单元实现的多个页面。SLC存储块可以具有较快的数据操作性能和高耐久性。另一方面,MLC存储块可以包括由在一 个存储器单元中存储多位数据(例如两位或更多位数据)的存储器单 元实现的多个页面。MLC存储块可以具有比SLC存储块更大的数据 存储空间。换言之,MLC存储块可被高度集成。
MLC存储块可以包括:双层单元(DLC)存储块,其包括由能 够在一个存储器单元中存储两位数据的存储器单元实现的多个页面; 三层单元(TLC)存储块,其包括由能够在一个存储器单元中存储三 位数据的存储器单元实现的多个页面;四层单元(QLC)存储块,其包括由能够在一个存储器单元中存储四位数据的存储器单元实现的 多个页面;或者多层单元存储块,其包括由能够在一个存储器单元中 存储五位或更多位数据的存储器单元实现的多个页面。
在实施例中,控制器130可以将存储器装置150中包括的MLC 存储块如在一个存储器单元中存储1位数据的SLC存储块一样进行 操作。例如,控制器130可以利用MLC存储块的一部分的数据输入/ 输出速度将MLC存储块的一部分用作SLC存储块,MLC存储块的 该部分的数据输入/输出速度可以比MLC存储块的其他部分的数据 输入/输出速度更高。因此,MLC存储块的该部分可以用作临时存储 数据的缓冲器。
在实施例中,控制器130可以在不进行擦除操作的情况下,多次 将数据编程到存储器装置150中包括的MLC存储块中。通常,非易 失性存储器单元具有不支持重写的特性。然而,基于MLC存储块可 以存储多位数据的这种特性,控制器130可以多次将1位数据编程到 非易失性存储器单元中。对于这种操作,控制器130可以将数据被编 程到非易失性存储器单元的次数作为单独的操作信息进行存储,并且 可以在将数据重新编程到非易失性存储器单元中之前,执行用于均衡 相同的非易失性存储器单元的阈值电压的均衡操作。
在实施例中,存储器装置150可以被实施为诸如以下的存储器装 置:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、 可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、 铁磁RAM(FRAM)、磁性RAM(MRAM)、NAND或NOR闪速 存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器 (RRAM或ReRAM)、铁电随机存取存储器(FRAM)或自旋转移力 矩磁性随机存取存储器(STT-RAM或STT-MRAM)。
图2示出根据本公开的实施例的存储器系统。
参照图2,与主机102和存储器装置150交互的控制器130可以 包括主机I/F 132、FTL 240、存储器I/F 142和存储器144。作为参照 图2描述的FTL 240的实施例,根据存储器系统110的操作性能,FTL 240可以以各种形状来实施。
主机接口132用于处置从主机102传输的命令、数据等。通过示 例而非限制的方式,主机接口132可以包括命令队列56、缓冲器管 理器52和事件队列54。命令队列56可以顺序地存储从主机102接 收的命令、数据等,并且以命令、数据等被存储的顺序将命令、数据等输出至缓冲器管理器52。缓冲器管理器52可以分类、管理或调整 从命令队列56接收的命令、数据等。事件队列54可以顺序地传输用 于处理从缓冲器管理器52接收的命令、数据等的事件。
相同特性的多个命令(例如,读取命令和写入命令)或数据可以 被从主机102传输至存储器系统110,或者不同特性的命令和数据可 以在由主机102混合或打乱之后被传输至存储器系统110。例如,用 于读取数据的多个命令(读取命令)可以被传递至存储器系统110, 或者用于读取数据的命令(读取命令)以及用于编程/写入数据的命 令(写入命令)可以被交替地传输至存储器系统110。主机接口132 可以将从主机102传输的命令、数据等顺序地存储至命令队列56。
此后,主机接口132可以根据已经从主机102输入的命令、数据 等的特性来估计或预测控制器130将执行何种内部操作。主机接口 132可以至少基于命令、数据等的特性,确定命令、数据等的处理顺 序和优先级。根据从主机102传输的命令、数据等的特性,主机接口 132中的缓冲器管理器52被配置成确定缓冲器管理器是否应当将命 令、数据等存储在存储器144中,或者缓冲器管理器是否应当将命令、 数据等传递至闪存转换层(FTL)240中。
事件队列54接收待由存储器系统110或控制器130响应于从主 机102传输的命令、数据等而内部运行和处理的、从缓冲器管理器 52输入的事件,以便以接收的顺序将事件传递至闪存转换层(FTL) 240中。
根据实施例,闪存转换层(FTL)240可以包括主机请求管理器 (HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。 主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映 射管理器(MM)44可以处置或控制映射数据。状态管理器42可以 执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器 装置150中的块运行命令或指令。虽然图2中未示出,但是根据实施 例,参照图1描述的ECC 138可以被包括在FTL 240中。在实施例中,ECC 138可以被实施为在控制器130内的单独的模块、电路或固件。
通过示例而非限制的方式,主机请求管理器(HRM)46可以根 据从主机接口132传递的读取和编程命令以及事件来使用映射管理 器(MM)44和块管理器48以处置或处理请求。主机请求管理器(HRM) 46可以将查询请求发送至映射管理器(MM)44,以确定与连同事件 一起输入的逻辑地址相对应的物理地址。HRM 46可以将查询请求发 送至MM 44以便识别与所传送的请求的逻辑地址相对应的物理地址, 并且MM 44可以执行地址转换。HRM 46可以将针对物理地址的闪 存读取请求传输至存储器I/F 142,以便处理读取请求。HRM 46可以 首先将编程请求传输至BM 48并且将数据编程到存储器装置中的未 被写入的特定页面(没有存储数据的页面),然后可以将针对编程请 求的映射更新请求传输到MM 44,从而在逻辑地址和物理地址之间 的映射信息中更新编程数据的内容。
此处,块管理器48可以将从主机请求管理器(HRM)46、映射 管理器(MM)44和/或状态管理器42传递的编程请求转换成用于存 储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。 为了最大化或增强存储器系统110(参见图2)的编程或写入性能, 块管理器48可以收集编程请求并且将针对多平面和单触发(one-shot) 编程操作的闪存编程请求发送至存储器接口142。在实施例中,块管 理器48可以将若干闪存编程请求发送至存储器接口142以增强或最 大化多通道和多方向闪存控制器的并行处理(例如,交错操作)。
另一方面,块管理器48可以被配置成根据有效页面的数量来管 理存储器装置150中的块,在需要空闲块时选择和擦除不具有有效页 面的块,并且在确定垃圾收集有必要时选择包括最少数量的有效页面 的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块并 且擦除包含被移动的有效数据的块,使得块管理器48可以具有足够 的空闲块(没有数据的空块)。如果块管理器48将关于待擦除的块的 信息提供至状态管理器42,则状态管理器42可以检查待擦除的块的 所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的 有效性,状态管理器42可以识别每个页面的带外(OOB)区域中记 录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将 页面的物理地址与被映射到从查询请求获得的逻辑地址的物理地址 进行比较。状态管理器42针对每个有效页面将编程请求发送到块管 理器48。当编程操作完成时,映射表可以通过映射管理器44的更新 来更新。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以 处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、 更新等请求。映射管理器44可以将整个映射表存储在存储器装置150 (例如,闪存/非易失性存储器)中,并且根据存储器144的存储容 量高速缓存映射条目。当在处理查询请求或更新请求时发生映射高速 缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142 以加载存储器装置150中存储的相关映射表。当映射管理器44中的 脏高速缓存块的数量超过特定阈值时,编程请求可以被发送至块管理 器48,从而形成干净高速缓存块并且脏映射表可以被存储在存储器 装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制 到空闲块中,并且主机请求管理器(HRM)46可以针对页面的相同 逻辑地址编程最新版本的数据,并且即时地发出更新请求。当状态管 理器42在有效页面的复制没有正常完成的状态下请求映射更新时, 映射管理器44可能不执行映射表更新。这是因为如果状态管理器42 请求映射更新并且稍后才完成有效页面复制,则利用旧物理信息发出 映射请求。映射管理器44只有在最新映射表仍然指向旧物理地址时 才可以执行映射更新操作以确保准确性。
图3A至图3D是用于描述存储器单元的阈值电压分布的曲线图。 参照图3A至图3D,每个曲线图的横轴指示阈值电压的大小,并且 每个曲线图的纵轴指示存储器单元的数量。图3A至图3D是基于一 个存储器单元中存储的数据位的数量范围为1至4的假设。然而,在一个存储器单元中存储的数据位的数量不限于本实施例。
图3A示出能够存储一个数据位的SLC的阈值电压分布。SLC 可以具有擦除状态E和编程状态P1中的任意一种状态。读取电压Va1 可以是用于在擦除状态E和编程状态P1之间进行区分的读取电压。 当通过读取电压Va1读取时,可以将具有擦除状态E的SLC读取为 导通单元。当通过读取电压Va1读取时,可以将具有编程状态P1的 SLC读取为关断单元。
图3B示出能够存储两个数据位的MLC的阈值电压分布。MLC 可以具有擦除状态E和第一至第三编程状态P1至P3中的任意一种 状态。第一至第三读取电压Vb1至Vb3可以是用于在擦除状态E和 第一至第三编程状态P1至P3之中进行区分的读取电压。第一读取电 压Vb1可以是用于在擦除状态E和第一编程状态P1之间进行区分的 读取电压。第二读取电压Vb2可以是用于在第一编程状态P1和第二 编程状态P2之间进行区分的读取电压。第三读取电压Vb3可以是用 于在第二编程状态P2和第三编程状态P3之间进行区分的读取电压。 根据通过第一至第三读取电压Vb1至Vb3的读取结果,MLC的状态 可以被分类为擦除状态E或第一至第三编程状态P1至P3中的任意 一种。
图3C示出能够存储三个数据位的TLC(三层单元)的阈值电压 分布。TLC可以具有擦除状态E和第一至第七编程状态P1至P7中 的任意一种状态。第一至第七读取电压Vc1至Vc7可以是用于在擦 除状态E和第一至第七编程状态P1至P7之中进行区分的读取电压。 第一读取电压Vc1可以是用于在擦除状态E和第一编程状态P1之间 进行区分的读取电压。第二读取电压Vc2可以是用于在第一编程状态P1和第二编程状态P2之间进行区分的读取电压。类似地,第七读取 电压Vc7可以是用于在第六编程状态P6和第七编程状态P7之间进 行区分的读取电压。根据通过第一至第七读取电压Vc1至Vc7的读 取结果,TLC的状态可以被分类为擦除状态E和第一至第七编程状 态P1至P7中的任意一种。
图3D示出能够存储四个数据位的QLC(四层单元)的阈值电压 分布。QLC可以具有擦除状态E和第一至第十五编程状态P1至P15 中的任意一种状态。第一至第十五读取电压Vd1至Vd15可以是用于 在擦除状态E和第一至第十五编程状态P1至P15之中进行区分的读取电压。第一读取电压Vd1可以是用于在擦除状态E和第一编程状 态P1之间进行区分的读取电压。第二读取电压Vd2可以是用于在第 一编程状态P1和第二编程状态P2之间进行区分的读取电压。类似地, 第十五读取电压Vd15可以是用于在第十四编程状态P14和第十五编程状态P15之间进行区分的读取电压。根据通过第一至第十五读取电 压Vd1至Vd15的读取结果,QLC的状态可以被分类为擦除状态E 和第一至第十五编程状态P1至P15中的任意一种。
参照图3A至图3D,由一个存储器单元表示的编程状态的数量 和用于在编程状态之中进行区分的读取电压的数量可以随着在一个 存储器单元中存储的数据位的数量的增加而增加。随着由一个存储器 单元表示的编程状态的数量增加,对应于各个编程状态的阈值电压分 布的整体宽度可以增加。另一方面,随着由一个存储器单元表示的编 程状态的数量增加,对应于编程状态中的每一个的阈值电压分布的宽 度可以减小。
图4是示出在2位软读取操作期间形成读取电压和软数据的曲线 图。
在描述图4之前,将如下描述控制器130中包括的处理器134。 处理器134可以生成命令并且将所生成的命令应用到存储器装置150, 以便分析从主机102传送的命令并且根据分析结果来控制存储器装 置150的全部操作。例如,当从主机102接收读取命令时,处理器 134可以将读取命令应用到存储器装置150以便处理读取命令。此时, 处理器134可以向存储器装置150提供硬读取命令(硬判决读取命令) 和软读取命令(软判决读取命令)。存储器装置150可以基于接收到 的读取命令执行硬读取操作和软读取操作。
参照图4,硬读取操作是指使用预设硬读取电压读取被编程在多 个存储器单元中的数据的操作。当施加硬读取电压时,根据存储器单 元的导通状态或关断状态将数据读取为1或0。由R2表示硬读取电 压。当施加硬读取电压R2时,硬数据2-1在存储器单元处于导通状 态的情况下变为“1”,并且在存储器单元处于关断状态的情况下变 为“0”。也就是说,硬数据可以指示基于硬读取电压通过硬读取操 作从存储器单元MC读取的并且通过编程操作被存储在存储器单元 MC中的数据。根据存储器单元的阈值电压是否高于/低于硬读取电压, 针对相应的存储器单元,可以将硬数据读取为“0”或“1”。
软读取操作是指施加与硬读取电压R2具有预定电压差的多个可 变读取电压(软读取电压)并且形成用于为硬数据添加可靠性的信息 的操作。也就是说,在软读取操作期间,软读取电压可以用于从存储 器单元MC读取软数据。可以根据存储器单元的阈值电压是否高于/ 低于软读取电压来读取软数据。例如,在2位软判决读取操作的情况 下,软判决读取电压分别变为第一软读取电压R2-1和第二软读取电 压R2-2。当施加第一软读取电压R2-1时,根据存储器单元的导通或 关断状态确定的第一软读取值2-2可以变为1、0、0和0。当施加第 二软读取电压R2-2时,根据存储器单元的导通或关断状态确定的第 二软读取值2-3可以变为1、1、1和0。
对第一软读取值2-2和第二软读取值2-3进行逻辑门运算以便形 成软数据2-4。具体地,可以执行XOR运算来生成软数据。当对第 一软读取值和第二软读取值执行XOR运算时,运算结果可以在相同 位置处的第一软读取值和第二软读取值彼此一致的情况下表示为 “0”,并且在相同位置处的第一软读取值和第二软读取值彼此不一 致的情况下表示为“1”。因此,所生成的软数据2-4可以变成0、1 和0。所生成的软数据2-4被提供到控制器中包括的ECC解码器1301 (参见图13中的130)。软数据可以为硬数据添加可靠性。也就是说, 当软数据2-4为“0”时,可以指示硬数据的可靠性强,并且当软数 据2-4为“1”时,可以指示硬数据的可靠性弱。也就是说,基于硬 数据和软数据的可靠性数据2-5在区间①、②、③和④中的值可以分 别是10、11、01和00。然而,本实施例不限于此,可以将基于硬数 据HDT和软数据SDT的可靠性数据2-5设置为不同的值。存储器系 统110可以处理从具有区间①中包括的阈值电压的存储器单元读取 的数据(位)为Strong 1,在区间①中,可靠性数据被识别为10,Strong 1指示相应的数据(位)值被识别为1,或者该数据(位)为1的概 率较高。也就是说,存储器系统110可以将权重Strong 1施加到从具 有区间①中包括的阈值电压的存储器单元读取的数据(位),在区间 ①中,可靠性数据2-5被识别为10。存储器系统110可以处理从具有 区间②中包括的阈值电压的存储器单元读取的数据(位)为Weak 1, 在区间②中,可靠性数据2-5被识别为11,Weak 1指示相应的数据 (位)值被识别为1,但是该数据(位)为1的概率较低。也就是说, 存储器系统110可以将权重Weak 1施加到从具有区间②中包括的阈 值电压的存储器单元读取的数据(位),在区间②中,可靠性数据2-5 被识别为11。类似地,存储器系统110可以通过施加权重Weak 0来 处理从具有区间③中包括的阈值电压的存储器单元读取的数据(位), 在区间③中,可靠性数据2-5被识别为01,Weak 0指示相应数据(位) 值被识别为0,并且该数据(位)为0的概率较低。类似地,存储器 系统110可以通过施加权重Strong 0来处理从具有区间④中包括的阈 值电压的存储器单元读取的数据(位),在区间④中,可靠性数据2-5 被识别为00,Strong 0指示相应的数据(位)值被识别为0,并且该 数据(位)为0的概率较高。
当存储器装置150通过软读取操作将从多个存储器单元读取的 软数据传送到控制器130时,控制器130可以通过使用软数据来检测 和校正硬数据的错误。
当存储器装置150对软数据进行压缩,然后将压缩数据传送到控 制器130时,与当存储器装置150传送软数据而不对软数据进行压缩 时相比,可以提高软数据的信息传送效率,并且可以减少存储器装置 150和控制器130的功耗。多个存储器单元中的大部分可以是可靠性 较强的存储器单元,并且具有指示在软数据中的可靠性较强的数据值。 例如,构成参照图4描述的软数据2-4的位的大部分位可以是“0”。 当存储器装置150通过对软数据进行压缩来生成压缩数据时,“0” 位的重复可以被压缩为较短长度的数据,这样可以提高压缩数据的压 缩比例。
根据本实施例,存储器装置150可以将软数据中第一长度的“0” 位的重复(在下文中,称为0位重复)压缩为1位压缩数据。存储器 装置150可以将长度比第一长度更短并且以位“1”结束的0位重复 压缩成长度比1位压缩数据更长的压缩数据。当存储器装置150以提高的压缩比例从软数据生成压缩数据并且将该压缩数据提供到控制 器130时,可以提高软数据的信息传送效率,并且可以减少存储器装 置150和控制器130的功耗。在一个实施例中,术语重复可以包括如 上所述的两个或更多个位值的连续序列。
将参照图5至图9详细描述根据本实施例的用于对软数据进行压 缩的方法和用于对压缩数据进行解压缩的方法的示例。
参照图4描述的软数据可以是二进制数据。二进制软数据可以包 括源符号,并且源符号可以具有值“0”或“1”。软数据中的符号“0” 和符号“1”可以具有不同的出现概率。例如,当软数据中的指示可 靠性强的符号为“0”,并且软数据中的指示可靠性弱的符号为“1”时,软数据的符号中的大部分符号可以为“0”,符号中的其它符号 可以为“1”。在下文中,在软数据中,可以将具有出现概率最高的 符号值的符号称为主要符号,并且可以将除主要符号以外的符号称为 次要符号。
存储器装置150可以将软数据划分为多个预定的源字母表 (source alphabet)以便对软数据进行压缩,并且通过熵编码方法将 源字母表编码为代码字母表(codealphabet),以便生成压缩数据。
源字母表中的每一个可以包括一个或多个源符号。根据本实施例, 预定的源字母表中的每一个可以不是另一源字母表的前缀。当预定的 源字母表中的每一个不是另一源字母表的前缀时,这可以指示正常源 字母表不是另一源字母表的前缀。例如,多个源字母表可以分别具有 值“1”、“01”、“001”、“0001”和“0000”。在上面的示例中, 源字母表“1”不是其他源字母表“01”、“001”、“0001”和 “0000”中任意一个的前缀。类似地,源字母表“01”、“001”、 “0001”和“0000”中的任意一个不是其他源字母表的前缀。
由于源字母表中的每一个不是另一源字母表的前缀,因此存储器 装置150可以即时并且唯一地对软数据进行编码。也就是说,存储器 装置150可以通过即时检查软数据的各个符号来从软数据中检测多 个源字母表,并且将多个源字母表编码为代码字母表,以便生成压缩 数据。软数据和压缩数据之间可以具有一对一的相关性。
存储器装置150可以使用熵编码方法来对软数据进行压缩。熵编 码方法是指通过将数据中包括的源字母表之中出现概率较高的源字 母表编码为具有较小长度的代码字母表来压缩数据的压缩方法。例如, 当存储器装置150将软数据划分为多个源字母表时,源字母表“0000” 在软数据中的出现概率可以高于其他源字母表“1”、“01”、“001” 和“0001”的出现概率。存储器装置150可以将源字母表“0000”编 码为具有最小长度的代码字母表。
存储器装置150可以存储压缩表,该压缩表包括多个源字母表和 与多个源字母表相对应的多个代码字母表。图5示出根据实施例的第 一压缩表500。第一压缩表500示出17个源字母表“1”、“01”、 “001”、……和“0000000000000000”。源字母表中的每一个可以 不是另一源字母表的前缀。存储器装置150可以即时检查软数据的符 号并且将软数据划分为多个源字母表。
例如,当通过即时检查软数据的符号所获得的结果指示软数据包 括16个符号的长度的0位重复时,存储器装置150可以将16个符号 的长度的0位重复确定为源字母表“0000000000000000”。当软数据 包括五个符号的长度的0位重复并且以位“1”结束时,存储器装置 150可以将以位“1”结束的5个位的0位重复确定为源字母表 “000001”。
存储器装置150可以将源字母表之中具有最高出现概率的源字 母表编码为最短的代码字母表。源字母表的出现概率可以表示为下面 的等式1。
等式1
Figure BDA0003150775920000271
在等式1中,x可以表示源字母表,并且p(x)可以表示源字母表x 的出现概率。此外,1-p可以表示主要符号(例如,具有值“0”的 符号)在软数据中出现的概率,并且p可以表示次要符号(例如,具 有值“1”的符号)在软数据中出现的概率。另外,k可以表示源字母 表的长度。此外,
Figure BDA0003150775920000272
可以表示仅由主要符号配置的字母表(即, 作为最大长度“kmax”的主要符号重复的字母表)在软数据中出现的 概率。例如,当在压缩表中,源字母表具有16个符号的最大长度时, 作为最大长度的0位重复(即,主要符号重复)的源字母表的出现概率可以是p(x)=(1-p)16。另外,(1-p)k-1p可以指示作为长度为 (k-1)位的主要符号重复并且以一个次要符号结束的源字母表的出 现概率。例如,字母表“0001”将出现的概率可以是p(x)=(1-p)3p。
由于主要符号在软数据中是主要的,因此次要符号出现的概率p 可以小于1-p。根据等式1,源字母表“0000000000000000”,即作 为最大长度“kmax”的主要符号重复的源字母表可以具有最高的出 现概率。在第一压缩表500的多个代码字母表之中与具有最高的出现概率的源字母表相对应的代码字母表可以具有最小长度。在图5的示 例中,与作为最大长度“kmax”的主要符号重复的源字母表(即, “0000000000000000”)相对应的代码字母表可以是“0”。也就是 说,可以将代码字母表预定为具有仅具有一个位的长度。另一方面, 可以将与源字母表之中除了作为最大长度“kmax”的主要符号重复 的源字母表(即,“0000000000000000”)之外的其他16个源字母 表相对应的代码字母表预定为具有5个位的长度。5位代码字母表中 的每一个的第一数字可以具有值“1”,并且可以针对源字母表中的每一个将5位代码字母表中的每一个的其他数字随机设置为不同的 值。多个源字母表之中具有最高出现概率的源字母表可以被称为主要 源字母表,并且其他源字母表可以被称为次要源字母表。
图6示出软数据和压缩数据。具体地,图6的压缩数据可以是当 存储器装置150基于第一压缩表500对软数据进行压缩时生成的压缩 数据。
图6的软数据可以具有值“00000 00000 00000 00010 00000 00000 00000 0000100001 00001”。存储器装置1540可以将该软数据 划分为多个源字母表。由于源字母表中的每一个不是另一源字母表的 前缀,所以存储器装置150可以即时检查软数据的符号,并且将软数 据划分为多个源字母表。例如,存储器装置150可以将该软数据划分 为总共6个源字母表“00000 00000 00000 0”、“001”、“00000 00000 00000 0”、“00001”、“00001”和“00001”。
存储器装置150可以通过参考第一压缩表500将六个源字母表编 码为六个代码字母表“0”、“10010”、“0”、“10011”、“10011” 和“10011”。也就是说,存储器装置150可以通过将六个源字母表 编码为六个代码字母表来生成压缩数据 “0100100100111001110011”。在图6的示例中,50位软数据可以被 表示为22位压缩数据。
根据本实施例,存储器装置150可以将多个源字母表之中具有最 高出现概率的源字母表编码为最短的代码字母表。另外,在多个源字 母表之中,具有最高出现概率的源字母表可以具有最大的长度。因此, 存储器装置150可以将具有最大长度的源字母表编码为最短的代码 字母表,从而提高软数据的压缩比例。
存储器装置150可以向控制器130提供通过对软数据进行压缩所 生成的压缩数据。控制器130可以通过对压缩数据进行解压缩来生成 解压缩数据。控制器130可以基于解压缩数据执行软判决解码。
控制器130可以存储解压缩表,该解压缩表包括多个代码字母表 和与多个代码字母表相对应的多个源字母表。控制器130可以通过参 考解压缩表来对从存储器装置150接收的压缩数据进行解压缩。
图7示出根据实施例的第一解压缩表700。
第一解压缩表700可以包括与参照图5描述的第一压缩表500的 源字母表和代码字母表相同的源字母表和代码字母表。第一压缩表 500是用于将源字母表编码为代码字母表的表,而第一解压缩表700 可以是用于将代码字母表解码为源字母表的表。
可以将代码字母表中的每一个预定为不是另一代码字母表的前 缀。在图7的示例中,多个代码字母表之中除代码字母表“0”之外 的代码字母表可以以“1”开头。因此,代码字母表“0”可以不是其 他代码字母表中的每一个的前缀。由于以“1”开头的代码字母表具有相同的五个位的长度并且具有不同的值,因此代码字母表中的每一 个可以不是另一代码字母表的前缀。由于代码字母表中的每一个都不 是另一代码字母表的前缀,因此控制器130可以即时并且唯一地对压 缩数据进行解码。
图8示出压缩数据和解压缩数据。
具体地,图8所示的压缩数据可以等于图6所示的压缩数据。图 8的解压缩数据可以是当控制器130基于解压缩表700对图8的压缩 数据进行解压缩时生成的数据。
由于代码字母表中的每一个不是另一代码字母表的前缀,所以控 制器130可以即时检查压缩数据“0100100100111001110011”,并且将 该压缩数据划分为多个代码字母表。具体地,以“0”开头的代码字 母表仅是代码字母表“0”。因此,当读取压缩数据的第一位“0”时, 控制器130可以将相应的位“0”确定为代码字母表“0”。以“1” 开头的代码字母表都具有五个位的长度。因此,当读取压缩数据的第 二位“1”时,控制器130可以将从相应位起总共五个位“10010”确 定为一个代码字母表。控制器130可以将“10010”之后的位“0”确定 为代码字母表“0”。最后,可以将压缩数据 “0100100100111001110011”划分为总共六个代码字母表“0”、 “10010”、“0”、“10011”、“10011”和“10011”。
控制器130可以通过参照解压缩表700将六个代码字母表解码为 源字母表“0000000000 00000 0”、“001”、“00000 00000 00000 0”、“00001”、“00001”和“00001”。控制器130可以基于源字 母表生成解压缩数据“00000 00000 00000 00010 00000 00000 0000000001 00001 00001”。
作为通过即时检查软数据并且将软数据划分为源字母表所获得 的结果,可能出现不与压缩表500的源字母表中的任意一个相对应的 符号。例如,当控制器130通过即时检查软数据来检测源字母表时, 不与源字母表中的任意一个相对应的剩余符号(例如,“000000”) 可能出现在软数据的最后部分中。
根据本实施例,存储器装置150可以将结束数据添加到软数据的 末尾,并且通过压缩添加了结束数据的软数据来生成压缩数据。通过 将结束数据添加到软数据的末尾,存储器装置150可以不留下软数据 中未被压缩的任何剩余符号。将参照图9详细地描述剩余符号和结束 数据。
图9是用于描述根据实施例的结束数据的示图。
具体地,图9示出结束数据所添加到的软数据、软数据的压缩数 据和压缩数据的解压缩数据。
在图9的示例中,软数据可以是“00000 00000 00000 00010 00000 00000 0000000001 00001 00000”。当存储器装置150即时检 查软数据的符号并且将这些符号划分为源字母表时,可以将从软数据 的头部开始的45个符号“00000 00000 00000 00010 0000000000 00000 00001 00001”划分为“00000 00000 00000 0”、“001”、 “00000 00000 000000”、“00001”和“00001”。然而,最后的五 个符号“00000”可能是不属于压缩表500的源字母表中的任意一个 的剩余符号。在这种情况下,使用压缩表500可能难以对剩余符号进 行压缩。
存储器装置150可以将次要符号的结束数据添加到软数据的末 尾,以便通过使用压缩表500甚至压缩剩余符号。
例如,当存储器装置150将次要符号“1”的结束数据添加到软 数据的末尾时,最后六个符号可以变为“000001”。由于“000001” 属于压缩表500的源字母表,所以存储器装置150可以参考压缩表 500将“000001”压缩为“10101”。也就是说,当存储器装置150 将次要符号的预定结束数据添加到软数据的末尾,存储器装置150可 以正常地对所有符号进行压缩而没有剩余符号。根据本实施例,可以 将结束数据配置为一个次要符号,例如“1”。
当将结束数据添加到软数据时,与没有添加结束数据时相比,压 缩数据的长度可以增加若干位。在实施方案中,软数据和压缩数据的 范围可以从数千位到数万位。因此,虽然向压缩数据进一步添加了若 干位数据,但是当存储器装置150将压缩数据传输到控制器130时几 乎不会增加开销。
控制器130可以通过对从存储器装置150接收的压缩数据进行即 时解压缩来生成解压缩数据。当压缩数据被正常接收时,解压缩数据 可以等于向末尾添加了结束数据的软数据。根据NAND闪速存储器 170的页面大小,软数据可以具有预定的大小。因此,正常的解压缩 数据可以具有确定的长度。
控制器130可以对即时生成的解压缩数据中的位的数量进行计 数,以便确定解压缩数据是否为正常解压缩数据。当所计数的位数量 对应于预定数量时,控制器130可以确定解压缩数据的最后的位是否 等于结束数据。当最后的位等于结束数据时,控制器130可以确定解 压缩数据是正常解压缩数据。当解压缩数据为正常解压缩数据时,控 制器可以从解压缩数据中去除结束数据,控制器可以从解压缩数据中 去除结束数据以生成软数据,并且通过使用所生成的软数据执行软判 决解码。
在图9的示例中,当即时生成的解压缩数据中的位的数量对应于 51并且51位数据的最后的位具有值“1”时,控制器130可以确定 已经正常地接收压缩数据。
存储器装置150可以存储一个或多个压缩表,并且控制器130可 以存储与一个或多个压缩表相对应的一个或多个解压缩表。当存储器 装置150存储多个压缩表时,存储器装置150可以基于硬数据的可靠 性和软数据生成方法来选择多个压缩表中的任意一个。将参照图10A 至图10C、图11A至图11C以及图12A和图12B详细描述多个软数 据生成方法和存储器装置150的压缩表的各个示例。
图10A至图10C是用于描述第一软数据生成方法和第一类型压 缩表的示图。
图10A是用于描述第一软数据生成方法的曲线图。
存储器装置150通过使用一对软读取电压来获取两个软读取值 并且通过对两个软读取值执行XOR运算来生成软数据的方法可以被 称为第一软数据生成方法。可以以与参照图4描述的软读取操作基本 相同的方式来执行第一软数据生成方法。在通过第一软数据生成方法 生成的第一软数据的位之中,“0”可以指示可靠性强,并且“1”可 以指示可靠性弱。也就是说,通过第一软数据生成方法生成的软数据 可以包括每存储器单元一个位的可靠性信息。
存储器装置150可以在控制器130的控制下,使用多个软读取电 压之中的任意一对软读取电压。图10A示出第一至第六软读取电压 R2-1至R2-6。图10A示出在存储器装置150使用第一软读取电压R2-1 和第二软读取电压R2-2的情况下、存储器装置150使用第三软读取 电压R2-3和第四软读取电压R2-4的情况下以及存储器装置150使用 第五软读取电压R2-5和第六软读取电压R2-6的情况下,取决于存储 器单元的阈值电压的软数据位值。在图10A的曲线图中,阴影阈值 电压区间可以包括可靠性弱的存储器单元,并且与相应区间中的存储 器单元相对应的软数据位可以各自具有值“1”。另一方面,非阴影 阈值电压区间可以包括可靠性强的存储器单元,并且与相应区间中的 存储器单元相对应的软数据位可以各自具有值“0”。
参照图10的曲线图,甚至通过使用任意软读取电压所生成的软 数据可以包括符号“0”和符号“1”。主要符号可以是“0”,并且 次要符号可以是“1”。然而,根据已经生成软数据所通过的软读取 电压,软数据中的主要符号(例如,值为“0”的符号)的比例可以 改变。例如,主要符号在通过第一软读取电压R2-1和第二软读取电 压R2-2生成的软数据中的比例可能最高,并且主要符号在通过第五 软读取电压R2-5和第六软读取电压R2-6生成的软数据中的比例可能 最低。
根据软数据中的主要符号的比例,预定长度或更长的主要符号重 复的概率可以改变。虽然存储器装置150通过使用相同的压缩表来对 软数据进行压缩,但是软数据的压缩比例可以根据软数据中预定长度 或更长的主要符号重复的概率而改变。例如,当存储器装置150通过 使用图5所示的第一压缩表500来对软数据进行压缩时,长度为16 或更长的主要符号重复的概率可以随着软数据中的主要符号的比例 下降而下降。因此,随着软数据中的主要符号的比例下降,可以压缩 成单个位压缩数据的字母表的数量可能下降,从而降低软数据的压缩 比例。
根据本实施例,存储器装置150可以根据软数据中的主要符号的 比例,通过使用不同的压缩表来对软数据进行压缩。
图10B示出第二压缩表1000。
第二压缩表1000可以包括多个源字母表和与源字母表相对应的 多个代码字母表。
图10B例示了九个源字母表“1”、“01”、“001”、……、 和“00000000”。源字母表中的每一个可以不是另一源字母表的前缀。
类似于参照图5描述的,与多个源字母表之中具有最高出现概率 的源字母表相对应的代码字母表可以具有多个代码字母表之中的最 小长度。例如,在多个字母表之中,作为最大长度“kmax”的主要符号 重复的源字母表的源字母表(即,“00000000”)可以具有最高出现 概率。与源字母表“00000000”相对应的代码字母表可以是“0”,并 且被预定为具有仅一位的长度。另一方面,可以将与源字母表之中除 “00000000”之外的八个源字母表相对应的代码字母表预定为具有 四个位的长度。4位代码字母表中的每一个的第一数字可以为“1”, 并且可以针对源字母表中的每一个将4位代码字母表中的每一个的 其他数字随机设置为不同的值。代码字母表中的每一个可以不是另一 代码字母表的前缀。
当软数据中的主要符号的比例较低时,在通过使用第二压缩表 1000对软数据进行压缩的情况下的压缩比例可以高于在通过使用第 一个压缩表500对软数据进行压缩的情况下的压缩比例。
图10C示出软数据和压缩数据。具体地,图10C的软数据可以 等于图6所示的软数据。图10C的压缩数据可以是通过基于第二压缩 表1000对软数据进行压缩所生成的压缩数据。
存储器装置150可以将软数据“00000 00000 00000 00010 00000 00000 0000000001 00001 00001”划分成八个源字母表“00000 000”、“00 00000 0”、“001”、“0 0000000”、“000 00000”、 “00001”、“00001”和“00001”。存储器装置150可以通过参考 第二压缩表1000将八个源字母表编码成八个代码字母表“0”、 “0”、“1010”、“0”、“0”、“1100”、“1100”和“1100”。 在图10C的示例中,50位软数据可以被表示为20位压缩数据。也就 是说,虽然对相同的软数据进行压缩,但是软数据的压缩比例可以根 据选择哪个压缩表来对软数据进行压缩而改变。
第一压缩表500和第二压缩表1000可以被概括为第一类型压缩 表。第一类型压缩表可以包括作为最大长度“n”(=“kmax”=2m-1) 的主要符号重复(例如,0位重复)的源字母表,其中“n”和“m” 是自然数。仅由主要符号配置的源字母表的出现概率最高,并且该源 字母表可以被称为主要源字母表。主要源字母表可以对应于代码字母 表“0”。
第一类型压缩表可以进一步包括作为长度比“n”短的主要符号 重复并且以次要符号结束的源字母表。在压缩表中包括的源字母表之 中除主要源字母表之外的字母表可以被称为次要源字母表。次要源字 母表可以具有长度“m”,并且对应于以数字“1”开头的代码字母 表。第一压缩表500和第二压缩表1000可以是第一类压缩表的特例。 具体地,第一压缩表500和第二压缩1000可以是分别对应于(n=16) 的压缩表和对应于(n=8)的压缩表。
存储器装置150可以存储对应于不同n值的多个第一类型压缩表。 当存储器装置150使用对应于不同n值的压缩表以便对相同软数据进 行压缩时,软数据的压缩比例可以改变。当软数据中的主要符号的比 例较低时,存储器装置150可以通过使用第一类型压缩表之中与较小 的n值相对应的压缩表来对软数据进行压缩。
例如,与对通过使用第一软读取电压R2-1和第二软读取电压 R2-2生成的软数据进行压缩时相比,当对通过使用图10A的示例中 的第五软读取电压R2-5和第六软读取电压R2-6生成的软数据进行压 缩时,存储器装置150可以使用与更小的n值相对应的压缩表。
软数据中的主要符号的比例可以根据存储器装置150生成软数 据所通过的软读取电压而改变。然而,软数据中的主要符号的比例可 能由于另一因素而改变。例如,软数据中的主要符号“0”的比例可 以根据存储器单元的位错误率而改变。例如,当存储器单元的位错误 率较高时,软数据中的符号“0”的比例可以降低,符号“0”指示可 靠性强。
存储器装置150可以基于从控制器130接收到的软数据生成方法 信息、软读取电压信息和错误率信息来选择多个压缩表中的任意一个, 并且使用所选择的压缩表对软数据进行压缩。
例如,当通过参照图10A描述的第一软数据生成方法生成软数 据时,存储器装置150可以选择具有各种n值的第一类型压缩表中的 任意一个。可以基于软读取电压信息和错误率信息来选择第一类型压 缩表的n值。
错误率信息的第一示例可以是关于根据控制器130先前对读取 数据执行错误校正解码所获得的结果而检测到的错误位的数量的信 息。错误率信息的第二示例可以包括由控制器130先前接收的压缩数 据的长度信息。由于通过相同方法生成的软数据可以具有相同的长度, 所以存储器装置150可以根据压缩数据的长度来估计软数据的压缩 比例。当压缩数据的长度等于或大于阈值时,存储器装置150可以确 定软数据没有被充分压缩,并且选择与当前所选择的压缩表不同的压 缩表。控制器130可以向存储器装置150提供第一示例的错误率信息 和第二示例的错误率信息的至少一部分的错误率信息。
图11A和图11B是用于描述第二软数据生成方法和第二类型压 缩表的示图。
图11A是用于描述第二软数据生成方法的示图。
图11A示出存储器单元的阈值电压分布。当存储器装置150使 用六个软读取电压R2-1至R2-6获取六个软读取值时,可以根据六个 软读取值的运算结果将存储器单元的阈值电压区间划分成四个区间。
存储器单元的阈值电压与硬读取电压R2之间的差值可以确定存 储器单元的可靠性。根据存储器单元属于四个阈值电压区间之中的哪 个区间,存储器装置150可以将相应单元的可靠性确定为“00”、 “01”、“10”和“11”中的任意一个。也就是说,可以将一个存储器单元的可靠性确定为2位数据。在图11A中,2位数据的左侧的位 由LMB(最左侧位)表示,并且2位数据的右侧的位由RMB(最右 侧位)表示。
当阈值电压区间远离硬读取电压V2时,属于相应的阈值电压区 间的存储器单元的可靠性会增加。在图11A中,可以从具有最低可靠 性的阈值电压区间到具有最高可靠性的阈值电压区间按“00”、 “01”、“10”和“11”的顺序给出可靠性。
存储器装置150可以基于作为软读取操作目标的存储器单元的 可靠性信息来生成软数据。可以将存储器装置150基于通过使用多对 软读取电压读取的多个软读取值来生成指示存储器单元中的每一个 的可靠性的作为多位二进制数据的软数据的方法称为第二软数据生 成方法。
图11A示出多个存储器单元之中具有可靠性“11”的存储器单元 的数量可以是最高的。通过第二软数据生成方法生成的第二软数据可 以包括位“0”或“1”,并且第二软数据中的位“0”的比例可以高 于位“1”的比例。也就是说,第二软数据的主要符号可以是具有值“1”的符号,并且第二软数据的次要符号可以是具有值“0”的符号。
第二软数据可以包括LMB数据和RMB数据。例如,当某些存 储器单元的可靠性分别为“00”、“01”、“10”和“11”时,存储 器单元的第二软数据的LMB数据可以是“0、0、1、1”,并且其RMB 数据可以是“0、1、0、1”。在LMB数据和RMB数据中,具有值 “1”的符号可以是主要符号。然而,LMB数据中的主要符号的比例 可能与RMB数据中的主要符号的比例不同。根据本实施例,存储器 装置150可以根据LMB数据和RMB数据中的主要符号的比例,使 用不同的压缩表来对LMB数据和RMB数据进行压缩。
图11A示出软数据包括每存储器单元2位可靠性信息的情况, 但是本实施例不限于此。例如,存储器装置150可以生成包括每存储 器单元3位或更多位可靠性信息的软数据、通过可靠性信息的数字的 数量对软数据进行划分,并且使用不同的压缩表对通过数字的数量划 分的数据进行压缩。
将参照图11B和图11C描述用于对第二软数据进行压缩的不同 压缩表。
图11B示出第三压缩表1100。
第三压缩表1100是第二类型压缩表的第一示例。第三压缩表 1100可以包括多个源字母表,每个源字母表包括主要符号“1”和次 要符号“0”中的一个或多个。图11B例示了17个源字母表“0”、 “10”、“110”、……、和“1111111111111111”。源字母表中的每 一个可以不是另一源字母表的前缀。除了主要符号变为“1”并且次 要符号变为“0”之外,第三压缩表1100可以包括与第一压缩表500 类似的源字母表和代码字母表。例如,可以将与多个源字母表之中的 主要源字母表“1111111111111111”相对应的代码字母表预定为 “0”。另一方面,与源字母表之中的次要源字母表相对应的代码字 母表可以各自具有五个位的长度,并且该代码字母表的第一数字可以 为“1”。
图11C示出第四压缩表1150。
第四压缩表1150是第二类型压缩表的第二示例。第四压缩表 1150例示了九个源字母表“0”、“10”、“110”、……和 “11111111”。源字母表中的每一个可以不是另一源字母表的前缀。
可以将与多个源字母表之中的主要源字母表“11111111”相对 应的代码字母表预定为“0”。此外,与多个源字母表之中的次要源 字母表相对应的代码字母表可以各自具有四个位的长度,并且该代码 字母表的第一数字可以为“1”。
存储器装置150可以如多个第一类型压缩表一样来存储对应于 不同n值的多个第二类型压缩表。存储器装置150可以根据LMB数 据和RMB数据的每一个中的符号“1”的比例,使用对应于不同n 值的第二类型压缩表来分别对LMB数据和RMB数据进行压缩。例 如,存储器装置150可以通过使用第三压缩表1100对LMB数据进行 压缩并且使用第四压缩表1150对RMB数据进行压缩来压缩第二软 数据。
图12A和图12B是用于描述第三软数据生成方法和第三类型压 缩表的示图。
图12A是用于描述第三软数据生成方法的示图。
图12A示出存储器单元的阈值电压分布。图12中所示的阈值电 压分布可以与图11A中所示的阈值电压分布相同。存储器装置150 可以使用六个软读取电压R2-1至R2-6获取六个软读取值,并且可以 根据六个软读取值的运算结果将存储器单元的可靠性确定为“0”、 “1”、“2”和“3”中的任意一个。
当阈值电压区间远离硬读取电压V2时,属于相应的阈值电压区 间的存储器单元的可靠性可以变得更高。在图12A中,“0”、“1”、 “2”和“3”可以指示依次强的可靠性。
存储器装置150可以使用作为软读取操作目标的存储器单元的 可靠性作为符号来生成软数据。可以将存储器装置150基于通过使用 多对软读取电压读取的多个软读取值来生成指示存储器单元中的每 一个的可靠性的作为非二进制数据的软数据的方法称为第三软数据 生成方法。
通过第三软数据生成方法生成的第三软数据的符号的值可以是 “0”、“1”、“2”和“3”中的任意一个。图12A示出多个存储 器单元之中具有可靠性“3”的存储器单元的数量可以是最高的。因 此,第三软数据的主要符号可以是“3”,并且第三软数据的次要符 号可以是“0”、“1”和“2”。
将参照图12B描述用于对第三软数据进行压缩的第三类型压缩 表。
图12B示出第五压缩表1200。
第五压缩表1200是第三类型压缩表的第一示例。第三类型压缩 表可以包括多个源字母表,每个源字母表包括主要符号“3”和次要 符号“0”、“1”和“2”中的一个或多个。源字母表中的每一个可 以不是另一源字母表的前缀。
第五压缩表1200可以包括与源字母表相对应的代码字母表。例 如,与多个源字母表之中的具有最高出现概率的“33333”相对应的 代码字母表可以具有值“0”。
第三类型压缩表可以包括作为最大长度“n”的主要符号重复 (例如,3位重复)的主要源字母表,主要符号具有值“3”。作为 最大长度“n”的主要符号重复(例如,3位重复)的源字母表可以 对应于主要源字母表。主要源字母表可以对应于代码字母表“0”。
第三类型压缩表可以进一步包括作为长度短于“n”的主要符号 重复并且以次要符号结束的次要源字母表。次要源字母表可以具有长 度“k”,并且对应于以数字“1”开头的代码字母表。
此处,可以基于次要源字母表的总数量来确定代码字母表的最大 长度“m”。可以根据次要符号的数量和源字母表的最大长度“n” 来确定次要源字母表的总数量。例如,当第三软数据具有4个符号(即, 单个主要符号和3个次要符号)并且源字母表的最大长度为“n”时, 次要源字母表的数量可以为“3n”,并且“m”可以被选择为满足3n ≤2m-1的自然数之中的最小值。
存储器装置150可以存储对应于不同“n”值的多个第三类型压 缩表。存储器装置150可以根据第三软数据中的主要符号的比例,通 过参考多个第三类型压缩表中的任意一个,对第三软数据进行压缩。
图13示出根据实施例的存储器系统110。
参照图13,存储器系统110可以包括存储器装置150和控制器 130。图13的存储器装置150和控制器130可以分别对应于已经参照 图1和图2描述的存储器装置150和控制器130。
控制器130可以包括ECC解码器1301和解压缩单元1302。
ECC解码器1301可以向存储器装置150提供软读取命令、软读 取电压信息和错误率信息,以便从存储器装置150获取压缩的软数据, 即压缩数据。软读取命令可以包括软数据生成方法信息。软读取电压 信息可以指示关于用于执行响应于软读取命令的软读取操作的软读 取电压的信息。
下面将详细描述解压缩单元1302。
存储器装置150可以包括压缩电路160、NAND闪速存储器170 和I/F 180。
NAND闪速存储器170可以将数据存储在由存储器单元晶体管 构成的存储器单元阵列中。NAND闪速存储器170可以具有存储器管 芯、平面、存储块和页面的分层结构。一个存储器管芯一次可以接收 一个命令。闪速存储器可以包括多个存储器管芯。一个存储器管芯可 以包括多个平面,并且多个平面可以并行处理由存储器管芯接收的命 令。平面中的每一个可以包括多个存储块。存储块可以是擦除操作的 最小单位。一个存储块可以包括多个页面。页面可以是写入操作的最 小单位。
压缩电路160可以包括软读取单元1601和压缩单元1602。软读 取单元1601可以被称为软读取逻辑,并且压缩单元1602可以被称为 压缩器。
软读取单元1601可以从控制器130接收软读取命令和软读取电 压信息。软读取单元1601可以基于软读取命令确定软数据生成方法, 并且控制NAND闪速存储器170基于软数据生成方法和软读取电压 信息施加软读取电压。软读取单元1601(例如,软读取逻辑)可以根据软读取命令中包括的软数据生成方法来生成软数据。已经参照图 10A、图11A和图12A详细描述了可以由软读取单元1601使用的各 种软数据生成方法的示例。
压缩单元1602可以通过对由软读取单元1601生成的软数据进行 压缩来生成压缩数据。压缩单元1602可以包括压缩方法选择器1602A 和压缩器1602B。
压缩方法选择器1602A可以在存储器装置150中存储的多个压 缩表之中选择待用于对由软读取单元1601生成的软数据进行压缩的 压缩表。压缩方法选择器1602A可以基于从控制器130接收的软读 取命令、软读取电压信息和错误率信息来选择压缩表。参照图5、图10B、图11B、图11C和图12B已经详细描述了压缩方法选择器1602A 可以选择的各种压缩表的示例。
压缩器1602B可以通过使用压缩方法选择器1602A选择的压缩 表来对软读取单元1601生成的软数据进行压缩来生成压缩数据。参 照图5、图6和图9已经详细描述了用于生成压缩数据的方法的示例。 例如,压缩器1602B可以通过将结束数据添加到软读取单元1601生 成的软数据并且对添加了结束数据的数据进行压缩来生成压缩数据。
I/F 180可以向控制器130提供由压缩器1602B生成的压缩数据。
控制器130的解压缩单元1302可以通过使用解压缩表对从存储 器装置150接收的压缩数据进行解压缩来生成解压缩数据。参照图7 和图8已经详细描述了通过对压缩数据进行解压缩来生成解压缩数 据的方法的示例。
解压缩单元1302可以使用解压缩表对压缩数据进行解压缩,该 解压缩表包括与已经用于生成该压缩数据的压缩表的源字母表和代 码字母表相同的源字母表和代码字母表。I/F 180可以将压缩方法选择 器1602A选择的压缩表的信息从压缩单元1602传送到控制器130。 解压缩单元1302可以根据所传送的压缩方法选择器1602A选择的压 缩表的信息使用解压缩表对压缩数据进行解压缩。例如,当压缩器 1602B使用图5的第一压缩表500对软数据进行压缩时,解压缩单元 1302可以使用图7的解压缩表700对压缩数据进行解压缩。
在实施方案中,解压缩单元1302可以基于已经用于生成软数据 的软数据生成方法、软读取电压信息和错误率信息来选择与压缩表相 对应的解压缩表,或者根据压缩数据的数据模式来选择解压缩表,并 且使用所选择的解压缩表对数据进行解压缩。
在实施方案中,当解压缩数据达到预定长度时,解压缩单元1302 可以根据解压缩数据的最后的部分是否包括结束数据来确定是否从 存储器装置150正常接收到该压缩数据。
当确定没有正常接收到压缩数据时,解压缩单元1302可以请求 存储器装置150重新传输压缩数据。存储器装置150可以响应于重新 传输请求再次将现有压缩数据提供到存储器装置150,或者生成新的 软数据和压缩数据,并且将所生成的压缩数据提供到存储器装置150。 当确定正常接收到压缩数据时,解压缩单元1302可以将解压缩数据 提供到ECC解码器1301。ECC解码器1301可以使用解压缩数据作 为软数据来执行软判决解码。
图14是示意性地示出根据本实施例的存储器系统110的操作的 流程图。
在步骤S1402中,控制器130可以从存储器装置150请求压缩的 软数据,即压缩数据。控制器130可以向存储器装置150提供软读取 命令、软读取电压信息和错误率信息,以便请求压缩数据。
在步骤S1404中,存储器装置150可以响应于来自控制器130 的软读取命令通过执行软读取操作来生成软数据。
存储器装置150可以通过从参照图10A、图11A和图12A描述 的各种方法之中选择的方法来生成软数据。例如,存储器装置150可 以基于来自控制器130的软读取命令来确定存储器装置150将通过哪 种方法生成软数据。为了生成软数据,存储器装置150可以根据来自 控制器130的软读取电压信息将软读取电压施加到NAND闪速存储 器170。
在步骤S1406中,存储器装置150可以选择多个压缩表之中的任 意一个压缩表,以便对软数据进行压缩。
压缩表可以是预定的并且存储在存储器装置150中。压缩表可以 包括构成软数据的多个源字母表和与源字母表相对应的多个代码字 母表。源字母表中的每一个可以不对应另一源字母表的前缀,并且代 码字母表中的每一个可以不对应另一代码字母表的前缀。
源字母表中的每一个可以包括主要符号和次要符号中的一个或 多个。多个源字母表可以包括主要源字母表和除主要源字母表之外的 次要源字母表。
主要源字母表可以由如第一至第五压缩表500、1000、1100、1150 和1200中例示的最大长度“n”的主要符号重复来配置,并且在多个 源字母表之中具有最大长度。与主要源字母表相对应的代码字母表在 多个代码字母表之中可以具有最小长度。例如,代码字母表可以仅包 括位“0”。
次要源字母表可以由长度短于“n”的主要符号重复来配置并且 以单个次要符号结尾。对应于次要源字母表的代码字母表可以具有m 位长度。例如,代码字母表可以以位“1”开始。当次要符号的数量 由“s”表示时,“n”和“m”可以是具有关系s×n≤2m-1的自然数。
根据软数据生成方法,存储器装置150可以包括各种类型的压缩 表。压缩表中的每一个可以包括对应于不同n值的多个压缩表。
存储器装置150可以基于从控制器130接收的软数据生成方法、 软读取电压信息和错误率信息来选择压缩表。
在步骤S1408中,存储器装置150可以使用所选择的压缩表来对 软数据进行压缩。
例如,存储器装置150可以通过参考压缩表将软数据划分为多个 源字母表。存储器装置150可以将多个源字母表编码成代码字母表, 并且基于多个代码字母表生成压缩数据。
存储器装置150可以将源字母表之中具有最大长度并且最有可 能在软数据中出现的主要源字母表编码为最短的代码字母表,从而提 高软数据的压缩比例。
在实施方案中,存储器装置150可以将结束数据添加到软数据, 并且基于添加了结束数据的软数据来生成压缩数据,以便对软数据的 所有符号进行压缩。
在步骤S1410中,存储器装置150可以将压缩数据提供到控制器 130。
在步骤S1412中,控制器130可以通过对压缩数据进行解压缩来 生成解压缩数据。
例如,控制器130可以使用与在步骤S1406中选择的压缩表相对 应的解压缩表,以便生成解压缩数据。控制器130可以基于提供到存 储器装置150的软读取命令、软读取电压信息和错误率信息来选择解 压缩表,或者基于压缩数据的数据模式来选择解压缩表。
在步骤S1414中,控制器130可确定解压缩数据是否为正常压缩 数据。
例如,控制器130可以从存储器装置150接收基于添加了结束数 据的软数据而生成的压缩数据。当压缩数据被正常接收时,解压缩数 据可以具有添加了结束数据的软数据的数据格式。
为了确定解压缩数据是否是正常数据,控制器130可以确定解压 缩数据是否是具有预定长度的数据,并且解压缩数据的最后的位是否 对应于结束数据。
当解压缩数据是正常数据(步骤S1414中为是)时,在步骤S1416 中,控制器130可以使用解压缩数据执行软判决解码。
当解压缩数据不是正常数据(步骤S1414中为否)时,在步骤 S1418中,控制器130可以从存储器装置150重新请求压缩数据。
本文描述的方法、进程和/或操作可以通过将由计算机、处理器、 控制器或其他信号处理装置运行的代码或指令来执行。计算机、处理 器、控制器或其他信号处理装置可以是本文描述的计算机、处理器、 控制器或其他信号处理装置,或者是除了本文描述的元件之外的一种 元件。因为详细描述了形成方法(或计算机、处理器、控制器或其他 信号处理装置的操作)的基础的算法,用于实施方法实施例的操作的 代码或指令可以将计算机、处理器、控制器或其他信号处理装置转换 为用于执行本文的方法的专用处理器。
当至少部分地以软件实施时,控制器、处理器、装置、模块、管 理器、单元、压缩器、解压缩器、多路复用器、生成器、逻辑、接口、 解码器、驱动器以及其他信号生成和信号处理特征可以包括例如用于 存储待由例如计算机、处理器、微处理器、控制器或其他信号处理装 置运行的代码或指令的存储器或其他存储装置。计算机、处理器、微 处理器、控制器或其他信号处理装置可以是本文描述的计算机、处理 器、微处理器、控制器或其他信号处理装置,或者是除了本文描述的 元件之外的一种元件。因为详细描述了形成方法(或计算机、处理器、 微处理器、控制器或其他信号处理装置的操作)的基础的算法,用于 实施方法实施例的操作的代码或指令可以将计算机、处理器、控制器 或其他信号处理装置转换为用于执行本文描述的方法的专用处理器。
虽然出于说明的目的已经描述了各个实施例,但是对于本领域技 术人员将显而易见的是,在不脱离如所附权利要求书所限定的本发明 的精神和范围的情况下,可以进行各种改变和修改。可以组合实施例 以形成附加的实施例。

Claims (22)

1.一种存储器装置,包括:
多个存储器单元;
软读取逻辑,响应于来自控制器的软读取命令,通过从所述多个存储器单元读取数据来生成软数据,所述软数据包括至少一个主要符号和至少一个次要符号;
压缩器,通过以下方式生成压缩数据:
将所述软数据中包括的多个源字母表之中的主要源字母表编码为具有第二长度的代码字母表,所述主要源字母表包括所述主要符号按第一长度的重复,并且
将次要源字母表编码为长度长于所述第二长度的代码字母表,所述次要源字母表包括所述主要符号按短于所述第一长度的长度的重复,并且以一个次要符号结尾;以及
接口,将所述压缩数据提供到所述控制器。
2.根据权利要求1所述的存储器装置,其中所述压缩器基于在一个或多个压缩表之中选择的一个压缩表来生成所述压缩数据,每个压缩表指示所述主要源字母表和所述次要源字母表与相应的代码字母表之间的关系。
3.根据权利要求2所述的存储器装置,进一步包括压缩方法选择器,所述压缩方法选择器存储所述压缩表,并且根据所述主要符号的值、所述次要符号的值和所述第一长度的值来选择所述压缩表之中的一个压缩表。
4.根据权利要求3所述的存储器装置,
其中所述压缩方法选择器基于错误率信息来选择具有所述第一长度的特定值的压缩表,并且
其中所述错误率信息包括先前压缩数据的长度信息和关于从所述先前压缩数据解压缩的数据中检测到的错误位的数量的信息中的至少任意一个。
5.根据权利要求4所述的存储器装置,其中所述压缩方法选择器进一步基于从所述存储器单元读取数据所通过的软读取电压来选择具有所述第一长度的所述特定值的压缩表。
6.根据权利要求3所述的存储器装置,其中所述压缩方法选择器基于所述软数据中包括的所述主要符号和所述次要符号的数量以及所述主要符号和所述次要符号的值来选择具有所述主要符号的特定值和所述次要符号的特定值的压缩表。
7.根据权利要求6所述的存储器装置,
其中所述软数据是包括每存储器单元多位可靠性信息的多位软数据,
其中所述压缩器进一步将所述软数据划分为偶数位数据和奇数位数据,
其中所述压缩方法选择器进一步基于所述偶数位数据和所述奇数位数据中的每一个的错误率信息来针对所述偶数位数据和所述奇数位数据中的每一个选择所述压缩表,
其中所述压缩器针对所述偶数位数据和所述奇数位数据中的每一个生成压缩数据,并且
其中针对所述偶数位数据和所述奇数位数据中的每一个的所述错误率信息包括针对所述偶数位数据和所述奇数位数据中的相应一个的先前压缩数据的长度信息和关于从所述先前压缩数据解压缩的数据中检测到的错误位的数量的信息中的至少任意一个。
8.根据权利要求6所述的存储器装置,
其中所述软数据是包括每存储器单元的非二进制可靠性信息的非二进制软数据,
其中所述压缩方法选择器进一步基于错误率信息和用于指示所述非二进制可靠性信息的符号的数量来选择所述压缩表,并且
其中所述错误率信息包括先前压缩数据的长度信息和关于从所述先前压缩数据解压缩的数据中检测到的错误位的数量的信息中的至少任意一个。
9.根据权利要求1所述的存储器装置,
其中具有所述第二长度的代码字母表不是长度长于所述第二长度的代码字母表的前缀,并且
其中由不同的次要源字母表编码的代码字母表具有不同的值。
10.根据权利要求9所述的存储器装置,
其中具有所述第二长度的代码字母表是“0”,并且
其中长度长于所述第二长度的代码字母表的第一数字是“1”。
11.根据权利要求10所述的存储器装置,
其中所述压缩器基于一个或多个压缩表之中选择的一个压缩表来生成所述压缩数据,每个压缩表指示所述主要源字母表和所述次要源字母表与相应的代码字母表之间的关系,
其中,在所述压缩表的每一个中,所述次要源字母表的总数量取决于所述第一长度,
其中长度长于所述第二长度的代码字母表的长度取决于所述次要源字母表的总数量。
12.根据权利要求1所述的存储器装置,
其中所述主要符号最有可能在所述软数据中出现,并且
其中所述次符号是除所述主要符号之外的符号。
13.根据权利要求12所述的存储器装置,其中所述主要符号是可靠性强于所述次要符号的符号。
14.根据权利要求1所述的存储器装置,其中所述压缩器进一步通过以下方式生成所述压缩数据:
将结束数据添加到所述软数据的末尾,并且
将由所述结束数据和剩余符号构成的组块编码为所述次要源字母表,所述剩余符号与所述结束数据连续并且不属于所述软数据中的所述主要源字母表或所述次要源字母表。
15.根据权利要求14所述的存储器装置,其中所述结束数据是所述次要符号。
16.根据权利要求1所述的存储器装置,其中所述压缩器进一步通过即时检查所述软数据内的符号来从所述软数据中检测所述主要源字母表和所述次要源字母表。
17.一种存储器系统,包括:
存储器装置;以及
控制器,将软读取命令和错误率信息提供到所述存储器装置,其中所述存储器装置包括:
逻辑,响应于所述软读取命令来生成包括至少一个主要符号和至少一个次要符号的软数据,
选择器,基于所述软读取命令和所述错误率信息来选择多个压缩表中的任意一个,每个压缩表指示源字母表和相应的代码字母表之间的关系,
压缩器,通过根据所选择的压缩表将从所述软数据中检测到的所述源字母表编码为相应的代码字母表来生成压缩数据,并且
将所述压缩数据提供到所述控制器,
其中在所述多个压缩表中的每一个内,源字母表不是另一源字母表的前缀,
其中在所述多个压缩表中的每一个内的源字母表之中,主要源字母表最有可能出现并且具有最长的长度,并且
其中在所述多个压缩表中的每一个内的代码字母表之中,与所述主要源字母表相对应的代码字母表具有最小的长度。
18.根据权利要求17所述的存储器系统,其中所述控制器进一步:
根据与所选择的压缩表相对应的解压缩表,通过对所述压缩数据进行解压缩来生成解压缩数据,并且
对所述解压缩数据执行软判决解码。
19.根据权利要求17所述的存储器系统,其中所述压缩器进一步通过以下方式生成所述压缩数据:
将结束数据添加到所述软数据的末尾,并且
将由所述结束数据和剩余符号构成的组块编码为从所述软数据中检测到的源字母表中的一个,所述剩余符号与所述结束数据连续并且不属于所述软数据中的所述主要源字母表。
20.根据权利要求19所述的存储器系统,
其中所述控制器进一步:
通过对所述压缩数据进行解压缩生成解压缩数据,并且
当所述解压缩数据具有预定长度并且在所述解压缩数据的末尾具有所述结束数据时,对所述解压缩数据执行软判决解码,并且
其中所述预定长度为所述软数据的长度与所述结束数据的长度之和。
21.根据权利要求20所述的存储器系统,其中所述控制器进一步在所述解压缩数据不具有所述预定长度或在所述解压缩数据的末尾没有所述结束数据时,从所述存储器装置请求所述压缩数据。
22.一种数据系统,包括:
压缩器,通过参考表对原始序列进行压缩,所述原始序列包括至少第一符号和第二符号;以及
解压缩器,通过参考所述表从压缩后的序列中恢复所述原始序列,
其中所述表包括不同值的原始字母表和相应的不同值的压缩字母表,字母表是根据霍夫曼编码方案定义的,
其中各种长度的所述原始字母表中的每一个以所述第一符号和所述第二符号之中的一个结束,并且所述原始字母表的剩余部分由所述第一符号的重复构成,并且
其中与以所述第一符号结尾的所述原始字母表相对应的所述压缩字母表短于具有相同长度的其他压缩字母表。
CN202110763317.0A 2020-11-25 2021-07-06 存储器装置和存储器系统 Withdrawn CN114550784A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0159958 2020-11-25
KR1020200159958A KR20220072398A (ko) 2020-11-25 2020-11-25 메모리 장치 및 메모리 시스템

Publications (1)

Publication Number Publication Date
CN114550784A true CN114550784A (zh) 2022-05-27

Family

ID=81658236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110763317.0A Withdrawn CN114550784A (zh) 2020-11-25 2021-07-06 存储器装置和存储器系统

Country Status (3)

Country Link
US (1) US11977771B2 (zh)
KR (1) KR20220072398A (zh)
CN (1) CN114550784A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847342B2 (en) * 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9882678B2 (en) * 2014-09-23 2018-01-30 Cavium, Inc. Method and apparatus for improving data integrity using compressed soft information
US10733047B2 (en) * 2018-09-28 2020-08-04 Sandisk Technologies Llc Hard and soft bit data from single read
US11036582B2 (en) * 2019-09-27 2021-06-15 Western Digital Technologies, Inc. Uncorrectable error correction code (UECC) recovery time improvement
US11620050B2 (en) * 2020-09-25 2023-04-04 Sandisk Technologies Llc Soft data compression for non-volatile memory

Also Published As

Publication number Publication date
US20220164143A1 (en) 2022-05-26
US11977771B2 (en) 2024-05-07
KR20220072398A (ko) 2022-06-02

Similar Documents

Publication Publication Date Title
US11756643B2 (en) Apparatus and method for correcting an error in data transmission of a data processing system
US20210279180A1 (en) Apparatus and method for controlling map data in a memory system
KR20220001222A (ko) 베드 블록을 처리하는 메모리 시스템 및 동작 방법
US11526298B2 (en) Apparatus and method for controlling a read voltage in a memory system
US11245420B2 (en) Apparatus and method for recovering a data error in a memory system
US11762734B2 (en) Apparatus and method for handling a data error in a memory system
CN113314179A (zh) 用于执行读取操作的存储器系统及其操作方法
CN113010098A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
US11360697B2 (en) Apparatus and method for encoding and decoding operations to protect data stored in a memory system
US11620213B2 (en) Apparatus and method for handling data stored in a memory system
US20220171564A1 (en) Apparatus and method for maintaining data stored in a memory system
CN114661226A (zh) 用于传输由非易失性存储器系统生成的元数据的装置和方法
CN113849121A (zh) 用于访问条带形式的数据的存储器系统及其操作方法
US11977771B2 (en) Memory device and memory system
US11442811B1 (en) Apparatus and method for using an error correction code in a memory system
US20230073200A1 (en) Apparatus and method for controlling a shared memory in a data processing system
US11941289B2 (en) Apparatus and method for checking an error of a non-volatile memory device in a memory system
US11645002B2 (en) Apparatus and method for controlling and storing map data in a memory system
US20240126462A1 (en) Apparatus and method for managing map data between host and memory system
US11854657B2 (en) Memory device and memory system supporting interleaving operation and operation method thereof
US20230402071A1 (en) Apparatus and method for reading data based on a program status of a non-volatile memory device
US20230153032A1 (en) Apparatus and method for improving data input/output performance of storage
CN113126897A (zh) 提高存储器系统的输入和输出吞吐量的设备和方法
CN114817080A (zh) 用于获得存储器系统中空闲存储块的设备和方法
CN115145475A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20220527