KR101699104B1 - 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당 - Google Patents

비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당 Download PDF

Info

Publication number
KR101699104B1
KR101699104B1 KR1020120011196A KR20120011196A KR101699104B1 KR 101699104 B1 KR101699104 B1 KR 101699104B1 KR 1020120011196 A KR1020120011196 A KR 1020120011196A KR 20120011196 A KR20120011196 A KR 20120011196A KR 101699104 B1 KR101699104 B1 KR 101699104B1
Authority
KR
South Korea
Prior art keywords
power
electronic device
power budget
system
nvm
Prior art date
Application number
KR1020120011196A
Other languages
English (en)
Other versions
KR20120031971A (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
Priority to US12/843,423 priority Critical
Priority to US12/843,423 priority patent/US8826051B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20120031971A publication Critical patent/KR20120031971A/ko
Application granted granted Critical
Publication of KR101699104B1 publication Critical patent/KR101699104B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 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; 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 power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/12Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon the main processing unit
    • Y02D10/126Frequency modification

Abstract

비-휘발성 메모리를 구비하는 시스템에 전력을 동적으로 할당하는 시스템 및 방법이 개시된다. 시스템의 전력 예산 매니저는 시스템을 위해 이용가능한 총 전력량이 미리-결정된 전력 레벨 아래(예컨대, 저전력 상태)인지를 결정할 수 있다. 시스템이 저전력 상태에서 동작하는 동안, 전력 예산 매니저는 시스템의 다양한 컴포넌트들(예컨대, 프로세서 및 비-휘발성 메모리)에게 전력을 동적으로 할당할 수 있다.

Description

비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당{DYNAMIC ALLOCATION OF POWER BUDGET FOR A SYSTEM HAVING NON-VOLATILE MEMORY}

본 출원은 비-휘발성 메모리를 구비한 시스템의 하나 이상의 전력 상태들에 기초하여 이 시스템에 전력을 동적으로 할당하는 것에 관한 것이다.

NAND 플래시 메모리뿐만 아니라 다른 유형의 비-휘발성 메모리들("NVM")이 대량 저장을 위해 통상적으로 이용된다. 예를 들어, 휴대용 미디어 플레이어들 또는 셀룰러 전화기와 같은 전자 디바이스들은 종종 음악, 비디오, 및 다른 미디어를 저장하는 원 제품(raw) 플래시 메모리 또는 플래시 카드를 포함한다.

전자 디바이스는 배터리와 같은 내부 전원에 의해 공급되는 전력을 이용하여 작동할 수 있는데, 이 내부 전원은 자신을 다시 채워주도록 때마다 충전을 요구할 것이다. 내부 전원은 전자 디바이스를 충전 디바이스에 결합시킴으로써(예컨대, 충전 디바이스의 단자들을 전자 디바이스들의 단자들에 물리적으로 접속함으로써) 재충전될 수 있다.

그러나, 충전 디바이스가 처음 전자 디바이스에 결합된 경우, 전자 디바이스가 충전 디바이스로부터 제한된 양의 전력만을 인출(draw)할 수 있는 시 구간이 있을 수 있다. 이 시 구간 동안에, 이런 제한된 전력 예산하에서 동작하는 경우, 전자 디바이스의 특정 컴포넌트들 또는 이런 컴포넌트들의 조합은 기능을 하지 못할 수 있거나, 또는 자신들의 기능이 충분히 발휘되지 못하는 약점을 가질 수 있다.

하나 이상의 전력 상태들에 기초하여 시스템에 대해 전력을 동적으로 할당하기 위한 시스템들 및 방법들이 개시된다. 본 시스템들은 프로세서, 비-휘발성 메모리("NVM"), 및 전력 예산 매니저를 포함할 수 있는 전자 디바이스(예컨대, 휴대용 미디어 플레이어 또는 셀룰러 전화기)를 포함할 수 있다.

NVM은 예를 들어 플래시 메모리(예컨대, NAND 플래시 메모리)와 같이 임의의 적절한 유형의 메모리일 수 있다. NVM은 하나 이상의 NVM 다이들과 이런 다이들의 액세싱과 동작을 인에이블하는 관련 회로를 포함할 수 있다. 일부 실시예들에서, NVM은 자신의 컨트롤러 및 에러 정정 코드 모듈과 같은 다른 컴포넌트들을 또한 포함할 수 있다.

전력 예산 매니저(power budgeting manager)(예컨대, 디바이스 프로세서상에서 또는 NVM상에서 구현됨)는 이용가능한 전력량을 모니터하고, 프로세서, NVM, 및 시스템 내의 임의의 다른 컴포넌트의 각각에게 전력 예산을 동적으로 할당하거나 또는 프로세서 및/또는 NVM 내의 컴포넌트들에게 전력 예산을 동적으로 할당할 수 있다. 예를 들어, 일 실시예에서, 전력 예산 매니저는 시스템이 저전력 상태에서 동작하고 있는 것을 검출할 수 있다. 여기서 정의되는 대로의 저전력 상태는 시스템이 외부 충전 소스로부터 적은 양의 전력(예컨대, 미리 결정된 100 ㎃의 전력 레벨)을 수신하고 있는 경우 및 시스템의 내부 전원(예컨대, 배터리)이 전자 디바이스에게 전력을 공급할 수 없는 경우를 말한다. 이런 저전력 상태는 예를 들어 전자 디바이스와 외부 충전 디바이스 간의 USB(Universal Serial Bus) 프로토콜 핸드쉐이킹 시퀀스 동안에 존재할 수 있다. 저전력 상태를 검출하는 것에 응답하여, 전력 예산 매니저는 시스템의 하나 이상의 컴포넌트들의 각각의 컴포넌트에게 각각의 전력 예산을 동적으로 할당할 수 있다. 예를 들어, 전력 예산 매니저는, 프로세서 및 NVM이 저전력 상태 동안 전체적으로 이용가능한 전력을 초과하지 않게 동작할 수 있도록, 프로세서 및 NVM의 각각에게 전력 예산을 동적으로 할당할 수 있다.

각각의 컴포넌트들(예컨대, 프로세서 또는 NVM)에 대한 전력 예산이 임의의 수의 기술들을 이용하여 구현될 수 있다. 예를 들어, 일 실시예에서, 전력 예산 매니저는 프로세서를 스톨링(stall)할 수 있는데, 이는 프로세서가 동작하는 것을 방지함으로써 전력을 아껴 전력 예산을 고수하게 한다. 프로세서는 클록 게이팅(clock gating)과 같은 다수의 기술(예컨대, 프로세서 회로의 하나 이상의 부분들을 디스에이블링함으로써)에 의해 스톨링될 수 있다. 또 다른 예로서, 프로세서는 그 클록 속도를 조절(throttle)함으로써(예컨대, 클록 속도를 미리 결정된 레벨로 감소시킴으로써) 스톨링될 수 있다. 또 다른 예로서, 전력 예산 매니저는 예를 들면 NVM의 하나 이상의 컴포넌트들에게 전력을 세분함(subdividing)으로써 NVM의 전력 소비량을 제어할 수 있다.

전력 예산 매니저는 또한 임의의 적절한 기술을 이용하여 프로세서의 스톨링(stalling)을 중단(interrupt)할 수 있다. 예를 들어, 전력 예산 매니저는 NVM 컨트롤러에 의해 발행된 하나 이상의 플래그들을 수신하는 것에 응답하여 프로세서의 스톨링을 중단할 수 있으며, 상기 하나 이상의 플래그들은 하나 이상의 메모리 동작들이 완료된 때를 나타낼 수 있다. 또 다른 예로서, 전력 예산 매니저는 NVM 컨트롤러로부터의 중단 요청을 수신하는 것에 응답하여 프로세서의 스톨링을 중단할 수 있다.

일부 실시예들에서, 전력 예산 매니저가, 현재 전력 레벨이 저전력 상태의 전력 레벨을 초과하는 것을 검출하면, 전력 예산 매니저는 시스템의 하나 이상의 컴포넌트들의 각각의 컴포넌트에 할당된 각각의 전력 예산을 제거할 수 있다. 각각의 전력 예산들이 제거된 후, 시스템의 컴포넌트들은 외부 충전 디바이스로부터 필요한 만큼의 전류를 인출할 수 있다. 다른 실시예들에서, 전력 예산 매니저는 시스템의 다양한 컴포넌트들의 전력 소비량을 모니터하고 그에 따라 전력을 할당할 수 있다.

본 발명의 상기 및 다른 양태들 및 장점들은 첨부도면들과 함께 이하의 상세한 설명을 고려하면 더욱 명백해질 것이며, 첨부도면들 전반에 걸쳐 동일한 참조부호들은 동일한 부분들을 가리킨다.
도 1 및 2는 본 발명의 다양한 실시예들에 따라 구성된 전자 디바이스들의 개략도를 도시하는 도면.
도 3은 본 발명의 다양한 실시예들에 따라 구성된 예시적인 전자 시스템의 개략도를 도시하는 도면.
도 4는 본 발명의 다양한 실시예들에 따른 전자 디바이스의 컴포넌트들에 대한 예시적인 전력 예산 할당의 그래프를 도시하는 도면.
도 5는 본 발명의 다양한 실시예들에 따른 동적 전력 할당을 위한 예시적인 프로세스의 흐름도를 도시하는 도면.
도 6은 본 발명의 다양한 실시예들에 따라 시스템 내에서 전력 예산들을 할당하기 위한 예시적인 프로세스의 흐름도를 도시하는 도면.

도 1은 전자 디바이스(100)의 개략도이다. 일부 실시예들에서, 전자 디바이스(100)는 휴대형 미디어 플레이어(예컨대, 캘리포니아주 쿠퍼티노의 애플사에 의해 이용가능하게 만들어진 iPodTM), 셀룰러 전화기(예컨대, 애플사에 의해 이용가능하게 만들어진 iPhoneTM), 포켓 사이즈 퍼스널 컴퓨터, "PDA"(personal digital assistance), 데스크탑 컴퓨터, 랩탑 컴퓨터, 및 임의의 다른 적절한 유형의 전자 디바이스이거나 이들을 포함할 수 있다.

전자 디바이스(100)는 "SoC"(system-on-a-chip)(110) 및 "NVM"(non-volatile memory)(120)를 포함할 수 있다. NVM(120)은 플로팅 게이트 또는 전하 트래핑(charge trapping) 기술에 기초한 NAND 플래시 메모리, NOR 플래시 메모리, "EPROM"(erasable programmable read only memory), "EEPROM"(electrically erasable programmable read only memory), "FRAM"(Ferroelectric RAM), "MRAM"(magnetoresistive RAM), 임의의 다른 공지된 또는 미래의 비-휘발성 메모리 기술의 유형, 또는 이들의 임의의 조합을 포함할 수 있다.

일부 실시예들에서, NVM(120)은 내부 칩 선택(internal chip select) 신호들을 이용하여 내부 채널들(예컨대, NVM 컨트롤러(122)와 NVM 다이들(124) 간의 하나 이상의 데이터 경로들)을 통해 NVM 다이들(124)을 액세스하고 관리하기 위한 NVM 컨트롤러(122)를 포함할 수 있다. 일부의 경우, NVM 컨트롤러(122)는 NVM 다이들(124) 중 임의의 다이를 선택적으로 인에이블할 수 있다. 예를 들어, NVM 다이들(124) 중 특정 다이에 액세스하기 위해 디바이스 프로세서(112)로부터의 요청(예컨대, 판독, 프로그램, 또는 소거(erase) 요청)을 수신하는 것에 응답하여, NVM 컨트롤러(122)는 디바이스 프로세서(112)에 의해 요청된 다이를 선택적으로 인에이블할 수 있다.

NVM 컨트롤러(122)는 웨어 레벨링(wear leveling), 불량 블록 관리, 및 논리-대-물리 변환(logical-to-physical translation) 동작들 등의 메모리 관리 기능들을 수행할 수 있다. NVM(120)은 데이터 에러들(예컨대, 플립된 비트들(flipped bits))을 검출 및 정정하기 위한 "ECC"(error correction code) 엔진(126)을 포함할 수 있다. ECC 엔진(126)은 점선 박스로 도시되어, 상이한 위치들에서 그 기능이 구현될 수 있다는 것을 나타낸다. 일부 실시예들에서, ECC 엔진(126)은 NVM 컨트롤러(122) 내의 하드웨어 컴포넌트로서 또는 NVM 컨트롤러(122)에 의해 실행되는 소프트웨어 컴포넌트로서 구현될 수 있다. 일부 실시예들에서, ECC 엔진(126)은 NVM(120) 내의 독립형 모듈일 수 있다.

NVM 컨트롤러(122)에 의해 구현된 하나 이상의 기능들은 SoC(110)에 의해 구현될 수 있다는 것이 이해된다. 따라서, 일부 실시예들에서, NVM 컨트롤러(122)는 SoC(110)의 일 부분으로서 포함될 수 있다. 이러한 실시예에서, NVM(120)은 다이들(124) 및 연관 회로(예컨대, 충전 펌프들, 로우 및 컬럼 디코더들 등)를 포함할 수 있지만, NVM 컨트롤러는 포함하지 않을 것이다.

NVM 다이들(124)은 가장 작은 소거 단위인 "블록들"로 구성될 수 있고, 또한, 가장 작은 프로그램가능 및 판독가능 단위인 "페이지들"로 구성될 수 있다. 각각의 다이(124)는 하나 이상의 평면들(또는 뱅크들)로 배열될 수 있는 복수의 블록을 포함할 수 있다. 각각의 평면 또는 다이로부터의 블록들은 "슈퍼 블록들"을 형성하도록 서로 가상으로 링크될 수 있다. NVM 다이들(124)의 각각의 메모리 위치(예컨대, 페이지 또는 블록)는 물리적 어드레스(예컨대, 물리적 페이지 어드레스 또는 물리적 블록 어드레스)를 이용하여 어드레싱될 수 있다.

도 1은, 다음의 도면들 및 개시된 다양한 실시예들과 함께, 때로는 플래시 기술을 이용하는 측면에서 기술될 수 있다. 그러나, 이것은 한정하기 위한 것이 아니고, 임의의 다른 유형의 비-휘발성 메모리가 대신 구현될 수 있다. 전자 디바이스(100)는, 예를 들어, 전원 또는 임의의 사용자 입력 또는 출력 컴포넌트들과 같은 다른 컴포넌트들을 포함할 수 있는데, 이들은 도면이 과도하게 복잡하게 되는 것을 방지하도록 도 1에는 도시되지 않았다.

SoC(110)는 디바이스 프로세서(112), 메모리(114), 및 NVM 인터페이스(118)를 포함할 수 있다. 디바이스 프로세서(112)는 SoC(110) 및 SoC(110)의 다른 컴포넌트들 또는 디바이스(100)의 일반적인 동작들 및 기능들을 제어할 수 있다. 예를 들어, 사용자 입력들 및/또는 애플리케이션 또는 운영 시스템의 명령들에 응답하여, 디바이스 프로세서(112)는 NVM(120)으로부터 데이터를 획득하기 위해 또는 NVM(120)에 데이터를 저장하기 위해 NVM 인터페이스(118)에 판독 또는 기입 커맨드를 발행할 수 있다. 즉, NVM 인터페이스(118)는 NVM(120)과 디바이스 프로세서(112) 간의 통신을 인에이블할 수 있다. 명확화를 위해, 디바이스 프로세서(112)가 저장 또는 검색을 위해 요청할 수 있는 데이터는, 그 데이터가 사용자 또는 사용자 애플리케이션과 직접적으로 연관되어 있지 않더라도, "사용자 데이터"로 지칭될 수 있다. 오히려, 사용자 데이터는 디바이스 프로세서(112)(예컨대, 애플리케이션 또는 운영 시스템을 통해)에 의해 생성되거나 획득된 임의의 적절한 디지털 정보의 시퀀스일 수 있다.

디바이스 프로세서(112)는 하드웨어, 소프트웨어 및 펌웨어의 임의의 조합, 및 임의의 컴포넌트들, 회로, 또는 전자 디바이스(100)의 기능을 구동하도록 동작하는 로직을 포함할 수 있다. 예를 들어, 디바이스 프로세서(112)는 NVM(120) 또는 메모리(114)에 저장된 소프트웨어/펌웨어의 제어하에 동작하는 하나 이상의 프로세서들을 포함할 수 있다.

일부 실시예에서, 디바이스 프로세서(112)는 전력 예산 매니저(128)를 포함할 수 있고, 이것은 전력 예산들을 전자 디바이스(100)의 하나 이상의 컴포넌트들에 동적으로 할당할 수 있다. 하나 이상의 컴포넌트들은, 예를 들어, 디바이스 프로세서(112), NVM(120), NVM 인터페이스(118), 및 전자 디바이스(100)의 임의의 다른 적절한 컴포넌트(들)를 포함할 수 있다. 일부 실시예에서, 전력 예산들은 전자 디바이스(100)에 이용가능하거나 또는 SoC(110) 및 NVM(120)에 이용가능한 총 전력량에 기초하여 할당될 수 있다. 전력 예산 매니저(128)가 도 1에서 디바이스 프로세서(112)상에 구현되는 것으로 도시되었지만, 당업자는 전력 예산 매니저(128)가 추가로 또는 대신에 NVM 컨트롤러(122) 상에서 구현될 수 있다는 것을 알 것이다. 동적 전력 할당들이 도 3 - 도 5와 관련하여 이하에 더 상세히 기술될 것이다.

메모리(114)는 "DRAM(dynamic random access memory)", "SDRAM(synchronous dynamic random access memory)", "DDR(double-data-rate)" RAM, 캐시 메모리, "ROM(read-only memory)" 또는 이들의 임의의 조합과 같은 임의의 적절한 유형의 휘발성 또는 비-휘발성 메모리를 포함할 수 있다. 메모리(114)는 NVM(120)으로의 프로그래밍을 위해 또는 NVM(120)으로부터의 판독을 위해 사용자 데이터를 임시로 저장할 수 있는 데이터 소스를 포함할 수 있다. 일부 실시예에서, 메모리(114)는 디바이스 프로세서(112)의 부분으로서 구현되는 임의의 프로세서들에 대한 주 메모리로서 동작할 수 있다.

NVM 인터페이스(118)는 하드웨어, 소프트웨어, 및/또는 디바이스 프로세서(112)와 NVM(120)간의 인터페이스 또는 드라이버로서 동작하도록 구성되는 펌웨어의 임의의 적절한 조합을 포함할 수 있다. NVM 인터페이스(118)에 포함되는 임의의 소프트웨어 모듈들에 대해, 대응하는 프로그램 코드가 NVM(120) 또는 메모리(114)에 저장될 수 있다.

NVM 인터페이스(118)는 디바이스 프로세서(112)가 NVM(120)에 액세스하고, NVM(120)의 메모리 위치들(예컨대, 페이지들, 블록들, 슈퍼 블록들, 집적 회로들) 및 그곳에 저장된 데이터(예컨대, 사용자 데이터)를 관리하도록 하는 다양한 기능들을 수행할 수 있다. 예를 들어, NVM 인터페이스(118)는 디바이스 프로세서(112)로부터 판독 또는 기입 커맨드를 해석할 수 있고, 웨어 레벨링(wear leveling)을 수행할 수 있고, NVM(120)의 버스 프로토콜과 호환되는 판독 및 프로그램 명령을 생성할 수 있다.

NVM 인터페이스(118) 및 디바이스 프로세서(112)가 별개의 모듈들로 도시되었지만, 이것은 단지 본 발명의 실시예들의 기술을 단순화하기 위한 의도이다. 이러한 모듈들은 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 또는 이들 양자 모두를 공유할 수 있다는 것이 이해되어야 한다. 예를 들어, 디바이스 프로세서(112)의 부분으로서 구현된 프로세서는 NVM 인터페이스(118)에 대한 소프트웨어-기반 메모리 드라이버를 실행할 수 있다. 따라서, 디바이스 프로세서(112) 및 NVM 인터페이스(118)의 부분들은 때때로 총괄하여 "프로세서"로 지칭될 수 있다.

도 1은 NVM(120)이 그 자신의 컨트롤러(예컨대, NVM 컨트롤러(122))를 구비할 수 있는 전자 디바이스를 도시하고 있다. 일부 실시예들에서, 전자 디바이스(100)는, NVM 인터페이스(118)의 일부 또는 전 부분들(예컨대, 후술하는 변환 계층) 및 NVM(120)을 포함하는, 플래시 또는 SD 카드와 같은 타겟 디바이스를 포함할 수 있다. 이러한 실시예들에서, SoC(110) 또는 디바이스 프로세서(112)는 타겟 디바이스를 위한 호스트 컨트롤러로서 동작할 수 있다. 예를 들어, 호스트 컨트롤러로서, SoC(110)는 타겟 디바이스로 판독 및 기입 요청들을 발행할 수 있다.

도 2는 전자 디바이스(200)를 개략도이며, 하나 이상의 실시예에 따라 전자 디바이스(100)의 펌웨어, 소프트웨어 및/또는 하드웨어 컴포넌트들(도 1)의 일부를 보다 상세히 나타내고 있다. 전자 디바이스(200)는 도 1에 도시된 디바이스(100)와 관련하여 전술한 특징들 및 기능들 중 임의의 것을 가질 수 있으며, 그 반대의 경우도 가능하다. 전자 디바이스(200)는 파일 시스템(210), NVM 드라이버(212), NVM 버스 컨트롤러(216) 및 NVM(220)을 포함할 수 있다. 일부 실시예들에서, 파일 시스템(210) 및 NVM 드라이버(212)는 소프트웨어 또는 펌웨어 모듈들일 수 있으며, NVM 버스 컨트롤러(216) 및 NVM(220)은 하드웨어 모듈들일 수 있다. 따라서, 이러한 실시예들에서, NVM 드라이버(212)는 NVM 인터페이스(218)의 소프트웨어 또는 펌웨어 양태를 나타낼 수 있으며, NVM 버스 컨트롤러(216)는 NVM 인터페이스(218)의 하드웨어 양태를 나타낼 수 있다.

파일 시스템(210)은 임의의 적절한 유형의 파일 시스템을 포함할 수 있으며, 전자 디바이스(200)의 운영 시스템의 일부(예컨대, 도 1의 디바이스 프로세서(112)의 일부)일 수 있다. 일부 실시예들에서, 파일 시스템(210)은 페이지들의 물리적 매핑에 논리를 제공할 수 있는 플래시 파일 시스템을 포함할 수 있다. 파일 시스템(210)은 후술하는 NVM 드라이버(212)의 기능들의 일부 또는 전부를 수행할 수 있으며, 그에 따라 파일 시스템(210) 및 NVM 드라이버(212)는 별개의 모듈들이거나 또는 별개의 모듈이 아닐 수 있다.

파일 시스템(210)은 애플리케이션 및/또는 운영 시스템을 위한 파일 및 폴더 구조들을 관리할 수 있다. 파일 시스템(210)은 전자 디바이스(200)상에서 실행되는 애플리케이션 또는 운영 시스템의 제어하에서 동작할 수 있으며, 애플리케이션 또는 운영 시스템이 NVM(220)으로부터 정보가 판독되도록 요청하거나 또는 NVM(220)에 정보가 저장되도록 요청할 때 NVM 드라이버(212)에게 기입 및 판독 커맨드들을 제공할 수 있다. 파일 시스템(210)은, 각각의 판독 또는 기입 커맨드와 함께, 사용자 데이터가 판독 또는 기입되어야 하는 곳을 표시하기 위해 논리적 어드레스를 제공할 수 있는데, 논리적 어드레스는 페이지 오프셋을 갖는 논리적 페이지 어드레스 또는 논리적 블록 어드레스 등이다.

파일 시스템(210)은 NVM(220)과 직접 호환하지 않는 NVM 드라이버(212)에게 판독 및 기입 요청들을 제공할 수 있다. 예를 들어, 논리적 어드레스들은 하드-드라이브-기반(hard-drive-based) 시스템들의 전형적인 컨벤션들 또는 프로토콜들을 이용할 수 있다. 하드-드라이브-기반 시스템은, 플래시 메모리와는 달리, 먼저 블록 소거를 수행하지 않고서 메모리 위치를 겹쳐 쓸 수 있다. 더욱이, 하드 드라이브들은 그 디바이스의 수명을 증가시키기 위한 웨어 레벨링(wear leveling) 또는 플래시 기반 디바이스들에 특정한 다른 기법들을 필요로 하지 않을 수 있다. 따라서, NVM 인터페이스(218)는 메모리-특정, 벤더-특정 또는 양자에 특정한 임의의 기능들을 수행하여 파일 시스템 요청들을 처리하고 NVM(220)에 적절한 방식으로 다른 관리 기능들을 수행할 수 있다. NVM 드라이버(212)는 변환 계층(214)을 포함할 수 있다. 일부 실시예들에서, 변환 계층(214)은 플래시 변환 계층("FTL")이거나 또는 플래시 변환 계층("FTL")을 포함할 수 있다. 기입 동작시, 변환 계층(214)은 제공된 논리적 어드레스를 NVM(220)상의 비어있는(free) 소거된 물리적 위치에 매핑할 수 있다. 판독 동작시, 변환 계층(214)은 제공된 논리적 어드레스를 이용하여 요청된 데이터가 저장되는 물리적 어드레스를 결정할 수 있다. 각각의 NVM이 NVM의 사이즈 또는 벤더에 따라 상이한 레이아웃을 가질 수 있기 때문에, 이 매핑 동작은 메모리 및/또는 벤더 특정일 수 있다. 변환 계층(214)은 논리적-물리적 어드레스 매핑에 더하여 임의의 다른 적절한 기능들을 수행할 수 있다. 예를 들어, 변환 계층(214)은 가비지 컬렉션(garbage collection) 또는 웨어 레벨링과 같이 플래시 변환 계층들을 대표할 수 있는 그 외의 기능들 중 임의의 기능을 수행할 수 있다.

NVM 드라이버(212)는 NVM 버스 컨트롤러(216)와 인터페이싱하여 NVM 액세스 요청들(예컨대, 프로그램, 판독 및/또는 소거 요청들)을 완료할 수 있다. 버스 컨트롤러(216)는 NVM(220)에 대한 하드웨어 인터페이스로서 동작할 수 있으며, NVM(220)의 버스 프로토콜, 데이터 레이트 및/또는 다른 상세들을 이용하여 NVM(220)과 통신할 수 있다.

NVM 인터페이스(218)는 본 명세서에서 때때로 "메타데이터"로 지칭되는 메모리 관리 데이터에 기초하여 NVM(220)을 관리할 수 있다. 메타데이터는 NVM 드라이버(212)에 의해 생성되거나 또는 NVM 드라이버(212)의 제어하에 동작하는 모듈에 의해 생성될 수 있다. 예를 들어, 메타데이터는 논리적 어드레스와 물리적 어드레스 간의 매핑, 배드(bad) 블록 관리, 웨어 레벨링, "ECC" 데이터 또는 이들의 임의의 조합을 관리하는데 이용되는 임의의 정보를 포함할 수 있다. 메타데이터는 논리적 어드레스와 같은 사용자 데이터와 함께, 파일 시스템(210)에 의해 제공되는 데이터를 포함할 수 있다. 따라서, 일반적으로, "메타데이터"는 비-휘발성 메모리의 동작 및 메모리 위치들을 관리하는데 일반적으로 이용되거나 또는 사용자 데이터에 관한(about) 혹은 관련된(relating to) 임의의 정보를 지칭할 수 있다.

NVM 인터페이스(218)는 NVM(220)에 메타데이터를 저장하도록 구성될 수 있다. 일부 실시예들에서, NVM 인터페이스(218)는 사용자 데이터와 연관된 메타데이터를, 사용자 데이터가 저장되는 동일한 메모리 위치(예컨대, 페이지)에 저장할 수 있다. 예를 들어, NVM 인터페이스(218)는 NVM(220)의 하나 이상의 메모리 위치에 사용자 데이터, 연관된 논리적 어드레스, 및 그 사용자 데이터를 위한 ECC 데이터를 저장할 수 있다. NVM 인터페이스(218)는 또한 사용자 데이터에 관한 다른 유형들의 메타데이터를 동일한 메모리 위치에 저장할 수 있다. 예를 들어, 메타데이터는 저장된 데이터가 양호한 데이터인지 여부를 표시하는 플래그를 포함할 수 있다.

NVM 인터페이스(218)는, NVM(220)의 구동(power-up)시 또는 NVM(220)의 동작 동안에, 전자 디바이스(200)가 특정한 위치에 어떤 데이터가 상주하는지를 결정할 수 있도록, 논리적 어드레스 및 연관된 사용자 정보 자체를 저장할 수 있다. 특히, 파일 시스템(210)이 그 물리적 어드레스가 아니라 그 논리적 어드레스에 따라 사용자 데이터를 참조할 수 있기 때문에, NVM 인터페이스(218)는 사용자 데이터 및 논리적 어드레스를 함께 저장하여 그 연관관계를 유지할 수 있다. 예를 들어, NVM 인터페이스(218)가 논리적 섹터들을 물리적 페이지들에 직접 매핑하는 실시예들에서, NVM 인터페이스(218)는 정보 자체뿐만 아니라 논리적-물리적 매핑들을 NVM에서의 페이지들에 저장할 수 있다.

이제 도 3을 참조하면, 예시적인 전자 시스템의 개략도가 도시된다. 전자 시스템(300)은 전자 디바이스(302) 및 외부 충전 소스(310)를 포함할 수 있다. 일부 실시예들에서, 전자 디바이스(302)는 도 1의 전자 디바이스(100) 및/또는 도 2의 전자 디바이스(200)와 동일하거나 또는 실질적으로 유사할 수 있다.

예를 들면, 전자 디바이스(302)는 호스트 시스템 또는 프로세서(304)(예컨대, 도 1의 SoC (110)) 및 NVM(306)(예컨대, 도 1의 NVM(120) 또는 도 2의 NVM(220))을 포함할 수 있다. 몇몇의 경우에, 전자 디바이스(302)는, 적어도 미리 결정된 레벨로 충전될 때, 전자 디바이스(302)에 전력을 공급할 수 있는 배터리(308)를 포함할 수 있다. 그러나, 전자 디바이스(302)가 장기간 동안 충전되지 않은 상태로 남아 있을 때, 배터리(308)는 실질적으로 자신의 모든 전하가 점차 없어질 수 있다. 그러한 상태에서, 배터리(308)는 전자 디바이스(302) 및 하나 이상의 자신의 컴포넌트들에게 전력을 공급하지 못할 수 있다.

일부 실시예들에서, 전자 디바이스(302)는 하나 이상의 전력 접속(336)을 통해 전자 디바이스(302)를 외부 충전 디바이스(310)에 결합시킴으로써 재충전될 수 있다. 외부 충전 디바이스(310)는 전자 디바이스(302)에 전력을 공급할 수 있는 임의의 적절한 전자 충전 디바이스 또는 시스템을 포함할 수 있다. 예를 들면, 외부 충전 디바이스(310)는 랩탑 컴퓨터, 전력 공급 장치, 또는 도킹 스테이션(docking station)을 포함할 수 있다. 더욱이, 전력 접속(336)은, 예를 들어, USB(Universal Serial Bus) 접속, USB 2.0 접속, 직렬 접속, 병렬 접속, 파이어와이어(FireWire) 접속, 임의의 다른 적절한 유선 또는 무선 전력 접속, 및/또는 그들의 임의의 조합을 포함할 수 있다.

그러나, 전자 디바이스(302)가 전력 접속(336)을 통해 외부 충전 디바이스(310)에 처음 결합될 때, 외부 충전 디바이스(310)로부터 인출될 수 있는 전류량은 제한될 수 있다. 예를 들면, 전자 디바이스(302)가 USB 접속을 사용하여 외부 충전 디바이스(310)에 결합된다면, 전자 디바이스(302)는, 최대 전력량(예컨대, 500 mAmps, 1 Amp, 또는 2 Amps의 최대 전류)이 외부 충전 디바이스(310)로부터 인출될 수 있기 전에, 외부 충전 디바이스(310)와의 핸드쉐이킹 단계(handshaking phase)를 완료하는 것이 우선 필요할 수 있다. 핸드쉐이킹 단계는 전자 디바이스(302)가 충전 디바이스(310)로부터 얼마나 많은 전류를 인출할 수 있는지를 결정하기 위한 전자 디바이스(302)와 외부 충전 디바이스(310) 간의 교섭 프로세스일 수 있다. 핸드쉐이킹 단계 동안, 제한된 양의 전력이 공급되지만, 핸드쉐이크가 완료된 후에는, 전력 레벨에 대한 "동의(agreed)"가 제공될 수 있다.

결과적으로, 핸드쉐이킹 단계를 완료하기 전에, 전자 디바이스(302)는 단지 외부 충전 디바이스(310)로부터 제한된 전력량(예컨대, 정상 동작 동안 100 mAmps의 최대 전류 대 500 mAmps의 최대 전류)만을 인출할 수 있다. 따라서, 제한된 전력 예산이 주어지면, 프로세서(304)는 선택 컴포넌트(들)의 동작을 인에이블하기에 충분한 전력이 제공되는 것을 보장하기 위해 다양한 컴포넌트들(예컨대, NVM 및 프로세서) 사이에 전력을 동적으로 할당할 필요가 있을 수 있다.

당업자는, 전력을 프로세서(304) 및 NVM(306)에 동적으로 할당하는 것에 부가하여, 또는 그 대신에, 전자 디바이스(302)의 임의의 다른 컴포넌트(들)을 위해 전력이 동적으로 할당될 수 있다는 것을 이해할 것이다. 당업자는 또한, 이러한 논의가 USB 프로토콜로부터 발생하는 저전력 상태와 관련이 있지만, 전자 디바이스(302)는 다수의 컴포넌트 사이에 전력을 동적으로 할당함으로써 임의의 저전력 시나리오에 응답할 수 있다. 따라서, 저전력 상태는, 전자 디바이스(302)가 정상 동작 모드들(예컨대, 음악을 재생하거나 또는 셀 폰 호출을 용이하게 하는 것)에서 동작할 수 있도록 내부 전력 소스(예컨대, 배터리(308))가 전자 디바이스(302)에 충분한 전력을 제공할 수 없는 임의의 상태일 수 있다. 동시에, 외부 충전 디바이스(예컨대, 외부 충전 디바이스(310)) 또한 전자 디바이스(302)에게 적은 양(예컨대, 미리 정해진 100 mA의 전력 레벨)의 전력을 제공하고 있을 수 있다.

도 4는 전자 디바이스(예컨대, 도 1의 전자 디바이스(100), 도 2의 전자 디바이스(200), 또는 도 3의 전자 디바이스(302))의 컴포넌트들을 위한 예시적인 전력 예산 할당(400)을 도시한다. 당업자는, 시구간 t 0 내지 t 5 는 스케일링하도록 도시된 것이 아니고, 따라서, 일부 경우에, 일부 시구간들은 다른 시구간들에 비해 실질적으로 상당히 더 길거나 더 짧을 수 있다는 것을 이해할 것이다.

시간 t 0 에서, 전력 예산 매니저(예컨대, 도 1의 전력 예산 매니저(128))는 메모리 시스템이 저전력 상태에서 동작하고 있다는 것을 결정할 수 있다. 결과적으로, 전력 예산 매니저는 전력 예산(402)을 프로세서(예컨대, 도 1의 SoC(110) 또는 도 3의 프로세서(304))에 할당할 수 있고, 전력 예산(404)를 NVM(예컨대, 도 1의 NVM(120), 도 2의 NVM(220), 또는 도 3의 NVM(306))에 할당할 수 있다. 전력 예산들(402 및 404)의 조합은 전력 레벨(420)과 동일하거나 더 적을 수 있다. 시간 t0 및 t5 사이에서, 전력 레벨(420)은 핸드쉐이킹 단계 동안 제공된 전력 레벨(예컨대, 100 mAmps)일 수 있고, 시간 t5 후에, 전력 레벨(422)은 핸드쉐이킹 단계가 완료된 후 동안 제공되는 전력 레벨(예컨대, 500 mAmps, 1 Amp, 또는 2 Amps)일 수 있다. 부가하여, 프로세서는 초기에 더 많은 전력(예컨대, 하나 이상의 요청들을 발행하기 위한 추가 전력)을 사용할 필요가 있기 때문에, 전력 예산(402)은 전력 예산(404)보다 더 높을 수 있다.

다음에, 시간 t 0 와 시간 t 1 사이에서, 프로세서는 NVM을 액세스하기 위해 요청(예컨대, 판독, 소거 또는 프로그램 요청)을 발행할 수 있다. 일 실시예에서, 프로세서는 시스템 부트-업(boot-up)을 위해 NVM이 하나 이상의 프로그램들(예컨대, 운영 시스템)을 로딩하도록 요청을 발행할 수 있다.

요청이 발행된 후에, 시간 t 1 에서, 전력 예산 매니저는 전력 예산들(406 및 408)을 프로세서 및 NVM에게 각각 할당할 수 있다. 전력 예산들(406 및 408)의 조합은 전력 레벨(420)과 동일하거나 더 적을 수 있다.

일부 경우에, 프로세서가 요청을 발행한 후에는 임의의 다른 중요한 동작들을 수행할 필요가 없을 수 있기 때문에 시간 t 1 에서 프로세서에게 더 작은 양의 전력이 할당될 수 있다. 따라서, 전력 예산(406)은 전력 예산(402)보다 더 적을 수 있다.

대조적으로, NVM은 프로세서로부터의 (예컨대, 시스템 부트-업을 위한 하나 이상의 프로그램들을 로딩하는) 요청을 수신한 후에는 대부분의 시스템 동작들을 수행할 수 있기 때문에, NVM은 프로세서에 비해 부가의 전력을 필요로 할 수 있다. 따라서, 전력 예산(408)은 전력 예산(406)보다 더 높을 수 있다.

일부 실시예들에서, 시간 t 1 과 시간 t 2 사이에 프로세서가 전력 예산(406)을 만족시키기 위해서는, 전력 예산 매니저가 프로세서를 스톨링할 수 있다. 예를 들면, 전력 예산 매니저는 프로세서를 클록 게이팅(clock gating)함으로써 (예컨대, 프로세서 회로의 하나 이상의 부분들을 디스에이블함으로써) 프로세서를 스톨링할 수 있다. 또 다른 예에서, 전력 예산 매니저는 프로세서의 클록 속도를 조절(throttling)함으로써 (예컨대, 클록 속도를 최소 레벨로 줄임으로써) 프로세서를 스톨링할 수 있다.

다음에, 시간 t 2에서, 전력 예산 매니저는 중단 요청(interrupt request)을 수신하는 것에 응답하여 프로세서의 스톨링을 중단시킬 수 있다. 예를 들어, 전력 예산 매니저는 전자 시스템(예컨대, 도 3의 전자 시스템(300))의 하나 이상의 컴포넌트들로부터 중단 요청을 수신할 수 있다. 일부 실시예들에서, 전력 예산 매니저는 NVM으로부터 중단 요청을 수신했을 수 있다. 예를 들어, NVM 컨트롤러(예컨대, 도 1의 NVM 컨트롤러(122))는 더 높은 전력 레벨에서 동작하도록 프로세서에게 명령하는 중단 요청을 프로세서에게 제공할 수 있다. 또 다른 예로서, NVM 컨트롤러는 하나 이상의 플래그들을 발행할 수 있는데, 여기서, 하나 이상의 플래그들은 하나 이상의 메모리 동작들이 완료되었을 때를 나타낼 수 있다.

프로세서의 스톨링을 중단시키기 위한 요청이 수신되었다는 것을 전력 예산 매니저가 결정한다면, 전력 예산 매니저는 전력 예산들(402 및 404)을 프로세서 및 NVM에게 각각 할당할 수 있다. 따라서, 일부 실시예들에서, 시간 t 2 와 시간 t 3 사이에 할당된 전력 예산들은 시간 t 0 와 시간 t 1 사이에 할당된 전력 예산들과 동일하거나 유사할 수 있다.

시스템 동작들을 계속해서 수행하기 위해(예컨대, 하나 이상의 시스템 애플리케이션들을 실행하기 위해) 프로세서가 추가 전력을 요구할 수 있기 때문에 시간 t 2 에서 프로세서에게 더 높은 양의 전력이 할당될 수 있다. 따라서, 스톨링이 중단된 후 프로세서가 대부분의 시스템 동작들을 수행할 수 있기 때문에, 전력 예산(402)은 전력 예산(404)보다 더 높을 수 있다.

당업자는, 전력 예산 할당(400)에 도시된 전력 예산들이 단지 설명을 위한 것이며, 시스템의 각 컴포넌트에 할당되는 실제 전력 예산들은 하나 이상의 요소들(factors)에 의존한다는 것을 이해할 것이다. 하나 이상의 요소들은, 예를 들면, 시스템의 현재 상태, 시스템의 하나 이상의 미래 상태, 이용가능한 총 전력, 프로세서에 의해 발행되는 요청의 유형(예컨대, 판독, 프로그램 또는 소거 요청), 임의의 다른 적절한 요소, 및/또는 그들의 임의의 조합들을 포함할 수 있다.

따라서, 예를 들어, 시간 t 3 과 시간 t 4 사이에서, 전력 예산 매니저는 이용가능한 전력 거의 모두를 프로세서에 할당할 수 있는데(예컨대, 전력 예산(410)), 이는 그 프로세서가 추가 동작들을 수행하게 해줄 수 있다. 또한, 시간 t 4 과 시간 t 5 사이에서, 전력 예산 매니저는 이용가능한 전력 거의 모두를 NVM에 할당할 수 있는데(예컨대, 전력 예산(412)), 이는 NVM이 추가 동작들을 수행하게 해줄 수 있다.

다음으로, 시간 t 5 에서, 핸드쉐이킹 동작이 완료되고 전력 예산 매니저는 더 이상 저전력 상태에서 동작하는 것에 제한되지 않는다. 이때, 전력 예산 매니저는 새로운 전력 레벨(422)에 따라 전력을 할당할 수 있다.

이제 도 5 및 6을 참조하면, 설명을 위한 프로세스들의 흐름도가 본 발명의 다양한 실시예에 따라 도시되어 있다. 이 프로세스들은 시스템(예컨대, 도 1의 시스템(100)) 내의 하나 이상의 컴포넌트들에 의해 실행될 수 있다. 예를 들어, 전력 예산 매니저(예컨대, 도 1의 전력 예산 매니저(128))는 이 프로세스들의 단계들 중 하나 이상을 수행할 수 있다.

먼저 도 5를 보면, 동적 전력 할당을 위한 프로세스(500)가 도시되어 있다. 프로세스(500)는 단계(502)에서 시작할 수 있는데, 이 단계에서 전력 예산 매니저는 시스템(예컨대, 도 3의 전자 디바이스(302))에 이용가능한 전력량을 모니터링할 수 있다.

단계 504에서, 전력 예산 매니저는, 시스템(예컨대, 도 3의 전자 디바이스(302))에 이용가능한 전력의 총량(total amount)이 미리 결정된 전력 레벨 아래인지를 판정할 수 있다. 만약, 단계(504)에서, 전력 예산 매니저가, 시스템에 이용가능한 전력의 총량이 미리 결정된 전력 레벨 아래가 아니라고 판정한 경우, 프로세스(500)는 단계(506)에서 종료될 수 있다.

단계(504)에서, 전력 예산 매니저가, 시스템에 이용가능한 전력의 총량이 미리 결정된 전력 레벨 아래라고 판정한 경우, 프로세스(500)는 단계(508)로 이동할 수 있다. 예를 들어, 전력 예산 매니저는, 시스템이 저전력 상태에서 동작하고 있다는 것을 검출할 수 있다. 저전력 상태 동안, 전자 디바이스(예컨대, 도 1의 전자 디바이스(100), 도 2의 전자 디바이스(200) 및/또는 도 3의 전자 디바이스(302))의 배터리(예컨대, 도 3의 배터리(308))는 시스템에 전력공급을 못할 수 있다. 동시에, 전자 디바이스는 또한, 외부 충전 디바이스(예컨대, 도 3의 외부 충전 디바이스(310))로부터 전력의 소량(예컨대, 100㎃의 미리 결정된 전력 레벨)만을 받고 있을 수 있다. 예를 들어, 전력 예산 매니저는, 전자 디바이스가 USB 프로토콜을 통해 외부 충전 디바이스와 통신하고 있다는 것과 USB 프로토콜의 핸드쉐이킹 단계가 아직 완료되지 않았다는 것을 검출함으로써, 저전력 상태를 검출할 수 있다.

다음으로, 단계(508)에서, 전력 예산 매니저는, 각각의 전력 예산을, 시스템의 하나 이상의 컴포넌트의 각 컴포넌트에 동적으로 할당할 수 있다. 일부 실시예에서, 전력 예산 매니저는 이용가능한 전력량에 기초하여 각각의 전력 예산들을 할당할 수 있다. 예를 들어, 전력 예산 매니저는, 프로세서(예컨대, 도 1의 SoC(110) 또는 도 3의 프로세서(304))와 NVM(예컨대, 도 1의 NVM(120), 도 2의 NVM(220) 또는 도 3의 NVM(306)) 각각에 전력 예산을 동적으로 할당하여, 이 프로세서 및 NVM이 전체적으로 미리 결정된 전력 레벨을 초과하지 않도록 동작할 수 있게 할 수 있다. 다시 말해, 전력 예산 매니저는 프로세서 및 NVM의 누적 전력 소비량을 모니터링할 수 있으며, 누적 전력 소비량이 미리 결정된 전력 레벨을 초과하지 않는 것을 보장할 수 있다.

다른 실시예들에서, 전력 예산 매니저는, 예를 들어, NVM에 할당된 전력을 NVM의 하나 이상의 컴포넌트들(예컨대, 도 1의 하나 이상의 NVM 다이들(124) 또는 도 1의 NVM 컨트롤러(122))에게 세분함(subdividing)으로써, NVM의 전력 소비량을 제어할 수 있다. 일부 경우에서, 전력 예산 매니저는, NVM의 현재 동작 상태에 기초하여 NVM의 컴포넌트들에 전력을 세분할 수 있다. 따라서, NVM의 어느 컴포넌트들이 더 많은 전력을 필요로 하는지에 따라, 전력 예산 매니저는 그 컴포넌트들에 보다 높은 전력 예산들을 할당할 수 있으며, 그 외의 나머지 컴포넌트들에는 보다 낮은 전력 예산을 할당할 수 있다.

다른 실시예들에서, 전력 예산 매니저는, 시스템의 다양한 컴포넌트들의 전력 소비량을 모니터링할 수 있으며, 이에 따라 전력을 할당할 수 있다. 따라서, 시스템의 특정 컴포넌트가 가장 많은 전력을 소비하거나 소비할 필요가 있다는 것을 검출하는 것에 응답하여, 전력 예산 매니저는 상기 컴포넌트에 그에 상응하는 더 많은 전력 예산을 할당할 수 있다.

상이한 전력 예산들을 시스템의 다양한 컴포넌트들에 동적으로 할당함으로써, 전력 예산 매니저는 시스템의 성능을 향상시킬 수 있다. 예를 들어, NVM이 현재 사용되고 있지 않을 경우, 전력 예산 매니저는 프로세서에 보다 높은 전력 예산을 할당할 수 있다. 그러면, 프로세서는 추가 동작들을 수행함으로써 이러한 보다 높은 전력 예산을 이용할 수 있다. 이러한 성능의 향상은, 미리 결정된 시간 주기 동안 메모리 컴포넌트들에 고정된 전력 임계값들을 할당하는 시스템들에서는 달성될 수 없을 것이다.

단계 510으로 진행하여, 전력 예산 매니저는, 시스템에 이용가능한 전력의 총량이 미리 결정된 전력 레벨 위인지 여부를 판정할 수 있다. 만약, 단계 510에서, 전력 예산 매니저가, 시스템에 이용가능한 전력의 총량이 미리 결정된 전력 레벨 위가 아니라고 판정하는 경우에는, 프로세스(500)는 단계 508로 진행할 수 있다. 단계 508에서, 전력 예산 매니저는 시스템의 컴포넌트들에 전력 예산들을 계속해서 동적으로 할당할 수 있다.

단계 510에서, 전력 예산 매니저가, 시스템에 이용가능한 전력의 총량이 미리 결정된 전력 레벨 위라고 판정한 경우에는, 프로세스(500)는 단계 512로 이동할 수 있다. 예를 들어, 전력 예산 매니저는, 시스템이 고전력 상태에서 동작하고 있다는 것을 검출할 수 있다. 고전력 상태 동안, 전자 디바이스는 외부 충전 디바이스로부터 높은 전력량(예컨대, 500㎃)을 받을 수 있다. 그러나, 전자 디바이스의 배터리는 여전히, 전력을 전혀 제공하지 않거나, 또는 시스템을 작동시키기에 충분한 전력을 제공하지 않을 수 있다. 일부 실시예에서, 전력 예산 매니저는 외부 충전 디바이스와 전자 디바이스 간의 USB 프로토콜의 핸드쉐이킹 단계가 완료되었음을 검출하는 것에 의해, 고전력 상태를 검출할 수 있다.

다른 예로서, 전력 예산 매니저는, 시스템이 충만한 전력 상태(full power state)에서 동작하고 있다는 것을 검출할 수 있다. 충만한 전력 상태 동안, 전자 디바이스는, 외부 충전 디바이스 및/또는 배터리로부터 충만한 전력을 받을 수 있다. 일부 실시예들에서, 전력 예산 매니저는, 전자 디바이스가 충만하게(fully) 충전되었음을 검출하는 것에 의해, 시스템이 충만한 전력 상태에서 동작하고 있다는 것을 검출할 수 있다.

그런 다음, 단계 512에서, 전력 예산 매니저는 시스템의 하나 이상의 컴포넌트들의 각 컴포넌트에 할당된 각각의 전력 예산을 제거할 수 있다. 각각의 전력 예산들이 제거된 후, 시스템의 컴포넌트들은 외부 충전 디바이스에서 필요한 만큼의 전류를 인출(draw)할 수 있다. 그 다음 프로세스(500)는 단계 506에서 종료할 수 있다.

이제 도 6을 참조하면, 시스템(예컨대, 도 3의 전자 디바이스(302))에 전력 예산을 할당하기 위한 프로세스(600)가 도시되어 있다. 일부 실시예들에서, 프로세스(600)는 프로세스(500)(도 5)의 단계 508을 더욱 상세히 나타낸 도면일 수 있다. 따라서, 시스템은 저전력 상태에서 동작 중일 수 있는데, 여기서, 시스템은 외부 충전 디바이스(예컨대, 도 3의 외부 충전 디바이스(310))로부터 전력을 받고 있고, 내부 전력 소스(예컨대, 도 3의 배터리(308))는 독립적으로 시스템에 전력을 공급할 수 없다. 일부 실시예들에서, 수신된 총 전력은 미리 결정된 전력 레벨(예컨대, 100㎃)을 가질 수 있다.

후술되는 내용은, 저전력 상태에 응답하여 프로세서(예컨대, 도 1의 SoC(110) 또는 도 3의 프로세서(304))를 스톨링하는 것을 나타내지만, 당업자라면 유사한 접근법들이 NVM 컨트롤러(예컨대, 도 1의 NVM 컨트롤러(122))와 같은 NVM(예컨대, 도 1의 NVM(120), 도 2의 NVM(220), 도 3의 NVM(306))의 프로세서에도 적용될 수 있다는 것을 인식할 것이다. 따라서, 저전력 상태가 오랜 기간 지속된다면, 프로세서와 NVM 컨트롤러는, 시스템의 성능을 향상시키기 위해서 프로세서를 스톨링하는 것을 번갈아(alternate) 할 수 있다.

프로세스(600)는 단계 602에서 시작될 수 있다. 단계 604에서, 전력 예산 매니저(예컨대, 도 1의 전력 예산 매니저(128))는, 프로세서에 제1 전력 예산(예컨대, 도 4의 전력 예산(402))을 할당할 수 있다.

그 후에, 단계 606에서, 프로세서는 NVM(예컨대, 도 1의 NVM(120), 도 2의 NVM(220), 또는 도 3의 NVM(306))에 액세스하기 위한 요청(예컨대, 판독, 소거, 또는 프로그램 요청)을 발행할 수 있다. 예를 들면, 프로세서는, 하나 이상의 NVM 다이들(예컨대, 도 1의 NVM 다이들(124))의 메모리 위치들에 저장된 데이터에 액세스하기 위한 판독 요청을 발행할 수 있다. 다른 예로서, 프로세서는, 하나 이상의 NVM 다이들의 메모리 위치들 내에 데이터를 프로그래밍하기 위한 프로그램 요청을 발행할 수 있다. 일부 실시예들에서, 저전력 상태에서 동작하는 동안 전력을 보존하기 위해, 프로세서 또는 NVM 컨트롤러(예컨대, 도 1의 NVM 컨트롤러(122))는 한번에 오직 하나의 NVM 다이에만 액세스하도록 요청을 제한할 수 있다. 다른 실시예들에서, 다른 시스템 동작들은, 입력/출력("I/O") 신호들이 프로세서와 NVM 컨트롤러 사이에서 전송되는 동안 블록킹될 수 있다.

단계 608로 계속되면, 전력 예산 매니저는 프로세서에 제2 전력 예산(예컨대, 도 4의 전력 예산(406))을 할당할 수 있으며, 여기서 제2 전력 예산은 제1 전력 예산보다 낮을 수 있다. 요청이 발행된 이후에, 프로세서는 어떤 다른 중요한 동작들을 수행할 필요가 없을 수도 있으므로, 더 적은 양의 전력이 프로세서에 할당될 수 있다.

단계 610에서, 전력 예산 매니저는 NVM에 제3 전력 예산(예컨대, 도 4의 전력 예산(408))을 할당할 수 있으며, 여기서, 제2 및 제3 전력 예산들의 조합은, 미리 결정된 전력 레벨(예컨대, 도 4의 전력 레벨(420))과 동일하거나, 또는 그보다 낮을 수 있다. 일부 경우들에서, 프로세서로부터 요청을 수신한 이후에 NVM이 대부분의 시스템 동작들을 수행하고 있을 수 있기 때문에, NVM은 프로세서와 비교할 때 추가적인 전력이 필요할 수 있다. 따라서, 제3 전력 예산은 제2 전력 예산보다 더 높을 수 있다.

그 후에, 단계 612에서, 전력 예산 매니저는, 프로세서가 제2 전력 예산을 초과하지 않도록 프로세서를 스톨링하여 전력 소비량을 제한할 수 있다. 예를 들면, 프로세서는 클록 게이팅(clock gating)으로써(예컨대, 프로세서 회로의 하나 이상의 부분들을 디스에이블함으로써) 스톨링할 수 있다. 다른 예로서, 프로세서는 자신의 클록 속도를 조절(throttling)함으로써(예컨대, 자신의 클록 속도를 최소 레벨로 감소시킴으로써) 스톨링할 수 있다.

단계 614로 계속되면, 전력 예산 매니저는 프로세서의 스톨링을 중단시키는 요청이 수신되었는지를 판정할 수 있다. 예를 들면, 전력 예산 매니저는, 전자 시스템(예컨대, 도 3의 전자 시스템(300))의 하나 이상의 컴포넌트들로부터 중단 요청을 수신할 수 있다. 예를 들면, 전력 예산 매니저 (및/또는 프로세서)는, 전자 디바이스의 컴포넌트(예컨대, 도 1의 전자 디바이스(100), 도 2의 전자 디바이스(200), 및/또는 도 3의 전자 디바이스(302)), 또는 전자 디바이스에 연결된 외부 충전 디바이스(예컨대, 도 3의 외부 충전 디바이스(310))로부터 중단 요청을 수신할 수 있다.

일부 실시예들에서, 전력 예산 매니저는 NVM으로부터 중단 요청을 수신할 수 있다. 예를 들면, NVM 컨트롤러는, 프로세서가 더 높은 전력 레벨에서 동작하도록 지시하는 중단 요청을 프로세서에 제공할 수 있다. 일부 실시예들에서, 중단 요청은, 프로세서와 NVM 컨트롤러 사이에 I/O 신호들이 이동되게끔 하기 위해 전송될 수 있다. 다른 예로서, NVM 컨트롤러는, 하나 이상의 플래그들을 발행할 수 있고, 여기서, 하나 이상의 플래그들은 하나 이상의 메모리 동작들이 완료된 때를 가리킬 수 있다.

단계 614에서, 전력 예산 매니저가, 스톨링을 중단시키는 요청이 수신되지 않은 것으로 판정하면, 프로세스(600)는 단계 612로 되돌아 갈 수 있다. 단계 612에서, 전력 예산 매니저는 계속해서 프로세서를 스톨링할 수 있다.

그 대신에, 단계 614에서, 전력 예산 매니저가 스톨링을 중단시키는 요청이 수신된 것으로 판정하면, 프로세스(600)는 단계(616)으로 이동할 수 있다.

단계 616에서, 전력 예산 매니저는, 제1 전력 예산을 프로세서에 할당할 수 있다. 일부 실시예들에서, 프로세서는 시스템 동작들(예컨대, NVM 컨트롤러로 I/O 신호들을 이동시키거나 NVM 컨트롤러로부터 I/O 신호들이 이동되는 것)을 지속시키기 위해 더 높은 양의 전력을 필요로 할 수 있기 때문에, 제1 전력 예산이 할당될 수 있다.

그 후에, 단계 618에서, 전력 예산 매니저는 제4 전력 예산(예컨대, 도 4의 전력 예산(404))을 NVM에 할당할 수 있고, 여기서, 제1 및 제4 전력 예산들의 조합은 미리 결정된 전력 레벨과 동일하거나 그보다 낮다. 일부 실시예들에서, 프로세서는 스톨링이 중단된 이후에 대부분의 시스템 동작들을 수행하는 중일 수 있기 때문에, 프로세서는 NVM과 비교할 때 추가적인 전력이 필요할 수 있다. 따라서, 제1 전력 예산은 제4 전력 예산보다 더 높을 수 있다. 그 후에, 프로세스(600)는 단계 620에서 종료한다.

도 5와 도 6의 프로세스들(500, 600) 각각은, 단지 예시적인 것일 뿐이라는 것이 이해될 것이다. 본 발명의 범위를 벗어남 없이, 임의의 단계들이 제거되거나 변경되거나 조합될 수 있으며, 임의의 추가 단계들이 부가될 수 있다.

기술된 본 발명의 실시예들은 예시의 목적으로 제시된 것이며, 본 발명을 제한하고자 제시된 것은 아니다.

Claims (12)

  1. 전자 디바이스에서 전력 예산(power budget)을 할당하는 방법으로서, 상기 방법은 상기 전자 디바이스의 전력 예산 매니저에 의해 수행되고,
    상기 전자 디바이스에 대해 이용가능한 총 전력량이 미리-결정된 전력 레벨 아래라는 것을 결정하는 단계; 및
    상기 전자 디바이스의 복수의 컴포넌트의 각 컴포넌트에 각각의 전력 예산을 동적으로 할당하는 단계를 포함하고,
    상기 복수의 컴포넌트는 프로세서 및 비휘발성 반도체 메모리를 포함하며,
    상기 전자 디바이스에 대해 이용가능한 총 전력량이 미리-결정된 전력 레벨 아래라는 것을 결정하는 단계는 저전력 상태를 검출하는 단계 - 상기 저전력 상태에서, 상기 전자 디바이스는 외부 충전 디바이스로부터 전력을 수신하고 있으며 상기 전자 디바이스의 배터리는 상기 전자 디바이스에 독립적으로 전력을 공급할 수 없음 - 를 포함하고,
    상기 저전력 상태를 검출하는 단계는
    상기 전자 디바이스가 USB(Universal Serial Bus) 프로토콜을 통해 상기 외부 충전 디바이스와 통신하고 있는 것을 검출하는 단계; 및
    상기 USB 프로토콜의 핸드쉐이킹 단계(handshaking phase)가 아직 완료되지 않았음을 검출하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 비휘발성 반도체 메모리는 복수의 다이를 포함하고,
    상기 각각의 전력 예산을 동적으로 할당하는 단계는 상기 비휘발성 반도체 메모리에 할당된 상기 전력 예산을 상기 다이들 중 하나 이상에 세분하는(subdividing) 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 전자 디바이스에 대해 이용가능한 총 전력량이 미리-결정된 전력 레벨 위라는 것을 결정하는 단계; 및
    상기 전자 디바이스의 상기 복수의 컴포넌트의 각 컴포넌트에 할당된 상기 각각의 전력 예산을 제거하는 단계
    를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 전자 디바이스에 대해 이용가능한 총 전력량이 미리-결정된 전력 레벨 위라는 것을 결정하는 단계는 상기 외부 충전 디바이스와 상기 전자 디바이스 간의 상기 USB 프로토콜의 핸드쉐이킹 단계가 완료되었음을 검출하는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 프로세서에 제1 전력 예산이 할당되고, 상기 비휘발성 반도체 메모리에 제2 전력 예산이 할당되는, 방법.
  6. 시스템으로서,
    프로세서;
    상기 프로세서와 통신하도록 동작하는 비휘발성 반도체 메모리(non-volatile semiconductor memory; NVSM) - 상기 NVSM은 NVM 컨트롤러를 포함함 -; 및
    전력 예산 매니저(power budgeting manager)
    를 포함하고, 상기 전력 예산 매니저는,
    상기 시스템에 대해 이용가능한 총 전력량이 미리-결정된 전력 레벨 아래라는 것을 결정하고,
    상기 시스템의 복수의 컴포넌트의 각 컴포넌트에 각각의 전력 예산을 동적으로 할당하며 - 상기 복수의 컴포넌트는 상기 프로세서 및 상기 NVSM을 포함함 -,
    저전력 상태를 검출하고 - 상기 저전력 상태에서, 상기 시스템은 외부 충전 디바이스로부터 전력을 수신하고 있으며 상기 시스템의 배터리는 상기 시스템에 독립적으로 전력을 공급할 수 없음 -,
    상기 시스템이 USB 프로토콜을 통해 상기 외부 충전 디바이스와 통신하고 있는 것을 검출하며,
    상기 USB 프로토콜의 핸드쉐이킹 단계(handshaking phase)가 아직 완료되지 않았음을 검출하도록 동작하는, 시스템.
  7. 제6항에 있어서,
    상기 비휘발성 반도체 메모리는 복수의 다이를 포함하고,
    상기 전력 예산 매니저는 상기 할당된 전력 예산을 상기 다이들 중 하나 이상에 세분하도록 동작하는, 시스템.
  8. 제6항에 있어서, 상기 전력 예산 매니저는,
    상기 시스템에 대해 이용가능한 총 전력량이 미리-결정된 전력 레벨 위라는 것을 결정하고,
    상기 시스템의 상기 복수의 컴포넌트의 각 컴포넌트에 할당된 상기 각각의 전력 예산을 제거하도록 동작하는, 시스템.
  9. 제8항에 있어서, 상기 전력 예산 매니저는,
    상기 외부 충전 디바이스와 상기 시스템 간의 상기 USB 프로토콜의 핸드쉐이킹 단계가 완료되었음을 검출하도록 동작하는, 시스템.
  10. 전자 디바이스에서 전력 예산을 할당하는 방법으로서, 상기 방법은 상기 전자 디바이스의 전력 예산 매니저에 의해 수행되고,
    이용가능한 전력이 미리-결정된 전력 레벨 아래인지 여부를 결정하는 단계 - 상기 전자 디바이스가 USB 프로토콜을 통해 외부 충전 디바이스와 통신하고 있는 도중, 상기 전자 디바이스가 상기 외부 충전 디바이스로부터 전력을 수신하고 있고 상기 전자 디바이스의 배터리가 상기 전자 디바이스에 독립적으로 전력을 공급할 수 없는 경우, 상기 이용가능한 전력은 상기 미리-결정된 전력 레벨 아래임 -;
    상기 이용가능한 전력이 상기 미리-결정된 전력 레벨 아래이고, 상기 USB 프로토콜의 핸드쉐이킹 단계가 아직 완료되지 않았다고 결정하는 것에 응답하여, 상기 전자 디바이스의 복수의 컴포넌트의 각 컴포넌트에 전력 예산을 동적으로 할당하는 단계 - 상기 복수의 컴포넌트는 프로세서 및 비휘발성 반도체 메모리를 포함하고, 상기 비휘발성 반도체 메모리는 복수의 다이를 포함하며, 상기 동적으로 할당하는 단계는 상기 할당된 전력 예산을 상기 다이들 중 하나 이상에 세분하는 단계를 더 포함함 -; 및
    상기 이용가능한 전력이 상기 미리-결정된 전력 레벨 위라고 결정하는 것에 응답하여, 상기 전자 디바이스의 상기 복수의 컴포넌트의 각 컴포넌트에 할당된 상기 전력 예산을 제거하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서,
    상기 비휘발성 반도체 메모리가 사용 중이 아님을 결정하는 단계; 및
    그에 응답하여, 상기 프로세서에 대한 상기 전력 예산을 증가시키는 단계; 및 상기 비휘발성 반도체 메모리에 대한 상기 전력 예산을 감소시키는 단계
    를 더 포함하는 방법.
  12. 제10항에 있어서,
    상기 컴포넌트들 중 제1 컴포넌트가 추가 전력을 요구한다는 표시를 수신하는 단계;
    상기 제1 컴포넌트 이외의 컴포넌트들 각각에 대한 상기 전력 예산을 감소시키는 단계; 및
    상기 제1 컴포넌트에 대한 상기 전력 예산을 증가시키는 단계
    를 더 포함하고, 상기 증가된 전력 예산은 상기 제1 컴포넌트 이외의 컴포넌트들 각각에 대한 상기 감소된 전력 예산에 대응하는, 방법.
KR1020120011196A 2010-07-26 2012-02-03 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당 KR101699104B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/843,423 2010-07-26
US12/843,423 US8826051B2 (en) 2010-07-26 2010-07-26 Dynamic allocation of power budget to a system having non-volatile memory and a processor

Publications (2)

Publication Number Publication Date
KR20120031971A KR20120031971A (ko) 2012-04-04
KR101699104B1 true KR101699104B1 (ko) 2017-01-23

Family

ID=44629769

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020110074278A KR101311116B1 (ko) 2010-07-26 2011-07-26 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당
KR1020120011196A KR101699104B1 (ko) 2010-07-26 2012-02-03 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020110074278A KR101311116B1 (ko) 2010-07-26 2011-07-26 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당

Country Status (7)

Country Link
US (2) US8826051B2 (ko)
JP (1) JP2012069100A (ko)
KR (2) KR101311116B1 (ko)
CN (1) CN102375788B (ko)
HK (1) HK1168168A1 (ko)
TW (2) TWI540583B (ko)
WO (1) WO2012018605A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US20110173462A1 (en) * 2010-01-11 2011-07-14 Apple Inc. Controlling and staggering operations to limit current spikes
US8555095B2 (en) 2010-07-26 2013-10-08 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US9261949B2 (en) * 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
KR101777376B1 (ko) * 2010-11-08 2017-09-11 삼성전자주식회사 데이터 저장 장치 및 그것의 구동 방법
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
WO2012124382A1 (ja) * 2011-03-16 2012-09-20 日本電気株式会社 処理装置およびその制御方法
US8645723B2 (en) 2011-05-11 2014-02-04 Apple Inc. Asynchronous management of access requests to control power consumption
US9417803B2 (en) * 2011-09-20 2016-08-16 Apple Inc. Adaptive mapping of logical addresses to memory devices in solid state drives
US20130097433A1 (en) * 2011-10-18 2013-04-18 Stec, Inc. Systems and methods for dynamic resource management in solid state drive system
JP2013149093A (ja) * 2012-01-19 2013-08-01 Toshiba Corp 制御装置、制御方法、プログラムおよび電子機器
US9122813B2 (en) * 2012-03-06 2015-09-01 Smsc Holdings S.A.R.L. USB host determination of whether a USB device provides power via a USB coupling
WO2013147801A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Dynamic power limit sharing in a platform
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9026808B2 (en) * 2012-04-26 2015-05-05 Freescale Semiconductor, Inc. Memory with word level power gating
US8856561B2 (en) * 2012-05-10 2014-10-07 Hewlett-Packard Development Company, L.P. Allocating and distributing power
US9348391B1 (en) * 2012-06-28 2016-05-24 Amazon Technologies, Inc. Managing resource power states in shared environments
US9292060B1 (en) * 2012-06-28 2016-03-22 Amazon Technologies, Inc. Allowing clients to limited control on power consumed by the cloud while executing the client's tasks
US9098277B2 (en) * 2012-08-30 2015-08-04 Dell Products L.P. Information handling system configuration for power system output capability
US9547353B1 (en) 2012-09-19 2017-01-17 Amazon Technologies, Inc. Processor energy monitoring and dynamic adjustment
US9411398B2 (en) * 2012-09-28 2016-08-09 Intel Corporation Electronic device and method to extend battery life
KR101339475B1 (ko) * 2012-10-09 2013-12-10 삼성전기주식회사 Esl 시스템 온 칩, esl 단말기 및 이의 제어 방법
US9110661B2 (en) * 2012-12-28 2015-08-18 International Business Machines Corporation Mobile device offloading task to a peer device and receiving a completed task when energy level is below a threshold level
US9760149B2 (en) 2013-01-08 2017-09-12 Qualcomm Incorporated Enhanced dynamic memory management with intelligent current/power consumption minimization
EP2884369B1 (en) 2013-12-16 2018-02-07 Stichting IMEC Nederland Memory control system for a non-volatile memory and control method
US9348380B2 (en) * 2013-12-28 2016-05-24 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for memory array
KR20150120213A (ko) 2014-04-17 2015-10-27 삼성전자주식회사 동작 성능을 조절하는 메모리 시스템 및 메모리 시스템의 동작방법
WO2016025489A1 (en) * 2014-08-12 2016-02-18 Avocent Huntsville Corp. System and method for rack over provisioning and intelligent power management
US9804650B2 (en) * 2014-09-04 2017-10-31 Qualcomm Incorporated Supply voltage node coupling using a switch
US10353457B1 (en) * 2015-03-04 2019-07-16 Altera Corporation Systems and methods for sleep mode power savings in integrated circuit devices
JP6123830B2 (ja) * 2015-03-30 2017-05-10 日本電気株式会社 情報処理装置、電力制御方法、プログラム、制御装置
US9733684B2 (en) 2015-09-14 2017-08-15 Samsung Electronics Co., Ltd. System and method for controlling power consumption
US9658669B2 (en) 2015-09-28 2017-05-23 Toshiba Corporation Solid-state mass storage devices with capacitor-based power supply and methods of operation
US10095412B2 (en) * 2015-11-12 2018-10-09 Sandisk Technologies Llc Memory system and method for improving write performance in a multi-die environment
KR20170103200A (ko) * 2016-03-03 2017-09-13 에스케이하이닉스 주식회사 메모리 관리방법
TWI581092B (zh) * 2016-03-30 2017-05-01 威盛電子股份有限公司 記憶體裝置及其節能控制方法
TWI606459B (zh) * 2016-03-30 2017-11-21 威盛電子股份有限公司 記憶體裝置及其節能控制方法
US10558380B2 (en) * 2016-08-09 2020-02-11 Seagate Technology Llc Active power management
US10032511B1 (en) * 2017-05-18 2018-07-24 Macronix International Co., Ltd. Memory with dynamic permissible bit write logic and method
KR20190058994A (ko) 2017-11-22 2019-05-30 한국전자통신연구원 비휘발성 컴퓨팅 시스템의 전력 관리 장치 및 방법
US10564868B2 (en) 2018-01-24 2020-02-18 Western Digital Technologies, Inc. Method and apparatus for selecting power states in storage devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210304A1 (en) 2003-06-26 2005-09-22 Copan Systems Method and apparatus for power-efficient high-capacity scalable storage system
US20070049133A1 (en) 2005-08-25 2007-03-01 Conroy David G Methods and apparatuses for dynamic power control
US20080263373A1 (en) 2007-04-18 2008-10-23 Advanced Micro Devices, Inc. Token based power control mechanism
US20090174367A1 (en) 2004-12-10 2009-07-09 Apple Inc. Method and system for operating a portable electronic device in a power-limited manner

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724592A (en) 1995-03-31 1998-03-03 Intel Corporation Method and apparatus for managing active power consumption in a microprocessor controlled storage device
JP3821536B2 (ja) 1997-05-16 2006-09-13 沖電気工業株式会社 不揮発性半導体ディスク装置
JPH11316625A (ja) 1998-04-30 1999-11-16 Toshiba Corp パーソナルコンピュータ及び外部ユニットへの電力供給制御方法
US6233693B1 (en) 1998-05-06 2001-05-15 International Business Machines Corporation Smart DASD spin-up
JP4338842B2 (ja) * 1998-09-18 2009-10-07 パナソニック株式会社 電力制御装置、電力制御方法、及び記録媒体
US6748493B1 (en) 1998-11-30 2004-06-08 International Business Machines Corporation Method and apparatus for managing memory operations in a data processing system using a store buffer
JP2000214966A (ja) 1999-01-20 2000-08-04 Ricoh Co Ltd 携帯型情報処理装置
JP3784589B2 (ja) 1999-09-29 2006-06-14 コニカミノルタフォトイメージング株式会社 携帯機器
US6560712B1 (en) 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
JP4694040B2 (ja) 2001-05-29 2011-06-01 ルネサスエレクトロニクス株式会社 半導体記憶装置
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
US6925573B2 (en) 2002-01-02 2005-08-02 Intel Corporation Method and apparatus to manage use of system power within a given specification
US20030158609A1 (en) * 2002-02-19 2003-08-21 Koninklijke Philips Electronics N.V. Power saving management for portable devices
US6857055B2 (en) 2002-08-15 2005-02-15 Micron Technology Inc. Programmable embedded DRAM current monitor
US7330931B2 (en) * 2003-06-26 2008-02-12 Copan Systems, Inc. Method and system for accessing auxiliary data in power-efficient high-capacity scalable storage system
US7210004B2 (en) * 2003-06-26 2007-04-24 Copan Systems Method and system for background processing of data in a storage system
US7400062B2 (en) 2002-10-15 2008-07-15 Microsemi Corp. - Analog Mixed Signal Group Ltd. Rack level power management
US7441133B2 (en) * 2002-10-15 2008-10-21 Microsemi Corp. - Analog Mixed Signal Group Ltd. Rack level power management for power over Ethernet
GB2402271B (en) * 2003-05-27 2006-04-19 Research In Motion Ltd Method and apparatus for handling a charging state in a mobile electronic device
WO2005057475A1 (ja) 2003-11-28 2005-06-23 Matsushita Electric Industrial Co., Ltd. 記録装置
US7155623B2 (en) 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
CN100435069C (zh) * 2004-05-10 2008-11-19 美高森美股份有限公司-模拟混合信号集团有限公司 用于快速减小端口电源的方法
US7353407B2 (en) * 2004-05-20 2008-04-01 Cisco Technology, Inc. Methods and apparatus for provisioning phantom power to remote devices
US7418608B2 (en) * 2004-06-17 2008-08-26 Intel Corporation Method and an apparatus for managing power consumption of a server
US7899480B2 (en) * 2004-09-09 2011-03-01 Qualcomm Incorporated Apparatus, system, and method for managing transmission power in a wireless communication system
US7305572B1 (en) 2004-09-27 2007-12-04 Emc Corporation Disk drive input sequencing for staggered drive spin-up
JP2006185407A (ja) 2004-12-01 2006-07-13 Matsushita Electric Ind Co Ltd ピーク電力制御方法および装置
JP2006195569A (ja) 2005-01-11 2006-07-27 Sony Corp 記憶装置
US7440215B1 (en) 2005-03-30 2008-10-21 Emc Corporation Managing disk drive spin up
US7539882B2 (en) * 2005-05-30 2009-05-26 Rambus Inc. Self-powered devices and methods
US7444526B2 (en) * 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system
US7647516B2 (en) * 2005-09-22 2010-01-12 Hewlett-Packard Development Company, L.P. Power consumption management among compute nodes
US7523338B2 (en) * 2005-10-13 2009-04-21 Research In Motion Limited Apparatus and method to support USB enumeration of a bus powered handheld device
US20070211551A1 (en) 2005-11-25 2007-09-13 Yoav Yogev Method for dynamic performance optimization conforming to a dynamic maximum current level
US7487371B2 (en) * 2005-12-16 2009-02-03 Nvidia Corporation Data path controller with integrated power management to manage power consumption of a computing device and its components
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7739548B2 (en) * 2006-06-27 2010-06-15 Hewlett-Packard Development Company, L.P. Determining actual power consumption for system power performance states
US7587559B2 (en) 2006-08-10 2009-09-08 International Business Machines Corporation Systems and methods for memory module power management
US7681054B2 (en) * 2006-10-03 2010-03-16 International Business Machines Corporation Processing performance improvement using activity factor headroom
EP2498167B1 (en) * 2006-12-08 2013-10-02 Nokia Corporation Multiple connections to a single serial interface
US7793126B2 (en) * 2007-01-19 2010-09-07 Microsoft Corporation Using priorities and power usage to allocate power budget
US7934107B2 (en) 2007-01-24 2011-04-26 Hewlett-Packard Development Company, L.P. Power management system and method
JP4851962B2 (ja) 2007-02-28 2012-01-11 株式会社東芝 メモリシステム
US8253388B2 (en) * 2007-06-04 2012-08-28 Symbol Technologies, Inc. System and method for charging a battery
JP5369415B2 (ja) * 2007-09-27 2013-12-18 ヤマハ株式会社 スピーカ装置
US8046600B2 (en) * 2007-10-29 2011-10-25 Microsoft Corporation Collaborative power sharing between computing devices
US7863856B2 (en) * 2008-01-11 2011-01-04 Modu Ltd. Bi-directional battery charging for coupled electronic devices
JP2009176210A (ja) * 2008-01-28 2009-08-06 Toshiba Corp 電子機器
US20090295230A1 (en) * 2008-05-30 2009-12-03 Nokia Corporation Selective coupling of a powered component
JP2009294802A (ja) * 2008-06-03 2009-12-17 Hitachi Ltd ストレージ装置およびストレージ装置の起動制御方法
US7961544B2 (en) 2008-08-05 2011-06-14 Sandisk Il Ltd. Storage system and method for managing a plurality of storage devices
JP5489434B2 (ja) 2008-08-25 2014-05-14 株式会社日立製作所 フラッシュメモリ搭載ストレージ装置
TWI432948B (zh) * 2008-10-20 2014-04-01 Wistron Corp 用於一可攜式電腦系統之電源管理方法及其相關電源供應裝置與可攜式電腦系統
JP2010108423A (ja) * 2008-10-31 2010-05-13 Toshiba Corp 情報処理装置
WO2010057343A2 (en) * 2008-11-21 2010-05-27 American Power Conversion Corporation Method and apparatus for controlling distribution of power
US8386808B2 (en) * 2008-12-22 2013-02-26 Intel Corporation Adaptive power budget allocation between multiple components in a computing system
US20100162024A1 (en) * 2008-12-24 2010-06-24 Benjamin Kuris Enabling a Charge Limited Device to Operate for a Desired Period of Time
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
KR101578728B1 (ko) * 2009-05-22 2015-12-21 엘지전자 주식회사 휴대 단말기
US8627117B2 (en) * 2009-06-26 2014-01-07 Seagate Technology Llc Device with power control feature involving backup power reservoir circuit
US20110173462A1 (en) 2010-01-11 2011-07-14 Apple Inc. Controlling and staggering operations to limit current spikes
JP5187776B2 (ja) * 2010-04-13 2013-04-24 日本電気株式会社 電気機器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210304A1 (en) 2003-06-26 2005-09-22 Copan Systems Method and apparatus for power-efficient high-capacity scalable storage system
US20090174367A1 (en) 2004-12-10 2009-07-09 Apple Inc. Method and system for operating a portable electronic device in a power-limited manner
US20070049133A1 (en) 2005-08-25 2007-03-01 Conroy David G Methods and apparatuses for dynamic power control
US20080263373A1 (en) 2007-04-18 2008-10-23 Advanced Micro Devices, Inc. Token based power control mechanism

Also Published As

Publication number Publication date
US20140344609A1 (en) 2014-11-20
WO2012018605A1 (en) 2012-02-09
KR20120031971A (ko) 2012-04-04
KR101311116B1 (ko) 2013-09-25
HK1168168A1 (en) 2015-12-18
CN102375788B (zh) 2015-07-01
TW201230049A (en) 2012-07-16
CN102375788A (zh) 2012-03-14
US8826051B2 (en) 2014-09-02
JP2012069100A (ja) 2012-04-05
US20120023351A1 (en) 2012-01-26
KR20120010989A (ko) 2012-02-06
TWI598882B (zh) 2017-09-11
TWI540583B (zh) 2016-07-01
TW201214446A (en) 2012-04-01
US9383808B2 (en) 2016-07-05

Similar Documents

Publication Publication Date Title
US20170160942A1 (en) Data storage device and flash memory control method
US9348521B2 (en) Semiconductor storage device and method of throttling performance of the same
US8819336B2 (en) Nonvolatile memory system and related method of preserving stored data during power interruption
US9390004B2 (en) Hybrid memory management
US9983800B2 (en) Apparatus and method to share host system RAM with mass storage memory RAM
EP2795470B1 (en) Apparatus and method to provide cache move with non-volatile mass memory system
TWI516924B (zh) 邏輯區塊位址位元映射之使用
US10042586B2 (en) Managing operational state data in memory module
TWI457750B (zh) 非揮發性記憶體中動態控制操作以限制電力消耗的方法及系統
US9817596B2 (en) Non-volatile memory systems and methods of managing power of the same
US8874942B2 (en) Asynchronous management of access requests to control power consumption
US10552055B2 (en) Multi-tier scheme for logical storage management
TWI585585B (zh) 基於儲存裝置的目前消耗設定檔判定在儲存裝置中對使用者爲不可用之備用空間的調整之技術
US8054686B2 (en) Flash memory storage apparatus, flash memory controller, and switching method thereof
US9804960B2 (en) Overprovision capacity in a data storage device
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
US20130073798A1 (en) Flash memory device and data management method
KR101870062B1 (ko) 적응적 버스트 모드를 위한 저장 모듈 및 방법
US8296507B2 (en) Memory management and writing method and rewritable non-volatile memory controller and storage system using the same
JP2014513356A (ja) 不揮発性記憶のための可変オーバープロビジョニング
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
RU2348992C2 (ru) Запоминающее устройство и ведущее устройство
US8463826B2 (en) Incremental garbage collection for non-volatile memories
US20130138870A1 (en) Memory system, data storage device, memory card, and ssd including wear level control logic
JP4672742B2 (ja) メモリコントローラおよびメモリシステム

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 4