CN115576482A - 控制器及其操作方法 - Google Patents
控制器及其操作方法 Download PDFInfo
- Publication number
- CN115576482A CN115576482A CN202210247077.3A CN202210247077A CN115576482A CN 115576482 A CN115576482 A CN 115576482A CN 202210247077 A CN202210247077 A CN 202210247077A CN 115576482 A CN115576482 A CN 115576482A
- Authority
- CN
- China
- Prior art keywords
- data
- chunk
- backup
- memory
- chunks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/065—Replication mechanisms
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- 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
-
- 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
- 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/5671—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 trapping in an insulator
-
- 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
- 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
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种控制器的操作方法,该操作方法包括:将待编程到多层单元的数据组块缓冲到写入缓冲器;将数据组块中的至少一个备份数据组块备份到备份存储器;确定数据组块的编程序列,该编程序列用于通过多步骤编程操作中的第二步骤编程操作将数据组块之中的非备份数据组块编程到多层单元;并且控制存储器装置基于编程序列,通过在多层单元的第一页面中执行多步骤编程操作中的第一步骤编程操作和第二步骤编程操作,将数据组块编程到多层单元,在第一页面中执行的第二步骤编程操作晚于在第一页面之后的第二页面中执行的另一个第一步骤编程操作。
Description
相关申请的交叉引用
本专利申请要求于2021年6月21日提交的、申请号为10-2021-0079965的韩国专利申请的权益,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本文描述的本公开的各个实施例涉及一种控制器及其操作方法。
背景技术
计算环境的范例已经转变为普适计算,这使得能够几乎随时随地访问计算机系统。便携式电子装置(例如,移动电话、数码相机、笔记本计算机等)的使用正在迅速增加。这些便携式电子装置可以使用或包括具有至少一个存储器装置的存储器系统。存储器系统可以是数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,这种数据存储装置使用非易失性半导体存储器,并表现出提高的稳定性和耐久性,由于该数据存储装置没有机械驱动部件(例如,机械臂),因此提供较高的数据访问速度和相对较低的功耗。具有这些优点的数据存储装置的示例包括但不限于通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例提供一种能够降低存储器系统的制造成本同时提高或保持存储器系统的性能和可靠性的控制器以及控制器的操作方法。
在本公开的实施例中,一种控制器的操作方法用于控制存储器装置,该存储器装置包括通过多步骤编程操作编程数据的多层单元。该操作方法可以包括:将待编程到多层单元的数据组块(data chunk)缓冲到写入缓冲器;将数据组块中的一些备份到与写入缓冲器不同的备份存储器;确定数据组块的编程序列(program sequence),该编程序列用于通过多步骤编程操作中的第二步骤编程操作将数据组块中的至少一个非备份数据组块编程到多层单元;并且控制存储器装置基于编程序列,通过在多层单元的第一页面中执行多步骤编程操作中的第一和第二步骤编程操作,将数据组块编程到多层单元,在第一页面中执行的第二步骤编程操作晚于在第一页面之后的第二页面中执行的另一个第一步骤编程操作。
确定编程序列可以包括确定通过第一或第二步骤编程操作对数据组块中的至少一个备份数据组块进行编程的编程序列。
确定编程序列可以进一步包括:确定通过第一步骤编程操作对至少一个备份数据组块中的第一组块进行编程的编程序列;当至少一个非备份数据组块被缓冲到写入缓冲器时,确定通过第二步骤编程操作对至少一个非备份数据组块进行编程的编程序列;并且当不存在非备份数据组块时,确定通过第二步骤编程操作对至少一个备份数据组块中的第二组块进行编程的编程序列。
操作方法可以进一步包括:将写入缓冲器中的每个非备份数据组块传送到存储器装置;以及在执行关于所传送的非备份数据组块的第二步骤编程操作之后,将所传送的非备份数据组块从写入缓冲器中释放。
操作方法可以进一步包括:在关于非备份数据组块的第二步骤编程操作已经失败时,将所传送的非备份数据组块重新传送到存储器装置。
操作方法可以进一步包括:将每个备份数据组块传送到存储器装置;并且在传送所传送的备份数据组块之后并且在执行关于所传送的备份数据组块的第一或第二步骤编程操作之前,将所传送的备份数据组块从写入缓冲器中释放。
操作方法可以进一步包括:在完全执行关于所传送的备份数据组块的第一或第二步骤编程操作之后,将所传送的备份数据组块从备份存储器中释放。
操作方法可以进一步包括:在关于所传送的备份数据组块的第一或第二步骤编程操作已经失败时,将所传送的备份数据组块重新传送到存储器装置。
备份数据组块中的至少一个备份数据组块可以包括:丢弃传送到备份存储器中的数据组块中的至少一个数据组块,以避免从主机输入的数据组块被传输的数据路径中的瓶颈。写入缓冲器可以具有比备份存储器更快的I/O操作速度。
备份数据组块中的至少一个备份数据组块可以包括:当临时缓冲器中存在可用空间时,将数据组块中的至少一个数据组块缓冲到临时缓冲器,然后将临时缓冲器中缓冲的至少一个数据组块备份到备份存储器;并且当临时缓冲器中不存在可用空间时,丢弃数据组块中的该至少一个数据组块。
在本公开的另一实施例中,一种用于控制存储器装置的控制器,该存储器装置包括通过多步骤编程操作编程数据的多层单元,该控制器可以包括:写入缓冲器,被配置为缓冲待编程到多层单元的数据组块;备份存储器,与写入缓冲器不同,被配置为备份数据组块中的至少一个备份数据组块;以及处理器,被配置为确定数据组块的编程序列,该编程序列用于通过多步骤编程操作的第二步骤编程操作将数据组块中的至少一个非备份数据组块编程到多层单元。处理器可以被配置为控制存储器装置基于编程序列,通过在多层单元的第一页面中执行多步骤编程操作中的第一和第二步骤编程操作,将数据组块编程到多层单元,在第一页面中执行的第二步骤编程操作晚于在第一页面之后的第二页面中执行的另一个第一步骤编程操作。
处理器可以被配置为确定通过第一或第二步骤编程操作对所缓冲的数据组块中的至少一个备份数据组块进行编程的编程序列。
处理器可以被配置为:确定通过第一步骤编程操作对至少一个备份数据组块中的第一组块进行编程的编程序列;当至少一个非备份数据组块被缓冲到写入缓冲器时,确定通过第二步骤编程操作对至少一个非备份数据组块进行编程的编程序列;以及当不存在非备份数据组块时,确定通过第二步骤编程操作对至少一个备份数据组块中的第二组块进行编程的编程序列。
处理器可以被配置为:将每个非备份数据组块传送到存储器装置;以及在执行关于所传送的非备份数据组块的第二步骤编程操作之后,将所传送的非备份数据组块从写入缓冲器中释放。
处理器可以被配置为:当关于所传送的非备份数据组块的第二步骤编程操作已经失败时,将所传送的非备份数据组块重新传送到存储器装置。
处理器可以被配置为:将每个备份数据组块传送到存储器装置;以及在传送备份数据组块之后并且在执行关于所传送的备份数据组块的第一或第二步骤编程操作之前,将所传送的备份数据组块从写入缓冲器中释放。
处理器可以被配置为:在执行关于所传送的备份数据组块的第一或第二步骤编程操作之后,将所传送的备份数据组块从备份存储器中释放。
处理器可以被配置为:当关于所传送的备份数据组块的第一或第二步骤编程操作已经失败时,将所传送的备份数据组块重新传送到存储器装置。
备份存储器可以被配置为丢弃或备份数据组块中的至少一个数据组块,以避免从主机输入的数据组块被传输的数据路径中的瓶颈。写入缓冲器可以具有比备份存储器更快的操作速度。
控制器可以进一步包括位于数据组块被传送的数据路径上的临时缓冲器。临时缓冲器可以被配置为:当临时缓冲器中存在可用空间时,将数据组块中的至少一个数据组块缓冲到临时缓冲器,然后将至少一个数据组块备份到备份存储器;以及当临时缓冲器中不存在可用空间时,丢弃数据组块中的该至少一个数据组块。
在本公开的另一实施例中,一种用于控制存储器装置的控制器,该存储器装置包括通过多步骤编程操作编程数据的多层单元,该控制器可以包括:写入缓冲器,被配置为缓冲待编程到多层单元的数据组块;备份存储器,与写入缓冲器不同,被配置为备份数据组块中的至少一个备份数据组块;以及处理器,被配置为确定写入缓冲器中缓冲的数据组块的编程序列,该编程序列用于通过多步骤编程操作的第二步骤编程操作将数据组块之中的至少一个非备份数据组块编程到多层单元。处理器可以被配置为控制存储器装置基于编程序列,通过在多层单元的第一页面中执行多步骤编程操作中的第一和第二步骤编程操作,将数据组块编程到多层单元,在第一页面中执行的第二步骤编程操作晚于在第一页面之后的第二页面中执行的另一个第一步骤编程操作;以及当关于非备份数据组块的第二步骤编程操作已经失败时,将至少一个非备份数据组块重新传送到存储器装置。
在本公开另一实施例中,一种存储器系统可以包括:存储器装置,包括多层单元;以及控制器,联接到存储器装置,并且包括:写入缓冲器,被配置为缓冲从主机接收的多个数据组块;临时缓冲器,被配置为基于临时缓冲器的可用空间,缓冲从多个数据组块之中选择的备份数据组块;备份存储器,被配置为从临时缓冲器接收并存储备份数据组块;以及处理器,被配置为:将所缓冲的多个数据组块提供到存储器装置以在多层单元中进行编程,当所缓冲的多个数据组块被提供到存储器装置时,将所缓冲的多个数据组块之中的备份数据组块从写入缓冲器中释放;控制存储器装置将所缓冲的多个数据组块编程到多层单元,当所缓冲的多个数据组块被成功编程到多层单元时,将所缓冲的多个数据组块之中除了备份数据组块以外的一个或多个非备份数据组块从写入缓冲器中释放,并将备份数据组块从备份存储器中释放。多层单元可以包括分别联接在多个字线和多个选择线之间的多个页面,每个页面包括第一子页面和第二子页面。控制器可以被配置为控制存储器装置,使得第一字线的第二子页面晚于第二字线的第一子页面被编程。
附图说明
本文中的描述参照了附图,其中在所有附图中,相同的附图标记指代相同的部件。
图1是示出根据本公开实施例的包括存储器系统的数据处理系统的示例的示图。
图2示出根据本公开实施例的存储器系统。
图3示出根据本公开实施例的从主机输入的数据的数据路径。
图4是示出根据本公开实施例的存储器装置中的三维存储器单元阵列的示图。
图5是示出根据本公开实施例的在存储器装置中执行的多步骤编程操作的示图。
图6示出根据本公开实施例的在执行多步骤编程操作的存储器装置中的数据编程序列。
图7示出根据本公开实施例的用于执行编程操作的控制器和存储器装置之间的事务。
图8示出根据本公开实施例的由控制器执行的操作。
图9A和图9B示出根据本公开实施例的由控制器执行的操作。
具体实施方式
下面参照附图描述了本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成其它实施例,其它实施例可以是任意所公开实施例的变型。
在本公开中,对“一个实施例”、“示例性实施例”、“实施例”、“另一实施例”、“一些实施例”、“各个实施例”、“其它实施例”、“可选实施例”等中包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用旨在表示任意的这些特征包括在本公开的一个或多个实施例中,但是可以或不必须组合在相同的实施例中。
在本公开中,术语“包含”和“包括”是开放式的。如在所附权利要求中所使用的,这些术语指定存在所述元件,并且不排除存在或添加一个或多个其它元件。权利要求中的术语不排除设备包括附加组件(例如,接口单元、电路等)。
在本公开中,各种单元、电路或其它组件可以被描述或要求为“配置为”执行一个或多个任务。在这样的上下文中,“配置为”通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。因此,即使当块/单元/电路/组件当前未操作(例如,未接通也未启用)时,也可以说该特定的块/单元/电路/组件被配置为执行任务。与“配置为”措辞一起使用的块/单元/电路/组件包括硬件,例如电路、存储可运行以实施操作的程序指令的存储器等。另外,“配置为”可以包括由软件和/或固件(例如,FPGA或运行软件的通用处理器)操纵的通用结构(例如,通用电路),从而以能够执行有关任务的方式进行操作。“配置为”还可以包括使制造过程(例如,半导体制造设施)适应于制造实施或执行一个或多个任务的装置(例如,集成电路)。
如本公开中所使用的,术语“电路”或“逻辑”指代以下所有:(a)仅硬件电路实施方案(例如,仅模拟和/或数字电路的实施方案)以及(b)电路与软件(和/或固件)的组合,例如(如适用):(i)处理器的组合或(ii)一起工作以使诸如移动电话或服务器的设备执行各种功能的处理器/软件(包括数字信号处理器)、软件和存储器的一部分,以及(c)电路,诸如微处理器或微处理器的一部分,即使软件或固件物理上不存在,也需要软件或固件才能工作。这种“电路”或“逻辑”的定义适用于本申请中该术语的、包括任何权利要求中的所有用途。作为另一示例,如在本申请中所使用的,术语“电路”或“逻辑”还涵盖仅一个处理器(或多个处理器)或处理器的一部分及其(或它们的)随附软件和/或固件的实施方案。术语“电路”或“逻辑”,例如,并且如果适用于特定的权利要求要素,还涵盖存储装置的集成电路。
如本文中所使用的,术语“第一”、“第二”、“第三”等被用作它们之后的名词的标签,并且不意指任何类型的排序(例如,空间、时间、逻辑等)。术语“第一”和“第二”不一定意指第一值必须写在第二值之前。进一步地,尽管本文中可以使用这些术语来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个具有相同或相似名称的元件区分开。例如,可以将第一电路与第二电路区分开。
进一步地,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能影响确定的其它因素。也就是说,该确定可以仅基于那些因素或者至少部分地基于那些因素。例如,短语“基于B来确定A”。虽然在这种情况下,B是影响确定A的因素,但是这样的短语不排除也基于C来确定A。在其它情况下,可以仅基于B来确定A。
本文中,数据的项、数据项、数据条目或数据的条目可以是位的顺序。例如,数据项可以包括文件的内容、文件的一部分、存储器中的页面、面向对象程序中的对象、数字消息、数字扫描图像、视频或音频信号的一部分、元数据或者可以用位的顺序代表的任何其它实体。根据实施例,数据项可以包括离散对象。根据另一实施例,数据项可以包括两个不同组件之间的传输包内的信息单元。
现在将参照附图描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1是示出根据本公开实施例的包括存储器系统的数据处理系统100的示例的示图。
参照图1,数据处理系统100可以包括主机102和存储器系统110。
主机102可以包括便携式电子装置(例如,移动电话、MP3播放器、膝上型计算机等)或非便携式电子装置(例如,台式计算机、游戏机、电视、投影仪等)。
主机102还可以包括至少一个操作系统(OS),该OS可以控制在主机102中执行的功能和操作。OS可以提供与存储器系统110可操作地接合的主机102与意图将数据存储在存储器系统110中的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,可以将OS分类为通用操作系统和移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。与个人操作系统相比,企业操作系统可以专门用于获得和支持高性能计算。
移动操作系统可以用于支持移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以对应于用户的请求,运行与存储器系统110互锁的多个操作系统。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110,从而在存储器系统110内执行与多个命令相对应的操作。
存储器系统110可以响应于主机102的请求而执行用于存储从主机102输入的数据的操作。例如,根据主机接口的协议,存储器系统110可以利用与主机102电联接的各种类型的存储装置中的任意一种来实施。适用的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。根据存储器系统110的实施方案,可以向控制器130添加组件或者从控制器130中省略组件。
进一步地,存储器系统110可以由各种类型的存储装置来实施。例如,存储装置包括诸如动态随机存取存储器(DRAM)、静态RAM(SRAM)的易失性存储器装置、以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁磁RAM(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM),和闪速存储器等的非易失性存储器装置。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以为主机102存储数据,并且控制器130可以控制存储器装置150中的数据存储过程。
控制器130和存储器装置150可以被集成到单个半导体装置中。在实施例中,控制器130和存储器装置150可以被集成到诸如固态驱动器(SSD)的单个半导体装置中。当存储器系统110用作SSD时,可以提高联接到存储器系统110的主机102的操作速度。在另一实施例中,控制器130和存储器装置150可以被集成到诸如存储卡的单个半导体装置中。例如,该单个半导体装置可以包括PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑型闪存卡(CF)、智能媒体卡(例如,SM、SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC)、SD卡(例如,SD、迷你SD、微型SD、SDHC)、通用闪存(UFS)等。
在另一示例中,存储器系统110可以被包括在以下的一种中:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心存储装置、能够在无线环境下发送和接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置、构成计算系统的各种组件中的一种等。
存储器装置150可以是非易失性存储器装置,从而即使在没有供应电力时也可以保留所存储的数据。存储器装置150可以通过编程操作存储从主机102输入的数据并且可以通过读取操作将存储器装置150中存储的数据提供到主机102。存储器装置150可以包括多个存储块。每个块可以包括多个页面。每个页面可以包括连接到字线的多个存储器单元。在实施例中,存储器装置150可以包括闪速存储器。闪速存储器可以具有三维堆叠结构。
控制器130可以响应于来自主机102的请求而控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供到主机102,并且将从主机102提供的数据存储在存储器装置150中。例如,控制器130可以控制在存储器装置150中执行的操作,诸如读取操作、编程操作或擦除操作。
控制器130可以包括写入缓冲器146。控制器130可以将待编程到存储器装置150中的数据(例如与写入请求一起从主机102输入的数据)缓冲到写入缓冲器146。控制器130可以控制存储器装置150对数据进行编程,同时将写入缓冲器146中缓冲的数据传送到存储器装置150。
在存储器装置150中执行的编程操作失败的情况下,控制器130可以将数据保留或保持在控制器130内部,直到在将数据传输到存储器装置150之后成功完成存储器装置150中的编程操作。
写入缓冲器146可以利用诸如SRAM的高速存储器来实施,以快速处置写入请求。高速存储器可以提供比诸如DRAM的一般存储器更快的访问速度,但高速存储器可能具有较低的密度以及较高的制造成本。如果控制器130必须将待编程到存储器装置150的数据保持在写入缓冲器146中直到关于该数据的编程操作成功完成,则写入缓冲器146可能需要具有较大容量。当具有较大容量的写入缓冲器146被包括在存储器系统110中时,存储器系统110的电路面积可能会增加并且存储器系统110的制造成本可能会增加。
控制器130可以包括备份存储器148,备份存储器148用于保存待编程的数据直到关于该数据的编程操作成功完成。控制器130可以将从主机102输入的数据缓冲到写入缓冲器146,并且将数据备份到备份存储器148。当写入缓冲器146中缓冲的所有数据被备份到备份存储器148时,控制器130可以在将写入缓冲器146中缓冲的数据传送到存储器装置150之后从写入缓冲器146中释放数据。
备份存储器148可以被实施为诸如DRAM的低速存储器。与诸如SRAM的高速存储器相比,低速存储器可以具有更高的集成度和更低的制造成本。当控制器130包括备份存储器148时,待编程到存储器装置150的数据可以保持在控制器130中。即使关于存储器装置150中的数据的编程操作失败,也可以保持存储器系统110的操作可靠性。进一步地,可以减少存储器系统110的电路面积和制造成本。
在将新数据备份到备份存储器148的速度比移除备份存储器148中备份的数据的速度更快时,备份存储器148中可能出现瓶颈。如果控制器130将写入缓冲器146中缓冲的所有数据备份到备份存储器148,则在备份存储器148中出现瓶颈时,一些数据可能不会被缓冲到写入缓冲器146。当备份存储器148中出现瓶颈时,即使写入缓冲器146可以具有足够快的数据传送速率,但存储器系统110的写入性能也可能劣化。
根据本公开的实施例,控制器130可以丢弃被缓冲到写入缓冲器146中的一些数据而不将其备份到备份存储器148,以避免备份存储器148中的瓶颈。在图1所示的示例中,写入缓冲器146可以缓冲多个数据组块。写入缓冲器146中缓冲的多个数据组块之中的至少一些数据组块可以被备份到备份存储器148。其它数据组块可以不被备份到备份存储器148,即被丢弃。
备份存储器148中备份的数据组块中的每一个可以被称为备份数据组块。备份数据组块在图1中显示为阴影矩形。写入缓冲器146中缓冲的数据组块之中的、与备份数据组块相对应的数据组块中的每一个可以被称为普通数据组块,其在图1中显示为具有点阵图案的矩形。在写入缓冲器146中缓冲的数据组块为普通数据组块时,相同的数据组块被作为备份数据组块存储在备份存储器148中。在写入缓冲器146中缓冲但未被备份到备份存储器148的数据组块之中的每个数据组块可以被称为非备份数据组块。非备份数据组块在图1中示出为具有阴影线图案的矩形。图1中通过虚线连接的普通数据组块和备份数据组块可以表示相同的数据组块,即具有相同值的数据组块。
即使在普通数据组块被传送到存储器装置150之后从写入缓冲器146中释放(例如,移除)普通数据组块,控制器130也可以保留相同的数据组块,因为普通数据组块作为备份数据组块被备份到备份存储器148。另一方面,为了将非备份数据组块保留在控制器130中,控制器130可以不从写入缓冲器146中释放非备份数据组块,直到非备份数据组块被成功地编程到存储器装置150。
根据本公开的实施例,控制器130可以减少保存写入缓冲器146中存储的非备份数据组块的时间,以使写入缓冲器146中所需的存储容量最小化。控制器130可以保留或保存数据组块,直到相应的数据组块被成功地编程到存储器装置150。在下文中,参照图2至图9B描述了一种从写入缓冲器146中快速释放非备份数据组块以避免数据组块累积在写入缓冲器146中的方法。
图2示出根据本公开实施例的存储器系统110。
存储器系统110可以包括控制器130和存储器装置150。图2所示的控制器130和存储器装置150可以对应于图1中描述的控制器130和存储器装置150。
控制器130可以包括主机接口(I/F)132、处理器134、错误校正电路(ECC)138、存储器接口142和存储器144,它们通过内部总线可操作地彼此连接。
主机接口132可以接收从主机102输入的信号、命令(或请求)和/或数据。例如,主机102和存储器系统110可以使用各种通信协议(标准)或接口中的至少一种以在主机102和存储器系统110之间发送和接收数据。主机102和存储器系统110支持的用于发送和接收数据的协议或接口的示例包括通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速外围组件互连(PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、移动工业处理器接口(MIPI)等。根据实施例,主机接口132是一种用于与主机102交换数据的层,并且利用被称为主机接口层(HIL)的固件来实施或由其驱动。
错误校正电路138可以对从存储器装置150读取的数据的错误位进行校正,并且可以包括错误校正码(ECC)编码器和ECC解码器。ECC编码器可以对待编程到存储器装置150的数据执行错误校正编码以生成添加了奇偶校验位的经编码数据,并且将经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可以对从存储器装置150读取的数据中包含的错误位进行检测和校正。例如,在对从存储器装置150读取的数据执行错误校正解码之后,错误校正电路138确定错误校正解码是否已经成功,并且基于错误校正解码的结果输出指令信号(例如,校正成功信号或校正失败信号)。错误校正电路138可以使用奇偶校验位来校正读取数据的错误位,该奇偶校验位在针对存储器装置150中存储的数据的ECC编码过程中产生。当错误位的数量大于或等于可校正错误位的数量时,错误校正电路138可以不校正错误位,而是可以输出指示校正错误位失败的校正失败信号。
根据实施例,错误校正电路138可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍坤格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。错误校正电路138可以包括基于上述代码中的至少一种执行错误校正操作的所有电路、模块、系统和/或装置。
存储器接口142可以用作处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求而控制存储器装置150。在存储器装置150是闪速存储器的情况下,存储器接口142可以在处理器134的控制下生成存储器装置150的控制信号,并且可以处理输入到存储器装置150或从存储器装置150输出的数据。
例如,当存储器装置150包括NAND闪速存储器时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于处置控制器130和存储器装置150之间的命令和数据的接口。根据实施例,存储器接口142可以通过被称为闪存接口层(FIL)的固件来实施或由其驱动,以与存储器装置150交换数据。
根据实施例,存储器接口142可以支持开放式NAND闪存接口(ONFi)、切换模式等,以与存储器装置150进行数据输入/输出。例如,ONFi可以使用数据路径(例如,通道、通路等),该数据路径包括能够支持以8位或16位数据为单位进行双向发送和接收的至少一根信号线。控制器130与存储器装置150之间的数据通信可以通过关于异步单倍数据速率(SDR)、同步双倍数据速率(DDR)、切换双倍数据速率(切换DDR)等的至少一种接口来实现。
处理器134可以控制存储器系统110的全部操作。例如,处理器134可以响应于从主机102输入的写入请求或读取请求而控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以运行固件以控制存储器系统110中的编程操作或读取操作。本文中,固件可以被称为闪存转换层(FTL)。将参照图3和图4详细描述FTL的示例。根据实施例,处理器134可以利用微处理器、中央处理单元(CPU)等来实施。
在实施例中,控制器130中的处理器134可以执行与从主机102输入的请求或命令相对应的操作。在另一实施例中,存储器系统110可以独立于从主机102输入的命令或请求而执行操作。控制器130响应于从主机102输入的请求或命令而执行的操作可以被视为前台操作,而控制器130独立于从主机102输入的请求或命令而执行的操作可以被视为后台操作。控制器130可以执行在存储器装置150中读取数据、写入数据或擦除数据的前台操作或后台操作。在实施例中,与作为从主机102传输的设置命令的设置参数命令或设置特征命令相对应的参数设置操作可以被视为前台操作。在实施例中,作为在没有从主机102传输的命令的情况下执行的后台操作,控制器130可以执行垃圾收集(GC)、损耗均衡(WL)、用于识别和处理坏块的坏块管理等。
存储器144可以在临时存储与存储器系统110和控制器130中执行的操作相关联的事务性数据的同时,用作存储器系统110或控制器130的工作存储器。例如,在从存储器装置150输出的读取数据被输出到主机102之前,存储器144可以响应于来自主机102的读取请求而临时存储该读取数据。在另一示例中,控制器130可以在将从主机102输入的写入数据编程到存储器装置150之前,将该写入数据临时存储在存储器144中。当控制器130控制存储器装置150的诸如数据读取操作、数据写入或编程操作、数据擦除操作等的操作时,在存储器系统110的控制器130和存储器装置150之间传输和接收的数据可以临时存储在存储器144中。
在实施例中,存储器144可以利用易失性存储器来实施。例如,存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。尽管图2示出,例如存储器144被设置在控制器130内,但是实施例不限于此。存储器144可以位于控制器130内部或外部。例如,存储器144可以由具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器实现。
在各个实施例中,图2中的存储器144可以包括参照图1描述的写入缓冲器146和备份存储器148。参照图3,详细描述控制器130将从主机102输入的数据组块缓冲到写入缓冲器146并且将数据组块中的一些备份到备份存储器148的数据路径。
图3描述根据本公开实施例的从主机102输入的数据的数据路径。
图3示出参照图1和图2描述的控制器130的一些组件。具体地,图3示出主机接口132、写入缓冲器146和备份存储器148。
在图3中,控制器130中具有主数据路径302和备份数据路径304。主数据路径302可以指从主机102接收数据组块并传送数据组块以将该数据组块缓冲到写入缓冲器146的路径。备份数据路径304可以指从主机102接收数据组块并传送数据组块以将该数据组块备份到备份存储器148的路径。
控制器130可以进一步包括临时缓冲器140。来自主机102的数据组块可以经由主机接口132输入并经由临时缓冲器140传送以备份到备份存储器148。临时缓冲器140可以被包括在图2所示的存储器144中。
控制器130可以经由备份数据路径304来避免瓶颈。控制器130可以选择性地备份或丢弃从主机102输入的一些数据组块,以保持或提高存储器系统110的写入操作性能。
在图3中,主机接口132可以从主机102接收第一至第四数据组块D1、D2、D3、D4,并且将数据组块D1至D4传送到主数据路径302和备份数据路径304两者。写入缓冲器146可以缓冲通过主数据路径302传送的所有的第一至第四数据组块D1至D4。相反,临时缓冲器140可以根据临时缓冲器140中是否存在缓冲数据组块的可用空间,选择性地缓冲通过备份数据路径304传送的数据组块。例如,临时缓冲器140可以缓冲经由备份数据路径304顺序传送的第一至第三数据组块D1-D3。然后,在临时缓冲器140中不存在更多的可用空间时,第四数据组块D4可以被丢弃而不被缓冲到临时缓冲器140。临时缓冲器140可以将临时缓冲器140中缓冲的第一至第三数据组块D1至D3传送到备份存储器148。
在图3中,写入缓冲器146中缓冲的数据组块D1至D4之中的第一至第三数据组块D1至D3被视为普通数据组块,而第四数据组块D4被视为非备份数据组块。第一至第三数据组块D1至D3被备份到备份存储器148并且被视为备份数据组块。因此,普通数据组块与备份数据组块基本相同。
处理器134可以在将第一至第四数据组块D1至D4传送到存储器装置150之后控制对存储器装置150的编程操作。处理器134可以在将被视为普通数据组块的第一至第三数据组块D1至D3传送到存储器装置150之后,从写入缓冲器146中释放第一至第三数据组块D1至D3。即使关于普通数据组块的编程操作失败,处理器134也可以通过存储器接口142将与普通数据组块相对应的备份数据组块从备份存储器148传送到存储器装置150。
另一方面,处理器134可以在将被视为非备份数据组块的第四数据组块D4传送到存储器装置150之后,保持第四数据组块D4而不从写入缓冲器146中释放第四数据组块D4。当关于非备份数据组块的编程操作失败时,处理器134可以通过存储器接口142将非备份数据组块从写入缓冲器146传送到存储器装置150。
当关于非备份数据组块的编程操作在存储器装置150中成功完成时,处理器134可以从写入缓冲器146中释放非备份数据组块。进一步地,当关于备份数据组块的编程操作在存储器装置150中成功完成时,处理器134可以从备份存储器148中释放(移除)备份数据组块。
根据本公开的实施例,控制器130可以调整将多个数据组块编程到存储器装置150的编程序列,使得关于非备份数据组块的编程操作可以比关于备份数据组块的编程操作更快地完成。因此,控制器130可以更快地从写入缓冲器146中释放非备份数据组块。根据本公开的实施例,可以减少写入缓冲器146中缓冲的数据组块的数量,使得控制器130可以在写入缓冲器146中获得用于另一编程操作的可用空间,同时控制器130可以在备份存储器148中保存备份数据组块,直到关于备份数据组块的编程操作成功完成。
将参照图4至图6详细描述将多个数据组块编程到存储器装置150的编程序列。
图4是示出根据本公开实施例的存储器装置150中的三维存储器单元阵列的示图。
参照图4,存储器装置150可以包括多个存储块MB1至MBk。存储块MB1至MBk中的每一个可以包括多个串ST11至ST1m、ST21至ST2m。在实施例中,多个串ST11至ST1m、ST21至ST2m中的每一个可以形成为“U”形。在第一存储块MB1中,可以沿行方向(X方向)布置“m”个串,其中“m”是自然数。在图4中,示出沿列方向(Y方向)布置两个串,但这是为了便于描述。例如,可以沿列方向(Y方向)布置三个或更多个串。
多个串ST11至ST1m、ST21至ST2m中的每一个可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST,其中“n”是自然数。
源极和漏极选择晶体管SST、DST以及存储器单元MC1至MCn可以具有彼此相似的结构。例如,源极和漏极选择晶体管SST、DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧穿绝缘层、电荷撷取层和阻挡绝缘层。例如,可以在每个串中设置用于提供沟道膜的柱。例如,用于提供沟道层、隧穿绝缘层、电荷撷取层和阻挡绝缘层中的至少一个的柱可以被包括在每个串中。
每个串的源极选择晶体管SST可以联接在源极线SL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行的串的源极选择晶体管SST可以联接到沿行方向延伸的源极选择线,并且布置在不同行的串的源极选择晶体管SST可以联接到不同的源极选择线。在图4中,第一行的串ST11至ST1m的源极选择晶体管SST可以联接到第一源极选择线SSL1。第二行的串ST21至ST2m的源极选择晶体管SST可以联接到第二源极选择线SSL2。
在另一实施例中,串ST11至ST1m、ST21至ST2m的源极选择晶体管SST可以共同联接到单个源极选择线。
每个串的第一至第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。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。当虚设存储器单元被包括在串中时,可以稳定地控制相应串的电压或电流。每个串的管道晶体管PT的栅极可以联接到管线PL。
每个串的漏极选择晶体管DST可以联接在位线和存储器单元MCp+1至MCn之间。沿行方向布置的串的漏极选择晶体管可以联接到沿行方向延伸的漏极选择线。第一行的串ST11至ST1m的漏极选择晶体管可以联接到第一漏极选择线DSL1。第二行的串ST21至ST2m的漏极选择晶体管可以联接到第二漏极选择线DSL2。
沿列方向布置的串可以联接到沿列方向延伸的位线。在图4中,第一列的串ST11和ST21可以联接到第一位线BL1。第m列的串ST1m和ST2m可以联接到第m位线BLm。
在沿行方向布置的串之中,联接到相同字线的存储器单元可以构成单个物理页面。例如,在第一行的串ST11至ST1m之中,连接到第一字线WL1的存储器单元可以构成单个物理页面。在第二行的串ST21至ST2m之中,连接到第一字线WL1的存储器单元可以构成另一物理页面。当选择漏极选择线DSL1和DSL2中的任意一个时,可以选择沿单个行方向布置的串。当选择字线WL1至WLn中的任意一个时,可以选择所选择串之中的单个物理页面。
存储器装置150包括用于在单个存储器单元中存储单个位的数据的多个单层单元(SLC)存储块、用于在单个存储器单元中存储多位数据的多层单元(MLC)存储块等。SLC存储块可以包括被实施为非易失性存储器单元的多个页面,每个单元存储单个位的数据。SLC存储块可以具有较高的耐久性和较快的数据操作性能。另一方面,MLC存储块可以包括被实施为非易失性存储器单元的多个页面,每个单元存储多位数据,诸如两位或更多位的数据。例如,MLC存储块可以包括能够在单个存储器单元中存储2位数据的双层单元(DLC)存储块、能够在单个存储器单元中存储3位数据的三层单元(TLC)存储块或者能够在单个存储器单元中存储4位数据的四层单元(QLC)存储块。MLC存储块可以比SLC存储块具有更大的数据存储能力。也就是说,MLC存储块可以是高度集成的,即,每单位区域存储的数据量较大。
存储器装置150可以执行多步骤编程操作以在单个存储器单元中编程多位数据。例如,为了对双层单元DLC进行编程,存储器装置150可以执行对双层单元DLC的2位数据之中与最低有效位(LSB)数据相对应的数据进行编程的第一步骤编程操作。在执行第一步骤编程操作之后,存储器装置150可以执行对双层单元DLC的2位数据之中与最高有效位(MSB)数据相对应的数据进行编程的第二步骤编程操作。每步编程操作可以包括多个编程循环。在下文中,包括多个步骤编程操作的编程操作被称为多步骤编程操作。
图5是示出根据本公开实施例的在存储器装置中执行的多步骤编程操作的示图。
图5示出作为存储器单元示例的TLC的多个阈值电压状态的分布图。在分布图中,横轴表示存储器单元的阈值电压电平,纵轴表示具有相应阈值电压电平的存储器单元的数量。
第一分布图502示出所有存储器单元具有擦除阈值电压状态,即在执行编程操作之前被擦除的存储器单元的阈值电压状态。在第一分布图502中,所有存储器单元可以具有擦除状态,例如空白页面或空闲块。在图5中,具有擦除状态的存储器单元可以被识别为存储逻辑“1”的数据。
第二分布图504示出在完成第一步骤编程操作之后存储器单元的阈值电压状态。在第一步骤编程操作中,至少一些存储器单元被编程,但其它存储器单元未被编程。存储器装置150可以首先编程第一位数据,例如每个存储器单元中存储的多位数据之中的最低有效位(LSB)数据。对第一位数据进行编程的操作被称为第一步骤编程操作。为了执行第一步骤编程操作,存储器装置150可以接收从控制器130传送的第一位数据。当存储器装置150基于第一位数据对存储器单元执行第一步骤编程操作时,具有擦除状态的一些存储器单元的阈值电压电平可以转变为编程状态。在图5中,一些存储器单元可以被识别为存储逻辑“0”的数据,而其它存储器单元可以被识别为存储逻辑“1”的数据。
第三分布图506示出在存储器装置150执行第二步骤编程操作之后存储器单元的阈值电压状态。在第一位数据被编程之后,存储器装置150在每个存储器单元中存储的多位数据之中添加其它位数据,例如中间有效位(CSB)数据和最高有效位(MSB)数据。在第一步骤编程操作之后对其它位数据进行编程的操作可以被称为第二步骤编程操作。存储器装置150可以使用中间有效位(CSB)数据和最高有效位(MSB)数据对存储器单元执行第二步骤编程操作。根据实施例,为了执行第二步骤编程操作,存储器装置150可以接收从控制器130传送的第二位数据和第三位数据。在另一实施例中,存储器装置150可以在执行第二步骤编程操作之前,将从控制器130输入的第二位数据或第三位数据临时存储或备份到SLC缓冲器或其它存储器单元。当存储器装置150对存储器单元执行第二步骤编程操作时,所有的MSB数据、CSB数据和LSB数据可以被编程。在图5中,存储器单元可以被识别为存储逻辑“111”、“101”、“001”、“011”、“010”、“110”、“100”和“000”的数据。
图5示出用于TLC存储块的多步骤编程操作。例如,多步骤编程操作可以适用于各种类型的MLC存储块。当存储器装置150对DLC存储块执行多步骤编程操作时,通过第一步骤编程操作,基于2位数据之中的LSB数据,存储器单元可以具有两个可区分的阈值电压状态。通过第二步骤编程操作,根据MSB数据,存储器装置150中的存储器单元可以最终被编程有从两个阈值电压状态到四个阈值电压状态。
当对某个物理页面执行编程操作时,可能发生编程干扰,其中相邻物理页面的阈值电压分布也会由于字线联接而改变。当对多个物理页面进行编程时,可以确定存储器装置150的编程序列以减少或避免编程干扰。
图6描述根据本公开实施例的在执行多步骤编程操作的存储器装置中的数据编程序列。
当存储器装置150包括MLC存储块时,每个物理页面可以包括多个子页面。例如,当存储器装置150是DLC存储块时,每个物理页面可以包括第一位页面和第二位页面。
在图6所示的示例中,第一表600示出用于对单个存储块中包括的子页面进行编程的编程序列。在第一表600中,第一至第八漏极选择线DSL1至DSL8显示在第一表600的第一行中,第一至第三字线WL1至WL3显示在第一列中。如参照图4所描述的,可以通过漏极选择线DSL和字线WL选择单个存储块中的物理页面进行编程。本文中,通过第X字线和第Y漏极选择线选择的物理页面可以被称为页面XY PageXY。例如,通过第一字线WL1和第四漏极选择线DSL4指定的物理页面可以被称为页面14。
在第二列中,示出通过第一至第三字线WL1至WL3中的每一个联接的存储器单元中存储的2位数据的第一位数据(1st bit)和第二位数据(2nd bit)。第一表600的每个条目可以对应于每个子页面。第一表600的每个条目中包括的诸如“1”、“2”、……、“40”的数字表示利用数据对子页面进行编程的编程序列。
如果存储器装置150紧接在对经由第N字线联接的存储器单元执行第一步骤编程操作之后,继续对经由第N字线联接的存储器单元执行第二步骤编程操作,则联接到第(N+1)字线的、处于擦除状态的存储器单元的阈值电压可能会极大地受到编程干扰的影响。为了避免编程干扰的影响,在经由第N字线执行第一步骤编程操作之后,经由第(N+1)字线执行另一个第一步骤编程操作。然后,可以对第N字线执行第二步骤编程操作。
例如,参考第一表600中的编程序列“1”至“8”,存储器装置150可以执行关于存储块中联接到第一字线WL1的页面11至页面18的第一位数据的第一步骤编程操作。参考编程序列“9”和“10”,在关于页面11至页面18的第一位数据的第一步骤编程操作完成之后,存储器装置150可以执行关于页面21的第一位数据的另一个第一步骤编程操作。在页面21的第一位数据被编程之后,存储器装置150可以执行关于页面11的第二位数据的第二步骤编程操作。参考编程序列“11”至“24”,在经由第一字线WL1联接的页面12至页面18的第二位数据通过第二步骤编程操作被编程之前,可以通过第一步骤编程操作对联接到第二字线WL2的页面22至页面28的第一位数据进行编程,这类似于页面11和页面21的情况。类似地,参考编程序列“25”至“40”,存储器装置150可以在经由第二字线WL2执行关于第二位数据的第二步骤编程操作之前,经由第三字线WL3执行关于第一位数据的第一步骤编程操作。
当关于物理页面的第一和第二步骤编程操作都成功完成时,关于物理页面的多步骤编程操作可以最终完成。然而,即使第一步骤编程操作成功完成,第二步骤编程操作也可能失败。当存储器装置150确定关于特定物理页面的编程操作失败时,存储器装置150可以对不同的物理页面重新编程第一位数据和第二位数据。为了确保存储器系统110的可靠性,控制器130可以保存第一位数据和第二位数据直到第二步骤编程操作完成。
在图6中,可以以编程序列的第9顺序对页面21执行第一步骤编程操作,并且可以以编程序列的第26顺序执行第二步骤编程操作。在以编程序列的第26顺序执行的第二步骤编程操作完成之后,可以成功完成关于页面21的编程操作。控制器130可以保留或保持以第9顺序编程的数据组块,直到以第26顺序执行的第二步骤编程操作完成。如果数据组块为非备份数据组块,则可以将数据组块保留或保持在写入缓冲器146中,直到以第26顺序执行的第二步骤编程操作完成。
如果非备份数据组块以第10顺序被编程,则可以通过第二步骤编程操作将非备份数据组块编程到页面11上。在以第10顺序执行的第二步骤编程操作完成之后,可以释放写入缓冲器146中的非备份数据组块。
根据本公开的实施例,控制器130可以调整将多个数据组块编程到存储器装置150的编程序列,并且经由第二步骤编程操作快速地编程待编程的非备份数据组块,使得写入缓冲器146中存储的非备份数据组块可以被更快地释放。将参照图7至图9B详细描述根据本公开实施例的控制器130的操作。
图7示出根据本公开实施例的用于执行编程操作的控制器130和存储器装置150之间的事务。
在操作S702中,写入缓冲器146可以缓冲通过主机接口132输入的数据组块。
在操作S704中,备份存储器148可以选择性地对通过主机接口132输入的数据组块进行备份。数据组块中的一些被备份到备份存储器148,而数据组块中的其它数据组块被丢弃,例如,未被备份到备份存储器148。
在各个实施例中,操作S702、S704可以通过参照图3描述的主数据路径302和备份数据路径304并行执行。通过主机接口132输入的数据组块被复制和分布在主数据路径302和备份数据路径304上。
在操作S706中,处理器134可以确定写入缓冲器146中缓冲的数据组块被编程到存储器装置150的编程序列。例如,处理器134可以调整编程序列,使得非备份数据组块可以被编程为每个非易失性存储器单元中存储的多位数据之中的第二位数据,而不是第一位数据。
在操作S708中,存储器接口142可以将待编程为第一物理页面上的第一位数据的数据组块传送到存储器装置150。本文中,待编程为第一位数据的数据组块可以被称为第一位数据组块。根据本公开的实施例,第一位数据组块可以始终是普通数据组块,即备份数据组块。
在存储器接口142将待编程到第一物理页面上的第一位数据组块传送到存储器装置150之后,在操作S710中,处理器134可以从写入缓冲器146中释放(移除)第一位数据组块。
在操作S712中,存储器装置150可以基于从控制器130输入的第一位数据组块对第一物理页面执行第一步骤编程操作。
在操作S714中,存储器接口142可以将待编程到第一物理页面之后的第二物理页面上的另一个第一位数据组块传送到存储器装置150。
紧接在关于第二物理页面的第一位数据组块被传送到存储器装置150中之后,在第一位数据组块尚未完全编程到第二物理页面之前,在操作S716中,处理器134可以从写入缓冲器146中释放第一位数据组块。
在操作S718中,存储器装置150可以基于从控制器130传送的第一位数据组块对第二物理页面执行第一步骤编程操作。
在操作S720中,存储器接口142可以将第二位数据组块传送到存储器装置150,第二位数据组块为待编程为第一物理页面的第二位数据的数据组块。根据本公开的实施例,第二位数据组块可以是非备份数据组块或普通数据组块。图7示出第二位数据组块是非备份数据组块的情况。即使在第二位数据组块被传送到存储器装置150之后,处理器134也可以在写入缓冲器146中保存或保留第二位数据组块而不从写入缓冲器146中释放第二位数据组块。
在操作S722中,存储器装置150可以基于从控制器130传送的第二位数据组块对第一物理页面执行第二步骤编程操作。
当操作S712中的第一步骤编程操作和操作S722中的第二步骤编程操作都成功完成时,在操作S724中,存储器装置150可以将关于第一物理页面的编程完成信号传送到控制器130。
在操作S726中,响应于编程完成信号,处理器134可以从备份存储器148和写入缓冲器146两者中释放(移除)被编程到第一物理页面上的备份数据组块和非备份数据组块两者。处理器134可以从备份存储器148中释放与被编程到第一物理页面的第一位数据组块相对应的备份数据组块。进一步地,处理器134可以从写入缓冲器146中释放与被编程到第一物理页面的第二位数据组块相对应的非备份数据组块。
在下文中,将参照图8详细描述关于处理器134如何确定编程序列以使得可以通过第二步骤编程操作对非备份数据组块进行编程的操作方法。
图8示出根据本公开实施例的由控制器执行的图7的操作S706。
在操作S802中,处理器134可以基于编程序列确定是否在存储器装置150中执行第一步骤编程操作。已经参照图6描述了将数据编程到存储器装置150的编程序列的示例。
在操作S804中,当确定存储器装置150执行第一步骤编程操作(操作S802中为“是”)时,处理器134可以确定编程序列,从而从写入缓冲器146中缓冲的数据组块之中选择普通数据组块并通过第一步骤编程操作对普通数据组块进行编程。例如,处理器134可以确定编程序列,使得写入缓冲器146中缓冲的普通数据组块之中最旧的数据组块被最早地通过第一步骤编程操作编程到存储器系统150。
如果写入缓冲器146中缓冲的数据组块之中最旧的数据组块是非备份数据组块,则处理器134可以推迟该最旧的数据组块。例如,当最旧的数据组块是非备份数据组块而第二旧的数据组块是备份数据组块时,处理器134可以确定第二旧的数据组块比最旧的数据组块被更早地编程,因为第二旧的数据组块(即,备份数据组块)可以更快地从写入缓冲器146中释放。
为了执行第二步骤编程操作(操作S802中为“否”),在操作S806中,处理器134可以确定写入缓冲器146中缓冲的数据组块之中最旧的数据组块是否为非备份数据组块。
当写入缓冲器146中缓冲的最旧的数据组块是非备份数据组块(操作S806中为“是”)时,在操作S808中,处理器134可以确定编程序列,使得非备份数据组块被传送(提供)到存储器装置150并经由第二步骤编程操作进行编程。例如,控制器130可以确定编程序列,使得写入缓冲器146中缓冲的非备份数据组块之中最旧的数据组块被用于第二步骤编程操作而传送并且编程。
如果写入缓冲器146中仅缓冲普通数据组块(操作S806中为“否”),即写入缓冲器146中缓冲的所有数据组块是备份数据组块,则处理器134可以确定编程序列,使得写入缓冲器146中缓冲的任何普通数据组块,例如最旧的数据组块,被用于第二步骤编程操作而传送(提供)并且编程。
根据本公开的实施例,非备份数据组块可以晚于备份数据组块(即,普通数据组块)被编程到存储器装置150,该备份数据组块(即,普通数据组块)晚于非备份数据组块被输入。例如,在非备份数据组块之后输入的普通数据组块可以被编程为第二物理页面的第一位数据,而非备份数据组块可以被编程为第一物理页面的第二位数据,其中第一步骤编程操作早于第二步骤编程操作执行。
紧接在数据组块被传送以进行关于第二物理页面的第二位数据的第二步骤编程操作之后,通过处理器134将被编程为第二物理页面的第一位数据的备份数据组块从写入缓冲器146中释放。然而,当第一物理页面的第二位数据被成功编程时,可以从写入缓冲器146中释放非备份数据组块。因此,可以减少写入缓冲器146中缓冲的非备份数据组块和备份数据组块的保存时间。
图9A和图9B示出根据本公开实施例的由控制器130执行的操作。将参照图9A和图9B的具体示例来描述控制器130的操作。
图9A示出写入缓冲器146中缓冲的数据组块。
在图9A中,多个数据组块可以以第一至第二十四数据组块D1至D24的输入顺序(例如,升序)被缓冲到写入缓冲器146。在多个数据组块之中,普通数据组块被标记为具有点阵图案的矩形,非备份数据组块由具有阴影线的矩形示出。第一至第二十四数据组块D1至D24中的第四、第七、第十一、第十五、第十八和第二十三块数据组块D4、D7、D11、D15、D18和D23为非备份数据组块,而其余数据组块为备份数据组块(即,普通数据组块)。在下文中,将描述控制器130的操作。
图9B描述对如图9A所示的写入缓冲器146中缓冲的数据组块进行编程的编程序列。
第二表900示出单个存储块中包括的子页面的编程序列以及针对每个子页面待编程的数据组块。在第二表900中,DSL1至DSL8分别代表第一至第八漏极选择线DSL1至DSL8,并且第一和第二列代表第一至第三字线WL1至WL3中的每一个的第一位页面和第二位页面。PO代表子页面的编程序列,D代表数据组块。每个数据组块D可以根据编程序列PO而被编程到每个子页面。第二表900中的多个子页面的编程序列可以与参照图6的第一表600描述的编程序列基本相同。
参照图9B,作为写入缓冲器146中缓冲的普通数据组块的第一至第三数据组块D1至D3被编程到与编程序列“1”至“3”相对应的子页面。
根据本公开的实施例,可以确定编程序列,使得作为非备份数据组块的第四数据组块D4可以通过第二步骤编程操作被编程。在图9B中,第四数据组块D4可以不被传送和编程到与编程序列“4”至“9”相对应的子页面中的任意一个,但是可以被传送和编程到与编程序列“10”相对应的子页面。在第四数据组块D4之后输入的其它普通数据组块可以通过第一步骤编程操作被编程到与编程序列“4”至“9”相对应的子页面。
在图9B中,第二表900中示出以下编程序列,其中在该编程序列中,不仅第一至第四数据组块D1至D4而且第五至第二十四数据组块D5至D24的数据组块被编程到每个数据组块被编程到的子页面。在图9B中,待编程到子页面的普通数据组块由点阵图案标记,待编程到子页面的非备份数据组块由阴影线图案标记,未标记任何图案的子页面可以处于擦除状态。
在图9B中,所有非备份数据组块可以被编程为第二位数据,而普通数据组块可以被编程为第一位数据或第二位数据。
如图9B所示,可以调整编程序列,使得可以将非备份数据组块编程为第二位数据。与调整数据组块的编程序列时相比,当以输入顺序对数据组块进行编程时,可以更快地从写入缓冲器146中释放写入缓冲器146中缓冲的数据组块。
在第一示例中,根据本公开的实施例,第四数据组块D4可以被编程为页面11的第二位数据。第四数据组块D4可以以编程序列的第四顺序被缓冲到写入缓冲器146,并且以编程序列的第十顺序(10)被编程到存储器装置150。当页面11的第二位数据被成功地编程完成时,可以从写入缓冲器146中释放第四数据组块D4。相反,如果第四数据组块D4以输入写入缓冲器146的顺序,即以第四顺序进行编程,则第四数据组块D4可以被编程为页面14的第一位数据。在关于第四数据组块D4的第二步骤编程操作(编程页面14的第二位数据)成功完成之后,可以从写入缓冲器146中释放第四数据组块D4,并且页面14的第二位数据可以以第16顺序(16)编程。
在第二示例中,数据组块D23可以以第二十四顺序(24)被编程为页面18的第二位数据。当第二十四顺序的编程操作成功完成时,可以从写入缓冲器146中释放数据组块D23。但是,当数据组块D23以第二十三顺序编程时,数据组块D23可以被编程为页面28的第一位数据。页面28的第二位数据可以以第40顺序被完全编程,使得以第40顺序的编程操作成功完成之后数据组块D23可以从写入缓冲器146中释放。
在实施例中,可以调整编程序列,使得第四数据组块D4、第二十三数据组块D23和其它非备份数据组块可以被编程为第二位数据。因此,与数据组块以输入顺序被编程到存储器装置150的子页面相比,当调整编程序列时,可以减少或保持写入缓冲器146中存储的非备份数据组块的保存时间。
根据本公开的实施例,控制器130可以将通过主数据路径302传送以被编程到存储器装置150的数据组块缓冲到写入缓冲器146。控制器130可以将通过备份数据路径304传送的一些数据组块备份到备份存储器148以避免瓶颈。控制器130可以确定数据组块的编程序列。具体地,控制器130可以确定通过第二步骤编程操作编程非备份数据组块的编程序列。当非备份数据组块通过第二步骤编程操作被编程为第二位数据时,控制器130可以在将非备份数据组块传送到存储器装置150之后更快地从写入缓冲器146中释放非备份数据组块。因此,可以减少写入缓冲器146中的非备份数据组块的保存时间,使得控制器130可以避免数据组块累积在写入缓冲器146中。
尽管已经参考存储器装置150包括DLC存储块并且在图5至图9B中执行两步编程操作的情况作为示例描述了本公开的实施例,但是根据本公开的实施例的范围不应限于图5至图9B的示例。
在第一示例中,该实施例可以适用于存储器装置150包括TLC存储块的情况。LSB数据通过第一步骤编程操作进行编程,而CSB数据和MSB数据通过第二步骤编程操作进行编程。在确定数据组块的编程序列时,控制器130可以调整编程顺序,使得非备份数据组块被编程到TLC存储块中的CSB页面或MSB页面。
在第二示例中,该实施例还可以适用于存储器装置150通过三步骤或更多步骤编程操作对物理页面进行编程的情况。在确定数据组块的编程序列时,控制器130可以调整编程顺序,使得通过三步骤或更多步骤编程操作中的最后一个步骤编程操作对非备份数据组块进行编程。
根据本公开的实施例,控制器130可以在写入缓冲器146或备份存储器148中保存或保持所有数据组块,直到关于数据组块中的每一个的编程操作完成,类似于所有数据组块被保留或保持在控制器130中的方案。另外,根据本公开的实施例,可以避免备份存储器148的瓶颈,使得与将写入缓冲器146中缓冲的所有数据组块备份到备份存储器148的传统情况相比,可以提高存储器系统110的写入操作速度。进一步地,根据本公开的实施例,因为控制器130可以避免非备份数据组块累积在写入缓冲器146中,因此与将写入缓冲器146中缓冲的所有数据组块备份到备份存储器148的传统情况相比,可以不需要被实施为高速存储器的写入缓冲器146中所需的更高存储容量。因此,在提高存储器系统110的性能并保持可靠性的同时,可以避免存储器系统110的制造成本或电路大小的增加。
实施例可以提供一种能够降低存储器系统的制造成本同时提高或保持存储器系统的性能和可靠性的控制器以及控制器的操作方法。
尽管已经针对特定实施例示出和描述了本教导,但是根据本公开,对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求所限定的本公开的精神和范围的情况下,可以进行各种改变和修改。此外,可以对实施例进行组合,以形成另外的实施例。
Claims (21)
1.一种控制器的操作方法,所述控制器控制存储器装置,所述存储器装置包括通过多步骤编程操作编程数据的多层单元,所述方法包括:
将待编程到所述多层单元的数据组块缓冲到写入缓冲器;
将所述数据组块中的至少一个备份数据组块备份到与所述写入缓冲器不同的备份存储器;
确定所述数据组块的编程序列,所述编程序列通过所述多步骤编程操作中的第二步骤编程操作将所述数据组块中的至少一个非备份数据组块编程到所述多层单元;并且
控制所述存储器装置基于所述编程序列,通过在所述多层单元的第一页面中执行所述多步骤编程操作中的第一步骤编程操作和所述第二步骤编程操作,将所述数据组块编程到所述多层单元,在所述第一页面中执行的所述第二步骤编程操作晚于在所述第一页面之后的第二页面中执行的另一个第一步骤编程操作。
2.根据权利要求1所述的操作方法,其中确定所述编程序列包括:
确定通过所述第一步骤编程操作或所述第二步骤编程操作对所述数据组块中的至少一个备份数据组块进行编程的编程序列。
3.根据权利要求2所述的操作方法,其中确定所述编程序列进一步包括:
确定通过所述第一步骤编程操作对所述至少一个备份数据组块中的第一组块进行编程的编程序列;
当所述至少一个非备份数据组块被缓冲到所述写入缓冲器时,确定通过所述第二步骤编程操作对所述至少一个非备份数据组块进行编程的编程序列;并且
当不存在所述非备份数据组块时,确定通过所述第二步骤编程操作对所述至少一个备份数据组块中的第二组块进行编程的编程序列。
4.根据权利要求1所述的操作方法,进一步包括:
将所述写入缓冲器中的每个非备份数据组块传送到所述存储器装置;以及
在执行关于所传送的非备份数据组块的所述第二步骤编程操作之后,将所传送的非备份数据组块从所述写入缓冲器中释放。
5.根据权利要求4所述的操作方法,进一步包括:
在关于所传送的非备份数据组块的所述第二步骤编程操作已经失败时,将所传送的非备份数据组块重新传送到所述存储器装置。
6.根据权利要求1所述的操作方法,进一步包括:
将所述写入缓冲器中的每个备份数据组块传送到所述存储器装置;以及
在传送所述备份数据组块之后并且在执行关于所传送的备份数据组块的所述第一步骤编程操作或所述第二步骤编程操作之前,将所传送的备份数据组块从所述写入缓冲器中释放。
7.根据权利要求6所述的操作方法,进一步包括:
在执行关于所传送的备份数据组块的所述第一步骤编程操作或所述第二步骤编程操作之后,将所传送的备份数据组块从所述备份存储器中释放。
8.根据权利要求7所述的操作方法,进一步包括:
在关于所传送的备份数据组块的所述第一步骤编程操作或所述第二步骤编程操作已经失败时,将所传送的备份数据组块重新传送到所述存储器装置。
9.根据权利要求1所述的操作方法,其中备份所述数据组块中的至少一个备份数据组块包括:
丢弃传送到所述备份存储器中的所述数据组块中的至少一个数据组块,以避免从主机输入的所述数据组块被传输的数据路径中的瓶颈,
其中所述写入缓冲器具有比所述备份存储器更快的操作速度。
10.根据权利要求9所述的操作方法,其中备份所述数据组块中的至少一个备份数据组块包括:
当临时缓冲器中存在可用空间时,将所述数据组块中的至少一个数据组块缓冲到所述临时缓冲器,然后将所述临时缓冲器中缓冲的所述至少一个数据组块备份到所述备份存储器;以及
当所述临时缓冲器中不存在可用空间时,丢弃所述数据组块中的所述至少一个数据组块。
11.一种控制存储器装置的控制器,所述存储器装置包括通过多步骤编程操作编程数据的多层单元,所述控制器包括:
写入缓冲器,缓冲待编程到所述多层单元的数据组块;
备份存储器,与所述写入缓冲器不同,备份所述数据组块中的至少一个备份数据组块;以及
处理器,确定所述数据组块的编程序列,所述编程序列通过所述多步骤编程操作中的第二步骤编程操作将所述数据组块中的至少一个非备份数据组块编程到所述多层单元,
其中所述处理器控制所述存储器装置基于所述编程序列,通过在所述多层单元的第一页面中执行所述多步骤编程操作中的第一步骤编程操作和所述第二步骤编程操作,将所述数据组块编程到所述多层单元,在所述第一页面中执行的所述第二步骤编程操作晚于在所述第一页面之后的第二页面中执行的另一个第一步骤编程操作。
12.根据权利要求11所述的控制器,其中所述处理器确定通过所述第一步骤编程操作或所述第二步骤编程操作对所缓冲的数据组块中的至少一个备份数据组块进行编程的编程序列。
13.根据权利要求12所述的控制器,其中所述处理器:
确定通过所述第一步骤编程操作对所述至少一个备份数据组块中的第一组块进行编程的编程序列;
当所述至少一个非备份数据组块被缓冲到所述写入缓冲器时,确定通过所述第二步骤编程操作对所述至少一个非备份数据组块进行编程的编程序列;以及
当不存在所述非备份数据组块时,确定通过所述第二步骤编程操作对所述至少一个备份数据组块中的第二组块进行编程的编程序列。
14.根据权利要求11所述的控制器,其中所述处理器:
将所述写入缓冲器中的每个非备份数据组块传送到所述存储器装置;以及
在执行关于所传送的非备份数据组块的所述第二步骤编程操作之后,将所传送的非备份数据组块从所述写入缓冲器中释放。
15.根据权利要求14所述的控制器,其中所述处理器在关于所传送的非备份数据组块的所述第二步骤编程操作已经失败时,将所传送的非备份数据组块重新传送到所述存储器装置。
16.根据权利要求11所述的控制器,其中所述处理器:
将所述写入缓冲器中的每个备份数据组块传送到所述存储器装置;以及
在传送所述备份数据组块之后并且在执行关于所传送的备份数据组块的所述第一步骤编程操作或所述第二步骤编程操作之前,将所传送的备份数据组块从所述写入缓冲器中释放。
17.根据权利要求16所述的控制器,其中所述处理器在执行关于所传送的备份数据组块的所述第一步骤编程操作或所述第二步骤编程操作之后,将所传送的备份数据组块从所述备份存储器中释放。
18.根据权利要求17所述的控制器,其中所述处理器在关于所传送的备份数据组块的所述第一步骤编程操作或所述第二步骤编程操作已经失败时,将所传送的备份数据组块重新传送到所述存储器装置。
19.根据权利要求11所述的控制器,其中所述备份存储器丢弃或备份所述数据组块中的至少一个数据组块,以避免从主机输入的所述数据组块被传输的数据路径中的瓶颈,并且
其中所述写入缓冲器具有比所述备份存储器更快的操作速度。
20.根据权利要求19所述的控制器,进一步包括:
临时缓冲器,位于所述数据组块被传送的所述数据路径上,
其中所述临时缓冲器:
当所述临时缓冲器中存在可用空间时,将所述数据组块中的至少一个数据组块缓冲到所述临时缓冲器,然后将所述至少一个数据组块备份到所述备份存储器;以及
当所述临时缓冲器中不存在可用空间时,丢弃所述数据组块中的所述至少一个数据组块。
21.一种存储器系统,包括:
存储器装置,包括多层单元;以及
控制器,联接到所述存储器装置,并且包括:
写入缓冲器,缓冲从主机接收的多个数据组块,
临时缓冲器,基于所述临时缓冲器的可用空间,缓冲从所述多个数据组块之中选择的备份数据组块,
备份存储器,从所述临时缓冲器接收所述备份数据组块并存储所述备份数据组块,以及
处理器,
将所缓冲的多个数据组块提供到所述存储器装置以在所述多层单元中进行编程,
当所缓冲的多个数据组块被提供到所述存储器装置时,将所缓冲的多个数据组块之中的备份数据组块从所述写入缓冲器中释放,
控制所述存储器装置将所缓冲的多个数据组块编程到所述多层单元,以及
当所缓冲的多个数据组块被成功编程到所述多层单元时,将所缓冲的多个数据组块之中除了所述备份数据组块以外的一个或多个非备份数据组块从所述写入缓冲器中释放,并且将所述备份数据组块从所述备份存储器中释放,
其中所述多层单元包括分别联接在多个字线和多个选择线之间的多个页面,每个页面包括第一子页面和第二子页面,并且
其中所述控制器控制所述存储器装置,使得第一字线的第二子页面晚于第二字线的第一子页面被编程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210079965A KR20220169642A (ko) | 2021-06-21 | 2021-06-21 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR10-2021-0079965 | 2021-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576482A true CN115576482A (zh) | 2023-01-06 |
Family
ID=84283744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210247077.3A Pending CN115576482A (zh) | 2021-06-21 | 2022-03-14 | 控制器及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11789637B2 (zh) |
JP (1) | JP2023001880A (zh) |
KR (1) | KR20220169642A (zh) |
CN (1) | CN115576482A (zh) |
DE (1) | DE102022203891A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220169642A (ko) * | 2021-06-21 | 2022-12-28 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101626080B1 (ko) | 2010-02-17 | 2016-06-01 | 삼성전자주식회사 | 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들 |
KR101856506B1 (ko) * | 2011-09-22 | 2018-05-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 쓰기 방법 |
US9141308B2 (en) * | 2011-12-30 | 2015-09-22 | Sandisk Technologies Inc. | Controller and method for using a transaction flag for page protection |
KR102106866B1 (ko) * | 2013-01-29 | 2020-05-06 | 삼성전자주식회사 | 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 |
KR102271462B1 (ko) * | 2015-01-13 | 2021-07-05 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법 |
KR20170056782A (ko) | 2015-11-13 | 2017-05-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI578222B (zh) * | 2015-11-18 | 2017-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10319445B1 (en) * | 2017-11-30 | 2019-06-11 | Western Digital Technologies, Inc. | Programming unprogrammed upper page during lower page programming of multi-level storage cells |
JP6967959B2 (ja) * | 2017-12-08 | 2021-11-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7051546B2 (ja) * | 2018-04-16 | 2022-04-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102583787B1 (ko) | 2018-11-13 | 2023-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200113989A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 쓰기 동작을 제어하는 방법 및 장치 |
KR102492806B1 (ko) | 2019-12-20 | 2023-01-30 | 김승연 | 재고관리 및 상품판매를 위한 스마트 진열대 및 스마트 진열대를 이용한 재고관리 및 상품 판매방법 |
KR20220169642A (ko) * | 2021-06-21 | 2022-12-28 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
-
2021
- 2021-06-21 KR KR1020210079965A patent/KR20220169642A/ko active Search and Examination
- 2021-11-29 US US17/536,712 patent/US11789637B2/en active Active
-
2022
- 2022-03-14 CN CN202210247077.3A patent/CN115576482A/zh active Pending
- 2022-04-21 DE DE102022203891.6A patent/DE102022203891A1/de active Pending
- 2022-05-26 JP JP2022085888A patent/JP2023001880A/ja active Pending
-
2023
- 2023-09-05 US US18/460,705 patent/US20230409228A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20220169642A (ko) | 2022-12-28 |
JP2023001880A (ja) | 2023-01-06 |
DE102022203891A1 (de) | 2022-12-22 |
US11789637B2 (en) | 2023-10-17 |
US20230409228A1 (en) | 2023-12-21 |
US20220404972A1 (en) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11450400B2 (en) | Controller and operating method thereof | |
US11481155B2 (en) | Controller and operating method thereof | |
CN112148533A (zh) | 将数据存储在存储器系统的mlc区域中的设备和方法 | |
US11922065B2 (en) | Memory system and operating method thereof | |
CN114385407A (zh) | 用于校正数据处理系统的数据传输中的错误的设备和方法 | |
US11373709B2 (en) | Memory system for performing a read operation and an operating method thereof | |
CN113138873A (zh) | 处置存储器系统中的数据错误的设备和方法 | |
CN112988054A (zh) | 存储器系统及其操作方法 | |
CN113223589A (zh) | 存储器系统及其操作方法 | |
US20230409228A1 (en) | Controller and operation method thereof | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
CN111755061A (zh) | 检查存储器系统中的存储器装置的操作状态的设备及方法 | |
US11538547B2 (en) | Systems and methods for read error recovery | |
US20220171564A1 (en) | Apparatus and method for maintaining data stored in a memory system | |
US11662911B2 (en) | Memory system and operating method thereof | |
CN113849121A (zh) | 用于访问条带形式的数据的存储器系统及其操作方法 | |
US11798648B2 (en) | Apparatus and method for recovering data in a memory system | |
US11941289B2 (en) | Apparatus and method for checking an error of a non-volatile memory device in a memory system | |
CN115756302A (zh) | 存储器系统及其操作方法 | |
TW202318211A (zh) | 用於編程資料的記憶體裝置和記憶體系統 | |
CN114155889A (zh) | 存储器系统中数据通信的校准设备和方法 | |
US20240012563A1 (en) | Apparatus and method for programming or reading data based on a program status of a non-volatile memory device | |
US20230162806A1 (en) | Apparatus and method for reducing signal interference in a semiconductor device | |
US20240127897A1 (en) | Memory device and memory system for using read compensation scheme and operating method of the same | |
CN114792543A (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 |