CN102576333B - 非易失性存储器中的数据高速缓存 - Google Patents

非易失性存储器中的数据高速缓存 Download PDF

Info

Publication number
CN102576333B
CN102576333B CN201080044714.2A CN201080044714A CN102576333B CN 102576333 B CN102576333 B CN 102576333B CN 201080044714 A CN201080044714 A CN 201080044714A CN 102576333 B CN102576333 B CN 102576333B
Authority
CN
China
Prior art keywords
data
logical address
cache
flash memory
address
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
CN201080044714.2A
Other languages
English (en)
Other versions
CN102576333A (zh
Inventor
S·S·迪什卡尔
S·卡玛卡
A·普鲁希
R·K·乔里
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN102576333A publication Critical patent/CN102576333A/zh
Application granted granted Critical
Publication of CN102576333B publication Critical patent/CN102576333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

方法、系统和装置,包括编码在计算机存储介质上的计算机程序,可以执行数据高速缓存。在一些实现中,方法和系统包括接收包含逻辑地址的信息、在非易失性存储器结构中分配物理页面、将逻辑地址映射到物理页面的物理地址、以及基于物理地址而向非易失性存储器结构写入数据以便高速缓存关联于逻辑地址的信息。逻辑地址可以包括数据存储设备的标识符和逻辑页面编号。

Description

非易失性存储器中的数据高速缓存
与相关申请的交叉引用
本发明要求于2009年10月5日提交的、标题为“FlashBasedCachewithaCacheAwareFlashTranslationLayer”的美国临时申请序号61/248,845的优先权。上述申请的全文内容通过引用并入于此。
技术领域
本公开描述了与数据高速缓存有关的系统和技术。
背景技术
主机系统可以与存储系统进行通信以便读写数据。主机系统可以包括计算机系统,诸如个人计算机、消费电子设备或者服务器系统。存储系统可以包括一个或多个数据存储设备,诸如与主机系统通信的硬盘驱动器(HDD)或固态驱动器(SSD)。在一些实现中,主机系统包括存储系统,而在其他实现中,存储系统在主机系统之外。存储系统可以执行数据高速缓存以便减少平均访问延迟时间。
发明内容
本公开包括与数据高速缓存有关的系统和技术。根据所描述的系统和技术的一个方面,一种系统包括主机系统、数据存储设备、配置用以对关于数据存储设备的数据进行高速缓存的非易失性存储器结构、以及配置用以对诸如数据存储设备之类的设备进行操作的控制器。控制器可以从主机系统接收逻辑地址,在非易失性存储器结构中分配物理页面,存储从逻辑地址到物理页面的物理地址的映射,接收与逻辑地址关联的数据,以及基于物理地址而将关联于逻辑地址的数据写入非易失性存储器结构以便对关联于逻辑地址的数据进行高速缓存。映射可以指示关联于逻辑地址的数据的被高速缓存状态。
在一些实现中,控制器被配置用以接收与来自主机系统或数据存储设备中之一的逻辑地址关联的数据。在一些实现中,控制器被配置用以基于与被写入到不同物理页面的逻辑地址关联的数据而使映射无效。控制器可以执行对关联于被无效映射的物理页面的擦除,从而使得物理页面可用于重新分配。在一些实现中,控制器被配置用以基于由无效命令序列所指示的逻辑地址而使已分配的物理页面无效。在一些实现中,逻辑地址包括数据存储设备的标识符和逻辑页面编号。系统可以包括两个或更多个数据存储设备。非易失性存储器结构可被配置用以对关于两个或更多个数据存储设备的数据进行高速缓存。映射可以包括数据存储设备标识符,其标识两个或更多个数据存储设备中的至少一个。在一些实现中,控制器包括存储控制器和高速缓存控制器,并且高速缓存控制器通信地与非易失性存储器结构耦合。非易失性存储器结构可以包括一个或多个快闪存储器结构。数据存储设备可以包括一个或更多个硬盘驱动器。系统可以包括包含有非易失性存储器结构的高速缓存设备。在一些实现中,控制器被配置用以基于逻辑地址来选择高速缓存设备。
根据所描述的系统和技术的另一方面,一种方法包括从主机系统接收包括逻辑地址的信息。该方法包括接收与来自主机系统或数据存储设备中之一的逻辑地址关联的数据。该方法包括在非易失性存储器结构中分配物理页面。在一些实现中,非易失性存储器结构被配置用以对关于至少一个数据存储设备的数据进行高速缓存。该方法包括存储从逻辑地址到物理页面的物理地址的映射。该方法包括基于物理地址而将关联于逻辑地址的数据写入非易失性存储器结构以便高速缓存关联于逻辑地址的数据。映射可以指示关联于逻辑地址的数据的被高速缓存状态。
在一些实现中,一种方法包括基于与被写入到不同物理页面的逻辑地址关联的数据而使映射无效,以及执行对与被无效映射关联的物理页面的擦除以便使物理页面可用于重新分配。接收与逻辑地址关联的数据可以包括基于逻辑地址,从数据存储设备读取数据。在一些实现中,一种方法包括基于由无效命令序列所指示的逻辑地址而使已分配的物理页面无效。
所描述的系统和技术可实现于电子电路、计算机硬件、固件、软件或者其组合之中,诸如本说明书所公开的结构装置及其结构等效件中。这可以包括至少一个实施程序的计算机可读介质,该程序可操作用以致使一个或多个数据处理装置执行所描述的操作。因此,程序实现可以通过所公开的方法、系统或装置来实现,并且装置实现可以通过所公开的系统、计算机可读介质或方法来实现。类似地,方法实现可以通过所公开的系统、计算机可读介质或装置来实现,并且系统实现可以通过所公开的方法、计算机可读介质或装置来实现。
装置可以包括非易失性存储器结构、用以接收包含有逻辑地址的命令序列的电路、用以接收与逻辑地址关联的数据的电路、用以在非易失性存储器结构中分配物理页面的电路、用以存储从逻辑地址到关联于物理页面的物理地址的映射的电路、以及用以基于物理地址而将关联于逻辑地址的数据写入非易失性存储器结构以便对关联于逻辑地址的数据进行高速缓存的电路。映射可以指示关联于逻辑地址的数据的被高速缓存状态。逻辑地址可以包括标识数据存储设备的信息和逻辑页面编号。
在一些实现中,装置可以包括用以接收包含有逻辑地址的读取命令序列的电路、用以标识与读取命令序列的逻辑地址关联的物理地址的电路、以及用以基于所标识的物理地址而从非易失性存储器结构读取数据以便提供与读取命令序列的逻辑地址关联的经高速缓存数据的电路。装置可以包括用以基于由无效命令序列所指示的逻辑地址而使已分配的物理页面无效的电路。
所描述的系统和技术可以产生延迟减少的存储系统。例如,使用将逻辑地址与非易失性存储器上的页面的物理地址相联系的映射可以减少从高速缓存数据存储读取数据所需的查找的数目。此外,可以采用单个查找表而非保持多个单独的查找表,以便更加高效地使用高速缓存数据存储中的存储器。在存储系统中进行数据高速缓存的这种方式可以使得延迟减少。
一个或更多个实现的细节在附图及以下描述中阐明。其他特征、目的和优势可从描述和附图以及从权利要求中显现。
附图说明
图1示出了存储架构的示例。
图2示出了高速缓存控制器架构的示例。
图3示出了非易失性存储器的块与页面布局的示例。
图4示出了基于高速缓存的存储过程的示例。
图5示出了映射表布局的示例。
图6示出了高速缓存感知闪存转译层过程的示例。
图7A和图7B示出了不同高速缓存过程的示例。
图8示出了具有多个快闪存储器结构的存储系统的示例。
图9示出了存储过程的示例。
各附图中的相似参考符号指示相似元件。
具体实施方式
图1示出了存储架构的示例。主机105可以经由控制器100访问一个或多个存储设备110。控制器100可以包括存储控制器120、高速缓存控制器125以及一个或多个存储器,诸如高速缓存存储器130。在一些实现中,存储设备110包括一个或多个存储元件,其可由控制器100分别寻址。
主机105可向存储控制器120发送命令序列,诸如写入命令序列或读取命令序列。命令序列可以包含逻辑地址。在一些实现中,逻辑地址包括存储设备目标标识符,该标识符与存储设备110关联。在一些实现中,命令序列可以包括命令标识符、逻辑地址和长度。在一些实现中,主机105经由接口与存储控制器120通信,这些接口诸如有外设部件互连(PCI)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、以太网或者通用串行总线(USB)。
存储控制器120可以与高速缓存控制器125进行通信,以便高速缓存接收自存储设备110的数据、高速缓存接收自主机105的数据,或者高速缓存来自这二者的数据。高速缓存控制器125可以与高速缓存存储器130通信,该高速缓存存储器130可以包括诸如快闪存储器之类的非易失性存储器。在一些实现中,高速缓存控制器125包括快闪存储器控制器,用以控制高速缓存存储器130中的快闪存储器。例如,存储控制器120可以从存储设备110读取数据,以及将所读取数据的至少一部分存储在受控于高速缓存控制器125的高速缓存存储器130中。在另一示例中,存储控制器120可以从主机105接收数据,用以写入存储设备110。存储控制器120可以将接收自主机105的写入数据存储在受控于高速缓存控制器125的高速缓存存储器130中。在一些实现中,存储控制器120在高速缓存存储器130上存储主机写入数据,并且不需要即时将主机写入数据存储在存储设备110上。在一些实现中,存储控制器120在高速缓存存储器130上并且在存储设备110上存储主机写入数据。
主机105可以包括一个或多个处理器、存储器以及输入/输出(I/O)连接。在一些实现中,主机105包括存储控制器120。例如,片上系统(SOC)可以包括通用处理器以及一个或多个控制器(例如,存储控制器、高速缓存控制器或者其组合)用以访问外部设备,诸如硬盘驱动器(HDD)或固态驱动器(SSD)。SSD可以包括诸如非易失性存储器集成电路之类的一个或多个非易失性存储器结构,例如闪存芯片。高速缓存控制器125可以包括一个或多个处理器以及一个或多个非易失性存储器。在一些实现中,存储控制器120包括一个或多个高速缓存控制器125。在一些实现中,存储控制器120与高速缓存控制器125以及一个或多个存储设备110相集成。
图2示出了高速缓存控制器架构的示例。高速缓存控制器205可以为存储控制器高速缓存数据。对数据进行高速缓存可以提高性能,例如更快的读取时间和更快的写入时间。高速缓存控制器205可以与诸如闪存芯片210之类的一个或多个非易失性存储器芯片进行通信,以存储或检索高速缓存数据。高速缓存控制器205可以与控制器存储器215进行通信,该控制器存储器215在闪存芯片210中存储诸如针对经高速缓存数据的地址映射之类的高速缓存元数据。在一些实现中,控制器存储器215集成到闪存芯片210的存储器区中,例如,闪存芯片中存储器的一部分被配置成用于高速缓存控制器205的存储器。
高速缓存控制器205可以在控制器存储器215上存储诸如高速缓存元数据之类的信息。例如,高速缓存控制器205可以在映射表220中存储一个或多个映射,以便协助高速缓存操作。存储在映射表220上的映射标识逻辑地址(LA)与对应于存储在闪存芯片210中的至少一个上的物理页面的物理地址(PA)之间的关系。逻辑地址可以包括逻辑页面编号(LPN),该LPN关联于存储设备上的数据位置。在一些实现中,LPN可以称为逻辑块地址(LBA)。在一些实现中,LPN可以包括偏移和长度。物理地址可以包括块标识符和页面标识符。
在一些实现中,映射表220可以包括逻辑地址,该逻辑地址包括LPN和关联于数据存储设备的存储设备目标标识符。存储设备目标标识符可以区分相同的LPN。例如,两个数据存储设备可以使用相同的LPN来存储不同的数据。控制器可以使用存储设备目标标识符来从对应的存储设备检索与LPN关联的数据。
高速缓存控制器205可以接收来自存储控制器的命令序列以便从高速缓存检索数据。命令序列可以标识逻辑地址。如果高速缓存控制器205获得高速缓存命中,例如,在映射表220中找到了命令序列的逻辑地址,则高速缓存控制器205使用对应的物理地址来从对应于物理地址的闪存芯片210检索数据。高速缓存控制器205可将检索到的数据发送到存储控制器。
如果高速缓存控制器205获得高速缓存未命中,例如,在映射表220中未找到命令的逻辑地址,则高速缓存控制器205可将未命中报告给存储控制器。在一些实现中,高速缓存控制器205可将未命中报告给诸如固件之类的程序。然而,高速缓存控制器205可以在闪存芯片210中分配物理页面以便在映射表220中存储映射,该映射标识出命令的逻辑地址与所分配的物理页面的物理地址之间的关系。在存储控制器服务于高速缓存未命中之后,例如,在从存储设备检索对应于逻辑地址的数据之后,高速缓存控制器205可以接收数据以及将该数据存储在闪存芯片210中的一个或多个之中用于将来的读取访问。
在另一示例中,高速缓存控制器205接收向高速缓存写入数据的命令。该命令标识逻辑地址。如果高速缓存控制器205获得高速缓存命中,则高速缓存控制器205使用对应的物理地址来向对应于物理地址的闪存芯片210写入数据。在一些实现中,向相同的物理页面进行的未来写入需要新的位置。因此,高速缓存控制器205可以分配新的物理页面并且更新映射表220,以便反映针对逻辑地址的新物理页面指派。在一些实现中,高速缓存控制器205可将旧的物理页面标记为无效。
图3示出了非易失性存储器的块与页面布局的示例。非易失性存储器布局300包括一个或多个块305。块305包括一个或多个页面310。例如,块的大小可以是256KB而页面的大小可以是4KB,并且相应地,块可以包括64个页面。在另一示例中,块的大小可以是512KB而页面的大小可以是4KB,因此,块可以包括128个页面。
存储控制器可以接收信息,诸如来自主机系统的命令序列。命令序列可以包括逻辑地址。对于写入命令而言,命令序列可以包括数据。在一些实现中,逻辑地址包括数据存储设备的标识符和逻辑页面编号。存储控制器可以运行基于高速缓存的存储过程。在一些实现中,存储控制器操作高速缓存控制器运行基于高速缓存的存储过程的至少一部分。例如,存储控制器可以基于接收自主机系统的命令序列,向高速缓存控制器发送命令序列。
图4示出了基于高速缓存的存储过程的示例。在一些实现中,基于高速缓存的存储过程包括针对存储控制器的操作和针对与存储控制器通信的高速缓存控制器的操作。在一些实现中,过程运行于诸如存储控制器或者集成的存储与高速缓存控制器之类的控制器上。在405处,基于高速缓存的存储过程可以从主机系统接收包括逻辑地址的命令序列。在一些情况下,命令序列指示出要为主机系统检索数据。在一些情况下,命令序列指示出写入操作并且包括主机写入数据。
在410处,基于高速缓存的存储过程可以访问映射表,以便确定是否存在与逻辑地址关联的映射。例如,过程可以基于逻辑地址执行查表。在一些实现中,过程使用哈希表来确定是否存在与逻辑地址关联的映射。在一些实现中,高速缓存控制器在控制器存储器中存储表格,并且使用该表格来执行基于逻辑地址的查找。
在415处,如果不存在映射,则过程在420处可以在非易失性存储器结构中分配物理页面。在425处,过程可以生成映射以便将逻辑地址与物理页面的物理地址联系起来。在一些实现中,物理页面的物理地址是物理页面的起始地址。在430处,过程可将映射存储在映射表中。映射可以指示出与逻辑地址关联的数据的被高速缓存状态。例如,有效映射表条目的存在可以指示被高速缓存数据的存在。在435处,过程可以基于物理地址将数据写入到非易失性存储器结构,以便高速缓存与逻辑地址关联的信息。例如,过程可以接收包括主机写入数据的命令序列。过程可以在非易失性存储器结构中高速缓存主机写入数据。
在415处,如果映射确实存在,则过程在440处可以使用现有映射来处理伴随非易失性存储器结构的数据操作。数据操作的各种示例包括写入操作和读取操作。在一些实现中,过程使用现有映射来从非易失性存储器结构读取数据。在一些实现中,过程使用现有映射来向非易失性存储器结构写入数据。在一些实现中,使用现有映射写入数据可以包括使现有映射无效,以及创建新的映射用以向非易失性存储器结构中不同的物理位置写入数据。
图5示出了映射表布局的示例。映射表500布局被布置用于存储一个或多个条目505。映射表500被划分为逻辑地址510和相应的物理地址515。例如,条目505包括逻辑地址510和物理地址515。在一些实现中,逻辑地址包括标识符,诸如对目标设备做出标识的目标设备标识符(例如,TGT1、TGT2)。例如,逻辑地址可以包括目标设备标识符和LPN。关于读取命令序列,控制器可以使用LPN从与包括在序列中的目标设备标识符对应的设备读取页面。控制器可以高速缓存页面。对页面进行高速缓存包括在映射表500中创建映射,该映射包括目标设备标识符和LPN。在一些实现中,条目505包括活动旗标,用以指示条目505是否在使用中。条目505可以包括有效旗标,用以指示与物理地址515关联的物理页面是否有效。例如,条目505被标记为使用中而有效旗标被标记为无效。被标记为使用中的条目505和被标记为有效的有效旗标可以指示高速缓存状态为真。
存储系统可以包括一个或多个非易失性存储器,其被配置用于高速缓存流向存储设备或来自存储设备的信息。诸如快闪存储器之类的非易失性存储器可以电擦除或者重新编程。在一些实现中,快闪存储器可以包括NAND逻辑。
在一些实现中,快闪存储器基于擦除块和页面来进行操作。例如,访问的单元为页面,而擦除操作的单元为擦除块。块和页面的大小可随不同的闪存设备而变。例如,关于包括在大块快闪SSD中的闪存设备而言,擦除块尺寸的大小在256KB到512KB之间,而页面的大小为4KB。然而,其他大小也是有可能的。
在一些实现中,已包含数据的闪存块不能够被重写,除非该块被明确地擦除。擦除操作可能是耗时的,例如,可能耗费若干毫秒。在一些实现中,对于大块NAND设备,擦除块内的页面不能够被随机写入。例如,擦除块包括从1到100编号的100个页面。在一些实现中,如果擦除块内的页面20被写入,则无法向页面1-页面20写入,除非整个块都被擦除。然而,页面20之后的页面是可写的。
在一些快闪存储器设计中,块在其由于快闪存储器的一种或多种物理特性而变得不可使用之前,只能擦除有限的次数。快闪存储器设备可以使用损耗均衡算法将负荷分散在多个闪存芯片上。快闪存储器设备可以使用损耗均衡算法来确保轮换使用快闪存储器内的擦除块,从而使得没有单个闪存擦除块担负过多的写入循环。
应用可以向相同的逻辑页面写入数据并于随后重新写入数据。逻辑页面可以映射到存储在快闪存储器中的物理页面。向相同的位置重新写入页面可能要求闪存设备将整个擦除块读入存储器,擦除整个块,向需要更新的页面之前的页面重新写入来自存储器的数据,更新相关页面,以及将块中的剩余页面重新写入到闪存。用于向相同位置重新写入页面的操作在时间上可能是昂贵的。此外,如果闪存设备在重写过程完成前断电,则有永久性数据丢失的可能性。然而,在恰当位置上重写可能无法确保闪存块的均匀损耗。
闪存设备可以向不同的位置重新写入页面,以便增加操作延迟以及提供更加分散的快闪存储器损耗均衡。例如,闪存设备可将页面标记为无效,并将经更新的页面写入到不同的位置。在一些实现中,闪存设备可在快闪存储器结构所提供的物理空间上加之以对逻辑页面的抽象层的使用。该层被称为闪存转译层(FTL)。在一些实现中,发送到闪存设备的命令可以使用逻辑地址来指代数据。在一些实现中,命令包括LPN。FTL可以使用FTL内的逻辑将物理页面编号分配给逻辑页面编号。对于重新写入,可将FTL配置用于将页面重新写入到不同的位置。因此,闪存可以具有与相同逻辑页面关联的多个物理页面,其中仅一个物理页面被视为有效,而其他物理页面则被视为无效。闪存设备可以使用FTL元数据来跟踪有哪些物理位置包含有效数据。
FTL元数据可以包括存储有LPN的映射表和相应物理页面位置的表格。在一些实现中,LPN是经由诸如SAS、SATA或PCI之类接口导出的逻辑页面地址。映射表可以保存具有针对对应LPN的有效内容的最新物理位置。FTL元数据可以包括描述有哪些物理页面具有有效数据的表格。
闪存设备可以执行垃圾收集以便收回被无效的页面,从而使其可针对将来的写入操作而重获使用。在一些实现中,FTL逻辑需要空闲块来处理对逻辑页面的更新。在一些实现中,闪存控制器内的处理器在后台运行垃圾收集过程。垃圾收集过程可以搜索擦除块以及在使页面可写之前运行碎片整理操作。在一些实现中,过程基于块内所包含的被无效页面的数目来搜索块。碎片整理过程可以从存储器中的各个块收集有效页面,将它们重新写入新的擦除块中,更新元数据映射,以及擦除旧的块。被擦除的块现在可用于新的写入。在不存在任何空闲物理页面满足写入操作的情况下,闪存设备可以执行按需垃圾收集。然而,为了减少按需垃圾收集的可能性,闪存控制器可以声明少于物理上可用的存储空间量。
存储系统可以包括配置成高速缓存设备的闪存设备。闪存设备可以包括闪存感知FTL。高速缓存设备可以为具有与闪存设备所提供的实际物理空间相独立的逻辑页面范围的多个目标设备提供高速缓存,而不是诸如在闪存设备被用作目标设备时支持LPN与物理存储空间之间的直接映射。
在一些实现中,高速缓存设备可以提供诸如GET和SET命令之类的命令来操纵设备。除逻辑页面地址和传送长度域以外,此类命令可以接受目标设备标识符,例如TGT-ID。在一些实现中,逻辑地址包括TGT-ID和逻辑页面编号。TGT-ID可以标识与经由命令发送或接收的数据关联的目标设备。SET操作可以包括针对指定的TGT-ID,对由偏移和长度所标识的、供应的数据进行高速缓存。对供应的数据进行高速缓存可以包括将供应的数据存储在快闪存储器结构上。GET操作可以包括针对指定的TGT-ID,提取由GET调用中指定的偏移和长度所标识的数据。
高速缓存感知FTL映射表可以包括诸如<TGT-ID,LPN>之类的应用指定逻辑地址到快闪存储器结构内的物理位置描述的映射。物理位置描述可以标识闪存块和闪存块内的页面。在一些情况下,映射表中的条目可能包括不具有对应的有效物理页面的逻辑地址(例如,物理位置描述标记为“无效”)。此类条目可从映射表中消除。
高速缓存快闪设备可以提供用以使高速缓存映射无效(INVALIDATE)的接口。INVALIDATE命令可在应用不再需要存储在高速缓存中的页面时使用。高速缓存感知FLT可以跟踪物理页面状态,例如,有效或者无效。高速缓存感知FTL可以继续进行垃圾收集,以维持一批经擦除的块。
响应于GET调用,高速缓存感知FTL可以直接在FTL的内部映射中查找应用供应的逻辑地址,以便检查数据是否存在于闪存内。如果不存在,则FTL可以发送出错误消息。
响应于SET调用,高速缓存感知FTL可以检查是否有可用于容纳由SET调用所指示的传入写入请求的空闲页面。如果不存在空闲页面,则FTL可以将数据的内容传送到可用页面以及在FTL的映射表中创建新的条目来指示这个新块的映射。FTL可以使旧的映射无效——如果存在这样的映射。如果页面不可用,则FTL可以等待垃圾收集过程收回页面。在一些实现中,如果页面不可用,则FTL可以返回错误消息。
响应于INVALIDATE调用,高速缓存感知FTL可以在FTL的映射表中查找对应的逻辑地址,将这些映射从映射表中移除,并且可以将对应的物理页面标记为无效。在INVALIDATE调用期间,垃圾收集过程可以收回被标记为无效的页面。
高速缓存快闪设备可以支持若干目标设备。尽管高速缓存快闪设备理论上可以为无限数量的物理空间提供高速缓存,但闪存所提供的高速缓存空间与充当高速缓存的闪存所针对的物理空间的比率的概念有助于理解设备的性能。在一些情况下,较小的比率可能造成高速缓存中的工作集较小,因此导致高速缓存效率较低。
图6示出了高速缓存感知闪存转译层过程的示例。闪存设备可以运行高速缓存感知闪存转译层过程来处理传入请求,诸如SET调用。存储控制器可以向高速缓存设备发送SET调用,以便在高速缓存设备上高速缓存应用数据。在605处,过程可以经由SET调用而接收包括逻辑地址和应用数据的信息。在610处,过程确定是否存在与逻辑地址对应的映射。如果该映射存在,则过程在615处将映射所标识的物理页面标记为无效。在620处,过程删除映射。在一些实现中,过程将包含映射的条目标记为无效。
在625处,过程确定是否存在空闲物理页面。如果不存在空闲物理页面,则过程在630处运行垃圾收集过程以释放一个或多个物理页面。如果存在空闲物理页面,则在635处,过程在635处分配物理页面。在640处,过程创建新的映射,以便指示逻辑地址与所分配物理页面之间的关系。在645处,过程将经由SET调用接收到的应用数据传送到快闪存储器结构上的经分配物理页面。
图7A和图7B示出了不同的高速缓存过程的示例。图7A所描绘的高速缓存过程705包括两个查找,而图7B所描绘的高速缓存过程710包括一个查找。使用较少查找的高速缓存过程可以提供比使用较多查找的高速缓存过程更好的性能。更好的性能的示例包括减少的延迟、减少的复杂性,或者全部二者。
图7A所描绘的高速缓存过程705包括接收命令,该命令包括逻辑地址,例如<TGT-ID,LPN>。过程705包括在逻辑地址上执行第一查找,以便获取诸如快闪存储器之类的高速缓存存储器中页面的LPN。过程705包括在LPN上执行第二查找,以便获取物理页面的物理地址。过程705包括执行从物理页面的读取或者向物理页面的写入。
图7B所描绘的高速缓存过程710包括接收命令,该命令包括逻辑地址。过程710包括在逻辑地址上执行查找,以便获取诸如快闪存储器之类的高速缓存存储器中页面的物理地址。过程710包括执行从物理页面的读取或者向物理页面的写入。过程710可以访问高速缓存感知FTL元数据,该高速缓存感知FTL元数据包括将例如<TGT-ID,LPN>之类逻辑地址与物理页面的物理地址相关联的映射表。
高速缓存感知FTL可以对应于诸如INVALIDATE命令之类的命令。对此类命令作出响应可以包括从FTL的映射表移除一个或多个关联的映射(例如,{<TGT-ID,LPN><=>物理页面})。映射表可以具有作为先前页面无效的结果而与相同的逻辑地址关联的多个映射。移除此类映射可以增加快闪存储器空间利用率,并且可以降低垃圾收集器的处理负荷。
在一些实现中,高速缓存控制器使用快闪存储器作为回写高速缓存。高速缓存控制器可以在快闪存储器中预留一些空间作为缓冲空间。这个缓冲空间可以用来匹配较高的传入I/O速率与较低的高速缓存替换速率。在一些实现中,FTL可以为垃圾收集过程在快闪存储器中预留空间,以便允许该过程在出现此类场景时赶上传入I/O数据流。
与非高速缓存感知的FTL相比,高速缓存感知FTL可预留更少的空间。这是因为随着高速缓存逻辑开始使高速缓存块无效,对应的物理页面也开始变得无效,而其因此成为用于擦除的候选者。垃圾收集器可以直接使用这些无效页面来产生用于分配的页面。然而,在一些实现中,无需高速缓存感知FTL来预留空间。
在一些实现中,存储控制器可以使用两个或更多个高速缓存设备来高速缓存来自存储设备的数据。存储控制器可将数据分散在多个高速缓存设备之间。在一些实现中,存储控制器可以使用哈希函数,其将元组<TGT-ID,偏移,长度>映射到高速缓存设备。由哈希函数的输出所标识的高速缓存设备可以用于针对该元组的操作(例如,GET、SET、INVALIDATE)。
图8示出了具有多个快闪存储器结构的存储系统的示例。存储系统可以包括数据存储设备810a、810b,诸如HDD、SSD或者其组合。控制器815可以对数据存储设备810a、810b写入和读取数据。控制器815可以与一个或多个高速缓存设备820通信。高速缓存设备820包括诸如一个或多个快闪存储器结构之类的用以高速缓存数据的存储器,例如,一个或多个闪存芯片845。高速缓存设备820可以包括接口逻辑825、处理器830、随机访问存储器(RAM)835和缓冲管理器840。
图9示出了存储过程的示例。在905处,存储控制器可以接收命令序列,该命令序列包括逻辑地址(例如,<TGT-ID,LPN>)。在910处,存储控制器可以基于逻辑地址来选择高速缓存设备。选择高速缓存设备可以包括对逻辑地址应用哈希函数,以产生高速缓存设备的标识符。在915处,存储控制器可以向所选择的高速缓存设备发送逻辑地址和关联信息以便处理命令序列。在920处,如果存在高速缓存读取未命中,则在925处,存储控制器可以从TGT-ID所标识的数据存储设备读取与LPN关联的数据。在930处,存储控制器可以操作高速缓存设备将读取的数据写入到快闪存储器结构。在935处,存储控制器可以发送对命令序列的响应。对于高速缓存读取未命中,响应可以包括检索自存储设备的数据。
在920处,如果不存在高速缓存读取未命中,则存储控制器可以在935处发送对命令序列的响应。对于写入命令序列,响应可以包括状态,例如,写入成功。
以上已详细描述了一些实施方式,并且各种修改均有可能。所公开的主题,包括本说明书中所描述的功能操作,可以实现在电子电路、计算机硬件、固件、软件或者其组合之中——诸如本说明书中所公开的结构装置及其结构等效件,潜在地包括可操作用以致使一个或多个数据处理装置执行所描述的操作的程序(诸如编码在计算机可读介质中的程序,其可以是存储器设备、存储设备、机器可读介质基片或者其他物理性机器可读介质,或者其中的一个或多个的组合)。
术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,举例而言,包括可编程处理器、计算机或者多个处理器或计算机。除硬件以外,装置可以包括为所讨论的计算机程序创造执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者其中一个或多个的组合的代码。
程序(亦称为计算机程序、软件、软件应用、脚本或者代码)可以用包括编译性或解译性语言或者声明性或过程性语言在内的任何形式编程语言编写,并且其可以以任何形式部署,包括作为独立程序或者作为适合于在计算环境中使用的模块、组件、子例程或者其他单元。程序并不一定对应于文件系统中的文件。程序可以存储在保存有其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、在专用于所讨论程序的单个文件中、或者在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。程序可以部署成执行于一个计算机上,或者执行于位于一个地点或者分散在多个地点之间并由通信网络互连的多个计算机上。
虽然本说明书包含许多细节,但其不应被理解为对所要求保护范围的限制,而是应当理解为对可能特定于具体实施方式的特征的描述。本说明书中在独立的实施方式背景下描述的某些特征亦可在单个实施方式中组合实现。反之,在单个实施方式背景下描述的各种特征亦可分别在多个实施方式中实现或者以任何适当的子组合实现。另外,尽管特征可能在上文中被描述为作用于某些组合之中并且甚至最初照此要求保护,但来自所要求保护组合的一个或多个特征在一些情况下可从组合中剔除,并且所要求保护的组合可能针对子组合或者子组合的变体。
类似地,虽然在附图中以特定顺序描绘操作,但不应将此理解为需要以所示特定顺序或先后顺序执行此类操作或者执行所有示例说明的操作才能够实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。另外,不应将上述实施方式中各种系统组件的分离理解为在所有实施方式中均要求此类分离。
其他实施方式亦落入随附权利要求的范围内。

Claims (11)

1.一种用于数据高速缓存的装置,包括
快闪存储器结构;
用于接收包括逻辑地址的命令序列的电路,其中所述逻辑地址包括(i)从两个或更多个单独的数据存储设备中标识数据存储设备的信息以及(ii)所标识的数据存储设备内的逻辑页面编号;
用于接收与所述逻辑地址关联的数据的电路;
用于在所述快闪存储器结构中分配物理页面的电路;
用于存储从所述逻辑地址到关联于所述物理页面的物理地址的映射的电路;
用于基于所述物理地址将关联于所述逻辑地址的所述数据写入到所述快闪存储器结构以便高速缓存关联于所述逻辑地址的所述数据的电路;以及
用于(i)基于由应用发送的、指示与所述逻辑地址相关联的所述数据的高速缓存不再被需要的无效命令中包括的所述逻辑地址而使所述快闪存储器结构中的所述物理页面无效以及(ii)允许垃圾收集器在执行以使所述物理页面可用于重新分配的擦除时直接使用所述物理页面的电路;
其中所述映射指示关联于所述逻辑地址的所述数据的被高速缓存状态;以及
其中所述映射从所述逻辑地址去往所述物理地址而不需要中间对所述快闪存储器结构的逻辑页面编号(LPN)的参考。
2.根据权利要求1所述的装置,包括:
用于接收包括逻辑地址的读取命令序列的电路;
用于标识与所述读取命令序列的所述逻辑地址关联的物理地址的电路;以及
用于基于所述标识的物理地址从所述快闪存储器结构读取数据以便提供与所述读取命令序列的所述逻辑地址关联的经高速缓存数据的电路。
3.根据权利要求1所述的装置,其中所述快闪存储器结构被用作回写高速缓存,具有小于其总容量的25%特别地预留用于垃圾收集,并且具有小于其总容量的40%预留用于垃圾收集和缓冲空间两者。
4.根据权利要求1所述的装置,其中所述快闪存储器结构包括两个或更多个高速缓存设备,并且其中所述用于分配的电路包括用于基于所述逻辑地址从所述两个或更多个高速缓存设备中选择高速缓存设备的电路。
5.根据权利要求4所述的装置,其中所述用于选择的电路包括用于向{目标-ID,偏移,长度}元组应用哈希函数以从所述两个或更多个高速缓存设备中产生所述高速缓存设备的标识符的电路。
6.一种用于数据高速缓存的方法,包括:
从主机系统接收包括逻辑地址的信息,其中所述逻辑地址包括(i)针对两个或更多个单独的数据存储设备之一的目标设备标识符以及(ii)由所述目标设备标识符标识的单个数据存储设备内的逻辑块地址(LBA);
接收与来自所述主机系统或所述两个或更多个单独的数据存储设备的数据存储设备中之一的所述逻辑地址关联的数据;
在快闪存储器结构中分配物理页面,其中所述快闪存储器结构被配置用于高速缓存针对所述两个或更多个单独的数据存储设备的数据;
存储从所述逻辑地址到所述物理页面的物理地址的映射;
基于所述物理地址,将关联于所述逻辑地址的所述数据写入到所述快闪存储器结构,以便高速缓存关联于所述逻辑地址的所述数据;
基于由应用发送的、指示与所述逻辑地址相关联的所述数据的高速缓存不再被需要的无效命令中包括的所述逻辑地址而使所述快闪存储器结构中的所述物理页面无效;以及
允许垃圾收集器在执行以使所述物理页面可用于重新分配的擦除时直接使用所述物理页面;
其中所述映射指示关联于所述逻辑地址的所述数据的被高速缓存状态;以及
其中所述映射从所述逻辑地址直接去往所述物理地址。
7.根据权利要求6所述的方法,其中接收与所述逻辑地址关联的数据包括基于所述逻辑地址从所述单个数据存储设备读取数据。
8.根据权利要求6所述的方法,其中所述快闪存储器结构被用作回写高速缓存,具有小于其总容量的25%特别地预留用于垃圾收集,并且具有小于其总容量的40%预留用于垃圾收集和缓冲空间两者。
9.根据权利要求6所述的方法,其中所述快闪存储器结构包括两个或更多个高速缓存设备,所述方法包括:
基于所述逻辑地址从所述两个或更多个高速缓存设备中选择高速缓存设备,其中向所述快闪存储器结构写入数据包括与所选择的高速缓存设备进行通信。
10.根据权利要求9所述的方法,其中选择所述高速缓存设备包括向{目标-ID,偏移,长度}元组应用哈希函数以从所述两个或更多个高速缓存设备中产生所述高速缓存设备的标识符。
11.根据权利要求6所述的方法,其中所述两个或更多个单独的数据存储设备包括两个或更多个硬盘驱动器。
CN201080044714.2A 2009-10-05 2010-10-05 非易失性存储器中的数据高速缓存 Active CN102576333B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US24884509P 2009-10-05 2009-10-05
US61/248,845 2009-10-05
PCT/US2010/051514 WO2011044154A1 (en) 2009-10-05 2010-10-05 Data caching in non-volatile memory

Publications (2)

Publication Number Publication Date
CN102576333A CN102576333A (zh) 2012-07-11
CN102576333B true CN102576333B (zh) 2016-01-13

Family

ID=43437255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080044714.2A Active CN102576333B (zh) 2009-10-05 2010-10-05 非易失性存储器中的数据高速缓存

Country Status (3)

Country Link
US (1) US9003159B2 (zh)
CN (1) CN102576333B (zh)
WO (1) WO2011044154A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853223B2 (en) 2019-02-13 2023-12-26 Google Llc Caching streams of memory requests

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US9128853B1 (en) * 2010-05-05 2015-09-08 Toshiba Corporation Lookup structure for large block cache
US8688897B2 (en) * 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
GB2496798B (en) * 2010-07-27 2016-10-12 Ibm Logical to physical address mapping in storage systems comprising solid state memory devices
US9323671B1 (en) * 2011-03-31 2016-04-26 Emc Corporation Managing enhanced write caching
US20120284459A1 (en) * 2011-05-05 2012-11-08 International Business Machines Corporation Write-through-and-back cache
US20120311271A1 (en) * 2011-06-06 2012-12-06 Sanrad, Ltd. Read Cache Device and Methods Thereof for Accelerating Access to Data in a Storage Area Network
US10592416B2 (en) 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
CN103329111B (zh) * 2012-01-19 2015-05-27 华为技术有限公司 一种基于块存储的数据处理方法、装置及系统
US9053010B2 (en) 2012-01-20 2015-06-09 Marvell World Trade Ltd. Cache system using solid state drive
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US20130219116A1 (en) 2012-02-16 2013-08-22 Wenguang Wang Data migration for composite non-volatile storage device
US8914381B2 (en) 2012-02-16 2014-12-16 Apple Inc. Correlation filter
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
JP5914148B2 (ja) * 2012-05-07 2016-05-11 株式会社バッファローメモリ Ssd(ソリッドステートドライブ)装置
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
WO2014029087A1 (zh) * 2012-08-22 2014-02-27 华为技术有限公司 访问固态硬盘空间的方法、装置及系统
US9116820B2 (en) * 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US9495287B2 (en) 2012-09-26 2016-11-15 International Business Machines Corporation Solid state memory device logical and physical partitioning
KR101992934B1 (ko) 2012-11-14 2019-06-26 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
KR102002921B1 (ko) * 2012-12-05 2019-07-23 삼성전자주식회사 버퍼 운영 방법 및 그에 따른 반도체 저장 장치
US9734057B2 (en) * 2012-12-05 2017-08-15 Samsung Electronics Co., Ltd. Semiconductor storage device and buffer operation method thereof
CN103885892A (zh) * 2012-12-20 2014-06-25 株式会社东芝 存储器控制器
US20140189204A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Information processing apparatus and cache control method
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
CN103309815B (zh) * 2013-05-23 2015-09-23 华中科技大学 一种提高固态盘有效容量和寿命的方法和系统
US9514044B2 (en) 2013-05-24 2016-12-06 Hewlett Packard Enterprise Development Lp Multi-level cache tracking table
US20140351521A1 (en) * 2013-05-27 2014-11-27 Shintaro Kudo Storage system and method for controlling storage system
US20140372710A1 (en) * 2013-06-18 2014-12-18 Samsung Electronics Co., Ltd. System and method for recovering from an unexpected shutdown in a write-back caching environment
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9117514B2 (en) * 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9117520B2 (en) * 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9489294B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9928177B2 (en) * 2013-08-21 2018-03-27 Lite-On Electronics (Guangzhou) Limited Managing method for cache memory of solid state drive
US9798655B2 (en) * 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
JP6119533B2 (ja) * 2013-09-27 2017-04-26 富士通株式会社 ストレージ装置,ステージング制御方法及びステージング制御プログラム
JP6062060B2 (ja) * 2013-10-11 2017-01-18 株式会社日立製作所 ストレージ装置、ストレージシステム、及びストレージ装置制御方法
JP2015082240A (ja) * 2013-10-23 2015-04-27 株式会社東芝 ストレージ装置、キャッシュコントローラ、及び不揮発性記憶媒体にデータを書き込む方法
JP6131170B2 (ja) * 2013-10-29 2017-05-17 株式会社日立製作所 計算機システム、及びデータ配置制御方法
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
US9311233B2 (en) 2013-12-12 2016-04-12 International Business Machines Corporation Load-through fault mechanism
US9135184B2 (en) 2013-12-12 2015-09-15 International Business Machines Corporation Load-through fault mechanism
US10031869B1 (en) 2014-03-28 2018-07-24 Adesto Technologies Corporation Cached memory structure and operation
US9569459B1 (en) * 2014-03-31 2017-02-14 Amazon Technologies, Inc. Conditional writes at distributed storage services
WO2015162752A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 データベース演算部を備えるフラッシュモジュール、及びストレージ装置
US9600409B2 (en) * 2014-08-29 2017-03-21 EMC IP Holding Company LLC Method and system for garbage collection in a storage system based on longevity of stored data
CN104461964B (zh) * 2014-12-12 2017-03-15 杭州华澜微电子股份有限公司 一种存储装置
CN105786401A (zh) * 2014-12-25 2016-07-20 中国移动通信集团公司 服务器集群系统中的数据管理方法及装置
JP6367704B2 (ja) * 2014-12-25 2018-08-01 株式会社バイオス 記憶制御システム及び記憶制御装置
TWI553477B (zh) * 2015-06-12 2016-10-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US10324832B2 (en) 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US20170052889A1 (en) * 2015-08-17 2017-02-23 Strato Scale Ltd. Cache-aware background storage processes
US9880770B2 (en) * 2015-09-02 2018-01-30 SK Hynix Inc. Supporting invalidation commands for non-volatile memory
US10162526B2 (en) * 2015-10-20 2018-12-25 Micron Technology, Inc. Logical address history management in memory device
KR20170051563A (ko) * 2015-10-29 2017-05-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170053278A (ko) * 2015-11-06 2017-05-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP6414853B2 (ja) * 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
KR20170075359A (ko) * 2015-12-23 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 콘트롤러의 동작 방법
KR20170081118A (ko) * 2015-12-30 2017-07-11 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
US10140057B2 (en) * 2016-02-18 2018-11-27 Micron Technology, Inc. Apparatuses and methods for multiple address registers for a solid state device
JP6448570B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US9936019B2 (en) 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
GB2542646B (en) * 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
KR101923661B1 (ko) * 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
CN105930500A (zh) * 2016-05-06 2016-09-07 华为技术有限公司 数据库系统中事务恢复的方法与数据库管理系统
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
WO2017209813A1 (en) * 2016-05-31 2017-12-07 Sandisk Technologies Llc Systems and methods for performing adaptive host memory buffer caching of transition layer tables
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US10430081B2 (en) * 2016-06-28 2019-10-01 Netapp, Inc. Methods for minimizing fragmentation in SSD within a storage system and devices thereof
CN107797759B (zh) * 2016-09-05 2021-05-18 北京忆恒创源科技有限公司 访问缓存信息的方法、装置与驱动器
US10133667B2 (en) 2016-09-06 2018-11-20 Orcle International Corporation Efficient data storage and retrieval using a heterogeneous main memory
US11216396B2 (en) * 2016-09-29 2022-01-04 Intel Corporation Persistent memory write semantics on PCIe with existing TLP definition
CN106569742B (zh) * 2016-10-20 2019-07-23 华为技术有限公司 存储管理方法及存储设备
US10459644B2 (en) * 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
CN109416656B (zh) * 2016-10-31 2023-08-11 拉姆伯斯公司 混合存储器模块
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10318423B2 (en) * 2016-12-14 2019-06-11 Macronix International Co., Ltd. Methods and systems for managing physical information of memory units in a memory device
US10445261B2 (en) * 2016-12-30 2019-10-15 Intel Corporation System memory having point-to-point link that transports compressed traffic
US10325108B2 (en) * 2016-12-30 2019-06-18 Intel Corporation Method and apparatus for range based checkpoints in a storage device
CN106776373B (zh) * 2017-01-12 2020-10-16 合肥速显微电子科技有限公司 一种面向移动设备的基于闪存的高速缓存系统及方法
KR20180087925A (ko) * 2017-01-25 2018-08-03 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
CN106897231B (zh) * 2017-02-28 2021-01-12 苏州浪潮智能科技有限公司 一种基于高性能存储介质的数据缓存方法及系统
US10126964B2 (en) * 2017-03-24 2018-11-13 Seagate Technology Llc Hardware based map acceleration using forward and reverse cache tables
US10545664B2 (en) * 2017-04-11 2020-01-28 Samsung Electronics Co., Ltd. System and method for identifying SSDs with lowest tail latencies
CN108733584B (zh) * 2017-04-17 2022-07-19 伊姆西Ip控股有限责任公司 用于优化数据缓存的方法和设备
US11175853B2 (en) * 2017-05-09 2021-11-16 Samsung Electronics Co., Ltd. Systems and methods for write and flush support in hybrid memory
US10922287B2 (en) * 2017-05-24 2021-02-16 Cisco Technology, Inc. Intelligent layout of composite data structures in tiered storage
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
KR102458312B1 (ko) * 2017-06-09 2022-10-24 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
CN107577492A (zh) * 2017-08-10 2018-01-12 上海交通大学 加速文件系统读写的nvm块设备驱动方法及系统
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
KR20190033284A (ko) * 2017-09-21 2019-03-29 삼성전자주식회사 PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10379948B2 (en) * 2017-10-02 2019-08-13 Western Digital Technologies, Inc. Redundancy coding stripe based on internal addresses of storage devices
US10474528B2 (en) * 2017-10-02 2019-11-12 Western Digital Technologies, Inc. Redundancy coding stripe based on coordinated internal address scheme across multiple devices
FR3072476A1 (fr) * 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
US10545823B2 (en) 2017-10-13 2020-01-28 Cisco Technology, Inc. Accelerating erasure code replication in distributed systems
US10915516B2 (en) 2017-10-18 2021-02-09 Cisco Technology, Inc. Efficient trickle updates in large databases using persistent memory
US10437476B2 (en) 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
KR102418856B1 (ko) * 2017-11-02 2022-07-07 삼성전자주식회사 데이터 저장 장치
KR102565895B1 (ko) * 2017-11-13 2023-08-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20190054730A (ko) * 2017-11-14 2019-05-22 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10678703B2 (en) 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US10489069B2 (en) * 2017-11-29 2019-11-26 International Business Machines Corporation Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
TWI692690B (zh) 2017-12-05 2020-05-01 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US10691671B2 (en) 2017-12-21 2020-06-23 Cisco Technology, Inc. Using persistent memory to enable consistent data for batch processing and streaming processing
KR102504368B1 (ko) * 2017-12-22 2023-02-24 에스케이하이닉스 주식회사 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치
CN108255426B (zh) * 2017-12-29 2021-04-20 深圳忆联信息系统有限公司 一种ssd硬盘的数据处理方法和装置
CN107918530A (zh) * 2018-01-12 2018-04-17 江苏华存电子科技有限公司 一种非易失性存储器的磨损均衡方法和装置
JP2019133391A (ja) * 2018-01-31 2019-08-08 東芝メモリ株式会社 メモリシステムおよび制御方法
US10635523B2 (en) 2018-02-23 2020-04-28 International Business Machines Corporation Fast recovery from failures in a chronologically ordered log-structured key-value storage system
US10642680B2 (en) 2018-02-23 2020-05-05 International Business Machines Corporation Chronologically ordered log-structured key-value store from failures during garbage collection
US10783073B2 (en) * 2018-02-23 2020-09-22 International Business Machines Corporation Chronologically ordered out-of-place update key-value storage system
CN110321057B (zh) * 2018-03-28 2024-08-02 北京忆恒创源科技股份有限公司 具有增强io性能确定性的缓存的存储设备
KR102098240B1 (ko) * 2018-05-16 2020-04-08 주식회사 디에이아이오 비휘발성 메모리 시스템
US10678699B2 (en) 2018-07-26 2020-06-09 Cisco Technology, Inc. Cascading pre-filter to improve caching efficiency
US10871921B2 (en) * 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10592427B2 (en) * 2018-08-02 2020-03-17 Micron Technology, Inc. Logical to physical table fragments
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
CN110895445B (zh) * 2018-09-12 2021-09-14 华为技术有限公司 数据处理方法和系统
KR20200031924A (ko) * 2018-09-17 2020-03-25 삼성전자주식회사 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 스토리지 장치
US10691592B2 (en) 2018-10-30 2020-06-23 Micron Technology, Inc. Error-checking in namespaces on storage devices using a namespace table and metadata
CN109614035A (zh) * 2018-11-01 2019-04-12 郑州云海信息技术有限公司 一种支持解决服务器存储介质序列灵活配置的方法与系统
KR102567108B1 (ko) * 2018-11-05 2023-08-14 삼성전자주식회사 데이터 스토리지 디바이스 및 데이터 스토리지 시스템
US10970228B2 (en) * 2018-12-14 2021-04-06 Micron Technology, Inc. Mapping table compression using a run length encoding algorithm
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US11822489B2 (en) * 2018-12-21 2023-11-21 Micron Technology, Inc. Data integrity protection for relocating data in a memory system
US11175850B2 (en) * 2019-01-03 2021-11-16 Toshiba Memory Corporation Selective erasure of data in a SSD
KR20200100956A (ko) * 2019-02-19 2020-08-27 에스케이하이닉스 주식회사 메모리 시스템의 맵 데이터 관리 방법 및 장치
EP3893119B1 (en) * 2019-02-21 2023-07-26 Huawei Technologies Co., Ltd. System on chip, routing method for access command and terminal
US11263149B2 (en) * 2019-02-26 2022-03-01 Marvell Asia Pte, Ltd. Cache management of logical-physical translation metadata
CN109918352B (zh) * 2019-03-04 2021-11-05 北京百度网讯科技有限公司 存储器系统和存储数据的方法
KR20200106739A (ko) * 2019-03-05 2020-09-15 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US11226904B2 (en) * 2019-04-26 2022-01-18 Hewlett Packard Enterprise Development Lp Cache data location system
US11237953B2 (en) * 2019-05-21 2022-02-01 Micron Technology, Inc. Host device physical address encoding
US11036431B2 (en) * 2019-06-26 2021-06-15 International Business Machines Corporation Accessing persistent memory via load and store
US11194582B2 (en) * 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US10977189B2 (en) * 2019-09-06 2021-04-13 Seagate Technology Llc Reducing forward mapping table size using hashing
CN112764670A (zh) * 2019-11-04 2021-05-07 深圳宏芯宇电子股份有限公司 闪存设备及闪存管理方法
US11157193B2 (en) * 2019-12-16 2021-10-26 Micron Technology, Inc. Coherency issue resolution in logical to physical page translation in a memory sub-system
CN111338989B (zh) * 2020-02-12 2021-01-12 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
US11392509B2 (en) * 2020-08-18 2022-07-19 PetaIO Inc. Command memory buffer systems and methods
US11704030B2 (en) 2021-07-16 2023-07-18 Vmware, Inc. Resiliency and performance for cluster memory
US11698760B2 (en) 2021-07-16 2023-07-11 Vmware, Inc. Copy and restore of page in byte-addressable chunks of cluster memory
US11687286B2 (en) 2021-07-16 2023-06-27 Vmware, Inc. Resiliency and performance for cluster memory
US11914469B2 (en) 2021-07-16 2024-02-27 Vmware, Inc. Resiliency and performance for cluster memory
CN113536075B (zh) * 2021-07-20 2024-06-04 锐掣(杭州)科技有限公司 数据提取方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1991790A (zh) * 2005-12-27 2007-07-04 三星电子株式会社 使用非易失性存储器作为高速缓存器的存储设备及其方法
TW200809495A (en) * 2006-06-08 2008-02-16 Bitmicro Networks Inc Hybrid multi-tiered caching storage system
CN101499036A (zh) * 2008-01-30 2009-08-05 株式会社东芝 信息存储设备及其控制方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3358655B2 (ja) * 1998-12-22 2002-12-24 日本電気株式会社 ディスクアレイ装置におけるキャッシュメモリ管理方法
US20070204107A1 (en) * 2004-02-24 2007-08-30 Analog Devices, Inc. Cache memory background preprocessing
US7594067B2 (en) * 2005-10-20 2009-09-22 Stec, Inc. Enhanced data access in a storage device
US7610458B2 (en) * 2006-04-25 2009-10-27 International Business Machines Corporation Data processing system, processor and method of data processing that support memory access according to diverse memory models
US7506098B2 (en) * 2006-06-08 2009-03-17 Bitmicro Networks, Inc. Optimized placement policy for solid state storage devices
WO2007146845A2 (en) * 2006-06-08 2007-12-21 Bitmicro Networks, Inc. Configurable and scalable hybrid multi-tiered caching storage system
US7484073B2 (en) * 2006-07-12 2009-01-27 Microsoft Corporation Tagged translation lookaside buffers in a hypervisor computing environment
US7685401B2 (en) * 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
US20100185806A1 (en) * 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk
US8583893B2 (en) * 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1991790A (zh) * 2005-12-27 2007-07-04 三星电子株式会社 使用非易失性存储器作为高速缓存器的存储设备及其方法
TW200809495A (en) * 2006-06-08 2008-02-16 Bitmicro Networks Inc Hybrid multi-tiered caching storage system
CN101499036A (zh) * 2008-01-30 2009-08-05 株式会社东芝 信息存储设备及其控制方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853223B2 (en) 2019-02-13 2023-12-26 Google Llc Caching streams of memory requests

Also Published As

Publication number Publication date
US9003159B2 (en) 2015-04-07
US20110082967A1 (en) 2011-04-07
WO2011044154A1 (en) 2011-04-14
CN102576333A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
CN102576333B (zh) 非易失性存储器中的数据高速缓存
US9256527B2 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US8688894B2 (en) Page based management of flash storage
US10802987B2 (en) Computer processor employing cache memory storing backless cache lines
US9378131B2 (en) Non-volatile storage addressing using multiple tables
Jiang et al. S-FTL: An efficient address translation for flash memory by exploiting spatial locality
US8935484B2 (en) Write-absorbing buffer for non-volatile memory
CN101937319B (zh) 存储器系统及其映射方法
KR100772863B1 (ko) 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
CN100392620C (zh) 用于存储器管理的系统和方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN104484283B (zh) 一种降低固态硬盘写放大的方法
CN111007991B (zh) 基于nvdimm分离读写请求的方法及其计算机
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN108628772A (zh) 用于管理数据存储设备中的映射数据的装置和方法
US20150074355A1 (en) Efficient caching of file system journals
CN107797759B (zh) 访问缓存信息的方法、装置与驱动器
JP2015535116A (ja) アドレス断片化に対するメモリ・セグメントのリマッピング
CN104102591A (zh) 计算机子系统及在其中实现闪存转换层的方法
KR20120090965A (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
CN107797760B (zh) 一种访问缓存信息的方法、装置与固态驱动器
US10635581B2 (en) Hybrid drive garbage collection
CN106502587A (zh) 磁盘数据管理方法和磁盘控制装置
CN103942161A (zh) 只读缓存的去冗余系统及方法以及缓存的去冗余方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200509

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200509

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200509

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right