CN114168377A - 存储器系统、半导体存储装置及数据读出方法 - Google Patents

存储器系统、半导体存储装置及数据读出方法 Download PDF

Info

Publication number
CN114168377A
CN114168377A CN202110755434.2A CN202110755434A CN114168377A CN 114168377 A CN114168377 A CN 114168377A CN 202110755434 A CN202110755434 A CN 202110755434A CN 114168377 A CN114168377 A CN 114168377A
Authority
CN
China
Prior art keywords
data
decoding
read
memory
circuit
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
Application number
CN202110755434.2A
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Publication of CN114168377A publication Critical patent/CN114168377A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Communication Control (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明的实施方式提供能够不减小数据的编码率而进行随机读取的存储器系统、半导体存储装置及数据读出方法。根据实施方式,存储器系统(1)具有NAND存储器(2)和存储控制器(3)。NAND存储器(2)具有:编码器(14),将写入数据分割为码字,并变换为包含所生成的多个码字的数据帧,按照每个码字,生成用于错误检测校正的数据帧的水平方向的奇偶校验数据,来进行写入数据的编码;以及解码器(15)。NAND存储器(2)的控制电路(13)当接收到读出指令时,对解码器(15)进行控制,以对读出对象数据TD进行使用了水平方向的奇偶校验数据的硬解码,当读出对象数据TD的硬解码成功时,将解码后的读出对象数据TD向存储控制器(3)输出。

Description

存储器系统、半导体存储装置及数据读出方法
本申请基于日本专利申请2020-153283号(申请日:2020年9月11日)主张优先权。本申请通过参照该基础申请而包含其全部内容。
技术领域
本发明的实施方式涉及存储器系统、半导体存储装置及数据读出方法。
背景技术
在使用了非易失性存储器的存储器系统中,以规定的尺寸进行数据的写入和读出。存储器系统具有错误检测校正电路。在错误检测校正电路中,为了进行所读出的数据的错误检测校正,进行使用了错误检测校正码的编码及解码。如果能够从非易失性存储器以比该规定的尺寸小的尺寸将数据随机地读出,则可期待读出性能的提高。
但是,数据尺寸越小,数据的编码率越小,数据的转送效率越差,并且存储器系统的成本也上升。
此外,根据使用了非易失性存储器的设备的要求规格,在必须保证错误校正率的情况下,需要对数据附加循环冗余校验(Cyclic Redundancy Check;以下称作CRC)码等,但如果附加CRC码等,则编码率进一步变差。
发明内容
本发明的实施方式的目的是提供一种能够不减小数据的编码率而进行随机读取的存储器系统、半导体存储装置及数据读出方法。
技术方案的存储器系统具有:非易失性存储器;控制器,对数据向上述非易失性存储器的写入及读出进行控制;编码器,设在上述非易失性存储器中,将向上述非易失性存储器的写入数据分割为规定比特数的单位数据,并变换为包含多个所生成的上述单位数据在内的数据帧,按照每个上述单位数据,生成用于错误检测校正的上述数据帧的第1奇偶校验数据以及与上述第1奇偶校验数据不同的上述数据帧的第2奇偶校验数据,来进行上述写入数据的编码;第1解码器,设在上述非易失性存储器中,进行从上述非易失性存储器读出的读出数据的解码;以及控制电路,设在上述非易失性存储器中,当从上述控制器接收到读出指令时,控制上述第1解码器,以对从上述非易失性存储器读出的读出对象数据进行使用了上述第1奇偶校验数据的第1解码,在上述读出对象数据的上述第1解码成功时,将解码后的上述读出对象数据向上述控制器输出。
附图说明
图1是表示有关实施方式的存储器系统的结构的框图。
图2是表示有关实施方式的NAND型闪存的详细的结构的框图。
图3是用来说明有关实施方式的NAND型闪存的1个存储单元阵列的结构的电路图。
图4是用来说明有关实施方式的来自主机装置的用户数据的编码的图。
图5是用来说明有关实施方式的乘积码帧的结构例的图。
图6是表示有关实施方式的执行直接法运算的编码器及解码器的结构的电路图。
图7是表示有关实施方式的译码器的结构的电路图。
图8是用来说明有关实施方式的比特错误率(BER)监视器在直方图生成中使用的数据区域的图。
图9是表示有关实施方式的直方图的例子的图。
图10是用来说明有关实施方式的比特错误率(BER)的直方图计算的定时的曲线图。
图11是表示有关实施方式的随机读取的情况下的存储器系统的错误检测校正处理的动作的流程的例子的流程图。
图12是表示有关实施方式的子页数据中包含多个对象数据的图。
图13是表示有关实施方式的硬解码和软解码中的检测到的原始的比特错误率与不可校正比特错误率的关系的示意性的曲线图。
图14是表示有关实施方式的存储单元阵列部具有16个平面的NAND存储器的结构的框图。
图15是表示有关实施方式的NAND存储器的结构的组装图。
图16是表示有关实施方式的在16平面的各平面中存在1个随机读取对象数据的情况的图。
图17是表示有关实施方式的在16平面的各平面中存在2个随机读取对象数据的情况的图。
图18是表示有关实施方式的在16平面的各平面中存在4个随机读取对象数据的情况的图。
图19是表示有关实施方式的包括存储控制器和多个NAND存储器的存储器系统的结构的图。
图20是表示有关实施方式的变形例1的存储器系统的结构的框图。
图21是用来说明有关实施方式的变形例2的多个字线中的多个对象数据被随机读取的情况的图。
图22是用来说明有关实施方式的变形例2的比特错误率(BER)监视器的关于4条字线的直方图计算的定时的曲线图。
具体实施方式
以下,参照附图说明实施方式。
(结构)
(整体结构)
图1是表示有关本实施方式的存储器系统的结构的框图。存储器系统1具备作为非易失性存储器的NAND型闪存(以下称作NAND存储器)2和存储控制器3。
存储器系统1根据来自用虚线表示的主机装置(以下也单称作主机)4的请求,将用户数据存储到NAND存储器2中,或将存储在NAND存储器2中的用户数据向主机4输出。主机4例如是个人计算机、智能电话。具体而言,存储器系统1能够根据来自主机的写入请求而以规定的页单位(例如16KB(千字节))将用户数据写入、根据来自主机的读出请求将比该规定的页小的尺寸(例如64B(字节))的用户数据随机地读出。
存储器系统1既可以是将存储控制器3和NAND存储器2构成为1个封装的存储卡等,也可以是SSD(Solid State Drive)等。在图1中,存储器系统1被表示为与主机4连接的状态。
NAND存储器2是包括存储单元阵列部11、错误检测校正(Error Check andCorrect)电路(以下称作ECC电路)12和控制电路13的半导体存储装置。
存储单元阵列部11包括多个存储单元阵列,各存储单元阵列是能够存储2值或4值以上的数据的非易失性存储区域。用户数据能够非易失地存储到存储单元阵列部11的多个存储单元阵列中。关于存储单元阵列部11的结构在后面叙述。
ECC电路12包括编码器14、解码器15和比特错误率(Bit Error Rate)监视器(以下称作BER监视器)16。ECC电路12是搭载在NAND存储器2中的片上(on chip)ECC电路。即,NAND存储器2具有错误检测校正功能。
ECC电路12的编码器14是在将来自存储控制器3的用户数据向存储单元阵列部11写入时生成错误检测校正码(即奇偶校验数据)并向用户数据附加的电路。存储控制器3将用户数据以规定的尺寸的页单位向NAND存储器2写入。
编码器14对于被再构成为包含多个规定尺寸的码字CW(code word,后述)在内的乘积码帧的页数据,生成水平方向及垂直方向的奇偶校验数据。规定尺寸比页数据的尺寸小。
编码器14进行乘积码帧的水平方向的编码和乘积码帧的垂直方向的编码。
在本实施方式中,编码器14以子页数据单位(例如4KB)生成乘积码帧中的水平方向及垂直方向的奇偶校验数据。规定尺寸(例如64B)比子页数据(例如4KB)的尺寸小。
这里,编码器14进行基于能够将4比特以下的比特校正的BCH码的编码。
解码器15对从存储单元阵列部11读出的用户数据的错误进行检测并校正,输出用户数据。存储控制器3根据与读出请求有关的地址,确定NAND存储器2的物理地址,向NAND存储器2输出用于随机读取的读出指令。解码器15与该读出指令对应地将被读出的用户数据解码,将解码成功的用户数据向存储控制器3输出。
解码器15进行基于由“0”或“1”表现的作为二值信息的硬信息(即硬比特(HB))的硬解码。解码器15如后述那样,能够按照每个码字CW来进行数据的错误检测校正,并且按照每个码字CW输出进行了错误检测校正时的校正比特数的数据。
具体而言,解码器15进行乘积码帧的水平方向的解码和后述的乘积码帧的垂直方向的解码。例如,当页数据的尺寸为16KB左右时,码字CW具有8B到10B的尺寸。水平方向的解码通过例如解4次式的直接法运算来进行。
BER监视器16是具有在解码器15中进行了水平方向的解码时的校正比特数的直方图的生成功能的电路。关于BER监视器16的处理内容在后面叙述。
控制电路13对包括错误检测校正电路12的NAND存储器2的各部的动作进行控制。
存储控制器3是对数据向NAND存储器2的写入及数据从NAND存储器2的读出进行控制的控制器。具体而言,存储控制器3根据来自主机4的写入请求,对NAND存储器2进行控制。存储控制器3将用户数据以上述的规定的尺寸(例如16KB)的页单位向NAND存储器2写入。此外,存储控制器3根据来自主机4的读出请求,对NAND存储器2进行控制。有关来自主机4的读出请求的用户数据的尺寸如上述那样,是比写入时的页数据的规定的尺寸(例如16KB)小的码字CW的尺寸。
存储控制器3包括处理器21、ECC电路22、数据缓存器23、主机接口电路(以下称作主机I/F)24和存储器接口电路(以下称作存储器I/F)25。处理器21、ECC电路22、数据缓存器23、主机I/F24和存储器I/F25通过内部总线26相互连接。
处理器21综合地控制存储器系统1的各部。处理器21在经由主机I/F24接受到来自主机4的请求的情况下,进行按照该请求的控制。例如,处理器21按照来自主机4的请求,向存储器I/F25指示用户数据向NAND存储器2的写入。此外,处理器21按照来自主机4的请求,向存储器I/F25指示用户数据从NAND存储器2的读出。
此外,处理器21在从主机4接收到用户数据的写入请求的情况下,对于保存在数据缓存器23中的用户数据,决定NAND存储器2上的存储区域(存储器区域)。即,处理器21管理用户数据的写入目的地。在地址变换表(未图示)中存储有从主机4接收到的用户数据的逻辑地址与表示存储有该用户数据的NAND存储器2上的存储区域的物理地址之间的对应关系的信息。
此外,处理器21在从主机4接收到读出请求的情况下,使用上述的地址变换表将由读出请求指定的逻辑地址变换为物理地址。处理器21向存储器I/F25指示数据从该物理地址的读出。
ECC电路22对在NAND存储器2中解码不成功的数据进行解码。由此,错误检测校正电路22具备解码器22a。解码器22a通过使用了追赶(Chase)解码法等的软解码,来进行数据的解码。软解码是使用通过多次的读出得到的数据的为“0”或“1”的概率的信息(软信息(软比特))来进行解码的处理。
数据缓存器23为了将来自主机4的用户数据向NAND存储器2存储而将来自主机4的用户数据暂时存储。来自主机4的用户数据被转送给内部总线26并暂时存储到数据缓存器23中。此外,数据缓存器23为了将从NAND存储器2读出的用户数据向主机4发送而将从NAND存储器2读出的用户数据暂时地存储。数据缓存器23例如是SRAM(Static Random AccessMemory)或DRAM(Dynamic Random Access Memory)等的通用存储器。
主机I/F24实施遵循与主机4之间的接口规格的处理。主机I/F24将从主机4接收到的请求及用户数据向内部总线26输出。主机I/F24将从NAND存储器2读出的用户数据及来自处理器21的响应等向主机4发送。
存储器I/F25在处理器21的控制下,进行有关于数据向NAND存储器2的写入以及数据从NAND存储器2的读出的处理。
(非易失性存储器的结构)
图2是表示NAND存储器2的详细的结构的框图。NAND存储器2如上述那样,包括存储单元阵列部11、ECC电路12和控制电路13。在图2中,存储单元阵列部11包括多个平面11x。各平面11x包括存储单元阵列11a、行译码器(未图示)和列译码器(未图示)。列译码器具有保存页数据Pd的页缓存器11b。页缓存器11b保存将数据写入时及读出时的页数据Pd。ECC电路12和多个平面11x经由共同总线17连接。
另外,这里存储单元阵列部11包括多个平面11x,但也可以包括1个平面。
NAND存储器2具有设在多个平面11x与共同总线17之间的多个页缓存器装载电路18和多个页缓存器储存电路19。各页缓存器装载电路18将保存在页缓存器11b中的数据装载,向共同总线17输出。各页缓存器储存电路19将来自共同总线17的数据向页缓存器11b保存。
ECC电路12除了上述的编码器14、解码器15及BER监视器16以外,还具有输入数据的ECC输入电路12a和输出数据的ECC输出电路12b。ECC输入电路12a是从共同总线17接收由ECC电路12处理的输入数据并向编码器14等输出的电路。ECC输出电路12b是接收ECC电路12的处理结果数据(编码数据或解码数据)并向共同总线17输出的电路。关于编码器14及解码器15的结构在后面叙述。
共同总线17的总线宽度例如与将码字CW和水平奇偶校验(pbh)合在一起后的数据(以下称作码字单位数据CWU)的比特数相同,能够进行高速的解码。
此外,NAND存储器2具有用来在与存储控制器3之间进行数据(地址及数据)的收发的输入输出接口(以下简称作输入输出I/F)20。输入输出I/F20与共同总线17连接。输入输出I/F20通过多个数据输入输出线而与存储控制器3的存储器I/F25连接。
输入输出I/F20与数据输入输出线DQ0~DQ7连接。输入输出I/F20从数据输入输出线DQ0~DQ7接收地址及数据,向控制电路13输出。控制电路13经由输入输出I/F20从数据输入输出线DQ0~DQ7输出读出数据及各种数据。
控制电路13经由控制信号输入接口(未图示)接收各种控制信号。各种控制信号是芯片使能信号BCE、指令闩锁使能信号CLE、地址闩锁使能信号ALE、写使能信号BWE、读使能信号RE、BRE(RE的互补信号)、写保护信号BWP、数据选通信号DQS、BDQS(DQS的互补信号)。
芯片使能信号BCE被作为NAND存储器2的选择信号使用。指令闩锁使能信号CLE是在将动作指令向寄存器(未图示)取入时使用的信号。地址闩锁使能信号ALE是将地址信息或输入数据向内置寄存器(未图示)取入时使用的信号。写使能信号BWE是用来将输入输出I/F20上的指令、地址及数据向NAND存储器2取入的信号。读使能信号RE、BRE是使数据从输入输出I/F20串行地输出时使用的信号。写保护信号BWP是在NAND存储器2的电源投入时或电源断开时等的输入信号不确定的情况下、为了保护数据免受预想不到的删除或写入而使用的。
另外,在存储器I/F25与输入输出I/F20之间收发地址和数据这两者,但也可以将地址和数据使用共同的信号线收发,或者也可以将地址和数据分别使用地址用信号线和数据用信号线收发。通过将地址和数据分别使用地址用信号线和数据用信号线收发,能够减小数据转送中的延迟。
(存储单元阵列的结构)
接着,对各平面的存储单元阵列的结构进行说明。
在各平面11x中,以被称作页的规定的尺寸进行数据的写入,以被称作块的数据单位进行删除。将与存储单元阵列11a的相同的字线连接的多个存储单元称作存储单元组。在存储单元是单层单元(SLC)的情况下,1个存储单元组对应于1页。在存储单元是多层单元(MLC)的情况下,1个存储单元组对应于多页。此外,各存储单元与字线连接并且也与位线连接。因而,各存储单元能够用识别字线的地址和识别位线的地址来识别。
图3是表示有关本实施方式的存储单元阵列11a的结构的电路图。在本例中,如图示那样,1个块BLK包括例如4个串单元(string unit)SU(SU0~SU3)。此外,各个串单元SU包括多个NAND串NS。
NAND串NS分别包括例如8个存储单元晶体管MT(MT0~MT7)及两个选择晶体管ST1、ST2。各存储单元晶体管MT具备控制栅极和电荷积蓄层,将数据非易失地保持。并且,多个(例如8个)存储单元晶体管MT串联连接在选择晶体管ST1的源极与选择晶体管ST2的漏极之间。图3为了使说明变得简单而表示了1个串单元SU具有8条字线WL的例子。
串单元SU0~SU3各自的选择晶体管ST1的栅极分别与选择栅极线SGD0~SGD3连接。相对于此,串单元SU0~SU3各自的选择晶体管ST2的栅极例如与选择栅极线SGS共同连接。当然,串单元SU0~SU3各自的选择晶体管ST2的栅极也可以按照每个串单元而与不同的选择栅极线SGS0~SGS3连接。此外,处于相同的块BLK内的存储单元晶体管MT0~MT7的控制栅极分别与字线WL0~WL7共同连接。
此外,在存储单元阵列11内处于相同列的多个NAND串NS的选择晶体管ST1的漏极与位线BL(BL0~BL(K-1),其中K是2以上的自然数)共同连接。即,位线BL在多个块BLK间共同地连接多个NAND串NS。进而,多个选择晶体管ST2的源极与源极线SL共同地连接。
即,存储单元阵列11a是共同地连接着各位线BL的多个块BLK的集合体。此外,各块BLK包括多个使各字线WL共用的多个串单元SU。各串单元SU包括与相互不同的多个位线BL连接、并且与相同的选择栅极线SGD连接的多个NAND串NS。
回到图1,NAND存储器2除此以外还具备未图示的驱动器电路、地址寄存器、指令寄存器等。作为定序器的控制电路13通过基于保持在指令寄存器中的指令对NAND存储器2整体的动作进行控制,从而进行向各平面11x的数据的写入处理及从各平面11x的数据的读出处理。
这里,1个存储单元晶体管MT能够保持1比特数据。即,NAND存储器2是所谓单层单元(Single Level Cell,SLC)方式的半导体存储装置。
另外,1个存储单元晶体管MT例如也可以是能够保持多值数据。例如,在1个存储单元晶体管MT能够保持3比特数据的情况下,NAND存储器2是所谓三层单元(Triple LevelCell,TLC)方式的半导体存储装置。将该3比特数据从低位比特起分别称作低位(Lower)比特、中位(Middle)比特及高位(Upper)比特。并且,将一个串单元中的与相同的字线WL连接的多个存储单元晶体管MT保持的低位比特的集合称作低位页,将中位比特的集合称作中位页,将高位比特的集合称作高位页。一个串中的与一个字线连接的多个存储单元晶体管MT构成对低位比特、中位比特及高位比特进行保持的一个页单元。即,对于各页单元,如在图3中用单点划线表示那样分配了3页。数据的写入以页单元为单位进行,数据的读出按照该每个页进行。
在1个存储单元晶体管MT能够保持多值数据的情况下,进行通过所谓低速写入(即高可靠性写入)进行的数据的写入。
(编码)
将作为写入数据的用户数据在NAND存储器2内用编码器14编码并保存。将用户数据用乘积码帧编码。
图4是用来说明来自主机4的用户数据的编码的图。图5是用来说明乘积码帧的结构例的图。
如图4所示,将一次的写入对象数据的用户数据UDd划分为4个子用户数据UD。4个子用户数据UD与后述的4个子页数据PCD对应。将各子用户数据UD通过控制电路13再构成为由多行且多列的数据构成的乘积码帧。
如图5所示,乘积码帧是包含多行规定的尺寸的数据(以下称作码字)CW的数据帧。各码字CW例如具有8B(64比特)至100B(800比特)的范围内的规定的数据尺寸。这里,码字CW的比特数是64B。乘积码帧包括水平方向的奇偶校验比特部PBH和垂直方向的奇偶校验比特部PBV。
另外,如图5所示,CRC用的码部包含在各子用户数据UD中。
奇偶校验比特部PBH是按照每个码字CW在水平方向上附加的多个奇偶校验比特pbh。奇偶校验比特pbh是水平方向的奇偶校验比特。将1个码字CW与奇偶校验比特pbh合在一起后的数据是码字单位数据CWU。在编码器14中,水平方向的奇偶校验比特pbh对于各码字CW,基于BCH(博斯-查德胡里-霍昆格母,Bose-Chaudhuri-Hocquenghem)编码方式而被生成。这里,对于码字CW为64B(即512比特),进行通过能够进行4比特以下的比特校正的BCH码的编码,对码字CW附加奇偶校验比特pbh。
例如,在编码是基于能够进行4比特以下的比特校正的BCH码的编码的情况下,当码字CW长为64B时,用户数据的编码率是0.86,当码字CW长为48B时,用户数据的编码率是0.89。
奇偶校验比特部PBV是对于多个码字单位数据CWU附加的垂直方向的奇偶校验比特。奇偶校验比特部PBV包括与多个码字CW对应的奇偶校验比特pbv1以及与奇偶校验比特部PBH对应的奇偶校验比特pbv2。
垂直方向的奇偶校验比特pbv1、pbv2在垂直方向上通过XOR(排他逻辑和)运算生成。另外,垂直方向的奇偶校验比特也可以基于里德-所罗门(Reed-Solomon)编码方式、BCH编码方式等其他的编码方式生成的。
如图4所示,将用户数据UDd(例如16KB)划分为4个子用户数据UD。按照每个子用户数据UD(例如4KB)生成基于乘积码帧的奇偶校验数据PD。由此,编码器14生成包括子用户数据UD和奇偶校验数据PD在内的4个子页数据PCD。各子页数据PCD是乘积码ECC帧。乘积码ECC帧是乘积码帧单位的ECC处理单位。控制电路13将所生成的4个子页数据PCD向被指定的平面11x的物理地址的字线WL写入。
另外,在图4中,页数据Pd在基于乘积码帧的各子页数据PCD中,具有被划分为来自存储控制器3的子用户数据UD和奇偶校验数据PD这两个数据字段的数据构造,但也可以具有如下的数据构造:将图5所示的按照每个码字CW附加有奇偶校验比特pbh的多个数据串行地结合,并且在最后附加奇偶校验比特部PBV。
包含在水平方向的奇偶校验比特部PBH和垂直方向的奇偶校验比特部PBV中的数据构成奇偶校验数据PD。
如以上这样,编码器14按照每个子用户数据UD制作乘积码帧,计算水平方向及垂直方向的奇偶校验数据。
并且,如图4所示,页数据Pd包括用户数据UDd和水平及垂直方向的奇偶校验数据PD。将各码字CW和对应于该码字的奇偶校验数据PD在页数据Pd中与预先决定的位置建立关联而配置。
如以上这样,控制电路13设在NAND存储器2中,将向NAND存储器2的写入数据划分为规定比特数的单位数据(在上述的例子中是码字CW)。编码器14变换为包括多个单位数据(CW)的乘积码帧。并且,编码器14按照每单位数据(码字CW)生成用于错误检测校正的乘积码帧的水平方向的第1奇偶校验数据和乘积码帧的垂直方向的第2奇偶校验数据,进行写入数据的编码。
页数据Pd经由共同总线17被向存储单元阵列部11输出。
(解码)
解码器15将被编码的用户数据解码。即,解码器15设在NAND存储器2中,进行从NAND存储器2的多个平面11x读出的读出数据的解码。如上述那样,解码器15进行基于被用“0”或“1”表现的二值信息即硬信息的硬解码。
解码器15具有对水平方向上的码字CW通过直接法进行4比特以下的比特校正的第1解码处理部、以及进行乘积码帧的垂直方向上的解码处理的第2解码处理部。解码器15由于通过直接法进行4比特以下的比特校正,所以能够高速地进行水平方向的解码处理。
解码器15的第1解码处理部通过直接法运算进行码字CW的水平方向的解码。例如在“发现具有向BCH解码的应用的路线的混合法”R.T,Chien,B.D.Cunningham,I.B.Oldham著,关于信息理论的IEEE处理,15卷,No.2,329~335页,1969年(R.T,Chien,B.D.Cunningham,I.B.Oldham,“Hybrid methods for finding roots of a polynomialwith application to BCH decoding”IEEE Transactions on Information Theory,vol15,no.2,pp.329-335、1969)中记载有直接法运算。
另外,解码器15的第2解码处理部对乘积码帧进行垂直方向的复合。
解码器15在各码字CW的水平方向的解码中进行了错误检测校正时,输出校正比特数的数据。该校正比特数的数据在后述的BER监视器16中生成直方图时使用。
接着,说明编码器14及解码器15的结构,但对关于直接法的水平方向的编码处理和解码处理进行说明,垂直方向的编码处理和解码处理由于通过XOR运算等进行,所以省略说明。
图6是表示执行直接法运算的编码器14及解码器15的结构的电路图。编码器14及解码器15由图6所示的电路30实现。电路30具有输入电路31、输出电路32、缓存器33、奇偶校验/预校验子(pre-syndrome)计算电路34、校验子(syndrome)生成电路35及译码器36。
在电路30中,被输入输入数据IDATA和模式数据MODE。电路30输出被编码后的数据或被解码后的数据。模式数据MODE表示是使电路30作为编码器14动作的编码模式还是使电路30作为解码器15动作的译码模式。模式数据MODE被从控制电路13给出。
输入电路31是将输入数据IDATA取入的电路。在编码模式时,输入数据IDATA是码字CW的数据。在译码模式时,输入数据IDATA是包括附加有水平方向奇偶校验的码字CW的编码数据(码字单位数据CWU)。
输出电路32是将编码数据或解码数据作为输出数据ODATA输出的电路。在译码模式时,输出数据ODATA是码字CW的数据。在编码模式时,是包括附加有水平方向奇偶校验的码字CW的编码数据。
缓存器33是暂时保存输入数据IDATA的电路。
奇偶校验/预校验子计算电路34在将输入数据IDATA(例如64B的码字CW)编码时计算奇偶校验并输出,在将输入数据IDATA解码时计算预校验子并输出。
具体而言,当动作模式是编码模式时,奇偶校验/预校验子计算电路34生成奇偶校验比特。将所生成的奇偶校验比特向输出电路32输出。输出电路32将编码数据作为输出数据ODATA输出。编码数据是对保存在缓存器33中的输入数据附加了奇偶校验比特的码字单位数据CWU。
当动作模式是译码模式时,奇偶校验/预校验子计算电路34计算预校验子,向校验子生成电路35输出。
当动作模式是译码模式时,校验子生成电路35基于预校验子生成校验子。这里,由于将4比特以下的比特校正,所以校验子是S1、S3、S5、S7。
译码器36是基于所生成的校验子而输出表示错误比特位置的地址或校正失败的电路。
图7是表示译码器36的结构的电路图。译码器36具有控制电路41、错误判定电路42、第1探索电路43、第2探索电路44及地址变换电路45。
对于译码器36,输入校验子,译码器36输出错误位置的地址信息。
控制电路41对译码器36的整体的动作进行控制。
错误判定电路42输入校验子,判定错误的校正比特数。错误判定电路42也计算用来探索比特错误位置的各种中间信息。错误判定电路42向第1探索电路43和第2探索电路44输出校验子和中间信息。错误判定电路42向控制电路41输出校正比特数的数据。
在BER监视器16中使用该校正比特数的数据。
控制电路41基于校正比特数,将第1探索电路43或第2探索电路44起动。当校正比特数是1或2时,将第1探索电路43起动,不将第2探索电路44起动。当校正比特数是3或4时,不起动第1探索电路43,而起动第2探索电路44。
在第1探索电路43中,被输入校验子S1和中间信息。第1探索电路43进行1比特或2比特的错误的错误位置探索。
在第2探索电路44中,被输入校验子S1和中间信息。第2探索电路44进行3比特或4比特的错误的错误位置探索。
即,解码器15具有判定错误数的错误判定电路42、探索第1错误数中的错误比特位置的第1探索电路43、以及探索与第1错误数不同的第2错误数中的错误比特位置的第2探索电路44。
此外,控制电路41基于校正比特数,进行对于地址变换电路45的指示。如果校正比特数是1或2,则向地址变换电路45指示输入第1探索电路43的输出。如果校正比特数是3或4,则向地址变换电路45指示输入第2探索电路44的输出。
地址变换电路45从来自第1探索电路43或第2探索电路44的错误位置信息,变换为输入数据IDATA中的错误比特位置的地址信息。地址变换电路45还输出校正比特数的信息和译码失败的信息。
控制电路41如果从错误判定电路42接收到校正比特数是0的信息,则输出就绪状态信息(DEC_READY)。控制电路41基于就绪状态信息(DEC_READY),能够使第1探索电路43及第2探索电路44的动作停止。结果,发生第1探索电路43和第2探索电路44不耗电的状态,所以能够降低电流效率。
如以上这样,当由错误判定电路42判定出的错误数是第1错误数时,第1探索电路43动作而第2探索电路44不动作,当由错误判定电路42判定出的错误数是第2错误数时,第1探索电路43不动作而第2探索电路44动作,当由错误判定电路42判定出的错误数是0时,控制第1探索电路43及第2探索电路44以使第1探索电路43及第2探索电路44不动作。
在本实施方式中,存储控制器3能够根据来自主机4的数据的读出请求而进行随机读取。在本说明书中,随机读取是将1页中的一部分的数据以例如几字节单位到100字节单位进行读出的处理。即,随机读取是指将1页内或1子页内的较小的数据尺寸数据(例如64B)读出。
(BER监视)
BER监视器16是生成校正比特数的直方图的电路,所述校正比特数是针对包括随机读取的读出对象数据在内的页数据Pd的一部分的数据而判定出的校正比特数。这里,如果页数据Pd是16KB左右,则页数据Pd的一部分是开头的512B。
控制电路13如果从存储控制器3接收到读出指令,则将包括在该指令中指定的地址在内的页数据Pd或子页数据PCD中的预先决定的区域的数据向解码器15供给。
图8是用来说明BER监视器16在直方图生成中使用的数据区域的图。多个页数据Pd被存储于NAND存储器2。当包含随机读取的对象地址的页数据Pd(例如在图8中是字线WL4)被读出时,页数据Pd或子页数据PCD中的规定的区域PB的数据被作为BER监视区域向解码器15供给。这里,如图8所示,规定的区域(以下称作BER监视区域)PB的数据是页数据Pd的开头的512B数据。即,BER监视区域PB的数据是数据从NAND存储器2读出的读出单位的数据的一部分。
控制电路13将BER监视区域PB的多个码字CW向解码器15供给。解码器15使用作为ECC奇偶校验的奇偶校验比特pbh,将被输入的BER监视区域PB的各码字CW解码,输出校正比特数的数据。解码器15如上述那样,将在解码处理中得到的校正比特数的数据输出。由此,解码器15输出关于包含在被输入的BER监视区域PB中的多个码字CW的校正比特数的数据。
BER监视器16对在解码器15中判定出的多个码字CW的校正比特数的数据进行处理,例如通过管线(pipeline)处理电路进行处理,能够得到校正比特数的直方图数据。由此,控制电路13基于解码器15输出的校正比特数的数据,生成校正比特数的直方图。
如以上这样,包含读出对象数据TD的存储单元阵列部11的存储区域的一部分的数据按照作为单位数据的每个码字CW而被解码器15解码。设在NAND存储器2中的BER监视器16基于各单位数据的校正比特数,计算比特错误率(BER),并监视比特错误率(BER)。
图9是表示直方图的例子的图。根据解码器15输出的校正比特数的数据,控制电路13生成图9所示那样的各校正比特数的直方图。图9表示在BER监视区域PB中校正比特数为“0”的码字CW较多、少量存在校正比特数为“1”的码字CW、没有校正比特数为“2”以上的码字CW的例子。
如图9所示,即使校正比特数为“0”的比例较高、校正比特数为“1”以较少的比例存在,在校正比特数为“2”以上的比例是“0”的情况下,也可以认为包含在该页数据Pd中的随机读取对象数据的解码时的错误校正率较低。相反,在校正比特数为“2”以上的比例比规定的比例高的情况下,可以认为包含在该页数据Pd中的随机读取对象数据的解码时的错误校正率有可能不低。控制电路13根据BER监视器16生成的直方图的数据,能够判定包含在页数据Pd或子页数据PCD中的随机读取对象数据的解码时的错误校正率是低还是不低。
例如,控制电路13在校正比特数为“2”以上的比例是0%、校正比特数为“1”的比例是10%以下、其余是校正比特数为“0”的情况下,判定为包含在页数据Pd或子页数据PCD中的随机读取对象数据的解码时的错误校正率较低,在其以外的情况下,判定为包含在页数据Pd或子页数据PCD中的随机读取的对象数据的解码时的错误校正率不低。
这里,控制电路13将与每个校正比特数相对于整体的比例有关的规定的阈值与检测到的各校正比特数相对于整体的比例比较,判定包含在页数据Pd或子页数据PCD中的随机读取的对象数据的解码时的错误校正率是否较低。
另外,解码时的错误校正率是否较低,也可以通过检测到的各校正比特数的值与规定的值(阈值)的比较来判定。
在本实施方式中,在NAND存储器2中,由BER监视器16计算直方图数据(包括随机读取对象数据在内的页数据Pd或子页数据PCD的校正比特数数据)。NAND存储器2在基于直方图数据而判定为解码时的错误校正率较低的情况下,当编码器14成功进行了基于硬解码的水平方向解码(以下,也称作水平方向HB解码)时,将1或2以上的码字CW的数据原样作为随机读取对象数据向存储控制器3输出。
进而,如后述那样,在该水平方向HB解码不成功的情况下,NAND存储器2通过乘积码帧的垂直方向的硬解码,进行包含随机读取对象数据在内的页数据Pd或子页数据PCD的解码。当基于硬解码的垂直方向解码(以下也称作垂直方向HB解码)成功时,NAND存储器2将页数据Pd或子页数据PCD和解码后的数据向存储控制器3输出。
此外,在乘积码帧的垂直方向HB解码也不成功的情况下,NAND存储器2将包含随机读取对象数据在内的页数据Pd或子页数据PCD的数据向存储控制器3输出,在存储控制器3中进行基于乘积码帧的软解码的水平方向解码(以下也称作水平方向SB解码)。
进而,在存储控制器3中,在水平方向的软解码也不成功的情况下,在存储控制器3中,进行基于乘积码帧的软解码的垂直方向解码(以下也称作垂直方向SB解码)。
由BER监视器16进行的BER计算既可以对于随机读取处理顺序地执行,也可以与随机读取处理并行地执行。
图10是用来说明BER监视器16中的直方图计算的定时的曲线图。是表示将1页(16KB)的数据中的12.5%(2KB)的数据读出的情况下的定时的图。图10是情形1、情形2和情形3的时序图。情形1是串行地进行本实施方式的直方图计算和随机读取的情形。情形2是并行地进行本实施方式的直方图计算和随机读取的情形。情形3是在存储控制器3中将不进行乘积编码而按照每64B进行了BCH编码的数据解码并将2KB的数据读出的情形。
情形1中,使用页数据Pd中的BER监视区域PB的多个码字CW(24B的情况)进行校正比特数的数据的直方图计算后,进行2KB的数据的读出。在规定的条件下的申请人的模拟计算中,1页中的2KB的数据的读出花费了2825ns(纳秒)。
情形2中,并行地执行使用了页数据Pd中的BER监视区域PB的多个码字CW(24B的情况)后的校正比特数的数据的直方图计算和2KB的数据的读出。在规定的条件下的申请人的模拟计算中,1页中的2KB的数据的读出花费了2600ns(纳秒)。
情形3中,在规定的条件下的申请人的模拟计算中,1页的2KB的数据的读出花费了5160ns(纳秒)。
图11是表示随机读取的情况下的存储器系统1中的错误检测校正处理的动作的流程的例子的流程图。
如果从主机4接受到数据的读出请求,则存储控制器3的处理器21将与读出请求有关的数据(即对象数据)的从逻辑地址变换而得到的物理地址(包含对象数据的存储区域的物理地址)和读出指令向NAND存储器2输出。这里,说明将1页数据Pd中的1个子页数据PCD中的多个对象数据读出的情况。
图12是表示在子页数据PCD中包含多个对象数据TD的图。如图12所示,在子页数据PCD(4KB)中存在多个对象数据TD。
控制电路13确定多个物理地址的页,将该物理地址的页数据Pd从存储单元阵列部11读出。控制电路13向BER监视器16指示被读出的页数据Pd的BER监视区域PB的校正比特数的直方图的生成。如果控制电路13从BER监视器16接收到直方图数据,则执行图11的处理。
控制电路13根据来自BER监视器16的直方图数据,判定包含多个对象数据TD在内的页数据Pd的比特错误率(BER)是否比规定的比例低(步骤(以下简称作S)1)。
如上述那样,例如在校正比特数为“2”以上的比例是0%、校正比特数为“1”的比例是10%以下、其余是校正比特数为“0”的情况下,控制电路13判定为包含对象数据TD在内的页数据Pd的比特错误率(BER)较低。在其以外的情况下,控制电路13判定为包含对象数据TD在内的页数据Pd的比特错误率(BER)不低。
在比特错误率比规定的比例低的情况下(S1:是),控制电路13根据子页数据PCD的乘积码帧,对包含对象数据TD的地址的数据在内的各码字CW,执行水平方向的硬解码(S2)。S2的处理是水平方向HB解码。
在S2后,判定包含多个对象数据TD的地址的数据在内的多个码字CW是否全部被正确地解码(S3)。在多个码字CW全部被正确地解码的情况下(S3:是),控制电路13认为包含多个对象数据在内的多个码字CW的解码成功,不赋予奇偶校验数据,将与读出请求有关的多个物理地址的多个对象数据TD(即多个码字CW)向存储控制器3输出。在此情况下,存储控制器3能够将从NAND存储器2接收到的多个对象数据TD不延迟而原样输出。
即,NAND存储器2中所设置的控制电路13基于比特错误率(BER),判定是否将通过使用了奇偶校验数据pbh的水平方向HB解码而解码后的读出对象数据TD输出。具体而言,控制电路13如果从存储控制器3接收到读出指令,则当比特错误率(BER)较低时,对解码器15进行控制,以对读出对象数据TD进行使用了奇偶校验数据pbh的水平方向HB解码,当读出对象数据TD的水平方向HB解码成功时,将解码后的读出对象数据TD向存储控制器3输出,上述读出对象数据TD是与从存储单元阵列部11读出的读出指令有关的读出对象数据TD。
在比特错误率(BER)不比规定的比例低的情况下(S1:否),或在包含多个对象数据TD的多个地址的数据在内的多个码字CW没有全部被正确地解码的情况下(S3:否),控制电路13使用4KB的乘积码数据,使第2解码处理部根据子页数据PCD的乘积码帧来执行垂直奇偶校验检查即垂直方向HB解码(S4)。通过垂直奇偶校验检查,进行例如基于XOR运算的消失校正。S4的处理是硬判定的硬比特(HB)解码处理。
另外,在S4中,也可以设为,在执行垂直方向HB解码后、使用通过该垂直方向HB解码而校正后的数据进一步进行水平方向HB解码、进而根据需要而执行对垂直方向HB解码进行执行的那样的反复解码。例如,如果在垂直奇偶校验中使用基于BCH编码或里德-所罗门编码的奇偶校验数据,则能够执行反复解码。
在S4后,控制电路13判定包含多个对象数据TD的地址的数据在内的多个码字CW是否全部被正确地解码(S5)。在多个码字CW全部被正确地解码的情况下(S5:是),控制电路13以对被解码后的对象数据TD的多个码字CW和通过垂直方向HB解码被解码后的数据执行CRC的方式,将解码后的4KB的用户数据向存储控制器3输出。结果,在存储控制器3中执行CRC。另外,CRC也可以由控制电路13执行。
即,存储控制器3在读出对象数据(TD)的水平方向HB解码不成功的情况下,当垂直方向HB解码成功时,执行CRC。
处理器21对从NAND存储器2接收到的用户数据执行CRC的检查(S6),判定是否通过了CRC的检查(S7)。这里,CRC的检查是子页数据PCD单位。
如以上这样,在本实施方式中,在BER监视器16的比特错误率(BER)较低时水平方向HB解码不成功的情况下,以及在BER监视器16的比特错误率(BER)不低的情况下,进行CRC的检查,防止误校正的发生,并抑制了延迟变大。换言之,在BER监视器16的比特错误率(BER)较低且水平方向HB解码成功的情况下,不进行CRC。
在判定为通过了CRC的情况下(S7:是),处理器21提取关于随机读取的多个对象数据TD,向主机4输出。
如以上这样,控制电路13在读出对象数据TD的水平方向HB解码不成功时(S3:否),以进行使用了垂直方向的奇偶校验比特pbv1的垂直方向HB解码的方式对解码器15进行控制。控制电路13当读出对象数据(TD)的垂直方向HB解码成功时,将通过垂直方向HB解码被解码后的读出对象数据TD输出。
在多个码字CW通过硬解码没有被正确地解码的情况下(S5:否),控制电路13将包含多个对象数据在内的乘积码帧向存储控制器3输出,执行由ECC电路22的解码器22a进行的水平方向SB解码(S8)。S8的处理是软判定的软比特(SB)解码处理。
处理器21例如将关于多个对象数据的码字CW多次读出,一边使用该被读出的数据进行各比特的“0”或“1”的概率计算,一边进行软判定。
如以上这样,存储控制器3的处理器21在读出对象数据TD的水平方向及垂直方向的硬解码不成功时(S5:否),以进行基于解码器22a的水平方向SB解码的方式,对解码器22a进行控制(S8)。
处理器21判定水平方向SB解码的执行的结果是否是各码字CW被正确地解码(S9)。
在水平方向SB解码成功的情况下(S9:是),处理器21执行S6和S7的处理。
在水平方向SB解码不成功的情况下(S9:否),处理器21使用解码器22a,根据子页数据PCD的乘积码帧,执行垂直方向SB解码(S10)。S10的处理是基于XOR运算的软判定的软比特(SB)解码处理。垂直方向SB解码的处理以子页数据PCD单位进行。另外,当读出对象数据TD跨4个子页数据PCD存在时,垂直方向SB解码的处理以页单位进行。
在S10中,使用子页数据PCD(例如4KB)的乘积码帧的纵向的奇偶校验比特部PBV,执行垂直方向SB解码。
另外,在S10中,也可以执行上述那样的反复ECC。
处理器21判定垂直方向SB解码的执行的结果是否是包含对象数据TD的码字CW全部被正确地解码(S11)。
在垂直方向SB解码成功的情况下(S11:是),处理器21执行S6和S7的处理。
在垂直方向SB解码不成功的情况下(S11:否),以及在没有通过CRC检查的情况下(S7:否),处理器21认为数据的读出失败,执行数据的读出失败的情况下的预先决定的处理。
如以上这样,当在NAND存储器2中不能进行由通过基于硬比特(HB)的硬判定进行的错误检测校正(硬解码)时,存储控制器3进行基于软判定的错误检测校正(软解码),由此实现了错误检测校正的校正率的提高。
即,在由BER监视器16认为包含读出对象数据TD在内的页数据Pd的错误校正率较低的情况下,当包含读出对象数据TD在内的页的码字CW的水平方向的硬解码成功时(S3:是),NAND存储器2原样将所读出的对象数据TD向存储控制器3输出。
进而,在水平方向的硬解码不成功的情况下(S3:否),以及在由BER监视器16判定为包含读出对象数据TD在内的页的错误校正率不低的情况下(S1:否),存储控制器3为了确认没有错误校正,而进行CRC检查,防止错误校正率的下降。
图13是表示上述的硬解码和软解码中的检测到的原始的比特错误率RBER(RawBit Error Rate)与不可校正比特错误率UBER(Uncorrectable Bit Error Rate)的关系的示意性的曲线图。
水平方向的硬解码的BER(Horizontal ECC(HB))、垂直方向的硬解码的BER(Vertical ECC(HB))、水平方向的软解码的BER(Horizontal ECC(SB))及垂直方向的软解码的BER(Vertical ECC(SB))都如用白色的箭头表示那样,原始的比特错误率RBER越大,不可校正比特错误率UBER也越大。
此外,原始的比特错误率RBER越大,不可校正比特错误率UBER越以垂直方向的软解码的BER(Vertical ECC(SB))、水平方向的软解码的BER(Horizontal ECC(SB))、垂直方向的硬解码的BER(Vertical ECC(HB))、水平方向的硬解码的BER(Horizontal ECC(HB))的顺序变小。
由此,通过以图11所示的顺序进行解码,使得解码尽可能早地成功。
这里,对NAND存储器2的平面数为16个的情况进行说明。
图14是表示存储单元阵列部具有16个平面的NAND存储器2的结构的框图。图15是表示NAND存储器2的结构的组装图。NAND存储器2包括两个半导体芯片51、52。半导体芯片51是搭载有ECC电路12和控制电路13的半导体装置。半导体芯片52是搭载有存储单元阵列部11A的半导体装置。在半导体芯片51的上侧层叠半导体芯片52并用粘接剂固定。半导体芯片51和半导体芯片52通过球形凸块、引线接合等被电连接。
另外,半导体芯片52也可以是多个。在此情况下,将多个半导体芯片52在半导体芯片51的上侧层叠并相互用粘接剂固定。
存储单元阵列部11A包括16个平面PB(PB0,PB1,…,PB15)。各平面PB以包括多个存储单元晶体管(未图示)在内的块(未图示)为单位进行上述的各种动作。具体而言,例如各平面PB对某个块内的一部分的存储单元晶体管进行数据的写入动作及数据的读出动作,对某个块内的全部的存储单元晶体管进行数据的消除动作。
如图14所示,平面PB0包括存储单元阵列61、行译码器62及读出放大器模组63。平面PB0~PB15除了特别记载的情况以外,具有同等的结构。
存储单元阵列61具备多个块BLK(BLK0,BLK1,…)。各块BLK例如由可相互识别的块地址区别。另外,关于平面PB0以外的平面PB,也包含对应于与平面PB0相同的块地址的块BLK。在不同的平面PB间被分配了相同的块地址的块BLK彼此由可相互识别的平面地址区别。块BLK包括与字线及位线建立了关联的多个非易失性存储单元晶体管(未图示)。块BLK例如为数据的消除单位,相同的块BLK内的数据被一起消除。各块BLK具备多个串单元SU(SU0,SU1,…)。各串单元SU具备多个NAND串NS。另外,存储单元阵列61内的块数、1块BLK内的串单元数、1个串单元SU内的NAND串数可以设定为任意的数量。
行译码器62基于未图示的寄存器中所保持的地址中的块地址来选择块BLK等。并且,对于被选择的块BLK,转送来自行译码器62的各种电压。
读出放大器模组63在数据的读出时,通过感测存储单元晶体管的阈值电压而将数据读出。读出放大器模组63在数据的写入时,将经由位线写入的写入数据向存储单元晶体管转送。此外,读出放大器模组63从未图示的寄存器接受地址中的列地址,输出基于该列地址的列的数据。
这里,作为前提条件,是从各平面读出4KB的数据、从16平面读出64KB的数据的情况,申请人研究了当NAND存储器2A内的数据的读出时间(tR)是7.5μs、每7.5μs能够进行5.8KB的数据输出时是否能从16平面读出64B数据,对其结果进行说明。
图16是表示在16平面的各平面中存在1个随机读取对象数据(64B)的情况的图。即,如图16所示,在各平面中,包括1个包含读出数据在内的64B数据。
图17是表示在16平面的各平面中存在两个随机读取对象数据(64B)的情况的图。如图17所示,在各平面中,包括两个包含读出数据在内的64B数据。
图18是表示在16平面的各平面中存在4个随机读取对象数据(64B)的情况的图。如图18所示,在各平面中,包括4个包含读出数据在内的64B数据。
若以能够进行上述数据输出为前提,则在图18的情况下,如果码字长度是64B,由于能够读出90帧,所以能够从各平面读出4个64B数据。另外,在图16的情况下,即使码字长度是256B,也能够读出23帧,在图17的情况下,即使码字长度是128B,也能够读出32帧。
由此,上述的包含16平面在内的NAND存储器2,即使在码字长度是64B~256B时,也能够对图15及图16所示那样的存储器系统应用。
此外,存储器系统也可以具有包括存储控制器3和多个NAND存储器2的结构。
图19是表示包括存储控制器3和多个NAND存储器2的存储器系统的结构的图。
多个NAND存储器2通过两条总线与存储控制器3连接。各NAND存储器2具有ECC电路22。各NAND存储器2如果接受到来自存储控制器3的随机读取指令,则进行上述的硬比特解码,能够将每64B的数据向存储控制器3输出。
如在图19中用虚线表示那样,如果在NAND存储器2中水平方向HB解码及垂直方向HB解码失败,则在存储控制器3的ECC电路22中进行软比特解码。
在图19那样的结构的存储器系统中,也在将码字长度设为64B、并且从16个平面PB或16个NAND存储器2的全部将数据读出的情况下,在1秒间能够读出的次数(IOPS(InputOutput Per Second)为16倍。由此,上述实施方式的结构对于图19所示那样的存储器系统也能够应用。
此外,在上述的实施方式中,在NAND存储器2中,判定水平方向及垂直方向的硬解码的成功和失败。由此,由于控制电路13保持着其判定结果,所以如果从存储控制器3接受到校正错误状态的询问指令,则能够使用数据输入输出线DQ0~DQ7的一部分,将校正状态向存储控制器3输出。即,控制电路13也可以设为,能够输出水平方向HB解码及垂直方向HB解码的成功及失败的信息。
例如,有在执行数据的读出指令时不使用的数据输入输出线。控制电路13能够使用这样的不使用的数据输入输出线将校正状态信息向存储控制器3输出。例如,控制电路13当水平ECC校正成功时,将数据输入输出线DQ0的输出设为低(Low),当水平ECC校正失败时,将数据输入输出线DQ0的输出设为高(High)。控制电路13当垂直ECC校正成功时,将数据输入输出线DQ1的输出设为低(Low),当垂直ECC校正失败时,将数据输入输出线DQ1的输出设为高(High)。
进而,在NAND存储器2中执行CRC的情况下,控制电路13当CRC校正成功时,将数据输入输出线DQ2的输出设为低(Low),当CRC校正失败时,将数据输入输出线DQ2的输出设为高(High)。
由此,存储控制器3能够得到NAND存储器2中的ECC校正的状态(成功或失败)的信息。
另外,在上述的实施方式中,BER监视器16在进行随机读取时制作直方图,但也可以在所谓的巡读等时生成直方图。
如以上这样,根据上述的实施方式,能够提供能够不使数据的编码率变小地进行随机读取的存储器系统、半导体存储装置及数据读出方法。
上述实施方式的存储器系统1的校正能力比不使用乘积码而在存储控制器3中进行ECC校正的存储器系统的校正能力高。
例如,在假定ECC帧长为64B、编码率为0.89、按照每64B的数据在存储控制器3中进行BCH编码(4比特以下校正)的存储器系统A的情况下,根据申请人进行的模拟,存储器系统A的校正能力在4KB换算下是0.04%。
相对于此,在上述实施方式那样的、是进行了如下编码的存储器系统B的情况下,根据申请人进行的模拟,存储器系统B的校正能力在4KB换算下是0.22%,上述编码是以ECC帧长为4KB、码字CW长为48B的乘积码帧、按照每48B的数据实施BCH编码(4比特以下校正)的编码。有关本实施方式的存储器系统B的校正能力是存储器系统A的校正能力的5.5倍。
此外,根据申请人进行的模拟,有关本实施方式的存储器系统B的执行吞吐量是上述存储器系统A的执行吞吐量的24倍。
此外,根据申请人进行的模拟,有关本实施方式的存储器系统B的电流效率是0.73mA/1000MiBPS,上述的存储器系统A的电流效率是7.5mA/1000MiBPS。有关本实施方式的存储器系统B的电流效率是存储器系统A的电流效率的1/10。
此外,根据申请人进行的模拟,有关本实施方式的存储器系统B的电路规模(解码部分)是40KUnit(1Unit相当于2输入NAND),上述的存储器系统A的电路规模(解码部分)是63KU。有关本实施方式的存储器系统B的电路规模(解码部分)是存储器系统A的电路规模(解码部分)的0.63。
(变形例1)
上述的实施方式公开了使用NAND存储器2的可随机读取的存储器系统,但存储器系统也可以设为,能够切换以往以来的进行每页数据或每子页数据的数据读出的动作模式、和上述实施方式那样的进行随机读取的动作模式。
图20是表示有关本变形例1的存储器系统的结构的框图。在图20中,对于与图1相同的构成要素赋予相同的标号而省略说明,仅对与图1不同的结构进行说明。
存储控制器3的ECC电路具有编码器22b。对于存储器系统1A,能够从外部输入动作模式信号MODE。动作模式信号MODE通过半导体装置上的指针切换被设定为高(HIGH)或低(LOW),被向NAND存储器2和存储控制器3给出。
另外,动作模式信号MODE也可以作为来自外部的设定信号被向存储器系统1A给出。
当动作模式信号MODE为高(HIGH)时,存储器系统1A不使用ECC电路22的编码器22b而执行与上述实施方式同样的动作,作为能够随机读取的系统而动作。
当动作模式信号MODE为低(LOW)时,在存储器系统1A中,在页数据的编码中使用ECC电路22的编码器22b,解码器22a也将由编码器22b编码的页数据解码。当动作模式信号MODE为低(LOW)时,进一步不使用NAND存储器2的ECC电路12。
当动作模式信号MODE为低(LOW)时,存储器系统1A作为通常的NAND存储器,进行以页为单位的数据的写入和读出。
当动作模式信号MODE为高(HIGH)时,存储器系统1A不使用存储控制器3的编码器22b而进行以页为单位的数据的写入,但数据的读出随机地进行。
另外,当存储单元阵列11是多值单元存储器,例如是4比特/单元(bit/Cell)的QLC(Quad Level Cell,四层单元)存储器时,在QLC存储器中比特错误率(BER)变高,所以作为TLC(Triple Level Cell,三层单元)使用,数据的写入速度变慢,但也可以比特错误率(BER)较低,而提高随机读取性能。
即,当使用多值的非易失性存储器构建可随机读取的存储器系统时,通过所谓的高可靠性写入即低速写入,向非易失性存储器写入数据,能够提高随机读取性能。
在上述的实施方式中,作为非易失性存储器的NAND存储器2如果使用SLC(SingleLevel Cell,单层单元),则能够使比特错误率(BER)变低,但使用TLC存储器或者QLC存储器能够增大存储器系统的成本优势。
(变形例2)
在上述的实施方式中,将1个块BLK中的1个字线WL的1个页数据Pd中的对象数据TD随机读取,但在本变形例中,将多个块BLK内的多个对象数据TD或1个块BLK内的多个字线WL中的多个对象数据TD随机读取。
例如,通过按照每个块BLK,使用页缓存器,BER监视器16对各页缓存器根据校正比特数数据来制作直方图,能够将多个块BLK内的多个对象数据TD同时读出。
此外,通过使1个块BLK内的包含多个对象数据TD的多个字线WL依次动作,从各字线WL将包含对象数据TD的码字CW解码,能够将1个块BLK内的多个对象数据TD一起读出。
图21是用来说明将多个字线WL中的多个对象数据TD随机读取的情况的图。黑色地表示的部分表示包含对象数据TD的码字CW。
在图21的情况下,将包含对象数据TD的4条字线WL的数据同时读出,向包含用虚线表示的4个页缓存器在内的页缓存器部11A保存。BER监视器16生成各页数据Pd中的BER监视区域PB的校正比特数的直方图,执行每页的对象数据TD的解码处理。
图22是用来说明BER监视器16中的关于4条字线WL的直方图计算的定时的曲线图。是表示将1页数据(约16KB)中的12.5%(2KB)的数据读出的情况下的定时的图。图22是情形1、情形2、以及情形3的时序图,情形1中,对4条字线WL依次进行直方图计算和随机读取,情形2中,按照每个字线WL并行地进行直方图计算和随机读取,情形3中,在存储控制器3中进行解码而将2KB的数据读出。
情形1在按照字线WL使用页数据Pd中的BER监视区域PB的多个码字CW(24B)而进行校正比特数的数据的直方图计算后,进行2KB的数据的读出。在规定的条件下的申请人的模拟计算中,2KB的数据的读出花费了3620ns(纳秒)。
情形2并行地进行按照每个字线WL使用了页数据Pd中的BER监视区域PB的多个码字CW(24B)后的校正比特数的数据的直方图计算和2KB的数据的读出。在规定的条件下的申请人的模拟计算中,2KB的数据的读出花费了2720ns(纳秒)。
在情形3中,在规定的条件下的申请人的模拟计算中,关于4条字线WL,2KB的数据的读出花费了5160ns(纳秒)。
由此,通过本变形例2也能够得到与实施方式同等的效果。
说明了本发明的实施方式及几个变形例,但这些实施方式及各变形例是作为例子提示的,不是要限定发明的范围。这些新的实施方式能够以其他各种各样的形态实施,在不脱离发明的主旨的范围内能够进行各种各样的省略、替换、变更。这些实施方式及其变形包含在发明的范围或主旨中,并且包含在权利要求书所记载的发明和其等价的范围中。
标号说明
1、1A存储器系统;2NAND型闪存;3存储控制器;4主机;11存储单元阵列;11A页缓存器部;11a页缓存器;12错误检测校正电路;12aECC输入电路;12b ECC输出电路;13控制电路;14编码器;15解码器;16监视器;17共同总线;18页缓存器装载电路;19页缓存器储存电路;20输入输出接口;21处理器;22错误检测校正电路;22a解码器;22b编码器;23数据缓存器;24主机接口;25存储器接口;26内部总线。

Claims (19)

1.一种存储器系统,其中,具有:
非易失性存储器;
控制器,控制数据向上述非易失性存储器的写入及读出;
编码器,设在上述非易失性存储器中,将向上述非易失性存储器的写入数据分割为规定比特数的单位数据,并变换为包含多个所生成的上述单位数据在内的数据帧,按照每个上述单位数据,生成用于错误检测校正的上述数据帧的第1奇偶校验数据以及与上述第1奇偶校验数据不同的上述数据帧的第2奇偶校验数据,来进行上述写入数据的编码;
第1解码器,设在上述非易失性存储器中,进行从上述非易失性存储器读出的读出数据的解码;以及
控制电路,设在上述非易失性存储器中,当从上述控制器接收到读出指令时,控制上述第1解码器以对从上述非易失性存储器读出的读出对象数据进行使用了上述第1奇偶校验数据的第1解码,在上述读出对象数据的上述第1解码成功时,将解码后的上述读出对象数据向上述控制器输出。
2.如权利要求1所述的存储器系统,其中,
上述第1解码是硬解码。
3.如权利要求1所述的存储器系统,其中,
上述编码器通过4比特以下校正的BCH编码进行上述编码,
上述第1解码器通过直接法进行上述解码。
4.如权利要求1所述的存储器系统,其中,
上述非易失性存储器具有比特错误率监视器,所述比特错误率监视器将包含上述读出对象数据在内的上述非易失性存储器的存储区域的一部分的数据,按照每个上述单位数据,通过上述第1解码器解码,并基于每个上述单位数据的校正比特数来计算比特错误率,监视上述比特错误率,
上述控制电路基于上述比特错误率,判定是否将通过使用了上述第1奇偶校验数据的第1解码而解码后的上述读出对象数据输出。
5.如权利要求4所述的存储器系统,其中,
上述一部分的存储区域是数据从上述非易失性存储器读出的读出单位的数据的一部分。
6.如权利要求1所述的存储器系统,其中,
上述控制电路当上述读出对象数据的上述第1解码不成功时,控制上述第1解码器,以进行使用了上述第2奇偶校验数据的第2解码,当上述读出对象数据的上述第2解码成功时,将通过上述第2解码而解码出的上述读出对象数据输出。
7.如权利要求6所述的存储器系统,其中,
上述第2解码是硬解码。
8.如权利要求6所述的存储器系统,其中,
上述控制器具有进行软解码的第2解码器,
上述控制器当上述读出对象数据的上述第1解码及上述第2解码不成功时,控制上述第2解码器,以进行基于上述第2解码器的上述软解码。
9.如权利要求6所述的存储器系统,其中,
上述控制器当上述读出对象数据的上述第1解码不成功、上述第2解码成功时,进行循环冗余检查。
10.如权利要求1所述的存储器系统,其中,
上述第1解码器具有判定错误数的错误判定电路、探索第1错误数中的错误比特位置的第1探索电路、以及探索与上述第1错误数不同的第2错误数中的错误比特位置的第2探索电路;
上述第1探索电路及上述第2探索电路以如下方式进行控制,当由上述错误判定电路判定出的上述错误数是上述第1错误数时,上述第1探索电路动作而上述第2探索电路不动作,当由上述错误判定电路判定出的上述错误数是上述第2错误数时,上述第1探索电路不动作而上述第2探索电路动作,当由上述错误判定电路判定出的上述错误数是0时,上述第1探索电路及上述第2探索电路不动作。
11.如权利要求1所述的存储器系统,其中,
上述非易失性存储器是NAND型闪存。
12.如权利要求6所述的存储器系统,其中,
上述控制电路能够输出上述第1解码及上述第2解码的成功及失败的信息。
13.一种半导体存储装置,具有非易失性存储区域,其中,具有:
编码器,将写入数据分割为规定比特数的单位数据,并变换为包含多个所生成的上述单位数据在内的数据帧,按照每个上述码字,生成用于错误检测校正的上述数据帧的第1奇偶校验数据以及与上述第1奇偶校验数据不同的上述数据帧的第2奇偶校验数据,来进行上述写入数据的编码;
解码器,进行从上述非易失性存储区域读出的读出数据的解码;以及
控制电路,当接收到读出指令时,控制上述解码器,以对从上述非易失性存储区域读出的读出对象数据进行使用了上述第1奇偶校验数据的第1解码,当上述读出对象数据的上述第1解码成功时,输出被解码后的上述读出对象数据。
14.如权利要求13所述的半导体存储装置,其中,
上述编码器通过4比特以下校正的BCH编码进行上述编码,
上述第1解码器通过直接法进行上述解码。
15.如权利要求13所述的半导体存储装置,其中,
上述控制电路当上述读出对象数据的上述第1解码不成功时,控制上述第1解码器以进行使用了上述第2奇偶校验数据的第2解码,当上述读出对象数据的上述第2解码成功时,输出通过上述第2解码被解码后的上述读出对象数据。
16.如权利要求13所述的半导体存储装置,其中,
上述控制电路能够输出上述第1解码及上述第2解码的成功及失败的信息。
17.如权利要求13所述的半导体存储装置,其中,
上述第1解码器具有判定错误数的错误判定电路、探索第1错误数中的错误比特位置的第1探索电路、以及探索与上述第1错误数不同的第2错误数中的错误比特位置的第2探索电路;
上述第1探索电路及上述第2探索电路以如下方式进行控制,当由上述错误判定电路判定出的上述错误数是上述第1错误数时,上述第1探索电路动作而上述第2探索电路不动作,当由上述错误判定电路判定出的上述错误数是上述第2错误数时,上述第1探索电路不动作而上述第2探索电路动作,当由上述错误判定电路判定出的上述错误数是0时,上述第1探索电路及上述第2探索电路不动作。
18.一种数据读出方法,是从非易失性存储器读出数据的方法,其中,
在上述非易失性存储器中,将向上述非易失性存储器写入的写入数据分割为规定比特数的单位数据,并变换为包含多个所生成的上述单位数据在内的数据帧,按照每个上述码字,生成用于错误检测校正的上述数据帧的第1奇偶校验数据、以及与上述第1奇偶校验数据不同的上述数据帧的第2奇偶校验数据,来进行上述写入数据的编码,
在上述非易失性存储器中,进行从上述非易失性存储器读出的读出数据的解码,
在上述非易失性存储器中,当接收到上述读出指令时,对从上述非易失性存储器读出的读出对象数据进行使用了上述第1奇偶校验数据的第1解码,当上述读出对象数据的上述第1解码成功时,将解码后的上述读出对象数据输出。
19.如权利要求18所述的数据读出方法,其中,
上述第1解码是硬解码。
CN202110755434.2A 2020-09-11 2021-07-05 存储器系统、半导体存储装置及数据读出方法 Pending CN114168377A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020153283A JP2022047393A (ja) 2020-09-11 2020-09-11 メモリシステム、半導体記憶装置及びデータ読み出し方法
JP2020-153283 2020-09-11

Publications (1)

Publication Number Publication Date
CN114168377A true CN114168377A (zh) 2022-03-11

Family

ID=80476443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110755434.2A Pending CN114168377A (zh) 2020-09-11 2021-07-05 存储器系统、半导体存储装置及数据读出方法

Country Status (4)

Country Link
US (1) US20220083261A1 (zh)
JP (1) JP2022047393A (zh)
CN (1) CN114168377A (zh)
TW (1) TWI781631B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230396270A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Dynamic decoding for memory systems
TWI819876B (zh) * 2022-11-02 2023-10-21 群聯電子股份有限公司 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
CN101572125B (zh) * 2008-04-30 2013-02-27 扬智科技股份有限公司 错误更正电路及其方法
US9116828B2 (en) * 2008-06-11 2015-08-25 Micron Technology, Inc. Data bus inversion usable in a memory system
KR101800445B1 (ko) * 2011-05-09 2017-12-21 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US8924815B2 (en) * 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9003269B2 (en) * 2012-08-30 2015-04-07 Kabushiki Kaisha Toshiba Memory controller and semiconductor storage device
US9152493B2 (en) * 2012-09-12 2015-10-06 Samsung Electronics Co., Ltd. Error check and correction circuit and semiconductor memory
US8984369B2 (en) * 2012-11-21 2015-03-17 Micron Technology, Inc. Shaping codes for memory
US9621188B2 (en) * 2014-03-17 2017-04-11 Samsung Electronics Co., Ltd. Soft and hard decision message-passing decoding
KR20170000108A (ko) * 2015-06-23 2017-01-02 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US10205469B2 (en) * 2016-08-11 2019-02-12 SK Hynix Inc. Low latency soft decoder architecture for generalized product codes
JP2018147231A (ja) * 2017-03-06 2018-09-20 東芝メモリ株式会社 メモリコントローラ、メモリシステムおよびメモリシステムの制御方法
KR20190017550A (ko) * 2017-08-11 2019-02-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10896123B2 (en) * 2018-12-13 2021-01-19 Western Digital Technologies, Inc. Enhancing the effectiveness of read scan performance and reliability for non-volatile memory
JP7018089B2 (ja) * 2020-04-02 2022-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法

Also Published As

Publication number Publication date
JP2022047393A (ja) 2022-03-24
TWI781631B (zh) 2022-10-21
TW202211037A (zh) 2022-03-16
US20220083261A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
US9224489B2 (en) Flash memory devices having multi-bit memory cells therein with improved read reliability
US9977712B2 (en) Memory device with different parity regions
US8112689B2 (en) ECC controller for use in flash memory device and memory system including the same
US8644066B2 (en) Multi-level non-volatile memory device, system and method with state-converted data
CN109285582B (zh) 存储器系统、非暂时性计算机可读介质及错误校验与校正的方法
US9093154B2 (en) Method, memory controller and system for reading data stored in flash memory
JP2021111826A (ja) 復号装置及び復号方法
JP7353889B2 (ja) メモリシステムおよび方法
CN114168377A (zh) 存储器系统、半导体存储装置及数据读出方法
JP2020155167A (ja) 不揮発性メモリ
KR20180123393A (ko) Siso 복호 방법, 디코더 및 반도체 메모리 시스템
US20200091942A1 (en) Memory system
KR20200079811A (ko) 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템
US11086718B2 (en) Memory system
CN112084052A (zh) 基于主机的错误校正
US11755209B2 (en) Semiconductor memory device and error detection and correction method
EP3780397B1 (en) Operating method of a memory controller
US11675530B2 (en) Memory controller, storage device and operating method of memory controller
US11250909B2 (en) Nonvolatile memory and memory system
US11581046B2 (en) Storage device and reading method
CN116798501A (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