CN111133410B - 快闪存储器及其管理方法 - Google Patents

快闪存储器及其管理方法 Download PDF

Info

Publication number
CN111133410B
CN111133410B CN201880061721.XA CN201880061721A CN111133410B CN 111133410 B CN111133410 B CN 111133410B CN 201880061721 A CN201880061721 A CN 201880061721A CN 111133410 B CN111133410 B CN 111133410B
Authority
CN
China
Prior art keywords
memory
flash memory
data
page
pages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880061721.XA
Other languages
English (en)
Other versions
CN111133410A (zh
Inventor
P·帕帕
L·埃斯波西托
M·亚库洛
E·K·F·元
G·J·佩达埃姆斯
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 CN111133410A publication Critical patent/CN111133410A/zh
Application granted granted Critical
Publication of CN111133410B publication Critical patent/CN111133410B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)

Abstract

本文中揭示用于管理快闪存储器的装置及技术。存储器控制器可接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据。所述快闪存储器可包括若干个存储单元,其中每一存储单元包括若干个存储子单元。如果所述第一主机数据小于剩余阈值,那么所述存储器控制器可产生包括所述第一主机数据及描述所述快闪存储器的第一日志数据的第一编程数据单元。所述存储器控制器可将所述编程数据单元编程到所述快闪存储器的第一存储单元,其中所述第一日志数据被写入到所述若干个存储子单元中的第一存储子单元。所述存储器控制器还可存储所述第一存储子单元无效的指示。

Description

