CN109471592A - 存储设备以及包括在存储设备中的控制器 - Google Patents
存储设备以及包括在存储设备中的控制器 Download PDFInfo
- Publication number
- CN109471592A CN109471592A CN201811036681.1A CN201811036681A CN109471592A CN 109471592 A CN109471592 A CN 109471592A CN 201811036681 A CN201811036681 A CN 201811036681A CN 109471592 A CN109471592 A CN 109471592A
- Authority
- CN
- China
- Prior art keywords
- controller
- power
- local control
- information
- during
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 57
- 230000015654 memory Effects 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 238000005299 abrasion Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
一种存储设备,包括:多个闪速存储器;第一局部控制器,连接到多个闪速存储器当中的第一组闪速存储器;第二局部控制器,连接到多个闪速存储器当中的第二组闪速存储器;以及全局控制器。全局控制器向第一局部控制器和第二局部控制器传送命令。第一局部控制器包括第一处理器,该第一处理器向全局控制器传送关于与在第一组闪速存储器上执行的操作相关联的命令的类型和数量的第一信息。第二局部控制器包括第二处理器,该第二处理器向全局控制器传送关于与在第二组闪速存储器上执行的操作相关联的命令的类型和数量的第二信息。
Description
本申请要求于2017年9月7日向韩国知识产权局提交的第10-2017-0114772号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用整体并入于此。
技术领域
本公开涉及一种存储设备,并且更具体地,涉及一种具有优化的性能和QoS(服务质量)的存储设备。
背景技术
已经对存储设备进行了开发以提高性能、容量和可靠性。为了提高存储设备的性能以及容量,存储设备需要大量的闪速存储器(例如,NAND闪速存储器)。近来,由于存储设备具有超高容量,所以存储设备中所包括的存储器的数量不断增加。
不同的存储设备可能具有客户所需的不同的功耗量。因此,近来,需要一种在客户所需的功耗量内最优地管理存储设备的性能和QoS(服务质量)的技术。
当执行诸如顺序读取/写入的操作时,可以同时操作大量的存储器,因此存储设备可能消耗大量的功率。存储设备需要在功耗超过存储设备的功率规格(即,客户所需的功耗)之前执行降低存储设备的性能的操作(例如,延迟操作)。关于这点,如果存储设备中所包括的所有存储器被管理为消耗相同的功率,则存在可能降低存储设备的性能(例如,处理速度)的问题。
发明内容
本公开的方面提供了一种具有优化的性能和QoS(服务质量)的存储设备。
本公开的目的不限于以上提及的目的。根据以下描述,未提及的其他目的对于本领域技术人员可以是明显的。
根据一些实施例,存储设备包括:多个闪速存储器;第一局部(local)控制器,连接到多个闪速存储器当中的第一组闪速存储器;第二局部控制器,连接到多个闪速存储器当中的第二组闪速存储器;以及全局控制器。第二组闪速存储器与第一组闪速存储器不同。全局控制器向第一局部控制器和第二局部控制器中的至少一个传送命令。第一局部控制器包括第一处理器,该第一处理器向全局控制器传送关于与在第一组闪速存储器上执行的操作相关联的命令的类型和数量的第一信息;且第二局部控制器包括第二处理器,该第二处理器向全局控制器传送关于与在第二组闪速存储器上执行的操作相关联的命令的类型和数量的第二信息。
根据一些实施例,局部控制器布置在存储设备中并且连接到全局控制器。局部控制器包括:命令接收器,从全局控制器接收一个或多个命令;处理器,在连接到局部控制器的多个闪速存储器上执行与所接收的一个或多个命令相对应的操作;以及自适应功率管理(APM),从处理器接收关于与在多个闪速存储器上执行的操作相关联的命令的数量和类型的信息。APM基于所接收的信息计算功耗。处理器向全局控制器传送关于与在多个闪速存储器上执行的操作相关联的命令的数量和类型的信息。
根据一些实施例,全局控制器布置在存储设备中并且连接到第一局部控制器和第二局部控制器,第一局部控制器和第二局部控制器在物理上彼此分离。全局控制器包括:队列区域,其中与下一周期相关联的一个或多个命令在当前周期期间被排队;功率控制器,具有分发给第一局部控制器和第二局部控制器中的每个的预定数量的功率令牌;以及命令分析器,检查关于在当前周期期间在队列区域中排队的一个或多个命令的第一个信息。功率控制器从第一局部控制器接收关于与在当前周期期间在连接到第一局部控制器的第一组闪速存储器上执行的操作相关联的命令的类型和数量的第二信息。功率控制器从第二局部控制器接收关于与在当前周期期间在连接到第二局部控制器的第二组闪速存储器上执行的操作相关联的命令的类型和数量的第三信息。第二组闪速存储器与第一组闪速存储器不同。第三信息与第一信息不同且与第二信息不同。
然而,本公开的方面不限于本文中所陈述的那些。通过参考以下给出的本公开的详细描述,本公开的上述和其他方面对于本公开所属领域的普通技术人员将变得更加明显。
附图说明
通过参考附图详细描述本公开的示例性实施例,本公开的上述的和其他的方面和特征将变得更加明显,在附图中:
图1是用于示出根据本公开的一些示例性实施例的存储设备的框图;
图2是用于示出根据本公开的一些示例性实施例的存储设备中所包括的全局控制器的框图;
图3是用于示出根据本公开的一些示例性实施例的存储设备中所包括的局部控制器的框图;
图4是用于示出根据本公开的一些示例性实施例的在存储设备中确定多个局部控制器中的每个的操作中所消耗的功率并且调整多个局部控制器中的每个的命令处理速度的方法的示例的流程图;
图5A、图5B以及图6至图8是用于示出根据本公开的一些示例性实施例的在存储设备中确定多个局部控制器中的每个的操作中所消耗的功率的方法的示例的图;
图9和图10示出了根据本公开的一些示例性实施例的用于在存储设备中当在当前周期期间在队列区域中排队的命令多于全局控制器的功率控制器中所包括的功率令牌时分发功率令牌的方法的示例;
图11和图12示出了根据本公开的一些示例性实施例的用于当识别出在存储设备中所包括的全局控制器的队列区域中不存在将在下一周期期间由第二局部控制器处理的命令时分发功率令牌的方法的示例;
图13是用于示出根据本公开的一些示例性实施例的在存储设备中从局部控制器向全局控制器传送信息的方法的示例的图;以及
图14是用于示出使用图1的SSD的服务器系统的框图。
具体实施方式
在下文中,将参考附图详细描述本公开的示例性实施例。
图1是用于示出根据本公开的一些示例性实施例的存储设备的框图。图2是用于示出根据本公开的一些示例性实施例的存储设备中所包括的全局控制器的框图。图3是用于示出根据本公开的一些示例性实施例的存储设备中所包括的局部控制器的框图。
根据本公开的一些示例性实施例的存储设备1可以是但不限于固态驱动(SSD)设备。
参考图1,根据本公开的一些示例性实施例的存储设备1包括SSD控制器100、主机接口逻辑200、随机存取存储器(RAM)缓冲器300以及多个闪速存储器410和420。图1中所示的元件对于实现存储设备1不是必要的。在一些实现方式中,存储设备1可以包括与以上列举的元件相比更多或更少的元件。
SSD控制器100可以包括处理器110、缓冲器管理器120、全局控制器130和多个局部控制器(例如,第一局部控制器140a和第二局部控制器140b)。
处理器110可以经由主机接口逻辑200从主机接收命令。处理器110可以处理所接收的命令,并且可以控制缓冲器管理器120、全局控制器130、局部控制器140a和140b等。
主机接口逻辑200可以布置在主机与SSD控制器100之间,以将命令从主机递送到SSD控制器100,或者将响应从SSD控制器100递送到主机。在本公开的一些示例性实施例中,主机接口逻辑200可以根据例如串行ATA(SATA)接口、快速PCI(PCI Express)接口、串行连接SCSI(SAS)接口等来实现。
RAM缓冲器300可以包括安装在包括DRAM(动态RAM)的SSD控制器100外部的易失性存储器。RAM缓冲器300可以用作高速缓存,或者可以用于存储关于在闪速存储器400中所存储的数据的映射信息。
多个闪速存储器410和420中的每个可以包括一个或多个闪速存储器芯片。例如,闪速存储器芯片可以是NAND闪速存储器芯片。
全局控制器130可以连接到处理器110和多个局部控制器140a和140b。
处理器110可以将从主机接口逻辑200所接收的命令传送到全局控制器130。传送到全局控制器130的命令可以包括读取命令、写入命令、擦除命令等。
根据本公开的一些示例性实施例,主机接口逻辑200可以将多个命令直接地发送到全局控制器130。
全局控制器130可以将经由处理器110所接收的命令传送到多个局部控制器140a和140b中的每个。全局控制器130可以确定多个局部控制器140a和140b中的每个中的功耗。当全局控制器130经由处理器110接收与第二周期相关联的一个或多个命令时,全局控制器130可以在其中对命令进行排队。下面将参考图2对其进行详细描述。
参考图2,全局控制器130可以包括队列区域131、命令分析器132、处理器133和功率控制器134。图2中所示的元件对于实现全局控制器130不是必要的。在一些实现方式中,全局控制器130可以包括与以上列举的元件相比更多或更少的元件。
队列区域131可以是其中与第二周期相关联的一个或多个命令在第一周期(例如,当前周期)期间被排队的区域,第二周期是第一周期的下一周期的。例如,如果全局控制器130在第一周期期间接收与第二周期相关联的一个或多个命令,则其可以在第一周期期间将命令存储在队列区域131中。
命令分析器132可以检查关于在第一周期期间在队列区域131中等待的一个或多个命令的信息。
通过命令分析器132检查的信息可以包括:关于在第一周期期间在队列区域131中排队的命令的数量的信息、关于在第一周期期间在队列区域131中排队的命令的类型的信息以及关于在第二周期期间处理的每个命令的局部控制器的信息。
处理器133可以负责在全局控制器130上执行的整体操作,并且可以控制队列区域131、命令分析器132和功率控制器134。
处理器133可以在第二周期期间向多个局部控制器140a和140b中的每个传送在第一周期期间在队列区域131中排队的命令。要传送到第一局部控制器140a的命令可以是将在第二周期期间在第一局部控制器140a处理的命令,并且要传送到第二局部控制器140b的命令可以是将在第二周期期间在第二局部控制器140b处理的命令。
功率控制器134可以从第一局部控制器140a接收关于与在第一周期期间在连接到第一局部控制器140a的多个闪速存储器上执行的操作相关联的命令的类型和数量的第一信息,以及从第二局部控制器140b接收关于与在第一周期期间在连接到第二局部控制器140b的多个闪速存储器上执行的操作相关联的命令的类型和数量的第二信息。
命令分析器132可以识别关于在第一周期期间在队列区域131中排队的命令的类型和数量的第三信息。第三信息可以与第一信息和第二信息不同。
功率控制器134可以基于上述的第一信息、第二信息和第三信息,来确定在第二周期期间在第一局部控制器140a的操作中要消耗的功率以及在第二周期期间在第二局部控制器140b中要消耗的功率。
根据本公开的一些示例性实施例,功率控制器134可以具有预定数量的功率令牌,并且可以使用这些功率令牌来确定在第二周期期间在多个局部控制器140a和140b中的每个的操作中要消耗的功率。
例如,功率控制器134可以基于上述第一信息、第二信息和第三信息来在多个局部控制器140a和140b上分发功率令牌。上述功率令牌可以是表示在第二周期期间在多个局部控制器140a和140b中的每个的操作中要消耗的功率的虚拟资源。
当功率控制器134在第一周期期间向第一局部控制器140a和第二局部控制器140b分发了不同数量的功率令牌时,在第二周期期间由第一局部控制器140a和第二局部控制器140b的操作消耗的功率可以依赖于所分发的功率令牌的数量而变化。例如,功率控制器134可以分发功率令牌,以使得将在第二周期期间处理更多操作的局部控制器之一的操作可以消耗更多功率。
功率控制器134可以包括映射表,该映射表使用上述第三信息来指示在第二周期期间要消耗的功率。例如,功率控制器134可以在其中存储指示根据读取命令的功耗、根据写入命令的功耗以及根据擦除命令的功耗的映射表。应该理解,这仅是说明性的,并且映射表可以依赖于命令的类型和数量指示功耗。
根据本公开的一些示例性实施例,当功率控制器134基于第一信息、第二信息和第二信息来在多个局部控制器140a和140b上分发功率令牌时,功率控制器134可以使用上述映射表。
再次参考图1,多个闪速存储器410和420可以分别地连接到多个局部控制器140a和140b。例如,多个闪速存储器410、420当中的第一组闪速存储器410可以连接到第一局部控制器140a。多个闪速存储器410、420当中的第二组闪速存储器420可以连接到第二局部控制器140b。在多个闪速存储器中所包括的存储器当中,第二组闪速存储器420可以包括与第一组闪速存储器410不同的闪速存储器。
参考图3,第一局部控制器140a可以包括命令接收器141a、处理器142a以及自适应功率管理(APM)143a。图3中所示的元件对于实现第一局部控制器140a不是必要的。在一些实现方式中,第一局部控制器140a可以包括与以上列举的元件相比更多或更少的元件。应注意,尽管为了便于说明仅描述了第一局部控制器140a,但是根据本公开的一些示例性实施例的存储设备1中所包括的所有局部控制器可具有与第一局部控制器140a相同的元件。
命令接收器141a可以在第一周期期间从全局控制器130接收一个或多个命令。命令接收器141a可以从全局控制器130接收功率令牌。
处理器142a可以在第一周期期间从命令接收器141a接收一个或多个命令。处理器142a可以在连接到第一局部控制器140a的第一组闪速存储器410上执行与在第一周期期间所接收的一个或多个命令相对应的操作。
根据本公开的一些示例性实施例,由处理器142a在第一组闪速存储器410上执行的操作可以包括基于经由主机接收的命令执行的操作以及用于处理内部IO的操作,诸如垃圾收集或磨损均衡(wear leveling)。
处理器142a可以周期性地或非周期性地将关于与在第一组闪速存储器410上执行的操作相关联的命令的信息传送到APM 143a和全局控制器130。例如,关于与在第一组闪速存储器410上执行的操作相关联的命令的信息可以包括关于经由主机接收的命令的类型和数量的信息以及关于用于处理内部IO的命令的类型和数量的信息。经由主机接收的命令和用于处理内部IO的命令可以包括读取命令、写入命令和擦除命令。
APM 143a可以经由处理器142a来接收关于与在第一周期期间在第一组闪速存储器410上执行的操作相关联的命令的类型和数量的信息,并且可以基于所接收的信息计算在第一周期期间在第一组闪速存储器410上执行的操作所消耗的功率。
功耗可以通过以下等式1计算:
[等式1]
P=Ip+(Rcount*Rpower+Ecount*Epower+Wcount*Wpower)
其中,P可以表示与在当前周期期间在连接到第一局部控制器140a的第一组闪速存储器410上执行的操作相关联地消耗的功率值,Ip可以表示与局部控制器140a接收的命令无关地、在当前周期期间由局部控制器140a所消耗的空闲功率的值,Rcount可以表示读取命令的数量,Ecount可以表示擦除命令的数量,Wcount可以表示写入命令的数量,Rpower可以表示针对单个读取命令、当第一局部控制器140a在当前周期期间在第一组闪速存储器410上执行操作时要消耗的功率值,Epower可以表示针对单个擦除命令、当第一局部控制器140a在当前周期期间在第一组闪速存储器410上执行操作时要消耗的功率值,以及Wpower可以表示针对单个写入命令、当第一局部控制器140a在当前周期期间在第一组闪速存储器410上执行操作时要消耗的功率值。Ip、Rpower、Epower和Wpower的值可以预先存储在APM143a中。
根据本公开的一些示例性实施例,APM 143a可以预先存储用于基于关于经由处理器133接收的命令的数量和类型的信息来提取功耗的映射表。APM 143a可以使用上述映射表来计算第一周期期间的功耗。
根据本公开的一些示例性实施例,APM 143a可以检查从全局控制器130接收的功率令牌的数量。通过检查这样的功率令牌的数量,APM 143a可以检查在第一周期期间对于第一局部控制器140a可用的功率。APM 143a可以基于检查的功率和根据等式1所计算出的当前周期期间要消耗的功率,来调整第一局部控制器140a的命令处理速度。
例如,当APM 143a识别出与接收到的功率令牌的数量相对应的功率是12W时,如果通过等式1所计算出的当前周期期间要消耗的功率超过12W,则可以降低命令处理速度;反之,如果通过等式1所计算出的当前周期期间要消耗的功率小于12W,则可以提高命令处理速度。
如上所述,APM 143a实时地预测功耗,如果预测功率小于分配给第一局部控制器140a的功率则提高命令处理速度,而如果预测功率大于分配给第一局部控制器140a的功率则降低命令处理速度,以使得局部控制器自身可以自动调整其性能。
图4是示出根据本公开的一些示例性实施例的在存储设备中确定多个局部控制器中的每个中的操作消耗的功率并且调整多个局部控制器中的每个的命令处理速度的方法的示例的流程图。图5A、图5B以及图6至图8是用于示出根据本公开的一些示例性实施例的在存储设备中确定多个局部控制器中的每个中的操作消耗的功率的方法的示例的图。
全局控制器130可以在第一周期之前将一个或多个命令排队在其中所包括的队列区域131中,将在描述图4的步骤S101之前参考图5A和图5B对其进行描述。
参考图5A,主机接口逻辑200可以在第一周期之前将与第一周期相关联的多个命令500发送到全局控制器130。这里,多个命令500可以包括与将在第一周期期间在第一局部控制器140a执行的操作相关联的命令510,以及与将在第一周期期间在第二局部控制器140b执行的操作相关联的命令520。
在全局控制器130中所包括的功率控制器134可以具有预定数量的功率令牌600。例如,功率控制器134可以具有六个功率令牌600。应当理解,功率令牌600的数量仅是便于说明的示例,而不限于六个。
参考图5B,全局控制器130中所包括的队列区域131可以对从主机接口逻辑200接收的多个命令500进行排队。
全局控制器130中所包括的功率控制器134可以检查关于在队列区域131中排队的多个命令500的信息。关于多个命令500的信息可以包括关于在队列区域131中排队的多个命令500的数量的信息、关于在队列区域131中排队的多个命令500的类型的信息以及关于将在第一周期期间处理在队列区域131中排队的多个命令中的每个的局部控制器的信息。
例如,功率控制器134可以识别出在队列区域131中存在将在第一周期期间在第一局部控制器140a处理的三个读取命令。另外,功率控制器134可以识别出在队列区域131中存在将在第一周期期间在第二局部控制器140b处理的三个读取命令。
功率控制器134可以以瓦特(Watt)为单位来预测当在第一周期期间在第一局部控制器140a处对三个读取命令进行处理时的功耗。功率控制器134可以以瓦特为单位来预测当在第一周期期间在第二局部控制器140b对三个读取命令进行处理时的功耗。
如果功率控制器134基于预测信息识别出在第一周期期间第一局部控制器140a的操作消耗的功率等于第二局部控制器140b的操作消耗的功率,则其可以向第一局部控制器140a和第二局部控制器140b分发相同数量的功率令牌600。例如,如图5B的示例中那样,如果功率控制器134预测在第一周期期间第一局部控制器140a的操作消耗的功率等于第二局部控制器140b的操作消耗的功率,则其可以向第一局部控制器140a分发三个功率令牌610并且向第二局部控制器140b分发三个功率令牌620。
根据本公开的一些其他示例性实施例,如果功率控制器134基于预测信息预测出在第一周期期间第一局部控制器140a的操作消耗的功率与第二局部控制器140b的操作消耗的功率不同,则其可以分发功率令牌600,使得分发给第一局部控制器140a的功率令牌的数量不同于分发给第二局部控制器140b的功率令牌的数量。例如,如果功率控制器134基于预测信息预测出在第一周期期间第一局部控制器140a的操作消耗的功率大于第二局部控制器140b的操作消耗的功率,则与第二局部控制器140b相比其可以向第一局部控制器140a分发更多的功率令牌600。
参考图4,在存储设备1中所包括的全局控制器130可以在第一周期期间向第一局部控制器140a和第二局部控制器140b传送与第一周期相关联的一个或多个命令500和至少一个功率令牌600(步骤S101)。
例如,参考图6,在第一周期期间,在全局控制器130中所包括的处理器133可以向第一局部控制器140a发送命令510和功率令牌610,并且向第二局部控制器140b发送命令520和功率令牌620。传送到第一局部控制器140a的命令510的数量可以等于图5B中分发给第一局部控制器140a的功率令牌610的数量。同样地,传送到第二局部控制器140b的命令520的数量可以等于图5B中分发给第二局部控制器140b的功率令牌610的数量。
例如,如果已经将三个功率令牌610分发给第一局部控制器140a,则处理器133可以将三个命令510传送到第一局部控制器140a。另外,如果已经将三个功率令牌620分发给第二局部控制器140b,则处理器133可以将三个命令520传送到第二局部控制器140b。在这种情况下,处理器133可以在第一周期期间将功率令牌610连同命令510和功率令牌620连同命令520分别地传送到第一局部控制器140a和第二局部控制器140b。
再次参考图4,第一局部控制器140a可以向全局控制器130传送关于与在第一周期期间在连接到第一局部控制器140a的第一组闪速存储器410上执行的操作相关联的命令510的类型和数量的第一信息(步骤S102)。另外,第二局部控制器140b可以向全局控制器130传送关于与在第一周期期间在连接到第二局部控制器140b的第二组闪速存储器420上执行的操作相关联的命令520的类型和数量的第二信息(步骤S103)。
例如,参考图7,在第一局部控制器140a中所包括的第一处理器142a可以使用在第一周期期间所接收到的命令510向全局控制器130传送关于与在连接到第一局部控制器140a的第一组闪速存储器410上执行的操作相关联的命令510的类型和数量的第一信息。在这种情况下,第一处理器142a还可以将第一信息传送到第一APM 143a。
此外,在第二局部控制器140b中所包括的第二处理器142b可以使用在第一周期期间所接收到的命令520向全局控制器130传送关于与在连接到第二局部控制器140b的第二组闪速存储器420上执行的操作相关联的命令520的类型和数量的第二信息。在这种情况下,第二处理器142b还可以将第二信息传送到第二APM 143b。
再次参考图4,第一局部控制器140a可以计算第一周期期间由第一局部控制器140a的操作消耗的第一功率(步骤S104)。第二局部控制器140b可以计算在第一周期期间由第二局部控制器140b的操作消耗的第二功率(步骤S105)。
例如,再次参考图7,在第一局部控制器140a中所包括的第一APM 143a可以基于从第一处理器142a接收的第一信息计算第一功率,该第一功率是在第一周期期间第一局部控制器140a对第一组闪速存储器410执行操作的功耗。在第二局部控制器140b中所包括的第二APM 143b可以基于从第二处理器142b接收的第二信息来计算第二功率,该第二功率是在第一周期期间第二局部控制器140b对第二组闪速存储器420执行操作的功耗。
返回到图4,第一局部控制器140a可以检查在步骤S104中所计算出的第一功率和在步骤S101中所接收的功率令牌610的数量,并且可以基于所计算出的第一功率和令牌610的数量来调整在第一周期期间第一局部控制器140a的命令处理速度(步骤S106)。另外,第二局部控制器140b可以检查在步骤S105中所计算出的第二功率和在步骤S101中所接收的功率令牌620的数量,并且可以基于所计算出的第二功率和令牌620的数量来调整在第一周期期间第二局部控制器140b的命令处理速度(步骤S107)。
再次参考图7,包括在第一局部控制器140a中的第一APM 143a可以识别出在第一周期期间与命令510一起接收的功率令牌610的数量。例如,第一APM 143a可以识别出在第一周期期间与命令510一起接收了三个功率令牌610。第一APM 143a可以预先在其中存储映射表,该映射表指示与所接收的功率令牌的各自数量相对应的功率。第一APM 143a可以使用映射表识别出与所接收的令牌610的数量相对应的第一功率。
如果在图4的步骤S104中所计算出的功耗超过第一功率,则第一APM143a可以延迟在第一周期期间在第一局部控制器140a处所接收的命令510,可以改变提供给第一局部控制器140a的时钟,或者可以限制在第一周期期间第一局部控制器140a在其上执行操作的第一组闪速存储器410的存储体的数量,从而降低第一局部控制器140a的命令处理速度。
另一方面,如果在图4的步骤S104中所计算出的功耗小于第一功率,则第一APM143a可以不延迟在第一周期期间在第一局部控制器140a处所接收的命令510,可以改变提供给第一局部控制器140a的时钟,或者可以不限制在第一周期期间第一局部控制器140a在其上执行操作的第一组闪速存储器410的存储体的数量,从而提高第一局部控制器140a的命令处理速度。
以与第一局部控制器140a在图4的步骤S106中调整第一局部控制器140a的命令处理速度相同的方式,第二局部控制器140b可以在图4的步骤S107中调整第二局部控制器140b的命令处理速度,并且因此,将省略其详细描述。
第一APM 143a和第二APM 143b(参见图7)实时地预测功耗,如果预测功率小于分配给第一局部控制器140a和第二局部控制器140b中的每个的功率,则提高命令处理速度,而如果预测功率大于分配给第一局部控制器140a和第二局部控制器140b中的每个的功率,则降低命令处理速度,使得局部控制器140a、140b自身可以自动调整其性能。
在步骤S108中,全局控制器130可以在第一周期期间从主机接口逻辑200接收与作为第一周期的下一周期的第二周期相关联的多个命令。另外,全局控制器130可以对在步骤S108中所接收的与第二周期相关联的多个命令进行排队。全局控制器130可以在步骤S102至S107之后执行步骤S108,但是这不是限制性的。例如,全局控制器130可以与步骤S102至S107同时或在步骤S102至S107之前执行步骤S108。下面将更详细地描述步骤S108。
再次参考图6,全局控制器130可以在第一周期期间从主机接口逻辑接收与第二周期相关联的多个命令501。多个命令501可以包括与将在第二周期期间在第一局部控制器140a执行的操作相关联的命令511,以及与将在第二周期期间在第二局部控制器140b执行的操作相关联的命令521。
再次参考图7,在全局控制器130中所包括的队列区域131在第一周期期间可以对命令511和命令521进行排队,命令511与将在第二周期期间在第一局部控制器140a执行的操作相关联,命令521与将在第二周期期间在第二局部控制器140b执行的操作相关联。
再次参考图4,全局控制器130可以识别出关于在第一周期期间在队列区域131中排队的命令501的第三信息,并且可以基于第一信息、第二信息和第三信息将功率令牌分发给第一局部控制器140a和第二局部控制器140b(步骤S109)。第三信息可以包括关于在第一周期期间在队列区域131中排队的命令501的数量的信息、关于在第一周期期间在队列区域131中排队的命令501的类型的信息以及关于将在第二周期期间处理在第一周期期间在队列区域131中排队的命令501中的每个的局部控制器140a、140b的信息。
当全局控制器130基于第一信息和第二信息识别出在第一周期期间第一局部控制器140a的操作消耗的功率等于第二局部控制器140b的操作消耗的功率时,全局控制器130基可以基于第三信息来分发功率令牌。
再次参考图7,功率控制器134可以基于第三信息识别出在第一周期期间在队列区域131中排队的命令501当中的四个读取命令将在第二周期期间在第一局部控制器140a处被处理。另外,功率控制器134可以基于第三信息识别出在第一周期期间在队列区域131中排队的命令501当中的两个读取命令将在第二周期期间在第二局部控制器140b处被处理。
在全局控制器130中所包括的功率控制器134可以基于第一信息识别出在第一周期期间在第一局部控制器140a处通过三个读取命令执行操作。另外,功率控制器134可以基于第二信息识别出在第一周期期间在第二局部控制器140b处通过三个读取命令执行操作。功率控制器134可以基于第一信息和第二信息计算出在第一局部控制器140a和第二局部控制器140b中的每个的操作在第一周期期间消耗的功率。
当功率控制器134识别出第一局部控制器140a的操作消耗的功率等于第二局部控制器140b的操作消耗的功率时,功率控制器134可以向第一局部控制器140a分发四个功率令牌611(其等于将在第二周期期间在第一局部控制器140a处理的命令511的数量),并且向第二局部控制器140b分发两个功率令牌621(其等于将在第二周期期间在第二局部控制器140b处理的命令521的数量)。
参考图4,全局控制器130可以在第二周期期间向第一局部控制器140a和第二局部控制器140b传送与第二周期相关联的一个或多个命令511、521和功率令牌611、621(S110)。
例如,参考图8,在第二周期期间,在全局控制器130中所包括的处理器133可以向第一局部控制器140a传送与第二周期相关联的命令511和功率令牌611,并且向第二局部控制器140b传送与第二周期相关联的命令521和功率令牌621。传送到第一局部控制器140a的命令511的数量可以等于分发给第一局部控制器140a的功率令牌611的数量。同样地,传送到第二局部控制器140b的命令521的数量可以等于分发给第二局部控制器140b的功率令牌621的数量。
例如,如果已经将四个功率令牌611分发给第一局部控制器140a,则处理器133可以将四个命令511传送到第一局部控制器140a。另外,如果已经将两个功率令牌621分发给第二局部控制器140b,则处理器133可以将两个命令521传送到第二局部控制器140b。在这种情况下,处理器133可以在第二周期期间将与第二周期相关联的功率令牌611和621连同命令511和521分别地传送到第一局部控制器140a和第二局部控制器140b。
图9和图10示出了根据本公开的一些示例性实施例的用于当在当前周期期间在队列区域中131排队的命令数量多于由存储设备中所包括的全局控制器的功率控制器处理的功率令牌时分发功率令牌的方法的示例。为简洁起见,将关注于与以上参考图1至图8所描述的示例性实施例的差别来进行描述;并且将省略冗余的描述。
参考图9和10,在全局控制器130中所包括的队列区域131可以包括在第一周期期间由全局控制器130接收的或评估的与第二周期相关联的命令501。命令501可以包括将在第二周期期间在第一局部控制器140a处理的四个第一命令511以及将在第二周期期间在第二局部控制器140b处理的三个第二命令521。在以下描述中,假设第一命令511和第二命令521为相同类型。
全局控制器130可以从第一局部控制器140a接收第一信息,并且从第二局部控制器140b接收第二信息。另外,功率控制器134可以识别出关于在队列区域131中排队的命令501的第三信息。上面已经参考图1至图8描述了第一信息、第二信息和第三信息,并且因此将不再详细描述。
当功率控制器134基于第三信息识别出七个命令501(其数量多于功率控制器134拥有的六个功率令牌600)在第一周期期间在队列区域131中排队时,功率控制器134可以基于第一信息和第二信息计算出在第一周期期间在第一局部控制器140a的操作消耗的第一功率和在第二局部控制器140b的操作消耗的第二功率。然后,功率控制器134可以将更多功率令牌600分发给在第一周期期间其操作消耗更多功率的局部控制器之一。
用于分发功率令牌600的算法可以预先存储在功率控制器134中。
例如,参考图9,当功率控制器134基于第一信息和第二信息识别出第二功率的大小大于第一功率的大小时,功率控制器134可以将三个功率令牌611分发给第一局部控制器140a并且将三个功率令牌621分发给第二局部控制器140b。在该示例中,全局控制器130可以在第二周期期间将三个命令511和三个功率令牌611传送到第一局部控制器140a并且将三个命令521和三个功率令牌621传送到第二局部控制器140b,以及可以在第二周期期间将与在第二周期期间在第一局部控制器140a要执行的操作相关联的命令511中的一个排队在队列区域131中。
对于另一个示例,参考图10,当功率控制器134基于第一信息和第二信息识别出第一功率的大小大于第二功率的大小时,功率控制器134可以将四个功率令牌611分发给第一局部控制器140a并且将两个功率令牌621到第二局部控制器140b。在该示例中,全局控制器130可以在第二周期期间将四个命令511和四个功率令牌611传送到第一局部控制器140a并且将两个命令521和两个功率令牌621传送到第二局部控制器140b,以及可以在第二周期期间将与在第二周期期间在第二局部控制器140b要执行的操作相关联的命令521中的一个排队在队列区域131中。
图11和图12示出了根据本公开的一些示例性实施例的用于当识别出在存储设备1中所包括的全局控制器130的队列区域131中不存在将在下一周期期间由第二局部控制器140b处理的命令521时分发功率令牌600的方法的示例。为简洁起见,将关注于与以上参考图1至图10所描述的示例性实施例的差别来进行描述;并且将省略冗余的描述。
参考图11和图12,在第一周期期间,在全局控制器130中所包括的队列区域131可以包括与第二周期相关联的命令501。在命令501中,可以存在将在第二周期期间在第一局部控制器140a处理的四个第一命令511,并且可以不存在将在第二周期期间在第二局部控制器140b处理的第一命令521。
全局控制器130可以从第一局部控制器140a接收第一信息,并且从第二局部控制器140b接收第二信息。另外,功率控制器134可以识别关于在队列区域131中排队的命令501的第三信息。上面已经参考图1至图8描述了第一信息、第二信息和第三信息,并且因此,将不再详细描述。
当功率控制器134基于第三信息识别出在第一周期期间在队列区域131中排队的命令501当中不存在将在第二周期期间由第二局部控制器140b处理的命令521时,功率控制器134可以考虑到第二信息来将功率令牌621分发给第二局部控制器。
例如,参考图11,如果功率控制器134基于第二信息在第一周期识别出期间在第二局部控制器140b处没有执行操作,则功率控制器134可以不将功率令牌621分发到第二局部控制器140b。然后,功率控制器134可以将所有功率令牌611分发给第一局部控制器140a。在第二周期期间,当全局控制器130将与第二周期相关联的命令511发送到第一局部控制器140a时,全局控制器130可以将数量大于命令511的功率令牌611发送到第一局部控制器140a。然后,第一局部控制器140a识别出功率令牌611的数量大于接收到的命令511的数量,并且第一局部控制器140a可以在存储设备1的功率规格限制内消耗尽可能多的功率以快速处理与第二周期相关联的操作。
对于另一个示例,参考图12,如果基于第二信息第一周期期间识别出在存在在第二局部控制器140b执行的操作,则功率控制器134可以将一个或多个功率令牌621分发给第二局部控制器140b。在该示例中,全局控制器130可以在第二周期期间将功率令牌621传送到第二局部控制器140b,而不传送命令521。这是因为第二局部控制器140b在仅接收到功率令牌621的第二周期期间需要处理内部IO,例如垃圾收集和磨损均衡。
根据本公开的一些示例性实施例,当功率控制器134基于第三信息识别出在第一周期期间在队列区域131中排队的命令501当中不存在将在第二周期期间由第一局部控制器140a处理的命令511时,功率控制器134可以考虑第一信息来将功率令牌611分发给第一局部控制器。上面已经参考图11和图12描述了这点,并且因此,将不再详细描述。
图13是用于示出根据本公开的一些示例性实施例的在存储设备中从局部控制器向全局控制器传送信息的方法的示例的图。虽然图13仅描绘了第一局部控制器140a,但是图13中描述的实施例可以同样地应用于第二局部控制器140b。
参考图13,SSD控制器100可以包括硬件引脚(pin)150。硬件引脚150可以包括通用输入/输出(GPIO)。
第一局部控制器140a可以向硬件引脚150传送关于与在当前周期期间在连接到第一局部控制器140a的多个闪速存储器上执行的操作相关联的命令的类型和数量的信息。硬件引脚150可以接收和存储信息。
全局控制器130可以以预定时间间隔(例如,100ms)检查硬件引脚150。如果硬件引脚150具有信息,则全局控制器130可以接收存储在硬件引脚150中的信息。
根据上述实施例,可以解决在局部控制器140a向全局控制器130传送信息时全局控制器130不能向局部控制器140a传送命令的问题,当经由相同线路全局控制器130向局部控制器140a传送命令并且局部控制器140a向全局控制器130传送信息时,上述问题发生。
根据本公开的一些示例性实施例,全局控制器130可以经由与在其上向局部控制器140a传送命令的线路不同的线路,来从第一局部控制器140a接收关于与在连接到第一局部控制器140a的多个闪速存储器410上执行的操作相关联的命令的类型和数量的信息。
图14是用于说明使用图1的SSD的服务器系统的框图。
参考图14,服务器系统70可以包括服务器720,以及存储驱动服务器720所需的数据的SSD 740。SSD 740包括与图1中所示出的存储设备1相同的配置。
服务器720可以包括应用通信模块721、数据处理模块722、升级模块723、调度中心724、本地资源模块725和维修信息模块726。
应用通信模块721可以用于使服务器720能够与连接到网络(Network)的计算系统或与SSD 740通信。应用通信模块721将经由用户接口提供的数据或信息传送到数据处理模块722。
数据处理模块722可以链接到本地资源模块725。本地资源模块725基于输入到服务器720的数据或信息向用户提供维修店/经销商/技术信息的列表。
升级模块723与数据处理模块722接口。升级模块723基于从SSD 740传送的数据或信息,利用固件、重置代码、诊断系统升级或其他信息来升级电子装置。
调度中心724允许用户基于输入到服务器720的数据或信息来实时使用选项。
维修信息模块726与数据处理模块722接口。维修信息模块726可以用于向用户提供维修相关信息(例如,音频、视频或文档文件)。数据处理模块722基于从SSD 740递送的信息来打包相关信息。然后,可以将这样的信息传送到SSD 740或者显示给用户。
根据本公开的一些示例性实施例的用于制造存储设备的装置提供包括多个物理上分离的控制器和多个闪速存储器的晶片或封装,并且对晶片或封装进行测试。所提供的晶片或封装包括:第一局部控制器,连接到多个闪速存储器当中的第一组闪速存储器;第二局部控制器,连接到多个闪速存储器当中与第一组闪速存储器不同的第二组闪速存储器;以及全局控制器,连接到第一局部控制器和第二局部控制器。全局控制器在当前周期期间向第一局部控制器和/或第二局部控制器传送命令和功率令牌。第一局部控制器向全局控制器传送关于与在当前周期期间在第一组闪速存储器上执行的操作相关联的命令的类型和数量的第一信息,基于第一信息计算在当前周期期间第一局部控制器的操作的功耗,以及基于关于所计算出的功耗的第二信息和由第一局部控制器所接收的功率令牌的数量来调整第一局部控制器的命令处理速度。第二局部控制器向全局控制器传送关于与在当前周期期间在第二组闪速存储器上执行的操作相关联的命令的类型和数量的第三信息,基于第三信息计算在当前周期期间第二局部控制器的操作的功耗,以及基于关于所计算出的功耗的第四信息和由第二局部控制器接收的功率令牌的数量来调整第二局部控制器的命令处理速度。
如本领域中传统的那样,可以根据实施所描述的一个或多个功能的块来描述和说明实施例。这些块(这里可以被称为单元或模块等)在物理上由模拟和/或数字电路(诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬接线电路等)实现,并且可以可选地由固件和/或软件驱动。例如,电路可以具体化在一个或多个半导体芯片中,或者具体化在诸如印刷电路板等的基板支撑件上。构成块的电路可以由专用硬件实现,或者由处理器(例如,一个或多个编程的微处理器和相关联电路)实现,或者执行块的一些功能的专用硬件与执行块的其他功能的处理器的组合实现。在不背离本公开的范围的情况下,实施例的每个块可以在物理上分离成两个或更多个交互且离散的块。同样地,在不背离本公开的范围的情况下,可以将实施例的块在物理上组合成更复杂的块。
尽管已经参考附图描述了本公开的示例性实施例,但是本领域技术人员将理解,在不背离本公开的技术构思或实质特征的情况下,可以进行各种修改和变更。因此,应该理解,在所有方面中,上述实施例不是限制性的而是说明性的。
Claims (20)
1.一种存储设备,包括:
多个闪速存储器;
第一局部控制器,连接到所述多个闪速存储器当中的第一组闪速存储器;
第二局部控制器,连接到所述多个闪速存储器当中的第二组闪速存储器,其中,所述第二组闪速存储器与所述第一组闪速存储器不同;和
全局控制器,配置为向所述第一局部控制器或所述第二局部控制器中的至少一个传送命令,其中:所述第一局部控制器包括第一处理器,所述第一处理器配置为向所述全局控制器传送关于与在所述第一组闪速存储器上执行的操作相关联的命令的类型和数量的第一信息;以及
所述第二局部控制器包括第二处理器,所述第二处理器配置为向所述全局控制器传送关于与在所述第二组闪速存储器上执行的操作相关联的命令的类型和数量的第二信息。
2.根据权利要求1所述的存储设备,其中:
所述全局控制器进一步包括:
队列区域,在所述队列区域中在第一周期期间对与第二周期相关联的一个或多个命令进行排队,其中,所述第二周期是所述第一周期的下一周期;和
命令分析器,配置为检查关于在所述第一周期期间在所述队列区域中排队的一个或多个命令的第三信息,以及
所述第三信息是与所述第一信息和所述第二信息不同的信息。
3.根据权利要求2所述的存储设备,其中,所述第三信息包括关于在所述第一周期期间在所述队列区域中排队的一个或多个命令的数量的信息、关于在所述第一周期期间在所述队列区域中排队的一个或多个命令的类型的信息以及关于将在所述第二周期期间处理在所述第一周期期间在所述队列区域中排队的一个或多个命令中的每个的局部控制器的信息。
4.根据权利要求2所述的存储设备,其中:
所述全局控制器进一步包括功率控制器和第三处理器,
所述功率控制器配置为:
具有预定数量的功率令牌,和
基于所述第一信息、所述第二信息和所述第三信息,来向所述第一局部控制器和所述第二局部控制器中的每个分发所述预定数量的功率令牌,
所述第三处理器配置为:
在所述第二周期期间向所述第一局部控制器传送在所述第一周期期间在所述队列区域中排队的一个或多个命令当中的第一命令,和
在所述第二周期期间向所述第二局部控制器传送在所述第一周期期间在所述队列区域中排队的一个或多个命令当中的第二命令,
所述第一命令将在所述第二周期期间在所述第一局部控制器处被处理,以及
所述第二命令将在所述第二周期期间在所述第二局部控制器处被处理。
5.根据权利要求4所述的存储设备,其中:
在所述第二周期期间传送到所述第一局部控制器的所述第一命令的数量与在所述第一周期期间分发到所述第一局部控制器的功率令牌的数量相对应,以及
在所述第二周期期间传送到所述第二局部控制器的所述第二命令的数量与在所述第一周期期间分发到所述第二局部控制器的功率令牌的数量相对应。
6.根据权利要求4所述的存储设备,其中,响应于所述功率控制器识别出在所述第一周期期间在所述队列区域中排队的命令当中不存在将在所述第二周期期间由所述第二局部控制器处理的命令,所述功率控制器进一步配置为基于所述第二信息来确定要分发到所述第二局部控制器的功率令牌的数量。
7.根据权利要求6所述的存储设备,其中,所述功率控制器进一步配置为:
响应于基于所述第二信息在所述第一周期期间识别出存在在所述第二局部控制器执行的第三操作,向所述第二局部控制器分发一个或多个功率令牌,以及
响应于基于所述第二信息在所述第一周期期间识别出不存在在所述第二局部控制器执行的第三操作,不向所述第二局部控制器分发功率令牌。
8.根据权利要求4所述的存储设备,其中:
所述第一局部控制器进一步包括第一自适应功率管理(APM),配置为从所述第一处理器接收关于与在所述第二周期期间在所述第一组闪速存储器上执行的第一操作相关联的第一命令的类型和数量的第四信息,并且基于所述第四信息来计算所述第一操作的功耗,以及
所述第二局部控制器进一步包括第二APM,配置为从所述第二处理器接收关于与在所述第二周期期间在所述第二组闪速存储器上执行的第二操作相关联的第二命令的类型和数量的第五信息,并且基于所述第五信息来计算所述第二操作的功耗。
9.根据权利要求8所述的存储设备,其中:
所述第一APM进一步配置为基于所述第一操作的功耗和分发到所述第一局部控制器的功率令牌的数量,来调整所述第一局部控制器的命令处理速度,以及
所述第二APM进一步配置为基于所述第二操作的功耗和分发到所述第二局部控制器的功率令牌的数量,来调整所述第二局部控制器的命令处理速度。
10.一种布置在存储设备中并且连接到全局控制器的局部控制器,所述局部控制器包括:
命令接收器,配置为从所述全局控制器接收一个或多个命令;
处理器,配置为在连接到所述局部控制器的多个闪速存储器上执行与所述一个或多个命令相对应的操作;以及
自适应功率管理(APM),配置为从所述处理器接收关于与在所述多个闪速存储器上执行的操作相关联的命令的数量和类型的信息,并且基于所述信息来计算功耗,其中
处理器进一步配置为向所述全局控制器传送关于与在所述多个闪速存储器上执行的操作相关联的命令的数量和类型的信息。
11.根据权利要求10所述的局部控制器,其中:
所述命令接收器进一步配置为从所述全局控制器接收功率令牌,以及
APM进一步配置为基于所述功耗和所述功率令牌的数量来调整所述局部控制器的命令处理速度。
12.根据权利要求11所述的局部控制器,其中,所述APM进一步配置为:
识别出与所述功率令牌的数量相对应的第一功率,
响应于确定所述功耗超过所述第一功率,来向所述一个或多个命令施加延迟,以降低所述局部控制器的命令处理速度,以及
响应于确定所述功耗低于所述第一功率,来提高所述局部控制器的命令处理速度,而没有延迟。
13.根据权利要求11所述的局部控制器,其中,所述APM进一步配置为:
识别出与所述功率令牌的数量相对应的第一功率,
响应于确定所述功耗超过所述第一功率,来改变提供到所述局部控制器的时钟,以降低所述局部控制器的命令处理速度,以及
响应于确定所述功耗低于所述第一功率,来改变提供到所述局部控制器的时钟,以提高所述局部控制器的命令处理速度。
14.根据权利要求11所述的局部控制器,其中,所述APM进一步配置为:
识别出所述功率令牌的数量相对应的第一功率,
响应于确定所述功耗超过所述第一功率,限制所述局部控制器在其上执行操作的多个闪速存储器的存储体的数量,以降低所述局部控制器的命令处理速度,以及
响应于确定所述功耗低于所述第一功率,提高所述局部控制器的命令处理速度,而不限制所述多个闪速存储器的存储体的数量。
15.一种布置在存储设备中并且连接到物理上彼此分离的第一局部控制器和第二局部控制器的全局控制器,所述全局控制器包括:
队列区域,在所述队列区域中在当前周期期间对与下一周期相关联的一个或多个命令进行排队;
功率控制器,具有预定数量的功率令牌并且配置为向所述第一局部控制器和所述第二局部控制器中的每个分发预定数量的功率令牌;以及
命令分析器,配置为检查关于在所述当前周期期间在所述队列区域中排队的一个或多个命令的第一信息,其中:
所述功率控制器进一步配置为:
从所述第一局部控制器接收关于与在所述当前周期期间在连接到所述第一局部控制器的第一组闪速存储器上执行的操作相关联的命令的
类型和数量的第二信息,以及
从所述第二局部控制器接收关于与在所述当前周期期间在连接到所述第二局部控制器的第二组闪速存储器上执行的操作相关联的命令的
类型和数量的第三信息,其中,所述第二组闪速存储器与所述第一组闪速存储器不同,以及
所述第三信息与所述第一信息和所述第二信息不同。
16.根据权利要求15所述的全局控制器,其中,所述第一信息包括关于在所述当前周期期间在所述队列区域中排队的一个或多个命令的数量的信息、关于在所述当前周期期间在所述队列区域中排队的一个或多个命令的类型的信息以及关于在所述下一周期期间处理所述一个或多个命令中的每个的所述第一局部控制器和所述第二局部控制器的信息。
17.根据权利要求15所述的全局控制器,进一步包括:
处理器,配置为在所述下一周期期间向所述第一局部控制器传送在所述当前周期期间在所述队列区域中排队的一个或多个命令当中的第一命令,并且在所述下一周期期间向所述第二局部控制器传送在所述当前周期期间在所述队列区域中排队的一个或多个命令当中的第二命令,其中:
所述第一命令将在所述下一周期期间在所述第一局部控制器处被处理,以及
所述第二命令将在所述下一周期期间在所述第二局部控制器处被处理。
18.根据权利要求17所述的全局控制器,其中:
所述功率控制器进一步配置为基于所述第一信息、所述第二信息和所述第三信息,来向所述第一局部控制器和所述第二局部控制器中的每个分发预定数量的功率令牌,
在所述下一周期期间被传送到所述第一局部控制器的所述第一命令的数量与在所述当前周期期间被分发到所述第一局部控制器的功率令牌的数量相对应,以及
在所述下一周期期间被传送到所述第二局部控制器的所述第二命令的数量与在所述当前周期期间被分发到所述第二局部控制器的功率令牌的数量相对应。
19.根据权利要求17所述的全局控制器,其中,响应于所述功率控制器识别出在所述当前周期期间在所述队列区域中排队的命令当中不存在将在所述下一周期期间由所述第二局部控制器处理的命令,所述功率控制器进一步配置为基于所述第三信息来确定要分发到所述第二局部控制器的功率令牌的数量。
20.根据权利要求19所述的全局控制器,其中,所述功率控制器进一步配置为:
响应于基于所述第三信息在所述当前周期期间识别出存在在所述第二局部控制器执行的第三操作,向所述第二局部控制器分发一个或多个功率令牌,以及
响应于基于所述第三信息在所述当前周期期间识别出不存在在所述第二局部控制器执行的第三操作,不向所述第二局部控制器分发功率令牌。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0114772 | 2017-09-07 | ||
KR1020170114772A KR102430209B1 (ko) | 2017-09-07 | 2017-09-07 | 저장 장치 및 저장 장치에 포함된 컨트롤러들 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109471592A true CN109471592A (zh) | 2019-03-15 |
CN109471592B CN109471592B (zh) | 2023-11-07 |
Family
ID=65518754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811036681.1A Active CN109471592B (zh) | 2017-09-07 | 2018-09-06 | 存储设备以及包括在存储设备中的控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11061580B2 (zh) |
KR (1) | KR102430209B1 (zh) |
CN (1) | CN109471592B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221775A (zh) * | 2019-05-05 | 2019-09-10 | 华为技术有限公司 | 存储系统中令牌的分配方法和装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200015260A (ko) * | 2018-08-03 | 2020-02-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN113678113A (zh) | 2019-03-29 | 2021-11-19 | 美光科技公司 | 计算存储装置与基于网络化的系统 |
US11079829B2 (en) | 2019-07-12 | 2021-08-03 | Micron Technology, Inc. | Peak power management of dice in a power network |
US11454941B2 (en) | 2019-07-12 | 2022-09-27 | Micron Technology, Inc. | Peak power management of dice in a power network |
KR102515790B1 (ko) * | 2019-11-28 | 2023-03-30 | 경희대학교 산학협력단 | 연합 학습 기반 6g 아키텍처 네트워크 시스템 및 이의 실행 방법 |
US11175837B2 (en) * | 2020-03-16 | 2021-11-16 | Micron Technology, Inc. | Quantization of peak power for allocation to memory dice |
US11307806B2 (en) * | 2020-07-22 | 2022-04-19 | Seagate Technology Llc | Controlling SSD performance by queue depth |
US11347394B2 (en) | 2020-08-03 | 2022-05-31 | Seagate Technology Llc | Controlling SSD performance by the number of active memory dies |
KR20220135786A (ko) | 2021-03-31 | 2022-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템에 포함된 복수의 메모리 장치에서 수행되는 동작에 대해 스케줄링하는 장치 및 방법 |
US12014068B2 (en) | 2021-04-27 | 2024-06-18 | Microchip Technology Inc. | System and method for double data rate (DDR) chip-kill recovery |
US11934696B2 (en) * | 2021-05-18 | 2024-03-19 | Microchip Technology Inc. | Machine learning assisted quality of service (QoS) for solid state drives |
US11843393B2 (en) | 2021-09-28 | 2023-12-12 | Microchip Technology Inc. | Method and apparatus for decoding with trapped-block management |
US11720256B2 (en) * | 2021-12-15 | 2023-08-08 | Dell Products L.P. | Maximizing power savings using IO monitoring |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959598A (zh) * | 2005-09-22 | 2007-05-09 | 株式会社日立制作所 | 存储控制装置、数据管理系统及数据管理方法 |
US20110060927A1 (en) * | 2009-09-09 | 2011-03-10 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
CN102652313A (zh) * | 2009-12-11 | 2012-08-29 | 国际商业机器公司 | 闪速存储器控制器 |
US20120317315A1 (en) * | 2011-06-08 | 2012-12-13 | Lsi Corporation | Concurrent response for device information during an initalization process for a storage device |
US20160004457A1 (en) * | 2014-07-02 | 2016-01-07 | International Business Machines Corporation | Buffered Automated Flash Controller Connected Directly to Processor Memory Bus |
CN105556493A (zh) * | 2013-09-27 | 2016-05-04 | 英特尔公司 | 用于跨设备组合存储器资源的技术 |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
US20160210074A1 (en) * | 2015-01-19 | 2016-07-21 | HGST Netherlands B.V. | Performance tuning for storage devices |
US20160224246A1 (en) * | 2015-01-30 | 2016-08-04 | Sandisk Technologies Inc. | Multi-die rolling status mode for non-volatile storage |
US9442668B1 (en) * | 2013-08-29 | 2016-09-13 | Western Digital Technologies, Inc. | Adaptive power management control with performance feedback |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003157200A (ja) | 2001-11-21 | 2003-05-30 | Mitsubishi Electric Corp | メモリ回路構成方法 |
JP4794370B2 (ja) | 2006-06-20 | 2011-10-19 | 株式会社日立製作所 | 省電力とパフォーマンスを両立したストレージシステム及び記憶制御方法 |
US7724602B2 (en) | 2007-07-10 | 2010-05-25 | International Business Machines Corporation | Memory controller with programmable regression model for power control |
US8762620B2 (en) * | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
JP5489434B2 (ja) | 2008-08-25 | 2014-05-14 | 株式会社日立製作所 | フラッシュメモリ搭載ストレージ装置 |
WO2011016081A1 (en) | 2009-08-04 | 2011-02-10 | Hitachi, Ltd. | Storage system, control method thereof, and program to adjust power consumption per workload |
KR101679359B1 (ko) | 2010-05-27 | 2016-11-25 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 제어 방법 |
KR20130127274A (ko) | 2012-05-14 | 2013-11-22 | 삼성전자주식회사 | 메모리 오퍼레이션 타이밍 제어 방법 및 이를 이용한 메모리 시스템 |
KR20140130309A (ko) | 2013-04-30 | 2014-11-10 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
KR20150014002A (ko) | 2013-07-25 | 2015-02-06 | 삼성전자주식회사 | 데이터 전송 속도 관리자를 포함하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법 |
KR101564574B1 (ko) | 2013-11-15 | 2015-11-03 | 에스케이텔레콤 주식회사 | 메모리장치 및 메모리장치의 동작 방법 |
KR102316441B1 (ko) | 2015-04-14 | 2021-10-25 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
JP2016212580A (ja) | 2015-05-07 | 2016-12-15 | 富士通株式会社 | 半導体記憶装置、半導体記憶装置の制御方法および制御プログラム |
US9684457B2 (en) * | 2015-05-21 | 2017-06-20 | Intel Corporation | Gathering sensed data from devices to manage host command transmission and cooling of the devices |
US9760311B1 (en) * | 2016-06-23 | 2017-09-12 | Sandisk Technologies Llc | Storage system and method for adaptive thermal throttling |
-
2017
- 2017-09-07 KR KR1020170114772A patent/KR102430209B1/ko active IP Right Grant
-
2018
- 2018-04-04 US US15/945,385 patent/US11061580B2/en active Active
- 2018-09-06 CN CN201811036681.1A patent/CN109471592B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959598A (zh) * | 2005-09-22 | 2007-05-09 | 株式会社日立制作所 | 存储控制装置、数据管理系统及数据管理方法 |
US20110060927A1 (en) * | 2009-09-09 | 2011-03-10 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
CN102652313A (zh) * | 2009-12-11 | 2012-08-29 | 国际商业机器公司 | 闪速存储器控制器 |
US20120317315A1 (en) * | 2011-06-08 | 2012-12-13 | Lsi Corporation | Concurrent response for device information during an initalization process for a storage device |
US9442668B1 (en) * | 2013-08-29 | 2016-09-13 | Western Digital Technologies, Inc. | Adaptive power management control with performance feedback |
CN105556493A (zh) * | 2013-09-27 | 2016-05-04 | 英特尔公司 | 用于跨设备组合存储器资源的技术 |
US20160004457A1 (en) * | 2014-07-02 | 2016-01-07 | International Business Machines Corporation | Buffered Automated Flash Controller Connected Directly to Processor Memory Bus |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
US20160210074A1 (en) * | 2015-01-19 | 2016-07-21 | HGST Netherlands B.V. | Performance tuning for storage devices |
US20160224246A1 (en) * | 2015-01-30 | 2016-08-04 | Sandisk Technologies Inc. | Multi-die rolling status mode for non-volatile storage |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221775A (zh) * | 2019-05-05 | 2019-09-10 | 华为技术有限公司 | 存储系统中令牌的分配方法和装置 |
CN110221775B (zh) * | 2019-05-05 | 2020-10-16 | 华为技术有限公司 | 存储系统中令牌的分配方法和装置 |
WO2020224531A1 (zh) * | 2019-05-05 | 2020-11-12 | 华为技术有限公司 | 存储系统中令牌的分配方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190073139A1 (en) | 2019-03-07 |
CN109471592B (zh) | 2023-11-07 |
KR102430209B1 (ko) | 2022-08-05 |
US11061580B2 (en) | 2021-07-13 |
KR20190027677A (ko) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471592A (zh) | 存储设备以及包括在存储设备中的控制器 | |
CN103370685B (zh) | 存储环境中的i/o写入的调度 | |
US20230004329A1 (en) | Managed fetching and execution of commands from submission queues | |
CN103370686B (zh) | 计算机系统和在计算系统中使用的方法 | |
CN103229125B (zh) | 机箱内的刀片服务器之间的动态功率平衡 | |
CN106844108B (zh) | 一种数据存储方法、服务器以及存储系统 | |
US8943353B2 (en) | Assigning nodes to jobs based on reliability factors | |
US8032768B2 (en) | System and method for smoothing power reclamation of blade servers | |
CN108268321A (zh) | 用于迁移工作负载的方法和机架系统 | |
CN103123604A (zh) | 跟踪数据处理系统的内存使用的方法 | |
CN106547612A (zh) | 一种多任务处理方法及装置 | |
CN104391678B (zh) | 服务器及其方法、系统及其方法 | |
US20170199694A1 (en) | Systems and methods for dynamic storage allocation among storage servers | |
US10942772B2 (en) | Dispatching jobs for execution in parallel by multiple processors | |
CN107506145B (zh) | 一种物理存储调度方法及云主机创建方法 | |
CN110213128B (zh) | 服务端口检测方法、电子设备及计算机存储介质 | |
CN103108020A (zh) | 服务协作设备、服务协作方法和计算机可读记录介质 | |
CN107728935A (zh) | 对分布式计算系统中的数据重新分区 | |
US10114438B2 (en) | Dynamic power budgeting in a chassis | |
CN104484136B (zh) | 一种可支撑高并发内存数据的方法 | |
CN104460938B (zh) | 利用存储器高速缓存在系统范围内节省电力的方法和系统 | |
CN116302453B (zh) | 量子电子混合平台的任务调度方法及装置 | |
US20170003890A1 (en) | Device, program, recording medium, and method for extending service life of memory | |
CN100397345C (zh) | 用于管理资源元素队列的方法和控制器 | |
WO2017018978A1 (en) | Scheduling jobs in a computing cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |