CN113688066A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN113688066A CN113688066A CN202110191001.9A CN202110191001A CN113688066A CN 113688066 A CN113688066 A CN 113688066A CN 202110191001 A CN202110191001 A CN 202110191001A CN 113688066 A CN113688066 A CN 113688066A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- count
- program
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
- 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/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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk 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
- 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/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
- 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
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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
- G06F2212/1036—Life time enhancement
-
- 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/7211—Wear leveling
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种存储器控制器,该存储器控制器控制包括多个存储块的存储器装置,存储器控制器被配置为:控制存储器装置以使用单层单元方法将数据存储在存储器装置中的区域之中的第一区域中,其中数据对应于从主机接收的写入加速器请求;基于存储在第一区域中的数据的大小、第一区域中的每个存储块的编程‑擦除计数和存储器装置中的空闲块的数量,来执行损耗均衡操作;以及形成从主机接收的逻辑块地址和与第一区域相对应的物理块地址之间的映射关系。
Description
相关申请的交叉引用
本申请要求于2020年5月19日提交的、申请号为10-2020-0059819的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开涉及一种电子装置,更具体地,涉及一种存储器控制器及其操作方法。
背景技术
存储装置被配置为在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据。存储装置可以被配置为在诸如硬盘驱动器(HDD)的磁盘上存储数据,或者被配置为在半导体存储器,特别是非易失性存储器中存储数据,其中半导体存储器诸如固态驱动器(SSD)或存储卡。
存储装置可以包括配置为存储数据的存储器装置和配置为控制存储器装置的存储器控制器。存储器装置可以是易失性存储器装置或非易失性存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)和铁电RAM(FRAM)。
发明内容
实施例提供了一种存储器控制器以及该存储器控制器的操作方法,该存储器控制器被配置为执行损耗均衡操作,以延长存储器装置的寿命。
根据本公开的方面,提供了一种用于控制包括多个存储块的存储器装置的存储器控制器,该存储器控制器被配置为:控制存储器装置以使用单层单元方法将数据存储在存储器装置中的区域之中的第一区域中,其中数据对应于从主机接收的写入加速器请求,基于存储在第一区域中的数据的大小、第一区域的每个存储块的编程-擦除计数和存储器装置中的空闲块的数量,来执行损耗均衡操作,以及形成从主机接收的逻辑块地址和与第一区域相对应的物理块地址之间的映射关系。
根据本公开的另一方面,提供了一种操作存储器控制器的方法,该存储器控制器控制包括多个存储块的存储器装置,该方法包括:从主机接收写入加速器请求,将与写入加速器请求相对应的数据存储在存储器装置中的区域之中的、使用单层单元方法的第一区域中,每当存储在第一区域中的数据的大小是第一参考值或更大时,存储写入加速器计数,该写入加速器计数指示从存储器装置输出的、与写入加速器请求相对应的数据的大小,并且基于写入加速器计数、第一区域中的每个存储块的编程-擦除计数和存储器装置中的空闲块的数量,来执行损耗均衡操作。
根据本公开的另一方面,提供了一种控制器的操作方法,该操作方法包括:控制存储器装置以将数据编程到存储块中,所编程的数据包括第一数据和第二数据,并且控制存储器装置在以下情况下,在存储块之中,将第一数据从第一存储块移动到第二存储块并且将第二数据从第三存储块移动到第一存储块:第一数据的量增加到大于第二阈值,每当所编程数据的量变得大于第一阈值时检测第一数据的量;存储块的编程-擦除计数的最大值和平均值之间的差大于第三阈值;以及存储器装置内的空闲块的数量大于第四阈值;其中第一存储块具有最大值。
附图说明
现在将在下文中参照附图更全面地描述示例性实施例;然而,本公开可以以不同的形式实现,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使得本公开将是透彻和完整的,并且将向本领域技术人员充分传达示例实施例的范围。
在附图中,为了清楚地说明,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出存储装置的框图。
图2是示出诸如图1所示的存储器装置的结构的示图。
图3是示出诸如图2所示的存储器单元阵列的实施例的示图。
图4是示出在写入加速器操作中主机、存储器控制器和存储器装置之间的操作的示图。
图5是示出通过写入加速器操作来存储数据的方法的示图。
图6是示出SLC缓冲器的示图。
图7A和图7B是示出将数据存储在SLC缓冲器中和从SLC缓冲器输出的写入加速器计数的示例的示图。
图8A和图8B是示出写入加速器数据的大小的增加的示图。
图9是示出执行静态损耗均衡的过程的示图。
图10是示出基于编程-擦除计数来执行静态损耗均衡的过程的示图。
图11是示出基于空闲块的数量来执行静态损耗均衡的过程的示图。
图12是示出通过静态损耗均衡来移动数据的示图。
图13是示出根据本公开的实施例的存储器控制器的操作的流程图。
图14是示出根据本公开的实施例的存储器控制器的操作的流程图。
图15是示出图1所示的存储器控制器的另一实施例的示图。
图16是示出根据本公开的实施例的应用存储装置的存储卡***的框图。
图17是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)***的框图。
图18是示出根据本公开的实施例的应用存储装置的用户***的框图。
具体实施方式
本文中公开的具体结构和功能描述仅仅是为了描述根据本公开的概念的实施例的目的。然而,本发明可以以各种其它形式和方式实施,因此不限于本文阐述的实施例。在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这样的短语的不同引用不一定针对相同的实施例。当在本文中使用术语“实施例”时,不一定针对所有实施例。
下面参照附图详细描述本公开的各种实施例,以使本领域技术人员能够实践和容易地实施本发明。
图1是示出存储装置的框图。
参照图1,存储装置50可以包括存储器装置100和存储器控制器200。
存储装置50可以在诸如以下的主机300的控制下存储数据:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐设备。
存储装置50可以根据作为与主机300的通信方案的主机接口而被配置为各种类型的存储装置中的任何一种。例如,存储装置50可以被实施为固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、减小尺寸的MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)和/或记忆棒。
存储装置50可以被制造为各种封装类型中的任何一种。例如,存储装置50可以被制造为堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和/或晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列,存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元,并且多个存储器单元可以构成多个页面。在实施例中,可以以页面为单位将数据存储在存储器装置100中并且从存储器装置100中读取数据。存储块可以是用于擦除数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,以示例的方式,在存储器装置100为NAND闪速存储器的背景下描述本发明。
在实施例中,存储器装置100可以二维阵列结构或三维阵列结构实施。在下文中,虽然作为实施例描述了以三维阵列结构来实施存储器装置100的情况,但是本发明不限于三维阵列结构。本公开不仅可以应用于其中电荷存储层由浮栅(FG)来配置的闪速存储器装置,而且可以应用于其中电荷存储层由绝缘层来配置的电荷撷取闪存(CTF)。
在实施例中,可使用将一个数据位存储在一个存储器单元中的单层单元(SLC)方法来操作存储器装置100。可选地,可使用将至少两个数据位存储在一个存储器单元中的方法来操作存储器装置100。例如,可使用将两个数据位存储在一个存储器单元中的多层单元(MLC)方法、将三个数据位存储在一个存储器单元中的三层单元(TLC)方法或将四个数据位存储在一个存储器单元中的四层单元(QLC)方法来操作存储器装置100。
存储器装置100配置为从存储器控制器200接收命令和地址并且访问存储器单元阵列中的、由地址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可以根据所接收的命令来执行写入(编程)操作、读取操作和擦除操作。例如,当接收到编程命令时,存储器装置100可将数据编程在由地址选择的区域中。当接收到读取命令时,存储器装置100可从由地址选择的区域中读取数据。当接收到擦除命令时,存储器装置100可擦除存储在由地址选择的区域中的数据。
在实施例中,存储器控制器200可以包括写入加速器控制器210。写入加速器控制器210可以将从主机300接收的数据临时存储在SLC缓冲器中,然后基于存储在SLC缓冲器中的数据的大小来执行静态损耗均衡(SWL)操作。SLC缓冲器可以是存储器装置100中的区域之中的、使用SLC方法存储数据的区域。
具体地,写入加速器控制器210可以从主机300接收写入加速器请求。写入加速器请求可以指示写入加速器控制器210将从主机300接收的数据临时存储在SLC缓冲器中,并且写入加速器控制器210可以响应于写入加速器请求而输出表示编程操作已经完成的响应。也就是说,即使当从主机300接收的数据没有存储在存储区域中时,写入加速器控制器210也输出表示编程操作已经完成的响应,使得主机300可以提供另一请求而无需等待编程操作完成,从而可以提高整体编程操作速度。
在实施例中,当临时存储在SLC缓冲器中的数据具有特定大小或更大时,存储在SLC缓冲器中的数据可以被清除到存储器装置100的存储区域。当将数据清除到存储器装置100的存储区域时,可响应于写入加速器请求来擦除SLC缓冲器中存储的数据。
在本公开中,当写入加速器控制器210从主机300接收到写入加速器请求和相应数据时,写入加速器控制器210可以将数据临时存储在SLC缓冲器中,然后将表示编程操作已经完成的响应输出到主机300。
在实施例中,当具有特定大小或更大的数据被存储在SLC缓冲器中时,写入加速器控制器210可对存储在SLC缓冲器中的数据之中的、响应于写入加速器请求而存储的数据的条数进行计数(或以其他方式确定数据的大小),并且将关于所计数的大小的信息存储在存储器控制器200或存储器装置100中。每当将具有第一参考值或更大的大小的数据存储在SLC缓冲器中时,写入加速器控制器210可确定并存储关于响应于写入加速器请求而存储的数据的大小的信息。第一参考值可以表示SLC缓冲器的最大容量的一部分(例如,SLC缓冲器的最大容量的80%)。
在实施例中,当响应于写入加速器请求而存储的数据的大小相比于先前存储的大小增加了第二参考值或更大时,或者当响应于写入加速器请求而存储的数据的大小增加到第二阈值或更大时,写入加速器控制器210可确定存储器装置100的存储块的编程-擦除计数和空闲块的数量。每当对存储块执行擦除操作时,存储块的编程-擦除计数可增加“1”。另外,存储器装置100的空闲块的数量可表示在存储器装置100中的保留块之中的、可分配给SLC缓冲器的已擦除的存储块的数量。
例如,写入加速器控制器210可以确定和存储关于响应于写入加速器请求而存储的数据的大小的信息,然后确定所确定和存储的大小是否已经从先前确定的大小增加或减小。在当前确定的、响应于写入加速器请求而存储的数据的大小相比于先前确定的大小已经增加了第二参考值或更大时,或者在当前确定的、响应于写入加速器请求而存储的数据的大小已经增加到第二阈值或更大时,写入加速器控制器210可以确定编程-擦除计数和空闲块的数量。
首先,写入加速器控制器210可以确定SLC缓冲器中的每个存储块的编程-擦除计数。例如,写入加速器控制器210可以确定编程-擦除计数中的最大值与编程-擦除计数的平均值之间的差是否为第三参考值或更大。也就是说,写入加速器控制器210可以确定特定存储块的编程-擦除计数是否相对大于SLC缓冲器中的其它存储块的编程-擦除计数。当特定存储块的编程-擦除计数大于SLC缓冲器中的其它存储块的编程-擦除计数时,可执行损耗均衡,使得每一个存储块的编程-擦除计数均匀地增加。
在实施例中,当编程-擦除计数中的最大值与编程-擦除计数的平均值之间的差是第三参考值或更大时,写入加速器控制器210可以确定存储器装置100中的空闲块的数量是否为第四参考值或更大。由于空闲块可以被分配给SLC缓冲器,所以写入加速器控制器210可以确定可以被分配给SLC缓冲器的空闲块的数量是否足够。当空闲块的数量是第四参考值或更大时,写入加速器控制器210可以确定将执行静态损耗均衡(SWL)操作。
在实施例中,通过静态损耗均衡(SWL)操作,可将SLC缓冲器内的具有最大编程-擦除计数的第一存储块中存储的写入加速器数据移动到SLC缓冲器内的第二存储块,并且可将普通数据从第二存储块移动到第一存储块。因此,通过仅允许将普通数据存储在第一存储块中,写入加速器控制器210可以控制具有最大编程-擦除计数的第一存储块的编程-擦除计数不再增加。
在实施例中,存储器控制器200可以包括闪存转换层220。闪存转换层220可以根据从主机300接收的请求是写入加速器请求还是普通写入请求,来形成逻辑块地址LBA和物理块地址PBA之间的映射关系。
例如,当从主机300接收的请求是写入加速器请求时,闪存转换层220可以将逻辑块地址LBA转换为物理块地址PBA,从而将从主机300接收的数据临时存储在SLC缓冲器中。也就是说,闪存转换层220可以将逻辑块地址LBA转换为表示SLC缓冲器中的特定页面的物理块地址PBA。
然而,当从主机300接收的请求是普通写入请求时,闪存转换层220可根据从主机300接收的请求是通过使用SLC方法编程数据的请求还是通过使用TLC方法编程数据的请求,来将逻辑块地址LBA转换为物理块地址PBA,从而将相应数据存储在SLC缓冲器或存储区域中。
随后,当存储在SLC缓冲器中的数据的大小是第一参考值或更大时,在写入加速器控制器210的控制下,闪存转换层220可将存储在具有最大编程-擦除计数的存储块中的写入加速器数据移动到另一存储块,并且形成映射关系,从而将普通数据存储在具有最大编程-擦除计数的存储块中。
存储器控制器200可以控制存储装置50的全部操作。
当对存储装置50施加电源电压时,存储器控制器200可以运行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可运行诸如闪存转换层(FTL)的FW,以控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可包括固件(未示出),该固件从主机300接收数据和逻辑块地址LBA,并且将逻辑块地址LBA转换为物理块地址PBA,该物理块地址PBA表示存储器装置100中包括的、待存储数据的存储器单元的地址。而且,存储器控制器200可将逻辑-物理地址映射表存储在缓冲存储器(未示出)中,该逻辑-物理地址映射表建立逻辑块地址LBA与物理块地址PBA之间的映射关系。
存储器控制器200可以响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作、擦除操作等。例如,当从主机300接收到编程请求时,存储器控制器200可以将编程请求改变为编程命令,并且向存储器装置100提供编程命令、物理块地址PBA和数据。当从主机300一起接收到读取请求和逻辑块地址LBA时,存储器控制器200可将读取请求改变为读取命令,选择对应于逻辑块地址LBA的物理块地址PBA,然后将读取命令和物理块地址PBA提供给存储器装置100。当从主机300一起接收到擦除请求和逻辑块地址LBA时,存储器控制器200可将擦除请求改变为擦除命令,选择对应于逻辑块地址LBA的物理块地址PBA,然后将擦除命令和物理块地址PBA提供给存储器装置100。
在实施例中,存储器控制器200可以在没有来自主机300的任何请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传输到存储器装置100。例如,存储器控制器200可将命令、地址和数据提供给存储器装置100以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储装置50可以进一步包括缓冲存储器(未示出)。存储器控制器200可以控制主机300与缓冲存储器之间的数据交换。可选地,存储器控制器200可以将用于控制存储器装置100的***数据临时存储在缓冲存储器中。例如,存储器控制器200可以将从主机300输入的数据临时存储在缓冲存储器中,然后将临时存储在缓冲存储器中的数据传输到存储器装置100。
在各种实施例中,缓冲存储器可以用作存储器控制器200的工作存储器或高速缓存存储器。缓冲存储器可以存储由存储器控制器200运行的代码或命令。可选地,缓冲存储器可以存储由存储器控制器200处理的数据。
在实施例中,缓冲存储器可以利用诸如以下的动态随机存取存储器(DRAM)来实施:双倍数据速率同步DRAM(DDR SDRAM)、DDR4 SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、或Rambus动态随机存取存储器(RDRAM)或静态随机存取存储器(SRAM)。
在各种实施例中,缓冲存储器可以是联接到存储装置50的单独装置。因此,联接到存储装置50的一个或多个外部易失性存储器装置可以执行缓冲存储器的功能。
在实施例中,存储器控制器200可以控制至少两个存储器装置。存储器控制器200可以根据交错方案来控制存储器装置,以便提高操作性能。
主机300可以使用诸如以下的各种通信协议中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、火线、***组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)。
图2是示出图1所示的存储器装置的结构的示图。
参照图2,存储器装置100可包含存储器单元阵列100、***电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz,该多个存储块BLK1至BLKz通过行线RL联接到行解码器121。多个存储块BLK1至BLKz通过位线BL1至BLn联接到页面缓冲器组123。多个存储器块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可被定义为一个页面。因此,一个存储块可以包括多个页面。
行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。
包括在存储器单元阵列110中的每个存储器单元可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
***电路120可以在控制逻辑130的控制下,对存储器单元阵列110的所选择区域执行编程操作、读取操作或擦除操作。***电路120可以驱动存储器单元阵列110。例如,***电路120可在控制逻辑130的控制下,将各种操作电压施加到行线RL和位线BL1至BLn,或使所施加的电压放电。
***电路120可以包括行解码器121、电压发生器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
行解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可以包括普通字线和虚设字线。在实施例中,行线RL可以进一步包括管道选择线。
行解码器121对从控制逻辑130接收的行地址RADD进行解码。行解码器121根据所解码的地址而在存储块BLK1至BLKz之中选择至少一个存储块。此外,行解码器121可以根据所解码的地址来选择所选择存储块中的至少一个字线,以将由电压发生器122生成的电压施加到至少一个字线WL。
例如,在编程操作中,行解码器121可将编程电压施加到所选择字线,并将编程通过电压施加到未选择字线,其中编程通过电压的电平比编程电压的电平低。在编程验证操作中,行解码器121可以将验证电压施加到所选择字线,并且将验证通过电压施加到未选择字线,其中验证通过电压的电平比验证电压的电平高。
在读取操作中,行解码器121可将读取电压施加到所选择字线,并将读取通过电压施加到未选择字线,其中读取通过电压的电平比读取电压的电平高。
在实施例中,以存储块为单位执行存储器装置100的擦除操作。在擦除操作中,行解码器121可以根据所解码的地址选择一个存储块。在擦除操作中,行解码器121可将接地电压施加到与所选择存储块联接的字线。
电压发生器122在控制逻辑130的控制下操作。电压发生器122通过使用供应到存储器装置100的外部电源电压来生成多个电压。具体地,电压发生器可以响应于操作信号OPSIG而生成在编程、读取和擦除操作中使用的各种操作电压Vop。例如,电压发生器122可以在控制逻辑130的控制下生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压发生器122可以通过调节外部电源电压来生成内部电源电压。将由电压发生器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压发生器122可通过使用外部电源电压或内部电源电压来生成多个电压。
例如,电压发生器122可以包括用于接收内部电源电压的多个泵浦电容器,并且通过在控制逻辑130的控制下选择性地激活多个泵浦电容器来生成多个电压。
可以通过行解码器121将所生成的多个电压供应到存储器单元阵列110。
页面缓冲器组123包括第一至第n页面缓冲器PB1至PBn,第一至第n页面缓冲器PB1至PBn分别通过第一位线BL1至第n位线BLn联接到存储器单元阵列110。第一位线BL1至第n位线BLn在控制逻辑130的控制下操作。具体地,第一位线BL1至第n位线BLn可响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取或验证操作中,第一页面缓冲器PB1至第n页面缓冲器PBn可以临时存储通过第一位线BL1至第n位线BLn接收的数据,或者感测位线BL1至BLn的电压或电流。
具体地,在编程操作中,当将编程电压施加到所选择字线时,第一页面缓冲器PB1至第n页面缓冲器PBn可以通过第一位线BL1至第n位线BLn,将通过输入/输出电路125接收的数据DATA传送到所选择存储器单元。根据所传送的数据DATA对所选择页面中的存储器单元进行编程。在编程验证操作中,第一页面缓冲器PB1至第n页面缓冲器PBn通过感测通过第一位线BL1至第n位线BLn而从所选择存储器单元接收的电压或电流来读取页面数据。
在读取操作中,在列解码器124的控制下,第一页面缓冲器PB1至第n页面缓冲器PBn通过第一位线BL1至第n位线BLn从所选择页面中的存储器单元读取数据DATA,并将所读取的数据DATA输出到输入/输出电路125。
在擦除操作中,第一页面缓冲器PB1至第n页面缓冲器PBn可以使第一位线BL1至第n位线BLn浮置或者施加擦除电压。
列解码器124可以响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间通信数据。例如,列解码器124可以通过数据线DL与第一页面缓冲器PB1至第n页面缓冲器PBn通信数据,或者通过列线CL与输入/输出电路125通信数据。
输入/输出电路125可将从存储器控制器(图1中所示的200)接收的命令CMD及地址ADDR传送到控制逻辑130,或与列解码器124交换数据DATA。
在读取操作或验证操作中,感测电路125可响应于允许位VRYBIT信号而生成参考电流,并通过比较从页面缓冲器组123接收的感测电压VPB和由参考电流生成的参考电压,来输出通过信号PASS或失败信号FAIL。
控制逻辑130可通过响应于命令CMD和地址ADDR而输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRYBIT来控制***电路120。例如,控制逻辑130可以响应于子块读取命令和地址来控制所选择存储块的读取操作。此外,控制逻辑130可以响应于子块擦除命令和地址来控制对包括在所选择存储块中的所选择子块的擦除操作。而且,控制逻辑130可以响应于通过信号PASS或失败信号FAIL来确定验证操作是已经通过还是已经失败。
图3为图2所示的存储器单元阵列的实施例的示图。
参照图2和图3,图3是示出包括在图2所示的存储器单元阵列110中的多个存储块BLK1至BLKz之中的任何一个存储块BLKa的电路图。
在存储块BLKa中,平行布置的第一选择线、字线和第二选择线可以彼此联接。例如,可以在第一选择线和第二选择线之间平行布置字线。第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。
更具体地,存储块BLKa可包括联接在位线BL1至BLn与源极线SL之间的多个串。位线BL1至BLn可分别联接至串,且源极线SL可共同联接至串。每个串可以被配置为相同;因此,作为示例,详细地描述联接到第一位线BL1的串ST。
串ST可包括在源极线SL和第一位线BL1之间彼此串联联接的源极选择晶体管SST、多个存储器单元F1至F16和漏极选择晶体管DAT。至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST可包括在一个串ST中,并且可在一个串ST中包括多于附图中所示的16个存储器单元F1至F16的存储器单元。
源极选择晶体管SST的源极可联接到源极线SL,且漏极选择晶体管DAT的漏极可联接到第一位线BL1。存储器单元F1至F16可串联联接于源极选择晶体管SST与漏极选择晶体管DST之间。包括在不同串中的源极选择晶体管SST的栅极可以联接到源极选择线SSL,并且包括在不同串中的漏极选择晶体管DST的栅极可以联接到漏极选择线DSL。存储器单元F1至F16的栅极可以联接到多个字线WL1至WL16。包括在不同串中的存储器单元之中的、联接到相同字线的一组存储器单元可被称为物理页面PPG。因此,对应于字线WL1至WL16的数量的物理页面可以包括在存储块BLKa中。
一个存储器单元可以存储一位数据。该存储器单元通常称为单层单元(SLC)。一个物理页面PPG可存储一个逻辑页面(LPG)数据。一个LPG数据可包括数量对应于包括在一个物理页面PPG中的单元的数量的数据位。可选地,一个存储器单元MC可以存储两个或更多位的数据。该存储器单元通常被称为多层单元(MLC)。一个物理页面PPG可以存储两个或更多个LPG数据。
虽然MLC通常表示存储两个或更多个位的单元,但是随着存储器单元容量的增加,MLC更具体地用于指存储两位数据的存储器单元。用于存储三位或更多位数据的存储器单元称为三层单元(TLC),用于存储四位或更多位数据的存储器单元称为四层单元(QLC)。
在另一实施例中,多个存储块中的每一个可以具有三维结构。每个存储块可以包括堆叠在衬底上的多个存储器单元。多个存储器单元可沿+X、+Y和+Z方向布置。
图4是示出在写入加速器操作中的主机、存储器控制器和存储器装置之间的操作的示图。
参照图4,图4中所示的存储器控制器200可包括写入加速器控制器210和闪存转换层220。
在实施例中,写入加速器控制器210可以从主机300接收写入加速器请求WB_REQ。即使在将与写入加速器请求WB_REQ相对应的数据全部编程在存储器装置100中的存储区域中之前,当将与写入加速器请求WB_REQ相对应的数据全部存储在存储器装置100中的SLC缓冲器中时,写入加速器请求WB_REQ也可以指示写入加速器控制器210输出表示编程已经完成的响应。也就是说,当将对应于写入加速器请求WB_REQ的写入加速器数据WB_DATA全部存储在SLC缓冲器中时,写入加速器请求WB_REQ可以指示写入加速器控制器210输出表示编程已经完成的响应。
在实施例中,当写入加速器控制器210从主机300接收到写入加速器请求WB_REQ时,写入加速器控制器210可以首先向存储器装置100输出用于设置存储器装置100中的SLC缓冲器的大小的缓冲器大小信息BUFFER_SIZE_INF。SLC缓冲器可以是包括在存储器装置100中的存储区域之中的、使用SLC方法来存储数据的区域。除了与写入加速器请求WB_REQ相对应的写入加速器数据WB_DATA之外,与通过使用SLC方法来指示存储数据的普通写入请求相对应的数据也可以存储在SLC缓冲器中。
在实施例中,当写入加速器控制器210输出缓冲器大小信息BUFFER_SIZE_INF时,存储器装置100可基于缓冲器大小信息BUFFER_SIZE_INF来将存储器装置100中的一些空闲块分配为SLC缓冲器。另外,可以基于每当写入加速器控制器210从主机300接收到写入加速器请求WB_REQ时输出的缓冲器大小信息BUFFER_SIZE_INF,来不同地设置SLC缓冲器的大小。
在实施例中,写入加速器控制器210可以响应于主机300的写入加速器请求WB_REQ,将写入加速器命令WB_CMD和写入加速器数据WB_DATA输出至存储器装置100。写入加速器数据WB_DATA可以是待通过与写入加速器命令WB_CMD相对应的写入加速器操作而编程在存储器装置100中的数据。
因此,在对应于写入加速器命令WB_CMD的写入加速器操作中,即使在将写入加速器数据WB_DATA全部编程在存储区域中之前,当将写入加速器数据WB_DATA全部存储在SLC缓冲器中时,也可以完成写入加速器操作。
随后,当将写入加速器数据WB_DATA全部存储在SLC缓冲器中时,写入加速器控制器210可以向主机300输出表示写入加速器操作已经完成的写入加速器响应WB_RES。
在实施例中,闪存转换层220可以从主机300接收写入加速器请求WB_REQ和逻辑块地址LBA。当闪存转换层220从主机300接收到写入加速器请求WB_REQ时,闪存转换层220可以将从主机200接收到的逻辑块地址LBA转换为表示SLC缓冲器中的特定区域的物理块地址PBA。也就是说,闪存转换层220可以形成逻辑块地址LBA和物理块地址PBA之间的映射关系,从而将从主机300接收的写入加速器数据WB_DATA存储在SLC缓冲器中的特定区域中。
随后,在本公开中,当存储在SLC缓冲器中的数据的大小是特定大小或更大时,可以基于写入加速器数据WB_DATA的增加、每个存储块的编程-擦除计数和存储器装置100中的空闲块的数量来执行静态损耗均衡(SWL)操作。
存储器装置100可将普通数据移动到具有最大编程-擦除计数的存储块,使得对于SLC缓冲器内的每个存储块,均匀地增加编程-擦除计数。也就是说,闪存转换层220可以防止具有相对较大的编程-擦除计数的SLC存储块的编程-擦除计数的增加,并且形成逻辑块地址LBA和物理块地址PBA之间的映射关系,从而将数据存储在具有相对较小的编程-擦除计数的存储块中。
图5是示出通过写入加速器操作来存储数据的方法的示图。
参照图2和图5,图5示出了存储器单元阵列(图2中所示的110)的配置,以及在写入加速器操作中编程在存储器单元阵列110中的数据和从存储器单元阵列110输出的写入加速器计数WB_COUNT。在图5中,存储器单元阵列110可被划分为SLC缓冲器110_1和存储区域110_2。SLC缓冲器110_1可以是使用SLC方法来存储数据的区域,并且存储区域110_2可以是使用TLC方法来存储数据的区域。
在实施例中,当存储器装置(图4中所示的100)从主机(图4中所示的300)接收写入加速器请求时,存储器装置(图4中所示的100)可以将与写入加速器请求相对应的写入加速器数据WB_DATA临时存储在SLC缓冲器110_1中。写入加速器请求可指示存储器装置(图4中所示的100)在通过使用TLC方法将从主机(图4中所示的300)接收的所有数据编程到存储区域110_2中之前,将相应数据临时存储在SLC缓冲器110_1中,然后输出表示将数据存储在SLC缓冲器110_1中的写入加速器操作已经完成的响应。写入加速器数据WB_DATA可以通过使用SLC方法存储在SLC缓冲器110_1中,然后通过主机(图4中所示的300)的清除请求、使用TLC方法编程在存储区域110_2中。
例如,存储器控制器(图4中所示的200)可以从主机(图4中所示的300)接收写入加速器数据WB_DATA以及写入加速器请求。存储器控制器(图4中所示的200)可以将写入加速器数据WB_DATA和对应于写入加速器请求的写入加速器命令一起输出到存储器装置(图4中所示的100)。随后,存储器装置(图4中所示的100)可执行对应于写入加速器命令的写入加速器操作。
在写入加速器操作中,可通过使用SLC方法,将写入加速器数据WB_DATA临时存储在SLC缓冲器110_1中。当存储在SLC缓冲器110_1中的数据的大小是第一参考值或更大时,可以将写入加速器计数WB_COUNT输出到存储器控制器(图4中所示的300),其中写入加速器计数WB_COUNT表示存储在SLC缓冲器110_1中的数据之中的、响应于写入加速器请求而存储的写入加速器数据WB_DATA的大小。
例如,当存储在SLC缓冲器110_1中的数据占据SLC缓冲器110_1的80%或更多时(即,当SLC缓冲器110_1的可用容量变为20%或更小时),可以从SLC缓冲器110_1输出写入加速器计数WB_COUNT。也就是说,第一参考值可以表示SLC 110_1的大小至少是SLC缓冲器110_1的容量的80%。
随后,当从主机(图4中所示的300)接收到清除请求时,可以将存储在SLC缓冲器110_1中的数据之中的、响应于写入加速器请求而存储的数据作为清除数据FLUSH_DATA而编程在存储区域110_2中。可通过使用TLC方法将清除数据FLUSH_DATA编程在存储区域110_2中。
当将响应于写入加速器请求而存储在SLC缓冲器110_1中的数据作为清除数据FLUSH_DATA而全部编程在存储区域110_2中时,可以擦除存储在SLC缓冲器110_1中的写入加速器数据WB_DATA。
在实施例中,在响应于写入加速器请求而将写入加速器数据WB_DATA存储在SLC缓冲器110_1中之后,可以擦除写入加速器数据WB_DATA,从而可以增加SLC缓冲器110_1中的各个存储块的编程-擦除计数EW_COUNT。
然而,当SLC缓冲器110_1中的特定存储块的编程-擦除计数增加时,该特定存储块的数据的可靠性可能降低。也就是说,随着特定存储块的编程-擦除计数增加,存储器装置(图4中所示的100)的寿命可能减少。
因此,执行静态损耗均衡(SWL)操作,以防止SLC缓冲器110_1中的存储块之中的特定存储块的编程-擦除计数快速增加的现象。
在本公开中,从SLC缓冲器110_1输出的写入加速器计数WB_COUNT可以被认为是用于执行静态损耗均衡(SWL)操作的条件。
将参照图6至图8更详细地描述参考写入加速器计数WB_COUNT的方法。
图6是示出SLC缓冲器的示图。
参照图5和图6,图6示出了包括在图5所示的SLC缓冲器110_1中的存储块。参照图6,第一存储块BLK1可以包括第(1_1)至第(5_1)页面PAGE1_1至PAGE5_1,第二存储块BLK2可以包括第(1_2)至第(5_2)页面PAGE1_2至PAGE5_2,第三存储块BLK3可以包括第(1_3)至第(5_3)页面PAGE1_3至PAGE5_3,第四存储块BLK4可以包括第(1_4)至第(5_4)页面PAGE1_4至PAGE5_4。
在图6中,示出了SLC缓冲器110_1包含四(4)个存储块,每个存储块包含五(5)个页面。然而,在本发明中不限于该特定结构;SLC缓冲器110_1可具有任何合适数量的存储块,并且每个存储块可包括任何合适数量的页面。
在实施例中,参照图4,写入加速器控制器(图4中示出的210)可以根据主机(图4中示出的300)的写入加速器请求,在存储器装置(图4中示出的100)中的多个存储块之中设置用作SLC缓冲器110_1的存储块。可以根据从写入加速器控制器210接收的缓冲器大小信息BUFFER_SIZE_INF来确定SLC缓冲器110_1的大小。
因此,基于缓冲器大小信息BUFFER_SIZE_INF,可将第一存储块BLK1至第四存储块BLK4分配给SLC缓冲器110_1。
图7A和图7B是示出将数据存储在SLC缓冲器中以及从SLC缓冲器输出的写入加速器计数的示例的示图。
参照图7A和图7B,图7A示出了存储在SLC缓冲器110_1中的数据量小于缓冲器容量的80%的情况,图7B示出了存储在SLC缓冲器110_1中的数据量超过缓冲器容量的80%的情况。
在实施例中,当存储在SLC缓冲器110_1中的数据量大于缓冲器容量的80%时,SLC缓冲器110_1可以确定存储在SLC缓冲器110_1中的数据之中的、基于写入加速器请求而存储的写入加速器数据的量。也就是说,可以将通过计数写入加速器数据(或确定写入加速器数据的大小)而获得的写入加速器计数WB_COUNT输出到写入加速器控制器(图4中所示的210)。随后,写入加速器控制器(图4中所示的210)可以存储从SLC缓冲器110_1接收的写入加速器计数WB_COUNT。
参照图7A,当存储在SLC缓冲器110_1中的数据的大小小于SLC缓冲器110_1的大小的80%时,SLC缓冲器110_1可以不输出写入加速器计数WB_COUNT。也就是说,当存储在SLC缓冲器110_1中的数据的大小没有变为参考值或更大时,SLC缓冲器110_1可以不对存储在SLC缓冲器110_1中的数据之中的写入加速器数据进行计数(或以其他方式确定写入加速器数据的大小)。因此,可以不将写入加速器计数WB_COUNT存储在写入加速器控制器(图4中所示的210)中。
然而,参照图7B,存储在SCL缓冲器110_1中的数据的大小可变为SLC缓冲器110_1的大小的80%或更大。SLC缓冲器110_1可以对存储在SLC缓冲器110_1中的数据之中的、基于写入加速器请求而存储的写入加速器数据进行计数(或确定写入加速器数据的大小),并且将表示写入加速器数据的大小的值输出到写入加速器控制器(图4中所示的210)。
例如,存储在SLC缓冲器110_1中的数据之中的写入加速器数据的条数可以是“10”,所以写入加速器计数WB_COUNT可以是“10”。因此,可以从SLC缓冲器110_1输出作为写入加速器计数WB_COUNT的“10”。写入加速器控制器(图4中所示的210)可以接收并存储为“10”的写入加速器计数WB_COUNT。
当写入加速器控制器(图4中所示的210)存储写入加速器计数WB_COUNT时,写入加速器控制器(图4中所示的210)可以执行下一操作以执行静态损耗均衡操作。
图8A和图8B是示出写入加速器数据的大小增加的示图。
参照图7A、图7B、图8A和图8B,图8A示出了当在图7B中输出为“10”的写入加速器计数WB_COUNT时存储在SLC缓冲器110_1中的数据,图8B示出了在图8A中输出写入加速器计数WB_COUNT之前,当从SLC缓冲器110_1输出写入加速器计数WB_COUNT时存储在SLC缓冲器110_1中的数据。
在图8A中,从SLC缓冲器110_1输出的写入加速器计数WB_COUNT是第二写入加速器计数WB_COUNT2。在图8B中,从SLC缓冲器110_1输出的写入加速器计数WB_COUNT是第一写入加速器计数WB_COUNT1。
在实施例中,参照图7B和图8A,当存储在SLC缓冲器110_1中的数据变为SLC缓冲器110_1的大小的80%或更大时,SLC缓冲器110_1可对存储在SLC缓冲器110_1中的数据之中的、通过写入加速器请求而存储的写入加速器数据进行计数,并且将表示写入加速器数据的计数的值输出到存储器控制器(图4中所示的200)。
具体地,在SLC缓冲器110_1中存储的数据之中的、第十一至第十五写入加速器数据WB_DATA11至WB_DATA15以及第三十一至第四十写入加速器数据WB_DATA31至WB_DATA40可以对应于从主机(图4中所示的300)接收的写入加速器请求。另外,在SLC缓冲器110_1中存储的数据之中的、第十一至第二十一普通数据NORM_DATA11至NORM_DATA21以及第三十一至第三十六普通数据NORM_DATA31至NORM_DATA36可以对应于从主机(图4中所示的300)接收的普通写入请求。普通写入请求可以是通过使用SLC方法来编程数据的请求。
在实施例中,当存储在SLC缓冲器110_1中的数据变为SLC缓冲器110_1的大小的80%或更大时,SLC缓冲器110_1可对存储在SLC缓冲器110_1中的数据之中的写入加速器数据的条数进行计数(或以其他方式确定写入加速器数据的大小)。
在图8A中,因为对应于写入加速器请求的数据是第三十一至第四十写入加速器数据WB_DATA31至WB_DATA40,所以存在10条写入加速器数据,得到为“10”的第二写入加速器计数WB_COUNT2。因此,可以从SLC缓冲器110_1输出“10”作为第二写入加速器计数WB_COUNT2,并且写入加速器控制器(图4中所示的210)可以接收和存储该第二写入加速器计数WB_COUNT2。
在实施例中,在写入加速器控制器(图4中所示的210)接收第二写入加速器计数WB_COUNT2之前,写入加速器控制器(图4中所示的210)可以接收第一写入加速器计数WB_COUNT1。当存储在SLC缓冲器110_1中的数据与图8B相同时,可从SLC缓冲器110_1输出第一写入加速器计数WB_COUNT1。
具体地,参照图8B,在SLC缓冲器110_1中存储的数据之中的、第十一至第十五写入加速器数据WB_DATA11至WB_DATA15可以对应于从主机(图4中所示的300)接收的写入加速器请求,并且第十一至第二十一普通数据NORM_DATA11至NORM_DATA21可以对应于从主机(图4中所示的300)接收的普通写入请求。普通写入请求可以是通过使用SLC方法来编程数据的请求。
在实施例中,当存储在SLC缓冲器110_1中的数据变为SLC缓冲器110_1的大小的80%或更大时,SLC缓冲器110_1可以对存储在SLC缓冲器110_1中的数据之中的写入加速器数据的条数进行计数(或以其他方式确定写入加速器数据的大小)。
在图8B中,因为对应于写入加速器请求的数据是第十一至第十五写入加速器数据WB_DATA11至WB_DATA15,所以存在5条写入加速器数据,得到为“5”的第一写入加速器计数WB_COUNT1。因此,可以从SLC缓冲器110_1输出“5”作为第一写入加速器计数WB_COUNT1,并且写入加速器控制器(图4中所示的210)可以接收和存储第一写入加速器计数WB_COUNT1。
在实施例中,在写入加速器控制器(图4中所示的210)接收和存储第一写入加速器计数WB_COUNT1之后,写入加速器控制器(图4中所示的210)可以接收和存储第二写入加速器计数WB_COUNT2。
当存储了第二写入加速器计数WB_COUNT2时,写入加速器控制器(图4中所示的210)可以确定第二写入加速器计数WB_COUNT2与先前存储的第一写入加速器计数WB_COUNT1之间的差是否为第二参考值或更大。
也就是说,由于存储在SLC缓冲器110_1中的数据变为SLC缓冲器110_1的大小的80%或更大,所以写入加速器控制器(图4中所示的210)可以确定当前存储的写入加速器计数与先前存储的写入加速器计数之间的差。换言之,当存储在SLC缓冲器110_1中的数据变为SLC缓冲器110_1的大小的80%或更大时,写入加速器控制器(图4中所示的210)可以执行用于执行静态损耗均衡的操作。
在实施例中,当第二写入加速器计数WB_COUNT2与第一写入加速器计数WB_COUNT1之间的差是第二参考值或更大时,写入加速器控制器(图4中所示的210)可以另外地确定SLC缓冲器110_1中的每个存储块的编程-擦除计数以及存储器装置(图4中所示的100)中包括的空闲块的数量。
在图8A和图8B中,假设第二参考值是“5”。
因此,由于第二写入加速器计数WB_COUNT2与第一写入加速器计数WB_COUNT1之间的差为“5”,所以写入加速器控制器(图4中所示的210)可以确定SLC缓冲器110_1中的每个存储块的编程-擦除计数以及存储器装置(图4中所示的100)中的空闲块的数量。
具体地,写入加速器控制器(图4中所示的210)可以确定SLC缓冲器110_1中的各个存储块的编程-擦除计数EW_COUNT之中的最大编程-擦除计数和平均编程-擦除计数之间的差是否为第三参考值或更大。
随后,当最大编程-擦除计数和平均编程-擦除计数之间的差是第三参考值或更大时,写入加速器控制器(图4中所示的210)可以确定存储器装置(图4中所示的100)中的空闲块的数量是否为第四参考值或更大。
图9是示出执行静态损耗均衡的过程的示图。
参照图9,图9示出在从存储器装置100接收到写入加速器计数WB_COUNT之后的存储器控制器200的操作。
在实施例中,当存储器装置100中包括的SLC缓冲器中存储的数据的大小变为第一参考值或更大时,可以从SLC缓冲器输出写入加速器计数WB_COUNT。SLC缓冲器可以是存储器装置100中的区域之中的、使用SLC方法来存储数据的区域。此外,第一参考值可对应于SLC缓冲器的大小的80%。
当写入加速器控制器210从存储器装置100接收写入加速器计数WB_COUNT时,写入加速器控制器210可以存储所接收的写入加速器计数WB_COUNT。随后,写入加速器控制器210可以确定上述写入加速器计数WB_COUNT和先前输出并存储的写入加速器计数WB_COUNT之间的差。
在实施例中,写入加速器控制器210可以确定当前的写入加速器计数WB_COUNT和先前的写入加速器计数WB_COUNT之间的差是否为第二参考值或更大。例如,写入加速器控制器210可以确定写入加速器计数WB_COUNT之间的差是否为“5”或更大。
当写入加速器计数WB_COUNT之间的差为第二参考值或更大时,写入加速器控制器210可以进行用于执行静态损耗均衡操作的附加确定。例如,写入加速器控制器210可确定SLC缓冲器中的每个存储块的编程-擦除计数EW_COUNT以及包括在存储器装置100中的空闲块的数量。
具体地,当前的写入加速器计数WB_COUNT和先前的写入加速器计数WB_COUNT之间的差为第二参考值或更大时,写入加速器控制器210可以向存储器装置100输出编程-擦除计数请求EW_COUNT_REQ,以用于请求包括在SLC缓冲器中的每个存储块的编程-擦除计数EW_COUNT。每当对存储块执行擦除操作时,该存储块的编程-擦除计数EW_COUNT可增加“1”。存储器装置100可响应于编程-擦除计数请求EW_COUNT_REQ而输出SLC缓冲器中的每个存储块的编程-擦除计数EW_COUNT。
随后,写入加速器控制器210可以基于从存储器装置100接收的编程-擦除计数EW_COUNT,来确定编程-擦除计数EW_COUNT中的最大值和编程-擦除计数EW_COUNT的平均值。
当由写入加速器控制器210确定的编程-擦除计数EW_COUNT中的最大值与编程-擦除计数EW_COUNT的平均值之间的差为第三参考值或更大时,写入加速器控制器210可以将空闲块信息请求FBLK_INF_REQ输出至存储器装置100。空闲块信息请求FBLK_INF_REQ可以指示存储器装置100输出包括在存储器装置100中的空闲块的数量。空闲块可以表示待分配给SLC缓冲器的存储块。
在实施例中,存储器装置100可以响应于从存储器控制器200接收的空闲块信息请求FBLK_INF_REQ而输出空闲块信息FBLK_INF。空闲块信息FBLK_INF可以包括关于存储器装置100中的空闲块的数量的信息。
当存储器装置100中的空闲块的数量超过第四参考值时,写入加速器控制器210可将用于执行静态损耗均衡操作的静态损耗均衡命令SWL_CMD输出到存储器装置100,并且将从存储器装置100接收的编程-擦除计数EW_COUNT输出到闪存转换层220。
在实施例中,闪存转换层220可以将物理块地址PBA输出到存储器装置,从而将普通数据存储在具有最大编程-擦除计数EW_COUNT的存储块中。存储器装置100可基于从闪存转换层220接收的物理块地址PBA,来执行与从写入加速器控制器210接收的静态损耗均衡命令SWL_CMD相对应的操作。
具体地,存储器装置100可将普通数据移动到SLC缓冲器中包括的存储块之中的、具有最大编程-擦除计数EW_COUNT的存储块,并且将存储在具有最大编程-擦除计数EW_COUNT的存储块中的写入加速器数据移动到具有相对较小的编程-擦除计数EW_COUNT的存储块。
通过上述过程,具有最大编程-擦除计数EW_COUNT的存储块的编程-擦除计数EW_COUNT不再快速增加,而仅具有相对较小的编程-擦除计数EW_COUNT的存储块的编程-擦除计数EW_COUNT可以增加。因此,存储块的编程-擦除计数EW_COUNT均匀地增加,从而可以增加存储器装置100的寿命。
图10是示出基于编程-擦除计数来执行静态损耗均衡的过程的示图。
参照图10,图10示出包括在存储器装置(图9中示出的100)中的存储块之中的、分配给SLC缓冲器的存储块以及每个存储块的编程-擦除计数EW_COUNT。在图10中,分配给SLC缓冲器的存储块可以是第一存储块BLK1至第四存储块BLK4。在另一实施例中,可以向SLC缓冲器分配多于或少于四个的存储块。
在图10中,假设第三参考值是“500”。
在实施例中,第一存储块BLK1的编程-擦除计数EW_COUNT可以是“1500”,第二存储块BLK2的编程-擦除计数EW_COUNT可以是“600”,第三存储块BLK3的编程-擦除计数EW_COUNT可以是“100”,并且第四存储块BLK4的编程-擦除计数EW_COUNT可以是“1000”。
在实施例中,写入加速器控制器(图9中所示的210)可以从存储器装置(图9中所示的100)接收并存储写入加速器计数,然后确定当前的写入加速器计数和先前存储的写入加速器计数之间的差。作为确定结果,在当前的写入加速器计数和先前的写入加速器计数之间的差是第二参考值或更大时,写入加速器控制器(图9中所示的210)可以从存储器装置(图9中所示的100)接收SLC缓冲器中的存储块的编程-擦除计数EW_COUNT。
参照图9,根据从写入加速器控制器(图9中所示的210)输出的编程-擦除计数请求EW_COUNT_REQ,写入加速器控制器(图9中所示的210)可以从存储器装置(图9中所示的100)接收SLC缓冲器中的各个存储块的编程-擦除计数EW_COUNT。
在实施例中,第一存储块BLK1至第四存储块BLK4的编程-擦除计数EW_COUNT之中的、第一存储块BLK1的编程-擦除计数可以为最大。另外,第一存储块BLK1至第四存储块BLK4的编程-擦除计数EW_COUNT的平均值AVE可以是“800”。
在实施例中,写入加速器控制器(图9中所示的210)可以确定编程-擦除计数EW_COUNT中的最大值MAX与编程-擦除计数EW_COUNT的平均值AVE之间的差是否为第三参考值或更大。
在图10中,因为假设第三参考值为“500”,所以编程-擦除计数EW_COUNT中的最大值MAX与编程-擦除计数EW_COUNT的平均值AVE之间的差(MAX-AVE)为“700(=1500-800)”,因此大于第三参考值。
因此,由于编程-擦除计数EW_COUNT中的最大值MAX与编程-擦除计数EW_COUNT的平均值AVE之间的差是第三参考值或更大,所以写入加速器控制器(图9中所示的210)可以确定存储器装置(图9中所示的100)中的空闲块的数量,以便执行静态损耗均衡操作。
图11是示出基于空闲块的数量来执行静态损耗均衡的过程的示图。
参照图11,图11是示出包括在存储器装置(图1所示的100)中的多个存储块的示图。在图11中,假设第四参考值是“5”。
在图11中,假设存储器装置(图1中所示的100)包括第一至第四十八存储块BLK1至BLK48。因此,存储器装置(图1所示的100)中包括的存储块的总数量可以为48。在另一实施例中,存储器装置(图1所示的100)可包括更多数量的存储块。
存储器装置100中的多个存储块之中的、第一至第四十存储块BLK1至BLK40可为开放块。开放块可以是被分配为存储数据的存储块。一些开放块可以被分配给使用SLC方法来存储数据的SLC缓冲器,并且一些开放块可以被分配给使用TLC方法来存储数据的存储区域。
当开放块中的多个页面被全部存储有数据时,开放块可变为封闭块。另外,当在存储数据的过程中发生编程失败时,开放块可变成坏块。当将开放块作为坏块处理时,坏块可以是运行时坏块RTBB。
存储器装置(图1中所示的100)中包括的多个存储块之中的第四十一至第四十八存储块BLK41至BLK48可为保留块。保留块可以是多个存储块之中的除了待存储数据的存储块之外的、添加到存储器装置(图1所示的100)的存储块。可在初始化存储器装置(图1中所示的100)时预设保留块的数量。也就是说,可在初始化存储器装置(图1中所示的100)时,将第四十一至第四十八存储块BLK41至BLK48指定为保留块。在另一实施例中,可在初始化之后设定保留块的数量并且根据存储器装置100的使用来改变保留块的数量。
在实施例中,可以将一些保留块设置为空闲块。空闲块可以是待分配给SLC缓冲器的存储块。因此,可以将存储器装置(图1中所示的100)中包括的一些存储块分配给SLC缓冲器。
在图11中,假设将保留块之中的第四十一至第四十五存储块BLK41至BLK45设置为空闲块。
因此,在图10中,由于编程-擦除计数EW_COUNT中的最大值MAX与编程-擦除计数EW_COUNT的平均值AVE之间的差是第三参考值或更大,所以写入加速器控制器(图9中所示的210)可以确定包括在存储器装置(图1中所示的100)中的空闲块的数量。具体地,写入加速器控制器(图9中所示的210)可以确定空闲块的数量是否为第四参考值或更大。
在图11中,由于第四十一至第四十五存储块BLK41至BLK45被分配为空闲块,所以空闲块的数量可以是“5”,其为第四参考值。因此,写入加速器控制器(图9中所示的210)可执行静态损耗均衡操作。
图12是示出通过静态损耗均衡来移动数据的示图。
参照图8A、图9和图12,图12示出在确定写入加速器控制器(图9中所示的210)将执行静态损耗均衡操作之后,通过静态损耗均衡操作来移动图8A中的数据的过程。
在图12中,假设SLC缓冲器中的第一存储块BLK1至第四存储块BLK4之中的第一存储块BLK1的编程-擦除计数EW_COUNT最大。
在实施例中,由于第一存储块BLK1的编程-擦除计数EW_COUNT最大,所以写入加速器控制器(图9中所示的210)可执行静态损耗均衡操作,使得在第一存储块BLK1中仅存储普通数据。
具体地,可以将存储在第一存储块BLK1中的数据之中的第三十一至第三十四写入加速器数据WB_DATA31至WB_DATA34移动至另一存储块。
例如,由于在SLC缓冲器中的存储块之中的第四存储块BLK4的第(2_4)至第(5_4)页面PAGE2_4至PAGE5_4中没有存储数据,所以可以将第三十一至第三十四写入加速器数据WB_DATA31至WB_DATA34分别存储在第四存储块BLK4的第(2_4)至第(5_4)页面PAGE2_4至PAGE5_4中。
随后,可以将普通数据移动到第一存储块BLK1。
例如,可以将存储在第二存储块BLK2中的数据之中的第三十二至第三十四普通数据NORM_DATA32至NORM_DATA34移动到第一存储块BLK1,并且可以将存储在第三存储块BLK3中的数据之中的第三十五普通数据NORM_DATA35移动到第一存储块BLK1。
在仅将普通数据存储在第一存储块BLK1中之后,第二存储块BLK2中的第三十二至第三十四普通数据NORM_DATA32至NORM_DATA34和第三存储块BLK3中的第三十五普通数据NORM_DATA35可以变为无效(INVALID)。
在实施例中,可以根据主机(图4中所示的300)的清除请求,将第二存储块BLK2中的第三十五和第三十六写入加速器数据WB_DATA35和WB_DATA36编程在存储区域中,然后进行擦除。可选地,即使在擦除第三十五和第三十六写入加速器数据WB_DATA35和WB_DATA36之前,也可以擦除第二存储块BLK2中的变为无效(INVALID)的部分,即该块内的无效页面(INVALID)。因此,第二存储块BLK2被部分地擦除。
此外,可以根据主机(图4中所示的300)的清除请求,将第三存储块BLK3中的第三十七至第三十九写入加速器数据WB_DATA37至WB_DATA39编程在存储区域中,然后进行擦除。可选地,即使在擦除第三十七至第三十九写入加速器数据WB_DATA37至WB_DATA39之前,也可以擦除第三存储块BLK3中的变为无效(INVALID)的部分,即该块内的无效页面(INVALID)。因此,第三存储块BLK3被部分地擦除。
通过上述过程,当在第一存储块BLK1中仅存储普通数据时,第一存储块BLK1的编程-擦除计数EW_COUNT可以不再增加。因此,SLC缓冲器中的存储块的编程-擦除计数EW_COUNT均匀地增加,从而可以增加存储器装置(图4中所示的100)的寿命。
图13是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图13,在操作S1301中,存储器控制器可以从主机接收写入加速器请求。写入加速器请求可指示存储器控制器输出表示以下的响应:在将从主机接收的数据存储在存储器装置的SLC缓冲器中之后,即使在全部编程了存储在SLC缓冲器中的数据之前,编程操作也已经完成。SLC缓冲器可以是使用SLC方法来存储数据的区域。
在操作S1303中,存储器控制器可将与写入加速器请求一起从主机接收的写入加速器数据存储在SLC缓冲器中。可以通过使用TLC方法,将存储在SLC缓冲器中的数据编程到存储区域中。
在操作S1305中,存储器控制器可存储写入加速器计数。每当存储在SLC缓冲器中的数据的大小为第一参考值或更大时,可从存储器装置输出写入加速器计数。第一参考值可对应于SLC缓冲器的大小的80%。写入加速器计数可表示在SLC缓冲器中存储的数据之中的、响应于写入加速器请求而存储的写入加速器数据的条数。写入加速器计数指示写入加速器数据的大小。例如,当每条写入加速器数据是单位大小时,总大小是写入加速器计数与单位大小的乘积。
在操作S1307中,存储器控制器可基于写入加速器数据的增加来检查每个存储块的编程-擦除计数,可基于存储在存储器控制器中的先前的写入加速器计数来确定写入加速器数据的增加。
在实施例中,当存储在存储器控制器中的当前写入加速器计数和先前写入加速器计数之间的差为第二参考值或更大时,存储器控制器可以检查每个存储块的编程-擦除计数。
在操作S1309中,存储器控制器可基于SLC缓冲器中的存储块的编程-擦除计数EW_COUNT的最大值与平均值之间的差来确定空闲块的数量。
例如,当编程-擦除计数EW_COUNT的最大值与平均值之间的差为第三参考值或更大时,存储器控制器可确定存储器装置中的存储块之中的空闲块的数量。空闲块可以表示在存储器装置中的存储块之中的待分配给SLC缓冲器的存储块。
在操作S1311中,存储器控制器可基于空闲块的数量来执行用于静态损耗均衡的操作。例如,当存储器装置中的空闲块的数量是第四参考值或更大时,存储器控制器可以执行损耗均衡操作,使得在具有最大编程-擦除计数的存储块中仅存储普通数据。
具体地,在SLC缓冲器内,可以将具有最大编程-擦除计数的存储块中存储的写入加速器数据移动到另一存储块,并且将该另一存储块中存储的数据之中的普通数据移动到具有最大编程-擦除计数的存储块。写入加速器数据可以是与主机的写入加速器请求相对应的数据,并且普通数据可以是与主机的普通写入请求相对应的数据。普通写入请求可指示存储器装置通过使用SLC方法来存储数据。
图14是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图13和图14,在操作S1305中,存储器控制器可存储写入加速器计数。每当存储在SLC缓冲器中的数据的大小为第一参考值或更大时,可从存储器装置输出写入加速器计数。第一参考值可对应于SLC缓冲器的大小的80%。
可通过对存储在SLC缓冲器中的数据之中的、响应于写入加速器请求而存储的写入加速器数据的条数进行计数来获得写入加速器计数。
在操作S1403中,存储器控制器可确定当前存储的写入加速器计数与先前存储的写入加速器计数之间的差是否为第二参考值或更大。当前的写入加速器计数和先前的写入加速器计数之间的差可表示写入加速器数据的增加。也就是说,当较大量的写入加速器数据被存储在SLC缓冲器中时,写入加速器计数之间的差可增加。当较少量的写入加速器数据存储在SLC缓冲器中时,当前的写入加速器计数和先前的写入加速器计数之间的差可减小。
在当前的写入加速器计数和先前的写入加速器计数之间的差是第二参考值或更大时,存储器控制器可以进行到操作S1405。
在操作S1405中,存储器控制器可以确定SLC缓冲器中的存储块的编程-擦除计数EW_COUNT的最大值和平均值之间的差是否为第三参考值或更大。当仅特定存储块的编程-擦除计数较大时,存储器控制器可基于编程-擦除计数EW_COUNT的最大值和平均值之间的差来执行损耗均衡操作,使得SLC缓冲器中的每个存储块的编程-擦除计数可以均匀地增加。
当编程-擦除计数EW_COUNT的最大值和平均值之间的差是第三参考值或更大时,存储器控制器可以进行到操作S1407。
在操作S1407中,存储器控制器可确定存储器装置中的空闲块的数量是否为第四参考值或更大。空闲块可以是待分配给SLC缓冲器的存储块。也就是说,当待被分配给SLC缓冲器的空闲块的数量足够时,执行损耗均衡操作,因此存储器控制器可检查包括在存储器装置中的空闲块的数量。
当空闲块的数量是第四参考值或更大时,存储器控制器可进行到操作S1311。
在操作S1311中,存储器控制器可基于空闲块的数量执行用于静态损耗均衡的操作。例如,存储器控制器可以执行损耗均衡操作,使得在具有最大编程-擦除计数的存储块中仅存储普通数据。
具体地,在SLC缓冲器内,可以将具有最大编程-擦除计数的存储块中存储的写入加速器数据移动到另一存储块,并且可以将该另一存储块中存储的数据之中的普通数据移动到具有最大编程-擦除计数的存储块。
图15是示出图1所示的存储器控制器的另一实施例的示图。
参照图15,存储器控制器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可接收逻辑块地址LPA,并且使用映射表将逻辑块地址LPA转换为物理块地址PBA。根据映射单元,可以使用FTL的几种地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010被配置为使从主机接收的数据随机化。例如,处理器1010可使用随机化种子来随机化从主机接收的数据。经随机化的数据被作为待存储到存储器装置的数据来提供,以被编程在存储器单元阵列中。
处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
在实施例中,当存储器装置(图4中所示的100)执行写入加速器操作时,处理器1010可执行损耗均衡操作以防止存储器装置(图4中所示的100)的SLC缓冲器中的多个存储块之中的特定存储块的编程-擦除计数增加。
写入加速器操作对应于从主机(图4中所示的300)接收的写入加速器请求,并可包括将所有编程数据存储在存储器装置(图4中所示的100)的SLC缓冲器中,然后输出编程完成响应,从而提高编程速度。SLC缓冲器可以是存储器装置(图4中所示的100)的区域之中的、使用SLC方法来存储数据的区域,并且每当在存储块中执行擦除操作时,编程-擦除计数可以增加“1”。
在实施例中,当具有设定大小(即,对应于第一参考值的大小)的数据存储在SLC缓冲器中时,可从SLC缓冲器输出写入加速器计数,该写入加速器计数表示存储在SLC缓冲器中的写入加速器数据的大小。可以将所输出的写入加速器计数存储在处理器1010或存储器缓冲器1020中。在写入加速器操作中,在使用SLC方法将写入加速器数据存储在SLC缓冲器中之后,可以使用TLC方法将写入加速器数据编程到存储区域中。
随后,每当将写入加速器计数存储在处理器1010或存储器缓冲器1020中时,处理器1010可以确定所输出的写入加速器计数与先前存储的写入加速器计数之间的差是否为第二参考值或更大。
当写入加速器计数之间的差为第二参考值或更大时,处理器1010可确定从存储器装置(图4中所示的100)接收的编程-擦除计数EW_COUNT的最大值与平均值之间的差。编程-擦除计数是对SLC缓冲器中的多个存储块中的每一个执行擦除操作的次数,并且可以每当对存储块执行擦除操作时增加“1”。
随后,当编程-擦除计数EW_COUNT的最大值和平均值之间的差是第三参考值或更大时,处理器1010可以确定存储器装置(图4中所示的100)中的空闲块的数量。具体地,由于空闲块表示待分配给SLC缓冲器的存储块,即由于仅当确保了足够数量的空闲块时才可以执行损耗均衡操作,所以处理器1010可以确定存储器装置(图4中所示的100)中的空闲块的数量。
当空闲块的数量是第四参考值或更大时,处理器1010可执行用于静态损耗均衡的操作。
例如,处理器1010可以将存储在具有最大编程-擦除计数的存储块中的写入加速器数据移动到另一存储块,并且将存储在该另一存储块中的数据之中的普通数据移动到具有最大编程-擦除计数的存储块。普通数据不同于写入加速器数据,并且可以是使用SLC方法进行编程的数据。
通过上述过程,因为在具有最大编程-擦除计数的存储块中仅存储普通数据,所以编程-擦除计数可不再增加。因此,SLC缓冲器中的每一个存储块的编程-擦除计数均匀地增加,从而可增加存储器装置(图4中所示的100)的寿命。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可执行ECC操作。ECC电路1030可对将通过存储器接口1060而写入在存储器装置中的数据执行ECC编码。经ECC编码的数据可通过存储器接口1060传送到存储器装置。ECC电路1030可对通过存储器接口1060从存储器装置接收的数据执行ECC解码。在示例中,ECC电路1030可作为存储器接口1060的组件而包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信协议中的至少一种与主机通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、火线、***组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、嵌入式MMC(eMMC)的多媒体卡(MMC)、双列直插式存储器模块(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。
图16是示出根据本公开的实施例的应用存储装置的存储卡***的框图。
参照图16,存储卡***2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100被配置为访问存储器装置2200。例如,存储器控制器2100被配置为控制存储器装置2200的读取、写入、擦除和后台操作。存储器控制器2100被配置为提供存储器装置2200与主机之间的接口。存储器控制器2100被配置为驱动用于控制存储器装置2200的固件。存储器装置2200可与存储器装置100(图1中所示的100)相同地实施。
在示例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正器233的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可根据特定通信协议与外部装置(例如,主机)通信。在示例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、嵌入式MMC(eMMC)的多媒体卡(MMC)、***组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和/或NVMe。
在示例中,存储器装置2200可以利用诸如以下的各种非易失性存储器装置中的任何一种来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中以构成存储卡,诸如PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
在实施例中,当存储器装置2200执行写入加速器操作时,存储器控制器2100可以执行损耗均衡操作,以防止存储器装置2200的SLC缓冲器中的多个存储块之中的特定存储块的编程-擦除计数增加。
写入加速器操作对应于从主机(图4中所示的300)接收的写入加速器请求,并且可包括将所有编程数据存储在存储器装置2200的SLC缓冲器中,然后输出编程完成响应,从而提高编程速度。SLC缓冲器可以是存储器装置2200的区域之中的使用SLC方法来存储数据的区域,并且每当在存储块中执行擦除操作时,编程-擦除计数可以增加“1”。
在实施例中,当具有设定大小(即,对应于第一参考值的大小)的数据存储在SLC缓冲器中时,可从SLC缓冲器输出写入加速器计数,该写入加速器计数表示存储在SLC缓冲器中的写入加速器数据的大小。可以将所输出的写入加速器计数存储在存储器控制器2100中。通过写入加速器操作,在使用SLC方法将写入加速器数据存储在SLC缓冲器中之后,可以通过使用TLC方法将写入加速器数据编程到存储区域中。
随后,每当将写入加速器计数存储在存储器控制器2100中时,存储器控制器2100可确定所输出的写入加速器计数与先前存储的写入加速器计数之间的差是否为设定的第二参考值或更大。
当写入加速器计数之间的差是第二参考值或更大时,存储器控制器2100可确定从存储器装置2200接收的编程-擦除计数EW_COUNT的最大值与平均值之间的差。编程-擦除计数是对包括在SLC缓冲器中的多个存储块中的每一个执行擦除操作的次数,并且可以每当对存储块执行擦除操作时增加“1”。
随后,当编程-擦除计数EW_COUNT的最大值与平均值之间的差是第三参考值或更大时,存储器控制器2100可以确定包括在存储器装置2200中的空闲块的数量。具体地,由于空闲块表示待被分配给SLC缓冲器的存储块,即由于仅当确保了足够数量的空闲块时才可以执行损耗均衡操作,所以存储器控制器2100可确定包括在存储器装置2200中的空闲块的数量。
当空闲块的数量是第四参考值或更大时,存储器控制器2100可以执行用于静态损耗均衡的操作。
例如,存储器控制器2100可以将存储在具有最大编程-擦除计数的存储块中的写入加速器数据移动到另一存储块,并且将存储在该另一存储块中的数据之中的普通数据移动到具有最大编程-擦除计数的存储块。普通数据不同于写入加速器数据,并且可使用SLC方法进行编程。
通过上述过程,因为在具有最大编程-擦除计数的存储块中仅存储普通数据,所以编程-擦除计数可不再增加。因此,SLC缓冲器中的每一个存储块的编程-擦除计数均匀地增加,从而可增加存储器装置2200的寿命。
图17是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)***的框图。
参照图17,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与SSD3200之间的接口。例如,信号SIG可以由诸如以下的至少一个接口定义:通用串行总线(USB)、嵌入式MMC(eMMC)的多媒体卡(MMC)、***组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WI-FI、蓝牙和/或NVMe。
在实施例中,当多个闪速存储器3221至322n中的每一个执行写入加速器操作时,SSD控制器3210可以执行损耗均衡操作,以防止多个闪速存储器3221至322n中的每一个的SLC缓冲器中的多个存储块之中的特定存储块的编程-擦除计数增加。
写入加速器操作对应于从主机3100接收的写入加速器请求,并且可以包括将所有编程数据存储在多个闪速存储器3221至322n中的每一个的SLC缓冲器中,然后输出编程完成响应,从而提高编程速度。SLC缓冲器可以是多个闪速存储器3221至322n中的每一个中的区域之中的使用SLC方法来存储数据的区域,并且每当在存储块中执行擦除操作时,编程-擦除计数可以增加“1”。
在实施例中,当具有设定大小(即,对应于第一参考值的大小)的数据存储在SLC缓冲器中时,可从SLC缓冲器输出写入加速器计数,该写入加速器计数表示存储在SLC缓冲器中的写入加速器数据的大小。所输出的写入加速器计数可以存储在SSD控制器3210中。通过写入加速器操作,在使用SLC方法将写入加速器数据存储在SLC缓冲器中之后,可以通过使用TLC方法将写入加速器数据编程在存储区域中。
随后,每当将写入加速器计数存储在SSD控制器3210中时,SSD控制器3210可以确定所输出的写入加速器计数与先前存储的写入加速器计数之间的差是否为第二参考值或更大。
当写入加速器计数之间的差是第二参考值或更大时,SSD控制器3210可以确定从多个闪速存储器3221至322n接收的编程-擦除计数EW_COUNT的最大值和平均值之间的差。编程-擦除计数是对包括在SLC缓冲器中的多个存储块中的每一个执行擦除操作的次数,并且可以每当对存储块执行擦除操作时增加“1”。
随后,当编程-擦除计数EW_COUNT的最大值和平均值之间的差是第三参考值或更大时,SSD控制器3210可以确定包括在多个闪速存储器3221至322n中的空闲块的数量。具体地,由于空闲块表示待分配给SLC缓冲器的存储块,即由于仅当确保了足够数量的空闲块时才可以执行损耗均衡操作,所以SSD控制器3210可以确定包括在多个闪速存储器3221至322n中的空闲块的数量。
当空闲块的数量为第四参考值或更大时,SSD控制器3210可执行用于静态损耗均衡的操作。
例如,SSD控制器3210可以将存储在具有最大编程-擦除计数的存储块中的写入加速器数据移动到另一存储块,并且将存储在该另一存储块中的数据之中的普通数据移动到具有最大编程-擦除计数的存储块。普通数据不同于写入加速器数据,并且可使用SLC方法来编程。
通过上述过程,因为在具有最大编程-擦除计数的存储块中仅存储普通数据,所以编程-擦除计数可不再增加。因此,SLC缓冲器中包括的每一个存储块的编程-擦除计数均匀地增加,从而可以增加多个闪速存储器3221至322n的寿命。
辅助电源3230通过电源连接器3002联接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可提供SSD 3200的电力。在示例中,辅助电源3230可设置在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的非易失性存储器中的任意一种。
图18是示出根据本公开的实施例的应用存储装置的用户***的框图。
参照图18,用户***4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动包括在用户***4000中的组件、操作***(OS)、用户程序等。在示例中,应用处理器4100可以包括用于控制包括在用户***4000中的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上***(SoC)。
存储器模块4200可以作为用户***4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器来操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR2 SDRM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和/或LPDDR3 SDRAM的各种易失性随机存取存储器中的任意一种,或者诸如PRAM、ReRAM、MRAM和/或FRAM的各种非易失性随机存取存储器中的任意一种。在示例中,可以基于堆叠封装(PoP)将应用处理器4100和存储器模块4200设置为一个半导体封装。
网络模块4300可以与外部装置通信。在示例中,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信***(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和Wi-Fi。在示例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将所存储的数据传输到应用处理器4100。在示例中,存储模块4400可以利用诸如以下的非易失性半导体存储器装置来实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。在示例中,存储模块4400可以被设置为诸如用户***4000的存储卡或外部驱动器的可移动驱动器。
在示例中,存储模块4400可以包括多个非易失性存储器装置,每个非易失性存储器装置可以与参照图2和图3描述的存储器装置相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
在实施例中,当存储模块4400执行写入加速器操作时,应用处理器4100可以执行损耗均衡操作,以防止存储模块4400的SLC缓冲器中的多个存储块之中的特定存储块的编程-擦除计数增加。
写入加速器操作对应于从主机(图4中所示的300)接收的写入加速器请求,并且可包括将所有编程数据存储在存储模块4400的SLC缓冲器中,然后输出编程完成响应,从而提高编程速度。SLC缓冲器可以是存储模块4400的区域之中的使用SLC方法存储数据的区域,并且每当在存储块中执行擦除操作时,编程-擦除计数可以增加“1”。
在实施例中,当具有设定大小(即,对应于第一参考值的大小)的数据存储在SLC缓冲器中时,可从SLC缓冲器输出写入加速器计数,该写入加速器计数表示存储在SLC缓冲器中的写入加速器数据的大小。所输出的写入加速器计数可存储在应用处理器4100中。通过写入加速器操作,在使用SLC方法将写入加速器数据存储在SLC缓冲器中之后,可以通过使用TLC方法将写入加速器数据编程在存储区域中。
随后,每当将写入加速器计数存储在应用处理器4100中时,应用处理器4100可以确定所输出的写入加速器计数与先前存储的写入加速器计数之间的差是否为第二参考值或更大。
当写入加速器计数之间的差是第二参考值或更大时,应用处理器4100可以确定从存储模块4400接收的编程-擦除计数EW_COUNT的最大值和平均值之间的差。编程-擦除计数是对包括在SLC缓冲器中的多个存储块中的每一个执行擦除操作的次数,并且可以每当对存储块执行擦除操作时增加“1”。
随后,当编程-擦除计数EW_COUNT的最大值和平均值之间的差为第三参考值或更大时,应用处理器4100可以确定包括在存储模块4400中的空闲块的数量。具体地,由于空闲块表示待分配给SLC缓冲器的存储块,即由于仅当确保了有足够数量的空闲块时才可以执行损耗均衡操作,所以应用处理器4100可以确定包括在存储模块4400中的空闲块的数量。
当空闲块的数量是第四参考值或更大时,应用处理器4100可以执行用于静态损耗均衡的操作。
例如,应用处理器4100可以将存储在具有最大编程-擦除计数的存储块中的写入加速器数据移动到另一个存储块,并且将存储在该另一个存储块中的数据之中的普通数据移动到具有最大编程-擦除计数的存储块。普通数据不同于写入加速器数据,并且可使用SLC方法进行编程。
通过上述过程,因为在具有最大编程-擦除计数的存储块中仅存储普通数据,所以编程-擦除计数可不再增加。因此,包括在SLC缓冲器中的每一个存储块的编程-擦除计数均匀地增加,从而可以增加存储模块4400的寿命。
用户接口4500可以包括用于向应用处理器4100输入数据或命令或者向外部装置输出数据的接口。在示例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,在写入加速器操作中,基于存储在缓冲器中的写入加速器数据的大小、编程-擦除计数和空闲块的数量来执行损耗均衡操作,从而可延长存储器装置的寿命。
尽管已经参照本公开的特定实施例示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同方案限定的本发明的精神和范围的情况下,可以进行形式和细节上的各种改变。因此,本发明的范围不限于上述实施例,而是由包括其等同方案的所附权利要求来确定。
在上述实施例中,并非所有操作都必须需要被执行,并且在一些实例中,某些步骤的部分可以被省略。此外,不一定需要以所描述的顺序执行步骤。作为示例提供了所公开的实施例,以便于理解本发明,而不是限制本发明。即,对本领域技术人员应当显而易见的是,可以基于本公开的技术范围进行各种修改。
尽管在本文中使用了特定术语,但是它们仅用于解释本公开的实施例。本发明不受任何这样的术语或任何特定细节的限制,因为在本公开的精神和范围内可进行许多变型。对于本领域技术人员应当显而易见的是,除了本文中公开的实施例,还可以基于本公开的技术范围进行各种修改。
Claims (20)
1.一种存储器控制器,所述存储器控制器控制包括多个存储块的存储器装置,所述存储器控制器:
控制所述存储器装置以使用单层单元方法将数据存储在所述存储器装置中的区域之中的第一区域中,其中所述数据对应于从主机接收的写入加速器请求,
基于存储在所述第一区域中的数据的大小、所述第一区域中的每个存储块的编程-擦除计数和所述存储器装置中的空闲块的数量,来执行损耗均衡操作;以及
形成从所述主机接收的逻辑块地址和与所述第一区域相对应的物理块地址之间的映射关系。
2.根据权利要求1所述的存储器控制器,其中所述写入加速器请求指示当与所述写入加速器请求相对应的数据全部被存储在所述第一区域中时,将编程完成响应输出到所述主机。
3.根据权利要求1所述的存储器控制器,
其中所述数据的大小对应于所述写入加速器请求,以及
其中所述存储器控制器存储所述数据的大小,并且确定当前存储的大小与先前存储的大小之间的差是否为第二参考值或更大。
4.根据权利要求3所述的存储器控制器,其中当所述当前存储的大小与所述先前存储的大小之间的差是所述第二参考值或更大时,所述存储器控制器向所述存储器装置输出编程-擦除计数请求,以获取所述第一区域中的每个存储块的所述编程-擦除计数。
5.根据权利要求4所述的存储器控制器,其中针对所述第一区域中的每个存储块来确定所述编程-擦除计数,并且每当对相应的存储块执行擦除操作时增加所述相应存储块的所述编程-擦除计数。
6.根据权利要求4所述的存储器控制器,其中当所述存储器控制器从所述存储器装置接收与所述编程-擦除计数请求相对应的编程-擦除计数时,所述存储器控制器确定所接收的编程-擦除计数的最大值与平均值之间的差是否为第三参考值或更大。
7.根据权利要求6所述的存储器控制器,其中当所接收的编程-擦除计数的所述最大值与所述平均值之间的差是所述第三参考值或更大时,所述存储器控制器向所述存储器装置输出空闲块信息请求,以确定所述存储器装置中的空闲块的数量。
8.根据权利要求7所述的存储器控制器,其中在所述存储器控制器接收关于所述空闲块的数量的信息之后,所述存储器控制器确定所述存储器装置中的所述空闲块的数量是否为第四参考值或更大。
9.根据权利要求8所述的存储器控制器,其中当所述存储器装置中的所述空闲块的数量是所述第四参考值或更大时,所述存储器控制器向所述存储器装置输出静态损耗均衡命令,以使得所述第一区域中的每个存储块的所述编程-擦除计数均匀地增加。
10.根据权利要求9所述的存储器控制器,其中闪存转换层将所述逻辑块地址转换为所述物理块地址,以移动所述第一区域中的存储块之中的具有最大编程-擦除计数的第一存储块中存储的数据。
11.根据权利要求10所述的存储器控制器,其中所述存储器控制器进一步将所述逻辑块地址转换为所述物理块地址以:
将所述第一存储块中存储的数据之中的、与所述写入加速器请求相对应的数据移动到所述第一区域中的存储块之中的另一存储块,并且
将所述另一存储块中存储的数据之中的、除了与所述写入加速器请求相对应的数据之外的数据移动到所述第一存储块。
12.根据权利要求11所述的存储器控制器,其中所述存储器控制器控制所述存储器装置,使得在将与所述写入加速器请求相对应的数据编程到存储区域中之后,擦除除了所述第一存储块之外的其它存储块,或者在将与所述写入加速器请求相对应的数据编程到所述存储区域中之前,部分地擦除除了所述第一存储块之外的其它存储块。
13.一种操作存储器控制器的方法,所述存储器控制器控制包括多个存储块的存储器装置,所述方法包括:
从主机接收写入加速器请求;
将与所述写入加速器请求相对应的数据存储在所述存储器装置中的区域之中的、使用单层单元方法的第一区域中;
每当存储在所述第一区域中的数据的大小是第一参考值或更大时,存储写入加速器计数,所述写入加速器计数指示从所述存储器装置输出的、与所述写入加速器请求相对应的数据的大小;并且
基于所述写入加速器计数、所述第一区域中的每个存储块的编程-擦除计数和所述存储器装置中的空闲块的数量,来执行损耗均衡操作。
14.根据权利要求13所述的方法,其中存储所述写入加速器计数包括:每当存储所述写入加速器计数时,确定当前存储的写入加速器计数与先前存储的写入加速器计数之间的差是否为第二参考值或更大。
15.根据权利要求14所述的方法,进一步包括当所述当前存储的写入加速器计数与所述先前存储的写入加速器计数之间的差是所述第二参考值或更大时,向所述存储器装置输出编程-擦除计数请求,以获取所述第一区域中的每个存储块的所述编程-擦除计数。
16.根据权利要求15所述的方法,进一步包括当从所述存储器装置接收到与所述编程-擦除计数请求相对应的编程-擦除计数时,确定所接收的编程-擦除计数的最大值与平均值之间的差是否为第三参考值或更大。
17.根据权利要求16所述的方法,进一步包括:
当所接收的编程-擦除计数的所述最大值与所述平均值之间的差是所述第三参考值或更大时,向所述存储器装置输出空闲块信息请求,以确定包括在所述存储器装置中的空闲块的数量;以及
基于从所述存储器装置接收的关于所述空闲块的数量的信息,确定所述存储器装置中的所述空闲块的数量是否为第四参考值或更大。
18.根据权利要求17所述的方法,其中执行所述损耗均衡操作包括:当所述存储器装置中包括的所述空闲块的数量是所述第四参考值或更大时,向所述存储器装置输出静态损耗均衡命令,以使得所述第一区域中的每个存储块的所述编程-擦除计数均匀地增加。
19.根据权利要求18所述的方法,其中执行所述损耗均衡操作包括:
将具有所述最大值的第一存储块中存储的数据之中的、与所述写入加速器请求相对应的数据移动到所述第一区域中的存储块之中的另一存储块;并且
将所述另一存储块中存储的数据之中的、除了与所述写入加速器请求相对应的数据之外的数据移动到所述第一存储块。
20.一种控制器的操作方法,所述操作方法包括:
控制存储器装置以将数据编程到存储块中,所编程的数据包括第一数据和第二数据;并且
控制所述存储器装置在以下情况下,在所述存储块之中,将所述第一数据从第一存储块移动到第二存储块并且将所述第二数据从第三存储块移动到所述第一存储块:
所述第一数据的量增加到大于第二阈值,每当所编程的数据的量变得大于第一阈值时检测所述第一数据的量,
所述存储块的编程-擦除计数的最大值和平均值之间的差大于第三阈值,以及
所述存储器装置内的空闲块的数量大于第四阈值,
其中所述第一存储块具有所述最大值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200059819A KR20210142981A (ko) | 2020-05-19 | 2020-05-19 | 메모리 컨트롤러 및 그 동작 방법 |
KR10-2020-0059819 | 2020-05-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113688066A true CN113688066A (zh) | 2021-11-23 |
Family
ID=78576288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110191001.9A Withdrawn CN113688066A (zh) | 2020-05-19 | 2021-02-19 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11693583B2 (zh) |
KR (1) | KR20210142981A (zh) |
CN (1) | CN113688066A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7176488B2 (ja) * | 2019-07-08 | 2022-11-22 | 株式会社デンソー | データ保存装置、及びデータ保存プログラム |
US20230315661A1 (en) * | 2022-04-01 | 2023-10-05 | Texas Instruments Incorporated | Methods and apparatus to configure an integrated circuit using a direct memory access controller |
WO2024112015A1 (ko) * | 2022-11-21 | 2024-05-30 | 삼성전자 주식회사 | 저장 장치의 제조 방법 및 전자 장치 |
CN115586874B (zh) * | 2022-11-24 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
CN117785071B (zh) * | 2024-02-27 | 2024-05-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其性能优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190258569A1 (en) * | 2017-01-12 | 2019-08-22 | Micron Technology, Inc. | Directed sanitization of memory |
CN110765029A (zh) * | 2018-07-27 | 2020-02-07 | 爱思开海力士有限公司 | 控制器及用于操作该控制器的方法 |
US20200081828A1 (en) * | 2018-09-06 | 2020-03-12 | Micron Technology, Inc. | Maintaining data consistency in a memory sub-system that uses hybrid wear leveling operations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005267821A (ja) * | 2004-03-22 | 2005-09-29 | Toshiba Corp | 不揮発性半導体メモリ |
US9588883B2 (en) * | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
KR20140096875A (ko) | 2013-01-29 | 2014-08-06 | 삼성전자주식회사 | 메모리 시스템의 및 그것의 블록 관리 방법 |
KR20160096435A (ko) | 2015-02-05 | 2016-08-16 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
JP7030463B2 (ja) * | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
US11017847B2 (en) * | 2019-08-01 | 2021-05-25 | Micron Technology, Inc. | On-demand high performance mode for memory write commands |
US10915394B1 (en) * | 2019-09-22 | 2021-02-09 | Apple Inc. | Schemes for protecting data in NVM device using small storage footprint |
-
2020
- 2020-05-19 KR KR1020200059819A patent/KR20210142981A/ko unknown
- 2020-11-04 US US17/088,821 patent/US11693583B2/en active Active
-
2021
- 2021-02-19 CN CN202110191001.9A patent/CN113688066A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190258569A1 (en) * | 2017-01-12 | 2019-08-22 | Micron Technology, Inc. | Directed sanitization of memory |
CN110765029A (zh) * | 2018-07-27 | 2020-02-07 | 爱思开海力士有限公司 | 控制器及用于操作该控制器的方法 |
US20200081828A1 (en) * | 2018-09-06 | 2020-03-12 | Micron Technology, Inc. | Maintaining data consistency in a memory sub-system that uses hybrid wear leveling operations |
Also Published As
Publication number | Publication date |
---|---|
US11693583B2 (en) | 2023-07-04 |
US20210365202A1 (en) | 2021-11-25 |
KR20210142981A (ko) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11543984B2 (en) | Memory controller, storage device and operating method thereof | |
CN110389720B (zh) | 存储装置及其操作方法 | |
US11693583B2 (en) | Memory controller and operating method thereof | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN113539331B (zh) | 存储器装置及其操作方法 | |
US11194712B2 (en) | Memory controller and operating method for performing garbage collection operation in memory devices | |
US11481272B2 (en) | Memory controller and method of operating the same | |
US11543998B2 (en) | Memory controller for controlling different numbers of memory devices and storage device including the same | |
US11687450B2 (en) | Storage device for translating address and operating method thereof | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN113110798A (zh) | 存储器控制器及其操作方法 | |
CN113223573A (zh) | 存储器控制器及其操作方法 | |
CN113096708A (zh) | 存储器装置及其操作方法 | |
CN115588451A (zh) | 存储装置及其操作方法 | |
US20230244607A1 (en) | Memory controller and method of operating the same | |
CN113806240A (zh) | 存储装置及其操作方法 | |
US11989446B2 (en) | Host device, storage device, and method of operating the same | |
US11625324B2 (en) | Storage device for moving valid data to an open memory block based on a valid page list and operating method thereof | |
CN113342708B (zh) | 存储器控制器及其操作方法 | |
US11269767B2 (en) | Memory controller and operating method thereof | |
CN115083491A (zh) | 存储器控制器和操作该存储器控制器的方法 | |
CN114489467A (zh) | 存储器控制器及其操作方法 | |
CN113744792A (zh) | 存储器控制器及其操作方法 | |
US20220351798A1 (en) | Memory device and operating method of the memory device | |
US20210034522A1 (en) | Storage device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211123 |
|
WW01 | Invention patent application withdrawn after publication |