CN105607721B - 用于设备中的电源管理的资源分配和重新分配 - Google Patents

用于设备中的电源管理的资源分配和重新分配 Download PDF

Info

Publication number
CN105607721B
CN105607721B CN201510795415.7A CN201510795415A CN105607721B CN 105607721 B CN105607721 B CN 105607721B CN 201510795415 A CN201510795415 A CN 201510795415A CN 105607721 B CN105607721 B CN 105607721B
Authority
CN
China
Prior art keywords
resource
multiple resource
zero subset
utilization rate
threshold value
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
CN201510795415.7A
Other languages
English (en)
Other versions
CN105607721A (zh
Inventor
迪利普·K·达什
詹姆斯·V·亨森
巴斯克·R·贾卡
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.)
Western Digital Technologies Inc
Original Assignee
Hitachi Global Storage Technologies Netherlands BV
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 Hitachi Global Storage Technologies Netherlands BV filed Critical Hitachi Global Storage Technologies Netherlands BV
Publication of CN105607721A publication Critical patent/CN105607721A/zh
Application granted granted Critical
Publication of CN105607721B publication Critical patent/CN105607721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • 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/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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

本发明涉及一种用于设备中的电源管理的资源分配和重新分配。一般地,描述了用于促进电源管理的资源分配和重新分配的技术。包括一个或多个处理器和存储器的设备可以被配置成执行该技术。处理器被配置成确定多个资源的第一非零子集的使用率,该多个资源根据温度计数据结构被分配和释放。处理器可以进一步被配置成比较多个资源的第一非零子集的使用率与分隔多个资源的第一非零子集和多个资源的第二非零子集的阈值,以及至少基于比较,加电多个资源的第二非零子集。存储器可以被配置成存储阈值。

Description

用于设备中的电源管理的资源分配和重新分配
技术领域
本公开涉及资源分配,更具体地说,涉及用于电源管理的资源分配。
背景技术
为支持设备的整体操作的各种目的,设备可以分配和重新分配资源。例如,存储设备,诸如固态驱动器(SSD)为了支持数据缓冲存取、当将数据存储到非易失性存储器(例如闪存)时的错误检查和校正(ECC)编码、从非易失性存储器检索数据时的闪存通道访问和当从非易失性存储器检索数据时的ECC解码,可以分配和重新分配资源。在资源数小于单元(可以称为“请求者”)的数量的情况下,存储设备可以实施判优方案(诸如所谓的循环方案),试图以避免过多延迟的方式,提供资源的合理平衡访问。
在一些示例中,人为地限制资源数来实现存储设备的有效操作(例如根据功耗)。即,可以断电可用资源的一些部分来降低功耗和与操作存储设备相关联的相应的成本。在某些环境中,人为地限制资源数中,存储设备的制造商正试图平衡性能和操作效率。例如,不同制造商已经尝试当资源需求高时,动态地加电初始断电的那些资源来提高性能,以及当资源需求低时,动态地断电这些相同的资源来提高操作效率。
因此,动态资源分配和重新分配可以允许当需要时,加电各种资源并且当不需要时断电各种资源。然而,促进这种省电资源分配/重新分配而开发的算法经受由于分配数据结构的限制。用于资源分配/重新分配的先入先出(FIFO)数据结构或后入先出(LIFO)数据结构会导致重新分配的资源与分配的资源混合的随机分布,使得难以通过足够的时间知道何时将要求特定资源来使这些资源及时可用于服务请求。可以采用复杂的硬件或可以配置通用处理器(诸如中央处理单元或CPU)来促进可以充分地平衡操作效率同时提供足够性能的动态资源分配/重新分配。然而,该专用硬件或另作它用的CPU会消耗相当大的电力,即使不是通过动态分配/重新分配算法提供的全部省电,也会抵消许多。
发明内容
在一个示例中,一种方法包括由设备的控制器确定设备的多个资源的第一非零子集的使用率,根据温度计数据结构,分配和释放多个资源;由控制器比较多个资源的第一非零子集的使用率与分隔多个资源的第一非零子集和多个资源的第二非零子集的阈值;以及至少基于比较,加电多个资源的第二非零子集。
在另一示例中,一种设备包括一个或多个处理器,其被配置成确定多个资源的第一非零子集的使用率,根据温度计数据结构,分配和释放多个资源,比较多个资源的第一非零子集的使用率与分隔多个资源的第一非零子集和多个资源的第二非零子集的阈值,以及至少基于比较,加电多个资源的第二非零子集;以及存储器,其被配置成存储阈值。
在另一示例中,一种非瞬时计算机可读存储介质具有已经在其上存储的指令,当其被执行时,使一个或多个处理器执行下述操作:确定多个资源的第一非零子集的使用率,根据温度计数据结构,分配和释放多个资源;比较多个资源的第一非零子集的使用率与分隔多个资源的第一非零子集和多个资源的第二非零子集的阈值;以及至少基于比较,加电多个资源的第二非零子集。
在附图和下述描述中阐述了上述一个或多个示例的细节。从说明书和附图,以及从权利要求,其它特征、目的和优点将是显而易见的。
附图说明
图1是根据本公开的一个或多个技术,示例存储设备可以充当用于主机设备的存储设备的示例性存储环境的原理和示意性框图。
图2是根据本公开的一个或多个技术,示例示例性控制器的原理和示意性框图。
图3是更详细地示例在图2的示例中所示的通用资源分配模块的图。
图4是更详细地示例图2的ECC解码器的框图。
图5A和5B是示例执行在本公开中所述的资源分配和重新分配技术中,存储设备的示例性操作的流程图。
图6是更详细地示例图3的温度计数据结构的图。
具体实施方式
根据本公开的一个或多个技术,设备的控制器(诸如SSD,其中,这些控制器可以称为快闪控制器)可以以固定连续性,促进分配和重新分配的方式,使用分配资源的温度计型数据结构,执行动态资源分配和重新分配。除了基础分配和重新分配基于导致资源分配和重新分配的随机分布的数据结构之外,温度计型数据结构可以保持通过递增地增加资源标识符识别的资源的固定顺序。然后,分配机制根据在分配具有相对较高资源标识符的可用资源前,分配具有最低资源标识符的可用资源的规则操作。因此,温度计数据结构可以通过由温度计数据结构的组件表示的资源的统计分析,暴露表示频繁使用的所谓“热点”和表示不常使用的“冷点”。通过识别这些热点和冷点,控制器可以动态地定义阈值。即,快闪控制器可以通过随时间的资源的使用的统计分析,识别阈值。阈值可以定义分离将保持加电的那些资源和可能断电的那些资源的边界。
快闪控制器可以设定该阈值并且随时间动态地更新该阈值来总计可能在SSD内发生的不同情况的数量。例如,快闪控制器可以在峰值使用期间的存储器资源的增加使用期间,增加该阈值,由此当使用需求高于存储器资源时,增加性能。快闪控制器还可以在非峰值使用期间的存储器资源的减小的相对使用期间,减小阈值,由此通过断电更多资源,提高操作效率。作为另一示例,快闪控制器可以随时间备注当闪存磨损时,由于闪存的增加故障,ECC解码器的使用已经增加。快闪控制器可以响应检测到该ECC解码器的增加使用,动态地增加阈值以加电更多ECC解码器。关于这一点,这些技术可以在SSD的早期部署期间,促使提高的操作效率,以及通过增加阈值,减小操作效率来在SSD的稍后部署期间保持相同性能。
图1是示例存储设备6可以充当用于主机设备4的存储设备的示例性存储环境2的原理和示意性框图。例如,主机设备4可以利用包括在存储设备6中的非易失性存储设备来存储和检索数据。在一些示例中,存储环境2可以包括可以操作为存储阵列的多个存储设备,诸如存储设备6。例如,存储环境2可以包括配置成共同充当用于主机设备4的大容量存储设备的廉价/独立冗余磁盘阵列(RAID)的多个存储设备6。
存储环境2可以包括可以将数据存储到一个或多个存储设备(诸如存储设备6)/从一个或多个存储设备检索数据的主机设备4。如图1所示,主机设备4可以经由接口14与存储设备6通信。主机设备4可以包括多种设备中的任何一个,其包括计算机服务器、网络附加存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板电脑、机顶盒、手持电话,诸如所谓的“智能”电话、所谓的“智能”平板、电视、摄像机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等等。
如图1所示,存储设备6可以包括控制器8、非易失性存储器阵列10(NVMA 10)、电源11、易失性存储器12和接口14。在一些示例中,为清楚起见,存储设备6可以包括图1中未示出的另外的组件。例如,存储设备6可以包括机械地附接存储设备6的部件并且包括电互连存储设备6的组件的导电迹线的印刷板(PB)等等。在一些示例中,存储设备6的物理尺寸和连接器结构可以符合一个或多个标准形状因子。一些示例性标准形状因子包括但不限于3.5”硬盘驱动器(HDD)、2.5”HDD、1.8”HDD、外围部件互连(PCI)、扩展PCI(PCI-X)、PCIExpress(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe迷你卡、MiniPCI等等)。在一些示例中,存储设备6可以直接耦合(例如直接焊接)到主机设备4的主板。
存储设备6可以包括用于与主机设备4对接的接口14。接口14可以包括用于与主机设备4交换数据的数据总线和用于与主机设备4交换命令的控制总线中的一个或两个。例如,接口14可以根据任何适当的协议操作。例如,接口14可以根据下述协议的一个或多个操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤通道、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、外围组件互连(PCI)和PCI-Express。接口14的电连接(例如数据总线、控制总线或两者)电连接到控制器8,提供主机设备4和控制器8之间的电连接,允许在主机设备4和控制器8之间交换数据。在一些示例中,接口14的电连接可以允许存储设备6从主机设备4接收电力。如图1所示,电源11可以经由接口14,从主机设备4接收电力。
存储设备6可以包括NVMA 10,其可以包括多个存储器设备16Aa-16Nn(统称“存储器设备16”),其可以分别被配置成存储和/或检索数据。例如,存储器设备16中的存储器设备可以从指示该存储器设备存储数据的控制器8接收数据和消息。类似地,存储器设备16的存储器设备可以从指示该存储器设备检索数据的控制器8接收消息。在一些示例中,存储器设备6的每一个可以称为裸片。在一些示例中,单个物理芯片可以包括多个裸片(即,多个存储器设备16)。在一些示例中,存储器设备16的每一个可以被配置成存储相对大量数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB,64GB、128GB、256GB、512GB、1TB等等)。
在一些示例中,存储器设备16可以包括任何类型的非易失性存储设备。存储器设备16的一些示例包括但不限于闪存设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备和任何其它类型的非易失性存储器设备。
闪存设备可以包括基于NAND或NOR的闪存设备,并且可以基于包含在用于每一闪存单元的晶体管的浮动栅中的电荷存储数据。在NAND闪存设备中,闪存设备可以被分成多个块,其可以被分成多页。特定存储器设备内的多个块的每一块可以包括多个NAND单元。NAND单元的行可以使用字线电连接来定义多个页的页。多个页的每一个中的各个单元可以电连接到各个位线。控制器6可以在页面级将数据写入NAND闪存设备以及从其读取数据并且在块级,从NAND闪存设备擦除数据。
在一些示例中,控制器8单独地连接到存储器设备16的每一存储器设备可能是不实际的。同样地,存储器设备16和控制器8之间的连接可以复用。例如,存储器设备16可以分组成通道18A-18N(统称“通道18”)。例如,如图1所示,存储器设备16Aa-16Nn可以分组成第一通道18A,以及存储器设备16Na-16Nn可以分组成第N个通道18N。分组成通道18的每一个的存储器设备16可以共享与控制器8的一个或多个连接。例如,分组成第一通道18A的存储器设备16可以附接到共用I/O总线和共用控制总线。存储器设备16可以包括用于通道18的每一各个通道的共用I/O总线和共用控制总线。在一些示例中,通道18的每一通道可以包括芯片组使能(CE)线,其可以用来复用每一通道上的存储器设备。例如,每一CE线可以连接到存储器设备18的各个存储器设备。以这种方式,可以减少控制器8和存储器设备18之间的单独连接的数量。另外,当每一通道具有与控制器8的单独的连接集合时,连接的减少可能不会显著地影响数据吞吐率,因为控制器8可以同时地向每一通道发布不同指令。
在一些示例中,存储设备6可以包括被选择来提供大于主机设备4可访问的容量的总容量的多个存储器设备16。这称为过提供。例如,如果告知存储设备6包括240GB的用户可访问存储容量,则存储设备6可以包括足够的存储器设备16来给出总共256GB的存储容量。主机设备4或主机设备4的用户不可以访问该16GB的存储设备16。替代地,附加的存储设备16可以提供另外的块来促进写、垃圾收集、磨损均衡等等。此外,如果一些块磨损,变得不可使用并且停止使用,则附加的存储器设备16可以提供可以使用的附加块。附加块的存在可以允许停止磨损块,而不会导致可用于主机设备4的存储容量的变化。在一些示例中,过提供的量可以定义为p=(T-D)/D,其中,p是过提供比,T是存储设备2的总存储容量,以及D是主机设备4可以访问的存储设备2的存储容量。
存储设备6可以包括电源11,其可以向存储设备6的一个或多个部件供电。当在标准模式中操作时,电源11可以使用由外部设备,诸如主机设备4提供的电力,向一个或多个部件供电。例如,电源11可以使用经由接口14,从主机设备4接收的电力,向一个或多个部件供电。在一些示例中,电源11可以包括被配置成当在诸如停止从外部设备接收电力的情况的关机模式中操作时,向一个或多个部件供电的一个或多个蓄电部件。以这种方式,电源11可以充当板上备用电源。一个或多个蓄电部件的一些示例包括但不限于电容器、超级电容器、电池等等。在一些示例中,可以由一个或多个蓄电部件储存的电量可以是一个或多个蓄电部件的成本和/或大小(例如面积/体积)的函数。换句话说,当由一个或多个蓄电部件储存的电量增加时,一个或多个蓄电部件的成本和/或大小也增加。
控制器8可以执行动态资源分配和重新分配的形式,以支持读操作和写操作中的一个或多个。如参考图2更详细所述,控制器8可以分配和重新分配资源以支持数据缓冲存取、当将数据存储在非易失性存储器(例如闪存)时的错误检查和校正(ECC)编码、当从非易失性存储器检索数据时的快速通道访问以及当从非易失性存储器检索数据时的ECC解码。在资源数小于请求单元数(可以称为“请求者”)的实例中,控制器8可以实现一个或多个判优方案,以避免过多延迟的方式,尝试提供对资源的合理平衡访问。
在一些示例中,人为地限制资源数来实现存储设备的更有效操作(例如根据功耗)。即,控制器8可以断电一部分可用资源来降低功耗以及与操作存储设备相关联的相应的成本。在某些环境中人为地限制资源数中,控制器8可以尝试平衡性能和操作效率。例如,当资源需求高时,控制器8可以动态地加电初始断电的那些资源来改进性能,而当资源需求低时,动态地断电这些相同的资源来改进操作效率。
因此,动态资源分配和重新分配可以允许当需要时,加电各种资源而当不需要时断电各种资源。然而,开发来促进该省电资源分配/重新分配的算法遇到由于分配/重新分配数据结构的限制。举例来说,分配算法可以采用先入先出数据结构,诸如队列。在该分配方案中,资源分别被指定资源标识符。该分配方案中的判优器可以将每一资源标识符推入队列,其中例如,最低资源标识符为将分配的第一标识符(或从该队列中“弹出”队列)。判优器可以分配与从该队列弹出的资源标识符相关联的资源。弹出资源标识符有效地从被分配到两个或更多个请求者移出该资源。
然而,每一请求者的资源利用时间可以改变,意指判优器可能随机地将资源标识符返回到队列中。由于该不固定资源分配时间的结果,资源标识符很快变得随机地分布在队列内。资源标识符的该随机分布会降低识别每一任何指定时间帧要求的资源数的能力,由此妨碍资源的动态供电来平衡操作效率和性能。将后入先出(LIFO)数据结构用于资源分配/重新分配的分配方案可能类似地导致资源标识符的随机分布。为克服分配方案的这些限制,控制器可以包含复杂硬件或通用处理器(诸如中央处理单元或CPU)来促进可以充分地平衡操作效率同时还提供足够性能的动态资源分配/重新分配。然而,该专用硬件或另作它用的CPU能够消耗大量电力,即使不是通过动态分配/重新分配算法提供的所有省电,也会抵消许多。
根据本公开的一个或多个技术,存储设备6的控制器8可以使用以固定连续性,促进分配和重新分配的方式,分配资源的温度计型数据结构,执行动态资源分配和重新分配。除了使基础分配和重新分配基于导致资源分配和重新分配的随机分布的数据结构之外,温度计型数据结构可以保持按递增且潜在单调地增加资源标识符识别的资源的固定顺序。然后,分配机制可以根据在分配具有相对较高资源标识符的可用资源前,分配具有最低资源标识符的可用资源的规则操作。因此,温度计数据结构可以通过由温度计数据结构的组件表示的资源的统计分析,暴露表示频繁使用的所谓“热点”和表示不常使用的“冷点”。通过识别这些热点和冷点,控制器8可以动态地定义阈值。即,快闪控制器可以通过随时间的资源的使用率的统计分析,识别阈值。阈值可以定义将分开将保持加电的那些资源和可能断电的那些资源的边界。
控制器8可以设定该阈值并且随时间动态地更新该阈值来总计实例数。例如,控制器8可以在峰值使用期间的存储器资源的增长使用期间,增加阈值,由此当使用需求更多存储器资源时,增加性能。控制器8还可以在非峰值使用期间的存储器资源的相对减少使用期间,减小阈值,由此通过断电更多资源,潜在地提高电操作效率。作为另一示例,控制器8可以随时间识别当非易失性存储器10磨损时,非易失性存储器10的增加的故障,ECC解码器的使用已经增加的实例。响应检测到ECC解码器的增加使用,控制器8可以动态地增加该阈值来加电更多ECC解码器。关于这一点,在SSD的早期部署期间,这些技术可以促使改进操作效率,而在SSD的后期部署期间,通过增加阈值来保持相同性能,减小操作效率。
关于这一点,控制器可以确定多个资源的第一非0子集(或换句话说,一部分)的使用率,其中,根据温度计型温度计数据结构,也称为温度计数据结构,分配和释放多个资源。然后,控制器8将多个资源的第一非0子集的使用率与将多个资源的第一非0子集与资源的第二非0子集分离的阈值比较。
在一些示例中,在执行该比较前,控制器8可以将使用率转换成多个资源。例如,可以根据每一些时间帧的多个请求,定义使用率。然后,控制器8可以确定或者另外获得每一资源能被处理的每一时间帧的请求数。然后,控制器8将每一时间帧的请求数除以资源能被处理的每一相同时间帧的请求数以便确定要求的预期资源数。
然后,控制器8将要求的预期资源数(有效地表示使用率)与阈值比较。控制器8可以至少基于要求的预期资源数与该阈值的比较,加电资源的第二非0子集。同样地,控制器8可以继续确定或者另外获得随时间的使用率,并且可以将该使用率与加电后的阈值比较,或换句话说,激活资源的第二非0子集。当使用率小于阈值所允许的使用率时,控制器8可以断电资源的第二非0子集。
图2是示例控制器8的示例性细节的原理和示意性框图。在一些示例中,控制器8可以包括地址转换模块22、写模块24、维护模块26、读模块28、调度模块30和多个通道控制器32A-32N(统称“通道控制器32”)。在其它示例中,控制器8可以包括另外的模块或硬件单元,或可以包括更少模块或硬件单元。控制器8可以包括微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它数字逻辑电路。在一些示例中,控制器8可以是片上系统(SoC)。
控制器8可以经由接口14与主机设备4对接并且管理将数据存储到存储器设备16以及从存储器设备16检索数据。例如,控制器8的写模块24可以管理到存储器设备16的写入。例如,写模块24可以经由接口14,从主机设备4接收指示存储设备6存储与逻辑地址相关联的数据的消息以及该数据。写模块24可以管理将数据写入到存储器设备16。
例如,写模块24可以与管理由主机设备4使用来管理数据的存储位置的逻辑地址和由写模块24使用来将数据直接写入存储器设备的物理块地址之间的转换的地址转换模块22通信。控制器8的地址转换模块22可以利用将由存储器设备16存储的数据的逻辑地址(或逻辑块地址)转换成由存储器设备16存储的数据的物理块地址的闪存转换层或表。例如,主机设备4可以将由存储器设备16存储的数据的逻辑块地址用在存储设备6的指令或消息中,而写模块24利用数据的物理块地址来控制将数据写入存储器设备16。(类似地,读模块28可以利用物理块地址来控制从存储器设备16读取数据)。物理块地址对应于存储器设备16的实际物理块。在一些示例中,地址转换模块22可以将闪存转换层或表存储到易失性存储器12中,诸如缓存信息13内。
以这种方式,可以允许主机设备4将静态逻辑块地址用于某一数据集,而实际存储数据的物理块地址可以改变。地址转换模块22可以保存闪存转换层或表来将逻辑块地址映射到物理块地址以允许主机设备4使用静态逻辑块地址,而例如由于磨损均衡、垃圾收集等等,数据的物理块地址可以改变。
如上所述,控制器8的写模块24可以执行一个或多个操作来管理将数据写入存储器设备16。例如,写模块24可以通过选择存储器设备16内的一个或多个块来存储数据并且使包括选择的块的存储器设备16的存储器设备实际存储数据,管理将数据写入存储器设备16。如上所述,写模块24可以使地址转换模块22基于选择的块,更新闪存转换层或表。例如,写模块24可以从主机设备4接收包括数据单元和逻辑块地址的消息,选择存储器设备16的特定存储器设备内的块来存储数据,使存储器设备16的特定存储器设备实际存储数据(例如,经由对应于特定存储器设备的通道控制器32的通道控制器),并且使地址转换模块22更新闪存转换层或表来表明该逻辑块地址对应于特定存储器设备内的选择的块。
在一些示例中,在从主机设备4接收数据单元后,在使一个或多个存储器设备16实际存储数据前,写模块24可以利用易失性存储器12来临时存储该数据单元。在一些示例中,写模块24可以被配置成将表示是否成功地存储数据的消息发送到主机设备4。然而,在一些示例中,写模块24可以在实际存储数据前,将确认数据的成功存储的消息发送到主机设备4。例如,当数据存储在易失性存储器12中时,写模块24可以将确认数据的成功存储的消息发送到主机设备4。
在一些示例中,除使数据由存储器设备16存储外,写模块24可以使存储器设备16存储只要一个或多个块故障或被破坏,可以用来恢复数据单元的信息。可以使用奇偶校验信息来恢复由其它块存储的数据。在一些示例中,奇偶校验信息可以是由其它块存储的数据的XOR。
为了将具有逻辑值0(带电)的位写入到在前逻辑值1(不带电)的位,使用大电流。该电流可能相当大,使得非故意地改变相邻闪存单元的电荷。为防止非故障改变,在将任何数据写入该块内的单元前,可以将闪存单元的整个块擦除为逻辑值1(不带电)。因为此,可以在块级擦除并且在页面级写入闪存单元。
由此,即使为写入将消耗少于1页的数据量,控制器8可以使整个块被擦除。这会导致写入放大率,是指将写入存储器设备16的、从主机设备4接收的数据量与实际写入存储器设备16的数据量之间的比。写入放大率导致发生比无写入放大率更快磨损闪存单元。当由于用来擦除闪存单元的相对高电压,擦除闪存单元时,闪存单元的磨损会发生。在多个擦除周期,相对高电压会导致闪存单元改变。最终,由于磨损,闪存单元会变得不可用,其中,闪存单元可能不能足够精度地存储数据以允许检索该数据。
控制器8可以实现来降低写入放大率和闪存单元的磨损的一种技术包括将从主机设备4接收的数据写入到未使用块或部分使用块。例如,如果主机设备4将仅包括与已经由存储设备6存储的数据小变化的数据存储到存储设备6,那么,控制器可以将该旧数据标记为失效或不再有效。随时间,与擦除保存旧数据的块和将更新数据写入同一块相比,这会降低操作被暴露的擦除次数。
响应从主机设备4接收写指令,写模块24可以确定将数据写入存储器设备16的哪一物理位置(例如块)。例如,写模块24可以从地址转换模块22或维护模块26请求为空(例如未存储数据)、部分空(例如,仅块的一些页存储数据)或存储至少一些无效(或失效)的数据的一个或多个物理块地址。在接收一个或多个物理块地址后,如上所述,写模块24可以选择一个或多个块,并且传输使通道控制器32A-32N(统称“通道控制器32”)将数据写入选择的块的消息。
读模块28类似地可以控制从存储器设备16读取数据。例如,读模块28可以从主机设备4接收请求具有相关的逻辑块地址的数据的消息。使用闪存转换层或表,地址转换模块22可以将逻辑块地址转换成物理块地址。然后,读模块28可以控制一个或多个通道控制器32来从物理块地址检索数据。与写模块24类似,读模块28可以选择一个或多个块并且传送使通道控制器32从选择的块读取数据的消息。
通道控制器32的每一通信控制器可以连接到通道18的各自的通道。在一些示例中,控制器8可以包括与存储设备2的通道18的数量相同的通道控制器32的数量。通道控制器32可以例如在写模块24、读模块28和/或维护模块26的控制下,执行连接到各个通道的存储器设备16的寻址、编程、擦除和读取的密切控制。
维护模块26可以被配置成执行与维护性能和延长存储设备6(例如存储器设备16)的使用寿命有关的操作。例如,维护模块26可以实现磨损均衡或垃圾收集的至少一个。
如上所述,擦除闪存单元可能使用相对高压,在多次擦除操作内,可能导致闪存单元改变。在一定数量擦除操作后,闪存单元恶化到某种程度,数据不再可以写入到该闪存单元,并且可能报废包括那些单元的块(不再由控制器8用来存储数据)。为在磨损和报废块前,增加可以写入存储器设备16的数据量,维护模块26可以实施磨损均衡。
在磨损均衡中,维护模块26可以跟踪对于每一块或块组,擦除或写入块或块组的数量。维护模块26可以使来自主机设备4的输入数据写入已经经过相对少写入或擦除的块或块组,尝试用于每一块或块组的写入或擦除数保持近似相等。这可以使存储器设备16的每一块以几乎相同的速率磨损,并且可以增加存储设备6的使用寿命。
尽管通过降低擦除数和将数据写入不同块,减少闪存单元的写入放大率和磨损,但这也会导致包括一些有效(最新)数据和一些无效(失效)数据的块。为克服该最新数据/失效数据状态,维护模块26可以实现垃圾收集。在垃圾收集操作中,维护模块26可以分析存储器设备16的块的内容来确定包含高百分比的无效(失效)数据的块。然后,维护模块26可以将有效数据从该块重新写入到不同块,然后,擦除该块。这会减少由存储器设备16存储的无效(失效)数据量并且增加空闲块数,但也会增加存储器设备16的写入放大率和磨损。
控制器8的调度模块30可以执行一个或多个操作来调度将由存储器设备16执行的活动。例如,调度模块30可以调度指示一个或多个存储器设备16在运行期间,执行一个或多个活动的、从控制器8的其它组件接收的请求。在一些示例中,调度模块30可以按接收的顺序调度将执行的请求(例如,先入先出或FIFO)。在一些示例中,调度模块30可以基于可以包括但不限于请求的类型(例如读请求、写请求、擦除请求、垃圾收集请求等等)、自接收请求以来经过的时间量、执行该请求消耗的电量、带宽考虑等等的一个或多个因素,调度请求。
在一些示例中,诸如遵守功耗预算,调度模块30可以调度将执行的活动,使得节流性能。例如,在功耗预算对存储器设备16分配小于如果所有存储器设备16同时有效将消耗的电量的电量的情况下,调度模块30可以调度将执行的活动,使得由存储器设备16消耗的电量不超出分配给存储器设备16的电量。
举一个示例,在存储设备6具有25W的功耗目标的情况下,功耗预算可以分配一部分功耗目标(例如16W),用于由存储器设备16使用。如果所有存储器设备16同时有效消耗的电量大于功耗目标的分配部分(例如,16W),则调度模块30可以确定当前有效但不消耗大于分配部分的存储器设备16的数量。例如,存储器设备16被分配功耗预算的X单位并且存储器设备16的每一存储器设备在有效时消耗电力的一个单位,调度模块30可以确定存储器设备16中的X个存储器设备可以同时有效。
在一些示例中,调度模块30可以被配置成有选择地启用性能节流。例如,调度模块30当在第一模式中操作时,可以启用节流,而当在第二模式中操作时,禁用节流。在一些示例中,诸如在节流减少可以同时有效的存储器设备16的数量的情况下,与禁用节流相比,调度模块30可以使数据写入存储器设备16的速率在启用节流时更低。
如在图2的示例中进一步所示,控制器8可以包括多个缓冲器34。在一些示例中,缓冲器34可以称为“原始数据缓冲器34”。原始数据缓冲器34可以表示用来存储将传递给通道控制器32和/或从通道控制器32接收的数据的缓冲器。原始数据缓冲器34可以表示上述提到的、可以由所谓请求者,诸如写模块24和读模块28请求的资源的一个。
此外,尽管为易于示例目的,仅示出有关通道控制器通道控制器32A,但与有关通道控制器32A所示类似,通道控制器32的每一个可以包括以ECC编码器36、读缓冲器38和ECC解码器40的形式的多个示例性资源。ECC编码器36可以表示被配置成对等待写入非易失性存储器区域10的数据执行ECC编码的单元或模块。读缓冲器38表示被配置成存储从非易失性存储器区域10读取的数据的单元或模块。读缓冲器38可以被配置成存储读密码。ECC解码器40可以表示被配置成执行有关存储到读缓冲器38的数据的ECC解码的单元或模块。
根据本公开的一个或多个技术,通道控制器32A可以包括至少部分地使用允许以下文更详细所述的方式,例如,以固定连续性分配和重新分配资源的温度计数据结构,执行ECC编码器36、读缓冲器38和ECC解码器40的一个或多个的分配和重新分配的资源分配模块42。尽管示为包括单个资源分配模块42,但通道控制器32A可以包括多个不同的资源分配模块42,其中每一个可以负责分配资源36-40的单独一个。尽管为易于示例目的,在图2的示例中未示出,但通道控制器32的每一个,或在一些示例中,一个或多个通道控制器32可以包括一个或多个资源分配模块42,与通道控制器32A的资源分配模块42类似。此外,尽管同样为易于示例目的,在图2的示例中未示出,但控制器8可以包括资源分配模块42的另一实例,作为独立于通道控制器32的模块,其可以执行在本公开中所述的技术来分配/重新分配缓冲器34以便平衡操作效率和性能。
在任何情况下,资源分配模块42可以分析温度计数据结构来识别使用一个或多个上述识别的资源34-40来确定阈值。基于在前统计分析或其它标准,该阈值初始可以是预定的并且配置在控制器8内。如上所提到的,资源分配模块42可以在初始加电时,仅加电资源34-40的一个或多个的第一非0子集,并且随时间,确定这些资源的使用率,将该使用率与阈值比较。然后,资源分配模块42可以基于该比较,加电资源34-40的一个或多个的第二非0子集,其中,第二非0子集不包括相应的资源34-40的第一非0子集的资源34-40的任何一个。
图3是更详细地示例在图2的示例中所示的通用资源分配模块42的图。如图3的示例中所示,资源分配模块42可以包括判优器模块50(也可以称为“资源判优器50”)以及分配器和电源控制模块52(也可以称为“资源分配器52”。资源分配模块42可以与可以表示在前所述资源,例如缓冲器34、ECC编码器36、读缓冲器38和ECC解码器40以及通常在存储设备或设备标识符中共用的任何其它资源的资源54A-54M(“资源54”)对接。
资源分配模块42还可以与请求者56A-56N(“请求者56”)对接,试图判优对资源54的访问同时还分配资源54的不同非0子集的资源54来促进根据在本公开中所述的技术的电力控制。资源56可以表示由通用处理器(诸如中央处理单元或CPU)、专用处理器、专用硬件、不同内核或任何其它类型的软件或硬件请求者执行的不同软件线程。
通常,当请求者56的数量超出资源54的数量时(例如,在N大于M的情况下),本公开的技术可以促进访问资源54。在这些实例中,资源分配模块42可以提供若干接口:
1)设计来连接到M个资源的集合的一个的N个竞争请求端口的集合,其中,M<N;
2)连接到资源的每一实例的电力控制输出的集合;
3)从资源到表示相关资源的当前电力状态的装置的电力状态指示器输入的集合;以及
4)CPU存储器或基于输入/输出(I/O)的接口。
判优器模块50可以表示被配置成执行判优方案的单元。示例性判优方案是循环判优方案。在循环判优方案中,根据接收下一准许,在请求者56中,最后准许访问一个资源54的一个请求者56具有最低相对优先权,另外按数值顺序的下一请求者56接收下一准许。即,每一请求者56被指定请求者标识符(ID),其可以定义请求者56中的数值顺序。资源ID也可以被指定到每一资源54。在一些示例中,取决于那一个资源54的能力,可以将多个资源ID指定到每一资源54。在将多个资源ID指定到单个资源54的那些示例中,资源ID可以称为“资源要素ID”或“分配ID”。即使在将单个资源ID指定到单个资源54的实例中,资源ID可以称为“资源要素ID”或“分配ID”。同样地,这些术语的使用可以互换并且不必表示多个资源ID是否被指定到一个或多个资源54。
由判优器模块50实现的循环判优方案可以使判优器模块50将请求者ID指定到每一请求者56以及将一个或多个资源ID指定到每一资源54。然后,判优器模块50可以按递增数值顺序,以与每一请求相关联的请求者ID的数值顺序,循环访问资源54的未决请求。判优器模块50可以根据来自同一请求者56的特定请求是否是最后准许的请求,降级一些请求,由此有效地降级来自最新服务过的那些请求者56的请求,试图平衡请求者56对资源54的访问的请求。来自请求者56的请求由箭头表示并且可以称为“请求58A-58N”或统称为“请求58”。
在图3的示例中,分配器和电源控制模块52包括分配器模块60和电源控制模块62。在来自请求者56的请求58之间的判优中,分配器模块60可以与判优器模块50传送或者另外共享数据来促进准许请求58。例如,当分配器模块60表示所有资源54均分配给判优器模块50时,判优器模块50可以不准许未决请求58中的一个。作为另一示例,当分配器模块60表示所有可用资源(可以称为加电的资源54的非0子集)被分配给判优器模块50时,判优器模块50可以不准许未决请求58中的一个。作为又一示例,当分配器模块60表示断电判优器模块50的所有资源54时,判优器模块50可以不准许未决请求58中的一个。在一些示例中,可以启用一个或多个资源54,用于准予外部CPU或其它控制设备(在一些示例中,可以通过寄存器接口发生)。分配器模块60同样可以仅告知判优器模块50那些被控制的资源54在CPU或其它控制设备启用这些资源54用于准许时,可用于分配。
首先,当首先加电存储设备6时,存储设备6可以在低电力状态中操作,其中,加电一些资源54而不是全部资源。请求者56可以开始发出一个或多个请求58,然后,CPU或其它控制逻辑可以启用分配器模块60来对接电源控制模块62,以便加电资源54的一些非0子集。即,分配器模块60可以对接电源控制模块62来仅加电资源54的非0子集而不加电剩余资源54。资源54的该0子集可以称为资源54的一部分或资源体54。此外,资源54的该非0子集可以包括一个、两个或以上资源54而不是全部资源54。
响应加电资源54的该非0子集,然后,分配器模块60可以初始化温度计数据结构61(“温度数据结构61”)、按顺序,将增加资源ID指定到资源54的加电的非0子集并且更新温度计数据结构61来反映将资源ID指定到资源54的加电的非0子集的特定一个。该温度计数据结构61可以包括用于资源54的加电的非0子集的每一个的节点,每一节点存储顺序地,并且潜在单调增加的资源ID和是否资源的非0集合的相应一个可用或者使用中的一个的指示。然后,分配器模块60可以将资源ID传递到判优器模块50,用在准许一个或多个请求58中。如图3的示例中所示,分配器模块60可以通过向判优器模块50提供温度计数据结构61,传递资源ID。尽管示为分别具有温度计数据结构61的副本,但判优器模块50和分配器模块60可以分别访问同一温度计数据结构61,其可以存储到可由判优器模块50和分配器模块60访问的单个位置。
然后,判优器模块50根据判优方案,进行准许请求58,由此,提供请求者56访问由资源ID识别的那些资源。判优器模块50可以更新温度计数据结构61来表示资源54的那些非零子集被分配为由请求者56的一个使用。随时间推进,请求者56可能发出增加请求数58,其导致在准许访问一个资源54前,请求者56平均等待更长时间。分配器模块60可以识别该延迟(例如,根据从发出一个请求58到准许一个请求58的平均时间量)并且将该延迟转换成降低该延迟要求的预期资源数。实际上,可以预测该预期资源数,因为该转换可以基于过去使用率,尝试预测使用率以便在预期需求那些资源前,加电那些资源。使用率的预测可以使分配器模块60对接电源模块62以便加电资源54,使得当实际使用率信息(而不是预测使用率信息)表示要求这些另外的资源54时,这些资源54可用。
当初始化温度计数据结构61时,分配器模块60可以确定将加电的资源54的非0子集与将不加电的剩余资源54分离的阈值。该阈值可以由CPU或其它控制逻辑定义,预编程或预配置在分配器模块60内,经由存储设备6的在前操作或其一些组合学习(经由计算机学习算法)。尽管在本公开中描述了有关单个阈值,但这些技术可以延伸到多个阈值,每一阈值定义加电或断电的非0资源子集之间的另一分隔点。
在任一事件下,当资源54的预期数量等于或超出(或一些示例,仅超出)该阈值时,分配器模块60可以对接电源控制模块62来加电剩余资源54。在一些示例中,分配器模块60可以首先对接CPU或其它控制逻辑来在加电这些资源54前,确认剩余资源54将加电。一旦如由电源控制模块62报告加电,分配器模块60可以更新温度计数据结构61来反映最新加电的资源54。然后,在已经更新温度计数据结构61后,判优器模块50将新加电的一个资源54指定给请求者56以便准许来自那些请求者56的请求。通过使用温度计数据结构61,分配器模块60可以以固定连续性或特定进度加电资源54。
换句话说,分配器模块60根据可以使资源ID集中到与最小编号的资源54相关联的最小数值的算法操作。当判优器模块50接收到第一个请求58时,判优器模块50可以被配置成分配存储到温度计数据结构61的最小编号的一个资源ID并且更新温度计数据结构61来表示相应的一个资源54忙(或换句话说,使用中或不可用)。当在由相应一个资源54已经完全处理第一请求前,通过判优器模块50接收到第二请求58时,判优器模块50可以分配存储到温度计数据结构61的第二最低可用的一个资源ID。在分配该第二最低可用的一个资源ID后,判优器模块50可以更新温度计数据结构61来表示该相应的资源忙。一旦处理第一请求58,判优器模块50可以更新温度计数据结构61来表明处理第一请求58的一个资源54可用。假定该一个资源54具有(所有可用资源ID的)最低可用资源ID,判优器模块50可以响应另外的请求58,再次分配该资源ID,由此潜在地避免不必加电剩余资源54。
随时间推进,分配器模块60可以确定每指定时间间隔的请求数已经减小。该减小可以有效地导致一些可用资源54在一段时间内处于空闲。分配器模块60可以通过将每一指定时间间隔的请求数转换成预期资源数,检测空闲。分配器模块60可以将该预期资源数与上述提到的阈值比较,并且基于该比较(例如,当预期资源数小于或等于或简单低于该阈值时),断电先前加电的资源54的剩余非0子集。
分配器模块60可以随时间增加阈值数来提供更细粒度的电源控制或者另外调整现有的阈值来仅加电或断电资源54的一些递增量。换句话说,尽管上文描述为具有静态阈值,但基于预期资源数、时刻或任何其它条件,诸如热量、消耗的处理周期、存储器使用等等,这些技术可以通过随时间改变的动态阈值实现。在动态调整阀值中,分配器模块60可以加电或断电资源54的初始非0子集内的附加资源,增加或减小存在于资源54的该非0子集中的资源数。动态调整阈值可以提供另一方法来平衡性能和功耗。
图4是更详细地示例图2的ECC解码器40的框图。在图4的示例中,ECC解码器40包括以判优器模块50和分配器和电源控制模块52(每个可与图3的示例中所示的判优器模块50和/或分配器电源控制模块52类似或相同)的形式的集成资源分配模块42(未示出)。ECC解码器40可以进一步包括可以有效地表示请求者56和读数据复用器72(“读数据复用器72”)的一个或多个资源请求模块。请求者56可以表示被配置成对接CPU 70并且生成请求58的接口。读数据复用器72可以表示被配置成在表示为资源54的存储体之间复用或另外从存储体的一个选择数据的单元。
在图4的示例中,请求者56可以表示请求复制数据的存储器缓冲器的设备、单元或模块。资源54可以表示位于存储体0-3(例如,可以分别包括称为SRAM的存储器类型)内的存储器缓冲器。假定每一存储体能提供四个缓冲器并且平均请求到达间时间是使得四个请求者56的最大值在缓冲器的寿命上有效,然后仅单个存储体54加电来满足该需求。然而,当请求的到达间时间减小,或缓冲器的平均寿命增加时,分配和电源控制模块52可以加电另外的一个存储体54(例如,除存储体0外的存储体1),由此提供四个以上资源ID。然后,分配和电源控制模块52可以将缓冲器槽的可用池从4个增加到8个,但仅在经由PWR_IS_ON控制通道(或称为电源状态控制线),存储体1表示已经处于加电状态后。
图5A和5B是示例在执行本公开中所述的资源分配和重新分配技术中,存储设备的示例性操作的流程图。首先参考图5A,当首先加电存储设备,诸如图1的示例中所示的存储设备6时,存储设备6可以在低电力状态下操作,其中,一些并非所有资源54(图3和4的示例中所示)断电(或未加电)(90)。请求者56可以开始发出一个或多个请求58,然后,CPU或其它控制逻辑可以启用分配器模块60来对接电源控制模块62以便加电资源54的一些非0子集(94)。
响应加电资源54的该非0子集,然后,分配器模块60可以初始化温度计数据结构61(“温度计数据结构61”),按顺序,将递增的资源ID指定到资源54的加电的非0子集并且更新温度计数据结构61来反映将资源ID指定到特定的资源54的加电的非零子集(96)。然后,判优器模块50可以根据判优方案,进行准许请求58(98),由此提供请求者56访问由资源ID识别的那些资源。判优器模块50可以更新温度计数据结构61来表明资源54的那些非0子集被分配为由一个请求者56使用(100)。
随时间推进,请求者56可以发出日益增多的请求58,导致请求者56在准许访问一个资源54前,平均等待更长时间量。分配器模块60可以确定请求准许延迟(例如,根据从发出一个请求58到准许一个请求58的平均时间量)并且以上述方式,将该延迟(根据预期资源数)与阈值比较(102,104)。当预期资源54的数量(有效地表示延迟)小于或等于阈值时(106为“否”),分配器模块60可以继续监控或者另外确定请求准许延迟并且将该延迟与阈值比较(102,104)。当预期资源54的数量超出阈值时(106为“是”),分配器模块60可以对接电源控制模块62来加电剩余资源54(108)。
如上所述,尽管描述了有关多个资源的非0子集和剩余的多个资源,但这些技术可以延伸到资源的任意数量子集以及相应的阈值被定义为分隔资源的每一连续非0子集。关于这一点,可以将多个资源理解成更多个资源的子集。同样地,多个资源的剩余资源可以表示更多资源内的多个资源的第二非0子集。
在任一事件下,一旦由电源控制模块62报告加电,分配器模块60可以更新温度计数据结构61来反映新加电的资源54(110)。参考图5B的示例,然后,判优器模块50可以在已更新温度计数据结构61后,开始将新加电的一个资源54指定给请求者56以便准许来自那些请求者56的请求58,同时更新温度计数据结构61来反映这些资源56的分配和释放(112,114)。
随时间推进,分配器模块60可以确定每一指定时间间隔的请求数已经减小。该减小可以有效地导致一些可用资源54在某一时段内处于空闲。分配器模块60可以再次确定潜在地将每一指定时间间隔的请求数转换成预期资源数的请求准许延迟(116)。分配器模块60可以将该预期资源数与上述提到的阈值比较(118),并且基于该比较(例如,当预期资源数小于或等于或简单低于阈值时),断电先前加电的资源54的剩余非0子集。
例如,当延迟大于阈值时(120为“是”),分配器模块60可以继续确定请求准许延迟并且将该延迟与阈值比较(116,118)。当延迟低于或等于阈值时(120为“否”),分配器模块60可以对接电源控制模块62来断电资源54的剩余子集(122)。分配器模块60可以更新温度计数据结构61来反映这些资源54的断电(124)。存储设备6可以继续以这种方式操作,继续确定请求准许延迟102,现在称为操作成本降低模式(102-106,122,124)直到请求准许延迟超出存储设备6在性能模式中操作的点所在的阈值为止(108-120)。
图6是更详细地示例图3的温度计数据结构61的图。温度计数据结构61包括节点130A-130I(“节点130”),每一节点存储资源ID(RID)和可用(A)位。在图6的示例中,与节点130A、130C-130F和130H相关联的资源54不可用,由A=0表示(在该图中,填充对角线)。每一节点130从左到右指定连续递增资源ID(例如,0至8)。为分配空闲资源(其中,节点130B、130G和130I与空闲相关联,或换句话说,可用资源),判优器模块50总是开始从一侧(例如左侧)搜索空闲资源。因此,判优器模块50可以响应下一请求58,分配与等于1(如由节点130B识别)的资源ID相关联的一个资源54。代替传统分配,该条形图/温度计型分配允许以上述方式断开未用资源。有效地,温度计数据结构61的一侧可以保持忙,而另一侧可以大部分保持空闲。
在本公开中描述的技术至少部分可以由硬件、软件、固件或其任意组合实现。例如,所述技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其它等效集成或离散逻辑电路、以及这些组件的任意组合。术语“处理器”或“处理电路”通常可以指上述逻辑电路中的任何一个,单独或与其它逻辑电路组合,或任何其它等效的电路。包括硬件的控制单元也可以执行本公开的一个或多个技术。
可以在同一设备内或在分立的设备内实现这样的硬件、软件和固件来支持在本公开中所述的各种技术。此外,上述单元、模块或组件中的任何一个可以一起或单独地实现为离散但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同功能方面,而不一定暗指这样的模块或单元必须由分立的硬件、固件或软件组件实现。相反,与一个或多个模块或单元相关联的功能可以由分立的硬件、固件或软件组件实现,或集成在公用或分立的硬件、固件或软件组件内。
在本公开中所述的技术也可以实现或编码在包括编码有指令的计算机可读存储介质的制品中。在包括计算机可读存储介质的制品中嵌入或编码的指令可以使一个或多个可编程处理器或其它处理器实现在此所述的一个或多个技术,诸如当包括或编码在计算机可读存储介质中的指令由一个或多个处理器执行时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、光盘ROM(CD-ROM)、软盘、磁带、磁介质、光学介质或其它计算机可读介质。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非瞬时介质。术语“非瞬时”可以表示不是以载波或传播信号实现存储介质。在某些实例中,非瞬时存储介质可以存储能随时间改变的数据(例如在RAM或高速缓冲存储器中)。
已经描述了各种示例。这些和其它示例在所附权利要求的范围内。

Claims (19)

1.一种执行用于电源管理的资源分配和重新分配的方法,包括:
由设备的控制器确定所述设备的多个资源的第一非零子集的使用率,根据温度计数据结构,分配和释放所述多个资源,其中所述温度计数据结构包括用于所述多个资源的每一个的各个位,所述各个位的每一个表示是否所述多个资源的相应一个被分配给请求单元或者可用于分配给请求单元;
由所述控制器比较所述多个资源的第一非零子集的使用率与分隔所述多个资源的第一非零子集和所述多个资源的第二非零子集的阈值;以及
至少基于所述比较,加电所述多个资源的第二非零子集。
2.如权利要求1所述的方法,其中,所述设备包括固态驱动器即SSD,以及其中,所述多个资源支持将数据写入所述SSD的非易失性存储器和从所述SSD的非易失性存储器读取数据的一个或多个。
3.如权利要求1所述的方法,进一步包括,由所述控制器至少基于所述温度计数据结构的分析,确定所述多个资源的第一非零子集的使用率。
4.如权利要求1所述的方法,进一步包括,至少基于所述温度计数据结构的各个位的统计分析,确定所述多个资源的第一非零子集的使用率。
5.如权利要求1所述的方法,进一步包括,将所述多个资源的第一非零子集的使用率转换成表示将请求的所述多个资源的预期数量的预测使用率,
其中,比较所述多个资源的第一非零子集的使用率包括比较将请求的所述多个资源的预期数量与所述阈值。
6.如权利要求1所述的方法,其中,所述多个资源的每一个包括各自的存储器插槽,所述各自的存储器插槽的每一个包括相同字节数。
7.如权利要求1所述的方法,其中,所述多个资源的每一个包括用来对于写入固态驱动器的非易失性存储器的错误检查和校正编码数据,执行错误检查和校正解码的各自的错误检查和校正解码器。
8.如权利要求1所述的方法,
其中,加电所述多个资源的第二非零子集包括当所述使用率等于或超出所述阈值时,加电所述多个资源的第二非零子集,以及
其中,所述方法进一步包括当所述使用率小于所述阈值时,断电所述多个资源的第二非零子集。
9.如权利要求1所述的方法,进一步包括,随时间动态地将所述阈值设定为不同值来控制功耗。
10.一种用于电源管理的资源分配和重新分配的设备,包括:
一个或多个处理器,所述一个或多个处理器被配置成确定多个资源的第一非零子集的使用率,根据温度计数据结构,分配和释放所述多个资源,比较所述多个资源的第一非零子集的使用率与分隔所述多个资源的第一非零子集和所述多个资源的第二非零子集的阈值,以及至少基于所述比较,加电所述多个资源的第二非零子集;以及
存储器,所述存储器被配置成存储所述阈值;
其中所述温度计数据结构包括用于所述多个资源的每一个的各个位,所述各个位的每一个表示是否所述多个资源的相应一个被分配给请求单元或者可用于分配给请求单元。
11.如权利要求10所述的设备,其中,所述设备包括固态驱动器即SSD,以及其中,所述多个资源支持将数据写入所述SSD的非易失性存储器和从所述SSD的非易失性存储器读取数据的一个或多个。
12.如权利要求10所述的设备,其中,所述一个或多个处理器被进一步配置成至少基于所述温度计数据结构的分析,确定所述多个资源的第一非零子集的使用率。
13.如权利要求10所述的设备,其中,所述一个或多个处理器被进一步配置成至少基于所述温度计数据结构的各个位的统计分析,确定所述多个资源的第一非零子集的使用率。
14.如权利要求10所述的设备,
其中,所述一个或多个处理器被进一步配置成将所述多个资源的第一非零子集的使用率转换成表示将请求的所述多个资源的预期数量的预测使用率,以及
其中,所述一个或多个处理器被配置成比较将请求的所述多个资源的预期数量与所述阈值。
15.如权利要求10所述的设备,其中,所述多个资源的每一个包括各自的存储器插槽,所述各自的存储器插槽的每一个包括相同字节数。
16.如权利要求10所述的设备,其中,所述多个资源的每一个包括用来对于写入固态驱动器的非易失性存储器的错误检查和校正编码数据,执行错误检查和校正解码的各自的错误检查和校正解码器即ECC解码器。
17.如权利要求10所述的设备,
其中,所述一个或多个处理器被配置成当所述使用率等于或超出所述阈值时,加电所述多个资源的第二非零子集,以及
其中,所述一个或多个处理器被进一步配置成当所述使用率小于所述阈值时,断电所述多个资源的第二非零子集。
18.如权利要求10所述的设备,其中,所述一个或多个处理器被进一步配置成随时间动态地将所述阈值设定为不同值来控制功耗。
19.一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质具有在其上存储的指令,当所述指令被执行时,使一个或多个处理器执行下述:
确定多个资源的第一非零子集的使用率,根据温度计数据结构,分配和释放所述多个资源;
比较所述多个资源的第一非零子集的使用率与分隔所述多个资源的第一非零子集和所述多个资源的第二非零子集的阈值;以及
至少基于所述比较,加电所述多个资源的第二非零子集;
其中所述温度计数据结构包括用于所述多个资源的每一个的各个位,所述各个位的每一个表示是否所述多个资源的相应一个被分配给请求单元或者可用于分配给请求单元。
CN201510795415.7A 2014-11-18 2015-11-18 用于设备中的电源管理的资源分配和重新分配 Active CN105607721B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/546,914 US9417961B2 (en) 2014-11-18 2014-11-18 Resource allocation and deallocation for power management in devices
US14/546,914 2014-11-18

Publications (2)

Publication Number Publication Date
CN105607721A CN105607721A (zh) 2016-05-25
CN105607721B true CN105607721B (zh) 2018-10-09

Family

ID=55132624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510795415.7A Active CN105607721B (zh) 2014-11-18 2015-11-18 用于设备中的电源管理的资源分配和重新分配

Country Status (10)

Country Link
US (1) US9417961B2 (zh)
JP (1) JP6250613B2 (zh)
KR (1) KR101876001B1 (zh)
CN (1) CN105607721B (zh)
AU (1) AU2015258208B2 (zh)
CA (1) CA2911982A1 (zh)
DE (1) DE102015014851B4 (zh)
FR (1) FR3028656A1 (zh)
GB (1) GB2533688B (zh)
IE (1) IE20150399A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104348764B (zh) * 2013-07-31 2017-09-19 国际商业机器公司 在数据接收链路中分配计算单元的方法和装置
US9910465B2 (en) * 2014-11-11 2018-03-06 Microsoft Technology Licensing, Llc Covered radius hinge
US9625954B2 (en) 2014-11-26 2017-04-18 Microsoft Technology Licensing, Llc Multi-pivot hinge
US9851759B2 (en) 2014-12-31 2017-12-26 Microsoft Technology Licensing, Llc Multi-pivot hinge cover
US10174534B2 (en) 2015-01-27 2019-01-08 Microsoft Technology Licensing, Llc Multi-pivot hinge
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
US9720604B2 (en) * 2015-08-06 2017-08-01 Sandisk Technologies Llc Block storage protocol to RAM bypass
US10162389B2 (en) 2015-09-25 2018-12-25 Microsoft Technology Licensing, Llc Covered multi-axis hinge
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
CN107733552B (zh) 2016-08-12 2020-04-03 华为技术有限公司 数据传输方法和装置
US10437293B2 (en) 2016-09-23 2019-10-08 Microsoft Technology Licensing, Llc Multi-axis hinge
US10705885B2 (en) * 2018-01-31 2020-07-07 Palo Alto Networks, Inc. Autoscaling of data processing computing systems based on predictive queue length
US11194511B2 (en) * 2018-12-31 2021-12-07 Micron Technology, Inc. Arbitration techniques for managed memory
US11237617B2 (en) * 2018-12-31 2022-02-01 Micron Technology, Inc. Arbitration techniques for managed memory
US11687277B2 (en) 2018-12-31 2023-06-27 Micron Technology, Inc. Arbitration techniques for managed memory
US11249657B2 (en) 2019-07-10 2022-02-15 Arm Limited Non-volatile storage circuitry accessible as primary storage for processing circuitry
US11665776B2 (en) 2019-12-27 2023-05-30 Arteris, Inc. System and method for synthesis of a network-on-chip for deadlock-free transformation
US11657203B2 (en) 2019-12-27 2023-05-23 Arteris, Inc. Multi-phase topology synthesis of a network-on-chip (NoC)
US11558259B2 (en) 2019-12-27 2023-01-17 Arteris, Inc. System and method for generating and using physical roadmaps in network synthesis
US10990724B1 (en) 2019-12-27 2021-04-27 Arteris, Inc. System and method for incremental topology synthesis of a network-on-chip
KR20210103309A (ko) 2020-02-13 2021-08-23 삼성전자주식회사 전원 공급 회로를 포함하는 스토리지 장치 및 이의 동작 방법
US11418448B2 (en) 2020-04-09 2022-08-16 Arteris, Inc. System and method for synthesis of a network-on-chip to determine optimal path with load balancing
US11330471B2 (en) * 2020-06-22 2022-05-10 T-Mobile Usa, Inc. Simultaneous multi-path uplink transmissions to a telecommunications network
CN111951866B (zh) * 2020-10-19 2021-01-15 深圳市芯天下技术有限公司 非易失型闪存深睡眠低静态功耗的电路
US11601357B2 (en) 2020-12-22 2023-03-07 Arteris, Inc. System and method for generation of quality metrics for optimization tasks in topology synthesis of a network
US11281827B1 (en) 2020-12-26 2022-03-22 Arteris, Inc. Optimization of parameters for synthesis of a topology using a discriminant function module
US11449655B2 (en) 2020-12-30 2022-09-20 Arteris, Inc. Synthesis of a network-on-chip (NoC) using performance constraints and objectives
US11956127B2 (en) 2021-03-10 2024-04-09 Arteris, Inc. Incremental topology modification of a network-on-chip
US11960341B2 (en) * 2021-08-31 2024-04-16 Apple Inc. Power delivery reduction scheme for SoC
CN114388008B (zh) * 2022-01-14 2023-08-29 长鑫存储技术有限公司 电源控制电路及控制方法
US20230325097A1 (en) * 2022-04-12 2023-10-12 Dell Products L.P. Selective powering of storage drive components in a storage node based on system performance limits

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101622608A (zh) * 2007-12-28 2010-01-06 株式会社东芝 存储器系统
CN103984670A (zh) * 2013-02-04 2014-08-13 英特尔公司 多电压识别(vid)功率架构、数字可合成低压差调节器及用于改善功率门可靠性的装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196126A1 (en) 2002-04-11 2003-10-16 Fung Henry T. System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US6742097B2 (en) * 2001-07-30 2004-05-25 Rambus Inc. Consolidation of allocated memory to reduce power consumption
US7219249B1 (en) 2002-12-03 2007-05-15 The Research Foundation Of State University Of New York System and method for reducing power requirements of microprocessors through dynamic allocation of datapath resources
US7007183B2 (en) 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US7185215B2 (en) 2003-02-24 2007-02-27 International Business Machines Corporation Machine code builder derived power consumption reduction
US20040215912A1 (en) * 2003-04-24 2004-10-28 George Vergis Method and apparatus to establish, report and adjust system memory usage
US20060117160A1 (en) * 2004-12-01 2006-06-01 Intel Corporation Method to consolidate memory usage to reduce power consumption
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7631162B2 (en) * 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
JP2007293442A (ja) * 2006-04-21 2007-11-08 Hitachi Ltd ストレージシステム及びその制御方法
JP5057792B2 (ja) * 2007-01-29 2012-10-24 株式会社日立製作所 性能ボトルネックを緩和する機能を備えたストレージシステム
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US20090228697A1 (en) * 2008-03-07 2009-09-10 Kabushiki Kaisha Toshiba Information processing apparatus, storage drive and firmware update method
US8291245B2 (en) * 2008-04-17 2012-10-16 International Business Machines Corporation Method, apparatus and system for reducing power consumption based on storage device data migration
US8271818B2 (en) 2009-04-30 2012-09-18 Hewlett-Packard Development Company, L.P. Managing under-utilized resources in a computer
JP5091912B2 (ja) * 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
EP2476039B1 (en) * 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
CN102141943A (zh) * 2010-01-28 2011-08-03 建兴电子科技股份有限公司 闪存装置及其数据保护方法
US8213255B2 (en) * 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US9098521B2 (en) * 2010-09-15 2015-08-04 Qualcomm Incorporated System and method for managing resources and threshsold events of a multicore portable computing device
JP5633440B2 (ja) * 2011-03-17 2014-12-03 富士通株式会社 情報処理装置、電力制御方法及び電力制御プログラム
JP5576827B2 (ja) * 2011-06-03 2014-08-20 日本電信電話株式会社 サーバ管理システム、サーバ管理装置、サーバ管理方法、及びサーバ管理プログラム
JP2013149065A (ja) * 2012-01-19 2013-08-01 Nec Corp サーバ、サーバの消費電力削減方法、およびコンピュータプログラム
JP5554358B2 (ja) * 2012-03-23 2014-07-23 株式会社東芝 マルチプロセッサシステムおよび電力制御方法
JP5857849B2 (ja) * 2012-03-30 2016-02-10 富士通株式会社 ストレージ装置、起動装置決定方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101622608A (zh) * 2007-12-28 2010-01-06 株式会社东芝 存储器系统
CN103984670A (zh) * 2013-02-04 2014-08-13 英特尔公司 多电压识别(vid)功率架构、数字可合成低压差调节器及用于改善功率门可靠性的装置

Also Published As

Publication number Publication date
US20160139639A1 (en) 2016-05-19
IE20150399A1 (en) 2016-06-29
GB2533688A (en) 2016-06-29
AU2015258208A1 (en) 2016-06-02
AU2015258208B2 (en) 2017-10-19
GB2533688B (en) 2019-07-03
CA2911982A1 (en) 2016-05-18
DE102015014851A1 (de) 2016-05-19
JP2016105273A (ja) 2016-06-09
KR101876001B1 (ko) 2018-07-06
GB201519886D0 (en) 2015-12-23
US9417961B2 (en) 2016-08-16
KR20160059430A (ko) 2016-05-26
FR3028656A1 (zh) 2016-05-20
DE102015014851B4 (de) 2020-07-09
CN105607721A (zh) 2016-05-25
JP6250613B2 (ja) 2017-12-20

Similar Documents

Publication Publication Date Title
CN105607721B (zh) 用于设备中的电源管理的资源分配和重新分配
CN105653202B (zh) 一种用于逻辑存储管理的多级方案
CN103635969B (zh) 包含存储器系统控制器的设备和相关方法
CN103650054B (zh) 包含存储器系统控制器的设备和相关方法
US9575889B2 (en) Memory server
US8806090B2 (en) Apparatus including buffer allocation management and related methods
EP2396729B1 (en) Memory system and method of controlling memory system
CN103635968A (zh) 包含存储器系统控制器的设备和相关方法
CN108228473B (zh) 通过动态地传送存储器范围分配的负载平衡的方法及系统
CN113448504A (zh) 具有用于实现内部固态驱动器操作的外部软件执行的固态驱动器
CN107301134A (zh) 存储装置中的磨损均衡
CN106469126B (zh) 处理io请求的方法及其存储控制器
JP7353934B2 (ja) メモリシステムおよび制御方法
US10095432B2 (en) Power management and monitoring for storage devices
US20240037039A1 (en) Management of Programming Mode Transitions to Accommodate a Constant Size of Data Transfer between a Host System and a Memory Sub-System
US20200042066A1 (en) System and method for facilitating dram data cache dumping and rack-scale battery backup
US11422702B2 (en) Managing utilization of storage class memory (SCM) resources
Missimer et al. Telomere: Real-time NAND flash storage
CN107766262B (zh) 调节并发写命令数量的方法与装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20181127

Address after: American California

Patentee after: Western Digital Technologies, Inc.

Address before: Holland, Amsterdam

Patentee before: Hitachi Global Storage Tech Nl

TR01 Transfer of patent right