KR102318541B1 - 전력 소비를 제어하는 시스템 및 방법 - Google Patents

전력 소비를 제어하는 시스템 및 방법 Download PDF

Info

Publication number
KR102318541B1
KR102318541B1 KR1020160065028A KR20160065028A KR102318541B1 KR 102318541 B1 KR102318541 B1 KR 102318541B1 KR 1020160065028 A KR1020160065028 A KR 1020160065028A KR 20160065028 A KR20160065028 A KR 20160065028A KR 102318541 B1 KR102318541 B1 KR 102318541B1
Authority
KR
South Korea
Prior art keywords
operating parameters
processor
memories
operating
power consumption
Prior art date
Application number
KR1020160065028A
Other languages
English (en)
Other versions
KR20170032160A (ko
Inventor
스티븐 최인석
안병영
기양석
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20170032160A publication Critical patent/KR20170032160A/ko
Application granted granted Critical
Publication of KR102318541B1 publication Critical patent/KR102318541B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

본 발명의 실시 예에 따른 시스템은, 프로세서, 복수의 메모리들, 그리고 프로세서 및 메모리들에 연결되는 제어 회로를 포함한다. 제어 회로는, 전력 제한을 수신하고, 프로세서 및 메모리들의 전력 소비를 측정하고, 그리고 프로세서 및 메모리들의 복수의 동작 파라미터들을 반복적으로 변경하여, 시스템과 연관된 목표 기능을 전력 소비가 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화한다.

Description

전력 소비를 제어하는 시스템 및 방법{SYSTEM AND METHOD FOR CONTROLLING POWER CONSUMPTION}
본 발명은 시스템들에서 전력 소비를 제어하는 것에 관한 것으로, 더 상세하게는 스토리지 시스템들에서 전력 소비를 제어하는 것에 관한 것이다.
장치의 전력 소비는 상업 및 소비자 시장에서 주요 치수가 되고 있다. 예를 들어, 상업 데이터 센터에서, 냉각 비용은 전체 비용의 3분의 1까지 차지할 수 있다. 또한, 근래의 데이터 센서 서버들은 NVMe (NonVolatile Memory express) 장치들과 같은 고성능의 SSD (Solid State Drive)를 채용하고 있다. NVMe 장치들은 통상적으로 고성능의 CPU (Central Processing Unit) 및 대용량의 DRAM (Dynamic Random Access Memory)을 포함하며, 다른 SSD와 비교하여 더 높은 성능을 제공한다. 이러한 고성능 장치들은 더 많은 전력을 소비하며, 이는 데이터 센터 구성의 전력 소비의 대부분을 차지할 수 있다. 마찬가지로, 랩톱과 같은 소비자 모바일 장치들은 고성능 SSD를 채용하고 있다. 모바일 장치가 전원으로부터 분리된 때에, 전력 소비의 주요한 요인이 되고 있다.
SSD는 최대 열 설계 전력(TDP, Thermal Design Power)를 포함할 수 있다. 그러나, TDP는 장치가 손상되는 것을 방지하기 위해 설계 단계에서 설정되는 최대 전력 소비의 스펙(specification)이다. 온도가 TDP에 도달하면, 온도를 TDP 밑으로 유지하기 위하여 성능이 조절된다.
본 발명의 목적은 향상된 최적화 수단을 구비한 시스템 및 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른 시스템은, 프로세서, 복수의 메모리들, 그리고 프로세서 및 메모리들에 연결되는 제어 회로를 포함한다. 제어 회로는, 전력 제한을 수신하고, 프로세서 및 메모리들의 전력 소비를 측정하고, 그리고 프로세서 및 메모리들의 복수의 동작 파라미터들을 반복적으로 변경하여, 시스템과 연관된 목표 기능을 전력 소비가 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화하도록 구성된다.
본 발명의 실시 예에 따른 방법은, 제어 회로에서 전력 제한을 수신하는 단계, 제어 회로에 의해, 프로세서 및 복수의 메모리들의 전력 소비를 측정하는 단계, 그리고 제어 회로에 의해, 프로세서 및 메모리들의 동작 파라미터들을 반복적으로 변경하여, 시스템과 연관된 목표 기능을 전력 소비가 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화하는 단계를 포함한다.
본 발명의 실시 예에 따른 시스템은, 복수의 장치들, 그리고 장치들에 연결된 제어 회로를 포함하고, 제어 회로는, 전력 제한을 수신하고, 프로세서 및 메모리들의 전력 소비를 측정하고, 그리고 프로세서 및 메모리들의 복수의 동작 파라미터들을 반복적으로 변경하여, 시스템과 연관된 목표 기능을 전력 소비가 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화하도록 구성된다.
본 발명의 실시 예들에 따르면, 더 짧은 시간 내에 충분히 최적화된 동작 파라미터들로 최적화를 수행하는 시스템 및 방법이 제공된다. 따라서, 시스템 및 방법의 동작 효율이 향상된다.
도 1a는 본 발명의 실시 예들에 따른 시스템의 개념도이다.
도 1b는 본 발명의 실시 예들에 따른 제어 회로의 개념도이다.
도 2a 내지 도 2f는 본 발명의 다양한 실시 예들에 따른 반복들의 개념도이다.
도 3은 본 발명의 다른 실시 예들에 따른 휘발성 및 불휘발성 메모리를 구비한 시스템의 개념도이다.
도 4는 본 발명의 다른 실시 예들에 따른 전력 측정기를 구비한 시스템의 개념도이다.
도 5는 본 발명의 다른 실시 예들에 따른 시스템의 개념도이다.
도 6은 본 발명의 다른 실시 예들에 따른 시스템의 개념도이다.
도 7은 본 발명의 실시 예들에 따른 반복의 기술의 순서도이다.
도 8은 본 발명의 실시 예들에 따른 반복의 기술의 순서도이다.
도 9는 본 발명의 실시 예들에 따른 서버의 개념도이다.
도 10은 본 발명의 실시 예들에 따른 서버 시스템의 개념도이다.
도 11은 본 발명의 실시 예들에 따른 데이터 센터의 개념도이다.
본 발명은 시스템들에서 전력 소비를 제어하는 것에 관한 것이다. 후술되는 설명은 이 분야에 통상적인 지식을 가진 자(이하, 당업자)가 실시 예들을 실시할 수 있도록 제공된다. 실시 예들 및 일반적인 원칙들 및 특성들에 대한 다양한 변경들이 가능함은 명백하다. 실시 예들은 주로 구체적인 구현들에서 제공되는 구체적인 방법들 및 시스템들의 형태로 설명된다.
그러나, 방법들 및 시스템들은 다른 구현들에서 유효하게 동작할 수 있다. "실시 예", "일 실시 예", "다른 실시 예"와 같은 용어들은 다중의 실시 예들뿐 아니라 동일한 실시 예들을 참조할 수 있다. 실시 예들은 특정한 구성 요소들을 구비한 시스템들 그리고/또는 장치들을 참조하여 설명된다. 그러나, 시스템들 그리고/또는 장치들은 도시된 것보다 많거나 또는 그보다 적은 구성 요소들을 포함할 수 있으며, 구성 요소들의 다양한 배치 및 타입의 가변이 본 발명의 기술적 사상으로부터 멀어지지 않으며 실시될 수 있다. 실시 예들은 특정한 단계들을 구비한 구체적인 방법들을 참조하여 설명된다. 그러나, 방법 및 시스템은 상이한 그리고/또는 추가적인 단계들 및 실시 예들과 일치하기 않는 상이한 순서들을 갖는 단계들을 구비한 다른 방법들에 따라 동작할 수 있다. 따라서, 실시 예들은 도시된 구체적인 실시 예들에 한정되지 않으며, 설명된 원리들 및 특성들과 일치하는 가장 넓은 범위에 따른다.
실시 예들은 특정한 구성 요소들을 구비한 구체적인 시스템들을 참조하여 설명된다. 다른 그리고/또는 추가적인 구성 요소들 그리고/또는 다른 특성들을 구비한 시스템들의 사용이 실시 예들과 일맥상통함은 당업자에게 자명하다. 또한, 당업자는 다른 방법들 및 시스템들이 다른 구조들과 일치함을 이해할 것이다. 또한, 당업자는 방법들 및 시스템들이 다중 원소들을 구비한 메모리 시스템 구조의 사용에 적용될 수 있음을 이해할 것이다.
여기에서 사용되는 용어들, 특히 첨부된 청구범위에 사용되는 용어들은 열린 의미로 해석됨이 이해될 것이다. 예를 들어, "포함한다" 또는 "포함하는"의 용어는 "포함하지만 한정되지 않는"으로 해석되어야 한다. "구비한" 또는 "갖는"의 용어는 "적어도 구비한" 또는 "적어도 갖는"의 의미로 해석되어야 한다.
도 1a는 본 발명의 실시 예들에 따른 시스템의 개념도이다. 도 1a의 예에서, 시스템(100)은 호스트(102)와 연결된다. 시스템(100)은 프로세서(104), 다중 메모리들(106), 그리고 제어 회로(108)를 포함한다.
예시적으로, 시스템(100)은 스토리지 시스템을 포함할 수 있다. 예를 들어, 스토리지 시스템은 SAS (Serial Attached Small Computer System Interface), SATA (Serial ATA), NVMe (NonVolatile Memory express), 섬유 채널, 이더넷, RDMA (Remote Direct Memory Access) 등과 같은 통신 인터페이스를 통해 호스트(102)와 결합되도록 구성될 수 있다. 다른 예로서, 시스템(100)은 스토리지 시스템과 다를 수 있다. 여기에서 설명되는 바와 같이, 시스템(100)은 전력 소비에 영향을 주는 다중 동작 파라미터들을 갖는 구성 요소들을 구비한 시스템 및 시스템의 적어도 일부일 수 있다.
프로세서(104)는 범용 프로세서, DSP (Digital Signal Processor), 어플리케이션 특화 집적 회로, 마이크로 컨트롤러, 프로그램 가능한 논리 장치, 이산 회로들, 또는 이들의 조합들일 수 있다. 프로세서(104)는 레지스터, 캐시 메모리, 프로세싱 코어 등과 같은 내부 부분들, 그리고 어드레스 및 데이터 버스 인터페이스, 인터럽트 인터페이스 등과 같은 외부 인터페이스를 포함할 수 있다. 프로세서(104)만이 도시되어 있지만, 다중 프로세서들이 존재할 수 있다. 또한, 논리 칩셋, 허브, 메모리 제어기, 통신 인터페이스 등과 같은 다른 인터페이스 장치가 시스템(100)의 일부이며, 프로세서(104)를 내부 또는 외부 구성 요소와 연결할 수 있다.
메모리들(106)은 데이터를 저장할 수 있는 임의의 장치일 수 있다. 여기에서, 두 개의 메모리들(106)이 도시되지만, 하나보다 많은 수의 메모리들(106)이 시스템(100)에 제공될 수 있다. 메모리들(106)의 예들은 DRAM (Dynamic Random Access Memory) 모듈, DDR (Double Data Rate), DDR2, DDR3, DDR4와 같은 다양한 표준에 따른 DDR SDRAM (Synchronous DRAM), SRAM (Static RAM), 플래시, STT-MRAM (Spin Transfer Torque Magnatoregistive RAM) 또는 PRAM (Phase-change RAM)등과 같은 불휘발성 메모리를 포함할 수 있다.
제어 회로(108)는 프로세서(104) 및 메모리들(106)에 연결되는 회로이다. 제어 회로(108)는 프로세서(104)와 마찬가지로, 범용 프로세서, DSP, 응용 특화 집적 회로, 마이크로 컨트롤러, 프로그램 가능한 논리 장치, 이산 회로들, 또는 이들의 조합들일 수 있다. 아래에서 상세히 설명되는 바와 같이, 제어 회로(108)는 프로세서(104) 내에 구현될 수 있으나, 이 예에서는 프로세서(104)와 분리된 것으로 도시된다.
제어 회로(108)는 프로세서(104) 및 메모리들(106)과 인터페이스로 접속할 수 있다. 예를 들어, 제어 회로(108)는 프로세서(104) 및 메모리들(106)과 함께 공통 버스와 결합될 수 있다. 다른 예로서, 제어 회로(108)의 입력들 및 출력들은 프로세서(104) 및 메모리들(106)의 대응하는 입력들 및 출력들에 연결되거나, 중간 장치에 연결될 수 있다. 예를 들어, 제어 회로(108)는 하나 또는 그보다 많은 프로세서(104) 및 메모리들(106)에 전원 전압을 공급하도록 구성되는 하나 또는 그보다 많은 전압 조정기(regulator)를 제어하도록 구성될 수 있다. 다른 예로서, 제어 회로(108)는 프로세서(104) 및 메모리들(106)의 통신 인터페이스에 대응하는 I2C (Inter Integrated Circuit) 인터페이스와 같은 인터페이스를 포함할 수 있다. 다른 예로서, 제어 회로(108)는 프로세서(104) 및 메모리들(106)의 입력들 및 출력들에 직접 연결될 수 있다.
제어 회로(108)는 프로세서(104) 그리고/또는 메모리들(106)과 상호 작용하도록 구성될 수 있다. 더 상세하게는, 제어 회로(108)는 프로세서(104) 및 메모리들(106)로부터 전력 정보를 수신하고, 그리고 프로세서(104) 및 메모리들(106)의 다중 동작 파라미터들에 영향을 줄 수 있다. 예를 들어, 제어 회로(108)는 프로세서(104) 그리고/또는 메모리들(106)의 전력 소비를 측정(또는 추정)하도록 구성될 수 있다. 또한, 제어 회로(108)는 프로세서(104) 및 메모리들(106)의 복수의 동작 파라미터들을 반복적으로 변경하여, 시스템과 연관된 목적 기능을 전력 소비가 전력 제한과 같거나 그보다 작은 동작 상태로 최적화할 수 있다.
도 1b는 본 발명의 실시 예들에 따른 제어 회로의 개념도이다. 도 1a 및 도 1b를 참조하면, 제어 회로(108)는 전력 측정(110)을 수신하도록 구성된다. 전력 측정(110)은 프로세서(104) 그리고/또는 메모리들(106)의 전력 소비의 측정(또는 측정치)을 나타낸다. 예를 들어, 전력 측정(110)은 프로세서(104) 및 메모리들(106) 각각에 대한 전력 소비의 측정(또는 측정치)을 포함할 수 있다. 제어 회로(108)는 전력 측정(110)을 다양한 방법들로 수신할 수 있다. 예를 들어, 제어 회로(108)는 프로세서(104) 및 메모리들(106)로의 통신 인터페이스, 직접 연결들을 이용하여, 프로세서(104) 및 메모리들(106)의 전력, 온도, 전류, 그리고/또는 전압의 수치를 읽을 수 있다. 다른 예로서, 제어 회로(108)는 프로세서(104) 및 메모리들(106)의 하나 또는 그보다 많은 것의 전력 소비의 측정을 계산하도록 구성되는 산술 논리 유닛(arithmetic logic unit) 또는 다른 회로를 포함할 수 있다.
제어 회로(108)는 전력 제한(112)을 수신하도록 구성된다. 예를 들어, 제어 회로(108)가 별도의 마이크로 컨트롤러를 포함하면, 마이크로 컨트롤러는 통신 버스를 통해 구체적인 전력 레벨을 가리키는 통신을 수신할 수 있다. 이러한 통신은 프로세서(104)로부터, 또는 시스템(100) 외부의 장치로부터 수신될 수 있다. 전력 제한(112)은 제어 회로(108)의 구체적인 회로에 따라 다른 방법들로 수신될 수 있다. 예시적으로, 호스트(102)에서 실행되는 소프트웨어는 IOCTL (Input Output ConTroL)콜과 같은 시스템 콜, 또는 시스템(100)과 연관된 API (Application Programming Interface)를 통해 드러난 다른 콜을 이슈하도록 구성된다. 이러한 콜들을 통해, 호스트(102)는 전력 제한을 포함하는 커맨드를 전송할 수 있다. 예를 들어, 커맨드는 전력 제한에 대한 값을 포함할 수 있다. 다른 예로서, 커맨드는 시간 또는 클럭 정보를 전력 예산 또는 제한과 연관짓는 규칙들의 세트, 스케줄 등을 포함할 수 있다. 또한, 목표 기능 그리고/또는 다른 추가적인 것이 커맨드에 포함될 수 있다. 구체적인 예로서, 커맨드는 각각 시간, 전력 제한, 그리고 목표 기능을 포함하는 다중 엔트리들을 포함할 수 있다. 따라서, 호스트(102)는 시스템(100)의 전력 제한을 제어하고, 시스템(100)이 따라야 하는 규칙들 또는 스케줄, 및 목표 기능들을 수립할 수 있다.
제어 회로(108)는 동작 파라미터들(114)을 출력하도록 구성된다. 동작 파라미터들(114)은 프로세서(104) 그리고/또는 메모리들(106)의 파라미터들을 나타내며, 이들은 프로세서(104) 그리고/또는 메모리들(106)의 동작을 변화시키기 위해 변화될 수 있다. 예를 들어, 동작 파라미터들(114)은 성능 그리고/또는 전력 소비에 영향을 주도록 제어되는 프로세서(104) 및 메모리들(106)의 파라미터들을 포함할 수 있다. 구체적인 예로서, 제어 회로(108)는 프로세서(104) 그리고/또는 메모리들(106)의 레지스터에 기입되도록 구성될 수 있다. 다른 예로서, 제어 회로(108)는 전압 조정기에 제어 신호를 전송하여, 전압 조정기가 프로세서(104) 및 메모리들(106) 중 하나 또는 그보다 많은 것들로 다른 전압을 출력하도록 제어할 수 있다.
상술된 바와 같이, 제어 회로(108)는 프로세서(104) 및 메모리들(106)의 다중 동작 파라미터들을 반복적으로 변화시켜, 목표 기능을 최적화하도록 구성된다. 구체적으로, 이러한 최적화는 전력 제한(112)과 같거나 그보다 낮은 동작 파라미터들의 최적화된 상태를 이용한 시스템(100)의 동작으로 수행된다. 이러한 최적화는 실시간으로 수행될 수 있다. 따라서, 목표 기능은 구체적인 전력 예산의 규칙 내에서 최적화된다.
목표 기능은 최적화되는 상태들의 다양한 것들을 나타낸다. 예를 들어, 목표 기능은 시스템(100)의 성능, 시스템(100)의 내구도, 시스템(100)의 신뢰성 등을 나타낼 수 있다. 다른 예로서, 목표 기능은 입력들 및 출력들의 수, 대역폭, 레이턴시, 용량(capacity), 또는 시스템(100)의 다른 측면을 나타낼 수 있다. 목표 기능은 시스템(100)의 모든 측면 또는 그보다 적은 측면을 나타낼 수 있다. 예를 들어, 목표 기능은 메모리들(106)의 성능 또는 다른 측면을 나타낼 수 있다. 시스템(100)의 측정치는 목표 기능으로 또는 목표 기능의 일부로 사용될 수 있다.
예시적으로, 동작 파라미터들은 프로세서(104)의 적어도 하나의 동작 파라미터, 메모리들(108) 중 제1 메모리의 적어도 하나의 동작 파라미터, 그리고 메모리들(108) 중 제2 메모리의 적어도 하나의 동작 파라미터를 포함할 수 있다. 즉, 동작 파라미터들은 프로세서(104) 및 메모리들(106) 각각으로부터의 동작 파라미터들을 포함할 수 있다. 따라서, 프로세서(104) 및 메모리들(106) 각각의 동작 상태가 변화되고, 목표 기능 및 전력 소비에 영향을 줄 수 있다. 다른 예로서, 프로세서(104) 및 메모리들(106)의 일부의 동작 파라미터들은 반복을 위해 사용될 수 있다. 예를 들어, 프로세서(104) 및 메모리들(106) 중 일부의 동작 파라미터들은 반복될 수 있다. 다른 예로서, 프로세서(104) 및 메모리들(106) 각각은 반복되는 다중 동작 파라미터들을 가질 수 있다.
다중 동작 파라미터들은 반복될 수 있다. 구체적으로, 다중 동작 파라미터들이 변화되므로, 해답을 찾는 것이 어려울 수 있다. 구체적으로, 해답을 찾는 것은 NP-hard (Nonditerministic Polynomial hard) 문제이다. 따라서, 동작 파라미터들이 반복적으로 변화되어, 더 짧은 시간 내에 실질적으로 최적의 해답이 달성될 수 있다. 즉, 일부 예들에서 동작 상태는 최적 상태이지만, 다른 예들에서 동작 상태는 주어진 목표 기능에서 최적 상태가 아닐 수 있다. 그러나, 동작 상태는 더 짧은 시간 내에 달성되고, 실시간으로 검색될 수 있다. 최적 해답을 찾는 더 짧은 시간으로 인해, 시스템(100)은 전력 제한(112) 내에서, 동작 동안에 가변되는 전력 제한(112)에 대응할 수 있으며, 목표 기능이 최적화될 수 있다.
구체적인 예로서, 전력 제한(112)은 10W로 설정될 수 있다. 더 적은 수의 활성 프로세서들(104) 또는 더 적은 사이즈의 메모리들(106)과 같은 더 낮은 병렬도는 더 낮은 전력 제한(112)을 달성할 수 있다. 또한, SLC (Single Level Cell) 프로그램과 같은 메모리들(106)의 상이한 동작 상태는 전력 제한(112)을 달성할 수 있다. 목표 기능은 어떤 기술이 사용되어야 하는지 가리킬 수 있다. 예를 들어, 목표 기능이 최상의 성능을 위한 것이면, SLC 프로그램 구성이 사용되고, 용량이 감소될 수 있다. 활성 프로세서들(104)의 수 또는 메모리들(106)의 다른 측면들은 병렬도를 줄이기 위해 변경되지 않을 수 있으며, 따라서 성능이 감소되지 않을 수 있다. 다른 예로서, 목표 기능은 더 높은 용량을 가리킬 수 있으며, 따라서 더 낮은 병렬 구성이 사용될 수 있다.
예시적으로, 목표 기능은 구체적인 기술을 사용하도록 가리키거나 또는 변화되어야 하는 구체적은 동작 파라미터를 명시하지 않을 수 있다. 상술된 예들 중 하나를 이용하여, 목표 기능은 SLC 프로그램이 사용되어야 함을 명시할 필요는 없다. 반대로, 목표 기능은 전력 제한(112) 내에서 성능이 최대화되어야 함을 가리킬 수 있다. 사용될 구체적인 셀 레벨 프로그램 기술을 가리키는 동작 파라미터를 포함하는 동작 파라미터들의 반복을 통해, 전력 제한(112) 내의 최적의 성능이 달성될 수 있다. 일부 예들에서 동작 파라미터들은 SLC 프로그램이 사용되어야 함을 가리키고, 다른 예들에서 성능을 최대화하면서도 SLC 프로그램을 변경하지 않고 다른 동작 파라미터들을 변경함으로써 충분한 양의 전력이 보존될 수 있다.
구체적인 예로서, 제어 회로(108)는 제1 전력 제한(112) 내에서 동작한 후에 다른 제2 전력 제한(112)을 수신하도록 구성될 수 있다. 제어 회로(108)는 프로세서(104) 및 메모리들(106)의 동작 파라미터들을 반복적으로 변경하여, 시스템(100)과 연관된 목표 기능을 전력 소비가 전력 제한과 같거나 그보다 적은 동작 상태로 최적화할 수 있다.
예시적으로, 목표 기능의 최적화는 실시간으로 수행될 수 있다. 즉, 제어 회로(108)는 시스템(100)이 구동되는 동안에 동작 파라미터들(114)을 반복하도록 구성될 수 있다. 새로운 전력 제한(112)이 수신되면, 제어 회로(108)는 시스템(100)이 구동되는 동안에 새로운 전력 제한(112) 내에서 목표 기능이 다시 최적화되도록 시스템(100)의 동작 상태를 변경하는 동작 파라미터들을 반복할 수 있다. 따라서, 실시간으로, 전력 제한(112)은 동적으로 변경되고, 이에 따라 시스템(100)의 동작이 새로운 전력 제한(112)에 부합하도록 변경될 수 있다.
예시적으로, 제어 회로(108)는 동작 파라미터들을 지속적으로 반복하도록 구성될 수 있다. 예를 들어, 제어 회로(108)는 매 밀리 초와 같은 주기에 따라 최적화 시퀀스를 수행하도록 구성될 수 있다. 즉, 제어 회로(108)는 매 밀리 초마다 동작 파라미터들을 반복하여 최적의 상태를 찾을 수 있다. 밀리 초가 예시적으로 언급되었지만, 다른 시간 구간이 필요에 따라 사용될 수 있다. 예를 들어, 최적의 해답을 찾는 예상 시간이 10ms이면, 최적화 시퀀스는 20ms마다 반복될 수 있다. 따라서, 새로운 전력 제한(112)이 설정되면, 제어 회로(108)는 새로운 전력 제한(112) 내에서 반복을 지속할 수 있다.
다른 예로서, 제어 회로(108)는 구체적인 상태들에 응답하여 반복하도록 구성될 수 있다. 예를 들어, 제어 회로(108)는 시작 시에, 슬립 상태로부터 복귀한 후에, 새로운 전력 제한(112)을 수신한 후에, 구체적인 시간 구간 후에 반복을 시작하도록 구성될 수 있다.
예시적으로, 전력 제한(112)의 효과는 감소할 수 있다. 예를 들어, 전력 제한(112)이 존재하지 않거나 시스템(100)이 달성할 수 있는 것보다 높은 값으로 설정된 상태에서 시스템이 동작할 수 있다. 따라서, 여기에서 설명되는 최적화는 전력 제한(112)으로 한정되지 않는다. 따라서, 목표 기능은 동작 파라미터들만을 이용하여 최적화될 수 있다. 동작 파라미터들은 동작 파라미터들의 전체 범위에 걸쳐 반복될 수 있다. 구체적인 예로서, 목표 기능은 전력 소비와 무관하게 수명의 최대화와 연관될 수 있다. 이에 따른 동작 파라미터들의 세트는 전력 소비에 무관하게 성능을 최적화하는 동작 파라미터들의 세트와 다를 수 있다. 수명의 최적화가 전력 소비와 무관하게 최적화되는 목표 기능의 예로 사용되었지만, 다른 기능이 사용될 수 있다.
도 2a 내지 도 2f는 다양한 실시 예들에 따른 반복들의 개념도이다. 예시적으로, 상이한 반복 방법들이 동작 파라미터들을 반복하는 데에 사용될 수 있다. 반복 방법들의 예들은 Nelder-Mead 방법 및 조정 하강(coordinate descent) 방법을 포함할 수 있다. 그러나, 다른 반복 방법들이 사용될 수 있다. Nelder-Mead 방법이 예시적으로 사용된다. Nelder-Mead 방법은 상대적으로 빠르게 수렴하는 반복 방법이다. 예시적으로, 경험적(heuristic)이기 때문에, Nelder-Mead 방법은 항상 동작 파라미터들의 최적의 세트를 제공하지는 않으며, 제공되는 동작 파라미터들은 상대적으로 짧은 시간 구간에 획득되는 충분히 좋은 해답일 수 있다.
Nelder-Mead 방법은 'n+1' 꼭지점들(vertices)을 갖는 초기 단일어(simplex)로 시작하며, 'n'은 동작 파라미터들의 수이다. 꼭지점들은 동작 파라미터들의 세트를 나타낸다. 이후에, 방법은 중간 검색 꼭지점들(intermediate search vertices)에 따른 단계들을 반복한다. 검색의 시작에서, 동작 파라미터들의 초기 세트들은 부분적으로 기존 최적 해답에 기반하여, 수렴에 필요한 시간을 줄일 수 있다. 그러나, 새로운 그리고/또는 임의의 동작 파라미터들의 세트들이 지역적 최적화를 회피하기 위하여 추가될 수 있다. 다른 예로서, 하나의 세트는 이전 최적 해답으로 초기화되고, 다른 세트들은 임의의 세트들로 초기화될 수 있다. 다른 예로서, 둘 또는 그보다 많은 세트들이 이전의 최적 해답들로 초기화되고, 나머지 세트들이 임의의 세트들로 설정될 수 있다.
도 2a를 참조하면, 두 개의 동작 파라미터들을 이용한 최적화가 예시적으로 설명된다. 그러나, 동작 파라미터들의 수는 최적화될 수 있다. 두 개의 동작 파라미터들이 최적화됨에 따라, 동작 파라미터들의 세 개의 세트들(200, 202, 204)에 대한 목포 기능이 계산된다. 목표 기능의 결과를 계산하는 것에 더하여, 세 개의 세트들(200, 202, 204)에 대한 전력 소비가 측정(또는 예측)될 수 있다.
도 2b에서, 최악의 세트가 발견된다. 여기에서, 최악의 세트는 세트(200)이다. 나머지 세트들(202, 204)의 무게중심이 계산된다. 도 2c에서, 최악의 세트(200)가 무게중심(206)에 대해 반사되어 새로운 세트(208)가 생성된다. 목표 기능은 새로운 세트(208)에 대해 계산되고, 새로운 전력 소비가 측정(또는 예측)된다.
도 2d에서, 새로운 세트(208)는 최악의 세트가 된다. 그렇다면, 무게중심(206)에 더 가까운 새로운 세트(210)가 생성된다. 또다시, 새로운 세트(210)에 대한 목표 기능이 계산되고, 새로운 전력 소비가 측정(또는 예측)된다. 아니면, 도 2e에서, 새로운 세트(208)가 목표 기능에 대해 더 최적의 결과를 가지면, 무게중심(206)으로부터 더 멀리 떨어진 새로운 세트(212)가 생성된다. 또다시, 새로운 세트(212)에 대한 목표 기능이 계산되고, 새로운 전력 소비가 측정(또는 예측)된다.
도 2f에서, 세트들(220, 222, 224)의 초기 그룹이 생성되고, 세트들(220, 222, 224)에 대한 목표 기능이 계산되고, 새로운 전력 소비가 측정(또는 예측)된다. 여기에서, 세트들(220, 222)은 세트(224)보다 목표 기능으로부터의 결과가 덜 최적일 수 있다. 따라서, 세트(224)에 더 가까운 새로운 세트들(226, 228)이 생성된다. 또다시, 세트들(226, 228)에 대한 목표 기능이 계산되고, 새로운 전력 소비가 측정(또는 예측)된다.
새로운 세트들을 선택하는 구체적인 기술들이 설명되었지만, 다른 기술들이 다른 순서들로 사용될 수 있다. 상술된 예들은 동작 파라미터들의 반복들의 예를 보여주기 위한 것이며, 한정되지 않는다.
또한, 목표 기능들로부터의 결과들이 구체적인 세트를 사용할지 또는 버릴지 판별하는 데에 사용되지만, 이러한 세트들에 대한 전력 특정 또한 사용될 수 있다. 예를 들어, 구체적인 세트에 대한 전력 측정이 현재 전력 제한보다 크면, 해당 세트는 최악의 세트로 취급될 수 있다. 다른 예로서, 모든 세트들이 현재 전력 제한보다 큰 전력 측정들을 가지면, 전력 측정들이 목표 기능의 결과들 대신에 동작 파라미터들의 새로운 세트를 결정하는 데에 사용될 수 있다. 즉, 가장 높은 전력 측정을 갖는 세트가 새로운 세트로 대체될 수 있다.
다른 예로서, 제어 회로(108)는 다양한 전력 제한들에 대한 미리 정해진 동작 파라미터들로 구성될 수 있다. 이러한 미리 정해진 동작 파라미터들이 연관된 전력 제한보다 낮은 전력 소비를 유발하지만, 미리 정해진 동작 파라미터들은 주어진 목표 기능에 대한 최적의 동작 파라미터들은 아닐 수 있다. 따라서, 미리 정해진 동작 파라미터들은 반복을 위한 시작점으로 사용되고, 전력 제한 내의 목표 기능이 최적화될 수 있다.
도 1a 및 도 1b를 다시 참조하면, 예시적으로, 프로세서(104)는 반복과 연관된 커맨드를 수신하도록 구성될 수 있다. 예를 들어, 호스트(102)는 프로세서(104)로 커맨드를 전송할 수 있다. 커맨드는 전력 소비 및 최적화와 연관된 시스템(100)의 다양한 동작들과 연관될 수 있다. 커맨드는 동작 파라미터들을 반복적으로 변경할 때에 사용할 반복 방법을 가리킬 수 있다.
다른 예로서, 커맨드는 최적화될 목표 기능을 가리킬 수 있다. 예시적으로, 동작 파라미터들의 최적의 상태가 발견된 후에, 목표 기능은 커맨드에 응답하여 변경될 수 있다. 반복은 새로운 목표 기능으로 지속될 수 있다. 따라서, 동일한 전력 제한(112) 하에서도, 동작 파라미터들은 목표 기능의 변화로 인해 다른 최적 상태로 변경될 수 있다.
다른 예로서, 커맨드는 상술된 전력 제한(112)을 포함할 수 있다. 반복과 연관된 임의의 측면이 커맨드로 수신될 수 있다. 예시적으로, 반복 방법, 목표 기능 등과 같은 반복의 일부 측면들은 미리 정해질 수 있다.
프로세서(104)로 커맨드를 전송하는 호스트(102)가 예로 사용되었지만, 다른 예로서, 커맨드는 다른 방법들로 통신될 수 있다. 예를 들어, 시스템(100)은 제어 회로(108)로부터 호스트(102)로의 인터페이스를 포함할 수 있다. 따라서, 호스트(102)는 커맨드를 제어 회로(108)로 더 직접적으로 통신할 수 있다.
도 3은 본 발명의 다른 실시 예들에 따른 휘발성 및 불휘발성 메모리를 구비한 시스템의 개념도이다. 이 예에서, 시스템(100a)은 도 1a의 시스템(100)과 유사할 수 있다. 그러나, 메모리들(106)은 불휘발성 메모리(120) 및 휘발성 메모리(122)를 포함한다. 구체적인 예로서, 시스템(100a)은 불휘발성 메모리(120)가 대용량 스토리지 매체인 SSD로 동작할 수 있다.
다른 예로서, 휘발성 메모리(122)는 DRAM을 포함할 수 있다. DRAM은 전력 게이팅 파라미터, 셀프 리프레시 파라미터, 랭크들의 수, 및 채널들의 수와 같은 동작 파라미터들을 가질 수 있다. 이들 각각은 목표 기능 결과 및 전력 소비에 대한 DRAM의 기여에 영향을 줄 수 있다.
불휘발성 메모리(120)는 NAND 플래시 메모리, STT-MRAM, PRAM 등과 같은 NVRAM (Non-Volatile RAM)을 포함할 수 있다. NVRAM은 읽기 재시도 파라미터, 단일 레벨/멀티 레벨 셀 모드 스위치, 소거 전압, 및 프로그램 전압과 같은 동작 파라미터들을 가질 수 있다.
구체적으로, NAND 플래시 매체는 동기되지 않은 레이턴시 및 전력 소비 특성을 갖는다. NAND 셀들은 읽기보다 쓰기(프로그램) 또는 소거 시에 더 긴 시간을 필요로 한다. 또한, 읽기는 낮은 전압 동작(예를 들어, 5V)을 사용하며, 프로그램 또는 소거는 고전압(예를 들어, 20V 또는 -20V)를 필요로 한다. 또한, 읽기 시에 각 NAND 셀에 대한 감지 절차와 달리, 프로그램 또는 소거는 플로팅 게이트로의 또는 플로팅 게이트로부터의 전하의 주입 또는 제거를 필요로 한다. FN (Fowler-Nordheim) 터널링은 긴 시간을 필요로 하며, 따라서, 프로그램 및 소거는 절대량의 측면에서 읽기보다 느리다.
NAND 플래시 매체는 NAND 셀 당 다중 상태들을 저장하는 MLC (Multi-Level Cells)을 사용한다. 메모리 셀 당 더 높은 정보 밀도로 인해, MLC는 주어진 메모리에서 더 많은 논리적 용량을 제공한다. 그러나, MLC는 복잡한 읽기, 프로그램 및 소거 메커니즘을 유발한다. MLC 프로그램은 LSB (Least Significant Bit) 및 MSB (Most Significant Bit) 프로그램의 두 페이즈로 구성된다. 프로그램은 문턱 전압들의 미세 제어를 위해, 단계적으로 증가하는 양의 전하를 주입하는 ISPP (Incremental Step Pulse Program)을 사용한다. 또한, MLC NAND는 또 다른 비동기의 특성, 즉 더 많은 문턱 레벨들(SLC의 1개와 비교하여 3개인)로 인해 MSB 프로그램은 LSB 프로그램보다 더 많은 시간을 필요로 하고, 문턱 전압들을 적절히 설정하는 더 미세한 제어가 사용되는 특성을 유발한다. 많은 NAND 칩들에서, MSB 프로그램은 LSB 프로그램보다 10배 더 느리다.
FN 터널링은 문턱 전압(Vth)을 이동함으로써, 논리 '1' 및 논리 '0'의 표현을 가능하게 한다. 이는 저장하는 전하(Q)에 비례한다. 따라서, 적절한 전하가 플로팅 게이트에 대해 주입 또는 유출되면, 메모리 셀의 논리 상태를 정의할 수 있다. 플로팅 게이트 내의 전하량은 문턱 전압(Vth)을 결정하며, 따라서 문턱 전압(Vth)이 구성 또는 프로그램될 수 있다.
그러나, 플로팅 게이트 및 기판 사이의 산화막 내의 전하 트랩으로 인해, 셀의 문턱 전압(Vth) 열화가 발생할 수 있다. 산화막 내의 전하들은 적절한 전하 주입 및 유출을 방해한다. 따라서, 컨트롤 게이트로부터 측정되는 문턱 전압(Vth)은 양 상태들보다 높을 수 있다. 따라서, 지능적 프로그램/소거 메커니즘, 소거/프로그램 동작들은 각 셀이 열화됨에 따라 더 긴 시간을 소비한다.
이러한 비동기된 특징들에 더하여, NAND 매체 및 그것의 구조체는 프로그램 및 소거의 NAND의 높은 레이턴시를 숨기는 병렬성을 도입하며, 이러한 병렬성은 다중 플레인, 인터리브, 그리고 다중 채널 동작들을 포함한다. 병렬성으로 인해, 다중 NAND 동작이 동시에 실행되고, 이종(heterogeneous)의 병렬성이 전력 규칙을 맞추는 데에 적용될 수 있다.
불휘발성 메모리(120)의 다양한 특성들이 설명되었다. 이러한 특성들 각각은 재구성 가능하다. 불휘발성 메모리(120)는 상술된 동작들과 연관된 다양한 동작 파라미터들을 가질 수 있다.
프로세서(104)는 다양한 동작 파라미터들을 가질 수 있다. 예를 들어, 동작 파라미터들은 동적 전압 및 주파수 스케일링(DVFS, Dynamic Voltage and Frequency Scaling) 파라미터 및 프로세서(104)의 전력 게이팅 파라미터를 가질 수 있다. 다른 예로서, 프로세서(104)는 다중 코어들을 가질 수 있다. 다른 예로서, 다중 프로세서들(104)이 제공되고, 활성 프로세서들(104)의 수가 가변 가능할 수 있다.
구체적인 예로서, 프로세서(104)는 다양한 공급 전압들에서 동작 가능할 수 있다. 공급 전압은 첫 번째 동작 파라미터일 수 있다. 프로세서(104)는 각각 활성화 및 비활성화되는 다중 코어들을 포함할 수 있다. 동작 코어들의 수는 두 번째 동작 파라미터일 수 있다. 휘발성 메모리(122)는 활성화 및 비활성화되는 다수의 랭크들 및 가변 가능한 공급 전압을 포함할 수 있다. 이들은 두 개의 추가적인 동작 파라미터들일 수 있다. 불휘발성 메모리(120)는 SLC 모드 또는 MLC 모드에서 동작 가능할 수 있다. 불휘발성 메모리(120)는 가변 가능한 프로그램 전압을 가질 수 있다. 셀 모드 및 프로그램 전압은 추가적인 두 개의 동작 파라미터들일 수 있다.
상술된 바와 같이, 주어진 전력 제한에 대해, 동작 파라미터들이 반복되어 목표 기능을 최적화할 수 있다. 해답의 예는 1.5V의 프로세서(102) 공급 전압, 네 개의 프로세서 코어들 중 두 개의 활성화, 휘발성 메모리(122)의 16랭크들 중 10랭크들의 활성화, 1.1V의 휘발성 메모리(122) 공급 전압, 불휘발성 메모리(120)의 SLC 모드, 불휘발성 메모리(120)의 10V의 프로그램 전압을 포함할 수 있다.
구체적인 예로서, 시스템(100)은 다중 프로세서들(104), 다중 불휘발성 메모리들(120), 그리고 다중 휘발성 메모리들(122)을 포함하는 SSD일 수 있다. 프로세서(104)는 고성능 SSD의 전체 전력 소비의 대부분을 소비할 수 있으며, 따라서 프로세서(104)는 전력 소비를 줄이는 후보로 여겨질 수 있다. 마찬가지로, DRAM 및 NVM 매체는 전력 감소의 독립적인 후보들일 수 있다. 이러한 구성 요소들은 서로 조합되어, 불휘발성 메모리(120)의 느린 쓰기 특성 및 FTL (Flash Translation Layer) 오버헤드를 숨기면서 고성능을 제공할 수 있다. 이러한 시스템은 상대적으로 복잡하며, 따라서 각 구성 요소를 제어할 때에 성능 영향을 예측하는 것이 상대적으로 어려울 수 있다. 따라서, 최저의 성능 저하를 보이면서 최고의 전력 절감을 유발하는 방법으로 구성 요소들의 동작 파라미터들을 변경하는 방법은 명백하지 않을 수 있다. SSD의 복잡성으로 인해, 이러한 문제를 해결하는 것은 어려우며 긴 시간을 필요로 한다. 여기에 설명되는 바와 같이 동작 파라미터들을 반복하는 것은 허용 가능한 시간 구간 내에 더 최적의 해답을 도출한다.
예시적으로, 제어 회로(108)는 적어도 두 개의 연속적인 최적화 시퀀스들 동안 일정하게 유지된 상태를 갖는 동작 파라미터를 식별하고, 식별된 동작 파라미터를 적어도 하나의 미래의 최적화 시퀀스에 대해 동작 파라미터들로부터 제거하도록 구성된다. 예를 들어, 제어 회로(108)는 이전 최적화 시퀀스들로부터의 결과, 즉 최적화된 해답에 대한 동작 파라미터들의 상태들을 저장하도록 구성되는 메모리를 포함할 수 있다.
다중 최적화 사이클들 동안, 다중 최적 해답들이 발견되고 메모리에 저장된다. 하기의 표 1은 세 개의 최적화 해답들에 대한 동작 파라미터들의 상태들을 보여준다. 이들 각각은 최적화 시퀀스 이후의 최적 결과이다.
프로세서 전압 프로세서들의 수 메모리 랭크들 휘발성 메모리 전압 불휘발성 메모리 전압
1.35 3 10 1.1 10
1.2 4 10 1.2 5
1.1 5 10 1.1 7
이 예에서, 최적화 시퀀스들 각각 이후에 최적화 해답들 각각의 메모리 랭크들의 수는 동일하다. 메모리 랭크들은 고정으로 유지된 동작 파라미터로 식별될 수 있다. 메모리 랭크들을 고정으로 유지된 동작 파라미터로 식별한 결과로서, 메모리 랭크들은 적어도 몇 번의 미래의 반복들에 대해 반복되는 동작 파라미터들의 그룹으로부터 제거될 수 있다. 이 예에서, 새로운 동작 파라미터 세트는 5로부터 4로 감소한다. 따라서, 감소된 차원으로 인해, 이후의 최적화는 최적화 해답들에 더 빠르게 도달할 수 있다. 구체적인 동작 파라미터들이 예시적으로 사용되었지만, 임의의 동작 파라미터들이 분석되고, 하나 또는 그보다 많은 것들이 충분히 많은 최적화 사이클 동안 고정으로 유지되어 제거 후보가 되는지 판별될 수 있다.
예시적으로, 제어 회로(108)는 다양한 동작 파라미터들을 이산 값들로 설정할 수 있다. 제어 회로(108)는 이산 값을 레지스터에 기입하고, 이산 값을 다른 구성 요소와 통신하고, 동작 파라미터를 설정할 수 있다. 예를 들어, 랭크들의 수는 정수로만 설정 가능할 수 있다. 다른 예로서, 프로세서 전압은 정수가 아닌 값으로 설정 가능하지만, 범위 내의 이산 스텝 값들일 수 있다. 따라서, 이산 값이 변화되지 않으면, 동작 파라미터는 제어 회로(108)에 의해 고정으로 판별될 수 있다.
다른 예로서, 제어 회로(108)는 제거된 동작 파라미터를 동작 파라미터들의 세트로 복원하도록 구성될 수 있다. 예를 들어, 전력 제한이 변경되면, 미리 정해진 양의 시간이 경과하면, 시스템(100a)의 사용이 변화하면, 반복되는 동작 파라미터들을 가리키는 제어 회로(108)의 메모리 내의 플래그를 설정함으로써, 제거된 동작 파라미터가 복원될 수 있다. 시스템(100a)의 동작을 변경하는 임의의 이벤트가 제거된 동작 파라미터들을 복원하는 방아쇠로 사용될 수 있다.
도 4는 다른 실시 예들에 따른 전력 측정기를 구비한 시스템의 개념도이다. 예시적으로, 프로세서(104) 및 메모리들(106)의 적어도 하나는 전력을 측정하도록 구성되는 전력 측정 회로(103)를 포함한다. 이 예에서, 프로세서(104) 및 메모리들(106) 각각은 전력 측정 회로(130)를 포함한다.
전력 측정 회로(130)는 다양한 형태들을 가질 수 있다. 예를 들어, 열 센서 또는 전력 센서가 구체적인 장치로 구현될 수 있다. 증폭기들, 아날로그 디지털 변환기들, 버퍼들, 레지스터들 등이 전력 측정 회로(130)의 일부이며, 물리적 영향을 제어 회로(108)에서 사용될 수 있는 디지털화된 값으로 변환할 수 있다. 예를 들어, 신호는 센서로부터 감지되고, 디지털화되고, 레지스터에 저장된다. 레지스터는 제어 회로(108)에 의해 읽혀, 또는 프로세서(104)에 의해 읽히고 제어 회로(108)와 통신되어, 전력 측정 회로(130)로부터 전력이 읽힐 수 있다.
전력 측정 회로들(130)로부터의 읽기들은 정규화되고 전력 소비 값으로 결합될 수 있다. 따라서, 동작 시에, 제어 회로(108)는 동작 파라미터들의 현재 세트에 대한 전력 측정을 수신할 수 있다. 동작 상태들의 새로운 세트가 사용되면, 또 다른 전력 측정이 수행될 수 있다.
도 1a를 다시 참조하면, 이 예에서, 제어 회로(108)는 동작 파라미터들의 하나 또는 그보다 많은 것들에 기반하여 프로세서(104) 및 메모리들(106)의 적어도 하나의 전력 소비를 추정하도록 구성된다. 예를 들어, 전력 소비는 동작 파라미터들로부터 추정될 수 있다. 또한, 전력 소비는 프로세서(104) 및 메모리들(106)의 사용으로부터 추정될 수 있다. 구체적인 예로서, 시간 구간 동안의 요청들 또는 활동들의 수가 계수될 수 있다. 동작 파라미터들 및 시스템의 다른 추정들이 개별적으로 또는 조합되어 사용되어, 전력 추정을 생성할 수 있다. 다른 예로서, 도 4의 전력 측정 회로들(130)과 유사한 전력 측정기들이 다른 장치들에서 사용되고, 시스템(100)의 일부 장치들에서 전력 소비의 추정이 사용될 수 있다. 전력 측정들은 주어진 반복에 대한 전력 소비와 결합될 수 있다.
도 5는 다른 실시 예에 따른 시스템의 개념도이다. 이 예에서, 제어 회로(108)는 프로세서(104)의 일부이다. 예를 들어, 상술된 제어 회로(108)의 동작들은 프로세서(104)에서 실행되는 프로그램에 의해 수행될 수 있다. 예를 들어,
프로세서(104)는 프로세서(104)가 메모리들(106)과 통신하는 것을 가능하게 하도록 구성되는 하나 또는 그보다 많은 메모리 버스 인터페이스들을 포함할 수 있다. 메모리 버스 인터페이스를 통해, 프로세서(104)는 메모리들의 동작 파라미터들을 설정하도록 구성될 수 있다. 또한, 프로세서(104)에서 실행되는 프로그램은 cm로세서(104)의 레지스터들을 액세스하여 또는 프로세서(104)에 대한 전력 공급 시스템을 액세스하여, 반복 동안에 프로세서(104)의 동작 파라미터들을 변경할 수 있다.
도 6은 다른 실시 예에 따른 시스템의 개념도이다. 이 예에서, 시스템(100d)은 도 1a의 시스템(100)과 유사하다. 그러나, 이 예에서, 시스템(100d)은 다중 장치들(1070을 포함한다. 장치들(107) 각각은 제어 회로(108)에 의해 변경되는 하나 또는 그보다 많은 동작 파라미터들을 갖는다. 제어 회로(108)는 전력 제한을 수신하고, 장치들의 전력 소비를 측정하고, 그리고 장치들의 동작 파라미터들을 반복적으로 변경하여, 시스템(100d)과 연관된 목표 기능을 전력 소비가 전력 제한과 같거나 그보다 작은 동작 상태로 최적화한다. 다시 말하면, 메모리들(106)을 참조하여 설명된 전력 제한 내의 최적화는 동작 파라미터들을 구성할 수 있는 일반적인 장치들에 적용될 수 있다.
도 7은 본 발명의 실시 예에 따른 반복의 기술의 순서도이다. 도 1a, 도 1b 및 도 7을 참조하면, 600 단계에서 동작 파라미터들이 특정한 상태로 설정된다. 예를 들어, 제어 회로(108)는 프로세서(104)에 대한 공급 전압, 제1 메모리(106)의 랭크들의 수, 다른 메모리(106)의 프로그램 전압을 설정할 수 있다. 제어 회로(108)는 하나 또는 그보다 많은 전압 조정기들과 통신하여 다양한 전압들을 설정하고, 제1 메모리(106)와 통신하여 랭크들의 수를 설정할 수 있다.
602 단계에서, 전력 소비가 측정된다. 예를 들어, 제어 회로(108)는 프로세서(104) 및 메모리들(106)과 통신하여 전력 레지스터, 온도 레지스터 등을 읽을 수 있다. 제어 회로(108)는 프로세서(104) 및 메모리들(106)로부터의 값들을 전력 소비 측정으로 조합할 수 있다.
604 단계에서, 동작 파라미터들의 현재 상태에 대한 목표 기능이 계산된다. 예를 들어, 제어 회로(108)는 프로세서(104) 및 메모리들(106)과 통신하여 목표 기능에 기여하는 값들을 판별할 수 있다. 예를 들어, 프로세서(104)는 시간의 흐름에 따라 읽기/쓰기 요청들, 요청들의 레이턴시 등을 추적할 수 있다. 데이터의 수집은 프로세서9104) 및 메모리들(106)에 의해 수행되거나, 제어 회로(108)에 의해 수행되거나, 또는 이들의 조합에 의해 수행될 수 있다. 제어 회로(108)는 목표 기능에 대한 값을 획득할 수 있다.
606 단계에서, 제어 회로(108)는 동작 파라미터들의 세트들의 충분한 수에 대해 측정들이 수행되었는지 판별한다. 그렇지 않으면, 동작 파라미터들의 다른 세트가 선택되고, 600 단계에서 설정이 수행되고, 602 단계에서 측정이 수행되고, 604 단계에서 계산이 수행된다. 예를 들어, Nelder-Mead 방법을 사용할 때 동작 파라미터들이 변경된 회수가 10이면, 측정들은 제어 회로(108)에 의해 동작 파라미터 상태들의 11 세트들에 대해 반복된다.
충분한 수의 세트들이 측정되면, 608 단계에서 제어 회로(108)는 최적 상태의 판별을 수행한다. 예를 들어, 제어 회로(108)는 반복들이 최적 상태로 수렴하는지 판별할 수 있다. 그렇지 않으면, 현재 반복 방법에 따라 새로운 반복이 수행되어, 동작 파라미터 상태들의 하나 또는 그보다 많은 세트들에서 측정들이 수행된다.
610 단계에서, 동작 파라미터 상태들의 최적 세트가 식별되면, 또 다른 최적 시퀀스에 대한 초기 세트들에 대한 동작 파라미터들이 설정될 수 있다. 예를 들어, 제어 회로(108)는 동작 파라미터 상태들의 초기 세트들 중 하나를 이전 최적 세트로 설정하고, 다른 초기 세트들을 임의 세트들로 설정할 수 있다. 동작 파라미터들은 또 다시 반복될 수 있다.
도 8은 본 발명의 실시 예에 따른 반복의 기술을 보여주는 순서도이다. 도 1a, 도 1b 및 도 8을 참조하면, 방법은 도 7고 유사하다. 그러나, 608 단계에서 동작 파라미터들의 최적의 세트가 발견된 후에, 동작 파라미터들의 해당 세트 및 이전 최적 세트들이 분석되고, 하나 또는 그보다 많은 것들이 충분한 수의 최적화 시퀀스들 동안 고정되었는지 판별된다. 그렇다면, 해당 파라미터들은 610 단계에서 이후의 반복들에 대해 동작 상태들의 세트로부터 제거된다. 예를 들어, 제어 회로(108)는 제거될 동작 파라미터들을 제어 회로(108)의 메모리에 저장된 데이터 구조에서 제거된 것으로 표시할 수 있다. 상술된 바와 같이, 반복은 608 단계에서 지속된다.
도 1a 및 도 1b를 다시 참조하면, 시스템(100)은 호스트(102)에 대한 새로운 제어 메커니즘을 허용할 수 있다. 예를 들어, 호스트(102)는 시스템(100)에 대한 전력 제한을 변경할 수 있다. 호스트(102)는 장치의 목표 기능을 변경할 수 있다. 호스트(102)에서 실행되는 시스템 관리 소프트웨어는 새로운 시스템 콜 또는 확장된 시스템 콜을 실행하여, 시스템(100)의 이러한 파라미터들을 변경할 수 있다. 상술된 바와 같이, 시스템(100)은 이러한 파라미터들과 연관된 파라미터들을 수신할 수 있다. 이러한 시스템 콜들을 통해, 호스트(102)는 커맨드들을 생성하고 이들을 시스템(100)으로 전송할 수 있다.
도 9는 본 발명의 실시 예에 따른 서버의 개념도이다. 이 예에서, 서버(900)는 독립(stand-alone) 서버, 랙-실장(rack-mounted) 서버, 블레이드(blade) 서버 등을 포함할 수 있다. 서버(900)는 시스템(902) 및 프로세서(904)를 포함할 수 있다. 프로세서(904)는 시스템(902)과 결합된다. 하나의 시스템(902)만이 도시되어 있지만, 임의의 수의 시스템들(902)이 존재할 수 있다. 시스템(902)은 시스템들(100, 100a, 100b, 100c, 100d) 등과 같은 상술된 시스템들 중 어느 것일 수 있다. 예를 들어, 시스템(902)은 SSD일 수 있다. SSD는 서버(900)에 대한 데이터 스토리지를 제공할 수 있다.
도 10은 본 발명의 실시 예에 따른 서버 시스템의 개념도이다. 이 예에서, 서버 시스템(1000)은 다중 서버들(1002-1~1002-N)을 포함한다. 서버들(1002)은 각각 관리자(1004)에 연결된다. 서버(1002)의 하나 또는 그보다 많은 것들은 상술된 서버(900)와 유사할 수 있다.
관리자(1004)는 서버들(1002) 및 서버 시스템(1000)의 다른 구성 요소들을 관리하도록 구성된다. 예시적으로, 관리자(1004)는 서버들(1002)의 전력 소비를 관리하도록 구성될 수 있다. 예를 들어, 서버들(1002) 각각이 상술된 시스템들(100, 100a, 100b, 100c, 100d)과 같은 시스템을 포함하므로, 관리자(1004)는 시스템들과 통신하여 전력 제한을 설정할 수 있다. 구체적인 예로서, 관리자(1004)는 서버 시스템(1000)의 전력 소비를 줄이고 특정 레벨의 성능을 유지하도록 시스템 관리자(administrator)에 의해 구성될 수 있다. SSD의 TDP (Thermal Design Power)만으로, 관리자(1004)는 서버들(1002)의 시스템들을 슬립 또는 다른 비활성 상태로 제어하는 옵션만을 가질 수 있다. 그러나, 본 발명의 실시 예에 따른 시스템으로, 전력 제한 및 동작 상태들의 미세한 단위가 달성된다. 예를 들어, 관리자(1004)는 서버들(1002)의 프로세서와 통신하여 커맨드를 서버들(1002)의 시스템들로 전송하고, 전력 제한을 설정하고 목표 기능을 최적 성능으로 설정할 수 있다. 따라서, 서버 시스템(1000)의 시스템들은 동작 파라미터들을 반복적으로 변경하여, 관리자(1004)에 의해 설정된 구체적인 전력 제한 내에서 성능을 최적화할 수 있다.
도 11은 본 발명의 실시 예에 따른 데이터 센터의 개념도이다. 이 예에서, 데이터 센터(1100)는 다중 서버 시스템들(1102-1~1102-N)을 포함한다. 서버 시스템들(1102)은 도 10을 참조하여 설명된 서버 시스템(1000)과 유사할 수 있다. 서버 시스템들(1102)은 인터넷과 같은 네트워크(1104)와 결합된다. 따라서, 서버 시스템들(1102)은 네트워크(1104)를 통해 다양한 노드들(1106-1~1106-M)과 통신할 수 있다. 예를 들어, 노드들(1106)은 클라이언트 컴퓨터들, 다른 서버들, 원격 데이터 센터들, 스토리지 시스템들 등일 수 있다.
구조들, 방법들, 시스템들이 구체적인 실시 예들에 따라 설명되었으나, 당업자는 기재된 실시 예들에 대한 다양한 변경들이 가능함을 이해할 것이다. 따라서, 기재된 실시 예들에 대한 변경들은 기재된 장치, 방법 및 시스템의 기술적 범위에 속하는 것으로 여겨진다.
100, 100a, 100b, 100c, 100d; 시스템
102; 호스트
104; 프로세서
106; 다중 메모리들
107; 장치들
108; 제어 회로
110; 전력 측정
112; 전력 제한
114; 동작 파라미터들
120; 불휘발성 메모리
122; 휘발성 메모리
130; 전력 측정 회로
900; 서버
902; 시스템
904; 프로세서
1000; 서버 시스템
1002-1~1002-N; 서버들
1004; 관리자
1100; 데이터 센터
1102-1~1102-N; 서버 시스템들
1104; 네트워크
1106-1~1106-M; 노드들

Claims (20)

  1. 시스템에 있어서:
    프로세서;
    복수의 메모리들; 그리고
    상기 프로세서 및 상기 메모리들에 연결되는 제어 회로를 포함하고,
    상기 제어 회로는, 전력 제한을 수신하고, 상기 프로세서 및 상기 메모리들의 전력 소비를 측정하고, 그리고 상기 프로세서 및 상기 메모리들의 복수의 동작 파라미터들을 반복적으로 변경하여, 상기 시스템과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 같거나 그보다 낮은 동작 상태로 선택하도록 구성되고,
    상기 프로세서 및 상기 메모리들의 복수의 동작 파라미터들을 반복적으로 변경하여, 상기 시스템과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 것은:
    상기 복수의 동작 파라미터들 내의 동작 파라미터들의 양을 조절하는 것; 상기 조절하는 것은 적어도 하나의 동작 파라미터의 제거를 포함하고,
    상기 전력 소비가 상기 전력 제한과 같거나 그보다 낮도록, 상기 동작 파라미터들의 상태들의 복수의 세트들의 각각을 이용하여 상기 프로세서 및 상기 메모리들을 동작시키는 것; 그리고
    상기 동작 파라미터들의 상태들의 세트들의 각각에 대한 상기 목표 기능의 결과를 계산하는 것을 포함하는 시스템.
  2. 제1 항에 있어서,
    상기 프로세서 및 상기 메모리들의 상기 복수의 동작 파라미터들 각각은, 상기 프로세서의 적어도 하나의 동작 파라미터, 상기 메모리들 중 제1 메모리의 적어도 하나의 동작 파라미터, 그리고 상기 메모리들 중 제2 메모리의 적어도 하나의 동작 파라미터를 포함하는 시스템.
  3. 제1 항에 있어서,
    상기 메모리들은 DRAM (Dynamic Random Access Memory) 및 NVRAM (Non-Volatile RAM)을 포함하는 시스템.
  4. 제3 항에 있어서,
    상기 동작 파라미터들은 상기 DRAM의 전력 게이팅 파라미터, 셀프 리프레시 파라미터, 랭크들의 수, 그리고 채널들의 수 중 적어도 하나를 포함하는 시스템.
  5. 제3 항에 있어서,
    상기 동작 파라미터들은 상기 NVRAM의 읽기 재시도 파라미터, 단일 레벨 및 멀티 레벨 셀 모드 스위치, 소거 전압, 그리고 프로그램 전압 중 적어도 하나를 포함하는 시스템.
  6. 제1 항에 있어서,
    상기 동작 파라미터들은 상기 프로세서의 동적 전압 및 주파수 스케일링 파라미터 및 전력 게이팅 파라미터 중 적어도 하나를 포함하는 시스템.
  7. 제1 항에 있어서,
    상기 제어 회로는, 적어도 두 개의 연속한 최적화 시퀀스들에서 고정으로 유지된 상태를 갖는 동작 파라미터를 식별하고, 그리고 상기 식별된 동작 파라미터를 이후의 적어도 하나의 최적화 시퀀스에 대해 상기 동작 파라미터들로부터 제거하도록 구성되는 시스템.
  8. 제1 항에 있어서,
    상기 프로세서 및 상기 메모리들 중 적어도 하나는 전력을 측정하도록 구성되는 전력 측정 회로를 포함하는 시스템.
  9. 제1 항에 있어서,
    상기 제어 회로는 상기 동작 파라미터들 중 하나 또는 그보다 많은 것들에 기반하여 상기 프로세서 및 상기 메모리들 중 적어도 하나의 전력 소비를 추정하도록 구성되는 시스템.
  10. 제1 항에 있어서,
    상기 제어 회로는, 제2 전력 제한을 수신하고, 그리고 상기 프로세서 및 상기 메모리들의 상기 동작 파라미터들을 반복적으로 변경하여, 상기 시스템과 연관된 목표 기능을 상기 전력 소비가 상기 제2 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하도록 구성되는 시스템.
  11. 제1 항에 있어서,
    상기 프로세서는 상기 제어 회로를 포함하는 시스템.
  12. 방법에 있어서:
    제어 회로에서 전력 제한을 수신하는 단계;
    상기 제어 회로에 의해, 프로세서 및 복수의 메모리들의 전력 소비를 측정하는 단계; 그리고
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계를 포함하고,
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계는:
    하나 또는 그보다 많은 기준에 기반하여, 상기 복수의 동작 파라미터들 내의 동작 파라미터들의 양을 조절하는 단계;
    상기 전력 소비가 상기 전력 제한과 같거나 그보다 낮도록, 상기 동작 파라미터들의 상태들의 복수의 세트들의 각각을 이용하여 상기 프로세서 및 상기 메모리들을 동작시키는 단계; 그리고
    상기 동작 파라미터들의 상태들의 세트들의 각각에 대한 상기 목표 기능의 결과를 계산하는 단계를 포함하는 방법.
  13. 제12 항에 있어서,
    상기 메모리들은 DRAM (Dynamic Random Access Memory) 및 NVRAM (Non-Volatile RAM)을 포함하는 방법.
  14. 제12 항에 있어서,
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계의 이후에:
    상기 제어 회로에 의해, 적어도 두 개의 연속한 최적화 시퀀스들에서 고정으로 유지된 상태를 갖는 동작 파라미터를 식별하는 단계; 그리고
    상기 제어 회로에 의해, 상기 식별된 동작 파라미터를 이후의 적어도 하나의 최적화 시퀀스에 대해 상기 동작 파라미터들로부터 제거하는 단계를 더 포함하는 방법.
  15. 제12 항에 있어서,
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계의 이후에:
    상기 제어 회로에 의해, 제2 전력 제한을 수신하는 단계; 그리고
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 상기 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 제2 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화하는 단계를 더 포함하는 방법.
  16. 제12 항에 있어서,
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계의 이전에:
    상기 동작 파라미터들, 상기 목표 기능, 그리고 상기 전력 제한을 반복적으로 변경할 때에 사용할 적어도 하나의 반복 방법을 포함하는 커맨드를 수신하는 단계를 더 포함하는 방법.
  17. 제12 항에 있어서,
    상기 하나 또는 그보다 많은 기준에 기반하여, 상기 복수의 동작 파라미터들 내의 동작 파라미터들의 양을 조절하는 단계는,
    상기 제어 회로에 의해 Nelder-Mead 방법 및 조정 하강 방법 중 적어도 하나에 따라 상기 동작 파라미터들을 조절하는 단계를 포함하는 방법.
  18. 제17 항에 있어서,
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계는,
    상기 하나 또는 그보다 많은 기준에 기반하여, 상기 복수의 동작 파라미터들 내의 동작 파라미터들의 양을 조절하는 단계의 이전에:
    상기 제어 회로에 의해, 상기 동작 파라미터들의 반복을 이전 최적화된 동작 상태들의 복수의 세트들로 초기화하는 단계를 더 포함하는 방법.
  19. 제17 항에 있어서,
    상기 제어 회로에 의해, 상기 프로세서 및 상기 메모리들의 동작 파라미터들을 반복적으로 변경하여, 상기 프로세서 및 상기 메모리들과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 선택하는 단계는,
    상기 하나 또는 그보다 많은 기준에 기반하여, 상기 복수의 동작 파라미터들 내의 동작 파라미터들의 양을 조절하는 단계의 이전에:
    상기 제어 회로에 의해, 상기 동작 파라미터들의 반복을 동작 상태들의 임의 세트로 초기화하는 단계를 더 포함하는 방법.
  20. 시스템에 있어서:
    복수의 장치들; 그리고
    상기 장치들에 연결된 제어 회로를 포함하고,
    상기 제어 회로는, 전력 제한을 수신하고, 상기 장치들의 전력 소비를 측정하고, 그리고 상기 장치들의 복수의 동작 파라미터들을 반복적으로 변경하여, 상기 시스템과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화하도록 구성되고,
    상기 장치들의 복수의 동작 파라미터들을 반복적으로 변경하여, 상기 시스템과 연관된 목표 기능을 상기 전력 소비가 상기 전력 제한과 갖거나 그보다 낮은 동작 상태로 최적화하는 것은:
    하나 또는 그보다 많은 기준에 기반하여, 상기 복수의 동작 파라미터들 내의 동작 파라미터들의 양을 조절하는 것; 적어도 하나의 동작 파라미터가 연속한 적어도 두 개의 최적화 시퀀스들에서 상수로 유지되는 상태를 가질 때에 상기 조절하는 것은 상기 적어도 하나의 동작 파라미터의 제거를 포함하고,
    상기 전력 소비가 상기 전력 제한과 같거나 그보다 낮도록, 상기 동작 파라미터들의 상태들의 복수의 세트들의 각각을 이용하여 상기 장치들을 동작시키는 것; 그리고
    상기 동작 파라미터들의 상태들의 세트들의 각각에 대한 상기 목표 기능의 결과를 계산하는 것을 포함하는 시스템.
KR1020160065028A 2015-09-14 2016-05-26 전력 소비를 제어하는 시스템 및 방법 KR102318541B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562218527P 2015-09-14 2015-09-14
US62/218,527 2015-09-14
US14/967,266 US9733684B2 (en) 2015-09-14 2015-12-11 System and method for controlling power consumption
US14/967,266 2015-12-11

Publications (2)

Publication Number Publication Date
KR20170032160A KR20170032160A (ko) 2017-03-22
KR102318541B1 true KR102318541B1 (ko) 2021-10-29

Family

ID=58238363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160065028A KR102318541B1 (ko) 2015-09-14 2016-05-26 전력 소비를 제어하는 시스템 및 방법

Country Status (5)

Country Link
US (2) US9733684B2 (ko)
JP (1) JP6788420B2 (ko)
KR (1) KR102318541B1 (ko)
CN (1) CN106527652B (ko)
TW (1) TWI702539B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9733684B2 (en) * 2015-09-14 2017-08-15 Samsung Electronics Co., Ltd. System and method for controlling power consumption
US11216323B2 (en) 2015-09-16 2022-01-04 Samsung Electronics Co., Ltd. Solid state memory system with low power error correction mechanism and method of operation thereof
US10535394B2 (en) 2017-07-20 2020-01-14 Samsung Electronics Co., Ltd. Memory device including dynamic voltage and frequency scaling switch and method of operating the same
US10607660B2 (en) 2017-07-20 2020-03-31 Samsung Electronics Co., Ltd. Nonvolatile memory device and operating method of the same
US10529407B2 (en) 2017-07-20 2020-01-07 Samsung Electronics Co., Ltd. Memory device including a plurality of power rails and method of operating the same
US10181351B1 (en) * 2017-08-30 2019-01-15 Micron Technology, Inc. Increased NAND performance under high thermal conditions
KR20190093400A (ko) 2018-02-01 2019-08-09 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치를 포함하는 전자 장치
KR102549346B1 (ko) * 2018-07-24 2023-06-28 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메타 데이터 액세스 방법
TWI672705B (zh) * 2018-11-23 2019-09-21 宏碁股份有限公司 儲存裝置、控制方法及控制器
US11921555B2 (en) * 2019-07-26 2024-03-05 Samsung Electronics Co., Ltd. Systems, methods, and devices for providing power to devices through connectors
CN111752367B (zh) * 2020-06-12 2021-10-26 深圳忆联信息系统有限公司 固态硬盘功耗降低方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009021080A2 (en) 2007-08-06 2009-02-12 Great Lakes Biosciences, Llc Methods and apparatus for electrical stimulation of tissues using signals that minimize the effects of tissue impedance

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539881B2 (en) * 2006-04-15 2009-05-26 Hewlett-Packard Development Company, L.P. System and method for dynamically adjusting power caps for electronic components based on power consumption
US8001407B2 (en) * 2006-10-31 2011-08-16 Hewlett-Packard Development Company, L.P. Server configured for managing power and performance
US7725409B2 (en) * 2007-06-05 2010-05-25 Motorola, Inc. Gene expression programming based on Hidden Markov Models
US20090132842A1 (en) * 2007-11-15 2009-05-21 International Business Machines Corporation Managing Computer Power Consumption In A Computer Equipment Rack
US20110047316A1 (en) 2009-08-19 2011-02-24 Dell Products L.P. Solid state memory device power optimization
US8880202B2 (en) * 2010-07-09 2014-11-04 Emerson Process Management Power & Water Solutions, Inc. Optimization system using an iteratively coupled expert engine
US8738937B2 (en) * 2010-07-13 2014-05-27 Intel Corporation Method and apparatus to limit memory power
US8826051B2 (en) * 2010-07-26 2014-09-02 Apple Inc. Dynamic allocation of power budget to a system having non-volatile memory and a processor
US8364103B2 (en) * 2010-09-21 2013-01-29 Intel Mobile Communications GmbH Adaptive adjustment of active area for power amplifier
CN103201702B (zh) * 2010-11-09 2016-04-20 国际商业机器公司 对计算工作负载进行管理的方法和系统
US8543851B2 (en) * 2010-12-29 2013-09-24 Stmicroelectronics, Inc. System and method for microeconomic optimization of power usage in a device
US20130097433A1 (en) 2011-10-18 2013-04-18 Stec, Inc. Systems and methods for dynamic resource management in solid state drive system
US9075610B2 (en) * 2011-12-15 2015-07-07 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
WO2013147801A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Dynamic power limit sharing in a platform
US8984308B2 (en) * 2012-12-03 2015-03-17 Qualcomm Incorporated System and method of adaptive voltage scaling
US9317212B2 (en) 2012-12-18 2016-04-19 Intel Corporation Method and apparatus for controlling a storage device
US9280191B2 (en) * 2013-01-21 2016-03-08 Dell Products Lp. Systems and methods for power supply configuration and control
US8854929B1 (en) * 2013-03-06 2014-10-07 Western Digital Technologies, Inc. Disk drive calibrating laser power and write current for heat assisted magnetic recording
US9213400B2 (en) 2013-03-14 2015-12-15 Intel Corporation Apparatus and method to provide near zero power DEVSLP in SATA drives
US9438242B2 (en) * 2013-07-12 2016-09-06 Freescale Semiconductor, Inc. Systems and methods for reducing power consumption in semiconductor devices
US9652026B2 (en) * 2014-12-21 2017-05-16 Qualcomm Incorporated System and method for peak dynamic power management in a portable computing device
US10101786B2 (en) 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US9733684B2 (en) * 2015-09-14 2017-08-15 Samsung Electronics Co., Ltd. System and method for controlling power consumption
US10241701B2 (en) 2015-09-16 2019-03-26 Samsung Electronics Co., Ltd. Solid state memory system with power management mechanism and method of operation thereof
US9711232B2 (en) 2015-09-22 2017-07-18 Samsung Electronics Co., Ltd. Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009021080A2 (en) 2007-08-06 2009-02-12 Great Lakes Biosciences, Llc Methods and apparatus for electrical stimulation of tissues using signals that minimize the effects of tissue impedance

Also Published As

Publication number Publication date
JP2017059223A (ja) 2017-03-23
CN106527652B (zh) 2021-07-30
CN106527652A (zh) 2017-03-22
US20170075401A1 (en) 2017-03-16
US10359822B2 (en) 2019-07-23
JP6788420B2 (ja) 2020-11-25
US9733684B2 (en) 2017-08-15
TW201710891A (zh) 2017-03-16
KR20170032160A (ko) 2017-03-22
TWI702539B (zh) 2020-08-21
US20170308136A1 (en) 2017-10-26

Similar Documents

Publication Publication Date Title
KR102318541B1 (ko) 전력 소비를 제어하는 시스템 및 방법
KR102283511B1 (ko) 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법
AU2011203893B2 (en) Controlling and staggering operations to limit current spikes
US10372373B1 (en) Adaptive power balancing for memory device operations
US9575677B2 (en) Storage system power management using controlled execution of pending memory commands
US9977487B2 (en) Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US11550496B2 (en) Buffer management during power state transitions using self-refresh and dump modes
KR20160033147A (ko) 온도 기반 nand 설정들을 이용한 플래시 메모리 시스템 내구성 개선
US11041763B2 (en) Adaptive throttling
EP3705979B1 (en) Ssd restart based on off-time tracker
US20210303172A1 (en) Monitoring flash memory erase progress using erase credits
US20220413761A1 (en) Data Retention-Specific Refresh Read
AU2014100558B4 (en) Controlling and staggering operations to limit current spikes
US11379355B2 (en) Power-on-time based data relocation
WO2016064554A1 (en) Storage system power management using controlled execution of pending memory commands

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right