CN112445726A - 存储器系统、存储器控制器及操作方法 - Google Patents
存储器系统、存储器控制器及操作方法 Download PDFInfo
- Publication number
- CN112445726A CN112445726A CN202010266282.5A CN202010266282A CN112445726A CN 112445726 A CN112445726 A CN 112445726A CN 202010266282 A CN202010266282 A CN 202010266282A CN 112445726 A CN112445726 A CN 112445726A
- Authority
- CN
- China
- Prior art keywords
- memory
- user data
- data
- data segment
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 423
- 238000000034 method Methods 0.000 title claims description 31
- 238000013507 mapping Methods 0.000 claims abstract description 160
- 238000009826 distribution Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 2
- 238000011017 operating method Methods 0.000 abstract description 6
- 239000010410 layer Substances 0.000 description 18
- 238000012937 correction Methods 0.000 description 16
- 239000000872 buffer Substances 0.000 description 14
- 238000001514 detection method Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000003936 working memory Effects 0.000 description 7
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Abstract
本发明的实施例涉及一种存储器系统、存储器控制器及操作方法。本发明可将用户数据和与用户数据对应的映射数据划分成数据段,可将数据段输入在N个虚拟管芯队列中,并且可将数据段编程在存储器装置中,其中根据两种编程方案对输入到虚拟管芯队列中的用户数据段进行编程,从而将用户数据和映射数据快速地编程在存储器装置中,并且快速地更新映射高速缓存中的映射数据。
Description
相关申请的交叉引用
本申请要求于2019年8月27日向韩国知识产权局提交的申请号为10-2019-0105431的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的实施例涉及一种存储器系统、存储器控制器和操作方法。
背景技术
存储器系统基于诸如计算机、移动终端(例如,智能电话或平板电脑)或各种其它电子装置中的任意一种的主机的请求存储数据。存储器系统可包括用于将数据存储在磁盘(例如,硬盘驱动器(HDD))中的装置,或者用于将数据存储在非易失性存储器(例如,固态驱动器(SSD)、通用闪存(UFS)装置、嵌入式MMC(eMMC)装置等)中的装置。
存储器系统可进一步包括用于控制相关联存储器装置的存储器控制器。存储器控制器可从主机接收命令,并且可基于所接收的命令来运行或控制从存储器读取数据、将数据写入到存储器或从存储器擦除数据的操作。此外,存储器控制器可驱动固件来执行用于运行或控制操作的逻辑运算。
随着存储器系统的存储容量增加,对存储器系统快速处理主机所请求的海量数据写入操作以及这种海量数据写入操作所必需的附加操作(例如,更新映射高速缓存中的映射数据的操作)的需求也增加。
发明内容
本公开的实施例可提供一种可将用户数据和映射数据快速编程在存储器装置中的存储器系统、存储器控制器及操作方法。
此外,本公开的实施例可提供一种可在将用户数据和映射数据编程在存储器装置中时快速更新映射高速缓存中的映射数据的存储器系统、存储器控制器及操作方法。
在一方面,本公开的实施例可提供一种存储器系统,包括:存储器装置,包括多个管芯和设置在多个存储器管芯中的多个存储块;以及存储器控制器。
存储器控制器可将与从主机接收的命令对应的用户数据划分成用户数据段。
存储器控制器可将与用户数据对应的映射数据划分成映射数据段。
存储器控制器可将用户数据段之中的第一用户数据段和映射数据段之中的第一映射数据段排队在N个虚拟管芯队列之中的被选择虚拟管芯队列中,其中N是2或更大的自然数。
存储器控制器可以条带化方案将用户数据段和映射数据段排队在N个虚拟管芯队列中。
存储器控制器可将第一用户数据段和第一映射数据段编程在存储器装置中包括的多个存储器管芯中的一个中的存储块中。
存储器控制器可根据第一编程方案将全部或部分第一用户数据段编程在存储器装置中的、与多个字线之中的第一字线连接的存储器单元中,然后可以第二编程方案将以第一编程方案编程的全部或部分第一用户数据段编程在与第一字线连接的存储器单元中。
根据第一编程方案编程的存储器单元的阈值电压分布比根据第二编程方案编程的存储器单元的阈值电压分布更宽。
存储器控制器可在第一时间和第二时间之间,根据第一编程方案将不同于第一用户数据段的数据编程在存储器装置中的、与字线之中的第二字线连接的存储器单元中。
在第一时间,存储器控制器根据第一编程方案将全部或部分第一用户数据段编程在与第一字线连接的存储器单元中。
在第二时间,存储器控制器根据第二编程方案将全部或部分第一用户数据段编程在与第一字线连接的存储器单元中。
存储器控制器可在对第一用户数据段进行编程之前将第一映射数据段编程在存储器装置中,而不管第一映射数据段和第一用户数据段排队在被选择虚拟管芯队列中的顺序。
存储器控制器可在根据第二编程方案将第一用户数据段编程在存储器装置中之后,更新映射高速缓存中的第一映射数据段。
在另一方面,本公开的实施例可提供一种存储器控制器,包括:存储器接口,被配置成与包括多个存储器管芯的存储器装置通信,存储器管芯包括多个存储块;以及控制电路。
控制电路可将与从主机接收的命令对应的用户数据划分成用户数据段。
控制电路可将与用户数据对应的映射数据划分成映射数据段。
控制电路可将用户数据段之中的第一用户数据段和映射数据段之中的第一映射数据段排队在N个虚拟管芯队列之中的被选择虚拟管芯队列中,其中N是2或更大的自然数。
控制电路可以条带化方案将用户数据段和映射数据段排队在N个虚拟管芯队列中。
控制电路可将第一用户数据段和第一映射数据段编程在存储器装置中的多个存储器管芯中的一个中的存储块中。
控制电路可根据第一编程方案将全部或部分第一用户数据段编程在存储器装置中的、与多个字线之中的第一字线连接的存储器单元中,然后可根据第二编程方案将根据第一编程方案编程的全部或部分第一用户数据段编程在与第一字线连接的存储器单元中。
根据第一编程方案编程的存储器单元的阈值电压分布比根据第二编程方案编程的存储器单元的阈值电压分布更宽。
控制电路可在第一时间和第二时间之间,根据第一编程方案将不同于第一用户数据段的数据编程在存储器装置中的、与字线之中的第二字线连接的存储器单元中。
在第一时间,控制电路根据第一编程方案,将全部或部分第一用户数据段编程在与第一字线连接的存储器单元中。
在第二时间,控制电路根据第二编程方案,将全部或部分第一用户数据段编程在与第一字线连接的存储器单元中。
控制电路可在对第一用户数据段进行编程之前将第一映射数据段编程在存储器装置中,而不管第一映射数据段和第一用户数据段排队在被选择虚拟管芯队列中的顺序。
控制电路可在根据第二编程方案将第一用户数据段编程在存储器装置中之后,更新映射高速缓存中的第一映射数据段。
在另一方面,本公开的实施例可提供一种存储器控制器的操作方法,该存储器控制器被配置成控制包括多个存储器管芯的存储器装置,该多个存储器管芯包括多个存储块。
存储器控制器的操作方法可包括将与从主机接收的命令对应的用户数据划分成用户数据段。
存储器控制器的操作方法可包括将与用户数据对应的映射数据划分成映射数据段。
存储器控制器的操作方法可包括:将用户数据段之中的第一用户数据段和映射数据段之中的与该第一用户数据段对应的第一映射数据段排队在N个虚拟管芯队列之中的被选择虚拟管芯队列中,其中N是2或更大的自然数。
存储器控制器的操作方法可包括:将第一用户数据段和第一映射数据段编程在多个存储器管芯中的一个中的存储块中。
全部或部分第一用户数据段可根据第一编程方案被编程在存储器装置中包括的、与字线之中的第一字线连接的存储器单元中,然后可根据第二编程方案被编程在与第一字线连接的存储器单元中。
在另一方面,本公开的实施例可提供一种包括存储器装置和控制器的存储器系统。
控制器可控制存储器装置以存储映射数据段,然后存储与该映射数据段对应的用户数据段。
在用户数据段被存储之后,控制器可根据映射数据段的存储来更新高速缓存的映射数据段。
存储器装置通过模糊-精细编程方案存储用户数据段。
根据本公开的实施例,用户数据和映射数据可被快速编程在存储器装置中。
此外,根据本公开的实施例,当用户数据和映射数据被编程在存储器装置中时,可快速地更新映射高速缓存中的用户数据和映射数据。
附图说明
从以下结合附图的详细描述中,本公开的上述和其它方面、特征和优点将更加显而易见,其中:
图1示意性地示出根据本公开的实施例的存储器系统的配置。
图2是示意性地示出根据本公开的实施例的存储器装置的框图。
图3示意性地示出根据本公开的实施例的存储器装置的代表性存储块。
图4示出根据本公开的实施例的存储器装置的字线和位线的结构。
图5示出根据本公开的实施例将用户数据和映射数据存储在存储器系统中的存储器装置中。
图6示出根据本公开的实施例在存储器系统中以条带化(stripping)方案将用户数据段和映射数据段排队在虚拟管芯队列中。
图7示出根据本公开的实施例将第一用户数据段编程在存储器系统中的、与字线连接的存储器单元中。
图8示出根据本公开的实施例的存储器系统中的第一编程方法和第二编程方法之间的差异。
图9和图10示出根据本公开的实施例的将数据编程在存储器系统中的存储器单元中的示例。
图11是示出基于图9和图10所示的操作将数据编程在存储器单元中的顺序的示例的表。
图12示出根据本公开的实施例的被排队在第一虚拟管芯队列中的用户数据段和映射数据段在存储器系统中的编程顺序的示例。
图13示出根据本公开的实施例的在存储器系统中的映射高速缓存中更新被编程在存储器装置中的映射数据的时间。
图14示出根据本公开的实施例的被排队在第一虚拟管芯队列中的用户数据段和映射数据段在存储器系统中的编程顺序的另一示例。
图15示出根据本公开的实施例的被排队在第一虚拟管芯队列中的用户数据段和映射数据段在存储器系统中的编程顺序的另一示例。
图16是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图17示出根据本公开的实施例的计算系统的配置。
具体实施方式
下面参照附图详细地描述本公开的实施例。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1示意性地示出根据本公开的实施例的存储器系统100的配置。
参照图1,存储器系统100可包括被配置成存储数据的存储器装置110,以及被配置成控制存储器装置110的存储器控制器120。
存储器装置110包括多个存储块,并且响应于存储器控制器120的控制而操作。存储器装置110的操作可包括读取操作、编程操作(也称为“写入操作”)和擦除操作。
存储器装置110可包括存储器单元阵列,该存储器单元阵列包括被配置成存储数据的多个存储器单元(简称为“单元”)。存储器单元阵列可存在于每个存储块中。
例如,存储器装置110可由诸如以下的各种类型的存储器中的任意一种来实施:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、3D NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。
存储器装置110可被配置成三维阵列结构。除了电荷存储层形成为导电浮栅的的闪速存储器装置之外,本公开的实施例可应用于电荷存储层形成为绝缘膜的电荷撷取闪存(CTF)。
存储器装置110被配置成从存储器控制器120接收命令和地址,并且访问存储器单元阵列之中由地址选择的区域。也就是说,存储器装置110可针对由地址选择的区域执行与命令对应的操作。
例如,存储器装置110可执行编程操作、读取操作和擦除操作。在编程操作期间,存储器装置110将数据编程在由地址选择的区域中。在读取操作期间,存储器装置110从由地址选择的区域读取数据。在擦除操作期间,存储器装置110擦除由地址选择的区域中存储的数据。
存储器控制器120可控制存储器装置110的写入(编程)操作、读取操作、擦除操作和后台操作。作为示例,后台操作可包括垃圾收集(GC)、损耗均衡(WL)或坏块管理(BBM)。
存储器控制器120可响应于主机(HOST)的请求来控制存储器装置110的操作。相反,存储器控制器120也可不管主机的请求而控制存储器装置110的操作。
存储器控制器120和主机可以是单独的装置。可选地,存储器控制器120和主机可组合成单个装置。在下面的描述中,通过示例的方式,存储器控制器120和主机是单独的装置。
参照图1,存储器控制器120可包括存储器接口122和控制电路123,并且可进一步包括主机接口121。
主机接口121提供用于与主机通信的接口。
控制电路123可通过主机接口121从主机接收命令,并且可处理所接收的命令。
存储器接口122连接到存储器装置110,并且提供用于与存储器装置110通信的接口。也就是说,存储器接口122可被配置成响应于控制电路123的控制而为存储器装置110与存储器控制器120提供接口。
控制电路123可以是存储器控制器120的操作组件,用以控制存储器装置110的操作。为此,例如,控制电路123可包括处理器124和/或工作存储器125。在实施例中,控制电路123可进一步包括错误检测和校正电路(ECC电路)126。
处理器124可执行逻辑运算。处理器124可通过主机接口121与主机通信,并且可通过存储器接口122与存储器装置110通信。
处理器124可用作闪存转换层(FTL)。处理器124可通过闪存转换层(FTL)将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。闪存转换层(FTL)可使用映射表来接收逻辑块地址(LBA),并且将该逻辑块地址(LBA)转换成物理块地址(PBA)。
FTL可根据映射单元来使用多种地址映射方法中的任意一种。代表性的地址映射方法是页面映射方法、块映射方法和混合映射方法。
处理器124被配置成使从主机接收的数据随机化。例如,处理器124可使用随机化种子来使从主机接收的数据随机化。经随机化的数据作为待存储的数据被提供到存储器装置110,并且被编程在存储器单元阵列中。
在读取操作期间,处理器124被配置成使从存储器装置110接收的数据去随机化。例如,处理器124将通过使用去随机化种子来使从存储器装置110接收的数据去随机化。经去随机化的数据将被输出到主机。
处理器124可运行控制存储器控制器120的操作的固件。换言之,处理器124可在启动期间运行(驱动)加载在工作存储器125中的固件,以便执行逻辑运算。
固件是在存储器系统100中运行的程序,并且可包括各种功能层。
例如,固件可包括以下中的一个或多个:闪存转换层(FTL),被配置成执行存储器装置110的物理地址与逻辑地址之间的转换;主机接口层(HIL),被配置成解释来自主机的命令,并且将该命令传送到闪存转换层(FTL);以及闪存接口层(FIL),被配置成将由闪存转换层(FTL)指示的命令传递到存储器装置110。
例如,固件可存储在存储器装置110中,然后加载在工作存储器125中。
工作存储器125可存储驱动存储器控制器120的固件、程序代码、命令或数据。例如,工作存储器125是易失性存储器,并且可包括静态RAM(SRAM)、动态RAM(DRAM)和/或同步DRAM(SDRAM)。
错误检测和校正电路126可被配置成使用错误校正码来检测所识别的数据的错误位,并且校正所检测到的错误位。包含错误的数据可以是存储在工作存储器125中的数据或者从存储器装置110读取的数据。
错误检测和校正电路126可被实施为通过错误校正码来解码数据。错误检测和校正电路126可被实施为各种代码解码器中的任意一种。例如,可使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
例如,错误检测和校正电路126可以扇区为单位针对读取数据中的每一个检测错误位。也就是说,读取数据中的每一个可包括多个扇区。扇区可指代小于作为闪速存储器的读取单位的页面的数据单位。构成读取数据中的每一个的扇区可通过地址彼此对应。
错误检测和校正电路126可计算位错误率(BER),并且可确定是否可以扇区为单位进行校正。例如,当位错误率(BER)大于参考值时,错误检测和校正电路126确定相关扇区不可校正或失败。另一方面,当位错误率(BER)低于参考值时,确定相关扇区可校正或通过。
错误检测和校正电路126可针对所有读取数据顺序地检测和校正错误。当读取数据中包括的扇区是可校正的时,错误检测和校正电路126可省略针对下一读取数据的对相关扇区的错误检测和校正操作。以这种方式,当完成对所有读取数据的错误检测和校正操作时,错误检测和校正电路126可检测已被确定为最后不可校正的扇区。可确定一个或多个扇区是不可校正的。错误检测和校正电路126可将关于被确定为不可校正的扇区的信息(例如,地址信息)传递到处理器124。
总线127可被配置成提供存储器控制器120的组成元件121、122、124、125和126之间的通道。例如,总线127可包括用于传递各种类型的控制信号和命令的控制总线,以及用于传递各种类型的数据的数据总线。
图1所示的存储器控制器120的元件仅仅是示例。可省略这些元件中的一些。可选地,两个或更多个这些元件可组合成一个。当然,存储器控制器120可包括附加元件。
下面参照图2给出存储器装置110的更详细描述。
图2是示意性地示出根据本公开的实施例的存储器装置110的框图。
参照图2,存储器装置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感测存储器单元的数据,临时存储读取数据,然后将数据(DATA)输出到存储器装置110的输入/输出缓冲器。作为示例,读取和写入电路230可包括列选择电路而非页面缓冲器(PB)或页面寄存器。
控制逻辑240可连接到地址解码器220、读取和写入电路230以及电压生成电路250。控制逻辑240可通过存储器装置110的输入/输出缓冲器接收命令CMD和控制信号CTRL。
控制逻辑240可被配置成响应于控制信号CTRL控制存储器装置110的全部操作。控制逻辑240可输出用于调整多个页面缓冲器(PB)的感测节点的预充电电势电平的控制信号。
控制逻辑240可控制读取和写入电路230来执行存储器单元阵列210的读取操作。电压生成电路250可响应于从控制逻辑240输出的电压生成电路控制信号而生成待在读取操作期间使用的读取电压Vread和通过电压Vpass。
图3示意性地示出根据本公开的实施例的存储器装置110的代表性存储块BLK。
参照图3,例如,存储器装置110中包括的存储块BLK可被设置成使得多个页面(PG)和多个串(STR)以相交模式布置,如图3所示。
多个页面(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所示的存储块结构中,可以页面为单位执行读取操作和编程操作(写入操作),并且可以存储块为单位执行擦除操作。
图4示出根据本公开的实施例的存储器装置110的字线(WL)和位线(BL)的结构。
参照图4,存储器装置110包括:内核区域,存储器单元(MC)位于该内核区域中;以及辅助区域,与内核区域分离并且支持存储器单元阵列210的操作。
内核区域可包括页面(PG)和串(STR)。在内核区域中,多个字线WL1至WL9和多个位线(BL)以相交模式布置。
多个字线WL1至WL9可连接到行解码器410,并且多个位线(BL)可连接到列解码器420。对应于读取和写入电路230的数据寄存器430可设置在多个位线(BL)和列解码器420之间。
多个字线WL1至WL9对应于多个页面(PG)。
例如,如图4所示,多个字线WL1至WL9中的每一个可对应于一个页面PG。相反,当多个字线WL1至WL9中的每一个具有较大大小时,多个字线WL1至WL9中的每一个可对应于两个或更多个(例如,两个或四个)页面(PG)。页面PG是执行编程操作和读取操作的最小单位。在编程操作和读取操作期间,相同页面PG中的全部存储器单元(MC)可同时执行操作。
多个位线(BL)被划分成奇数编号的位线(BL)和偶数编号的位线(BL),并且可连接到列解码器420。
为了访问存储器单元(MC),地址可经由输入/输出端子通过行解码器410和列解码器420进入内核区域,并且可指定待向其中编程数据或者待从其读取数据的目标存储器单元。目标存储器单元可处于地址所指示的、位线和字线的交叉点处。
第一方向(例如,X轴方向)上的页面PG连结到公共使用线,即字线(WL),并且第二方向(例如,Y轴方向)上的串STR也连结(连接)到公共线,即位线BL。公共连结表示由相同的材料进行连接,并且当向其施加电压时,同时施加相同的电压。当然,对于串联地连接的中间或最后存储器单元(MC),由于先前存储器单元(MC)的电压降,因此施加到第一存储器单元(MC)和最后存储器单元(MC)的电压可能略有不同。
在存储器装置110的数据处理中,因为经由数据寄存器430执行编程和读取,所以该数据寄存器430起着关键作用。当数据寄存器430的数据处理被延迟时,所有其它区域都需要等待,直到该数据寄存器430完成数据处理。此外,当数据寄存器430的性能劣化时,存储器装置110的整体性能可能劣化。
参照图4中的示例,一个串STR可包括分别连接到多个字线WL1至WL9的多个晶体管TR1至TR9。存在多个晶体管TR1至TR9的区域分别对应于存储器单元(MC)。如上所述,多个晶体管TR1至TR9中的每一个包括控制栅(CG)和浮栅(FG)。
多个字线WL1至WL9包括两个最外字线WL1和WL9。第一选择线DSL可设置在邻近数据寄存器430的第一最外字线WL1外部,并且第二选择线SSL可设置在第二最外字线WL9外部。
由第一选择线DSL控制其通断的第一选择晶体管D-TR仅具有连接到第一选择线DSL的栅电极,并且不包括浮栅(FG)。由第二选择线SSL控制其通断的第二选择晶体管S-TR仅具有连接到第二选择线SSL的栅电极,并且不包括浮栅FG。
第一选择晶体管D-TR用作被配置成接通或断开相应串STR和数据寄存器430之间的连接的开关。第二选择晶体管S-TR用作被配置成接通或断开相应串STR和源极线(SL)之间的连接的开关。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR设置在相应串STR的相对两端,并且用作被配置成连接或断开信号的网守。
因为位线(BL)的待被编程的目标存储器单元(MC)在编程操作时应该填充有电子,所以存储器系统100将设定导通电压(Vcc)施加到第一选择晶体管D-TR的栅电极以使该第一选择晶体管D-TR导通,并且将设定关断电压(例如,0V)施加到第二选择晶体管S-TR的栅电极以使第二选择晶体管S-TR关断。
在读取操作或验证操作期间,存储器系统100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,因为电流穿过相应串STR并且逸散到接地的源极线(SL),所以可测量位线(BL)的电压电平。然而,在读取操作期间,在第一选择晶体管D-TR的通断定时和第二选择晶体管S-TR的通断定时之间可能存在时间差。
在擦除操作期间,存储器系统100可通过源极线SL将设定电压(例如,+20V)供应到衬底。在擦除操作期间,存储器系统100使第一选择晶体管D-TR和第二选择晶体管S-TR两者浮置,以生成无限电阻。因此,存储器系统100消除第一选择晶体管D-TR和第二选择晶体管S-TR的作用,并且由于电势差而允许电子仅在浮栅(FG)和衬底之间工作。
图5示出根据本公开的实施例的将用户数据和映射数据存储在存储器系统100中的存储器装置110中。
参照图5,存储器系统100的存储器控制器120可将与从主机(HOST)接收的命令CMD对应的用户数据USR_DATA和与该用户数据USR_DATA对应的映射数据MAP_DATA编程(存储)在存储器装置110中。
与用户数据USR_DATA对应的映射数据MAP_DATA包括关于用户数据USR_DATA的映射信息,即指示用户数据USR_DATA的逻辑地址(逻辑块地址)和用户数据USR_DATA的物理地址(物理块地址)之间的映射关系的信息。
存储器装置110中存储的整个映射数据,即全部或部分映射数据可被加载到映射高速缓存中。存储器控制器120首先在加载在映射高速缓存中的映射数据中搜索与目标逻辑地址对应的物理地址的值,并且如果在搜索中未找到这种值,则将关于目标逻辑地址的映射信息从存储器装置110加载到映射高速缓存中。在这种情况下,映射高速缓存可处于存储器控制器120中的工作存储器125中。
当存储器控制器120将用户数据USR_DATA和映射数据MAP_DATA编程在存储器装置110中时,存储器控制器120可将用户数据USR_DATA和映射数据MAP_DATA中的每一个划分成一个或多个段。
具体地,存储器控制器120可将用户数据USR_DATA划分成一个或多个用户数据段,并且可将映射数据MAP_DATA划分成一个或多个映射数据段。
在图5中,用户数据USR_DATA被划分成用户数据段(USR_DATA_SEG_1、USR_DATA_SEG_2、USR_DATA_SEG_3、USR_DATA_SEG_4、USR_DATA_SEG_5、……),并且映射数据MAP_DATA被划分成映射数据段(MAP_DATA_SEG_1、MAP_DATA_SEG_2、MAP_DATA_SEG_3、MAP_DATA_SEG_4、……)。
此外,存储器控制器120可将用户数据段和映射数据段编程(存储)在存储器装置110中。
当用户数据段和映射数据段被编程在存储器装置110中时,存储器控制器120可使用虚拟管芯队列。
存储器控制器120使用虚拟管芯队列来控制用户数据段和映射数据段存储在存储器装置110中的顺序。原则上,因为先进先出(FIFO)适用于虚拟管芯队列,所以被排队在虚拟管芯队列中的用户数据段和映射数据段按照其在虚拟管芯队列中的输入顺序而存储在存储器装置110中。然而,在特定条件下,可改变将用户数据段和映射数据段存储在存储器装置110中的顺序。
具体地,存储器控制器120可将用户数据段和映射数据段排队在N个虚拟管芯队列(VIR_DIE_QUE_1、VIR_DIE_QUE_2、VIR_DIE_QUE_3、……、VIR_DIE_QUE_N)中,其中N是自然数。
存储器控制器120可将用户数据段之中的至少一个第一用户数据段和映射数据段之中的、与该第一用户数据段对应的第一映射数据段排队在N个虚拟管芯队列(VIR_DIE_QUE_1、VIR_DIE_QUE_2、VIR_DIE_QUE_3、……、VIR_DIE_QUE_N)之中的第一虚拟管芯队列中。也就是说,存储器控制器120可将用户数据段和相应映射数据段排队在相同的虚拟管芯队列中。
在图5中,存储器控制器120可将用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2以及映射数据段MAP_DATA_SEG_1排队在虚拟管芯队列VIR_DIE_QUE_1中。映射数据段MAP_DATA_SEG_1包括关于用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2的映射信息。
存储器控制器120可将用户数据段USER_DATA_SEG_3和映射数据段MAP_DATA_SEG_2排队在虚拟管芯队列VIR_DIE_QUE_2中。映射数据段MAP_DATA_SEG_2包括关于用户数据段USER_DATA_SEG_3的映射信息。
存储器控制器120可将用户数据段USER_DATA_SEG_4和USER_DATA_SEG_5以及映射数据段MAP_DATA_SEG_3排队在虚拟管芯队列VIR_DIE_QUE_3中。映射数据段MAP_DATA_SEG_3包括关于用户数据段USER_DATA_SEG_4和USER_DATA_SEG_5的映射信息。
如上所述,当用户数据段和映射数据段被排队在N个虚拟管芯队列中时,存储器控制器120可将已被排队在不同虚拟管芯队列中的用户数据段和映射数据段并行地编程在存储器装置110中。
然而,存储器控制器120可顺序地执行对被排队在相同虚拟管芯队列中的用户数据段和映射数据段的编程。
在本公开的实施例中,下面参照图6描述了通过存储器控制器120将用户数据段和映射数据段排队在N个虚拟管芯队列中的方法的示例。
此外,下面参照图13至图15描述将已存储在一个虚拟管芯队列中的用户数据段或映射数据段编程在存储器装置110中的特定操作的示例。
存储器控制器120可将被排队在N个虚拟管芯队列中的一个中的用户数据段或映射数据段编程在存储器装置110中的M个存储器管芯(DIE_1、DIE_2、DIE_3、……、DIE_M)之一中,其中M是大于或等于2的自然数。
虚拟管芯队列的数量N不一定等于存储器装置110中的存储器管芯的数量M。此外,被排队在一个虚拟管芯队列中的用户数据段和映射数据段不一定存储在相同存储器管芯上。也就是说,虚拟管芯队列可跨越多于一个存储器管芯。
M个存储器管芯(DIE_1、DIE_2、DIE_3、……、DIE_M)中的每一个可包括多个存储块(BLK)。
被编程用户数据段或映射数据段的存储块BLK可包括可连接到存储器装置110中的多个字线中的一个的多个存储器单元。
因此,存储器控制器120可将被排队在N个虚拟管芯队列中的一个中的用户数据段或映射数据段编程在存储器装置110中包括的、与字线之中的第一字线连接的存储器单元中。
在这种情况下,映射数据段被编程在单层单元(SLC)中。这是因为,虽然映射数据段的大小较小,但是编程映射数据段的失败可能对存储器系统100的整体性能有较大影响,并且SLC在这方面比更高层单元更可靠。
另一方面,用户数据段不仅可被编程在单层单元(SLC)中,还可被编程在多层单元(MLC)、三层单元(TLC)、四层单元(QLC)等中。此外,可根据各种编程方法中的任意一种来执行这种编程。
例如,在本公开的实施例中,存储器控制器120可通过使用两种不同编程方法来将全部或部分上述第一用户数据段编程在与第一字线连接的存储器单元中。
也就是说,存储器控制器120可根据第一编程方案将全部或部分第一用户数据段编程在存储器装置110中的、与字线之中的第一字线连接的存储器单元中,并且在根据第一编程方案将全部或部分第一用户数据段编程在与第一字线连接的存储器单元中之后,然后根据第二编程方案进行。例如,第一编程方案和第二编程方案可以分别是模糊编程方案和精细编程方案。通过模糊编程方案和精细编程方案两者,存储器单元可具有预期阈值电压电平或具有足够读取裕量的预期编程状态,这两种方案共同代表模糊-精细编程方案。
在下文中,具体描述了图5中描述的存储器系统100的操作的实施例。
首先,详细描述了由存储器系统100的存储器控制器120将用户数据段和映射数据段排队在N个虚拟管芯队列中以将用户数据段和映射数据段编程在存储器装置110中的方法。
图6示出根据本公开的实施例在存储器系统100中以条带化方案将用户数据段和映射数据段排队在虚拟管芯队列中。
存储器系统100的存储器控制器120可以条带化方案将用户数据段和映射数据段排队在N个虚拟管芯队列中。
条带化方案将数据划分成多个段,分别将这些段顺序地分配到多个元件(例如,存储器管芯),然后对其进行处理。
可使用由存储器控制器120将用户数据段和映射数据段分配到N个虚拟管芯队列的各种方法中的任意一种。例如,存储器控制器120可根据将用户数据段和映射数据段的索引(idxs)除以虚拟管芯队列的数量N之后的余数来确定分配方法。如果余数为i,则用户数据段和映射数据段被分配到对应于i的虚拟管芯队列。
在图6中,假设用户数据USR_DATA被划分成用户数据段USR_DATA_SEG_1、USR_DATA_SEG_2、USR_DATA_SEG_3、USR_DATA_SEG_4和USR_DATA_SEG_5、USR_DATA_SEG_6,并且用户数据段USR_DATA_SEG_1、USR_DATA_SEG_2、USR_DATA_SEG_3、USR_DATA_SEG_4、USR_DATA_SEG_5和USR_DATA_SEG_6的索引(idxs)分别为1、2、3、4、5和6。
此外,假设与用户数据USR_DATA对应的映射数据MAP_DATA被划分为映射数据段MAP_DATA_SEG_1、MAP_DATA_SEG_2、MAP_DATA_SEG_3和MAP_DATA_SEG_4,并且映射数据段MAP_DATA_SEG_1、MAP_DATA_SEG_2、MAP_DATA_SEG_3和MAP_DATA_SEG_4的索引(idxs)分别为1、2、3和4。
还假设存在4个(N=4)虚拟管芯队列VIR_DIE_QUE_1、VIR_DIE_QUE_2、VIR_DIE_QUE_3和VIR_DIE_QUE_4。
存储器控制器120将在索引除以4时具有余数1的用户数据段USR_DATA_SEG_1和USR_DATA_SEG_5以及映射数据段MAP_DATA_SEG_1排队在虚拟管芯队列VIR_DIE_QUE_1中。
此外,存储器控制器120将索引在除以4时具有余数2的用户数据段USR_DATA_SEG_2和USR_DATA_SEG_6以及映射数据段MAP_DATA_SEG_2排队在虚拟管芯队列VIR_DIE_QUE_2中。
此外,存储器控制器120将索引在除以4时具有余数3的用户数据段USR_DATA_SEG_3和映射数据段MAP_DATA_SEG_3排队在虚拟管芯队列VIR_DIE_QUE_3中。
最后,存储器控制器120将索引在除以4时具有余数0的用户数据段USR_DATA_SEG_4和映射数据段MAP_DATA_SEG_4排队在虚拟管芯队列VIR_DIE_QUE_4中。
以这种方式,存储器控制器120可将用户数据段和映射数据段尽可能相等地分配到N个虚拟管芯队列。因此,可以防止用户数据段和映射数据段以集中的方式排队在特定虚拟管芯队列中,从而防止存储器系统100的整体编程性能劣化。此外,被排队在每个虚拟管芯队列中的用户数据段和映射数据段可并行处理,然后可被编程在存储器装置110中。因此,用户数据和映射数据可被快速编程在存储器装置110中。
在下文中,在图7和图8中,描述了存储器控制器120将被排队在N个虚拟管芯队列中的一个中的第一用户数据段编程在存储器装置110中的操作。
图7示出根据本公开的实施例的将第一用户数据段编程在存储器系统100中的与字线(WL)连接的存储器单元中。
首先,存储器系统100的存储器控制器120从虚拟管芯队列VIR_DIE_QUE_1中提取第一用户数据段USER_DATA_SEG_1。
存储器控制器120根据第一编程方案1ST_PGM将第一用户数据段USER_DATA_SEG_1编程在与字线(WL)连接的存储器单元中。
此后,存储器控制器120根据第二编程方案2ND_PGM将第一用户数据段USER_DATA_SEG_1编程在与字线(WL)连接的存储器单元中。
图8示出根据本公开的实施例的存储器系统100中的第一编程方法1ST_PGM和第二编程方法2ND_PGM之间的差异。
图8示出在四层存储器单元(QLC)中编程4位数据的情况。
参照图8,根据第一编程方案1ST_PGM编程的存储器单元的阈值电压(Vth)分布比根据第二编程方案2ND_PGM编程的存储器单元的阈值电压(Vth)分布更宽。
因此,因为根据第一编程方案1ST_PGM编程的存储器单元的阈值电压(Vth)分布很可能彼此重叠,所以在根据第一编程方案1ST_PGM编程的存储器单元中存储的数据中很可能发生读取失败。然而,与正常编程操作相比,根据第一编程方案1ST_PGM将数据编程在存储器单元中所需的时间相对较短。
当在根据第一编程方案的编程完成之后根据第二编程方案进行编程时,存储器单元的阈值电压(Vth)分布具有良好的读取裕度而变得间隔更大,因此不太可能彼此重叠。根据第二编程方案2ND_PGM编程的存储器单元中存储的数据不太可能发生读取失败。
在图7和图8中,描述了根据第一编程方案1ST_PGM将数据编程在与一个字线连接的存储器单元中,然后根据第二编程方案2ND_PGM对数据进行编程。
如上所述,使用两种不同的编程方案将数据编程在存储器单元中的原因是,将数据编程到多位存储存储器单元(例如,三层单元(TLC)、四层单元(QLC))花费很长时间。当对与一个字线连接的存储器单元的编程操作花费较长时间时,可能延迟对与另一字线连接的存储器单元的编程操作。
因此,如果将数据编程在与一个字线连接的存储器单元中分成两个步骤,即快速编程和精细编程,则可减少对多个字线的存储器单元进行编程的延迟。
在下文中,描述了存在多个字线并且数据被编程在与该多个字线连接的存储器单元中的实施例。图9和图10示出根据本公开的实施例的将数据编程在存储器系统100中的存储器单元中的示例。
当存在多个字线并且数据被编程在与该多个字线连接的存储器单元中时,可能不一定对与一个字线连接的存储器单元连续地执行基于第一编程方案1ST_PGM的编程操作和基于第二编程方案2ND_PGM的编程操作。这是因为根据第一编程方案1ST_PGM对与一个字线连接的存储器单元进行编程可能影响与相邻字线连接的存储器单元的阈值电压分布。
例如,假设针对存储器装置110中包括的、与字线之中的第一字线连接的存储器单元已完成基于第一编程方案和第二编程方案的编程操作。当对与邻近第一字线的另一字线连接的存储器单元执行基于第一编程方案的编程操作时,与第一字线连接的存储器单元的阈值电压分布可能会受到该编程操作的影响。因此,在读取被编程在与第一字线连接的存储器单元中的数据期间,更有可能发生读取失败。
因此,存储器控制器120可在根据第一编程方案将数据(例如,全部或一些用户数据段)编程在与第一字线连接的存储器单元中的第一时间和根据第二编程方案数据将编程在与第一字线连接的存储器单元中的第二时间之间,根据第一编程方案,将不同数据编程在存储器装置110中包括的、与字线之中的第二字线连接的存储器单元中。
当存储器控制器120如上所述编程数据时,即使与第一字线连接的存储器单元的阈值电压分布受到对与第二字线连接的存储器单元的编程操作(根据第一编程方案)的影响,也可随后通过根据第二编程方案来将数据编程在与第一字线连接的存储器单元中来消除或显著减小该影响。
具体地,在图9中,首先,存储器控制器120根据第一编程方案将数据编程在与字线WL_0连接的存储器单元中(第一阶段)。
此后,代替根据第二编程方案将数据编程在与字线WL_0连接的存储器单元中,存储器控制器120根据第一编程方案将数据编程在与字线WL_1连接的存储器单元中(第二阶段)。这是因为,如果存在多个字线,并且存储器控制器120首先将数据编程在与多个字线连接的存储器单元中,则此后由存储器控制器120根据第一编程方案将数据编程在与相邻字线WL_1连接的存储器单元中的操作对与字线WL_0连接的、已完成编程的存储器单元的阈值电压分布有影响。
此后,存储器控制器120根据第二编程方案将数据编程在与字线WL_0连接的存储器单元中(第三阶段)。另外,对与字线WL_0连接的存储器单元的编程操作完成。
在图10中,在第三阶段之后,代替根据第二编程方案将数据编程在与字线WL_1连接的存储器单元中,存储器控制器120根据第一编程方案将数据编程在与字线WL_2连接的存储器单元中(第四阶段)。
此后,存储器控制器120根据第二编程方案将数据编程在与字线WL_1连接的存储器单元中(第五阶段)。另外,对与字线WL_1连接的存储器单元的编程操作完成。
图11是示出基于图9和图10所示的操作将数据编程在存储器单元中的顺序的示例的表。
假设四个存储器单元(cell_1、cell_2、cell_3和cell_4)连接到字线(WL_0、WL_1、WL_2、WL_3、……)中的每一个,并且数据以cell_1、cell_2、cell_3和cell_4的顺序被顺序地编程在与一个字线连接的四个存储器单元中。
如下确定将数据编程在存储器单元中的顺序。
首先,数据根据第一编程方案1ST_PGM被编程在与字线WL_0连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序1、2、3、4)。
此后,数据根据第一编程方案1ST_PGM被编程在与字线WL_1连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序5、6、7、8)。
此后,数据根据第二编程方案2ND_PGM被编程在与字线WL_0连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序9、10、11、12)。
此后,数据根据第一编程方案1ST_PGM被编程在与字线WL_2连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序13、14、15、16)。
此后,数据根据第二编程方案2ND_PGM被编程与字线WL_1连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序17、18、19、20)。
此后,数据根据第一编程方案1ST_PGM被编程在与字线WL_3连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序21、22、23、24)。
此后,数据根据第二编程方案2ND_PGM被编程与字线WL_2连接的存储器单元cell_1、cell_2、cell_3和cell_4中(编程顺序25、26、27、28)。
上面,描述了存储器装置110中与不同字线连接的存储器单元之间的编程顺序。
下面,描述了在一个虚拟管芯队列中排队的用户数据段和映射数据段之间的编程顺序。
图12示出根据本公开的实施例的在第一虚拟管芯队列中排队的用户数据段和映射数据段在存储器系统100中的编程顺序的示例。
在图12中,用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2以及包括关于用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2的映射信息的映射数据段MAP_DATA_SEG_1被排队在第一虚拟管芯队列VIR_DIE_QUE_1中。
存储器系统100的存储器控制器120将被排队在第一虚拟管芯队列VIR_DIE_QUE_1中的用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2以及映射数据段MAP_DATA_SEG_1编程在存储器装置110中。
根据本公开的实施例,存储器控制器120在存储用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2之前,将映射数据段MAP_DATA_SEG_1存储在存储器装置110中,而不管用户数据段USER_DATA_SEG_1和USER_DATA_SEG_2以及映射数据段MAP_DATA_SEG_1已排队在第一虚拟管芯队列VIR_DIE_QUE_1中的顺序。
在常规的存储器系统中,为了防止在对映射数据编程之后在对用户数据编程之前发生突然断电(SPO)的情况,在对映射数据编程之前对用户数据编程。
然而,在本公开的实施例中,如上所述,根据第一编程方案,然后根据第二编程方案对用户数据编程。此外,如图9至图11所描述的,可在根据第一编程方案和根据第二编程方案的编程操作之间执行另一编程操作。
因此,当在已对用户数据完全编程之后对映射数据编程时,映射数据必须等待两种编程方案完成。因此,映射在等待时段期间处于忙碌状态。
在这种情况下,存储器控制器120不能更新映射高速缓存中的映射数据,因此不能快速处理在映射高速缓存中更新映射数据所需的操作(例如,修整(trim)操作)。
因此,在本公开的实施例中,为了防止这种问题,存储器控制器120可在对与映射数据段对应的用户数据段编程之前,将该映射数据段编程在存储器装置110中,而不管被排队在虚拟管芯队列中的映射数据段和用户数据段的顺序。因此,存储器控制器120可快速更新在映射高速缓存中的映射数据,并且可快速处理更新映射高速缓存中的映射数据所需的操作。
然而,当在用户数据段被编程在存储器装置110中之前将映射数据段编程在存储器装置110中时,应当在对与映射数据段对应的用户数据段的编程操作完成之后更新映射高速缓存中的映射数据段。如果在对用户数据段的编程操作完成之前就更新了映射高速缓存中的映射数据段,则当存储器控制器120基于映射高速缓存中更新的映射数据段中包括的映射信息读取存储器装置110中的用户数据时,可能由于对用户数据段的编程操作的不完全状态而发生读取失败。
图13示出根据本公开的实施例的在存储器系统100中的映射高速缓存MAP_CACHE中更新被编程在存储器装置110中的映射数据的时间。
参照图13,如图12所描述的,假设在用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2被编程在存储器装置110中之前,与用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2对应的映射数据段MAP_DATA_SEG_1被编程在存储器装置110中。
存储器系统100的存储器控制器120根据第一编程方案将用户数据段USER_DATA_SEG_1编程在存储器装置110中。
此后,存储器控制器120根据第一编程方案将用户数据段USER_DATA_SEG_2编程在存储器装置110中。
此后,存储器控制器120根据第二编程方案将用户数据段USER_DATA_SEG_1编程在存储器装置中,从而完成对用户数据段USER_DATA_SEG_1的编程操作。
此后,存储器控制器120根据第二编程方案将用户数据段USER_DATA_SEG_2编程在存储器装置中,从而完成对用户数据段USER_DATA_SEG_2的编程操作。
此后,存储器控制器120将被编程在存储器装置110中的映射数据段MAP_DATA_SEG_1更新在映射高速缓存MAP_CACHE中。然后,存储器控制器120可基于在映射高速缓存MAP_CACHE中更新的映射数据段MAP_DATA_SEG_1中的映射信息来正确地读取用户数据段USER_DATA_SEG_1或用户数据段USER_DATA_SEG_2。这是因为已完成对用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2的编程操作。
上面,描述了当一个映射数据段和一个用户数据段被排队在一个虚拟管芯队列中时的编程顺序。
下面,描述了当多个映射数据段和与多个映射数据段对应的多个用户数据段被排队在一个虚拟管芯队列中时的编程顺序。
图14示出根据本公开的实施例的被排队第一虚拟管芯队列中的用户数据段和映射数据段在存储器系统100中的编程顺序的另一示例。
参照图14,两个映射数据段MAP_DATA_SEG_1和MAP_DATA_SEG_2被排队在第一虚拟管芯队列VIR_DIE_QUE_1中。此外,将与映射数据段MAP_DATA_SEG_1对应的用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2排队,并且将与映射数据段MAP_DATA_SEG_2对应的用户数据段USR_DATA_SEG_3和USR_DATA_SEG_4排队。
如图13所描述的,存储器控制器120可改变编程顺序,使得在对用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2进行编程之前,对映射数据段MAP_DATA_SEG_1进行编程。此外,存储器控制器120可改变编程顺序,使得在对用户数据段USR_DATA_SEG_3和USR_DATA_SEG_4进行编程之前,对映射数据段MAP_DATA_SEG_2进行编程。
然而,即使如上所述改变了编程顺序,存储器控制器120也确定映射数据段的编程顺序,使得根据映射数据段排队在第一虚拟管芯队列VIR_DIE_QUE_1中的顺序对映射数据段进行编程。也就是说,在被排队在第一虚拟管芯队列VIR_DIE_QUE_1中的映射数据段之中,存储器控制器120在对映射数据段MAP_DATA_SEG_2进行编程之前,将较早排队的映射数据段MAP_DATA_SEG_1编程在存储器装置110中。
图15示出根据本公开的实施例的被排队在第一虚拟管芯队列中的用户数据段和映射数据段在存储器系统100中的编程顺序的另一示例。
参照图15,在映射数据段MAP_DATA_SEG_2排队之前,映射数据段MAP_DATA_SEG_1已排队在第一虚拟管芯队列VIR_DIE_QUE_1中。在与映射数据段MAP_DATA_SEG_1对应的用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2之中,用户数据段USER_DATA_SEG_2在映射数据段MAP_DATA_SEG_2排队之后被排队在第一虚拟管芯队列VIR_DIE_QUE_1中。
在对映射数据段MAP_DATA_SEG_1以及与该映射数据段MAP_DATA_SEG_1对应的用户数据段USR_DATA_SEG_1和USR_DATA_SEG_2进行编程之后,存储器控制器120将映射数据段MAP_DATA_SEG_2编程在存储器装置110中。因此,用户数据段USER_DATA_SEG_2和映射数据段MAP_DATA_SEG_2之间的编程顺序被改变。
图16是示出根据本公开的实施例的存储器控制器120的操作方法的流程图。
存储器控制器120的操作方法可包括将与从主机接收的命令对应的用户数据划分成一个或多个用户数据段(S1610)。
存储器控制器120的操作方法可包括将与用户数据对应的映射数据划分成一个或多个映射数据段(S1620)。
存储器控制器120的操作方法可包括将用户数据段之中的第一用户数据段和映射数据段之中与该第一用户数据段对应的第一映射数据段排队在N个虚拟管芯队列之中的第一虚拟管芯队列中(N是大于或等于2的自然数)(S1630)。
存储器控制器120的操作方法可包括将第一用户数据段和第一映射数据段编程在存储器装置110中的多个存储器管芯中的一个中的存储块中(S1640)。
此处,根据第一编程方案,将整个第一用户数据段,即全部或部分第一用户数据段编程在存储器装置110中的、与作为多个字线中的一个的第一字线连接的存储器单元中,然后在根据第一编程方案将全部或部分第一用户数据段编程在与第一字线连接的存储器单元中之后,根据第二编程方案编程。
如上所述的存储器控制器120的操作可由控制电路123控制,并且可以处理器124运行(驱动)固件的方式执行,在该固件中执行存储器控制器120的所有操作。
图17是示意性地示出根据本公开的实施例的计算系统1700的框图。
参照图17,计算系统1700可包括:存储器系统100,电连接到系统总线1760;中央处理单元(CPU)1710,被配置成控制计算系统1700的全部操作;随机存取存储器(RAM)1720,被配置成存储关于计算系统1700的操作的数据和信息;用户接口/用户体验(UI/UX)模块1730,被配置成将使用环境提供至用户;通信模块1740,被配置成以有线和/或无线方式与外部装置通信;以及电源管理模块1750,被配置成管理计算系统1700所使用的电力。
计算系统1700可以是个人计算机(PC),或者可在诸如智能电话、平板电脑等的各种电子装置或移动终端中实现。
计算系统1700可进一步包括用于供应操作电压的电池、应用芯片组、图形相关模块、相机图像处理器(CIS)、DRAM等。当然,计算系统1700可包括本领域技术人员理解的其它组件。
存储器系统100可包括用于在磁盘(例如,硬盘驱动器(HDD))中存储数据的装置。可选地,存储器系统100可包括用于在非易失性存储器中存储数据的装置(例如,固态驱动器(SSD)、通用闪存(UFS)装置和/或嵌入式MMC(eMMC)装置)。非易失性存储器可包括以下中的任意一种:只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器系统100可被实施为各种类型的存储装置中的任意一种,并且可设置在各种类型的电子装置中的任意一种中。
虽然已经示出和描述了本发明的实施例,但本领域技术人员将理解的是,在不脱离如所附权利要求中公开的本公开的范围和精神的情况下,可以进行各种修改、添加和替换。因此,所公开的实施例仅作为示例呈现。本发明的范围涵盖落入包括其等同方案的权利要求的范围内的所有布置和配置。
Claims (19)
1.一种存储器系统,包括:
存储器装置,包括多个存储器管芯和设置在所述多个存储器管芯中的多个存储块;以及
存储器控制器,所述存储器控制器:
将与从主机接收的命令对应的用户数据划分成用户数据段;
将与所述用户数据对应的映射数据划分成映射数据段;
将所述用户数据段之中的第一用户数据段和所述映射数据段之中的与所述第一用户数据段对应的第一映射数据段排队在N个虚拟管芯队列之中的被选择虚拟管芯队列中,其中N是2或更大的自然数;并且
将所述第一用户数据段和所述第一映射数据段编程在所述多个存储器管芯中的一个中的存储块中,
其中全部或部分所述第一用户数据段根据第一编程方案被编程在所述存储器装置中的、与多个字线之中的第一字线连接的存储器单元中,然后根据第二编程方案被编程在所述存储器装置中的、与所述多个字线之中的所述第一字线连接的所述存储器单元中。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器以条带化方案将所述用户数据段和所述映射数据段排队在所述N个虚拟管芯队列中。
3.根据权利要求1所述的存储器系统,其中根据所述第一编程方案编程的存储器单元的阈值电压分布比根据所述第二编程方案编程的存储器单元的阈值电压分布更宽。
4.根据权利要求3所述的存储器系统,其中所述存储器单元为四层单元。
5.根据权利要求1所述的存储器系统,其中所述存储器控制器在根据所述第一编程方案将全部或部分所述第一用户数据段编程在与所述第一字线连接的所述存储器单元中的第一时间和根据所述第二编程方案将全部或部分所述第一用户数据段编程在与所述第一字线连接的所述存储器单元中的第二时间之间,根据所述第一编程方案将不同于所述第一用户数据段的数据编程在所述存储器装置中的、与所述字线之中的第二字线连接的存储器单元中。
6.根据权利要求1所述的存储器系统,其中所述存储器控制器在对所述第一用户数据段进行编程之前将所述第一映射数据段编程在所述存储器装置中,而不管所述第一映射数据段和所述第一用户数据段被排队在所述被选择虚拟管芯队列中的顺序。
7.根据权利要求6所述的存储器系统,其中所述存储器控制器在根据所述第二编程方案将所述第一用户数据段编程在所述存储器装置中之后,更新映射高速缓存中的所述第一映射数据段。
8.根据权利要求1所述的存储器系统,其中当在所述第一映射数据段被排队在所述被选择虚拟管芯队列中之前,将第二映射数据段排队在所述被选择虚拟管芯队列中时,所述存储器控制器在对所述第二映射数据段进行编程之后将所述第一映射数据段编程在所述存储器装置中。
9.根据权利要求8所述的存储器系统,其中所述存储器控制器在对与所述第二映射数据段对应的第二用户数据段进行编程之后,将所述第一映射数据段编程在所述存储器装置中。
10.一种存储器控制器,包括:
存储器接口,与存储器装置通信,所述存储器装置包括多个存储器管芯,所述多个存储器管芯包括多个存储块;以及
控制电路,所述控制电路:
将与从主机接收的命令对应的用户数据划分成用户数据段;
将与所述用户数据对应的映射数据划分成映射数据段;
将所述用户数据段之中的第一用户数据段和所述映射数据段之中的与所述第一用户数据段对应的第一映射数据段排队在N个虚拟管芯队列之中的被选择虚拟管芯队列中,其中N是2或更大的自然数;并且
将所述第一用户数据段和所述第一映射数据段编程在所述多个存储器管芯中的一个中的存储块中,
其中全部或部分所述第一用户数据段根据第一编程方案被编程在所述存储器装置中包括的、与多个字线之中的第一字线连接的存储器单元中,然后根据第二编程方案被编程在所述存储器装置中包括的、与所述多个字线之中的所述第一字线连接的所述存储器单元中。
11.根据权利要求10所述的存储器控制器,其中所述控制电路以条带化方案将所述用户数据段和所述映射数据段排队在所述N个虚拟管芯队列中。
12.根据权利要求10所述的存储器控制器,其中根据所述第一编程方案编程的存储器单元的阈值电压分布比根据所述第二编程方案编程的存储器单元的阈值电压分布更宽。
13.根据权利要求12所述的存储器控制器,其中所述存储器单元为四层单元。
14.根据权利要求10所述的存储器控制器,其中所述控制电路在根据所述第一编程方案将全部或部分所述第一用户数据段编程在与所述第一字线连接的所述存储器单元中的第一时间和根据所述第二编程方案将全部或部分所述第一用户数据段编程在与所述第一字线连接的所述存储器单元中的第二时间之间,根据所述第一编程方案将不同于所述第一用户数据段的数据编程在所述存储器装置中的、与所述字线之中的第二字线连接的存储器单元中。
15.根据权利要求10所述的存储器控制器,其中所述控制电路在对所述第一用户数据段进行编程之前将所述第一映射数据段编程在所述存储器装置中,而不管所述第一映射数据段和所述第一用户数据段被排队在所述被选择虚拟管芯队列中的顺序。
16.根据权利要求15所述的存储器控制器,其中所述控制电路在根据所述第二编程方案将所述第一用户数据段编程在所述存储器装置中之后,更新映射高速缓存中的所述第一映射数据段。
17.根据权利要求10所述的存储器控制器,其中当在所述第一映射数据段被排队在所述被选择虚拟管芯队列中之前,将所述第二映射数据段排队在所述被选择虚拟管芯队列中时,所述控制电路在对所述第二映射数据段进行编程之后将所述第一映射数据段编程在所述存储器装置中。
18.根据权利要求17所述的存储器控制器,其中所述控制电路在对与所述第二映射数据段对应的第二用户数据段进行编程之后,将所述第一映射数据段编程在所述存储器装置中。
19.一种存储器控制器的操作方法,所述存储器控制器控制包括多个存储器管芯的存储器装置,所述多个存储器管芯包括多个存储块,所述方法包括:
将与从主机接收的命令对应的用户数据划分成用户数据段;
将与所述用户数据对应的映射数据划分成映射数据段;
将所述用户数据段之中的第一用户数据段和所述映射数据段之中的与所述第一用户数据段对应的第一映射数据段排队在N个虚拟管芯队列之中的被选择虚拟管芯队列中,其中N是2或更大的自然数;并且
将所述第一用户数据段和所述第一映射数据段编程在所述多个存储器管芯中的一个中的存储块中,
其中全部或部分所述第一用户数据段根据第一编程方案被编程在所述存储器装置中包括的、与字线之中的第一字线连接的存储器单元中,然后根据第二编程方案被编程在所述存储器装置中包括的、与所述字线之中的所述第一字线连接的所述存储器单元中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190105431A KR20210025412A (ko) | 2019-08-27 | 2019-08-27 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
KR10-2019-0105431 | 2019-08-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112445726A true CN112445726A (zh) | 2021-03-05 |
Family
ID=74681175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010266282.5A Pending CN112445726A (zh) | 2019-08-27 | 2020-04-07 | 存储器系统、存储器控制器及操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11182108B2 (zh) |
KR (1) | KR20210025412A (zh) |
CN (1) | CN112445726A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11893243B2 (en) * | 2021-10-06 | 2024-02-06 | Western Digital Technologies, Inc. | Storage system and method for program reordering to mitigate program disturbs |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120063231A1 (en) * | 2010-09-15 | 2012-03-15 | Fusion-Io, Inc. | Apparatus, System, and Method for Non-Volatile Storage Element Programming |
US20130191601A1 (en) * | 2012-01-24 | 2013-07-25 | Fusion-Io, Inc. | Apparatus, system, and method for managing a cache |
US20140137128A1 (en) * | 2012-11-12 | 2014-05-15 | Skymedi Corporation | Method of Scheduling Tasks for Memories and Memory System Thereof |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107622019A (zh) * | 2016-07-14 | 2018-01-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US9977627B1 (en) * | 2016-11-09 | 2018-05-22 | Macronix International Co., Ltd. | Memory device and memory controlling method |
US20190179698A1 (en) * | 2017-12-08 | 2019-06-13 | Macronix International Co., Ltd. | Managing Data Arrangement in a Super Block |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101654774B1 (ko) | 2010-02-08 | 2016-09-06 | 시게이트 테크놀로지 엘엘씨 | 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체 |
KR20180029124A (ko) | 2016-09-09 | 2018-03-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10068656B2 (en) * | 2016-12-27 | 2018-09-04 | Sandisk Technologies Llc | Non-volatile memory with multi-pass programming |
-
2019
- 2019-08-27 KR KR1020190105431A patent/KR20210025412A/ko active Search and Examination
-
2020
- 2020-03-13 US US16/817,695 patent/US11182108B2/en active Active
- 2020-04-07 CN CN202010266282.5A patent/CN112445726A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120063231A1 (en) * | 2010-09-15 | 2012-03-15 | Fusion-Io, Inc. | Apparatus, System, and Method for Non-Volatile Storage Element Programming |
US20130191601A1 (en) * | 2012-01-24 | 2013-07-25 | Fusion-Io, Inc. | Apparatus, system, and method for managing a cache |
US20140137128A1 (en) * | 2012-11-12 | 2014-05-15 | Skymedi Corporation | Method of Scheduling Tasks for Memories and Memory System Thereof |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107622019A (zh) * | 2016-07-14 | 2018-01-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US9977627B1 (en) * | 2016-11-09 | 2018-05-22 | Macronix International Co., Ltd. | Memory device and memory controlling method |
US20190179698A1 (en) * | 2017-12-08 | 2019-06-13 | Macronix International Co., Ltd. | Managing Data Arrangement in a Super Block |
Also Published As
Publication number | Publication date |
---|---|
KR20210025412A (ko) | 2021-03-09 |
US11182108B2 (en) | 2021-11-23 |
US20210064292A1 (en) | 2021-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11262939B2 (en) | Memory system, memory controller, and operation method | |
CN114067870A (zh) | 存储器系统、存储器装置以及用于操作存储器装置的方法 | |
CN114489466A (zh) | 存储器系统及其操作方法 | |
CN114863962A (zh) | 存储器系统及其操作方法 | |
CN113204312A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
CN113010459A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US11409470B2 (en) | Memory system, memory controller, and method of operating memory system | |
US20210365382A1 (en) | Memory system, memory controller, and operation method thereof | |
CN112349315B (zh) | 存储器系统、存储器控制器和操作方法 | |
CN113010093B (zh) | 存储器系统以及存储器控制器 | |
CN112860176A (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN112699064A (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN112306387A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US11182108B2 (en) | Memory system, memory controller, and operation method | |
CN115952115A (zh) | 基于融合链表控制同步操作的存储器控制器及其操作方法 | |
US11474726B2 (en) | Memory system, memory controller, and operation method thereof | |
CN112925476B (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN114090473A (zh) | 存储器系统、存储器控制器及操作存储器系统的方法 | |
CN113806254A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
CN112748870A (zh) | 存储器系统、存储器控制器及操作存储器控制器的方法 | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
US20230385193A1 (en) | Memory system, memory controller and operating method thereof for determining garbage collection victim block | |
US20220058122A1 (en) | Memory system, memory controller, and method of operating memory 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 |