CN114365097A - 受管理存储器系统中的写入缓冲器控制 - Google Patents

受管理存储器系统中的写入缓冲器控制 Download PDF

Info

Publication number
CN114365097A
CN114365097A CN201980100281.9A CN201980100281A CN114365097A CN 114365097 A CN114365097 A CN 114365097A CN 201980100281 A CN201980100281 A CN 201980100281A CN 114365097 A CN114365097 A CN 114365097A
Authority
CN
China
Prior art keywords
write buffer
data
memory
host
host data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980100281.9A
Other languages
English (en)
Inventor
谭华
杨惠
M·L·萨利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114365097A publication Critical patent/CN114365097A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)

Abstract

在接收到同步高速缓存命令后,检查SRAM写入缓冲器中的有效主机数据大小。如果有效数据大小大于预定值,那么基于单步传送程序将所述SRAM写入缓冲器中的有效主机数据直接刷新到开放MLC块中。然而,如果所述有效主机数据大小小于所述预定值,那么不将所述主机数据刷新到开放MLC块,而是刷新到临时存储位置中以满足同步高速缓存的命令的命令规范。所述主机数据维持在所述SRAM写入缓冲器中,所述SRAM写入缓冲器接收额外数据直到已满。一旦已满,就以单步将所述SRAM写入缓冲器中的所述主机数据传送到开放MLC块。如果所述写入缓冲器中的所述主机数据丢失,那么可从所述临时存储位置恢复所述主机数据。

Description

