CN111581122A - 用于管理存储器***中的映射数据的方法和设备 - Google Patents
用于管理存储器***中的映射数据的方法和设备 Download PDFInfo
- Publication number
- CN111581122A CN111581122A CN201911288108.4A CN201911288108A CN111581122A CN 111581122 A CN111581122 A CN 111581122A CN 201911288108 A CN201911288108 A CN 201911288108A CN 111581122 A CN111581122 A CN 111581122A
- Authority
- CN
- China
- Prior art keywords
- memory
- host
- controller
- physical address
- memory system
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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 physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
Abstract
本公开涉及一种存储器***,该存储器***包括:存储器装置,包括多个存储器元件,并且适用于存储L2P映射数据;以及控制器,适用于通过存储L2P映射数据的至少一部分和L2P映射数据的状态信息来控制存储器装置,其中控制器确定与取消映射请求一起从外部装置接收的第一物理地址的有效性,并对有效的第一物理地址执行取消映射操作。
Description
相关申请的交叉引用
本申请要求于2019年2月19日向韩国知识产权局提交的申请号为10-2019-0018972的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
各个实施例涉及一种存储器***和包括该存储器***的数据处理装置,并且更特别地,涉及一种用于管理存储器***中的映射数据的方法和设备。
背景技术
近来,计算环境的范式已经变为使得计算机***被随时随地访问的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在迅速增加。这些便携式电子装置通常使用或包括存储器***,该存储器***使用或嵌入至少一个存储器装置,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,由于不具有机械驱动部件(例如,机械臂),因此具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这样的优点的存储器***的环境中,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,可以使与写入请求一起从主机接收的物理地址无效,而无需搜索映射数据,从而不仅提高了与写入操作有关的存储器***的内部操作的执行速度,而且还提高了无效数据管理的便利性。
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,其中该存储器***可以仅向主机上载主机请求读取的数据的映射数据,从而减少了由于不必要的映射上载/下载所导致的存储器***与主机之间的数据通信的开销。
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,可以通过改变与存储器***中的物理地址对应的状态信息来使与写入请求一起从主机接收的物理地址无效,从而提高了写入操作的执行速度并增加了无效数据管理的便利性。
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,可以减少存储器***的开销、提高存储器***的使用寿命并提高取消映射操作的执行速度。
由于在执行与从主机传送的取消映射请求UNMAP REQ相关的取消映射操作时,根据本发明的各个实施例的存储器***、数据处理***以及用于操作存储器***和数据处理***的方法不从存储器装置下载映射数据,因此提供了可以减少存储器***的开销、提高存储器***的使用寿命并提高取消映射操作的执行速度的存储器***、数据处理***以及用于驱动存储器***和数据处理***的方法。
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,当执行取消映射操作时,在物理地址是有效物理地址的情况下,可以确定从主机接收的物理地址的有效性,并使相应的映射数据无效,而无需单独搜索映射数据,从而提高了取消映射操作的执行速度并提高了无效数据管理的便利性
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,可以减少包括与从主机传送的有效物理地址对应的存储器元件的存储块的有效页面的数量,或者存储器组的有效存储元件的数量,对有效页面数量小于预定值的存储块执行垃圾收集操作,并且在取消映射操作期间对没有有效页面的存储块执行擦除操作,从而更有效地执行后台操作。
本发明的各个实施例涉及一种存储器***、一种数据处理***以及一种用于驱动存储器***和数据处理***的方法,因为存储器***,而非主机具有与取消映射请求一起接收的物理地址的管理权限,因此可以通过改变和利用现有接口来实现,而无需添加单独的硬件配置或资源,无需改变主机与存储器***之间的接口。
由于根据本发明的各个实施例的存储器***、数据处理***以及用于操作存储器***和数据处理***的方法对与取消映射请求UNMAP REQ一起接收的物理地址之中的有效物理地址执行取消映射操作,因此可以确保包括期望直接控制存储器***的主机的数据处理***的可靠性。
根据本发明的实施例,一种存储器***包括:存储器装置,包括多个存储器元件,并且适用于存储L2P映射数据;以及控制器,适用于:通过存储L2P映射数据的至少一部分和L2P映射数据的状态信息来控制存储器装置,确定与外部装置的取消映射请求一起接收的第一物理地址的有效性,并在确定有效时,对第一物理地址执行取消映射操作。
取消映射操作可以包括改变与有效的第一物理地址或映射到有效的第一物理地址的逻辑地址对应的状态信息的值,以使有效的第一物理地址无效。状态信息可以包括无效的地址信息、脏信息和取消映射信息。在执行取消映射操作之后,控制器可以减少与第一物理地址对应的存储块的有效页面的数量的计数。控制器可以对有效页面的数量小于设置数量的的存储块执行垃圾收集操作。控制器可以对没有有效页面的存储块执行擦除操作。取消映射请求可以包括丢弃命令和擦除命令。控制器可以使用状态信息来确定第一物理地址的有效性。当第一物理地址不是有效的时,控制器可以在L2P映射数据中搜索与从外部装置接收的逻辑地址对应的有效的第二物理地址,并且可以对在搜索中找到的有效的第二物理地址执行取消映射操作。存储在控制器中的L2P映射数据可以包括基于L2P映射数据的加密生成的第一验证信息和基于L2P映射数据的更新版本生成的第二验证信息。控制器可以使用第一验证信息或第二验证信息来确定第一物理地址的有效性。
根据本发明的实施例,一种数据处理***包括:存储器***,适用于存储多个存储器元件的L2P映射数据;主机,适用于存储L2P映射数据的至少一部分,并向存储器***传送取消映射请求和取消映射请求的目标物理地址,其中存储器***可以确定目标物理地址的有效性,并且当确定有效时,对目标物理地址执行取消映射操作。
存储器***可以使用L2P映射数据的状态信息来确定物理地址的有效性。状态信息可以包括无效的地址信息、脏信息和取消映射信息。存储器***可以通过改变与第一物理地址或映射到第一物理地址的逻辑地址对应的状态信息的值来执行取消映射操作,以使有效的第一物理地址无效。存储在存储器***中的L2P映射数据可以包括基于L2P映射数据的加密生成的第一验证信息和基于L2P映射数据的更新版本生成的第二验证信息。存储器***可以使用第一验证信息或第二验证信息来确定物理地址的有效性。
根据本发明的实施例,一种控制器包括:存储器,适用于存储L2P映射数据和L2P映射数据的状态信息;操作执行模块,适用于通过改变对应于与取消映射请求一起从外部装置接收的物理地址的状态信息的值来执行取消映射操作以使物理地址无效。L2P映射数据表示多个非易失性存储器元件的逻辑地址和物理地址之间的关系。操作执行模块将L2P映射数据的至少一部分传送到外部装置。
根据本发明的实施例,一种数据处理***的操作方法包括:由存储器***存储至少L2P映射数据和L2P映射数据内的有效条的有效性信息;由主机高速缓存L2P映射数据的至少部分;由主机向存储器***提供取消映射请求以及从高速缓存的部分检索到的物理地址;由存储器***响应于取消映射请求,使与物理地址对应的有效性信息无效。
本发明的这些和其它特征和优点不限于上述实施例,并且通过以下结合附图的详细描述,本发明的这些和其它特征和优点将变得对于本发明领域的技术人员显而易见。
附图说明
图1是示出根据本发明的实施例的数据处理***的示意图。
图2是示出根据本发明的另一实施例的数据处理***的示意图。
图3是示出根据本发明的实施例的存储器***中的数据处理操作的示意图。
图4是示出根据本发明的实施例的存储器装置的示意图。
图5示出根据本发明的实施例的数据处理***中的主机和存储器***的读取操作。
图6是示出初始上载映射数据的处理的流程图。
图7是示出更新映射数据的处理的框图。
图8A和8B示出用于加密映射数据的方法。
图9A至9D示出用于生成映射数据的版本信息的方法。
图10是示出根据本发明的实施例的存储器***的执行取消映射操作的方法的流程图。
图11、图12A和图12B是示出根据本发明的实施例的由数据处理***执行取消映射操作的方法的示例的示图。
图13A和图13B是示出根据本发明的实施例的由存储器***确定从主机接收的物理地址的有效性的方法的示例的流程图。
图14是示出根据本发明的实施例的由存储器***执行取消映射操作的方法的示例的流程图。
图15A至图15E是示出根据实施例的状态信息的示例的概念图。
图16是示出根据实施例的由存储器***执行取消映射操作的方法的另一示例的流程图。
图17是示出根据本发明的实施例的由存储器***执行取消映射操作的方法的又一示例的流程图。
图18至20示出利用主机的存储器中的部分区域作为能够临时存储用户数据以及元数据的装置的示例。
具体实施方式
以下参照附图更详细地描述本公开的各个实施例。然而,可以不同地配置或布置本公开的元件和特征以形成可作为任何所公开的实施例的变型的其它实施例。因此,本发明不限于在本文中阐述的实施例。相反,提供所描述的实施例以使得本公开是彻底和完整的,并且将本公开的范围充分传达给本发明所属领域的技术人员。应当注意的是,对“实施例”、“另一实施例”等的引用不一定表示仅一个实施例,并且对任何这样的短语的不同引用不一定针对相同的实施例。
应当理解的是,尽管在本文中可以使用术语“第一”、“第二”、“第三”等来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个具有相同或相似名称的元件区分开。因此,在不脱离本发明的精神和范围的情况下,在一个实例中的第一元件在另一实例中也可以称为第二或第三元件。
附图不一定按比例绘制,并且在某些情况下,可以放大比例以清楚地示出实施例的特征。当元件称为连接或联接至另一元件时,应当理解的是,前者可以直接连接或联接至后者,或者可以经由二者之间的一个或多个中间元件电连接或电联接至后者。此外,还应当理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
在本文中所使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明。如本文中所使用的,单数形式旨在包括复数形式,除非上下文另外明确指出。除非另外说明,或者从上下文可以清楚地理解为单数形式,否则在本申请和所附权利要求书中使用的冠词“一”和“一个”通常应解释为表示“一个或多个”。
应当进一步理解的是,当在本说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指定存在所述元件并且不排除存在或附加一个或更多其它元件。如本文所使用的,术语“和/或”包括一个或多个相关联的所列项目的任意和所有组合。
除非另外定义,否则本文使用的包括技术和科学术语的所有术语具有与本发明所属领域的普通技术人员鉴于本公开而通常理解的相同含义。应当进一步理解的是,除非本文明确定义,否则诸如在常用词典中定义的术语应解释为具有与其在本公开和相关技术的环境中的含义一致的含义,而不应以理想化或过于形式化的方式解释。
在以下描述中,阐述了许多具体细节以提供对本发明的透彻理解。可以在没有某些或所有这些具体细节的情况下实践本发明。在其它情况下,没有详细描述公知的处理结构和/或处理,以免不必要地模糊本发明。
还应当注意的是,在某些情况下,除非另外特别指出,否则对相关领域的技术人员显而易见的是,关于一个实施例描述的特征或元件可以被单独使用或者与另一实施例的其它特征或元件组合使用。
在下文中,参照附图详细描述本发明的各个实施例。以下描述集中在细节上以促进对本发明的实施例的理解。可能省略了众所周知的技术细节,以免模糊本发明的特征和方面。
图1是示出根据本发明的实施例的数据处理***100的框图。
参照图1,数据处理***100可以包括与存储器***110可操作地接合的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和笔记本计算机的各种便携式电子装置或者诸如台式计算机、游戏机,电视(TV)和投影仪等的电子装置中的任意一种。
主机102还包括至少一个操作***(OS),OS通常管理和控制在主机102中执行的功能和操作。OS可以提供与存储器***110接合的主机102和存储器***110的用户之间的互操作性。OS可以支持与用户的请求对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以是通用操作***或移动操作***。根据***需求或用户环境,通用操作***可以分为个人操作***和企业操作***。包括Windows和Chrome的个人操作***可以支持一般用途的服务。但是包括Windows Server、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可以集成到SSD中以提高操作速度。当将存储器***110用作SSD时,与利用硬盘实现的主机102相比,可以提高连接到存储器***110的主机102的操作速度。在另一实施例中,控制器130和存储器装置150可以集成到一个半导体装置中以形成存储卡,诸如PC卡(PCMCIA)、紧凑型闪存卡(CF)、诸如智能媒体卡(SM、SMC)的存储卡、存储棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、通用闪速存储器等。
可以将存储器***110配置为例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、Web平板电脑、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航***、黑匣子、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传送和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算***的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使不提供电力也可以保持存储在其中的数据。存储器装置150可以通过写入操作存储从主机102提供的数据,同时通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储块152、154、156,每个存储块可以包括多个页面。多个页面中的每个页面可以包括电联接到多个字线(WL)的多个存储器单元。存储器装置150还包括多个存储器管芯,每个存储器管芯包括多个平面,每个平面包括多个存储块152、154、156。此外,存储器装置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是与主机102交换数据的组件,主机接口132可以通过称为主机接口层(HIL)的固件来实现。
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是闪速存储器的情况下,特别地,在存储器装置150是NAND闪速存储器的情况下,存储器接口142可以生成存储器装置150的控制信号,并且可以在处理器134的控制下处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口142可以提供处理控制器130和存储器装置150之间的命令和数据的接口,例如,NAND闪速存储器接口的操作,特别是控制器130和存储器装置150之间的操作。根据实施例,存储器接口142可以通过称为作为与存储器装置150交换数据的组件的闪存接口层(FIL)的固件来实现。
存储器144可以支持由存储器***110和控制器130执行的操作。存储器144可以存储为存储器***110和控制器130中的操作而生成或传递的临时或事务数据。控制器130可以响应于来自主机102的请求而控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102中。控制器130可以将从主机102接收的数据存储在存储器装置150中。存储器144可以用来存储控制器130和存储器装置150的数据以执行诸如读取操作或编程/写入操作的操作。
存储器144可以实现为易失性存储器。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者共同来实现。尽管图1示出了例如设置在控制器130内部的第二存储器144,但是实施例不限于此。即,存储器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使用处理器134。与存储器装置150接合的处理器134可以处理与从主机102接收的命令对应的指令或命令。控制器130可以执行作为命令操作的与从主机102接收的命令对应的前台操作,诸如与写入命令对应的编程操作、与读取命令对应的读取操作、与擦除/丢弃命令对应的擦除/丢弃操作以及与具有设置命令的设置参数命令或设置特征命令对应的参数设置操作。
对于另一示例,控制器130可以通过处理器134对存储器装置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的性能。
参照图2,描述了根据本公开的另一实施例的存储器***中的控制器。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括闪存转换层(FTL)40以及先前结合图1标识的主机接口132、存储器接口142以及存储器144。
尽管在图2中未示出,但是根据实施例,参照图1描述的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可以至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传送的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置为确定缓冲器管理器是否应将命令、数据等存储在存储器144中,或者缓冲器管理器是否应将命令、数据等传递给闪存转换层(FTL)40。事件队列54接收从缓冲区管理器52输入的事件,这些事件将由存储器***110或控制器130响应于从主机102传送的命令、数据等而内部地执行和处理,以按照接收的顺序将事件传递到闪存转换层(FTL)40中。
根据实施例,参照图2描述的主机接口132可以执行参照图1和图2描述的控制器130的一些功能。主机接口132可以设置如图6或图9所示的主机存储器106作为从属装置,并将主机存储器106添加为由控制器130可控制或可使用的附加存储空间。
根据实施例,闪存转换层(FTL)40可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器(GC/WL)42和块管理器(BM/BBM)48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处理或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器装置150中的块执行命令或指令。
作为示例而非限制,根据从主机接口132传递的读取和编程命令以及事件,主机请求管理器46可以使用映射管理器44和块管理器48来处理或处置请求。主机请求管理器46可以将查询请求传送到映射数据管理器44,以确定对应于与事件一起输入的逻辑地址的物理地址。主机请求管理器46可以将具有物理地址的读取请求传送到存储器接口142,以处理读取请求(处理事件)。另一方面,主机请求管理器46可以将编程请求(写入请求)传送到块管理器48,以将数据编程到存储器装置150中的特定空白页面(不具有数据的页面),然后,可以向映射管理器44传送与编程请求对应的映射更新请求,以在逻辑物理地址相互映射的信息中更新与编程数据有关的项。
这里,块管理器48可以将从主机请求管理器46、映射数据管理器44和/或状态管理器42传递的编程请求转换成存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器***110(参见图1)的编程或写入性能,块管理器48可以收集编程请求并将针对多平面和单次编程操作的闪存编程请求传传到存储器接口142。在实施例中,块管理器48向存储器接口142传送几个闪存编程请求,以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除不具有有效页面的块,以及在确定需要进行垃圾收集时选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空白块并擦除包含所移动的有效数据的块,从而块管理器48可以具有足够的空闲块(不具有数据的空白块)。如果块管理器48向状态管理器42提供与待擦除的块有关的信息,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别记录在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。针对每个有效页面,状态管理器42将编程请求传送到块管理器48。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可以将全部映射表存储在存储器装置150中(例如,闪存/非易失性存储器)并根据存储器144的存储容量高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存缺失时,映射管理器44可以将读取请求传送到存储器接口142以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可以将编程请求发送到块管理器48,以生成干净的高速缓存块,并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器46可以为该页面的相同逻辑地址编程最新版本的数据并在当前发出更新请求。当状态管理器42在未恰当完成有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为,如果状态管理器42请求映射更新并在稍后完成有效页面复制,则将发出具有旧物理信息的映射请求。映射管理器44可以执行映射更新操作以确保仅当最新映射表仍指向旧物理地址的情况下的准确性。
根据实施例,状态管理器42、映射管理器44或块管理器48中的至少一个可以包括用于执行自身的操作的电路。如本公开中所使用的,术语“电路”是指以下中的任意和全部:(a)纯硬件电路实施方式(诸如仅在模拟和/或数字电路中的实施方式),以及(b)电路和软件(和/或固件)的组合,诸如(如果适用的情况下):(i)(一个或多个)处理器的组合,或(ii)协同工作以使设备,诸如移动电话或服务器执行各种功能的(一个或多个)处理器/软件(包括数字信号处理器)、软件和存储器的一部分,以及(c)即使软件或固件实际上不存在也需要软件或固件操作的电路,诸如(一个或多个)微处理器或微处理器的一部分。“电路”的定义适用于本申请中该术语的所有使用,包括任何权利要求。作为另一示例,如在本申请中使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分及处理器(或多个处理器)随附的软件和/或固件的实施方式。如果适用于特定的权利要求的元件,术语“电路”还涵盖例如存储装置的集成电路。
存储器装置150可以包括多个存储块。根据在一个存储器单元中可以存储或表示的位的数量,多个存储块可以是任意不同类型的存储块,诸如单层单元(SLC)存储块、多层单元(MLC)存储块等。这里,SLC存储块包括由每个存储一位数据的存储器单元实现的多个页面。SLC存储块可以具有高的数据I/O操作性能和高的耐用性。MLC存储块包括由每个存储多位数据(例如,两位或更多位)的存储器单元实现的多个页面。与SLC存储块相比,MLC存储块在相同的空间中可以具有更大的存储容量。就存储容量而言,MLC存储块可以高度集成。在实施例中,可以利用不同层级的MLC存储块来实现存储器装置150,诸如双层存储块、三层单元(TLC)存储块、四层单元(QLC)存储块,或其组合。双层存储块可以包括由每个能够存储2位数据的存储器单元实现的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实现的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实现的多个页面。在另一实施例中,可以利用包括由每个能够存储五位或更多位数据的存储器单元实现的多个页面的块来实现存储器装置150。
在本公开的实施例中,存储器装置150被实施为非易失性存储器,诸如闪速存储器,诸如NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩磁性存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-MRAM)等中的至少一种来实现。
图3是示出根据实施例的与存储器***中的存储器装置有关的数据处理操作的示意图。
参照图3,控制器130可以执行与从主机102接收的命令对应的命令操作,例如,与写入请求对应的编程操作。控制器130可以在存储器装置150的存储块552、554、562、564、572、574、582和584中写入和存储与写入请求对应的用户数据。而且,对应于对存储块552、554、562、564、572、574、582和584的写入操作,控制器130可以生成和更新用户数据的元数据,并且将元数据写入并存储在这些存储块中。
控制器130可以生成并更新指示用户数据存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面中的信息,即,生成并更新第一映射数据的逻辑段即L2P段和第二映射数据的物理段即P2L段,然后通过执行映射清除操作将L2P段和P2L段存储在存储块552、554、562、564、572、574、582和584的页面中。
例如,控制器130可以在控制器130的存储器144中的第一缓冲器510中高速缓存和缓冲与从主机102接收的写入请求对应的用户数据,即,将用户数据的数据段512作为数据缓冲/高速缓存存储在第一缓冲器510中。然后,控制器130可以在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面中写入和存储在第一缓冲器510中存储的数据段512。
当与从主机102接收的写入请求对应的用户数据的数据段512写入并存储在上述存储块中的页面中时,控制器130可以生成第一映射数据和第二映射数据,并将第一映射数据和第二映射数据存储在存储器144中的第二缓冲器520中。更特别地,控制器130可以将用户数据的第一映射数据的L2P段522和用户数据的第二映射数据的P2L段524作为映射缓冲/高速缓存存储在第二缓冲器520中。在控制器130的存储器144中的第二缓冲器520中,如上所述,可以存储第一映射数据的L2P段522和第二映射数据的P2L段524,或者可以存储第一映射数据的L2P段522的映射列表和第二映射数据的P2L段524的映射列表。控制器130可以在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面中写入和存储在第二缓冲器520中存储的第一映射数据的L2P段522和第二映射数据的P2L段524。
此外,控制器130可以执行与从主机102接收的命令对应的命令操作,例如,与读取请求对应的读取操作。控制器130可以将与读取请求对应的用户数据,例如第一映射数据的L2P段522和第二映射数据的P2L段524加载到第二缓冲器520中,并且检查L2P段522和P2L段524。然后,控制器130可以读取存储在存储器装置150的存储块552、554、562、564、572、574、582和584之中的对应存储块中包括的页面中的用户数据,将所读取的用户数据的数据段512存储在第一缓冲器510中,并将数据段512提供给主机102。
参照图4,存储器装置150可以包括多个存储器管芯,例如,存储器管芯610、630、650和670。存储器管芯610、630、650和670中的每个管芯可以包括多个平面。例如,存储器管芯610可以包括平面612、616、620和624。存储器管芯630可以包括平面632、636、640和644。存储器管芯650可以包括平面652、656、660和664,存储器管芯670可以包括平面672、676、680和684。存储器装置150中的存储器管芯610、630、650和670中的各个平面612、616、620、624、632、636、640、644、652、656、660、664、672、676、680和684可以包括多个存储块614、618、622、626、634、638、642、646、654、658、662、666、674、678、682和686。如以上参照图2所述,每个块可以包括多个页面,例如2M个页面。可以将存储器装置150的多个存储器管芯分组,并且相同组中的存储器管芯联接到相同通道。例如,存储器管芯610和650可以联接到一个通道,存储器管芯630和670可以联接到不同的通道。
在本公开的实施例中,考虑以上参照图4所述的存储器装置150的各个存储器管芯610、630、650和670中的各个平面612、616、620、624、632、636、640、644、652、656、656、660、664、672、676、680和684的存储块614、618、622、626、634、638、642、646、654、658、662、666、674、678、682和686的编程大小,可以将与从主机102接收的命令对应的命令操作的用户数据和元数据写入并存储在各个上述存储块的页面中。特别地,在将这些存储块分组为多个超级存储块之后,可以例如通过单次编程将与从主机102接收的命令对应的命令操作的用户数据和元数据写入并存储在超级存储块中。
每个超级存储块可以包括多个存储块,例如,第一存储块组的至少一个存储块和第二存储块组的至少一个存储块。第一存储块组可以包含第一管芯的存储块,第二存储块组可以包含第二管芯的存储块,其中第一管芯和第二管芯联接到不同的通道。此外,联接到第一通道的第一存储块组中的多个存储块,例如第一存储块和第二存储块可以是联接到通道的不同通路的存储器管芯,联接到第二通道的第二存储块组中的多个存储块,例如第三存储块和第四存储块可以是联接到通道的不同通路的存储器管芯。
例如,第一超级存储块可以包括四个存储块,每个存储块属于不同的管芯,其中两个管芯联接到一个通道,另外两个管芯联接到不同的通道。尽管上面描述了一个超级存储块包括4个存储块,但是超级存储块可以包括任何合适数量的存储块。例如,超级块可以仅包括2个存储块,每个存储块所属的管芯联接到单独的通道。
在本公开的实施例中,在存储器装置150中的超级存储块中执行编程操作时,可以通过交错方案,特别是通道交错方案、存储器管芯交错方案或存储芯片交错方案将用户数据的数据段和用户数据的元数据的元段存储在各个超级存储块的多个存储块中。为此,各个超级存储块中的存储块可以属于不同的存储器管芯,特别地,存储块可以属于联接到不同通道的不同存储器管芯。
此外,在本公开的实施例中,在如上所述的情况下,第一超级存储块可以包括联接到2个通道的4个存储器管芯的4个存储块,以确保通过通道交错方案和存储器管芯交错方案执行编程操作,第一超级存储块的第一页面对应于第一存储块的第一页面,第一超级存储块的紧接第一页面的第二页面对应于第二存储块的第一页面,第一超级存储块的紧接第二页面的第三页面对应于第三存储块的第一页面,第一超级存储块的紧接第三页面的第四页面对应于第四存储块的第一页面。在本公开的实施例中,可以从第一超级存储块的第一页面顺序地执行编程操作。
图5至图7示出了主机中的存储器的一部分或部分可以用作存储在存储器***中使用的元数据的高速缓存装置的情况。
参照图5,主机102可以包括处理器104、主机存储器106和主机控制器接口108。存储器***110可以包括控制器130和存储器装置150。在本文中,参照图5描述的控制器130和存储器装置150可以对应于参照图1至图2描述的控制器130和存储器装置150。
图5示出了相对于图1和图2所示的数据处理***的某些差异。特别地,控制器130中的逻辑块160可以对应于参照图2描述的闪存转换层(FTL)40。然而,根据实施例,控制器130中的逻辑块160可以执行图2的闪存转换层(FTL)40可以不执行的附加功能。
主机102可以包括处理器104,处理器104具有比存储器***110高的性能。主机102还包括主机存储器106,主机存储器106能够存储比与主机102协作的存储器***110更大量的数据。主机102中的处理器104和主机存储器106在空间和可升级性方面具有优势。例如,与存储器***110中的处理器134和存储器144相比,处理器104和主机存储器106的空间限制较小。处理器104和主机存储器106可以利用升级版本可替换,这与存储器***110中的处理器134和存储器144不同。在图5的实施例中,存储器***110可以利用主机102的资源,以提高存储器***110的操作效率。
随着可以存储在存储器***110中的数据量的增加,与存储在存储器***110中的数据对应的元数据的量也增加。当控制器130的存储器144中用于加载元数据的存储能力受到限制或受限时,加载的元数据的量的增加可能导致控制器130的操作负担。例如,由于在控制器130的存储器144中分配给元数据的空间或区域的限制,所以仅可以加载一些而非全部元数据。如果加载的元数据不包括主机102准备访问的物理位置的特定元数据,在加载的元数据中的一些元数据已经更新时,则控制器130必须将加载的元数据返回存储到存储器装置150中,并且加载主机102准备访问的物理位置的特定元数据。针对控制器130应该执行这些操作,以执行由主机102指示的读取操作或写入操作,并且可能劣化存储器***110的性能。
主机102中的主机存储器106的存储能力可以比控制器130中的存储器144的存储能力大几十倍或几百倍。存储器***110可以将控制器130使用的元数据166传输到主机存储器106中,使得可以由存储器***110访问主机存储器106的至少一些部分或部分。存储器***110可访问的主机存储器106的部分可以用作在存储器***110中读取或写入数据所需的地址转换的高速缓存存储器。在这种情况下,在将逻辑地址连同请求、命令或指令一起传送到存储***110之前,主机102基于存储在主机存储器106中的元数据166将逻辑地址转换为物理地址。然后,主机102可以将转换后的物理地址与请求、命令或指令传送到存储器***110。将转换后的物理地址与请求、命令或指令一起接收的存储***110可以跳过将逻辑地址转换为物理地址的内部处理,并基于传送的物理地址来访问存储器装置150。在这种情况下,可以减少或消除控制器130从存储器装置150加载元数据以进行地址转换的开销(例如,操作负担),并且可以提高存储器***110的操作效率。
另一方面,即使存储器***110将元数据166传送到主机102,存储器***110也可以基于诸如元数据生成、擦除、更新等的元数据166来控制映射信息。存储器***110中的控制器130可以根据存储器装置150的操作状态来执行诸如垃圾收集或损耗均衡的后台操作,并且可以确定物理地址,即,在存储器装置150中的哪个物理位置待存储从主机102传输的数据。因为可以改变存储在存储器装置150中的数据的物理地址,并且主机102不识别改变后的物理地址,所以存储器***110可以主动地控制元数据166。
在存储器***110控制用于地址转换的元数据的同时,可以确定存储器***110需要修改或更新先前传送到主机102的元数据166。存储器***110可以将信号或元数据发送到主机102以请求存储在主机102中的元数据166的更新。主机102可以响应于从存储器***110传递的请求而更新在主机存储器106中的存储的元数据166。这允许存储在主机102中的主机存储器106中的元数据166保持为最新版本,使得即使主机控制器接口108使用存储在主机存储器106中的元数据166,在将逻辑地址转换成物理地址并且将经转换的物理地址与逻辑地址一起传送到存储***110的操作中也没有问题。
存储在主机存储器106中的元数据166可以包括用于将逻辑地址转换为物理地址的映射信息。
参照图5,将逻辑地址与物理地址相关联的元数据可以包括两个可区分的项:第一映射信息项,用于将逻辑地址转换为物理地址;以及第二映射信息项,用于将物理地址转换为逻辑地址。其中,存储在主机存储器106中的元数据166可以包括第一映射信息。第二映射信息可以主要用于存储器***110的内部操作,但是可以不用于主机102请求的将数据存储在存储器***110中或从存储器***110读取与特定逻辑地址对应的数据的操作。在实施例中,存储器***110可以不将第二映射信息项传送到主机102。
存储器***110中的控制器130可以控制(例如,创建、删除、更新等)第一映射信息项或第二映射信息项,并将第一映射信息项或第二映射信息项存储到存储器装置150。因为主机存储器106是易失性存储器的类型,所以当诸如中断对主机102和存储器***110的电力供应的事件发生时,存储在主机存储器106中的元数据166可能消失。相应地,存储器***110中的控制器130不仅可以保持存储在主机存储器106中的元数据166的最新状态,而且可以将第一映射信息项或第二映射信息项的最新状态存储在存储器装置150中。
图6是示出在加电(power-on)时存储器***110将存储器映射数据MAP_M的全部或一部分传送到主机102的方法的流程图。参照图6,控制器130在加电时加载存储在存储器装置150中的一些或全部存储器映射数据MAP_M,并将存储器映射数据MAP_M传送到主机102。在加电时,主机102、控制器130和存储器装置150可以开始映射数据的初始化上载操作。
在S610中,主机102可以从控制器130请求映射数据。例如,主机102可以指定并请求映射数据的特定部分。例如,主机102可以指定并请求映射数据的一部分,其中存储了驱动诸如文件***、引导映像和操作***的数据处理***100所需的数据。作为另一示例,主机102可以在没有任何指定的情况下从控制器130请求映射数据。
在S611中,控制器130可以从存储器装置150读取存储器映射数据MAP_M的第一部分MAP_M_1。在S621中,第一部分MAP_M_1可以作为控制器映射数据MAP_C存储在控制器130中。在S631中,控制器130可以将存储为控制器映射数据MAP_C的第一部分MAP_M_1传送到主机102。第一部分MAP_M_1可以作为主机映射数据MAP_H存储在主机存储器106中。
在S612中,控制器130可以从存储器装置150读取存储器映射数据MAP_M的第二部分MAP_M_2。在S622中,第二部分MAP_M_2可以作为控制器映射数据MAP_C存储在控制器130中。在S632中,控制器130可以将存储为控制器映射数据MAP_C的第二部分MAP_M_2传送到主机102。第二部分MAP_M_2可以由主机102作为主机映射数据MAP_H存储在主机存储器106中。
该过程以这种顺序继续。因此,在S61n中,控制器130可以从存储器装置150读取存储器映射数据MAP_M的第n部分MAP_M_n。在S62n中,第n部分MAP_M_n可以作为控制器映射数据MAP_C存储在控制器130中。在S63n中,控制器130可以将存储为控制器映射数据MAP_C的第n部分MAP_M_n传送到主机102。可以由主机102将第n部分MAP_M_n作为主机映射数据MAP_H存储在主机存储器106中。因此,主机102、控制器130和存储器装置150可以完成映射数据的初始化上载。
在S610中,图6中的控制器130响应于从主机接收的对映射数据的单个请求,多次下载一部分存储器映射数据MAP_M,并多次将下载的存储器映射数据MAP_M上载至主机102。然而,控制器130可以响应于从主机102接收的对映射数据的单个请求,将所有存储器映射数据MAP_M上载到主机102。可选地,控制器130可以响应于来自主机102的各个请求,将存储器映射数据MAP_M连续地部分或分段地上载到主机102。
如上所述,控制器映射数据MAP_C存储在控制器130的存储器144中,并且主机映射数据MAP_H存储在主机102的主机存储器106中。
如果映射数据的初始化上载完成,则主机102可以与存储器***110协作并开始访问存储器***110。图6中示出了主机102和存储器***110执行初始化上载的示例。然而,本发明不限于该特定配置或处理。例如,可以省略初始化上载。主机102可以在没有初始化上载的情况下访问存储器***110。
在映射数据初始上载操作之后,上载和更新存储器映射数据MAP_M可以响应于主机请求而执行,或者可以在没有主机请求的情况下在控制器130的控制下执行。存储器映射数据MAP_M的上载和更新操作可以部分或全部执行,并且可以在不同时间执行,例如周期性地执行。
图7是示出由图5所示的数据处理***执行的映射更新操作的示例的框图。特别地,图7示出了在控制器130的控制下周期性地将存储器映射数据MAP_M上载到主机102并且更新作为存储在主机存储器106中的元数据的主机映射数据MAP_H的处理。
与主机102可操作地接合的存储器***110可以执行主机102请求的数据的读取操作、擦除操作和写入操作。在执行对主机请求的数据的读取、擦除和写入操作之后,当存储器装置150中的数据的位置发生改变时,存储器***110可以更新元数据。
即使没有主机102的请求,存储器***110仍可以响应于执行后台操作,例如垃圾收集操作或损耗均衡操作的处理中的这种变化来更新元数据。存储器***110中的控制器130可以检测元数据是否通过上述操作更新。换句话说,控制器130可以在元数据生成、更新、擦除等的同时检测元数据已经变脏(即,脏映射),并将脏映射反映在脏信息中。
当元数据变脏时,控制器130向主机控制器接口108传送通知,来通知主机控制器接口108需要更新主机映射数据MAP_H。在这种情况下,可以以规律的时间间隔周期性地传送通知或根据元数据变脏的程度来传送通知。
响应于从控制器130接收的通知,主机控制器接口108可以将对需要更新的主机映射数据MAP_H的请求传送到控制器130(即,请求映射信息)。在这种情况下,主机控制器接口108可以仅指定并请求需要更新的主机映射数据MAP_H的部分,或者请求主机映射数据MAP_H的全部。
控制器130可以响应于主机控制器接口108的请求来传送需要更新的元数据(即,传送映射信息)。主机控制器接口108可以将所传送的元数据传送到主机存储器106,并且更新所存储的主机映射数据MAP_H(即,L2P映射更新)。
存储在存储器装置150中的存储器映射数据MAP_M可以包括存储有MAP_M的存储器装置150中的非易失性存储器元件的物理地址PA和逻辑地址LA之间的映射信息。存储器映射数据MAP_M可以以映射段MS为单位进行管理。每个映射段MS可以包括多个条目,并且每个条目可以包括连续逻辑地址LA和连续物理地址PA之间的映射信息。
图8A和8B示出了一种用于加密映射数据的方法。图9A至9D示出了用于生成映射数据的版本信息的方法。参照图5、图8A至9D,将描述分别管理存储器装置150中的存储器映射数据MAP_M、控制器130中的控制器映射数据MAP_C和主机102中的主机映射数据MAP_H的方法。
参照图5和图8A,存储在存储器装置150中的存储器映射数据MAP_M可以包括存储器装置150中的非易失性存储器元件的物理地址PA与主机102的逻辑地址LA之间的L2P映射信息。可以以映射段MS为单位管理存储器映射数据MAP_M。
每个L2P映射段MS包括一定数量的映射信息项,映射信息项包括逻辑地址和分配给逻辑地址的物理地址。偏移(索引)可以分别分配给L2P映射段MS。例如,可以将偏移01至12分别分配给L2P映射段MS。
控制器130可以以L2P映射段MS为单位从存储器装置150读取存储器映射数据MAP_M,并且将所读取的存储器映射数据MAP_M存储为控制器映射数据MAP_C。当存储控制器映射数据MAP_C时,控制器130可以生成头部HD_C。头部HD_C可以包括在控制器130中作为控制器映射数据MAP_C存储的映射段MS的偏移。
控制器130可以生成字符CHA。字符CHA是在主机102和控制器130正在传送/接收L2P映射段MS的同时检查或防止映射数据的数据被入侵或丢失的信息。
在本发明的实施例中,主机102和控制器130之间的L2P映射段MS的传送/接收处理可以包括将控制器映射数据MAP_C上载到主机102以及与取消映射请求一起从主机102下载物理地址PA。控制器130可以通过对关于控制器映射数据MAP_C中的每个L2P映射段MS的逻辑地址LA和物理地址PA执行基于AES(高级加密标准)的加密、哈希函数或加扰来生成字符CHA。控制器130可以将字符CHA与控制器映射数据MAP_C的L2P映射段MS一起上载到主机102。
主机102可以将来自控制器130的包括字符CHA的控制器映射数据MAP_C的L2P映射段MS作为主机映射数据MAP_H存储在主机存储器106中。当存储主机映射数据MAP_H时,主机102可以生成头部HD_H。头部HD_H可以包括存储为主机映射数据MAP_H的映射段MS的偏移。
根据本发明的实施例,主机102可以利用期望的L2P映射段MS的偏移将映射请求传送到控制器130。并且,当从控制器130接收L2P映射段MS时,主机102可以将从控制器130接收的L2P映射段MS的偏移与头部HD_H中的偏移进行比较。主机102可以基于比较结果,将来自控制器130的所接收的L2P映射段MS新添加到主机映射数据MAP_H中,或者可以使用所接收的L2P映射段MS来改变主机映射数据MAP_H的旧的部分。
根据本发明的实施例,参照主机映射数据MAP_H,主机102可以利用物理地址、包括逻辑地址和映射到该逻辑地址的物理地址的映射信息或映射信息的偏移中的至少一个传送取消映射请求。
控制器130可以通过将来自主机102的偏移与控制器映射数据MAP_C中的头部HD_C中的偏移进行比较,来确定L2P映射段MS是否存储在控制器映射数据MAP_C中。
根据本发明的实施例,分配以存储主机映射数据MAP_H的主机存储器106的空间大小可以小于或等于存储器映射数据MAP_M的大小。并且,分配以存储主机映射数据MAP_H的主机存储器106的空间的大小可以大于或等于控制器映射数据MAP_C的大小。当分配给主机映射数据MAP_H的空间的大小小于存储器映射数据MAP_M的大小时,主机102可以选择主机映射数据MAP_H的释放策略。
根据本发明的实施例,当分配给主机映射数据MAP_H的存储空间不足以存储新的L2P映射段MS时,主机102可以基于最近最少使用(LRU)策略或最不经常使用(LFU)策略丢弃主机映射数据MAP_H的一部分。
根据本发明的实施例,当由于垃圾收集或损耗均衡而更新存储器装置150的存储器映射数据MAP_M时,控制器130可以将更新的部分传送到主机102。主机102可以使主机映射数据MAP_H的与更新部分对应的旧的部分无效。
图8B是示出当向主机102传送控制器映射数据MAP_C时控制器130执行加密的示例的流程图。参照图5和图8B,在操作S810中,控制器130确定是否将物理地址PA或者控制器映射数据MAP_C的L2P映射段MS传送到主机102。在物理地址PA和L2P映射段MS均不发送到主机102的情况下,将省略操作S820和操作S830。在将物理地址PA或L2P映射段MS传送到主机102的情况下,执行操作S820和操作S830。
在操作S820中,控制器130可以加密物理地址PA和字符CHA,或者加密物理地址PA和L2P映射段MS的签名SIG。在操作S830中,控制器130可以将加密的物理地址PA_E和加密的字符CHA_E或包括加密的物理地址PA_E和加密的字符CHA_E的L2P映射段MS传送到主机102。
尽管未在图8B中示出,但是当从主机102接收到逻辑地址LA、加密的物理地址PA_E和加密的字符CHA_E时,控制器130通过将加密的物理地址PA_E和加密的字符CHA_E解密来确定加密的物理地址PA_E的有效性。控制器130可以对有效的物理地址PA执行取消映射操作。如上所述,如果对主机102的主机存储器106作为主机映射数据MAP_H上载的控制器映射数据MAP_C的一部分被加密,则可以提高控制器映射数据MAP_C和存储器装置150的安全级别。
图9A示出了将版本信息VN分配给控制器映射数据MAP_C和主机映射数据MAP_H的示例。参照图5和图9A,在操作S910中,控制器130可以从主机102接收具有逻辑地址的写入请求WT_REQ。
在操作S920中,控制器130可以响应于写入请求WT_REQ而对存储器装置150的空闲存储空间执行写入操作。控制器130可以根据所执行的写入操作来生成L2P映射段MS,并且可以将所生成的L2P映射段MS存储为控制器映射数据MAP_C的一部分。例如,控制器130可以将与写入请求WT_REQ对应的逻辑地址映射到存储器装置150的空闲存储空间的物理地址。控制器130可以将映射信息作为L2P映射段MS添加到控制器映射数据MAP_C或可以利用映射信息更新控制器映射数据MAP_C。
在操作S930中,控制器130可以确定L2P映射段MS是否被更新。例如,当在控制器映射数据MAP_C或存储器映射数据MAP_M中先前存储了与写入请求WT_REQ对应的逻辑地址的L2P映射段MS并且根据写入请求WT_REQ改变了先前存储的L2P映射段MS时,控制器130可以确定L2P映射段MS被更新。当在控制器映射数据MAP_C或存储器映射数据MAP_C中未先前存储与写入请求WT_REQ对应的逻辑地址的L2P映射段MS时,新生成与写入请求WT_REQ对应的L2P映射段MS。相应地,控制器130可以确定L2P映射段MS未更新。
换句话说,当写入请求WT_REQ是用于更新先前写入在存储器装置150中的写入数据的请求时,或者当写入请求WT_REQ是对先前存储了写入数据的逻辑地址的更新请求时,控制器130可以确定L2P映射段MS被更新。当写入请求WT_REQ是与存储器装置150相关联的新写入请求WT_REQ时,或者当写入请求WT_REQ是对先前未存储写入数据的逻辑地址的写入请求WT_REQ时,控制器130可以确定L2P映射段MS未更新。
如果确定L2P映射段MS被更新,则在操作S940中,控制器130更新所更新的L2P映射段MS的版本信息VN。例如,当L2P映射段MS存储在控制器130中时,控制器130可以更新版本信息VN。版本信息VN的更新可以包括增加版本信息VN的计数值。当L2P映射段MS存储在存储器装置150中时,控制器130可以从存储器装置150读取L2P映射段MS,并且可以更新所读取的L2P映射段MS的版本信息VN。如果确定L2P映射段MS未更新,则控制器130保持L2P映射段MS的版本信息VN而不改变。
图9B示出了版本信息VN添加到控制器映射数据MAP_C和主机映射数据MAP_H的示例。参照图5和图9B,可以将版本信息VN添加到控制器映射数据MAP_C的每个L2P映射段MS和主机映射数据MAP_H的每个L2P映射段MS。
例如,分别与控制器映射数据MAP_C的偏移“02”、“07”和“09”对应的L2P映射段MS的版本信息VN的状态值可以是V0、V1和V0。并且,分别与主机映射数据MAP_H的偏移“02”,“07”和“09”对应的L2P映射段MS的版本信息VN的状态值可以是V0、V1和V0。
如参照图9A所描述的,每当更新控制器映射数据MAP_C时,更新版本信息VN。
即,当具有偏移“02”的L2P映射段MS更新时(例如,对与具有偏移“02”的L2P映射段MS对应的物理地址PA执行写入操作),具有偏移“02”的L2P映射段MS的版本信息VN也从“V0”更新为“V1”。
然而,如果具有偏移“02”的更新的L2P映射段MS未上载到主机映射数据MAP_H,则控制器映射数据MAP_C的具有控制器的偏移“02”的L2P映射段MS的版本信息“V1”大于主机映射数据MAP_H的具有偏移“02”的L2P映射段MS的版本信息“V0”。基于版本信息VN,控制器130可以确定从主机102接收的物理地址PA是最新的还是存储为控制器映射数据MAP_C的物理地址PA是最新的。
图9C示出了将控制器映射数据MAP_C上载到主机映射数据MAP_H的示例。参照图5和图9C,当将控制器映射数据MAP_C传送到主机映射数据MAP_H时,主机映射数据MAP_H的具有偏移“02”的L2P映射段MS的物理地址PA和版本信息VN V1变为与控制器映射数据MAP_C的具有偏移“02”的L2P映射段MS的物理地址PA和版本信息VN V1相同。
图9D示出了根据时间段来更新版本信息VN的示例。在图9D中,水平轴表示时间,垂直轴表示作为控制器映射数据MAP_C加载在控制器130上的L2P映射段MS。根据本发明的实施例,分别对应于偏移“01”至“12”的L2P映射段MS的版本信息VN的状态值是V0并且具有偏移“08”和“11”的L2P映射段MS被更新。
参照第一时段,可以分别对包括具有偏移“08”和“11”的L2P映射段MS的物理地址PA执行第一写入操作WT1和第二写入操作WT2。
第一写入操作WT1可以在存储器装置150中编程写入数据,并且更新控制器映射数据MAP_C的具有偏移“08”的L2P映射段MS的全部或部分。相应地,偏移“08”的版本信息VN可以从“V0”更新为“V1”。第二写入操作WT2可以在存储器装置150中编程写入数据,并且更新控制器映射数据MAP_C的具有偏移“11”的L2P映射段MS的全部或部分。相应地,偏移“11”的版本信息VN可以从“V0”更新为“V1”。
在第一时段结束之后,可以将控制器映射数据MAP_C中具有偏移“08”和“11”的更新的L2P映射段MS上载到主机102。相应地,主机映射数据MAP_H中具有偏移“08”和“11”的L2P映射段MS具有“V1”的版本信息VN。
在第二时段中,第三写入操作WT3可以将写入数据编程在存储器装置150中,并且更新控制器映射数据MAP_C的具有偏移“08”的L2P映射段MS的全部或部分。相应地,偏移“08”的版本信息VN可以从“V1”更新到“V2”。然而,对其执行了第三写入操作WT3的具有偏移“08”的L2P映射段MS未上载到主机映射数据MAP_H。控制器映射数据MAP_C的具有偏移“08”的L2P映射段MS的版本信息“V2”比主机映射数据MAP_H的具有偏移“08”的L2P映射段MS的版本信息“V1”更加新近。
在第二时段中,从主机102接收具有物理地址PA和版本信息VN的取消映射请求。从主机102接收的物理地址PA可以是包括具有偏移“11”的L2P映射段MS的物理地址PA。由于在第一时段结束之后已经将具有偏移“11”的L2P映射段MS上载到主机102,所以从主机102接收的版本信息VN与控制器映射数据MAP_C的具有偏移“11”的L2P映射段MS的版本信息VN相同。相应地,控制器130可以确定从主机102接收的物理地址PA是有效的。相应地,控制器130可以对从主机102接收的有效物理地址PA执行取消映射操作。
在第三时段中,从主机102接收具有物理地址PA和版本信息VN的取消映射请求。从主机102接收的物理地址PA可以是包括具有偏移“08”的L2P映射段MS的物理地址PA。由于在执行第三写入操作WT3之后具有偏移“08”的L2P映射段MS未上载到主机102,所以从主机102接收的版本信息VN不同于控制器映射数据MAP_C的具有偏移“08”的L2P映射段MS的版本信息VN。相应地,控制器130可以确定从主机102接收的物理地址PA是无效的。
相应地,控制器130可以忽略从主机102接收的物理地址PA。
控制器130可以通过使用控制器映射数据MAP_C的具有偏移“08”的L2P映射段MS,将从主机102接收的逻辑地址LA转换为物理地址PA。
如上所述,控制器130可能不在每当控制器映射数据MAP_C的L2P映射段MS更新时更新版本信息VN,但是可以在特定时间段期间更新对其执行了一个或多个更新操作的L2P映射段MS的版本信息VN。相应地,可以更有效地使用版本信息VN,并且可以减少管理版本信息VN的控制器130的开销。
图10是示出根据实施例的确定与取消映射请求一起从主机102接收的物理地址的有效性的方法的流程图。
取消映射请求UNMAP_REQ可以用于释放逻辑地址和与该逻辑地址对应的物理地址之间的关系。取消映射请求UNMAP_REQ可以包括清理(sanitize)请求、擦除请求、删除请求、丢弃请求和格式化请求。这些是将存储在存储器装置150中的数据的逻辑地址LA和物理地址PA之间的关系释放或解除映射的请求。
当在S1110中从主机102接收取消映射请求UNMAP_REQ时,在S1115中,存储器***110确定是否与取消映射请求UNMAP_REQ和逻辑地址LA一起接收了物理地址PA。
当未从主机102接收到物理地址PA时(在S1115中为“否”),存储器***110可以确定仅与取消映射请求UNMAP_REQ一起接收了逻辑地址LA。存储器***110可以在存储器***110中存储的与所接收的逻辑地址LA对应的L2P映射信息中搜索物理地址,并且可以对在搜索中找到的物理地址PA或所接收的逻辑地址LA中的至少一个执行取消映射操作。
当未从主机102接收到物理地址PA时(在S1115中为“否”),存储器***110可以向主机102请求与取消映射请求UNMAP_REQ有关的L2P映射数据。存储器***110可以对包括在从主机102接收的L2P映射数据中的物理地址PA执行取消映射操作。以下将参照图18至图20详细描述本发明在这方面的实施例。
当从主机102接收到物理地址PA时(在S1115中为“是”),在S1117中,存储器***110确定是否与取消映射请求UNMAP_REQ和物理地址PA一起接收到验证信息VI。
当从主机102接收到验证信息VI时(在S1117中为“是”),在S1119中,存储器***110使用验证信息VI来确定物理地址PA的有效性。下面将参照图13A描述与该配置有关的实施例。
当未从主机102接收到验证信息VI时(在S1117中为“否”),在S1121中,存储器***110使用存储在存储器144中的状态信息STATE_INF来确定物理地址PA的有效性。下面将参照图13B描述与该配置有关的实施例。状态信息STATE_INF可以指示映射数据的状态。即,状态信息STATE_INF可以指示物理地址或逻辑地址的状态。
图11示出了根据实施例的由数据处理***执行的取消映射操作的方法。
参照图5和图11,主机102包括主机存储器106和主机控制器接口108,主机映射数据MAP_H存储在主机存储器106中。
当向主机102和存储器***110供应电力时(图6的“加电”),主机102和存储器***110可以彼此通信。控制器130可以加载存储在存储器装置150中的存储器映射数据MAP_M,例如,L2P映射。
控制器130可以将所加载的存储器映射数据MAP_M,即L2P映射作为控制器映射数据MAP_C存储在存储器144中。控制器130可以将存储在存储器144中的控制器映射数据MAP_C上载到主机102。
主机102可以从控制器130接收控制器映射数据MAP_C,并且将控制器映射数据MAP_C作为主机映射数据MAP_H存储在主机存储器106中。
尽管图1、2和5所示的存储器144是设置在控制器130内的高速缓存/缓冲存储器,但是图11至20所示的存储器144被表示为在控制器130的外部。即使采用这种布置,存储器144也用作控制器130的高速缓存/缓冲存储器。
当主机102中的处理器生成取消映射请求UNMAP_REQ时,所生成的取消映射请求UNMAP_REQ被传送到主机控制器接口108。主机控制器接口108从处理器104接收取消映射请求UNMAP_REQ,然后将与取消映射请求UNMAP_REQ对应的逻辑地址LA传送到主机存储器106。主机控制器接口108可以基于包括在主机存储器106中存储的主机映射数据MAP_H中的元数据L2P映射识别与逻辑地址LA对应的物理地址PA。
主机控制器接口108将取消映射请求UNMAP_REQ以及逻辑地址LA和物理地址PA一起传送至控制器130。控制器130确定与取消映射请求UNMAP_REQ和逻辑地址LA一起接收的物理地址PA的有效性。
在本实施例中,控制器130使用验证信息VI或状态信息STATE_INF来确定与取消映射请求UNMAP_REQ和逻辑地址LA一起接收的物理地址PA的有效性。在本实施例中,状态信息STATE_INF可以表示包括在存储器装置150中的非易失性存储器元件的状态,并且包括脏信息DIRTY、取消映射信息UNMAP_INF、无效地址信息INV_INF和有效页面计数器VPC。
当未从主机控制器接口108接收到验证信息VI时,控制器130可以使用存储在存储器144中的状态信息STATE_INF来确定物理地址PA的有效性。当从主机控制器接口108接收到验证信息VI时,控制器130可以使用控制器映射数据MAP_C中的验证信息VI来确定物理地址PA的有效性。
控制器130可以基于所接收的取消映射请求UNMAP_REQ以及有效物理地址PA和逻辑地址LA对存储器装置150执行取消映射操作。
由于从主机102接收到物理地址PA,因此可以省略搜索与逻辑地址LA对应的物理地址PA的处理。相应地,可以提高主机102对存储器***执行取消映射操作的处理的速度。
图12A和图12B示出了从主机102传送到存储器***110的取消映射请求的取消映射命令描述符块和取消映射参数列表描述符块的示例。
尽管图12A和12B参照通用闪存装置(UFS)的命令描述符块示出了取消映射请求UNMAP_REQ的取消映射命令描述符块和取消映射参数列表描述符块,但是本发明不限于此。
图12A中所示的取消映射命令描述符块的每一行包括每个字节。例如,行可以分别包括第零至第九字节0至9。此外,取消映射命令描述符块的每一列包括每个字节的一位。例如,每个字节可以包括第零至第七位0至7。取消映射命令描述符块的第零字节0的第零至第七位0至7可以包括操作码。例如,取消映射请求UNMAP_REQ的操作码可以是“42h”。
取消映射命令描述符块的第一字节1的第一至第七位1至7和第六字节6的第五至第七位5至7可以是保留区域。取消映射命令描述符块的第二至第五字节2至5可以是保留区域,并且包括最高有效位MSB至最低有效位LSB。
第七和第八字节7和8可以包括参数列表长度TRANSFER LENGTH。此外,第九字节9可以包括控制CONTROL。例如,控制CONTROL可以是“00h”。
在本实施例中,成为取消映射操作的目标的逻辑地址LA和物理地址PA可以包括在第一字节1的第一至第七位1至7、第六字节6的第五至第七位5至7以及第二至第五字节2至5中,这些区域是图12A所示的取消映射命令描述符块的保留区域。并且,验证信息VI可以进一步包括在这些区域中。
此外,在本实施例中,仅有成为取消映射操作的目标的物理地址PA可以包括在第一字节1的第一至第七位1至7、第六字节6的第五至第七位5至7以及第二至第五字节2至5中,这些区域是保留区域。并且,验证信息VI可以进一步包括在这些区域中。
图12B所示的取消映射请求UNMAP_REQ的取消映射参数列表描述符块可以与图12A所示的取消映射命令描述符块组合,并传送到存储器***110,并且包括逻辑地址LA、物理地址地址PA和验证信息VI中的至少一个。
图12B所示的取消映射参数列表描述符块的第四至第七字节4至7是保留区域,并且逻辑地址LA、物理地址PA和验证信息VI可以包括在作为保留区域的第四至第七字节4至7中。
当验证信息VI不包括在取消映射命令描述符块以及取消映射命令描述符块与取消映射参数列表描述符块的组合中时,根据本实施例的存储器***110可以使用存储在存储器144中的状态信息STATE_INF确定物理地址PA的有效性。
当验证信息VI包括在取消映射命令描述符块以及取消映射命令描述符块和取消映射参数列表描述符块的组合中时,根据本实施例的存储器***110可以使用存储在存储器144中的状态信息STATE_INF和验证信息VI中的任意一个来确定物理地址PA的有效性。
图13A是示出使用验证信息VI来确定从主机102接收的物理地址PA的有效性的方法的流程图。
参照图13A,控制器130可以从主机102接收取消映射请求UNMAP_REQ、对应于逻辑地址LA的物理地址PA和验证信息VI。主机102可以传送主机映射数据MAP_H的一部分,该主机映射数据MAP_H的一部分包括逻辑地址LA、与取消映射请求UNMAP_REQ有关联的物理地址PA。取消映射请求UNMAP_REQ可以包括以上参照图12A和图12B描述的取消映射请求描述符块以及取消映射请求描述符块和取消映射参数列表描述符块的组合。
在S1320中,控制器130确定所接收的验证信息VI是否与存储在控制器130中的验证信息VI相同并且对应于逻辑地址LA。
当所接收的验证信息VI与控制器130中存储的验证信息VI不同时(在S1320中为“否”),在S1330中,控制器130将从主机102接收的物理地址PA确定为无效地址。
当所接收的验证信息VI与控制器130中存储的验证信息VI相同时(在S1320中为“是”),在S1340中,控制器130将从主机102接收的物理地址PA确定为有效地址。
验证信息VI可以包括用于确定物理地址PA是否被入侵或者是否丢失了一些物理地址PA的字符CHA,以及用于确定L2P映射数据是否为最新的信息的版本信息VN。如果控制器130确定主机映射数据MAP_H已经被入侵或者主机映射数据MAP_H中已经发生数据丢失,则控制器130指示主机映射数据MAP_H无效,控制器130可以通过响应通知主机102在S1310中接收的物理地址PA无效。当接收的验证信息VI是加密的时,控制器130可以解密验证信息VI,然后执行步骤S1320。相应地,可以提高物理地址PA的安全性,并且可以提高存储器***的安全性。
当将版本信息VN用作验证信息VI时,在S1330中,控制器130可以确定物理地址PA是否是最新的。相应地,控制器130可以通过响应通知主机102主机映射数据MAP_H无效。
由于使用验证信息VI确定了物理地址PA的有效性,因此可以对处于最新状态的物理地址PA执行取消映射操作,而没有数据入侵和丢失。因此,可以提高根据本实施例的取消映射操作的可靠性。
图13B是示出使用状态信息STATE_INF来确定从主机102接收的物理地址PA的有效性的方法的流程图。
参照图13B,在S1350中,控制器130可以从主机102接收取消映射请求UNMAP_REQ、对应于逻辑地址LA的物理地址PA,而无验证信息VI。
在S1360中,控制器130可以通过检查与逻辑地址LA或物理地址PA对应的状态信息STATE_INF来确定所接收的物理地址PA的有效性。特别地,与逻辑地址LA对应的状态信息STATE_INF可以包括脏信息DIRTY_INF或取消映射信息UNMMAP_INF。在S1360中,与物理地址PA对应的状态信息STATE_INF可以包括无效地址信息INV_INF。
如果状态信息STATE_INF指示逻辑地址被取消映射或是脏的,或者物理地址无效(S1360中为“否”),则在S1370中,控制器130确定从主机102接收的物理地址PA是无效地址。
如果状态信息STATE_INF指示逻辑地址未被取消映射且不是脏的,或者物理地址不是无效的(S1360中为“是”),则在S1380中,控制器130确定从主机102接收的物理地址PA是有效地址。
由于使用状态信息STATE_INF简单地确定了从主机102接收到的物理地址PA的有效性,因此可以提高取消映射操作的速度。
以下参照图14至图17描述根据实施例的通过使用状态信息来执行取消映射操作的方法。
参照图14,在S110中,存储器***110可以从主机102与取消映射请求UNMAP_REQ和逻辑地址LA一起接收物理地址PA。在S120中,存储器***110可以确定与取消映射请求UNMAP_REQ一起接收的物理地址PA的有效性。
在图14的实施例中,控制器130可以使用无效地址信息INV_INF来确定物理地址PA的有效性。然而,本发明不限于此。控制器130可以通过检查与逻辑地址LA或物理地址PA对应的状态信息STATE_INF来确定从主机102接收的物理地址PA的有效性。特别地,与逻辑地址LA对应的状态信息STATE_INF可以包括脏信息DIRTY_INF或取消映射信息UNMMAP_INF。与物理地址PA对应的状态信息STATE_INF可以包括无效地址信息INV_INF。
当从主机102接收的物理地址PA无效时(在S120中为“否”),控制器130不执行取消映射操作。然后,在S165中,控制器130可以将第一响应R1传送到主机102。第一响应R1可以包括指示未执行取消映射操作的消息。第一响应R1可以进一步包括指示所接收的物理地址PA无效的消息。在主机102从控制器130接收第一响应R1之后,主机102可以向控制器130请求与逻辑地址LA有关的映射数据MAP_C,以更新主机映射数据MAP_H。即使没有主机102的请求,控制器130也可以将控制器映射数据MAP_C上载到主机102,并允许与逻辑地址LA有关的主机映射数据MAP_H被更新。随后,主机102可以将基于所更新的主机映射数据MAP_H将物理地址与取消映射请求UNMAP_REQ一起传送至控制器130。相应地,控制器130可以在将来从主机102接收包括有效物理地址PA的取消映射请求UNMAP_REQ。因此,可以提高取消映射操作的可靠性。
当与取消映射请求UNMAP_REQ一起接收的物理地址PA有效时(在S120中为“是”),在S140中,控制器130可以对物理地址PA执行取消映射操作,以将逻辑地址LA和有效物理地址PA之间的对应关系释放或解除映射。
取消映射操作用于将逻辑地址LA与对应于该逻辑地址LA的物理地址PA之间的关系释放或解除映射。即,在取消映射操作中,逻辑地址LA被改变为未分配物理地址的未分配状态。可以通过使当前分配给逻辑地址的物理地址无效来执行取消映射操作。
为了执行取消映射操作,在S140中,控制器130改变与逻辑地址LA对应的取消映射信息UNMMAP_INF的状态值。相应地,控制器130可以参照取消映射信息UNMMAP_INF来识别出逻辑地址已经被取消映射。在S140中,控制器130可以改变与物理地址PA对应的无效地址信息INV_INF的状态值,以使有效物理地址PA无效。相应地,控制器130可以参照无效地址信息INV_INF来识别映射到已经请求取消映射的逻辑地址的物理地址PA已被无效。
在执行取消映射操作之后,在S160中,控制器130可以改变有效页面计数器(VPC)以减少对应于对其执行了取消映射操作的无效物理地址PA的存储块中包括的有效页面的数量。
然后,在S167中,控制器130可以将第二响应R2传送到主机102。第二响应R2可以包括指示已经成功执行了取消映射操作的消息。第二响应R2可以进一步包括指示所接收的物理地址PA有效的消息。
图15A至图15E示出根据实施例的状态信息STATE_INF的示例。在本实施例中,状态信息STATE_INF可以包括脏信息DIRTY_INF、取消映射信息UNMAP_INF、无效地址信息INV_INF和有效页面计数器VPC。状态信息可以具有位图值。状态信息具有指示第一级别“0”的初始值,并被更新为第二级别“1”。在这种情况下,由于状态信息在存储器144中具有较少的存储空间,因此控制器130可以无负担地访问状态信息。状态信息可以以映射段为单位进行管理。状态信息可以具有计数器值或为列表形式。
图15A示出了在位图中管理的脏信息DIRTY_INF的示例。脏信息DIRTY_INF可以指示与逻辑地址LA对应的物理地址是否已改变,该信息指示与逻辑地址LA对应的数据的存储位置是否已改变。即,当映射数据被更新时,控制器130可以更新脏信息DIRTY_INF。
图15B示出了以位图形式管理的取消映射信息UNMAP_INF的示例。取消映射信息UNMAP_INF可以包括关于通过执行取消映射操作从物理地址解除映射的逻辑地址的映射信息。
图15C示出了以位图形式管理的无效地址信息INVALID_INF的示例。图15D示出了以列表形式管理的无效地址信息INVALID_INF的示例。无效地址信息可以包括无效页面的物理地址。在本发明的实施例中,无效地址信息可以包括其中当执行写入操作时存储无效的旧的写入数据或者执行取消映射操作的页面的物理地址
图15E示出了以计数器值管理的有效页面计数器VPC的示例。有效页面数量可以指示存储块中包括的有效页面的数量。
假设在图14的S110中从主机102与取消映射请求一起接收到逻辑地址LA“3”和物理地址PA“2004”,则控制器130在无效地址信息INV_INF中检查物理地址PA“2004”的状态值。参照图15C,与无效地址信息INV_INF的物理地址PA“2004”对应的状态值为“1”。状态值“1”可以指示对应的物理地址P是有效的物理地址,状态值“0”可以指示对应的物理地址PA是无效的物理地址。相应地,控制器130可以确定物理地址PA“2004”是有效的物理地址。
控制器130可以对逻辑地址LA“3”和有效物理地址PA“2004”执行取消映射操作。为此,在图15B中,控制器130可以通过将取消映射信息UNMAP_INF的状态值从“1”改变为“0”来对逻辑地址LA“3”执行取消映射操作。并且,在图15C中,控制器130可以通过将无效地址信息INV_INF的状态值从“1”改变为“0”来使有效物理地址PA“2004”无效。
当执行取消映射操作时,控制器130可以实际上不擦除与取消映射请求UNMAP_REQ一起接收的物理地址PA中存储的有效数据。相反,控制器130执行取消映射,以仅使从主机102接收的物理地址PA无效或改变与物理地址PA对应的逻辑地址LA的状态信息STATE_INF。相应地,可以提高执行取消映射操作的速度,并且可以增加无效数据管理的便利性。
返回参照图14,在执行取消映射操作之后,在S160中,控制器130可以减少与无效地址信息INV_INF中的无效物理地址对应的存储块的有效页面的数量。
参照图14和图15E,当假设无效物理地址PA“2004”是包括在第四存储块BLK3中的页面的物理地址时,在S140中,控制器130可以使物理地址PA“2004”无效,然后在S160中,将第四存储块BLK3中的有效页面计数器VPC的有效页面计数从“16”改变为“15”。
在上述实施例中,从主机102接收的物理地址PA对应于一个页面。然而,本发明不限于此。从主机102接收的物理地址PA可以对应于多个页面。例如,当物理地址PA对应于五个页面时,控制器130可以使与取消映射请求UNMAP_REQ一起接收的物理地址PA无效,然后将与五个页面对应的第四存储块BLK3中的有效页面计数器VPC从“16”改变为“11”。在另一情形下,当五个页面之中的两个页面在第一存储块BLK0中,而其它三个页面在第二存储块BLK1中时,控制器130可以将第一存储块BLK0中的有效页面计数器VPC从“10”改变为“8”,并且将包括在第二存储块BLK1中的有效页面计数器VPC从“15”改变为“12”。
根据本实施例的控制器130可以对具有由其有效页面计数器VPC指示的、小于设置值的有效页面计数的存储块执行垃圾收集操作。根据本实施例的控制器130可以对具有有效页面计数为0的存储块执行擦除操作。
参照图16描述了根据实施例的执行取消映射操作的方法。特别地,图16基于可以在技术上与图14区别开的特征示出了这种方法。当与取消映射请求UNMAP_REQ一起从主机102接收的物理地址PA无效时,图14所示的控制器130不执行取消映射操作。然而,当与取消映射请求UNMAP_REQ一起从主机102接收的物理地址PA无效时,图16所示的控制器130通过使用存储在控制器130的存储器144中的映射数据来执行取消映射操作。
参照图16,当物理地址PA无效时(在S120中为“否”),控制器130读取控制器映射数据MAP_C中、对应于逻辑地址LA的L2P映射段。在S150中,控制器130将逻辑地址LA转换为与控制器映射数据MAP_C中的逻辑地址LA对应的第一物理地址PA1。
在本实施例中,当从主机102接收的物理地址PA无效时,执行地址转换操作以搜索有效的第一物理地址PA1。相应地,因为对有效的第一物理地址PA1执行了取消映射操作,所以可以提高取消映射操作的灵活性和可靠性。随后,在S170中,控制器130可以执行取消映射操作以将逻辑地址LA和有效的第一物理地址PA1之间的对应关系释放或取消映射。为了执行取消映射操作,控制器130改变与逻辑地址LA对应的取消映射信息UNMMAP_INF的状态值。控制器130可以进一步改变与有效的第一物理地址PA1对应的无效地址信息INV_INF的状态值。
通过使第一物理地址PA1无效,可以使存储在与第一物理地址PA1对应的非易失性存储器元件中的有效数据无效。在执行取消映射操作之后,在S180中,控制器130减少由与第一物理地址PA1对应的存储块的VPC所保持的有效页面的数量的计数。
随后,在S190中,控制器130可以将第三响应R3传送到主机102。第三响应R3可以包括第一物理地址PA1和指示已经对第一物理地址PA1完全执行了取消映射操作的消息。在S196中,主机102可以根据从控制器130接收的第三响应R3来更新主机映射数据MAP_H。
根据本实施例,由于有效的第一物理地址PA1被反馈回主机102,因此可以提高主机映射数据MAP_H的管理的便利性和可靠性。此外,通过更新主机映射数据MAP_H,控制器130可以在将来从主机102接收包括有效的第一物理地址PA1的取消映射请求UNMAP_REQ。因此,可以提高取消映射操作的可靠性。
参照图17描述了根据实施例的用于执行取消映射操作的方法。特别地,图17基于可以在技术上与图14和图16区别开的特征示出了该方法。当与取消映射请求UNMAP_REQ一起从主机102接收的物理地址PA无效时,图14所示的控制器130不执行取消映射操作。然而,当与取消映射请求UNMAP_REQ一起从主机102接收的物理地址PA无效时,图17所示的控制器130通过使用存储在存储器装置150中的映射数据来执行取消映射操作。
当与取消映射请求UNMAP_REQ一起接收的物理地址PA无效时(在S120中为“否”),控制器130在存储器映射数据MAP_M中读取与逻辑地址LA对应的L2P映射段。在S155中,参照L2P映射段,控制器130将逻辑地址LA转换为与逻辑地址LA对应的第二物理地址PA2。
然后,执行地址转换操作以搜索有效的第二物理地址PA2。相应地,因为对有效的第二物理地址PA2执行了取消映射操作,所以可以提高取消映射操作的灵活性和可靠性。随后,在S175中,控制器130可以执行取消映射操作以将逻辑地址LA与有效的第二物理地址PA2之间的对应关系释放或取消映射。为了执行取消映射操作,控制器130改变与逻辑地址LA对应的取消映射信息UNMMAP_INF的状态值。控制器130可以进一步改变与有效的第二物理地址PA2对应的无效地址信息INV_INF的状态值。
通过使第二物理地址PA2无效,可以使存储在与第二物理地址PA2对应的非易失性存储器元件中的有效数据无效。在执行取消映射操作之后,在S185中,控制器130减少与第二物理地址PA2对应的存储块的VPC的有效页面的数量。
在S195中,控制器130可以传送第四响应R4。第四响应R4可以包括第二物理地址PA2和指示已经对第二物理地址PA2已完全执行取消映射操作的消息。在S197中,主机102可以根据从控制器130接收的第四响应R4来更新主机映射数据MAP_H。
根据本实施例,由于有效的第二物理地址PA2被反馈回主机102,因此可以提高主机映射数据MAP_H的管理的便利性和可靠性。此外,根据本实施例,当主机102从控制器130接收有效的第二物理地址PA2,并且更新主机映射数据MAP_H时,控制器130可以在将来从主机102接收包括有效的第二物理地址PA2的取消映射请求UNMAP_REQ。因此,可以提高取消映射操作的可靠性。
此外,根据本实施例,当从主机102接收的物理地址PA无效时,控制器130可以仅加载与从主机102接收的逻辑地址LA对应的物理地址PA或与从主机102接收的逻辑地址LA对应的L2P段,而不是存储在存储器装置150中的存储器映射数据MAP_M的全部。因此,可以减少存储器***的开销,可以提高存储器***的寿命,可以提高执行取消映射操作的速度。
参照图18至图20描述根据本公开的另一实施例的操作数据处理***100和存储器***以执行取消映射操作的方法。
特别地,根据图18至图20的实施例的数据处理***和存储器***示出了使用从主机102接收的逻辑地址LA和元数据来执行取消映射操作的方法。
图20示出了由主机102生成的仅包括逻辑地址LA的取消映射请求UNMAP_REQ的取消映射命令描述符块的示例。图20示出了由主机102生成的模式选择命令的命令描述符块(MCDB)的示例。
图18和19中所示的主机102和存储器***110的配置可以类似于图5中所述的主机102和存储器***110。图18和19所示的主机102和存储器***110可以在配置、操作或作用上不同于图5的主机102和存储器***110。
在图5中,存储器***110可以将主机102中包括的主机存储器106用作存储主机映射数据MAP_H的高速缓存存储器。在图18和图19中,存储器***110可以将主机102中的主机存储器106用作存储元数据(例如,存储器映射数据MAP_M)以及用户数据的缓冲器。
参照图18,主机存储器106可以包括操作区域106A和统一区域106B。主机存储器106的操作区域106A可以是在通过处理器104执行操作的过程中主机102用来存储数据或信号的空间。主机存储器106的统一区域106B可以是用于支持存储器***110的操作的空间而不是支持主机102的操作的空间。根据操作时间,主机存储器106可以用于其它目的。可以动态地确定操作区域106A和统一区域106B的大小。由于这些特征,主机存储器106可以称为暂时存储器或存储装置。
统一区域106B可以由主机102提供,为存储器***110分配主机存储器106的一部分。主机102可以不将统一区域106B用于主机102内部执行而与存储器***110无关的操作。在存储器***110中,存储器装置150可以包括非易失性存储器,与作为易失性存储器的主机102中的主机存储器106相比,该非易失性存储器花费更多的时间来读取、写入或擦除数据。当响应于来自主机102的请求而读取、写入或擦除数据花费或需要的时间变长时,为了连续地执行来自主机102的多个读取和写入命令,存储器***110中可能发生延迟。因此,为了提高或增强存储器***110的操作效率,主机102中的统一区域106B可以用作存储器***110的临时存储装置。
作为示例而非限制,当主机102准备将大量数据写入存储器***110时,存储器***110可能花费较长时间来将大量数据编程到存储器装置150。当主机102试图向存储器***110写入数据或从存储器***110读取其它数据时,由于先前的操作,相关联的写入或读取操作可能被延迟,即,存储器***110花费了较长时间将大量数据编程到存储器装置150中。在这种情况下,存储器***110可以请求主机102将大量数据复制到主机存储器106的统一区域106B,而不将这些数据编程到存储器装置150中。因为将数据从主机102中的操作区域106A复制到统一区域106B所需的时间比存储器***110将数据编程到存储器装置150所需的时间短得多,所以存储器***110可以避免将与其它数据相关联的写入或读取操作延迟。此后,当存储器***110未从主机102接收到读取、写入或删除数据的命令时,存储器***110可以将临时存储在主机存储器106的统一区域106B中的数据传送到存储器装置150。以这种方式,用户可能不会体验到速度慢的操作,而是可以体验到主机102和存储***110正在高速处理或处置用户的请求。
存储器***110的控制器130可以使用主机102中的主机存储器106的分配的部分(例如,统一区域106B)。主机102可能不涉及存储器***110执行的操作。主机102可以将具有逻辑地址的诸如读取、写入、删除或取消映射的指令传送到存储器***110中。控制器130可以将逻辑地址转换为物理地址。当控制器130中的第一存储器144的存储容量太小而无法加载用于将逻辑地址转换为物理地址的元数据时,控制器130可以将元数据存储在主机102中的主机存储器106的统一区域106B中。在实施例中,使用存储在主机存储器106的统一区域106B中的元数据,控制器130可以执行地址转换(例如,识别与从主机102接收的逻辑地址对应的物理地址)。
例如,主机存储器106的操作速度以及主机102与控制器130之间的通信速度可以比控制器130访问存储器装置150并读取存储在存储器装置150中的数据的速度更快。因此,控制器130可以根据需要从主机存储器106快速加载元数据,而不是根据需要从存储器装置150加载存储的元数据。
当元数据(L2P映射)存储在主机102的主机存储器106中时,可以如参照图18至20所述执行由主机102请求的取消映射操作。
在向主机102和存储器***110供应电力之后,主机102和存储器***110可以可操作地接合。当主机102和存储器***110协作时,可以将存储在存储器装置150中的元数据(L2P映射)传送到主机存储器106中。主机存储器106的存储容量可以大于存储器***110中的控制器130使用的第一存储器144的存储容量。因此,即使存储器装置150中存储的元数据(L2P映射)的一些或全部被全部或大部分传输到主机存储器106中,也可能不会给主机102和存储器***110的操作带来负担。传送到主机存储器106中的元数据(L2P映射)可以存储在图18中的统一区域106B中。
如图18到20所示,主机102中的处理器104发出可以是取消映射命令形式的取消映射请求,该取消映射请求可以传送到主机控制器接口108。主机控制器接口108可以接收取消映射请求,然后将具有逻辑地址的取消映射请求传送到存储器***110的控制器130(带有LA的UNMAP_REQ)。
如图20所示,逻辑地址LA可以包括在取消映射命令描述符块的保留区域中。主机控制器接口108可以将逻辑地址LA传送到存储器***110。
当第一存储器144不包括与从主机102输入的逻辑地址有关的元数据时,存储器***110中的控制器130可以从主机控制器接口108请求与逻辑地址对应的元数据(L2P映射请求)。
随着存储器装置150的存储容量增加,更多容量可以用于存储逻辑地址。例如,存储逻辑地址的范围所需的容量可以取决于存储器装置150的存储容量。主机存储器106可以存储与大多数或所有逻辑地址对应的元数据,但是存储器中的第一存储器144***110可能没有足够的空间来存储元数据。当控制器130可以确定与取消映射请求UNMAP_REQ一起来自主机102的逻辑地址可以属于特定范围(例如,LBN120至LBN600)时,控制器130可以请求主机控制器接口108传送对应于特定范围(例如,LBN120至LBN600)或更大的范围(例如,LBN100至LBN800)的一个或多个元数据。主机控制器接口108可以将控制器130请求的元数据传送到存储器***110。传送的元数据(L2P映射)可以存储在存储器***110的第一存储器144中。
主机控制器接口108可以响应于控制器130的请求将存储在主机存储器106中的元数据(L2P映射)的对应部分传送到存储器***110。
在这种情况下,主机控制器接口108可以将控制器130请求的主机映射数据MAP_H的一部分包括在图12B所示的取消映射参数列表的描述符块中,并将该部分传送到存储器***110。此外,主机控制器接口108可以将图20所示的模式选择命令的命令描述符块MCDB传输到存储器***110。
在这种情况下,模式选择命令的命令描述符块MCDB的保留区域可以包括用于通知主机映射数据MAP_H和字符CHA的传输的提要或描述。
存储器***110可以响应于模式选择命令的命令描述符块MCDB而向主机控制器接口108传送包括准备传输的“准备传输UPIU”的响应,其包括准备接收数据的消息。
当从存储器***110接收到响应时,主机控制器接口108可以将包括主机映射数据MAP_H和字符CHA的数据输出UPIU传送到存储器***110。
从主机控制器接口108传送的主机映射数据MAP_H可以作为控制器映射数据MAP_C存储在存储器***110中的存储器144中。
控制器130可以基于存储在存储器144中的控制器映射数据MAP_C来识别从主机102传送的与逻辑地址LA对应的物理地址PA。控制器130可以确定物理地址PA的有效性并使用物理地址PA以对存储器装置150执行取消映射操作。
如上所述,主机存储器106用作存储元数据(L2P映射)的缓冲器,使得控制器130可能不立即从存储器装置150读取或存储元数据(L2P映射)。相应地,可以改善或增强存储器***110的操作效率。
如上所述,可以基于参照图10至图17和图18至图20描述的不同实施例来提高存储器***110的操作效率。存储器***110可以将包括在主机102中的主机存储器106的一部分作为高速缓存或缓冲器使用,并存储元数据或用户数据,从而克服了存储器***110中的控制器130所使用的存储器144的存储空间的限制。
根据本发明的实施例的存储器***、数据处理***及其驱动方法的效果如下。
根据实施例,可以减少存储器***的开销,并且可以提高存储器***的寿命和执行取消映射操作的速度。
根据实施例,可以提高执行取消映射操作的速度,并且可以增加无效数据管理的便利性。
根据实施例,可以提高擦除操作的效率。
根据实施例,可以在提高操作效率的同时降低制造成本。
根据实施例,可以提高存储器***的可靠性。
根据本公开的实施例,数据处理***和操作数据处理***的方法可以避免或减少数据传输中由于在将数据处理***中的大量数据编程到非易失性存储块的过程中的编程操作验证而发生的延迟,从而提高数据处理***或数据处理***的存储器***的数据输入/输出(I/O)性能。
尽管已经关于特定实施例示出和描述了本发明,但是对本领域技术人员显而易见的是,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。本发明包括落入权利要求及其等同物范围内的所有这些改变和修改。
Claims (21)
1.一种存储器***,包括:
存储器装置,包括多个存储器元件,并且存储L2P映射数据;以及
控制器:
通过存储所述L2P映射数据的至少一部分和所述L2P映射数据的状态信息来控制所述存储器装置,
确定与取消映射请求一起从外部装置接收的第一物理地址的有效性,以及
当确定所述第一物理地址有效时,对所述第一物理地址执行取消映射操作。
2.根据权利要求1所述的存储器***,其中所述取消映射操作包括:改变与有效的所述第一物理地址或者映射到有效的所述第一物理地址的逻辑地址对应的状态信息的值,以使有效的所述第一物理地址无效。
3.根据权利要求2所述的存储器***,其中所述状态信息包括无效地址信息、脏信息和取消映射信息。
4.根据权利要求1所述的存储器***,其中在执行所述取消映射操作之后,所述控制器减少与所述第一物理地址对应的存储块的有效页面的数量的计数。
5.根据权利要求4所述的存储器***,其中所述控制器对有效页面的数量小于设置数量的存储块执行垃圾收集操作。
6.根据权利要求4所述的存储器***,其中所述控制器对不具有有效页面的存储块执行擦除操作。
7.根据权利要求1所述的存储器***,其中所述取消映射请求包括丢弃命令和擦除命令。
8.根据权利要求1所述的存储器***,其中所述控制器使用所述状态信息来确定所述第一物理地址的有效性。
9.根据权利要求1所述的存储器***,其中当所述第一物理地址无效时,所述控制器在所述L2P映射数据中搜索与从所述外部装置接收的逻辑地址对应的有效的第二物理地址,并对在搜索中找到的有效的所述第二物理地址执行所述取消映射操作。
10.根据权利要求1所述的存储器***,其中存储在所述控制器中的所述L2P映射数据包括基于所述L2P映射数据的加密而生成的第一验证信息和基于所述L2P映射数据的更新版本而生成的第二验证信息。
11.根据权利要求10所述的存储器***,其中所述控制器使用所述第一验证信息或所述第二验证信息来确定所述第一物理地址的有效性。
12.一种数据处理***,包括:
存储器***,存储多个存储器元件的L2P映射数据;以及
主机,存储所述L2P映射数据的至少一部分,并且将取消映射请求和所述取消映射请求的目标物理地址传送到所述存储器***,
其中所述存储器***确定所述目标物理地址的有效性,并且在确定所述目标物理地址有效时,对所述目标物理地址执行取消映射操作。
13.根据权利要求12所述的数据处理***,其中所述存储器***使用所述L2P映射数据的状态信息来确定所述目标物理地址的有效性。
14.根据权利要求13所述的数据处理***,其中所述状态信息包括无效地址信息、脏信息和取消映射信息。
15.根据权利要求13所述的数据处理***,其中所述存储器***通过改变与所述第一物理地址或映射到所述第一物理地址的逻辑地址对应的状态信息的值来执行所述取消映射操作,以使有效的所述第一物理地址无效。
16.根据权利要求12所述的数据处理***,其中存储在所述存储器***中的所述L2P映射数据包括基于所述L2P映射数据的加密而生成的第一验证信息和基于所述L2P映射数据的更新版本而生成的第二验证信息。
17.根据权利要求16所述的数据处理***,其中所述存储器***使用所述第一验证信息或所述第二验证信息来确定所述物理地址的有效性。
18.一种控制器,包括:
存储器,存储L2P映射数据以及所述L2P映射数据的状态信息;以及
操作执行模块,通过改变对应于物理地址的状态信息的值来执行取消映射操作以使所述物理地址无效,所述物理地址从外部装置与取消映射请求一起接收。
19.根据权利要求18所述的控制器,其中所述L2P映射数据表示多个非易失性存储器元件的逻辑地址和物理地址之间的关系。
20.根据权利要求19所述的控制器,其中所述操作执行模块将所述L2P映射数据的至少一部分传送到所述外部装置。
21.一种数据处理***的操作方法,所述操作方法包括:
由存储器***存储至少L2P映射数据和所述L2P映射数据内的有效条的L2P映射数据的有效性信息;
由主机高速缓存所述L2P映射数据的至少部分;
由所述主机向所述存储器***提供取消映射请求以及从高速缓存的部分中检索到的物理地址;以及
由所述存储器***响应于所述取消映射请求以使得与所述物理地址对应的有效性信息无效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0018972 | 2019-02-19 | ||
KR1020190018972A KR20200100955A (ko) | 2019-02-19 | 2019-02-19 | 메모리 시스템의 맵 데이터 관리 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111581122A true CN111581122A (zh) | 2020-08-25 |
Family
ID=72042090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911288108.4A Withdrawn CN111581122A (zh) | 2019-02-19 | 2019-12-15 | 用于管理存储器***中的映射数据的方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200264973A1 (zh) |
KR (1) | KR20200100955A (zh) |
CN (1) | CN111581122A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756404A (zh) * | 2022-06-15 | 2022-07-15 | 上海江波龙数字技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210018570A (ko) * | 2019-08-05 | 2021-02-18 | 에스케이하이닉스 주식회사 | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 |
US11138108B2 (en) * | 2019-08-22 | 2021-10-05 | Micron Technology, Inc. | Logical-to-physical map synchronization in a memory device |
KR20210063764A (ko) * | 2019-11-25 | 2021-06-02 | 에스케이하이닉스 주식회사 | 메모리 시스템의 동작 방법 및 장치 |
US11693781B2 (en) * | 2020-08-20 | 2023-07-04 | Micron Technology, Inc. | Caching or evicting host-resident translation layer based on counter |
JP2022147909A (ja) * | 2021-03-24 | 2022-10-06 | キオクシア株式会社 | メモリシステム |
US11556482B1 (en) * | 2021-09-30 | 2023-01-17 | International Business Machines Corporation | Security for address translation services |
US11960757B2 (en) | 2021-10-04 | 2024-04-16 | Samsung Electronics Co., Ltd. | Flash translation layer with rewind |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804023A (zh) * | 2017-04-28 | 2018-11-13 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
US20190004944A1 (en) * | 2017-06-29 | 2019-01-03 | Western Digital Technologies, Inc. | System and method for host system memory translation |
-
2019
- 2019-02-19 KR KR1020190018972A patent/KR20200100955A/ko active Search and Examination
- 2019-12-15 CN CN201911288108.4A patent/CN111581122A/zh not_active Withdrawn
- 2019-12-24 US US16/726,733 patent/US20200264973A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804023A (zh) * | 2017-04-28 | 2018-11-13 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
US20190004944A1 (en) * | 2017-06-29 | 2019-01-03 | Western Digital Technologies, Inc. | System and method for host system memory translation |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756404A (zh) * | 2022-06-15 | 2022-07-15 | 上海江波龙数字技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114756404B (zh) * | 2022-06-15 | 2024-04-05 | 上海江波龙数字技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200264973A1 (en) | 2020-08-20 |
KR20200100955A (ko) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294825B2 (en) | Memory system for utilizing a memory included in an external device | |
CN111581122A (zh) | 用于管理存储器***中的映射数据的方法和设备 | |
KR20210027642A (ko) | 메모리 시스템에서 맵 정보를 전송하는 방법 및 장치 | |
US11675527B2 (en) | Memory system uploading hot metadata to a host based on free space size of a host memory, and read operation method thereof | |
US10963160B2 (en) | Apparatus and method for checking valid data in block capable of storing large volume data in memory system | |
US11354250B2 (en) | Apparatus for transmitting map information in memory system | |
US11645213B2 (en) | Data processing system allocating memory area in host as extension of memory and operating method thereof | |
US11126562B2 (en) | Method and apparatus for managing map data in a memory system | |
CN114077383A (zh) | 数据处理***中共享数据的设备和方法 | |
US11681633B2 (en) | Apparatus and method for managing meta data in memory system | |
US11281574B2 (en) | Apparatus and method for processing different types of data in memory system | |
US20200250104A1 (en) | Apparatus and method for transmitting map information in a memory system | |
US11874775B2 (en) | Method and apparatus for performing access operation in memory system utilizing map data including mapping relationships between a host and a memory device for storing data | |
US11275682B2 (en) | Memory system and method for performing command operation by memory system | |
US11960411B2 (en) | Apparatus for transmitting map information in memory system | |
US11366611B2 (en) | Apparatus for transmitting map information in a memory system | |
KR20210063814A (ko) | 메모리 시스템의 리드 동작 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200825 |