KR102532206B1 - 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치 - Google Patents

메모리 컨트롤러 및 그것을 포함하는 스토리지 장치 Download PDF

Info

Publication number
KR102532206B1
KR102532206B1 KR1020170148713A KR20170148713A KR102532206B1 KR 102532206 B1 KR102532206 B1 KR 102532206B1 KR 1020170148713 A KR1020170148713 A KR 1020170148713A KR 20170148713 A KR20170148713 A KR 20170148713A KR 102532206 B1 KR102532206 B1 KR 102532206B1
Authority
KR
South Korea
Prior art keywords
memory
data operation
data
peak
memory dies
Prior art date
Application number
KR1020170148713A
Other languages
English (en)
Other versions
KR20190052884A (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 삼성전자 주식회사
Priority to KR1020170148713A priority Critical patent/KR102532206B1/ko
Priority to US16/057,849 priority patent/US10564869B2/en
Priority to CN201811227920.1A priority patent/CN109766294B/zh
Publication of KR20190052884A publication Critical patent/KR20190052884A/ko
Application granted granted Critical
Publication of KR102532206B1 publication Critical patent/KR102532206B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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)
  • Power Sources (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 다이들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러의 메모리 장치 제어 방법은, 메모리 컨트롤러의 외부로부터 적어도 하나의 데이터 동작 요청 및 전력 예산을 수신하는 단계, 적어도 하나의 데이터 동작 요청에 따른 적어도 하나의 데이터 동작에 의한 소모 전력이 전력 예산 이하가 되도록 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계 및 결정된 데이터 동작 시간을 기초로 복수의 메모리 다이들을 제어하는 단계를 포함할 수 있다.

Description

메모리 컨트롤러 및 그것을 포함하는 스토리지 장치{MEMORY CONTROLLER AND STORAGE DEVICE COMPRISING THE SAME}
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것으로서, 자세하게는 메모리 컨트롤러의 메모리 장치 제어 방법 및 이를 포함하는 스토리지 장치에 관한 것이다.
반도체 메모리 장치는 전원 공급 중단 시 저장된 데이터를 상실하는 휘발성 메모리 장치(volatile memory device)와 저장된 데이터를 상실하지 않는 비휘발성 메모리 장치(non-volatile memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버린다. 반면, 비휘발성 메모리 장치는 읽고 쓰는 속도가 휘발성 메모리 장치에 비해 느리지만 외부 전원 공급이 중단되더라도 그 내용을 보존한다.
반도체 메모리 장치를 포함하는 다양한 전자 장치들은 점점 다양한 컴포넌트들을 포함하게 되고, 이로 인해 전력 관리의 문제가 대두된다. 특히, 다양한 컴포넌트들이 동시에 동작되는 경우 발생하는 전력 스파이크 등의 문제에 대한 해결책이 요구된다.
본 개시의 기술적 사상은 메모리 컨트롤러 및 이를 포함하는 스토리지 장치에서, 주어진 전력 예산의 범위 내에서 복수의 메모리 다이들의 데이터 동작을 제어하기 위한 방법 및 장치를 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 다이들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러의 메모리 장치 제어 방법은, 메모리 컨트롤러의 외부로부터 적어도 하나의 데이터 동작 요청 및 전력 예산을 수신하는 단계, 적어도 하나의 데이터 동작 요청에 따른 적어도 하나의 데이터 동작에 의한 소모 전력이 전력 예산 이하가 되도록 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계 및 결정된 데이터 동작 시간을 기초로 복수의 메모리 다이들을 제어하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 메모리 컨트롤러를 포함하는 스토리지 장치는, 복수의 비휘발성 메모리 다이들 및 메모리 컨트롤러의 외부로부터 전력 예산 및 복수의 비휘발성 메모리 다이들에 대한 프로그램 요청을 수신하고, 전력 예산 및 프로그램 요청의 개수를 기초로 상이한 커맨드 신호를 복수의 비휘발성 메모리 다이들에 송신하는 메모리 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 다이들을 포함하는메모리 장치를 제어하는 메모리 컨트롤러의 메모리 장치 제어 방법은, 메모리 컨트롤러의 외부로부터 적어도 하나의 데이터 동작 요청을 수신하는 단계, 적어도 하나의 데이터 동작 요청에 따른 적어도 하나의 데이터 동작에 의한 소모 전력이 메모리 장치의 최대 전력 스펙을 맞추도록 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계 및 결정된 데이터 동작 시간을 기초로 복수의 메모리 다이들을 제어하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 메모리 컨트롤러 및 이의 제어 방법에 의하면, 동시에 동작하는 메모리 다이의 수 및 전력 예산에 따라 데이터 동작 시간을 가변적으로 제어함으로써, 효율적으로 메모리 장치를 제어할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 사용자 시스템을 나타낸다.
도 2는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러를 나타낸다.
도 3은 본 개시의 예시적 실시예에 따른 데이터 동작 요청 셋을 나타낸다.
도 4는 본 개시의 예시적 실시예에 따른 시간에 따른 데이터 동작 전류 그래프를 나타낸다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 동작 컨트롤러를 나타낸다.
도 6은 본 개시의 예시적 실시예에 따른 피크 정보 메모리를 나타낸다.
도 7은 본 개시의 예시적 실시예에 따른 커맨드 신호를 나타낸다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 컨트롤러의 메모리 장치 제어 방법 순서도를 나타낸다.
도 9a는 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다.
도 9b는 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다.
도 9c는 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다.
도 10은 본 개시의 도 9c의 예시적 실시예에 따른 데이터 동작 시간 결정 순서도를 나타낸다.
도 11은 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다.
도 12는 본 개시의 도 11의 예시적 실시예에 따른 데이터 동작 모드 결정 순서도를 나타낸다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다.
도 14는 본 개시의 예시적 실시예에 따른 메모리 동작 컨트롤러를 나타낸다.
도 15는 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타낸다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 사용자 시스템(10)을 나타낸다. 사용자 시스템(10)은 메모리 장치들(100), 메모리 컨트롤러(200) 및 호스트(300)를 포함할 수 있다. 메모리 장치들(100) 및 메모리 컨트롤러(200)는 메모리 시스템(400)으로 칭해질 수 있다. 메모리 시스템(400)은 하나의 스토리지 장치에 포함될 수 있다. 사용자 시스템(10)은 UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), PMP(Portable Multimedia Player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB(Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 도영상 녹화기(digital video recorder) 및 디지털 동영상 재생기(digital video player) 등과 같은 컴퓨팅 시스템들 중 하나로 제공될 수 있다.
메모리 장치들(100)은 n개(n은 자연수)의 메모리 장치들(120_1~120_n)을 포함할 수 있다. 메모리 장치들(120_1~120_n)은 복수의 메모리 다이들(120_1~120_n)일 수 있고, 이 때 메모리 장치(100)가 복수의 메모리 다이들(120_1~120_n)을 포함할 수 있다. 복수의 메모리 다이들(120_1~120_n)은 메모리 컨트롤러(200)로부터 수신한 신호들에 응답하여 데이터(DATA)의 프로그램, 독출 및 소거 등의 동작을 수행할 수 있다. 프로그램, 독출 및 소거 동작을 일컬어 데이터 동작이라 칭할 수 있다. 메모리 다이들(120_1~120_n) 각각은 적어도 하나의 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들이 교차하는 영역들에 배치되는 복수의 메모리 셀들을 포함할 수 있고, 복수의 메모리 셀들은 비휘발성 메모리 셀들일 수 있다. 복수의 메모리 다이들(120_1~120_n)은 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory; RRAM), 상변화 메모리(Phase-Change Memory; PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory; MRAM), 강유전체 메모리(Ferroelectric Random Access Memory; FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory; STT-RAM) 등을 포함할 수 있으며, 이들의 조합을 포함할 수 있다.
메모리 컨트롤러(200)는 호스트(300)의 요청에 응답하여 메모리 장치들(100)을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 호스트(300)로부터 수신한 데이터 동작 요청 셋(REQ_SET)에 응답하여 메모리 장치들(100)에 저장된 데이터(DATA)를 독출하거나, 메모리 장치들(100)에 데이터(DATA)를 기입하도록 메모리 장치들(100)을 제어할 수 있다. 메모리 컨트롤러(200)는 메모리 장치들(100)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호 등을 제공함으로써, 메모리 장치들(100)에 대한 프로그램, 독출 및 소거 동작을 수행할 수 있다. 또한, 상기 동작들을 위한 데이터(DATA)가 메모리 컨트롤러(200)와 메모리 장치들(100) 사이에서 송수신 될 수 있다. 메모리 컨트롤러(200)는 호스트(300)로부터 데이터 동작 요청 셋(REQ_SET) 및 전력 예산(PB)을 수신할 수 있다. 데이터 동작 요청 셋(REQ_SET)은 메모리 컨트롤러(200)가 제어하는 메모리 장치들(100)의 데이터 동작에 대한 요청들을 포함하는 셋(SET)일 수 있으며, 전력 예산(PB)는 호스트(300)가 메모리 시스템(400)에 할당한 최대 전력 사용량을 나타낼 수 있다.
메모리 컨트롤러(200)는 메모리 동작 컨트롤러(220)를 포함할 수 있다. 메모리 컨트롤러(200)가 메모리 장치들(100)의 프로그램, 독출 및 소거 동작을 포함하는 데이터 동작을 제어하는 경우, 메모리 동작 컨트롤러(220)는 호스트(300)로부터 수신한 데이터 동작 요청 셋(REQ_SET) 및 전력 예산(PB)을 기초로 데이터 동작의 데이터 동작 시간을 결정할 수 있다. 예를 들어, 데이터 동작 요청 셋(REQ_SET)이 복수의 메모리 다이들(120_1~120_n)에 대한 복수의 데이터 동작 요청을 포함하는 경우, 메모리 동작 컨트롤러(220)는 복수의 메모리 다이들(120_1~120_n)에 의해 수행되는 데이터 동작들에 의한 전력 소모가 전력 예산(PB) 내에서 이루어지도록 데이터 동작 시간을 제어할 수 있다. 메모리 컨트롤러(200)에 관한 보다 자세한 설명은 도 2를 참조해 설명될 것이고, 메모리 동작 컨트롤러(220)에 관한 보다 자세한 설명은 도 5를 참조하여 설명될 수 있다.
호스트(300)는 메모리 컨트롤러(200)로 복수의 데이터 동작 요청들을 포함하는 데이터 동작 요청 셋(REQ_SET), 어드레스(ADDR) 및 전력 예산(PB)를 송신할 수 있으며, 메모리 컨트롤러(200)와 데이터(DATA)를 주고 받을 수 있다. 예시적으로, 호스트(300)는 메모리 컨트롤러(200)와 USB(Universal Serial Bus) 프로토콜, MMC(MultiMedia Card) 프로토콜, PCI(Peripheral Component Interconnection) 프로토콜, PCI-E(PCI-Express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI(Small Computer Small Interface) 프로토콜, ESDI(Enhanced Small Disk Interface) 프로토콜, IDE(Integrated Drive Electronics) 프로토콜, MIPI(Mobile Industry Processor Interface) 프로토콜, UFS(Universal Flash Storage) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나에 기반하여 데이터를 교환할 수 있다.
호스트(300)는 전력 예산 관리부(320)를 포함할 수 있다. 호스트(300)는 사용자 시스템(10)에서 사용 가능한 전체 전력을 판단할 수 있고, 판단된 전체 전력 중 메모리 시스템(400)에 할당할 수 있는 전력량을 결정할 수 있다. 전력 예산 관리부(320)는 메모리 시스템(400)에 할당한 전력 예산(PB)을 메모리 컨트롤러(200)에 전달할 수 있다. 호스트(300)가 전달하는 전력 예산(PB)은 메모리 시스템(400)이 사용할 수 있는 최대 전력 값일 수 있으며, 전력 예산(PB)은 메모리 장치들(100)에서 허용할 수 있는 최대 전류 값 또는 최대 전압 값일 수도 있다. 전력 예산(PB)은 별도의 데이터 라인을 통해 메모리 컨트롤러(200)에 제공될 수 있으며, 이에 제한되는 것은 아니고, 예를 들어, 데이터 동작 요청 셋(REQ_SET)과 함께 제공되거나 데이터(DATA)와 함께 제공될 수 있다.
본 개시의 예시적 실시예에 따르면, 메모리 컨트롤러(200)는 호스트(300)로부터 수신한 전력 예산(PB) 및 동시에 동작하는 메모리 다이의 수에 기초하여 메모리 다이에서 수행되는 데이터 동작의 데이터 동작 시간을 가변적으로 결정할 수 있다. 메모리 컨트롤러(200)는 데이터 동작 시간을 가변적으로 결정함으로써 정해진 전력 예산(PB) 범위 내에서 더욱 많은 메모리 다이들이 동시에 데이터 동작을 수행하도록 제어할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러(200)를 나타낸다. 메모리 컨트롤러(200)는 메모리 동작 컨트롤러(220), 워킹 메모리(240), 프로세싱부(260), 호스트 인터페이스(280) 및 메모리 인터페이스(290)를 포함할 수 있고, 상기 구성들은 버스(270)를 통해 각종 데이터 및/또는 신호를 주고 받을 수 있다. 메모리 컨트롤러(200)에 관한 도 1과 중복되는 설명은 생략한다.
메모리 동작 컨트롤러(220)는 메모리 컨트롤러(200)의 제어에 따라 메모리 장치들에서 수행되는 데이터 동작들의 데이터 동작 시간을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)가 메모리 장치들의 프로그램, 독출 및 소거 동작을 포함하는 데이터 동작을 제어하는 경우, 메모리 동작 컨트롤러(220)는 호스트로부터 수신한 데이터 동작 요청 셋(REQ_SET) 및 전력 예산(PB)을 기초로 데이터 동작의 데이터 동작 시간을 결정할 수 있다. 예를 들어, 일정한 전력 예산(PB) 하에, 데이터 동작 요청 셋(REQ_SET)에 의해 동시간에 요구되는 데이터 동작의 개수가 많을수록 메모리 동작 컨트롤러(220)는 데이터 동작 시간을 길게 결정할 수 있다. 메모리 동작 컨트롤러(220)에 관한 보다 자세한 설명은 도 5를 참조하여 설명될 수 있다.
프로세싱부(260)는 중앙 처리 장치(CPU; Central Processing Unit) 혹은 마이크로프로세서(MCU;Micro-Processing Unit)를 포함할 수 있다. 프로세싱부(260)는 메모리 컨트롤러(200)의 전체적인 동작을 제어할 수 있다. 프로세싱부(260)는 메모리 컨트롤러(200)를 제어하기 위한 펌웨어(firmware)를 구동할 수 있고, 펌웨어는 워킹 메모리(240)에 로딩되어 구동될 수 있다.
호스트 인터페이스(280)는 호스트와 메모리 컨트롤러(200) 사이의 인터페이스를 제공할 수 있다. 호스트와 메모리 컨트롤러(200)는 다양한 표준 인터페이스들(standardized interfaces) 중 하나를 통해 데이터를 주고 받을 수 있다. 혹은, 호스트와 메모리 컨트롤러(200)는 다양한 표준 인터페이스들 중 복수의 인터페이스들을 통해 데이터를 주고받을 수 있다. 호스트와 메모리 컨트롤러(200)는 호스트 인터페이스(280)를 통해 데이터 동작 요청 셋(REQ_SET), 주소(ADDR) 및 전력 예산(PB)을 수신할 수 있으며, 데이터(DATA)를 주고 받을 수 있다.
메모리 인터페이스(290)는 메모리 장치들과 메모리 컨트롤러(200) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 프로세싱부(260)에 의해 처리된 데이터는 메모리 인터페이스(290)를 통해 메모리 장치들에 저장될 수 있다. 혹은, 메모리 장치들에 저장된 데이터는 메모리 인터페이스(290)를 통해 프로세싱부(260)에 제공될 수 있다. 메모리 장치들과 메모리 컨트롤러(200)는 메모리 인터페이스(290)를 통해 커맨드(CMD) 및 주소(ADDR)를 송신할 수 있으며, 데이터(DATA)를 주고 받을 수 있다.
본 개시의 예시적 실시예에 따르면, 메모리 컨트롤러(200)는 호스트로부터 수신한 전력 예산(PB) 및 동시에 동작하는 메모리 다이의 수에 기초하여 메모리 다이에서 수행되는 데이터 동작의 데이터 동작 시간을 가변적으로 결정할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 데이터 동작 시간을 가변적으로 결정함으로써 정해진 전력 예산(PB) 범위 내에서 더욱 많은 메모리 다이들이 동시에 데이터 동작을 수행하도록 제어할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 데이터 동작 요청 셋(REQ_SET)을 나타낸다. 도 3은 도 1을 함께 참조하여 설명된다.
호스트(300)는 메모리 컨트롤러(200)에 데이터 동작 요청 셋(REQ_SET)을 송신할 수 있다. 데이터 동작 요청 셋(REQ_SET)은 적어도 하나의 데이터 동작 요청들을 포함할 수 있다. 데이터 동작은 데이터 입출력 동작 및 데이터 소거 동작을 총괄적으로 지칭하는 용어일 수 있고, 예를 들어, 데이터 동작은 프로그램 동작, 읽기 동작 및 소거 동작을 포함할 수 있다. 메모리 컨트롤러(200)는 데이터 동작 요청 셋(REQ_SET)을 디코딩 할 수 있고, 디코딩 된 데이터 동작 요청들을 기초로 메모리 장치들(100)에 커맨드 신호(CMD)를 송신하여 데이터 동작을 수행할 수 있다.
데이터 동작 요청 셋(REQ_SET)은 제1 비휘발성 메모리 다이(120_1)에 데이터를 프로그램 하라는 요청(PGM(NVM_1)), 제2 비휘발성 메모리 다이(120_2)에 데이터를 프로그램 하라는 요청(PGM(NVM_2)), 제3 비휘발성 메모리 다이(120_3)에 데이터를 프로그램 하라는 요청(PGM(NVM_3)), 제1 비휘발성 메모리 다이(120_1)로부터 데이터를 읽으라는 요청(READ(NVM_1)), 제2 비휘발성 메모리 다이(120_2)로부터 데이터를 읽으라는 요청(READ(NVM_2)), 제3 비휘발성 메모리 다이(120_3)로부터 데이터를 읽으라는 요청(READ(NVM_3)) 및 제1 비휘발성 메모리 다이(120_1)에 데이터 소거 동작을 수행하라는 요청(ERASE(NVM_1))을 포함할 수 있다.
데이터 동작 요청 셋(REQ_SET)이 포함하는 데이터 동작 요청의 수를 큐 깊이(Queue Depth; QD)라 칭할 수 있다. 본 개시의 예시적 실시예에 따르면, 메모리 컨트롤러(200)는 큐 깊이(QD)에 따라 각각의 데이터 동작의 데이터 동작 시간을 가변적으로 제어할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 시간에 따른 데이터 동작 전류 그래프를 나타낸다. 도 4는 도 1을 함께 참조하여 설명된다.
메모리 컨트롤러(200)는 호스트(300)로부터 수신한 데이터 동작 요청 셋(REQ_SET)에 따라 메모리 장치들(100)의 데이터 동작 수행을 제어할 수 있다. 메모리 컨트롤러(200)는 데이터 동작 수행에 소요되는 데이터 동작 시간을 가변적으로 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 임의의 메모리 다이에 제1 데이터 동작 시간(T_OP_1) 동안 데이터 동작이 수행되도록 제어할 수 있고, 그 때 시간에 따른 메모리 다이의 전류 그래프는 제1 그래프(121)를 나타낼 수 있다. 또한 예를 들어, 메모리 컨트롤러(200)는 임의의 메모리 다이에 제2 데이터 동작 시간(T_OP_2) 동안 데이터 동작이 수행되도록 제어할 수 있고, 그 때 시간에 따른 메모리 다이의 전류 그래프는 제2 그래프(122)를 나타낼 수 있다. 제1 데이터 동작 시간(T_OP_1)은 제2 데이터 동작 시간(T_OP_2)보다 클 수 있다.
제1 그래프(121)는 제1 데이터 동작 시간(T_OP_1) 동안 데이터 동작을 수행하는 메모리 다이의 시간에 따른 전류 그래프를 나타낸다. 데이터 동작을 수행하는 메모리 다이의 전류는 제1 그래프(121) 상의 제1 피크점(123)에서 최대 전류 값을 가질 수 있다. 제1 피크점(123)에서 갖는 최대 전류 값을 제1 피크 전류(I_PEAK_1)라 할 수 있다.
제2 그래프(122)는 제2 데이터 동작 시간(T_OP_2) 동안 데이터 동작을 수행하는 메모리 다이의 시간에 따른 전류 그래프를 나타낸다. 데이터 동작을 수행하는 메모리 다이의 전류는 제2 그래프(122) 상의 제2 피크점(124)에서 최대 전류 값을 가질 수 있다. 제2 피크점(124)에서 갖는 최대 전류 값을 제2 피크 전류(I_PEAK_2)라 할 수 있다.
제1 피크 전류(I_PEAK_1)와 제2 피크 전류(I_PEAK_2)를 비교하면, 제2 피크 전류(I_PEAK_2)는 제1 피크 전류(I_PEAK) 보다 큰 값을 가질 수 있다. 예를 들어, 메모리 다이가 프로그램 동작을 수행하는 경우, 프로그램 시간이 감소할수록 메모리 다이의 피크 전류 값은 증가할 수 있다.
도 4의 그래프를 참조한 설명은 시간에 따른 전류에만 제한된 설명은 아니다. 예를 들어, 메모리 다이가 데이터 동작을 수행하는 경우. 시간에 따른 전압을 그래프를 도시하였을 때, 데이터 동작 시간이 감소하는 경우 피크 전압 값이 증가할 수 있다.
데이터 동작 시간이 증가할수록 메모리 다이에 흐르는 전류 또는 메모리 다이에 가해지는 전압의 피크 값이 작아지기 때문에, 데이터 동작 시간을 가변적으로 제어함으로써 주어진 전력 예산 범위 내에서 복수의 메모리 다이들이 동시에 데이터 동작을 수행하도록 할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 동작 컨트롤러(220)를 나타낸다. 메모리 동작 컨트롤러(220)는 피크 정보 메모리(222) 및 메모리 동작 관리부(224)를 포함할 수 있다. 메모리 동작 컨트롤러(220)에 관한 도 1 및 도 2와 중복되는 설명은 생략한다.
피크 정보 메모리(222)는 피크 정보(PEAK_INFO)를 저장할 수 있으며, 저장된 피크 정보(PEAK_INFO)를 메모리 동작 관리부(224)에 제공할 수 있다. 피크 정보(PEAK_INFO)는 메모리 컨트롤러가 제어하는 메모리 다이들의 피크 전류 또는 피크 전압에 관한 정보를 포함할 수 있다. 예를 들어, 피크 정보(PEAK_INFO)는 메모리 다이들의 데이터 동작 시간에 따른 피크 전류 또는 피크 전압에 관한 정보를 포함할 수 있다. 피크 정보(PEAK_INFO)는 메모리 다이들의 데이터 동작 시간에 따른 피크 전류 또는 피크 전압에 관한 정보를 m개(m은 자연수)의 데이터 동작 시간에 대응되는 피크 전류 또는 피크 전압 값의 정보를 나타내는 데이터 테이블을 포함할 수 있다. 피크 정보 메모리(222)는 별도의 메모리 구성일 수 있지만, 이에 제한되는 것은 아니며, 메모리 컨트롤러 내의 임의의 메모리의 일부로서 피크 정보(PEAK_INFO)를 저장할 수 있는 모든 구성을 포함할 수 있다. 피크 정보 메모리(222) 및 피크 정보(PEAK_INFO)에 관한 보다 자세한 설명은 이하의 도 6을 참조하여 설명될 수 있다.
메모리 동작 관리부(224)는 피크 정보 메모리(222)로부터 피크 정보(PEAK_INFO)를 수신할 수 있고, 메모리 컨트롤러가 호스트로부터 호스트 인터페이스를 통해 수신한 데이터 동작 요청 셋(REQ_SET) 및 전력 예산(PB)을 수신할 수 있다. 메모리 동작 관리부(224)는 수신된 데이터 동작 요청 셋(REQ_SET) 및 전력 예산(PB)를 기초로 메모리 다이들의 데이터 동작 시간을 결정할 수 있고, 결정된 데이터 동작 시간을 기반으로 커맨드 신호(CMD)를 생성할 수 있다. 생성된 커맨드 신호(CMD)는 메모리 인터페이스를 통해 메모리 다이들로 제공될 수 있다. 메모리 동작 관리부(224)는 데이터 동작 요청 셋(REQ_SET)에 포함된 적어도 하나의 데이터 동작 요청을 기초로 메모리 다이들에 의해 수행되는 데이터 동작에 의한 소모 전력의 합이 전력 예산(PB) 이하가 되도록 메모리 다이들의 데이터 동작 시간을 가변적으로 결정할 수 있다. 예를 들어, 전력 예산(PB)이 메모리 시스템에 허용 가능한 최대 피크 전류 값으로 제공되는 경우, 메모리 동작 관리부(224)는 데이터 동작의 수행에 따른 메모리 다이들의 피크 전류의 합이 전력 예산(PB) 이하가 되도록 메모리 다이들의 데이터 동작 시간을 결정할 수 있다. 예를 들어, 메모리 동작 관리부(224)는 데이터 요청 셋(REQ_SET)에 기초하여 동시에 데이터 동작을 수행하는 메모리 다이의 수를 결정할 수 있고, 동시 동작 메모리 다이 수가 많을수록 데이터 동작 시간을 길게 결정하여 피크 전류의 합이 예산 전력(PB) 이하가 되도록 할 수 있다. 메모리 동작 관리부(224)는 결정된 데이터 동작 시간을 기초로 가변적인 커맨드 신호(CMD)를 생성할 수 있다. 메모리 동작 관리부(224)의 동작에 관한 보다 자세한 설명은 이하의 도 9a 내지 9c, 도 11 및 도 13을 참조하여 설명될 수 있다.
본 개시의 예시적 실시예에 따르면, 메모리 동작 컨트롤러(220)는 메모리 다이들에 의한 소모 전력의 합이 전력 예산 이하가 되도록 메모리 다이들의 데이터 동작 시간을 결정함으로써 메모리 다이들의 데이터 동작을 보다 효율적으로 제어할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 피크 정보 메모리(222)를 나타낸다. 피크 정보 메모리(222)에 관한 도 5와 중복되는 설명은 생략한다.
피크 정보 메모리(222)는 메모리 동작 컨트롤러 내의 메모리 동작 관리부에 제공하기 위한 피크 정보(PEAK_INFO)를 저장할 수 있다. 피크 정보(PEAK_INFO)는 메모리 다이들의 데이터 동작 시간에 따른 피크 전류 또는 피크 전압 값을 나타낼 수 있다. 예를 들어, 피크 정보는 m개(m은 자연수)의 데이터 동작 시간에 대응되는 피크 전류 값에 관한 정보인 데이터 테이블을 포함할 수 있다.
예를 들어, 피크 정보(PEAK_INFO)는 m개(m은 자연수)의 프로그램 시간들에 대응 되는 피크 전류 값에 관한 정보인 데이터 테이블을 포함할 수 있다. 메모리 다이가 제1 프로그램 시간(tPROG_1) 동안 프로그램 동작을 수행하는 경우, 메모리 다이에 제1 피크 전류(I_PEAK_1)가 흐를 수 있다. 마찬가지의 방식으로 메모리 다이가 제2 내지 제m 프로그램 시간(tPROG_2~tPROG_m) 동안 프로그램 동작을 수행하는 경우, 메모리 다이에는 각각 제2 내지 제m 피크 전류(I_PEAK_2~I_PEAK_m)가 흐를 수 있다.
피크 정보 메모리(222)는 이와 같이 저장된 피크 정보(PEAK_INFO)를 메모리 동작 컨트롤러 내의 메모리 동작 관리부에 제공할 수 있고, 메모리 동작 관리부는 수신된 피크 정보(PEAK_INFO)를 기초로 메모리 다이들의 데이터 동작 시간을 가변적으로 제어할 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 커맨드 신호(CMD)를 나타낸다. 도 7은 도 6을 함께 참조하여 설명된다. 도7을 참조하여 프로그램 동작에 대한 커맨드 신호(CMD)에 대해 설명하겠지만, 이는 설명의 편의를 위한 예시일 뿐이다. 예를 들어, 도 7을 참조한 설명은 데이터 독출 동작 및 소거 동작과 같은 다른 데이터 동작에도 적용될 수 있을 것이다.
도 6의 피크 정보(PEAK_INFO)를 참고하면, 메모리 다이는 제1 프로그램 시간(tPROG_1) 동안 프로그램 동작을 수행할 수 있다. 이와 같이, 제1 프로그램 시간(tPROG_1) 동안 수행하는 프로그램 동작을 제1 프로그램 동작이라 칭한다. 마찬가지로, 제2 프로그램 시간(tPROG_2) 동안 수행하는 프로그램 동작을 제2 프로그램 동작이라, 제3 프로그램 시간(tPROG_3) 동안 수행하는 프로그램 동작을 제3 프로그램 동작이라 칭한다. 메모리 다이가 제1 프로그램 동작, 제2 프로그램 동작 또는 제3 프로그램 동작을 수행하도록 메모리 컨트롤러가 메모리 다이에 송신하는 커맨드 신호들은 상이할 수 있다.
예를 들어, 메모리 다이가 제1 프로그램 동작을 수행하도록 메모리 컨트롤러가 메모리 다이에 송신하는 커맨드 신호(CMD)는 제1 프로그램 동작 커맨드 신호(PGM_1)일 수 있다. 제1 프로그램 동작 커맨드 신호(PGM_1)는 제1 프로그램 동작을 나타내는 제1 모드 신호(MODE_1)와 프로그램 커맨드 신호(PGM)가 결합된 신호일 수 있다. 하지만 이에 제한되는 것은 아니며, 제1 모드 신호(MODE_1)는 프로그램 커맨드 신호 뒤에 결합될 수도 있고, 프로그램 커맨드 신호 사이에 포함될 수도 있다. 메모리 다이는 제1 프로그램 동작 커맨드 신호(PGM_1)를 수신한 경우, 제1 프로그램 동작 커맨드 신호(PGM_1)에 포함된 제1 모드 신호(MODE_1)를 기초로 제1 프로그램 시간(tPROG_1) 동안 프로그램 동작을 수행할 수 있다.
마찬가지로 제2 프로그램 동작 커맨드 신호(PGM_2)는 제2 프로그램 동작을 나타내는 제2 모드 신호(MODE_2)와 프로그램 커맨드 신호(PGM)가 결합된 신호일 수 있고, 제3 프로그램 동작 커맨드 신호(PGM_3)는 제3 프로그램 동작을 나타내는 제3 모드 신호(MODE_3)와 프로그램 커맨드 신호(PGM)이 결합된 신호일 수 있다. 메모리 다이는 수신된 프로그램 신호에 결합된 모드 신호를 기초로 프로그램 시간을 가변적으로 적용하여 프로그램 동작을 수행할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 컨트롤러의 메모리 장치 제어 방법 순서도를 나타낸다. 도 8은 도 1을 함께 참조하여 설명될 수 있다.
메모리 컨트롤러(200)는 메모리 컨트롤러(200)의 외부로부터 적어도 하나의 데이터 동작 요청 및 전력 예산(PB)을 수신할 수 있다(S120). 예를 들어, 메모리 컨트롤러(200)는 메모리 컨트롤러(200) 외부의 호스트(300)로부터 적어도 하나의 데이터 동작 요청을 포함하는 데이터 동작 요청 셋(REQ_SET) 및 전력 예산(PB)을 수신할 수 있다.
메모리 컨트롤러(200)는 적어도 하나의 데이터 동작 요청에 따른 적어도 하나의 데이터 동작에 의한 소모 전력이 전력 예산(PB) 이하가 되도록 복수의 메모리 다이들의 데이터 동작 시간을 결정할 수 있다(S140). 전력 예산(PB)은 허용 가능한 최대 피크 전류 또는 최대 피크 전압 값을 나타낼 수 있고, 이 때 메모리 컨트롤러(200)는 데이터 동작을 수행하는 메모리 다이들 각각의 피크 전류 또는 피크 전압 값의 합이 전력 예산(PB) 이하가 되도록 데이터 동작 시간을 결정할 수 있다.
메모리 컨트롤러(200)는 수신된 적어도 하나의 데이터 동작 요청에 따라 복수의 메모리 다이들 중 동시에 동작하는 메모리 다이들을 결정할 수 있고, 전력 예산(PB) 내에서 동시에 동작하는 메모리 다이들이 동작할 수 있는 최소 동작 시간을 데이터 동작 시간으로 결정할 수 있다. 적어도 하나의 데이터 동작 요청의 개수를 나타내는 큐 깊이가 증가할수록, 동시에 동작하는 메모리 다이들이 많아지기 때문에 메모리 컨트롤러(200)는 데이터 동작 시간을 작게 결정할 수 있다. 상기 언급된 데이터 동작은 프로그램 동작, 독출 동작 및 소거 동작 등을 포함할 수 있다.
메모리 컨트롤러(200)는 결정된 데이터 동작 시간을 기초로 복수의 메모리 다이들을 제어할 수 있다(S160). 예를 들어, 메모리 컨트롤러(200)는 결정된 데이터 동작 시간에 대응하는 커맨드 신호를 복수의 메모리 다이들에 송신하여 메모리 다이들을 제어할 수 있다. 결정된 데이터 동작 시간이 상이한 경우, 메모리 컨트롤러(200)가 송신하는 커맨드 신호도 상이할 수 있다. 예를 들어, 데이터 동작 시간이 상이한 경우, 커맨드 신호에 포함된 모드 신호가 상이할 수 있다. 커맨드 신호에 관한 보다 자세한 설명은 도 7을 참조하여 설명될 수 있다.
도 9a는 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다. 데이터 정보 요청 셋(REQ_SET), 메모리 동작 관리부(224a), 피크 정보 메모리(222a) 및 커맨드 신호(CMD)에 관한 도 5 내지 7과 중복되는 설명은 생략한다. 도 9a에 개시된, 전력 예산(PB) 값, 피크 정보(PEAK_INFO) 및 데이터 요청 셋(REQ_SET)은 데이터 동작 시간을 결정하는 메모리 컨트롤러의 동작을 설명하기 위해 편의상 설정한 수치 값 및 케이스들일 뿐이며, 본 개시의 기술적 사상이 도 9a에 제시된 수치 및 케이스에 한정되는 것은 아님을 밝힌다.
피크 정보 메모리(222a)는 제1 내지 제3 프로그램 시간(tPROG_1~tPROG_3)에 대응되는 제1 내지 제3 피크 전류(I_PEAK_1~I_PEAK_3) 값을 피크 정보(PEAK_INFO)로서 저장할 수 있다. 메모리 동작 관리부(224a)는 피크 정보 메모리(222a)로부터 상기 피크 정보(PEAK_INFO)를 수신할 수 있고, 메모리 동작 관리부(224a)가 수신하는 전력 예산(PB)은 메모리 시스템에서 허용 가능한 최대 피크 전류 값으로서 200mA를 나타낼 수 있다. 메모리 동작 관리부(224a)가 수신하는 데이터 동작 요청 셋(REQ_SET)에 따라 메모리 동작 관리부(224a)는 데이터 동작 시간을 상이하게 결정할 수 있으며, 결정된 데이터 동작 시간을 기초로 상이한 커맨드 신호(CMD)를 생성할 수 있다.
제1 케이스(CASE 1)에서, 데이터 동작 요청 셋(REQ_SET)은 제1 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_1)) 및 제2 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_2))을 포함할 수 있다. 메모리 동작 관리부(224a)는 동시에 프로그램 해야 하는 메모리 다이의 수를 2개로 결정할 수 있다. 메모리 동작 관리부(224a)는 주어진 전력 예산(PB) 200mA 내에서 2개의 메모리 다이들이 프로그램 동작을 수행할 수 있는 최소 동작 시간을 데이터 동작 시간으로 결정할 수 있다. 데이터 동작 요청 셋(REQ_SET)에 따른 데이터 동작이 프로그램 동작이므로, 데이터 동작 시간은 프로그램 시간일 수 있다. 예를 들어, 2개의 비휘발성 메모리 다이 모두에 제1 피크 전류(I_PEAK_1)인 100mA의 피크 전류를 허용한다고 하더라도, 그 피크 전류의 합이 전력 예산(PB)인 200mA 이하이므로 비휘발성 메모리 다이들의 프로그램 시간을 모두 제1 프로그램 시간(tPROG_1)인 300us으로 결정할 수 있다. 메모리 동작 관리부(224a)는 결정된 프로그램 시간을 기초로 제1 비휘발성 메모리 다이에 제1 프로그램 동작 커맨드 신호(PGM_1)를 송신할 수 있고, 제2 비휘발성 메모리 다이에 제1 프로그램 동작 커맨드 신호(PGM_1)를 송신할 수 있다. 여기서, 제1 프로그램 동작 커맨드 신호(PGM_1)는 메모리 다이가 제1 프로그램 시간(tPROG_1) 동안 프로그램 동작을 수행하도록 제어하는 커맨드 신호일수 있다.
제2 케이스(CASE 2)에서, 데이터 동작 요청 셋(REQ_SET)은 제1 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_1)), 제2 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_2)) 및 제3 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_3))을 포함할 수 있다. 메모리 동작 관리부(224a)는 동시에 프로그램 해야 하는 메모리 다이의 수를 3개로 결정할 수 있다. 메모리 동작 관리부(224a)는 주어진 전력 예산(PB) 200mA 내에서 3개의 메모리 다이들이 프로그램 동작을 수행할 수 있는 최소 동작 시간을 데이터 동작 시간으로 결정할 수 있다. 데이터 동작 요청 셋(REQ_SET)에 따른 데이터 동작이 프로그램 동작이므로, 데이터 동작 시간은 프로그램 시간일 수 있다. 예를 들어, 3개의 비휘발성 메모리 다이 모두에 제1 피크 전류(I_PEAK_1)를 허용할 순 없지만, 제2 피크 전류(I_PEAK_2)인 65mA의 피크 전류를 허용하는 경우, 그 피크 전류의 합이 전력 예산(PB)인 200mA 이하이므로 비휘발성 메모리 다이들의 프로그램 시간을 모두 제2 프로그램 시간(tPROG_2)인 400us으로 결정할 수 있다. 메모리 동작 관리부(224a)는 결정된 프로그램 시간을 기초로 제1 비휘발성 메모리 다이에 제2 프로그램 동작 커맨드 신호(PGM_2)를 송신할 수 있고, 제2 비휘발성 메모리 다이에 제2 프로그램 동작 커맨드 신호(PGM_2)를 송신할 수 있고, 제3 비휘발성 메모리 다이에 제2 프로그램 동작 커맨드 신호(PGM_2)를 송신할 수 있다. 여기서, 제2 프로그램 동작 커맨드 신호(PGM_2)는 메모리 다이가 제2 프로그램 시간(tPROG_2) 동안 프로그램 동작을 수행하도록 제어하는 커맨드 신호일수 있다.
제3 케이스(CASE 3)에서, 데이터 동작 요청 셋(REQ_SET)은 제1 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_1)), 제2 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_2)), 제3 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_3)) 및 제4 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_4))을 포함할 수 있다. 메모리 동작 관리부(224a)는 동시에 프로그램 해야 하는 메모리 다이의 수를 4개로 결정할 수 있다. 메모리 동작 관리부(224a)는 주어진 전력 예산(PB) 200mA 내에서 4개의 메모리 다이들이 프로그램 동작을 수행할 수 있는 최소 동작 시간을 데이터 동작 시간으로 결정할 수 있다. 데이터 동작 요청 셋(REQ_SET)에 따른 데이터 동작이 프로그램 동작이므로, 데이터 동작 시간은 프로그램 시간일 수 있다. 예를 들어, 4개의 비휘발성 메모리 다이 모두에 제2 피크 전류(I_PEAK_2)를 허용할 순 없지만, 제3 피크 전류(I_PEAK_3)인 50mA의 피크 전류를 허용하는 경우, 그 피크 전류의 합이 전력 예산(PB)인 200mA 이하이므로 비휘발성 메모리 다이들의 프로그램 시간을 모두 제3 프로그램 시간(tPROG_3)인 500us으로 결정할 수 있다. 메모리 동작 관리부(224a)는 결정된 프로그램 시간을 기초로 제1 비휘발성 메모리 다이에 제3 프로그램 동작 커맨드 신호(PGM_3)를 송신할 수 있고, 제2 비휘발성 메모리 다이에 제3 프로그램 동작 커맨드 신호(PGM_3)를 송신할 수 있고, 제3 비휘발성 메모리 다이에 제3 프로그램 동작 커맨드 신호(PGM_3)를 송신할 수 있고, 제4 비휘발성 메모리 다이에 제4 프로그램 동작 커맨드 신호(PGM_4)를 송신할 수 있다. 여기서, 제3 프로그램 동작 커맨드 신호(PGM_3)는 메모리 다이가 제3 프로그램 시간(tPROG_3) 동안 프로그램 동작을 수행하도록 제어하는 커맨드 신호일수 있다.
최소 성능을 보장하기 위한 추가적인 실시예로서, 메모리 동작 관리부(224a)는 제3 케이스(CASE 3)와 같이 제3 프로그램 시간(tPROG_3)로 동시에 4개의 메모리 다이들을 프로그램 하는 경우의 전체 성능이 제1 프로그램 시간(tPROG_1)로 동시에 2개의 메모리 다이들 만을 프로그램 하는 경우의 전체 성능에 비해 개선된 성능을 갖는지 비교한 뒤, 개선된 성능을 갖는 경우에 제3 프로그램 시간(tPROG_3)을 데이터 동작 시간으로 결정할 수 있다.
본 개시의 예시적 실시예에 따르면, 메모리 컨트롤러는 동시에 동작하는 메모리 다이의 수에 따라 데이터 동작 시간을 가변적으로 제어함으로써 주어진 전력 예산(PB) 범위 내에서 메모리 다이들의 데이터 동작들을 효율적으로 제어할 수 있다.
도 9b는 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다. 데이터 정보 요청 셋(REQ_SET), 메모리 동작 관리부(224b), 피크 정보 메모리(222b) 및 커맨드 신호(CMD)에 관한 도 5 내지 7과 중복되는 설명은 생략한다. 도 9b에 개시된, 전력 예산(PB) 값, 피크 정보(PEAK_INFO) 및 데이터 요청 셋(REQ_SET)은 데이터 동작 시간을 결정하는 메모리 컨트롤러의 동작을 설명하기 위해 편의상 설정한 수치 값 및 케이스들일 뿐이며, 본 개시의 기술적 사상이 도 9b에 제시된 수치 및 케이스에 한정되는 것은 아님을 밝힌다.
피크 정보 메모리(222b)는 제1 내지 제3 프로그램 시간(tPROG_1~tPROG_3)에 대응되는 제1 내지 제3 피크 전류(I_PEAK_1~I_PEAK_3) 값을 피크 정보(PEAK_INFO)로서 저장할 수 있다. 메모리 동작 관리부(224b)는 피크 정보 메모리(222b)로부터 상기 피크 정보(PEAK_INFO)를 수신할 수 있고, 메모리 동작 관리부(224b)가 수신하는 전력 예산(PB)은 메모리 시스템에서 허용 가능한 최대 피크 전류 값으로서 200mA를 나타낼 수 있다. 메모리 동작 관리부(224b)는 현재 동작 정보(CURRENT_INFO)를 고려하여 데이터 동작 시간을 결정할 수 있으며, 결정된 데이터 동작 시간을 기초로 상이한 커맨드 신호(CMD)를 생성할 수 있다.
예를 들어, 메모리 동작 관리부(224b)는 현재 제3 비휘발성 메모리 다이에 제3 프로그램 동작이 수행되고 있다는 현재 동작 정보(CURRENT_INFO)를 고려하여 데이터 동작 시간을 결정할 수 있다. 데이터 동작 요청 셋(REQ_SET)은 제1 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_1)) 및 제2 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_2))을 포함할 수 있다. 메모리 동작 관리부(224b)는 주어진 전력 예산(PB)인 200mA에서 현재 동작 중인 제3 비휘발성 메모리 다이에 의한 제3 피크 전류(I_PEAK_3)인 50mA를 제외한 150mA의 범위에서 제1 비휘발성 메모리 다이 및 제2 비휘발성 메모리 다이에 대한 프로그램 시간을 결정할 수 있다. 예를 들어, 2개의 비휘발성 메모리 다이 모두에 제1 피크 전류(I_PEAK_1)를 허용할 순 없지만, 제2 피크 전류(I_PEAK_2)인 65mA의 피크 전류를 허용하는 경우, 그 피크 전류의 합이 150mA 이하이므로 비휘발성 메모리 다이들의 프로그램 시간을 제2 프로그램 시간(tPROG_2)인 400us으로 결정할 수 있다. 메모리 동작 관리부(224a)는 결정된 프로그램 시간을 기초로 제1 비휘발성 메모리 다이에 제2 프로그램 동작 커맨드 신호(PGM_2)를 송신할 수 있고, 제2 비휘발성 메모리 다이에 제2 프로그램 동작 커맨드 신호(PGM_2)를 송신할 수 있다.
도 9c는 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다. 데이터 정보 요청 셋(REQ_SET), 메모리 동작 관리부(224c), 피크 정보 메모리(222c) 및 커맨드 신호(CMD)에 관한 도 5 내지 7과 중복되는 설명은 생략한다. 도 9c에 개시된, 전력 예산(PB) 값, 피크 정보(PEAK_INFO) 및 데이터 요청 셋(REQ_SET)은 데이터 동작 시간을 결정하는 메모리 컨트롤러의 동작을 설명하기 위해 편의상 설정한 수치 값 및 케이스들일 뿐이며, 본 개시의 기술적 사상이 도 9c에 제시된 수치 및 케이스에 한정되는 것은 아님을 밝힌다.
피크 정보 메모리(222c)는 제1 내지 제3 프로그램 시간(tPROG_1~tPROG_3)에 대응되는 제1 내지 제3 피크 전류(I_PEAK_1~I_PEAK_3) 값을 피크 정보(PEAK_INFO)로서 저장할 수 있다. 메모리 동작 관리부(224c)는 피크 정보 메모리(222c)로부터 상기 피크 정보(PEAK_INFO)를 수신할 수 있고, 메모리 동작 관리부(224c)가 수신하는 전력 예산(PB)은 메모리 시스템에서 허용 가능한 최대 피크 전류 값으로서 200mA를 나타낼 수 있다. 메모리 동작 관리부(224b)는 수신된 데이터 동작 요청 셋(REQ_SET)의 큐 깊이(Queue Depth)를 고려하여 데이터 동작 시간을 결정할 수 있으며, 결정된 데이터 동작 시간을 기초로 상이한 커맨드 신호(CMD)를 생성할 수 있다.
메모리 동작 관리부(224c)는 수신된 데이터 동작 요청 셋(REQ_SET)에 포함된 데이터 동작 요청의 개수를 나타내는 큐 깊이가 임계 요청 수 이상인 경우, 최대 데이터 동작 시간을 데이터 동작 시간으로 결정할 수 있다. 도 9c의 데이터 동작 요청 셋(REQ_SET)에 포함된 데이터 동작 요청의 개수는 임계 요청 수 이상인 것으로 가정한다. 예를 들어, 도 9c와 같은 데이터 동작 요청 셋(REQ_SET)이 수신된 경우, 메모리 동작 관리부(224c)는 최대 프로그램 시간인 제3 프로그램 시간(tPROG_3)을 제1 비휘발성 메모리 다이 및 제2 비휘발성 메모리 다이의 프로그램 시간으로 결정할 수 있다. 메모리 동작 관리부(224c)는 남는 전력 예산 범위 내에서 다음 데이터 동작 요청에 대응하는 커맨드 신호를 송신할 수 있다. 결과적으로, 메모리 동작 관리부(224c)는 제1 비휘발성 메모리 다이에 제3 프로그램 동작 커맨드 신호(PGM_3)를 송신할 수 있고, 제2 비휘발성 메모리 다이에 제3 프로그램 동작 커맨드 신호(PGM_3)를 송신할 수 있고, 제1 비휘발성 메모리 다이 및 제2 비휘발성 메모리 다이에 독출 동작 커맨드 신호(READ)를 송신할 수 있다.
본 개시의 예시적 실시예에 따르면, 메모리 컨트롤러는 수신된 데이터 동작 요청의 개수가 임계 요청 수 이상인 경우, 데이터 동작 시간을 큰 값으로 결정함으로써 동시에 많인 데이터 동작 요청에 대한 커맨드 신호를 송신할 수 있다.
도 10은 본 개시의 도 9c의 예시적 실시예에 따른 데이터 동작 시간 결정 순서도를 나타낸다. 메모리 컨트롤러는 수신된 데이터 동작 요청 셋에 포함된 데이터 동작 요청의 개수를 나타내는 큐 깊이(QD)를 판단할 수 있다.
메모리 컨트롤러는 큐 깊이(QD)와 임계 요청 수(THRESHOLD)와 비교할 수 있다(S142).
큐 깊이(QD)가 임계 요청 수(THRESHOLD) 보다 작은 경우, 메모리 컨트롤러는 도 9a를 참조하여 설명된 방식과 같이 전력 예산 범위 내에서 복수의 메모리 다이들의 데이터 동작 시간을 결정할 수 있다(S144).
큐 깊이(QD)가 임계 요청 수(THRESHOLD) 보다 크거나 같은 경우, 메모리 컨트롤러는 가능한 최대 데이터 동작 시간을 데이터 동작 시간으로 결정할 수 있다(S146). 데이터 동작 시간을 큰 값으로 결정함으로써, 메모리 다이들이 동시에 많은 데이터 동작을 수행하도록 제어할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다. 데이터 정보 요청 셋(REQ_SET), 메모리 동작 관리부(224), 피크 정보 메모리(222) 및 커맨드 신호(CMD)에 관한 도 5 내지 7과 중복되는 설명은 생략한다. 도 11에 개시된, 전력 예산(PB) 값, 피크 정보(PEAK_INFO) 및 데이터 요청 셋(REQ_SET)은 데이터 동작 시간을 결정하는 메모리 컨트롤러의 동작을 설명하기 위해 편의상 설정한 수치 값 및 케이스들일 뿐이며, 본 개시의 기술적 사상이 도 11에 제시된 수치 및 케이스에 한정되는 것은 아님을 밝힌다.
피크 정보 메모리(222)는 제1 내지 제3 프로그램 시간(tPROG_1~tPROG_3)에 대응되는 제1 내지 제3 피크 전류(I_PEAK_1~I_PEAK_3) 값을 피크 정보(PEAK_INFO)로서 저장할 수 있다. 메모리 동작 관리부(224)는 피크 정보 메모리(222)로부터 상기 피크 정보(PEAK_INFO)를 수신할 수 있고, 메모리 동작 관리부(224)가 수신하는 전력 예산(PB)은 메모리 시스템에서 허용 가능한 최대 피크 전류 값으로서 265mA를 나타낼 수 있다. 메모리 동작 관리부(224)는 수신된 데이터 동작 요청에 기초하여 주어진 전력 예산(PB) 내에서 메모리 다이들의 데이터 동작을 제어하기 위해 메모리 다이들의 데이터 동작 시간을 가변적으로 제어할 수 있다.
예를 들어, 데이터 동작 요청 셋(REQ_SET)은 제1 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_1)), 제2 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_2)) 및 제3 비휘발성 메모리 다이에 프로그램 하라는 요청(PGM(NVM_3))을 포함할 수 있다. 메모리 동작 관리부(224)는 동시에 프로그램 해야 하는 메모리 다이의 수를 3개로 결정할 수 있다. 메모리 동작 관리부(224)는 주어진 전력 예산(PB) 200mA 내에서 3개의 메모리 다이들이 프로그램 동작을 수행할 수 있는 최소 동작 시간을 데이터 동작 시간으로 결정할 수 있다. 예를 들어, 메모리 동작 관리부(224)는 주어진 전력 예산(PB)을 효율적으로 활용하기 위해 3개의 메모리 다이들의 데이터 동작 시간을 각각 다르게 결정할 수 있다.
메모리 동작 관리부(224)는 전력 예산(PB)인 265mA를 동시에 프로그램 해야 하는 메모리 다이의 수인 3으로 나눈 값인 88.1mA보다 작으면서 가장 큰 피크 전류인 제2 피크 전류(I_PEAK_2)에 대응하는 제2 프로그램 시간(tPROG_2)을 제1 비휘발성 메모리 다이의 프로그램 시간으로 결정할 수 있다. 이후, 메모리 동작 관리부(224)는 제1 비휘발성 메모리 다이를 제외한 2개의 메모리 다이들을 전력 예산(PB)에서 제1 비휘발성 메모리 다이에 의한 피크 전류인 제2 피크 전류(I_PEAK)를 뺀 200mA 범위에서 제어할 수 있다. 마찬가지의 방식으로, 메모리 동작 관리부(224)는 남은 전력 예산인 200mA를 메모리 다이의 수인 2로 나눈 값보다 작거나 같으면서 가장 큰 피크 전류인 제1 피크 전류(I_PEAK_1)에 대응하는 제1 프로그램 시간(tPROG_1)을 제2 비휘발성 메모리 다이의 프로그램 시간으로 결정할 수 있고, 나머지 제3 비휘발성 메모리 다이의 프로그램 시간은 제1 프로그램 시간(tPROG_1)으로 결정할 수 있다. 따라서 메모리 동작 관리부(224)는 제1 비휘발성 메모리 다이에 제2 프로그램 동작 커맨드 신호(PGM_2)를 송신할 수 있고, 제2 비휘발성 메모리 다이 및 제3 비휘발성 메모리 다이에 제1 프로그램 동작 커맨드 신호(PGM_1)를 송신할 수 있다. 이는 예시적인 데이터 동작 시간 결정 방법일 뿐이고, 메모리 동작 관리부(224)는 다른 예시로서 제2 비휘발성 메모리 다이 또는 제3 비휘발성 메모리 다이의 프로그램 시간을 제2 프로그램 시간(tPROG_2)으로 결정할 수도 있다. 예를 들어, 복수의 메모리 다이들의 데이터 동작 시간을 상이하게 결정하는 경우, 메모리 동작 관리부(224)는 각 메모리 다이에 기입되는 데이터의 양도 또한 고려할 수 있다. 예를 들어, 제1 내지 제3 비휘발성 메모리 다이들 중 제3 비휘발성 메모리 다이에 기입할 데이터의 양이 가장 많은 경우, 제3 비휘발성 메모리 다이의 프로그램 시간을 제2 프로그램 시간(tPROG_2)으로 결정하고, 제1 및 제2 비휘발성 메모리 다이의 프로그램 시간을 제1 프로그램 시간(tPROG_1)으로 결정할 수 있다.
이와 같이 메모리 동작 관리부(224)는 각 메모리 다이들의 데이터 동작 시간을 상이하게 결정함으로써 주어진 전력 예산(PB)을 보다 효율적으로 활용할 수 있다.
도 12는 본 개시의 도 11의 예시적 실시예에 따른 데이터 동작 모드 결정 순서도를 나타낸다.
가장 처음 자연수 i는 1로 초기화 될 수 있다(S220). i는 1 이상 메모리 장치 수 이하의 값을 가질 수 있다. 메모리 장치의 수는 메모리 시스템에 포함된 비휘발성 메모리 다이의 수를 나타낼 수 있다.
메모리 컨트롤러는 현재까지 남은 전력 예산을 남은 장치 수로 나눈 값보다 작은 범위에서, 가장 큰 피크 전류를 갖는 모드를 제i 메모리 다이에 할당할 수 있다(S240). 여기서 '모드'란, 예를 들어, 제1 프로그램 시간으로 동작하는 프로그램 모드를 제1 프로그램 모드라 칭할 수 있고, 제2 프로그램 시간으로 동작하는 프로그램 모드를 제2 프로그램 모드라 칭할 수 있다.
현재 i가 동시에 동작해야 하는 장치 수보다 작은지, 현재 i가 동시에 동작해야 하는 장치 수 이상인지 판단할 수 있다(S260). 현재 i가 장치 수보다 작다는 것은 아직 모든 메모리 다이들의 데이터 동작 시간이 결정되지 않은 것일 수 있고, i가 장치 수 이상이라는 것은 모든 메모리 다이들의 데이터 동작 시간이 결정된 것일 수 있다.
i가 동시에 동작해야 하는 장치 수보다 작은 경우, i는 1 증가할 수 있다(S280). 그 후 남은 전력 예산을 이용해 제i 다이에 모드를 할당하는 단계가 다시 수행될 수 있다.
i가 동시에 동작해야 하는 장치 수 이상인 경우, 데이터 동작 모드의 결정 단계는 끝날 수 있다.
이와 같은 방식에 따라, 메모리 컨트롤러는 주어진 전력 예산 범위 내에서 메모리 다이들의 데이터 동작 시간을 효율적으로 제어할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 장치 제어 동작을 나타낸다. 데이터 정보 요청 셋(REQ_SET), 메모리 동작 관리부(224), 피크 정보 메모리(222) 및 커맨드 신호(CMD)에 관한 도 5 내지 7과 중복되는 설명은 생략한다. 도 13에 개시된, 전력 예산(PB) 값, 피크 정보(PEAK_INFO) 및 데이터 요청 셋(REQ_SET)은 데이터 동작 시간을 결정하는 메모리 컨트롤러의 동작을 설명하기 위해 편의상 설정한 수치 값 및 케이스들일 뿐이며, 본 개시의 기술적 사상이 도 13에 제시된 수치 및 케이스에 한정되는 것은 아님을 밝힌다.
피크 정보 메모리(222)는 제1 내지 제3 프로그램 시간(tPROG_1~tPROG_3)에 대응되는 제1 내지 제3 피크 전류(I_PEAK_1~I_PEAK_3) 값 및 제1 내지 제3 독출 시간(tR_1~tR_3)에 대응되는 제4 내지 제6 피크 전류(I_PEAK_4~I_PEAK_6) 값을 피크 정보(PEAK_INFO)로서 저장할 수 있다. 메모리 동작 관리부(224)는 피크 정보 메모리(222)로부터 상기 피크 정보(PEAK_INFO)를 수신할 수 있고, 메모리 동작 관리부(224)가 수신하는 전력 예산(PB)은 메모리 시스템에서 허용 가능한 최대 피크 전류 값으로서 240mA를 나타낼 수 있다. 메모리 동작 관리부(224)가 수신하는 데이터 동작 요청 셋(REQ_SET)에 따라 메모리 동작 관리부(224)는 데이터 동작 시간을 상이하게 결정할 수 있으며, 결정된 데이터 동작 시간을 기초로 상이한 커맨드 신호(CMD)를 생성할 수 있다. 특히, 제1 내지 제m 데이터 동작에 의한 전력 소모의 합은 전력 예산(PB)을 초과하지만, 제1 내지 제m-1 및 제m+1 내지 제m+k 데이터 동작에 의한 전력 소모의 합은 전력 예산(PB) 이하이고, 제m 데이터 동작과 제m+1 내지 제m+k 데이터 동작의 순서 변경이 메모리 장치에 영향이 없는 경우, 메모리 동작 관리부(224)는 제m 데이터 동작과 제m+1 내지 제m+k 데이터 동작의 순서를 바꿀 수 있다.
예를 들어, 제1 내지 제5 데이터 동작을 제3 프로그램 시간(tPROG_3)으로 수행하는 경우 총 피크 전류의 합은 250mA로 주어진 전력 예산(PB)인 240mA를 초과하지만, 제1 내지 제4 데이터 동작을 제3 프로그램 시간(tPROG_3)으로 수행하고, 제6 내지 제7 데이터 동작을 제3 독출 시간(tR_3)으로 수행하는 경우 총 피크 전류의 합은 240mA로 주어진 전력 예산(PB)인 240mA 이하일 수 있다. 제5 데이터 동작(PGM(NVM_5))과 제6 내지 제7 데이터 동작의 순서 변경이 메모리 장치에 영향이 없는 경우라면, 메모리 동작 관리부(224)는 제5 데이터 동작과 제6 내지 제7 데이터 동작의 순서를 변경할 수 있다. 메모리 동작 관리부(224)는 제1 내지 제4 비휘발성 메모리 다이들에 제3 프로그램 동작 커맨드 신호(PGM_3)를 송신할 수 있고, 제1 내지 제2 비휘발성 메모리 다이들에 제3 독출 동작 커맨드 신호(READ_3)를 송신할 수 있다. 제5 데이터 동작(PGM(NVM_5))은 제7 데이터 동작 이후에 수행될 수 있다.
메모리 동작 관리부(224)는 수신된 데이터 동작 요청 셋(REQ_SET)의 데이터 동작 요청에 대한 순서 변경이 메모리 장치에 영향이 없는 경우, 데이터 동작 요청에 대한 순서를 변경함으로써 주어진 전력 예산(PB)을 보다 효율적으로 관리할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 메모리 동작 컨트롤러(230)를 나타낸다. 메모리 동작 컨트롤러(230)는 피크 정보 메모리(232) 및 메모리 동작 관리부(234)를 포함할 수 있다.
피크 정보 메모리(232)는 피크 정보(PEAK_INFO)를 저장할 수 있으며, 저장된 피크 정보(PEAK_INFO)를 메모리 동작 관리부(234)에 제공할 수 있다. 피크 정보(PEAK_INFO)는 메모리 컨트롤러가 제어하는 메모리 다이들의 피크 전류 또는 피크 전압에 관한 정보를 포함할 수 있다. 예를 들어, 피크 정보(PEAK_INFO)는 메모리 다이들의 데이터 동작 시간에 따른 피크 전류 또는 피크 전압에 관한 정보를 포함할 수 있다. 피크 정보(PEAK_INFO)는 메모리 다이들의 데이터 동작 시간에 따른 피크 전류 또는 피크 전압에 관한 정보를 m개(m은 자연수)의 데이터 동작 시간에 대응되는 피크 전류 또는 피크 전압 값의 정보를 나타내는 데이터 테이블을 포함할 수 있다. 피크 정보 메모리(232)는 별도의 메모리 구성일 수 있지만, 이에 제한되는 것은 아니며, 메모리 컨트롤러 내의 임의의 메모리의 일부로서 피크 정보(PEAK_INFO)를 저장할 수 있는 모든 구성을 포함할 수 있다. 피크 정보 메모리(232) 및 피크 정보(PEAK_INFO)에 관한 보다 자세한 설명은 도 6을 참조하여 설명될 수 있다.
메모리 동작 관리부(234)는 피크 정보 메모리(232)로부터 피크 정보(PEAK_INFO)를 수신할 수 있으며, 수신되는 데이터 동작 요청 셋(REQ_SET) 및 장치 스펙(DEVICE_SPEC)을 기초로 데이터 동작 시간을 가변적으로 결정할 수 있고, 결정된 데이터 동작 시간을 기초로 커맨드 신호(CMD)를 생성할 수 있다. 장치 스펙(DEVICE_SPEC)은 메모리 장치들의 최대 전력 스펙을 나타낼 수 있다. 최대 전력 스펙은 메모리 장치들이 동시에 사용할 수 있는 최대 전력 값을 나타낼 수 있으며, 이에 제한되지는 않고, 동시에 허용 가능한 최대 피크 전류 값 또는 최대 피크 전압 값을 나타낼 수 있다. 장치 스펙(DEVICE_SPEC)은 메모리 장치 별로 다른 값을 가질 수 있으며, 메모리 컨트롤러 내에 저장된 값일 수 있다. 도 5와 비교할 때, 메모리 동작 관리부(234)는 호스트로부터 수신되는 전력 예산이 아닌 장치 스펙(DEVICE_SPEC)의 범위 내에서 메모리 다이들이 데이터 동작을 수행하도록 데이터 동작 시간을 결정할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 SSD 시스템(1000)를 나타낸다.
SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다. SSD(1200)는 신호 커넥터(signal connector)를 통해 호스트(1100)와 신호를 주고 받을 수 있으며, 전원 커넥터(power connector)를 통해 전원을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1110), 보조 전원 장치(1220) 및 복수의 메모리 장치들(1230, 1240, 1250)을 포함할 수 있다. 이 때, SSD(1200)는 도 1 내지 도 14에 도시된 실시예들을 이용하여 구현될 수 있다.
구체적으로, SSD 컨트롤러(1210)는 메모리 동작 컨트롤러(1212)를 포함할 수 있다. 메모리 동작 컨트롤러(1212)는 호스트(1100)로부터 수신되는 데이터 동작 요청 셋(REQ_SET) 및 전력 예산을 기초로 복수의 메모리 장치들(1230, 1240, 1250)에서 수행되는 데이터 동작의 데이터 동작 시간을 결정할 수 있다. 메모리 동작 컨트롤러(1212)는 데이터 동작 시간에 대응하는 피크 전류 또는 피크 전압 값을 피크 정보로서 저장할 수 있고, 이를 데이터 동작 시간 결정에 활용할 수 있다. SSD 컨트롤러(1210)는 결정되 데이터 동작 시간을 기초로 커맨드 신호를 생성하여 복수의 메모리 장치들(1230, 1240, 1250)을 제어할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 메모리 다이들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러의 메모리 장치 제어 방법에 있어서,
    상기 메모리 컨트롤러의 외부로부터 적어도 하나의 데이터 동작 요청 및 전력 예산을 수신하는 단계;
    상기 적어도 하나의 데이터 동작 요청에 따른 적어도 하나의 데이터 동작에 의한 소모 전력이 상기 전력 예산 이하가 되도록 상기 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계; 및
    상기 결정된 데이터 동작 시간을 기초로 상기 복수의 메모리 다이들을 제어하는 단계를 포함하고,
    상기 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계는,
    상기 적어도 하나의 데이터 동작 요청에 따라 상기 복수의 메모리 다이들 중 동시에 동작하는 메모리 다이들을 결정하는 단계; 및
    상기 전력 예산 내에서 상기 동시에 동작하는 메모리 다이들이 동작할 수 있는 최소 동작 시간을 상기 복수의 메모리 다이들의 상기 데이터 동작 시간으로 결정하는 단계를 포함하는 것을 특징으로 하는 메모리 장치 제어 방법.
  2. 제1항에 있어서,
    상기 전력 예산은 허용 가능한 최대 피크 전류 또는 최대 피크 전압 값을 나타내고,
    상기 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계는,
    상기 메모리 컨트롤러에 저장된 상기 데이터 동작 시간에 따른 피크 전류 또는 피크 전압 값에 대한 정보인 피크 정보를 이용하는 것을 특징으로 하는 메모리 장치 제어 방법.
  3. 제2항에 있어서,
    상기 복수의 메모리 다이들의 데이터 동작 시간을 결정하는 단계는,
    상기 적어도 하나의 데이터 동작을 하는 상기 복수의 메모리 다이들 각각의 피크 전류 또는 피크 전압 값의 합이 상기 전력 예산 이하가 되도록 상기 데이터 동작 시간을 결정하는 것을 특징으로 하는 메모리 장치 제어 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 최소 동작 시간을 상기 복수의 메모리 다이들의 상기 데이터 동작 시간으로 결정하는 단계는,
    상기 복수의 메모리 다이들에 현재 수행중인 동작을 고려하여, 상기 전력 예산에서 상기 현재 수행중인 동작에 의한 소비 전력을 제외한 범위 내에서 상기 동시에 동작하는 메모리 다이들이 동작할 수 있는 상기 최소 동작 시간을 상기 복수의 메모리 다이들의 상기 데이터 동작 시간으로 결정하는 것을 특징으로 하는 메모리 장치 제어 방법.
  6. 제1항에 있어서,
    상기 최소 동작 시간을 상기 복수의 메모리 다이들의 상기 데이터 동작 시간으로 결정하는 단계는,
    상기 전력 예산을 상기 동시에 동작하는 메모리 다이들의 수로 나눈 값 보다 작은 전력을 소모하는 범위에서 가장 작은 데이터 동작 시간을 제1 메모리 다이의 제1 데이터 동작 시간으로 결정하는 단계; 및
    상기 전력 예산 중 상기 제1 메모리 다이에 의한 소비 전력을 제외한 전력 범위 내에서 상기 복수의 메모리 다이들 중 상기 제1 메모리 다이를 제외한 메모리 다이들이 동작할 수 있는 최소 동작 시간을 상기 제1 메모리 다이를 제외한 상기 메모리 다이들의 상기 데이터 동작 시간으로 결정하는 단계를 포함하는 것을 특징으로 하는 메모리 장치 제어 방법.
  7. 제2항에 있어서,
    상기 복수의 메모리 다이들의 상기 데이터 동작 시간을 결정하는 단계는,
    상기 적어도 하나의 데이터 동작 요청의 개수가 임계 요청 수 이상인 경우, 상기 메모리 컨트롤러에 상기 피크 정보로서 저장된 동작 시간들 중 최대 동작 시간을 상기 복수의 메모리 다이들의 상기 데이터 동작 시간으로 결정하는 것을 특징으로 하는 메모리 장치 제어 방법.
  8. 제1항에 있어서,
    상기 복수의 메모리 다이들의 상기 데이터 동작 시간을 결정하는 단계는,
    상기 적어도 하나의 데이터 동작 요청의 개수를 나타내는 큐 깊이(Queue Depth)가 증가할수록 상기 복수의 메모리 다이들의 상기 데이터 동작 시간을 길게 결정하는 것을 특징으로 하는 메모리 장치 제어 방법.
  9. 스토리지 장치에 있어서,
    복수의 비휘발성 메모리 다이들; 및
    메모리 컨트롤러의 외부로부터 전력 예산 및 프로그램 요청을 수신하고, 상기 전력 예산 및 상기 프로그램 요청의 개수를 기초로 상이한 커맨드 신호를 상기 복수의 비휘발성 메모리 다이들에 송신하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    상기 프로그램 요청의 개수를 나타내는 큐 깊이가 증가할수록 상기 복수의 비휘발성 메모리 다이들의 프로그램 시간들이 증가되도록 상기 프로그램 시간들을 결정하고, 상기 프로그램 시간들에 기초하여 상기 커맨드 신호를 생성하는 것을 특징으로 하는 스토리지 장치.
  10. 삭제
KR1020170148713A 2017-11-09 2017-11-09 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치 KR102532206B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170148713A KR102532206B1 (ko) 2017-11-09 2017-11-09 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치
US16/057,849 US10564869B2 (en) 2017-11-09 2018-08-08 Memory controller and storage device including the same
CN201811227920.1A CN109766294B (zh) 2017-11-09 2018-10-22 存储器控制器和包括其的储存设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170148713A KR102532206B1 (ko) 2017-11-09 2017-11-09 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치

Publications (2)

Publication Number Publication Date
KR20190052884A KR20190052884A (ko) 2019-05-17
KR102532206B1 true KR102532206B1 (ko) 2023-05-12

Family

ID=66327151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170148713A KR102532206B1 (ko) 2017-11-09 2017-11-09 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치

Country Status (3)

Country Link
US (1) US10564869B2 (ko)
KR (1) KR102532206B1 (ko)
CN (1) CN109766294B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102615227B1 (ko) * 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200129700A (ko) * 2019-05-09 2020-11-18 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템
TWI718532B (zh) * 2019-05-10 2021-02-11 技嘉科技股份有限公司 固態硬碟以及固態硬碟的效能優化方法
US11454941B2 (en) * 2019-07-12 2022-09-27 Micron Technology, Inc. Peak power management of dice in a power network
US11442525B2 (en) * 2019-08-23 2022-09-13 Micron Technology, Inc. Power management
US20210294407A1 (en) * 2020-03-17 2021-09-23 Micron Technology, Inc. Setting a power mode based on a workload level in a memory sub-system
KR20210119070A (ko) 2020-03-24 2021-10-05 에스케이하이닉스 주식회사 메모리 장치에서 연속으로 수행되는 다수의 커맨드 동작에 사용되는 파워값을 최소화하기 위해 수행시점 차이를 정확하게 조절할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법
US11487444B2 (en) * 2020-03-25 2022-11-01 Micron Technology, Inc. Centralized power management in memory devices
KR20210128628A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 전자 장치와, 이를 위한 데이터 저장 장치 및 동작 방법
KR20210146643A (ko) 2020-05-27 2021-12-06 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20230026906A (ko) 2021-08-18 2023-02-27 에스케이하이닉스 주식회사 저장 장치 및 저장 장치의 전력 관리 방법
US20230195312A1 (en) * 2021-12-21 2023-06-22 Micron Technology, Inc. Peak power management in a memory device during suspend status

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160162215A1 (en) 2014-12-08 2016-06-09 Sandisk Technologies Inc. Meta plane operations for a storage device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100634455B1 (ko) 2005-06-13 2006-10-16 삼성전자주식회사 프로그램 시간을 줄일 수 있는 플래시 메모리 장치
KR100616214B1 (ko) 2005-06-30 2006-08-28 주식회사 하이닉스반도체 멀티-레벨 셀을 가지는 플래시 메모리 장치의 프로그램제어 회로 및 그 프로그램 제어 방법
US7656710B1 (en) 2005-07-14 2010-02-02 Sau Ching Wong Adaptive operations for nonvolatile memories
KR100822805B1 (ko) 2006-10-20 2008-04-18 삼성전자주식회사 다중 배속 동작 모드를 가지는 플래시 메모리 장치
JP5111965B2 (ja) * 2007-07-24 2013-01-09 株式会社日立製作所 記憶制御装置及びその制御方法
US8924626B2 (en) * 2010-04-29 2014-12-30 Sandisk Technologies Inc. Phased NAND power-on reset
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
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
US8854900B2 (en) 2012-07-26 2014-10-07 SanDisk Technologies, Inc. Non-volatile memory and method with peak current control
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
US9449702B1 (en) * 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US10120817B2 (en) 2015-09-30 2018-11-06 Toshiba Memory Corporation Device and method for scheduling commands in a solid state drive to reduce peak power consumption levels
US9817595B2 (en) * 2016-01-28 2017-11-14 Apple Inc. Management of peak power consumed by multiple memory devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160162215A1 (en) 2014-12-08 2016-06-09 Sandisk Technologies Inc. Meta plane operations for a storage device

Also Published As

Publication number Publication date
US20190138233A1 (en) 2019-05-09
CN109766294B (zh) 2024-06-11
US10564869B2 (en) 2020-02-18
KR20190052884A (ko) 2019-05-17
CN109766294A (zh) 2019-05-17

Similar Documents

Publication Publication Date Title
KR102532206B1 (ko) 메모리 컨트롤러 및 그것을 포함하는 스토리지 장치
US11226895B2 (en) Controller and operation method thereof
KR20130056004A (ko) 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법
KR102532084B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20200085967A (ko) 데이터 저장 장치 및 그 동작 방법
KR20170102694A (ko) 데이터 저장 장치
US12079131B2 (en) Memory system and operating method thereof
KR20170099618A (ko) 데이터 저장 장치
US20200042238A1 (en) Data storage device, method of operating the same, and storage system having the same
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR20160097657A (ko) 데이터 저장 장치 그리고 그것의 동작 방법
KR20210051873A (ko) 컨트롤러 및 메모리 시스템
KR20210144249A (ko) 저장 장치 및 이의 동작 방법
KR20170094674A (ko) 데이터 저장 장치
KR20190006677A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20180089742A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11775209B2 (en) Controller and operation method thereof
KR20170006976A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210068734A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9524757B2 (en) Data storage device capable of reducing power consumption
KR102375060B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20170109344A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102609473B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20180121733A (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant