KR101026634B1 - 하이브리드 플래시 메모리의 데이터 저장 방법 - Google Patents
하이브리드 플래시 메모리의 데이터 저장 방법 Download PDFInfo
- Publication number
- KR101026634B1 KR101026634B1 KR1020090126766A KR20090126766A KR101026634B1 KR 101026634 B1 KR101026634 B1 KR 101026634B1 KR 1020090126766 A KR1020090126766 A KR 1020090126766A KR 20090126766 A KR20090126766 A KR 20090126766A KR 101026634 B1 KR101026634 B1 KR 101026634B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- area
- slc
- mlc
- flash memory
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 하이브리드 플래시 메모리의 데이터 저장 방법을 공개한다. 이 방법은 (a) 호스트의 데이터 기록 요청을 인가받아 상기 기록 요청된 데이터가 대용량의 데이터인지 여부를 판단하는 단계; (b) 상기 기록 요청된 데이터가 대용량의 데이터가 아니라고 판단된 경우에 SLC 영역에 데이터 기록할 공간이 있는지 여부를 판단하는 단계; (c) 상기 SLC 영역에 상기 데이터 기록할 공간이 없다고 판단된 경우에 가비지 수집을 수행하여 상기 SLC 영역의 각 블록들에 저장된 유효 데이터를 수집해서 MLC 영역의 데이터와 합병하는 단계; (d) 상기 MLC 영역의 블록에 상기 합병된 데이터를 저장하고 상기 소정의 SLC 블록에 저장된 데이터를 삭제하여 상기 데이터 기록할 공간을 확보하는 단계를 포함하는 것을 특징으로 한다. 따라서 본 발명에 의할 경우, 데이터 연산 처리 속도 및 내구성이 향상되고 가격대비 큰 저장 공간을 확보할 수 있으며, SLC 영역의 전체 블록이 균등하게 사용하고 삭제되어 저장된 데이터의 안정성을 보장할 수 있다.
플래시 메모리, SLC, MLC, FTL, FAST 기법
Description
본 발명은 하이브리드 플래시 메모리의 데이터 저장 방법에 관한 것으로서, 특히 시스템이 사용하는 논리적 메모리 주소와 플래시 메모리 상의 물리적 메모리 주소 간의 변환 시스템에서 데이터 블록과 로그 블록을 구별하여 데이터를 저장하는 하이브리드 플래시 메모리의 데이터 저장 방법에 관한 것이다.
낸드 플래시 메모리는 전원이 꺼지더라도 정보가 보존되는 비휘발성 기억장치이다. 하드디스크와 같은 기존의 저장매체보다 데이터 접근성이 빠르고 크기가 작으며, 외부의 물리적 충격에 강하고 무게가 가볍다는 특성을 지니고 있다. 이러한 장점 때문에 MP3 플레이어, 휴대용 전화기, 디지털 카메라 등 휴대용 기기의 저장장치로 널리 사용되고 있으며, 최근에는 플래시 메모리 저장장치의 용량이 커지고 가격은 내려감에 따라서 개인용 컴퓨터와 기업용 서버의 저장장치로 사용하는 추세이다.
플래시 메모리는 한 개의 메모리 셀로 표현할 수 있는 비트의 수에 따라, 단일 레벨 셀(single level cell, 이하 SLC)과 멀티 레벨 셀(multi level cell, 이하 MLC)로 나뉜다. SLC는 데이터 연산 성능이 빠르며 내구성이 높지만 가격이 비싸다는 단점이 있다. 반면, MLC는 SLC 보다 내구성이 낮고 데이터 연산 속도가 느린 대신에 가격대비 큰 저장 공간을 제공하는 장점이 있다.
특히, 플래시 메모리는 컴퓨터, 디지털 카메라 또는 휴대폰과 같은 임베디드 시스템(embedded system) 환경에서 많이 사용되는데, 플래시 메모리를 이러한 임베디드 시스템 환경에 사용하기 위해서는 시스템이 사용하는 논리적 메모리 주소(logical memory address)와 플래시 메모리 상의 물리적 메모리 주소(physical memory address) 간의 변환(translation)이 필요하다. 이러한 변환에 관련된 interface를 플래시 변환 계층(Flash Translation Layer, FTL)이라고 한다.
FTL 중에서 데이터 블록과 로그 블록을 구별하여 사용하는 기법을 로그 블록 방식 FTL이라고 하는데, 일반적으로 로그 블록 방식 FTL에서는 로그 블록과 데이터 블록의 크기가 동일하므로 로그 블록과 데이터 블록을 병합하는 경우에 쉽게 병합 동작을 실행할 수 있다.
그런데, 로그 블록 방식의 FTL의 특성상 로그 영역에서는 많은 쓰기 연산이 발생하고 그 크기도 한정되어 있기 때문에 로그 영역의 공간은 빠르게 가득 찰 수밖에 없고, 로그 영역으로 선택된 블록에 지우기 연산이 집중하는 현상으로 인해 로그 영역이 데이터 영역보다 빨리 수명이 다하는 문제점이 있었다.
본 발명의 목적은 플래시 메모리에 데이터를 저장하는 방식과 플래시 메모리 공간에 접근하는 주소 매핑 방식으로 FAST 기법을 적용하고 FAST의 로그 영역으로 SLC 영역을 사용하여 갱신된 데이터를 저장하는 방식에 라운드 로빈 방식을 이용한 가비지 수집을 수행하여 SLC 영역의 전체 블록을 균등하게 사용하면서 기록할 공간을 확보할 수 있는 하이브리드 플래시 메모리의 데이터 저장 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법은 (a) 호스트의 데이터 기록 요청을 인가받아 상기 기록 요청된 데이터가 대용량의 데이터인지 여부를 판단하는 단계; (b) 상기 기록 요청된 데이터가 대용량의 데이터가 아니라고 판단된 경우에 SLC 영역에 데이터 기록할 공간이 있는지 여부를 판단하는 단계; (c) 상기 SLC 영역에 상기 데이터 기록할 공간이 없다고 판단된 경우에 가비지 수집을 수행하여 상기 SLC 영역의 각 블록들에 저장된 유효 데이터를 수집해서 MLC 영역의 데이터와 합병하는 단계; (d) 상기 MLC 영역의 블록에 상기 합병된 데이터를 저장하고 소정의 SLC 블록에 저장된 데이터를 삭제하여 상기 데이터 기록할 공간을 확보하는 단계를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법의 상기 (d) 단계는 상기 SLC 영역에 상기 데이터 기록할 공간을 할당하는 단계를 더 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법의 상기 (b) 단계에서 상기 SLC 영역에 상기 데이터 기록할 공간이 있다고 판단된 경우에 상기 (c) 단계 및 상기 (d) 단계 수행 없이 상기 SLC 영역에 상기 데이터 기록할 공간을 할당하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법은 상기 데이터 기록할 공간을 할당한 후에 상기 기록 요청된 데이터를 상기 SLC 영역에 기록하는 단계; 상기 SLC 영역의 주소 매핑 테이블 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법의 상기 가비지 수집은 삭제할 상기 SLC 블록을 순차적으로 선택하여 상기 SLC 영역을 균등하게 사용하고 삭제하는 라운드 로빈 방식을 이용하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법의 상기 (a) 단계에서 (e) 상기 기록 요청된 데이터가 상기 대용량의 데이터라고 판단된 경우에 상기 기록 요청된 데이터의 논리 블록 주소에 해당하는 다른 데이터가 상기 MLC 영역에 있는지 여부를 판단하는 단계; (f) 상기 다른 데이터가 상기 MLC 영역에 있다고 판단된 경우에는 상기 기록 요청된 대용량의 데이터와 상기 MLC 영역에 기록된 데이터를 한 개의 영역으로 합병하는 단계; (g) 상기 기록 요청된 대용량의 데이터를 상기 MLC 영역에 기록하는 단계를 더 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법의 상기 (f) 단계에서 상기 다른 데이터가 상기 MLC 영역에 없다고 판단된 경우에는 상기 영역의 합병 없이 상기 기록 요청된 대용량의 데이터를 상기 MLC 영역에 기록하는 단계를 더 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법은 상기 MLC 영역에 기록하는 단계 이후에 상기 MLC 영역의 주소 매핑 테이블 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법의 상기 MLC 영역은 논리 주소에 해당하는 영역 단위의 원본 데이터가 저장되는 데이터 영역이고, 상기 SLC 영역은 상기 원본 데이터가 갱신된 사항이 반영된 페이지 단위의 데이터 부분이 저장되는 로그 영역인 것을 특징으로 한다.
본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법은 데이터 연산 처리 속도 및 내구성이 향상되고 가격대비 큰 저장 공간을 확보할 수 있으며, SLC 영역의 전체 블록이 균등하게 사용하고 삭제되어 저장된 데이터의 안정성을 보장할 수 있다.
이하, 첨부한 도면을 참고로 하여 본 발명의 하이브리드 플래시 메모리의 데이터 저장 방법을 설명하면 다음과 같다.
도 1은 본 발명에 따른 하이브리드 플래시 메모리의 개략적인 블록도로서, ROM(100), 버퍼 RAM(200), 컨트롤러(300), 메모리 셀(400), 페이지 버퍼(500)를 구비하고, 메모리 셀(400)은 한 개의 SLC 영역(420) 및 복수개의 MLC 영역들(440)을 구비한다.
도 1을 참조하여 본 발명에 따른 하이브리드 플래시 메모리 각 구성 요소들의 기능을 설명하면 다음과 같다.
ROM(100)은 기입 동작시 파일 시스템이 생성한 논리 주소를 삭제 연산이 수행된 플래시 메모리의 물리 주소로 매핑 시켜 주는 FTL이 저장된다.
버퍼 RAM(200)은 호스트(50)로부터 제공되는 데이터 또는 페이지 버퍼(500)로부터 제공되는 데이터를 임시 저장하고 ROM(100)에 저장되어 있는 FTL을 로딩하여 실행하며, 주소 정보를 빠르게 변환하여 사용하기 위해서 주소 정보를 캐싱하고 주소 정보 테이블을 유지한다.
버퍼 RAM(200)으로서 에스램(SRAM ;Static Random Access Memory) 또는 디램(DRAM ; Dynamic Random Access Memory)인 것이 바람직하고 메모리 사이즈는 페이지 방식의 주소변환 기법보다 적은 것이 바람직하다.
컨트롤러(300)는 호스트(50)로부터 프로그램, 소거, 또는 독출 등의 명령이 인가될 때 요청되는 데이터 연산을 균등하게 분산하여 처리하도록 전반적인 동작을 제어하고 플래시 메모리의 주소 정보를 관리한다.
한 개의 SLC 영역은 파일 시스템 데이터(F/S data)와 같이 빈번한 업데이트가 필요한 데이터를 저장한다.
복수개의 MLC 영역들은 사용자에 의해 입출력되는 다량의 노말 데이터(normal data)를 저장한다.
페이지 버퍼(500)는 읽기 동작 모드에서 감지 증폭기로서 동작하고 프로그램 동작 모드에서 기입 드라이버로서 동작한다.
도 2는 도 1에 나타낸 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법의 동작을 나타내기 위한 개략적인 블록도로서, 호스트(50), 컨트롤러(300), 한 개의 SLC 영역(420) 및 복수개의 MLC 영역들(440)을 구비하고, 컨트롤러(300)는 메모리 셀 선택부(320), 페이지 매핑부(340), 블록 매핑부(360), 가비지 수집부(380)를 구비한다.
도 2를 참조하여 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법의 동작을 설명하면 다음과 같다.
먼저, MLC 영역은 논리 주소에 해당하는 데이터를 저장하는 데이터 영역으로 사용하며 MLC 영역의 크기는 파일 시스템에서 인식하는 저장 공간의 크기와 일치하고, SLC 영역은 기본에 플래시 메모리 내에 저장된 데이터의 갱신 정보를 기록하는 로그 영역으로 사용하며 파일 시스템에서는 SLC 영역을 데이터의 저장 공간으로 인식하지는 않는다.
본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법은 로그 블록 방식 FTL을 사용하기 때문에 데이터의 기록 연산이 로그 영역에서 빈번하게 발생하기 쉬우므로 연산 속도가 빠른 SLC 영역을 로그 영역으로 사용했을 경우에 빠른 응답 속도를 기대할 수 있다.
호스트(50)에서 데이터 연산을 요청하면 메모리 셀 선택부(320)는 SLC 영역을 관리하는 페이지 단위 주소 매핑 테이블을 구비한 페이지 매핑부(340)와 MLC 영역을 관리하는 블록 단위 주소 매핑 테이블을 구비한 블록 매핑부(360)를 검색하여 해당 연산의 종류를 파악하고 데이터 연산을 수행할 메모리 셀(400)을 선택한다.
쓰기 연산의 경우에는 기록하려고 하는 데이터의 논리 주소가 주소 정보 테이블에 없을 때나 많은 데이터를 한꺼번에 플래시 메모리에 저장해야 할 때는 MLC 영역에 직접 데이터를 기록한다.
반면, 기존에 플래시 메모리 상에 기록되어 있는 논리 주소의 데이터를 갱신해야 하는 경우가 생기면 해당 최신 데이터는 SLC 영역에 기록하게 된다.
따라서, 호스트(50)의 쓰기 요청에 빠르게 응답하기 위해서 SLC 영역에서 쓰기 연산을 수행할 때는 지우기 연산을 최대한 지연하고 이어쓰기로 데이터를 기록하게 된다.
그러나, SLC 영역에서는 많은 쓰기 연산이 발생하고 그 크기도 한정되어 있기 때문에 SLC 영역의 공간은 빠르게 가득 찰 수밖에 없다.
이와 같이 SLC 영역의 공간에 더 이상 데이터를 기록할 공간이 없게 된 경우, 가비지 수집부(380)는 SLC 영역의 특정 블록을 MLC 영역의 데이터 블록과 합병하는 가비지 수집을 수행하고 합병이 완료되면 MLC 영역의 새로운 블록에 저장하고 '라운드 로빈' 방식을 이용하여 SLC 블록에 저장된 데이터를 삭제함으로써 데이터를 기록할 공간을 확보하게 된다.
도 3은 도 2에 나타낸 본 발명에 따른 하이브리드 플래시 메모리 내 가비지 수집부(380)에서 삭제할 SLC 블록을 선택하는 '라운드 로빈' 방식을 설명하기 위한 도면으로서, 삭제 블록 선택 포인터(385)를 구비한 가비지 수집부(380) 및 복수개의 SLC 블록들(BL(1) 내지 BL(N))로 구성된 SLC 영역(420)을 포함한다.
먼저, '라운드 로빈' 방식이란 고정된 크기의 데이터와 현재 구성 요소에 대한 포인터로 동작하는 기술로서, 현재 데이터를 읽고 쓸 때 포인터는 다음 구성 요소로 순차적으로 이동하게 된다.
'라운드 로빈' 방식을 사용하면 시작과 끝이 없는 원과 같이 계속해서 데이터를 읽고 쓰는 작업이 가능하고, 사용하는 중에도 모든 가용 위치에 대한 사용이 가능하며, 자동적으로 이전의 위치에 대한 재사용이 가능하다.
본 발명의 경우, SLC 영역(420)은 N개의 고정된 크기의 데이터 블록들을 포함하고 가비지 수집부(380) 내 삭제 블록 선택 포인터(385)는 이동하면서 삭제할 SLC 블록을 제1 블록(BL(1))에서 제N 블록(BL(N))까지 순차적으로 선택한다.
이러한 방법으로 데이터베이스는 크기는 증가하지 않지만 어떠한 인위적인 작업 없이 사용 가능하게 되고, SLC 영역의 전체 블록을 균등하게 사용하고 삭제하기 때문에 저장된 데이터의 안정성을 보장하는 메모리 관리 정책인 wear-leveling에 유리하다.
즉, 플래시 메모리는 소거 횟수가 한정되어 있기 때문에 데이터 소거 연산을 균등하게 분산하여 저장소의 내구성을 유지하는 메모리 관리 정책이 필요하다.
플래시 메모리에 기록되어 있는 데이터의 손실이 생기게 된다면 저장장치로서의 의미를 상실하는 것이기 때문에 플래시 메모리의 수명과도 직결되는데, 블록에 삭제 연산을 수행한 횟수가 정해진 횟수를 넘게 되면 저장된 데이터의 변경이 생길 수 있어서 데이터의 안정성을 보장 할 수 없게 된다.
따라서, 메모리 관리 정책은 플래시 메모리를 구성하는 블록들에 지우기 연산이 균등하게 분포할 수 있도록 하는 방향과 삭제 연산의 횟수를 줄이는 방향으로 나눌 수 있다. 본 발명의 라운드 로빈 방식으로 삭제할 SLC 블록을 선택하는 것은 전자에 해당한다고 할 수 있다.
삭제할 블록을 선택하는 방법은 가장 최근 가비지 수집 발생 시 지운 SLC 영역의 다음 차례의 SLC 블록을 선택 하여 지우기 때문에 삭제할 SLC 블록의 탐색하는 시간이 필요 없으며, 순서대로 SLC 블록에 저장된 데이터를 삭제하기 때문에 어느 하나의 블록에 삭제 연산이 집중되지 않고 모든 SLC 블록에 균등하게 삭제 연산을 수행하게 하는 효과가 있어 wear-leveling에 유리하게 된다.
도 4는 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법의 동작을 나타내는 순서도이다.
도 1 내지 도 4를 참조하여 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법의 동작을 설명하면 다음과 같다.
먼저, 본 발명에서는 FAST 기법을 FTL로 사용하여 임의 쓰기 연산이 많이 발 생하는 온라인 거래 처리(OLTP, online transaction processing)에 플래시 메모리가 효과적으로 대응할 수 있도록 로그 영역을 SLC 영역으로 사용하여 높은 쓰기 성능을 갖도록 동작한다.
즉, 네트워크상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 조회하는 등의 단위 작업을 처리하는 방식인 온라인 거래 처리 과정에서 다수의 이용자가 거의 동시에 이용할 수 있도록 송수신 자료를 트랜잭션(데이터 파일의 내용에 영향을 미치는 거래 입출고 저장 등의 단위 행위) 단위로 압축하여 비어 있는 공간을 다른 사용자들이 함께 쓸 수 있도록 한다.
여기에서, FAST 기법이란 낸드 플래시 메모리 공간을 로그 영역(log area)과 데이터 영역(data area)으로 나누어 사용하는 기술로서, 데이터 영역에는 논리 주소에 해당하는 원본 데이터가 저장되며 로그 영역에는 원본 데이터가 최근에 갱신된 사항이 반영된 데이터 부분만 저장된다.
낸드 플래시 메모리는 데이터가 저장된 곳에 덮어쓰기가 되지 않기 때문에 이전에 기록된 데이터의 변경 등이 발생하여 기록된 저장소의 덮어쓰기를 해야 하는 상황이 발생하면 데이터가 기록된 부분을 지우고 다시 데이터를 새로 쓰는 것이 아니라 로그 영역(log area)이라는 별도의 공간에 데이터의 변경된 부분만 저장하여 지우기 연산 없이 데이터의 수정을 가능하게 한다.
따라서, 플래시 메모리에 저장된 데이터를 접근할 때는 최신 데이터가 로그 영역에 존재할 가능성이 많기 때문에 로그 영역을 먼저 탐색한 후에 로그 영역에 데이터가 존재하지 않는 경우에 데이터 영역을 탐색하게 된다.
본 발명에서는 플래시 메모리에 데이터를 저장하는 방식과 플래시 메모리 공간에 접근하는 주소 매핑 방식인 FTL에 상기 FAST 기법을 적용하여 하나의 SLC 영역은 로그 영역으로 사용하여 원본 데이터의 수정이 발생하면 수정된 최신 데이터를 기록하는 부분으로 사용하고, 다수의 MLC 영역은 데이터 영역으로 사용하여 운영체제나 어플리케이션 같은 상위 계층에서 데이터에 접근하는 논리 주소에 해당하는 원본 데이터를 저장하는 부분으로 사용하게 된다.
우선 호스트(50)가 데이터의 기록을 요청하면(S100) 컨트롤러(300)는 요청을 인가받아 기록 요청된 데이터가 대용량의 데이터인지 여부를 판단한다.(S110)
만일 기록 요청된 데이터가 대용량의 데이터라고 판단된 경우에 컨트롤러(300)는 현재 기록 요청된 데이터의 논리 블록 주소에 해당하는 다른 데이터가 MLC 영역에 있는지 여부를 판단하고(S120), 기록 요청된 데이터가 대용량의 데이터가 아니라고 판단된 경우에 컨트롤러(300)는 SLC 영역(420)에 데이터를 기록할 공간이 있는지 여부를 판단한다.(S200)
현재 기록 요청된 데이터의 논리 블록 주소에 해당하는 다른 데이터가 MLC 영역에 있다고 판단된 경우에 컨트롤러(300)는 기록 요청된 대용량의 데이터와 MLC 영역에 기록된 데이터를 한 개의 블록으로 합병한 후에(S130) 현재 기록 요청된 대용량의 데이터를 MLC 영역에 기록하고,(S140) MLC 영역에 없다고 판단된 경우에 컨트롤러(300)는 현재 기록 요청된 대용량의 데이터를 블록의 합병 없이 바로 MLC 영역에 기록한다.(S140)
컨트롤러(300)는 MLC 영역의 주소 매핑 테이블 정보를 갱신한 후에(S150) 대 용량의 데이터 기록 동작을 완료한다.(S130)
한편, 단계(S200)에서 SLC 영역(420)에 데이터를 기록할 공간이 있다고 판단된 경우에 컨트롤러(300)는 SLC 영역(420)에 데이터를 기록할 공간을 할당한 후에(S250) 현재 기록 요청된 데이터를 SLC 영역(420)에 기록한다.(S270)
SLC 영역(420)에 데이터를 기록할 공간이 없다고 판단된 경우에 컨트롤러(300)는 가비지 수집을 수행하여 SLC 영역의 각 블록들에 흩어져 있는 유효 데이터를 모아서 버퍼 RAM(200)에 저장한 후에 MLC 영역의 데이터 블록과 합병한다.(S220)
컨트롤러(300)는 MLC 영역의 새로운 블록에 합병된 데이터를 저장하고 유효 데이터가 채워졌던 SLC 블록에 저장된 데이터를 삭제하여 데이터를 기록할 공간을 확보한 후에(S240) SLC 영역(420)에 데이터를 기록할 공간을 할당한다.(S250)
컨트롤러(300)는 현재 기록 요청된 데이터를 SLC 영역(420)에 기록하고(S270) SLC 영역의 주소 매핑 테이블 정보를 갱신한 후에(S290) 갱신 데이터 기록 동작을 완료한다.
이와 같이 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법은 플래시 메모리에 데이터를 저장하는 방식과 플래시 메모리 공간에 접근하는 주소 매핑 방식에 FAST 기법을 적용하고 SLC 영역에 갱신된 데이터를 저장하는 방식에 라운드 로빈 방식을 이용한 가비지 수집을 수행하여 SLC 영역의 전체 블록을 균등하게 사용하면서 기록할 공간을 확보함으로써 데이터 연산 처리 속도 및 내구성이 향상되고 가격대비 큰 저장 공간을 확보할 수 있으며, SLC 영역의 전체 블록이 균 등하게 사용하고 삭제되어 저장된 데이터의 안정성을 보장할 수 있다.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 당업계에서 통상의 지식을 가진 자라면 이하의 특허 청구범위에 기재된 본 발명의 사상 및 영역을 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명에 따른 하이브리드 플래시 메모리의 개략적인 전체 구성도이다.
도 2는 도 1에 나타낸 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법의 동작을 나타내기 위한 개략적인 블록도이다.
도 3은 도 2에 나타낸 본 발명에 따른 하이브리드 플래시 메모리 내 가비지 수집부(380)에서 삭제할 SLC 블록을 선택하는 '라운드 로빈' 방식을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 하이브리드 플래시 메모리의 데이터 저장 방법의 동작을 나타내는 순서도이다.
Claims (9)
- (a) 호스트의 데이터 기록 요청을 인가받아 상기 기록 요청된 데이터가 대용량의 데이터인지 여부를 판단하는 단계;(b) 상기 기록 요청된 데이터가 대용량의 데이터가 아니라고 판단된 경우에 SLC 영역에 데이터 기록할 공간이 있는지 여부를 판단하는 단계;(c) 상기 SLC 영역에 상기 데이터 기록할 공간이 없다고 판단된 경우에 가비지 수집을 수행하여 상기 SLC 영역의 각 블록들에 저장된 유효 데이터를 수집해서 MLC 영역의 데이터와 합병하는 단계;(d) 상기 MLC 영역의 블록에 상기 합병된 데이터를 저장하고 소정의 SLC 블록에 저장된 데이터를 삭제하여 상기 데이터 기록할 공간을 확보하는 단계;를 포함하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 1 항에 있어서,상기 (d) 단계는상기 SLC 영역에 상기 데이터 기록할 공간을 할당하는 단계를 더 포함하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 1 항에 있어서,상기 (b) 단계에서상기 SLC 영역에 상기 데이터 기록할 공간이 있다고 판단된 경우에상기 (c) 단계 및 상기 (d) 단계 수행 없이 상기 SLC 영역에 상기 데이터 기록할 공간을 할당하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 2 항 또는 제 3 항에 있어서,상기 데이터 기록할 공간을 할당한 후에상기 기록 요청된 데이터를 상기 SLC 영역에 기록하는 단계;상기 SLC 영역의 주소 매핑 테이블 정보를 갱신하는 단계;를 더 포함하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 1 항에 있어서,상기 가비지 수집은삭제할 상기 SLC 블록을 순차적으로 선택하여 상기 SLC 영역을 균등하게 사 용하고 삭제하는 라운드 로빈 방식을 이용하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 1 항에 있어서,상기 (a) 단계에서(e) 상기 기록 요청된 데이터가 상기 대용량의 데이터라고 판단된 경우에 상기 기록 요청된 데이터의 논리 블록 주소에 해당하는 다른 데이터가 상기 MLC 영역에 있는지 여부를 판단하는 단계;(f) 상기 다른 데이터가 상기 MLC 영역에 있다고 판단된 경우에는 상기 기록 요청된 대용량의 데이터와 상기 MLC 영역에 기록된 데이터를 한 개의 영역으로 합병하는 단계;(g) 상기 기록 요청된 대용량의 데이터를 상기 MLC 영역에 기록하는 단계;를 더 포함하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 6 항에 있어서,상기 (f) 단계에서상기 다른 데이터가 상기 MLC 영역에 없다고 판단된 경우에는 상기 영역의 합병 없이 상기 기록 요청된 대용량의 데이터를 상기 MLC 영역에 기록하는 단계;를 더 포함하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 6 항 또는 제 7 항에 있어서,상기 MLC 영역에 기록하는 단계 이후에상기 MLC 영역의 주소 매핑 테이블 정보를 갱신하는 단계;를 더 포함하는 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
- 제 1 항에 있어서,상기 MLC 영역은논리 주소에 해당하는 영역 단위의 원본 데이터가 저장되는 데이터 영역이고,상기 SLC 영역은상기 원본 데이터가 갱신된 사항이 반영된 페이지 단위의 데이터 부분이 저장되는 로그 영역인 것을 특징으로 하는 하이브리드 플래시 메모리의 데이터 저장 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090126766A KR101026634B1 (ko) | 2009-12-18 | 2009-12-18 | 하이브리드 플래시 메모리의 데이터 저장 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090126766A KR101026634B1 (ko) | 2009-12-18 | 2009-12-18 | 하이브리드 플래시 메모리의 데이터 저장 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101026634B1 true KR101026634B1 (ko) | 2011-04-04 |
Family
ID=44049533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090126766A KR101026634B1 (ko) | 2009-12-18 | 2009-12-18 | 하이브리드 플래시 메모리의 데이터 저장 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101026634B1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8861268B2 (en) | 2011-11-16 | 2014-10-14 | Samsung Electronics Co., Ltd. | Multi-valued logic device having nonvolatile memory device |
US9348749B2 (en) | 2013-03-15 | 2016-05-24 | Samsung Electronics Co., Ltd. | Host-driven garbage collection |
US9772940B2 (en) | 2013-12-26 | 2017-09-26 | Samsung Electronics Co., Ltd. | Storage device comprising volatile and nonvolatile memory devices, and related methods of operation |
US11150822B2 (en) | 2019-07-08 | 2021-10-19 | SK Hynix Inc. | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof |
US11500768B2 (en) | 2020-04-13 | 2022-11-15 | SK Hynix Inc. | Storage device performing garbage collection and method of operating the same |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009510594A (ja) | 2005-09-29 | 2009-03-12 | トレック・2000・インターナショナル・リミテッド | Slc及びmlcフラッシュメモリを使用するポータブルデータ記憶装置 |
-
2009
- 2009-12-18 KR KR1020090126766A patent/KR101026634B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009510594A (ja) | 2005-09-29 | 2009-03-12 | トレック・2000・インターナショナル・リミテッド | Slc及びmlcフラッシュメモリを使用するポータブルデータ記憶装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8861268B2 (en) | 2011-11-16 | 2014-10-14 | Samsung Electronics Co., Ltd. | Multi-valued logic device having nonvolatile memory device |
US9348749B2 (en) | 2013-03-15 | 2016-05-24 | Samsung Electronics Co., Ltd. | Host-driven garbage collection |
US9772940B2 (en) | 2013-12-26 | 2017-09-26 | Samsung Electronics Co., Ltd. | Storage device comprising volatile and nonvolatile memory devices, and related methods of operation |
US11150822B2 (en) | 2019-07-08 | 2021-10-19 | SK Hynix Inc. | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof |
US11500768B2 (en) | 2020-04-13 | 2022-11-15 | SK Hynix Inc. | Storage device performing garbage collection and method of operating the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI739859B (zh) | 操作對多重名稱空間進行管理的儲存裝置的方法 | |
KR100789406B1 (ko) | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
EP2939120B1 (en) | Priority-based garbage collection for data storage systems | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
US9652386B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
Jiang et al. | S-FTL: An efficient address translation for flash memory by exploiting spatial locality | |
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
US20070094440A1 (en) | Enhanced data access in a storage device | |
US10740251B2 (en) | Hybrid drive translation layer | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
EP2665065A2 (en) | Electronic device employing flash memory | |
US20130166828A1 (en) | Data update apparatus and method for flash memory file system | |
US9208101B2 (en) | Virtual NAND capacity extension in a hybrid drive | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
KR20150083264A (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
KR102721567B1 (ko) | 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 | |
CN111930643B (zh) | 一种数据处理方法及相关设备 | |
CN108073359B (zh) | 数据储存装置的操作方法 | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
US20210026763A1 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140106 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150115 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |