CN115809209A - 多个并发存储器存取操作的优先化功率预算仲裁 - Google Patents

多个并发存储器存取操作的优先化功率预算仲裁 Download PDF

Info

Publication number
CN115809209A
CN115809209A CN202211111221.7A CN202211111221A CN115809209A CN 115809209 A CN115809209 A CN 115809209A CN 202211111221 A CN202211111221 A CN 202211111221A CN 115809209 A CN115809209 A CN 115809209A
Authority
CN
China
Prior art keywords
memory
processing threads
prioritized
thread
processing
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.)
Pending
Application number
CN202211111221.7A
Other languages
English (en)
Inventor
L·努比莱
W·迪·弗朗西斯可
顾福敏
A·摩哈马萨德
B·约里奥
于亮
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115809209A publication Critical patent/CN115809209A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及多个并发存储器存取操作的优先化功率预算仲裁。一种存储器装置包含存储器裸片,每一存储器裸片包含:存储器阵列;存储器,其用以存储数据结构;以及控制逻辑,其包含:多个处理线程,其用以在所述存储器阵列上并发地执行存储器存取操作;优先级环形计数器,所述数据结构用以存储所述优先级环形计数器的值与所述多个处理线程的子集之间的关联;线程管理器,其用以在功率管理循环之前使所述优先级环形计数器的所述值递增且识别对应于所述多个处理线程的所述子集的一或多个优先化处理线程;以及峰值功率管理器,其与所述线程管理器耦合且用以在所述功率管理循环期间优先化功率到所述一或多个优先化处理线程的分配。

Description

多个并发存储器存取操作的优先化功率预算仲裁
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及多个并发存储器存取操作的优先化功率预算仲裁。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的实施例提供一种存储器装置,其包括:多个存储器裸片,所述多个存储器裸片中的每一存储器裸片包括:存储器阵列;存储器,其用以存储数据结构;以及控制逻辑,其以操作方式与所述存储器阵列和所述存储器耦合,其中所述控制逻辑包括:多个处理线程,其用以在所述存储器阵列上并发地执行存储器存取操作;优先级环形计数器,其中所述数据结构用以存储所述优先级环形计数器的值与所述多个处理线程的子集之间的关联;线程管理器,其用以在功率管理循环之前使所述优先级环形计数器的所述值递增且识别对应于所述多个处理线程的所述子集的一或多个优先化处理线程;以及峰值功率管理器,其与所述线程管理器耦合且用以在所述功率管理循环期间优先化功率到所述一或多个优先化处理线程的分配。
本公开的另一实施例提供一种存储器装置,其包括:存储器阵列;以及控制逻辑,其以操作方式与所述存储器阵列耦合,以执行包括以下各项的操作:基于优先级环形计数器的值而将功率分配到多个处理线程中的一或多个优先化处理线程,所述多个处理线程用以在所述存储器阵列上执行存储器存取操作;当所述一或多个优先化处理线程正在运行时且响应于检测到所述功率分配到所述多个处理线程中的非优先化处理线程而启动计时器;当所述计时器正在运行时:在每一功率管理循环之前使所述优先级环形计数器递增;以及优先化所述功率到位于对应于所述优先级环形计数器的值的所述多个处理线程的子集内的所述一或多个优先化处理线程的分配;以及响应于所述计时器在完成所述非优先化处理线程之前到期,基于递增到非优先级环形计数器的值而在所述多个处理线程的子集之间转变功率分配。
本公开的又一实施例提供一种方法,其包括:由多个存储器裸片中的存储器裸片的控制逻辑基于非优先级环形计数器的值而将功率分配到多个处理线程中的非优先化处理线程,所述多个处理线程用以在所述存储器裸片的存储器阵列上执行存储器存取操作;当所述非优先化处理线程正在运行时且响应于检测到所述功率分配到所述多个处理线程中的一或多个优先化处理线程中的优先化处理线程,由所述控制逻辑启动计时器;当所述计时器正在运行时:在每一功率管理循环之前使优先级环形计数器递增;以及优先化所述功率到位于对应于所述优先级环形计数器的值的所述多个处理线程的子集内的所述一或多个优先化处理线程的分配;以及响应于所述计时器在完成所述非优先化处理线程之前到期,基于递增到所述非优先级环形计数器的所述值,由所述控制逻辑在所述多个处理线程的子集之间转变功率分配。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1A示出根据至少一些实施例的包含存储器子系统的实例计算系统。
图1B是根据实施例的存储器装置与存储器子系统的存储器子系统控制器通信的框图。
图2是示出根据至少一些实施例的具有存储器子系统中的多个存储器裸片的多裸片封装的框图。
图3是示出根据至少一些实施例的被配置成用于并行平面存取的多平面存储器装置的框图。
图4是示出根据至少一些实施例的被配置成用于多个处理线程的优先化功率预算仲裁的存储器裸片的框图。
图5是示出根据至少一些实施例的由存储器裸片的线程管理器实施的非优先级环形计数器的操作的框图。
图6是根据至少一些实施例的使用环形计数器在存储器装置中进行功率预算仲裁的实例方法的流程图。
图7是根据至少一些实施例的使用轮询窗口在存储器装置中进行功率预算仲裁的实例方法的流程图。
图8是示出根据至少一些实施例的存储器命令包和时序图的组合的框图。
图9是示出根据至少一些实施例的多个并发存储器存取操作的多平面优先化功率预算仲裁的图表。
图10A到10B是示出根据至少一些额外实施例的多个并发存储器存取操作的多平面优先化功率预算仲裁的图表。
图11是根据至少一些实施例的多个并发处理线程的优先化功率预算仲裁的实例方法的流程图。
图12是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及多个并发存储器存取操作的优先化功率预算仲裁。非易失性存储器装置的一个实例是与非(NAND)存储器装置。存储器装置可由以存储器单元的二维或三维网格布置的位构成,以包含多裸片存储器装置的每一裸片。存储器单元的一或多个物理块可分组在一起以形成存储器装置的平面,以便允许在每一平面上进行并发操作,其中这些物理块由多组存储器单元页构成。
每一存储器裸片可包含执行两个或更多个存储器平面的并发存储器页存取的电路系统。举例来说,每一存储器裸片可包含可由每一存储器裸片的平面共享的多个存取线驱动器电路和电源电路,以促进两个或更多个存储器平面的包含不同页类型的页的并发存取。为易于描述,这些电路通常可称为独立平面驱动器电路。存储器装置的每一裸片上的控制逻辑包含数个分开的处理线程以执行并发存储器存取操作(例如,读取操作、编程操作和擦除操作)。举例来说,每一处理线程对应于相应存储器平面且利用相关联独立平面驱动器电路在相应存储器平面上执行存储器存取操作。当这些处理线程独立地操作时,与每一处理线程相关联的功率使用和要求也发生改变。
三维存储器的电容性负载通常很大,且可能随着工艺缩放的继续而继续增长。在感测(例如,读取或验证)、编程和擦除操作期间,可非常快速地对各种存取线、数据线和电压节点充电或放电,使得存储器阵列存取操作可符合例如满足数据吞吐量目标通常所需的可能由客户要求或行业标准所规定的性能规范。对于依序读取或编程,通常使用多平面操作来增加系统吞吐量。因此,典型的存储器裸片可具有高峰值电流使用,其可为平均电流振幅的四倍到五倍。因此,在此总电流使用预算的高平均市场要求的情况下,例如并发操作多于四个存储器裸片可能变得具有挑战性。
已经利用各种技术来管理含有多个存储器裸片的存储器子系统的功耗,其中许多存储器裸片依赖于存储器子系统控制器以交错存储器裸片的活动,从而避免在多于一个存储器裸片中并发执行存取操作的高功率部分。此外,由于在每一个别存储器裸片上使用额外的处理线程(例如,4、6或8个处理线程),因此这些功率管理技术不足以解决与每一个别存储器裸片内的预算电流使用相关联的增加的复杂性。
本公开的各方面通过在存储器子系统的存储器装置中提供多个并发存取操作的优先化功率预算仲裁来解决以上和其它缺陷。在一些实施例中,存储器装置包含多个裸片,每一裸片包含被配置成例如在存储器裸片的对应存储器平面上执行并发存储器存取操作的多个处理线程。每一存储器裸片进一步包含线程管理器和峰值功率管理器(PPM),它们一起被配置成在多个存储器裸片中的相应存储器裸片上执行多个处理线程的优先化功率预算仲裁。
在这些实施例中,存储器子系统采用基于令牌的轮循调度协议,由此每一PPM(例如,在共享时钟信号的设置数目个循环之后)作为令牌的持有者轮换,且广播其相应存储器裸片在给定时间段期间要消耗的量化电流预算。每一其它存储器裸片上的其它PPM接收此广播信息且因此可确定在所述时间段期间存储器装置中的可用电流预算。当持有令牌时,PPM可取决于存储器装置中的可用电流预算且基于存储器装置的其它存储器裸片消耗的电流量而为PPM的相应存储器裸片请求一定量的电流。如下文进一步详细描述,PPM可采用数种不同技术在相应存储器裸片的多个处理线程当中分配所请求的电流,所述技术中的至少一些包含对多个并发处理线程的优先化管理。
在至少一些实施例中,每一裸片还包含优先级环形计数器和数据结构(例如查找表),其中数据结构用于存储优先级环形计数器的值与多个处理线程的子集之间的关联。每一裸片可进一步包含线程管理器,其被配置成管理呈现给PPM以进行功率分配的多个处理线程。在这些实施例中,线程管理器可在功率管理循环之前递增优先级环形计数器的值。每一新的计数器值改变功率分配所考虑的多个处理线程的子集,且因此简化PPM可并发管理的处理线程的数目。线程管理器还可识别多个处理线程的子集内的一或多个优先化处理线程,且向PPM提供一或多个优先化处理线程的优先化识别。然后,当PPM的裸片持有令牌时,PPM可例如通过在功率管理循环期间优先化功率到位于多个处理线程的子集内的一或多个优先化处理线程的分配来优先化分配请求。裸片的PPM还可对照可用的功率(例如,电流)预算检查对一或多个优先化处理线程的功率分配,且因此避免超出预算,即使一些处理线程优先于其它处理线程也是如此。
在至少一些实施例中,裸片的PPM还可管理多个处理线程的子集的非优先化管理与多个处理线程的子集的优先化管理之间的移位。举例来说,PPM可在非优先化处理线程(例如,擦除操作或编程操作)正在运行时且响应于检测到功率还分配到多个处理线程中的优先化线程(例如,读取操作或编程操作)而启动计时器。计时器可跟踪预定时间量,以便确保优先化分配请求不会使非优先化处理线程缺少完成处理所需的电流。因此,如果计时器在非优先化处理线程仍在运行时到期,那么控制逻辑可基于非优先级计数器的值的增量,例如基于非优先化功率分配,强制转变回在处理线程的子集之间分配功率。
此方法的优点包含但不限于多裸片存储器子系统的有效功率管理方案,其中每一存储器裸片支持并发操作的多个处理线程。所公开的技术允许在存储器子系统中的硬件资源显著减少的情况下支持存储器装置中的独立并行平面存取。此方法随着处理线程的数目增加具有高度可扩展性,且不依赖于外部控制器干预。此外,通过取决于正在管理多个处理线程的哪个子集而优先化一些处理线程的功率分配,可使应快速处理的存储器操作(例如读取操作和一些编程操作)优先于可更慢执行的存储器操作(例如擦除操作和一些编程操作)。仍可对照功率(例如,电流)预算来检查分配到优先化处理线程的功率以确保不超过预算。此外,如所提及,使用计时器和移位协议可确保非优先化处理线程不会缺少功率预算。因此,由每一存储器裸片提供的总体性能和服务质量得以改进。
图1A示出根据至少一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,一或多个存储器装置130)或此类媒体或存储器装置的组合。存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。
存储器装置130可为非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置。非易失性存储器装置是一或多个裸片或逻辑单元(LUN)的封装。因此,每一存储器装置130可以是裸片(或LUN)或可以是包含芯片上的多个裸片(或LUN)的多裸片封装,例如裸片的集成电路封装。每一裸片可包含一或多个平面。平面可分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面包含一组物理块。每一块包含一组页。每一页包含一组存储器单元(“单元”)。单元为存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这些值的组合表示。
每一存储器装置130可由以二维或三维网格布置的位构成,所述网格也被称为存储器阵列。存储器单元以列(下文也称为位线)和行(下文也称为字线)阵列的形式蚀刻到硅晶片上。字线可指存储器装置的存储器单元的一或多个行,所述一或多个行与一或多个位线一起使用以产生存储器单元中的每一个的地址。位线与字线的相交点构成存储器单元的地址。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、笔记本计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1A示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120可提供要存储在存储器子系统110处的数据,且可请求要从存储器子系统110检索的数据。如本文中所使用,“耦合到”或“与……耦合”或“以操作方式与……耦合”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。所述物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,一或多个存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1A示出存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个分开的通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可以例如借助于额外阈值电压范围每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。
尽管描述了例如非易失性存储器单元的3D交叉点阵列和NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含处理装置,所述处理装置包含被配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所示出的实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。
在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、所获取数据等。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1A中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可改为依靠外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其是具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于在同一存储器装置封装内进行媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在至少一些实施例中,每一存储器装置130包含峰值功率管理器(PPM)包装器150,其包含线程管理器155和PPM 160(峰值功率管理器)。在一个实施例中,每一存储器装置130的本地媒体控制器135包含PPM包装器150的至少一部分。在此类实施例中,PPM包装器150可使用硬件或作为固件来实施,存储在每一存储器装置130上,由控制逻辑(例如,本地媒体控制器135)执行以执行与本文中所描述的多个并发存取操作的优先化功率预算仲裁有关的操作。在一些实施例中,存储器子系统控制器115包含PPM包装器150的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(例如,处理装置),其被配置成执行存储在本地存储器119中的用于执行本文中所描述的操作的指令。
在至少一些实施例中,PPM包装器150可管理存储器装置130中的多个并发存取操作的功率优先化预算仲裁。在一个实施例中,存储器子系统110采用基于令牌的协议,其中令牌在多个存储器裸片的多个PPM包装器150当中(例如,以轮循调度方式)轮换(例如,在共享时钟信号的设置数目个循环之后)。当裸片的PPM包装器150持有令牌时,PPM包装器150可确定由每一存储器装置130的多个处理线程(例如,由本地媒体控制器135实施)请求的功率(例如,电流),基于存储器子系统中的可用功率预算而选择所述多个处理线程的一或多个优先化处理线程,从存储器子系统110中的共享电流源请求所述功率,且将所请求的功率分配到选定处理线程。在一些实施例中,如果功率被分配到所有优先化处理线程且预算保持不变,那么PPM包装器150还可将功率分配到非优先化处理线程。PPM包装器150可进一步广播存储器裸片在给定时间段期间要消耗的量化电流预算,使得存储器子系统110中的其它PPM包装器知道可用功率预算。下文描述关于每一PPM包装器150的操作的其它细节。
图1B是根据实施例的呈一或多个存储器装置130的形式的第一设备与呈存储器子系统(例如,图1A的存储器子系统110)的存储器子系统控制器115的形式的第二设备通信的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(PDA)、数字相机、数字媒体播放器、数字记录器、游戏、电气设备、车辆、无线装置、移动电话等。存储器子系统控制器115(例如,每一存储器装置130外部的控制器)可以是存储器控制器或其它外部主机装置。
每一存储器装置130包含逻辑上以行和列布置的存储器单元阵列104。呈逻辑行的存储器单元通常连接到同一存取线(例如,字线),而呈逻辑列的存储器单元通常选择性地连接到同一数据线(例如,位线)。单个存取线可以与存储器单元的多于一个逻辑行相关联,并且单个数据线可以与多于一个逻辑列相关联。存储器单元阵列104的至少一部分的存储器单元(图1B中未示出)能够编程为至少两个目标数据状态中的一个。
提供行解码电路系统108和列解码电路系统111以对地址信号进行解码。接收地址信号并对其进行解码以存取存储器单元阵列104。每一存储器装置130还包含输入/输出(I/O)控制电路系统112,其用以管理命令、地址和数据到存储器装置130的输入以及数据和状态信息从每一存储器装置130的输出。地址寄存器114与I/O控制电路系统112和行解码电路系统108以及列解码电路系统111通信以在解码之前锁存地址信号。命令寄存器124与I/O控制电路系统112和本地媒体控制器135通信以锁存传入命令。
控制器(例如,每一存储器装置130内部的本地媒体控制器135)响应于命令而控制对存储器单元阵列104的存取,且生成外部存储器子系统控制器115的状态信息,即,本地媒体控制器135被配置成对存储器单元阵列104执行存取操作(例如,读取操作、编程操作和/或擦除操作)。本地媒体控制器135与行解码电路系统108和列解码电路系统111通信,以响应于地址而控制行解码电路系统108和列解码电路系统111。
本地媒体控制器135还与高速缓存寄存器118和数据寄存器121通信。高速缓存寄存器118按照本地媒体控制器135的引导锁存传入或传出的数据,以在存储器单元阵列104忙于分别写入或读取其它数据时临时存储数据。在编程操作(例如,写入操作)期间,数据可从高速缓存寄存器118传递到数据寄存器121以用于传送到存储器单元阵列104;随后可将新数据从I/O控制电路系统112锁存在高速缓存寄存器118中。在读取操作期间,可将数据从高速缓存寄存器118传递到I/O控制电路系统112以用于输出到存储器子系统控制器115;随后可将新数据从数据寄存器121传递到高速缓存寄存器118。高速缓存寄存器118和/或数据寄存器121可形成每一存储器装置130的页缓冲器(例如,可形成其至少一部分)。页缓冲器可进一步包含例如感测放大器的感测装置,以例如通过感测连接到存储器单元阵列104的存储器单元的数据线的状态来感测所述存储器单元的数据状态。状态寄存器122可以与I/O控制电路系统112和本地存储器控制器135通信以锁存状态信息以用于输出到存储器子系统控制器115。
每一存储器装置130经由控制链路132从本地媒体控制器135接收存储器子系统控制器115处的控制信号。举例来说,控制信号可包含芯片启用信号CE#、命令锁存启用信号CLE、地址锁存启用信号ALE、写入启用信号WE#、读取启用信号RE#和写入保护信号WP#。取决于每一存储器装置130的性质,可进一步经由控制链路132接收额外或替代性控制信号(未示出)。在一个实施例中,每一存储器装置130经由多路复用的输入/输出(I/O)总线134从存储器子系统控制器115接收命令信号(其表示命令)、地址信号(其表示地址)和数据信号(其表示数据),且经由I/O总线134将数据输出到存储器子系统控制器115。
举例来说,可在I/O控制电路系统112处经由I/O总线134的输入/输出(I/O)引脚[7:0]接收命令,且可接着将所述命令写入到命令寄存器124中。可在I/O控制电路系统112处经由I/O总线134的输入/输出(I/O)引脚[7:0]接收地址,且可接着将所述地址写入到地址寄存器114中。可在I/O控制电路系统112处经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]接收数据,且可接着将所述数据写入到高速缓存寄存器118中。可随后将数据写入到数据寄存器121中以用于对存储器单元阵列104进行编程。
在实施例中,可以省略高速缓冲寄存器118,并且可以将数据直接写入到数据寄存器121中。还可以经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]输出数据。尽管可以参考I/O引脚,但其可以包含实现通过外部装置(例如,存储器子系统控制器115)电连接到每一存储器装置130的任何导电节点,例如常用的导电衬垫或导电凸块。
所属领域的技术人员应了解,可提供额外的电路系统和信号,且已简化图1B的每一存储器装置130。应认识到,参考图1B描述的各种块组件的功能性可能不一定与集成电路装置的不同组件或组件部分分离。举例来说,集成电路装置的单个组件或组件部分可适于执行图1B的多于一个块组件的功能性。替代地,可以组合集成电路装置的一或多个组件或组件部分以执行图1B的单个块组件的功能性。另外,虽然根据各种信号的接收和输出的流行惯例描述了特定I/O引脚,但应注意,可在各种实施例中使用I/O引脚(或其它I/O节点结构)的其它组合或其它数目个I/O引脚(或其它I/O节点结构)。
图2是示出根据至少一些实施例的具有存储器子系统中的多个存储器裸片的多裸片封装的框图。如图所示,多裸片封装200包含存储器裸片230(0)到230(7)中的任一个。然而,在其它实施例中,多裸片封装200可包含某一其它数目个存储器裸片,例如额外或更少存储器裸片。在至少一个实施例中,多裸片封装200是关于图1A到1B示出和论述的存储器装置130中的至少一个。在一个实施例中,存储器裸片230(0)到230(7)共享经由时钟信号线接收到的时钟信号ICLK。存储器裸片230(0)到230(7)可响应于芯片启用信号(例如,经由控制链路)被选择性地启用,且可经由单独I/O总线进行通信。另外,峰值电流量值指示符信号HC#通常在存储器裸片230(0)到230(7)之间共享。峰值电流量值指示符信号HC#通常可被拉到特定状态(例如,被拉高)。在一个实施例中,存储器裸片230(0)到230(7)中的每一个包含PPM包装器150的实例,所述PPM包装器接收时钟信号ICLK和峰值电流量值指示符信号HC#。
在一个实施例中,使用基于令牌的协议,其中令牌循环通过存储器裸片230(0)到230(7)中的每一个以用于确定和广播预期峰值电流量值,即使存储器裸片230(0)到230(7)中的一些可响应于其相应芯片启用信号而停用。给定PPM包装器150持有此令牌的时间段(例如,时钟信号ICLK的某一数目个循环)在本文中可被称为相关联存储器裸片的功率管理循环。在功率管理循环结束时,令牌被依序传递到下一个存储器裸片。最终,令牌被同一PPM包装器150再次接收,所述PPM包装器用信号表示相关联存储器裸片的新功率管理循环的开始。在一个实施例中,最低预期峰值电流量值的编码值被配置成使得其数字中的每一个对应于峰值电流量值指示符信号HC#的正常逻辑电平,其中停用裸片不会转变峰值电流量值指示符信号HC#。然而,在其它实施例中,存储器裸片可被配置成在响应于其相应芯片启用信号而以其它方式被停用时驱动峰值电流量值指示符信号HC#的转变,以在被指定后指示最低预期峰值电流量值的编码值。
当给定PPM包装器150持有令牌时,其可确定存储器裸片230(0)到230(7)中的相应一个的峰值电流量值(这可归因于所述存储器裸片上的一或多个处理线程),且经由峰值电流量值指示符信号HC#广播峰值电流量值的指示。如下文更详细地描述,在给定功率管理循环期间,PPM包装器150可使用数个不同仲裁方案中的一个在相应存储器裸片上的多个处理线程当中进行仲裁,以便分配所述峰值电流以启用并发存储器存取操作。
图3是示出根据至少一些实施例的被配置成用于独立并行平面存取的多平面存储器装置130A的框图。在至少一个实施例中,多平面存储器装置130A是关于图1A到1B示出和论述的存储器装置130中的至少一个。存储器平面372(0)到372(3)可以各自划分成数据块,其中在存储器存取操作期间可并发地存取来自存储器平面372(0)到372(3)中的两个或更多个的不同相对数据块。例如,在存储器存取操作期间,可以各自并发地存取存储器平面372(0)的数据块382、存储器平面372(1)的数据块383、存储器平面372(2)的数据块384和存储器平面372(3)的数据块385中的两个或更多个。
存储器装置130A包含划分成存储器平面372(0)到372(3)的存储器阵列370,所述存储器平面各自包含相应数目个存储器单元。多平面存储器装置130A可以进一步包含本地媒体控制器135,包含用于针对不同的存储器平面372(0)到372(3)并发地执行存储器存取操作的功率控制电路和存取控制电路。存储器单元可以是非易失性存储器单元,例如NAND快闪单元,或可以通常是任何类型的存储器单元。
存储器平面372(0)到372(3)可以各自被划分成数据块,其中在存储器存取操作期间可以并发地存取来自存储器平面372(0)到372(3)中的每一个的不同相对数据块。举例来说,在存储器存取操作期间,可以各自并发地存取存储器平面372(0)的数据块382、存储器平面372(1)的数据块383、存储器平面372(2)的数据块384和存储器平面372(3)的数据块385。
存储器平面372(0)到372(3)中的每一个可以耦合到相应的页缓冲器376(0)到376(3)。每一页缓冲器376(0)到376(3)可以被配置成将数据提供到相应存储器平面372(0)到372(3)或从所述相应存储器平面接收数据。页缓冲器376(0)到376(3)可以由本地媒体控制器135控制。从相应存储器平面372(0)到372(3)接收的数据可以分别锁存在页缓冲器376(0)到376(3)处,且由本地媒体控制器135检索,且经由NVMe接口提供到存储器子系统控制器115。
存储器平面372(0)到372(3)中的每一个可以进一步耦合到相应的存取驱动器电路374(0)到374(3),例如存取线驱动器电路。驱动器电路374(0)到374(3)可以被配置成调节相关联的存储器平面372(0)到372(3)的相应块的页以进行存储器存取操作,例如对数据进行编程(即,写入数据)、读取数据或擦除数据。驱动器电路374(0)到374(3)中的每一个可以耦合到与相应存储器平面372(0)到372(3)相关联的相应全局存取线。全局存取线中的每一个可在与块内的页相关联的存储器存取操作期间选择性地耦合到平面的块内的相应本地存取线。可以基于来自本地媒体控制器135的信号而控制驱动器电路374(0)到374(3)。驱动器电路374(0)到374(3)中的每一个可以包含或耦合到相应电源电路,且可以基于由相应电源电路提供的电压而将电压提供到相应存取线。由电源电路提供的电压可以基于从本地媒体控制器135接收到的信号。
本地媒体控制器135可以控制驱动器电路374(0)到374(3)和页缓冲器376(0)到376(3)以并发地执行与(例如,从存储器子系统控制器115接收到的)一组存储器命令和地址对中的每一个相关联的存储器存取操作。举例来说,本地媒体控制器135可以控制驱动器电路374(0)到374(3)和页缓冲器376(0)到376(3)以执行并发存储器存取操作。本地媒体控制器135可以包含:功率控制电路,其针对并发存储器存取操作而串行配置驱动器电路374(0)到374(3)中的两个或更多个;以及存取控制电路,其被配置成控制页缓冲器376(0)到376(3)中的两个或更多个以感测并锁存来自相应存储器平面372(0)到372(3)的数据,或将数据编程到相应存储器平面372(0)到372(3)以执行并发存储器存取操作。
在操作中,本地媒体控制器135可经由NVMe总线接收一组存储器命令和地址对,其中每一对并行或串行到达。在一些实例中,所述一组存储器命令和地址对可以各自与存储器阵列370的不同相应存储器平面372(0)到372(3)相关联。本地媒体控制器135可以被配置成响应于所述一组存储器命令和地址对而对存储器阵列370的不同存储器平面372(0)到372(3)执行并发存储器存取操作(例如,读取操作或编程操作)。举例来说,本地媒体控制器135的功率控制电路可针对并发存储器存取操作基于相应页类型(例如,UP、MP、LP、XP、SLC/MLC/TLC/QLC页)串行地配置与所述一组存储器命令和地址对相关联的两个或更多个存储器平面372(0)到372(3)的驱动器电路374(0)到374(3)。在已配置存取线驱动器电路374(0)到374(3)之后,本地媒体控制器135的存取控制电路可在并发存储器存取操作期间并发地控制页缓冲器376(0)到376(3)以存取与所述一组存储器命令和地址对相关联的两个或更多个存储器平面372(0)到372(3)中的每一个的相应页,例如检索数据或写入数据。举例来说,存取控制电路可以并发地(例如,并行地和/或同时)控制页缓冲器376(0)到376(3)以对位线进行充电/放电、感测来自两个或更多个存储器平面372(0)-372(3)的数据和/或锁存所述数据。
基于从本地媒体控制器135接收到的信号,耦合到与所述一组存储器命令和地址命令对相关联的存储器平面372(0)到372(3)的驱动器电路374(0)到374(3)可以从相关联的存储器平面372(0)到372(3)选择存储器块或存储器单元,以供存储器操作,例如读取、编程和/或擦除操作。驱动器电路374(0)到374(3)可以驱动与相应存储器平面372(0)到372(3)相关联的不同相应全局存取线。作为实例,驱动器电路374(0)可以驱动与存储器平面372(0)相关联的第一全局存取线上的第一电压,驱动器电路374(1)可以驱动与存储器平面372(1)相关联的第三全局存取线上的第二电压,驱动器电路374(2)可以驱动与存储器平面372(2)相关联的第七全局存取线上的第三电压等,并且可以驱动其余全局存取线中的每一个上的其它电压。在一些实例中,除了与要存取的存储器平面372(0)到372(3)的页相关联的存取线之外,可以在所有存取线上提供通过电压。本地媒体控制器135、驱动器电路374(0)到374(3)可以允许并发地存取存储器单元的不同相应块内的不同相应页和页缓冲器376(0)到376(3)。举例来说,可以并发地存取第一存储器平面的第一块的第一页以及第二存储器平面的第二块的第二页,而不管页类型如何。
页缓冲器376(0)到376(3)可以响应于来自本地媒体控制器135和相应存储器平面372(0)到372(3)的信号而在存储器存取操作期间将数据提供到本地媒体控制器135或从所述本地媒体控制器接收数据。本地媒体控制器135可将接收到的数据提供到存储器子系统控制器115。
将了解,存储器装置130A可包含多于或少于四个存储器平面、驱动器电路和页缓冲器。还将了解,相应全局存取线可包含8、16、32、64、128个等全局存取线。当不同相应页属于不同页类型时,本地媒体控制器135和驱动器电路374(0)到374(3)可以并发地存取不同存储器平面的不同相应块内的不同相应页。举例来说,本地媒体控制器135可以包含数个不同的处理线程,例如处理线程334(0)到334(3)。处理线程334(0)到334(3)中的每一个可以与存储器平面372(0)到372(3)中的相应一个相关联,并且可以管理在相应平面上执行的操作。举例来说,处理线程334(0)到334(3)中的每一个可以将控制信号提供到驱动器电路374(0)到374(3)和页缓冲器376(0)到376(3)中的相应一个,以并发地执行那些存储器存取操作(例如,至少部分地在时间上重叠)。由于处理线程334(0)到334(3)可执行存储器存取操作,因此处理线程334(0)到334(3)中的每一个可在不同时间点具有不同电流需求。根据本文中所描述的技术,PPM包装器150可确定给定功率管理循环中的处理线程334(0)到334(3)的功率预算需求,且使用本文中所描述的数个功率预算仲裁方案中的一个来识别处理线程334(0)到334(3)中的一或多个。一或多个处理线程334(0)到334(3)可在功率管理循环期间基于存储器子系统110中的可用功率预算而确定。举例来说,PPM包装器150可确定处理线程334(0)到334(3)的相应优先级,且基于所述相应优先级而将电流分配到处理线程334(0)到334(3)。
图4是示出根据至少一些实施例的被配置成用于多个处理线程的功率预算仲裁的存储器裸片400的框图。在一些实施例中,存储器裸片400包含控制逻辑,例如PPM包装器150,所述PPM包装器又包含参考图1A论述的线程管理器155和PPM 160。存储器裸片400进一步包含存储器456,例如,寄存器、DRAM、SDRAM等,但在一些实施例中,存储器456还可参考存储器阵列370。在这些实施例中,线程管理器155包含请求寄存器452(或其它内部PPM存储器),且包含或耦合到计时器478。线程管理器155可进一步包含耦合到存储器456的非优先级环形计数器444和优先级环形计数器454,例如,用于分别存取数据结构448和数据结构458。PPM 160耦合到线程管理器155,还可以耦合到存储器456,并接收时钟信号ICLK和峰值电流量值指示符信号HC#,如前所述。
在一些实施例中,线程管理器155识别一或多个处理线程,例如存储器裸片400中的多个处理线程434(0)到434(3),且请求PPM 160在功率管理循环期间基于与一或多个处理线程相关联的功率量而确定可用电流(例如,功率)预算是否可支持运行一或多个处理线程。更具体地说,因为多个处理线程434(0)到434(3)可异步地生成不同请求,因此为了管理这种复杂性,线程管理器155可以在对PPM 160的简化数目个请求中操纵和汇总这些异步请求。在一些实施例中,发送到PPM 160的一组简化请求可含有随机线程请求,以确保将电流分配到多个处理线程434(0)到434(3)的公平性。如将更详细地论述,由线程管理器155发送到PPM 160的请求的随机化可由非优先级环形计数器444、由优先级环形计数器454执行,或可在两个环形计数器之间移位,如将论述。在一些实施例中,多个处理线程434(0)到434(3)对应于处理线程334(0)到334(3)(图3)。
在一些实施例中,PPM 160周期性地断言由线程管理器155接收的轮询窗口信号460。轮询窗口信号460在先前功率管理循环结束之后(例如,当PPM 160放弃令牌时)且在后续功率管理循环开始之前(例如,在PPM 160再次接收令牌时)被断言。由于处理线程434(0)到434(3)取决于相关联处理操作定期发出对电流的请求,因此在轮询窗口信号460被断言的时间段期间,线程管理器155在请求寄存器452中存储或缓冲接收到的请求。虽然请求在本文中通常被称为请求电流分配,但这通常应理解为请求功率,例如,还可包含请求电压分配。
在一些实施例中,PPM 160跟踪令牌,且可(例如,基于同步时钟信号ICLK)确定何时将接收令牌,且可在所述时间之前撤销断言轮询窗口信号460。响应于轮询窗口信号460被撤销断言(即,在后续功率管理循环期间),线程管理器155可停止在请求寄存器452中存储额外请求,使得请求寄存器452的内容为静态的。任何新的请求在此循环内都不会被考虑,但会被保存,并可以在后续功率管理循环中考虑。线程管理器155可以生成多个电流电平信号,例如全信号462、中间信号464、低信号466和高到低信号468,其中每一电流电平信号对应于与请求寄存器452中的请求中的至少一个请求的相应集合相关联的电流。举例来说,全信号462可以表示请求寄存器452中的所有电流请求的总和,中间信号464可以表示请求存储器452中的两个或更多个但小于所有的电流请求(例如,请求寄存器452中的前两个或更多请求)的总和,低信号466可以表示来自请求寄存器452的一个电流请求(例如,请求寄存器452中的第一请求),并且高到低信号468可以表示当已经分配了高电流预算时的低电流请求。高到低信号468可以与请求寄存器452中的请求相关联,PPM 160将立即为其分配电流,而无需对照电流预算进行检查,并且将跟踪这种分配,就像跟踪其它电流分配一样。通过在功率管理循环之间轮询处理线程,与等待直到实际上接收到令牌相比,线程管理器155可以节省大量时间和处理资源。
在这些实施例中,PPM 160接收全信号462、中间信号464、低信号466和高到低信号468,且确定在当前功率管理循环期间存储器子系统110中可用的电流量是否可满足与这些电流电平信号中的任一个相关联的电流量。响应于可用电流量满足电流电平信号中的至少一个,PPM 160可以请求所述电流量并向线程管理器155提供授权信号472,例如确认。举例来说,授权信号472可以指示可用电流量满足哪一个电流电平信号。因此,线程管理器155可以对处理线程434(0)到434(3)中的一或多个授权以执行与请求寄存器452中的请求相对应的一或多个存储器存取操作,授权信号472基于所述存储器存取操作而对请求授权。
图5是示出根据一些实施例的由参考图4论述的存储器裸片的线程管理器155实施的非优先级环形计数器444的操作的框图。在一个实施例中,使用连接到移位寄存器中的触发器或其它装置在PPM 160中形成非优先级环形计数器444,使得最后一个触发器的输出馈送到第一触发器的输入中,以形成圆形或“环形”结构。在一个实施例中,非优先级环形计数器444是表示2n个不同状态的n位计数器,其中2n表示不同处理线程的数目,例如存储器装置130或130A中的处理线程434(0)到434(3)。在一些实施例中,优先级环形计数器454的功能类似于非优先级环形计数器444,但优先级环形计数器454的递增值可跟踪优先化处理线程的子集,如将更详细地论述。
如图5所示,借助于实例,非优先级环形计数器444是表示4种不同状态(即,状态0502、状态1 504、状态2 506和状态3 508)的2位计数器。在操作中,非优先级环形计数器444响应于功率管理循环的变化而依序循环通过4种状态502到508中的每一个。举例来说,如果非优先级环形计数器444初始设置为状态0 402,那么当PPM 160接收到令牌时,非优先级环形计数器444的值递增(例如,递增1),使得非优先级环形计数器444移位到状态1 504。类似地,下一次PPM 160接收到令牌时,所述值再次递增,使得环形计数器移位到状态2 506,以此类推。当设置为状态3 508且所述值递增时,非优先级环形计数器444将返回到状态0502。如下文更详细地描述,非优先级环形计数器444的每一状态(或值)与一或多个处理线程相关联,进而允许线程管理器155基于非优先级环形计数器444的当前状态而选择存储器装置的一或多个处理线程。因此,发送到PPM 160的多个处理线程的子集根据非优先级环形计数器444而变化,从而允许PPM160一次处置较少数目个线程的功率分配。这简化了PPM160的控制逻辑。此外,非优先级环形计数器444的功能是在经过非优先级环形计数器444的四个值或状态后,平等地轮换所有处理线程。
更具体地说,表1是用于存储器装置130或130A中的多个处理线程的功率预算仲裁的PPM包装器150的数据结构448的实例。在一个实施例中,数据结构448使用查找表、数组、链表、记录、对象或其它一些其它数据结构在线程管理器155中形成或由其管理。在一个实施例中,数据结构448包含多个条目,每一条目对应于非优先级环形计数器444的状态中的一个。举例来说,对于非优先级环形计数器444的每一状态,数据结构448可识别前导线程和线程组合。前导线程可以是在非优先级环形计数器444处于对应状态时具有最高优先级的单个处理线程,并且线程组合可以是两个或更多个处理线程但少于所有处理线程的集合,其优先级在非优先级环形计数器444处于对应状态时高于不在所述集合中的其它线程,但低于前导线程。
Figure BDA0003843249870000171
Figure BDA0003843249870000181
表1
在一些实施例中,为了在功率管理循环期间分配可用功率预算,线程管理器155可以确定非优先级环形计数器444的当前状态,并根据数据结构448确定对应于非优先级环形计数器444的当前状态的前导线程和线程组合。然后,线程管理器155可以基于前导线程和线程组合的识别而向PPM 160发送请求,例如,全信号462、中间信号464和低信号466。响应于在所述功率管理循环期间存储器子系统中可用的电流量满足与前导线程或线程组合中的至少一个相关联的电流量,PPM 160可以请求与前导线程或者线程组合中的至少一个相关联的所述电流量并相应地分配所述电流预算。
借助于额外实例,表2示出数据结构448,其中3位非优先级计数器444可保存至多八个状态或值,且因此数据结构448可存储可能的前导线程和线程组合的额外组合。表2的3位实例和下文包含的其它表仅仅出于解释的目的是示范性的,因为设想了其它表,包含4位和更高的表。在表2中,“Reg_hc_max”值对应于全信号462,“Reg-hc_middle”对应于中间信号464,并且“Reg-hc_min”对应于低信号466。
Figure BDA0003843249870000182
表2
在此实例中,全信号462可对应于请求电流的所有多个处理线程,例如,本地媒体控制器135的主处理线程,以及可与例如线程0 434(0)到线程3 434(3)等个别额外线程相关联的五个额外协处理器(“coproc”),但设想更多的协处理器。此外,中间信号464可包含多个处理线程的子集(例如,线程组合),且低信号466可仅包含多个处理线程中的一个处理线程(例如,前导线程)。在一个实施例中,多个处理线程的子集不超过多个处理线程的一半。
图6是根据至少一些实施例的使用环形计数器在存储器装置中进行功率预算仲裁的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1A和图4的PPM包装器150执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,示出的实施例应仅作为实例理解,且示出的过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
在操作605处,对功率请求进行采样。举例来说,处理逻辑(例如,PPM 160)可对来自存储器装置的一或多个处理线程(例如处理线程334(0)到334(3))的功率请求(例如电流请求或峰值电流量值请求)进行采样。在一个实施例中,响应于PPM 160接收到用信号表示当前功率管理循环开始的令牌,PPM 160向线程管理器155警告轮询窗口460开始。作为响应,线程管理器155将轮询请求发送到处理线程中的每一个以获得在当前功率管理循环期间请求的电流的指示。所请求的电流量可基于每一处理线程的未决存储器存取请求的数目和每一处理线程的未决存储器存取请求的类型。在一个实施例中,每一处理线程返回对轮询请求的单独响应,使得线程管理器155可单独地确定每一处理线程的电流请求。在一个实施例中,PPM包装器150的另一组件或子组件可向处理线程发出轮询请求和从处理线程接收电流请求。
在操作610处,确定可用功率预算。举例来说,处理逻辑可确定在功率管理循环期间存储器装置中可用的电流量。在一个实施例中,PPM 160接收指示多裸片封装200中的每一其它PPM 160所使用的电流的信号,例如峰值电流量值指示符信号HC#,并从存储器子系统110或存储器装置130或130A中的可用电流总量中减去所述量。在一个实施例中,处理逻辑将与所有处理线程相关联的总电流(例如,个别电流请求的总和)与功率管理循环期间的可用电流量进行比较,以确定可用电流预算是否满足所有处理线程的电流请求。如果可用电流量等于或大于与所有处理线程相关联(例如,由所有处理线程要求)的电流量,那么处理逻辑确定可用电流量满足与所有处理线程相关联的电流量。
在操作615处,请求并分配电流。如果处理逻辑确定可用电流量满足与所有处理线程相关联的电流量,那么处理逻辑可请求与所有处理线程相关联的电流量。举例来说,PPM160可向存储器装置130或130A或存储器子系统110中的公共电源或其它电源发出请求。PPM160可随后将所请求的电流分配到处理线程,从而允许所有处理线程完成其未决存储器存取操作。
如果处理逻辑确定可用电流量不满足与所有处理线程相关联的电流量,那么在操作620处,检查线程组合。举例来说,处理逻辑可从例如数据结构448的数据结构中识别对应于例如非优先级环形计数器444的环形计数器的当前状态的线程组合。对应于非优先级环形计数器444的每一状态的线程组合是不同的,从而确保在不同的功率管理循环中为不同的线程提供服务且没有线程被忽略。在一个实施例中,处理逻辑将与所识别的线程组合相关联的总电流(例如,个别电流请求的总和)与功率管理循环期间的可用电流量进行比较,以确定可用电流预算是否满足线程组合的电流请求。如果可用电流量等于或大于与线程组合相关联的电流量,那么处理逻辑确定可用电流量满足与线程组合相关联的电流量。
在操作625处,请求并分配电流。如果处理逻辑确定可用电流量满足与线程组合相关联的电流量,那么处理逻辑可请求与线程组合相关联的电流量。举例来说,PPM 160可向存储器装置130或130A或存储器子系统110中的公共电源或其它电源发出请求。PPM 160可随后将所请求的电流分配到处理线程,从而允许在线程组合中识别的处理线程完成其未决存储器存取操作。
如果处理逻辑确定可用电流量不满足与线程组合相关联的电流量,那么在操作630处,检查前导线程。举例来说,处理逻辑可从例如数据结构448的数据结构中识别对应于例如非优先级环形计数器444的环形计数器的当前状态的前导线程。对应于非优先级环形计数器444的每一状态的前导线程是不同的,从而确保在不同的功率管理循环中为不同的线程提供服务且没有线程被忽略。在一个实施例中,处理逻辑将与所识别的前导线程相关联的所请求的电流与功率管理循环期间的可用电流量进行比较,以确定可用电流预算是否满足前导线程的电流请求。如果可用电流量等于或大于与前导线程相关联的电流量,那么处理逻辑确定可用电流量满足与前导线程相关联的电流量。
在操作635处,请求并分配电流。如果处理逻辑确定可用电流量满足与前导线程相关联的电流量,那么处理逻辑可请求与前导线程相关联的电流量。举例来说,PPM 160可向存储器装置130或130A或存储器子系统110中的公共电源或其它电源发出请求。PPM 160可随后将所请求的电流分配到前导线程,从而允许前导线程完成其未决存储器存取操作。
如果处理逻辑确定可用电流量不满足与前导线程相关联的电流量,那么在操作640处,暂停电流请求。举例来说,处理逻辑可暂停执行处理线程且维持来自那些处理线程的电流请求,直到后续功率管理循环为止。在后续功率管理循环中,存储器装置中可能存在更大量的可用电流,其可足以满足与处理线程中的至少一个相关联的请求。
图7是根据至少一些实施例的使用轮询窗口在存储器装置中进行功率预算仲裁的实例方法的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700由图1A和图4的PPM包装器150执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,示出的实施例应仅作为实例理解,且示出的过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
在操作705处,接收电流电平信号。举例来说,处理逻辑(例如,PPM 160)可接收与请求寄存器452中的请求中的至少一个的相应集合相关联的一或多个电流电平信号,例如全信号462、中间信号464和低信号466。在一个实施例中,电流电平信号基于在功率管理循环之间的轮询窗口期间(例如,当轮询窗口信号460被断言时)识别的请求。在一个实施例中,在轮询窗口期间,线程管理器155接收且存储来自处理线程的电流请求,其中每一请求包含所请求的电流的指示。所请求的电流量可基于每一处理线程的未决存储器存取请求的数目和每一处理线程的未决存储器存取请求的类型。在一个实施例中,每一处理线程发送一或多个单独请求,使得线程管理器155可单独地确定每一处理线程的电流请求,且将对应请求添加到请求寄存器452。
在操作710处,确定可用功率预算。举例来说,处理逻辑可确定在功率管理循环期间(即,一旦接收到令牌且轮询窗口关闭)存储器装置中可用的电流量。在一个实施例中,PPM 160接收指示多裸片封装200中的每一其它PPM 160所使用的电流的信号,例如峰值电流量值指示符信号HC#,并从存储器子系统110或存储器装置130或130A中的电流总量中减去所述量。在一个实施例中,处理逻辑将与全信号462相关联的总电流(例如,请求寄存器452中的所有个别电流请求的总和)与功率管理循环期间的可用电流量进行比较以确定可用电流预算是否满足全信号462。如果可用电流量等于或大于与全信号462相关联的电流量,那么处理逻辑确定可用电流量满足全信号462。
在操作715处,请求并分配电流。如果处理逻辑确定可用电流量满足全信号462,那么处理逻辑可请求与请求寄存器452中的所有请求相关联的电流量。举例来说,PPM160可向存储器装置130或130A或存储器子系统110中的公共电源或其它电源发出请求。PPM 160可随后经由授权信号472将所请求的电流分配到处理线程,从而允许执行请求寄存器452中的所有电流请求。
如果处理逻辑确定可用电流量不满足全信号462的请求,那么检查另一电流电平信号。举例来说,处理逻辑将与中间信号464相关联的电流(例如,请求寄存器452中的两个或更多个电流请求的总和)与功率管理循环期间的可用电流量进行比较以确定可用电流预算是否满足中间信号464。如果可用电流量等于或大于与中间信号464相关联的电流量,那么处理逻辑确定可用电流量满足中间信号464。
在操作725处,请求并分配电流。如果处理逻辑确定可用电流量满足与中间信号464相关联的电流量,那么处理逻辑可请求与来自请求寄存器452的两个或更多个请求相关联的电流量。举例来说,PPM 160可向存储器装置130或130A或存储器子系统110中的公共电源或其它电源发出请求。PPM 160可随后经由授权信号472将所请求的电流分配到处理线程,从而允许执行请求寄存器452中的电流请求中的两个或更多个。
如果处理逻辑确定可用电流量不满足与中间信号464相关联的电流量,那么在操作730处,检查另一电流电平信号。举例来说,处理逻辑将与低信号466相关联的电流(例如,请求寄存器452中的一个电流请求)与功率管理循环期间的可用电流量进行比较,以确定可用电流预算是否满足低信号466。如果可用电流量等于或大于与低信号466相关联的电流量,那么处理逻辑确定可用电流量满足低信号466。
在操作735处,请求并分配电流。如果处理逻辑确定可用电流量满足与低信号466相关联的电流量,那么处理逻辑可请求与来自请求寄存器452的一个请求相关联的电流量。举例来说,PPM 160可向存储器装置130或130A或存储器子系统110中的公共电源或其它电源发出请求。PPM 160可随后经由授权信号472将所请求的电流分配到处理线程,从而允许执行请求寄存器452中的一个电流请求。
如果处理逻辑确定可用电流量不满足与电流电平信号中的任一个相关联的电流量,那么在操作740处,暂停电流请求。举例来说,处理逻辑可暂停执行处理线程且维持来自那些处理线程的电流请求,直到后续功率管理循环为止。在后续功率管理循环中,存储器装置中可能存在可足以满足请求中的至少一个的较大可用电流量。
图8是示出根据至少一些实施例的存储器命令包802A和802B和时序图804的组合的框图。存储器命令包802A示出包的格式,其中前缀可附到命令包,所述命令包还包含初始命令、存储器操作所指向的地址信息以及用于指示与存储器命令包802A相关联的存储器操作的终止的关闭命令。存储器命令包802B包含可能的前缀值,例如0x1、0x2或0x3,或其它此类指示符,以指示没有优先级的读取命令或编程命令。在其它存储器命令包中,可能前缀包含例如0x41、0x42、0x43或其它此类指定符,以指示具有优先级的读取命令或编程命令。在所公开的实施例中,不优先化擦除命令。在这些实施例中,时序图804中示出的存储器裸片的就绪/忙碌信号(RB#)在处置与存储器命令包802A或802B相关联的存储器操作时被断言,且在完成存储器操作之后解除断言。
在各种实施例中,因为多个处理线程334(0)到334(3)可异步地对应于例如读取操作或编程操作等存储器存取操作,所以PPM包装器150可被编程为管理功率,使得快照读取和其它此类存储器存取操作可例如优先于非优先化存储器操作,例如一些编程操作和任何擦除操作。因此,存储器子系统控制器115(或在存储器子系统110内发送存储器命令的其它处理装置)可将指示优先化的前缀值添加到发送到存储器装置130或130A的用于存储器操作的不同存储器命令包。
在至少一些实施例中,一旦裸片和因此个别PPM包装器150接收到例如参考图8论述的存储器命令包,线程管理器155就可解析存储器命令包以存取前缀值,所述存储器命令包与多个处理线程334(0)到334(3)中的目标处理线程相关联。线程管理器155可进一步根据前缀值确定存储器命令包是否被优先化。线程管理器155可进一步响应于存储器命令包被优先化而将目标处理线程标记为优先化的。
Figure BDA0003843249870000231
表3
另外参考图4,线程管理器155可基于请求寄存器452中的多个处理线程中的一或多个被优先化,(从多个数据结构中)选择数据结构458,其包含与中间信号464或线程组合和低信号468或前导线程的请求内的一或多个优先化处理线程相关联的优先化指示符。只要处理线程的集合保持优先级,线程管理器155就还可使优先级环形计数器454递增,其中数据结构458存储优先级环形计数器454的值与多个处理线程334(0)到334(3)的子集之间的关联,如表3到7所示。在这些实施例中,PPM 160可随后在每一新的功率管理循环期间优先化功率到一或多个优先化线程的分配。图10A到10B和图11将论述用于确保此类优先化处理线程不会使任何非优先化处理线程缺少例如电流分配的处理能力的额外过程。
Figure BDA0003843249870000241
表4
在各种实施例中,表3-7示出可选择为优先化处理线程的不同集合的数据结构458的数据结构实例。优先化处理线程用大写的“P”标记以指示优先化。表3示出前导线程(“低”)是主处理线程且优先于任何其它线程组合。然而,在一些情况下,前导线程还可包含在线程组合内(“中间”),且因此还可与一或多个额外的非优先化处理线程一起被授权。
Figure BDA0003843249870000251
表5
在一个实施例中,表4示出两个不同处理线程(即coproc1和coproc4)之间的优先级,其中至少一个处理线程是优先级环形计数器454的每一相应值的前导线程(“Min”)。在此实施例中,这两个优先化处理线程也位于线程组合内(“中间”)。假设优先级环形计数器454递增四次(通过值011),则PPM 160可实现对优先化处理线程的功率分配的均匀性。因此,在一些实施例中,优先级环形计数器454的值“100”和“101”不包含在递增循环中。
在一个实施例中,表5示出三个不同处理线程(即main、coproc2和coproc5)之间的优先级。因为由表5表示的数据结构458用这三个优先化线程编程到中间信号464和低信号466的请求中,所以在功率预算不足以分配到所有多个处理线程的情况下,PPM 160可将功率分配到这些优先化处理线程。
Figure BDA0003843249870000252
Figure BDA0003843249870000261
表6
在一个实施例中,表6示出四个不同处理线程(即main、coproc1、coproc2和coproc5)之间的优先级。因为由表6表示的数据结构458用这四个优先化线程编程到中间信号464和低信号466的请求中,所以在功率预算不足以分配到所有多个处理线程的情况下,PPM160可将功率分配到这些优先化处理线程。此外,假设优先级环形计数器454递增四次(通过值011),则PPM 160可实现对优先化处理线程的功率分配的均匀性。因此,在一些实施例中,优先级环形计数器454的值“100”和“101”不包含在递增循环中。
Figure BDA0003843249870000262
Figure BDA0003843249870000271
表7
在一个实施例中,表7示出五个不同处理线程(即main、coproc1、coproc2、coproc4和coproc5)之间的优先级。因为由表7表示的数据结构458用这五个优先化线程编程到中间信号464和低信号466的请求中,所以在功率预算不足以分配到所有多个处理线程的情况下,PPM 160可将功率分配到这些优先化处理线程。此外,假设优先级环形计数器454递增五次(通过值“100”),则PPM 160可实现对优先化处理线程的功率分配的均匀性。因此,在一些实施例中,优先级环形计数器454的值“101”不包含在递增循环中。
因此,可看出,涉及给定计数器值的一或多个优先化处理线程包含低信号466中的前导线程,其在一个实施例中为存储器裸片的主处理线程。在另一实施例中,一或多个优先化处理线程包含前导线程和线程组合的一或多个处理线程,例如,多个处理线程的子集内的中间信号464。因此,此子集(例如,前导线程与线程组合的组合)可理解为包含所有优先化处理线程。
另外参考图4,在至少一些实施例中,PPM 160确定功耗的电流可用预算总量,其可基于多个存储器裸片在功率管理循环期间要消耗的量化电流量而确定,如先前所论述。PPM160可进一步确定与多个处理线程相关联的功率需求量,且响应于确定可用预算量满足功率需求量,将功率需求量分配到多个处理线程。
另外参考图4,在至少一些实施例中,PPM 160将电流分配到一或多个优先化处理线程中的每一相应优先化处理线程,随后将电流分配到多个处理线程的子集的任何非优先化处理线程。因此,举例来说,在表4中,中间信号464内存在未优先化的至少一个处理线程。PPM 160可进一步跟踪分配到一或多个优先化处理线程和任何非优先化处理线程的电流总量,且响应于新电流分配的电流量超过可用预算的量小于已经分配的电流总量,暂停将电流分配到任何新的处理线程。以此方式,PPM 160确保尽管优先化功率到一或多个优先化处理线程的分配,但总分配功率不超过电流(例如,功率)的可用预算。
图9是示出根据至少一些实施例的多个并发存储器存取操作的多平面优先化功率预算仲裁的图表。沿着图表的顶部示出一系列并发存储器操作902,包含非优先化操作(“pgr0”)、用于此实例的编程操作,接着是优先化的一系列额外异步编程操作(例如,iWL命令“pgr3”、“pgr4”和“pgr5”)。当PPM 160接收到令牌(在底部的时序图中所示出)时,非优先级环形计数器444具有值“011”,且假设有足够的可用电流预算,则仅非优先化编程操作正在运行且因此被分配功率。每一虚线指示符905与全信号462相关联,每一虚线指示符907与中间信号464相关联,且每一虚线指示符909与低信号466相关联,如所论述。因此,三个优先化处理线程(pgr3、pgr4和pgr5)涵盖于中间信号464内,而pgr 4为涵盖于低信号466内的前导线程。
响应于PPM 160将功率(例如,电流)分配到优先化处理线程(例如,“pgr3”),线程管理器155可在与轮询窗口信号460相关联的轮询周期结束之前,使优先级环形计数器454的值递增,例如,在此实例中所述值是值“100”。因此,功率分配的管理已经传递到由优先级环形计数器454的值决定的优先化分配。此操作包含在PPM 160持有令牌时的功率管理循环期间确保用于新电流分配的电流量超过可用预算的量不小于当前已经由PPM 160分配的总量。
在这些实施例中,如果用于(例如,到pgr5优先化处理线程的)新电流分配的电流量超过可用预算的量确实小于当前已经分配的总量,那么PPM 160暂停将功率(或电流)分配到非优先化处理线程pgr0。如果暂停分配到非优先化处理线程未释放足够功率预算来处置pgr5优先化处理线程,那么PPM 160可能需要进一步暂停将功率分配到任何新的处理线程,直到有足够的预算可用。以此方式,优先化线程优先于非优先化处理线程。虽然参考图9解释的这些操作允许指示为在低信号466或中间信号464内优先化的处理线程的优先化,但这些操作不确保非优先化处理线程pgr0不无限地或在过长时间内缺少功率。
图10A到10B是示出根据至少一些额外实施例的多个并发存储器存取操作的多平面优先化功率预算仲裁的图表,其用于确保参考图9论述的非优先化处理线程pgr0不缺少功率。图10A大体跟踪参考图9示出的内容,例如,PPM包装器150的控制逻辑基于非优先级环形计数器444的值而将功率分配到多个处理线程中的非优先化处理线程pgr0。
然而,与图9不同,图10A示出(例如,线程管理器155的)控制逻辑在优先化处理线程pgr0正在运行时且响应于检测到功率分配到一或多个优先化处理线程(pgr3、pgr4、pgr5)中的优先化处理线程pgr3而启动计时器478。此外,图10B还示出PPM 160接收令牌的两个额外后续功率管理循环。在第三功率管理循环中,计时器478尚未到期,且因此,线程管理器155仍针对每一功率管理循环使优先级环形计数器454的值递增,这次递增到值“101”,使得PPM 160仍可优先化一或多个优先化处理线程。更具体地说,PPM 160的控制逻辑优先化功率到位于对应于优先级环形计数器454的值的多个处理线程的子集内的一或多个优先化处理线程的分配。虽然发送到PPM 160的中间信号464的线程组合仍包含三个优先化处理线程pgr3、pgr4和pgr5,但低信号466的前导线程已移位到pgr5优先化处理线程。
继续参考图10B,且在至少一些实施例中,响应于计时器478在完成非优先化处理线程pgr0之前到期,线程管理器155基于递增到非优先级环形计数器454的值而在多个处理线程的子集之间转变功率分配。在这些实施例中,多个处理线程的这些子集可为与表2和图6到7的全信号462、中间信号464和低信号466相关联的那些子集,其中个别处理线程未被标记或识别为优先化的。这意味着取决于非优先级处理计数器444的状态或值,非优先化处理线程将获得平等的功率共享。此转变在第四功率管理循环期间示出,其中前导线程(指示符909)现在为pgr0处理线程且线程组合(指示符907)包含pgr0处理线程。因此,PPM 160将在此第四功率管理循环期间将可用功率预算分配到非优先化处理线程pgr0,从而避免pgr0处理线程缺少功率。
在一些实施例中,尽管未具体示出,但在检测到完成先前非优先化处理线程pgr0之后,线程管理器155的控制逻辑复位计时器478。在其它实施例中,线程管理器155响应于完成所有先前非优先化处理线程而复位时间。接着,同样,当计时器正在运行时,线程管理器在每一功率管理循环之前使优先级环形计数器454递增,使得PPM 160可优先化功率到位于对应于优先级环形计数器454的值的多个处理线程的子集内的一或多个优先化处理线程的分配,例如表3到7所示。以此方式,PPM包装器150的控制逻辑可转变回到优先化功率管理,直到PPM 160将功率分配到至少一个非优先化处理线程和至少一个优先化处理线程的情况发生。响应于此情况,线程管理器155可再次启动计时器478,如图10A所示。
图11是根据至少一些实施例的多个并发处理线程的优先化功率预算仲裁的实例方法的流程图。方法1100可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法1100由图1A和图4的PPM包装器150执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,示出的实施例应仅作为实例理解,且示出的过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
在操作1110处,向非优先化处理线程分配功率。更具体地说,处理逻辑基于非优先级环形计数器的值而将功率分配到多个处理线程中的非优先化处理线程,所述多个处理线程用于对存储器阵列370(图3)执行存储器存取操作。非优先级环形计数器可为图4的非优先级环形计数器44。
在操作1120处,检测功率到优先化处理线程的分配。更具体地说,处理逻辑确定是否已检测到功率分配到优先化处理线程。这产生刚刚论述的情况,其中至少一个非优先化处理线程和至少一个优先化处理线程已经被分配功率且并发地运行。
在操作1130处,启动计时器。更具体地说,响应于肯定地检测到功率分配到优先化处理线程,控制逻辑启动计时器,例如计时器478(图4)。
在操作1140处,使优先级环形计数器递增。更确切地说,当计时器正在运行时,处理逻辑在每一功率管理循环之前使优先级环形计数器递增。优先级环形计数器可为图4的优先级环形计数器454。
在操作1150处,使优先化处理线程优先化。更具体地说,当计时器正在运行时,控制逻辑优先化功率到位于对应于优先级环形计数器的值的多个处理线程的子集内的一或多个优先化处理线程的分配。
在操作1160处,检查计时器是否到期。更具体地说,处理逻辑确定计时器是否在完成非优先化处理线程之前到期。如果答案为否,那么在操作1160处,方法1100循环回到操作1140和1150且继续优先化功率管理,如参考图10A到10B在功率管理循环三处完成。
在操作1160处,功率管理转变回到非优先化管理。更确切地说,响应于计时器在完成非优先化处理线程之前到期,处理逻辑基于递增到非优先级环形计数器的值而在多个处理线程的子集之间转变功率分配。
图12示出计算机系统1200的实例机器,在所述计算机系统内可执行用于使所述机器执行本文中所论述的方法中的任一种或多种的指令集。在一些实施例中,计算机系统1200可对应于主机系统(例如,图1A的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1A的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1A、4的PPM包装器150的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(按顺序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然示出单个机器,但应认为术语“机器”也包含机器的任何集合,所述机器单独地或共同地执行指令集(或多个指令集)以进行本文中所论述的方法中的任何一或多种。
实例计算机系统1200包含处理装置1202、主存储器1204(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器1206(例如,快闪存储器、静态随机存取存储器(SRAM)等),和数据存储系统1218,它们经由总线1230彼此通信。
处理装置1202表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1202还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理装置1202被配置成执行用于执行本文中所论述的操作和步骤的指令1226。计算机系统1200可以进一步包含网络接口装置1208以经由网络1220进行通信。
数据存储系统1218可包含机器可读存储媒体1224(也称为计算机可读媒体,例如非暂时性计算机可读媒体),所述机器可读存储媒体上存储有一或多组指令1226或体现本文中所描述的方法或功能中的任何一或多个的软件。指令1226还可在由计算机系统1200执行期间完全或至少部分地驻留在主存储器1204内和/或处理装置1202内,主存储器1204和处理装置1202也构成机器可读存储媒体。机器可读存储媒体1224、数据存储系统1218和/或主存储器1204可对应于图1A的存储器子系统110。
在一个实施例中,指令1226包含用以实施对应于图1A、4的PPM包装器150的功能性的指令。尽管在实例实施例中将机器可读存储媒体1224展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。数据处理领域的技术人员使用这些算法描述和表示将其工作的主旨最有效地传达给所属领域的其它技术人员。算法在这里并且通常被认为是产生所要结果的操作的自洽序列。操作为需要物理量的物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电气或磁信号的形式。已证明,有时,主要出于普遍使用的原因,将这些信号称为位、值、要素、符号、字符、项、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标记。本公开可涉及将计算机系统的寄存器及存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所示呈现用于多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含上面存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。

Claims (20)

1.一种存储器装置,其包括:
多个存储器裸片,所述多个存储器裸片中的每一存储器裸片包括:
存储器阵列;
存储器,其用以存储数据结构;以及
控制逻辑,其以操作方式与所述存储器阵列和所述存储器耦合,其中所述控制逻辑包括:
多个处理线程,其用以在所述存储器阵列上并发地执行存储器存取操作;
优先级环形计数器,其中所述数据结构用以存储所述优先级环形计数器的值与所述多个处理线程的子集之间的关联;
线程管理器,其用以在功率管理循环之前使所述优先级环形计数器的所述值递增且识别对应于所述多个处理线程的所述子集的一或多个优先化处理线程;以及
峰值功率管理器,其与所述线程管理器耦合且用以在所述功率管理循环期间优先化功率到所述一或多个优先化处理线程的分配。
2.根据权利要求1所述的存储器装置,其中所述一或多个优先化处理线程包括以下中的一个:
前导线程,其为所述存储器裸片的主处理线程;或
所述前导线程和所述多个处理线程的所述子集内的线程组合的一或多个处理线程。
3.根据权利要求2所述的存储器装置,其中所述线程管理器进一步用以从多个数据结构中选择包含与所述一或多个处理线程相关联的优先化指示符的所述数据结构。
4.根据权利要求1所述的存储器装置,其中,为了识别所述一或多个优先化处理线程,所述线程管理器用以针对每一存储器存取操作:
解析存储器命令包以存取前缀值,所述存储器命令包与所述多个处理线程中的目标处理线程相关联;
根据所述前缀值确定所述存储器命令包是否被优先化;以及
响应于所述存储器命令包被优先化,将所述目标处理线程标记为优先化。
5.根据权利要求1所述的存储器装置,其中所述峰值功率管理器进一步用以:
将电流分配到所述一或多个优先化处理线程中的每一相应优先化处理线程,随后将电流分配到所述多个处理线程的所述子集的任何非优先化处理线程;
跟踪分配到所述一或多个优先化处理线程和任何非优先化处理线程的电流总量;以及
响应于新电流分配的电流量超过可用预算的量少于已经分配的所述电流总量,暂停将电流分配到任何新的处理线程。
6.根据权利要求1所述的存储器装置,其中所述峰值功率管理器进一步用以:
基于所述多个存储器裸片在所述功率管理循环期间要消耗的量化电流量而确定功耗的可用预算量;
确定与所述多个处理线程相关联的功率需求量;以及
响应于确定所述可用预算量满足所述功率需求量,将所述功率需求量分配到所述多个处理线程。
7.根据权利要求1所述的存储器装置,其中所述存储器裸片进一步包括计时器和非优先级环形计数器,且所述线程管理器进一步用以:
响应于检测到所述功率分配到至少一个非优先化处理线程和至少一个优先化处理线程而启动计时器;
当所述计时器正在运行时,针对每一新的功率管理循环使所述优先级环形计数器递增,使得所述峰值功率管理器将所述功率分配到位于对应于所述优先级环形计数器的所述值的所述多个处理线程的每一相应子集内的所述一或多个优先化处理线程;以及
响应于所述计时器在完成所述非优先化处理线程之前到期,基于递增到所述非优先级环形计数器的所述值而在所述多个处理线程的子集之间转变功率分配。
8.一种存储器装置,其包括:
存储器阵列;以及
控制逻辑,其以操作方式与所述存储器阵列耦合,以执行包括以下各项的操作:
基于优先级环形计数器的值而将功率分配到多个处理线程中的一或多个优先化处理线程,所述多个处理线程用以在所述存储器阵列上执行存储器存取操作;
当所述一或多个优先化处理线程正在运行时且响应于检测到所述功率分配到所述多个处理线程中的非优先化处理线程而启动计时器;
当所述计时器正在运行时:
在每一功率管理循环之前使所述优先级环形计数器递增;以及
优先化所述功率到位于对应于所述优先级环形计数器的值的所述多个处理线程的子集内的所述一或多个优先化处理线程的分配;以及
响应于所述计时器在完成所述非优先化处理线程之前到期,基于递增到非优先级环形计数器的值而在所述多个处理线程的子集之间转变功率分配。
9.根据权利要求8所述的存储器装置,其中所述操作进一步包括:
检测所述非优先化处理线程的完成;
复位所述计时器;以及
当所述计时器正在运行时:
在每一功率管理循环之前使所述优先级环形计数器递增;以及
优先化所述功率到位于对应于所述优先级环形计数器的所述值的所述多个处理线程的子集内的所述一或多个优先化处理线程的分配。
10.根据权利要求8所述的存储器装置,所述操作进一步包括针对每一功率管理循环识别与所述多个处理线程相关联的所述一或多个优先化处理线程,其中所述一或多个优先化处理线程包括以下各者中的一个:
前导线程,其为存储器裸片的主处理线程;或
所述前导线程和所述多个处理线程的所述子集内的线程组合的一或多个处理线程。
11.根据权利要求10所述的存储器装置,其中,为了识别所述一或多个优先化处理线程,所述操作进一步包括针对每一存储器存取操作:
解析存储器命令包以存取前缀值,所述存储器命令包与所述多个处理线程中的目标处理线程相关联;
根据所述前缀值确定所述存储器命令包是否被优先化;以及
响应于所述存储器命令包被优先化,将所述目标处理线程标记为优先化。
12.根据权利要求8所述的存储器装置,其进一步包括数据结构,其中所述控制逻辑包括所述优先级环形计数器,所述数据结构用以存储所述优先级环形计数器的所述值与所述多个处理线程的每一子集之间的关联。
13.根据权利要求8所述的存储器装置,其中所述操作进一步包括在所述计时器正在运行时:
将电流分配到所述一或多个优先化处理线程中的每一相应优先化处理线程;
跟踪分配到所述一或多个优先化处理线程和所述非优先化处理线程的电流总量;以及
响应于新电流分配的电流量超过可用预算的量少于已经分配的所述电流总量,暂停将电流分配到所述非优先化处理线程。
14.根据权利要求8所述的存储器装置,其中所述操作进一步包括:
基于多个存储器裸片在所述功率管理循环期间要消耗的量化电流量而确定功耗的可用预算量;
确定与所述多个处理线程相关联的功率需求量;以及
响应于确定所述可用预算量满足所述功率需求量,将所述功率需求量分配到所述多个处理线程。
15.一种方法,其包括:
由多个存储器裸片中的存储器裸片的控制逻辑基于非优先级环形计数器的值而将功率分配到多个处理线程中的非优先化处理线程,所述多个处理线程用以在所述存储器裸片的存储器阵列上执行存储器存取操作;
当所述非优先化处理线程正在运行时且响应于检测到所述功率分配到所述多个处理线程中的一或多个优先化处理线程中的优先化处理线程,由所述控制逻辑启动计时器;
当所述计时器正在运行时:
在每一功率管理循环之前使优先级环形计数器递增;以及
优先化所述功率到位于对应于所述优先级环形计数器的值的所述多个处理线程的子集内的所述一或多个优先化处理线程的分配;以及
响应于所述计时器在完成所述非优先化处理线程之前到期,基于递增到所述非优先级环形计数器的所述值,由所述控制逻辑在所述多个处理线程的子集之间转变功率分配。
16.根据权利要求15所述的方法,其进一步包括:
检测所述非优先化处理线程的完成;
复位所述计时器;以及
当所述计时器正在运行时:
在每一功率管理循环之前使所述优先级环形计数器递增;以及
优先化所述功率到位于对应于所述优先级环形计数器的所述值的所述多个处理线程的子集内的所述一或多个优先化处理线程的分配。
17.根据权利要求15所述的方法,其进一步包括针对每一功率管理循环识别与所述多个处理线程相关联的所述一或多个优先化处理线程,其中所述一或多个优先化处理线程包括以下各者中的一个:
前导线程,其为所述存储器裸片的主处理线程;或
所述前导线程和所述多个处理线程的所述子集内的线程组合的一或多个处理线程。
18.根据权利要求15所述的方法,其中,为了识别所述一或多个优先化处理线程,所述方法进一步包括针对每一存储器存取操作:
解析存储器命令包以存取前缀值,所述存储器命令包与所述多个处理线程中的目标处理线程相关联;
根据所述前缀值确定所述存储器命令包是否被优先化;以及
响应于所述存储器命令包被优先化,将所述目标处理线程标记为优先化。
19.根据权利要求15所述的方法,其进一步包括将所述优先级环形计数器的所述值与所述多个处理线程的每一子集之间的关联存储在查找表中。
20.根据权利要求15所述的方法,其进一步包括在所述计时器正在运行时:
将电流分配到所述一或多个优先化处理线程中的每一相应优先化处理线程;
跟踪分配到所述一或多个优先化处理线程和所述非优先化处理线程的电流总量;以及
响应于新电流分配的电流量超过可用预算的量少于已经分配的所述电流总量,暂停将电流分配到所述非优先化处理线程。
CN202211111221.7A 2021-09-14 2022-09-13 多个并发存储器存取操作的优先化功率预算仲裁 Pending CN115809209A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163243887P 2021-09-14 2021-09-14
US63/243,887 2021-09-14
US17/668,311 2022-02-09
US17/668,311 US11977748B2 (en) 2021-09-14 2022-02-09 Prioritized power budget arbitration for multiple concurrent memory access operations

Publications (1)

Publication Number Publication Date
CN115809209A true CN115809209A (zh) 2023-03-17

Family

ID=85478722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211111221.7A Pending CN115809209A (zh) 2021-09-14 2022-09-13 多个并发存储器存取操作的优先化功率预算仲裁

Country Status (2)

Country Link
US (1) US11977748B2 (zh)
CN (1) CN115809209A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10386900B2 (en) * 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US20190065243A1 (en) * 2016-09-19 2019-02-28 Advanced Micro Devices, Inc. Dynamic memory power capping with criticality awareness

Also Published As

Publication number Publication date
US20230084630A1 (en) 2023-03-16
US11977748B2 (en) 2024-05-07

Similar Documents

Publication Publication Date Title
US11113198B2 (en) Timed data transfer between a host system and a memory sub-system
US11782841B2 (en) Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
US11543978B2 (en) Credit-based scheduling of memory commands
US11972152B2 (en) Memory sub-system for supporting deterministic and non-deterministic commands based on command expiration and the state of the intermediate command queue
US11461256B2 (en) Quality of service levels for a direct memory access engine in a memory sub-system
US20210357153A1 (en) Controller Command Scheduling in a Memory System to Increase Command Bus Utilization
US20220197563A1 (en) Qos traffic class latency model for just-in-time (jit) schedulers
WO2020176523A1 (en) Double threshold controlled scheduling of memory access commands
CN114201423A (zh) 用于存储器装置中的多个并发存取操作的功率预算仲裁
US20220413719A1 (en) Maintaining queues for memory sub-systems
CN114730298A (zh) 使用加权存储器存取操作类型的存储器装置的服务质量
CN117836751A (zh) 使用存储器装置中的存储器存取命令队列提高存储器性能
US11977748B2 (en) Prioritized power budget arbitration for multiple concurrent memory access operations
CN112231252B (zh) 用于存储器子系统的内部管理业务调节
US20230195312A1 (en) Peak power management in a memory device during suspend status
US20240160553A1 (en) Quality of service management in a memory sub-system
US20240078199A1 (en) Just-in-time (jit) scheduler for memory subsystems
US20230350587A1 (en) Peak power management priority override
US20230060826A1 (en) Command scheduling component for memory
CN115938416A (zh) 多平面存储器装置中并行平面存取期间的余量管理

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