CN111831584A - 存储器***、存储器控制器及操作存储器控制器的方法 - Google Patents
存储器***、存储器控制器及操作存储器控制器的方法 Download PDFInfo
- Publication number
- CN111831584A CN111831584A CN201911172028.2A CN201911172028A CN111831584A CN 111831584 A CN111831584 A CN 111831584A CN 201911172028 A CN201911172028 A CN 201911172028A CN 111831584 A CN111831584 A CN 111831584A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- cache
- pages
- striped
- 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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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/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/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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/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/0647—Migration mechanisms
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
-
- 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)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及一种存储器***、存储器控制器及用于操作存储器控制器的方法。存储器控制器通过参考第一存储器和第二存储器来管理各个页面的状态,第一存储器存储包括各个页面的有效页面检查信息的有效页面表,并且第二存储器高速缓存高速缓存表,该高速缓存表包括用于更新有效页面表的一部分的信息并且具有小于有效页面表的大小,从而可以通过对页面状态信息的有效管理来提高写入性能。
Description
相关申请的交叉引用
本申请要求于2019年4月23日提交的申请号为10-2019-0047013的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种存储器***、存储器控制器及用于操作存储器控制器的方法。
背景技术
对应于存储装置的存储器***是一种基于主机的请求来存储数据的装置,主机诸如计算机、诸如智能手机和平板电脑的移动终端或各种电子装置。存储器***不仅可包括将数据存储在诸如硬盘驱动器(HDD)的磁盘中的装置,而且还包括将数据存储在诸如固态驱动器(SDD)、通用闪存(UFS)装置以及嵌入式MMC(eMMC)装置的非易失性存储器中的装置。
存储器***中包括的非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。
存储器***可进一步包括用于控制存储器装置的存储器控制器。存储器控制器可从主机接收命令,并且可基于所接收的命令,对于存储器***中包括的易失性存储器或非易失性存储器,执行或控制用于读取数据、写入数据或擦除数据的操作。
在存储器***的情况下,有必要检测存储器装置中的页面的状态,并且基于所检测的结果来执行相关的操作。然而,在常规存储器***的情况下,无法有效和快速地检测存储器装置中的页面的状态。
发明内容
各个实施例涉及用于有效地管理存储器装置中的页面的状态的存储器***、存储器控制器和用于操作存储器控制器的方法。
而且,各个实施例涉及能够通过对页面状态信息的有效管理来提高写入性能的存储器***、存储器控制器和用于操作存储器控制器的方法。
进一步地,各个实施例涉及能够进行基于高速缓存的页面状态信息管理的存储器***、存储器控制器和用于操作存储器控制器的方法。
此外,各个实施例涉及能够进行以下操作的存储器***、存储器控制器和用于操作存储器控制器的方法:在第一存储器中存储和管理页面状态信息,并且在不同于第一存储器的第二存储器中存储和管理更新页面状态信息所必需的信息,用于基于高速缓存的页面状态信息管理。
本公开的实施例可提供一种存储器***,包括:存储器装置,包括多个页面;以及存储器控制器,被配置成控制存储器装置的写入操作。
存储器控制器可通过参考第一存储器和第二存储器来管理各个页面的状态。
第一存储器和第二存储器中的至少一个可被包括在存储器控制器内。
第一存储器可存储有效页面表,该有效页面表包括各个页面的有效页面检查信息。
第二存储器可高速缓存高速缓存表,该高速缓存表包括用于更新有效页面表的一部分的信息并且具有小于有效页面表的大小。
存储器控制器可基于高速缓存表来更新有效页面表。
存储器控制器可通过参考经更新的有效页面表,将被检查为其中具有无效页面的任意一个第一块中的至少一个有效页面移动到不同于第一块的另一块中,并且可重置该至少一个有效页面的地址。
例如,第一存储器可以是动态RAM(DRAM),并且第二存储器可以是静态RAM(SRAM)。
可将多个页面分组为多个条带页面(stripe pages)。
高速缓存表可包括一个或多个第一高速缓存条目和多个第二高速缓存条目。
第一高速缓存条目中的每一个可包括多个条带页面之中的第一条带页面中的至少两个相应页面的新写入信息。
第二高速缓存条目中的每一个可包括多个条带页面之中的第二条带页面中的至少两个相应页面的无效页面改变信息。
有效页面表中与多个条带页面中的每一个相对应的位的数量可由对应于有效页面表中1位的大小、页面大小、管芯数量和每管芯的平面数量来定义。
至少两个第一高速缓存条目可分别对应于至少两个不同的操作事件。该至少两个第一高速缓存条目可由分别指示操作事件的第一高速缓存索引来识别。
该至少两个操作事件可包括写入操作事件、垃圾收集操作事件和刷新(refresh)操作事件中的至少两个。
在选择开放块之后,当执行了操作事件的特定条带页面与第一条带页面相同或者第一高速缓存条目为空时,存储器控制器可执行高速缓存更新操作,更新第一高速缓存条目中包括的第一条带页面中的至少两个相应页面的新写入信息。
在选择开放块之后,当特定条带页面不同于第一条带页面时,存储器控制器可基于第一高速缓存条目中包括的第一条带页面中的至少两个相应页面的新写入信息来执行更新第一存储器中存储的有效页面表的清除操作。
在执行清除操作之后,存储器控制器可执行更新第一高速缓存条目的高速缓存更新操作,以允许第一高速缓存条目包括特定条带页面中的至少两个相应页面的新写入信息。
存储器装置可包括多个存储块,并且多个存储块中的每一个可包括多个页面。
可将多个存储块分组为多个超级块。多个超级块中的每一个可包括至少两个条带页面。
第二高速缓存条目中的每一个可由第二高速缓存索引来识别,该第二高速缓存索引由超级块索引和条带页面索引的组合来定义。
在控制对特定超级块中的特定条带页面的写入操作之后,存储器控制器可计算特定第二高速缓存索引,该特定第二高速缓存索引由特定超级块的超级块索引和特定条带页面的条带页面索引的组合来定义。
当对应于特定第二高速缓存索引的第二高速缓存条目为空时,存储器控制器可在对应于特定第二高速缓存索引的第二高速缓存条目中执行高速缓存更新,更新特定条带页面中的至少两个相应页面的无效页面改变信息。
当对应于特定第二高速缓存索引的第二高速缓存条目对应于特定条带页面时,存储器控制器可在对应于特定第二高速缓存索引的第二高速缓存条目中执行高速缓存更新,更新特定条带页面中的至少两个相应页面的无效页面改变信息。
当对应于特定第二高速缓存索引的第二高速缓存条目不对应于特定条带页面时,存储器控制器可基于对应于特定第二高速缓存索引的第二高速缓存条目中包括的无效页面改变信息来执行更新第一存储器中存储的有效页面表的清除操作,并且可在对应于特定第二高速缓存索引的第二高速缓存条目中执行高速缓存更新,更新特定条带页面中的至少两个相应页面的无效页面改变信息。
存储器控制器可通过对对应于特定第二高速缓存索引的第二高速缓存条目中包括的无效页面改变信息与第一存储器中存储的有效页面表中包括的相应有效页面检查信息的异或(XOR)操作来执行更新第一存储器中存储的有效页面表的清除操作。
多个第二高速缓存条目可对应于最近执行写入操作的预设数量的最近超级块。
存储器控制器可在第一存储器中存储的有效页面表中直接更新不同于最近超级块的超级块中的各个页面的有效页面检查信息。
本公开的实施例可提供一种存储器控制器,包括:存储器接口,被配置成与包括多个页面的存储器装置通信;控制电路,被配置成控制存储器装置的操作;第一存储器,被配置成存储有效页面表,该有效页面表包括各个页面的有效页面检查信息;以及第二存储器,被配置成高速缓存高速缓存表,该高速缓存表包括用于更新有效页面表的一部分的信息并且具有小于有效页面表的大小。
控制电路可通过参考第一存储器和第二存储器来管理各个页面的状态。
可将多个页面分组为多个条带页面。
高速缓存表可包括一个或多个第一高速缓存条目和多个第二高速缓存条目。
第一高速缓存条目中的每一个可包括多个条带页面之中的第一条带页面中的至少两个相应页面的新写入信息。
第二高速缓存条目中的每一个可包括多个条带页面之中的第二条带页面中的至少两个相应页面的无效页面改变信息。
本公开的实施例可提供一种用于操作存储器控制器的方法,该存储器控制器用于控制存储器装置。
该用于操作存储器控制器的方法可包括:控制对存储器装置的写入相关操作;并且更新第一存储器和第二存储器的一个中存储的信息,以管理存储器装置的多个页面的状态。
第一存储器可存储包括多个相应页面的页面状态信息的有效页面表。
第二存储器可高速缓存高速缓存表,该高速缓存表包括用于更新有效页面表的一部分的信息并且具有小于有效页面表的大小。
该用于操作存储器控制器的方法可进一步包括:在更新之后,通过参考经更新的有效页面表,将被检查为存在于第一块中的至少一个有效页面移动到第二块,并且重置该至少一个有效页面的地址。
本公开的实施例可提供一种存储器***,包括:存储器装置,包括多个条带页面,每个条带页面包括多个单位页面;第一高速缓存,被配置成高速缓存第一表,该第一表具有分别代表条带页面内的每个单位页面的有效性的多个第一条目;第二高速缓存,被配置成高速缓存第二表,该第二表具有一个或多个第二条目,每个第二条目代表到条带页面之中相应的一个内的每个单位页面中的当前数据存储;第三高速缓存,被配置成高速缓存第三表,该第三表具有多个第三条目,每个第三条目代表条带页面之中相应的一个内的每个单位页面的当前无效;以及控制器。
控制器可根据对存储器装置内的一个或多个单位页面的数据存储和无效的一个或多个操作来更新第一至第三表之中的一个或多个。
控制器可根据第二和第三表的更新来更新第一表。
控制器可基于第一表来控制存储器装置以确保其可用存储器空间。
第二和第三高速缓存中的每一个比第一高速缓存操作得更快。
本公开的实施例可提供用于有效地管理存储器装置中的页面状态的存储器***、存储器控制器和用于操作存储器控制器的方法。
而且,本公开的实施例可提供能够通过对页面状态信息的有效管理来提高写入性能的存储器***、存储器控制器和用于操作存储器控制器的方法。
进一步地,本公开的实施例可提供能够进行基于高速缓存的页面状态信息管理的存储器***、存储器控制器和用于操作存储器控制器的方法。
此外,本公开的实施例可提供能够进行以下操作的存储器***、存储器控制器和用于操作存储器控制器的方法:在第一存储器中存储和管理页面状态信息,并且在不同于第一存储器的第二存储器中高速缓存和管理更新页面状态信息所必需的信息,用于基于高速缓存的页面状态信息管理,从而减少对第一存储器的访问计数,并通过这种方式提高写入性能。
附图说明
图1是示意性地示出根据本公开的实施例的存储器***的框图。
图2是示意性地示出根据本公开的实施例的存储器装置的框图。
图3是示意性地示出根据本公开的实施例的存储器装置的存储块的示图。
图4是示出根据本公开的实施例的页面状态信息管理方法的示图。
图5是根据本公开的实施例的利用页面状态信息的相关操作的进程的流程图。
图6是示出根据本公开的实施例的基于高速缓存的页面状态信息管理方法的示图。
图7是根据本公开的实施例的利用基于高速缓存的页面状态信息的相关操作的进程的流程图。
图8是示出根据本公开的实施例的利用页面状态信息的相关操作的示图。
图9是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理的存储器装置的结构的示图。
图10是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理的高速缓存单元的示图。
图11是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理在第一存储器中存储和管理的有效页面表的结构的示图。
图12是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理在第二存储器中高速缓存和管理的高速缓存表的高速缓存条目的基本结构的示图。
图13是根据本公开的实施例的针对基于高速缓存的页面状态信息管理在第二存储器中高速缓存和管理的高速缓存表的两个高速缓存条目的示图。
图14是根据本公开的实施例的针对基于高速缓存的页面状态信息管理在第二存储器中高速缓存和管理的高速缓存表的两个高速缓存条目的另一示图。
图15是根据本公开的实施例的针对基于高速缓存的页面状态信息管理在第二存储器中高速缓存和管理的高速缓存表的两个相应高速缓存条目的标识索引的示图。
图16是根据本公开的实施例的与第一高速缓存条目列表相关的基于高速缓存的页面状态信息管理方法的流程图。
图17至图20是根据本公开的实施例在与第一高速缓存条目列表相关的基于高速缓存的页面状态信息管理时更新第一高速缓存条目列表和更新与其相关的有效页面表的示图。
图21是根据本公开的实施例与第二高速缓存条目列表相关的基于高速缓存的页面状态信息管理方法的流程图。
图22至图26是根据本公开的实施例在与第二高速缓存条目列表相关的基于高速缓存的页面状态信息管理时更新第二高速缓存条目列表和更新与其相关的有效页面表的示图。
图27是根据本公开的实施例与第二高速缓存条目列表相关的另一基于高速缓存的页面状态信息管理方法的流程图。
图28是根据本公开的实施例与第二高速缓存条目列表相关的基于高速缓存的页面状态信息管理的最近开放块索引表的示图。
图29是示意性地示出根据本公开的实施例的计算***的框图。
具体实施方式
从本文中下面参照附图对示例性实施例的描述,本公开的优点和特征以及实现这些优点和特征的方法将变得显而易见。然而,本公开不限于本文所公开的示例性实施例,而是可以各种不同的方式来实施。提供示例性实施例来使本公开彻底,并且将本公开的范围充分传达到本公开所属领域的技术人员。应当注意的是,本公开的范围仅由权利要求来限定。
附图中给出的描述本公开的实施例的元件的图形、尺寸、比率、角度、数量仅仅是说明性的,而非限制性的。在整个说明书中,相同的附图标记指代相同的元件。在描述本公开时,当确定公知的相关技术的详细描述可能使本公开的主旨模糊时,将省略对其的详细描述。应当注意的是,除非另有具体说明,否则说明书和权利要求中使用的术语“包括”、“具有”、“包含”等不应被解释为限于其后列出的手段。除非另有特别说明,否则在涉及单数名词时使用不定冠词或定冠词的情况下,例如“一”、“一个”、“该”,可包括该名词的复数形式。
在解释本公开的实施例中的元件时,即使没有明确的陈述,这些元件也应当被解释为包括误差容限。
而且,在描述本公开的组件时,可使用如第一、第二、A、B、(a)和(b)的术语。这些只是为了将一个组件与另一组件区分开的目的,并且不是意指或暗示这些组件的实质、顺序、序列或数量。如果组件被描述为“连接”、“联接”或“链接”到另一组件,这可表示组件不仅直接“连接”、“联接”或“链接”,而且还经由第三组件间接“连接”、“联接”或“链接”。在描述位置关系时,诸如“元件B上的元件A”、“元件B上方的元件A”、“元件B下方的元件A”和“元件B旁边的元件A”,除非明确使用术语“直接地”或“紧接着”,否则另一元件C可设置在元件A与元件B之间。
而且,本公开的实施例中的元件不受这些术语的限制。这些术语仅用于区分一个元件与另一元件。因此,如本文所使用的,在本公开的技术构思内,第一元件可以是第二元件。
本公开的各个示例性实施例的特征可部分或全部联接、组合或分离。技术上,可以进行各种交互和操作。各个示例性实施例可单独或组合实施。
下文中,将通过本公开的实施例的各个示例,参照附图在下面详细描述存储器***、存储器控制器和用于操作存储器控制器的方法。
图1是示意性地示出根据本公开的实施例的存储器***100的框图。
参照图1,根据本公开的实施例的存储器***100可包括存储数据的存储器装置110和控制存储器装置110的存储器控制器120。
存储器装置110包括多个存储块,并且响应于存储器控制器120的控制而进行操作。存储器装置110的操作可包括例如读取操作、编程操作(也称为写入操作)及擦除操作。
存储器装置110可包括存储器单元阵列,存储器单元阵列包括存储数据的多个存储器单元。这种存储器单元阵列可存在于存储块中。
例如,存储器装置110可由DDR SDRAM(双倍数据速率同步动态随机存取存储器)、LPDDR4(低功率双倍数据速率4)SDRAM、GDDR(图形双倍数据速率)SDRAM、LPDDR(低功率DDR)SDRAM、RDRAM(Rambus动态随机存取存储器)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM/PCRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)来实现。
存储器装置110可以三维阵列结构来实现。本公开的实施例不仅可应用于其中电荷存储层由导电浮栅配置的闪速存储器装置,而且还可应用于其中电荷存储层由介电层配置的电荷撷取闪存(CTF)。
存储器装置110被配置成从存储器控制器120接收命令和地址,并且访问存储器单元阵列中通过地址选择的区域。也就是说,存储器装置110可对通过地址选择的区域执行对应于命令的操作。
例如,存储器装置110可执行编程操作、读取操作和擦除操作。在编程操作中,存储器装置110可将数据编程在通过地址选择的区域中。在读取操作中,存储器装置110可从通过地址选择的区域读取数据。在擦除操作中,存储器装置110可擦除通过地址选择的区域中存储的数据。
存储器控制器120可根据主机的请求或者不考虑主机的请求来控制存储器装置110的操作。
例如,存储器控制器120可控制对存储器装置110的写入(编程)操作、读取操作、擦除操作和后台操作。例如,后台操作可以是垃圾收集(GC)操作、损耗均衡(WL)操作、坏块管理(BBM)操作等。
参照图1,存储器控制器120可包括主机接口121、存储器接口122及控制电路123。
主机接口121提供用于与主机通信的接口。当从主机接收命令时,控制电路123可通过主机接口121接收命令,然后可执行处理所接收的命令的操作。
存储器接口122与存储器装置110联接,从而提供用于与存储器装置110通信的接口。也就是说,存储器接口122可被配置成响应于控制电路123的控制而提供存储器装置110与存储器控制器120之间的接口。
控制电路123执行存储器控制器120的一般控制操作,从而控制存储器装置110的操作。为此,例如,控制电路123可包括处理器124和工作存储器125中的至少一个,并且视情况而定,可进一步包括错误检测和校正电路(ECC电路)126。
处理器124可控制存储器控制器120的一般操作,并且可执行逻辑计算。处理器124可通过主机接口121与主机通信,并且可通过存储器接口122与存储器装置110通信。
处理器124可执行闪存转换层(FTL)的功能。处理器124可通过闪存转换层(FTL)将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。闪存转换层(FTL)可接收逻辑块地址(LBA),并且通过使用映射表来将该逻辑块地址转换成物理块地址(PBA)。根据映射单元,存在闪存转换层的各种地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器124被配置成将从主机接收的数据随机化。例如,处理器124可通过使用随机化种子来将从主机接收的数据随机化。经随机化的数据作为待存储的数据被提供到存储器装置110,并且被编程到存储器单元阵列。
处理器124被配置成在读取操作中将从存储器装置110接收的数据去随机化。例如,处理器124可通过使用去随机化种子来将从存储器装置110接收的数据去随机化。经去随机化的数据可被输出到主机。
处理器124可通过运行固件来控制存储器控制器120的操作。为了控制存储器控制器120的一般操作并执行逻辑计算,处理器124可在启动时运行(驱动)被加载到工作存储器125的固件。例如,该固件可存储在存储器装置110中,并被加载到工作存储器125中。
作为在存储器***100中运行的程序的固件可包括例如闪存转换层(FTL)、主机接口层(HIL)及闪存接口层(FIL),其中闪存转换层(FTL)执行从主机向存储器***100请求的逻辑地址与存储器装置110的物理地址之间的转换功能,主机接口层(HIL)用于分析从主机向作为存储装置的存储器***100请求的命令并将该命令传输到闪存转换层(FTL),并且闪存接口层(FIL)将从闪存转换层(FTL)指示的命令传输到存储器装置110。
工作存储器125可存储驱动存储器控制器120所必需的固件、程序代码、命令和数据。
例如作为易失性存储器的工作存储器125可包括静态RAM(SRAM)、动态RAM(DRAM)和同步DRAM(SDRAM)之中的至少一种。
错误检测和校正电路126可被配置成通过使用错误校正码来检测工作存储器125中存储的数据(也就是从存储器装置110传输的读取数据)的错误位,并且校正检测到的错误位。
错误检测和校正电路126可通过使用错误校正码来解码数据。错误检测和校正电路126可包括各种代码解码器。例如,可使用执行非***代码解码的解码器或执行***代码解码的解码器。
例如,错误检测和校正电路126可以扇区为单位来检测每个读取数据的错误位。即,每个读取数据可由多个扇区构成。扇区可表示小于作为闪速存储器读取单位的页面的数据单位。构成每个读取数据的扇区可通过使用地址的介质来彼此匹配。
错误检测和校正电路126可以扇区为单位计算位错误率(BER),并且可确定错误是否可校正。例如,当位错误率(BER)高于参考值时,错误检测和校正电路126可确定相应的扇区是不可校正的或失败。当位错误率(BER)低于参考值时,错误检测和校正电路126可确定相应的扇区是可校正的或通过。
错误检测和校正电路126可对所有读取数据顺序地执行错误检测和校正操作。当读取数据中包括的扇区是可校正的时,错误检测和校正电路126可忽略对下一读取数据的相应扇区的错误检测和校正操作。如果以这种方式结束了对所有读取数据的错误检测和校正操作,则错误检测和校正电路126可检测被确定为始终不可校正的扇区。可能存在被确定为不可校正的一个或多个扇区。错误检测和校正电路126可将关于被确定为不可校正的扇区的信息(例如,地址信息)传输到处理器124。
总线127可被配置成在存储器控制器120的组件121、122、124、125和126之间提供信道。总线127可包括例如用于传输各种控制信号、命令等的控制总线、用于传输各种数据的数据总线等。
存储器控制器120的上述组件121、122、124、125和126仅用于说明的目的。可省略所提及的组件121、122、124、125和126中的一些,可将所提及的组件121、122、124、125和126中的一些组合为一个,或者可添加至少一个组件。
在下文中,将参照图2进一步详细描述存储器装置110。
图2是示意性地示出根据本公开的实施例的存储器装置110的框图。
参照图2,根据实施例的存储器装置110可包括存储器单元阵列210、地址解码器220、读取和写入电路230、控制逻辑240以及电压生成电路250。
存储器单元阵列210可包括多个存储块BLK1至BLKz(其中z是2或更大的自然数)。
在多个存储块BLK1至BLKz中,可设置多个字线WL和多个位线BL,并且可布置多个存储器单元(MC)。
多个存储块BLK1至BLKz可通过多个字线WL联接到地址解码器220。多个存储块BLK1至BLKz可通过多个位线BL联接到读取和写入电路230。
多个存储块BLK1至BLKz中的每一个可包括多个存储器单元。例如,多个存储器单元可以是非易失性存储器单元,并且可由具有垂直沟道结构的非易失性存储器单元来配置。存储器单元阵列210可由二维结构的存储器单元阵列来配置,或者视情况而定,可由三维结构的存储器单元阵列来配置。
包括在存储器单元阵列中的多个存储器单元中的每一个可存储至少1位数据。例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储1位数据的单层单元(SLC)。再例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储2位数据的多层单元(MLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储3位数据的三层单元(TLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储4位数据的四层单元(QLC)。还例如,存储器单元阵列210可包括多个存储器单元,多个存储器单元中的每一个存储5位或更多位数据。
参照图2,地址解码器220、读取和写入电路230、控制逻辑240和电压生成电路250可作为驱动存储器单元阵列210的***电路而操作。
地址解码器220可通过多个字线WL联接到存储器单元阵列210。地址解码器220可被配置成响应于控制逻辑240的控制进行操作。地址解码器220可通过存储器装置110中的输入/输出缓冲器来接收地址。
地址解码器220可被配置成对所接收的地址中的块地址进行解码。地址解码器220可根据经解码的块地址来选择至少一个存储块。地址解码器220可在读取操作期间将电压生成电路250中生成的读取电压Vread施加到在读取电压施加操作中选择的存储块中选择的字线,并且可将通过电压Vpass施加到剩余的未选择的字线。进一步地,地址解码器220可在编程验证操作中将电压生成电路250中生成的验证电压施加到在所选择的存储块中选择的字线,并且可将通过电压Vpass施加到剩余的未选择的字线。
地址解码器220可被配置成对所接收的地址中的列地址进行解码。地址解码器220可将经解码的列地址传送到读取和写入电路230。
可以页面为单位来执行对存储器装置110的读取操作和编程操作。在请求读取操作或编程操作时接收的地址可包括块地址、行地址和列地址。
地址解码器220可根据块地址和行地址来选择一个存储块和一个字线。列地址可通过地址解码器220被解码,并被提供到读取和写入电路230。
地址解码器220可包括块解码器、行解码器、列解码器以及地址缓冲器之中的至少一个。
读取和写入电路230可包括多个页面缓冲器PB。读取和写入电路230可在存储器单元阵列210的读取操作中作为读取电路来操作,并且可在存储器单元阵列210的写入操作中作为写入电路来操作。
上述读取和写入电路230可包括页面缓冲器电路或数据寄存器电路。例如,数据寄存器电路可包括用于执行数据处理功能的数据缓冲器,并且可进一步包括用于执行高速缓存功能的高速缓存缓冲器。
多个页面缓冲器PB可通过多个位线BL联接到存储器单元阵列210。多个页面缓冲器PB可向与存储器单元联接的位线连续地供应感测电流,以在读取操作和编程验证操作中感测存储器单元的阈值电压(Vth),并且可借由通过感测节点感测电流量根据相应存储器单元的编程状态而改变来锁存感测数据。读取和写入电路230可响应于从控制逻辑240输出的页面缓冲器控制信号进行操作。
在读取操作中,读取和写入电路230通过感测存储器单元的数据来暂时存储读取数据,然后将数据DATA输出到存储器装置110的输入/输出缓冲器。作为示例性实施例,读取和写入电路230除了包括页面缓冲器(或页面寄存器)之外,还可包括列选择电路。
控制逻辑240可与地址解码器220、读取和写入电路230以及电压生成电路250联接。控制逻辑240可通过存储器装置110的输入/输出缓冲器接收命令CMD和控制信号CTRL。
控制逻辑240可被配置成响应于控制信号CTRL来控制存储器装置110的一般操作。进一步地,控制逻辑240可输出用于调整多个页面缓冲器PB的感测节点的预充电电位电平的控制信号。
控制逻辑240可控制读取和写入电路230来执行存储器单元阵列210的读取操作。
电压生成电路250可响应于从控制逻辑240输出的电压生成电路控制信号在读取操作中生成读取电压Vread和通过电压Vpass。
图3是示意性地示出根据本公开的实施例的存储器装置110的多个存储块BLK1至BLKz中的一个的示图。
参照图3,存储器装置110中包括的多个存储块BLK1至BLKz中的每一个可被配置为以矩阵的形式设置的多个页面PG和多个串STR。
多个页面PG对应于多个字线WL,并且多个串STR对应于多个位线BL。
也就是说,在多个存储块BLK1至BLKz的每一个中,多个字线WL和多个位线BL可被设置成彼此相交。例如,多个字线WL中的每一个可设置在行方向上,并且多个位线BL中的每一个可设置在列方向上。再例如,多个字线WL中的每一个可设置在列方向上,并且多个位线BL中的每一个可设置在行方向上。
由于多个字线WL和多个位线BL彼此相交,所以可定义多个存储器单元MC。可在每个存储器单元MC中设置晶体管。例如,设置在每个存储器单元MC中的晶体管可包括漏极、源极和栅极。晶体管的漏极(或源极)可直接或经由一个或多个其它晶体管与相应的位线联接,晶体管的源极(或漏极)可直接或经由一个或多个其它晶体管与源极线(可以是接地线)联接,并且晶体管的栅极可包括由电介质包围的浮栅和向其施加栅极电压的控制栅极。
可以页面为单位来执行读取操作和编程操作(写入操作),并且可以存储块为单位来执行擦除操作。
参照图3,在多个存储块BLK1至BLKz中的每一个中,可在两个最外字线之间更靠近读取和写入电路230的第一最外字线的外部另外设置第一选择线(也称为源极选择线或漏极选择线),并且可在两个最外字线之间的第二最外字线的外部另外设置第二选择线(也称为漏极选择线或源极选择线)。
可在第一最外字线与第一选择线之间另外设置至少一个虚设字线。也可在第二最外字线与第二选择线之间另外设置至少一个虚设字线。
根据本公开的实施例的存储器***100可检测存储器装置110中的多个页面PG的状态(例如,有效状态、无效状态等),并且通过使用检测到的状态,可执行与页面PG的状态相关的各种操作。这将在下面进行详细描述。
图4是示出根据本公开的实施例的页面状态信息管理方法的示图。
参照图4,存储器控制器120可检测存储器装置110中的多个页面PG的状态(例如,有效状态、无效状态等),并且通过使用检测到的状态,可执行与页面状态相关的各种操作。
存储器控制器120可参考有效页面表(VPT)来检测(检查)存储器装置110中的各个页面PG的状态(例如,有效状态、无效状态等)。
VPT可包括有效页面检查信息,该信息指示多个页面PG中的每一个是否是有效页面。有效页面检查信息是指示页面状态的信息,也可被称为页面状态信息。
例如,如果有效页面检查信息为1,则相应的页面PG可以是有效页面,并且如果有效页面检查信息为0,则相应的页面PG可以是无效页面。
VPT可包括所有页面PG的有效页面检查信息。例如,如果所有页面PG中的每一个的有效页面检查信息为1,则相应的页面PG可以是有效页面,并且如果所有页面PG中的每一个的有效页面检查信息为0,则相应的页面PG可以是无效页面。
再例如,VPT可包括所有页面PG之中的仅一些页面PG的有效页面检查信息。在这种情况下,可仅针对每个是有效页面或无效页面的一些页面PG,包括每个指示有效页面或无效页面的有效页面检查信息。
作为与页面状态相关的各种操作,各自根据页面状态执行适当处理的任何操作是可能的。
例如,与页面状态相关的各种操作可包括诸如垃圾收集和坏块管理的块管理操作,以及用于增加存储器装置110中的有效存储空间的存储器管理操作。
在本说明书中,页面状态管理可表示用于检测每个页面PG的状态并存储和更新状态信息的“页面状态信息管理”,并且可包括基于通过这种页面状态信息管理处理的页面状态信息来执行各种相关操作。
图5是根据本公开的实施例的利用页面状态信息的相关操作的进程的流程图。
参照图5,根据本公开的实施例的利用页面状态信息的相关操作处理方法(页面状态管理方法)可包括步骤S510和步骤S520,在步骤S510中,存储器控制器120处理写入相关操作事件,从而控制存储器装置110中的写入相关操作,在步骤S520中,因为存储器控制器120处理写入相关操作事件,当执行写入相关操作时,存储器控制器120更新VPT。
存储器控制器120可在每次执行写入相关操作时更新VPT,或者可不在每次执行写入相关操作时都更新VPT,但可在执行一些写入相关操作时更新VPT。
参照图5,根据本公开的实施例的利用页面状态信息的相关操作处理方法(页面状态管理方法)还可包括步骤S530,在步骤S530中,存储器控制器120通过参考经更新的VPT来执行诸如垃圾收集的相关操作。
VPT包括以逻辑页面为单位指示页面状态的有效页面检查信息。这种VPT可被实施为一种类型的位图。
VPT的大小可能较大。由于这个事实,VPT可存储在DRAM中。DRAM可存在于存储器控制器120内部,或者可存在于存储器控制器120外部。当DRAM存在于存储器控制器120内部时,DRAM可以是工作存储器125,或者可以是工作存储器125中包括的至少两个存储器中的一个。
此外,在从DRAM读取数据和向DRAM写入数据时使用的数据单位和在DRAM中存储的数据中改变的数据部分的单位可能彼此不同。例如,虽然可以1或2个字节为单位从DRAM读取数据和向DRAM写入数据,但DRAM中存储的数据中待改变的数据的一部分可以是位单位。因此,为了更新DRAM中存储的VPT,需要读取修改写入(RMW)操作。
因此,当更新DRAM中存储的VPT时,需要执行DRAM的RMW操作,并且每次执行DRAM的RMW操作可能导致处理延迟。
因DRAM的RMW操作所导致的这种延迟可能降低VPT的更新速度,并且最终可能成为使页面状态管理的性能劣化的主要因素。执行VPT更新越频繁,也就是说,对DRAM的访问越频繁,因DRAM的RMW操作所导致的延迟和伴随的问题(更新速度降低、页面状态管理性能劣化等)可能变得更加严重。
考虑到这一点,本公开的实施例可提供一种基于高速缓存的页面状态信息管理方法,该方法能够有效地存储较大大小的VPT,减少对存储较大大小的VPT的存储器空间的访问,并且正常且快速地执行VPT的更新,从而允许更有效地执行利用VPT的页面状态管理。
图6是示出根据本公开的实施例的基于高速缓存的页面状态信息管理方法的示图。
参照图6,针对基于高速缓存的页面状态信息管理,根据本公开的实施例的存储器***100可包括存储器装置110和存储器控制器120,存储器装置110包括多个页面PG,并且存储器控制器120控制存储器装置110的写入操作。
存储器控制器120可通过参考第一存储器610和第二存储器620来管理存储器装置110的各个页面PG的状态。
第一存储器610可存储VPT,该VPT包括各个页面PG的有效页面检查信息。有效页面检查信息也可被称为页面状态信息。
第二存储器620可高速缓存高速缓存表(CT),该高速缓存表(CT)包括用于更新VPT的一部分的信息。
CT可具有比VPT更小的大小。也就是说,CT可包括比VPT更少量的信息。
第一存储器610和第二存储器620中的至少一个可包括在存储器控制器120内。例如,第一存储器610和第二存储器620中的一个可被包括在设置在存储器控制器120中的工作存储器125中。再例如,第一存储器610和第二存储器620两者都可被包括在设置在存储器控制器120中的工作存储器125中。
存储VPT的第一存储器610可以是DRAM,并且高速缓存CT的第二存储器620可以是能够比DRAM更快输入/输出的静态RAM(SRAM)。
如上所述,存储器控制器120的控制电路123可通过参考第一存储器610和第二存储器620来管理存储器装置110的各个页面PG的状态。
更详细地,存储器控制器120可将CT高速缓存在第二存储器620中,或者更新高速缓存在第二存储器620中的CT,并且根据其结果,可更新VPT并通过参考经更新的VPT来执行诸如垃圾收集的相关操作。
存储器控制器120可以不需要在每个操作事件中都访问第一存储器610并从而每次都更新VPT。操作事件可能是需要更新VPT的操作事件。例如,操作事件可以是写入相关操作事件,并且可以是写入操作事件、垃圾收集操作事件或刷新操作事件。刷新操作可指代将存储器装置110中存储的数据写入到存储器装置110的另一区域的操作。
存储器控制器120可高速缓存和更新对更新CT中的VPT所必需的信息,并且可仅在需要的情况下,与CT的高速缓存和更新相关地,有限地执行对第一存储器610的访问和VPT的更新,而不是在每个操作事件执行对第一存储器610的访问和VPT的更新。
因此,对第一存储器610的访问和通过该访问对VPT的更新可能比对第二存储器620的访问和通过该访问对CT的更新发生的频率低。
根据上述页面状态信息管理方法,可将较大大小的VPT存储在第一存储器610中,可减少对存储较大大小的VPT的第一存储器610的访问,并且通过利用CT,可以不太频繁的计数来快速且精确地执行VPT的更新。因此,可更有效且更快速地执行利用VPT的页面状态管理。
图7是根据本公开的实施例的利用基于高速缓存的页面状态信息的相关操作的进程的流程图。
参照图7,在根据本公开的实施例的利用基于高速缓存的页面状态信息的相关操作处理方法(也就是利用基于高速缓存的页面状态信息的页面状态管理方法)中,在步骤S710之后实施主页面状态信息管理,其中在步骤S710中,存储器控制器120通过处理写入相关操作事件来控制存储器装置110中的写入相关操作。
在存储器控制器120执行写入相关操作之后,为了管理存储器装置110的各个页面PG的状态,存储器控制器120可更新作为不同于存储器装置110的存储器组件的第一存储器610和第二存储器620的一个中存储的信息(VPT中的信息或CT中的信息)。
更详细地,参照图7,在步骤S710之后,也就是在存储器控制器120执行写入相关操作之后,根据本公开的实施例的利用基于高速缓存的页面状态信息的相关操作处理方法(也就是利用基于高速缓存的页面状态信息的页面状态管理方法)可包括步骤720和步骤S730,其中在步骤S720中,执行CT的更新(可包括高速缓存操作),并且在步骤S730中,在CT被更新之后,存储器控制器120立即或在要求的时间更新VPT。
VPT的更新可基于更新之前已高速缓存的CT来执行,或者可联系CT的更新操作来执行。在本说明书中,VPT的更新也被称为清除操作。
参照图7,根据本公开的实施例的利用基于高速缓存的页面状态信息的相关操作处理方法(也就是利用基于高速缓存的页面状态信息的页面状态管理方法)可进一步包括步骤S730之后的步骤S740,在步骤S740中,存储器控制器120通过参考经更新的VPT来执行诸如垃圾收集的相关操作。
在步骤S740执行垃圾收集作为相关操作的情况下,存储器控制器120可通过参考经更新的VPT将被检查为具有存在无效页面的第一块中的至少一个有效页面移动(或复制)到不同于第一块的块(可以是好块或空块),可重置该至少一个有效页面的地址,并且可收集第一块中的无效页面。
第一块和不同于该第一块的块中的每一个可以是一个存储块BLK,可以是至少两个存储块BLK的组,可不精确地对应于一个或多个存储块BLK,可以是至少两个页面PG的组,并且可以是各种存储空间。
在垃圾收集之前,第一块可能仅包括无效页面,或者可能包括有效页面和无效页面二者。当执行垃圾收集之前第一块包括有效页面和无效页面二者时,随着垃圾收集的执行,第一块可仅包括无效页面,而没有移动到另一块的有效页面,或者可包括原样复制到另一块的有效页面,以及无效页面。
根据垃圾收集,不同于第一块的块仅包括有效页面。不同于第一块的块可以是好块和空块。
当执行垃圾收集时,存储器控制器120可擦除包括无效页面的第一块中的所有数据。然后,存储器控制器120可将第一块重新用作正常块(也被称为好块)。根据这个事实,可提高块的可用性。
图8是示出根据本公开的实施例的利用页面状态信息的相关操作的示图。图8是概念性地示出垃圾收集作为利用页面状态信息的相关操作的图示的示图。
参照图8,存储器控制器120可通过参考经更新的VPT来检测存储器装置110中的多个存储块BLK的每一个中包括的多个页面PG中的每一个的页面状态(例如,有效页面状态、无效页面状态等)。
VPT可包括多个页面PG中的每一个的页面状态信息(有效页面检查信息),使得存储器控制器120可检测多个页面PG中的每一个的页面状态(例如,有效页面状态、无效页面状态等)。
例如,存储器控制器120可基于经更新的VPT中包括的多个存储块BLK中的每一个中包括的多个页面PG中的每一个的页面状态信息(有效页面检查信息),在存储器装置110中的多个存储块BLK中的每一个中包括的多个页面PG之中可区分地检测有效页面VPG和无效页面IVPG。
根据图8的图示,作为通过参考VPT检查页面状态的结果,第一存储块BLK1包括两个有效页面VPG和两个无效页面IVPG。第二存储块BLK2包括一个有效页面VPG和三个无效页面IVPG。
存储器控制器120将在第一存储块BLK1中检查到的两个有效页面VPG移动(或复制)到第三存储块BLK3,并且将在第二存储块BLK2中检查到的一个有效页面VPG移动(或复制)到第三存储块BLK3。根据这个事实,第三存储块BLK3可仅包括三个有效页面VPG,没有无效页面。
关于上述处理之后的第一存储块BLK1的状态,第一存储块BLK1可包括对应于第三和第四页面PG3和PG4的两个无效页面IVPG,但可包括根据页面复制处理方案原样复制到第三存储块BLK3的两个有效页面VPG,或者可不包括根据页面移动处理方案被移动到第三存储块BLK3的两个有效页面VPG。
关于上述处理之后的第二存储块BLK2的状态,第二存储块BLK2可包括对应于第一至第三页面PG1、PG2和PG3的三个无效页面IVPG,但可包括根据页面复制处理方案原样复制到第三存储块BLK3的一个有效页面VPG,或者可不包括根据页面移动处理方案被移动到第三存储块BLK3的一个有效页面VPG。
在上述处理之后,存储器控制器120可对包括对应于第三和第四页面PG3和PG4的两个无效页面IVPG的第一存储块BLK1和包括对应于第一至第三页面PG1、PG2和PG3的三个无效页面IVPG的第二存储块BLK2执行块擦除处理。
此后,存储器控制器120可执行地址重置处理,对被移动到第三存储块BLK3的三个有效页面VPG重置地址。由于这个事实,存储器控制器120可对被移动到第三存储块BLK3的三个有效页面VPG正常地执行地址映射。
上述垃圾收集可由控制电路123中的处理器124等执行,并且就功能层而言,可由闪存转换层(FTL)执行。
在下文中,将基于存储器装置的结构的图示来进一步详细描述上述基于高速缓存的页面状态信息管理方法。
图9是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理的存储器装置的结构的示图。
存储器装置110可包括一个管芯,或者可包括至少两个管芯。图9的图示对应于存储器装置110包括四个管芯DIE 1、DIE 2、DIE 3和DIE4的情况。
四个管芯DIE 1、DIE 2、DIE 3和DIE 4中的每一个可包括一个平面,或者可包括至少两个平面。图9的图示对应于四个管芯DIE 1、DIE 2、DIE 3和DIE 4中的每一个都包括四个平面PLN 1、PLN 2、PLN 3和PLN4的情况。
存储器装置110可包括多个存储块BLK。进一步地,如图3所示,多个存储块BLK中的每一个可包括多个页面PG。
根据图9的图示,在存储器装置110的四个管芯DIE 1、DIE 2、DIE3和DIE 4的每一个中,四个平面PLN 1、PLN 2、PLN 3和PLN 4中的每一个可包括多个存储块BLK。进一步地,如图3所示,在四个平面PLN1、PLN 2、PLN 3和PLN 4的每一个中,多个存储块BLK中的每一个可包括多个页面PG。
参照图9,可将多个存储块BLK分组为多个超级块SBLK。一个超级块SBLK可以是同时或在相同时间段内对其执行读取操作和/或写入操作或者通过链接或相关来对其执行读取操作和/或写入操作的一组存储块BLK,可以是响应于一个命令对其执行读取操作和/或写入操作的一组存储块BLK,或者可以是通过在存储器装置110中链接或同时对其执行读取操作和/或写入操作的一组存储块BLK。另外,在多个存储块BLK之中,可将在操作方面进行区分的一组存储块BLK定义为超级块SBLK。
各个超级块SBLK的大小可全都相同,或者多个超级块SBLK中的至少一个可在大小上不同于其它超级块SBLK。换言之,各个超级块SBLK中包括的存储块BLK的数量可全都相同,或者多个超级块SBLK之中的至少一个超级块SBLK中包括的存储块BLK的数量可不同于其它超级块SBLK中包括的存储块BLK的数量。
另外,多个超级块SBLK的每一个中包括的至少两个存储块BLK可全都位于同一个管芯中。与此不同,多个超级块SBLK的每一个中包括的至少两个存储块BLK可位于彼此不同的至少两个管芯中。
一个超级块SBLK中包括的多个存储块BLK中的每一个包括多个页面PG,并且多个页面PG可根据行顺序来配置多个页面行。一个页面行由多个页面来配置。一个页面行可存在于每个管芯中,或者可存在于每个管芯中的每个平面中。在本说明书中,页面PG可对应于字线WL。
图10是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理的高速缓存单元的示图。
参照图10,在一个超级块SBLK中,以作为具有页面组概念的逻辑页面的条带页面STPG为单位来实施根据本公开的实施例的基于高速缓存的页面状态信息管理。
多个超级块SBLK中的每一个可包括至少两个条带页面STPG。
一个条带页面STPG存在于多个管芯DIE 1至DIE 4上,并且包括多个页面PG。
换言之,一个条带页面STPG可包括多个页面行,每个页面行作为以相同的行顺序设置在多个管芯DIE 1至DIE 4上的一组页面PG。
一个条带页面STPG中包括的页面行的数量可根据数据存储方案(例如,SLC、MLC、TLC等)而改变。图10的图示可对应于数据存储方案为TLC(三层单元)的情况。因此,一个条带页面STPG可包括三个页面行。例如,第一条带页面STPG可包括被分配编号1、2和3的三个页面行。
在图10中,分配到多个管芯DIE 1至DIE 4中的每一个的编号1、2、3、4、5和6可以是表示多个页面行的行顺序的编号。即,在图10中,分配到多个管芯DIE 1至DIE 4中的每一个的编号1、2、3、4、5和6可以是表示多个管芯DIE 1至DIE 4中的每一个的四个平面PLN 1至PLN 4中包括的多个页面行的行顺序的编号。
在图10中,多个管芯DIE 1至DIE 4的每一个中的每个小方框指示相应管芯中的相应页面行。例如,第一管芯DIE 1中给定以编号1的小方框对应于存在于第一管芯DIE 1的四个平面PLN 1至PLN 4上的第一页面行。
如上所述,根据本公开的实施例的基于高速缓存的页面状态信息管理以条带页面STPG为单位来实施。因此,CT以条带页面STPG为单位来高速缓存更新VPT所必需的信息。
在这种情况下,当更新VPT所必需的信息被高速缓存在CT中时,相应的信息可与由超级块索引和条带页面索引的组合定义的高速缓存索引相联系地被高速缓存在CT中,使得可根据它们对应于哪个超级块SBLK中的哪个条带页面STPG来检查该信息。
换言之,CT中包括的信息可与由超级块索引和条带页面索引的组合定义的高速缓存索引相联系地进行存储。
图11是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理的有效页面表VPT的结构的示图。
参照图11,在有效页面表VPT中,条带页面STPG中包括的页面PG的有效页面检查信息(页面状态信息)VPG_CHECK_INFO可以条带页面STPG为单位进行存储。
例如,有效页面表VPT可包括第一条带页面STPG 1中包括的页面PG的有效页面检查信息VPG_CHECK_INFO,第二条带页面STPG 2中包括的页面PG的有效页面检查信息VPG_CHECK_INFO等。
在图11的图示中,四个管芯DIE 1至DIE 4存在于存储器装置110中,数据存储方案为三层单元(TLC),四个平面PLN 1至PLN 4存在于四个管芯DIE 1至DIE 4的每一个中,一个页面的大小(一个页面数据的大小)为8K字节(8KB),并且对应于有效页面表VPT中的一个位(将由1位表示的数据大小)的大小为4K字节(4KB)。
根据该图示,在有效页面表VPT中,一个超级块SBLK中的多个条带页面STPG 1、STPG 2、……的每一个中存储的有效页面检查信息VPG_CHECK_INFO的大小可对应于12字节(=96位)。
也就是说,根据数据存储方案(TLC),与一个超级块SBLK中的多个条带页面STPG1、STPG 2、……中的每一个相对应的有效页面检查信息VPG_CHECK_INFO的位的数量可由对应于有效页面表VPT中的1位的大小(对应于1位的数据大小,图示中为4K字节(4KB))、页面大小(8K字节(8Kb))、管芯的数量(4)、每管芯的平面数量(4)以及多个条带页面STPG 1、STPG 2、……的每一个中包括的页面行的数量(3)来定义。
在有效页面表VPT中,与一个超级块SBLK中的多个条带页面STPG 1、STPG 2、……中的每一个相对应的位的数量Nb可以如下计算。
Nb=4*3*4*1*(8KB/4KB)=96位=12字节
在有效页面表VPT中,与多个条带页面STPG 1、STPG 2、……中的每一个相对应的位的数量Nb是有效页面表VPT中表达多个条带页面STPG 1、STPG 2、……中的每一个的有效页面检查信息VPG_CHECK_INFO所必需的位的数量。
参照图11,第一条带页面STPG 1可包括四个管芯DIE 1至DIE 4的每一个中包括的三个页面行(页面行编号:1、2和3)。即,第一条带页面STPG 1可包括总共12个页面行。将第一条带页面STPG 1中包括的12个页面行中的每一个在图10中示出为一个方框。
因此,第一条带页面STPG 1中包括的12个页面行的每一个中存储的有效页面检查信息VPG_CHECK_INFO可具有8位(=96/12)的大小,也就是1字节(=12/12)。
参照图11,在第一条带页面STPG 1的第一方框中,可存储第一管芯DIE 1的第一页面行(页面行编号:1)中包括的四个相应页面PG的有效页面检查信息VPG_CHECK_INFO。
参照图11,因为第一条带页面STPG 1的四个管芯DIE 1至DIE 4中的每一个都包括三个页面行(页面行编号:1、2和3),并且第一条带页面STPG 1中包括的总共12个页面行中的每一个都包括位于四个平面PLN 1至PLN 4中的四个页面PG,所以第一条带页面STPG 1可包括总共48个页面(=12*4)。
根据这个事实,48个页面PG的有效页面检查信息VPG_CHECK_INFO可由96位(12字节)表达。在这种情况下,为了表达一个页面PG的有效页面检查信息VPG_CHECK_INFO,2位(=96/48)是必需的。
例如,第一存储器610的读取和写入可以4字节为单位来实施。也就是说,有效页面检查信息VPG_CHECK_INFO可以4字节为单位来更新。
图12是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理在第二存储器620中高速缓存和管理的高速缓存表CT的高速缓存条目CENT的基本结构的示图。
参照图12,高速缓存表CT可包括一个或多个高速缓存条目CENT。
高速缓存条目CENT中的每一个对应于任意一个条带页面STPG i。
高速缓存条目CENT中的每一个类似于有效页面表VPT中对应于一个条带页面STPG的部分。
高速缓存条目CENT中的每一个的结构和大小可与有效页面表VPT中对应于一个条带页面STPG的部分的结构和大小基本相同。
例如,有效页面表VPT中与多个条带页面STPG 1、STPG 2、……中的每一个相对应的位的数量Nb可与高速缓存表CT的高速缓存条目CENT的每一个中与相应的条带页面STPG相对应的位的数量相同。
然而,高速缓存条目CENT的每一个中包括的信息可能不同于有效页面表VPT中对应于一个条带页面STPG的部分中包括的信息。
有效页面表VPT中对应于一个条带页面STPG的部分中包括的信息是一个条带页面STPG中包括的页面PG的有效页面检查信息VPG_CHECK_INFO。
与此相比,每个高速缓存条目CENT中包括的信息是更新相应条带页面STPG中包括的页面PG的全部或部分有效页面检查信息VPG_CHECK_INFO所必需的信息。
每个高速缓存条目CENT中包括的信息(也就是更新对应于每个高速缓存条目CENT的条带页面STPG中包括的页面PG的全部或部分有效页面检查信息VPG_CHECK_INFO所必需的信息)可包括新写入信息NEW_WRT_INFO和无效页面改变信息IVPG_CHANGE_INFO,新写入信息NEW_WRT_INFO指示数据被新写入相应页面PG中,并且无效页面改变信息IVPG_CHANGE_INFO指示相应页面PG从有效页面被改变为无效页面。
图13和图14是示出根据本公开的实施例的针对基于高速缓存的页面状态信息管理的高速缓存表CT的两个高速缓存条目列表LIST_CENT1和LIST_CENT2的示图。
图15是根据本公开的实施例的针对基于高速缓存的页面状态信息管理的高速缓存表CT的两个相应高速缓存条目CENT1和CENT2的标识索引的示图。
参照图13和图14,高速缓存表CT可包括第一高速缓存条目列表LIST_CENT1和第二高速缓存条目列表LIST_CENT2。第一和第二高速缓存条目列表LIST_CENT1和LIST_CENT2中的每一个可包括一个或多个高速缓存条目,每个高速缓存条目具有如图12所示的数据结构。
第一高速缓存条目列表LIST_CENT1具有以高速缓存条目为单位的、更新有效页面表VPT上相应页面PG的页面状态信息(有效页面检查信息)所必需的、与新的写入相关操作相关的信息(新写入信息)。
当相应页面PG首次和新写入数据时,第一高速缓存条目列表LIST_CENT1具有以高速缓存条目为单位的、更新有效页面表VPT上特定页面PG的页面状态信息(有效页面检查信息)所必需的信息(也就是新写入信息)。包括相应页面PG的条带页面STPG中包括的其它页面PG可以是已写入有数据的页面。
第二高速缓存条目列表LIST_CENT2具有以高速缓存条目为单位的、更新过去已被写入的页面PG的页面状态信息(有效页面检查信息)所必需的信息(无效页面改变信息)。
在过去已写入有数据的页面PG的情况下,对应于该页面PG的高速缓存条目可能在过去已被包括在第一高速缓存条目列表LIST_CENT1中,并且第二高速缓存条目列表LIST_CENT2可具有以高速缓存条目为单位的、表示第一高速缓存条目列表LIST_CENT1的高速缓存条目上的相应信息(对应于相应页面PG的信息)被改变为无效页面IVPG的信息(也就是无效页面改变信息)。
当高速缓存条目(在下文中,称为第一高速缓存条目)被包括在第一高速缓存条目列表LIST_CENT1中时,因为信息被按位顺序地写入第一高速缓存条目中,所以在大多数情况下可能发生高速缓存命中。
当第一高速缓存条目被包括在第一高速缓存条目列表LIST_CENT1中时,因为对第一存储器610的访问是顺序进行的,所以高速缓存可由一个条带页面STPG使用。
当高速缓存条目(在下文中,称为第二高速缓存条目)被包括在第二高速缓存条目列表LIST_CENT2中时,具有局部性的模式可展现出较高水平的高速缓存命中率。
第二高速缓存条目列表LIST_CENT2中包括的第二高速缓存条目对应于单个条带页面STPG。第二高速缓存条目列表LIST_CENT2可包括分别对应于多个条带页面STPG的多个第二高速缓存条目,即使在随机进行对有效页面表VPT的访问时,也可增加高速缓存命中率。
如图13所示,第一高速缓存条目列表LIST_CENT1可包括一个第一高速缓存条目CENT1。如图14所示,第一高速缓存条目列表LIST_CENT1可包括至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]。
如图13和图14所示,第二高速缓存条目列表LIST_CENT2可包括多个第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn](n为2或更大的自然数)。
如上所述,多个条带页面STPG 1、STPG 2……中的每一个可包括至少两个页面PG。即,在存储器装置110中,可将一个超级块SBLK中的多个页面PG分组到多个条带页面STPG1、STPG 2、……中。
参照图13和图14,一个第一高速缓存条目CENT1或至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]中的每一个可对应于一个条带页面STPG。
参照图13和图14,第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]中的每一个可对应于一个条带页面STPG。
参照图14,至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]中的每一个可由第一高速缓存索引来识别。根据图14的图示,在[1]、[2]和[3]中,括号[]中的编号1、2和3对应于第一高速缓存索引。
参照图13和图14,第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]中的每一个可由第二高速缓存索引来识别。根据图13和图14的图示,在[IDX1]、[IDX2]、……、[IDXn]中,括号[]中的符号IDX1、IDX2、……、IDXn对应于第二高速缓存索引。
参照图15,例如,至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]可对应于至少两个操作事件。至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]可由指示彼此区分开的操作事件的第一高速缓存索引(图14的图示:括号[]中的编号1、2和3)来识别。
例如,至少两个操作事件可包括写入操作事件、垃圾收集(G/C)操作事件和刷新操作事件之中的至少两个作为写入相关操作事件。
根据以上描述,至少两个第一高速缓存索引(括号[]中的编号1、2和3)可对应于至少两个操作事件索引。
根据图15的图示,如果第一高速缓存索引为1,则相应的第一高速缓存条目CENT1[1]可对应于垃圾收集(G/C)操作事件。如果第一高速缓存索引为2,则相应的第一高速缓存条目CENT1[2]可对应于写入操作事件。如果第一高速缓存索引为3,则相应的第一高速缓存条目CENT1[3]可对应于刷新操作事件。
第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]中的每一个可对应于特定超级块SBLK中的特定条带页面STPG。
因此,多个第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]可由第二高速缓存索引IDX1、IDX2、……、IDXn来识别,第二高速缓存索引中的每一个都由作为超级块SBLK的标识符的超级块索引[SBLK Index]和作为条带页面STPG的标识符的条带页面索引[STPG Index]的组合来定义。也就是说,第二高速缓存索引IDX1、IDX2、……、IDXn可通过超级块索引[SBLK Index]和条带页面索引[STPG Index]的组合来彼此区分。
一个第一高速缓存条目CENT1或至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]中的每一个可包括多个条带页面STPG 1、STPG 2、……之中的相应条带页面STPG中的至少两个页面PG的新写入信息NEW_WRT_INFO。相应页面PG的新写入信息NEW_WRT_INFO可以是更新作为相应页面PG的页面状态信息的有效页面检查信息VPG_CHECK_INFO所必需的信息之中的一个。
第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]中的每一个可包括多个条带页面STPG 1、STPG 2、……之中的相应条带页面STPG中的至少两个页面PG的无效页面改变信息IVPG_CHANGE_INFO。
相应页面PG的无效页面改变信息IVPG_CHANGE_INFO可以是更新作为相应页面PG的页面状态信息的有效页面检查信息VPG_CHECK_INFO所必需的信息之中的一个。
在下文中,将参照图16至图20进一步详细描述更新高速缓存表CT中包括的一个第一高速缓存条目CENT1或至少两个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]的方法,以及与该方法相关的、更新有效页面表VPT的方法。在下文中,高速缓存表CT包括三个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]。
接下来,将参照图21至图26进一步详细描述更新高速缓存表CT中包括的多个第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]的方法,以及与该方法相关的、更新有效页面表VPT的方法。
图16是根据本公开的实施例的与第一高速缓存条目列表LIST_CENT1相关的基于高速缓存的页面状态信息管理方法的流程图。
参照图16,第一高速缓存条目列表LIST_CENT1高速缓存更新有效页面表VPT上的相应页面PG的页面状态信息(有效页面检查信息)所必需的、与新的写入相关操作相关的信息(新写入信息)。
当相应页面PG首次和新写入有数据时,第一高速缓存条目列表LIST_CENT1高速缓存更新有效页面表VPT上的特定页面PG的页面状态信息(有效页面检查信息)所必需的信息(也就是新写入信息)。包括相应页面PG的条带页面STPG中包括的其它页面PG可以是已写入有数据的页面。
参照图16,根据本公开的实施例的与第一高速缓存条目列表LIST_CENT1相关的基于高速缓存的页面状态信息管理方法可包括开放块选择步骤S1610、步骤S1620-A、S1620-B和S1620-C,更新有效页面表VPT的步骤S1630以及更新高速缓存表CT的步骤S1640,其中在步骤S1620-A、S1620-B和S1620-C中,确定执行了操作事件(G/C、写入和刷新)之中的相应操作事件的特定条带页面STPG是否被包括在高速缓存表CT中,以及特定条带页面STPG是否与对应于高速缓存条目CENT1[1]、CENT1[2]或CENT1[3]的条带页面STPG相同,该高速缓存条目CENT1[1]、CENT1[2]或CENT1[3]对应于相应操作事件。下面将进行更详细的描述。
参照图16,在选择开放块(S1610)之后,当操作事件是垃圾收集(G/C)操作时,存储器控制器120确定被执行垃圾收集操作作为相应操作事件的特定条带页面STPG是否与对应于高速缓存表CT中包括的第一高速缓存条目CENT1[1]的条带页面STPG相同(S1620-A)。
当作为在步骤S1620-A中进行确定的结果,确定被执行垃圾收集(G/C)操作作为相应操作事件的特定条带页面STPG与对应于第一高速缓存条目CENT1[1]的条带页面STPG相同时,存储器控制器120可执行高速缓存更新操作,更新第一高速缓存条目CENT1[1]中包括的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。该进程可以是与在执行垃圾收集操作时将有效页面VPG移动(复制)到另一存储块BLK相关的进程。
当第一高速缓存条目CENT1[1]为空时,存储器控制器120可执行高速缓存更新操作,更新在第一高速缓存条目CENT1[1]中执行了垃圾收集操作的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
当作为在步骤S1620-A中进行确定的结果,确定被执行垃圾收集(G/C)操作作为相应操作事件的特定条带页面STPG与对应于第一高速缓存条目CENT1[1]的条带页面STPG不相同时,存储器控制器120可基于第一高速缓存条目CENT1[1]中包括的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO,执行更新有效页面表VPT的清除操作(S1630),然后可执行更新第一高速缓存条目CENT1[1]的高速缓存更新操作,以允许第一高速缓存条目CENT1[1]包括被执行了垃圾收集操作的特定条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
另一方面,在选择开放块(S1610)之后,当操作事件是写入操作时,存储器控制器120确定被执行写入操作作为相应操作事件的特定条带页面STPG是否与对应于高速缓存表CT中包括的第一高速缓存条目CENT1[2]的条带页面STPG相同(S1620-B)。
当作为在步骤S1620-B中进行确定的结果,确定被执行写入操作作为相应操作事件的特定条带页面STPG与对应于第一高速缓存条目CENT1[2]的条带页面STPG相同时,存储器控制器120可执行高速缓存更新操作,更新第一高速缓存条目CENT1[2]中包括的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
当第一高速缓存条目CENT1[2]为空时,存储器控制器120可执行高速缓存更新操作,更新在第一高速缓存条目CENT1[2]中执行了写入操作的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
当作为在步骤S1620-B中进行确定的结果,确定被执行写入操作的特定条带页面STPG与对应于第一高速缓存条目CENT1[2]的条带页面STPG不相同时,存储器控制器120可基于第一高速缓存条目CENT1[2]中包括的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO,执行更新有效页面表VPT的清除操作(S1630),然后可执行更新第一高速缓存条目CENT1[2]的高速缓存更新操作,以允许第一高速缓存条目CENT1[2]包括被执行了写入操作的特定条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
另一方面,在选择开放块(S1610)之后,当操作事件是刷新操作时,存储器控制器120确定被执行刷新操作作为相应操作事件的特定条带页面STPG是否与对应于高速缓存表CT中包括的第一高速缓存条目CENT1[3]的条带页面STPG相同(S1620-C)。
当作为在步骤S1620-C中进行确定的结果,确定被执行刷新操作作为相应操作事件的特定条带页面STPG与对应于第一高速缓存条目CENT1[3]的条带页面STPG相同时,存储器控制器120可执行高速缓存更新操作,更新执行了刷新操作的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
当第一高速缓存条目CENT1[3]为空时,存储器控制器120可执行高速缓存更新操作,更新在第一高速缓存条目CENT1[3]中执行了刷新操作的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
当作为在步骤S1620-C中进行确定的结果,确定被执行刷新操作的特定条带页面STPG与对应于第一高速缓存条目CENT1[3]的条带页面STPG不相同时,存储器控制器120可基于第一高速缓存条目CENT1[3]中包括的条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO,执行更新有效页面表VPT的清除操作(S1630),然后可执行更新第一高速缓存条目CENT1[3]的高速缓存更新操作,以允许第一高速缓存条目CENT1[1]包括被执行了刷新操作的特定条带页面STPG中至少两个页面PG的各自新写入信息NEW_WRT_INFO(S1640)。
图17至图20是根据本公开的实施例在与第一高速缓存条目列表LIST_CENT1相关的基于高速缓存的页面状态信息管理时更新第一高速缓存条目列表LIST_CENT1和更新与其相关的有效页面表VPT的示图。
在图17中,执行更新第一高速缓存条目列表LIST_CENT1之前的状态。图18至图20示出关于三种情况(第一高速缓存条目为空的情况、第一高速缓存条目的条带页面与待处理的条带页面相同的情况以及第一高速缓存条目的条带页面与待处理的条带页面不同的情况)的第一高速缓存条目列表LIST_CENT1更新的性能。
图17示出以下情况:包括以条带页面STPG为单位的页面PG的有效页面检查信息的有效页面表VPT被存储在第一存储器610中,并且高速缓存表CT存储在第二存储器620中。
参照图17,在有效页面表VPT中,页面PG的有效页面检查信息的初始状态可以为0(零)。
在图17的图示中,第一高速缓存条目列表LIST_CENT1包括三个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3],它们由对应于三个操作事件(G/C、写入和刷新)的三个第一高速缓存索引1、2和3来识别。
根据图17的图示,第一高速缓存条目列表LIST_CENT1中包括的三个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]中的每一个可具有12字节的大小,作为能够高速缓存一个条带页面中包括的页面PG的新写入信息NEW_WRT_INFO的存储空间。
根据图17的图示,在第一高速缓存条目列表LIST_CENT1中包括的三个第一高速缓存条目CENT1[1]、CENT1[2]和CENT1[3]之中,与垃圾收集操作事件相对应的第一高速缓存条目CENT1[1]对应于为空的新写入信息NEW_WRT_INFO,与写入操作事件相对应的第一高速缓存条目CENT1[2]对应于写入开放块中的第二条带页面STPG 2,并对应于被高速缓存的第二条带页面STPG 2中包括的页面的新写入信息NEW_WRT_INFO,并且与刷新操作事件相对应的第一高速缓存条目CENT1[3]对应于刷新开放块中的第十一条带页面STPG 11,并对应于被高速缓存的第十一条带页面STPG 11中包括的页面的新写入信息NEW_WRT_INFO。
在图17中,下面将参照图18至图20描述关于三种情况中的每一种执行第一高速缓存条目列表LIST_CENT1的更新的方法。图18示出第一高速缓存条目为空,图19示出第一高速缓存条目的条带页面与待处理的条带页面相同,并且图20示出第一高速缓存条目的条带页面与待处理的条带页面不同。
图18示出在更新之前,第一高速缓存条目CENT1[1]为空。
参照图18,根据垃圾收集操作事件,为了将存在于另一块中的页面(有效页面VPG)移动到垃圾收集开放块中的第五条带页面STPG 5,在第五条带页面STPG 5中执行写入操作。
由于这个事实,当对应于垃圾收集操作事件的第一高速缓存条目CENT1[1]为空时,存储器控制器120对第一高速缓存条目CENT1[1]执行高速缓存更新。
通过对第一高速缓存条目CENT1[1]执行高速缓存更新,存储器控制器120可在第一高速缓存条目CENT1[1]中、与在第五条带页面STPG5中被执行写入操作的页面相对应的相应部分中高速缓存指示新写入的新写入信息NEW_WRT_INFO(=1)。在第一高速缓存条目CENT1[1]中、与在第五条带页面STPG 5中未执行写入操作的页面相对应的相应部分中,可高速缓存指示没有新写入的新写入信息NEW_WRT_INFO(=0)。
图19示出在更新之前,第一高速缓存条目CENT1[3]的条带页面STPG 11与待处理的条带页面STPG 11相同。
参照图19,根据刷新操作事件,为了刷新刷新开放块中的第十一条带页面STPG11,在第十一条带页面STPG 11中执行写入操作。
当与刷新操作事件相对应的第一高速缓存条目CENT1[3]对应于第十一条带页面STPG 11并且已在第十一条带页面STPG 11中高速缓存页面PG的新写入信息NEW_WRT_INFO时,如上所述,当在第十一条带页面STPG 11中执行写入操作时,存储器控制器120对与第十一条带页面STPG 11相对应的第一高速缓存条目CENT1[3]执行高速缓存更新。
通过对第一高速缓存条目CENT1[3]执行高速缓存更新,存储器控制器120可在第一高速缓存条目CENT1[3]中、与在第十一条带页面STPG 11中被执行写入操作的页面相对应的相应部分中高速缓存指示新写入的新写入信息NEW_WRT_INFO(=1)。在第一高速缓存条目CENT1[3]中、与在第十一条带页面STPG 11中未执行写入操作的页面相对应的相应部分中,可高速缓存指示没有新写入的新写入信息NEW_WRT_INFO(=0)。
图20示出在更新之前,第一高速缓存条目CENT1[2]的条带页面STPG 2与待处理的条带页面STPG 1不同。
参照图20,根据写入操作事件,为了在写入开放块中写入第一条带页面STPG 1,在第一条带页面STPG 1中执行写入操作。
在执行写入操作之前,与写入操作事件相对应的第一高速缓存条目CENT1[2]对应于第二条带页面STPG 2,并且已高速缓存第二条带页面STPG 2中的页面PG的新写入信息NEW_WRT_INFO。
因此,为了在第一高速缓存条目CENT1[2]中高速缓存第一条带页面STPG 1中的页面PG的新写入信息NEW_WRT_INFO,需要将已在第一高速缓存条目CENT1[2]中高速缓存的第二条带页面STPG 2中的页面PG的新写入信息NEW_WRT_INFO清除到第一存储器610。
因此,通过清除操作,存储器控制器120通过使用已在第一高速缓存条目CENT1[2]中高速缓存的第二条带页面STPG 2中的页面PG的新写入信息NEW_WRT_INFO,在有效页面表VPT中更新第二条带页面STPG 2中的页面PG的有效页面检查信息VPG_CHECK_INFO。
此后,通过执行高速缓存更新,存储器控制器120在第一高速缓存条目CENT1[2]中高速缓存第一条带页面STPG 1中的页面PG的新写入信息NEW_WRT_INFO。
通过对第一高速缓存条目CENT1[2]执行高速缓存更新,存储器控制器120可在第一高速缓存条目CENT1[2]中、与在第一条带页面STPG1中被执行写入操作的页面相对应的相应部分中高速缓存指示新写入的新写入信息NEW_WRT_INFO(=1)。在第一高速缓存条目CENT1[2]中、与在第一条带页面STPG 1中未执行写入操作的页面相对应的相应部分中,可高速缓存指示没有新写入的新写入信息NEW_WRT_INFO(=0)。
根据第一高速缓存条目,也就是根据第一高速缓存条目是否为空、第一高速缓存条目的条带页面是否与待处理的条带页面相同以及第一高速缓存条目的条带页面是否与待处理的条带页面不同,上述高速缓存更新和清除操作的方案可如图18至图20所示被改变,而不考虑操作事件的类型(G/C、写入或刷新)。
图21是根据本公开的实施例的与第二高速缓存条目列表LIST_CENT2相关的基于高速缓存的页面状态信息管理方法的流程图。
参照图21,第二高速缓存条目列表LIST_CENT2高速缓存更新过去已写入有数据的页面PG的页面状态信息(有效页面检查信息)所必需的信息(无效页面改变信息)。
过去已写入有数据的页面PG可能在过去已作为相应的第一高速缓存条目列表LIST_CENT1中包括的第一高速缓存条目存在,并且第二高速缓存条目列表LIST_CENT2可包括表示在过去已存在的第一高速缓存条目上的相应信息(对应于相应页面PG的信息)被改变为无效页面IVPG的信息(也就是无效页面改变信息)。
参照图21,根据本公开的实施例的与第二高速缓存条目列表LIST_CENT2相关的基于高速缓存的页面状态信息管理方法可以如下进行。
存储器控制器120计算第二高速缓存索引(S2110)。
存储器控制器120确定所计算的第二高速缓存索引是否为空(S2120)。
当作为步骤S2120的结果确定所计算的第二高速缓存索引为空时,存储器控制器120对第二存储器620执行高速缓存更新(S2150)。
当作为步骤S2120的结果确定所计算的第二高速缓存索引不为空时,存储器控制器120确定由所计算的第二高速缓存索引识别的第二高速缓存条目CENT2是否与现在待处理的特定超级块SBLK的特定条带页面STPG相同(S2130)。
当作为步骤S2130的结果确定由所计算的第二高速缓存索引识别的第二高速缓存条目CENT2与现在待处理的特定超级块SBLK的特定条带页面STPG相同时,存储器控制器120在第二存储器620中执行高速缓存更新(S2150)。
当作为步骤S2130的结果确定由所计算的第二高速缓存索引识别的第二高速缓存条目CENT2与现在待处理的特定超级块SBLK的特定条带页面STPG不同时,存储器控制器120对第一存储器610执行清除操作(S2140),然后在第二存储器620中执行高速缓存更新(S2150)。
下面将进行更详细的描述。
在控制对特定超级块SBLK中的特定条带页面STPG的写入操作之后,在步骤S2110,存储器控制器120可计算特定第二高速缓存索引IDXk(k=1,2,…),其由特定超级块SBLK的超级块索引SBLK Index和特定条带页面STPG的条带页面索引STPG Index的组合来定义。
在步骤S2120,存储器控制器120确定对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]是否为空。
当作为步骤S2120的结果确定对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]为空时,存储器控制器120在对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]中执行高速缓存更新,更新特定条带页面STPG中的至少两个相应页面的无效页面改变信息IVPG_CHANGE_INFO(S2150)。
当作为步骤S2120的结果确定对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]不为空时,存储器控制器120确定与特定第二高速缓存索引IDXk相对应的第二高速缓存条目CENT2[IDXk]是否实际上对应于特定条带页面STPG(S2130)。也就是说,在步骤S2130,存储器控制器120确定对应于从特定第二高速缓存索引IDXk识别的第二高速缓存条目CENT2[IDXk]的条带页面是否被确定为与当前待处理的特定超级块SBLK的特定条带页面STPG相同。
当作为步骤S2130的结果确定与特定第二高速缓存索引IDXk相对应的第二高速缓存条目CENT2[IDXk]实际上对应于特定条带页面STPG时,存储器控制器120在对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]中执行高速缓存更新,更新特定条带页面STPG中的至少两个相应页面的无效页面改变信息IVPG_CHANGE_INFO(S2150)。
当作为步骤S2130的结果确定对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]实际上并不对应于特定条带页面STPG时,存储器控制器120基于对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]中已包括的无效页面改变信息IVPG_CHANGE_INFO,执行更新有效页面表VPT的清除操作(S2140)。然后接着,存储器控制器120在对应于特定第二高速缓存索引IDXk的第二高速缓存条目CENT2[IDXk]中执行高速缓存更新,更新特定条带页面STPG中的至少两个相应页面的无效页面改变信息IVPG_CHANGE_INFO(S2150)。
在步骤S2140,存储器控制器120可通过对与特定第二高速缓存索引IDXk相对应的第二高速缓存条目CENT2[IDXk]中已包括的无效页面改变信息IVPG_CHANGE_INFO和有效页面表VPT中已包括的相应有效页面检查信息VPG_CHECK_INFO的异或操作来执行更新有效页面表VPT的清除操作。
图22至图26是根据本公开的实施例在与第二高速缓存条目列表LIST_CENT2相关的基于高速缓存的页面状态信息管理时更新第二高速缓存条目列表LIST_CENT2和更新与其相关的有效页面表VPT的示图。
图22示出在执行更新之前的第二高速缓存条目列表LIST_CENT2,并且图23至图25示出当第二高速缓存条目为空时、当第二高速缓存条目的条带页面与待处理的特定条带页面相同时以及当第二高速缓存条目的条带页面与待处理的特定条带页面不同时,第二高速缓存条目列表LIST_CENT2的更新。
图22示出包括以条带页面STPG为单位的页面PG的有效页面检查信息的有效页面表VPT存储在第一存储器610中,并且高速缓存表CT存储在第二存储器620中。
在图22的图示中,第二高速缓存条目列表LIST_CENT2包括n个第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]。例如,第二高速缓存条目列表LIST_CENT2可包括与10个超级块SBLK和100个条带页面STPG相对应的第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]。在这种情况下,n=1000。
根据图22的图示,第二高速缓存条目列表LIST_CENT2中包括的n个第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]中的每一个可具有12字节的大小,作为能够高速缓存一个条带页面中包括的页面PG的无效页面改变信息IVPG_CHANGE_INFO的存储空间。
根据图22的图示,在第二高速缓存条目列表LIST_CENT2中包括的n个第二高速缓存条目CENT2[IDX1]、CENT2[IDX2]、……、CENT2[IDXn]之中,第二高速缓存条目CENT2[IDX1]、CENT2[IDX3]、CENT2[IDXn-1]和CENT2[IDXn]对应于为空的无效页面改变信息IVPG_CHANGE_INFO。进一步地,与m个超级块SBLK1至SBLKm之中的第一超级块SBLK1中的第五条带页面STPG 5相对应的第二高速缓存条目CENT2[IDX2]对应于被高速缓存的第五条带页面STPG 5中包括的页面的无效页面改变信息IVPG_CHANGE_INFO,并且与m个超级块SBLK1至SBLKm之中的第二超级块SBLK2中的第七条带页面STPG 7相对应的第二高速缓存条目CENT2[IDX4]对应于被高速缓存的第七条带页面STPG 7中包括的页面的无效页面改变信息IVPG_CHANGE_INFO。
下面将参照图23至图25描述图22中关于当第二高速缓存条目为空时、当第二高速缓存条目的条带页面与待处理的特定条带页面相同时以及当第二高速缓存条目的条带页面与待处理的特定条带页面不同时,用于执行第二高速缓存条目列表LIST_CENT2的更新的方法。
图23示出在更新之前,第二高速缓存条目CENT2[IDX1]为空。
参照图23,在第二超级块SBLK2中的第二条带页面STPG 2中数据被改变,因此在第二超级块SBLK2中的第二条带页面STPG 2中的至少一个页面PG从有效页面VPG被改变为无效页面IVPG。进一步地,由第二超级块SBLK2的超级块索引和第二条带页面STPG 2的条带页面索引的组合定义的第二高速缓存索引被计算为IDX1。
当第二高速缓存条目CENT2[IDX1]由以这种方式计算的第二高速缓存索引IDX1识别时,因为第二高速缓存条目CENT2[IDX1]为空,所以存储器控制器120将第二高速缓存条目CENT2[IDX1]与第二超级块SBLK2中的第二条带页面STPG 2相匹配,并且通过高速缓存更新,将第二超级块SBLK2中的第二条带页面STPG 2中包括的页面PG的无效页面改变信息IVPG_CHANGE_INFO高速缓存在第二高速缓存条目CENT2[IDX1]中。当页面从有效页面VPG改变为无效页面IVPG时,无效页面改变信息IVPG_CHANGE_INFO可以是1,并且当页面未从有效页面VPG改变为无效页面IVPG时,无效页面改变信息IVPG_CHANGE_INFO可以是0。
图24示出在更新之前,第二高速缓存条目CENT2[IDX4]的条带页面STPG 7与待处理的特定条带页面STPG相同。
参照图24,在第二超级块SBLK2中的第七条带页面STPG 7中数据被改变,因此在第二超级块SBLK2中的第七条带页面STPG 7中的至少一个页面PG从有效页面VPG改变为无效页面IVPG。进一步地,由第二超级块SBLK2的超级块索引和第七条带页面STPG 7的条带页面索引的组合定义的第二高速缓存索引被计算为IDX4。
当第二高速缓存条目CENT2[IDX4]由以这种方式计算的第二高速缓存索引IDX4识别时,存储器控制器120识别出第二高速缓存条目CENT2[IDX4]对应于第二超级块SBLK2中的第七条带页面STPG 7,并且已高速缓存了无效页面改变信息IVPG_CHANGE_INFO,也就是对应于第二高速缓存条目CENT2[IDX4]的条带页面STPG 7与待处理的第二超级块SBLK2中的第七条带页面STPG 7相同。
因此,存储器控制器120通过高速缓存更新,将第二超级块SBLK2中的第七条带页面STPG 7中包括的页面PG的无效页面改变信息IVPG_CHANGE_INFO高速缓存在第二高速缓存条目CENT2[IDX4]中。当页面从有效页面VPG改变为无效页面IVPG时,无效页面改变信息IVPG_CHANGE_INFO可以是1,并且当页面未从有效页面VPG改变为无效页面IVPG时,无效页面改变信息IVPG_CHANGE_INFO可以是0。
图25示出在更新之前,第二高速缓存条目CENT2[IDX2]的条带页面STPG 5与待处理的特定条带页面STPG 20不同。
参照图25,在第三超级块SBLK3中的第二十条带页面STPG 20中数据被改变,因此在第三超级块SBLK3中的第二十条带页面STPG 20中的至少一个页面PG从有效页面VPG改变为无效页面IVPG。进一步地,由第三超级块SBLK3的超级块索引和第二十条带页面STPG 20的条带页面索引的组合定义的第二高速缓存索引被计算为IDX2。
当第二高速缓存条目CENT2[IDX2]由以这种方式计算的第二高速缓存索引IDX2识别时,存储器控制器120识别出第二高速缓存条目CENT2[IDX2]对应于第一超级块SBLK1中的第五条带页面STPG 5,并且已高速缓存无效页面改变信息IVPG_CHANGE_INFO,也就是对应于第二高速缓存条目CENT2[IDX2]的条带页面STPG 5与待处理的第三超级块SBLK3中的第二十条带页面STPG 20不同。
因此,通过清除操作,存储器控制器120基于已在第二高速缓存条目CENT2[IDX2]中高速缓存的第一超级块SBLK1中的第五条带页面STPG 5的无效页面改变信息IVPG_CHANGE_INFO,在有效页面表VPT中更新与第一超级块SBLK1中的第五条带页面STPG 5相对应的有效页面检查信息VPG_CHECK_INFO。
关于这种清除操作过程,存储器控制器120从有效页面表VPT加载与第一超级块SBLK1中的第五条带页面STPG 5相对应的有效页面检查信息VPG_CHECK_INFO(LOAD步骤),对已在第二高速缓存条目CENT2[IDX2]中高速缓存的第一超级块SBLK1中的第五条带页面STPG 5的有效页面检查信息VPG_CHECK_INFO和无效页面改变信息IVPG_CHANGE_INFO执行异或操作(UPDATE步骤),并且将计算结果存储在有效页面表VPT中(STORE步骤)。下面将参照图26描述用于清除操作的异或操作。
在执行清除操作之后,存储器控制器120通过高速缓存更新,将第三超级块SBLK3中的第二十条带页面STPG 20中包括的页面PG的无效页面改变信息IVPG_CHANGE_INFO高速缓存在第二高速缓存条目CENT2[IDX2]中。当页面从有效页面VPG改变为无效页面IVPG时,无效页面改变信息IVPG_CHANGE_INFO可以是1,并且当页面未从有效页面VPG改变为无效页面IVPG时,无效页面改变信息IVPG_CHANGE_INFO可以是0。
图26是示出在用于更新有效页面表VPT的清除操作中执行的异或操作的示图。
参照图26,存储器控制器120可借由通过异或操作获得待更新的信息来执行清除操作。
参照图26,存储器控制器120从第一存储器610的有效页面表VPT加载已与相应的第二高速缓存条目CENT2[IDX2]相匹配的、第一超级块SBLK1的第五条带页面STPG 5的相应有效页面检查信息VPG_CHECK_INFO(十六进制:0x 01 00 0A 01、0x 05 08 00 00和0x0A0C 00 03)(LOAD步骤)。
存储器控制器120对从第一存储器610的有效页面表VPT加载的有效页面检查信息VPG_CHECK_INFO(十六进制:0x 01 00 0A 01、0x 0508 00 00和0x 0A 0C 00 03)和已相应地存储在高速缓存表CT中相应的第二高速缓存条目CENT2[IDX2]中的第一超级块SBLK1的第五条带页面STPG 5的无效页面改变信息IVPG_CHANGE_INFO(十六进制:0x 01 00 02 00、0x 01 08 00 00和0x 0A 0C 00 03)执行异或操作,从而获得经更新的有效页面检查信息VPG_CHECK_INFO(十六进制:0x 0000 08 01、0x 04 00 00 00和0x 00 00 00 00)(UPDATE步骤)。
存储器控制器120将针对第一超级块SBLK1的第五条带页面STPG5更新的有效页面检查信息VPG_CHECK_INFO(十六进制:0x 00 00 0801、0x 04 00 00 00和0x 00 00 00 00)存储在有效页面表VPT中(STORE步骤)。
图27是根据本公开的实施例的与第二高速缓存条目列表LIST_CENT2相关的另一基于高速缓存的页面状态信息管理方法的流程图。图28是根据本公开的实施例的与第二高速缓存条目列表LIST_CENT2相关的基于高速缓存的页面状态信息管理的最近开放块索引表的示图。
参照图27,存储器控制器120可在高速缓存表CT中,基于最新的写入顺序高速缓存与预设数量(例如,4)的最近超级块相对应的多个第二高速缓存条目CENT2。
参照图27,根据本公开的实施例的与第二高速缓存条目列表LIST_CENT2相关的基于高速缓存的页面状态信息管理方法可进一步包括:在图21的步骤S2110之前,确定待更新的超级块SBLK是否是最近使用的开放块的步骤S2710。
当在步骤S2710确定待更新的超级块SBLK是最近使用的开放块时,可在步骤S2710之后执行步骤S2110、S2120、S2130、S2140和S2150。
当在步骤S2710确定待更新的超级块SBLK不是最近使用的开放块时,在步骤S2710之后,无需高速缓存更新处理,可执行步骤S2720,在步骤S2720中通过使用与待更新的超级块SBLK相关的无效页面改变信息IVPG_CHANGE_INFO来立即更新有效页面表VPT。
在步骤S2720,关于与作为预设数量的最近使用的开放块的最近超级块不同的超级块中各个页面的有效页面检查信息VPG_CHECK_INFO,存储器控制器120可在有效页面表VPT中直接更新有效页面表VPT中包括的不同超级块中的各个页面的有效页面检查信息VPG_CHECK_INFO,而无需使用高速缓存表CT的高速缓存更新处理。
参照图28的图示,当具有超级块索引100、110、105、104、200、220和130的超级块被用作开放块时,最近开放块索引表2800可存储关于预设数量(例如,4个)的最近使用的开放块的信息(例如,超级块索引104、200、220和130)。
因此,在步骤S2710,存储器控制器120可通过参考最近开放块索引表2800来知道最近使用的开放块。
存储器控制器120从步骤S2110对具有超级块索引104、200、220和130的超级块(作为最近使用的开放块的超级块)执行更新。
存储器控制器120可对具有超级块索引100、110和105的超级块(不作为最近使用的开放块的超级块)立即执行步骤S2720。
图29是示意性地示出根据本公开的实施例的计算***2900的框图。
参照图29,根据本公开的实施例的计算***2900可包括存储器***100、用于控制计算***2900的一般操作的中央处理单元(CPU)2910、用于存储与计算***2900的操作相关的数据和信息的RAM 2920、用于向用户提供使用环境的UI/UX(用户界面/用户体验)模块2930、用于以有线和/或无线方式与外部装置通信的通信模块2940以及用于管理由计算***2900使用的电力的电源管理模块2950,其电联接到***总线2960。
根据本公开的实施例的计算***2900可包括PC(个人计算机)、诸如智能手机和平板电脑的移动终端或者各种电子装置。
根据实施例的计算***2900可进一步包括用于供应操作电压的电池,并且可进一步包括应用芯片组、图形相关模块、相机图像处理器(CIS)、DRAM等。此外,计算***2900可包括其它组件。
存储器***100不仅可包括将数据存储在诸如硬盘驱动器(HDD)的磁盘中的装置,而且可包括将数据存储在诸如固态驱动器(SDD)、通用闪存(UFS)装置以及嵌入式MMC(eMMC)装置的非易失性存储器中的装置。非易失性存储器可包括ROM(只读存储器)、PROM(可编程ROM)、EPROM(电可编程ROM)、EEPROM(电可擦除可编程ROM)、闪速存储器、PRAM(相变RAM)、MRAM(磁性RAM)、RRAM(电阻式RAM)和FRAM(铁电RAM)。另外,存储器***100可被实现为各种类型的存储装置,并且可安装在各种电子装置中。
上述公开的实施例可提供有效地管理存储器装置110中的页面PG的状态的存储器***100、存储器控制器120及其操作方法。
而且,本公开的实施例可提供能够快速且有效地更新关于存储器装置110中的页面PG的状态信息(可以是有效页面检查信息)的存储器***100、存储器控制器120及其操作方法。
进一步地,本公开的实施例可提供能够通过对页面状态信息的有效管理来提高写入性能的存储器***100、存储器控制器120及其操作方法。
此外,本公开的实施例可提供能够进行基于高速缓存的页面状态信息管理的存储器***100、存储器控制器120及其操作方法。
此外,本公开的实施例可提供能够进行以下操作的存储器***100、存储器控制器120及其操作方法:对于基于高速缓存的页面状态信息管理,在第一存储器610中存储和管理页面状态信息,并且在不同于第一存储器610的第二存储器620中高速缓存和管理更新页面状态信息所必需的信息,从而减少对第一存储器610的访问计数,并通过这种方式提高写入性能。
虽然已出于说明性目的描述了示例性实施例,但本领域的技术人员将理解的是,在不脱离本公开的范围和精神的情况下,可进行各种修改、添加和替换。因此,上面和附图中公开的实施例应当仅以描述性意义来考虑,而不是用于限制技术范围。本公开的技术范围不受实施例和附图的限制。本公开的精神和范围应当由所附权利要求来解释,并且涵盖落入所附权利要求范围内的所有等同方案。
Claims (21)
1.一种存储器***,包括:
存储器装置,包括多个页面;以及
存储器控制器,控制所述存储器装置的写入操作,
其中所述存储器控制器通过参考第一存储器和第二存储器来管理各个页面的状态,
其中所述第一存储器和所述第二存储器中的至少一个被包括在所述存储器控制器内,
其中所述第一存储器存储有效页面表,所述有效页面表包括各个页面的有效页面检查信息,并且
其中所述第二存储器高速缓存高速缓存表,所述高速缓存表包括更新所述有效页面表的一部分的信息,并且具有小于所述有效页面表的大小。
2.根据权利要求1所述的存储器***,
其中所述存储器控制器基于所述高速缓存表来更新所述有效页面表,并且
其中所述存储器控制器通过参考经更新的有效页面表,将被检查为其中具有无效页面的任意一个第一块中的至少一个有效页面移动到不同于所述第一块的另一块;并且重置所述至少一个有效页面的地址。
3.根据权利要求1所述的存储器***,其中所述第一存储器是动态RAM即DRAM,并且所述第二存储器是静态RAM即SRAM。
4.根据权利要求1所述的存储器***,
其中所述多个页面被分组为多个条带页面,
其中所述高速缓存表包括一个或多个第一高速缓存条目和多个第二高速缓存条目,
其中所述第一高速缓存条目中的每一个包括所述多个条带页面之中的第一条带页面中的至少两个相应页面的新写入信息,并且
其中所述第二高速缓存条目中的每一个包括所述多个条带页面之中的第二条带页面中的至少两个相应页面的无效页面改变信息。
5.根据权利要求4所述的存储器***,其中所述有效页面表中对应于一个条带页面的位的数量由对应于所述有效页面表中的1位的大小、页面大小、管芯数量和每管芯的平面数量来定义。
6.根据权利要求4所述的存储器***,
其中至少两个第一高速缓存条目分别对应于至少两个不同的操作事件,
其中所述至少两个第一高速缓存条目由分别指示操作事件的第一高速缓存索引来识别,并且
其中至少两个操作事件包括写入操作事件、垃圾收集操作事件和刷新操作事件之中的至少两个。
7.根据权利要求4所述的存储器***,
其中在选择开放块之后,当执行了所述操作事件的特定条带页面与所述第一条带页面相同或者所述第一高速缓存条目为空时,所述存储器控制器执行高速缓存更新操作,更新所述第一高速缓存条目中包括的所述第一条带页面中的至少两个相应页面的新写入信息,并且
其中在选择所述开放块之后,当所述特定条带页面不同于所述第一条带页面时,所述存储器控制器基于所述第一高速缓存条目中包括的所述第一条带页面中的至少两个相应页面的新写入信息来执行更新所述第一存储器中存储的所述有效页面表的清除操作,并且执行更新所述第一高速缓存条目的高速缓存更新操作,以允许所述第一高速缓存条目包括所述特定条带页面中的至少两个相应页面的新写入信息。
8.根据权利要求4所述的存储器***,
其中所述存储器装置包括多个存储块,并且所述多个存储块中的每一个包括多个页面,
其中所述多个存储块被分组为多个超级块,
其中所述多个超级块中的每一个包括至少两个条带页面,并且
其中所述第二高速缓存条目中的每一个由第二高速缓存索引来识别,所述第二高速缓存索引由超级块索引和条带页面索引的组合来定义。
9.根据权利要求8所述的存储器***,
其中在控制对特定超级块中的特定条带页面的写入操作之后,所述存储器控制器计算特定第二高速缓存索引,所述特定第二高速缓存索引由所述特定超级块的超级块索引和所述特定条带页面的条带页面索引的组合来定义,
其中当对应于所述特定第二高速缓存索引的第二高速缓存条目为空时,所述存储器控制器在对应于所述特定第二高速缓存索引的所述第二高速缓存条目中执行高速缓存更新,更新所述特定条带页面中的至少两个相应页面的无效页面改变信息,
其中当对应于所述特定第二高速缓存索引的所述第二高速缓存条目对应于所述特定条带页面时,所述存储器控制器在对应于所述特定第二高速缓存索引的所述第二高速缓存条目中执行高速缓存更新,更新所述特定条带页面中的至少两个相应页面的无效页面改变信息,并且
其中当对应于所述特定第二高速缓存索引的所述第二高速缓存条目不对应于所述特定条带页面时,所述存储器控制器基于对应于所述特定第二高速缓存索引的所述第二高速缓存条目中包括的无效页面改变信息来执行更新所述第一存储器中存储的所述有效页面表的清除操作,并且在对应于所述特定第二高速缓存索引的所述第二高速缓存条目中执行高速缓存更新,更新所述特定条带页面中的至少两个相应页面的无效页面改变信息。
10.根据权利要求9所述的存储器***,其中所述存储器控制器通过对对应于所述特定第二高速缓存索引的所述第二高速缓存条目中包括的无效页面改变信息与所述第一存储器中存储的所述有效页面表中包括的相应有效页面检查信息的异或操作,来执行更新所述第一存储器中存储的所述有效页面表的清除操作。
11.根据权利要求8所述的存储器***,
其中所述多个第二高速缓存条目对应于最近执行写入操作的预设数量的最近超级块,并且
其中所述存储器控制器在所述第一存储器中存储的所述有效页面表中直接更新不同于所述最近超级块的超级块中的各个页面的有效页面检查信息。
12.一种存储器控制器,包括:
存储器接口,与包括多个页面的存储器装置通信;
控制电路,控制所述存储器装置的操作;
第一存储器,存储有效页面表,所述有效页面表包括各个页面的有效页面检查信息;以及
第二存储器,高速缓存高速缓存表,所述高速缓存表包括更新所述有效页面表的一部分的信息,并且具有小于所述有效页面表的大小,
其中所述控制电路通过参考所述第一存储器和所述第二存储器来管理各个页面的状态。
13.根据权利要求12所述的存储器控制器,其中所述存储器控制器通过参考经更新的有效页面表,将被检查为存在于第一块中的至少一个有效页面移动到第二块;并且重置所述至少一个有效页面的地址。
14.根据权利要求12所述的存储器控制器,
其中所述多个页面被分组为多个条带页面,
其中所述高速缓存表包括一个或多个第一高速缓存条目和多个第二高速缓存条目,
其中所述第一高速缓存条目中的每一个包括所述多个条带页面之中的第一条带页面中的至少两个相应页面的新写入信息,并且
其中所述第二高速缓存条目中的每一个包括所述多个条带页面之中的第二条带页面中的至少两个相应页面的无效页面改变信息。
15.根据权利要求14所述的存储器控制器,其中对应于所述多个条带页面中的每一个的位的数量由对应于所述有效页面表中的1位的大小、页面大小、管芯数量和每管芯的平面数量来定义。
16.根据权利要求14所述的存储器控制器,
其中至少两个第一高速缓存条目分别对应于至少两个不同的操作事件,
其中所述至少两个第一高速缓存条目由分别指示操作事件的第一高速缓存索引来识别,并且
其中所述至少两个操作事件包括写入操作事件、垃圾收集操作事件和刷新操作事件之中的至少两个。
17.根据权利要求14所述的存储器控制器,
其中所述存储器装置包括多个块,并且所述多个块中的每一个包括多个页面,
其中所述多个块被分组为多个超级块,
其中所述多个超级块中的每一个包括至少两个条带页面,并且
其中所述第二高速缓存条目中的每一个由第二高速缓存索引来识别,所述第二高速缓存索引由超级块索引和条带页面索引的组合来定义。
18.根据权利要求17所述的存储器控制器,
其中所述多个第二高速缓存条目对应于最近执行写入操作的预设数量的最近超级块,并且
其中所述存储器控制器在所述第一存储器中存储的所述有效页面表中直接更新不同于所述最近超级块的超级块中的各个页面的有效页面检查信息。
19.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置,所述方法包括:
控制所述存储器装置的写入相关操作;并且
更新第一存储器和第二存储器的一个中存储的信息以管理所述存储器装置的多个页面的状态,
其中所述第一存储器存储有效页面表,所述有效页面表包括各个页面的页面状态信息,并且
其中所述第二存储器高速缓存高速缓存表,所述高速缓存表包括更新所述有效页面表的一部分的信息,并且具有小于所述有效页面表的大小。
20.根据权利要求19所述的方法,进一步包括:在更新之后,通过参考经更新的有效页面表,将被检查为存在于第一块中的至少一个有效页面移动到第二块;并且重置所述至少一个有效页面的地址。
21.一种存储器***,包括:
存储器装置,包括多个条带页面,每个条带页面包括多个单位页面;
第一高速缓存,高速缓存第一表,所述第一表具有分别代表所述条带页面内的每个单位页面的有效性的多个第一条目;
第二高速缓存,高速缓存第二表,所述第二表具有一个或多个第二条目,每个第二条目代表到所述条带页面之中相应的一个内的每个单位页面中的当前数据存储;
第三高速缓存,高速缓存第三表,所述第三表具有多个第三条目,每个第三条目代表所述条带页面之中相应的一个内的每个单位页面的当前无效;以及
控制器:
根据对所述存储器装置内的一个或多个单位页面的数据存储和无效的一个或多个操作来更新所述第一表至所述第三表之中的一个或多个;
根据所述第二表和所述第三表的更新来更新所述第一表;并且
基于所述第一表来控制所述存储器装置以确保可用存储器空间,
其中所述第二高速缓存和所述第三高速缓存中的每一个比所述第一高速缓存操作得更快。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0047013 | 2019-04-23 | ||
KR1020190047013A KR20200123912A (ko) | 2019-04-23 | 2019-04-23 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831584A true CN111831584A (zh) | 2020-10-27 |
Family
ID=72911698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911172028.2A Withdrawn CN111831584A (zh) | 2019-04-23 | 2019-11-26 | 存储器***、存储器控制器及操作存储器控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11126552B2 (zh) |
KR (1) | KR20200123912A (zh) |
CN (1) | CN111831584A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303118A (zh) * | 2023-05-18 | 2023-06-23 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220131058A (ko) | 2021-03-19 | 2022-09-27 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630087A (en) * | 1994-11-02 | 1997-05-13 | Sun Microsystems, Inc. | Apparatus and method for efficient sharing of virtual memory translations |
US6029224A (en) * | 1995-06-07 | 2000-02-22 | Lucent Technologies Inc. | Self-contained memory apparatus having diverse types of memory and distributed control |
JPH0997214A (ja) * | 1995-09-29 | 1997-04-08 | Internatl Business Mach Corp <Ibm> | 補助プロセッサのためのアドレス変換を含む情報処理システム |
US5860146A (en) * | 1996-06-25 | 1999-01-12 | Sun Microsystems, Inc. | Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces |
US6442666B1 (en) * | 1999-01-28 | 2002-08-27 | Infineon Technologies Ag | Techniques for improving memory access in a virtual memory system |
US6330654B1 (en) * | 1999-08-26 | 2001-12-11 | Micron Technology, Inc. | Memory cache with sequential page indicators |
US6862651B2 (en) * | 2000-12-20 | 2005-03-01 | Microsoft Corporation | Automotive computing devices with emergency power shut down capabilities |
US8099559B2 (en) * | 2007-09-11 | 2012-01-17 | International Business Machines Corporation | System and method for generating fast instruction and data interrupts for processor design verification and validation |
KR101533744B1 (ko) | 2008-10-16 | 2015-07-10 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 |
US9513904B2 (en) * | 2013-10-15 | 2016-12-06 | Mill Computing, Inc. | Computer processor employing cache memory with per-byte valid bits |
US10073644B2 (en) * | 2016-03-21 | 2018-09-11 | Toshiba Memory Corporation | Electronic apparatus including memory modules that can operate in either memory mode or storage mode |
US10191853B2 (en) * | 2016-10-11 | 2019-01-29 | Arm Limited | Apparatus and method for maintaining address translation data within an address translation cache |
KR102033462B1 (ko) | 2016-12-27 | 2019-10-17 | 한양대학교 산학협력단 | 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치 |
US11003597B2 (en) * | 2018-12-21 | 2021-05-11 | Intel Corporation | Memory domains protection method and apparatus with composite protection key numbers |
US11055232B2 (en) * | 2019-03-29 | 2021-07-06 | Intel Corporation | Valid bits of a translation lookaside buffer (TLB) for checking multiple page sizes in one probe cycle and reconfigurable sub-TLBS |
-
2019
- 2019-04-23 KR KR1020190047013A patent/KR20200123912A/ko not_active Application Discontinuation
- 2019-11-07 US US16/677,360 patent/US11126552B2/en active Active
- 2019-11-26 CN CN201911172028.2A patent/CN111831584A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303118A (zh) * | 2023-05-18 | 2023-06-23 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN116303118B (zh) * | 2023-05-18 | 2023-09-05 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200123912A (ko) | 2020-11-02 |
US20200341896A1 (en) | 2020-10-29 |
US11126552B2 (en) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN112650442B (zh) | 存储器***、存储器控制器及操作方法 | |
US20230333932A1 (en) | Memory system and operating method thereof | |
US11126552B2 (en) | Memory system, memory controller and method for operating memory controller | |
US20210365382A1 (en) | Memory system, memory controller, and operation method thereof | |
CN113535598A (zh) | 存储器***、存储器控制器以及存储器***的操作方法 | |
KR20210041233A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
KR20210012123A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
US11467903B2 (en) | Memory system and operating method thereof | |
CN115963981A (zh) | 存储器***及存储器***的操作方法 | |
US11307942B2 (en) | Memory system, memory controller and method for operating memory controller | |
CN114530173A (zh) | 存储器***及其操作方法 | |
CN112131143A (zh) | 存储器***、存储器控制器及元信息存储装置 | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
US11995352B2 (en) | Memory controller and operating method thereof | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US11704050B2 (en) | Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks | |
US11416401B2 (en) | Memory system and operating method thereof | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
US20220300187A1 (en) | Memory system and operating method thereof | |
KR20230161676A (ko) | 이퓨즈 메모리를 제어하는 컨트롤러 및 그 동작 방법 | |
KR20230135334A (ko) | 가비지 컬렉션을 제어하는 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
KR20220163661A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20240058593A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201027 |
|
WW01 | Invention patent application withdrawn after publication |