受管理存储器系统中的写入缓冲器控制
技术领域
本文中所描述的实施例大体上涉及用于在受管理存储器系统中实施以限制写入放大的方式将数据从写入缓冲器刷新到存储阵列的命令的系统和方法,所述写入放大原本可能由此类传送引起。
背景技术
通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器需要电力来维持其数据,且包含各种形式的随机存取存储器(RAM),例如动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)等等。非易失性存储器在未通电时可保留存储的数据(在一些情况下可被实施为只读存储器(ROM)),并且可包含一或多种存储技术,例如快闪存储器(例如,NAND或NOR快闪)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、铁电RAM(FeRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)、磁阻随机存取存储器(MRAM),或3D XPointTM存储器等等。
存储器阵列或装置可组合在一起以形成存储器系统的存储卷,例如固态驱动器(SSD)、通用快闪存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。SSD尤其可用作计算机的主存储装置,其关于例如性能、大小、重量、坚固性、操作温度范围和电力消耗具有优于具有移动部件的传统硬盘驱动器的优点。举例来说,SSD可具有减少的寻道时间、等待时间或与磁盘驱动器相关联的其它延迟(例如,机电等)。SSD使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源要求,因此允许驱动器更具通用性且紧凑。
SSD可包含数个存储器装置,包含数个裸片或逻辑单元(例如,逻辑单元数字或LUN),且可包含执行操作存储器装置或与外部系统介接的逻辑功能的一或多个处理器或其它控制器。此类SSD可包含一或多个快闪存储器裸片,其上包含数个存储器阵列(存储器装置)和外围电路系统。快闪存储器阵列可包含组织成数个物理页的数个存储器单元块。在一些实例中,SSD还可包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。SSD可与存储器操作相关联地从主机接收命令,所述存储器操作例如在存储器装置与主机之间传送数据(例如,用户数据和相关联完整性数据,例如错误数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。
例如SSD的快闪存储装置只能被写入有限次数。如果未前瞻性地采取措施来管理SSD的使用寿命,那么在SSD的使用寿命结束时,数据可能损毁,或可能使装置不可用。在由NAND快闪存储器单元组成的SSD中,每当(例如,经由编程操作)写入数据时,电子都会被捕获到存储器单元,且当(例如,经由擦除操作)移除数据时,电子会被移走。电子在编程/擦除(P/E)循环期间进出隧穿氧化物时可能会损耗隧穿氧化物,且因此缩短SSD的寿命。
附图说明
在不一定按比例绘制的图式中,相似标号在不同视图中可描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同例项。图式大体上借助于实例而非限制性地说明本文件中所论述的各种实施例。
图1说明包含存储器装置的环境的实例的概念图。
图2到3是说明NAND架构半导体存储器阵列的实例的示意图。
图4为说明存储器模块的实例的框图。
图5说明图1的环境的实例,所述环境包含主机装置、存储器装置,所述存储器装置包含NAND快闪存储器、包含中央处理单元(CPU)的存储器控制器和写入缓冲器。
图6说明展示在样本实施例中在接收到同步高速缓存命令后如何从SRAM写入缓冲器刷新主机数据的框图。
图7说明在样本实施例中具有四个裸片的受管理NAND装置中的单步传送程序单元。
图8说明在样本实施例中当NAND存储器支持每页数个程序时,一次将主机数据刷新到临时单层级单元(SLC)块4kB中。
图9说明在样本实施例中包含对同步高速缓存命令的处理的存储器管理过程的实施方案的流程图。
图10是说明其上可实施一或多个实施例的机器的实例的框图。
具体实施方式
同步高速缓存命令为日常移动使用模型中的主要通用快闪存储(UFS)命令。高速缓存同步还在其它存储器系统中实施。根据UFS数据表(JESD220C),装置在从其主机接收到同步高速缓存命令时将其SRAM缓冲器(高速缓存)数据刷新到存储媒体(例如,NAND快闪)中。同步高速缓存命令的实施方式会显著影响UFS装置的可靠性(呈总写入字节(TBW)的形式)以及等待时间,因为实施同步高速缓存命令的不同方法传送不同量的虚设数据,这些数据会影响TBW并且由于单步三层级单元(TLC)编程的时间不同而需要不同的等待时间。本文中描述用于通过添加临时单层级单元(SLC)块以使高速缓存同步从而最大化存储器传送效率来实施高速缓存同步的技术。在一些实例中,系统和方法在可能由写入缓冲器刷新产生的更高效地管理存储器传送的条件下将数据临时写入到SLC块。下文将在NAND存储器系统的上下文中描述此类技术,首先将详细描述NAND存储器系统。应了解,本文中所描述的技术可用于利用高速缓存同步的不同类型的存储器系统,所述高速缓存同步例如“同步高速缓存”命令或其等效物的以上实例。
存储器装置包含个别存储器裸片,所述存储器裸片可例如包含存储区,所述存储区包括一或多个存储器单元阵列且实施一种(或多种)选定存储技术。此类存储器裸片通常将包含用于操作存储器阵列的支持电路系统。有时通常称为“受管理存储器装置”的其它实例包含与经配置以控制一或多个存储器裸片的操作的控制器功能性相关联的一或多个存储器裸片的组合件。此类控制器功能性可简化与外部装置的互操作性,所述外部装置例如为如本文稍后所论述的“主机”。在此类受管理存储器装置中,控制器功能性可在还并入有存储器阵列的一或多个裸片上或在单独的裸片上实施。在其它存储器系统中,一或多个存储器装置可与控制器功能性组合以形成固态驱动器(SSD)存储卷。
在实施NAND快闪存储器单元的受管理存储器装置(称为“受管理NAND”装置)的实例中描述本公开的实例实施例。然而,这些实例并不限制本公开的范围,所述实例可用实施其它存储器存储技术的存储器装置来实施,例如本文中先前所论述的非限制性实例。
NOR和NAND快闪架构半导体存储器阵列均经由解码器来存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活所述特定存储器单元。在NOR架构半导体存储器阵列中,一旦激活,选定存储器单元就使其数据值置于位线上,从而取决于特定单元被编程的状态而使不同电流流动。在NAND架构半导体存储器阵列中,将高偏置电压施加到漏极侧选择栅极(SGD)线。以指定传递电压(例如,Vpass)驱动耦合到每一群组的未选定存储器单元的栅极的字线以使每一群组的未选定存储器单元作为传递晶体管操作(例如,以不受其所存储数据值限制的方式传递电流)。电流随后经由每一串联耦合的群组从源极线流动到位线,仅受每一群组中的选定存储器单元限制,从而将选定存储器单元的当前编码数据值置于位线上。
NOR或NAND架构半导体存储器阵列中的每一快闪存储器单元可个别地或共同地编程到一个或数个编程状态。举例来说,SLC可表示两个编程状态(例如,1或0)中的一个,表示一个数据位。快闪存储器单元还可表示多于两个编程状态,从而允许在不增加存储器单元数目的情况下制造较高密度的存储器,因为每一单元可表示多于一个二进制数字(例如,多于一个位)。此类单元可称为多状态存储器单元、多数字单元或多层级单元(MLC)。在某些实例中,MLC可指代每单元可存储两个数据位(例如,四个编程状态中的一个)的存储器单元,TLC可指代每单元可存储三个数据位(例如,八个编程状态中的一个)的存储器单元,且四层级单元(QLC)可每单元存储四个数据位。MLC在本文中以其较广泛情形使用,以指代每单元可存储多于一个数据位(即,可表示多于两个编程状态)的任何存储器单元。
可根据公认的行业标准来配置和操作受管理存储器装置。举例来说,受管理NAND装置可为(作为非限制性实例)UFSTM装置或嵌入式MMC装置(eMMCTM)等。举例来说,在以上实例的情况下,可根据标题为“JEDEC UFS快闪存储3.0(JEDEC UFS Flash Storage 3.0)”的联合电子装置工程委员会(JEDEC)标准(例如,JEDEC标准JESD223D)和/或此类标准的更新或后续版本来配置UFS装置。类似地,可以根据标题为“JEDEC eMMC标准5.1(JEDEC eMMCstandard 5.1)”的JEDEC标准JESD84-A51和/或此类标准的更新或后续版本来配置所识别的eMMC装置。所识别的标准仅作为实例环境提供,在所述实例环境中,可利用所描述的方法和结构;但此类方法和结构可用于所识别标准之外(或任何其它实际或所提议标准之外)的多种环境中,除非本文中明确地指示。
SSD尤其可用作计算机的主存储装置,其关于例如性能、大小、重量、坚固性、操作温度范围和电力消耗具有优于具有移动部件的传统硬盘驱动器的优点。举例来说,SSD可具有减少的寻道时间、等待时间或与磁盘驱动器相关联的其它延迟(例如,机电等)。SSD使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源要求,因此允许驱动器更具通用性且紧凑。存储器装置包含个别存储器裸片,所述存储器裸片可例如包含存储区,所述存储区包括一或多个存储器单元阵列,实施一种(或多种)选定存储技术。此类存储器裸片通常将包含用于操作存储器阵列的支持电路系统。受管理NAND装置可用作各种形式的电子装置中的主存储器或辅助存储器,且常用于移动装置中。
SSD和受管理存储器装置两者可包含数个存储器装置,包含数个裸片或逻辑单元(例如,逻辑单元数字或LUN),且可包含执行操作存储器装置或与外部系统介接的逻辑功能的一或多个处理器或其它控制器。此类SSD和受管理存储器装置可包含一或多个快闪存储器裸片,其上包含数个存储器阵列和外围电路系统。快闪存储器阵列可包含组织成数个物理页的数个存储器单元块。在一些实例中,SSD还可包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。类似地,受管理NAND装置可包含与NAND存储阵列分开且在控制器之内或与控制器分开的易失性和/或非易失性存储器的一或多个阵列。SSD和受管理NAND装置两者可与存储器操作相关联地从主机接收命令,所述存储器操作例如在存储器装置与主机之间传送数据(例如,用户数据和相关联完整性数据,例如错误数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。
将主要参考根据UFS标准构建和操作的受管理NAND装置描述当前实施例。虽然此类受管理NAND装置和UFS标准仅表示相关的实例配置,但当前方法和结构可用实施其它存储技术和/或实施其它标准或操作协议的存储器装置实施。
P/E循环可用于量化例如SSD等快闪装置的耐久性。耐久性可表示为每天驱动器写入(DWPD),其衡量在驱动器寿命中的每一天主机可覆写驱动器的整个大小的次数。举例来说,对于具有200GB大小和5年保证期的SSD,如果DWPD为1,那么在接下来的五年内,可每天将200GB写入到装置中。这对应于在预期装置发生故障之前200GB×365天×5年=365TB的累计写入。如果DWPD为10,那么可每一天将10×200GB=2TB写入到装置中。耐久性可替代地表示为总写入字节(TBW),其衡量驱动器在其寿命内可写入到驱动器中的总数据。举例来说,对于额定值为365TBW的SSD,在驱动器被安排更换之前可写入最多365TB的数据。保证的TBW可由供应商在其规范中提供。可使用TBW和目标寿命(例如,保证例如3到5年的目标寿命)来计算目标每天写入。举例来说,对于具有120TB的TBW和3年保证器的SSD,目标每日写入可计算为120TB/3年/365天/1024=110GB/天。
快闪存储器的正常操作可涉及存储器单元的大量写入(编程)和擦除。垃圾收集(GC)是管理快闪存储器中的存储器利用率的操作。当快闪存储器中的空闲物理空间变小时,GC可恢复存储装置上的空闲空间以允许写入新的主机数据。在GC期间,读取含有具有有效数据的页和具有过期数据(垃圾)的页的快闪块。具有有效数据的页通过写入到另一新的块而得以保留。随后用新位置更新逻辑块地址。被标记为删除的具有过期数据的页保持在旧块中的位置上。接着,擦除整个旧块(其含有具有过期数据的页)。被擦除的块可添加到空闲块池且用于新传入写入。写入到页的此数据以及块擦除可引起写入放大(WA)。可使用物理地写入到快闪存储器的数据量(物理写入)与主机最初预期写入的数据量(主机写入)的比率来确定数值WA度量。实际物理写入通常大于主机写入,从而使得WA度量大于一。
本文件描述用于管理存储器装置的存储器装置、系统、方法和机器可读媒体的实例,所述存储器装置包括至少具有SLC数据块和多层级单元(MLC)数据块的存储器阵列、写入缓冲器和经配置以从主机装置接收指令的存储器控制器。在样本实施例中,存储器控制器执行指令以执行包含以下各项的操作:使得写入缓冲器能够从主机装置接收主机数据;在接收到同步高速缓存命令后,确定写入缓冲器是否充满高于预定阈值(例如,写入缓冲器的可用存储器空间的805)的主机数据;当写入缓冲器充满高于预定阈值的主机数据时,将写入缓冲器中的主机数据刷新到开放MLC数据块;以及当写入缓冲器未充满高于预定阈值的主机数据时,将写入缓冲器中的主机数据刷新到SLC数据块中的存储器块,在接收到写入缓冲器中的额外数据之前,所述主机数据将被临时保留在所述SLC数据块中(在“临时SLC数据块”中)。
在其它样本实施例中,处理器进一步执行指令以执行包含以下各项的操作:在将写入缓冲器中的主机数据刷新到临时SLC数据块之后,维持写入缓冲器中的主机数据且使得写入缓冲器能够从主机装置接收额外主机数据;以及在确定写入缓冲器已由额外主机数据填充后,将写入缓冲器中的主机数据传送到另一开放MLC数据块。处理器进一步执行指令以执行包含以下项的操作:当写入缓冲器中的主机数据已丢失时,将存储在临时SLC数据块中的主机数据传送回到写入缓冲器以重组写入缓冲器。
在又其它样本实施例中,将写入缓冲器中的主机数据刷新到开放MLC块包括以单步传送将写入缓冲器中的数据存储的所有页刷新到开放MLC数据块。另外,将写入缓冲器中的主机数据刷新到临时SLC数据块包括一次将数据存储的一或多个页从写入缓冲器刷新到临时SLC数据块。将写入缓冲器中的主机数据刷新到临时SLC数据块还可包括根据可通过单步传送程序从写入缓冲器一次传送到临时SLC数据块的数据的页数(例如,2、4、6页)一次4kB地刷新数据存储的一或多个页。
以下详细描述进一步包含对包含指令的对应方法和计算机可读存储装置的描述,所述指令在由存储器装置执行时管理存储器编程,且尤其管理同步高速缓存命令在NAND存储器装置中的实施。在以下详细描述中,参考附图,所述附图形成本发明的一部分,且在所述附图中借助于说明展示特定实施例。在图式中,遍及数个视图,相似标号描述基本上类似的组件。在不脱离本公开的范围的情况下,可利用其它实施例且可进行结构、逻辑和电性改变。因此,以下详细描述不应被视为具有限制性意义。
还应注意,尽管本文件中参考NAND媒体论述实施例,但是所述实施例不限于NAND媒体且可应用于NOR媒体。此外,尽管参考SSD论述一些实施例,但所述实施例不限于SSD,而是可用于其它类型的非易失性存储装置,例如纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、快闪存储器、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维(3D)交叉点存储器、PCM(相变存储器)等。
图1说明包含经配置以经由NAND通信接口通信的主机装置105和存储器装置110的环境100的实例。主机装置105或存储器装置110可包含在多种产品150中,所述产品例如物联网(IoT)装置(例如,冰箱或其它电器、传感器、电动机或致动器、移动通信装置、汽车、无人机等),以支持产品150的处理、通信或控制。
存储器装置110包含存储器控制器115和包含例如数个个别存储器裸片(例如,3DNAND裸片的堆叠)的存储器阵列120。在3D架构半导体存储器技术中,堆叠竖直结构,从而增加层次、物理页的数目且因此增加存储器装置(例如,存储装置)的密度。在实例中,存储器装置110可为主机装置105的离散存储器或存储装置组件。在其它实例中,存储器装置110可为与主机装置105的一或多个其它组件堆叠或以其它方式包含在一起的集成电路(例如,片上系统(SOC)等)的部分。在这些实例中,存储器装置110经由例如总线的互连件111与主机装置105组件通信。因此,如本文中所描述,主机或主机装置105操作与存储器装置110的操作不同,即使在存储器装置110集成到主机装置105中时也是如此。
可使用一或多个通信接口(例如,互连件111)在存储器装置110与主机装置105的一或多个其它组件之间传送数据,所述通信接口例如串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、UFS接口、eMMCTM接口,或一或多个其它连接器或接口。主机装置105可包含主机系统、电子装置、处理器、存储卡读卡器,或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机装置105可为具有参考图10的机器1000论述的组件的某一部分或全部的机器。
存储器控制器115可从主机装置105接收指令,且可与存储器阵列120通信,以便将数据传送到存储器阵列120的存储器单元、平面、子块、块或页中的一或多个(例如,写入或擦除)或从存储器阵列120的存储器单元、平面、子块、块或页中的一或多个传送数据(例如,读取)。存储器控制器115经配置(例如,硬件和/或软件实施方案)以执行本文中所描述的方法,包含下文参考图5到9所描述的示范性方法。举例来说,存储器控制器115存储用于执行本文中描述的方法的指令。在本实例中,所述指令包含在控制器的固件中,但在一些实例中,可存储在实例受管理存储器装置内的其它地方;或还可实施于包含一或多个组件或集成电路的电路系统中。举例来说,存储器控制器115可包含一或多个存储器控制单元、电路或组件,其经配置以控制跨存储器阵列120的存取且提供主机装置105与存储器装置110之间的转换层。尽管存储器控制器115在此处说明为存储器装置110封装的部分,但可采用其它配置,例如存储器控制器115作为主机装置105的组件(例如,作为主机装置105的片上系统上与存储器装置110分开的离散封装),或甚至经由主机装置105的中央处理单元(CPU)实施。
存储器管理器125可尤其包含电路系统或固件,例如与各种存储器管理功能相关联的数个组件或集成电路。出于本描述的目的,将在NAND存储器的上下文中描述实例存储器操作和管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类NAND管理功能包含耗损均衡、垃圾收集、回收、错误检测或校正、块引退或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列120的操作相关联的命令等),或生成用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含一组管理表130,其经配置以维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储器单元相关联的各种信息)。举例来说,管理表130可包含关于耦合到存储器控制器115的一或多个存储器单元块的块年龄、块擦除计数、错误历史或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个检测到的错误的数目高于阈值,则位错误可称为不可校正位错误。管理表130可尤其维持可校正或不可校正位错误的计数。在实例中,管理表130可包含转换表或逻辑到物理(L2P)映射。
阵列控制器135可尤其包含经配置以控制与以下操作相关联的存储器操作的电路系统或组件:将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元、从所述一或多个存储器单元读取数据或擦除所述一或多个存储器单元。存储器操作可基于例如从主机装置105接收到或由存储器管理器125内部生成的主机命令(例如,与耗损均衡、错误检测或校正等相关联)。
如上文所描述,且如下文进一步阐述,阵列控制器135可包含写入缓冲器控制(WBC)功能性140,其可经实施以例如高效地管理可能由于同步高速缓存型命令所引起的写入缓冲器刷新而引起的存储器传送。阵列控制器135还可包含错误校正码(ECC)功能性,其经由ECC引擎或其它电路系统来实施,所述ECC引擎或其它电路系统经配置以检测和/或校正与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元或从所述一或多个存储器单元读取数据相关联的错误。存储器控制器115可经配置以基于由阵列控制器135维持的ECC数据主动地检测与各种操作或数据存储相关联的错误发生(例如,位错误、操作错误等)且从中恢复。这使得存储器控制器115能够维持在主机装置105与存储器装置110之间传送的数据的完整性或维持存储的数据的完整性。这种完整性维持的部分可包含移除(例如,停用)失效存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止未来错误。
存储器阵列120可包含布置于例如装置、平面、子块、块或页中的数个存储器单元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548个块,及每装置4个或更多个平面。作为另一实例,32GB MLC存储器装置(每单元存储两个数据位(即,4个可编程状态))可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1024页、每平面548个块和每装置4个平面,但与对应TLC存储器装置相比,写入时间为一半且编程/擦除(P/E)循环为两倍。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其部分可在SLC模式中或在所要MLC模式(例如TLC、QLC等)中选择性地操作。
在操作中,数据通常以页写入到NAND存储器装置110或从NAND存储器装置110读取,且以块擦除。然而,可按需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。NAND存储器装置110的数据传送大小通常被称为页,而主机的数据传送大小通常被称为扇区。
在一些实例中,存储器阵列可包括数个NAND裸片,且特定NAND裸片的存储器控制器115的一或多个功能可实施于所述特定裸片上的裸片上控制器上。还可利用控制功能性的其它组织和轮廓,例如针对每一裸片、平面、超级块、块、页等的控制器。
尽管数据页可包含数个字节的用户数据(例如,包含数个数据扇区的数据有效负载)及其对应元数据,但页大小通常仅指代用于存储用户数据的字节数。作为实例,具有4KB的页大小的数据页可包含4KB的用户数据(例如,假定扇区大小为512B的8个扇区)以及对应于用户数据的数个字节(例如,32B、54B、224B等)的元数据,如完整性数据(例如,错误检测或校正码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可提供不同页大小,或可能需要与页大小相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,其可能使得需要不同量的元数据来确保数据页的完整性(例如,相比于具有较低位错误率的存储器装置,具有较高位错误率的存储器装置可能需要更多字节的错误校正码数据)。作为实例,MLC NAND快闪装置可比对应SLC NAND快闪装置具有更高的位错误率。因此,MLC装置可能需要比对应SLC装置更多的用于错误数据的元数据字节。
图2为说明图1中所说明的类型的包含数个存储器单元串(例如,第一A0存储器串205A0到第三A0存储器串207A0、第一An存储器串205An到第三An存储器串207An、第一B0存储器串205B0到第三B0存储器串207B0、第一Bn存储器串205Bn到第三Bn存储器串207Bn等)的NAND存储器装置110的3D NAND架构半导体存储器阵列200的实例的示意图,所述存储器单元串组织成块(例如,块A 201A、块B 201B等)和子块(例如,子块A0 201A0、子块An 201An、子块B0201B0、子块Bn 201Bn等)。存储器阵列200表示通常在存储器装置的块、装置或其它单元中发现的较大数目的类似结构的一部分。
每一存储器单元串包含数个层次的电荷存储晶体管(例如,浮动栅极晶体管、电荷捕获结构等),所述电荷存储晶体管在Z方向上以源极到漏极方式堆叠于源极线(SRC)235或源极侧选择栅极(SGS)(例如,第一A0 SGS 231A0到第三A0 SGS 233A0、第一An SGS 231An到第三An SGS 233An、第一B0 SGS 231B0到第三B0 SGS 233B0、第一Bn SGS231Bn到第三Bn SGS233Bn等)与漏极侧选择栅极(SGD)(例如,第一A0 SGD 226A0到第三A0 SGD 228A0、第一AnSGD 226An到第三An SGD 228An、第一B0 SGD 226B0到第三B0 SGD 228B0、第一Bn SGD 226Bn到第三Bn SGD 228Bn等)之间。3D存储器阵列中的每一存储器单元串可沿着X方向布置为数据线(例如,位线(BL)BL0 220到BL2 222),且沿着Y方向布置为物理页。
在物理页内,每一层次表示一行存储器单元,且每一存储器单元串表示一列。子块可包含一或多个物理页。块可包含数个子块(或物理页)(例如,128、256、384等)。尽管本文中说明为具有两个块,但每一块具有两个子块,每一子块具有单个物理页,每一物理页具有三个存储器单元串,且每一串具有八个层次的存储器单元。在其它实例中,存储器阵列200可包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层次。举例来说,每一存储器单元串按需要可包含更多或更少层次(例如,16、32、64、128等),以及电荷存储晶体管(例如,选择栅极、数据线等)上方或下方的半导体材料的一或多个额外层次。作为实例,48GB TLC NAND存储器装置可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548块和每装置4个或更多个平面。
存储器阵列200中的每一存储器单元包含耦合到(例如,以电或以其它方式可操作地连接到)存取线(例如,字线(WL)WL00 210A到WL70 217A、WL01 210B到WL71 217B等)的控制栅极(CG),所述存取线按需要跨越特定层次或层次的一部分共同地耦合控制栅极(CG)。可使用相应存取线来存取或控制3D存储器阵列中的特定层次,且因此存取或控制串中的特定存储器单元。可使用各种选择线来存取选择栅极的群组。举例来说,可使用A0 SGD线SGDA0225A0存取第一A0 SGD 226A0到第三A0 SGD 228A0,可使用SGD线SGDAn 225An存取第一An SGD226An到第三An SGD 228An,可使用B0 SGD线SGDB0 225B0存取第一B0 SGD 226B0到第三B0SGD 228B0,且可使用Bn SGD线SGDBn225Bn存取第一Bn SGD 226Bn到第三Bn SGD 228Bn。可使用栅极选择线SGS0 230A存取第一A0 SGS 231A0到第三A0 SGS 233A0和第一An SGS 231An到第三An SGS 233An,且可经由栅极选择线SGS1 230B存取第一B0 SGS 231B0到第三B0 SGS233B0和第一Bn SGS 231Bn到第三Bn SGS 233Bn
在实例中,存储器阵列200可包含数个层级的半导体材料(例如,多晶硅等),其经配置以耦合每一存储器单元的控制栅极(CG)或阵列的相应层次的选择栅极(或CG或选择栅极的一部分)。可使用位线(BL)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,WL)来存取、选择或控制特定串中的一或多个层次处的特定存储器单元。
图3说明包含多个存储器单元302的NAND架构半导体存储器阵列300的一部分的实例示意图,所述存储器单元布置于串(例如,第一串305到第三串307)和层次(例如,说明为相应字线(WL)WL0 310到WL7 317、漏极侧选择栅极(SGD)线325、源极侧选择栅极(SGS)线330等)和感测放大器或装置360的二维阵列中。举例来说,存储器阵列300可说明例如图2中说明的3D NAND架构半导体存储器装置的存储器单元的一个物理页的一部分的实例示意图。
每一存储器单元串使用相应源极侧选择栅极(SGS)330(例如,第一SGS 331到第三SGS 333)耦合到源极线(SRC)335,且使用相应漏极侧选择栅极(SGD)(例如,第一SGD 326到第三SGD 328)耦合到相应数据线(例如,第一位线(BL)BL0 320到第三位线BL2 322)。虽然在图3的实例中说明为具有八个层次(例如,使用字线(WL)WL0 310到WL7 317)和三个数据线(BL0 326到BL2 328),但其它实例按需要可包含具有更多或更少层次或数据线的存储器单元串。
在例如实例存储器阵列300的NAND架构半导体存储器阵列中,可通过感测与含有选定存储器单元的特定数据线相关联的电流或电压变化来存取选定存储器单元302的状态。可使用一或多个驱动器(例如,由控制电路、一或多个处理器、数字逻辑等)存取存储器阵列300。在实例中,取决于需要对特定存储器单元或一组存储器单元执行的操作类型,一或多个驱动器可通过将特定电位驱动到一或多个数据线(例如,位线BL0到BL2)、存取线(例如,字线WL0到WL7)或选择栅极来激活所述特定存储器单元或所述一组存储器单元。
为了将数据编程或写入到存储器单元,可将编程电压(Vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,WL4),且因此施加到耦合到选定字线的每一存储器单元的控制栅极(例如,耦合到WL4的存储器单元的第一控制栅极(CG)341到第三控制栅极343)。编程脉冲可例如在15V处或附近开始,且在某些实例中,可在每一编程脉冲施加期间增大量值。在将编程电压施加到选定字线时,可将例如接地电位Vss等电位施加到以编程为目标的存储器单元的数据线(例如,位线)和衬底(且因此源极与漏极之间的沟道),从而引起从沟道到目标存储器单元的浮动栅极的电荷转移(例如,直接注入或佛勒-诺德海姆(Fowler-Nordheim,FN)隧穿等)。
相比之下,可将传递电压(VPASS)施加到具有不以编程为目标的存储器单元的一或多个字线,或可将禁止电压(例如,Vcc)施加到具有不以编程为目标的存储器单元的数据线(例如,位线),以例如禁止电荷从沟道转移到此类非目标存储器单元的浮动栅极。传递电压可例如取决于所施加的传递电压与以编程为目标的字线的接近度而变化。禁止电压可包含相对于接地电位Vss的电源电压(Vcc),例如来自外部源或电源(例如,电池、AC到DC转换器等)的电压。
作为实例,如果将编程电压(例如,15V或更高)施加到特定字线,例如WL4,那么可将10V的传递电压施加到一或多个其它字线,例如WL3、WL5等,以禁止非目标存储器单元的编程,或保留不以编程为目标的此类存储器单元上存储的值。随着所施加编程电压与非目标存储器单元之间的距离增加,避免对非目标存储器单元进行编程所需的传递电压可减小。举例来说,在将15V的编程电压施加到WL4的情况下,可将10V的传递电压施加到WL3和WL5,可将8V的传递电压施加到WL2和WL6,可将7V的传递电压施加到WL1和WL7等。在其它实例中,传递电压或字线数目等可更高或更低,或更多或更少。
耦合到数据线(例如,第一位线、第二位线或第三位线(BL0到BL2)320到322)中的一或多个的感测放大器360可通过感测特定数据线上的电压或电流来检测相应数据线中的每一存储器单元的状态。
在一或多个编程脉冲(例如,Vpgm)的施加之间,可执行验证操作以确定选定存储器单元是否已达到其预期已编程状态。如果选定存储器单元已达到其预期已编程状态,那么可禁止其进一步编程。如果选定存储器单元尚未达到其预期已编程状态,那么可施加额外编程脉冲。如果在特定数目(例如,最大数目)的编程脉冲之后选定存储器单元尚未达到其预期已编程状态,那么可将选定存储器单元或与此选定存储器单元相关联的串、块或页标记为有缺陷。
为了擦除存储器单元或存储器单元群组(例如,擦除通常以块或子块执行),可(例如,使用一或多个位线、选择栅极等)将擦除电压(Vers)(例如,通常Vpgm)施加到以擦除为目标的存储器单元的衬底(且因此源极与漏极之间的沟道),同时目标存储器单元的字线保持在例如接地Vss的电位下,从而引起从目标存储器单元的浮动栅极到沟道的电荷转移(例如,直接注入或佛勒-诺德海姆(FN)隧穿等)。
图4为说明图1中所说明的类型的存储器装置400的实例的框图,所述存储器装置包含具有多个存储器单元404的存储器阵列402,以及用以提供与存储器阵列402的通信或对存储器阵列402执行一或多个存储器操作的一或多个电路或组件。存储器装置400可包含行解码器412、列解码器414、感测放大器420、页缓冲器422、选择器424、输入/输出(I/O)电路426和存储器控制单元430。
存储器阵列402的存储器单元404可布置在例如第一块402A和第二块402B的块中。每一块可包含子块。举例来说,第一块402A可包含第一子块402A0和第二子块402An,且第二块402B可包含第一子块402B0和第二子块402Bn。每一子块可包含数个物理页,其中每一页包含数个存储器单元404。尽管本文中说明为具有两个块,其中每一块具有两个子块,且每一子块具有数个存储器单元404,但在其它实例中,存储器阵列402可包含更多或更少的块、子块、存储器单元等。在其它实例中,存储器单元404可布置成数个行、列、页、子块、块等,且可使用例如存取线406、第一数据线410或一或多个选择栅极、源极线等来进行存取。
存储器控制单元430可根据在控制线432上接收到的一或多个信号或指令控制存储器装置400的存储器操作,所述一或多个信号或指令包含例如指示所要操作(例如,写入、读取、擦除等)的一或多个时钟信号或控制信号,或在一或多个地址线416上接收到的地址信号(A0到AX)。在存储器装置400外部的一或多个装置可控制控制线432上的控制信号或地址线416上的地址信号的值。在存储器装置400外部的装置的实例可包含但不限于主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。
存储器装置400可使用存取线406和第一数据线410将数据传送到存储器单元404中的一或多个(例如,写入或擦除)或从存储器单元404中的一或多个传送数据(例如,读取)。存储器控制单元430可包含耦合到行解码器412的状态机431、列解码器414、I/O电路426。状态机431还可输出快闪存储器的状态数据,例如就绪/忙碌或通过/失败。在一些设计中,状态机431可经配置以管理编程过程。行解码器412和列解码器414可从地址线416接收地址信号(A0到AX)并对其进行解码,可确定将存取哪些存储器单元404,且可向存取线406(例如,多个字线(WL0到WLm)中的一或多个)或第一数据线410(例如,多个位线(BL0到BLn)中的一或多个)中的一或多个提供信号,例如上文所描述。
存储器装置400可包含感测电路系统,例如感测放大器420,其经配置以使用第一数据线410确定存储器单元404上的数据的值(例如,读取),或确定将写入到存储器单元404的数据的值。举例来说,在存储器单元404的选定串中,感测放大器420中的一或多个可响应于读取电流在存储器阵列402中流过选定串到达数据线410而读取选定存储器单元404中的逻辑电平。
在存储器装置400外部的一或多个装置可使用I/O线(DQ0到DQN)408、地址线(A0到AX)416或控制线432与存储器装置400通信。输入/输出(I/O)电路426可根据例如控制线432和地址线416使用I/O线408将数据值传送到存储器装置400中或从其中传送数据值,例如将数据值传送到页缓冲器422或存储器阵列402中或从其中传送数据值。页缓冲器422可在数据被编程到存储器阵列402的相关部分中之前存储从存储器装置400外部的一或多个装置接收到的数据,或可在数据被传输到存储器装置400外部的一或多个装置之前存储从存储器阵列402读取的数据。
列解码器414可接收地址信号(A0到AX)416且将其解码成一或多个列选择信号(CSEL1到CSELn)。选择器424(例如,选择电路)可接收列选择信号(CSEL1到CSELn)且选择页缓冲器422中表示将从存储器单元404读取或将编程到存储器单元404中的数据的值的数据。选定数据可使用第二数据线418在页缓冲器422与I/O电路426之间传送。在一些实例中,快闪转换层(未展示)可将由主机提供的地址映射到由行解码器412和列解码器414使用以读取存储器阵列402中的数据的物理存储器地址。
存储器控制单元430可从外部源或电源(例如,内部或外部电池、AC到DC转换器等)接收正和负电源信号,例如电源电压Vcc 434和接地电位Vss 436。在某些实例中,存储器控制单元430可包含调节器428以在内部提供正或负电源信号。
如先前所描述,存储器装置的存储器单元可布置为经配置以仅存储单个数据位的SLC,或存储两个或更多个数据位的MLC。举例来说,TLC可每单元存储三个数据位,且QLC可每单元存储四个数据位。与MLC(例如,TLC或QLC)存储装置相比,SLC单元通常存储较少数据,且以适合用作仅使用SLC存储器单元的存储装置的容量制造存储器装置的成本效益更低。然而,SLC存储器单元可提供更好的性能和更高的可靠性。举例来说,可用较少编程循环写入SLC单元,由此减少由编程期间非预期功率损耗引起的损坏几率。存储器管理的折衷解决方案是使用SLC高速缓存,其中一些单元可被配置为SLC,且其它单元可被配置为MLC。举例来说,可首先将数据写入到SLC,且稍后在存储器装置不忙碌(例如,空闲状态)时将所述数据传送到MLC。在一些实例中,当接收到主机写入请求时,存储器控制器可检查是否存在空闲的SLC高速缓存。如果存在空闲的SLC高速缓存,那么可接着将数据写入到SLC高速缓存,或如果无可用的空闲SLC高速缓存,则改为将数据直接写入到MLC存储装置。SLC高速缓存机制提供SLC存储器单元的速度和可靠性与MLC存储器单元的存储容量之间的平衡。在一些实例存储器装置中,存储器单元可由SLC与MLC之间的固件重新配置,且高速缓存大小可在使用期间变化(动态大小SLC高速缓存)。举例来说,SLC高速缓存大小可基于存储器装置有多满(装置利用率)而变化。随着装置填满,被配置为SLC高速缓存的存储器单元迁移到MLC以增加总数据存储容量。
使用SLC高速缓存可能会引起WA,因为相同数据被写入到快闪存储器的物理媒体两次,第一次到SLC高速缓存,然后到MLC存储装置。WA度量可确定为相对于主机预期当其在整个存储器装置中移动时在所述数据的寿命内写入的逻辑量物理地写入到存储媒体的实际信息量。SLC高速缓存越大,写入请求将由SLC高速缓存服务的可能性就越大,且WA增加的概率就越大。除了使用SLC高速缓存之外,垃圾收集(GC)也可能会引起大的WA。
如上所述,NAND快闪存储器的架构要求在大小通常介于4KB与16KB之间的页中读取和编程数据,且在由多个页组成且大小单位为MB的整个块的层级下擦除数据。当擦除块时,所有单元在逻辑上设置为1。数据只能以单步编程到块中已擦除的页。已通过编程设置为0的任何单元只能通过擦除整个块而复位为1,这意味着在新数据可编程到已含有数据的页之前,将所述页的当前内容加上新数据复制到新的已擦除页。如果有可用的合适页,那么可立即将数据写入到所述页。然而,如果没有可用的已擦除页,那么在将数据复制到块中的页之前擦除所述块。旧页接着被标记为无效且可用于擦除和重新使用。
如上所述,UFS数据表(JESD220C)指定,装置在从其主机接收到同步高速缓存命令时必须将其SRAM缓冲器(高速缓存)数据刷新到存储媒体(例如,NAND快闪的MLC)中。本文中所描述的系统和方法通过添加临时SLC块以使高速缓存同步以最大化单步传送效率来实施同步高速缓存命令。出于本实例实施方案的目的,以下描述涉及“同步高速缓存”命令。此术语既定指代从主机到受管理NAND装置的装置将写入缓冲器刷新到存储器的任何命令,而不考虑受管理NAND装置操作所依据的任何特定标准。因此,已识别的UFS标准下的“同步高速缓存”命令仅为实例。
图5说明作为图1的环境100的实例实施方案的实例系统500,所述系统包含主机装置510和存储器装置520,所述存储器装置包含NAND快闪存储器530以及包含CPU 540的存储器控制器115(图1)。如所说明,图5的实施例中的存储器装置520可例如大体以关于图4中的存储器装置400所描述的方式构建。然而,存储器装置520可进一步包含SRAM(写入)缓冲器550,其存储来自主机装置510的主机数据,以用于在SRAM缓冲器550已满时或按照(例如,同步高速缓存命令的)其它命令将所述主机数据直接存储器存取(DMA)传送到NAND快闪存储器530中。在样本实施例中,写入缓冲器550、NAND快闪存储器530和CPU 540并入到同一专用集成电路(ASIC)中。如图5中所说明,在(1)处将来自主机装置510的数据写入到写入缓冲器550550中,且当写入缓冲器550中的数据大小达到用于单步传送的大小(“单步程序大小”)或者某一其它装置命令或条件要求从写入缓冲器550刷新数据(即使写入缓冲器550未满)时(例如,在从主机装置510接收到同步高速缓存命令后),通过DMA传送将主机数据从写入缓冲器550刷新到NAND快闪存储器530中。如上所述,UFS数据表(JESD220C)指定,装置在从其主机接收到同步高速缓存命令时必须将其SRAM缓冲器(高速缓存)数据刷新到存储媒体(例如,NAND快闪)中。在接收到同步高速缓存命令之后,装置将其写入缓冲器550中的有效数据刷新到NAND快闪存储器530中,而不管写入缓冲器550中有多少有效数据。
如在样本实施例中所实施,在接收到同步高速缓存命令后,存储器控制器的CPU540实施程序以检查SRAM写入缓冲器550550中的有效主机数据大小。举例来说,如图6中所说明,在接收到同步高速缓存命令后,根据存储在写入缓冲器550中的有效主机数据600的量从图5中所说明的SRAM写入缓冲器550刷新主机数据600。如所说明,如果有效数据大小大于预定值(例如,写入缓冲器550的大小的80%),那么例如根据用于单步传送的主机TLC开放块单步程序将SRAM写入缓冲器550中的有效主机数据600直接刷新到开放TLC块620中。另一方面,如果写入缓冲器550中的有效主机数据大小小于预定值,那么不将主机数据600刷新到NAND快闪存储器530的TLC,而是刷新到临时SLC块610中以满足同步高速缓存命令的UFS命令规范。然而,主机数据600仍维持在SRAM写入缓冲器550中。因此,SRAM写入缓冲器550可接收额外数据直到其已满为止。一旦已满,就可以单步传送将SRAM写入缓冲器550550中的所有主机数据600传送到TLC开放块620。此时,临时SLC块610中的数据变得无效。然而,应了解,如果存在使得写入缓冲器550中的主机数据600丢失的功率损耗或某一其它事件,那么仍可从临时SLC块610恢复丢失的主机数据。还应了解,除TLC开放块620之外,数据还可刷新到任何MLC开放块。
在样本实施例中,主机TLC开放块单步传送程序是适用于改进顺序写入性能的页线(页交叉裸片和交叉平面)。为了提高顺序写入性能,在NAND裸片上的编程是并行的且处于多平面模式中,这意味着最小程序单元(如上文所描述的单步程序大小)为裸片数乘以平面数乘以每个裸片的最小程序物理单元。在包含高级3D TLC NAND的样本实施例中,使用低页(LP)-上页(UP)-额外页(XP)单步程序来提高NAND程序效率。在此情况下,NAND主机提供LP、UP和XP三页数据,且接着将其一起编程到NAND阵列中。NAND主机向NAND发出程序命令(LP)以将LP数据传送到NAND,向NAND发出程序命令(UP)以将UP数据传送到NAND,且向NAND发出程序命令(XP)以将XP数据传送到NAND。NAND主机还向NAND发出程序确认命令。在接收到程序确认命令之后,NAND将LP/UP/XP一起记录到NAND阵列单元中。
举例来说,对于受管理存储器装置520的SRAM写入缓冲器550,例如支持单步TLC程序的UFS 3.0 NAND快闪,用于4裸片、2平面装置的单步TLC程序需要4(裸片)×3(页)×2(平面)×16(KB页大小)=384KB。类似地,用于4裸片、4平面装置的单步TLC程序需要4(裸片)×3(页)×4(平面)×16(KB页大小)=768KB。然而,写入缓冲器550可含有主机数据600的小数据区块,所述小数据区块比在接收到同步高速缓存命令后刷新到NAND快闪存储器530的TLC中的单步TLC程序大小(384KB或768KB)小得多。举例来说,写入缓冲器550中存在的主机数据600可能只有4KB(最小主机写入数据大小)。同步高速缓存命令可使得写入缓冲器550将此4KB的主机数据600刷新到开放TLC块620中,这导致380kB或764KB物理大小被填充虚设数据所浪费。因此,如果NAND存储器系统400的使用模型中存在大量同步高速缓存命令,那么TBW显著增加。此外,同步高速缓存命令的填充虚设数据会使得TLC NAND的封闭数据块中的有效数据比率很小,这将触发系统中的更多GC操作,从而进一步降低系统效率。
根据样本实施例,使用临时SLC块610来解决此类低效率问题,所述临时SLC块在单裸片和单平面模式中编程。临时SLC块610的单步程序大小仅为单个页,而不是页线。在此配置中,如果将从写入缓冲器550刷新相同的4KB(最小主机写入数据大小)的主机数据600,那么对于已刷新页,只有12KB的物理页大小浪费。另一方面,如果临时SLC块610适用于支持在相同页上进行4次编程(每一平面一次)而不会损坏数据,那么填充虚设数据大小可为零。由于同步数据仍在写入缓冲器550中,因此不需要将临时SLC块610中存储的数据折叠到主机开放TLC块620中。另外,在此情况下,同步高速缓存命令不会降低主机开放TLC块620的有效数据比率,且后续的GC不会增加。此外,由于SLC程序时间(例如,200μsec)比TLC单步程序时间(例如,2000μsec)低得多,因此同步高速缓存命令等待时间也得到显著改进。
在样本实施例中,临时SLC块610选自用户数据空间中的空闲块列表。当临时SLC块610被完全编程时,其再次返回到空闲块列表且永远不会作为数据块封闭。
如所提到,主机数据600在被刷新到临时SLC块610中之后维持在SRAM写入缓冲器550中。如果SRAM写入缓冲器550上不存在清除操作(例如,写入缓冲器550的电源已经切断),那么不需要从临时SLC块610读取已刷新主机数据,并且临时SLC块610变得无效。然而,如果SRAM写入缓冲器550上存在清除操作,那么可将已刷新主机数据从临时SLC块610读取到SRAM写入缓冲器550中,以在写入缓冲器550丢失数据之后重建缓冲器数据。因此,在必要时,如在功率损耗的情况下,可使用临时SLC块610在SRAM写入缓冲器550中重建主机数据。
已观察到,在典型NAND存储器系统400的实际使用模式中存在许多同步高速缓存命令。举例来说,在具有128KB和256KB的单步程序大小的2-8双步TLC程序NAND装置的使用模式测试中,基于在主机数据直接写入到TLC时测得的值,测得总WA为3.92。大多数WA是响应同步高速缓存命令在TLC写入中填充虚设数据而引起的。应了解,较大WA意味着较小TBW,其中TBW=(总NAND有效写入大小)/WA。还观察到较长的同步高速缓存命令等待时间。举例来说,在2-8双步TLC程序中,XP-UP单步程序时间(tPROG)已经超过2ms,这使得同步高速缓存命令等待时间相对较长。在其它UFS 3.0NAND单步TLC程序中,LP-UP-XP单步程序时间(tPROG)可能超过2.4ms。
UFS 3.0涡轮写入特征使主机能够更好地控制写入到SLC高速缓存块的数据。当停用数据涡轮写入时,将主机数据600直接写入到TLC开放块620。在UFS 2.1中,如果存在空闲时间,那么将主机数据写入到SLC高速缓存块以避免虚设数据的大规模填充。然而,由同步高速缓存命令产生的上述低效率问题未得到解决。
随着NAND技术发展成每单元包含更多平面(2个平面→4个平面→6个平面)和更多的位(MLC→TLC→QLC),越来越需要单步程序(例如,LP、UP和XP)来提高NAND编程速度。然而,NAND物理页大小(NAND程序单元)通常为16kB,而受管理NAND主机最小写入大小为4KB(一个逻辑块地址(LBA)),这会引起上述低效率问题。
图7说明图1中所说明的类型的具有4个裸片的受管理NAND装置中的单步程序单元。如所说明,单步程序单元700包含所有四个裸片(裸片0、裸片1、裸片2和裸片3)710以及每一裸片内的4个平面(平面0、平面1、平面2和平面3)720。每一平面含有3个页,且每一页包含16kB。因此,在此实例中,单步程序以单步传送来传送4×4×3×16kB=768kB。如上所述,写入缓冲器550可存储少至4KB的有效主机数据600。在没有用于响应于同步高速缓存命令而接收已刷新主机数据的临时SLC块610的情况下,CPU 540会将764KB的虚设数据填充到NAND快闪存储器530中,这是对NAND资源的巨大浪费。另一方面,如果存在用于处理同步高速缓存命令的临时SLC块610,那么将根据如图8中所展示的每页支持的单步程序的数目,(在单裸片和单平面程序中)一次4kB地将主机数据刷新到临时SLC块610中。因此,如果NAND快闪存储器530如图8中所展示支持每页数个程序,则不需要填充虚设数据。另一方面,如果NAND存储器无法为临时SLC块610支持每页数个程序,则仅填充12KB虚设数据以完成页,这比将主机数据编程到TLC块620中小得多。
图9说明在样本实施例中例如图1中所说明的类型的用于NAND存储器装置520的存储器管理过程的实施方案的流程图,所述存储器管理过程包含存储器控制器115对同步高速缓存命令的处理。如所说明,在900处,主机装置510将数据写入到写入缓冲器550。如果存储器控制器115在910处确定写入缓冲器550充满高于预定阈值的有效主机数据600,那么在920处,以单步传送将写入缓冲器550中的主机数据600传送到开放MLC数据块。写入缓冲器550接着继续从主机装置510接收新的主机数据600。另一方面,当在910处确定写入缓冲器550未满时,存储器控制器115在930处检查是否已接收到同步高速缓存命令。如果未接收到,那么写入缓冲器550继续从主机装置510接收主机数据600。相反,如虚线所指示,可在不首先检查写入缓冲器550的状态的情况下从主机装置510接收同步高速缓存命令。
在任一情况下,在930处接收到同步高速缓存命令后,存储器控制器115在940处检查存储在写入缓冲器550中的有效主机数据600的量是小于还是大于写入缓冲器550中可用存储的预定百分比(例如,80%)。如果存储在写入缓冲器550中的有效主机数据600的量超出写入缓冲器550中的可用存储的预定百分比,那么在920处通过单步传送将写入缓冲器550中的主机数据600传送到开放MLC数据块620,且写入缓冲器550恢复从主机装置510接收新的主机数据600。另一方面,如果存储于写入缓冲器550中的有效主机数据600的量小于写入缓冲器550中的可用存储的预定百分比,那么在950处将写入缓冲器550中的有效主机数据600刷新到临时SLC缓冲器610。任选地,在960处将主机数据维持在写入缓冲器550中。通过将主机数据保存在写入缓冲器550中,如果在970处检测到引起数据丢失的对写入缓冲器550的操作的断电或某一其它干扰,那么在980处,可将被刷新到临时SLC缓冲器610的主机数据600传送回到写入缓冲器550,以在写入缓冲器550中的主机数据已丢失时重组写入缓冲器550。写入缓冲器550可接着在900处继续接收主机数据600以恢复存储器管理过程。
使用如本文中所描述的临时SLC缓冲器610具有数个优点。举例来说,临时SLC块620可在单裸片模式中编程,且消除大量虚设数据的填充。另外,由于SLC程序性能明显快于MLC程序性能,因此同步高速缓存命令等待时间可得到改进。此外,由于将主机数据刷新到临时SLC缓冲器610是严格按照同步高速缓存命令规范执行的,且主机数据在SRAM写入缓冲器550等待更多主机数据600时保留在SRAM写入缓冲器550中,因此SRAM写入缓冲器550中已丢失的任何主机数据600可从存储在临时SLC块610中的主机数据重建,所述临时SLC块在断电的情况下保留其数据。
图10说明其上可执行本文中所论述的任一或多种技术(例如,方法)的实例机器1000的框图。在替代实施例中,机器1000可充当独立装置或可连接(例如,联网)到其它机器。在联网部署中,机器1000可在服务器-客户端网络环境中作为服务器机器、客户端机器或这两者操作。在实例中,机器1000可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器1000可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、IoT装置、汽车系统,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”还应被视为包含个别地或共同地执行指令集(或多个指令集)以执行本文中所论述的任一或多种方法(例如,云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器总集。
如本文中所描述,实例可包含逻辑、组件、装置、封装或机构,或者可通过逻辑、组件、装置、封装或机构操作。电路系统是在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可随时间推移和基础硬件变化而为灵活的。电路系统包含当操作时可单独或组合地执行特定任务的部件。在实例中,可以不可改变的方式设计电路系统的硬件以进行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,硬件构成的基础电性质例如从绝缘体变成导体,或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接产生硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此,当装置操作时,计算机可读媒体以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可用于多于一个电路系统中的多于一个部件。举例来说,在操作下,执行单元可在一个时间点用于第一电路系统中的第一电路,且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)1000(例如,主机装置510、存储器装置520等)可包含硬件处理器1002(例如,CPU、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器控制器115等)、主存储器1004和静态存储器1006,其中的一些或全部可经由互连件(例如,总线)1008彼此通信。机器1000可进一步包含显示单元1010、字母数字输入装置1012(例如,键盘)和用户界面(UI)导航装置1014(例如,鼠标)。在实例中,显示单元1010、输入装置1012和UI导航装置1014可以是触摸屏显示器。机器1000可另外包含信号生成装置1018(例如,扬声器)、网络接口装置1020和一或多个传感器1016,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器1000可包含输出控制器1028,例如串行(例如,USB、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以使一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
机器1000可包含机器可读媒体1022,其上存储有体现本文中所描述的任一或多种技术或功能或由本文中所描述的任一或多种技术或功能利用的一或多组数据结构或指令1024(例如,软件)。指令1024还可在其由机器1000执行期间完全或至少部分地驻留于主存储器1004内、静态存储器1006内或硬件处理器1002内。在实例中,硬件处理器1002、主存储器1004或静态存储器1006中的一个或任何组合可构成机器可读媒体1022。
虽然机器可读媒体1022被说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1024的单个媒体或多个媒体(例如,集中或分布式数据库,或相关联高速缓存和服务器)。
术语“机器可读媒体”可包含能够存储或编码供机器1000执行的指令且使得机器1000执行本公开的任一或多种技术或能够存储、编码或携载由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例包含固态存储器以及光学和磁性媒体。在实例中,集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读媒体非暂时性地传播信号。集中式机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)或电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。
指令1024(例如,软件、程序、操作系统(OS)等)或其它数据存储于存储装置1021上,可由存储器1004存取以供处理器1002使用。存储器1004(例如,DRAM)通常是快速但易失性的,且因此与存储装置1021(例如,SSD)相比属于不同存储类型,存储装置1021适合于长期存储,包含在“断开”条件下时的长期存储。供用户或机器1000使用的指令1024或数据通常加载于存储器1004中以供处理器1002使用。当存储器1004已满时,可分配来自存储装置1021的虚拟空间以补充存储器1004;然而,因为存储1021装置通常比存储器1004慢且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置等待时间(相比于存储器1004,例如DRAM)可能极大地降低用户体验。此外,用于虚拟存储器的存储装置1021的使用可能极大地减少存储装置1021的可用使用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如,
Figure BDA0003542524880000221
内核特征“ZRAM”)使用存储器的部分作为压缩块存储以避免对存储装置1021的分页。分页在压缩块中发生直到必须将此类数据写入到存储装置1021为止。虚拟存储器压缩增加存储器1004的可用大小,同时减少存储装置1021上的磨损。
针对移动电子装置或移动存储装置而优化的存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机装置的数个并行接口(例如,8位并行接口),且通常是可从主机装置移除且与主机分开的组件。相比之下,eMMCTM装置附接到电路板且视为主机装置的组件,其读取速度比得上基于串行ATATM(串行高级技术(AT)附件,或SATA)的SSD装置。然而,对移动装置性能的需求继续增加,以便完全启用虚拟或增强现实装置,利用提高的网络速度等。响应于此需求,存储装置已从并行通信接口移位到串行通信接口。包含控制器和固件的UFS装置使用具有专用读取/写入路径的低电压差分信令(LVDS)串行接口与主机装置通信,从而进一步提高读取/写入速度。
可进一步利用数个传送协议中的任一个(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置1020使用传输媒体通过通信网络1026传输或接收指令1024。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通传统电话(POTS)网络和无线数据网络(例如,称为
Figure BDA0003542524880000222
的电气电子工程师学会(IEEE)802.11系列标准、称为
Figure BDA0003542524880000223
的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例中,网络接口装置1020可包含一或多个物理插口(例如,以太网、共轴或手机插口)或一或多个天线以连接到通信网络1026。在实例中,网络接口装置1020可包含多个天线以使用单收多发(SIMO)、多入多出(MIMO)或多入单出(MISO)技术中的至少一种无线地通信。
术语“传输媒体”应被视为包含能够存储、编码或载送指令以供机器1000执行的任何无形媒体,且包含数字或模拟通信信号或用以促进此软件的通信的其它无形媒体。
为了更好地说明本文中所描述的方法和设备,一组非限制性实例实施例在下文阐述为带编号的实例。
实例1为一种存储器装置,其包括:存储器阵列,其至少包括SLC数据块和MLC数据块;写入缓冲器;以及存储器控制器,其经配置以从主机装置接收命令且执行在被执行时实施包含以下各项的操作的指令:使得所述写入缓冲器能够从所述主机装置接收主机数据;在接收到同步高速缓存的命令后,确定所述写入缓冲器是否充满高于预定阈值的主机数据;当所述写入缓冲器充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到开放MLC数据块;以及当所述写入缓冲器未充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到临时存储位置。
实例2包含根据实例1所述的主题,其中所述操作进一步包括在将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置之后,维持所述写入缓冲器中的所述主机数据,使得所述写入缓冲器能够从所述主机装置接收额外主机数据,以及在确定所述写入缓冲器已由所述额外主机数据填充后,将所述写入缓冲器中的所述主机数据传送到额外开放MLC数据块。
实例3包含根据实例1和2所述的主题,其中所述操作进一步包括确定所述写入缓冲器中的主机数据是否已丢失,以及在确定所述写入缓冲器中的主机数据是否已丢失后,将存储在所述临时存储位置中的主机数据传送回到所述写入缓冲器以重组所述写入缓冲器。
实例4包含根据实例1至3所述的主题,其中所述预定阈值为所述写入缓冲器的可用存储器存储空间的80%。
实例5包含根据实例1至4所述的主题,其中将所述写入缓冲器中的主机数据刷新到所述开放MLC块包括以单步传送一次将数据存储的一或多个页从所述写入缓冲器刷新到所述开放MLC数据块。
实例6包含根据实例1至5所述的主题,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括一次将数据存储的单个平面的单个页从所述写入缓冲器刷新到临时SLC数据块。
实例7包含根据实例1至6所述的主题,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括根据可通过单步传送程序从所述写入缓冲器一次传送到临时SLC数据块的数据的页数一次4kB地刷新数据存储的单个平面的单个页。
实例8为一种管理存储器装置的方法,所述存储器装置包括至少包括单层级单元(SLC)数据块和多层级单元(MLC)数据块的存储器阵列、写入缓冲器以及经配置以从主机装置接收命令的存储器控制器,所述方法包含:在接收到同步高速缓存的命令后,确定所述写入缓冲器是否充满高于预定阈值的主机数据;当所述写入缓冲器充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到开放MLC数据块;以及当所述写入缓冲器未充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到临时存储位置。
实例9包含根据实例8所述的主题,其进一步包括在将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置之后,维持所述写入缓冲器中的所述主机数据,使得所述写入缓冲器能够从所述主机装置接收额外主机数据,以及在确定所述写入缓冲器已由所述额外主机数据填充后,将所述写入缓冲器中的所述主机数据传送到额外开放MLC数据块。
实例10包含根据实例8和9所述的主题,其进一步包括确定所述写入缓冲器中的主机数据是否已丢失,以及在确定所述写入缓冲器中的主机数据是否已丢失后,将存储在所述临时存储位置中的主机数据传送回到所述写入缓冲器以重组所述写入缓冲器。
实例11包含根据实例8至10所述的主题,其中所述预定阈值为所述写入缓冲器的可用存储器存储空间的80%。
实例12包含根据实例8至11所述的主题,其中将所述写入缓冲器中的主机数据刷新到所述开放MLC块包括以单步传送一次将数据存储的一或多个页从所述写入缓冲器刷新到所述开放MLC数据块。
实例13包含根据实例8至12所述的主题,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括一次将数据存储的单个平面的单个页从所述写入缓冲器刷新到临时SLC数据块。
实例14包含根据实例8至13所述的主题,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括根据可通过单步传送程序从所述写入缓冲器一次传送到临时SLC数据块的数据的页数一次4kB地刷新数据存储的单个平面的单个页。
实例15为至少一种非暂时性装置可读存储媒体,其包括在由至少包括单层级单元(SLC)数据块、多层级单元(MLC)数据块和写入缓冲器的存储系统的存储器控制器执行时使得所述存储器控制器执行包括以下各项的操作的指令:在从主机装置接收到同步高速缓存的命令后,确定所述写入缓冲器是否充满高于预定阈值的主机数据;当所述写入缓冲器充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到开放MLC数据块;以及当所述写入缓冲器未充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到临时存储位置。
实例16包含根据实例15所述的主题,其进一步包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下各项的操作的指令:在将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置之后,维持所述写入缓冲器中的所述主机数据,使得所述写入缓冲器能够从所述主机装置接收额外主机数据,以及在确定所述写入缓冲器已由所述额外主机数据填充后,将所述写入缓冲器中的所述主机数据传送到额外开放MLC数据块。
实例17包含根据实例15和16所述的主题,其进一步包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下各项的操作的指令:确定所述写入缓冲器中的主机数据是否已丢失,以及在确定所述写入缓冲器中的主机数据是否已丢失后,将存储在所述临时存储位置中的主机数据传送回到所述写入缓冲器以重组所述写入缓冲器。
实例18包含根据实例15至17所述的主题,其中用于将所述写入缓冲器中的主机数据刷新到所述开放MLC块的指令进一步包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下项的操作的指令:以单步传送一次将数据存储的一或多个页从所述写入缓冲器刷新到所述开放MLC数据块。
实例19包含根据实例15至18所述的主题,其中用于将所述写入缓冲器中的所述主机数据刷新到临时SLC数据块的指令包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下项的操作的指令:一次将数据存储的单个平面的单个页从所述写入缓冲器刷新到临时SLC数据块。
实例20包含根据实例15至19所述的主题,其中用于将所述写入缓冲器中的所述主机数据刷新到所述临时SLC数据块的指令包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下项的操作的指令:根据可通过单步传送程序从所述写入缓冲器一次传送到临时SLC数据块的数据的页数一次4kB地刷新数据存储的单个平面的单个页。
在实例21中,根据实例1至7所述的存储器装置中的任一个可经调适和操作以依据根据实例8至14所述的方法中的任一种执行操作。
在实例22中,根据实例8至14所述的方法中的任一种可响应于根据实例15至20所述的非暂时性装置可读存储媒体的指令的执行而执行。
在实例23中,根据实例1至7所述的存储器装置中的任一个可包含根据实例15至20所述的非暂时性装置可读存储媒体,其经配置以存储可经执行以执行所述存储器装置的一或多个操作的指令。
在实例24中,根据实例8至14所述的方法中的任一种可使用根据实例1至7所述的存储器装置来执行。
在实例25中,根据实例1至7所述的存储器装置中的任一个可并入到电子系统中,所述电子系统进一步包括主机处理器和在所述主机处理器与所述存储器装置之间延伸的通信总线。
在实例26中,根据实例8至14所述的方法中的任一种可由电子系统执行,所述电子系统包含主机处理器和在所述主机处理器与存储器装置之间延伸的通信接口。
在实例27中,根据实例15至20所述的非暂时性装置可读存储媒体中的任一个可经调适和操作以依据根据实例8至14所述的方法中的任一种执行操作。
以上详细描述包含对随图的参考,所述附图形成详细描述的部分。图式借助于说明展示可实践本文中所描述的系统和方法的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所展示或描述的那些元件之外的元件。然而,本发明人还设想仅提供所展示或所描述的那些元件的实例。此外,本发明人还设想使用关于特定实例(或其一或多个方面)或关于本文中所展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在本文件中,如专利文件中常见的,使用术语“一”以包含一个或多于一个,这独立于“至少一个”或“一或多个”的任何其它例项或使用。在此文件中,除非另有指示,否则术语“或”用于指代非排他性的或,使得“A或B”可包含“A而非B”、“B而非A”以及“A和B”。在所附权利要求书中,术语“包含”和“其中(in which)”用作相应术语“包括”和“其中(wherein)”的简明等效用语。此外,在以下权利要求书中,术语“包含”和“包括”为开放式的,即,包含除权利要求书中在此术语之后列出的那些元件之外的元件的系统、装置、物品或过程仍被视为在权利要求书的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标签,并且并不意图对其对象施加数字要求。
在各种实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储于物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含一组处理器或多核心装置。
根据本公开且在本文中描述的各种实施例包含利用存储器单元的竖直结构(例如,存储器单元的NAND串)的存储器。如本文中所使用,将采用相对其上形成有存储器单元的衬底表面的方向性形容词(即,竖直结构将被视为远离衬底表面而延伸,竖直结构的底端将被视为最接近衬底表面的端部,并且竖直结构的顶端将被视为最远离衬底表面的端部)。
如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中被称作“编程”,且可包含写入到存储器单元或从存储器单元擦除(例如,存储器单元可编程为已擦除状态)。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调整、计算、改变、清除、传达、调适、导出、定义、利用、修改、应用等)磨损循环的数量,或磨损状态(例如,记录磨损循环、在存储器装置的操作发生时对其进行计数、跟踪存储器装置发起的存储器装置的操作、评估对应于磨损状态的存储器装置特性等)。
根据本公开的一或多个实施例,存储器存取装置可经配置以向存储器装置提供每一存储器操作的磨损循环信息。存储器装置控制电路系统(例如,控制逻辑)可经编程以补偿对应于磨损循环信息的存储器装置性能变化。存储器装置可接收磨损循环信息且响应于磨损循环信息而确定一或多个操作参数(例如,值、特性)。
应理解,当一元件被称为“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在另一元件上、与另一元件直接连接或耦合或可存在介入元件。相比之下,当一元件被称为“直接在另一元件上”、“直接连接到另一元件”或“直接耦合到另一元件”时,不存在介入元件或层。如果两个元件在图式中展示为被线连接,那么除非另有指示,否则所述两个元件可耦合或直接耦合。
本文中所描述的方法实例可至少部分地由机器或计算机实施。一些实例可包含经指令编码的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如以上实例中所描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等。此类代码可包含用于执行各种方法的计算机可读指令。代码可形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储在一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可移动磁盘、可移动光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、UFS装置、eMMC装置等。
以上描述既定是说明性的而非限制性的。举例来说,上文所描述的实例(或其一或多个方面)可彼此组合使用。例如所属领域的普通技术人员在查阅以上描述后可使用其它实施例。应理解,所述实施例不会用于解释或限制权利要求书的范围或含义。而且,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。不应将此解释为期望未要求的所公开特征对于任何权利要求来说是必需的。相反地,本发明主题可在于比特定所公开实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为单独实施例而独立存在,且经考虑此类实施例可以各种组合或排列彼此组合。应参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围确定本发明的范围。

Claims (20)

1.一种存储器装置,其包括:
存储器阵列,其至少包括单层级单元(SLC)数据块和多层级单元(MLC)数据块;
写入缓冲器;以及
存储器控制器,其经配置以从主机装置接收命令且执行保留在所述存储器装置内的指令,所述指令在被执行时实施包含以下各项的操作:
使得所述写入缓冲器能够从所述主机装置接收主机数据;
在接收到同步高速缓存的命令后,确定所述写入缓冲器是否充满高于预定阈值的主机数据;
当所述写入缓冲器充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到开放MLC数据块;以及
当所述写入缓冲器未充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到临时存储位置。
2.根据权利要求1所述的存储器装置,其中所述操作进一步包括在将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置之后,维持所述写入缓冲器中的所述主机数据,使得所述写入缓冲器能够从所述主机装置接收额外主机数据,以及在确定所述写入缓冲器已由所述额外主机数据填充后,将所述写入缓冲器中的所述主机数据传送到额外开放MLC数据块。
3.根据权利要求1所述的存储器装置,其中所述操作进一步包括确定所述写入缓冲器中的主机数据是否已丢失,以及在确定所述写入缓冲器中的主机数据是否已丢失后,将存储在所述临时存储位置中的主机数据传送回到所述写入缓冲器以重组所述写入缓冲器。
4.根据权利要求1所述的存储器装置,其中所述预定阈值为所述写入缓冲器的可用存储器存储空间的80%。
5.根据权利要求1所述的存储器装置,其中将所述写入缓冲器中的主机数据刷新到所述开放MLC块包括以单步传送一次将数据存储的一或多个页从所述写入缓冲器刷新到所述开放MLC数据块。
6.根据权利要求1所述的存储器装置,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括一次将数据存储的单个平面的单个页从所述写入缓冲器刷新到临时SLC数据块。
7.根据权利要求1所述的存储器装置,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括根据能通过单步传送程序从所述写入缓冲器一次传送到临时SLC数据块的数据的页数一次4kB地刷新数据存储的单个平面的单个页。
8.一种管理存储器装置的方法,所述存储器装置包括至少包括单层级单元(SLC)数据块和多层级单元(MLC)数据块的存储器阵列、写入缓冲器以及经配置以从主机装置接收命令的存储器控制器,所述方法包含:
在接收到同步高速缓存的命令后,确定所述写入缓冲器是否充满高于预定阈值的主机数据;
当所述写入缓冲器充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到开放MLC数据块;以及
当所述写入缓冲器未充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到临时存储位置。
9.根据权利要求8所述的方法,其进一步包括在将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置之后,维持所述写入缓冲器中的所述主机数据,使得所述写入缓冲器能够从所述主机装置接收额外主机数据,以及在确定所述写入缓冲器已由所述额外主机数据填充后,将所述写入缓冲器中的所述主机数据传送到额外开放MLC数据块。
10.根据权利要求8所述的方法,其进一步包括确定所述写入缓冲器中的主机数据是否已丢失,以及在确定所述写入缓冲器中的主机数据是否已丢失后,将存储在所述临时存储位置中的主机数据传送回到所述写入缓冲器以重组所述写入缓冲器。
11.根据权利要求8所述的方法,其中所述预定阈值为所述写入缓冲器的可用存储器存储空间的80%。
12.根据权利要求8所述的方法,其中将所述写入缓冲器中的主机数据刷新到所述开放MLC块包括以单步传送一次将数据存储的一或多个页从所述写入缓冲器刷新到所述开放MLC数据块。
13.根据权利要求8所述的方法,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括一次将数据存储的单个平面的单个页从所述写入缓冲器刷新到临时SLC数据块。
14.根据权利要求8所述的方法,其中将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置包括根据能通过单步传送程序从所述写入缓冲器一次传送到临时SLC数据块的数据的页数一次4kB地刷新数据存储的单个平面的单个页。
15.至少一种非暂时性装置可读存储媒体,其包括在由至少包括单层级单元(SLC)数据块、多层级单元(MLC)数据块和写入缓冲器的存储系统的存储器控制器执行时使得所述存储器控制器执行包括以下各项的操作的指令:
在从主机装置接收到同步高速缓存的命令后,确定所述写入缓冲器是否充满高于预定阈值的主机数据;
当所述写入缓冲器充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到开放MLC数据块;以及
当所述写入缓冲器未充满高于所述预定阈值的主机数据时,将所述写入缓冲器中的主机数据刷新到临时存储位置。
16.根据权利要求15所述的媒体,其进一步包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下各项的操作的指令:在将所述写入缓冲器中的所述主机数据刷新到所述临时存储位置之后,维持所述写入缓冲器中的所述主机数据,使得所述写入缓冲器能够从所述主机装置接收额外主机数据,以及在确定所述写入缓冲器已由所述额外主机数据填充后,将所述写入缓冲器中的所述主机数据传送到额外开放MLC数据块。
17.根据权利要求15所述的媒体,其进一步包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下各项的操作的指令:确定所述写入缓冲器中的主机数据是否已丢失,以及在确定所述写入缓冲器中的主机数据是否已丢失后,将存储在所述临时存储位置中的主机数据传送回到所述写入缓冲器以重组所述写入缓冲器。
18.根据权利要求15所述的媒体,其中用于将所述写入缓冲器中的主机数据刷新到所述开放MLC块的指令进一步包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下项的操作的指令:以单步传送一次将数据存储的一或多个页从所述写入缓冲器刷新到所述开放MLC数据块。
19.根据权利要求15所述的媒体,其中用于将所述写入缓冲器中的所述主机数据刷新到临时SLC数据块的指令包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下项的操作的指令:一次将数据存储的单个平面的单个页从所述写入缓冲器刷新到临时SLC数据块。
20.根据权利要求15所述的媒体,其中用于将所述写入缓冲器中的所述主机数据刷新到临时SLC数据块的指令包括在由所述存储器控制器执行时使得所述存储器控制器执行包含以下项的操作的指令:根据能通过单步传送程序从所述写入缓冲器一次传送到临时SLC数据块的数据的页数一次4kB地刷新数据存储的单个平面的单个页。
CN201980100281.9A 2019-08-27 2019-08-27 受管理存储器系统中的写入缓冲器控制 Pending CN114365097A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/102902 WO2021035551A1 (en) 2019-08-27 2019-08-27 Write buffer control in managed memory system

Publications (1)

Publication Number Publication Date
CN114365097A true CN114365097A (zh) 2022-04-15

Family

ID=74683739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980100281.9A Pending CN114365097A (zh) 2019-08-27 2019-08-27 受管理存储器系统中的写入缓冲器控制

Country Status (4)

Country Link
US (1) US20230143181A1 (zh)
CN (1) CN114365097A (zh)
DE (1) DE112019007666T5 (zh)
WO (1) WO2021035551A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893277B2 (en) * 2020-10-14 2024-02-06 Western Digital Technologies, Inc. Data storage device managing low endurance semiconductor memory write cache
CN115469797B (zh) * 2021-09-09 2023-12-29 上海江波龙数字技术有限公司 一种数据写入方法、存储装置及计算机可读存储介质
US11842069B2 (en) * 2022-01-14 2023-12-12 Western Digital Technologies, Inc. Storage system and method for delaying flushing of a write buffer based on a host-provided threshold

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW501011B (en) * 1998-05-08 2002-09-01 Koninkl Philips Electronics Nv Data processing circuit with cache memory
EP1244971A1 (en) * 1999-12-08 2002-10-02 Axis AB I/o method and apparatus for optical storage media
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
US7624236B2 (en) * 2004-12-27 2009-11-24 Intel Corporation Predictive early write-back of owned cache blocks in a shared memory computer system
US7475321B2 (en) * 2004-12-29 2009-01-06 Intel Corporation Detecting errors in directory entries
US8452927B2 (en) * 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
US9256540B2 (en) * 2008-09-18 2016-02-09 International Business Machines Corporation Techniques for cache injection in a processor system using a cache injection instruction
WO2010055494A1 (en) * 2008-11-17 2010-05-20 Nxp B.V. A cache management policy and corresponding device
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US8112585B2 (en) * 2009-04-30 2012-02-07 Netapp, Inc. Method and apparatus for dynamically switching cache policies
EP2710475A1 (en) * 2011-05-17 2014-03-26 SanDisk Technologies Inc. Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions
US10359972B2 (en) * 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9251055B2 (en) * 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
TWI479492B (zh) * 2012-11-20 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
US9330007B2 (en) * 2012-11-30 2016-05-03 Dell Products, Lp Systems and methods for dynamic optimization of flash cache in storage devices
US20140198576A1 (en) * 2013-01-16 2014-07-17 Macronix International Co, Ltd. Programming technique for reducing program disturb in stacked memory structures
US9304919B2 (en) * 2013-05-31 2016-04-05 Advanced Micro Devices, Inc. Detecting multiple stride sequences for prefetching
US9489299B2 (en) * 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9471524B2 (en) * 2013-12-09 2016-10-18 Atmel Corporation System bus transaction queue reallocation
CN105793832B (zh) * 2014-09-18 2018-12-18 上海兆芯集成电路有限公司 处理器及其操作方法、以及计算机可读存储介质
US20160225459A1 (en) * 2015-01-30 2016-08-04 Micron Technology, Inc. Apparatuses operable in multiple power modes and methods of operating the same
US10019362B1 (en) * 2015-05-06 2018-07-10 American Megatrends, Inc. Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions
US10152389B2 (en) * 2015-06-19 2018-12-11 Western Digital Technologies, Inc. Apparatus and method for inline compression and deduplication
US10503653B2 (en) * 2015-09-11 2019-12-10 Toshiba Memory Corporation Memory system
US9977623B2 (en) * 2015-10-15 2018-05-22 Sandisk Technologies Llc Detection of a sequential command stream
TWI611410B (zh) * 2016-05-13 2018-01-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
KR102611292B1 (ko) * 2016-06-22 2023-12-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10671313B2 (en) * 2018-01-23 2020-06-02 Goke Us Research Laboratory Apparatus and methods for fast and secure storage of data
TWI660269B (zh) * 2018-01-26 2019-05-21 慧榮科技股份有限公司 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
US10468077B2 (en) * 2018-02-07 2019-11-05 Intel Corporation Adaptive object buffering and meta-data indexing using persistent memory to improve flash memory durability in tiered storage
KR102536637B1 (ko) * 2018-03-29 2023-05-26 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11709623B2 (en) * 2018-08-03 2023-07-25 Sk Hynix Nand Product Solutions Corp. NAND-based storage device with partitioned nonvolatile write buffer
US10929251B2 (en) * 2019-03-29 2021-02-23 Intel Corporation Data loss prevention for integrated memory buffer of a self encrypting drive
US10915264B2 (en) * 2019-04-11 2021-02-09 Intel Corporation Apparatus, systems, and methods to reclaim storage associated with cached data
CN112951309B (zh) * 2021-03-15 2021-11-19 长江存储科技有限责任公司 半导体存储器的验证错误位量化电路和方法

Also Published As

Publication number Publication date
US20230143181A1 (en) 2023-05-11
DE112019007666T5 (de) 2022-06-15
WO2021035551A1 (en) 2021-03-04

Similar Documents

Publication Publication Date Title
US11842054B2 (en) Prioritized security
US11726919B2 (en) Dynamic L2P cache
US11720489B2 (en) Scheme to improve efficiency of device garbage collection in memory devices
US11735269B2 (en) Secure erase for data corruption
CN112115070A (zh) 适应存储器装置预期寿命的垃圾数据收集
CN113129978B (zh) 使用奇偶校验增加存储器存取并行性
US11705201B2 (en) Log data storage for flash memory
US10983829B2 (en) Dynamic size of static SLC cache
CN114365097A (zh) 受管理存储器系统中的写入缓冲器控制
CN111984546A (zh) 使用受限制操作模式存储器指示符的系统
WO2020076560A1 (en) Reactive read based on metrics to screen defect prone memory blocks

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