CN109656837A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN109656837A CN109656837A CN201811151393.0A CN201811151393A CN109656837A CN 109656837 A CN109656837 A CN 109656837A CN 201811151393 A CN201811151393 A CN 201811151393A CN 109656837 A CN109656837 A CN 109656837A
- Authority
- CN
- China
- Prior art keywords
- map information
- segment
- stored
- logical address
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种存储器系统,包括:非易失性存储器装置,包括多个存储块;以及控制器,包括命令队列,该命令队列存储来自主机的多个命令,其中控制器管理用于将命令的逻辑地址映射到非易失性存储器装置的物理地址的映射信息,将部分映射信息存储到内部高速缓冲存储器中,将整个映射信息存储到存储块中,在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段,并且基于存储在命令队列中的命令的逻辑地址移除牺牲映射信息的片段。
Description
相关申请的交叉引用
本申请要求于2017年10月11日提交的申请号为10-2017-0129847的韩国专利申请的优先权,该韩国专利申请的公开通过引用整体并入本文。
技术领域
本发明的各个示例性实施例总体涉及一种存储器系统。更特别地,示例性实施例涉及一种能够高效地管理高速缓冲存储器中的映射信息的存储器系统及其操作方法。
背景技术
计算环境的范例朝向允许人们或用户随时随地访问它们的计算系统或通常提供的计算系统的普适计算转变。在普适计算的这个时代,对诸如移动电话、数码相机和膝上型计算机的便携式电子装置的需求正在快速增长。这些电子装置通常包括使用存储器装置的存储器系统作为数据存储装置。数据存储装置可以用作便携式电子装置的主存储器单元或辅助存储器单元。
与硬盘装置相比,由于数据存储装置正在使用不具有机械驱动单元(例如,具有读取/写入头的机械臂)的存储器装置,因此数据存储装置可以具有优异的稳定性和耐久性。并且,数据存储装置可以具有比硬盘装置更快的数据访问速率和更低的功耗。具有这种优点的数据存储装置的非限制性示例包括通用串行总线(USB)存储器装置、各种接口的存储卡、固态硬盘(SSD)等。
发明内容
本发明的公开的各个实施例涉及一种能够比迄今为止的存储器系统更高效地管理高速缓冲存储器中的映射信息的改进的存储器系统。
根据本发明的实施例,一种存储器系统可以包括:非易失性存储器装置,包括多个存储块;以及控制器,包括命令队列,该命令队列适于存储来自主机的多个命令,其中控制器适于管理用于将命令的逻辑地址映射到非易失性存储器装置的物理地址的映射信息,将部分映射信息存储到内部高速缓冲存储器中,将整个映射信息存储到存储块中,在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲(victim)映射信息的片段(piece),并且基于存储在命令队列中的命令的逻辑地址移除牺牲映射信息的片段。
当需要在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段并且移除牺牲映射信息的片段时,控制器可以根据预定的选择算法顺序地选择存储在内部高速缓冲存储器中的部分映射信息作为选择的映射信息的片段,确定该选择的映射信息的片段的逻辑地址是否对应于存储在命令队列中的命令的逻辑地址中的任何一个,并且根据确定的结果来选择该选择的映射信息的片段作为牺牲映射信息的片段。
当该选择的映射信息的片段的逻辑地址被确定为对应于存储在命令队列中的命令的逻辑地址中的任何一个时,控制器可以不选择该选择的映射信息的片段作为牺牲映射信息的片段。
当该选择的映射信息的片段的逻辑地址被确定为不对应于存储在命令队列中的命令的逻辑地址中的任何一个时,控制器可以选择该选择的映射信息的片段作为牺牲映射信息的片段。
控制器可以生成逻辑地址列表,在该逻辑地址列表中按顺序排列存储在命令队列中的命令的逻辑地址的值,并且通过二分搜索方案或线性搜索方案确定该选择的映射信息的片段的逻辑地址是否对应于逻辑地址列表中的值中的任何一个。
当需要在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段并且移除牺牲映射信息的片段时,控制器可以根据预定的选择算法在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段,确定牺牲映射信息的片段的逻辑地址是否对应于存储在命令队列中的命令的逻辑地址中的任何一个,并且将牺牲映射信息的片段的物理地址分配给存储在命令队列中的命令。
当牺牲映射信息的片段的逻辑地址被确定为对应于存储在命令队列中的命令的逻辑地址中的任何一个时,控制器可以将牺牲映射信息的片段的物理地址分配给具有与牺牲映射信息的片段的逻辑地址对应的逻辑地址的命令。
控制器可以生成逻辑地址列表,在该逻辑地址列表中按顺序排列存储在命令队列中的命令的逻辑地址的值,并且通过二分搜索方案或线性搜索方案确定牺牲映射信息的片段的逻辑地址是否对应于逻辑地址列表中的值中的任何一个。
当控制器在存储在内部高速缓冲存储器中的部分映射信息中搜索命令队列的输出命令的逻辑地址以在非易失性存储器装置中使用输出命令,但未能从存储在内部高速缓冲存储器中的部分映射信息找到输出命令的逻辑地址时,控制器可以控制非易失性存储器装置将存储在存储块中的整个映射信息中对应于输出命令的映射信息的片段加载并存储到内部高速缓冲存储器中,并且在存储在内部高速缓冲存储器中的部分映射信息中选择并移除牺牲映射信息的片段,以保持存储在内部高速缓冲存储器中的部分映射信息的数量等于或低于预定数量。
当控制器在存储在内部高速缓冲存储器中的部分映射信息中搜索命令队列的输出命令的逻辑地址以在非易失性存储器装置中使用输出命令,但未能从存储在内部高速缓冲存储器中的部分映射信息中找到输出命令的逻辑地址时,控制器可以在存储在内部高速缓冲存储器中的部分映射信息中选择并移除牺牲映射信息的片段,并且控制非易失性存储器装置将存储在存储块中的整个映射信息中对应于输出命令的映射信息的片段加载并存储到内部高速缓冲存储器中。
根据本发明的实施例,一种存储器系统的操作方法,该存储器系统包括非易失性存储器装置和命令队列,该非易失性存储器装置包括多个存储块,该命令队列适于存储从主机请求的命令,该方法可以包括:管理用于将逻辑地址映射到物理地址的映射信息的多个片段,并且将部分映射信息存储到内部高速缓冲存储器中并将整个映射信息存储到存储块中;并且在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段以基于存储在命令队列中的命令的逻辑地址移除牺牲映射信息的片段。
选择牺牲映射信息的片段可以包括:第一选择步骤,当需要在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段并且移除牺牲映射信息的片段时,根据预定的选择算法顺序地选择存储在内部高速缓冲存储器中的部分映射信息作为选择的映射信息的片段;以及第二选择步骤,确定该选择的映射信息的片段的逻辑地址是否对应于存储在命令队列中的命令的逻辑地址中的任何一个,并且根据确定的结果来选择该选择的映射信息的片段作为牺牲映射信息的片段。
当该选择的映射信息的片段的逻辑地址被确定为对应于存储在命令队列中的命令的逻辑地址中的任何一个时,第二选择步骤可以不选择该选择的映射信息的片段作为牺牲映射信息的片段。
当该选择的映射信息的片段的逻辑地址被确定为不对应于存储在命令队列中的命令的逻辑地址中的任何一个时,第二选择步骤可以选择该选择的映射信息的片段作为牺牲映射信息的片段。
第二选择步骤可以包括:生成逻辑地址列表,在该逻辑地址列表中按顺序排列存储在命令队列中的命令的逻辑地址的值;并且通过二分搜索方案或线性搜索方案确定该选择的映射信息的片段的逻辑地址是否对应于逻辑地址列表中的值中的任何一个。
选择牺牲映射信息的片段可以包括:第三选择步骤,当需要在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段并且移除牺牲映射信息的片段时,根据预定的选择算法在存储在内部高速缓冲存储器中的部分映射信息中选择牺牲映射信息的片段;以及第四步骤,确定牺牲映射信息的片段的逻辑地址是否对应于存储在命令队列中的命令的逻辑地址中的任何一个,并且将牺牲映射信息的片段的物理地址分配给存储在命令队列中的命令。
当牺牲映射信息的片段的逻辑地址被确定为对应于存储在命令队列中的命令的逻辑地址中的任何一个时,第四步骤可以将牺牲映射信息的片段的物理地址分配给具有与牺牲映射信息的片段的逻辑地址对应的逻辑地址的命令。
第四步骤可以包括:生成逻辑地址列表,在该逻辑地址列表中按顺序排列存储在命令队列中的命令的逻辑地址的值;并且通过二分搜索方案或线性搜索方案确定牺牲映射信息的片段的逻辑地址是否对应于逻辑地址列表中的值中的任何一个。
操作方法可以进一步包括:当控制器在存储在内部高速缓冲存储器中的部分映射信息中搜索命令队列的输出命令的逻辑地址以在非易失性存储器装置中使用输出命令,但未能从存储在内部高速缓冲存储器中的部分映射信息找到输出命令的逻辑地址时,控制非易失性存储器装置将存储在存储块中的整个映射信息中对应于输出命令的映射信息的片段加载并存储到内部高速缓冲存储器中;并且在将部分映射信息存储到内部高速缓冲存储器之后,移除通过控制选择的操作选择的牺牲映射信息的片段,以保持存储在内部高速缓冲存储器中的部分映射信息的数量等于或低于预定数量。
操作方法可以进一步包括:当控制器在存储在内部高速缓冲存储器中的部分映射信息中搜索命令队列的输出命令的逻辑地址以在非易失性存储器装置中使用输出命令,但未能从存储在内部高速缓冲存储器中的部分映射信息找到输出命令的逻辑地址时,移除通过控制选择的操作选择的牺牲映射信息的片段;并且在移除牺牲映射信息的片段之后,控制非易失性存储器装置将存储在存储块中的整个映射信息中对应于输出命令的映射信息的片段加载并存储到内部高速缓冲存储器中。
根据本发明的实施例,一种存储器系统可以包括:非易失性存储器装置,包括多个存储块;以及控制器,包括命令队列和高速缓冲存储器,该命令队列适于顺序地执行输入的命令,该高速缓冲存储器存储用于执行输入的命令的映射数据,其中,当需要清空高速缓冲存储器的一部分时,控制器基于存储在命令队列中的命令的逻辑地址确定映射数据的一部分是否被保存在高速缓冲存储器中。
附图说明
此处,参照附图进行描述,其中在若干视图中相同的附图标记指代相同的部分,并且其中:
图1是根据本公开的实施例的包括可操作地联接到主机的存储器系统的数据处理系统的简化框图;
图2是示出根据本公开的实施例的图1中所示的存储器系统的存储器装置的示例性配置的示意图;
图3是示出根据本公开的实施例的图2中所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图;
图4是示出根据本公开的实施例的图2中所示的存储器装置的示例性三维结构的示意图;
图5是示出根据本公开的实施例的存储器系统的数据处理操作的示图;
图6是示出根据本公开的实施例的存储器系统的示例性操作的示意图;
图7至图9A是示出根据本公开的实施例的在存储器系统的高速缓冲存储器中管理映射信息的操作的示意图;
图9B是根据本公开的实施例的存储器系统的高速缓冲存储器中管理映射信息操作的流程图;以及
图10至图18是示意性示出根据本发明的各个实施例的数据处理系统的应用示例的示图。
具体实施方式
以下参照附图更详细地描述本发明的公开的各种示例。本公开可以以不同的其它实施例、形式和变化实施,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例使得本发明将是彻底且完整的,并且将向本发明所属领域的技术人员完全传达本公开。在整个公开中,相同的附图标记在整个本公开的各个附图和示例中表示相同的部分。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下所述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。当元件被称为连接或联接到另一元件时,应当理解,前者可以直接连接或直接联接到后者,或者经由它们之间的中间元件电连接或电联接到后者。
将进一步理解的是,当元件被称为“连接至”或“联接到”另一元件时,它可直接在其它元件上、连接至或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所所述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
进一步注意的是,“通过示例而非限制的方式”、“例如”、“比如”等表达在本文中可互换使用。
图1是示出根据本发明的公开的实施例的数据处理系统100的简化框图。
参照图1,数据处理系统100可包括电联接至存储器系统110的主机102。
主机102可以包括例如诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式电脑、游戏机、TV和投影仪等的电子装置。
通过示例而非限制的方式,存储器系统110可以响应于来自主机102的请求而操作或执行具体功能或操作。特别地,存储器系统110可以存储待由主机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)和闪速存储器。
存储器系统110可以包括能够存储待由主机102访问的数据的存储器装置150,以及可以控制数据在存储器装置150中的存储的控制器130。
根据实施例,控制器130和存储器装置150可被集成到单个半导体装置中,单个半导体装置可被包括在如上所例示的各种类型的存储器系统中。通过示例而非限制的方式,控制器130和存储器装置150可以被安装在单个电路板上,或者它们可以制造在单个芯片中。
通过示例而非限制的方式,存储器系统110可以被配置为以下中的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3D电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种部件之一。
即使在没有供给电力时,存储器装置150也可以保持存储在其中的数据。例如,存储器装置150可以是非易失性存储器装置。
存储器装置150可以通过写入操作存储从主机102提供的数据。存储器装置150可以通过读取操作将存储在其中的数据输出到主机102。存储器装置150可以包括多个存储块152至156。存储块152至156中的每一个可以包括多个页面。多个页面中的每一个可以包括经由单个字线(WL)联接到彼此的多个存储器单元。在另一实施例中,每个页面可以包括联接到至少两个字线(WL)的多个存储器单元。
控制器130可以控制存储器装置150的诸如读取操作、写入操作、编程操作和擦除操作的一个或多个操作。通过示例而非限制的方式,存储器系统110的控制器130可以响应于从主机102接收的请求来控制存储器装置150执行操作。控制器130可以将从存储器装置150读取的数据提供给主机102,和/或可以将从主机102输入的数据存储到存储器装置150中。
控制器130可包括主机接口(I/F)单元132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、诸如存储器接口(I/F)单元142的存储器装置控制器以及存储器144。控制器130的部件中的每一个可以经由内部总线彼此电联接或接合。内部总线可以包括一个或多个信号线。
主机接口单元132可处理从主机102提供的命令和/或数据,并可根据诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)等。
ECC单元138可以检测并校正在读取操作期间从存储器装置150读取的数据中的错误。当错误位的数量大于可校正错误位的阈值数量时,ECC单元138可不校正错误位。如果不校正错误位,则ECC单元138可以输出指示校正错误位失败的错误校正失败信号。
ECC单元138可基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。ECC单元138可以包括用于基于上述代码中的至少一种执行错误校正操作的电路、模块、系统或装置中的全部或一些。
PMU 140可以管理控制器130的电力供给和使用。一个或多个电力线(未示出)可以在PMU 140的管理下向控制器的各种部件供给电力。
存储器接口142可以用作用于处理在控制器130和存储器装置150之间传递的命令和数据的接口,以允许控制器130响应于从主机102传送的请求来控制存储器装置150。存储器接口142可以生成用于存储器装置150的控制信号并且可以在处理器134的控制下处理输入到存储器装置150中或从存储器装置150输出的数据。根据存储器装置150的类型,存储器接口142可以是任何合适的接口。例如,在存储器装置150是诸如NAND闪速存储器的闪速存储器的实施例中,存储器接口可以是NAND闪速存储器接口。这种存储器接口在本领域中是公知的,因此,本文不再详细描述它们。
存储器144(也被称为控制器存储器)可以用作存储器系统110和控制器130的工作存储器。存储器144可以存储用于操作或驱动存储器系统110和控制器130的临时数据或交易数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传送到主机102中。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以被用于存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可以由易失性存储器来实施。存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。虽然图1例示存储器144被设置在控制器130内,但是本发明不限于此。例如,存储器144可以位于控制器130的内部或外部。比如,存储器144可以由具有传递在存储器144和控制器130之间传递数据和/或信号的存储器接口的外部易失性存储器实施。
处理器134可以控制存储器系统110的一个或多个操作。处理器134可以使用或执行固件来控制存储器系统110的一个或多个操作。固件可以是闪存转换层(FTL)。
固件可以执行作为主机102和存储器装置150之间的接口的操作。主机102可以经由应用层将针对写入操作和读取操作的请求传输到存储器装置150。主机的请求可以通过固件(例如,FTL)来识别和转换以用于存储器装置150中的物理层的操作。
固件(例如,FTL)可以管理地址映射、垃圾收集、磨损均衡等的操作。固件可以存储映射数据。因此,控制器130可以基于映射数据将从主机102与命令和数据一起输入的逻辑地址映射到存储器装置150的物理地址。由于该地址映射/转换操作,存储器装置150可以像普通存储器装置一样执行诸如读取操作或写入操作的操作,而不显示其自身的不同的或独特的特性。并且,通过基于映射数据的地址映射操作,当控制器130更新具体页面的数据时,由于闪速存储器装置的特性,控制器130可以将新数据编程在另一空页面上并且可以使具体页面的旧数据无效。进一步地,控制器130可以将新数据的映射数据存储到固件中。
处理器134可以利用微处理器和/或中央处理单元(CPU)来实施。存储器系统110可以包括一个或多个处理器134。
管理单元(未示出)可以被包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以发现对于进一步使用处于不良状况的包括在存储器装置150中的坏存储块。管理单元可以对坏存储块执行坏块管理。当存储器装置150是例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块中的数据可以被编程到新存储块中。坏块可能严重加剧具有3D堆叠结构的存储器装置150的利用效率以及存储器系统110的可靠性。因此,通常需要可靠的坏块管理。
图2是示出存储器装置150的示例性配置的简化示意图。
参照图2,存储器装置150可以包括多个存储块BLOCK0至BLOCKN-1,并且块BLOCK0至BLOCKN-1中的每一个可以包括多个页面,例如,2M个页面。存储块的数量和每个块中的页面的数量可以根据电路设计而变化。根据可以在每个存储器单元中存储或表达的位的数量,存储块可以是单层单元(SLC)存储块和/或多层单元(MLC)存储块。SLC存储块可以包括由每一个能够存储1位数据的存储器单元实施的多个页面。MLC存储块可以包括由每一个能够存储例如两位或更多位数据的多位数据的存储器单元实施的多个页面。包括由每个能够存储3位数据的存储器单元实施的多个页面的MLC存储块也可以被称为三层单元(TLC)存储块。
图3是示出存储器装置150中的存储块330的简化示例性电路图。
参照图3,存储块330可以对应于多个存储块152至156中的任何一个。
参照图3,存储器装置150的存储块330可以包括分别电联接到位线BL0至BLm-1的多个单元串340。每个列的单元串340可以包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。多个存储器单元或多个存储器单元晶体管MC0至MCn-1可以串联地电联接在选择晶体管DST和SST之间。各个存储器单元MC0至MCn-1可以由各自存储1位信息的单层单元(SLC)或由各自存储多位信息的多层单元(MLC)配置。串340可以分别电联接到对应的位线BL0到BLm-1。作为参考,在图3中,“DSL”表示漏极选择线,“SSL”表示源极选择线,并且“CSL”表示共源线。
虽然图3仅示出存储块330由NAND闪速存储器单元构成作为示例,但是应当注意的是,根据实施例的存储器装置150的存储块330不限于NAND闪速存储器。存储块330可以由NOR闪速存储器、组合至少两种存储器单元的混合闪速存储器或控制器内置在存储器芯片中的1-NAND闪速存储器实现。半导体装置的操作特性可以不仅与其中电荷存储层通过导电浮栅配置的闪速存储器装置有关而且与其中电荷存储层通过介电层配置的电荷撷取闪存(CTF)有关。
通过示例而非限制的方式,存储器装置150的电源电路310可以生成可以根据操作模式被选择性地供给到字线中的每一个的不同水平的字线电压,例如,编程电压、读取电压和通过电压,以及供给到块(bulk)的电压。块可以包括形成有存储器单元的阱区。电源电路310可以在控制电路(未示出)的控制下执行电压生成操作。电源电路310可以生成多个可变读取电压以产生多个读取数据、在控制电路的控制下选择存储块或存储器单元阵列的扇区中的一个、选择被选择的存储块的字线中的一个并且将字线电压提供至被选择的字线和未选择的字线。
存储器装置150的读取/写入电路320可以由控制电路控制,并且可以根据操作模式用作读出放大器或写入驱动器。在验证操作或正常读取操作期间,读取/写入电路320可以用作用于从存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待存储到存储器单元阵列中的数据并且将根据接收的数据确定的电压或电流供给到位线中。读取/写入电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
图4是示出存储器装置150的3D结构的示意图。
存储器150可由2D或3D存储器装置来实施。具体地,如图4所示,存储器装置150可被实施为具有3D堆叠结构的非易失性存储器装置。在实施例中,存储器装置150可以具有3D结构,并且存储器装置150可包括多个存储块BLK0至BLKN-1,其每一个具有3D结构(或垂直结构)。
图5是示出根据本公开的实施例的存储器系统的示例性数据处理操作的简化示图。
参照图5,控制器130可以执行对应于从主机102输入的命令的命令操作。通过示例而非限制的方式,控制器130可以执行对应于从主机102接收的编程命令的编程操作。例如,根据响应于从主机102接收的编程命令的编程操作,控制器130可以将对应于编程命令的用户数据编程并存储在包括在存储器装置150的一个或多个存储块552、554、562、564、572、574、582、584中的多个页面内。可以存储用户数据的存储块和存储器页面将对应于主机与命令和用户数据一起提供的地址。主机提供的地址可以是逻辑地址。
更具体地,控制器130可以生成并更新用户数据的元数据,并且然后将生成并更新的元数据编程并存储在存储器装置150的一个或多个存储块552、554、562、564、572、574、582、584的页面中。元数据可以包括存储在一个或多个存储块552、554、562、564、572、574、582和584的页面中的用户数据的逻辑到物理(L2P)信息和物理到逻辑(P2L)信息两者。另外,元数据可以包括关于对应于从主机102接收的命令的命令数据的信息、关于对应于命令的命令操作的信息、关于执行命令操作的存储器装置150的存储块的信息以及关于对应于命令操作的映射数据的信息。换言之,元数据可以包括所有信息和除了对应于从主机102接收的命令的用户数据之外的数据。
例如,控制器130可以在包括在控制器130的存储器144中的第一缓冲器510中缓存并缓冲对应于从主机102接收的编程命令的用户数据。更具体地,控制器130可以将用户数据的数据段512存储在第一缓冲器510中。第一缓冲器510是数据缓冲器/高速缓存。随后,控制器130可以根据主机提供的地址将存储在第一缓冲器510中的数据段512编程并存储在包括在存储器装置150的一个或多个存储块552、554、562、564、572、574、582、584中的页面中。
由于用户数据的数据段512被编程并存储在包括在存储器装置150的一个或多个存储块552、554、562、564、572、574、582、584中的页面中,因此控制器130可以生成作为元数据的L2P段522和P2L段524,并且将生成的L2P段522和生成的P2L段524存储在包括在控制器130的存储器144中的第二缓冲器520中。第二缓冲器可以被称为元数据缓冲器520。L2P段522和P2L段524可以以列表形式存储在包括在控制器130的存储器144中的第二缓冲器520中。随后,控制器130可以通过映射清除操作或检查点操作将存储在第二缓冲器520中的L2P段522和P2L段524编程并存储在包括在存储器装置150的存储块552、554、562、564、572、574、582、584中的页面中。
在又一示例中,控制器130可以执行对应于从主机102接收的读取命令的读取操作。对于读取操作,控制器130可以将L2P段522和/或P2L段524从存储器装置150加载到第二缓冲器520上,并且检查加载的L2P段522和/或加载的P2L段524中的哪一个与对应于读取命令的用户数据相关。随后,控制器130可以从通过前述检查确定的存储位置读取用户数据的数据段512。例如,控制器130可以基于前述映射检查操作从存储块552、554、562、564、572、574、582和584中的特定存储块的特定页面读取用户数据的数据段512,其中在前述映射检查操作中,控制器确定了对应于读取命令的逻辑地址的物理位置。然后,控制器130可以将对应于读取命令的读取用户数据的数据段512存储在第一缓冲器510中,即,存储在用户数据缓冲器510中。随后,控制器130可以经由主机接口132将存储在第一缓冲器510中的数据段512传递到主机102。
图6是示出根据本公开的实施例的存储器系统的操作的简化示意图。
图7至图9A是示出根据本公开的实施例的存储器系统的高速缓冲存储器中管理映射信息操作的示图。图9B是示出根据本公开的实施例的存储器系统的高速缓冲存储器中管理映射信息操作的流程图。
参照图6,存储器系统110可以包括如图1所示的非易失性存储器装置150。
如参照图1所述的,非易失性存储器装置150可以包括多个存储块BLOCK<1:3,...>。
图6示出包括单个非易失性存储器装置150的存储器系统110,这仅是示例。存储器系统110可以包括多个非易失性存储器装置。
虽然参照图1所述的主机接口132、处理器134、ECC单元138、电源管理单元140、NAND闪存控制器142和存储器144未被包括在图5中的控制器130中,但这只是为了便于描述。根据实施例,参照图1所述的主机接口132、处理器134、ECC单元138、电源管理单元140、NAND闪存控制器142和存储器144可以被包括在图5中的控制器130中。
根据本公开的实施例,存储器系统110可以包括非易失性存储器装置150和控制器130。非易失性存储器装置150可以包括多个存储块BLOCK<1:3,...>。控制器130可以管理用于将来自主机102的命令CMD的逻辑地址LA映射到物理地址PA的映射信息ALL_MAP的多个片段。整个映射信息ALL_MAP可以是包括所有元数据的映射段(即,参照图5描述的L2P段522和P2L段524)。为了便于描述,在图6中示意性地示出整个映射信息ALL_MAP。
控制器130可以进一步包括命令队列620,该命令队列620被配置成存储主机102请求的预定数量的命令CMD<1:8>。对应于主机102的命令请求的逻辑地址LA<1:8>可以被分别分配给存储在命令队列620中的预定数量的命令CMD<1:8>。例示的是,存储在命令队列620中的命令CMD<1:8>的预定数量是八(8),这仅是示例。命令队列620可以通过设计来存储比八(8)个命令CMD<1:8>更多或更少的命令。
控制器130可以将整个映射信息ALL_MAP中的部分映射信息SERVICE_MAP存储到内部高速缓冲存储器600中,并且可以将整个映射信息ALL_MAP作为整体存储到多个存储块BLOCK<1:3,...>中。假设内部高速缓冲存储器600的存储空间未大到足以将整个映射信息ALL_MAP作为整体存储但是大到足以存储部分映射信息SERVICE_MAP。例如,如图6所示,当假设整个映射信息ALL_MAP是N个映射信息LA<1:N>&PA<1:N>时,内部高速缓冲存储器600可以存储作为部分映射信息SERVICE_MAP的K个映射信息LA<1:K>&PA<1:K>,其中K小于N。例示的是,整个映射信息ALL_MAP被存储在非易失性存储器装置150的第一存储块BLOCK<1>中,这仅是示例。例如,在另一实施例中,映射信息ALL_MAP的多个片段可以被分散并存储到多个存储块中。
因此,当控制器130未能在内部高速缓冲存储器600中检测到对应于存储在命令队列620中的预定数量的命令CMD<1:8>的映射信息LA<1:8>&PA<1:8>的片段时,控制器130可以从存储在非易失性存储器装置150的多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP加载检测失败的、对应于存储在命令队列620中的预定数量的命令CMD<1:8>的映射信息LA<1:8>&PA<1:8>。控制器130可以将加载的映射信息LA<1:8>&PA<1:8>存储到内部高速缓冲存储器600中。控制器130可以响应于存储在命令队列620中的预定数量的命令CMD<1:8>,使用对应于存储在命令队列620中的预定数量的命令CMD<1:8>的映射信息LA<1:8>&PA<1:8>的片段,控制非易失性存储器装置150执行操作。映射信息LA<1:8>&PA<1:8>的片段从存储在非易失性存储器装置150的多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP加载以被存储在内部高速缓冲存储器600中。
此处,由于内部高速缓冲存储器600的存储空间不足以将整个映射信息ALL_MAP作为整体存储,因此控制器130可以根据最近最少使用(LRU)算法来更新待被存储到内部高速缓冲存储器600中的部分映射信息SERVICE_MAP。
存在两(2)个操作可以使控制器130能够更新部分映射信息SERVICE_MAP的列表。
根据第一操作,控制器130可以尝试从内部高速缓冲存储器600检测对应于存储在命令队列620中的预定数量的命令CMD<1:8>的映射信息LA<1:8>&PA<1:8>的片段,以响应于存储在命令队列620中的预定数量的命令CMD<1:8>来控制非易失性存储器装置150执行操作。但是,当控制器130未能检测到映射信息LA<1:8>&PA<1:8>的片段时,控制器130可以控制非易失性存储器装置150从存储在非易失性存储器装置150的多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP加载检测失败的映射信息LA<1:8>&PA<1:8>,以将加载的映射信息LA<1:8>&PA<1:8>存储到内部高速缓冲存储器600中。然后,为了将内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的数量保持在预定数量以下,控制器130可以在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息(未示出)的片段并且移除选择的牺牲映射信息。
根据第二操作,控制器130可以尝试从内部高速缓冲存储器600检测对应于存储在命令队列620中的预定数量的命令CMD<1:8>的映射信息LA<1:8>&PA<1:8>的片段,以响应于存储在命令队列620中的预定数量的命令CMD<1:8>来控制非易失性存储器装置150执行操作。当控制器130未能从内部高速缓冲存储器600检测到映射信息LA<1:8>&PA<1:8>的片段时,控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息(未示出)的片段并且移除选择的牺牲映射信息。然后,控制器130可以控制非易失性存储器装置150从存储在非易失性存储器装置150的多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP加载检测失败的映射信息LA<1:8>&PA<1:8>,以将加载的对应于存储在命令队列620中的预定数量的命令CMD<1:8>的映射信息LA<1:8>&PA<1:8>存储到内部高速缓冲存储器600中。
控制器130可以根据LRU算法选择牺牲映射信息,这意味着控制器130可以在部分映射信息SERVICE_MAP中选择最近最少使用的映射信息作为牺牲映射信息。
如上所述,控制器130可以更新牺牲映射信息,即,可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择并移除牺牲映射信息。如图7所示,控制器130可以根据LRU算法选择牺牲映射信息。
图7示出存储在命令队列620中的预定数量的命令CMD<1:8>,对应于预定数量的命令CMD<1:8>的逻辑地址LA<1:8>,以及应当针对逻辑地址LA<1:8>从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测并且根据从命令队列620输出的序列以时间点t-7、t-6、t-5、t-4、t-3、t-2、t-1、t排列的映射信息。
详细地,对应于作为命令队列620的第一输出的第一命令CMD<1>的第一逻辑地址LA<1>可以具有值‘0x20001’并且可以在时间点t-7输出。应当针对第一逻辑地址LA<1>的值‘0x20001’从内部高速缓冲存储器600检测的映射信息具有值‘0x200’。
并且,对应于作为命令队列620的第二输出的第二命令CMD<2>的第二逻辑地址LA<2>可以具有值‘0x31001’并且可以在时间点t-6输出。应当针对第二逻辑地址LA<2>的值‘0x31001’从内部高速缓冲存储器600检测的映射信息具有值‘0x310’。
并且,对应于作为命令队列620的第三输出的第三命令CMD<3>的第三逻辑地址LA<3>可以具有值‘0x40000’并且可以在时间点t-5输出。应当针对第三逻辑地址LA<3>的值‘0x40000’从内部高速缓冲存储器600检测的映射信息具有值‘0x400’。
并且,对应于作为命令队列620的第四输出的第四命令CMD<4>的第四逻辑地址LA<4>可以具有值‘0x46000’并且可以在时间点t-4输出。应当针对第四逻辑地址LA<4>的值‘0x46000’从内部高速缓冲存储器600检测的映射信息具有值‘0x460’。
并且,对应于作为命令队列620的第五输出的第五命令CMD<5>的第五逻辑地址LA<5>可以具有值‘0x46110’并且可以在时间点t-3输出。应当针对第五逻辑地址LA<5>的值‘0x46110’从内部高速缓冲存储器600检测的映射信息具有值‘0x461’。
并且,对应于作为命令队列620的第六输出的第六命令CMD<6>的第六逻辑地址LA<6>可以具有值‘0x31000’并且可以在时间点t-2输出。应当针对第六逻辑地址LA<6>的值‘0x31000’从内部高速缓冲存储器600检测的映射信息具有值‘0x310’。
并且,对应于作为命令队列620的第七输出的第七命令CMD<7>的第七逻辑地址LA<7>可以具有值‘0x46200’并且可以在时间点t-1输出。应当针对第七逻辑地址LA<7>的值‘0x46200’从内部高速缓冲存储器600检测的映射信息具有值‘0x462’。
并且,对应于作为命令队列620的第八输出的第八命令CMD<8>的第八逻辑地址LA<8>可以具有值‘0x20000’并且可以在时间点t输出。应当针对第八逻辑地址LA<8>的值‘0x20000’从内部高速缓冲存储器600检测的映射信息具有值‘0x200’。
在上述示例中,应当针对逻辑地址LA<1:8>从内部高速缓冲存储器600检测的映射信息的片段将逻辑地址LA<1:8>的值除以值‘0x100’的商作为它们各自的值。逻辑地址LA<1:8>的值与应当针对逻辑地址LA<1:8>从内部高速缓冲存储器600检测的映射信息的片段之间的这种关系仅是示例并且可以以各种方式改变。然而,由于分别存储在多个存储块BLOCK<1:3,...>和内部高速缓冲存储器600中的整个映射信息ALL_MAP和部分映射信息SERVICE_MAP以段为单位来管理,因此逻辑地址的多个片段可以对应于应当针对逻辑地址的多个片段从内部高速缓冲存储器600检测的映射信息的单个片段。例如,应当针对第一逻辑地址LA<1>的值‘0x20001’从内部高速缓冲存储器600检测的映射信息的片段在时间点t-7具有值‘0x200’。应当针对第八逻辑地址LA<8>的值‘0x20000’从内部高速缓冲存储器600检测的映射信息的片段在时间点t-1具有值‘0x200’。以类似的方式,应当针对第二逻辑地址LA<2>的值‘0x31001’从内部高速缓冲存储器600检测的映射信息的片段在时间点t-6具有值‘0x310’。应当针对第六逻辑地址LA<6>的值‘0x31000’从内部高速缓冲存储器600检测的映射信息的片段在时间点t-2具有值‘0x310’。对应于应当针对逻辑地址的多个片段从内部高速缓冲存储器600检测的映射信息的单个片段的逻辑地址的片段的数量可以根据系统配置或设计而变化。
例示的是,存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的数量是五(5),这仅是示例。内部高速缓冲存储器600可以存储比五(5)个部分映射信息SERVICE_MAP更多或更少的部分映射信息SERVICE_MAP。
详细地,可以假设内部高速缓冲存储器600在时间点t-7之前未存储任何映射信息。
在时间点t-7,应当针对对应于从命令队列620输出的第一命令CMD<1>的第一逻辑地址LA<1>的值‘0x20001’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x200’。此时,如以上所假设的,内部高速缓冲存储器600未存储任何映射信息。因此,控制器130可以控制多个存储块BLOCK<1:3,...>从存储在多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP检测具有值“0x200”的映射信息的片段。控制器130可以将检测到的具有值‘0x200’的映射信息存储到内部高速缓冲存储器600中。
在时间点t-6,应当针对对应于从命令队列620输出的第二命令CMD<2>的第二逻辑地址LA<2>的值‘0x31001’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x310’。此时,只有具有值‘0x200’的映射信息的单个片段被存储在内部高速缓冲存储器600中,并且内部高速缓冲存储器600的存储空间大到足以存储映射信息的5个片段。因此,控制器130可以控制多个存储块BLOCK<1:3,...>从存储在多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP检测具有值“0x310”的映射信息的片段。控制器130可以将检测到的具有值‘0x310’的映射信息存储到内部高速缓冲存储器600中。
在时间点t-5,应当针对对应于从命令队列620输出的第三命令CMD<3>的第三逻辑地址LA<3>的值‘0x40000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x400’。此时,只有具有值‘0x200’和‘0x310’的映射信息的两个片段被存储在内部高速缓冲存储器600中,并且内部高速缓冲存储器600的存储空间足以存储映射信息的5个片段。因此,控制器130可以控制多个存储块BLOCK<1:3,...>从存储在多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP检测具有值“0x400”的映射信息的片段。控制器130可以将检测到的具有值‘0x400’的映射信息存储到内部高速缓冲存储器600中。
在时间点t-4,应当针对对应于从命令队列620输出的第四命令CMD<4>的第四逻辑地址LA<4>的值‘0x46000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x460’。此时,只有具有值‘0x200’、‘0x310’和‘0x400’的映射信息的三个片段被存储在内部高速缓冲存储器600中,并且内部高速缓冲存储器600的存储空间足以存储映射信息的5个片段。因此,控制器130可以控制多个存储块BLOCK<1:3,...>从存储在多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP检测具有值“0x460”的映射信息的片段。控制器130可以将检测到的具有值‘0x460’的映射信息存储到内部高速缓冲存储器600中。
在时间点t-3,应当针对对应于从命令队列620输出的第五命令CMD<5>的第五逻辑地址LA<5>的值‘0x46110’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x461’。此时,只有具有值‘0x200’、‘0x310’、‘0x400’和‘0x460’的映射信息的四个片段被存储在内部高速缓冲存储器600中,并且内部高速缓冲存储器600的存储空间足以存储映射信息的5个片段。因此,控制器130可以控制多个存储块BLOCK<1:3,...>从存储在多个存储块BLOCK<1:3,...>中的整个映射信息ALL_MAP检测具有值“0x461”的映射信息的片段。控制器130可以将检测到的具有值‘0x461’的映射信息存储到内部高速缓冲存储器600中。
并且,在时间点t-3,内部高速缓冲存储器600的存储空间足以存储映射信息的5个片段。因此,控制器130应当根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’、‘0x461’的映射信息的5个片段中选择牺牲映射信息的片段,以在时间点t-3之后将映射信息的另外的片段存储在内部高速缓冲存储器600中。因此,在时间点t-3,控制器130可以根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’、‘0x461’的映射信息的5个片段中选择最近最少使用的映射信息,即,具有值‘0x200’的映射信息的片段,作为牺牲映射信息。由于在时间点t-3之后在移除选择的牺牲映射信息(即,具有值‘0x200’的映射信息的片段)之前有可能使用选择的牺牲映射信息,因此,在时间点t-3,控制器130可不预先移除选择的牺牲映射信息,即,具有值‘0x200’的映射信息的片段。
在时间点t-2,应当针对对应于从命令队列620输出的第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x310’。此时,具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。然而,应当针对对应于从命令队列620输出的第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x310’已经被存储在内部高速缓冲存储器600中。因此,控制器130可不控制非易失性存储器装置150从多个存储块BLOCK<1:3,...>加载应当针对第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x310’,而是,控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP参考针对对应于第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’的值‘0x310’。控制器130可以响应于第六命令CMD<6>控制非易失性存储器装置150执行操作。控制器130可以将具有值‘0x310’的映射信息的片段更新为最近使用的映射信息。因此,具有值‘0x200’并且在时间点t-3选择的牺牲映射信息可不被移除并保留在内部高速缓冲存储器600中。
在时间点t-1,应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x462’。此时,具有值‘0x200’、‘0x400’、‘0x460’、‘0x461’、‘0x310’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。而且,应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x462’未被存储在内部高速缓冲存储器600中。因此,控制器130可以在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中移除(A)牺牲映射信息,即,在时间点t-3选择的具有值‘0x200’的映射信息的片段。然后,控制器130可以控制非易失性存储器装置150将作为应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段的、具有值‘0x462’的映射信息的片段从多个存储块BLOCK<1:3,...>加载(B)到内部高速缓冲存储器600上。
如上所述,由于牺牲映射信息在时间点t-1被移除,因此牺牲映射信息的另外的片段可以根据LRU算法来选择和移除,以在时间点t-1之后将映射信息的另外的片段存储到内部高速缓冲存储器600中。因此,在时间点t-1,控制器130可以根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x400’、‘0x460’、‘0x461’、‘0x310’和‘0x462’的映射信息的5个片段中选择最近最少使用的映射信息,即,具有值‘0x400’的映射信息的片段,作为牺牲映射信息。由于在时间点t-1之后在移除选择的牺牲映射信息(即,具有值‘0x400’的映射信息的片段)之前有可能使用选择的牺牲映射信息,因此,在时间点t-1,控制器130可不预先移除选择的牺牲映射信息,即,具有值‘0x400’的映射信息的片段。
在时间点t,应当针对对应于从命令队列620输出的第八命令CMD<8>的第八逻辑地址LA<8>的值‘0x20000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x200’。此时,具有值‘0x400’、‘0x460’、‘0x461’、‘0x310’和‘0x462’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。而且,应当针对对应于从命令队列620输出的第八命令CMD<8>的第八逻辑地址LA<8>的值‘0x20000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x200’未被存储在内部高速缓冲存储器600中。因此,控制器130可以在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中移除(C)牺牲映射信息,即,在时间点t-1选择的具有值‘0x400’的映射信息的片段。然后,控制器130可以控制非易失性存储器装置150将作为应当针对对应于从命令队列620输出的第八命令CMD<8>的第八逻辑地址LA<8>的值‘0x20000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段的、具有值‘0x200’的映射信息的片段从多个存储块BLOCK<1:3,...>加载(D)到内部高速缓冲存储器600上。
综上所述,如参照图7所述的,当根据LRU算法控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的更新时,控制器130可以在时间点t-1从内部高速缓冲存储器600移除具有值‘0x200’的映射信息的片段。然后,控制器130可以控制非易失性存储器装置150在时间点t将具有值‘0x200’的映射信息的片段从多个存储块BLOCK<1:3,...>再次加载到内部高速缓冲存储器600上。即,当仅根据LRU算法控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的更新时,可以避免或减少以下情况:被认为是不必要的映射信息的片段可以从内部高速缓冲存储器600重复地移除,并且然后映射信息的另一片段可以从多个存储块BLOCK<1:3,...>加载到内部高速缓冲存储器600上。
根据本公开的实施例,控制器130可以在部分映射信息SERVICE_MAP中适当地选择牺牲映射信息的片段或者通过参考对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>来适当地处理选择的牺牲映射信息。
图8A示出根据本公开的实施例的控制器130通过参考对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息的片段的操作。
当在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息的片段时,控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP顺序地选择所选择的映射信息的片段。控制器130可以确定所选择的映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。根据确定所选择的映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个的结果,控制器130可以选择所选择的映射信息的片段作为牺牲映射信息的片段。即,根据本公开的实施例,控制器130可以不根据LRU算法从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP直接地选择牺牲映射信息。而是,控制器130可以根据LRU算法从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择所选择的映射信息的片段。根据确定所选择的映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个,控制器130可以选择所选择的映射信息的片段作为牺牲映射信息的片段。
当控制器130确定所选择的映射信息的片段的逻辑地址对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个时,控制器130可以不选择所选择的映射信息的片段作为牺牲映射信息的片段。当控制器130不选择所选择的映射信息的当前片段作为牺牲映射信息的片段时,控制器130可以根据LRU算法从部分映射信息SERVICE_MAP选择除了先前选择的映射信息之外的所选择的映射信息的另一片段。
当控制器130确定所选择的映射信息的片段的逻辑地址不对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个时,控制器130可以选择所选择的映射信息的片段作为牺牲映射信息的片段。
为了确定所选择的映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个,控制器130可以生成逻辑地址列表,在该逻辑地址列表中预定数量的命令CMD<1:8>的逻辑地址LA<1:8>按照它们的值的顺序排列。控制器130可以通过二分搜索方案或线性搜索方案来确定所选择的映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。当控制器130从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择所选择的映射信息的片段时,控制器130可以生成对应于命令队列620中剩余的命令CMD<1:8>的逻辑地址LA<1:8>的逻辑地址列表。例如,如图8A所示,由于在时间点t-3之后,控制器130首先从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择所选择的映射信息的片段,因此在时间点t-3之后,控制器130可以生成对应于命令队列620中剩余的命令CMD<6:8>的逻辑地址LA<6:8>的逻辑地址列表。因此,图8A示例性地示出具有按照值的顺序排列的值‘0x200’、‘0x310’和‘0x462’的逻辑地址列表。以类似的方式,如图8A所示,由于在时间点t-1之后,控制器130其次从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择所选择的映射信息的片段,因此在时间点t-1之后,控制器130可以生成对应于命令队列620中剩余的命令CMD<8>的逻辑地址LA<8>的逻辑地址列表。因此,图8A示例性地示出具有值‘0x200’的逻辑地址列表。
逻辑地址列表的生成可以不限制本公开的实施例。根据实施例,可以将所选择的映射信息的片段的逻辑地址顺序地与存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>进行比较。
详细地,与如图7中所示的相同,图8A示出存储在命令队列620中的预定数量的命令CMD<1:8>、对应于预定数量的命令CMD<1:8>的逻辑地址LA<1:8>以及应当针对逻辑地址LA<1:8>从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测并且根据从命令队列620输出的序列以时间点t-7、t-6、t-5、t-4、t-3、t-2、t-1、t排列的映射信息。在下文中,将参照图8A描述参照图7描述的实施例。
例示的是,存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的数量是五(5),这仅是示例。内部高速缓冲存储器600可以存储比五(5)个部分映射信息SERVICE_MAP更多或更少的部分映射信息SERVICE_MAP。
详细地,在参照图7所述的示例中的时间点t-3处,具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段当前被存储在内部高速缓冲存储器600中。因此,控制器130应当根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段中选择牺牲映射信息的片段,以在时间点t-3之后将映射信息的另外的片段存储在内部高速缓冲存储器600中。根据本公开的实施例,在时间点t-3,控制器130可以根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段中选择最近最少使用的映射信息,即,具有值‘0x200’的映射信息的片段,作为所选择的映射信息的片段。然后,控制器130可以确定具有值‘0x200’的所选择的映射信息的片段是否对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。
当参照逻辑地址列表时,控制器130可以确定具有值‘0x200’的所选择的映射信息的片段对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。因此,控制器130可以不选择具有值‘0x200’的所选择的映射信息的片段作为牺牲映射信息。
因此,控制器130可以在时间点t-3根据LRU算法从部分映射信息SERVICE_MAP选择除了具有值‘0x200’的先前选择的映射信息之外的、最近最少使用的映射信息作为所选择的映射信息的另一片段。在该情况下,具有值‘0x310’的映射信息的片段可以被选择为所选择的映射信息的另一片段。控制器130可以确定具有值‘0x310’的所选择的映射信息的片段是否对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。
当参照逻辑地址列表时,控制器130可以确定具有值‘0x310’的所选择的映射信息的片段对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。因此,控制器130可以不选择具有值‘0x310’的所选择的映射信息的片段作为牺牲映射信息。
因此,控制器130可以在时间点t-3根据LRU算法从部分映射信息SERVICE_MAP选择除了具有值‘0x200’和‘0x310’的先前选择的映射信息之外的、最近最少使用的映射信息作为所选择的映射信息的另一片段。在该情况下,具有值‘0x400’的映射信息的片段可以被选择为所选择的映射信息的另一片段。控制器130可以确定具有值‘0x400’的所选择的映射信息的片段是否对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。
当参照逻辑地址列表时,控制器130可以确定具有值‘0x400’的所选择的映射信息的片段不对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。因此,控制器130可以选择具有值‘0x400’的所选择的映射信息的片段作为牺牲映射信息。
然后,在参照图7所述的示例中的时间点t-2,应当针对对应于从命令队列620输出的第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x310’。此时,具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段当前被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。然而,应当针对对应于从命令队列620输出的第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x310’已经被存储在内部高速缓冲存储器600中。因此,控制器130可不控制非易失性存储器装置150从多个存储块BLOCK<1:3,...>加载应当针对第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x310’。而是,控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP参考针对对应于第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’的值‘0x310’。控制器130可以响应于第六命令CMD<6>控制非易失性存储器装置150执行操作。控制器130可以将具有值‘0x310’的映射信息的片段更新为最近使用的映射信息。因此,在时间点t-3具有值‘0x400’的所选择的映射信息的片段可不被移除并保留在内部高速缓冲存储器600中。
在参照图7所述的示例中的时间点t-1,应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x462’。此时,具有值‘0x200’、‘0x400’、‘0x460’、‘0x461’和‘0x310’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。而且,应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x462’未被存储在内部高速缓冲存储器600中。因此,控制器130可以在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中移除(E)牺牲映射信息,即,在时间点t-3选择的具有值‘0x400’的映射信息的片段。然后,控制器130可以控制非易失性存储器装置150将作为应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段的、具有值‘0x462’的映射信息的片段从多个存储块BLOCK<1:3,...>加载(F)到内部高速缓冲存储器600上。
如上所述,由于牺牲映射信息在时间点t-1被移除,因此牺牲映射信息的另外的片段可以根据LRU算法来选择和移除,以在时间点t-1之后将映射信息的另外的片段存储到内部高速缓冲存储器600中。因此,在时间点t-1,控制器130可以根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x460’、‘0x461’、‘0x310’和‘0x462’的映射信息的5个片段中选择最近最少使用的映射信息,即,具有值‘0x200’的映射信息的片段,作为所选择的映射信息的片段。控制器130可以确定具有值‘0x200’的所选择的映射信息的片段的逻辑地址是否对应于逻辑地址LA<1:8>中的任何一个。此处,逻辑地址LA<1:8>可以分别对应于存储在命令队列620中的预定数量的命令CMD<1:8>。
当参照逻辑地址列表时,控制器130可以确定具有值‘0x200’的所选择的映射信息的片段对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。因此,控制器130可以不选择具有值‘0x200’的所选择的映射信息的片段作为牺牲映射信息。
因此,控制器130可以在时间点t-1根据LRU算法从部分映射信息SERVICE_MAP选择除了具有值‘0x200’的先前选择的映射信息之外的、最近最少使用的映射信息作为所选择的映射信息的另一片段。在该情况下,具有值‘0x460’的映射信息的片段可以被选择为所选择的映射信息的另一片段。控制器130可以确定具有值‘0x460’的所选择的映射信息的片段是否对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。
当参照逻辑地址列表时,控制器130可以确定具有值‘0x460’的所选择的映射信息的片段不对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。因此,控制器130可以选择具有值‘0x460’的所选择的映射信息的片段作为牺牲映射信息。
在参照图7所述的示例中的时间点t,应当针对对应于从命令队列620输出的第八命令CMD<8>的第八逻辑地址LA<8>的值‘0x20000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x200’。此时,具有值‘0x200’、‘0x460’、‘0x461’、‘0x310’和‘0x462’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有充足的存储空间来存储映射信息的另外的片段。
然而,应当针对对应于从命令队列620输出的第八命令CMD<8>的第八逻辑地址LA<8>的值‘0x20000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x200’当前被存储在内部高速缓冲存储器600中。因此,控制器130可不控制非易失性存储器装置150从多个存储块BLOCK<1:3,...>加载应当针对第八逻辑地址LA<8>的值‘0x20000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x200’。而是,控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP参考针对对应于第八命令CMD<8>的第八逻辑地址LA<8>的值‘0x20000’的值‘0x200’。控制器130可以响应于第八命令CMD<8>控制非易失性存储器装置150执行操作。控制器130可以将具有值‘0x200’的映射信息的片段更新为最近使用的映射信息。因此,具有值‘0x460’并且在时间点t-1选择的牺牲映射信息可不被移除并保留在内部高速缓冲存储器600中。
综上所述,与参照图7描述的根据LRU算法控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的更新相比,当通过参考存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>来控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中的牺牲映射信息的选择时,可以避免或减少以下情况:被认为是不必要的映射信息的片段可以从内部高速缓冲存储器600重复地移除,并且然后映射信息的另一片段可以从多个存储块BLOCK<1:3,...>加载到内部高速缓冲存储器600上。
即,如以上参照图7所述的,控制器130可以在时间点t-1从内部高速缓冲存储器600移除具有值‘0x200’的映射信息的片段,并且然后可以控制非易失性存储器装置150在时间点t将具有值‘0x200’的映射信息的片段从多个存储块BLOCK<1:3,...>再次加载到内部高速缓冲存储器600上。然而,如参照图8A所述的,可以预测在时间点t使用具有值‘0x200’的映射信息的片段,并且在时间点t-1移除具有值‘0x400’的映射信息的片段。因此,可以在时间点t使用内部高速缓冲存储器600中具有值‘0x200’的映射信息的片段。这样,如参照图8A所述的,与参照图7描述的根据LRU算法控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的更新相比,可以避免或减少以下情况:被认为是不必要的映射信息的片段可以从内部高速缓冲存储器600重复地移除,并且然后映射信息的另一片段可以从多个存储块BLOCK<1:3,...>加载到内部高速缓冲存储器600上。
图8B示出根据本发明的实施例的控制器130在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息的片段的操作。
参照图8B,在步骤S81处,当需要在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择并移除牺牲映射信息的片段时,控制器130可以开始移除牺牲映射信息的片段的操作。
在步骤S82处,控制器130可以根据最近最少使用(LRU)算法从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP顺序地选择所选择的映射信息的片段。
在步骤S83处,控制器130可以确定所选择的映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。
当所选择的映射信息的片段的逻辑地址被确定为对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个(步骤S83处为“是”)时,在步骤S84处,控制器130可以不选择所选择的映射信息的片段作为牺牲映射信息的片段并且可以标记所选择的映射信息的当前片段,以便在后续步骤S82处不再选择所选择的映射信息的当前片段作为所选择的映射信息的片段。
当所选择的映射信息的片段的逻辑地址被确定为不对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个(步骤S83处为“否”)时,在步骤S85处,控制器130可以选择所选择的映射信息的片段作为牺牲映射信息的片段并移除牺牲映射信息的片段。
可以立即移除在步骤S85处选择的牺牲映射信息的片段。或者,可以在预定时间之后移除牺牲映射信息的片段。当完成对牺牲映射信息的片段的移除时,可以在步骤S86处完成移除牺牲映射信息的片段的操作。
图9A示出根据本公开的实施例的控制器130通过参考对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>在存储在命令队列620中的部分映射信息SERVICE_MAP中处理牺牲映射信息的片段的操作。
当在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息的片段时,控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP顺序地选择牺牲映射信息的片段。控制器130可以确定选择的牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。根据确定选择的牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个的结果,控制器130可以将选择的牺牲映射信息的片段的物理地址分配给存储在命令队列620中的预定数量的命令CMD<1:8>。即,根据本公开的实施例,控制器130可以根据LRU算法从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP直接地选择牺牲映射信息。然而,与参照图7所述的实施例不同,根据确定牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个的结果,控制器130可以将牺牲映射信息的片段的物理地址预先分配给存储在命令队列620中的预定数量的命令CMD<1:8>中的对应的一个。
当牺牲映射信息的片段的逻辑地址被确定为对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个时,控制器130可以将牺牲映射信息的片段的物理地址预先分配给具有对应于牺牲映射信息的片段的逻辑地址的逻辑地址的命令。
当牺牲映射信息的片段的逻辑地址被确定为不对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个时,控制器130可以不执行任何操作。
为了确定牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个,控制器130可以生成逻辑地址列表,在该逻辑地址列表中预定数量的命令CMD<1:8>的逻辑地址LA<1:8>按照它们的值的顺序排列。控制器130可以通过二分搜索方案或线性搜索方案来确定牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。当控制器130从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择牺牲映射信息的片段时,控制器130可以生成对应于命令队列620中剩余的命令CMD<1:8>的逻辑地址LA<1:8>的逻辑地址列表。例如,如图9A所示,由于在时间点t-3之后,控制器130首先从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择牺牲映射信息的片段,因此在时间点t-3之后,控制器130可以生成对应于命令队列620中剩余的命令CMD<6:8>的逻辑地址LA<6:8>的逻辑地址列表。因此,图9A示例性地示出具有按照值的顺序排列的值‘0x200’、‘0x310’和‘0x462’的逻辑地址列表。以类似的方式,如图9A所示,由于在时间点t-1之后,控制器130其次从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP选择牺牲映射信息的片段,因此在时间点t-1之后,控制器130可以生成对应于命令队列620中剩余的命令CMD<8>的逻辑地址LA<8>的逻辑地址列表。因此,图9A示例性地示出具有值‘0x200’的逻辑地址列表。
逻辑地址列表的生成可以不限制本公开的实施例。在实施例中,可以将牺牲映射信息的片段的逻辑地址顺序地与存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>进行比较。
详细地,与如图7中所示的相同,图9A示出存储在命令队列620中的预定数量的命令CMD<1:8>、对应于预定数量的命令CMD<1:8>的逻辑地址LA<1:8>以及应当针对逻辑地址LA<1:8>从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测并且根据从命令队列620输出的序列以时间点t-7、t-6、t-5、t-4、t-3、t-2、t-1、t排列的映射信息。在下文中,将参照图9A描述参照图7描述的实施例。
例示的是,存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的数量是五(5),这仅是示例。内部高速缓冲存储器600可以存储比图9A的示例的五(5)个部分映射信息SERVICE_MAP更多或更少的部分映射信息SERVICE_MAP。
详细地,在参照图7所述的示例中的时间点t-3,具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,控制器130应当根据LRU算法在时间点t-3在存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段中选择牺牲映射信息的片段,使得在时间点t-3之后,映射信息的另外的片段可以被存储在内部高速缓冲存储器600中。根据本公开的实施例,在时间点t-3,控制器130可以根据LRU算法在存储在内部高速缓冲存储器600中的具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段中选择最近最少使用的映射信息,即,具有值‘0x200’的映射信息的片段,作为牺牲映射信息的片段。然后,控制器130可以确定具有值‘0x200’的牺牲映射信息的片段是否对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>中的任何一个。
当参照逻辑地址列表时,控制器130可以识别出具有值‘0x200’的牺牲映射信息的片段对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>中的第八命令CMD<8>的逻辑地址LA<8>。因此,控制器130可以将具有值‘0x200’的牺牲映射信息的片段的物理地址分配(F)给第八命令CMD<8>。即,控制器130可以将牺牲映射信息的片段的物理地址预先分配给在该时间点尚未处理的第八命令CMD<8>。
然后,在参照图7所述的示例中的时间点t-2,应当针对对应于从命令队列620输出的第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x310’。此时,具有值‘0x200’、‘0x310’、‘0x400’、‘0x460’和‘0x461’的映射信息的5个片段当前被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。然而,应当针对对应于从命令队列620输出的第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x310’已经被存储在内部高速缓冲存储器600中。因此,控制器130可以不控制非易失性存储器装置150从多个存储块BLOCK<1:3,...>加载应当针对第六逻辑地址LA<6>的值‘0x31000’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x310’。控制器130可以从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP参考针对对应于第六命令CMD<6>的第六逻辑地址LA<6>的值‘0x31000’的值‘0x310’。控制器130可以响应于第六命令CMD<6>来控制非易失性存储器装置150执行操作并且可以将具有值‘0x310’的映射信息的片段更新为最近使用的映射信息。因此,具有值‘0x200’并且在时间点t-3选择的牺牲映射信息的片段可不被移除而是可保留在内部高速缓冲存储器600中。
在参照图7所述的示例中的时间点t-1,应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段具有值‘0x462’。此时,具有值‘0x200’、‘0x400’、‘0x460’、‘0x461’和‘0x310’的映射信息的5个片段被存储在内部高速缓冲存储器600中。因此,内部高速缓冲存储器600可能不具有足够的存储空间来存储映射信息的另外的片段。而且,应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的值‘0x462’未被存储在内部高速缓冲存储器600中。因此,控制器130可以在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中移除(G)牺牲映射信息,即在时间点t-3选择的具有值‘0x200’的映射信息的片段,并且然后可以控制非易失性存储器装置150将作为应当针对对应于从命令队列620输出的第七命令CMD<7>的第七逻辑地址LA<7>的值‘0x46200’从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP检测的映射信息的片段的、具有值‘0x462’的映射信息的片段从多个存储块BLOCK<1:3,...>加载(H)到内部高速缓冲存储器600上。
如上所述,由于牺牲映射信息在时间点t-1被移除,因此牺牲映射信息的另外的片段可以根据LRU算法来选择和移除,以在时间点t-1之后将映射信息的另外的片段存储到内部高速缓冲存储器600中。因此,控制器130可以在时间点t-1根据LRU算法在当前存储在内部高速缓冲存储器600中的具有值‘0x400’、‘0x460’、‘0x461’、‘0x310’和‘0x462’的映射信息的5个片段中选择最近最少使用的映射信息,即具有值‘0x400’的映射信息的片段,作为牺牲映射信息的片段,并且可以确定具有值‘0x400’的牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。
当参照逻辑地址列表时,控制器130可以确定具有值‘0x400’的牺牲映射信息的片段不对应于存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>。因此,控制器130可以不对具有值‘0x400’的牺牲映射信息的片段执行任何操作。
在参照图7描述的示例中的时间点t,第八命令CMD<8>可以从命令队列620输出并且然后被处理。如上所述,控制器130可以将具有值‘0x200’的牺牲映射信息的片段的物理地址预先分配给在时间点t-3尚未处理的第八命令CMD<8>。因此,当处理第八命令CMD<8>时,控制器130可以不参考存储在内部高速缓冲存储器600中的整个映射信息ALL_MAP而是参考分配给第八命令CMD<8>的物理地址,从而响应于第八命令CMD<8>控制非易失性存储器装置150执行操作。
因此,在内部高速缓冲存储器600中,在时间点t的部分映射信息SERVICE_MAP的值可以与在时间点t-1的部分映射信息SERVICE_MAP的值相同(I)。即,在时间点t,具有值‘0x400’、‘0x460’、‘0x461’、‘0x310’和‘0x462’的映射信息的5个片段存储在内部高速缓冲存储器600中。
综上所述,与参照图7描述的根据LRU算法控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的更新相比,当通过参考存储在命令队列620中的预定数量的命令CMD<1:8>的逻辑地址LA<1:8>来控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中的牺牲映射信息的处理时,可以避免或减少以下情况:被认为是不必要的映射信息的片段从内部高速缓冲存储器600重复地移除,并且然后映射信息的另一片段从多个存储块BLOCK<1:3,...>加载到内部高速缓冲存储器600上。
即,如以上参照图7所述的,控制器130可以在时间点t-1从内部高速缓冲存储器600移除具有值‘0x200’的映射信息的片段。然后,控制器130可以控制非易失性存储器装置150在时间点t将具有值‘0x200’的映射信息的片段从多个存储块BLOCK<1:3,...>再次加载到内部高速缓冲存储器600上。然而,如参照图9A所述的,可以预测具有值‘0x200’的映射信息的片段在时间点t用于第八命令CMD<8>。可以在时间点t-3将具有值‘0x200’的映射信息的片段的物理地址预先分配给第八命令CMD<8>。因此,控制器130不需要参考存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP来在时间点t处理第八命令CMD<8>。这样,如参照图9A所述的,与参照图7描述的根据LRU算法控制存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP的更新相比,可以避免或减少以下情况:被认为是不必要的映射信息的片段从内部高速缓冲存储器600重复地移除,并且然后映射信息的另一片段可以从多个存储块BLOCK<1:3,...>加载到内部高速缓冲存储器600上。
图9B示出根据本发明的实施例的控制器130在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择牺牲映射信息的片段的操作。
参照图9B,在步骤S91处,当需要在存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP中选择并移除牺牲映射信息的片段时,控制器130可以开始移除牺牲映射信息的片段的操作。
在步骤S92处,控制器130可以根据最近最少使用(LRU)算法从存储在内部高速缓冲存储器600中的部分映射信息SERVICE_MAP顺序地选择牺牲映射信息的片段。
在步骤S93处,控制器130可以确定选择的牺牲映射信息的片段的逻辑地址是否对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个。
当选择的牺牲映射信息的片段的逻辑地址被确定为对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个(步骤S93处为“是”)时,在步骤S94处,控制器130可以将牺牲映射信息的片段的物理地址分配给具有对应于牺牲映射信息的片段的逻辑地址的逻辑地址的命令。
当选择的牺牲映射信息的片段的逻辑地址被确定为不对应于与存储在命令队列620中的预定数量的命令CMD<1:8>对应的逻辑地址LA<1:8>中的任何一个(步骤S93处为“否”)时,控制器130不对选择的牺牲映射信息的片段执行任何操作。
在步骤S95处,控制器130可以将通过步骤S93和S94完成处理的选择的牺牲映射信息的片段在完成处理时立即移除或在预定时间之后移除。当完成对牺牲映射信息的片段的移除时,可以在步骤S96处完成移除牺牲映射信息的片段的操作。
在本公开中,控制器130被例示为使用LRU算法,这仅仅是为了便于描述的示例。根据实施例,控制器130可以根据系统设计,使用除了LRU算法之外的任何合适的选择算法。
在下文中,将参照图10至图18详细描述可以利用包括上文通过参照图1至图9B描述的存储器装置150和控制器130的存储器系统110构成的数据处理系统和电子装置。
图10至图18是示意性示出根据各个实施例的图1至图9B的数据处理系统的应用示例的示图。
图10是示意性地示出包括根据实施例的存储器系统的数据处理系统的示例的示图。图10示意性地示出包括根据实施例的存储器系统的存储卡系统。
参照图10,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,被配置成访问存储器装置6130的存储器控制器6120可电连接到存储器装置6130。存储器装置6130通过非易失性存储器来实施。通过示例而非限制的方式,存储器控制器6120可被配置成控制对存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口和/或使用固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1至图9B所述的存储器系统110中的控制器130,而存储器装置6130可对应于参照图1至图9B所述的存储器装置150。
因此,存储器控制器6120可包括RAM、处理单元、主机接口、存储器接口和错误校正单元。存储器控制器6120可以进一步包括图1中描述的元件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成在诸如以下的各种通信协议中的一种或多种下与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI和蓝牙。因此,根据实施例的存储器系统和数据处理系统可被应用于有线/无线电子装置或者具体的移动电子装置。
存储器装置6130可由易失性存储器来实施。通过示例而非限制的方式,存储器装置6130可由诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋力矩转移磁性RAM(STT-MRAM)。存储器装置6130可以包括如图1的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可被集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过被集成到单个半导体装置中来构造固态驱动器(SSD)。此外,存储器控制器6120和存储器装置6130可构成存储卡,诸如PC卡(PCMCIA:个人计算机存储卡国际协会)、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪速存储(UFS)。
图11是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。
参照图11,数据处理系统6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图11所示的数据处理系统6200可用作如参照图1所述的诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1至图9B中所述的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1至图9B中所述的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求来控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224和诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,由CPU 6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM6222可用于缓冲从主机6210传输至存储器装置6230的数据或反之亦然。当RAM 6222用作高速缓冲存储器时,RAM 6222可辅助低速存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC单元138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的ECC(错误校正码)。ECC电路6223可对提供给存储器装置6230的数据执行错误校正编码,由此形成具有奇偶校验位的数据。奇偶校验位可存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。在该情况下,ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用LDPC码、BCH码、Turbo码、里德-所罗门码、卷积码、RSC或诸如TCM或BCM的编码调制来校正错误。
存储器控制器6220可通过主机接口6224将数据或信号传输到主机6210或从主机6210接收数据或信号。存储器控制器6220可通过NVM接口6225将数据或信号传输到存储器装置6230或从存储器装置6230接收数据或信号。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接到主机6210。存储器控制器6220可具有诸如WiFi或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可连接到例如主机6210或另一外部装置的外部装置,并且然后将数据传输到外部装置/从外部装置接收数据。由于存储器控制器6220被配置成通过各种通信协议的一种或多种与外部装置进行通信,因此根据实施例的存储器系统和数据处理系统可被应用于有线/无线电子装置或特别是移动电子装置。
图12是示意性地示出包括根据实施例的存储器系统的数据处理系统的示例的示图。图12示意性地示出应用了根据实施例的存储器系统的SSD。
参照图12,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包含在存储器装置6340中的多个闪速存储器NVM提供的数据。或者,缓冲存储器6325可临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由易失性存储器或非易失性存储器来实现,其中易失性存储器诸如DRAM、SDRAM、DDR SDRAM、LPDDRSDRAM和GRAM,非易失性存储器诸如FRAM、ReRAM、STT-MRAM和PRAM。为了描述的目的,图12示出缓冲存储器6325存在于控制器6320内部,然而,缓冲存储器6325可位于或被布置在控制器6320外部。
ECC电路6322可在编程操作期间计算待编程到存储器装置6340中的数据的ECC值。ECC电路6322可在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322可在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与外部装置例如主机6310的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1的存储器系统110的多个SSD 6300来实施数据处理系统,例如,RAID(独立磁盘冗余阵列)系统。RAID系统可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即从主机6310提供的写入命令的RAID级别信息,在SSD6300中选择一个或多个存储器系统或SSD6300,并可将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD6300,以将从所选择的SSD 6300读取的数据输出到主机6310。
图13是示意性说明包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图13示意性说明应用了根据实施例的存储器系统110的嵌入式多媒体卡(eMMC)。
参照图13,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130。存储器装置6440可对应于图1的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和例如NAND接口6433的存储器接口。
内核6432可控制eMMC 6400的操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作例如参照图1所述的MMC接口的并行接口。此外,主机接口6431可用作串行接口,例如UHS((超高速)-I/UHS-II)接口。
图14至图17是示意性示出包括根据实施例的存储器系统的数据处理系统的其它示例的示图。图14至图17示意性示出应用根据实施例的存储器系统的通用闪存(UFS)系统。
参照图14至图17,UFS系统6500、6600、6700、6800可分别包括主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830。主机6510、6610、6710、6810可用作有线/无线电子装置或特别是移动电子装置的应用处理器,UFS装置6520、6620、6720、6820可用作嵌入式UFS装置,并且UFS卡6530、6630、6730、6830可用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700、6800中的主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过UFS协议与诸如有线/无线电子装置或特别是移动电子装置的外部装置通信。UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过图1所示的存储器系统110来实施。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可参照图10至图12所述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730、6830可参照图10所述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700、6800中,主机6510、6610、6710、6810、UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过例如MIPI(移动工业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)的UFS接口彼此通信。此外,UFS装置6520、6620、6720、6820与UFS卡6530、6630、6730、6830可通过UFS协议以外的各种协议彼此通信,例如,UFD、MMC、SD、迷你-SD和微型-SD。
在图14所示的UFS系统6500中,主机6510、UFS装置6520以及UFS卡6530中的每一个可包括UniPro。主机6510可执行交换操作,以便与UFS装置6520、UFS卡6530中的至少一个通信。主机6510可通过例如在UniPro处的L3交换的链路层交换与UFS装置6520或UFS卡6530通信。在该情况下,UFS装置6520、UFS卡6530可通过在主机6510的UniPro处的链路层交换来与彼此通信。在示例中,为了便于描述,已经例示其中一个UFS装置6520、一个UFS卡6530连接到主机6510的配置。然而,多个UFS装置和UFS卡可并联或以星形的形式连接至主机6510(此处,星形的形式意味着单个装置与多个其它装置或卡联接以用于集中控制的布置),并且多个UFS卡可并联或以星形的形式连接至UFS装置6520,或者串联或以链的形式连接至UFS装置6520。
在图15所示的UFS系统6600中,主机6610、UFS装置6620、UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在UniPro处执行链路层交换例如L3交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620、UFS卡6630可通过在UniPro处的交换模块6640的链路层交换来与彼此通信。在示例中,为了便于描述,已经例示一个UFS装置6620、一个UFS卡6630连接到交换模块6640的配置。然而,多个UFS装置和UFS卡可并联或以星形的形式连接至交换模块6640。多个UFS卡可串联或以链的形式连接至UFS装置6620。
在图16所示的UFS系统6700中,主机6710、UFS装置6720、UFS卡6730中的每一个可包括UniPro,并且主机6710可通过执行交换操作的交换模块6740,例如在UniPro处执行链路层交换例如L3交换的交换模块6740,与UFS装置6720或UFS卡6730通信。在该情况下,UFS装置6720、UFS卡6730可通过在UniPro处的交换模块6740的链路层交换来彼此通信。交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在示例中,为了便于描述,已经例示一个UFS装置6720、一个UFS卡6730连接到交换模块6740的配置。然而,每个都包括交换模块6740、UFS装置6720的多个模块可并联或以星形的形式连接到主机6710,或者串联或以链的形式彼此连接。此外,多个UFS卡可并联或以星形的形式连接到UFS装置6720。
在图17所示的UFS系统6800中,主机6810、UFS装置6820、UFS卡6830中的每一个可包括M-PHY和UniPro。UFS装置6820可执行交换操作,以便与主机6810、UFS卡6830通信。UFS装置6820可通过用于与主机6810通信的M-PHY和UniPro模块之间的交换操作和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标ID(标识符)交换操作来与主机6810或UFS卡6830通信。此处,主机6810、UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在实施例中,已经例示其中一个UFS装置6820连接到主机6810、一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可并联或以星形的形式(例如,多个装置与单个主装置或中央装置联接的集中式)连接至主机6810,或串联或以链的形式连接至主机6810。多个UFS卡可并联或以星形的形式连接至UFS装置6820,或串联或以链的形式连接至UFS装置6820。
图18是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图18是示意性示出应用根据实施例的存储器系统110的用户系统的示图。
参照图18,用户系统6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950、用户接口6910。
更具体地,应用处理器6930可驱动包括在用户系统6900中的诸如OS的部件,并且包括控制包括在用户系统6900中的组件的控制器、接口和图形引擎。应用处理器6930可作为片上系统(SoC)被提供。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或缓存存储器。存储器模块6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDRSDRAM、LPDDR2SDRAM和LPDDR3SDRAM的易失性RAM或诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。例如,应用处理器6930、存储器模块6920可基于POP(堆叠封装)的被封装并安装。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且可支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,根据发明的实施例的存储器系统和数据处理系统可应用于有线和/或无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可由非易失性半导体存储器装置实现,例如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1所述的存储器系统110。此外,存储模块6950可被实施为如上参照图12至图17所述的SSD、eMMC和UFS。
用户接口6910可包括用于将数据或命令输入到应用处理器6930或用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、发光二极管(LED)、扬声器和监视器的用户输出接口。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据或支持从触摸面板接收数据的功能。
虽然已经关于具体实施例描述了本发明,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求所确定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
非易失性存储器装置,包括多个存储块;以及
控制器,包括命令队列,所述命令队列存储来自主机的多个命令,
其中所述控制器管理用于将所述命令的逻辑地址映射到所述非易失性存储器装置的物理地址的映射信息,将部分映射信息存储到内部高速缓冲存储器中,将整个映射信息存储到所述存储块中,在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择牺牲映射信息的片段,并且基于存储在所述命令队列中的所述命令的逻辑地址移除所述牺牲映射信息的片段。
2.根据权利要求1所述的存储器系统,其中当需要在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择牺牲映射信息的片段并且移除所述牺牲映射信息的片段时,所述控制器根据预定的选择算法顺序地选择存储在所述内部高速缓冲存储器中的所述部分映射信息作为选择的映射信息的片段,确定所述选择的映射信息的片段的逻辑地址是否对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个,并且根据确定的结果来选择所述选择的映射信息的片段作为所述牺牲映射信息的片段。
3.根据权利要求2所述的存储器系统,其中当所述选择的映射信息的片段的逻辑地址被确定为对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个时,所述控制器不选择所述选择的映射信息的片段作为所述牺牲映射信息的片段。
4.根据权利要求3所述的存储器系统,其中当所述选择的映射信息的片段的逻辑地址被确定为不对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个时,所述控制器选择所述选择的映射信息的片段作为所述牺牲映射信息的片段。
5.根据权利要求2所述的存储器系统,其中所述控制器生成逻辑地址列表,在所述逻辑地址列表中按顺序排列存储在所述命令队列中的所述命令的逻辑地址的值,并且通过二分搜索方案或线性搜索方案确定所述选择的映射信息的片段的逻辑地址是否对应于所述逻辑地址列表中的值中的任何一个。
6.根据权利要求1所述的存储器系统,其中当需要在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择牺牲映射信息的片段并且移除所述牺牲映射信息的片段时,所述控制器根据预定的选择算法在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择所述牺牲映射信息的片段,确定所述牺牲映射信息的片段的逻辑地址是否对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个,并且将所述牺牲映射信息的片段的物理地址分配给存储在所述命令队列中的所述命令。
7.根据权利要求6所述的存储器系统,其中当所述牺牲映射信息的片段的逻辑地址被确定为对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个时,所述控制器将所述牺牲映射信息的片段的物理地址分配给具有与所述牺牲映射信息的片段的逻辑地址对应的逻辑地址的命令。
8.根据权利要求6所述的存储器系统,其中所述控制器生成逻辑地址列表,在所述逻辑地址列表中按顺序排列存储在所述命令队列中的所述命令的逻辑地址的值,并且通过二分搜索方案或线性搜索方案确定所述牺牲映射信息的片段的逻辑地址是否对应于所述逻辑地址列表中的值中的任何一个。
9.根据权利要求1所述的存储器系统,其中当所述控制器在存储在所述内部高速缓冲存储器中的所述部分映射信息中搜索所述命令队列的输出命令的逻辑地址以在所述非易失性存储器装置中使用所述输出命令,但未能从存储在所述内部高速缓冲存储器中的所述部分映射信息找到所述输出命令的逻辑地址时,所述控制器控制所述非易失性存储器装置将存储在所述存储块中的所述整个映射信息中对应于所述输出命令的映射信息的片段加载并存储到所述内部高速缓冲存储器中,并且在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择并移除所述牺牲映射信息的片段,以保持存储在所述内部高速缓冲存储器中的所述部分映射信息的数量等于或低于预定数量。
10.根据权利要求1所述的存储器系统,其中当所述控制器在存储在所述内部高速缓冲存储器中的所述部分映射信息中搜索所述命令队列的输出命令的逻辑地址以在所述非易失性存储器装置中使用所述输出命令,但未能从存储在所述内部高速缓冲存储器中的所述部分映射信息找到所述输出命令的逻辑地址时,所述控制器在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择并移除所述牺牲映射信息的片段,并且控制所述非易失性存储器装置将存储在所述存储块中的所述整个映射信息中对应于所述输出命令的映射信息的片段加载并存储到所述内部高速缓冲存储器中。
11.一种存储器系统的操作方法,所述存储器系统包括非易失性存储器装置和命令队列,所述非易失性存储器装置包括多个存储块,所述命令队列存储从主机请求的命令,所述方法包括:
管理用于将逻辑地址映射到物理地址的映射信息的多个片段,并且将部分映射信息存储到内部高速缓冲存储器中并将整个映射信息存储到所述存储块中;并且
在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择牺牲映射信息的片段以基于存储在所述命令队列中的所述命令的逻辑地址移除所述牺牲映射信息的片段。
12.根据权利要求11所述的方法,其中选择牺牲映射信息的片段包括:
第一选择步骤,当需要在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择牺牲映射信息的片段并且移除所述牺牲映射信息的片段时,根据预定的选择算法顺序地选择存储在所述内部高速缓冲存储器中的所述部分映射信息作为选择的映射信息的片段;以及
第二选择步骤,确定所述选择的映射信息的片段的逻辑地址是否对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个,并且根据确定的结果来选择所述选择的映射信息的片段作为所述牺牲映射信息的片段。
13.根据权利要求12所述的方法,其中当所述选择的映射信息的片段的逻辑地址被确定为对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个时,所述第二选择步骤不选择所述选择的映射信息的片段作为所述牺牲映射信息的片段。
14.根据权利要求13所述的方法,其中当所述选择的映射信息的片段的逻辑地址被确定为不对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个时,所述第二选择步骤选择所述选择的映射信息的片段作为所述牺牲映射信息的片段。
15.根据权利要求12所述的方法,其中所述第二选择步骤包括:
生成逻辑地址列表,在所述逻辑地址列表中按顺序排列存储在所述命令队列中的所述命令的逻辑地址的值;并且
通过二分搜索方案或线性搜索方案确定所述选择的映射信息的片段的逻辑地址是否对应于所述逻辑地址列表中的值中的任何一个。
16.根据权利要求11所述的方法,其中选择牺牲映射信息的片段包括:
第三选择步骤,当需要在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择牺牲映射信息的片段并且移除所述牺牲映射信息的片段时,根据预定的选择算法在存储在所述内部高速缓冲存储器中的所述部分映射信息中选择所述牺牲映射信息的片段;以及
第四步骤,确定所述牺牲映射信息的片段的逻辑地址是否对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个,并且将所述牺牲映射信息的片段的物理地址分配给存储在所述命令队列中的所述命令。
17.根据权利要求16所述的方法,其中当所述牺牲映射信息的片段的逻辑地址被确定为对应于存储在所述命令队列中的所述命令的逻辑地址中的任何一个时,所述第四步骤将所述牺牲映射信息的片段的物理地址分配给具有与所述牺牲映射信息的片段的逻辑地址对应的逻辑地址的命令。
18.根据权利要求16所述的方法,其中所述第四步骤包括:
生成逻辑地址列表,在所述逻辑地址列表中按顺序排列存储在所述命令队列中的所述命令的逻辑地址的值;并且
通过二分搜索方案或线性搜索方案确定所述牺牲映射信息的片段的逻辑地址是否对应于所述逻辑地址列表中的值中的任何一个。
19.根据权利要求11所述的方法,进一步包括:
当所述控制器在存储在所述内部高速缓冲存储器中的所述部分映射信息中搜索所述命令队列的输出命令的逻辑地址以在所述非易失性存储器装置中使用所述输出命令,但未能从存储在所述内部高速缓冲存储器中的所述部分映射信息找到所述输出命令的逻辑地址时,控制所述非易失性存储器装置将存储在所述存储块中的所述整个映射信息中对应于所述输出命令的映射信息的片段加载并存储到所述内部高速缓冲存储器中;并且
在将所述部分映射信息存储到所述内部高速缓冲存储器中之后,移除通过控制所述选择的操作选择的所述牺牲映射信息的片段,以保持存储在所述内部高速缓冲存储器中的所述部分映射信息的数量等于或低于预定数量。
20.根据权利要求11所述的方法,进一步包括:
当所述控制器在存储在所述内部高速缓冲存储器中的所述部分映射信息中搜索所述命令队列的输出命令的逻辑地址以在所述非易失性存储器装置中使用所述输出命令,但未能从存储在所述内部高速缓冲存储器中的所述部分映射信息找到所述输出命令的逻辑地址时,移除通过控制所述选择的操作选择的所述牺牲映射信息的片段;并且
在移除所述牺牲映射信息的片段之后,控制所述非易失性存储器装置将存储在所述存储块中的所述整个映射信息中对应于所述输出命令的映射信息的片段加载并存储到所述内部高速缓冲存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0129847 | 2017-10-11 | ||
KR1020170129847A KR20190040614A (ko) | 2017-10-11 | 2017-10-11 | 메모리 시스템 및 그의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109656837A true CN109656837A (zh) | 2019-04-19 |
CN109656837B CN109656837B (zh) | 2023-07-18 |
Family
ID=65993256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811151393.0A Active CN109656837B (zh) | 2017-10-11 | 2018-09-29 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10762001B2 (zh) |
KR (1) | KR20190040614A (zh) |
CN (1) | CN109656837B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831215A (zh) * | 2019-04-22 | 2020-10-27 | 爱思开海力士有限公司 | 用于在存储器系统中传输映射信息的装置 |
WO2023065272A1 (en) * | 2021-10-22 | 2023-04-27 | Yangtze Advanced Memory Industrial Innovation Center Co., Ltd | Phase-change memory device and operation method thereof |
CN116383098A (zh) * | 2023-06-05 | 2023-07-04 | 成都佰维存储科技有限公司 | 地址索引方法、装置、可读存储介质及电子设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210151372A (ko) | 2020-06-05 | 2021-12-14 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11663136B2 (en) * | 2020-06-24 | 2023-05-30 | Western Digital Technologies, Inc. | Storage capacity recovery source selection |
KR20220059259A (ko) * | 2020-11-02 | 2022-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
KR20220132339A (ko) * | 2021-03-23 | 2022-09-30 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
TWI802279B (zh) | 2022-02-18 | 2023-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
TWI805231B (zh) | 2022-02-18 | 2023-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN116665756A (zh) * | 2022-02-18 | 2023-08-29 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131264A (ja) * | 1992-10-16 | 1994-05-13 | Hitachi Ltd | キャッシュメモリ制御方式 |
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 |
US20130080732A1 (en) * | 2011-09-27 | 2013-03-28 | Fusion-Io, Inc. | Apparatus, system, and method for an address translation layer |
US20130198439A1 (en) * | 2012-01-26 | 2013-08-01 | Hitachi, Ltd. | Non-volatile storage |
US20140325117A1 (en) * | 2013-04-30 | 2014-10-30 | Lsi Corporation | Flash translation layer with lower write amplification |
US20160055087A1 (en) * | 2014-08-22 | 2016-02-25 | Nvidia Corporation | System and method for managing cache replacements |
US20160283390A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Storage cache performance by using compressibility of the data as a criteria for cache insertion |
CN106681654A (zh) * | 2016-09-29 | 2017-05-17 | 合肥兆芯电子有限公司 | 映射表载入方法与存储器存储装置 |
US20170192902A1 (en) * | 2015-12-30 | 2017-07-06 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102354990B1 (ko) | 2014-09-17 | 2022-01-24 | 삼성전자주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
US10635617B2 (en) * | 2017-05-19 | 2020-04-28 | Western Digital Technologies, Inc. | Context-aware dynamic command scheduling for a data storage system |
-
2017
- 2017-10-11 KR KR1020170129847A patent/KR20190040614A/ko unknown
-
2018
- 2018-08-03 US US16/054,495 patent/US10762001B2/en active Active
- 2018-09-29 CN CN201811151393.0A patent/CN109656837B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131264A (ja) * | 1992-10-16 | 1994-05-13 | Hitachi Ltd | キャッシュメモリ制御方式 |
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 |
US20130080732A1 (en) * | 2011-09-27 | 2013-03-28 | Fusion-Io, Inc. | Apparatus, system, and method for an address translation layer |
US20130198439A1 (en) * | 2012-01-26 | 2013-08-01 | Hitachi, Ltd. | Non-volatile storage |
US20140325117A1 (en) * | 2013-04-30 | 2014-10-30 | Lsi Corporation | Flash translation layer with lower write amplification |
US20160055087A1 (en) * | 2014-08-22 | 2016-02-25 | Nvidia Corporation | System and method for managing cache replacements |
US20160283390A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Storage cache performance by using compressibility of the data as a criteria for cache insertion |
US20170192902A1 (en) * | 2015-12-30 | 2017-07-06 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
CN106681654A (zh) * | 2016-09-29 | 2017-05-17 | 合肥兆芯电子有限公司 | 映射表载入方法与存储器存储装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831215A (zh) * | 2019-04-22 | 2020-10-27 | 爱思开海力士有限公司 | 用于在存储器系统中传输映射信息的装置 |
WO2023065272A1 (en) * | 2021-10-22 | 2023-04-27 | Yangtze Advanced Memory Industrial Innovation Center Co., Ltd | Phase-change memory device and operation method thereof |
CN116383098A (zh) * | 2023-06-05 | 2023-07-04 | 成都佰维存储科技有限公司 | 地址索引方法、装置、可读存储介质及电子设备 |
CN116383098B (zh) * | 2023-06-05 | 2023-09-12 | 成都佰维存储科技有限公司 | 地址索引方法、装置、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109656837B (zh) | 2023-07-18 |
KR20190040614A (ko) | 2019-04-19 |
US20190108136A1 (en) | 2019-04-11 |
US10762001B2 (en) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656837A (zh) | 存储器系统及其操作方法 | |
CN108572927A (zh) | 存储器系统及其操作方法 | |
CN108304141A (zh) | 存储器系统及其操作方法 | |
CN109144408A (zh) | 存储器系统及其操作方法 | |
CN110244907A (zh) | 存储器系统及该存储器系统的操作方法 | |
CN109388594A (zh) | 存储器系统及其操作方法 | |
CN109947358A (zh) | 存储器系统及其操作方法 | |
CN109426449A (zh) | 存储器系统及其操作方法 | |
CN109284202A (zh) | 控制器及其操作方法 | |
CN108268212A (zh) | 控制器及操作方法 | |
CN108388525A (zh) | 存储器系统及其操作方法 | |
CN110058797A (zh) | 存储器系统及其操作方法 | |
CN108694138A (zh) | 控制器及其操作方法 | |
CN109032501A (zh) | 存储器系统及其操作方法 | |
CN110322920A (zh) | 控制器及控制器的操作方法 | |
CN110321069A (zh) | 存储器系统及其操作方法 | |
CN108932203A (zh) | 数据处理系统和数据处理方法 | |
CN109671459A (zh) | 存储器系统及其操作方法 | |
CN109271328A (zh) | 存储器系统及其操作方法 | |
CN110457230A (zh) | 存储器系统及其操作方法 | |
CN110322915A (zh) | 存储器装置及其操作方法 | |
CN110032471A (zh) | 存储器系统及其操作方法 | |
CN109656749A (zh) | 存储器系统及其操作方法 | |
CN109656469A (zh) | 用于控制一个或多个存储器装置的控制器及其操作方法 | |
CN108733616A (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 |