CN114187949A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN114187949A CN114187949A CN202110380346.9A CN202110380346A CN114187949A CN 114187949 A CN114187949 A CN 114187949A CN 202110380346 A CN202110380346 A CN 202110380346A CN 114187949 A CN114187949 A CN 114187949A
- Authority
- CN
- China
- Prior art keywords
- memory
- read operation
- read
- memory block
- history
- 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
- 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
-
- 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
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施例涉及一种存储器系统及其操作方法。根据本公开的示例性实施例,当在针对多个存储块之中的第一存储块的第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值时,存储器系统可以将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集中,并且在针对第一存储块的第一读取操作之后执行的读取操作期间,可以重复校准与第一存储块相对应的历史读取偏压的操作,直到满足设定的终止条件为止。
Description
相关申请的交叉引用
本申请要求于2020年9月14日提交的申请号为10-2020-0117490的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
实施例涉及一种存储器系统及其操作方法。
背景技术
例如存储装置的存储器系统基于来自诸如计算机、移动终端(例如,智能手机或平板电脑)或各种其它电子装置中的任意一种的主机的请求来存储数据。存储器系统可以是诸如硬盘驱动器(HDD)的将数据存储在磁盘中的装置,或诸如固态驱动器(SSD)、通用闪存装置(UFS)或嵌入式MMC(eMMC)装置的将数据存储在非易失性存储器中的装置。
存储器系统可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以接收来自主机的命令,并且基于所接收的命令,可以运行或控制用于在存储器系统中包括的易失性存储器或非易失性存储器中读取数据、写入数据或擦除数据的操作。存储器控制器可以驱动用于执行逻辑操作的固件以控制这些操作。
当读取存储器装置的特定存储块中存储的数据时,如果在历史读取偏压表中存在与该特定存储块相对应的历史读取偏压值,则存储器系统可以使用相应的历史读取偏压值。在这种情况下,如果与该特定存储块相对应的历史读取偏压值未经优化,则可能存在以下问题,即当读取相应存储块中存储的数据时,所生成的错误位的数量增加。
发明内容
本公开的实施例可以提供一种存储器系统及其操作方法,其能够通过减少由于历史读取偏压值未经优化而可能在读取操作期间发生的错误位的数量,减少处置在读取操作期间发生的错误而引起的开销。
另外,本公开的实施例可以提供一种存储器系统及其操作方法,其能够通过在读取操作期间校准历史读取偏压值,省略在读取操作之前和之后为校准历史读取偏压值而执行的单独操作。
在一个方面,本公开的实施例可以提供一种存储器系统,包括:存储器装置,包括多个存储块;以及存储器控制器,用于与存储器装置通信并且控制存储器装置。
当在针对多个存储块之中的第一存储块的第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值时,存储器控制器可以将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集中。
另外,在针对第一存储块的第一读取操作之后执行的读取操作期间,存储器控制器可以重复校准与第一存储块相对应的历史读取偏压的操作,直到满足设定的终止条件为止。
在这种情况下,错误位历史集可以存储在针对目标存储块的读取操作期间生成的错误位的数量,该目标存储块是多个存储块之中的历史读取偏压被校准的存储块。
在另一方面,本公开的实施例可以提供一种存储器系统的操作方法,该存储器系统包括具有多个存储块的存储器装置。
存储器系统的操作方法可以包括:确定在针对多个存储块之中的第一存储块的第一读取操作中生成的错误位的数量。
另外,存储器系统的操作方法可以包括:当在第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值时,将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集中。
另外,存储器系统的操作方法可以包括:在针对第一存储块的第一读取操作之后执行的读取操作期间,重复校准与第一存储块相对应的历史读取偏压的操作,直到满足设定的终止条件为止。
在这种情况下,错误位历史集可以存储在针对目标存储块的读取操作期间生成的错误位的数量,该目标存储块是多个存储块之中的历史读取偏压被校准的存储块。
根据本公开的实施例,可以通过减少由于历史读取偏压值未经优化而可能在读取操作期间发生的错误位的数量,减少处置在读取操作期间发生的错误而引起的开销。
另外,根据本公开的实施例,可以通过在读取操作期间校准历史读取偏压值,省略在读取操作之前和之后为校准历史读取偏压值而执行的单独操作。
附图说明
图1是示出根据本公开的示例性实施例的存储器系统的配置的示意图。
图2是示意性地示出根据本公开的示例性实施例的存储器装置的框图。
图3是示出根据本公开的示例性实施例的存储器装置的字线和位线的结构的示图。
图4是根据本公开的示例性实施例的存储器系统的示意性配置图。
图5是示出根据本公开的示例性实施例的由存储器系统将关于错误位的数量的信息存储在错误位历史集中的操作的示例的流程图。
图6是示出在读取操作期间使用的读取偏压与在读取操作期间生成的错误位的数量之间的关系的曲线图的示例。
图7是示出根据本公开的示例性实施例的由存储器系统校准历史读取偏压的操作的示例的流程图。
图8是示出根据本公开的示例性实施例的错误位历史集中存储的信息的示例的示图。
图9是示出根据本公开的示例性实施例的错误位历史集的数据结构的示例的示图。
图10是示出将针对第一存储块的节点添加到图9中描述的错误位历史集的操作的示例的示图。
图11是示出根据本公开的示例性实施例的由存储器系统校准历史读取偏压的操作的示例的流程图。
图12是示出根据读取操作的历史读取偏压的校准值的变化的示例的示图。
图13是示出根据本公开的示例性实施例的由存储器系统终止校准历史读取偏压的操作的示例的流程图。
图14是示出根据本公开的示例性实施例的存储器系统校准历史读取偏压的时间点的示例的示图。
图15是示出根据本公开的示例性实施例的操作存储器系统的方法的示图。
图16是示出基于本公开的技术的实施例的计算系统的配置的示图。
具体实施方式
下文中,参照附图更详细地描述本公开的示例性实施例。在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。当本文使用术语“各个实施例”时不一定指所有实施例。
图1是示出基于本公开的技术的示例性实施例的存储器系统100的示意性配置的示图。
在一些实施方案中,存储器系统100可以包括被配置成存储数据的存储器装置110以及被配置成控制存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块,每个存储块包括用于存储数据的预定数量的存储器单元。存储器装置110可以被配置成响应于从存储器控制器120接收的控制信号而操作。存储器装置110的操作可以包括,例如读取操作、编程操作(也被称为“写入操作”)和擦除操作。
存储器装置110中的存储器单元用于存储数据并且可以以存储器单元阵列来进行布置。在存储器装置110是闪速存储器装置的一些实施方案中,存储器单元阵列可以被划分为存储器单元的存储块,并且每个块包括存储器单元的不同页面。在NAND闪速存储器装置的一些实施方案中,单元的页面是可以编程(或写入)和读取的最小存储器单位,并且可以在块的层级擦除存储器单元中存储的数据。
在一些实施方案中,存储器装置110可以被实施为诸如以下的各种类型:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移扭矩随机存取存储器(STT-RAM)。
存储器装置110可以以三维阵列结构来实施。本公开的技术的一些实施例可应用于具有电荷存储层的任意类型的闪速存储器装置。在一个实施方案中,电荷存储层可以由导电材料形成,并且这种电荷存储层可以被称为浮栅。在另一实施方案中,电荷存储层可以由绝缘材料形成,并且这种闪速存储器装置可以被称为电荷撷取闪存(CTF)。
存储器装置110可以被配置成从存储器控制器120接收命令和地址,以访问存储器单元阵列中的使用该地址选择的区域。也就是说,存储器装置110可以对存储器装置中的具有与从控制器接收的地址相对应的物理地址的存储器区域执行与所接收的命令相对应的操作。
在一些实施方案中,除了其它操作之外,存储器装置110还可以执行编程操作、读取操作和擦除操作。在编程操作期间,存储器装置110可以将数据写入(“编程”)到由地址选择的区域。在读取操作期间,存储器装置110可以从由地址选择的存储器区域中读取数据。在擦除操作期间,存储器装置110可以擦除由地址选择的存储器区域中存储的数据。
存储器控制器120可以控制待对存储器装置110执行的写入(编程)操作、读取操作、擦除操作和后台操作。后台操作可以包括被实施成优化存储器装置110的整体性能的操作,诸如垃圾收集(GC)操作、损耗均衡(WL)操作和坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,当存储器控制器120执行存储器装置的这种后台操作时,即使在没有来自主机的请求的情况下,存储器控制器120也可以控制存储器装置110的操作。
存储器控制器120和主机可以是分开的装置。在一些实施方案中,存储器控制器120和主机可以集成到单个装置中。在下面的描述中,作为示例,存储器控制器120和主机是分开的装置。
参照图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
主机接口121可以被配置成提供用于与主机通信的接口。
当从主机HOST接收命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理所接收的命令的操作。
存储器接口122可以直接地或间接地联接到存储器装置110,以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置成向存储器装置110和存储器控制器120提供接口,以供存储器控制器120基于来自控制电路123的控制信号和指令来对存储器装置110执行的存储器操作。
控制电路123可以被配置成通过存储器控制器120控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测/校正电路(ECC电路)126。
处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机HOST通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可以用于运行闪存转换层(FTL),以有效地管理对存储器系统100的存储器操作。例如,处理器124可以通过FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。FTL可以接收LBA并且通过使用映射表将LBA转换为PBA。
基于映射单位,FTL可以采用多种地址映射方法。典型的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
处理器124可以被配置成将从主机接收的数据随机化,以将经随机化的数据写入到存储器单元阵列。例如,处理器124可以通过使用随机化种子来将从主机接收的数据随机化。经随机化的数据被提供到存储器装置110,并且被写入到存储器单元阵列。
处理器124可以被配置成在读取操作期间将从存储器装置110接收的数据去随机化。例如,处理器124可以通过使用去随机化种子将从存储器装置110接收的数据去随机化。经去随机化的数据可以被输出到主机HOST。
处理器124可以运行固件(FW)以控制存储器控制器120的操作。换言之,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑操作,可以运行(驱动)在启动期间加载到工作存储器125的固件。
固件是指存储在某个非易失性存储器上的程序或软件,并且在存储器系统100内部运行。
在一些实施方案中,固件可以包括各种功能层。例如,固件可以包括闪存转换层(FTL)、主机接口层(HIL)和闪存接口层(FIL)中的至少一个,闪存转换层(FTL)被配置成将由主机HOST请求的逻辑地址转换成存储器装置110的物理地址,主机接口层(HIL)被配置成解译由主机HOST向诸如存储器系统100的数据存储装置发出的命令并且将该命令传递到FTL,并且闪存接口层(FIL)被配置成将由FTL发出的命令传递到存储器装置110。
例如,固件可以被存储在存储器装置110中,并且然后被加载到工作存储器125中。
工作存储器125可以存储操作存储器控制器120所必需的固件、程序代码、命令、或多条数据。工作存储器125可以包括,例如静态RAM(SRAM)、动态RAM(DRAM)和/或同步DRAM(SDRAM)或任何其它类型的合适的易失性存储器之中的至少一个。
错误检测/校正电路(ECC)126可以被配置成通过使用错误检测和校正码来检测和校正数据中的一个或多个错误位。在一些实施方案中,进行错误检测和校正的数据可以包括工作存储器125中存储的数据以及从存储器装置110中检索的数据。
错误检测/校正电路126可以被实施为通过使用错误校正码来解码数据。错误检测/校正电路126可以通过使用各种解码方案来实施。例如,可以使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
在一些实施方案中,错误检测/校正电路126可以基于扇区来检测一个或多个错误位。也就是说,每条读取数据可以包括多个扇区。如本文所使用的,“扇区”可以指比用于闪速存储器的读取操作的最小单位(例如,页面)更小的数据单位。可以基于地址来映射构成每条读取数据的扇区。
在一些实施方案中,错误检测/校正电路126可以逐个扇区地计算位错误率(BER)并确定数据中的错误位的数量是否在错误校正的能力之内。例如,如果BER高于参考值,则错误检测/校正电路126可以确定相应的扇区中的错误位是不可校正的,并且相应的扇区被标记为“失败”。如果BER低于或等于参考值,则错误检测/校正电路126可以确定相应的扇区是可校正的,并且相应的扇区可以被标记为“通过”。
错误检测/校正电路126可以对所有读取数据连续地执行错误检测和校正操作。当读取数据中包括的扇区是可校正的时,错误检测/校正电路126可以继续进行到下一扇区,以检查是否需要对下一扇区进行错误校正操作。在以这种方式完成对所有读取数据的错误检测和校正操作之后,错误检测/校正电路126可以识别读取数据中的哪个扇区被认为是不可校正的。错误检测/校正电路126可以将关于被认为是不可校正的扇区的信息(例如,不可校正的扇区的地址)提供给处理器124。
存储器系统100还可以包括总线127,以在存储器控制器120的构成元件121、122、124、125和126之间提供通道。总线127可以包括例如形成用于传递各种类型的控制信号和命令的控制总线的部分以及形成用于传递各种类型的数据的数据总线的部分。
图1以示例的方式示出了存储器控制器120的上述构成元件121、122、124、125和126。需要注意的是,可以省略存储器控制器120的上述构成元件121、122、124、125和126中的一些,或者存储器控制器120的上述构成元件121、122、124、125和126中的一些可以集成到单个元件中。另外,在一些实施方案中,可以将一个或多个其它构成元件添加到存储器控制器120的上述构成元件。
下文中,将参照图2更详细地描述存储器装置110。
图2是示意性地示出基于本公开的技术的示例性实施例的存储器装置110的框图。
在一些实施方案中,存储器装置110可以包括存储器单元阵列210、地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250。
存储器单元阵列210可以包括多个存储块BLK1至BLKz,其中z是等于或大于2的自然数。
在多个存储块BLK1至BLKz中,可以以行和列布置多个字线WL和多个位线BL,并且可以布置多个存储器单元MC。
多个存储块BLK1至BLKz可以通过多个字线WL联接到地址解码器220。多个存储块BLK1至BLKz可以通过多个位线BL联接到读取/写入电路230。
多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。例如,多个存储器单元是非易失性存储器单元。在一些实施方案中,这种非易失性存储器单元可以以垂直沟道结构布置。
存储器单元阵列210可以被配置成具有二维结构的存储器单元阵列,并且在一些实施方案中,可以以三维结构布置。
存储器单元阵列210中包括的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置成每个存储器单元存储一位数据的单层单元(SLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置成每个存储器单元存储两位数据的多层单元(MLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是诸如被配置成每个存储器单元存储三位数据的三层单元(TLC)的多层单元。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置成存储四位数据的四层单元(QLC)。又例如,存储器单元阵列210可以包括被配置成每个存储器单元存储至少五位数据的多个存储器单元。
参照图2,地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以作为被配置成驱动存储器单元阵列210的外围电路而操作。
地址解码器220可以通过多个字线WL联接到存储器单元阵列210。
地址解码器220可以被配置成响应于控制逻辑240的命令和控制信号而操作。
地址解码器220可以通过存储器装置110内部的输入/输出缓冲器来接收地址。地址解码器220可以被配置成解码所接收的地址之中的块地址。地址解码器220可以基于经解码的块地址选择至少一个存储块。
地址解码器220可以从电压生成电路250接收读取电压Vread和通过电压Vpass。
当在读取操作期间施加读取电压时,地址解码器220可以将读取电压Vread施加到所选择的存储块内部的所选择的字线WL,并且可将通过电压Vpass施加到其余的未选择的字线WL。
在编程验证操作期间,地址解码器220可以将由电压生成电路250生成的验证电压施加到所选择的存储块内部的所选择的字线WL,并且可以将通过电压Vpass施加到其余的未选择的字线WL。
地址解码器220可以被配置成解码所接收的地址之中的列地址。地址解码器220可以将经解码的列地址传输到读取/写入电路230。
存储器装置110可以逐个页面地执行读取操作和编程操作。在请求读取操作和编程操作时接收到的地址可以包括块地址、行地址和列地址中的至少一个。
地址解码器220可以基于块地址和行地址来选择一个存储块和一个字线。列地址可以由地址解码器220解码并且被提供给读取/写入电路230。
地址解码器220可以包括块解码器、行解码器、列解码器和地址缓冲器中的至少一个。
读取/写入电路230可以包括多个页面缓冲器PB。读取/写入电路230可以在存储器单元阵列210执行读取操作时作为“读取电路”而操作,并且可以在存储器单元阵列210执行写入操作时作为“写入电路”而操作。
上述读取/写入电路230也被称为包括多个页面缓冲器PB的页面缓冲器电路,或数据寄存器电路。读取/写入电路230可以包括可以保存用于数据处理的数据的数据缓冲器,并且在一些实施方案中,可以进一步包括用于数据高速缓存的高速缓存缓冲器。
多个页面缓冲器PB可以通过多个位线BL联接到存储器单元阵列210。为了在读取操作和编程验证操作期间检测或感测存储器单元的阈值电压Vth,多个页面缓冲器PB可以向联接到存储器单元的位线BL持续地供应感测电流,以在感测节点检测基于相应的存储器单元的编程状态流过的电流量的改变,并且可以将相应的电压保存或锁存为感测数据。
读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元的电压值,并且该电压值作为数据被读取出。读取/写入电路230临时地存储所检索的数据,并且将数据DATA输出到存储器装置110的输入/输出缓冲器。在实施例中,除了页面缓冲器PB或页面寄存器之外,读取/写入电路230还可以包括列选择电路。
控制逻辑240可以联接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器装置110的输入/输出缓冲器来接收命令CMD和控制信号CTRL。
控制逻辑240可以被配置成响应于控制信号CTRL而控制存储器装置110的全部操作。控制逻辑240可以输出用于调整多个页面缓冲器PB的感测节点处的电压电平的控制信号。
控制逻辑240可以控制读取/写入电路230以对存储器单元阵列210中的存储器单元执行读取操作。电压生成电路250可以响应于由控制逻辑240提供的电压生成电路控制信号而生成在读取操作期间使用的读取电压Vread和通过电压Vpass。
存储器装置110中包括的存储块BLK可以包括多个页面PG,多个页面PG中的每一个包括多个存储器单元。在一些实施方案中,多个存储器单元可以以多个串进行布置。多个页面PG可以被映射到多个字线WL,并且多个串STR可以被映射到多个位线BL。
在存储块BLK中,多个字线WL和多个位线BL可以以行和列布置。例如,多个字线WL中的每一个可以沿行方向布置,并且多个位线BL中的每一个可以沿列方向布置。又例如,多个字线WL中的每一个可以沿列方向布置,并且多个位线BL中的每一个可以沿行方向布置。
当从上方观察时,多个字线WL与多个位线BL可以彼此相交,从而限定包括多个存储器单元MC的存储器阵列。每个存储器单元MC可以具有布置在其中的晶体管TR。
例如,布置在每个存储器单元MC中的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR联接到相应的位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR联接到源极线(其可以是地线)。晶体管TR的栅极可以包括浮栅(FG)和控制栅极(CG),其中浮栅(FG)被绝缘体包围,并且栅极电压从字线WL施加到控制栅极(CG)。
在多个存储块BLK1至BLKz中的每一个之中,第一选择线(也称为源极选择线或漏极选择线)可以被附加地布置在两个最外字线之中的更靠近读取/写入电路230的第一最外字线的外侧,并且第二选择线(也称为漏极选择线或源极选择线)可以被附加地布置在另外的第二最外字线的外侧。
在一些情况下,至少一个虚设字线可以被附加地布置在第一最外字线和第一选择线之间。另外,可以在第二最外字线和第二选择线之间附加地布置至少一个虚设字线。
可以逐个页面地执行存储块的读取操作和编程操作(写入操作),并且可以逐个存储块地执行擦除操作。
图3是示出基于本公开的技术的实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图3,存储器装置110具有存储器单元MC集中的内核区域以及与除了内核区域以外的其余区域相对应的辅助区域。辅助区域包括用于支持存储器单元阵列210的操作的电路。
内核区域可以包括页面PG和串STR。在一些实施方案中,当从上方观察时,多个字线WL1至WL9和多个位线BL被布置为相交。
字线WL1至WL9可以联接到行解码器310。位线BL可以联接到列解码器320。与图2的读取/写入电路230相对应的数据寄存器330可以存在于多个位线BL与列解码器320之间。
多个字线WL1至WL9可以对应于多个页面PG。
例如,如图3所示,多个字线WL1至WL9中的每一个可以对应于一个页面PG。当多个字线WL1至WL9中的每一个具有较大大小时,多个字线WL1至WL9中的每一个可以对应于至少两个(例如,两个或四个)页面PG。每个页面PG是与进行编程操作和读取操作有关的最小单位,并且相同页面PG内的所有存储器单元MC可以在进行编程操作和读取操作时同时执行操作。
多个位线BL可以联接到列解码器320。在一些实施方案中,多个位线BL可以被划分为奇数编号位线BL和偶数编号位线BL,使得一对奇数编号位线BL和偶数编号位线BL共同联接到列解码器320。
地址可以用于访问内核区域中的一个或多个存储器单元MC。可以通过输入/输出端将地址提供到行解码器310和列解码器320,以选择相应的目标存储器单元。在本专利文件的上下文中,词语“目标存储器单元”可以用于指示被作为待从存储器控制器或用户访问的目标的存储器单元MC中的一个,并且在一些实施方案中,存储器单元MC可以位于联接到行解码器310的字线WL1至WL9与联接到列解码器320的位线BL之间的交叉处。
在一些实施方案中,因为由存储器装置110进行的包括编程操作和读取操作的所有数据处理都经由数据寄存器330发生,所以数据寄存器330起重要作用。如果由数据寄存器330进行的数据处理被延迟,则所有其它区域需要等待,直到数据寄存器330结束该数据处理为止,从而降低存储器装置110的整体性能。
参照图3所示的示例,在一个串STR中,多个晶体管TR1至TR9可以分别联接到多个字线WL1至WL9。在一些实施方案中,多个晶体管TR1至TR9对应于存储器单元MC。在该示例中,多个晶体管TR1至TR9包括控制栅极CG和浮栅FG。
多个字线WL1至WL9包括两个最外字线WL1和WL9。第一选择线DSL可以附加地布置在第一最外字线WL1的外侧,与另外的最外字线WL9相比,第一最外字线WL1更靠近数据寄存器330并且具有更短的信号路径。第二选择线SSL可以附加地布置在另外的第二最外字线WL9的外侧。
由第一选择线DSL控制以导通/关断的第一选择晶体管D-TR具有联接到第一选择线DSL的栅电极,但不包括浮栅FG。由第二选择线SSL控制以导通/关断的第二选择晶体管S-TR具有联接到第二选择线SSL的栅电极,但不包括浮栅FG。
第一选择晶体管D-TR用作将相应的串STR连接到数据寄存器330的开关电路。第二选择晶体管S-TR用作将相应的串STR连接到源极线SL的开关电路。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR可以用于启用或停用相应的串STR。
在编程操作期间,存储器系统100利用电子填充待编程的位线BL的目标存储器单元MC。因此,存储器系统100向第一选择晶体管D-TR的栅电极施加预先确定的导通电压Vcc,从而导通第一选择晶体管D-TR,并且向第二选择晶体管S-TR的栅电极施加预先确定的关断电压(例如,0V),从而关断第二选择晶体管S-TR。
在读取操作或验证操作期间,存储器系统100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,在读取操作或验证操作期间,电流可以流经相应的串STR并且流到对应于接地电压的源极线SL,使得可以测量位线BL的电压电平。然而,在读取操作期间,在第一选择晶体管D-TR与第二选择晶体管S-TR之间的导通/关断定时中可能存在时间差。
在擦除操作期间,存储器系统100可以通过源极线SL向衬底施加预先确定的电压(例如,+20V)。在擦除操作期间,存储器系统100施加特定的电压以允许第一选择晶体管D-TR和第二选择晶体管S-TR两者都浮置(float)。因此,所施加的擦除电压可以从所选择的存储器单元的浮栅FG中去除电荷。
当存储器控制器执行固件操作时,由于固件中的错误,可能生成不可运行的命令,并且存储器控制器可能接收到这种不可运行的命令。在一些情况下,存储器装置不响应以通知存储器控制器不可运行的命令已经生成,因此当存储器系统由于不可运行的命令而发生故障时,存储器控制器将无法识别该故障的原因。本专利文件中公开的技术可以在各个实施例中实施以识别已经对存储器装置发出的不可运行的命令。
图4是根据本公开的示例性实施例的存储器系统100的示意性配置图。
参照图4,存储器系统100的存储器控制器120可以包括错误位历史集ERR_BIT_HIS,该错误位历史集ERR_BIT_HIS用于存储在针对存储器装置110中包括的多个存储块BLK之中的目标存储块的读取操作期间生成的错误位的数量。
例如,错误位历史集ERR_BIT_HIS可以位于存储器控制器120内部的工作存储器125上,或者位于单独的存储器(例如,TCM、SRAM、寄存器)中。
存储器控制器120可以根据在针对作为存储器装置110中包括的多个存储块BLK中的一个存储块的第一存储块BLK_1的第一读取操作期间生成的错误位的数量,将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集ERR_BIT_HIS中。下文中,将参照图5对此进行详细描述。
图5是示出根据本公开的示例性实施例的由存储器系统100将关于错误位的数量的信息存储在错误位历史集ERR_BIT_HIS中的操作的示例的流程图。
参照图5,存储器系统100的存储器控制器120可以检查或确定在针对第一存储块BLK_1的第一读取操作中生成的错误位的数量A(S510)。
存储器控制器120可以确定在步骤S510中检查的A的值是否大于或等于第一阈值并且小于第二阈值(S520)。在这种情况下,第二阈值大于第一阈值。
如果A的值大于或等于第一阈值并且小于第二阈值(S520-是),则存储器控制器120可以将关于在第一读取操作中生成的错误位的数量A的信息存储在错误位历史集ERR_BIT_HIS中(S530)。同时,如果A的值小于第一阈值或者等于或大于第二阈值(S520-否),则存储器控制器120可以不对在第一读取操作中生成的错误位的数量A执行单独的处理操作。
下文中,将通过在读取操作期间使用的读取偏压与在读取操作期间生成的错误位的数量之间的关系来描述用于确定上述第一阈值和第二阈值的标准。
图6是示出在读取操作期间使用的读取偏压与在读取操作期间生成的错误位的数量之间的关系的曲线图的示例。
当存储器控制器120执行读取存储器装置110中包括的特定存储块中存储的数据的操作时,如果与该存储块相对应的历史读取偏压没有被更新,则存储器控制器120可以使用预先确定的默认读取偏压来执行读取操作。另一方面,当与该存储块相对应的历史读取偏压被更新时,存储器控制器120可以使用相应的历史读取偏压来执行读取操作。在这种情况下,如图6所示,在读取操作期间生成的错误位可以根据在读取操作期间使用的读取偏压与对应于最小数量的错误位的最佳读取偏压的差异程度而变化。
参照图6,如果在读取操作中使用的读取偏压接近最佳读取偏压,则在读取操作期间生成的错误位的数量较小。另一方面,在读取操作中使用的读取偏压与最佳读取偏压之间的差异较大的情况下,在读取操作期间生成的错误位的数量较大。
在以下情况下,与最佳读取偏压相比,读取操作中使用的读取偏压可能具有较大的差异。
1.存储块中特定位置的字线状态与相应的存储块中其它字线的状态不同的情况。
2.存储块的历史读取偏压的值在特定解码算法的补偿范围内但不是最佳值的情况。
3.存储块的历史读取偏压的值不存在于历史读取偏压表中的情况。
4.由于保持(retention)、重复的读取/写入/擦除操作、外部冲击等原因导致存储块劣化,因此当前状态的最佳读取偏压值与历史读取偏压表中存储的历史读取偏压值之间的差异不同的情况。
特别地,在读取操作期间使用历史读取偏压的情况下,因为在历史读取偏压被更新的分辨率大小可能由于更新历史读取偏压的过程中的成本问题而较大,所以历史读取偏压可能没有被优化。另外,如果长时间未执行对存储块的读取操作,则相应的存储块的阈值电压分布会由于保持而恶化,并且因为历史读取偏压是在发生这种保持之前所更新的值,所以有可能无法执行优化。
如果在读取操作期间生成的错误位的数量超过特定值,则使用例如低密度奇偶校验(LDPC)的特定解码算法对读取数据进行解码的操作可能失败。在这种情况下,存储器控制器120可以通过运行为解决解码失败而设置的防御算法来执行校准错误位的操作,并且可以在未优化的状态下执行校准历史读取偏压的操作。在这种情况下,读取操作所需要的开销可能增加,并且读取操作所需要的时间可能增加,使得可能出现无法满足主机的QoS问题。
在这种情况下,用作确定上述解码是否失败的标准的值可以是图4中描述的第二阈值。也就是说,当在针对上述第一存储块BLK_1的读取操作期间生成的错误位的数量等于或大于第二阈值时,存储器控制器120可以确定在第一存储块BLK_1的读取操作期间读取数据的解码已经失败。在图6中,与③相对应的区域对应于解码已经失败的情况。
同时,在本公开的实施例中,尽管尚未发生解码失败(因为读取操作期间使用的历史读取偏压与最佳读取偏压之间的差异大于特定水平),存储器控制器120也可以确定将来是否存在由于保持问题或读取干扰导致的存储数据的存储块的劣化而使解码失败的可能性。
在这种情况下,用于确定存储数据的存储块是否处于存在劣化的可能性的状态的参考值可以是参照图4描述的第一阈值。也就是说,如果在针对第一存储块BLK_1的读取操作期间生成的错误位的数量大于或等于第一阈值且小于第二阈值,则尽管尚未发生解码失败,但是可以确定将来存在由于第一存储块BLK_1的劣化而发生解码失败的可能性。在图6的曲线图中,与①相对应的区域对应于将来可能发生解码失败的情况。
同时,如果在读取操作中使用的历史读取偏压与最佳读取偏压之间的差异小于特定水平,则存储器控制器120可以确定历史读取偏压已经被优化并且因此不需要单独进行校准。在图6的曲线图中,与②相对应的区域对应于历史读取偏压已经被优化的情况。
因此,在确定已经进入与图6的①相对应的区域的情况下,存储器控制器120可以预先校准历史读取偏压以减少在读取操作期间生成的错误位的数量,从而提前防止在读取操作期间发生解码失败的情况。
下文中,将详细描述当存储器系统100进入与图6中的①相对应的区域时校准历史读取偏压的操作。
图7是示出根据本公开的示例性实施例的校准在第一存储块BLK_1的读取操作期间的历史读取偏压的操作的示例的流程图。
参照图7,存储器系统100的存储器控制器120可以进入校准存储器装置110中包括的第一存储块BLK_1的历史读取偏压的模式(S710)。在这种情况下,当在针对第一存储块BLK_1的第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值时,存储器控制器120可以将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集ERR_BIT_HIS中,并且可以进入校准第一存储块BLK_1的历史读取偏压的模式。
存储器系统100的存储器控制器120可以对存储器装置110中包括的第一存储块BLK_1执行读取操作(S720)。
步骤S720可以是在存储器系统100进入与图6中的①相对应的区域之后运行的步骤。在步骤S720中执行的读取操作可以是在第一读取操作之后对第一存储块BLK_1执行的第N读取操作(N是自然数)。
另外,存储器控制器120可以根据步骤S720中运行的对第一存储块BLK_1的读取操作的结果来校准与第一存储块BLK_1相对应的历史读取偏压(S730)。下面将参照图12详细描述在步骤S730中存储器控制器120校准历史读取偏压的具体示例。
在步骤S730之后,存储器控制器120可以确定是否满足特定的终止条件(S740)。下面将在图13中详细描述终止条件的特定示例。
在满足特定终止条件的情况下(S740-是),存储器控制器120可以将校准后的历史读取偏压更新到历史读取偏压表(S750)。当在步骤S750之后执行对第一存储块BLK_1的读取操作时,可以使用步骤S750中的历史读取偏压表中的更新后的历史读取偏压值。
同时,如果不满足终止条件(S730-否),则存储器控制器120可以再次进入步骤S720,并且可以重复对第一存储块BLK_1执行读取操作并校准与第一存储块BLK_1相对应的历史读取偏压的操作。
上文已经描述了根据本公开的示例性实施例的存储器系统100的全部操作。
下文中,将描述图4中描述的错误位历史集ERR_BIT_HIS的示例。
图8是示出根据本公开的示例性实施例的错误位历史集ERR_BIT_HIS中存储的信息的示例的示图。
错误位历史集ERR_BIT_HIS可以存储关于在针对目标存储块的读取操作中生成的错误位的数量的信息,该目标存储块是存储器装置110中包括的多个存储块BLK之中校准历史读取偏压的存储块(即,正在运行用于校准相应的历史读取偏压的操作的存储块)。
参照图8,假设存储器装置110中包括的多个存储块BLK之中的索引为1、3、5、……、M的存储块是作为校准历史读取偏压的目标的目标存储块。然而,图8中描述的目标存储块的索引值是示例性的,并且在本公开的实施例中,目标存储块的索引值不限于特定值。
在该示例中,错误位历史集ERR_BIT_HIS可以存储在针对目标存储块的读取操作期间生成的错误位的数量。在图8中,例如,错误位历史集ERR_BIT_HIS可以存储在针对索引为1的目标存储块的读取操作期间生成的错误位的数量10、在针对索引为3的目标存储块的读取操作期间生成的错误位的数量20、在针对索引为5的目标存储块的读取操作期间生成的错误位的数量5以及在针对索引为M的目标存储块的读取操作期间生成的错误位的数量15。
同时,错误位历史集ERR_BIT_HIS可包括各种类型的数据结构(例如,表、哈希(hash)、树、列表)。下文中,在图9中,将描述将错误位历史集ERR_BIT_HIS配置为链表的情况。
图9是示出根据本公开的示例性实施例的错误位历史集ERR_BIT_HIS的数据结构的示例的示图。
参照图9,错误位历史集ERR_BIT_HIS可以是包括一个或多个节点ND的链表。
在这种情况下,错误位历史集ERR_BIT_HIS中包括的节点ND可以分别对应于图8中描述的目标存储块中的任意一个。例如,错误位历史集ERR_BIT_HIS可以包括与索引为1的目标存储块相对应的节点、与索引为3的目标存储块相对应的节点、与索引为5的目标存储块相对应的节点、……、与索引为M的目标存储块相对应的节点。
另外,错误位历史集ERR_BIT_HIS中包括的每个节点ND可以包括第一字段FIELD_1和第二字段FIELD_2。
节点的第一字段FIELD_1是用于存储从生成节点的时间起对与该节点相对应的目标存储块执行的读取操作的数量的字段。例如,如果在生成针对索引为1的目标存储块的节点之后针对索引为1的目标存储块运行3次读取操作,则相应的节点的第一字段FIELD_1的值可以为3。
节点的第二字段FIELD_2是用于存储在针对与该节点相对应的目标存储块的最近运行的读取操作中生成的错误位的数量的字段。例如,如果针对索引为1的目标存储块顺序地执行三次读取操作并且在每次读取操作期间生成的错误位的数量为5、8和11,则相应的节点的第二字段FIELD_2的值可以为11。
如图9所示,在错误位历史集ERR_BIT_HIS的结构是链表的情况下,可以执行如图10所示的将关于在针对第一存储块BLK_1的第一读取操作中生成的错误位的数量的信息存储在错误位历史集中的操作。
图10是示出将针对第一存储块BLK_1的节点添加到图9中描述的错误位历史集ERR_BIT_HIS中的操作的示例的示图。
参照图10,第一存储块BLK_1的索引为K,并且在错误位历史集ERR_STR_HIS中不存在与索引为K的存储块BLK相对应的节点。在这种情况下,存储器控制器120可以新创建与第一存储块BLK_1相对应的节点,并且可以将该节点添加到错误位历史集ERR_STR_HIS。
在这种情况下,在错误位历史集ERR_STR_HIS中添加与第一存储块BLK_1相对应的节点的位置不限于特定位置。在图10中,以在错误位历史集ERR_STR_HIS的末尾节点(与索引为M的存储块相对应的节点)之后添加与第一存储块BLK_1相对应的节点的情况作为示例进行描述。然而,可以在错误位历史集ERR_STR_HIS的头部节点之前或在错误位历史集ERR_STR_HIS的任意节点之后添加与第一存储块BLK_1相对应的节点。
图11是示出根据本公开的示例性实施例的由存储器系统100校准历史读取偏压的操作的示例的流程图。
在图11中,假设在针对第一存储块BLK_1的第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值,从而存储器控制器120将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集ERR_STR_HIS中。
下文中,存储器控制器120可以在第一读取操作之后对第一存储块BLK_1执行第N(N是自然数)读取操作(S1110)。
另外,存储器控制器120可以计算在步骤S1110中执行的第N读取操作中生成的错误位的数量B(S1120)。
存储器控制器120可以确定在步骤S1120中计算出的B的值是否等于或大于上述第一阈值(S1130)。如果B的值等于或大于第一阈值(S1130-是),则存储器控制器120可以执行校准第一存储块BLK_1的历史读取偏压的操作(S1140)。
同时,如果B的值小于第一阈值(S1130-否),则存储器控制器120可以停止校准第一存储块BLK_1的历史读取偏压的操作(S1150)。当B的值小于第一阈值时,这表示历史读取偏压已经被优化,即处于图6的状态②,并且不需要进一步校准历史读取偏压。
下文中,当存储器控制器120校准第一存储块BLK_1的历史读取偏压时,将描述根据读取操作的历史读取偏压的校准值的变化状态。
图12是示出根据读取操作的历史读取偏压的校准值的变化的示例的示图。
当存储器控制器120校准第一存储块BLK_1的历史读取偏压时,校准历史读取偏压的方向可以与先前校准历史读取偏压的方向相反。此处,校准历史读取偏压的校准方向可以表示历史读取偏压的值是增大还是减小。
在图12中,第一读取操作中的校准后的历史读取偏压值为H,并且第二读取操作中的校准后的历史读取偏压值为H+a。也就是说,在第二读取操作中,沿值增大的方向校准历史读取偏压。
在后续的第三读取操作中,校准后的历史读取偏压值为H-a。也就是说,不同于第二读取操作的情况,在第三读取操作中,沿值减小的方向校准历史读取偏压。
通过这种模式,不同于第三读取操作的情况,第四读取操作中的校准后的历史读取偏压值为H+b,并且沿值增大的方向被校准。另外,不同于第四读取操作的情况,第五读取操作中的校准后的历史读取偏压值为H-b,并且沿值减小的方向被校准。
另外,不同于第五读取操作的情况,第六读取操作中的校准后的历史读取偏压值为H+c,并且沿值增大的方向被校准。
通常,在针对第一存储块BLK_1的第一读取操作之后的第N读取操作中的历史读取偏压的校准方向与先前的读取操作即第(N-1)读取操作中的历史读取偏压的校准方向相反。
另外,当存储器控制器120校准第一存储块BLK_1的历史读取偏压时,历史读取偏压的校准偏移的大小可以大于或等于先前的读取操作期间的历史读取偏压的校准偏移的大小。
参照图12,在第二读取操作期间,历史读取偏压的校准偏移的大小为a,其是H与(H+a)之间的差,并且在第三读取操作期间的历史读取偏压的校准偏移的大小为a,其是H与(H-a)之间的差并且与第二读取操作的情况相同。
另外,在第四读取操作期间的历史读取偏压的校准偏移的大小为b,其是(H+b)与H之间的差,并且b的值大于a的值。在第五读取操作中,历史读取偏压的校准偏移的大小为b,其是(H-b)与H之间的差并且与第四读取操作中的相同。
在第六读取操作中,历史读取偏压的校准偏移的大小为c,其是(H+c)与H之间的差,并且c的值大于b的值。
如果概括而言,则在针对第一存储块BLK_1的第一读取操作之后的第N读取操作中校准历史读取偏压的校准偏移的大小可以大于或等于在先前的读取操作中即在第(N-1)读取操作中校准历史读取偏压的校准偏移的大小。
在本公开的实施例中,以如图12中描述的模式中的之字形的方式校准历史读取偏压的原因在于,与初始历史读取偏压相比,增加了历史读取偏压的变化程度。这是为了迅速进入如图6的②所示的历史读取偏压被优化的状态,或者如图6的③所示的发生解码失败的状态。
同时,如上面参照图7所述,在本公开的实施例中,存储器系统100的存储器控制器120可以校准历史读取偏压操作,直到满足特定的终止条件为止。下文中,将描述当满足终止条件时存储器系统100终止校准历史读取偏压的操作的情况。
图13是示出根据本公开的示例性实施例的由存储器系统100终止校准历史读取偏压的操作的示例的流程图。
参照图13,存储器系统100的存储器控制器120可以首先对第一存储块BLK_1执行第一读取操作(S1310)。在这种情况下,在针对第一存储块BLK_1的第一读取操作中生成的错误位的数量可能大于或等于第一阈值并且小于第二阈值。
另外,存储器控制器120可以对第一存储块BLK_1执行附加的读取操作(S1320)。在这种情况下,附加的读取操作可以是在针对第一存储块BLK_1的第一读取操作之后的第N读取操作(N是自然数)。
另外,存储器控制器120可以基于在步骤S1320中执行的读取操作期间生成的错误位的数量来校准与第一存储块BLK_1相对应的历史读取偏压(S1330)。
下文中,存储器控制器120可以确定在步骤S1320中执行的读取操作期间生成的错误位的数量是否小于第一阈值或者等于或大于第二阈值,或者在第一读取操作之后执行的读取操作的数量是否等于或大于第三阈值(S1340)。也就是说,终止条件可以是在针对第一存储块BLK_1的读取操作中生成的错误位的数量小于第一阈值或者等于或大于第二阈值的条件,或者是在第一读取操作之后执行的读取操作的数量等于或大于第三阈值的条件。
如果在读取操作期间生成的错误位的数量小于第一阈值或者等于或大于第二阈值,或者在第一读取操作之后运行的读取操作的数量大于或等于第三阈值(S1340-是),则存储器控制器120可以终止校准历史读取偏压的操作(S1350)。
当满足终止条件并且存储器控制器120终止校准历史读取偏压的操作时,存储器控制器120可以从错误位历史集ERR_BIT_HIS中去除关于与第一存储块BLK_1相对应的错误位的数量的信息。这是因为第一存储块BLK_1不再是历史读取偏压被校准的目标存储块。
例如,在错误位历史集ERR_BIT_HIS是图9中描述的链表的情况下,存储器控制器120可以从错误位历史集ERR_BIT_HIS中删除与第一存储块BLK_1相对应的节点。
另一方面,如果在读取操作期间生成的错误位的数量大于或等于第一阈值且小于第二阈值,并且在第一读取操作之后运行的读取操作的数量小于第三阈值(S1340-N),则存储器控制器120可以再次执行步骤S1320。
图14是示出根据本公开的示例性实施例的存储器系统100校准历史读取偏压的定时的示例的示图。
存储器系统100的存储器控制器120可以在读取操作期间校准历史读取偏压,而不是在读取操作之前或之后的时间单独地校准历史读取偏压。
作为示例,存储器控制器120可以在读取操作期间的不输出地址信息的地址周期(例如,第6周期至第9周期)期间校准历史读取偏压。
参照图14,在读取操作中使用的九个地址周期之中,在前五个地址周期中输出地址信息,但在后续的四个地址周期中不输出地址信息。在这种情况下,存储器系统100的存储器控制器120可以在不输出地址信息的四个地址周期中校准历史读取偏压,从而省略在读取操作之前和之后执行的用于校准历史读取偏压的单独操作。
图15是示出根据本公开的示例性实施例的操作存储器系统100的方法的示图。
参照图15,存储器系统100的操作方法可以包括检查或确定在针对存储器装置110中包括的多个存储块BLK之中的第一存储块BLK_1的第一读取操作中生成的错误位的数量的步骤(S1510)。
另外,存储器系统100的操作方法可以包括当在第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值时将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集ERR_BIT_HIS中的步骤(S1520)。
错误位历史集ERR_BIT_HIS可以存储在针对目标存储块的读取操作期间生成的错误位的数量,该目标存储块是多个存储块BLK之中的历史读取偏压被校准的存储块。
另外,存储器系统100的操作方法可以包括在针对第一存储块BLK_1的第一读取操作之后运行的读取操作期间重复校准与第一存储块BLK_1相对应的历史读取偏压的操作直到满足特定终止条件为止的步骤(S1530)。
第二阈值可以是用于确定在针对第一存储块BLK_1的读取操作期间解码是否已经失败的参考值。
错误位历史集ERR_BIT_HIS可以是包括与目标存储块中的任意一个相对应的节点ND的链表。在这种情况下,节点ND可以包括用于存储从创建节点ND的时间起对与节点ND相对应的目标存储块执行的读取操作的数量的第一字段FIELD_1以及用于存储在针对与节点ND相对应的目标存储块的最近运行的读取操作中生成的错误位的数量的第二字段FIELD_2。
同时,当将关于在第一读取操作中生成的错误位的数量的信息存储在错误位历史集ERR_BIT_HIS中时,可以将与第一存储块BLK_1相对应的节点添加到错误位历史集ERR_BIT_HIS中,并且可以将与第一存储块BLK_1相对应的节点的第二字段FIELD_2设置成在第一读取操作中生成的错误位的数量。
当在针对第一存储块BLK_1的第一读取操作之后执行的第N读取操作(N是自然数)中生成的错误位的数量大于或等于第一阈值时,可以校准与第一存储块BLK_1相对应的历史读取偏压。
在这种情况下,历史记录读取偏压的校准方向可以与在第一读取操作之后针对第一存储块BLK_1执行的第(N-1)读取操作中的历史读取偏压的校准方向相反。另外,历史读取偏压的校准偏移的大小可以大于或等于在针对第一存储块BLK_1的第一读取操作之后执行的第(N-1)读取操作中的历史读取偏压的校准偏移的大小。
步骤S1530中描述的终止条件可以是,例如在针对第一存储块BLK_1的第一读取操作之后执行的读取操作中生成的错误位的数量小于第一阈值或者等于或大于第二阈值的条件,或者在第一读取操作之后执行的读取操作的数量等于或大于第三阈值的条件。同时,当满足终止条件时,可以从错误位历史集ERR_BIT_HIS中去除关于与第一存储块BLK_1相对应的错误位的数量的信息。
同时,可以在针对第一存储块BLK_1的第一读取操作之后执行的读取操作期间的不输出地址信息的地址周期期间校准第一存储块BLK_1的历史读取偏压的值。
在一些实施方案中,上述存储器控制器120的操作可以由控制电路123控制,并且可以以处理器124运行(驱动)对存储器控制器120的全部操作进行了编程的固件的方式来执行。
图16是示出基于本公开的技术的实施例的计算系统1600的配置的示图。
参照图16,基于本公开的技术的实施例的计算系统1600可以包括:存储器系统100,电联接到系统总线1660;CPU 1610,被配置成控制计算系统1600的全部操作;RAM1620,被配置成存储与计算系统1600的操作有关的数据和信息;用户接口/用户体验(UI/UX)模块1630,被配置成向用户提供用户环境;通信模块1640,被配置成以有线和/或无线类型与外部装置通信;以及电源管理模块1650,被配置成管理由计算系统1600使用的电力。
计算系统1600可以是个人计算机(PC)或者可以包括诸如智能手机、平板电脑或各种电子装置的移动终端。
计算系统1600可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器和DRAM。其它元件对于本领域技术人员而言将是显而易见的。
存储器系统100不仅可以包括诸如硬盘驱动器(HDD)的被配置成将数据存储在磁盘中的装置,还包括诸如固态驱动器(SSD)、通用闪存装置或嵌入式MMC(eMMC)装置的被配置成将数据存储在非易失性存储器中的装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器系统100可以被实施成各种类型的存储装置并且被安装在各种电子装置内部。
根据上述所公开的技术的示例性实施例,可以减少或最小化存储器系统的操作延迟时间。另外,可以以减少或最小化在调用特定功能的进程中发生的开销的方式来实施本公开的技术。尽管出于说明性目的已经描述了本公开的技术的各个实施例,但是本领域技术人员将理解的是,基于本专利文件中描述和示出的内容,可以进行各种修改、添加和替换。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
存储器控制器,与所述存储器装置通信,并且控制所述存储器装置,
其中当在针对所述多个存储块之中的第一存储块的第一读取操作中生成的错误位的数量大于或等于第一阈值并且小于第二阈值时,所述存储器控制器将关于在所述第一读取操作中生成的所述错误位的数量的信息存储在错误位历史集中,并且在针对所述第一存储块的所述第一读取操作之后执行的读取操作期间,重复校准与所述第一存储块相对应的历史读取偏压的操作,直到满足终止条件为止,
其中所述错误位历史集存储在针对目标存储块的读取操作期间生成的所述错误位的数量,所述目标存储块是所述多个存储块之中的所述历史读取偏压被校准的存储块。
2.根据权利要求1所述的存储器系统,其中所述第二阈值是用作用于确定在针对所述第一存储块执行的所述读取操作期间解码是否失败的参考的值。
3.根据权利要求1所述的存储器系统,其中所述错误位历史集是包括节点的链表,所述节点中的每一个对应于所述目标存储块中的任意一个,
其中所述节点中的每一个包括:第一字段,存储从生成所述节点的时间起针对与所述节点相对应的所述目标存储块执行的所述读取操作的数量;以及
第二字段,存储在针对与所述节点相对应的所述目标存储块最近执行的读取操作中生成的所述错误位的数量。
4.根据权利要求3所述的存储器系统,其中当将关于在所述第一读取操作中生成的所述错误位的数量的信息存储在所述错误位历史集中时,所述存储器控制器生成与所述第一存储块相对应的节点并将所述节点添加到所述错误位历史集中,并且将与所述第一存储块相对应的所述节点的所述第二字段设置为在所述第一读取操作中生成的所述错误位的数量。
5.根据权利要求1所述的存储器系统,其中当在针对所述第一存储块的所述第一读取操作之后执行的第N读取操作中生成的所述错误位的数量等于或大于所述第一阈值时,所述存储器控制器校准所述历史读取偏压。
6.根据权利要求5所述的存储器系统,其中所述第N读取操作中的所述历史读取偏压的校准方向与在针对所述第一存储块的所述第一读取操作之后执行的第(N-1)读取操作中的所述历史读取偏压的所述校准方向相反。
7.根据权利要求1所述的存储器系统,其中所述第N读取操作中的所述历史读取偏压的校准偏移的大小等于或大于在针对所述第一存储块的所述第一读取操作之后执行的所述第(N-1)读取操作中的所述历史读取偏压的所述校准偏移的大小。
8.根据权利要求1所述的存储器系统,其中所述终止条件是在针对所述第一存储块的所述第一读取操作之后执行的所述读取操作中生成的所述错误位的数量小于所述第一阈值或者等于或大于所述第二阈值的条件,或者是在所述第一读取操作之后执行的所述读取操作的数量等于或大于第三阈值的条件。
9.根据权利要求1所述的存储器系统,其中当满足所述终止条件时,所述存储器控制器从所述错误位历史集中去除与所述第一存储块相对应的所述错误位的数量的信息。
10.根据权利要求1所述的存储器系统,其中所述存储器控制器在针对所述第一存储块的所述第一读取操作之后执行的所述读取操作期间的不输出地址信息的地址周期期间校准所述历史读取偏压。
11.一种存储器系统的操作方法,所述存储器系统包括具有多个存储块的存储器装置,所述操作方法包括:
确定在针对所述多个存储块之中的第一存储块的第一读取操作中生成的错误位的数量;
当在所述第一读取操作中生成的所述错误位的数量大于或等于第一阈值并且小于第二阈值时,将关于在所述第一读取操作中生成的所述错误位的数量的信息存储在错误位历史集中;并且
在针对所述第一存储块的所述第一读取操作之后执行的读取操作期间,重复校准与所述第一存储块相对应的历史读取偏压的操作,直到满足设定的终止条件为止,
其中所述错误位历史集存储在针对目标存储块的读取操作期间生成的所述错误位的数量,所述目标存储块是所述多个存储块之中的所述历史读取偏压被校准的存储块。
12.根据权利要求11所述的操作方法,其中所述第二阈值是用作用于确定在针对所述第一存储块执行的所述读取操作期间解码是否失败的参考的值。
13.根据权利要求11所述的操作方法,其中所述错误位历史集是包括节点的链表,所述节点中的每一个对应于所述目标存储块中的任意一个,
其中所述节点中的每一个包括:
第一字段,存储从生成所述节点的时间起针对与所述节点相对应的所述目标存储块执行的所述读取操作的数量;以及
第二字段,存储在针对与所述节点相对应的所述目标存储块最近执行的读取操作中生成的所述错误位的数量。
14.根据权利要求13所述的操作方法,其中当将关于在所述第一读取操作中生成的所述错误位的数量的信息存储在所述错误位历史集中时,将与所述第一存储块相对应的所述节点添加到所述错误位历史集中,并且将与所述第一存储块相对应的所述节点的所述第二字段设置为在所述第一读取操作中生成的所述错误位的数量。
15.根据权利要求13所述的操作方法,其中当在针对所述第一存储块的所述第一读取操作之后执行的第N读取操作中生成的所述错误位的数量等于或大于所述第一阈值时,校准所述历史读取偏压。
16.根据权利要求15所述的操作方法,其中所述第N读取操作中的所述历史读取偏压的校准方向与在针对所述第一存储块的所述第一读取操作之后执行的第(N-1)读取操作中的所述历史读取偏压的所述校准方向相反。
17.根据权利要求15所述的操作方法,其中所述第N读取操作中的所述历史读取偏压的校准偏移的大小等于或大于在针对所述第一存储块的所述第一读取操作之后执行的所述第(N-1)读取操作中的所述历史读取偏压的所述校准偏移的大小。
18.根据权利要求11所述的操作方法,其中所述终止条件是在针对所述第一存储块的所述第一读取操作之后执行的所述读取操作中生成的所述错误位的数量小于所述第一阈值或者等于或大于所述第二阈值的条件,或者是在所述第一读取操作之后执行的所述读取操作的数量等于或大于第三阈值的条件。
19.根据权利要求11所述的操作方法,其中当满足所述终止条件时,从所述错误位历史集中去除与所述第一存储块相对应的所述错误位的数量的信息。
20.根据权利要求11所述的操作方法,其中在针对所述第一存储块的所述第一读取操作之后执行的所述读取操作期间的不输出地址信息的地址周期期间校准所述历史读取偏压。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0117490 | 2020-09-14 | ||
KR1020200117490A KR20220035577A (ko) | 2020-09-14 | 2020-09-14 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114187949A true CN114187949A (zh) | 2022-03-15 |
Family
ID=80601288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110380346.9A Withdrawn CN114187949A (zh) | 2020-09-14 | 2021-04-09 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12039190B2 (zh) |
KR (1) | KR20220035577A (zh) |
CN (1) | CN114187949A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116364163B (zh) * | 2023-04-17 | 2023-11-10 | 武汉喻芯半导体有限公司 | 一种基于nand闪存控制器的纠错方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) * | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
US20120008414A1 (en) * | 2010-07-06 | 2012-01-12 | Michael Katz | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
KR102215741B1 (ko) | 2014-06-23 | 2021-02-17 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102290974B1 (ko) | 2014-11-07 | 2021-08-19 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 |
US10740178B2 (en) * | 2017-10-05 | 2020-08-11 | Western Digital Technologies, Inc. | Self-prioritizing adaptive retry threshold adjustment |
US10976964B2 (en) * | 2019-06-27 | 2021-04-13 | Western Digital Technologies, Inc. | Storage system and method for hit-rate-score-based selective prediction of future random read commands |
-
2020
- 2020-09-14 KR KR1020200117490A patent/KR20220035577A/ko unknown
-
2021
- 2021-02-09 US US17/171,876 patent/US12039190B2/en active Active
- 2021-04-09 CN CN202110380346.9A patent/CN114187949A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20220035577A (ko) | 2022-03-22 |
US12039190B2 (en) | 2024-07-16 |
US20220083255A1 (en) | 2022-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113257324B (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US20230333932A1 (en) | Memory system and operating method thereof | |
CN114067870A (zh) | 存储器系统、存储器装置以及用于操作存储器装置的方法 | |
CN114489466A (zh) | 存储器系统及其操作方法 | |
CN113010459A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US11372766B2 (en) | Memory system, memory controller, and method of operating memory system | |
CN113703662B (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN112349315B (zh) | 存储器系统、存储器控制器和操作方法 | |
CN113806254A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
US12039190B2 (en) | Memory system and operating method of the memory system for calibrating a history read bias based on a number of error bits generated in a read operation | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
CN115206393A (zh) | 存储器装置及存储器装置的操作方法 | |
CN114520013A (zh) | 存储器系统及其操作方法 | |
CN114530173A (zh) | 存储器系统及其操作方法 | |
US12050533B2 (en) | Memory system and operating method of memory system | |
US11307807B2 (en) | Memory system, memory controller, and method for operating memory system for determining read biases for read retry operation | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US12015425B2 (en) | Controller and operating method thereof for determining reliability data based on syndrome weight | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection | |
US20230376211A1 (en) | Controller for controlling one-time programmable memory, system, and operation method thereof | |
CN114756166A (zh) | 存储器系统及其操作方法 | |
CN114968078A (zh) | 存储器装置及其操作方法 | |
CN114764394A (zh) | 存储器系统及其操作方法 | |
CN115774518A (zh) | 存储器系统及存储器系统的操作方法 | |
CN115223631A (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: 20220315 |
|
WW01 | Invention patent application withdrawn after publication |