CN111813328A - 存储器系统及其操作方法 - Google Patents

存储器系统及其操作方法 Download PDF

Info

Publication number
CN111813328A
CN111813328A CN201911253522.1A CN201911253522A CN111813328A CN 111813328 A CN111813328 A CN 111813328A CN 201911253522 A CN201911253522 A CN 201911253522A CN 111813328 A CN111813328 A CN 111813328A
Authority
CN
China
Prior art keywords
data
program operation
memory
program
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201911253522.1A
Other languages
English (en)
Inventor
郑会承
李周映
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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111813328A publication Critical patent/CN111813328A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及存储器系统及其操作方法。例如,一种存储器系统包括:存储器设备,包括存储器块、页面缓冲器以及第一和第二存储器管芯;写入缓冲器,适于临时存储第一和第二数据;编程管理单元,适于控制存储器设备,以利用第一和第二数据对存储器块顺序地执行第一和第二编程操作;缓冲器管理单元,适于基于分散聚集方案管理写入缓冲器;失败处理单元,适于在第一编程操作失败时强制第二编程操作失败;以及错误处理单元,适于控制编程管理单元,以在第二编程操作被强制失败时针对临时存储在写入缓冲器中的第一和第二数据再次执行第一和第二编程操作。

Description

存储器系统及其操作方法
相关申请的交叉参考
本申请要求于2019年4月11日提交的韩国专利申请第 10-2019-0042571号的优先权,其通过引用全部并入本文。
技术领域
本发明的各种实施例涉及一种数据处理系统,并且更具体地,涉及用于在使用分散聚集缓冲方法的同时有效地执行错误处理的存储器系统以及用于操作该存储器系统的方法。
背景技术
计算机环境范式已经转向无处不在的计算,这使得计算系统可随时随地使用。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子设备的使用迅速增加。这些便携式电子设备通常使用具有用于存储数据的一个或多个存储器设备的存储器系统。存储器系统可用作便携式电子设备的主存储器设备或辅助存储器设备。
与硬盘设备相比,存储器系统由于没有移动部件而具有出色的稳定性、耐用性、高信息存取速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器设备、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
本发明的实施例目的在于提供一种存储器系统,当通过使用基于分散聚集方案的写入缓冲器执行编程操作并且在当前编程操作之前执行的前一编程操作失败时,该存储器系统可通过强制当前编程操作失败来有效地执行错误处理。
根据本发明的一个实施例,一种存储器系统包括:存储器设备,包括存储器块、页面缓冲器以及第一和第二存储器管芯;写入缓冲器,适于临时存储第一和第二数据;编程管理单元,适于控制存储器设备,以利用第一和第二数据对存储器块顺序地执行第一和第二编程操作;缓冲器管理单元,适于基于分散聚集方案管理写入缓冲器;失败处理单元,适于在第一编程操作失败时强制第二编程操作失败;以及错误处理单元,适于控制编程管理单元,以在第二编程操作被强制失败时针对临时存储在写入缓冲器中的第一和第二数据再次执行第一和第二编程操作。
根据本发明的另一实施例,一种用于操作存储器系统的方法包括:临时存储第一数据和第二数据;利用第一数据和第二数据对存储器块顺序地执行第一编程操作和第二编程操作;基于分散聚集方案管理写入缓冲器;当第一编程操作失败时,强制第二编程操作失败;以及当第二编程操作被强制失败时,针对临时存储在写入缓冲器中的第一和第二数据,控制再次执行第一和第二编程操作。
根据本发明的另一实施例,一种存储器系统包括:存储器设备;以及控制器,包括被配置为根据分散聚集方案缓冲第一和第二数据的缓冲器,其中控制器被配置为:控制存储器设备,以执行对缓冲的第一数据进行编程并随后对缓冲的第二数据进行编程的流水线方案编程操作;当第一编程失败时,将随后的编程处理为失败,以及控制存储器设备以分别使用缓冲的第一和第二数据再次执行第一编程和随后的编程。
附图说明
图1是示出根据本发明实施例的包括存储器系统的数据处理系统的框图。
图2是示出图1所示存储器设备中的存储器块的存储器单元阵列的配置的电路图。
图3A和图3B示出了高速缓存编程操作。
图4示出了根据环形缓冲方法操作写入缓冲器的方法。
图5A至图5C示出了根据分散聚集缓冲方案操作写入缓冲器的方法。
图6A示出了在使用分散聚集方案时执行高速缓存编程操作时发生的问题。
图6B示出了根据本发明实施例的操作写入缓冲器的方法。
图7是描述根据本发明实施例的存储器系统110的操作的流程图。
图8是示出根据本发明实施例的存储器系统110的框图。
图9A和图9B是示出交错编程的概念的示图。
图10A是示出在使用分散聚集方案时执行交错编程时发生的问题的示图。
图10B是示出根据本发明另一实施例的操作写入缓冲器的方法的示图。
图11是示出根据本发明另一实施例的存储器系统110的框图。
具体实施方式
下面将参考附图更详细地描述本发明的各种实施例。然而,本发明可以不同的形式具体化,并且不应被解释为限于本文所述的实施例。相反,提供这些实施例是为了使本公开更加彻底和完整,并且将本发明的范围完全传达给本领域技术人员。贯穿本公开,类似的参考标号在本发明的各附图和实施例中表示相似的部分。
注意,对“一个实施例”的引用并不一定意味着只有一个实施例,并且对“一个实施例”的不同引用也不一定意味着同一个实施例。
应理解,尽管本文可以使用术语“第一”和/或“第二”来描述各种元件,但这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一元件。例如,在不脱离本公开的教导的情况下,下面讨论的第一元件可称为第二元件。相似地,第二元件也可称为第一元件。
应理解,当一个元件被称为“耦合”或“连接”至另一元件时,其可以直接耦合或连接至另一元件,或者它们之间可以存在中间元件。相反,当一个元件被称为“直接耦合”或“直接连接”至另一元件时,不存在中间元件。描述元件之间关系的其他表述(诸如“在.. 之间”、“直接在…之间”、“相邻”或“直接相邻”)应以相同的方式进行解释。
本文使用的术语仅用于描述实施例而不用于限制。在本发明中,除非上下文另有明确指示,否则单数形式也包括复数形式。将进一步理解,术语“包括”、“具有”等在本说明书使用时,指定所提特征、数字、步骤、操作、元件、部件和/或它们的组合的存在,但不排除一个或多个其他特征、数字、步骤、操作、元件、部件和/或它们的组合的存在或添加。
下面,将参照附图详细描述本发明的各种实施例。
图1是示出根据本发明实施例的包括存储器系统110的数据处理系统100的框图。
参考图1,数据处理系统100可包括操作性地耦合至存储器系统 110的主机102。
主机102可包括各种便携式电子设备中的任一种,诸如移动电话、 MP3播放器和膝上型计算机,或者包括各种非便携式电子设备中的任一种,诸如台式计算机、游戏机、TV和投影仪。
主机102可包括至少一个OS(操作系统)或多个操作系统。主机102可执行OS以对存储器系统110执行与用户的请求相对应的操作。这里,主机102可以向存储器系统110提供与用户的请求相对应的多个命令。因此,存储器系统110可执行与多个命令相对应(即,与用户的请求相对应)的特定操作。OS可管理和控制主机102的总体功能和操作。OS可使用数据处理系统100或存储器系统110支持主机102和用户之间的操作。
存储器系统110可响应于来自主机102的请求来操作或执行特定功能或操作,并且具体地,可存储将被主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可利用可与主机102电耦合的各种类型的存储设备中的任一种来实施。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)和嵌入式MMC(eMCC)。
存储器系统110可包括各种类型的存储设备。这种存储设备的非限制性示例包括易失性存储器设备(诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM))以及非易失性存储器设备(诸如只读存储器(ROM)、掩蔽ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)和闪存)。
存储器系统110可包括存储器设备150和控制器130。
控制器130和存储器设备150可集成到单个半导体设备中,该半导体设备可包括在如上所述的各种类型的存储器系统的任一种中。例如,控制器130和存储器设备150可集成为单个半导体设备以构成 SSD、PCMCIA(个人计算机存储卡国际协会)卡、SD卡(包括mini-SD、 micro-SD和SDHC)以及UFS设备。存储器系统110可被配置为计算机、智能手机、便携式游戏机的一部分或者配置为计算系统的各种部件之一。
存储器设备150可以是非易失性存储设备,即使在不供电的情况下也可以保持存储的数据。存储器设备150可存储通过写入操作从主机102提供的数据,并且通过读取操作将存储在其中的数据输出至主机102。在一个实施例中,存储器设备150可包括多个存储器管芯(未示出),并且每个存储器管芯可包括多个平面(未示出)。每个平面可包括多个存储器块152-156,每个存储器块都可包括多个页面,每个页面可包括耦合至字线的多个存储器单元。在一个实施例中,存储器设备150可以是具有三维(3D)堆栈结构的闪存。
控制器130可响应于来自主机102的请求来控制存储器设备150。例如,控制器130可将从存储器设备150读取的数据提供给主机102,并将从主机102提供的数据存储到存储器设备150中。因此,控制器 130可控制存储器设备150的读、写、编程和擦除操作。
控制器130可包括主机接口(I/F)132、处理器134、存储器接口142和存储器144,所有这些都经由内部总线操作性地耦合或接合。如稍后参考图8和图11更详细描述的,控制器130还可以包括编程管理单元810、失败处理单元804、缓冲器管理单元806和错误处理单元808。存储器144可包括写入缓冲器306。编程管理单元810可包括高速缓存编程管理器802和交错编程管理器1102。
主机接口132可处理主机102的命令和数据。主机接口132可通过一个或多个不同的接口协议与主机102通信,诸如通用串行总线 (USB)、多媒体卡(MMC)、外围部件互连高速(PCI-E)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI) 和电子集成驱动器(IDE)。主机接口132可经由固件(即,用于与主机102交换数据的主机接口层(HIL))驱动。
存储器接口142可用作控制器130和存储器设备150之间的存储器/存储接口,使得控制器130可响应于来自主机102的请求来控制存储器设备150。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可设置在控制器130内部或外部。图1示出了设置在控制器130 内的存储器144。在一个实施例中,存储器144可以是具有用于在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器。
如上所述,存储器144可包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存,以存储在主机102和存储器设备150之间执行数据写入和读取操作所需的一些数据以及控制器130和存储器设备150执行这些操作所需的其他数据。
处理器134可控制存储器系统110的整体操作。处理器134可使用固件来控制存储器系统110的整体操作。固件可称为闪存转换层 (FTL)。处理器134可用微处理器或中央处理单元(CPU)来实施。
例如,控制器130可通过处理器134(实施为微处理器、CPU等) 在存储器设备150中执行由主机102请求的操作。此外,控制器130 可通过处理器134(可实施为微处理器或CPU)对存储器设备150执行后台操作。对存储器设备150执行的后台操作可包括将存储在存储器设备150的存储器块152-156中的一些存储器块中的数据复制和处理到其他存储器块中的操作(例如,垃圾收集(GC)操作)、在存储器块152-156之间或者在存储器块152-156的数据之间执行交换的操作(例如,损耗平衡(WL)操作)、将存储在控制器130中的地图数据存储在存储器块152-156中的操作(例如,地图刷新操作)或者管理存储器设备150的坏块的操作(例如,检测和处理存储器设备 150中的存储器块152-156中的坏块的坏块管理操作)。
以下,将参照图2更详细地描述根据本发明实施例的存储器系统中的存储器设备。
参照图2,存储器块330可包括耦合至多条对应位线BL0-BLm-1 的多个单元串340。每列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极和源极选择晶体管DST和SST之间,多个存储器单元MC0-MCn-1可串联耦合。在一个实施例中,存储器单元晶体管MC0-MCn-1中的每一个可通过能够存储多位的数据信息的MLC来实现。每个单元串340可电耦合至多条位线BL0-BLm-1中的对应位线。例如,如图2所示,第一单元串耦合至第一位线BL0,并且最后的单元串耦合至最后的位线 BLm-1。
尽管图2示出了NAND闪存单元,但本公开不限于此。应注意,存储器单元可以是NOR闪存单元,或者包括其中组合两种或更多种类型的存储器单元的混合闪存单元。另外,应注意,存储器设备150 可以是包括作为电荷存储层的导电浮栅的闪存设备或者包括作为电荷存储层的绝缘层的电荷陷阱闪存(CTF)存储器设备。
存储器设备150还可以包括电压源310,其生成不同的字线电压,包括根据操作模式提供给字线的编程电压、读取电压和通过电压。电压源310的电压生成操作可由控制电路(未示出)控制。在控制电路的控制下,电压源310可选择存储器单元阵列的存储器块(或扇区) 中的至少一个,选择所选存储器块的至少一条字线,并且根据需要向所选字线和未选字线提供字线电压。
存储器设备150可包括由控制电路控制的读/写电路320。在验证 /正常读取操作期间,读/写电路320可操作为用于从存储器单元阵列读取(感测和放大)数据的感测放大器。在编程操作期间,读/写电路 320可操作为用于根据将被存储在存储器单元阵列中的数据向位线提供电压或电流的写入驱动器。在编程操作期间,读/写电路320可以从缓冲器(未示出)接收将存储在存储器单元阵列中的数据,并且根据接收到的数据来驱动位线。读/写电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322-326。页面缓冲器 322-326中的每一个都可包括多个锁存器(未示出)。
图3A和图3B示出了高速缓存编程操作的概念。
图3A示意性示出了仅描述图1的数据处理系统100中的高速缓存编程操作所需的基本组成元件。
参考图3A,当根据高速缓存编程操作在包括在存储器管芯DIE 中的存储器块304中编程多个数据块时,控制器130可以向存储器设备150提供在写入缓冲器306中缓冲的第二数据DATA2,而存储器设备150执行将在页面缓冲器302中缓冲的第一数据DATA1编程到存储器块304中的第一编程操作。当执行第一编程操作时,控制器130 可控制存储器设备150以将提供的第二数据DATA2缓冲在页面缓冲器302中。控制器130可控制存储器设备150以执行第二编程操作,从而在第一编程操作完成时将页面缓冲器302中缓冲的第二数据DATA2编程到存储器块304中。
当根据正常编程操作在存储器块中编程多个数据块时,控制器 130可以仅在成功地执行第一编程操作时向存储器设备150提供缓冲在写入缓冲器中的第二数据。相反,当根据高速缓存编程操作在存储器块304中对数据进行编程时,控制器130可以在执行第一编程操作时向存储器设备150提供缓冲在写入缓冲器中的第二数据,而不管第一编程操作是否成功。
控制器130可以向存储器设备150提供第二数据,并且在通过使用流水线方案执行第一编程操作的同时执行在页面缓冲器中缓冲第二数据的操作。因此,当在存储器块中编程多个数据时,高速缓存编程操作可提供比正常编程操作更高的编程速度。
图3B示出了高速缓存编程操作的流水线方案。
参照图3B,控制器130可以在高速缓存编程操作开始时向存储器设备150提供缓冲在写入缓冲器306中的第一数据,并控制存储器设备150以执行在页面缓冲器302中缓冲第一数据的第一数据输入操作。控制器130可控制存储器设备150执行第一编程操作,其中存储器设备150将页面缓冲器302中缓冲的第一数据编程到存储器块304 中。完成第一编程操作所用的时间T_PGM1可比完成第一数据输入操作所用的时间T_1长得多。
控制器130可在第一编程操作期间向存储器设备150提供缓冲在写入缓冲器306中的第二数据,并控制存储器设备150以执行在页面缓冲器302中缓冲第二数据的第二数据输入操作。由于完成第二数据输入操作所花的时间T_2比完成第一编程操作所花的时间T_PGM1 短得多,因此控制器130可以在执行第一编程操作的同时完成第二数据输入操作。
控制器130可以不通过基于流水线方案对数据执行高速缓存编程操作来预留执行数据输入操作的时间,其中在流水线方案中,在对当前数据(即,第一数据)执行编程操作的同时,对随后的数据(即,第二数据)执行数据输入操作。因此,当对大容量数据执行高速缓存编程操作时,编程操作的速度可比普通编程操作有提升。
在高速缓存编程操作的情况下,控制器130可控制存储器设备 150以在第一编程操作期间对第二数据执行数据输入操作,并且在第一编程操作完成之后立即执行第二编程操作。控制器130可控制存储器设备150,以在执行第二编程操作时确定第一编程操作是否成功。因此,确定第一编程操作是否成功所需的时间T_VF1可与执行第二编程操作所需的时间T_PGM2重叠。当第一编程操作失败时,控制器 130可控制存储器设备150以对第一数据执行错误处理操作。错误处理操作可以是将存储在对其执行第一编程操作的第一存储器块中的有效数据复制到作为正常块的第二存储器块中,然后通过使用在写入缓冲器306中缓冲的第一数据将第一数据编程回第二存储器块中的操作。
在正常编程操作的情况下,只有在完成第一数据的错误处理操作之后才可以执行第二数据的数据输入操作。然而,在高速缓存编程操作的情况下,存储器设备150可在第一数据的错误处理操作开始时已经完成了第二编程操作。当在执行高速缓存编程操作的同时第一编程操作失败时,控制器130可控制存储器设备150,从而不仅针对第一数据而且也针对第二数据执行错误处理操作,而不管第二编程操作是否成功。
例如,当与第一数据和第二数据相对应的逻辑块地址(LBA)相同且第一编程操作失败而第二编程操作成功时,以及当存储器设备 150不针对第一数据执行错误处理操作同时也不针对第二数据执行错误处理操作时,存储器设备150可在作为最新数据的第二数据之后对第一数据进行编程。因此,控制器130可确定物理上最后编程的第一数据作为逻辑地址的最新数据,这是存在问题的。
因此,在高速缓存编程操作的情况下,第一存储器块的第一编程操作可能失败,并且即使在第一编程操作之后针对第一存储器块执行的第二编程操作成功时,控制器130可控制存储器设备150,从而不仅对第一数据执行错误处理操作,而且还对第二数据执行错误处理操作。为了对第一数据和第二数据执行错误处理操作,控制器130可能必须向存储器设备150提供缓冲在写入缓冲器306中的第一数据和第二数据。在将针对第一数据和第二数据执行错误处理操作时是否将第一数据和第二数据缓冲在写入缓冲器306中可以根据将从主机102提供的数据缓冲到写入缓冲器306中并从写入缓冲器306删除正常编程的数据的方法(以下称为操作写入缓冲器306的方法)而不同。
操作写入缓冲器306的方法可包括环形缓冲方案和分散聚集方案。在环形缓冲方案和分散聚集方案中,不能从写入缓冲器306中删除编程失败的数据。因此,当第二编程操作成功而第一编程操作失败时,无论操作写入缓冲器306的方法如何,在针对第一数据的错误处理操作开始时,第一数据可保留在写入缓冲器306中。然而,在正常编程的第二数据的情况下,在第二数据的错误处理操作开始时是否将第二数据保留在写入缓冲器306中可以根据操作写入缓冲器306的方法而不同。如稍后将描述的,在分散聚集方案的情况下,控制器130 可以从写入缓冲器中删除正常编程的数据。因此,当在高速缓存编程操作期间第一编程操作失败而第二编程操作成功时,在错误处理操作的时刻,只有第一数据可保留在写入缓冲器中,并且第二数据可不存在于写入缓冲器中,这是存在问题的。
图4示出了根据环形缓冲方法操作写入缓冲器的方法。
图4示出了环形缓冲器404以及示出环形缓冲器404的状态的表格402。为了便于描述,环形缓冲器404由分别对应于第一至第八索引INDEX1-INDEX8的区域形成,并且控制器130顺序地将第一至第八数据DATA1-DATA8缓冲到环形缓冲器404中。
如上所述,控制器130可包括写入缓冲器306。在将数据编程到存储器块中之前,写入缓冲器306可临时存储与从主机102提供的编程命令相对应的数据。环形缓冲器404可参考用于在环形缓冲方案中缓冲数据的写入缓冲器306。控制器130可将环形缓冲器404的区划分为区域,并用索引INDEX标记每个划分区域。控制器130可在表格402中存储表示数据是否缓冲在与索引INDEX相对应的区域中的状态信息STATUS和关于在与索引INDEX相对应的区域中缓冲的数据的数据信息DATA。例如,当在与特定索引INDEX相对应的区域中缓冲数据时,控制器130可在状态信息STATUS中记录值“1”,并在相反的情况下记录值“0”。
参考图4所示的环形缓冲器404和表格402,因为分别与写入缓冲器404的第一至第八索引INDEX1-INDEX8相对应的区域正在缓冲第一至第八数据DATA1-DATA8,控制器130可以在第一至第八索引 INDEX1-INDEX8的所有状态信息STATUS中记录值“1”。此外,控制器130可将第一至第八索引INDEX1-INDEX8的数据信息DATA 分别写入作为第一至第八数据DATA1-DATA8。
当存储器设备150正常地对存储器块中的环形缓冲器404中缓冲的数据进行编程时,控制器130可从环形缓冲器404中删除缓冲的数据。然而,控制器130可按照数据在环形缓冲器404中缓冲的顺序从环形缓冲器404中删除缓冲数据。当控制器130在与环形缓冲器404 的第一至第八索引INDEX1-INDEX8相对应的区域中顺序地缓冲第一至第八数据DATA1-DATA8并且在存储器块中正常地编程缓冲在环形缓冲器404中的第二数据DATA2时,如果在环形缓冲器404中的第二数据DATA2之前缓冲的第一数据DATA1的编程操作失败,则控制器130不能从环形缓冲器404中删除第一数据DATA1和第二数据DATA2。
图5A至图5C示出了根据分散聚集缓冲方案操作写入缓冲器的方法。
图5A示出了分散聚集缓冲器502和用于表示分散聚集缓冲器 502的状态的表格504。为了便于描述,分散聚集缓冲器502由分别对应于第一至第八索引INDEX1-INDEX8的区域形成,并且控制器 130顺序地将缓冲在分散聚集缓冲器502中缓冲的第一至第八数据DATA1-DATA8。
与上文参照图4描述的环形缓冲方案一样,控制器130可将分散聚集缓冲器502的区划分为多个区域,并且用索引INDEX标记每个划分区域。控制器130可以在表格504中存储表示是否在与索引 INDEX对应的区域中缓冲数据的状态信息STATUS以及关于在与索引INDEX相对应的区域中缓冲的数据的数据信息DATA。例如,当数据缓冲在与特定索引INDEX相对应的区域中时,控制器130可在状态信息STATUS中记录值“1”。分散聚集缓冲器502可参考使用分散聚集方案操作的写入缓冲器306。
参考图5A,控制器130可以在分别与分散聚集缓冲器502的第一至第八索引INDEX1-INDEX8相对应的区域中缓冲第一至第八数据 DATA1-DATA8,然后在分别对应于第一至第八索引 INDEX1-INDEX8的表格504的所有状态信息STATUS中记录值“1”。此外,控制器130可将分别与分散聚集缓冲器502的第一至第八索引 INDEX1-INDEX8相对应的区域中缓冲的数据记录到与第一至第八索引INDEX1-INDEX8相对应的表格504的数据信息DATA中。
图5B示出了在正常对分散聚集缓冲器中缓冲的数据执行编程操作之后的分散聚集缓冲器506和表格508。
当存储器设备150正常将分散聚集缓冲器506中缓冲的数据编程到存储器块中时,不管分散聚集缓冲器506中缓冲的数据的顺序如何 (这与环形缓冲方案不同),控制器130可从分散聚集缓冲器506中删除数据。
参考图5B,当在与分散聚集缓冲器502的第一索引INDEX1相对应的区域中缓冲的第一数据DATA1的编程操作失败且在与分散聚集缓冲器502的第八索引INDEX8相对应的区域中缓冲的第二数据 DATA2的编程操作成功时,控制器130可从分散聚集缓冲器506中删除比第一数据DATA1晚缓冲的第二数据DATA2,并且第一数据 DATA1可保留在分散聚集缓冲器506中。控制器130可将表格504 中的对应于第八索引INDEX8的状态信息STATUS改变为值“0”,然后将对应于第八索引INDEX8的数据信息DATA改变为空值。
图5C示出了在删除分散聚集缓冲器中缓冲的数据之后缓冲从主机提供的新数据之后的分散聚集缓冲器510和表格512。
控制器130可从分散聚集缓冲器510中删除第二数据DATA2,然后在与分散聚集缓冲器510的第八索引INDEX8相对应的区域中缓冲第九数据DATA9(其是从主机102提供的新数据)。控制器130 可通过将与第八索引INDEX8相对应的数据信息DATA改变为表512 中的第九数据DATA9并将与第八索引INDEX8相对应的状态信息 STATUS改变回值“1”来更新表格512。
在环形缓冲方案的情况下,即使正常执行对环形缓冲器404中缓冲的后续数据的编程操作,控制器130也可以不从环形缓冲器404中删除环形缓冲器404中缓冲的后续数据,直到成功地编程环形缓冲器 404中首先缓冲的数据为止。因此,当由于后续数据保留在环形缓冲器404中而使得控制器130不能在环形缓冲器404中创建新的空白空间时,控制器130可以不缓冲从主机102提供的新数据。根据环形缓冲方案,当写入缓冲器的容量较小时,控制器130可以不将从主机102 提供的新数据缓冲到环形缓冲器404中,直到在环形缓冲器404中首先缓冲的数据被成功地编程。这会引起编程操作速度下降的问题。
另一方面,在分散聚集方案的情况下,控制器130可以从分散聚集缓冲器502中删除分散聚集缓冲器502中缓冲的数据中被正常编程的数据,而不管数据在分散聚集缓冲器502中缓冲的顺序如何。控制器130可以将从主机102提供的数据缓冲在通过从分散聚集缓冲器 502中删除数据而创建的空白空间中。
根据便携式存储器设备小型化的最新趋势,需要减小写入缓冲器 306的大小。当写入缓冲器306的大小减小,并由此不能一次在写入缓冲器306中缓冲足够大的数据时,与环形缓冲方案相比,分散聚集方案可提供提升的编程操作速度。控制器130可控制存储器设备150 以将缓冲在存储器块中的写入缓冲器306中的数据高速缓存编程,并且根据分散聚集方案操作写入缓冲器306。当第一编程操作失败而第二编程操作成功时,可以不执行第二数据的错误处理操作,这是存在问题的。
图6A示出了在使用分散聚集方案时执行高速缓存编程操作时发生的问题。
如上所述,在高速缓存编程操作的情况下,控制器130可控制存储器设备150以同时对数据执行编程操作,该数据是页面大小的两倍。
参照图6A,控制器130可以向存储器设备150提供缓冲在写入缓冲器306中的第二数据DATA2,同时存储器设备150执行将第一数据DATA1编程到存储器块602的第一页面PAGE1中的第一编程操作PGM1,并且控制器130可控制存储器设备150以在第一编程操作PGM1完成之后执行将第二数据DATA2编程到存储器块602的第二页面PAGE2中的第二编程操作PGM2。
当第一编程操作PGM1失败且第二编程操作PGM2成功时,存储器设备150可以向控制器130提供第一编程操作PGM1的失败信号 FAIL_REPORT和第二编程操作PGM2的成功信号SUCCESS_REPORT。控制器130可响应于所提供的失败信号 FAIL_REPORT和成功信号SUCCESS_REPORT,将第一编程操作 PGM1和第二编程操作PGM2确定为失败FAIL或通过PASS。
根据分散聚集方案,当第一编程操作PGM1对第一数据DATA1 失败而第二编程操作PGM2对第二数据DATA2成功时,控制器130 可通过保留缓冲在写入缓冲器306’中的第一数据DATA1且从写入缓冲器306’中删除第二数据DATA2来在与缓冲器306’的第二数据 DATA2对应的区域INDEX8中缓冲从主机102提供的新数据 DATA9。
如上所述,在高速缓存编程的情况下,当第一编程操作PGM1对于第一数据DATA1失败时,控制器130可控制存储器设备150以对于第一数据DATA1和第二数据DATA2执行错误处理操作,而不管第二编程操作PGM2对于第二数据DATA2是否成功。根据分散聚集方案,在执行错误处理操作期间,控制器130可对第一数据DATA1 执行错误处理操作,并且可能无法对第二数据DATA2执行错误处理操作,因为第二数据DATA2已经从写入缓冲器306’中删除,并且从主机102提供的新数据DATA9已缓冲在写入缓冲器306’中。
图6B示出了根据本发明实施例的操作写入缓冲器的方法。
根据本发明的实施例,在基于分散聚集方案操作写入缓冲器306 的同时执行高速缓存编程操作的中间,当在第一编程操作PGM1之后执行的第二编程操作PGM2在第一编程操作PGM1失败之后成功时,控制器130可强制第二编程操作PGM2失败。当第一编程操作PGM1失败时,即使第二编程操作PGM2成功,控制器130也可以强制第二编程操作PGM2失败。以这种方式,第二数据DATA2可保留在写入缓冲器306中。因此,控制器130可通过使用保留在写入缓冲器306 中的第一数据DATA1和第二数据DATA2来控制存储器设备150执行错误处理操作。
参照图6B,当第一编程操作PGM1失败且第二编程操作PGM2 成功时,存储器设备150可以向控制器130提供第一编程操作PGM1 的失败信号FAIL_REPORT和第二编程操作PGM2的成功信号 SUCCESS_REPORT。控制器130可响应于提供的失败信号 FAIL_REPORT(指示第一数据DATA1的第一编程操作PGM1的失败)和提供的成功信号SUCCESS_REPORT(指示第二数据DATA2 的第二编程操作PGM2成功),使用第二数据DATA2强制第二编程操作PGM2失败。
当利用第二数据DATA2的第二编程操作PGM2由于第一数据 DATA1的第一编程操作PGM1的失败而被强制处理为失败时,控制器130可基于分散聚集方案保留缓冲在写入缓冲器306”中的所有第一和第二数据DATA1和DATA2,并且可以不从主机102提供附加数据。根据本发明的实施例,因为在执行第一和第二数据DATA1和 DATA2的错误处理操作的时刻,所有的第一和第二数据DATA1和 DATA2存在于写入缓冲器306”中,控制器130可控制存储器设备150,不仅对第一数据DATA1而且对第二数据DATA2执行错误处理操作。
图7是描述根据本发明实施例的存储器系统110的操作的流程图。
在步骤S702中,控制器130可控制存储器设备150对存储器块的多个数据(例如,第一和第二数据DATA1和DATA2)执行高速缓存编程操作。如上参考图3A和图3B所述,控制器130可控制存储器设备150以基于流水线方案执行第一和第二数据DATA1和数据2 的高速缓存编程操作,其中在流水线方案中,在第一数据DATA1的第一编程操作PGM1期间,存储器设备150将缓冲在写入缓冲器306 中的第二数据DATA2缓冲在页面缓冲器中。执行高速缓存编程操作的操作(步骤S702)可包括执行第一编程操作PGM1(步骤S704),在利用第一数据DATA1执行第一编程操作PGM1的同时在页面缓冲器中缓冲第二数据DATA2(步骤S706),确定第一编程操作PGM1 是否完成(步骤S708),以及在利用第一数据DATA1完成第一编程操作PGM1之后立刻利用第二数据DATA2执行第二编程操作PGM2 (步骤S710)。
在步骤S704中,控制器130可控制存储器设备150以利用第一数据DATA1执行第一编程操作PGM1。控制器130可通过在写入缓冲器306中缓冲从主机102提供的第一数据DATA1来向存储器设备 150提供第一数据DATA1。在页面缓冲器中缓冲所提供的第一数据 DATA1之后,存储器设备150可将第一数据DATA1编程到存储器块 (第一编程操作PGM1)。控制器130可在写入缓冲器306中缓冲从主机102提供的数据,并且基于上面参照图5描述的分散聚集方案从写入缓冲器306中删除编程的数据。
在步骤S706中,控制器130可控制存储器设备150,以在页面缓冲器中缓冲第二数据DATA2,同时在步骤S704中利用第一数据 DATA1执行第一编程操作PGM1。在步骤S704中利用第一数据 DATA1执行第一编程操作PGM1的同时,控制器130可以向存储器设备150提供缓冲在写入缓冲器306中的第二数据DATA2,并且将提供的第二数据DATA2缓冲在页面缓冲器中。在高速缓存编程操作的情况下,与普通编程操作不同,控制器130仅在第一编程操作PGM1 成功时才可以不向存储器设备150提供第二数据DATA2,但是可以在执行第一编程操作PGM1时向存储器设备150提供第二数据 DATA2。
在步骤S708中,控制器130可利用第一数据DATA1检查第一编程操作PGM1是否完成。当第一编程操作PGM1尚未完成时(步骤 S708中为“否”),控制器130可控制存储器设备150以继续利用第一数据DATA1执行第一编程操作PGM1,直到利用第一数据 DATA1完成第一编程操作PGM1为止。完成第一编程操作PGM1所需的时间可长于控制器130向存储器设备150提供第二数据DATA2 所花的时间和存储器设备150在页面缓冲器中缓冲第二数据DATA2 所花的时间之和。
在步骤S710中,当第一编程操作PGM1完成时(步骤S708中为“是”),控制器130可控制存储器设备150以执行用于将缓冲在页面缓冲器中的第二数据DATA2编程到存储器块中的第二编程操作 PGM2。控制器130可通过控制存储器设备150快速地编程多个数据,以在存储器设备150根据高速缓存编程操作利用第一数据DATA1完成第一编程操作PGM1之后,立即利用第二数据DATA2执行第二编程操作PGM2。
在步骤S712中,控制器130可确定在步骤S704中使用第一数据 DATA1执行的第一编程操作PGM1是否失败。当利用第一数据 DATA1的第一编程操作PGM1失败时,控制器130可控制存储器设备150以针对第一数据DATA1执行错误处理操作。当第一编程操作 PGM1针对第一数据DATA1成功时,控制器130可控制存储器设备 150以利用第一数据DATA1完成第一编程操作PGM1并且利用第二数据DATA2执行编程操作。
在步骤S714中,当第一编程操作PGM1失败时(步骤S712中为“是”),由于第一编程操作PGM1的失败,控制器130可将第一数据DATA1保留在写入缓冲器306中。根据本发明的实施例,当编程操作在分散聚集方案下失败时,控制器130可通过保持缓冲在写入缓冲器306中的数据并使用缓冲数据来控制存储器设备150以对数据执行错误处理操作。
在步骤S716中,控制器130可确定在步骤S710中执行的第二编程操作PGM2是否针对第二数据DATA2失败。在执行高速缓存编程操作的同时针对第一数据DATA1的第一编程操作PGM1失败时(步骤S712中为“是”),控制器130可控制存储器设备150不仅针对第一数据DATA1而且针对第二数据DATA2执行错误处理操作,而不管第二编程操作PGM2对于第二数据DATA2是否成功。如上所述,当第一数据DATA1和第二数据DATA2的逻辑地址相同并且仅对作为旧数据的第一数据DATA1执行错误处理操作时,与作为最新数据的第二数据DATA2相比,第一数据DATA1物理上编程较晚。因此,控制器130还必须另外执行辨别与逻辑地址相对应的最新数据的操作,这是存在问题的。因此,即使在第二编程操作PGM2成功时,控制器130也可能需要将第二数据DATA2保持在写入缓冲器306中以对第二数据DATA2执行错误处理操作。
在步骤S718中,当第一编程操作PGM1针对第一数据DATA1 失败而第二编程操作PGM2针对第二数据DATA2成功时(步骤S712 中为“是”且步骤S716中为“是”),控制器130可利用第二数据 DATA2强制第二编程操作PGM2失败。根据本发明的实施例,控制器130可通过利用第二数据DATA2强制第二编程操作PGM2失败来将第二数据DATA2保留在写入缓冲器306中,以便在基于分散聚集方案同时操作写入缓冲器306时对第二数据DATA2执行错误处理操作。
如上文参考图5所述,根据分散聚集方案,当控制器130通过对特定数据的编程操作时,控制器130可以从写入缓冲器306中删除数据,并在由于删除数据而创建的写入缓冲器306的空白区域中缓冲从主机102提供的新数据。当基于分散聚集方案操作写入缓冲器306的控制器130通过利用第二数据DATA2的第二编程操作PGM2时,控制器130可从写入缓冲器306中删除第二数据DATA2。
为了使控制器130对第二数据DATA2执行错误处理操作,可以读取并重新编程在存储器块中编程的第二数据DATA2。然而,由于存储器块是在第一编程操作PGM1刚刚在执行第二编程操作PGM2 之前失败的存储器块,因此该存储器块极有可能是异常存储器块。因此,由于即使当第二数据DATA2的第二编程操作PGM2被确定为通过时,从存储器块读取的第二数据DATA2的可靠性也不可靠,因此控制器130可通过强制第二编程操作PGM2失败来基于分散聚集方案将第二数据DATA2保留在写入缓冲器306中。
在步骤S720中,当利用第二DATA2的第二编程操作PGM2失败时(步骤S716中为“否”),控制器130可基于分散聚集方案强制第二编程操作PGM2失败并将第二数据DATA2保留在写入缓冲器 306中。
在步骤S722中,控制器130可控制存储器设备150以针对第一和第二数据DATA1和DATA2执行错误处理操作。控制器130可向存储器设备150提供缓冲在写入缓冲器306中的第一和第二数据 DATA1和DATA2,并控制存储器设备150以执行将所提供的第一和第二数据DATA1和DATA2重新编程到新的正常存储器块中的错误处理操作。控制器130可以在存储器设备150执行第一编程操作PGM1 之前将已经执行了第一编程操作PGM1的存储器块中编程的有效数据复制到新的正常存储器块中,并且将已经执行了第一编程操作 PGM1的存储器块处理为坏块。
当步骤S724中的第一编程操作PGM1成功时(步骤S712中为“否”),控制器130可以从写入缓冲器306中删除第一数据DATA1。控制器130可以将从主机102提供的新数据缓冲在通过删除第一数据 DATA1而创建的写入缓冲器306的空白空间中。
在步骤S726中,控制器130可利用第二数据DATA2检查第二编程操作PGM2是否成功。当第二编程操作PGM2成功时(步骤S726 中为“是”),控制器130可以从写入缓冲器306中删除第二数据 DATA2,并控制存储器设备150继续执行后续编程操作。
在步骤S728中,当利用第二数据DATA2的第二编程操作PGM2 失败时(步骤S726中为“否”),控制器130可强制第二编程操作 PGM2失败,并将第二数据DATA2保留在写入缓冲器306中。
在步骤S730中,控制器130可控制存储器设备150以对第二数据DATA2执行错误处理操作。控制器130可向存储器设备150提供缓冲在写入缓冲器306中的第二数据DATA2,并控制存储器设备150 以执行将所提供的第二数据DATA2重新编程到新的正常存储器块中的错误处理操作。
根据本发明的一个实施例,即使当写入缓冲器306基于分散聚集方案操作并且即使当第一编程操作PGM1在高速缓存编程操作期间利用第一数据DATA1失败且第二编程操作PGM2利用第二数据 DATA2成功时,控制器130可通过强制第二编程操作PGM2失败来将第二数据DATA2保留在写入缓冲器306中。因此,控制器130可通过使用缓冲在写入缓冲器306中的第一和第二数据DATA1和 DATA2来控制存储器设备150以对第一和第二数据DATA1和DATA2执行错误处理操作。因此,由于写入缓冲器306基于分散聚集方案操作,可通过在同时使用小容量的写入缓冲器306时执行高速缓存编程操作来提升编程操作的速度。
图8是示出根据本发明实施例的存储器系统110的框图。图8仅示意性示出了图1的数据处理系统100中与本发明相关的组成元件。
控制器130可包括编程管理单元810、失败处理单元804、缓冲器管理单元806、错误处理单元808和存储器144。编程管理单元810 可包括高速缓存编程管理器802,并且存储器144可包括写入缓冲器 306。
存储器设备150可包括存储器块852和862以及页面缓冲器854 和864。
存储器设备150可执行上面参照图7描述的步骤S704、S710、 S716和S726的操作。具体地,存储器设备150可以在控制器130的控制下执行编程操作,确定编程操作是否成功,并将成功报告或失败报告传送给控制器130。
高速缓存编程管理器802可执行之前参照图7描述的步骤S702 的操作。高速缓存编程管理器802可控制存储器设备150来执行高速缓存编程操作。如上参考图3A和图3B所述,在利用第一数据DATA1 执行第一编程操作PGM1的同时,高速缓存编程管理器802可向存储器设备150提供缓冲在写入缓冲器306中的第二数据DATA2。高速缓存编程管理器802可控制存储器设备150,以在利用第一数据 DATA1执行第一编程操作PGM1时,将提供的第二数据DATA2缓冲在页面缓冲器854中。高速缓存编程管理器802可控制存储器设备 150,以在利用第一数据DATA1完成第一编程操作PGM1之后立即将第二数据DATA2编程到存储器块852中。高速缓存编程管理器802 可向失败处理单元804提供关于存储器设备150的高速缓存编程操作是否成功的信息INFO_CP_PF。
失败处理单元804可执行上面参照图7描述的步骤S714、S718、 S724和S728的操作。失败处理单元804可以基于关于所提供的高速缓存编程操作是否成功的信息INFO_CP_PF来强制将编程操作处理为失败。根据本发明的实施例,当在执行高速缓存编程操作的同时第一数据DATA1的第一编程操作PGM1失败时,失败处理单元804可利用第二数据DATA2强制第二编程操作PGM2失败,这是因为即使利用第二数据DATA2的第二编程操作PGM2成功,利用第一数据 DATA1的第一编程操作PGM1也失败。失败处理单元804可以向缓冲器管理单元806提供第一失败信息INFO_FAIL1,其是关于在执行高速缓存编程操作时失败的编程操作(例如,第一编程操作PGM1和第二编程操作PGM2)的信息。
根据本发明的实施例,当在执行高速缓存编程操作的同时利用第一数据DATA1的第一编程操作PGM1失败时,失败处理单元804可利用第二数据DATA2强制第二编程操作PGM2失败,而不管利用第二数据DATA2的第二编程操作PGM2是否成功。因此,如稍后将描述的,缓冲器管理单元806可以在写入缓冲器306中不仅保留第一数据DATA1,而且还保留第二数据DATA2。错误处理单元808还可以对高速缓存编程操作执行错误处理操作,以及通过控制存储器设备 150以通过使用缓冲在写入缓冲器306中的第一和第二数据DATA1 和DATA2执行错误处理操作,基于分散聚集方案操作写入缓冲器。
缓冲器管理单元806可执行上面参照图7描述的步骤S714、S720、 S724和S728的操作。如前面参考图5A至图5C所描述的,缓冲器管理单元806可基于分散聚集方案将从主机102提供的数据(例如,第一数据DATA1和第二数据DATA2)缓冲在写入缓冲器306中,并从写入缓冲器306中删除编程数据。如前面参考图5A至图5C所描述的,根据分散聚集方案,缓冲器管理单元806可以从写入缓冲器306 中删除编程操作成功的数据,而不管数据在写入缓冲器306中缓冲的顺序如何。缓冲器管理单元806可将从主机102提供的新数据缓冲在通过删除数据而创建的空白空间中。此外,缓冲器管理单元806可通过失败处理单元804保留失败的编程操作(例如,第一编程操作PGM1 和第二编程操作PGM2)的数据(例如,第一数据DATA1和第二数据DATA2)。缓冲器管理单元806可向错误处理单元808提供第一数据信息INFO_DATA1,其是关于在执行高速缓存操作的同时失败的编程操作(例如,第一编程操作PGM1和第二编程操作PGM2)的数据(例如,第一数据DATA1和第二数据DATA2)的信息。
根据本发明的实施例,当在执行高速缓存编程操作的同时利用第一数据DATA1的第一编程操作PGM1失败时,失败处理单元804可利用第二数据DATA2强制第二编程操作PGM2失败,而不管利用第二数据DATA2的第二编程操作PGM2是否成功。当写入缓冲器306 基于分散聚集方案进行操作并且失败处理单元804基于从失败处理单元804提供的第一失败信息INFO_FAIL1(指示第一数据DATA1的第一编程操作PGM1失败)强制在高速缓存编程操作期间利用第二数据DATA2执行的第二编程操作PGM2失败,缓冲器管理单元806可通过在写入缓冲器306中保留第一数据DATA1和第二数据DATA2 来解决不对高速缓存编程操作执行错误处理操作的问题。
错误处理单元808可执行上面参照图7描述的步骤S722和S730 的操作。错误处理单元808可控制存储器设备150,以基于所提供的第一数据信息INFO_DATA1执行错误处理操作。错误处理单元808 可通过向存储器设备150提供来自写入缓冲器306的数据控制存储器设备150,以针对失败的编程操作(例如,第一编程操作PGM1和第二编程操作PGM2)的数据(例如,第一数据DATA1和第二数据 DATA2)执行错误处理操作。当失败处理单元804强制在高速缓存编程操作期间利用第二数据DATA2执行的第二编程操作PGM2由于第一数据DATA1的第一编程操作PGM1的失败而失败时,错误处理单元808可通过将缓冲在写入缓冲器306中的第一和第二数据DATA1 和DATA2编程到新的正常存储器块862(其不是已经执行了第一和第二编程操作PGM1和PGM2的存储器块852)中来控制存储器设备 150以执行错误处理操作。
图9A和图9B是示出交错编程的示图。
图9A仅示意性示出了用于描述图1的数据处理系统100中的交错编程操作所必需的基本组成元件。
存储器设备150可包括第一存储器管芯902和第二存储器管芯 904。第一存储器管芯902可包括第一存储器块912和第一页面缓冲器922,并且第二存储器管芯904可包括第二存储器块914和第二页面缓冲器924。
控制器130可控制存储器设备150,以同时对多个存储器管芯中的每个存储器管芯包括的存储器块中的多个数据块进行编程。控制器 130可向存储器设备150提供缓冲在写入缓冲器306中的第一数据 DATA1,并且控制存储器设备150以将第一数据DATA1缓冲在第一页面缓冲器922中。在向存储器设备150提供第一数据DATA1之后,控制器130可以向存储器设备150提供缓冲在写入缓冲器306中的第二数据DATA2。控制器130可控制存储器设备150,以在第一页面缓冲器922中缓冲第一数据DATA1之后执行将第一数据DATA1编程到第一存储器块912中的第一编程操作PGM1。
当执行第一编程操作PGM1时,控制器130可控制存储器设备150以执行在存储器设备150将第二数据DATA2缓冲到第二页面缓冲器924中之后对第二存储器块914中的第二数据DATA2进行编程的第二编程操作PGM2。
图9B是交错编程操作的时序图。
当多个数据在一个存储器管芯150中包括的存储器块中被编程时,控制器130可控制存储器设备150以在完成对当前数据的编程操作之后对后续数据执行编程操作。当在不包括在一个存储器管芯中的存储器块中而是在包括在多个存储器管芯中的每个存储器管芯中的至少一个存储器块的存储器块中编程多个数据时,控制器130可通过控制存储器设备150对多个数据执行交错编程操作来同时对多个数据执行编程操作。
参照图9B,在控制器130执行将第一数据DATA1缓冲在第一存储器管芯DIE1中包括的页面缓冲器中的第一数据输入操作T_1之后,控制器130可控制存储器设备150以对包括在第一存储器管芯DIE1 中的存储器块执行第一编程操作PGM1。控制器130可控制存储器设备150,以在执行第一编程操作PGM1的同时,在将第二数据DATA2 缓冲在第二存储器管芯DIE2中包括的页面缓冲器中的第二数据输入操作T_2之后,对包括在第二存储器管芯DIE2中的存储器块执行第二编程操作PGM2。
当第一和第二编程操作PGM1和PGM2完成时,控制器130可控制存储器设备150以执行操作VF_1和VF_2,用于检查第一和第二编程操作PGM1和PGM2是否成功。当第一和第二编程操作PGM1和 PGM2成功时,控制器130可控制存储器设备150以对第三和第四数据执行交错编程操作。控制器130可控制存储器设备150,以执行交错编程操作,其中存储器设备150对包括在不同存储器管芯中的存储器块中的多个数据同时执行编程操作,由此提高编程操作的速度。
图10A是示出在使用分散聚集方案的同时执行交错编程操作时发生的问题的示图。
类似于前面描述的高速缓存编程操作的错误处理操作,当第一编程操作PGM1在交错编程操作期间失败时,控制器130可控制存储器设备150,以不仅针对第一数据DATA1而且针对第二数据DATA2 执行错误处理操作,而不管第二编程操作PGM2是否成功。
例如,当与第一数据DATA1和第二数据DATA2对应的逻辑块地址LBA相同并且第一编程操作PGM1失败而第二编程操作PGM2 成功时,以及当存储器设备150仅针对第一数据DATA1执行错误处理操作而不针对第二数据DATA2执行错误处理操作时,存储器设备 150可比作为最新数据的第二数据DATA2更晚地编程第一数据 DATA1。因此,存在以下问题:控制器130确定物理上最后编程的第一数据DATA1作为逻辑地址的最新数据。因此,正如在高速缓存编程操作,在交错编程操作的情况下,当包括在第一存储器管芯中的第一存储器块的第一编程操作PGM1失败并且在第一编程操作PGM1 之后对包括在第二存储器管芯中的第二存储器块执行的第二编程操作PGM2成功时,控制器130可以控制存储器设备150,以不仅对第一数据DATA1执行错误处理操作,还对第二数据DATA2执行错误处理操作。
参考图10A,在存储器设备150执行将第一数据DATA1编程到第一存储器管芯902中包括的第一存储器块912中的第一编程操作 PGM1的同时,控制器130可以向存储器设备150提供缓冲在写入缓冲器306中的第二数据DATA2,并且在存储器设备150执行第一编程操作PGM1时,控制器130可控制存储器设备150以执行将第二数据DATA2编程到第二存储器管芯904中包括的第二存储器块914中的第二编程操作PGM2。
当第一编程操作PGM1失败且第二编程操作PGM2成功时,存储器设备150可以向控制器130提供第一编程操作PGM1的失败信号 FAIL_REPORT和第二编程操作PGM2的成功信号SUCCESS_REPORT。
根据分散聚集方案,当针对第一数据DATA1的第一编程操作 PGM1失败且针对第二数据DATA2的第二编程操作PGM2成功时,控制器130可通过保留缓冲在写入缓冲器306’中的第一数据DATA1 并且从写入缓冲器306’删除第二数据DATA2来在与写入缓冲器306’的第二数据DATA2相对应的区域INDEX8中缓冲从主机102提供的新数据DATA9。
如上所述,在交错编程操作的情况下,控制器130可控制存储器设备150,以执行在针对第一数据DATA1的第一编程操作PGM1失败时执行的不仅针对第一数据DATA1而且针对第二数据DATA2的错误处理操作,而不管针对第二数据DATA2的第二编程操作PGM2 是否成功。根据分散聚集方案,由于控制器130已经从写入缓冲器306’中删除第二数据DATA2并且在执行针对第一数据DATA1和第二数据DATA2的错误处理操作时已经在写入缓冲器306’中缓冲了从主机 102提供的新数据DATA9,因此存在不能对第二数据DATA2执行错误处理操作的问题。
图10B示出了根据本发明另一实施例的操作写入缓冲器的方法。
根据本发明的另一实施例,在基于分散聚集方案操作写入缓冲器 306的同时,当第一编程操作PGM1在交错编程操作期间失败,然后作为在第一编程操作PGM1之后执行的后续编程操作的第二编程操作PGM2成功时,控制器130可强制第二编程操作PGM2失败。当第一编程操作PGM1失败时,即使第二编程操作PGM2成功,控制器 130也可将第二数据DATA2保留在写入缓冲器306中。因此,控制器130可通过使用存储在写入缓冲器306中的第一数据DATA1和第二数据DATA2来控制存储器设备150执行错误处理操作。
参照图10B,当第一编程操作PGM1失败且第二编程操作PGM2 成功时,存储器设备150可以向控制器130提供第一编程操作PGM1 的失败信号FAIL_REPORT和第二编程操作PGM2的成功信号 SUCCESS_REPORT。控制器130可响应于失败信号FAIL_REPORT (指示第一数据DATA1的第一编程操作PGM1的失败)和成功信号 SUCCESS_REPORT(指示第二数据DATA2的第二编程操作PGM2 的成功),利用第二数据DATA2强制第二编程操作PGM2失败。
当第二数据DATA2的第二编程操作PGM2由于第一数据DATA1 的第一编程操作PGM1的失败而被强制处理为失败时,控制器130可基于分散聚集方案保留缓冲在写入缓冲器306”中的第一和第二数据 DATA1和DATA2,并且可以不从主机102向其提供附加数据。根据本发明的实施例,由于在执行错误处理操作的时刻第一和第二数据 DATA1和DATA2存在于写入缓冲器306’中,控制器130可以控制存储器设备150,以不仅针对第一数据DAT1执行错误处理操作,而且针对第二数据DATA2执行错误处理操作。
图11是示出根据本发明另一实施例的存储器系统110的框图。图11仅示意性示出了图1的数据处理系统100中与本发明相关的组成元件。
存储器设备150可包括第一存储器管芯902和第二存储器管芯 904。第一存储器管芯902可包括第一存储器块912和第一页面缓冲器922,并且第二存储器管芯904可包括第二存储器块914和第二页面缓冲器924。
控制器130可包括交错编程管理器1102、写入缓冲器306、失败处理单元804、缓冲器管理单元806和错误处理单元808。
交错编程管理器1102可以控制存储器设备150执行交错编程操作。交错编程管理器1102可以控制存储器设备150将缓冲在写入缓冲器306中的第一和第二数据DATA1和DATA2同时编程到包括在不同存储器管芯中的第一存储器块912和第二存储器块914中。在存储器设备150将缓冲在写入缓冲器306中的第一数据DATA1缓冲到第一页面缓冲器922之后,交错编程管理器1102可控制存储器设备 150,以通过将缓冲在写入缓冲器306中的第二数据DATA2缓冲到第二页面缓冲器924中来执行将第二数据DATA2编程到第二存储器块 914的第二编程操作PGM2,同时执行将第一数据DATA1编程到第一存储器块912中的第一编程操作PGM1。交错编程管理器1102可以向失败处理单元804提供关于存储器设备150的交错编程操作是否成功的信息INFO_CP_PF。
失败处理单元804可基于所提供的关于存储器设备150的交错编程操作是否成功的信息INFO_CP_PF将编程操作处理为失败。根据本发明的另一实施例,在执行交错编程操作的同时第一数据DATA1的第一编程操作PGM1失败时,失败处理单元804可由于第一数据DATA1的第一编程操作PGM1的失败强制第二数据DATA2的第二编程操作PGM2失败,即使第二数据DATA2的第二编程操作PGM2 成功。失败处理单元804可以向缓冲器管理单元806提供第二失败信息INFO_FAIL2,其是关于在执行交错编程操作时第一数据DATA1 和第二DATA2的第一编程操作PGM1和第二编程操作PGM2失败的信息。
根据本发明的另一实施例,当在执行交错编程操作的同时第一数据DATA1的第一编程操作PGM1失败时,失败处理单元804可强制第二数据DATA2的第二编程操作PGM2失败,由此,缓冲器管理单元可以在写入缓冲器306中同时保留第一数据DATA1和第二数据DATA2。这与第二数据DATA2的第二编程操作PGM2是否成功无关。因此,如稍后将更详细描述的,缓冲器管理单元806可以在写入缓冲器306中不仅保留第一数据DATA1,而且还保留第二数据DATA2。此外,错误处理单元808可通过控制存储器设备150来通过使用缓冲在写入缓冲器306中的第一和第二数据DATA1和DATA2执行错误处理操作从而同时执行用于交错编程操作的错误处理操作以及基于分散聚集方案操作写入缓冲器。
根据上面参照图5A-图5C描述的分散聚集方案,缓冲器管理单元806可将从主机102提供的数据缓冲在写入缓冲器306中并且从写入缓冲器306删除编程数据。根据本发明的另一实施例,当第一编程操作PGM1是交错编程操作期间失败时,无论第二编程操作PGM2是否成功,失败处理单元804可强制第二编程操作PGM2失败。当失败处理单元804基于从失败处理单元804提供的第二失败信息 INFO_FAIL2(指示第一数据DATA1的第一编程操作PGM1的失败) 在交错编程操作期间利用第二数据DATA2强制第二编程操作PGM2 失败时,缓冲器管理单元806可通过将所有第一数据DATA1和第二数据DATA2保留在写入缓冲器306中来基于分散聚集方案执行交错编程操作的错误处理操作。缓冲器管理单元806可以向错误处理单元 808提供第二数据信息INFO_DATA2,其可以是关于在执行交错编程操作时失败的编程操作(例如,第一编程操作PGM1和第二编程操作 PGM2)的数据(例如,第一数据DATA1和第二数据DATA2)的信息。
错误处理单元808可控制存储器设备150,以基于所提供的第二数据信息INFO_DATA2执行错误处理操作。当失败处理单元804由于第一编程操作PGM1的失败而强制在交错编程操作期间执行的第二编程操作PGM2失败时,错误处理单元808可控制存储器设备150,以通过分别将缓冲在写入缓冲器306中的第一和第二数据DATA1和 DATA2编程到分别包括在第一存储器管芯902和第二存储器管芯904 中的新的正常存储器块(它们不是分别执行第一和第二编程操作 PGM1和PGM2的第一存储器块912和第二存储器块914)中来执行错误处理操作。
根据本发明的实施例,即便写入缓冲器的大小可能很小,存储器系统也可以根据来自主机的请求,通过使用基于分散聚集方案的写入缓冲器来快速执行编程操作。此外,在当前编程操作正在执行的同时在当前编程操作之前执行的前一编程操作失败时,可以通过无条件地强制当前编程操作失败来快速准确地执行错误处理。
虽然已经针对具体实施例描述了本发明,但本领域技术人员应理解,可以在不脱离由以下权利要求限定的本发明的精神和范围的情况下进行各种改变和修改。

