KR20160123706A - 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 - Google Patents

불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 Download PDF

Info

Publication number
KR20160123706A
KR20160123706A KR1020150054197A KR20150054197A KR20160123706A KR 20160123706 A KR20160123706 A KR 20160123706A KR 1020150054197 A KR1020150054197 A KR 1020150054197A KR 20150054197 A KR20150054197 A KR 20150054197A KR 20160123706 A KR20160123706 A KR 20160123706A
Authority
KR
South Korea
Prior art keywords
nonvolatile memory
memory devices
volatile memory
data
controller
Prior art date
Application number
KR1020150054197A
Other languages
English (en)
Other versions
KR102450556B1 (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 KR1020150054197A priority Critical patent/KR102450556B1/ko
Priority to US15/075,217 priority patent/US10331366B2/en
Publication of KR20160123706A publication Critical patent/KR20160123706A/ko
Application granted granted Critical
Publication of KR102450556B1 publication Critical patent/KR102450556B1/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
    • 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
    • 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
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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

데이터 저장 장치가 공개된다. 상기 데이터 저장 장치는 제1불휘발성 메모리 장치와 제2불휘발성 메모리 장치들을 포함하는 불휘발성 메모리 장치들을 제어할 수 있고, 상기 제1불휘발성 메모리 장치는 프로그램 작동과 리드 작동 중에서 어느 하나를 나타내는 작동 지시 신호에 관련된 상태 신호를 출력하고, 상기 제2불휘발성 메모리 장치들 각각은 상기 상태 신호에 기초하여 작동 여부와 작동 순서 중에서 적어도 하나를 스스로 결정한다.

Description

불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템{DATA STORAGE DEVICE FOR CONTROLLING NONVOLATILE MEMORY DEVICES AND DATA PROCESSING SYSTEM HAVING SAME}
본 발명의 개념에 따른 실시 예는 데이터 저장 장치에 관한 것으로, 특히 불휘발성 메모리 장치들 각각이 작동 여부를 스스로 제어할 수 있는 데이터 저장 장치와 이의 작동 방법에 관한 것이다.
휴대용 정보 통신 장치의 사용이 증가하면서, 상기 휴대용 정보 통신 장치 내에 포함된 전자 회로들 사이의 데이터 트래픽(data traffic)이 증가하고 있다.
플래시 메모리 장치들을 포함하는 휴대용 정보 통신 장치에서, 상기 플래시 메모리 장치들의 작동들을 관리하기 위해 많은 태스크들(tasks)이 발생하므로, 상기 태스크들을 생성하고 관리하는 CPU 또는 프로세서의 작업이 증가한다. 또한, 플래시 메모리 장치들에 대한 동시 작동들(예컨대, 상기 플래시 메모리 장치들에 대한 라이트 작동들 또는 상기 플래시 메모리 장치들에 대한 리드 작동들)이 발생하면, 상기 플래시 메모리 장치들을 포함하는 휴대용 정보 통신 장치에서 소모되는 순간 최대 전력이 증가한다.
플래시 메모리 장치들과 전력 관리 IC를 포함하는 휴대용 정보 통신 장치에서, 상기 플래시 메모리 장치들이 동시에 사용하는 순간 최대 전력이 상기 전력 관리 IC로부터 공급되는 전력보다 많으면, 상기 휴대용 정보 통신 장치로 전력을 공급하는 전원에 이상이 발생할 수 있으므로, 상기 휴대용 정보 통신 장치는 정상적으로 작동하지 않을 수 있다.
데이터 저장 장치, 예컨대, 데이터 서버의 데이터 처리 능력을 증가하는 방법으로 스케일 업(scale up)과 스케일 아웃(scale out)이 있다. 상기 스케일 업은 상기 데이터 서버 그 자체의 용량을 증가시켜 상기 데이터 서버의 데이터 처리 능력을 향상시키는 것으로서 수직 스케일링으로 불리기도 한다. 상기 스케일 아웃은 접속된 데이터 서버의 개수를 늘려 상기 데이터 서버를 포함하는 시스템의 데이터 처리 능력을 향상시키는 것으로서 수평 스케일링으로 불리기도 한다.
스케일 업(scale up) 구조는 갖는 데이터 저장 장치에서, 상기 데이터 저장 장치에 포함된 불휘발성 메모리 장치들의 개수가 증가하면, 상기 불휘발성 메모리 장치들을 제어하는 컨트롤러와 상기 불휘발성 메모리 장치들 사이에 구현된 인터페이스의 로딩 커패시턴스(loading capacitance)가 증가한다. 이에 따라, 상기 데이터 저장 장치의 데이터 처리 속도가 저하될 수 있다.
본 발명이 이루고자 하는 기술적인 과제는, 불휘발성 메모리 장치들 주도로 최대 전력 소모를 제어하여 불필요한 전력 소모를 방지하고, 상기 최대 전력 소모를 제어하는 프로세서의 개입 없이 상기 불휘발성 메모리 장치들 주도로 상기 최대 전력 소모를 제어할 수 있는 데이터 저장 장치와 이의 작동 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 제1불휘발성 메모리 장치와 제2불휘발성 메모리 장치들을 포함하는 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치의 작동 방법은 상기 제2불휘발성 메모리 장치들 각각이 상기 제1불휘발성 메모리 장치의 작동 여부를 지시하는 작동 지시 신호에 관련된 상태 신호를 수신하는 단계와, 상기 제2불휘발성 메모리 장치들 각각이 상기 상태 신호에 기초하여 작동 여부를 스스로 결정하는 단계를 포함한다.
실시 예에 따라 상기 상태 신호는 상기 제1불휘발성 메모리 장치에 의해 생성될 수 있다. 다른 실시 예에 따라 상기 상태 신호는 상기 제2불휘발성 메모리 장치들의 작동 순서를 나타낼 수 있다. 또 다른 실시 예에 따라 상기 상태 신호는 상기 불휘발성 메모리 장치들 중에서 동시에 작동할 수 있는 불휘발성 메모리 장치들의 개수를 나타낼 수 있다.
상기 상태 신호는 전용 채널을 통해 상기 제2불휘발성 메모리 장치들 각각으로 전송될 수 있다.
상기 데이터 저장 장치의 작동 방법은 상기 데이터 저장 장치 내에 포함된 전력 관리 제어 회로가 상기 제1불휘발성 메모리 장치로부터 출력된 상기 작동 지시 신호를 수신하는 단계와, 상기 전력 관리 제어 회로가 상기 작동 지시 신호에 기초하여 상기 상태 신호를 생성하는 단계와, 상기 전력 관리 제어 회로가 상기 상태 신호를 상기 제2불휘발성 메모리 장치들 각각으로 전송하는 단계를 더 포함한다.
상기 상태 신호를 생성하는 단계는 상기 전력 관리 제어 회로가 상기 작동 지시 신호의 수신을 카운트하고, 카운트 값을 생성하는 단계와, 상기 전력 관리 제어 회로가 상기 카운트 값과 기준 값을 비교하고, 비교 결과에 따라 결정된 상태를 갖는 상기 상태 신호를 생성하는 단계를 포함한다.
상기 작동 지시 신호가 활성화됨에 따라 상기 카운트 값이 상기 기준 값과 같아 질 때, 상기 전력 관리 제어 회로는 상기 제2불휘발성 메모리 장치들 각각을 대기 상태로 유지하기 위한 상기 상태 신호를 생성하고, 상기 작동 지시 신호가 비활성화됨에 따라 상기 카운트 값이 상기 기준 값보다 작아질 때, 상기 전력 관리 제어 회로는 상기 제2불휘발성 메모리 장치들 중에서 어느 하나의 작동의 시작을 지시하는 상기 상태 신호를 생성한다.
상기 상태 신호는 상기 제2불휘발성 메모리 장치들의 작동 순서를 결정할 수 있다.
상기 불휘발성 메모리 장치들 중에서 적어도 하나는 복수의 불휘발성 메모리 칩들과, 상기 복수의 불휘발성 메모리 칩들을 액세스하고 관리하는 컨트롤러를 포함한다.
본 발명의 실시 예에 따른 제1불휘발성 메모리 장치와 제2불휘발성 메모리 장치들을 포함하는 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치에서, 상기 제1불휘발성 메모리 장치는 프로그램 작동과 리드 작동 중에서 어느 하나를 나타내는 작동 지시 신호에 관련된 상태 신호를 출력하고, 상기 제2불휘발성 메모리 장치들 각각은 상기 상태 신호에 기초하여 작동 여부와 작동 순서 중에서 적어도 하나를 스스로 결정한다.
상기 데이터 저장 장치는 상기 작동 지시 신호에 기초하여 상기 상태 신호를 생성하고, 상기 상태 신호를 전용 채널을 통해 상기 제2불휘발성 메모리 장치들 각각으로 전송하는 전력 관리 제어 회로를 더 포함한다.
상기 전력 관리 제어 회로는 상기 작동 지시 신호의 수신을 카운트하여 카운트 값을 생성하고, 상기 카운트 값과 기준 값을 비교하고, 비교 결과에 따라 결정된 상태를 갖는 상기 상태 신호를 생성한다.
상기 전력 관리 제어 회로는 상기 작동 지시 신호가 활성화됨에 따라 상기 카운트 값이 상기 기준 값과 같아질 때, 상기 제2불휘발성 메모리 장치들 각각을 대기 상태로 유지하기 위한 상기 상태 신호를 생성하고, 상기 작동 지시 신호가 비활성화됨에 따라 상기 카운트 값이 상기 기준 값보다 작아질 때, 상기 제2불휘발성 메모리 장치들 중에서 어느 하나의 작동의 시작을 지시하는 상기 상태 신호를 생성한다.
상기 불휘발성 메모리 장치들 중에서 적어도 하나는 복수의 불휘발성 메모리 칩들과, 상기 복수의 불휘발성 메모리 칩들을 액세스하고 관리하는 컨트롤러를 포함한다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 제1불휘발성 메모리 장치와 제2불휘발성 메모리 장치들을 포함하는 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와, 상기 데이터 저장 장치의 작동을 제어하는 호스트를 포함하고, 상기 제1불휘발성 메모리 장치는 프로그램 작동과 리드 작동 중에서 어느 하나를 나타내는 작동 지시 신호에 관련된 상태 신호를 출력하고, 상기 제2불휘발성 메모리 장치들 각각은 상기 상태 신호에 기초하여 작동 여부와 작동 순서 중에서 적어도 하나를 스스로 결정한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치들을 포함하는 데이터 저장 장치에서, 상기 불휘발성 메모리 장치들 각각은 프로세서 또는 컨트롤러의 개입 없이 자신의 현재 작동 상태를 대응되는 불휘발성 메모리 장치들로 전송할 수 있는 효과가 있다.
현재 작동 상태를 통신할 수 있는 불휘발성 메모리 장치들은, 프로세서 또는 컨트롤러의 개입 없이, 상기 불휘발성 메모리 장치들 중에서 동시에 작동할 수 있는 불휘발성 메모리 장치들의 개수를 제어할 수 있으므로, 데이터 저장 장치에서 소모되는 순간 최대 전력을 효율적으로 관리할 수 있는 효과가 있다.
메모리 클러스터를 포함하는 데이터 저장 장치는 상기 메모리 클러스터 주도로 또는 상기 메모리 클러스터에 포함된 불휘발성 메모리 장치들 주도로 상기 데이터 저장 장치에서 소모되는 순간 최대 전력을 효율적으로 관리할 수 있는 효과가 있다.
데이터 저장 장치는 불필요한 전력 소모를 방지할 수 있는 효과가 있다. 또한, 데이터 저장 장치는 순간 최대 전력을 제어하는 프로세서의 작동 또는 컨트롤러의 작동을 제거할 수 있으므로, 상기 데이터 저장 장치의 성능이 향상되는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 제1클러스터의 일 실시 예를 나타내는 블록도이다.
도 3은 도 2에 도시된 제1클러스터의 작동을 설명하는 타이밍 도이다.
도 4는 도 1에 도시된 제1클러스터의 다른 실시 예를 나타내는 블록도이다.
도 5는 도 1에 도시된 제1클러스터의 또 다른 실시 예를 나타내는 블록도이다.
도 6은 도 1에 도시된 제1클러스터의 또 다른 실시 예를 나타내는 블록도이다.
도 7은 도 4, 도 5, 또는 도 6에 도시된 제1클러스터의 작동을 설명하는 타이밍 도이다.
도 8은 도 1에 도시된 데이터 저장 장치의 구체적인 블록도이다.
도 9는 도 8에 도시된 제1클러스터의 실시 예를 나타내는 블록도이다.
도 10은 도 9에 도시된 제1스케일-아웃 장치의 개략도이다.
도 11은 도 10에 도시된 제1스케일-아웃 장치의 반도체 패키지의 실시 예이다.
도 12는 도 1에 도시된 메인 컨트롤러와 제1클러스터를 포함하는 반도체 패키지의 실시 예이다.
도 13은 도 10에 도시된 제1스케일-아웃 컨트롤러의 블록도이다.
도 14는 본 발명의 다른 실시 예에 따른 데이터 저장 장치의 블록도를 나타낸다.
도 15는 도 1에 도시된 제1클러스터의 작동을 설명하는 플로우 차트이다.
도 16은 본 발명의 다른 실시 예에 따른 데이터 처리 시스템의 블록도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도를 나타낸다. 도 1을 참조하면, 데이터 처리 시스템(100)은 호스트(200)와, 인터페이스(110)를 통해 호스트(200)와 명령 및/또는 데이터를 주거나 받을 수 있는 데이터 저장 장치(300)를 포함할 수 있다.
메모리 클러스터(400)를 포함하는 데이터 저장 장치(300)는, 메인 컨트롤러 (310)의 제어(또는 개입) 없이, 메모리 클러스터(400) 주도로 또는 메모리 클러스터(400)에 포함된 불휘발성 메모리 장치들 주도로 데이터 저장 장치(300)에서 소모되는 순간 최대 전력을 제어할 수 있다.
데이터 저장 장치(300)에 포함된 제1클러스터(400)의 구조가 도 9에 도시된 구조를 가질 때, 데이터 저장 장치(300)는 스케일-아웃(scale-out) 구조를 가질 수 있다. 예컨대, 데이터 처리 시스템(100)은 메모리 시스템을 의미할 수 있다.
실시 예들에 따라, 메모리 클러스터(400)를 포함하는 데이터 처리 시스템 (100)은 PC(personal computer), 워크스테이션(workstation), 데이터 센터, 인터넷 데이터 센터(internet data center(IDC)), SAN(storage area network), NAS (Network attached storage) 또는 모바일 컴퓨팅 장치로 구현될 수 있는 데이터 처리 시스템을 의미할 수 있으나 이에 한정되는 것은 아니다.
메모리 클러스터(400)를 포함하는 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA (personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP (portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 드론 (drone), 또는 e-북 (e-book)으로 구현될 수 있다.
인터페이스(110)는 SATA(serial advanced technology attachment) 인터페이스, SATAe(SATA express) 인터페이스, SAS(serial attached small computer system interface(SCSI)) 인터페이스, PCIe(peripheral component interconnect express) 인터페이스, NVMe(non-volatile memory Express) 인터페이스, AHCI(advanced host controller interface) 인터페이스, 또는 멀티미디어 카드(multimedia card(MMC))인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다. 실시 예들에 따라, 인터페이스(110)는 전기 신호들 또는 광신호들을 전송할 수 있다.
호스트(200)는 인터페이스(110)를 통해 데이터 저장 장치(300)의 데이터 처리 작동(예컨대, 라이트 작동 또는 리드 작동 등)을 제어할 수 있다. 호스트(200)는 호스트 컨트롤러를 의미할 수 있다.
CPU(220)와 제1인터페이스(230)는 버스 구조(210)를 통해 명령 및/또는 데이터를 서로 주거나 받을 수 있다. 비록 도 1에는 버스 구조(210), CPU(220), 및 제1인터페이스(230)를 포함하는 호스트(200)가 도시되어 있으나, 본 발명의 기술적 사상이 도 1에 도시된 호스트(200)에 한정되는 것은 아니다.
실시 예에 따라, 호스트(200)는 집적 회로(integrated circuit(IC)), 마더보드(motherboard), 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서 (application processor(AP)), 모바일(mobile) AP, 웹 서버, 데이터 서버, 또는 데이터베이스 서버로 구현될 수 있으나 이에 한정되는 것은 아니다.
예컨대, 버스 구조(210)는 AMBA(advanced microcontroller bus architecture), AHB(advanced high-performance bus), APB(advanced peripheral bus), AXI(advanced eXtensible interface), ASB(advanced system bus), ACE(AXI Coherency Extensions), 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
CPU(220)는 데이터 저장 장치(300)의 라이트 작동(write operation)을 제어할 수 있는 라이트 요청, 또는 데이터 저장 장치(300)의 리드 작동(read operation)을 제어할 수 있는 리드 요청을 생성할 수 있다. 상기 라이트 요청은 라이트 어드레스를 포함할 수 있고, 상기 리드 요청은 리드 어드레스를 포함할 수 있다. 예컨대, CPU(220)는 하나 또는 그 이상의 코어들을 포함할 수 있다. 요청 (request)은 명령(command)을 의미할 수 있다.
제1인터페이스(230)는 데이터 저장 장치(300)로 전송될 명령 및/또는 데이터의 포맷(format)을 변경하고, 변경된 포맷을 갖는 명령 및/또는 변경된 포맷을 갖는 데이터를 인터페이스(110)를 통해 데이터 저장 장치(300)로 전송할 수 있다.
또한, 제1인터페이스(230)는 데이터 저장 장치(300)로부터 전송된 응답 (response) 및/또는 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 응답 및/또는 변경된 포맷을 갖는 데이터를 버스 구조(210)를 통해 CPU(220)로 전송할 수 있다. 실시 예에 따라, 제1인터페이스(230)는 명령 및/또는 데이터를 송수신할 수 있는 송수신기를 포함할 수 있다. 제1인터페이스(230)의 구조와 작동은 인터페이스(110)의 구조와 작동에 적합하게(compatible) 구현될 수 있다.
데이터 저장 장치(300)는 메인 컨트롤러(310), 버퍼(360), 전력 관리 IC (370), 및 메모리 클러스터(400)를 포함할 수 있다. 여기서, 메모리 클러스터(400)의 메모리들의 집합을 의미할 수 있다. 또한, 메모리 클러스터(400)는 스케일-아웃 장치들과 메모리들을 포함할 수 있다.
데이터 저장 장치(300)는 플래시 메모리-기반 메모리 장치로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 데이터 저장 장치(300)는 SSD(solid-state drive or solid-state disk), 임베디드 SSD(embedded SSD(eSSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 멀티미디어 카드(multimedia card(MMC)), 임베디드 MMC(embedded MMC(eMMC)) 또는 매니지드(managed) NAND로 구현될 수 있으나 이에 한정되는 것은 아니다. 플래시 메모리-기반 메모리 장치는 NAND-타입 플래시 메모리 장치 또는 NOR-타입 플래시 메모리 장치로 구현될 수 있다.
실시 예들에 따라, 데이터 저장 장치(300)는 하드 디스크 드라이브(hard disk drive(HDD)), PRAM(phase change RAM) 장치, MRAM(magnetoresistive RAM) 장치, STT-MRAM(spin-transfer torque MRAM) 장치, FRAM(ferroelectric RAM) 장치 또는 RRAM(resistive RAM) 장치로 구현될 수 있으나 이에 한정되는 것은 아니다.
메인 컨트롤러(310)는 호스트(200), 버퍼(360), 및 메모리 클러스터(400) 사이에서 주거나 받는 명령 및/또는 데이터의 전송 또는 처리를 제어할 수 있다. 실시 예들에 따라, 메인 컨트롤러(310)는 IC 또는 SoC로 구현될 수 있다.
메인 컨트롤러(310)는 버스 구조(311), 내부 메모리(315), 제2인터페이스 (320), 적어도 하나의 CPU(330 및/또는 331), 버퍼 컨트롤러(340), 및 제3인터페이스(350)를 포함할 수 있다.
버스 구조(311)는 AMBA, AHB, APB, AXI, ASB, ACE 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
내부 메모리(315)는 메인 컨트롤러(310)의 작동에 필요한 데이터 또는 메인 컨트롤러(310)에 의해 수행된 데이터 처리 작동(예컨대, 라이트 작동 또는 리드 작동)에 의해 생성된 데이터를 저장할 수 있다. 예컨대, 내부 메모리(315)는 CPU(330 및/또는 331)에 의해 실행될 수 있는 제1FTL(flash translation layer) 코드를 저장할 수 있다. 예컨대, 데이터 저장 장치(300)가 부팅(booting)될 때, 제1FTL 코드는 메모리 클러스터(400)로부터 내부 메모리(315)로 로드될 수 있다.
실시 예들에 따라, 내부 메모리(315)는 RAM(ramdom access memory), DRAM (dynamic RAM), SRAM(static RAM), 버퍼(buffer), 버퍼 메모리, 캐시(cache), 또는 강하게 결합된 메모리(tightly coupled memory (TCM))로 구현될 수 있으나 내부 메모리(315)가 이에 한정되는 것은 아니다.
제2인터페이스(320)는 호스트(200)로 전송될 응답 및/또는 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 응답 및/또는 변경된 포맷을 갖는 데이터를 인터페이스(110)를 통해 호스트(200)로 전송할 수 있다. 또한, 제2인터페이스(320)는 호스트(200)로부터 전송된 명령 및/또는 데이터를 수신하고, 수신된 명령 및/또는 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 명령 및/또는 변경된 포맷을 갖는 데이터를 적어도 하나의 CPU(330 및/또는 331) 및/또는 버퍼 컨트롤러(340)로 전송할 수 있다. 실시 예에 따라, 제2인터페이스(320)는 신호 및/또는 데이터를 송수신할 수 있는 송수신기를 포함할 수 있다.
제2인터페이스(320)의 구조와 작동은 인터페이스(110)의 구조와 작동에 적합하게 구현될 수 있다. 예컨대, 제2인터페이스(320)는 SATA 인터페이스, SATAe 인터페이스, SAS 인터페이스, PCIe 인터페이스, NVMe 인터페이스, AHCI 인터페이스, MMC 인터페이스, NAND-타입 플래시 메모리 인터페이스, 또는 NOR-타입 플래시 메모리 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
하나 또는 그 이상의 CPU(330 및/또는 331)는, 버스 구조(311)를 통해, 내부 메모리(315), 제2인터페이스(320), 버퍼 컨트롤러(340), 및 제3인터페이스(350)를 제어할 수 있다. 각 CPU(330과 331)는 하나 또는 그 이상의 코어들을 포함할 수 있다. 실시 예에 따라, 하나 또는 그 이상의 CPU(330 및/또는 331)는 PMIC(370)를 제어할 수 있다.
예컨대, 제1CPU(330)는 제2인터페이스(320)를 통해 호스트(200)와 데이터를 주거나 받을 수 있다. 제2CPU(331)는 제3인터페이스(350)를 통해 메모리 클러스터 (400)와 데이터를 주거나 받을 수 있다. 실시 예에 따라, 제1CPU(330)와 제2CPU (331)는 멀티-CPU를 구성할 수 있다. 실시 예에 따라, 제1CPU(330)는 제2CPU(331)를 제어할 수 있으나 이에 한정되는 것은 아니다.
버퍼 컨트롤러(340)는, 제1CPU(330) 또는 제2CPU(331)의 제어에 따라, 버퍼 (360)에 데이터를 라이트하거나 버퍼(360)로부터 데이터를 리드할 수 있다. 버퍼 컨트롤러(340)는 버퍼(360)에 대한 라이트 작동과 리드 작동을 제어할 수 있는 컨트롤러 또는 버퍼 매니저(buffer manager)로 불릴 수 있다.
제3인터페이스(350)는, 제1CPU(330) 또는 제2CPU(331)의 제어에 따라, 복수의 메인 채널들(CHA, CHB, ..., CHC) 중에서 해당하는 메인 채널을 통해 메모리 클러스터(400)에 대한 데이터 처리 작동들(예컨대, 라이트 작동들 또는 리드 작동들, 등)을 제어할 수 있다.
실시 예들에 따라 제3인터페이스(350)는 SATA 인터페이스, SATAe 인터페이스, SAS 인터페이스, PCIe 인터페이스, NVMe 인터페이스, AHCI 인터페이스, MMC 인터페이스, NAND-타입 플래시 메모리 인터페이스, 또는 NOR-타입 플래시 메모리 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
제3인터페이스(350)는 에러 정정 코드(error correction code(ECC)) 엔진(미도시)을 포함할 수 있다. 상기 EEC 엔진은 메모리 클러스터(400)에 저장될 데이터 및/또는 메모리 클러스터(400)로부터 출력된 데이터에 포함된 에러를 정정할 수 있다. 실시 예에 따라, ECC 엔진은 메인 컨트롤러(310) 내부의 어디라도 구현될 수 있다.
버퍼(360)는, 버퍼 컨트롤러(340)의 제어에 따라, 데이터를 라이트하거나 데이터를 리드할 수 있다. 실시 예들에 따라, 휘발성 메모리로 구현될 수 있는 버퍼 (360)는 버퍼 메모리, RAM, SRAM, 또는 DRAM으로 구현될 수 있으나 이에 한정되는 것은 아니다.
버퍼(360)는 복수의 클러스터들(410, 430, ... 450)에 대한 논리 어드레스-물리 어드레스 변환을 위한 매핑 테이블을 저장하는 제1영역과, 캐시(cache)의 기능을 수행할 수 있는 제2영역을 포함할 수 있으나 이에 한정되는 것은 아니다. 예컨대, CPU(330 및/또는 331)에 의해 실행되는 제1FTL 코드는 상기 제1영역에 저장된 매핑 테이블을 이용하여 논리 어드레스-물리 어드레스 변환을 수행할 수 있다.
실시 예에 따라, 메인 컨트롤러(310)와 버퍼(360) 각각이 서로 다른 칩 (chip)으로 구현될 때, 메인 컨트롤러(310)와 버퍼(360)는 하나의 패키지, 예컨대, 패키지-온-패키지(package-on-package(PoP)), 멀티-칩 패키지(multi-chip package (MCP)) 또는 시스템-인 패키지(system-in package(SiP))로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 버퍼(360)를 포함하는 제1칩은 메인 컨트롤러(310)를 포함하는 제2칩의 위(above)에 스택 볼들(stack balls)을 통해 적층될 수 있다.
PMIC(370)는 메인 컨트롤러(310), 버퍼(360), 및/또는 메모리 클러스터(400)로 공급되는 작동 전압들을 제어할 수 있다. 예컨대, 메인 컨트롤러(310)로 공급되는 작동 전압, 버퍼(360)로 공급되는 작동 전압, 및 메모리 클러스터(400)로 공급되는 작동 전압은 동일하거나 서로 다를 수 있다.
메모리 클러스터(400)는 복수의 클러스터들(410, 430, ... 450)을 포함할 수 있다. 제1클러스터(410)는 제1메인 채널(CHA)에 접속될 수 있고, 제2클러스터(430)는 제2메인 채널(CHB)에 접속될 수 있고, 제3클러스터(450)는 제3메인 채널(CHC)에 접속될 수 있다.
복수의 클러스터들(410, 430, ... 450) 각각의 구조는 도 2, 도 4부터 도 6, 도 8, 및/또는 도 9를 참조하여 상세히 설명될 것이다. 복수의 클러스터들(410, 430, ... 450) 각각은 복수의 불휘발성 메모리 장치들, 또는 복수의 불휘발성 메모리 장치들을 포함하는 패키지들을 포함할 수 있다.
본 명세서에서 메인 채널(main channel)은 메인 컨트롤러(310), 즉, 제3인터페이스(350)와 해당하는 하나의 클러스터 사이에 존재하는 독립적인 데이터 패스 (data path)를 의미할 수 있다. 상기 데이터 패스는 데이터 및/또는 제어 신호들을 전송할 수 있는 전송 라인들을 포함할 수 있다.
웨이(way)는 하나의 메인 채널을 공유하는 하나 또는 그 이상의 불휘발성 메모리 장치들의 그룹을 의미할 수 있다. 따라서, 하나의 메인 채널에는 복수의 웨이들이 접속될 수 있다. 상기 불휘발성 메모리 장치는 다이, 메모리 장치, 또는 패키지를 의미할 수 있다. 메인 컨트롤러(310)는 A-채널*B-웨이를 제어할 수 있다. 이때, A과 BM 각각은 1 이상의 자연수를 의미할 수 있다.
도 2는 도 1에 도시된 제1클러스터의 일 실시 예를 나타내는 블록도이다. 도 2에서는 설명의 편의를 위해, 메인 컨트롤러(310)와 PMIC(370)는 제1클러스터 (410A)와 함께 도시된다. 도 1의 각 클러스터(410, 430, ... 450)의 구조는 실질적으로 동일 또는 유사하므로, 제1클러스터(410A)의 구조와 작동이 대표적으로 도시되고 설명된다.
메인 컨트롤러(310)는, 제1메인 채널(CHA)을 통해, 각 불휘발성 메모리 장치 (411-1~411-n; n은 6 이상의 자연수)의 작동을 제어할 수 있다.
PMIC(370)는 메인 컨트롤러(310)와 각 불휘발성 메모리 장치(411-1~411-n)로 작동 전압(또는 파워(power))을 공급할 수 있다.
각 불휘발성 메모리 장치(411-1~411-n)는 각 메모리 셀 어레이(Memory Cell Array)와 각 제어 회로(413-1~413-n)를 포함할 수 있다. 각 메모리 셀 어레이 (Memory Cell Array)는 복수의 메모리 셀들을 포함할 수 있다. 예컨대, 각 메모리 셀 어레이(Memory Cell Array)는 2차원 메모리 셀 어레이 또는 3차원 메모리 셀 어레이를 포함할 수 있다.
3차원 메모리 셀 어레이는 실리콘 기판 위(on or above)에 배치된 액티브 영역(active region)을 갖는 메모리 셀들의 어레이의 하나 또는 그 이상의 물리적인 레벨들 내에서 모노리식하게(monolithically) 형성되고, 상기 메모리 셀들의 작동에 관련된 회로를 포함할 수 있다. 상기 회로는 상기 기판의 내부 또는 위(on or above)에 형성될 수 있다. 모노리식(monolithic) 이라는 용어는 어레이의 각 레벨의 레이어들(layers)이 상기 어레이의 각 하부 레벨(each underlying level)의 레이어들에 직접 증착 (directly deposited )되는 것을 의미한다. 3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다. 상기 적어도 하나의 메모리 셀은 전하 트랩 레이어(charge trap layer)를 포함할 수 있다.
불휘발성 메모리 장치들(411-1~411-n) 중에서 어느 하나는 전용 채널(또는 "전용 작동 제어 채널"이라고도 함; DCH)을 통해 나머지 불휘발성 메모리 장치들 각각과 상태 정보(또는 "상태 신호"라고도 함)를 주거나 받을 수 있다. 예컨대, 전용 채널(DCH)은 제1메인 채널(CHA)과 다른 채널을 의미할 수 있다. 여기서, 채널은 정보, 신호, 또는 데이터를 전송하는 적어도 하나의 신호 라인을 의미할 수 있다.
예컨대, 각 불휘발성 메모리 장치(411-1~411-n)로부터 출력된 상태 정보는 각 불휘발성 메모리 장치(411-1~411-n)의 작동 상태를 지시하는 정보(또는 신호)일 수 있다. 상기 작동 상태는 라이트 작동 또는 리드 작동을 의미할 수 있으나 이에 한정되는 것은 아니다.
예컨대, 현재 작동 중인 제1불휘발성 메모리 장치(411-1)는 상태 정보를 전용 채널(DCH)을 통해 출력할 수 있다. 따라서, 나머지 제2불휘발성 메모리 장치들 (411-2~411-n) 각각은, 상기 상태 정보에 기초하여, 제1불휘발성 메모리 장치 (411-1)가 현재 작동 중임을 판단할 수 있다. 현재 작동하지 않는 제2불휘발성 메모리 장치들(411-2~411-n) 각각은, 제1불휘발성 메모리 장치(411-1)로부터 출력된 상태 정보에 기초하여, 작동 시작 여부를 결정할 수 있다.
도 3은 도 2에 도시된 제1클러스터의 작동을 설명하는 타이밍 도이다.
도 1부터 도 3을 참조하면, 데이터 저장 장치(300)의 PMIC(370)가 (프로그램 작동을 위해) 공급할 수 있는 최대 전력은, 불휘발성 메모리 장치들(411-1~411-n) 중에서 2개의 불휘발성 메모리 장치들에서 동시에(또는 병렬적으로) 프로그램 작동들이 수행될 때 소모되는 전력과 동일하다고 가정한다.
이때, 최대값 2는 각 불휘발성 메모리 장치(411-1~411-n)의 각 제어 회로 (413-1~413-n)에 의해 관리되고, 상기 최대값 2는 각 제어 회로(413-1~413-n)에 의해 액세스(또는, 관리)될 수 있는 메모리(미도시) 또는 레지스터(미도시)에 저장된다고 가정한다. 최대값 2는 설명의 편의를 위해 예시된 값으로 본 발명의 기술적 사상이 예시된 최대값(즉, 2)에 한정되는 것은 아니다.
비록, 도 3에서는 불휘발성 메모리 장치들(411-1~411-n) 각각에 대한 라이트 작동(프로그램 작동이라고도 함)이 예시적으로 도시되어 있으나, 본 발명의 기술적 사상이 라이트 작동에 한정되는 것은 아니고 불휘발성 메모리 장치들(411-1~411-n) 각각에서 수행되는 리드 작동 또는 다른 작동에 적용될 수 있다.
메인 컨트롤러(310)의 CPU(330 또는 331)는, PMIC(370)가 공급할 수 있는 최대 전력에 상응하는 최대값을 각 제어 회로(413-1~413-n)에 의해 관리될 수 있는 메모리(미도시) 또는 레지스터(미도시)에 저장할 수 있다. 예컨대, 메모리(미도시) 또는 레지스터(미도시)는 불휘발성 메모리 장치(411-1) 내부에 구현될 수 있다. 최대값은 동시에 또는 병렬적으로 작동할 수 있는 불휘발성 메모리 장치들의 개수를 의미할 수 있다.
도 2와 도 3을 참조하면, 메인 컨트롤러(310)가 데이터(A)를 포함하는 라이트 명령(CMD Write A)을 제1메인 채널(CHA)을 통해 제1불휘발성 메모리 장치(NVM_A 또는 411-1)로 전송하면, 제1불휘발성 메모리 장치(NVM_A)의 제1제어 회로(413-1)는 데이터(A)를 제1불휘발성 메모리 장치(NVM_A)의 데이터 버퍼(미도시)에 저장할 수 있다.
그 후에, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (program confirm command; CMD PGM)을 제1메인 채널(CHA)을 통해 제1불휘발성 메모리 장치(NVM_A)로 전송하면, 제1제어 회로(413-1)는 제1불휘발성 메모리 장치 (NVM_A)의 데이터 버퍼에 저장된 데이터(A)를 제1불휘발성 메모리 장치(NVM_A)의 메모리 셀 어레이(Memory Cell Array)에 프로그램할 수 있다.
제1불휘발성 메모리 장치(NVM_A)에서 프로그램 작동(PROGRAM)이 수행될 때 또는 수행되는 도중에, 제1제어 회로(413-1)는 제1불휘발성 메모리 장치(NVM_A)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 제1상태 신호를 전용 채널 (DCH)을 통해 나머지 불휘발성 메모리 장치들(NVM_B~NVM_F)로 전송할 수 있다.
각 불휘발성 메모리 장치(NVM_B~NVM_F)의 각 제어 회로(413-2~413-n)는 제1상태 신호의 수신을 카운트할 수 있다. 이때, 각 제어 회로(413-2~413-n)는 카운트 값을 "0"으로부터 "1"로 변경할 수 있다.
각 제어 회로(413-2~413-n)는, 제1상태 신호에 기초하여, 제1불휘발성 메모리 장치(NVM_A)에서 프로그램 작동(PROGRAM)이 수행중임을 판단할 수 있다.
계속하여, 메인 컨트롤러(310)가 데이터(B)를 포함하는 라이트 명령(CMD Write B)을 제1메인 채널(CHA)을 통해 제2불휘발성 메모리 장치(NVM_B 또는 411-2)로 전송하면, 제2불휘발성 메모리 장치(NVM_B)의 제2제어 회로(413-2)는 데이터(B)를 제2불휘발성 메모리 장치(NVM_B)의 데이터 버퍼(미도시)에 저장할 수 있다.
그 후, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (CMD PGM)을 제1메인 채널(CHA)을 통해 제2불휘발성 메모리 장치(NVM_B)로 전송하면, 제2제어 회로(413-2)는 제2불휘발성 메모리 장치(NVM_B)의 데이터 버퍼에 저장된 데이터(B)를 제2불휘발성 메모리 장치(NVM_B)의 메모리 셀 어레이(Memory Cell Array)에 프로그램할 수 있다.
제2불휘발성 메모리 장치(NVM_B)에서 프로그램 작동(PROGRAM)이 수행될 때 또는 수행되는 도중에, 제2제어 회로(413-2)는 제2불휘발성 메모리 장치(NVM_B)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 제2상태 신호를 전용 채널 (DCH)을 통해 나머지 불휘발성 메모리 장치들(NVM_A, 및 NVM_C~NVM_F)로 전송할 수 있다.
각 불휘발성 메모리 장치(NVM_A, 및 NVM_C~NVM_F)의 각 제어 회로(413-1, 및 413-3~413-n)는 제2상태 신호의 수신을 카운트할 수 있다. 즉, 각 제어 회로(413-3~413-n)는 카운트 값을 "1"로부터 "2"로 변경할 수 있다. 또한, 제어 회로(413-1)는 카운트 값을 "0"으로부터 "1"로 변경할 수 있다.
각 제어 회로(413-1, 및 413-3~413-n)는, 제2상태 신호에 기초하여, 제2불휘발성 메모리 장치(NVM_B)에서 프로그램 작동(PROGRAM)이 수행중임을 판단할 수 있다.
각 불휘발성 메모리 장치(NVM_C~NVM_F)의 관점에서 볼 때, 각 불휘발성 메모리 장치(NVM_C~NVM_F)의 제어 회로(413-3~413-n)는, 전용 채널(DCH)을 통해 수신된 제1상태 신호와 제2상태 신호에 기초하여, 불휘발성 메모리 장치들(NVM_A와 NVM_B) 각각에서 대응되는 프로그램 작동(PROGRAM)이 수행중임을 판단할 수 있다.
메인 컨트롤러(310)가 데이터(C)를 포함하는 라이트 명령(CMD Write C)을 제1메인 채널(CHA)을 통해 제3불휘발성 메모리 장치(NVM_C)로 전송하면, 제3불휘발성 메모리 장치(NVM_C)의 제3제어 회로(413-3)는 데이터(C)를 제3불휘발성 메모리 장치(NVM_C)의 데이터 버퍼(미도시)에 저장할 수 있다.
그 후, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (CMD PGM)을 제1메인 채널(CHA)을 통해 제3불휘발성 메모리 장치(NVM_C)로 전송하면, 제3제어 회로(413-3)는, 불휘발성 메모리 장치들(NVM_A와 NVM_B)에서 프로그램 작동(PROGRAM)이 현재 수행되고 있음을 판단하고 있으므로, 제3불휘발성 메모리 장치(NVM_C)의 데이터 버퍼에 저장된 데이터(C)를 제3불휘발성 메모리 장치(NVM_C)의 메모리 셀 어레이(Memory Cell Array)에 프로그램하지 않고 대기 상태(IDLE)를 유지한다. 예컨대, 제3불휘발성 메모리 장치(NVM_C)는 카운트 값 2에 기초하여 대기 상태(IDLE)를 유지할 수 있다.
제3불휘발성 메모리 장치(NVM_C)에서 대기 상태(IDLE)가 유지되는 동안, 제1불휘발성 메모리 장치(NVM_A)에서 프로그램 작동(PROGRAM)이 완료되면, 제1불휘발성 메모리 장치(NVM_A)의 제1제어 회로(413-1)는 프로그램 작동(PROGRAM)의 완료를 나타내는 제1상태 신호를 전용 채널(DCH)을 통해 각 불휘발성 메모리 장치 (NVM_B~NVM_F)로 전송할 수 있다. 각 불휘발성 메모리 장치(NVM_B~NVM_F)의 제어 회로(413-2~413-n)는 프로그램 작동(PROGRAM)의 완료를 나타내는 제1상태 신호에 응답하여 카운트 값을 "2"로부터 "1"로 변경할 수 있다.
따라서, 제3불휘발성 메모리 장치(NVM_C)의 제3제어 회로(413-3)는, 카운트 값 "1"과 프로그램 명령, 예컨대 프로그램 확인 명령(CMD PGM)에 응답하여, 제3불휘발성 메모리 장치(NVM_C)의 데이터 버퍼에 저장된 데이터(C)를 제3불휘발성 메모리 장치(NVM_C)의 메모리 셀 어레이(Memory Cell Array)에 프로그램할 수 있다.
이때, 제3제어 회로(413-3)는 제3불휘발성 메모리 장치(NVM_C)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 제3상태 신호를 전용 채널(DCH)을 통해 불휘발성 메모리 장치들(NVM_A, NVM_B, 및 NCM_D~NVM_F)로 전송할 수 있다.
각 불휘발성 메모리 장치(NVM_A, NVM_B, 및 NVM_D~NVM_F)의 각 제어 회로 (413-1, 413-2, 및 414-4~413-n)는 제3상태 신호의 수신을 카운트할 수 있다. 즉, 각 제어 회로(413-1, 413-2, 및 414-4~413-n)는 카운트 값을 "1"로부터 "2"로 변경할 수 있다.
제2불휘발성 메모리 장치(NVM_B)와 제3불휘발성 메모리 장치(NVM_C)에서 동시에 또는 병렬적으로 프로그램 작동(PROGRAM)이 수행되는 동안, 나머지 불휘발성 메모리 장치들(NVM_A, 및 NVM_D~NVM_F)에 대한 프로그램 작동은 수행되지 않는다.
라이트 명령(CMD Write D)은 데이터(D)를 제4불휘발성 메모리 장치(NVM_D)에 라이트하기 위한 명령이고, 라이트 명령(CMD Write E)은 데이터(E)를 제5불휘발성 메모리 장치(NVM_E)에 라이트하기 위한 명령이고, 라이트 명령(CMD Write F)은 데이터(F)를 제n불휘발성 메모리 장치(NVM_F)에 라이트하기 위한 명령이다.
제2불휘발성 메모리 장치(NVM_B)에 대한 프로그램 작동이 완료되면, 불휘발성 메모리 장치들(NVM_D~NVM_F) 중에서 어느 하나에 대한 프로그램 작동이 수행될 수 있다.
즉, 복수의 불휘발성 메모리 장치들(NVM_A~NVM_F) 중에서 2개의 불휘발성 메모리 장치들에 대한 프로그램 작동이 동시에 또는 병렬적으로 수행될 때, 나머지 불휘발성 메모리 장치들 각각에 대한 프로그램 작동은 수행되지 않고 대기 상태 (IDLE)를 유지할 수 있다.
상술한 바와 같이, 불휘발성 메모리 장치들(NVM_A~NVM_F) 중에서 현재 작동하는 불휘발성 메모리 장치는 작동 여부를 나타내는 상태 정보를 전용 채널(DCH)을 통해 다른 불휘발성 메모리 장치들로 전송할 수 있다.
도 2에서는 상태 정보가 전용 채널(DCH)을 통해 전송되는 실시 예가 도시되어 있으나, 실시 예에 따라, 상기 상태 정보는 제1메인 채널(CHA)을 통해 전송될 수 있도록 설계 변경될 수 있다.
실시 예에 따라, 각 불휘발성 메모리 장치(NVM_A~NVM_F)로부터 출력되는 상태 정보는 불휘발성 메모리 장치들(NVM_A~NVM_F)의 작동 순서를 결정하는 정보(또는 "신호"라고도 함)를 포함할 수 있다.
다른 실시 예들에 따라, 상태 정보는 불휘발성 메모리 장치들(NVM_A~NVM_F) 중에서 동시에 작동할 수 있는 불휘발성 메모리 장치들의 개수를 결정하는 정보를 포함할 수 있다.
도 2에서는 설명의 편의를 위해, 제1메인 채널(CHA)에 접속된 불휘발성 메모리 장치들(NVM_A~NVM_F) 각각이 상태 정보를 주거나 받는 실시 예에 도시되어 있으나, 제1메인 채널(CHA)에 접속된 불휘발성 메모리 장치들(NVM_A~NVM_F) 각각은 나머지 메인 채널들(CHB, ..., CHC) 각각에 접속된 불휘발성 메모리 장치들 각각과 상태 정보를 주거나 받을 수 있다.
예컨대, 메모리 클러스터(400)의 제1메인 채널(CHA)에 접속된 불휘발성 메모리 장치들 중에서 어느 하나와 다른 메인 채널(CHB 또는 CHC)에 접속된 불휘발성 메모리 장치들 중에서 어느 하나는 동시에 또는 병렬적으로 작동할 수 있다.
본 발명의 실시 예에 따른 메모리 클러스터(400)에 포함된 불휘발성 메모리 장치들 중에서 어느 하나(예컨대, 제1불휘발성 메모리 장치)는 상기 불휘발성 메모리 장치들 중에서 나머지 불휘발성 메모리 장치들(예컨대, 제2불휘발성 메모리 장치들) 각각과 상태 정보를 주거나 받을 수 있으므로, 메모리 클러스터(400)는, 메인 컨트롤러(310)의 제어 또는 개입 없이, 순간 최대 전력을 관리할 수 있는 효과가 있다.
상술한 바와 같이, 상태 정보는 메모리 클러스터(400)에 포함된 불휘발성 메모리 장치들 각각의 작동 시작 여부, 상기 불휘발성 메모리 장치들의 작동 순서, 및/또는 상기 불휘발성 메모리 장치들 중에서 최대로 작동할 수 있는 불휘발성 메모리 장치들의 개수를 결정하는데 사용될 수 있다. 도 3에서 "NVM OPERATION"은 프로그램 작동(PROGRAM)과 대기 상태(IDLE)를 나타내다.
도 4는 도 1에 도시된 제1클러스터의 다른 실시 예를 나타내는 블록도이고, 도 5는 도 1에 도시된 제1클러스터의 또 다른 실시 예를 나타내는 블록도이고, 도 6은 도 1에 도시된 제1클러스터의 또 다른 실시 예를 나타내는 블록도이고, 도 7은 도 4, 도 5, 또는 도 6에 도시된 제1클러스터의 작동을 설명하는 타이밍 도이다.
도 1, 도 4, 및 도 7을 참조하면, 제1클러스터(410B)에 포함된 불휘발성 메모리 장치들(412-1~412-4) 각각은 매니지드(managed) 불휘발성 메모리 장치, 예컨대 매니지드 NAND 플래시 메모리 장치 또는 매니지드 NAND 플래시 메모리 패키지를 의미할 수 있다.
각 매니지드 불휘발성 메모리 장치(412-1~412-4)는 불휘발성 메모리 칩들(예컨대, NAND 플래시 메모리 칩들(NAND))와, 상기 불휘발성 메모리 칩들(NAND)을 액세스하고 관리하는 각 컨트롤러(414-1~414-4)를 포함할 수 있다. 각 컨트롤러(414-1~414-4)는 메모리 관리 기능들(예컨대, 웨어 레벨링(wear leveling), 배드 블록 관리(bad block management), 등)을 수행할 수 있다. 각 컨트롤러(414-1~414-4)는 데이터 에러를 검출하고 정정할 수 있는 에러 정정 코드(error correction code(ECC)) 엔진을 포함할 수 있다.
도 4에서는 설명의 편의를 위해, 메인 컨트롤러(310)와 PMIC(370)는 제1클러스터(410B)와 함께 도시된다. 도 1의 각 클러스터(410, 430, ... 450)의 구조는 실질적으로 동일 또는 유사하므로, 제1클러스터(410B)의 구조와 작동이 대표적으로 도시되고 설명된다.
메인 컨트롤러(310)는, 제1메인 채널(CHA)을 통해, 각 불휘발성 메모리 장치 (412-1~412-4)의 작동을 제어할 수 있다. 도 4에는 설명의 편의를 위해, 4개의 불휘발성 메모리 장치들(412-1~412-4)이 도시되어 있으나, 본 발명의 기술적 사상은 제1클러스터(410B)에 포함된 불휘발성 메모리 장치들(412-1~412-4)의 개수에 한정되는 것은 아니다.
PMIC(370)는 메인 컨트롤러(310)와 각 불휘발성 메모리 장치(412-1~412-4)로 상응하는 작동 전압(또는 파워(power))을 공급할 수 있다.
제1클러스터(410B)는 불휘발성 메모리 장치들(412-1~412-4)과 전력 관리 제어 회로(415)를 포함할 수 있다. 도 4를 참조하면, 데이터 저장 장치(300)의 PMIC (370)가 (프로그램 작동을 위해) 공급할 수 있는 최대 전력은, 불휘발성 메모리 장치들(412-1~412-4) 중에서 2개의 불휘발성 메모리 장치들에서 동시에 프로그램 작동들이 수행될 때 소모되는 전력과 동일하다고 가정한다. 이때, 최대값 또는 기준값은 2라고 가정한다.
또한, 제어 신호(CTRL)에 응답하여 제1불휘발성 메모리 장치(STORAGE1 또는 412-1)가 가장 먼저 작동한다고 가정한다. 도 7에 도시된 바와 같이 제어 신호 (CTRL)는 불휘발성 메모리 장치들(STORAGE1~STORAGE4)의 작동 순서를 제어한다고 가정한다.
도 4와 도 7을 참조하면, 메인 컨트롤러(310)가 데이터(A)를 포함하는 라이트 명령(CMD Write A)을 제1메인 채널(CHA)을 통해 제1불휘발성 메모리 장치 (STORAGE1)로 전송하면, 제1불휘발성 메모리 장치(STORAGE1)의 제1컨트롤러(414-1)는 데이터(A)를 제1불휘발성 메모리 장치(STORAGE1)의 데이터 버퍼(미도시)에 저장할 수 있다.
그 후, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (CMD PGM)을 제1불휘발성 메모리 장치(STORAGE1)로 전송하면, 제1컨트롤러(414-1)는 제1불휘발성 메모리 장치(STORAGE1)의 데이터 버퍼에 저장된 데이터(A)를 제1불휘발성 메모리 장치(STORAGE1)에 포함된 메모리 칩들(NAND) 중에서 어느 하나의 칩에 포함된 메모리 셀 어레이에 프로그램할 수 있다.
데이터(A)가 프로그램될 때 또는 프로그램되는 도중에, 제1컨트롤러(414-1)는 제1불휘발성 메모리 장치(STORAGE1)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 활성화된 제1작동 지시 신호(TX1)를 전력 관리 제어 회로(415)로 출력할 수 있다.
전력 관리 제어 회로(415)는, 활성화된 제1작동 지시 신호(TX1)에 응답하여, 비활성화된 작동 제어 신호(RX)와 제어 신호(CTRL)를 불휘발성 메모리 장치들 (STORAGE1~STORAGE4)로 전송할 수 있다.
제1불휘발성 메모리 장치(STORAGE1)에서 프로그램 작동(PROGRAM)이 수행되는 도중에, 메인 컨트롤러(310)가 데이터(B)를 포함하는 라이트 명령(CMD Write B)을 제1메인 채널(CHA)을 통해 제2불휘발성 메모리 장치(STORAGE2 또는 412-2)로 전송하면, 제2불휘발성 메모리 장치(STORAGE2)의 제2컨트롤러(414-2)는 데이터(B)를 제2불휘발성 메모리 장치(STORAGE2)의 데이터 버퍼(미도시)에 저장할 수 있다. 제어 신호(CTRL)에 따라, 제2불휘발성 메모리 장치(STORAGE2)에 대한 프로그램 작동이 수행될 수 있다.
그 후, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (CMD PGM)을 제1메인 채널(CHA)을 통해 제2불휘발성 메모리 장치(STORAGE2)로 전송하면, 제2컨트롤러(414-2)는 제2불휘발성 메모리 장치(STORAGE2)의 데이터 버퍼에 저장된 데이터(B)를 제2불휘발성 메모리 장치(STORAGE2)에 포함된 메모리 칩들 (NAND) 중에서 어느 하나의 칩에 포함된 메모리 셀 어레이에 프로그램할 수 있다.
데이터(B)가 프로그램될 때 또는 프로그램되는 도중에, 제2컨트롤러(414-2)는 제2불휘발성 메모리 장치(STORAGE2)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 활성화된 제2작동 지시 신호(TX2)를 전력 관리 제어 회로(415)로 출력할 수 있다.
전력 관리 제어 회로(415)는, 활성화된 제2작동 지시 신호(TX2)에 응답하여, 활성화된 작동 제어 신호(RX)를 불휘발성 메모리 장치들(STORAGE1~STORAGE4)로 전송할 수 있다. 즉, 최대값 또는 기준 값이 2일 때, 전력 관리 제어 회로(415)는, 활성화된 제1작동 지시 신호(TX1)와 활성화된 제2작동 지시 신호(TX2)에 응답하여, 활성화된 작동 제어 신호(RX)를 생성할 수 있다. 이때, 전력 관리 제어 회로(415)는, 비지(BUSY)를 나타내는 제어 신호(CTRL)를 불휘발성 메모리 장치들 (STORAGE1~STORAGE4)로 전송할 수 있다.
메인 컨트롤러(310)가 데이터(C)를 포함하는 라이트 명령(CMD Write C)을 제1메인 채널(CHA)을 통해 제3불휘발성 메모리 장치(STORAGE3)로 전송하면, 제3불휘발성 메모리 장치(STORAGE3)의 제3컨트롤러(414-3)는 데이터(C)를 제3불휘발성 메모리 장치(STORAGE3)의 데이터 버퍼(미도시)에 저장할 수 있다.
그 후, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (CMD PGM)을 제1메인 채널(CHA)을 통해 제3불휘발성 메모리 장치(STORAGE3)로 전송하면, 제3컨트롤러(414-3)는, 활성화된 작동 제어 신호(RX) 및/또는 비지(BUSY)를 나타내는 제어 신호(CTRL)에 응답하여, 제3불휘발성 메모리 장치(STORAGE3)의 데이터 버퍼에 저장된 데이터(C)를 제3불휘발성 메모리 장치(STORAGE3)에 포함된 메모리 칩들(NAND) 중에서 어느 하나의 칩에 포함된 메모리 셀 어레이에 프로그램하지 않고 대기 상태(IDLE)를 유지한다.
제1불휘발성 메모리 장치(STORAGE1)에서 프로그램 작동(PROGRAM)이 완료되면, 제1불휘발성 메모리 장치(STORAGE1)의 제1컨트롤러(414-1)는 프로그램 작동 (PROGRAM)의 완료를 나타내는 비활성화된 제1작동 지시 신호(TX1)를 전력 관리 제어 회로(415)로 출력할 수 있다.
전력 관리 제어 회로(415)는, 비활성화된 제1작동 지시 신호(TX1)에 응답하여, 비활성화된 작동 제어 신호(RX)와 제3불휘발성 메모리 장치(STORAGE3)의 작동 시작을 제어하는 제어 신호(CTRL)를 불휘발성 메모리 장치들(STORAGE1~STORAGE4)로 전송할 수 있다.
제3불휘발성 메모리 장치(STORAGE3)의 제3컨트롤러(414-3)는, 비활성화된 작동 제어 신호(RX)와 제3불휘발성 메모리 장치(STORAGE3)의 작동 시작을 제어하는 제어 신호(CTRL)에 응답하여, 제3불휘발성 메모리 장치(STORAGE3)의 데이터 버퍼에 저장된 데이터(C)를 제3불휘발성 메모리 장치(STORAGE3)에 포함된 메모리 칩들 (NAND) 중에서 어느 하나의 칩에 포함된 메모리 셀 어레이에 프로그램할 수 있다.
데이터(C)가 프로그램될 때 또는 프로그램되는 도중에, 제3컨트롤러(414-3)는 제3불휘발성 메모리 장치(STORAGE3)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 활성화된 제3작동 지시 신호(TX3)를 전력 관리 제어 회로(415)로 출력할 수 있다.
전력 관리 제어 회로(415)는, 활성화된 제3작동 지시 신호(TX3)에 응답하여, 활성화된 작동 제어 신호(RX)를 불휘발성 메모리 장치들(STORAGE1~STORAGE4)로 전송할 수 있다. 즉, 최대값 또는 기준 값이 2일 때, 전력 관리 제어 회로(415)는, 활성화된 제2작동 지시 신호(TX2)와 활성화된 제3작동 지시 신호(TX3)에 응답하여, 활성화된 작동 제어 신호(RX)를 생성할 수 있다. 이때, 전력 관리 제어 회로(415)는, 비지(BUSY)를 나타내는 제어 신호(CTRL)를 불휘발성 메모리 장치들 (STORAGE1~STORAGE4)로 전송할 수 있다.
메인 컨트롤러(310)가 데이터(D)를 포함하는 라이트 명령(CMD Write D)을 제1메인 채널(CHA)을 통해 제4불휘발성 메모리 장치(STORAGE4)로 전송하면, 제4불휘발성 메모리 장치(STORAGE4)의 제4컨트롤러(414-4)는 데이터(D)를 제4불휘발성 메모리 장치(STORAGE4)의 데이터 버퍼(미도시)에 저장할 수 있다.
그 후, 메인 컨트롤러(310)가 프로그램 명령, 예컨대 프로그램 확인 명령 (CMD PGM)을 제4불휘발성 메모리 장치(STORAGE4)로 전송하면, 제4컨트롤러(414-4)는, 활성화된 작동 제어 신호(RX) 및/또는 비지(BUSY)를 나타내는 제어 신호(CTRL)에 응답하여, 제4불휘발성 메모리 장치(STORAGE4)의 데이터 버퍼에 저장된 데이터 (D)를 제4불휘발성 메모리 장치(STORAGE4)에 포함된 메모리 칩들(NAND) 중에서 어느 하나의 칩에 포함된 메모리 셀 어레이에 프로그램하지 않고 대기 상태(IDLE)를 유지할 수 있다.
제4불휘발성 메모리 장치(STORAGE4)에 대한 대기 상태(IDLE)가 유지되는 동안, 제2불휘발성 메모리 장치(STORAGE2)에서 프로그램 작동(PROGRAM)이 완료되면, 제2불휘발성 메모리 장치(STORAGE2)의 제2컨트롤러(414-2)는 프로그램 작동 (PROGRAM)의 완료를 나타내는 비활성화된 제2작동 지시 신호(TX2)를 전력 관리 제어 회로(415)로 출력할 수 있다.
전력 관리 제어 회로(415)는, 비활성화된 제2작동 지시 신호(TX2)에 응답하여, 비활성화된 작동 제어 신호(RX)와 제4불휘발성 메모리 장치(STORAGE4)의 작동 시작을 제어하는 제어 신호(CTRL)를 불휘발성 메모리 장치들(STORAGE1~STORAGE4)로 전송할 수 있다.
제4불휘발성 메모리 장치(STORAGE4)의 제4컨트롤러(414-4)는, 비활성화된 작동 제어 신호(RX)와 제4불휘발성 메모리 장치(STORAGE4)의 작동 시작을 제어하는 제어 신호(CTRL)에 응답하여, 제4불휘발성 메모리 장치(STORAGE4)의 데이터 버퍼에 저장된 데이터(D)를 제4불휘발성 메모리 장치(STORAGE4)에 포함된 메모리 칩들 (NAND) 중에서 어느 하나의 칩에 포함된 메모리 셀 어레이에 프로그램할 수 있다.
데이터(D)가 프로그램될 때 또는 프로그램되는 도중에, 제4컨트롤러(414-4)는 제4불휘발성 메모리 장치(STORAGE4)에서 프로그램 작동(PROGRAM)이 현재 수행중임을 나타내는 활성화된 제4작동 지시 신호(TX4)를 전력 관리 제어 회로(415)로 출력할 수 있다.
전력 관리 제어 회로(415)는, 활성화된 제4작동 지시 신호(TX4)에 응답하여, 활성화된 작동 제어 신호(RX)를 불휘발성 메모리 장치들(STORAGE1~STORAGE4)로 전송할 수 있다. 즉, 최대값 또는 기준 값이 2일 때, 전력 관리 제어 회로(415)는, 활성화된 제3작동 지시 신호(TX3)와 활성화된 제4작동 지시 신호(TX4)에 응답하여, 활성화된 작동 제어 신호(RX)를 생성할 수 있다. 이때, 전력 관리 제어 회로(415)는, 비지(BUSY)를 나타내는 제어 신호(CTRL)를 불휘발성 메모리 장치들 (STORAGE1~STORAGE4)로 전송할 수 있다.
예컨대, 제어 신호(CTRL)에 포함된 "1"은 제1불휘발성 메모리 장치 (STORAGE1)의 작동을 지시하는 신호를 의미할 수 있고, 제어 신호(CTRL)에 포함된 "2"는 제2불휘발성 메모리 장치(STORAGE2)의 작동을 지시하는 신호를 의미할 수 있고, 제어 신호(CTRL)에 포함된 "3"은 제3불휘발성 메모리 장치(STORAGE3)의 작동을 지시하는 신호를 의미할 수 있고, 제어 신호(CTRL)에 포함된 "4"는 제4불휘발성 메모리 장치(STORAGE4)의 작동을 지시하는 신호를 의미할 수 있다.
도 7에서, 상태 정보(STS)는 작동 제어 신호(RX)와 제어 신호(CTRL)를 포함할 수 있다. 상술한 바와 같이, 상태 정보(STS)는 메모리 클러스터(400)에 포함된 불휘발성 메모리 장치들 각각의 작동 시작 여부, 상기 불휘발성 메모리 장치들의 작동 순서, 및/또는 상기 불휘발성 메모리 장치들 중에서 최대로 작동할 수 있는 불휘발성 메모리 장치들의 개수를 결정하는데 사용될 수 있다.
본 명세서에서 "작동 지시 신호에 관련된 상태 정보(또는 상태 신호)"는 도 2를 참조하여 설명한 바와 같이 현재 작동하는 불휘발성 메모리 장치로부터 출력된 상태 정보 그 자체를 의미할 수 있고, 도 4를 참조하여 설명한 바와 같이 작동 지시 신호(TXi, i는 1, 2, 3, 또는 4)에 기초하여 전력 관리 제어 회로(145)에 의해 생성된 상태 정보(STS)를 의미할 수 있다.
실시 예들에 따라, 메모리 클러스터(400)가 하나의 전력 관리 제어 회로 (415)만을 포함할 때, 전력 관리 제어 회로(415)는, 각 메인 채널(CHA, CHB, ..., CHC)에 접속된 불휘발성 메모리 장치들 각각으로부터 출력된 각 작동 지시 신호에 응답하여, 상태 정보(STS)를 각 메인 채널(CHA, CHB, ..., CHC)에 접속된 상기 불휘발성 메모리 장치들 각각으로 전송할 수 있다.
예컨대, 메모리 클러스터(400)의 제1메인 채널(CHA)에 접속된 불휘발성 메모리 장치들 중에서 어느 하나와 다른 메인 채널(CHB 또는 CHC)에 접속된 불휘발성 메모리 장치들 중에서 어느 하나는 동시에 또는 병렬적으로 작동할 수 있다.
도 4를 참조하면, 전력 관리 제어 회로(415)는 독립된 회로를 구현될 수 있다.
도 5를 참조하면, 전력 관리 제어 회로(415)는 메인 컨트롤러(310A)의 내부에 구현될 수 있다. 전력 관리 제어 회로(415)를 제외하면, 도 1에 도시된 메인 컨트롤러(310)의 구조와 작동은 도 5에 도시된 메인 컨트롤러(310A)의 구조와 작동과 실질적으로 동일 또는 유사하다. 즉, 제1클러스터(410B-1)는 매니지드 불휘발성 메모리 장치들(412-1~412-4)을 포함할 수 있다.
도 6을 참조하면, 전력 관리 제어 회로(415)는 불휘발성 메모리 장치들 중에서 어느 하나의 불휘발성 메모리 장치(예컨대, 412-4A)에 포함될 수 있다. 전력 관리 제어 회로(415)를 제외하면, 도 4에 도시된 제4불휘발성 메모리 장치(412-4)의 구조와 작동은 도 6에 도시된 제4불휘발성 메모리 장치(412-4A)의 구조와 작동과 실질적으로 동일 또는 유사하다. 즉, 제1클러스터(410B-2)는 매니지드 불휘발성 메모리 장치들(412-1, 412-2, 412-3, 및 412-4A)을 포함할 수 있다.
실시 예들에 따라, 각 신호(TXi, RX, 및 CTRL)가 양방향 신호로 구현될 때, 신호들(TXi, RX, 및 CTRL)은 하나의 신호로 구현될 수 있다. 이때, i는 1, 2, 3, 및 4일 수 있다.
도 8은 도 1에 도시된 데이터 저장 장치의 구체적인 블록도이고, 도 9는 도 8에 도시된 제1클러스터의 실시 예를 나타내는 블록도이다. 도 8에 도시된 데이터 저장 장치(300)는 스케일-아웃(scale-out) 구조로 구현될 수 있다. 제1클러스터 (410)는 적어도 하나의 스케일-아웃 장치(416-1)와 제1불휘발성 메모리 장치 그룹 (GP1)을 포함할 수 있다. 나머지 클러스터들(430~450) 각각의 구조는 제1클러스터 (410)의 구조와 실질적으로 동일 또는 유사하다.
도 1, 도 8, 및 도 9를 참조하면, 각 클러스터(410, 430, ..., 450)의 구조와 작동은 실질적으로 동일 또는 유사하므로, 제1클러스터(410C)의 구조와 작동이 대표적으로 설명된다.
제1클러스터(410C)는 스케일-아웃 장치들(416-1~416-k, k는 3 이상의 자연수)과 불휘발성 메모리 장치 그룹들(GP1~GPk)을 포함할 수 있다. 각 스케일-아웃 장치(416-1~416-k)는 각 스케일-아웃 컨트롤러(415-1~415-k)와 각 휘발성 메모리(417-1~417-k)를 포함할 수 있다. 예컨대, 스케일-아웃 컨트롤러(415-1~415-k) 각각은 전용 채널(DCH1)을 통해 본 명세서에서 이미 상세히 설명된 상태 정보를 서로 주거나 받을 수 있다.
제1스케일-아웃 컨트롤러(415-1)는 제1메인 채널(CHA), 채널들(CH11~CH1m; m은 2 이상의 자연수), 및 제1휘발성 메모리(417-1)에 접속될 수 있다. 각 채널 (CH11~CH1m)에는 대응되는 불휘발성 메모리 장치들(NAND)이 접속될 수 있다. 예컨대, 불휘발성 메모리 장치들(NAND)은 NAND-타입 플래시 메모리들 또는 매니지드 NAND 플래시 메모리 장치들일 수 있으나 이에 한정되는 것은 아니다.
제1스케일-아웃 컨트롤러(415-1)는 각 채널(CH11~CH1m)을 통해 불휘발성 메모리 장치들(NAND) 각각의 작동을 제어할 수 있다. 예컨대, 메인 컨트롤러(310)는 제1스케일-아웃 컨트롤러(415-1)의 작동을 제어할 수 있다.
제1휘발성 메모리(417-1)는 각 채널(CH11~CH1m)에 접속된 대응되는 불휘발성 메모리 장치들(NAND)에 대한 논리 어드레스-물리 어드레스 매핑 정보(또는 매핑 테이블)를 저장할 수 있는 제1영역을 포함할 수 있다. 또한, 제1휘발성 메모리(417-1)는 각 채널(CH11~CH1m)에 접속된 대응되는 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나에 라이트될 데이터 또는 각 채널(CH11~CH1m)에 접속된 대응되는 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나로부터 출력된 데이터를 임시로 저장할 수 있는 제2영역(또는 캐시 영역)을 더 포함할 수 있다.
제2스케일-아웃 컨트롤러(415-2)는 제1메인 채널(CHA), 채널들(CH21~CH2m), 및 제2휘발성 메모리(417-2)에 접속될 수 있다. 각 채널(CH21~CH2m)에는 대응되는 불휘발성 메모리 장치들(NAND)이 접속될 수 있다.
제2스케일-아웃 컨트롤러(415-2)는 각 채널(CH21~CH2m)을 통해 불휘발성 메모리 장치들(NAND) 각각의 작동을 제어할 수 있다. 예컨대, 메인 컨트롤러(310)는 제2스케일-아웃 컨트롤러(415-2)의 작동을 제어할 수 있다.
제2휘발성 메모리(417-2)는 각 채널(CH21~CH2m)에 접속된 대응되는 불휘발성 메모리 장치들(NAND)에 대한 논리 어드레스-물리 어드레스 매핑 정보(또는 매핑 테이블)를 저장할 수 있는 제1영역을 포함할 수 있다. 또한, 제2휘발성 메모리(417-2)는 각 채널(CH21~CH2m)에 접속된 대응되는 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나에 라이트될 데이터 또는 각 채널(CH21~CH2m)에 접속된 대응되는 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나로부터 출력된 데이터를 임시로 저장할 수 있는 제2영역(또는 캐시 영역)을 더 포함할 수 있다.
제k스케일-아웃 컨트롤러(415-k)는 제1메인 채널(CHA), 채널들(CHk1~CHkm), 및 제k휘발성 메모리(417-k)에 접속될 수 있다. 각 채널(CHk1~CHkm)에는 대응되는 불휘발성 메모리 장치들(NAND)이 접속될 수 있다.
제k스케일-아웃 컨트롤러(415-k)는 각 채널(CHk1~CHkm)을 통해 불휘발성 메모리 장치들(NAND) 각각의 작동을 제어할 수 있다. 예컨대, 메인 컨트롤러(310)는 제k스케일-아웃 컨트롤러(415-k)의 작동을 제어할 수 있다.
제k휘발성 메모리(417-k)는 각 채널(CHk1~CHkm)에 접속된 대응되는 불휘발성 메모리 장치들(NAND)에 대한 논리 어드레스-물리 어드레스 매핑 정보(또는 매핑 테이블)를 저장할 수 있는 제1영역을 포함할 수 있다. 또한, 제k휘발성 메모리(417-k)는 각 채널(CHk1~CHkm)에 접속된 대응되는 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나에 라이트될 데이터 또는 각 채널(CHk1~CHkm)에 접속된 대응되는 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나로부터 출력된 데이터를 임시로 저장할 수 있는 제2영역(또는 캐시 영역)을 더 포함할 수 있다.
각 휘발성 메모리(417-1~417-k)는 버퍼 또는 버퍼 메모리를 의미할 수 있고, RAM, SRAM, 또는 DRAM으로 구현될 수 있으나 이에 한정되는 것은 아니다.
각 스케일-아웃 컨트롤러들(415-1~415-k)은 전용 채널(DCH1)을 통해 작동 지시 신호와 상태 정보를 주거나 받을 수 있다.
각 채널(CH11~CH1m)에 접속된 불휘발성 메모리 장치들(NAND) 각각은 작동 지시 신호와 상태 정보를 제1스케일-아웃 컨트롤러(415-1)와 주거나 받을 수 있다.
실시 예에 따라, 제1스케일-아웃 컨트롤러(415-1)는 도 2에 도시된 제어 회로(413-1)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있다. 예컨대, 제1스케일-아웃 컨트롤러(415-1)는 도 2에 도시된 제어 회로(413-1)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있는 전력 제어 회로(426)를 포함할 수 있다.
각 채널(CH21~CH2m)에 접속된 불휘발성 메모리 장치들(NAND) 각각은 작동 지시 신호와 상태 정보를 제2스케일-아웃 컨트롤러(415-2)와 주거나 받을 수 있다.
실시 예에 따라, 제2스케일-아웃 컨트롤러(415-2)는 도 2에 도시된 제어 회로(413-2)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있다. 예컨대, 제2스케일-아웃 컨트롤러(415-2)는 도 2에 도시된 제어 회로(413-2)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있는 전력 제어 회로를 포함할 수 있다.
각 채널(CHk1~CHkm)에 접속된 불휘발성 메모리 장치들(NAND) 각각은 작동 지시 신호와 상태 정보를 제k스케일-아웃 컨트롤러(415-k)와 주거나 받을 수 있다.
도 2의 n과 도 9의 k가 동일하다고 가정하면, 실시 예에 따라, 제k스케일-아웃 컨트롤러(415-k)는 도 2에 도시된 제어 회로(413-n)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있다. 예컨대, 제k스케일-아웃 컨트롤러(415-k)는 도 2에 도시된 제어 회로(413-n)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있는 전력 제어 회로(426)를 포함할 수 있다.
다른 실시 예에 따라, 스케일-아웃 컨트롤러들(415-1~415-k) 중에서 어느 하나는 도 4에 도시된 전력 관리 제어 회로(415)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있다. 예컨대, 스케일-아웃 컨트롤러들(415-1~415-k) 중에서 어느 하나는 도 4에 도시된 전력 관리 제어 회로(415)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있는 전력 제어 회로(426)를 포함할 수 있다.
비록 도 9에서는 각 불휘발성 메모리 장치 그룹들(GP1~GPk) 각각이 동일한 채널들을 포함하는 것으로 도시되어 있으나, 실시 예들에 따라 각 불휘발성 메모리 장치 그룹들(GP1~GPk) 각각에 포함된 채널들의 개수는 서로 다를 수 있다.
도 1, 도 7, 및 도 9를 참조하면, 데이터 저장 장치(300)는 클러스터들(410, 430, ..., 450)을 포함하고, 클러스터들(410, 430, ..., 450) 각각의 구조는 제1클러스터(410C)의 구조와 실질적으로 동일 또는 유사하다고 가정한다. 데이터 저장 장치(300)의 PMIC(370)가 (프로그램 작동을 위해) 공급할 수 있는 최대 전력은 불휘발성 메모리 장치들 중에서 2개의 불휘발성 메모리 장치들에서 동시에 프로그램 작동들이 수행될 때 소모되는 전력과 동일하다고 가정한다.
실시 예에 따라, 제1스케일-아웃 컨트롤러(415-1)의 제어에 따라, 메모리 클러스터(400)의 채널(CH11)에 접속된 불휘발성 메모리 장치들 중에서 선택된 2개의 불휘발성 메모리 장치들이 동시에 또는 병렬적으로 작동할 수 있다.
다른 실시 예에 따라, 제1스케일-아웃 컨트롤러(415-1)의 제어에 따라, 메모리 클러스터(400)의 채널(CH11)에 접속된 불휘발성 메모리 장치들 중에서 선택된 어느 하나의 불휘발성 메모리 장치와 채널(CH1m)에 접속된 불휘발성 메모리 장치들 중에서 선택된 어느 하나의 불휘발성 메모리 장치는 동시에 또는 병렬적으로 작동할 수 있다.
또 다른 실시 예에 따라, 채널들(CH11~CH1m))에 접속된 불휘발성 메모리 장치들 중에서 제1스케일-아웃 컨트롤러(415-1)의 제어에 따라 선택된 어느 하나의 불휘발성 메모리 장치와 채널들(CH21~CH2m)에 접속된 불휘발성 메모리 장치들 중에서 제2스케일-아웃 컨트롤러(415-2)의 제어에 따라 선택된 어느 하나의 불휘발성 메모리 장치는 동시에 또는 병렬적으로 작동할 수 있다.
도 7을 참조하여 설명된 바와 같이, 메모리 클러스터(400)에 포함된 모든 불휘발성 메모리 장치들(NAND) 각각으로부터 출력된 작동 지시 신호는 스케일-아웃 컨트롤러들(415-1~415-k) 중에서 적어도 하나로 입력될 수 있고, 스케일-아웃 컨트롤러들(415-1~415-k) 중에서 적어도 하나로부터 출력된 작동 제어 신호와 제어 신호는 스케일-아웃 컨트롤러들(415-1~415-k) 중에서 적어도 하나를 통해 상기 모든 불휘발성 메모리 장치들로 전송될 수 있다.
따라서, 메모리 클러스터(400)의 제1메인 채널(CHA)에 접속된 불휘발성 메모리 장치들 중에서 어느 하나와 다른 메인 채널(CHB 또는 CHC)에 접속된 불휘발성 메모리 장치들 중에서 어느 하나는 동시에 또는 병렬적으로 작동할 수 있다.
도 10은 도 9에 도시된 제1스케일-아웃 장치의 개략도이고, 도 13은 도 10에 도시된 제1스케일-아웃 컨트롤러의 블록도이다.
도 1, 도 8부터 도 10, 및 도 13을 참조하면, 각 스케일-아웃 컨트롤러(415-1~415-k)의 구조와 작동은 실질적으로 동일 또는 유사하므로, 제1스케일-아웃 컨트롤러(415-1)의 구조와 작동이 대표적으로 설명될 것이다.
제1스케일-아웃 컨트롤러(415-1)는 메인 컨트롤러(310), 제1휘발성 메모리 (417-1), 및 제1불휘발성 메모리 장치 그룹(GP1)의 불휘발성 메모리 장치들(NAND) 사이에서 주거나 받는 명령 및/또는 데이터의 전송을 제어할 수 있다. 실시 예들에 따라, 제1스케일-아웃 컨트롤러(415-1)는 IC 또는 SoC로 구현될 수 있다.
제1스케일-아웃 컨트롤러(415-1)는 버스 구조(420), 제4인터페이스(421), 적어도 하나의 CPU(423-1 및/또는 423-2), 내부 메모리(425), 전력 제어 회로(426), 버퍼 컨트롤러(427), 및 제5인터페이스(429)를 포함할 수 있다.
버스 구조(420)는 AMBA, AHB, APB, AXI, ASB, ACE, 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
제4인터페이스(421)는 메인 컨트롤러(310)로 전송될 응답 및/또는 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 응답 및/또는 변경된 포맷을 갖는 데이터를 제1메인 채널(CHA)을 통해 메인 컨트롤러(310)로 전송할 수 있다. 또한, 제4인터페이스(421)는 메인 컨트롤러(310)로부터 전송된 명령 및/또는 데이터를 수신하고, 수신된 명령 및/또는 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 명령 및/또는 변경된 포맷을 갖는 데이터를 적어도 하나의 CPU (423-1 및/또는 423-2) 및/또는 버퍼 컨트롤러(427)로 전송할 수 있다. 실시 예에 따라, 제4인터페이스(421)는 신호 및/또는 데이터를 송수신할 수 있는 송수신기를 포함할 수 있다.
제4인터페이스(421)의 구조와 작동은 제3인터페이스(350)의 구조와 작동에 적합하게 구현될 수 있다. 예컨대, 제4인터페이스(421)는 SATA 인터페이스, SATAe 인터페이스, SAS 인터페이스, PCIe 인터페이스, NVMe 인터페이스, AHCI 인터페이스, MMC 인터페이스, NAND-타입 플래시 메모리 인터페이스, 또는 NOR-타입 플래시 메모리 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다. 실시 예에 따라, 도 10과 도 13을 참조하면, 제4인터페이스(421)는 하나의 채널(또는 하나의 메인 채널) 또는 하나의 웨이에 접속될 수 있다.
하나 또는 그 이상의 CPU(423-1 및/또는 423-3)는, 버스 구조(420)를 통해, 제4인터페이스(421), 내부 메모리(425), 버퍼 컨트롤러(427), 및 제5인터페이스 (429)를 제어할 수 있다. 각 CPU(423-1 및/또는 423-3)는 하나 또는 그 이상의 코어들을 포함할 수 있다.
예컨대, 제1CPU(423-1)는 제4인터페이스(421)를 통해 제3인터페이스(350)와 데이터를 주거나 받을 수 있고, 제2CPU(423-2)는 제5인터페이스(429)를 통해 각 채널(CH11~CH1m)에 접속된 불휘발성 메모리 장치들(NAND) 중에서 적어도 하나와 데이터를 주거나 받을 수 있다. 실시 예에 따라, 제1CPU(423-1)와 제2CPU(423-2)는 멀티-CPU를 구성할 수 있다. 실시 예에 따라, 제1CPU(423-1)는 제2CPU(423-2)를 제어할 수 있다.
내부 메모리(425)는 제1스케일-아웃 컨트롤러(415-1)의 작동에 필요한 데이터 또는 제1스케일-아웃 컨트롤러(415-1)에 의해 수행된 데이터 처리 작동(예컨대, 라이트 작동 또는 리드 작동)에 의해 생성된 데이터를 저장할 수 있다. 예컨대, 내부 메모리(4255)는 CPU(423-1 및/또는 423-2)에 의해 실행될 수 있는 제2FTL(flash translation layer) 코드를 저장할 수 있다. 예컨대, 데이터 저장 장치(300)가 부팅(booting)될 때, 제2FTL 코드는 메모리 클러스터(400)로부터 내부 메모리(425)로 로드될 수 있다. 실시 예들에 따라, 내부 메모리(425)는 RAM, DRAM, SRAM, 버퍼, 버퍼 메모리, 캐시, 또는 TCM으로 구현될 수 있으나 이에 한정되는 것은 아니다.
전용 채널(DCH1)을 통해 각 스케일-아웃 컨트롤러(415-2~415-k)와 데이터를 주거나 받을 수 있는 제1스케일-아웃 컨트롤러(415-1)의 전력 제어 회로(426)는 도 2에 도시된 제어 회로(예컨대, 413-1)의 기능 또는 도 4에 도시된 전력 관리 제어 회로(415)의 기능을 수행할 수 있다.
버퍼 컨트롤러(427)는, 제1CPU(423-1) 또는 제2CPU(423-2)의 제어에 따라, 제1휘발성 메모리(417-1)에 데이터를 라이트하거나 제1휘발성 메모리(417-1)로부터 데이터를 리드할 수 있다. 버퍼 컨트롤러(427)는 제1휘발성 메모리(417-1)에 대한 라이트 작동과 리드 작동을 제어할 수 있는 컨트롤러 또는 버퍼 매니저로 불릴 수 있다.
제5인터페이스(429)는, 제1CPU(423-1) 또는 제2CPU(423-2)의 제어에 따라, 복수의 채널들(CH11~CH1m) 중에서 해당하는 채널을 통해 불휘발성 메모리 장치들 (NAND)에 대한 데이터 처리 작동들을 제어할 수 있다.
도 10과 도 13을 참조하면, 복수의 채널들 및/또는 복수의 웨이들은 제5인터페이스(429)에 접속될 수 있다. 실시 예들에 따라 제5인터페이스(429)는 SATA 인터페이스, SATAe 인터페이스, SAS 인터페이스, PCIe 인터페이스, NVMe 인터페이스, AHCI 인터페이스, MMC 인터페이스, NAND-타입 플래시 메모리 인터페이스, 또는 NOR-타입 플래시 메모리 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
제1휘발성 메모리(417-1)는 제1불휘발성 메모리 장치 그룹(GP1)에 포함된 불휘발성 메모리 장치들(NAND)에 대한 논리 어드레스-물리 어드레스 변환을 위한 매핑 테이블을 저장하는 제1영역과, 캐시(cache)의 기능을 수행할 수 있는 제2영역을 포함할 수 있으나 이에 한정되는 것은 아니다. 예컨대, CPU(423-1 및/또는 423-2)에 의해 실행되는 제2FTL 코드는 상기 제1영역에 저장된 매핑 테이블을 이용하여 논리 어드레스-물리 어드레스 변환을 수행할 수 있다.
도 1, 및 도 8부터 도 10을 참조하여 설명된 불휘발성 메모리 장치들(NAND) 각각이 제1스케일-아웃 컨트롤러(415-1)와 제1휘발성 메모리(417-1)를 포함하는 제1스케일-아웃 장치(416-1)로 대체되면, 메모리 클러스터(400)에 대한 용량의 확장성(scalability)은 증가할 수 있다.
도 11은 도 10에 도시된 제1스케일-아웃 장치의 반도체 패키지의 실시 예이다. 도 10과 도 11을 참조하면, 제1스케일-아웃 장치(416-1)는 반도체 패키지로 구현될 수 있다. 즉, 제1스케일-아웃 장치(416-1)는 반도체 기판(substrate; 419)의 위 (on)에 각각 부착(attached or mounted)된 제1스케일-아웃 컨트롤러(415-1)와 제1휘발성 메모리(417-1)를 포함할 수 있다.
예컨대, 제1스케일-아웃 컨트롤러(415-1)는 플립-칩(flip-chip) 구조로 반도체 기판(419)에 부착될 수 있다. 또한, 제1스케일-아웃 컨트롤러(415-1)가 접착 물질(adhesive material)을 통해 반도체 기판(419)에 부착될 때, 제1스케일-아웃 컨트롤러(415-1)는 본딩 와이어들(bonding wires)을 통해 반도체 기판(419)과 전기적인 신호들을 주거나 받을 수 있다.
예컨대, 제1휘발성 메모리(417-1)는 플립-칩 구조로 반도체 기판(419)에 부착될 수 있다. 또한, 제1휘발성 메모리(417-1)가 접착 물질을 통해 반도체 기판 (419)에 부착될 때, 제1휘발성 메모리(417-1)는 본딩 와이어들을 통해 반도체 기판 (419)과 전기적인 신호들을 주거나 받을 수 있다. 즉, 제1스케일-아웃 컨트롤러 (416-1)는 반도체 기판(419)을 통해 제1휘발성 메모리(417-1)와 명령 및/또는 데이터를 주거나 받을 수 있다.
도 12는 도 1에 도시된 메인 컨트롤러와 제1클러스터를 포함하는 반도체 패키지의 실시 예이다. 도 12에 도시된 반도체 패키지(470)는 ePOP(embedded package on package)로 구현될 수 있으나 이에 한정되는 것은 아니다.
반도체 패키지(470)는 반도체 기판(419-1), 반도체 기판(419-1)의 위(over)에 배치된 제1패키지(418-2), 및 제1패키지(418-2)의 위(over)에 배치된 제2패키지(415-1)를 포함할 수 있다. 제1패키지(418-2)는 제1범프들(418-1)을 통해 반도체 기판(419-1)에 부착될 수 있다. 제2패키지(415-1)는 제2범프들(418-3)을 통해 제1패키지(418-2)에 부착될 수 있다. 제1패키지(418-2)는 메인 컨트롤러(310)를 포함할 수 있다. 제2패키지(415-1)는 제1스케일-아웃 컨트롤러(415-1), 버퍼(417-1), 및 적어도 하나의 NAND-타입 플래시 메모리를 포함할 수 있다.
도 14는 본 발명의 다른 실시 예에 따른 데이터 저장 장치의 블록도를 나타낸다. 도 1부터 도 14를 참조하면, 데이터 저장 장치(300A)는 eMMC로 구현될 수 있다. 데이터 저장 장치(300A)는 호스트 인터페이스(301), 컨트롤러(303), NAND 인터페이스(305), 및 메모리 클러스터(400)를 포함할 수 있다.
호스트 인터페이스(301)는 컨트롤러(303)와 호스트 사이에서 주고받는 명령 및/또는 데이터를 제어할 수 있다. 예컨대, 호스트 인터페이스(301)는 MMC 인터페이스를 통해 호스트에 접속될 수 있다.
컨트롤러(303)는 데이터 저장 장치(300A)의 작동을 제어할 수 있다. 컨트롤러(303)와 NAND 인터페이스(305)를 포함하는 구성은 도 1의 메인 컨트롤러(310)의 구성과 실질적으로 동일 또는 유사할 수 있다.
컨트롤러(303)는 NAND 인터페이스(305)를 통해 메모리 클러스터(400)의 작동을 제어할 수 있다. 메모리 클러스터(400)는 하나 또는 그 이상의 클러스터들을 포함할 수 있고, 클러스터의 구조는 도 2에 도시된 제1클러스터(410A), 도 4에 도시된 제1클러스터(410B), 또는 도 9에 도시된 제1클러스터(410C)와 실질적으로 동일 또는 유사할 수 있다.
도 15는 도 1에 도시된 제1클러스터의 작동을 설명하는 플로우 차트이다.
도 1부터 도 15를 참조하면, 메모리 클러스터(400)에 포함된 제2불휘발성 메모리 장치들 각각은 제1불휘발성 메모리 장치의 작동 여부를 지시하는 상태 정보를 수신할 수 있다(S110), 상기 제2불휘발성 메모리 장치들 각각은, 상기 상태 정보에 응답하여, 작동의 시작 여부를 결정할 수 있다(S120). 예컨대, 상기 제1불휘발성 메모리 장치는 현재 작동하는 불휘발성 메모리 장치일 수 있고, 상기 제2불휘발성 메모리 장치들 각각은 현재 작동하지 않는 불휘발성 메모리 장치일 수 있다. 여기서, 작동은 라이트 작동, 리드 작동, 및/또는 전력을 소모하는 다양한 작동을 의미할 수 있다.
도 16은 본 발명의 다른 실시 예에 따른 데이터 처리 시스템의 블록도를 나타낸다. 도 1부터 도 16을 참조하면, 데이터 처리 시스템(500)은 데이터베이스 (520), 데이터베이스 서버(530), 제2네트워크(540), 및 복수의 클라이언트 컴퓨터들(550과 551)을 포함할 수 있다.
데이터 센터, 인터넷 데이터 센터, 또는 클라우드 데이터 센터(510)는 데이터베이스(520)와 데이터베이스 서버(530)를 포함할 수 있다.
데이터베이스(520)는 복수의 데이터 저장 장치들(300 또는 300A)을 포함할 수 있다. 복수의 데이터 저장 장치들(300)은 랙(rack)에 설치될 수 있다. 각 데이터 저장 장치(300)의 구조와 작동은 도 1부터 도 13을 참조하여 설명된 데이터 저장 장치(300)의 구조와 작동과 실질적으로 동일 또는 유사하다.
데이터베이스 서버(530)는 복수의 데이터 저장 장치들(300) 각각의 작동을 제어할 수 있다. 데이터베이스 서버(530)는 제1네트워크(535), 예컨대 LAN(Local Area Network)을 통해 제2무선 네트워크(540), 예컨대, 인터넷 또는 Wi-Fi에 접속될 수 있다. 복수의 클라이언트 컴퓨터들(550과 551) 각각은 제2네트워크(540)를 통해 데이터베이스 서버(530)에 접속할 수 있다.
도 1부터 도 16을 참조하여 설명한 바와 같이, 데이터 저장 장치(300 또는 300A)에 포함된 불휘발성 메모리 장치들 각각이 소모하는 전력은 상기 불휘발성 메모리 장치들 각각이 주도적으로 제어할 수도 있고, 상기 불휘발성 메모리 장치들 각각을 제어하는 스케일-아웃 장치에 의해 제어될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100, 500: 데이터 처리 시스템
200: 호스트
300, 300A: 데이터 저장 장치
310, 310A: 메인 컨트롤러
360: 버퍼 메모리
370: 전력 관리 IC
400: 메모리 클러스터
415: 전력 관리 제어 회로

Claims (10)

  1. 제1불휘발성 메모리 장치와 제2불휘발성 메모리 장치들을 포함하는 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치에 있어서,
    상기 제1불휘발성 메모리 장치는 프로그램 작동과 리드 작동 중에서 어느 하나를 나타내는 작동 지시 신호에 관련된 상태 신호를 출력하고,
    상기 제2불휘발성 메모리 장치들 각각은 상기 상태 신호에 기초하여 작동 여부와 작동 순서 중에서 적어도 하나를 스스로 결정하는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 작동 지시 신호에 기초하여 상기 상태 신호를 생성하고, 상기 상태 신호를 전용 채널을 통해 상기 제2불휘발성 메모리 장치들 각각으로 전송하는 전력 관리 제어 회로를 더 포함하는 데이터 저장 장치.
  3. 제2항에 있어서,
    상기 전력 관리 제어 회로는 상기 작동 지시 신호의 수신을 카운트하여 카운트 값을 생성하고, 상기 카운트 값과 기준 값을 비교하고, 비교 결과에 따라 결정된 상태를 갖는 상기 상태 신호를 생성하는 데이터 저장 장치.
  4. 제3항에 있어서, 상기 전력 관리 제어 회로는,
    상기 작동 지시 신호가 활성화됨에 따라 상기 카운트 값이 상기 기준 값과 같아 질 때, 상기 제2불휘발성 메모리 장치들 각각을 대기 상태로 유지하기 위한 상기 상태 신호를 생성하고,
    상기 작동 지시 신호가 비활성화됨에 따라 상기 카운트 값이 상기 기준 값보다 작아질 때, 상기 제2불휘발성 메모리 장치들 중에서 어느 하나의 작동의 시작을 지시하는 상기 상태 신호를 생성하는 데이터 저장 장치.
  5. 제1항에 있어서,
    상기 불휘발성 메모리 장치들 중에서 적어도 하나는,
    복수의 불휘발성 메모리 칩들; 및
    상기 복수의 불휘발성 메모리 칩들을 액세스하고 관리하는 컨트롤러를 포함하는 데이터 저장 장치.
  6. 제1불휘발성 메모리 장치와 제2불휘발성 메모리 장치들을 포함하는 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치; 및
    상기 데이터 저장 장치의 작동을 제어하는 호스트를 포함하고,
    상기 제1불휘발성 메모리 장치는 프로그램 작동과 리드 작동 중에서 어느 하나를 나타내는 작동 지시 신호에 관련된 상태 신호를 출력하고,
    상기 제2불휘발성 메모리 장치들 각각은 상기 상태 신호에 기초하여 작동 여부와 작동 순서 중에서 적어도 하나를 스스로 결정하는 데이터 처리 시스템.
  7. 제6항에 있어서, 상기 데이터 저장 장치는,
    상기 작동 지시 신호에 기초하여 상기 상태 신호를 생성하고, 상기 상태 신호를 전용 채널을 통해 상기 제2불휘발성 메모리 장치들 각각으로 전송하는 전력 관리 제어 회로를 더 포함하는 데이터 처리 시스템.
  8. 제7항에 있어서,
    상기 전력 관리 제어 회로는 상기 작동 지시 신호의 수신을 카운트하여 카운트 값을 생성하고, 상기 카운트 값과 기준 값을 비교하고, 비교 결과에 따라 결정된 상태를 갖는 상기 상태 신호를 생성하는 데이터 처리 시스템.
  9. 제8항에 있어서, 상기 전력 관리 제어 회로는,
    상기 작동 지시 신호가 활성화됨에 따라 상기 카운트 값이 상기 기준 값과 같아 질 때, 상기 제2불휘발성 메모리 장치들 각각을 대기 상태로 유지하기 위한 상기 상태 신호를 생성하고,
    상기 작동 지시 신호가 비활성화됨에 따라 상기 카운트 값이 상기 기준 값보다 작아질 때, 상기 제2불휘발성 메모리 장치들 중에서 어느 하나의 작동의 시작을 지시하는 상기 상태 신호를 생성하는 데이터 처리 시스템.
  10. 제6항에 있어서,
    상기 불휘발성 메모리 장치들 중에서 적어도 하나는,
    복수의 불휘발성 메모리 칩들; 및
    상기 복수의 불휘발성 메모리 칩들을 액세스하고 관리하는 컨트롤러를 포함하는 데이터 처리 시스템.
KR1020150054197A 2015-04-17 2015-04-17 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 KR102450556B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150054197A KR102450556B1 (ko) 2015-04-17 2015-04-17 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US15/075,217 US10331366B2 (en) 2015-04-17 2016-03-21 Method of operating data storage device and method of operating system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150054197A KR102450556B1 (ko) 2015-04-17 2015-04-17 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템

Publications (2)

Publication Number Publication Date
KR20160123706A true KR20160123706A (ko) 2016-10-26
KR102450556B1 KR102450556B1 (ko) 2022-10-04

Family

ID=57128352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150054197A KR102450556B1 (ko) 2015-04-17 2015-04-17 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템

Country Status (2)

Country Link
US (1) US10331366B2 (ko)
KR (1) KR102450556B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10681137B2 (en) 2017-12-22 2020-06-09 Samsung Electronics Co., Ltd. System and method for network-attached storage devices
US11454941B2 (en) * 2019-07-12 2022-09-27 Micron Technology, Inc. Peak power management of dice in a power network
KR20230060817A (ko) * 2021-10-28 2023-05-08 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219171A1 (en) * 2010-03-05 2011-09-08 248 SolidState, Inc Virtual channel support in a nonvolatile memory controller
US20110239009A1 (en) * 2010-03-26 2011-09-29 Buffalo Inc. Storage device
US20140071767A1 (en) * 2007-05-18 2014-03-13 Micron Technology, Inc. Fast programming memory device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8458497B2 (en) 2007-10-11 2013-06-04 Qualcomm Incorporated Demand based power control in a graphics processing unit
JP5089535B2 (ja) 2008-09-04 2012-12-05 株式会社リコー 機器管理装置、機器管理システム、通信制御方法、通信制御プログラム、及びそのプログラムを記録した記録媒体
KR101612111B1 (ko) 2009-04-27 2016-04-14 삼성전자주식회사 전류 검출기를 포함하는 데이터 저장 장치
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
JP2011154547A (ja) * 2010-01-27 2011-08-11 Toshiba Corp メモリ管理装置及びメモリ管理方法
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
KR101135313B1 (ko) 2010-04-23 2012-04-17 성균관대학교산학협력단 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
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
KR101280792B1 (ko) 2010-12-28 2013-07-17 한양대학교 산학협력단 소모 전력에 기반한 데이터 기록 방법 및 장치
JP5713772B2 (ja) 2011-04-12 2015-05-07 株式会社東芝 半導体メモリシステム
US9620238B2 (en) * 2014-01-20 2017-04-11 Sandisk Technologies Llc Methods and systems that selectively inhibit and enable programming of non-volatile storage elements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140071767A1 (en) * 2007-05-18 2014-03-13 Micron Technology, Inc. Fast programming memory device
US20110219171A1 (en) * 2010-03-05 2011-09-08 248 SolidState, Inc Virtual channel support in a nonvolatile memory controller
US20110239009A1 (en) * 2010-03-26 2011-09-29 Buffalo Inc. Storage device

Also Published As

Publication number Publication date
US20160306579A1 (en) 2016-10-20
US10331366B2 (en) 2019-06-25
KR102450556B1 (ko) 2022-10-04

Similar Documents

Publication Publication Date Title
US10579279B2 (en) Data storage device and data processing system having the same
US10534560B2 (en) Data storage device and data processing system having the same
US9996282B2 (en) Method of operating data storage device and method of operating system including the same
KR102527992B1 (ko) 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US11287978B2 (en) Data storage devices, having scale-out devices to map and control groups on non-volatile memory devices
US10467037B2 (en) Storage device and user device supporting virtualization function
US20160203091A1 (en) Memory controller and memory system including the same
US10114550B2 (en) Data storage device and data processing system including the data storage device
US20170277446A1 (en) Memory controller and storage device including the same
US10691338B2 (en) Data storage device and data processing system including same
US20160291869A1 (en) Data storage device and data processing system including the same
US10416886B2 (en) Data storage device that reassigns commands assigned to scale-out storage devices and data processing system having the same
US10331366B2 (en) Method of operating data storage device and method of operating system including the same
US10503406B2 (en) Data storage device and data processing system having the same
US10114555B2 (en) Semiconductor device having register sets and data processing device including the same
US20170031633A1 (en) Method of operating object-oriented data storage device and method of operating system including the same

Legal Events

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