KR101363844B1 - 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들 - Google Patents

전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들 Download PDF

Info

Publication number
KR101363844B1
KR101363844B1 KR1020110074319A KR20110074319A KR101363844B1 KR 101363844 B1 KR101363844 B1 KR 101363844B1 KR 1020110074319 A KR1020110074319 A KR 1020110074319A KR 20110074319 A KR20110074319 A KR 20110074319A KR 101363844 B1 KR101363844 B1 KR 101363844B1
Authority
KR
South Korea
Prior art keywords
nvm
operations
current threshold
power
current
Prior art date
Application number
KR1020110074319A
Other languages
English (en)
Other versions
KR20120010992A (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 KR20120010992A publication Critical patent/KR20120010992A/ko
Application granted granted Critical
Publication of KR101363844B1 publication Critical patent/KR101363844B1/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/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 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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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

Abstract

시간이 지남에 따라 다수의 NVM 병행 동작을 분산시키는 전력 제안 스킴을 이용하여 비휘발성 메모리(NVM)의 전력 소모를 제한하는 시스템 및 방법이 개시된다. 이것은 피크 전력 이벤트들을 제거함으로써 NVM에 대한 전류 소모의 상한을 고정시키는 "전류 소모 캡"을 제공한다. 일 실시예에서, NVM의 전력 소모는 복수의 시스템 소스 중 적어도 하나의 소스로부터의 전류 임계치를 조정하는 데에 있어서 인자로서 사용하는 데에 적합한 데이터를 수신함으로써 제한될 수 있다. 전류 임계치는 NVM에 의해 소모될 수 있는 피크 전류보다 낮을 수 있고, 수신된 데이터에 기초하여 조정될 수 있다. 수행되는 NVM 병행 동작들의 개수를 제한하여 NVM의 누적 전류 소모가 조정된 전류 임계치를 초과하지 않도록 하는 전력 제한 스킴이 사용될 수 있다.

Description

전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들{METHODS AND SYSTEMS FOR DYNAMICALLY CONTROLLING OPERATIONS IN A NON-VOLATILE MEMORY TO LIMIT POWER CONSUMPTION}
본 발명은 전력 소모를 제한하기 위하여, NAND 플래시 메모리와 같은 비휘발성 메모리에서의 동작들을 동적으로 제어하는 것에 관한 것이다.
전자 시스템들은 점점 더 복잡해지고 점점 더 많은 컴포넌트들을 포함하게 되고 있다. 그에 따라, 이들 시스템들에 대한 전력 요구가 계속하여 우려되고 있다. 특히, 시스템의 컴포넌트들 중 다수가 동시에 동작하기 때문에, 시스템은 전력 또는 전류 스파이크들을 경험할 수 있다. 이러한 효과는 특히 다양한 시스템 컴포넌트들이 각각 고 전력 동작들을 동시에 수행하고 있는 경우에 언급될 수 있다.
가전제품 내의 대용량 저장소에 통상적으로 이용되는 플래시 메모리 시스템은 전력 소모가 우려되는 시스템의 일례이다. 과다한 사용의 경우, 플래시 시스템은, 본 명세서에서 피크 전력 이벤트들로서 지칭되는 전력 이벤트들의 레벨들이 승강(elevated)되는 것을 경험할 수 있다. 피크 전력 이벤트는 플래시 메모리 시스템의 각각의 다이가 동시에 액세스될 때 발생할 수 있다. 플래시 메모리 시스템들을 이용하는 시스템들은 이러한 피크 전력 이벤트들을 처리(즉, 피크 전력 이벤트들의 전력 요구를 충족시키는 충분한 전력 리소스를 유지)하도록 설계된다. 그러나, 피크 전력 이벤트들은 상대적으로 드문 것일 수 있고, 플래시 시스템의 평균 전력 소모는 실질적으로 피크 전력보다 적을 수 있다. 따라서, 결과적으로, 이러한 시스템들은, 승강된 전력 레벨이 항상 필요치 않더라도 승강된 전력 레벨을 비축하여 갖도록 설계된다.
시간이 지남에 따라 다수의 비휘발성 메모리(NVM) 병행 동작들을 분산시키는 전력 제한 스킴(scheme)을 이용하여 NVM의 전력 소모를 제한하기 위한 시스템들 및 방법들이 개시된다. 이것은 NVM에 대한 전류 소모의 상한을 고정시킴으로써 피크 전력 이벤트들을 제거하는 "전류 소모 캡"을 제공한다.
일 실시예에서, NVM의 전력 소모는, 복수의 시스템 소스 중 적어도 하나로부터 전류 임계치를 조정하는데 있어서의 인자로서 이용하기에 적절한 데이터를 수신함으로써 제한될 수 있다. 전류 임계치는 NVM에 의해 소모될 수 있는 피크 전류보다 적을 수 있고 수신된 데이터에 기초하여 조정될 수 있다. 수행되는 NVM 병행 동작들의 수를 제한하여 NVM의 누적 전류 소모가 조정된 전류 임계치를 초과하지 않도록 하는 전력 제한 스킴이 이용될 수 있다. 일 실시예에서, 전력 제한 스킴은 각각의 NVM 동작이 완료되는 시점을 판정하기 위해 NVM에 의해 제공된 피드백 데이터를 이용하는 반응성 전력 제한 스킴일 수 있다. 다른 실시예에서, 전력 제한 스킴은 각각의 NVM 동작이 완료하기까지 얼마나 오래 걸릴지를 예측하는 예측성 전력 제한 스킴일 수 있다.
본 발명의 전술한 그리고 다른 양태들 및 장점들은 첨부하는 도면과 함께 이하의 상세한 설명을 고려할 때 보다 명확하게 될 것이며, 도면에서 유사한 참조 문자들은 전체에 걸쳐서 유사한 부분들을 지칭한다:
도 1은 본 발명의 다양한 실시예들에 따라 구성된 전자 장치의 개략도이다.
도 2a는 본 발명의 다양한 실시예들에 따라 구성되는 관리된(managed) 비휘발성 메모리 패키지 및 호스트 프로세서를 포함하는 예시적인 시스템의 개략도이다.
도 2b는 본 발명의 다양한 실시예들에 따라 구성되는 로우(raw) 비휘발성 메모리 패키지 및 호스트 프로세서를 포함하는 예시적인 시스템의 개략도이다.
도 2c는 본 발명의 다양한 실시예들에 따른 NVM 패키지의 전류 소모 프로파일을 예시하는 그래프이다.
도 3은 본 발명의 다양한 실시예들에 따른 NVM 패키지의 일부를 보다 상세하세 도시하는 예시적인 블록도이다.
도 4a는 종래 기술 시스템에 의해 제어되는 NVM 패키지 내의 모든 다이의 예시적인 누적 전류 소모 프로파일을 도시한다.
도 4b는 본 발명의 다양한 실시예들에 따른 시스템에 의해 제어되는 NVM 패키지 내의 모든 다이의 누적 전류 소모 프로파일을 도시한다.
도 5는 본 발명의 다양한 실시예들에 따른 전력 레벨 선택 회로의 예시적인 블록도를 도시한다.
도 6 내지 12는 본 발명의 다양한 실시예들에 따른 전력 제한 스킴들과 관련된 여러 타이밍도 및 흐름도를 도시한다.
도 1은 전자 장치(100)의 개략도이다. 일부 실시예들에서, 전자 장치(100)는 휴대형 미디어 플레이어(예컨대, 캘리포니아 쿠퍼티노의 애플 사에 의해 이용가능하게 제작된 iPod™), 셀룰러 전화기(예컨대, 애플 사에 의해 이용가능하게 제작된 iPhone™), 포켓 크기의 퍼스널 컴퓨터, 퍼스널 디지털 단말기("PDA"), 데스크탑 컴퓨터, 랩탑 컴퓨터, 및 임의의 기타 적절한 형태의 전자 장치일 수 있거나, 이들을 포함할 수 있다.
전자 장치(100)는 시스템-온-칩(System-on-a-chip; "SoC")(110), 비휘발성 메모리("NVM")(120), 및 전력 레벨 선택 회로(130)를 포함할 수 있다. 비휘발성 메모리(120)는 플로팅 게이트 또는 전하 트래핑 기술에 기초한 NAND 플래시 메모리, NOR 플래시 메모리, 소거가능한 프로그램가능한 판독 전용 메모리("EPROM"), 전기적으로 소거가능한 프로그램가능한 판독 전용 메모리("EEPROM"), 강유전성 RAM("FRAM"), 자기저항성 RAM("MRAM"), 임의의 기타 공지된 또는 미래형 비휘발성 메모리 기술, 또는 이들의 임의의 조합을 포함할 수 있다. NVM 메모리(120)는 소거의 가장 작은 단위들인 "블록들"로 조직될 수 있고, 프로그램 및 판독가능한 가장 작은 단위들인 "페이지들"로 더 조직될 수 있는 하나 이상의 다이(die)들을 포함할 수 있다. 일부 실시예들에서, NVM(120)은 다수의 집적 회로들을 포함할 수 있고, 각각의 집적 회로는 다수의 블록들을 가질 수 있다. 대응하는 집적 회로들로부터의 블록들(예컨대, 동일한 위치 또는 블록 넘버를 갖는 블록들)은 "수퍼 블록들"을 형성할 수 있다. NVM(120)의 각각의 메모리 위치(예컨대, 페이지 또는 블록)는 물리적 어드레스(예컨대, 물리적 페이지 어드레스 또는 물리적 블록 어드레스)를 이용하여 어드레스될 수 있다.
전력 레벨 선택 회로(130)는 NVM(120)에 의해 소모될 수 있는 전류 또는 전력의 최대량을 제한하는 전력 레벨을 설정할 수 있다. 전력 레벨은 전압 레벨, 전류 레벨, 또는 양쪽 모두를 포함할 수 있다. 회로(130)는 임의의 수의 인자들에 기초하여 전력 레벨을 선택하도록 동작될 수 있다. 이들 인자들은, 예를 들어, 전원으로부터 이용가능한 전력(예컨대, 이용가능한 배터리 전력), 장치(100) 내의 다양한 컴포넌트들(예컨대, SoC 제어 회로(112))에 의해 요구되는 전력 부하, 및 장치(100)의 온도를 포함할 수 있다. 회로(130)는 예시적으로 SoC(110) 및 NVM(120)에 접속되는 것으로서 도시되었지만, 회로(130)는 장치(100)의 임의의 컴포넌트에 접속될 수 있다는 것이 이해된다. 회로(130)의 추가적인 상세는 도 5를 동반하는 설명과 함께 이하에 제공된다.
도 1 뿐만 아니라 이후의 도면들과 다양한 개시된 실시예들은, 때때로 플래시 기술을 이용하는 관점에서 설명될 수 있다. 그러나, 이것은 제한적인 것으로 의도되지 않으며, 임의의 다른 유형의 비휘발성 메모리가 대신 구현될 수 있다. 전자 장치(100)는 전원 또는 임의의 사용자 입력 또는 출력 컴포넌트 등의 다른 컴포넌트들을 포함할 수 있고, 이들은 도면을 지나치게 복잡하게 하는 것을 방지하기 위하여 도 1에는 도시되지 않았다.
시스템-온-칩(110)은 SoC 제어 회로(112), 메모리(114), 및 NVM 인터페이스(118)를 포함할 수 있다. SoC 제어 회로(112)는 SoC(110)의 일반적인 동작들과 기능들 및 SoC(110) 또는 장치(100)의 다른 컴포넌트들을 제어할 수 있다. 예를 들어, 사용자 입력들 및/또는 애플리케이션이나 운영 체제의 명령어들에 응답하여, SoC 제어 회로(112)는 NVM 인터페이스(118)에 판독 또는 기입 커맨드들을 발행하여, NVM(120)으로부터 데이터를 취득하거나 NVM(120)에 데이터를 저장할 수 있다. 명확성을 위해, SoC 제어 회로(112)가 저장이나 검색을 위해 요청할 수 있는 데이터는, 그 데이터가 사용자 또는 사용자 애플리케이션과 직접 연관되지 않을 수 있더라도, "사용자 데이터"로서 지칭될 수 있다. 오히려, 사용자 데이터는 (예컨대, 애플리케이션 또는 운영 체제를 통해) SoC 제어 회로(112)에 의해 생성되거나 취득된 디지털 정보의 임의의 적절한 시퀀스일 수 있다.
SoC 제어 회로(112)는 하드웨어, 소프트웨어, 및 펌웨어의 임의의 조합, 및 전자 장치(100)의 기능을 구동하도록 동작하는 임의의 컴포넌트, 회로 또는 로직을 포함할 수 있다. 예를 들어, SoC 제어 회로(112)는 NVM(120) 또는 메모리(114)에 저장된 소프트웨어/펌웨어의 제어 하에서 동작하는 하나 이상의 프로세서를 포함할 수 있다.
메모리(114)는 동적 랜덤 액세스 메모리("DRAM"), 동기식 동적 랜덤 액세스 메모리("SDRAM"), 더블-데이터-레이트("DDR") RAM, 캐시 메모리, 판독 전용 메모리("ROM"), 또는 이들의 임의의 조합과 같은 휘발성 또는 비휘발성 메모리의 임의의 적절한 유형을 포함할 수 있다. 메모리(114)는 비휘발성 메모리(120)에 프로그래밍하거나 비휘발성 메모리(120)로부터 판독하기 위한 사용자 데이터를 일시적으로 저장할 수 있는 데이터 소스를 포함할 수 있다. 일부 실시예들에서, 메모리(114)는 SoC 제어 회로(112)의 일부로서 구현된 임의의 프로세서에 대한 메인 메모리로서 기능할 수 있다.
NVM 인터페이스(118)는 SoC 제어 회로(112) 및 NVM(120) 사이의 인터페이스 또는 드라이버로서 기능하도록 구성된 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 적절한 조합을 포함할 수 있다. NVM 인터페이스(118)에 포함된 임의의 소프트웨어 모듈들에 대하여, 대응하는 프로그램 코드는 NVM(120) 또는 메모리(114)에 저장될 수 있다.
NVM 인터페이스(118)는 SoC 제어 회로(112)가 NVM(120)에 액세스하여 NVM(120)의 메모리 위치들(예컨대, 페이지들, 블록들, 수퍼 블록들, 집적 회로들) 및 그곳에 저장된 데이터(예컨대, 사용자 데이터)를 관리하게 하는 다양한 기능들을 수행할 수 있다. 예를 들어, NVM 인터페이스(118)는 SoC 제어 회로(112)로부터의 판독 또는 기입 커맨드들을 해석하고, 웨어 레벨링(wear leveling)을 수행하고, NVM(120)의 버스 프로토콜과 호환가능한 판독 및 프로그램 명령어들을 생성할 수 있다.
NVM 인터페이스(118) 및 SoC 제어 회로(112)가 별개의 모듈로서 도시되지만, 이는 단지 본 발명의 실시예들의 설명을 간략하게 하도록 의도된 것이다. 이러한 모듈들이 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 또는 양쪽 모두를 공유할 수 있다는 것을 이해해야 한다. 예를 들면, SoC 제어 회로(112)의 일부분으로서 구현된 프로세서는 NVM 인터페이스(118)를 위한 소프트웨어 기반 메모리 드라이버를 실행할 수 있다. 따라서, SoC 제어 회로(112) 및 NVM 인터페이스(118)의 일부분들은 때로 "제어 회로"로서 집합적으로 칭해질 수 있다.
도 1은 NVM(120)이 그 자신의 제어기를 가질 수 없는 전자 장치를 예시한다. 다른 실시예들에서, 전자 장치(100)는 플래시 또는 SD 카드와 같은 타겟 장치를 포함할 수 있고, 상기 타겟 장치는 NVM(120) 및 NVM 인터페이스(118)의 일부 또는 전부(예를 들면, 후술되는, 변환 계층)를 포함한다. 이러한 실시예들에서, SoC(110) 또는 SoC 제어 회로(112)는 타겟 장치에 대한 호스트 제어기로서 작동할 수 있다. 예를 들면, 호스트 제어기로서, SoC(110)는 타겟 장치에 대해 판독 및 기입 요청들을 발행할 수 있다.
도 2a 및 2b는, 도 1의 실시예(100)의 다양한 실시예들의 예시들인, 시스템들의 개략도들이다. 우선 도 2a를 살펴보면, 시스템(200)은 호스트 프로세서(210) 및 적어도 하나의 비휘발성 메모리("NVM") 패키지(220)를 포함할 수 있다. 호스트 프로세서(210) 및 옵션으로 NVM 패키지(220)는, 휴대용 미디어 플레이어(예를 들면, 캘리포니아 쿠퍼티노 소재의 Apple 사에 의해 이용가능하게 제작된 iPod™), 셀룰러 전화기(Apple 사에 의해 이용가능하게 제작된 iPhone™), 포켓 크기의 퍼스널 컴퓨터, "PDA"(personal digital assistance), 데스크탑 컴퓨터, 또는 랩탑 컴퓨터와 같은, 임의의 적절한 호스트 장치 또는 시스템에서 구현될 수 있다.
호스트 프로세서(210)는 현재 이용가능하거나 또는 미래에 개발될 것인 하나 이상의 프로세서 또는 마이크로프로세서를 포함할 수 있다. 대안적으로 또는 추가적으로, 호스트 프로세서(210)는 메모리 시스템(200)(예를 들면, "ASICs"(application-specific integrated circuits)의 다양한 동작들을 제어할 수 있는 임의의 다른 컴포넌트들 또는 회로를 포함하거나 또는 그와 함께 동작할 수 있다. 프로세서 기반 구현에서, 호스트 프로세서(210)는 호스트 상에 구현된 (도시되지 않은) 메모리로 로딩된 펌웨어 및 소프트웨어 프로그램들을 실행할 수 있다. 메모리는 임의의 적절한 유형의 휘발성 메모리(예를 들면, 캐시 메모리, 또는 "DDR"(double data rate) RAM 또는 "SRAM"(static RAM)과 같은 "RAM"(random access memory))를 포함할 수 있다. 호스트 프로세서(210)는 NVM 드라이버(212)를 실행할 수 있고, NVM 드라이버(212)는 호스트 프로세서(210)로 하여금 다양한 메모리 관리를 수행할 수 있게 하고 비휘발성 메모리 패키지(220)에 대한 기능들을 액세스할 수 있게 하는 벤더(vendor)-지정 및/또는 기술-지정 명령어들을 제공할 수 있다. 호스트 프로세서(210)는 (도 1의) SoC(110)의 기능들 중 임의의 것을 수행할 수 있다.
호스트 프로세서(210)는 또한, NVM 드라이버(212)의 일부로서 구현될 수 있는, 전력 캡핑 모듈(power capping module)(214)을 실행할 수 있다. 전력 캡핑 모듈(214)은 NVM 패키지(220)의 전력 소모 제어기로서 작동할 수 있고, 본 발명의 다양한 실시예들에 따라 다양한 전력 제한 스킴들을 구현할 수 있다. 이러한 전력 제한 스킴들은 동시에 액세스될 수 있는 다이(224)의 수를 제어함으로써 NVM 패키지(220)에 의한 전력 소모를 캡핑할 수 있다. 본 발명의 실시예들에 따른 다양한 전력 제한 스킴들은 이하에 더욱 상세히 설명된다.
NVM 패키지(220)는 "BGA"(ball grid array) 패키지 또는 다른 적합한 유형의 "IC"(integrated circuit) 패키지일 수 있다. NVM 패키지(220)는 관리된 NVM 패키지일 수 있다. 특히, NVM 패키지(220)는 임의의 적합한 수의 NVM 다이들(224)에 결합되는 NVM 제어기(222)를 포함할 수 있다. NVM 제어기(222)는 프로세서들, 마이크로프로세서들, 또는 하드웨어 기반 컴포넌트들(예를 들면, ASIC들)의 임의의 적합한 조합을 포함할 수 있고, 호스트 프로세서(210)와 동일한 컴포넌트들 또는 상이한 컴포넌트들을 포함할 수 있다. NVM 제어기(222)는 NVM 다이들(224)의 물리적 메모리 위치들을 관리 및/또는 액세스할 책임을 NVM 드라이버(212)와 공유할 수 있다. 대안적으로, NVM 제어기(222)는 실질적으로 NVM 다이들(224)에 대한 관리 및 액세스 기능들 모두를 수행할 수 있다. 따라서, "관리된 NVM"은 비휘발성 메모리(예를 들면, NVM 다이들(224))에 대한 적어도 하나의 메모리 관리 기능을 수행하도록 구성된 제어기(예를 들면, NVM 제어기(222))를 포함하는 메모리 장치 또는 패키지를 칭할 수 있다. NVM 다이들(224)에 대해 NVM 제어기(222) 및/또는 호스트 프로세서(210)에 의해 수행될 수 있는 메모리 관리 및 액세스 기능들은, 판독, 기입 또는 소거 명령어들을 발행하는 것과, 웨어 레벨링(wear leveling), 배드(bad) 블록 관리, 가비지 콜렉션(garbage collection), 논리 대 물리 주소 맵핑, SLC 또는 MLC 프로그래밍 판단을 수행하는 것, 에러 정정 또는 검출을 적용하는 것, 및 프로그램 동작들을 설정하도록 데이터 큐잉(data queuing)하는 것을 포함할 수 있다.
NVM 패키지(220)는 NVM 제어기(222)에 의해 실행될 수 있는 전력 캡핑 모듈(223)을 포함할 수 있다. 전력 캡핑 모듈(223)은 전력 캡핑 모듈(214)과 동일한 작동 능력을 가질 수 있다. 일부 실시예들에서, 전력 캡핑 모듈들(214 및 223) 양쪽 모두는 시스템(200)에 포함될 수 있다. 이 실시예에서, 모듈들(214 및 223)은 본 발명의 실시예에 따른 전력 제한 스킴을 구현하도록 함께 동작할 수 있다. 예를 들면, 모듈(214)은 마스터로서 기능할 수 있고, 모듈(223)은 슬레이브로서 기능할 수 있다. 또 다른 실시예에서, 시스템(200)은 전력 캡핑 모듈(223)이 아닌 전력 캡핑 모듈(214)을 포함할 수 있다. 또 다른 실시예에서, 시스템(200)은 전력 캡핑 모듈(214)이 아닌 전력 캡핑 모듈(223)을 포함할 수 있다.
NVM 다이들(224)은 메모리 시스템(200)이 파워 다운인 경우 유지될 필요가 있는 정보를 저장하는데 사용될 수 있다. 본 명세서에서 사용되는 바와 같이, 맥락에 따라, "비휘발성 메모리"는 데이터가 저장될 수 있는 NVM 다이들 또는 NVM 다이들을 포함하는 NVM 패키지를 지칭할 수 있다.
도 2b를 참조하면, 도 1의 전자 장치(100)의 다른 실시예의 일례일 수 있는 시스템(250)의 개략도가 도시된다. 시스템(250)은 도 2a의 시스템(200)과 관련하여 전술된 임의의 특징들 및 기능들을 구비할 수 있다. 특히, 도 2b에 도시된 임의의 컴포넌트들은, 도 2a의 유사한 명칭의 컴포넌트들의 임의의 특징들 및 기능들을 구비할 수 있으며, 그 반대도 가능하다.
시스템(250)은 호스트 프로세서(260) 및 비휘발성 메모리 패키지(270)를 포함할 수 있다. 도 2a의 메모리 시스템(200)과 달리, NVM 패키지(270)는 내장된 NVM 제어기를 포함하지 않으므로, NVM 다이들(274)은 호스트 프로세서(260)에 의해 (예를 들어, NVM 드라이버(262)를 통해) 전체적으로 관리될 수 있다. 따라서, 비휘발성 메모리 패키지(270)는 "로우(raw) NVM"으로 지칭될 수 있다. "로우 NVM"은 NVM 패키지 외부에 구현되는 호스트 제어기 또는 프로세서(예를 들어, 호스트 프로세서(260))에 의해 전체적으로 관리될 수 있는 메모리 장치 또는 패키지를 지칭할 수 있다. 호스트 프로세서(260)는 도 2a의 NVM 제어기(222) 및 호스트 프로세서(210)와 관련하여 전술된 임의의 다른 메모리 관리 및 액세스 기능들을 수행할 수 있다. 또한, 호스트 프로세서(260)는 (도 1의) SoC(110)의 임의의 기능들을 수행할 수 있다.
또한, 호스트 프로세서(260)는 NVM 드라이버(262)의 일부분으로서 구현될 수 있는 전력 캡핑 모듈(264)을 실행할 수 있다. 전력 캡핑 모듈(264)은 전력 캡핑 모듈(214)(도 2a)과 동일한 동작 능력들을 구비할 수 있다.
도 2a 및 도 2b를 계속 참조하면, NVM 제어기(222)(도 2a) 및 (예를 들어, NVM 드라이버(262)를 통한) 호스트 프로세서(260)(도 2b)는 각각 도 1과 관련되어 전술된 SoC(110)의 특징들 및 기능을 구현할 수 있고, NVM 다이들(224, 274)은 본 발명의 다양한 실시예들을 이용하여 확인될 수 있는 각각의 전력 소모 프로파일들을 구현할 수 있다. 특히, NVM 다이들(224(도 2a), 274(도 2b)) 각각은 뾰족한(peaky) 전류 프로파일을 가질 수 있고, 가장 높은 피크들은 다이가 최대 전력 집약(most power-intensive) 동작들을 수행할 때 발생한다. 플래시 메모리 실시예들에서, 이러한 전력 집약 동작의 일례는 감지 동작(예를 들어, 전류 감지 동작)이고, 이것은 메모리 셀들에 저장된 데이터를 판독하는 경우에 사용될 수 있다. 이러한 감지 동작들은, 예를 들어, 프로그래밍 후에 데이터가 적절하게 저장되었는지를 검증할 때 호스트 프로세서 및/또는 NVM 제어기로부터의 판독 요청들에 응답하여 수행될 수 있다.
도 2c는 예시적인 전류 소모 프로파일(290)을 도시한다. 전류 소모 프로파일(290)은 검증 유형 감지 동작 중에 NVM 다이(예를 들어, NVM 다이들(224 또는 274) 중 하나)의 전류 소모의 일례를 제공한다. 피크들(292, 294)을 포함하는 몇몇의 피크들에 의해, 전류 소모 프로파일(290)은 검증 유형 감지 동작이 얼마나 뾰족한지를 도시한다. 이 검증 유형 감지 동작들은 다수의 NVM 다이들에 걸쳐 동시에 발생하기 쉬울 수 있기 때문에(즉, 다수의 다이들에 걸쳐 병렬 기입들을 이용하는 것에 의해) 특히 주목할 수 있다. 따라서, NVM 제어기(222)(도 2a) 또는 호스트 프로세서(260)(도 2b)에 의해 관리되지 않는 경우, 상이한 NVM 다이들의 피크들이 겹칠 수 있고, 총 전류 합은 용인하기 어려울 정도로 높을 수 있다. 이러한 상황은 소거 및 프로그램 동작들과 같은 다른 유형의 전력 집약 동작들에서 발생할 수 있다. 따라서, 각각의 다이가 (예를 들어, 프로그램, 판독, 소거 또는 그 조합에 의해) 동시에 액세스되는 경우, 누적 전류 소모 프로파일은 단일 다이의 전류 소모 프로파일보다 매우 높을 수 있다.
도 3은 본 발명의 실시예에 따른 NVM 패키지의 일부분을 더 상세하게 도시하는 예시적인 블록도이다. 도 3은, 기입 동작 중에, 데이터 소스(310)로부터 버퍼(320)로 데이터가 어떻게 전달될 수 있는지 및 버퍼(320)로부터 다이(330)의 블록들(332) 중 하나에 존재하는 페이지들(334) 중 하나로 데이터가 어떻게 전달될 수 있는지를 도시한다. 기입 동작은 2개의 부분들, 즉, (1) 데이터 소스(310)로부터 버퍼(320)로의 데이터의 전달인 버퍼 동작 및 (2) 버퍼(320)로부터 다이(330)로의 데이터의 전달인 프로그램 동작을 포함할 수 있다. 양쪽 부분들 모두는 시간 컴포넌트 및 전력 소모 컴포넌트를 구비할 수 있다. 본 명세서에서 버퍼링 동작, 및 버퍼링 동작을 완전히 수행하는데 필요한 시간은 Tbuff로 지칭된다. 프로그래밍 동작, 및 프로그래밍 동작을 완전히 수행하는데 필요한 시간은 Tprog로 지칭된다.
기입 동작의 버퍼 및 프로그램 부분들은 타이밍도(350)에 도시된다. 다이어그램(350)은 시간 t0에서 시작하여 시간 t1에서 종료하는 기입 동작을 도시한다. 버퍼 부분은 시간 t0에서 시작하여 시간 ti에서 종료하는 전체 기입 동작 중 상대적으로 작은 부분을 차지할 수 있는 반면, 프로그램 부분은 시간 ti에서 시작하여 시간 t1에서 종료하는 기입 동작 중 상대적으로 큰 부분을 차지할 수 있다. 다이어그램(350)은 또한 버퍼 및 프로그램 부분들에 대한 예시적인 전력 소모를 도시한다. 프로그램 부분은 버퍼 부분보다 실질적으로 전력을 더 소모한다.
데이터 소스(310)는 블랙 박스로 표현된 임의의 데이터 소스일 수 있다. 예를 들어, 데이터 소스는 NVM 패키지들 사이에서 데이터를 라우팅하는 데이터 버스 라인들일 수 있다. 데이터 소스(310)는 도 2a 및 도 2b의 호스트 프로세서(210 또는 260)와 같은 호스트 프로세서로부터 데이터를 수신할 수 있다.
버퍼(320)는 데이터를 일시적으로 저장하기 위한 임의의 적절한 구조일 수 있다. 예를 들어, 버퍼(320)는 레지스터일 수 있다. 버퍼(320)는 다이(330)보다 훨씬 빠른 레이트로 데이터를 수신하고 저장할 수 있기 때문에 사용될 수 있다. 따라서, 버퍼(320)는, NVM 인터페이스가 (버퍼(320)에서의) 일시적이고 빠른 저장을 위해 각각의 다이들에 데이터를 디스패치하는 것을 가능하게 하여, 추가의 데이터 전달을 위한 데이터 라인들을 프리 업(freeing up)한다. 버퍼(320)가 존재하지 않는 경우, 데이터 라인들은 다이(330)에 모든 데이터가 기입될 때까지 동작(busy)중일 것이다.
다이(330)는 미리 결정된 개수의 물리적 블록들(332)을 포함할 수 있고 각각의 블록은 미리 결정된 개수의 페이지들(334)을 포함할 수 있다. 페이지들 및 블록들은 다이(330) 내의 메모리 셀들의 물리적 위치들을 나타낸다. 페이지들 또는 블록들 내의 셀들은 셀들이 존재하는 NVM 패키지와 관련된 어드레싱 회로(도시되지 않음)를 사용하여 액세스될 수 있다. 통상적으로, 다이 당 하나의 블록만이 임의의 주어진 시간에 액세스될 수 있다. 일부 실시예들에서, 다이는 복수의 플레인(plane)들로 분할될 수 있고, 다이의 각각의 플레인의 블록들은 동시에 액세스될 수 있다.
일부 실시예들에서, 둘 이상의 다이들로부터의 블록들은 슈퍼블록을 형성하기 위해 가상으로 함께 링크될 수 있다. 블록들은 슈퍼블록으로서 가상으로 링크될 각각의 다이의 동일한 행에 있을 필요는 없다. 사실 블록들은 슈퍼 블록을 형성하기 위해 둘 이상의 다이들로부터 랜덤하게 선택될 수 있다. 일부 실시예들에서, 블록들은 둘 이상의 플레인들로부터 선택될 수 있고, 각각의 플레인의 블록들은 동시에 액세스 가능하다. 슈퍼블록들은 동작성 평행처리(parallelism)를 제공함으로써, 평행한 상이한 플레인들에 위치한 블록들 상에서 프로그래밍, 판독 및 삭제 동작들이 수행될 수 있게 한다. 다른 실시예에서, 둘 이상의 다이들 또는 플레인들로부터의 페이지들은 슈퍼페이지들을 형성하기 위해 가상으로 함께 링크될 수 있다. NVM 인터페이스로 구현되는 변환(translation) 레이어는 슈퍼블록들 또는 슈퍼 페이지들을 추적할 수 있다.
피드백 라인(340)은 다이(330) 및/또는 버퍼(320)의 동작에 관련된 정보를 제공할 수 있다. 예를 들면, 피드백 라인(340)은 기입 동작의 버퍼 부분 및 프로그램 부분이 완료될 때, 페이지를 프로그래밍하는 데에 요구되는 펄스들의 수, 전압 신호, 전압 범위, 또는 다이(300)의 동작에 관련된 임의의 다른 정보와 같은 피드백 정보를 제공할 수 있다. 기입 동작의 임의의 부분의 시간 및 전력은 다이, 다이의 영역, 블록, 또는 페이지(예를 들면, 하위 페이지 또는 상위 페이지)로 분해될 수 있고, 이러한 정보 중 어느 것이라도 피드백 라인(340)에 제공될 수 있다는 것이 이해된다. 피드백 라인(340)의 정보는 NVM 제어기(예를 들면, NVM 제어기(222)) 및/또는 호스트 프로세서에, 또는 더 구체적으로는 전력 캡핑 모듈에 제공될 수 있다.
도 3에서 논의되는 NVM 동작이 프로그래밍 동작과 관련있더라도, 판독 및 삭제와 같은 다른 NVM 동작들도 유사한 타이밍 및 전력 소모 파라미터들을 보일 수 있다는 것이 이해된다. 예를 들면, 판독 동작은 판독 부분 및 버퍼 부분을 가질 수 있다. 판독 부분은 버퍼 부분보다 전력을 더 소모할 수 있고 그것은 또한 수행하는데 더 오래 걸릴 수 있다.
도 4a는 종래 기술 시스템에 의해 제어되는 NVM 패키지 내의 모든 다이의 예시적인 누적 전류 소모 프로파일(410)을 도시한다. 프로파일(410)은 전력 제한 방식을 사용하지 않는 시스템에서 생성될 수 있다. 그 결과, 전류 프로파일(410)은 피크들(412 및 414)에 의해 지시된 바와 같이, 피크 전류 소모의 인스턴스들을 포함할 수 있다. 그러한 종래 기술 시스템이 피크 전력 이벤트가 발생하도록 허용하기 때문에, 그러한 이벤트들을 수용하도록 설계되어야 한다. 이것은 시스템에 불필요한 설계 제약을 두며, 이로 인해 시스템으로 하여금 피크 전류에 도달하는 NVM 이벤트를 다루고 피크 전류 요구조건을 만족하기 위해 충분한 전력을 비축해야 하도록 한다. 게다가, 피크 전류 이벤트가 상대적으로 드물기 때문에, 평균 전류 소모는 도시된 바와 같이 피크 전류 미만이다. 피크 전류와 평균 전류의 이러한 격차는 과도한 전류 오버헤드가 NVM 패키지에 할당되게 한다. 본 발명에 따르는 실시예들은 도 4a의 결함을 극복한다.
도 4b는 본 발명의 실시예에 따른 시스템(예를 들면, 시스템(100), 시스템(200), 또는 시스템(250))에 의해 제어되는 NVM 패키지내의 모든 다이의 예시적인 누적 전류 소모 프로파일(420)을 도시한다. 프로파일(420)은 전력 제한 또는 전류 제한 스킴을 사용하는 시스템에서 생성된다. 이러한 스킴은 전류 소모를 캡핑할 수 있고, 이로 인해 순간의 전류가 전류 임계치를 초과하는 것을 방지한다. 전류를 캡핑함으로써, 피크들(422 및 424)은 전류 임계치에 의해 제한되지 않았다면 소모되었을 만큼의 전류를 순간적으로 소모하도록 허용되지 않는다. 도시된 바와 같이, NVM 병행 동작들의 개수가 본 발명의 실시예에 따른 전력 제한 스킴에 의해 제한되기 때문에, 피크들(422 및 424)은 평탄화될 수 있다. 따라서, 제한 없이 동작하도록 허용되었다면 전류 임계치를 초과하였을 병행 동작성 부하를 갖는 NVM 이벤트들은 그렇게 동작하는 것으로부터 방지되며 전류 소모가 임계치를 초과하지 않는다는 것을 보장하도록 시간이 지남에 따라 분산된다. NVM 이벤트들의 병행 동작을 제한하는 기술은 첨부한 도 6 내지 도 12의 설명과 함께 더 상세히 후술된다.
전력 제한 스킴의 사용은 NVM 패키지 상의 전력 오버헤드 부담을 감소시킬 수 있다. 이것은 전력 제한 스킴에 의해 설정된 전류 임계치가 NVM 패키지에 의해 유도되는 최대 전력을 설정할 수 있기 때문에 시스템이 시스템 내의 다른 컴포넌트들에 전력 리소스들을 할당하게 할 수 있다. 일부 실시예들에서, 전력 제한 스킴은 다양한 시스템 파라미터들에 따라 전류 임계치를 다르게 할 수 있다. 예를 들면, 프로세서와 같은 시스템 내의 다른 컴포넌트들이 상대적으로 유휴(idle) 상태이면, NVM 패키지에 대한 전류 임계치는 추가적인 NVM 병행 동작들을 허용하도록 증가할 수 있다. 다른 컴포넌트들이 상대적으로 활성화될 때, NVM에 대한 전류 임계치는 감소할 수 있다.
도 5는 전원 모니터링 회로(512), 부하 모니터링 회로(514), 온도 모니터링 회로(516), 및 NVM 전력 소모 데이터(518)로부터 수신한 입력들에 기초하여 전력 임계치를 제공하고 동적으로 변경하도록 동작하는 전력 레벨 선택 회로(510)의 예시적인 블록도를 도시한다. 선택 회로(510)는 전류 임계치를 NVM 인터페이스(예를 들면, NVM 인터페이스(118)) 또는 NVM 패키지(예를 들면, NVM(120))에 제공할 수 있다.
전원 모니터링 회로(512)는 시스템에서 사용 가능한 전력 레벨을 모니터링할 수 있으며, 그것의 데이터를 전력 레벨 선택 회로(510)에 제공할 수 있다. 예컨대, 회로(512)는 배터리의 에너지 레벨을 모니터링할 수 있다. 다른 예로서, 회로(512)는 시스템이 랩탑 또는 전원 브릭(power brick)과 같은 외부 소스로부터 전력을 수신하는지 여부를 검출할 수 있다. 더욱이, 시스템이 외부 전력을 수신할 때, 회로는 얼마의 전력이 수신되고 있는지(예컨대, 랩탑으로부터 500mAmps 또는 전원 브릭으로부터 1Amp)를 전력 레벨 선택 회로에 나타날 수 있다. 부하 모니터링 회로(514)는 시스템 내의 다양한 컴포넌트들(예컨대, 프로세서, 메모리, 백라이트, LCD, 사용자 인터페이스 등)의 실시간 부하를 모니터링할 수 있다. 회로(514)는, 예컨대 시스템 내에 현존하는 명령 대기열들(queues)에 기초하여 컴포넌트들의 부하를 또한 예측할 수 있다. 온도 모니터링 회로(516)는 시스템의 온도를 모니터링할 수 있다.
NVM 전력 소모 데이터(518)는 NVM 패키지에 의해 얼마나 많은 전력이 소모될 수 있는지를 특정할 수 있다. NVM 패키지의 전력 소모 분해능(resolution)은 비교적 특정적인 것(예컨대, 상부 페이지의 전력 또는 전류 소모)으로부터 비교적 일반적인 것(예컨대, 특정 다이의 전력 소모)까지 변할 수 있다. 선택 회로(510)는 이러한 데이터를 사용하여 주어진 전류 임계치에 대해 NVM 병행 동작들이 얼마나 많이 수행될 수 있는지를 결정할 수 있다. 데이터(518)는, 예컨대 NVM 패키지 공급자들 또는 NVM 패키지의 전력 소모를 결정하는 테스팅으로부터 얻어질 수 있다. NVM 패키지들의 전력 소모를 결정하는 테스트의 예는, _____일자로 출원된 "Peak Power Validation Methods and Systems for Non-Volatile Memory"라는 제목의 미국 특허 출원 번호 _____(대리인 정리번호 P8909US1)에서 입수할 수 있으며, 해당 개시는 참조로서 본원에 완전히 통합된다.
선택 회로(510)는 그것이 수신하는 데이터를 밸런싱하고 그에 따라 전류 임계치를 설정할 수 있다. 예컨대, 공급된 전력이 미리 결정된 전력 임계치보다 높다면, 시스템 부하는 미리 결정된 부하 임계치보다 낮으며, 온도는 미리 결정된 온도 임계치보다 낮으며, 회로(510)는 비교적 높은 전류 임계치를 선택할 수 있다. 다른 예로서, 공급된 전력이 미리 결정된 전력 임계치보다 낮다면, 시스템 부하는 미리 결정된 부하 임계치보다 높으며, 온도는 미리 결정된 온도 임계치보다 낮으며, 회로(510)는 비교적 낮은 전류 임계치를 선택할 수 있다. 이러한 예들은 단지 예시적일 뿐이며, 회로(510)는 전류 임계치를 동적으로 변경하기 위한 인자들로서 본원에 논의된 것들 이외에 추가적인 입력들을 수신할 수 있다는 것을 이해해야 한다.
이제 도 6 내지 12를 참조하여, NVM 동작들에서의 전력 소모를 제한하는 몇몇 기법들이 논의된다. 이전에 도 3에서 논의된 것과 같이, 각각의 기법은 버퍼링하는 시간 및 프로그래밍하는 시간을 참조한다. 버퍼링하는 시간은 본원에서 Tbuff로 지칭될 것이며, 프로그래밍하는 시간은 본원에서 Tprog으로 지칭될 것이다. 도면들 중 일부는 번호가 매겨진 다이들에 대한 참조를 포함할 것이다. Tbuff 및 Tprog 동작이 어떤 다이와 연관되는지를 나타내기 위해 Tbuff 및 Tprog에 다이 번호(예컨대, Tprog1)가 부가될 수 있다. 예컨대, Tprog1은 다이 번호 1에 대한 프로그래밍하는 시간을 지칭한다.
도 6은 예시적으로 이상적이고, 전류 제한되지 않는 타이밍도(610)를 도시한다. 타이밍도(610)는 번호 1 및 2로 라벨링된 두 개의 다이들에 대한 Tbuff 및 Tprog을 도시한다. 추가적인 다이들이 도시될 수 있으나, 도면을 복잡하게 하는 것을 막기 위해 생략되었음을 이해해야 한다. 도시된 것과 같이, NVM 이벤트는 Tbuff1로 시작하며, 그것의 완료에 이어 즉시 Tprog1 및 Tbuff2가 시작된다. Tbuff2가 완료된 후, Tprog2가 시작된다. 이 시점에서, Tprog1 및 Tprog2가 병행 동작하고 있으므로 전류 소모는 최대이다. Tprog1이 완료되면, 단지 Tprog2만이 수행되고 있으므로 전류 소모가 떨어진다. NVM 동작들에 전류 임계치가 도입되지 않기 때문에 타이밍도(610)가 이상적이므로, 다이 1 및 2 양쪽 모두의 전류 소모가 쌓이는 것을 허용한다.
도 7은 본 발명의 실시예에 따른 예시적인 전류 제한 타이밍도(710)를 도시한다. 타이밍도(710)는 병행 다이 동작을 단지 하나의 다이로 효과적으로 제한하는 전류 임계치를 고수할 수 있다. 도시된 것과 같이, NVM 이벤트는 Tbuff1로 시작하며, 그것의 완료에 이어 즉시 Tprog1 및 Tbuff2가 시작된다. 도 6과 대조적으로, Tprog2는 Tbuff2 및 Tprog1이 완료된 후까지 시작되지 않는다. 그러므로, Tprog1이 완료된 후까지 Tprog2의 시작을 늦추는 것은 전류 소모를 제한하며, 그에 의해 전류 임계치를 고수한다. 비교를 위해 (이상적 모드에서 동작하는) Tprog2의 점선 표시가 제공된다.
도 8a는 본 발명의 실시예에 따라 반응성 전력 제한 스킴에 따라 동작하는 예시적인 전류 제한 타이밍도(810)를 도시한다. 이 스킴에서, 실질적으로 Tbuff 동작이 완료된 직후 Tprog 동작이 시작되는 것으로 가정한다. 이 스킴은 각각의 다이에 대한 Tbuff 및 Tprog의 디스패치(즉, 시작)를 제어하기 위한 피드백 데이터를 사용한다. 피드백 데이터는, 예컨대 주어진 다이에 대한 Tprog이 언제 완료되는지를 특정할 수 있다. 그러므로, 주어진 전류 임계치에 대해, 얼마나 많은 Tprog 병행 동작들이 수행될 수 있는지 알려진다. 이러한 지식, 및 피드백 데이터를 사용하여, 반응성 전력 제한 스킴은 현재의 임계치에 대해 최대한 많은 병행 동작들을 디스패치할 수 있다.
타이밍도(810)는 Tbuff1로 시작하며, Tprog1이 뒤따른다. Tprog1이 완료된 후, Tprog1이 완료된 것을 나타내는 피드백 데이터가 제공된다. 이 피드백 데이터가 수신된 후, 반응성 전력 제한 스킴은 Tbuff2를 시작할 수 있으며, 즉시 Tprog2가 뒤따른다. 도 8a에 도시되지 않지만, 피드백 데이터가 수신 및 처리되는 데 걸리는 시간과 연관된 임의의 지연 때문에, Tprog1이 완료된 후 Tbuff2의 시작에 레이턴시가 존재할 수 있다.
도 8b는 본 발명의 실시예에 따른 반응성 전력 제한 스킴에 의해 수행될 수 있는 단계들의 예시적인 흐름도를 도시한다. 단계(820)에서 시작하여, 전류 임계치가 수신된다. 전류 임계치가 시스템 내의 여러 인자들에 따라 변경될 수 있다는 것을 나타내는 피드백 루프가 제공된다. 상이한 전류 임계치가 수신되면, 전력 제한 스킴은 이러한 상이함이 필요에 따라서는 적절한 변화들을 일으키는 것을 설명할 수 있다.
단계(830)에서, 수신된 전류 임계치에 기초하여 수행될 수 있는 최대 NVM 병행 동작(Cmax) 개수에 관한 결정이 행해진다. 단계(840)에서, 대기 NVM 병행 동작들의 초과분을 수신하는데, 이 병행 동작은 전류 임계치를 초과할 것이다. 단계(850)에서, 대기 NVM 동작들의 제1 세트가 디스패치되고, 이 제1 세트는 Cmax를 초과하지 않는 다수의 동작들을 포함한다. 제1 세트는 아직 Tprog 완료를 보고하지 않은 임의의 이전에 디스패치된 NVM 동작들을 고려할 수 있다. 단계(860)에서, Tprog 완료들의 피드백이 모니터링된다. 단계(870)에 나타낸 바와 같이, 완료된 Tprog의 검출 시에, 대기 NVM 동작들 중 다른 하나가 디스패치될 수 있다.
단계(880)에서, 임의의 추가의 대기 NVM 동작들이 존재하는지에 관한 결정이 행해진다. 결정이 YES이면, 프로세스는 단계(860)로 되돌아갈 수 있다. 대기 NVM 동작들의 초과분에 추가할 수 있는 추가의 NVM 동작들이 수신될 수 있고, 이에 의해 병행 동작들의 수를 제한할 필요성을 더욱 영구화시키는 것을 이해하도록 한다. 결정이 NO이면, 프로세스는 단계(820)로 되돌아갈 수 있다.
도 9는 본 발명의 실시예에 따른 파이프라인형 반응성 전력 제한 스킴에 따라 동작하는 예시적인 전류 제한 타이밍도(910)를 도시한다. 이 스킴은, Tbuff 동작들이 파이프라인화될 수 있다는 것을 제외하고는, 도 8a 및 도 8b와 관련하여 위에서 논의된 반응성 전력 제한 스킴과 유사하다. 그러나, Tprog 동작들은 실질적으로 Tbuff 동작들이 완료된 직후에 자동으로 시작되지는 않는다. 이 스킴은 Tbuff 동작을 실질적으로 그 대응하는 Tprog 동작의 직전에 수행할 필요성을 제거함으로써 NVM 동작들의 쓰루풋을 증가시킬 수 있다. 즉, 제2 다이에 대한 Tbuff 동작은 제1 다이의 Tprog 동작 전에 또는 그 동작 동안에 수행될 수 있다.
타이밍도(910)는 Tbuff1에서 시작하며, Tbuff1이 완료된 후에, Tprog1 및 Tbuff2가 시작될 수 있다. Tprog1이 완료되기 전에 Tbuff2가 그 동작을 완료하지만, 파이프라인 반응성 스킴은 Tprog1이 완료되었음을 나타내는 피드백이 수신될 때까지 Tprog2가 시작되는 것을 허가하지 않는다. 다른 실시예에서, Tbuff1 및 Tbuff2는 함께 시작할 수 있지만, Tprog2는 Tprog1이 완료될 때까지 시작되지 않을 것이다.
도 10a 및 도 11a는 본 발명의 실시예에 따른 예측 전력 제한 스킴들에 따라 동작하는 예시적인 전류 제한 타이밍도들을 도시한다. 예측 전력 제한 스킴들은 각각의 NVM 동작이 완료되는 데 시간이 얼마나 걸리는지를 예측할 수 있고, 얼마나 많은 Tprog 병행 동작들이 주어진 전류 임계치에 대해 수행될 수 있는지에 대해 알려져 있기 때문에, 예측 전력 제한 스킴은 가능한 한 많은 병행 동작들을 디스패치하도록 동작할 수 있다. 반응성 전력 제한 스킴들과 반대로, 예측 전력 제한 스킴들은, 후속 NVM 동작들이 언제 디스패치될 수 있는지를 결정하기 위하여 피드백에 의존할 필요는 없다. 그 이름이 내포하듯이, 예측 전력 제한은 주어진 NVM 동작이 언제 완료되는지를 예측하여, 그 예측과 연관된 시간 기간이 종료된 후에 NVM 동작을 디스패치한다.
NVM 동작의 예측은 두 가지 부분, 즉 (1) 버퍼링하는 시간 예측, Tbuff(p), 및 (2) 프로그래밍하는 시간 예측, Tprog(p)를 포함할 수 있다. Tbuff(p) 및 Tprog(p)는 실제 Tbuff 및 Tprog 동작들이 실제로 얼마나 오래 걸리는지에 관한 예측들이다. Tbuff(p) 및 Tprog(p)의 선택은 컨서버티브(conservative)부터 어그레시브(aggressive)까지 변할 수 있다. 다른 실시예들에서, 문맥 특정 예측들이 선택될 수 있다 (예를 들어, Tprog(p)가 하위 페이지들을 프로그래밍하는 것보다 상위 페이지들을 프로그래밍하는 것에 대하여 더 높을 수 있다). 또 다른 실시예에서, 피드백 정보에 의한 예측을 이용하는 혼합형(hybrid) 접근 방식이 구현될 수 있다.
이제 도 10a를 참조하면, 본 발명의 실시예에 따른 컨서버티브 예측 전력 제한 스킴에 따라 동작하는 예시적인 전류 제한 타이밍도(1010)가 도시되어 있다. 일 실시예에서, 컨서버티브 예측들은 실제 Tbuff 및 Tprog 시간들이 Tbuff(p) 및 Tprog(p)보다 적은 것이 실질적으로 합리적으로 확인되도록 각각의 NVM 동작에 대해 적절한 시간이 할당되는 것을 보장할 수 있다. 다른 실시예에서, Tbuff(p)가 Tprog보다 큰 것을 보장하기 위하여 컨서버티브 예측들이 선택될 수 있다. 이들 접근 방식들은 완료 동작에 실제로 필요한 것보다 많은 시간을 예측하는 비용을 지불하고서라도, 예를 들어, Tprog 내의 예기치못한 지연들로부터 보호하도록 안전망을 제공할 수 있다. 따라서, NVM 병행 동작들의 쓰루풋을 감소시킬 수 있는 예측 오버헤드 시간의 잠재적 위험이 있을 수 있다.
타이밍도(1010)는 2개의 다이들에 대한 예측 타이밍 파라미터들을 도시하고, 컨서버티브 예측 파라미터들이 선택되기 때문에, Tbuff가 Tprog보다 완료 시간이 더 걸린다고 가정한다. 실제로는, 반대의 경우가 참이며, Tprog는 일반적으로 Tbuff보다 완료 시간이 항상 더 걸린다. 도시된 바와 같이, Tbuff(p1) 및 Tbuff(p2)는 Tprog(p1) 및 Tprog(p2)보다 완료에 더 많은 시간이 할당된다. 이제 도 10a 및 도 10b를 참조하면, 타이밍도(1020)는 컨서버티브 예측 전력 제한 스킴에 따라 동작하는 2개의 다이에 대한 실제 타이밍 파라미터들을 도시한다. Tprog2의 시작은 Tprog1의 완료가 아니라 Tbuff(p2)의 완료에 대해 키 오프(keyed off)된다. 따라서, Tbuff(p2)가 Tprog1보다 크다는 것을 보장함으로써, Tprog1 및 Tprog2의 오버랩은 존재하지 않게 되고, 이에 의해 NVM 동작들의 원치않는 병행 동작을 방지할 수 있다.
도 10c는 본 발명의 실시예에 따라 컨서버티브 예측 전력 제한 스킴을 구현하기 위해 취할 수 있는 단계들의 예시적인 흐름도를 도시한다. 단계(1022)에서 시작하여, 전류 임계치가 수신된다. 전류 임계치가 시스템 내의 여러 인자들에 따라 변할 수 있다는 것을 나타내는 피드백 루프가 제공된다. 상이한 전류 임계치가 수신되면, 상이한 전류 임계치와 연관된 임의의 제한이 예측 전력 제한 스킴에 의해 적용된다. 단계(1030)에서, 수신된 전류 임계치에 기초하여 수행될 수 있는 최대 NVM 병행 동작(Cmax) 개수에 관한 결정이 행해진다.
단계(1040)에서, 예측 스킴은 NVM 동작들에 대한 예측 타이밍 파라미터들을 선택한다. 이들 파라미터들은 Tbuff(p) 및 Tprog(p)를 포함할 수 있고, 모든 NVM 동작들에 균일하게 적용될 수 있다. 예를 들어, 일 실시예에서, Tbuff(p)의 지속 시간은 Tprog(p)의 지속 시간보다 클 수 있다. 예측 타이밍 파라미터들에 대해 선택된 실제 값들은 임의의 적절한 소스로부터 도출될 수 있다. 예를 들어, 파라미터들은 NVM 패키지 벤더 사양들, Tprog 및/또는 Tbuff의 평균 지속 시간 또는 테스팅 데이터에 기초할 수 있다. 일부 실시예들에서, Tbuff(p) 및 Tprog(p)에 대해 선택된 실제 값들은 이들 NVM 동작들 각각에 필요한 최대 기간들에 기초할 수 있다. 이들 NVM 동작들에 대한 평균 기간들에 기초하여 실제 값들을 선택하는 접근 방식과는 달리, Tbuff(p) 및 Tprog(p)에 대한 최대 지속기간들을 사용하는 것은, 다음 동작이 시작되기 전에 이전에 디스패치된 동작이 아직 완료되지 않은 상황을 방지할 수 있다.
단계(1045)에서, 대기 NVM 병행 동작들의 초과분이 수신되고, 만약 모두 한번에 동작하도록 허가되면 이 병행 동작은 전류 임계치를 초과할 것이다. 논의의 편의상, 적어도 하나의 Tprog 동작이 진행 중인 동안, 대기 NVM 동작들이 수신된다고 가정한다. 단계(1050)에서, 디스패치된 세트가 Cmax를 초과하지 않도록 얼마나 많은 대기 NVM 동작들이 디스패치될 수 있는지에 관한 결정이 행해진다. 이 결정은, 이미 디스패치되었지만 여전히 Tbuff(p)와 같은 예측 타이밍 파라미터 내에 있는 임의의 이전에 디스패치된 NVM 동작들을 고려할 수 있다. 예를 들어, 5개의 NVM 병행 동작들이 선택된 전류 임계치에 대해 수행될 수 있고, 하나의 이전에 디스패치된 NVM 동작이 아직 처리되지 않았지만, 이전에 디스패치된 동작에 대해 예측된 시간 파라미터(예를 들어, Tbuff(p))가 만료되지 않았기 때문에 완료될 것으로 추정되지 않는다고 가정한다. 이 가정 하에서 동작될 때, 디스패치된 세트는 4개의 대기 NVM 동작들을 포함할 수 있다. 단계(1050) 또는 임의의 후속 단계가 수행되고 있는 동안, 추가의 NVM 동작들이 대기(que)에 추가될 수 있음을 이해하도록 한다.
단계(1055)에서, 대기 NVM 동작들의 디스패치된 세트와 연관된 Tbuff(p) 파라미터들은 이전에 디스패치된 NVM 동작의 Tbuff(p) 파라미터의 끝에 부가된다. 2 이상의 이전에 디스패치된 NVM 동작이 있으면, 이전에 디스패치된 NVM 동작 시퀀스의 마지막 것이 NVM 동작에 대해 키 오프될 수 있다. 즉, 디스패치된 세트 Tbuff(p) 파라미터들은 이전에 디스패치된 NVM 동작의 Tprog가 시작될 때 시작할 수 있다. 따라서, 이러한 방식으로 제1 세트 Tbuff(p) 파라미터들을 부가하는 것은, 디스패치된 세트의 Tprog가 시작되기 전에 이전에 디스패치된 NVM 동작의 Tprog에 그 동작을 완료할 충분한 시간이 제공되는 것을 보장한다.
단계(1060)에서, 디스패치된 세트의 Tbuff(p) 동안에 이전에 디스패치된 NVM 동작이 NVM 패키지의 페이지 내에 프로그래밍된다. 단계(1070)에서, 임의의 남아 있는 대기 NVM 동작들이 있는지에 관한 결정이 행해진다. 만약 YES이면, 프로세스는 단계(1050)로 되돌아간다. 만약 NO이면, 프로세스는 단계(1022)로 되돌아간다.
도 11a는 본 발명의 실시예에 따른 어그레시브 예측 전력 제한 스킴에 따라 동작하는 예시적인 전류 제한 타이밍도(1110)를 도시한다. 일 실시예에서, 어그레시브 스킴은, Tbuff가 각각의 NVM 동작에 대해 실질적으로 일정하고, Tprog가 하나 이상의 인자에 따라 변할 수 있다고 가정할 수 있다. 이와 같이, 어그레시브 스킴은 일반적으로 버퍼 동작들과 연관된 시간값과 같은 Tbuff(p)에 대해 상수를 부착할 수 있고, 스킴은 Tprog(p)에 대한 예측 시간들의 슬라이딩 스케일을 사용할 수 있다. 또한, Tbuff 동작들은 파이프라인형일 수 있고, 스킴이 허가하자마자 Tprog 동작을 할 준비를 할 수 있다. NVM 병행 동작에 대한 Tprog의 시작(이는 이 스킴에 의해 제한되지 않으면 전류 임계치를 초과하는 누적 전력 소모로 이어질 것이다)은 이전에 디스패치된 NVM 동작의 Tprog(p)의 끝에 있을 수 있다. 이는 Tbuff(p)의 끝에서 Tprog를 시작한 컨서버티브 예측 접근 방식과는 반대된다.
Tprog(p)의 슬라이딩 스케일에 의해 이 스킴의 어그레시브 양태가 제공된다. Tprog(p)를 최소화하는 것이 바람직하지만, 실제 Tprog 동작이 Tprog(p)를 초과하는 정도까지는 아니다. Tprog(p)는 임의의 수의 인자들에 기초하여 변할 수 있다. 예를 들면, Tprog(p)는 전류 임계치, 데이터가 하위 페이지에 대해 프로그래밍되는 지 또는 상위 페이지에 대해 프로그래밍되는 지의 여부, 데이터가 프로그래밍 될 다이의 영역, 초과분 대기열 내의 NVM 동작의 개수, 또는 그것들의 조합에 기초하여 변할 수 있다.
예를 들면, 시스템에 의해 소모되는 전류는 데이터가 하위 페이지에 대해 프로그래밍되는 지 또는 상위 페이지에 대해 프로그래밍되는 지에 따라 변할 수 있다. 상위 페이지는 프로그래밍은 일반적으로 하위 페이지 프로그래밍 보다 오래 걸리기 때문에, 상위 페이지 프로그래밍에 대한 전류 소모도 그에 따라 더 높다. 따라서, 하위 페이지 프로그래밍 보다 상위 페이지 프로그래밍에 대한 Tprog(p)에 더 긴 예측 시간이 할당될 수 있다.
타이밍도(1110)는 단 하나의 NVM 병행 동작만을 허용하는 전류 임계치 아래에서 동작하는 두 개의 다이에 대한 예측 Tbuff(p) 및 Tprog(p)을 도시한다. 도시된 바와 같이, Tbuff(p1) 및 Tbuff(b2)은 버퍼 동작이 파이프라이닝될 수 있음을 도시한다. Tbuff(p1) 직후에 Tprog(p1)가 시작되고, 단 하나의 NVM 병행 동작만이 이 예시에서 허용되기 때문에, Tprog(p2)는 Tprog(p1)의 예측 끝에 대해 키 오프(key off)된다. 이하 도 11a 및 11b 둘 모두를 참조하면, 타이밍도(1120)는 어그레시브 예측 전력 제한 스킴에 따라 동작하는 두 개의 다이를 위한 실제 타이밍 파라미터들을 도시한다. Tprog1의 시작은 Tbuff(p1)의 완료에 대해 키 오프되고, Tprog2의 시작은 Tprog(p1)의 완료에 대해 키 오프된다.
도 11c 및 11d는 본 발명의 실시예들에 따른 각각의 어그레시브 예측 전력 제한 스킴들에 따라 추가의 예시적인 타이밍도(1130 및 1140)를 각각 도시한다. 타이밍도(1130 및 1140)는 단 2개의 NVM 병행 동작만을 허용하는 전류 임계치 아래에서 동작하는 6개의 NVM 병행 동작들을 도시한다. 또한, 타이밍도(1130 및 1140)는 (상술한 것과 같은 임의의 적절한 인자들에 기초하여) 하나의 NVM 동작으로부터 다른 동작으로의 예측 Tprog(p)가 어떻게 변할 수 있을 지를 도시한다. 예를 들면, 타이밍도(1130)에서, NVM Tprog(p) 동작 1, 3, 및 5는 NVM Tprog(p) 동작 2, 4, 및 6 보다 적은 시간을 할당받는다. 반면에, 타이밍도(1140)에서는, NVM Tprog(p) 동작 1, 3, 및 5는 NVM Tprog(p) 동작 2, 4, 및 6 보다 많은 시간을 할당받는다. 타이밍도(1130 및 1140)에서, 각각의 연속적인 Tprog(p) 동작은 그전의 Tprog(p) 동작의 완료에 대해 키 오프된다.
도 11e는 본 발명의 실시예에 따라 어그레시브 예측 전력 제한 스킴에 의해 수행될 수 있는 단계들의 예시적인 흐름도를 도시한다. 이 흐름도는 도 10c에 관하여 상술한 흐름도와 많은 점에서 유사한데, 근본 차이점은 Tprog 동작들이 Tprog(p) 예측의 종료에 대해 키오프된다는 점이다.
단계 1142에서 시작하여, 각 NVM 동작이 프로그래밍 파라미터에 대한 예측 시간(Tprog(p))을 할당받는다. 이 파라미터는 상술한 바와 같이 각종 인자들에 따라 변할 수 있다. 단계 1144에서, 각 NVM 동작과 연관된 데이터가 버퍼링되어 데이터는 실질적으로 즉각적으로 프로그램하는 데 사용가능해진다. 즉, 여러 NVM 동작에 대한 데이터는 여러 개개의 버퍼들에 저장될 수 있지만, 그 안에 저장된 데이터는 다이의 페이지 내에 자동으로 프로그래밍되지 않는다.
단계(1146)에서, NVM 동작의 후속 프로그램 동작의 시작은 이전 NVM 동작의 Tprog(p)의 종료시에 개시된다. 예를 들면 후속 프로그램 동작이 Tprog2이고 이전 프로그램 동작 Tprog1의 예측 Tprog(p1)이 시간 t1에서 종료한다고 가정하자. 이는 프로그램 동작 Tprog1이 (Tprog(p1)에 의해 예측된) 시간 t1까지 완료될 것으로 가정한다. 따라서, 후속 프로그램 동작 Tprog2은 시간 t1에서 시작한다. 또한, 프로그램 동작 Tprog2에 대한 예측 Tprog(p2)도 시간 t1에서 시작한다. 단계(1148)에서, 후속 NVM 동작의 프로그래밍 부분을 수행하기 위해 버퍼링된 데이터가 사용된다.
도 12는 본 발명의 실시예에 따라 전력 제한 스킴을 사용하여 시스템에 의해 실시될 수 있는 예시적인 단계들을 도시한다. 단계(1210)에서 시작하여, 전류 임계치를 조정하는 데 인자로 사용하기에 적합한 데이터가 복수의 소스로부터 수신된다. 소스는 컴포넌트들 및 이 컴포넌트들과 연관된 상태(condition)들을 모니터링하는 각종 모니터링 회로(예를 들면, 도 5의 회로(512, 514 및 516))를 포함할 수 있다. 소스는 또한 시스템의 각종 컴포넌트의 동작 파라미터들(예를 들면, NVM 패키지 피크 전력 소모)을 지정하는 데이터를 포함할 수 있다. 전류 임계치는 심지어 NVM 패키지가 임계치에 의해 설정된 것 보다 많은 전력을 소모할 수 있는 경우에서 조차, NVM 패키지에 대한 최대 전류 소모를 설정할 수 있다. 전류 임계치는 NVM에 의해 소모될 수 있는 피크 전류보다 낮을 수 있다.
단계(1220)에서, 전류 임계치는 수신된 데이터에 기초하여 조정될 수 있다. 시스템은 전류 임계치를 최소 전류 임계치 레벨로 초기 설정할 수 있다. 이 레벨은 NVM 패키지가 성능의 최소 임계치를 충족할 수 있다고 보장할 수 있다. 수신된 데이터가 NVM 패키지에 추가 전력이 제공될 수 있다고 나타낸다면, 전류 임계치는 추가 전력의 이점을 취하기 위해 상향 조정될 수 있다. 수신된 데이터가 추가 전력이 더 이상 이용가능하지 않음을 나타내면, 전류 임계치는 이에 따라 하향 조정될 수 있다. 전류 임계치가 실시간으로 조정될 수 있음을 보여주기 위해 단계(1220)로부터 단계(1210)까지의 피드백 루프가 제공된다.
단계(1230)에서, 누적 전류 소모가 조정된 전류 임계치를 초과하지 않도록 NVM 병행 동작들의 개수를 제한하는데 전력 제한 스킴이 사용된다. 전력 제한 스킴은 본원에서 논의된 전력 제한 스킴 중 임의의 하나일 수 있다(예를 들면, 반응성 또는 예측 전력 제한 스킴 중 하나). 몇몇 실시예에서, 시스템은 둘 이상의 전력 제한 스킴 사이에서 전환할 수 있다.
도 8b, 10c, 11e, 및 12의 흐름도에 포함된 단계들은 단지 예시적인 것임이 이해되어야 한다. 단계들 중 임의의 것은 본 발명의 범주에서 벗어나지 않고서, 제거, 변경 또는 조합될 수 있고, 임의의 추가 단계들이 추가될 수 있다.
본 발명의 설명된 실시예들은 제한이 아니라 예시를 위해 제공된 것이다.

Claims (24)

  1. 복수의 다이를 갖는 비휘발성 메모리(NVM)를 포함하는 시스템에서 구현되는 방법으로서,
    복수의 시스템 소스 중 적어도 하나로부터의 전류 임계치를 조정하는 데 인자로서 사용하기 위한 데이터를 수신하는 단계 - 상기 전류 임계치는 상기 NVM에 의해 소모될 수 있는 피크 전류보다 낮고, 상기 전류 임계치는 NVM 성능의 최소 레벨을 가능하게 하는 레벨로 초기 설정됨 -;
    상기 수신된 데이터에 기초하여 상기 전류 임계치를 조정하는 단계; 및
    상기 NVM의 누적 전류 소모가 상기 조정된 전류 임계치를 초과하지 않도록, 수행되는 NVM 병행 동작의 개수를 제한하는 전력 제한 스킴을 사용하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 전력 제한 스킴을 사용하는 단계는,
    상기 NVM의 누적 전류 소모가 상기 조정된 전류 임계치를 초과하지 않도록, 상기 NVM 병행 동작들을 시간이 지남에 따라 분산시키는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 전력 제한 스킴은 각각의 NVM 동작이 완료되는 시점을 결정하기 위해 상기 NVM에 의해 제공된 피드백 데이터를 사용하는 반응성 전력 제한 스킴을 포함하거나, 대안으로, 상기 전력 제한 스킴은 각각의 NVM 동작이 완료될 때까지 얼마나 오래 걸릴 지를 예측하는 예측 전력 제한 스킴을 포함하는 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 조정하는 단계는,
    상기 수신된 데이터가 추가 전류가 이용가능하다고 나타내는 경우 상기 전류 임계치를 증가시키는 단계; 및
    상기 수신된 데이터가 추가 전류가 이용가능하지 않다고 나타내는 경우 상기 전류 임계치를 감소시키는 단계
    를 포함하는 방법.
  6. 전자 장치로서,
    복수의 다이를 갖고 복수의 NVM 병행 동작을 수행하도록 동작하는 비휘발성 메모리(NVM) - 각각의 NVM 동작은 고정된 양의 전류를 소모함 -;
    복수의 장치 소스 중 적어도 하나로부터 수신된 데이터에 기초하여 전류 임계치를 제공하도록 동작하는 전력 레벨 선택 회로 - 상기 전류 임계치는 상기 NVM에 의해 소모될 수 있는 피크 전류보다 낮음 -; 및
    상기 NVM 및 상기 전력 레벨 선택 회로와 동작가능하게 통신하는 전력 캡핑 회로 - 상기 전력 캡핑 회로는 상기 NVM의 누적 전류 소모가 상기 전류 임계치를 초과하지 않도록, 수행되는 NVM 병행 동작들의 개수를 제한하도록 동작함 -
    를 포함하고,
    상기 전력 레벨 선택 회로는,
    상기 전류 임계치를, 최소 레벨의 NVM 성능을 가능하게 하는 레벨로 초기 설정하도록 동작하거나, 대안으로,
    상기 수신된 데이터가 추가의 전류가 이용가능하다는 것을 나타내는 경우 상기 전류 임계치를 증가시키고,
    상기 수신된 데이터가 추가의 전류가 이용가능하지 않다는 것을 나타내는 경우 상기 전류 임계치를 감소시키도록 동작하는 전자 장치.
  7. 제6항에 있어서, 상기 복수의 장치 소스는 전원 모니터링 회로, 부하 모니터링 회로, 온도 모니터링 회로, NVM 데이터 소스, 및 이들의 임의의 조합들로 이루어진 그룹으로부터 선택되는 전자 장치.
  8. 삭제
  9. 제6항에 있어서,
    상기 전력 캡핑 회로는 상기 NVM의 누적 전류 소모가 상기 증가된 또는 감소된 전류 임계치를 초과하지 않도록 시간이 지남에 따라 상기 NVM 병행 동작들을 분산시키도록 동작하는 전자 장치.
  10. 제6항에 있어서,
    상기 NVM과 상기 전력 캡핑 회로 사이에 연결된 피드백 라인을 더 포함하고,
    상기 전력 캡핑 회로는 상기 피드백 라인을 통해 상기 NVM로부터 제공된 피드백 데이터를 이용하여 각각의 NVM 동작이 완료될 때를 결정하도록 동작하는 전자 장치.
  11. 비휘발성 메모리(NVM)의 전력 소모를 반응적으로 제한하는 방법으로서,
    전류 임계치를 수신하는 단계;
    상기 전류 임계치에 기초하여 수행될 수 있는 NVM 병행 동작들의 최대 개수를 결정하는 단계;
    대기(queued) NVM 병행 동작들의 초과분을 수신하는 단계 - 상기 병행 동작은 상기 전류 임계치를 초과하는 누적 전류 소모를 가짐 -;
    상기 대기 NVM 동작들의 제1 세트를 디스패치하는 단계 - 상기 제1 세트는 상기 최대 개수를 초과하지 않는 다수의 대기 NVM 동작들을 포함함 -;
    완료된 NVM 동작들에 대한 피드백 데이터를 모니터링하는 단계;
    완료된 NVM 동작이 모니터링될 때 상기 대기 NVM 동작들 중 다른 하나를 디스패치하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    NVM 동작은 버퍼링 부분 및 프로그래밍 부분을 포함하고,
    상기 디스패치하는 단계는 실질적으로 상기 버퍼링 부분이 수행된 직후에 상기 프로그래밍 부분을 수행하는 단계를 포함하는 방법.
  13. 제11항에 있어서,
    NVM 동작은 버퍼링 부분 및 프로그래밍 부분을 포함하고,
    상기 디스패치하는 단계는,
    상기 버퍼링 부분을 수행하는 단계; 및
    완료된 NVM 동작이 모니터링될 때까지 상기 프로그래밍 부분의 수행을 지연시키는 단계를 포함하는 방법.
  14. 제11항에 있어서,
    상기 NVM은 낸드 플래시(nand flash) NVM이고, 상기 전류 임계치는 상기 nand 플래시 NVM에 의해 소모될 수 있는 피크 전류보다 낮은 방법.
  15. 제11항에 있어서,
    완료된 NVM 동작이 모니터링될 때, 추가의 대기 NVM 동작의 디스패치를 반복하는 단계를 더 포함하는 방법.
  16. 비휘발성 메모리(NVM)의 전력 소모를 예측 제한하는 방법으로서 - 상기 NVM은 NVM 동작들을 수행하도록 동작하고, 상기 NVM 동작들 각각은 버퍼링 부분 및 프로그래밍 부분을 포함하고, 버퍼링이 완전히 수행될 시간 Tbuff을 필요로 하고, 상기 프로그래밍 부분은 완전히 수행될 시간 Tprog를 필요로 함 -,
    전류 임계치를 수신하는 단계;
    상기 전류 임계치에 기초하여 수행될 수 있는 NVM 병행 동작들의 최대 개수를 결정하는 단계;
    각각의 NVM 동작에 대하여 예측 타이밍 파라미터들을 할당하는 단계 - 상기 예측 타이밍 파라미터는 NVM 동작의 버퍼링 부분이 완전히 수행되기 위한 예측 타임 파라미터 Tbuff(p)를 포함하고, 상기 Tbuff(p)는 Tprog보다 더 큼 -;
    대기 NVM 병행 동작들의 초과분을 수신하는 단계 - 상기 병행 동작은 상기 전류 임계치를 초과하는 누적 전류 소모를 가짐 -;
    NVM 병행 동작들의 개수가 상기 최대 개수를 초과하지 않도록 상기 대기 NVM 동작들 중 얼마나 많은 대기 NVM 동작들이 디스패치된 NVM 동작들의 후속 세트로서 디스패치될 수 있는지를 결정하는 단계 - 상기 결정하는 단계는 NVM 병행 동작들의 개수에 영향을 줄 수 있는 이전의 디스패치된 NVM 동작들에서 팩터링(factoring)하는 단계를 더 포함함 -;
    상기 후속 세트 내의 각각의 NVM 동작의 Tbuff(p)를 이전의 디스패치된 NVM 동작의 Tbuff(p)의 끝에 부가하는 단계; 및
    상기 후속 세트의 Tbuff(p) 동안 상기 이전의 디스패치된 NVM 동작의 프로그래밍 부분을 수행하는 단계
    를 포함하는 방법.
  17. 제16항에 있어서,
    상기 후속 세트 내의 각각의 NVM 동작에 대한 각각의 Tbuff(p)의 끝에서 상기 후속 세트 내의 각각의 NVM 동작의 상기 프로그래밍 부분을 수행하는 단계를 더 포함하는 방법.
  18. 삭제
  19. 제16항에 있어서,
    상기 전류 임계치는 상기 NVM에 의해 소모될 수 있는 피크 전류보다 낮은 방법.
  20. 제16항에 있어서,
    상기 후속 세트의 Tbuff(p) 동안 상기 이전의 디스패치된 NVM 동작의 상기 프로그래밍 부분을 수행하는 단계는, 상기 이전의 디스패치된 NVM 동작의 Tbuff(p)의 끝에서 상기 이전의 디스패치된 NVM 동작의 상기 프로그래밍 부분의 시작을 개시하는 단계를 포함하는 방법.
  21. 비휘발성 메모리(NVM)의 전력 소모를 예측 제한하는 방법으로서 - 상기 NVM은 NVM 동작들을 수행하도록 동작하고, 상기 NVM 동작들 각각은 버퍼링 부분 및 프로그래밍 부분을 포함하고, 버퍼링이 완전히 수행될 시간 Tbuff을 필요로 하고, 상기 프로그래밍 부분은 완전히 수행될 시간 Tprog를 필요로 함 -,
    각각의 NVM 동작에 대하여 예측 타이밍 파라미터들을 할당하는 단계 - 상기 예측 타이밍 파라미터는 NVM 동작의 상기 프로그래밍 부분이 완전히 수행되기 위한 예측 타임 파라미터 Tprog(p)를 포함함 -;
    각각의 NVM 동작과 연관된 데이터를 버퍼링하여, 상기 데이터가 실질적으로 상기 NVM 동작의 프로그래밍 부분에 대해 즉각적으로 이용가능하도록 하는 단계;
    이전의 NVM 동작의 Tprog(p)의 끝에서 후속의 NVM 동작의 프로그램 동작의 시작을 착수하는 단계 - Tprog(p)는 Tprog보다 더 큼 -; 및
    상기 버퍼링된 데이터를 이용하여 상기 후속의 동작의 프로그래밍 부분을 수행하는 단계
    를 포함하고,
    NVM 동작에 할당된 Tprog(p)의 지속시간은 상기 NVM 동작과 연관된 데이터가 상위 페이지 또는 하위 페이지에서 프로그래밍되는지에 기초하는 방법.
  22. 제21항에 있어서,
    전류 임계치를 수신하는 단계;
    상기 전류 임계치에 기초하여 수행될 수 있는 NVM 병행 동작들의 최대 개수를 결정하는 단계;
    대기 NVM 병행 동작들의 초과분을 수신하는 단계 - 상기 병행 동작은 상기 전류 임계치를 초과하는 누적 전류 소모를 가짐 -; 및
    상기 NVM 병행 동작들의 개수가 상기 최대 개수를 초과하지 않는 것을 보장하기 위해 상기 대기 NVM 동작들 중 하나 이상의 Tprog(p)를 조정하는 단계
    를 더 포함하는 방법.
  23. 제21항에 있어서,
    상기 이전의 NVM 동작의 Tprog(p)는 상기 후속의 NVM 동작 직전의 NVM 동작에 할당되는 Tprog(p)인 방법.
  24. 삭제
KR1020110074319A 2010-07-26 2011-07-26 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들 KR101363844B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/843,448 US8555095B2 (en) 2010-07-26 2010-07-26 Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US12/843,448 2010-07-26

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020120011194A Division KR101560860B1 (ko) 2010-07-26 2012-02-03 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들

Publications (2)

Publication Number Publication Date
KR20120010992A KR20120010992A (ko) 2012-02-06
KR101363844B1 true KR101363844B1 (ko) 2014-02-14

Family

ID=44483928

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020110074319A KR101363844B1 (ko) 2010-07-26 2011-07-26 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들
KR1020120011194A KR101560860B1 (ko) 2010-07-26 2012-02-03 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020120011194A KR101560860B1 (ko) 2010-07-26 2012-02-03 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들

Country Status (7)

Country Link
US (4) US8555095B2 (ko)
JP (1) JP5722728B2 (ko)
KR (2) KR101363844B1 (ko)
CN (1) CN102347078B (ko)
HK (1) HK1166876A1 (ko)
TW (2) TWI457750B (ko)
WO (1) WO2012015793A1 (ko)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101005997B1 (ko) * 2009-01-29 2011-01-05 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법
JP2011227664A (ja) 2010-04-19 2011-11-10 Toshiba Corp メモリシステム
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
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US8645723B2 (en) 2011-05-11 2014-02-04 Apple Inc. Asynchronous management of access requests to control power consumption
US9477586B1 (en) * 2011-11-03 2016-10-25 Altera Corporation Power-aware memory controller circuitry
US8738866B2 (en) 2012-05-02 2014-05-27 Hitachi, Ltd. Storage system and control method therefor
US8874828B2 (en) * 2012-05-02 2014-10-28 Apple Inc. Systems and methods for providing early hinting to nonvolatile memory charge pumps
KR101961324B1 (ko) * 2012-05-09 2019-03-22 삼성전자주식회사 메모리 장치 및 메모리 장치의 파워 관리 방법
US8854900B2 (en) * 2012-07-26 2014-10-07 SanDisk Technologies, Inc. Non-volatile memory and method with peak current control
US9329986B2 (en) 2012-09-10 2016-05-03 Sandisk Technologies Inc. Peak current management in multi-die non-volatile memory devices
GB2507484A (en) * 2012-10-30 2014-05-07 Ibm Limiting the number of concurrent requests in a database system
KR20140088766A (ko) * 2013-01-03 2014-07-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9443600B2 (en) 2013-03-28 2016-09-13 Intel Corporation Auto-suspend and auto-resume operations for a multi-die NAND memory device to reduce peak power consumption
US9368214B2 (en) 2013-10-03 2016-06-14 Apple Inc. Programmable peak-current control in non-volatile memory devices
US9286959B2 (en) 2013-11-18 2016-03-15 International Business Machines Corporation Low latency memory access control for non-volatile memories
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
US9361951B2 (en) 2014-01-14 2016-06-07 Apple Inc. Statistical peak-current management in non-volatile memory devices
US9286208B2 (en) 2014-02-07 2016-03-15 Kabushiki Kaisha Toshiba Controller controlling an interleave operation, solid-state drive including the controller, and control method controlling an interleave operation
US9582211B2 (en) 2014-04-29 2017-02-28 Sandisk Technologies Llc Throttling command execution in non-volatile memory systems based on power usage
US9575677B2 (en) 2014-04-29 2017-02-21 Sandisk Technologies Llc Storage system power management using controlled execution of pending memory commands
US9547587B2 (en) 2014-05-23 2017-01-17 International Business Machines Corporation Dynamic power and thermal capping for flash storage
US10402319B2 (en) 2014-07-25 2019-09-03 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9423961B2 (en) 2014-09-08 2016-08-23 Apple Inc. Method to enhance programming performance in multilevel NVM devices
US10013345B2 (en) * 2014-09-17 2018-07-03 Sandisk Technologies Llc Storage module and method for scheduling memory operations for peak-power management and balancing
WO2016064554A1 (en) * 2014-10-20 2016-04-28 Sandisk Enterprise Ip Llc Storage system power management using controlled execution of pending memory commands
US9847662B2 (en) 2014-10-27 2017-12-19 Sandisk Technologies Llc Voltage slew rate throttling for reduction of anomalous charging current
US9880605B2 (en) 2014-10-27 2018-01-30 Sandisk Technologies Llc Method and system for throttling power consumption
US9916087B2 (en) 2014-10-27 2018-03-13 Sandisk Technologies Llc Method and system for throttling bandwidth based on temperature
US9846541B2 (en) * 2014-12-11 2017-12-19 Toshiba Memory Corporation Memory system for controlling perforamce by adjusting amount of parallel operations
CN105867834A (zh) * 2015-01-22 2016-08-17 深圳市硅格半导体有限公司 存储装置数据整理方法
JP2016167167A (ja) * 2015-03-09 2016-09-15 株式会社東芝 半導体装置及びメモリシステム
KR102450556B1 (ko) 2015-04-17 2022-10-04 삼성전자주식회사 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10289327B2 (en) 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
KR102445390B1 (ko) * 2015-09-02 2022-09-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US9690364B2 (en) * 2015-09-04 2017-06-27 Qualcomm Incorporated Systems and methods for dynamically adjusting memory state transition timers
US10599349B2 (en) 2015-09-11 2020-03-24 Samsung Electronics Co., Ltd. Method and apparatus of dynamic parallelism for controlling power consumption of SSDs
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
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
US9977487B2 (en) 2015-09-22 2018-05-22 Samsung Electronics Co., Ltd. Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
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
US10095412B2 (en) * 2015-11-12 2018-10-09 Sandisk Technologies Llc Memory system and method for improving write performance in a multi-die environment
JP6529941B2 (ja) 2016-08-30 2019-06-12 東芝メモリ株式会社 メモリシステム
CN107919143B (zh) * 2016-10-11 2023-03-21 北京忆恒创源科技股份有限公司 固态存储设备及其温度控制方法
US10353602B2 (en) * 2016-11-30 2019-07-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Selection of fabric-attached storage drives on which to provision drive volumes for realizing logical volume on client computing device within storage area network
JP2018136762A (ja) * 2017-02-22 2018-08-30 富士通株式会社 並列処理装置および並列処理装置の起動方法
KR102474460B1 (ko) 2017-08-23 2022-12-07 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 제어 방법
US10181351B1 (en) * 2017-08-30 2019-01-15 Micron Technology, Inc. Increased NAND performance under high thermal conditions
KR102631350B1 (ko) * 2017-10-12 2024-01-31 삼성전자주식회사 메모리 플레인들을 포함하는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작 방법
KR102532206B1 (ko) 2017-11-09 2023-05-12 삼성전자 주식회사 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치
KR102603245B1 (ko) 2018-01-11 2023-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108052464A (zh) * 2018-01-12 2018-05-18 江苏华存电子科技有限公司 用于分散与降低非易失性储存装置峰值电流与功耗的方法
KR20190109872A (ko) 2018-03-19 2019-09-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10923199B2 (en) 2019-05-01 2021-02-16 Micron Technology, Inc. Peak current management in a memory array
US11669272B2 (en) * 2019-05-31 2023-06-06 Micron Technology, Inc. Predictive data transfer based on availability of media units in memory sub-systems
CN110209502B (zh) * 2019-06-05 2021-07-20 北京奇艺世纪科技有限公司 一种信息存储方法、装置、电子设备及存储介质
US10884480B1 (en) * 2019-08-22 2021-01-05 Micron Technology, Inc. Current summing monitoring circuit in a multi-chip package to control power
US11164784B2 (en) 2019-08-22 2021-11-02 Micron Technology, Inc. Open-drain transistor monitoring circuit in a multi-chip package to control power
US11237612B2 (en) 2019-08-22 2022-02-01 Micron Technology, Inc. Charge-sharing capacitive monitoring circuit in a multi-chip package to control power
US11314315B2 (en) 2020-01-17 2022-04-26 Samsung Electronics Co., Ltd. Performance control of a device with a power metering unit (PMU)
US11467900B2 (en) * 2020-07-14 2022-10-11 Micron Technology, Inc. Adjusting read throughput level for a data recovery operation
KR20220053177A (ko) 2020-10-22 2022-04-29 삼성전자주식회사 스토리지 장치, 멀티-컴포넌트 장치 및 이의 동작 제어 방법
WO2022252120A1 (en) 2021-06-01 2022-12-08 Yangtze Memory Technologies Co., Ltd. Power management for memory system
CN113519027B (zh) * 2021-06-01 2022-09-06 长江存储科技有限责任公司 用于存储器系统的功率管理
CN116301662B (zh) * 2023-05-12 2023-08-01 合肥联宝信息技术有限公司 一种固态硬盘功耗管理方法及固态硬盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005504388A (ja) 2001-09-28 2005-02-10 レクザール メディア インコーポレイテッド 不揮発性メモリ制御
US20070211551A1 (en) 2005-11-25 2007-09-13 Yoav Yogev Method for dynamic performance optimization conforming to a dynamic maximum current level
KR20080035461A (ko) * 2006-10-19 2008-04-23 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법
WO2009088445A1 (en) * 2008-01-07 2009-07-16 Apple Inc. Forced idle of a data processing system

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3594626B2 (ja) 1993-03-04 2004-12-02 株式会社ルネサステクノロジ 不揮発性メモリ装置
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 沖電気工業株式会社 不揮発性半導体ディスク装置
US6233693B1 (en) 1998-05-06 2001-05-15 International Business Machines Corporation Smart DASD spin-up
JP2000143360A (ja) 1998-11-11 2000-05-23 Toyo Tanso Kk 層間強化した炭素繊維強化炭素複合材料
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
US6478441B2 (en) 1999-03-25 2002-11-12 Sky City International Limited Hand held light apparatus
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6636976B1 (en) 2000-06-30 2003-10-21 Intel Corporation Mechanism to control di/dt for a microprocessor
JP4694040B2 (ja) 2001-05-29 2011-06-01 ルネサスエレクトロニクス株式会社 半導体記憶装置
US6925573B2 (en) 2002-01-02 2005-08-02 Intel Corporation Method and apparatus to manage use of system power within a given specification
US6857055B2 (en) 2002-08-15 2005-02-15 Micron Technology Inc. Programmable embedded DRAM current monitor
US7400062B2 (en) 2002-10-15 2008-07-15 Microsemi Corp. - Analog Mixed Signal Group Ltd. Rack level power management
CN100371873C (zh) * 2003-09-18 2008-02-27 松下电器产业株式会社 半导体存储卡、半导体存储器控制装置以及半导体存储器控制方法
JP4264087B2 (ja) 2003-11-28 2009-05-13 パナソニック株式会社 記録装置
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
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
US7444526B2 (en) 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system
US7562234B2 (en) 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7512029B2 (en) * 2006-06-09 2009-03-31 Micron Technology, Inc. Method and apparatus for managing behavior of memory devices
US7587559B2 (en) 2006-08-10 2009-09-08 International Business Machines Corporation Systems and methods for memory module power management
US20080137401A1 (en) * 2006-12-07 2008-06-12 Jan Boris Philipp Memory that limits power consumption
US7545165B2 (en) 2007-01-09 2009-06-09 International Business Machines Corporation System architectures for and methods of scheduling on-chip and across-chip noise events in an integrated circuit
JP4851962B2 (ja) 2007-02-28 2012-01-11 株式会社東芝 メモリシステム
TWI417719B (zh) * 2007-08-09 2013-12-01 Ibm 提供能監測能源使用之減少以及在儲存資料於記憶體中時之能源減少的指令的方法、設備及電腦程式產品
US20110213995A1 (en) * 2007-08-09 2011-09-01 International Business Machines Corporation Method, Apparatus And Computer Program Product Providing Instruction Monitoring For Reduction Of Energy Usage
US7783846B2 (en) * 2007-08-09 2010-08-24 International Business Machines Corporation Method, apparatus and computer program product providing energy reduction when storing data in a memory
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 株式会社日立製作所 フラッシュメモリ搭載ストレージ装置
US8386808B2 (en) 2008-12-22 2013-02-26 Intel Corporation Adaptive power budget allocation between multiple components in a computing system
US20100274933A1 (en) * 2009-04-24 2010-10-28 Mediatek Inc. Method and apparatus for reducing memory size and bandwidth
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
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
WO2011074059A1 (ja) 2009-12-14 2011-06-23 富士通株式会社 演算処理装置、情報処理装置及びその制御方法
US20110173462A1 (en) 2010-01-11 2011-07-14 Apple Inc. Controlling and staggering operations to limit current spikes
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
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
US8522055B2 (en) 2010-07-26 2013-08-27 Apple Inc. Peak power validation methods and systems for non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005504388A (ja) 2001-09-28 2005-02-10 レクザール メディア インコーポレイテッド 不揮発性メモリ制御
US20070211551A1 (en) 2005-11-25 2007-09-13 Yoav Yogev Method for dynamic performance optimization conforming to a dynamic maximum current level
KR20080035461A (ko) * 2006-10-19 2008-04-23 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법
WO2009088445A1 (en) * 2008-01-07 2009-07-16 Apple Inc. Forced idle of a data processing system

Also Published As

Publication number Publication date
US8555095B2 (en) 2013-10-08
CN102347078B (zh) 2015-03-18
US9063732B2 (en) 2015-06-23
US20120023346A1 (en) 2012-01-26
WO2012015793A1 (en) 2012-02-02
US8495402B2 (en) 2013-07-23
US20120023348A1 (en) 2012-01-26
TWI468929B (zh) 2015-01-11
TWI457750B (zh) 2014-10-21
HK1166876A1 (en) 2012-11-09
KR20120010992A (ko) 2012-02-06
KR101560860B1 (ko) 2015-10-19
US20120023347A1 (en) 2012-01-26
TW201224736A (en) 2012-06-16
KR20120031970A (ko) 2012-04-04
JP5722728B2 (ja) 2015-05-27
US20140068296A1 (en) 2014-03-06
CN102347078A (zh) 2012-02-08
JP2012043420A (ja) 2012-03-01
TW201229743A (en) 2012-07-16
US8583947B2 (en) 2013-11-12

Similar Documents

Publication Publication Date Title
KR101363844B1 (ko) 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들
US11216323B2 (en) Solid state memory system with low power error correction mechanism and method of operation thereof
US10831384B2 (en) Memory device with power management
US20180150242A1 (en) Controller and storage device for efficient buffer allocation, and operating method of the storage device
US8769318B2 (en) Asynchronous management of access requests to control power consumption
US9977487B2 (en) Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US8171239B2 (en) Storage management method and system using the same
US8555000B2 (en) Data storage device and data storing method thereof
KR102351660B1 (ko) 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법
KR20170035320A (ko) 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법
KR20120098968A (ko) 전류 스파이크를 제한하기 위한 동작들의 제어 및 시차를 둔 실행
US11041763B2 (en) Adaptive throttling
US11829619B2 (en) Resource usage arbitration in non-volatile memory (NVM) data storage devices with artificial intelligence accelerators

Legal Events

Date Code Title Description
A201 Request for examination
A107 Divisional application of patent
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: 20170119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 7