KR20120097862A - 데이터 저장 시스템 및 그의 데이터 맵핑 방법 - Google Patents
데이터 저장 시스템 및 그의 데이터 맵핑 방법 Download PDFInfo
- Publication number
- KR20120097862A KR20120097862A KR1020110017363A KR20110017363A KR20120097862A KR 20120097862 A KR20120097862 A KR 20120097862A KR 1020110017363 A KR1020110017363 A KR 1020110017363A KR 20110017363 A KR20110017363 A KR 20110017363A KR 20120097862 A KR20120097862 A KR 20120097862A
- Authority
- KR
- South Korea
- Prior art keywords
- host
- nonvolatile memory
- request
- active
- memory devices
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명에 따른 데이터 맵핑 방법은, 호스트의 입력 요청에 기초하여 상기 호스트로부터 입력되는 데이터를 기입하기 위한 다수의 비휘발성 메모리 장치에 대한 액티브 채널을 조절하는 단계; 상기 다수의 비휘발성 메모리 장치에 대하여 상기 액티브 채널에 대응되는 비휘발성 메모리 장치들 각각을 액티브 영역으로써 맵핑 후보 영역의 리스트에 포함되도록 제어하는 단계; 및 상기 호스트로부터 입력되는 데이터를 상기 맵핑 후보 영역의 리스트에 존재하는 상기 액티브 영역에 순차적으로 입력하는 단계를 포함할 수 있다.
Description
본 발명은 데이터 저장 시스템에 관한 것으로, 보다 구체적으로는 데이터 저장 시스템 및 그의 데이터 맵핑 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(volatile semi conductor memory device)와 비휘발성 반도체 메모리 장치(non-volatile semi conductor memory device)로 나뉘어진다.
휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버린다. 반면 비휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 상대적으로 느리지만 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 따라서 전원의 공급 여부와 관계없이 보존되어야 할 데이터를 저장하기 위해 비휘발성 반도체 메모리 장치가 사용된다.
비휘발성 반도체 메모리 장치는 PRAM(Phase-change random access memory), MROM(mask read-only memory), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory) 등이 있다.
이들 중 EEPROM은 전기적으로 소거 및 쓰기가 가능하므로 계속적인 갱신이 필요한 시스템 프로그래밍(system programming)이나 보조 기억 장치로의 응용이 확대되고 있다. 특히 플래시(flash) EEPROM(이하, 플래시 메모리 장치)은 기존의 EEPROM에 비해 집적도가 높아 대용량 보조 기억 장치로의 응용에 매우 유리하다.
한편, 데이터 저장 장치는 반도체 메모리 장치(특히, 플래시 메모리 장치)를 이용하여 데이터를 저장하는 장치로서, 지금까지 대용량 저장장치로 널리 사용되던 디스크 저장매체(즉, 하드디스크드라이브)에 비하여 속도가 빠르고 물리적 충격에 강하고 발열이나 소음도 적으며, 소형화할 수 있는 장점이 있다.
그러나, 이러한 데이터 저장 장치의 용량이 증가함에 따라 플래시 메모리 장치와 이를 제어하기 위한 컨트롤러의 개수 또한 증가하게 되므로 데이터 저장 장치에 대한 전력 소모도 이에 비례하여 증가하게 된다. 따라서 호스트의 요청을 처리하는데 있어서 데이터 저장 장치의 성능 감소 없이도 전력 소모를 효과적으로 줄일 수 있는 방법이 필요하다.
따라서, 본 발명이 이루고자 하는 기술적인 과제는 전력 소모를 줄일 수 있는 데이터 저장 시스템 및 그의 데이터 맵핑 방법을 제공하는 것이다.
본 발명의 실시예에 따른 데이터 맵핑 방법은, 호스트의 입력 요청에 기초하여 상기 호스트로부터 입력되는 데이터를 기입하기 위한 다수의 비휘발성 메모리 장치에 대한 액티브 채널을 조절하는 단계; 상기 다수의 비휘발성 메모리 장치에 대하여 상기 액티브 채널에 대응되는 상기 비휘발성 메모리 장치들 각각을 액티브 영역으로써 맵핑 후보 영역의 리스트에 포함되도록 제어하는 단계; 및 상기 호스트로부터 입력되는 데이터를 상기 맵핑 후보 영역의 리스트에 존재하는 상기 액티브 영역에 순차적으로 입력하는 단계를 포함할 수 있다.
또한, 상기 다수의 비휘발성 메모리 장치에 대하여 인액티브 채널에 대응되는 비휘발성 메모리 장치들을 상기 맵핑 후보 영역의 리스트에 포함되지 않도록 제어하는 단계를 더 포함할 수 있다.
또한, 상기 액티브 채널을 조절하는 단계 이전에, 리퀘스트 큐(Request Queue)는 상기 호스트의 입력 요청을 순차적으로 저장하고, 미리 정해진 시간 동안 저장된 상기 호스트의 요청량에 대한 평균값을 산출하고, 산출된 평균값에 기초하여 상기 액티브 채널의 수를 조절하는 단계를 더 포함할 수 있다.
또한, 상기 호스트의 요청량에 대한 평균값이 미리 정해진 기준 범위 이상인 경우 상기 액티브 채널의 수를 증가시키고, 증가된 액티브 채널에 대응되는 액티브 영역이 상기 맵핑 후보 영역의 리스트에 포함되도록 제어할 수 있다.
또한, 상기 호스트의 요청량에 대한 평균값이 상기 미리 정해진 기준 범위 이하인 경우 상기 인액티브 채널의 수를 증가시키고, 증가된 인액티브 채널에 대응되는 액티브 영역이 상기 맵핑 후보 영역의 리스트에 존재하는 경우 상기 맵핑 후보 영역의 리스트에서 제거되도록 제어할 수 있다.
또한, 상기 액티브 채널 또는 인액티브 채널에 대응되는 컨트롤 모듈에 대하여 동기 신호 입력 여부를 제어하고, 상기 컨트롤 모듈에 대응되는 상기 비휘발성 메모리 장치들에 대하여 전원 공급 여부를 제어하는 단계를 더 포함하며, 상기 호스트의 요청량에 기초하여 상기 동기 신호 입력 여부 및 전원 공급 여부를 제어하기 위한 인에이블 신호를 선택적으로 출력할 수 있다.
본 발명의 실시예에 따른 데이터 맵핑 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장된 상기 데이터 맵핑 방법을 실행하기 위한 컴퓨터 프로그램을 실행함으로써 구현될 수 있다.
본 발명에 따른 데이터 저장 시스템은, 호스트로부터 입력되는 데이터를 기입하는 다수의 비휘발성 메모리 장치; 및 상기 호스트의 입력 요청에 기초하여 상기 다수의 비휘발성 메모리 장치에 대한 액티브 채널을 조절하고, 상기 다수의 비휘발성 메모리 장치에 대하여 상기 액티브 채널에 대응되는 비휘발성 메모리 장치들 각각을 액티브 영역으로써 맵핑 후보 영역의 리스트에 포함되도록 제어하고, 상기 호스트로부터 입력되는 데이터를 상기 맵핑 후보 영역의 리스트에 존재하는 상기 액티브 영역에 순차적으로 입력하는 컨트롤러를 포함할 수 있다.
본 발명의 실시예에 따른 데이터 저장 시스템 및 그의 데이터 맵핑 방법에 따르면 호스트의 요청에 기초하여 동작하는 비휘발성 메모리 장치의 수를 동적으로 조절할 수 있기 때문에 데이터 저장 시스템의 전력 소모를 줄일 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 데이터 저장 시스템의 개략적인 블록도이다.
도 2는 본 발명의 실시예에 따른 데이터 저장 장치의 개략적인 블록도이다.
도 3은 도 2에 도시된 비휘발성 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 4는 도 2에 도시된 리퀘스트 큐를 설명하기 위한 도면이다.
도 5는 도 3에 도시된 비휘발성 메모리 장치의 채널을 조절하는 방법을 설명하기 위한 도면이다.
도 6은 도 5에 도시된 컨트롤 모듈 및 비휘발성 메모리 장치에 인가되는 동기신호 및 전압을 조절하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 비교예에 따른 정적 존 맵핑 방법을 설명하기 위한 도면이다.
도 8a 내지 도 8b는 본 발명의 실시예에 따른 동적 존 맵핑 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 데이터 맵핑 방법을 나타내는 흐름도이다.
도 10은 본 발명의 실시예에 따른 데이터 저장 장치를 구비하는 전자 시스템의 블록도이다.
도 11은 본 발명의 다른 실시예에 따른 전자 시스템의 블록도이다.
도 12는 본 발명의 실시예에 따른 데이터 저장 장치를 구비하는 컴퓨팅 시스템의 블록도이다.
도 2는 본 발명의 실시예에 따른 데이터 저장 장치의 개략적인 블록도이다.
도 3은 도 2에 도시된 비휘발성 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 4는 도 2에 도시된 리퀘스트 큐를 설명하기 위한 도면이다.
도 5는 도 3에 도시된 비휘발성 메모리 장치의 채널을 조절하는 방법을 설명하기 위한 도면이다.
도 6은 도 5에 도시된 컨트롤 모듈 및 비휘발성 메모리 장치에 인가되는 동기신호 및 전압을 조절하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 비교예에 따른 정적 존 맵핑 방법을 설명하기 위한 도면이다.
도 8a 내지 도 8b는 본 발명의 실시예에 따른 동적 존 맵핑 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 데이터 맵핑 방법을 나타내는 흐름도이다.
도 10은 본 발명의 실시예에 따른 데이터 저장 장치를 구비하는 전자 시스템의 블록도이다.
도 11은 본 발명의 다른 실시예에 따른 전자 시스템의 블록도이다.
도 12는 본 발명의 실시예에 따른 데이터 저장 장치를 구비하는 컴퓨팅 시스템의 블록도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명에 따른 실시 예는 다양한 변경을 가할 수 있고 여러가지 형태를 가질 수 있으므로 특정실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기구성 요소들은 상기용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 데이터 저장 시스템(10)의 개략적인 블록도이다. 도 1을 참조하면, 데이터 저장 시스템(10)은 데이터 저장 장치(100) 및 호스트(20)를 포함한다. 데이터 저장 장치(100)는 컨트롤러(300) 및 비휘발성 메모리 장치(200)를 포함할 수 있다.
호스트(20)는 PCI-E(peripheral component interconnect - express), ATA(Advanced Technology Attachment), SATA(serial ATA), PATA(parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 데이터 저장 장치(100)와 통신할 수 있다. 그러나, 호스트(20)와 데이터 저장 장치(100)간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다.
본 발명의 실시예에 따른 데이터 저장 장치(100)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 'SSD'라 함) 또는 메모리 카드(예컨대, SD(secure digital) 카드, MMC(multimedia card) 등) 일 수 있으나, 이에 한정되지 않는다. 또한, 비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않으며, PRAM, MRAM, ReRAM, 또는 FeRAM 장치일 수 있다. 비휘발성 메모리 장치(200)가 플래시 메모리 장치인 경우, 플로팅 게이트 방식의 NAND 플래시 메모리 장치 또는 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리 장치일 수 있다. 비휘발성 메모리 장치(200)의 메모리 셀 트랜지스터들은 2차원적으로 배열된 구조를 가질 수도 있고, 또는 3차원적으로 배열된 구조를 가질 수도 있다.
컨트롤러(300)는 데이터 저장 장치(100)의 동작을 전반적으로 제어하며, 또한 호스트(20)와 비휘발성 메모리 장치(200) 간의 제반 데이터 교환을 제어한다. 예컨대, 컨트롤러(300)는 호스트(20)의 요청에 따라 비휘발성 메모리 장치(200)를 제어하여 데이터를 쓰거나 데이터를 독출한다. 또한, 컨트롤러(300)는 비휘발성 메모리의 특성이나 비휘발성 메모리의 효율적인 관리를 위하여 필요한 일련의 내부 동작(예컨대, 성능 조절, 머지, 웨어 레벨링 등)을 제어한다.
본 발명의 일 실시예에 따른 컨트롤러(300)는 비휘발성 메모리 장치(200)의 동작을 제어하기 위한 펌웨어 및/또는 소프트웨어를 구동하며, 이를 플래시 변환 레이어(Flash Translation Layer, 이하 'FTL'이라 함)(미도시)라 한다. 컨트롤러(300)는 호스트(20)의 요청에 기초하여 비휘발성 메모리 장치(200)에 포함된 다수의 비휘발성 메모리 장치들이 동작하는 개수를 조절하기 위하여 비휘발성 메모리 장치(200)를 제어할 수 있다.
이러한 컨트롤러(300)의 동작에 대해서는 상세히 후술하기로 한다.
비휘발성 메모리 장치(200)는 데이터를 비휘발적으로 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다.
도 2는 본 발명의 실시예에 따른 데이터 저장 장치(100)의 개략적인 블록도이다. 도 1 내지 도 2를 참조하면, 데이터 저장 장치(100)는 호스트(20)와 비휘발성 메모리 장치(200) 간의 제반 데이터 교환을 제어하는 컨트롤러(300)를 포함하며, 컨트롤러(300)는 호스트 인터페이스(310), 리퀘스트 큐(Request Queue)(320), ROM(330), 메모리 인터페이스(340), RAM(350) 및 CPU(360)를 포함한다. 또한, 컨트롤러(300)는 소프트웨어 또는 펌웨어 형태로 구현되는 FTL을 실행할 수 있다.
호스트 인터페이스(310)는 호스트(20)와 통신하기 위하여 상술한 바와 같은 인터페이스 프로토콜을 구비한다.
리퀘스트 큐(320)는 호스트(20)로부터 입력되는 요청들을 순차적으로 저장하고, 미리 정해진 시간 동안 저장된 호스트(20)의 요청량에 대한 평균값을 일정 시간 단위로 산출한다.
ROM(330)은 호스트(20)와의 인터페이싱을 위한 코드 데이터를 저장한다.
메모리 인터페이스(340)는 비휘발성 메모리 장치(200)와 인터페이싱한다.
FTL은 본 발명의 실시예에 따른 데이터 맵핑 방법을 실행하기 위한 맵핑 테이블(Mapping Table)(미도시)을 갖는다. 맵핑 테이블은 주로 RAM(350)에서 구동된다. 맵핑 테이블에는 다수의 LPN(Logical Page Number) 및 이에 대응되는 비휘발성 메모리 장치(200)에 포함된 다수의 비휘발성 메모리 장치들이 일대일로 기록되어 있다. 이때, 본 발명의 실시예에 따른 비휘발성 메모리 장치(200)는 낸드 플래시 메모리 장치로 구현될 수 있으며, 낸드 플래시 메모리 장치는 페이지(page) 단위로 데이터를 기입 또는 독출하므로 맵핑하는 단위에 있어서 LPN(Logical Page Number) 을 사용할 수 있으나, 이에 한정되지 않는다.
또한, FTL은 호스트(20)로부터 입력되는 요청이 기입(write) 명령인지 또는 독출(read) 명령인지에 기초하여 비휘발성 메모리 장치(200)를 제어하며, 비휘발성 메모리 장치(200)에 대하여 호스트(20)에 의한 기입 명령 또는 독출 명령이 수행될 때마다 맵핑 테이블이 갱신되도록 맵핑 테이블을 관리할 수 있다.
예컨대, FTL은 호스트(20)로부터 입력되는 요청이 기입 명령인 경우 LPN에 대응되는 비휘발성 메모리 장치에 데이터가 기입되도록 제어하고, 기입된 데이터에 해당하는 LPN 및 그에 대응되는 비휘발성 메모리 장치를 맵핑 테이블에 기록한다. 또한, FTL은 호스트(20)로부터 입력되는 요청이 독출 명령인 경우 맵핑 테이블을 참조하여 LPN 및 그에 대응되는 비휘발성 메모리 장치에 저장된 데이터를 독출하도록 제어한다.
RAM(350)은 CPU(360)의 동작 메모리로써 사용되며, DRAM 또는 SRAM 등으로 구현될 수 있다. 또한, RAM(350)은 버퍼 메모리로서의 역할을 할 수 있으며, 호스트(20)로부터 출력된 데이터를 임시로 저장한다.
CPU(360)는 비휘발성 메모리 장치(200)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. 또한, CPU(360)는 입력되는 호스트(20)의 요청에 기초하여 FTL이 동작하도록 제어할 수 있다.
비록 도면에는 도시되지 않았지만, 본 발명의 실시예에 따른 데이터 저장 장치(100)는 비휘발성 메모리 장치(200)에 저장될 데이터를 인코딩하고 비휘발성 메모리 장치(200)로부터 독출된 데이터를 디코딩하기 위한 ECC 엔진(미도시) 등의 구성요소를 더 구비할 수 있다.
비휘발성 메모리 장치(200)는 다수의 비휘발성 메모리 장치들을 포함하며, 다수의 비휘발성 메모리 장치들 각각은 다수의 메모리 셀들을 포함하는 메모리 셀 어레이(미도시)를 포함하는 낸드 플래시 메모리 장치로 구현될 수 있다. 이를 위한 비휘발성 메모리 장치(200)의 일예가 도 3에 도시되어 있다.
도 3은 도 2에 도시된 비휘발성 메모리 장치의 구조를 개략적으로 나타내는 도면이다. 도 1 내지 도 3을 참조하면, 메모리 인터페이스(340)는 다수의 비휘발성 메모리 장치(200)를 제어하기 위한 다수의 컨트롤 모듈들(340-1 내지 340-N)을 포함할 수 있으며, 비휘발성 메모리 장치(200)에 포함된 다수의 채널들(210-1 내지 210-N) 각각은 다수의 영역(Zone)들을 포함할 수 있다. 이때, 다수의 영역(Zone)들에 포함된 각 영역(Zone)은 하나의 비휘발성 메모리 장치를 나타내는 것일 수 있으나, 이에 한정되는 것은 아니다.
메모리 인터페이스(340)에 포함된 다수의 컨트롤 모듈들(340-1 내지 340-N) 각각은 비휘발성 메모리 장치(200)의 다수의 채널들(210-1 내지 210-N)과 일대일 대응되어 비휘발성 메모리 장치(200)를 제어하도록 동작할 수 있다.
즉, FTL은 호스트(20)의 요청에 기초하여 비휘발성 메모리 장치(200)의 다수의 채널들(210-1 내지 210-N) 각각에 대응되는 다수의 영역(Zone)들이 활성화 또는 비활성화되도록 비휘발성 메모리 장치(200)를 제어하기 위하여 다수의 채널들(210-1 내지 210-N)에 대응되는 다수의 컨트롤 모듈들(340-1 내지 340-N) 각각의 동작을 제어할 수 있다.
이때, 호스트(20)의 요청은 FTL에 의해 처리되기 이전에, 리퀘스트 큐(320)에 의한 판단 과정을 거치게 된다. 리퀘스트 큐(320)에 의해 호스트(20)의 요청량에 기초하여 비휘발성 메모리 장치(200)의 채널의 수를 조절하는 방법의 일 예가 도 4 내지 도 5에 도시되어 있다.
도 4는 도 2에 도시된 리퀘스트 큐를 설명하기 위한 도면이고, 도 5는 도 3에 도시된 비휘발성 메모리 장치의 채널을 조절하는 방법을 설명하기 위한 도면이다. 도 1 내지 도 5를 참조하면, 리퀘스트 큐(320)는 호스트(20)로부터 전달되는 요청을 처리하기 위한 대기 큐(Queue)로서 제1 리퀘스트 큐(RQ1), 제2 리퀘스트 큐(RQ2), …, 제N 리퀘스트 큐(RQN)와 같이 다수 개로 구성될 수 있다. 본 발명에서는 리퀘스트 큐(320)가 하드웨어로 구현된 예를 도시하였으나, 소프트웨어적으로 구현될 수도 있다.
리퀘스트 큐(320)는 호스트(20)로부터 입력되는 요청들을 다수의 리퀘스트 큐(RQ1, RQ2, …, RQN)에 순차적으로 저장하고, 미리 정해진 시간 동안 저장된 호스트(20)의 요청량에 대한 평균값을 일정 시간 단위로 산출한다.
리퀘스트 큐(320)는 산출된 호스트(20)의 요청량에 대한 평균값이 미리 정해진 기준 범위(predetermined range) 이하인 경우 호스트(20)로부터 입력되는 요청량이 적은 것으로 판단하고, 산출된 평균값이 미리 정해진 기준 범위(predetermined range) 이상인 경우 호스트(20)로부터 입력되는 요청량이 많은 것으로 판단한다.
그러면, FTL은 리퀘스트 큐(320)에 의한 판단 결과에 기초하여 호스트(20)의 요청량에 대한 평균값이 미리 정해진 기준 범위(predetermined range) 이하인 경우 인액티브 채널(Inactive Channel)의 수를 증가시키고, 호스트(20)의 요청량에 대한 평균값이 미리 정해진 기준 범위(predetermined range) 이상인 경우 액티브 채널(Active Channel)의 수를 증가시킨다. 즉, FTL은 리퀘스트 큐(320)에 의한 판단 결과에 기초하여 호스트(20)의 요청량에 대해 인액티브 채널 또는 액티브 채널의 수를 조절할 수 있게 된다.
여기서, 액티브 채널은 호스트(20)의 요청을 처리하기 위해 사용될 수 있는 채널이고, 인액티브 채널은 호스트(20)의 요청을 처리하기 위해 사용될 수 없는 채널로서, 인액티브 채널은 이미 호스트(20)의 요청을 처리하기 위해 사용 중이거나 FTL에 의해 사용할 수 없도록 설정된 채널일 수 있다.
즉, 증가된 액티브 채널에 대응되는 영역(Zone)들은 액티브 영역(active zone)으로써 맵핑 후보 영역의 리스트에 포함될 수 있으며, 증가된 인액티브 채널에 대응되는 영역(Zone)들이 맵핑 후보 영역의 리스트에 존재하는 경우에는 맵핑 후보 영역의 리스트에서 제외될 수 있다.
그러면, 도 5에 도시된 바와 같이, FTL은 리퀘스트 큐(320)의 판단 결과에 기초하여 비휘발성 메모리 장치(200)의 채널들 및 각 채널에 포함된 영역(Zone)들이 액티브 또는 인액티브되도록 제어하기 위하여 비휘발성 메모리 장치(200)의 각 채널에 대응되는 컨트롤 모듈들(340-1 내지 340-4)을 제어할 수 있다.
예컨대, FTL은 리퀘스트 큐(320)의 판단 결과에 기초하여 비휘발성 메모리 장치(200)에 포함된 채널들에 대하여 액티브 채널 또는 인액티브 채널을 조절하기 위해 비휘발성 메모리 장치(200)의 액티브 채널에 대응되는 제1 컨트롤 모듈(340-1) 및 제2 컨트롤 모듈(340-2)에 대해서는 동기 신호가 인가되도록 제어하고, 인액티브 채널에 대응되는 제3 컨트롤 모듈(340-3) 및 제4 컨트롤 모듈(340-4)에 대해서는 동기 신호가 차단되도록 제어한다. 그러면, 컨트롤 모듈들(340-1 내지 340-N)은 각각에 대응되는 비휘발성 메모리 장치(200)의 다수의 채널들(210-1 내지 210-N)이 활성화 또는 비활성화 되도록 제어할 수 있게 된다. 또한, FTL은 비휘발성 메모리 장치(200)의 액티브 채널에 전압이 인가되도록 제어하고, 인액티브 채널에 전압이 차단되도록 제어한다.
이때, 도 5에는 비휘발성 메모리 장치(200)의 각 채널에 8개의 영역(Zone)을 갖는 비휘발성 메모리 장치(200)가 예시적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다.
또한, FTL의 제어에 기초하여 비휘발성 메모리 장치(200)에 포함된 다수의 채널들(210-1 내지 210-N)에 대하여 인액티브 채널을 액티브 채널로 또는 액티브 채널을 인액티브 채널로 조절하는데 있어서, 인액티브 채널은 액티브 채널로의 변경이 용이한 반면, 액티브 채널은 호스트(20)로부터 입력되는 데이터의 기입이 완료된 이후에 인액티브 채널로 변경할 수 있게 된다.
도 6은 도 5에 도시된 컨트롤 모듈 및 비휘발성 메모리 장치에 인가되는 동기신호 및 전압을 조절하는 방법을 설명하기 위한 도면이다. 도 6에서는 하나의 컨트롤 모듈(340-1) 및 그에 대응되는 비휘발성 메모리 장치(200)의 하나의 채널(210-1)만을 예로 들어 설명한다. 도 1 내지 도 6을 참조하면, 데이터 저장 시스템(10)은 컨트롤 모듈(340-1)에 입력되는 동기신호 및 컨트롤 모듈(340-1)에 대응되는 비휘발성 메모리 장치(200)의 제1 채널(210-1)에 인가되는 전압을 조절하기 위해 전원 조절부(400)를 포함한다. 전원 조절부(400)는 메모리 인터페이스(340)의 컨트롤 모듈(340-1) 내부에 구현될 수 있고, 본 발명의 실시예에 따른 메모리 시스템(10)상에 별도로 구현될 수도 있다.
전원 조절부(400)는 전원 공급 장치(410), GND(Ground)(420), 클록 버퍼(430), 제1 멀티플렉서(440) 및 제2 멀티플렉서(450)를 포함할 수 있다.
전원 공급 장치(410)는 비휘발성 메모리 장치(200)의 제1 채널(210-1)을 구동하기 위한 전원을 제1 멀티플렉서(440)로 공급한다.
FTL은 제1 채널(210-1)에 대한 판단 결과에 기초하여 컨트롤 모듈(340-1) 및 제1 채널(210-1)을 제어하기 위해 외부로부터 인가되는 인에이블 신호(EN)를 선택적으로 출력한다.
제1 멀티플렉서(440)는 인에이블 신호(EN)에 기초하여 전원 공급 장치(410)로부터 공급되는 전원 전압과 GND(420)로부터 공급되는 접지 전압을 제1 채널(210-1)로 선택적으로 출력한다. 제2 멀티플렉서(450)는 인에이블 신호(EN)에 기초하여 클록 신호(CLK)를 수신하는 클록 버퍼(430)의 동기 신호를 컨트롤 모듈(340-1)로 출력 또는 차단한다.
컨트롤 모듈(340-1)은 제2 멀티플렉서(450)로부터 출력되는 동기 신호에 기초하여 제1 채널(210-1)을 구동하기 위한 동작이 제어되며, 제1 채널(210-1)은 컨트롤 모듈(340-1)의 동작에 기초하여 제어되는 동시에 제1 멀티플렉서(440)로부터 출력되는 전압에 기초하여 동작이 제어될 수 있다.
따라서, 호스트(20)로부터 입력되는 요청들에 대한 리퀘스트 큐(320)의 판단 결과에 기초하여 FTL은 비휘발성 메모리 장치(200)에 포함된 다수의 채널들(210-1 내지 210-N)에 대하여 액티브 채널의 수를 조절하기 위한 맵핑 동작을 수행하게 되므로, 비휘발성 메모리 장치(200)의 인액티브 채널로 인가되는 전압 및 인액티브 채널에 대응되는 컨트롤 모듈로 입력되는 동기 신호를 동시에 차단함으로써, 데이터 저장 장치(100)의 전력 소모를 효과적으로 줄일 수 있게 된다.
도 7은 본 발명의 비교예에 따른 정적 존 맵핑 방법을 설명하기 위한 도면이다. 도 7을 참조하면, 비휘발성 메모리 장치(200)는 다수의 채널들(210-1 내지 210-8)에 포함된 다수의 영역들(Zone 0 내지 Zone 63)을 포함한다.
도 7에는 8-채널(8-channel)방식의 하드웨어 구조를 갖는 비휘발성 메모리 장치(200)가 예시적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다. 또한, 각각의 채널에 8개의 비휘발성 메모리 장치들이 구비되나, 하나의 채널을 구성하는 비휘발성 메모리 장치의 수는 달라질 수 있다.
도 7에 도시된 바와 같이, 정적 존 맵핑 방법은 호스트(20)에 의한 요청이 입력되는 순서에 기초하여 LPN(Logical Page Number)에 대응되는 영역(Zone)에 의해 호스트(20)에 의한 요청을 처리하기 때문에 호스트(20)에 의한 요청을 처리하기 위한 영역(Zone)이 항상 정해져 있다. 예컨대, LPN 0에 대응되는 호스트(20)의 요청은 Zone 0에 의해 처리되며, LPN 100에 대응되는 호스트(20)의 요청은 Zone 36에 의해 처리될 수 있다.
즉, 정적 존 맵핑 방법은 다수의 채널들(210-1 내지 210-8) 중에서 호스트(20)에 의한 요청이 특정 영역(Zone)에 의해 처리되도록 채널을 조절할 수 없기 때문에 모든 채널(210-1 내지 210-8)에 전압을 공급해야 하므로 데이터 저장 장치를 구동하기 위한 전력 소모가 증가하게 된다.
도 8a 내지 도 8b는 본 발명의 실시예에 따른 동적 존 맵핑 방법을 설명하기 위한 도면이다. 도 1 내지 도 6 및 도 8a를 참조하면, 호스트(20)로부터 입력되는 요청들에 대한 리퀘스트 큐(320)의 판단 결과에 기초하여 FTL은 비휘발성 메모리 장치(200)의 채널들(210-1 내지 210-8) 중에서 액티브 채널에 대응되는 영역(Zone)들을 액티브 영역으로써 맵핑 후보 영역의 리스트(candidate zone list)에 포함되도록 제어한다. 또한, FTL은 비휘발성 메모리 장치(200)에 포함된 다수의 영역들(Zone 0 내지 Zone 63)에 대하여 사용 중이지 않은 영역(Zone)이 많은 채널에 포함된 영역(Zone)들을 우선적으로 맵핑 후보 영역의 리스트에 포함될 수 있도록 비휘발성 메모리 장치(200)의 채널들(210-1 내지 210-8)을 조절할 수 있다.
FTL은 호스트(20)의 요청이 입력되면 맵핑 후보 영역의 리스트에 포함된 액티브 영역들 중에서 첫 번째 액티브 영역에 의해 처리될 수 있도록 호스트(20)의 요청을 맵핑한다. 또한, FTL은 호스트(20)로부터 다음 요청이 입력되면 맵핑 후보 영역의 리스트에 포함된 다음 액티브 영역으로 상기 호스트(20)의 요청을 맵핑한다. 즉, FTL은 입력되는 호스트(20)의 요청을 맵핑 후보 영역의 리스트에 존재하는 액티브 영역들에 순차적으로 맵핑할 수 있게 된다.
예컨대, LPN 0에 대응되는 호스트(20)의 요청은 Zone 17에 의해 처리되며, LPN 100에 대응되는 호스트(20)의 요청은 Zone 18에 의해 처리되며, LPN 1000에 대응되는 호스트(20)의 요청은 Zone 19에 의해 처리될 수 있다.
그러면, FTL은 액티브 채널인 제2 내지 제4 채널(210-2 내지 210-4)에 대해서만 전압을 공급하게 되며, 제2 내지 제4 채널(210-2 내지 210-4)에 포함된 모든 영역(Zone)들은 액티브 영역으로서 호스트(20)의 요청을 처리할 수 있게 된다.
또한, 도 8b에 도시된 바와 같이, FTL은 하나의 채널, 예컨대 제1 채널(210-1)만을 액티브 채널로 조절함으로써 제1 채널(210-1)에 포함된 액티브 영역에 대해서만 호스트(20)의 요청을 처리하도록 제어할 수 있다. 즉, 리퀘스트 큐(320)에 의해 산출된 호스트(20)의 요청량에 대한 평균값이 기준 범위 이상인 경우 FTL에 의해 액티브 채널이 증가되어 도 8a에 도시된 맵핑 방법이 사용될 수 있으나, 호스트(20)의 요청량에 대한 평균값이 기준 범위 이하인 경우 FTL에 의해 인액티브 채널이 증가되어 도 8b에 도시된 맵핑 방법이 사용될 수 있다.
도 9는 본 발명의 실시예에 따른 데이터 맵핑 방법을 나타내는 흐름도이다. 도 1 내지 도 9를 참조하면, 호스트(20)의 입력 요청을 수신하고(S10), 미리 정해진 시간 동안 저장된 상기 호스트(20)의 입력 요청량에 대한 평균값을 일정 시간 단위로 산출한다(S20).
산출된 호스트(20)의 입력 요청량에 대한 평균값을 미리 정해진 기준 범위와 비교하고(S30), 비교 결과에 기초하여 상기 호스트(20)의 입력 요청량에 대한 평균값이 미리 정해진 기준 범위 이상인 경우 비휘발성 메모리 장치(200)의 다수의 채널들(210-1 내지 210-N)에 대하여 액티브 채널의 수를 증가시킨다(S40).
다음으로, 상기 액티브 채널에 대응되는 액티브 영역을 맵핑 후보 영역의 리스트(candidate zone list)에 추가하고(S50), 상기 호스트(20)의 입력 요청에 대응되는 데이터를 상기 액티브 영역에 순차적으로 기입한다(S60).
그러나, 상기 비교 결과에 기초하여 상기 호스트(20)의 입력 요청량에 대한 평균값이 미리 정해진 기준 범위 이하인 경우 비휘발성 메모리 장치(200)의 다수의 채널들(210-1 내지 210-N)에 대하여 인액티브 채널의 수를 증가시키고(S70), 상기 인액티브 채널로 인가되는 동기 신호 및 전원 공급을 차단한다(S80).
도 10은 본 발명의 실시예에 따른 데이터 저장 장치를 구비하는 전자 시스템의 블록도이다. 도 10을 참조하면, 본 발명의 실시예에 따른 전자 시스템(900)은 본 발명의 일 실시예에 따른 데이터 저장 장치(100), 전원부(power supply)(910), 중앙 처리 장치(CPU)(920), 램(RAM)(930), 유저 인터페이스(User Interface)(940) 및 이들 구성요소들을 전기적으로 연결하는 시스템 버스(950)를 포함할 수 있다.
CPU(920)는 시스템(900)의 전체적인 동작을 제어하고, RAM(930)은 시스템(900)의 동작을 위해 필요한 정보들을 저장하고, User Interface(940)는 시스템(900)과 사용자와의 인터페이스를 제공한다. 전원부(910)는 내부의 구성 요소들(즉, CPU(920), 램(RAM)(930), 유저 인터페이스(940), 전자 시스템(900) 등)으로 전원을 공급한다.
CPU(920)가 상술한 호스트(20)에 해당할 수 있으며, 데이터 저장 장치(100)는 호스트(20)의 명령에 응답하여 데이터를 저장하거나 독출할 수 있다.
도 11은 본 발명의 다른 실시예에 따른 전자 시스템의 블록도이다.
도 11에 도시된 전자 시스템(900')은 도 10에 도시된 전자 시스템(900)과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.
도 11에 도시된 전자 시스템(900')은 도 10에 도시된 전자 시스템(900)에 비하여, RAID 컨트롤러 카드(960)를 더 구비한다. 데이터 저장 장치(100)는 호스트와 직접 인터페이스하는 것이 아니라, RAID 컨트롤러 카드(960)에 장착되어, RAID 컨트롤러 카드(960)를 통하여 호스트와 인터페이스할 수 있다. 이때, RAID 컨트롤러 카드(960)에는 복수(2 이상)의 데이터 저장 장치들(100-1~100-k, k는 2 이상의 정수)이 장착될 수 있다. 도 11에 도시된 전자 시스템(900')의 RAID 컨트롤러 카드(960)는 데이터 저장 장치들(100-1~100-k)의 외부에 별도의 제품으로 구현된다.
도 12는 본 발명의 실시예에 따른 데이터 저장 장치(100)를 구비하는 컴퓨팅 시스템(1000, PC)의 블록도이다. 이를 참조하면, 컴퓨팅 시스템(1000)은 중앙 처리 장치(Central Processing Unit, 1110), AGP 장치(Accelerated Graphics Port, 1120), 메인 메모리(1130), 데이터 저장 장치(예컨대, SSD, 100), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 사우스 브리지(1180) 등을 포함한다. 도 12에 도시된 컴퓨팅 시스템(1000, PC)은 노스 브리지(1140)를 포함하나, 실시예에 따라 노스 브리지(1140)가 구비되지 않을 수도 있다.
컴퓨팅 시스템(1000)은 SSD(100)가 하드디스크 드라이브를 대신하여 주 저장 장치로 이용하는 개인용 컴퓨터 또는 노트북 컴퓨터의 블락도일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
컴퓨팅 시스템(1000)에서 중앙 처리 장치(1110), AGP 장치(1120), 및 메인 메모리(1130) 등은 노스 브리지(1140)에 접속되며, SSD(100), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 각종 주변 장치들(미도시) 등은 사우스 브리지(1180)에 연결된다. 노스 브라지(1140)이 없는 실시예에서는,
노스 브리지(1140)는 메인보드 가운데를 기준으로 중앙 처리 장치(1110) 소켓 쪽에 있는 집적회로로서, 일반적으로는 중앙 처리 장치(1110)와 연결하는 호스트 인터페이스(host interface)를 포함하는 시스템 컨트롤러를 의미한다. 사우스 브리지(1180)는 메인보드 가운데를 기준으로 PCI(peripheral component interconnect) 슬롯 쪽에 있는 집적회로로서, 일반적으로는 호스트 버스에서 PCI 버스를 경유하여 접속되는 버스(bus)로 가는 브리지를 의미한다.
AGP는 3차원 그래픽 표현을 빠르게 구현할 수 있게 해주는 버스 규격이다. AGP 장치(1120)에는 모니터 이미지를 재생하는 비디오 카드 등이 포함될 수 있다. 메인 메모리(1130)는 일반적으로 휘발성 메모리 소자인 RAM(Random Access Memory)으로 구현될 수 있으나 본 발명의 범위가 이에 한정되는 것은 아니다.
또한, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1100)에서는 SSD(100)가 사우스 브리지(1180)에 연결되는 구조이나, 이에 한정되는 것은 아니며, SSD(100)가 노스 브리지(1140)에 연결되거나, CPU(1110)에 직접 연결되는 구조일 수도 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 데이터 저장 시스템
20: 호스트
100: 데이터 저장 장치
200: 비휘발성 메모리 장치
300: 컨트롤러
310: 호스트 인터페이스
320: 리퀘스트 큐
330: ROM
340: 메모리 인터페이스
350: RAM
360: CPU
400: 전원 조절부
20: 호스트
100: 데이터 저장 장치
200: 비휘발성 메모리 장치
300: 컨트롤러
310: 호스트 인터페이스
320: 리퀘스트 큐
330: ROM
340: 메모리 인터페이스
350: RAM
360: CPU
400: 전원 조절부
Claims (10)
- 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 데이터 맵핑 방법에 있어서,
호스트의 입력 요청에 기초하여 상기 호스트로부터 입력되는 데이터를 기입하기 위한 다수의 비휘발성 메모리 장치에 대한 액티브 채널을 조절하는 단계;
상기 다수의 비휘발성 메모리 장치에 대하여 상기 액티브 채널에 대응되는 비휘발성 메모리 장치들 각각을 액티브 영역으로써 맵핑 후보 영역의 리스트에 포함되도록 제어하는 단계; 및
상기 호스트로부터 입력되는 데이터를 상기 맵핑 후보 영역의 리스트에 존재하는 상기 액티브 영역에 순차적으로 입력하는 단계를 포함하는 데이터 맵핑 방법. - 제1항에 있어서,
상기 다수의 비휘발성 메모리 장치에 대하여 인액티브 채널에 대응되는 비휘발성 메모리 장치들을 상기 맵핑 후보 영역의 리스트에 포함되지 않도록 제어하는 단계를 더 포함하는 데이터 맵핑 방법. - 제2항에 있어서, 상기 액티브 채널을 조절하는 단계 이전에,
리퀘스트 큐(Request Queue)는 상기 호스트의 입력 요청을 순차적으로 저장하고, 미리 정해진 시간 동안 저장된 상기 호스트의 요청량에 대한 평균값을 산출하고, 산출된 평균값에 기초하여 상기 액티브 채널의 수를 조절하는 단계를 더 포함하는 데이터 맵핑 방법. - 제3항에 있어서,
상기 호스트의 요청량에 대한 평균값이 미리 정해진 기준 범위 이상인 경우 상기 액티브 채널의 수를 증가시키고, 증가된 액티브 채널에 대응되는 액티브 영역이 상기 맵핑 후보 영역의 리스트에 포함되도록 제어하는 데이터 맵핑 방법. - 제4항에 있어서,
상기 호스트의 요청량에 대한 평균값이 상기 미리 정해진 기준 범위 이하인 경우 상기 인액티브 채널의 수를 증가시키고, 증가된 인액티브 채널에 대응되는 액티브 영역이 상기 맵핑 후보 영역의 리스트에 존재하는 경우 상기 맵핑 후보 영역의 리스트에서 제거되도록 제어하는 데이터 맵핑 방법. - 제3항에 있어서,
상기 액티브 채널 또는 인액티브 채널에 대응되는 컨트롤 모듈에 대하여 동기 신호 입력 여부를 제어하고, 상기 컨트롤 모듈에 대응되는 상기 비휘발성 메모리 장치들에 대하여 전원 공급 여부를 제어하는 단계를 더 포함하며,
상기 호스트의 요청량에 기초하여 상기 동기 신호 입력 여부 및 전원 공급 여부를 제어하기 위한 인에이블 신호를 선택적으로 출력하는 데이터 맵핑 방법. - 제1항 내지 제6항 중 어느 하나의 항에 기재된 데이터 맵핑 방법을 실행하기 위한 코드를 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
- 호스트로부터 입력되는 데이터를 기입하는 다수의 비휘발성 메모리 장치; 및
상기 호스트의 입력 요청에 기초하여 상기 다수의 비휘발성 메모리 장치에 대한 액티브 채널을 조절하고, 상기 다수의 비휘발성 메모리 장치에 대하여 상기 액티브 채널에 대응되는 비휘발성 메모리 장치들 각각을 액티브 영역으로써 맵핑 후보 영역의 리스트에 포함되도록 제어하고, 상기 호스트로부터 입력되는 데이터를 상기 맵핑 후보 영역의 리스트에 존재하는 상기 액티브 영역에 순차적으로 입력하는 컨트롤러를 포함하는 데이터 저장 시스템. - 제8항에 있어서, 상기 컨트롤러는
상기 다수의 비휘발성 메모리 장치에 대하여 인액티브 채널에 대응되는 비휘발성 메모리 장치들을 상기 맵핑 후보 영역의 리스트에 포함되지 않도록 제어하는 데이터 저장 시스템. - 제9항에 있어서,
상기 호스트의 입력 요청이 상기 컨트롤러의 플래시 변환 레이어에 의해 처리되기 이전에, 상기 호스트의 입력 요청을 순차적으로 저장하고, 미리 정해진 시간 동안 저장된 상기 호스트의 요청량에 대한 평균값을 산출하고, 산출된 평균값에 기초하여 상기 액티브 채널의 수를 조절하는 리퀘스트 큐(Request Queue)를 더 포함하는 데이터 저장 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110017363A KR20120097862A (ko) | 2011-02-25 | 2011-02-25 | 데이터 저장 시스템 및 그의 데이터 맵핑 방법 |
US13/404,289 US20120221771A1 (en) | 2011-02-25 | 2012-02-24 | Data storage system and data mapping method of the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110017363A KR20120097862A (ko) | 2011-02-25 | 2011-02-25 | 데이터 저장 시스템 및 그의 데이터 맵핑 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20120097862A true KR20120097862A (ko) | 2012-09-05 |
Family
ID=46719797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110017363A KR20120097862A (ko) | 2011-02-25 | 2011-02-25 | 데이터 저장 시스템 및 그의 데이터 맵핑 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120221771A1 (ko) |
KR (1) | KR20120097862A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158581A (zh) * | 2018-11-07 | 2020-05-15 | 三星电子株式会社 | 包括存储器控制器的存储设备及电子系统的操作方法 |
KR20210008776A (ko) * | 2019-07-15 | 2021-01-25 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 전자 시스템 |
US12099727B2 (en) | 2022-03-16 | 2024-09-24 | SK Hynix Inc. | Memory system and method for operating the same |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471484B2 (en) * | 2012-09-19 | 2016-10-18 | Novachips Canada Inc. | Flash memory controller having dual mode pin-out |
KR102020466B1 (ko) * | 2012-10-04 | 2019-09-10 | 에스케이하이닉스 주식회사 | 버퍼 메모리 장치를 포함하는 데이터 저장 장치 |
CN105723317B (zh) * | 2013-11-13 | 2019-06-28 | 桑迪士克科技有限责任公司 | 用于与非易失性存储器通信的方法和系统 |
US9390033B2 (en) * | 2013-11-13 | 2016-07-12 | Sandisk Technologies Llc | Method and system for communicating with non-volatile memory via multiple data paths |
US9933838B2 (en) * | 2014-09-24 | 2018-04-03 | Seagate Technology Llc | Power management in a storage compute device |
CN107562648B (zh) * | 2016-07-01 | 2021-04-06 | 北京忆恒创源科技有限公司 | 无锁ftl访问方法与装置 |
US10642497B2 (en) | 2016-08-31 | 2020-05-05 | International Business Machines Corporation | System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics |
US10684980B2 (en) | 2017-05-12 | 2020-06-16 | Facebook, Inc. | Multi-channel DIMMs |
JP6963168B2 (ja) * | 2017-06-21 | 2021-11-05 | 富士通株式会社 | 情報処理装置、メモリ制御方法およびメモリ制御プログラム |
CN115757193B (zh) | 2019-11-15 | 2023-11-03 | 荣耀终端有限公司 | 一种内存的管理方法及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802116B2 (en) * | 2006-09-27 | 2010-09-21 | Intel Corporation | Subsystem power management |
KR101612111B1 (ko) * | 2009-04-27 | 2016-04-14 | 삼성전자주식회사 | 전류 검출기를 포함하는 데이터 저장 장치 |
US20100332922A1 (en) * | 2009-06-30 | 2010-12-30 | Mediatek Inc. | Method for managing device and solid state disk drive utilizing the same |
US20110047316A1 (en) * | 2009-08-19 | 2011-02-24 | Dell Products L.P. | Solid state memory device power optimization |
-
2011
- 2011-02-25 KR KR1020110017363A patent/KR20120097862A/ko not_active Application Discontinuation
-
2012
- 2012-02-24 US US13/404,289 patent/US20120221771A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158581A (zh) * | 2018-11-07 | 2020-05-15 | 三星电子株式会社 | 包括存储器控制器的存储设备及电子系统的操作方法 |
KR20200053051A (ko) * | 2018-11-07 | 2020-05-18 | 삼성전자주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 |
CN111158581B (zh) * | 2018-11-07 | 2024-04-19 | 三星电子株式会社 | 包括存储器控制器的存储设备及电子系统的操作方法 |
KR20210008776A (ko) * | 2019-07-15 | 2021-01-25 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 전자 시스템 |
US12099727B2 (en) | 2022-03-16 | 2024-09-24 | SK Hynix Inc. | Memory system and method for operating the same |
Also Published As
Publication number | Publication date |
---|---|
US20120221771A1 (en) | 2012-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20120097862A (ko) | 데이터 저장 시스템 및 그의 데이터 맵핑 방법 | |
JP6163532B2 (ja) | メモリシステムコントローラを含む装置 | |
KR102445662B1 (ko) | 스토리지 장치 | |
CN109799950B (zh) | 用于中间存储的适应性管理的存储设备和方法 | |
TWI432965B (zh) | 具有複數個結構之記憶體系統及其操作方法 | |
US10209897B2 (en) | Storage device and control method of the same | |
KR20180041898A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN109697027B (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
KR20140113211A (ko) | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
KR20170036964A (ko) | 불휘발성 메모리 시스템의 동작 방법 | |
US10776268B2 (en) | Priority addresses for storage cache management | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
TW201830246A (zh) | 記憶體系統以及記憶體系統的操作方法 | |
KR20130030640A (ko) | 저장 매체에 데이터를 저장하는 방법 및 그것을 포함하는 데이터 저장 장치 | |
KR20100100394A (ko) | 반도체 디스크 장치 그리고 그것의 데이터 기록 및 읽기 방법 | |
KR20130127274A (ko) | 메모리 오퍼레이션 타이밍 제어 방법 및 이를 이용한 메모리 시스템 | |
CN112783433A (zh) | 存储装置及其操作方法 | |
KR20130024271A (ko) | 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템 | |
JP2011070365A (ja) | メモリシステム | |
CN114647371A (zh) | 存储器控制器及包括存储器控制器的存储装置 | |
CN111913655A (zh) | 存储器控制器及其操作方法 | |
EP3772682A1 (en) | Method and apparatus to improve write bandwidth of a block-based multi-level cell non-volatile memory | |
CN112346650A (zh) | 存储装置及其操作方法 | |
KR101515621B1 (ko) | 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |