CN111796962A - 存储装置以及存储装置的操作方法 - Google Patents
存储装置以及存储装置的操作方法 Download PDFInfo
- Publication number
- CN111796962A CN111796962A CN201911244631.7A CN201911244631A CN111796962A CN 111796962 A CN111796962 A CN 111796962A CN 201911244631 A CN201911244631 A CN 201911244631A CN 111796962 A CN111796962 A CN 111796962A
- Authority
- CN
- China
- Prior art keywords
- data
- source
- page
- target
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- 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
- G11C16/10—Programming or data input circuits
-
- 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
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本申请涉及一种具有提高的数据恢复能力的存储器控制器。该存储器控制器包括:操作控制器,被配置为控制存储器装置以读取源条带中的第一至第三源页面和源奇偶校验页面,并且对目标条带中的第一至第三目标页面和目标奇偶校验页面执行编程操作;编程数据确定器,被配置为确定待编程在第一至第三目标页面中的第一至第三编程数据,并且将从第一和第二源页面成功读取的数据确定为第一和第二编程数据,并且根据对第三源页面的读取操作是否已经失败,将恢复数据确定为第三编程数据;以及奇偶校验计算器,被配置为通过使用第一编程数据和第二编程数据来生成计算数据,并通过使用源奇偶校验数据和计算数据来生成恢复数据。
Description
相关申请的交叉引用
本申请文件要求于2019年4月2日提交的申请号为10-2019-0038704的韩国专利申请的优先权和权益,该韩国专利申请通过引用全部并入本文用于所有目的。
技术领域
所公开技术的各个实施方式总体涉及一种电子装置,并且更特别地,涉及一种存储装置以及存储装置的操作方法。
背景技术
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括用于存储数据的存储器装置和用于控制存储器装置的存储器控制器。存储器装置被分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供应电力时存储数据而在电力供应被中断时所存储的数据消失的存储器装置。易失性存储器装置可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是即使电力供应被中断数据也不会消失的存储器装置。非易失性存储器装置可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEROM)、闪速存储器等。
发明内容
实施例提供了一种具有提高的数据恢复能力的存储器装置以及存储装置的操作方法。
根据所公开技术的一方面,提供了一种存储器控制器,该存储器控制器用于控制多个存储器装置将源条带中存储的数据存储在目标条带中,该存储器控制器包括:操作控制器,被配置为对源页面和源奇偶校验页面执行读取操作,并且控制多个存储器装置以对目标页面和目标奇偶校验页面执行编程操作;编程数据确定器,被配置为将从源页面之中的读取操作通过的第一源页面获取的数据确定为待存储在分别与第一源页面相对应的第一目标页面中的编程数据,并且将恢复数据确定为待存储在与源页面之中的读取操作失败的第二源页面相对应的第二目标页面中的数据;以及奇偶校验计算器,被配置为生成通过对编程数据进行异或(XOR)运算而获得的计算数据,并且通过使用源奇偶校验数据和计算数据来生成恢复数据,其中源条带包括源页面和用于存储通过对源页面中存储的数据执行XOR运算而获得的源奇偶校验数据的源奇偶校验页面,其中目标条带包括分别与源页面相对应的目标页面和用于存储通过对待存储在目标页面中的数据执行XOR运算而获得的目标奇偶校验数据的目标奇偶校验页面。
根据所公开技术的另一方面,提供一种存储装置,包括:多个存储器装置,被配置为对源页面和源奇偶校验页面执行读取操作,并且对分别与源页面对应的目标页面和目标奇偶校验页面执行编程操作;以及存储器控制器,被配置为:控制多个存储器装置以执行读取操作和编程操作,将从源页面之中的读取操作通过的第一源页面中获取的数据确定为待存储在分别与第一源页面对应的第一目标页面中的编程数据,生成通过对编程数据执行异或(XOR)运算而获得的计算数据,通过使用源奇偶校验数据和计算数据来生成恢复数据,以及将恢复数据确定为待存储在与源页面之中的读取操作失败的第二源页面相对应的第二目标页面中的数据。
根据所公开技术的又一方面,提供一种用于操作存储装置的方法,该存储装置包括多个存储器装置和用于控制多个存储器装置的存储器控制器,该方法包括:对源页面和源奇偶校验页面执行读取操作;将从源页面之中的读取操作通过的第一源页面获取的数据确定为待存储在分别与第一源页面相对应的第一目标页面中的编程数据;将编程数据存储在第一目标页面中;生成通过对编程数据执行异或(XOR)运算而获得的计算数据;通过使用通过对源页面中存储的数据执行XOR运算而获得的源奇偶校验数据和计算数据生成恢复数据;并且将恢复数据确定为待存储在与源页面之中的读取操作失败的第二源页面相对应的第二目标页面中的数据。
附图说明
图1是示出根据所公开技术的实施例的存储装置的示图的示例。
图2是示出图1所示的存储器装置的结构的示图的示例。
图3是示出图2所示的存储器单元阵列的实施例的示图的示例。
图4是示出图3所示的存储块的电路图的示例。
图5是示出图3所示的存储块的电路图的另一示例。
图6是示出用于控制多个存储器装置的存储器控制器的操作的示图的示例。
图7是示出超级块和条带的示图的示例。
图8是示出根据所公开技术的实施例的存储器控制器的配置和操作的示图的示例。
图9是示出根据所公开技术的实施例的数据复制操作的示图的示例。
图10是示出图9所示的数据复制操作的示图的示例。
图11是示出根据所公开技术的实施例的存储器控制器的操作的流程图的示例。
图12是示出根据所公开技术的实施例的存储装置的操作的流程图的示例。
图13是示出图1所示的存储器控制器的另一实施例的示图的示例。
图14是示出应用了根据所公开技术的实施例的存储装置的存储卡系统的框图的示例。
图15是示出应用了根据所公开技术的实施例的存储装置的固态驱动器(SSD)系统的框图的示例。
图16是示出应用了根据所公开技术的实施例的存储装置的用户系统的框图的示例。
具体实施方式
在下文中,将参照附图详细地描述本公开技术的示例性实施例。
图1是示出根据所公开技术的实施例的存储装置的示图。
参照图1,存储装置50可以包括存储器装置100和被配置为控制存储器装置100的操作的存储器控制器200。存储装置50可以是用于在主机300的控制下存储数据的装置,诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或者车载信息娱乐系统。主机300可以包括包含主机接口的主机装置。
根据允许与主机300通信的主机接口协议,存储装置50可以被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体卡(SMC)、记忆棒或其他。
存储装置50可以被制造为各种封装类型中的任意一种。例如,存储装置50可以被制造为诸如以下的各种封装类型中的任意一种:堆叠式封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100与存储器控制器200通信并且在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。
存储器单元中的每一个可以被配置为用于存储1个数据位的单层单元(SLC)、用于存储2个数据位的多层单元(MLC)、用于存储3个数据位的三层单元(TLC)或用于存储4个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储在存储器装置100中的数据的单元。存储块可以是用于擦除数据的单元。
在实施例中,存储器控制器200可以控制多个存储器装置100。在一些实施方式中,存储器控制器200可以使用超级块来控制存储器装置100。超级块可以指示至少两个不同的存储器装置中包括的存储块组。超级块可以包括一个或多个条带。条带可以包括超级块中包括的并且联接到相同的字线的页面组。
条带可以是源条带或目标条带。在一些实施方式中,源条带可以指存储待被存储在目标条带中的数据的条带。在实施例中,源条带可以包括源页面和源奇偶校验页面。目标条带可以包括目标页面和目标奇偶校验页面。源页面和源奇偶校验页面中的每一个可以包括在多个存储器装置之中的不同存储器装置100中。目标页面和目标奇偶校验页面中的每一个可以包括在多个存储器装置之中的不同存储器装置100中。目标页面可以分别对应于源页面。在本文件中稍后将参照图6和图7进一步解释包括超级块、源条带和/或目标条带的存储器装置的数据结构。
在实施例中,存储器装置100可以是或包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)或其它。在本说明书中,为了便于描述并且仅作为示例目的,将存储器装置100假定并描述为NAND闪速存储器。
存储器装置100从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的、由地址选择的区域。因此,存储器装置100可以对由地址选择的区域执行与命令对应的操作。例如,存储器装置100可执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器装置100可以将数据编程在由地址选择的区域中。在读取操作中,存储器装置100可以从由地址选择的区域中读取数据。在擦除操作中,存储器装置100可以擦除存储在由地址选择的区域中的数据。
存储器控制器200可以控制存储装置50的全部操作。
当电力被施加到存储装置50时,存储器控制器200可以运行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可以运行诸如闪存转换层(FTL)的FW以控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为物理块地址(PBA),该PBA表示在存储器装置100中包括的待存储数据的存储器单元的地址。
存储器控制器200可以控制存储器装置100以响应于来自主机300的请求执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可将编程命令、PBA和数据提供至存储器装置100。在读取操作中,存储器控制器200可以将读取命令和PBA提供至存储器装置100。在擦除操作中,存储器控制器200可以将擦除命令和PBA提供至存储器装置100。
在实施例中,存储器控制器200可以不管来自主机300的请求而自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传送到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供至存储器装置100以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可根据交织方案控制存储器装置,以便提高操作性能。该交织方案可以是或包括允许至少两个存储器装置100的操作部分彼此重叠的操作方案。
在实施例中,存储器控制器200可以包括操作控制器210、编程数据确定器220和奇偶校验计算器230。
操作控制器210可以控制多个存储器装置100,使得目标条带可以存储源条带中存储的数据。在实施例中,源条带可以包括源页面和源奇偶校验页面。目标条带可以包括目标奇偶校验页面和分别与源页面相对应的目标页面。源奇偶校验页面可以存储通过对源页面中存储的数据执行异或(XOR)运算而获得的源奇偶校验数据。目标奇偶校验页面可以存储通过对待存储在目标页面中的数据进行XOR运算而获得的目标奇偶校验数据。
在一些实施方式中,操作控制器210可以控制多个存储器装置100对源页面和源奇偶校验页面执行读取操作。操作控制器210可以从多个存储器装置100获取作为通过执行读取操作而获得的结果的读取数据。
在实施例中,第一源页面可以指源页面之中的读取操作已经成功的源页面。第二源页面可以指源页面之中的读取操作失败的源页面。与第一源页面相对应的目标页面可以称为第一目标页面。与第二源页面相对应的目标页面可以称为第二目标页面。
可以基于对通过执行读取操作获得的结果的错误校正解码是已经成功还是已经失败来确定读取操作是已经成功还是已经失败。对于错误校正解码,存储器控制器可以进一步包括被配置为对从源页面和源奇偶校验页面读取的结果执行错误校正解码的错误校正码(ECC)解码器(未示出)。ECC解码器通信地联接到操作控制器210、编程数据确定器220或奇偶校验计算器230中的至少一个,并且提供错误校正解码的结果。当对通过执行读取操作获得的结果的错误校正解码成功时,指示读取操作已经成功。当对通过执行读取操作获得的结果的错误校正解码失败时,指示读取操作已经失败。
操作控制器210可以控制多个存储器装置100以将由编程数据确定器220确定的编程数据存储在目标页面和目标奇偶校验页面中。
例如,操作控制器210可以控制多个存储器装置100以将从读取操作已经成功的第一源页面获取的数据存储在第一目标页面中。因此,从第一源页面读取的数据在操作控制器210的控制下将被存储在与第一源页面相对应的第一目标页面中。在一些实施方式中,操作控制器210可以控制多个存储器装置100以将恢复数据存储到第二目标页面。因此,恢复数据在操作控制器210的控制下将被存储在与第二源页面相对应的第二目标页面中。这样,操作控制器210可以控制存储器装置100基于对与目标页面对应的源页面的读取操作的成功将从相应源页面读取的数据或者恢复数据存储在目标页面中。操作控制器210可以控制多个存储器装置100将目标奇偶校验数据存储在目标奇偶校验页面中。
编程数据确定器220可以基于从多个存储器装置100获取的读取数据来确定待存储在目标页面和目标奇偶校验页面中的编程数据。
在实施例中,编程数据确定器220可以将从第一源页面获取的数据确定为待存储在第一目标页面中的编程数据。编程数据确定器220可以将由奇偶校验计算器230生成的恢复数据确定为待存储在第二目标页面中的编程数据。编程数据确定器220可以将由奇偶校验计算器230生成的目标奇偶校验数据确定为待存储在目标奇偶校验页面中的编程数据。
当编程数据确定器220基于读取数据确定待存储在第一目标页面中的编程数据时,奇偶校验计算器230可以生成计算数据。计算数据可以是通过对待存储在第一目标页面中的编程数据的XOR运算而获得的数据。在实施例中,奇偶校验计算器230可以在对第一目标页面执行编程操作的同时生成计算数据。
在实施例中,当对源页面的读取操作中的任意一个读取操作失败时,奇偶校验计算器230可以生成恢复数据。一个读取操作已经失败的源页面可以是第二源页面。奇偶校验计算器230可以通过对计算数据和源奇偶校验数据执行XOR运算来生成恢复数据。计算数据可以是奇偶校验计算器230通过对待存储在第一目标页面中的编程数据执行XOR运算而已经获得并存储的数据。源奇偶校验数据可以是由操作控制器210获取的读取数据中包括的数据。
奇偶校验计算器230可以生成通过对恢复数据和计算数据执行XOR运算而获得的目标奇偶校验数据。奇偶校验计算器230可以以各种方式执行XOR运算。
主机300可以使用诸如以下的各种通信方式中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)。
图2是示出如图1所示的存储器装置的结构的示图。
参照图2,存储器装置100可以包括存储器单元阵列100、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。多个存储块BLK1至BLKz通过位线BL1至BLm联接到读取/写入电路123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。
在实施例中,多个存储器单元可以是非易失性存储器单元。联接到多个存储器单元之中的相同字线的存储器单元可以被定义为一个物理页面。也就是说,存储器单元阵列110可以利用多个物理页面来配置。根据所公开技术的实施例,包括在存储器单元阵列110中的多个存储块BLK1至BLKz中的每一个可包括多个虚设单元。一个或多个虚设单元可以串联地联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
存储器装置的存储器单元中的每一个可以被配置为用于存储1个数据位的单层单元(SLC)、用于存储2个数据位的多层单元(MLC)、用于存储3个数据位的三层单元(TLC)或用于存储4个数据位的四层单元(QLC)。
外围电路120可以包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。
外围电路120驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和共源线。根据所公开技术的实施例,字线可以包括普通字线和虚设字线。根据所公开技术的实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下进行操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可以解码接收的地址ADDR中的块地址。地址解码器121根据经解码的块地址选择存储块BLK1至BLKz之中的至少一个存储块。地址解码器121可以解码接收的地址ADDR中的行地址。地址解码器121可以通过根据经解码的行地址RADD将从电压生成器122提供的电压施加到字线WL来选择被选择存储块的至少一个字线。
在编程操作中,地址解码器121可以将编程电压施加到被选择字线,并且将具有低于编程电压的电平的通过电压施加到未选择字线。在编程验证操作中,地址解码器121可以将验证电压施加到被选择字线,并且将具有高于验证电压的电平的验证通过电压施加到未选择字线。
在读取操作中,地址解码器121可以将读取电压施加到被选择字线,并且将高于读取电压的电平的读取通过电压施加到未选择字线。
根据所公开技术的实施例,以存储块为单位对存储器装置100执行擦除操作。在擦除操作中,输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以解码块地址,并且根据经解码的块地址选择一个存储块。在擦除操作中,地址解码器121可以将接地电压施加到与被选择存储块联接的字线。
根据所公开技术的实施例,地址解码器121可以解码向其传送的地址ADDR中的列地址。经解码的列地址(DCA)可以被传送到读取/写入电路123。在示例中,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122可以通过使用供应至存储器装置100的外部电源电压生成多个操作电压Vop。电压生成器122在控制逻辑130的控制下进行操作。
在实施例中,电压生成器122可以通过调整外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器122可以生成存储器装置100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。
为了生成具有各种电压电平的多个操作电压Vop,电压生成器122可以包括用于接收内部电源电压的多个泵电容器,并且在控制逻辑130的控制下通过选择性地启用多个泵电容器来生成多个操作电压Vop。
多个生成的电压Vop可以由地址解码器121被供应到存储器单元阵列110。
读取/写入电路123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm通过各个第一至第m位线BL1至BLm联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下进行操作。
第一至第m页面缓冲器PB1至PBm与数据输入/输出电路124通信数据DATA。在编程操作中,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待被存储的数据DATA。
在编程操作中,当编程脉冲被施加到被选择字线时,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至位线BLm将通过数据输入/输出电路124接收的数据DATA传送到被选择存储器单元。根据所传送的数据DATA对被选择页面的存储器单元进行编程。与通过其施加编程允许电压(例如,接地电压)的位线联接的存储器单元可以具有增加的阈值电压。可以保持以通过其施加编程禁止电压(例如,电源电压)的位线联接的存储器单元的阈值电压。在编程验证操作中,第一至第m页面缓冲器PB1至PBm通过位线BL1至BLm从被选择存储器单元读取在被选择存储器单元中存储的数据DATA。
在读取操作中,读取/写入电路123可以通过位线BL从被选择页面的存储器单元读取数据DATA,并且将读取数据DATA存储在第一至第m页面缓冲器PB1至PBm中。
在擦除操作中,读取/写入电路123可以使位线BL浮置。在实施例中,读取/写入电路123可以包括列选择电路。
在实施例中,当在读取/写入电路123中包括的多个页面缓冲器之中的一些页面缓冲器中存储的数据正被编程在存储器单元阵列110中时,其它页面缓冲器可以从存储器控制器200接收新数据并且存储新数据。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124在控制逻辑130的控制下进行操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作中,数据输入/输出电路124可以从外部控制器(未示出)接收待被存储的数据DATA。在读取操作中,数据输入/输出电路124将从读取/写入电路123中包括的第一至第m页面缓冲器PB1至PBm传送的数据输出到外部控制器。
在读取操作或验证操作中,感测电路125可以响应于由控制逻辑130生成的允许位VRYBIT信号生成参考电流,并且通过将从读取/写入电路123接收的感测电压VPB和由参考电流生成参考电压进行比较将通过信号或失败信号输出到控制逻辑130。
控制逻辑130可以联接到地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传送的命令CMD进行操作。
控制逻辑130可以通过响应于命令CMD和地址ADDR生成若干信号来控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR生成操作信号OPSIG、行地址RADD、读取/写入电路控制信号PBSIGNALS和允许位VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将行地址RADD输出到地址解码器121,将读取/写入电路控制信号PBSIGNALS输出到读取/写入电路123,并且将允许位VRYBIT输出到感测电路125。而且,控制逻辑130可以响应于由感测电路125输出的通过信号PASS或失败信号FAIL来确定验证操作是已经成功还是已经失败。
图3是示出图2所示的存储器单元阵列的实施例的示图。
参照图3,存储器单元阵列110可以包括多个存储块BLK1至BLKz。每个存储块可以具有三维结构。每个存储块可以包括堆叠在衬底(未示出)上的多个存储器单元。多个存储器单元可以沿+X方向、+Y方向和+Z方向布置。将参照图4和图5更详细地描述每个存储块的结构。
图4是示出图3中所示的存储块BLK1至BLKz之中的任意一个存储块BLKa的电路图。
参照图4,存储块BLKa可包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,多个单元串CS11至CS1m和单元串CS21至CS2m中的每一个可以形成为“U”形。在存储块BLKa中,m个单元串布置在行方向(即,+X方向)上。图4示出了两个单元串布置在列方向(即,+Y方向)上。然而,这是为了便与描述,并且将理解的是,可以在列方向上布置三个单元串。
多个单元串CS11至CS1m和多个单元串CS21至CS2m中的每一个可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以具有彼此相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层。在实施例中,可以在每个单元串中设置用于提供沟道层的柱(pillar)。根据实施例,可以在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST联接在共源线CSL和存储器单元MC1至MCn之间。
在实施例中,布置在相同行上的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行上的单元串的源极选择晶体管联接到不同的源极选择线。在图4中,第一行上的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行上的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在另一实施例中,单元串CS11至CS1m和单元串CS21至CS2m的源极选择晶体管可以共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可以被划分为第一至第p存储器单元MC1至MCp以及第(p+1)至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地布置在+Z方向的相反方向上,并且串联地联接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn顺序布置在+Z方向上并且串联地联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn通过管道晶体管PT联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接到管线PL。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MCp+1至MCn之间。布置在行方向上的单元串联接到在行方向上延伸的漏极选择线。第一行上的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行上的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
布置在列方向上的单元串联接到在列方向上延伸的位线。在图4中,第一列上的单元串CS11和CS21联接到第一位线BL1。第m列上的单元串CS1m和CS2m联接到第m位线BLm。
布置在行方向上的单元串中的、联接到相同字线的存储器单元构成一个页面。例如,第一行上的单元串CS11至CS1m中的、联接到第一字线WL1的存储器单元构成一个页面。第二行上的单元串CS21至CS2m中的、联接到第一字线WL1的存储器单元构成另一页面。当漏极选择线DSL1和DSL2中的任意一个被选择时,布置在一个行方向的单元串可以被选择。当字线WL1至WLn中的任意一个被选择时,被选择单元串中的一个页面可以被选择。
在另一实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11至CS1m或单元串CS21至CS2m之中的偶数编号的单元串可以分别联接到偶数位线,并且布置在行方向上的单元串CS11至CS1m或单元串CS21至CS2m中的奇数编号的单元串可以分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,可以设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,可以设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚设存储器单元的数量增加时,存储块BLKa的操作的可靠性提高。另一方面,存储块BLKa的大小增加。当虚设存储器单元的数量减少时,存储块BLAck的大小减小。另一方面,存储块BLAnk的操作的可靠性可能劣化。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元可以具有所需的阈值电压。在对存储块BLKa的擦除操作之前或之后,可以对全部或一些虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,控制施加到与各个虚设存储器单元联接的虚设字线的电压,使得虚设存储器单元可具有所需的阈值电压。
图5是示出图3所示的存储块BLK1至BLKz中的一个存储块的另一实施例BLKb的电路图。
参照图5,存储块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m’中的每一个沿+Z方向延伸。多个单元串CS11'至CS1m'和CS21’至CS2m’中的每一个包括堆叠在存储块BLKb下面的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn和至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST联接在共源线CSL和存储器单元MC1至MCn之间。布置在相同行上的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行上的单元串CS11'至CS1m'的源极选择晶体管联接到第一源极选择线SSL1。布置在第二行上的单元串CS21'至CS2m'的源极选择晶体管联接到第二源极选择线SSL2。在另一实施例中,单元串CS11'至CS1m'和单元串CS21’至CS2m’的源极选择晶体管可以共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn串联地联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极电极分别联接到第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接到在行方向上延伸的漏极选择线。第一行上的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行上的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
因此,除了图5中的每个单元串排除管道晶体管PT之外,图5的存储块BLKb具有与图4的存储块BLKa的电路相似的电路。
在另一实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11至CS1m或单元串CS21至CS2m中的偶数编号的单元串可以分别联接到偶数位线,并且布置在行方向上的单元串CS11至CS1m或单元串CS21至CS2m中的奇数编号的单元串可以分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,可以设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,可以设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚设存储器单元的数量增加时,存储块BLKb的操作的可靠性提高。另一方面,存储块BLKb的大小增加。当虚设存储器单元的数量减少时,存储块BLKb的大小减小。另一方面,存储块BLKb的操作的可靠性可能劣化。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元可以具有所需的阈值电压。在存储块BLKb的擦除操作之前或之后,可以对全部或一些虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,控制施加到与各个虚设存储器单元联接的虚设字线的电压,使得虚设存储器单元可具有所需的阈值电压。
图6是示出用于控制多个存储器装置的存储器控制器的操作的示图的示例。
参照图6,存储器控制器200可以通过第一通道CH1和第二通道CH2联接到多个存储器装置。通道的数量和联接到每个通道的存储器装置的数量不限于该实施例。
作为特定示例,图6示出四个存储器装置Die_11、Die_12、Die_13和Die_14可以共同地联接到第一通道CH1并且通过第一通道CH1与存储器控制器200通信。
在一些实施方式中,存储器装置Die_11、Die_12、Die_13和Die_14可以被配置为使得每次存储器装置Die_11、Die_12、Die_13和Die_14中的一个与存储器控制器200通信。存储器装置Die_11、Die_12、Die_13和Die_14可以在不与存储器控制器200通信的情况下同时执行其操作。
在图6中,另外四个存储器装置Die_21、Die_22、Die_23和Die_24可以共同联接到第二通道CH2,并且通过第二通道CH2与存储器控制器200通信。
在一些实施方式中,存储器装置Die_21、Die_22、Die_23和Die_24可以被配置为使得每次存储器装置Die_21、Die_22、Die_23和Die_24中的一个与存储器控制器200通信。存储器装置Die_21、Die_22、Die_23和Die_24可以在不与存储器控制器200通信的情况下同时执行其操作。
使用多个存储器装置的存储装置可以通过使用数据交织来提高性能。为了实现数据交织,可以以通道和通路为单位管理存储器装置。数据交织可以指示在两个或更多个通路共享一个通道的结构中使用交织方案的数据通信技术。数据交织可以包括在通路之间移动的同时执行读取操作或写入操作。为了使联接到每个通道的存储器装置的并行最大化,存储器控制器200可以将连续逻辑存储区域分发和分配给通道和通路。
例如,在图6中,存储器控制器200可以通过第一通道CH1将包括命令、地址和数据的控制信号传送到存储器装置Die_11。存储器装置Die_11接收从存储器控制器200传送的数据。当存储器装置Die_11正在将被传送数据编程在存储器装置Die_11中包括的存储器单元中时,存储器控制器200可以将包括命令以及地址和数据的控制信号传送到存储器装置Die_12。
作为示例,在图6中,多个存储器装置可以被布置为配置四个通路WAY1至WAY4。第一通路WAY1可以包括存储器装置Die_11和Die_21。第二通路WAY2可以包括存储器装置Die_12和Die_22。第三通路WAY3可以包括存储器装置Die_13和Die_23。第四通路WAY4可以包括存储器装置Die_14和Die_24。
通道CH1和CH2中的每一个可以是或对应于由与相应通道联接的存储器装置共享和使用的信号总线。
虽然在图6中描述了以2-通道/4-通路结构的数据交织,但是数据交织的效率可以随着通道数量和通路数量变大变得更高效。
图7是示出超级块和条带的示图的示例。
作为示例,图7示出了存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同地联接到通道CH0。
在图7中,每个存储器装置可以包括一个或多个平面。为了便于描述,在图7中示出一个存储器装置包括一个平面。存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03中的每一个中包括的一个平面可以包括存储块BLK0至BLKn,并且一个存储块可以包括页面Page 0至Page k。
存储器控制器可以使用超级块来控制联接到一个通道的存储器装置。在一些实施方式中,存储器控制器以超级块为单元控制存储器装置。超级块可以指示至少两个不同的存储器装置中包括的存储块组。例如,在存储器装置_00至存储器装置_03中包括的第零存储块BLK0可以构成第零超级块超级块0。以这种方式,联接到第零通道CH0的存储器装置_00至存储器装置_03可以包括第零至第n超级块Super Block 0至Super Block n。
一个超级块可以被配置为包括一个或多个条带。条带可以包括超级块中包括的并且联接到同一字线的页面组。在一些实施方式中,条带可以被称为超级页面。
一个条带或超级页面可以包括多个页面。例如,在第零超级块Super Block 0中包括的第零存储块BLK0中的每一个中的第零页面Page 0可以构成第零条带Stripe 0或第零超级页面Super Page 0。
因此,第零至第k条带Stripe 0至Stripe k可以包括在一个超级块中。可选地,第零至第k超级页面Super Page 0至Super Page k可以包括在一个超级块中。
当存储器控制器将数据存储在存储器装置_00至存储器装置_03时,或者当存储器控制器读取存储在存储器装置_00至存储器装置_03中的数据时,存储器控制器可以以条带或超级页面为单元存储或读取数据。
图8是示出根据所公开技术的实施例的存储器控制器的配置和操作的示图的示例。
参照图8,存储器控制器200可以控制多个存储器装置100。存储器控制器200可以包括操作控制器210、编程数据确定器220和奇偶校验计算器230。
操作控制器210可以控制多个存储器装置100,使得在源条带中存储的数据被复制到目标条带。
在实施例中,源条带中包括的源页面和源奇偶校验页面中的每一个可以包括在多个存储器装置100之中的不同存储器装置100中。目标条带中包括的目标页面和目标奇偶校验页面中的每一个可以包括在多个存储器装置100中的不同存储器装置100中。目标页面可以分别对应于源页面。源奇偶校验页面可以存储通过对源页面中存储的数据执行XOR运算而获得的源奇偶校验数据。目标奇偶校验页面可以存储通过对待存储在目标页面中的数据执行XOR运算而获得的目标奇偶校验数据。
在实施例中,源页面之中的第一源页面可以指读取操作成功的源页面。源页面之中的第二源页面可以是读取操作失败的源页面。与第一源页面相对应的目标页面可以称为第一目标页面。与第二源页面相对应的目标页面可以称为第二目标页面。
可以基于对从读取操作获得的结果的错误校正解码是已经成功还是已经失败来确定读取操作是已经成功还是已经失败。当对从对相应源页面的读取操作获得的结果的错误校正解码成功时,确定对相应源页面的读取操作已经成功。当对从对相应源页面的读取操作获得的结果的错误校正解码失败时,确定对相应源页面的读取操作已经失败。
在一些实施方式中,错误校正解码是已经成功还是已经失败可以基于通过将使用读取电压读取的数据中包括的错误位的数量与错误校正解码器的可校正位的数量进行比较而获得的比较结果来确定。当读取数据中包括的错误位的数量等于或小于错误校正解码器的可校正位的数量时,确定错误校正解码已经成功。当读取数据中包括的错误位的数量超过错误校正解码器的可校正位的数量时,确定错误校正解码已经失败。
在一些实施方式中,操作控制器210可以向多个存储器装置100提供指示对源条带中包括的源页面和源奇偶校验页面的读取操作的读取命令。操作控制器100可以获取作为读取操作的结果的读取数据。
操作控制器210可以向多个存储器装置100提供用于将由编程数据确定器220确定的编程数据存储在目标条带中包括的目标页面和目标奇偶校验页面中的编程命令。多个存储器装置100可以在操作控制器210的控制下使用交织方案进行操作。在一些实施方式中,操作控制器210可以将用于存储待存储在存储器装置100的页面中的编程数据的编程命令提供至存储器装置100。
例如,操作控制器210可以提供用于将从第一源页面获取的数据存储在第一目标页面中的编程命令。当存在多个读取操作已经成功的第一源页面时,从多个第一源页面获取的数据可以分别存储在与多个第一源页面相对应的多个第一目标页面中。在这种情况下,操作控制器210可以提供用于将从多个源页面获取的数据存储在多个第一目标页面中的编程命令。操作控制器210可以将用于将恢复数据存储在第二目标页面中的编程命令提供至包括第二目标页面的存储器装置100。操作控制器210可以将用于将目标奇偶校验数据存储在目标奇偶校验页面中的编程命令提供至包括目标奇偶校验页面的存储器装置100。
编程数据确定器220可以基于操作控制器210从多个存储器装置100获取的读取数据,确定待存储在目标页面和目标奇偶校验页面中的编程数据。
在实施例中,编程数据确定器220可以将从第一源页面获取的数据确定为待存储在第一目标页面中的编程数据。编程数据确定器220可以将由恢复数据生成器232生成的恢复数据确定为待存储在第二目标页面中的编程数据。编程数据确定器220可以将由目标奇偶校验数据生成器231生成的目标奇偶校验数据确定为待存储在目标奇偶校验页面中的编程数据。
奇偶校验计算器230可以包括目标奇偶校验数据生成器231和恢复数据生成器232。
当编程数据确定器220基于读取数据确定待存储在第一目标页面中的编程数据时,目标奇偶校验数据生成器231可以生成计算数据。待存储在第一目标页面中的编程数据可以是从读取操作已经成功的第一源页面获取的数据。计算数据可以是通过对待存储在第一目标页面中的编程数据执行XOR运算而获得的数据。在实施例中,目标奇偶校验数据生成器231可以在对第一目标页面执行编程操作的同时生成计算数据。
目标奇偶校验数据生成器231可以通过使用计算数据来生成目标奇偶校验数据。对于多个源页面,当对多个源页面的读取操作全部成功时,目标奇偶校验数据可以是计算数据。当对多个源页面的读取操作中的任意一个读取操作失败时,目标奇偶校验数据可以是通过对计算数据和恢复数据执行XOR运算而获得的数据。因此,当一次读取操作失败时,目标奇偶校验数据生成器231可以生成通过对由恢复数据生成器232生成的计算数据和恢复数据执行XOR运算而获得的目标奇偶校验数据。
当对源页面的读取操作中的任意一个读取操作失败时,恢复数据生成器232可以生成恢复数据。读取操作已经失败的源页面可以是第二源页面。恢复数据生成器232可以通过对计算数据和源奇偶校验数据执行XOR运算来生成恢复数据。计算数据可以是目标奇偶校验数据生成器231通过对待存储在第一目标页面中的编程数据执行XOR运算而已经获得并存储的数据。源奇偶校验数据可以是由操作控制器210获取的读取数据中包括的数据。
奇偶校验计算器230可以以各种方式执行XOR运算。
奇偶校验计算器230可以包括逻辑计算器(未示出)和计算寄存器(未示出)。逻辑计算器可以对输入数据执行XOR运算。计算寄存器可以存储通过对输入数据执行XOR运算而获得的数据。逻辑计算器可以对新输入的数据和先前计算并存储在计算寄存器中的数据执行XOR运算。逻辑计算器可以将通过新执行XOR运算而获得的数据存储在计算寄存器中。逻辑计算器可以对以这种方式累积的输入数据执行XOR运算。
图9是示出根据所公开技术的实施例的数据复制操作的示图的示例。
参照图9,可以执行将在源条带中存储的数据复制到目标条带的操作。在实施例中,可以响应于来自主机的请求,在存储器控制器的控制下执行数据复制操作。在另一实施例中,可以不管来自主机的请求,在存储器控制器的控制下在诸如“垃圾收集”操作或损耗均衡的后台操作中执行数据复制操作。如本文所使用的术语“垃圾收集”可以指垃圾收集器试图回收(垃圾)被不再使用的对象占用的存储器的存储器管理的一种形式。损耗均衡指示用于延长可擦除存储装置的寿命的技术。
作为示例,图9中示出存储器装置Die 1至Die 4。在存储器装置Die 1至Die 4之中,Die 4可以被分配用于奇偶校验,因此被称为奇偶校验装置。奇偶校验装置Die 4可以存储通过对在其它存储器装置中存储的数据执行例如XOR运算而获得的数据。当在其它存储器装置中存储的数据中出现错误时,奇偶校验装置Die 4中存储的数据可以用于恢复错误。为了便于说明,每个存储器装置包括存储块BLK1和BLK2,并且每个存储块包括单个页面。各个存储器装置Die 1至Die 4的存储块BLK1形成源条带,并且各个存储器装置Die 1至Die 4的存储块BLK2形成目标条带。存储器装置Die 1至Die 3中包括的页面可以是源页面。存储器装置Die 4中包括的页面可以是源奇偶校验页面。
在实施例中,源奇偶校验页面可以包括源奇偶校验数据。源奇偶校验数据可以是或包括通过对存储在源页面中的数据进行XOR运算而获得的数据。当在任意一个源页面中出现错误时,源奇偶校验数据可以用于恢复出现错误的源页面。出现错误的源页面中存储的数据可以通过对其它源页面中存储的数据和源奇偶校验数据执行XOR运算来恢复。
存储器装置Die 1至Die 3中包括的页面可以是目标页面。存储器装置Die 4中包括的页面可以是目标奇偶校验页面。
存储器装置Die 1至Die 3中的每一个的存储块BLK 1中包括的第一至第三源页面Page 1_1至Page 1_3可以分别对应于存储器装置Die 1至Die 3中的每一个的存储块BLK 2中包括的第一至第三目标页面Page 1_1至Page 1_3。与源条带中包括的页面对应的存储块的位置以及页面的位置不限于本实施例。与目标条带中包括的页面对应的存储块的位置以及页面的位置不限于本实施例。
在实施例中,源页面中的每一个和分别与源页面相对应的目标页面中的每一个可以包括在相同的存储器装置中。例如,第一源页面Page 1_1和第一目标页面Page 1_1可以包括在相同的存储器装置Die 1中。第二源页面Page 1_2和第二目标页面Page 1_2可以包括在相同的存储器装置Die 2中。第三源页面Page 1_3和第三目标页面Page 1_3可以包括在相同的存储装置Die 3中。第四源奇偶校验页面Page 1_4和第四目标奇偶校验页面Page1_4可以包括在作为相同奇偶校验芯片的存储器装置Die 4中。
在另一实施例中,源页面中的每一个和分别与源页面相对应的目标页面中的每一个可以包括在不同的存储器装置中。例如,假设第一至第八存储器装置与存储器控制器通信,则第一至第四存储器装置可以包括构成源条带的源页面和源奇偶校验页面,而第五和第八存储器装置可以包括构成目标条带的目标页面和目标奇偶校验页面。例如,第一源页面可以包括在第一存储器装置中,第二源页面可以包括在第二存储器装置中,第三源页面可以包括在第三存储器装置中,源奇偶校验页面可以包括在第四存储器装置中,第一目标页面可以包括在第五存储器装置中,第二目标页面可以包括在第六存储器装置中,第三目标页面可以包括在第七存储器装置中,并且目标奇偶校验页面可以包括在第八存储器装置中。
在这种情况下,第一源页面和与第一源页面相对应的第一目标页面可以包括在不同的存储器装置中。以这种方式,其它源页面中的每一个和与其它源页面相对应的目标页面中的每一个可以包括在不同的存储器装置中。
存储器装置的数量、存储器装置中包括的存储块的数量以及存储块中包括的页面的数量不限于本实施例。
在图9中,在源条带中包括的第一至第三源页面Page 1_1至Page 1_3中存储的数据可以被复制到目标条带中包括的第一至第三目标页面Page 1_1至Page 1_3。可以对第一至第三源页面Page 1_1至Page 1_3执行读取操作以获得待被复制的数据。
假设在对第一至第三源页面Page 1_1至1_3的读取操作之中,对第一和第二源页面Page 1_1和Page 1_2的读取操作已经成功而对第三源页面Page 1_3的读取操作已经失败。从读取操作已经成功的第一和第二源页面Page 1_1和Page 1_2获取的数据可以被确定为待编程在相应目标页面中的编程数据。
从第一和第二源页面Page 1_1和Page 1_2获取的、被确定为编程数据的数据可以分别编程在第一和第二目标页面Page 1_1和Page 1_2中。第一和第二目标页面Page 1_1和Page 1_2分别对应于第一和第二源页面Page 1_1和Page 1_2。
在实施例中,当编程数据被确定时,可以生成通过对待存储在第一和第二目标页面Page 1_1和Page 1_2中的被确定为编程数据的数据执行XOR运算而获得的计算数据。在另一实施例中,可以在对第一和第二目标页面Page 1_1和Page 1_2执行编程操作的同时生成计算数据。
从读取操作失败的第三源页面Page 1_3获取的数据不构成编程数据。代替从第三源页面Page 1_3获取的数据,使用在源奇偶校验页面Page 1_4中存储的源奇偶校验数据获得的恢复数据可以被确定为存储在与第三个源页面Page 1_3相对应的第三目标页面Page1_3中的编程数据。
恢复数据可以通过对源奇偶校验数据和计算数据执行XOR运算来获得。在源奇偶校验页面Page 1_4中存储的源奇偶校验数据可以通过对存储在第一至第三源页面Page 1_1至Page 1_3中的数据执行XOR运算来获得。计算数据可以通过对在第一和第二目标页面Page 1_1和Page 1_2中存储的数据执行XOR运算来获得。
当对第一至第三源页面Page 1_1至Page 1_3的读取操作之中的任意一个读取操作失败时,可以生成恢复数据。
目标奇偶校验数据可以被确定为待存储在第四目标奇偶校验页面Page 1_4中的编程数据。目标奇偶校验数据可以通过对存储在第一至第三目标页面Page 1_1至Page 1_3中的数据执行XOR运算来获得。目标奇偶校验数据可以通过对计算数据和恢复数据执行XOR运算来获得。
图10是示出图9所示的数据复制操作的示图的示例。
参照图10,源条带可以包括第一至第三源页面S1至S3以及源奇偶校验页面SP。目标条带可以包括第一至第三目标页面T1至T3和目标奇偶校验页面TP。第一至第三源页面S1至S3可以分别对应于第一至第三目标页面T1至T3。
在第一至第三源页面S1至S3中存储的数据可以被复制到第一至第三目标页面T1至T3。在一些实施方式中,可以读取在第一至第三源页面S1至S3中存储的数据。从第一至第三源页面S1至S3读取的数据可以称为第一至第三读取数据RD1至RD3。通过读取在源奇偶校验页面SP中存储的源奇偶校验数据而获得的数据可以称为第四读取数据RD4。待存储在第一至第三目标页面T1至T3中的编程数据可以称为第一至第三编程数据PgmD1至PgmD3。待存储在目标奇偶校验页面TP中的目标奇偶校验数据可以称为第四编程数据PgmD4。
在图10中,可以对第一至第三源页面S1至S3以及源奇偶校验页面SP执行读取操作。在图10所示的示例中,对第一和第二源页面S1和S2以及源奇偶校验页面SP的读取操作已经成功,而对第三源页面S3的读取操作已经失败。
读取操作是已经成功还是已经失败可以基于对通过执行读取操作获得的读取数据执行的错误校正解码是已经成功还是已经失败来确定。当对读取数据的错误校正解码成功时,表明相应读取操作已经成功。当对读取数据的错误校正解码失败时,读取操作已经失败。
在图10的示例中,对第一和第二源页面S1和S2的读取操作已经成功。从第一源页面S1读取的第一读取数据RD1可以被确定为待存储在第一目标页面T1中的第一编程数据PgmD1。从第二源页面S2读取的第二读取数据RD2可以被确定为待存储在第二目标页面T2中的第二编程数据PgmD2。
参照图8描述的奇偶校验计算器可以通过对待存储在分别与第一源页面S1和第二源页面S2对应的第一目标页面T1和第二目标页面T2的第一编程数据PgmD1和第二编程数据PgmD2执行XOR运算生成计算数据。当从相应源页面读取的读取数据被确定为待存储在目标页面中的编程数据时,奇偶校验计算器可以生成计算数据。例如,当将第一和第二读取数据RD1和RD2确定为第一编程数据PgmD1和第二编程数据PgmD2时,奇偶校验计算器可以生成计算数据。
计算数据可以用于生成待存储在目标奇偶校验页面TP中的目标奇偶校验数据。计算数据可以用于恢复在读取操作已经失败的第三源页面S3中存储的的数据。
当任意读取操作失败时,奇偶校验计算器可以生成恢复数据。例如,当对第三源页面S3的读取操作失败时,奇偶校验计算器可以生成恢复数据。
奇偶校验计算器可以通过对计算数据和源奇偶校验数据执行XOR运算来生成恢复数据。源奇偶校验数据可以通过对在源页面中存储的数据执行XOR运算来获得。例如,源奇偶校验数据可以通过对在第一至第三源页面S1至S3中存储的数据执行XOR运算来获得。恢复数据可以被确定为待存储在与读取操作失败的第三源页面S3相对应的第三目标页面T3中的第三编程数据PgmD3。
奇偶校验计算器可以生成目标奇偶校验数据。目标奇偶校验数据可以是待存储在目标奇偶校验数据TP中的第四编程数据PgmD4。目标奇偶校验数据可以通过对待存储在目标页面中的数据执行XOR运算来获得。例如,目标奇偶校验数据可以通过对待存储在第一至第三目标页面T1至T3中的第一至第三编程数据PgmD1至PgmD3执行XOR运算来获得。
目标奇偶校验数据可以通过对计算数据和恢复数据执行XOR运算来获得。计算数据可以通过对待存储在第一目标页面T1和第二目标页面T2中的第一编程数据PgmD1和第二编程数据PgmD2执行XOR运算来获得。恢复数据可以是待存储在第三目标页面T3中的第三编程数据PgmD3。
当在第一至第三目标页面T1至T3中的任意目标页面中存储的数据中出现错误时,目标奇偶校验数据可以用于恢复错误。
在图10中,可以执行存储第一至第四编程数据PgmD1至PgmD4的编程操作。第一至第四编程数据pgmD1至pgmD4分别对应于第一至第三目标页面T1至T3以及目标奇偶校验页面TP。
图11是示出根据所公开技术的实施例的存储器控制器的操作的流程图的示例。当在垃圾收集期间需要数据传送时,存储器控制器可以执行图11中描述的操作。
参照图11,在步骤S1101中,存储器控制器可以向多个存储器装置提供用于读取在源条带中包括的源页面和源奇偶校验页面的读取命令。
在步骤S1103中,存储器控制器可以将从读取操作已经成功的源页面获取的数据确定为待存储在目标页面中的编程数据。目标页面可以对应于源页面。读取操作的通过可以指读取操作的成功。
在步骤S1105中,每当新编程数据被确定时,存储器控制器就可以通过对编程数据迭代地执行XOR运算来生成计算数据。
在步骤S1107中,存储器控制器可以在生成计算数据的同时提供用于将编程数据存储在与读取操作通过的源页面相对应的目标页面中的编程命令。
在步骤S1109中,一旦对源页面中的任意一个的读取操作失败,则存储器控制器就可以生成通过对计算数据和源奇偶校验数据执行XOR运算而获得的恢复数据。存储器控制器可以获取作为通过对源奇偶校验页面执行读取操作而获得的结果的源奇偶校验数据。
在步骤S1111中,存储器控制器可以向多个存储器装置提供用于将恢复数据存储在与源页面之中的读取操作失败的第二源页面相对应的目标页面中的编程命令。
在步骤S1113中,存储器控制器可以生成通过对计算数据和恢复数据执行XOR运算而获得的目标奇偶校验数据。
在步骤S1115中,存储器控制器可以向多个存储器装置提供用于将目标奇偶校验数据存储在目标奇偶校验页面中的编程命令。
图12是示出根据所公开技术的实施例的存储装置的操作的流程图的示例。当在垃圾收集期间需要数据传送时,存储器装置可以执行图12中描述的操作。
参照图12,在步骤S1201中,存储器装置可以读取包括在源条带中的源页面和源奇偶校验页面。
在步骤S1203中,存储器装置可以将从读取操作成功的源页面获取的数据确定为待存储在目标页面中的编程数据。读取操作的通过可以指读取操作的成功。
在步骤S1205中,每当新编程数据被确定时,存储器装置可以通过对编程数据迭代地执行XOR运算来生成计算数据。
在步骤S1207中,存储装置可以在生成计算数据的同时,将编程数据存储在与读取操作通过的源页面相对应的目标页面中。
在步骤S1209中,一旦对源页面中的任意一个的读取操作失败,则存储器装置就可以通过使用计算数据和源奇偶校验数据来生成恢复数据。存储器装置可以生成通过对先前生成的计算数据和从源奇偶校验页面读取的源奇偶校验数据执行XOR运算而获得的恢复数据。
在步骤S1211中,存储器装置可以将恢复数据存储在与源页面之中的读取操作失败的源页面相对应的目标页面中。
在步骤S1213中,存储器装置可以生成通过对计算数据和恢复数据执行XOR运算而获得的目标奇偶校验数据。目标奇偶校验数据可以是通过对待存储在目标页面中的数据执行XOR运算而获得的数据。
在步骤S1215中,存储器装置可以将目标奇偶校验数据存储在目标奇偶校验页面中。
图13是示出图1所示的存储器控制器的另一实施例的示图的示例。
参照图13,存储器控制器1000联接到主机和存储器装置。存储器控制器1000被配置为响应于从主机接收的请求来访问存储器装置。例如,存储器控制器1000被配置为控制存储器装置的读取操作、编程操作、擦除操作和后台操作。存储器控制器1000被配置为提供存储器装置和主机之间的接口。存储器控制器1000被配置为驱动固件用于控制存储器装置。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以被配置为在存储器控制器1000的组件之间提供通道。
处理器1010可以控制存储器控制器1000的全部操作,并且执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。而且,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以使用存储器缓冲器1020作为工作存储器、高速缓冲存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以将由主机通过FTL提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收使用映射表待被转换为PBA的LPA。根据映射单元,存在FTL的若干地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010被配置为将从主机接收的数据随机化。例如,处理器1010可以使用随机化种子来将从主机接收的数据随机化。经随机化的数据作为待存储数据而被提供至存储器装置,以被编程在存储器单元阵列中。
在读取操作中,处理器1010被配置为将从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子将从存储器装置接收的数据去随机化。可以将去随机化的数据输出到主机。
在实施例中,处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储待由处理器1010运行的代码和命令。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行ECC操作。ECC电路1030可以对待通过存储器接口1060被写入在存储器装置中的数据执行ECC编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器装置。ECC电路1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码。在示例中,ECC电路1030可以作为存储器接口1060的组件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方式中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)。
缓冲器控制电路1050被配置为在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置为在处理器1010的控制下与存储器装置进行通信。存储器接口1060可以通过通道与存储器装置通信命令、地址和数据。
在示例中,存储器控制器1000可以既不包括存储器缓冲器1020也不包括既缓冲器控制电路1050。
在示例中,处理器1010可以通过使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,只读存储器(ROM))中加载代码。在另一实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在示例中,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传送数据,控制总线可以被配置为在存储器控制器1000中传送诸如命令和地址的控制信息。数据总线和控制总线彼此分开,并且可以既不相互干扰也不互相影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图14是示出应用了根据所公开技术的实施例的存储装置的存储卡系统的框图。
参照图14,存储卡系统2000包括存储器控制器2100、存储器装置和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100被配置为访问存储器装置2200。例如,存储器控制器2100被配置为控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置为提供存储器装置2200和主机之间的接口。存储器控制器2100被配置为驱动固件用于控制存储器装置2200。存储器控制器2100可以与参照图1描述的存储器控制器200相同地实施。
在示例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定通信协议与外部装置(例如,主机)通信。在示例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。
在示例中,存储器装置2200可以利用诸如以下的各种非易失性存储器装置来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中以构成存储卡。例如,存储器控制器2100和存储器装置2200可以构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
图15是示例性示出应用了根据所公开技术的实施例的存储装置的固态驱动器(SSD)系统的框图。
参照图15,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以用作参照图1描述的存储器控制器200。
SSD控制器3210可以响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在示例中,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由诸如以下的各种接口中的至少一种来定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。
辅助电源3230通过电源连接器3002联接到主机3100。当来自主机3100的电力供应的不平稳时,辅助电源3230可以提供SSD3200的电力。在示例中,辅助电源3230可以位于SSD3200中,或者位于SSD 3200外部。例如,辅助电源3230可以位于主板上,并且向SSD 3200提供辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图16是示出应用了根据所公开技术的实施例的存储装置的用户系统的框图。
参照图16,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(OS)、用户程序等。在示例中,应用处理器4100可以包括用于控制在用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器或诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。在示例中,应用处理器4100和存储器模块4200可以通过基于堆叠式封装(PoP)来封装而被设置为单个半导体封装。
网络模块4300可以与外部装置通信。在示例中,网络模块4300可以支持诸如下列的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙和Wi-Fi。在示例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传送到应用处理器4100。在示例中,存储模块4400可以利用诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存的非易失性半导体存储器装置来实施。在示例中,存储模块4400可以被设置为诸如用户系统4000的存储卡或外部驱动器的可移动驱动器。
在示例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的存储器装置100相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
用户接口4500可以包括用于将数据或命令输入到应用处理器4100或用于将数据输出到外部装置的接口。在示例中,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入界面。用户接口4500可以包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和显示器的用户输出接口。
根据公开的技术,可以提供一种具有改善的数据恢复能力的存储装置及其操作方法。
虽然已经参照所公开技术的某些示例性实施例示出并描述了所公开技术,但是本领域技术人员将理解的是,在不脱离由所附权利要求书及其等同方案限定的所公开技术的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开技术的范围不应限于上述的示例性实施例,而是应当不仅由所附权利要求书确定,而且还应由其等同方案确定。
在上述实施例中,可选择性地执行所有步骤或者可省略部分步骤。在每个实施例中,不一定按照所描述的顺序执行,并且可重新布置步骤。在本说明书和附图中公开的实施例仅是为了便于理解所公开技术的示例;而所公开技术不限于此。也就是说,对于本领域技术人员显而易见的是,可基于本公开技术的技术范围进行各种修改。
同时,已经在附图和说明书中描述了所公开技术的示例性实施例。虽然本文使用了特定术语,但这些术语仅用于解释所公开技术的实施例。因此,所公开技术不限于上述实施例,而在所公开技术的精神和范围内可以进行许多变化。对于本领域技术人员显而易见的是,除了本文公开的实施例之外,还可以基于所公开技术的技术范围进行各种修改。
Claims (20)
1.一种存储器控制器,所述存储器控制器控制一个或多个存储器装置,所述一个或多个存储器装置包括源条带和目标条带,所述存储器控制器包括:
操作控制器,控制所述存储器装置对所述源条带中的第一源页面至第三源页面和源奇偶校验页面执行读取操作,并且对所述目标条带中的第一目标页面至第三目标页面和目标奇偶校验页面执行编程操作;
编程数据确定器,基于对所述第一源页面至所述第三源页面的所述读取操作中的每一个的成功来确定分别待被编程在所述第一目标页面至所述第三目标页面中的第一编程数据至第三编程数据,并且将从所述第一源页面和所述第二源页面成功读取的数据确定为所述第一编程数据和所述第二编程数据,且根据对所述第三源页面的所述读取操作是否已经失败将恢复数据确定为所述第三编程数据;
奇偶校验计算器,通过使用所述第一编程数据和所述第二编程数据来生成计算数据,并且通过使用所述源奇偶校验页面中存储的源奇偶校验数据和所述计算数据来生成所述恢复数据。
2.根据权利要求1所述的存储器控制器,其中所述第一源页面至所述第三源页面以及所述源奇偶校验页面中的每一个包括在不同的存储器装置中,并且
所述第一目标页面至所述第三目标页面以及所述目标奇偶校验页面中的每一个包括在不同的存储器装置中。
3.根据权利要求1所述的存储器控制器,其中所述奇偶校验计算器基于所述计算数据和所述恢复数据来生成目标奇偶校验数据。
4.根据权利要求3所述的存储器控制器,其中所述操作控制器控制所述一个或多个存储器装置以将所述恢复数据存储在所述第三目标页面中并且将所述目标奇偶校验数据存储在所述目标奇偶校验页面中。
5.根据权利要求1所述的存储器控制器,其中所述奇偶校验计算器在所述第一编程数据和第二编程数据被确定之后生成所述计算数据。
6.根据权利要求1所述的存储器控制器,其中所述奇偶校验计算器在对所述第三源页面的所述读取操作已经失败之前生成所述计算数据。
7.根据权利要求1所述的存储器控制器,其中所述奇偶校验计算器在接收到对所述第三源页面的所述读取操作已经失败的确定时生成所述恢复数据。
8.根据权利要求1所述的存储器控制器,其中所述奇偶校验计算器通过对所述第一编程数据和所述第二编程数据执行异或运算,即XOR运算来生成所述计算数据。
9.根据权利要求1所述的存储器控制器,进一步包括:错误校正码解码器,即ECC解码器,执行错误校正解码以确定对所述第一源页面至所述第三源页面的所述读取操作中的每一个的成功。
10.一种存储装置,包括:
一个或多个存储器装置,对第一源页面至第三源页面和源奇偶校验页面执行读取操作,并且对第一目标页面至第三目标页面和目标奇偶校验页面执行编程操作;以及
存储器控制器,与所述一个或多个存储器装置通信,并且所述存储器控制器:
确定对所述第一源页面至所述第三源页面的所述读取操作是否已经成功,
将从已经成功执行了读取操作的所述第一源页面和所述第二源页面读取的数据分别确定为第一编程数据和第二编程数据,
通过使用所述第一编程数据和所述第二编程数据生成计算数据,
基于从所述源奇偶校验页面读取的源奇偶校验数据和所述计算数据生成恢复数据,以及
在确定对所述第三源页面的所述读取操作未成功时,将所述恢复数据确定为第三编程数据,
其中所述第一编程数据至所述第三编程数据分别被编程在所述第一目标页面至所述第三目标页面中。
11.根据权利要求10所述的存储装置,其中所述源奇偶校验页面存储通过对在所述第一源页面至所述第三源页面中存储的数据执行XOR运算而获得的所述源奇偶校验数据,并且
所述目标奇偶校验页面存储通过对所述第一编程数据至所述第三编程数据执行XOR运算而获得的目标奇偶校验数据。
12.根据权利要求10所述的存储装置,其中所述第一源页面至所述第三源页面和所述源奇偶校验页面包括在不同的存储器装置中,并且
所述第一目标页面至所述第三目标页面和所述目标奇偶校验页面包括在不同的存储器装置中。
13.根据权利要求10所述的存储装置,其中所述存储器控制器控制所述存储器装置以将所述恢复数据存储在所述第三目标页面中并且将所述目标奇偶校验数据存储在所述目标奇偶校验页面中。
14.根据权利要求10所述的存储装置,其中所述存储器控制器通过对所述第一编程数据和所述第二编程数据执行XOR运算来生成所述计算数据,并且基于所述计算数据和所述恢复数据来生成所述目标奇偶校验数据。
15.根据权利要求10所述的存储装置,其中所述存储器控制器在对所述第三源页面的所述读取操作已经失败之前生成所述计算数据。
16.根据权利要求10所述的存储装置,其中所述存储器控制器在生成所述计算数据的同时将所述第一编程数据和所述第二编程数据编程在所述第一目标页面和所述第二目标页面中。
17.一种操作存储器控制器的方法,所述存储器控制器与一个或多个存储器装置通信,所述方法包括:
将用于读取源条带中的第一源页面至第三源页面和源奇偶校验页面的读取命令提供至所述一个或多个存储器装置;
将从读取操作已经成功的所述第一源页面和所述第二源页面读取的数据确定为第一编程数据和第二编程数据;
通过使用所述第一编程数据和所述第二编程数据来生成计算数据;
将所述第一编程数据和所述第二编程数据存储在目标条带中的第一目标页面和第二目标页面中的编程命令提供至所述一个或多个存储器装置;并且
根据对所述第三源页面的读取操作是否已经失败,通过使用从所述源奇偶校验页面读取的源奇偶校验数据和所述计算数据来生成恢复数据。
18.根据权利要求17所述的方法,其中所述源条带中的每个页面包括在不同的存储器装置中,并且
其中所述目标条带中的每个页面包括在不同的存储器装置中。
19.根据权利要求17所述的方法,进一步包括:
将所述恢复数据存储在所述目标条带的第三目标页面中的编程命令提供至所述一个或多个存储器装置;并且
将基于所述计算数据和所述恢复数据生成的目标奇偶校验数据存储在所述目标条带的目标奇偶校验页面中的编程命令提供至所述一个或多个存储器装置。
20.根据权利要求17所述的方法,其中所述计算数据通过对所述第一编程数据和所述第二编程数据的XOR运算生成,并且
其中所述恢复数据是通过对所述源奇偶校验数据和所述计算数据执行XOR运算生成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190038704A KR20200116808A (ko) | 2019-04-02 | 2019-04-02 | 저장 장치 및 그 동작 방법 |
KR10-2019-0038704 | 2019-04-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111796962A true CN111796962A (zh) | 2020-10-20 |
Family
ID=72662237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911244631.7A Withdrawn CN111796962A (zh) | 2019-04-02 | 2019-12-06 | 存储装置以及存储装置的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11036586B2 (zh) |
KR (1) | KR20200116808A (zh) |
CN (1) | CN111796962A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102403477B1 (ko) | 2021-11-12 | 2022-05-30 | 삼성전자주식회사 | 스토리지 장치와 이를 포함하는 호스트-스토리지 시스템 |
WO2024016257A1 (en) * | 2022-07-21 | 2024-01-25 | Micron Technology, Inc. | Handling parity data during data folding in a memory device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102580123B1 (ko) | 2016-05-03 | 2023-09-20 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
KR102573301B1 (ko) | 2016-07-15 | 2023-08-31 | 삼성전자 주식회사 | Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 |
-
2019
- 2019-04-02 KR KR1020190038704A patent/KR20200116808A/ko unknown
- 2019-11-14 US US16/683,715 patent/US11036586B2/en active Active
- 2019-12-06 CN CN201911244631.7A patent/CN111796962A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11036586B2 (en) | 2021-06-15 |
US20200319961A1 (en) | 2020-10-08 |
KR20200116808A (ko) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321070B (zh) | 存储器控制器及其操作方法 | |
US11543984B2 (en) | Memory controller, storage device and operating method thereof | |
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
US11048585B2 (en) | Storage device and operating method thereof | |
CN111177020B (zh) | 存储装置及其操作方法 | |
US10776027B2 (en) | Storage device and method of operating the same | |
CN111105836B (zh) | 存储装置及其操作方法 | |
CN111258919A (zh) | 储存设备及其操作方法 | |
CN111208936A (zh) | 存储装置及其操作方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN111192617B (zh) | 存储装置及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN110619912A (zh) | 存储装置以及该存储装置的操作方法 | |
US11036586B2 (en) | Storage device and operating method thereof | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
KR102626058B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN114300021A (zh) | 存储装置及其操作方法 | |
CN114360593A (zh) | 存储装置及其操作方法 | |
KR102513691B1 (ko) | 저장 장치 및 그 동작 방법 | |
CN112289361A (zh) | 存储器装置及其操作方法 | |
CN111752470A (zh) | 存储器控制器及其操作方法 | |
CN112017718A (zh) | 存储装置及其操作方法 | |
CN114385413A (zh) | 存储器控制器及操作该存储器控制器的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201020 |
|
WW01 | Invention patent application withdrawn after publication |