CN114090473A - 存储器***、存储器控制器及操作存储器***的方法 - Google Patents

存储器***、存储器控制器及操作存储器***的方法 Download PDF

Info

Publication number
CN114090473A
CN114090473A CN202110531610.4A CN202110531610A CN114090473A CN 114090473 A CN114090473 A CN 114090473A CN 202110531610 A CN202110531610 A CN 202110531610A CN 114090473 A CN114090473 A CN 114090473A
Authority
CN
China
Prior art keywords
mapping
cache
data
memory
pool
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.)
Pending
Application number
CN202110531610.4A
Other languages
English (en)
Inventor
金到训
金宙铉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN114090473A publication Critical patent/CN114090473A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)

Abstract

本申请公开了一种存储器***、存储器控制器和操作存储器***的方法。该存储器***可以在高速缓存映射数据的映射高速缓存内配置分别高速缓存不同类型的映射数据的多个映射高速缓存池,在多个映射高速缓存池之中的第一映射高速缓存池中配置定时器,并且基于该定时器将被高速缓存在第一映射高速缓存池中的映射数据写入存储器装置中。

Description

存储器***、存储器控制器及操作存储器***的方法
相关申请的交叉引用
本专利文件要求于2020年8月24日提交的申请号为10-2020-0106077的韩国专利申请的优先权和权益,其通过引用整体并入本文。
技术领域
所公开技术的实施例涉及存储器***、存储器控制器及操作存储器***的方法。
背景技术
存储器***可包括存储数据的存储装置。这样的存储器***可以基于来自诸如计算机、移动装置(例如,智能电话或平板电脑)或其它类似电子装置的主机的请求来操作。存储器***的示例可以从传统的硬盘驱动器(HDD)跨越到基于半导体的数据存储装置,诸如固态驱动器(SSD)、通用闪存装置(UFS)或嵌入式MMC(eMMC)装置。
存储器***可进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且运行该命令或者控制对包括在存储器***中的存储器装置的读取/写入/擦除操作。存储器控制器还可以用于运行固件以执行用于控制这种操作的逻辑操作。
在传统技术中,存储器***管理用于执行在存储器装置中读取、写入和擦除数据的操作的映射数据。存储器***使用映射高速缓存来高速缓存映射数据,以便快速访问映射数据。在更新了被高速缓存在映射高速缓存中的映射数据之后,当满足特定条件时,存储器***将被高速缓存在映射高速缓存中的映射数据清除(flush)到存储器装置中。
发明内容
所公开技术的实施例可以提供一种存储器***、存储器控制器和操作存储器***的方法,其能够减轻由于映射数据被密集地清除到存储器装置中而导致的读取操作和写入操作的性能的劣化。
此外,所公开技术的实施例可以提供一种存储器***、存储器控制器和操作存储器***的方法,其能够满足主机所请求的读取操作和写入操作的QoS。
根据一方面,所公开技术的实施例可以提供一种存储器***,包括可操作以存储数据的存储器装置以及与存储器装置通信并被配置为控制存储器装置的存储器控制器。
存储器控制器可以在高速缓存映射数据的映射高速缓存内配置分别高速缓存不同类型的映射数据的多个映射高速缓存池。
存储器控制器可以在多个映射高速缓存池之中的第一映射高速缓存池中配置定时器。
存储器控制器可以基于定时器将被高速缓存在第一映射高速缓存池中的映射数据写入存储器装置中。
另一方面,所公开技术的实施例可以提供一种存储器控制器,包括存储器接口和处理器,该存储器接口被配置为与可操作以存储数据的存储器装置通信,该处理器被配置为通过存储器接口与存储器装置通信并且控制存储器装置。
处理器可以在高速缓存映射数据的映射高速缓存内配置分别高速缓存不同类型的映射数据的多个映射高速缓存池。
处理器可以在多个映射高速缓存池之中的第一映射高速缓存池中配置定时器。
处理器可以基于定时器将被高速缓存在第一映射高速缓存池中的映射数据写入存储器装置中。
另一方面,所公开技术的实施例可以提供一种操作存储器***的方法。
操作存储器***的方法可以包括在被提供以高速缓存映射数据的映射高速缓存内配置用于分别高速缓存不同类型的映射数据的多个映射高速缓存池。
操作存储器***的方法可以包括在多个映射高速缓存池之中的第一映射高速缓存池中配置定时器。
操作存储器***的方法可以包括基于定时器将被高速缓存在第一映射高速缓存池中的映射数据写入存储器装置中。
在所公开技术的一些实施例中,可以减轻由于映射数据被密集地清除到存储器装置中而导致的读取操作和写入操作的性能的暂时劣化。
此外,在所公开技术的一些实施例中,可以满足主机所请求的读取操作和写入操作的QoS。
附图说明
从以下结合附图的详细描述中,所公开技术的上述和其它方面、特征和优点将变得更明显。
图1是示出根据所公开技术的实施例的存储器***的配置的示意图。
图2是示意性地示出根据所公开技术的实施例的存储器装置的框图。
图3是示出根据所公开技术的实施例的存储器装置的字线和位线的结构的示图。
图4是示意性地示出根据所公开技术的实施例的存储器***的框图。
图5示出了根据所公开技术的实施例的对应于多个映射高速缓存池中的每一个的定时器的操作。
图6示出了根据所公开技术的实施例的存储器***配置每个映射高速缓存池的区域的方法的示例。
图7示出了根据所公开的技术的实施例的高速缓存在各个映射高速缓存池中的映射数据的类型的示例。
图8示出了根据映射数据的类型的每次更新的写入大小的示例。
图9示出了根据参照图8描述的映射数据的类型的定时器的配置的示例。
图10是示出根据所公开技术的实施例的存储器***确定是否停止定时器的操作的示例的流程图。
图11示出了根据所公开技术的实施例的存储器***运行定时器的时间点的示例。
图12示出了根据所公开技术的实施例的操作存储器***的方法。
图13是示出根据所公开技术的实施例的计算***的配置的示图。
具体实施方式
在下文中,将参照附图详细描述所公开技术的实施例。
图1是示出根据所公开技术的实施例的存储器***100的示意性配置的示图。
参照图1,存储器***100可以包括被配置为存储数据的存储器装置110,以及被配置为控制存储器装置110的存储器控制器120。
存储器装置110可包括多个存储块,每个存储块包括预定数量的用于存储数据的存储器单元。存储器装置110可以被配置为响应于从存储器控制器120接收的控制信号而操作。存储器装置110的操作可包括例如读取操作、编程操作(也被称为“写入操作”)、擦除操作等。
存储器装置110中的存储器单元用于存储数据且可布置在存储器单元阵列中。在存储器装置110为闪速存储器装置的一些实施方案中,存储器单元阵列可划分成存储器单元的存储块,并且每个块包括存储器单元的不同页面。在NAND闪速存储器装置的一些实施方案中,单元的页面是可被编程(或写入)及读取的最小存储单位,并且可以以存储块为单位擦除存储在存储器单元中的数据。
在一些实施方案中,存储器装置110可以被实施为各种类型,诸如双倍数据率同步动态随机存取存储器(DDR SDRAM)、***低功耗双倍数据率(LPDDR4)SDRAM、图形双倍数据率(GDDR)SDRAM、低功耗DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。
存储器装置110可以三维阵列结构实施。所公开技术的实施例可应用于具有电荷存储层的任何类型的闪速存储器装置。在实施方案中,电荷存储层可以由导电材料形成,并且这种电荷存储层可以被称为浮置栅极。在另一些实施方案中,电荷存储层可以由绝缘材料形成,并且这种闪速存储器装置可以被称为电荷撷取闪存(CTF)。
存储器装置110可以被配置为从存储器控制器120接收命令和地址,并且访问利用该地址选择的存储器单元阵列的区域。也就是说,存储器装置110可对存储器装置中的、具有与从存储器控制器120接收的地址相对应的物理地址的存储器区域执行与接收到的命令相对应的操作。
在一些实施方案中,除其他操作之外,存储器装置110可执行编程操作、读取操作及擦除操作。在编程操作期间,存储器装置110可将数据写入(“编程”)到由地址选择的区域。在读取操作期间,存储器装置110可从由地址选择的存储器区域读取数据。在擦除操作期间,存储器装置110可以擦除存储在由地址选择的存储器区域中的数据。
存储器控制器120可以控制待对存储器装置110执行的写入(编程)操作、读取操作、擦除操作及后台操作。后台操作可包括被实施为优化存储器装置110的总体性能的操作,诸如垃圾收集(GC)操作、损耗均衡(WL)操作以及坏块管理(BBM)操作。
存储器控制器120可以应主机的请求控制存储器装置110的操作。可选地,当存储器控制器120执行存储器装置的这种后台操作时,即使在没有来自主机的请求的情况下,它也可以控制存储器装置110的操作。
存储器控制器120和主机可以是分开的装置。在一些实施方案中,存储器控制器120和主机可以被集成并实施为单个装置。在以下描述中,作为示例,存储器控制器120和主机是分开的装置。
参照图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机HOST接收命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理所接收的命令的操作。
存储器接口122可以直接或间接地连接到存储器装置110,以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为基于来自控制电路123的控制信号和指令向存储器装置110和存储器控制器120提供用于存储器控制器120对存储器装置110执行存储器操作的接口。
控制电路123可以被配置为通过存储器控制器120控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测/校正电路(ECC电路)126等。
处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机HOST通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可用于运行闪存转换层(FTL)以有效地管理存储器***100上的存储器操作。例如,处理器124可以通过FTL将主机所提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可接收LBA,并通过使用映射表将LBA转换为PBA。
基于映射单位,FTL可以采用各种地址映射方法。典型的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
处理器124可被配置为使从主机接收到的数据随机化以将经随机化的数据写入到存储器单元阵列。例如,处理器124可通过使用随机化种子来使从主机接收到的数据随机化。经随机化的数据被提供给存储器装置110并被写入存储器单元阵列。
处理器124可被配置为在读取操作期间使从存储器装置110接收到的数据去随机化。例如,处理器124可以通过使用去随机化种子来使从存储器装置110接收到的数据去随机化。经去随机化的数据可以被输出到主机HOST。
处理器124可运行固件(FW)以控制存储器控制器120的操作。换句话说,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑操作,可以运行(驱动)在启动期间加载到工作存储器125中的固件。
固件是指存储在特定非易失性存储器上的程序或软件,并且在存储器***100内部运行。
在一些实施方案中,固件可包括各种功能层。例如,固件可包括被配置为将主机HOST请求中的逻辑地址转换为存储器装置110的物理地址的闪存转换层(FTL)、被配置为解译主机HOST发布到诸如存储器***100的数据存储装置的命令且将该命令传递到FTL的主机接口层(HIL)以及被配置为将由FTL发布的命令传递到存储器装置110的闪存接口层(FIL)中的至少一个。
例如,固件可以存储在存储器装置110中,然后加载到工作存储器125中。
工作存储器125可以存储驱动存储器控制器120所必需的固件、程序代码、命令或数据条。工作存储器125可以包括例如静态RAM(SRAM)、动态RAM(DRAM)和同步RAM(SDRAM)之中的至少一个作为易失性存储器。
错误检测/校正电路126可被配置为通过使用错误检测和校正码来检测和校正数据中的一个或多个错误位。在一些实施方案中,经受错误检测和校正的数据可以包括存储在工作存储器125中的数据和从存储器装置110检索的数据。
错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。错误检测/校正电路126可以通过使用各种解码方案来实施。例如,可以使用执行非***代码解码的解码器或执行***代码解码的解码器。
在一些实施方案中,错误检测/校正电路126可逐扇区地检测一个或多个错误位。每条读取数据可包括多个扇区。如本文所使用的,“扇区”可指代小于闪速存储器的读取操作的最小单位(例如,页面)的数据单位。构成每条读取数据的扇区可以基于地址来被映射。
在一些实施方案中,错误检测/校正电路126可以逐个扇区地计算位错误率(BER)并确定数据中错误位的数量是否在错误校正能力内。例如,如果BER高于参考值,则错误检测/校正电路126可以确定在相应扇区中的错误位是不可校正的,并且将相应扇区标记为“失败”。如果BER低于或等于参考值,则错误检测/校正电路126可以确定相应的扇区是可校正的,并且可以将相应的扇区标记为“通过”。
错误检测/校正电路126可对所有读取数据依次地执行错误检测和校正操作。当包括在读取数据中的扇区是可校正的时,错误检测/校正电路126可以继续到下一扇区,以检查是否需要对下一扇区进行错误校正操作。在以这种方式完成对所有读取数据的错误检测和校正操作后,错误检测/校正电路126可识别读取数据中哪一扇区被认为是不可校正的。错误检测/校正电路126可将关于被认为不可校正的扇区的信息(例如,地址信息)提供到处理器124。
存储器***100还可以包括总线127,以提供存储器控制器120的构成元件121、122、124、125和126之间的通道。总线127可以包括例如用于传递各种类型的控制信号和命令的控制总线,以及用于传递各种类型的数据的数据总线。
图1中通过示例的方式示出了存储器控制器120的上述构成元件121、122、124、125和126。注意,可以省略存储器控制器120的上述构成元件121、122、124、125和126中的一些,或者可以将存储器控制器120的上述构成元件121、122、124、125和126中的一些集成到单个元件中。在一些实施方案中,一个或多个其它构成元件可以被添加到存储器控制器120的上述构成元件。
在下文中,将参照图2更详细地描述存储器装置110。
图2是示意性地示出基于所公开技术的实施例的存储器装置110的框图。
在一些实施方案中,基于所公开技术的实施例的存储器装置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可以被配置为具有三维结构的存储器单元阵列。
包括在存储器单元阵列210中的多个存储器单元中的每一个可以存储至少一位数据。例如,包括在存储器单元阵列210中的多个存储器单元中的每一个可为是被配置为每存储器单元存储一位数据的单层单元(SLC)。又例如,包括在存储器单元阵列210中的多个存储器单元中的每一个可以是被配置为每存储器单元存储两位数据的多层单元(MLC)。又例如,包括在存储器单元阵列210中的多个存储器单元中的每一个可以是被配置为每存储器单元存储三位数据的三层单元(TLC)。又例如,包括在存储器单元阵列210中的多个存储器单元中的每一个可以是被配置为每存储器单元存储四位数据的四层单元(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感测存储器单元的电压值,并且该电压值被读出为数据。读取/写入电路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。
包括在存储器装置110中的存储块BLK可由多个页面PG组成,每个页面包括多个存储器单元。在一些实施方案中,多个存储器单元可布置在多个串中。多个页面PG可被映射到多个字线WL,并且多个串STR可被映射到多个位线BL。
在存储块BLK中,可以按行和列布置多个字线WL和多个位线BL。例如,多个字线WL中的每一个可以沿行方向布置,并且多个位线BL中的每一个可以沿列方向布置。又例如,多个字线WL中的每一个可以沿列方向布置,并且多个位线BL中的每一个可以沿行方向布置。
多个字线WL和多个位线BL可以彼此交叉,从而限定包括多个存储器单元MC的存储器单元阵列。每个存储器单元MC可以具有布置在其中的晶体管TR。
例如,布置在每个存储器单元MC中的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接或经由另一晶体管TR连接到相应的位线BL。晶体管TR的源极(或漏极)可以直接或经由另一晶体管TR连接到源极线(其可以接地)。晶体管TR的栅极可以包括由绝缘体包围的浮置栅极(FG)和从字线WL向其施加栅极电压的控制栅极(CG)。
在多个存储块BLK1-BLKz的每一个中,第一选择线(也称为源极选择线或漏极选择线)可以被另外地布置在两个最外字线之中更靠近读取/写入电路230的第一最外字线的外侧,并且第二选择线(也称为漏极选择线或源极选择线)可以被另外地布置在其余的第二最外字线的外侧。
在一些情况下,可以在第一最外字线和第一选择线之间另外布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间另外布置至少一个虚设字线。
可以逐个页面地执行存储块的读取操作和编程操作(写入操作),并且可以逐个存储块地执行擦除操作。
图3是示出根据所公开技术的实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图3,存储器装置110具有存储器单元MC集中于此的内核区域,以及对应于内核区域之外的其余区域的辅助区域。辅助区域包括用于支持存储器单元阵列210的操作的电路。
内核区域可以包括页面PG和串STR。在一些实施方案中,多个字线WL1至WL9和多个位线BL被布置为交叉。
字线WL1至WL9可连接到行解码器310。位线BL可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可存在于多个位线BL与列解码器320之间。
多个字线WL1至WL9可对应于多个页面PG。
例如,多个字线WL1至WL9中的每一个可对应于一个页面PG,如图3所示。当多个字线WL1至WL9中的每一个具有大尺寸时,多个字线WL1至WL9中的每一个可对应于至少两个(例如,两个或四个)页面PG。每个页面PG是与进行编程操作和读取操作有关的最小单位,并且当进行编程操作和读取操作时,在同一页面PG内的所有存储器单元MC可以同时执行操作。
多个位线BL可以连接到列解码器320。在一些实施方案中,多个位线BL可被划分为奇数编号的位线BL和偶数编号的位线BL,使得一对奇数编号的位线BL和偶数编号的位线BL共同联接到列解码器320。
地址可用于访问内核区域中的一个或多个存储器单元MC。地址可通过输入/输出端提供至行解码器310及列解码器320以选择相应的目标存储器单元。如本文所使用的,“目标存储器单元”可以指代作为目标被存储器控制器或用户访问以将数据编程在其中或从其中读取经编程的数据的存储器单元MC中的一个,并且在一些实施方案中,存储器单元MC可位于连接到行解码器310的字线WL1至WL9与连接到列解码器320的位线BL之间的交叉处。
在一些实施方案中,因为由存储器装置110进行的所有数据处理,包括编程及读取操作,都经由数据寄存器330发生,所以数据寄存器330起着作用。如果数据寄存器330的数据处理被延迟,则所有其它区域需要等待,直到数据寄存器330完成数据处理。另外,数据寄存器330的性能劣化可使存储器装置110的总体性能劣化。
参照图3所示的示例,在一个串STR中,多个晶体管TR1至TR9可分别连接到多个字线WL1至WL9。在一些实施方案中,多个晶体管TR1至TR9对应于存储器单元MC。在该示例中,多个晶体管TR1至TR9包括控制栅极CG和浮置栅极FG。
多个字线WL1至WL9包括两个最外字线WL1和WL9。第一选择线DSL可以另外地布置在第一最外字线WL1的外侧,第一最外字线WL1与其余的最外字线WL9相比更靠近数据寄存器330并且具有更短的信号路径。第二选择线SSL可以另外地布置在其余的第二最外字线WL9的外侧。
由第一选择线DSL控制导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但不包括浮置栅极FG。由第二选择线SSL控制导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但不包括浮置栅极FG。
第一选择晶体管D-TR用作将相应串STR选择性地连接到数据寄存器330的开关电路。第二选择晶体管S-TR用作将相应串STR选择性地连接到源极线SL的开关电路。第一选择晶体管D-TR和第二选择晶体管S-TR可以用来启用或禁用相应的串STR。
在编程操作期间,存储器***100用电子填充待被编程的目标存储器单元MC。因此,存储器***100将预先确定的导通电压Vcc施加到第一选择晶体管D-TR的栅电极,从而导通第一选择晶体管D-TR,并将预先确定的关断电压(例如,0V)施加到第二选择晶体管S-TR的栅电极,从而关断第二选择晶体管S-TR。
存储器***100在读取操作或验证操作期间导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,在读取操作或验证操作期间,电流可流经相应的串STR并流到对应于接地电压的源极线SL,从而可测量位线BL的电压电平。然而,在读取操作期间,在第一选择晶体管D-TR和第二选择晶体管S-TR之间可能存在通/断定时的时间差。
在擦除操作期间,存储***100可通过源极线SL向衬底施加预先确定的电压(例如,+20V)。在擦除操作期间,存储器***100施加特定电压以允许第一选择晶体管D-TR和第二选择晶体管S-TR二者都浮置,从而生成无穷大电阻。结果,所施加的擦除电压可从所选择的存储块中的存储器单元的浮置栅极FG移除电荷。
当同时执行将映射数据清除到存储器装置中的操作和主机所请求的读取操作或写入操作时,主机所请求的读取操作或写入操作的性能可能受到影响,因此可能不满足QoS。认识到上述问题,所公开技术的一些实施方案提供了一种存储器***,其可以避免大量的映射数据被密集地清除到存储器装置中。所公开技术的一些实施方案可以改进从主机请求的操作的QoS。
图4是示意性地示出根据所公开技术的实施例的存储器***的框图。
参照图4,存储器***100的存储器控制器120可以包括其中高速缓存映射数据的映射高速缓存(MAP_CACHE)。当访问映射数据时,存储器控制器120可以识别存储器控制器120期望访问的映射数据是否被高速缓存在映射高速缓存(MAP_CACHE)中。当映射数据被高速缓存在映射高速缓存(MAP_CACHE)中时,存储器控制器120可以访问映射高速缓存(MAP_CACHE)中的映射数据。当映射数据未被高速缓存在映射高速缓存(MAP_CACHE)中时,存储器控制器120可以从存储器装置110读取映射数据,然后将该映射数据从存储器装置110高速缓存到映射高速缓存(MAP_CACHE)中。
映射高速缓存(MAP_CACHE)可以位于存储器控制器120的内部或外部。例如,映射高速缓存(MAP_CACHE)可以位于存储器控制器120内的工作存储器125中。在另一示例中,映射高速缓存(MAP_CACHE)可以位于存储器控制器120外部的单独的易失性存储器装置(例如,SRAM、DRAM)中。
在所公开技术的一些实施例中,存储器控制器120可以在映射高速缓存(MAP_CACHE)内配置多个映射高速缓存池(MC_POOL)。此时,多个映射高速缓存池(MC_POOL)中的每一个可以高速缓存不同类型的映射数据。可以基于被高速缓存的映射数据的类型来划分多个映射高速缓存池(MC_POOL)。
在图4中,多个映射高速缓存池(MC_POOL)可以包括用于高速缓存类型1的映射数据的映射高速缓存池、用于高速缓存类型2的映射数据的映射高速缓存池、用于高速缓存类型3的映射数据的映射高速缓存池、以及用于高速缓存类型4的映射数据的映射高速缓存池。在本专利文件中,稍后将参照图7进一步讨论数据的类型。
存储器控制器120可以在多个映射高速缓存池(MC_POOL)之中的至少一个映射高速缓存池中配置定时器。
此时,可以使用与映射高速缓存池相对应的定时器来确定将被高速缓存在相应的映射高速缓存池中的映射数据清除到存储器装置110的时间点。该清除可以对应于将相应映射高速缓存池中被高速缓存的映射数据写入存储器装置110中。在一些实施方案中,存储器控制器120可以为所有多个映射高速缓存池(MC_POOL)配置定时器。在一些其它实施方案中,存储器控制器120可以仅对多个映射高速缓存池(MC_POOL)的一部分配置定时器。在图4的示例中,存储器控制器120为用于高速缓存类型1、类型2和类型3的映射数据的映射高速缓存池配置定时器,但是不为用于高速缓存类型4的映射数据的映射高速缓存池配置定时器。
在没有为其配置定时器的映射高速缓存池中被高速缓存的映射数据,可以在满足特定条件时(例如,当被高速缓存的映射数据的大小大于或等于阈值时),而不是在满足定时器到期的条件时,被清除到存储器装置110中。
存储器控制器120可以基于与第一映射高速缓存池(MC_POOL_1)相对应的定时器,将多个映射高速缓存池(MC_POOL)之中的第一映射高速缓存池(MC_POOL_1)中高速缓存的映射数据清除到存储器装置110中。
图5示出了基于所公开技术的实施例的对应于多个映射高速缓存池(MC_POOL)中的每一个的定时器的操作。
参照图5,存储器控制器120可以配置与多个映射高速缓存池(MC_POOL)相对应的各个定时器。例如,在各个映射高速缓存池中,通过使用不同的时间间隔设置,可以不同地配置定时器。
例如,存储器控制器120可以为一个映射高速缓存池配置定时器,使得以时间间隔T1将被高速缓存在相应的映射高速缓存池中的映射数据清除到存储器装置110中。
存储器控制器120可以为另一映射高速缓存池配置定时器,使得以与T1不同的时间间隔T2将被高速缓存在相应的映射高速缓存池中的映射数据清除到存储器装置110中。
存储器控制器120可以为又一映射高速缓存池配置定时器,使得以与T1和T2不同的时间间隔T3将被高速缓存在相应的映射高速缓存池中的映射数据清除到存储器装置110中。
通过在映射高速缓存池(MC_POOL)中不同地配置定时器,存储器控制器120可以分散将被高速缓存在映射高速缓存(MAP_CACHE)中的相应映射数据清除到存储器装置110的时间点。
因此,存储器控制器120可以防止由于被高速缓存在映射高速缓存(MAP_CACHE)中的映射数据被密集地清除到存储器装置110中而出现的问题。
通常,来自主机的读取请求和写入请求被不断地输入到存储器控制器120中。当存储器控制器120使用大量资源(例如,工作存储器125中的空间)来将高速缓存在映射高速缓存(MAP_CACHE)中的映射数据清除到存储器装置110中时,由于缺少可用于处理从主机接收的读取请求或写入请求的资源,处理性能会降低,并且因此可能不满足由主机请求的读取操作和写入操作的QoS。
因此,为了避免该问题,存储器控制器120可以通过定时器来分散将被高速缓存在映射高速缓存(MAP_CACHE)中的映射数据清除到存储器装置110中的时间点,以便防止大量映射数据被密集地清除到存储器装置中。因此,存储器***100可以减轻由于映射数据被密集地清除到存储器装置中而出现的读取操作和写入操作的性能的劣化,从而满足由主机请求的读取操作和写入操作的QoS。
上面已经描述了通过在映射高速缓存(MAP_CACHE)内配置多个映射高速缓存池(MC_POOL)来将映射数据分布到每个映射高速缓存池并且在每个映射高速缓存池中清除映射数据的原因。
在下文中,将参照图6描述在映射高速缓存(MAP_CACHE)内配置多个映射高速缓存池(MC_POOL)的方法的示例。
图6示出了根据所公开技术的实施例的存储器***100配置每个映射高速缓存池的区域的方法的示例。
参照图6,存储器***100的存储器控制器120可以配置指示多个映射高速缓存池(MC_POOL)的区域的寄存器(REG)的值,以便配置映射高速缓存(MAP_CACHE)内的多个映射高速缓存池(MC_POOL)。
这里,可以以各种方式确定配置存储在寄存器(REG)中的值的方法。例如,每个寄存器(REG)可以存储相应的映射高速缓存池的起始地址和结束地址的值。又例如,每个寄存器(REG)可以存储相应的映射高速缓存池的起始地址和大小的值。
在下文中,描述存储器控制器120配置与多个映射高速缓存池(MC_POOL)中的每一个相对应的定时器的详细实施例。
例如,存储器控制器120可以根据被高速缓存在每个映射高速缓存池中的映射数据的类型来不同地配置与多个映射高速缓存池(MC_POOL)中的每一个相对应的定时器。也即,针对多个映射高速缓存池(MC_POOL)之中的第一映射高速缓存池(MC_POOL_1),存储器控制器120可以根据被高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据的类型,配置与第一映射高速缓存池(MC_POOL_1)相对应的定时器。
在所公开技术的实施例中,例如,映射数据的类型可以如下划分。
1.L2V数据类型
L2V数据类型的映射数据是指示用于来自主机的传输的逻辑地址(LA)和存储器装置110的虚拟物理地址(虚拟地址(VA))之间的映射关系的数据。虚拟物理地址对应于虚拟闪速存储器的物理地址,其可以通过虚拟闪存层与存储器装置110的物理地址相关联。
2.VPT数据类型
VPT数据类型的映射数据是指示由映射数据指示的区域是否有效的数据。在实施例中,由映射数据指示的区域可以是位于由映射数据指示的地址中的页面。
3.日志数据类型
日志数据类型的映射数据是指示映射数据的改变的数据,并且可以用于跟踪映射数据的改变历史。
4.其它数据类型
其它数据类型的映射数据是除了L2V数据、VPT数据和日志数据之外的指示剩余信息(例如,每个存储块的读取计数或擦除计数)的数据。
图7示出了根据所公开技术的实施例的被高速缓存在各个映射高速缓存池中的映射数据的类型的示例。
包括在映射高速缓存(MAP_CACHE)中的多个映射高速缓存池(MC_POOL)可以高速缓存不同类型的映射数据。在图7中,多个映射高速缓存池(MC_POOL)可以分别高速缓存L2V数据类型、VPT数据类型和日志数据类型的映射数据。
存储器控制器120可以为多个映射高速缓存池(MC_POOL)之中的、用于高速缓存L2V数据类型的映射数据的映射高速缓存池配置第一定时器(TIMER_1)。
存储器控制器120可以为多个映射高速缓存池(MC_POOL)之中的、用于高速缓存VPT数据类型的映射数据的映射高速缓存池配置第二定时器(TIMER_2)。
存储器控制器120可以为多个映射高速缓存池(MC_POOL)之中的、用于高速缓存日志数据类型的映射数据的映射高速缓存池配置第三定时器(TIMER_3)。
上面已经描述了存储器控制器120根据被高速缓存在映射高速缓存池中的映射数据的类型来配置定时器。
在下文中,将描述存储器控制器120根据被高速缓存在映射高速缓存池中的映射数据的类型来配置定时器值的详细实施例。
例如,存储器控制器120可以基于第一映射高速缓存池(MC_POOL_1)的高速缓存行(cache line)的大小、被高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据的条带(stripe)的数量以及所配置的目标性能值中的至少一个,来配置与多个映射高速缓存池(MC_POOL)之中的第一映射高速缓存池(MC_POOL_1)相对应的定时器。在下文中,将参照图8至图9对此进行详细描述。
图8示出了根据映射数据的类型的每次更新的写入大小的示例。
参照图8,在映射数据之中,L2V数据具有4B的大小,VPT数据具有4B的大小,日志数据具有12B的大小。
当L2V数据被更新时,存储器控制器120读取一条L2V数据,并且对于一条读取的L2V数据,更新存储在相应的L2V数据中的逻辑地址和虚拟物理地址之间的映射信息,然后写入L2V数据。因此,当L2V数据被更新时,L2V数据的写入次数是一次。当更新L2V数据时,写入的L2V数据的总大小为(4B*1)=4B。
当VPT数据被更新时,有效数据被写入新页面,并且存储相应数据的先前版本的数据的页面不再有效。因此,存储器控制器120将先前指示有效页面的一条VPT数据更新为指示无效页面,且将另一条VPT数据更新为指示新的有效页面。当VPT数据被更新时,VPT数据的写入次数是两次。因此,当更新VPT数据时,写入的VPT数据的总大小为(4B*2)=8B。
当日志数据被更新时,写入指示变化信息的一条新的日志数据,并且常规的日志数据没有变化,因此日志数据的写入次数为一次。因此,当更新日志数据时,写入的日志数据的总大小为(12B*1)=12B。
图9示出了根据参照图8描述的映射数据的类型的定时器的配置的示例。
如上所述,当数据被更新时,写入的L2V数据的大小是4B,写入的VPT数据的大小是8B,写入的日志数据的大小是12B。
在映射高速缓存池中高速缓存映射数据的高速缓存行的大小可以根据每个映射高速缓存池而不同。在图9中,假设其中高速缓存L2V数据的映射高速缓存池的高速缓存行的大小是64B,其中高速缓存VPT数据的映射高速缓存池的高速缓存行的大小是64B,并且其中高速缓存日志数据的映射高速缓存池的高速缓存行的大小是128B。
在这种情况下,当L2V数据被更新时,在每次更新时会更新64B之中4B的高速缓存行,因此脏率(dirty rate)是4B/64B=1/16,脏率是每次更新时高速缓存行进入脏状态的比率。
此外,当VPT数据被更新时,在每次更新时会更新64B之中8B的高速缓存行,因此脏率是8B/64B=1/8。
当日志数据被更新时,在每次更新时会更新128B之中12B的高速缓存行,因此脏率是12B/128B=3/32。
此时,假设映射数据的条带(stripe)的数量是64,并且目标性能是1M IOPS(每秒输入/输出操作)。映射数据的64个条带意味着FTL将一条映射数据的单位进行条带化并处理为64个。在这种情况下,为了满足1M IOPS,每1μs(=(1/1M)s)应写入64条经条带化的映射数据。
由于L2V数据的脏率是1/16,因此当更新64条经条带化的映射数据时,处于脏状态的高速缓存行的数量是64/16=4。因此,每1μs应清除4个高速缓存行,且因此将定时器值配置为1/4μs。
由于VPT数据的脏率是1/8,因此当更新64条经条带化的映射数据时,处于脏状态的高速缓存行的数量是64/8=8。因此,每1μs应清除8个高速缓存行,且因此将定时器值配置为1/8μs。
由于日志数据的脏率是3/32,因此当更新64条经条带化的映射数据时,处于脏状态的高速缓存行的数量是64/(32/3)=6。因此,每1μs应清除6个高速缓存行,且因此将定时器值配置为1/6μs。
已经描述了在每个映射高速缓存池中配置定时器的方法。
在下文中,描述每个映射高速缓存池中所配置的定时器停止的时间点。
图10是示出基于所公开技术的实施例的存储器***100确定是否停止定时器的操作的示例的流程图。
参照图10,在S1010中,存储器***100的存储器控制器120可以配置与多个映射高速缓存池(MC_POOL)之中的第一映射高速缓存池(MC_POOL_1)相对应的定时器。
在S1020中,存储器控制器120可以通过运行在步骤S1010中配置的定时器,将第一映射高速缓存池(MC_POOL_1)中包括的多个高速缓存行之中的一个高速缓存行上高速缓存的映射数据清除到存储器装置110中。
在S1030中,存储器控制器120可以确定在第一映射高速缓存池(MC_POOL_1)中包括的多个高速缓存行之中处于干净状态的高速缓存行的数量是否大于或等于预设阈值。干净状态对应于高速缓存行的一种状态,在该状态中被高速缓存在相应的高速缓存行中的映射数据的任何变化都被存储在存储器装置110中。
当处于干净状态的高速缓存行的数量大于或等于预设阈值(S1030-是)时,在S1040中,存储器控制器120可以停止与第一映射高速缓存池(MC_POOL_1)相对应的定时器。这是因为,由于第一映射高速缓存池(MC_POOL_1)具有足够的额外空间来存储额外的高速缓存映射数据,所以不需要将高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据清除到存储器装置110中。
当处于干净状态的高速缓存行的数量小于预设阈值(S1030-否)时,存储器控制器120可以再次执行步骤S1010,并且重新配置与第一映射高速缓存池(MC_POOL_1)相对应的定时器,以便额外地清除高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据。
已经描述了对存储器控制器120运行第一映射高速缓存池(MC_POOL_1)的定时器的时间点没有限制的情况。
在下文中,将描述存储器控制器120仅在满足特定条件的时间点运行第一映射高速缓存池(MC_POOL_1)的定时器的情况。
图11示出了根据所公开技术的实施例的存储器***100运行定时器的时间点的示例。
参照图11,存储器***100的存储器控制器120可以在空闲状态下运行对应于第一映射高速缓存池的定时器。空闲状态可对应于存储器***100不处理对应于从主机接收的命令的任何请求或存储器***100不处理后台操作(例如,垃圾收集或读取回收)的状态。
存储器控制器120可以仅在空闲状态下运行对应于第一映射高速缓存池(MC_POOL_1)的定时器,并且可以根据该定时器将被高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据清除到存储器装置110中。
当存储器控制器120处于处理主机所请求的读取操作或写入操作或者处理后台操作(例如,垃圾收集或读取回收)的忙碌状态时,存储器控制器120不运行对应于第一映射高速缓存池(MC_POOL_1)的定时器,以便防止由于将映射数据清除到存储器装置110中而产生的性能劣化。
图12示出了基于所公开技术的实施例的操作存储器***100的方法。
参照图12,操作存储器***100的方法可以包括步骤S1210,在高速缓存映射数据的映射高速缓存(MAP_CACHE)内配置用于高速缓存不同类型的映射数据的多个映射高速缓存池(MC_POOL)。
操作存储器***100的方法可以包括步骤S1220,在步骤S1210中配置的多个映射高速缓存池(MC_POOL)之中的至少一个映射高速缓存池中配置定时器。
操作存储器***100的方法可以包括步骤S1230,根据与第一映射高速缓存池(MC_POOL_1)相对应的定时器,将多个映射高速缓存池(MC_POOL)之中的第一映射高速缓存池(MC_POOL_1)中高速缓存的映射数据清除到存储器装置110中。
可以根据被高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据的类型来配置与第一映射高速缓存池(MC_POOL_1)相对应的定时器。
例如,可以基于第一映射高速缓存池的高速缓存行的大小、被高速缓存在第一映射高速缓存池(MC_POOL_1)中的映射数据的条带的数量以及所配置的目标性能来配置与第一映射高速缓存池(MC_POOL_1)相对应的定时器。
同时,上述存储器控制器120的操作可以由控制电路123控制,并且处理器124可以运行(驱动)对存储器控制器120的一般操作进行编程的固件。
图13是示出基于所公开技术的实施例的计算***1300的配置的示图。
参照图13,基于所公开技术的实施例的计算***1300可以包括:电连接到***总线1360的存储器***100;被配置为控制计算***1300的全部操作的CPU 1310;被配置为存储与计算***1300的操作相关的数据和信息的RAM 1320;被配置为向用户提供用户环境的用户接口/用户体验(UI/UX)模块1330;被配置为与有线和/或无线类型的外部装置通信的通信模块1340;以及被配置为管理计算***1300所使用的电力的电源管理模块1350。
计算***1300可以是个人计算机(PC),或者可以包括诸如智能电话、平板电脑的移动终端或各种电子装置。
计算***1300可进一步包括用于供应操作电压的电池,并且可进一步包括应用芯片组、图形相关模块、相机图像处理器和DRAM。其它元件对于本领域技术人员来说是显而易见的。
存储器***100不仅可以包括被配置为将数据存储在磁盘中的装置,诸如硬盘驱动器(HDD),而且可以包括被配置为将数据存储在非易失性存储器中的装置,诸如固态驱动器(SSD)、通用闪存装置或嵌入式MMC(eMMC)装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器***100可被实施为各种类型的存储装置,并安装在各种电子装置内。
基于上述所公开技术的实施例,可减少或最小化存储器***的操作延迟时间。另外,根据所公开技术的实施例,可以最小化在调用特定功能的过程中产生的开销。尽管为了说明的目的已经描述了所公开技术的各种实施例,但是本领域技术人员将理解,基于本专利文件中描述和说明的内容,可以进行各种修改、添加和替换。

Claims (19)

1.一种存储器***,包括:
存储器装置,可操作以存储数据;以及
存储器控制器,与所述存储器装置通信并通过执行包括以下的操作来控制所述存储器装置:
在高速缓存映射数据的映射高速缓存内配置分别高速缓存不同类型的映射数据的多个映射高速缓存池,
在所述多个映射高速缓存池之中的第一映射高速缓存池中配置定时器,以及
基于所述定时器将被高速缓存在所述第一映射高速缓存池中的映射数据写入所述存储器装置中。
2.根据权利要求1所述的存储器***,其中所述存储器控制器进一步配置寄存器,所述寄存器指示所述映射高速缓存内的所述多个映射高速缓存池的区域。
3.根据权利要求1所述的存储器***,其中所述存储器控制器进一步基于被高速缓存在所述第一映射高速缓存池中的映射数据的类型来配置所述定时器。
4.根据权利要求1所述的存储器***,其中所述不同类型包括指示逻辑地址与虚拟地址之间的映射关系的L2V数据类型、指示由所述映射数据指示的区域的有效性的VPT数据类型或指示所述映射数据的改变的日志数据类型。
5.根据权利要求1所述的存储器***,其中所述存储器控制器进一步基于所述第一映射高速缓存池的高速缓存行的大小、被高速缓存在所述第一映射高速缓存池中的映射数据的条带的数量和目标性能中的至少一个来配置与所述第一映射高速缓存池相对应的定时器。
6.根据权利要求5所述的存储器***,其中所述存储器控制器在检测到包括在所述第一映射高速缓存池中并且处于相应的映射数据的变化被存储在所述存储器装置中的状态的高速缓存行的数量大于或等于预设阈值时,停止与所述第一映射高速缓存池相对应的定时器。
7.根据权利要求1所述的存储器***,其中当所述存储器控制器处于空闲状态时,所述存储器控制器运行与所述第一映射高速缓存池相对应的定时器。
8.一种存储器控制器,包括:
存储器接口,与可操作以存储数据的存储器装置通信;以及
处理器,通过所述存储器接口与所述存储器装置通信并且控制所述存储器装置,
其中,所述处理器进一步1)在高速缓存映射数据的映射高速缓存内配置分别高速缓存不同类型的映射数据的多个映射高速缓存池,2)在所述多个映射高速缓存池之中的第一映射高速缓存池中配置定时器,以及3)基于所述定时器来将被高速缓存在所述第一映射高速缓存池中的映射数据写入所述存储器装置。
9.根据权利要求8所述的存储器控制器,其中所述处理器进一步配置寄存器,所述寄存器指示所述映射高速缓存内的所述多个映射高速缓存池的区域。
10.根据权利要求8所述的存储器控制器,其中所述处理器进一步基于被高速缓存在所述第一映射高速缓存池中的映射数据的类型来配置所述定时器。
11.根据权利要求10所述的存储器控制器,其中所述不同类型包括指示逻辑地址与虚拟地址之间的映射关系的L2V数据类型、指示由所述映射数据指示的区域的有效性的VPT数据类型或指示所述映射数据的改变的日志数据类型。
12.根据权利要求10所述的存储器控制器,其中所述处理器进一步基于所述第一映射高速缓存池的高速缓存行的大小、被高速缓存在所述第一映射高速缓存池中的映射数据的条带的数量和目标性能中的至少一个来配置与所述第一映射高速缓存池相对应的定时器。
13.根据权利要求12所述的存储器控制器,其中所述处理器进一步在包括在所述第一映射高速缓存池中并且处于相应的映射数据的变化被存储在所述存储器装置中的状态的高速缓存行的数量大于或等于预设阈值时,停止与所述第一映射高速缓存池相对应的定时器。
14.根据权利要求8所述的存储器控制器,其中当所述处理器处于空闲状态时,所述处理器运行与所述第一映射高速缓存池相对应的定时器。
15.一种操作存储器***的方法,所述方法包括:
在被提供以高速缓存映射数据的映射高速缓存内配置分别高速缓存不同类型的映射数据的多个映射高速缓存池;
在所述多个映射高速缓存池之中的第一映射高速缓存池中配置定时器;以及
基于所述定时器将被高速缓存在所述第一映射高速缓存池中的映射数据写入所述存储器装置中。
16.根据权利要求15所述的方法,其中基于被高速缓存在所述第一映射高速缓存池中的映射数据的类型来配置与所述第一映射高速缓存池相对应的定时器。
17.根据权利要求16所述的方法,其中基于所述第一映射高速缓存池的高速缓存行的大小、被高速缓存在所述第一映射高速缓存池中的映射数据的条带的数量和目标性能中的至少一个来配置与所述第一映射高速缓存池相对应的定时器。
18.根据权利要求15所述的方法,还包括:
在所述多个映射高速缓存池之中的第二映射高速缓存池中配置定时器;以及
基于所述第二映射高速缓存池中的定时器,将被高速缓存在所述第二映射高速缓存池中的映射数据清除到所述存储器装置中。
19.根据权利要求18所述的方法,其中所述第二映射高速缓存池中的定时器具有与所述第一映射高速缓存池中的定时器不同的时间间隔设置。
CN202110531610.4A 2020-08-24 2021-05-17 存储器***、存储器控制器及操作存储器***的方法 Pending CN114090473A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0106077 2020-08-24
KR1020200106077A KR20220025405A (ko) 2020-08-24 2020-08-24 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
CN114090473A true CN114090473A (zh) 2022-02-25

