CN107408018B - 用于在固态驱动器中适应垃圾收集资源分配的机制 - Google Patents
用于在固态驱动器中适应垃圾收集资源分配的机制 Download PDFInfo
- Publication number
- CN107408018B CN107408018B CN201680012303.2A CN201680012303A CN107408018B CN 107408018 B CN107408018 B CN 107408018B CN 201680012303 A CN201680012303 A CN 201680012303A CN 107408018 B CN107408018 B CN 107408018B
- Authority
- CN
- China
- Prior art keywords
- workload
- memory
- volatile memory
- allocation
- logic
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
描述了与用于快速适应将到来的I/O(输入/输出)工作负载的垃圾收集资源分配的机制相关的方法和装置。在一个实施例中,非易失性存储器存储与第一工作负载和第二工作负载相对应的数据。在非易失性存储器中一个或多个资源的分配是至少部分地基于一个或多个块的平均有效性的确定而确定的,其中一个或多个候选带将在第一工作负载或第二个工作负载的操作期间被处理。其他实施例也被公开并且被要求保护。
Description
相关申请
本申请要求根据35U.S.C.365(b)的在2015年3月27日提交的美国申请No.14/672,084的权益。所述申请No.14/672,084的全部内容通过引用包含于此。
技术领域
本公开大体上涉及电子的领域。更具体地,一些实施例大体上涉及用于管理固态驱动器(SSD)中的存储器分配的机制。
背景技术
通常,用于将数据存储在计算系统中的存储器可以是易失性的(用于存储易失性信息)或非易失性的(用于存储持久的信息)。存储在易失性存储器中的易失性数据结构通常用于在程序的运行时期间支持程序的功能所需的临时或中间信息。另一方面,存储在非易失性(或持久的)存储器中的持久的数据结构在程序的运行时之外是可用的,并且可以被重复使用。此外,在用户或程序员决定使数据变得持久之前,新数据通常首先被生成作为易失性数据。例如,程序员或用户可以引起由处理器直接可存取的易失性主存储器中的易失性结构的映射(即实例化)。另一方面,持久的数据结构被实例化在非易失性存储设备(如附接到输入/输出(I/O或IO)总线的旋转磁盘)或基于非易失性存储器的设备(如闪存或固态驱动器)上。
附图说明
参考附图来提供详细的描述。在附图中,附图标记的最左边的数字标识其中附图标记首次出现的图像。在不同的附图中使用相同的附图标记指示类似或相似的项目。
图1和图4-图6示出了可以被用于实现本文讨论的各种实施例的计算系统的实施例的框图。
图2A和图2C示出了根据一些实施例的用于计算用于垃圾收集的资源分配的不同方法的框图。
图2B、图2D、图2E和图2F示出了根据一些实施例的样本曲线的图。
图3示出了根据实施例的固态驱动器的各种组件的框图。
具体实施方式
在下面的描述中,阐述了许多具体细节,以便提供对各种实施例的全面的理解。然而,可以在没有具体细节的情况下实施各种实施例。在其他实例中,未详细描述公知的方法、过程、组件和电路,以免使特定实施例难以理解。此外,可以使用以下各种单元来执行实施例的各种方面,例如集成半导体电路(“硬件”)、组织成一个或多个程序(“软件”)的计算机可读指令、或硬件和软件的某些组合。针对本公开的目的,对“逻辑”的引用可以表示硬件、软件、固件或其某种组合。
通常,当SSD为空的时,随机写入带宽可以人为地是高的。空的表示刚刚开箱的或紧随安全擦除操作之后的。SSD处于空状态时,在数据被写入SSD之前通常后台清理(垃圾收集(garbage collection))不会被执行。当数据被写入驱动器时,它将达到称为稳态的级别,其中写入和垃圾收集被适当地平衡以测量SSD的性能。此外,其中驱动器被写入的方式是HDD(硬盘驱动器)和SSD之间的主要区别。通过更换盘片上的磁信息,数据可以在任何时间被覆写到HDD。使用SSD,信息不能被覆写,这是因为SSD是由NAND闪存组成的。通常,NAND存储器被布置为页面;页面被布置为块。数据只能被写入到空的或(例如新的)被擦除的页面中。当驱动器是新的,所有页面都是空的并因此可以被快速写入。当被写入到驱动器的页面中的大部分或全部已满时,因此块被擦除,以便针对将被写入的新数据留出空间。擦除只能以块而不是单个页面为单位发生。为了使数据的擦除和移动成为可能,SSD具有不被计算到驱动器的所宣称的容量中的额外的NAND。这样的额外的NAND的量因驱动模型号而不同。额外的NAND或备用区域被使用,因此驱动器可以执行写入,即使驱动器已充满数据时。
由于固态驱动器(SSD)朝向更低成本、更高容量NAND技术发展时,带(band)大小也随着NAND擦除块(其是NAND介质中的最小擦除粒度,或者叫“EB”)大小的增大而增大。如本文所讨论的,“带”通常是指由跨越一定数量的NAND管芯的相同的EB组成(或另外包含所述相同的EB)的逻辑结构或块。更新的SSD具有更少数量的更大的带。通常,垃圾收集的主要目的是释放由无效数据占用的空间。如本文所讨论的,“无效数据”通常是指过时的并且不再被认为是可用的数据。例如,ATA Trim命令(根据至少一个指令集架构)允许主动将包含用户数据(但该用户数据不再被使用的)NAND块标记为无效。这就允许通过在内部垃圾收集活动期间消除移动过时的数据的需要来使SSD的更加有效。而且,这种方法在大量数据被丢弃之后改进了写入性能。除了其主要目的之外,一些SSD垃圾收集机制可以在损耗均衡和后台数据刷新(BDR)期间处理移动的有效数据,同时维持一致的SSD性能。为了执行所有这些功能,一定数量的带被保留以用于垃圾收集。这些保留的带不计入驱动器的有效备用。如本文所讨论的,“有效备用”通常是指驱动器中超出逻辑报告容量的额外物理容量的量。随着带大小的增加,垃圾收集所需的保留带继续占用与SSD的有效备用不同的物理空间的更大的百分比,降低了性能并减小了SSD寿命(或增加了写入放大(WA))。
此外,初始垃圾收集设计趋向于针对实现简单性来权衡有效备用,并允许额外保留的带来满足特定的工作负载性能一致性目标。然而,随着带大小的增加,权衡不再是成本有效的。此外,基于对工作负载的系统理解,在稳态期间,空闲空间生产以与使用一定量的资源的主机消耗相同的速率进行。然而,在工作负载转换期间,垃圾收集可能需要适应其资源分配,这可能导致其落后于主机。因此,在工作负载转换期间,与被生产的空闲空间相比,主机可以更快地消耗空闲空间,并且如果不被正确地管理,则其他系统服务可能缺乏空闲空间,并且整个SSD可能失败。
为了防止在工作负载转换期间发生灾难性的故障,当垃圾收集适应其资源并跟上主机时,垃圾收集可以使用其带中的一些作为保留空间以用于主机消耗。消耗的保留空间的量取决于资源多快适应于新的工作负载。通过允许垃圾收集更快地适应其资源,针对垃圾收集所保留的带中的一些可以被释放并被返回作为SSD的有效备用。
为此,一些实施例涉及用于快速适应针对将到来的(例如,I/O(输入/输出))工作负载的垃圾收集资源分配并且使固态驱动器(SSD)有效备用容量最大化的机制。实施例提供了通过使垃圾收集的操作备用需求最小化来动态地使SSD的有效备用最大化的能力。通过(例如,适时地)增加有效备用,SSD性能被改进、写入放大减少、并且整体驱动器寿命增加。此外,如果存在对预期用户或客户工作负载的良好理解,在SSD上需要更少的NAND介质来实现目标备用级别,从而减少材料清单(BOM)成本。
而且,虽然参考NAND介质讨论了一些实施例,但是实施例不限于NAND介质,并且可以被应用于NOR介质。此外,即使参考SSD(例如,包括NAND和/或NOR类型的存储器单元)讨论了一些实施例,但是实施例不限于SSD,并且可以用于其他类型的非易失性存储设备(或非易失性存储器(NVM)),包括例如以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋转移力矩随机存取存储器(STTRAM)、电阻式随机存取存储器、字节可寻址三维交叉点存储器、PCM(相变存储器)等。
本文讨论的技术可以被提供到各种计算系统(例如,包括非移动计算设备(例如桌上型计算机、工作站、服务器、托架系统等)以及移动计算设备(例如智能电话、平板计算机、UMPC(超级移动个人计算机)、膝上型计算机、UltrabookTM计算设备、智能手表、智能眼镜、智能手环等)中,包括参考图1-图6讨论的那些。更具体地,图1示出了根据实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1至102-N(这里通常称为“多个处理器102”或“处理器102”)。处理器102可以经由互连或总线104进行通信。为了清晰起见,每个处理器可以包括各种组件,仅参考处理器102-1讨论其中的一些。因此,其余的处理器102-2至102-N中的每一个可以包括参考处理器102-1讨论的相同或相类似的组件。
在实施例中,处理器102-1可以包括一个或多个处理器核106-1至106-M(这里称为“多个核106”或更通常地称为“核106”)、高速缓存108(其可以是各种实施例中的共享的高速缓存或专用高速缓存)和/或路由器110。处理器核106可以被实现在单个集成电路(IC)芯片上。此外,芯片可以包括一个或多个共享和/或专用高速缓存(例如,高速缓存108)、总线或互连(例如,总线或互连112)、逻辑120、存储器控制器(例如参考图4-图6所讨论的那些)、或其他组件。
在一个实施例中,路由器110可用于在处理器102-1和/或系统100的各种组件之间进行通信。此外,处理器102-1可以包括多于一个的路由器110。此外,路由器110中的许多可以进行通信以实现在处理器102-1的内部或外部的各种组件之间进行数据路由。
高速缓存108可以存储由处理器102-1的一个或多个组件(例如,核106)所利用的数据(例如,包括指令)。例如,高速缓存108可以将被存储在存储器114中的数据进行本地高速缓存,以用于由处理器102的组件更快速地进行存取。如图1所示,存储器114可以经由互连104与处理器102进行通信。在实施例中,高速缓存108(可以是共享的)可以具有各种级别,例如,高速缓存108可以是中级高速缓存和/或最后一级高速缓存(LLC)。此外,核106中的每一个可以包括一级(LI)高速缓存(116-1)(这里通常被称为“LI高速缓存116”)。处理器102-1的各种组件可以通过总线(例如,总线112)和/或存储器控制器或集线器直接与高速缓存108进行通信。
如图1中所示,存储器114可以通过存储器控制器120与系统100的其他组件耦合。存储器114包括易失性存储器,并且可以可交换地被称为主存储器。即使存储器控制器120被示出为耦合在互连104和存储器114之间,但是存储器控制器120可以位于系统100中的其他地方。例如,在一些实施例中,存储器控制器120或其部分可以被提供在处理器102中的一个处理器内。
系统100还可以包括非易失性(NV)存储设备,例如经由SSD控制器逻辑125与互连104耦合的SSD 130。因此,逻辑125可以控制系统100的各种组件对SSD 130的存取。此外,即使逻辑125在图1中被示出为直接耦合到互连104,但是逻辑125可以可替代地经由存储总线/互连(例如,SATA(串行高级技术附件)总线、外围组件互连(PCI)(或快速PCI(PCIe)接口)等)与系统100的一个或多个其他组件(例如,其中存储设备总线经由以下一些其他逻辑被耦合到互连104:例如总线桥、芯片组(例如参考图4-图6所讨论的)等)进行通信。另外,在各种实施例中,逻辑125可以被并入到存储器控制器逻辑(例如参考图1和图4-图6所讨论的那些)中,或者被提供在相同的集成电路(IC)设备上(例如,在与SSD 130相同的IC设备上或在与SSD 130相同的外壳中)。
此外,逻辑125和/或SSD 130可以与一个或多个传感器(未示出)耦合以用于接收信息(例如,以一个或多个比特或信号的形式)来指示一个或多个传感器的状态或由一个或多个传感器检测的值。这些传感器可以靠近系统100(或本文讨论的其他计算系统,例如参考包括图4-图6的其他附图所讨论的那些)的组件来提供,以用于感测影响系统/平台的功率/热行为的各种因素中的变化,例如温度、工作频率、工作电压、功耗和/或核间通信活动等,其中,系统100的组件包括核106、互连104或112、处理器102外部的组件、SSD 130、SSD总线、SATA总线、逻辑125、逻辑160等。
如图1中所示,SSD 130可以包括逻辑160,其可以在与SSD 130相同的外壳中和/或完全集成在SSD 130的印刷电路板(PCB)上。逻辑160提供用于快速适应针对将到来的I/O(输入/输出)工作负载的垃圾收集资源分配的机制,如本文中例如参考图2A-图6所讨论的。
更具体地,实施例(也称为前向MAV(移动平均有效性)或FMAV))允许垃圾收集使其资源更快地适应于改变工作负载;因此,减少其所需的带数量。这继而转化为更多有效备用、更好的性能和更长的SSD寿命。为了解决这个问题,垃圾收集可以检查作为垃圾收集的候选的带的状态,而不是刚刚被处理的带的状态。通过检查候选带中的有效数据的量,垃圾收集具有针对将到来的工作负载所需资源的更好的表示,并可以更快地适应其资源分配。
在一些实现(例如,图2A的流程图/框图)中,每当带(例如,来自候选带208的队列)被垃圾收集204处理时,则该带中的有效数据的量被记录。被处理的最后的(例如,32个)带的有效性的移动平均202被称为后视移动平均有效性(或后视MAV)。这用于表示工作负载以及计算垃圾收集204需要多少资源。移动平均有效性是针对需要多少资源的良好表示,因为有效数据的量与垃圾收集需要执行多少工作直接相关。例如,如果被处理的最后32个带包含20%的有效数据,则逻辑/固件针对垃圾收集工作分配系统的缓冲区的20%(加上一些用于开销的加法器)。
然而,后视MAV是最后32个带的历史运行平均。这表示将到来的工作负载(需要更多资源的工作负载)可以使用与之前工作负载相同的量的资源。在主机工作负载变化和稳定到正确值的后视MAV之间可以存在相对长的时间延迟。在此期间,垃圾收集将落后于主机运行、空闲空间生产将不匹配主机消耗并且空闲空间将下降。需要额外的带充当用于主机消耗的保留空间,直到垃圾收集可以赶上。在没有额外的带作为“缓冲”的情况下,其他关键系统服务将缺乏空闲空间并且该系统将失败。
图2B示出了随时间的可用空闲空间的图(其中可用空闲空间被表示为可用的间接单元(在附图中标记为“IND”))。更具体地,图2B突出显示了用于在工作负载转换期间针对空闲空间后视MAV的效果。工作负载转换发生在箭头210周围。左侧的工作负载由为0的MAV(后视MAV)所表示,而右侧的工作负载将具有约80的MAV。“Available(可用的)”是系统当前所具有的空闲空间的量。在“Normal(正常的)”处,空闲空间生产等于主机消耗。目标是使“Available”始终处在或非常接近“Normal”,除了具有MAV=0的工作负载。当“Available”命中“Critical(临界的)”时,其他系统服务将缺乏空闲空间,并且系统可能失败,如前所述。
在图2B中,“Available”明显地下降到“Normal”之下,但没有达到“Critical”,这是因为“Normal”和“Critical”之间的用于主机消耗的保留空间的额外带。注意当MAV缓慢接近其正确值时,“Available”如何接近“Normal”。如果MAV变化更快,则“Available”将不会明显地下降到“Normal”之下,并且保留的空间的若干带可以被返回作为用于SSD的有效备用。
在实施例中,为了防止空闲空间明显地下降到“Normal”之下,前向MAV(FMAV)可以被使用(参见,例如,示出了根据实施例的FMAV的框图/流程图的图2C)。在实施例中,逻辑160包括图2C中所示的框中的一个或多个。用于垃圾收集处理226的候选带被组织在队列228中。通过使用队列中的带的有效性来计算移动平均有效性222,垃圾收集224具有针对将到来的工作负载所需资源的更好的表示,并且可以更快地适应其资源分配。
图2D示出了随时间的可用空闲空间的图。更具体地,2D突出显示了在工作负载转换期间FMAV针对空闲空间的效果。工作负载转换发生在箭头250周围。左侧的工作负载由为0的MAV(FMAV)所表示,而右侧的工作负载将具有约80的MAV。由于MAV快速地响应于工作负载中的变化,Available不会明显地下降到Normal之下,并且保留空间的频段中的一定数量的带现在可以作为有效备用被返回给SSD。当前的工作负载和在工作负载转换期间垃圾收集适应其资源分配所花费的时间的量是其决定由垃圾收集用于确保功能和SSD性能一致性所需的保留的带的数量的两个主要因素。
与低WA工作负载相比,生成高WA的工作负载需要更少的保留的带。通过检测在SSD上运行的工作负载,垃圾收集可以释放不需要的保留的带作为有效备用,同时仍维持性能一致性。另外,通过在工作负载转换期间快速适应其资源分配,垃圾收集224可以释放额外的保留的带作为有效备用,同时维持SSD功能。
如前所述,基于最坏情况,一些垃圾收集实现可以针对SSD功能和性能一致性保留固定数量的带。根据一些实施例,例如,基于工作负载不需要的保留的带被返回作为有效备用,其中高WA工作负载接收最多的备用。额外的有效备用转化为更好的性能和更低的WA。
为了解决这个问题,垃圾收集逻辑(例如,图2C的逻辑226)检查将被处理的带的移动平均有效性(MAV)。用于垃圾收集的保留的带的数量基于MAV而被调整。由于MAV和WA具有直接关系,所以具有高WA和MAV的工作负载被分配有更少的保留的带和更多的有效备用,而具有低WA/MAV的工作负载接收与以上相反的内容。
此外,在一些实现中,在上电期间,SSD静态地分配一定数量的保留的带以用于垃圾收集的使用。例如,在正常操作期间,十个带被保留以维持性能一致性,并且在工作负载转换期间,额外的十个带被保留以维持SSD功能。保留的带的数量保持固定并且不会改变,即使基于当前的工作负载其中一定数量的带不被需要。例如,性能一致性要求需要驱动器性能不会下降到平均的90%以下。为了满足该要求,垃圾收集使用SSD中的空闲空间的量和工作负载的WA作为反馈来确定需要多少资源和带宽。由于WA和MAV具有直接关系,所以逻辑/固件使用将被处理的带的MAV,作为工作负载的WA的测量。图2E示出了WA、空闲空间和主机/垃圾收集带宽之间的关系的图(垃圾收集带宽是主机带宽的倒数)。
十带性能一致性缓冲的原因(在图2E中,Normal到Corner(拐角))是通过BDR吸收发送到垃圾收集逻辑的完全有效带,并以规则的时间间隔进行损耗均衡。BDR和损耗均衡带可以使任意有效性高达100%。如果给定主机工作负荷的WA非常低,例如接近1,则主机基本上接收到100%的写入带宽(图2E中的曲线270)。但是,当垃圾收集正处理BDR和损耗均衡带时,主机也期望最多会有10%的性能下降。在这种情况下,垃圾收集只允许占用高达写入带宽的10%。这表示主机将消耗空间的十个带,而垃圾收集将重新写入一个BDR/损耗均衡带。最重要的是,仅针对低WA工作负载(例如,约1)才需要十带性能一致性缓冲,这是由于垃圾收集只能占用最多达10%的带宽。当WA为高时,垃圾收集被允许有足够的带宽来完全匹配主机空闲空间消耗(图2E中的曲线274),同时维持性能一致性。
另外,在工作负载转换期间,空闲空间可以明显地下降,直到垃圾收集使其资源适应于将到来的工作负载。需要额外的带(图2E中的Corner到Critical)来充当用于主机消耗的保留空间,直到垃圾收集可以赶上。在没有额外的带作为缓冲的情况下,其他关键系统服务会缺乏空闲空间并且系统将会失败。消耗的保留空间的量取决于资源多快被适应于新的工作负载。如果资源很快地适应,则Corner和Critical之间的一些带可以被释放作为有效备用。
为此,在一些实施例中,每当带由垃圾收集逻辑(例如,图2C的逻辑224)来处理时,基于MAV重新计算维持性能一致性和SSD功能所需的保留的带的数量。由于只有低WA工作负载需要十带性能一致性缓冲(图2E中的Normal到Corner),所以当MAV开始增加时,缓冲就会被减少。相反地,当MAV开始减小时,缓冲被增加。另外,用于在工作负载转换期间加速垃圾收集的资源分配的机制(例如,逻辑160)还允许减少用于SSD功能的十带缓冲(图2E中的Corner到Critical)。
图2F示出了根据实施例的可用空闲空间与时间的图。更具体地,图2F示出了保留的带的数量随着工作负载的WA如何转换。如图2F所示,在时间戳1000-8500和14800-21000期间:运行高WA(例如,大于2)工作负载(4K随机写入)并且Normal到Corner=Corner到Critical=保留的2个带。此外,在时间戳8501-14799期间:运行低WA(约等于1)工作负载(128K串行写入)和Normal到Corner=Corner到Critical=保留的10个带。
图3示出了根据实施例的SSD的各种组件的框图。逻辑160可以位于各种位置,例如SSD内或SSD控制器逻辑内,例如,如图3中所示的。SSD130包括控制器逻辑382(其依次包括一个或多个处理器核或处理器384和存储器控制器逻辑386)、随机存取存储器(RAM)388、固件存储装置390以及一个或多个存储器模块或管芯392-1至392-n(其可以包括NAND闪存、NOR闪存或其他类型的非易失性存储器,例如参考图2A-图2F所讨论的那些)。存储器模块392-1至392-n经由一个或多个存储器通道或总线与存储器控制器逻辑386耦合。此外,SSD130经由接口(例如SATA、SAS、PCIe(快速外围组件互连)等接口)与逻辑125进行通信。参考图1至图6所讨论的操作中的一个或多个可以由图3的一个或多个组件来执行,例如处理器384和/或控制器382可以对写入到存储器模块392-1至392-n或从存储器模块392-1至392-n读取的数据进行压缩/解压缩(或另外引起压缩/解压缩)。此外,图1至图6的操作中的一个或多个可以被编程到固件390中。此外,控制器382可以包括逻辑160。
因此,一些实施例提供以下实现中的一个或多个:
(1)通过检测在SSD上运行的工作负载,垃圾收集可以释放不需要的保留的带作为有效备用,同时仍维持性能一致性;
a.每当带由垃圾收集来处理时,基于MAV来重新计算用于维持性能一致性和SSD功能所需的保留的带的数量。
b.由于只有低WA工作负载需要十带性能一致性缓冲(图2E中的Normal到Corner),所以一旦MAV开始增加,缓冲就被减少(作为结果,有效备用、性能和耐久性增加并且WA被减少)。相反,当MAV开始减小时,缓冲被增加(回到其原始值);和/或
(2)另外,通过在工作负载转换期间快速适应其资源分配,垃圾收集可以释放额外的保留的带作为有效备用,同时维持SSD功能;
a.用于垃圾收集的候选带被组织到队列中。通过使用队列中的带的有效性来计算移动平均有效性,垃圾收集具有针对将到来的工作负载所需资源的更好的表示,并且可以更快地适应其资源分配;
b.由于MAV快速地响应于工作负载中的变化,Available并没有明显地下降,并且保留空间的一些额外数量的带(先前被用于防止系统缺乏空闲空间和失败的那些带)现在可以作为有效备用被返回到SSD,最大化以上(1)的效果。
图4示出了根据实施例的计算系统400的框图。计算系统400可以包括经由互连网络(或总线)404进行通信的一个或多个中央处理单元(CPU)402或处理器。处理器402可以包括通用处理器、网络处理器(处理通过计算机网络403进行通信的数据)、应用处理器(例如在蜂窝式电话、智能电话等中使用的处理器)或其他类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。各种类型的计算机网络403可以被使用,包括有线(例如,以太网、千兆比特、光纤等)或无线网络(例如,蜂窝、3G(第三代蜂窝电话技术或第三代无线格式(UWCC))、4G、低功耗嵌入式(LPE)等)。此外,处理器402可以具有单核或多核设计。具有多核设计的处理器402可以在相同的集成电路(IC)管芯上集成不同类型的处理器核。此外,具有多核设计的处理器402可以被实现为对称或不对称的多处理器。
在实施例中,处理器402中的一个或多个可以与图1的处理器102相同或类似。例如,处理器402中的一个或多个可以包括核106和/或高速缓存108中的一个或多个。此外,参考图1-图3所讨论的操作可以由系统400的一个或多个组件来执行。
芯片组406还可以与互连网络404进行通信。芯片组406可以包括图形和存储器控制集线器(GMCH)408。GMCH 408可以包括与存储器114进行通信的存储器控制器410(在实施例中,存储器控制器410可以与图1的存储器控制器120相同或类似)。存储器114可以存储数据,包括由CPU402执行的指令的序列,或被包括在计算系统400中的任何其他设备。此外,系统400包括逻辑125、SSD 130和/或逻辑160(在各种实施例中,其可以经由如所示的总线422、经由其他互连(例如404)与系统400耦合,其中逻辑125被并入芯片组406等)。在一个实施例中,存储器114可以包括一个或多个易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型存储设备。还可以使用非易失性存储器,例如硬盘驱动器、闪存等,包括本文讨论的任何NVM。额外的设备可以经由互连网络404进行通信,例如多个CPU和/或多个系统存储器。
GMCH 408还可以包括与图形加速度计416进行通信的图形接口414。在一个实施例中,图形接口414可以经由加速的图形端口(AGP)或外围组件互连(PCI)(或者快速PCI(PCIe)接口)与图形加速度计416进行通信。在实施例中,显示器417(例如,平板显示器、触摸屏等)可以通过例如单个转换器与图形接口414进行通信,该转换器将被存储在存储设备(例如,视频存储器或系统存储器)中的图像的数字表示转换为由显示器解释和显示的显示信号。由显示设备产生的显示信号可以在由显示器417解释并且随后被显示在显示器417上之前传递通过各种控制设备。
集线器接口418可以允许GMCH 408与输入/输出控制集线器(ICH)420进行通信。ICH 420可以向与计算系统400进行通信的I/O设备提供接口。ICH 420可以通过以下外围桥接器(或控制器)424与总线422进行通信:例如,外围组件互连(PCI)桥、通用串行总线(USB)控制器、或其他类型的外围桥接器或控制器。桥424可以在CPU 402和外围设备之间提供数据路径。可以使用其他类型的拓扑。此外,多个总线可以例如通过多个桥或控制器与ICH420进行通信。此外,在各种实施例中,与ICH 420进行通信的其他外围组件可以包括集成驱动器电子电路(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))或其他设备。
总线422可以与以下设备进行通信:音频设备426、一个或多个磁盘驱动器428以及网络接口设备430(例如其经由有线或无线接口与计算机网络403进行通信)。如图所示,网络接口设备430可以与天线431耦合用于无线地(例如,经由电气和电子工程师协会(IEEE)802.11接口(包括IEEE802.11a/b/g/n/ac等)、蜂窝接口、3G、4G、LPE等)与网络403进行通信。其他设备可以经由总线422进行通信。此外,在一些实施例中,各种组件(例如网络接口设备430)可以与GMCH 408进行通信。另外,处理器402和GMCH 408可以进行组合以形成单个芯片。此外,在其他实施例中,图形加速度计416可以被包括在GMCH 408内。
此外,计算系统400可以包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可以包括以下中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动器(例如428)、软盘、光盘ROM(CD-ROM)、数字通用盘(DVD)、闪存、磁光盘、或能够存储电子数据的其他类型的非易失性机器可读介质(例如,包括指令的)。
图5示出了根据实施例的以点对点(PtP)配置被布置的计算系统500。具体而言,图5示出了其中处理器、存储器和输入/输出设备通过多个点对点接口被互连的系统。参考图1-图4所讨论的操作可以由系统500的一个或多个组件来执行。
如图5所示,系统500可以包括若干处理器,为了清晰起见,仅示出了其中两个处理器502和504。处理器502和504可以各自包括本地存储器控制器集线器(MCH)506和508,用于实现与存储器510和512的通信。存储器510和/或512可以存储各种数据,例如参考图1和/或图4的存储器114所讨论的那些。此外,在一些实施例中,MCH 506和508可以包括存储器控制器120。此外,系统500包括逻辑125、SSD 130和/或逻辑160(在各种实施例中,其可以经由如所示的总线540/544与系统500耦合、经由其他点对点连接与处理器502/504或芯片组520耦合,其中逻辑125被并入芯片组520等)。
在实施例中,处理器502和504可以是参考图4所讨论的处理器402中的一个。处理器502和504可以分别经由点对点(PtP)接口514使用PtP接口电路516和518交换数据。此外,处理器502和504可以各自经由单独的PtP接口522和524使用点对点接口电路526、528、530和532与芯片组520交换数据。芯片组520还可以经由高性能图形接口536,例如使用PtP接口电路537与高性能图形电路534交换数据。如参考图4所讨论的,在一些实施例中,图形接口536可以与显示设备(例如,显示器417)耦合。
如图5所示,图1的核106和/或高速缓存108中的一个或多个可以位于处理器502和504内。然而,其他实施例可以存在于图5的系统500内的其他电路、逻辑单元或设备中。此外,其他实施例可以被分布在图5所示的若干电路、逻辑单元或设备中。
芯片组520可以使用PtP接口电路541与总线540进行通信。总线540可以具有与其进行通信的一个或多个设备,例如,总线桥542和I/O设备543。经由总线544,总线桥542可以与其他设备进行通信,所述其他设备例如键盘/鼠标545、通信设备546(例如调制解调器、网络接口设备或可以与计算机网络403进行通信的其他通信设备,如参考网络接口设备430所讨论的,例如包括经由天线431)、音频I/O设备和/或数据存储设备548。数据存储设备548可以存储可由处理器502和/或504执行的代码549。
在一些实施例中,本文所讨论的组件中的一个或多个可以被实施为片上系统(SOC)设备。图6示出了根据实施例的SOC封装的框图。如图6所示,SOC 602包括一个或多个中央处理单元(CPU)核620、一个或多个图形处理器单元(GPU)核630、输入/输出(I/O)接口640和存储器控制器642。SOC封装602的各种组件可以与互连或总线耦合,例如本文参考其他附图所讨论的。此外,SOC封装602可以包括更多或更少的组件,例如本文参考其他附图所讨论的那些组件。此外,SOC封装620的每个组件可以包括一个或多个其他组件,例如,参考本文其他附图所讨论的。在一个实施例中,SOC封装602(及其组件)被提供在一个或多个集成电路(IC)管芯上,例如被封装在单个半导体器件上。
如图6所示,SOC封装602经由存储器控制器642与存储器660(其可以与本文参考其他附图所讨论的存储器类似或相同)耦合。在实施例中,存储器660(或其部分)可以被集成在SOC封装602上。
I/O接口640可以例如经由如本文参考其他图所讨论的互连和/或总线与一个或多个I/O设备670耦合。I/O设备670可以包括以下中的一个或多个:键盘、鼠标、触摸板、显示器、图像/视频捕获设备(例如摄像机或摄录像机/视频记录仪)、触摸屏、扬声器等等。此外,在实施例中,SOC封装602可以包括/集成逻辑125。可替代地,逻辑125可以被提供在SOC封装602的外部(即,作为分立的逻辑)。
以下示例与另外的实施例相关。示例1包括一种装置,其包括:非易失性存储器,其用于存储与第一工作负载和第二工作负载相对应的数据;以及逻辑,其用于至少部分地基于在所述第一工作负载或所述第二工作负载的操作期间将被处理的一个或多个候选带的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配。示例2包括示例1所述的装置,其中,所述逻辑用于确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。示例3包括示例2所述的装置,其中,所述垃圾收集逻辑用于释放在所述非易失性存储器中由无效数据占用的空间。示例4包括示例2所述的装置,其中,用于确定所述一个或多个资源的所述分配的所述逻辑包括所述垃圾收集逻辑。示例5包括示例1所述的装置,其中,逻辑用于至少部分地基于在从所述第一个工作负载到所述第二个工作负载的转换期间将被处理的所述一个或多个候选带的平均有效性的所述确定,来确定所述非易失性存储器中的所述一个或多个资源的所述分配。示例6包括示例1所述的装置,其中,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器的有效备用空间的增加。示例7包括示例1所述的装置,其中,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器中的写入放大的减少。示例8包括示例1所述的装置,其中,所述第二工作负载是紧随在所述第一工作负载之后的。示例9包括示例1所述的装置,其中,所述第一工作负载是空的或空闲的工作负载。示例10包括示例1所述的装置,其中,所述非易失性存储器和所述逻辑在相同的集成电路设备上。示例11包括示例1所述的装置,其中,所述非易失性存储器包括以下中的一个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋转移力矩随机存取存储器(STTRAM)、电阻式随机存取存储器、相变存储器(PCM)以及字节可寻址的三维交叉点存储器。示例12包括示例1所述的装置,其中,SSD包括所述非易失性存储器和所述逻辑。
示例13包括一种方法,包括:将与第一工作负载和第二工作负载相对应的数据存储在非易失性存储器中;并且至少部分地基于在所述第一工作负载或所述第二工作负载的操作期间被处理的一个或多个候选带的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配。示例14包括示例13所述的方法,还包括确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。示例15包括示例13所述的方法,还包括所述垃圾收集逻辑释放在所述非易失性存储器中的由无效数据占用的空间。示例16包括示例13所述的方法,其中,确定所述非易失性存储器中的所述一个或多个资源的所述分配使得所述非易失性存储器的有效备用空间中的增加。示例17包括示例13所述的方法,其中,确定所述非易失性存储器中的所述一个或多个资源的所述分配使得所述非易失性存储器中的写入放大的减少。示例18包括示例13所述的方法,其中,所述第一工作负载是空的或空闲的工作负载。示例19包括示例13所述的方法,其中,所述非易失性存储器包括以下中的一个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋转移力矩随机存取存储器(STTRAM)、电阻式随机存取存储器、相变存储器(PCM)以及字节可寻址的三维交叉点存储器。示例20包括示例13所述的方法,还包括至少部分地基于在从所述第一工作负载到所述第二个工作负载转换期间被处理的所述一个或多个候选带的平均有效性的确定,来确定所述非易失性存储器中的所述一个或多个资源的所述分配。
示例21包括一种系统,包括:非易失性存储器;以及至少一个处理器核,其用于存取所述非易失性存储器;所述非易失性存储器用于存储与第一工作负载和第二工作负载相对应的数据;以及逻辑,其用于至少部分地基于在所述第一工作负载或所述第二工作负载的操作期间将被处理的一个或多个候选带的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配。示例22包括示例21所述的系统,其中,所述逻辑用于确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。示例23包括示例21所述的系统,其中,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器的有效备用空间增加。示例24包括示例21所述的系统,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器中的写入放大的减少。示例25包括示例21所述的系统,其中,所述第一工作负载是空的或空闲的工作负载。
示例26包括计算机可读介质,其包括一个或多个指令,所述一个或多个指令当在处理器上被执行时,将所述处理器配置为执行一个或多个操作用于:将与第一工作负载和第二工作负载相对应的数据存储在非易失性存储器中;并且至少部分地基于在所述第一工作负载或所述第二工作负载的操作期间被处理的一个或多个候选带的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配。示例27包括示例26所述的计算机可读介质,还包括一个或多个指令,所述一个或多个指令当在所述处理器上被执行时,将所述处理器配置为执行一个或多个操作用于使得确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。示例28包括示例26所述的计算机可读介质,还包括一个或多个指令,所述一个或多个指令当在所述处理器上被执行时,将所述处理器配置为执行一个或多个操作用于使得所述垃圾收集逻辑释放在所述非易失性存储器中的由无效数据占用的空间。示例29包括示例26所述的计算机可读介质,还包括一个或多个指令,所述一个或多个指令当在所述处理器上被执行时,将所述处理器配置为执行一个或多个操作用于确定所述非易失性存储器中的所述一个或多个资源的所述分配以使得所述非易失性存储器的有效备用空间增加。示例30包括示例26所述的计算机可读介质,还包括一个或多个指令,所述一个或多个指令当在所述处理器上被执行时,将所述处理器配置为执行一个或多个操作用于确定所述非易失性存储器中的所述一个或多个资源的所述分配以使得所述非易失性存储器中的写入放大的减少。示例31包括示例26所述的计算机可读介质,其中,所述第一工作负载是空的或空闲的工作负载。示例32包括示例26所述的计算机可读介质,其中,所述非易失性存储器包括以下中的一个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋转移力矩随机存取存储器(STTRAM)、电阻式随机存取存储器、相变存储器(PCM)以及字节可寻址的三维交叉点存储器。示例33包括示例26所述的计算机可读介质,还包括一个或多个指令,所述一个或多个指令当在所述处理器上被执行时,将所述处理器配置为执行一个或多个操作用于至少部分地基于在从所述第一工作负载到所述第二工作负载的转换期间被处理的所述一个或多个候选带的平均有效性的确定,来确定所述非易失性存储器中的所述一个或多个资源的所述分配。
示例34包括一种装置,其包括用于执行如前述示例中的任一项所述的方法的单元。
示例35包括机器可读存储装置,其包括机器可读指令,所述指令当被执行时,实施如前述示例中的任一项所述的方法或实现如前述示例中的任一项所阐述的装置。
在各种实施例中,例如参考图1-图6本文所讨论的操作可以被实现为硬件(例如,电路)、软件、固件、微代码或其组合,所述操作可以作为计算机程序产品被提供,例如包括有形的(例如非暂时性的)机器可读或计算机可读介质,其具有存储在其上的指令,所述指令(或软件程序)用于对计算机进行编程以执行本文所讨论的过程。此外,术语“逻辑”可以包括例如软件、硬件或软件和硬件的组合。机器可读介质可以包括例如关于图1-图6所讨论的那些之类的存储设备。
另外,这样的有形计算机可读介质可以作为计算机程序产品被下载,其中程序可以经由通信链路(例如,总线、调制解调器或网络连接)通过数据信号(例如,以载波或其他传播介质)的方式从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。
说明书中对“一个实施例”或“实施例”的引用表示结合实施例所描述的特定特征、结构或特性可以被包括在至少一个实现中。在说明书中的各个地方的短语“在一个实施例中”的出现可以或可以不全部是指相同的实施例。
此外,在说明书和权利要求书中,可以使用术语“耦合的”和“连接的”及其衍生物。在一些实施例中,“连接的”可以用于指示两个或更多个元件彼此直接的物理或电气接触。“耦合的”可以表示两个或更多个元件直接的物理或电气接触。然而,“耦合的”也可以表示两个或更多个元件可以不彼此直接接触,但依旧可以彼此协作或进行交互。
因此,虽然已经以结构特征和/或方法动作特定的语言描述了实施例,但是应当理解,所要求保护的主题可以不限于所描述的特定特征或动作。相反,特定特征和动作被公开为实现所要求保护的主题的样例形式。
Claims (26)
1.一种用于管理固态驱动器中的存储器分配的装置,所述装置包括:
非易失性存储器,其用于存储与第一工作负载和第二工作负载相对应的数据;以及
用于至少部分地基于对在从所述第一工作负载到所述第二工作负载的转换期间将被处理的一个或多个块的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配的逻辑。
2.根据权利要求1所述的装置,其中,所述逻辑用于确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。
3.根据权利要求2所述的装置,其中,所述垃圾收集逻辑用于释放在所述非易失性存储器中的由无效数据占用的空间。
4.根据权利要求2所述的装置,其中,用于确定所述一个或多个资源的所述分配的所述逻辑包括所述垃圾收集逻辑。
5.根据权利要求1所述的装置,其中,逻辑用于至少部分地基于对在所述第一工作负载或所述第二工作负载的操作期间将被处理的所述一个或多个块的平均有效性的所述确定,来确定所述非易失性存储器中的所述一个或多个资源的所述分配。
6.根据权利要求1所述的装置,其中,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器的有效备用空间增加。
7.根据权利要求1所述的装置,其中,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器中的写入放大减少。
8.根据权利要求1所述的装置,其中,所述第二工作负载是紧随在所述第一工作负载之后的。
9.根据权利要求1所述的装置,其中,所述第一工作负载是空的或空闲的工作负载。
10.根据权利要求1所述的装置,其中,所述非易失性存储器和所述逻辑在相同的集成电路设备上。
11.根据权利要求1所述的装置,其中,所述非易失性存储器包括以下中的一个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋转移力矩随机存取存储器(STTRAM)、电阻式随机存取存储器、相变存储器(PCM)以及字节可寻址的三维交叉点存储器。
12.根据权利要求1所述的装置,其中,SSD包括所述非易失性存储器和所述逻辑。
13.一种用于管理固态驱动器中的存储器分配的方法,所述方法包括:
将与第一工作负载和第二工作负载相对应的数据存储在非易失性存储器中;并且
至少部分地基于对在从所述第一工作负载到所述第二工作负载的转换期间被处理的一个或多个块的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配。
14.根据权利要求13所述的方法,还包括确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。
15.根据权利要求14所述的方法,还包括所述垃圾收集逻辑释放在所述非易失性存储器中的由无效数据占用的空间。
16.根据权利要求13所述的方法,其中,确定所述非易失性存储器中的所述一个或多个资源的所述分配使得所述非易失性存储器的有效备用空间增加。
17.根据权利要求13所述的方法,其中,确定所述非易失性存储器中的所述一个或多个资源的所述分配使得所述非易失性存储器中的写入放大减少。
18.根据权利要求13所述的方法,其中,所述第一工作负载是空的或空闲的工作负载。
19.根据权利要求13所述的方法,其中,所述非易失性存储器包括以下中的一个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋转移力矩随机存取存储器(STTRAM)、电阻式随机存取存储器、相变存储器(PCM)以及字节可寻址的三维交叉点存储器。
20.根据权利要求13所述的方法,还包括至少部分地基于对在所述第一工作负载或所述第二工作负载的操作期间被处理的所述一个或多个块的平均有效性的所述确定,来确定所述非易失性存储器中的所述一个或多个资源的所述分配。
21.一种用于管理固态驱动器中的存储器分配的系统,所述系统包括:
非易失性存储器;以及
至少一个处理器核,其用于存取所述非易失性存储器;
所述非易失性存储器用于存储与第一工作负载和第二工作负载相对应的数据;以及
用于至少部分地基于对在从所述第一工作负载到所述第二工作负载的转换期间将被处理的一个或多个块的平均有效性的确定,来确定所述非易失性存储器中的一个或多个资源的分配的逻辑。
22.根据权利要求21所述的系统,其中,所述逻辑用于确定针对垃圾收集逻辑以及与所述非易失性存储器耦合的主机的所述一个或多个资源的所述分配。
23.根据权利要求21所述的系统,其中,所述逻辑用于确定所述一个或多个资源的所述分配以使得所述非易失性存储器的有效备用空间增加。
24.一种包括代码的机器可读介质,所述代码当被执行时,使得机器执行根据权利要求13至20中的任一项所述的方法。
25.一种用于管理固态驱动器中的存储器分配的装置,其包括用于执行根据权利要求13至20中的任一项所阐述的方法的单元。
26.一种用于管理固态驱动器中的存储器分配的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求13至20中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/672,084 US9740437B2 (en) | 2015-03-27 | 2015-03-27 | Mechanism to adapt garbage collection resource allocation in a solid state drive |
US14/672,084 | 2015-03-27 | ||
PCT/US2016/018516 WO2016160163A1 (en) | 2015-03-27 | 2016-02-18 | Mechanism to adapt garbage collection resource allocation in a solid state drive |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107408018A CN107408018A (zh) | 2017-11-28 |
CN107408018B true CN107408018B (zh) | 2021-01-19 |
Family
ID=56975334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680012303.2A Active CN107408018B (zh) | 2015-03-27 | 2016-02-18 | 用于在固态驱动器中适应垃圾收集资源分配的机制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9740437B2 (zh) |
KR (1) | KR102553539B1 (zh) |
CN (1) | CN107408018B (zh) |
WO (1) | WO2016160163A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI587135B (zh) * | 2016-11-23 | 2017-06-11 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
US11176047B2 (en) | 2017-08-07 | 2021-11-16 | International Business Machines Corporation | Data storage system with physical storage and cache memory |
US11650916B2 (en) * | 2018-06-14 | 2023-05-16 | Microsoft Technology Licensing, Llc | Closed loop garbage collector |
US11500572B2 (en) * | 2019-04-03 | 2022-11-15 | Alibaba Group Holding Limited | Method of optimizing performance of a data storage system |
US11074177B2 (en) * | 2019-06-19 | 2021-07-27 | Micron Technology, Inc. | Garbage collection adapted to host write activity |
US10877882B1 (en) | 2019-06-19 | 2020-12-29 | Micron Technology, Inc. | Garbage collection adapted to user device access |
US11188461B2 (en) | 2019-06-19 | 2021-11-30 | Micron Technology, Inc. | Garbage collection adapted to memory device life expectancy |
KR20220020008A (ko) | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 메모리 저장 장치 및 전자 장치 |
WO2024085681A1 (ko) * | 2022-10-20 | 2024-04-25 | 삼성전자 주식회사 | 가비지 컬렉션 수행 방법 및 이를 지원하는 전자 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902295A (zh) * | 2009-05-26 | 2010-12-01 | 国际商业机器公司 | 控制应用服务器的负载接收速率的方法及装置 |
CN102243613A (zh) * | 2010-05-12 | 2011-11-16 | 西部数据技术公司 | 管理固态存储器中垃圾收集的系统和方法 |
US20140032817A1 (en) * | 2012-07-27 | 2014-01-30 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
CN103823714A (zh) * | 2014-01-15 | 2014-05-28 | 浙江大学 | 一种基于虚拟化下NUMA节点内存QoS的调节方法及装置 |
CN104380262A (zh) * | 2012-06-29 | 2015-02-25 | 英特尔公司 | 坏块管理机制 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473669B2 (en) | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8713268B2 (en) | 2010-08-05 | 2014-04-29 | Ut-Battelle, Llc | Coordinated garbage collection for raid array of solid state disks |
US20140059279A1 (en) | 2012-08-27 | 2014-02-27 | Virginia Commonwealth University | SSD Lifetime Via Exploiting Content Locality |
KR101394955B1 (ko) * | 2012-09-07 | 2014-05-14 | 경상대학교산학협력단 | Z-피닝 장치 |
US9898404B2 (en) | 2013-07-14 | 2018-02-20 | Cnex Labs | Method and apparatus for providing improved garbage collection process in solid state drive |
KR20150019797A (ko) * | 2013-08-16 | 2015-02-25 | 대우조선해양 주식회사 | 휴대용 환기장치 |
-
2015
- 2015-03-27 US US14/672,084 patent/US9740437B2/en active Active
-
2016
- 2016-02-18 KR KR1020177023885A patent/KR102553539B1/ko active IP Right Grant
- 2016-02-18 WO PCT/US2016/018516 patent/WO2016160163A1/en active Application Filing
- 2016-02-18 CN CN201680012303.2A patent/CN107408018B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902295A (zh) * | 2009-05-26 | 2010-12-01 | 国际商业机器公司 | 控制应用服务器的负载接收速率的方法及装置 |
CN102243613A (zh) * | 2010-05-12 | 2011-11-16 | 西部数据技术公司 | 管理固态存储器中垃圾收集的系统和方法 |
CN104380262A (zh) * | 2012-06-29 | 2015-02-25 | 英特尔公司 | 坏块管理机制 |
US20140032817A1 (en) * | 2012-07-27 | 2014-01-30 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
CN103823714A (zh) * | 2014-01-15 | 2014-05-28 | 浙江大学 | 一种基于虚拟化下NUMA节点内存QoS的调节方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016160163A1 (en) | 2016-10-06 |
CN107408018A (zh) | 2017-11-28 |
US9740437B2 (en) | 2017-08-22 |
US20160283161A1 (en) | 2016-09-29 |
KR20170129709A (ko) | 2017-11-27 |
KR102553539B1 (ko) | 2023-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107466418B (zh) | 用于多级别单元模式非易失性存储器的成本优化单级别单元模式非易失性存储器 | |
CN107408018B (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
US11797433B2 (en) | Zoned namespace with zone grouping | |
CN108351813B (zh) | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 | |
CN106462410B (zh) | 用于加速存储器的引导时间清零的设备和方法 | |
CN107430554B (zh) | 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能 | |
US9727267B1 (en) | Power management and monitoring for storage devices | |
US9916104B2 (en) | Techniques for entry to a lower power state for a memory device | |
JP2016523411A (ja) | ハイブリッドメモリデバイス | |
CN107408019B (zh) | 用于提高对非易失性存储器中的缺陷的抗干扰性的方法和装置 | |
US10141071B2 (en) | Predictive count fail byte (CFBYTE) for non-volatile memory | |
US10095432B2 (en) | Power management and monitoring for storage devices | |
US11041763B2 (en) | Adaptive throttling | |
US20200183598A1 (en) | Storage system and operating method thereof | |
US20160378151A1 (en) | Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing | |
CN118043768A (zh) | 用户可配置的slc存储器大小 | |
CN117255986A (zh) | 随机写入固态驱动器工作负荷的动态程序挂起停用 | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access | |
US20220083280A1 (en) | Method and apparatus to reduce latency for random read workloads in a solid state drive |
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 |