快闪存储器及其管理方法
优先权申请案
本申请案主张2017年8月30日提出申请的序列号为15/690,889的美国申请案的优先权权益,所述美国申请案以其全文引用的方式并入本文中。
背景技术
存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。
易失性存储器需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)以及其它存储器。
非易失性存储器可在不被供电时存留所存储数据,且包含快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、电阻可变式存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)、磁阻式随机存取存储器(MRAM)或3D XPointTM存储器以及其它存储器。
快闪存储器用作用于宽广范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性及低电力消耗的单晶体管、浮动栅极或电荷陷捕存储器胞元的一或多个群组。
两种常见类型的快闪存储器阵列架构包含NAND架构及NOR架构,所述架构得名于对其每一者的基本存储器胞元配置进行布置的逻辑形式。存储器阵列的存储器胞元通常被布置成矩阵。在一实例中,阵列的行中的每一浮动栅极型存储器胞元的栅极耦合到存取线(例如,字线)。在NOR架构中,阵列的列中的每一存储器胞元的漏极耦合到数据线(例如,位线)。在NAND架构中,阵列的串中的每一存储器胞元的漏极在源极线与位线之间串联耦合在一起(源极到漏极)。
NOR及NAND架构半导体存储器阵列两者是通过解码器来存取,解码器通过选择耦合到特定存储器胞元的栅极的字线来激活所述存储器胞元。在NOR架构半导体存储器阵列中,一旦被激活,选定存储器胞元便将其数据值置于位线上,从而取决于特定胞元被编程时的状态而致使不同电流流动。在NAND架构半导体存储器阵列中,将高偏置电压施加到漏极侧选择栅极(SGD)线。在规定通路电压(例如,Vpass)下驱动耦合到每一群组的未选定存储器胞元的栅极的字线以将每一群组的未选定存储器胞元作为通路晶体管来操作(例如,使电流以不受未选定存储器胞元的所存储数据值限制的方式通过)。然后,电流通过每一串联耦合群组在仅受每一群组的选定存储器胞元限制的情况下从源极线流动到位线,从而将选定存储器胞元的经电流编码数据值置于位线上。
可将NOR或NAND架构半导体存储器阵列中的每一快闪存储器胞元个别地或共同地编程为一种或若干种经编程状态。举例来说,单电平胞元(SLC)可表示两种经编程状态(例如,1或0)中的一者,从而表示一个数据位。
然而,快闪存储器胞元还可表示多于两种经编程状态中的一者,从而允许在无须增加存储器胞元数目的情况下制造出更高密度的存储器,这是因为每一胞元可表示多于一个二进制数字(例如,多于一个位)。此些胞元可被称为多状态存储器胞元、多数字胞元或多电平胞元(MLC)。在某些实例中,MLC可指代可每胞元存储两个数据位(例如,四个经编程状态中的一者)的存储器胞元,三电平胞元(TLC)指代可每胞元可存储三个数据位(例如,八个经编程状态中的一者)的存储器胞元,且四电平胞元(QLC)可每胞元存储四个数据位。本文中在最广义上下文中使用MLC以可指代可每胞元存储多于一个数据位(即,可表示多于两种经编程状态)的任何存储器胞元。
传统存储器阵列是布置于半导体衬底的表面上的二维(2D)结构。为增大给定面积的存储器容量且减小成本,个别存储器胞元的大小已被减小。然而,个别存储器胞元大小的减小存在技术限制,且因此2D存储器阵列的存储器密度也存在技术限制。作为响应,正在开发三维(3D)存储器结构(例如3D NAND架构半导体存储器装置)以进一步增大存储器密度且降低存储器成本。
此些3D NAND装置通常包含若干存储胞元串,其等串联耦合(例如,漏极到源极)于接近源极的一或多个源极侧选择栅极(SGS)与接近位线的一或多个漏极侧选择栅极(SGD)之间。在一实例中,SGS或SGD可包含一或多个场效晶体管(FET)或金属氧化物半导体(MOS)结构装置等。在一些实例中,串将穿过含有相应字线的多个垂直间隔层次而垂直地延伸。半导体结构(例如,多晶硅结构)可邻近一串存储胞元延伸以为所述串存储胞元形成沟道。在垂直串的实例中,多晶硅结构可呈垂直延伸柱的形式。在一些实例中,串可为“折叠的”且因此相对于U形柱被布置。在其它实例中,多个垂直结构可彼此上下堆叠以形成存储胞元串的堆叠式阵列。
存储器阵列或存储器装置可组合在一起以形成存储器系统的存储卷,例如固态驱动器(SSD)、通用快闪存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。SSD可尤其用作计算机的主存储装置,所述SSD在(举例来说)性能、大小、重量、坚固性、操作温度范围及电力消耗方面比具有移动部分的传统硬驱动器更有优势。举例来说,SSD可具有减少的搜寻时间、等待时间或与磁盘驱动器(例如,机电等)相关联的其它延迟。SSD使用非易失性存储器胞元(例如,快闪存储器胞元)以避免内部电池供电需要,因此使得此驱动器更多功能且更紧凑。
SSD可包含若干个存储器装置(包含若干个裸片或逻辑单元(例如,逻辑单元数目或LUN))且可包含一或多个处理器或者执行操作存储器装置所需的逻辑功能的其它控制器或与外部系统的接口。此些SSD可包含一或多个快闪存储器裸片,所述快闪存储器裸片上包含若干个存储器阵列及外围电路系统。快闪存储器阵列可包含组织成若干个物理页的若干个存储器胞元块。在许多实例中,SSD还将包含DRAM或SRAM(或者其它形式的存储器裸片或其它存储器结构)。SSD可从主机接收与存储器操作相关联的命令,所述存储器操作是例如读取或写入操作以在存储器装置与主机之间传送数据(例如,用户数据及相关联完整性数据,例如错误数据及地址数据等),或者擦除操作以从存储器装置擦除数据。
快闪存储器装置有时因各种原因而发生故障,所述原因包含(举例来说)意外停电、硬件故障、软件错误等。
发明内容
本申请的一个实施例提供一种用于管理快闪存储器的方法,该方法包括:接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据,所述快闪存储器包括若干个页,其中所述若干个页中的第一页包括若干个区段;确定不使用所述第一页的所述区段的一部分时所述第一主机数据是否能被写入所述第一页;响应于确定不使用所述第一页的所述区段的所述部分时所述第一主机数据能被写入所述第一页,产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;将所述第一编程数据单元编程到所述快闪存储器的所述第一页,其中所述第一日志数据被写入到所述第一页的第一区段;及存储在所述第一区段处的所述第一日志数据将在所述第一页的无用单元收集循环中被摒弃的指示。
本申请的另一个实施例提供一种快闪存储器,其包括:快闪存储器,其包括一组可并行编程的页;存储器控制器,其经配置以执行包括以下各项的操作:接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据;确定不使用所述快闪存储器的第一组页的一部分时所述第一主机数据是否能被写入所述第一组页;相应于确定不使用所述第一组页的所述部分时所述第一主机数据能被写入所述第一组页,产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;将所述第一编程数据单元并行地编程到所述快闪存储器的第一组页,其中所述第一组页中的每一者属于若干个可并行编程的块中的不同块,且其中所述第一日志数据被写入到所述第一组页中的第一页;及存储在所述第一页处的所述第一日志数据将在所述第一组页的无用单元收集循环中被摒弃的指示。
本申请的再一个实施例提供一种快闪存储器,其包括:快闪存储器,其包括若干个页,其中所述若干个页中的第一页包括若干个区段;及存储器控制器,其经配置以执行包括以下各项的操作:接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据;及如果不使用所述第一页的所述区段的一部分时,所述第一主机数据能被写入所述第一页,那么:产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;将所述第一编程数据单元编程到所述第一页,其中所述第一日志数据被写入到所述第一页的第一区段;及存储所述第一页的所述第一区段将在所述第一页的无用单元收集循环中被摒弃的指示。
附图说明
在图式(其未必按比例绘制)中,相似编号可在不同视图中描述类似组件。具有不同字母后缀的相似编号可表示类似组件的不同例子。图式通常以实例方式而非限制方式图解说明本文件中所论述的各种实施例。
图1图解说明包含存储器装置的环境的实例。
图2到3图解说明3D NAND架构半导体存储器阵列的实例的示意图。
图4图解说明存储器模块的实例性框图。
图5图解说明快闪存储器的日志数据存储的环境的实例。
图6是图解说明存储器阵列部分的实例性布置的框图。
图7是图解说明存储器阵列部分的另一实例的框图。
图8是图解说明存储器阵列部分的另一实例的框图。
图9是展示可(举例来说)由存储器控制器执行以将日志数据编程到剩余存储子单元的过程流程的一个实例的流程图。
图10是展示可(举例来说)由存储器控制器执行以检索所存储日志数据的过程流程的一个实例的流程图。
图11是展示过程流程的一个实例的流程图,所述过程流程可由存储器控制器执行以(举例来说)将关于重要事件的日志数据存储于存储器装置处。
图12是图解说明可在上面实施一或多个实施例的机器的实例的框图。
具体实施方式
一些快闪存储器装置存储描述快闪存储器的状态的日志数据。如果快闪存储器发生故障,可检索日志数据并使用所述日志数据来实现诊断且在可能情况下校正导致故障的错误的目标。然而,所存储日志数据占用快闪存储器处的存储单元。这可增大快闪存储器的过度预配(overprovisioning),从而增加快闪存储器的花费及大小而不会增加主机数据容量。存储日志数据还可使用额外编程操作来将日志数据写入到快闪存储器,这会因增加等待时间而降低性能。此外,在一些实例中,存储日志数据会增加存储器控制器的复杂性。举例来说,可与主机数据分开地对日志数据进行管理及无用单元收集。此外,在一些实例中,日志记录点会影响测试结果。由于存在这些困难,因此许多快闪存储器存储最少的高级日志数据,而所述高级日志数据的除错作用可为有限的。
本文中所描述的各种实例针对于用于将日志数据及主机数据存储于快闪存储器存储单元处的系统及方法。在一些实例中,存储器控制器用主机数据来将快闪存储器处的存储单元编程,主机数据的大小足够小使得可使用存储单元的少于所有存储子单元来存储主机数据。在存储了主机数据之后“余下”的存储子单元可被称为剩余存储子单元。取决于各种因素(例如主机数据的大小、快闪存储器的架构等),存储器控制器可不将额外主机数据写入到剩余子单元且可将剩余子单元标记为逻辑无效的。在后续无用单元收集循环时,逻辑无效的剩余子单元被摒弃。
有时,存储器控制器将虚拟数据写入到剩余子单元或使所述剩余子单元保持空白。然而,在本文中所描述的各种实例中,存储器控制器将日志数据写入到剩余子单元。日志数据保留在剩余子单元处(且可从剩余子单元检索),举例来说直到对存储单元进行后续无用单元收集循环为止。在对子单元进行无用单元收集循环期间,日志数据被摒弃。以此方式,存储器控制器可(举例来说)利用最小额外过度预配将日志数据存储于快闪存储器处。此外,可通过已对快闪存储器实施的无用单元收集循环来执行与收集日志数据的无用单元相关联的开销。
例如移动电子装置等电子装置(例如,智能电话、平板计算机等)、用于汽车应用的电子装置(例如,汽车传感器、控制单元、驾驶员辅助系统、乘客安全或舒适系统等)以及因特网连接的器具或装置(例如,物联网(IoT)装置等)尤其取决于电子装置的类型、使用环境、性能预期等而具有不同存储需要。
电子装置可被分解成数个主组件:处理器(例如,中央处理单元(CPU)或其它主处理器);存储器(例如,一或多个易失性或非易失性随机存取存储器(RAM)存储器装置,例如动态RAM(DRAM)、移动或低功率双倍数据速率同步DRAM(DDR SDRAM)等);及存储装置(例如,非易失性存储器(NVM)装置,例如快闪存储器、只读存储器(ROM)、SSD、MMC或其它存储器卡结构或组合件等)。在某些实例中,电子装置可包含:用户接口(例如,显示器、触摸屏、键盘、一或多个按键等)、图形处理单元(GPU)、电力管理电路、基带处理器或者一或多个收发器电路等。
图1图解说明包含经配置以经由通信接口进行通信的主机装置105及存储器装置110的环境100的实例。主机装置105或存储器装置110可包含于各种产品150(例如,物联网(IoT)装置(例如,冰箱或其它器具、传感器、电机或致动器、移动通信装置、汽车、无人机等))中以支持产品150的处理、通信或控制。
存储器装置110包含存储器控制器115及存储器阵列120,存储器阵列120包含(举例来说)若干个个别存储器裸片(例如,三维(3D)NAND裸片的堆叠)。在3D架构半导体存储器技术中,对垂直结构进行堆叠,从而增加层次、物理页的数目且因此增大存储器装置(例如,存储装置)的密度。在一实例中,存储器装置110可为离散存储器或主机装置105的存储装置组件。在其它实例中,存储器装置110可为集成电路(例如,系统单芯片(SOC)等)的一部分,与主机装置105的一或多个其它组件堆叠或以其它方式包含在一起。
可使用一或多个通信接口来在存储器装置110与主机装置105的一或多个其它组件之间传送数据,所述通信接口是例如串行高级技术附接(SATA)接口、高速外围组件互连(PCIe)接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口或者一或多个其它连接器或接口。主机装置105可包含主机系统、电子装置、处理器、存储器读卡器或者在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机装置105可为具有参考图12的机器1200所论述的组件中的一些部分或全部的机器。
存储器控制器115可从主机装置105接收指令且可与存储器阵列120进行通信以(例如)将数据传送(例如,写入或擦除)到存储器阵列120的存储器胞元、平面、子块、块或页中的一或多者,或者从所述一或多者传送(例如,读取)数据。存储器控制器115可尤其包含电路系统或固件,所述电路系统或固件包含一或多个组件或集成电路。举例来说,存储器控制器115可包含一或多个存储器控制单元、电路或组件,所述存储器控制单元、电路或组件经配置以跨越存储器阵列120控制存取且在主机装置105与存储器装置110之间提供翻译层。存储器控制器115可包含一或多个输入/输出(I/O)电路、线或接口以将数据传送到存储器阵列120或从存储器阵列120传送数据。存储器控制器115可包含存储器管理器125及阵列控制器135。
存储器管理器125可尤其包含电路系统或固件,例如与各种存储器管理功能相关联的若干个组件或集成电路。出于本说明的目的,将在NAND存储器的上下文中描述实例性存储器操作及管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似存储器操作或管理功能。此类NAND管理功能包含损耗均衡(例如,无用单元收集或回收)、错误检测或校正、块弃置或者一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收到的命令)解析或格式化成装置命令(例如,与存储器阵列的操作相关联的命令等),或者针对阵列控制器135或者存储器装置110的一或多个其它组件而产生装置命令(例如,以实现各个存储器管理功能)。
存储器管理器125可包含一组管理表130,管理表130经配置以维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储器胞元相关联的各种信息)。举例来说,管理表130可包含关于耦合到存储器控制器115的存储器胞元的一或多个块的块龄、块擦除计数、错误历史或者一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果错误计数中的一或多者的所检测错误的数目高于阈值,那么位错误可被称为不可校正位错误。管理表130可尤其维持可校正位错误或不可校正位错误的计数。
阵列控制器135可尤其包含经配置以控制与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器胞元、从所述一或多个存储器胞元读取数据或擦除所述一或多个存储器胞元相关联的存储器操作的电路系统或组件等。存储器操作可基于(举例来说)从主机装置105接收到或由存储器管理器125内部产生的主机命令(例如,与损耗均衡、错误检测或校正等相关联)。
阵列控制器135可包含错误校正码(ECC)组件140,错误校正码组件140可尤其包含ECC引擎或其它电路系统,ECC引擎或其它电路系统经配置以检测或校正与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器胞元或从所述一或多个存储器胞元读取数据相关联的错误。存储器控制器115可经配置以主动地检测并恢复与各种操作或数据存储相关联的所发生错误(例如,位错误、操作错误等),同时维持在主机装置105与存储器装置110之间传送的数据的完整性或维持所存储数据的完整性(例如,使用冗余RAID存储等),且可移除(例如,弃置)故障存储器资源(例如,存储器胞元、存储器阵列、页、块等)以防止未来发生错误。
存储器阵列120可包含数个存储器胞元,所述数个存储器胞元布置于(举例来说)若干个存储单元(包含装置、平面、子块、块或页)中。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592个字节(B)的数据(16,384+2208个字节)、每块1536页、每平面548个块以及每装置4个或多于4个平面。作为另一实例,32GB MLC存储器装置(每胞元存储两个数据位(即,4种可编程状态))可包含每页18,592个字节(B)的数据(16,384+2208个字节)、每块1024页、每平面548个块及每装置4个平面,但所需写入时间是对应TLC存储器装置的一半且编程/擦除(P/E)循环是对应TLC存储器装置的两倍。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其一部分可选择性地在SLC模式中或在所要MLC模式(例如,TLC、QLC等)中操作。
在操作中,数据通常以页为单位被写入到存储器装置110或从存储器装置110读取且以块为单位被擦除。然而,可视需要对更大或更小的存储器胞元群组执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置110的数据传送大小通常被称为页,而主机的数据传送大小通常被称为区段。
尽管数据页可包含若干个用户数据字节(例如,数据有效负载包含若干个数据区段)及其对应元数据,但页大小通常仅指代用于存储用户数据的字节的数目。作为一实例,具有4KB页大小的数据页可包含4KB的用户数据(例如,具有512B区段大小的8个区段)以及与用户数据对应的若干个字节(例如,32B,54B,224B等)的元数据,例如完整性数据(例如,错误检测或校正码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。用于存储元数据等的存储单元或子单元可被称为过度预配的存储单元或子单元。
不同类型的存储器胞元或存储器阵列120可提供不同页大小,或可需要与其相关联的不同元数据量。举例来说,不同存储器装置类型可具有不同位错误率,这可致使确保数据页的完整性所必需的元数据量不同(例如,具有较高位错误率的存储器装置可需要比具有较低位错误率的存储器装置多的错误校正码数据字节)。作为一实例,多电平胞元(MLC)NAND快闪装置的位错误率可高于对应单电平胞元(SLC)NAND快闪装置。如此,MLC装置可需要比对应SLC装置多的错误数据元数据字节。
图2图解说明包含若干个存储器胞元串(例如,第一A0存储器串205A0到第三A0存储器串207A0、第一An存储器串205An到第三An存储器串207An、第一B0存储器串205B0到第三B0存储器串207B0、第一Bn存储器串205Bn到第三Bn存储器串207Bn等)的3D NAND架构半导体存储器阵列200的实例性示意图,所述若干个存储器胞元串被组织成块(例如,块A 201A、块B201B等)及子块(例如,子块A0 201A0、子块An 201An、子块B0 201B0、子块Bn 201Bn等)。存储器阵列200表示将通常以块、装置或存储器装置的其它单元的形式存在的较大数目个类似结构的一部分。
每一存储器胞元串包含在源极线(SRC)235或源极侧选择栅极(SGS)(例如,第一A0SGS 231A0到第三0SGS 233A0、第一An SGS 231An到第三An SGS 233An、第一B0 SGS 231B0到第三B0 SGS 233B0、第一Bn SGS 231Bn到第三Bn SGS 233Bn等)与漏极侧选择栅极(SGD)(例如,第一A0 SGD 226A0到第三A0 SGD 228A0、第一An SGD226An到第三An SGD 228An、第一B0SGD 226B0到第三B0 SGD 228B0、第一Bn SGD226Bn到第三Bn SGD 228Bn等)之间源极到漏极地沿Z方向堆叠的若干个电荷存储晶体管(例如,浮动栅极晶体管、电荷陷捕结构等)层次。3D存储器阵列中的每一存储器胞元串可沿着X方向被布置为数据线(例如,位线(BL)BL0220到位线BL2 222)及沿着Y方向被布置为物理页。
在物理页内,每一层次表示存储器胞元行,且每一存储器胞元串表示列。子块可包含一或多个物理页。块可包含若干个子块(或物理页)(例如128个、256个、384个等)。尽管本文中图解说明为具有两个块,每一块具有两个子块,每一子块具有单个物理页,每一物理页具有三个存储器胞元串,且每一串具有8个存储器胞元层次,但在其它实例中,存储器阵列200可包含更多或更少的块、子块、物理页、存储器胞元串、存储器胞元或层次。举例来说,每一存储器胞元串可视需要包含更多或更少层次(例如,16个、32个、64个、128个等)以及位于电荷存储晶体管(例如,选择栅极、数据线等)上方或下方的一或多个额外半导体材料层次。作为一实例,48GB TLC NAND存储器装置可包含每页18,592个字节(B)的数据(16,384+2208个字节)、每块1536页、每平面548个块以及每装置4个或多于4个平面。
存储器阵列200中的每一存储器胞元包含耦合到(例如,电连接到或以其它方式操作地连接到)存取线(例如,字线(WL)WL00 210A到字线WL70 217A、字线WL01 210B到字线WL71 217B等)的控制栅极(CG),所述存取线视需要共同耦合跨越特定层次或层次的一部分的控制栅极(CG)。可使用相应存取线来存取或控制3D存储器阵列中的特定层次及因此存取或控制串中的特定存储器胞元。可使用各个选择线来接入选择栅极群组。举例来说,可使用A0 SGD线SGDA0 225A0来接入第一A0 SGD 226A0到第三A0 SGD 228A0,可使用An SGD线SGDAn225An来接入第一An SGD 226An到第三An SGD 228An,可使用B0 SGD线SGDB0 225B0来接入第一B0 SGD 226B0到第三B0 SGD 228B0,且可使用Bn SGD线SGDBn 225Bn来接入第一Bn SGD226Bn到第三Bn SGD 228Bn。可使用栅极选择线SGS0 230A来接入第一A0 SGS 231A0到第三A0SGS 233A0及第一An SGS 231An到第三An SGS 233An,且可使用栅极选择线SGS1230B来接入第一B0 SGS 231B0到第三B0 SGS 233B0及第一Bn SGS 231Bn到第三Bn SGS 233Bn
在一实例中,存储器阵列200可包含若干个半导体材料(例如,多晶硅等)层级,所述半导体材料层级经配置以耦合阵列的每一存储器胞元的控制栅极(CG)或相应层次的选择栅极(或者CG或选择栅极的一部分)。可使用位线(BL)与选择栅极等的组合来存取、选择或控制阵列中的特定存储器胞元串,且可使用一或多个存取线(例如,字线)来存取、选择或控制特定串中的一或多个层次处的特定存储器胞元。
图3图解说明NAND架构半导体存储器阵列300的一部分的实例性示意图,存储器阵列300包含:多个存储器胞元302,其被布置成串(例如,第一串305到第三串307)及层次(例如,被图解说明为相应字线(WL)WL0 310到WL7 317、漏极侧选择栅极(SGD)线325、源极侧选择栅极(SGS)线330等)的二维阵列;以及感测放大器或装置360。举例来说,存储器阵列300可图解说明3D NAND架构半导体存储器装置的存储器胞元的一个物理页的一部分的实例性示意图,例如图2中所图解说明。
使用相应源极侧选择栅极(SGS)(例如,第一SGS 331到第三SGS 333)来将每一存储器胞元串耦合到源极线(SRC),且使用相应漏极侧选择栅极(SGD)(例如,第一SGD 326到第三SGD 328)来将每一存储器胞元串耦合到相应数据线(例如,第一位线(BL)BL0 320到第三位线BL2 322)。尽管在图3的实例中图解说明为具有8个层次(例如,使用字线(WL)WL0310到字线WL7 317)及三个数据线(BL0 326到BL2 328),但其它实例可视需要包含具有更多或更少层次或数据线的存储器胞元串。
在NAND架构半导体存储器阵列中,例如实例性存储器阵列300,可通过感测与含有选定存储器胞元的特定数据线相关联的电流变化或电压变化来存取选定存储器胞元302的状态。可使用一或多个驱动器来存取(例如,通过控制电路、一或多个处理器、数字逻辑等)存储器阵列300。在一实例中,一或多个驱动器可通过取决于期望对特定存储器胞元或一组存储器胞元执行的操作类型而将特定电位驱动到一或多个数据线(例如,位线BL0到BL2)、存取线(例如,字线WL0到WL7)或选择栅极来激活所述特定存储器胞元或所述一组存储器胞元。
为将数据编程到或写入到存储器胞元,可将编程电压(Vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,WL4)且因此施加到耦合到所述选定字线的每一存储器胞元的控制栅极(例如,耦合到WL4的存储器胞元的第一控制栅极(CG)341到第三控制栅极343)。编程脉冲可(举例来说)以15V或接近15V开始,且在某些实例中,可在每一编程脉冲施加期间在量值上增大。虽然编程电压被施加到选定字线,但可将例如接地电位(例如,Vss)等电位施加到作为编程目标的存储器胞元的数据线(例如,位线)及衬底(及因此源极与漏极之间的沟道),从而将电荷从沟道转移(例如,直接注入或福勒-诺德海姆(Fowler-Nordheim)(FN)隧穿等)到目标存储器胞元的浮动栅极。
相比来说,可将通路电压(Vpass)施加到具有并非编程目标的存储器胞元的一或多个字线,或可将禁止电压(例如,Vcc)施加到具有并非编程目标的存储器胞元的数据线(例如,位线),(举例来说)以禁止电荷从沟道转移到此些非目标存储器胞元的浮动栅极。通路电压可取决于(举例来说)所施加通路电压与作为编程目标的字线的接近度而变化。禁止电压可包含相对于接地电位(例如,Vss)来说的供电电压(Vcc),例如来自外部源或供应器(例如,电池、AC/DC转换器等)的电压。
作为一实例,如果将编程电压(例如,15V或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)等电位,从而将电荷从目标存储器胞元的浮动栅极转移(例如,直接注入或福勒-诺德海姆隧穿等)到沟道。
图4图解说明存储器装置400的实例性框图,存储器装置400包含:存储器阵列402,其具有多个存储器胞元404;及一或多个电路或组件,其用以提供与存储器阵列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中的一或多者传送(例如,读取)数据。行解码器412及列解码器414可从地址线416接收地址信号(A0到AX)并对地址信号进行解码,可确定对存储器胞元404中的哪些进行存取,且可将信号提供到存取线406中的一或多者(例如,多个字线(WL0到WLm)中的一或多者)或第一数据线410中的一或多者(例如,多个位线(BL0到BLn)中的一或多者),例如上文所描述。
存储器装置400可包含例如感测放大器420等感测电路系统,所述感测电路系统经配置以使用第一数据线410来确定存储器胞元404上的数据的值(例如,读取),或确定待写入到存储器胞元404的数据的值。举例来说,在一串选定存储器胞元404中,感测放大器420中的一或多者可响应于经由一串选定数据线410流动于存储器阵列402中的读取电流而读取选定存储器胞元404中的逻辑电平。
在存储器装置400外部的一或多个装置可使用I/O线(DQ0到DQN)408、地址线416(A0到AX)或控制线432来与存储器装置400进行通信。输入/输出(I/O)电路426可根据(举例来说)控制线432及地址线416使用I/O线408来将数据值传送进或传送出存储器装置400,例如传送进或传送出页缓冲器422或存储器阵列402。页缓冲器422可在从在存储器装置400外部的一或多个装置接收到的数据被编程到存储器阵列402的相关部分中之前存储所述数据,或可在从存储器阵列402读取的数据被传输到存储器装置400外部的一或多个装置之前存储所述数据。
列解码器414可接收地址信号(A0到AX)并将所述地址信号解码成一或多个行选择信号(CSEL1到CSELn)。选择器424(例如,选择电路)可接收列选择信号(CSEL1到CSELn)并选择页缓冲器422中表示待从存储器胞元404读取或被编程到存储器胞元404中的数据值的数据。可使用第二数据线418在页缓冲器422与I/O电路426之间传送选定数据。
存储器控制单元430可从外部源或供应器(例如,内部或外部电池,AC/DC转换器等)接收正供电信号及负供电信号,例如供电电压(Vcc)434及负供电(Vss)436(例如,接地电位)。在某些实例中,存储器控制单元430可包含调节器428以在内部提供正供电信号或负供电信号。
图5图解说明快闪存储器的日志数据存储的环境500的实例。环境500包含可与图1的主机装置105类似的主机装置505。主机装置505包含可与图1的存储器装置110类似的存储器装置510。举例来说,存储器装置510包含存储器阵列520及存储器控制器515。存储器控制器515包含存储器管理器525,存储器管理器525包含一或多个管理表530。存储器控制器还包含(举例来说)可管理存储器阵列520的阵列控制器535,如本文中所描述。任选地,阵列控制器535包含ECC组件540。
存储器阵列520包含实例性存储单元550A、550B、550N。尽管展示了三个存储单元550A、550B、550N,但可使用任何适合数目个存储单元。实例性存储单元550A包含存储子单元552A、552B、552N-1、552N。尽管展示了四个存储子单元552A、552B、552N-1、552N,但各个存储单元550A、550B、500N可具有任何适合数目个存储子单元。本文中参考图6到8描述存储单元及存储子单元的实例性物理实施方案。
主机装置505可将主机数据560提供到存储器装置510。主机数据560可为由主机装置505产生的任何适合数据。存储器控制器515可接收主机数据560且确定主机数据560是否小于剩余阈值。剩余阈值可指示主机数据560的将至少部分地填充存储单元550A、550B、550N的所有存储子单元552A、552B、554N-1、552N的最小大小。举例来说,如果主机数据560小于剩余阈值,那么存储子单元552A、552B、554N-1、552N中的至少一者是将不包含任何主机数据的剩余存储子单元。存储器控制器515可用日志数据558来补充主机数据560以形成包含主机数据560及日志数据558两者的编程数据单元。存储器控制器可将编程数据单元编程到存储单元550A。
在图5的实例中,主机数据560低于剩余阈值,使得至少存储子单元552N-1及557N变为剩余子单元。举例来说,存储子单元552A、552B分别存储主机数据部分554A及554B。存储子单元552N-1及552N是分别存储日志数据部分556A、556B的剩余存储子单元。尽管图5中展示两个剩余存储子单元552N-1及552N,但在不同实例及实施方案中可存在任何适合数目个剩余存储子单元。如本文中所描述,存储器控制器515可将存储子单元552N-1、552N标记为逻辑无效的。
日志数据558可包含描述存储器装置510的任何适合数据。实例性日志数据可包含(举例来说)管理表530中的一或多者的全部或一部分。举例来说,日志数据可包括描述存储器装置510的逻辑块映射的全部或一部分。逻辑块映射可描述主机数据的逻辑地址与主机数据在存储器阵列520处的物理地址之间的关是。举例来说,逻辑块映射可为管理表530的全部或一部分。其它日志数据可包含(举例来说)描述存储器装置处无用单元收集操作的状态的无用单元收集状态数据、存储器阵列中的一或多个检查点的位置、关于引起日志刷新的事件的信息、存储器阵列520处的编程操作的记录、描述存储器阵列520的可变状态等。
存储器控制器515还经编程以在存储器阵列520处执行无用单元收集循环562。无用单元收集循环562可包含合并存储于存储单元550A、550B、550N处的当前主机数据。举例来说,如本文中所描述,主机数据通常以页为单位被编程到存储器装置510且以块为单位被擦除,块包含多个页。因此,当存储于第一页处的主机数据被修改时,存储器控制器515可将经修改主机数据写入到第二页且(举例来说)通过将第一页是逻辑无效的指示写入到逻辑块映射或其它管理表530来将所述页标记为逻辑无效的。
在无用单元收集循环562期间,存储器控制器515可将存储于块处的主机数据移动到新块的页且擦除所述块。当块被擦除时,存储于逻辑无效页或区段处的数据被摒弃。在一些实例中,周期性地执行无用单元收集循环562。举例来说,可按照给定时间周期(例如,一周一次、一天一次、一小时一次等)执行无用单元收集循环562。在其它实例中,当对存储器装置510做出阈值数目个交易时,执行无用单元收集循环562。在其它实例中,当存储器阵列520处存在碎片的阈值电平时,执行无用单元收集循环562。可对整个存储器阵列520及/或对少于全部存储器阵列520(例如,平面、块等)执行无用单元收集循环562。
可(举例来说)响应于对日志数据的请求而将存储于剩余存储子单元(例如552N-1、552N)处的日志数据传回到主机装置505或其它适合诊断装置。当执行了无用单元收集循环562时,存储于存储器阵列520的经受无用单元收集循环562的部分中的逻辑无效剩余存储子单元552N-1、552N处的日志数据被摒弃。以此方式,无用单元收集循环562可管理写入到剩余存储子单元552N-1、552N的日志数据,而不给存储器装置510添加(显著)开销。无用单元收集循环562可经配置而以存留可能用于对故障进行除错的日志数据的间隔来执行。
图6是图解说明存储器阵列部分600的一个实例性布置的框图。举例来说,存储器阵列部分600可为图1的存储器阵列120或图5的存储器阵列520的全部或一部分。存储器阵列部分600包含一组可并行编程的块,标注为块0、块1、块2、块3、块N。尽管展示了五个块,但存储器阵列部分600可包含任何适合数目个块。块0到块N包含各个页,例如所展示的页0到页1。举例来说,块0可包含页0及页1,块1可包含页0及页1等。尽管图6中仅展示两个页,但各个实例存储器阵列可包含不同数目个页。
由于块0到块N是可并行编程的,因此存储器控制器(例如,存储器控制器115或515)可在同一忙循环中将来自每块0到块N的页同时编程。举例来说,可在同一忙循环中将来自块0的页0、来自块1的页0、来自块2的页0、来自块3的页0、来自块N的页0等编程。可在同一忙循环期间被编程的一组页可被称为一组可并行编程的页。
在图6的实例中,存储单元可为一组可并行编程的页,且存储子单元可为来自一组可并行编程的页中的若干个别页。一组可并行编程的页的剩余阈值可为将至少部分地填充一组可并行编程的页中的所有页的数据量。举例来说,低于剩余阈值的主机数据可不填充一组可并行编程的页中的至少一页。在图6的实例中,主机数据2大于或等于剩余阈值。如所展示,主机数据2的部分存储于一组可并行编程的页(包含来自块0到块N的页)中的全部页处。然而,主机数据1小于剩余阈值。如所指示,块N的至少页0是包含日志数据的剩余页。
图7是图解说明存储器阵列部分700的另一实例的框图。举例来说,存储器阵列部分700可为图1的存储器阵列120或图5的存储器阵列520的全部或一部分。存储器阵列部分700包含标注为0到N的一组块。跨越块0到N展示了两个页,包含上部页及下部页。在本文中所描述的使用可表示多于两种经编程状态中的一者的快闪存储器胞元(例如,MLC、TLC等)的存储器阵列的实例中可包含上部页及下部页。举例来说,在图7中,块0的下部页及块0的上部页可实施于同一物理页处,其中块0的下部页由存储于物理页的对应存储器胞元处的最低有效位表示,且块0的上部页由物理页的对应存储器胞元处的最高有效位表示。如果使用TLC或更高电平胞元,额外附加页可利用物理页的存储器胞元处的其它位。
在一些实例中,存储器控制器115、515可实施单遍次编程,在所述单遍次编程中块处的互补页同时被编程。互补页可包含上部页、下部页,且任选地包含实施于相同物理存储器胞元处的一或多个附加页。如果将主机数据编程到一组互补页,所述互补页中的至少一者不被编程,那么返回及将未经编程剩余页编程可为复杂的且在一些情形中是不可能的。
在图7的实例中,存储单元可为一组互补页。存储子单元可为来自所述一组互补页的若干个别页。剩余阈值可为将填充一组互补页中的每一页的至少一部分的大小。那么在图7的MLC实例中,存储单元大小可为一个页的大小。举例来说,如果主机数据小于或等于一个页的大小,那么可将所述主机数据编程到上部页或下部页,且所述一组互补页中的另一页可为剩余页。在图7的实例中,块0处的下部页及上部页被以主机数据0的部分编程,其中主机数据0大于一个页的大小,但小于上部页与下部页的和。块1处的主机数据1、块2处的主机数据2及块N处的主机数据N也是此情形。然而在实例性块N处,所图解说明的主机数据N小于或等于下部页的大小。因此,主机数据N被编程到块3的下部页,且块3的上部页是编程有日志数据的剩余页。
图8是图解说明存储器阵列部分800的另一实例的框图。部分800包含单个页,即页N,页N包含四个区段,即区段0到区段3。在图8的实例中,存储单元可为页且存储子单元可为页处的区段。剩余阈值可为将至少部分地填充页的所有区段的大小。在图8的实例中,主机数据存储于区段0处,而区段1到区段3是包含日志数据的剩余区段。
在一些实例中,例如110、510等存储器装置可同时使用不同存储单元及子单元来实施日志数据存储。举例来说,存储器阵列部分700的块0到块N可为可并行编程的。因此,如果将被编程到一组特定互补页的主机数据将使所述一组互补页中的一或多者空白,或如果将被写入到一组可并行编程的页的主机数据将使可并行编程的页中的一或多者空白,那么可出现剩余页。此外,在一些实例中,图6及/或7的个别页可为存储单元,所述存储单元包含以图8中所展示的方式作为存储子单元的区段。
图9是展示过程流程900的一个实例的流程图,过程流程900可由(举例来说)存储器控制器(例如,存储器控制器115或存储器控制器515)执行以将日志数据编程到剩余存储子单元。在操作902处,存储器控制器可从主机装置(例如,主机装置105或主机装置505)接收编程请求。编程请求可包含待被写入到存储器装置(例如,存储器装置110或存储器装置510)的主机数据。在操作904处,存储器控制器可确定主机数据的大小是否小于剩余阈值。如果否,那么在操作906处存储器控制器可将主机数据编程到存储器装置的存储单元。如果主机数据的大小小于存储单元大小,那么在操作908处存储器控制器可检索日志数据。检索日志数据可包含(举例来说)在存储器控制器内获得日志数据。举例来说,存储器控制器可检索逻辑块映射、管理表等的全部或一部分,如本文中所描述。任选地,存储器控制器可产生包括主机数据及所检索日志数据的编程数据单元。举例来说,编程数据单元可存在于存储器装置的RAM中,在用于待被存储于存储器阵列处的数据的寄存器或一组寄存器处等。
在操作910处,存储器控制器可将存储器装置处的存储单元编程为包含主机数据及所检索日志数据。存储单元的存储子单元中的至少一者可为剩余存储子单元。剩余子单元中的至少一者可被以所检索日志数据编程。在操作912处,存储器控制器可存储包含日志数据的一或多个存储子单元是逻辑无效的指示。所述指示可被存储(举例来说)到存储器装置的逻辑块映射或其它管理表。
图10是展示过程流程1000的一个实例的流程图,过程流程1000可(举例来说)由存储器控制器(例如,存储器控制器115或存储器控制器515)执行以检索所存储的日志数据。在操作1002处,存储器控制器可接收日志数据请求。可从例如主机装置505等主机装置接收日志数据请求。在一些实例中,可从用于(举例来说)在主机装置处诊断问题的另一装置接收日志数据请求。在操作1004处,存储器控制器515可读取包含日志数据的存储单元及/或存储子单元。举例来说,存储器控制器可保存管理表,所述管理表指示包含日志数据(例如,在无用单元收集循环时尚未被摒弃的日志数据)的存储单元及/或存储子单元。在操作1006处,存储器控制器可发送包含所检索日志数据的日志数据回复消息。
图11是展示过程流程1100的一个实例的流程图,过程流程1100可由存储器控制器(例如,存储器控制器115或515)执行以将关于重要事件的日志数据存储于存储器装置处。在操作1102处,存储器控制器可将日志数据存储于剩余存储子单元处,举例来说,如本文中关于过程流程900所描述。在操作1104处,存储器控制器可确定是否已发生重要事件。重要事件可包含表征存储器装置的故障的任何事件或者事件的指示。举例来说,当存储器控制器确定电力中断已发生或即将发生时,可发生重要事件。其它实例性重要事件可包含:相关数据结构之间的内部不一致性、状态变量的无效值的检测、数据或元数据毁坏、块或其它硬件故障等。
如果未发生重要事件,那么在操作1102处存储器控制器可继续存储日志数据。如果在操作1104处检测到重要事件,那么在操作1106处存储器控制器可产生额外剩余存储子单元。额外剩余存储子单元可以任何适合方式来产生。举例来说,存储器控制器可经由多个忙循环将对主机数据的编程隔开以便留出额外剩余存储子单元来存储日志数据。在操作1108处,存储器控制器可将额外日志数据存储于剩余存储子单元处。举例来说,存储器控制器可存储比操作1102处所存储的多的日志数据。额外日志数据可包含:存储器装置处的更多历史交易、描述存储器装置的额外变量或数量、存储器阵列的逻辑块映射等。以此方式,如果重要事件确实导致存储器装置的故障,那么额外日志数据可提供对故障的额外说明。在操作1110处,存储器控制器可确定在操作1104处检测到的重要事件是否仍存在。如果是,那么存储器控制器可返回到操作1106。如果否,那么存储器控制器可返回到操作1102。
图12图解说明实例性机器1200的框图,可在所述实例性机器上执行本文中所论述的技术(例如,方法)中的任一者或多者。在替代实施例中,机器1200可作为独立装置操作或可连接(例如,网络连接)到其它机器。在网络连接部署中,机器1200可以服务器机器、客户端机器或两者在服务器-客户端网络环境中操作。在一实例中,机器1200可在对等(P2P)(或其它分布式)网络环境中充当对等机器。机器1200可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、web器具、IoT装置、汽车系统或者能够执行规定将由所述机器采取的动作的指令(循序或以其它方式)的任何机器。此外,虽然仅图解说明单个机器,但术语“机器”还应被视为包含个别地或联合地执行一组(或多组)指令以执行本文中所论述方法中的任一者或多者(例如云计算、软件即服务(SaaS)、其它计算机群集配置)的任何机器集合。
本文中所描述的实例可包含逻辑、组件、装置、封装或机构,或者可通过逻辑、组件、装置、封装或机构来操作。电路系统(circuitry)是被实施为包含硬件(例如,简单电路、门、逻辑等)的有形实体的电路的集合(例如,组)。电路系统成员可随时间而为灵活的且具有潜在硬件可变性。电路系统包含可在操作时单独地或组合地执行特定任务的部件。在一实例中,电路系统的硬件可被设计成不变以执行特定操作(例如,硬连线)。在一实例中,电路系统的硬件可包含可变连接物理组件(例如,执行单元、晶体管、简单电路等),所述可变连接物理组件包含经物理修改(例如,磁性地、电性地、可移动地放置不变大量粒子等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,硬件组分的潜在电特性(举例来说)从绝缘体到导体有改变,或反之亦然。指令在处于操作中时经由可变连接使得参与的硬件(例如,执行单元或加载机构)能够以硬件形式形成电路系统的部件以实施特定任务的部分。因此,当装置正在操作时,计算机可读媒体以通信方式耦合到电路系统的其它组件。在一实例中,物理组件中的任一者可用于多于一个电路系统的多于一个部件中。举例来说,在操作下,执行单元可在一个时间点用于第一电路系统的第一电路中,且在不同时间由第一电路系统中的第二电路再次使用,或由第二电路系统中的第三电路再次使用。
机器(例如,计算机系统)1200(例如,主机装置105、存储器装置110等)可包含硬件处理器1202(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或上述各项的任何组合,例如存储器控制器115等)、主存储器1204及静态存储器1206,上述各项的一些或全部可经由互连链路(例如,总线)1208彼此进行通信。机器1200可进一步包含显示单元1210、字母数字输入装置1212(例如,键盘)及用户接口(UI)导航装置1214(例如,鼠标)。在一实例中,显示单元1210、输入装置1212及UI导航装置1214可为触屏显示器。机器1200可另外包含存储装置(例如,驱动单元)1216、信号产生装置1218(例如,扬声器)、网络接口装置1220及一或多个传感器1217,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器1200可包含与一或多个外围装置(例如,打印机、读卡器等)进行通信或控制所述一或多个外围装置的输出控制器1228,例如串行连接(例如,通用串行总线(USB)、并行连接或者其它有线或无线连接(例如,红外(IR)、近场通信(NFC)等)。
存储装置1216可包含机器可读媒体1222,所述机器可读媒体上存储由本文中所描述的技术或功能中的任一者或多者体现或利用的一或多组数据结构或指令1224(例如,软件)。指令1224还可在其由机器1200执行期间完全或至少部分地驻存于主存储器1204内、静态存储器1206内或硬件处理器1202内。在一实例中,硬件处理器1202、主存储器1204、静态存储器1206或存储装置1216的一个或任何组合可构成机器可读媒体1222。
虽然机器可读媒体1222被图解说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1224的单个媒体或多个媒体(例如,集中式或分布式数据库或者相关联高速缓冲存储器及服务器)。
术语“机器可读媒体”可包含以下任何媒体:能够存储、编码或载运由机器1200执行的指令,且致使机器1200执行本发明的技术中的任一者或多者,或能够存储、编码或载运由此类指令使用或与此类指令相关联的数据结构。非限制性机器可读媒体实例可包含固态存储器以及光学媒体及磁性媒体。在一实例中,大容量机器可读媒体包括具有质量不变(例如,稳定)的多个粒子的机器可读媒体。因此,大容量机器可读媒体并非是暂时性传播信号。大容量机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器装置;磁盘,例如内部硬盘及可装卸磁盘;磁光盘;以及CD-ROM及DVD-ROM磁盘。
存储于存储装置1221上的指令1224(例如,软件、程序、操作系统(OS)等)或其它数据可由存储器1204存取以供处理器1202使用。存储器1204(例如,DRAM)通常是快速的,但具易失性,且因此是与存储装置1221不同的存储装置类型(例如,SSD),所述存储装置适合于长期存储,包含在处于“关断”状况中时。由用户或机器1200使用的指令1224或数据通常被加载于存储器1204中以供处理器1202使用。当存储器1204变满时,可分配来自存储装置1221的虚拟空间以补充存储器1204;然而,由于存储装置1221通常比存储器1204慢,且写入速度通常比读取速度至少慢两倍,因此使用虚拟存储器可因存储装置等待时间(与存储器1204(例如DRAM)相比)而会极大地减弱用户体验。此外,将存储装置1221用于虚拟存储器可极大地减弱存储装置1221的可使用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如,
Figure GDA0003045619310000201
内核特征“ZRAM”)使用存储器的一部分作为压缩块存储以避免对存储装置1221进行分页。分页发生于压缩块中直到其必须将此数据写入到存储装置1221为止。虚拟存储器压缩会增大存储器1204的可使用大小,同时会减小对存储装置1221的损耗。
经优化以用于移动电子装置的存储装置或移动存储装置通常包含MMC固态存储装置(例如,微型安全数字(microSDTM)卡等)。MMC装置包含与主机装置之间的若干个并行接口(例如,8位并行接口)且通常是可从主机装置装卸且分离的组件。相比来说,eMMCTM装置附接到电路板且被视为主机装置的组件,其中读取速度可与基于串行ATATM(串行AT(高级技术)附接或SATA)的SSD装置媲美。然而,对移动装置性能的要求继续提高,例如以完全满足虚拟或增强现实装置,从而利用不断增加的网络速度等。响应于此要求,存储装置已从并行通信接口转变到串行通信接口。通用快闪存储(UFS)装置(包含控制器及固件)使用具有专用读取/写入路径的低电压差分传信(LVDS)串行接口来与主机装置进行通信,从而进一步提高更大读取/写入速度。
可进一步利用若干个传送协议(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一者、经由网络接口装置1220、使用传输媒体、在通信网络1226上传输或接收指令1224。实例性通信网络可包含:局域网(LAN)、广域网(WAN)、封包数据网络(例如,因特网)、移动电话网络(例如,蜂窝式网络)、普通旧式电话(POTS)网络及无线数据网络(例如,已知为
Figure GDA0003045619310000211
的电气与电子工程师协会(IEEE)802.11标准家族、已知为
Figure GDA0003045619310000212
的IEEE802.16标准家族)、IEEE 802.15.4标准家族、对等(P2P)网络等。在一实例中,网络接口装置1220可包含一或多个物理插口(例如,以太网插口、同轴插口或电话插口)或者一或多个天线以连接到通信网络1226。在一实例中,网络接口装置1220可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者来进行无线通信。术语“传输媒体”应被视为包含能够存储、编码或载运由机器1200执行的指令的任何无形媒体,且包含数字或模拟通信信号或者其它无形媒体以促进此软件的通信。
以上详细说明包含对形成所述详细说明的一部分的附图的参考。所述图式以图解说明方式展示其中可实践本发明的特定实施例。这些实施例在本文中还称为“实例”。除了所展示或所描述的那些元件之外,此些实例还可包含若干元件。然而,本发明人还预期仅提供所展示或所描述的那些元件的实例。此外,本发明人还预期使用关于特定实例(或者其一或多个方面)或关于本文中所展示或所描述的其它实例(或者其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或者其一或多个方面)。
在此文件中,使用在专利文件中常见的术语“一(a或an)”来包含一个或多于一个,此独立于“至少一个”或者“一或多个”的任何其它例子或使用。在此文件中,除非另有指示,否则使用术语“或”来指代非排他性或,使得“A或B”可包含“A但非B”、“B但非A”以及“A及B”。在所附权利要求书中,将术语“包含”及“其中(in which)”用作相应术语“包括”及“其中(wherein)”的通俗英语等效形式。此外,在所附权利要求书中,术语“包含”及“包括”是开放式的,即包含除了在技术方案中列举于此术语之后的那些元素以外的元素的系统、装置、物品或过程仍被视为在所述技术方案的范围内。此外,在所附权利要求书中,术语“第一”、“第二”及“第三”等仅用作标记,且并不打算对其对象施加编号要求。
在各种实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含物理电路系统或存储于物理装置上的固件等。如本文中所使用,“处理器”意指任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(DSP)或者任何其它类型的处理器或处理电路,包含处理器或多核心装置的群组。
如本文件中所使用的术语“水平”被定义为平行于常规平面或衬底(例如下伏于晶片或裸片之下的衬底)的表面的平面,而不论所述衬底在任何时间的实际定向如何。术语“垂直”是指垂直于如上文所定义的水平面的方向。例如“在…上”、“在…上方”及“在…下方”等前置词是相对于位于衬底的顶部或经暴露表面上的常规平面或表面而界定,而无论衬底的定向如何;并且“在…上”是旨在表明一个结构相对于另一结构的直接接触,所述一个结构“在”所述另一结构“上”(不包含明确相反指示);术语“在…上方”及“在…下方”明确地旨在识别结构(或层、特征等)的相对放置,此明确地包含但不限于所识别结构之间的直接接触,除非如此具体识别。类似地,术语“在…上方”及“在…下方”并不仅限于水平定向,这是因为如果在某一时间点的一结构是所论述构造的最外部分,甚至如果此结构相对于所参考结构垂直地延伸而非在水平定向上,那么所述结构可“在”所述所参考结构“上方”。
术语“晶片”及“衬底”在本文中一般用于指代在其上形成集成电路的任何结构,且还指代在集成电路制作的各个阶段期间的此些结构。因此,以下详细说明不应被视为具有限制意义,且各种实施例的范围仅由所附权利要求书连同授权此权利要求书的等效形式的全部范围来定义。
根据本发明且本文中所描述的各种实施例包含利用垂直存储器胞元结构(例如,NAND存储器胞元串)的存储器。如本文中所使用,将相对于上面形成有存储器胞元的衬底的表面来对方向性形容词加以理解(即,垂直结构将被理解为远离衬底表面延伸,垂直结构的底端将被视为最接近衬底表面的端,且垂直结构的顶端将被视为距衬底表面最远的端)。
如本文中所使用,方向性形容词(例如水平、垂直(vertical)、法向、平行、垂直(perpendicular)等)可指代相对定向,且不旨在需要严格符合于特定几何性质,除非另有说明。举例来说,如本文中所使用,垂直结构不需要严格地垂直于衬底的表面,而是可大致垂直于衬底的表面,且可与衬底的表面形成锐角(例如,介于60°与120°之间等)。
在本文中所描述的一些实施例中,可将不同掺杂配置施加到源极侧选择栅极(SGS)、控制栅极(CG)及漏极侧选择栅极(SGD),在此实例中所述栅极中的每一者可由多晶硅形成或至少包含多晶硅,从而使得这些层次(例如,多晶硅等)可在暴露于蚀刻溶液时具有不同蚀刻速率。举例来说,在于3D半导体装置中形成整体柱的过程中,SGS及CG可形成凹部,而SGD可不太凹陷或甚至不凹陷。因此,这些掺杂配置可使得能够通过使用蚀刻溶液(例如,四甲基氢氧化铵(TMCH))来向3D半导体装置中的相异层次(例如,SGS、CG及SGD)中进行选择性蚀刻。
如本文中所使用,操作存储器胞元包含从所述存储器胞元读取、向所述存储器胞元写入或擦除所述存储器胞元。将存储器胞元置于预期状态中的操作在本文中被称为“编程”,且可包含向存储器胞元写入或从存储器胞元擦除(例如,存储器胞元可被编程到经擦除状态)。
根据本发明的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设定、调整、计算、改变、清除、传递、调适、导出、定义、利用、修改、施加等)大量损耗循环或损耗状态(例如,记录损耗循环、在存储器装置的操作发生时对所述操作进行计数、在存储器装置的操作起始时跟踪所述操作、评估与损耗状态对应的存储器装置特性等)。
根据本发明的一或多个实施例,存储器存取装置可经配置以将关于每一存储器操作的损耗循环信息提供到存储器装置。存储器装置控制电路系统(例如,控制逻辑)可经编程以补偿与损耗循环信息对应的存储器装置性能改变。存储器装置可接收损耗循环信息,且响应于所述损耗循环信息而确定一或多个操作参数(例如,值、特性)。
应理解,当元件被称为“在”另一元件“上”、“连接到”另一元件或“与”另一元件“耦合”时,所述元件可直接在另一元件上、与另一元件直接连接或直接耦合,或者可存在介入元件。相比来说,当元件被称为“直接在”另一元件“上”、“直接连接到”另一元件或“与”另一元件“直接耦合”时,不存在介入元件或介入层。如果两个元件在图式中被展示为一条线连接所述两个元件,那么两个元件可耦合或直接耦合,除非另有指示。
本文中所描述的方法实例可至少部分地为机器或计算机实施的。一些实例可包含被编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以对电子装置进行配置以执行在以上实例中所描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言码、高级语言码等等。此代码可包含用于执行各种方法的计算机可读指令。代码可形成计算机程序产品的部分。此外,代码可在(例如)执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含(但不限于)硬磁盘、可装卸磁盘、可装卸光盘(例如,压缩光盘及数字视频磁盘)、磁带盒、存储器卡或存储器条、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置等等。
实例1是一种用于管理快闪存储器的方法,所述方法包括:接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据,所述快闪存储器包括若干个存储单元,其中所述若干个存储单元中的第一存储单元包括若干个存储子单元;如果所述第一主机数据小于剩余阈值,那么:产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;将所述编程数据单元编程到所述快闪存储器的所述第一存储单元,其中所述第一日志数据被写入到所述若干个存储子单元中的第一存储子单元;及存储所述第一存储子单元无效的指示。
在实例2中,实例1的标的物任选地包含:检测与所述快闪存储器相关的重要事件;产生包括描述所述快闪存储器的第二日志数据的第二编程数据单元;将所述第二编程数据单元至少部分地编程到第二存储子单元,其中所述第二存储子单元属于所述若干个存储单元中的第二存储单元;及存储所述第二存储子单元无效的指示。
在实例3中,实例2的标的物任选地包含:其中检测所述重要事件包括检测对所述快闪存储器的电力中断。
在实例4中,实例2到3中的任一者或多者的标的物任选地包含:其中所述第二日志数据包括描述所述快闪存储器的逻辑块映射的至少一部分。
在实例5中,实例1到4中的任一者或多者的标的物任选地包含:其中所述第一存储单元是所述快闪存储器的页,且所述第一存储子单元是所述页的区段。
在实例6中,实例1到5中的任一者或多者的标的物任选地包含:其中所述快闪存储器包括若干个可并行编程的页,其中所述第一存储单元是所述若干个可并行编程的页,且其中所述第一存储子单元是所述若干个可并行编程的页中的第一页。
在实例7中,实例6的标的物任选地包含:其中所述快闪存储器包括若干个可并行编程的块,且其中所述若干个可并行编程的页中的第一页是所述若干个可并行编程的块中的第一块的一部分。
在实例8中,实例1到7中的任一者或多者的标的物任选地包含:针对所述快闪存储器起始无用单元收集循环;及从所述第一存储子单元摒弃所述第一日志数据。
在实例9中,实例1到8中的任一者或多者的标的物任选地包含:接收日志数据请求;读取至少所述第一存储子单元以获得所述第一日志数据;及发送包括所述第一日志数据的日志数据回复。
在实例10,实例1到9中的任一者或多者的标的物任选地包含:其中所述快闪存储器包括若干个多电平胞元,且其中所述第一存储子单元包括多电平胞元的下部页。
实例11是一种快闪存储器,其包括:快闪存储器阵列,其包括一组可并行编程的页;存储器控制器,其经配置以执行包括以下各项的操作:接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据;如果所述第一主机数据小于剩余阈值,那么:产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;将所述第一编程数据单元并行地编程到所述快闪存储器的第一组页,其中所述第一组页中的每一者属于若干个可并行编程的块中的不同块,且其中所述第一日志数据被写入到所述第一组页中的第一页;及存储所述第一页无效的指示。
在实例12中,实例11的标的物任选地包含:其中所述存储器控制器进一步经配置以执行包括以下各项的操作:检测与所述快闪存储器相关的重要事件;产生包括描述所述快闪存储器的第二日志数据的第二编程数据单元;将所述第二编程数据单元至少部分地编程到第二组可并行编程的页中的第二页,其中所述第二组可并行编程的页中的每一者属于所述快闪存储器的若干个可并行编程的块中的不同块;及存储所述第二页无效的指示。
在实例13中,实例12的标的物任选地包含:其中检测所述重要事件包括检测对所述快闪存储器的电力中断。
在实例14中,实例12到13中的任一者或多者的标的物任选地包含:其中所述第二日志数据包括描述所述快闪存储器的逻辑块映射的至少一部分。
在实例15中,实例11到14中的任一者或多者的标的物任选地包含:其中所述存储器控制器进一步经配置以执行包括以下各项的操作:针对所述快闪存储器起始无用单元收集循环;及从所述第一页摒弃所述第一日志数据。
在实例16中,实例11到15中的任一者或多者的标的物任选地包含:其中所述存储器控制器进一步经配置以执行包括以下各项的操作:接收日志数据请求;读取至少所述第一页以获得所述第一日志数据;及发送包括所述第一日志数据的日志数据回复。
实例17是一种快闪存储器,其包括:快闪存储器阵列,其包括若干个页,其中所述若干个页中的第一页包括若干个区段;及存储器控制器,其经配置以执行包括以下各项的操作:接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据;及如果所述第一主机数据小于剩余阈值,那么:产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;将所述第一编程数据单元编程到所述第一页,其中所述第一日志数据被写入到所述第一页的第一区段;及存储所述第一页的所述第一区段无效的指示。
在实例18中,实例17的标的物任选地包含:其中所述存储器控制器进一步经配置以执行包括以下各项的操作:检测与所述快闪存储器相关的重要事件;产生包括描述所述快闪存储器的第二日志数据的第二编程数据单元;将所述第二编程数据单元至少部分地编程到所述若干个页中的第二页的第二区段;及存储所述第二区段无效的指示。
在实例19中,实例18的标的物任选地包含:其中检测所述重要事件包括检测对所述快闪存储器的电力中断。
在实例20中,实例18到19中的任一者或多者的标的物任选地包含:其中所述第二日志数据包括描述所述快闪存储器的逻辑块映射的至少一部分。
在实例21中,实例17到20中的任一者或多者的标的物任选地包含:其中所述存储器控制器进一步经配置以执行包括以下各项的操作:针对所述快闪存储器起始无用单元收集循环;及从所述第一区段摒弃所述第一日志数据。
在实例22中,实例17到21中的任一者或多者的标的物任选地包含:其中所述存储器控制器进一步经配置以执行包括各项的操作:接收日志数据请求;读取至少所述第一区段以获得所述第一日志数据;及发送包括所述第一日志数据的日志数据回复。
实例23是一种提供指令的装置可读存储媒体,所述指令在由存储器装置的控制器执行时,在所述存储器装置中将电压读取电平校准优化,其中所述指令致使所述控制器根据实例1到22的技术中的任一者执行操作。
实例24是一种设备,其包括用于执行实例1到22的方法或技术中的任一者的相应构件。
实例25是一种用以执行实例1到22中的任一者的操作的系统、设备或装置。
实例26是一种体现指令的有形机器可读媒体,所述指令用以执行或实施实例1到22中的任一者的操作。
实例27是一种用以执行实例1到22中的任一者的操作的方法。
以上说明旨在具说明性而非限制性。举例来说,上文所描述的实例(或者其一或多个方面)可以彼此组合方式使用。例如,所属领域的普通技术人员可在审阅以上说明之后即刻使用其它实施例。基于以下理解主张其并非将用于解释或限制权利要求书的范围或含义。此外,在以上详细说明中,各种特征可分组在一起以简化本发明。此不应解释为意指未主张的所揭示特征对任何技术方案来说均是必要的。而是,发明性标的物可在于特定所揭示实施例的少于所有特征。因此,所附权利要求书特此并入实施方式,其中每一技术方案自身作为单独实施例,且预期此些实施例可以各种组合或排列形式彼此组合。本发明的范围应参考所附权利要求书连同授权于此权利要求书的等效形式的全部范围一起加以确定。

Claims (21)

1.一种用于管理快闪存储器的方法,所述方法包括:
接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据,所述快闪存储器包括若干个页,其中所述若干个页中的第一页包括若干个区段;
确定不使用所述第一页的所述区段的一部分时所述第一主机数据是否能被写入所述第一页;
响应于确定不使用所述第一页的所述区段的所述部分时所述第一主机数据能被写入所述第一页,产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;
将所述第一编程数据单元编程到所述快闪存储器的所述第一页,其中所述第一日志数据被写入到所述第一页的第一区段;及
存储在所述第一区段处的所述第一日志数据将在所述第一页的无用单元收集循环中被摒弃的指示。
2.根据权利要求1所述的方法,其进一步包括:
检测与所述快闪存储器相关的重要事件;
产生包括描述所述快闪存储器的第二日志数据的第二编程数据单元;
将所述第二编程数据单元至少部分地编程到第二区段,其中所述第二区段属于所述若干个页中的第二页;及
存储将在所述第一页的无用单元收集循环中将要摒弃所述第二区段的指示。
3.根据权利要求2所述的方法,其中检测所述重要事件包括检测对所述快闪存储器的电力中断。
4.根据权利要求2所述的方法,其中所述第二日志数据包括描述所述快闪存储器的逻辑块映射的至少一部分。
5.根据权利要求1所述的方法,其中所述快闪存储器包括若干个可并行编程的页,其中所述第一页是所述若干个可并行编程的页,且其中所述第一区段是所述若干个可并行编程的页中的第一页。
6.根据权利要求5所述的方法,其中所述快闪存储器包括若干个可并行编程的块,且其中所述若干个可并行编程的页中的第一页是所述若干个可并行编程的块中的第一块的一部分。
7.根据权利要求1所述的方法,其进一步包括:
针对所述快闪存储器起始无用单元收集循环;及
从所述第一区段摒弃所述第一日志数据。
8.根据权利要求1所述的方法,其进一步包括:
接收日志数据请求;
读取至少所述第一区段以获得所述第一日志数据;及
发送包括所述第一日志数据的日志数据回复。
9.根据权利要求1所述的方法,其中所述快闪存储器包括若干个多电平胞元,且其中所述第一区段包括多电平胞元的下部页。
10.一种快闪存储器,其包括:
快闪存储器,其包括一组可并行编程的页;
存储器控制器,其经配置以执行包括以下各项的操作:
接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据;
确定不使用所述快闪存储器的第一组页的一部分时所述第一主机数据是否能被写入所述第一组页;
相应于确定不使用所述第一组页的所述部分时所述第一主机数据能被写入所述第一组页,产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;
将所述第一编程数据单元并行地编程到所述快闪存储器的第一组页,其中所述第一组页中的每一者属于若干个可并行编程的块中的不同块,且其中所述第一日志数据被写入到所述第一组页中的第一页;及
存储在所述第一页处的所述第一日志数据将在所述第一组页的无用单元收集循环中被摒弃的指示。
11.根据权利要求10所述的快闪存储器,其中所述存储器控制器进一步经配置以执行包括以下各项的操作:
检测与所述快闪存储器相关的重要事件;
在所述重要事件后产生包括描述所述快闪存储器的第二日志数据的第二编程数据单元;
将所述第二编程数据单元至少部分地编程到第二组可并行编程的页中的第二页,其中所述第二组可并行编程的页中的每一者属于所述快闪存储器的若干个可并行编程的块中的不同块;及
存储在所述第一组页的所述无用单元收集循环中将要摒弃所述第二页的指示。
12.根据权利要求11所述的快闪存储器,其中检测所述重要事件包括检测对所述快闪存储器的电力中断。
13.根据权利要求11所述的快闪存储器,其中所述第二日志数据包括描述所述快闪存储器的逻辑块映射的至少一部分。
14.根据权利要求10所述的快闪存储器,其中所述存储器控制器进一步经配置以执行包括以下各项的操作:
针对所述快闪存储器起始无用单元收集循环;及
从所述第一页摒弃所述第一日志数据。
15.根据权利要求10所述的快闪存储器,其中所述存储器控制器进一步经配置以执行包括以下各项的操作:
接收日志数据请求;
读取至少所述第一页以获得所述第一日志数据;及
发送包括所述第一日志数据的日志数据回复。
16.一种快闪存储器,其包括:
快闪存储器,其包括若干个页,其中所述若干个页中的第一页包括若干个区段;及
存储器控制器,其经配置以执行包括以下各项的操作:
接收第一编程请求,所述第一编程请求包括待被写入到所述快闪存储器的第一主机数据;及
如果不使用所述第一页的所述区段的一部分时,所述第一主机数据能被写入所述第一页,那么:
产生第一编程数据单元,其中所述第一编程数据单元包括所述第一主机数据及描述所述快闪存储器的第一日志数据;
将所述第一编程数据单元编程到所述第一页,其中所述第一日志数据被写入到所述第一页的第一区段;及
存储所述第一页的所述第一区段将在所述第一页的无用单元收集循环中被摒弃的指示。
17.根据权利要求16所述的快闪存储器,其中所述存储器控制器进一步经配置以执行包括以下各项的操作:
检测与所述快闪存储器相关的重要事件;
产生包括描述所述快闪存储器的第二日志数据的第二编程数据单元;
将所述第二编程数据单元至少部分地编程到所述若干个页中的第二页的第二区段;及
存储在所述第一页的所述无用单元收集循环中将要摒弃所述第二区段的指示。
18.根据权利要求17所述的快闪存储器,其中检测所述重要事件包括检测对所述快闪存储器的电力中断。
19.根据权利要求17所述的快闪存储器,其中所述第二日志数据包括描述所述快闪存储器的逻辑块映射的至少一部分。
20.根据权利要求16所述的快闪存储器,其中所述存储器控制器进一步经配置以执行包括以下各项的操作:
针对所述快闪存储器起始无用单元收集循环;及
从所述第一区段摒弃所述第一日志数据。
21.根据权利要求16所述的快闪存储器,其中所述存储器控制器进一步经配置以执行包括以下各项的操作:
接收日志数据请求;
读取至少所述第一区段以获得所述第一日志数据;及
发送包括所述第一日志数据的日志数据回复。
CN201880061721.XA 2017-08-30 2018-08-24 快闪存储器及其管理方法 Active CN111133410B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/690,889 2017-08-30
US15/690,889 US11100996B2 (en) 2017-08-30 2017-08-30 Log data storage for flash memory
PCT/US2018/047988 WO2019046128A1 (en) 2017-08-30 2018-08-24 STORING LOG DATA FOR FLASH MEMORY

Publications (2)

Publication Number Publication Date
CN111133410A CN111133410A (zh) 2020-05-08
CN111133410B true CN111133410B (zh) 2021-09-03

Family

ID=65437537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880061721.XA Active CN111133410B (zh) 2017-08-30 2018-08-24 快闪存储器及其管理方法

Country Status (4)

Country Link
US (2) US11100996B2 (zh)
CN (1) CN111133410B (zh)
TW (1) TWI699698B (zh)
WO (1) WO2019046128A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100996B2 (en) 2017-08-30 2021-08-24 Micron Technology, Inc. Log data storage for flash memory
US10832793B2 (en) * 2018-08-21 2020-11-10 Micron Technology, Inc. Defective memory cell detection circuitry including use in automotive control systems
KR20220021796A (ko) * 2020-08-14 2022-02-22 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN113342570B (zh) * 2021-06-17 2022-03-08 哈尔滨工业大学 一种适配3d tlc型nand闪存数据存储的双目标状态消除编解码方法
CN117687770A (zh) * 2023-06-21 2024-03-12 荣耀终端有限公司 内存申请方法及相关装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875454A (en) 1996-07-24 1999-02-23 International Business Machiness Corporation Compressed data cache storage system
US6625671B1 (en) 1999-05-03 2003-09-23 Computer Network Technology Corporation Compression of buffered data
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7188227B2 (en) 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7366013B2 (en) 2005-12-09 2008-04-29 Micron Technology, Inc. Single level cell programming in a multiple level cell non-volatile memory device
KR100885783B1 (ko) 2007-01-23 2009-02-26 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
US7882393B2 (en) 2007-03-28 2011-02-01 International Business Machines Corporation In-band problem log data collection between a host system and a storage system
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8443133B2 (en) 2008-02-29 2013-05-14 Kabushiki Kaisha Toshiba Memory system storing management information and method of controlling same
US7979626B2 (en) 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
JP4399021B1 (ja) 2008-10-29 2010-01-13 株式会社東芝 ディスクアレイ制御装置および記憶装置
US20100115182A1 (en) 2008-11-06 2010-05-06 Sony Corporation Flash memory operation
US9684590B2 (en) * 2010-10-25 2017-06-20 Seagate Technology Llc Storing corresponding data units in a common storage unit
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
KR101790165B1 (ko) 2011-08-09 2017-11-20 삼성전자 주식회사 메모리 시스템 및 그것의 메타 데이터 관리 방법
KR20130096881A (ko) * 2012-02-23 2013-09-02 삼성전자주식회사 플래시 메모리 장치
US9244631B2 (en) * 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US20160266825A1 (en) 2015-03-10 2016-09-15 Kabushiki Kaisha Toshiba Memory system and memory controller
US20170115900A1 (en) 2015-10-23 2017-04-27 International Business Machines Corporation Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
US11100996B2 (en) 2017-08-30 2021-08-24 Micron Technology, Inc. Log data storage for flash memory
CN109669889B (zh) 2018-12-24 2021-03-02 青岛方寸微电子科技有限公司 一种轻量型Nor Flash闪存控制方法和装置

Also Published As

Publication number Publication date
US20210383872A1 (en) 2021-12-09
TWI699698B (zh) 2020-07-21
CN111133410A (zh) 2020-05-08
US20190066791A1 (en) 2019-02-28
US11705201B2 (en) 2023-07-18
TW201923554A (zh) 2019-06-16
US11100996B2 (en) 2021-08-24
WO2019046128A1 (en) 2019-03-07

Similar Documents

Publication Publication Date Title
CN111801739B (zh) 基于主机io操作的读取电压校准
US10121551B1 (en) Detecting power loss in NAND memory devices
CN111383683B (zh) 通过堆叠多个可靠性规范进行扫描优化
CN111247587B (zh) 优化扫描间隔
CN111133410B (zh) 快闪存储器及其管理方法
CN112400206B (zh) 温度敏感性nand编程
KR102362767B1 (ko) 정정 불가능 ecc
US11688473B2 (en) SLC page read
CN109726035B (zh) 存储器装置、操作该装置的方法和非易失性机器可读媒体
CN112470222B (zh) 存储器装置中的可调整电压降检测阈值
CN111213208B (zh) 擦除页面检查
CN111465986B (zh) Nand快闪热警报
CN112074908B (zh) Nand数据放置模式
CN110993006A (zh) 存储器装置中的回写操作
US10579307B2 (en) Correcting power loss in NAND memory devices
CN112074816A (zh) Nand数据放置模式的集群奇偶校验
CN112997254B (zh) 用于筛选容易出现缺陷的存储器块的基于度量的反应性读取
CN111684529B (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
GR01 Patent grant
GR01 Patent grant