CN114328294A - 控制器、其操作方法以及包括控制器的存储器系统 - Google Patents
控制器、其操作方法以及包括控制器的存储器系统 Download PDFInfo
- Publication number
- CN114328294A CN114328294A CN202111018071.0A CN202111018071A CN114328294A CN 114328294 A CN114328294 A CN 114328294A CN 202111018071 A CN202111018071 A CN 202111018071A CN 114328294 A CN114328294 A CN 114328294A
- Authority
- CN
- China
- Prior art keywords
- page
- target page
- controller
- bit
- pages
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开涉及一种存储器系统,该存储器系统包括:存储器装置,包括多个页面;以及控制器,适于将响应于从主机接收的写入命令而输入的数据存储在多个页面之中相应的页面中,其中控制器根据写入命令的类型来生成和管理指示所输入的数据的顺序信息的位图表。
Description
相关申请的交叉引用
本申请要求于2020年9月28日提交的申请号为10-2020-0125764的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例涉及一种能够管理数据的顺序信息的控制器及其操作方法。
背景技术
近来,计算环境的范例已经转变为可以随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用采用存储器装置的存储器系统,即,数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
因为使用存储器装置的数据存储装置不具有机械驱动器,所以该数据存储装置具有优异的稳定性和耐久性、高信息访问速度以及低功耗。作为具有这些优点的存储器系统的示例,数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
各个实施例涉及一种能够根据来自主机的请求使用位图表来设置数据的顺序信息并基于该顺序信息来管理数据的控制器及其操作方法。
在实施例中,一种存储器系统可以包括:存储器装置,包括多个页面;以及控制器,适于将响应于从主机接收的写入命令而输入的数据存储在多个页面之中的相应页面中,其中控制器根据写入命令的类型来生成和管理指示所输入的数据的顺序信息的位图表。
在实施例中,一种控制器可以包括:地址映射管理组件,适于管理地址映射表,该地址映射表指示写入数据的逻辑地址与多个页面之中存储写入数据的页面的物理地址之间的关系;位图管理组件,适于基于写入命令的类型来设置指示写入数据的顺序信息的位,并且管理指示写入数据的设置位与存储写入数据的页面之间的关系的位图表;以及后台控制组件,适于基于位图表对多个页面执行后台操作。
在实施例中,一种控制器的操作方法可以包括:检测多个页面之中的目标页面;检查位图表中与检测到的目标页面相对应的位的逻辑电平;并且基于检查结果,检测与检测到的目标页面相邻的页面作为目标页面。
在实施例中,一种存储器系统可以包括:存储器装置,包括多个页面;以及存储器控制器,适于:从主机接收与写入命令相关联的多条写入数据;将多条写入数据存储在多个页面之中相应的页面中;基于写入命令的类型生成位图表,该位图表包括分别对应于多条写入数据的多个位,每个位指示是否在处理先前的一条写入数据之后将处理相应的一条写入数据;使用位图表选择相应的页面之中针对后台操作的目标页面以及与该目标页面相邻的一个或多个页面,位图表中的目标页面和相邻页面的位各自具有相同的值;并且对目标页面和相邻页面执行后台操作。
根据实施例,控制器和数据处理系统可以生成指示存储器装置中存储的数据的顺序信息的位图表,并且同时处理彼此相关联的数据,而不管存储器装置的各种操作如何。这样的操作可以根据来自主机的请求减少控制器的开销,并且将存储器装置中存储的数据快速地提供到主机。
附图说明
图1是示出根据实施例的包括存储器系统的数据处理系统的框图。
图2是示出诸如图1所示的存储器的示图。
图3是描述诸如图2所示的位图管理组件的操作的示图。
图4是描述诸如图2所示的后台控制组件的操作的示图。
图5是示出根据实施例的控制器的操作的流程图。
具体实施方式
下面参照附图详细描述各个实施例。下面的描述集中于本发明的特征和方面;可以省略对公知材料的描述,以免不必要地模糊这些特征和方面。
图1是示出根据实施例的数据处理系统100的框图。参照图1,数据处理系统100可以包括主机110和存储器系统120。
例如,主机110可以是各种电子装置中的任意一种,包括诸如移动电话、MP3播放器或膝上型计算机的各种便携式电子装置中的任意一种,以及诸如台式计算机、游戏机、TV或投影仪的各种大型电子装置中的任意一种。此外,主机110涵盖所有合适的有线和无线电子装置。主机110包括一个或多个操作系统(OS),并且OS管理和控制主机110的全部功能和操作,并且提供主机110与数据处理系统100或存储器系统120的用户之间的交互。
OS可以支持与用户的使用目的相对应的功能和操作。例如,可以根据主机110的移动性将OS划分为通用OS和移动OS。在OS之中,可以根据用户环境将通用OS划分为个人OS和企业OS。例如,个人OS可以是被指定为支持对普通用户的服务提供功能的系统,并且包括Windows、Chrome等。企业OS可以是被指定为确保和支持高性能的系统,并且包括WindowsServer、Linux、Unix等。此外,OS之中的移动OS可以是被指定为支持系统省电功能和向用户提供移动性的功能的系统,并且包括Android、iOS、Windows Mobile等。主机110可以包括多个OS,并且根据用户请求运行OS以利用存储器系统120执行操作。主机110可以将与用户请求相对应的多个命令传输到存储器系统120。因此,存储器系统120可以执行与命令相对应的操作,即,与用户请求相对应的操作。
存储器系统120可以响应于主机110的请求而操作。特别地,存储器系统120可以存储由主机110访问的数据。换句话说,存储器系统120可以用作主机110的主存储器装置或辅助存储器装置。根据联接到主机110的主机接口协议,存储器系统120可以被实施为各种类型的存储装置中的任意一种。
例如,存储器系统120可以被实施为集成到一个半导体装置中的固态驱动器(SSD)。此外,存储器系统120可以被实施为包括以下的各种类型的存储装置中的任意一种:诸如eMMC(嵌入式MMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡(MMC),诸如迷你SD或微型SD卡的安全数字(SD)卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,紧凑型闪存(CF)卡,智能媒体卡和/或记忆棒。
再如,存储器系统120可以构成计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或构成计算系统的各种组件中的一种。
具体地,存储器系统120可以包括诸如动态随机存取存储器(DRAM)或静态RAM(SRAM)的易失性存储器装置和/或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、铁磁RAM(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或闪速存储器的非易失性存储器装置。
参照图1,存储器系统120可以包括控制器130和存储器装置140。控制器130可以对主机110所访问的数据进行处理,并且存储器装置140可以存储控制器130所处理的数据。
控制器130可以响应于来自主机110的请求而控制存储器装置140。例如,控制器130可以向主机110提供从存储器装置140读取的数据,并且将从主机110提供的数据存储在存储器装置140中。为此,控制器130可以控制存储器装置140的操作,诸如写入操作、读取操作、编程操作、擦除操作和后台操作。
具体地,控制器130可以包括主机接口132、存储器接口134、处理器136和存储器138。控制器130中包括的所有组件132、134、136和138可以共享通过内部总线在控制器130内部传送的信号。
主机接口132可以根据主机110的协议对主机110和存储器系统120进行接口连接。主机接口132可以执行交换在主机110和存储器系统120之间传送的命令和数据的操作。
例如,主机接口132可以通过诸如以下的各种接口协议中的一个或多个与主机110通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)和/或移动工业处理器接口(MIPI)。可以通过被称为HIL(主机接口层)的固件来驱动主机接口132,通过该主机接口132与主机110交换数据。
存储器接口134可以用作用于对控制器130和存储器装置140进行接口连接的存储器/存储接口,使得控制器130响应于来自主机110的请求而控制存储器装置140。当存储器装置140是闪速存储器时,例如,是NAND闪速存储器时,存储器接口134可以用作NAND闪存控制器(NFC)。在处理器136的控制下,存储器接口134可以生成存储器装置140的控制信号,并且处理数据。
存储器接口134可以支持处理控制器130与存储器装置140之间的命令和数据的接口操作。特别地,存储器接口134可以支持控制器130和存储器装置140之间的数据输入/输出。可以通过被称为闪存接口层(FIL)的固件来驱动存储器接口134,通过该存储器接口134与存储器装置140交换数据。
处理器136可以控制存储器系统120的所有操作。特别地,处理器136可以响应于来自主机110的写入请求或读取请求而控制对存储器装置140的编程操作或读取操作。处理器136可以驱动被称为闪存转换层(FTL)的固件,以便控制存储器系统120的全部操作。处理器136可以被实施为微型处理器或中央处理单元(CPU)。
例如,控制器130可以通过处理器136执行与从主机110接收的命令相对应的前台操作。控制器130可以执行与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作以及与设置参数或设置特征命令相对应的参数设置操作。
此外,控制器130可以通过处理器136对存储器装置140执行后台操作。对存储器装置140的后台操作可以包括垃圾收集操作、损耗均衡操作、映射清除操作、坏块管理操作等。
垃圾收集操作可以包括以下操作:将存储器装置140的多个存储块MEMORY BLOCK<0、1、2、……>之中的一个存储块中存储的数据复制到另一个存储块中,并且对所复制的数据进行处理。损耗均衡操作可以包括以下操作:交换和处理存储器装置140的存储块MEMORYBLOCK<0、1、2、……>中存储的数据。映射清除操作可以包括以下操作:将控制器130中存储的映射数据存储到存储器装置140的存储块MEMORY BLOCK<0、1、2、……>中。坏块管理操作可以包括以下操作:检查和处理存储器装置140的存储块MEMORY BLOCK<0、1、2、……>之中的坏块。
通过处理器136,控制器130可以响应于访问存储器装置140的存储块MEMORYBLOCK<0、1、2、……>的操作而生成和管理日志数据。访问存储器装置140的存储块MEMORYBLOCK<0、1、2、……>的操作可以包括对存储器装置140的存储块MEMORY BLOCK<0、1、2、……>执行前台操作或后台操作。
根据实施例,通过处理器136,控制器130可以将主机110所请求的数据存储在存储器装置140中包括的多个页面P<0、1、2、3、4、……>之中相应的页面中。控制器130可以根据从主机110接收的命令来生成和管理位图表,该位图表指示数据的顺序信息。
包括数据处理系统100的计算机系统所处理的数据可以具有时间局部性和空间局部性。也就是说,根据对数据的随机访问,与被大量访问的数据相邻的数据也很可能被重复访问。主机110可以通过固定顺序的写入操作从存储器系统120请求这样的数据。
例如,主机110可以根据两种类型来请求固定顺序的写入操作。首先,主机110可以请求相对于先前的写入数据以及相应的写入数据以固定顺序运行写入操作。其次,主机110可以请求相对于相应的写入数据以固定顺序运行写入操作。主机110可以将第一类型和第二类型的写入命令传输到存储器系统120,并且指示存储器系统120分别执行两种类型的写入操作。当通过包括多个位的信号传输写入命令时,主机110可以改变多个位的设置位,从而传输第一类型和第二类型的写入命令。
响应于第一类型的写入命令,控制器130可以将位图表中与相应的页面相对应的位设置为相同的逻辑电平。响应于第二类型的写入命令,控制器130可以将位图表中与相应的页面相对应的第一位和其它位设置为不同的逻辑电平。
如上所述,控制器130可以对存储器装置140执行后台操作。也就是说,控制器130可以检测存储器装置140中的多个页面P<0、1、2、3、4、……>之中的目标页面,并且将检测到的目标页面的数据迁移到多个页面P<0、1、2、3、4、……>之中的另一页面。数据迁移可以包括复制操作、交换操作等。
控制器130可以检查位图表中与检测到的目标页面相对应的位的逻辑电平。进一步地,控制器130可以基于检查结果,检测与检测到的目标页面相邻的页面作为目标页面。参照图3和图4更详细地描述控制器130的操作。
存储器138可以用作存储器系统120和控制器130的工作存储器,并且存储用于驱动存储器系统120和控制器130的数据。当控制器130响应于来自主机110的请求而控制存储器装置140时,存储器138可以存储由处理器136驱动的固件以及用于驱动固件的数据,例如元数据。
存储器138可以用作存储器系统120和控制器130的缓冲存储器,并且临时存储从主机110接收的并且待被传输到存储器装置140的写入数据,并且可以临时存储从存储器装置140接收的并且待被传输到主机110的读取数据。存储器138可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等,以便存储这样的数据。
存储器138可以被实施为易失性存储器。例如,存储器138可以包括静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中的任意一种。尽管图1示出了存储器138被包括在控制器130中,但是本发明不限于此。可以将存储器138设置在控制器130的外部,并且控制器130可以通过分开的存储器接口(未示出)向存储器138输入数据/从存储器138输出数据。
存储器装置140可以作为存储器系统120的存储介质进行操作。即使不供应电力,存储器装置140也可以保留存储在其中的数据。特别地,存储器装置140可以通过写入操作存储从主机110提供的数据,并且通过读取操作将存储在其中的数据提供到主机110。
存储器装置140可以被实施为闪速存储器,例如,诸如NAND闪速存储器的非易失性存储器。存储器装置140可以被实施为诸如以下的各种存储器中的任意一种:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)和/或自旋转移扭矩磁性随机存取存储器(STT-RAM或STT-MRAM)。
存储器装置140可以包括多个存储块MEMORY BLOCK<0、1、2、……>,该多个存储块中的每一个可以包括多个页面P<0、1、2、3、4、……>。尽管在附图中未示出,但是页面P<0、1、2、3、4、……>中的每一个可以包括多个存储器单元。
根据存储块MEMORY BLOCK<0、1、2、……>中的每一个中包括的一个存储器单元可以存储或表示的位的数量,该存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。SLC存储块包括由每个能够存储一位数据的存储器单元实施的多个页面,并且具有较高的数据计算性能和较高的耐久性。MLC存储块包括由每个能够存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。由于MLC存储块具有比SLC存储块更大的数据存储空间,因此MLC存储块可以具有比SLC存储块更高的集成度。
随着存储器单元存储容量已经增加,术语MLC有时用于更具体地指能够存储两位数据的存储器单元,因此MLC存储块是指具有这种MLC的存储块。在那种情况下,三层单元(TLC)存储块包括由每个能够存储三位数据的存储器单元实施的多个页面,并且四层单元(QLC)存储块包括由每个能够存储四位数据的存储器单元实施的多个页面。还可以使用更高的存储容量的块,其中每个这样的存储块包括由每个能够存储五位或更多位数据的存储器单元实施的多个页面。
图2是示出图1的存储器138的示图。
参照图2,存储器138可以包括存储了由处理器136驱动的闪存转换层FTL的区域210以及存储了用于驱动闪存转换层FTL中包括的各种模块的元数据MD的区域220。作为示例,图2示出存储器138包括两个区域。然而,存储器138可以进一步包括用于存储各种数据的其它区域。例如,存储器138可以进一步包括对根据从主机110接收的请求而生成的命令进行排队的命令队列区域、存储写入数据的写入数据缓冲器区域以及存储读取数据的读取数据缓冲器区域。
在一些实施例中,闪存转换层FTL可以被存储在存储器装置140的系统区域(未示出)中。在存储器系统120启动的同时,可以从存储器装置140的系统区域读取闪存转换层FTL并将其存储在存储器138中。闪存转换层FTL可以包括各种功能模块。根据实施例,闪存转换层FTL可以包括地址映射管理模块(或地址映射管理组件)230、位图管理模块(或位图管理组件)240和后台控制模块(或后台控制组件)250。
地址映射管理组件230可以将主机110所请求的写入数据的逻辑地址映射到存储器装置140的实际地址,即物理地址,并且管理被映射的地址。地址映射管理组件230可以生成和管理地址映射表260,地址映射表260指示写入数据的逻辑地址与多个页面P<0、1、2、3、4、……>之中存储该写入数据的页面的物理地址之间的关系。地址映射管理组件230生成的地址映射表260可以被存储在存储器138的元数据区域220中。
位图管理组件240可以根据主机110所请求的写入命令的类型来设置指示写入数据的顺序的位。用于指示数据的顺序的位或其它标记可以被称为顺序信息。位图管理组件240可以生成和管理位图表270,使得某些(设置的)位指示写入数据与存储写入数据的页面P<0、1、2、3、4、……>之间的关系。位图管理组件240生成的位图表270可以被存储在存储器138的元数据区域220中。
后台控制组件250可以执行存储器装置140的后台操作,例如,垃圾收集操作、损耗均衡操作、读取回收操作等。也就是说,后台控制组件250可以检测存储器装置140的页面P<0、1、2、3、4、……>之中的目标页面,并且将检测到的目标页面的数据迁移到页面P<0、1、2、3、4、……>之中的另一页面。
后台控制组件250可以基于位图表270执行后台操作。后台控制组件250可以检查位图表270中与检测到的目标页面相对应的位的逻辑电平。进一步地,后台控制组件250可以基于检查结果,检测与检测到的目标页面相邻的页面作为目标页面。
图3是描述图2所示的位图管理组件240的操作的示图。作为示例,图3示出由位图管理组件240生成的位图表270a和270b。
参照图3,位图表270a和270b可以对应于由处理器136分配的开放存储块,以便存储主机110所请求的写入数据。例如,位图表270a和270b可以对应于通过对存储器装置140中的存储块MEMORY BLOCK<0、1、2、……>中的两个或更多个进行分组而获得的单位存储块或超级存储块。
位图表270a和270b中的每一个可以包括多个位,该多个位中的每一个可以分别对应于开放存储块中的一个页面。作为示例,图3示出根据来自主机110的请求将具有与32个逻辑地址相对应的大小的数据存储在一个开放存储块中的情况。然而,本发明不限于此。
参照图3的(a),当从主机110接收第一类型的写入命令WTa时,位图管理组件240可以将位图表270a中的与存储写入数据的页面P<0、……、31>相对应的位设置为第一逻辑电平,例如,1。
参照图3的(b),当从主机110接收第二类型的写入命令WTb时,位图管理组件240可以在将位图表270b中的与存储写入数据的页面<0、……、31>相对应的位设置为第一逻辑电平的同时,将与第一页面P<0>相对应的位设置为第二逻辑电平,该第二逻辑电平不同于第一逻辑电平。例如,响应于第二类型的写入命令WTb,位图管理组件240可以在将位图表270b中的与页面P<0、……、31>相对应的位设置为逻辑高电平“1”的同时,将与第一页面P<0>相对应的位设置为逻辑低电平“0”。
也就是说,当位图表270a和270b中的每一个的位被设置为第一逻辑电平“1”时,这可以指示按固定顺序,即在先前页面中存储的数据之后,处理相应的页面中存储的数据。当位图表270a和270b中的每一个的位被设置为第二逻辑电平“0”时,这可以指示处理相应的页面中存储的数据而不管何时处理先前页面中存储的数据。
图4是描述图2所示的后台控制组件250的操作的示图。作为示例,图4示出后台控制组件250执行垃圾收集操作的情况。
当存储器装置140内的空闲存储块(即,仅包括无效数据的可用存储块)的数量变得小于或等于设置的阈值时,后台控制组件250可以对存储器装置140执行垃圾收集操作。后台控制组件250可以选择存储器装置140中的牺牲存储块,并且通过将牺牲存储块中存储的有效数据迁移到目标存储块来将牺牲存储块改变为空闲存储块。
后台控制组件250可以管理有效数据信息以选择牺牲存储块,并且检测牺牲存储块中包括的页面之中存储了有效数据的页面作为目标页面。后台控制组件250可以检查位图表中与检测到的目标页面相对应的位的逻辑电平,并且另外基于检查结果,检测与检测到的目标页面相邻的页面作为目标页面。
参照图4,后台控制组件250可以检查与牺牲存储块相对应的位图表270c中与检测到的目标页面TP相对应的位的逻辑电平。当与检测到的目标页面TP相对应的位具有第一逻辑电平“1”时,后台控制组件250可以检测在第一方向D1上与检测到的目标页面TP相邻的页面作为第一目标页面TP1。
后台控制组件250可以检查位图表270c中与第一目标页面TP1相对应的位的逻辑电平。在与第一目标页面TP1相对应的位为第二逻辑电平“0”或改变为第二逻辑电平“0”之前,后台控制组件250可以检测另一目标页面,即,在第一方向D1上与第一目标页面TP1相邻的第一目标页面TP1'。
如上所述,当与检测到的目标页面TP相对应的位具有第一逻辑电平“1”时,这可以指示检测到的目标页面TP中存储的数据与先前页面(即,在第一方向D1上与检测到的目标页面TP相邻的页面)中存储的先前数据处于固定顺序。因此,后台控制组件250可以立即检测在第一方向D1上与检测到的目标页面TP相邻的页面作为第一目标页面TP1,并且一起处理目标页面TP和TP1的数据。
不管与检测到的目标页面TP相对应的位的逻辑电平如何,后台控制组件250都可以检查位图表270c中与在第二方向D2上与检测到的目标页面TP相邻的页面相对应的位的逻辑电平。当与在第二方向D2上相邻的页面相对应的位具有第一逻辑电平“1”时,后台控制组件250可以检测在第二方向D2上相邻的页面作为第二目标页面TP2。在与在第二方向D2上相邻的页面相对应的位为第二逻辑电平“0”或改变为第二逻辑电平“0”之前,后台控制组件250可以检测另一目标页面,即,在第二方向D2上与检测到的目标页面TP相邻的第二目标页面TP2'。
可以根据页面P<0、4、……、30、31>中存储数据的顺序来改变第一方向D1和第二方向D2。在图4所示的示例中,在位图表270中,数据以从左到右并且从上到下的顺序存储在页面P<0、4、……、30、31>中。也就是说,在第一方向D1上与检测到的目标页面TP相邻的页面可以包括在将数据存储在检测到的目标页面TP中之前存储数据的页面。此外,在第二方向D2上与检测到的目标页面TP相邻的页面可以包括在将数据存储在检测到的目标页面TP中之后存储数据的页面。
作为示例,图4示出后台控制组件250执行垃圾收集操作,但是本发明不限于此。如上所述,后台控制组件250可以执行损耗均衡操作、读取回收操作等。也就是说,由后台控制组件250执行的操作可以包括被执行以检测存储器装置140内的目标区域并迁移检测到的目标区域的数据的所有操作。
图5是示出根据实施例的控制器130的操作的流程图。参照图1至图5,下面描述控制器130的操作。
在操作S501中,控制器130可以根据从主机110接收的命令,将主机110所请求的数据存储在多个页面P<0、1、2、3、4、……>之中的相应的页面中,并且同时生成和管理指示相应的页面的顺序的位图表270。具体地,响应于第一类型的写入命令WTa,控制器130的位图管理组件240可以将位图表270a中的与存储写入数据的页面P<0、……、31>相对应的位设置为第一逻辑电平。此外,响应于第二类型的写入命令WTb,位图管理组件240可以在将位图表270b中的与存储写入数据的页面P<0、……、31>相对应的位设置为第一逻辑电平的同时,将与第一页面P<0>相对应的位设置为与第一逻辑电平不同的第二逻辑电平。
在操作S502中,控制器130可以检测多个页面P<0、1、2、3、4、……>之中的目标页面。例如,控制器130的后台控制组件250可以管理有效数据信息以选择牺牲存储块,并且检测牺牲存储块中包括的页面之中存储有效数据的页面作为目标页面。
在操作S503中,后台控制组件250可以检查位图表270c中与检测到的目标页面TP相对应的位的逻辑电平。后台控制组件250可以另外基于检查结果,检测与检测到的目标页面TP相邻的页面作为目标页面。
具体地,当与检测到的目标页面TP相对应的位被确定为第一逻辑电平(在操作S503中为“是”)时,后台控制组件250可以执行操作S504和S505。也就是说,后台控制组件250可以检测在第一方向D1上与检测到的目标页面TP相邻的页面作为第一目标页面TP1,并且检查位图表270c中与该第一目标页面TP1相对应的位的逻辑电平。
在与第一目标页面TP1相对应的位为第二逻辑电平或改变为第二逻辑电平(在操作S505中为“否”)之前,后台控制组件250可以重复地执行操作S504和S505。后台控制组件250可以持续检测在第一方向D1上与检测到的目标页面TP相邻的页面作为第一目标页面TP1和TP1'。
在操作S506中,后台控制组件250可以检查位图表270c中与在第二方向D2上与检测到的目标页面TP相邻的页面相对应的位的逻辑电平。具体地,当与在第二方向D2上相邻的页面相对应的位被确定为第一逻辑电平(在操作S506中为“是”)时,后台控制组件250可以执行操作S507。也就是说,后台控制组件250可以检测在第二方向D2上相邻的页面作为第二目标页面TP2。
此外,在与在第二方向D2上相邻的页面相对应的位为第二逻辑电平或改变为第二逻辑电平(在操作S506中为“否”)之前,后台控制组件250可以重复地执行操作S507和S506。后台控制组件250可以持续检测在第二方向D2上与检测到的目标页面TP相邻的页面作为第二目标页面TP2和TP2'。
根据上述实施例,存储器系统可以生成指示存储器装置中存储的数据的顺序的位图表,并且一起处理相关联的数据而不管存储器装置的各种内部操作如何。通过该操作,存储器系统可以根据主机请求减少控制器的开销,并且快速地提供存储器装置中存储的数据。
尽管已经示出和描述了各个实施例,但是对于本领域技术人员而言将显而易见的是,在不脱离如所附权利要求书所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (21)
1.一种存储器系统,包括:
存储器装置,包括多个页面;以及
控制器,将响应于从主机接收的写入命令而输入的数据存储在所述多个页面之中相应的页面中,
其中所述控制器根据所述写入命令的类型生成和管理位图表,所述位图表指示所输入的数据的顺序信息。
2.根据权利要求1所述的存储器系统,其中所述顺序信息指示所输入的数据是否处于固定顺序。
3.根据权利要求2所述的存储器系统,其中所述控制器响应于第一类型的写入命令,将所述位图表中与所述相应的页面相对应的位设置为相同的逻辑电平,其中所述第一类型的写入命令指示所输入的数据相对于先前数据处于所述固定顺序。
4.根据权利要求3所述的存储器系统,其中所述控制器响应于第二类型的写入命令,将所述位图表中与所述相应的页面相对应的所述位的第一位和其它位设置为不同的逻辑电平,其中所述第二类型的写入命令指示所输入的数据不管所述先前数据如何都处于所述固定顺序。
5.根据权利要求4所述的存储器系统,其中针对所述第一类型的写入命令的设置位的逻辑电平与针对所述第二类型的写入命令的设置位的逻辑电平不同。
6.根据权利要求1所述的存储器系统,其中所述控制器检测所述多个页面之中的目标页面,并且将所检测到的目标页面的数据迁移到所述多个页面之中的另一页面。
7.根据权利要求6所述的存储器系统,其中所述控制器检查所述位图表中与所检测到的目标页面相对应的位的逻辑电平,并且基于检查结果,检测与所检测到的目标页面相邻的页面作为目标页面。
8.一种控制器,包括:
地址映射管理组件,管理地址映射表,所述地址映射表指示写入数据的逻辑地址与多个页面之中存储所述写入数据的页面的物理地址之间的关系;
位图管理组件,基于写入命令的类型来设置指示所述写入数据的顺序信息的位,并且管理指示所述写入数据的设置位与存储所述写入数据的页面之间的关系的位图表;以及
后台控制组件,基于所述位图表对所述多个页面执行后台操作。
9.根据权利要求8所述的控制器,其中所述位图管理组件响应于第一类型的写入命令,将所述位图表中的与存储所述写入数据的页面相对应的位设置为第一逻辑电平,其中所述第一类型的写入命令指示所述写入数据相对于先前数据处于固定顺序。
10.根据权利要求9所述的控制器,其中,响应于指示所述写入数据与所述先前数据无关地处于固定顺序的第二类型的写入命令,在将所述位图表中的与存储所述写入数据的页面相对应的位设置为所述第一逻辑电平的同时,所述位图管理组件将所述位的第一位设置为第二逻辑电平,所述第二逻辑电平不同于所述第一逻辑电平。
11.根据权利要求8所述的控制器,其中所述后台控制组件检测所述多个页面之中的目标页面,并且将所检测到的目标页面的数据迁移到所述多个页面之中的另一页面。
12.根据权利要求11所述的控制器,其中所述后台控制组件检查所述位图表中与所检测到的目标页面相对应的位的逻辑电平,并且基于检查结果,检测与所检测到的目标页面相邻的页面作为目标页面。
13.根据权利要求12所述的控制器,其中,当与所检测到的目标页面相对应的位具有第一逻辑电平时,所述后台控制组件检测在第一方向上与所检测到的目标页面相邻的页面作为第一目标页面,并且检查所述位图表中与所述第一目标页面相对应的位的逻辑电平。
14.根据权利要求13所述的控制器,其中,在与所述第一目标页面相对应的位为第二逻辑电平之前,所述后台控制组件持续检测在所述第一方向上与所述第一目标页面相邻的页面作为第一目标页面。
15.根据权利要求12所述的控制器,其中,不管与所检测到的目标页面相对应的位的逻辑电平如何,所述后台控制组件检查所述位图表中与在第二方向上与所检测到的目标页面相邻的页面相对应的位的逻辑电平。
16.根据权利要求15所述的控制器,其中,当与在所述第二方向上相邻的所述页面相对应的位具有所述第一逻辑电平时,所述后台控制组件检测在所述第二方向上相邻的所述页面作为第二目标页面。
17.根据权利要求16所述的控制器,其中,在与在所述第二方向上相邻的所述页面相对应的位为第二逻辑电平之前,所述后台控制组件持续检测在所述第二方向上与所检测到的目标页面相邻的页面作为所述第二目标页面。
18.一种控制器的操作方法,包括:
检测多个页面之中的目标页面;
检查位图表中与所检测到的目标页面相对应的位的逻辑电平;并且
基于检查结果,检测与所检测到的目标页面相邻的页面作为目标页面。
19.根据权利要求18所述的操作方法,其中检测与所检测到的目标页面相邻的页面作为目标页面包括:
当与所检测到的目标页面相对应的位为第一逻辑电平时,
检测在第一方向上与所检测到的目标页面相邻的页面作为第一目标页面;
检查所述位图表中与所述第一目标页面相对应的位的逻辑电平;并且
在与所述第一目标页面相对应的位为第二逻辑电平之前,持续检测在所述第一方向上与所述第一目标页面相邻的页面作为第一目标页面。
20.根据权利要求19所述的操作方法,其中检测与所检测到的目标页面相邻的页面作为目标页面包括:
检查所述位图表中与在第二方向上与所检测到的目标页面相邻的页面相对应的位的逻辑电平;
当与在所述第二方向上相邻的页面相对应的位为所述第一逻辑电平时,检测在所述第二方向上相邻的页面作为第二目标页面;并且
在与在所述第二方向上相邻的页面相对应的位为所述第二逻辑电平之前,持续检测在所述第二方向上与所检测到的目标页面相邻的页面作为第二目标页面。
21.一种存储器系统,包括:
存储器装置,包括多个页面;以及
存储器控制器:
从主机接收与写入命令相关联的多条写入数据;
将所述多条写入数据存储在所述多个页面之中相应的页面中;
基于所述写入命令的类型生成位图表,所述位图表包括分别对应于所述多条写入数据的多个位,每个位指示是否在处理先前的一条写入数据之后将处理相应的一条写入数据;
使用所述位图表选择所述相应的页面之中针对后台操作的目标页面以及与所述目标页面相邻的一个或多个页面,所述位图表中的所述目标页面和相邻页面的位各自具有相同的值;并且
对所述目标页面和所述相邻页面执行所述后台操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200125764A KR20220042673A (ko) | 2020-09-28 | 2020-09-28 | 컨트롤러, 컨트롤러의 동작 방법, 및 이를 포함하는 메모리 시스템 |
KR10-2020-0125764 | 2020-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328294A true CN114328294A (zh) | 2022-04-12 |
Family
ID=80822658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111018071.0A Withdrawn CN114328294A (zh) | 2020-09-28 | 2021-09-01 | 控制器、其操作方法以及包括控制器的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11656996B2 (zh) |
KR (1) | KR20220042673A (zh) |
CN (1) | CN114328294A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US10740228B2 (en) * | 2017-05-18 | 2020-08-11 | Sandisk Technologies Llc | Locality grouping during garbage collection of a storage device |
US11151052B2 (en) * | 2019-12-13 | 2021-10-19 | Micron Technology, Inc. | Reading sequential data from memory using a pivot table |
-
2020
- 2020-09-28 KR KR1020200125764A patent/KR20220042673A/ko unknown
-
2021
- 2021-02-26 US US17/186,542 patent/US11656996B2/en active Active
- 2021-09-01 CN CN202111018071.0A patent/CN114328294A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20220042673A (ko) | 2022-04-05 |
US11656996B2 (en) | 2023-05-23 |
US20220100671A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
US10891236B2 (en) | Data storage device and operating method thereof | |
US11449418B2 (en) | Controller and method for selecting victim block for wear leveling operation | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
KR20200059936A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20210115954A (ko) | 컨트롤러 및 메모리 시스템 | |
CN110806837A (zh) | 数据处理系统及其操作方法 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
KR102596964B1 (ko) | 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치 | |
KR102653373B1 (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
KR20190006677A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20220121375A1 (en) | Memory system and operation method thereof | |
US11775209B2 (en) | Controller and operation method thereof | |
CN115080457A (zh) | 控制器及其操作方法 | |
US11656996B2 (en) | Controller for managing order information of data, operation method thereof, and memory system including the same | |
KR20210051803A (ko) | 메모리 시스템 및 컨트롤러 | |
KR20210001206A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN110825317B (zh) | 用于分布式存储输入数据的存储器系统和数据处理系统 | |
US20220164119A1 (en) | Controller, and memory system and data processing system including the same | |
US11657000B2 (en) | Controller and memory system including the same | |
US20230244402A1 (en) | Storage device and operating method of storage device | |
US20220012181A1 (en) | Memory system and method of operating method thereof | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220412 |