Claims (21)

1.一种存储器系统,包括:
存储器设备,包括存储器块、页面缓冲器以及第一存储器管芯和第二存储器管芯;
写入缓冲器,适于临时存储第一数据和第二数据;
编程管理单元,适于控制所述存储器设备,以利用所述第一数据和所述第二数据对所述存储器块顺序地执行第一编程操作和第二编程操作;
缓冲器管理单元,适于基于分散聚集方案管理所述写入缓冲器;
失败处理单元,适于在所述第一编程操作失败时强制所述第二编程操作失败;以及
错误处理单元,适于控制所述编程管理单元,以在所述第二编程操作被强制失败时针对临时存储在所述写入缓冲器中的所述第一数据和所述第二数据再次执行所述第一编程操作和所述第二编程操作。
2.根据权利要求1所述的存储器系统,
其中所述编程管理单元包括适于控制所述存储器设备以执行高速缓存编程操作的高速缓存编程管理器,并且
其中所述高速缓存编程管理器向所述存储器设备提供所述第二数据,并且控制所述存储器设备,以在执行所述第一编程操作的同时在所述页面缓冲器中临时存储所述第二数据,并且在完成所述第一编程操作之后立刻执行所述第二编程操作。
3.根据权利要求1所述的存储器系统,
其中所述编程管理单元包括适于控制所述存储器设备以执行交错编程操作的交错编程管理器,并且
其中所述交错编程管理器控制所述存储器设备,以在对包括在所述第一存储器管芯中的第一存储器块执行所述第一编程操作的同时对包括在所述第二存储器管芯中的第二存储器块执行所述第二编程操作。
4.根据权利要求2所述的存储器系统,其中当在执行所述高速缓存编程操作的同时所述第一编程操作失败时,所述失败处理单元强制所述第二编程操作失败。
5.根据权利要求4所述的存储器系统,其中当在执行所述高速缓存编程操作的同时所述第二编程操作被强制失败时,所述缓冲器管理单元在所述写入缓冲器中保留所述第一数据和所述第二数据。
6.根据权利要求5所述的存储器系统,其中所述错误处理单元控制所述高速缓存编程管理器,以通过使用临时存储在所述写入缓冲器中的所述第一数据和所述第二数据再次执行高速缓存编程操作。
7.根据权利要求3所述的存储器系统,其中当在执行所述交错编程操作的同时所述第一编程操作失败时,所述失败处理单元强制所述第二编程操作失败。
8.根据权利要求7所述的存储器系统,其中当在执行所述交错编程操作的同时所述第二编程操作被强制失败时,所述缓冲器管理单元在所述写入缓冲器中保留所述第一数据和所述第二数据。
9.根据权利要求8所述的存储器系统,其中所述错误处理单元控制所述交错编程管理器,以通过使用临时存储在所述写入缓冲器中的所述第一数据和所述第二数据再次执行所述交错编程操作。
10.根据权利要求1所述的存储器系统,其中当用于所述第二数据的编程操作成功时,所述缓冲器管理单元从所述写入缓冲器中删除所述第二数据,并且在通过删除所述第二数据创建的空白空间中临时存储从主机接收的新数据。
11.一种用于操作存储器系统的方法,包括:
临时存储第一数据和第二数据;
利用所述第一数据和所述第二数据对存储器块顺序地执行第一编程操作和第二编程操作;
基于分散聚集方案管理写入缓冲器;
当所述第一编程操作失败时,强制所述第二编程操作失败;以及
当所述第二编程操作被强制失败时,针对临时存储在所述写入缓冲器中的所述第一数据和所述第二数据,控制再次执行所述第一编程操作和所述第二编程操作。
12.根据权利要求11所述的方法,其中所述顺序地执行包括执行高速缓存编程操作,包括:
向所述存储器设备提供所述第二数据,并且控制所述存储器设备以在执行所述第一编程操作的同时在所述页面缓冲器中临时存储所述第二数据;以及
在完成所述第一编程操作之后立刻执行所述第二编程操作。
13.根据权利要求11所述的方法,其中所述顺序地执行包括执行交错编程操作,包括:
控制所述存储器设备,以在对包括在所述第一存储器管芯中的第一存储器块执行所述第一编程操作的同时对包括在所述第二存储器管芯中的第二存储器块执行所述第二编程操作。
14.根据权利要求12所述的方法,其中当在执行所述高速缓存编程操作的同时所述第一编程操作失败时,所述第二编程操作被强制失败。
15.根据权利要求14所述的方法,其中基于所述分散聚集方案管理所述写入缓冲器包括:当在执行所述高速缓存编程操作的同时所述第二编程操作被强制失败时,在所述写入缓冲器中保留所述第一数据和所述第二数据。
16.根据权利要求15所述的方法,其中控制再次执行所述第一编程操作和所述第二编程操作包括:当所述第二编程操作被强制失败时,通过使用临时存储在所述写入缓冲器中的所述第一数据和所述第二数据再次执行所述高速缓存编程操作。
17.根据权利要求13所述的方法,其中当在执行所述交错编程操作的同时所述第一编程操作失败时,所述第二编程操作被强制失败。
18.根据权利要求17所述的方法,其中基于所述分散聚集方案管理所述写入缓冲器包括:当在执行所述交错编程操作的同时所述第二编程操作被强制失败时,在所述写入缓冲器中保留所述第一数据和所述第二数据。
19.根据权利要求18所述的方法,其中控制再次执行所述第一编程操作和所述第二编程操作包括:当所述第二编程操作被强制失败时,通过使用临时存储在所述写入缓冲器中的所述第一数据和所述第二数据,再次执行所述交错编程操作。
20.根据权利要求11所述的方法,其中所述管理包括:当用于所述第二数据的编程操作成功时,从所述写入缓冲器删除所述第二数据,并且在通过删除所述第二数据创建的空白空间中临时存储从主机接收的新数据。
21.一种存储器系统,包括:
存储器设备;以及
控制器,包括被配置为根据分散聚集方案缓冲第一数据和第二数据的缓冲器,
其中所述控制器被配置为:
控制所述存储器设备,以执行对缓冲的所述第一数据进行编程并随后对缓冲的所述第二数据进行编程的流水线方案编程操作;
当第一编程失败时,将随后的编程处理为失败,以及
控制所述存储器设备以分别使用缓冲的所述第一数据和所述第二数据再次执行所述第一编程和所述随后的编程。
CN201911253522.1A 2019-04-11 2019-12-09 存储器系统及其操作方法 Withdrawn CN111813328A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0042571 2019-04-11
KR1020190042571A KR20200120113A (ko) 2019-04-11 2019-04-11 메모리 시스템 및 그것의 동작방법