Family

ID=80269575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110531610.4A Pending CN114090473A (zh) 2020-08-24 2021-05-17 存储器***、存储器控制器及操作存储器***的方法

Country Status (3)

Country Link
US (1) US11372766B2 (zh)
KR (1) KR20220025405A (zh)
CN (1) CN114090473A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629720A (zh) * 2022-12-20 2023-01-20 鹏钛存储技术(南京)有限公司 基于闪存为介质的存储设备上的非对称条带化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516380B2 (en) * 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
KR100825721B1 (ko) 2005-12-08 2008-04-29 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
US10599570B1 (en) * 2014-06-20 2020-03-24 Google Llc Expiration of offline map data
KR101842764B1 (ko) 2016-03-18 2018-03-28 연세대학교 산학협력단 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법
US10936436B2 (en) * 2018-08-07 2021-03-02 Saudi Arabian Oil Company Using snapshots for data backups

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629720A (zh) * 2022-12-20 2023-01-20 鹏钛存储技术(南京)有限公司 基于闪存为介质的存储设备上的非对称条带化方法

Also Published As

Publication number Publication date
US11372766B2 (en) 2022-06-28
KR20220025405A (ko) 2022-03-03
US20220058129A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
US11262939B2 (en) Memory system, memory controller, and operation method
US20230333932A1 (en) Memory system and operating method thereof
CN114067870A (zh) 存储器***、存储器装置以及用于操作存储器装置的方法
CN114863962A (zh) 存储器***及其操作方法
CN113204312A (zh) 存储器***、存储器控制器及存储器***的操作方法
CN113903384A (zh) 存储器***、存储器控制器以及操作存储器***的方法
CN112306387A (zh) 存储器***、存储器控制器以及操作存储器***的方法
US11372766B2 (en) Memory system, memory controller, and method of operating memory system
CN114968856B (zh) 存储器***及其操作方法
CN115963981A (zh) 存储器***及存储器***的操作方法
CN115952115A (zh) 基于融合链表控制同步操作的存储器控制器及其操作方法
CN116136738A (zh) 使用外部装置执行后台操作的存储器***及其操作方法
US20210382655A1 (en) Memory device, memory system, and operation method of memory device
CN115206393A (zh) 存储器装置及存储器装置的操作方法
CN114520013A (zh) 存储器***及其操作方法
CN112925476A (zh) 存储器***、存储器控制器及其操作方法
US11636007B2 (en) Memory system and operating method thereof for flushing data in data cache with parity
US11893255B2 (en) Memory system for managing data corresponding to a plurality of zones and operating method thereof
CN112083874B (zh) 存储器***、存储器控制器和操作存储器控制器的方法
US11704050B2 (en) Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks
US11500771B2 (en) Memory system, memory controller, and method of operating memory system
US20230297502A1 (en) Memory system, memory controller and operating method of the memory system for controlling garbage collection
CN114968078A (zh) 存储器装置及其操作方法
CN115437968A (zh) 存储器***及存储器***的操作方法
CN117311599A (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