CN114902193B - 用于调度快闪操作的系统和方法 - Google Patents

用于调度快闪操作的系统和方法 Download PDF

Info

Publication number
CN114902193B
CN114902193B CN202080091465.6A CN202080091465A CN114902193B CN 114902193 B CN114902193 B CN 114902193B CN 202080091465 A CN202080091465 A CN 202080091465A CN 114902193 B CN114902193 B CN 114902193B
Authority
CN
China
Prior art keywords
suspendable
power
power credit
credit
granted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080091465.6A
Other languages
English (en)
Other versions
CN114902193A (zh
Inventor
尼尔·巴克斯顿
盖瑞·詹姆斯·卡德
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Publication of CN114902193A publication Critical patent/CN114902193A/zh
Application granted granted Critical
Publication of CN114902193B publication Critical patent/CN114902193B/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/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]
    • 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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0625Power saving in storage 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本文所描述的各种实施方案涉及用于固态驱动器(SSD)的系统和方法,其包含在执行用于所述SSD的快闪存储器的编程或擦除操作的同时请求电力信用。响应于确定所述所请求电力信用被拒绝,暂停所述编程或擦除操作且释放其电力信用。随后可响应于暂停所述编程或擦除操作且释放其电力信用而执行读取操作。

Description

用于调度快闪操作的系统和方法
技术领域
本公开大体上涉及固态驱动器(SSD)中的电力管理,并且尤其涉及用于调度快闪操作(例如,读取操作、写入操作、擦除操作等等)的系统和方法。
背景技术
SSD可为例如在数据中心、云存储中心等等地方的主机提供存储能力。读取操作是输入/输出(I/O)操作,其允许存储于SSD的快闪存储器(例如,NAND存储器阵列)上的数据由主机检索和读取。大体来说,在运行于主机上的应用程序可能要求读取操作的较快响应时间的条件下,读取操作优选为快速且可预测的。因此,需要以及时方式从快闪存储器读取数据。虽然读取操作与其它类型的快闪操作相比一般来说更快,但在一些情况下,由于先前调度的编程或擦除操作和/或电力信用不足,读取操作会在存储器通道队列中停止(例如,被阻挡或延迟)。
发明内容
在某些方面,SSD装置的当前实施方案包含控制器和包含多个存储器排组的快闪存储器装置。控制器向所述快闪存储器装置调度可暂停的操作,所述可暂停的操作消耗第一电力信用。控制器进一步在快闪存储器装置执行所述可暂停的操作的同时请求第二电力信用。响应于确定所请求第二电力信用未被准予,控制器暂停所述可暂停的操作且释放所述可暂停的操作的第一电力信用。控制器响应于释放所述可暂停的操作的第一电力信用而调度读取操作。响应于确定所请求第二电力信用被准予,控制器释放所述第二电力信用且可暂停的操作继续。
在一些实施方案中,控制器在多个存储器排组中的一个执行可暂停的操作的同时释放表示由可暂停的操作消耗的电力的电力信用,重新请求所述电力信用。响应于确定重新请求的电力信用未被准予,控制器暂停可暂停的操作且响应于释放电力信用而调度读取操作。响应于确定重新请求的电力信用被准予,所述可暂停的操作恢复或继续。
附图说明
图1是根据一些实施方案的示出实例SSD的框图;
图2A是根据一些实施方案的说明用于调度SSD中的快闪操作的实例过程的流程图。
图2B是根据一些实施方案的说明实例读取操作的流程图。
图3是根据一些实施方案的说明用于调度SSD中的快闪操作的实例过程的流程图。
图4是根据一些实施方案的说明用于调度SSD中的快闪操作的实例过程的示意图。
图5是根据一些实施方案的说明用于调度SSD中的快闪操作的实例过程的流程图。
图6是根据一些实施方案的说明用于调度SSD中的快闪操作的实例过程的流程图。
具体实施方式
在一些实施方案中,SSD包含具有多个NAND装置的快闪存储器(例如,非易失性存储器阵列),所述多个NAND装置经组织成可处理命令和快闪操作的存储器排组,其中每一存储器排组对应于一或多个存储器NAND裸片。SSD包含多个存储器通道,其中的每一个以操作方式耦合到存储器排组中的一或多个。快闪操作(NAND操作、I/O操作、存储器操作等)指代例如(但不限于)读取操作、写入(编程)操作、擦除操作等等操作。SSD的电力管理系统(例如,电力管理器)可实施预算系统以相对于由存储器排组中的快闪操作消耗的电力来管理或约束SSD中的电力消耗。在一些实例中,快闪操作可放置于存储器通道队列中且基于电力预算按顺序执行。换句话说,可通过控制快闪操作的调度来管理SSD中的电力消耗。在一些实施方案中,电力预算可通过因数来设定,所述因数例如(但不限于)主机计算机确定的电力水平、热限制、电力电路系统限制等等。
在一些实施方案中,电力预算是表示提供到SSD的快闪存储器的总电力的数字,用于连接到多个存储器通道的所有存储器排组进行消耗。电力信用(或电力成本)指派于相对于快闪存储器可执行的每一快闪操作(例如,发送或调度到存储器排组)。当前电力水平是针对所有存储器通道上的所有存储器排组当前正执行的所有快闪操作的电力信用的总和。用于给定存储器通道的总电力信用对应于在以操作方式耦合到所述存储器通道的存储器排组上当前正执行的所有快闪操作的电力信用的总和。当前电力水平是用于所有存储器通道的此类总电力信用的总和。响应于每一快闪操作经调度到给定存储器通道上的给定存储器排组,用于每一快闪操作的电力信用相加在一起以确定当前电力水平。可用电力是表示用于执行存储器通道队列中的额外快闪操作的当前可用电力的数字。可通过从电力预算减去当前电力水平确定可用电力。在一些实例中,(例如,由调度器)响应于确定快闪操作的电力成本(例如,电力信用)小于或等于当时的可用电力而调度所述快闪操作。响应于确定快闪操作完成,将用于所述快闪操作的电力信用从当前电力水平减去或添加到可用电力。
如所描述,快闪操作可插入到存储器通道队列中。调度器获取存储器通道队列的头部(例如,存储器通道队列中的需要调度的下一快闪操作)且将针对对应于所述快闪操作的指定电力信用的请求发送到电力管理器。响应于请求被准予,调度器在存储器通道上调度快闪操作。响应于确定请求未被立即准予,存储器操作在队列中保持未决,直到可用电力变为足以用于存储器操作为止(例如,直到用于所述快闪操作的电力信用小于或等于可用电力为止),此时请求被电力管理器准予。
此电力管理机制可致使一些快闪操作(例如,通常不容时延的高优先级读取操作)经历过量的且不可容忍的延迟,因此快闪操作待命且等待可用电力变为足够。此类延迟在其中应用程序I/O简档(例如,混合R/W简档)包含高比例的写入操作而SSD在高比例的时间中接近于满电力(低可用电力)操作的情形中可加剧。SSD接近于满电力操作,因为处理由于原始主机写入活动带来的编程操作以及还有由于垃圾收集活动带来的编程或擦除操作占用了较大百分比的存储器排组,这导致消耗所有或几乎所有的可用电力。通常,编程或擦除操作可花费的时间比读取操作长一个到两个数量级。在此情况下,在队列顶部的读取操作无法被调度,且需要等待直到一或多个先前调度的操作完成且用于所述一或多个先前调度的操作的电力信用被释放为止。因此,此电力管理机制可造成电力饥饿,其中低优先级操作(例如,编程或擦除操作)由于电力信用不足而使例如读取操作等高优先级且不容时延的操作停止。因此,在由此电力管理机制造成的高电力消耗的时间,主机可能经历高读取时延。此类高读取时延类似于在一些实例中在存储器排组中在任何给定时间仅可执行一个有效操作的条件下,主机关于读取操作由于缺乏可用电力而等待同一存储器排组上的编程或擦除操作完成所经历的那些时延。
主机读取操作由于此问题而不成比例地受到影响,因为在从主机接收写入操作时写入操作在例如随机存取存储器(RAM)等易失性存储器中缓冲。写入操作响应于被缓冲而立即经确认,其中一个例外是指定强制单元存取的写入操作,其在确认之前必须保持到非易失性媒体。另一方面,读取操作必须在读取数据与操作确认一起传回之前完成对媒体的读取存取,所述媒体可为RAM缓冲器高速缓存或永久性非易失性媒体。并不导致高速缓存命中的主机读取操作因此将放置于用于存储器通道的队列中,且因此可能经受由电力信用不足产生的过量延迟,这是由于当接近于SSD的电力限制操作时编程或擦除操作的过量。
本公开涉及SSD的控制器,所述控制器对用于SSD的快闪存储器的快闪操作进行排队,其中控制器前摄性地检查编程或擦除暂停,以防止由于当SSD接近于其总电力预算操作时由电力信用计数造成的电力缺乏而使读取操作停止。因此,在SSD接近于其最大电力限制操作的情况下可改善读取操作的最大时延。
图1示出根据一些实施方案的示意性地说明SSD 102的结构的框图。SSD 102以操作方式耦合到主机112。
主机112(例如,例如个人计算机等主机装置)经由符合存储接口标准的主机接口114连接到SSD 102。在一些实例中,SSD 102充当主机112的内部或外部存储装置。针对主机接口114实施的通信接口标准的实例包含例如(但不限于)串行高级技术附件(SATA)、串行连接的SCSI(SAS)、快速外围组件互连(PCIe)等等标准。
SSD 102包含快闪存储器控制器116、随机存取存储器(RAM)118和快闪存储器120。快闪存储器控制器116包含主机接口114、快闪转译层(FTL)122、处理器124、静态随机存取存储器(SRAM)126、只读存储器(ROM)128,和NAND控制器130。NAND控制器130包含第一通道控制器104和第二通道控制器108。快闪存储器120包含一或多个NAND装置,其中的每一个由通过通道耦合到NAND控制器130的裸片的多个排组构成。快闪存储器120包含第一NAND装置群组132,其具有第一排组(排组0)134和第二排组(排组1)136。排组134和136经由第一存储器通道138耦合到通道控制器104。快闪存储器120包含第二NAND装置群组140,其具有第三排组(排组2)142和第四排组(排组3)144。排组142和144经由第二存储器通道146耦合通道控制器108。
快闪存储器120包含经配置以存储数据的非易失性(非暂时性)NAND存储器装置(例如,第一NAND装置群组132和第二NAND装置群组140)。快闪存储器控制器116对SSD 102执行(实行)数据传送控制。快闪存储器控制器116控制RAM 118(例如,易失性存储装置)以临时存储从主机112传送到快闪存储器120的数据,然后将数据写入到快闪存储器120的裸片。RAM 118充当快闪存储器120的数据高速缓存存储器,且可为动态随机存取存储器(DRAM)、铁电随机存取存储器(FeRAM)、磁阻随机存取存储器(MRAM)等等中的一或多个。
快闪存储器控制器116中的处理器124执行ROM 128中的启动代码,从而将控制转移到在SRAM 126中运行的FTL固件以经由RAM 118管理主机接口114与NAND控制器130之间的数据互换。
快闪存储器控制器116通过一或多个快闪存储器总线与快闪存储器120介接,所述总线例如(但不限于)存储器通道138和146。虽然SSD 102包含两个存储器通道(第一存储器通道(CH0)138和第二存储器通道(CH1)146),但SSD的其它实例可包含一或多个(例如,8、16或更多)存储器通道。各自具有一或多个存储器裸片的一或多个NAND存储器装置(排组)可耦合到每一存储器通道。裸片或装置可在一起分组成排组,可通过存储器通道控制器使用芯片启用信号独立地选择所述排组。虽然SSD 102包含每存储器通道两个排组,但SSD的其它实例可包含每存储器通道一或多个(例如,8、16或更多)排组。
NAND控制器130包含以操作方式耦合到存储器通道138和146中的相应一个的通道控制器104或108。通道控制器104包含调度器逻辑(例如,调度器),其控制发出到耦合到存储器通道138的排组134和136的存储器命令(例如,快闪操作)的调度。通道控制器108包含调度器逻辑(例如,调度器),其控制发出到耦合到存储器通道146的排组142和144的存储器命令(例如,快闪操作)的调度。
通道控制器104和108各自含有提供位操作的逻辑和用于通道控制器104和108中的每一个的调度器内的排组选择的支持逻辑。此逻辑可为硬件实施的逻辑块,其包含逻辑门和指示排组134、136、142和144以及存储器通道138和146的状态的直接硬件输入。所述逻辑使得调度器能够调度快闪操作以传输或发送到排组134、136、142和144以便有效地使用存储器通道138和146。
通道控制器104和108使用所述逻辑以确定其中来自主机112的快闪操作经由存储器通道138和146传输到排组134、136、142和144的顺序。所述硬件实施的逻辑可快速识别快闪操作通过共享存储器通道发送到的排组,因为所述硬件实施的逻辑可有效地处置大量的变量和条件,从而增加命令处理和调度的效率。
命令循环包含周期或区的序列。第一周期是地址和命令设置,随后是在写入命令(编程操作)情况下的数据传送。这随后是其中命令是排组中的内部处理的非作用周期。最终周期是来自排组的状态或响应。
因为例如写入命令等一些命令包含高时延非作用周期,所以写入命令可通过存储器通道138发送到排组134,且在第一排组134执行命令(例如,执行对应于命令的快闪操作)的同时,额外命令可通过存储器通道138发送到另一排组(例如,排组136)。以此方式使通过同一通道传输的命令交错使得SSD 102能够更高效地处理命令,因为多个排组可使用共享存储器通道同时独立地执行命令。虽然在任何给定时间通过存储器通道可传输仅一个命令或传送数据,但在第一排组忙于执行命令的同时,额外命令可按顺序发送到其它排组,只要命令循环的总线数据传送区不重叠即可。
对于传输到排组134的写入命令,待写入的数据从NAND控制器130(通道控制器104)通过存储器通道138呈现给排组134。响应于接收到写入命令,排组134开始写入数据。在数据正写入的同时,排组134忙碌,但存储器通道138可能不忙碌。更确切地说,写入数据可能花费从几百微秒直至几毫秒来完成,在此期间存储器通道138不忙碌。数据是使用页编程命令以页为单位写入到快闪存储器120。使用页编程命令写入数据所花费的时间称为tPROG。通道控制器104的逻辑在数据写入执行期间确定排组134的时延时间,且确定在此时间期间额外命令是否可通过存储器通道138发送到耦合到通道控制器104的另一排组,因此通过使存储器通道138空闲的时间最小化而增加效率。第二排组调度器108类似地运作。
在一些实例中,在数据正由排组134写入的同时,通道控制器104的逻辑确定对于tPROG,排组134无法接受额外命令,但第一NAND装置群组132中的其它排组(例如,排组136)可通过存储器通道138接受命令。通道控制器104的调度器可设定定时器以指示tPROG保持于排组134的时延周期中。通道控制器104的逻辑可查询命令队列看是否有第一NAND装置群组132中的额外排组(例如,排组136),且选择那些排组中的一个(例如,排组136)以在排组134写入数据的同时通过存储器通道138传输后续命令或快闪操作。可由通道控制器104的调度器基于与队列的状态和排组的状态相关的多个硬件信号而选择待传输的后续命令或快闪操作。后续命令或快闪操作可为待传输到排组136的读取命令/操作。通道控制器104的调度器随后通过存储器通道138将读取命令传输到排组136。由排组136执行读取命令,且通过存储器通道138传输回完成信号。可随后通过存储器通道138接收用于由排组134执行的写入命令的完成信号,或可基于通道控制器104的逻辑的确定将额外命令传输到排组136。
在一些实例中,通道控制器104的调度器也可确定对于正由排组134和136执行的经调度擦除操作(可能花费几毫秒来完成经调度擦除操作),可有可能将后续命令或快闪操作通过存储器通道138传输到同一通道上的其它排组(例如,排组136)。可由通道控制器104的调度器基于与队列的状态和排组134和136的状态相关的多个硬件信号而选择待传输的后续命令或快闪操作。在一个实例中,后续命令或快闪操作可为待传输到存储器排组136的读取命令/操作。
虽然向除执行编程或擦除操作的排组外的排组调度后续命令或操作可为可能的,但仍存在的问题是在编程或擦除操作完成之前对执行编程或擦除操作的排组的后续命令或操作是不可能的。出于此原因,已改进快闪存储器120以使得快闪存储器控制器116能够发出命令以暂停和恢复先前调度的操作。可暂停和恢复的操作在本文中被称作“可暂停的操作”且包含(但不限于)编程和擦除操作。
本文所描述的实施方案改善了暂停和恢复可暂停的操作的使用以使得能够调度待决读取操作,其中具体来说当SSD 102正接近于可用电力预算操作时可以其它方式停止或阻挡此类读取操作。
在一些实施方案中,快闪存储器控制器116包含电力管理器150以使用预算系统管理SSD 102的电力。电力管理器150可以操作方式耦合到通道控制器104和108以基于当前可用电力允许或拒绝快闪操作。举例来说,通道控制器(例如,通道控制器104和108)可经由合适的通信总线或端口将针对用于快闪操作(例如,读取操作/命令、编程(写入)操作/命令、擦除操作/命令等等)的电力信用的请求发送到电力管理器150。电力管理器150可基于预算系统确定是否有足够电力可用于快闪操作,且响应于确定有足够电力可用于快闪操作而发送准予消息。通道控制器响应于从电力管理器150接收到准予消息而确定电力管理器150准予所请求的电力信用。
在一些实例中,电力管理器150确定求和函数,其实例在下面示出:
可用电力=电力预算-当前电力水平 (1)
可通过从电力预算减去当前电力水平确定可用电力。在一些实例中,电力管理器150响应于确定快闪操作的电力成本(例如,电力信用)小于或等于当时的可用电力而允许快闪操作。响应于确定快闪操作完成,将用于所述快闪操作的电力信用从当前电力水平减去或添加回到可用电力。举例来说,通道控制器可向电力管理器150发送释放通知,指示通道控制器释放用于给定快闪操作的电力信用。
通道控制器104和108中的每一个的调度器维持包含快闪操作的存储器通道队列,使得放置于存储器通道队列中的快闪操作基于电力预算按顺序执行。
在一些实施方案中,为了解决由于大量编程或擦除操作和/或电力信用不足而在存储器通道队列停止的读取操作,通道控制器可采用过程200(图2A)或方法300(图3)。过程200和300可由通道控制器104实施而不需要通道控制器104知道SSD 102中的其它存储器通道(例如,耦合到通道控制器108的通道146)的所需和当前电力使用。在SSD 102中的每一通道控制器不需要知道SSD 102中的其它通道控制器的电力要求的条件下,由电力控制器150使用的预算系统可保持简单。虽然图2A到5是参考通道控制器104描述的,但SSD 102的另一通道控制器(例如,通道控制器108)可关于以操作方式耦合到那些通道控制器的存储器通道/排组类似地实施参考图2A到5描述的机制。
图2A是根据一些实施方案的说明用于调度SSD 102(图1)中的快闪操作的实例过程200的流程图。参看图1到2A,在过程200中,通道控制器104在可暂停的操作正执行的同时将用于可暂停的操作(例如,编程或擦除操作)的电力信用周期性地释放到电力管理器150,且接着立即从电力管理器150重新请求那些电力信用。在这样做时,由于缺乏可用电力信用而由可暂停的操作停止的任何读取操作可使用当通道控制器104释放用于可暂停的操作的电力信用时释放的电力信用中的一些。在此情况下,重新请求可能失败,因为由于由读取操作使用的电力信用而将存在较少的可用电力信用,且在所述情况下,通道控制器104暂停所述可暂停的操作。响应于暂停完成,通道控制器104返回到230且重新请求用于可暂停的操作的电力信用,且持续这样做直到所请求的电力信用被准予为止。响应于所请求电力信用被准予,通道控制器104恢复可暂停的操作且返回到220以释放用于可暂停的操作的电力信用。以此方式,周期性地执行用于可暂停的操作的电力信用的释放和重新请求(例如,在220和230),直到可暂停的操作完成或达到其中暂停所述可暂停的操作将引发的时延短于执行任何读取操作所花费的时间的点(在此点允许可暂停的操作完成而无需暂停)为止。
在210,通道控制器104调度可暂停的操作。可暂停的操作由以操作方式耦合到通道138的存储器排组134或136执行。在一些实例中,可暂停的操作是编程(写入)操作,其中通道控制器104将数据编程或写入到经由存储器通道138以操作方式耦合到通道控制器104的存储器排组134和136中的一或多个的一或多个页。在一些实例中,可暂停的操作是擦除操作,其中通道控制器104从存储器排组134和136中的一或多个的一或多个块擦除数据。
可暂停的操作消耗给定量的电力信用。在210可调度可暂停的操作之前,通道控制器104将针对用于可暂停的操作的电力信用的请求发送到电力管理器150。通道控制器104响应于从电力管理器150接收到指示所请求电力信用已由电力管理器150准予的准予消息而确定所请求电力信用由电力管理器150准予。可响应于确定所请求电力信用被准予而调度可暂停的操作。
在220,通道控制器104在可暂停的操作正执行的同时释放用于可暂停的操作的电力信用。即,在210调度可暂停的操作之后且在可暂停的操作完成之前,通道控制器104释放表示由可暂停的操作消耗的电力的电力信用。举例来说,在可暂停的操作完成之前(在其正由存储器排组134或136执行的同时),通道控制器104将释放通知发送到电力管理器150,指示通道控制器104释放用于可暂停的操作的电力信用。如本文所描述,在可暂停的操作正执行的同时(在操作完成之前)框220、230、240和250(共同称为“循环”)可周期性地执行,而无需正由存储器排组134或136执行的可暂停的操作自身的任何中断。
在230,通道控制器104重新请求释放的电力信用。紧接在框220之后(无延迟)或在某个合适的短延迟之后重新请求释放的电力信用,以便为被准予任何所请求电力信用的任何排队的读取操作给出一些时间,这可发生在框220与230之间的时间。读取操作被准予电力信用的时间由A*表示。举例来说,在可暂停的操作完成之前,通道控制器104将请求发送到电力管理器150,指示通道控制器104正重新请求用于可暂停的操作的电力信用。
在240,通道控制器104确定重新请求的电力信用是否被电力管理器150准予。举例来说,通道控制器104响应于从电力管理器150接收到指示重新请求的电力信用已由电力管理器150准予的准予消息而确定重新请求的电力信用由电力管理器150准予。重新请求被准予指示可用电力中留有足够电力信用用于额外快闪操作,使得在可暂停的操作正执行的同时读取操作或其它类型的快闪操作不大可能被停止。如果可暂停的操作在当时实际上未暂停,那么可暂停的操作正常继续而无任何中断。
另一方面,通道控制器104响应于从电力管理器150接收到指示重新请求已被拒绝且重新请求的电力信用未被电力管理器150准予的拒绝消息而确定重新请求的电力信用未被电力管理器150准予。重新请求被拒绝指示SSD 102正以电力预算或接近于电力预算操作,使得在可暂停的操作正执行的同时读取操作或其它类型的快闪操作可能被停止,且可能一或多个此类操作已在点A*被准予电力信用(因此不存在较长的足够电力信用用于可暂停的操作继续)。
通过释放和重新请求用于可暂停的操作的电力信用,通道控制器104提供对在等待信用的同时可能被停止的任何读取或其它低电力和/或高优先级操作准予足够电力信用的机会。通道控制器104释放和重新请求用于可暂停的操作的电力信用而无需中断可暂停的操作自身,除非存在在等待电力信用的同时被停止的操作,在此情况下可对那些停止的操作准予电力信用且可不准予对用于可暂停的操作的电力信用的重新请求。
响应于确定重新请求的电力信用被准予(240:是),通道控制器104在250恢复或继续可暂停的操作,且返回到220,在此过程重复。换句话说,响应于确定重新请求的电力信用被准予(240:是),不暂停/中断可暂停的操作。因此,通道控制器104可检查是否有任何读取或其它低电力和/或高优先级操作被停止而无需实际上暂停可暂停的操作。方法200在框250之后返回到框220,使得通道控制器104执行220、230、240和250的循环,且在可暂停的操作正执行的同时周期性地释放和重新请求用于可暂停的操作的电力信用。在一些实施方案中,可通过在框220、230、240和250中的两个或更多个之间插入一或多个时间延迟而改变循环自然频率,因此调整周期性。
另一方面,响应于确定重新请求的电力信用未被准予(240:否),通道控制器104首先在245检查可暂停的操作是否已暂停。响应于确定可暂停的操作未暂停(245:否),通道控制器104在260暂停可暂停的操作。通道控制器104通过使用暂停命令来暂停可暂停的操作。响应于可暂停的操作被暂停,或可暂停的操作已暂停(245:是),通道控制器104返回到在230重新请求用于可暂停的操作的电力信用。
在一些实例中,可能存在与暂停和/或恢复可暂停的操作相关联的时延,使得通道控制器104可在实际上暂停可暂停的操作之前使用先前经调度可暂停的操作的估计剩余执行时间执行计算。这使得通道控制器104可确定允许可暂停的操作不间断地继续到完成与暂停可暂停的操作相比是否更有利。允许可暂停的操作继续可更有利的条件包含暂停时延时间超过估计剩余执行时间以及读取操作的估计执行时间超过估计剩余执行时间。响应于确定满足此类条件中的任一个,跳过可暂停的操作的暂停,且允许可暂停的操作继续到完成。当可暂停的操作最终完成时用于给定可暂停的操作的过程200结束。
图2B示出根据一些实施方案的读取操作的流程图。参看图1到2B,在过程270中,通道控制器104在275发起从队列取得的读取操作。在280从电力管理器150请求调度读取操作所需的电力信用。响应于请求被拒绝且无电力信用被准予(285:否),通道控制器104返回到在280请求电力信用。例如在当SSD 102正接近于电力预算操作时的高写入活动周期期间,通道控制器104可保留于包含框280和285的循环中。在保留于循环中的同时,读取命令经受额外时延。当由于先前由通道控制器104调度的其它命令的自然完成而使足够电力信用变为可用时此循环可被打破,但这可导致过量的且不可接受的时延。为了避免此时延,在过程200中针对图2A中示出的可暂停的命令在由A*表示的点处释放电力信用,所述点对应于图2B中当电力信用变为被准予时的点A*。因此,在可暂停的操作的调度后在框220(图2A)中释放电力信用可导致针对在图2B中的框280和285的循环中停止的读取操作准予电力信用(285:是,图2B)。通过释放/重新请求电力信用的周期性的合适调整(在图2A中的框220和230),可控制在图2B中的框280和285的循环中等待的任何读取命令的最大时延。
响应于电力信用被准予(285:是),通道控制器104在290调度读取操作。一旦读取操作完成,通道控制器104就在295释放读取操作的电力信用。
图3是根据一些实施方案的说明用于调度SSD 102(图1)中的快闪操作的实例过程300的流程图。参看图1到3,在过程300中,通道控制器104执行消耗电力信用(被称作“第一电力信用”)的可暂停的操作,且在可暂停的操作期间从电力管理器150周期性地请求额外电力信用(被称作“第二电力信用”)。如果请求被准予,那么立即释放第二电力信用,且可暂停的操作继续(无中断)。另一方面,请求被拒绝指示SSD 102正接近于电力预算操作,意味着一些读取操作在存储器通道队列中的同时可能停止(例如,在图2B中在过程270中在框280、285处)。响应于确定请求被拒绝,通道控制器104识别当前运行的可暂停的操作且暂停所识别可暂停的操作并释放第一电力信用,因此使释放的第一电力信用可用于任何停止的读取操作。通道控制器104随后请求用于暂停的可暂停的操作的第一电力信用。响应于确定电力管理器150准予请求,通道控制器104恢复可暂停的操作。
在305,通道控制器104调度消耗第一电力信用的可暂停的操作。在一些实例中,可暂停的操作是编程(写入)操作,其中通道控制器104将数据编程或写入到经由存储器通道138以操作方式耦合到通道控制器104的存储器排组134和136中的一或多个的一或多个页。在一些实例中,可暂停的操作是擦除操作,其中通道控制器104从存储器排组134和136中的一或多个的一或多个块擦除数据。
可暂停的操作消耗给定量的电力信用,称为第一电力信用。在305可调度可暂停的操作之前,通道控制器104将针对用于可暂停的操作的第一电力信用的请求发送到电力管理器150。通道控制器104响应于从电力管理器150接收到指示所请求第一电力信用已被电力管理器150准予的准予消息而确定所请求第一电力信用被电力管理器150准予。可响应于确定所请求第一电力信用被准予而调度可暂停的操作。
在310,通道控制器104请求额外的第二电力信用。举例来说,在可暂停的操作正执行的同时,通道控制器104将请求发送到电力管理器150,指示通道控制器104正请求第二电力信用。如本文所描述,在可暂停的操作正执行的同时可周期性地执行框310、315、320和325(共同称为“循环”)而无需中断可暂停的操作(直到可暂停的操作完成为止)。在一些实施方案中,可在框310、315、320和325之间插入一或多个时间延迟,因此改变循环的自然频率和其周期性。
在315,通道控制器104确定所请求第二电力信用是否被电力管理器150准予。举例来说,通道控制器104响应于从电力管理器150接收到指示所请求第二电力信用已被电力管理器150准予的准予消息而确定所请求第二电力信用被电力管理器150准予。请求被准予指示可用电力中留有足够电力信用用于额外快闪操作,使得在可暂停的操作正执行的同时读取操作或其它类型的快闪操作不大可能被停止。
另一方面,通道控制器104响应于从电力管理器150接收到指示所请求第二电力信用尚未被电力管理器150准予的拒绝消息而确定所请求第二电力信用未被电力管理器150准予。请求被拒绝指示SSD 102正以电力预算或接近于电力预算操作,使得在可暂停的操作正执行的同时读取操作或其它类型的快闪操作可能被停止。
通过在可暂停的操作执行的同时请求额外第二电力信用,通道控制器104探测可用电力的量且确定停止的可能性而不必获得对实际可用电力(由电力管理器150管理)或其它通道(例如,由通道控制器108管理的通道146)的所需和当前电力使用的了解。
响应于确定所请求第二电力信用被准予(315:是),通道控制器104在320释放准予的第二电力信用且在325继续可暂停的操作。换句话说,响应于确定所请求第二电力信用被准予(315:是),不暂停/中断可暂停的操作,且将所请求第二电力信用返回到电力管理器150。因此,通道控制器104可检查是否有任何读取操作停止而无需实际上暂停可暂停的操作。方法300返回到框310,其中通道控制器104在可暂停的操作正执行的同时周期性地请求额外第二电力信用。
另一方面,响应于确定所请求第二电力信用未被准予(315:否),通道控制器104在330暂停可暂停的操作且释放第一电力信用。通道控制器104通过使用暂停命令来暂停可暂停的操作。在一些实例中,响应于确定所请求第二电力信用未被准予(315:否),通道控制器104可请求NAND控制器130识别当前在通道CH0 138和CH1 146上对存储器排组执行的可暂停的操作,其可指示通道控制器104和108暂停所识别可暂停的操作中的一或多个。
响应于可暂停的操作被暂停且第一电力信用被释放,通道控制器104在335重新请求用于暂停的可暂停的操作的第一电力信用。这可紧接在框330之后(无延迟)或在某个合适的短延迟之后发生,以便对将被准予任何所请求电力信用的任何排队的读取操作给出一些时间,其可发生在框330与335之间的时间。读取操作被准予电力信用的时间由B*表示。举例来说,通道控制器104将请求发送到电力管理器150,指示通道控制器104在可暂停的操作暂停的同时请求用于可暂停的操作的第一电力信用。在其中多个可暂停的操作暂停且其相关联电力信用被释放的实例中,在335请求用于所有暂停的可暂停的操作的电力信用。
在340,通道控制器104确定所请求第一电力信用是否被电力管理器150准予。举例来说,通道控制器104响应于从电力管理器150接收到指示所请求第一电力信用已被电力管理器150准予的准予消息而确定所请求第一电力信用被电力管理器150准予。响应于确定第一电力信用未被准予(340:否),方法300返回到框335,其中通道控制器104重复请求用于暂停的操作的第一电力信用。
另一方面,响应于确定所请求第一电力信用被电力管理器150准予(340:是),通道控制器104在345恢复暂停的可暂停的操作。请求被准予指示可用电力中留有足够电力信用用于额外快闪操作,例如读取操作。
在框330中释放第一电力信用之后且在框335之前,在点B*,电力信用变为可用于被准予给任何停止的读取操作,其对应于图2B中的电力信用变为被准予(285:是)的点B*。因此,在可暂停的操作的暂停后在框330(图3)中释放第一电力信用可导致针对在框280和285(图2B)的循环中停止的读取操作准予电力信用(285:是,图2B)。通过请求/释放额外电力信用(在图3中的框310和330)的周期性的合适调整,可控制在图2B中的框280和285的循环中等待的任何读取命令的最大时延。
在电力信用被准予(285:是,图2B)后,通道控制器104在步骤290中调度读取操作,且一旦读取操作完成,通道控制器104就释放读取操作的电力信用。
读取操作包含从存储器排组134和136中的一或多个的一或多个页读取数据。在一些实例中,通道控制器104(例如,其调度器)获取存储器通道队列中的下一未调度快闪操作(例如,读取操作),且将对读取操作需要的电力信用的请求发送到电力管理器150。在可暂停的操作暂停且第一电力信用被释放的条件下,可用电力中留有足够电力信用以允许读取操作继续进行。响应于从电力管理器150接收到指示用于读取操作的所请求电力信用已被电力管理器150准予的准予消息,通道控制器104执行读取操作。换句话说,使用在330释放的第一电力信用调度读取操作。
在读取操作完成且在295释放其电力信用之后,通道控制器104可在340被准予第一电力信用。执行暂停的可暂停的操作的其余部分需要的电力信用可相同于或小于在305调度可暂停的操作之前请求的第一电力信用。通道控制器104响应于从电力管理器150接收到指示所请求电力信用已被电力管理器150准予(340:是)的准予消息而确定所请求电力信用被电力管理器150准予。在所请求电力信用被电力管理器150准予之后通道控制器104在345恢复暂停的可暂停的操作。在可暂停的操作恢复之后且在可暂停的操作完成之前,方法300返回到框310,因此执行循环以使得通道控制器104周期性地请求额外第二电力信用。
因此,通道控制器104可通过周期性地释放/重新请求电力信用(在框220和230)或周期性地请求/释放额外第二电力信用(在框310和320)来评估SSD 102是否以电力预算或接近于电力预算操作。为此,释放/重新请求电力信用或请求/释放额外第二电力信用的周期性可用以确定由于电力信用不足带来的读取操作的最大时延。
图4是根据一些实施方案的说明用于调度SSD 102(图1)中的快闪操作的实例过程400的示意图。参看图1到4,在402调度(按照210或305)可暂停的操作401,且所述可暂停的操作在403结束。在编程或擦除操作401期间、在编程或擦除操作401开始之后以及在编程或擦除操作401结束之前的表示为405a-405f的各个点处,通道控制器104以描述的方式(例如,释放/重新请求电力信用或请求/释放额外第二电力信用)周期性地评估可用电力。作为针对电力信用的两个邻近释放/重新请求之间或针对额外第二电力信用的两个邻近请求之间的时间间隔的周期性表示为Tp。
在一些实施方案中,通道控制器104可从电力管理器150接收可用电力的量的指示。举例来说,通道控制器104发送到电力管理器150的每一电力信用请求可含有针对可用电力的量的指示的请求,使得电力管理器150可在准予消息中将可用电力的量的指示发送到通道控制器104。可用电力的量称为电力信用剩余(PCR)。
在一些实施方案中,响应于通道控制器104确定PCR低于阈值,在可暂停的操作在402开始之后,通道控制器104开始周期性地评估可用电力。在一些实例中,在可暂停的操作在402开始之后不长于最大读取时延TRLmax的时间,通道控制器104开始评估可用电力。即,其中通道控制器104评估可用电力的第一实例(405a)是在可暂停的操作在402开始之后的TRLmax之前。TRLmax是主机112可允许的最大读取时延阈值。通道控制器104可在TRLmax之后或响应于PCR下降到低于第一安全阈值(根据其中更早的一种情况)开始可用电力的周期性评估。通道控制器104可在不长于TRLmax的某一时间周期中暂停可用电力的周期性评估,之后其恢复周期性地评估可用电力。因此,可减小用于评估可用电力的开销,同时保证最大读取时延,因为仅响应于PCR足够低(例如,低于第一安全阈值)而使得读取操作可停止或响应于确定自从最后周期性检查时起已经过TRLmax时间而执行周期性评估。
在一些实施方案中,Tp是预定的静态值。在其它实施方案中,可由通道控制器104基于从电力管理器150接收的PCR动态地确定Tp。举例来说,Tp可与PCR成比例。在一些实例中,也可应用最小Tpmin。Tpmin表示可用电力的评估执行的周期性不需要短于最小时间间隔的条件。为了说明,可使用以下表达式确定Tp:
Tp = K × PCR; 如果 Tp < Tpmin,那么 Tp = Tpmin (2)。
K是常数。编程(写入)操作可具有TOPprog的循环时间和TSUSprog的最小编程暂停时间。在一些实施方案中,响应于通道控制器104确定表达式(3)为真,通道控制器104在可暂停的操作401(在此情况下为编程操作)在402开始之后且在可暂停的操作401在403结束之前以周期性Tp评估可用电力。
Tpmin<Tp<TOPprog-TSUSprog(3)。
响应于通道控制器104确定表达式(3)为假,通道控制器104在可暂停的操作401期间不评估可用电力。在TSUSprog表示从请求编程操作的暂停到编程操作的实际暂停的响应时间的条件下,如果在TSUSprog内编程操作无论如何都将完成,那么通道控制器104暂停编程操作是成本低效的。
在一些实施方案中,在可暂停的操作401期间,通道控制器104可随着PCR增加而放松评估可用电力的频率(减小Tp的长度),且随着PCR减小而减小评估可用电力的频率(增加Tp的长度)。举例来说,可调整表达式(2)中的常数K,使得例如Tp可在Tpmin与TRLmax之间变化。因此,在可暂停的操作401期间的Tp的长度可基于PCR变化。
在一些实施方案中,通道控制器104可阻止可暂停的操作401发起(通过阻止暂停操作401的调度),除非从电力管理器150接收的PCR除可暂停的操作401之外还可支持N个同时读取操作。举例来说,通道控制器104可允许响应于确定以下表达式为真而调度可暂停的操作401:
PCR ≥PCpe+N ×PCr (4);
其中PCpe表示由可暂停的操作(例如,编程或擦除操作)401消耗的电力信用,且PCr表示由读取操作消耗的电力信用。
图5是根据一些实施方案的说明用于调度SSD 102(图1)中的快闪操作的实例过程500的流程图。参看图1到5,过程300是过程500的实例实施方案。
在510,通道控制器104在执行用于快闪存储器120的可暂停的操作(例如,可暂停的操作401)的同时从电力管理器150请求电力信用。在一些实例中,在执行可暂停的操作的同时周期性地请求电力信用。通道控制器104可基于SSD的可用电力确定请求电力信用的周期性。在一些实例中,周期性随着可用电力增加而增加。在一些实例中,可暂停的操作是编程操作,且基于编程操作的循环时间TOPprog和编程操作的最小编程暂停时间TSUSprog确定请求电力信用的周期性。在一些实例中,响应于通道控制器104确定SSD的可用电力低于阈值,通道控制器104请求电力信用。在一些实例中,通道控制器104在可暂停的操作发起之后不长于最大读取时延TRLmax的时间请求电力信用。
在520,响应于确定所请求电力信用未被准予,通道控制器104暂停可暂停的操作且释放在调度可暂停的操作之前准予的电力信用。
在530,通道控制器(可为不同于通道控制器104的通道控制器)响应于暂停可暂停的操作而调度读取操作。通道控制器104响应于完成读取操作而恢复编程或擦除操作。
在一些实施方案中(例如,过程300),由P/E可暂停的操作消耗的电力由第一电力信用表示。在调度可暂停的操作(例如,在305)之前请求和准予(未示出)用于可暂停的操作的第一电力信用。接下来,在执行可暂停的操作的同时请求第二电力信用(例如,在310)。除第一电力信用之外还请求第二电力信用。响应于确定所请求第二电力信用被准予(例如,315:是),通道控制器104释放第二电力信用(例如,在320),且可暂停的操作继续(例如,在325)。响应于确定所请求第二电力信用未被准予(例如,315:否),通道控制器104暂停可暂停的操作且释放第一电力信用(例如,在330)。响应于第一电力信用被释放,可调度读取操作(在B*)。通道控制器104接着请求用于暂停的可暂停的操作的第一电力信用(例如,在335)。响应于确定第一电力信用被准予(例如,340:是),通道控制器104恢复可暂停的操作(例如,在345)。
图6是根据一些实施方案的说明用于调度SSD 102(图1)中的快闪操作的实例过程600的流程图。参看图1到6,过程200是过程600的实例实施方案。
在610,通道控制器104在执行可暂停的操作的同时释放电力信用。在620,通道控制器(可为不同于通道控制器104的通道控制器)响应于电力信用被释放而调度读取操作。在630,通道控制器104在执行可暂停的操作的同时重新请求电力信用(例如,在A*)。
在一些实施方案中(例如,过程200),电力信用表示由可暂停的操作消耗的电力。在调度操作(例如,在210)之前请求和准予(未示出)用于可暂停的操作的电力信用,且释放(例如,在220)和重新请求(例如,在230)用于可暂停的操作的电力信用。响应于确定重新请求的电力信用被准予(例如,240:是),可暂停的操作继续且不中断(例如,在250)且控制返回到220。
提供先前的描述以使所属领域的技术人员能够实践本文所描述的各个方面。这些方面的各种修改对于所属领域的技术人员来说将容易显而易见,并且本文中定义的一般原理可应用于其它方面。因此,权利要求书不希望限于本文中所展示的方面,而是应被赋予与语言权利要求一致的完整范围,其中参考呈单数形式的元件不希望意味着“一个且仅一个”(除非明确地如此陈述),而是相反地为“一或多个”。除非另有具体陈述,否则术语“一些”是指一或多个。所属领域的技术人员已知或日后将知晓的贯穿先前描述而描述的各种方面的元件的所有结构和功能等效物以引用的方式明确地并入本文中,且旨在由所附权利要求书涵盖。此外,本文公开的任何内容均不希望奉献给公众,无论权利要求书中是否明确地陈述此公开内容。任何权利要求要素都不应解释为装置加功能,除非所述要素使用短语“用于……的装置”来明确地叙述。
应理解,所公开的过程中的步骤的特定次序或层次是说明性方法的实例。应理解,基于设计偏好,过程中的步骤的特定次序或层次可重新布置,同时保持在先前描述的范围内。所附方法权利要求以示例顺序给出了各个步骤的要素,并不意味着局限于所给出的特定顺序或层次。
提供所公开实施方案的先前描述是为了使所属领域的技术人员能够制作或使用所公开的主题。所属领域的技术人员将易于了解对这些实施方案的各种修改,且在不脱离先前描述的精神或范围的情况下,本文中定义的一般原理可适用于其它实施方案。因此,先前描述并不意图限于本文所示的实施方案,而是将被赋予与本文所公开的原理和新颖特征一致的最宽范围。
所说明和描述的各种实例仅作为实例提供来说明所附权利要求书的各个特征。然而,关于任何给定实例显示和描述的特征不一定限于相关联的实例,并且可以使用或与所显示和描述的其它实例组合。此外,权利要求书并不意图受任何一个实例限制。
前述方法描述和过程流程图仅仅作为说明性实例提供,并且其并不打算要求或暗示各种实例的步骤必须以所呈现的顺序进行。本领域技术人员将了解的是,前述实例中的步骤的次序可以按任意次序执行。例如“随后”、“接着”、“接下来”等词并不希望限制步骤的次序;这些词仅用以引导读者浏览对方法的描述。而且,以单数形式声明元件的任何引用(例如使用冠词“一个/一种(a/an)”或“所述”)不应被解释为将所述元件限制于单数。
结合本文中所公开的实例所描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件,或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性描述了各种说明性组件、块、模块、电路和步骤。此类功能性是实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。本领域的技术人员可以针对每个特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为造成对本公开的范围的偏离。
用以实施结合本文所公开的实例描述的各种说明性逻逻辑模块和电路的硬件可用以下来实施或执行:设计成执行本文所述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。通用处理器可为微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器、或状态机。处理器也可以实施为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它此类配置。替代地,可由特定地针对给定功能的电路来执行一些步骤或方法。
在一或多个示范性实例中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施,那么所述功能可以作为一或多个指令或代码存储在非暂时性计算机可读储存媒体或非暂时性处理器可读存储媒体上。本文中所公开的方法或算法的步骤可体现于可驻存在非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读存储媒体可为可由计算机或处理器存取的任何存储媒体。借助于实例而非限制,此类非暂时性计算机可读或处理器可读存储媒体可包含RAM、ROM、EEPROM、快闪存储器、CD-ROM或其它光盘存储装置、磁盘存储器或其它磁性存储装置,或可用于存储呈指令或数据结构形式的所要程序代码并且可被计算机存取的任何其它媒体。如本文所使用的磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。以上各者的组合也包含在非暂时性计算机可读和处理器可读媒体的范围内。另外,一种方法或算法的操作可作为代码和/或指令的一个或任何组合或集合而驻存在非暂时性处理器可读存储媒体和/或计算机可读存储媒体上,所述媒体可并入到计算机程序产品内。
提供对所公开实例的先前描述是为了使所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将容易了解对这些实例的各种修改,且可在不脱离本公开的精神或范围的情况下将本文中定义的一般原理应用到一些实例。因此,本公开并不意图限于本文中所示的实例,而应被赋予与所附权利要求书和本文中所公开的原理和新颖特征相一致的最宽范围。

Claims (20)

1.一种防止快闪存储器读取操作停止的方法,其包括:
向快闪存储器装置调度可暂停的操作,所述可暂停的操作消耗第一电力信用;
在所述快闪存储器装置执行所述可暂停的操作的同时请求第二电力信用;
确定针对所述第二电力信用的请求是否被准予;
响应于确定所请求的所述第二电力信用被准予,释放所述第二电力信用且所述可暂停的操作继续;以及
响应于确定所请求的所述第二电力信用未被准予,暂停所述可暂停的操作且释放所述可暂停的操作的所述第一电力信用,响应于释放所述可暂停的操作的所述第一电力信用而调度读取操作,重新请求所述可暂停的操作的所述第一电力信用,并且一旦确定所述可暂停的操作的经重新请求的所述第一电力信用被准予,则恢复所述可暂停的操作。
2.根据权利要求1所述的方法,其中所述可暂停的操作是编程操作或擦除操作。
3.根据权利要求1所述的方法,其中在所述快闪存储器装置执行所述可暂停的操作的同时周期性地请求所述第二电力信用。
4.根据权利要求3所述的方法,其进一步包括基于固态驱动器SSD的可用电力确定请求所述第二电力信用的周期性。
5.根据权利要求4所述的方法,其中所述周期性随着所述可用电力增加而增加。
6.根据权利要求3所述的方法,其中
所述可暂停的操作是编程操作;且
所述方法进一步包括基于所述编程操作的循环时间和所述编程操作的最小编程暂停时间而确定请求所述第二电力信用的周期性。
7.根据权利要求1所述的方法,其中在所述可暂停的操作被调度之后不长于最大读取时延的时间请求所述第二电力信用。
8.一种防止快闪存储器操作停止的方法,其包括:
向快闪存储器装置调度可暂停的操作,所述可暂停的操作消耗电力信用;
释放所述电力信用;
重新请求所述可暂停的操作的所述电力信用,其中经重新请求的所述电力信用涉及所述可暂停的操作的执行;以及
确定针对所述电力信用的重新请求是否被准予。
9.根据权利要求8所述的方法,其中所述可暂停的操作是编程操作或擦除操作。
10.根据权利要求8所述的方法,其中响应于确定经重新请求的所述电力信用未被准予,暂停所述可暂停的操作。
11.根据权利要求8所述的方法,其进一步包括响应于确定经重新请求的所述电力信用被准予而进行以下操作:
确定所述可暂停的操作是否已暂停;以及
以下操作中的至少一个:
响应于确定所述可暂停的操作未暂停而继续所述可暂停的操作;或
响应于确定所述可暂停的操作暂停而恢复所述可暂停的操作。
12.根据权利要求8所述的方法,其中使用所述释放的电力信用执行读取操作。
13.一种固态驱动器SSD,其包括:
控制器;以及
快闪存储器装置,其包括多个存储器排组,其中所述控制器:
在所述多个存储器排组中的一个执行可暂停的操作的同时释放表示由所述可暂停的操作消耗的电力的电力信用;
重新请求所述可暂停的操作的所述电力信用;
以下操作中的至少一个:
响应于确定经重新请求的所述电力信用被准予,恢复或继续所述可暂停的操作;或
响应于确定经重新请求的所述电力信用未被准予,暂停所述可暂停的操作;以及
响应于释放所述电力信用而调度读取操作。
14.根据权利要求13所述的SSD,其中所述可暂停的操作是编程操作或擦除操作。
15.根据权利要求13所述的SSD,其中所述控制器进一步:
响应于确定经重新请求的所述电力信用被准予而确定所述可暂停的操作是否已暂停;以及
以下操作中的至少一个:
响应于确定所述可暂停的操作未暂停而继续所述可暂停的操作;或
响应于确定所述可暂停的操作暂停而恢复所述可暂停的操作。
16.一种固态驱动器SSD,其包括:
控制器;以及
快闪存储器装置,其包括多个存储器排组,其中所述控制器:
向所述快闪存储器装置调度可暂停的操作,所述可暂停的操作消耗第一电力信用;
在所述快闪存储器装置执行所述可暂停的操作的同时请求第二电力信用;
确定针对所述第二电力信用的请求是否被准予;
响应于确定所请求的所述第二电力信用被准予,释放所述第二电力信用且继续所述可暂停的操作;以及
响应于确定所请求的所述第二电力信用未被准予,暂停所述可暂停的操作且释放所述可暂停的操作的所述第一电力信用,响应于释放所述可暂停的操作的所述第一电力信用而调度读取操作,重新请求所述可暂停的操作的所述第一电力信用,并且一旦确定所述可暂停的操作的经重新请求的所述第一电力信用被准予,则恢复所述可暂停的操作。
17.根据权利要求16所述的SSD,其中在所述快闪存储器装置执行所述可暂停的操作的同时周期性地请求所述第二电力信用。
18.根据权利要求16所述的SSD,其中在所述可暂停的操作被调度之后不长于最大读取时延的时间请求所述第二电力信用。
19.一种非暂时性计算机可读媒体,其存储计算机可读指令,使得所述计算机可读指令当执行时致使固态驱动器SSD的控制器进行以下操作:
向快闪存储器装置调度可暂停的操作,所述可暂停的操作消耗第一电力信用;
在所述快闪存储器装置执行所述可暂停的操作的同时请求第二电力信用;
确定针对所述第二电力信用的请求是否被准予;
响应于确定所请求的所述第二电力信用被准予,释放所述第二电力信用且继续所述可暂停的操作;以及
响应于确定所请求的所述第二电力信用未被准予,暂停所述可暂停的操作且释放所述可暂停的操作的所述第一电力信用,响应于释放所述可暂停的操作的所述第一电力信用而调度读取操作,重新请求所述可暂停的操作的所述第一电力信用,并且一旦确定所述可暂停的操作的经重新请求的所述第一电力信用被准予,则恢复所述可暂停的操作。
20.一种非暂时性计算机可读媒体,其存储计算机可读指令,使得所述计算机可读指令当执行时致使固态驱动器SSD的控制器进行以下操作:
向快闪存储器装置调度可暂停的操作,所述可暂停的操作消耗电力信用;
释放所述电力信用;
重新请求所述电力信用,其中经重新请求的所述电力信用涉及所述可暂停的操作的执行;以及
确定针对所述电力信用的重新请求是否被准予。
CN202080091465.6A 2019-12-31 2020-12-30 用于调度快闪操作的系统和方法 Active CN114902193B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/731,766 2019-12-31
US16/731,766 US11321022B2 (en) 2019-12-31 2019-12-31 Systems and methods for scheduling flash operations
PCT/IB2020/062557 WO2021137181A1 (en) 2019-12-31 2020-12-30 Systems and methods for scheduling flash operations

Publications (2)

Publication Number Publication Date
CN114902193A CN114902193A (zh) 2022-08-12
CN114902193B true CN114902193B (zh) 2023-10-17

Family

ID=76546223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080091465.6A Active CN114902193B (zh) 2019-12-31 2020-12-30 用于调度快闪操作的系统和方法

Country Status (4)

Country Link
US (1) US11321022B2 (zh)
CN (1) CN114902193B (zh)
TW (1) TW202143046A (zh)
WO (1) WO2021137181A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7337006B2 (ja) * 2020-03-03 2023-09-01 キオクシア株式会社 メモリシステムおよび制御方法
US11797187B2 (en) * 2021-06-28 2023-10-24 QoS Tech LLC Optimized I/O performance regulation for non-volatile storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105190764A (zh) * 2013-03-28 2015-12-23 英特尔公司 用于多管芯nand存储器装置的自动暂停和自动恢复操作
CN109426557A (zh) * 2017-08-23 2019-03-05 东芝存储器株式会社 基于信用的命令调度

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010011318A1 (en) * 1997-02-27 2001-08-02 Vishram P. Dalvi Status indicators for flash memory
US8745369B2 (en) * 2011-06-24 2014-06-03 SanDisk Technologies, Inc. Method and memory system for managing power based on semaphores and timers
US8843772B2 (en) * 2012-05-22 2014-09-23 Dell Products Lp Systems and methods for dynamic power allocation in an information handling system environment
US9418712B1 (en) * 2015-06-16 2016-08-16 Sandisk Technologies Llc Memory system and method for power management using a token bucket
US10684794B2 (en) * 2017-05-18 2020-06-16 Sandisk Technologies Llc Distributed power management for non-volatile memory controllers
US10453540B2 (en) * 2018-04-23 2019-10-22 Intel Corporation Method and apparatus to prioritize read response time in a power-limited storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105190764A (zh) * 2013-03-28 2015-12-23 英特尔公司 用于多管芯nand存储器装置的自动暂停和自动恢复操作
CN109426557A (zh) * 2017-08-23 2019-03-05 东芝存储器株式会社 基于信用的命令调度

Also Published As

Publication number Publication date
US11321022B2 (en) 2022-05-03
TW202143046A (zh) 2021-11-16
CN114902193A (zh) 2022-08-12
US20210200481A1 (en) 2021-07-01
WO2021137181A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
EP3447607B1 (en) Credit based command scheduling
US11520496B2 (en) Electronic device, computer system, and control method
US11467769B2 (en) Managed fetching and execution of commands from submission queues
Jung et al. HIOS: A host interface I/O scheduler for solid state disks
KR101662824B1 (ko) 고체 상태 드라이브 장치 및 그것의 구동 방법
Tavakkol et al. FLIN: Enabling fairness and enhancing performance in modern NVMe solid state drives
US9244617B2 (en) Scheduling requests in a solid state memory device
US11199996B2 (en) Method of scheduling requests to banks in a flash controller
US20180189175A1 (en) Garbage collection read throttling
KR102283511B1 (ko) 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법
US9262080B2 (en) Reducing read latency using a pool of processing cores
CN114902193B (zh) 用于调度快闪操作的系统和方法
KR102430934B1 (ko) 서비스 하한 품질에 기초한 메모리 대역폭 스케줄링
EP3361388B1 (en) Distribution of master device tasks among bus queues
JP5521610B2 (ja) 入出力制御装置、入出力制御方法
US10929061B2 (en) Memory system and memory control method
JP2016045563A (ja) Nandバックグラウンド処理制御装置
WO2015170702A1 (ja) ストレージ装置と情報処理システム及びストレージ制御方法とプログラム
US20140281604A1 (en) Autonomous Power Sparing Storage
KR102181210B1 (ko) 저장 장치의 데이터 처리 방법 및 저장 장치
US6968437B2 (en) Read priority caching system and method

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