Publications (1)

Publication Number Publication Date
CN111813328A true CN111813328A (zh) 2020-10-23

Family

ID=72747937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911253522.1A Withdrawn CN111813328A (zh) 2019-04-11 2019-12-09 存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US11113202B2 (zh)
KR (1) KR20200120113A (zh)
CN (1) CN111813328A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210004629A (ko) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11829268B2 (en) * 2019-10-25 2023-11-28 Micron Technology, Inc. Data recovery management for memory
JP7287318B2 (ja) * 2020-03-17 2023-06-06 株式会社デンソー 車両用データ記録装置
CN113672426A (zh) * 2021-08-24 2021-11-19 浙江大华技术股份有限公司 存储设备的异常确定方法及装置、存储介质、电子装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425053B1 (en) * 2000-06-27 2002-07-23 Adaptec, Inc. System and method for zeroing data storage blocks in a raid storage implementation
US8397024B2 (en) 2008-10-25 2013-03-12 Sandisk 3D Llc Page buffer program command and methods to reprogram pages without re-inputting data to a memory device
US8176390B2 (en) * 2009-04-16 2012-05-08 Lsi Corporation Single XOR operation WEAVER reconstruction of a failed drive of a RAID
US10175990B2 (en) * 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
KR101212739B1 (ko) 2010-12-21 2012-12-14 에스케이하이닉스 주식회사 비휘발성 메모리장치 및 이의 동작방법
US8868517B2 (en) * 2012-03-29 2014-10-21 Lsi Corporation Scatter gather list for data integrity

Also Published As

Publication number Publication date
KR20200120113A (ko) 2020-10-21
US11113202B2 (en) 2021-09-07
US20200327065A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
CN107766257B (zh) 存储器系统及其操作方法
CN110765035B (zh) 存储器系统及其操作方法
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
US11113202B2 (en) Operating method forcing the second operation to fail using a scatter-gather buffer and memory system thereof
CN110970074B (zh) 存储器系统及其操作方法
US11537318B2 (en) Memory system and operating method thereof
CN110968522B (zh) 存储器系统及其操作方法、包括存储器系统的数据库系统
CN109147854B (zh) 数据存储装置及其操作方法
KR102553170B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN110928805B (zh) 存储器系统及其操作方法
US10942678B2 (en) Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
CN111078584A (zh) 存储器系统及其操作方法
CN110119326B (zh) 数据存储装置及其操作方法
CN110389907B (zh) 电子装置
CN111831218A (zh) 控制器及其操作方法
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
CN109918315B (zh) 存储器系统及存储器系统的操作方法
CN111755061A (zh) 检查存储器系统中的存储器装置的操作状态的设备及方法
KR20200121068A (ko) 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러
CN114968856B (zh) 存储器系统及其操作方法
CN115114178A (zh) 存储器系统及其操作方法
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
CN114520013A (zh) 存储器系统及其操作方法
KR20220005832A (ko) 메타 데이터 관리를 위한 메모리 시스템 및 메모리 시스템의 동작방법
CN110908829A (zh) 存储器系统及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20201023