CN111445939B - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN111445939B CN111445939B CN201910982396.7A CN201910982396A CN111445939B CN 111445939 B CN111445939 B CN 111445939B CN 201910982396 A CN201910982396 A CN 201910982396A CN 111445939 B CN111445939 B CN 111445939B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- memory
- memory device
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- 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
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0647—Migration 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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/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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- 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/1008—Correctness of operation, e.g. memory ordering
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
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)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
Abstract
本文提供了存储装置及其操作方法。一种用于控制包括多个页的存储器装置的存储器控制器,该存储器控制器包括:输入数据控制器,被配置为接收待存储在从多个页之中选择的页中的数据;序列信息生成器,被配置为考虑存储器装置的操作状态,来生成指示将数据存储在所选择的页中的编程操作待被执行的序号的序列信息;以及写入操作控制器,被配置为控制存储器装置,以将数据存储在所选择的页的主区域中并且将历史信息存储在所选择的页的备用区域中,其中历史信息包括所选择的页的物理地址以及对应于数据的序列信息。
Description
相关申请的交叉引用
本专利文件要求于2019年1月17日提交的韩国专利申请号10-2019-0006417的优先权和权益,其全部内容通过引用并入本文。
技术领域
所公开技术的各种实施例一般地涉及电子装置,并且更具体地涉及存储装置以及操作存储装置的方法。
背景技术
存储装置指代用于永久或临时存储数据的电子部件。每个存储装置可以包括一个或多个存储介质来存储数据,并且可以进一步包括被配置为控制存储器装置来存储或取回数据的存储器控制器。可以基于存储介质的类型对存储装置进行分类。例如,硬盘驱动器(HDD)使用磁盘作为存储介质,并且固态驱动器(SSD)或存储器卡使用诸如易失性存储器装置和非易失性存储器装置的半导体存储器装置作为存储介质。
易失性存储器装置是仅在接通电源时可以保留其数据的存储器装置。因此,这样的易失性存储器装置在没有电源的情况下丢失其数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
另一方面,非易失性存储器装置是即使在没有电源的情况下也可以保留其数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪存。
发明内容
所公开技术的各种实施例涉及存储装置及其操作方法,其提供包括操作模式分析和故障分析的改进的能力。
本公开的实施例可以提供一种用于控制包括多个页的存储器装置的存储器控制器。存储器控制器可以包括:输入数据控制器,被配置为接收待存储在从多个页之中选择的页中的数据;序列信息生成器,被配置为考虑存储器装置的操作状态,来生成指示将待存储的数据存储在所选择的页中的编程操作被执行的序号的序列信息;以及写入操作控制器,被配置为控制存储器装置,使得待存储的数据被存储在所选择的页的主区域中,并且历史信息被存储在所选择的页的备用区域中,其中历史信息包括所选择的页的物理地址和对应于待存储的数据的序列信息。
本公开的实施例可以提供一种操作存储器控制器的方法,该存储器控制器用于控制包括多个页的存储器装置。该方法可以包括:接收待存储在从多个页之中选择的页中的数据;对由存储器装置执行的编程操作的总数进行计数;基于编程操作的总数,确定将待存储的数据存储在所选择的页中的编程操作被执行的序号;以及生成指示序号的序列信息,并且向存储器装置提供编程命令,以用于将待存储的数据存储在所选择的页的主区域中并且将历史信息存储在所选择的页的备用区域中,其中历史信息包括所选择的页的物理地址以及与待存储的数据相对应的序列信息。
本公开的实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,被配置为包括多个页并且执行将数据存储在从多个页之中选择的页中的编程操作;以及存储器控制器,被配置为从主机或存储器装置接收数据,并且生成指示考虑存储器装置的操作状态而执行编程操作的序号的序列信息,并且被配置为向存储器装置提供编程命令,以用于将数据存储在所选择的页的主区域中并且用于将历史信息存储在所选择的页的备用区域中,其中历史信息包括所选择的页的物理地址以及与数据相对应的序列信息。
附图说明
图1是图示基于所公开的技术的一个实施例的存储装置的示例的图。
图2是图示图1的存储器装置的配置的示例的图。
图3是图示基于所公开技术的一个实现的、图2的存储器单元阵列的示例的图。
图4是图示基于所公开技术的一个实现的、图3的存储器块BLK1至BLKz中的存储器块BLKa的示例的电路图。
图5是图示基于所公开技术的一个实现的、图3的存储器块BLK1至BLKz中的存储器块BLKb的示例的电路图。
图6是图示基于所公开技术的一个实现的存储器控制器的配置的示例的图。
图7是基于所公开技术的一个实现的、图2的物理页的概念图的示例。
图8是基于所公开技术的一个实现的、图2的物理页的概念图的示例。
图9是图示基于所公开技术的一个实现的、存储数据段和对应历史信息的操作的图的示例。
图10是图示基于所公开技术的一个实现的、后台操作的图的示例。
图11是图示基于所公开技术的一个实现的存储器控制器的操作的流程图的示例。
图12是图示基于所公开技术的一个实现的、图1的存储器控制器的图的示例。
图13是图示包括所应用的基于所公开技术的一个实现而提供的存储装置的存储器卡系统的框图的示例。
图14是图示包括基于所公开技术的一个实现而提供的存储装置的固态驱动器(SSD)系统的框图的示例。
图15是图示包括基于所公开技术的一个实现而提供的存储装置的用户系统的示例的框图。
具体实施方式
该专利文件中公开的技术可以在实施例中实现,以提供具有包括操作模式分析和故障分析在内的改进能力的存储装置。
在本说明书或申请中引入的本公开的实施例中的特定结构或功能描述仅用于描述本公开的实施例。描述不应被解释为限于说明书或申请中描述的实施例。
图1是图示根据本公开的一个实施例的存储装置的图。
参考图1,存储装置50可以包括存储器装置100和存储器控制器200。存储装置50可以用于根据来自主机300(诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)或车载信息娱乐系统)的请求来存储和取回数据。
根据作为主机300与存储装置50之间的通信接口的主机接口,存储装置50可以被制造为各种类型的存储装置中的任一个。存储装置50可以被实现为各种类型的存储装置中的任一个,例如,固态驱动器(SSD)、诸如MMC、嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)或微型MMC等的多媒体卡、诸如SD、mini-SD或micro-SD等的安全数字卡、通用存储总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储器卡国际协会(PCMCIA)卡类型存储装置、外围部件互连(PCI)卡类型的存储装置、PCI快速(PCI-E)卡类型的存储装置、紧凑型闪存(CF)卡、智能媒体卡和记忆棒。
可以以各种类型的封装形式中的任一个来制造存储装置50。例如,可以以各种类型的封装形式(诸如堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板载芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP))中的任一个来制造存储装置50。
存储器装置100可以提供其中存储待处理数据和/或待执行指令的存储空间。存储器装置100可以包括读取和写入存储器装置100所需的并且响应于来自存储器控制器200的请求而进行操作的逻辑。存储器装置100可以包括存储器单元阵列,存储器单元阵列包括被配置为在其中存储数据的多个存储器单元。
存储器单元中的每一个可以以各种方式实现来存储数据。在一些实现中,存储器单元可以存储单个位或多个位的信息。在一些实现中,存储器单元可以被实现为存储单个数据位的单级单元(SLC)、存储两个数据位的多级单元(MLC)、存储三个数据位的三级单元(TLC)或存储四个数据位的四级单元(QLC)。
存储器单元阵列可以包括多个存储器块。每个存储器块可以包括多个页,并且每个页对应于多个存储器单元。单个存储器块可以包括多个页。在所公开技术的实施例中,以页为单位执行读取和编程(写入)操作,并且以块为单位执行擦除操作。
在一个实施例中,存储器装置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闪存的情况下进行描述。
存储器控制器200可以基于通过向存储器控制器200提供命令/地址信号而来自用户/主机的请求来访问存储器装置100。在一些实现中,存储器装置100可以从存储器控制器200接收命令以及其中执行或实行命令的地址,并且可以访问存储器单元阵列中由地址选择的区域。因此,存储器装置100可以基于由用户/主机请求的命令来在由地址标识的区域中执行操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作或擦除操作。在编程操作期间,数据被写入存储器装置100的由地址标识的区域(例如,存储器单元区域)。在读取操作期间,数据从存储器装置100的由地址标识的区域被读取。在擦除操作期间,数据从存储器装置100的由地址标识的区域中被擦除。
存储器控制器200控制存储装置50的整体操作。
当向存储装置50供电时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪存装置时,存储器控制器200可以运行诸如闪存转换层(FTL)的固件,以用于控制主机300与存储器装置100之间的通信。在一个实现中,闪存转换层(FTL)可以位于存储器控制器200中来实现逻辑到物理的映射、垃圾收集、损耗均衡管理和坏块管理。例如,FTL可以提供主机接口层和闪存接口层之间的接口。
在一个实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换为物理块地址(PBA),物理块地址(PBA)指示在存储器装置100中的何处的存储器单元写入数据或读取数据形式。
存储器控制器200可以控制存储器装置100,使得基于从主机300接收的请求来执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、物理块地址和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和物理块地址。
在一个实施例中,存储器控制器200可以不管来自主机300的请求而自主地生成编程命令、地址和数据,并且可以将它们发送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据,以便执行后台操作(诸如用于耗损均衡的编程操作和用于垃圾收集的编程操作)。
在一个实施例中,存储器控制器200可以同时控制多于一个的存储器装置100。在这种情况下,存储器控制器200可以根据交错方案来控制存储器装置100以改进操作性能。交错方案可以通过在给定时间帧执行多于一个的个操作来改进系统性能。例如,交错方案可以通过将与存储器装置相关联的队列的一部分和与另一存储器装置相关联的另一队列的一部分交错来同时在两个或更多个存储器装置100上执行操作。
在一个实施例中,存储器控制器200可以包括输入数据控制器210、序列信息生成器220和写入操作控制器230。
输入数据控制器210可以从主机300或存储器装置100接收待存储在存储器装置100中的数据。所接收的数据可以存储在存储器装置100中包括的多个页之中的一个页中。在一个实施例中,输入数据控制器210可以从主机300接收待存储在存储器装置100中的数据以及数据的逻辑地址。
在一个实施例中,输入数据控制器210可以从存储器装置100接收待存储在存储器装置100中的数据。在这种情况下,可以通过在存储器装置100的另一区域(其不同于存储器装置100的待在其中存储数据的区域)上执行读取操作,来从存储器装置100获得所接收的数据。例如,当基于来自存储器控制器200的请求来执行后台操作时,可以从存储器装置100读取存储在存储器装置100的另一区域中的数据,并且从存储器装置100的另一区域读取的数据然后可以存储在存储器装置100的标识的区域中。
因此,输入数据控制器210可以从主机300或存储器装置100接收待存储在存储器装置100中的数据,并且将所接收的数据作为输入数据提供给写入操作控制器230。
序列信息生成器220可以生成包括序号(顺序)的序列信息,序号指示将输入数据存储在存储器装置100中的编程操作的序列顺序。序列信息生成器220可以考虑存储器装置100的操作状态来生成序列信息。例如,序列信息生成器220可以对要由存储器装置100执行的编程操作的总数进行计数。序列信息生成器220可以根据要由存储器装置100执行的编程操作的经计数的总数来确定序列信息。
在一个实施例中,序列信息生成器220可以生成包括序号的序列信息,序号指示用于将数据存储在对应页中的编程(写入)操作的序列顺序。例如,序号指示当在存储器装置100中包括的多个页之中的页中执行存储数据的编程(写入)操作时的序列顺序。
写入操作控制器230可以控制存储器装置100,使得存储器装置100将输入数据存储在存储器装置100中包括的一个或多个页中。写入操作控制器230可以控制存储器装置100以在多个页中的一个页的主区域中存储输入数据。如稍后将参考图7所解释,页被配置为包括主区域和备用区域。
写入操作控制器230可以控制存储器装置100,使得历史信息被存储在存储数据的页的备用区域中。历史信息可以包括:i)待在其中存储输入数据的存储器装置100的物理地址,以及ii)与输入数据相对应的序列信息。存储器装置100的物理地址可以指示待在其中存储输入数据的页的物理地址。
如上所述,存储器控制器200可以从存储器装置100接收输入数据。在一个实施例中,当从存储器装置100提供输入数据时,可以通过读取存储在另一页(其与待在其中存储数据的页不同)中的数据来获得输入数据。在这种情况下,历史信息可以包括从中读取输入数据的另一页的物理地址以及与从另一页读取的数据相对应的序列信息。由于序号指示在对应页中执行存储数据的编程(写入)操作的序列顺序,从另一页读取的数据的序列信息可以包括指示编程操作(其已被执行来将读取数据存储在另一页中)的序列顺序的序号。换言之,读取数据的序列信息可以包括指示何时执行了将读取数据存储在另一页中的编程操作的序号。在一些实现中,数据的序号可以指示在由存储器装置执行的编程操作之中的用于存储数据的编程(写入)操作的相对序列顺序。
写入操作控制器230可以生成编程操作执行信息,其指示存储输入数据的编程操作的已被执行。
主机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可以用于I/O功能、电源分配、地址解码等。例如,外围电路120可以驱动字线和位线来执行编程操作、读取操作或擦除操作。
地址解码器121通过行线RL耦合到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的一个实施例,字线可以包括普通字线和虚设字线。根据本公开的实施例,行线RL可以进一步包括管道选择线。
控制逻辑130控制外围电路120的操作。控制逻辑130通过基于地址ADDR生成行地址和列地址来控制地址解码器121的操作。
地址解码器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。控制逻辑130控制电压发生器122的操作。
在一个实施例中,电压发生器122可以通过调节外部电源电压来生成内部电源电压。由电压发生器122生成的内部电源电压用作针对存储器装置100的操作电压。
在一个实施例中,电压发生器122可以使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压发生器122可以生成存储器装置100所需的各种电压。例如,电压发生器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
电压发生器122可以包括用于接收内部电源电压的多个泵浦电容器。电压发生器122可以通过选择性地启用多个泵浦电容器来生成具有各种电压水平的多个操作电压Vop。
可以通过地址解码器121将所生成的操作电压Vop提供给存储器单元阵列110。
读取和写入电路123包括第一页缓冲器PB1至第m页缓冲器PBm。第一页缓冲器PB1至第m页缓冲器PBm通过第一位线BL1至第m位线BLm分别耦合到存储器单元阵列110。第一页缓冲器PB1至第m页缓冲器PBm可以在控制逻辑130的控制下进行操作。
第一页缓冲器PB1至第m页缓冲器PBm可以向数据输入/输出电路124发送数据DATA/从数据输入/输出电路124接收数据DATA。在编程操作期间,第一页缓冲器PB1至第m页缓冲器PBm通过数据输入/输出电路124和数据线DL来接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到所选择的字线时,第一页缓冲器PBl至第m页缓冲器PBm可以将通过数据输入/输出电路124接收的待存储的数据DATA通过位线BLl至BLm传送至所选择的存储器单元。基于所接收的数据DATA,对所选择的页中的存储器单元进行编程。与施加有编程许可电压(例如,接地电压)的位线耦合的存储器单元可以具有增加的阈值电压。可以维持与施加有编程禁止电压(例如,电源电压)的位线耦合的存储器单元的阈值电压。在编程验证操作期间,第一页缓冲器PB1至第m页缓冲器PBm可以通过位线BL1至BLm,从所选择的存储器单元中读取存储在所选择的存储器单元中的数据。
在读取操作期间,读取和写入电路123可以通过位线BL从所选择的页中的存储器单元读取数据DATA,并且可以将所读取的数据DATA存储在第一页缓冲器PBl至第m页缓冲器PBm中。
在擦除操作期间,读取和写入电路123可以允许位线BL浮置。在一个实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL耦合到第一页缓冲器PB1至第m页缓冲器PBm。数据输入/输出电路124响应于控制逻辑130的控制来被操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124将从读取和写入电路123中包括的第一页缓冲器PB1至第m页缓冲器PBm接收的数据DATA输出至外部控制器。
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的使能位VRYBIT信号来生成参考电流,并且可以通过将从读取和写入电路123接收的感测电压VPB与由参考电流生成的参考电压进行比较,将通过信号或故障信号输出至控制逻辑130。
控制逻辑130可以耦合到地址解码器121、电压发生器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的整体操作。控制逻辑130可以响应于从外部装置发送的命令CMD来进行操作。
控制电路130可以响应于命令CMD和地址ADDR,通过生成各种类型的信号来控制外围电路120。例如,响应于命令CMD和地址ADDR,控制逻辑130可以生成操作信号OPSIG、行地址RADD、读取和写入电路控制信号PBSIGNALS以及使能位VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压发生器122,将行地址RADD输出到地址解码器121,将读取和写入电路控制信号PBSIGNALS输出到读取和写入电路123,以及将使能位VRYBIT输出到感测电路125。附加地,控制逻辑130可以响应于从感测电路125输出的通过信号PASS或故障信号FAIL来确定验证操作是通过还是故障。
图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、第一存储器单元MC1至第n存储器单元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的源极选择晶体管可以共同地耦合到单个源极选择线。
每个单元串中的第一存储器单元MC1至第n存储器单元MCn耦合在源极选择晶体管SST和漏极选择晶体管DST之间。
第一存储器单元MC1至第n存储器单元MCn可以被划分为第一存储器单元MC1至第p存储器单元MCp以及第p+1存储器单元MCp+1至第n存储器单元MCn。第一存储器单元MC1至第p存储器单元MCp在与正(+)Z方向相反的方向上顺序布置,并且串联连接在源极选择晶体管SST和管道晶体管PT之间。第p+1存储器单元MCp+1至第n存储器单元MCn在+Z方向上顺序布置,并且串联连接在管道晶体管PT和漏极选择晶体管DST之间。第一存储器单元MC1至第p存储器单元MCp和第p+1存储器单元MCp+1至第n存储器单元MCn通过管道晶体管PT彼此耦合。每个单元串的第一存储器单元MC1至第n存储器单元MCn的栅极分别耦合至第一字线WL1至第n字线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中的任一个,可以从所选择的单元串中选择单个页。
在一个实施例中,代替第一位线BLl至第m位线BLm,可以提供偶数编号位线和奇数编号位线。此外,在行方向上布置的单元串CS11至CS1m或CS21至CS2m中的偶数编号单元串可以耦合至偶数编号位线。在行方向上布置的单元串CS11至CS1m或CS21至CS2m中的奇数编号单元串可以耦合至奇数编号位线。
在一个实施例中,第一存储器单元MC1至第n存储器单元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’中的每一个包括堆叠在存储器块BLKb下方的衬底(未示出)上的至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST连接在公共源极线CSL与存储器单元MC1至MCn之间。布置在同一行中的单元串的源极选择晶体管耦合到相同的源极选择线。布置在第一行中的单元串CS11’至CS1m’的源极选择晶体管耦合到第一源极选择线SSL1。布置在第二行中的单元串CS21’至CS2m’的源极选择晶体管耦合到第二源极选择线SSL2。在一个实施例中,单元串CS11’至CS1m’和CS21’至CS2m’的源极选择晶体管可以共同耦合到单个源极选择线。
每个单元串中的第一存储器单元MC1至第n存储器单元MCn串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一存储器单元MC1至第n存储器单元MCn的栅极分别耦合至第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST连接在对应的位线与存储器单元MC1至MCn之间。在行方向上布置的单元串的漏极选择晶体管耦合到在行方向上延伸的漏极选择线。第一行中的单元串CS11’至CS1m’的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行中的单元串CS21’至CS2m’的漏极选择晶体管耦合到第二漏极选择线DSL2。
结果,除了从每个单元串中排除管道晶体管PT之外,图5的存储器块BLKb具有与图4的存储器块BLKa类似的等效电路。
在一个实施例中,代替第一位线BLl至第m位线BLm,可以提供偶数编号位线和奇数编号位线。此外,在行方向上布置的单元串CS11’至CS1m’或CS21’至CS2m’之中的偶数编号单元串可以耦合至偶数编号位线。在行方向上布置的单元串CS11’至CS1m’或CS21’至CS2m’中的奇数编号单元串可以耦合至奇数编号位线。
在一个实施例中,第一存储器单元MC1至第n存储器单元MCn中的一个或多个可以用作虚设存储器单元。例如,提供一个或多个虚设存储器单元来减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。备选地,提供一个或多个虚设存储器单元来减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。随着提供更多的虚设存储器单元,存储器块BLKb的操作的可靠性提高,但是存储器块BLKb的尺寸增加。随着提供的存储器单元减少,存储器块BLKb的尺寸减小,但是存储器块BLKb的操作的可靠性可能劣化。
为了有效地控制一个或多个虚设存储器单元,虚设存储器单元中的每一个可以具有期望的阈值电压。在执行存储器块BLKb的擦除操作之前或之后,可以对虚设存储器单元中的全部或一些执行编程操作。当在已执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与相应虚设存储器单元耦合的虚设字线的电压,并且因此虚设存储器单元可以具有期望的阈值电压。
图6是图示基于所公开的技术的一个实现的存储器控制器的配置的示例的图。
参考图6,存储器控制器200可以包括输入数据控制器210、序列信息生成器220、写入操作控制器230和映射表240。
在一个实施例中,如以上参考图1所述,输入数据控制器210可以从主机接收待存储在存储器装置100中的数据以及待在其中存储数据的逻辑数据存储地址。例如,输入数据控制器210可以从主机接收待存储在从存储器装置100中包括的多个页中选择的页中的数据。因此,从主机接收的数据可以被存储在所选择的页中。
在一个实施例中,输入数据控制器210可以从存储器装置100接收待存储在存储器装置100中的数据。在这种情况下,由输入数据控制器210从存储器装置100接收的数据可以存储在存储器装置100中包括的多个页之中选择的页中。为了将待存储的数据提供给输入数据控制器210,存储器装置100可以首先通过在存储器装置100的另一页(其不同于存储器装置100的所选择的页)上执行读取操作来获得这样的数据。因此,存储器装置100可以通过从存储器装置100的另一页读取数据来获得待存储的数据,并且然后将所读取的数据提供给输入数据控制器210,作为待存储在存储器装置100的所选择的页中的数据。
输入数据控制器210可以将待存储在存储器装置100中的数据作为输入数据提供给写入操作控制器230。输入数据可能已由输入数据控制器210从主机或存储器装置100接收。在一个实施例中,输入数据可以存储在存储器装置100中包括的多个页之中选择的页中。
输入数据控制器210可以进一步向写入操作控制器230提供待在其中存储输入数据的存储器装置100的物理地址。在一些实现中,可以基于映射表240来获得存储器装置100的物理地址。在一个实施例中,物理地址可以是其中将存储输入数据的所选择页的物理地址。
序列信息生成器220可以包括计数电路221。计数电路221可以基于从写入操作控制器230提供的编程操作执行信息来对由存储器装置100已执行的编程操作的总数进行计数。
在一个实施例中,序列信息生成器220可以确定执行将输入数据存储在所选择的页中的编程操作的序号(顺序)。在一些实现中,序列信息生成器200可以基于存储器装置100的操作状态(例如,所计数的编程操作的总数)来确定序号。在这种情况下,序列信息生成器220可以生成序列信息来包括所确定的序号。
写入操作控制器230可以控制存储器装置100,使得输入数据存储在存储器装置100中包括的一个或多个页中。例如,写入操作控制器230可以向存储器装置100提供编程命令,用于将输入数据存储在存储器装置100中包括的多个页之中选择的页的主区域中,并将历史信息存储在所选择的页的备用区域中。
在一些实现中,历史信息可以包括输入数据的逻辑地址。在一些实现中,历史信息可以包括在其中存储输入数据的所选择页的物理地址以及与输入数据相对应的序列信息。
写入操作控制器230可以生成编程操作执行信息,编程操作执行信息指示存储输入数据的编程操作已经由存储器装置100执行。
映射表240可以包括与输入数据的逻辑地址相对应的物理地址。物理地址可以指示输入数据将被存储在存储器装置100中的何处。物理地址可以指示将存储输入数据的所选择页的物理地址。每个物理地址可以包括:指示包括所选择的页的存储器块的块索引;以及指示存储器块中包括的多个页之中所选择的页的页索引。
在一个实施例中,当输入数据被划分并存储在多个页中时,输入数据控制器210可以将输入数据划分为存储在相应页上的一个或多个输入数据段。序列信息生成器220可以生成与任何一个或多个输入数据段相对应的段序列信息。
段序列信息可以指示执行在多个页之中所选择的页中存储任何数据段的编程操作的序号。序列信息生成器220可以基于由存储器装置100执行的编程操作的总数来确定段序列信息。
写入操作控制器230可以向存储器装置100提供指示编程操作的编程命令,在编程操作中,任何数据段被存储在所选择页的主区域中,并且历史信息被存储在所选择页的备用区域中。历史信息可以包括所选择页的物理地址以及与任一数据段相对应的段序列信息。
在一个实施例中,单个页可以包括多个子页。多个子页中的每一个可以包括主区域和备用区域。对数据进行读取或编程的操作可以在子页的基础上执行。
输入数据控制器210可以将输入数据划分为一个或多个输入数据段,每个输入数据段以子页为基础进行存储。序列信息生成器220可以生成与一个或多个输入数据段中的任一个相对应的段序列信息。
段序列信息可以指示执行在所选择的页中包括的多个子页之中选择的子页中存储任一数据段的编程操作的序号。可以基于由存储器装置100执行的编程操作的总数来确定段序列信息。
写入操作控制器230可以控制存储器装置100,使得任一数据段被存储在所选择的子页的主区域中。写入操作控制器230可以控制存储器装置100,使得包括所选择的子页的物理地址和段序列信息两者的历史信息被存储在所选择的子页的备用区域中。
图7是图2的物理页的概念图的一个示例。
参考图7,图2中描述的耦合到单个字线的多个存储器单元将数据存储在单个物理页中。单个物理页可以包括主区域和备用区域。输入数据存储在物理页的主区域中,并且与输入数据相关的信息存储在物理页的备用区域中。在一个实施例中,可以限制对备用区域的访问,正常的读取命令可能不访问备用区域,并且仅预设命令可以被允许来访问备用区域。预设命令可以包括用于测试存储器装置的命令以及用于请求用于分析存储器装置的数据的命令。
在一个实施例中,输入数据可以存储在物理页的主区域中。输入数据的逻辑地址可以存储在物理页的备用区域中。如上面参考图1所述,输入数据的逻辑地址可以从主机提供。
上面参考图6描述的历史信息可以存储在物理页的备用区域中。历史信息可以包括待在其中存储输入数据的物理页的物理地址。历史信息可以包括输入数据的序列信息。序列信息可以包括序号,序号指示执行在物理页中存储输入数据的编程操作的序列顺序。序列顺序可以表示在由存储器装置100执行的全部编程操作之中,将输入数据存储在所选择的页中的编程操作的相对序列顺序。因此,可以基于由存储器装置100执行的编程操作的总数来确定序列信息。
图8是图2的物理页的概念图的一个示例。
参考图8,与图7的物理页相比,单个物理页可以包括多个子页。多个子页中的每一个可以包括主区域和备用区域。在一些实现中,对数据进行读取或编程的操作可以在子页的基础上执行。
在一个实施例中,物理页可以包括子页1和子页2。单个物理页中包括的子页的数目不限于两个,且还可以是其他实现。
类似于参考图7进行的描述,输入数据可以存储在一个子页的主区域中。与输入数据相对应的历史信息可以存储在子页的备用区域中。历史信息可以包括待在其中存储输入数据的子页的物理地址以及输入数据的序列信息。
在一个实施例中,子页的物理地址可以包括:在存储器块中包括的多个页当中,指示包括所选择的页的存储器块的块索引以及指示所选择的页的页索引。所选择的页可以对应于包括待在其中存储输入数据的子页的物理页。在一个实施例中,子页的物理地址可以包括块索引和页索引。附加地,子页的物理地址可以包括:在所选择的页中包括的多个子页当中,指示存储有用户数据的子页的子页索引。
图9是图示基于所公开的技术的一个实现来存储数据段和对应的历史信息的操作的图的示例。
参考图9,存储器装置可以包括第一平面Plane1和第二平面Plane2。第一平面Plane1可以包括存储器块BLK1_1和BLK2_1。第二平面Plane2可以包括存储器块BLK1_2和BLK2_2。在图9中,存储器块中的每一个可以包括第一页Page1和第二页Page2。
一个存储器装置中包括的平面数目、一个平面中包括的存储器块数目以及一个存储器块中包括的页数目不限于图9所示的实现并且可以是其他实现。
在一个实施例中,存储器装置可以执行其中可以在多个平面中同时执行操作的多平面操作。例如,根据多平面操作,可以将数据同时存储在不同平面中包括的两个或更多个存储器块中。在另一实现中,根据多平面操作,可以从不同平面中包括的两个或更多个存储器块同时读取数据。因此,可以执行多平面操作,以用于在不同平面中同时存储数据或从不同平面同时读取数据。
上面参考图1所描述的存储器控制器200可以基于从主机300接收的写入请求来控制存储器装置100以在存储器装置100中写入数据。在这种情况下,可以从主机300提供所写入的数据。
存储器控制器200可以从主机300接收待写入的数据的逻辑地址。存储器控制器200可以控制存储器装置100,使得写入数据被存储在与写入数据的逻辑地址相对应的物理地址处。与写入数据的逻辑地址相对应的物理地址可以指示存储器装置100的待在其中存储写入数据的物理地址。
在图9中,每个页可以具有如图7所示的配置。因此,每个页中的非阴影部分可以指示页的主区域,并且阴影部分可以指示页的备用区域。
存储器装置接收第一写入请求Write_1,第一写入请求Write_1指示存储包括数据段DATA SEGMENT_A1和DATA SEGMENT_A2的第一数据DATA_A。响应于第一写入请求Write_1,可以在存储器装置中执行用于存储数据段DATA SEGMENT_A1和DATA SEGMENT_A2的编程操作。在这种情况下,数据段DATA SEGMENT_A1和DATA SEGMENT_A2可以在页基础上存储。
由于存储器装置运行多平面操作,可以在Plane1和Plane2中同时执行存储数据的编程操作。因此,响应于第一写入请求Write_1来存储两个数据段DATA SEGMENT_A1和DATASEGMENT_A2,用于存储DATA SEGMENT_A1和DATA SEGMENT_A2的编程操作可以分别在Plane1的存储器块BLK1_1的第一页和Plane2的第一存储器块BLK1_2的第一页中执行。基于存储器装置的多平面操作,将数据段DATA SEGMENT_A1存储在存储器块BLK1_1的第一页Page1中的编程操作和将数据段DATA SEGMENT_A2存储在存储器块BLK1_2的第一页Page1中的编程操作可以同时执行。
数据段DATA SEGMENT_A1可以存储在存储器块BLK1_1的第一页Page1的主区域中。与数据段DATA SEGMENT_A1相对应的历史信息可以存储在存储器块BLK1_1的第一页Page1的备用区域中。
在一些实现中,历史信息可以包括第一数据DATA_A的逻辑地址LBA1。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_A1的页的物理地址BLK1_1+Page1。对应于数据段DATA SEGMENT_A1的序列信息可以是1,因为存储器装置响应于第一写入请求Write_1而首先执行该编程操作。
数据段DATA SEGMENT_A2可以存储在存储器块BLK1_2的第一页Page1的主区域中。与数据段DATA SEGMENT_A2相对应的历史信息可以存储在存储器块BLK1_2的第一页Page1的备用区域中。
在一些实现中,历史信息可以包括第一数据DATA_A的逻辑地址LBA1。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_A2的页的物理地址BLK1_2+Page1。对应于数据段DATA SEGMENT_A2的序列信息可以是1,因为响应于第一写入请求Write1,该编程操作与用于存储数据段DATA SEGMENT_A1的编程操作同时执行。
然后,存储器装置接收第二写入请求Write_2,第二写入请求Write_2指示存储包括数据段DATA SEGMENT_B1、DATA SEGMENT_B2、DATA SEGMENT_B3的第二数据DATA_B。响应于第二写入请求Write_2,可以在存储器装置中执行用于存储数据段DATA SEGMENT_B1、DATA SEGMENT_B2、DATA SEGMENT_B3的编程操作。在这种情况下,数据段DATA SEGMENT_B1、DATA SEGMENT_B2、DATA SEGMENT_B3可以以页为基础存储。
在第二写入请求Write_2指示存储器装置写入三个数据段时,图9的存储器装置利用两个平面运行多平面操作。因此,存储器装置可以首先执行用于在Plane1和Plane2中分别存储三个数据段中的两个数据段(即,DATA SEGMENT_B1、DATA SEGMENT_B2)的编程操作,然后执行用于在Plane1中存储剩余数据段(即,DATA SEGMENT_B3)的编程操作。
基于存储器装置的多平面操作,将数据段DATA SEGMENT_B1存储在存储器块BLK1_1的第二页Page2中的编程操作以及将数据段DATA SEGMENT_B2存储在存储器块BLK1_2的第二页Page2中的编程操作可以同时执行。由于数据段DATA SEGMENT_A1和DATA SEGMENT_A2已存储在存储器块BLK1_1和BLK1_2的第一页Page1中,DATA SEGMENT_B1和DATA SEGMENT_B2可以存储在存储器块BLK1_1和BLK 1_2的第二页Page2中。
数据段DATA SEGMENT_B1可以存储在存储器块BLK1_1的第二页Page2的主区域中。对应于数据段DATA SEGMENT_B1的历史信息可以存储在存储器块BLK1_1的第二页Page2的备用区域中。
在一些实现中,历史信息可以包括第二数据DATA_B的逻辑地址LBA2。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_B1的页的物理地址BLK1_1+Page2。与数据段DATA SEGMENT_B1相对应的序列信息可以是2,因为在用于存储数据DATA_A的编程操作之后,由存储器装置响应于第二写入请求Write_2而在第二位执行存储数据段DATASEGMENT_B1的编程操作。
数据段DATA SEGMENT_B2可以存储在存储器块BLK1_2的第二页Page2的主区域中。与数据段DATA SEGMENT_B2相对应的历史信息可以存储在存储器块BLK1_2的第二页Page2的备用区域中。
在一些实现中,历史信息可以包括第二数据DATA_B的逻辑地址LBA2。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_B2的页的物理地址BLK1_2+Page2。与数据段DATA SEGMENT_B2相对应的序列信息可以与数据段DATA SEGMENT_B1的序列信息相同。
数据段DATA SEGMENT_B3可以存储在存储器块BLK2_1的第一页Page1的主区域中。对应于数据段DATA SEGMENT_B3的历史信息可以存储在存储器块BLK2_1的第一页Page1的备用区域中。
在一些实现中,历史信息可以包括第二数据DATA_B的逻辑地址LBA2。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_B3的页的物理地址BLK2_1+Page1。与数据段DATA SEGMENT_B3相对应的序列信息可以是3,因为在存储数据段DATA SEGMENT_A1、DATA SEGMENT_A2、DATA SEGMENT_B1、DATA SEGMENT_B2的编程操作之后,该编程操作由存储器装置在第三位执行。
然后,存储器装置接收第三写入请求Write_3,第三写入请求Write_3指示存储包括数据段DATA SEGMENT_C1、DATA SEGMENT_C2、DATA SEGMENT_C3的第三数据DATA_C。响应于第三写入请求Write_3,可以将第三数据DATA_C存储在存储器装置中。第三数据DATA_C可以包括以页为基础存储的数据段DATA SEGMENT_C1至DATA SEGMENT_C3。
在Plane1的存储器块BLK2_1的第一页Page1中执行用于存储数据段DATASEGMENT_B3的先前操作。因此,数据段DATA SEGMENT_C1可以存储在Plane2的存储器块BLK2_2的第一页Page1的主区域中。与数据段DATA SEGMENT_C1相对应的历史信息可以存储在存储器块BLK2_2的第一页Page1的备用区域中。
在一些实现中,历史信息可以包括第三数据DATA_C的逻辑地址LBA3。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_C1的页的物理地址BLK2_2+Page1。与数据段DATA SEGMENT_C1相对应的序列信息可以是4,因为在用于存储数据段DATASEGMENT_A1、DATA SEGMENT_A2、DATA SEGMENT_B1、DATA SEGMENT_B3的编程操作之后,用于存储数据段DATA SEGMENT_C1的编程操作由存储器装置在第四位执行。
基于存储器装置的多平面操作,将数据段DATA SEGMENT_C2存储在存储器块BLK2_1的第二页Page2中的编程操作以及将数据段DATA SEGMENT_C3存储在存储器块BLK2_2的第二页Page2中的编程操作可以同时执行。
数据段DATA SEGMENT_C2可以存储在存储器块BLK2_1的第二页Page2的主区域中。与数据段DATA SEGMENT_C2相对应的历史信息可以存储在存储器块BLK2_1的第二页Page2的备用区域中。
在一些实现中,历史信息可以包括第三数据DATA_C的逻辑地址LBA3。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_C2的页的物理地址BLK2_1+Page2。与数据段DATA SEGMENT_C2相对应的序列信息可以是5,因为用于存储DATA SEGMENT_C2的编程操作由存储器装置在第五位执行。
数据段DATA SEGMENT_C3可以存储在存储器块BLK2_2的第二页Page2的主区域中。与数据段DATA SEGMENT_C3相对应的历史信息可以存储在存储器块BLK2_2的第二页Page2的备用区域中。
在一些实现中,历史信息可以包括第三数据DATA_C的逻辑地址LBA3。在一些实现中,历史信息可以包括其中存储数据段DATA SEGMENT_C3的页的物理地址BLK2_2+Page2。与数据段DATA SEGMENT_C3相对应的序列信息可以是5,因为用于存储DATA SEGMENT_C3的该操作与用于存储DATA SEGMENT_C2的操作同时执行。
图10是图示基于所公开的技术的一个实现的后台操作的图的示例。
如图10所示的存储器装置包括:第一平面Plane1和第二平面Plane2,每个平面包括三个存储器块BLK1_1至BLK3_1和BLK1_2至BLK3_2。为了简化说明,在图10中仅示出了存储器块BLK1_1、BLK1_2、BLK3_1的图,而存储器装置具有存储器块BLK1_1至BLK3_1和BLK1_2至BLK3_2。附加地,图10的存储器块BLK1_1和BLK1_2具有与图9的存储器块BLK1_1和BLK1_2相同的页结构,并且图10的存储器块BLK1_1和BLK1_2的每个页包括与图9中的存储器块BLK1_1和BLK1_2的每个页相同的数据和相同的历史信息。
图10图示了使得已存储在存储器装置的第一位置中的数据将要存储在存储器装置的第二位置中的操作。作为这样的操作的特定示例,尽管可以执行其他操作,但是可以讨论诸如垃圾收集的后台操作。当执行后台操作时,存储在存储器装置特定区域中的数据可以被移动并存储在存储器装置的附加区域中。如以上参考图1所描述,可以独立于从主机接收的请求而基于存储器控制器的控制来执行后台操作。
在图10中,基于存储器控制器的控制来在存储器装置中执行第一垃圾收集操作GC_1。如图10所示,第一垃圾收集操作GC_1使得包括DATA SEGMENT_A1和DATA SEGMENT_A2的数据DATA_A被附加地存储在存储器块BLK3_1中。首先,执行用于附加地存储DATASEGMENT_A1的操作。在执行第一垃圾收集操作GC1之前,DATA SEGMENT_A1和DATA SEGMENT_A2分别存储在存储器块BLK1_1的Page1和存储器块BLK1_2的Page1中。根据第一垃圾收集操作GC1,可以将存储在存储器块BLK1_1的第一页Page1的主区域中的数据段DATA SEGMENT_A1附加地存储在存储器块BLK3_1的第一页Page1的主区域中。
对于存储在存储器块BLK1_1的Page1的主区域中的数据SEGMENT_A1,历史信息BLK1_1+Page1,Seq1存储在存储器块BLK1_1的Page1的备用区域中。对于存储在存储器块BLK3_1的Page1的主区域中的DATA SEGMENT_A1,历史信息BLK3_1+Page1,Seq6可以存储在存储器块BLK3_1的第一页Page1的备用区域中。
在将DATA SEGMENT_A1存储在存储器块BLK3_1的Page1中之后,执行用于附加地存储DATA SEGMENT_A2的操作。根据第一垃圾收集操作GC1,可以将存储在存储器块BLK1_2的第一页Page1的主区域中的数据段DATA SEGMENT_A2附加地存储在存储器块BLK3_1的第二页Page2的主区域中。
对于存储在存储器块BLK1_2的Page1的主区域中的DATA SEGMENT_A2,历史信息BLK1_2+Page1,Seq1存储在存储器块BLK1_2的Page1的备用区域中。对于存储在存储器块BLK3_1的Page2的主区域中的DATA SEGMENT_A2,历史信息BLK3_1+Page2,Seq7可以存储在存储器块BLK3_1的第二页Page2的备用区域中。
在一个实施例中,当存储器块被擦除时,存储器块中包括的页的备用区域中存储的历史信息可以被删除。
在一个实施例中,当读取存储有数据的页的备用区域时,可以提供与对应数据的逻辑地址相对应的历史信息。如果数据已被存储在与当前页不同的页中,则历史信息可以包括包含当前页以及先前存储有对应数据的先前页的页的物理地址。附加地,历史信息可以进一步包括序列信息,该序列信息包括指示在先前页和当前页中存储数据的操作的序列顺序的序号。数据的历史信息可以提供有用的信息,以分析存储器装置的故障或编程操作的模式。在一些实现中,数据的历史信息可以被用来测试存储器装置的性能。
图11是图示根据一个实施例的存储器控制器的操作的流程图。
参考图11,在步骤S1101处,存储器控制器可以接收待存储在存储器装置中的数据。在一些实现中,待存储的数据包括从主机接收的数据或通过读取存储在存储器装置中的数据而获得的从存储器装置接收的数据。在一些实现中,存储器控制器可以将待存储的数据与待在其中存储的存储器的对应页的地址信息一起提供给存储器装置。
在步骤S1103处,存储器控制器可以生成包括序号的序列信息,序号指示将数据存储在待存储数据的页中的编程操作的序列顺序。序列顺序指示在待由存储器装置执行的所有编程操作之中,执行用于存储所接收的数据的编程操作时的相对序列顺序。因此,在一些实现中,可以基于由存储器装置执行的编程操作的总数来确定序列信息。
在步骤S1105处,存储器控制器可以向存储器装置提供编程命令,以用于在页的主区域中存储数据并且用于在所选择的页的备用区域中存储包括页的物理地址和序列信息的历史信息。
在步骤S1107处,存储器控制器可以确定是否发生了用于使得存储在存储器装置的特定区域中的数据移动到存储器装置的另一区域的针对数据的附加操作。当确定数据的移动已由附加操作的发生引起时,过程可以返回到步骤S1101,否则过程终止。使得数据移动的操作可以包括后台操作,例如垃圾收集操作。
图12是图示图1的存储器控制器的实施例的图。
参考图12,存储器控制器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可以使用去随机化种子来对从存储器装置接收的数据进行去随机化。去随机化的数据可以输出到主机。
在一个实施例中,处理器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。
图13是图示包括基于所公开的技术的一个实施例实现的存储装置的存储器卡系统的框图。
参考图13,存储器卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100耦合到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取、写入、擦除和后台操作。存储器控制器2100可以在存储器装置2200和主机之间提供接口。存储器控制器2100可以运行用于控制存储器装置2200的固件。可以以与以上参考图1描述的存储器控制器200相同的方式来实现存储器控制器2100。
在一个实施例中,存储器控制器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-MRAM))中的任一个。
存储器控制器2100和存储器装置2200可以集成到单个半导体装置中来构成存储器卡。例如,存储器控制器2100和存储器装置2200可以集成到单个半导体装置中来构成诸如PC卡(个人计算机存储器卡国际协会:PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro或eMMC)、SD卡(SD、miniSD、microSD或SDHC)或通用闪存(UFS)之类的存储器卡。
图14是图示包括基于所公开的技术的实施例实现的存储装置的固态驱动器(SSD)系统的框图。
参考图14,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号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。可以从主机3100向辅助电源3230提供功率PWR并对其充电。当来自主机3100的功率供应不能平稳地执行时,辅助电源3230可以供应SSD 3200的功率。在一个实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以设置在主板中并且可以向SSD 3200提供辅助功率。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪存3221至322n接收的数据,或者可以临时存储闪存3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图15是图示包括基于所公开的技术的一个实施例实现的存储装置的用户系统的框图。
参考图15,用户系统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、LPDDR2 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 (28)
1.一种用于控制包括多个页的存储器装置的存储器控制器,所述存储器控制器包括:
输入数据控制器,被配置为接收待存储在从所述多个页之中选择的第一页中的数据;
序列信息生成器,被配置为基于在将所述数据存储在所述第一页中的编程操作之前执行的编程操作的序列顺序,来生成指示所述编程操作的序列顺序的序列信息;以及
写入操作控制器,被配置为控制所述存储器装置以将所述数据存储在所述第一页的第一区域中并且将历史信息存储在所述第一页的第二区域中,
其中所述历史信息包括所述第一页的物理地址以及与所述数据相对应的所述序列信息,以及
其中所述写入操作控制器还被配置为:响应于使存储在所述第一页中的数据被移动到第二页的操作,来控制所述存储器装置存储附加历史信息,所述附加历史信息包括所述第二页的物理地址以及与所述第二页相对应的序列信息。
2.根据权利要求1所述的存储器控制器,其中所述第一区域和所述第二区域分别对应于所述第一页的主区域和备用区域。
3.根据权利要求1所述的存储器控制器,其中所述输入数据控制器被配置为从主机装置接收所述数据。
4.根据权利要求3所述的存储器控制器,其中所述输入数据控制器被配置为从所述主机装置接收所述数据的逻辑地址。
5.根据权利要求4所述的存储器控制器,其中所述历史信息包括所述数据的所述逻辑地址。
6.根据权利要求1所述的存储器控制器,其中所述输入数据控制器被配置为从所述存储器装置接收所述数据。
7.根据权利要求6所述的存储器控制器,其中从所述存储器装置接收的所述数据对应于存储在不同于所述第一页的所述第二页中的数据。
8.根据权利要求7所述的存储器控制器,其中所述历史信息包括所述第二页的所述物理地址以及指示将所述数据存储在所述第二页中的编程操作的序列顺序的所述序列信息。
9.根据权利要求4所述的存储器控制器,进一步包括:
映射表,被配置为存储所述数据的所述逻辑地址与所述第一页的所述物理地址之间的映射信息。
10.根据权利要求9所述的存储器控制器,其中所述输入数据控制器被配置为参考所述映射表,以将与所述逻辑地址相对应的所述第一页的所述物理地址提供给所述写入操作控制器。
11.根据权利要求1所述的存储器控制器,其中所述序列信息生成器被配置为基于由所述存储器装置执行的编程操作的总数来生成所述序列信息。
12.根据权利要求11所述的存储器控制器,其中所述序列信息生成器包括计数电路,所述计数电路被配置为对所述编程操作的所述总数进行计数。
13.根据权利要求12所述的存储器控制器,其中所述写入操作控制器被配置为生成编程操作执行信息,所述编程操作执行信息指示将数据存储在所述第一页中的操作已被执行。
14.根据权利要求13所述的存储器控制器,其中所述计数电路被配置为基于所述编程操作执行信息来对所述编程操作的所述总数进行计数。
15.根据权利要求1所述的存储器控制器,其中所述第一页的所述第二区域响应于预设命令而被访问。
16.根据权利要求1所述的存储器控制器,其中所述输入数据控制器被配置为将所述数据划分为存储在相应页上的一个或多个数据段。
17.根据权利要求16所述的存储器控制器,其中所述序列信息生成器被配置为针对数据段生成段序列信息,所述段序列信息指示将所述数据段存储在所选择的页中的操作的序列顺序。
18.根据权利要求17所述的存储器控制器,其中所述写入操作控制器被配置为控制所述存储器装置,以将所述数据段存储在所选择的页的所述第一区域中,并且将所选择的页的所述物理地址以及与所述数据段相对应的所述段序列信息存储在所选择的页的所述第二区域中。
19.一种操作用于控制包括多个页的存储器装置的存储器控制器的方法,所述方法包括:
接收待存储在从所述多个页之中选择的第一页中的数据;
基于在将所述数据存储在所述第一页中的编程操作之前在所述存储器装置中执行的编程操作的序列顺序,来生成指示所述编程操作的序列顺序的序列信息;
生成包括所述第一页的物理地址和所述序列信息的历史信息;
向所述存储器装置提供编程命令,以用于将所述数据存储在所述第一页的第一区域中并且将所述历史信息存储在所述第一页的第二区域中;以及
响应于使存储在所述第一页中的数据被移动到第二页的操作,控制所述存储器装置存储附加历史信息,所述附加历史信息包括所述第二页的物理地址以及与所述第二页相对应的序列信息。
20.根据权利要求19所述的方法,其中所述第一区域和所述第二区域分别对应于所述第一页的主区域和备用区域。
21.根据权利要求19所述的方法,其中存储器控制器被配置为从主机装置或从所述存储器装置接收所述数据。
22.根据权利要求19所述的方法,进一步包括:
向所述存储器装置提供读取命令,以用于读取在与所述第一页不同的所述第二页中存储的所述数据,
其中与所述数据相对应的所述历史信息包括所述第二页的所述物理地址以及指示将所述数据存储在所述第二页中的编程操作的序列顺序的所述序列信息。
23.一种存储装置,包括:
存储器装置,包括包含第一区域和第二区域的多个页,并且执行将数据存储在从所述多个页之中选择的第一页中的编程操作;以及
存储器控制器,被配置为:基于在将所述数据存储在所述第一页中的编程操作之前执行的编程操作的序列顺序,来生成指示所述编程操作的序列顺序的序列信息;以及控制所述存储器装置以将所述数据存储在所述第一页的第一区域中并且将历史信息存储在所述第一页的第二区域中,所述历史信息包括所述第一页的物理地址和所述序列信息,
其中所述存储器控制器还被配置为:响应于使存储在所述第一页中的数据被移动到第二页的操作,来控制所述存储器装置存储附加历史信息,所述附加历史信息包括所述第二页的物理地址以及与所述第二页相对应的序列信息。
24.根据权利要求23所述的存储装置,其中所述第一区域和所述第二区域分别对应于所述第一页的主区域和备用区域。
25.根据权利要求23所述的存储装置,其中所述存储器控制器被配置为基于先前已在所述存储器装置中执行的编程操作的总数来生成所述序列信息。
26.根据权利要求23所述的存储装置,其中:
所述存储器控制器被配置为从所述存储器装置接收所述数据,以及
通过读取存储在不同于所述第一页的所述第二页中的数据来获得所述数据。
27.根据权利要求26所述的存储装置,其中所述历史信息包括所述第二页的所述物理地址以及指示将所述数据存储在所述第二页中的编程操作的序列顺序的所述序列信息。
28.根据权利要求23所述的存储装置,其中:
所述存储器控制器被配置为响应于从主机接收的预设命令来访问所述第一页的所述第二区域,并且
所述预设命令包括用于测试所述存储器装置的命令和用于请求用于分析所述存储器装置的数据的命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0006417 | 2019-01-17 | ||
KR1020190006417A KR20200089547A (ko) | 2019-01-17 | 2019-01-17 | 저장 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111445939A CN111445939A (zh) | 2020-07-24 |
CN111445939B true CN111445939B (zh) | 2023-07-25 |
Family
ID=71610254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910982396.7A Active CN111445939B (zh) | 2019-01-17 | 2019-10-16 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11194732B2 (zh) |
KR (1) | KR20200089547A (zh) |
CN (1) | CN111445939B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6854407B2 (ja) * | 2017-08-08 | 2021-04-07 | パナソニックIpマネジメント株式会社 | カード装置、ホスト装置および通信方法 |
KR20230000731A (ko) * | 2021-06-25 | 2023-01-03 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
CN115129621B (zh) * | 2022-09-01 | 2022-12-02 | 珠海星云智联科技有限公司 | 一种内存管理方法、设备、介质及内存管理模块 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885538A (zh) * | 2016-04-27 | 2018-11-23 | 净睿存储股份有限公司 | 在包括多个存储设备的存储阵列中迁移数据 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4967680B2 (ja) * | 2007-01-23 | 2012-07-04 | ソニー株式会社 | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 |
KR100882740B1 (ko) | 2007-02-22 | 2009-02-09 | 삼성전자주식회사 | 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치 |
US8438325B2 (en) * | 2008-10-09 | 2013-05-07 | Cadence Design Systems, Inc. | Method and apparatus for improving small write performance in a non-volatile memory |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8495338B2 (en) | 2010-12-03 | 2013-07-23 | Micron Technology, Inc. | Transaction log recovery |
KR20120137867A (ko) * | 2011-06-13 | 2012-12-24 | 삼성전자주식회사 | 상변화 물질을 포함하는 비휘발성 메모리 장치 및 이의 제조 방법 |
US9164676B2 (en) * | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
KR102053953B1 (ko) * | 2013-02-04 | 2019-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
KR102128406B1 (ko) * | 2014-09-26 | 2020-07-10 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US9727244B2 (en) * | 2015-10-05 | 2017-08-08 | International Business Machines Corporation | Expanding effective storage capacity of a data storage system while providing support for address mapping recovery |
TWI604308B (zh) * | 2015-11-18 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
KR102438988B1 (ko) * | 2016-04-07 | 2022-09-02 | 삼성전자주식회사 | 랜덤화 연산을 수행하는 불휘발성 메모리 장치 |
KR102580123B1 (ko) * | 2016-05-03 | 2023-09-20 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
KR20180031853A (ko) | 2016-09-19 | 2018-03-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20190000663A (ko) * | 2017-06-23 | 2019-01-03 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
KR102645740B1 (ko) * | 2018-10-30 | 2024-03-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20210081641A (ko) * | 2019-12-24 | 2021-07-02 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
-
2019
- 2019-01-17 KR KR1020190006417A patent/KR20200089547A/ko not_active Application Discontinuation
- 2019-09-26 US US16/584,482 patent/US11194732B2/en active Active
- 2019-10-16 CN CN201910982396.7A patent/CN111445939B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885538A (zh) * | 2016-04-27 | 2018-11-23 | 净睿存储股份有限公司 | 在包括多个存储设备的存储阵列中迁移数据 |
Also Published As
Publication number | Publication date |
---|---|
CN111445939A (zh) | 2020-07-24 |
US20200233812A1 (en) | 2020-07-23 |
US11194732B2 (en) | 2021-12-07 |
KR20200089547A (ko) | 2020-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069212B (zh) | 存储装置及存储装置的操作方法 | |
KR102535627B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN110390970B (zh) | 存储器装置及其操作方法 | |
CN109388578B (zh) | 存储装置及其操作方法 | |
CN111258919B (zh) | 储存设备及其操作方法 | |
KR102535104B1 (ko) | 저장 장치 및 그 동작 방법 | |
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
CN110399092B (zh) | 存储装置以及操作存储装置的方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111192617B (zh) | 存储装置及其操作方法 | |
CN114121104A (zh) | 存储器设备及其操作方法 | |
CN110413219B (zh) | 存储器控制器、存储器系统及其操作方法 | |
US11551762B2 (en) | Memory device and method of operating the same | |
CN114496045A (zh) | 存储器设备和操作存储器设备的方法 | |
CN113971975A (zh) | 存储器装置及其操作方法 | |
KR102513691B1 (ko) | 저장 장치 및 그 동작 방법 | |
KR20220048377A (ko) | 저장 장치 및 그 동작 방법 | |
CN112447234A (zh) | 存储器控制器及其操作方法 | |
CN111190535B (zh) | 存储装置及其操作方法 | |
CN110648698B (zh) | 储存装置、存储器件及操作该存储器件的方法 | |
US20220108751A1 (en) | Storage device and method of operating the same | |
KR20230012334A (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 |