KR100771519B1 - 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 - Google Patents
플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 Download PDFInfo
- Publication number
- KR100771519B1 KR100771519B1 KR1020060103046A KR20060103046A KR100771519B1 KR 100771519 B1 KR100771519 B1 KR 100771519B1 KR 1020060103046 A KR1020060103046 A KR 1020060103046A KR 20060103046 A KR20060103046 A KR 20060103046A KR 100771519 B1 KR100771519 B1 KR 100771519B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- memory
- data
- flash memory
- merge operation
- 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
- 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
- G06F13/1668—Details of memory controller
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지 방법에 관한 것이다. 본 발명에 따른 메모리 시스템은 호스트; 상기 호스트로부터 파일 처리 명령을 입력받고, 무효화 되는 블록 어드레스를 파악하는 소프트웨어 모듈; 및 상기 소프트웨어 모듈로부터 무효화 블록 어드레스를 입력받고, 머지 동작 시에 무효화 블록에 대한 머지 동작을 차단하는 데이터 저장 장치를 포함한다. 본 발명에 의하면, 호스트로부터 인가되는 파일 처리 명령을 참조하여 머지 동작을 수행함으로, 전체 머지 시간을 줄일 수 있다.
Description
도 1 내지 도 3은 일반적인 사상 기법들을 설명하기 위한 도면들이다.
도 4는 플래시 메모리를 포함한 메모리 시스템을 보여주는 블록도이다.
도 5는 도 4에 도시된 메모리 시스템의 머지 방법을 보여주는 개념도이다.
도 6은 도 4에 도시된 메모리 시스템의 선택적 머지 방법을 보여주는 순서도이다.
도 7은 본 발명에 따른 메모리 시스템을 보여주는 블록도이다.
도 8은 도 7에 도시된 메모리 시스템의 블록 머지 방법을 보여주는 개념도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100, 200; 메모리 시스템 110, 210; 호스트
120, 220; 데이터 저장 장치 130, 230; 플래시 메모리
131; FAT 영역 132; 데이터 영역
133; 로그 영역 134; 메타 영역
140, 240; 컨트롤러 250; 소프트웨어 모듈
141; 제어로직 142; 워크 메모리
본 발명의 플래시 메모리를 포함한 데이터 저장 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지 방법에 관한 것이다.
최근 데스크 탑 컴퓨터 및 노트북 컴퓨터와 같은 다양한 형태의 개인용 컴퓨터들이 시장에 출시되고 있다. 일반적으로, 이러한 개인용 컴퓨터들은 메인 메모리와 외부 저장 장치를 포함하고 있다. 여기에서, 외부 저장 장치는 디스크 저장 매체를 이용한 하드 디스크 드라이브(HDD) 또는 플로피 디스크 드라이브(FDD)이다. 이러한 디스크 저장 장치들은 일반적으로 가격이 낮고 메모리 용량이 크지만, 마그네틱 헤드로 다양한 동작들 (예를 들면, 디스크 탐색 동작)을 수행하기 때문에 물리적인 충격에 의해 쉽게 손상될 수 있고 다른 형태의 메모리 장치보다 신뢰성이 낮은 단점이 있다.
디스크 저장 장치들의 이와 같은 문제점들로 인해, 플래시 메모리와 같은 반도체 메모리를 이용한 데이터 저장 장치들이 개발되고 있다. 플래시 메모리를 이용한 데이터 저장 장치 (이하, 데이터 저장 장치라고 한다)들은 일반적으로 전력을 적게 소모하고, 콤팩트하고, 가볍고, 물리적인 충격에 손상이 적은 장점이 있다.
호스트는 논리적 어드레스(logical address)를 제공함으로써 데이터 저장 장치를 액세스한다. 호스트에서 제공된 논리적 어드레스는 데이터 저장 장치의 물리 적 메모리 공간을 액세스하기 위해서 물리적 어드레스(physical address)로 변환된다.
일반적으로, 데이터 저장 장치는 액세스 동작 동안 호스트와의 호환성을 위해서 디스크 에뮬레이션 소프트웨어 (disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 액세스 동작 동안, 호스트와 데이터 저장 장치 사이의 호환성은 플래시 변환 레이어(Flash Translation Layer; 이하 FTL 이라 함)와 같은 내장 시스템을 운영함으로써 달성될 수 있다. 다시 말해서, 호스트는 데이터 저장 장치를 하드 디스크와 같이 인식하여 하드 디스크와 동일한 방식으로 데이터 저장 장치를 액세스한다.
FTL의 기능들은 논리적 어드레스-물리적 어드레스 사상 정보 관리, 배드 블럭 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리, 마모도 관리 등을 포함한다. FTL의 기능들 중 핵심적인 기능은 사상 기법에 관련된 것으로, 예시적인 사상 기법들이 U.S. Patent No. 5,404,485에 "FLASH FILE SYSTEM"이라는 제목으로, U.S. Patent No. 5,937,425에 "FLASH FILE SYSTEM OPTIMIZED FOR PAGE-MODE FLASH TECHNOLOGIES"라는 제목으로, 그리고 U.S. Patent No. 6,381,176에 "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
플래시 메모리가 블록 단위로 액세스되는 경우에, 플래시 메모리는 복수의 블록들로 분할된다. 분할된 블록에 순차적으로 할당된 번호는 물리 블록 번호라 불리며, 사용자가 생각하는 분할된 블록의 가상 번호는 논리 블록 번호라 불린다. 논 리 블록 번호와 물리 블록 번호 간의 사상을 제공하는 방법은 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법을 포함한다. 사상 기법을 이용한 FTL에서는 논리적으로 연속된 어드레스를 가지는 데이터가 물리적으로는 서로 상이한 위치에 기록되어 있을 수 있다. 플래시 메모리는 쓰기 (또는 프로그램) 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블록을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 공간으로 모으는 작업을 필요로 하며, 이러한 과정을 머지 동작이라고 한다.
머지 동작에는 크게 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법이 이용된다. 머지 동작을 설명하기에 앞서, 플래시 메모리가 복수 개의 메모리 블록들로 분할되어 있고 각 메모리 블록은 복수 개의 페이지들로 구성된다고 가정하자. 기호 "PBN"은 물리 블록 번호를 나타내고, 기호 "PPN"은 물리 페이지 번호를 나타내며, 기호 "LPN"은 논리 페이지 번호를 나타낸다.
블록 사상 기법
블록 사상 기법에 따른 머지 동작이 도 1을 참조하여 이하 설명된다. 블록 사상 기법에 따르면, 임의의 메모리 블록에 데이터를 저장하는 경우, 메모리 블록의 페이지들에 순차적으로 데이터가 저장된다. 물리 블록 번호가 '2'인 메모리 블록 (예를 들면, PBN2)의 i번째 페이지 (PPNi)에 데이터를 업데이트하는 경우, 먼저, 업데이터가 요청된 물리 페이지 번호가 'i'인 페이지 (PPNi)를 제외한 나머지 페이지들에 저장된 데이터가 빈 메모리 블록 (예를 들면, PBN3)의 대응하는 페이지 들로 각각 복사된다. 그 다음에, 메모리 블록 (PBN2)의 페이지 (PPNi)에 저장될 데이터는 메모리 블록 (PBN3)의 i번째 페이지에 업데이트된다. 이후, 메모리 블록 (PBN2)은 소거되어 빈 메모리 블록 (free memory block)이 된다. 블록 사상 기법에 의하면, 앞서 설명된 머지 동작은 데이터가 저장된 페이지에 다른 데이터가 업데이트될 때마다 수행되어야 한다. 블록 사상 기법에 있어서, 물리 블록 번호와 논리 블록 번호 사이의 블록 사상 정보는 블록 사상 테이블을 사용하여 관리된다.
페이지 사상 기법
페이지 사상 기법에 따른 머지 동작이 도 2a 및 도 2b를 참조하여 이하 설명된다. 페이지 사상 기법에 의하면, 메모리 블록의 페이지들에 순차적으로 데이터가 쓰여진다. 논리 페이지 (LPN0)의 데이터는 물리 페이지 (PPN0)에 저장되고, 논리 페이지 (LPN1)의 데이터는 물리 페이지 (PPN1)에 저장되며, 논리 페이지 (LPN2)의 데이터는 물리 페이지 (PPN2)에 저장된다. 논리 페이지 (예를 들면, LPN1)에 데이터를 업데이트하고자 하는 경우, 논리 페이지 (LPN1)의 데이터는 물리 페이지 (PPN3)에 저장되고, 물리 페이지 (PPN1)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2a에서 "X"로 표기됨). 또한, 논리 페이지 (예를 들면, LPN0)에 데이터를 업데이트하고자 하는 경우, 논리 페이지 (LPN0)의 데이터는 물리 페이지 (PPN4)에 저장되고, 물리 페이지 (PPN0)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2a에서 "X"로 표기됨). 만약 메모리 블록 (PBN0)에 빈 페이지가 존재하지 않는 경우, 메모리 블록 (PBN0)에 쓰기 동작이 요구될 때 머지 동작이 수행된다. 도 2a에 도시된 바와 같이, 메모리 블록 (PBN0)의 유효 데이터만 즉, 물리 페이지들 (PPN2-PPN5)이 빈 메모리 블록 (PBN1)의 대응하는 페이지들 (PPN10-PPN13)로 복사되고, 쓰기 동작이 요구된 논리 페이지 (LPN0)의 데이터가 메모리 블록 (PBN1)의 물리 페이지 (PPN14)에 저장된다. 이때, 메모리 블록 (PBN1)의 물리 페이지 (PPN10)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2a에서 "X"로 표기됨). 그 다음에 메모리 블록 (PBN0)은 소거될 것이다. 변경되는 사상 테이블은 FTL에 의해서 관리되며, 도 2b에 도시된 바와 같이 변경된다.
로그 사상 기법
로그 사상 기법을 이용한 머지 동작이 도 3a 및 3b를 참조하여 이하 상세히 설명된다. 도 3a를 참조하면, 데이터 저장 장치에서, 플래시 메모리는 데이터 영역, 로그 영역, 그리고 메타 영역으로 구분된다.
로그 사상 기법에 따르면, 로그 영역의 메모리 블록들은 데이터 영역의 메모리 블록들 중 일부 메모리 블록들에 각각 지정된다. 예를 들어, 플래시 메모리는 9개의 메모리 블록들 (PBN0-PBN8)을 포함한다고 가정하자. 9개의 메모리 블록들 중에서, 메모리 블록들 (PBN0-PBN4)은 데이터 영역으로, 메모리 블록들 (PBN5-PBN7)은 로그 영역으로, 그리고 메모리 블록 (PBN8)은 메타 영역으로 각각 정의되어 있다. 이때, 로그 영역의 메모리 블록들 (PBN5, PBN6)은 데이터 영역의 메모리 블록들 (PBN0, PBN2)에 각각 지정되며, 로그 영역의 메모리 블록 (PBN7)은 빈 메모리 블록으로 지정되어 있다고 가정한다.
데이터 영역의 메모리 블록 (PBN0)에 데이터를 쓰고자 하는 경우, 데이터는 메모리 블록 (PBN0)에 직접 쓰여지는 것이 아니라 메모리 블록 (PBN0)에 대응하는 로그 영역의 메모리 블록 (PBN5)에 쓰여진다. 메모리 블록 (PBN1)에 데이터를 쓰고자 하는 경우, 메모리 블록 (PBN1)에 대응하는 로그 영역의 메모리 블록이 지정되어 있지 않기 때문에, 아래와 같이 머지 동작이 수행된다.
로그 영역에 빈 메모리 블록 (PBN7)이 있는 경우, 로그 영역의 메모리 블록 (PBN5)에 저장된 유효 데이터가 빈 메모리 블록 (PBN7)으로 복사된다. 그리고, 메모리 블록 (PBN5)에 대응하는 데이터 영역의 메모리 블록 (PBN0)에 저장된 유효 데이터가 메모리 블록 (PBN7)으로 복사된다.
한편, 머지 동작에 따른 메모리 블록의 사상(mapping) 정보는 변경되며, 변경된 사상 정보는 FTL에 의해서 관리되며, 플래시 메모리의 메타 영역(PBN8)에 저장된다.
도 3b는 로그 사상 기법에 따른 머지 동작을 보여준다. 도 3b를 참조하면, 로그 블록(PBN5) 및 데이터 블록(PBN0)의 유효한 페이지들은 새로운 데이터 블록(PBN7)으로 복사된다. 이때 로그 블록(PBN5)은 최근에 쓰여진 데이터이므로 사용자가 쓰여지길 원하는 데이터일 가능성이 높지만, 데이터 블록(PBN0)에 쓰여진 데이터는 이미 지워진, 즉 더 이상 유효하지 않은 데이터를 가능성이 있다. 이 경우, FTL의 입장에서는 데이터 블록(PBN0)에 쓰여진 데이터가 유효한지 아니면 무효한지의 여부를 전혀 알 수 없다. 즉, 데이터 블록(PBN0)의 유효한 페이지들은 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 무효한 페이지일 수 있다. 예를 들면, 데이터 블록(PBN0)의 두번째 유효한 페이지에 쓰여진 파일이 파일 시스템 관점에서 이미 지워진 데이터라고 하면, 해당 페이지의 머지 동작은 파일 시스템 관점에서 불필요한 동작이 된다.
머지 동작은 FTL의 필요에 의해 일어나는 동작이기 때문에 호스트는 머지 동작이 유발되는지 여부를 알 수 없다. 또한, 종래의 데이터 저장 장치에서 FTL은 파일 시스템의 정보를 참조하지 않기 때문에 머지 동작의 대상이 되는 데이터 블록의 해당 페이지가 파일 시스템 관점에서 유효한지 알 수 없다. 따라서 FTL은 데이터 블록의 해당 페이지에 대한 유효성 검사 없이 해당 페이지에 데이터가 존재하면 새로운 데이터 블록으로 머지 동작을 수행한다. 따라서 종래의 데이터 저장 장치의 머지 동작은 파일 시스템 관점에서 지워진 데이터를 복사함으로 인해 머지 동작에 불필요한 시간 낭비를 초래하는 문제점이 있다.
본 발명의 목적은 호스트로부터 제공되는 파일 처리 명령에 응답하여, 선택적으로 머지 동작을 수행함으로, 전체 머지 시간을 줄일 수 있는 메모리 시스템 및 그것의 머지 방법을 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 호스트; 상기 호스트로부터 파일 처리 명령을 입력받고, 무효화 되는 블록 어드레스를 파악하는 소프트웨어 모듈; 및 상기 소프트웨어 모듈로부터 무효화 블록 어드레스를 입력받고, 머지 동작 시에 무효화 블록에 대한 머지 동작을 차단하는 데이터 저장 장치를 포함한다.
실시예로서, 상기 파일 처리 명령은 파일 삭제 명령인 것을 특징으로 한다. 상기 데이터 저장 장치는 데이터를 저장하는 낸드 플래시 메모리; 및 상기 무효화 블록 어드레스를 입력받고, 머지 동작을 수행하기 위한 컨트롤러를 포함한다. 상기 낸드 플래시 메모리는 FAT 영역, 데이터 영역, 로그 영역, 그리고 메타 영역을 포함한다.
상기 컨트롤러는 상기 데이터 영역에 저장된 파일이 삭제된 경우에, 상기 삭제된 파일을 저장한 메모리 블록이 새로운 메모리 블록으로 머지 되는 것을 차단한다. 상기 컨트롤러는 머지 동작을 수행하기 위한 플래시 변환 레이어(FTL)를 구동하기 위한 워크 메모리를 포함한다. 상기 낸드 플래시 메모리 및 상기 컨트롤러는 하나의 카드 형태로 집적된다.
본 발명에 따른 플래시 메모리를 포함한 메모리 시스템의 머지 방법은 호스트로부터의 파일 처리 명령에 응답하여, 상기 플래시 메모리 내의 무효화 블록에 대한 어드레스를 파악하는 단계; 및 상기 무효화 블록 어드레스를 입력받고, 머지 동작 시에 상기 무효화 블록에 대한 머지 동작을 차단하는 단계를 포함한다.
실시예로서, 상기 파일 처리 명령은 파일 삭제 명령인 것을 특징으로 한다. 상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 4는 플래시 메모리를 포함한 메모리 시스템을 보여주는 블록도이다. 도 4 에 도시된 메모리 시스템(100)은 호스트(110) 및 데이터 저장 장치(120)를 포함한다. 호스트(110)의 입장에서 볼 때, 데이터 저장 장치(120)는 마치 하드 디스크처럼 읽기(read), 쓰기(write), 그리고 소거(erase) 동작이 자유로운 저장 매체로 인식된다.
데이터 저장 장치(120)는 낸드 플래시 메모리(130)와 컨트롤러(140)를 포함한다. 낸드 플래시 메모리(130)는 데이터를 저장하며, 컨트롤러(140)는 호스트(110)와 낸드 플래시 메모리(130) 사이에서 인터페이스 역할을 수행한다.
낸드 플래시 메모리(130)는 당업자에게 잘 알려진 바와 같이, 스트링 구조(string structure)를 갖는 복수의 메모리 셀로 구성된다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 낸드 플래시 메모리(130)의 메모리 셀 어레이는 복수의 메모리 블록(memory block)으로 구성된다. 각각의 메모리 블록은 복수의 페이지(page)로 구성된다. 각각의 페이지는 하나의 워드 라인을 공유하는 복수의 메모리 셀로 구성된다.
낸드 플래시 메모리(130)는 읽기 및 쓰기 동작의 단위와 소거 동작의 단위가 다르다. 즉, 낸드 플래시 메모리(130)는 메모리 블록 단위로 소거 동작을 수행하고, 페이지 단위로 읽기 및 쓰기 동작을 수행한다. 또한, 낸드 플래시 메모리(130)는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는다. 따라서 낸드 플래시 메모리(130)는 쓰기 동작을 수행하기 전에 소거 동작을 수행한다.
따라서 데이터 저장 장치(120)는 낸드 플래시 메모리(130)를 하드 디스크처럼 사용하기 위해서는 읽기, 쓰기, 그리고 소거 동작의 단위에 대한 별도의 관리가 필요하다. 플래시 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 이러한 목적으로 개발된 시스템 소프트웨어이다.
계속해서 도 4를 참조하면, 낸드 플래시 메모리(130)는 FAT 영역(131), 데이터 영역(132), 로그 영역(133), 그리고 메타 영역(134)을 포함한다. FAT 영역(131)에는 파일 할당 테이블(File Allocation Table; 이하 FAT라 함) 정보가 저장되어 있다.
데이터 영역(132)의 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 데이터 블록에 직접 쓰여지는 것이 아니라, 로그 영역(133)의 대응하는 로그 블록에 저장된다. 그러나 데이터 영역(132)의 데이터 블록에 대응하는 로그 영역(133)의 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(133)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(110)의 요청이 있는 경우에는 머지 동작이 수행된다. 머지 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록 또는 로그 블록으로 복사된다. 머지 동작이 수행되면, 사상 정보가 변경되는데, 변경된 사상 정보는 메타 영역(134)에 저장된다.
컨트롤러(140)는 호스트(110)로부터 액세스 요청이 있을 때 낸드 플래시 메모리(130)를 제어하도록 구성된다. 도 4에 도시된 바와 같이, 컨트롤러(140)는 제어 로직(141)과 워크 메모리(work memory)(142)를 포함한다. 워크 메모리(142)는 플래시 변환 레이어(FTL)를 구동한다. 제어 로직(141)은 호스트(110)로부터의 액세스 요청이 있을 때, 워크 메모리(142)를 사용하여 플래시 변환 레이어(FTL)를 구동한다.
도 5는 도 4에 도시된 데이터 저장 장치의 머지 방법을 보여주는 개념도이다. 도 5를 참조하면, 로그 블록(510)의 유효한 페이지(511, 513) 및 데이터 블록(520)의 유효한 페이지(522)는 새로운 데이터 블록(530)으로 복사된다. 로그 블록(510)의 제 1 및 제 3 페이지(511, 513)는 새로운 데이터 블록(530)의 제 1 및 제 3 페이지(531, 533)로 각각 복사된다. 그리고 데이터 블록(520)의 제 2 페이지(522)는 새로운 데이터 블록(530)의 제 2 페이지(532)로 복사된다.
여기에서, 본 발명에 따른 데이터 저장 장치의 머지 방법은 FAT 정보(540)를 참조하여 데이터 블록(520)의 유효한 페이지들을 선택적으로 새로운 데이터 블록(530)으로 복사한다.
도 5를 참조하면, 플래시 메모리(도 4 참조)(130)에 저장된 FAT 정보(540)는 데이터 블록(520)의 해당 페이지의 할당(Allocation) 여부에 대한 정보를 저장한다. NA(Not Allocation)는 할당되지 않은 페이지를 의미하고, A(Allocation)은 할당된 페이지를 의미하고, D(Delete)는 파일을 저장하고 있는 유효한 페이지이지만, 파일 시스템 관점에서 지워진 페이지를 의미한다.
예를 들어, 데이터 블록(520)의 제 1 페이지(521)는 파일을 저장하는데 사용되지 않은 페이지이므로, FAT 정보(540)에 NA로 표시되어 있다. 데이터 블록(520)의 제 2 페이지(522)는 파일을 저장하고 있는 유효한 페이지이므로, FAT 정보(540)에 A로 표시되어 있다. 데이터 블록(520)의 제 3 및 제 5 페이지(523, 525)에 해당하는 FAT 정보(540)에는 NA로 표시되어 있다. 그리고 데이터 블록(520)의 제 4 페이지(524)는 시스템 관점에서는 지워진 페이지이므로 D로 표시되어 있다.
여기에서, 데이터 블록(520)의 제 4 페이지(524)에 저장된 데이터는 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 삭제된 더 이상 유효하지 않은 페이지이다. 따라서 데이터 블록(520)의 제 4 페이지(524)가 파일 시스템 관점에서 지워진 데이터를 가진다면, 해당 페이지의 데이터는 새로운 데이터 블록(530)으로 복사되지 않는다.
따라서 본 발명에 따른 데이터 저장 장치의 머지 동작은 FAT 정보를 참조하여 더 이상 유효하지 않은 데이터의 머지 동작을 방지하는 데 있다. 본 발명에 따른 데이터 저장 장치의 머지 동작은 파일 시스템 관점에서 필요하지 않은 페이지의 복사를 수행하지 않음으로써 전체 머지 시간을 줄일 수 있다.
도 6은 도 4에 도시된 메모리 시스템의 선택적 머지 방법을 보여주는 순서도이다. 도 4 및 도 6을 참조하여, 데이터 저장 장치(120)의 머지 방법을 설명한다.
S110 단계에서는, 새로운 데이터 블록(도 5 참조)(530)의 물리적 페이지를 논리적 페이지로 변환한다. S120 단계에서는, FTL이 플래시 메모리(도 4 참조)(130)의 FAT 영역(131)에서 FAT 정보를 읽는다.
S130 단계에서는, FAT 정보를 참조하여 데이터 블록의 해당 페이지가 복사의 대상이 되는 유효한 페이지인지를 판단한다. 즉, FAT 영역의 해당 페이지가 파일을 저장하는데 할당되어 있는지를 판단한다. 만약, 파일이 저장되어 있지 않은 페이지이거나 삭제된 페이지이면, 새로운 데이터 블록으로 복사하지 않고 다음 단계(S150)를 진행한다.
S140 단계에서는, 데이터 블록의 해당 페이지가 파일이 저장되어 있는 유효 한 페이지이면, 새로운 데이터 블록으로 복사를 한다. S150 단계에서는, 데이터 블록의 나머지 페이지에 대해서 S130 단계 내지 S140 단계를 반복 수행한다. 데이터 블록의 페이지 복사가 모두 수행된 다음에는, 로그 블록의 페이지 복사를 수행하고 머지 동작을 종료한다.
이상에서 살펴 본 바와 같이, 본 발명에 따른 데이터 저장 장치 및 그것의 머지 방법은 데이터를 복사하는 과정에서 FAT 정보를 참조하여 파일 시스템 관점에서 유효하지 않은 데이터의 복사를 방지하여 머지 동작 시간을 줄인다. 머지 동작에서 가장 많은 시간을 소요하는 부분은 데이터 블록의 페이지 데이터를 복사하는 구간이다. 본 발명은 데이터 블록의 페이지에 대해 선택적으로 복사를 함으로써 복사 구간의 시간을 줄인다.
예를 들어, 로그 블록에 유효한 페이지가 x개이고, 데이터 블록에 데이터가 존재하는 페이지가 y개이며, 한 페이지를 복사하는데 소요되는 시간을 z라고 하면, 머지 동작에 소요되는 전체 시간은 (x+y)*z가 된다. 이때 파일 시스템의 관점에서 삭제된 페이지의 수가 i개라고 하면, 머지 수행 시간 중에서 i*z 시간은 불필요한 시간이라고 할 수 있다. 따라서 본 발명에 따른 데이터 저장 장치 및 머지 방법에 의해 줄어 든 머지 수행 시간은 (i*z-(FAT 영역을 읽는 시간))이 된다.
도 7은 본 발명에 따른 메모리 시스템을 보여주는 블록도이다. 도 4에 도시된 메모리 시스템(100)은 머지 동작 시에, 낸드 플래시 메모리(130) 내의 FAT 영역(131)에 저장된 FAT 정보를 참조하여, 머지 대상이 되는 블록을 결정한다. 도 4에 도시된 메모리 시스템(100)에 의하면, 불필요한 머지 시간을 줄일 수 있다. 그 러나 도 4에 도시된 메모리 시스템(100)은 머지 대상 블록을 결정할 때마다, 낸드 플래시 메모리(130)의 FAT 영역(131)을 읽어 보야 하는 단점이 있다.
도 7에 도시된 메모리 시스템(200)은 호스트로부터 인가되는 파일 처리 명령을 참조하여, 머지 대상 블록을 결정한다. 도 7을 참조하면, 메모리 시스템(200)은 호스트(210), 데이터 저장 장치(220), 그리고 소프트웨어 모듈(250)을 포함한다. 데이터 저장 장치(220)는 낸드 플래시 메모리(230) 및 컨트롤러(240)를 포함한다. 낸드 플래시 메모리(230) 및 컨트롤러(240)의 구성 및 동작 원리는 도 4에서 설명한 바와 같다.
호스트(210)는 데이터 저장 장치(220)로 파일 처리 명령을 제공한다. 여기에서, 파일 처리 명령에는 파일 삭제 명령이 포함된다. 소프트웨어 모듈(250)은 호스트(210)에서 발생하는 파일 삭제(File Delete) 명령을 참조하여, 무효화 되는 논리 블록 어드레스(Logical Block Address; LBA)를 파악한다. 소프트웨어 모듈(250)은 파악된 무효화 논리 블록 어드레스를 데이터 저장 장치(220) 내의 컨트롤러(240)로 제공한다.
도 8은 도 7에 도시된 메모리 시스템의 블록 머지 방법을 보여주는 개념도이다. 도 8을 참조하면, 소프트웨어 모듈(250)은 호스트(210)로부터 파일 삭제(File Delete) 명령을 입력받는다. 소프트웨어 모듈(250)은 파일 삭제 명령을 분석하여, 무효화 되는 논리 블록 어드레스(LBA)를 찾아낸다.
예를 들어 도 8을 참조하면, 무효화 논리 블록 어드레스(LBA)는 LBA100~LBA103이다. 컨트롤러(도 7 참조, 240)는 소프트웨어 모듈(250)로부터 무효 화 논리 블록 어드레스(LBA)를 입력받고, 블록 머지 동작 시에 해당 블록의 머지 동작을 차단한다.
본 발명에 따른 메모리 시스템은 머지 동작 시에 호스트로부터 제공되는 파일 처리 명령을 참조하여, 무효화 되는 메모리 블록을 검출하고, 무효화 메모리 블록에 대한 머지 동작을 수행하지 않는다. 따라서 본 발명에 따른 메모리 시스템에 의하면, 전체 머지 시간을 줄일 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
이상에서 살펴본 바와 같이, 본 발명에 따른 메모리 시스템 및 그것의 머지 방법에 의하면, 호스트로부터 인가되는 파일 처리 명령을 참조하여 머지 동작을 수행함으로, 전체 머지 시간을 줄일 수 있다.
Claims (10)
- 호스트;상기 호스트로부터 파일 처리 명령을 입력받고, 무효화 되는 블록 어드레스를 파악하는 소프트웨어 모듈; 및상기 소프트웨어 모듈로부터 무효화 블록 어드레스를 입력받고, 머지 동작 시에 무효화 블록에 대한 머지 동작을 차단하는 데이터 저장 장치를 포함하는 메모리 시스템.
- 제 1 항에 있어서,상기 파일 처리 명령은 파일 삭제 명령인 것을 특징으로 하는 메모리 시스템.
- 제 1 항에 있어서,상기 데이터 저장 장치는데이터를 저장하는 낸드 플래시 메모리; 및상기 무효화 블록 어드레스를 입력받고, 머지 동작을 수행하기 위한 컨트롤러를 포함하는 메모리 시스템.
- 제 3 항에 있어서,상기 낸드 플래시 메모리는 FAT 영역, 데이터 영역, 로그 영역, 그리고 메타 영역을 포함하는 메모리 시스템.
- 제 4 항에 있어서,상기 컨트롤러는 상기 데이터 영역에 저장된 파일이 삭제된 경우에, 상기 삭제된 파일을 저장한 메모리 블록이 새로운 메모리 블록으로 머지 되는 것을 차단하는 메모리 시스템.
- 제 3 항에 있어서,상기 컨트롤러는 머지 동작을 수행하기 위한 플래시 변환 레이어(FTL)를 구동하기 위한 워크 메모리를 포함하는 메모리 시스템.
- 제 3 항에 있어서,상기 낸드 플래시 메모리 및 상기 컨트롤러는 하나의 카드 형태를 집적되는 메모리 시스템.
- 플래시 메모리를 포함한 메모리 시스템의 머지 방법에 있어서:호스트로부터의 파일 처리 명령에 응답하여, 상기 플래시 메모리 내의 무효화 블록에 대한 어드레스를 파악하는 단계; 및상기 무효화 블록 어드레스를 입력받고, 머지 동작 시에 상기 무효화 블록에 대한 머지 동작을 차단하는 단계를 포함하는 머지 방법.
- 제 8 항에 있어서,상기 파일 처리 명령은 파일 삭제 명령인 것을 특징으로 하는 머지 방법.
- 제 8 항에 있어서,상기 플래시 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 머지 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060103046A KR100771519B1 (ko) | 2006-10-23 | 2006-10-23 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
US11/644,833 US20080098159A1 (en) | 2006-10-23 | 2006-12-26 | Memory system including flash memory and merge method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060103046A KR100771519B1 (ko) | 2006-10-23 | 2006-10-23 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100771519B1 true KR100771519B1 (ko) | 2007-10-30 |
Family
ID=38816329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060103046A KR100771519B1 (ko) | 2006-10-23 | 2006-10-23 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080098159A1 (ko) |
KR (1) | KR100771519B1 (ko) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US8074011B2 (en) | 2006-12-06 | 2011-12-06 | Fusion-Io, Inc. | Apparatus, system, and method for storage space recovery after reaching a read count limit |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US20080140724A1 (en) | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US8719501B2 (en) | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
US9207876B2 (en) * | 2007-04-19 | 2015-12-08 | Microsoft Technology Licensing, Llc | Remove-on-delete technologies for solid state drive optimization |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8195912B2 (en) | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
JP4164118B1 (ja) * | 2008-03-26 | 2008-10-08 | 眞澄 鈴木 | フラッシュメモリを用いた記憶装置 |
CN101320594B (zh) * | 2008-05-21 | 2012-02-29 | 深圳市硅格半导体有限公司 | 一种闪存芯片的物理操作方法 |
US7719876B2 (en) * | 2008-07-31 | 2010-05-18 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
US20100185806A1 (en) * | 2009-01-16 | 2010-07-22 | Arvind Pruthi | Caching systems and methods using a solid state disk |
CN102004698B (zh) * | 2010-11-23 | 2012-07-04 | 深圳市江波龙电子有限公司 | 一种闪存管理方法及系统 |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
CN102169462B (zh) * | 2011-04-27 | 2014-03-05 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
KR20140080660A (ko) * | 2012-12-13 | 2014-07-01 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 시스템의 동작 방법 |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US10007428B2 (en) | 2013-08-16 | 2018-06-26 | Micron Technology, Inc. | Data storage management |
TWI602061B (zh) * | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
KR102695719B1 (ko) | 2018-12-19 | 2024-08-16 | 삼성전자주식회사 | 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법 |
CN114995893B (zh) * | 2022-08-01 | 2022-11-01 | 摩尔线程智能科技(北京)有限责任公司 | 固件的管理方法、闪存、主机及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168763A (ja) * | 1992-11-13 | 1995-07-04 | Cyrix Corp | ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5890192A (en) * | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6985992B1 (en) * | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
US7181611B2 (en) * | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
US7234036B1 (en) * | 2002-10-28 | 2007-06-19 | Sandisk Corporation | Method and apparatus for resolving physical blocks associated with a common logical block |
KR100684887B1 (ko) * | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
-
2006
- 2006-10-23 KR KR1020060103046A patent/KR100771519B1/ko not_active IP Right Cessation
- 2006-12-26 US US11/644,833 patent/US20080098159A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
US 6711059, US 7027329, US 20030115518 |
Also Published As
Publication number | Publication date |
---|---|
US20080098159A1 (en) | 2008-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100771519B1 (ko) | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 | |
KR100684887B1 (ko) | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 | |
JP4988215B2 (ja) | 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム | |
JP4422652B2 (ja) | 漸進的マージ方法及びそれを利用したメモリシステム | |
US10055147B2 (en) | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage | |
JP5198245B2 (ja) | メモリシステム | |
JP5376983B2 (ja) | メモリシステム | |
US7802054B2 (en) | Apparatus and methods using invalidity indicators for buffered memory | |
JP5317689B2 (ja) | メモリシステム | |
US9053007B2 (en) | Memory system, controller, and method for controlling memory system | |
JP5221332B2 (ja) | メモリシステム | |
JP2013242908A (ja) | ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
KR20100021868A (ko) | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 | |
US20090172269A1 (en) | Nonvolatile memory device and associated data merge method | |
US20100318726A1 (en) | Memory system and memory system managing method | |
US8433847B2 (en) | Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
KR100845552B1 (ko) | Ftl의 어드레스 매핑 방법 | |
KR100932801B1 (ko) | 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체 | |
KR101191650B1 (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 | |
KR20090047880A (ko) | 비휘발성 메모리의 관리 방법 및 관리 시스템 | |
KR100982440B1 (ko) | 단일 플래시 메모리의 데이터 관리시스템 | |
JP2010152517A (ja) | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のアドレス管理方法 | |
KR20110096813A (ko) | 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |