CN111581121B - 用于管理存储器系统中的映射数据的方法和设备 - Google Patents

用于管理存储器系统中的映射数据的方法和设备 Download PDF

Info

Publication number
CN111581121B
CN111581121B CN201911285104.0A CN201911285104A CN111581121B CN 111581121 B CN111581121 B CN 111581121B CN 201911285104 A CN201911285104 A CN 201911285104A CN 111581121 B CN111581121 B CN 111581121B
Authority
CN
China
Prior art keywords
memory
physical address
data
host
controller
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.)
Active
Application number
CN201911285104.0A
Other languages
English (en)
Other versions
CN111581121A (zh
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 CN111581121A publication Critical patent/CN111581121A/zh
Application granted granted Critical
Publication of CN111581121B publication Critical patent/CN111581121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/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
    • 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/7205Cleaning, compaction, garbage collection, erase control

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映射数据的至少一部分和L2P映射数据的状态信息,并且控制存储器装置的数据输入/输出,其中当从外部装置接收到写入请求、写入数据、第一物理地址和第一逻辑地址时,控制器对未分配逻辑地址的第二物理地址执行针对写入请求的写入操作,并使第一物理地址无效,并且在完全执行写入操作之后,控制器将不包括第二物理地址的第一确认传送到外部装置。

Description

用于管理存储器系统中的映射数据的方法和设备
相关申请的交叉引用
本申请要求于2019年2月19日提交的申请号为10-2019-0018973的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个示例性实施例涉及一种存储器系统和包括该存储器系统的数据处理装置,更特别地,涉及一种用于控制存储器系统中的映射数据的方法和设备。
背景技术
近来,计算环境的范例已经转变为几乎能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在增加。这种便携式电子装置通常使用或包括嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,由于不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。具有这些优点的存储器系统的示例包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本发明的各个实施例涉及一种存储器系统、数据处理系统或控制该存储器系统和该数据处理系统的方法,可以使从主机与逻辑地址和写入请求一起输入的物理地址无效,而无需搜索与该逻辑地址相关联的映射数据。因此,提高了与在存储器系统内执行的写入操作有关的内部操作的速度,并且还提高了无效数据管理的效率。
本发明的各个实施例涉及一种存储器系统、数据处理系统或操作该存储器系统和该数据处理系统的方法,其中存储器系统可以仅将主机所请求的数据的映射数据上载到主机,从而减少可能由于传送(上载或下载)不必要的映射数据而引起的存储器系统和主机之间数据通信的开销(overhead)。
本发明的各个实施例涉及一种存储器系统、数据处理系统或操作该存储器系统和该数据处理系统的方法,可以至少基于存储器系统中与从主机与写入请求一起输入的物理地址相关联的状态信息,使该物理地址无效,从而提高在存储器系统内执行的写入操作的速度以及存储器系统的无效数据管理的效率。
本发明的各个实施例涉及一种存储器系统、数据处理系统或操作该存储器系统和该数据处理系统的方法,当从主机传送的物理地址有效时,通过减少包括在存储器装置中的与有效物理地址对应的存储块的有效页面计数或存储块的有效存储元件计数,可以容易地管理有效页面计数,并且由于在另一存储块中执行写入操作期间,可以对具有小于预定值的有效页面计数的存储块执行垃圾收集操作,从而提高后台操作的效率。
本发明的各个实施例涉及一种存储器系统、数据处理系统或驱动该存储器系统和该数据处理系统的方法,当存储器系统而不是主机具有用于控制与写入请求一起输入的物理地址的权限时,可以通过利用主机和存储器系统之间的接口而无需添加单独的硬件配置或资源以及改变接口来设置。
本发明的各个实施例涉及一种存储器系统、数据处理系统或驱动该存储器系统和该数据处理系统的方法,因为存储器系统可以使从主机与写入请求一起输入的物理地址无效,可以提高包括可以被设计为直接控制存储器系统的主机的数据处理系统的操作可靠性。
根据本发明的实施例,一种存储器系统可以包括:存储器装置,适于存储L2P映射数据,该L2P映射数据包括外部装置的逻辑地址和与该逻辑地址对应的存储器装置的物理地址;以及控制器,适于存储L2P映射数据的至少一部分和L2P映射数据的状态信息,并且控制存储器装置的数据输入/输出,其中当从外部装置接收到包括写入数据、第一逻辑地址和第一物理地址的写入请求时,控制器可以对未存储数据并由第二物理地址识别的页面执行写入操作,并可以使第一物理地址无效,并且其中在完全执行写入操作之后,控制器可以将不包括第二物理地址的第一确认传送到外部装置。
当在执行写入操作之后从外部装置接收到包括第一逻辑地址的读取请求时,控制器可以将第二物理地址和存储在存储器装置的第二物理地址处的读取数据传送到外部装置。控制器可以通过改变与第一物理地址对应的状态信息的值来使第一物理地址无效。状态信息可以包括无效地址信息。控制器可以使第一物理地址无效,并减少与所无效的第一物理地址对应的存储块的有效页面计数。控制器可以对具有小于预定值的有效页面计数的存储块执行垃圾收集操作。控制器可以对有效页面计数为0的存储块执行擦除操作。在接收到针对第一逻辑地址的读取请求之后,控制器可以传送第二物理地址。
根据本发明的实施例,一种控制存储器系统的方法,该存储器系统可以包括控制器,该控制器适于存储L2P映射数据和L2P映射数据的状态信息,该L2P映射数据包括外部装置的逻辑地址和与该逻辑地址对应的存储器装置的物理地址,该方法包括:从外部装置接收包括第一逻辑地址和与第一逻辑地址对应的第一物理地址的写入请求;搜索未映射到逻辑地址的第二物理地址;对与搜索到的第二物理地址对应的页面执行针对写入请求的写入操作;使第一物理地址无效;并且将不包括搜索到的第二物理地址的第一确认传送到外部装置。
该方法可以进一步包括:当从外部装置接收到读取请求和第一逻辑地址时,将存储在存储器装置中的与搜索到的第二物理地址对应的数据和搜索到的第二物理地址传送到外部装置。使第一物理地址无效包括:改变与第一物理地址对应的状态信息的值。状态信息包括无效地址信息。该方法可以进一步包括:在使第一物理地址无效之后,减少与第一物理地址对应的存储块的有效存储元件计数。在减少有效存储元件计数之后,对具有小于预定值的有效存储元件计数的存储块执行垃圾收集操作。在减少有效存储元件计数之后,对有效存储元件计数为0的存储块执行擦除操作。在接收到针对第一逻辑地址的读取请求之后,传送搜索到的第二物理地址。
根据本发明的实施例,一种数据处理系统可以包括:存储器系统,可以包括适于将数据存储在存储器装置中的控制器;以及主机,与存储器系统交互工作,该主机存储在存储器系统中使用的映射信息的至少一部分,并且可以通过在映射信息的至少一部分中搜索与第一逻辑地址相关联的第一物理地址,将包括第一逻辑地址和第一物理地址的写入请求传送到存储器系统,其中当从主机与写入请求一起传送第一物理地址时,存储器系统可以对与未分配逻辑地址的第二物理地址对应的页面执行写入操作,并且可以使第一物理地址无效,并且当从主机接收到针对第一逻辑地址的读取请求时,存储器系统可以响应于该读取请求将第二物理地址传送到主机。
存储器系统可以通过改变与第一物理地址对应的状态信息的值来使第一物理地址无效。状态信息包括无效地址信息。读取请求是用于主机访问存储在存储器系统中的与第一逻辑地址对应的数据的请求。
根据本发明的实施例,一种数据处理系统可以包括:存储器装置,用于存储多个映射数据段,每个映射数据段将由外部装置使用的逻辑地址与由存储器系统使用的物理地址相关联;以及控制器,用于从存储器装置加载映射数据段,接收从外部装置输入的写入请求与写入数据段,并且基于写入请求是否与物理地址一起输入,释放被加载的映射数据段中与物理地址相关的映射数据段。
本发明的这些和其它特征及优点不限于上述实施例,并且从以下结合附图的详细描述中,对于本发明领域的技术人员将变得显而易见。
附图说明
图1是示出根据实施例的数据处理系统和存储器系统执行命令操作的方法的框图。
图2是示出根据实施例的数据处理系统100的示意图。
图3是示出图2的存储器系统中采用的控制器的配置的示意图。
图4是描述根据实施例的关于存储器系统中的存储器装置的数据处理操作的示意图。
图5是示出根据实施例的存储器装置的示意图。
图6是示出初始上载映射数据的进程的流程图。
图7是示出根据实施例的包括存储器系统的数据处理系统的框图。
图8是示出根据实施例的包括存储器系统的数据处理系统的示例的流程图。
图9是示出图7所示的存储器系统执行写入操作的方法的流程图。
图10A至图10C是示出根据实施例的状态信息的示例的表。
图11是示出图7所示的外部装置执行写入操作的方法的流程图。
图12A至图12C示出图7所示的外部装置向存储器系统传送的写入请求的结构。
图13是示出在图7所示的数据处理系统中执行写入操作的方法的流程图。
具体实施方式
以下参照附图更详细地描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成可以是任何所公开的实施例的变型的其它实施例。因此,本发明不限于本文所阐述的实施例。相反,所描述的实施例被提供以使得本公开是彻底且完整的,并将本公开的范围充分地传达给本发明所属领域的技术人员。注意的是,对“实施例”、“另一实施例”等的参考不一定仅意味着一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可以在本文中使用以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,在一个实例中的第一元件也可以在另一实例中被称为第二元件或第三元件。
附图不一定按比例绘制,并且在某些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。当元件被称为连接或联接到另一元件时,应理解的是,前者可以直接连接到或联接到后者,或者经由两者之间的中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间唯一的元件,或者也可以存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文使用的,单数形式旨在包括复数形式,反之亦然,除非上下文另有清楚地说明。在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”,除非另有说明或上下文清楚地指向单数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,短语“和/或”包括一个或多个相关所列项目的任意一个和全部组合。
除非另有定义,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中定义的那些术语的术语应被理解为具有与其在本公开的上下文和相关领域中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文如此明确地定义。
在下面的描述中,为了提供对本发明的透彻理解,阐述了大量具体细节。可以在没有一些或全部这些具体细节的情况下实施本发明。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可以单独使用或与另一实施例的其它特征或元件组合使用。
在下文中,将参照附图在下面详细地描述本发明的各个实施例。在下面的描述中,将仅描述理解根据本实施例的操作所必需的部分,并且将省略其它部分的描述,以免模糊本实施例的概念和要点。
图1是示出根据实施例的数据处理系统和存储器系统执行命令操作的方法的框图。
参照图1,数据处理系统包括:存储器系统,包括存储器装置150、存储器144和控制器130;以及主机,包括主机控制器接口108和主机存储器106。主机可以是与存储器系统交互工作的外部装置的示例。
图1所示的存储器144可以是控制器130中包括的高速缓存/缓冲存储器或与控制器130相关联的易失性存储器。为了便于描述,以与控制器130分离的配置描述存储器144。然而,即使存储器144位于控制器130外部,存储器144也可以用作控制器130的高速缓存/缓冲存储器。
当向主机和存储器系统供应电力(通电)时,主机和存储器系统可以互锁以执行映射数据初始化上载操作。在这种情况下,控制器130可以加载存储在存储器装置150中的存储器映射数据MAP_M(例如,L2P MAP)。控制器130可以将存储器映射数据MAP_M存储在存储器144中作为控制器映射数据MAP_C。控制器130可以将存储在存储器144中的控制器映射数据MAP_C传送到主机控制器接口108。主机控制器接口108可以将从控制器130传递的控制器映射数据MAP_C作为主机映射数据MAP_H存储在主机存储器106中。如以上描述的操作,可以完成映射数据初始化上载操作,并且下面将参照图6提供其详细描述。
主机可以生成包括第一逻辑地址LA_1的写入请求WT_REQ。主机控制器接口108基于存储在主机存储器106中的主机映射数据MAP_H搜索与第一逻辑地址LA_1对应的第一物理地址PA_1。因此,主机控制器接口108传送具有第一逻辑地址LA_1和第一物理地址PA_1的写入请求WT_REQ。
当输入具有第一逻辑地址LA_1和第一物理地址PA_1的写入请求WT_REQ时,控制器130可以分配第二物理地址PA_2,该第二物理地址PA_2指示未存储任何数据或未与任何逻辑地址相关联的空闲空间。控制器130对第二物理地址PA_2所指示的物理位置执行写入操作。
之后,当第一物理地址PA_1与读取请求一起从主机控制器接口108输入时,控制器130可以改变关于第一物理地址的状态信息的值并使第一物理地址PA_1无效。状态信息可以包括表示地址信息是否有效的指示符。将参照图9至图13对其进行详细描述。
图2是示出根据实施例的数据处理系统100的框图。
在图2中,描述了根据本公开的实施例的数据处理系统100。参照图2,数据处理系统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内执行与命令对应的操作。稍后参照图4和图5描述在存储器系统110中处理多个命令。
存储器系统110可以响应于来自主机102的请求进行操作或者执行具体的功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。存储器系统110可以利用可以根据主机接口的协议与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
用于存储器系统110的存储装置可以利用例如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和/或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的存储器装置来实施。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。
控制器130和存储器装置150可以被集成到单个半导体装置中,其中单个半导体装置可以被包括在如上所例示的各种类型的存储器系统中的任意一个中。
通过示例而非限制的方式,控制器130和存储器装置150可以被集成到单个半导体装置中。控制器130和存储器装置150可以如此集成到SSD中以提高操作速度。当存储器系统110用作SSD时,与利用硬盘实施时主机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......,每个存储块可以包括多个页面。多个页面中的每一个可以包括电联接到字线(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中处理(例如,待从存储器装置150输出)的数据的错误位,ECC组件138可以包括ECC编码器和ECC解码器。这里,ECC编码器可以对待编程在存储器装置150中的数据执行错误校正编码,以生成添加奇偶校验位的经编码的数据,并将经编码的数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC组件138可以确定错误校正解码是否已经成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ECC组件138可以使用在ECC编码进程期间所生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、涡轮码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。ECC组件138可以包括用于基于上述代码中的至少一个来执行错误校正操作的任何和所有电路、模块、系统或装置。
PMU 140可以管理、控制或提供控制器130中的电力。
存储器接口142可以用作用于处理控制器130和存储器装置150之间传送的命令和数据的接口,以响应于从主机102传递的请求与控制器130对应来控制存储器装置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可以存储映射数据和状态信息。映射数据可以包括L2P映射数据,L2P映射数据包括L2P段,每个L2P段将逻辑地址LA与物理地址PA相关联。另外,映射数据可以进一步包括P2L映射数据,P2L映射数据包括P2L段,每个P2L段将物理地址PA与逻辑地址LA相关联。状态信息可以指示包括在存储器装置150中的页面、存储块和存储的数据的状态。在实施例中,状态信息可以包括关于存储块的无效地址信息和有效页面计数。在实施例中,状态信息可以具有位图结构。在这种情况下,因为存储器144存储少量的状态信息,所以控制器130很可能可以在没有沉重负担的情况下访问或检查状态信息。另外,可以基于映射段生成、控制、更新或管理状态信息。在另一实施例中,状态信息可以具有表结构或列表结构。无效地址信息可以包括指示数据已经无效,即不再使用的页面的物理地址。在实施例中,当执行写入操作时,无效地址信息可以包括指示先前存储的旧写入数据响应于该写入操作而变得无效的页面的物理地址。具有位图结构的无效地址信息可以具有针对每个页面的初始值。当由物理地址PA指示的数据段无效时,初始值可以被更新为另一个值。有效页面计数可以指示存储块中包括的有效页面的数量。本文中,有效页面表示存储有效的,即稍后被访问或读取的数据段的页面。
存储器144可以存储执行诸如以下的操作所需的数据:主机102所请求的数据写入和数据读取,和/或针对诸如垃圾收集和损耗均衡的后台操作的、在存储器装置150与控制器130之间的数据传送。本文中,后台操作可以包括无论从主机输入任何请求或任何查询,都在存储器系统内独立执行的操作。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可以利用微处理器或中央处理单元(CPU)来实施。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的全部操作。通过示例而非限制的方式,处理器134可以响应于从主机102输入的写入请求或读取请求,来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件来控制存储器系统110的全部操作。本文中,固件可以被称为闪存转换层(FTL)。FTL可以执行作为主机102和存储器装置150之间的接口的操作。主机102可以通过FTL向存储器装置150传送对写入操作和读取操作的请求。
FTL可以管理地址映射、垃圾收集、损耗均衡等的操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以看起来像通用存储装置一样执行读取操作或写入操作。而且,通过基于映射数据的地址映射操作,当控制器130试图更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可以将更新数据编程在另一个空白页面上并且可以使该特定页面的旧数据无效(例如,将与更新数据的逻辑地址对应的物理地址从先前的特定页面更新到另一个新编程的页面)。进一步地,控制器130可以将新数据的映射数据存储到FTL中。
例如,当在存储器装置150中执行从主机102请求的操作时,控制器130使用以微处理器或中央处理单元(CPU)等实施的处理器134。与存储器装置150接合的处理器134可以处理与从主机102输入的命令对应的内部指令或命令。控制器130可以执行如诸如以下的与从主机102输入的命令对应的命令操作的前台操作:与写入请求对应的编程操作,与读取请求对应的读取操作,与擦除/丢弃命令对应的擦除/丢弃操作,以及与设置参数命令、设置特征命令或设置命令对应的参数设置操作。本文中,前台操作可以包括响应于或至少基于从主机输入的请求、命令或查询而在存储器系统内执行的操作。
又例如,控制器130可以通过处理器134对存储器装置150执行后台操作。通过示例而非限制的方式,对存储器装置150的后台操作包括将存储在存储器装置150中的存储块152、154、156......之中的存储块中的数据复制和存储到另一存储块的操作,例如,垃圾收集(GC)操作。后台操作可以包括将存储在存储块152、154、156......中的至少一个中的数据移动或交换到存储块152、154、156......中的至少另一个中的操作,例如,损耗均衡(WL)操作。在后台操作期间,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156......中的至少一个,例如,映射清除操作。检查或搜索存储块152、154、156......之中的坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。
在存储器系统110中,控制器130执行与从主机102输入的多个命令对应的多个命令操作。例如,当顺序地、随机地或可选地执行与多个编程命令对应的多个编程操作、与多个读取请求对应的多个读取操作以及与多个擦除命令对应的多个擦除操作时,控制器130可以确定用于将控制器130连接到存储器装置150中包括的多个存储器管芯的多个通道(或通路)之中的哪个(哪些)通道或通路对于执行每个操作是合适的或适当的。控制器130可以经由确定的通道或通路发送或传送数据或指令以用于执行每个操作。在每个操作完成之后,包括在存储器装置150中的多个存储器管芯可以分别经由相同的通道或通路来传送操作结果。然后,控制器130可以将响应或确认信号传送到主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于从主机102输入的命令,控制器130可以基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可以经由选择的通道或通路来传递指令和/或操作结果与数据。
通过示例而非限制的方式,控制器130可以识别关于与存储器装置150中包括的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以确定每个通道或每个通路的状态为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态。控制器对指令(和/或数据)通过哪个通道或通路传递的确定可以与物理块地址,例如,指令(和/或数据)被传递到哪个(哪些)管芯相关联。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的某些内容的块或页面参数,该块或页面参数是具有预定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个(哪些)通道或通路来交换指令或数据。
管理单元(未示出)可以包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以发现存储器装置150中不满足进一步使用条件的坏存储块,并对该坏存储块执行坏块管理。当存储器装置150为例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可以被编程到新的存储块中。坏块可能严重劣化具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性。因此,可靠的坏块管理可以增强或改善存储器系统110的性能。
参照图3,详细描述根据本公开的另一实施例的存储器系统中的控制器。控制器130与主机102和存储器装置150配合。如图所示,控制器130包括闪存转换层(FTL)40以及先前结合图2标出的主机接口132、存储器接口142和存储器144。
尽管未在图3中示出,但是根据实施例,图2中描述的ECC组件138可以包括在闪存转换层(FTL)40中。在另一实施例中,可以将ECC组件138实施为包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
主机接口132用于处理从主机102传送的命令、数据等。通过示例而非限制的方式,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且按照命令、数据等被存储的顺序将命令、数据等输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传送用于处理从缓冲器管理器52接收的命令、数据等的事件。
例如读取请求或写入请求的具有相同特性的多个命令或数据可以从主机102传送到存储器系统110,或者具有不同特性的命令和数据可以在由主机102混合或混杂之后被传送到存储器系统110。例如,用于读取数据的多个命令(读取请求)可以被传递到存储器系统110,或者用于读取数据的命令(读取请求)和用于编程/写入数据的命令(写入请求)可以被交替地传送到存储器系统110。主机接口132可以将从主机102传送的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已经从主机102输入的命令、数据等的特性来估计或预测控制器130将执行哪种内部操作。主机接口132可以至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传送的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置为确定缓冲器管理器是否应将命令、数据等存储在存储器144中,或者缓冲器管理器是否应将命令、数据等传递到闪存转换层(FTL)40中。事件队列54接收从缓冲器管理器52输入的事件,以按照接收的顺序将事件传递到闪存转换层(FTL)40中,该事件将响应于从主机102传送的命令、数据等由存储器系统110或控制器130内部执行和处理。
根据实施例,闪存转换层(FTL)40可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处理或控制映射数据。状态管理器42可以执行垃圾收集或损耗均衡。块管理器48可以对存储器装置150中的块执行命令或指令。
通过示例而非限制的方式,主机请求管理器(HRM)46可以根据从主机接口132传递的读取命令和编程命令以及事件,使用映射管理器(MM)44和块管理器48来处置或处理请求。主机请求管理器(HRM)46可以向映射管理器(MM)44发送查询请求,以确定与随事件输入的逻辑地址对应的物理地址。主机请求管理器(HRM)46可以将具有物理地址的读取请求发送到存储器接口142,以处理读取请求(处置事件)。另一方面,主机请求管理器(HRM)46可以向块管理器48发送编程请求(写入请求),以将数据编程到存储器装置150中的特定空白页面(无数据),然后可以向映射管理器(MM)44传送与编程请求对应的映射更新请求,以更新将逻辑-物理地址相互映射的信息中与被编程数据有关的项目。
这里,块管理器48可以将从主机请求管理器(HRM)46、映射管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(参见图2)的编程或写入性能,块管理器48可以收集编程请求并将对多平面和单触发编程操作的闪存编程请求发送到存储器接口142。在实施例中,块管理器48向存储器接口142发送若干闪存编程请求,以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定需要进行垃圾收集时选择包括最小数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空白块,并擦除包含所移动的有效数据的块,使得块管理器48可以确定存储器装置150中具有足够的空闲块(没有数据的空白块)。如果块管理器48将关于待擦除的块的信息提供到状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别记录在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面向块管理器48发送编程请求。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存缺失时,映射管理器44可以向存储器接口142发送读取请求以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可以将编程请求发送到块管理器48,以产生清洁的高速缓存块,并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(HRM)46可以针对页面的相同逻辑地址编程最新版本的数据,并且当前发出更新请求。当状态管理器42在未正常完成有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为如果状态管理器42请求映射更新并且稍后完成有效页面复制,则利用旧物理信息发出的映射请求。只要最新的映射表仍然指向旧物理地址,映射管理器44就可以执行映射更新操作以确保准确性。
根据实施例,状态管理器42、映射管理器44和块管理器48中的至少一个可以包括用于执行其自身操作的至少一个电路。如本公开中所使用的,术语“电路”是指以下中的任意一个和全部:(a)仅硬件电路实施方式(诸如仅模拟和/或数字电路的实施方式);(b)电路和软件(和/或固件)的组合,诸如(如适用):(i)处理器的组合,或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分;以及(c)诸如微处理器或微处理器的一部分的电路,需要软件或固件来操作,即使软件或固件物理上不存在。“电路”的这种定义适用于本申请中,包括任何权利要求中该术语的任意一个和全部使用。又如,如在本申请中所使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的部分及处理器(或多个处理器)所附软件和/或固件的实施方式。例如,如果适用于特定的权利要求元素,术语“电路”还涵盖用于存储装置的集成电路。
存储器装置150可以包括多个存储块。根据一个存储器单元中可以存储或表示的位的数量,多个存储块可以是诸如单层单元(SLC)存储块、多层单元(MLC)存储块等的不同类型的存储块中的任意一个。这里,SLC存储块包括由每个存储1位数据的存储器单元实施的多个页面。SLC存储块可以具有高数据I/O操作性能和高耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块对于相同的空间可以具有更大的存储容量。MLC存储块可以在存储容量方面高度集成。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC'存储块来实施。MLC存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实施为诸如例如NAND闪速存储器、NOR闪速存储器等的闪速存储器的非易失性存储器。可选地,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-MRAM)等中的至少一个来实施。
图4是描述根据实施例的关于存储器系统中的存储器装置的数据处理操作的示意图。
参照图4,控制器130可以执行与从主机102接收的命令对应的命令操作,例如,与写入请求对应的编程操作。此时,控制器130可以将与写入请求对应的多个用户数据段写入并存储在存储器装置150中的存储块552、554、562、564、572、574、582、584中。而且,对应于对存储块552、554、562、564、572、574、582、584的写入操作,控制器130可以生成并更新用户数据的元数据,并且将元数据写入并存储在存储器装置150的存储块552、554、562、564、572、574、582、584中。
控制器130可以生成并更新指示用户数据被存储在存储器装置150的存储块552、554、562、564、572、574、582、584中包括的页面中的信息,例如第一映射数据和第二映射数据,即,生成并更新第一映射数据的逻辑段即L2P段和第二映射数据的物理段即P2L段,然后通过执行映射清除操作,将L2P段和P2L段存储在存储器装置150的存储块552、554、562、564、572、574、582、584中包括的页面中。
例如,控制器130可以将与从主机102接收的写入请求对应的用户数据高速缓存并缓冲在控制器130的存储器144中包括的第一缓冲器510中,即,将用户数据的数据段512存储在作为数据缓冲器/高速缓存的第一缓冲器510中。然后,控制器130可以将存储在第一缓冲器510中的数据段512写入并存储在存储器装置150的存储块552、554、562、564、572、574、582、584中包括的页面中。
当与从主机102接收的写入请求对应的用户数据的数据段512被写入并存储在存储器装置150的存储块552、554、562、564、572、574、582、584中包括的页面中时,控制器130可以生成第一映射数据和第二映射数据,并将第一映射数据和第二映射数据存储在控制器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可以包括多个存储器管芯,例如,第一存储器管芯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,例如,N个块Block0、Block1、……、BlockN-1。如上面参照图2所描述的,每个块可以包括多个页面,例如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接收的命令对应的命令操作的用户数据和元数据可以被写入并存储在各个存储块614、618、622、626、634、638、642、646、654、658、662、666、674、678、682、686中包括的页面中。特别地,在将存储块614、618、622、626、634、638、642、646、654、658、662、666、674、678、682、686分组为多个超级存储块之后,与从主机102接收的命令对应的命令操作的用户数据和元数据可以例如通过单触发编程被写入并存储在多个超级存储块中。
多个超级存储块中的每一个可以包括多个存储块,例如,包括在第一存储块组中的至少一个存储块和包括在第二存储块组中的至少一个存储块。第一存储块组和第二存储块组可以是联接到不同通道的不同存储器管芯。此外,联接到第一通道的第一存储块组中的多个存储块,例如第一存储块和第二存储块,可以是联接到通道的不同通路的存储器管芯中的存储块,并且联接到第二通道的第二存储块组中的多个存储块,例如第三存储块和第四存储块,可以是联接到通道的不同通路的存储器管芯中的存储块。
例如,随机的第一超级存储块可以包括:第一存储块,包括在联接到第一通道的第一存储器管芯中;第二存储块,包括在联接到第二通道的第二存储器管芯中;第三存储块,包括在联接到第一通道的第三存储器管芯中;以及第四存储块,包括在联接到第二通道的第四存储器管芯中。虽然在本公开的实施例中描述了一个超级存储块包括4个存储块,但是要注意的是,一个超级存储块可以仅包括联接到第一通道的第一存储器管芯中包括的第一存储块以及联接到第二通道的第二存储器管芯中包括的第二存储块,即,仅包括2个存储块。
在本公开的实施例中,在存储器装置150中包括的超级存储块中执行编程操作的情况下,用户数据的数据段和用户数据的元数据的元段可以通过交织方案,特别是通道交织方案和存储器管芯交织方案或存储器芯片交织方案,被存储在各个超级存储块中包括的多个存储块中。为此,包括在各个超级存储块中的存储块可以包括不同存储器管芯中包括的存储块,例如,联接到不同通道的不同存储器管芯的存储块。
而且,在本公开的实施例中,在如上所述随机的第一超级存储块可以包括联接到2个通道的4个存储器管芯中包括的4个存储块的情况下,为了确保通过通道交织方案和存储器管芯交织方案执行编程操作,第一超级存储块的第一页面对应于第一存储块的第一页面,第一超级存储块的紧接在第一页面之后的第二页面对应于第二存储块的第一页面,第一超级存储块的紧接在第二页面之后的第三页面对应于第三存储块的第一页面,并且第一超级存储块的紧接在第三页面之后的第四页面对应于第四存储块的第一页面。在本公开的实施例中,可以从第一超级存储块的第一页面起顺序地执行编程操作。在下文中,将参照图7通过举例对根据实施例的存储器系统中的存储器装置150中包括的超级存储块执行编程操作的操作,例如存储与从主机102接收的写入请求对应的用户数据和元数据的段的操作进行详细描述。
图6是示出在通电之后存储器系统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。主机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输入的对映射数据的单个请求,多次从存储器装置150加载存储器映射数据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中的数据的操作。
在对映射数据的初始上载操作之后,可以响应于主机请求或者在没有主机请求的情况下在控制器130的控制下,将存储器映射数据MAP_M更新并存储在存储器装置150中。可以部分地或全部地并且周期性地或基于事件地,将存储器映射数据MAP_M更新并存储在存储器装置150中。
图7示出了根据实施例的包括图1和图6所示的存储器系统110和主机102的数据处理系统的示例。根据实施例的存储器系统110包括:存储器装置150,包括多个存储块;以及控制器130,用于控制存储器装置150。
如图7所示,主机102中的主机存储器106可以存储主机映射数据MAP_H。主机映射数据包括具有将逻辑地址与物理地址相关联的多个L2P段的L2P映射数据L2P_MAP_H。
控制器130中的存储器144可以存储控制器映射数据MAP_C和状态信息STATE_INF。控制器映射数据MAP_C可以包括具有将逻辑地址与物理地址相关联的多个L2P段的L2P映射数据L2P_MAP_C。根据实施例,控制器映射数据MAP_C可以进一步包括具有将物理地址PA与逻辑地址LA相关联的多个P2L段的P2L映射数据P2L_MAP_C。根据实施例的从存储器系统110向主机102传送映射数据的进程可以包括存储器系统110将L2P控制器映射数据L2P_MAP_C上载到主机102,以更新已经被存储在主机存储器106中的主机映射数据MAP_H。
另外,控制器130中的存储器144可以存储状态信息STATE_INF。状态信息STATE_INF可以指示存储器装置150中包括的页面、存储块和数据段的状态。在本发明的实施例中,状态信息STATE_INF可以包括无效地址信息INVALID_INF和有效页面计数VPC。状态信息STATE_INF可以具有位图结构。在这种情况下,因为存储器144存储少量的状态信息,所以控制器130很可能可以在没有沉重负担的情况下访问或检查状态信息STATE_INF。另外,可以基于映射段生成、控制、更新或管理状态信息STATE_INF。在另一实施例中,状态信息STATE_INF可以具有表结构或列表结构。无效地址信息INVALID_INF可以包括指示数据已经无效,即不再使用的页面的物理地址。在实施例中,当执行写入操作时,无效地址信息INVALID_INF可以包括指示先前存储的旧写入数据响应于该写入操作而变得无效的页面的物理地址。具有位图结构的无效地址信息INVALID_INF可以具有针对每个页面的初始值。当由物理地址PA指示的数据段无效时,初始值(例如,“0”)可以被更新为另一值。在实施例中,无效地址信息INVALID_INF可以被包括在映射数据中。有效页面计数VPC可以指示例如存储块的存储器组中包括的有效页面的数量。
图8示出了图7所示的数据处理系统执行的映射更新操作的示例。特别地,图8示出了在控制器130的控制下,周期性地将存储器映射数据MAP_M的一部分或全部上载到主机102以升级或改变已经存储在主机存储器106中的主机映射数据MAP_H的进程。
与主机102交互工作的存储器系统110可以执行从主机102请求的与数据相关的读取操作、擦除操作或写入操作。在执行从主机102请求的读取操作、擦除操作或写入操作之后,当针对数据段或者逻辑地址的存储器装置150的物理位置或物理地址改变时,存储器系统110可以更新元数据。
即使在没有来自主机102的请求的情况下,存储器系统110也可以在执行例如垃圾收集操作或损耗均衡操作的后台操作的进程中,响应于针对数据段的存储器装置150中的物理位置的变化来更新元数据。存储器系统110中包括的控制器130可以检测元数据是否通过上述操作被更新。换言之,控制器130可以检查在生成、更新和擦除元数据时元数据变脏(即,脏映射)。控制器130可以在脏信息中反映脏映射。
当识别出元数据变脏时,控制器130向主机控制器接口108传送通知,通知主机控制器接口108需要更新主机映射数据MAP_H。根据实施例,通知可以以规则的时间间隔被传送,或者根据元数据变脏的多少而被传送。
响应于从控制器130输入的通知,主机控制器接口108可以将对需要更新的主机映射数据MAP_H的请求传送到控制器130(即,请求映射信息)。根据实施例,主机控制器接口108可以仅请求主机映射数据MAP_H的被更新的部分,或者请求全部主机映射数据MAP_H。
控制器130可以响应于用于更新主机映射数据MAP_H的主机控制器接口108的请求来传送元数据(即,发送映射信息)。主机控制器接口108可以将所传送的元数据存储到主机存储器106,以更新所存储的主机映射数据MAP_H(即,L2P映射更新)。
存储在存储器装置150中的存储器映射数据MAP_M可以包括用于映射逻辑地址LA和包括在存储器装置150中的非易失性存储器元件(例如,单元或页面)的物理地址PA的信息。可以以映射段MS为基础来管理存储器映射数据MAP_M。映射段MS中的每一个可以包括多个条目,并且每个条目可以包括用于映射一些连续的逻辑地址LA和一些物理地址PA的信息。
可以将偏移分配给映射段MS。例如,根据存储每个映射段MS的存储器装置150的物理地址PA,可以根据映射到每个映射段MS的逻辑地址LA或物理地址PA来分配偏移量01至12。例如,可以以规则的间隔划分存储器装置150的物理地址PA或分配给存储器装置150的逻辑地址LA,并且与所划分的组中的每一个相关联的映射信息可以形成每个映射段MS。控制器130可以从存储器装置150以映射段MS为基础读取存储器映射数据MAP_M,并且将所读取的存储器映射数据MAP_M存储为控制器映射数据MAP_C。
图9是示出图7所示的存储器系统执行写入操作的方法的流程图。图10A至图10C示出根据实施例的状态信息STATE_INF的示例。图10A示出以位图管理的无效地址信息INVALID_INF的示例。
在下文中,将参照图7、图9以及图10A至图10C来描述根据实施例的存储器系统110执行写入操作的示例。
参照图9,在步骤S150B中,存储器系统110可以从主机102接收包括写入数据WT_DAT和与写入数据WT_DAT相关的第一逻辑地址LA_1的写入请求WT_REQ。在步骤S160中,存储器系统110确定第一物理地址PA_1是否与写入请求WT_REQ一起输入。当第一物理地址PA_1与写入请求WT_REQ一起输入时(步骤S160中为是),存储器系统110确定所接收的写入数据WT_DAT是为改变或替换存储在存储器系统110中的数据段而写入的一种被更新的写入数据。
在步骤S160之前,存储器系统110已经存储了与第一逻辑地址LA_1对应的旧写入数据。然后,在步骤S160之前,存储器系统110已经将旧写入数据的第一逻辑地址LA_1与指示存储器装置150中的物理位置的第一物理地址PA_1相关联,以生成针对第一逻辑地址LA_1的映射信息。映射信息包括第一逻辑地址LA_1和第一物理地址PA_1。在主机102已经接收到从存储器系统110传递的映射信息之后,在步骤S160中,主机102可以将第一物理地址PA_1与写入请求WT_REQ一起传送到存储器系统110。为了利用写入数据WT_DAT改变已经存储在存储器装置150中的旧写入数据,在步骤S160中,主机102将写入请求WT_REQ传送到存储器系统110。然后,存储器系统110响应于写入请求WT_REQ执行以下步骤S170至S230。
在步骤S170中,存储器系统110选择处于未分配逻辑地址的未分配状态的第二物理地址PA_2。未分配状态包括未写入数据的状态。例如,第二物理地址PA_2可以是擦除页面的物理地址,该擦除页面与包括在开放块中的编程页面在物理上连续。另外,第二物理地址PA_2可以是包括在未写入数据的空闲块中的第一页面。
在实施例的描述中,页面可以包括联接到字线的多个存储器单元,并且存储块可以包括多个页面。根据存储在所包括的页面中的数据的状态,可以将多个存储块分为开放块、空闲块和封闭块。空闲块是仅包括擦除页面的存储块,封闭块是仅包括编程页面的存储块。开放块可以包括至少一个擦除页面和至少一个编程页面。
在步骤S190中,存储器系统110对由第二物理地址PA_2识别的页面执行从主机102输入的写入数据WT_DAT的写入操作。当写入数据WT_DAT的大小大于一个页面的存储容量时,存储器系统110可以顺序地对多个页面执行写入操作。在步骤S190中,存储器系统110将从主机102输入的第一逻辑地址LA_1与已经执行写入操作的第二物理地址PA_2或多个第二物理地址PA_2相关联。根据实施例,映射信息或映射表可以具有用于根据数据的大小将逻辑地址与物理地址相关联的各种结构中的一种。例如,当由单个逻辑地址指示的数据段的大小是512字节并且存储器装置中的单个页面的大小是2KB或4KB时,单个逻辑地址可以与指示单个页面的单个物理地址相关联。
在步骤S210中,存储器系统110使存储旧写入数据的第一物理地址PA_1无效。通过释放映射数据中第一物理地址PA_1和第一逻辑地址LA_1之间的对应关系来执行第一物理地址PA_1的无效。可以通过第一物理地址PA_1的无效来使存储在存储器装置中的旧写入数据无效。
如上所述,根据实施例的存储器系统110接收与第一逻辑地址LA_1对应的第一物理地址PA_1。因此,因为根据本实施例的存储器系统110直接使第一物理地址PA_1无效,而不需要单独的映射搜索进程,所以存储器系统110不需要在存储在存储器144中的L2P控制器映射数据L2P_MAP_C中搜索与第一逻辑地址LA_1对应的物理地址。因此,可以提高对第一物理地址PA_1的无效操作的速度,从而也可以提高写入操作的速度。
另外,在步骤S210中,存储器系统110可以改变用于使第一物理地址PA_1无效的状态信息的状态值。将参照图10A至图10C详细描述使第一物理地址PA_1无效的进程。
图10A和图10B示出了以位图结构管理的无效地址信息INVALID_INF的示例。图10A和图10B中的物理地址PA0至PA2、PA4至PA6、PA8、PA9是一种无效物理地址,并且具有状态值“1”。物理地址PA3、PA7是有效物理地址,并且具有状态值“0”。此时,假设从主机102与第一逻辑地址LA_1一起接收的第一物理地址PA_1为“PA3”,则为了使第一物理地址PA_1无效,存储器系统110将无效地址信息INVALID_INF中“PA3”的状态值从“0”改变为“1”。因此,有效物理地址“PA3”变成无效物理地址。因此,本实施例可以提供提高管理无效数据的效率的效果。
在执行步骤S210之后,存储器系统110可以控制或减少与被无效的第一物理地址PA_1相关联的存储块的有效页面计数VPC,如图10C所示。
参照图10C,当所无效的第一物理地址PA_1是指示包括在第四存储块BLK3中的页面的物理地址中的一个时,存储器系统110可以在步骤S210中使第一物理地址PA_1无效,然后将第四存储块BLK3中包括的有效页面计数VPC从“16”改变为“15”。
尽管在实施例中为了方便描述而描述了从主机102接收的第一物理地址PA_1是对应于单个页面的物理地址PA,但是本发明不限于此。当从主机102输入的第一物理地址PA_1是一种对应于五个页面的物理地址PA时,控制器130可以使与写入请求WT_REQ一起输入的第一物理地址PA_1无效,然后将包括该五个页面的第四存储块BLK3中包括的有效页面计数VPC从“16”改变为“11”。当五个页面之中的两个页面被包括在第一存储块BLK0中,而其它三个页面被包括在第二存储块BLK1中时,控制器130可以将第一存储块BLK0的有效页面计数VPC从“10”改变为“8”,并且将第二存储块BLK1的有效页面计数VPC从“15”改变为“12”。根据实施例的存储器系统110可以对具有小于预定值的有效页面计数VPC的存储块执行垃圾收集操作。
当所无效的第一物理地址PA_1是第八存储块BLK7中包括的页面的物理地址中的一个时,存储器系统110可以在步骤S210中使第一物理地址PA_1无效,然后将对应于第八存储块BLK7的有效页面计数VPC从“1”改变为“0”。因此,因为第八存储块BLK7不包括任何有效页面,存储器系统110可以对第八存储块BLK7执行擦除操作。
之后,存储器系统110可以对具有小于预定值的有效页面计数VPC的存储块执行垃圾收集(GC)操作,从而提高后台操作的效率。另外,存储器系统110可以通过对有效页面计数VPC为“0”的存储块执行擦除操作来生成空闲块,从而提高存储器装置的利用率。
重新参照图9,在步骤S230中,存储器系统110可以将第一逻辑地址LA_1映射到在步骤S190中已经执行写入操作的一个或多个第二物理地址PA_2。
随后,在步骤S250中,存储器系统110可以将包括指示已经完全执行写入操作的消息的第一确认ACK1传送到主机102。在实施例中,第一确认ACK1可以进一步包括指示从主机102接收的第一物理地址PA_1已经被无效的消息。第一确认ACK1不包括在步骤S190中执行写入操作时所使用并且在步骤S230中被映射到第一逻辑地址LA_1的第二物理地址PA_2。
随后,在步骤S270B中,存储器系统110确定是否从主机102接收到具有第一逻辑地址LA_1的读取请求RD_REQ。在步骤S270B中接收的第一逻辑地址LA_1是与在步骤S150B中接收的第一逻辑地址LA_1相同的逻辑地址。
当从主机102输入包括第一逻辑地址LA_1的读取请求RD_REQ时(S270B中为是),存储器系统110可以确定对应于第一逻辑地址LA_1的读取数据RD_DAT是一种主机102经常请求访问(例如,读取)的热数据。在这种情况下,读取数据RD_DAT与在步骤S150B中从主机102接收并且通过步骤S190的写入操作被存储在第二物理地址PA_2中的写入数据WT_DAT相同。
在步骤S290中,存储器系统110可以将读取数据RD_DAT和包括第二物理地址PA_2的第二确认ACK2传送到主机102。第二确认ACK2可以包括第一逻辑地址LA_1的映射信息。映射信息可以包括L2P控制器映射数据L2P_MAP_C,L2P控制器映射数据L2P_MAP_C包括第一逻辑地址LA_1和被映射到第一逻辑地址LA_1的第二物理地址PA_2。第二确认ACK2可以进一步包括第一物理地址PA_1被无效的消息。
当没有从主机102与写入请求WT_REQ一起输入第一物理地址PA_1时(S160中为否),存储器系统110确定所接收的写入数据WT_DAT是一种新写入数据。新写入数据是关于第一逻辑地址LA_1被首次输入的、对应于第一逻辑地址LA_1的第一数据。因此,在输入写入请求WT_REQ之前,存储器系统110未曾执行新写入数据的写入操作,并且未存储对应于第一逻辑地址LA_1的映射数据。
当写入数据WT_DAT是一种新写入数据时,存储器系统110选择处于未分配逻辑地址的未分配状态的第二物理地址PA_2。存储器系统110对第二物理地址PA_2执行写入数据WT_DAT的写入操作。存储器系统110可以通过将第一逻辑地址LA_1映射到已经执行写入操作的第二物理地址PA_2来生成映射数据。存储器系统110可以向主机102传送第三确认ACK3,第三确认ACK3包括指示已经完全执行写入操作的消息。
当写入数据WT_DAT是新写入数据时,存储器系统110响应于写入请求WT_REQ执行以下步骤S175至S255。
在步骤S175中,存储器系统110选择处于未分配逻辑地址的未分配状态的第二物理地址PA_2。
在步骤S195中,存储器系统110对第二物理地址PA_2执行写入数据WT_DAT的写入操作。在步骤S225中,存储器系统110可以在映射数据(存储在存储器144中的L2P控制器映射数据L2P_MAP_C)中搜索对应于第一逻辑地址LA_1的物理地址。在步骤S235中,存储器系统110使在L2P控制器映射数据L2P_MAP_C中搜索到的物理地址无效。
在步骤S245中,存储器系统110可以将第一逻辑地址LA_1映射到已经执行写入操作的第二物理地址PA_2。
随后,在步骤S255中,存储器系统110可以传送第三确认ACK3,该第三确认ACK3包括指示已经完全执行写入操作的消息。
根据实施例的存储器系统110仅当从主机102输入对写入数据的读取请求时,才将存储写入数据的物理地址或映射信息传送到主机102。当没有从主机102输入对写入数据的读取请求时,存储器系统110不将存储写入数据的物理地址或映射信息传送到主机102。因此,可以减少由于不必要的映射传送而产生的存储器系统110的开销。
在下文中,将参照图7、图11以及图12A至图12C描述根据实施例的主机102执行写入操作的方法。图11示出主机102执行写入操作的方法。图12A至图12C示出主机102向存储器系统110传送的写入请求WT_REQ的命令描述符块(以下称为“写入请求描述符块”)的示例。尽管参考通用闪存(UFS)的描述符块描述了图12A至图12C所示的写入请求描述符块中的每一个,但是本发明不限于此。
参照图11,在步骤S110中,主机102可以生成具有与写入数据有关的第一逻辑地址LA_1的写入请求WT_REQ。在步骤S130中,主机102确定与第一逻辑地址LA_1对应的第一物理地址PA_1的映射信息是否被高速缓存或包括在存储在主机存储器106中的主机映射数据MAP_H中。
当第一物理地址PA_1没有被高速缓存在主机映射数据MAP_H中时(步骤S130中为否),在步骤S135A中,主机102将具有写入数据WT_DAT和第一逻辑地址LA_1的写入请求WT_REQ传送到存储器系统110。然后,在步骤S255A中,主机102从存储器系统110接收第三确认ACK3。
当第一物理地址PA_1被高速缓存在主机映射数据MAP_H中时(S130中为是),主机102执行步骤S150。在步骤S150中,主机102将写入请求WT_REQ、写入数据WT_DAT、第一逻辑地址LA_1和第一物理地址PA_1传送到存储器系统110。
为此,主机102可以将图12A至图12C所示的写入请求描述符块的写入请求WT_REQ传送到存储器系统110。图12A至图12C所示的写入请求描述符块的行中的每一个包括每个字节。图12A的写入请求描述符块可以包括第零至第五字节0至5,图12B的写入请求描述符块可以包括第零至第九字节0至9,并且图12C的写入请求描述符块可以包括第零至十五字节0至15。写入请求描述符块的列中的每一个包括每个字节中包括的位。例如,图12A至图12C所示的写入请求描述符块中的每一个的字节可以包括第零至第七位0至7。另外,写入请求描述符块的第零字节0的第零至第七位0至7可以包括操作码。例如,可以预先设置写入请求的操作码。写入请求描述符块可以包括存储逻辑地址的逻辑地址区域。
图12A所示的写入请求描述符块的第一字节1的第零至第四位0至4以及第二字节2和第三字节3是逻辑地址区域。第一字节1的第五至第七位5至7可以是保留区域。
图12B所示的写入请求描述符块的第二至第五字节2至5是逻辑地址区域。第一字节1的第二位2和第六字节6的第五至第七位5至7可以是保留区域。图12C所示的写入请求描述符块的第二至第九字节2至9是逻辑地址区域。第一字节1的第零位0和第二位2以及第十四字节14的第五至第七位5至7可以是保留区域。
主机102可以将第一逻辑地址LA_1包括在图12A至图12C所示的写入请求描述符块中的每一个的逻辑地址区域中,并且将第一逻辑地址LA_1传送到存储器系统110。另外,根据实施例,主机102可以将第一物理地址PA_1包括在图12A至图12C所示的写入请求描述符块中的每一个的保留区域或逻辑地址区域的一部分中,并且将第一物理地址PA_1传送到存储器系统110。
重新参照图11,在步骤S250A中,主机102确定是否从存储器系统110接收到第一确认ACK1。第一确认ACK1可以包括指示针对在步骤S150中传送到存储器系统110的写入请求WT_REQ的写入操作已经完全执行的消息。另外,第一确认ACK1可以进一步包括指示在步骤S150中传送到存储器系统110的第一物理地址PA_1被存储器系统110无效的消息。
当没有接收到第一确认ACK1时(步骤S250A中为否),主机102可以等待直到接收到第一确认ACK1或者请求存储器系统110传送第一确认ACK1。
当接收到第一确认ACK1时(步骤S250A中为是),在步骤S270中,主机102可以向存储器系统110传送读取请求RD_REQ,以请求读取与在步骤S150中请求写入的第一逻辑地址LA_1对应的写入数据。
在步骤S270中传送到存储器系统110的读取请求RD_REQ是用于主机102访问存储在存储器系统110中的与第一逻辑地址LA_1对应的写入数据的命令。当主机102执行的操作需要存储在存储器系统110中的与第一逻辑地址LA_1对应的写入数据时,主机102可以将读取请求RD_REQ传送到存储器系统110以读取写入数据。
随后,在步骤S290A中,主机102可以从存储器系统110接收响应于读取请求RD_REQ的读取数据RD_DAT和第二确认ACK2。
第二确认ACK2可以包括第二物理地址PA_2或第二物理地址PA_2的映射信息。在步骤S150中,读取数据RD_DAT被存储在存储器系统110中的与第二物理地址PA_2对应的页面中。
因此,主机102可以使映射到包括在主机102的映射数据MAP_H中的第一逻辑地址LA_1的第一物理地址PA_1无效,或者释放第一物理地址PA_1与第一逻辑地址LA_1的关联。
在步骤S310中,主机102可以通过将在步骤S290A中接收的第二物理地址PA_2映射到第一逻辑地址LA_1来更新主机102的映射数据MAP_H。
在下文中,将参照图13描述根据实施例的数据处理系统100执行写入操作的方法。
在步骤S150中,主机102将写入请求WT_REQ、写入数据WT_DAT、第一逻辑地址LA_1和对应于第一逻辑地址LA_1的第一物理地址PA_1传送到存储器系统110。
当存储器系统110从主机102接收到写入请求WT_REQ、写入数据WT_DAT、第一逻辑地址LA_1和对应于第一逻辑地址LA_1的第一物理地址PA_1时,在步骤S170中,存储器系统110选择处于未分配逻辑地址的未分配状态的第二物理地址PA_2。
未分配状态包括未写入数据的状态。例如,当前开放块中待写入数据的位置可以是第二物理地址PA_2。在步骤S190中,存储器系统110可以包括与开放块中包括的编程页面在物理上连续的擦除页面的物理地址,作为第二物理地址PA_2。另外,存储器系统110可以包括空闲块中包括的待写入数据的第一页面的物理地址,作为第二物理地址PA_2。
在步骤S190中,存储器系统110对第二物理地址PA_2执行从主机102输入的写入数据WT_DAT的写入操作。此时,当写入数据WT_DAT的大小大于一个页面的存储容量时,存储器系统110可以对多个页面顺序地执行写入操作。在步骤S190中,存储器系统110映射从主机102接收的第一逻辑地址LA_1和已经执行写入操作的第二物理地址PA_2或多个第二物理地址。根据实施例,根据数据的大小,映射信息或映射表可以具有将逻辑地址联接到物理地址的各种结构。例如,当由单个逻辑地址指示的数据段的大小为512字节并且存储器装置中的单个页面的大小为2KB或4KB时,单个逻辑地址可以与指示单个页面的单个物理地址相关联。
在步骤S210中,存储器系统110使第一物理地址PA_1无效。步骤S210中第一物理地址PA_1的无效可以指示释放映射数据中第一物理地址PA_1与对应于第一物理地址PA_1的逻辑地址的关联,因此可以使存储器装置中存储的对应于第一物理地址PA_1的数据无效。
如上所述,当从主机102与写入请求WT_REQ一起接收到第一逻辑地址LA_1时,根据实施例的存储器系统110在存储器144中存储的L2P控制器映射数据L2P_MAP_C中搜索对应于第一逻辑地址LA_1的物理地址,检查在P2L控制器映射数据P2L_MAP_C中搜索到的与物理地址对应的逻辑地址是否与从主机102接收的第一逻辑地址LA_1一致,然后不使搜索到的物理地址无效。由于根据实施例的存储器系统110直接使与第一逻辑地址LA_1一起从主机102接收的第一物理地址PA_1无效,而无需单独搜索映射数据,因此第一物理地址PA_1的无效操作的速度可以得到提高,并且因此也可以提高写入操作的速度。
另外,在步骤S210中,存储器系统110可以改变以位图、标志、表或列表形式中的一个来管理的无效地址信息INVALID_INF中已经从映射释放的第一物理地址PA_1的状态值,从而使第一物理地址PA_1无效。因此,实施例可以提供提高管理无效数据的效率的效果。
在执行步骤S210之后,存储器系统110可以减少与第一物理地址PA_1对应的存储块的有效页面计数VPC。之后,存储器系统110可以对具有小于预定值的有效页面计数VPC的存储块执行垃圾收集(GC)操作,从而提高后台操作的效率。例如,存储器系统110可以通过对有效页面计数VPC为0的存储块执行擦除操作来产生空闲块,从而提高存储器装置的利用率。
存储器系统110将从主机102接收的第一逻辑地址LA_1映射到已经执行写入操作的一个或多个第二物理地址PA_2。
存储器系统110可以将指示写入操作已经完全执行的消息包括在针对在步骤S150中接收的写入请求WT_REQ的第一确认ACK1中,并且在步骤S250中,将第一确认ACK1上载到主机102。另外,根据本实施例的存储器系统110可以进一步将指示从主机102接收的第一物理地址PA_1已经无效的消息包括在第一确认ACK1中,并将第一确认ACK1上载到主机102。第一确认ACK1可以不包括在步骤S230中对应于第一逻辑地址LA_1的第二物理地址PA_2。
主机102可以从存储器系统110接收第一确认ACK1,然后在步骤S270中,将读取请求RD_REQ和第一逻辑地址LA_1传送到存储器系统110。
当从主机102输入读取请求RD_REQ和第一逻辑地址LA_1时,存储器系统110可以确定对应于第一逻辑地址LA_1的数据是一种主机102经常读取的热数据。在这种情况下,对应于第一逻辑地址LA_1的数据是在步骤S150中从主机102接收并且通过步骤S190的写入操作被存储在存储器系统110中的写入数据WT_DAT。在步骤S290中,存储器系统110可以将对应于第一逻辑地址LA_1的第二物理地址PA_2以及对应于第二物理地址PA_2的页面中存储的数据传送到主机102。
另外,在步骤S290中,存储器系统110可以将对应于第一逻辑地址LA_1和第二物理地址PA_2的L2P控制器映射数据L2P_MAP_C以及存储在存储器装置中并通过第二物理地址PA_2访问的读取数据RD_DAT传送到主机102。
主机102可以将在步骤S290中接收的第二物理地址PA_2映射到第一逻辑地址LA_1,并且更新主机映射数据MAP_H。
如上所述,根据参照图1至图13描述的各个实施例,可以提高存储器系统110和数据处理系统100的操作效率。
根据实施例,由于从外部装置与第一逻辑地址一起接收的第一物理地址被直接无效,而无需单独搜索映射数据,因此可以提高第一物理地址的无效操作的速度,并且从而也可以提高写入操作的速度。
根据实施例,当在以位图、标志、表或列表结构中的至少一个来管理的状态信息中改变对应于第一物理地址的值时,从外部装置接收的第一物理地址可以被无效。因此,可以提高无效数据管理的效率。
根据实施例,可以使从外部装置接收的第一物理地址无效,然后可以减少有效存储元件信息中与第一物理地址对应的存储块的有效页面计数。随后,存储器系统可以对具有小于预定值的有效页面计数的存储块执行垃圾收集(GC)操作,从而提高后台操作的效率。
根据实施例,可以对有效页面计数为“0”的存储块执行擦除操作,然后可以产生空闲块,从而提高存储器装置的利用率。
根据实施例,仅当外部装置请求访问存储器系统中存储的数据(例如,读取请求)时,新对应的物理地址才被传送到外部装置。因此,外部装置不请求访问的数据的L2P控制器映射数据可以不被传送到外部装置,从而减少了由于不必要的映射上载/下载而产生的存储器系统的开销。
虽然已经针对具体实施例描述了本发明,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (19)

1.一种存储器系统,包括:
存储器装置,存储L2P映射数据,所述L2P映射数据包括外部装置的逻辑地址和对应于所述逻辑地址的所述存储器装置的物理地址;以及
控制器,存储所述L2P映射数据的至少一部分和所述L2P映射数据的状态信息,并且控制所述存储器装置的数据输入/输出,
其中当从所述外部装置接收到包括写入数据、第一逻辑地址和第一物理地址的写入请求时,所述控制器对未存储数据并由第二物理地址识别的页面执行写入操作,并且使所述第一物理地址无效,并且
在完全执行所述写入操作之后,所述控制器将不包括所述第二物理地址的第一确认传送到所述外部装置,
其中当在执行所述写入操作之后,从所述外部装置接收到包括所述第一逻辑地址的读取请求时,所述控制器将所述第二物理地址和存储在所述存储器装置的第二物理地址处的读取数据传送到所述外部装置。
2.根据权利要求1所述的存储器系统,其中所述控制器通过改变与所述第一物理地址对应的状态信息的值,使所述第一物理地址无效。
3.根据权利要求2所述的存储器系统,其中所述状态信息包括无效地址信息。
4.根据权利要求1所述的存储器系统,其中所述控制器使所述第一物理地址无效,并且减少与所无效的第一物理地址对应的存储块的有效页面计数。
5.根据权利要求4所述的存储器系统,其中所述控制器对具有小于预定值的所述有效页面计数的存储块执行垃圾收集操作。
6.根据权利要求4所述的存储器系统,其中所述控制器对所述有效页面计数为0的存储块执行擦除操作。
7.根据权利要求1所述的存储器系统,其中在接收到针对所述第一逻辑地址的读取请求之后,所述控制器传送所述第二物理地址。
8.一种控制存储器系统的方法,所述存储器系统包括控制器,所述控制器存储L2P映射数据和所述L2P映射数据的状态信息,所述L2P映射数据包括外部装置的逻辑地址和对应于所述逻辑地址的存储器装置的物理地址,所述方法包括:
从所述外部装置接收包括第一逻辑地址和对应于所述第一逻辑地址的第一物理地址的写入请求;
搜索未映射到逻辑地址的第二物理地址;
对与所搜索到的第二物理地址对应的页面执行针对所述写入请求的写入操作;
使所述第一物理地址无效;并且
将不包括所搜索到的第二物理地址的第一确认传送到所述外部装置,
其中当在执行所述写入操作之后,从所述外部装置接收到包括所述第一逻辑地址的读取请求时,所述控制器将所述第二物理地址传送到所述外部装置。
9.根据权利要求8所述的方法,进一步包括:将存储在存储器装置中的与所搜索到的第二物理地址对应的数据和所搜索到的第二物理地址传送到所述外部装置。
10.根据权利要求8所述的方法,其中使所述第一物理地址无效包括:改变与所述第一物理地址对应的状态信息的值。
11.根据权利要求10所述的方法,其中所述状态信息包括无效地址信息。
12.根据权利要求8所述的方法,进一步包括:在使所述第一物理地址无效之后,减少与所述第一物理地址对应的存储块的有效存储元件计数。
13.根据权利要求12所述的方法,其中在减少所述有效存储元件计数之后,对具有小于预定值的所述有效存储元件计数的存储块执行垃圾收集操作。
14.根据权利要求12所述的方法,其中在减少所述有效存储元件计数之后,对所述有效存储元件计数为0的存储块执行擦除操作。
15.一种数据处理系统,包括:
存储器系统,包括控制器,所述控制器将数据存储在存储器装置中;以及
主机,与所述存储器系统交互工作,
其中所述主机存储在所述存储器系统中使用的映射信息的至少一部分,并且通过在所述映射信息的至少一部分中搜索与第一逻辑地址相关联的第一物理地址,将包括所述第一逻辑地址和所述第一物理地址的写入请求传送到所述存储器系统,
其中当从所述主机与所述写入请求一起传送所述第一物理地址时,所述存储器系统对与未分配逻辑地址的第二物理地址对应的页面执行写入操作,并且使所述第一物理地址无效,并且
当从所述主机接收到包括所述第一逻辑地址的读取请求时,所述存储器系统响应于所述读取请求将所述第二物理地址和存储在所述存储器装置的所述第二物理地址处的数据传送到所述主机。
16.根据权利要求15所述的数据处理系统,其中所述存储器系统通过改变与所述第一物理地址对应的状态信息的值,使所述第一物理地址无效。
17.根据权利要求16所述的数据处理系统,其中所述状态信息包括无效地址信息。
18.根据权利要求15所述的数据处理系统,其中所述读取请求是用于所述主机访问存储在所述存储器系统中的与所述第一逻辑地址对应的数据的请求。
19.一种存储器系统,包括:
存储器装置,用于存储多个映射数据段,每个映射数据段将由外部装置使用的逻辑地址与由所述存储器系统使用的物理地址相关联;以及
控制器,用于从所述存储器装置加载映射数据段,接收从所述外部装置输入的写入请求与写入数据段,对未存储数据的页面执行写入操作,并且基于所述写入请求是否与物理地址一起输入,释放被加载的映射数据段中与所述物理地址相关的映射数据段,
其中当在执行所述写入操作之后,从所述外部装置接收到包括逻辑地址的读取请求时,所述控制器将执行所述写入操作的页面的物理地址传送到所述外部装置。
CN201911285104.0A 2019-02-19 2019-12-13 用于管理存储器系统中的映射数据的方法和设备 Active CN111581121B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0018973 2019-02-19
KR1020190018973A KR20200100956A (ko) 2019-02-19 2019-02-19 메모리 시스템의 맵 데이터 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
CN111581121A CN111581121A (zh) 2020-08-25
CN111581121B true CN111581121B (zh) 2023-04-07

Family

ID=72042110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911285104.0A Active CN111581121B (zh) 2019-02-19 2019-12-13 用于管理存储器系统中的映射数据的方法和设备

Country Status (3)

Country Link
US (1) US11126562B2 (zh)
KR (1) KR20200100956A (zh)
CN (1) CN111581121B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612418B (zh) * 2020-12-25 2024-03-08 航天信息股份有限公司 一种用于大容量NandFlash坏块管理的方法及系统
US11360888B1 (en) * 2021-02-16 2022-06-14 Micron Technology, Inc. Host system notification based on entry miss
CN113227995A (zh) * 2021-03-31 2021-08-06 长江存储科技有限责任公司 用于闪存存储器的文件系统和主机性能增强器
US11972149B2 (en) 2022-07-27 2024-04-30 Western Digital Technologies, Inc. Storage system and method for optimizing host-activated defragmentation and proactive garbage collection processes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058624A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
WO2011047563A1 (zh) * 2009-10-23 2011-04-28 深圳市江波龙电子有限公司 非易失性存储器数据的读写控制方法及系统、存储设备
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
WO2014081100A1 (ko) * 2012-11-22 2014-05-30 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028147B2 (en) * 2002-12-13 2006-04-11 Sun Microsystems, Inc. System and method for efficiently and reliably performing write cache mirroring
KR101717081B1 (ko) 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR20150105323A (ko) 2013-01-08 2015-09-16 바이올린 메모리 인코포레이티드 데이터 스토리지 방법 및 시스템
KR102252419B1 (ko) * 2014-01-09 2021-05-14 한국전자통신연구원 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US9389792B1 (en) * 2015-12-07 2016-07-12 International Business Machines Corporation Reducing read-after-write errors in a non-volatile memory system using an old data copy
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
US10169232B2 (en) * 2016-02-19 2019-01-01 Seagate Technology Llc Associative and atomic write-back caching system and method for storage subsystem
JP6444917B2 (ja) * 2016-03-08 2018-12-26 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
KR20200116704A (ko) * 2019-04-02 2020-10-13 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058624A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
WO2011047563A1 (zh) * 2009-10-23 2011-04-28 深圳市江波龙电子有限公司 非易失性存储器数据的读写控制方法及系统、存储设备
WO2014081100A1 (ko) * 2012-11-22 2014-05-30 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법

Also Published As

Publication number Publication date
KR20200100956A (ko) 2020-08-27
US11126562B2 (en) 2021-09-21
US20200264985A1 (en) 2020-08-20
CN111581121A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
US10817418B2 (en) Apparatus and method for checking valid data in memory system
CN111581121B (zh) 用于管理存储器系统中的映射数据的方法和设备
CN110806984B (zh) 在存储器系统中搜索有效数据的设备和方法
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
US11150822B2 (en) Memory system for determining usage of a buffer based on I/O throughput and operation method thereof
CN113900586A (zh) 存储器系统及其操作方法
US11526438B2 (en) Memory system capable of increasing storage efficiency and operation method thereof
US11681633B2 (en) Apparatus and method for managing meta data in memory system
CN112148632A (zh) 用于改善存储器系统的输入/输出吞吐量的设备和方法
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
CN110806837A (zh) 数据处理系统及其操作方法
CN111831215A (zh) 用于在存储器系统中传输映射信息的装置
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN112286836A (zh) 用于在存储器系统中执行访问操作的方法和设备
CN111506257A (zh) 用于在存储器系统中传输映射信息的装置和方法
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
US11275682B2 (en) Memory system and method for performing command operation by memory system
US11416410B2 (en) Memory system, method of operating the same and data processing system for supporting address translation using host resource
US20210056026A1 (en) Apparatus and method for managing firmware through runtime overlay
CN112286445A (zh) 存储器系统及控制其温度的方法
CN113050881A (zh) 提高存储器系统输入/输出吞吐量的设备和方法
CN111857565A (zh) 存储器系统、数据处理系统及其操作方法
CN113050879A (zh) 管理存储器系统中编程操作时间和写入延迟的设备和方法
CN112015670A (zh) 传送存储器系统中的映射信息的设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant