CN110928806B - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN110928806B CN110928806B CN201910693846.0A CN201910693846A CN110928806B CN 110928806 B CN110928806 B CN 110928806B CN 201910693846 A CN201910693846 A CN 201910693846A CN 110928806 B CN110928806 B CN 110928806B
- Authority
- CN
- China
- Prior art keywords
- memory
- valid pages
- pages
- operation time
- garbage collection
- 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
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/0253—Garbage collection, i.e. reclamation of unreferenced 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/7205—Cleaning, compaction, garbage collection, erase control
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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开的实施例涉及存储器系统及其操作方法。一种存储器系统,包括:具有超级存储器块的存储器设备,每个超级存储器块具有多个存储器块;垃圾收集操作时间管理器,其适用于根据有效页的数目、有效页的分布和有效页的逻辑地址的分布来确定垃圾收集操作的操作时间;以及垃圾收集操作模块,其适用于控制存储器设备在确定的操作时间内执行垃圾收集操作。
Description
相关申请的交叉引用
本申请要求2018年09月20日提交的韩国专利申请No.10-2018-0112756的优先权,其全部内容通过引用并入本文
技术领域
本发明的各种实施例涉及存储器系统,并且更具体地,涉及能够有效地执行垃圾收集操作的存储器系统及其操作方法。
背景技术
计算机环境范例已经转移到普适计算,这使得计算系统能够随时随地使用。结果,诸如移动电话、数码相机和膝上型计算机的便携式电子设备的使用迅速增加。这些便携式电子设备通常使用具有用于存储数据的一个或多个存储器设备的存储器系统。存储器系统可以用作便携式电子设备的主存储器设备或辅助存储器设备。
与硬盘设备相比,存储器系统提供优异的稳定性、耐用性、高信息访问速度和低功耗,因为它们没有运动部件。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器设备、具有各种接口的存储卡,以及固态驱动器(SSD)。
发明内容
本发明的各种实施例涉及一种能够通过根据工作负载动态地改变垃圾收集操作的操作时间来有效地执行垃圾收集操作的存储器系统。
在一个实施例中,一种存储器系统可以包括:具有超级存储器块的存储器设备,每个超级存储器块具有多个存储器块;垃圾收集操作时间管理器,适用于根据有效页的数目、有效页的分布和有效页的逻辑地址的分布来确定垃圾收集操作的操作时间;以及垃圾收集操作模块,适用于控制存储器设备在确定的操作时间内执行垃圾收集操作。
在一个实施例中,一种存储器系统的操作方法可以包括:根据有效页的数目、有效页的分布和有效页的逻辑地址的分布确定垃圾收集操作的操作时间;以及控制存储器设备在确定的操作时间内执行垃圾收集操作。
在一个实施例中,一种存储器系统可以包括:具有至少一个牺牲超级存储器块的存储器设备;和控制器,其适用于基于牺牲超级存储器块内的有效页的数目和分布以及有效页的逻辑地址的集中的程度,控制存储器设备在可调节的操作时间内对牺牲超级存储器块执行垃圾收集操作。
附图说明
图1是示意性地图示垃圾收集操作的图。
图2是图示根据本发明的一个实施例的包括存储器系统的数据处理系统的框图。
图3是示意性地图示根据本公开的一个实施例的存储器系统的超级存储器块的形成的图。
图4是示意性地图示根据本公开的一个实施例的存储器系统中的存储器设备上的数据处理操作的图。
图5是示意性地图示根据本公开的一个实施例的存储器系统的操作的流程图。
图6A和图6B是示意性地图示超级存储器块中的有效页的分布的图。
图7是示意性地图示生成有效页分布信息(VPDI)的操作的流程图。
图8是示意性地图示根据本公开的一个实施例的位图的图。
图9是示意性地图示生成表示映射信息的序列或集中度信息(SOMD)的操作的流程图。
图10是示意性地图示根据本公开的一个实施例的映射段信息的图。
图11是示意性地图示根据本公开的一个实施例的处理器的框图。
图12是示意性地图示根据本公开的一个实施例的有效页分布管理器的框图。
图13是示意性地图示根据本公开的一个实施例的映射管理器的框图。
图14是图示图2中所示的存储器系统中采用的存储器设备的示例性配置的示意图。
图15是图示图2中所示的存储器设备中的存储器块的存储器单元阵列的示例性配置的电路图。
图16是图示根据本发明的一个实施例的存储器系统的存储器设备的结构的框图。
图17至图25是示意性地图示根据本发明的各种实施例的数据处理系统的示例性应用的图。
具体实施方式
下面参考附图更详细地描述本发明的各种实施例。然而,我们注意到,本发明可以以其他形式实施,其可以是任何所公开实施例的变型。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例是为了使本公开彻底和完整,并将本发明完全传达给本发明所属领域的技术人员。贯穿本公开,在本发明的各个图和实施例中,相同的附图标记指代相同的部件。另外,贯穿说明书,对“一个实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定是相同的实施例。
应当理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开,否则另一个元件将具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,在一个实例中的第一元件可以在另一个实例中被称为第二或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被放大。当元件被称为连接至或耦合到另一元件时,应当理解,前者可直接连接或耦合到后者,或者经由其间的中间元件电连接或耦合到后者。
将进一步理解,当元件被称为“连接到”或“耦合到”另一元件时,它可直接在其它元件上、连接至或耦合到其它元件,或者可存在一个或多个中间元件。另外,还将理解,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。除非上下文另有说明,否则两个元件之间的通信(无论是直接连接还是间接连接/耦合)可以是有线的或无线的。
本文使用的术语仅用于描述特定实施例的目的,并不意图限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式旨在包括复数形式,反之亦然。
将进一步理解,当在本说明书中使用时,术语“包括”、“包含”、“具有”和“含有”指定所陈述元件的存在并且不排除存在或添加一个或多个其他元件。如本文所使用的,术语“和/或”包括一个或多个相关联的所列的项目的任何和所有组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术上下文中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。可在没有一些或全部这些具体细节的情况下实施本发明。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的过程结构和/或过程。
还应当注意,在一些情况下,如对相关领域的技术人员显而易见的,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
图1是示意性地图示垃圾收集操作的图。
闪存设备以页为单位执行编程和读取操作,以存储器块为单位执行擦除操作,并且与硬盘系统不同,不支持重写操作。因此,为了改变编程在页中的原始数据,闪存设备将原始数据的改变的版本编程到另一页中并使原始数据无效。
在垃圾收集操作期间,周期性地清空无效页以将其变为空白页,以便防止由于在原始数据的改变过程中无效的页而导致的闪存设备的存储器空间的浪费。垃圾收集操作包括读取编程在牺牲存储器块122内的有效页中的有效数据;将有效数据编程到目标存储器块124内的空白页中;并更新有效数据的地址信息(可以被称为映射信息)。尽管牺牲存储器块122被图示为单独的存储器块,但是牺牲存储器块122可以是包括多个单独的存储器块的超级存储器块。
根据现有技术,闪存设备周期性地在固定时间内执行垃圾收集操作。另一方面,有效数据的大小或有效页的数目在牺牲存储器块122内越大,读取有效数据的读取计数和编程有效数据的编程计数就越大。因此,有效数据的大小或有效页的数目在牺牲存储器块122内越大,读取和编程有效数据所需的时间也就越大。
另外,随着有效页的逻辑地址越随机,与有效页对应的映射段的数目越大。另外,闪存设备以映射段为单位对有效页执行映射更新操作。因此,对应于有效页的映射段的数目越大,更新对应于有效页的映射段所需的时间就越长。
根据现有技术,闪存设备在固定时间内执行垃圾收集操作,而不管有效页的数目和有效页的逻辑地址的序列或集中度。担心闪存设备无法在固定时间内完成对其所有牺牲存储器块的垃圾收集操作,因此当存在大量有效页或有效页的逻辑地址太随机时,无法确保足够的存储器空间。
根据本公开的一个实施例,控制器可以根据有效页的数目、有效页的分布以及映射信息的序列或集中的程度来动态地改变垃圾收集操作的操作时间。控制器可以在垃圾收集操作的改变后的操作时间期间控制存储器设备的垃圾收集操作,从而在垃圾收集操作的改变后的操作时间内完成对存储器设备的所有牺牲存储器块的垃圾收集操作。
图2是图示根据本发明的一个实施例的包括存储器系统110的数据处理系统100的框图。
参考图2,数据处理系统100可以包括可操作地耦合到存储器系统110的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子设备中的任意一种或诸如台式计算机、游戏机、TV和投影仪的非便携式电子设备中的任意一种。
主机102可以包括至少一个OS(操作系统)或多个操作系统。主机102可以执行OS以在存储器系统110上执行与用户请求相对应的操作。这里,主机102可以向存储器系统110提供与用户请求相对应的多个命令。因此,存储器系统110可以执行与多个命令相对应(即,对应于用户的请求)的某些操作。OS可以管理和控制主机102的整体功能和操作。OS可以使用数据处理系统100或存储器系统110支持主机102和用户之间的操作。
存储器系统110可以响应于来自主机102的请求进行操作或执行具体功能或操作,并且特别地,可存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可以利用可以与主机102电耦合的各种类型的存储设备中的任意一种来实施。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)。
存储器系统110可以包括各种类型的存储设备。这种存储设备的非限制性示例包括易失性存储器设备(诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM))和非易失性存储器设备(诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪存)。
存储器系统110可以包括存储器设备150和控制器130。
控制器130和存储器设备150可以集成到单个半导体装置中,该半导体装置可以被包括在如上所述的各种类型的存储器系统中的任意一种中。例如,控制器130和存储器设备150可以集成为单个半导体设备以构成SSD、个人计算机存储器卡国际协会(PCMCIA)卡、SD卡(包括mini-SD、micro-SD和SDHC)和UFS设备。存储器系统110可以被配置成计算机、智能电话、便携式游戏机的一部分或配置计算系统的各种部件中的一个部件。
存储器设备150可以是非易失性存储器设备,即使没有供电,它也可以保留所存储的数据。存储器设备150可以存储通过写入操作从主机102提供的数据,并且通过读取操作将存储在其中的数据输出到主机102。在一个实施例中,存储器设备150可以包括多个存储器裸片(未示出),并且每个存储器裸片可以包括多个平面(未示出)。每个平面可以包括多个存储器块152至156,每个存储器块可以包括多个页,每个页可以包括耦合到字线的多个存储器单元。在一个实施例中,存储器设备150可以是具有3维(3D)堆叠结构的闪存。
稍后参考图14至图16描述存储器设备150的结构,包括存储器设备150的三维堆叠结构。
控制器130可以响应于来自主机102的请求来控制存储器设备150。例如,控制器130可以将从存储器设备150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器设备150中。为了该操作,控制器130可以控制存储器设备150的读取、写入、编程和擦除操作。
更具体地,控制器130可以包括主机接口(I/F)132、处理器134、存储器接口142和存储器144,它们都经由内部总线可操作地耦合或接合。另外,处理器134可以包括有效页数目计数器1102、有效页分布管理器1104、映射管理器1106、垃圾收集操作时间管理器1108和垃圾收集操作模块1110,如稍后参考图11所描述的。
主机接口132可以处理主机102的命令和数据。主机接口132可以通过各种接口协议中的一种或多种与主机102通信,接口协议诸如是通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。可以经由固件(即,用于与主机102交换数据的主机接口层(HIL))驱动主机接口132。
存储器接口142可以用作控制器130和存储器设备150之间的存储器/存储接口,使得控制器130可以响应于来自主机102的请求来控制存储器设备150。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可以布置在控制器130内部或外部。图1示出了布置在控制器130内的存储器144。在另一实施例中,存储器144可以是外部易失性存储器,其具有用于在存储器144和控制器130之间传送数据的存储器接口。
如上所述,存储器144可以包括程序存储器、数据存储器、写缓冲器/缓存、读缓冲器/缓存、数据缓冲器/缓存以及映射缓冲器/缓存,以用于存储执行主机102和存储器设备150之间的数据写入和读取操作所需的一些数据以及控制器130和存储器设备150执行这些操作所需的其他数据。
处理器134可以控制存储器系统110的整体操作。处理器134可以使用固件来控制存储器系统110的整体操作。固件可以被称为闪存转换层(FTL)。处理器134可以用微处理器或中央处理单元(CPU)实施。稍后将参考图11至图13描述处理器134的细节。
例如,控制器130可以通过处理器134(被实施成微处理器、CPU等)执行主机102在存储器设备150中请求的操作。另外,控制器130可以通过处理器134(可以被实现为微处理器或CPU)在存储器设备150上执行后台操作。在存储器设备150上执行的后台操作可以包括将存储在存储器设备150的存储器块152到156中的一些存储器块中的数据复制到其他存储器块和对该数据处理的操作,操作例如是垃圾收集(GC)操作)、在存储器块152至156中的一些存储器块之间交换数据的操作(例如,耗损均衡(WL)操作)、将存储在控制器130中的映射数据存储在存储器块152至156中的操作(例如映射刷新操作)或管理存储器设备150的坏块的操作(例如,检测和处理存储器设备150中的存储器块152至156中的坏块的坏块管理操作)。
图3是图示根据本发明的一个实施例的存储器系统中使用的超级存储器块的概念的图。
图3详细图示了根据本发明的一个实施例的图2中所示的存储器系统110的元件中的存储器设备150的某些元件。
存储器设备150可以包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N。
另外,存储器设备150可以包括能够通过第零通道CH0输入/输出数据的第一存储器裸片DIE0和能够通过第一通道CH1输入/输出数据的第二存储器裸片DIE1。第零通道CH0和第一通道CH1可以以交错方案输入/输出数据。
第一存储器裸片DIE0可以包括分别对应于多个路径WAY0和WAY1的多个平面PLANE00和PLANE01。路径WAY0和WAY1可以通过共享第零通道CH0以交错方案输入/输出数据。
第二存储器裸片DIE1可以包括分别对应于多个路径WAY2和WAY3的多个平面PLANE10和PLANE11。路径WAY2和WAY3可以通过共享第一通道CH1以交错方案输入/输出数据。
第一存储器裸片DIE0的第一平面PLANE00可以包括存储器设备150中的多个存储器块中的设定数目的存储器块BLOCK000至BLOCK00N。
第一存储器裸片DIE0的第二平面PLANE01可以包括存储器设备150中的多个存储器块中的设定数目的存储器块BLOCK010至BLOCK01N。
第二存储器裸片DIE1的第一平面PLANE10可以包括存储器设备150中的多个存储器块中的设定数目的存储器块BLOCK100至BLOCK10N。
第二存储器裸片DIE1的第二平面PLANE11可以包括存储器设备150中的多个存储器块中的设定数目的存储器块BLOCK110至BLOCK11N。
以这种方式,存储器设备150中的多个存储器块可以根据它们的物理位置以及它们对路径和通道的使用而被分成组。
尽管上面描述了存储器设备150中包括两个存储器裸片DIE0和DIE1,相应的存储器裸片DIE0和DIE1中包括两个平面PLANE00和PLANE01/PLANE10和PLANE11,以及相应的平面PLANE00和PLANE01/PLANE10和PLANE11中包括特定数目的存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N,但本发明不限于这种方式。实际上,可以在存储器设备150中包括任何合适数目的存储器裸片(多于或少于两个)。对于可以被包括在相应存储器裸片中的平面的数目也是如此。根据系统设计考虑,可以使用平面和裸片的各种配置中的任意一种。另外,还可以根据这些考虑来调整包括在相应的平面中的存储器块的数目。
控制器130可以基于哪些块被同时选择和操作而将多个存储器块划分,而不是根据它们的物理位置(诸如存储器裸片DIE0和DIE1和/或平面PLANE00和PLANE01/PLANE10和PLANE11中的位置)来划分存储器设备150中的存储器块。换句话说,控制器130可以通过使多个存储器块中的能够被同时选择的存储器块成组,并从而将成组的存储器块分成超级存储器块,来基于它们的物理位置管理位于不同裸片或不同平面中的多个存储器块。
可以根据系统设计者的决定以各种方式执行由控制器130使存储器块成组为超级存储器块的同时选择方案。这里,三种同时选择方案例示如下。
第一种方案是使第一存储器裸片DIE0的来自第一平面PLANE00的任意存储器块BLOCK000和来自第二平面PLANE01的任意存储器块BLOCK010成组,并将成组的存储器块BLOCK000和BLOCK010作为单个超级存储器块A1进行管理。当第一路径被应用于第二存储器裸片DIE1时,控制器130可以使第二存储器裸片DIE1的来自第一平面PLANE10的任意存储器块BLOCK100和来自第二平面PLANE11的任意存储器块BLOCK110成组并将成组的存储器块BLOCK100和BLOCK110作为单个超级存储器块A2进行管理。
第二种方案是使来自第一存储器裸片DIE0的第一平面PLANE00的任意存储器块BLOCK002和来自第二存储器裸片DIE1的第一平面PLANE10的任意存储器块BLOCK102成组,并将成组的存储器块BLOCK002和BLOCK102作为单个超级存储器块B1进行管理。另外,根据第二种方式,控制器130可以将来自第一存储器裸片DIE0的第二平面PLANE01的任意存储器块BLOCK012和来自第二存储器裸片DIE1的第二平面PLANE11的任意存储器块BLOCK112成组,并将成组的存储器块BLOCK012和BLOCK112作为单个超级存储器块B2进行管理。
第三种方案是将来自第一存储器裸片DIE0的第一平面PLANE00的任意存储器块BLOCK001、来自第一存储器裸片DIE0的第二平面PLANE01的任意存储器块BLOCK011、来自第二存储器裸片DIE1的第一平面PLANE10的任意存储器块BLOCK101和来自第二存储器裸片DIE1的第二平面PLANE11的任意存储器块BLOCK111成组,并将成组的存储器块BLOCK001、BLOCK011、BLOCK101和BLOCK111作为单个超级存储器块C进行管理。
相应的超级存储器块中包括的存储器块可以由控制器130通过交错方案基本上同时选择,交错方案例如是通道交错方案、存储器裸片交错方案、存储器芯片交错方案或路径交错方案。
图4是示意性地图示根据本发明的一个实施例的存储器系统对存储器设备的数据处理操作的图。
参考图4,控制器130可以从主机102接收程序命令、程序数据和逻辑地址。响应于程序命令,控制器130将程序数据编程并存储在被包括在存储器设备150的存储器块552、554、562、564、572、574、582、584中的多个页中。
控制器130生成并更新程序数据的元数据,并将元数据编程并存储在存储器设备150的存储器块552、554、562、564、572、574、582和584中。元数据包括用于存储在存储器块552、554、562、564、572、574、582和584中的程序数据的逻辑/物理(L2P:逻辑到物理)信息和物理/逻辑(P2L:物理到逻辑)信息。另外,元数据可以包括关于与从主机102接收的命令相对应的命令数据的信息、关于与命令相对应的命令操作的信息、关于将对其执行命令操作的存储器设备150的存储器块的信息以及关于与命令操作相对应的映射数据的信息。换句话说,元数据可以包括除了与从主机102接收的命令相对应的程序数据之外的所有信息和数据。
逻辑/物理(L2P:逻辑到物理)信息和物理/逻辑(P2L:物理到逻辑)信息意指控制器130响应于程序命令而映射与逻辑地址相对应的物理地址的信息。物理地址可以对应于存储器设备150的物理存储空间,在其中存储从主机102接收的程序数据。
控制器130可以将逻辑地址和物理地址之间的映射信息(即,逻辑/物理(L2P:逻辑到物理)信息和物理/逻辑(P2L:物理到逻辑)信息)存储在存储器设备150的存储器块552、554、562、564、572、574、582和584中的至少一个存储器块中。存储逻辑/物理(L2P:逻辑到物理)信息和物理/逻辑(P2L:物理到逻辑)信息的至少一个存储器块可以被称为系统块。
例如,控制器130将与从主机102接收的程序命令相对应的程序数据缓存并缓冲在控制器130的存储器144中的第一缓冲器510中,即,将用户数据的数据段512存储在第一缓冲器510中作为数据缓冲/缓存。此后,控制器130将存储在第一缓冲器510中的数据段512编程并存储在存储器设备150的存储器块552、554、562、564、572、574、582和584中的页中。
由于程序数据的数据段512被编程并存储在存储器设备150的存储器块552、554、562、564、572、574、582和584中的页中,因此控制器130生成L2P段522和P2L段524作为元数据,并将它们存储在控制器130的存储器144中的第二缓冲器520中。在控制器130的存储器144的第二缓冲器520中,L2P段522和P2L段524可以以列表的形式存储。然后,控制器130可以通过映射刷新操作将存储在第二缓冲器520中的L2P段522和P2L段524编程并存储在存储器设备150的存储器块552、554、562、564、572、574、582和584中的页中。
另外,控制器130可以从主机102接收读取命令和逻辑地址。响应于读取命令,控制器130可以从存储器设备150读取与主机102的逻辑地址相对应的L2P段522和P2L段524并将它们加载在第二缓冲器520中。然后,控制器130从加载在第二缓冲器520中的L2P段522和P2L段524检查对应于主机102的逻辑地址的存储器设备150的物理地址,从通过检查获知的存储位置(即存储器块552、554、562、564、572、574、582和584中的特定存储器块的特定页)读取用户数据的数据段512,将数据段512存储在第一缓冲器510中,并将数据段512提供到主机102。
如上所述,每次从主机102接收到读取命令和逻辑地址时,控制器130可以读取与主机102的逻辑地址对应的L2P段522和P2L段524,并且将它们加载在第二缓冲器520中。由于以这种方式加载L2P段522和P2L段524的操作被频繁地重复,因此它可以作为降低存储器系统110的读取性能的原因。
获得的第二缓冲器520的空间越多,控制器130一次可以从存储器设备150加载的L2P段522和P2L段524就越多。结果,即使通过对L2P段522和P2L段524的一次加载操作,也可以处理多个读取命令。由此,可以提高存储器系统110的读取性能。
可以优化L2P段以搜索对应于特定逻辑地址的物理地址,并且因此,在读取操作中,可以有效地搜索要映射到从主机102输入的逻辑地址的物理地址。
另外,可以针对编程操作优化P2L段524。当从主机102接收到程序命令、程序数据和逻辑地址时,控制器130可能需要在存储器设备150中快速分配存储空间以存储程序数据。在这方面,控制器130可以在第二缓冲器520中预先加载对应于可以是新分配的存储器设备150中的存储空间的物理地址的列表。因此,在从主机102接收到程序命令、程序数据和逻辑地址时,控制器130可以快速搜索加载在第二缓冲器520中的物理地址的列表,可以将与能够存储程序数据的存储空间相对应的物理地址与逻辑地址映射,并且然后可以将程序数据存储在与物理地址对应的存储空间中。可以生成P2L段524并将其临时存储在第二缓冲器520中。存储在第二缓冲器520中的P2L段524可以通过映射刷新操作存储在存储器设备150中。
图5是示意性地图示根据本公开的一个实施例的存储器系统110的操作的流程图。
在步骤S502,处理器134可以生成表示被包括在所检测的牺牲存储器块中的有效页的分布的有效页分布信息(VPDI)。根据本公开的一个实施例,当处理器134控制存储器设备150读取编程在参考图3描述的超级存储器块中的数据时,处理器134可以控制存储器设备150在不同存储器块中的每个存储器块内的页之间同时读取编程在相同索引的页中的数据。因此,与有效页集中在特定的索引时相比,当有效页更随机分布时,可以存在更多数目的读取操作,该读取操作读取被编程在相同数目的有效页中的数据,这些页位于被检测为牺牲存储器块的超级存储器块中。处理器134可以通过对被检测为牺牲存储器块的超级存储器块内的有效页的索引的数目计数来生成有效页分布信息(VPDI)。
图6A和图6B是示意性地图示超级存储器块中的有效页的分布的图。
例如,超级存储器块600可以包括第一至第四平面610至640,其分别包括第一至第四存储器块612至642。所有的第一至第四平面610至640可以被包括在相同的裸片602中。假设被包括在超级存储器块600的第一至第四存储器块612至642中的有效页的总数是4。
图6A示出了有效页集中在超级存储器块600内的特定索引处的情况。在所有页614至644中的有效页用交叉影线标识。
在超级存储器块600内的页中,相同索引的有效页可以被包括在第一至第四平面610至640中的不同的平面中,并且可以被布置在相同的行。例如,在第一至第四存储器块612至642内的页中,索引1至4的有效页可以分别布置在第一至第四行。
图6A例示了第一索引的所有页614至644是有效页,并且第二至第四索引的剩余页是无效页。如上面参考图5所述,处理器134可以控制存储器设备150执行单个读取操作,在该单个读取操作中,同时读取编程在超级存储器块600的不同存储器块内的页中的相同索引的页中的数据。因此,处理器134可以控制存储器设备150执行单个读取操作,在该单个读取操作中,同时读取编程在第一索引的页614到644中的有效数据,从而读取编程在超级存储器块600中的所有有效数据。
图6B示出了有效页分布在超级存储器块600内的几个索引上的情况。
图6B示出了所有有效页被包括在第一存储器块612中,而第二至第四存储器块622至642包括无效页。如所示的,有效页分别具有第一至第四索引,因此处理器134控制存储器设备150执行四次读取操作以读取编程在超级存储器块600中的所有有效数据。
如图6A和图6B中所例示的,用于读取超级存储器块600内的所有有效页的读取操作的数目可以取决于有效页的分布或有效页的索引的数目(在超级存储器块600内有相同数目的有效页的情况下)。随着有效页分布在超级存储器块600内的更少数目的索引中,读取超级存储器块600内的所有有效页的操作时间可以缩短,并且随着有效页分布在超级存储器块600内的更大数目的索引中,该操作时间可以延长。由于对超级存储器块600内的所有有效页的读取操作的操作时间与超级存储器块上的垃圾收集操作的操作时间成比例,因此超级存储器块600内的有效页的分布可以影响超级存储器块600上的垃圾收集操作的操作时间。
返回参考图5,在步骤S504,处理器134可以生成表示被包括在牺牲存储器块中的有效页的映射信息的序列或集中度信息(SOMD)。如上面参考图4所述,映射信息可以包括逻辑到物理(L2P)信息和物理到逻辑(P2L)信息。逻辑到物理(L2P)信息可以是与逻辑地址相对应的最近的物理地址的映射信息。物理到逻辑(P2L)信息可以是与物理地址相对应的逻辑地址的映射信息。基于物理到逻辑(P2L)信息,处理器134可以以映射段为单位划分页的逻辑地址,并且可以对具有包括被在牺牲存储器块中的有效页的逻辑地址的映射段的数目进行计数。处理器134可以对具有被包括在牺牲存储器块中的有效页的逻辑地址的映射段的数目进行计数,以作为集中度信息(SOMD),其可以是映射信息的集中度的指示。集中度信息(SOMD)可以表示牺牲存储器块内的有效页的逻辑地址的集中的程度。
根据本公开的一个实施例,处理器134可以根据映射信息的集中度信息(SOMD)动态地改变超级存储器块600的垃圾收集操作的操作时间。在牺牲存储器块内的有效页的逻辑地址更集中时,可以缩短执行映射更新操作的时间。在牺牲存储器块内的有效页的逻辑地址更随机时,可能需要更长的时间来执行映射更新操作。例如,与有效页的逻辑地址集中时相比,在有效页的逻辑地址是随机分布时,具有有效页的逻辑地址的映射段的数目可以更大。当具有有效页的逻辑地址的映射段的数目高或者当有效页的逻辑地址随机分布时,处理器134以映射段为单位执行映射更新操作可能花费更多时间。由于超级存储器块600的映射更新操作的操作时间与超级存储器块600上的垃圾收集操作的操作时间成比例,因此超级存储器块600内的有效页的逻辑地址的集中的程度可以影响超级存储器块600上的垃圾收集操作的操作时间。
在步骤S506,处理器134可以对牺牲存储器块内的有效页的数目(VPC)进行计数。随着牺牲存储器块内的有效页的数目(VPC)变大,作为有效数据读取操作的目标的有效数据的大小可能变大,因此执行读取有效数据的有效数据读取操作和执行将读取的有效数据编程到目标存储器块内的空白页中的有效数据编程操作可能要花费更多的时间。由于牺牲存储器块内有效页的数目(VPC)与有效数据读取操作和有效数据编程操作的操作时间成比例,因此牺牲存储器块内有效页的数目(VPC)可能会影响垃圾收集操作的操作时间。
在步骤S508,处理器134可以基于在步骤S502至S506获得的有效页分布信息(VPDI)、映射信息的集中度信息(SOMD)和牺牲存储器块内的有效页的数目(VPC)来确定垃圾收集操作的操作时间(GCPT)。根据本公开的一个实施例,当有效页的数目较高、当有效页分布在更多索引中和/或当映射信息分布更随机时,处理器134可以延长垃圾收集操作的操作时间(GCPT)。
在步骤S510,处理器134可以控制存储器设备150在垃圾收集操作的操作时间(GCPT)内执行垃圾收集操作,该操作时间在步骤S508确定。根据本公开的一个实施例,可以根据有效页分布信息(VPDI)、映射信息的集中度信息(SOMD)和牺牲存储器块内的有效页的数目(VPC)动态地改变垃圾收集操作的操作时间(GCPT),从而防止现有技术的问题,即闪存设备在固定时间内不能完成对其所有牺牲存储器块的垃圾收集操作,因此当存在大量有效页或有效页的逻辑地址太随机时,不能保证足够的存储器空间。
图7是示意性地图示生成有效页分布信息(VPDI)的步骤S502的流程图。
参考图5描述的步骤S502可以包括检测牺牲存储器块信息(VBI)的步骤S702、生成位图信息(BMI)的步骤S704和生成有效页分布信息(VPDI)的步骤S706。
在步骤S702,处理器134可以生成牺牲存储器块信息(VBI)。根据本公开的一个实施例,处理器134可以检测各自具有的有效页的数目小于阈值的超级存储器块,以作为牺牲存储器块,并且生成被检测为牺牲存储器块的超级存储器块的地址的信息作为牺牲存储器块信息(VBI)。
在步骤S704,处理器134可以根据在步骤S702生成的牺牲存储器块信息(VBI),生成被检测为牺牲存储器块的超级存储器块的位图信息(BMI)。处理器134可以生成位图,该位图具有与单个超级存储器块中的平面的数目相同数目的列并且具有与单个平面的存储器块中的页的数目相同数目的行。具有相同索引的页可以被包括在超级存储器块中的不同平面中,并且可以被布置在相同的行。处理器134可以通过区分被检测为牺牲存储器块的超级存储器块内的页中的有效页和无效页并且分别将有效页和无效页设置为具有值‘1’和‘0’作为位图的条目来生成位图信息(BMI)。
在步骤S706,处理器134可以通过对在步骤S704生成的位图内具有值‘1’的一个或多个条目的索引的数目进行计数来生成有效页分布信息(VPDI)。
图8是示意性地图示根据本公开的一个实施例的位图802的图。
根据本公开的一个实施例,位图802可以对应于单个超级存储器块。例示了单个超级存储器块包括相同的裸片的四个平面,并且每个平面包括单个存储器块。还例示了四个存储器块中的每个存储器块具有四个页。
处理器134可以分别在位图802的第一列到第四列中记录用于配置单个超级存储器块的存储器块的位信息。处理器134可以分别在位图802的第一行到第四行中记录用于配置单个超级存储器块的第一到第四平面的相应的存储器块的对应索引的页的位信息。如上所述,具有相同索引的页可以被包括在超级存储器块中包括的不同平面中,并且可以被布置在相同的行。
处理器134可以将对应于有效页的条目设置为具有值‘1’,并且可以将对应于无效页的条目设置为具有值‘0’。处理器134可以根据参考图4描述的逻辑到物理(L2P)信息和物理到逻辑(P2L)信息来确定超级存储器块中包括的页的有效性。处理器134可以从物理到逻辑(P2L)信息标识编程在页中的数据的逻辑地址,并且可以从逻辑到物理(L2P)信息标识对应于所标识的逻辑地址的最新的物理地址。当一页的逻辑地址对应于从逻辑到物理(L2P)信息标识的最新物理地址时,处理器134可以将该页确定为有效页,并且当一页的逻辑地址与从逻辑到物理(L2P)信息标识的最新物理地址不对应时,可以将该页确定为无效页。处理器134可以根据将对应页确定为有效页和无效页的结果来设置位图802内的值‘1’或‘0’。
在设置位图802的条目的值之后,处理器134可以对配置位图802的索引中具有值‘1’的一个或多个条目的索引的数目进行计数。如图8中所例示的,第一索引可以具有四个值‘1’的条目,第二索引可以具有一个值‘1’的条目,并且第三索引可以具有两个值‘1’的条目。因此,处理器134可以确定对应于位图802的单个超级存储器块具有三个索引,每个索引具有一个或多个有效页。以相同的方式,处理器134可以对配置对应于其他牺牲存储器块的位图的索引中具有值‘1’的一个或多个条目的索引的数目进行计数。基于在相应的牺牲存储器块中具有值‘1’的一个或多个条目的索引的数目,处理器134可以生成有效页分布信息(VPDI)。
图9是示意性地图示生成表示映射信息的集中度信息(SOMD)的步骤S504的流程图。
参考图5描述的步骤S504可以包括初始化映射段信息(MSI)的步骤S902、更新映射段信息(MSI)的步骤S904和生成映射信息的集中度信息(SOMD)的步骤S906。
在步骤S902,处理器134可以通过生成映射段信息(MSI)来执行初始化操作。处理器134可以通过将逻辑地址除以设定的数来生成映射段。例如,当通过将逻辑地址除以16来生成映射段时,处理器134可以使第零至第15逻辑地址成组为第一映射段,并且可以使第16至第31逻辑地址成组为第二映射段。处理器134可以初始化与映射段对应的所有位信息,以在映射段信息(MSI)内具有值‘0’。
在步骤S904,处理器134可以根据在参考图7描述的步骤S704处生成的位图信息(BMI)来更新在步骤S902处初始化的映射段信息(MSI)。处理器134可以更新位信息以在映射段信息(MSI)中具有值‘1’,该位信息对应于具有与位图802的条目中具有值‘1’的条目相对应的逻辑地址的映射段。例如,当被包括在牺牲存储器块中的有效页的逻辑地址是“20”并且以16个逻辑地址为单位生成映射段时,处理器134可以更新映射段信息(MSI)使得对应于第二映射段的位信息在映射段信息(MSI)内具有值‘1’。
在步骤S906,处理器134可以通过对与在步骤S904处更新的映射段信息(MSI)内具有值‘1’的位信息相对应的映射段的数目进行计数来生成映射信息的集中度信息(SOMD)。根据本公开的一个实施例,处理器134可以通过对与映射段信息(MSI)内具有值‘1’的位信息相对应的映射段的数目来获得有效页的集中度信息。假设被包括在牺牲存储器块中的有效页的数目恒定,则对应于在映射段信息(MSI)内具有值‘1’的位信息的更多数目的映射段可以表示有效页的逻辑地址的更随机的分布。
根据本公开的一个实施例,处理器134可以基于映射信息的集中度信息(SOMD),与映射段(对应于该映射段的位信息具有值‘1’)的数目成比例地延长垃圾收集操作的操作时间。由于对应于具有值‘1’的位信息的映射段的数目变大,所以有效页的逻辑地址可以更随机地分布,并且有效页的逻辑地址的更随机的分布可以导致用于映射更新操作的操作时间的增加。例如,当处理器134以映射段为单位执行映射更新操作时,映射更新操作的操作时间可以随着作为映射更新操作的目标的映射段的数目增加而增加。
图10是示意性地图示根据本公开的一个实施例的映射段信息的图。
图10图示了第零至第70逻辑地址作为示例。例示了以16个逻辑地址为单位生成映射段,并且牺牲存储器块具有四个有效页。
参考图10,处理器134可以执行更新操作,使得与映射段信息1002中包括的第一至第五映射段相对应的位信息具有值‘0’。处理器134可以通过使第零至第15逻辑地址LBA 0至LBA 15成组来生成第一映射段1012,并且可以通过使第16至第31逻辑地址LBA 16至LBA31成组来生成第二映射段1014。
参考图10,“<情况1>”分别示出了第一至第四有效页的第零至第三逻辑地址LBA 0至LBA 3。处理器134可以通过将第一映射段的位信息1022改变为具有值‘1’来对映射段信息1004执行更新操作,第一映射段包括第一到第四有效页的第零到第三逻辑地址LBA 0到LBA 3。处理器134可以通过对与映射段信息1004内具有值‘1’的位信息相对应的映射段的数目进行计数来生成映射信息的集中度信息(SOMD)。
参考图10,“<情况2>”分别示出了第一至第四有效页的第零、第20、第35和第55逻辑地址LBA 0、LBA 20、LBA 35和LBA 55。处理器134可以通过将第一至第四映射段的位信息1032、1034、1036和1038改变为具有值‘1’来对映射段信息1006执行更新操作,第一至第四映射段分别包括第一至第四有效页的第零、第20、第35和第55逻辑地址LBA 0、LBA 20、LBA35和LBA 55。处理器134可以通过对与映射段信息1006内具有值‘1’的位信息相对应的映射段的数目(该数目为4)进行计数来生成映射信息的集中度信息(SOMD)。
如“<情况1>”和“<情况2>”中所例示的,随着有效页的逻辑地址的分布更加随机,对应于具有值‘1’的位信息的映射段的数目变大。根据本公开的一个实施例,处理器134可以通过对与映射段信息内具有值‘1’的位信息相对应的映射段的数目进行计数来生成映射信息的集中度信息(SOMD),其表示有效页的逻辑地址的集中的程度。
图11是示意性地图示根据本公开的一个实施例的处理器134的框图。为清楚起见,图11图示了在参考图2描述的数据处理系统100的所有元件中与本公开的实施例有关的元件。
处理器134可以包括有效页数目计数器1102、有效页分布管理器1104、映射管理器1106、垃圾收集操作时间管理器1108和垃圾收集操作模块1110。
有效页数目计数器1102可以检测牺牲存储器块并且可以对牺牲存储器块中包括的有效页(VPC)的数目进行计数。根据本公开的一个实施例,有效页数目计数器1102可以检测各自具有比阈值(其可以预先确定)更少数目的有效页的超级存储器块,以作为牺牲存储器块,并且可以生成被检测为牺牲存储器块的超级存储器块的地址信息作为牺牲存储器块信息(VBI)。有效页数目计数器1102可以根据逻辑到物理(L2P)信息和物理到逻辑(P2L)信息来确定超级存储器块中包括的页的有效性。有效页数目计数器1102可以向垃圾收集操作时间管理器1108提供每个牺牲存储器块内的有效页的数目(VPC),并且可以向有效页分布管理器1104提供牺牲存储器块信息(VBI)。
有效页分布管理器1104可以根据牺牲存储器块信息(VBI)生成被检测为牺牲存储器块的超级存储器块的位图。有效页分布管理器1104可以生成如参考图8所描述的位图。
有效页分布管理器1104可以生成位图信息(BMI)和有效页分布信息(VPDI),如参考图7和图8所描述的。有效页分布管理器1104可以分别向垃圾收集操作时间管理器1108和映射管理器1106提供有效页分布信息(VPDI)和位图信息(BMI)。
映射管理器1106可以根据存储在存储器144中的位图信息(BMI)和逻辑到物理(L2P)信息以及物理到逻辑(P2L)信息生成映射信息的序列或集中度信息(SOMD),如参考图9和图10所描述的。映射管理器1106可以向垃圾收集操作时间管理器1108提供映射信息的序列或集中度信息(SOMD)。
垃圾收集操作时间管理器1108可以根据牺牲存储器块内的有效页分布信息(VPDI)、映射信息的集中度信息(SOMD)和有效页的数目(VPC)而动态地改变垃圾收集操作的操作时间(GCPT)。根据本公开的一个实施例,当有效页的数目较大、当有效页被分布成具有大量的索引和/或当映射信息更随机分布时,垃圾收集操作时间管理器1108可以延长垃圾收集操作的操作时间(GCPT)。根据本公开的一个实施例,当有效页的数目较小、当有效页被分布成具有少量的索引和/或映射信息集中分布时,垃圾收集操作时间管理器1108可以缩短垃圾收集操作的操作时间(GCPT)。
例如,垃圾收集操作时间管理器1108可以与映射段的数目成比例地延长垃圾收集操作的操作时间(GCPT),所述映射段与集中度信息(SOMD)内具有值‘1’的位信息相对应,集中度信息(SOMD)指示映射信息的集中度。随着对应于具有值‘1’的位信息的映射段的数目变大,有效页的逻辑地址的分布可能变得更随机。随着有效页的逻辑地址的分布变得更随机,超级存储器块的映射更新操作的操作时间可能变长。例如,当处理器134以映射段为单位执行映射更新操作时,随着作为映射更新操作的目标映射段的数目变大,超级存储器块的映射更新操作的操作时间可以变长。垃圾收集操作时间管理器1108可以向垃圾收集操作模块1110提供垃圾收集操作的操作时间(GCPT)的信息。
垃圾收集操作模块1110可以控制存储器设备150根据所提供的操作时间(GCPT)的信息在垃圾收集操作的操作时间(GCPT)内执行垃圾收集操作。根据本公开的一个实施例,可以根据有效页分布信息(VPDI)、映射信息的集中度信息(SOMD)和在牺牲存储器块内的有效页的数目(VPC)来动态地改变垃圾收集操作的操作时间(GCPT),从而防止现有技术的问题,即闪存设备不能在固定时间内完成对其所有牺牲存储器块的垃圾收集操作,因此当存在大量有效页或有效页的逻辑地址太随机时,不能保证足够的存储器空间。
图12是示意性地图示有效页分布管理器1104的框图。
有效页分布管理器1104可以包括位图生成部分1204和分布确定部分1206。
位图生成部分1204可以根据存储在存储器144中的牺牲存储器块信息(VBI)和逻辑到物理(L2P)信息以及物理到逻辑(P2L)信息来生成被检测为牺牲存储器块的超级存储器块的位图。位图生成部分1204可以生成位图,该位图具有与单个超级存储器块中的平面的数目相同数目的列并且具有与单个平面的存储器块中的页的数目相同数目的行。
位图生成部分1204可以从物理到逻辑(P2L)信息标识编程在分别对应于位图的条目的页中的数据的逻辑地址,并且可以从逻辑到物理(L2P)信息标识与所标识的逻辑地址对应的最新物理地址。当对应于位图的条目的页的逻辑地址对应于从逻辑到物理(L2P)信息标识的最新物理地址时,位图生成部分1204可以将对应于位图的条目的页确定为有效页,并且当对应于位图的条目的页的逻辑地址与从逻辑到物理(L2P)信息标识的最新物理地址不对应时,位图生成部分1204可以将该页确定为无效页。
位图生成部分1204可以通过将有效页和无效页分别设置为具有值‘1’和‘0’作为分别对应于超级存储器块的位图的条目来生成位图信息(BMI)。位图生成部分1204可以向分布确定部分1206提供位图信息(BMI)。
分布确定部分1206可以根据位图信息(BMI)生成有效页分布信息(VPDI)。分布确定部分1206可以通过对配置位图的索引中具有值‘1’的一个或多个条目的索引的数目进行计数来生成有效页分布信息(VPDI)。
图13是示意性地图示映射管理器1106的框图。
映射管理器1106可以包括映射段生成部分1302、映射段更新部分1304和计数部分1306。
映射段生成部分1302可以通过将页的逻辑地址除以固定单位来生成映射段,如参考图9的步骤S902和图10所描述的。
映射段更新部分1304可以更新映射段信息(MSI),如参考图9的步骤S904和图10所描述的。
计数部分1306可以生成映射信息的集中度信息(SOMD),如参考图9的步骤S906和图10所描述的。
下面参考图14至图16描述根据本公开的一个实施例的存储器系统110的存储器设备150。
图14是图示存储器设备150的示意图。图15是图示存储器设备150中的存储器块330的存储器单元阵列的示例性配置的电路图。图16是图示存储器设备150的示例性3D结构的示意图。
参考图14,存储器设备150可以包括多个存储器块BLOCK0至BLOCKN-1,其中N是大于1的整数。块BLOCK0至BLOCKN-1中的每个块可以包括多个页,例如,2M或M个页,其数目可以根据电路设计而变化,M是大于1的整数。每个页可以包括耦合到多个字线WL的多个存储器单元。
另外,相应的存储器块BLOCK0至BLOCKN-1中的存储器单元可以是存储1位数据的单层单元(SLC)或存储2位或更多位数据的多层单元(MLC)中的任意一种。因此,存储器设备150可以包括SLC存储器块或MLC存储器块,这取决于可在存储器块中的每个存储器单元中表达或存储的位的数目。SLC存储器块可以包括由存储器单元实施的多个页,每个存储器单元存储一位数据。SLC存储器块通常可以具有比MLC存储器块更高的数据计算性能和更高的耐用性。MLC存储器块可以包括多个页,这些页由存储器单元实施,每个存储器单元存储多位数据(例如,2位或更多位)。MLC存储器块通常可以具有比SLC存储器块更大的数据存储空间,即更高的集成密度。在其他实施例中,存储器设备150可以包括更高的多层单元块,诸如多个三层单元(TLC)存储器块或多个四层单元(QLC)存储器块。TLC存储器块可以包括多个页,这些页由每个能够存储3位数据的存储器单元实施。QLC存储器块可以包括多个页,这些页由每个能够存储4位数据的存储器单元实施。
代替非易失性存储器,存储器设备150可以由相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM(ReRAM))、铁电随机存取存储器(FRAM)和自旋转移转矩磁随机存取存储器(STT-RAM(STT-MRAM))中的任何一个来实施。
存储器块210、220、230、240可以存储通过编程操作从主机102传送的数据,并且可以通过读取操作将存储在其中的数据传送到主机102。
参考图15,存储器块330可以包括耦合到多个对应位线BL0至BLm-1的多个单元串340。每列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,多个存储器单元MC0到MCn-1可以串联耦合。在一个实施例中,存储器单元晶体管MC0至MCn-1中的每个存储器单元晶体管可以由能够存储多个位的数据信息的MLC实施。单元串340中的每个单元串可以电耦合到多个位线BL0到BLm-1中的对应位线。例如,如图15中所示,第一单元串耦合到第一位线BL0,并且最后的单元串耦合到最后的位线BLm-1。
尽管图15图示了NAND闪存单元,但是本公开不限于此。注意,存储器单元可以是NOR闪存单元,或包括组合在其中的两种或更多种存储器单元的混合闪存单元。另外,注意,存储器设备150可以是包括导电浮栅作为电荷存储层的闪存设备或包括绝缘层作为电荷存储层的电荷陷阱闪存(CTF)存储器设备。
存储器设备150还可以包括电压源310,其生成包括编程电压、读取电压和传递电压的不同字线电压,以根据操作模式提供给字线。电压源310的电压生成操作可以由控制电路(未图示)控制。在控制电路的控制下,电压源310可以选择存储器单元阵列的存储器块(或扇区)中的至少一个、选择所选择的存储器块的字线中的至少一个,并根据需要向所选择的(一个或多个)字线和未选择字线的提供字线电压。
存储器设备150可以包括由控制电路控制的读/写电路320。在验证/正常读取操作期间,读/写电路320可以作为读出放大器操作,以用于从存储器单元阵列读取(感测和放大)数据。在编程操作期间,读/写电路320可以作为写驱动器操作,以用于根据要存储在存储器单元阵列中的数据向位线提供电压或电流。在编程操作期间,读/写电路320可以从缓冲器(未图示)接收要存储到存储器单元阵列中的数据,并根据所接收的数据驱动位线。读/写电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页缓冲器322至326。页缓冲器322至326中的每个页缓冲器可以包括多个锁存器(未图示)。
存储器设备150可以由2D或3D存储器设备实施。特别地,如图16中所示,存储器设备150可以由具有3D堆叠结构的非易失性存储器设备实施。当存储器设备150具有3D结构时,存储器设备150可以包括多个存储器块BLK0至BLKN-1,其可以对应于图2中所示的存储器设备150的存储器块152、154和156。存储器块152、154和156中的每个存储器块可以以3D结构(或垂直结构)实现。例如,存储器块152、154和156中的每个存储器块以及共有的结构可以是三维的,其维度在相互正交的方向上延伸,例如,如图16中所示的x轴方向、y轴方向和z轴方向。
被包括在存储器设备150中的每个存储器块330可以包括在第二方向上延伸的多个NAND串NS,以及在第一方向和第三方向上延伸的多个NAND串NS。这里,每个NAND串NS可以耦合到位线BL、至少一个串选择线SSL、至少一个地选择线GSL、多个字线WL、至少一个伪字线DWL和公共源极线CSL,并且每个NAND串NS可以包括多个晶体管结构TS。
简而言之,表示存储器设备150的任何存储器块152、154和156的每个存储器块330可以耦合到多个位线BL、多个串选择线SSL、多个地选择线GSL、多个字线WL、多个伪字线DWL和多个公共源极线CSL,并且每个存储器块330可以包括多个NAND串NS。另外,在每个存储器块330中,一条位线BL可以耦合到多个NAND串NS,以在一个NAND串NS中实现多个晶体管。另外,每个NAND串NS的串选择晶体管SST可以耦合到对应的位线BL,并且每个NAND串NS的地选择晶体管GST可以耦合到公共源极线CSL。这里,存储器单元MC可以设置在每个NAND串NS的串选择晶体管SST和地选择晶体管GST之间。换句话说,可以在存储器设备150的每个存储器块330中实现多个存储器单元。
在下文中,参考图17至图25描述根据本公开的实施例的数据处理系统和电子装置,其中实施了包括上述控制器130和存储器设备150的存储器系统110。
图17是示意性地图示根据一个实施例的包括存储器系统的数据处理系统的另一示例的图。图17示意性地图示了可以应用存储器系统的存储卡系统。
参考图17,存储卡系统6100可以包括存储器控制器6120、存储器设备6130和连接器6110。
更具体地,存储器控制器6120可以电连接到并且被配置成访问由非易失性存储器实施的存储器设备6130。例如,存储器控制器6120可以被配置成控制存储器设备6130的读取、写入、擦除和后台操作。存储器控制器6120可以被配置成提供存储器设备6130与主机之间的接口,并使用固件来控制存储器设备6130。即,存储器控制器6120可以对应于参考图2描述的存储器系统110的控制器130,存储器设备6130可以对应于参考图2描述的存储器系统110的存储器设备150。
因此,存储器控制器6120可以包括RAM、处理器、主机接口、存储器接口和纠错部件。
存储器控制器6120可以通过连接器6110与外部设备(例如,图2的主机102)通信。例如,如参考图2所描述的,存储器控制器6120可以被配置成通过各种通信协议中的一种或多种与外部设备通信,通信协议诸如是通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI和蓝牙。因此,存储器系统和数据处理系统可以应用于有线/无线电子设备,特别是移动电子设备。
存储器设备6130可以由非易失性存储器实施。例如,存储器设备6130可以由各种非易失性存储器设备中的任意一种实施,非易失性存储器设备诸如是可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋扭矩转移磁RAM(STT-MRAM)。
存储器控制器6120和存储器设备6130可以被集成到单个半导体装置中以形成固态驱动器(SSD)。另外,存储器控制器6120和存储器设备6130可以如此集成以形成诸如PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑闪存(CF)卡、智能媒体卡(例如,SM和SMC)、存储棒、多媒体卡(例如,MMC、RS-MMC、微MMC和eMMC)、SD卡(例如,SD、miniSD、microSD和SDHC)以及通用闪存存储(UFS)。
图18是示意性地图示根据一个实施例的包括存储器系统的数据处理系统的另一示例的图。
参考图18,数据处理系统6200可以包括具有一个或多个非易失性存储器的存储器设备6230和用于控制存储器设备6230的存储器控制器6220。图18中图示的数据处理系统6200可以用作诸如存储器卡(CF、SD、micro-SD等)或USB设备的存储介质,如参考图2所描述的。存储器设备6230可以对应于图2中图示的存储器系统110中的存储器设备150,并且存储器控制器6220可以对应于图2中图示的存储器系统110中的控制器130。
存储器控制器6220可以响应于主机6210的请求来控制对存储器设备6230的读取、写入或擦除操作。存储器控制器6220可以包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224和诸如NVM接口6225的存储器接口。
CPU 6221可以控制对存储器设备6230的整体操作,例如,读取、写入、文件系统管理和坏页管理操作。RAM 6222可以根据CPU 6221的控制来操作,并且用作工作存储器、缓冲存储器或缓存存储器。当RAM 6222用作工作存储器时,由CPU 6221处理的数据可以临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可以用于缓冲从主机6210传输到存储器设备6230的数据,反之亦然。当RAM 6222用作缓存存储器时,RAM 6222可以帮助存储器设备6230高速操作。
ECC电路6223可以生成用于校正从存储器设备6230提供的数据的失效位或错误位的ECC(错误校正码)。ECC电路6223可以对提供给存储器设备6230的数据执行纠错编码,从而形成具有奇偶校验位的数据。奇偶校验位可以存储在存储器设备6230中。ECC电路6223可以对从存储器设备6230输出的数据执行纠错解码。ECC电路6223可以使用奇偶校验位来纠正错误。例如,ECC电路6223可以使用LDPC码、BCH码、turbo码、Reed-Solomon码、卷积码、RSC或诸如TCM或BCM的编码调制来纠正错误。
存储器控制器6220可以通过主机接口6224与主机6210交换数据。存储器控制器6220可以通过NVM接口6225与存储器设备6230交换数据。主机接口6224可以通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接到主机6210。存储器控制器6220可以具有利用诸如WiFi或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可以连接到外部设备(例如主机6210或另一外部设备),然后与外部设备交换数据。特别地,由于存储器控制器6220被配置成根据各种通信协议中的一个或多个与外部设备通信,所以存储器系统和数据处理系统可以应用于有线/无线电子设备,尤其是移动电子设备。
图19是示意性地图示根据一个实施例的包括存储器系统的数据处理系统的另一示例的图。图19示意性地图示了可以应用存储器系统的SSD。
参考图19,SSD 6300可以包括控制器6320和包括多个非易失性存储器的存储器设备6340。控制器6320可以对应于图2的存储器系统110中的控制器130,存储器设备6340可以对应于图2的存储器系统中的存储器设备150。
更具体地,控制器6320可以通过多个通道CH1至CHi连接到存储器设备6340。控制器6320可以包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324和存储器接口(例如,非易失性存储器接口6326)。
缓冲存储器6325可以临时存储从主机6310提供的数据或者从包括在存储器设备6340中的多个闪存NVM提供的数据。另外,缓冲存储器6325可以临时存储多个闪存NVM的元数据(例如,包括映射表的映射数据)。缓冲存储器6325可以由各种易失性存储器或非易失性存储器中的任意一种实施,易失性存储器诸如是DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM或诸如FRAM,ReRAM,STT-MRAM,非易失性存储器诸如是FRAM、ReRAM、STT-MRAM和PRAM。图19图示了缓冲存储器6325实施在控制器6320内。然而,在另一实施例中,缓冲存储器6325可以在控制器6320的外部。
ECC电路6322可以在编程操作期间计算要编程到存储器设备6340的数据的ECC值,在读取操作期间基于ECC值对从存储器设备6340读取的数据执行纠错操作,并且在失效数据恢复操作期间对从存储器设备6340恢复的数据执行纠错操作。
主机接口6324可以提供与外部设备(例如,主机6310)的接口功能,并且非易失性存储器接口6326可以提供与通过多个通道连接的存储器设备6340的接口功能。
另外,可以提供多个应用图2的存储器系统110的SSD 6300,以实施数据处理系统,例如RAID(独立磁盘冗余阵列)系统。RAID系统可以包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令而执行编程操作时,RAID控制器可以根据多个RAID水平(即,从SSD 6300中的主机6310提供的写入命令的RAID水平信息)选择一个或多个存储器系统或SSD 6300,并且将与写入命令相对应的数据输出到所选择的SSD 6300。另外,当RAID控制器响应于从主机6310提供的读取命令而执行读取命令时,RAID控制器可以根据多个RAID水平(即,从SSD 6300中的主机6310提供的写入命令的RAID水平信息)选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图20是示意性地图示根据一个实施例的包括存储器系统的数据处理系统的另一示例的图。图20示意性地图示了可以应用存储器系统的嵌入式多媒体卡(eMMC)。
参考图20,eMMC 6400可以包括控制器6430和由一个或多个NAND闪存实施的存储器设备6440。控制器6430可以对应于图2的存储器系统110中的控制器130。存储器设备6440可以对应于图2的存储器系统110中的存储器设备150。
更具体地,控制器6430可以通过多个通道连接到存储器设备6440。控制器6430可以包括一个或多个核6432、主机接口6431和存储器接口(例如NAND接口6433)。
核6432可以控制eMMC 6400的整体操作,主机接口6431可以提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可以提供存储器设备6440和控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口,例如,如参考图2所描述的MMC接口。另外,主机接口6431可以用作串行接口,例如,UHS((超高速)-I/UHS-II)接口。
图21至图24是示意性地图示根据多个实施例的包括存储器系统的数据处理系统的其他示例的图。图21至图24示意性地图示了可以应用存储器系统的UFS(通用闪存存储)系统。
参考图21至图24,UFS系统6500、6600、6700和6800可以分别包括主机6510、6610、6710和6810,UFS设备6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。主机6510、6610、6710和6810可以用作有线/无线电子设备或特别是移动电子设备的应用处理器,UFS设备6520、6620、6720和6820可以用作嵌入式UFS设备,并且UFS卡6530、6630、6730和6830可以用作外部嵌入式UFS设备或可移动UFS卡。
相应的UFS系统6500、6600、6700和6800中的主机6510、6610、6710和6810,UFS设备6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过UFS协议与外部设备通信(例如有线/无线电子设备或特别是移动电子设备),并且UFS设备6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过图2图示的存储器系统110来实施。例如,在UFS系统6500、6600、6700和6800中,UFS设备6520、6620、6720和6820可以以参考图18至图20所述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以以参考图17所述的存储卡系统6100的形式来实施。
另外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810、UFS设备6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过UFS接口(例如MIPI(移动工业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议))彼此通信。另外,UFS设备6520、6620、6720和6820与UFS卡6530、6630、6730和6830可以通过UFS协议以外的各种协议彼此通信,例如,UFD、MMC、SD、mini-SD和micro-SD。
在图21中图示的UFS系统6500中,主机6510、UFS设备6520和UFS卡6530中的每个可以包括UniPro。主机6510可以执行交换操作以与UFS设备6520和UFS卡6530进行通信。特别地,主机6510可以通过链路层交换(例如,在UniPro处的L3交换)来与UFS设备6520或UFS卡6530进行通信。UFS设备6520或UFS卡6530可以通过在主机6510的UniPro处的链路层交换来彼此通信。在图示的实施例中,一个UFS设备6520和一个UFS卡6530被连接到主机6510。然而,在另一实施例中,多个UFS设备和UFS卡可以并联或以星形的形式连接到主机6410。星形是其中单个装置与多个装置耦合以进行集中操作的一种布置。多个UFS卡可以并联或以星形的形式连接到UFS设备6520,或者串联或以链的形式连接到UFS设备6520。
在图22中图示的UFS系统6600中,主机6610、UFS设备6620和UFS卡6630中的每个可以包括UniPro。主机6610可以通过执行交换操作的交换模块6640(例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6640)来与UFS设备6620或UFS卡6630进行通信。UFS设备6620和UFS卡6630可以通过在UniPro处的交换模块6640的链路层交换来彼此通信。在图示实施例中,一个UFS设备6620和一个UFS卡6630被连接到交换模块6640。然而,在另一实施例中,多个UFS设备和UFS卡可以并联或以星形的形式连接到交换模块6640。多个UFS卡可以串联或以链的形式连接到UFS设备6620。
在图23中图示的UFS系统6700中,主机6710、UFS设备6720和UFS卡6730中的每个可以包括UniPro。主机6710可以通过执行交换操作的交换模块6740(例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740)与UFS设备6720或UFS卡6730通信。UFS设备6720和UFS卡6730可以通过在UniPro处的交换模块6740的链路层交换来彼此通信。交换模块6740可以在UFS设备6720内部或外部与UFS设备6720集成为一个模块。在图示实施例中,一个UFS设备6720和一个UFS卡6730被连接到交换模块6740。然而,在另一实施例中,均包括交换模块6740和UFS设备6720的多个模块可以并联或以星形的形式连接到主机6710。在另一示例中,多个模块可以串联或以链的形式彼此连接。另外,多个UFS卡可以并联或以星形的形式连接到UFS设备6720。
在图24中图示的UFS系统6800中,主机6810、UFS设备6820和UFS卡6830中的每个可以包括M-PHY和UniPro。UFS设备6820可以执行交换操作以与主机6810和UFS卡6830通信。特别地,UFS设备6820可以通过用于与主机6810通信的M-PHY和UniPro模块之间的交换操作和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作(例如通过目标ID(标识符)交换操作)来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可以通过UFS设备6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在图示实施例中,一个UFS设备6820被连接到主机6810并且一个UFS卡6830被连接到UFS设备6820。然而,在另一实施例中,多个UFS设备可以并联或以星形的形式连接到主机6810,或者串联或以链的形式连接到主机6810。多个UFS卡可以并联或以星形的形式连接到UFS设备6820,或者串联或以链的形式连接到UFS设备6820。
图25是示意性地图示根据本发明的一个实施例的包括存储器系统的数据处理系统的另一示例的图。图25是示意性地图示可以应用存储器系统的用户系统的图。
参考图25,用户系统6900可以包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可以驱动用户系统6900中的例如OS的组件,并且包括控制用户系统6900中包括的部件的控制器、接口和图形引擎。应用处理器6930可以作为片上系统(SoC)来提供。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或缓存存储器。存储器模块6920可以包括易失性RAM或非易失性RAM,易失性RAM诸如是DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR3 SDRAM或LPDDR3 SDRAM,非易失性RAM诸如是PRAM、ReRAM、MRAM或FRAM。例如,可以基于POP(封装上封装)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可以与外部设备通信。例如,网络模块6940不仅可以支持有线通信,还可以支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB),蓝牙、无线显示(WI-DI),从而与有线/无线电子设备,特别是与移动电子设备通信。因此,根据本发明的一个实施例的存储器系统和数据处理系统可以应用于有线/无线电子设备。网络模块6940可以被包括在应用处理器6930中。
存储模块6950可以存储数据(例如,从应用处理器6930接收的数据),然后可以将存储的数据传送到应用处理器6930。存储模块6950可以由非易失性半导体存储器设备(诸如相变RAM(PRAM)、磁RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存)实施,并且可以被提供为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。存储模块6950可以对应于参考图2描述的存储器系统110。另外,存储模块6950可以被实施成如上参考图19至图24所描述的SSD、eMMC和UFS。
用户接口6910可以包括用于将数据或命令输入到应用处理器6930或用于将数据输出到外部设备的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、发光二极管(LED)、扬声器和马达的用户输出接口。
另外,当图2的存储器系统110应用于用户系统6900的移动电子设备时,应用处理器6930可以控制移动电子设备的操作,并且网络模块6940可以用作用于控制与外部设备的有线/无线通信的通信模块。用户接口6910可以在移动电子设备的显示/触摸模块上显示由处理器6930处理的数据或支持从触摸面板接收数据的功能。
根据本发明的实施例,存储器系统可以通过根据工作负载动态地改变垃圾收集操作的操作时间来有效地执行垃圾收集操作。
虽然已经关于特定实施例说明和描述了本发明,但是根据本公开内容,对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种存储器系统,包括:
包括超级存储器块的存储器设备,每个超级存储器块具有多个存储器块;
垃圾收集操作时间管理器,适用于根据有效页的数目、所述有效页的分布和所述有效页的逻辑地址的分布来确定垃圾收集操作的操作时间;和
垃圾收集操作模块,适用于控制所述存储器设备在确定的所述操作时间内执行所述垃圾收集操作,
其中所述有效页的所述分布指示牺牲超级存储器块中的有效页所属的索引的数目。
2.根据权利要求1所述的存储器系统,其中所述垃圾收集操作时间管理器与所述有效页的所述数目成比例地延长所述操作时间。
3.根据权利要求1所述的存储器系统,其中所述垃圾收集操作时间管理器与所述索引的数目成比例地延长所述操作时间。
4.根据权利要求1所述的存储器系统,其中所述有效页的逻辑地址的分布指示牺牲超级存储器块中包括的有效页的逻辑地址所属的映射段的数目。
5.根据权利要求4所述的存储器系统,其中所述垃圾收集操作时间管理器与所述映射段的数目成比例地延长所述操作时间。
6.根据权利要求4所述的存储器系统,其中所述映射段表示多个逻辑地址的组,所述组通过将页的逻辑地址除以选择的数目形成。
7.根据权利要求1所述的存储器系统,其中所述牺牲超级存储器块包括小于阈值的数目的有效页。
8.根据权利要求1所述的存储器系统,其中所述索引中的每个索引表示布置在所述超级存储器块内的行处的页的组。
9.根据权利要求8所述的存储器系统,其中在单个读取操作期间,所述存储器设备读取编程在单个索引的所有页中的数据。
10.一种存储器系统的操作方法,所述操作方法包括:
根据有效页的数目、所述有效页的分布和所述有效页的逻辑地址的分布来确定垃圾收集操作的操作时间;以及
控制所述存储器设备以在确定的所述操作时间内执行所述垃圾收集操作,
其中所述有效页的分布指示牺牲超级存储器块中包括的有效页所属的索引的数目。
11.根据权利要求10所述的操作方法,其中在确定操作中,随着所述有效页的数目的增加,将所述操作时间确定为更长,所述操作时间与所述有效页的数目成比例。
12.根据权利要求10所述的操作方法,其中在确定操作中,随着所述索引的数目的增加,将所述操作时间确定为更长,所述操作时间与所述索引的数目成比例。
13.根据权利要求10所述的操作方法,其中所述有效页的逻辑地址的分布指示牺牲超级存储器块中包括的有效页的逻辑地址所属的映射段的数目。
14.根据权利要求13所述的操作方法,其中在确定操作中,随着所述映射段的数目的增加,将所述操作时间确定为更长,所述操作时间与所述映射段的数目成比例。
15.根据权利要求13所述的操作方法,其中所述映射段表示多个逻辑地址的组,所述组通过将页的逻辑地址除以选择的数目形成。
16.根据权利要求10所述的操作方法,其中所述牺牲超级存储器块包括小于阈值的数目的所述有效页。
17.根据权利要求10所述的操作方法,其中所述索引中的每个索引表示布置在所述超级存储器块内的行处的页的组。
18.根据权利要求17所述的操作方法,其中所述垃圾收集操作的步骤在单个读取操作期间读取编程在单个索引的所有页中的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180112756A KR102694952B1 (ko) | 2018-09-20 | 2018-09-20 | 메모리 시스템 및 그것의 동작방법 |
KR10-2018-0112756 | 2018-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928806A CN110928806A (zh) | 2020-03-27 |
CN110928806B true CN110928806B (zh) | 2023-04-07 |
Family
ID=69856540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910693846.0A Active CN110928806B (zh) | 2018-09-20 | 2019-07-30 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10936484B2 (zh) |
KR (1) | KR102694952B1 (zh) |
CN (1) | CN110928806B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI696073B (zh) * | 2019-04-02 | 2020-06-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20220093982A (ko) * | 2020-12-28 | 2022-07-05 | 삼성전자주식회사 | 파편화율을 이용하는 메모리 컨트롤러, 및 스토리지 장치 및 이의 동작 방법 |
CN112486854B (zh) * | 2020-12-28 | 2022-08-23 | 潍柴动力股份有限公司 | 与非型闪存Nand Flash存储管理方法及装置 |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014203316A1 (ja) * | 2013-06-17 | 2014-12-24 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、及び制御方法 |
CN104268094A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种优化的闪存地址映射方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166233B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Garbage collection for solid state disks |
JP5066199B2 (ja) * | 2010-02-12 | 2012-11-07 | 株式会社東芝 | 半導体記憶装置 |
US8626986B2 (en) | 2010-06-30 | 2014-01-07 | Sandisk Technologies Inc. | Pre-emptive garbage collection of memory blocks |
US8799561B2 (en) * | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
JP2016506585A (ja) * | 2013-01-08 | 2016-03-03 | ヴァイオリン メモリー インコーポレイテッド | データストレージのための方法及びシステム |
KR102292198B1 (ko) | 2014-10-15 | 2021-08-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 |
US9798657B2 (en) * | 2014-10-15 | 2017-10-24 | Samsung Electronics Co., Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
KR20160075229A (ko) | 2014-12-19 | 2016-06-29 | 삼성전자주식회사 | 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템 |
KR102301772B1 (ko) | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
CN106326133B (zh) * | 2015-06-29 | 2020-06-16 | 华为技术有限公司 | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 |
US10254998B2 (en) * | 2015-11-03 | 2019-04-09 | Samsung Electronics Co., Ltd. | Coordinated garbage collection of flash devices in a distributed storage system |
US10339044B2 (en) * | 2016-03-30 | 2019-07-02 | Sandisk Technologies Llc | Method and system for blending data reclamation and data integrity garbage collection |
-
2018
- 2018-09-20 KR KR1020180112756A patent/KR102694952B1/ko active IP Right Grant
-
2019
- 2019-05-29 US US16/425,065 patent/US10936484B2/en active Active
- 2019-07-30 CN CN201910693846.0A patent/CN110928806B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014203316A1 (ja) * | 2013-06-17 | 2014-12-24 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、及び制御方法 |
CN104268094A (zh) * | 2014-09-23 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种优化的闪存地址映射方法 |
Non-Patent Citations (2)
Title |
---|
"performance enhancement of garbage collection collection for flash storage devices:An efficient victim block selection design";Che-Wei Tsao;《IEEE》;1-6 * |
"基于超级块的实时闪存转换层的设计与研究";申兆岩;《中国优秀硕士学位论文全文数据库信息科技辑》(第02期);I137-45 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200033459A (ko) | 2020-03-30 |
US20200097401A1 (en) | 2020-03-26 |
US10936484B2 (en) | 2021-03-02 |
CN110928806A (zh) | 2020-03-27 |
KR102694952B1 (ko) | 2024-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144408B (zh) | 存储器系统及其操作方法 | |
KR102605609B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110928806B (zh) | 存储器系统及其操作方法 | |
KR102415875B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111309638B (zh) | 存储器系统及其操作方法 | |
CN110928805B (zh) | 存储器系统及其操作方法 | |
CN111367827B (zh) | 存储器系统及其操作方法 | |
CN110955611B (zh) | 存储器系统及其操作方法 | |
CN109656470B (zh) | 存储器系统及其操作方法 | |
CN110781095A (zh) | 控制器及其操作方法 | |
US20200125488A1 (en) | Memory system and operating method thereof | |
CN111290970B (zh) | 存储器系统及其操作方法 | |
CN110928485B (zh) | 存储器系统及其操作方法 | |
CN110751972A (zh) | 存储器系统及该存储器系统的操作方法 | |
US20190347193A1 (en) | Memory system and operating method thereof | |
CN111078583A (zh) | 存储器系统及其操作方法 | |
US10614890B2 (en) | Memory system and operating method thereof | |
CN110716881B (zh) | 存储器系统及其操作方法 | |
US11474723B2 (en) | Storage device and operating method thereof | |
CN110688060A (zh) | 存储器系统及该存储器系统的操作方法 | |
CN111241001B (zh) | 数据处理系统及其操作方法 | |
CN111258920A (zh) | 存储器系统、存储器系统的操作方法和控制器 | |
KR102422032B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111666232B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |