KR20170035320A - 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법 - Google Patents

솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20170035320A
KR20170035320A KR1020160067573A KR20160067573A KR20170035320A KR 20170035320 A KR20170035320 A KR 20170035320A KR 1020160067573 A KR1020160067573 A KR 1020160067573A KR 20160067573 A KR20160067573 A KR 20160067573A KR 20170035320 A KR20170035320 A KR 20170035320A
Authority
KR
South Korea
Prior art keywords
memory
operations
power
nand
memory operations
Prior art date
Application number
KR1020160067573A
Other languages
English (en)
Other versions
KR102283511B1 (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 KR20170035320A publication Critical patent/KR20170035320A/ko
Application granted granted Critical
Publication of KR102283511B1 publication Critical patent/KR102283511B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 메모리 장치에 관한 것이다. 본 발명의 실시 예에 따른 메모리 장치는 하나 이상의 메모리 어레이들, 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 호스트 컴퓨터로부터 수신하도록 구성된 메모리 채널, 메모리 오퍼레이션들을 저장하도록 구성된 하나 이상의 큐들 및 하나 이상의 메모리 어레이들과 관련된 전력 버짓을 호스트 컴퓨터로부터 수신하고, 타임 윈도우에 대한 전력 버짓을 만족시키기 위해서 하나 이상의 큐들에 하나 이상의 후보 메모리 오퍼레이션들을 결정하고, 하나 이상의 큐들에 복수의 메모리 오퍼레이션들을 동적으로 재배열하고, 타임 윈도우에 대한 전력 버짓을 만족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하도록 구성된 스케쥴러를 포함한다.

Description

솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법{DYNAMIC NON-VOLATILE MEMORY OPERATION SCHEDULNG FOR CONTROLLING POWER CONSUMPTION OF SOLID-STATE DERVES}
본 발명은 컴퓨터들에 대한 메모리 시스템에 관한 것으로, 좀 더 구체적으로는, 솔리드 스테이트 드라이브(SSD)의 전력 소비를 컨트롤하기 위해 동적으로 메모리 오퍼레이션들을 스케쥴링하는 메모리 장치 및 그것의 동작 방법에 관한 것이다.
플래시 메모리는 불휘발성, 신뢰성, 저전력 및 충격성 측면에서 뛰어나기 때문에 가전 제품들로 널리 사용된다. 노어(NOR) 또는 낸드(NAND) 플래시 메모리들은 플래시 메모리의 주도적인 제품으로 등장했다. 그것의 작은 셀 사이즈 및 비트 당 낮은 비용 때문에, 낸드(NAND) 플래시 메모리는 디지털 카메라 및 솔리드 스테이트 드라이브(SSD)들과 같은 가전 장치들을 위한 고밀도 데이터 저장 매체에 적합하다. 노어(NOR) 플래시는 일반적으로 휴대폰 및 PDA와 같은 휴대용 전자 장치들 내의 코드를 저장하기 위해 사용되어 왔다. 그리고, 노어(NOR) 플래시는 전자 장치들 내의 직접 실행을 위해 사용되어 왔다. 게다가, 하드 디스크 드라이브(HDD)를 넘어서는 솔리드 스테이트 드라이브들의 우수한 성능, 에너지 효율성 그리고 에너지 비례성은 가전 제품들뿐만 아니라 데이터 센터와 엔터프라이즈 제품들에도 광범위한 빠른 도입을 촉진했다.
낸드(NAND) 플래시 메모리에서, 프로그램(또는 쓰기) 동작은 읽기(read) 동작에 비해 상대적으로 더 긴 레이턴시를 갖는다. 게다가, 신 데이터를 낸드 셀에 프로그램하기 이전에 구 데이터는 소거되어야 한다. 프로그램 레이턴시보다 훨씬 더 긴 레이턴시를 갖는 소거(erase) 동작은 셀 레벨에서 선택적으로 수행될 수 없다. 멀티 레벨 셀(MLC) 낸드(NAND) 플래시 메모리는 낸드 셀 당 복수의 상태를 저장하고, 데이터 저장 용량을 증가시킨다. 그러나, 멀티 레벨 셀 플래시 메모리는 그것의 복잡한 읽기(read)/프로그램(program)/소거(erase) 동작들로 인해 동작 스피드를 더욱 감소시키게 된다.
데이터 센터 및 가전 제품들을 위해, 전자 장치들의 전력 소모는 기존의 성능 지표들과 더불어 중요한 지표가 되었다. 모바일 장치들에 있어서, 배터리 수명은 제한적이다. 그러므로, 배터리 수명을 연장하기 위해 구성요소들의 전력 사용은 신중하게 모니터링되고 조절될 필요가 있다. 데이터 센터들에서, 전기 비용 및 냉각 비용은 전체 운용 비용의 상당 부분이 될 수 있다. 그러므로 서버들의 전력 소모는 더 이상 낮은 우선 순위의 고려 대상이 아닐 수 있다. 게다가, 현대의 데이터 센터들은 NWMe(non-volatile memory express)와 같은 고성능의 솔리드 스테이트 드라이브들을 채택하기 시작했다. 전형적인 NVMe 장치는 고성능의 CPU(cetral processing unit) 및 큰 동적 랜덤 억세스 메모리(DRAM)들을 포함한다. 그러한 고성능 NVMe 장치는 데이터 센터의 구현에서 전력 소모의 상당한 양에 달하는 25W를 쉽게 소모해버릴 수 있다.
좋은 에너지 비례의 요구 사항으로, 주어진 장치의 낮은 활용도에 대하여 비례적으로 낮은 전력 소비가 예상된다. 장치의 전력 소모는 장치의 활용도 및/또는 사용자 설정들에 따라 동적으로 변경될 수 있다. 동일한 원리가 가전 제품 시장의 장치들에도 적용될 수 있다. 스마트 폰과 같은 모바일 장치들, 테블릿 PC들 및 노트북 컴퓨터들은 PCIe(peripheral component interconnect express)와 같은 고성능의 솔리드 스테이트 드라이브들을 채용하기 시작했다. 예를 들어, 노트북 컴퓨터가 전원 콘센트로부터 분리될 때, 솔리드 스테이트 드라이브의 전력 소모는 최소가 되도록 제어된다.
작은 셀 사이즈, 고밀도, 저전력 및 높은 내구성으로 인해, 현대의 솔리드 스테이트 드라이브들은 일반적으로 낸드 플래시 메모리를 스토리지 미디어로 이용한다. 낸드 플래시 메모리의 비대칭 특성으로 인한 프로그램 동작 및 소거 동작의 높은 레이턴시를 숨기기 위해, 병렬 처리로 언급된 복수의 낸드 동작들이 동시에 실행될 수 있다. 병렬 처리의 예들은 다중 평면, 데이터 인터리빙 및 멀티 채널 동작들을 포함한다. 병렬 처리로 인해, 낸드 플래시 메모리를 포함하는 현대의 솔리드 스테이트 드라이브들은 자연스럽게 스케쥴링 문제를 도입한다. 또한, 기존의 메모리 시스템들은 어플리케이션 프로그래밍 인터페이스(API, application programming interface)가 동적 평균 전력 소모를 제어하는 것을 요구한다. 이러한 어플리케이션 프로그래밍 인터페이스(API)의 예들은 인텔(INTEL)에 의해 평균 전력 제한(average power limit)을 실행하는 것, 동적 전압 주파수 스케일링(DVFs, dynamic voltage frequency scaling) 및 전력 상태들을 포함한다.
본 발명의 목적은 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션들을 스케쥴링하는 메모리 장치 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 일 실시 예에 따른 메모리 장치는 하나 이상의 메모리 어레이들, 메모리 채널, 하나 이상의 큐들 및 스케쥴러를 포함한다. 메모리 채널은 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 호스트 컴퓨터로부터 수신하도록 구성된다. 하나 이상의 큐들은 메모리 오퍼레이션들을 저장하도록 구성된다. 스케쥴러는 하나 이상의 메모리 어레이들과 관련된 전력 버짓을 호스트 컴퓨터로부터 수신하고, 타임 윈도우에 대한 전력 버짓을 만족시키기 위해서 하나 이상의 큐들에 하나 이상의 후보 메모리 오퍼레이션들을 결정하고, 하나 이상의 큐들에 복수의 메모리 오퍼레이션들을 동적으로 재배열하고, 타임 윈도우에 대한 전력 버짓을 만족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하도록 구성된다.
본 발명의 일 실시 예에 따른 메모리 장치의 동작 방법은 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 메모리 채널을 통해 수신하는 단계, 메모리 어레이들과 관련된 하나 이상의 큐들에 복수의 메모리 오퍼레이션들을 저장하는 단계, 하나 이상의 메모리 어레이들과 관련된 전력 버짓을 수신하는 단계, 타임 윈도우에 대한 전력 버짓을 충족시키기 위해 하나 이상의 큐들 내에 하나 이상의 후보 메모리 오퍼레이션들을 결정하는 단계 및 동적으로 하나 이상의 큐들에 복수의 메모리 오퍼레이션들을 재배열하고, 타임 윈도우에 대한 전력 버짓을 만족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 허용 전력 버짓 하에서 효율적인 전력 소비를 달성하기 위해 더 정밀한 단위를 이용하여 전력 소비를 모니터하고, 낸드 오퍼레이션들을 동적으로 재배열하는 메모리 장치 및 그것의 동작 방법이 제공된다.
도 1은 SSD를 보호하기 위한 성능 조절에 대한 그래프를 나타낸다.
도 2는 낸드 플래시 메모리의 파울러-노드하임 터널링 효과를 나타낸다.
도 3은 멀티 레벨 셀 낸드 플래시 메모리에 대한 프로그램 동작을 예시적으로 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 동적 메모리 오퍼레이션 스케쥴러의 상위 레벨의 블록도이다.
도 5는 전력 제한이 없는 종래의 낸드 오퍼레이션 스케쥴링 방식을 보여준다.
도 6은 본 발명의 일 실시 예에 따른 동적 메모리 오퍼레이션 스케줄링 방식의 예를 보여준다.
도 7은 본 발명의 일 실시 예에 따른 동적 메모리 오퍼레이션 스케쥴러의 순서도를 보여준다.
도 8은 본 발명의 일 실시 예에 따른 동적 낸드 오퍼레이션 스케쥴러의 예시적인 동작 방식을 보여준다.
본 명세서에 개시된 특징들과 교시들 각각은 불휘발성 메모리에 대한 동적 메모리 동작 스케쥴링을 제공하기 위해 개별적으로 이용되거나 다른 특징들 및 다른 교시들과 함께 이용될 수 있다. 낸드 플래시 메모리와 같은 불휘발성 메모리를 포함하는 솔리드 스테이트 드라이브의 전력 소비를 제어하는 경우, 동적 메모리 동작 스케쥴링은 미세한 시간적 단위를 제공한다. 이러한 추가 적인 특징들 및 교시들을 이용하는 개별적인 예들은 하기 도면들을 참조하여 좀 더 상세하게 설명된다. 이러한 상세한 설명은 단지 상세한 설명을 통해 통상의 기술자를 가르치도록 의도되며, 청구항들의 범위를 제한하려는 것이 아니다. 따라서, 하기의 상세한 설명에서 개시된 특징들의 조합들은 넓은 의미에서 교시들을 수행할 필요가 없고, 대신 본 발명의 대표 실시 예들을 설명하기 위해 교시된다.
이하의 설명은 단지 설명의 목적을 위한 것이며, 본 발명의 충분한 이해를 제공하기 위하여 특정한 명칭에 대하여 설명된다. 그러나, 통상의 기술자에게 이러한 특정한 세부 사항들이 본 발명의 교시들을 실행하기 위해 요구되지 않는다는 점은 명백할 것이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
명세서의 상세한 설명들 중 일부는 컴퓨터 메모리 내에서 데이터 비트들에 대한 알고리즘들 및 오퍼레이션들의 심볼 표현들의 측면으로 표현된다. 이러한 알고리즘적인 설명들과 표현들은 다른 통상의 기술자들에게 본 발명의 실체를 효과적으로 전달하기 위해 데이터 프로세싱 분야의 통상의 기술자에 의해 사용된다. 본 명세서에서 그리고 일반적으로, 알고리즘은 원하는 결과에 도달하게 하는 단계들의 일관성있는 시퀀스인 것으로 생각된다. 단계들은 물리적인 양들의 물리적인 조작들을 요구하는 것들이다. 일반적으로, 필수적인 것은 아니지만, 이러한 양들은 저장, 전달, 결합, 비교 및 다른 방식으로 조작될 수 있는 전기 또는 자기적인 신호들의 형태를 취한다. 주로 공통적인 사용의 이유들로 인해, 이러한 신호들을 비트들, 값들, 엘리먼트들, 심볼들, 캐릭터들, 용어들, 숫자들 또는 이와 같은 것들로 언급하는 것이 때때로 편리하다는 것이 입증되었다.
아래의 설명으로부터 명백한 방식으로 구체적으로 언급되지 않는 한, 설명을 통해 “프로세싱”, “컴퓨팅”, “계산”,”판단”, “표시” 등과 같은 용어들을 이용하는 논의들은 컴퓨터 시스템 또는 이와 유사한 전자 컴퓨팅 장치의 동작 및 프로세스들을 언급하는 것으로 이해된다. 이러한 컴퓨터 시스템 또는 이와 유사한 전자 컴퓨팅 장치는 컴퓨터 시스템의 레지스터들과 메모리들 내의 물리적인(전자적인) 양들로 표현된 데이터를 컴퓨터 시스템 메모리들, 레지스터들 또는 다른 정보 저장, 전송 또는 표시 장치들 내의 물리적인 양들로 유사하게 표현된 다른 데이터로 조작 및 전송한다.
이러한 다양한 시스템들의 요구되는 구조는 하기의 설명으로부터 나타날 것이다. 다양한 프로그래밍 언어가 본 명세서에서 설명된 바와 같이 발명의 교시들을 구현하기 위해 사용될 수 있음은 이해될 수 있을 것이다.
나아가, 본 발명의 추가적인 유용한 실시 예를 제공하기 위해서, 대표적인 실시 예 및 종속항들의 다양한 특징은 구체적이면서 명시적으로 열거되지 않은 다양한 방식으로 결합될 수 있다. 또한, 범위들의 모든 값들 또는 엔티티들 그룹들의 표시들은 청구항의 청구 대상을 한정하기 위한 목적뿐만 아니라 원 발명의 목적을 위해 가능한 모든 중간 값 또는 중간 엔티티들을 개시하고 있음을 분명히 할 필요가 있다. 도면들에 나타난 구성요소들의 차원 및 형상은 본 발명이 실시되는 방식을 이해하기 위해 설계된 것이지만, 본 발명이 이러한 예시들에 나타난 차원 및 형상들에 제한되지 않음을 분명히 할 필요가 있다.
현대의 솔리드 스테이트 드라이브(이하 SSD)들은 성능 조절 기능을 갖추고 있다. 성능 조절 기능(performance throttling feature)은 SSD의 전력 소비를 줄이기 위해 SSD의 성능을 낮추는 것이다. 도 1은 SSD를 보호하기 위한 성능 조절에 대한 그래프를 나타낸다. 성능 조절 기능은 기본적으로 본 명세서에서 열 설계 전력(TDP, thermal design power)으로 언급된 허용 전력 소비 이상의 전력 임계 값을 초과하는 것으로부터 SSD의 회로 및 부품을 보호할 수 있다. SSD가 너무 뜨겁거나 너무 많은 전류를 허용할 때, 강제적으로 전력 소비를 줄이거나 심지어 전원을 꺼버림으로써 성능 조절 기능은 열 또는 전기적인 손상들로부터 SSD의 회로들 및 부품들을 보호할 수 있다. 그러나, 이러한 기존의 성능 조절 기능은 단지 온도 조절기 또는 전력 계량 시스템(예를 들어, 전압/전류 미터)으로부터 판독한 온도에 응답하는 것일 뿐이어서, SSD의 전력 소비를 동적으로 조절하는 것에는 적절하지 않을 수 있다.
도 2는 낸드 플래시 메모리의 파울러-노드하임 터널링 효과를 나타낸다. 낸드 플래시 메모리는 레이턴시 및 전력 소비의 비대칭적인 특성을 갖는다. 예를 들어, 읽기(또는 센싱) 동작은 동작을 위해 공칭(nominal) 전압(예를 들어, 5V)을 요구한다. 그러나, 프로그램 동작 또는 소거 동작은 공칭 전압보다 더 높은 전압(예를 들어, 프로그램 동작시 20V, 소거 동작시 -20V)을 요구한다. 게다가, 주어진 낸드 셀의 전하를 감지하는 읽기 동작과 달리, 프로그램 동작 및 소거 동작들은 플로팅 게이트(201)에/로부터 전하의 주입 또는 제거를 요구한다. 파울러 노드하임(FN, Fowler-Nordheim) 터널링(tunneling)은 더 긴 시간을 소모한다. 그 결과, 프로그램 동작 및 소거 동작들은 크기 순서에 의해 읽기 동작보다 더 느리다.
도 3은 멀티 레벨 셀 낸드 플래시 메모리에 대한 프로그램 동작을 예시적으로 나타낸다. 싱글 레벨 셀(SLC, single level cell)과 달리 멀티 레벨 셀(MLC, multi-level cell) 플래시 메모리는 하나의 낸드 셀 당 복수의 상태들을 저장한다. 메모리 셀 당 데이터 저장 밀도가 더 높기 때문에, 멀티 레벨 셀 플래시 메모리는 주어진 SSD에서 더 큰 논리 용량을 제공한다. 그러나, 멀티 레벨 셀 플래시 메모리는 복잡한 읽기/프로그램/소거 메커니즘을 도입한다. 도 3에 도시된 바와 같이, 멀티 레벨 셀 프로그램 동작은 최하위 비트(LSB) 및 최상위 비트(MSB) 프로그래밍를 포함한다.
멀티 레벨 셀 프로그램 동작은 일반적으로 임계 전압들의 미세한 제어를 위해 증분 단계 펄스 프로그래밍(ISPP, incremental step pulse programming, 이하 ISPP)을 이용한다. ISPP는 하나의 셀에 소정의 스텝 크기로 전하를 증가시키면서 주입한다. 그러나, 멀티 레벨 셀 플래시 메모리는 또 다른 비대칭적인 특성을 도입한다. 최상위 비트(MSB) 프로그램 동작은 다중 문턱 레벨들로 인해 최하위 비트(LSB) 프로그램 동작보다 훨씬 긴 시간이 소요된다. 예를 들어, 멀티 레벨 셀(MLC) 프로그램 동작은 세 개의 문턱 레벨들을 갖는 반면에 싱글 레벨 셀(SLC) 플래시 메모리는 하나의 문턱 레벨을 갖는다. 게다가, 멀티 레벨 셀 프로그램 동작은 문턱 전압들을 적절하게 설정하기 위해서 정밀한 제어를 필요로 한다. 많은 낸드(NAND) 칩들 내에서, 최상위 비트(MSB) 프로그램 동작은 최하위 비트(LSB) 프로그램 동작보다 10배정도 더 느리다. 이러한 이유로, 최상위 비트(MSB) 프로그램 동작은 “느린 페이지 프로그램” 동작으로 언급되고, 최하위 비트(LSB) 프로그램 동작은 “빠른 페이지 프로그램 동작”으로 언급된다. 이러한 단어들은 같은 의미로 사용된다.
본 발명의 일 실시 예에 따르면, 본 발명은 솔리드 스테이트 드라이브(SSD)에 대한 동적 메모리 오퍼레이션 스케쥴러를 제공한다. 스케쥴러는 동적으로 SSD의 전력 소비를 조절할 수 있다. 도 4는 본 발명의 일 실시 예에 따른 동적 메모리 오퍼레이션 스케쥴러의 상위 레벨의 블록도이다. 일 실시 예에 따르면, 스케쥴러(400)는 펌웨어와 같은 하드웨어 로직 디바이스에서 구현된다.
동적 메모리 오퍼레이션 스케쥴러(400)는 호스트 컴퓨터, 사용자 및/또는 메모리 컨트롤러로부터 전력 제한 커맨드(411) 및 전력 소비 피드백(412)를 수신할 수 있다. 예를 들어, 전력 제한 커맨드(411)는 사용자, 오퍼레이팅 시스템 또는 데이터 센터/서버-관리 소프트웨어에 의해 생성될 수 있다. 또 다른 실시 예로, 전력 제한 커맨드(411)는 SSD에 전력 측정 회로, 호스트 컴퓨터 또는 시스템의 구현에 따라 시스템의 다른 부분에 의해 생성될 수 있다. 전력 제한 커맨드(411)는 주어진 타임 윈도우에 대한 허용 전력 버짓을 포함할 수 있다. 전력 제한 커맨드(411)와 전력 소비 피드백(412)를 이용함으로써, 스케쥴러(400)는 SSD의 낸드 어레이들(450)에 대해 낸드 오퍼레이션들(415)를 불러오는 것을 스케쥴링하고 제어할 수 있다. 일 실시 예에 따르면, 스케쥴러(400)는 스케쥴링 정책에 따라 낸드 오퍼레이션들을 불러오는 것을 조절할 수 있다. 스케쥴링 정책은 호스트 컴퓨터로부터의 사용자에 의해 프로그램 가능하고 구현 가능하다. 스케쥴러(400)는 스케쥴링 정책에 따라 대기 낸드 오퍼레이션들(queued NAND operations)을 통해 다른 우선 순위를 할당할 수 있고, 사용자에 의해 구체적으로 할당된 버짓(budget)에 따라 낸드 어레이들(450)의 전력 소비를 관리할 수 있다.
현대의 SSD들은 레이턴시를 감추기 위해 낸드 어레이 레벨에서 병렬 처리를 이용한다. 병렬 처리를 달성하기 위해, SSD의 메모리 컨트롤러는 동시에 다수의 메모리 오퍼레이션들을 낸드 어레이들에 불러온다. 이러한 동시적인 동작들은 다수의 메모리 채널들, 인터리빙 및 다중 평면들을 이용할 수 있다. 몇몇의 병렬 처리는 낸드 어레이 조직(NAND array organization)을 기반으로 하지만, 다른 병렬 처리는 다중 평면들을 통한 낸드 칩 구조에 의존할 수 있다. 전통적으로, 열 설계 전력(TDP)의 관점의 성능 조절만을 제외하고, 병렬 처리는 주로 관련된 전력 소비의 증가를 고려하지 않고 SSD의 성능을 향상시키기 위해 사용된다. 열 설계 전력(TDP)은 주로 열적인 또는 전기적인 사건으로부터 장치 보호를 위한 것이다. 총 전력 소비가 열 설계 전력(TDP)을 초과할 때까지, SSD는 최대 성능을 달성하기 위해 가능한 한 많은 오퍼레이션들을 불러온다.
도 5는 전력 제한이 없는 종래의 낸드 오퍼레이션 스케쥴링 방식을 보여준다. 일 실시 예로, 전력 제한은 일련의 타임 윈도우들로 분할된다. T1, T2, T3 및 T4로 표현된 타임 윈도우들은 전력 버짓을 할당하고 전력 소비를 조절하기 위한 시간 주기들을 나타낸다. 메모리 시스템, 어플리케이션 및/또는 전력 소비 제어의 원하는 단위에 따라 타임 윈도우들의 길이는 변화할 수 있다. 본 발명의 실시 예에서, 타임 윈도우들은 일정하지만, 사용자의 설정, 어플리케이션, 지연 시간 및 동시에 억세스되는 낸드 어레이들의 수와 같은 다양한 요소들에 따라, 타임 윈도우들이 동적으로 조절될 수 있음은 이해될 것이다. 예를 들어, 피크 시간 동안, 더 효율적인 전력 소비를 달성하기 위해 허용 전력 버짓 하에서 메모리 시스템은 더 정밀한 단위를 이용해 전력 소비를 모니터하고 조절할 수 있다.
최대의 병렬 처리 및 최대의 성능을 달성하기 위해, 메모리 시스템의 호스트 메모리 컨트롤러(미도시)는 일반적으로 낸드 오퍼레이션들을 SSD에 발행한다. SSD의 메모리 컨트롤러(예를 들어, 슬레이브 메모리 컨트롤러)는 할당된 메모리 채널들을 통해 호스트 메모리 컨트롤러로부터 낸드 오퍼레이션들을 수신할 수 있고, 낸드 어레이들 각각을 위해 할당된 큐들(예를 들어, SSD의 내부의 버퍼들)에 낸드 오퍼레이션들을 저장할 수 있다. SSD의 낸드 오퍼레이션들이 큐들에 저장된 순서에 따라, 메모리 컨트롤러는 낸드 오퍼레이션들을 대응하는 낸드 어레이들에 불러올 수 있다.
병렬 처리의 많은 이용은 시간 대비 중대한 전력 소비의 변형을 초래할 수 있다. 그러므로, 낸드 어레이들에 의한 총 전력 소비는 주로 낸드 어레이들을 에 대해 현재 활성화된 낸드 오퍼레이션들 및 그들의 조합에 의해 결정될 수 있다. 다른 종류의 낸드 오퍼레이션들은 도 2에 도시된 것과 같이 다른 정도의 전력을 소모한다.
각각의 타임 윈도우에서 전력 소비는 메모리 컨트롤러로부터 수신된 낸드 오퍼레이션들의 종류 및 순서에 따라 달라질 수 있다. 예를 들어, 제 1 낸드 어레이(NAND array 1)는 느린 페이지 프로그램 오퍼레이션(511), 읽기 오퍼레이션(531), 소거 오퍼레이션(501) 및 빠른 페이지 프로그램 오퍼레이션(521)을 수신한다. 동시에 제 2 낸드 어레이(NAND array 2)는 읽기 오퍼레이션들(532a, 532b), 소거 오퍼레이션(502), 빠른 페이지 프로그램 오퍼레이션(522) 및 또 다른 읽기 오퍼레이션(532c)를 수신한다. 동시에 제 3 낸드 어레이(NAND array 3)는 느린 페이지 프로그램 오퍼레이션(513), 읽기 오퍼레이션(533), 소거 오퍼레이션(503) 및 빠른 페이지 프로그램 오퍼레이션(523)을 수신한다. 동시에 제 4 낸드 어레이(NAND array 4)는 느린 페이지 프로그램 오퍼레이션(514a), 소거 오퍼레이션(504), 다른 느린 페이지 프로그램 오퍼레이션(514b) 및 읽기 오퍼레이션(534)를 수신한다.
주어진 타임 윈도우 동안, SSD의 낸드 어레이들 각각에서 수행되는 낸드 오퍼레이션들의 종류와 수는 달라질 수 있다. 그러므로, 각각의 타임 윈도우에서 전력 소비는 변화할 수 있다. 소거 오퍼레이션들(예를 들어, 501, 502, 503 및 504)은 프로그램 오퍼레이션 및 읽기 오퍼레이션들보다 더 많은 시간 및 전력이 소비된다. 프로그램 오퍼레이션들은 느린 페이지 오퍼레이션과 빠른 페이지 오퍼레이션을 포함할 수 있다. 느린 페이지 프로그램 오퍼레이션들(예를 들어, 511, 513, 514a 및 514b)은 빠른 페이지 프로그램 오퍼레이션들(예를 들어, 521, 522 및 523)보다 더 많은 전력을 소비한다. 읽기 오퍼레이션들(예를 들어, 531, 532a, 532b, 532c, 533 및 534)은 소거 오퍼레이션 및 프로그램 오퍼레이션들에 비해 가장 적은 시간 및 전력이 소비된다. 비록 본 발명의 실시 예에서는 4 종류의 낸드 오퍼레이션들(읽기, 느린 페이지 프로그램, 빠른 페이지 프로그램 및 소거)이 나타나지만, 낸드 오퍼레이션들은 이것들에 제한되는 것은 아니다. 대신에, 본 발명의 범위로부터 벗어나지 호스트 메모리 컨트롤러로부터 수신된 다른 낸드 오퍼레이션들 또는 SSD의 메모리 컨트롤러에 의해 내부적으로 생성된 낸드 액티비티들(NAND activities)은 않도록 큐들에 더해지고, 설계된 낸드 어레이들에 의해 실행될 수 있다. 예를 들어, SSD 내부의 오퍼레이션들은 가비지 콜렉션, 웨어 레벨링 및 소거 블록 준비 액티비티들을 포함할 수 있다. 높은 전력 버짓이 이용 가능하거나 메모리 시스템이 낮은 작업량의 상황일 때, 스케쥴러(400)는 이러한 SSD 내부의 오퍼레이션들을 수행할 수 있다.
각각의 타임 윈도우에 대한 전력 소비는 온도 조절기 또는 파워 미터를 이용하여 SSD의 전력 소비의 물리적인 판독에 의해 계산될 수 있다. 다른 예로, 전력 소비는 각각의 타임 윈도우에 대한 큐들에 계류 중인 낸드 오퍼레이션들의 종류 및 수를 이용한 수학적인 모델을 기반으로 계산될 수 있다. SSD가 위치한 데이터 센터는 온도 기반으로 제어되고, 따라서 주위의 온도가 알려질 수 있다. 이 경우, 다른 환경적인 요인들을 고려하지 않음으로써, 더 간단한 모델을 사용하여 전력 소비의 계산이 수행될 수 있다. 일 실시 예로, 다가오는 타임 윈도우들에서 더 나은 전력 소비의 추세를 예측하기 위해서, 전력 소비 모델은 전력 소비의 물리적인 판독을 참조할 수 있다.
나아가, 주어진 타임 윈도우에서 SSD 내의 모든 낸드 어레이들의 전력 소비를 결합한 전체적인 전력 소비는 낸드 오퍼레이션의 종류들을 기반으로 함께 분할되고 그룹화될 수 있다. 추정 전력 소비는 주어진 타임 윈도우에서 낸드 오퍼레이션의 종류들의 예측 전력 소비에 의해 획득될 수 있다. 본 발명의 실시 예에서, 타임 윈도우(T2)는 제 1 내지 제 4 낸드 어레이들(NAND arrays 1-4) 각각에서, 소거 오퍼레이션들(501, 502, 503, 504)을 포함한다. 타임 윈도우(T2)는 다른 타임 윈도우들보다 더 많은 소거 오퍼레이션들을 포함하기 때문에, 타임 윈도우(T2)의 전력 소비는 나머지 타임 윈도우들(T1, T3, T4)보다 더 많은 전력이 소비될 것으로 예측된다.
전력 제한이 없다면, 전력 소비는 주어진 타임 윈도우에서 허용된 열 설계 전력(TDP)을 초과할 때, 큐들(queues) 내에 낸드 오퍼레이션들은 전력 소비가 열 설계 전력(TDP) 아래로 감소될 때까지 중지될 것이다. 열 설계 전력(TDP)에 도달될 때, SSD의 메모리 컨트롤러는 모든 계류중인 큐들을 완전하게 중지할 것인지 우선 순위에 기반하여 부분적으로 오퍼레이션들을 중지할 것인지를 결정할 수 있다. 예를 들어, 타임 윈도우(T2)에서 전력 소비가 열 설계 전력(TDP)을 초과할 때, 제 3 및 제 4 낸드 어레이들(NAND arrays 3-4)에 대한 낸드 오퍼레이션들은 중지될 것이고, 제 1 및 제 2 낸드 어레이들(NAND arrays 1-2)만이 계속하여 동작할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 동적 메모리 오퍼레이션 스케줄링 방식의 예를 보여준다. 도 4에 도시된 본 발명의 동적 메모리 오퍼레이션 스케쥴러(400)는 오퍼레이션 스케쥴링, 딜레이된 오퍼레이션 발행 및 메모리 오퍼레이션 재배열을 포함하는 동적 메모리 오퍼레이션들을 수행할 수 있다. 주어진 타임 윈도우에 대한 허용 전력 버짓 내에, 스케쥴러(400)는 몇몇의 낸드 오퍼레이션들을 지연시킬 수 있다. 시간적인 제약의 순서를 요구하지 않는 낸드 오퍼레이션들에 대하여, 스케쥴러(400)는 주어진 타임 윈도우에 대한 허용 전력 버짓을 충족시키기 위해서 그러한 오퍼레이션들을 재배열할 수 있다.
본 발명의 일 실시 예에 따르면, 본 발명의 동적 메모리 오퍼레이션 스케줄러(400)는 미리 결정된 전력 제한을 만족시키기 위해 복수의 활성화된 낸드 오퍼레이션들을 제어할 수 있다. 전력 제한을 달성하기 위해서, 스케쥴러(400)는 주어진 타임 윈도우 내에 전력 버짓을 초과하지 않도록 큐들 내의 후속의 낸드 오퍼레이션들을 지연시키거나 재배열할 수 있다.
전력 버짓이 이미 주어진 타임 윈도우에서 소모된 경우, 스케쥴러(400)는 과도한 전력 소비를 방지하기 위해 낸드 어레이들에 불러올 추후의 오퍼레이션을 중지할 수 있다. 도 5의 비교 예를 참조하면, 타임 윈도우들(T1, T2, T3)에 대한 예측 전력 소비는 전력 버짓에 대응하여 더 높을 것이다. 타임 윈도우(T4)에 대하여, 전력 소비는 허용 전력 버짓보다 더 낮을 것이다. 각각의 타임 윈도우에 대한 전력 버짓들은 다르고, 유저 또는 SSD의 동작 환경에 따라 동적으로 할당될 수 있다.
특히, 타임 윈도우(T1)에 대한 전력 버짓은 타임 윈도우(T1)의 실제(또는 추정) 전력 소비보다 낮다. 그러므로, 타임 윈도우(T1)에 대한 전력 버짓은 전부 소진된다. 이러한 경우, 스케쥴러(400)는 제 1 낸드 어레이(NAND array 1)에 계류 중인 낸드 오퍼레이션(531)과 제 4 낸드 어레이(NAND array 4)에 계류 중인 소거 오퍼레이션(504)을 지연시키고, 다음 이용 가능한 타임 윈도우(이 경우에는 타임 윈도우(T2))에 계류 중인 오퍼레이션들을 불러올 수 있다. 제 2 낸드 어레이(NAND array 2)의 읽기 오퍼레이션(532b)은 딜레이된 낸드 오퍼레이션들(531, 504)의 우선 순위보다 더 높은 우선 순위로 인해 영향을 받지 않을 수 있다. 나아가, 타임 윈도우(T2)에서 시작된 긴 소거 오퍼레이션을 완료하기 위해, 타임 윈도우(T3)의 전력 버짓은 동적으로 감소된다. 타임 윈도우(T3)에서 감소된 전력 버짓을 충족시키기 위해서, 스케쥴러(400)는 제 1 및 제 3 낸드 어레이들(NAND arrays 1, 3) 각각에 대한 소거 동작들(501, 503)을 더욱 지연할 수 있다. 스케쥴러(400)는 현재 및 다음 타임 윈도우들의 허용 전력 버짓을 기반으로 동적으로 딜레이의 지속 구간을 결정할 수 있다. 스케쥴러(400)는 독립적으로 타임 윈도우들 단위의 낸드 오퍼레이션들을 재배열할 수 있다. 예를 들어, 딜레이된 오퍼레이션의 시작 시점은 다음 이용 가능한 타임 윈도우의 시작 시점과 반드시 일치해야 할 필요는 없을 것이다. 예를 들어, 원래 타임 윈도우(T2)에서 수행되기로 스케쥴된 소거 동작(501)은 타임 윈도우(T3)의 중간에서 시작할 수 있다.
낸드 오퍼레이션의 딜레이는 열 설계 전력(TDP)에 도달될 때 낸드 오퍼레이션들의 중지와 유사하다. 그러나, 전력 소비를 모니터링하고, 딜레이들을 갖는 큐들에 낸드 오퍼레이션들을 리스케쥴링하고, 전력 버짓과 계류 중인 낸드 오퍼레이션들의 우선 순위를 기반으로 재배열을 수행함으로써, 본 발명에 따른 스케쥴러(400)에 의해 딜레이된 낸드 오퍼레이션들은 동적으로 제어될 수 있다.
타임 윈도우(T2)에서 시작된 긴 소거 오퍼레이션으로 인해, 타임 윈도우(T3)에서는 단지 작은 양의 전력 버짓만이 이용 가능하다. 이러한 이유로, 스케쥴러(400)는 제 2 낸드 어레이(NAND array 2)에 대한 프로그램 오퍼레이션이 타임 윈도우(T3)에서 호출되는 것을 금지할 수 있다. 대신에, 제 2 낸드 어레이의 큐 내에 낸드 오퍼레이션들의 순서를 다시 정함으로써, 스케쥴러(400)는 낸드 오퍼레이션들을 재배열할 수도 있다. 예를 들어, 빠른 페이지 프로그램 오퍼페이션(532c) 이전에 읽기 오퍼레이션(532c)이 수행된다. 이와 유사하게, 느린 읽기 오퍼레이션(533)이 수행된 이후에, 페이지 프로그램 오퍼레이션(513)이 수행된다. 스케쥴러(400)에 의한 낸드 오퍼레이션들의 딜레이와 재배열은 전력 소비 제한을 만족시킬 뿐만 아니라 SSD의 성능을 증가시킨다. 왜냐하면, 주어진 타임 윈도우에 대한 전력 버짓이 큐들에 이용 가능한 낸드 오퍼레이션들을 효율적으로 채울 수 있기 때문이다. 몇몇의 낸드 오퍼레이션들은 재배열되지 않을 수도 있다. 예를 들어, 프로그램 오퍼레이션 이후 요청된 읽기 데이터가 변하지 않을 수 있기 때문에, 동일한 메모리 어드레스에 읽기 및 프로그램 오퍼레이션은 재배열되지 않을 수도 있다. 큐에 낸드 오퍼레이션들을 재배열할 때, 스케쥴러(400)는 낸드 오퍼레이션들이 재배열될 수 있는지 또는 딜레이될 필요가 있는지 여부를 결정할 수 있다. 낸드 오퍼레이션들의 딜레이는 일반적으로 재배열을 일으키는 충돌을 유발시키지 않는다.
본 발명의 일 실시 예에 따르면, 스케쥴러(400)는 타임 윈도우들(T1, T2, T3, T4) 각각에 대한 적당한 낸드 오퍼레이션들을 찾아내고 호출함으로써 전력 버짓을 충족시킬 수 있다. 전력 버짓 요구는 호스트 컴퓨터(예를 들어, 데이터 센터에 대한 시스템 관리자)로부터의 사용자에 의해 동적으로 할당될 수 있다.
주어진 전력 버짓에 대해, 스케쥴러(400)는 스케쥴링 정책에 기반하여 큐들 내에 낸드 오퍼레이션들을 재배열하고 지연시킬 수 있다. 일 실시 예로, 스케쥴링 정책은 큐들 내에 계류 중인 낸드 오퍼레이션들의 윈도우 사이즈에 영향을 받을 수 있다. 예를 들어, 큐들의 깊이(depth)가 10인 경우, 지연 또는 재배열을 위한 후보 낸드 오퍼레이션의 검색은 5 오퍼레이션들의 윈도우 크기로 제한될 수 있다. 윈도우 사이즈 내 후보 낸드 오퍼레이션이 주어진 타임 윈도우의 전력 버짓을 충족시키지 못하는 경우, 윈도우 사이즈를 초과하는 것을 검색하는 대신에 후속의 계류 중인 낸드 오퍼레이션이 지연될 수 있다. 본 발명의 범위를 벗어나지 않는 한도에서 본 발명의 다양한 스케쥴링 정책이 적용될 수 있음은 이해될 것이다. 유저에 의해 정의된 전력 버짓뿐만 아니라, 다른 동작 요소들 및 환경적 요소들에 의해 스케쥴링 정책은 동적으로 변화할 수 있다. 예를 들어, 다른 동작 요소들 및 환경적 요소들은 데이터 센터의 주위 온도, 당일의 시각, SSD의 예측된 사용 및 낸드 오퍼레이션들의 종류들을 포함한다.
도 7은 본 발명의 일 실시 예에 따른 동적 메모리 오퍼레이션 스케쥴러의 순서도를 보여준다. S700 단계에서, 스케쥴러(400)는 호스트 메모리 컨트롤러로부터 낸드 오퍼레이션들을 수신하고, 수신된 낸드 오퍼레이션들을 큐들에 저장할 수 있다. S701 단계에서, 스케쥴러는 큐들이 가득 채워질 때까지 수신된 낸드 오퍼레이션들을 저장한다. S702 단계에서, 스케쥴러(400)는 이용 가능한 전력 버짓이 있는지 여부와 현재 및 추후의 타임 윈도우들에 전력 버짓을 만족되는지 여부를 확인할 수 있다. 다시 말해, 만약 이용 가능한 전력 버짓이 없다면, 현재 및 추후의 타임 윈도우들에 대한 전력 제한이 없을 때 스케쥴러(400)는 낸드 오퍼레이션들이 큐들에 저장된 순서에 따라 낸드 오퍼레이션들을 계속적으로 수신하고 수신된 낸드 오퍼레이션들을 수행할 수 있다.
만약 현재 및 추후의 타임 윈도우들에 대한 이용 가능한 전력 버짓이 있는 경우, S703 단계에서, 스케쥴러(400)는 큐들에 적당한 낸드 오퍼레이션들을 찾기 위한 오퍼레이션 스케쥴링 정책을 적용할 수 있다. S704 단계에서, 스케쥴러(400)는 적당한 낸드 오퍼레이션이 존재하는지 여부를 결정할 수 있다. 전력 버짓을 만족시키기 위해, 적당한 낸드 오퍼레이션들이 같은 큐들에서 발견될 수 있다. 일 실시 예로, S705 단계에서, 큐에 후속으로 계류 중인 낸드 오퍼레이션에 앞서서, 스케쥴러(400)에 의해 확인된 적당한 낸드 오퍼레이션들이 호출될 수 있다.
예를 들어, 도 6을 참조하면, 제 2 낸드 어레이(NAND array 2)에 대한 읽기 동작(532c)은 빠른 페이지 프로그램 오퍼레이션(522)에 앞서 배열된다. 유사하게, 제 3 낸드 어레이(NAND array 3)에 대한 느린 페이지 프로그램 오퍼레이션(513)은 읽기 오퍼레이션(533)에 앞서 배열된다. 적당한 낸드 오퍼레이션들이 같은 큐에서 발견되지 않는 때, 큐 내의 후속의 낸드 오퍼레이션은 지연된다. 게다가, 스케쥴러(400)는 제 1 및 제 3 낸드 어레이(NAND array 1, 3) 소거 오퍼레이션들(501, 503)을 지연시킬 수 있다. 큐들 내 낸드 오퍼레이션들의 재배열 및 지연은 도 6에 도시된 바와 같이 같은 큐에서 발생할 수 있다. 그러나, 하나의 큐에 계류 중인 낸드 오퍼레이션들이 필요에 따라 다른 큐에 호출될 수 있음은 이해될 것이다.
각각의 스케쥴링 정책은 호스트 컴퓨터 또는 사용자에 의해 구체화된 각 오퍼레이션의 전력 소비 프로필, 서비스의 질(QoS, quality of service) 또는 다른 요구 사항과 관련될 수 있다. 예를 들어, 오퍼레이션들에 대한 더 이상의 메타 데이터가 없는 경우, 전력 버짓이 있는 경우 리스케쥴링을 적용하지 않고, 스케쥴러(400)는 FIFO(Fist-In-First-Out) 정책을 따른다. 적당한 오퍼레이션들을 찾기 위한 윈도우 사이즈는 유저 커맨드에 의해 정적으로 구현되거나, 동적으로 구현될 수 있다. 스케쥴러(400)는 호스트 컴퓨터 또는 사용자로부터 수신된 사용자 커맨드를 기반으로 윈도우 사이즈를 설정할 수 있다. 호출을 위한 적당한 후보 오퍼레이션들을 찾는 것과 달리, 적당한 후보 오퍼레이션들을 찾는 것을 MOF(Minimum power consumption Operation First)를 찾는 것으로 변경함으로써 SJF(Shortest Job First)가 유사하게 적용될 수 있다.
본 발명의 일 실시 예에 따르면, 동적 오퍼레이션 스케쥴링에 대한 본 발명의 스케쥴러는 쉽게 QoS를 지원하도록 확장될 수 있다. 각각의 오퍼레이션들이 메타 데이터로 데드라인을 갖게 되면, QoS 요구 사항을 만족시키기 위해 전력 제한 가능성을 갖는 스케쥴러는 EDF(Eealiest Deadline First)를 적용할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 동적 낸드 오퍼레이션 스케쥴러의 예시적인 동작 방식을 보여준다. 스케쥴러(800)는 동작 큐(801), 디코더(802), 전력 커맨드 큐(803), 전력 모니터(804), 어드레스 스테이션(805) 및 전력 스테이션(806)을 포함한다. 호스트 컨트롤러로부터 수신된 낸드 오퍼레이션들은 동작 큐(801)에 저장된다. 호스트 컴퓨터, 사용자 및/또는 호스트 메모리 컨트로러로부터 수신된 전력 커맨드들(예를 들어, 도 4의 전력 제한 커맨드(411) 및 전력 소비 피드백(412))은 각각 전력 커맨드 큐(803)에 저장된다. 디코더(802)는 낸드 오퍼레이션들을 복호화하고, 오퍼레이션 코드들 및 복호화된 낸드 오퍼레이션들 각각에 연관된 로직 블록 어드레스(LBA)들을 어드레스 스테이션(805)에 저장한다. 또한, 어드레스 스테이션(805)은 낸드 플래시 메모리의 어드레스의 상태를 나타내는 레지스터를 포함한다. 전력 모니터(804)는 수신된 전력 커맨드들을 해석하고, 전력 제어 커맨드들을 전력 스테이션(806)에 생성한다. 또한, 전력 스테이션(806)은 낸드 플래시 메모리의 상태를 나타내는 상태 플래그(status flag)를 포함할 수 있다. 예를 들어, 상태 플래그(status flag)는 비지(busy), 레디(ready) 또는 에러(error) 상태를 나타낼 수 있다.
본 발명의 일 실시 예에 따르면, 어드레스 스테이션(805)은 오퍼레이션들을 병합하는 것과 같은 향상된 스케쥴링 기능들을 제어할 수 있다. 예를 들어, 같은 논리 블록 어드레스(LBA)에 두 개의 프로그램 오퍼레이션이 있는 경우, 첫 번째 프로그램 오퍼레이션은 버리고, 두 번째 쓰기 오퍼레이션만을 수행할 수 있다.
본 발명의 일 실시 예에 따르면, 전력 모니터(804) 및 전력 스테이션(806)은 부착된 장치의 전체 전력 소비보다는 채널 당 및 다이 당 전력 소비를 모니터링할 수 있다. 이 경우, 전력 실행의 제어 및 낸드 오퍼레이션 스케쥴링은 채널 당 및 다이 당 전력 소비에 대한 인지를 기반으로 수행될 수 있다.
하기의 유사 부호 코드는 동적 낸드 오퍼레이션 스케쥴러(800)의 예시적인 동작을 설명한다. 이슈 함수(issue function)는 낸드 오퍼레이션을 어드레스 스테이션(805)에 발행한다. 그리고 수행 함수(exec function)은 전력 스테이션(806) 내 실행을 제어한다. 이슈 함수(issue function)와 수행 함수(exec function) 모두는 낸드 오퍼레이션 및 낸드 플래시의 연관된 논리 어드레스를 수신한다.
우선, 이슈 함수(issue function)는 RAW(Read After Write) 또는 WAW(Write After Write)를 확인한다.
function issue (op, LBA) // issue op to address station
wait until (! Busy[ALL] AND !( write & LBA )); // check RAW or WAW
Busy[s] ? Yes ;
OpCode[s] ? op ;
LBA[s] ? LBA ;
수행 함수(exec function)는 전력이 버짓 이하가 될 때까지 대기하고, 스케쥴링 정책에 기반하여 다음 낸드 오퍼레이션을 찾는다.
function exec (op, LBA) // control execution in power station
wait until (power is below budget); // power monitor logic
find next op (); // based on different policy, e.g. greedy, etc.
Control[s] ? Exec ;
Op[s] ? op ;
Power[s] ? power ;
본 발명의 일 실시 예에 따르면, 동적 낸드 오퍼레이션 스케쥴러(800)의 동작 방법은 하기의 단계들을 포함할 수 있다. 메모리 채널을 통해 메모리 장치의 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 수신하는 단계, 메모리 어레이와 연관된 하나 이상의 큐들에 복수의 메모리 오퍼레이션들을 저장하는 단계, 하나 이상의 메모리 어레이들과 연관된 전력 버짓을 수신하는 단계, 타임 윈도우에 대한 전력 버짓을 충족시키기 위해 하나 이상의 큐들에 하나 이상의 후보 메모리 오퍼레이션들을 판단하는 단계, 하나 이상의 큐들에 복수의 메모리 오퍼레이션들을 동적으로 재배열하고 타임 윈도우에 대한 전력 버짓을 만족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하는 단계 그리고 하나 이상의 메모리 어레이들에 리스케쥴링된 메모리 오퍼레이션들을 호출하는 단계를 포함한다.
복수의 메모리 오퍼레이션들의 가능한 메모리 오퍼레이션들의 셋은 읽기 오퍼레이션, 느린 페이지 프로그램 오퍼레이션, 빠른 페이지 프로그램 오퍼레이셔ㄴ 및 소거 오퍼레이션을 포함할 수 있다.
리스케쥴링된 메모리 오퍼레이션들은 딜레이의 지속 구간으로 인한 메모리 오퍼레이션의 딜레이를 포함할 수 있다.
딜레이의 지속 구간은 전력 버짓에 의해 결정될 수 있다.
리스케쥴링된 메모리 오퍼레이션들은 같은 큐 내의 두 개의 메모리 오퍼레이션들의 재배열을 포함할 수 있다.
동적 낸드 오퍼레이션 스케쥴러의 동작 방법은 메모리 채널을 통해 전력 버짓과 연관된 전력 제한 커맨드를 수신하는 단계를 더 포함할 수 있다.
동적 낸드 오퍼레이션 스케쥴러의 동작 방법은 전력 피드백 정보를 수신하는 단계 및 전력 버짓을 일련의 타임 윈도우들로 분할하는 단계를 더 포함할 수 있다.
전력 피드백 정보는 메모리 장치의 온도 조절기 또는 파워 미터에 의해 생성될 수 있다.
동적 낸드 오퍼레이션 스케쥴러의 동작 방법은 하나 이상의 후보 메모리 오퍼레이션들의 우선 순위에 따라 큐들 내에 미리 결정된 윈도우 범위의 하나 이상의 후보 메모리 오퍼레이션들을 결정하는 단계를 더 포함할 수 있다.
동적 낸드 오퍼레이션 스케쥴러의 동작 방법은 메모리 오퍼레이션들의 종류에 따라 타임 윈도우들 각각 내에 전력 소비를 그룹화하는 단계, 그리고 복수의 메모리 어레이들의 전력 소비에 기반한 타임 윈도우들 각각에 대한 총 전력 소비를 판단하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 메모리 장치는 하나 이상의 메모리 어레이들, 호스트 컴퓨터로부터 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 수신하도록 구성된 메모리 채널, 메모리 오퍼레이션들을 저장하는 하나 이상의 큐들 그리고 스케쥴러를 포함한다. 스케쥴러는 호스트 컴퓨터로부터 복수의 메모리 어레이들과 관련된 전력 버짓을 수신하고, 타임 윈도우에 대한 전력 버짓을 충족시키기 위해 복수의 큐들 내에 하나 이상의 후보 메모리 오퍼레이션들을 결정하고, 복수의 큐들 내에 복수의 메모리 오퍼레이션들을 재배열하고 타임 윈도우에 대한 전력 버짓을 충족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하고, 복수의 메모리 어레이들에 리스케쥴링된 메모리 오퍼레이션들을 호출하도록 구성된다.
복수의 메모리 오퍼레이션들의 가능한 메모리 오퍼레이션들의 셋은 읽기 오퍼레이션, 느린 페이지 프로그램 오퍼레이션, 빠른 페이지 프로그램 오퍼레이션 및 소거 오퍼레이션들을 포함할 수 있다.
리스케쥴링된 메모리 오퍼레이션들은 딜레이의 지속 구간으로 인한 대한 메모리 오퍼레이션의 딜레이를 포함할 수 있다.
딜레이의 지속 구간은 전력 버짓에 의해 결정된다.
리스케쥴링된 메모리 오퍼레이션들은 같은 큐 내에 두 개의 메모리 오퍼레이션들의 재배열을 포함할 수 있다.
스케쥴러는 전력 버짓과 관련된 전력 제한 커맨드를 메모리 채널을 통해 호스트 컴퓨터로부터 수신하도록 구성될 수 있다.
스케쥴러는 전력 피드백 정보를 수신하도록 구성될 수 있다.
전력 피드백 정보는 메모리 장치의 온도 조절기 또는 파워 미터에 의해 생성될 수 있다.
스케쥴러는 하나 이상의 후보 메모리 오퍼레이션들의 우선 순위에 기반하여 큐들 내에 미리 결정된 윈도우 범위를 갖는 하나 이상의 후보 메모리 오퍼레이션들을 결정하도록 구성될 수 있다.
전력 버짓은 일련의 타임 윈도우들로 분할될 수도 있다. 스케쥴러는 메모리 오퍼레이션들의 종류에 따라 타임 윈도우들 각각에서 전력 소비를 그룹화하고, 복수의 메모리 어레이들의 전력 소비에 기반하여 타임 윈도우들 각각에 대한 총 전력 소비를 결정하도록 구성될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
201: 플로팅 게이트 400: 스케쥴러
411: 전력 제한 커맨드 412: 전력 소비 피드백
415: 낸드 오퍼레이션들 450: 낸드 어레이들
800: 스케쥴러 801: 동작 큐
802: 디코더 803: 커맨드 큐
804: 전력 모니터 805: 어드레스 스테이션
806: 전력 스테이션

Claims (10)

  1. 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 메모리 채널을 통해 수신하는 단계;
    상기 메모리 어레이들과 관련된 하나 이상의 큐들에 상기 복수의 메모리 오퍼레이션들을 저장하는 단계;
    상기 하나 이상의 메모리 어레이들과 연관된 전력 버짓을 수신하는 단계;
    타임 윈도우에 대한 상기 전력 버짓을 충족시키기 위해 상기 하나 이상의 큐들에 하나 이상의 후보 메모리 오퍼레이션들을 결정하는 단계; 및
    동적으로 상기 하나 이상의 큐들에 상기 복수의 메모리 오퍼레이션들을 재배열하고, 상기 타임 윈도우에 대한 상기 전력 버짓을 만족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하는 단계를 포함하는 메모리 장치의 동작 방법.
  2. 제 1 항에 있어서,
    상기 복수의 메모리 오퍼레이션들의 가능한 메모리 오퍼레이션들의 셋은 읽기 오퍼레이션, 느린 페이지 프로그램 오퍼레이션, 빠른 페이지 프로그램 오퍼레이션 및 소거 오퍼레이션들을 포함하는 메모리 장치의 동작 방법.
  3. 하나 이상의 메모리 어레이들;
    상기 하나 이상의 메모리 어레이들에 대한 복수의 메모리 오퍼레이션들을 호스트 컴퓨터로부터 수신하도록 구성된 메모리 채널;
    상기 메모리 오퍼레이션들을 저장하도록 구성된 하나 이상의 큐들; 및
    상기 하나 이상의 메모리 어레이들과 관련된 전력 버짓을 상기 호스트 컴퓨터로부터 수신하고, 타임 윈도우에 대한 상기 전력 버짓을 만족시키기 위해 상기 하나 이상의 큐들에 하나 이상의 후보 메모리 오퍼레이션들을 결정하고, 상기 하나 이상의 큐들에 상기 복수의 메모리 오퍼레이션들을 동적으로 재배열하고, 상기 타임 윈도우에 대한 상기 전력 버짓을 만족시키는 리스케쥴링된 메모리 오퍼레이션들을 생성하도록 구성된 스케쥴러를 포함하는 메모리 장치.
  4. 제 3 항에 있어서,
    상기 복수의 메모리 오퍼레이션들의 가능한 메모리 오퍼레이션들의 셋은 읽기 오퍼레이션, 느린 페이지 프로그램 오퍼레이션, 빠른 페이지 프로그램 오퍼레이션 및 소거 오퍼레이션들을 포함하는 메모리 장치.
  5. 제 3 항에 있어서,
    상기 리스케쥴링된 메모리 오퍼레이션들은 하나의 메모리 오퍼레이션의 딜레이를 포함하고, 상기 딜레이는 상기 딜레이의 지속 구간에 따라 발생하는 메모리 장치.
  6. 제 5 항에 있어서,
    상기 딜레이의 상기 지속 구간은 상기 전력 버짓에 의해 결정되는 메모리 장치.
  7. 제 3 항에 있어서,
    상기 리스케쥴링된 메모리 오퍼레이션들은 같은 큐 내에 두 개의 메모리 오퍼레이션들의 재배열을 포함하는 메모리 장치.
  8. 제 3 항에 있어서,
    상기 스케쥴러는 상기 전력 버짓과 연관된 전력 제한 커맨드를 상기 호스트 컴퓨터로부터 상기 메모리 채널을 통해 수신하도록 구성된 메모리 장치.
  9. 제 3 항에 있어서,
    상기 스케쥴러는 전력 피드백 정보를 수신하도록 구성된 메모리 장치.
  10. 제 3 항에 있어서,
    상기 전력 버짓은 일련의 타임 윈도우들(a series of time windows)로 분할되고,
    상기 스케쥴러는 상기 메모리 오퍼레이션들의 종류들을 기반으로 상기 타임 윈도우들 각각의 전력 소비를 그룹화하고, 상기 하나 이상의 메모리 어레이들의 상기 전력 소비을 기반으로 상기 타임 윈도우들 각각의 총 전력 소비를 결정하도록 구성된 메모리 장치.
KR1020160067573A 2015-09-22 2016-05-31 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법 KR102283511B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562222087P 2015-09-22 2015-09-22
US62/222,087 2015-09-22
US14/967,220 2015-12-11
US14/967,220 US9711232B2 (en) 2015-09-22 2015-12-11 Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives

Publications (2)

Publication Number Publication Date
KR20170035320A true KR20170035320A (ko) 2017-03-30
KR102283511B1 KR102283511B1 (ko) 2021-07-29

Family

ID=58283039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160067573A KR102283511B1 (ko) 2015-09-22 2016-05-31 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US9711232B2 (ko)
KR (1) KR102283511B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180026993A (ko) * 2016-09-05 2018-03-14 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 온도 조절 방법
KR20190085770A (ko) * 2018-01-11 2019-07-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200035329A (ko) * 2017-08-31 2020-04-02 마이크론 테크놀로지, 인크 전력 관리 기능이 있는 메모리 장치
US10990498B2 (en) 2018-03-19 2021-04-27 SK Hynix Inc. Data storage device and operating method thereof

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9733684B2 (en) 2015-09-14 2017-08-15 Samsung Electronics Co., Ltd. System and method for controlling power consumption
US11216323B2 (en) 2015-09-16 2022-01-04 Samsung Electronics Co., Ltd. Solid state memory system with low power error correction mechanism and method of operation thereof
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
US10078455B2 (en) * 2016-01-20 2018-09-18 Microsoft Technology Licensing, Llc Predicting solid state drive reliability
US10983704B1 (en) * 2016-05-20 2021-04-20 Emc Corporation Method and system for adaptive wear leveling in solid state memory
US10168763B2 (en) 2016-08-09 2019-01-01 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Modification of when workloads access data units and/or on which storage devices data units are stored to conserve power
JP6529941B2 (ja) * 2016-08-30 2019-06-12 東芝メモリ株式会社 メモリシステム
KR20180099266A (ko) * 2017-02-28 2018-09-05 삼성전자주식회사 데이터 저장 장치, 그의 동작 방법 및 그를 포함하는 전자 시스템
US11029859B2 (en) * 2017-08-23 2021-06-08 Toshiba Memory Corporation Credit based command scheduling
US10181351B1 (en) 2017-08-30 2019-01-15 Micron Technology, Inc. Increased NAND performance under high thermal conditions
US10534545B2 (en) * 2017-12-20 2020-01-14 International Business Machines Corporation Three-dimensional stacked memory optimizations for latency and power
US10776263B2 (en) * 2018-06-27 2020-09-15 Seagate Technology Llc Non-deterministic window scheduling for data storage systems
CN108962311B (zh) * 2018-07-06 2020-12-11 孤山电子科技(上海)有限公司 一种顺序进入和退出低功耗状态的sram控制电路及方法
US11397460B2 (en) * 2019-06-20 2022-07-26 Western Digital Technologies, Inc. Intelligent power saving mode for solid state drive (ssd) systems
KR20210060253A (ko) 2019-11-18 2021-05-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법
US11487444B2 (en) * 2020-03-25 2022-11-01 Micron Technology, Inc. Centralized power management in memory devices
US11126254B1 (en) 2020-05-26 2021-09-21 Western Digital Technologies, Inc. Shaped and optimized power cycles
EP4200852A4 (en) * 2021-06-01 2024-01-03 Yangtze Memory Tech Co Ltd POWER MANAGEMENT FOR A MEMORY SYSTEM
US11941263B2 (en) * 2022-05-02 2024-03-26 Western Digital Technologies, Inc. Flash-translation-layer-aided power allocation in a data storage device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259496A1 (en) * 2004-05-24 2005-11-24 Intel Corporation Throttling memory in a computer system
US20120002472A1 (en) * 2010-07-02 2012-01-05 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US20120246435A1 (en) * 2011-03-21 2012-09-27 Anobit Technologies Ltd. Storage system exporting internal storage rules
US20120331207A1 (en) * 2011-06-24 2012-12-27 Lassa Paul A Controller, Storage Device, and Method for Power Throttling Memory Operations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745326B2 (en) * 2005-06-02 2014-06-03 Seagate Technology Llc Request priority seek manager
US8756369B2 (en) 2008-09-26 2014-06-17 Netapp, Inc. Priority command queues for low latency solid state drives
US8473669B2 (en) 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
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
US9088951B2 (en) * 2011-05-25 2015-07-21 Qualcomm Incorporated Dynamic feature-aware power management
US9563597B2 (en) * 2012-03-19 2017-02-07 Rambus Inc. High capacity memory systems with inter-rank skew tolerance
WO2013164869A1 (en) 2012-05-02 2013-11-07 Hitachi, Ltd. Storage system and control method therefor
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9792989B2 (en) 2013-02-07 2017-10-17 Toshiba Memory Corporation Memory system including nonvolatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259496A1 (en) * 2004-05-24 2005-11-24 Intel Corporation Throttling memory in a computer system
US20120002472A1 (en) * 2010-07-02 2012-01-05 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US20120246435A1 (en) * 2011-03-21 2012-09-27 Anobit Technologies Ltd. Storage system exporting internal storage rules
US20120331207A1 (en) * 2011-06-24 2012-12-27 Lassa Paul A Controller, Storage Device, and Method for Power Throttling Memory Operations

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180026993A (ko) * 2016-09-05 2018-03-14 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 온도 조절 방법
KR20200035329A (ko) * 2017-08-31 2020-04-02 마이크론 테크놀로지, 인크 전력 관리 기능이 있는 메모리 장치
KR20190085770A (ko) * 2018-01-11 2019-07-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN110032396A (zh) * 2018-01-11 2019-07-19 爱思开海力士有限公司 存储器系统及其操作方法
US11036273B2 (en) 2018-01-11 2021-06-15 SK Hynix Inc. Memory system and operating method thereof
US10990498B2 (en) 2018-03-19 2021-04-27 SK Hynix Inc. Data storage device and operating method thereof

Also Published As

Publication number Publication date
US20170084344A1 (en) 2017-03-23
US9711232B2 (en) 2017-07-18
KR102283511B1 (ko) 2021-07-29

Similar Documents

Publication Publication Date Title
KR102283511B1 (ko) 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법
US9977487B2 (en) Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US11204696B2 (en) Memory devices and electronic systems having a hybrid cache including static and dynamic caches that may be selectively disabled based on cache workload or availability, and related methods
AU2015258208B2 (en) Resource allocation and deallocation for power management in devices
KR101363844B1 (ko) 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들
US10359822B2 (en) System and method for controlling power consumption
US20160210060A1 (en) Dynamic resource allocation within storage devices
US10754560B2 (en) Predicting and controlling power consumption for a storage device
CN107408018B (zh) 用于在固态驱动器中适应垃圾收集资源分配的机制
US11041763B2 (en) Adaptive throttling
KR20100031132A (ko) 플래시 메모리 시스템에서 페이징된 가비지 수집과 하우스 키핑 동작

Legal Events

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