CN113535607A - 存储器***、存储器控制器以及存储器***的操作方法 - Google Patents
存储器***、存储器控制器以及存储器***的操作方法 Download PDFInfo
- Publication number
- CN113535607A CN113535607A CN202011025823.1A CN202011025823A CN113535607A CN 113535607 A CN113535607 A CN 113535607A CN 202011025823 A CN202011025823 A CN 202011025823A CN 113535607 A CN113535607 A CN 113535607A
- Authority
- CN
- China
- Prior art keywords
- map
- mapping
- memory
- region
- area
- 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/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开的实施例涉及一种存储器***、存储器控制器以及存储器***的操作方法。根据本公开的实施例,在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,存储器***可以分配用于高速缓存映射表中的多个映射段的映射高速缓存区域的一部分作为用于更新映射表的映射更新区域,并且可以将多个映射段的子集加载到映射更新区域。因此,可以在保证高速缓存性能达到预定水平或更高的限制内快速地更新映射表并优化映射表的更新性能。
Description
相关申请的交叉引用
本申请要求于2020年4月22日提交的申请号为10-2020-0048388的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的实施例涉及一种存储器***、存储器控制器以及存储器***的操作方法。
背景技术
存储器***(例如,存储装置)基于来自诸如以下的主机的请求存储数据:计算机、移动终端(例如,智能手机或平板电脑)或各种其它电子装置中的任意一种。存储器***可以是诸如硬盘驱动器(HDD)的将数据存储在磁盘中的装置类型,或者是诸如固态驱动器(SSD)、通用闪存装置(UFS)或嵌入式MMC(eMMC)装置的将数据存储在非易失性存储器中的装置类型。
存储器***可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以接收从主机输入的命令,并且基于接收到的命令,可以运行或控制用于读取、写入或擦除存储器***中包括的易失性存储器或非易失性存储器中的数据的操作。存储器控制器可以驱动固件以执行用于运行或控制这种操作的逻辑运算。
当基于从主机接收到的命令执行读取操作或写入操作时,存储器***使用映射表来管理从主机请求的存储器的逻辑地址和存储器装置的物理地址之间的映射信息。存储器***可以将映射段高速缓存在映射高速缓存区域中,以便从映射表中快速地检索映射信息。另外,存储器***可以以特定间隔或在发生特定事件时更新映射表,以便反映映射表的变化。
发明内容
本公开的实施例可以提供一种存储器***、存储器控制器以及存储器***的操作方法,其能够在更新映射表时快速地对该映射表进行更新。
另外,本公开的实施例可以提供一种存储器***、存储器控制器以及存储器***的操作方法,其能够在保证映射表的高速缓存性能达到预定水平或更高水平的限制内优化该映射表的更新性能。
一方面,本公开的实施例可以提供一种存储器***,该存储器***包括存储器装置和联接到该存储器装置的存储器控制器。
在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,存储器控制器可以分配用于高速缓存映射表中的多个映射段的映射高速缓存区域的一部分作为用于更新映射表的映射更新区域。
存储器控制器可以将多个映射段的子集加载到映射更新区域。
当存储器装置的开放存储块中的可写页面的数量小于或等于页面的阈值数量时,存储器控制器可以分配映射高速缓存区域的一部分作为映射更新区域。开放存储块可以是被配置为处理从主机接收到的写入命令的存储块。
在这种情况下,映射更新区域中的子区域可以是1)未高速缓存映射段的子区域,或2)高速缓存了N个最近最少使用的映射段中的任意一个映射段的子区域,该任意一个映射段在每个第一时间段的命中计数小于阈值命中计数。在此,N可以是自然数。
存储器控制器可以将目标映射段加载到映射更新区域,该目标映射段是多个映射段之中包括被写入开放存储块的数据的逻辑地址的映射段。存储器控制器可以以数组的形式管理目标映射段的列表。
当在第二时间段内从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,存储器控制器可以通过将映射高速缓存区域的命中率与参考命中率进行比较来改变映射更新区域的大小。
参考命中率可以与映射更新区域的大小成比例地改变。
例如,当在第三时间段期间映射高速缓存区域的命中率大于或等于参考命中率时,存储器控制器可以增加映射更新区域的大小。
又例如,当在第三时间段期间映射高速缓存区域的命中率小于参考命中率时,存储器控制器可以减小映射更新区域的大小。
另一方面,本公开的实施例可以提供一种存储器控制器,该存储器控制器包括被配置为与存储器装置通信的存储器接口和联接到该存储器装置的控制电路。
在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,控制电路可以分配用于高速缓存映射表中的多个映射段的映射高速缓存区域的一部分作为用于更新映射表的映射更新区域。
控制电路可以将多个映射段的子集加载到映射更新区域。
当存储器装置的开放存储块中的可写页面的数量小于或等于页面的阈值数量时,控制电路可以分配映射高速缓存区域的一部分作为映射更新区域。开放存储块可以是被配置为处理从主机接收到的写入命令的存储块。
在这种情况下,映射更新区域中的子区域可以是1)未高速缓存映射段的子区域,或2)高速缓存了N个最近最少使用的映射段中的任意一个映射段的子区域,该任意一个映射段在每个第一时间段的命中计数小于阈值命中计数。在此,N可以是自然数。
控制电路可以将目标映射段加载到映射更新区域,该目标映射段是多个映射段之中包括被写入开放存储块的数据的逻辑地址的映射段。控制电路可以以数组的形式管理目标映射段的列表。
当在第二时间段内从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,控制电路可以通过将映射高速缓存区域的命中率与参考命中率进行比较来改变映射更新区域的大小。
在这种情况下,参考命中率可以与映射更新区域的大小成比例地改变。
例如,当在第三时间段期间映射高速缓存区域的命中率大于或等于参考命中率时,控制电路可以增加映射更新区域的大小。
又例如,当在第三时间段内映射高速缓存区域的命中率小于参考命中率时,控制电路可以减小映射更新区域的大小。
一种存储器***的操作方法,该存储器***包括存储器装置和被配置为控制该存储器装置的存储器控制器,该操作方法可以包括:在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,分配用于高速缓存映射表中多个映射段的映射高速缓存区域的一部分作为用于更新映射表的映射更新区域。
另外,存储器***的操作方法可以包括将多个映射段的子集加载到映射更新区域。
当存储器装置的开放存储块中的可写页面的数量小于或等于页面的阈值数量时,可以分配映射高速缓存区域的一部分作为映射更新区域。
映射更新区域中的子区域可以是:1)未高速缓存映射段的子区域,或2)高速缓存了N个最近最少使用的映射段中的任意一个映射段的子区域,该任意一个映射段在每个第一时间段的命中计数小于阈值命中计数。在此,N是自然数。
当在第二时间段内从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,可以基于将映射高速缓存区域的命中率与参考命中率进行比较的结果来改变映射更新区域的大小。
另一方面,本公开的实施例可以提供一种存储器***,该存储器***包括:存储器装置,包括开放存储块;以及控制器,包括映射表和映射高速缓存区域,该映射表存储指示存储器装置的逻辑地址和物理地址之间的映射的多个映射段,并且该映射高速缓存区域用于高速缓存多个映射段。
控制器可以基于开放存储块中可写页面的数量,分配映射高速缓存区域的一部分作为映射更新区域。
控制器可以将多个映射段的子集加载到映射更新区域。
控制器可以使用所加载的子集更新映射表。
根据本公开的实施例,可以在更新映射表时快速地对该映射表进行更新。
另外,根据本公开的实施例,可以在保证映射表的高速缓存性能达到预定水平或更高水平的限制内优化该映射表的更新性能。
附图说明
从以下结合附图的详细描述中,本公开的上述和其它方面、特征和优点将变得更加明显,其中:
图1是示出根据本公开的实施例的存储器***的配置的示意图;
图2是示意性地示出根据本公开的实施例的存储器装置的框图;
图3是示意性地示出根据本公开的实施例的存储器装置的存储块的示图;
图4是示出根据本公开的实施例的存储器装置的字线和位线的结构的示图;
图5是示意性地示出根据本公开的实施例的存储器***的操作的示图;
图6是示出根据本公开的实施例的开放存储块的配置的示图;
图7是示出根据本公开的实施例的存储器***分配映射更新区域的操作的示例的流程图;
图8是示出根据本公开的实施例的映射高速缓存区域的示例的示图;
图9是示出图8中的映射高速缓存区域中可以分配给映射更新区域的子区域的示例的示图;
图10是示出加载到映射更新区域的映射段的示例的示图;
图11是示出根据本公开的实施例的存储器***改变映射更新区域的大小的操作的示例的流程图;
图12是示出根据本公开的实施例的存储器***改变参考命中率的示例的示图;
图13是示出根据本公开的实施例的存储器***通过将映射高速缓存区域的命中率与参考命中率进行比较来改变映射更新区域的大小的示例的示图;
图14是示出根据本公开的实施例的存储器***的操作方法的流程图;以及
图15是示出根据本公开的实施例的计算***的配置的示图。
具体实施方式
在下文中,参照附图详细描述了本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据本公开的实施例的存储器***100的配置的示意图。
参照图1,存储器***100可以包括被配置为存储数据的存储器装置110和被配置为控制存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块。存储器装置110可以被配置为响应于从存储器控制器120接收到的控制信号而操作。存储器装置110的操作可以包括例如读取操作、编程操作(也被称为“写入操作”)和擦除操作。
存储器装置110可以包括存储器单元阵列,该存储器单元阵列包括被配置为存储数据的多个存储器单元(也被简称为“单元”)。存储器单元阵列可以存在于存储块内部。
例如,存储器装置110可以由诸如以下的各种类型的存储器中的任意一种来实施:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功耗双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功耗DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。
存储器装置110可以以三维阵列结构来实施。本公开的实施例不仅可应用于具有被配置为导电浮栅的电荷存储层的闪速存储器装置,而且可应用于具有电荷撷取闪存(CTF)的闪速存储器装置,该电荷撷取闪存具有被配置为绝缘膜的电荷存储层。
存储器装置110可以被配置为从存储器控制器120接收命令和地址,并访问由该地址选择的存储器单元阵列的区域。也就是说,存储器装置110可以在存储器装置中具有与从控制器接收的地址相对应的物理地址的存储器区域中,执行与接收到的命令相对应的操作。
例如,存储器装置110可以执行编程操作、读取操作和擦除操作。在编程操作期间,存储器装置110可以将数据编程在由地址选择的区域。在读取操作期间,存储器装置110可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置110可以擦除存储在由地址选择的区域中的数据。
存储器控制器120可以控制关于存储器装置110的写入操作(或编程操作)、读取操作、擦除操作和后台操作。后台操作可以包括,例如垃圾收集(GC)操作、损耗均衡(WL)操作和/或坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,存储器控制器120可以在没有主机的相应请求的情况下,例如在存储器控制器120执行存储器装置110的一个或多个后台操作时,控制存储器装置110的操作。
存储器控制器120和主机可以是单独的装置。在另一实施例中,存储器控制器120和主机可以被集成并实施为单个装置。在下面的描述中,存储器控制器120和主机是单独的装置。
在图1中,存储器控制器120可以包括主机接口(I/F)121、存储器接口122和控制电路123。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机(HOST)接收到命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理接收到的命令的操作。
存储器接口122可以连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为响应于控制电路123的控制而向存储器装置110和存储器控制器120提供接口。
控制电路123可以被配置为通过对存储器控制器120进行总体控制来控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测和校正(检测/校正)电路(即,ECC电路)126等。
处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑运算。处理器124可以通过主机接口121与主机通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可以执行闪存转换层(FTL)的功能。处理器124可以通过FTL将主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并使用映射表将LBA转换为PBA。
根据映射单元,FTL可以采用各种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器124可以被配置为使从主机接收到的数据随机化。例如,处理器124可以使用随机化种子使从主机接收到的数据随机化。经随机化的数据作为待存储的数据被提供到存储器装置110,并被编程在存储器单元阵列。
在读取操作期间,处理器124可以被配置为使从存储器装置110接收到的数据去随机化。例如,处理器124可以使用去随机化种子使从存储器装置110接收到的数据去随机化。经去随机化的数据可以被输出到主机。
处理器124可以运行固件(FW)以便控制存储器控制器120的操作。换句话说,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑运算,在启动期间可以运行(或驱动)加载到工作存储器125中的固件。
固件是指在存储器***100内部运行的程序,并且可以包括各种功能层。
例如,固件可以包括闪存转换层(FTL)、主机接口层(HIL)和/或闪存接口层(FIL)。如上所述,FTL被配置为在从主机接收到的逻辑地址和存储器装置110的物理地址之间进行转换。HIL被配置为解释主机向存储器***100(或存储装置)发出的命令并将该命令传递到FTL。FIL被配置为将由FTL发出的命令传递到存储器装置110。
例如,固件可以存储在存储器装置110中,然后被加载到工作存储器125中。
工作存储器125可以存储驱动存储器控制器120所必需的固件、程序代码、命令或(多条)数据。工作存储器125可以包括例如静态RAM(SRAM)、动态RAM(DRAM)和/或同步RAM(SDRAM)作为易失性存储器。
错误检测/校正电路126可以被配置为使用错误校正码来检测目标数据的一个或多个错误位,并校正检测到的错误位。例如,目标数据可以是存储在工作存储器125中的数据、从存储器装置110检索的数据等。
错误检测/校正电路126可以被实施为使用错误校正码对数据进行解码。错误检测/校正电路126可以使用各种代码解码器来实施。例如,错误检测/校正电路126可以利用执行非***代码解码的解码器或执行***代码解码的解码器来实施。
例如,错误检测/校正电路126可以针对每条读取数据逐个扇区地检测错误位。也就是说,每条读取数据可以包括多个扇区。如本文所使用的,扇区可以指小于闪速存储器的读取单位(即,页面)的数据单位。构成每条读取数据的扇区可以经由地址彼此对应。
错误检测/校正电路126可以计算误码率(BER),并确定是否可以逐个扇区地校正。例如,如果BER高于参考值,则错误检测/校正电路126可以确定相应的扇区是不可校正的或“失败”。如果BER低于参考值,则错误检测/校正电路126可以确定相应的扇区是可校正的或“通过”。
错误检测/校正电路126可以针对所有条读取数据顺序地执行错误检测和校正操作。当读取数据中的扇区是可校正的时,错误检测/校正电路126可以针对下一条读取数据省略与相应的扇区有关的错误检测和校正操作。在以这种方式完成针对所有条读取数据的错误检测和校正操作之后,错误检测/校正电路126可以检测被认为最终不可校正的扇区。可能存在一个或多个被认为不可校正的扇区。错误检测/校正电路126可以将关于被认为不可校正的扇区的信息(例如,地址信息)传递到处理器124。
总线127可以被配置为在存储器控制器120的构成元件(例如,主机接口121、存储器接口122、处理器124、工作存储器125和错误检测/校正电路126)之间提供通道。总线127可以包括例如用于传递各种控制信号的控制总线和用于传递各种数据的数据总线。
存储器控制器120的上述构成元件仅作为示例提供。可以省略这些元件中的一个或多个,和/或可以将这些元件中的一个或多个集成到单个元件中。当然,如本领域技术人员将理解的那样,除了以上标识的元件之外,存储器控制器120还可以包含一个或多个其它元件。
在下文中,参照图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可以被配置为具有二维结构的存储器单元阵列,并且在某些情况下,可以被配置为具有三维结构的存储器单元阵列。
存储器单元阵列210中的多个存储器单元中的每一个可以存储至少一位数据。例如,多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(SLC)、被配置为存储两位数据的多层单元(MLC)、被配置为存储三位数据的三层单元(TLC)或被配置为存储四位数据的四层单元(QLC)。又例如,存储器单元阵列210可以包括每一个可以被配置为存储五位或更多位数据的多个存储器单元。
在图2中,地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以用作被配置为驱动存储器单元阵列210的***电路。
地址解码器220可以通过多个字线WL连接到存储器单元阵列210。
地址解码器220可以被配置为响应于控制逻辑240的控制而操作。
地址解码器220可以通过存储器装置110内部的输入/输出缓冲器(未示出)来接收地址。地址解码器220可以被配置为对接收到的地址之中的块地址进行解码。地址解码器220可以根据经解码的块地址选择至少一个存储块。
地址解码器220可以从电压生成电路250接收读取电压Vread和通过电压Vpass。
在读取操作期间,地址解码器220可以将读取电压Vread施加到所选择存储块内部的所选择字线WL,并且可以将通过电压Vpass施加到其余的未选择字线WL。
在编程验证操作期间,地址解码器220可以将由电压生成电路250生成的验证电压施加到所选择存储块内部的所选择字线WL,并且可以将通过电压Vpass施加到其余未选择字线WL。
地址解码器220可以被配置为对接收到的地址之中的列地址进行解码。地址解码器220可以将经解码的列地址传输到读取/写入电路230。
存储器装置110可以逐个页面地执行读取操作和编程操作。在请求读取操作和编程操作时接收到的地址可以包括块地址、行地址和列地址中的至少一个。
地址解码器220可以根据块地址和行地址选择一个存储块和一个字线。列地址可以由地址解码器220解码,并提供到读取/写入电路230。
地址解码器220可以包括块解码器、行解码器、列解码器和/或地址缓冲器。
读取/写入电路230可以包括多个页面缓冲器PB。当存储器单元阵列210执行读取操作时,读取/写入电路230可以作为“读取电路”操作,并且当存储器单元阵列210执行写入操作时,读取/写入电路230可以作为“写入电路”操作。
读取/写入电路230也被称为包括多个页面缓冲器PB的页面缓冲器电路或数据寄存器电路。读取/写入电路230可以包括参与数据处理功能的数据缓冲器,并且在某些情况下,可以进一步包括以高速缓存功能操作的高速缓存缓冲器。
多个页面缓冲器PB可以通过多个位线BL连接到存储器单元阵列210。为了在读取操作和编程验证操作期间感测存储器单元的阈值电压Vth,多个页面缓冲器PB可以向连接到存储器单元的位线BL连续地供应感测电流,可以通过感测节点感测根据相应的存储器单元的编程状态流过的电流量的变化,并且可以将该电流量的变化锁存为感测数据。
读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元中的数据,临时存储所检索的数据,并将数据DATA输出到存储器装置110的输入/输出缓冲器。在实施例中,除了页面缓冲器PB或页面寄存器之外,读取/写入电路230还可以包括列选择电路。
控制逻辑240可以连接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器装置110的输入/输出缓冲器接收命令CMD和控制信号CTRL。
控制逻辑240可以被配置为响应于控制信号CTRL而控制存储器装置110的全部操作。控制逻辑240可以输出控制信号,用于调整多个页面缓冲器PB的感测节点的预充电电位电平。
控制逻辑240可以控制读取/写入电路230以在存储器单元阵列210中执行读取操作。电压生成电路250可以响应于从控制逻辑240输出的电压生成电路控制信号而生成在读取操作期间使用的读取电压Vread和通过电压Vpass。
图3是示意性地示出根据本公开的实施例的存储器装置110的存储块BLK的示图。
参照图3,存储块BLK可以被布置并配置在多个页面PG和多个串STR相交的方向上。
多个页面PG对应于多个字线WL,并且多个串STR对应于多个位线BL。
在存储块BLK中,多个字线WL和多个位线BL可以被布置成相交。例如,多个字线WL中的每一个可以沿行方向布置,并且多个位线BL中的每一个可以沿列方向布置。又例如,多个字线WL中的每一个可以沿列方向布置,并且多个位线BL中的每一个可以沿行方向布置。
多个字线WL和多个位线BL可以彼此相交,从而限定多个存储器单元MC。每个存储器单元MC可以具有布置在其中的晶体管TR。
例如,晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR连接到相应的位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR连接到源极线(其可以是地)。晶体管TR的栅极可以包括由绝缘体围绕的浮栅(FG)和从字线WL向其施加栅极电压的控制栅极(CG)。
在多个存储块BLK1-BLKz的每一个中,第一选择线(也被称为源极选择线或漏极选择线)可以额外地布置在两个最外字线之中更靠近读取/写入电路230的第一最外字线的外部,并且第二选择线(也被称为漏极选择线或源极选择线)可以额外地布置在另一第二最外字线的外部。
在某些情况下,可以在第一最外字线和第一选择线之间额外地布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间额外地布置(多个)虚设字线。
在如图3所示的存储块结构的情况下,可以逐个页面地执行读取操作和编程操作(即,写入操作),并且可以逐个存储块地执行擦除操作。
图4是示出根据本公开的实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图4,存储器装置110具有存储器单元MC集中的内核区域和对应于其余非内核区域的辅助区域。辅助区域支持存储器单元阵列210的操作。
内核区域可以包括页面PG和串STR。在内核区域中,多个字线WL1-WL9和多个位线BL被布置成相交。
字线WL1-WL9可以连接到行解码器410。位线BL可以连接到列解码器420。对应于图2的读取/写入电路230的数据寄存器430可以存在于多个位线BL和列解码器420之间。
多个字线WL1-WL9可以对应于多个页面PG。
例如,多个字线WL1-WL9中的每一个可以对应于如图4所示的一个页面PG。相反,当多个字线WL1-WL9中的每一个的大小较大时,多个字线WL1-WL9中的每一个可以对应于至少两个(例如,两个或四个)页面PG。每个页面PG是与进行编程操作和读取操作有关的最小单位,并且在进行编程操作和读取操作时,相同页面PG内的所有存储器单元MC可以同时执行操作。
可以包括交替的奇数编号位线和偶数编号位线的多个位线BL可以连接到列解码器420。
为了访问存储器单元MC,可以首先通过输入/输出端,然后通过行解码器410和列解码器420将地址输入到内核区域,从而可以指定相应的目标存储器单元。如本文所使用的,指定目标存储器单元是指访问在连接到行解码器410的字线WL1-WL9与连接到列解码器420的位线BL之间的交点处的存储器单元MC中的一个,以将数据编程到该一个存储器单元中或从该一个存储器单元读取经编程的数据。
第一方向(例如,X轴方向)上的页面PG由被称为字线WL的通用线绑定,而第二方向(例如,Y轴方向)上的串STR由被称为位线BL的公共线绑定(连接)。如本文所使用的,共同绑定是指通过相同的材料在结构上连接并且在施加电压期间同时接收相同的电压。由于在串联连接的存储器单元MC之中前一存储器单元MC上的压降,因此施加到存储器单元MC之中的存储器单元MC的电压可能与施加到沿线路往下的另一存储器单元的电压略有不同。
由于存储器装置110的所有数据处理,包括编程操作和读取操作,都是经由数据寄存器430发生的,因此数据寄存器430起着重要的作用。如果数据寄存器430的数据处理被延迟,则所有其它区域都需要等待,直到数据寄存器430完成数据处理。另外,数据寄存器430的性能劣化可能会使存储器装置110的整体性能劣化。
在图4所示的示例中,在一个串STR中,可以存在连接到多个字线WL1-WL9的多个晶体管TR1-TR9。存在多个晶体管TR1-TR9的区域对应于存储器单元MC。如本文所使用的,多个晶体管TR1-TR9是指包括控制栅极CG和浮栅FG的晶体管。
多个字线WL1-WL9包括两个最外字线WL1和WL9。第一选择线DSL可以额外地布置在两个最外字线WL1和WL9之中就信号路径而言更靠近数据寄存器430的第一最外字线WL1的外部,并且第二选择线SSL可以额外地布置在另一第二最外字线WL9的外部。
由第一选择线DSL控制导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但是不包括浮栅FG。由第二选择线SSL控制导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但是不包括浮栅FG。
第一选择晶体管D-TR起到导通或关断相应的串STR和数据寄存器430之间的连接的开关的作用。第二选择晶体管S-TR起到导通或关断相应的串STR和源极线SL之间的连接的开关的作用。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR起到位于相应的串STR的相对两端处的关守的作用,并传递/阻挡信号。
在编程操作期间,存储器***100需要用电子填充位线BL的待被编程的目标存储器单元MC。因此,存储器***100向第一选择晶体管D-TR的栅电极施加导通电压Vcc,从而导通第一选择晶体管D-TR,并向第二选择晶体管S-TR的栅电极施加关断电压(例如,0V),从而关断第二选择晶体管S-TR。
存储器***100在读取操作或验证操作期间导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,电流可以流经相应的串STR并流到对应于地的源极线SL,从而可以测量位线BL的电压电平。然而,在读取操作期间,第一选择晶体管D-TR和第二选择晶体管S-TR之间的通/断定时可能存在时间差。
存储器***100可以在擦除操作期间通过源极线SL向衬底供应电压(例如,+20V)。存储器***100在擦除操作期间使第一选择晶体管D-TR和第二选择晶体管S-TR两者都浮置,从而产生无穷大电阻。因此,可以消除第一选择晶体管D-TR和第二选择晶体管S-TR的作用,并且由于电位差,电子仅可以在浮栅FG和衬底之间操作。
图5是示意性地示出根据本公开的实施例的图1的存储器***100的操作的示图。
参照图5,存储器***100的存储器控制器120可以包括映射表MAP_TBL,该映射表MAP_TBL包括逻辑地址和物理地址之间的映射信息。存储器控制器120可以分配用于高速缓存映射表MAP_TBL的映射段MAP_SEG的映射高速缓存区域MAP_CACHE_AREA的一部分作为映射更新区域MAP_UPDATE_AREA,以便更新映射表MAP_TBL。
映射表MAP_TBL可以处于存储器控制器120的工作存储器125上。当启动存储器***100时,可以从存储器装置110加载映射表MAP_TBL。
在实施例中,像映射表MAP_TBL一样,映射高速缓存区域MAP_CACHE_AREA也可以处于存储器控制器120的工作存储器125上。可选地,在另一实施例中,映射高速缓存区域MAP_CACHE_AREA可以处于与工作存储器125不同的易失性存储器(例如,TCM、SRAM、DRAM或SDRAM)上。
映射表MAP_TBL可以包括多个映射段MAP_SEG,多个映射段MAP_SEG中的每一个可以包括多条映射信息。每条映射信息可以指示映射到特定逻辑地址LA的特定物理地址PA。在示出的示例中,映射信息可以指示逻辑地址LA 0和物理地址PA 100彼此映射。作为另一示例,映射信息可以指示逻辑地址LA 2和物理地址PA 103彼此映射。
可以通过编程/擦除操作、后台操作(例如,垃圾收集)等来改变高速缓存在映射高速缓存区域MAP_CACHE_AREA中的映射段MAP_SEG中的映射信息。存储器控制器120可以更新映射表MAP_TBL,以便反映高速缓存在映射高速缓存区域MAP_CACHE_AREA中的映射段MAP_SEG的变化。
在这种情况下,在更新映射表MAP_TBL之前,存储器控制器120可以预先分配映射高速缓存区域MAP_CACHE_AREA的一部分作为映射更新区域MAP_UPDATE_AREA。映射更新区域MAP_UPDATE_AREA是用于更新映射表MAP_TBL的区域。
在更新映射表之前预先分配映射高速缓存区域的一部分可以提高执行更新的速度。这是由于以下事实:如果在存储器控制器120更新映射表MAP_TBL之前加载了待更新的映射段MAP_SEG,则可以减少检索该映射段所花费的时间。
另外,存储器控制器120可以将上述映射段MAP_SEG的子集加载到映射更新区域MAP_UPDATE_AREA,以便更新映射表MAP_TBL。该子集可以包括映射表MAP_TBL中的一些或全部映射段MAP_SEG。
例如,如果确定即将更新映射表MAP_TBL,则存储器控制器120可以在更新映射表MAP_TBL之前将该映射表中的全部或一些映射段MAP_SEG加载到映射更新区域MAP_UPDATE_AREA。
在这种情况下,存储器控制器120分配映射高速缓存区域MAP_CACHE_AREA的一部分作为映射更新区域MAP_UPDATE_AREA的时间可以是,例如开放存储块中用于处理从主机接收到的写入命令的可写页面的数量小于或等于页面的阈值数量的时间。在下文中,将参照图6和图7对此进行详细描述。
图6是示出根据本公开的实施例的开放存储块OPEN_MEM_BLK的配置的示图。
参照图6,响应于从主机接收到的写入命令,存储器控制器120可以控制存储器装置110,以便以页面为单位将从主机接收到的写入数据存储在开放存储块OPEN_MEM_BLK中。开放存储块OPEN_MEM_BLK可以包括多个页面,多个页面中的每一个可以是存储了数据的被占用页面,或者可以是未存储数据的可写页面。
开放存储块OPEN_MEM_BLK中的各个页面中存储的数据可以对应于特定逻辑地址值。例如,在图6所示的开放存储块OPEN_MEM_BLK中,存储在页面#0中的数据对应于逻辑地址LA 0,存储在页面#1中的数据对应于逻辑地址LA 100,存储在页面#2中的数据对应于逻辑地址LA 512,存储在页面#3中的数据对应于逻辑地址LA 1025。另外,页面#4至#29是未存储数据的可写页面。
图7是示出根据本公开的实施例的图1的存储器***100分配映射更新区域MAP_UPDATE_AREA的操作的示例的流程图。
参照图7,存储器***100的存储器控制器120可以计算被表示为A的开放存储块OPEN_MEM_BLK中的可写页面的数量(S710)。在图6的示例中,开放存储块OPEN_MEM_BLK中的可写页面的数量也就是A为26,即,可写页面包括页面4至29。
存储器控制器120确定A是否小于或等于页面的阈值数量(例如,10或20)(S720)。
如果A小于或等于页面的阈值数量(在S720中为“是”),则这意味着即将更新映射表MAP_TBL。因此,存储器控制器120可以分配映射高速缓存区域MAP_CACHE_AREA的一部分作为映射更新区域MAP_UPDATE_AREA(S730)。
另一方面,如果A超过页面的阈值数量(在S720中为“否”),则这意味着不立即更新映射表MAP_TBL。因此,存储器控制器120不会在映射高速缓存区域MAP_CACHE_AREA中分配映射更新区域MAP_UPDATE_AREA,以继续将映射高速缓存区域MAP_CACHE_AREA仅用于高速缓存(S740)。
在下文中,描述了以下操作:当将映射高速缓存区域MAP_CACHE_AREA的一部分分配为映射更新区域MAP_UPDATE_AREA时,从映射高速缓存区域MAP_CACHE_AREA中的区域之中选择待分配为映射更新区域MAP_UPDATE_AREA的子区域。
图8是示出根据本公开的实施例的映射高速缓存区域MAP_CACHE_AREA的示例的示图。
在一些实施例中,映射高速缓存区域MAP_CACHE_AREA可以被划分为多个子区域。具体地,映射高速缓存区域MAP_CACHE_AREA可以被划分为1)未高速缓存映射段MAP_SEG的空子区域和2)高速缓存了映射段MAP_SEG的子区域。
在图8所示的示例中,映射高速缓存区域MAP_CACHE_AREA可以被划分为十个子区域,其中子区域#0、#1、#2和#3是空子区域,而子区域#4、#5、#6、#7、#8和#9是高速缓存了映射段MAP_SEG的子区域。
在一些实施例中,存储器控制器120可以在第一时间段(例如,500ms)期间为高速缓存在映射高速缓存区域MAP_CACHE_AREA中的映射段MAP_SEG中的每一个计算命中计数。每次在第一时间段期间高速缓存在映射高速缓存区域MAP_CACHE_AREA中的映射段MAP_SEG中的任意一个被从主机接收到的读取命令或写入命令引用(命中)时,所引用的映射段MAP_SEG的命中计数可以增加一。
在图8所示的示例中,高速缓存在映射高速缓存区域MAP_CACHE_AREA中的六个映射段MAP_SEG的命中计数分别为1、100、5、10、8和15。具体地,高速缓存在子区域#4中的映射段的命中计数为1,高速缓存在子区域#5中的映射段的命中计数为100,高速缓存在子区域#6中的映射段的命中计数为5,高速缓存在子区域#7中的映射段的命中计数为10,高速缓存在子区域#8中的映射段的命中计数为8,并且高速缓存在子区域#9中的映射段的命中计数为15。
图9是示出映射高速缓存区域MAP_CACHE_AREA中可以被分配为映射更新区域MAP_UPDATE_AREA的子区域的示例的示图。
在一些实施例中,存储器控制器120可以分配以下中的全部或一些作为映射更新区域MAP_UPDATE_AREA:1)未高速缓存映射段MAP_SEGMENT的子区域,或2)高速缓存了N个最近最少使用(LRU)的映射段MAP_SEG的子区域,该映射段MAP_SEG在每个第一时间段的命中计数小于阈值命中计数THR_CNT,其中N是自然数。在此,“最近最少使用的映射段”是指所有使用的映射段之中最早的、最近最少使用(即,未命中)的映射段。
也就是说,映射更新区域MAP_UPDATE_AREA中的子区域可以是1)未高速缓存映射段MAP_SEGMENT的子区域,或2)高速缓存了N个最近最少使用的映射段MAP_SEG中的任意一个的子区域,该映射段MAP_SEG在每个第一时间段的命中计数小于阈值命中计数THR_CNT。
在图9所示的示例中,假设高速缓存了映射段MAP_SEG的六个子区域最近已按以下的顺序命中:1)高速缓存了命中计数为1的映射段的子区域#4,2)高速缓存了命中计数为100的映射段的子区域#5,3)高速缓存了命中计数为5的映射段的子区域#6,4)高速缓存了命中计数为10的映射段的子区域#7,以及5)高速缓存了命中计数为8的映射段的子区域#8。另外,假设阈值命中计数THR_CNT为15并且N为3。
映射更新区域MAP_UPDATE_AREA中可以包括未高速缓存映射段MAP_SEG的四个子区域。
另外,映射更新区域MAP_UPDATE_AREA中可以包括高速缓存了映射段MAP_SEG的六个子区域之中满足上述条件的子区域。
映射更新区域MAP_UPDATE_AREA中可以包括高速缓存了命中计数为1的映射段的子区域。
由于命中计数100大于阈值命中计数15,因此高速缓存了命中计数为100的映射段的子区域不能包括在映射更新区域MAP_UPDATE_AREA中。由于命中计数大于或等于阈值命中计数的映射段更有可能在将来被引用,因此优选保持该映射段以在稍后被高速缓存。
映射更新区域MAP_UPDATE_AREA中可以包括高速缓存了命中计数为5的映射段的子区域。
映射更新区域MAP_UPDATE_AREA中可以包括高速缓存了命中计数为10的映射段的子区域。
高速缓存了命中计数为8的映射段的子区域不能包括在映射更新区域MAP_UPDATE_AREA中。这是由于以下事实:尽管命中计数8小于阈值命中计数15,但是存在高速缓存了三个映射段的子区域,该三个映射段各自的命中计数小于阈值命中计数并且其各自的最近命中较早。
由于命中计数15不小于阈值命中计数15,因此高速缓存了命中计数为15的映射段的子区域不能包括在映射更新区域MAP_UPDATE_AREA中。
因此,可以基于包括空子区域(即,子区域#0、#1、#2和#3)与高速缓存了映射段MAP_SEG的六个子区域之中的子区域#4、#6和#7的总共七个子区域来分配映射更新区域MAP_UPDATE_AREA。例如,所分配的映射更新区域MAP_UPDATE_AREA可以包括上述所有七个子区域,或者可以仅包括七个子区域中的一些(例如,四个子区域或五个子区域)。
在下文中,描述了将映射段MAP_SEG加载到被分配用于更新映射表MAP_TBL的映射更新区域MAP_UPDATE_AREA的过程。
图10是示出加载到映射更新区域MAP_UPDATE_AREA的映射段的示例的示图。
在图10所示的示例中,假设与逻辑地址LA 0、逻辑地址LA 100、逻辑地址LA 512和逻辑地址LA 1025相对应的数据已被写入图6的开放存储块OPEN_MEM_BLK。另外,假设每个映射段MAP_SEG包括逻辑地址和物理地址之间的512条映射信息。
在这种情况下,可以按照如下方式选择目标映射段,该目标映射段是包括写入开放存储块OPEN_MEM_BLK的数据的逻辑地址的映射段。
首先,可以选择包括关于逻辑地址0至511的映射信息的映射段#0MAP_SEG#0作为目标映射段。映射段#0MAP_SEG#0包括逻辑地址0和逻辑地址100。
另外,还可以选择包括关于逻辑地址512至1023的映射信息的映射段#1MAP_SEG#1作为目标映射段。映射段#1MAP_SEG#1包括逻辑地址512。
另外,还可以选择包括关于逻辑地址1024至1535的映射信息的映射段#2MAP_SEG#2作为目标映射段。映射段#2MAP_SEG#2包括逻辑地址1025。
存储器控制器120可以管理目标映射段的列表MAP_SEG_LIST,以便将上述四个目标映射段快速地加载到映射更新区域MAP_UPDATE_AREA。
存储器控制器120可以使用各种数据结构中的任意一种来管理目标映射段的列表MAP_SEG_LIST。例如,存储器控制器120可以以数组的形式管理目标映射段的列表MAP_SEG_LIST。存储器控制器120顺序地访问目标映射段的列表MAP_SEG_LIST中的目标映射段,并将该目标映射段加载到映射更新区域MAP_UPDATE_AREA。在这种情况下,如果以数组的形式管理目标映射段的列表MAP_SEG_LIST,则可以快速地访问各个目标映射段。
当数据被写入开放存储块OPEN_MEM_BLK时,存储器控制器120可以识别与所写入的数据相对应的逻辑地址,并且可以将关于映射段MAP_SEG的信息(包括与上述逻辑地址相对应的映射信息)添加到目标映射段的列表MAP_SEG_LIST。
然而,如果关于映射段的信息(包括与逻辑地址相对应的映射信息)已经被添加到目标映射段的列表MAP_SEG_LIST,则存储器控制器120可以省略上述的添加操作。
例如,如果逻辑地址LA 0对应于写入开放存储块OPEN_MEM_BLK的数据,则存储器控制器120可以将关于映射段#0MAP_SEG#0的信息(包括与逻辑地址0相对应的映射信息)添加到目标映射段的列表MAP_SEG_LIST。此后,如果逻辑地址100对应于写入开放存储块OPEN_MEM_BLK的数据,由于关于映射段#0MAP_SEG#0的信息(包括与逻辑地址100相对应的映射信息)已经被添加到目标映射段的列表MAP_SEG_LIST,因此存储器控制器120可以省略将关于映射段#0MAP_SEG#0的信息添加到目标映射段的列表MAP_SEG_LIST的操作。
另外,如果逻辑地址LA 512对应于写入开放存储块OPEN_MEM_BLK的数据,则存储器控制器120可以将关于映射段#1MAP_SEG#1的信息(包括与逻辑地址LA 512相对应的映射信息)添加到目标映射段的列表MAP_SEG_LIST。
例如,如果逻辑地址LA 1025对应于写入开放存储块OPEN_MEM_BLK的数据,则存储器控制器120可以将关于映射段#2MAP_SEG#2的信息(包括与逻辑地址LA 1025相对应的映射信息)添加到目标映射段的列表MAP_SEG_LIST。
此后,当将映射段MAP_SEG加载到映射更新区域MAP_UPDATE_AREA以便更新映射表MAP_TBL时,存储器控制器120可以从目标映射段的列表MAP_SEG_LIST中检索映射段#0MAP_SEG#0、映射段#1MAP_SEG#1和映射段#2MAP_SEG#2,并且可以将其加载到映射更新区域MAP_UPDATE_AREA。
即使在分配了映射更新区域MAP_UPDATE_AREA之后,存储器控制器120也可以改变映射更新区域MAP_UPDATE_AREA的大小。在分析工作负荷之后,存储器控制器120可以根据工作负荷来改变映射更新区域MAP_UPDATE_AREA的大小。
例如,工作负荷可以被定义为在第二时间段(例如,2秒)期间从主机接收到的写入命令与所有命令的比率,并且如果该比率大于或等于阈值比率,则存储器控制器120可以通过将映射高速缓存区域的命中率与参考命中率进行比较来改变映射更新区域MAP_UPDATE_AREA的大小。在下文中,将参照图11详细描述该操作。
图11是示出根据本公开的实施例的图1的存储器***100改变映射更新区域MAP_UPDATE_AREA的大小的操作的示例的流程图。
参照图11,存储器***100的存储器控制器120可以计算在第二时间段期间从主机接收到的写入命令与所有命令的比率(S1110),该比率表示为B。在此,比率B可以通过在第二时间段期间从主机接收到的写入命令的数量与在第二时间段期间从主机接收到的所有命令的比率而获得。例如,如果在第二时间段期间从主机HOST接收到50个写入命令和30个读取命令,则B为50/(30+50)=62.5%。
存储器控制器120确定在步骤S1110中计算出的比率B是否大于或等于阈值比率(S1120)。如果比率B小于阈值比率(在S1120中为“否”),则存储器控制器120不执行改变映射更新区域MAP_UPDATE_AREA的大小的操作。这是由于以下事实:比率B小于阈值比率意味着接收到少量的写入操作,并且在这种情况下,由于映射表MAP_TBL变化很小,因此映射表MAP_TBL即将更新的可能性较低。
另一方面,如果比率B大于或等于阈值比率(在S1120中为“是”),则存储器控制器120可以优先地计算映射高速缓存区域MAP_CACHE_AREA的命中率C,以便改变映射更新区域MAP_UPDATE_AREA的大小(S1130)。
可以将映射高速缓存区域MAP_CACHE_AREA的命中率C计算为第三时间段(例如,1秒)期间从映射高速缓存区域MAP_CACHE_AREA中命中(即,成功地检索到)的映射信息的条数与从映射高速缓存区域MAP_CACHE_AREA中检索映射信息的总次数的比率。例如,在第三时间段期间检索到100条映射信息的情况下,如果其中40条映射信息被命中,并且如果其中60条映射信息未命中,则命中率C被计算为40/100=40%。
存储器控制器120可以将在步骤S1130中计算出的值C与参考命中率进行比较,从而改变映射更新区域MAP_UPDATE_AREA的大小(S1140)。下面参照图13详细描述了存储器控制器120改变映射更新区域MAP_UPDATE_AREA的大小的具体示例。
上述的参考命中率可以是固定的,或者可以根据映射更新区域MAP_UPDATE_AREA的大小而动态地改变。
图12是示出根据本公开的实施例的图1的存储器***100改变参考命中率的示例的示图。
参照图12,假设映射高速缓存区域MAP_CACHE_AREA的总大小为100,并且在分配或调配映射高速缓存区域的一部分作为映射更新区域MAP_UPDATE_AREA之前将参考命中率设置为20%。
如果大小为100的映射高速缓存区域MAP_CACHE_AREA中被分配为映射更新区域的一部分的大小为20,则参考命中率可以从20%改变为25%。这是由于以下事实:映射高速缓存区域MAP_CACHE_AREA中用于高速缓存的大小为100且命中率为20%时的映射高速缓存区域MAP_CACHE_AREA的高速缓存性能与映射高速缓存区域MAP_CACHE_AREA中用于高速缓存的大小为80(=100-20)且命中率为25%时的映射高速缓存区域MAP_CACHE_AREA的高速缓存性能相同。
也就是说,当映射更新区域MAP_UPDATE_AREA的大小增加时,映射高速缓存区域MAP_CACHE_AREA中用于高速缓存的大小减小,因此为了使映射高速缓存区域MAP_CACHE_AREA确保相同的高速缓存性能,需要增加命中率。因此,当映射更新区域MAP_UPDATE_AREA的大小增加时,参考命中率增加,并且当映射更新区域MAP_UPDATE_AREA的大小减小时,参考命中率降低。也就是说,参考命中率可以与映射更新区域MAP_UPDATE_AREA的大小成比例地改变。
图13是示出根据本公开的实施例的图1的存储器***100通过将映射高速缓存区域MAP_CACHE_AREA的命中率与参考命中率进行比较来改变映射更新区域MAP_UPDATE_AREA的大小的示例的示图。
在图13中,假设映射高速缓存区域MAP_CACHE_AREA的总大小为100并且参考命中率为25%,其中总大小中的20被分配为映射更新区域MAP_UPDATE_AREA。
在图13的顶部所示的示例中,假设映射高速缓存区域MAP_CACHE_AREA的命中率为30%,其大于参考命中率25%。在这种情况下,即使分配更多的映射高速缓存区域MAP_CACHE_AREA作为映射更新区域MAP_UPDATE_AREA,也可以确保高速缓存性能达到参考命中率。因此,存储器***100的存储器控制器120可以将映射更新区域MAP_UPDATE_AREA的大小从20增加至25。
在图13的底部所示的示例中,假设映射高速缓存区域MAP_CACHE_AREA的命中率为20%,其小于参考命中率25%。在这种情况下,为了使映射高速缓存区域MAP_CACHE_AREA的命中率增加至接近参考命中率,进一步需要用于高速缓存的区域。因此,存储器***100的存储器控制器120可以将映射更新区域MAP_UPDATE_AREA的大小从20减小至15。
如上所述,可以在限制内优化映射表MAP_TBL的更新性能,该限制通过改变映射更新区域MAP_UPDATE_AREA的大小来确保映射表MAP_TBL的高速缓存性能保持在设定水平或更高,以满足映射高速缓存区域MAP_CACHE_AREA的参考命中率。
图14是示出根据本公开的实施例的图1的存储器***100的操作方法的流程图。
参照图14,存储器***100的操作方法可以包括以下步骤:分配用于高速缓存映射表MAP_TBL中的多个映射段MAP_SEG的映射高速缓存区域MAP_CACHE_AREA的一部分作为用于更新映射表MAP_TBL的映射更新区域MAP_UPDATE_AREA(S1410)。在更新包括逻辑地址和物理地址之间的映射信息的映射表MAP_TBL之前,执行该步骤。
在这种情况下,如果开放存储块OPEN_MEM_BLK中用于处理从主机HOST接收到的写入命令的可写页面的数量小于或等于页面的阈值数量时,则可以分配映射高速缓存区域MAP_CACHE_AREA的一部分作为映射更新区域MAP_UPDATE_AREA。
另外,存储器***100的操作方法可以包括以下步骤:将映射段MAP_SEG的子集加载到映射更新区域MAP_UPDATE_AREA(S1420)。
在这种情况下,映射更新区域MAP_UPDATE_AREA中的子区域可以是,例如1)未高速缓存映射段MAP_SEG的子区域,或2)高速缓存了N个最近最少使用的映射段MAP_SEG中的任意一个的子区域,该映射段MAP_SEG在每个第一时间段的命中计数小于阈值命中计数,其中N是自然数。
另外,当在第二时间段期间从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,可以基于将映射高速缓存区域MAP_CACHE_AREA的命中率与参考命中率进行比较的结果来改变映射更新区域MAP_UPDATE_AREA的大小。
存储器控制器120的上述操作可以由控制电路123控制,并且处理器124可以以存储器控制器120的各种操作运行(或驱动)编程固件的方式而执行。
图15是示出根据本公开的实施例的计算***1500的配置的示图。
参照图15,计算***1500可以包括:存储器***100,电连接到***总线1560;中央处理单元(CPU)1510,被配置为控制计算***1500的全部操作;随机存取存储器(RAM)1520,被配置为存储与计算***1500的操作有关的数据和信息;用户接口/用户体验(UI/UX)模块1530,被配置为向用户提供用户环境;通信模块1540,被配置为以有线和/或无线方式与外部装置通信;以及电源管理模块1550,被配置为管理计算***1500所使用的电力。
计算***1500可以是个人计算机(PC),或者可以包括诸如智能手机、平板电脑的移动终端或各种其它电子装置中的任意一种。
计算***1500可以进一步包括用于供应操作电压的电池、应用芯片组、图形相关模块、相机图像处理器和动态随机存取存储器(DRAM)。当然,如本领域技术人员将理解的,计算***1500可以包括其它元件。
存储器***100可以包括诸如硬盘驱动器(HDD)的、被配置为将数据存储在磁盘中的装置,和/或诸如固态驱动器(SSD)、通用闪存装置或嵌入式MMC(eMMC)装置的被配置为将数据存储在非易失性存储器中的装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器***100可以被实施为安装在各种电子装置中的任意一个内部的各种类型的存储装置中的任意一种。
根据上述本公开的实施例,可以最小化存储器***的操作延迟时间。另外,根据本公开的实施例,可以最小化在调用特定功能的过程中产生的开销。尽管已经图示并描述了本公开的各个实施例,但是本领域技术人员将理解的是,在不脱离如所附权利要求中阐述的本公开的范围和精神的情况下,可以进行各种修改、添加和替换。也就是说,本公开涵盖落入权利要求范围内的任意公开实施例的所有修改和变化。
Claims (20)
1.一种存储器***,包括:
存储器装置;以及
存储器控制器,联接到所述存储器装置,并且:
在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,分配高速缓存所述映射表中的多个映射段的映射高速缓存区域的一部分作为更新所述映射表的映射更新区域;以及
将所述多个映射段的子集加载到所述映射更新区域。
2.根据权利要求1所述的存储器***,其中当所述存储器装置的开放存储块中处理从主机接收到的写入命令的可写页面的数量小于或等于页面的阈值数量时,所述存储器控制器分配所述映射高速缓存区域的一部分作为所述映射更新区域。
3.根据权利要求2所述的存储器***,其中所述映射更新区域中的子区域是未高速缓存映射段的子区域,或高速缓存了N个最近最少使用的映射段中的任意一个映射段的子区域,所述任意一个映射段在每个第一时间段的命中计数小于阈值命中计数。
4.根据权利要求2所述的存储器***,其中所述存储器控制器将目标映射段加载到所述映射更新区域,所述目标映射段是所述多个映射段之中包括被写入所述开放存储块的数据的逻辑地址的映射段。
5.根据权利要求4所述的存储器***,其中所述存储器控制器以数组的形式管理所述目标映射段的列表。
6.根据权利要求1所述的存储器***,其中当在第二时间段内从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,所述存储器控制器通过将所述映射高速缓存区域的命中率与参考命中率进行比较来改变所述映射更新区域的大小。
7.根据权利要求6所述的存储器***,其中所述参考命中率与所述映射更新区域的大小成比例地改变。
8.根据权利要求6所述的存储器***,其中当在第三时间段期间所述映射高速缓存区域的命中率大于或等于所述参考命中率时,所述存储器控制器增加所述映射更新区域的大小。
9.根据权利要求6所述的存储器***,其中当在第三时间段期间所述映射高速缓存区域的命中率小于所述参考命中率时,所述存储器控制器减小所述映射更新区域的大小。
10.一种存储器控制器,包括:
存储器接口,与存储器装置通信;以及
控制电路,联接到所述存储器装置,并且:
在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,分配高速缓存所述映射表中的多个映射段的映射高速缓存区域的一部分作为更新所述映射表的映射更新区域;以及
将所述多个映射段的子集加载到所述映射更新区域。
11.根据权利要求10所述的存储器控制器,其中当所述存储器装置的开放存储块中处理从主机接收到的写入命令的可写页面的数量小于或等于页面的阈值数量时,所述控制电路分配所述映射高速缓存区域的一部分作为所述映射更新区域。
12.根据权利要求11所述的存储器控制器,其中所述映射更新区域中的子区域是未高速缓存映射段的子区域,或高速缓存了N个最近最少使用的映射段中的任意一个映射段的子区域,所述任意一个映射段在每个第一时间段的命中计数小于阈值命中计数。
13.根据权利要求11所述的存储器控制器,其中所述控制电路将目标映射段加载到所述映射更新区域,所述目标映射段是所述多个映射段之中包括被写入所述开放存储块的数据的逻辑地址的映射段。
14.根据权利要求13所述的存储器控制器,其中所述控制电路以数组的形式管理所述目标映射段的列表。
15.根据权利要求10所述的存储器控制器,其中当在第二时间段内从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,所述控制电路通过将所述映射高速缓存区域的命中率与参考命中率进行比较来改变所述映射更新区域的大小。
16.根据权利要求15所述的存储器控制器,其中所述参考命中率与所述映射更新区域的大小成比例地改变。
17.一种存储器***的操作方法,所述存储器***包括存储器装置和控制所述存储器装置的存储器控制器,所述方法包括:
在更新包括逻辑地址和物理地址之间的映射信息的映射表之前,分配高速缓存所述映射表中的多个映射段的映射高速缓存区域的一部分作为更新所述映射表的映射更新区域;以及
将所述多个映射段的子集加载到所述映射更新区域。
18.根据权利要求17所述的方法,进一步包括:当所述存储器装置的开放存储块中处理从主机接收到的写入命令的可写页面的数量小于或等于页面的阈值数量时,分配所述映射高速缓存区域的一部分作为所述映射更新区域。
19.根据权利要求18所述的方法,其中所述映射更新区域中的子区域是未高速缓存映射段的子区域,或高速缓存了N个最近最少使用的映射段中的任意一个映射段的子区域,所述任意一个映射段在每个第一时间段的命中计数小于阈值命中计数。
20.根据权利要求17所述的方法,进一步包括:当在第二时间段内从主机接收到的写入命令与所有命令的比率大于或等于阈值比率时,基于比较所述映射高速缓存区域的命中率与参考命中率的结果来改变所述映射更新区域的大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200048388A KR20210130340A (ko) | 2020-04-22 | 2020-04-22 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
KR10-2020-0048388 | 2020-04-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535607A true CN113535607A (zh) | 2021-10-22 |
Family
ID=78094259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011025823.1A Withdrawn CN113535607A (zh) | 2020-04-22 | 2020-09-25 | 存储器***、存储器控制器以及存储器***的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11675712B2 (zh) |
KR (1) | KR20210130340A (zh) |
CN (1) | CN113535607A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296498B2 (en) * | 2007-11-13 | 2012-10-23 | Sandisk Technologies Inc. | Method and system for virtual fast access non-volatile RAM |
US8515967B2 (en) * | 2010-03-29 | 2013-08-20 | International Business Machines Corporation | Cost and power efficient storage area network provisioning |
US8788783B1 (en) * | 2010-06-18 | 2014-07-22 | Disney Enterprises, Inc. | Dynamically tuning the size of a cache stored in a shared memory |
US9542306B2 (en) | 2013-03-13 | 2017-01-10 | Seagate Technology Llc | Dynamic storage device provisioning |
KR101883637B1 (ko) | 2017-01-03 | 2018-07-31 | 한양대학교 산학협력단 | 캐시 매핑 테이블 관리 방법 및 장치 |
US11966329B2 (en) * | 2018-04-12 | 2024-04-23 | Micron Technology, Inc. | Address map caching for a memory system |
US11048631B2 (en) * | 2019-08-07 | 2021-06-29 | International Business Machines Corporation | Maintaining cache hit ratios for insertion points into a cache list to optimize memory allocation to a cache |
-
2020
- 2020-04-22 KR KR1020200048388A patent/KR20210130340A/ko active Search and Examination
- 2020-09-04 US US17/012,735 patent/US11675712B2/en active Active
- 2020-09-25 CN CN202011025823.1A patent/CN113535607A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20210130340A (ko) | 2021-11-01 |
US11675712B2 (en) | 2023-06-13 |
US20210334218A1 (en) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
US11301174B2 (en) | Memory system, memory controller and method for operating memory system | |
CN114067870A (zh) | 存储器***、存储器装置以及用于操作存储器装置的方法 | |
US20230333932A1 (en) | Memory system and operating method thereof | |
CN114863962A (zh) | 存储器***及其操作方法 | |
US20210365382A1 (en) | Memory system, memory controller, and operation method thereof | |
US11960888B2 (en) | Memory system, memory controller, and method for operating memory system | |
CN113535598A (zh) | 存储器***、存储器控制器以及存储器***的操作方法 | |
CN113903384A (zh) | 存储器***、存储器控制器以及操作存储器***的方法 | |
US20220261185A1 (en) | Memory system and operating method of memory system | |
CN115963981A (zh) | 存储器***及存储器***的操作方法 | |
US11474726B2 (en) | Memory system, memory controller, and operation method thereof | |
US11137942B2 (en) | Memory system, memory controller, and method of operating a memory system for determining a number of hit and miss requests about map segments in a map cache and determining whether or not to perform data read operation in parallel | |
CN115729446A (zh) | 存储器***以及存储器***的操作方法 | |
CN114520013A (zh) | 存储器***及其操作方法 | |
CN114090473A (zh) | 存储器***、存储器控制器及操作存储器***的方法 | |
CN112925476A (zh) | 存储器***、存储器控制器及其操作方法 | |
US11675712B2 (en) | Memory system, memory controller, and operation method of memory system | |
US11416401B2 (en) | Memory system and operating method thereof | |
US11893255B2 (en) | Memory system for managing data corresponding to a plurality of zones and operating method thereof | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
US20240211153A1 (en) | Memory system for executing a target operation based on a program state of a super memory block and operating method thereof | |
CN115116517A (zh) | 存储器***及其操作方法 | |
CN113380304A (zh) | 存储器***、存储器控制器以及操作存储器***的方法 | |
CN114512175A (zh) | 存储器***及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211022 |
|
WW01 | Invention patent application withdrawn after publication |