KR100862237B1 - 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법 - Google Patents

낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법 Download PDF

Info

Publication number
KR100862237B1
KR100862237B1 KR1020070020805A KR20070020805A KR100862237B1 KR 100862237 B1 KR100862237 B1 KR 100862237B1 KR 1020070020805 A KR1020070020805 A KR 1020070020805A KR 20070020805 A KR20070020805 A KR 20070020805A KR 100862237 B1 KR100862237 B1 KR 100862237B1
Authority
KR
South Korea
Prior art keywords
directory
file
flash memory
list
nand flash
Prior art date
Application number
KR1020070020805A
Other languages
English (en)
Other versions
KR20080080736A (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 KR1020070020805A priority Critical patent/KR100862237B1/ko
Publication of KR20080080736A publication Critical patent/KR20080080736A/ko
Application granted granted Critical
Publication of KR100862237B1 publication Critical patent/KR100862237B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한 파일 검색 방법에 관한 것으로서, 낸드 플래시 파일 시스템의 부팅에 따른 스캔 영역이 플래시 메모리 전체가 아닌 디렉토리 리스트 영역으로 한정되므로, 시스템을 구동시키기 위한 시간이 감소하며, 파일 시스템의 스캔 영역이 한정됨에 따라 시스템의 런타임 시 메모리에서 관리되는 영역이 줄어들고, 이에 따라 메모리를 효율적을 이용할 수 있으며, 디렉토리 구조에 해시 리스트를 적용함으로써, 부가적인 플래시 메모리의 읽기 및 쓰기 연산의 반복을 반복을 감소시킬 수 있으며, 디렉토리 및 파일 검색을 변경된 디렉토리 구조를 이용하여 읽기 연산을 수행하는 페이지 수를 줄일 수 있어 시간을 단축할 수 있는 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한 파일 검색 방법을 제공하기 위한 것으로서, 그 기술적 구성은 낸드 플래시 메모리에서 검색할 디렉토리 파일의 ID로 구성된 디렉토리 리스트를 저장하는 디렉토리 리스트 블록; 상기 디렉토리 헤더 및 파일 헤더를 포함하는 메타 데이터 블록; 상기 디렉토리 파일의 실제 데이터가 저장되는 데이터 블록; 을 포함한다.
낸드 플래시 메모리, 메모리 구성, 블록, 해시 리스트

Description

낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한 파일 검색 방법{File System Based on NAND Flash Memory and Flie Search Method thereof}
도 1은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 개략적으로 도시한 블록도.
도 2는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리를 개략적으로 도시한 블록도.
도 3은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리의 구성 단위를 개략적으로 도시한 블록도.
도 4는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리에 블록이 배치된 형상을 개략적으로 도시한 블록도.
도 5는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리 중 메타 데이터 블록의 디렉토리 헤더를 개략적으로 도시한 블록도.
도 6은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리 중 디렉토리 리스트를 개략적으로 도시한 블록도.
도 7은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 디렉토리 검색 방법을 개략적으로 도시한 블록도.
도 8은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 파일 검색 방법을 개략적으로 도시한 블록도.
도 9는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 디렉토리 및 파일 검색 방법을 개략적으로 도시한 흐름도.
도 10은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 디렉토리 생성 방법을 개략적으로 도시한 흐름도.
도 11은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 파일 생성 방법을 개략적으로 도시한 흐름도.
<도면의 주요 부분에 대한 도면 부호의 간단한 설명>
1: 낸드 플래시 메모리 10: 디렉토리 리스트 블록
11: 디렉토리 리스트 11a: 디렉토리 ID
11b: 페이지 번호 11c: 부모 ID
30: 메타 데이터 블록 30a: 디렉토리 헤더
30b: 파일 헤더 31: 디렉토리 ID
33: 파일 정보 35: 파일 형태
37: 파일 이름 39: 하위 경로 파일
50: 데이터 블록 51: 데이터
본 발명은 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한 파일 검색 방법에 관한 것으로, 더욱 상세하게는 낸드 플래시 파일 시스템의 부팅에 따른 스캔 영역이 플래시 메모리 전체가 아닌 디렉토리 리스트 영역으로 한정되므로, 시스템을 구동시키기 위한 시간이 감소하며, 파일 시스템의 스캔 영역이 한정됨에 따라 시스템의 런타임 시 메모리에서 관리되는 영역이 줄어들고, 이에 따라 메모리를 효율적을 이용할 수 있으며, 디렉토리 구조에 해시 리스트를 적용함으로써, 부가적인 플래시 메모리의 읽기 및 쓰기 연산의 반복을 반복을 감소시킬 수 있으며, 디렉토리 및 파일 검색을 변경된 디렉토리 구조를 이용하여 읽기 연산을 수행하는 페이지 수를 줄일 수 있어 시간을 단축할 수 있는 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한 파일 검색 방법에 관한 것이다.
일반적으로, 플래시 메모리는 플로팅 게이트 트랜지스터인 EEPROM(Electrically Eraseable and Programmable Read Only Memory)로 이루어져, 전기적으로 쓰기/지우기가 가능한 비휘발성 소자이며, NOR 플래시 메모리와 NAND 플래시 메모리를 포함하여 이루어진다.
그리고, 상기 NAND 플래시 메모리는 셀이 직렬로 배치된 데이터 저장형 플래시 메모리로서, 읽기/쓰기 단위가 비교적 큰 페이지단위이며, 용량이 크기 때문에 NOR 플래시 메모리보다 대용량화가 용이하고, 이에 따라 데이터 저장장치에 주로 이용된다.
또한, 상기 NAND 플래시 메모리를 이용한 파일 시스템은 플래시 메모리를 하나의 로그(Log)로 정의하고, 이를 처음부터 끝까지 로깅하는 방식의 로그-구조(Log-Structure) 파일 시스템인데, 이러한 구조는 플래시 메모리의 새로운 영역에 데이터 쓰기를 하는 방식이므로, 쓰기 연산이 수행되기 전에 지우기 연산의 제약을 피할 수 있도록 이루어진다.
그러나, 상기 NAND 플래시 메모리를 이용한 파일 시스템은 시스템 부팅 시, 디렉토리와 파일을 포함하는 일체의 구조를 가지는 시스템 구조를 파악하기 위하여 플래시 메모리를 스캔하는데, 이는 부팅 시간을 지연시키며, 스캔으로 파악된 파일 시스템의 구조는 시스템의 런 타임 시 메모리에서 관리되므로 메모리의 소모율이 높았고, 기존 디렉토리 구조를 적용할 경우, 부가적인 낸드 플래시 메모리의 쓰기 연산이 증가하므로 전체 낸드 플래시 메모리의 성능을 저하시키는 등의 문제점이 있었다.
본 발명은 상기한 문제점을 해결하기 위하여 안출한 것으로, 낸드 플래시 파일 시스템의 부팅에 따른 스캔 영역이 플래시 메모리 전체가 아닌 디렉토리 리스트 영역으로 한정되므로, 시스템을 구동시키기 위한 시간이 감소하며, 파일 시스템의 스캔 영역이 한정됨에 따라 시스템의 런타임 시 메모리에서 관리되는 영역이 줄어들고, 이에 따라 메모리를 효율적을 이용할 수 있으며, 디렉토리 구조에 해시 리스 트를 적용함으로써, 부가적인 플래시 메모리의 읽기 및 쓰기 연산의 반복을 반복을 감소시킬 수 있으며, 디렉토리 및 파일 검색을 변경된 디렉토리 구조를 이용하여 읽기 연산을 수행하는 페이지 수를 줄일 수 있어 시간을 단축할 수 있는 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한 파일 검색 방법을 제공하는 것을 목적으로 한다.
상기한 바와 같은 목적을 달성하기 위하여 본 발명은 낸드 플래시 메모리에서 검색할 디렉토리 파일의 ID로 구성된 디렉토리 리스트를 저장하는 디렉토리 리스트 블록; 상기 디렉토리 헤더 및 파일 헤더를 포함하는 메타 데이터 블록; 상기 디렉토리 파일의 실제 데이터가 저장되는 데이터 블록; 을 포함한다.
그리고, 상기 디렉토리 리스트로부터 디렉토리 ID, 페이지 번호를 이용하여 테이블화된 리스트인 해시 리스트를 메인 메모리에 저장시키는 것을 특징으로 한다.
또한, 상기 디렉토리 리스트는 상기 낸드 플레시 메모리에서 검색할 디렉토리를 포함한 절대 경로에 해시 함수를 적용한 디렉토리 ID; 상기 검색할 디렉토리를 포인팅하는 페이지 번호; 상기 디렉토리 ID의 상위 경로 디렉토리를 포함한 절대 경로에 해시 함수를 적용한 부모 디렉토리 ID; 로 이루어지는 것을 특징으로 한다.
더불어, 상기 메타 데이터 블록은 상기 해시 리스트의 디렉토리 ID와 대응되 도록 형성되는 디렉토리 ID와, 상기 디렉토리 파일의 정보를 포함하는 파일 정보와, 상기 디렉토리 파일의 종류를 나타내는 파일 형태와, 상기 디렉토리 파일의 이름이 기재되는 파일 이름과, 상기 디렉토리 ID의 하위 경로 파일을 포함하는 디렉토리 헤더; 및 파일 데이터가 저장되는 페이지 번호 리스트를 포함하는 파일 헤더; 를 포함하여 이루어지는 것을 특징으로 한다.
여기서, 상기 디렉토리 ID의 하위 경로 파일 리스트는 파일 ID와 파일 정보가 저장되는 페이지 번호로 구성되는 것을 특징으로 한다.
또한, 상기 낸드 플래시 메모리에서 상기 디렉토리 리스트 블록, 메타 데이터 블록, 데이터 블록은 랜덤으로 지정되는 것을 특징으로 한다.
그리고, 상기 하나의 디렉토리 파일에 대한 디렉토리 헤더는 하나의 페이지에 저장되는 것을 특징으로 한다.
한편, 낸드 플래시 메모리에서 검색할 디렉토리를 포함한 절대 경로에 해시 함수를 적용하여 디렉토리 ID를 산출하는 단계; 상기 디렉토리 정보가 포함된 해시 리스트로부터 상기 디렉토리 ID에 대응되는 페이지 번호를 검색하는 단계; 상기 낸드 플래시 메모리에서 상기 페이지 번호에 대응되는 페이지를 검색하여 디렉토리를 찾는 단계; 를 포함한다.
그리고, 상기 해시 리스트는 상기 낸드 플래시 메모리가 상기 디렉토리 리스트 블록을 스캔하여 메인 메모리에 형성시키는 것을 특징으로 한다.
더불어, 상기 해시 리스트는 디렉토리 ID 및 상기 디렉토리의 정보를 포함하는 페이지 번호가 테이블화된 리스트인 것을 특징으로 한다.
여기서, 상기 디렉토리를 생성하는 방법은 생성할 디렉토리의 절대 경로를 해시 함수를 적용하여 디렉토리 ID를 산출하는 단계; 상기 디렉토리의 생성을 위하여 상기 디렉토리의 정보를 저장하는 메타 데이터 블록에 새페이지를 할당하여 저장하는 단계; 상기 해시 리스트 및 디렉토리 리스트에 상기 디렉토리 ID 및 할당 페이지 번호를 추가하는 단계; 로 이루어지는 것을 특징으로 한다.
한편, 낸드 플래시 메모리에서 검색할 부모 디렉토리의 절대 경로값을 해싱하여 디렉토리 ID를 산출하는 단계; 상기 디렉토리 정보가 포함된 해시 리스트로부터 상기 디렉토리 ID에 대응되는 페이지 번호를 검색하는 단계; 상기 디렉토리 정보를 저장하는 메타 데이터 블록에서 상기 페이지 번호에 대응되는 페이지를 검색하는 단계; 상기 생성할 디렉토리의 절대 경로값을 해싱하여 파일 ID를 생성하여, 상기 부모 디렉토리에 대한 디렉토리 헤더의 하위 경로 파일 중 해당 파일 ID에 대응되는 페이지 번호를 검색하는 단계; 상기 메타 데이터 블록에서 파일 헤더가 있는 해당 페이지에서 파일을 찾는 단계; 를 포함한다.
여기서, 상기 파일을 생성하는 방법은 생성할 파일의 절대경로값을 해싱하여 파일 ID를 생성하는 단계; 상기 메타 데이터 블록의 새 페이지를 할당하는 단계; 상기 할당된 페이지에 상기 파일 헤더를 저장하는 단계; 상기 파일의 부모 디렉토리의 디렉토리 헤더에 상기 생성된 파일 ID 및 페이지 번호를 업데이트 하는 단계; 상기 디렉토리 리스트 블록에 상기 부모 디렉토리 ID, 업데이트된 페이지 번호, 부모 ID를 포함한 디렉토리 리스트를 업데이트하는 단계; 를 포함한다.
이하, 본 발명에 따른 실시예를 첨부된 예시도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 낸드 플래시 메모리 기반 파일 시스템은 낸드 플래시 메모리(1)를 저장 장치로 이용하는 컴퓨터 시스템의 운영 체제(Operation System) 내의 파일 시스템에서 플래시 메모리 접근부와 파일 시스템 디렉토리 관리부를 포함한다.
도 2는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리를 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 낸드 플래시 메모리(1)는 디렉토리 리스트 블록(10)과 메타 데이터 블록(30)과 데이터 블록(50)을 포함하며 이루어진다.
여기서, 상기 디렉토리 리스트 블록(10)은 디렉토리 리스트(11)를 포함하고, 상기 디렉토리 리스트(11)를 포함하는데, 상기 디렉토리 리스트(11)는 디렉토리 ID(11a)와 디렉토리 정보를 담고 있는 페이지 번호(Page #, 11b)와 부모 ID(11c)를 포함하며 이루어지며, 상기 디렉토리 리스트(11)는 파일 시스템 마운트 시에 메인 메모리로부터 읽어들여 해시 리스트를 구성한다.
그리고, 상기 디렉토리 리스트(11)는 상기 낸드 플래시 메모리(1)에서 검색할 디렉토리에 해시 함수(Hash Function)을 적용하여 디렉토리 ID(11a)를 산출하 고, 상기 디렉토리 ID(11a)와 상기 디렉토리 헤더가 저장되어 있는 곳을 포인팅하는 페이지 번호(11b)와 상기 디렉토리의 상위 경로인 부모 디렉토리의 부모 ID(11c)를 포함하며 이루어진다.
여기서, 상기 파일 시스템 마운트 시에 상기 디렉토리 리스트(11)의 디렉토리 ID(11a) 및 해당 디렉토리 헤더의 페이지 번호(11b)를 추출하여 해시 리스트를 생성시키는데, 상기 낸드 플래시 메모리(1)를 하나의 로그(Log)로 형성하는 로그-구조 파일 시스템(Log-Structured System)의 구조와는 달리, 운영 체제의 파일 시스템 마운트 이후, 디렉토리 연산은 메인 메모리에 구성된 해시 리스트로 가능하며, 이와 동시에 디렉토리 변경에 대한 업데이트는 디렉토리 리스트 블록(10)의 디렉토리 리스트(11)로이루어진다.
상기한 바와 같이, 운영 체제의 구동 및 상기 낸드 플래시 메모리(1)의 읽기/쓰기(Read/Write)를 효율적으로 감소시킬 수 있으며, 스캔 시간 및 범위를 줄일 수 있도록 이루어진다.
또한, 상기 메타 데이터 블록(30)은 디렉토리 헤더(30a) 및 파일 헤더(30b)를 포함하는데, 상기 메타 데이터 블록(30)은 해시 리스트의 디렉토리 ID에 따른 페이지 번호가 포인팅하는 디렉토리 헤더(30a)가 저장되는 영역이다.
그리고, 상기 메타 데이터 블록(30)의 한 페이지는 상기 디렉토리 파일의 실질적인 정보를 저장하도록 디렉토리 ID(31)와 파일 정보(33)와 파일 형태(File Type, 33)와 파일 이름(37)을 포함하며 이루어진다.
여기서, 상기 디렉토리 ID(31)는 상기 디렉토리 리스트 블록(10)의 디렉토리를 해싱한 디렉토리 리스트(11)의 디렉토리 ID(11a)에서 추출된 해시 리스트의 디렉토리 ID(13a)와 리스트 형식으로 묶인 페이지 번호(13b)가 포인팅하는 메타 데이터 블록(31)의 페이지 번호를 식별하기 위하여 구비되며, 상기 파일 정보(33)는 파일의 기 정해진 정보를 제공하기 위하여 구비되고, 상기 파일 형태(35)는 상기 파일의 종류를 구분할 수 있도록 구비되며, 상기 파일 이름(37)은 파일의 명(名)을 저장하여 확인가능하도록 이루어진다.
또한, 상기 메타 데이터 블록(30)에는 하나의 페이지에 하나의 헤더가 존재하는데, 상기 각 헤더는 디렉토리 헤더(30a)와 파일 헤더(30b)로 상기에서 언급한 바와 같이 이루어지며, 상기 디렉토리 헤더(30a)의 경우에는, 상기 디렉토리에 포함되는 하위 경로 파일(39)이 존재하며, 이는 파일 ID와 파일 헤더가 저장된 페이지 번호로 이루어진다.
더불어, 상기 데이터 블록(50)에는 상기 파일 헤더(30b)가 포인팅하는 실제 데이터(51)를 저장하도록 이루어진다.
도 3은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리의 구성 단위를 개략적으로 도시한 블록도이고, 도 4는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리에 블록이 배치된 형상을 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 낸드 플래시 메모리(1)는 디렉토리 리스트 블록(10)과 메타 데이터 블록(30)과 데 이터 블록(50)을 포함하여 이루어진다.
여기서, 상기 각 블록들은 일정 파일이 쓰기 연산을 하려고 할 때, 상기 낸드 플래시 메모리(1)의 일정 부분이 랜덤하게 지정된 일정 단위를 의미한다.
또한, 상기 각 페이지는 일정 파일이 읽기/쓰기를 하려고 할 때, 파일 시스템과의 읽기/쓰기 연산을 위한 이동 단위를 의미하며, 상기 페이지들은 상기 블록 내에서 연속되도록 엔트리 형식으로 지정되는 것이 통상적이다.
상기한 바와 같이, 상기 디렉토리 리스트 블록(10)은 상기 메타 데이터 블록(30) 및 데이터 블록(50)과 연속되도록 일정 영역에 랜덤지정되고, 상기 디렉토리 리스트 블록(10)은 다수개의 페이지들의 엔트리로 형성된다.
그리고, 상기 메타 데이터 블록(30)은 상기 디렉토리 리스트 블록(10) 및 데이터 블록(50)과 연속되도록 일정 영역에 랜덤지정되고, 상기 메타 데이터 블록(30)은 다수개의 페이지들의 엔트리로 형성된다.
또한, 상기 데이터 블록(50)은 상기 메타 데이터 블록(30) 및 디렉토리 리스트 블록(10)과 연속되도록 일정 영역에 랜덤지정되고, 상기 데이터 블록(50)은 다수개의 페이지들의 엔트리로 형성된다.
도 5는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리 중 메타 데이터 블록의 디렉토리 헤더를 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 메타 데이터 블록(30)의 디렉토리 헤더(30a)는 디렉토리 ID(31)와 파일 정보(33)와 파일 형태(35)와 파일 이 름(37)과 디렉토리 ID의 하위 경로 파일(39)를 포함하며 이루어진다.
여기서, 상기 디렉토리 헤더(30a)의 크기는 낸드 플래시 메모리의 읽기/쓰기 연산 단위인 페이지 단위와 같다.
또한, 상기 디렉토리 ID(31)는 상기 디렉토리 리스트에 존재하는 디렉토리 ID와 대응되도록 형성되고, 상기 파일 정보(33)는 상기 디렉토리 파일의 정보를 포함하며, 상기 파일 형태(File Type, 35)는 상기 디렉토리 파일의 종류를 나타내고, 상기 파일 이름(File Name, 37)은 디렉토리 파일의 이름이 기재된다.
그리고, 상기 하위 경로 파일(39)는 상기 메타 데이터 블록(30)에서 하나의 파일에 대한 페이지 단위로 엔트리를 이루는 파일 헤더를 담은 상기 디렉토리의 하위 경로 파일을 의미하는데, 상기 하위 경로의 파일은 다수개일 수 있다.
또한, 상기 하위 경로 파일(39)은 파일 ID와 페이지 번호로 테이블화된 리스트를 형성하도록 이루어진다.
도 6은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템의 낸드 플래시 메모리 중 디렉토리 리스트를 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 디렉토리 리스트 블록(10)은 디렉토리 리스트(11)를 포함하는데, 이는 디렉토리 ID(11a)와 페이지 번호(11b)와 부모 ID(11c)를 포함하며 이루어지는데, 상기 디렉토리 ID(11a)는 낸드 플래시 메모리에서 검색할 디렉토리를 포함한 절대 경로에 해시 함수를 적용하여 해싱된 일정 형식의 데이터로 정의된다.
그리고, 상기 페이지 번호(11b)는 상기 검색할 디렉토리를 포인팅하도록 검색할 디렉토리의 해당 디렉토리 헤더(30a) 페이지 번호와 대응되도록 이루어지고, 상기 부모 ID(11c)는 상기 검색할 디렉토리의 상위 디렉토리를 해시 함수를 적용하여 해싱된 ID로 정의된다.
또한, 상기 해시 리스트는 상기 디렉토리 리스트(11)의 디렉토리 ID(11a) 및 페이지 번호(11b)이 하나의 쌍으로 이루어진 테이블화된 리스트이며, 파일 시스템 마운트 시에 상기 디렉토리 리스트(11)만을 참조하여 메인 메모리에 해시 리스트를 구성함으로써, 시간을 단축시킬 수 있도록 이루어진다.
도 7은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 디렉토리 검색 방법을 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 디렉토리 검색 방법은 일정 디렉토리에 해시 함수를 적용하여 산출하는 것으로 시작된다.
예를 들어, 상기 디렉토리 이름이 '/home/' 인 디렉토리를 찾아가고자 할 경우에는 파일 시스템에서 이 디렉토리의 전체 경로에 해시 함수를 적용하여, 디렉토리에 대응되는 해싱 값들을 이용하여 메인 메모리에 저장되어 있는 해시 리스트로부터 디렉토리 해싱값과 이에 해당하는 페이지 번호를 알아낸다.
또한, 디렉토리 /home/에 대한 해시 함수가 적용된 데이터를 0x20ca01 라고 하면, 상기 0x20ca01 로 상기 디렉토리 /home/ 에 대한 디렉토리 ID가 형성된 것이다.
그리고, 상기 디렉토리 ID로 디렉토리 리스트 블록(10)의 해시 리스트에서 상기 디렉토리 ID와 하나의 쌍으로 이루어지는 페이지 번호인 6 을 참조하여, 상기 메타 데이터 블록(30)으로 진행한다.
또한, 상기 메타 데이터 블록(30)의 페이지 번호 6 내부에는 상기 메타 데이터 블록(30)의 디렉토리 헤더(30a)의 구성 요소인 파일 ID(31)와 파일 정보(33)와 파일 형태(35)와 파일 이름(37)이 하나의 페이지 당 하나의 정보의 비율로 일대일 대응되어 저장되는데, 디렉토리 ID(31)에는 '0x20ca01' 가 저장되고, 파일 정보(33)에는 상기 디렉토리 파일의 '파일 정보'가 저장되며, 파일 형태(35)에는 상기 /home/의 파일 종류인 '디렉토리' 가 저장되고, 파일 이름(37)에는 상기 /home/의 파일 이름인 '/home/' 이저장된다.
여기서, 상기 /home/ 이 가리키는 하나의 메타 데이터 블록(30)의 디렉토리 /home/의 하위 경로 파일(39)이 존재하는데, 파일 ID 및 페이지 번호가 하나의 쌍을 이루는 테이블화된 리스트가 형성된다.
그래서, 상기 검색하고자 했던 디렉토리 파일 /home/ 에 대한 정보는 상기 메타 데이터 블록(30)의 페이지를 읽음으로써 디렉토리를 찾을 수 있다.
도 8은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 파일 검색 방법을 개략적으로 도시한 블록도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 파일 검색 방법은 일정 디렉토리에 해시 함수를 적용하여 산출하는 것으로 시작된다.
예를 들어, 상기 파일 이름이 '/home/a.txt' 인 파일을 찾아가고자 할 경우에는 /home/의 디렉토리의 하부 경로에 존재하는 a.txt 파일을 읽고자 할 경우에 부모 디렉토리, 즉 /home/의 디렉토리에 관한 해시 함수를 적용하여 디렉토리 ID를 생성하는데, 파일 시스템에서 이 디렉토리의 전체 경로에 해시 함수를 적용하여, 디렉토리에 대응되는 해싱 값들을 이용하여 낸드 플래시 메모리에 저장되어 있는 해시 리스트로부터 디렉토리 해싱값과 이에 해당하는 페이지 번호를 알아낸다.
그래서, 디렉토리 /home/에 대한 해시 함수가 적용된 데이터를 0x20ca01 라고 하면, 상기 0x20ca01 로 상기 디렉토리 /home/ 에 대한 디렉토리 ID가 형성된 것이다.
그리고, 상기 디렉토리 ID로 메인 메모리의 해시 리스트에서 상기 디렉토리 ID와 하나의 쌍으로 이루어지는 페이지 번호인 6 을 참조하여, 상기 메타 데이터 블록(30)으로 진행한다.
또한, 상기 메타 데이터 블록(30)의 페이지 번호 6 내부에는 상기 메타 데이터 블록(30)의 디렉토리 헤더(30a)의 구성 요소인 파일 ID(31)와 파일 정보(33)와 파일 형태(35)와 파일 이름(37)이 하나의 페이지 당 하나의 정보의 비율로 일대일 대응되어 저장되는데, 디렉토리 ID(31)에는 '0x20ca01' 가 저장되고, 파일 정보(33)에는 상기 디렉토리 파일의 '파일 정보'가 저장되며, 파일 형태(35)에는 상기 /home/의 파일 종류인 '디렉토리' 가 저장되고, 파일 이름(37)에는 상기 /home/의 파일 이름인 '/home/' 이저장된다.
여기서, 상기 /home/ 디렉토리의 하부 디렉토리(30a)에서 a.txt 를 찾아야 하는데, 파일 a.txt에 대한 해시 함수가 적용된 데이터를 0x2e01d3 라고 하면, 상기 0x2e01d3 로 상기 디렉토리 a. txt 에 대한 파일 ID가 형성된 것이다.
그래서, 상기 검색하고자 했던 파일 a.txt 에 대한 정보는 상기 페이지 6 의 디렉토리 /home/ 의 정보를 읽어들여, 상기 디렉토리에 포함된 디렉토리 엔트리로부터 파일 a.txt 의 정보가 저장된 페이지 번호를 알아내는데, 상기 해시값으로 저장된 파일 ID과 절대 경로(/home/a.txt)를 해싱한 값인 0x2e01d3 을 상기 하위 경로 파일(39) 디렉토리 엔트리에 저장된 값과 비교한다.
그리고, 상기 비교한 값을 디렉토리 엔트리에 저장된 값과 비교하여, 0x2e01d3 가 가리키는 페이지 번호(14)를 알아낼 수 있으며, 이에 따라 상기 페이지 번호 '14' 를 낸드 플래시 메모리의 페이지 14로 찾아가면, 파일 정보를 읽을 수 있다.
도 9는 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 디렉토리 및 파일 검색 방법을 개략적으로 도시한 흐름도이다. 도면에서 도시하고 있는 바와 같이, 본 발명에 의한 디렉토리 검색 및 파일 검색 방법은 찾고자 하는 것이디렉토리인지 또는 파일인지의 여부를 묻는 단계로 시작된다(S10).
그리고, 디렉토리 검색인 경우에는 디렉토리의 절대 경로 값을 해싱하여 디렉토리 ID를 생성하고(S21), 디렉토리 리스트 블록에서 해시 리스트로부터 디렉토리 ID에 대응하는 페이지 번호를 찾는다(S23).
또한, 낸드 플래시 메모리의 메타 데이터 블록에서 디렉토리 정보가 있는 해 당 페이지를 읽고(S25), 이로써 디렉토리 검색이 완료된다(S27).
한편, 파일 검색인 경우에는 찾고자 하는 파일의 부모 디렉토리의 절대 경로 값을 해싱하여 디렉토리 ID를 생성시키고(S31), 메인 메모리의 해시 리스트로부터 디렉토리 ID에 대응되는 페이지 번호를 찾아(S32), 낸드 플래시 메모리의 메타 데이터 블록에서 디렉토리 정보가 있는 해당 페이지를 읽는다(S33).
그리고, 파일 이름을 포함하여 절대 경로 값을 해싱하여 파일 ID를 생성시키고(S34), 메타 데이터 블록에서 상기 페이지의 하위 경로 파일 중 해당되는 파일의 ID에 대응되는 페이지 번호를 찾아(S35) 낸드 플래시 메모리의 메타 데이터 블록에서 파일 정보가 있는 해당 페이지를 읽으며(S36), 파일 검색이 종료된다(S37).
도 10은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 디렉토리 생성 방법을 개략적으로 도시한 흐름도.도면에서 도시하고 있는 바와 같이, 본 발명에 의한 디렉토리 생성은 디렉토리의 절대 경로 값을 해싱하여 디렉토리 ID를 생성함으로 시작된다(S20-1).
그리고, 낸드 플래시 메모리의 메타 데이터 블록에 새 페이지를 할당하며(S20-3), 할당된 새 페이지에 디렉토리의 헤더를 저장하고(S20-5), 디렉토리 리스트에 디렉토리 ID 및 할당 페이지 번호를 추가하며(S20-7), 디렉토리 리스트 블록에 상기 디렉토리 ID 및 할당 페이지 번호를 추가하며 종료된다(S20-9).
도 11은 본 발명에 따른 낸드 플래시 메모리 기반 파일 시스템을 이용한 파 일 생성 방법을 개략적으로 도시한 흐름도.도면에서 도시하고 있는 바와 같이, 본 발명에 의한 파일 생성은 파일의 절대 경로값을 해싱하여 파일 ID를 생성하는 것으로 시작된다(S30-1).
그리고, 낸드 플래시 메모리의 메타 데이터 블록에 새 페이지를 할당시키고(S30-2), 할당된 페이지에 파일 헤더를 저장하며(S30-3), 상기 파일의 부모 디렉토리를 찾아(S30-4) 상기 부모 디렉토리 헤더에 파일 ID 및 할당된 페이지 번호를 업데이트시키고(S30-5), 이에 따라 디렉토리 리스트 블록에도 상기 디렉토리 ID, 할당 페이지 번호, 부모 ID를 포함하는 디렉토리 리스트를 업데이트시키며 종료된다(S30-6).
이상에서는 본 발명의 바람직한 실시예를 예시적으로 설명하였으나, 본 발명의 범위는 이같은 특정 실시예에만 한정되지 않으며 해당 분야에서 통상의 지식을 가진자라면 본 발명의 특허 청구 범위내에 기재된 범주 내에서 적절하게 변경이 가능 할 것이다.
이상에서 설명한 바와 같이 상기와 같은 구성을 갖는 본 발명은 낸드 플래시 파일 시스템의 부팅에 따른 스캔 영역이 플래시 메모리 전체가 아닌 디렉토리 리스트 영역으로 한정되므로, 시스템을 구동시키기 위한 시간이 감소하며, 파일 시스템의 스캔 영역이 한정됨에 따라 시스템의 런타임 시 메모리에서 관리되는 영역이 줄 어들고, 이에 따라 메모리를 효율적을 이용할 수 있으며, 디렉토리 구조에 해시 리스트를 적용함으로써, 부가적인 플래시 메모리의 읽기 및 쓰기 연산의 반복을 반복을 감소시킬 수 있으며, 디렉토리 및 파일 검색을 변경된 디렉토리 구조를 이용하여 읽기 연산을 수행하는 페이지 수를 줄일 수 있어 시간을 단축할 수 있는 등의 효과를 거둘 수 있다.

Claims (13)

  1. 해싱기법을 통한 디렉토리 구조로 낸드 플래시 메모리의 일부분에 저장되는 디렉토리 리스트를 저장하는 디렉토리 리스트 블록;
    상기 디렉토리 헤더 및 파일 헤더를 포함하는 메타 데이터 블록;
    상기 디렉토리 파일의 실제 데이터가 저장되는 데이터 블록;
    을 포함하는 낸드 플래시 메모리 기반 파일 시스템.
  2. 제1항에 있어서,
    상기 디렉토리 리스트로부터 디렉토리 ID, 페이지 번호를 이용하여 테이블화된 리스트인 해시 리스트를 메인 메모리에 저장시키는 것을 특징으로 하는 낸드 플래시 기반 파일 시스템.
  3. 제1항에 있어서,
    상기 디렉토리 리스트는
    상기 낸드 플레시 메모리에서 검색할 디렉토리를 포함한 절대 경로에 해시 함수를 적용한 디렉토리 ID;
    상기 검색할 디렉토리를 포인팅하는 페이지 번호;
    상기 디렉토리 ID의 상위 경로 디렉토리를 포함한 절대 경로에 해시 함수를 적용한 부모 디렉토리 ID;
    로 이루어지는 것을 특징으로 하는 낸드 플래시 메모리 기반 파일 시스템.
  4. 제2항에 있어서,
    상기 메타 데이터 블록은
    상기 해시 리스트의 디렉토리 ID와 대응되도록 형성되는 디렉토리 ID와, 상기 디렉토리 파일의 정보를 포함하는 파일 정보와, 상기 디렉토리 파일의 종류를 나타내는 파일 형태와, 상기 디렉토리 파일의 이름이 기재되는 파일 이름과, 상기 디렉토리 ID의 하위 경로 파일을 포함하는 디렉토리 헤더; 및
    파일 데이터가 저장되는 페이지 번호 리스트를 포함하는 파일 헤더;
    를 포함하여 이루어지는 것을 특징으로 하는 낸드 플래시 메모리 기반 파일 시스템.
  5. 제4항에 있어서,
    상기 디렉토리 ID의 하위 경로 파일 리스트는
    파일 ID와 파일 정보가 저장되는 페이지 번호로 구성되는 것을 특징으로 하는 낸드 플래시 메모리 기반 파일 시스템.
  6. 제1항에 있어서,
    상기 낸드 플래시 메모리에서 상기 디렉토리 리스트 블록, 메타 데이터 블록, 데이터 블록은 랜덤으로 지정되는 것을 특징으로 하는 낸드 플래시 메모리 기반 파일 시스템.
  7. 제4항에 있어서,
    상기 하나의 디렉토리 파일에 대한 디렉토리 헤더는 하나의 페이지에 저장되는 것을 특징으로 하는 낸드 플래시 메모리 기반 파일 시스템.
  8. 낸드 플래시 메모리에서 검색할 디렉토리를 포함한 절대 경로에 해시 함수를 적용하여 디렉토리 ID를 산출하는 단계;
    상기 디렉토리 정보가 포함된 해시 리스트로부터 상기 디렉토리 ID에 대응되는 페이지 번호를 검색하는 단계;
    상기 낸드 플래시 메모리에서 상기 페이지 번호에 대응되는 페이지를 검색하여 디렉토리를 찾는 단계;
    를 포함하는 낸드 플래시 메모리 파일 시스템을 이용한 파일 검색 방법.
  9. 제8항에 있어서,
    상기 해시 리스트는 상기 낸드 플래시 메모리가 상기 디렉토리 리스트 블록을 스캔하여 메인 메모리에 형성시키는 것을 특징으로 하는 플래시 메모리 파일 시스템을 이용한 파일 검색 방법.
  10. 제8항에 있어서,
    상기 해시 리스트는 디렉토리 ID 및 상기 디렉토리의 정보를 포함하는 페이지 번호가 테이블화된 리스트인 것을 특징으로 하는 플래시 메모리 파일 시스템을 이용한 파일 검색 방법.
  11. 제8항에 있어서,
    상기 디렉토리를 생성하는 방법은
    생성할 디렉토리의 절대 경로를 해시 함수를 적용하여 디렉토리 ID를 산출하는 단계;
    상기 디렉토리의 생성을 위하여 상기 디렉토리의 정보를 저장하는 메타 데이터 블록에 새페이지를 할당하여 저장하는 단계;
    상기 해시 리스트 및 디렉토리 리스트에 상기 디렉토리 ID 및 할당 페이지 번호를 추가하는 단계;
    로 이루어지는 것을 특징으로 하는 플래시 메모리 파일 시스템을 이용한 파일 검색 방법.
  12. 낸드 플래시 메모리에서 검색할 부모 디렉토리의 절대 경로값을 해싱하여 디렉토리 ID를 산출하는 단계;
    상기 디렉토리 정보가 포함된 해시 리스트로부터 상기 디렉토리 ID에 대응되는 페이지 번호를 검색하는 단계;
    상기 디렉토리 정보를 저장하는 메타 데이터 블록에서 상기 페이지 번호에 대응되는 페이지를 검색하는 단계;
    상기 생성할 디렉토리의 절대 경로값을 해싱하여 파일 ID를 생성하여, 상기 부모 디렉토리에 대한 디렉토리 헤더의 하위 경로 파일 중 해당 파일 ID에 대응되는 페이지 번호를 검색하는 단계;
    상기 메타 데이터 블록에서 파일 헤더가 있는 해당 페이지에서 파일을 찾는 단계;
    를 포함하는 플래시 메모리 파일 시스템을 이용한 파일 검색 방법.
  13. 제12항에 있어서,
    상기 파일을 생성하는 방법은
    생성할 파일의 절대경로값을 해싱하여 파일 ID를 생성하는 단계;
    상기 메타 데이터 블록의 새 페이지를 할당하는 단계;
    상기 할당된 페이지에 상기 파일 헤더를 저장하는 단계;
    상기 파일의 부모 디렉토리의 디렉토리 헤더에 상기 생성된 파일 ID 및 페이지 번호를 업데이트 하는 단계;
    상기 디렉토리 리스트 블록에 상기 부모 디렉토리 ID, 업데이트된 페이지 번호, 부모 ID를 포함한 디렉토리 리스트를 업데이트하는 단계;
    를 포함하는 것을 특징으로 하는 플래시 메모리 파일 시스템을 이용한 파일 검색 방법.
KR1020070020805A 2007-03-02 2007-03-02 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법 KR100862237B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070020805A KR100862237B1 (ko) 2007-03-02 2007-03-02 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070020805A KR100862237B1 (ko) 2007-03-02 2007-03-02 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법

Publications (2)

Publication Number Publication Date
KR20080080736A KR20080080736A (ko) 2008-09-05
KR100862237B1 true KR100862237B1 (ko) 2008-10-09

Family

ID=40020850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070020805A KR100862237B1 (ko) 2007-03-02 2007-03-02 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법

Country Status (1)

Country Link
KR (1) KR100862237B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101058059B1 (ko) 2008-12-08 2011-08-19 한국전자통신연구원 임베디드 파일 시스템의 마운팅 장치 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002251310A (ja) 2001-02-21 2002-09-06 Ricoh Co Ltd フラッシュメモリのファイルシステム作成方式
KR20020078395A (ko) * 2001-04-09 2002-10-18 주식회사 팬택앤큐리텔 이동통신단말기에서 부팅 시간 단축방법
KR20040005409A (ko) * 2002-07-10 2004-01-16 삼성전자주식회사 플래시 메모리를 구비한 디지털 기기의 부팅 시간 단축 방법
KR20040046500A (ko) * 2002-11-27 2004-06-05 엘지전자 주식회사 이동 통신 단말기의 부팅 시간 단축 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002251310A (ja) 2001-02-21 2002-09-06 Ricoh Co Ltd フラッシュメモリのファイルシステム作成方式
KR20020078395A (ko) * 2001-04-09 2002-10-18 주식회사 팬택앤큐리텔 이동통신단말기에서 부팅 시간 단축방법
KR20040005409A (ko) * 2002-07-10 2004-01-16 삼성전자주식회사 플래시 메모리를 구비한 디지털 기기의 부팅 시간 단축 방법
KR20040046500A (ko) * 2002-11-27 2004-06-05 엘지전자 주식회사 이동 통신 단말기의 부팅 시간 단축 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101058059B1 (ko) 2008-12-08 2011-08-19 한국전자통신연구원 임베디드 파일 시스템의 마운팅 장치 및 그 방법

Also Published As

Publication number Publication date
KR20080080736A (ko) 2008-09-05

Similar Documents

Publication Publication Date Title
US7594062B2 (en) Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area
US8316209B2 (en) Robust index storage for non-volatile memory
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
JP2006221636A (ja) Run単位アドレスマッピングテーブル及びそれの構成方法
US20080263114A1 (en) Efficient access of flash databases
US20050216687A1 (en) Data managing method and data access system for storing all management data in management bank of non-volatile memory
CN1632765A (zh) 一种闪存文件***管理方法
JP2006235960A (ja) ガーベッジコレクション高速化方法
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
KR20210068699A (ko) 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
KR101008032B1 (ko) 메타 데이터 관리 시스템 및 방법
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
Ross Modeling the performance of algorithms on flash memory devices
KR100862237B1 (ko) 낸드 플래시 메모리 기반 파일 시스템 및 이를 이용한파일 검색 방법
KR100533683B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
JP5452735B2 (ja) メモリコントローラ及びメモリアクセス方法
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
CN114610228A (zh) 文件管理***及其文件管理方法、装置
KR100801072B1 (ko) 플래시 메모리, 이를 위한 맵핑 장치 및 방법
Han Fast erase algorithm using flash translation layer in NAND-type flash memory
KR101618999B1 (ko) 네트워크 부트 시스템
KR102497213B1 (ko) 안전 삭제를 수행하는 컨트롤러, 이를 포함하는 키-밸류 스토리지 장치 및 키-밸류 스토리지 장치의 동작방법
Lim et al. Hashing directory scheme for NAND flash file system
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법

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
FPAY Annual fee payment

Payment date: 20120928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee