CN109558071A - 非易失性存储器控制器的无功功率管理 - Google Patents
非易失性存储器控制器的无功功率管理 Download PDFInfo
- Publication number
- CN109558071A CN109558071A CN201810633931.3A CN201810633931A CN109558071A CN 109558071 A CN109558071 A CN 109558071A CN 201810633931 A CN201810633931 A CN 201810633931A CN 109558071 A CN109558071 A CN 109558071A
- Authority
- CN
- China
- Prior art keywords
- controller
- command
- central controller
- memory
- clock frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- 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/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Power Sources (AREA)
Abstract
本申请公开了非易失性存储器控制器的无功功率管理,提供了可以在多种情况下响应于存储器命令积压而减少存储器控制器的功耗的系统、方法和装置。数据存储设备包括多组非易失性存储器(NVM)设备、中央控制器和多个通道控制器。每个通道控制器耦合到多组NVM设备的不同组。每个通道控制器包括命令队列,该命令队列经配置以存储待处理存储器命令并提供积压信息。中央控制器经配置以接收多个通道控制器的命令队列的积压信息,并且基于积压信息来调整中央控制器的时钟频率和多个通道控制器的一个或更多个时钟频率,使得命令队列中的每一个中的待处理存储器命令低于预定阈值水平。
Description
背景技术
固态数据存储系统越来越多地用于存储和管理电子设备的数据。固态数据存储使用非易失性存储器来存储数据。典型的非易失性数据存储设备将数据存储为非易失性存储器单元中的与电有关的值(例如,电压),并且利用一个或更多个存储器控制器来管理跨越存储系统的多个非易失性存储器设备的数据事务。
通常通过执行存储器命令来完成固态数据存储系统中的数据事务。一些示例性的存储器命令是读取、写入和擦除非易失性存储器芯片,例如,NAND闪存芯片。为了促进这一过程,存储器控制器通常由命令队列构成,该命令队列促进跨越多个存储器单元执行命令。在一些数据存储系统中,可以跨越数据存储系统的多个通道并行执行多个命令。然而,由于在执行存储器命令时的功率限制和/或处理延迟,存储器控制器可能无法在某些情况下全速运行。
发明内容
在所附权利要求的范围内的系统、方法和设备的多种实施例各自具有若干方面,其中没有任何单独一方面唯一地负责本文描述的属性。在考虑本公开之后,并且特别是在考虑标题为“具体实施方式”的部分之后,将理解如何使用多种实施例的各方面来管理存储设备(例如,固态驱动器,有时称为SSD)的功耗,而不是限制所附权利要求的范围。
本公开的各方面提供了用于在多种情况下响应于存储器命令积压(backlog)来降低存储器控制器的功耗的系统、方法和/或装置。
本公开的一个实施例提供了一种数据存储设备。数据存储设备包括多组非易失性存储器(NVM)设备、中央控制器和多个通道控制器。每个通道控制器耦合到多组NVM设备的不同组。每个通道控制器都包括命令队列,该命令队列经配置以存储待处理存储器命令并提供积压信息。中央控制器经配置以接收多个通道控制器的命令队列的积压信息,并且基于积压信息来调整中央控制器的时钟频率和多个通道控制器的一个或更多个时钟频率,使得命令队列中的每一个中的待处理存储器命令低于预定阈值水平。
本公开的另一实施例提供了一种操作包括中央控制器和多个通道控制器的数据存储设备的方法。中央控制器向多个通道控制器发出存储器命令。通道控制器中的每一个包括命令队列,该命令队列针对多组非易失性存储器(NVM)设备的不同组存储对应的存储器命令,并提供积压信息。中央控制器接收命令队列中的待处理存储器命令的积压信息,并且基于积压信息调整中央控制器的时钟频率和多个通道控制器的一个或更多个时钟频率,使得命令队列中的每一个中的待处理存储器命令都低于预定阈值水平。
本公开的另一实施例提供了一种数据存储设备。数据存储设备包括多组非易失性存储器(NVM)设备和多个第一装置。每个第一装置存储针对多组NVM设备的不同组的存储器命令,并提供关于待处理存储器命令的积压信息。数据存储设备还包括第二装置,该第二装置用于向多个第一装置发出存储器命令并用于接收积压信息。数据存储设备还包括第三装置,该第三装置用于基于积压信息调整第二装置和多个第一装置的存储器命令处理吞吐量,使得每个第一装置中的待处理存储器命令低于预定阈值水平。
附图说明
可以更详细地理解本公开,并且更具体的描述可以通过参考各种实施例的特征来进行,其中一些实施例在附图中被说明。然而,附图仅说明了本公开的相关特征,因为描述可以容许其他有效特征,所以附图不被认为是限制性的。
图1的框图根据一些实施例说明了的数据存储系统的一种实施方式。
图2的流程图根据一些实施例说明了数据存储系统的一种功率管理过程。
图3的流程图和操作图根据一些实施例说明了一种无功功率控制过程。
图4和图5的流程图根据一些实施例说明了一种用于控制中央控制器的时钟频率的过程。
图6的流程图根据一些实施例说明了一种用于控制通道控制器的时钟频率的过程。
具体实施方式
本文中描述了许多细节以提供对附图中所说明的示例性实施例的透彻理解。然而,一些实施例可以在没有很多具体细节的情况下实施,并且权利要求的范围仅由权利要求中具体记载的那些特征和方面限制。此外,公知的方法、组件和电路未被详细描述,以免不必要地模糊本文描述的实施例的相关方面。
计算设备(主机)可以使用数据存储层次结构,该层次结构将较快的数据存储放置得较靠近主机,并将较慢的存储放置得较远离主机。较快的存储可以是易失性存储并且通常被称为“存储器(memory)”,并且较慢的存储通常是持久性存储器并且通常被称为“数据存储(storage)”。持久性存储器的一些示例是固态存储设备,例如闪存(例如,NAND闪存)。一些数据存储系统可以有一定的功率预算或限制,在系统运行期间不能超过这些功率预算或限制。在一些实施方式中,数据存储系统可以根据需要使用动态电压和频率调整(DVFS)来降低功率。然而,与DVFS相关联的复杂性和开销可能不适合于某些低功耗实施方式,以及对于高性能固态数据存储设备是不实际的。此外,DVFS解决方案可能不适用于高负载和功率节流的情况。
在分布式数据存储体系结构中,非易失性数据存储器可以被组织成不同的通道或组。每个通道包括由通道控制器控制的非易失性存储器设备(例如,NAND闪存芯片)。数据存储系统可以使用中央控制器通过通道控制器来控制通道之间的存储器操作。中央控制器可以向主机(例如计算机)提供主机接口以访问数据存储系统中的数据。在这种分布式数据存储系统中,当调整中央控制器的时钟频率时(例如为了减少功耗时),需要仔细考虑多个下游通道的负载。
现在参考附图,其提供了系统和方法的实施例,以管理用于存储数据的存储器系统中的功耗。一些实施例包括在多种情况下响应于存储器命令积压来降低存储器控制器的功耗的系统、方法和/或设备。
图1的框图根据一些实施例说明了数据存储系统100的实施方式。虽然说明了一些示例性特征,但是为了简洁起见并且为了不模糊本文公开的示例性实施方式的更多相关方面,多种其他特征没有被说明。
数据存储系统100能够向主机102或计算机提供持久性数据存储。数据存储系统包括中央控制器110和通道控制器112。中央控制器110包括多种组件,例如,时钟发生器114、动态频率调整(DFS)控制块116、主机接口118、存储器命令处理器120和功率信用/额度(credit)分配块124。主机接口118向中央控制器110提供到主机102的接口,以用于数据和控制信号通信。主机102可以是可以将数据存储在数据存储系统中的计算机或中央处理单元。时钟发生器114能够经配置以产生用于驱动中央控制器110的多种组件的一个或更多个时钟信号。例如,时钟发生器114能够输出用于驱动存储器命令处理器120的时钟信号。时钟信号越快(即,更高的频率)、存储器命令处理器120能够更快处理存储器命令。但是,更快的时钟速度能够增加控制器的功耗。存储器命令的一些示例被用于在数据存储系统100的非易失性存储器(NVM)130处写入、读取和擦除数据。
DFS控制块116能够生成频率缩放因子信号,该频率缩放因子信号动态地控制时钟发生器114的时钟频率。在一个示例中,时钟发生器114可以具有基频F。当缩放因子由频率缩放因子信号指示为X时,时钟频率可以被确定为X乘以F。因此,大于1的缩放因子增加输出时钟频率,而小于1的缩放因子降低输出时钟频率。中央控制器110可以根据需要动态地改变时钟缩放因子以改变时钟频率。
存储器命令处理器120经由主机接口118从主机102接收存储器命令。在一些示例中,主机接口118可以是存储器命令处理器120的部分或功能块。基于从主机102接收的命令或指令,存储器命令处理器120生成对应的存储器命令并将其发送到通道控制器112,以在非易失性存储器(NVM)130处写入、读取和擦除数据。在一些实施例中,NVM 130可以是NAND闪存等。
每个通道控制器112包括时钟发生器132和命令队列134。基于从DFS控制块116接收的频率缩放因子信号,时钟发生器132生成一个或更多个时钟信号,以驱动通道控制器112的多种组件。因此,中央控制器110可以使用DFS控制块116,动态地调整由每个通道控制器112的时钟发生器132输出的时钟频率。在一些示例中,命令队列134可以是先进先出(FIFO)缓冲区,该缓冲区经配置以从中央处理器110(例如,存储器命令处理器120)接收存储器命令。每个通道控制器112经配置以执行存储在其命令队列134中的存储器命令,以管理存储在NVM 130中的数据。由时钟发生器132生成的时钟信号越快,通道控制器112能够越快地执行存储在其命令队列134中的存储器命令。例如,存储器命令能够使通道控制器112在对应的NVM 130处写入、读取或擦除数据。
数据存储系统100可以具有功率监视块140,其经配置以监视系统的功耗。例如,功率监视器块140可以包括传感器和电路(例如,一个或更多个电流传感器和/或电压传感器),该传感器和电路经配置以测量数据存储系统100的不同组件的功耗。在本公开的一些方面中,当系统的功耗高于预定阈值、限制或功率预算时,数据存储系统100可以执行功率管理操作以减少或限制功耗。在一些功率管理情况中,一些组件(例如NVM 130)的性能可能会降低、受限制或被节流。数据存储系统100可以包括经配置以执行功率管理功能的组件和电路。功率额度/信用(credit)分配块124将功率额度/信用分配给通道控制器112和相关联的NVM 130,并且每个通道控制器112具有等待控制块146和NVM控制块148,以用于基于所分配的功率额度来控制功率节流。功率节流是指,例如频率和/或电压降低的操作,其可以降低节流电路或组件的功耗。功率额度可以对应于电路可以使用的一定量的功率。当通道控制器122及其相关联的NVM 130被分配了一定量的功率额度时,通道控制器122和NVM 130可以使用与所分配的功率额度相对应的功率量,例如以执行存储器命令。
图2的流程图根据一些实施例说明了功率管理过程200。在中央控制器侧,功率额度分配块124将功率额度分配给每个通道控制器(202)。在通道控制器侧,等待控制块126可以确定所分配的功率额度是否足以执行其命令队列134中的待处理的存储器命令(204)。如果需要的话,等待控制块146可以向NVM控制块148输出等待(WAIT)信号以控制NVM 130的功率节流。如果足够的功率额度可用于执行命令队列134中的存储器命令,则WAIT信号可以指示不进行节流(206)。反之,如果分配的功率额度不足,则WAIT信号可以指示节流(208)。
在功率节流期间,NVM控制块148能够减慢向NVM 130发送存储器命令的速度和/或NVM 130处的操作的速度,使得功耗可以降低。当NVM控制块148减慢存储器命令执行时,命令队列134的积压可以增加。该情况下,命令队列134具有背压(backpressure)或增加了背压。等待控制块146可以向功率额度分配块124提供关于命令队列134的积压或背压的反馈。当NVM 130被节流以减少功耗时,中央控制器110和/或通道控制器112可以不需要全速(即,以额定时钟速率或频率运行)运行。该情况下,DFS控制块116可以按比例缩减中央控制器110和/或通道控制器112的时钟频率(210)。通道控制器112的时钟可以根据其相应的命令队列处的背压而按比例缩减到不同的程度。
图3的流程图根据一些实施例说明了无功功率控制过程300。响应于中央控制器110和通道控制器112之间的存储器命令处理吞吐量的不平衡,数据存储系统100可以利用该无功功率控制过程来动态地改变控制器的时钟频率。在控制器中节省的功率可以被回收为功率额度,并且因此可以为通道控制器/NVM提供更多的功率额度或者降低系统的整体功耗。
在框302处,中央控制器110向多个通道控制器112发出存储器命令304。例如,每个通道控制器112包括命令队列134,以用于针对多组NVM设备(例如,NVM 130)的不同组,存储对应的存储器命令。命令队列可以是一个FIFO缓冲区,该缓冲区可以容纳一定数量的待处理存储器命令。
在框306处,每个通道控制器112向中央控制器110提供在命令队列134中待处理的存储器命令的积压信息308。命令队列134中的每一个可以具有指示其积压或背压的输出。例如,信号可以指示命令队列中待处理的存储器命令的数量或命令队列的使用级别。当通道控制器112接收新的存储器命令的速度快于其能够完成待处理存储器命令的速度时,背压增加。
在框310处,中央控制器110基于积压信息动态地调整中央控制器110的时钟频率和/或通道控制器112的相应的时钟频率,使得相应的命令队列中待处理的存储器命令能够保持在预定阈值水平以下或在一定范围内。例如,DFS控制块116可以向中央控制器110中的时钟发生器114和通道控制器112中的时钟发生器132输出合适的频率缩放因子信号312,以设置相应的时钟频率,使得数据存储系统100能够符合期望的或最小的存储器处理吞吐量或性能水平。通常,当时钟频率减少时,控制器具有较低的存储器命令处理吞吐量。因此,当中央控制器110具有较低的吞吐量时,其向命令队列134发送较少的存储器命令。在该闭环无功功率控制过程中,中央控制器110可以减少上游处理速度,使得控制器在存储器命令处理吞吐量方面保持略微超越NVM。因此,NVM接口150(例如,存储器接口)可以尽可能地保持完全占用,同时控制器能够在较低时钟频率下运行时减少功耗。
当响应于通道控制器112的命令队列134的积压,中央控制器110和/或通道控制器112的时钟动态地减少时,在控制器处的节省功率可被回收为可以对NVM 130可用的功率额度。当能够将更多功率额度分配给NVM 130时,可以不需要功率节流或可以减少功率节流。因为响应于中央控制器和通道控制器之间的命令处理吞吐量的不平衡而调整功率,所以这种闭环功率控制过程可称为无功功率管理。
通常,当命令队列134具有背压时,通道控制器112尽可能快地操作以跟上来自中央控制器110的上游的命令通信量。在该情况下,中央控制器110可以减慢其时钟,使得较少的存储器命令被处理并将较少的存储器命令发送到通道控制器112处的命令队列134。在如上所述的节流期间,对NVM 130处的存储器操作(例如读取、写入、擦除)进行选通(gate)、限制或调整。例如,NVM控制块148可以通过NVM接口150选通或限制向NVM 130发出存储器命令。因此,在节流期间,通道控制器112可以较慢地操作并且仍然跟上NVM 130。即,在节流期间,背压可能由存储器命令的选通引起,而不是由通道控制器112太慢而不能跟上上游中央控制器110引起。因此,在一些情况下,中央控制器110和/或通道控制器112可以减慢速度以减少功耗,而不增加命令队列处的背压。当中央控制器110的时钟频率和/或任何通道控制器112的时钟频率被调整(例如降低)时,中央控制器110或通道控制器112可以维持NVM接口150的时钟频率,使得存储器命令和/或数据能够跨越存储器接口150移动而不减慢。
图4的流程图根据一些实施例说明用于控制中央控制器110的时钟频率的过程400。在框402处,中央控制器110确定通道控制器112中的所有命令队列的命令队列级别。例如,DFS控制块116可以从每个通道控制器的命令队列134接收积压信息。积压信息指示命令队列134中待处理的存储器命令的级别或数量。在判定框404,中央控制器确定是否所有队列级别(例如,组合队列级别)都在阈值死区(dead zone)内。例如,当所有队列级别都在阈值死区内(即,“是”路径)时,中央控制器110不改变中央控制器110的时钟频率。阈值死区可以是队列级别的预定范围,在其中,中央控制器能够维持其当前时钟频率并且实现通道控制器之间的预定(例如,最小)存储器命令处理吞吐量。在一些示例中,不同的通道控制器可以针对它们相应的命令队列而具有相同或不同的阈值死区。
在判定框406处,当一个或更多个队列级别不在阈值死区内时,中央控制器110确定是否所有队列级别都高于预定阈值。针对通道控制器112可以使用相同的阈值或不同的相应的阈值。当所有的队列级别都高于预定阈值时,这可以指示所有的命令队列都具有背压。如果存在来自任何通道控制器的背压,无论是否进行节流,这意味着一个或更多个通道控制器不能跟上,因此中央控制器110可以减慢并且仍然跟上通道控制器112。在框408处,中央控制器110确定其时钟频率是否高于最小频率。如果中央控制器的时钟频率高于最小频率,则在框410处,中央控制器110可以利用DFS控制块116来降低中央控制器的时钟频率。例如,DFS控制块116可以向时钟发生器114输出频率缩放因子信号以降低其时钟频率。
在框412处,当并非所有队列级别均高于阈值时,中央控制器110确定其时钟频率是否低于最大频率。如果中央控制器的时钟频率低于最大频率,则在框414处,中央控制器110可利用DFS控制块116来增加中央控制器的时钟频率。
图5和图6的流程图根据一些实施例说明了用于控制通道控制器112的时钟频率的控制过程500和600。例如,中央控制器110可以在使用图4的过程400调整中央控制器110的时钟频率之后,执行过程500以控制N个通道控制器112的时钟频率。参照图5,在框416处,中央控制器110可以根据图6中所说明的算法来控制第一通道控制器112的时钟频率。参照图6,在判定框602处,中央控制器110确定命令队列级别是否在阈值死区内。例如,当队列级别在阈值死区内时(即,遵循“是”路径),中央控制器110不改变该特定通道控制器112的时钟频率。阈值死区可以是队列级别的预定范围,在其中通道控制器可以保持其当前时钟频率,同时提供期望的存储器命令处理吞吐量。在一些示例中,不同的通道控制器可以针对它们相应的命令队列具有相同或不同的阈值死区。
在判定框604处,当队列级别不在阈值死区内时,中央控制器110确定队列级别是否高于预定阈值。针对不同的通道控制器112可以使用相同的阈值或不同的相应的阈值。当队列水平高于预定阈值时,这可以指示命令队列/通道控制器具有高背压。在该情况下(即,遵循“是”路径),在判定框606处,中央控制器110确定通道控制器的时钟频率是否低于最大频率。如果通道控制器的时钟频率低于最大频率,则在框608处,中央控制器110可以利用DFS控制块116来增加通道控制器的时钟频率。增加时钟频率可以增加存储器命令处理吞吐量以减少命令队列的背压。
在判定框610处,如果队列级别不高于预定阈值,则中央控制器110确定通道控制器的时钟频率是否高于最小频率。如果通道控制器的时钟频率高于最小频率,则在框612处,中央控制器110可以利用DFS控制块116来降低通道控制器的时钟频率。例如,DFS控制块116可以将频率缩放因子信号输出到时钟发生器132以调整(例如,降低或增加)通道控制器112的时钟频率。降低时钟频率可减少通道控制器的功耗。
中央控制器110可以以重复图6中所说明的上述算法,以控制每个通道控制器112的时钟频率。参考图5,在框418处,中央控制器110可以利用相同算法来控制第二通道控制器112的时钟频率。随后,在框420处,中央控制器110可以利用图6中所说明的算法来控制第N个通道控制器112的时钟频率。
如上所述,响应于命令队列的背压,中央控制器110和通道控制器112的时钟频率被动态地控制或调整。如果存在来自任何通道控制器的背压,无论是否进行节流,这意味着一个或更多个通道控制器112不能跟上,并且因此中央控制器110可以减慢并且仍然跟上一个或更多个通道控制器112。如果正在使用节流,则可以通过,例如通道控制器112和/或NVM130,回收中央控制器中节省的功率,从而导致对于相同功率消耗,节流减少并且性能提高。如果不使用节流,则能够降低整体系统功率,导致在相同性能下,较低的整体系统功耗。
在一些实施例中,每个通道控制器112可以在包括NVM 130的若干个流水线级中实施。可以单独调整流水线级的时钟频率以保持流水线级在吞吐量上平衡。例如,如果存在对于流水线级可用的一定量的功率(例如,功率额度),但是不足以以额定频率处同时操作所有流水线级,则中央控制器110可以调整每个流水线级或组件的时钟频率,以动态地分享可用功率,同时确保每级都能够保持最低的性能水平。例如,当完成当前NVM操作(例如,读取、写入、擦除)时,可用功率量可以增加并且一个或更多个流水线级可以被加速到更高的时钟频率。在另一个例子中,当在流水线级中是“超额”性能并且NVM操作仍然待处理时,这意味着流水线级的吞吐量高于NVM。在该情况下,可以减慢一个或更多个流水线级以平衡NVM与流水线的性能水平。
在一些实施例中,数据存储设备可以包括多种装置,其用于执行上面关于图1-图6所描述的多种功能和过程。例如,数据存储设备可以包括多个第一装置。每个第一装置可以是命令队列134,命令队列134能够存储用于一组NVM设备130的存储器命令并且提供关于待处理存储器命令的积压信息。数据存储设备可以包括第二装置,其用于向多个第一装置发布存储器命令并且用于接收积压信息。例如,第二装置可以是存储器命令处理器120。数据存储设备可以包括第三装置,其用于基于积压信息调整第二装置和多个第一装置的存储器命令处理吞吐量,使得每个第一装置中的待处理存储器命令低于预定阈值水平。例如,第三装置可以是动态频率调整(DFS)控制块116。
在一个实施例中,该过程可以以不同的顺序执行动作序列。在另一个实施例中,该过程可以跳过一个或更多个动作。在其他实施例中,一个或更多个动作被同时执行。在一些实施例中,可以执行额外的动作。
虽然以上描述包含了本发明的许多具体实施例,但这些不应被解释为对本发明的范围的限制,而是被解释为其具体实施例的示例。因此,本发明的范围不应由所说明的实施例来确定,而应由所附权利要求及其等同物来确定。
上述多种特征和过程可以彼此独立地使用,或者可以以多种方式组合。所有可能的组合和子组合均被考虑为落入本公开的范围内。另外,在一些实施方式中可以省略某些方法、事件、状态或过程块。本文描述的方法和过程也不限于任何特定的序列,并且与其相关的块或状态能够以适当的其他序列来执行。例如,所描述的任务或事件可以以不同于具体公开的顺序执行,或者可以将多个任务或事件组合在单个块或状态中。示例任务或事件可以串行、并行或以某个其他合适的方式执行。可以向所公开的示例实施例添加任务或事件或者从中移除任务或事件。本文描述的示例系统和组件可以被配置为与所描述的不同。例如,与公开的示例性实施例相比,单元可以被添加到其中、从其中移除或重新排列。
Claims (20)
1.一种数据存储设备,包括:
多组非易失性存储器设备,即多组NVM设备;
中央控制器;以及
多个通道控制器,每个通道控制器耦合到所述多组NVM设备的不同组,每个通道控制器包括命令队列,所述命令队列经配置以存储待处理存储器命令并提供积压信息,
其中所述中央控制器经配置以:
接收所述多个通道控制器的所述命令队列的所述积压信息;以及
基于所述积压信息调整所述中央控制器的时钟频率和所述多个通道控制器的一个或更多个时钟频率,使得所述命令队列中的每一个中的所述待处理存储器命令低于预定阈值水平。
2.根据权利要求1所述的数据存储设备,其中所述中央控制器进一步经配置以:
当所述积压信息指示所述通道控制器中的至少一个的所述命令队列中的所述待处理存储器命令超过预定阈值水平时,降低所述中央控制器的所述时钟频率。
3.根据权利要求1所述的数据存储设备,其中所述中央控制器进一步经配置以:
基于所述积压信息降低所述多个通道控制器的所述一个或更多个时钟频率或所述中央控制器的所述时钟频率中的至少一个。
4.根据权利要求3所述的数据存储设备,其中所述中央控制器进一步经配置以:
当所述积压信息指示所述中央控制器的存储器命令处理吞吐量与所述通道控制器中的至少一个的存储器命令处理吞吐量不同时,降低所述多个通道控制器的所述一个或更多个时钟频率或所述中央控制器的所述时钟频率中的至少一个。
5.根据权利要求3所述的数据存储设备,其中所述多个通道控制器中的每一个经配置以:
保持耦合在所述多个通道控制器与所述多组NVM设备之间的存储器接口的时钟频率。
6.根据权利要求3所述的数据存储设备,其中所述中央控制器进一步经配置以:
当降低所述多个通道控制器的所述一个或更多个时钟频率或所述中央控制器的所述时钟频率中的至少一个时,确定对应于节省功率的回收功率额度;以及
将所述回收功率额度分配给所述多个通道控制器中的一个或更多个以用于执行存储器命令。
7.根据权利要求1所述的数据存储设备,其中所述多个通道控制器中的每一个经配置以:
确定所述积压信息;
至少部分地基于所述积压信息接收由所述中央控制器分配的功率额度;以及
根据接收到的所述功率额度来限制所述命令队列中的存储器命令的执行。
8.根据权利要求7所述的数据存储设备,其中所述多个通道控制器中的每一个进一步经配置以:
基于所述功率额度控制向所述多组NVM设备中的所述不同组发布所述存储器命令的速度。
9.一种操作包括中央控制器和多个通道控制器的数据存储设备的方法,所述方法包括:
在所述中央控制器处,向所述多个通道控制器发出存储器命令,所述通道控制器中的每一个包括命令队列,所述命令队列用于存储针对多组非易失性存储器设备即多组NVM设备的不同组的对应的存储器命令,并且提供积压信息;
在所述中央控制器处,接收所述命令队列中的待处理存储器命令的所述积压信息;以及
基于所述积压信息调整所述中央控制器的时钟频率和所述多个通道控制器的一个或更多个时钟频率,使得所述命令队列中的每一个中的所述待处理存储器命令低于预定阈值水平。
10.根据权利要求9所述的方法,还包括:
基于所述积压信息降低所述多个通道控制器的所述一个或更多个时钟频率或所述中央控制器的所述时钟频率中的至少一个。
11.根据权利要求10所述的方法,还包括:
当所述积压信息指示所述中央控制器的存储器命令处理吞吐量与所述通道控制器中的至少一个的存储器命令处理吞吐量不同时,降低所述多个通道控制器的所述一个或更多个时钟频率或所述中央控制器的所述时钟频率中的至少一个。
12.根据权利要求10所述的方法,还包括:在所述多个通道控制器中的每一个处:
保持耦合在所述多个通道控制器与所述多组NVM设备之间的存储器接口的时钟频率。
13.根据权利要求10所述的方法,还包括:
当降低所述多个通道控制器的所述一个或更多个时钟频率或所述中央控制器的所述时钟频率中的至少一个时,确定对应于节省功率的回收功率额度;以及
将所述回收功率额度分配给所述多个通道控制器中的一个或更多个以用于执行存储器命令。
14.根据权利要求9所述的方法,还包括:在所述通道控制器中的每一个处:
确定所述命令队列的所述积压信息;
至少部分地基于所述积压信息接收由所述中央控制器分配的功率额度;以及
根据接收到的所述功率额度来限制所述命令队列中的存储器命令的执行。
15.根据权利要求14所述的方法,还包括:在所述多个通道控制器中的每一个处:
基于所述功率额度控制向所述多组NVM设备中的所述不同组发布所述存储器命令的速度。
16.一种数据存储设备,包括:
多组非易失性存储器设备即多组NVM设备;
多个第一装置,每个第一装置用于存储针对所述多组NVM设备的不同组的存储器命令并且用于提供关于待处理存储器命令的积压信息;
第二装置,用于向所述多个第一装置发出所述存储器命令,并用于接收所述积压信息;以及
第三装置,用于基于所述积压信息调整所述第二装置和所述多个第一装置的存储器命令处理吞吐量,使得每个第一装置中的所述待处理存储器命令低于预定的阈值水平。
17.根据权利要求16所述的数据存储设备,其中所述第三装置包括用于基于所述积压信息来减少所述一个或更多个第一装置或所述第二装置中的至少一个的所述存储器命令处理吞吐量的装置。
18.根据权利要求17所述的数据存储设备,其中所述第三装置还包括当所述积压信息指示所述第二装置的所述存储器命令处理吞吐量与所述多个第一装置中的至少一个的所述存储器命令处理吞吐量不同时,用于减少所述一个或更多个第一装置或所述第二装置中的至少一个的所述存储器命令处理吞吐量的装置。
19.根据权利要求17所述的数据存储设备,还包括:
用于保持耦合在所述多个第一装置与所述多组NVM设备之间的存储器接口的时钟频率的装置。
20.根据权利要求16所述的数据存储设备,其中所述第一装置中的每一个包括:
用于至少部分地基于所述积压信息来接收功率额度的装置;以及
用于根据接收的所述功率额度来限制所述待处理存储器命令的执行的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/716,961 | 2017-09-27 | ||
US15/716,961 US10514748B2 (en) | 2017-09-27 | 2017-09-27 | Reactive power management for non-volatile memory controllers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558071A true CN109558071A (zh) | 2019-04-02 |
CN109558071B CN109558071B (zh) | 2022-04-05 |
Family
ID=65638739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810633931.3A Active CN109558071B (zh) | 2017-09-27 | 2018-06-20 | 非易失性存储器控制器的无功功率管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10514748B2 (zh) |
CN (1) | CN109558071B (zh) |
DE (1) | DE102018115131A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185395A (zh) * | 2020-09-15 | 2022-03-15 | 爱思开海力士有限公司 | 电子装置及其操作方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102615227B1 (ko) * | 2018-02-01 | 2023-12-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102669517B1 (ko) * | 2018-12-14 | 2024-05-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN111913651B (zh) * | 2019-05-10 | 2024-03-01 | 技嘉科技股份有限公司 | 固态硬盘以及固态硬盘的效能优化方法 |
TWI718532B (zh) * | 2019-05-10 | 2021-02-11 | 技嘉科技股份有限公司 | 固態硬碟以及固態硬碟的效能優化方法 |
US11079822B2 (en) * | 2019-06-28 | 2021-08-03 | Western Digital Technologies, Inc. | Integrated power and thermal management in non-volatile memory |
TWI743620B (zh) * | 2019-12-11 | 2021-10-21 | 瑞昱半導體股份有限公司 | 效能管理方法及電子裝置 |
US11314315B2 (en) * | 2020-01-17 | 2022-04-26 | Samsung Electronics Co., Ltd. | Performance control of a device with a power metering unit (PMU) |
EP4222580A1 (en) * | 2020-11-18 | 2023-08-09 | Google LLC | Controlling memory frequency based on transaction queue occupancy |
US20230040336A1 (en) * | 2021-08-06 | 2023-02-09 | Micron Technology, Inc. | Adaptive throughput monitoring |
US11768531B2 (en) * | 2021-12-30 | 2023-09-26 | Western Digital Technologies, Inc. | Power management for storage controllers |
US11838033B1 (en) | 2022-09-20 | 2023-12-05 | Western Digital Technologies, Inc. | Partial speed changes to improve in-order transfer |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100274953A1 (en) * | 2009-04-23 | 2010-10-28 | Samsung Electronics Co., Ltd. | Data storage device and information processing system incorporating data storage device |
CN102750226A (zh) * | 2011-02-28 | 2012-10-24 | 苹果公司 | 具有非易失性存储器的系统的高效缓冲 |
US20130097433A1 (en) * | 2011-10-18 | 2013-04-18 | Stec, Inc. | Systems and methods for dynamic resource management in solid state drive system |
CN105487814A (zh) * | 2014-09-22 | 2016-04-13 | Hgst荷兰公司 | 数据存储设备的性能感知功率封顶控制 |
CN106662979A (zh) * | 2014-04-29 | 2017-05-10 | 桑迪士克科技有限责任公司 | 在非易失性存储器系统中基于用电量的节流命令执行 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805558B2 (en) * | 2005-10-31 | 2010-09-28 | Hewlett-Packard Development Company, L.P. | Method and system of controlling transfer speed of bus transactions |
US10459855B2 (en) * | 2016-07-01 | 2019-10-29 | Intel Corporation | Load reduced nonvolatile memory interface |
-
2017
- 2017-09-27 US US15/716,961 patent/US10514748B2/en active Active
-
2018
- 2018-06-20 CN CN201810633931.3A patent/CN109558071B/zh active Active
- 2018-06-22 DE DE102018115131.4A patent/DE102018115131A1/de active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100274953A1 (en) * | 2009-04-23 | 2010-10-28 | Samsung Electronics Co., Ltd. | Data storage device and information processing system incorporating data storage device |
CN102750226A (zh) * | 2011-02-28 | 2012-10-24 | 苹果公司 | 具有非易失性存储器的系统的高效缓冲 |
US20130097433A1 (en) * | 2011-10-18 | 2013-04-18 | Stec, Inc. | Systems and methods for dynamic resource management in solid state drive system |
CN106662979A (zh) * | 2014-04-29 | 2017-05-10 | 桑迪士克科技有限责任公司 | 在非易失性存储器系统中基于用电量的节流命令执行 |
CN105487814A (zh) * | 2014-09-22 | 2016-04-13 | Hgst荷兰公司 | 数据存储设备的性能感知功率封顶控制 |
Non-Patent Citations (2)
Title |
---|
PAPADOPOULI M: "Effects of power conservation,wireless coverage and cooperation on data dissemination among mobile devices", 《ACM MOBIHOC》 * |
曾文英: "面向移动环境的数据存储管理方法关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185395A (zh) * | 2020-09-15 | 2022-03-15 | 爱思开海力士有限公司 | 电子装置及其操作方法 |
CN114185395B (zh) * | 2020-09-15 | 2024-03-15 | 爱思开海力士有限公司 | 电子装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102018115131A1 (de) | 2019-03-28 |
US10514748B2 (en) | 2019-12-24 |
US20190094938A1 (en) | 2019-03-28 |
CN109558071B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558071A (zh) | 非易失性存储器控制器的无功功率管理 | |
US10546648B2 (en) | Storage control system with data management mechanism and method of operation thereof | |
US9183137B2 (en) | Storage control system with data management mechanism and method of operation thereof | |
KR101363844B1 (ko) | 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들 | |
US9244519B1 (en) | Storage system with data transfer rate adjustment for power throttling | |
US9329986B2 (en) | Peak current management in multi-die non-volatile memory devices | |
US8539139B1 (en) | Managing device wearout using I/O metering | |
KR102430209B1 (ko) | 저장 장치 및 저장 장치에 포함된 컨트롤러들 | |
US9323584B2 (en) | Load adaptive data recovery pipeline | |
US20170084344A1 (en) | Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives | |
US11321133B2 (en) | Determining an allocation of stage and destage tasks by using a machine learning module | |
US20170351604A1 (en) | Host and garbage collection write ratio controller | |
US10089266B2 (en) | Power saving feature for storage subsystems | |
WO2020263315A1 (en) | Integrated power and thermal management in non-volatile storage | |
US9971534B2 (en) | Authoritative power management | |
US11853204B2 (en) | Memory system and garbage collection control method | |
CN111065997A (zh) | 用于存储介质的协同数据迁移 | |
US20210081115A1 (en) | Ssd supporting low latency operation | |
US20130326249A1 (en) | Regulating power consumption of a mass storage system | |
KR20240004372A (ko) | 고체 상태 드라이브에서의 호스트 제어 가비지 수집 | |
WO2019118251A1 (en) | Performance level adjustments in memory devices | |
US9367353B1 (en) | Storage control system with power throttling mechanism and method of operation thereof | |
US9479001B2 (en) | Technique for supplying power to a load via voltage control and current control modes of operation | |
US9280422B2 (en) | Dynamic distribution of code words among multiple decoders | |
KR20220120277A (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 |