CN108984429A - 具有缓冲器占有期管理的数据存储设备 - Google Patents

具有缓冲器占有期管理的数据存储设备 Download PDF

Info

Publication number
CN108984429A
CN108984429A CN201810541064.0A CN201810541064A CN108984429A CN 108984429 A CN108984429 A CN 108984429A CN 201810541064 A CN201810541064 A CN 201810541064A CN 108984429 A CN108984429 A CN 108984429A
Authority
CN
China
Prior art keywords
buffer
data
manager
occupy
storage device
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
Application number
CN201810541064.0A
Other languages
English (en)
Other versions
CN108984429B (zh
Inventor
J·埃利斯
J·蒙希尔
T·卡内帕
S·汉纳
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN108984429A publication Critical patent/CN108984429A/zh
Application granted granted Critical
Publication of CN108984429B publication Critical patent/CN108984429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明题为“具有缓冲器占有期管理的数据存储设备”。本发明提供了一种数据存储设备,该数据存储设备具有一个或多个缓冲器,该数据存储设备可利用具有第一缓冲器、第二缓冲器、缓冲器管理器以及非易失性存储器的至少一个数据存储设备采用缓冲器占有期管理。所述第一缓冲器可位于芯片上,而所述第二缓冲器位于芯片外。所述第一缓冲器可根据所述缓冲器管理器的引导利用数据来填充,所述数据具有小于预定占有期阈值的占有期。

Description

具有缓冲器占有期管理的数据存储设备
发明内容
在一些实施方案中,数据存储设备具有数据存储设备,该数据存储设备具有第一缓冲器、第二缓冲器、缓冲器管理器以及非易失性存储器。第一缓冲器位于芯片上,而第二缓冲器位于芯片外。根据作为缓冲器占有期管理的一部分的缓冲器管理器的引导,第一缓冲器利用数据来填充,所述数据具有小于预定占有期阈值的占有期。
附图说明
图1是根据各种实施方案布置的示例性数据存储系统的框图。
图2显示了能够用于图1的数据存储系统的示例性数据存储设备的部分的框图。
图3示出了根据一些实施方案构造和操作的一些示例性数据存储系统的框图。
图4描绘了用于图3的数据存储系统的示例性数据存储设备的一部分的框图。
图5示出了用于图3的数据存储系统的示例数据存储设备的一部分。
图6A至图6C分别示出了根据各种实施方案操作的示例性数据存储设备的不同框图。
图7表示用于图3的数据存储系统的示例性数据存储设备的一部分。
图8提供了根据各种实施方案执行的示例性缓冲器占有期管理例程的流程图。
具体实施方式
各种实施方案通常针对具有缓冲器管理的数据存储系统,该缓冲器管理基于与来自主机的写入请求对应的写入数据的实际和/或预测占有期。
随着计算设备日益普及并且越来越强大,生成、传输和存储的数据量也与日俱增。各种不同类型的数据存储器已经发展到能够适应更快速地将数据传输到数据存储系统并且从数据存储系统传输数据。然而,不同类型的数据存储器具有不同的物理和性能特性,这使得难以利用单一类型的数据存储器为数据存储系统提供服务。因此,当管理利用多种不同类型的数据存储器传输和存储数据时,存在瓶颈和低效率问题。
因此,一些实施方案提供了基于预测和/或实际数据占有期在不同类型的数据存储器之间智能地引导数据的缓冲器管理器。选择性地利用多种不同类型的数据存储器的能力允许数据存储系统通过利用相应类型的存储器的高效特性来优化数据传输和存储性能。
转到附图,图1显示了可在其中实施各种实施方案的示例性数据存储系统100的框图。数据存储系统100可以采用任何数量的数据存储设备102,该数据存储设备可以是类似的或相异的设备类型,诸如固态、旋磁或混合驱动器。一个或多个主机104可以经由至少一个网络控制器106(经由有线和/或无线网络连接)同时地、顺序地或选择性地访问数据存储设备102。需注意,网络控制器106可以是硬件实现诸如服务器或卡,或者是软件实现诸如虚拟机。
如分段线所示,第二数据存储设备108可结合到数据存储系统100中以提供比单个数据存储设备102更大的数据容量。添加一个或多个数据存储设备108可进一步允许增强的数据保护和安全,诸如将奇偶校验数据分条、镜像和存储为独立设备的冗余阵列(RAID)。虽然不要求或加以限制,但是数据存储设备102/108可以由本地控制器110(诸如微处理器或可编程控制器)、非易失性存储器112(诸如固态类型)、至少一个缓冲器114(诸如易失性存储器)以及高速缓存116(诸如易失性存储器)组成。
在多个主机102能够访问相对较大的数据容量的情况下,尤其是在RAID系统配置中,大量数据可由相应的数据存储设备102/108同时地且顺序地处理。当分配给非易失性存储器112的数据在被处理时暂存于缓冲器114或高速缓存116中时,这样的大量数据可能经历性能瓶颈。也就是说,一些非易失性存储器112诸如NAND闪存不是字节或位可寻址的,并且不能就地写入,这在编译数据映射、多个数据扇区的映射单元以及存储器112的垃圾收集部分中产生低效率。
图2传达了可用于图1的数据存储系统100的示例数据存储设备120的部分的框图。数据存储设备120可以包括与连接的本地控制器110一起驻留在晶圆芯片124中的第一易失性缓冲存储器122,诸如静态随机存取存储器。
晶圆芯片124的硅材料中的第一易失性缓冲存储器122的物理构造可被表征为“片上”,而仅经由一个或多个互连与芯片124互连(诸如第二易失性缓冲存储器126)可被表征为“片外”。换句话讲,从晶圆芯片124的硅材料中形成第一易失性缓冲存储器122的各方面意味着存储器122在芯片上并连接到芯片124,而不由晶圆材料构成意味着第二存储器126在芯片外。
至少部分地由于较少的接口和缓冲器以及抑制片外第二易失性缓冲存储器126的降低的时钟频率限制,片上第一易失性缓冲存储器122的构造提供了更快的数据传输和更低的数据延迟。片上第一易失性缓冲存储器122的更快能力在晶圆芯片124上的可用空间方面代价昂贵,这导致存储器122的数据容量更小。因此,数据存储设备120采用第一易失性缓冲存储器122和第二易失性缓冲存储器124两者临时将与数据写入请求相关联的数据存储到非易失性存储器112。
然而,缓冲器管理有史以来一直没有得到发展并且仅加剧了与将大量数据写入到非易失性存储器112相关联的性能瓶颈。例如,先进先出缓冲器管理方案可以利用数据来填充更快的第一缓冲存储器122,这将花费相当长的时间来处理并且/或者写入存储器112。又如,顺序地将数据写入到较大容量的第二缓冲存储器126然后写入到更快的第一缓冲存储器122导致了第二缓冲存储器126的延迟降低可由第一缓冲存储器122处理的写入数据的性能。
这些问题以及其他问题使得各种实施方案提供了数据存储系统,该数据存储系统智能管理多种不同类型的缓冲器以服务与未决写入请求相关联的数据。图3示出了其中可以采用本公开的各种实施方案的示例性数据存储系统140的部分的框图。数据存储系统140具有与数据存储设备142进行通信的任何数量的本地或远程主机104。此类通信可对应于网络控制器、交换机和其他上游网络分布硬件和/或软件。
与简单地根据静态固件代码存储在缓冲器中不同,基于在相应的缓冲器122/126中写入数据的生成的实际和/或预测的占有期,缓冲器管理器144可以提供从片上第一缓冲器122和片外第二缓冲器124中选择的自适应智能。值得注意的是,“占有期”应理解为与写请求相关联的数据保持在缓冲器122/126中的时间,而不管写入非易失性存储器112的时间。也就是说,数据占有期可被表征为在被删除之前数据保持在缓冲器122/126中的时间量,诸如在数据被写入非易失性存储器112之后很长时间经由垃圾收集。
根据一些实施方案,缓冲器管理器144评估传入的写入请求并且生成对应于缓冲器122/126目的地的数据占有期值,该目的地优化数据存储性能并且最小程度地影响数据写入请求的服务。此类智能评估可使得缓冲器管理器144主动地将数据引导至相应的缓冲器122/126之间并且响应于系统140的操作条件。
图4表示可用于图3的数据存储系统140的示例缓冲器系统150的一部分。缓冲系统150可以位于数据存储设备102/142的外壳内,并且可以设想,数据存储系统100/140的每个数据存储设备具有单独的缓冲器管理器152,该缓冲器管理器包括定时器154、软件算法156、日志158和预测模块160。可以设想,多个单独的缓冲器管理器152可以利用共同的系统硬件和/或软件,无论其具有或不具有容纳在数据存储设备外壳内的定时器154、算法156、日志158和预测模块160。
缓冲器管理器152可以接收来自数据存储系统内部或外部的一个或多个源的任何数量的系统、写入数据和模型参数。然而,一些实施方案顺序地或同时地接收与未决写入请求、系统性能度量、建模系统活动和当前系统活动相关的信息。未决写入请求信息可涉及容量、位置、范围、分配的逻辑块地址(LBA)以及分配的物理块地址(PBA)。系统性能度量可包括系统延迟、错误率、缓冲器可用容量、非易失性存储器可用容量以及数据访问请求满意度阈值。
建模活动可以是随时间推移先前服务的数据访问请求和/或计算机生成的假设的数据访问请求的系统服务。当前活动可以涉及已经得到了服务的实际数据访问请求的位置、持续时间和延迟以及向数据存储系统发出的未决数据访问请求的数量和大小。
通过输入此类多样化系统信息以及建模性能信息,缓冲器管理器152将准确理解数据存储系统的当前状态,并且可以智能地响应于具有优化系统性能的缓冲器目的地的未决数据写入请求。也就是说,缓冲器管理器152可以利用数据访问请求的过去服务的算法156和日志158来为未决数据写入请求生成缓冲器占有期值。例如,缓冲器管理器152可以识别未决写入请求将具有大于预定阈值的占有期值,该占有期值对应于可能长期保持在缓冲器中的写入请求。
利用缓冲器管理器152生成缓冲器占有期值的能力通过基于变化的系统条件调整数据的缓冲器位置的能力来补充。作为非限制性示例,缓冲器占有期值最初可能低于阈值,但是数据在缓冲器中保持太久,如由定时器154所识别的那样,这触发缓冲器管理器152移动并替换快速数据缓冲器中的数据。因此,缓冲器管理器152可以提供对数据存储系统的主动和反应性评估,该评估允许与数据写入请求的数据相关的连续且可能改变的决定和动作。
图5传达了示例数据存储系统170的一部分的框图,其中缓冲器管理器172可引导数据读取操作。需注意,尽管不同的参考标号用于缓冲器管理器,但是缓冲器管理器172可具有图3至图4中所讨论的管理器144/152的任何、全部特性和能力或者不具有任何特性和能力。缓冲器管理器172可以连接到一个或多个片上缓冲器174诸如SRAM,以及一个或多个片外缓冲器176,诸如双数据速率(DDR)DRAM。
传入数据写入请求178可由缓冲器管理器172评估,该缓冲器管理器随后生成对应于缓冲器目的地的缓冲器占有期值。如箭头180所示,写入请求的数据可以从片外缓冲器176写入非易失性存储器112,或者从片上缓冲器174写入非易失性存储器112,如箭头182所示。尽管单次写入操作可能足以将写入请求的所有数据移动到存储器112中,但可以设想,非易失性存储器112包括多级单元,诸如三比特(TLC)或四比特(QLC)单元,这需要多个单独的写入操作来完成数据传输。多级单元的写入可能涉及由缓冲器管理器172引导至更慢的片外缓冲器176而不是片上缓冲器174的回读数据,使得片上缓冲器可以接收并服务新的写入请求数据。
缓冲器管理器172可以主动地或反应性地评估来自非易失性存储器112的回读数据,所述操作出于任何原因发生以将回读数据引导至最佳服务数据的缓冲器而不会降低系统性能。这样,缓冲器管理器172可生成针对由执行写入访问请求引起的实际或预测回读数据的缓冲器占有期值。
图6A至图6C分别描绘了由作为分布式网络数据存储系统的一部分的数据存储设备随时间推移执行的非限制性操作的框图。图6A示出了序列190,其中在步骤192中缓冲器管理器接收到写入访问请求。缓冲器管理器在时间194处理请求,并且生成对应于在步骤196中分配的缓冲器的实际和/或预测缓冲器占有期值。
在缓冲器占有期值小于性能阈值(诸如1分钟、10微秒或10纳秒)的情况下,步骤198继续将写入请求的数据写入片上SRAM缓冲器。可以设想,在步骤198中将数据写入缓冲器立即安排将数据写入数据存储设备的非易失性存储器。然而,步骤200中事件的发生可触发缓冲器管理器在步骤202中将数据逐出到更慢的片外缓冲器。步骤200的事件不限于特定实例,但是可以是改变系统参数、接收其他优先级更高的写入请求,或者比预期的非易失性存储器性能更慢。
图6B的序列210示出了在步骤196的缓冲器分配之后并且在将数据写入缓冲器之前事件212可以如何发生。在步骤214中,事件212可以改变缓冲器占有期值或换句话讲使得缓冲器管理器将数据请求的数据发送到片外DRAM。在步骤216中,在缓冲器管理器提示将数据移动到SRAM片上缓冲器之前,数据可以驻留在片外缓冲器中任何时间量。触发数据从DRAM到SRAM的移动可被认为是可以与事件212类似或相异的第二事件。
将写入请求数据存储在片上缓冲器中允许步骤218写入以将数据快速写入到非易失性存储器。因此,缓冲器管理器适应多个事件,并且以最佳方式将数据从片上SRAM而不是从片外DRAM写入到非易失性存储器。缓冲器管理器将一些或全部未决写入数据存储到片外缓冲器的能力允许数据存储系统保持片上缓冲器充满未决写入数据,这对应于使用诸如NAND闪存的固态非易失性存储器的数据存储设备可能的最快写入请求满意度。
图6C示出了序列220,其中一个或多个事件222在缓冲器管理器分配缓冲器之前或在这期间发生。一个或多个事件222可以触发缓冲器管理器将先前生成的缓冲器占有期值和/或缓冲器分配改变为步骤224的分配,该步骤指定在步骤226处将写入数据写入片外DRAM和在步骤228处将写入数据写入片上SRAM。在步骤226和228中,缓冲器管理器可将写入数据分为在缓冲器之间分割的子扇区。在一些实施方案中,在步骤226和228中,写入数据被镜像或分条到两个缓冲器,这允许从SRAM逐出比将数据保持在SRAM中更有效,直到在逐出期间将数据成功写入到DRAM,诸如在步骤202中。
在步骤230中,在一个或两个缓冲器中存在数据允许将数据有效地写入非易失性存储器。利用图6A至图6C的各种非限制性实施方案,大致示出了缓冲器管理器的自适应能力。然而,序列190、210和220的实施方案不是穷尽的,并且缓冲器管理器可以以任何方式适应一个或多个遭遇的事件,以优化到数据存储设备的非易失性存储器的数据写入带宽。因此,大量的数据写入请求可以通过分布式数据存储系统网络的单独数据存储设备以智能方式或以不同的方式处理。
通过缓冲器管理器的各种实施方案,可以识别并有效地处理动态事件而不会降低系统性能。例如,动态事件可以是导致数据路径阻塞和/或瓶颈的错误。另一个非限制性实例可涉及寻址冲突,该寻址冲突会降低数据访问请求的服务而无需缓冲器管理器移动或将数据重新路由到各种连接的存储器。将被错误阻塞的数据动态重新路由到长占有期存储器的一个动机是保留短(快速路径)占有期存储器服务未被阻塞的数据的能力,诸如另一主机接口或其他虚拟存储设备的数据。
在发生寻址冲突的情况下,诸如在垃圾收集操作期间,读取跨越闪存页面的映射单元,算法156可能不能够释放已被读入存储器中的第一闪存页面,直到全映射单元可用于转移出内存。如果闪存芯片冲突(诸如芯片正忙于对芯片上的另一个页面进行垃圾收集写入或擦除操作),暂时延迟映射单元的后半部分不被读取,则全映射单元以及相关联的第一页面将长时间留在第一存储器中,从而减少用于实现垃圾收集和/或主机操作的给定吞吐量的存储器量。如果闪存安排事先发生,则可以在将第一页面写入存储器之前检测到冲突,并且可以通过缓冲器管理器将数据引导至较长的占有期存储器,从而使短占有期存储器可用于其他操作。
缓冲器管理器的部分智能是预测与未决写入请求相关联的各种特性的能力。图7表示可以执行预测操作的示例性数据存储设备的一部分。如图所示,缓冲器管理器232至少具有预测模块160,该预测模块可以接收未决写入请求状态、系统性能度量、建模系统活动和当前系统活动,以预测与服务写入请求相关联的一个或多个参数。
预测模块160可以单独或与缓冲器管理器的其他方面诸如日志158或算法156一起作用以生成假设请求服务场景,该假设请求服务场景涉及服务诸如持续时间、延迟、错误率和功率消耗的参数。预测模块160可以同时地或者顺序地生成多于一个具有变化的风险状况的请求服务场景。也就是说,预测模块160可评估生成的请求服务场景的准确性和出现的风险。此类风险评估允许模块160选择具有最高准确度和出现风险的情景,其可以对应于高于预定阈值诸如90%的准确性。
不管预测模块160如何到达预测的请求服务场景的服务参数,缓冲器管理器232都可以通过改变用于处理写入请求的预定义固件指令来作出反应。例如,缓冲器管理器232可以设置数据的定制定时器范围,修改写入请求的数据并且/或者将写入数据影射到多个不同的缓冲器。需注意,图7中的缓冲器管理器232的输出反应不是限制性的或穷尽性的,并且缓冲器管理器232可以执行对数据写入请求处理的任何改变,以在服务一个或多个数据写入请求期间优化系统性能,诸如保持小于10纳秒或10微秒的写入请求延迟。
图8是在图1至图8的各种实施方案中实施的执行缓冲器管理例程250的流程图。例程250从步骤252开始,激活作为数据存储系统分布式网络的一部分的一个或多个数据存储设备。每个数据存储设备可由连接到片上第一缓冲器的缓冲器管理器和片外第二缓冲器以及共同的设备外壳内的非易失性存储器组成。可以设想,系统的每个数据存储设备都可由一个或多个远程主机访问。
在步骤254中,从至少一个主机接收到一个或多个数据写入请求。在写入缓冲器或非易失性存储器之前,步骤256评估未决写入请求的数据以生成缓冲器占有期值。在一些实施方案中,数据被写入驻留在网络控制器中的高速缓存存储器或数据存储设备本身,而步骤256处理该写入请求以提供缓冲器占有期值和缓冲器目的地。
然后,由缓冲器管理器根据当前数据存储系统性能针对由缓冲器管理器生成的阈值来评估所生成的缓冲器占有期值。也就是说,缓冲器管理器可连续地或偶尔评估数据存储设备和/或系统的性能,以生成对应于最佳数据写入请求服务的缓冲器占有期值的阈值。判定258将来自步骤256的缓冲器占有期值与占有期阈值进行比较。如果占有期值大于阈值,意味着写入请求的数据将驻留在缓冲器上超过阈值分配时间,例程250前进到步骤260,在该步骤中,数据写入请求的数据被写入到片外第二缓冲器。
在结束步骤260处,或者如果缓冲器占有期值低于判定258的阈值,则判定262继续评估片上第一缓冲器是否被待写入非易失性存储器的数据充满。如果是,则数据被写入片外第二缓冲器。在第一缓冲器未充满的情况下,步骤266将数据写入片上第一缓冲器。在判定262中确定片上第一缓冲器是否充满数据确保了在将数据写入更慢的片外第二缓冲器之前更快的第一缓冲器已满。
来自步骤264或266的驻留在第一缓冲器或第二缓冲器中的数据允许缓冲器管理器在步骤268中有效地安排将数据写入数据存储设备的非易失性存储器。方便地安排将数据从相应的缓冲器写入非易失性存储器而不必写入数据的能力允许缓冲器管理器优化保持完整SRAM片上缓冲器的数据写入请求的带宽。
应当理解,即使在前述描述中已经阐述了本公开的各种实施方案的许多特征和配置,以及各种实施方案的结构和功能的细节,但该详细描述也仅仅是示例性的,并且可在表述所附权利要求的术语的广泛一般意义所指示的最大程度上,尤其是在本公开的原理内对部件的结构和布置方式做细节改变。例如,在不脱离本技术的精神和范围的情况下,具体元件可根据具体应用而变化。

Claims (20)

1.一种装置,所述装置包括数据存储设备,所述数据存储设备具有第一缓冲器、第二缓冲器、缓冲器管理器以及非易失性存储器,所述第一缓冲器位于芯片上,所述第二缓冲器位于芯片外,所述第一缓冲器根据所述缓冲器管理器的引导利用数据来填充,所述数据具有小于预定占有期阈值的占有期。
2.根据权利要求1所述的装置,其中所述第一缓冲器是静态随机存取存储器。
3.根据权利要求1所述的装置,其中所述第二缓冲器是动态随机存取存储器。
4.根据权利要求1所述的装置,其中所述非易失性存储器是NAND闪存。
5.根据权利要求1所述的装置,其中所述第二缓冲器定位在所述数据存储设备的外壳内。
6.一种方法,包括:
激活数据存储设备,所述数据存储设备具有第一缓冲器、第二缓冲器、缓冲器管理器以及非易失性存储器,所述第一缓冲器位于芯片上,所述第二缓冲器位于芯片外;
利用所述缓冲器管理器生成占有期阈值;
响应于所述第一数据扇区超出所述占有期阈值,利用所述缓冲器管理器从所述第一缓冲器中逐出第一数据扇区;以及
根据所述缓冲器管理器的引导将第二数据扇区存储在所述第一缓冲器中,以利用数据来填充所述第一缓冲器,所述数据具有小于所述占有期阈值的占有期。
7.根据权利要求6所述的方法,其中所述占有期阈值与所述第二缓冲器的延迟速度匹配。
8.根据权利要求6所述的方法,其中所述缓冲器管理器将所述第一数据扇区逐出到所述第二缓冲器。
9.根据权利要求6所述的方法,其中所述第二数据扇区随后被写入所述非易失性存储器。
10.根据权利要求6所述的方法,其中基于算法、当前数据存储设备活动、数据存储设备过往性能以及未决写入请求量来生成所述占有期阈值。
11.根据权利要求6所述的方法,其中所述缓冲器管理器将来自所述非易失性存储器的回读数据存储在所述第二缓冲器中而不将所述回读数据存储在所述第一缓冲器中。
12.根据权利要求6所述的方法,其中所述缓冲器管理器通过将所述第二数据扇区从所述第一缓冲器重新路由到所述第二缓冲器来对动态事件作出反应。
13.根据权利要求12所述的方法,其中所述动态事件是与数据存储设备性能的降低相对应的数据错误。
14.根据权利要求12所述的方法,其中所述动态事件是与数据存储设备性能的降低相对应的寻址冲突。
15.一种方法,包括:
激活数据存储设备,所述数据存储设备具有第一缓冲器、第二缓冲器、缓冲器管理器以及非易失性存储器,所述第一缓冲器位于芯片上,所述第二缓冲器位于芯片外;
利用所述缓冲器管理器生成占有期阈值;
利用所述缓冲器管理器预测第一数据扇区的占有期;
响应于所述预测的占有期大于所述占有期阈值,将所述第一数据扇区存储在所述第二缓冲器中;
利用所述缓冲器管理器预测第二数据扇区的占有期;
响应于所述第三数据扇区超出所述占有期阈值,利用所述缓冲器管理器从所述第一缓冲器中逐出第三数据扇区;以及
根据所述缓冲器管理器的引导将所述第二数据扇区存储在所述第一缓冲器中,以利用数据来填充所述第一缓冲器,所述数据具有小于所述占有期阈值的占有期。
16.根据权利要求15所述的方法,其中所述缓冲器管理器响应于预测模块评估所述第二数据扇区而设置定制定时器。
17.根据权利要求16所述的方法,其中所述定制计时器不同于所述占有期阈值。
18.根据权利要求15所述的方法,其中所述缓冲器管理器响应于所述第二数据扇区的所述预测的占有期来改变所述第二数据扇区。
19.根据权利要求18所述的方法,其中所述缓冲器管理器将所述第二数据扇区分割成第一子扇区和第二子扇区,所述第一子扇区存储在所述第一缓冲器中,所述第二子扇区存储在所述第二缓冲器中。
20.根据权利要求15所述的方法,其中所述缓冲器管理器在每个预测步骤期间预测至少一个数据存储设备性能度量。
CN201810541064.0A 2017-05-30 2018-05-30 具有缓冲器占有期管理的数据存储设备 Active CN108984429B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/608,203 US10248330B2 (en) 2017-05-30 2017-05-30 Data storage device with buffer tenure management
US15/608,203 2017-05-30

Publications (2)

Publication Number Publication Date
CN108984429A true CN108984429A (zh) 2018-12-11
CN108984429B CN108984429B (zh) 2023-07-28

Family

ID=64459939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810541064.0A Active CN108984429B (zh) 2017-05-30 2018-05-30 具有缓冲器占有期管理的数据存储设备

Country Status (4)

Country Link
US (1) US10248330B2 (zh)
JP (1) JP2018206380A (zh)
KR (1) KR102095471B1 (zh)
CN (1) CN108984429B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022183308A1 (en) * 2021-03-01 2022-09-09 Micron Technology, Inc. Two-stage buffer operations supporting write commands

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776023B2 (en) * 2016-11-07 2020-09-15 Gaea LLC Data storage device with configurable policy-based storage device behavior
JP2019046238A (ja) * 2017-09-04 2019-03-22 東芝メモリ株式会社 メモリシステム
KR102507302B1 (ko) * 2018-01-22 2023-03-07 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
DE102018005618B4 (de) * 2018-07-17 2021-10-14 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Vorrichtung zur gepufferten Übertragung von Daten
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11237730B2 (en) 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
KR102407263B1 (ko) * 2019-08-09 2022-06-13 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 이를 통한 가중치 연산 방법
KR102408966B1 (ko) * 2019-08-09 2022-06-15 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
US11449738B2 (en) * 2019-08-09 2022-09-20 Korea Electronics Technology Institute Neuromorphic memory management system and method thereof
US11663144B2 (en) 2020-01-20 2023-05-30 International Business Machines Corporation LRU list reorganization for favored and unfavored volumes

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050041453A1 (en) * 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
CN1940904A (zh) * 2005-09-27 2007-04-04 国际商业机器公司 数据处理系统和方法
CN101042680A (zh) * 2006-03-23 2007-09-26 国际商业机器公司 更新无效一致状态的方法、数据处理系统和高速缓存系统
US20110161552A1 (en) * 2009-12-30 2011-06-30 Lsi Corporation Command Tracking for Direct Access Block Storage Devices
US20120311269A1 (en) * 2011-06-03 2012-12-06 Loh Gabriel H Non-uniform memory-aware cache management
US20130086132A1 (en) * 2011-10-03 2013-04-04 Oracle International Corporation Time-based object aging for generational garbage collectors
US20130086131A1 (en) * 2011-10-03 2013-04-04 Oracle International Corporation Time-based object aging for generational garbage collectors
US20150039824A1 (en) * 2013-08-01 2015-02-05 HGST Netherlands B.V. Implementing enhanced buffer management for data storage devices
CN104487952A (zh) * 2012-05-22 2015-04-01 网络装置公司 用于闪存存储的i/o访问模式专用
US9043530B1 (en) * 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638528A (en) 1993-11-01 1997-06-10 Motorola, Inc. Data processing system and a method for cycling longword addresses during a burst bus cycle
US6397287B1 (en) 1999-01-27 2002-05-28 3Com Corporation Method and apparatus for dynamic bus request and burst-length control
US6425023B1 (en) 1999-03-24 2002-07-23 International Business Machines Corporation Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests
US6556952B1 (en) 2000-05-04 2003-04-29 Advanced Micro Devices, Inc. Performance monitoring and optimizing of controller parameters
DE10309919B4 (de) 2003-03-07 2008-09-25 Qimonda Ag Pufferbaustein und Speichermodule
US7921243B1 (en) 2007-01-05 2011-04-05 Marvell International Ltd. System and method for a DDR SDRAM controller
US7818497B2 (en) 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US7584308B2 (en) 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7925824B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US8949500B2 (en) 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US9569320B2 (en) * 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
US8738882B2 (en) * 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050041453A1 (en) * 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
CN1940904A (zh) * 2005-09-27 2007-04-04 国际商业机器公司 数据处理系统和方法
CN101042680A (zh) * 2006-03-23 2007-09-26 国际商业机器公司 更新无效一致状态的方法、数据处理系统和高速缓存系统
US20110161552A1 (en) * 2009-12-30 2011-06-30 Lsi Corporation Command Tracking for Direct Access Block Storage Devices
US20120311269A1 (en) * 2011-06-03 2012-12-06 Loh Gabriel H Non-uniform memory-aware cache management
US20130086132A1 (en) * 2011-10-03 2013-04-04 Oracle International Corporation Time-based object aging for generational garbage collectors
US20130086131A1 (en) * 2011-10-03 2013-04-04 Oracle International Corporation Time-based object aging for generational garbage collectors
US9043530B1 (en) * 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate
CN104487952A (zh) * 2012-05-22 2015-04-01 网络装置公司 用于闪存存储的i/o访问模式专用
US20150039824A1 (en) * 2013-08-01 2015-02-05 HGST Netherlands B.V. Implementing enhanced buffer management for data storage devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022183308A1 (en) * 2021-03-01 2022-09-09 Micron Technology, Inc. Two-stage buffer operations supporting write commands
US11972109B2 (en) 2021-03-01 2024-04-30 Micron Technology, Inc. Two-stage buffer operations supporting write commands

Also Published As

Publication number Publication date
US10248330B2 (en) 2019-04-02
KR20180131466A (ko) 2018-12-10
JP2018206380A (ja) 2018-12-27
US20180349035A1 (en) 2018-12-06
CN108984429B (zh) 2023-07-28
KR102095471B1 (ko) 2020-03-31

Similar Documents

Publication Publication Date Title
CN108984429A (zh) 具有缓冲器占有期管理的数据存储设备
US8171239B2 (en) Storage management method and system using the same
JP7366795B2 (ja) メモリシステムおよび制御方法
US10466903B2 (en) System and method for dynamic and adaptive interrupt coalescing
TWI421877B (zh) 平衡主機寫入作業和快取清除之方法和系統
CN100470585C (zh) 存储卡和存储卡系统
CN105339910B (zh) 在混合驱动器中的虚拟nand容量扩展
US10642513B2 (en) Partially de-centralized latch management architectures for storage devices
CN110032530A (zh) 用于多级存储器早期页面降级的方法和装置
KR20120030137A (ko) 영구 가비지 컬렉션을 갖는 메모리 시스템
US10929025B2 (en) Data storage system with I/O determinism latency optimization
US20190243578A1 (en) Memory buffer management for solid state drives
CN106469126A (zh) 处理io请求的方法及其存储控制器
CN114746834A (zh) 基于分区状态的分区附加命令调度
CN111538680A (zh) 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流
CN117043753A (zh) Zns设备中的不同写入优先级
US11256621B2 (en) Dual controller cache optimization in a deterministic data storage system
US20220137869A1 (en) System and memory for artificial neural network
CN109388333A (zh) 降低读命令处理延迟的方法与装置
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
US11922051B2 (en) Memory controller, processor and system for artificial neural network
US10564890B2 (en) Runt handling data storage system
US20180314434A1 (en) Nand flash storage device and methods using non-nand storage cache
CN110633226A (zh) 融合存储器、存储系统及深度学习计算方法
KR20220059409A (ko) 인공신경망을 위한 메모리 장치

Legal Events

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