CN112286835A - 管理存储器系统中的元数据的设备和方法 - Google Patents

管理存储器系统中的元数据的设备和方法 Download PDF

Info

Publication number
CN112286835A
CN112286835A CN202010639871.3A CN202010639871A CN112286835A CN 112286835 A CN112286835 A CN 112286835A CN 202010639871 A CN202010639871 A CN 202010639871A CN 112286835 A CN112286835 A CN 112286835A
Authority
CN
China
Prior art keywords
controller
information
memory
mapping
host
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
CN202010639871.3A
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 CN112286835A publication Critical patent/CN112286835A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种存储器系统。该存储器系统可以包括:存储器装置,适用于存储数据;以及控制器,适用于生成和管理映射数据,该映射数据包括外部装置的逻辑地址和存储器装置的与该逻辑地址相对应的物理地址。该控制器将映射数据中的至少一些上传到外部装置,并且基于脏信息或访问信息再次将最新版本的经上传映射数据上传到外部装置。该脏信息指示与经上传映射数据中包括的逻辑地址相对应的物理地址是否已被改变。该访问信息指示是否已经从外部装置发出针对经上传映射数据中包括的逻辑地址的访问请求。

Description

管理存储器系统中的元数据的设备和方法
相关申请的交叉引用
本申请要求于2019年7月22日提交的申请号为10-2019-0088385的韩国专利申请的优先权,该韩国专利申请的公开内容通过引用全部并入本文。
技术领域
各个实施例涉及一种存储器系统和包括该存储器系统的数据处理设备,更特别地,涉及一种用于管理存储器系统的元数据的方法和设备。
背景技术
近来,计算环境的范例已经转变为使得可以随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正在迅速增加。这种便携式电子装置通常使用或者包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,由于其不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有较高的数据访问速度和低功耗。在具有这种优点的存储器系统的背景中,数据存储装置可以通过USB(通用串行总线)存储器装置、具有各种接口中的任一种的存储卡、固态驱动器(SSD)等来实施。
发明内容
各个实施例涉及一种装置、设备和方法,该装置、设备和方法可减少数据处理设备内的存储器系统与计算设备或主机之间的数据传输的开销,这由于存储器系统在数据处理设备中传输映射数据的操作而引起,在该数据处理设备中存储器系统可以将映射数据传输到计算设备或主机,并且计算设备或主机可以使用该映射数据将地址与命令一起传输到存储器系统。
而且,各个实施例涉及一种存储器系统、数据处理系统以及驱动它们的方法,该存储器系统、数据处理系统以及驱动它们的方法可通过将映射数据的状态信息细分为多个映射段子区域而不是映射数据的映射段单位,并且管理针对每个所划分的映射段子区域的状态信息,来提高映射数据管理的效率。
而且,各个实施例涉及一种存储器系统、数据处理系统以及驱动它们的方法,该存储器系统、数据处理系统以及驱动它们的方法可减少由于不必要的L2P转换而引起的存储器系统的开销,从而提高了存储器系统的命令操作的运行速度和命令操作的效率,因为该存储器装置对从外部装置与命令一起接收到的物理地址执行命令操作。
而且,各个实施例涉及一种存储器系统、数据处理系统以及驱动它们的方法,该存储器系统、数据处理系统以及驱动它们的方法可以通过改变存储在存储器装置中的映射数据的状态信息,提高映射数据管理的便利性。状态信息可以以位图形式,标志形式,表格形式或列表形式表示。状态信息指示与给定逻辑地址相对应的物理地址是否已被改变和无效。换句话说,状态信息可以指示存储在存储器装置中的用户数据的存储位置(即,物理地址)是否被改变。
而且,各个实施例涉及一种存储器系统、数据处理系统及以及驱动它们的方法,该存储器系统、数据处理系统以及驱动它们的方法可提高确定物理地址有效性的操作的速度,从而提高命令操作的速度,因为存储器系统基于映射数据的状态信息,确定从外部装置接收到的物理地址以及命令的有效性,而无需单独的映射数据搜索。
根据本公开的实施例,一种存储器系统,包括:存储器装置,适用于存储数据;以及控制器,适用于生成和管理映射数据,该映射数据包括外部装置的逻辑地址以及存储器装置的与该逻辑地址相对应的物理地址,其中该控制器将映射数据中的至少一些上传到外部装置,其中该控制器基于脏信息或访问信息中的至少一个,将最新版本的经上传映射数据上传到外部装置,其中该脏信息指示与经上传映射数据中的逻辑地址相对应的物理地址是否已经改变,并且该访问信息指示是否已经从外部装置发出针对经上传映射数据中的逻辑地址的访问请求。
控制器以映射段为单位将最新版本的经上传映射数据存储在存储器装置中。控制器将经上传映射数据的映射段中的每一个划分为多个子段,并且控制器针对子段中的每一个生成脏信息和访问信息。控制器基于子段的脏信息或访问信息中的至少一个设置映射段的上传优先级,并且控制器基于所设置的上传优先级,针对每个映射段将映射数据上传到外部装置。脏信息最初具有第一值,并且当与子段中的逻辑地址相对应的物理地址改变时,控制器将子段的脏信息的第一值更新为第二值。访问信息最初具有第一值,并且当外部装置发出对子段中的逻辑地址的访问请求时,控制器将子段的访问信息的第一值更新为第二值。访问信息最初具有第一值,并且每当外部装置发出对子段中的逻辑地址的访问请求时,控制器将子段的访问信息的第一值更新为相对于第一值增加1的第二值,该第二值包括多个值。控制器针对包括更大数量的脏信息由第二值表示的子段的映射段设置更高的上传优先级。控制器针对包括更大数量的访问信息由第二值表示的子段的映射段设置更高的上传优先级。控制器针对具有访问信息由多个第二值的较高值表示的子段的映射段设置更高的上传优先级。控制器针对具有更大数量的脏信息由第二值表示并且访问信息由第二值表示的子段的映射段设置更高的上传优先级。控制器针对在具有脏信息由第二值表示或者访问信息由第二值表示的子段的映射段之中、具有更大数量的脏信息由第二值表示的子段的映射段设置更高的上传优先级。控制器针对在具有脏信息由第二值表示或者访问信息由第二值表示的子段的映射段之中、具有更大数量的访问信息由多个第二值中的较高值表示的子段的映射段设置更高的上传优先级。控制器针对在具有脏信息由第二值表示并且访问信息由第二值表示的子段的映射段之中、具有访问信息由多个第二值的较高值表示的子段的映射段设置更高的上传优先级。控制器针对在具有脏信息由第二值表示并且访问信息由第二值表示的子段的映射段之中、具有更大数量的访问信息由一个或更高的第二值表示的子段的映射段设置更高的上传优先级。当从外部装置接收到命令、与该命令相对应的第一逻辑地址以及与该第一逻辑地址相对应的第一物理地址时,控制器从映射数据中识别出包括第一逻辑地址的第一子段,并且进一步使用第一子段的第一脏信息来确定第一物理地址是否有效。当第一脏信息由第一值表示时,控制器确定第一物理地址为有效,并且当第一脏信息由第二值表示时,控制器确定第一物理地址为无效。控制器对有效的第一物理地址执行根据命令的命令操作,并且控制器更新第一子段的第一访问信息。第一访问信息以位图形式或计数器形式表示。
根据本公开的实施例,一种存储器系统,包括:存储器装置,适用于存储数据;以及控制器,适用于生成和更新映射数据,该映射数据包括外部装置的逻辑地址和存储器装置的与该逻辑地址相对应的物理地址,其中该控制器以映射段为单位将最新版本的映射数据存储在存储器装置和外部装置中,并且该控制器以映射段的子段为单位,生成和更新关于上传到外部装置的映射数据的状态信息。
该状态信息包括:脏信息,指示与子段中的逻辑地址相对应的物理地址是否已经改变;以及访问信息,指示外部装置是否已经访问了子段中的逻辑地址。控制器基于子段的脏信息或子段的访问信息将映射数据传输到外部装置。当从外部装置接收到命令、与该命令相对应的第一逻辑地址以及与该第一逻辑地址相对应的第一物理地址时,控制器使用包括第一逻辑地址的第一子段的第一脏信息来确定第一物理地址是否有效。控制器对有效的第一物理地址执行根据命令的命令操作,并且控制器在执行命令操作之后更新第一子段的第一访问信息。
根据本公开的实施例,一种控制器的操作方法,该操作方法包括:生成一个或多个系统段,每个系统段包括一个或多个子段,每个子段具有一条或多条信息,每条信息表示逻辑地址与物理地址之间的映射关系;将系统段提供到主机以存储为主机段;访问存储器装置内的、与从主机提供的信息中包括的物理地址有关的区域;并且基于表示物理地址是否已改变以及该区域是否已被访问中的至少一个的历史信息,更新主机段中的一个或多个,其中该系统段内的子段包括与子段相对应的多条历史信息。
根据以下描述,本公开所属领域的技术人员将理解其它技术目的和效果。
附图说明
图1A和图1B示出由根据本公开的实施例的存储器系统生成状态信息的方法的示例。
图2是示出根据本公开的实施例的数据处理系统的示意图。
图3是示出根据本公开的另一实施例的数据处理系统的示意图。
图4是示出根据本公开的实施例的存储器系统中的数据处理操作的示意图。
图5是示出根据本公开的实施例的存储器装置的示意图。
图6是示出最初上传映射数据的进程的流程图。
图7是示出更新映射数据的进程的框图和流程图。
图8示出根据本公开的实施例的数据处理系统中的主机和存储器系统的读取操作。
图9A和图9B示出根据本公开的实施例的管理脏信息的方法的示例。
图10和图11示出由根据本公开的实施例的数据处理系统执行命令操作的方法的示例。
图12、图13A、图13B、图14A和图14B示出由根据本发明的实施例的存储器系统执行命令操作的方法的示例。
图15至图18示出由根据本公开的实施例的存储器系统执行映射上传操作的方法的示例。
图19A至图23示出由根据本发明的实施例的存储器系统执行映射上传操作的方法的另一示例。
具体实施方式
以下参照附图详细地描述本公开的各个实施例。然而,本公开可以以不同的形式实施而不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开是彻底的和完整的,并且向本领域技术人员充分传达本公开的范围。在整个本公开中,相同的附图标记在整个本公开的各个附图和实施例中表示相同的部件。
在下文中,参照附图更详细地描述本公开的各个实施例。注意的是,在下面的描述中,可以省略对公知材料的描述,以免不必要地模糊本公开的方面和特征。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1A和图1B是示出由根据本公开的实施例的存储器系统生成上传到主机的元数据的状态信息的方法的示图。
元数据可以包括关于与由存储器系统从主机即外部装置接收到的命令相对应的命令数据的信息、关于与命令相对应的命令操作的信息、关于执行命令操作的存储器装置的存储块的信息以及关于与命令操作相对应的映射数据的信息。换言之,元数据可以包括除了与从主机接收到的命令相对应的编程数据之外的与该命令有关的任何和所有信息和数据。
此外,元数据可以包括存储在存储器系统中并且配置有L2P映射段L2P_MS的映射数据,逻辑地址LA和与该逻辑地址LA相对应的物理地址PA已经映射到该L2P映射段L2P_MS。
如果存储器系统将映射数据传输到主机,则可以以具有设定大小的映射段单位执行操作。这是为了提高存储器系统与主机之间的数据通信的效率。因此,存储器系统可将关于与多个逻辑地址LA相对应的多个物理地址PA的信息同时传输到主机。例如,一个L2P映射段L2P_MS可以包括连接多个逻辑地址LA和多个物理地址PA的信息。
下面参照图7和其它附图描述由存储器系统将映射数据传输到主机的进程。此外,下面参照图8和其它附图描述由存储器系统与主机共享映射数据而可获得的效果。
参照图1A,根据本公开的实施例的存储器系统通过划分映射数据中包括的多个L2P映射段L2P_MS中的每一个来生成多个L2P子段L2P_MS_SUB(S10)。在这种情况下,多个L2P映射段L2P_MS可以已经从存储器系统传输到主机。此外,存储器系统生成关于所生成的多个子段L2P_MS_SUB的每一个的状态信息STATE_INF(S30)。
根据本公开的实施例的状态信息STATE_INF可以指示非易失性存储器元件以及存储器系统中包括的映射数据的状态。具体地,根据本公开的实施例的状态信息STATE_INF可以包括脏信息D_INF、无效地址信息INV_INF、访问信息A_INF和优先级信息P_INF。
脏信息D_INF和访问信息A_INF可以表示物理地址是否已经改变以及区域是否与该物理地址有关中的至少一个。因此,脏信息D_INF和访问信息A_INF可以被称为历史信息。
脏信息D_INF可以是位图形式,该位图形式具有第一级别的初始值(例如,0),当与给定逻辑地址LA相对应的物理地址改变时,利用第二级别的值(例如,1)来对该第一级别的初始值进行更新。
无效地址信息INV_INF可以指示关于与给定逻辑地址LA相对应的物理地址的信息,并且可以是位图形式,该位图形式具有第一级别的初始值,当物理地址无效时,利用第二级别的值(例如,1)来对该第一级别的初始值进行更新。
访问信息A_INF可以是位图形式,该位图形式具有第一级别的初始值,当从主机接收到针对给定逻辑地址LA的访问请求时,利用第二级别的值(例如,1)来对该第一级别的初始值进行更新。在另一实施例中,访问信息A_INF可以是计数器形式,该计数器形式具有第一级别的初始值,并且每当从主机接收到针对逻辑地址LA的访问请求时都会增加。来自主机的针对逻辑地址LA的访问请求意为主机请求对与逻辑地址LA相对应的数据进行访问(例如,读取请求)。
优先级信息P_INF可以包括上传映射数据中包括的映射段的优先级信息。具体地,物理地址已改变并且主机已请求访问的映射数据可以具有较高的上传优先级。
根据本公开的实施例的存储器系统可以使用脏信息D_INF或无效地址信息INV_INF来确定从主机与命令一起接收到的物理地址的有效性。此外,根据本公开的实施例的存储器系统可以使用脏信息D_INF和访问信息A_INF来生成优先级信息P_INF。此外,根据本公开的实施例的存储器系统可以基于优先级信息P_INF将映射数据中包括的映射段上传到主机。
参照图1B,映射数据可以包括多个L2P映射段L2P_MS#0至L2P_MS#3。例如,第一L2P映射段L2P_MS#0包括针对逻辑地址“LA0至LA19”的L2P映射数据。第二L2P映射段L2P_MS#1包括针对逻辑地址“LA20至LA39”的L2P映射数据。第三L2P映射段L2P_MS#2包括针对逻辑地址“LA40至LA59”的L2P映射数据。第四L2P映射段L2P_MS#3包括针对逻辑地址“LA60至LA79”的L2P映射数据。也就是说,L2P映射段中的每一个可以包括针对20个逻辑地址的L2P映射数据。
根据本公开的实施例的多个L2P映射段L2P_MS#0至L2P_MS#3中的每一个可包括多个L2P子段L2P_MS#n_SUB#0至L2P_MS#n_SUB#3。因此,针对多个L2P映射段L2P_MS#0至L2P_MS#3中的每一个包括的多个L2P子段L2P_MS#n_SUB#0至L2P_MS#n_SUB#3中的每一个,可以生成和更新根据本公开的实施例的状态信息STATE_INF。也就是说,L2P子段中的每一个可以包括针对5个逻辑地址的L2P映射数据。
此外,根据本公开的实施例的状态信息STATE_INF可以具有位图形式。由于状态信息STATE_INF具有简单的位图形式(例如,1或0),因此该状态信息STATE_INF在存储器系统中占据的存储空间较小,从而可减轻存储器系统访问状态信息STATE_INF的负担。此外,根据本公开的实施例的状态信息STATE_INF可以具有计数器形式。此外,根据本公开的实施例的状态信息STATE_INF可以具有标志形式、表格形式或列表形式。
在这种情况下,在步骤S30中生成的状态信息STATE_INF的状态值可以具有初始值“0”。当映射数据的状态改变时,该状态值可以改变(例如,“1”)。
如果存储器系统反复向主机传输不是最新版本的映射数据,则存储器系统与主机之间的数据通信会发生开销,并且效率可能会降低。然而,参照图1A和图1B,可更精确地识别从存储器系统传输到主机的映射数据是否已被更新或是否已经使用了映射数据。如果存储器系统基于是否已经更新了映射数据或者是否已经使用了映射数据来确定替换从存储器系统传输到主机的映射数据的时刻(即,映射数据的重新传输),则可避免存储器系统和主机之间的不必要数据通信。
图2是示出根据本公开的实施例的数据处理系统100的框图。
参照图2,数据处理系统100可以包括与存储器系统110可操作地接合的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等的电子装置中的任意一种。
主机102也包括至少一个操作系统(OS),其通常管理和控制在主机102中执行的功能和操作。OS可提供与存储器系统110接合的主机102和存储器系统110的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以是通用操作系统或移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可以用于支持针对一般目的的服务。但是,企业操作系统可专门用于保护和支持高性能,包括Windows服务器、Linux、Unix等。进一步,移动操作系统可以包括Android、iOS、WindowsMobile等。移动操作系统可以用于支持针对移动性的服务或功能(例如,省电功能)。主机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),并且/或者存储器系统110的存储装置可以利用诸如以下的非易失性存储器装置来实施:只读存储器(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)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供电,其也可保留其中存储的数据。存储器装置150可以通过写入操作来存储从主机102提供的数据,同时通过读取操作将其中存储的数据提供到主机102。存储器装置150可以包括多个存储块152、154、156,多个存储块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)、增强型小型磁盘接口(ESDI)以及/或者电子集成驱动器(IDE)。根据实施例,主机接口132是用于与主机102交换数据的组件,其可以通过称为主机接口层(HIL)的固件来实施。
ECC组件138可校正待在存储器装置150中处理(例如,从其输出)的数据的错误位,该ECC组件138可以包括ECC编码器和ECC解码器。此处,ECC编码器可对待编程在存储器装置150中的数据执行错误校正编码,以生成添加了奇偶校验位的经编码数据,并将经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC组件138可确定错误校正解码是否成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ECC组件138可使用在ECC编码进程期间所生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC组件138可以包括基于上述代码中的至少一个来执行错误校正操作的任何和所有电路、模块、系统或装置。
PMU 140可以管理在控制器130中提供的电力。
存储器接口142可以用作处理控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。在当存储器装置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使用处理器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的性能。
参照图3,描述了根据本公开的另一实施例的存储器系统中的控制器。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括主机接口132、闪存转换层(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可至少基于它们的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置为确定该缓冲器管理器是否应将命令、数据等存储在存储器144中,或者该缓冲器管理器是否应将命令、数据等传递到闪存转换层(FTL)40中。事件队列54接收从缓冲器管理器52输入的事件,这些事件将响应于从主机102传输的命令、数据等而由存储器系统110或控制器130在内部执行和处理,以便按照接收到的顺序将事件传递到闪存转换层(FTL)40中。
根据实施例,参照图3描述的主机接口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中的块执行命令或指令。
作为示例而非限制,主机请求管理器46可根据读取命令和编程命令以及从主机接口132传递的事件使用映射管理器44和块管理器48来处置或处理请求。主机请求管理器46可向映射管理器44传输查询请求,以确定与随事件一起输入的逻辑地址相对应的物理地址。主机请求管理器46可将具有该物理地址的读取请求传输到存储器接口142,以处理读取请求(处置事件)。另一方面,主机请求管理器46可向块管理器48传输编程请求(写入请求),以将数据编程到存储器装置150中的特定空页面(无数据),然后可向映射管理器44传输与编程请求相对应的映射更新请求,以在将逻辑-物理地址彼此映射的信息中更新与经编程数据有关的项目。
此处,块管理器48可将从主机请求管理器46、映射数据管理器44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(参见图2)的编程或写入性能,块管理器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存储块可在存储容量方面高度集成。在实施例中,存储器装置150可以利用不同层的MLC存储块来实施,诸如双层存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合。双层存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可利用包括由每个能够存储5位数据或更多位数据的存储器单元实施的多个页面的块实施。
在本公开的实施例中,存储器装置150被实施为诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM)等中的至少一个来实施。
图4是描述根据实施例的关于存储器系统中的存储器装置的数据处理操作的示意图。
参照图4,控制器130可以执行与从主机102接收到的命令相对应的命令操作,例如,与写入请求相对应的编程操作。控制器130可以在存储器装置150的存储块(Block)552、554、562、564、572、574、582和584中写入和存储与该写入请求相对应的用户数据。而且,对应于对那些存储块的写入操作,控制器130可以生成和更新针对用户数据的元数据,并且将元数据写入和存储在这些存储块中。
控制器130可以生成和更新指示用户数据被存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面(Page)中的信息,即生成和更新第一映射数据的逻辑段即L2P段和第二映射数据的物理段即P2L段,然后通过执行映射清除操作,将L2P段和P2L段存储在存储块552、554、562、564、572、574、582和584的页面中。
例如,控制器130可以在该控制器130的存储器144中的第一缓冲器510中高速缓存和缓冲与从主机102接收到的写入请求相对应的用户数据,即,将用户数据的数据段512存储在作为数据缓冲器/高速缓存的第一缓冲器510中。然后,控制器130可以将第一缓冲器510中存储的数据段512写入和存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面中。
随着与从主机102接收到的写入请求相对应的用户数据的数据段512被写入和存储在以上识别的存储块中的页面中,控制器130可以生成第一映射数据和第二映射数据,并且将第一映射数据和第二映射数据存储在存储器144中的第二缓冲器520中。更具体地,控制器130可以将用于用户数据的第一映射数据的L2P段522和用于用户数据的第二映射数据的P2L段524存储在作为映射缓冲器/高速缓存的第二缓冲器520中。在控制器130的存储器144中的第二缓冲器520中,如上所述,可以存储第一映射数据的L2P段522和第二映射数据的P2L段524,或者可以存储第一映射数据的L2P段522的映射列表和第二映射数据的P2L段524的映射列表。控制器130可以将第二缓冲器520中存储的第一映射数据的L2P段522和第二映射数据的P2L段524写入和存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面中。
而且,控制器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。
参照图5,存储器装置150可以包括多个存储器管芯,例如,存储器管芯(Die)610、630、650和670。存储器管芯610、630、650和670中的每一个可以包括多个平面。例如,存储器管芯610可以包括平面(Plane)612、616、620和624。存储器管芯630可以包括平面632、636、640和644。存储器管芯650可以包括平面652、656、660和664,并且存储器管芯670可以包括平面672、676、680和684。平面612、616、620、624、632、636、640、644、652、656、660、664、672、676、680和684可以分别包括多个存储块(Blocks)614、618、622、626、634、638、642、646、654、658、662、666、674、678、682和686。如上面参照图3所述,每个块可以包括多个页面,例如2M个页面。存储器装置150的多个存储器管芯可以被分组,并且相同组中的存储器管芯联接到相同通道。例如,存储器管芯610和650可以联接到一个通道,并且存储器管芯630和670可以联接到不同通道。
在本公开的实施例中,考虑到如上面参照图5所述的存储器装置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中的程序大小,可以将与从主机102接收到的命令相对应的命令操作的用户数据和元数据写入和存储在选择存储块中的页面中。特别地,在将这些存储块分组为多个超级存储块之后,与从主机102接收到的命令相对应的命令操作的用户数据和元数据可以被例如通过单触发编程而写入和存储在超级存储块中。
超级存储块中的每一个可以包括多个存储块,例如,第一存储块组的至少一个存储块和第二存储块组的至少一个存储块。第一存储块组可以包含第一管芯的存储块,第二存储块组可以包含第二管芯的存储块,其中第一管芯和第二管芯联接到不同通道。进一步,联接到第一通道的第一存储块组中的多个存储块,例如,第一存储块和第二存储块,可以属于联接到通道的不同通路的存储器管芯,并且联接到第二通道的第二存储块组中的多个存储块,例如第三存储块和第四存储块,可以属于联接到通道的不同通路的存储器管芯。
例如,第一超级存储块可以包括四个存储块,每个存储块属于不同的管芯,其中管芯中的两个联接到一个通道,并且其它两个管芯联接到不同通道。尽管上面描述了一个超级存储块包括4个存储块,但是超级存储块可以包括任何适当数量的存储块。例如,超级块可以仅包括2个存储块,每个管芯联接到单独的通道。
在本公开的实施例中,在存储器装置150中的超级存储块中执行编程操作中,用户数据的数据段和用于用户数据的元数据的元段可以通过交错方案,特别是通过通道交错方案、存储器管芯交错方案或存储器芯片交错方案,被存储在各个超级存储块中的多个存储块中。为此,各个超级存储块中的存储块可以属于不同的存储器管芯,特别地,属于联接到不同通道的不同存储器管芯。
此外,在本公开的实施例中,在如上所述第一超级存储块可以包括联接到2个通道的4个存储器管芯中的4个存储块以便确保通过通道交错方案和存储器管芯交错方案执行编程操作的情况下,第一超级存储块的第一页面对应于第一存储块的第一页面,第一超级存储块的紧挨第一页面的第二页面对应于第二存储块的第一页面,第一超级存储块的紧挨第二页面的第三页面对应于第三存储块的第一页面,并且第一超级存储块的紧挨第三页面的第四页面对应于第四存储块的第一页面。在本公开的实施例中,可以从第一超级存储块的第一页面开始顺序地执行编程操作。
图5至图7示出主机中的存储器的一部分或部分可用作用于存储存储器系统中使用的元数据的高速缓存装置的情况。
图6是示出在通电时存储器系统110将存储器映射数据MAP_M中的全部或一部分传输到主机102的方法的流程图。参照图6,控制器130在通电时加载存储器装置150中存储的存储器映射数据MAP_M中的一些或全部,并且将存储器映射数据MAP_M传输到主机102。在通电后,主机102、控制器130和存储器装置150可以开始映射数据的初始化上传操作。
在S610中,主机102可以从控制器130请求映射数据。例如,主机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。主机102可以将第二部分MAP_M_2作为主机映射数据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可以完成映射数据的初始化上传。
图6中的控制器130响应于在S610中从主机102接收到的映射数据的单个请求,多次下载存储器映射数据MAP_M的一部分,并且多次将所下载的存储器映射数据MAP_M上传到主机102。但是,控制器130可以响应于从主机102接收到的映射数据的单个请求,而将所有的存储器映射数据MAP_M上传到主机102。可选地,控制器130可以响应于来自主机102的各个请求而将存储器映射数据MAP_M连续地部分地或按条上传到主机102。
如上所述,控制器映射数据MAP_C被存储在控制器130的存储器144中,并且主机映射数据MAP_H被存储在主机102的主机存储器106中。因此,存储器映射数据MAP_M或控制器映射数据MAP_C中的至少一个可以称为系统段,并且主机映射数据MAP_H可以称为主机段。
如果映射数据的初始化上传完成,则主机102可以与存储器系统110协作并开始访问存储器系统110。在图6中示出主机102和存储器系统110执行初始化上传的示例。然而,本公开不限于该特定配置或处理。例如,可以省略初始化上传。主机102可以在没有初始化上传的情况下访问存储器系统110。
在映射数据初始上传操作之后,可以响应于主机请求或者可以在没有主机请求的情况下在控制器130的控制下来执行上传和更新存储器映射数据MAP_M。可以部分地或全部地执行存储器映射数据MAP_M的上传和更新操作,并且可以在不同的时间例如周期性地执行。
图7是示出由图8所示的数据处理系统所执行的映射更新操作的示例的框图和流程图。特别地,图7示出在控制器130的控制下周期性地将存储器映射数据MAP_M上传到主机102并且更新作为主机存储器106中存储的元数据的主机映射数据MAP_H的进程。
与主机102可操作地接合的存储器系统110可以执行对由主机102所请求的数据的读取操作、擦除操作和写入操作。在执行对由主机102请求的数据的读取操作、擦除操作和写入操作之后,当数据在存储器装置150中的位置发生改变时,存储器系统110可以更新元数据。
即使在没有主机102的请求的情况下,存储器系统110也可以响应于执行例如垃圾收集操作或损耗均衡操作的后台操作的进程中的这种改变来更新元数据。存储器系统110中的控制器130可以检测元数据是否通过上述操作被更新。换言之,控制器130可以在元数据被生成、更新、擦除等的同时检测元数据已经变脏(即,脏映射),并将脏映射反映在脏信息中。
当元数据变脏时,控制器130向主机控制器接口108传输通知,通知需要更新主机映射数据MAP_H。在这种情况下,可以按规律的时间间隔定期地传输通知,也可以根据元数据变脏的程度传输通知。
响应于从控制器130接收到的通知,主机控制器接口108可以将针对需要更新的主机映射数据MAP_H的请求传输到控制器130(即,请求映射信息)。在这种情况下,主机控制器接口108可以仅指定和请求主机映射数据MAP_H的需要被更新的一部分,或者请求所有的主机映射数据MAP_H。
响应于主机控制器接口108的请求,控制器130可以传输需要更新的元数据(即,传输映射信息)。主机控制器接口108可以将所传输的元数据传输到主机存储器106,并且更新所存储的主机映射数据MAP_H(即,L2P映射更新)。
存储器装置150中存储的存储器映射数据MAP_M可以包括存储器装置150中的非易失性存储器元件中的存储MAP_M的物理地址PA和逻辑地址LA之间的映射信息。存储器映射数据MAP_M可以以映射段MS为单位进行管理。映射段MS中的每一个可以包括多个条目,并且条目中的每一个可以包括连续逻辑地址LA和连续物理地址PA之间的映射信息。
参照图8,主机102可以包括处理器104、主机存储器106和主机控制器接口108。存储器系统110可以包括控制器130和存储器装置150。在本文中,参照图8描述的控制器130和存储器装置150可以对应于参照图1至图2描述的控制器130和存储器装置150。
图8示出相对于图1和图2所示的数据处理系统的某些差异。特别地,控制器130中的逻辑块160可以对应于参照图3描述的闪存转换层(FTL)40。然而,根据实施例,控制器130中的逻辑块160可以执行图3的闪存转换层(FTL)40可能不执行的附加功能。
主机102可以包括比存储器系统110的处理器具有更高性能的处理器104。主机102还包括主机存储器106,该主机存储器106能够比与主机102协作的存储器系统110的存储器存储更大量的数据。主机102中的处理器104和主机存储器106在空间和可升级性方面具有优势。例如,处理器104和主机存储器106比存储器系统110中的处理器134和存储器144具有更少的空间限制。处理器104和主机存储器106可以利用经升级的版本来替换,这与存储器系统110中的处理器134和存储器144不同。在图8的实施例中,存储器系统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的操作状态来执行诸如垃圾收集或损耗均衡的后台操作,并且可以确定物理地址,即将从主机102传送的数据存储在存储器装置150中的哪个物理位置。因为存储器装置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可以包括用于将逻辑地址转换为物理地址的映射信息。
参照图8,将逻辑地址与物理地址相关联的元数据可以包括两个可区分项:第一映射信息项,用于将逻辑地址转换为物理地址;以及第二映射信息项,用于将物理地址转换为逻辑地址。其中,主机存储器106中存储的元数据166可以包括第一映射信息。第二映射信息可主要用于存储器系统110的内部操作,但是可以不用于由主机102请求的用于将数据存储在存储器系统110中或从存储器系统110读取与特定逻辑地址相对应的数据的操作。在实施例中,第二映射信息项可以不被存储器系统110传输到主机102。
存储器系统110中的控制器130可控制(例如,创建、删除、更新等)第一映射信息项或第二映射信息项,并将第一映射信息项或第二映射信息项存储到存储器装置150。因为主机存储器106是易失性存储器的类型,所以当发生诸如对主机102和存储器系统110的供电中断的事件时,主机存储器106中存储的元数据166可能消失。因此,存储器系统110中的控制器130不仅可以保持主机存储器106中存储的元数据166的最新状态,而且可以将第一映射信息项或第二映射信息项的最新状态存储在存储器装置150中。
在下文中,参照图8、图9A和图9B描述由存储器系统110中包括的控制器130更新脏信息D_INF的方法。脏信息D_INF的更新可以包括脏信息D_INF的状态值的改变。
参照图8和图9A,如果与上传到主机102的映射数据中的给定逻辑地址LA相对应的物理地址PA被改变(S131),则控制器130搜索包括给定逻辑地址LA的子段L2P_MS_SUB(S133)。控制器130确定所检索的子段L2P_MS_SUB的脏信息D_INF的状态值(S135)。
作为在步骤S135处的确定结果,如果脏信息D_INF的状态值是“0”(在S135处为“是”),则控制器130将脏信息D_INF的状态值改变为“1”(S137)。作为在步骤S135处的确定结果,如果脏信息D_INF的状态值为“1”(在S135处为“否”),则控制器130不改变脏信息D_INF的状态值。
脏信息D_INF是指示已经存储了根据逻辑地址LA的用户数据的物理地址PA是否已经改变的状态信息STATE_INF。脏信息D_INF的状态值“0”可以指示在映射到逻辑地址LA的物理地址PA被上传到主机102之后,对应于逻辑地址的物理地址没有被改变。脏信息D_INF的状态值“1”可以指示在映射到逻辑地址LA的物理地址PA被上传到主机102之后,对应于逻辑地址的物理地址已经被改变。
图9B示出由控制器130更新脏信息D_INF的详细方法。在图9B的描述中,脏信息D_INF具有位图形式,但是本公开不限于此。
参照图8和图9B,在将映射数据上传到主机102之后,如果映射到给定逻辑地址LA37的物理地址PA被改变(S131),则控制器130搜索包括该逻辑地址LA37的子段L2P_MS_SUB。此外,控制器130识别出该逻辑地址LA37被包括在第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3中(S133)。
控制器130确定第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的脏信息D_INF(S135)。在这种情况下,因为第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的脏信息D_INF的状态值为“1”(在S135处为“否”),因此控制器130可以识别出针对第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的逻辑地址的映射数据已经被更新,并且在步骤S131处映射到给定逻辑地址LA37的物理地址PA的改变并非第一次。因此,控制器130不改变第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的脏信息D_INF的状态值。
此外,在将映射数据上传到主机102之后,如果映射到逻辑地址LA28的物理地址PA被改变(S131),则控制器130搜索包括该逻辑地址LA28的子段L2P_MS_SUB。此外,控制器130识别出该逻辑地址LA28被包括在第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1中(S133)。
控制器130确定第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的脏信息D_INF(S135)。在这种情况下,因为第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的脏信息D_INF的状态值为“0”(在S135处为“是”),因此控制器130可以识别出针对第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的逻辑地址的映射数据尚未更新,并且在步骤S131处映射到给定逻辑地址LA28的物理地址PA的改变为第一次改变。因此,控制器130将第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的脏信息D_INF的状态值改变为“1”。
如果针对每个L2P映射段L2P_MS而不是L2P子段L2P_MS_SUB生成脏信息D_INF,则尽管仅改变了映射到一个逻辑地址的物理地址PA,但是控制器130需要改变与L2P映射段L2P_MS中包括的20个逻辑地址相对应的脏信息D_INF的所有状态值。也就是说,为了更新一个逻辑地址的脏信息D_INF的状态值,控制器130甚至需要改变不必要更新的19个逻辑地址的脏信息D_INF的状态值。
然而,在实施例中,针对每个L2P子段L2P_MS_SUB而不是L2P映射段L2P_MS生成和更新脏信息D_INF。因此,如果改变了映射到一个逻辑地址的物理地址PA,则控制器130仅改变与L2P子段L2P_MS_SUB中包括的5个逻辑地址相对应的脏信息D_INF的状态值,而不是改变与L2P映射段L2P_MS中包括的20个逻辑地址相对应的脏信息D_INF的状态值。也就是说,根据本公开的实施例的控制器130仅必须改变与不必要更新的4个逻辑地址相对应的脏信息D_INF的状态值,以便更新一个逻辑地址的脏信息D_INF的状态值。因此,与针对每个L2P映射段L2P_MS生成和更新状态信息STATE_INF的情况相比,本公开的实施例可提高映射数据管理的效率。
此外,尽管在附图中未示出,但是随着在步骤S131处映射到生成的逻辑地址的物理地址PA被改变,控制器130可以使旧物理地址旧PA无效。为此,控制器130可以通过改变无效地址信息INV_INF的状态值来使旧物理地址无效。
如上所述,本公开的实施例可以通过改变存储在存储器装置150中的映射数据的状态信息来提高管理映射数据的便利性。状态信息可以以位图形式,标志形式,表格形式或者列表形式表示。状态信息指示与给定逻辑地址相对应的物理地址是否已被改变和无效。换句话说,状态信息可以指示存储在存储器装置150中的用户数据的存储位置(即,物理地址)是否被改变。
此外,本公开的实施例可通过针对每个映射段的多个子段中的每一个而不是作为整体的映射段单位生成和更新映射数据的状态信息来提高映射数据管理的效率。
图10示出由图8所示的主机102将物理地址PA_1连同命令CMD和逻辑地址LA_1一起传输到存储器系统110并且由存储器系统110对从主机102接收到的物理地址PA_1执行命令操作的方法。
图11示出从图8和图10的主机102传输到存储器系统110的命令的命令格式CMDformat的示例。特别地,图11示出包括逻辑地址LA_1和物理地址PA_1的读取命令Read CMD的命令格式CMD format的示例。
图12示出由控制器130对从主机102接收到的逻辑地址LA_1和物理地址PA_1执行命令操作的方法。
在下文中,参照图8至图11描述由根据本公开的实施例的存储器系统110对连同命令和逻辑地址LA_1一起从主机102接收到的物理地址PA_1执行命令操作的方法。
参照图8至图11,主机102包括主机存储器106和主机控制器接口108。主机映射数据MAP_H存储在主机存储器106中。此外,存储器系统110包括控制器130和存储器装置150。控制器映射数据MAP_C存储在存储器144中。
参照图8至图11,当主机102和存储器系统110通电时(图6中的通电),主机102和存储器系统110可以可操作地彼此接合。在这种情况下,控制器130可以加载存储器装置150中存储的存储器映射数据MAP_M(例如,L2P MAP)。控制器130可以将从存储器装置150加载的存储器映射数据MAP_M存储在存储器144中作为控制器映射数据MAP_C。此外,控制器130可以将存储器144中存储的控制器映射数据MAP_C传输到主机102。主机102可以将从控制器130接收到的控制器映射数据MAP_C存储在主机存储器106中作为主机映射数据MAP_H。
当主机102内的处理器104生成命令CMD时,所生成的命令被传输到主机控制器接口108。在从处理器104接收到命令之后,主机控制器接口108将与该命令相对应的逻辑地址LA_1传输到主机存储器106。
主机控制器接口108可以基于主机存储器106中存储的主机映射数据MAP_H中包括的映射数据L2P MAP,识别出与逻辑地址LA_1相对应的物理地址PA_1。
主机控制器接口108将物理地址PA_1与命令和逻辑地址LA_1一起传输到存储器系统110内的控制器130。在这种情况下,主机控制器接口108可以将命令格式的保留区域中包括的物理地址PA_1传输到存储器系统110。也就是说,如图10所示,主机控制器接口108可以将命令格式的读取命令中包括的逻辑地址LA_1和物理地址PA_1传输到存储器系统110。
控制器130确定与命令一起接收到的物理地址PA_1的有效性。此外,控制器130可以基于所接收到的命令CMD和有效物理地址PA_1对存储器装置150执行命令操作。
在执行命令操作的上述进程中,可以省略由控制器130从主机102接收逻辑地址LA_1并搜索与逻辑地址LA_1相对应的物理地址PA_1的进程。特别地,在由控制器130搜索物理地址PA_1的进程中,可以省略访问存储器装置150并读取存储器映射数据MAP_M的操作。因此,由主机102对存储器系统110执行命令操作的进程可变得更快。
此外,控制器130更新已经执行了针对命令的操作的逻辑地址LA_1的访问信息A_INF。
在下文中,参照图8至图12描述由控制器130对连同命令和逻辑地址LA_1一起从主机102接收的物理地址PA_1执行命令操作的详细方法。
参照图8至图12,控制器130从主机102接收第一物理地址PA_1连同命令和第一逻辑地址LA_1(S140)。
控制器130确定从主机102接收到的第一物理地址PA_1的有效性(S170)。在这种情况下,控制器130可以使用包括第一逻辑地址LA_1的子段L2P_MS_SUB的脏信息D_INF来确定第一物理地址PA_1的有效性。
脏信息D_INF和无效地址信息INV_INF可以通过参照图1A和图1B描述的方法来生成,并且可以通过参照图9A和图9B描述的方法来更新。
作为步骤S170的确定结果,如果第一物理地址PA_1有效,则控制器130对有效的第一物理地址PA_1执行命令操作(S200)。此外,控制器130更新包括第一逻辑地址LA_1的子段L2P_MS_SUB的访问信息A_INF(S250)。
如果作为步骤S170的确定结果,第一物理地址PA_1无效,则控制器130在控制器映射数据MAP_C或存储器映射数据MAP_M中搜索被映射到从主机102接收到的第一逻辑地址LA_1的第二物理地址PA_2(S190)。
此外,控制器130根据命令对所检索到的第二物理地址PA_2执行命令操作(S210)。此外,控制器130更新包括第一逻辑地址LA_1的子段L2P_MS_SUB的访问信息A_INF(S250)。下面参照图13A、图13B、图14A和图14B详细描述在步骤S250处更新访问信息A_INF的方法。
描述了根据本公开的实施例的执行命令操作的方法,假设针对每个子段L2P_MS_SUB生成和管理脏信息D_INF,从主机102接收到的第一逻辑地址LA_1是“LA4”,并且连同第一逻辑地址LA_1一起接收到的第一物理地址PA_1是“PA77”。
参照图9B所示的脏信息D_INF,控制器130可以识别出包括第一逻辑地址LA4的第一L2P映射段L2P_MS#0的第一L2P子段L2P_MS#0_SUB#0的脏信息D_INF的状态值为“0”。因此,因为映射到第一逻辑地址LA4的物理地址没有被改变,所以控制器130将连同第一逻辑地址LA4一起从主机102接收的第一物理地址PA77确定为有效物理地址。此外,控制器130对从主机102接收的第一物理地址PA77执行命令操作,而无需执行在步骤S190处的单独的L2P搜索进程(S200)。
如果针对每个映射段L2P_MS而不是每个子段L2P_MS_SUB生成和更新脏信息D_INF,由于其对应物理地址已被更新的逻辑地址“LA15至LA19”,所以第一L2P映射段L2P_MS#0的脏信息D_INF的状态值变为“1”。也就是说,由于所更新的逻辑地址“LA15至LA19”,未更新的逻辑地址“LA4”的脏信息D_INF的状态值也变为“1”。此时,在步骤S170处,控制器130识别出映射到第一逻辑地址LA4的物理地址已经改变,并且将第一物理地址PA77确定为无效物理地址。此外,控制器130在步骤S190处执行不必要的L2P搜索和转换处理,这导致存储器系统110的开销。
如上所述,本公开的实施例可通过针对每个子段L2P_MS_SUB生成和更新脏信息D_INF以及生成和更新无效地址信息INV_INF来减少由于不必要的L2P搜索和转换进程而发生的存储器系统110的开销。因此,本公开的实施例可增加并因此提高存储器系统110的命令操作的执行速度和命令操作的效率。
在下文中,参照图8、图13A和图13B描述根据本公开的第一实施例的更新访问信息A_INF的方法。具体地,图13A和图13B示出在控制器130根据图12的步骤S200和S210处的命令执行命令操作之后,由该控制器130更新位图形式的访问信息A_INF的方法。
位图形式的访问信息A_INF可以指示是否已经从主机102发出针对与逻辑地址LA_1相对应的映射数据的访问请求。访问信息A_INF的状态值“0”可以指示在将映射数据上传到主机102之后尚未发出来自主机102的针对逻辑地址LA_1的访问请求。访问信息A_INF的状态值“1”可以指示在将映射数据上传到主机102之后已经发出来自主机102的针对逻辑地址LA_1的访问请求。
参照图13A,控制器130识别出包括逻辑地址LA_1的子段L2P_MS_SUB(S251)。控制器130确定包括逻辑地址LA_1的子段L2P_MS_SUB的访问信息A_INF的状态值(S253)。作为步骤S253的确定结果,如果子段L2P_MS_SUB的访问信息A_INF的状态值为“0”(在S235处为“是”),则控制器130将访问信息A_INF的状态值改变为“1”(S137)。作为步骤S253的确定结果,如果子段L2P_MS_SUB的访问信息A_INF的状态值为“1”而不是“0”(在S135处为“否”),则控制器130不改变访问信息A_INF的状态值。
如果在图12的步骤S140处从主机102接收到的第一逻辑地址LA_1或在图12的步骤S200和S210处已经对其执行了命令操作的第一逻辑地址LA_1是“LA37”,则控制器130可以识别出逻辑地址LA37被包括在第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3中(S251)。此外,控制器130确定第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的访问信息A_INF的状态值(S253)。由于第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的访问信息A_INF的状态值为“1”而不是“0”(在S253处为“否”),因此控制器130不改变第二L2P映射段L2P_MS#1的第四L2P子段L2P_MS#1_SUB#3的访问信息A_INF的状态值。
如果在图12的步骤S140处从主机102接收到的第一逻辑地址LA_1或在图12的步骤S200和S210处已经对其执行了命令操作的第一逻辑地址LA_1是“LA28”,则控制器130可以识别出逻辑地址LA28被包括在第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1中(S251)。此外,控制器130确定第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的访问信息A_INF的状态值(S253)。由于第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的访问信息A_INF的状态值为“0”(在S253处为“是”),因此控制器130可以将第二L2P映射段L2P_MS#1的第二L2P子段L2P_MS#1_SUB#1的访问信息A_INF的状态值从“0”改变为“1”(S255)。
在下文中,参照图8、图14A和图14B描述根据本公开的第二实施例的更新访问信息A_INF的方法。特别地,图14B示出控制器130在图12的步骤S200和S210处根据命令执行命令操作之后,由该控制器130更新计数器形式的访问信息A_INF的方法。
计数器形式的访问信息A_INF可以指示来自主机102的对与逻辑地址LA_1相对应的映射数据的访问请求的数量。访问信息A_INF的状态值“0”可以指示在将映射数据上传到主机102之后尚未发出来自主机102的针对逻辑地址LA_1的访问请求。具有状态值“1”或更大的访问信息A_INF可以指示在将映射数据上传到主机102之后已经发出来自主机102的针对逻辑地址LA_1的访问请求。
参照图14A和图14B,控制器130识别出包括逻辑地址LA_1的子段L2P_MS_SUB(S251)。控制器130将包括逻辑地址LA_1的子段L2P_MS_SUB的访问信息A_INF的状态值增加“1”(S254)。
如果在图12的步骤S140处从主机102接收到的第一逻辑地址LA_1和在图12的步骤S200和S210处已经对其执行命令操作的第一逻辑地址LA_1是“LA23”,则控制器130可以识别出逻辑地址LA23被包括在第二L2P映射段L2P_MS#1的第一L2P子段L2P_MS#1_SUB#0中(S251)。此外,控制器130检查第二L2P映射段L2P_MS#1的第一L2P子段L2P_MS#1_SUB#0的访问信息A_INF的状态值(S253)。
因为第一L2P子段L2P_MS#1_SUB#0的访问信息A_INF的状态值为“6”,因此控制器130通过将状态值增加“1”来将状态值从“6”改变为“7”(S254)。
如果在图12的步骤S140处从主机102接收到的第一逻辑地址LA_1和在图12的步骤S200和S210处已经对其执行命令操作的第一逻辑地址LA_1是“LA55”,则控制器130可以识别出逻辑地址LA55被包括在第三L2P映射段L2P_MS#2的第四L2P子段L2P_MS#2_SUB#3中(S251)。此外,控制器130检查第三L2P映射段L2P_MS#2的第四L2P子段L2P_MS#2_SUB#3的访问信息A_INF的状态值(S253)。
因为第三L2P映射段L2P_MS#2的第四L2P子段L2P_MS#2_SUB#3的访问信息A_INF的状态值为“2”,所以控制器130通过将状态值增加“1”将状态值从“2”改变为“3”(S254)。
在下文中,参照图8和图15描述由控制器130将控制器映射数据MAP_C上传到主机102的方法。
控制器130基于脏信息D_INF和/或访问信息A_INF来生成优先级信息P_INF(S510)。
控制器130基于所生成的上传优先级信息P_INF,上传针对映射段(MS)单位的控制器映射数据MAP_C(S530)。
在步骤S530处完成控制器映射数据MAP_C的上传之后,控制器130初始化脏信息D_INF、访问信息A_INF和优先级信息P_INF(S550)。
可以在将控制器映射数据MAP_C上传到主机102之前执行步骤S510的优先级信息P_INF的生成。
此外,在步骤S530处,如果控制器映射数据MAP_C变脏的程度高于预设参考值或存储器系统110处于空闲状态,则控制器130可以将控制器映射数据MAP_C上传到主机102。此外,当从主机102接收到上传请求时,控制器130可以将控制器映射数据MAP_C上传到主机102。
图16和图17示出使用位图形式的脏信息D_INF和位图形式的访问信息A_INF来生成优先级信息P_INF的方法。
在下文中,参照图8和图16描述根据本公开的第一实施例的生成优先级信息P_INF的方法。特别地,图16示出使用位图形式的脏信息D_INF来生成第二优先级信息P_INF_D的方法。
参照图16,控制器130通过针对每个L2P子段L2P_MS_SUB将状态值为“1”的脏信息D_INF的数量相加来计算总和(SUM)。总和(SUM)可以指示属于L2P映射段L2P_MS中包括的L2P子段L2P_MS_SUB并且其物理地址已经改变的L2P子段L2P_MS_SUB的数量。
第一L2P映射段L2P_MS#0的总和(SUM)可以是“1”。第二L2P映射段L2P_MS#1的总和(SUM)可以是“3”。第三L2P映射段L2P_MS#2的总和(SUM)可以是“4”。第四L2P映射段L2P_MS#3的和(SUM)可以是“2”。
基于针对每个L2P映射段L2P_MS计算的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第二优先级信息P_INF_D设置为第一优先级,可以将第二L2P映射段L2P_MS#1的第二优先级信息P_INF_D设置为第二优先级,可以将第四L2P映射段L2P_MS#3的第二优先级信息P_INF_D设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第二优先级信息P_INF_D设置为第四优先级。
如上所述,如图16所示,根据本公开的实施例的生成第二优先级信息P_INF_D的方法可提高包括许多物理地址已经改变的L2P子段L2P_MS_SUB的L2P映射段L2P_MS的上传优先级。
在下文中,参照图8和图17描述根据本公开的第二实施例的生成优先级信息P_INF的方法。特别地,图17示出使用位图形式的访问信息A_INF来生成第三优先级信息P_INF_A的方法。
参照图17,控制器130通过针对每个L2P子段L2P_MS_SUB将状态值为“1”的访问信息A_INF的数量相加来计算总和(SUM)。总和(SUM)可以指示属于L2P映射段L2P_MS中包括的L2P子段L2P_MS_SUB并且已由主机请求的L2P子段L2P_MS_SUB的数量。
第一L2P映射段L2P_MS#0的总和(SUM)可以是“1”。第二L2P映射段L2P_MS#1的总和(SUM)可以是“3”。第三L2P映射段L2P_MS#2的总和(SUM)可以是“4”。第四L2P映射段L2P_MS#3的和(SUM)可以是“2”。
基于针对每个L2P映射段L2P_MS计算的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第三优先级信息P_INF_A设置为第一优先级,可以将第二L2P映射段L2P_MS#1的第三优先级信息P_INF_A设置为第二优先级,可以将第四L2P映射段L2P_MS#3的第三优先级信息P_INF_A设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第三优先级信息P_INF_A设置为第四优先级。
如上所述,如图17所示,根据本公开的实施例的生成第三优先级信息P_INF_A的方法可提高包括主机请求的许多L2P子段L2P_MS_SUB的L2P映射段L2P_MS的上传优先级。
在下文中,参照图8和图18描述根据本公开的第三实施例的生成优先级信息P_INF的方法。特别地,图18示出使用计数器形式的访问信息A_INF来生成第三优先级信息P_INF_A的方法。
参照图18,第一L2P映射段L2P_MS#0中包括的第四L2P子段L2P_MS#0_SUB3的访问信息A_INF的状态值可以是“20”。第二L2P映射段L2P_MS#1中包括的第一L2P子段L2P_MS#1_SUB0的访问信息A_INF的状态值可以是“7”。第三L2P映射段L2P_MS#2中包括的第一L2P子段L2P_MS#2_SUB0的访问信息A_INF的状态值可以是“6”。第四L2P映射段L2P_MS#3中包括的第一L2P子段L2P_MS#3_SUB0和第四L2P子段L2P_MS#3_SUB3的访问信息A_INF的状态值可以是“1”。
因此,随着L2P子段中的每一个的访问信息A_INF的状态值(即,访问请求的数量)增加,控制器130可以生成具有高优先级的等级信息RANKING。
基于每个子段L2P_MS_SUB的访问信息A_INF的状态值,控制器130可以将第一L2P映射段L2P_MS#0的等级信息RANKING设置为“1”,可以将第二L2P映射段L2P_MS#1的等级信息RANKING设置为“2”,可以将第三L2P映射段L2P_MS#2的等级信息RANKING设置为“3”,并且可以将第四L2P映射段L2P_MS#3的等级信息RANKING设置为“9”。
访问信息A_INF的状态值可以指示来自主机的请求的数量。等级信息RANKING可以指示映射段的相对优先级。
基于每个子段L2P_MS_SUB的等级信息RANKING,控制器130可以将第一L2P映射段L2P_MS#0的第三优先级信息P_INF_A设置为第一优先级,可以将第二L2P映射段L2P_MS#1的第三优先级信息P_INF_A设置为第二优先级,可以将第三L2P映射段L2P_MS#2的第三优先级信息P_INF_A设置为第三优先级,并且可以将第四L2P映射段L2P_MS#3的第三优先级信息P_INF_A设置为第四优先级。
等级信息RANKING为“4到8”的L2P子段L2P_MS_SUB被包括在被分别确定为第一优先级和第三优先级的第二L2P映射段L2P_MS#1和第三L2P映射段L2P_MS#2中。因此,可以将等级信息RANKING为“9”的第四L2P映射段L2P_MS#3的第三优先级信息P_INF_A设置为第四优先级。
如上所述,如图18所示,根据本公开的第三实施例的生成优先级信息P_INF的方法可提升包括具有来自主机的许多访问请求的子段的映射段的上传优先级。
在下文中,参照图8、图19A和图19B描述根据本公开的第四实施例的生成优先级信息P_INF的方法。特别地,图19A和图19B示出使用位图形式的脏信息D_INF和位图形式的访问信息A_INF来生成第一优先级信息P_INF_N的方法。
控制器130可以基于脏信息D_INF和访问信息A_INF来生成第一优先级信息P_INF_N,以便将控制器映射数据MAP_C上传到主机102。
如参照图9A和图9B所述,可以针对每个L2P子段L2P_MS_SUB更新脏信息D_INF。如参照图13A和图13B所描述的,可以针对每个L2P子段L2P_MS_SUB更新访问信息A_INF。
可以针对每个映射段L2P_MS生成第一优先级信息P_INF_N。也就是说,控制器130可以基于针对每个L2P子段L2P_MS_SUB更新的脏信息D_INF和访问信息A_INF来生成每个映射段L2P_MS的第一优先级信息P_INF_N。
参照图19A,控制器130通过对针对每个L2P子段L2P_MS_SUB更新的脏信息D_INF的状态值和访问信息A_INF的状态值执行“与”运算来计算运算结果(AND)(S511)。控制器130通过针对每个映射段MS将针对每个L2P子段L2P_MS_SUB计算的运算结果相加(AND)来计算总和(SUM)(S517)。控制器130可以基于总和(SUM)生成映射段MS的第一优先级信息P_INF_N。
参照图19B,控制器130通过对针对每个L2P子段L2P_MS_SUB管理的脏信息D_INF和访问信息A_INF执行“与”运算来计算运算结果(AND)。
控制器130通过针对每个映射段MS将针对每个L2P子段L2P_MS_SUB计算的运算结果相加(AND)来计算总和(SUM)。第一L2P映射段L2P_MS#0的总和(SUM)可以是“0”,第二L2P映射段L2P_MS#1的总和(SUM)可以是“1”,第三L2P映射段L2P_MS#2的总和(SUM)可以是“4”,并且第四L2P映射段L2P_MS#3的总和(SUM)可以是“2”。
因此,基于每个映射段MS的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第一优先级信息P_INF_N设置为第一优先级,可以将第四L2P映射段L2P_MS#3的第一优先级信息P_INF_N设置为第二优先级,可以将第二L2P映射段L2P_MS#1的第一优先级信息P_INF_N设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第一优先级信息P_INF_N设置为第四优先级。
因此,控制器130可以基于参照图19A和图19B描述的第一优先级信息P_INF_N,优先向主机上传包括其对应于逻辑地址的物理地址已经改变并且已经对其发出来自主机的访问请求的许多L2P子段L2P_MS_SUB的L2P映射段L2P_MS。
在下文中,参照图8、图20A和图20B描述根据本公开的第五实施例的生成优先级信息P_INF的方法。特别地,图20A和图20B示出使用位图形式的脏信息D_INF和位图形式的访问信息A_INF来生成优先级信息P_INF,但是生成已经将权重赋予脏信息D_INF的第二优先级信息P_INF_D的方法。
参照图20A,控制器130通过对针对每个L2P子段L2P_MS_SUB更新的脏信息D_INF和访问信息A_INF的状态值执行“或”运算来计算运算结果(OR)(S511)。控制器130将脏信息D_INF的权重赋予所计算的运算结果(OR)(S515)。控制器130通过针对每个映射段MS将针对每个L2P子段L2P_MS_SUB所计算的并且已经赋予脏信息D_INF权重的值D_INF_W相加来计算总和(SUM)(S517)。控制器130可以基于总和(SUM)来生成映射段MS的第二优先级信息P_INF_D。
参照图20B,第一L2P映射段L2P_MS#0的总和(SUM)可以是“3”,第二L2P映射段L2P_MS#1的总和(SUM)可以是“6”,第三L2P映射段L2P_MS#2的总和(SUM)可以是“8”,并且第四L2P映射段L2P_MS#3的总和(SUM)可以是“8”。
因此,基于每个映射段MS的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第二优先级信息P_INF_D设置为第一优先级,可以将第四L2P映射段L2P_MS#3的第二优先级信息P_INF_D设置为第二优先级,可以将第二L2P映射段L2P_MS#1的第二优先级信息P_INF_D设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第二优先级信息P_INF_D设置为第四优先级。
在这种情况下,第三L2P映射段L2P_MS#2和第四L2P映射段L2P_MS#3的总和(SUM)相同,即“8”。然而,为了将权重赋予脏信息D_INF,控制器130将第三L2P映射段L2P_MS#2的第二优先级信息P_INF_D设置为第一优先级,并且将第四L2P映射段L2P_MS#3的第二优先级信息P_INF_D设置为第二优先级。
因此,控制器130可以基于参照图20A和图20B描述的第二优先级信息P_INF_D,优先向主机上传包括其对应于逻辑地址的物理地址已经改变或者已经对其发出来自主机的访问请求的L2P子段L2P_MS_SUB之中、物理地址已经改变的许多L2P子段L2P_MS_SUB的L2P映射段L2P_MS。
在下文中,参照图8、图21A和图21B描述根据本公开的第六实施例的生成优先级信息P_INF的方法。特别地,图21A和图21B示出使用脏信息D_INF和访问信息A_INF来生成优先级信息P_INF,但是生成已经将权重赋予访问信息A_INF的第三优先级信息P_INF_A的方法。
参照图21A,控制器130通过对针对每个L2P子段L2P_MS_SUB更新的脏信息D_INF和访问信息A_INF的状态值执行“或”运算来计算运算结果(OR)(S511)。控制器130将访问信息A_INF的权重赋予所计算的运算结果(OR)(S516)。控制器130通过针对每个映射段MS将针对每个L2P子段L2P_MS_SUB所计算的并且已经赋予访问信息A_INF的权重的值相加来计算总和(SUM)(S517)。控制器130可以基于总和(SUM)来生成映射段MS的第三优先级信息P_INF_A。
参照图21B,第一L2P映射段L2P_MS#0的总和(SUM)可以是“3”,第二L2P映射段L2P_MS#1的总和(SUM)可以是“7”,第三L2P映射段L2P_MS#2的总和(SUM)可以是“8”,并且第四L2P映射段L2P_MS#3的总和(SUM)可以是“6”。
因此,基于每个映射段MS的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第三优先级信息P_INF_A设置为第一优先级,可以将第二L2P映射段L2P_MS#1的第三优先级信息P_INF_A设置为第二优先级,可以将第四L2P映射段L2P_MS#3的第三优先级信息P_INF_A设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第三优先级信息P_INF_A设置为第四优先级。
因此,控制器130可以基于参照图21A和图21B描述的第三优先级信息P_INF_A,优先向主机上传包括其对应于逻辑地址的物理地址已经改变或者已经对其发出来自主机的访问请求的L2P子段L2P_MS_SUB之中、已经发出来自主机的访问请求的许多L2P子段L2P_MS_SUB的L2P映射段L2P_MS。
在下文中,参照图8和图22描述根据本公开的第七实施例的生成优先级信息P_INF的方法。特别地,图21示出使用位图形式的脏信息D_INF和计数器形式的访问信息A_INF来生成优先级信息P_INF,但是生成已经将权重赋予访问信息A_INF的第三优先级信息P_INF_A的方法。
参照图22,第一L2P映射段L2P_MS#0的总和(SUM_0)可以是“3”,第二L2P映射段L2P_MS#1的总和(SUM_1)可以是“5”,第三L2P映射段L2P_MS#2的总和(SUM_2)可以是“20”,并且第四L2P映射段L2P_MS#3的总和(SUM_3)可以是“3”。
因此,基于每个映射段MS的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第三优先级信息P_INF_A设置为第一优先级,可以将第四L2P映射段L2P_MS#3的第三优先级信息P_INF_A设置为第二优先级,可以将第二L2P映射段L2P_MS#1的第三优先级信息P_INF_A设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第三优先级信息P_INF_A设置为第四优先级。
因此,控制器130可以基于参照图22描述的第三优先级信息P_INF_A,优先向主机上传包括其对应于逻辑地址的物理地址已经改变并且已经对其发出来自主机的访问请求的L2P子段L2P_MS_SUB之中、已经发出来自主机的许多访问请求的许多L2P子段L2P_MS_SUB的L2P映射段L2P_MS。
在下文中,参照图8和图23描述根据本公开的第八实施例的生成优先级信息P_INF的方法。特别地,图23示出使用位图形式的脏信息D_INF和计数器形式的访问信息A_INF来生成优先级信息P_INF,但是生成已经将权重赋予访问信息A_INF的第三优先级信息P_INF_A的方法。
控制器130通过对针对每个L2P子段L2P_MS_SUB更新的脏信息D_INF的状态值和访问信息A_INF的状态值执行“与”运算来计算运算结果(AND)。
此后,控制器130计算所计算的运算结果(AND)的代表值,并且识别出其对应于逻辑地址的物理地址已经改变并且已经对其发出来自主机的访问请求的L2P映射段区域L2P_MS。控制器130将访问信息A_INF的权重赋予所计算的代表值(A_INF_W)。
控制器130通过针对每个映射段(MS)将针对每个L2P子段L2P_MS_SUB所计算的并且已经赋予访问信息A_INF的权重的值A_INF_W相加来计算总和(SUM)。控制器130可以基于总和(SUM)来生成映射段MS的第三优先级信息P_INF_A。
参照图23,第一L2P映射段L2P_MS#0的总和(SUM_0)可以是“0”,第二L2P映射段L2P_MS#1的总和(SUM_1)可以是“3”,第三L2P映射段L2P_MS#2的总和(SUM_2)可以是“4”,并且第四L2P映射段L2P_MS#3的总和(SUM_3)可以是“2”。
因此,基于每个映射段MS的总和(SUM),控制器130可以将第三L2P映射段L2P_MS#2的第三优先级信息P_INF_A设置为第一优先级,可以将第二L2P映射段L2P_MS#1的第三优先级信息P_INF_A设置为第二优先级,可以将第四L2P映射段L2P_MS#3的第三优先级信息P_INF_A设置为第三优先级,并且可以将第一L2P映射段L2P_MS#0的第三优先级信息P_INF_A设置为第四优先级。
因此,控制器130可以基于参照图23描述的第三优先级信息P_INF_A,优先向主机上传包括其对应于逻辑地址的物理地址已经改变并且已经对其发出来自主机的访问请求的L2P映射段L2P_MS之中、已经对其发出来自主机的许多访问请求的许多L2P子段L2P_MS_SUB的L2P映射段L2P_MS。
如上所述,基于参照图8至图18和图19A至图23描述的不同实施例,可提高存储器系统110的操作效率。存储器系统110可通过将主机102中包括的主机存储器106的一些区域用作高速缓存或缓冲器,并且将元数据或用户数据存储在这些区域中,来克服由存储器系统110内的控制器130所使用的存储器144的存储空间的限制。
根据本公开的实施例的存储器系统、数据处理系统以及驱动该存储器系统和数据处理系统的方法的效果如下。
根据本公开的实施例的包括存储器系统和计算设备或主机的数据处理设备可通过有效地控制由存储器系统传输映射数据的操作,来减少在数据处理设备内的存储器系统与计算设备或主机之间传输数据的开销。
根据本公开的实施例的存储器系统、数据处理系统以及驱动它们的方法可通过针对映射段的多个子段中的每一个而不是映射数据的整个映射段生成和更新映射数据的状态信息,来提高映射数据管理的效率。
根据本公开的实施例的存储器系统、数据处理系统以及驱动它们的方法可通过消除不必要的L2P转换来减少存储器系统的开销,因为存储器装置根据连同命令一起从外部装置接收的物理地址来执行命令操作,因此可提高存储器系统的命令操作的运行速度和命令操作的效率。
根据本公开的实施例的存储器系统、数据处理系统以及驱动它们的方法可改善映射数据管理。
根据本公开的实施例的存储器系统、数据处理系统和驱动它们的方法可提高确定物理地址的有效性的操作速度,因为存储器系统基于映射数据的状态信息来确定连同命令一起从外部装置接收的物理地址的有效性,而无需单独检索映射数据,因此可提高命令操作的速度。
如本公开所属领域的技术人员从以上的描述中将会理解的,从本公开可以获得的效果和优点不限于上述的那些效果和优点。
尽管已经示出和描述了各个实施例,但是对于本领域技术人员来说显而易见的是,在不脱离所附权利要求限定的本公开的精神和范围的情况下,可以进行各种改变和修改。本公开包括落入权利要求范围内的所有这种改变和修改。

Claims (25)

1.一种存储器系统,包括:
存储器装置,存储数据;以及
控制器,生成和管理映射数据,所述映射数据包括外部装置的逻辑地址以及所述存储器装置的与所述逻辑地址相对应的物理地址,
其中所述控制器将所述映射数据的至少一些上传到所述外部装置,
其中所述控制器基于脏信息或访问信息中的至少一个,将最新版本的经上传映射数据上传到所述外部装置,
其中所述脏信息指示与所述经上传映射数据中的逻辑地址相对应的物理地址是否已经改变,并且
其中所述访问信息指示是否已经从所述外部装置发出针对所述经经上传映射数据中的所述逻辑地址的访问请求。
2.根据权利要求1所述的存储器系统,其中所述控制器以映射段为单位将所述最新版本的经上传映射数据存储在所述存储器装置中。
3.根据权利要求1所述的存储器系统,
其中所述控制器将所述经上传映射数据的映射段中的每一个划分为多个子段,并且
其中所述控制器针对所述子段中的每一个生成所述脏信息和所述访问信息。
4.根据权利要求3所述的存储器系统,
其中所述控制器基于所述子段的所述脏信息或所述访问信息中的至少一个设置所述映射段的上传优先级,并且
其中所述控制器基于所设置的上传优先级,针对每个映射段将所述映射数据上传到所述外部装置。
5.根据权利要求3所述的存储器系统,其中
所述脏信息最初具有第一值,并且
当与所述子段中的所述逻辑地址相对应的所述物理地址改变时,所述控制器将所述子段的所述脏信息的第一值更新为第二值。
6.根据权利要求5所述的存储器系统,其中
所述访问信息最初具有第一值,并且
当所述外部装置发出对所述子段中的所述逻辑地址的访问请求时,所述控制器将所述子段的所述访问信息的所述第一值更新为第二值。
7.根据权利要求5所述的存储器系统,其中
所述访问信息最初具有第一值,并且
每当所述外部装置发出对所述子段中的所述逻辑地址的访问请求时,所述控制器将所述子段的所述访问信息的所述第一值更新为相对于所述第一值增加1的第二值,
其中所述第二值包括多个值。
8.根据权利要求5所述的存储器系统,其中所述控制器针对包括更大数量的所述脏信息由所述第二值表示的子段的映射段设置更高的上传优先级。
9.根据权利要求6所述的存储器系统,其中所述控制器针对包括更大数量的所述访问信息由所述第二值表示的子段的映射段设置更高的上传优先级。
10.根据权利要求7所述的存储器系统,其中所述控制器针对具有所述访问信息由多个第二值的较高值表示的子段的映射段设置更高的上传优先级。
11.根据权利要求6所述的存储器系统,其中所述控制器针对具有更大数量的所述脏信息由所述第二值表示并且所述访问信息由所述第二值表示的子段的映射段设置更高的上传优先级。
12.根据权利要求6所述的存储器系统,其中所述控制器针对在具有所述脏信息由所述第二值表示或者所述访问信息由所述第二值表示的子段的映射段之中、具有更大数量的所述脏信息由所述第二值表示的子段的映射段设置更高的上传优先级。
13.根据权利要求6所述的存储器系统,其中所述控制器针对在具有所述脏信息由所述第二值表示或者所述访问信息由所述第二值表示的子段的映射段之中、具有更大数量的所述访问信息由多个第二值的较高值表示的子段的映射段设置更高的上传优先级。
14.根据权利要求7所述的存储器系统,其中所述控制器针对在具有所述脏信息由所述第二值表示并且所述访问信息由所述第二值表示的子段的映射段之中、具有所述访问信息由多个第二值的较高值表示的子段的映射段设置更高的上传优先级。
15.根据权利要求7所述的存储器系统,其中所述控制器针对在具有所述脏信息由所述第二值表示并且所述访问信息由所述第二值表示的子段的映射段之中、具有更大数量的所述访问信息由一个或更高的所述第二值表示的子段的映射段设置更高的上传优先级。
16.根据权利要求5所述的存储器系统,其中当从所述外部装置接收到命令、与所述命令相对应的第一逻辑地址以及与所述第一逻辑地址相对应的第一物理地址时,所述控制器从所述映射数据中识别出包括所述第一逻辑地址的第一子段,并且进一步使用所述第一子段的第一脏信息来确定所述第一物理地址是否有效。
17.根据权利要求16所述的存储器系统,
其中当所述第一脏信息由所述第一值表示时,所述控制器确定所述第一物理地址为有效,并且
其中当所述第一脏信息由所述第二值表示时,所述控制器确定所述第一物理地址为无效。
18.根据权利要求16所述的存储器系统,
其中所述控制器对有效的所述第一物理地址执行根据所述命令的命令操作,并且
所述控制器更新所述第一子段的第一访问信息。
19.根据权利要求18所述的存储器系统,其中所述第一访问信息以位图形式或计数器形式表示。
20.一种存储器系统,包括:
存储器装置,存储数据;以及
控制器,生成和更新映射数据,所述映射数据包括外部装置的逻辑地址和所述存储器装置的与所述逻辑地址相对应的物理地址,
其中所述控制器以映射段为单位将最新版本的所述映射数据存储在所述存储器装置和所述外部装置中,并且
其中所述制器以所述映射段的子段为单位,生成和更新关于上传到所述外部装置的所述映射数据的状态信息。
21.根据权利要求20所述的存储器系统,其中所述状态信息包括:
脏信息,指示与所述子段中的所述逻辑地址相对应的所述物理地址是否已经改变;以及
访问信息,指示所述外部装置是否已经访问了所述子段中的所述逻辑地址。
22.根据权利要求21所述的存储器系统,其中所述控制器基于所述子段的所述脏信息或者所述子段的所述访问信息将所述映射数据传输到所述外部装置。
23.根据权利要求21所述的存储器系统,其中当从所述外部装置接收到命令、与所述命令相对应的第一逻辑地址以及与所述第一逻辑地址相对应的第一物理地址时,所述控制器使用包括所述第一逻辑地址的第一子段的第一脏信息来确定所述第一物理地址是否有效。
24.根据权利要求21所述的存储器系统,
其中所述控制器对有效的所述第一物理地址执行根据所述命令的命令操作,并且
其中所述控制器在执行所述命令操作后,更新所述第一子段的第一访问信息。
25.一种控制器的操作方法,所述操作方法包括:
生成一个或多个系统段,每个系统段包括一个或多个子段,每个子段具有一条或多条信息,每条信息表示逻辑地址与物理地址之间的映射关系;
将所述系统段提供到主机以存储为主机段;
访问存储器装置内的、与从所述主机提供的信息中包括的所述物理地址有关的区域;并且
基于表示所述物理地址是否已改变以及所述区域是否已被访问中的至少一个的历史信息,更新所述主机段中的一个或多个,
其中所述系统段内的所述子段包括与所述子段相对应的多条信息的历史信息。
CN202010639871.3A 2019-07-22 2020-07-06 管理存储器系统中的元数据的设备和方法 Withdrawn CN112286835A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190088385A KR20210011216A (ko) 2019-07-22 2019-07-22 메모리 시스템의 메타 데이터 관리 방법 및 장치
KR10-2019-0088385 2019-07-22

Publications (1)

Publication Number Publication Date
CN112286835A true CN112286835A (zh) 2021-01-29

Family

ID=74189298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010639871.3A Withdrawn CN112286835A (zh) 2019-07-22 2020-07-06 管理存储器系统中的元数据的设备和方法

Country Status (3)

Country Link
US (1) US11681633B2 (zh)
KR (1) KR20210011216A (zh)
CN (1) CN112286835A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023092446A1 (zh) * 2021-11-26 2023-06-01 华为技术有限公司 数据同步方法及相关设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210016184A (ko) * 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
KR20210018570A (ko) * 2019-08-05 2021-02-18 에스케이하이닉스 주식회사 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
JP2022144314A (ja) * 2021-03-18 2022-10-03 キオクシア株式会社 メモリシステム及びストレージ装置

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740465A (en) 1992-04-08 1998-04-14 Hitachi, Ltd. Array disk controller for grouping host commands into a single virtual host command
US6553511B1 (en) 2000-05-17 2003-04-22 Lsi Logic Corporation Mass storage data integrity-assuring technique utilizing sequence and revision number metadata
US6681292B2 (en) 2001-08-27 2004-01-20 Intel Corporation Distributed read and write caching implementation for optimized input/output applications
US6996676B2 (en) 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
US7620630B2 (en) * 2003-11-12 2009-11-17 Oliver Lloyd Pty Ltd Directory system
KR100706242B1 (ko) 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
US7549034B2 (en) 2005-11-10 2009-06-16 International Business Machines Corporation Redistribution of memory to reduce computer system power consumption
US20070118695A1 (en) 2005-11-18 2007-05-24 International Business Machines Corporation Decoupling storage controller cache read replacement from write retirement
US7574556B2 (en) 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
JP4437489B2 (ja) 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US7856530B1 (en) 2007-10-31 2010-12-21 Network Appliance, Inc. System and method for implementing a dynamic cache for a data storage system
US8909601B2 (en) 2007-11-13 2014-12-09 Oracle America, Inc. System and method for implementing shared scalable nonzero indicators
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
KR101515525B1 (ko) 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
JP2011018182A (ja) 2009-07-08 2011-01-27 Panasonic Corp アドレス変換装置
US8364924B2 (en) 2009-10-21 2013-01-29 International Business Machines Corporation Achieving a high throughput in a storage cache application using a flash solid state disk
US9329846B1 (en) 2009-11-25 2016-05-03 Parakinetics Inc. Cooperative program code transformation
WO2012014140A2 (en) 2010-07-27 2012-02-02 International Business Machines Corporation Logical to physical address mapping in storage systems comprising solid state memory devices
JP2012064158A (ja) 2010-09-17 2012-03-29 Toshiba Corp メモリ管理装置及びメモリ管理方法
US8504774B2 (en) 2010-10-13 2013-08-06 Microsoft Corporation Dynamic cache configuration using separate read and write caches
US9513884B2 (en) 2011-08-16 2016-12-06 International Business Machines Corporation Thermal-aware source code compilation
US8843707B2 (en) 2011-12-09 2014-09-23 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using bandwidth
US8688915B2 (en) 2011-12-09 2014-04-01 International Business Machines Corporation Weighted history allocation predictor algorithm in a hybrid cache
US8788757B2 (en) 2011-12-09 2014-07-22 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
US9218281B2 (en) 2012-05-04 2015-12-22 Seagate Technology Llc Maintaining ordering via a multi-level map of a solid-state media
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US9003126B2 (en) 2012-09-25 2015-04-07 Intel Corporation Apparatus, system and method for adaptive cache replacement in a non-volatile main memory system
KR102067029B1 (ko) 2012-12-13 2020-01-16 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
JP2016506585A (ja) 2013-01-08 2016-03-03 ヴァイオリン メモリー インコーポレイテッド データストレージのための方法及びシステム
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102211126B1 (ko) 2014-04-17 2021-02-02 삼성전자주식회사 동작 성능을 조절하는 메모리 시스템 및 메모리 시스템의 동작방법
US10656840B2 (en) * 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9507722B2 (en) 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US9501418B2 (en) 2014-06-26 2016-11-22 HGST Netherlands B.V. Invalidation data area for cache
US10268584B2 (en) 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
CN104407989B (zh) 2014-11-25 2019-02-12 上海兆芯集成电路有限公司 具有统一标签和片化数据的高速缓冲存储器
US10007433B2 (en) 2015-01-21 2018-06-26 Sandisk Technologies Llc Systems and methods for performing adaptive host memory buffer caching of transition layer tables
JP2016170682A (ja) 2015-03-13 2016-09-23 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10261725B2 (en) 2015-04-10 2019-04-16 Toshiba Memory Corporation Storage system capable of invalidating data stored in a storage device thereof
KR20160148952A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102447471B1 (ko) * 2015-06-24 2022-09-27 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
US9703664B1 (en) 2015-06-24 2017-07-11 EMC IP Holding Company LLC Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling
KR101731971B1 (ko) 2015-07-08 2017-05-02 주식회사 케이티 앱 관련 요청에 대한 응답을 처리하는 사용자 단말 및 앱 관련 요청에 대한 응답을 제공하는 컴퓨터 프로그램
US10088880B2 (en) 2015-08-27 2018-10-02 Intel Corporation Thermal monitoring of memory resources
WO2017066601A1 (en) 2015-10-16 2017-04-20 Huang Yiren Ronnie Method and apparatus for providing hybrid mode to access ssd drive
US10229051B2 (en) * 2015-12-30 2019-03-12 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
KR20170081118A (ko) 2015-12-30 2017-07-11 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
US20170351452A1 (en) 2016-06-01 2017-12-07 Intel Corporation Dynamic host memory buffer allocation
KR102621467B1 (ko) 2016-09-05 2024-01-05 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 온도 조절 방법
KR102611638B1 (ko) * 2016-09-27 2023-12-08 삼성전자주식회사 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템
US10255177B2 (en) 2016-10-10 2019-04-09 Dell Products, Lp System and method for adaptive optimization for performance in solid state drives based on read/write intensity
US10459644B2 (en) 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
WO2018115920A1 (en) 2016-12-20 2018-06-28 Intel Corporation Methods and apparatus to perform memory copy operations
TWI653533B (zh) * 2017-03-07 2019-03-11 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10635584B2 (en) 2017-06-29 2020-04-28 Western Digital Technologies, Inc. System and method for host system memory translation
KR102462507B1 (ko) 2017-06-29 2022-11-02 삼성전자주식회사 프로세서, 이를 포함하는 컴퓨팅 장치 및 프로세서 저전력 모드 진입 방법
US10452558B2 (en) 2017-06-30 2019-10-22 Western Digital Technologies, Inc. Address range mapping for storage devices
US10970226B2 (en) 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
US20190265976A1 (en) 2018-02-23 2019-08-29 Yuly Goryavskiy Additional Channel for Exchanging Useful Information
US10929285B2 (en) 2018-02-27 2021-02-23 Western Digital Technologies, Inc. Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer
US10613983B2 (en) 2018-03-20 2020-04-07 Advanced Micro Devices, Inc. Prefetcher based speculative dynamic random-access memory read request technique
TWI693516B (zh) * 2018-11-13 2020-05-11 群聯電子股份有限公司 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
US10990534B2 (en) * 2019-01-31 2021-04-27 Intel Corporation Device, system and method to facilitate disaster recovery for a multi-processor platform
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US11237973B2 (en) 2019-04-09 2022-02-01 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20200122086A (ko) 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치
US11294825B2 (en) 2019-04-17 2022-04-05 SK Hynix Inc. Memory system for utilizing a memory included in an external device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023092446A1 (zh) * 2021-11-26 2023-06-01 华为技术有限公司 数据同步方法及相关设备

Also Published As

Publication number Publication date
US20210026777A1 (en) 2021-01-28
US11681633B2 (en) 2023-06-20
KR20210011216A (ko) 2021-02-01

Similar Documents

Publication Publication Date Title
US10963175B2 (en) Apparatus and method for searching valid data in memory system
US10817418B2 (en) Apparatus and method for checking valid data in memory system
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
US11681633B2 (en) Apparatus and method for managing meta data in memory system
CN111581121B (zh) 用于管理存储器系统中的映射数据的方法和设备
US11526438B2 (en) Memory system capable of increasing storage efficiency and operation method thereof
CN113900586A (zh) 存储器系统及其操作方法
CN112148632A (zh) 用于改善存储器系统的输入/输出吞吐量的设备和方法
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
CN110781023A (zh) 用于在存储器系统中处理数据的设备和方法
CN112181280A (zh) 传送存储器系统中的映射信息和读取计数的设备和方法
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN111752467A (zh) 传送存储器系统中的垃圾收集状态信息的设备和方法
CN113448503B (zh) 调整顺序命令的操作时间差的存储器系统及其操作方法
CN112286836A (zh) 用于在存储器系统中执行访问操作的方法和设备
CN111506257A (zh) 用于在存储器系统中传输映射信息的装置和方法
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
US11416410B2 (en) Memory system, method of operating the same and data processing system for supporting address translation using host resource
CN111857818A (zh) 存储器系统和通过该存储器系统执行命令操作的方法
CN112286445A (zh) 存储器系统及控制其温度的方法
CN113687769A (zh) 用于提高数据处理系统中的操作效率的设备和方法
CN111857565A (zh) 存储器系统、数据处理系统及其操作方法
CN112015670A (zh) 传送存储器系统中的映射信息的设备
CN113495689A (zh) 用于控制存储器系统的输入/输出吞吐量的设备和方法
CN113050879A (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: 20210129