CN109426557A - 基于信用的命令调度 - Google Patents
基于信用的命令调度 Download PDFInfo
- Publication number
- CN109426557A CN109426557A CN201810936134.2A CN201810936134A CN109426557A CN 109426557 A CN109426557 A CN 109426557A CN 201810936134 A CN201810936134 A CN 201810936134A CN 109426557 A CN109426557 A CN 109426557A
- Authority
- CN
- China
- Prior art keywords
- power
- order
- stage
- power dissipation
- budget
- 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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
本发明涉及一种基于信用的命令调度。一种存储器系统包含存储器控制器,所述存储器控制器具有实施于硬件逻辑块中的存储体命令调度器及包含功率预算寄存器及信用寄存器的功率预算控制器。所述硬件逻辑块能够确定队列中待经由信道发射到存储器组的命令,估计所述命令的功率消耗值,且查询所述功率预算控制器以确定所述功率消耗值是否在阈值内。如果所述功率消耗值在所述阈值内,那么所述硬件逻辑块从所述功率预算控制器接收准予响应,将所述功率消耗值添加到信用寄存器值,经由所述信道发射所述命令,且将指示已执行所述命令且应从所述信用寄存器值减去所述功率消耗值的信号发射到所述功率预算控制器。
Description
技术领域
本发明大体上涉及用以经由存储器系统中的多个信道及存储器装置的存储体在功率预算内调度命令传递的系统及方法。
背景技术
固态驱动器(SSD)包含连接到多个NAND闪存器装置的存储器控制器,所述多个NAND闪存器装置被组织成具有处理命令及操作的裸片存储体的多个信道。SSD包含调度器,所述调度器确定应横越多个信道将包含读取、写入及擦除命令的命令发出到在给定时间并行运行的多个存储体的次序。横越SSD的并行性允许实现SSD的高性能。在给定时间横越所有裸片消耗的总功率可能超出SSD的电源的最大功率容量。在传统上,已使用软件来实施SSD中的功率节流措施,例如通过限制队列中的待处理NAND闪存器操作的总数目来管理功率消耗。将由软件通过计算由调度器发射的每一操作的平均功率消耗的总数来确定功率消耗估计值。基于传统软件的功率节流法不足以高效地管理现代SSD的功率预算,这是由于命令的硬件调度的时序与软件操作并非紧密相关。
如传统上应用于SSD的软件节流提供使性能显著降级的保守方法。软件功率节流并非实时进行,而是依赖于如在软件处接收到的命令发出时序及报告时序,因此软件无法确切知道NAND闪存器操作何时开始或结束。在软件检测的时序与实际操作的时序之间可能存在相当大的间隔。
在功率节流中使用的软件还缺少关于命令的目的地存储体的信息及由软件批准的命令的历史。软件可批准在功率消耗预算内的多个命令,但在一些情况下,所有经批准命令经由单个信道依序发射,从而低效地利用SSD的资源及功率预算。
此外,在传统基于软件的功率节流系统中,命令的所估计功率消耗不包含高效使用SSD资源所需的粒度级别。举例来说,不考虑传统基于软件的功率节流系统中的I/O切换功率消耗。在现代系统中,此情况可能导致严重低估给定命令的功率消耗,这是因为来自I/O切换的功率消耗的贡献随着现代装置的I/O速度变快而增大。
最后,在软件功率节流内的NAND操作的电流耗散模型传统上包含静态值的简单平均值,且不考虑在使用SSD期间的耗散变化。
因此,长久以来,需要校正现代系统所固有的问题。
发明内容
在一方面中,一种存储器系统包含存储器控制器,所述存储器控制器具有实施于硬件逻辑块中的存储体命令调度器及包含预算寄存器及信用寄存器的功率预算控制器两者。所述存储器控制器还包含具有I/O总线的存储器组及将所述I/O总线连接到所述存储器控制器的信道。所述信道经配置以在所述存储器组与所述存储器控制器之间发射数据,且将命令从所述存储器控制器发射到所述存储器组。所述硬件逻辑块确定队列中待发射到所述存储器组的第一命令,估计所述第一命令的第一功率消耗值,且查询所述功率预算控制器以确定所述第一功率消耗值是否满足阈值。如果第一功率消耗值满足阈值,那么所述硬件逻辑块经由所述信道将所述第一命令发射到所述存储器组,且将指示已执行所述第一命令的信号发射到所述功率预算控制器。
在另一方面中,一种基于功率消耗预算而发射命令的方法包含:由硬件逻辑块选择待经由信道发送到NAND存储体的第一命令;选择所述第一命令的第一阶段;估计所述第一阶段的第一功率消耗值;及在功率预算控制器处将经估计第一功率消耗值同目前功率信用寄存器的值与功率预算寄存器的值之间的差进行比较。如果所述经估计第一功率消耗值小于所述差,那么所述方法包含:将所述经估计第一功率消耗值添加到所述目前功率信用寄存器的所述值;经由所述信道将所述第一命令的所述第一阶段发射到所述NAND存储体;及在已执行所述第一命令的所述第一阶段之后,减去所述目前功率信用寄存器的所述经估计第一功率消耗值。
附图说明
图1展示根据实施例的包含功率预算控制器及在决策逻辑中实例化的功率信用管理器的SSD的框图;
图2展示根据实施例的单信道的具有决策逻辑的存储体调度器的框图;
图3展示根据实施例的到用于信道的功率信用管理器的输入的框图;
图4展示基于写入程序的NAND闪存器操作阶段的简单电流模型化的标绘图;
图5展示基于读取命令的NAND闪存器操作阶段的简单电流模型化的标绘图;
图6展示基于擦除命令的NAND闪存器操作阶段的简单电流模型化的标绘图;
图7展示基于为了读取命令暂停的擦除命令的NAND闪存器操作阶段的简单电流模型化的标绘图;
图8展示基于与读取命令交错的程序命令的调度的NAND闪存操作阶段的简单电流模型化的标绘图;
图9展示说明使用操作的实际功率测量结果来校准系统的过程的流程图;
图10展示说明根据实施例的操作能量的计算的标绘图;且
图11展示使用硬件支持逻辑来调度命令以管理功率消耗的过程的流程图。
具体实施方式
图1展示示意性地说明根据本发明的实施例的固态驱动器(SSD)102的结构的框图100。SSD 102以通信方式耦合到主机装置112。
主机装置112经由符合存储接口标准的通信接口114连接到SSD 102。SSD 102充当主机装置112的外部大容量存储装置。例如SATA(串行高级技术附件)、SAS(串行附接的SCSI)、PCIe(外围组件高速互连)等标准为SSD 102与主机装置112之间的通信接口标准的实例。
SSD 102包含闪存器控制器116、随机存取存储器(RAM)118、NAND电源150及NAND存储器装置120。闪存器控制器116包含通信介面114、快闪转译层(FTL)122、处理器124、静态随机存取存储器(SRAM)126、只读存储器(ROM)128、NAND存储器控制器130及功率预算控制器105。NAND存储器控制器130包含具有第一决策逻辑106的第一存储体调度器104及具有第二决策逻辑110的第二存储体调度器108。功率预算控制器105包含信用寄存器109及预算寄存器111。功率预算控制器105通过硬件逻辑与NAND存储器控制器130中的第一存储体调度器104及第二存储体调度器108通信。
NAND存储器装置120包含一或多个装置,每一装置由通过多信号数据及控制信道耦合到NAND存储器控制器130的裸片的多个存储体组成。图1的NAND存储器装置120包含第一NAND存储器装置组132及第二NAND存储器装置组140,第一NAND存储器装置组132具有通过第一信道(CH0)138耦合到第一存储体调度器104的第一存储体(Bank1 0)134及第二存储体(Bank1 1)136,且第二NAND存储器装置组140具有通过第二信道(CH1)146耦合到第二存储体调度器108的装置或裸片的第一存储体(Bank20)142及第二存储体(Bank2 1)144。第一电源轨137及第二电源轨145分别将功率从NAND电源150提供到第一存储体命令调度器104及第二存储体命令调度器108。经由第一信道(CH0)138发送的命令的功率消耗可使用将NAND电源150连接到第一存储体命令调度器104的第一感测链路151在电源轨137处进行测量,并且可使用将NAND电源150连接到第二存储体命令调度器108的第二感测链路152在电源轨145处进行测量。第一存储体命令调度器104及第二存储体命令调度器108中的每一个包含在硬件逻辑中实例化的相关联功率信用管理器,如下文将进一步论述。
NAND存储器装置120为经配置以存储从主机装置112读取且写入主机装置112中的数据的非易失性(非暂时性)NAND存储器装置(例如,第一NAND存储器装置组132及第二NAND存储器装置组140)。闪存器控制器116对SSD 102执行(实行)数据传送控制。RAM 118暂时地存储通过闪存器控制器116在主机112与NAND存储器装置120之间传送的数据。RAM 118充当NAND存储器装置120的数据高速缓冲存储器,且可使用动态随机存取存储器(DRAM)、铁电随机存取存储器(FeRAM)、磁阻随机存取存储器(MRAM)等等。
闪存器控制器116中的处理器124执行ROM 128中的启动代码,从而转移对在SRAM126中运行的FTL固件的控制以经由RAM 118管理主机接口114与NAND存储器控制器130之间的数据互换。
闪存器控制器116通过一或多个闪存器总线介接到NAND存储器装置120,所述一或多个闪存器总线被称为信道,包括多个数据及控制信号。为简单起见,图1仅展示两个信道——第一信道(CH0)138及第二信道(CH1)146,但可存在8个、16个或更多信道。在每一信道上,可存在多个NAND存储器装置(例如,第一NAND存储器装置组132及第二NAND存储器装置组140),其中每一装置内具有多个存储器裸片。裸片或装置可一起分组成可使用芯片启用信号来独立选择的单位(即,存储体)。为简单起见,图1仅展示每信道两个存储体——Bank 0及Bank 1,但可存在每信道8个、16个或更多存储体。每一信道具有在下文所论述的硬件逻辑中实例化的相关联功率信用管理器,所述功率信用管理器确定针对经由信道发射的每一命令所消耗的功率,从功率预算控制器105请求发射命令的权限,且在所消耗的功率记录在信用寄存器109中的情况下将所述功率报告到功率预算控制器105。
NAND存储器控制器130包含存储体调度器(104、108),所述存储体调度器对应于信道中的每一个——第一信道(CH0)138及第二信道(CH1)146。第一存储体调度器104控制发出到第一信道(CH0)138上的第一存储体(Bank1 0)134及第二存储体(Bank1 1)136的存储器命令的调度。第二存储体调度器108控制发出到第二信道(CH1)146上的第一存储体(Bank2 0)142及第二存储体(Bank2 1)144的存储器命令的调度。
第一逻辑块106及第二逻辑块110分别在NAND存储器控制器130中提供位操作及支持逻辑以用于第一存储体调度器104及第二存储体调度器108内的存储体选择。第一逻辑块106及第二逻辑块110为硬件实施的逻辑块,包含逻辑门及指示第一NAND存储器装置组132及第二NAND存储器装置组140以及第一信道(CH0)138及第二信道(CH1)146中的装置的状态的直接硬件输入,以及来自信用寄存器109、硬件寄存器111及两个寄存器的比较的输入。逻辑块106及110使得存储体调度器104及108能够调度被发射到第一NAND存储器装置组132及第二NAND存储器装置组140中的存储体的命令,以将装置功率消耗维持在设定的阈值之下。
第一存储体调度器104及第二存储体调度器108使用第一逻辑块106及第二逻辑块110来调度被发射到第一存储体(Bank1 0)134及第二存储体(Bank1 1)的命令。第一存储体调度器104使用第一逻辑块106及相关联功率信用管理器来确定队列中的下一命令且从功率预算控制器105请求发射命令及使用SSD装置102的总功率预算的一部分的权限。第一存储体调度器104与功率预算控制器105通信以将装置的总功率消耗保持在功率消耗预算内。例如以固定数目个焦耳每秒(1J/s=1瓦)形式测量的平均功率消耗预算可由用户或制造者设定、在发起装置时确定,或可取决于各种因素(包含装置温度、功率模式及装置使用量)而周期性地更新。在发送命令之后,平均功率消耗预算值存储在功率预算控制器105的预算寄存器111中。在第一存储体调度器104及第二存储体调度器108内的硬件实施的逻辑块允许调度器将信息发射到功率预算控制器105及其信用寄存器109以及预算寄存器111以确定队列中的下一命令是否在功率消耗预算内。
命令的发射及执行需要随时间的某一电流量。例如读取、写入及擦除等命令在命令执行期间具有不同的电流分布。因为用于每种类型的命令的电流随着完成命令的过程而变化,所以第一存储体调度器104使用在第一决策逻辑106中实例化的功率信用管理器将命令分成在执行时段内具有平均电流及相关联平均功率的一或多个阶段。举例来说,程序命令可分成第一I/O感测功率阶段及第二单元程序功率阶段。读取命令可分成第一单元感测功率阶段及第二I/O切换阶段。擦除命令具有耗尽的单个平均电流且一般不分成多个阶段。
在确定命令是否应分割成一或多个阶段之后,第一决策逻辑106确定执行命令所需的经估计功率且从功率预算控制器105请求发射命令的权限且使用经估计功率。可通过访问与命令类型相关联的经估计电流的寄存器或查找表来确定功率估计。功率预算控制器105接收命令的功率估计且确定目前功率预算是否能够允许执行命令。此可通过以下操作来确定:将命令的经估计功率同预算寄存器111的值与信用寄存器109的值之间的差进行比较,预算寄存器111的值含有以焦耳每秒为单位的目前功率预算,信用寄存器109的值含有当前正通过执行SSD中的各种程序及命令来使用的功率的量的计数。如果信用寄存器109的值比存储在预算寄存器111中的目前功率预算值小等于或大于命令的经估计功率的量,那么功率预算控制器105将准予第一决策逻辑106发射命令的权限以用于在存储体上执行。
在一些实施方案中,功率预算控制器105遵循当前在信用寄存器109中执行命令时使用的功率的加法记录。当未执行命令时,信用寄存器109可具有值零,且在由功率预算控制器105批准所述命令时将经发射以用于执行的每一命令的功率消耗添加到信用寄存器109的值。为了确定是否存在功率预算中的可用功率,功率预算控制器105从预算寄存器111的值减去信用寄存器109的当前值,从而表示装置的总目前功率消耗。预算寄存器111的值与信用寄存器109的值之间的差为保留在可用于执行额外命令的装置的功率预算中的功率。替代地,信用寄存器109可改为以等于预算寄存器111的值的功率消耗预算开始,通过命令从预算寄存器111的值减去目前功率使用量,由此记录剩余的功率预算。在此实施方案中,不需要在信用寄存器109与预算寄存器111之间进行比较,除非为了周期性地确保总功率消耗预算对于每一者相同。
由功率预算控制器105维持且更新预算寄存器111及信用寄存器109。预算寄存器111包含功率消耗预算值,功率消耗预算值可由制造者或用户设定,或可取决于SSD装置102的功率状态。信用寄存器109包含在NAND存储器装置120的存储体上执行的所有命令的目前功率消耗的连续更新记录。当由功率预算控制器105批准命令时,将命令的经估计功率添加到信用寄存器109的值。
当已结束执行命令且在执行命令时不再耗尽功率时,第一存储体调度器104将指示命令已完成的信号发送到功率预算控制器105,且从信用寄存器109值减去与命令相关联的经估计功率。以此方式,信用寄存器109值展示SSD装置102的目前功率使用量。信用寄存器109值越匹配SSD装置102的实际目前功率使用量,SSD装置102的作用就越高效。如果命令所需的功率的估计不正确,那么功率预算控制器105可尝试准予比目前功率预算可容纳的命令更多的命令,或者,在另一方面,可过于保守地作用且不高效地使用SSD的功率资源。
通过将读取及写入(程序)命令划分成具有不同电流使用量的阶段,第一存储体命令调度器104在命令持续时间内的任何时刻更精确地估计与命令相关联的电流及功率,而不是假定平均功率消耗在整个命令持续时间期间恒定。此外,功率预算控制器105可确定第一命令的需要大量电流的某一阶段(例如,程序命令的单元程序阶段)可与第二命令的低功率消耗阶段(例如,读取命令的NAND单元感测阶段)并行地执行,所述低功率消耗阶段在不同于第一命令的时刻起始,其中对应于第一命令的I/O切换阶段的相同时刻的第二命令的阶段需要相对较低的电流消耗,且因此综上所述,第一命令及第二命令在两个命令的总时段期间的任何时刻不超出功率预算。换句话说,功率控制器可辨识,命令的高及低功率消耗阶段可以不超出功率预算的方式交错。交错可在硬件中藉由对发射每一命令的时刻准确地计时来执行,此操作在基于软件的功率节流方案中一般是不可能的。这允许SSD装置102更高效地使用可用功率资源且更快速地发射及执行命令,这是因为当功率消耗是基于在整个命令持续时间期间的恒定平均值消耗时,可能存在较多潜在机会以供命令在命令功率消耗划分成数阶段时并行地发射及执行。下文关于图8进一步描述用以高效地利用可用功率预算的命令交错。
第一决策逻辑106中的功率信用管理器的实例化及基于硬件的功率预算控制器105使得在发射或完成命令时能够更快速地更新信用寄存器109值。保持更新信用寄存器109值以准确地反映在执行命令的所有阶段使用的功率还使得功率预算控制器105能够确定在功率预算中是否存在足以执行额外命令的功率。硬件实施的逻辑块能够通过访问硬件寄存器来快速地确定命令的功率消耗估计值,且高效地处置众多变量及条件,由此提高命令处理及调度的效率,同时将装置功率消耗维持在功率消耗预算内。下文将论述功率信用管理器每信道的示范性实施例。
可周期性地更新与各种命令相关联的功率使用量的估计以确保功率估计准确。在通过校准程序初始化后,可确定命令的实际功率消耗。还可通过用命令估计协调所发射命令的实际功率消耗来周期性地更新由命令使用的经估计功率。在一时间段内经由第一信道(CH0)138发送的命令的实际功率消耗在电源轨137处由第一存储体命令调度器104使用第一感测链路151进行测量,并且在电源轨145处由第二存储体命令调度器108使用第二感测链路152进行测量。类似地,在第二命令调度器108的硬件逻辑中实例化的第二功率信用管理器确定在所述时间段内经由第二信道(CH1)146发送的命令的实际功率消耗。可将在电源轨137及145处测量到的实际功率消耗与经由信道发射的命令的经估计功率进行比较,且可相应地更新估计以更好地反映与命令执行相关联的实际功率消耗。
尽管第一存储体命令调度器104及第二存储体命令调度器108中的每一个使其自身的功率信用管理器在第一决策逻辑106及第二决策逻辑110中实例化,但单个功率预算控制器105从第一存储体命令调度器104及第二存储体命令调度器108接收且批准功率预算请求。在一些情况下,功率预算控制器105还在第一存储体命令调度器104与第二存储体命令调度器108之间进行仲裁。
举例来说,如果信用寄存器109值为完全的,例如已批准且当前正执行许多命令,那么可能不存在足以批准需要大量功率的某些命令的功率预算。如果第一存储体调度器104针对大的程序命令从功率预算控制器105请求功率容限,那么功率预算控制器105不会立刻准予请求,这是因为在功率消耗预算中的功率不足,并且第一存储体调度器等待准予指示从功率预算控制器105到来。这样使得第一存储体调度器104不等待不定的时间量以供足够的功率预算变得自由地发射及执行程序,功率预算控制器105可将优先级指派到第一存储体调度器104处的程序。将优先级指派到命令使得功率预算控制器105能够停止向其它命令准予权限,直到足够量的功率预算变得对于待执行的较大优先级命令自由为止。
在一些实施方案中,功率预算控制器105基于命令的年限而指派优先级。如果无法立刻向命令准予发射的权限,那么功率预算控制器105发起计时器,所述计时器跟踪提交命令的调度器已等待向命令准予发射权限的时间。当计时器达到设定时间阈值从而指示等待命令的“年限”时,向命令准予优先级状态,并且功率预算控制器105不准予其它命令,直到功率信用寄存器109具有足够的功率信用以使得优先级命令可被准予权限且随后发射到存储体以供执行为止。在一些实施方案中,功率预算控制器105基于来自主机的输入而将优先级指派到特定命令类型。在一些实施方案中,在存储体命令调度器处指派优先级,且队列中的某一类型的命令优先于其它命令。
在一些实施方案中,调度算法横越多个闪存信道到附接到每一信道的闪存器的多个存储体进行操作,且说明附接到所有信道的所有闪存器装置中的总功率预算。根据对功率预算的遵循,调度算法可以允许优先于其它类型的操作调度一些类型的操作。在一些实施方案中,在调度命令时,待定排队命令的年限与命令的功率成本分布组合地使用。
在一些实施例中,主机112将NAND存储器控制器130的功率消耗预算设定为用于监测且操控SSD装置102的热状态的方法。命令的功率消耗值可与(例如)根据装置的制造规范中的数据确定的SSD装置的温度上升相关联。通过监测由裸片发射且执行的每一类型的命令的数目且将其乘以每一命令类型的温度升高值,NAND存储器控制器130可监测装置的温度,且将SSD装置102的相关联热状态报告到主机112。NAND存储器控制器130说明通过逼近热耗散速率或通过参考SSD上的热传感器来计算热状态时的热耗散。主机112及/或NAND存储器控制器130可使用热状态信息通过限制功率预算来调整功率消耗,使得发射及执行较低数目个命令以允许热从SSD装置102耗散。另外,主机112及/或NAND存储器控制器130可使用热状态信息(例如)通过调整风扇转速来调整SSD装置102的冷却。
存储体调度器可基于多种因素而调度命令以供发射到存储体,所述因素包含信道可用性、队列深度、队列中的项目的年限、在队列标头处的命令的类型及所述命令类型的经估计功率消耗。图2展示根据实施例的单信道的具有决策逻辑的存储体调度器204(例如,对应于上文所描述的存储体调度器104或108)的框图200。框图200包含具有逻辑块206的存储体调度器204。存储体调度器204通过共享NAND总线信道接口238耦合到NAND存储器装置232。框图200还包含针对NAND存储器装置232的存储体中的每一个划分成正常优先级队列(例如,由“N”标示的正常队列254)及优先级队列(例如,由“P”标示的优先级队列256)的存储体队列250。包含正常队列258的标头及优先级队列260的标头的每一队列252的标头作为队列262的状态呈现到存储体调度器204、呈现到逻辑块206中。用于NAND存储器装置232中的每一存储体的就绪/忙碌信号264、基于对每指令寄存器能量消耗213的估计的与每一命令类型207相关联的经估计能量消耗及指示在执行发射到NAND存储器装置232中的存储体的命令中剩余的时间的计时器266也呈现到逻辑块206。此外,逻辑块206与功率预算控制器205通信以便请求且接收在功率预算内发射命令的权限。
尽管图2展示单个信道的存储体调度器,但SSD装置中的额外信道具有同样与中心功率预算控制器205通信的结构类似的存储体调度器。
包含逻辑块206的存储体调度器204接受到在硬件中实例化的支持逻辑中的各种输入,包含就绪/忙碌信号264、计时器266、队列262的状态及基于每命令类型寄存器的经估计能量消耗213的命令207的能量消耗值。存储体队列250包含用于由存储体调度器204服务的NAND存储器装置232的存储体的多个命令队列。每一存储体具有相关联正常队列254及优先级队列256,其充当被排序成正常及优先级命令的来自主机的一系列命令。举例来说,在图2中,展示装置或闪存器裸片的八个存储体,包含第一存储体234及第二存储体236,且因此,16个存储体队列250展示为包含八个正常优先级队列(例如,正常优先队列254)及八个优先级队列(例如,优先级队列256)。命令为应输入到正常优先队列254中的正常命令还是待输入到优先级队列256中的优先级命令可由主机指示或可基于命令的类型。每一队列含有待经由共同NAND总线信道接口238发射到NAND存储器装置232中的裸片的相关联存储体的一系列命令。每一队列中的第一命令在展示为请求包(RP)的情况下在队列252的标头处。正常优先队列258的标头含有正常优先级命令259。优先级队列260的标头含有优先级命令261。请求包可为任何适当NAND操作命令,包含读取、写入、擦除或待发射到存储体中的一个的其它命令。
逻辑块206确定功率消耗207或在队列的标头处的命令所需的“存储体信用”。通过基于命令类型的经估计功率消耗量而计算功率消耗来确定功率消耗207,如可在每指令寄存器能量消耗213处访问。每指令寄存器能量消耗213存储电流使用量的平均值及每一命令类型每秒的能量消耗。每指令寄存器功率消耗213还在每一命令类型的不同阶段期间存储电流使用量以及每一循环内这些阶段的计时。在NAND存储器装置232上执行的每一命令的功率消耗207可平均地且在命令的每一阶段进行确定,且由存储体调度器204记录以确定在任何给定时间由信道上的NAND存储器装置232使用的总功率消耗存储体信用。存储体调度器204与功率预算控制器205通信以便确定具有相关联功率消耗的命令是否在功率预算内且可在信道上发送。
逻辑块206确定队列中的命令的调度,确定待发射的下一命令的经估计功率消耗207,且从功率预算控制器205请求发射命令及使用功率预算的经估计量的权限。
队列252的标头中的每一队列中的第一命令作为队列262的状态可用于存储体调度器204中的逻辑块206。每一队列252的标头中的命令的输入由逻辑块206接收作为队列262的状态,且使得逻辑块206能够确定下一命令应以哪种次序经由NAND总线信道接口238调度到哪个存储体。逻辑块206包含优选在优先级队列中排队的命令(例如,优先级队列260的标头)的逻辑。在一些实施方案中,逻辑块206包含优选在发射任何正常优先级命令(例如,正常优先级命令259)之前在优先级队列中排队的所有命令(例如,优先级命令261)的逻辑。在此情形下,仅在不存在于优先级队列中排队的命令的情况下发送正常优先级命令(例如,正常优先级命令259)。在一些实施方案中,取决于到逻辑块206的其它输入而以混合次序经由NAND总线信道接口238发射正常优先级命令(例如,正常优先级命令259)及优先级命令(例如,优先级命令261)。
逻辑块206确定在优先级队列260的标头处或在正常优先队列258的标头处的操作命令,确定命令是否应分成数阶段,且通过访问每指令寄存器能量消耗213来确定命令的阶段中的每一个的经估计能量消耗207。将在优先级队列的标头处的命令的经估计能量消耗207发射到功率预算控制器205,其中所述经估计能量消耗207可与功率预算内的可用功率进行比较,且如果足够量的功率在功率预算中可用,那么可准予请求。在一些实施方案中,功率预算控制器205确定经由NAND总线信道接口238调度命令的计时,使得当结合已经调度且在NAND总线信道接口238上发射的命令考虑时,命令在每一命令阶段处的经估计能量消耗不超出在功率预算中可用的功率。在一些实施方案中,可由存储体调度器通过将命令的调度提前或延迟由功率预算控制器205确定的量来调整计时。
在一些实施方案中,当确定是否可在目前功率预算内执行命令时,功率预算控制器205指示命令到存储体调度器的精确计时,以使命令的阶段可与其它命令的功率时间线交错,所述其它命令已继续进行以使峰值电流阶段与前述命令的槽电流阶段对准。
如果在功率预算中可用的功率不足,那么命令可标记为优先级命令且优选为额外功率变得在功率预算中可用。在一些实施方案中,逻辑块206包含暂停在存储体上处理正常优先级命令(例如,正常优先级命令259),以便在已发射正常优先级命令之后发射且执行已在同一存储体的优先级队列(例如,优先级队列256及优先级队列260的标头)中排队的优先级命令(例如,优先级命令261)。举例来说,如果正常优先级命令259为“擦除”命令,且在优先级队列260的标头中不存在优先级命令261,那么逻辑块206将在从功率预算控制器205接收批准之后经由共同NAND总线信道接口238将“擦除”命令发射到第一存储体234。逻辑块206将计时器266设定预定时间段,所述预定时间段可对应于执行“擦除”命令通常所需的时间段。当逻辑块206继续在功率预算内将命令调度到其它存储体时,例如读取请求等优先级命令261可放置在第一存储体234的优先级队列260的标头中。如果向优先级读取请求准予由功率预算控制器205进行发射及执行的权限,那么逻辑块206可将“暂停擦除”命令发出到第一存储体234以中止执行“擦除”命令,即使与在第一存储体234上执行的“擦除”命令相关联的计时器266尚未过期也如此。在已由第一存储体234接收到及/或确认“暂停擦除”命令之后,擦除命令的预见能量消耗可归回到功率预算。逻辑块206接着将优先级“读取”命令发出到第一存储体234。接着由第一存储体234执行“读取”命令。在已执行“读取”命令之后,如果在优先级队列256中不存在额外优先级命令261,那么逻辑块206或存储体调度器204可指示第一存储体234“恢复”暂停的擦除操作。下文关于图7进一步描述对非优先级命令执行暂停以有利于优先级命令。
在一些实施方案中,如果用于命令的功率预算中的功率不足,那么另一存储体调度器可经由不同信道请求且发射不同命令,且当在功率预算中存在足够功率时,初始命令可执行。
已由存储体调度器204确定为下一个发射的命令在可经由NAND总线信道接口238发射到装置或闪存器裸片232的适当存储体之前,必须由功率预算控制器205准予权限,如由逻辑块206所确定。在一些实施方案中,在适当时,命令分成数阶段,且根据每命令类型寄存器功率消耗213估计第一阶段的功率消耗值,且将所述功率消耗值发送到功率预算控制器205以供批准。在已批准在执行命令时使用功率预算的一部分的请求之后,命令被发射到存储体。在将命令发送到选定装置之后,逻辑块206基于命令类型(例如,读取、写入、擦除等)而将计时器266设定成预定时间段,所述预定时间段对应于与所发射命令类型的典型执行相关联的时间段。当用于执行所发射命令的计时器266已过期时,逻辑装置206从第一存储体234上的选定装置请求状态,且选定装置将信号或合适响应发射到逻辑块206以用于所发射的特定命令。替代地,逻辑块206可根据选定装置的就绪/忙碌信号264确定操作的状态。通过从选定装置请求状态,逻辑块206仅在命令调度中存在适当时间量时发射对状态的请求以请求且接收状态。在一些实施例中,逻辑块206确定操作的状态所借以的方法可选择性地配置于支持硬件中。
在已完成命令且操作的状态已发射到逻辑块206之后,逻辑块将状态传达到功率预算控制器205,且命令的经估计功率消耗被归回到信用寄存器中,从而指示此功率预算量现在可供另一命令或程序使用。
当命令经由NAND总线信道接口238发射到装置232的存储体中的一个(例如,第一存储体234)时,逻辑块206确定是否应发射后续命令,并且确定后续命令应发射到存储体中的哪一个。逻辑块206连续地可访问来自每一存储体的就绪/忙碌信号264、计时器266及队列262的状态的更新输入。一系列逻辑门允许逻辑块206确定命令的调度,以便将命令高效地分配且执行到存储体中的每一个。逻辑门还允许逻辑块206维持经调度命令的执行的一致性。逻辑块206确定存储体将经由NAND总线信道接口238接收命令的次序,且通过存储体调度器204与功率预算控制器205之间的通信确定在功率预算中是否存在足以执行命令的功率。
对于由逻辑块206确定为下一个发射的每一命令,逻辑块206必须从执行命令所需要的功率预算控制器205请求功率消耗的经估计量。用于从功率预算控制器确定及请求功率信用量的存储体调度器逻辑块(例如,逻辑块206)的输入说明于图3中。图3展示说明到存储体调度器304的直接输入的框图300,所述直接输入用以确定在队列的标头处的命令的功率消耗且从功率预算控制器请求所述量的功率信用。
存储体调度器304包含逻辑块306,逻辑块306包括形成用于信道的功率信用管理器的基于硬件的支持逻辑。支持逻辑使用各种直接输入来确定在装置的功率消耗预算内的命令的调度。
到逻辑块306的输入包含命令394、准予批准状态395、优先级状态396、计时器状态390、NAND状态391及优先级及正常命令队列状态PCMDQ/NCMDQ 392的功率消耗。
逻辑块306包含作为直接输入的命令394的功率消耗。当逻辑块根据优先级及正常命令队列状态PCMDQ/NCMDQ 392关于队列中待执行的下一命令进行确定时,逻辑块306(例如)通过访问其中存储有每命令类型平均或经估计功率消耗的寄存器来确定命令394的功率消耗。命令394的所确定功率消耗可接着由存储体调度器304提供到中心功率预算控制器(例如,图1中的功率预算控制器105),其中确定在装置的功率消耗预算中是否存在足以执行命令的预算。功率预算控制器可接着将批准信号提供到逻辑块306,在此之后,存储体调度器304将发射命令以供执行。在一些实施方案中,命令的所确定能量消耗394可分成数阶段,且如果命令在某一时间被调度且因此将除批准信号之外的计时信息提供到逻辑块306,那么中心功率预算控制器可确定在功率消耗预算中存在足够预算。替代地,如果在装置功率预算中的功率不足以执行命令,那么功率预算控制器不提供批准信号,且可改为向所述命令标记优先级,使得当足够的功率预算可用时,将在其它非优先级命令之前执行所述命令。
对于读取及写入命令,通过将命令分成数阶段来改进对能量消耗量的估计,所述阶段对应于在执行命令循环期间的不同电流使用量。传统上,每一NAND操作的电流耗散模型为每一操作的极简单平均静态电流值,但此模型无法捕获在操作的时间线期间的变化细节。实际上,电流模型应(例如)通过沿着时间线将命令分割成若干阶段或子操作来考虑NAND操作及装置的额外细节。
为了确定每一NAND操作的经估计能量消耗,可将从所有电源轨消耗的能量的以焦耳为单位的成本指派到每一闪存操作,包含程序、读取及擦除操作。在一个闪存操作内,基于闪存操作的不同特性,可存在不同功率分布。举例来说,可向来自页面的上部部分的读取操作指派一个成本分布,而向来自页面的中间部分的读取操作指派第二成本分布,且向来自页面的底部的读取操作指派不同的第三成本分布。能量消耗的这些估计可存储在寄存器中且由逻辑块访问以计算特定命令的经估计能量消耗。
通过将NAND操作分成具有相关联成本分布的子操作,就所消耗的能量而言,可获得操作的能量消耗的更准确估计值。图4到6展示基于在执行各种命令期间NAND的操作阶段的简单电流模型化的标绘图。电流模型化修整电流峰值波形,使得每一NAND操作阶段具有单个电流电平,从而实现对用于每一命令的电流的简单估计。取决于NAND的操作序列及电流耗散特性,每一NAND操作命令可分为一或多个阶段。将NAND操作分成子操作允许确定能量消耗的更准确估计值,每一子操作具有其自身的成本分布。
图4展示基于写入(程序)命令的NAND操作阶段的简单电流模型化的标绘图400。标绘图400包含表示命令在时间上的进程的x轴402及表示以mA为单位的电流的y轴404。程序序列的电流电平分为两个阶段——数据输入阶段及单元程序阶段。标绘图400包含表示需要作为执行写入命令的第一步骤的I/O切换功率阶段(数据输入阶段)的第一阶段406。标绘图进一步包含表示NAND单元程序功率阶段(单元程序阶段)的第二阶段408。取决于多少平面与程序序列有关,或I/O速度有多快,I/O切换及程序阶段中的每一个可经模型化,从而具有代表性电流电平。I/O切换的执行在一段时间内进行,且在所述时间段内使用简化电流。I/O切换阶段的能量消耗值与乘以在其期间执行所述阶段的时间的耗尽电流电平成比例。在I/O切换之后,程序的执行在一段时间内需要更高度简化的电流。I/O切换阶段的电流电平可取决于I/O速度而变化。程序阶段的能量消耗值类似地与乘以执行阶段历时的时间的在执行阶段期间耗尽的电流成比例。
详细的电流模型可考虑每一NAND操作的不同可能条件,包含NAND配置、I/O速度及平面的数目,如与NAND操作相关。对于程序命令,控制器将关于能量消耗时段、电流电平模型化及类型的信息存储在硬件寄存器中。为了确定写入(程序)命令的能量消耗值,控制器首先确定通过I/O切换消耗的能量。为了确定I/O切换能量,控制器访问硬件寄存器且基于I/O切换的速度而确定电流电平,NAND I/O数据传送命令从开始到结束的时间乘以电流电平以获得在命令阶段期间消耗的总能量。写入序列的第二分量为单元编程操作。控制器访问硬件寄存器以取决于平面的数目及在页面上的位置而确定特定电流电平,所述电流电平乘以从命令发出到状态检查返回为就绪的时间以便计算与写入(程序)命令相关联的NAND单元程序能量。
在标绘图400上方的时间线中随时间说明程序序列410。程序序列410包含程序数据加载阶段416,在程序数据加载阶段416中,实际数据加载412对应于编程操作的第一阶段406中的I/O切换功率阶段。程序数据加载序列416在414处开始且在415处结束。功率信用管理器测量从414到415的此时间内的电流以便确定I/O切换操作的实际能量消耗值。写入程序阶段(tPROG)420在程序数据加载416阶段结束之后进行。在写入程序420结束之后,在422处,提供状态指示符424以指示程序完成。功率信用管理器测量从程序数据加载阶段415结束直到tPROG阶段420结束所使用的电流以确定NAND单元程序的实际能量消耗值。在一些实施方案中,功率信用管理器通过测量在此时间期间电源轨上的电流消耗来计算实际能量消耗值。
图5展示基于读取命令的NAND操作阶段的简单电流模型化的标绘图500。标绘图500包含表示命令在时间上的进程的x轴502及表示以mA为单位的电流的y轴504。读取序列的电流电平分为两个阶段--单元感测阶段及数据输出传送阶段。标绘图500包含表示需要作为执行读取命令的第一步骤的单元感测功率阶段的第一阶段506。标绘图进一步包含表示I/O切换功率阶段(数据输出阶段)的第二阶段508。
对于读取命令,控制器访问硬件寄存器且确定必须关于命令的感测阶段及I/O切换阶段两者计算能量消耗值,也就是说,命令应拆分成用于准确估计命令的能量消耗的分量。基于存储在硬件寄存器中的估计值,控制器通过将从命令发出到状态指示符返回的NAND就绪的时间乘以基于平面数目及页面上的位置的电流电平来计算由读取操作的NAND单元感测阶段消耗的能量。控制器接着通过将从NAND I/O数据传送命令开始到结束的时间乘以基于I/O切换速度的电流电平来计算I/O切换能量。读取命令的两个阶段的总和为读取操作的总能量消耗值。然而,所述阶段的能量消耗值被分开地计算,且当提交对功率预算控制器的请求时,功率预算控制器从硬件寄存器访问关于命令的每一阶段的计时及能量消耗值的信息。功率预算控制器可利用此信息来确定是准予还是拒绝命令,且在准予的情况下调度命令。
对于读取命令,在标绘图500上方的时间线中随时间说明命令序列510。命令序列510包含感测阶段518,在感测阶段518中,在NAND单元感测之前发送感测命令512。感测命令512在516处开始且在520处结束。所发射感测命令512(包含读取命令细节)的执行在tR 514处进行且对应于在读取操作的第一阶段506中的NAND单元感测功率。在于tR 514处执行感测命令512之后,提供524在522处开始的状态指示符。功率信用管理器可通过测量从所发射感测命令520的结束到所发射指示符状态522的开始所使用的电流来测量单元感测功率操作506的电流。读出数据阶段528在526处开始且在529处结束。读出数据阶段528对应于读取命令操作的第二阶段508中的I/O切换功率阶段。为了测量在读取命令操作的此阶段期间消耗的实际功率,功率信用管理器测量从读出数据阶段526的开始到529处的结束的电流。在一些实施方案中,功率信用管理器通过测量在此时间期间电源轨上的电流消耗来计算实际能量消耗值。
图6展示基于擦除命令的NAND操作阶段的简单电流模型化的标绘图600;标绘图600包含表示命令在时间上的进程的x轴602及表示以mA为单位的电流的y轴604。不同于图4和5,擦除命令并不分成多个阶段以估计命令的能量消耗值。相比于展示读取及写入命令的图4和5,标绘图600仅包含表示在特定电流下在执行擦除命令所需的时间内所消耗的NAND单元擦除能量的单个阶段606。
对于擦除命令,控制器根据硬件寄存器确定仅擦除操作阶段必须包含在能量估计中。控制器通过将从发出命令到命令已完成的状态指示符返回的时间乘以由取决于平面数目及所读取页面上的位置的电流电平来计算由擦除命令消耗的能量。
标绘图进一步包含由NAND执行的块擦除命令在经由信道从控制器发射且发射到控制器时的命令序列608的说明。擦除命令序列608包含在614处开始且在618处结束的经发射擦除命令610。在接收到擦除命令610之后,擦除执行阶段tERASE 612开始。tERASE 612对应于NAND单元擦除功率阶段606。tERASE阶段612结束,且在620处开始发射状态指示符622。功率信用管理器通过测量从所发射的擦除命令在618处结束到状态指示符开始620的电流来计算擦除命令的实际能量消耗值。在一些实施方案中,功率信用管理器通过测量在此时间期间电源轨上的电流消耗来计算实际能量消耗值。
通过将命令拆分成数恒定电流使用阶段来进行的命令能量模型化允许控制器更好地估计通过执行各种命令消耗的能量,使得控制器可确定由存储装置在任何时刻消耗的总功率。用实际功率消耗值协调经估计功率消耗允许更好地监测功率预算,且允许对NAND命令操作中的每一个的估计值进行动态调整,以便高效地使用功率预算而不使装置性能降级。
图7展示基于说明暂停擦除命令以有利于优先级读取命令的NAND操作阶段的简单电流模型化的标绘图700。标绘图700包含表示命令在时间上的进程的x轴702及表示以mA为单位的电流的y轴704。标绘图700包含擦除命令的第一阶段706、擦除命令的第二阶段712、读取命令的感测阶段708及读取命令的数据发射阶段710。
擦除命令的第一阶段706表示执行擦除命令的第一阶段706所需的功率。擦除命令的执行在一段时间内进行且在所述时间段内使用简化电流。擦除命令的第一阶段706的能量消耗值与乘以在其期间执行第一阶段706的时间的耗尽电流电平成比例。擦除命令的第一阶段706具有起始705,在所述起始时,开始执行擦除命令。
通常,擦除命令将继续,直到已完成擦除。然而,如果存在具有优先级状态的命令,那么可优选优先级命令,且可暂停例如擦除命令(通常将连续执行的第一阶段706及第二阶段712)等正常优先级命令的处理以有利于优先级命令。
在707处由控制器暂停擦除命令。接着发射且执行优先级读取命令,包含读取命令的感测阶段708及读取命令的数据发射阶段710。在执行优先级读取命令之后,在711处恢复擦除命令,且执行擦除命令的第二阶段712,直到在713处完成擦除。暂停正常优先级命令以便执行优先级命令允许控制器快速地处理具有优先级的命令且高效地使用可用功率预算。
尽管图4到7展示描绘命令的时间线的x轴及展示与所述命令相关联的简化电流的y轴,但应注意,这些轴线未按比例,且在所有图当中可能比例不同。
图8展示基于与读取命令交错的程序命令的调度的NAND闪存操作阶段的简单电流模型化的标绘图800。标绘图800包含表示命令在时间上的进程的x轴802、表示以mA为单位的电流的第一y轴804及同样表示以mA为单位的电流的第二y轴803。在x轴802上表示的时间线的时间比例与图4到7中所呈现的时间线不相同。标绘图800说明交错以使得程序命令的一部分与读取命令的一部分同时执行的程序命令807及读取命令809。
程序命令807包含在命令的I/O切换阶段期间使用简化电流的第一阶段806,及在命令的NAND单元程序阶段期间使用另一简化电流的第二阶段808。程序命令的第一阶段806的能量消耗值与乘以在其期间执行第一阶段806的时间的耗尽电流电平成比例。同样,程序命令的第二阶段808的能量消耗值与乘以在其期间执行第二阶段808的时间的耗尽电流电平成比例。
展示为具有指示在第二y轴803及与程序命令807相同的时间线上的电流电平的读取命令809包含在NAND单元感测阶段期间使用简化电流的第一阶段810及在命令的I/O切换阶段期间使用简化电流的第二阶段812。
控制器可将程序命令807及读取命令809的阶段中的每一个的能量消耗与目前功率预算进行比较以确定是否可准予命令。因为程序命令807及读取命令809基于在命令的阶段期间消耗的简化电流而被分割成多个阶段,所以控制器能够调度命令的阶段以同时在目前功率预算内执行。然而,如果命令不被分割成数阶段,那么这些命令可具有超出目前功率预算的累积能量消耗,且可不并行地执行所述命令。替代地,将必须在完成程序命令807之后发射及执行读取命令809。
控制器确定读取命令的第一阶段810及程序命令的第二阶段808在目前功率预算内,且可并行地执行两个命令阶段以使得阶段重叠。读取命令的第一阶段810及程序命令的第二阶段808的经组合能量消耗在执行两个命令阶段的时段期间的任何时间不超出目前功率预算,且所述命令可交错而不超出目前功率预算。
命令的交错及调度以此方式在给定时间高效地使用功率预算而不超出目前功率预算。通过对发射命令中的每一个的时刻准确地计时,可在硬件内执行交错及调度,此操作在基于软件的功率节流方案中是不可能的。
周期性地,用命令(例如图4到8中所展示的那些命令)的经估计能量消耗成本协调经执行命令的测量到的能量消耗,且可动态地调节记录在寄存器中的成本。在启动时,通过校准程序关于每一命令类型计算电流使用量及相关联能量使用量的初始估计。图9展示说明使用操作的实际电流测量结果来校准系统的过程的流程图900。系统的校准为操作的基本开销能量成本提供准确的初始图,且为每一命令提供操作的每字节传送成本。此程序对于写入操作及程序操作两者为类似的。
在步骤902中,在没有进行中的NAND操作的情况下存储主SSD电源上的平均功率(Ps)以获得静态空闲功率消耗。当SSD接通且可操作但不执行任何命令时,此测量给予基本程度的功率消耗。在步骤904中,控制器在Tr1秒的固定时间段内尽可能快地各自发出Nb字节的NAND读取,将经提交的读取操作的数目计数为Nr1。在步骤906中,在时段Tr1期间存储主SSD电源上的平均功率(Pr1)。在步骤908中,控制器在Tr2秒的固定时间段内尽可能快地各自发出2Nb字节的NAND读取,将经提交的读取操作的数目计数为Nr2。在步骤910中,在时段Tr2期间存储主SSD电源上的平均功率(Pr2)。
在步骤912中,根据方程Er1=((Pr1-Ps)*Tr1)/Nr1计算每Nb字节读取使用的以焦耳为单位的能量。在步骤914中,根据方程Er2=((Pr2-Ps)*Tr2)/Nr2计算每2Nb字节读取使用的以焦耳为单位的能量。在步骤916中,根据方程Erb=(Er2-Er1)/Nb,根据这些值计算每字节读取使用的能量。在步骤918中,根据方程Er0=(Er1-((Er2-Er1))计算每读取操作使用的能量。最后,在步骤920中,可根据方程Cr=Er0+(Erb*N)计算N字节读取操作的以焦耳为单位的成本。
接着将N字节读取操作的经计算成本存储在硬件寄存器中,以用于在SSD的操作期间估计命令的能量消耗。可使用同一方法在初始化SSD后计算N字节程序或写入操作的经计算成本,以用于估计能量消耗。
在一些实施方案中,在启动时初始化SSD装置后,发起图6中所描述的方法。在一些实施方案中,可由主机在各种时间点处发起图9中所描述的方法。
图10展示说明操作能量的计算的标绘图1000,如关于图9所描述。标绘图1000包含表示在校准程序期间横越信道传送到NAND裸片的NAND读取操作的字节的x轴1002及表示通过执行NAND读取所消耗的以焦耳为单位的能量的y轴1004。在发射Nb字节的读取操作之后,记录Er1焦耳的功率消耗值,如在图9的步骤912中所描述。在发射Nb的字节读取操作之后,记录Er2焦耳的功率消耗值,如在图9的步骤914中所描述。可以焦耳为单位计算值Er1与Er2之间的差,其在图10中展示为Erd,其中Erd=Er2-Er1。根据方程Er0=Er1-Erd或Er0=Er1-(Er2-Er1),可由控制器通过从Er1减去Erd来计算每读取操作(Er0)使用的以焦耳为单位的能量,如在图9的步骤918中所描述。如标绘图1000中所展示,假定操作的能量成本包含基本操作成本(Er0)加上与经传送字节的数目成线性比例地变化的分量。
图11展示使用硬件支持逻辑来调度命令以管理功率消耗的过程的流程图1100。在步骤1102处,选择待发射到NAND存储体的第一命令。由存储体调度控制器(例如,图1中的第一存储体命令调度器104或第二存储体命令调度器108)中的硬件实例化的逻辑块根据调度算法选择待发射到NAND存储体的第一命令。待发射的第一命令可为读取、写入或擦除命令中的一个。在步骤1104处,选择第一命令的第一阶段。读取及写入命令可被分割成I/O切换阶段及单元程序阶段,其中的每一个具有不同的相关联电流分布及能量消耗。为了更好地估计与命令或操作相关联的能量消耗,在可能时将命令分成数阶段。命令的每一阶段具有不同的经估计能量消耗,且可由功率预算控制器使用以对命令调度计时,从而在并行组合执行时使命令的能量消耗最小化。
在步骤1106处,估计第一命令的第一阶段的能量消耗值。基于各种操作类型的每字节能量消耗的经存储估计值而估计能量消耗值。存储体命令调度器可访问硬件寄存器以获得适当信息,从而估计命令的第一阶段的功率消耗值。接着将估计值发射到功率预算控制器(例如图1中的功率预算控制器105)。
在步骤1108处,将第一命令的第一阶段的经估计第一功率消耗值同目前功率信用寄存器值与功率预算寄存器值(例如,图1中的信用寄存器109及预算寄存器111的值)之间的差进行比较。在功率预算控制器处进行所述比较,且功率预算控制器确定是否存在功率预算内可用的足以允许发射及执行第一命令的第一阶段的功率。功率信用寄存器可为寄存所有当前执行命令的经估计功率消耗以得到SSD中的目前功率消耗的寄存器。功率预算寄存器可为其中存储有目前功率预算的寄存器。以焦耳每秒为单位表达可用于执行SSD上的操作的功率预算。
在步骤1110处,功率预算控制器基于目前功率信用寄存器值及已发射命令的调度而确定第一命令的第一阶段是否可与已批准命令的阶段并行地发射。功率预算控制器可将命令的精确计时发射到存储体调度器,使得命令阶段交错。以此方式,所述阶段的任何电流峰值不重合及加强,且命令的能量消耗在目前功率预算内。
在步骤1112处,如果经估计第一功率小于功率信用寄存器值与功率预算寄存器值之间的差,那么将经估计第一功率消耗值添加到目前功率信用寄存器值,且将第一命令的第一阶段发射到NAND存储体。功率预算控制器还可发送关于命令的第一阶段的发射的精确计时的指令,以便使所述命令与所执行的前述命令交错而不超出目前功率预算。此步骤还可包含在存储体命令调度器处接收准予所请求功率消耗的指示符以用于发射及执行命令。
在步骤1114处,在已执行第一命令的第一阶段之后,从目前功率信用寄存器值减去第一经估计功率消耗值。此步骤可由功率预算控制器响应于接收到已执行命令的指示而进行。从目前功率信用寄存器值减去经估计第一功率消耗值调整功率信用寄存器值以展示现在可用于执行其它命令的额外功率。
在每信道基础上在存储体命令调度器中的基于硬件的逻辑块中且在形成功率预算控制器的基于硬件的逻辑块中执行这些步骤。使用基于硬件的功率预算控制方案实现了对命令的高效调度及对SSD装置功率资源的使用。可易于周期性地更新对每命令能量消耗的估计,以便提供更准确估计以允许功率预算控制器分配资源。此外,取决于命令的能量消耗分布,将命令分割成多个阶段(例如I/O切换阶段及单元感测或程序阶段)给予功率预算控制器细粒度更高的能力以分配功率资源且将命令高效地发射到NAND存储体。相比于基于软件的系统,基于硬件的控制器可更高效地管理SSD装置上的功率消耗。
所属领域的技术人员将清楚本发明的各个方面的其它目标、优势和实施例,且它们在本描述内容和附图的范围内。例如但不限于,结构或功能元件可根据本发明重新布置。类似地,根据本发明的原理可应用于即使本文中没有具体地详细描述但仍在本发明的范围内的其它实例。
Claims (20)
1.一种存储器系统,其包括:
存储器控制器,其具有:
存储体命令调度器,其实施于硬件逻辑块中,及
功率预算控制器,其包含预算寄存器及信用寄存器;
存储器组,其具有I/O总线;及
信道,其将所述I/O总线连接到所述存储器控制器,所述信道经配置以在所述存储器组与所述存储器控制器之间发射数据,且将命令从所述存储器控制器发射到所述存储器组,
其中所述硬件逻辑块经配置以:
确定队列中待发射到所述存储器组的第一命令;
估计所述第一命令的第一功率消耗值;
查询所述功率预算控制器以确定所述第一功率消耗值是否满足阈值;且
如果所述第一功率消耗值满足所述阈值,那么:
经由所述信道将所述第一命令发射到所述存储器组;且
将指示已执行所述第一命令的信号发射到所述功率预算控制器。
2.根据权利要求1所述的存储器系统,其中通过查询所述功率预算控制器以确定所述第一功率消耗值是否满足阈值包括将所述第一功率消耗值同所述信用寄存器与所述预算寄存器之间的差进行比较。
3.根据权利要求1所述的存储器系统,其中如果所述第一功率消耗值不满足所述阈值,那么所述硬件逻辑块经配置以:
确定所述队列中待发射到所述存储器组的第二命令;
估计所述第二命令的第二功率消耗值;且
查询所述功率预算控制器以确定所述第二功率消耗值是否满足所述阈值。
4.根据权利要求1所述的存储器系统,其中如果所述第一功率消耗值不满足所述阈值,那么所述硬件逻辑块经配置以等待,直到所述第一功率消耗值满足所述阈值。
5.根据权利要求4所述的存储器系统,其中所述功率预算控制器经配置以:
使与空闲时间相关联的计时器开始;且
当所述经计时空闲时间超出空闲时间阈值时,给予所述第一命令优于其它命令的优先级。
6.根据权利要求1所述的存储器系统,其中所述第一命令包括第一阶段及第二阶段,且其中所述硬件逻辑块经配置以:
估计所述第一阶段的第三功率消耗值;
查询所述功率预算控制器以确定所述第一阶段的所述第三功率消耗值是否满足所述阈值;且
经由所述信道将所述第一阶段发射到所述存储器组。
7.根据权利要求4所述的存储器系统,其中所述第一命令为读取命令,所述第一阶段为单元感测阶段,且所述第二阶段为I/O切换阶段。
8.根据权利要求4所述的存储器系统,其中所述第一命令为程序命令,所述第一阶段为I/O切换阶段,且所述第二阶段为单元程序阶段。
9.根据权利要求1所述的存储器系统,其中所述硬件逻辑经配置以通过访问给定命令的经估计功率消耗值的寄存器来估计所述第一命令的第一功率消耗值。
10.根据权利要求1所述的存储器系统,其中所述硬件逻辑进一步经配置以:
经由I/O电源轨及单元电源轨监测实际功率;且
经由所述I/O电源轨及所述单元电源轨将测量到的实际功率发射到所述功率预算控制器。
11.根据权利要求1所述的存储器系统,其中所述功率预算控制器经配置以:
从所述硬件逻辑块接收第一功率消耗值;
将所述第一功率消耗值与存储在功率预算寄存器及所述信用寄存器中的值之间的差进行比较;
将所述第一功率消耗值添加到所述信用寄存器;
如果所述第一功率消耗值小于所述差,那么发射准予响应;
从所述硬件逻辑块接收指示已执行所述第一命令的状态;且
从所述信用寄存器去除所述第一功率消耗值。
12.根据权利要求11所述的存储器系统,其中所述功率预算控制器进一步经配置以确定在将所述第一功率消耗值添加到所述信用寄存器及发射所述准予响应之前是否存在优先级命令。
13.根据权利要求11所述的存储器系统,其中所述功率预算控制器进一步经配置以确定所述第一命令的第一阶段是否能够与经先前发射命令并行地发射且具有满足阈值的经组合功率消耗值;且
将计时指令提供到所述硬件逻辑以使所述第一命令的第一阶段与所执行的前述命令交错。
14.一种基于功率消耗预算而发射命令的方法,所述方法包括:
由硬件逻辑块选择待经由信道发送到NAND存储体的第一命令;
选择所述第一命令的第一阶段;
估计所述第一阶段的第一功率消耗值;
在功率预算控制器处将所述经估计第一功率消耗值同目前功率信用寄存器的值与功率预算寄存器的值之间的差进行比较;
如果所述经估计第一功率消耗值小于所述差,那么:
将所述经估计第一功率消耗值添加到所述目前功率信用寄存器的所述值;
经由所述信道将所述第一命令的所述第一阶段发射到所述NAND存储体;及
在已执行所述第一命令的所述第一阶段之后,从所述目前功率信用寄存器的所述值减去所述经估计第一功率消耗值。
15.根据权利要求14所述的方法,所述方法进一步包括:
选择所述第一命令的第二阶段;
估计第二阶段的第二功率消耗值;
在功率预算控制器处将经估计第二功率消耗值同所述功率信用寄存器的当前值与所述功率预算寄存器的所述值之间的差进行比较;
如果所述经估计第二功率消耗值小于所述差,那么:
将所述经估计第二功率消耗值添加到所述功率信用寄存器的所述当前值;
经由所述信道将所述第一命令的第二阶段发射到所述NAND存储体;及
在已执行所述第一命令的第二阶段之后,从所述功率信用寄存器的所述当前值减去所述经估计第二功率消耗值。
16.根据权利要求14所述的方法,所述方法进一步包括:
选择所述第一命令的第二阶段;
估计第二阶段的第二功率消耗值;
在功率预算控制器处将经估计第二功率消耗值同所述功率信用寄存器的当前值与所述功率预算寄存器的所述值之间的差进行比较;
如果所述经估计第二功率消耗值大于所述差,那么:
使用于所述第一命令的第二阶段的等待计数器开始;及
将所述第一命令的第二阶段标记为优先级命令。
17.根据权利要求16所述的方法,所述方法进一步包括:
等待,直到所述经估计第二功率消耗值大于存储在所述功率信用寄存器及所述功率预算寄存器中的值之间的最新比较的差;及
将所述经估计第二功率消耗值添加到所述目前功率信用寄存器;
经由所述信道将所述第一命令的第二阶段发射到所述NAND存储体;及
在已执行所述第一命令的第二阶段之后,从存储在所述功率信用寄存器中的所述值减去所述经估计第二功率消耗值。
18.根据权利要求14所述的方法,其中估计所述第一阶段的第一功率消耗值包括确定I/O切换命令的经估计功率消耗。
19.根据权利要求14所述的方法,其中估计所述第一阶段的第一功率消耗值包括确定单元感测命令的经估计功率消耗。
20.根据权利要求14所述的方法,所述方法进一步包括:
在发射所述第一命令之后,由硬件逻辑块选择待经由信道发送到NAND存储体的第二命令;
确定所述第二命令不具有多于一个阶段;
估计所述第二命令的第三功率消耗值;及
在功率预算控制器处将经估计第三功率消耗值与所述功率信用寄存器的所述当前值与所述功率预算寄存器的所述值之间的差进行比较,所述功率信用寄存器的所述当前值包含经添加第一功率消耗值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/684,076 | 2017-08-23 | ||
US15/684,076 US11029859B2 (en) | 2017-08-23 | 2017-08-23 | Credit based command scheduling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426557A true CN109426557A (zh) | 2019-03-05 |
CN109426557B CN109426557B (zh) | 2022-08-30 |
Family
ID=63294056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810936134.2A Active CN109426557B (zh) | 2017-08-23 | 2018-08-16 | 基于信用的命令调度 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11029859B2 (zh) |
EP (1) | EP3447607B1 (zh) |
CN (1) | CN109426557B (zh) |
TW (1) | TWI691969B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045804A (zh) * | 2019-11-26 | 2020-04-21 | 泰康保险集团股份有限公司 | 一种任务分配方法、装置、介质及电子设备 |
CN114902193A (zh) * | 2019-12-31 | 2022-08-12 | 铠侠股份有限公司 | 用于调度快闪操作的系统和方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102589410B1 (ko) * | 2017-11-10 | 2023-10-13 | 삼성전자주식회사 | 메모리 장치 및 그의 파워 제어 방법 |
US11073884B2 (en) | 2017-11-15 | 2021-07-27 | International Business Machines Corporation | On-chip supply noise voltage reduction or mitigation using local detection loops |
US10432536B1 (en) * | 2017-12-11 | 2019-10-01 | Xilinx, Inc. | Systems and methods for policing streams in a network |
US20190214087A1 (en) * | 2018-01-09 | 2019-07-11 | Western Digital Technologies, Inc. | Non-volatile storage system with decoupling of write transfers from write operations |
US10936046B2 (en) * | 2018-06-11 | 2021-03-02 | Silicon Motion, Inc. | Method for performing power saving control in a memory device, associated memory device and memory controller thereof, and associated electronic device |
US10446237B1 (en) | 2018-06-29 | 2019-10-15 | Micron Technology, Inc. | Temperature sensitive NAND programming |
KR102553264B1 (ko) * | 2018-09-03 | 2023-07-07 | 삼성전자 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
JP2020067753A (ja) * | 2018-10-23 | 2020-04-30 | キオクシア株式会社 | メモリシステム及びその制御方法 |
US11687277B2 (en) | 2018-12-31 | 2023-06-27 | Micron Technology, Inc. | Arbitration techniques for managed memory |
US11237617B2 (en) * | 2018-12-31 | 2022-02-01 | Micron Technology, Inc. | Arbitration techniques for managed memory |
US11194511B2 (en) * | 2018-12-31 | 2021-12-07 | Micron Technology, Inc. | Arbitration techniques for managed memory |
JP2020119073A (ja) * | 2019-01-21 | 2020-08-06 | キオクシア株式会社 | メモリシステム |
US11079822B2 (en) * | 2019-06-28 | 2021-08-03 | Western Digital Technologies, Inc. | Integrated power and thermal management in non-volatile memory |
CN110515859B (zh) * | 2019-07-09 | 2021-07-20 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
US11797188B2 (en) * | 2019-12-12 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Solid state drive with multiplexed internal channel access during program data transfers |
JP7337006B2 (ja) * | 2020-03-03 | 2023-09-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11487444B2 (en) | 2020-03-25 | 2022-11-01 | Micron Technology, Inc. | Centralized power management in memory devices |
US11588745B2 (en) | 2020-08-31 | 2023-02-21 | Micron Technology, Inc. | Early credit return for credit-based flow control |
US11580044B2 (en) | 2020-08-31 | 2023-02-14 | Micron Technology, Inc. | Network credit return mechanisms |
US11356378B2 (en) | 2020-08-31 | 2022-06-07 | Micron Technology, Inc. | Combined write enable mask and credit return field |
US11362939B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Flow control for a multiple flow control unit interface |
KR20220048619A (ko) * | 2020-10-13 | 2022-04-20 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 콘트롤러 및 메모리 콘트롤러의 동작 방법 |
US11567699B2 (en) * | 2021-02-04 | 2023-01-31 | Silicon Motion, Inc. | Memory controller having a plurality of control modules and associated server |
US20220413583A1 (en) * | 2021-06-28 | 2022-12-29 | Western Digital Technologies, Inc. | Precise power cycle management in data storage devices |
US11797187B2 (en) * | 2021-06-28 | 2023-10-24 | QoS Tech LLC | Optimized I/O performance regulation for non-volatile storage |
US11971772B2 (en) * | 2021-08-31 | 2024-04-30 | Micron Technology, Inc. | Unified sequencer concurrency controller for a memory sub-system |
KR20230059366A (ko) * | 2021-10-26 | 2023-05-03 | 에스케이하이닉스 주식회사 | 메모리 시스템의 컨트롤러 및 그것의 동작 방법 |
US11720256B2 (en) * | 2021-12-15 | 2023-08-08 | Dell Products L.P. | Maximizing power savings using IO monitoring |
US11966621B2 (en) | 2022-02-17 | 2024-04-23 | Sandisk Technologies Llc | Non-volatile storage system with program execution decoupled from dataload |
US11941263B2 (en) | 2022-05-02 | 2024-03-26 | Western Digital Technologies, Inc. | Flash-translation-layer-aided power allocation in a data storage device |
US11829218B1 (en) * | 2022-05-10 | 2023-11-28 | Western Digital Technologies, Inc. | Solid-state device with multiple thermal power states |
US20240094796A1 (en) * | 2022-06-10 | 2024-03-21 | Nvidia Corporation | Techniques to modify processor performance |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101480027A (zh) * | 2006-06-29 | 2009-07-08 | 诺基亚公司 | 功率消耗控制方法、功率消耗控制装置、计算机程序产品、计算机程序分发介质以及通信设备 |
US20120331207A1 (en) * | 2011-06-24 | 2012-12-27 | Lassa Paul A | Controller, Storage Device, and Method for Power Throttling Memory Operations |
CN103348744A (zh) * | 2011-02-10 | 2013-10-09 | 阿尔卡特朗讯公司 | 使用功率阈值对移动通信终端进行智能功率管理的方法和装置 |
US20140380072A1 (en) * | 2013-06-21 | 2014-12-25 | Apple Inc. | Digital Power Estimator to Control Processor Power Consumption |
US20150309752A1 (en) * | 2014-04-29 | 2015-10-29 | Sandisk Enterprise Ip Llc | Storage System Power Management Using Controlled Execution of Pending Memory Commands |
US9727267B1 (en) * | 2016-09-27 | 2017-08-08 | Intel Corporation | Power management and monitoring for storage devices |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385678B2 (en) * | 1996-09-19 | 2002-05-07 | Trimedia Technologies, Inc. | Method and apparatus for bus arbitration with weighted bandwidth allocation |
US7065663B2 (en) * | 2002-12-19 | 2006-06-20 | Intel Corporation | Methods and apparatus to control power state transitions |
GB2449455B (en) * | 2007-05-22 | 2011-08-03 | Advanced Risc Mach Ltd | A data processing apparatus and method for managing multiple program threads executed by processing circuitry |
US8972627B2 (en) | 2009-09-09 | 2015-03-03 | Fusion-Io, Inc. | Apparatus, system, and method for managing operations for data storage media |
WO2011031899A2 (en) | 2009-09-09 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
CN104067535A (zh) * | 2012-01-18 | 2014-09-24 | Lg电子株式会社 | 在无线通信系统中基于多个优先级的控制方法和设备 |
US9117511B2 (en) * | 2013-03-08 | 2015-08-25 | Advanced Micro Devices, Inc. | Control circuits for asynchronous circuits |
US9747659B2 (en) * | 2015-06-07 | 2017-08-29 | Apple Inc. | Starvation free scheduling of prioritized workloads on the GPU |
US9418712B1 (en) * | 2015-06-16 | 2016-08-16 | Sandisk Technologies Llc | Memory system and method for power management using a token bucket |
US9711232B2 (en) | 2015-09-22 | 2017-07-18 | Samsung Electronics Co., Ltd. | Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives |
CN105512060B (zh) * | 2015-12-04 | 2018-09-14 | 上海兆芯集成电路有限公司 | 输入/输出电路以及数据传输控制方法 |
-
2017
- 2017-08-23 US US15/684,076 patent/US11029859B2/en active Active
-
2018
- 2018-08-16 TW TW107128623A patent/TWI691969B/zh active
- 2018-08-16 CN CN201810936134.2A patent/CN109426557B/zh active Active
- 2018-08-16 EP EP18189266.2A patent/EP3447607B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101480027A (zh) * | 2006-06-29 | 2009-07-08 | 诺基亚公司 | 功率消耗控制方法、功率消耗控制装置、计算机程序产品、计算机程序分发介质以及通信设备 |
CN103348744A (zh) * | 2011-02-10 | 2013-10-09 | 阿尔卡特朗讯公司 | 使用功率阈值对移动通信终端进行智能功率管理的方法和装置 |
US20120331207A1 (en) * | 2011-06-24 | 2012-12-27 | Lassa Paul A | Controller, Storage Device, and Method for Power Throttling Memory Operations |
US20140380072A1 (en) * | 2013-06-21 | 2014-12-25 | Apple Inc. | Digital Power Estimator to Control Processor Power Consumption |
US20160041608A1 (en) * | 2013-06-21 | 2016-02-11 | Apple Inc. | Digital Power Estimator to Control Processor Power Consumption |
US20150309752A1 (en) * | 2014-04-29 | 2015-10-29 | Sandisk Enterprise Ip Llc | Storage System Power Management Using Controlled Execution of Pending Memory Commands |
US9727267B1 (en) * | 2016-09-27 | 2017-08-08 | Intel Corporation | Power management and monitoring for storage devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045804A (zh) * | 2019-11-26 | 2020-04-21 | 泰康保险集团股份有限公司 | 一种任务分配方法、装置、介质及电子设备 |
CN111045804B (zh) * | 2019-11-26 | 2024-03-19 | 泰康保险集团股份有限公司 | 一种任务分配方法、装置、介质及电子设备 |
CN114902193A (zh) * | 2019-12-31 | 2022-08-12 | 铠侠股份有限公司 | 用于调度快闪操作的系统和方法 |
CN114902193B (zh) * | 2019-12-31 | 2023-10-17 | 铠侠股份有限公司 | 用于调度快闪操作的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190065086A1 (en) | 2019-02-28 |
US11029859B2 (en) | 2021-06-08 |
EP3447607B1 (en) | 2021-05-12 |
TWI691969B (zh) | 2020-04-21 |
CN109426557B (zh) | 2022-08-30 |
TW201921346A (zh) | 2019-06-01 |
EP3447607A1 (en) | 2019-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426557A (zh) | 基于信用的命令调度 | |
KR102562260B1 (ko) | 커밋먼트-인식 스케줄러 | |
US6957433B2 (en) | System and method for adaptive performance optimization of data processing systems | |
JP5068099B2 (ja) | 個々のユーザの資源使用量およびその使用量の追跡に基づいた公平な共用分のスケジューリングを行う方法およびシステム | |
CN102640120B (zh) | 计算增设/减设的存储容量的管理系统 | |
US8510528B2 (en) | Differential data storage based on predicted access frequency | |
US9430277B2 (en) | Thread scheduling based on predicted cache occupancies of co-running threads | |
US8069444B2 (en) | Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors | |
US9256371B2 (en) | Implementing reinforcement learning based flash control | |
US8539139B1 (en) | Managing device wearout using I/O metering | |
CN103336669B (zh) | 一种基于固态盘内部并行性的i/o调度方法及调度器 | |
CN110058786A (zh) | 用于控制存储系统中的写请求的方法、装置和计算机程序产品 | |
JPH07281908A (ja) | 目標制御データを生成する作業負荷を管理する方法及び装置 | |
JP4920658B2 (ja) | 電力推定方法及び計算機システム | |
KR102430934B1 (ko) | 서비스 하한 품질에 기초한 메모리 대역폭 스케줄링 | |
US8522245B2 (en) | Thread criticality predictor | |
US8966493B1 (en) | Managing execution of multiple requests in a job using overall deadline for the job | |
CN102906696A (zh) | 计算机系统的细粒性能资源管理 | |
US20110161636A1 (en) | Method of managing power of multi-core processor, recording medium storing program for performing the same, and multi-core processor system | |
CN106372007B (zh) | 缓存使用率估计 | |
CN104407926A (zh) | 一种云计算资源的调度方法 | |
Zheng et al. | Exploring plan-based scheduling for large-scale computing systems | |
KR101652324B1 (ko) | 요구 성능 보장 방법 및 요구 성능 보장 장치 | |
CN117009057B (zh) | 一种基于动态价值的并发事务调度方法 | |
WO2014003785A1 (en) | Thermal prioritized computing application scheduling |
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 |