CN113900586A - 存储器***及其操作方法 - Google Patents

存储器***及其操作方法 Download PDF

Info

Publication number
CN113900586A
CN113900586A CN202110395756.0A CN202110395756A CN113900586A CN 113900586 A CN113900586 A CN 113900586A CN 202110395756 A CN202110395756 A CN 202110395756A CN 113900586 A CN113900586 A CN 113900586A
Authority
CN
China
Prior art keywords
host
memory
metadata
memory system
read
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
Application number
CN202110395756.0A
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 CN113900586A publication Critical patent/CN113900586A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F2212/1024Latency reduction
    • 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

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种存储器***,该存储器***可以包括:非易失性存储器装置,适于存储用户数据和用户数据的元数据;以及控制器,适于将元数据中的至少一些上传到主机。当主机中被分配以存储所上传的元数据的存储空间的空闲空间的大小等于或小于设定值时,控制器可以根据从主机接收的正常读取请求的数量和正常读取请求的比率将热元数据上传到主机。

Description

存储器***及其操作方法
相关申请的交叉引用
本申请要求于2020年6月22日提交的申请号为10-2020-0075432的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例涉及一种存储器***及其操作方法,并且更特别地,涉及一种用于存储器***的读取操作方法和设备。
背景技术
近来,计算环境的范例已经变为可随时随地使用计算机***的普适计算环境。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这种便携式电子装置通常利用使用存储器装置的存储器***,即,数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
与硬盘不同,使用存储器装置的数据存储装置由于不具有机械驱动器而具有优异的稳定性和耐用性、高信息访问速度和低功耗。以具有这些优点的存储器***实施的数据存储装置的示例包括USB(通用串行总线)存储器装置、具有各种接口的存储卡以及SSD(固态驱动器)。
发明内容
各个实施例涉及一种可在主机感知性能增强器(HPB)模式下根据正常读取请求的数量和正常读取请求的比率决定待上传到主机的热映射信息的存储器***及其操作方法。
而且,各个实施例涉及一种可通过将上传到主机的多条映射信息之中的冷映射信息更新为热映射信息来提高读取操作的效率的存储器***。
而且,各个实施例涉及一种因为在主机请求的读取操作期间不需要从存储器装置下载映射信息而可减少存储器***的开销的存储器***及其操作方法。
而且,各个实施例涉及一种存储器***及其操作方法,该存储器***可在读取操作期间确定从主机接收的物理地址的有效性,并且当物理地址是有效物理地址时,访问相应的物理地址而无需单独的映射信息搜索进程,从而提高了读取操作的执行速度。
在实施例中,一种存储器***包括:非易失性存储器装置,适于存储用户数据和用户数据的元数据;以及控制器,适于将元数据中的至少一些上传到主机,当主机内被分配以存储所上传的元数据的存储空间的空闲空间的大小等于或小于设定值时,控制器可以根据从主机接收的正常读取请求的数量和所接收的正常读取请求与所接收的所有读取请求的比率将热元数据上传到主机。
正常读取请求可以是不带有物理地址的读取请求。
当空闲空间的大小可以等于或小于设定值时,控制器可以管理指示主机可以做出对特定逻辑地址的读取请求的次数的读取计数。
控制器可以基于读取计数来选择热元数据。
读取计数可以包括针对正常读取请求的正常读取计数和针对主机感知性能增强器(HPB)读取请求的HPB读取计数,HPB读取请求中的每一个包括物理地址。
控制器可以重置关于上传到主机的元数据中的至少一些的上传信息,以将热元数据上传到主机。
当正常读取请求与所有读取请求的比率可以等于或大于第一阈值时,控制器可以向主机上传热元数据以替换所上传的元数据之中的冷元数据。
当正常读取请求与所有读取请求的比率可以等于或大于第二阈值时,控制器可以向主机上传热元数据以替换所有先前上传的元数据,第二阈值大于第一阈值。
元数据可以包括映射信息,该映射信息包括由主机使用的逻辑地址和与该逻辑地址相对应的存储器装置的物理地址。
设定值可以等于或大于0。
在实施例中,提供了一种存储器***的操作方法,该存储器***包括非易失性存储器装置以及控制器,非易失性存储器装置适于存储用户数据和用户数据的元数据,控制器适于将元数据中的至少一些上传到主机,该操作方法包括:确定主机中被分配以存储所上传的元数据的存储空间的空闲空间的大小是否等于或小于设定值;并且当空闲空间的大小等于或小于设定值时,根据从主机接收的正常读取请求的数量和正常读取请求与所有读取请求的比率将热元数据上传到主机。
正常读取请求可以是不带有物理地址的读取请求。
将热元数据上传到主机可以包括:管理指示主机可以做出对特定逻辑地址的读取请求的次数的读取计数。
将热元数据上传到主机可以包括:基于读取计数来选择热元数据。
读取计数可以包括针对正常读取请求的正常读取计数和针对主机感知性能增强器(HPB)读取请求的HPB读取计数,HPB读取请求中的每一个包括物理地址。
将热元数据上传到主机可以包括:重置关于上传到主机的元数据中的至少一些的上传信息。
其中将热元数据上传到主机可以包括:当正常读取请求与所有读取请求的比率可以等于或大于第一阈值时,向主机上传热元数据以替换所上传的元数据之中的冷元数据。
其中将热元数据上传到主机可以包括:当正常读取请求与所有读取请求的比率可以等于或大于第二阈值时,向主机上传热元数据以替换所有先前上传的元数据,第二阈值大于第一阈值。
元数据可以包括映射信息,该映射信息包括由主机使用的逻辑地址和与该逻辑地址相对应的存储器装置的物理地址。
设定值可以等于或大于0。
在实施例中,一种***包括:存储器装置,适于存储逻辑地址和相应的物理地址之间的装置映射数据;控制器,适于响应于第一类型请求和第二类型请求控制存储器装置执行操作,每个第一类型请求包括逻辑地址和相应的物理地址,每个第二类型请求包括逻辑地址而不包括物理地址;以及主机,适于根据主机映射数据向控制器提供第一类型请求和第二类型请求,其中该控制器进一步适于:向主机提供装置映射数据中的第一部分作为主机映射数据;并且当第二类型请求的数量大于第一阈值并且第二类型请求的数量与第一类型请求和第二类型请求的总数的比率大于第二阈值时,控制主机以利用装置映射数据中的至少第二部分替换主机映射数据中的至少一些。
根据实施例,该存储器***及其操作方法可以具有以下效果。
该存储器***和该操作方法可以通过将上传到主机的多条映射信息之中的冷映射信息更新为热映射信息来提高读取操作的效率。
而且,该存储器***和该操作方法因为在主机请求的读取操作期间不需要从存储器装置下载映射信息而可减少存储器***的开销。
而且,该存储器***和该操作方法可在读取操作期间确定从主机接收的物理地址的有效性,并且当物理地址是有效物理地址时,访问相应的物理地址而无需单独的映射信息搜索进程,从而提高了读取操作的执行速度。
附图说明
图1示出根据本公开的实施例的用于在数据处理***中的主机和存储器***之间共享映射信息的方法。
图2示出根据本公开的实施例的包括存储器***的数据处理***。
图3示出根据本公开的实施例的存储器***。
图4示出根据本公开的实施例的数据处理***中的主机和存储器***的配置。
图5示出根据本公开的实施例的数据处理***中的主机和存储器***的读取操作。
图6A和图6B示出根据本公开的实施例的数据处理***中的主机和存储器***之间的事务的示例。
图7A至图7D是示出根据本公开的实施例的主机和存储器***的操作的流程图。
图8是示出根据实施例的存储器***管理主机存储器的操作的流程图。
图9是示出在诸如参照图8描述的操作期间存储器***管理主机存储器的操作的流程图。
图10是示出根据实施例的存储器***将映射信息上传到主机的操作的流程图。
图11A至图11E是示出根据实施例的存储器***管理主机存储器的操作的表。
具体实施方式
下文参照附图详细描述各个实施例。以下描述集中于根据实施例的操作的方面和特征;为了避免不必要地模糊本发明,省略了对公知细节的描述。
参照附图描述本公开的实施例,其中相同的附图标记指代相同的元件。而且,在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任意这种短语的不同引用不一定针对相同的(多个)实施例。
图1示出根据本公开的实施例的如何在数据处理***中的主机和存储器***之间共享映射信息。
参照图1,主机102和存储器***110可以可操作地接合。主机102可以包括计算装置,并且可以以移动装置、计算机、服务器等形式实施。与主机102可操作地接合的存储器***110可以从主机102接收命令,并且响应于所接收的命令来存储或输出数据。
存储器***110可以具有包括非易失性存储器单元的存储空间。例如,存储器***110可以以闪速存储器、固态驱动器(SSD)等形式实施。
为了响应于主机102的请求将数据存储在存储空间中,存储器***110可执行用于将主机102所使用的文件***与存储空间相关联的映射操作。这可称为逻辑地址和物理地址之间的地址转换。例如,根据主机102所使用的文件***的识别数据的地址可以被称为逻辑地址或逻辑块地址,并且指示数据在存储空间中的物理位置的地址可以被称为物理地址或物理块地址。当主机102向存储器***110发送带有逻辑地址的读取请求时,存储器***110可搜索对应于该逻辑地址的物理地址,然后读取和输出存储在由该物理地址指示的物理位置的数据。在这些进程期间,可以在存储器***110搜索对应于从主机102输入的逻辑地址的物理地址的同时,执行映射操作或地址转换。可基于诸如可将逻辑地址与物理地址相关联的映射表的映射信息来执行映射操作或地址转换。
如果主机102可代替存储器***110执行映射操作,则可以减少存储器***110读取和输出对应于由主机102传输的读取请求的数据所花费的时间。主机102可以存储和访问用于执行映射操作的映射信息中的至少一些,以便通过映射操作将带有物理地址的读取请求传递给存储器***110。
参照图1,存储器***110可以将映射信息(MAP_INFO)传输到主机102。主机102接收从存储器***110传递的映射信息,并且可以将映射信息存储在主机102中的存储器中。当存储器***110将所有映射信息发送到主机102并且主机102可将所有这种映射信息存储在存储器中时,存储器***110可能不需要写入关于所传输的映射信息的日志。然而,主机102可能难以在存储器中分配存储空间用于存储由存储器***110生成的所有映射信息。因此,当主机用于存储映射信息的存储空间有限时,存储器***110可以选择或挑选一些映射信息,即,关于主机102经常使用或访问的数据或逻辑地址的映射信息,并且将所选择的映射信息传输到主机102。
当存储器***110将一些映射信息而非全部映射信息传输到主机102时,存储器***110可以生成关于所传输的映射信息的日志或历史记录。日志或历史记录可以具有各种格式、结构、标记、变量和类型中的任意一种,并且可以存储在存储器***110的存储器装置或存储区域中。根据实施例,每当存储器***110将映射信息传输到主机102时,日志或历史记录可以包括与所传输的映射信息有关的数据。进一步,存储器***110可以将能够被记录在日志或历史记录中的所传输的映射信息的量确定为将一次传输到主机102的映射信息的大小。例如,可以确定存储器***110可传输到主机102的映射信息的大小是512KB。尽管存储器***110可能能够向主机102传输多于512KB的映射信息,但是对于单次传送可被记录在日志或历史记录中的所传输的映射信息的量可以被限制为512KB。存储器***110一次可发送到主机102的映射信息的量可以少于主机102可以存储在存储器中的映射信息的量。例如,可以以分别具有特定大小的区段(以区段为单位)将映射信息传输到主机102。存储器***110可以分别若干次将映射信息的若干区段传送到主机102。可以周期性地或间歇地传送这些区段。
根据实施例,当存储器***110向主机102传输多于1MB的映射信息时,主机102可以根据时间线删除旧映射信息,即先前从存储器***110传输并存储在存储器中的映射信息。另外,从存储器***110传输到主机102的映射信息可以包括更新信息。由于由主机102分配的用于存储从存储器***110传输的映射信息的空间包括易失性存储器单元(支持重写),所以主机102可基于更新信息来更新映射信息,而无需擦除另一映射信息的附加操作。
主机102可以基于映射信息将物理地址PBA添加到被传输到存储器***110的命令中。在映射操作中,主机102可以基于对应于被传输到存储器***110中的命令的逻辑地址,在存储器中存储的映射信息中搜索并找到物理地址PBA。当物理地址存在并被找到时,主机102可以将带有逻辑地址和物理地址的命令传输到存储器***110中。
接收从主机102输入的带有逻辑地址和物理地址的命令的存储器***110可以执行对应于该命令的命令操作。如上所述,当主机102传送对应于读取请求的物理地址时,存储器***110可使用该物理地址以使用相应的物理地址来访问和输出由物理地址指示的位置存储的数据。存储器***110可响应于读取请求执行操作,而无需地址转换,从而存储器***110可减少花费在该操作上的时间。
当没有向主机102和存储器***110供应电力时,主机102中的存储器中存储的所有映射信息都丢失。可以根据用户的请求或者甚至作为用户控制之外的事件的结果而发生主机102和存储器***110的断电或通电。在向主机102和存储器***110供应电力的同时,存储器***110可记录关于被传输到主机102的映射信息的日志或历史记录。此后,在断电后恢复电力时,存储器***110可基于日志或历史记录将映射信息传输到主机102,从而主机102可执行映射操作并且将带有逻辑地址和物理地址的命令传输到存储器***110。在恢复电力之后,主机102可快速恢复关于映射操作的操作状态,该状态与停止电力供应或不供应电力之前的状态基本相同。
在停止电力之前和在恢复电力之后,使用包括主机102和存储器***110的数据处理***的用户的需求和使用模式可以是相似的或不同的。当用户的需求和使用模式没有改变时,主机102可能已经尝试以高频率访问或读取相同的数据。当主机102执行关于这种数据的映射操作并且存储器***110可响应于输入的带有逻辑地址和物理地址的读取请求而更快地输出数据时,包括主机102和存储器***110的数据处理***的性能可能会使用户满意。
参照图2,描述了根据本公开的实施例的数据处理***100。参照图2,数据处理***100可以包括与存储器***110可操作地接合的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
主机102也包括通常可管理和控制在主机102中执行的功能和操作的至少一个操作***(OS)。OS可提供与存储器***110接合的主机102和需要并使用存储器***110的用户之间的互操作性。OS可以支持对应于用户的请求的功能和操作。通过示例而非限制的方式,可根据主机102的移动性将OS分类为通用操作***和移动操作***。根据***要求或用户环境,可以将通用操作***分为个人操作***和企业操作***。包括Windows和Chrome的个人操作***可以用于支持通用目的的服务。但是包括Windows服务器、Linux、Unix等的企业操作***可专门用于保护和支持高性能。此外,移动操作***可以包括Android、iOS、Windows Mobile等。移动操作***可以用于支持移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作***。主机102可以对应于用户的请求来运行与存储器***110接合的多个操作***。主机102可以将对应于用户的请求的多个命令传输到存储器***110中,从而在存储器***110内执行对应于命令的操作。
存储器***110可以响应于来自主机102的请求进行操作或者执行具体的功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器***110可以用作主机102的主存储器***或辅助存储器***。根据主机接口的协议,存储器***110可以利用可以与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
用于存储器***110的存储装置可以利用诸如以下的易失性存储器装置来实施:动态随机存取存储器(DRAM)和静态RAM(SRAM),和/或诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器。
存储器***110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。
控制器130和存储器装置150可以被集成到单个半导体装置中,单个半导体装置可以被包括在上文讨论的各种类型的存储器***中的任意一个中。
通过示例而非限制的方式,控制器130和存储器装置150可以被集成到单个半导体装置中。控制器130和存储器装置150可以被集成到用于提高操作速度的SSD中。当将存储器***110用作SSD时,连接到存储器***110的主机102的操作速度可比连接到利用硬盘实施的存储器***110的主机102的操作速度提高更多。另外,控制器130和存储器装置150可以被集成到一个半导体装置中以形成诸如以下的存储卡:PC卡(PCMCIA)、紧凑式闪存(CF)卡、诸如智能媒体卡(SM、SMC)的存储卡、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、通用闪速存储器等。
存储器***110可以被配置成诸如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航***、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或配置计算***的各种组件中的一种。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可以保留其中所存储的数据。存储器装置150可以通过写入操作来存储从主机102提供的数据,同时通过读取操作将在其中所存储的数据提供给主机102。存储器装置150可以包括多个存储块152、154、156等,多个存储块152、154、156等中的每一个可以包括多个页面。多个页面中的每一个可以包括多个字线(WL)所电联接到的多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156等的子集(subset)。另外,存储器装置150可以是例如闪速存储器的非易失性存储器装置,其中闪速存储器可以以三维堆叠结构实施。
控制器130可以控制存储器装置150的诸如读取操作、写入操作、编程操作和擦除操作的全部操作。例如,控制器130可以响应于来自主机102的请求控制存储器装置150。控制器130可以将从存储器装置150读取的数据提供给主机102。控制器130也可以将由主机102提供的数据存储到存储器装置150中。
控制器130可以包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正码(ECC)组件138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144。
主机接口132可以处理由主机102提供的命令和数据,并且可以通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-e或PCIe)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。根据实施例,主机接口132是可以通过被称为主机接口层(HIL)的固件来实施的用于与主机102交换数据的组件。
ECC组件138可校正待在存储器装置150中处理并且从存储器装置150输出的数据的错误位,ECC组件138可以包括ECC编码器和ECC解码器。在此,ECC编码器可对待编程在存储器装置150中的数据执行错误校正编码,以生成添加了奇偶校验位的经编码数据,并且将该经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可检测和校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC组件138可确定错误校正解码是否成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ECC组件138可使用在ECC编码进程期间所生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件138可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、Turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归***码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。ECC组件138可以包括基于上述代码中的至少一个代码来执行错误校正操作的任意和所有电路、模块、***或装置。
PMU 140可以管理在控制器130中提供的电力。
存储器接口142可以用作处置控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。当存储器装置150是闪速存储器,特别是NAND闪速存储器时,在处理器134的控制下,存储器接口142可以生成用于存储器装置150的控制信号,并且可以处理由存储器装置150接收的数据或从存储器装置150输出的数据。存储器接口142可提供用于处置控制器130和存储器装置150之间的命令和数据,例如NAND闪存接口的操作,特别是控制器130和存储器装置150之间的操作的接口。根据实施例,存储器接口142可通过被称为闪存接口层(FIL)的固件来实施为用于与存储器装置150交换数据的组件。
存储器144可以支持由存储器***110和控制器130执行的操作。存储器144可以存储针对存储器***110和控制器130中的操作而出现或传递的临时数据或事务性数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102。控制器130可以将从主机102接收的数据存储在存储器装置150中。存储器144可以用于存储数据,以供控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作。
存储器144可以被实施为易失性存储器。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或这两者来实施。例如,尽管图2示出存储器144被设置在控制器130内,但是本发明不限于此。即,在另一实施例中,存储器144可以被设置在控制器130的外部。例如,存储器144可以通过具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实施。
如上所述,存储器144可存储用于执行诸如以下的操作的数据:由主机102请求的数据写入和数据读取,和/或用于诸如垃圾收集和损耗均衡的后台操作的在存储器装置150和控制器130之间的数据传送。根据实施例,为了支持存储器***110中的操作,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可以利用微处理器或中央处理单元(CPU)来实施。存储器***110可以包括一个或多个处理器134。处理器134可以控制存储器***110的全部操作。通过示例而非限制的方式,处理器134可响应于来自主机102的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件来控制存储器***110的全部操作。在此,固件可以被称为闪存转换层(FTL)。FTL可以作为主机102和存储器装置150之间的接口而执行操作。主机102可以通过FTL向存储器装置150传输用于写入操作和读取操作的请求。
FTL可以管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据,将从主机102接收的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以像通用存储装置一样操作以执行读取操作或写入操作。而且,通过基于映射数据的地址映射操作,当控制器130试图更新但是由于闪速存储器装置的特性而不能更新特定页面中存储的数据时,控制器130可以将所更新的数据编程在另一空白页面上,并且可以使该特定页面的旧数据无效(例如,将对应于所更新的数据的逻辑地址的物理地址从先前的特定页面更新到另一新编程的页面)。进一步,控制器130可以将新数据的映射数据存储到FTL中。
例如,当在存储器装置150中执行从主机102请求的操作时,控制器130使用以微处理器或中央处理单元(CPU)等实施的处理器134。与存储器装置150接合的处理器134可处置对应于从主机102接收的命令的指令或命令。控制器130可执行作为与从主机102接收的命令相对应的命令操作的前台操作,诸如,与写入命令相对应的编程操作,与读取请求相对应的读取操作,与擦除/丢弃命令相对应的擦除/丢弃操作以及与带有设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
又例如,控制器130可以通过处理器134对存储器装置150执行后台操作。通过示例而非限制的方式,存储器装置150的后台操作包括将存储器装置150中的存储块152、154、156等之中的存储块中存储的数据复制和存储到另一存储块的操作,例如,垃圾回收(GC)操作。后台操作可包括将存储块152、154、156等中的至少一个存储块中存储的数据移动或交换到存储块152、154、156等中的至少另一个存储块中的操作,例如,损耗均衡(WL)操作。在后台操作期间,控制器130可以使用处理器134来将控制器130中存储的映射数据存储到存储器装置150中的存储块152、154、156等中的至少一个存储块中,例如,映射清除操作。检查或搜索存储块152、154、156等之中的坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。
在存储器***110中,控制器130执行与从主机102接收的多个命令相对应的多个命令操作。例如,当顺序地、随机地或可选地执行对应于多个编程命令的多个编程操作,对应于多个读取请求的多个读取操作以及对应于多个擦除命令的多个擦除操作时,控制器130可确定将控制器130连接到存储器装置150中包括的多个存储器管芯的多个通道(或通路)之中的哪个(哪些)通道或通路适于或适用于执行每个操作。控制器130可经由所确定的通道或通路来发送或传输数据或指令以执行每个操作。在每个操作完成之后,存储器装置150中包括的多个存储器管芯可分别经由相同的通道或通路来传输操作结果。然后,控制器130可以将响应或确认信号传输到主机102。在实施例中,控制器130可检查每个通道或每个通路的状态。响应于从主机102接收的命令,控制器130可以基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可以经由所选择的(多个)通道或(多个)通路来传递指令和/或操作结果与数据。
通过示例而非限制的方式,控制器130可识别关于与存储器装置150中的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路的状态确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一个。控制器确定通过哪个通道或通路传递指令(和/或数据)可与物理块地址,例如,指令(和/或数据)被传递到哪个(哪些)管芯相关联。控制器130可参考从存储器装置150传递的描述符。描述符可包括描述关于存储器装置150的相关信息的块参数或页面参数,描述符是具有设定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可参考或使用描述符以确定经由哪个(哪些)通道或通路来交换指令或数据。
管理单元(未示出)可以包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以找到存储器装置150中不符合进一步使用条件的坏存储块,并对坏存储块执行坏块管理。当存储器装置150是闪速存储器,例如NAND闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可以被编程到新存储块中。坏块可能使具有3D堆叠结构的存储器装置150的利用效率以及存储器***110的可靠性严重劣化。因此,可靠的坏块管理可以增强或提高存储器***110的性能。
参照图3,描述了根据本公开的另一实施例的存储器***中的控制器。控制器130与主机102和存储器装置150进行协作。如图所示,控制器130包括闪存转换层(FTL)40以及先前结合图2标识的主机接口132、存储器接口142和存储器144。
尽管未在图3中示出,但是根据实施例,参照图2描述的ECC组件138可以被包括在闪存转换层(FTL)40中。在另一实施例中,ECC组件138可以被实施为包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
主机接口132用于处置从主机102传输的命令、数据等。通过示例而非限制的方式,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且按照命令、数据等被存储的顺序将命令、数据等输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传输用于处理从缓冲器管理器52接收的命令、数据等的事件。
可以从主机102传输具有相同特性的多个命令或数据,例如读取命令或写入命令,或者可以在具有不同特性的命令和数据被主机102混合或混杂之后将具有不同特性的命令和数据传输到存储器***110。例如,可以传递用于读取数据的多个命令(读取请求),或者可以将用于读取数据的命令(读取请求)和用于编程/写入数据的命令(写入命令)交替地传输到存储器***110。主机接口132可以将从主机102传输的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已经从主机102接收的命令、数据等的特性来估计或预测控制器130将执行哪种内部操作。主机接口132可以至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。主机接口132中的缓冲器管理器52被配置为根据从主机102传输的命令、数据等的特性,确定缓冲器管理器是否应将命令、数据等存储在存储器144中,或者缓冲器管理器是否应将命令、数据等传递到闪存转换层(FTL)40中。事件队列54接收从缓冲器管理器52接收的事件,以便按照所接收的顺序将事件传递到闪存转换层(FTL)40中,事件将响应于从主机102传输的命令、数据等而由存储器***110或控制器130在内部运行和处理。
根据实施例,参照图3描述的主机接口132可以执行参照图1和图2描述的控制器130的一些功能。主机接口132可以将图6A所示的主机102中的主机存储器106设置为从设备,并且可以将主机存储器106添加为可由控制器130控制或使用的附加存储空间。
根据实施例,闪存转换层(FTL)40可包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可管理从事件队列54输入的事件。映射管理器(MM)44可处置或控制映射数据。状态管理器42可执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可对存储器装置150中的块运行命令或指令。
通过示例而非限制的方式,主机请求管理器(HRM)46可根据从主机接口132传递的读取命令和编程命令以及事件来使用映射管理器(MM)44和块管理器48处置或处理请求。主机请求管理器(HRM)46可向映射管理器(MM)44发送查询,以确定对应于与事件一起输入的逻辑地址的物理地址。主机请求管理器(HRM)46可将带有物理地址的读取请求发送到存储器接口142,以处理读取请求(处置事件)。另一方面,主机请求管理器(HRM)46可向块管理器48发送编程请求(写入请求),以将数据编程到存储器装置150中的特定空白页面(无数据),并且然后可将对应于编程请求的映射更新请求传输到映射管理器(MM)44,以在将逻辑-物理地址相互映射的信息中更新与编程数据有关的项目。
在此,块管理器48可将从主机请求管理器(HRM)46、映射管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器***110(参见图2)的编程或写入性能,块管理器48可以收集编程请求并且将用于多平面和单点触发(one-shot)编程操作的闪存编程请求发送到存储器接口142。在实施例中,块管理器48向存储器接口142发送若干闪存编程请求,以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定垃圾收集有必要时选择包括最小数量的有效页面的块。状态管理器42可执行垃圾收集以将有效数据移动到空白块,并且擦除包含所移动的有效数据的块,使得存储器装置150可以具有足够的空闲块(没有数据的空白块)。如果块管理器48将关于待擦除的块的信息提供给状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可识别记录在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可将页面的物理地址与从查询请求获得的映射到逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求发送到块管理器48。当编程操作完成时,可通过更新映射管理器44来更新映射表。
映射管理器44可管理逻辑-物理映射表。映射管理器44可处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求的同时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储器装置150中存储的映射表的相关部分。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可将编程请求发送到块管理器48,以便产生干净高速缓存块,并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器(HRM)46可针对页面的相同逻辑地址来编程最新版本的数据,并且当前发出更新请求。当状态管理器42在尚未完全复制(多个)有效页面的状态下请求映射更新时,映射管理器44可不执行映射表更新。这是因为,如果状态管理器42请求映射更新,并且稍后完成有效页面复制,则利用旧物理信息发出映射请求。只要最新的映射表仍然指向旧物理地址,映射管理器44就可以执行映射更新操作以保证准确性。
根据实施例,状态管理器42、映射管理器44和块管理器48中的至少一个可包括用于执行其自身操作的电路。如本公开中所使用的,术语“电路”是指以下中的任意和全部:(a)仅硬件电路的实施方案(诸如仅模拟和/或数字电路的实施方案);(b)电路和软件(和/或固件)的组合,诸如(如适用):(i)(多个)处理器的组合,或(ii)(多个)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的(多个)数字信号处理器、软件和(多个)存储器)的部分;以及(c)即使软件或固件物理上不存在也需要软件或固件来操作的电路,诸如(多个)微处理器或(多个)微处理器的一部分。“电路”的定义适用于该术语在本申请中的所有使用,包括在任意权利要求中的所有使用。作为另一示例,如在本申请中所使用的,术语“电路”还涵盖仅一个处理器(或多个处理器)或处理器的一部分以及一个处理器的(或多个处理器的)附带软件和/或固件的实施方案。例如,如果适用于特定的权利要求元素,则术语“电路”还涵盖用于存储装置的集成电路。
存储器装置150可包括多个存储块。根据在一个存储器单元中可存储或表示的位的数量,多个存储块可以是诸如单层单元(SLC)存储块、多层单元(MLC)存储块等的不同类型的存储块中的任意一种。在此,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可具有高数据I/O操作性能和高耐用性。MLC存储块包括由每个存储多位数据(例如,两位或更多位)的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块在相同的空间中可具有更大的存储容量。MLC存储块可在存储容量方面高度集成。在实施例中,存储器装置150可以利用诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合的MLC存储块来实施。双层单元存储块可以包括由每个能够存储两位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每个能够存储三位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每个能够存储四位数据的存储器单元实施的多个页面。在另一实施例中,可利用每个包括由存储器单元实施的多个页面的块来实施存储器装置150,每个存储器单元能够存储五位或更多位数据。
在本公开的实施例中,存储器装置150被实施为诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(STT-RAM)、自旋转移力矩磁性随机存取存储器(STT-MRAM)等中的至少一个来实施。
图4和图5示出主机中的存储器的一部分可用作存储存储器***中使用的元数据的高速缓存装置的配置。
参照图4,主机102可以包括处理器104、主机存储器106和主机控制器接口108。存储器***110可以包括控制器130和存储器装置150。在此,参照图4描述的控制器130和存储器装置150可以分别对应于先前描述的控制器130和存储器装置150。
因此,下文主要根据图4所示的控制器130和存储器装置150分别相对于图2至图3所示的控制器130和存储器装置150的技术差异来描述图4所示的控制器130和存储器装置150。特别地,控制器130中的逻辑块160可以对应于图3的闪存转换层(FTL)40。然而,根据实施例,与图3的闪存转换层(FTL)40相比,控制器130中的逻辑块160可以执行附加功能。
主机102可以包括性能比存储器***110更高的处理器104,以及能够比存储器***110存储更大量的数据的主机存储器106,其中存储器***110与主机102协作。在空间和可升级性方面,主机102中的处理器104和主机存储器106可分别优于存储器***110中的对应部件。例如,处理器104和主机存储器106可比存储器***110中的处理器134和存储器144具有更少的空间限制。处理器104和主机存储器106可以是可替换的,以升级该处理器104和该主机存储器106的性能,这与存储器***110中的处理器134和存储器144不同。在实施例中,存储器***110可利用主机102所具有的资源,以提高存储器***110的运行效率。
随着可存储在存储器***110中的数据的量增加,存储器***110中存储的相关元数据的量也增加。当用于将元数据加载在控制器130的存储器144中的存储能力有限或受限时,所加载的元数据的量的增加可能引起对控制器130的操作的操作负担。例如,由于控制器130的存储器144中为元数据分配的空间或区域的限制,可以加载一些而不是全部元数据。如果所加载的元数据不包括针对主机102意图访问的物理位置的特定元数据,则当所加载的元数据中的一些已经被更新时,控制器130将所加载的元数据存储回存储器装置150中,而且加载针对主机102意图访问的物理位置的特定元数据。这些操作应被执行以使控制器130执行由主机102指示的读取操作或写入操作,并且可能降低存储器***110的性能。
主机102中的主机存储器106的存储能力可以比控制器130中的存储器144的存储能力大几十倍或几百倍。存储器***110可以将控制器130所使用的元数据166传送到主机102中的主机存储器106,使得主机102中的主机存储器106的至少一部分可以由存储器***110访问。主机存储器106的可访问部分可用作用于在存储器***110中读取或写入数据的地址转换的高速缓存存储器。在这种情况下,在将逻辑地址与请求、命令或指令一起传输到存储器***110之前,主机102基于主机存储器106中存储的元数据166将逻辑地址转换为物理地址。然后,主机102可将所转换的物理地址与请求、命令或指令一起传输到存储器***110。与请求、命令或指令一起接收所转换的物理地址的存储器***110可以跳过将逻辑地址转换为物理地址的内部进程,并且基于所传送的物理地址来访问存储器装置150。在这种情况下,可以减少或消除控制器130从存储器装置150加载元数据以进行地址转换的开销(例如,操作负担),并且可提高存储器***110的操作效率。
另一方面,即使存储器***110将元数据166传输到主机102,存储器***110也可控制作为元数据166的参考的映射信息,诸如元数据生成、擦除、更新等。上传到主机102的元数据166可以是存储器装置150中存储的元数据中的至少一些。存储器***110中存储的映射信息可以由于存储器装置150的操作的结果而被更新。在实施例中,由于存储器装置150中存储的元数据的更新,可以更新元数据166。存储器***110中的控制器130可以根据存储器装置150的操作状态来执行诸如垃圾收集和损耗均衡的后台操作,并且可以确定物理地址,即从主机102传送的数据将存储在存储器装置150中的哪个物理位置。因为存储器装置150中存储的数据的物理地址可以被改变并且主机102还没有识别出所改变的物理地址,所以存储器***110可以主动地基于存储器***110中存储的元数据控制元数据166。
在存储器***110控制用于地址转换的元数据的同时,可确定存储器***110需要修改或更新先前传输到主机102的元数据166。存储器***110可向主机102发送信号或元数据,以请求更新主机102中存储的元数据166。主机102可以响应于从存储器***110传递的请求来更新主机存储器106中所存储的元数据166。这允许主机102中的主机存储器106中存储的元数据166保持为最新版本,从而,即使主机控制器接口108使用主机存储器106中存储的元数据166,将逻辑地址转换为物理地址并且将经转换的物理地址与逻辑地址一起传输到存储器***110也没有问题。
主机存储器106中存储的元数据166可以包括用于将逻辑地址转换为物理地址的映射信息。参照图4,将逻辑地址与物理地址相关联的元数据可以包括两个不同的项:第一映射信息,用于将逻辑地址转换为物理地址;以及第二映射信息,用于将物理地址转换为逻辑地址。其中,主机存储器106中存储的元数据166可以包括第一映射信息。第二映射信息可主要用于存储器***110的内部操作,而可以不用于由主机102请求的用于将数据存储在存储器***110中或从存储器***110读取对应于特定逻辑地址的数据的操作。根据实施例,存储器***110可以不将第二映射信息传输到主机102。
存储器***110中的控制器130可控制(例如,创建、删除、更新等)第一映射信息或第二映射信息,并且将第一映射信息或第二映射信息存储在存储器装置150中。由于主机102中的主机存储器106是一种易失性存储器,所以当诸如中断对主机102和存储器***110的电力供应的事件发生时,主机存储器106中存储的元数据166会消失。因此,存储器***110中的控制器130不仅可以保持主机102的主机存储器106中存储的元数据166的最新状态,而且也可以将第一映射信息或第二映射信息的最新状态存储在存储器装置150中。
参照图4和图5,描述了当元数据166存储在主机102的主机存储器106中时由主机102请求的读取存储器***110中存储的数据的操作。
将电力供应到主机102和存储器***110,并且然后主机102和存储器***110可操作地接合。当主机102与存储器***110协作时,存储器装置150中存储的元数据(L2P MAP)可被传送到主机存储器106。
当由主机102中的处理器104发出读取请求(Read REQ)时,该读取请求被传输到主机控制器接口108。在接收到读取请求之后,主机控制器接口108在主机存储器106中存储的元数据(L2P MAP)中搜索对应于逻辑地址的物理地址,其中该逻辑地址对应于读取请求。基于主机存储器106中存储的元数据(L2P MAP),主机控制器接口108可识别对应于逻辑地址的物理地址。主机控制器接口108针对与读取请求相关联的逻辑地址执行地址转换。
主机控制器接口108将读取请求(Read REQ)与逻辑地址以及物理地址一起传送到存储器***110的控制器130。控制器130可基于与读取请求一起接收的物理地址来访问存储器装置150。可响应于读取请求(Read REQ)将存储器装置150中对应于物理地址的位置处存储的数据传送到主机存储器106。
读取包括非易失性存储器的存储器装置150中存储的数据的操作可以比读取作为易失性存储器的主机存储器106等中存储的数据的操作花费更多的时间。在用于处置读取请求(Read REQ)的上述操作中,控制器130可以跳过或省略与从主机102接收的逻辑地址相对应的地址转换(例如,搜索并且识别与逻辑地址相关联的物理地址)。例如,在地址转换中,当控制器130不能在存储器144中找到用于地址转换的元数据时,控制器130可能不必从存储器装置150加载元数据或替换存储器144中存储的元数据。这允许存储器***110更快地执行由主机102请求的读取操作。
图6A示出根据本公开的实施例的数据处理***中的主机102和存储器***110之间的事务的第一示例。
参照图6A,存储映射信息(MAP INFO)的主机102可以将包括逻辑地址LBA和物理地址PBA的读取请求传输到存储器***110。当在主机102中存储的映射信息中找到对应于与读取请求(READ REQ)一起传输到存储器***110的逻辑地址LBA的物理地址PBA时,主机102可将带有逻辑地址LBA和物理地址PBA的读取请求(READ REQ)传输到存储器***110。然而,当在主机102存储的映射信息中没有找到对应于与读取请求(READ REQ)一起传输的逻辑地址LBA的物理地址PBA时,主机102可以将仅包括逻辑地址LBA而不包括物理地址PBA的读取请求(READ REQ)传输到存储器***110。
尽管图6A作为示例描述了响应于读取请求(READ REQ)的操作,但是本公开的实施例可以应用于主机102可以传送到存储器***110的写入命令或擦除命令。
图6B示出根据本公开的实施例的数据处理***中的主机和存储器***之间的事务的第二示例。
参照图6B,存储器***110可以将映射信息(MAP INFO)传送到主机102。存储器***110可以使用对主机102的命令的响应(RESPONSE)来传送映射信息(MAP INFO)。在此,该响应是在存储器***响应于来自主机102的命令而完全执行操作之后传输的一种消息或数据包(packet)。
更一般地,用于传输映射信息的响应可以采取任意合适的形式。例如,存储器***110可以通过使用对应于读取请求、写入命令或擦除命令的响应来将映射信息传输到主机102。
存储器***110和主机102可以以根据所使用的通信协议设置的特定格式来彼此交换命令或响应。例如,响应的格式可以包括基本标头(header)、根据从主机102接收的命令的成功或失败的结果或状态以及指示存储器***110的操作状态的附加信息。存储器***110可以将映射信息添加或***到响应的格式中,以将映射信息传输到主机102。
图7A示出根据本公开的实施例的主机和存储器***的第一操作。具体地,图7A示出由例如图6A的主机102的主机执行的将包括逻辑地址LBA和物理地址PBA的命令传送到接收命令的例如图6A的存储器***110的存储器***的详细操作。
参照图7A,在812中,主机可以生成包括逻辑地址LBA的命令(COMMAND)。然后,在814中,主机可以检查映射信息中是否包括对应于逻辑地址LBA的物理地址PBA。当映射信息中不包括物理地址PBA(814中为“否”)时,在818中,主机可以发送包括逻辑地址LBA的命令。
当映射信息中包括物理地址PBA(814中为“是”)时,在816中,主机可以将物理地址PBA添加到包括逻辑地址LBA的命令。在818中,主机可以发送包括逻辑地址LBA和物理地址PBA的命令。
在822中,存储器***可以接收从例如主机的外部组件传送的命令。在824中,存储器***可以检查所接收的命令中是否包括物理地址PBA。当所接收的命令中不包括物理地址PBA(824中为“否”)时,在832中,存储器***可以搜索与所接收的命令中包括的逻辑地址相对应的物理地址。
当所接收的命令中包括物理地址PBA(824中为“是”)时,在826中,存储器***可以检查物理地址PBA是否有效。存储器***可以将映射信息传送到主机,并且主机可以通过基于由存储器***传送的映射信息执行映射来将物理地址PBA包括在命令中,并传送带有物理地址PBA的命令。然而,在存储器***将映射信息传送到主机之后,可以改变和更新由存储器***管理的映射信息。当映射信息处于脏状态时,由主机传送的物理地址PBA不能按原样使用。因此,存储器***可以确定所接收的命令中包括的物理地址PBA是否有效。当所接收的命令中包括的物理地址PBA有效(826中为“是”)时,在830中,存储器***可以使用物理地址PBA来执行对应于该命令的操作。
当所接收的命令中包括的物理地址PBA无效(826中为“否”)时,在828中,存储器***可以丢弃所接收的命令中包括的物理地址PBA。在这种情况下,在832中,存储器***可以基于所接收的命令中包括的逻辑地址LBA来搜索物理地址PBA。
图7B示出根据实施例的主机和存储器***的第二操作。具体地,图7B示出在主机控制模式下主机102从存储器***110请求映射信息并且存储器***110响应于主机102的请求发送映射信息的进程。
参照图7B,主机102可能需要或能够容纳映射信息。例如,当主机102可在其中分配能够存储映射信息的空间或者期望存储器***110响应于命令以更高的速度输入/输出数据时,主机102可以接收映射信息。此外,即使根据用户的请求,主机102也可能需要映射信息。
主机102可以从存储器***110请求映射信息,并且存储器***110可以响应于主机102的请求准备映射信息。例如,主机102可以向存储器***110发送读取缓冲器命令,以便请求映射信息。
根据实施例,主机102可以从存储器***110请求特定映射信息。根据另一实施例,主机102可以仅从存储器***110请求映射信息,并且存储器***110可以决定要提供哪些映射信息。
存储器***110可以将准备好的映射信息传送到主机102。主机102可以将从存储器***110传送的映射信息存储在其内部存储空间(例如,参照图4和图5描述的主机存储器106)中。
主机102可以使用其中所存储的映射信息将物理地址PBA包括在待发送到存储器***110的命令中,并且传送带有物理地址PBA的命令COMMAND。存储器***110可以使用命令中包括的物理地址PBA执行相应的操作。
图7C示出根据实施例的主机和存储器***的第三操作。具体地,图7C示出在装置控制模式下存储器***110请求主机102读取映射信息并且主机102响应于存储器***110的请求接收映射信息的进程。
参照图7C,存储器***110可以通知主机102存储器***110将向主机102发送映射信息,或者请求主机102向存储器***110发送针对映射信息的读取请求。响应于与从存储器***110发送的映射信息有关的通知,主机102可以检查其中是否可存储映射信息。当主机102可接收从存储器***110发送的映射信息时,主机102可以允许存储器***110发送映射信息。例如,主机102可以向存储器***110发送读取缓冲器命令,以允许存储器***110发送映射信息。
存储器***110可以准备待发送到主机102的映射信息,然后将映射信息发送到主机102。
然后,主机102可以将所接收的映射信息存储在内部存储空间(例如,参照图4描述的主机存储器106)中。主机102可以基于所存储的映射信息来执行映射,然后将物理地址PBA包括在待发送到存储器***110的命令中。
存储器***110可以检查从主机102传送的命令中是否包括物理地址PBA,并且使用物理地址PBA执行对应于该命令的操作。
关于映射信息的发送,尽管如参照图7B所描述的,主机102可以在主机102和存储器***110的操作中起主导作用,但是如参照图7C所描述的,存储器***110也可以在主机102和存储器***110的操作中起主导作用。根据实施例,存储器***110和主机102可以根据操作环境选择性地使用参照图7B和图7C所描述的用于发送映射信息的方法。
图7D示出根据实施例的主机和存储器***的第四操作。具体地,图7D示出当主机和存储器***互连时存储器***意图向主机发送映射信息的情况。
参照图7D,在862中,存储器***可以检查对应于从主机传送的命令的操作是否已经完成。存储器***可以在对应于命令的操作已经完成之后,发送包括关于对应于从主机传送的命令的操作是否已经完成(是成功还是失败)的信息的响应(RESPONSE)。
根据实施例,该响应可以进一步包括参照图7B和图7C描述的通知和/或请求。根据实施例,该响应可以包括存储器***将发送到主机的映射信息。对于此操作,在已经完成对应于命令的操作之后,在864中,存储器***可以在传输对应于该命令的响应之前,检查是否具有待发送到主机的映射信息。当不具有待发送到主机的映射信息(864中为“否”)时,在866中,存储器***可以发送包括关于对应于从主机传送的命令的操作是否已经完成的信息的响应。
当存储器***具有待发送到主机的映射信息(864中为“是”)时,在868中,存储器***可以检查是否已通知主机存储器***将发送映射信息。该通知(NOTICE)可以类似于参照图7C描述的通知。当尚未向主机发出这种预先通知(868中为“否”)时,在870中,即使存储器***意图发送映射信息,存储器***也可以将通知添加在响应中,并且将该响应传送给主机。
当已通知主机存储器***将向主机发送映射信息(868中为“是”)时,在872中,存储器***可以将映射信息添加到响应。然后,在874中,存储器***可以发送包括映射信息的响应。
在842中,主机可以接收从存储器***发送的响应、带有通知的响应(RESPONSEWITH NOTICE)和带有映射信息的响应(RESPOSNE WITH MAP INFO)中的一个或多个。
在844中,主机可以检查所接收的响应中是否包括通知。当所接收的响应中包括通知(844中为“是”)时,在846中,主机可以准备接收并且存储可以顺序地传送的映射信息。然后,在852中,主机可以检查对应于先前命令的响应。例如,主机可以检查响应以确认先前命令是已经成功还是已经失败。
当所接收的响应中不包括通知(844中为“否”)时,在848中,主机可以检查响应中是否包括映射信息。当响应中不包括映射信息(848中为“否”)时,在852中,主机可以检查对应于先前命令的响应。
当所接收的响应中包括映射信息(848中为“是”)时,在850中,主机可以将响应中包括的映射信息存储在其内部存储空间中,或者更新所存储的映射信息。然后,在852中,主机可以检查对应于先前命令的响应。
此外,主机102可以向存储器***110发送读取缓冲器命令,以便从存储器***读取映射信息。
图8是示出根据实施例的存储器***管理主机的存储区域的方法的流程图。
根据实施例的存储器***(图4的110)可以包括非易失性存储器装置(图4和图5的150)以及控制器(图4和图5的130),该非易失性存储器装置存储用户数据和用户数据的元数据,该控制器将元数据中的至少一些上传到主机(图4的102)。
在将元数据上传到主机之后,在操作S1000中,根据实施例的存储器***确定主机存储器(图4和图5的106)中的空闲空间,即其中没有存储数据的空间是否不足。主机存储器可以指示在主机的存储空间之中分配了哪些空间(如果有的话)来存储元数据。元数据可以是存储器装置的物理地址与主机所使用的逻辑地址匹配的映射信息。
在实施例中,主机存储器具有足够的空闲空间的情况被称为第一模式,而主机存储器具有不足的空闲空间的情况被称为第二模式。
根据实施例,存储器***可以将主机存储器中的空闲空间的大小与设定值进行比较,以便确定主机存储器是处于第一模式还是处于第二模式。即,当空闲空间的大小大于设定值时,存储器***可以确定主机存储器处于第一模式。相反地,当空闲空间的大小等于或小于设定值时,存储器***可以确定主机存储器处于第二模式。设定值可以是特定存储大小或主机存储器的空闲空间与整个空间的特定比率。根据实施例,可以设置设定值以确定主机存储器是否已满。当主机存储器已满时,其可以指示主机存储器没有空闲空间,而当主机存储器未满时,其可以指示主机存储器具有空闲空间。因此,设定值可以等于或大于“0”。
当主机存储器的空闲空间足够(S1000中为“否”)时,在操作S2000(第一模式)中,存储器***可以将与来自主机的读取请求相对应的用户数据的映射信息上传到主机。
当主机存储器的空闲空间不足(S1000中为“是”)时,在操作S3000(第二模式)中,存储器***可以基于正常读取计数N_RD_CNT和正常读取计数N_RD_CNT与总读取计数的比率将热映射信息上传到主机。
对于该操作,存储器***可以管理指示主机做出读取请求的次数的读取计数RD_CNT。读取计数RD_CNT可以是正常读取计数N_RD_CNT和主机感知性能增强器(HPB:Host-aware Performance Booster)读取计数H_RD_CNT的总数。可以基于读取请求本身的特性来确定接收到这两种类型的读取请求RD_REQ中的哪一种。
正常读取计数N_RD_CNT指示接收到仅包括逻辑地址而不包括物理地址的正常读取请求N_RD_REQ的次数。HPB读取计数H_RD_CNT指示接收到包括逻辑地址和对应于该逻辑地址的物理地址的HPB读取请求H_RD_REQ的次数。热映射信息指示读取计数RD_CNT相对较高的映射信息,而冷映射信息指示读取计数RD_CNT相对较低的映射信息。
此外,实施例中的正常读取计数N_RD_CNT的比率指示在确定主机存储器的空闲空间不足之后正常读取计数N_RD_CNT与总读取计数的比率,该总读取计数指示N_RD_CNT和H_RD_CNT的总数。特别地,在以下描述中,将正常读取计数N_RD_CNT与总读取计数的比率等于或大于阈值的情况以及HPB读取计数H_RD_CNT与总读取计数的比率小于阈值的情况确定为相同情况。
即,在主机存储器的空闲空间不足的同时,当所接收的正常读取请求的数量等于或大于参考值,并且所接收的正常读取请求与所有读取请求的比率等于或大于阈值时,参照图8描述的存储器***确定主机中存储的当前映射信息是冷映射信息,并且将热映射信息上传到主机以替换冷映射信息。
因此,由于在主机中在热映射信息替换冷映射信息之后接收的读取请求很可能是HPB读取请求H_RD_REQ,因此存储器***可以执行读取操作而无需执行L2P转换操作。
图9示出在第二模式下存储器***管理主机的存储区域的方法。
当在操作S100中从主机接收到读取请求RD_REQ时,在操作S110中,存储器***确定主机存储器的空闲空间是否不足。
存储器***可以基于主机存储器的存储空间和上传信息来确定主机存储器的空闲空间是否不足。映射信息(即,元数据或映射数据)的每个条目的上传信息可以指示映射信息的相应条目已经被上传到主机。参照图11A至图11E更详细地描述上传信息。例如,当主机存储器的存储空间的大小能够存储5条映射信息,基于上传信息而上传到主机的映射信息的条数为4,并且设定值对应于1条映射信息的大小时,空闲空间的大小等于或小于该设定值。因此,存储器***可以确定主机存储器的空闲空间不足。
当主机存储器的空闲空间足够(S110中为“否”,第一模式)时,在操作S115中,存储器***响应于读取请求RD_REQ执行读取操作,并且通过将正常读取计数N_RD_CNT增加1来更新正常读取计数N_RD_CNT。
当主机存储器的空闲空间不足(S110中为“是”,第二模式)时,在操作S120中,存储器***确定在操作S100中接收的读取请求RD_REQ是否是正常读取请求N_RD_REQ。
当所接收的读取请求RD_REQ不是正常读取请求N_RD_REQ(S120中为“否”)时,存储器***确定所接收的读取请求RD_REQ为HPB读取请求H_RD_REQ。因此,在操作S140中,存储器***响应于HPB读取请求H_RD_REQ执行读取操作,并且通过将HPB读取计数H_RD_CNT增加1来更新HPB读取计数H_RD_CNT。当所接收的读取请求RD_REQ是正常读取请求N_RD_REQ时,在操作S150中,存储器***响应于正常读取请求N_RD_REQ执行读取操作,并且通过将正常读取计数N_RD_CNT增加1来更新正常读取计数N_RD_CNT。
然后,在操作S160中,存储器***确定正常读取计数N_RD_CNT是否等于或大于参考值。当正常读取计数N_RD_CNT小于参考值(S160中为“否”)时,存储器***返回到操作S100,并且执行随后的操作。当正常读取计数N_RD_CNT等于或大于参考值(S160中为“是”)时,在操作S180中,存储器***确定正常读取计数N_RD_CNT与正常读取计数N_RD_CNT和HPB读取计数H_RD_CNT的总数的比率是否等于或大于阈值。
当正常读取计数N_RD_CNT等于或大于参考值(S160中为“是”)并且正常读取计数N_RD_CNT与总读取计数的比率等于或大于阈值(S180中为“是”)时,存储器***可以确定主机中当前存储的映射信息是冷映射信息。即,由于针对频繁请求读取的数据的物理地址通常不在主机存储器中当前存储的元数据或映射信息中,因此存储器***可以确定所接收的读取请求大部分是不包括物理地址的正常读取请求。
因此,在操作S200中,存储器***重置主机存储器中当前存储的映射信息的上传信息,以便将热映射信息上传到主机。当上传信息被重置时,存储器***可以确定主机存储器的整个存储空间是空闲区域。存储器***可以将与主机存储器的存储空间相对应的热映射信息上传到主机。
在操作S200之后,在操作S220中,存储器***可以重置正常读取计数N_RD_CNT和HPB读取计数H_RD_CNT。
另一方面,当正常读取计数N_RD_CNT等于或大于参考值(S160中为“是”),但是正常读取计数N_RD_CNT与总读取计数的比率小于阈值(S180中为“否”)时,存储器***可以确定主机中当前存储的映射信息是热映射信息。因此,主机存储器中当前存储的映射信息不需要被另一映射信息替换。
根据实施例,可以存在多个阈值,即,第一阈值和大于第一阈值的第二阈值。当正常读取计数N_RD_CNT与总读取计数的比率等于或大于第一阈值时,在操作S200中,具有仅替换主机存储器中当前存储的多条映射信息之中的冷映射信息的大小的热映射信息可以被上传到主机。当正常读取计数N_RD_CNT与总读取计数的比率等于或大于第二阈值时,在操作S200中,具有替换主机存储器中当前存储的全部映射信息的大小的热映射信息可以被上传到主机。
图10示出在图9的操作S200中重置上传信息之后存储器***将热映射信息上传到主机的进程。
首先,在操作S250中,存储器***110可以向主机102发送用于更新主机102中存储的映射信息的请求的通知。
然后,当主机102准备好从存储器***110接收新的映射信息时,在操作S270中,主机102向存储器***110发送读取缓冲器命令,以便从存储器***110读取映射信息。
在操作S280中,响应于从主机102接收的读取缓冲器命令,存储器***110准备待上传到主机102的映射信息。可以基于读取计数RD_CNT来选择待上传到主机102的映射信息。然后,在操作S290中,存储器***110将热映射信息发送到主机102,并且在操作S300中,主机102将热映射信息存储在主机存储器中。然后,在操作S310中,存储器***110更新在图9的操作S200中重置的映射信息的上传信息。
然后,参照图9、图10和图11A至图11E,详细描述根据实施例的存储器***管理主机存储器的操作。
具体地,下文的描述基于以下假设:主机存储器具有能够存储5条映射信息的存储空间,参考值REF为“15”,并且阈值TH为“80%”。
参照图11A,控制器(图4和图5的130)中包括的存储器(图4和图5的144)存储包括逻辑地址LBA00至LBA09和与LBA00至LBA09相对应的物理地址的映射信息MAP INFO。上传到主机的包括逻辑地址LBA00至LBA04的MAP INFO的每个条目的上传信息UPLOAD具有状态值“1”,并且没有被上传到主机的包括逻辑地址LBA05至LBA09的MAP INFO的每个条目的上传信息UPLOAD具有状态值“0”。
此外,主机(图4的102)中包括的主机存储器(图4和图5的106)存储上传的包括逻辑地址LBA00至LBA04和与逻辑地址LBA00至LBA04相对应的物理地址的映射信息MAP INFO的条目。主机存储器存储对应于五个逻辑地址LBA00至LBA04的映射信息,因此没有空闲空间(“已满”状态,第二模式)。
控制器响应于从主机接收的多个读取请求来执行读取操作,直到正常读取计数N_RD_CNT变为参考值并且正常读取计数N_RD_CNT与总读取计数的比率变为阈值或更大。
如图11B所示,当在主机存储器变为“已满”之后接收的20个读取请求RD_REQ00至RD_REQ19之中的正常读取请求的正常读取计数N_RD_CNT变为大于参考值15的17,并且正常读取计数N_RD_CNT与总读取计数的比率变为大于阈值80%的85%时,控制器可以确定上传到主机的映射信息为冷映射信息。即,存储器***可以确定所接收的大多数读取请求是不包括物理地址的正常读取请求,因为针对频繁请求读取的数据的物理地址通常不包括在主机存储器中当前存储的元数据或映射信息中。
因此,如图11C所示,控制器将主机存储器中当前存储的映射信息的上传信息重置为“0”,以便将热映射信息上传到主机。当上传信息被重置时,控制器可以确定主机存储器的全部存储空间是空闲区域。控制器可以将与主机存储器的存储空间相对应的热映射信息上传到主机。
然后,控制器基于读取计数RD_CNT决定热映射信息。
即,如图11D所示,控制器可以确定具有相对较高的读取计数RD_CNT的逻辑地址LBA04至LBA08的映射信息是热映射信息。
控制器可以确定具有相对较低的读取计数RD_CNT的逻辑地址LBA00至LBA03和LBA09的映射信息是冷映射信息。
如图11D所示,控制器将热映射信息LBA04至LBA08上传到主机,并且主机将热映射信息存储在主机存储器中。然后,如图11E所示,控制器将在图11C中被重置为“0”的映射信息的上传信息UPLOAD的状态值更新为“1”。
如上所述,因为将主机存储器106用作用于存储映射信息的缓冲存储器,因此可以省略由于存储器***110内的存储器144的存储空间的限制而从存储器装置150读取映射信息并且再次存储所读取的映射信息的进程。通过该操作,可以提高存储器***110的操作效率。
此外,根据实施例的存储器***110可以将主机102中的主机存储器106的一些或一部分用作高速缓存或缓冲器,并且将元数据存储在主机存储器106的该部分中,从而克服了存储器***110内的控制器130所使用的存储器144的存储空间限制。
尽管已经示出和描述了各个实施例,但是鉴于本公开,对于本领域技术人员将显而易见的是,在不脱离所附权利要求书所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (21)

1.一种存储器***,包括:
非易失性存储器装置,存储用户数据和所述用户数据的元数据;以及
控制器,将所述元数据中的至少一些上传到主机,
其中当所述主机内被分配以存储所上传的元数据的存储空间的空闲空间的大小等于或小于设定值时,所述控制器根据从所述主机接收的正常读取请求的数量和所接收的正常读取请求与所接收的所有读取请求的比率将热元数据上传到所述主机。
2.根据权利要求1所述的存储器***,其中所述正常读取请求是不带有物理地址的读取请求。
3.根据权利要求1所述的存储器***,其中当所述空闲空间的大小等于或小于所述设定值时,所述控制器管理指示所述主机做出对特定逻辑地址的读取请求的次数的读取计数。
4.根据权利要求3所述的存储器***,其中所述控制器基于所述读取计数来选择所述热元数据。
5.根据权利要求3所述的存储器***,其中所述读取计数包括针对所述正常读取请求的正常读取计数和针对主机感知性能增强器读取请求即HPB读取请求的HPB读取计数,所述HPB读取请求中的每一个包括物理地址。
6.根据权利要求1所述的存储器***,其中所述控制器重置关于上传到所述主机的所述元数据中的至少一些的上传信息,以将所述热元数据上传到所述主机。
7.根据权利要求4所述的存储器***,其中当所述正常读取请求与所有读取请求的比率等于或大于第一阈值时,所述控制器向所述主机上传所述热元数据以替换所上传的元数据之中的冷元数据。
8.根据权利要求7所述的存储器***,其中当所述正常读取请求与所有读取请求的比率等于或大于第二阈值时,所述控制器向所述主机上传所述热元数据以替换所有先前上传的元数据,所述第二阈值大于所述第一阈值。
9.根据权利要求1所述的存储器***,其中所述元数据包括映射信息,所述映射信息包括由所述主机使用的逻辑地址和与所述逻辑地址相对应的所述存储器装置的物理地址。
10.根据权利要求1所述的存储器***,其中所述设定值等于或大于0。
11.一种存储器***的操作方法,所述存储器***包括非易失性存储器装置以及控制器,所述非易失性存储器装置存储用户数据和所述用户数据的元数据,所述控制器将所述元数据中的至少一些上传到主机,所述操作方法包括:
确定所述主机中被分配以存储所上传的元数据的存储空间的空闲空间的大小是否等于或小于设定值;并且
当所述空闲空间的大小等于或小于所述设定值时,根据从所述主机接收的正常读取请求的数量和所述正常读取请求与所有读取请求的比率将热元数据上传到所述主机。
12.根据权利要求11所述的操作方法,其中所述正常读取请求是不带有物理地址的读取请求。
13.根据权利要求11所述的操作方法,其中将热元数据上传到所述主机包括:管理指示所述主机做出对特定逻辑地址的读取请求的次数的读取计数。
14.根据权利要求13所述的操作方法,其中将热元数据上传到所述主机包括:基于所述读取计数来选择所述热元数据。
15.根据权利要求13所述的操作方法,其中所述读取计数包括针对所述正常读取请求的正常读取计数和针对主机感知性能增强器读取请求即HPB读取请求的HPB读取计数,所述HPB读取请求中的每一个包括物理地址。
16.根据权利要求11所述的操作方法,其中将热元数据上传到所述主机包括:重置关于上传到所述主机的所述元数据中的至少一些的上传信息。
17.根据权利要求14所述的操作方法,其中将热元数据上传到所述主机包括:当所述正常读取请求与所有读取请求的比率等于或大于第一阈值时,向所述主机上传所述热元数据以替换所上传的元数据之中的冷元数据。
18.根据权利要求17所述的操作方法,其中将热元数据上传到所述主机包括:当所述正常读取请求与所有读取请求的比率等于或大于第二阈值时,向所述主机上传所述热元数据以替换所有先前上传的元数据,所述第二阈值大于所述第一阈值。
19.根据权利要求11所述的操作方法,其中所述元数据包括映射信息,所述映射信息包括由所述主机使用的逻辑地址和与所述逻辑地址相对应的所述存储器装置的物理地址。
20.根据权利要求11所述的操作方法,其中所述设定值等于或大于0。
21.一种***,包括:
存储器装置,存储逻辑地址和相应的物理地址之间的装置映射数据;
控制器,响应于第一类型请求和第二类型请求控制所述存储器装置执行操作,每个所述第一类型请求包括逻辑地址和相应的物理地址,每个所述第二类型请求包括逻辑地址而不包括物理地址;以及
主机,根据主机映射数据向所述控制器提供所述第一类型请求和所述第二类型请求,
其中所述控制器进一步:
向所述主机提供所述装置映射数据中的至少第一部分作为所述主机映射数据;并且
当所述第二类型请求的数量大于第一阈值并且所述第二类型请求的数量与所述第一类型请求和所述第二类型请求的总数的比率大于第二阈值时,控制所述主机以利用所述装置映射数据中的至少第二部分替换所述主机映射数据中的至少一些。
CN202110395756.0A 2020-06-22 2021-04-13 存储器***及其操作方法 Withdrawn CN113900586A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200075432A KR20210157537A (ko) 2020-06-22 2020-06-22 메모리 시스템 및 그의 동작 방법
KR10-2020-0075432 2020-06-22

Publications (1)

Publication Number Publication Date
CN113900586A true CN113900586A (zh) 2022-01-07

Family

ID=79022511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110395756.0A Withdrawn CN113900586A (zh) 2020-06-22 2021-04-13 存储器***及其操作方法

Country Status (3)

Country Link
US (1) US11675527B2 (zh)
KR (1) KR20210157537A (zh)
CN (1) CN113900586A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088770A (zh) * 2023-03-20 2023-05-09 苏州浪潮智能科技有限公司 数据管理方法及装置、***、电子设备、存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961140B (zh) 2020-07-02 2024-06-11 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
CN113885779B (zh) * 2020-07-02 2024-03-12 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
CN113885778B (zh) 2020-07-02 2024-03-08 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
US11698752B2 (en) * 2020-12-03 2023-07-11 Micron Tehcnology, Inc. Retransmitting messages based on command queue depth in a memory subsystem
KR20230048769A (ko) * 2021-10-05 2023-04-12 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US20230221888A1 (en) * 2022-01-10 2023-07-13 Western Digital Technologies, Inc. Data Storage Device and Method for Memory-Die-State-Aware Host Command Submission

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150067258A1 (en) * 2013-08-28 2015-03-05 Samsung Electronics Co., Ltd. Cache management apparatus of hybrid cache-based memory system and the hybrid cache-based memory system
CN105739914A (zh) * 2014-12-19 2016-07-06 爱思开海力士有限公司 数据处理***及其操作方法
CN107368436A (zh) * 2017-06-29 2017-11-21 西安交通大学 一种联合地址映射表的闪存冷热数据分离存储方法
CN109783008A (zh) * 2017-11-13 2019-05-21 爱思开海力士有限公司 数据存储装置及其操作方法
WO2019209707A1 (en) * 2018-04-23 2019-10-31 Micron Technology, Inc. Host logical-to-physical information refresh
CN110928485A (zh) * 2018-09-20 2020-03-27 爱思开海力士有限公司 存储器***及其操作方法
US20200133571A1 (en) * 2018-10-31 2020-04-30 Samsung Electronics Co., Ltd. Method of operating storage device, storage device performing the same and method of operating storage system using the same

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200122086A (ko) 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치
KR20210027642A (ko) 2019-08-30 2021-03-11 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 방법 및 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150067258A1 (en) * 2013-08-28 2015-03-05 Samsung Electronics Co., Ltd. Cache management apparatus of hybrid cache-based memory system and the hybrid cache-based memory system
CN105739914A (zh) * 2014-12-19 2016-07-06 爱思开海力士有限公司 数据处理***及其操作方法
CN107368436A (zh) * 2017-06-29 2017-11-21 西安交通大学 一种联合地址映射表的闪存冷热数据分离存储方法
CN109783008A (zh) * 2017-11-13 2019-05-21 爱思开海力士有限公司 数据存储装置及其操作方法
WO2019209707A1 (en) * 2018-04-23 2019-10-31 Micron Technology, Inc. Host logical-to-physical information refresh
CN110928485A (zh) * 2018-09-20 2020-03-27 爱思开海力士有限公司 存储器***及其操作方法
US20200133571A1 (en) * 2018-10-31 2020-04-30 Samsung Electronics Co., Ltd. Method of operating storage device, storage device performing the same and method of operating storage system using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088770A (zh) * 2023-03-20 2023-05-09 苏州浪潮智能科技有限公司 数据管理方法及装置、***、电子设备、存储介质

