CN109215714A - 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质 - Google Patents

用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质 Download PDF

Info

Publication number
CN109215714A
CN109215714A CN201810633006.0A CN201810633006A CN109215714A CN 109215714 A CN109215714 A CN 109215714A CN 201810633006 A CN201810633006 A CN 201810633006A CN 109215714 A CN109215714 A CN 109215714A
Authority
CN
China
Prior art keywords
background commands
commands
background
controller
storage equipment
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
CN201810633006.0A
Other languages
English (en)
Other versions
CN109215714B (zh
Inventor
D·S·埃布森
D·西蒙森
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 CN109215714A publication Critical patent/CN109215714A/zh
Application granted granted Critical
Publication of CN109215714B publication Critical patent/CN109215714B/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0653Monitoring storage devices or systems
    • 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/0658Controller construction 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/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/0674Disk device
    • G06F3/0676Magnetic disk 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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本主题申请涉及用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质。本文提出的系统和方法提供了一种控制器,所述控制器可操作为监测在预先确定的时间段内对存储设备的多个后台命令,并且确定在预先确定的时间段内发布后台命令中的每个的频率。所述控制器还可操作为为后台命令中的每个建立时间间隔以及以它们相应的时间间隔发布后台命令中的每个。

Description

用于增强存储设备的服务质量的存储系统、方法和非暂态计 算机可读介质
技术领域
本发明整体涉及存储设备。更具体地,本发明的示例涉及增强存储设备的服务质量。
背景技术
希望提高存储设备的后台命令管理。
发明内容
本文提出的系统和方法可增强存储设备的服务质量(QoS)。在一个实施方案中,控制器可操作为监测在预先确定的时间段内对存储设备的多个后台命令,确定在预先确定的时间段内发布后台命令中的每个的频率,为后台命令中的每个建立时间间隔,以及以它们相应的时间间隔发布后台命令中的每个。
本文所公开的各种实施方案可以多种方式实施,这是设计时的选择。例如,本文的系统和方法实施方案可以采用计算机硬件、软件、固件或它们的组合的形式。下文描述了其他示例性实施方案。
附图说明
现在将仅以举例的方式,参照附图描述一些实施方案。所有附图中相同的参考标号表示相同的元件或相同类型的元件。
图1为用于增强存储设备的QoS的示例性存储系统的框图。
图2为图1的存储系统的示例性进程的流程图。
图3为向存储设备发布的后台进程的示例性时序图。
图4为图1的存储系统的另一示例性进程的流程图。
图5为示出了存储设备的随时间推移的示例性工作负荷以及后台命令的发布方法的曲线图。
图6A和图6B示出了由图1的存储系统的控制器使用的示例性命令缓冲区。
图7为示例性存储控制器及其相关联的存储设备的框图。
图8为包括存储设备及其与主机系统交互的相关联的控制器的I/O模块的框图。
具体实施方式
附图和以下描述示出了具体的示例性实施方案。因此,应当理解,本领域的技术人员能够设想虽然本文没有明确描述或者显示、但是包含了本发明实施方案的原理、并且包含在本发明实施方案的范围内的各种布置方式。此外,本文所述的任何示例旨在帮助理解本发明实施方案的原理,并且应被理解为不限于此类具体列举的示例和条件。因此,这些实施方案不限于下文所述的任何具体示例。
图1为用于增强存储设备15的QoS的示例性系统10的框图。系统10包括控制器11,该控制器可操作为针对通信地耦合到其的存储设备15读写数据。控制器还可操作为通过发布具体命令来运行存储设备15上的后台进程。
后台进程(例如,数据保留扫描、垃圾收集、读取干扰扫描、数据完整性扫描等)是在“幕后”运行并且无需用户干预的计算机进程。由于后台进程可能会消耗诸如处理器和存储器使用的资源,因此控制器11可操作为降低后台进程对存储设备15的读写操作的影响,从而增强存储设备15的QoS。例如,后台进程向存储设备15发送争用处理资源的请求。当后台进程本质上是“突发的”时或者当多个后台进程在同一时间或几乎同时发生时,它们可以通过延长读写操作的持续时间来降低QoS。控制器11管理发布后台进程命令的时间以便提高存储设备15的QOS。
在一个实施方案中,存储设备15为使用一个或多个SSD架构诸如单级单元(SLC)架构和多级单元(MLC)架构配置的非易失性NAND闪存设备。SLC架构允许存储器单元存储一个数据位。传统上,MLC架构意味着存储器单元可存储两个数据位。但是,架构已经取得发展,现在提供了甚至更高的密度水平,例如每个存储器单元存储三个位的三级单元(TLC)架构和每个存储器单元存储四个位的四级单元(QLC)架构。然而,一般来讲,也可将每个单元存储多于一个数据位的任何架构称为MLC架构。
通常,闪存设备的每个存储器单元都像金属氧化物半导体场效应晶体管(MOSFET)那样用控制栅进行配置。但是,每个存储器单元还具有浮栅,该浮栅被配置在控制栅与MOSFET的信道之间的绝缘氧化物层围绕。由于浮栅通过其绝缘层电隔离,因此置于其上的电子被捕集,直到它们通过施加电场(例如,施加电压)被去除。将电子置于浮栅上,将晶体管设置为逻辑“0”状态。一旦浮栅被充电,其中的电子就会屏蔽来自控制栅的电场,从而增大存储器单元的阈值电压。这意味着更高的电压被施加到控制栅以使晶体管的信道导电。
为了从晶体管写入值,将阈值电压之间的中间电压施加到控制栅。如果信道在该中间电压下导电,则浮栅未被充电,导致逻辑“1”存储在存储器单元中。如果信道在中间电压下不导电,则表明浮栅被充电,导致逻辑“0”存储在存储器单元中。当在控制栅上断言中间电压时,通过确定是否有电流流过晶体管来感测逻辑“0”或逻辑“1”的存在。
基于前文所述,控制器11为可操作为从存储设备15读取数据、将数据写入到存储设备15以及在存储设备15上执行各种其他操作(例如,后台扫描、垃圾收集、存储设备15上的数据的纠错编码/解码等)的任何设备、系统、软件、固件或它们的组合。存储设备15是能够持久性或以其他方式存储数据的任何设备。存储设备15的示例包括NAND闪存存储器设备、磁阻随机存取存储器设备、磁盘、随机存取存储器(RAM诸如DRAM)或它们的各种组合。因此,控制器11可操作为在任何多种存储设备上执行本文所公开的进程。
图2为图1的系统10的示例性进程20的流程图。在该实施方案中,控制器11在进程元素21中监测在预先确定的时间段内对存储设备15的后台命令。例如,存储设备15的后台进程在不同的时间执行并且可彼此重叠。NAND闪存设备上的媒体扫描可每天执行一次(例如,以确保存储器单元正确地读取)。NAND闪存设备的数据保留扫描可每三天执行一次(例如,以确保数据不受存储器单元的电荷泄漏的影响)。NAND闪存设备上的垃圾收集可在整个一天中例行地执行(例如,以释放存储设备的存储空间)。其它后台进程的示例包括读取干扰扫描、读取重试扫描、读取电压校准、数据完整性扫描、用于NAND错误抑制的后台读取以及用于NAND错误抑制的后台写入。后台进程由控制器11执行的命令发起。控制器11监测后台进程的命令,以便在进程元素22中确定在预先确定的时间段内发布后台命令中的每个的频率。
一旦确定了关于后台命令的信息,则控制器11在进程元素23中为后台命令中的每个建立时间间隔,使得这些命令彼此不重叠或在不合适的时间突发至I/O处理。例如,如果控制器11不知道何时发布用于后台进程的命令,则这些命令可能在时间上重叠并且同时争用处理实用程序和/或NAND管芯资源,从而降低存储设备15提供的QOS。另选地或除此之外,可以在工作负荷增加的时段向存储设备15发布用于后台进程的命令,由此争用可由读写I/O处理使用的处理实用程序。在任何情况下,控制器11基于预先确定的时间段内的监测来确定后台命令的时间间隔,使得控制器11可以在进程元素24中以相应的时间间隔发布它们,以便避免处理争用并提高存储设备15的QOS。
图3为由控制器11向存储设备15发布的多个后台命令的示例性时序图。在该实施方案中,一旦控制器11已经监测存储设备15的后台操作并确定了它们的周期性,则控制器11将时隙分配给后台命令。例如,为后台命令31(例如,闪存设备的块上的垃圾收集)分配第一时隙,为下一后台命令32(例如,每日媒体扫描)分配由后台命令时间间隔35隔开的下一时隙,使得后台命令32与后台命令31不重叠。为另一后台命令33(例如,每三天的数据保留扫描)分配由另一后台命令时间间隔35隔开的下一时隙。另外,为又一后台命令34(例如,每小时读取保留扫描)分配由后台命令时间间隔35隔开后的时隙。
尽管在本文中示为具有将后台命令31-34隔开使得后台命令31-34在时间上不重叠的后台时间间隔35,但本实施方案不旨在限于共同的时间间隔。例如,时间间隔35可基于存储设备15的工作负荷来自适应地配置。即,控制器11可监测对存储设备15的读写I/O命令。并且,在对存储设备15的更密集的读写时段期间,控制器11可以进一步将后台命令时间间隔隔开,使得后台命令31-34可以在对存储设备15的较不密集的读写时段期间发生,从而进一步提高存储设备15的QOS。
另外,如该实施方案所示,后台命令31-34可具有变化的持续时间。例如,针对闪存设备的单个块发布的垃圾收集命令(例如,后台命令31)的持续时间可以比可操作为扫描整个存储设备15的每日媒体扫描(例如,后台命令32)更短。因此,该实施方案并不旨在限于后台命令的任何特定持续时间。
图4为图1的存储系统10的另一示例性进程40的流程图。在该实施方案中,控制器11如先前所提及在进程元素41中监测存储设备15的工作负荷,以确定存储设备15正在经历高的还是低的工作负荷。控制器11在将时隙分配到将发布的后台命令之后,控制器11为这些后台命令中的每个启动定时器。就这一点而言,控制器11在进程元素42中确定后台命令的定时器是否指示命令的即将发布。如果不是,则控制器11在进程元素41中继续监测存储设备15的工作负荷。然而,如果定时器指示后台命令即将发布到存储设备15以开始存储设备15上的后台操作,则控制器在进程元素44中确定存储设备15的当前工作负荷水平(例如,高或低)。
如果存储设备15的工作负荷相对较低,则控制器11可在进程元素45中发布命令,并且在进程元素41中继续监测存储设备15的工作负荷。然而,如果存储设备15的工作负荷相对较高,则控制器11可在进程元素46中自适应地扩展未决命令的定时器,以确保它不消耗读写I/O操作所需的处理实用程序。这种情况的示例如图5所示。在该示例中,控制器11确定在读写操作中存在间歇56和57(例如,存储设备15的每秒I/O操作数或“IOPS”相对较低),其中可以发布后台命令51和52而不大幅降低I/O性能。
另选地或除此之外,控制器11可在进程元素47中确定是否存在持续时间较短的未决后台进程。如果是,则控制器11可在进程元素42中确定其定时器是否指示即将发布的命令,以确定它是否可以在其他未决后台命令之前发布。这也在图5中示出。
例如,控制器11可确定后台命令51将具有比后台命令52更短的操作持续时间(例如,基于处理能力)。并且,由于与后台命令52相比,后台命令51的持续时间较短的操作可以在对IOPS中的间歇56的影响较小的情况下实现,因此后台命令51可以在后台命令52之前发布。然后,控制器11可以将后台命令52推送到命令缓冲区/队列的顶部,使得它可以在IOPS中的下一个间歇57处发布,因为它可能更适合于对IOPS的影响较小的情况。
如果不存在较短的未决后台进程,则控制器11可以在进程元素48中调节下一命令的时间间隔。例如,控制器11可调节第一未决后台进程的命令与第二/下一时隙化后台进程的下一命令之间的时间间隔。本质上,这将调节第一命令和第二命令的定时器。然后,控制器11可继续监测存储设备15的工作负荷,以确定何时可向存储设备15发布第一未决后台进程的命令。
在该实施方案中也示出了任选的命令中断43。命令中断43可操作为向存储设备15“注入”后台进程。例如,控制器11可确定在某个时间点可能需要后台进程诸如垃圾收集。命令中断43可用于将后台进程推送到命令缓冲区中的其他进程之前。也就是说,可在命令缓冲区中的其他后台命令之前发布该后台命令。
应当指出的是,存储设备15的工作负荷并非旨在仅限于I/O活动“高”和“低”的时段。相反,存储控制器11可以监测任何级别的工作负荷,并调节后台命令将被发布的方式/时间。
例如,图6A和图6B示出命令缓冲区60,该命令缓冲区可操作为保留未决命令以及它们在由控制器11发布的命令之间的各种间隔。在该示例性实施方案中,命令缓冲区60以一天和三天的时间示出。每三天发生的数据保留扫描命令被置于命令缓冲区60的顶部。每日媒体扫描命令被置于命令缓冲区60中在数据保留扫描之后(例如,在时间间隔35之后)。其他命令诸如数据完整性扫描和定时垃圾收集命令在各个点被置于命令缓冲区60中。然后,每日媒体扫描命令在三天之后(例如,控制器11在监测存储设备15的各种后台进程之后确定的预先确定的时间段)被再次置于命令缓冲区60中。
图6A中还示出了检测到的垃圾收集命令。此命令可为命令中断43的结果,如图4所示。例如,控制器11可确定将在存储设备15的特定块上执行垃圾收集。因此,控制器可从命令缓冲区60移除数据完整性扫描,如图6B所示,并将检测到的垃圾收集命令在命令缓冲区60中插入就位。将要发生的数据完整性扫描可重新定位到命令缓冲区60的另一个位置,以确保命令仍然被发布。
应当指出的是,本文的实施方案并非旨在限于可以由命令缓冲区60中的控制器11实现的任何类型、数量、命令间隔或顺序的后台命令/进程。例如,控制器11可向存储设备15自适应地发布用于后台进程的任何类型的命令和/或在命令之间建立任何时间间隔。另外,本文所述的进程也仅仅是示例性的,并且并非旨在限于那些示例性实施方案的进程元素的数量或顺序。
此外,本文中的实施方案可采取硬件、固件、软件或它们的组合的形式。例如,图7和图8示出了可操作为采用本文所述的系统和方法的此类组合。更具体地,图7为示例性存储系统10及其相关联的设备控制器(例如,控制器11)和存储设备15(例如,包括闪存设备14)的框图。图8为包括存储系统10及其与主机系统502交互的相关联的控制器11/存储设备15的存储模块216的框图。
在图7中,控制器11包括主机接口111,该主机接口可操作为与主机系统进行交互以传送主机系统的I/O操作。主机接口111可被配置为具有标签跟踪模块113,该标签跟踪模块可操作为跟踪各个I/O命令(例如,针对存储设备15中的某些地址的读写命令)的进程。标签跟踪模块113可将从主机系统接收的命令的外部标志与控制器11可在处理命令期间访问的内部标志相关联以识别处理的状态。
控制器11还包括数据处理模块121,该数据处理模块包括处理引擎123,该处理引擎通常可操作为对从主机接口111接收或驻留在缓冲区131内的数据执行某些任务,诸如以下一个或多个:将数据格式化;对数据进行转码;对数据进行压缩;对数据进行解压缩;对数据进行加密;对数据进行解密;数据编码/格式化;或它们的任何组合。例如,数据处理模块121的处理引擎123可操作为处理来自生成操作的主机系统的I/O模块的I/O操作,使得可以向存储设备15的逻辑地址写入I/O操作的数据。处理引擎123可提取写入I/O命令的数据并准备将它存储在存储设备15中。在这样做时,处理引擎123可以使用各种数据压缩算法中的任何一种来压缩数据。当从存储设备15检索数据时,处理引擎123可根据用于压缩数据以供存储的算法对数据进行解压缩。
缓冲区131可操作为存储向和从主机系统传输的数据。缓冲区131还可以存储系统数据,诸如由控制器11使用来管理闪存设备14、缓冲区13和存储器137中的任何可能的更高级RAID功能的存储器表。其他模块可以包括用于提供更高级别的纠错和冗余功能的纠错码(ECC-X)模块135以及用于控制数据向和从缓冲器131移动的直接存储器访问(DMA)模块133。
控制器11还包括纠错码模块161,该纠错码模块可操作为使用各种纠错码技术中的任何一种(例如,循环冗余校验、汉明码、低分辨率纠错码等)来提供缓冲区131中的数据的较低级别的纠错和冗余处理。
设备接口逻辑模块191可操作为根据其中的设备的协议向和从存储设备15传输数据。设备接口逻辑模块191包括调度模块193,该调度模块可操作为将对存储设备15的I/O操作排队。
本文中的控制器11还包括映射模块141,该映射模块可操作为根据查找表12对存储设备15中的位置执行数据寻址。例如,映射模块141可使用查找表12来将来自主机系统的逻辑块地址(LBA)转换为指向缓冲区13、闪存设备14或两者的块/页面地址。查找表12可全部或部分地存储在控制器11和/或存储设备15中。例如,在一些实施方案中,可在控制器11中高速缓存查找表12的一部分,其中查找表12的全部通常非易失性地存储在存储设备15中。
回收站151代表控制器11执行垃圾收集。例如,回收站151可通过扫描映射模块141的查找表12来确定正在积极地使用的存储设备15的部分。就这一点而言,回收站151可以通过擦除未使用部分来使存储设备15的未使用部分或“解除分配”部分可用于写入。回收站151也可在存储设备15内移动数据,以使存储设备15的更大的连续部分可用于写入。
控制器11还包括CPU 171,该CPU控制控制器11的各个方面。例如,CPU 171可以处理指令或固件来实施命令管理173,该命令管理跟踪和控制从主机系统接收的命令。该固件还可以实现控制缓冲区131的分配和使用的缓冲区管理175以及控制映射模块141的转换管理177。固件还可采用一致性管理179来控制数据寻址的一致性以避免冲突,诸如在外部数据访问与回收数据访问之间可能发生的冲突。固件还可提供用于控制设备接口逻辑模块191的设备管理181以及用于控制控制器11内的部件的身份信息的修改和通信的身份管理182。
在图8中,主机系统202可操作为处理软件指令并且利用存储模块216执行I/O操作以针对一个或多个存储系统10进行读写操作。就这一点而言,主机系统202可包括操作系统205,该操作系统为主机系统202提供计算环境。驱动器207可操作为通过链路206与存储模块216进行通信,以利用其所配置有的各种存储系统10执行I/O操作。
与其他计算系统一样,操作系统205可经由管理软件214(例如,Bios软件)启动。主机系统202还可包括应用程序软件209以代表主机系统202执行各种计算过程(例如,文字处理应用程序、图像处理应用程序等)。主机系统202还可以包括I/O和存储功能217,其可操作为通过通信网络219(例如,因特网、局域网、广域网等)与一个或多个服务器218进行I/O操作。就这一点而言,存储模块216可充当主机系统202的I/O操作的高速缓存存储器。
存储模块216可以配置有中间控制器203,该中间控制器可操作为将主机系统202的各种I/O操作切换到存储系统10的LBA。就这一点而言,存储模块216可以包括存储器212,该存储器存储供中间控制器203进行对LBA的I/O操作的映射信息。控制器11的映射模块141还可操作为根据查找表12利用尺寸可变的映射单元执行到存储设备15中的各位置的数据寻址,并将来自主机系统202的LBA转换为指向存储设备15的块/页面地址。

Claims (20)

1.一种存储系统,包括:
存储设备,所述存储设备可操作为存储数据;和
控制器,所述控制器可操作为监测在预先确定的时间段内对所述存储设备的多个后台命令,确定在所述预先确定的时间段内发布所述后台命令中的每个的频率,为所述后台命令中的每个建立时间间隔,以及以它们相应的时间间隔发布所述后台命令中的每个。
2.根据权利要求1所述的存储系统,其中:
所述存储设备为固态驱动器(SSD)。
3.根据权利要求1所述的存储系统,其中:
所述控制器还可操作为基于所述存储设备的工作负荷来自适应地配置所述后台命令的所述时间间隔。
4.根据权利要求1所述的存储系统,其中:
所述存储设备为硬盘驱动器。
5.根据权利要求1所述的存储系统,其中:
所述控制器还可操作为在发布所述后台命令中的第一后台命令后启动定时器,检测所述定时器未决的到期时间,利用未决的定时器到期时间识别所述后台命令中的第二后台命令,确定所述第二后台命令具有比所述第一后台命令更短的持续时间,以及在所述第一后台命令之前发布所述第二后台命令。
6.根据权利要求1所述的存储系统,其中:
所述后台命令选自基本上由以下各项组成的组:数据保留扫描命令;垃圾收集命令;读取干扰扫描命令;读取电压校准命令;数据完整性扫描命令;读取重试扫描;媒体扫描命令;用于NAND错误抑制的后台读取命令;以及用于NAND错误抑制的后台写入命令。
7.根据权利要求1所述的存储系统,还包括:
命令缓冲区,所述命令缓冲区可操作为在由所述控制器指示时发布所述后台命令,所述控制器还可操作为基于调节后续后台命令的发布时间的命令中断将新的后台命令插入所述命令缓冲区中。
8.一种可用存储设备操作的方法,所述方法包括:
监测在预先确定的时间段内向所述存储设备发布的多个后台命令;
确定在所述预先确定的时间段内发布所述后台命令中的每个的频率;
为所述后台命令中的每个建立时间间隔;以及
以它们相应的时间间隔发布所述后台命令中的每个。
9.根据权利要求8所述的方法,其中:
所述存储设备为固态驱动器(SSD)。
10.根据权利要求8所述的方法,还包括:
基于所述存储设备的工作负荷自适应地配置所述后台命令的所述时间间隔。
11.根据权利要求8所述的方法,其中:
所述存储设备为硬盘驱动器。
12.根据权利要求8所述的方法,还包括:
在发布所述后台命令中的第一后台命令后启动定时器;
检测所述定时器未决的到期时间;
利用未决的定时器到期时间识别所述后台命令中的第二后台命令;
确定所述第二后台命令具有比所述第一后台命令更短的持续时间;以及
在所述第一后台命令之前发布所述第二后台命令。
13.根据权利要求8所述的方法,其中:
所述后台命令选自基本上由以下各项组成的组:数据保留扫描命令;垃圾收集命令;读取干扰扫描命令;读取电压校准命令;数据完整性扫描命令;读取重试扫描;媒体扫描命令;用于NAND错误抑制的后台读取命令;以及用于NAND错误抑制的后台写入命令。
14.根据权利要求8所述的方法,还包括:
基于调节后续后台命令的发布时间的命令中断将新的后台命令插入命令缓冲区中。
15.一种非暂态计算机可读介质,包括指令,所述指令当由存储设备的控制器执行时,指示所述控制器:
监测在预先确定的时间段内向所述存储设备发布的多个后台命令;
确定在所述预先确定的时间段内发布所述后台命令中的每个的频率;
为所述后台命令中的每个建立时间间隔;以及
以它们相应的时间间隔发出所述后台命令中的每个。
16.根据权利要求15所述的计算机可读介质,其中:
所述存储设备为固态驱动器(SSD)。
17.根据权利要求15所述的计算机可读介质,还包括指令,所述指令指示所述控制器:
基于所述存储设备的工作负荷自适应地配置所述后台命令的所述时间间隔。
18.根据权利要求15所述的计算机可读介质,其中:
所述存储设备为硬盘驱动器。
19.根据权利要求15所述的计算机可读介质,还包括指令,所述指令指示所述控制器:
在发布所述后台命令中的第一后台命令后启动定时器;
检测所述定时器未决的到期时间;
利用未决的定时器到期时间识别所述后台命令中的第二后台命令;
确定所述第二后台命令具有比所述第一后台命令更短的持续时间;以及
在所述第一后台命令之前发布所述第二后台命令。
20.根据权利要求15所述的计算机可读介质,其中:
所述后台命令选自基本上由以下各项组成的组:数据保留扫描命令;垃圾收集命令;读取干扰扫描命令;读取电压校准命令;数据完整性扫描命令;读取重试扫描;媒体扫描命令;用于NAND错误抑制的后台读取命令;以及用于NAND错误抑制的后台写入命令。
CN201810633006.0A 2017-06-30 2018-06-20 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质 Active CN109215714B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/639,893 2017-06-30
US15/639,893 US10558392B2 (en) 2017-06-30 2017-06-30 Enhancing quality of service of a storage device

Publications (2)

Publication Number Publication Date
CN109215714A true CN109215714A (zh) 2019-01-15
CN109215714B CN109215714B (zh) 2022-07-26

Family

ID=64738849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810633006.0A Active CN109215714B (zh) 2017-06-30 2018-06-20 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质

Country Status (3)

Country Link
US (2) US10558392B2 (zh)
KR (1) KR20190003369A (zh)
CN (1) CN109215714B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558392B2 (en) * 2017-06-30 2020-02-11 Seagate Technology Llc Enhancing quality of service of a storage device
US11726659B2 (en) * 2021-03-10 2023-08-15 Samsung Electronics Co., Ltd. Systems, methods, and devices for data storage with specified data transfer rate

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822584A (en) * 1995-10-13 1998-10-13 Compaq Computer Corporation User selectable priority for disk array background operations
CN1581023A (zh) * 2003-08-14 2005-02-16 株式会社东芝 实现实时操作的方法和系统
CN1618024A (zh) * 2001-12-05 2005-05-18 瑞通网络公司 用于在基于分组的计算机网络中速率整形的方法和系统
US20060015653A1 (en) * 2004-07-19 2006-01-19 Seagate Technology Llc Expedited and low power command sequence servicing
US20130297907A1 (en) * 2012-01-18 2013-11-07 Samsung Electronics Co., Ltd. Reconfigurable storage device
CN103514045A (zh) * 2012-06-30 2014-01-15 国际商业机器公司 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统
US20150046642A1 (en) * 2013-08-07 2015-02-12 Samsung Electronics Co., Ltd. Memory command scheduler and memory command scheduling method
US20160162186A1 (en) * 2014-12-09 2016-06-09 San Disk Technologies Inc. Re-Ordering NAND Flash Commands for Optimal Throughput and Providing a Specified Quality-of-Service

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490261B2 (en) 2003-12-18 2009-02-10 Seagate Technology Llc Background media scan for recovery of data errors
US8612668B2 (en) 2008-11-24 2013-12-17 Juniper Networks, Inc. Storage optimization system based on object size
US9003102B2 (en) * 2011-08-26 2015-04-07 Sandisk Technologies Inc. Controller with extended status register and method of use therewith
US9495287B2 (en) * 2012-09-26 2016-11-15 International Business Machines Corporation Solid state memory device logical and physical partitioning
US9367262B2 (en) 2013-02-26 2016-06-14 Seagate Technology Llc Assigning a weighting to host quality of service indicators
US9195396B2 (en) 2013-03-14 2015-11-24 SanDisk Technologies, Inc. Estimating access frequency statistics for storage device
US9400603B2 (en) * 2014-12-16 2016-07-26 International Business Machines Corporation Implementing enhanced performance flash memory devices
KR102317786B1 (ko) 2015-02-02 2021-10-26 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스
US10156994B2 (en) 2015-02-27 2018-12-18 Western Digital Technologies, Inc. Methods and systems to reduce SSD IO latency
US10540115B2 (en) 2015-04-21 2020-01-21 SK Hynix Inc. Controller adaptation to memory program suspend-resume
US10176119B2 (en) * 2016-03-02 2019-01-08 Seagate Technology Llc Workload detection and media cache management
US9946469B2 (en) * 2016-03-21 2018-04-17 Smart Modular Technologies, Inc. Solid state storage system with latency management mechanism and method of operation thereof
US9927999B1 (en) * 2016-09-09 2018-03-27 Western Digital Technologies, Inc. Trim management in solid state drives
US10558392B2 (en) * 2017-06-30 2020-02-11 Seagate Technology Llc Enhancing quality of service of a storage device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822584A (en) * 1995-10-13 1998-10-13 Compaq Computer Corporation User selectable priority for disk array background operations
CN1618024A (zh) * 2001-12-05 2005-05-18 瑞通网络公司 用于在基于分组的计算机网络中速率整形的方法和系统
CN1581023A (zh) * 2003-08-14 2005-02-16 株式会社东芝 实现实时操作的方法和系统
US20060015653A1 (en) * 2004-07-19 2006-01-19 Seagate Technology Llc Expedited and low power command sequence servicing
US20130297907A1 (en) * 2012-01-18 2013-11-07 Samsung Electronics Co., Ltd. Reconfigurable storage device
CN103514045A (zh) * 2012-06-30 2014-01-15 国际商业机器公司 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统
US20150046642A1 (en) * 2013-08-07 2015-02-12 Samsung Electronics Co., Ltd. Memory command scheduler and memory command scheduling method
US20160162186A1 (en) * 2014-12-09 2016-06-09 San Disk Technologies Inc. Re-Ordering NAND Flash Commands for Optimal Throughput and Providing a Specified Quality-of-Service

Also Published As

Publication number Publication date
US20200133580A1 (en) 2020-04-30
US10558392B2 (en) 2020-02-11
KR20190003369A (ko) 2019-01-09
CN109215714B (zh) 2022-07-26
US11216215B2 (en) 2022-01-04
US20190004733A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
US20200218655A1 (en) Storage system and information processing system for controlling nonvolatile memory
US9891844B2 (en) Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US9864525B2 (en) Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
CN107346290B (zh) 使用并行化日志列表重放分区逻辑到物理数据地址转换表
KR101876001B1 (ko) 장치 내의 전력 관리를 위한 자원 할당 및 할당해제
US20180373461A1 (en) Storage system, information processing system and method for controlling nonvolatile memory
US9298534B2 (en) Memory system and constructing method of logical block
US8171239B2 (en) Storage management method and system using the same
US20160210060A1 (en) Dynamic resource allocation within storage devices
US8171207B2 (en) Adaptive hybrid density memory storage device and control method thereof
US9946473B2 (en) Efficiently managing unmapped blocks to extend life of solid state drive
KR20210111527A (ko) 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법
KR20130078973A (ko) 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
US20170160976A1 (en) Efficiently Managing Unmapped Blocks to Extend Life of Solid State Drive with Low Over-Provisioning
US11132143B2 (en) Universal flash storage (UFS) device and computing device and computing device including storage UFS device for reporting buffer size based on reuse time after erase
US10719439B2 (en) Garbage collection of a storage device
US8589768B2 (en) Memory system having multiple channels and write control method including determination of error correction channel in memory system
US10423335B2 (en) Enhancing quality of service of a storage device
KR20210000877A (ko) 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
US10310770B2 (en) Nonvolatile memory device, and storage apparatus having nonvolatile memory device
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
KR20170086840A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN109215714A (zh) 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质
CN114327240A (zh) 计算机可读存储介质、闪存存储器的数据存储方法及装置
US11847323B1 (en) Data storage device and method for host buffer management

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