CN113535598A - 存储器***、存储器控制器以及存储器***的操作方法 - Google Patents
存储器***、存储器控制器以及存储器***的操作方法 Download PDFInfo
- Publication number
- CN113535598A CN113535598A CN202011020140.7A CN202011020140A CN113535598A CN 113535598 A CN113535598 A CN 113535598A CN 202011020140 A CN202011020140 A CN 202011020140A CN 113535598 A CN113535598 A CN 113535598A
- Authority
- CN
- China
- Prior art keywords
- mapping
- cache
- segments
- segment
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
- 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/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
本公开的实施例涉及存储器***、存储器控制器以及存储器***的操作方法。根据本公开的实施例,该存储器***:可以将所有映射段的子集高速缓存在指示映射高速缓存中的逻辑地址和物理地址之间的映射信息的映射表中;基于关于在设定的时间段期间从主机接收的所有命令的信息,可以从映射高速缓存中高速缓存的映射段中选择待设定锁定的映射段,以便不将该映射段从映射高速缓存中逐出;并且可以为待设定锁定的映射段设定锁定标志。因此,存储器***可以减少在更新映射表的进程中重新加载先前逐出的映射段时发生的开销,并且可以在保证高速缓存性能达到预定水平或更高水平的限制内优化映射表的更新性能。
Description
相关申请的交叉引用
本申请要求于2020年4月22日提交的申请号为10-2020-0048389的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的实施例涉及存储器***、存储器控制器以及存储器***的操作方法。
背景技术
例如存储装置的存储器***基于来自诸如计算机、移动终端(例如,智能手机或平板电脑)或各种其它电子装置中的任意一种的主机的请求来存储数据。存储器***可以是将数据存储在诸如硬盘驱动器(HDD)的磁盘中的装置类型,或将数据存储在诸如固态驱动器(SDD)、通用闪存装置(UFS)或嵌入式MMC(eMMC)装置的非易失性存储器中的装置类型。
存储器***可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以接收从主机输入的命令,并且基于所接收的命令,可以运行或控制用于读取、写入或擦除存储器***中包括的易失性存储器或非易失性存储器中的数据的操作。存储器控制器可以驱动固件以执行用于运行或控制这种操作的逻辑操作。
当基于从主机接收的命令执行读取操作或写入操作时,存储器***使用映射表来管理从主机请求的存储器的逻辑地址与存储器装置的物理地址之间的映射信息。存储器***可以在将作为映射表的一部分的映射段高速缓存到映射高速缓存区域中,以便从映射表快速检索映射信息。如果映射段满足特定条件(例如,LRU),则可以从映射高速缓存区域中逐出所高速缓存的映射段。
发明内容
本公开的实施例可以提供一种能够减少在更新映射表的进程中重新加载先前逐出的映射段时发生的开销的存储器***、存储器控制器以及存储器***的操作方法。
另外,本公开的实施例可以提供一种能够在保证高速缓存性能达到预定水平或更高水平的限制内优化映射表的更新性能的存储器***、存储器控制器以及存储器***的操作方法。
在一方面,本公开的实施例可以提供一种包括存储器装置的存储器***和联接到存储器装置的存储器控制器。
存储器控制器可以将所有映射段的子集高速缓存在指示映射高速缓存中的逻辑地址和物理地址之间的映射信息的映射表中。
另外,存储器控制器可以基于关于在设定的时间段期间从主机接收的所有命令的信息,从映射高速缓存中高速缓存的映射段中选择待设定锁定的映射段,以便不将该映射段从映射高速缓存中逐出。
另外,存储器控制器可以为待设定锁定的映射段设定锁定标志。
例如,当在设定的时间段期间写入命令与从主机接收的所有命令的比率大于或等于阈值比率时,存储器控制器可以从映射高速缓存中的映射段中选择待设定锁定的映射段。
另一方面,当在设定的时间段期间写入命令与从主机接收的所有命令的比率小于阈值比率时,基于在设定的时间段期间从主机接收的读取命令所引用的逻辑地址,存储器控制器可以从映射高速缓存中的映射段中选择待设定锁定的映射段。
例如,1)当通过读取命令顺序地引用阈值计数或更多的连续的逻辑地址时,或者2)当通过读取命令引用阈值引用次数或更多次映射高速缓存中的映射段之中的相同映射段中的逻辑地址时,存储器控制器可以从映射高速缓存中的映射段中选择待设定锁定的映射段。
又例如,当读取命令对映射高速缓存的命中率大于或等于阈值命中率时,存储器控制器可以从映射高速缓存中的映射段的子集中选择待设定锁定的映射段。
存储器控制器可以从映射高速缓存中的映射段中选择至多N个最近最少使用的映射段作为待设定锁定的映射段。此处,N是自然数。
同时,可以根据映射高速缓存的命中率和参考命中率来改变值N。另外,参考命中率可以与映射高速缓存中的映射段之中的设定锁定的映射段的数量成比例地改变。
在用映射高速缓存中的映射段之中的设定锁定的映射段来更新映射表之后,存储器控制器可以重置锁定标志。
在另一方面,本公开的实施例可以提供一种存储器控制器,包括:存储器接口,被配置成与存储器装置通信;以及控制电路,联接到存储器装置。
控制电路可以将所有映射段的子集高速缓存在指示映射高速缓存中的逻辑地址和物理地址之间的映射信息的映射表中。
另外,控制电路可以基于关于设定的时间段期间从主机接收的所有命令的信息,从映射高速缓存中高速缓存的映射段中选择待设定锁定的映射段,以便不将该映射段从映射高速缓存中逐出。
控制电路可以为待设定锁定的映射段设定锁定标志。
例如,当在设定的时间段期间写入命令与从主机接收的所有命令的比率大于或等于阈值比率时,控制电路可以从映射高速缓存中的映射段的子集中选择待设定锁定的映射段。
同时,当在设定的时间段期间写入命令与从主机接收的所有命令的比率小于阈值比率时,基于在设定的时间段期间从主机接收的读取命令所引用的逻辑地址,控制电路可以从映射高速缓存中的映射段的子集中选择待设定锁定的映射段。
例如,1)当通过读取命令顺序地引用阈值计数或更多的连续的逻辑地址时,或2)当通过读取命令引用阈值引用次数或更多次映射高速缓存中的映射段之中的相同映射段中的逻辑地址时,控制电路可以从映射高速缓存中的映射段中选择待设定锁定的映射段。
又例如,当读取命令对映射高速缓存的命中率大于或等于阈值命中率时,控制电路可以从映射高速缓存中的映射段的子集中选择待设定锁定的映射段。
控制电路可以从映射高速缓存中的映射段中选择至多N个最近最少使用的映射段作为待设定锁定的映射段。此处,N是自然数。
同时,可以根据映射高速缓存的命中率和参考命中率来改变值N。另外,参考命中率可以与映射高速缓存中高速缓存的映射段的子集之中的设定锁定的映射段的数量成比例地改变。
在用映射高速缓存中的映射段的子集之中的设定锁定的映射段来更新映射表之后,控制电路可以重置锁定标志。
一种存储器***的操作方法可以包括:将映射段的子集高速缓存在指示映射高速缓存中的逻辑地址和物理地址之间的映射信息的映射表中。
另外,存储器***的操作方法可以包括:基于关于在设定的时间段期间从主机接收的所有命令的信息,从映射高速缓存中高速缓存的映射段中选择待设定锁定的映射段。
例如,选择待设定锁定的映射段可以包括:当写入命令与所有命令的比率大于或等于阈值比率时,从映射高速缓存中的映射段中选择待设定锁定的映射段。
又例如,选择待设定锁定的映射段可以包括:当写入命令与所有命令的比率小于阈值比率时,基于单位时间期间从主机接收的读取命令所引用的逻辑地址,从映射高速缓存中的映射段中选择待设定锁定的映射段。
在这种情况下,选择待设定锁定的映射段可以包括:1)当通过读取命令顺序地引用阈值计数或更多的连续的逻辑地址时,或2)当通过读取命令引用阈值引用次数或更多次映射高速缓存中的映射段之中的相同映射段中的逻辑地址时,从映射高速缓存中的映射段中选择待设定锁定的映射段。同时,选择待设定锁定的映射段可以包括:当读取命令对映射高速缓存的命中率大于或等于阈值命中率时,从映射高速缓存中的映射段中选择待设定锁定的映射段。
在另一方面,本公开的实施例可以提供一种存储器***,包括:存储器装置,包括多个存储块;以及控制器,包括映射表,该映射表存储指示存储块的逻辑地址和物理地址之间的映射的多个映射段。
控制器可以将映射段的子集高速缓存在映射高速缓存中。
控制器可以基于在设定的时间段期间从主机接收到的所有命令的类型以及在设定的时间段期间所接收的所有命令之中的读取命令或写入命令的比率,在高速缓存的映射段之中选择映射段。
控制器可以锁定所选择的映射段,以便不将该映射段从映射高速缓存中逐出。
控制器可以使用锁定的映射段来更新映射表。
另外,存储器***的操作方法可以包括:为待设定锁定的映射段设定锁定标志。
根据本公开的实施例,可以减少在更新映射表的进程中重新加载先前逐出的映射段时发生的开销。
另外,根据本公开的实施例,可以在保证高速缓存性能达到预定水平或更高水平的限制内优化映射表的更新性能。
附图说明
从以下结合附图的详细描述中,本公开的上述和其它方面、特征和优点将变得更显而易见,其中:
图1是示出根据本公开的实施例的存储器***的配置的示意图;
图2是示意性地示出根据本公开的实施例的存储器装置的框图;
图3是示意性地示出根据本公开的实施例的存储器装置的存储块的示图;
图4是示出根据本公开的实施例的存储器装置的字线和位线的结构的示图;
图5是示意性地示出根据本公开的实施例的存储器***的操作的示图;
图6是示出映射高速缓存中高速缓存的映射段的锁定标志的示图;
图7是示出根据本公开的实施例的存储器***选择待设定锁定的映射段的示例的流程图;
图8是示出根据本公开的实施例的存储器***基于由读取命令引用的逻辑地址来选择待设定锁定的映射段的操作的示例的流程图;
图9是示出根据本公开的实施例的存储器***基于由读取命令引用的逻辑地址来选择待设定锁定的映射段的另一示例的流程图;
图10是示出映射高速缓存中高速缓存的映射段之中的待设定锁定的映射段的示图;
图11是示出设定锁定的映射段的数量根据映射段的命中率的改变而改变的操作的示图;
图12是示出参考命中率根据设定锁定的映射段的数量而改变的示图;
图13是示出根据本公开的实施例的存储器***重置锁定的操作的示例的示图;
图14是示出根据本公开的实施例的存储器***的操作方法的流程图;以及
图15是示出根据本公开的实施例的计算***的配置的示图。
具体实施方式
下文中,参照附图更详细地描述本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的(多个)实施例。
图1是示出根据本公开的实施例的存储器***100的配置的示意图。
参照图1,存储器***100可以包括被配置成存储数据的存储器装置110和被配置成控制该存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块。存储器装置110可以被配置成响应于从存储器控制器120接收的控制信号而操作。存储器装置110的操作可以包括例如读取操作、编程操作(也被称为“写入操作”)和擦除操作。
存储器装置110可以包括存储器单元阵列,该存储器单元阵列包括被配置成存储数据的多个存储器单元(也被简称为“单元”)。存储器单元阵列可以存在于存储块内。
例如,存储器装置110可以被实施为诸如以下的各种类型的存储器中的任意一种:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率***(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。
存储器装置110可以以三维阵列结构来实施。本公开的实施例不仅可应用于具有配置为导电浮栅的电荷存储层的闪速存储器装置,而且可应用于具有电荷撷取闪存(CTF)的闪速存储器装置,该电荷撷取闪存(CTF)具有配置为绝缘膜的电荷存储层。
存储器装置110可以被配置成从存储器控制器120接收命令和地址等,并访问由该地址选择的存储器单元阵列的区域。即,存储器装置110可以在具有与从控制器接收的地址相对应的物理地址的存储器装置的存储器区域中执行与所接收的命令相对应的操作。
例如,存储器装置110可以执行编程操作、读取操作和擦除操作。在编程操作期间,存储器装置110可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置110可以从由地址选择的区域中读取数据。在擦除操作期间,存储器装置110可以擦除由地址选择的区域中存储的数据。
存储器控制器120可以控制关于存储器装置110的写入(或编程)操作、读取操作、擦除操作和后台操作。例如,后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作和/或坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,例如,存储器控制器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被配置成解释主机102向存储器***100(或存储装置)发出的命令,并且将该命令传递到FTL。FIL被配置成将由FTL发出的命令传递到存储器装置110。
例如,固件可以被存储在存储器装置110中,然后被加载到工作存储器125中。
工作存储器125可以存储驱动存储器控制器120所必需的固件、程序代码、命令、或多条数据。工作存储器125可以包括例如作为易失性存储器的静态RAM(SRAM)、动态RAM(DRAM)和/或同步DRAM(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的上述构成元件121、122、124、125和126仅被提供为示例。可以省略这些元件中的一个或多个,和/或可以将这些元件中的一个或多个集成为单个元件。当然,如本领域技术人员将理解的,除了以上标识的元件之外,存储器控制器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。读取/写入电路230可以在存储器单元阵列210执行读取操作时作为“读取电路”而操作,并且可以在存储器单元阵列210执行写入操作时作为“写入电路”而操作。
读取/写入电路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,可以沿多个页面PG和多个串STR相交的方向布置并配置存储块BLK。
多个页面PG对应于多条字线WL,并且多个串STR对应于多条位线BL。
在存储块BLK中,多条字线WL和多条位线BL可以布置成相交。例如,多条字线WL中的每一条可以沿行方向布置,并且多条位线BL中的每一条可以沿列方向布置。又例如,多条字线WL中的每一条可以沿列方向布置,并且多条位线BL中的每一条可以沿行方向布置。
多条字线WL与多条位线BL可以彼此相交,从而限定多个存储器单元MC。每个存储器单元MC可以具有布置在其中的晶体管TR。
例如,晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接或经由另一晶体管TR连接到相应位线BL。晶体管TR的源极(或漏极)可以直接或经由另一晶体管TR连接到源极线(其可以接地)。晶体管TR的栅极可以包括浮栅(FG)和控制栅极(CG),其中浮栅(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。
例如,如图4所示,多条字线WL1至WL9中的每一条可以对应于一个页面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的外部,并且第二选择线SSL可以附加地布置在另一第二最外侧字线WL9的外部,在两条最外侧字线WL1和WL9之中,就信号路径而言,第一最外侧字线WL1更靠近数据寄存器430。
由第一选择线DSL控制导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但不包括浮栅FG。由第二选择线SSL控制导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但不包括浮栅FG。
第一选择晶体管D-TR用作接通或断开相应串STR和数据寄存器430之间的连接的开关。第二选择晶体管S-TR用作接通或断开相应串STR和源极线SL之间的连接的开关。即,第一选择晶体管D-TR和第二选择晶体管S-TR起到位于相应串STR的相对端的网守(gatekeeper)的作用,并且传递/阻挡信号。
在编程操作期间,存储器***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两者浮置(float),从而生成无穷大电阻。因此,可以去除第一选择晶体管D-TR的作用和第二选择晶体管S-TR的作用,并且由于电势差,电子仅可以在浮栅FG和衬底之间操作。
图5是示意性地示出根据本公开的实施例的图1的存储器***100的操作的示图。
参照图5,存储器***100的存储器控制器120可以将映射段MAP_SEG的子集高速缓存在映射表MAP_TBL中,该映射表MAP_TBL指示映射高速缓存MAP_CACHE中的逻辑地址和物理地址之间的映射信息。
映射表MAP_TBL可以处于存储器控制器120的工作存储器125上。当启动存储器***100时,可以从存储器装置110加载映射表MAP_TBL。
另外,如同映射表MAP_TBL,映射高速缓存MAP_CACHE可以处于存储器控制器120的工作存储器125上。可选地,映射高速缓存MAP_CACHE可以处于与工作存储器125不同的易失性存储器(例如TCM、SRAM、DRAM或SDRAM)上。
映射表MAP_TBL可以包括多个映射段MAP_SEG,映射段MAP_SEG中的每一个可以包括多条映射信息。每条映射信息可以指示映射到特定逻辑地址LA的特定物理地址PA。在所示的示例中,映射信息可以指示逻辑地址LA 0与物理地址PA 100相互映射。作为另一示例,映射信息可以指示逻辑地址LA 2与物理地址PA 103相互映射。
可以通过编程/擦除操作、后台操作(例如,垃圾收集)等来改变映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中的映射信息。存储器控制器120可以更新映射表MAP_TBL,以便在映射表MAP_TBL上反映高速缓存在映射高速缓存MAP_CACHE中的映射段MAP_SEG中的改变。
存储器控制器120可以基于关于在设定的时间段期间(例如,100ms)从主机(HOST)接收的命令的信息,从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段。存储器控制器120可以执行控制,以防止在不考虑应用于映射高速缓存MAP_CACHE的逐出策略的情况下,从映射高速缓存MAP_CACHE中逐出设定锁定的映射段。在这种情况下,存储器控制器120可以将时间段设定为任意合适的时间长度。
存储器控制器120从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择并锁定某些映射段的原因是为了减少重新加载在更新映射表MAP_TBL的进程中已经逐出的映射段的开销。
为了更新映射表MAP_TBL,必须将映射信息已经改变的映射段MAP_SEG优先加载到映射高速缓存MAP_CACHE。如果将映射信息已经改变的映射段MAP_SEG高速缓存在映射高速缓存MAP_CACHE中,则存储器控制器120可以立即使用映射段来更新映射表MAP_TBL。
另一方面,可以从映射高速缓存MAP_CACHE中逐出映射信息已经改变的映射段MAP_SEG,而不是将该映射段MAP_SEG高速缓存在该映射高速缓存MAP_CACHE中。例如,可以将与已经逐出的映射段MAP_SEG中的逻辑地址相对应的数据写入存储器装置110的开放块。在这种情况下,存储器控制器120必须再次加载被逐出的映射段MAP_SEG,以更新映射表MAP_TBL。
因此,为了防止将用于更新映射表MAP_TBL的映射段MAP_SEG从映射高速缓存MAP_CACHE中逐出,存储器控制器120对用于更新映射表MAP_TBL的映射段MAP_SEG设定锁定,即锁住该映射段MAP_SEG。
为了指示对映射段MAP_SEG设定了锁定,存储器控制器120可以为该映射段MAP_SEG设定锁定标志LOCK_FLG。对应于映射段MAP_SEG的“设定锁定标志LOCK_FLG”(例如,用“V”标记)意指对相应映射段MAP_SEG设定锁定。另一方面,对应于映射段MAP_SEG的“重置锁定标志LOCK_FLG”(例如,未用“V”标记)意指不对相应映射段MAP_SEG设定锁定。
存储器控制器120可以使用各种数据结构中的任意一种来管理锁定标志LOCK_FLG。
例如,存储器控制器120可以在位图中管理锁定标志LOCK_FLG。在这种情况下,位图中的每个位的值可以指示是对与该位相对应的映射段MAP_SEG设定了锁定,还是重置了其锁定。
例如,位图中的位的值“1”可以指示对相应映射段设定锁定,并且位图中的位的值“0”可以指示对相应映射段重置锁定。另一方面,位图中的位的值“0”可以指示对相应映射段设定锁定,并且位图中的位的值“1”可以指示对相应映射段重置锁定。
图6是示出映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG的锁定标志LOCK_FLG的示图。
参照图6,不从映射高速缓存MAP_CACHE中逐出在映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的设定锁定标志LOCK_FLG(即,用“V”标记)的映射段。另一方面,可以从映射高速缓存MAP_CACHE中逐出在映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的未设定锁定标志LOCK_FLG(即,未用“V”标记)的映射段。
即,在为了确保映射高速缓存MAP_CACHE中的额外空间而必须逐出映射高速缓存MAP_CACHE中的一个或多个映射段MAP_SEG的情况下,存储器控制器120可以基于预定策略(例如,最近最少使用(LRU)),从未设定锁定标志LOCK_FLG的映射段之中选择待逐出的映射段。
下文中,参照图7至图9详细描述存储器***100的存储器控制器120从映射高速缓存MAP_CACHE中的映射段MAP_SEG之中选择待设定锁定的映射段的时间。
图7是示出根据本公开的实施例的图1的存储器***100选择待设定锁定的映射段的示例的流程图。
参照图7,存储器***100的存储器控制器120可以分析在设定的时间段期间从主机HOST接收的命令(S710)。存储器控制器120可以从主机接收命令(例如,读取命令或写入命令),并且可以基于所接收的命令来确定工作负荷。
存储器控制器120确定在设定的时间段(例如100ms)期间写入命令与从主机接收的所有命令的比率是否大于或等于阈值比率(S720)。
基于数量,即所接收的写入命令的数量和所接收的所有命令的数量,可以确定写入命令与所有命令的比率。例如,如果存储器控制器120在设定的时间段期间从主机接收到40条读取命令和60条写入命令,则在该时间期间写入命令与从主机接收的所有命令的比率为60/(40+60)=60%。
如果写入命令与所接收的所有命令的比率大于或等于阈值比率(S720中为“Y”),则存储器控制器120可以从作为所有映射段的子集的映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段(S730)。
另一方面,如果写入命令与所有命令的比率小于阈值比率(S720中为“N”),则存储器控制器120可以基于在设定的时间段期间从主机接收的读取命令所引用的逻辑地址,从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段(S740)。
下文中,参照图8和图9描述步骤S740的具体示例。
图8是示出根据本公开的实施例的图1的存储器***100基于由读取命令引用的逻辑地址来选择待设定锁定的映射段的操作的示例的流程图。
参照图8,存储器***100的存储器控制器120可以分析在设定的时间段期间由从主机接收的读取命令引用的逻辑地址(S810)。
存储器控制器120确定在设定的时间段期间,是否通过读取命令顺序地引用至少阈值次数(例如,十次)连续的逻辑地址(S820)。例如,假设阈值数量为10,则存储器控制器120可以确定在设定的时间段期间,是否通过读取命令来顺序地引用十个或更多个连续的逻辑地址(例如,逻辑地址0至9、逻辑地址105至120或逻辑地址512至522)。此处,“顺序地引用连续的逻辑地址”表示以递增值的顺序或递减值的顺序来引用逻辑地址。
如果在设定的时间段期间,通过读取命令来顺序地引用至少阈值次数(例如,十次)连续的逻辑地址(S820中为“是”),则存储器控制器120可以从在映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段(S830)。
另一方面,如果在设定的时间段期间,未通过读取命令来顺序地引用至少阈值次数(例如,十次)连续的逻辑地址(S820中为“否”),则存储器控制器120可以确定映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的相同映射段中的逻辑地址是否被引用至少阈值引用次数(例如,十次)(S840)。
例如,在一个映射段包括与逻辑地址512至1023相对应的映射信息的情况下,如果在设定的时间段期间引用十个或更多个在512与1023之间的逻辑地址(例如,引用逻辑地址513、515、516、530、600、610、700、850、900和1020),则存储器控制器120可以确定映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的相同映射段中的逻辑地址被引用至少阈值引用次数。
如果相同映射段中的逻辑地址被引用至少阈值引用次数(例如,10次)(S840中为“是”),则存储器控制器120可以从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段(S830)。
另一方面,如果相同映射段中的逻辑地址未被引用至少阈值引用次数(S840中为“否”),则存储器控制器120不对映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG设定锁定(S850)。
图9是示出根据本公开的实施例的图1的存储器***100基于由读取命令引用的逻辑地址来选择待设定锁定的映射段的另一示例的流程图。
参照图9,存储器***100的存储器控制器120可以分析在设定的时间段期间由从主机接收的读取命令引用的逻辑地址(S910)。
另外,存储器控制器120确定读取命令对映射高速缓存MAP_CACHE的命中率是否大于或等于阈值命中率(S920)。
读取命令对映射高速缓存MAP_CACHE的“命中率”是指通过读取命令引用映射高速缓存MAP_CACHE中高速缓存的映射段中的逻辑地址值的次数与通过读取命令引用逻辑地址值的次数的比率。
例如,如果读取命令引用总共5个逻辑地址100、150、200、250和300,并且如果其中的三个逻辑地址150、250和300包括在映射高速缓存MAP_CACHE中高速缓存的映射段中,则映射高速缓存MAP_CACHE的命中率为3/5=60%。
如果读取命令对映射高速缓存MAP_CACHE的命中率大于或等于阈值命中率(S920中为“是”),则存储器控制器120可以从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段(S930)。
另一方面,如果读取命令对映射高速缓存MAP_CACHE的命中率小于阈值命中率(S920中为“否”),则存储器控制器120不对映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG设定锁定(S940)。
下文中,详细地描述从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段。
图10是示出在映射高速缓存MAP_CACHE中高速缓存的映射段之中的设定锁定的映射段的示图。
在所示的示例中,图1的存储器控制器120可以从映射高速缓存中高速缓存的映射段MAP_SEG中选择至多N个最近最少使用(LRU)的映射段作为待设定锁定的映射段。此处,“最近最少使用的映射段”是指所有使用的映射段之中最早的、最后使用(即,命中)的映射段。另一方面,“最近最常使用(MRU:most recently use)的映射段”是指所有使用的映射段之中最近的、最后使用(即,命中)的映射段。
如果映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG的数量为N或更小,则可以选择映射高速缓存MAP_CACHE中高速缓存的所有映射段MAP_SEG作为待设定锁定的映射段。例如,如果N=20,并且映射高速缓存MAP_CACHE中高速缓存的映射段的数量为15,则选择所有15个映射段作为待设定锁定的映射段。
另一方面,如果在映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG的数量超过N,则可以从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择N个最近最少使用的映射段作为待设定锁定的映射段。例如,如果N=20,并且映射高速缓存MAP_CACHE中高速缓存的映射段的数量为25,则选择25个映射段之中的最近最少使用的20个映射段作为待设定锁定的映射段。
参照图11和图12描述改变值N的方法,该值N是在映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的待设定锁定的映射段的最大数量。
图11是示出设定锁定的映射段的数量根据映射段的命中率的改变而改变的操作的示图。
参照图11,根据映射高速缓存MAP_CACHE的命中率和参考命中率,可以改变映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中待设定锁定的映射段的最大数量N。“参考命中率”是指映射高速缓存MAP_CACHE的命中率达到性能的设定水平或更高水平,并且可以由存储器控制器120来设定该“参考命中率”。
在这种情况下,可以将映射高速缓存MAP_CACHE的命中率确定成在设定的时间(例如1秒)期间从映射高速缓存MAP_CACHE命中(即,成功地检索)的映射信息的条数与从映射高速缓存MAP_CACHE检索映射信息的总次数的比率。例如,如果在设定的时间期间检索了100条映射信息,并且如果命中其中的40条映射信息而未命中其中的60条映射信息,则命中率C被确定为40/100=40%。
在图11所示的示例中,假设映射高速缓存MAP_CACHE可以高速缓存100个映射段MAP_SEG,对其中20个映射段设定锁定,并且参考命中率为25%。
例如,假设高于参考命中率25%的映射高速缓存MAP_CACHE的命中率为30%。在这种情况下,即使对映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG进一步设定锁定,也可以确保高速缓存性能达到参考命中率。因此,存储器控制器120可以将待设定锁定的映射段的最大数量从20增加到25。
又例如,假设低于参考命中率25%的映射高速缓存MAP_CACHE的命中率为20%。在这种情况下,为了将映射高速缓存MAP_CACHE的命中率增加到接近参考命中率,需要用于高速缓存的附加区域,因此必须将设定锁定的映射段所占用的区域用于高速缓存。因此,存储器控制器120可以将待设定锁定的映射段的最大数量从20减少到15。
如上所述,存储器控制器120可以在确保映射表的高速缓存性能的特定水平或更高水平的参考命中率的范围内设定待设定锁定的映射段的最大数量,从而优化映射表的更新性能。
在图11中描述的参考命中率可以根据映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的设定锁定的映射段的数量而改变。
图12是示出参考命中率根据设定锁定的映射段的数量而改变的示图。
在图12所示的示例中,假设初始参考命中率被设定为20%,并且至多100个映射段MAP_SEG可以被高速缓存在映射高速缓存MAP_CACHE中。
在这种情况下,假设对映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的20个映射段设定锁定,则参考命中率可以从20%改变为25%。这是由于以下事实:当映射高速缓存MAP_CACHE中用于高速缓存的大小为100并且命中率为20%时的映射高速缓存MAP_CACHE的高速缓存性能与当映射高速缓存MAP_CACHE中用于高速缓存的大小为80(=100-20)并且命中率为25%时的映射高速缓存MAP_CACHE的高速缓存性能相同。
如上所述,如果映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的设定锁定的映射段的数量增加,则映射高速缓存MAP_CACHE中用于高速缓存的大小会减小。另外,为了在用于高速缓存的大小减小时实现相同的高速缓存性能,需要增加映射高速缓存MAP_CACHE的参考命中率。因此,参考命中率可以与在映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的设定锁定的映射段的数量成比例地改变。
以上实施例中已经描述了对作为所有映射段的子集的映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG设定锁定的操作。下文中,描述了重置设定锁定的操作。
图13是示出根据本公开的实施例的图1的存储器***100重置锁定的操作的示例的示图。
参照图13,在使用设定锁定的映射段来更新映射表MAP_TBL之后,存储器***100的存储器控制器120可以重置映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的设定锁定(例如,用“V”标记)的映射段的锁定标志LOCK_FLG。即,在映射表MAP_TBL的映射更新完成之后,可以重置锁定标志LOCK_FLG。
如上所述,对映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG设定锁定旨在防止在映射表MAP_TBL的映射更新的进程中低效率地重新加载逐出的映射段。如果映射表MAP_TBL的映射更新完成,则不再需要将映射段高速缓存在映射高速缓存MAP_CACHE中。因此,存储器控制器120可以为设定锁定的映射段重置锁定标志LOCK_FLG。
图14是示出根据本公开的实施例的图1的存储器***100的操作方法的流程图。
参照图14,存储器***100的操作方法可以包括以下步骤:将映射段MAP_SEG的子集高速缓存在映射表MAP_TBL中,该映射表MAP_TBL指示映射高速缓存MAP_CACHE中的逻辑地址和物理地址之间的映射信息(S1410)。
另外,存储器***100的操作方法可以包括以下步骤:基于关于在单位时间期间从主机接收的命令的信息,从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段(S1420)。
例如,如果在设定的时间段期间写入命令与从主机接收的所有命令的比率大于或等于阈值比率,则可以从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段。
又例如,如果在设定的时间段期间写入命令与所有命令的比率小于阈值比率,则可以基于在设定的时间段期间从主机接收的读取命令所引用的逻辑地址,从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段。
在这种情况下,1)如果通过读取命令来顺序地引用阈值计数或更多的连续的逻辑地址,或者2)如果通过读取命令引用阈值引用次数或更多次映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG之中的相同映射段中的逻辑地址,则可以从作为所有映射段的子集的映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段。可选地,如果在设定的时间段期间读取命令对映射高速缓存MAP_CACHE的命中率大于或等于阈值命中率,则可以从映射高速缓存MAP_CACHE中高速缓存的映射段MAP_SEG中选择待设定锁定的映射段。
另外,存储器***100的操作方法可以包括以下步骤:为待设定锁定的映射段设定锁定标志LOCK_FLG(S1430)。可以使用位图来管理锁定标志LOCK_FLG。
存储器控制器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.根据权利要求1所述的存储器***,其中当在所述设定的时间段期间写入命令与从所述主机接收的所有命令的比率小于阈值比率时,基于在所述设定的时间段期间从所述主机接收的读取命令所引用的逻辑地址,所述存储器控制器从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
4.根据权利要求3所述的存储器***,其中当通过所述读取命令顺序地引用阈值计数或更多的连续的逻辑地址时,或者当通过所述读取命令引用阈值引用次数或更多次所述映射高速缓存中的映射段之中的相同映射段中的逻辑地址时,所述存储器控制器从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
5.根据权利要求3所述的存储器***,其中当所述读取命令对所述映射高速缓存的命中率大于或等于阈值命中率时,所述存储器控制器从所述映射高速缓存中的映射段的子集中选择所述待设定锁定的映射段。
6.根据权利要求1所述的存储器***,其中所述存储器控制器从所述映射高速缓存中的映射段中选择至多N个最近最少使用的映射段作为所述待设定锁定的映射段。
7.根据权利要求6所述的存储器***,其中根据所述映射高速缓存的命中率和参考命中率来改变值N。
8.根据权利要求7所述的存储器***,其中所述参考命中率与所述映射高速缓存中的映射段之中的设定锁定的映射段的数量成比例地改变。
9.根据权利要求1所述的存储器***,其中在用所述映射高速缓存中的映射段之中的设定锁定的映射段来更新所述映射表之后,所述存储器控制器重置所述锁定标志。
10.一种存储器控制器,包括:
存储器接口,与存储器装置通信;以及
控制电路,联接到所述存储器装置,并且:
将所有映射段的子集高速缓存在指示映射高速缓存中的逻辑地址和物理地址之间的映射信息的映射表中;
基于关于在设定的时间段期间从主机接收的所有命令的信息,从所述映射高速缓存中高速缓存的映射段中选择待设定锁定的映射段,以便不将其从所述映射高速缓存中逐出;并且
为所述待设定锁定的映射段设定锁定标志。
11.根据权利要求10所述的存储器控制器,其中当在所述设定的时间段期间写入命令与从所述主机接收的所有命令的比率大于或等于阈值比率时,所述控制电路从所述映射高速缓存中的映射段的子集中选择所述待设定锁定的映射段。
12.根据权利要求10所述的存储器控制器,其中当在所述设定的时间段期间写入命令与从所述主机接收的所有命令的比率小于阈值比率时,基于在所述设定的时间段期间从所述主机接收的读取命令所引用的逻辑地址,所述控制电路从所述映射高速缓存中的映射段的子集中选择所述待设定锁定的映射段。
13.根据权利要求12所述的存储器控制器,其中当通过所述读取命令顺序地引用阈值计数或更多的连续的逻辑地址时,或者当通过所述读取命令引用阈值引用次数或更多次所述映射高速缓存中的映射段之中的相同映射段中的逻辑地址时,所述控制电路从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
14.根据权利要求12所述的存储器控制器,其中当所述读取命令对所述映射高速缓存的命中率大于或等于阈值命中率时,所述控制电路从所述映射高速缓存中的映射段的子集中选择所述待设定锁定的映射段。
15.根据权利要求10所述的存储器控制器,其中所述控制电路从所述映射高速缓存中的映射段中选择至多N个最近最少使用的映射段作为所述待设定锁定的映射段。
16.一种存储器***的操作方法,所述方法包括:
将映射段的子集高速缓存在指示映射高速缓存中的逻辑地址和物理地址之间的映射信息的映射表中;
基于关于在设定的时间段期间从主机接收的所有命令的信息,从所述映射高速缓存中高速缓存的映射段中选择待设定锁定的映射段;并且
为所述待设定锁定的映射段设定锁定标志。
17.根据权利要求16所述的方法,其中选择所述待设定锁定的映射段包括:当写入命令与所有命令的比率大于或等于阈值比率时,从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
18.根据权利要求16所述的方法,其中选择所述待设定锁定的映射段包括:当在所述设定的时间段期间写入命令与从所述主机接收的所有命令的比率小于阈值比率时,基于在所述设定的时间段期间从所述主机接收的读取命令所引用的逻辑地址,从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
19.根据权利要求18所述的方法,其中选择所述待设定锁定的映射段包括:当通过所述读取命令顺序地引用阈值计数或更多的连续的逻辑地址时,或者当通过所述读取命令引用阈值引用次数或更多次所述映射高速缓存中的映射段之中的相同映射段中的逻辑地址时,从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
20.根据权利要求18所述的方法,其中选择所述待设定锁定的映射段包括:当所述读取命令对所述映射高速缓存的命中率大于或等于阈值命中率时,从所述映射高速缓存中的映射段中选择所述待设定锁定的映射段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0048389 | 2020-04-22 | ||
KR1020200048389A KR20210130341A (ko) | 2020-04-22 | 2020-04-22 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535598A true CN113535598A (zh) | 2021-10-22 |
Family
ID=78094287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011020140.7A Withdrawn CN113535598A (zh) | 2020-04-22 | 2020-09-24 | 存储器***、存储器控制器以及存储器***的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11327902B2 (zh) |
KR (1) | KR20210130341A (zh) |
CN (1) | CN113535598A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003063368A2 (en) | 2002-01-22 | 2003-07-31 | Bae Systems Information And Electronic Systems Integration Inc. | Digital rf tag |
US11520525B2 (en) | 2021-05-07 | 2022-12-06 | Micron Technology, Inc. | Integrated pivot table in a logical-to-physical mapping having entries and subsets associated via a flag |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5353425A (en) | 1992-04-29 | 1994-10-04 | Sun Microsystems, Inc. | Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature |
US20020055972A1 (en) * | 2000-05-08 | 2002-05-09 | Weinman Joseph Bernard | Dynamic content distribution and data continuity architecture |
KR100383407B1 (ko) | 2001-03-31 | 2003-05-12 | 주식회사 아라기술 | 적응형 캐쉬 교체 방법 |
US6438130B1 (en) * | 2001-06-28 | 2002-08-20 | Mellanox Technologies Ltd. | Forwarding database cache |
US7082508B2 (en) * | 2003-06-24 | 2006-07-25 | Intel Corporation | Dynamic TLB locking based on page usage metric |
US8612666B2 (en) * | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
US9652270B2 (en) | 2014-03-21 | 2017-05-16 | Intel Corporation | Apparatus and method for virtualized computing |
US10503656B2 (en) * | 2017-09-20 | 2019-12-10 | Qualcomm Incorporated | Performance by retaining high locality data in higher level cache memory |
-
2020
- 2020-04-22 KR KR1020200048389A patent/KR20210130341A/ko active Search and Examination
- 2020-09-03 US US17/011,300 patent/US11327902B2/en active Active
- 2020-09-24 CN CN202011020140.7A patent/CN113535598A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11327902B2 (en) | 2022-05-10 |
KR20210130341A (ko) | 2021-11-01 |
US20210334009A1 (en) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US11301174B2 (en) | Memory system, memory controller and method for operating memory system | |
CN114067870A (zh) | 存储器***、存储器装置以及用于操作存储器装置的方法 | |
US11327902B2 (en) | Memory system, memory controller, and operation method of memory system for setting lock on map segments cached in map cache | |
US20210365382A1 (en) | Memory system, memory controller, and operation method thereof | |
US11960888B2 (en) | Memory system, memory controller, and method for operating memory system | |
US11474726B2 (en) | Memory system, memory controller, and operation method thereof | |
CN115963981A (zh) | 存储器***及存储器***的操作方法 | |
CN115952115A (zh) | 基于融合链表控制同步操作的存储器控制器及其操作方法 | |
CN114520013A (zh) | 存储器***及其操作方法 | |
CN112131143A (zh) | 存储器***、存储器控制器及元信息存储装置 | |
US11675712B2 (en) | Memory system, memory controller, and operation method of memory system | |
US11995352B2 (en) | Memory controller and operating method thereof | |
US11893255B2 (en) | Memory system for managing data corresponding to a plurality of zones and operating method thereof | |
US11416401B2 (en) | Memory system and operating method thereof | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection | |
CN113380304A (zh) | 存储器***、存储器控制器以及操作存储器***的方法 | |
CN114756166A (zh) | 存储器***及其操作方法 | |
CN115617708A (zh) | 设置随机存取存储器的操作频率的***及其操作方法 | |
CN115116517A (zh) | 存储器***及其操作方法 | |
CN116301569A (zh) | 存储器***及其操作方法 | |
CN114968078A (zh) | 存储器装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211022 |