Also Published As

Publication number Publication date
US11675527B2 (en) 2023-06-13
US20210397365A1 (en) 2021-12-23
KR20210157537A (ko) 2021-12-29

Similar Documents

Publication Publication Date Title
US11675527B2 (en) Memory system uploading hot metadata to a host based on free space size of a host memory, and read operation method thereof
KR20210027642A (ko) 메모리 시스템에서 맵 정보를 전송하는 방법 및 장치
US11150822B2 (en) Memory system for determining usage of a buffer based on I/O throughput and operation method thereof
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
CN111581121B (zh) 用于管理存储器***中的映射数据的方法和设备
US11526438B2 (en) Memory system capable of increasing storage efficiency and operation method thereof
CN112148632A (zh) 用于改善存储器***的输入/输出吞吐量的设备和方法
US11681633B2 (en) Apparatus and method for managing meta data in memory system
US11354250B2 (en) Apparatus for transmitting map information in memory system
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
CN110781097A (zh) 用于控制元数据以接合多个存储器***的设备和方法
CN111752474A (zh) 控制存储器***的写入操作的设备和方法
US11822426B2 (en) Memory system, data processing system and operation method of the same
CN110806983B (zh) 存储器***及其操作方法
US20200250104A1 (en) Apparatus and method for transmitting map information in a memory system
CN111752467A (zh) 传送存储器***中的垃圾收集状态信息的设备和方法
US11354051B2 (en) Memory system for efficiently managing memory block and operating method thereof
US11275682B2 (en) Memory system and method for performing command operation by memory system
US20200327064A1 (en) Memory system, method of operating the same and data processing system
CN113050881A (zh) 提高存储器***输入/输出吞吐量的设备和方法
CN111857565A (zh) 存储器***、数据处理***及其操作方法
US11960411B2 (en) Apparatus for transmitting map information in memory system
US11348646B2 (en) Apparatus and method for managing program operation time and write latency in memory system
KR20210063814A (ko) 메모리 시스템의 리드 동작 방법 및 장치
CN112015670A (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: 20220107