CN107045462B - 存储装置 - Google Patents
存储装置 Download PDFInfo
- Publication number
- CN107045462B CN107045462B CN201611156442.0A CN201611156442A CN107045462B CN 107045462 B CN107045462 B CN 107045462B CN 201611156442 A CN201611156442 A CN 201611156442A CN 107045462 B CN107045462 B CN 107045462B
- Authority
- CN
- China
- Prior art keywords
- error correction
- controller
- segment
- external host
- host device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储装置。一种存储装置包括非易失性存储器装置和被配置为从非易失性存储器装置读取数据、将读取的数据划分成多个段以及针对所述多个段顺序执行错误校正解码的控制器。当每个段的错误校正解码被完成时,控制器将错误校正奇偶校验添加到多个解码的段中的每个解码的段,并将具有添加的错误校正奇偶校验的所述多个解码的段发送到外部主机装置。当第二段的错误校正解码在从发送错误校正解码被完成的第一段后过去了阈值时间之后未被完成时,控制器将不正确错误校正奇偶校验添加到虚拟数据,并将具有添加的不正确错误校正奇偶校验的虚拟数据发送到外部主机装置。
Description
要求于2015年12月14日提交到韩国知识产权局的第10-2015-0178369号韩国专利申请的优先权,所述韩国专利申请的全部公开通过引用包含于此。
技术领域
这里描述的发明构思涉及一种半导体存储器,更加具体地,涉及一种存储装置和其操作方法。
背景技术
存储装置可被称为在主机装置(诸如,计算机、智能电话和智能平板电脑等)的控制下存储数据的任何装置。硬盘驱动器(HDD)是能在磁盘上存储数据的存储装置。固态硬盘(SSD)和存储器卡等是在半导体存储器中存储数据的存储装置的示例。
非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器装置、相变存储器(PRAM)、磁性RAM(MRAM)、电阻式存储器(RRAM)和铁电随机存取存储器(FRAM)等。
与存储装置进行通信的主机装置(诸如,计算机、智能电话和智能平板电脑等)的运行速度随着半导体制造技术发展而继续提高。在存储装置中使用和主机装置中使用的内容的量继续增加。出于这些原因,针对具有提高的运行速度的存储装置的需求已经连续地趋势向上。
发明内容
本发明构思的实施例提供一种保持可靠性的同时还具有提高的运行速度的存储装置及其操作方法。
本发明构思的实施例提供一种存储装置,所述存储装置包括:非易失性存储器装置;控制器,被配置为从非易失性存储器装置读取数据、将读取的数据划分成多个段以及针对所述多个段顺序执行错误校正解码。在确定每个段的错误校正解码的完成时,控制器被配置为将错误校正奇偶校验添加到多个解码的段中的每个解码的段,并将具有添加的错误校正奇偶校验的所述多个解码的段发送到外部主机装置。在确定第二段的错误校正解码在从第一段的错误校正解码和发送被完成时起过去了阈值时间之后未被完成时,控制器被配置为将不正确的错误校正奇偶校验添加到虚拟数据,并将具有添加的不正确的错误校正奇偶校验的虚拟数据发送到外部主机装置。
本发明构思的实施例提供一种存储装置,所述存储装置包括:多个存储集群;随机存取存储器;群控制器,被配置为控制所述多个存储集群。所述多个存储集群中的每个存储集群包括:多个非易失性存储器装置;控制器,被配置为从所述多个非易失性存储器装置中的每个非易失性存储器装置读取数据、将读取的数据划分成多个段以及针对所述多个段顺序执行错误校正解码。在确定每个段的错误校正解码的完成时,控制器被配置为将错误校正奇偶校验添加到多个解码的段中的每个解码的段,并将具有添加的错误校正奇偶校验的所述多个解码的段发送到群控制器。在确定第二段的错误校正解码在从第一段的错误校正解码和发送被完成时起过去了阈值时间之后未被完成时,控制器被配置为将不正确的错误校正奇偶校验添加到虚拟数据,并将具有添加的不正确的错误校正奇偶校验的虚拟数据发送到群控制器。
本发明构思的实施例提供一种存储装置的操作方法,其中,所述存储装置包括非易失性存储器装置和被配置为控制非易失性存储器装置的控制器。所述方法包括:在控制器处从非易失性存储器装置读取多个段;在控制器处针对多个段顺序执行错误校正解码;并将已经完成错误校正解码的每个段发送到外部主机装置。在控制器确定第二段的错误校正解码在从第一段被发送到外部主机装置时起过去了阈值时间之后未被完成时,将虚拟数据和不正确的错误校正奇偶校验发送到外部主机装置。
本发明构思的实施例提供一种存储装置,所述存储装置包括:非易失性存储器装置;控制器,被配置为从非易失性存储器装置读取数据,对读取的数据的段执行错误校正解码,将解码的段发送到外部主机装置,并在确定相应段的错误校正解码在已经过去了阈值时间之后未被完成时,将具有不正确的错误校正奇偶校验的虚拟数据发送到外部主机装置代替读取的数据的相应段。
附图说明
通过下面结合下面附图进行的描述,上述和其他主题以及特点将会变得清楚,其中,除非另外规定,否则贯穿各种附图,相同的参考标号表示相同的部分,其中:
图1示出了根据本发明构思的实施例的存储装置的框图;
图2示出了根据本发明构思的实施例的存储装置的操作方法的流程图;
图3示出了在没有延迟的情况下执行错误校正操作时的存储装置执行的操作的时序图;
图4示出了延迟错误校正操作时在存储装置产生错误的示例的时序图;
图5示出了根据本发明构思的实施例的存储装置响应于读取请求而输出数据的处理的时序图;
图6示出了根据本发明构思的实施例的存储装置响应于读取请求而输出数据的示例的时序图;
图7示出了根据本发明构思的实施例的存储装置响应于读取请求而输出数据的示例的时序图;
图8示出了根据本发明构思的实施例的存储装置设置操作模式的方法的流程图;
图9示出了图1的存储装置的应用的框图;
图10示出了根据本发明构思的实施例的控制器的框图;
图11示出了根据本发明构思的实施例的非易失性存储器装置的框图;
图12示出了根据本发明构思的实施例的存储块的电路图;
图13示出了根据本发明构思的实施例的存储装置的框图;
图14根据本发明构思的实施例示出了产生不正确奇偶校验(incorrect parity)的方法的流程图;
图15示出了根据本发明构思的实施例的计算装置的框图。
具体实施方式
以下,将参照附图对本发明构思的实施例进行详细的描述,使其描述到本发明构思所属领域的普通技术人员容易实施本发明构思的实施例的程度。
图1示出了根据本发明构思的实施例的存储装置100的框图。参照图1,存储装置100包括非易失性存储器装置110和控制器120。
非易失性存储器装置110可在控制器120的控制下执行写入、读取和擦除。非易失性存储器装置110可通过输入/输出通道从控制器120接收命令和地址。非易失性存储器装置110可通过输入/输出通道与控制器120交换数据。
非易失性存储器装置110可包括闪速存储器。然而,在其他实施例中,例如,非易失性存储器装置110可包含非易失性存储器装置(诸如,相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FeRAM)等)中的至少一个非易失性存储器装置。
控制器120可被配置为访问非易失性存储器装置110。例如,控制器120可通过输入/输出通道和控制通道来控制非易失性存储器装置110以便执行写入操作、读取操作或擦除操作。
控制器120可响应于外部主机装置(未示出)的控制而控制非易失性存储器装置110。例如,控制器120可基于与用于与非易失性存储器装置110的通信的格式相同或不同的格式,与外部主机装置进行通信。控制器120传输到非易失性存储器装置110的数据的单元可与控制器120传输到外部主机装置的数据的单元不同。
控制器120可包括第一错误校正码块ECC1 102和第二错误校正码块ECC2 104。第一错误校正码块ECC1 102可针对将被写入在非易失性存储器装置110的数据执行错误校正编码,并可针对从非易失性存储器装置110接收的数据执行错误校正解码。即,第一错误校正码块ECC1 102校正从非易失性存储器装置110产生的错误以及在非易失性存储器装置110与控制器120之间的通道中产生的错误。例如,第一错误校正码块ECC1 102基于各种错误校正码(诸如,例如博斯-查德胡里-霍昆格姆(BCH)码、里德-所罗门(RS)码、涡轮码、低密度奇偶校验(LDPC)码和极性码等)中的至少一个错误校正码来执行错误校正编码和错误校正解码。
第二错误校正码块ECC2104可针对从外部主机装置接收的数据执行错误校正解码,并可针对将被输出到外部主机装置的数据执行错误校正编码。即,第二错误校正码块ECC2 104校正从外部主机装置与控制器120之间的通道产生的错误。例如,第二错误校正码块ECC2 104基于循环冗余校验(CRC)码执行错误校正编码和错误校正解码。
在实施例中,非易失性存储器装置110可由外部主机装置直接控制。例如,非易失性存储器装置110可直接从外部主机装置或通过控制器120从外部主机装置接收芯片启用信号/CE、命令锁存启用信号CLE、地址锁存启用信号ALE、读取启用信号/RE、写入启用信号/WE、写入保护信号/WP、数据选通信号DQS。非易失性存储器装置110可将准备/占线信号(ready/busy signal,就绪/忙碌信号,准备/忙碌信号)R/nB和数据选通信号DQS直接输出到外部主机装置或通过控制器120输出到外部主机装置。非易失性存储器装置110可从外部主机装置接收物理地址,并可使用未修改的接收的物理地址来执行读取、写入或擦除操作。当在外部主机装置与非易失性存储器装置110之间交换数据时,控制器120可被配置为执行错误校正编码和错误校正解码。
图2示出了根据本发明构思的实施例的存储装置的操作方法的流程图。参照图1和图2,在步骤S110中,存储装置100接收读取请求。例如,非易失性存储器装置110可直接从外部主机装置(未示出)或通过控制器120从外部主机装置接收读取请求。接收的读取请求可用于请求由存储装置100或非易失性存储器装置110的读取单元执行或由小于读取单元的部分读取单元执行的读取操作。例如,读取单元可表示通过非易失性存储器装置110响应于读取请求而执行的一个读取操作而被输出的数据的单元。
在步骤S115中,非易失性存储器装置110响应于读取请求而读取读取单元或部分读取单元的数据。读取单元或部分读取单元可以是例如来自选择的存储器簇(随后,将针对图13对其进行描述)。可将读取的数据提供给控制器120。
在步骤S120中,控制器120从读取的数据中选择第一段作为选择的段。例如,段可以是错误校正编码和错误校正解码被执行的数据的单元。读取单元或部分读取单元的数据可包括两个或更多个段。控制器120可选择从非易失性存储器装置110发送的读取单元或部分读取单元的多个段中的第一段。
在步骤S125中,控制器120可针对选择的段执行错误校正解码。例如,控制器120可使用第一错误校正码块ECC1 102来执行错误校正解码。
在步骤S130中,控制器120确定是否完成了选择的段的错误校正解码。如果选择的段的错误校正解码被完成(步骤S130中的是),则在步骤S135中,控制器120此后将包括正确奇偶校验的解码的段输出到外部主机装置。例如,当当前段的错误校正解码被完成时,无论与读取的数据的另一段有关的错误校正解码是否被完成,控制器120都可输出解码的当前段。在实施例中,正确奇偶校验(correct parity)可以是由第二错误校正码块ECC2 104基于解码的段正常产生的奇偶校验。例如,正确奇偶校验可以是由外部主机装置识别以指示在与正确奇偶校验一起发送的段中没有错误的奇偶校验。
在步骤S140中,控制器120确定选择的段是否为最后段。如果选择的段是来自读取的数据中的最后段(步骤S140中的是),则对应于读取请求的读取操作结束。如果选择的段不是来自读取的数据中的最后段(步骤S140中的否),则在步骤S145中,选择来自读取的数据中的另一段,并且此后处理进行到步骤S125。
在步骤S130中,如果控制器120确定未完成错误校正解码(步骤S130中的否),则处理进行到步骤S150。在步骤S150中,控制器120确定是否产生超时。例如,当当前段的错误校正解码在从先前解码的段已经被输出的时刻起已经过了阈值时间之后未被完成时,控制器120确定超时已经发生。在实施例中,阈值时间可以是由外部主机装置确定的时间。在其他实施例中,例如,阈值时间可以是非易失性存储器110或存储装置100的运行特性或规范确定的时间。例如,阈值时间可以是“立即”。
如果控制器120确定没有超时发生(步骤S150中的否),则控制器120此后在步骤S155中继续执行错误校正解码,并且处理此后进行到步骤S130。如果控制器120确定超时已经发生(步骤S150中的是),则控制器120此后在步骤S160中将包括不正确奇偶校验的虚拟段输出到外部主机装置。例如,当虚拟段被输出时,控制器120可继续执行错误校正解码以便完成错误校正解码。然后在步骤S160中输出虚拟段,处理行进到步骤S140。在步骤S140和步骤S150中,可重新选择当前段,并且针对当前段的错误校正解码可继续。在实施例中,不正确的奇偶校验可以是与由第二错误校正码块ECC2 104基于解码的段正常产生的奇偶校验不同的奇偶校验。例如,不正确奇偶校验可以是由外部主机装置识别以指示在与不正确奇偶校验一起发送的段中存在错误的奇偶校验。
图3示出了在没有延迟的情况下执行错误校正操作时的存储装置100执行的操作的时序图。在图3中,横坐标代表时间,纵坐标代表主机输入/输出通道IO_H、内部操作OP_I和内部输入/输出通道IO_I的状态。主机输入/输出通道IO_H指示存储装置100与外部主机装置之间交换的信号。内部操作OP_I指示控制器120的内部操作,具体地说,由第一错误校正码块ECC 102和第二错误校正码块ECC 104执行的操作。内部输入/输出通道IO_I指示控制器120与非易失性存储器装置110之间交换的信号。
参照图1和图3,在时间T1,读取请求R1从外部主机装置被发送到存储装置100或非易失性存储器装置110。例如,读取请求R1可从外部主机装置被直接发送到非易失性存储器装置110或通过控制器120被发送到非易失性存储器装置110。
在时间T2,非易失性存储器装置110响应于读取请求R1而读取数据,并将读取的数据输出到控制器120。例如,由非易失性存储器装置110读取的数据可包括第一段SEG1至第四段SEG4。非易失性存储器装置110可没有间隔地连续输出第一段SEG1至第四段SEG4。每个段可包括数据“DATA”和第一奇偶校验P1。第一奇偶校验P1可包括在错误校正编码期间由第一错误校正码块ECC1 102产生的附加信息。
在时间T2,非易失性存储器装置110开始将第一段SEG1输出到控制器120。如图所示,在时间T3完成第一段SEG1的传输。
在时间T3,非易失性存储器装置110开始将第二段SEG2输出到控制器120。此外,当在时间T3完全接收第一段SEG1时,控制器120执行第一段SEG1的错误校正操作E_SEG1。第一段SEG1的错误校正操作E_SEG1可包括第一错误校正码块ECC1 102的错误校正解码和第二错误校正码块ECC2104的错误校正编码。第一错误校正码块ECC1 102可基于第一奇偶校验P1执行错误校正解码。第二错误校正码块ECC2 104可执行错误校正编码以产生第二奇偶校验P2。
在实施例中,在第二段SEG2被完全传输之前,结束错误校正操作E_SEG1。当在时间T4完成第一段SEG1的错误校正操作E_SEG1时,控制器120在时间T4开始将解码的第一段SEG1’输出到外部主机装置。解码的段可包括解码的数据DATA’和由第二错误校正码块ECC2104添加的第二奇偶校验P2。
此后,在T5完成第二段SEG2的传输。非易失性存储器装置110在时间T5开始将第三段SEG3传输到控制器120,而控制器120在时间T5开始错误校正操作E_SEG2。在时间T6完成错误校正操作E_SEG2。在时间T6,控制器120将解码的第二段SEG2’输出到外部主机装置。
在T7完成到控制器120的第三段SEG3的传输。非易失性存储器装置110在时间T7开始将第四段SEG4发送到控制器120,而控制器120在时间T7开始错误校正操作E_SEG3。在时间T8完成错误校正操作E_SEG3。在时间T8,控制器120将解码的第三段SEG3’输出到外部主机装置。
在T9完成第四段SEG4的传输。控制器120在时间T9开始第四段SEG4的错误校正操作E_SEG4。在时间T10完成错误校正操作E_SEG4。在时间T10,控制器120将解码的第四段SEG4’输出到外部主机装置。
在实施例中,响应于读取请求R1,外部主机装置可请求存储装置100输出对应于读取单元的解码的第一段SEG1’至解码的第四段SEG4’。在如参照图1描述的一些实施例中,当外部主机装置被配置为直接访问非易失性存储器装置110时,上述事件可发生。例如,控制器120可干预外部主机装置与非易失性存储器装置110之间交换的控制信号。控制器120可被配置为针对外部主机装置与非易失性存储器装置110之间交换的数据执行错误校正编码和错误校正解码。
在这种情况下,外部主机装置可被配置为产生与非易失性存储器装置110的读取单元对应的读取请求、产生与写入单元对应的写入请求以及产生与擦除单元对应的擦除请求。外部主机装置可被配置为基于非易失性存储器装置110的写入单元或读取单元与非易失性存储器装置110交换数据。
非易失性存储器装置110可被配置为没有间隔地连续输出读取单元的数据。相应地,外部主机装置可被配置为在没有间隔地连续输出读取单元的数据的条件下运行。
在外部主机装置和存储装置100具有上述关系的情况下,已经使用了在完成与读取单元对应的数据的错误校正编码之后将与读取单元对应的数据连续输出到外部主机装置的方法。然而,该方法可能有这样的问题:存储装置100没有快速处理外部主机装置的读取请求。
为解决上述问题,如在图3中示出,存储装置100可在完全读取每个段时开始错误校正解码,并可在完成每个段的错误校正编码时开始将数据输出到外部主机装置。例如,可以以流或管线的方式来执行从非易失性存储器装置110到控制器120的第一段SEG1至第四段SEG4的传输、控制器120的第一段SEG1至第四段SEG4的错误校正操作E_SEG1至错误校正操作E_SEG4以及从控制器120到外部主机装置的解码的第一段SEG1’至解码的第四段SEG4’的传输。当完成关于第一段SEG1的读取操作和错误校正操作E_SEG1时,存储装置100可开始输出解码的段SEG1’至解码的段SEG4’。相应地,存储装置100响应于外部主机装置的读取请求时的初始响应时间可被缩短,存储装置100的运行速度可被提高。
然而,当错误校正操作被延迟时,上述方法可能有问题。例如,当非易失性存储器装置110的使用频率(例如,擦除或编程频率)增加时,非易失性存储器装置110的可靠性可能降低,并因此产生错误的概率可能增加。此外,当非易失性存储器装置110的读取频率增加时,随着时间在非易失性存储器装置110写入数据后流逝时,或当非易失性存储器装置110的外围温度增加时,在非易失性存储器装置110写入的数据的可靠性可能降低,并因此产生错误的概率可能增加。当在每个段产生的错误的数量增加时,执行每个段的错误校正操作所花费的时间可能增加。
图4示出了错误校正操作被延迟时在存储装置100产生错误的示例的时序图。从时间T1到时间T5执行的操作可与图3的从时间T1到时间T5执行的操作相同,并因此省略了其描述。
参照图1至图3和图4,在时间T6,完全传输了解码的第一段SEG’。在图3中,本发明构思的实施例被示例为:在已经完全传输了解码的第一段SEG’之后,完成第二段SEG2的错误校正操作E_SEG2。然而,在图4中,第二段SEG2的错误校正操作E_SEG2被延迟。例如,在非易失性存储器装置110在时间T7开始将第四段SEG4输出到控制器120之后,在时间T8完成第二段SEG2的错误校正操作E_SEG2。在这种情况下,控制器120在时间T8输出解码的第二段SEG2’,并在时间T8开始第三段SEG3的错误校正操作E_SEG3。当在时间T9完成错误校正操作E_SEG3时,控制器120开始错误校正操作E_SEG4。控制器120在时间T10输出解码的第三段SEG3’,并在时间T11输出解码的第四段SEG4’。
如上所述,当第二段SEG2的错误校正操作E_SEG2被延迟时,控制器120在开始输出解码的数据之后未传输数据的延迟部分发生在时间T6和时间T8之间。延迟部分被示出为斜线盒。
可在外部主机装置与存储装置100之间或外部主机装置与非易失性存储器装置110之间容易交换信息的环境下,无错误地处理图4中示出的延迟部分。例如,在这种情况下,存储装置100或非易失性存储器装置110可告知外部主机装置数据的输出被延迟和此后例如数据的输出被恢复。外部主机装置可基于来自存储装置100或非易失性存储器装置110的通知,确定接收数据的时序和不接受数据的时序。
然而,如参照图1和图3所述,预设或要求这样的环境,在该环境中,存储装置100或非易失性存储器装置110响应于读取请求而将读取单元的解码的数据没有间隔地连续输出到外部主机装置。在这种情况下,可在存储装置100与外部主机装置之间或在非易失性存储器装置110与外部主机装置之间延迟数据的传输,并且因为预设不需要交换指示它们之间的数据的重传的信息,所以可不提供用于发送相应信息的通道。当存储装置100或非易失性存储器装置110开始将解码的数据传输到外部主机装置时,外部主机装置可在读取单元的解码的数据被无间隔地传输的前提下无间隔地连续接收读取单元的解码的数据。然而,在碰巧实际存在间隔的情况下,这种情况下的外部主机装置可能在时间T6和时间T8之间接收无效数据。
为了防止上述问题,如参照图2所述,当错误校正操作在先前段被输出之后被延迟时,根据本发明构思的实施例的存储装置100可输出包括虚拟数据和不正确奇偶校验的虚拟段。
图5示出了根据本发明构思的实施例的存储装置100响应于读取请求而输出数据的处理的时序图。在图5中,横坐标代表时间,纵坐标代表主机输入/输出通道IO_H、内部操作OP_I和内部输入/输出通道IO_I的状态。主机输入/输出通道IO_H指示存储装置100或非易失性存储器装置110与外部主机装置之间交换的信号。内部操作OP_I指示包括由第一错误校正码块ECC102和第二错误校正码块ECC 104执行的操作的控制器120的内部操作。内部输入/输出通道IO_I指示控制器120与非易失性存储器装置110之间交换的信号。
从时间T1到时间T5执行的操作可与图4的从时间T1到时间T5执行的操作相同,并因此省略了其描述。
参照图1、图4和图5,在时间T6,控制器120完成到外部主机装置的解码的第一段SEG1’的传输。在完全传输解码的先前段时的时间T6,当前段(即,第二段SEG2)的错误校正操作E_SEG2被连续执行但尚未完成。如参照图2的步骤S160所述,控制器120在时间T6将包括不正确奇偶校验P2’和虚拟数据DATA_DM的虚拟段SEG_DM输出到外部主机装置。例如,虚拟数据DATA_DM可以是具有相同值的比特流、预定模式的比特流或使用随机数产生的比特流。
当虚拟段SEG_DM被输出时,在时间T7,非易失性存储器装置110开始将第四段SEG4传输到控制器120。当虚拟段SEG_DM在时间T8仍在被输出时,第二段SEG2的错误校正操作E_SEG2被完成。控制器120在时间T8开始第三段SEG3的错误校正操作E_SEG3。
在时间T10,第四段SEG4被完全传输到控制器120。在实施例中,外部主机装置基于虚拟段SEG_DM的虚拟数据DATA_DM和不正确奇偶校验P2’来确定虚拟段SEG_DM是否被不正确地传输。在时间T9,外部主机装置将重传请求R2发送到存储装置100。由于第二段SEG2的错误校正操作被完成了,所以控制器120基于重传请求R2在T12将解码的第二段SEG2’重传到外部主机装置。此后,在时间T13和时间T14,控制器120将解码的第三段SEG3’和解码的第四段SEG4’分别发送到外部主机装置。在实施例中,第四段SEG4的错误校正操作E_SEG4在时间T10与时间T12之间的时间T11开始。
如上所述,当存储装置100未输出解码的数据的延迟部分出现时,存储装置100将虚拟数据发送到外部主机装置,因而防止外部主机装置接收不想要的数据。虚拟数据可能是想要的,以便外部主机装置响应于虚拟数据而将重传请求R2发送到存储装置100。相应地,有可能在保持存储装置100的可靠性的同时还通过早期响应特性来实现提高的运行速度。
图6示出了根据本发明构思的实施例的存储装置100响应于读取请求而输出数据的示例的时序图。从时间T1到时间T5执行的操作可与图5的从时间T1到时间T5执行的操作相同,并因此省略了其描述。
参照图1、图5和图6,在时间T6,控制器120完成到外部主机装置的解码的第一段SEG1’的传输。在完全传输了解码的先前段时的时间T6,当前段(即,第二段SEG2)的错误校正操作E_SEG2被连续执行但尚未完成。如参照图2的步骤S160所述,控制器120在时间T6将包括不正确奇偶校验P2’和虚拟数据DATA_DM的虚拟段SEG_DM输出到外部主机装置。例如,虚拟数据DATA_DM可以是具有相同值的比特流、预定模式的比特流或使用随机数产生的比特流。
在时间T7,非易失性存储器装置110开始将第四段SEG4输出到控制器120。控制器120在时间T7完成第二段SEG2的错误校正操作E_SEG2并开始第三段SEG3的错误校正操作E_SEG3。
虚拟段SEG_DM在时间T8被完全传输到外部主机装置。由于在时间T8完成了第三段SEG3的错误校正操作E_SEG3,所以控制器120将解码的第三段SEG3’输出到外部主机装置。在时间T9,控制器120开始第四段SEG4的错误校正操作E_SEG4。
在时间T10,控制器120将解码的第四段SEG4’输出到外部主机装置。在时间T11,完全传输了解码的第四段SEG4’。
当解码的第四段SEG4’被接收时,外部主机装置完成读取单元的数据的接收,其中,读取单元的数据包括解码的第一段SEG1’、解码的第二段SEG2’、解码的第三段SEG3’和解码的第四段SEG4’。此后,外部主机装置针对接收的段执行错误校正解码。例如,外部主机装置基于虚拟段SEG_DM的不正确奇偶校验P2’来确定必须重传解码的第二段SEG2’。外部主机装置然后在时间T11将重传请求R2发送到存储装置100。控制器120响应于重传请求R2而在时间T12将解码的第二段SEG2’输出到外部主机装置。
在图5中,本发明构思的实施例被示例为:外部主机装置在每个段被接收时依据段来检查奇偶校验并从存储装置110请求数据的重传。然而,如参照图6所述,外部主机装置接收读取单元的包括所有段的数据,并在接收所有的段后针对每个段检查奇偶校验。即,在一些实施例中,存储装置100可被配置为在解码的段被完全传输之后接收和处理重传请求R2。此外,在其他实施例中,存储装置100可被配置为在读取单元的所有段被完全传输之后接收和处理重传请求R2。
图7示出了根据本发明构思的实施例的存储装置100响应于读取请求而输出数据的示例的时序图。参照图1和图7,在时间T1,存储装置100从外部主机装置接收读取请求R1。响应于读取请求R1,非易失性存储器装置110在时间T2至时间T5分别将第一段SEG1至第四段SEG4输出到控制器120。
在第一段SEG1和第二段SEG2被传输到控制器120的时间T4,控制器120执行包括第一段SEG1和第二段SEG2的第一组的错误校正操作E_GRP1。例如,每个段对应于第一错误校正码块ECC1 102的错误校正编码和错误校正解码的单元。组对应于第二错误校正码块ECC2104的错误校正编码和错误校正解码的单元。第一组的错误校正操作E_GRP1包括第一段SEG1的错误校正解码E1_SEG1、第二段SEG2的错误校正解码E1_SEG2以及与第一段SEG1和第二段SEG2有关的第二错误校正码块ECC2的错误校正编码。
当第一组的错误校正操作E_GRP1完成时,非易失性存储器装置110在时间T6将第一组GRP1输出到外部主机装置。第一组GRP1包括解码的数据DATA’和由第二错误校正码块ECC2 104添加的第二奇偶校验P2。
当第三段SEG3和第四段SEG4在时间T7被完全传输到控制器120时,控制器120执行包括第三段SEG3和第四段SEG4的第二组的错误校正操作E_GRP2。当错误校正操作E_GRP2和解码的第一组GRP1的传输在T8完成时,控制器120在时间T8将解码的第二段GRP2’输出到外部主机装置。
如参照图7所述,可将本发明构思的实施例应用到第一错误校正码块ECC1 102的单元与第二错误校正码块ECC2104的单元不同的情况。例如,控制器120可被配置为在当前组的错误校正操作未在完全传输先前组的时间点完成时输出虚拟组。
图8示出了根据本发明构思的实施例的存储装置100设置操作模式的方法的流程图。参照图1和图8,在步骤S210中,存储装置100从外部主机装置接收设置信息。设置信息可包括用于设置存储装置100的操作模式的信息。
在步骤S220中,存储装置100确定设置信息是指示第一模式还是第二模式。例如,在一些实施例中,控制器120确定设置信息是指示第一模式还是第二模式。
如果控制器120确定设置信息指示第一模式(步骤S220中的是),则在步骤S230中,存储装置100被控制器120设置为第一模式。例如,如参照图6所述,第一模式可以是在读取单元的数据(包括全部的段SEG1’-段SEG4’)被完全传输之后从响应于由第二错误校正码块ECC2 104提供的奇偶校验的外部主机装置接收重传请求的模式。
如果控制器120确定设置信息指示第二模式(步骤S220中的否),则在步骤S240中,存储装置100被控制器120设置为第二模式。例如,如参照图5所述,第二模式可以是在读取单元的数据正被传输的同时从外部主机装置接收重传请求的模式。例如,存储装置100可被配置为在每个段被完全传输之后接收重传请求R2。
在实施例中,当电被供应给存储装置100时,或当设置信息被发送到存储装置100时,可在存储装置100被制造之后一次确定或更新存储装置100的操作模式。
图9示出了图1的存储装置100的应用的框图。参照图9,存储装置200包括非易失性存储器装置210、控制器220和随机存取存储器(RAM)230。控制器220包括第一错误校正码块ECC1 202和第二错误校正码块ECC2 204。相比于图1的存储装置100,存储装置200还包括RAM 230。
控制器220可将RAM 230用作工作存储器、缓冲存储器或高速缓存存储器。控制器220可将管理非易失性存储器装置210所需的数据或代码存储在RAM 230。例如,控制器220可从非易失性存储器装置210读取管理非易失性存储器装置210所需的数据或代码,并可将读取的数据或代码加载在RAM230上用于驱动。
RAM 230可包括例如各种随机存取存储器(诸如,静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FeRAM)等)中的至少一个随机存取存储器。
图10示出了根据本发明构思的实施例的控制器220的框图。参照图9和图10,控制器220包括总线221、处理器222、RAM 223、错误校正码(ECC)块224、主机接口225、缓冲器控制电路226和存储器接口227。
总线221可被配置为提供控制器220的元件之中的通道。
处理器222可控制控制器220的整个操作,并可执行逻辑操作。处理器222可通过主机接口225与外部主机装置进行通信,处理器222可通过存储器接口227与非易失性存储器装置210进行通信,处理器222可通过缓冲器控制电路226与RAM230进行通信。处理器222可将RAM223用作工作存储器、高速缓存存储器或缓冲存储器来控制存储装置200。
RAM223可用作处理器222的工作存储器、高速缓存存储器或缓冲存储器。RAM223可存储处理器222将执行的代码或命令。RAM223可存储由处理器222处理的数据。例如,RAM223可包括静态RAM(SRAM)。
错误校正码块224可包括参照图1至图8描述的第一错误校正码块ECC1202和第二错误校正码块ECC2204。在实施例中,第一错误校正码块ECC1202可被包括在存储器接口227中,而第二错误校正码块ECC2 204可被包括在主机接口225中。
主机接口225可在处理器222的控制下与外部主机装置进行通信。缓冲器控制电路226可在处理器222的控制下控制RAM230。
存储器接口227可响应于处理器222的控制而与非易失性存储器装置210进行通信。存储器接口227可通过输入/输出通道将命令、地址和数据传达给非易失性存储器装置210。存储器接口227可通过控制通道将控制信号传达给非易失性存储器装置210。
在实施例中,在存储装置200不包括RAM 230的情况下,控制器220可不包括缓冲器控制电路226。
图11示出了根据本发明构思的实施例的图1中示出的非易失性存储器装置110和图10中示出的非易失性存储器装置210的框图。
参照图1和图11,非易失性存储器装置110包括存储器单元阵列111、行解码器电路113、页缓冲器电路115、通过-失败检查(成-败检查,pass-fail check)电路PFC 116、数据输入/输出电路117和控制逻辑电路119。
存储器单元阵列111可包括多个存储器块BLK1至存储器块BLKz。存储器块BLK1至存储器块BLKz中的每个存储器块可包括多个存储器单元。存储器块BLK1至存储器块BLKz中的每个存储器块可通过至少一条串选择线SSL、多条字线WL和至少一条地选择线GSL连接到行解码器电路113。存储器块BLK1至存储器块BLKz中的每个存储器块可通过多条位线BL连接到页缓冲器电路115。存储器块BLK1至存储器块BLKz可共同连接到多条位线BL。存储器块BLK1至存储器块BLKz中的存储器单元可具有相同的结构。
行解码器电路113可通过多条地选择线GSL、多条字线WL和多条串选择线SSL连接到存储器单元阵列111。行解码器电路113可根据控制逻辑电路119的控制来运行。行解码器电路113可对通过输入/输出通道从控制器120接收的地址进行解码,并可基于解码的地址允许电压被施加到串选择线SSL、字线WL和地选择线GSL。
页缓冲器电路115可通过位线BL连接到存储器单元阵列111。页缓冲器电路115可通过多条数据线DL连接到数据输入/输出电路117。页缓冲器电路115可在控制逻辑电路119的控制下运行。
在验证读取操作之后,通过-失败检查电路(成-败检查电路)PFC 116可从页缓冲器电路115接收感测结果。通过-失败检查电路(成-败检查电路)PFC116可基于接收的感测结果确定通过(pass,成功)或失败。例如,在编程验证读取操作期间,页缓冲器电路115可对导通单元(on-cell)的数量进行计数。当导通单元的数量大于或等于阈值时,通过-失败检查电路PFC 116可确定验证失败。当导通单元的数量小于阈值时,通过-失败检查电路PFC116可确定验证通过。例如,在擦除验证读取操作期间,页缓冲器电路115可对截止单元(off-cell)的数量进行计数。当截止单元的数量大于或等于阈值时,通过-失败检查电路PFC 116可确定擦除验证失败。当截止单元的数量小于阈值时,通过-失败检查电路PFC 116可确定擦除验证通过。通过或失败确定结果可被提供给控制逻辑电路119。
数据输入/输出电路117可通过数据线DL连接到页缓冲器电路115。数据输入/输出电路117可通过输入/输出通道将页缓冲器电路115读取的数据输出到控制器120,并可将通过输入/输出通道从控制器120接收的数据提供给页缓冲器电路115。
控制逻辑电路119可通过输入/输出通道从控制器120接收命令,并可通过控制通道从控制器120接收控制信号。控制逻辑电路119可响应于控制信号而接收通过输入/输出通道提供的命令,控制逻辑电路119可将通过输入/输出通道提供的地址发送(route)到行解码器电路113,并可将通过输入/输出通道提供的数据发送(route)到数据输入/输出电路117。控制逻辑电路119可对接收的命令进行解码,并可基于解码的命令来控制非易失性存储器装置110。
图12示出了根据本发明构思的实施例的存储块BLKa的电路图。参照图12,存储器块BLKa包括多个单元串CS11至单元串CS21以及单元串CS12至单元串CS22。可沿着行方向和列方向布置多个单元串CS11至单元串CS21和单元串CS12至单元串CS22以构成行和列。
例如,沿行方向布置的单元串CS11和单元串CS12可构成第一行,而沿行方向布置的单元串CS21和单元串CS22可构成第二行。沿列方向布置的单元串CS11和单元串CS21可构成第一列,而沿列方向布置的单元串CS12和单元串CS22可构成第二列。
每个单元串可包括多个单元晶体管。单元晶体管可包括地选择晶体管GST、存储器单元MC1至存储器单元MC6以及串选择晶体管SSTa和串选择晶体管SSTb。每个单元串中的地选择晶体管GST、存储器单元MC1至存储器单元MC6以及串选择晶体管SSTa和串选择晶体管SSTb可沿与其上沿行和列布置单元串CS11至单元串CS21以及单元串CS12至单元串CS22的平面(例如,存储器块BLKa的衬底上的平面)垂直的高度方向进行堆叠。
存储器单元MC1至存储器单元MC6、串选择晶体管SSTa和串选择晶体管SSTb以及地选择晶体管GST的多个单元晶体管可以是阈值电压根据在其绝缘层捕获的电荷量而改变的电荷捕获型单元晶体管。
最底层的地选择晶体管GST的源极可共同连接到公共源极线CSL。
第一行中的单元串CS11和单元串CS12的地选择晶体管GST的控制栅极可共同连接到地选择线GSL1,而第二行中的单元串CS21和单元串CS22的地选择晶体管GST的控制栅极可共同连接到地选择线GSL2。即,不同行中的单元串可连接到不同的地选择线。
共同连接到字线的是被布置在距衬底(或地选择晶体管GST)相同的高度(或顺序)的存储器单元的控制栅极。连接到不同的字线WL1至字线WL6的是被布置在不同的高度(或,顺序)的存储器单元的控制栅极。例如,存储器单元MC1可共同连接到字线WL1。存储器单元MC2可共同连接到字线WL2。存储器单元MC3可共同连接到字线WL3。存储器单元MC4可共同连接到字线WL4。存储器单元MC5可共同连接到字线WL5。存储器单元MC6可共同连接到字线WL6。
不同行中的单元串可连接到不同的串选择线。相同行中的单元串的具有相同高度(或,顺序)的串选择晶体管可连接到相同的串选择线。相同行中的单元串的具有不同高度(或,顺序)的串选择晶体管可连接到不同的串选择线。
在实施例中,相同行中的单元串的串选择晶体管可共同连接到串选择线。例如,第一行中的单元串CS11和单元串CS12的串选择晶体管SSTa和串选择晶体管SSTb可共同连接到串选择线。第二行中的单元串CS21和单元串CS22的串选择晶体管SSTa和串选择晶体管SSTb可共同连接到串选择线。
单元串CS11至单元串CS21和单元串CS12至单元串CS22的列可连接到不同的位线BL1和位线BL2。例如,第一列中的单元串CS11和单元串CS21的串选择晶体管SSTb可共同连接到位线BL1。单元串CS12和单元串CS22的串选择晶体管SSTb可共同连接到位线BL2。
如上所述,存储器块BLKa可设置为三维存储器阵列。以存储器单元MC的阵列的一个或多个物理级单片地形成3D存储器阵列,其中,存储器单元MC具有布置在硅衬底上的活动区域以及与那些存储器单元MC的操作有关的电路。与存储器单元MC的操作有关的电路可位于这样的衬底上或衬底内。术语“单片”意思是阵列的每级的层是直接沉积在3D存储器阵列的每个下面的级别的层上。
在本发明构思的实施例中,3D存储器阵列包括被垂直定向以使至少一个存储器单元位于另一存储器单元之上的垂直NAND串(或单元串)。所述至少一个存储器单元MC可包括电荷俘获层。每个垂直NAND串还可包括布置在存储器单元MC之上的至少一个选择晶体管。所述至少一个选择晶体管可具有与存储器单元MC相同的结构,并可与存储器单元MC一起被统一地(uniformly)形成。
通过引用包含在这里的以下专利文件(第7,679,133号美国专利、第8,553,466号美国专利、第8654587号美国专利、第8,559,235号美国专利和出版号为第2011/0233648号美国专利公开)描述了针对三维存储器阵列的合适构造,其中,使用级之间共用的字线和/或位线将三维存储器阵列构造为多个级。
图13示出了根据本发明构思的实施例的存储装置300的框图。参照图1、图9和图13,存储装置300可包括存储集群(存储器簇)311至存储集群317、群控制器(masscontroller,质量控制器,体控制器)320和随机存取存储器(RAM)330。
存储集群311至存储集群317中的每个存储集群可在群控制器320的控制下执行写入、读取和擦除。存储集群311至存储集群317中的每个存储集群可通过输入/输出通道从群控制器320接收命令和地址。存储集群311至存储集群317中的每个存储集群可通过输入/输出通道与群控制器320交换数据。存储集群311至存储集群317中的每个存储集群可包括参照图1描述的存储装置100或参照图9描述的存储装置200。
存储集群311至存储集群317中的每个存储集群可通过控制通道与群控制器320交换控制信号。例如,存储集群311至存储集群317中的每个存储集群可从群控制器320接收芯片启用信号(/CE)、命令锁存启用信号(CLE)、地址锁存启用信号(ALE)、读取启用信号(/RE)、写入启用信号(/WE)、写入保护信号(/WP)、准备/占线信号(R/nB)和数据选通信号(DQS)。在存储集群311至存储集群317中的每个存储集群中,芯片启用信号(/CE)、命令锁存启用信号(CLE)、地址锁存启用信号(ALE)、读取启用信号(/RE)、写入启用信号(/WE)、写入保护信号(/WP)和数据选通信号(DQS)可被直接传输到非易失性存储器装置110或非易失性存储器装置210或者通过控制器120或控制器220传输到非易失性存储器装置110或非易失性存储器装置210。例如,存储集群311至存储集群317中的每个存储集群可将准备/占线信号R/nB和数据选通信号DQS输出到群控制器320。准备/占线信号R/nB和数据选通信号DQS可被直接传输到群控制器320或通过控制器120或控制器220传输到群控制器320。
存储集群311至存储集群317中的每个存储集群可包括第一错误校正码块ECC1(诸如,第一错误校正码块ECC1 102或第一错误校正码块ECC1202)、第二错误校正码块ECC2(诸如,第二错误校正码块ECC2 104或第二错误校正码块ECC2 204)和第一映射表MT1。基于第一错误校正码块ECC1,存储集群311至存储集群317中的每个存储集群可针对将被写入在非易失性存储器装置110或非易失性存储器装置210的数据执行错误校正编码,并可针对从非易失性存储器装置110或非易失性存储器装置210读取的数据执行错误校正解码。例如,第一错误校正码块ECC1可基于各种错误管理算法(诸如,BCH码、RS码、汉明码、涡轮码和LDPC码等)中的至少一个错误管理算法执行错误校正编码和错误校正解码。
基于第二错误校正码块ECC2,存储集群311至存储集群317中的每个存储集群可针对将被传输到群控制器320的数据执行错误校正编码,并可针对从群控制器320接收的数据执行错误校正解码。例如,第二错误校正码块ECC2可基于CRC码等执行错误校正编码和错误校正解码。
存储集群311至存储集群317中的每个存储集群可基于第一映射表MT1执行地址映射。例如,存储集群311至存储集群317中的每个存储集群可使用第一映射表MT1将从群控制器320接收的地址(例如,逻辑地址LBA)转换为物理地址PBA。物理地址PBA可以是分配给存储集群311至存储集群317中的每个存储集群的内部物理存储空间的地址。存储集群311至存储集群317中的每个存储集群可响应于群控制器320的请求而访问物理地址所指示的存储空间。例如,第一映射表MT1可被加载到控制器120的内部存储器或控制器220的外部RAM230上。
在实施例中,在图13中示出了7个存储集群(存储集群311至存储集群317)。然而,存储装置300包括的存储集群的数量可不限于此。即,更多或更少的存储集群可被设置为连接到群控制器。
群控制器320可被配置为控制存储集群311至存储集群317。例如,群控制器320可通过输入/输出通道和控制通道来控制存储集群311至存储集群317,以便执行写入、读取或擦除操作。
群控制器320可被配置为与外部主机装置进行通信。群控制器320可响应于外部主机装置的控制而控制存储集群311至存储集群317。例如,群控制器320可基于与用于与存储集群311至存储集群317的通信的格式不同的格式,与外部主机装置进行通信。群控制器320与存储集群311至存储集群317进行通信的数据单元可与群控制器320与外部主机装置进行通信的数据单元不同。
群控制器320可将RAM 330用作工作存储器、缓冲存储器或缓存存储器。群控制器320可将用于管理存储集群311至存储集群317的数据或代码存储在RAM 330。例如,群控制器320可从存储集群311至存储集群317读取用于管理存储集群311至存储集群317的数据或代码,并可将读取的数据或代码加载到RAM330用于驱动。
例如,群控制器320可将第二映射表MT2加载到RAM330。群控制器320可基于第二映射表MT2和从外部主机装置接收的地址(例如,逻辑地址LBA)选择存储集群311至存储集群317中的一个存储集群。例如,存储装置300的逻辑地址范围可由外部主机装置分配。群控制器320可划分分配的逻辑地址范围以便分别被分配到存储集群311至存储集群317。与逻辑地址的划分和分配有关的信息可被包括在第二映射表MT2中。当从外部主机装置接收逻辑地址LBA和访问请求时,群控制器320可基于第二映射表MT2选择存储集群311至存储集群317的访问目标。
群控制器320可包括第二错误校正码块ECC2和第三错误校正码块ECC3。群控制器320可使用第二错误校正码块ECC2针对将被发送到存储集群311至存储集群317的数据来执行错误校正编码。群控制器320可使用第二错误校正码块ECC2针对从存储集群311至存储集群317接收的数据来执行错误校正解码。第二错误校正码块ECC2可基于例如CRC码执行错误校正编码和错误校正解码。
群控制器320可使用第三错误校正码块ECC3针对与外部主机装置交换的数据执行错误校正编码。例如,群控制器320可使用第三错误校正码块ECC3针对从外部主机装置接收的数据执行错误校正解码。群控制器320可使用第三错误校正码块ECC3针对将被传输到外部主机装置的数据执行错误校正编码。例如,第三错误校正码块ECC3可基于CRC码执行错误校正编码和错误校正解码。
RAM 330可包括各种随机存取存储器(诸如,静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FeRAM)等)中的至少一个随机存取存储器。
在实施例中,群控制器320与存储集群311至存储集群317可基于通道和路互连。一个通道可包括一个数据通道和一个控制通道。一个数据通道可包括八条数据线。一个控制通道可包括用于传输芯片启用信号(/CE)、命令锁存启用信号(CLE)、地址锁存启用信号(ALE)、读取启用信号(/RE)、写入启用信号(/WE)、写入保护信号(/WP)和准备/占线信号(R/nB)的控制线。
连接到一个通道的存储集群可构成路。连接到一个通道的N个存储集群可构成n-路。属于一路的存储集群可共用数据线和用于传输命令锁存启用信号CLE、地址锁存启用信号ALE、读取启用信号/RE、写入启用信号/WE、写入保护信号/WP的控制线。属于一路的多个存储集群中的每个存储集群可通过致力于(专用于)芯片启用信号/CE和准备/占线信号R/nB的控制线来与群控制器320进行通信。
在实施例中,存储集群311至存储集群317中的每个存储集群可根据参照图2至图8描述的方法来运行。例如,当一段的错误校正解码被完成时,存储集群311至存储集群317中的每个存储集群的控制器120或控制器220可将段输出到群控制器320。当当前段的错误校正解码在先前段被输出后已经过去了阈值时间的时候未被完成时,控制器120或控制器220可将包括不正确奇偶校验的虚拟段输出到群控制器320。当不正确奇偶校验被接收或当读取单元的接收的段中的至少一个段包括不正确奇偶校验时,群控制器320可将重传请求发送到相应的存储集群。
群控制器320可以轮流地访问连接到一个通道的n-路存储集群。群控制器320可独立地访问与不同通道连接的存储集群。群控制器320可轮流地或同时地访问与不同的通道连接的存储集群。
在实施例中,存储集群可以以宽IO的形式与群控制器320连接。例如,连接到不同通道的存储集群可共用用于芯片启用信号/CE的控制线。可同时访问共用用于芯片启用信号/CE的控制线的存储集群。因为不同通道的数据线被同时使用,所以宽输入/输出带宽可以实现。
在图13中,本发明构思的实施例被示例为:存储装置300包括布置在群控制器320外部的RAM 330。然而,在其他实施例中,存储装置300可不包括布置在群控制器320外部的RAM 330。群控制器320可将内部RAM用作缓冲存储器、工作存储器或缓存存储器。
图14示出了根据本发明构思的实施例的产生不正确奇偶校验的方法的流程图。参照图1、图9和图14,在步骤S310中,控制器120或控制器220产生虚拟数据。例如,虚拟数据可包括预定模式的比特流、固定值的比特流、模式的比特流和先前段的比特流中的至少一种比特流。
在步骤S320中,控制器120或控制器220计算虚拟数据的CRC奇偶校验CRC_P。例如,第二错误校正码块ECC2 104(204)可基于针对虚拟数据的错误校正编码来执行CRC码,以产生CRC奇偶校验CRC_P。
在步骤S330中,控制器120或控制器220将CRC奇偶校验CRC_P反相。
在步骤S340中,控制器120或控制器220将作为第二奇偶校验P2的反相的CRC奇偶校验CRC_P与虚拟数据一起输出。
在上述实施例中,第二错误校正码块ECC2 104(204)被描述为基于CRC码。然而,在其他实施例中,第二错误校正码块ECC2 104(204)可基于各种错误管理算法(诸如,例如BCH码、RS码、汉明码、涡轮码、LDPC码和极性码等)中的至少一个错误管理算法来执行错误校正编码和错误校正解码。
图15示出了根据本发明构思的实施例的计算装置1000的框图。参照图15,计算装置1000包括处理器1100、RAM 1200、存储装置1300、调制解调器1400和用户接口1500。
处理器1100可控制计算装置1000的整体操作,并可执行逻辑操作。处理器1100可以是基于硬件的数据处理装置,基于硬件的数据处理装置包括被物理地配置为执行由包括在代码或程序中的命令所表达的操作的电路。例如,处理器1100可以是片上系统(SoC)。处理器1100可以是通用处理器、专用处理器或应用处理器。
RAM 1200可与处理器1100进行通信。RAM 1200可以是处理器1100或计算装置1000的主存储器。处理器1100可将代码或数据暂时存储在RAM1200。
存储装置1300可与处理器1100进行通信。存储装置1300可用于长时间存储数据。即,处理器1100可将将被长时间存储的数据存储在存储装置1300中。
存储装置1300可包括非易失性存储器(诸如,例如闪速存储器、PRAM、MRAM、RRAM和/或FRAM等)。
调制解调器1400可在处理器1100的控制下与外部装置进行通信。例如,调制解调器1400可以以有线或无线的方式与外部装置进行通信。
用户接口1500可在处理器1100的控制下与用户进行通信。例如,用户接口1500可包括用户输入接口(诸如,例如键盘、小键盘、按键、触摸面板、触摸屏、触摸板、触摸球、摄像头、麦克风、陀螺仪传感器和振动传感器等)。用户接口150还可包括用户输出接口(诸如,例如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、发光二极管(LED)、扬声器和马达)。
存储装置1300可包括根据本发明构思的实施例的存储装置100、存储装置200和存储装置300中的一个存储装置。此外,存储装置1300可包括根据本发明构思的实施例的存储集群311至存储集群317中的一个存储集群。例如,当每个段的错误校正解码被完成时,存储装置1300可将相应的段发送到主机装置。当当前段的错误校正解码在先前段已经被完全传输后已经过了阈值时间之后未被完成时,存储装置1300可将包括虚拟数据和不正确奇偶校验的虚拟段输出到主机装置。相应地,具有快速响应特性和提高的可靠性的存储可被提供,并且计算装置1000的运行速度和可靠性可被提高。
处理器1100、RAM 1200、调制解调器1400和用户接口1500可构成与存储装置1300进行通信的主机装置。
根据本发明构思的实施例,当每个段的错误校正解码被完成时,存储装置可将相应段输出到外部主机装置。相应地,具有提高的运行速度的存储装置和其操作方法可被提供。
根据本发明构思的实施例,当当前段的错误校正解码在先前段被输出到外部主机装置之后的阈值时间的期间未被完成时,虚拟数据可与不正确错误校正奇偶校验一起被输出到外部主机装置。外部主机装置可基于不正确错误校正奇偶校验请求存储装置重传相应的段,并且可防止外部主机装置从存储装置获得不正确数据。相应地,保持可靠性的同时还具有更多提高的运行速度的存储装置和其操作方法可被提供。
虽然已经参照示例性实施例对本发明构思进行了描述,但是本领域技术人员将清楚,在不脱离本发明构思的精神和范围的情况下,可做出各种改变和修改。因此,应该理解上面的实施例不是限制性的,而是示出性的。
Claims (20)
1.一种存储装置,所述存储装置包括:
非易失性存储器装置;
控制器,被配置为从非易失性存储器装置读取数据、将读取的数据划分成多个段以及针对所述多个段顺序地执行错误校正解码,
其中,在确定各个段的错误校正解码的完成时,控制器被配置为将错误校正奇偶校验添加到所述解码的段中的每个解码的段,并将具有添加的错误校正奇偶校验的所述解码的段发送到外部主机装置,
其中,在确定第二段的错误校正解码在从第一段的错误校正解码和发送被完成时起过去了阈值时间之后未被完成时,控制器被配置为将不正确的错误校正奇偶校验添加到虚拟数据,并将具有添加的不正确的错误校正奇偶校验的虚拟数据发送到外部主机装置,以便外部主机装置响应于具有添加的不正确的错误校正奇偶校验的虚拟数据而将重传请求发送到所述存储装置。
2.如权利要求1所述的存储装置,其中,错误校正奇偶校验是循环冗余校验奇偶校验。
3.如权利要求1所述的存储装置,其中,控制器被配置为:从虚拟数据产生循环冗余校验奇偶校验,并将循环冗余校验奇偶校验反相以产生不正确的错误校正奇偶校验。
4.如权利要求1所述的存储装置,其中,在确定第二段的错误校正解码被完成时,控制器被配置为将已经完成错误校正解码的第二段发送到外部主机装置。
5.如权利要求1所述的存储装置,其中,在虚拟数据被发送之后并在第三段被发送到外部主机装置之前,控制器被配置为:基于从外部主机装置接收的重传请求将错误校正奇偶校验添加到已经完成错误校正解码的第二段,并将具有添加的错误校正奇偶校验的第二段发送到外部主机装置。
6.如权利要求1所述的存储装置,其中,在从所述多个段中将已经完成错误校正解码的段发送到外部主机装置之后,控制器被配置为:将错误校正奇偶校验添加到第二段,并将具有添加的错误校正奇偶校验的第二段发送到外部主机装置。
7.如权利要求1所述的存储装置,其中,控制器被配置为:通过输入/输出线从外部主机装置接收读取命令和地址,并通过输入/输出线将所述多个段发送到外部主机装置。
8.如权利要求1所述的存储装置,其中,非易失性存储器装置被配置为以页为单位执行读取操作,其中,页对应于所述多个段。
9.如权利要求8所述的存储装置,其中,在接收到从外部主机装置一次提供的读取请求时,控制器被配置为:以页为单位执行非易失性存储器装置的读取操作,并在没有外部主机装置的控制的情况下将对应于页的所述多个段连续发送到外部主机装置。
10.一种存储装置,所述存储装置包括:
多个存储集群;
随机存取存储器;
群控制器,被配置为控制所述多个存储集群,
其中,所述多个存储集群中的每个存储集群包括:
多个非易失性存储器装置,和
控制器,被配置为从所述多个非易失性存储器装置中的每个非易失性存储器装置读取数据、将读取的数据划分成多个段以及针对所述多个段顺序执行错误校正解码,
其中,在确定每个段的错误校正解码的完成时,控制器被配置为:将错误校正奇偶校验添加到所述解码的段中的每个解码的段,并将具有添加的错误校正奇偶校验的所述解码的段发送到群控制器,
其中,在确定第二段的错误校正解码在从第一段的错误校正解码和发送被完成时起过去了阈值时间之后未被完成时,控制器被配置为:将不正确的错误校正奇偶校验添加到虚拟数据,并将具有添加的不正确的错误校正奇偶校验的虚拟数据发送到群控制器,以便群控制器响应于具有添加的不正确的错误校正奇偶校验的虚拟数据而将重传请求发送到所述存储集群。
11.如权利要求10所述的存储装置,其中,控制器被配置为:从虚拟数据产生循环冗余校验奇偶校验,并将循环冗余校验奇偶校验反相以产生不正确的错误校正奇偶校验。
12.如权利要求10所述的存储装置,其中,所述多个存储集群中的每个存储集群包括:
第一错误校正码块,被配置为执行错误校正解码;
第二错误校正码块,被配置为产生错误校正奇偶校验。
13.如权利要求10所述的存储装置,其中,所述多个非易失性存储器装置中的每个非易失性存储器装置被配置为以页为单位执行读取操作,其中,页对应于所述多个段。
14.如权利要求10所述的存储装置,其中,群控制器被配置为基于不正确的错误校正奇偶校验来请求第二段的重传,
其中,在确定第二段的错误校正解码被完成时,控制器被配置为将已经完成错误校正解码的第二段和错误校正奇偶校验发送到群控制器。
15.如权利要求10所述的存储装置,其中,所述多个非易失性存储器装置中的每个非易失性存储器装置包括三维存储器阵列,其中,三维存储器阵列包括均具有电荷俘获层的存储器单元。
16.一种存储装置,所述存储装置包括:
非易失性存储器装置;
控制器,被配置为从非易失性存储器装置读取数据,对读取的数据的段执行错误校正解码,将解码的段发送到外部主机装置,并在确定读取的数据的相应段的错误校正解码在已经过去了阈值时间之后未被完成时,将具有不正确的错误校正奇偶校验的虚拟数据发送到外部主机装置代替所述相应段,以便外部主机装置响应于具有添加的不正确的错误校正奇偶校验的虚拟数据而将重传请求发送到所述存储装置。
17.如权利要求16所述的存储装置,其中,控制器被配置为:响应于从外部主机装置接收的重传请求,在所述相应段的错误校正解码被完成之后,将所述相应段发送到外部主机装置。
18.如权利要求17所述的存储装置,其中,控制器被配置为:在读取的数据的其他全部段已经被解码和发送到外部主机装置之后,将已经完成错误校正解码的所述相应段发送到外部主机装置。
19.如权利要求17所述的存储装置,其中,控制器被配置为:在发送来自读取的数据的段的序列中的下一解码的段之前,将已经完成错误校正解码的所述相应段发送到外部主机装置。
20.如权利要求17所述的存储装置,其中,控制器被配置为将每个解码的段和具有各自的添加的错误校正奇偶校验的已经完成错误校正解码的所述相应段发送到外部主机装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150178369A KR102473209B1 (ko) | 2015-12-14 | 2015-12-14 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR10-2015-0178369 | 2015-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107045462A CN107045462A (zh) | 2017-08-15 |
CN107045462B true CN107045462B (zh) | 2021-09-21 |
Family
ID=59020249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611156442.0A Active CN107045462B (zh) | 2015-12-14 | 2016-12-14 | 存储装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10090858B2 (zh) |
KR (1) | KR102473209B1 (zh) |
CN (1) | CN107045462B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI661353B (zh) * | 2017-08-30 | 2019-06-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中為錯誤處置進行資料處理之方法、記憶裝置及其控制器以及電子裝置 |
JP7306811B2 (ja) * | 2018-10-05 | 2023-07-11 | シナプティクス インコーポレイテッド | 表示ドライバ、表示モジュール及び画像データの生成方法 |
KR20200042360A (ko) * | 2018-10-15 | 2020-04-23 | 에스케이하이닉스 주식회사 | 에러 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
US20210326320A1 (en) * | 2018-10-15 | 2021-10-21 | Ocient Inc. | Data segment storing in a database system |
KR20200079134A (ko) * | 2018-12-24 | 2020-07-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20200092036A (ko) * | 2019-01-24 | 2020-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI740187B (zh) * | 2019-02-20 | 2021-09-21 | 慧榮科技股份有限公司 | 存取方法 |
JP2022529151A (ja) | 2019-04-18 | 2022-06-17 | アボット ダイアベティス ケア インコーポレイテッド | 検体監視環境において無線通信を処理するためのシステム、装置、及び方法 |
WO2020257977A1 (en) * | 2019-06-24 | 2020-12-30 | Micron Technology, Inc. | Memory device with parity data system and method |
CN110476209B (zh) * | 2019-06-28 | 2020-11-17 | 长江存储科技有限责任公司 | 三维存储器件中的存储器内计算 |
KR20210038753A (ko) * | 2019-09-30 | 2021-04-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US10861508B1 (en) * | 2019-11-11 | 2020-12-08 | Sandisk Technologies Llc | Transmitting DBI over strobe in nonvolatile memory |
KR20210128240A (ko) * | 2020-04-16 | 2021-10-26 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이의 동작 방법 |
TWI732642B (zh) * | 2020-08-03 | 2021-07-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US11656937B2 (en) * | 2020-08-25 | 2023-05-23 | Micron Technology, Inc. | Techniques for error detection and correction in a memory system |
KR102317788B1 (ko) * | 2021-05-14 | 2021-10-26 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 컨트롤러의 동작 방법 |
US11636008B2 (en) * | 2021-09-01 | 2023-04-25 | Micron Technology, Inc. | Tracking host-provided metadata in a memory sub-system |
KR102553263B1 (ko) * | 2021-11-10 | 2023-07-10 | 삼성전자 주식회사 | 스토리지 장치 및 이의 동작 방법 |
KR102641756B1 (ko) | 2021-11-11 | 2024-02-29 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101218635A (zh) * | 2005-08-24 | 2008-07-09 | 三星电子株式会社 | 确保信息记录介质的再现兼容性的方法、记录/再现设备及信息记录介质 |
CN103413571A (zh) * | 2013-07-29 | 2013-11-27 | 西北工业大学 | 存储器和利用该存储器实现检错纠错的方法 |
CN103733595A (zh) * | 2011-04-07 | 2014-04-16 | 交互数字专利控股公司 | 用于本地数据缓冲的方法和设备 |
CN103874980A (zh) * | 2011-08-16 | 2014-06-18 | 净睿存储股份有限公司 | 存储系统中的映射 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430859A (en) | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
JP4049297B2 (ja) * | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
JP3745709B2 (ja) * | 2002-06-28 | 2006-02-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 符号化装置、復号化装置、符号化方法、復号化方法、プログラム、プログラム記録媒体、及びデータ記録媒体 |
US20050071570A1 (en) | 2003-09-26 | 2005-03-31 | Takasugl Robin Alexis | Prefetch controller for controlling retrieval of data from a data storage device |
US7343470B1 (en) | 2003-09-26 | 2008-03-11 | Altera Corporation | Techniques for sequentially transferring data from a memory device through a parallel interface |
JP2007310803A (ja) * | 2006-05-22 | 2007-11-29 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書き込み方法および読み出し方法 |
US20110066768A1 (en) | 2007-07-23 | 2011-03-17 | Rod Brittner | Quality of service and streaming attributes for a data storage device |
KR101226685B1 (ko) * | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
KR101086855B1 (ko) * | 2008-03-10 | 2011-11-25 | 주식회사 팍스디스크 | 고속 동작하는 반도체 스토리지 시스템 및 그 제어 방법 |
KR101529290B1 (ko) | 2008-10-02 | 2015-06-17 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 데이터 처리 방법 |
US8438453B2 (en) | 2009-05-06 | 2013-05-07 | Apple Inc. | Low latency read operation for managed non-volatile memory |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
JP2011198133A (ja) | 2010-03-19 | 2011-10-06 | Toshiba Corp | メモリシステムおよびコントローラ |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
KR101682666B1 (ko) * | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
KR101861247B1 (ko) * | 2011-04-06 | 2018-05-28 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템 |
PL2728866T3 (pl) * | 2011-06-28 | 2019-05-31 | Samsung Electronics Co Ltd | Sposób dekodowania wideo z wykorzystaniem dekodowania arytmetycznego |
US9318166B2 (en) * | 2011-07-22 | 2016-04-19 | SanDisk Technologies, Inc. | Systems and methods of storing data |
US9817761B2 (en) | 2012-01-06 | 2017-11-14 | Sandisk Technologies Llc | Methods, systems, and computer readable media for optimization of host sequential reads or writes based on volume of data transfer |
KR101888009B1 (ko) | 2012-02-28 | 2018-09-07 | 삼성전자주식회사 | 저장 장치 |
US8812936B2 (en) * | 2012-07-06 | 2014-08-19 | Sandisk Technologies Inc. | Using slow response memory device on a fast response interface |
US9135155B2 (en) | 2012-11-30 | 2015-09-15 | Sandisk Technologies Inc. | Storage and retrieval of shaped data |
US9116822B2 (en) * | 2012-12-07 | 2015-08-25 | Micron Technology, Inc. | Stopping criteria for layered iterative error correction |
US20150046772A1 (en) * | 2013-08-06 | 2015-02-12 | Sandisk Technologies Inc. | Method and device for error correcting code (ecc) error handling |
US10073731B2 (en) * | 2013-11-27 | 2018-09-11 | Intel Corporation | Error correction in memory |
US9542344B2 (en) | 2014-02-19 | 2017-01-10 | Sandisk Technologies Llc | Datapath management in a memory controller |
KR102242037B1 (ko) * | 2014-04-07 | 2021-04-21 | 삼성전자주식회사 | 불 휘발성 메모리 장치 |
-
2015
- 2015-12-14 KR KR1020150178369A patent/KR102473209B1/ko active IP Right Grant
-
2016
- 2016-12-14 CN CN201611156442.0A patent/CN107045462B/zh active Active
- 2016-12-14 US US15/379,110 patent/US10090858B2/en active Active
-
2018
- 2018-08-29 US US16/116,500 patent/US10637502B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101218635A (zh) * | 2005-08-24 | 2008-07-09 | 三星电子株式会社 | 确保信息记录介质的再现兼容性的方法、记录/再现设备及信息记录介质 |
CN103733595A (zh) * | 2011-04-07 | 2014-04-16 | 交互数字专利控股公司 | 用于本地数据缓冲的方法和设备 |
CN103874980A (zh) * | 2011-08-16 | 2014-06-18 | 净睿存储股份有限公司 | 存储系统中的映射 |
CN103413571A (zh) * | 2013-07-29 | 2013-11-27 | 西北工业大学 | 存储器和利用该存储器实现检错纠错的方法 |
Also Published As
Publication number | Publication date |
---|---|
US10090858B2 (en) | 2018-10-02 |
KR102473209B1 (ko) | 2022-12-02 |
US20170170845A1 (en) | 2017-06-15 |
KR20170070921A (ko) | 2017-06-23 |
US20190036546A1 (en) | 2019-01-31 |
CN107045462A (zh) | 2017-08-15 |
US10637502B2 (en) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107045462B (zh) | 存储装置 | |
CN108121669B (zh) | 存储器系统及其操作方法 | |
KR102529696B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US20160357462A1 (en) | Nonvolatile Memory Modules and Data Management Methods Thereof | |
TWI725029B (zh) | 記憶體系統及其操作方法 | |
KR102468751B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20170003776A (ko) | 저장 장치 및 그것의 가비지 컬렉션 방법 | |
KR20180069960A (ko) | 메모리 시스템 및 그의 동작 방법 | |
TWI693607B (zh) | 記憶體系統及記憶體系統的操作方法 | |
KR102479483B1 (ko) | 메모리 시스템 및 이의 동작 방법 | |
KR102603243B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
KR20160075174A (ko) | 메모리 시스템 및 그 동작방법 | |
KR102475798B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR102643467B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN112542201A (zh) | 存储设备及操作该存储设备的方法 | |
US10318167B2 (en) | Memory system and method for controlling operation based on read number | |
US11561725B2 (en) | System and operating method thereof | |
KR102665270B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
CN114356208A (zh) | 存储器系统及其操作方法 | |
KR20190108788A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US9478289B1 (en) | Semiconductor memory device and operating method thereof | |
CN112084119A (zh) | 存储装置、主机装置以及操作存储装置和主机装置的方法 | |
KR20200023756A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US20150178153A1 (en) | Memory system | |
US11334505B2 (en) | System and method for operating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |