CN111105832A - 存储装置和操作存储装置的方法 - Google Patents
存储装置和操作存储装置的方法 Download PDFInfo
- Publication number
- CN111105832A CN111105832A CN201910922188.8A CN201910922188A CN111105832A CN 111105832 A CN111105832 A CN 111105832A CN 201910922188 A CN201910922188 A CN 201910922188A CN 111105832 A CN111105832 A CN 111105832A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- write buffer
- data block
- cache
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
一种存储装置,包括:存储器装置,包括存储器单元阵列和被耦合至所述存储器单元阵列的页面缓冲器组;以及存储器控制器,被配置为存储要被顺序地编程的多个缓存数据块,并且被配置为:当完成对所述多个缓存数据块之中的当前缓存数据块的最低有效位(LSB)数据的编程时,将与下一个编程序列相对应的下一个缓存数据块输入至所述页面缓冲器组。
Description
相关申请的交叉引用
本申请要求于2018年10月29日提交的第10-2018-0130284号韩国专利申请的优先权,该申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体上涉及一种电子装置,并且更具体地涉及一种存储装置和操作存储装置的方法。
背景技术
存储装置通常用于在主机装置(诸如计算机或者智能电话)的控制下存储数据。存储装置可以包括在其中存储数据的存储器装置和控制存储器装置的存储器控制器。这种存储器装置被分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供电时存储数据并且在供电中断时丢失所存储的数据的存储器装置。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置是即使在供电中断时也在其中保存所存储的数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除和可编程ROM(EEPROM)以及闪存。
发明内容
本公开的各个实施例涉及一种具有改进的缓存性能的存储装置和操作存储装置的方法。
本公开的一个实施例可以提供一种存储装置。该存储装置包括:存储器装置,包括存储器单元阵列和被耦合至存储器单元阵列的页面缓冲器组;以及存储器控制器,被配置为存储要被顺序地编程的多个缓存数据块,并且被配置为当完成对多个缓存数据块之中的当前缓存数据块的最低有效位(LSB)数据的编程时,将与下一个编程序列相对应的下一个缓存数据块输入至页面缓冲器组。
本公开的一个实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,包括存储器单元阵列和被耦合至存储器单元阵列的页面缓冲器组;以及存储器控制器,包括写入缓冲器和写入缓冲器控制器,其中,写入缓冲器被配置为存储要被顺序地编程的多个缓存数据块,以及其中,写入缓冲器控制器被配置为:在多个缓存数据块正在被输入至页面缓冲器组时,当已经完成将先前被输入至页面缓冲器组的先前的缓存数据块编程至存储器单元阵列时,从写入缓冲器删除缓存数据块。
本公开的一个实施例可以提供一种用于操作存储装置的方法。该存储装置可以包括:存储器装置,该存储器装置包括存储器单元阵列和被耦合至存储器单元阵列的页面缓冲器组;以及存储器控制器,该存储器控制器包括写入缓冲器。该方法可以包括:将主机数据作为多个缓存数据块存储在写入缓冲器中,在多个缓存数据块正在被顺序地输入至页面缓冲器组时,将多个缓存数据块中的任何一个缓存数据块编程至存储器单元阵列,以及在已经完成对当前缓存数据块的LSB数据的编程时,将与下一个编程序列相对应的下一个缓存数据块输入至页面缓冲器组。
本公开的一个实施例可以提供一种存储器系统。该存储器系统包括:存储器装置,包括页面缓冲器组和存储器单元阵列;写入缓冲器,被配置为缓存数据序列;以及控制单元,被配置为在向页面缓冲器组提供被缓存在写入缓冲器中的后续数据时,控制存储器装置执行将当前存储在页面缓冲器组中的当前数据编程至存储器单元阵列中的缓存编程操作,其中,控制单元在完成对当前数据的编程时从写入缓冲器删除当前数据,以及其中,控制单元在完成对当前数据的最低有效位(LSB)部分的编程时,将后续数据从写入缓冲器提供至页面缓冲器组。
本公开的一个实施例可以提供一种存储器系统。该存储器系统包括:多个存储器装置,均包括页面缓冲器组和存储器单元阵列;写入缓冲器,被配置为缓存数据序列;以及控制单元,被配置为控制存储器装置中的每个存储器装置根据交叉存取方案执行缓存编程操作,其中,控制单元在完成将当前存储在页面缓冲器组中的当前数据编程至存储器单元阵列中时,从写入缓冲器删除当前数据,以及其中,控制单元在完成对当前数据的最低有效位(LSB)部分的编程时,将后续数据从写入缓冲器提供至页面缓冲器组。
附图说明
图1是图示了根据本公开的一个实施例的存储装置的图。
图2是图示了图1的存储器装置的结构的图。
图3是图示了图2的存储器单元阵列的一个实施例的图。
图4是图示了图3的存储器区块BLK1至BLKz中的任何一个存储器区块BLKa的电路图。
图5是图示了图3的存储器区块BLK1至BLKz中的任何一个存储器区块BLKb的示例的电路图。
图6是图示了根据一个实施例的存储器装置和存储器控制器的操作的图。
图7是描述了删除存储在写入缓冲器中的缓存数据块的操作和将缓存数据块输入至页面缓冲器的操作的图。
图8是描述了存储至少一个数据位的存储器单元的阈值电压分布的图。
图9是图示了根据一个实施例的缓存编程操作的图。
图10A是图示了对多个装置执行的缓存编程操作的时序图。
图10B是图示了根据一个实施例的对多个装置执行的缓存编程操作的时序图。
图11是图示了根据一个实施例的存储装置的操作的流程图。
图12是图示了根据一个实施例的存储装置的操作的流程图。
图13是图示了根据一个实施例的存储器装置的操作的流程图。
图14是图示了图1的存储器控制器的一个实施例的图。
图15是图示了应用根据本公开的一个实施例的存储装置的存储器卡系统的框图。
图16是图示了应用根据本公开的一个实施例的存储装置的固态驱动器(SSD)系统的框图。
图17是图示了应用根据本公开的一个实施例的存储装置的用户系统的框图。
具体实施方式
在本说明书或者申请中介绍的本公开的实施例中的具体结构或者功能描述仅仅是为了描述本公开的实施例。描述不应被解释为限于在本说明书或者申请中描述的实施例。
将不基于实施例来详细描述本公开。然而,本公开可以体现为许多不同的形式并且不应被解释为仅仅限于本文所陈述的实施例,而是应被解释为覆盖落在本公开的构思和技术范围内的修改、等同物或者替代物。然而,这并不旨在将本公开限制于特定的实施模式,并且应当理解,在本公开中涵盖不脱离本公开的精神和技术范围的所有改变、等同物和替代物。
要理解,虽然在本文中可以使用术语“第一”和/或“第二”来描述各种元件,但是这些元件不应受限于这些术语。这些术语仅仅用于区分一个元件与另一元件。例如,在不脱离本公开的教导的情况下,下面讨论的第一元件可以被称为第二元件。同样,第二元件也可以被称为第一元件。
要理解,当元件被称为“耦合”或者“连接”至另一元件时,其可以直接耦合或者连接至另一元件,或者在它们之间可以存在中间元件。相反,应当理解,当元件被称为“直接耦合”或者“直接连接”至另一元件时,不存在中间元件。描述元件之间的关系的其它表述,诸如,“在......之间”、“直接在......之间”、“与......相邻”或者“直接与......相邻”,应当以相同的方式来解释。
本文所使用的术语仅仅是为了描述特定实施例,而并非旨在是限制性的。在本公开中,单数形式也旨在包括复数形式,除非上下文另有清楚指示。应当进一步理解,术语“包括”、“包含”、“具有”等在本说明书中使用时指定所陈述的特征、整数、步骤、操作、元件、部件和/或它们的组合的存在,但是并不排除一个或者多个其它特征、整数、步骤、操作、元件、部件和/或其组合的存在或者添加。
除非另有规定,否则本文所使用的所有术语(包括技术术语和科学术语)都具有本公开所属的领域的普通技术人员通常所理解的相同含义。要进一步理解,本文所使用的术语应该被解释为具有与它们在本说明书和有关领域的上下文中的含义一致的含义,并且将不应该以理想化或者过度正规的意义进行解释,除非本文中如此清楚地定义。
省略对本领域的技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这是为了省略不必要的描述,以便使本公开的主题清楚。
现在将在下文中参照附图更充分地描述本公开的各个实施例,使得本领域的普通技术人员可以容易地执行本公开的技术构思,在附图中图示了本公开的优选实施例。
图1是图示了根据本公开的一个实施例的存储装置的图。
参照图1,存储装置50可以包括存储器装置100和存储器控制器200,存储器控制器200控制存储器装置100的操作,存储器控制器200可被称为控制单元。存储装置50可以是在主机300的控制下存储数据的装置,主机300诸如是移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视机(TV)、平板个人计算机(PC)或者车载信息娱乐系统等。
存储装置50可以根据主机接口被制造为各种类型的存储装置中的任何一种,该主机接口是与主机300的通信方案。存储装置50可以被实施为各种类型的存储装置中的任何一种,例如,固态驱动器(SSD)、多媒体卡(诸如,MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或者微型MMC)、安全数字卡(诸如,SD、迷你SD或者微型SD)、通用存储总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储器卡国际协会(PCMCIA)卡式存储装置、外围部件互连(PCI)卡式存储装置、PCI快速(PCI-e或者PCIe)卡式存储装置、紧凑式闪存(CF)卡、智能媒体卡和记忆棒。
存储装置50可以被制造成各种类型的封装形式中的任何一种。例如,存储装置50可以被制造成各种类型的封装形式中的任何一种,诸如,堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板载芯片(COB)、晶片级制造封装(WFP)和晶片级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制而被操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以实施为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储器区块。每个存储器区块可以包括多个存储器单元。单个存储器区块可以包括多个页面。在一个实施例中,每个页面可以是将数据存储在存储器装置100中或者读取存储在存储器装置100中的数据的单位。存储器区块可以是擦除数据的单位。在一个实施例中,存储器装置100可以采取多种替代形式,诸如,双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功耗双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功耗DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪存、垂直NAND闪存、NOR闪存装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或者自旋转移力矩RAM(STT-RAM)。在本说明书中,为了便于描述,将假设存储装置100是NAND闪存来进行描述。
存储器装置100可以接收来自存储器控制器200的命令和地址,并且可以访问存储器单元阵列的通过地址选择的区域。也就是说,存储器装置100可以对通过地址选择的区域执行与命令相对应的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程至通过地址选择的区域。在读取操作期间,存储器装置100可以从通过地址选择的区域读取数据。在擦除操作期间,存储器装置100可以将存储在通过地址选择的区域中的数据擦除。
存储器装置100可以执行正常编程操作。正常编程操作可以是在完成接收来自存储器控制器200的当前数据之后将当前数据编程至存储器单元阵列的操作。在正常编程操作期间,在当前数据正在被编程时,存储器装置100无法接收来自存储器控制器200的后续数据。
存储器装置100可以执行缓存编程操作。缓存编程操作可以是在接收到来自存储器控制器200的后续数据时将当前数据编程至存储器单元阵列的操作。在缓存编程操作期间,即使在当前数据正在被编程时,存储器装置100也可以接收来自存储器控制器200的后续数据。当连续数据片被编程时,缓存编程操作可以比正常编程操作更快地执行。
在一个实施例中,存储器装置100可以包括页面缓冲器组123和缓存编程操作控制器131。
页面缓冲器组123可以存储从存储器控制器200接收到的数据。页面缓冲器组123可以包括用于存储接收到的数据的多个页面缓冲器。被包括在页面缓冲器组123中的多个页面缓冲器可以电耦合至存储器单元阵列。存储在多个页面缓冲器中的数据可以被编程至存储器单元阵列。在存储在多个页面缓冲器中的一些页面缓冲器中的当前数据片被编程至存储器单元阵列时,其余的页面缓冲器也可以接收来自存储器控制器200的后续数据,然后存储后续数据。
缓存编程操作控制器131可以响应于从存储器控制器200提供的编程命令而将存储在页面缓冲器组123中的数据编程至存储器单元阵列。具体地,缓存编程操作控制器131可以对存储在页面缓冲器组123中的数据执行缓存编程操作。缓存编程操作可以是在后续数据从存储器控制器200被接收并且被存储在页面缓冲器组中时将存储在页面缓冲器组中的当前数据编程至存储器单元阵列的操作。
缓存编程操作控制器131可以按照最低有效位(LSB)数据到最高有效位(MSB)数据的顺序将存储在页面缓冲器组123中的数据编程至存储器单元阵列,所存储在页面缓冲器组123中的数据可以包括LSB数据至MSB数据。例如,当每个存储器单元都是三层单元时,缓存编程操作控制器131可以按照最低有效位(LSB)数据、中央有效位(CSB)数据和最高有效位(MSB)数据的顺序将存储在页面缓冲器组123中的数据编程至存储器单元阵列,所存储在页面缓冲器组123中的数据可以包括LSB数据、中央有效位(CSB)数据和MSB数据。
缓存编程操作控制器131可以响应于存储器控制器200所提供的状态读取命令而将状态读取响应提供至存储器控制器200。状态读取响应可以包括就绪信息。就绪信息可以指示因为针对当前命令的操作的完成而针对后续命令就绪的状态。例如,就绪信息可以指示是否已经响应于由存储器控制器200所提供的编程命令而完成对存储在页面缓冲器组123中的数据执行的编程操作。
存储器控制器200可以控制存储装置50的整体操作。
当将电力施加至存储装置50上时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪存装置时,存储器控制器200可以运行如下固件,诸如,用于控制主机300与存储器装置100之间的通信的闪存转换层(FTL)。
在一个实施例中,存储器控制器200可以接收来自主机300的数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换成物理区块地址(PBA),该物理区块地址(PBA)指示被包括在存储器装置100中并且要向其中存储数据的存储器单元的地址。
存储器控制器200可以控制存储器装置100,使得响应于从主机300接收到的请求来执行编程操作、读取操作或者擦除操作。在编程操作期间,存储器控制器200可以将编程命令、物理区块地址(PBA)和数据提供至存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理区块地址(PBA)提供至存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理区块地址(PBA)提供至存储器装置100。
在一个实施例中,存储器控制器200可以自主地生成编程命令、地址和数据,而不管是否接收到来自主机300的请求,并且可以将编程命令、地址和数据发送至存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供至存储器装置100,以便执行后台操作,诸如,用于耗损均衡的编程操作和用于垃圾收集的编程操作。
在一个实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以交叉存取的方式控制存储器装置100以改进操作性能。交叉存取方式可以是使至少两个存储器装置100的操作周期彼此重叠的操作方式。
在一个实施例中,存储器控制器200可以包括写入缓冲器210和写入缓冲器控制器220。
写入缓冲器210可以存储从主机300接收到的主机数据。写入缓冲器210可以缓存数据块为单位存储接收到的主机数据。接收到的主机数据可以由多个缓存数据块配置。多个缓存数据块可以被顺序地提供并且按照预设顺序被编程至存储器装置100。
写入缓冲器控制器220可以顺序地将存储在写入缓冲器210中的多个缓存数据块提供至存储器装置100。写入缓冲器控制器220可以将缓存数据块与针对缓存数据块的编程命令一起提供至存储器装置100。写入缓冲器控制器可以利用用于执行写入缓冲器控制功能的处理器、固件或者电路系统来实施。
写入缓冲器控制器220可以确定将存储在写入缓冲器210中的缓存数据块提供至存储器装置100的时间点。
在一个实施例中,写入缓冲器控制器220可以将当前缓存数据块提供至存储器装置100。当预设时间已经过去时,写入缓冲器控制器220可以将后续缓存数据块提供至存储器装置100。预设时间可以是完成将提供的当前缓存数据块的LSB数据编程至存储器单元阵列的时间点。
在一个实施例中,写入缓冲器控制器220可以从写入缓冲器210删除其到存储器单元阵列中的编程已经完成的缓存数据块。写入缓冲器210的存储删除的缓存数据块的存储区域可以接收来自主机300的后续主机数据并且存储后续主机数据。
写入缓冲器控制器220可以将状态读取命令提供至存储器装置100,以便确定是否已经完成将存储在写入缓冲器210中的缓存数据块编程至存储器单元阵列。写入缓冲器控制器220可以将状态读取命令提供至存储器装置100,并且可以从存储器装置100获取状态读取响应。写入缓冲器控制器220可以基于被包括在状态读取响应中的就绪信息来确定将从写入缓冲器210被提供至页面缓冲器的缓存数据块编程至存储器单元阵列完成的时间点。就绪信息可以指示是否已经完成响应于写入缓冲器控制器220所提供的编程命令而将缓存数据块编程至存储器单元阵列。
主机300可以使用各种通信方法中的至少一种来与存储装置50通信,诸如,通用串行总线(USB)、序列式AT附件(SATA)、串行连接SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围部件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册DIMM(RDIMM)和负荷减少的DIMM(LRDIMM)通信方法。
图2是图示了图1的存储器装置的结构的图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储器区块BLK1至BLKz。多个存储器区块BLK1至BLKz通过行线RL耦合至地址解码器121。存储器区块BLK1至BLKz通过位线BL1至BLm耦合至页面缓冲器组123。存储器区块BLK1至BLKz中的每一个包括多个存储器单元。在一个实施例中,多个存储器单元是非易失性存储器单元。在多个存储器单元中,耦合至相同的字线的存储器单元被定义为单个页面。也就是说,存储器单元阵列110由多个页面组成。根据本公开的一个实施例,被包括在存储器单元阵列110中的多个存储器区块BLK1至BLKz中的每个存储器区块可以包括多个虚设单元。作为虚设单元,一个或者多个虚设单元可以串联耦合在漏极选择晶体管与存储器单元之间以及在源极选择晶体管与存储器单元之间。
存储器装置100的存储器单元中的每一个存储器单元可以实施为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)。
外围电路120可以包括地址解码器121、电压生成器122、页面缓冲器组123、数据输入/输出电路124和感测电路125。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110,使得执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL耦合至存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和共用源极线。根据本公开的一个实施例,字线可以包括正常字线和虚设字线。根据本公开的一个实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下被操作。地址解码器121接收来自控制逻辑130的地址ADDR。
地址解码器121可以解码接收到的地址ADDR之中的区块地址。地址解码器121响应于解码的区块地址从存储器区块BLK1至BLKz之中选择至少一个存储器区块。地址解码器121配置为解码接收到的地址ADDR之中的行地址RADD。地址解码器121可以通过响应于解码的行地址RADD将从电压生成器122供应的电压施加至至少一个字线WL来选择所选存储器区块的至少一条字线。
在编程操作期间,地址解码器121可以将编程电压施加至所选字线并且将电平低于编程电压的电平的通过电压施加至未被选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加至所选字线并且将电平高于验证电压的电平的验证通过电压施加至未被选择的字线。
在读取操作期间,地址解码器121可以将读取电压施加至所选字线并且将电平高于读取电压的电平的读取通过电压施加至未被选择的字线。
根据本公开的一个实施例,可以基于存储器区块来执行存储器装置100的擦除操作。在擦除操作期间,输入至存储器装置100的地址ADDR包括区块地址。地址解码器121可以解码区块地址并且响应于解码的区块地址选择单个存储器区块。在擦除操作期间,地址解码器121可以将接地电压施加至耦合至所选存储器区块的字线。
根据本公开的一个实施例,地址解码器121可以解码接收到的地址ADDR之中的列地址。解码的列地址可以被转移至页面缓冲器组123。在一个实施例中,地址解码器121可以包括如下部件,诸如,行解码器、列解码器和地址缓冲器。
电压生成器122可以使用供应给存储器装置100的外部电源电压生成多个操作电压Vop。电压生成器122可以在控制逻辑130的控制下操作。
在一个实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。
在一个实施例中,电压生成器122可以使用外部电源电压或者内部电源电压生成多个操作电压Vop。电压生成器122可以生成存储器装置100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。
电压生成器122可以包括用于接收内部电源电压以便生成具有各种电压电平的多个操作电压Vop的多个泵浦电容器(pumping capacitor),并且可以在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个操作电压Vop。
生成的操作电压Vop可以通过地址解码器121被供应给存储器单元阵列110。
页面缓冲器组123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm耦合至存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下被操作。
第一至第m页面缓冲器PB1至PBm执行与数据输入/输出电路124的数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收要被存储的数据DATA。
在编程操作期间,当将编程脉冲施加至所选字线时,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm将通过数据输入/输出电路124接收的要被存储的数据DATA转移至所选存储器单元。所选页面中的存储器单元是基于接收到的数据DATA被编程的。耦合至被施加了编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。耦合至被施加了编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以得到维持。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm通过位线BL1至BLm从所选存储器单元读取存储在所选存储器单元中的数据DATA。
在读取操作期间,页面缓冲器组123可以通过位线BL从所选页面中的存储器单元读取数据DATA,并且可以将读取的数据DATA存储在第一至第m页面缓冲器PB1至PBm中。
在擦除操作期间,页面缓冲器组123可以允许位线BL浮置。在一个实施例中,页面缓冲器组123可以包括列选择电路。
在一个实施例中,在当前存储在被包括在页面缓冲器组123中的多个页面缓冲器中的一些页面缓冲器中的数据片正在被编程至存储器单元阵列110时,其余页面缓冲器也可以从存储器控制器200接收后续数据并且然后存储后续数据。
数据输入/输出电路124通过数据线DL被耦合至第一个至第m个页面缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑130的控制被操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收要被存储的数据DATA。在读取操作期间,数据输入/输出电路124将从被包括在页面缓冲器组123中的第一至第m页面缓冲器PB1至PBm接收到的数据DATA输出至外部控制器。
在读取操作或者验证操作期间,感测电路125可以响应于控制逻辑130所生成的启用位信号VRYBIT生成参考电流,并且可以通过将从页面缓冲器组123接收到的感测电压VPB与通过参考电流生成的参考电压进行比较,来将通过信号或者失败信号输出至控制逻辑130。
控制逻辑130可以耦合至地址解码器121、电压生成器122、页面缓冲器组123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的整体操作。控制逻辑130可以响应于从外部装置发送的命令CMD被操作。
控制逻辑130可以通过响应于命令CMD和地址ADDR生成各种类型的信号来控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR生成操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和启用位VRYBIT。控制逻辑130可以将操作信号OPSIG输出至电压生成器122,将行地址RADD输出至地址解码器121,将页面缓冲器控制信号PBSIGNALS输出至页面缓冲器组123,并且将启用位VRYBIT输出至感测电路125。另外,控制逻辑130可以响应于从感测电路125输出的通过或者失败信号PASS或者FAIL确定验证操作是通过还是失败。
在一个实施例中,控制逻辑130可以包括缓存编程操作控制器131。
缓存编程操作控制器131可以接收来自存储器控制器200的编程命令、地址和数据。接收到的数据可以存储在被包括在页面缓冲器组123中的页面缓冲器中。缓存编程操作控制器131可以响应于从存储器控制器200接收到的编程命令和地址,而将接收到的数据编程至存储器单元阵列110。
在一个实施例中,缓存编程操作控制器131可以执行缓存编程操作。缓存编程操作控制器131可以在接收来自存储器控制器200的后续缓存数据块时将当前存储在页面缓冲器组123中的缓存数据块编程到存储器单元阵列110。
在一个实施例中,缓存编程操作控制器131可以按照LSB数据到MSB数据的顺序将存储在页面缓冲器组123中的每个缓存数据块编程至存储器单元阵列110所存储在页面缓冲器组123中的数据可以包括LSB数据至MSB数据。
缓存编程操作控制器131可以响应于存储器控制器200所提供的状态读取命令将状态读取响应提供至存储器控制器200。状态读取响应可以包括就绪信息。就绪信息可以指示是否已经响应于存储器控制器200所提供的编程命令而完成将存储在页面缓冲器组123中的缓存数据块编程至存储器单元阵列110。
图3是图示了图2的存储器单元阵列的实施例的图。
参照图3,存储器单元阵列110包括多个存储器区块BLK1至BLKz。每个存储器区块可以具有三维(3D)结构。每个存储器区块可以包括堆叠在基板上的多个存储器单元。这些存储器单元设置在正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向上。下面将参照图4和图5具体地描述每个存储器区块的结构。
图4是图示了图3的存储器区块BLK1至BLKz中的任何一个存储器区块BLKa的电路图。
参照图4,存储器区块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在一个实施例中,单元串CS11至CS1m和CS21至CS2m中的每个单元串都形成为‘U’形。在存储器区块BLKa中,m个单元串设置在行方向(即,正(+)X方向)上。在图4中,两个单元串被图示为设置在列方向(即,正(+)Y方向)上。然而,该图示是为了便于描述而被做出的,并且应当理解,三个或者三个以上的单元串可以设置在列方向上。
多个单元串CS11至CS1m和CS21至CS2m中的每个单元串都包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以分别具有相似的结构。在一个实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在一个实施例中,用于提供沟道层的柱可以被提供至每个单元串。在一个实施例中,用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱可以被提供至每个单元串。
每个单元串的源极选择晶体管SST连接在共用源极线CSL和存储器单元MC1至MCp之间。
在一个实施例中,设置在相同的行中的单元串的源极选择晶体管耦合至在行方向上延伸的源极选择线,并且设置在不同的行中的单元串的源极选择晶体管耦合至不同的源极选择线。在图4中,在第一行中的单元串CS11至CS1m的源极选择晶体管耦合至第一源极选择线SSL1。在第二行中的单元串CS21至CS2m的源极选择晶体管耦合至第二源极选择线SSL2。
在一个实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同耦合至单个源极选择线。
在每个单元串中的第一至第n存储器单元MC1至MCn耦合在源极选择晶体管SST与漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可以被分成第一至第p存储器单元MC1至MCp以及第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地设置在与正(+)Z方向相反的方向上并且串联连接在源极选择晶体管SST与管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn顺序地设置在+Z方向上并且串联连接在管道晶体管PT与漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn通过管道晶体管PT彼此耦合。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别耦合至第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极耦合至管线PL。
每个单元串的漏极选择晶体管DST耦合在对应的位线与存储器单元MCp+1至MCn之间。在行方向上的单元串耦合至在行方向上延伸的漏极选择线。在第一行中的单元串CS11至CS1m的漏极选择晶体管耦合至第一漏极选择线DSL1。在第二行中的单元串CS21至CS2m的漏极选择晶体管耦合至第二漏极选择线DSL2。
设置在列方向上的单元串耦合至在列方向上延伸的位线。在图4中,在第一列中的单元串CS11和CS21耦合至第一位线BL1。在第m列中的单元串CS1m和CS2m耦合至第m位线BLm。
设置在行方向上的单元串中的耦合至同一字线的存储器单元构成单个页面。例如,在第一行中的单元串CS11至CS1m之中的耦合至第一字线WL1的存储器单元构成单个页面。在第二行中的单元串CS21至CS2m之中的耦合至第一字线WL1的存储器单元构成单个附加页面。设置在单个行的方向上的单元串可以通过选择漏极选择线DSL1和DSL2中的任何一个来选择。单个页面可以通过选择字线WL1至WLn中的任何一个来从所选单元串中选择。
在一个实施例中,替代第一至第m位线BL1至BLm,可以提供偶数位线和奇数位线。进一步地,设置在行方向上的单元串CS11至CS1m或者CS21至CS2m之中的偶数单元串可以分别耦合至偶数位线,并且设置在行方向上的单元串CS11至CS1m或者CS21至CS2m之中的奇数单元串可以分别耦合至奇数位线。
在一个实施例中,第一至第n存储器单元MC1至MCn中的一个或者多个可以被用作虚设存储器单元。例如,提供一个或者多个虚设存储器单元,以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可替代地,提供一个或者多个虚设存储器单元,以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当提供较多的虚设存储器单元时,提高了存储器区块BLKa的操作的可靠性,但是增加了存储器区块BLKa的大小。当提供较少的虚设存储器单元时,减小了存储器区块BLKa的大小,但是可能使存储器区块BLKa的操作的可靠性退化。
为了有效地控制一个或者多个虚设存储器单元,虚设存储器单元中的每一个可以具有所需阈值电压。在执行存储器区块BLKa的擦除操作之前或者之后,可以对虚设存储器单元中的全部或者一些执行编程操作。当在已经执行编程操作之后执行擦除操作时,可以控制施加至耦合至相应的虚设存储器单元的虚设字线的电压,并且因此,虚设存储器单元可以具有所需阈值电压。
图5是图示了图3的存储器区块BLK1至BLKz中的任何一个存储器区块BLKb的示例的电路图。
参照图5,存储器区块BLKb包括多个单元串CS11’至CS1m’和CS21’至CS2m’。多个单元串CS11’至CS1m’和CS21’至CS2m’中的每个单元串在正Z(+Z)方向上延伸。单元串CS11’至CS1m’和CS21’至CS2m’中的每个单元串包括至少一个源极选择晶体管SST、第一个至第n个存储器单元MC1至MCn和至少一个漏极选择晶体管DST,它们被堆叠在存储器区块BLKb下面的基板(未示出)上。
每个单元串的源极选择晶体管SST连接在共用源极线CSL和存储器单元MC1至MCn之间。设置在相同行中的单元串的源极选择晶体管耦合至相同的源极选择线。设置在第一行中的单元串CS11’至CS1m’的源极选择晶体管耦合至第一源极选择线SSL1。设置在第二行中的单元串CS21’至CS2m’的源极选择晶体管耦合至第二源极选择线SSL2。在一个实施例中,单元串CS11’至CS1m’和CS21’至CS2m’的源极选择晶体管可以共同耦合至单个源极选择线。
在每个单元串中的第一至第n存储器单元MC1至MCn串联连接在源极选择晶体管SST与漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别耦合至第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST连接在对应的位线与存储器单元MC1至MCn之间。设置在行方向上的单元串的漏极选择晶体管耦合至在行方向上延伸的漏极选择线。在第一行中的单元串CS11’至CS1m’的漏极选择晶体管耦合至第一漏极选择线DSL1。在第二行中的单元串CS21’至CS2m’的漏极选择晶体管耦合至第二漏极选择线DSL2。
结果,除了管道晶体管PT被排除在每个单元串之外,图5的存储器区块BLKb具有与图4的存储器区块BLKa的等效电路相似的等效电路。
在一个实施例中,替代第一至第m位线BL1至BLm,还可以提供偶数位线和奇数位线。进一步地,设置在行方向上的单元串CS11’至CS1m’或者CS21’至CS2m’之中的偶数单元串可以分别耦合至偶数位线,并且设置在行方向上的单元串CS11’至CS1m’或者CS21’至CS2m’之中的奇数单元串可以分别耦合至奇数位线。
在一个实施例中,第一至第n存储器单元MC1至MCn中的一个或者多个可以被用作虚设存储器单元。例如,提供一个或者多个虚设存储器单元,以减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。可替代地,提供一个或者多个虚设存储器单元,以减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。当提供较多的虚设存储器单元时,提高了存储器区块BLKb的操作的可靠性,但是增加了存储器区块BLKb的大小。当提供较少的虚设存储器单元时,减小了存储器区块BLKb的大小,但是可能使存储器区块BLKb的操作的可靠性退化。
为了有效地控制一个或者多个虚设存储器单元,虚设存储器单元中的每一个可以具有所需阈值电压。在执行存储器区块BLKb的擦除操作之前或者之后,可以对虚设存储器单元中的全部或者一些执行编程操作。当在已经执行编程操作之后执行擦除操作时,可以控制施加至耦合至相应的虚设存储器单元的虚设字线的电压,并且因此,虚设存储器单元可以具有所需阈值电压。
图6是图示了根据一个实施例的存储器装置100和存储器控制器200的操作的图。
参照图6,存储器装置100可以包括存储器单元阵列110、页面缓冲器组123和缓存编程操作控制器131。缓存编程操作可以用配置为执行缓存编程操作的处理器、固件或者电路系统来实施。
存储器单元阵列110可以包括存储数据的多个存储器单元。存储器单元阵列110可以电耦合至页面缓冲器组123。存储在被包括在页面缓冲器组123中的页面缓冲器中的数据可以被编程至存储器单元阵列110。
被包括在页面缓冲器组123中的多个页面缓冲器可以存储从写入缓冲器210接收到的多个缓存数据块。存储在多个页面缓冲器中的缓存数据块可以被编程至存储器单元阵列110。在存储在多个页面缓冲器中的一些页面缓冲器中的当前缓存数据块被编程至存储器单元阵列110时,其余的页面缓冲器也可以接收来自写入缓冲器210的后续数据并且然后存储后续数据。
缓存编程操作控制器131可以在写入缓冲器控制器220的控制下将存储在页面缓冲器组123中的缓存数据块编程至存储器单元阵列110。缓存编程操作控制器131可以按照LSB数据到MSB数据的顺序将每个缓存数据块编程至存储器单元阵列110,每个缓存数据块可以包括LSB数据到MSB数据。
缓存编程操作控制器131可以响应于写入缓冲器控制器220所提供的状态读取命令将状态读取响应提供至写入缓冲器控制器220。状态读取响应可以包括就绪信息。就绪信息可以指示因为针对当前命令的操作的完成而针对后续命令就绪的状态。例如,就绪信息可以指示是否已经响应于由写入缓冲器控制器220所提供的编程命令而完成将存储在页面缓冲器组123中的每个缓存数据块编程至存储器单元阵列110。
在图6中,存储器控制器200可以包括写入缓冲器210和写入缓冲器控制器220。
写入缓冲器210可以以缓存数据块为单位存储接收到的主机数据。写入缓冲器210可以响应于由写入缓冲器控制器220所提供的数据输入信号而将缓存数据块提供至页面缓冲器组123。写入缓冲器210可以响应于由写入缓冲器控制器220所提供的数据删除信号从其删除缓存数据块。
多个缓存数据块可以按照预设顺序从写入缓冲器210被顺序地提供至存储器装置100。提供至存储器装置100的缓存数据块可以存储在页面缓冲器组123中。存储在页面缓冲器组123中的缓存数据块可以被编程至存储器单元阵列110。
写入缓冲器控制器220可以顺序地将多个缓存数据块从写入缓冲器210提供至页面缓冲器组123。具体地,写入缓冲器控制器220可以生成数据输入信号并且将其提供至写入缓冲器210。数据输入信号可以控制写入缓冲器210将存储在其中的缓存数据块提供至页面缓冲器组123。
写入缓冲器控制器220可以在将缓存数据块提供至页面缓冲器组123时将针对缓存数据块的编程命令提供至缓存编程操作控制器131。
写入缓冲器控制器220可以控制写入缓冲器210,使得对存储在写入缓冲器210中的缓存数据块执行缓存编程操作。具体地,写入缓冲器控制器220可以在当前缓存数据块被编程至存储器单元阵列110时将后续缓存数据块提供至页面缓冲器组123。也就是说,写入缓冲器控制器220可以在当前缓存数据块被编程至存储器单元阵列110时将针对后续缓存数据块的数据输入信号提供至写入缓冲器210。
写入缓冲器控制器220可以确定存储在写入缓冲器210中的每个缓存数据块要被提供至页面缓冲器组123的时间点。
在一个实施例中,写入缓冲器控制器220可以将缓存数据块提供至页面缓冲器组123。当预设时间已经过去时,写入缓冲器控制器220可以将后续缓存数据块提供至页面缓冲器组123。也就是说,当预设时间已经过去时,写入缓冲器控制器220可以将针对后续缓存数据块的数据输入信号施加至写入缓冲器210。预设时间可以是完成将提供的当前缓存数据块的LSB数据编程至存储器单元阵列的时间点。
写入缓冲器控制器220可以从写入缓冲器210删除已经被编程至存储器单元阵列110的缓存数据块。具体地,写入缓冲器控制器220可以向写入缓冲器210提供请求删除已经被编程至存储器单元阵列110的缓存数据块的数据删除信号。写入缓冲器210的存储删除的缓存数据块的存储区域可以接收和存储后续主机数据。
在一个实施例中,写入缓冲器控制器220可以确定将数据删除信号提供至写入缓冲器210的时间点。当已经完成将提供至页面缓冲器组123的主机数据编程至存储器单元阵列110时,写入缓冲器控制器220可以将数据删除信号提供至写入缓冲器210。
写入缓冲器控制器220可以将状态读取命令提供至缓存编程操作控制器131。状态读取命令可以是用于确定是否已经完成将存储在写入缓冲器210中的数据编程至存储器单元阵列110的命令。
写入缓冲器控制器220可以将状态读取命令提供至缓存编程操作控制器131,并且可以从缓存编程操作控制器131获取状态读取响应。写入缓冲器控制器220可以基于被包括在状态读取响应中的就绪信息确定完成将每个缓存数据块编程至存储器单元阵列110的时间点。就绪信息可以指示是否已经响应于写入缓冲器控制器220所提供的编程命令而将存储在页面缓冲器组123中的主机数据编程至存储器单元阵列110。
图7是描述了删除存储在写入缓冲器210中的缓存数据块的操作和将缓存数据块输入至页面缓冲器的操作的图。
参照图7,主机数据可以被顺序地输入至写入缓冲器210并且以缓存数据块为单位被存储在写入缓冲器210中。存储在写入缓冲器210中的多个缓存数据块可以被输入至页面缓冲器组123。被输入至页面缓冲器组123并且存储在页面缓冲器组123中的缓存数据块可以被编程至存储器单元阵列110。已经被编程至存储器单元阵列110的每个缓存数据块可以从写入缓冲器210被删除。写入缓冲器210的存储删除的缓存数据块的存储区域可以接收和存储后续主机数据。
存储在写入缓冲器210中的每个缓存数据块可以被输入至页面缓冲器组123。被输入至页面缓冲器组123的每个缓存数据块可以是页面缓冲器数据块。页面缓冲器数据块可以是与缓存数据块相同的数据。
在图7的参考线(a)中,写入缓冲器210可以接收和存储主机数据。写入缓冲器210可以存储第一至第四缓存数据块C1至C4,所述第一至第四缓存数据块C1至C4可以构成主机数据。第一缓存数据块C1可以被输入至页面缓冲器组123并且被存储在页面缓冲器组123中。输入至页面缓冲器组123的第一缓存数据块C1可以是与存储在页面缓冲器组123中的第一页面缓冲器数据块D1相同的数据。存储在页面缓冲器组123中的第一页面缓冲器数据块D1可以被编程至存储器单元阵列110。
在存储器单元阵列110中的所示的页面缓冲器数据块之中,被指示为阴影部分的每个页面缓冲器数据块可以是正在被编程的数据。未被指示为阴影部分的页面缓冲器数据块可以是已经被编程的数据。因此,存储器单元阵列110中的被指示为阴影部分的第一页面缓冲器数据块D1可以是正在被编程的数据。
在图7的参考线(b)中,第一页面缓冲器数据块D1(e1)可以是正在被编程至存储器单元阵列110的数据。在第一页面缓冲器数据块D1(e1)正在被编程时,第二缓存数据块C2可以被输入至页面缓冲器组123并且被存储在页面缓冲器组123中。如果已经完成对第一页面缓冲器数据块D1(e1)的编程,则第二页面缓冲器数据块D2(e2)可以被编程至存储器单元阵列110。
在图7的参考线(c)中,第一页面缓冲器数据块D1(e4)可以是其向存储器单元阵列110的编程已经完成的数据。因此,参照图7的参考线(b),已经被编程至存储器单元阵列110的第一缓存数据块C1(e3)可以从写入缓冲器210被删除。
写入缓冲器210的存储删除的第一缓存数据块C1(e3)的存储区域可以接收和存储后续主机数据。写入缓冲器210的存储区域可以存储后续的第一缓存数据块C1’(e5)。
通过图7的参考线(a)至(c)中描述的过程,可以将主机数据输入写入缓冲器210并且将其存储在写入缓冲器210中,并且可以将存储在写入缓冲器210中的主机数据输入至页面缓冲器组123并且然后将其编程至存储器单元阵列110。此处,可以执行对主机数据的缓存编程操作,其中,主机数据由多个缓存数据块配置。
在图7的参考线(d)中,写入缓冲器210可以存储第一至第四缓存数据块C1’至C4’,以对输入的主机数据进行配置。
在存储器单元阵列110中,第一至第三页面缓冲器数据块D1至D3可以是已经被编程至存储器单元阵列110的数据。第四页面缓冲器数据块D4可以是正在被编程至存储器单元阵列110的数据。
因此,第四页面缓冲器数据块D4可以是正通过当前缓存编程操作(当前缓存PGM)被编程的数据。第三页面缓冲器数据块D3可以是已经通过先前的缓存编程操作(先前的缓存PGM)被编程的数据。后续的第一页面缓冲器数据块D1’可以是要通过后续的缓存编程操作(下一个缓存PGM)被编程的数据。
图8是描述了存储至少一个数据位的存储器单元的阈值电压分布的图。
参照图8,每个图表的水平轴表示阈值电压的幅度并且其垂直轴表示存储器单元的数目。
参考线(a)至(d)中的图表将在存储在一个存储器单元中的数据位的数目的范围从1到4的假设的基础上进行描述。然而,存储在一个存储器单元中的数据位的数目并不限于本实施例。
参考线(a)中的图表示出了单层单元(SLC)的阈值电压分布,在该单层单元(SLC)中,一个存储器单元存储一个数据位。单层单元可以具有与擦除状态E和编程状态P1中的任何一个状态相对应的状态。
读取电压Va1可以是用于区分擦除状态E与编程状态P1的读取电压。当使用读取电压Va1来读取具有擦除状态E的单层单元时,其可以作为接通(ON)单元被读取。接通单元可以与逻辑值‘1’相对应。当使用读取电压Va1来读取具有编程状态P1的单层单元时,其可以作为关断(OFF)单元被读取。关断单元可以与逻辑值‘0’相对应。
参考线(b)中的图表示出了多层单元(MLC),在该多层单元(MLC)中,一个存储器单元存储两个数据位。多层单元可以具有与擦除状态E或者第一至第三编程状态P1至P3中的任何一种状态相对应的状态。
第一至第三读取电压Vb1至Vb3可以是用于对擦除状态E和第一至第三编程状态P1至P3进行彼此区分的读取电压。第一读取电压Vb1可以是用于区分擦除状态E与第一编程状态P1的读取电压。第二读取电压Vb2可以是用于区分第一编程状态P1与第二编程状态P2的读取电压。第三读取电压Vb3可以是用于区分第二编程状态P2与第三编程状态P3的读取电压。
多层单元可以使用第一至第三读取电压Vb1至Vb3基于读取结果而被标识为处于与擦除状态E或者第一至第三编程状态P1至P3中的任何一种状态相对应的状态。
擦除状态E和第一至第三编程状态P1至P3可以分别与逻辑数据片‘11’、‘01’、‘00’和‘10’相对应。与相应状态相对应的逻辑数据片并不限于本实施例。
存储在多层单元中的两个位的MSB被存储在其中的页面可以是最高有效位(MSB)页面。存储在多层单元中的两个位的最低有效位(LSB)被存储在其中的页面可以是LSB页面。当数据被编程至多层单元时,LSB页面数据被编程,在此之后,MSB页面数据可以被编程。
参考线(c)中的图表示出了三层单元(TLC),在该三层单元(TLC)中,一个存储器单元存储三个数据位。三层单元可以具有与擦除状态E或者第一至第七编程状态P1至P7中的任何一种状态相对应的状态。
第一至第七读取电Vc1至Vc7可以是用于对擦除状态和与第一至第七编程状态P1至P7进行彼此区分的读取电压。第一读取电压Vc1可以是用于区分擦除状态E与第一编程状态P1的读取电压。第二读取电压Vc2可以是用于区分第一编程状态P1与第二编程状态P2的读取电压。以相似的方式,第七读取电压Vc7可以是用于区分第六编程状态P6与第七编程状态P7的读取电压。
三层单元可以使用第一至第七读取电压Vc1至Vc7基于读取结果被标识为处于与擦除状态E或者第一至第七编程状态P1至P7中的任何一种状态相对应的状态。
擦除状态E和第一至第七编程状态P1至P7可以分别与逻辑数据片‘111’、‘110’、‘100’、‘000’、‘010’、‘011’、‘001’和‘101’相对应。与相应状态相对应的逻辑数据片并不限于本实施例。
存储在三层单元中的三个位的MSB被存储在其中的页面可以是MSB页面。存储有三个位的中央位的页面可以是中央有效位(CSB)页面。存储有三个位的LSB的页面可以是LSB页面。当数据被编程至三层单元时,可以按照LSB页面数据、CSB页面数据和MSB页面数据的顺序编程数据。
参考线(d)中的图表示出了四层单元(QLC),在该四层单元(QLC)中,一个存储器单元存储四个数据位。四层单元可以具有与擦除状态E或者第一至第十五编程状态P1至P15中的任何一种状态相对应的状态。
第一至第十五读取电压Vd1至Vd15可以是用于对擦除状态E与第一至第十五编程状态P1至P15中进行彼此区分的读取电压。第一读取电压Vd1可以是用于区分擦除状态E与第一编程状态P1的读取电压。第二读取电压Vd2可以是用于区分第一编程状态P1与第二编程状态P2的读取电压。以相似的方式,第十五读取电压Vd15可以是用于区分第十四编程状态P14与第十五编程状态P15的读取电压。
四层单元可以使用第一至第十五读取电压Vd1至Vd15基于读取结果被标识为处于与擦除状态E或者第一至第十五编程状态P1至P15中的任何一种状态相对应的状态。
擦除状态E和第一至第十五编程状态P1至P15可以分别与逻辑数据片‘1111’、‘1110’、‘1100’、‘1000’、‘0000’、‘0100’、‘0101’、‘0111’、‘0110’、‘0010’、‘1010’、‘1011’、‘0011’、‘0001’、‘1001’和‘1101’相对应。与相应状态相对应的逻辑数据片并不限于本实施例。
存储在四层单元中的四个位的MSB被存储在其中的页面可以是MSB页面。存储有四个位的第二最高有效位的页面可以是最高中央有效位(MCSB)页面。存储有四个位的第二最低有效位的页面可以是最低中央有效位(LCSB)页面。存储有四个位的LSB的页面可以是LSB页面。当数据被编程至四层单元时,可以按照LSB页面数据、LCSB页面数据、MCSB页面数据和MSB页面数据的顺序编程数据。
当参考线(a)至(d)中的图表彼此进行比较时,随着存储在一个存储器单元中的数据位的数目增加,可以由一个存储器单元表示的编程状态的数目和用于区分各个编程状态的读取电压的数目可能增加。随着可以由一个存储器单元表示的编程状态的数目增加,与相应编程状态相对应的阈值电压分布所在的范围的总宽度可能增加。相反,随着可以由一个存储器单元表示的编程状态的数目增加,与每种编程状态相对应的阈值电压分布的宽度可能减小。
图9是图示了根据一个实施例的编程操作的图。
参照图9,第一至第四缓存数据块C1至C4可以是上面参照图7描述的存储在写入缓冲器210中的数据片。第一至第四页面缓冲器数据块D1至D4可以是在将第一至第四缓存数据块C1至C4输入至页面缓冲器并且存储在页面缓冲器中时获得的数据片。被指示为阴影部分的缓存数据块可以是从写入缓冲器210删除的缓存数据块。
内部操作完成时间点(“Internal Busy Done”)可以是完成将输入至页面缓冲器组的每个缓存数据块编程至存储器单元阵列的时间点。外部作完成时间点(“ExternalBusy Done”)可以是完成将输入至页面缓冲器组的每个缓存数据块的MSB数据编程至存储器单元阵列的时间点。此处,MSB数据可以是与存储在三层单元(TLC)中的三个位的MSB相对应的数据。在一个实施例中,MSB数据可以是与存储在四层单元(QLC)中的四个位的MSB相对应的数据。
图9的参考线(a)图示了缓存编程操作。
在图9的参考线(a)中,第二页面缓冲器数据块D2可以是正通过当前缓存编程操作进行编程中的数据。第一页面缓冲器数据块D1可以是通过先前的缓存编程操作完成编程的数据。第三页面缓冲器数据块D3可以是通过下一个缓存编程操作要编程的数据。
将基于正通过当前缓存编程操作进行编程中的第二页面缓冲器数据块D2来描述从写入缓冲器删除通过先前的缓存编程操作完成编程的第一缓存数据块C1的时间点。同样,下面将描述将通过下一个缓存编程操作要编程的第三页面缓冲器数据块D3被输入至页面缓冲器组的时间点。
第一缓存数据块C1可以在第二外部操作完成时间点(External Busy Done_2)从写入缓冲器被删除。第二外部操作完成时间点(External Busy Done_2)可以是完成对当前正在进行编程中的第二页面缓冲器数据块D2的MSB数据的编程的时间点。第三页面缓冲器数据块D3可以在第二外部操作完成时间点(External Busy Done_2)被输入页面缓冲器组并且存储在页面缓冲器组中。
图9的参考线(b)图示了根据本公开的一个实施例的缓存编程操作。
第一缓存数据块C1可以在第一内部操作完成时间点(Internal Busy Done_1)从写入缓冲器210被删除。第一内部操作完成时间点(Internal Busy Done_1)可以是通过先前的缓存编程操作完成对第一页面缓冲器数据块D1的编程的时间点。
第三页面缓冲器数据块D3可以在第二数据块LSB编程完成时间点(LSB PGM Done_2)被输入到页面缓冲器组123并且存储在页面缓冲器组123中。第二数据块LSB编程完成时间点(LSB PGM Done_2)可以是完成对当前正在进行编程中的第二页面缓冲器数据块D2的LSB数据的编程的时间点。此处,LSB数据可以是与存储在三层单元(TLC)中的三个位的LSB相对应的数据。在一个实施例中,LSB数据可以是与存储在四层单元(QLC)中的四个位的LSB相对应的数据。
将图9的参考线(a)与参考线(b)相比较示出了从写入缓冲器删除第一缓存数据块C1的时间点可以从时间点t_Dout提前时间量“ta”至时间点t_Dout'。将第三页面缓冲器数据块D3输入至页面缓冲器组的时间点可以从时间点t_Din提前时间量“tb”至时间点t_DIn'。
因此,因为将从写入缓冲器删除已经被编程的缓存数据块的时间点提前,所以可以改进由受限的写入缓冲器大小引起的缓存编程性能约束。进一步地,因为将每个缓存数据块输入到页面缓冲器组的时间点提前,所以可以增加在外部操作完成时间点和内部操作完成时间点处的数据传输裕度,并且因此可以提高缓存编程性能。
图10A是图示了对多个装置执行的缓存编程操作的时序图。
参照图10A,存储器控制器可以通过多个信道耦合至多个存储器装置。在一个实施例中,信道的数目或者耦合至每个信道的存储器装置的数目并不限于本公开的实施例。
在图10A中,存储器控制器可以通过公共信道耦合至第一至第四存储器装置Die1至Die4。
存储器控制器可以通过公共信道逐个与第一至第四存储器装置Die1至Die4通信。因此,一次仅一个存储器装置可以与存储器控制器通信。然而,第一至第四存储器装置Die1至Die4的相应内部操作可以独立且同时执行。
例如,存储器控制器可以通过公共信道将包括命令和地址的控制信号以及数据发送至第一存储器装置Die1。在将数据和控制信号发送至第一存储器装置Die1时,存储器控制器无法将其它数据或者其它控制信号发送至其余的存储器装置,即,第二至第四存储器装置Die2至Die4。
然而,在第一存储器装置Die1执行将当前接收到的数据编程至被包括在其中的存储器单元的内部操作时,第二至第四存储器装置Die2至Die4也可以执行将顺序接收到的数据编程至被包括在其中的存储器单元的内部操作。
在图10A中,存储器控制器可以交叉存取的方式对第一至第四存储器装置Die1至Die4执行缓存编程操作。因此,存储器控制器可以顺序地将存储在写入缓冲器中的多个缓存数据块提供至相应存储器装置。
由于第一至第四存储器装置Die1至Die4共享单个信道,所以在任何一个存储器装置正在接收来自存储器控制器的缓存数据块时,其余的存储器装置无法接收后续缓存数据块。然而,在任何一个存储器装置正在接收来自存储器控制器的缓存数据块时,其余的存储器装置可以执行将先前接收到的缓存数据块编程至存储器单元阵列的内部操作。
当以交叉存取方式将缓存数据块提供至相应存储器装置时,随着耦合至存储器控制器的存储器装置的数目增加,从存储器控制器接收到缓存数据块的时间点可以被延迟。当接收到缓存数据块的时间点被延迟时,可以停止缓存编程操作。缓存编程操作可以是在当前编程操作正在被执行时接收要通过后续编程操作被编程的缓存数据块的操作。
存储在写入缓冲器中的缓存数据块可以被输入至页面缓冲器组。输入至页面缓冲器组的缓存数据块可以是页面缓冲器数据块。页面缓冲器数据块可以是与缓存数据块相同的数据。
在图10A中,写入缓冲器可以存储第一至第六缓存数据块C1至C6。第一至第六页面缓冲数据块D1至D6可以是在将第一至第六缓存数据块C1至C6输入至页面缓冲器组并且存储在页面缓冲器组中时获得的数据片。每个缓存数据块和与其相对应的页面缓冲器数据块可以是相同的数据。存储在写入缓冲器中的缓存数据块的数目并不限于本实施例。被指示为阴影部分的缓存数据块可以是从写入缓冲器删除的缓存数据块。
根据缓存编程操作,已经通过先前的编程操作被编程的缓存数据块可以在针对当前编程操作的外部操作完成时间点从写入缓冲器被删除。要通过下一个编程操作被编程的页面缓冲器数据块也可以在针对当前编程操作的外部操作完成时间点被输入至页面缓冲器组。外部操作完成时间点可以是完成对通过缓存编程操作被编程的页面缓冲器数据块的MSB数据的编程的时间点。
在图10A中,关于第一存储器装置Die1,第五页面缓冲器数据块D5可以是正通过当前编程操作进行编程中的数据。第一页面缓冲器数据块D1可以是通过先前的编程操作完成编程的数据。第三页面缓冲器数据块D3’可以是通过下一个编程操作要编程的数据。
在第一时间点t_a1,可以将第五页面缓冲器数据块D5输入至页面缓冲器组。第一时间点t_a1可以是第一外部操作完成时间点(External Busy Done_1)。第一外部操作完成时间点(External Busy Done_1)可以是完成对第一页面缓冲器数据块D1的MSB数据的编程的时间点。
在第二时间点t_a2,第一缓存数据块C1可以在第五外部操作完成时间点(External Busy Done_5)从写入缓冲器被删除。第五外部操作完成时间点(External BusyDone_5)可以是完成对当前进行编程中的第五页面缓冲器数据块D5的MSB数据的编程的时间点。写入缓冲器可以在删除当前的第一缓存数据块C1时接收来自主机的后续的第一缓存数据块C1’并且存储后续的第一缓存数据块C1’。
在第三时间点t_a3,写入缓冲器可以在删除当前的第二缓存数据块C2时接收来自主机的后续的第二缓存数据块C2’并且存储后续的第二缓存数据块C2’。第三存储器装置Die3可以接收来自存储器控制器的写入缓冲器的后续的第一页面缓冲器数据块D1’。当已经完成后续的第一页面缓冲器数据块D1’的输入时,第三存储器装置Die3可以将后续的第一页面缓冲器数据块D1’编程至存储器单元阵列。
在第四时间点t_a4,写入缓冲器可以在删除当前的第三缓存数据块C3时接收来自主机的后续的第三缓存数据块C3’并且存储后续的第三缓存数据块C3’。第四存储器装置Die4可以接收来自存储器控制器的写入缓冲器的后续的第二页面缓冲器数据块D2’。当已经完成后续的第二页面缓冲器数据块D2’的输入时,第四存储器装置Die4可以将后续的第二页面缓冲器数据块D2’编程至存储器单元阵列。
在第五时间点t_a5,写入缓冲器可以在删除当前的第四缓存数据块C4时接收来自主机的后续的第四缓存数据块C4’并且存储后续的第四缓存数据块C4’。第一存储器装置Die1可以接收来自存储器控制器的写入缓冲器的后续的第三页面缓冲器数据块D3’。当已经完成后续的第三页面缓冲器数据块D3’的输入时,第一存储器装置Die1可以将后续的第三页面缓冲器数据块D3’编程至存储器单元阵列。
在图10A中,第一至第四存储器装置Die1至Die4可以以交叉存取的方式从存储器控制器的写入缓冲器顺序地接收缓存数据块。
例如,在第一存储器装置Die1已经接收到来自写入缓冲器的第一缓存数据块C1之后,第二存储器装置Die2可以接收来自写入缓冲器的第二缓存数据块C2。在第二存储器装置Die2已经接收到第二缓存数据块C2之后,第三存储器装置Die3可以接收来自写入缓冲器的第三缓存数据块C3。在第三存储器装置Die3已经接收到第三缓存数据块C3之后,第四存储器装置Die4可以接收来自写入缓冲器的第四缓存数据块C4。在第四存储器装置Die4已经接收到第四缓存数据块C4之后,第一存储器装置Die1可以接收来自写入缓冲器的第五缓存数据块C5。第一存储器装置Die1可以在完成对第一页面缓冲器数据块D1的MSB数据的编程的第一外部操作完成时间点(External Busy Done_1),将来自写入缓冲器的第五缓存数据块C5作为第五页面缓冲器数据块D5存储在页面缓冲器组处。在第一存储器装置Die1已经接收到第五缓存数据块C5之后,第二存储器装置Die2可以接收来自写入缓冲器的第六缓存数据块C6。第二存储器装置Die2可以在完成对第二页面缓冲器数据块D2的MSB数据的编程的第二外部操作完成时间点(未示出),将来自写入缓冲器的第六缓存数据块C6作为第六页面缓冲器数据块D6存储在页面缓冲器组处。
因此,由于这种交叉存取方式,当耦合至存储器控制器的存储器装置的数目增加时,从存储器控制器接收到缓存数据块的时间点可以被延迟。当接收到缓存数据块的时间点被延迟并且在正执行当前编程操作时无法接收到要通过后续的编程操作被编程的数据时,缓存编程操作可以是未被正常执行的缓存编程操作。
例如,第一存储器装置Die1的第一缓存编程操作CPROG_1可以是正常执行的缓存编程操作。在第一缓存编程操作CPROG_1中,在第一页面缓冲器数据块D1正在被编程时,可以将第五页面缓冲器数据块D5输入至第一存储器装置Die1。第五页面缓冲器数据块D5可以是要通过下一个编程操作(即,第五缓存编程操作CPROG_5)被编程的数据。
被指示为阴影线部分的缓存编程操作可以是未被正常执行的缓存编程操作。由于在第五页面缓冲器数据块D5正在被编程时无法将第三页面缓冲器数据块D3’输入至第一存储器装置Die1,所以第一存储器装置Die1的第五缓存编程操作CPROG_5无法正常执行。第三页面缓冲器数据块D3’可以是要通过下一个编程操作(即,后续的第三缓存编程操作CPROG_3’)被编程的数据。
以相似的方式,第一存储器装置Die1的第三缓存编程操作CPROG_3’可以是未被正常执行的缓存编程操作。第二存储器装置Die2的第六缓存编程操作CPROG_6和第四缓存编程操作CPROG_4'可以是未被正常执行的缓存编程操作。第三存储器装置Die3的第三缓存编程操作CPROG_3和第一缓存编程操作CPROG_1'可以是未被正常执行的缓存编程操作。第四存储器装置Die4的第四缓存编程操作CPROG_4和第二缓存编程操作CPROG_2'可以是未被正常执行的缓存编程操作。
图10B是图示了根据一个实施例的对多个装置执行的缓存编程操作的时序图。
在图10B中,关于第一存储器装置Die1,第五页面缓冲器数据块D5可以是正通过当前编程操作进行编程中的数据。第一页面缓冲器数据块D1可以是通过先前的编程操作完成编程的数据。第三页面缓冲器数据块D3’可以是通过下一个编程操作要编程的数据。
在一个实施例中,已经通过先前的编程操作被编程并且存储在写入缓冲器210中的缓存数据块可以在先前的编程操作的内部操作完成时间点被从写入缓冲器210删除。内部操作完成时间点可以是通过缓存编程操作完成对相应页面缓冲器数据块的编程的时间点。
在一个实施例中,要通过下一个编程操作被编程的页面缓冲器数据块可以在完成当前编程操作的数据块LSB编程完成时间点被输入至页面缓冲器组123。数据块LSB编程完成时间点可以是完成对通过缓存编程操作被编程的页面缓冲器数据块的LSB数据的编程的时间点。
例如,在第一时间点t_b1,可以将第五页面缓冲器数据块D5输入至页面缓冲器组123。第一时间点t_b1可以是第一数据块LSB编程完成时间点(LSB PGM Done_1)。第一数据块LSB编程完成时间点(LSB PGM Done_1)可以是完成对第一页面缓冲器数据块D1的LSB数据的编程的时间点。此处,LSB数据可以是与存储在三层单元(TLC)中的三个位的LSB相对应的数据。在一个实施例中,LSB数据可以是与存储在四层单元(QLC)中的四个位的LSB相对应的数据。
在第二时间点t_b2,第一缓存数据块C1可以在第一内部操作完成时间点(Internal Busy Done_1)从写入缓冲器210被删除。第一内部操作完成时间点(InternalBusy Done_1)可以是通过先前的缓存编程操作完成对第一页面缓冲器数据块D1的编程的时间点。写入缓冲器210可以在删除当前的第一缓存数据块C1时接收来自主机的后续的第一缓存数据块C1’并且存储后续的第一缓存数据块C1’。
在第三时间点t_b3,写入缓冲器210可以在删除当前的第二缓存数据块C2时接收来自主机的后续的第二缓存数据块C2’并且存储后续的第二缓存数据块C2’。第三存储器装置Die3可以接收来自存储器控制器200的写入缓冲器210的后续的第一页面缓冲器数据块D1’。当已经完成后续的第一页面缓冲器数据块D1’的输入时,第三存储器装置Die3可以将后续的第一页面缓冲器数据块D1’编程至存储器单元阵列110。
在第四时间点t_b4,写入缓冲器210可以在删除当前的第三缓存数据块C3时接收来自主机的后续的第三缓存数据块C3’并且存储后续的第三缓存数据块C3’。第四存储器装置Die4可以接收来自存储器控制器200的写入缓冲器210的后续的第二页面缓冲器数据块D2’。当已经完成后续的第二页面缓冲器数据块D2’的输入时,第四存储器装置Die4可以将后续的第二页面缓冲器数据块D2’编程至存储器单元阵列110。
在第五时间点t_b5,写入缓冲器210可以在删除当前的第四缓存数据块C4时接收来自主机的后续的第四缓存数据块C4’并且存储后续的第四缓存数据块C4’。第一存储器装置Die1可以接收来自存储器控制器200的写入缓冲器210的后续的第三页面缓冲器数据块D3’。当已经完成后续的第三页面缓冲器数据块D3’的输入时,第一存储器装置Die1可以将后续的第三页面缓冲器数据块D3’编程至存储器单元阵列。
参照图10B,要通过下一个编程操作被编程的页面缓冲器数据块可以在当前编程操作的数据块LSB编程完成时间点被输入至页面缓冲器组123(例如,参见图10B中的将后续的第一页面缓冲器数据块D1’输入到第三存储器装置Die3的时序)。已经被编程的缓存数据块可以在先前的编程操作的内部操作完成时间从写入缓冲器210被删除。
如果在当前编程操作正在被编程时输入要通过下一个编程操作被编程的缓存数据块,则当前编程操作可以是被正常执行的缓存编程操作。
因此,第一存储器装置Die1的第一缓存编程操作CPROG_1可以是正常执行的缓存编程操作。在第一缓存编程操作CPROG_1期间,在第一页面缓冲器数据块D1正在被编程时,可以将第五页面缓冲器数据块D5输入至第一存储器装置Die1。第五页面缓冲器数据块D5可以是要通过下一个编程操作被编程的数据。以相似的方式,相应存储器装置的缓存编程操作可以是正常执行的缓存编程操作。
能够看出,与图10A的缓存编程操作相比较,从写入缓冲器删除已经被编程的缓存数据块的时间点从当前编程操作的外部操作完成时间点提前至先前的编程操作的内部操作完成时间点。能够看出,将每个缓存数据块输入至页面缓冲器组的时间点从当前编程操作的外部操作完成时间点提前至先前的编程操作的数据块LSB编程完成时间点。
内部操作完成时间点可以是完成对正在被编程的缓存数据块的编程的时间点。外部操作完成时间点可以是完成对正在被编程的缓存数据块的MSB数据的编程的时间点。数据块LSB编程完成时间点可以是完成对正在被编程的缓存数据块的LSB数据的编程的时间点。
因此,从存储器控制器200输入缓存数据块的时间点被延迟的程度可以减小。当输入缓存数据块的时间点被延迟的程度减小时,缓存编程操作未被正常执行的频率可以减小。由于每个存储器装置的缓存编程操作被异常执行的频率减小,所以可以总体上提高存储装置的缓存编程操作性能。
图11是图示了根据一个实施例的存储装置50的操作的流程图。
参照图11,在步骤S1101中,存储装置50可以接收来自主机的主机数据。
在步骤S1103中,存储装置50可以将接收到的主机数据存储在写入缓冲器210中。
在步骤S1105中,存储装置50可以以缓存数据块为单位将主机数据存储在写入缓冲器210中。
在步骤S1107中,在多个缓存数据块正在被顺序地输入至页面缓冲器组123时,存储装置50可以将先前输入至页面缓冲器组123的缓存数据块编程至存储器单元阵列110。
在步骤S1109中,存储装置50可以从写入缓冲器210删除已经被编程至存储器单元阵列110的缓存数据块。
图12是图示了根据一个实施例的存储装置50的操作的流程图。
参照图12,在步骤S1201中,存储装置50可以接收来自主机的主机数据。
在步骤S1203中,存储装置可以将接收到的主机数据存储在写入缓冲器210中。
在步骤S1205中,存储装置可以将存储在写入缓冲器210中的主机数据分成被顺序地编程的多个缓存数据块。
在步骤S1207中,存储装置50可以将缓存数据块输入至页面缓冲器组123。
在步骤S1209中,当输入至页面缓冲器组123的当前缓存数据块的LSB数据已经被编程时,存储装置50可以将后续的缓存数据块输入至页面缓冲器组123。
图13是图示了根据一个实施例的存储器装置100的操作的流程图。
参照图13,在步骤1301中,存储器装置100可以接收来自存储器控制器200的缓存数据块和编程命令。
在步骤S1303中,存储装置50可以将接收到的缓存数据块存储在页面缓冲器组123中。
在步骤S1305中,存储器装置100可以响应于接收到的编程命令将存储在页面缓冲器组123中的缓存数据块编程至存储器单元阵列110。
在步骤S1307中,存储器装置100可以响应于接收到的状态读取命令将状态读取响应提供至存储器控制器200。状态读取响应可以包括就绪信息,该就绪信息可以指示是否已经响应于提供的编程命令而完成将存储在页面缓冲器组123中的缓存数据块编程至存储器单元阵列110。
图14是图示了图1的存储器控制器的实施例的图。
参照图14,存储器控制器1000耦合至主机和存储器装置。响应于从主机接收到的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以配置为控制存储器装置的写入、读取、擦除和后台操作。存储器控制器1000可以提供在存储器装置与主机之间的接口。存储器控制器1000可以运行用于控制存储器装置的固件。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误检查与纠正(ECC)单元1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以提供在存储器控制器1000的部件之间的信道。
处理器1010可以控制存储器控制器1000的整体操作并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信并且还通过存储器接口1060与存储器装置通信。进一步地,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为工作存储器、缓存存储器或者缓冲器存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机所提供的逻辑块地址(LBA)转换成物理区块地址(PBA)。FTL可以使用映射表来接收LBA并且将LBA转换成PBA。通过FTL执行的地址映射方法的示例根据映射单元的可以包括各种方法。典型地址映射方法包括页面映射方法、区块映射方法和混合映射方法。
处理器1010可以使从主机接收到的数据随机化。例如,处理单元1010可以使用随机化种子来使从主机接收到的数据随机化。随机化数据可以作为要被存储的数据被提供至存储器装置并且可以被编程在存储器单元阵列中。
处理器可以在读取操作期间对从存储器装置接收到的数据进行解随机化。例如,处理器1010可以使用解随机化种子对从存储器装置接收到的数据进行解随机化。解随机化数据可以被输出至主机。
在一个实施例中,处理器1010可以运行软件或者固件来执行随机化和解随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、缓存存储器或者缓冲器存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或者动态RAM(DRAM)。
ECC电路1030可以执行纠错。ECC电路1030可以基于要通过存储器接口1060被写入存储器装置的数据执行纠错码(ECC)编码。ECC编码的数据可以通过存储器接口1060被转移至存储器装置。ECC电路1030可以基于通过存储器接口1060从存储器装置接收到的数据执行ECC解码。在示例中,ECC电路1030可以作为存储器接口1060的部件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用各种通信方法中的至少一种来执行通信,诸如,通用串行总线(USB)、序列式AT附件(SATA)、串行连接SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围部件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册DIMM(RDIMM)和负荷减少的DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过信道将命令、地址和数据发送至存储器装置/从存储器装置接收命令、地址和数据。
在一个实施例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。
在一个实施例中,处理器1010可以使用代码控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器(例如,ROM)加载代码。在一个实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在一个实施例中,存储器控制器1000的总线1070可以被分成控制总线和数据总线。数据总线可以配置为发送存储器控制器1000中的数据,并且控制总线可以配置为发送存储器控制器1000中的诸如命令和地址等控制信息。数据总线和控制总线可以彼此隔离,并且既不会彼此干扰,也不会彼此影响。数据总线可以耦合至主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以耦合至主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图15是图示了应用根据本公开的一个实施例的存储装置的存储器卡系统的框图。
参照图15,存储器卡系统200可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100耦合至存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取、写入、擦除和后台操作。存储器控制器2100可以提供在存储器装置2200与主机之间的接口。存储器控制器2100可以运行用于控制存储器装置2200的固件。存储器控制器2100可以与上面参照图1描述的存储器控制器200相同的方式来实施。
在一个实施例中,存储器控制器2100可以包括各种部件,诸如,RAM、处理单元、主机接口、存储器接口和ECC电路。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在一个实施例中,存储器控制器2100可以通过以下各种通信协议中的至少一种与外部装置通信,诸如,通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCI-E)、先进技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强小型磁盘接口(ESDI)、集成驱动电子装置(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和非易失性存储器快速(NVMe)协议。在一个实施例中,连接器2300可以通过上述各种通信协议中的至少一种来定义。
在一个实施例中,存储器装置2200可以实施为各种非易失性存储器装置中的任何一种,诸如,电可擦除和可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋转移力矩RAM(STT-RAM)。
存储器控制器2100和存储器装置2200可以集成在单个半导体器件中,以对存储器卡进行配置。例如,存储器控制器2100和存储器装置2200可以集成到单个半导体器件中以对如下存储器卡进行配置,诸如,PC卡(个人计算机存储器卡国际协会:PCMCIA)、紧凑式闪存卡(CF)、智能媒体卡(SM或者SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro或者eMMC)、SD卡(SD、迷你SD、微型SD或者SDHC)、或通用闪存(UFS)。
图16是图示了应用根据本公开的一个实施例的存储装置的固态驱动器(SSD)系统的框图。
参照图16,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器3001与主机交换信号SIG并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪存3221至322n、辅助电源3230和缓冲器存储器3240。
根据本公开的一个实施例,SSD控制器3210可以执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收到的信号SIG控制多个闪存3221或者322n。在一个实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是通过各种接口中的至少一个定义的信号,诸如,通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCI-E)、先进技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强小型磁盘接口(ESDI)、集成驱动电子装置(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和非易失性存储器快速(NVMe)接口。
辅助电源3230可以通过电源连接器3002耦合至主机3100。辅助电源3230可以被从主机3100供应电力PWR并且可以被充电。当从主机3100供电执行不顺利时,辅助电源3230可以供应SSD 3200的电力。在一个实施例中,辅助电源3230可以位于SSD 3200内或者位于SSD3200外。例如,辅助电源3230可以布置在主板上并且可以将辅助电力供应给SSD 3200。
缓冲器存储器3240充当SSD 3200的缓冲器存储器。例如,缓冲器存储器3240可以暂时存储从主机3100接收到的数据或者从多个闪存3221至322n接收到的数据或者可以暂时存储闪存3221至322n的元数据(例如,映射表)。缓冲器存储器3240可以包括易失性存储器(诸如,DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM)或者非易失性存储器(诸如,FRAM、ReRAM、STT-MRAM和PRAM)。
图17是图示了应用根据本公开的一个实施例的存储装置的用户系统的框图。
参照图17,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行被包括在用户系统4000中的部件、操作系统(OS)或者用户编程。在一个实施例中,应用处理器4100可以包括用于控制被包括在用户系统4000中的控制器、接口、图形引擎等。应用处理器4100可以作为片上系统(SoC)被提供。
存储器模块4200可以充当用户系统4000的主存储器、工作存储器、缓冲器存储器或者缓存存储器。存储器模块4200可以包括易失性RAM(诸如,DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDRAM和LPDDR3 SDRAM)或者非易失性RAM(诸如,PRAM、ReRAM、MRAM和FRAM)。在一个实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)被封装并且然后可以作为单个半导体封装体被提供。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持无线通信,诸如,码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或者Wi-Fi通信。在一个实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收到的数据。可替代地,存储模块4400可以将存储在存储模块4400中的数据发送至应用处理器4100。在一个实施例中,存储模块4400可以实施为非易失性半导体存储器装置,诸如,相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或者具有三维(3D)结构的NAND闪存。在一个实施例中,存储模块4400可以作为移动存储介质(即,移动驱动器)被提供,诸如,用户系统4000的存储器卡或者外部驱动器。
在一个实施例中,存储模块4400可以包括多个非易失性存储器装置,该多个非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或者指令输入至应用处理器4100或者将数据输出至外部装置的接口。在一个实施例中,用户接口4500可以包括用户输入接口,诸如,键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像头、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可以进一步包括用户输出接口,诸如,液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机。
根据本公开,提供了一种具有改进的缓存性能的存储装置和操作存储装置的方法。
虽然出于说明的目的已经公开了本公开的示例性实施例,但是本领域技术人员要认识到,各种修改、添加和替换是可能的。因此,本公开的范围必须由所附权利要求和权利要求的等同物限定,而不是由在它们先前的描述限定
虽然已经公开了本公开的实施例,但是本领域的技术人员要认识到,在不脱离本公开的范围和精神的情况下,各种修改、添加和替换是可能的。
因此,本公开的范围必须由所附权利要求和权利要求的等同物限定,而不是由在它们先前的描述限定
在上述实施例中,所有步骤可以被选择性地执行或者跳过。另外,每个实施例中的步骤都不可能总是按照给定顺序被顺序地执行,并且可以被随机执行。此外,本说明书和附图中公开的实施例旨在帮助本领域的普通技术人员更清楚地理解本公开,而不是旨在限制本公开的范围。换言之,本公开所属的领域中的普通技术人员基于本公开的技术范围能够容易地理解各种修改是可能的。
本公开的实施例已经参照附图被描述,并且在没有限制其主题的情况下,说明书中所使用的特定术语或者词语应该根据本公开的精神来解释。应该理解,本文所描述的基本发明概念的许多变化和修改仍然在由所附权利要求及其等同物限定的本公开的精神和范围内。
Claims (22)
1.一种存储装置,包括:
存储器装置,包括存储器单元阵列和被耦合至所述存储器单元阵列的页面缓冲器组;以及
存储器控制器,被配置为存储要被顺序地编程的多个缓存数据块,并且被配置为:当完成对所述多个缓存数据块之中的当前缓存数据块的最低有效位(LSB)数据的编程时,将与下一个编程序列相对应的下一个缓存数据块输入至所述页面缓冲器组。
2.根据权利要求1所述的存储装置,其中,所述存储器控制器包括:
写入缓冲器,被配置为存储所述多个缓存数据块;以及
写入缓冲器控制器,被配置为顺序地将所述多个缓存数据块输入至所述页面缓冲器组。
3.根据权利要求2所述的存储装置,其中,所述写入缓冲器控制器被配置为:当完成对正在被编程的所述当前缓存数据块的所述LSB数据的所述编程时,将所述下一个缓存数据块输入至所述页面缓冲器组。
4.根据权利要求2所述的存储装置,其中,所述写入缓冲器控制器被配置为:生成用于请求将所述下一个缓存数据块输入到所述页面缓冲器组的数据输入信号,并且将所述数据输入信号提供至所述写入缓冲器,以及
其中,所述写入缓冲器响应于所述数据输入信号而将所述下一个缓存数据块输入至所述页面缓冲器组。
5.根据权利要求1所述的存储装置,其中,所述存储器装置进一步包括缓存编程操作控制器,所述缓存编程操作控制器被配置为将被输入至所述页面缓冲器组的缓存数据块编程至所述存储器单元阵列。
6.根据权利要求1所述的存储装置,其中,所述页面缓冲器组被配置为存储从所述存储器控制器接收的所述下一个缓存数据块。
7.一种存储装置,包括:
存储器装置,包括存储器单元阵列和被耦合至所述存储器单元阵列的页面缓冲器组;以及
存储器控制器,包括写入缓冲器和写入缓冲器控制器,
其中,所述写入缓冲器被配置为存储要被顺序地编程的多个缓存数据块,以及
其中,所述写入缓冲器控制器被配置为:在所述多个缓存数据块正在被输入至所述页面缓冲器组时,当已经完成将先前被输入至所述页面缓冲器组的先前的缓存数据块编程至所述存储器单元阵列时,从所述写入缓冲器删除所述先前的缓存数据块。
8.根据权利要求7所述的存储装置,其中,所述写入缓冲器控制器被配置为顺序地将所述多个缓存数据块输入至所述页面缓冲器组。
9.根据权利要求8所述的存储装置,其中,所述写入缓冲器控制器被配置为:将用于指示将每个缓存数据块存储在所述存储器单元阵列中的编程命令提供至所述存储器装置。
10.根据权利要求8所述的存储装置,其中,所述写入缓冲器控制器被配置为:当完成将每个缓存数据块编程至所述存储器单元阵列时,删除存储在所述写入缓冲器中的所述缓存数据块。
11.根据权利要求10所述的存储装置,其中,所述写入缓冲器控制器被配置为:生成用于请求删除所述缓存数据块的数据删除信号并且将所述数据删除信号提供至所述写入缓冲器,以及
其中,所述写入缓冲器被配置为响应于所述数据删除信号而删除所述缓存数据块。
12.根据权利要求8所述的存储装置,其中,所述写入缓冲器控制器被配置为:将状态读取命令提供至所述存储器装置,并且响应于所述状态读取命令而基于由所述存储器装置提供的状态读取响应确定是否删除所述缓存数据块。
13.根据权利要求12所述的存储装置,其中,所述状态读取响应包括就绪信息,所述就绪信息指示是否已经完成将所述缓存数据块编程至所述存储器单元阵列。
14.一种用于操作存储装置的方法,所述存储装置包括存储器装置和存储器控制器,所述存储器装置包括存储器单元阵列和被耦合至所述存储器单元阵列的页面缓冲器组,所述存储器控制器包括写入缓冲器,所述方法包括:
将主机数据作为多个缓存数据块存储在所述写入缓冲器中;
在所述多个缓存数据块正在被顺序地输入至所述页面缓冲器组时,将所述多个缓存数据块中的任何一个缓存数据块编程至所述存储器单元阵列;以及
在已经完成对当前缓存数据块的LSB数据的编程时,将与下一个编程序列相对应的下一个缓存数据块输入至所述页面缓冲器组。
15.根据权利要求14所述的方法,进一步包括:将所述下一个缓存数据块编程至所述存储器单元阵列。
16.根据权利要求14所述的方法,其中,输入所述下一个缓存数据块包括:
生成用于请求将所述下一个缓存数据块输入到所述页面缓冲器组的数据输入信号;以及
响应于所述数据输入信号而将所述下一个缓存数据块输入至所述页面缓冲器组。
17.根据权利要求14所述的方法,进一步包括:根据是否已经完成将所述当前缓存数据块编程至所述存储器单元阵列,从所述写入缓冲器删除所述当前缓存数据块。
18.根据权利要求17所述的方法,其中,在完成将所述当前缓存数据块编程至所述存储器单元阵列的时间点,从所述写入缓冲器删除所述当前缓存数据块。
19.根据权利要求14所述的方法,其中,根据状态读取响应来确定是否已经完成将所述当前缓存数据块编程至所述存储器单元阵列,所述状态读取响应是由所述存储器装置响应于由所述存储器控制器提供的状态读取命令而提供的。
20.根据权利要求19所述的方法,其中,所述状态读取响应包括就绪信息,所述就绪信息指示是否已经完成将所述缓存数据块编程至所述存储器单元阵列。
21.一种存储器系统,包括:
存储器装置,包括页面缓冲器组和存储器单元阵列;
写入缓冲器,被配置为缓存数据序列;以及
控制单元,被配置为在向所述页面缓冲器组提供被缓存在所述写入缓冲器中的后续数据时,控制所述存储器装置执行将当前存储在所述页面缓冲器组中的当前数据编程至所述存储器单元阵列中的缓存编程操作,
其中,所述控制单元在完成对所述当前数据的编程时从所述写入缓冲器删除所述当前数据,以及
其中,所述控制单元在完成对所述当前数据的最低有效位(LSB)部分的编程时,将所述后续数据从所述写入缓冲器提供至所述页面缓冲器组。
22.一种存储器系统,包括:
多个存储器装置,均包括页面缓冲器组和存储器单元阵列;
写入缓冲器,被配置为缓存数据序列;以及
控制单元,被配置为控制所述存储器装置中的每个存储器装置根据交叉存取方案执行缓存编程操作,
其中,所述控制单元在完成将当前存储在所述页面缓冲器组中的当前数据编程至所述存储器单元阵列中时,从所述写入缓冲器删除所述当前数据,以及
其中,所述控制单元在完成对所述当前数据的最低有效位(LSB)部分的编程时,将后续数据从所述写入缓冲器提供至所述页面缓冲器组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180130284A KR20200048318A (ko) | 2018-10-29 | 2018-10-29 | 저장 장치 및 그 동작 방법 |
KR10-2018-0130284 | 2018-10-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111105832A true CN111105832A (zh) | 2020-05-05 |
CN111105832B CN111105832B (zh) | 2023-08-11 |
Family
ID=70327168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910922188.8A Active CN111105832B (zh) | 2018-10-29 | 2019-09-27 | 存储装置和操作存储装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10910045B2 (zh) |
KR (1) | KR20200048318A (zh) |
CN (1) | CN111105832B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021033847A (ja) * | 2019-08-28 | 2021-03-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
FR3103620B1 (fr) * | 2019-11-21 | 2021-11-26 | St Microelectronics Rousset | Procédé d’écriture dans une mémoire volatile et circuit intégré correspondant |
KR20210104278A (ko) * | 2020-02-17 | 2021-08-25 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11385819B2 (en) | 2020-08-17 | 2022-07-12 | Micron Technology, Inc. | Separate partition for buffer and snapshot memory |
CN113490984B (zh) * | 2021-06-02 | 2022-09-16 | 长江存储科技有限责任公司 | 存储器器件及其编程操作 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020126531A1 (en) * | 2000-03-08 | 2002-09-12 | Koji Hosono | Non-volatile semiconductor memory |
CN1722304A (zh) * | 2004-07-15 | 2006-01-18 | 海力士半导体有限公司 | 非易失性存储器件的页面缓冲器及其编程和读取方法 |
CN1892912A (zh) * | 2005-07-04 | 2007-01-10 | 三星电子株式会社 | 页面缓冲器和非易失性存储器设备 |
CN101064193A (zh) * | 2006-04-28 | 2007-10-31 | 汤姆森许可贸易公司 | 用于向闪速存储器执行写入的方法和设备 |
US20080235451A1 (en) * | 2007-03-19 | 2008-09-25 | Samsung Electronics Co., Ltd. | Non-volatile memory device and associated programming method |
WO2010024506A1 (en) * | 2008-08-29 | 2010-03-04 | Snu R & Db Foundation | Flash based storage device using page buffer as write cache and method of using the same |
CN102246240A (zh) * | 2008-12-09 | 2011-11-16 | 拉姆伯斯公司 | 用于并发和流水线存储器操作的非易失性存储器器件 |
CN102568569A (zh) * | 2010-12-21 | 2012-07-11 | 海力士半导体有限公司 | 非易失性存储器件及其高速缓存编程方法 |
KR20120088454A (ko) * | 2011-01-31 | 2012-08-08 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 |
US20120239861A1 (en) * | 2011-03-16 | 2012-09-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices with page flags, methods of operation and memory systems including same |
CN106407133A (zh) * | 2015-07-30 | 2017-02-15 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN106710616A (zh) * | 2015-11-13 | 2017-05-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US20170177226A1 (en) * | 2015-12-18 | 2017-06-22 | SK Hynix Inc. | Memory system and operating method of memory system |
CN107102817A (zh) * | 2016-02-23 | 2017-08-29 | 三星电子株式会社 | 非易失性存储设备 |
CN107491396A (zh) * | 2016-06-10 | 2017-12-19 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107643985A (zh) * | 2016-07-21 | 2018-01-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107844265A (zh) * | 2016-09-20 | 2018-03-27 | 三星电子株式会社 | 操作计算系统的方法以及操作计算系统中的存储器控制器的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5142478B2 (ja) | 2006-04-13 | 2013-02-13 | 株式会社東芝 | 半導体記憶装置 |
KR100919156B1 (ko) | 2006-08-24 | 2009-09-28 | 삼성전자주식회사 | 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 |
KR20100021868A (ko) | 2008-08-18 | 2010-02-26 | 삼성전자주식회사 | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 |
US9201824B2 (en) * | 2009-01-22 | 2015-12-01 | Intel Deutschland Gmbh | Method and apparatus for adaptive data chunk transfer |
KR20160127524A (ko) * | 2015-04-27 | 2016-11-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2018
- 2018-10-29 KR KR1020180130284A patent/KR20200048318A/ko not_active Application Discontinuation
-
2019
- 2019-06-17 US US16/443,367 patent/US10910045B2/en active Active
- 2019-09-27 CN CN201910922188.8A patent/CN111105832B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020126531A1 (en) * | 2000-03-08 | 2002-09-12 | Koji Hosono | Non-volatile semiconductor memory |
CN1722304A (zh) * | 2004-07-15 | 2006-01-18 | 海力士半导体有限公司 | 非易失性存储器件的页面缓冲器及其编程和读取方法 |
CN1892912A (zh) * | 2005-07-04 | 2007-01-10 | 三星电子株式会社 | 页面缓冲器和非易失性存储器设备 |
CN101064193A (zh) * | 2006-04-28 | 2007-10-31 | 汤姆森许可贸易公司 | 用于向闪速存储器执行写入的方法和设备 |
US20080235451A1 (en) * | 2007-03-19 | 2008-09-25 | Samsung Electronics Co., Ltd. | Non-volatile memory device and associated programming method |
WO2010024506A1 (en) * | 2008-08-29 | 2010-03-04 | Snu R & Db Foundation | Flash based storage device using page buffer as write cache and method of using the same |
CN102246240A (zh) * | 2008-12-09 | 2011-11-16 | 拉姆伯斯公司 | 用于并发和流水线存储器操作的非易失性存储器器件 |
CN102568569A (zh) * | 2010-12-21 | 2012-07-11 | 海力士半导体有限公司 | 非易失性存储器件及其高速缓存编程方法 |
KR20120088454A (ko) * | 2011-01-31 | 2012-08-08 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 |
US20120239861A1 (en) * | 2011-03-16 | 2012-09-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices with page flags, methods of operation and memory systems including same |
CN106407133A (zh) * | 2015-07-30 | 2017-02-15 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN106710616A (zh) * | 2015-11-13 | 2017-05-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US20170177226A1 (en) * | 2015-12-18 | 2017-06-22 | SK Hynix Inc. | Memory system and operating method of memory system |
CN106910521A (zh) * | 2015-12-18 | 2017-06-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107102817A (zh) * | 2016-02-23 | 2017-08-29 | 三星电子株式会社 | 非易失性存储设备 |
CN107491396A (zh) * | 2016-06-10 | 2017-12-19 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107643985A (zh) * | 2016-07-21 | 2018-01-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107844265A (zh) * | 2016-09-20 | 2018-03-27 | 三星电子株式会社 | 操作计算系统的方法以及操作计算系统中的存储器控制器的方法 |
Non-Patent Citations (2)
Title |
---|
YONGSEOK OH等: "Caching less for better performance: Balancing cache size and update cost of flash memory cache in hybrid storage systems", pages 1 - 14 * |
张杰: "一种高速数据存储方法的研究", pages 137 - 9 * |
Also Published As
Publication number | Publication date |
---|---|
US20200135270A1 (en) | 2020-04-30 |
KR20200048318A (ko) | 2020-05-08 |
CN111105832B (zh) | 2023-08-11 |
US10910045B2 (en) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
CN111258793B (zh) | 存储器控制器及其操作方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
CN111444115B (zh) | 存储装置及其操作方法 | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
KR20190123544A (ko) | 저장 장치 및 그 동작 방법 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111883197A (zh) | 存储装置及其操作方法 | |
CN111338979A (zh) | 存储器控制器及其操作方法 | |
US11580028B2 (en) | Storage device and method of operating the same | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN114078530A (zh) | 存储器装置及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
KR102640951B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111312305A (zh) | 存储装置及其操作方法 | |
US11392501B2 (en) | Storage device and method of operating the storage device | |
CN111341372B (zh) | 存储装置以及操作存储装置的方法 | |
CN114496045A (zh) | 存储器设备和操作存储器设备的方法 | |
CN111190535B (zh) | 存储装置及其操作方法 | |
KR102669450B1 (ko) | 저장 장치 및 그 동작 방법 | |
CN113764011A (zh) | 存储装置及其操作方法 | |
KR20230168889A (ko) | 메모리 장치 및 그것의 동작 방법 |
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 |