KR20070096429A - 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템 - Google Patents

빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템 Download PDF

Info

Publication number
KR20070096429A
KR20070096429A KR1020060026835A KR20060026835A KR20070096429A KR 20070096429 A KR20070096429 A KR 20070096429A KR 1020060026835 A KR1020060026835 A KR 1020060026835A KR 20060026835 A KR20060026835 A KR 20060026835A KR 20070096429 A KR20070096429 A KR 20070096429A
Authority
KR
South Korea
Prior art keywords
area
block
file system
flash memory
information
Prior art date
Application number
KR1020060026835A
Other languages
English (en)
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 KR1020060026835A priority Critical patent/KR20070096429A/ko
Publication of KR20070096429A publication Critical patent/KR20070096429A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 낸드(NAND) 플래시 메모리를 운용하는 파일시스템에 관한 것으로, 파일이나 디렉터리와 같은 데이터가 저장되는 일반데이터 영역과, 상기 일반데이터에 관한 메타데이터가 저장되는 메타 영역과, 상기 일반데이터의 생성이나 변경과 같은 오퍼레이션에 대한 저널링 정보를 포함하는 로그 영역과, 플래시 메모리의 전체 블럭에 있어 각 블럭에 대한 상태정보를 포함하는 블럭정보 영역과, 상기 로그 영역, 메타 영역, 블럭정보 영역 각각의 주소를 관리하며, 해당 파일 시스템의 마운트 동작시 정상 여부를 표시하는 언마운트 플래그를 포함하는 위치정보 영역으로 구성되는 것을 특징으로 하는 파일시스템에 관한 것이다.
본 발명에 따른 파일시스템은, 종래의 데이터파일 영역과 상기 데이터파일의 메타데이터를 포함하는 헤더파일 영역으로 구성되고 주메모리에 마운트하기 위해 상기 해당 플래시 메모리 전체를 모두 스캔하여야 하기 때문에 마운트가 완성되는 시간이 비교적 오래 걸리는 종래의 파일시스템에 비하여, 본 발명에 따른 파일시스템은 마운트시 상기 위치정보 영역만을 읽도록 하여 종래의 파일시스템에 비해 마운트 시간의 단축을 가져오는 특징이 있다.
파일시스템, NAND Flash File System, 저널링, 마운팅, 쓰기 평준화

Description

빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는 파일시스템{FAST MOUNTING FOR A FILE SYSTEM ON NAND FLASH MEMORY}
도 1은 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 구조를 보여주는 도시도.
도 2는 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 위치정보 영역의 구조를 보여주는 도시도.
도 3은 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 메타데이터 영역의 구조를 보여주는 도시도.
도 4는 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 블럭정보 영역의 구조를 보여주는 도시도.
도 5는 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 로그 영역의 구조를 보여주는 도시도.
도 6은 본 발명에 따른 파일시스템의 마운트 과정을 보여주는 흐름도.
도 7은 본 발명에 따른 파일시스템에 있어 쓰기 연산에 대한 동작을 보여주는 흐름도.
도 8은 본 발명에 따른 파일시스템의 각 영역에 대한 블럭 할당에 대한 동작을 보여주는 흐름도.
도 9는 본 발명에 따른 파일시스템의 있어 복 수행에 대한 동작을 보여주는 흐름도.
* 도면에 사용된 주요부호에 대한 설명 *
101 : 고정슈퍼블럭 102 : 위치정보 영역
103 : 로그 영역 104 : 메타 영역
105 : 블럭정보 영역 106 : 일반데이터 영역
본 발명에 따른 파일시스템은 빠른 마운팅을 지원하기 위해 파일 시스템의 구축에 필요한 정보를 메타영역, 블럭 정보영역, 로그 영역으로 나누어서 관리하며, 상기 각 영역의 위치정보를 기억하는 위치정보 영역만을 읽도록 하여 종래의 파일시스템에 비해 마운트 시간의 단축을 가져오는 특징이 있다.
최근 휴대폰, MP3, 디지털 카메라, PMP(Portable Multimedia Player)와 같은 휴대용 단말기를 위한 저장 공간으로 플래시 메모리가 각광받고 있다. 플래시 메모리는 비휘발성, 저전력 소비, 빠른 접근속도 등의 특징이 있으며 메모리 셀을 구성하는 게이트의 종류에 따라 NAND형과 NOR형 플래시 메모리로 구분된다. 그 중에서 낸드(NAND) 플래시 메모리는 집적도가 높아 대용량 데이터를 저장하기 위한 대부분의 기기에 사용되고 있는 실정이다. 그러나 플래시 메모리는 기존의 하드디스크 등과 같은 저장매체에 비하여 다음과 같은 단점이 있다. 첫째, 플래시 메모리는 데이터 수정 시 본래 주소에 덮어쓰기가 불가능하다. 플래시 메모리의 각 비트가 단방향으로만 토글링(toggling)되기 때문에 쓰기 연산 시 초기화 연산을 선행해야 한다. 즉, 쓰기 연산 전에 해당 메모리 공간이 초기화되어 있어야 한다. 둘째, 플래시 메모리의 각 블럭은 초기화 연산의 횟수가 제한되어 있기 때문에 플래시 메모리의 전체 공간이 균등하게 사용되지 못하는 경우에 사용가능한 메모리 공간이 급격히 줄어들게 된다. 이러한 플래시 메모리의 단점을 극복하고 효과적으로 사용하기 위해 다양한 지움 정책(cleaning policy)과 균등 사용(wear-leveling) 기법이 필요하다. 또한, 낸드 플래시 메모리는 바이트 단위가 아닌 페이지 단위의 접근만 허용되는 단점이 존재한다.
상기의 플래시 메모리의 특성으로 인하여 하드디스크 등에 사용되는 기존 파일시스템을 플래시 메모리에 바로 적용할 수 없으므로 플래시 메모리용 파일 시스템에 대한 연구가 활발히 진행되어 오고 있으며, 그 대표적인 예로 FTL(Flash Translation Layer), TrueFFS, JFFS(Journaling Flash File System), YAFFS(Yet Another Flash File System) 등이 제안되고 있다. 상기 FTL은 순차적인 플래시 공간이 디스크의 섹터처럼 보이도록 하기 위해 매핑(mapping) 관리를 수행하는 드라이버 형식으로 구현되어 있는 것이 특징이며, 상기 TrueFFS는 VxWorks RTOS에 맞게 구현한 시스템으로 플래시 메모리에 대한 블럭 디바이스 인터페이스를 제공하기 위 해 Block-to-Flash 전환 시스템을 사용한다. 상기 JFFS2는 플래시 메모리의 공간을 순차적으로 저장하는 LFS(Log-structured File System)처럼 플래시 메모리에 대한 갱신 연산을 추가 연산으로 변형하여 처리하며, 이를 통해서 플래시 메모리의 덮어쓰기가 허용되지 않는 문제를 해결하였다. 하지만 플래시 메모리의 이용률이 커지면서 쓰기 속도가 저하되고, 마운트 시간이 오래 걸리며, 메인 메모리를 많이 사용하는 단점이 있었다. 이와 같은 JFFS2의 단점을 해소하기 위해 개발된 것이 상기 YAFFS이다.
상기 YAFFS는 NAND 플래시 메모리 전용 파일 시스템으로서, 마운트 속도와 NAND 유형 플래시 메모리의 입출력 속도에서 JFFS2보다 성능 면에서 우수하다. 그러나 YAFFS 역시 LFS 방식을 사용하므로 마운트 시에 플래시 메모리 전체를 스캔하여야 하며 이로 인해 플래시 메모리가 클수록 마운팅 시간이 길어지는 단점이 있다. 또한 파일에 대한 수정이 발생하면 파일 전체를 다시 플래시 메모리에 쓰게 되므로 메모리의 낭비가 발생하게 되고 쓰기 연산중에 시스템 폴트가 발생하면 파일 일관성 유지를 위한 복구 작업을 수행하지 않는다는 단점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 플래시 메모리의 크기에 관계없이 일정한 마운팅 시간을 제공하며 상기 마운트 과정에서 소요되는 시간이 짧은 파일 시스템을 제공함에 그 목적으로 한다.
상기와 같은 목적을 달성하기 위하여 본 발명에 따른 낸드 플래시 메모리에 적용되는 파일시스템은 복수의 페이지를 포함하는 블럭을 영역의 구분단위로 하며 상기 페이지 단위로 트랜잭션이 발생하는 낸드(NAND) 플래시 메모리를 운용하는 파일시스템에 있어서, 플래시 메모리의 크기, 형태, 해당 파일시스템의 명칭과 버전정보 등의 고정 정보가 저장되는 슈퍼블럭 영역과, 파일이나 디렉터리와 같은 데이터가 저장되는 일반데이터 영역과, 상기 일반데이터에 관한 메타데이터가 저장되는 메타 영역과, 상기 일반데이터의 생성이나 변경과 같은 오퍼레이션에 대한 저널링 정보를 포함하는 로그 영역과, 플래시 메모리의 전체 블럭에 있어 각 블럭에 대한 상태정보를 포함하는 블럭정보 영역과, 상기 로그 영역, 메타 영역, 블럭정보 영역 각각의 주소를 관리하며, 해당 파일 시스템의 마운트 동작시 정상 여부를 표시하는 언마운트 플래그를 포함하는 위치정보 영역으로 구성되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 위치정보 영역의 크기는 초기 8개의 블럭을 할당받은 이후 세그먼트(segment) 단위로 동적으로 증감되며; 메타데이터 영역, 블럭정보 영역, 로그 영역 각각의 크기는 세그먼트 단위로 할당되며; 데이터 영역의 크기는 블럭 단위로 할당되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 세그먼트 단위는 4개의 블럭이 하나의 세그먼트로 이루어지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 위치정보 영역은 플래시 메모리상의 0번째 페이지를 시작 위치로 가지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한 다.
또한, 상기 일반데이터 영역은 플래시 메모리상의 슈퍼블럭 영역, 위치정보 영역, 로그 영역, 메타 영역, 블럭정보 영역을 제외한 나머지 빈 블럭에 할당되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 위치정보 영역은 파일 시스템의 마운트 과정에서 정상종료의 경우 0의 값이 저장되며 비정상종료의 경우 1의 값이 저장되는 언마운트 플래그와, 로그 영역의 주소를 저장하고 있는 로그 포인터와, 블럭정보 영역의 주소를 저장하고 있는 블럭정보 포인터와, 메타 영역의 주소를 저장하고 있는 메타 포인터로 이루어지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 메타 영역에 저장되는 각 메타데이터는 대응되는 하나의 일반데이터에 다수의 메타데이터가 대응되며, 상기 다수의 메타데이터 각각에는 대응되는 일반데이터의 구분을 위한 객체번호와, 상기 대응되는 일반데이터가 파일, 디렉터리, 심볼릭 링크, 하드 링크 등과 같은 객체의 유형을 나타내는 객체유형과, 상기 대응되는 일반데이터의 이름, 생성시간, 최근 접근 시간을 나타내는 기본정보와, 해당 메타데이터가 일반데이터의 어느 부분과 대응되는지를 나타내고 상기 다수의 메타데이터에 있어 개별적인 구분을 위한 시퀀스 번호와, 해당 메타데이터가 수정된 누적 횟수를 나타내는 수정번호와, 대응되는 일반데이터가 저장된 주소를 페이지 번호의 나열로 나타내는 다수의 데이터 페이지로 그 구조를 가지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 블럭정보 영역은 포함되는 다수의 페이지에 있어 각 페이지를 다수의 셀로 구분하고 상기 구분된 다수의 셀 각각은 낸드 플래시 메모리의 전체 블럭과 일대일 대응되며, 상기 각 셀은 해당 블럭이 포함하는 무효화된 페이지의 수를 나타내는 무효 페이지수와; 해당 블럭이 가지는 빈 페이지 수와, 해당 블럭이 사용중인지, 오류 블럭인지, 빈 블럭인를 나타내는 블럭상태와, 해당 블럭의 지움횟수의 기록을 나타내는 지움 횟수와, 해당 블럭이 로그 영역, 메타 영역, 블럭정보 영역, 일반데이터 영역 중 어느 영역에 속하는지를 나타내는 블럭유형으로 구성되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템을 제공한다.
또한, 상기 로그 영역에 저장되는 각 로그데이터는 새로운 트랜잭션 중 해당 객체의 정보가 변경되는 업데이트 트랜잭션에 대응되며, 해당 업데이트 트랜잭션이 비정상 종료되었을 경우에 한 스텝전의 트랜잭션으로 복구하기 위하여 한 스텝전의 트랜잭션에 의해 기록된 메타 영역의 메타데이터 위치정보를 가지는 이전 메타데이터의 페이지 번호와, 현재 업데이트되고 있는 트랜잭션에 의해 기록되는 메타 영역의 메타데이터 위치정보를 가지는 메타데이터의 페이지 번호와, 발생된 트랜잭션이 정상적으로 종료되었는지에 대한 정보를 가지는 트랜잭션 커밋과, 현재 트랜잭션에게 부여되고 이전 트랜잭션들과 구분을 하기 위한 현재 트랜잭션의 식별 아이디를 가지는 트랜잭션 아이디와, 현재 해당되는 트랙잭션이 어떤 종류의 객체(파일, 디렉터리, 심볼릭 링크, 하드 링크 등)에 대한 것인지를 구분하기 위한 객체 번호와, 현재 트랙잭션이 객체에 대한 이름 변경 연산인지를 구분하는 정보를 가지는 이름 변경 연산 여부로 그 구조를 가지는 것을 특징으로 하는 낸드 플래시 메모리에 적 용되는 파일시스템을 제공한다.
본 발명에 따른 파일시스템은 낸드 플래시 메모리에 적용되는 파일시스템으로서, 빠른 마운팅을 지원하기 위하여 파일 시스템의 구축에 필요한 일반데이터에 관한 정보를 메타 영역, 블럭정보 영역, 로그 영역으로 나누어서 관리하며, 상기 메타 영역, 블럭정보 영역, 로그 영역 각각의 주소(블럭의 위치 정보)를 위치정보 영역이 다시 관리하도록 하여, 주메모리에 마운트시 상기 위치정보 영역만을 읽어 빠른 마운팅을 지원하는 특징이 있다.
먼저, 본 발명에 따른 파일시스템에서 사용되는 블럭의 종류는 슈퍼블럭 영역, 위치정보 영역, 로그 영역, 메타 영역, 블럭정보 영역, 일반데이터 영역으로 총 6가지로 구분된다. 먼저, 슈퍼블럭 영역은 플래시 메모리의 크기, 형태, 해당 파일시스템의 명칭과 버전정보 등의 고정 정보가 저장되는 영역으로서 종래의 일반적인 파일시스템에서 널리 사용되는 영역이다. 다음으로는 파일이나 디렉터리와 같은 데이터가 저장되는 일반데이터 영역이 있다. 상기 일반데이터 영역을 제외한 나머지 부분은 실제 데이터가 아닌 상기 일반데이터 영역에 대한 메타정보와 위치정보 그리고 플래시 메모리의 트랜젝션을 기록하는 로그(저널링)정보가 기록되는 영역으로 구분된다. 상기 메타 영역은 상기 일반데이터에 관한 메타데이터가 저장되며, 상기 로그 영역은 상기 일반데이터의 생성이나 변경과 같은 오퍼레이션에 대한 저널링 정보를 포함하며, 상기 블럭정보 영역은 플래시 메모리의 전체 블럭에 있어 각 블럭에 대한 상태정보를 포함하도록 구성되는 것이 바람직하다. 한편, 위치정보 영역은 상기 로그 영역, 메타 영역, 블럭정보 영역 각각의 주소를 관리하며, 해당 파일 시스템의 마운트 동작시 정상 여부를 표시하는 언마운트 플래그를 포함하도록 구성하는 것이 바람직하다.
특히, 상기 각 영역에 대한 크기 할당에 있어서, 상기 위치정보 영역은 초기 8개의 블럭을 할당받은 이후 세그먼트(segment) 단위로 동적으로 증감되도록 구성하는 바람직하다. 상기 세그먼트 단위는 플래시 메모리의 특성에 따라, 4개 등과 같이, 다수의 블럭으로 구성된다. 또한, 상기 메타데이터 영역, 블럭정보 영역, 로그 영역 각각의 크기는 세그먼트 단위로 할당되도록 하며, 상기 데이터 영역의 크기는 블럭 단위로 하나의 블럭이 증감의 단위로 구성하는 것이 바람직하다.
한편, 상기 위치정보 영역의 크기 할당에 있어 동적으로 할당하는 것은, 초기 8개의 블럭을 할당받은 다음 플래시 메모리의 계속적인 사용에 의한 위치정보 영역의 블럭이 필요시엔 세크먼트 단위로 증가가되며, 단위 세그먼트가 4블럭의 경우에는 12블럭, 16블럭, 20블럭, ... , 로 증가가되며, 크기의 감소시에도 하나의 세그먼트 단위(4블럭)으로 단계적으로 감소시키도록 하여 동적으로 그 크기를 할당하도록 한다.
상기 위치정보 영역의 크기를 동적으로 할당하는 이유에 앞서 플래시 메모리의 특성을 간단히 살펴보면, 먼저 낸드 플래시 메모리는 그 특성상 기존에 사용되는 디스크 매체와 달리 기존 데이터가 존재하는 영역에 덮어쓰기(in-place update)가 불가능하다. 따라서, 기존에 데이터가 있던 영역에 다시 쓰기 위해서는 삭제 연산을 선행하여야 하는데, 이러한 삭제 연산에 따른 지움 횟수는 10만번 ~ 100만번 정도로 제한되어 있다. 따라서 특정 위치에 대한 집중적인 사용은 플래시 메모리의 수명을 단축하는 결과를 가져올 수 있기 때문에 플래시 메모리가 전체적으로 지움 횟수가 균등하게 분포될 수 있도록 블럭을 할당하는 방법으로 가비지 컬렉션(garbage collection), 쓰기 평준화(wear leveling) 등과 같은 작업이 요구되고 있다.
상기 위치정보 영역에는 다른 3가지의 영역(로그 영역, 메타 영역, 블럭정보 영역)의 위치정보를 포함하는 특성으로 인해 상기 3가지의 영역(로그 영역, 메타 영역, 블럭정보 영역)과 이에 대응되는 일반데이터 영역의 쓰기가 발생하면 위치정보 영역 또한 그 정보가 갱신되거나 신규 생성되어야 한다. 하지만, 상기 3가지의 영역(로그 영역, 메타 영역, 블럭정보 영역)에 대한 쓰기 연산이나 지움 등의 오퍼레이션은 블럭단위로 발생하고 이에 대응하여 갱신되거나 생성되는 단위는 해당 위치정보 영역 블럭내의 페이지를 단위로 발생한다. 이는 플래시 메모리의 전체적인 지움횟수가 상기 위치정보 영역에 집중되는 결과로 이어진다.
만약, 상기 위치정보 영역의 크기를 초기에 여유있게 할당하면 할당받은 블럭내에서 쓰고 지우는 횟수가 다른 영역에 비해 상대적으로 많아지고 이는 플래시 메모리에 있어 지움횟수가 집중되는 문제점이 발생한다. 따라서, 본 발명에 따른 파일시스템은 초기에 8블럭을 할당 후, 이후 새로운 블럭을 할당받아 이용하도록 하는 것이 바람직하며 할당받은 블럭의 수의 감소 또한 이루어질 수 있도록 하는 것이 바람직하다. 이는 새로이 추가 할당되는 위치정보 영역의 블럭은 플래시 메모리의 전체에 있어 빈 블럭이면 어느 위치에서든 가능하기 때문에 전체적으로 분산되어 할당되고 이에 따라 다른 영역에 비해 지움횟수가 많은 위치정보 영역이 분산 배치되어 플래시 메모리 전체적으로 지움횟수가 집중되지 않는 효과를 가진다.
한편, 상기 위치정보 영역은 플래시 메모리상의 0번째 페이지를 시작 위치로 가지도록 하여, 플래시 메모리가 마운팅 시 주메모리에 우선적으로 접근하도록 하도록 구성하는 것이 바람직하다.
상기 로그 영역, 메타 영역, 블럭정보 영역 그리고 일반데이터 영역의 블럭 할당 또한 상기 각 영역외에 존재하는 빈 블럭이면 어떠한 위치에도 할당이 가능하도록 구성하는 것이 바람직하다.
한편, 플래시 메모리의 특성에 의해 블럭에는 다수의 페이지로 구분되어 상기 페이지가 트랜젝션의 단위로 사용된다. 상기 트랜젝션(transaction)이란 데이터 파일의 내용에 영향을 미치는 모든 동작(오퍼레이션)의 단위이다. 또한, 플래시 메모리의 종류에 따라 하나의 블럭 크기가 128KB인 경우에는 블럭당 64개의 2KB 크기의 페이지가 구성되며, 하나의 블럭 크기가 16KB인 경우에는 블럭당 32개의 512B 크기의 페이지가 구성되어 사용되어 지며, 본 발명에 따른 파일시스템의 경우 상기 두가지 크기의 블럭을 가지는 플래시 메모리 모두를 지원한다.
본 발명에 따른 바람직한 각 실시 예를 첨부된 도면을 참조하여 상세히 살펴보면 다음과 같은데, 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 한다.
도 1은 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 구조를 보여주는 도시도로서, 고정적 수퍼블럭 영역(101)과, 위치정보 영역(102), 로그 영역 (103), 메타데이터 영역(104), 블럭정보 영역(105), 일반 데이터 영역(106)으로 구성된다. 상기 고정적 수퍼블럭 영역(101)은 파일시스템의 이름, 버전, 블럭 당 페이지 수 등의 고정적인 정보를 포함한다. 위치정보 영역(102)은 파일 시스템의 0번째 페이지부터 저장된다. 상기 수퍼블럭 영역(101)과, 위치정보 영역(102)을 제외한 나머지 플래시 메모리에 로그 영역(103), 메타데이터 영역(104), 블럭정보 영역(105), 일반 데이터 영역(106)가 할당되도록 함이 바람직하다.
특히, 일반 데이터 영역(106) 각각의 블럭 할당에 관하여는 공지된 쓰기 평준화(Wear leveling) 정책에 의해 동적으로 할당이 이루지도록 함이 바람직하다.
따라서, 일반 데이터 영역(106)은 실제 파일 시스템의 데이터가 저장되는 공간으로서, 파일 시스템에서 수퍼블럭 영역(101), 위치정보 영역(102), 로그 영역(103), 메타데이터 영역(104), 블럭정보 영역(105)을 제외한 모든 나머지 부분이 일반 데이터 영역(106)이 될 수 있으며, 상기 위치정보 영역(102), 로그 영역(103), 메타데이터 영역(104), 블럭정보 영역(105) 각각 또한 비어 있는 부분에 할당될 수 있다.
도 2는 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 위치정보 영역의 구조를 보여주는 도시도로서, 위치정보 영역(102)은 일반 데이터 영역을 제외한 로그 영역, 메타데이터 영역, 블럭정보 영역에 대한 블럭의 주소가 한 페이지에 저장되며, 파일시스템의 정상적인 언마운트 여부를 표시하는 플래그인 언마운트 플래그는 또한 포함되도록 한다. 상기 언마운트 플래그는 파일 시스템 마운팅 시 파일 시스템 복구 여부를 결정하는데 사용되며, 보다 자세하게는 파일 시스템의 마운트 과정에서 정상종료의 경우 0의 값이 저장되며 비 정상종료의 경우 1의 값이 저장되는 언마운트 플래그와, 로그 영역의 주소를 저장하고 있는 로그 포인터와, 블럭정보 영역의 주소를 저장하고 있는 블럭정보 포인터와, 메타 영역의 주소를 저장하고 있는 메타 포인터로 이루어지도록 구성된다.
도 2에 보이는 로그[0]과 로그[1]은 로그 포인터로서, 파일 시스템 내의 각 하위 로그 영역의 시작 블럭의 번호를 가리키는 배열로서, 상기 로그[0]이 가리키는 하위 영역의 모든 페이지를 소비하면 로그[1]이 가리키는 하위 영역의 페이지에 로그 정보를 기록한다. 이때, 로그[0]의 모든 데이터가 무효화되면 로그[0]의 데이터를 삭제한 후 상기 웨어 레벨링 정책에 의해 로그[0]의 영역을 새롭게 할당받는다. 로그[1]의 경우도 동일한 방식이 적용된다. 또한, 블럭정보 포인터는 상기 로그 영역과 같이 두 개의 하위 블럭으로 구성되며 블럭 정보[0]과 블럭 정보[1]에 각각의 해당 주소를 포함한다. 또한, 메타 포인터는 다수의 하위 영역으로 구성되며 각 하위 영역에 대한 주소는 배열로 구성되며 상기 언마운트 플래그, 로그 포인터, 블럭정보 포인터, 메타 포인터 각각을 제외한 나머지 페이지 영역내에 메타데이터 영역의 주소를 포함하는 배열로 저장된다.
도 3는 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 메타데이터 영역의 구조를 보여주는 도시도로서, 메타 영역에 저장되는 각 메타데이터는 대응되는 하나의 일반데이터에 다수의 메타데이터가 대응되며, 상기 다수의 메타데이터 각각에는 대응되는 일반데이터의 구분을 위한 객체번호와, 상기 대응되는 일반데이터가 파일, 디렉터리, 심볼릭 링크, 하드 링크 등과 같은 객체의 유형을 나타내는 객체유형과, 상기 대응되는 일반데이터의 이름, 생성시간, 최근 접근 시간을 나타내는 기본정보와, 해당 메타데이터가 일반데이터의 어느 부분과 대응되는지를 나타내고 상기 다수의 메타데이터에 있어 개별적인 구분을 위한 시퀀스 번호와, 해당 메타데이터가 수정된 누적 횟수를 나타내는 수정번호와, 대응되는 일반데이터가 저장된 주소를 페이지 번호의 나열로 나타내는 다수의 데이터 페이지로 그 구조를 가지도록 구성되는 것이 바람직하다.
일반데이터는 그 크기에 따라 1개 이상의 메타데이터를 가지도록 구성되기 때문에 상기 메타데이터 영역에 저장되는 페이지 구조의 특징은 해당 일반데이터 파일의 크기에 따라 연관되는 메타데이터 수가 달라지며, 다수의 메타데이터 페이지 각각에서 일반데이터의 위치 정보를 저장하는 것이다. 또한, 일반데이터의 일부가 수정되면 해당 메타데이터들의 정보가 수정되도록 구성된다. 시퀀스 번호는 해당 파일(해당 일반 데이터)과 연관되는 메타데이터를 구분하기 위한 번호이며, 상기 수정 번호는 해당 메타데이터가 수정되면 증가하는 필드로 이 번호를 이용하여 최신의 수정된 메타데이터를 판별하게 된다. 데이터 페이지의 배열들은 실제 데이터가 저장되는 페이지 번호를 포함한다.
도 4는 본 발명에 따른 파일시스템이 적용된 플래시 메모리의 블럭정보 영역의 구조를 보여주는 도시도로서, 상기 블럭정보 영역에 포함되는 다수의 페이지에 있어 각 페이지를 다수의 셀로 구분하고 상기 구분된 다수의 셀 각각은 낸드 플래시 메모리의 전체 블럭과 일대일 대응되며, 상기 각 셀은 해당 블럭이 포함하는 무효화된 페이지의 수를 나타내는 무효 페이지수와, 해당 블럭이 가지는 빈 페이지 수와, 해당 블럭이 사용중인지 오류 블럭인지 빈 블럭인를 나타내는 블럭상태와, 해당 블럭의 지움횟수의 기록을 나타내는 지움 횟수와, 해당 블럭이 로그 영역, 메타 영역, 블럭정보 영역, 일반데이터 영역 중 어느 영역에 속하는지를 나타내는 블럭유형으로 구성된다.
플래시 메모리 내에서 새로운 블럭 특히, 일반데이터 영역을 새로이 할당하거나 삭제할 때에는 상기 웨어 레벨링을 고려한 삭제를 수행하기 위해 파일시스템 전체의 블럭에 대한 정보가 필요하며, 이러한 정보는 상기 블럭정보 영역에 배열의 구조로 저장된다.
상기 블럭정보 영역의 각 배열들은 파일 시스템의 마운팅 시 주메모리에 복사되며, 이후, 파일 시스템의 전체 블럭에 대한 정보는 주메모리에서 계속적으로 유지되도록 하고, 상기 주메모리에서의 블럭정보를 주기적으로 플래시 메모리에 복사되도록 하는 것이 바람직하다. 이때, 주기적으로 플래시 메모리의 전체 블럭정보 배열을 주메모리에서 플래시로 복사함에 있어서는 변경내용이 발생한 때마다 하는 것이 아니라, 변경된 블럭 정보 데이터를 페이지 단위로 모아서 플래시 메모리에 저장하도록 하여 플래시 메모리의 엑서스 양을 감소시킨다.
또한, 상태가 변하는 블럭 중에서 로그 영역, 메타데이터 영역, 블럭정보 영역의 블럭을 제외한 일반데이터 영역에 대한 블럭의 변경만을 기록함으로서, 플래시 메모리에 기록되는 양을 최소화한다. 이는 상기 로그 영역, 메타 영역, 블럭정보 영역 각각은 이전 블럭을 지우고 새로운 블럭을 할당받으면 족하기 때문에 상기 블럭정보에 있어 블럭상태, 지움회수 등과 같은 요소가 필요하지 않기 때문이며, ( 일반데이터 영역의 경우에는 해당 블럭정보 영역에 포함된 해당 구성요소를 이용하여 웨어 레벨링 정책을 이용하기 때문에 주메모리에서 계속적으로 블럭정보를 유지하여야 한다.) 이와 같은 이유로 상기 로그 영역, 메타데이터 영역, 블럭정보 영역의 경우에는 마운팅시에만 해당 블럭의 정보를 읽어 갱신함이 바람직하다.
도 5는 로그 영역에 기록되는 로그데이터의 페이지 구조를 보여주는 도시도로서, 로그 영역의 로그데이터는 새로운 트랜잭션 중 해당 객체의 정보가 변경되는 업데이트 트랜잭션에 대응되며, 상기 새로운 트랜잭션 중 해당 객체의 정보가 변경되는 업데이트 트랜잭션이 아닌 그 외의 트랙젝션- 신규 생성, 지움 등-에는 로그 영역의 사용이 불필요하다. 이는 상기 로그 영역이 파일시스템의 복구 수행을 담당하는 주요 참고 대상이기 때문이다.
상기 로그 영역에 저장되는 페이지의 구조는 이전 메타데이터의 페이지 번호와, 메타데이터의 페이지 번호와, 트랜잭션 커밋과, 트랜잭션 아이디와, 객체 번호와, 이름 변경 연산 여부를 포함하여 구성되도록 함이 바람직하며, 자세하게는 해당 업데이트 트랜잭션이 비정상 종료되었을 경우에 한 스텝전의 트랜잭션으로 복구하기 위하여 한 스텝전의 트랜잭션에 의해 기록된 메타 영역의 메타데이터 위치정보를 가지는 이전 메타데이터의 페이지 번호와, 현재 업데이트되고 있는 트랜잭션에 의해 기록되는 메타 영역의 메타데이터 위치정보를 가지는 메타데이터의 페이지 번호와, 발생된 트랜잭션이 정상적으로 종료되었는지에 대한 정보를 가지는 트랜잭션 커밋과, 현재 트랜잭션에게 부여되고 이전 트랜잭션들과 구분을 하기 위한 현재 트랜잭션의 식별 아이디를 가지는 트랜잭션 아이디와, 현재 해당되는 트랙잭션이 어떤 종류의 객체(파일, 디렉터리, 심볼릭 링크, 하드 링크 등)에 대한 것인지를 구분하기 위한 객체 번호와, 현재 트랙잭션이 객체에 대한 이름 변경 연산인지를 구분하는 정보를 가지는 이름 변경 연산 여부로 이루어진다.
상기 이름 변경 연산 여부는, 만약 상기 업데이트 트랜잭션이 해당 일반데이터의 이름만을 변경하는 경우에 상기 해당 일반데이터와 대응되는 메타데이터의 기본정보에서 이름만이 변경되고 메타데이터의 블럭 이동이나 생성, 지움 등의 수행이 없기 때문에 파일 시스템의 복구 수행시 참고 하여 상기 이전 메타데이터의 페이지 번호와, 메타데이터의 페이지 번호 등의 구성요소를 참고 하지 않도록 하기 위해서이다.
이하, 상술한 본 발명에 따른 낸드 플래시 메모리에 적용되는 파일시스템의 동작을 각 실시예를 들어 설명하고자 한다. 이하 실시예를 설명함에 있어 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 하며, 파일시스템의 구조나 각 구성요소에 포함되는 내용은 이미 전술한 내용이 그대로 적용될 수 있으므로 이에 대한 상세한 설명은 생략하기로 한다.
도 6은 본 발명에 따른 파일시스템의 마운트 과정을 보여주는 흐름도이며, 도 7은 쓰기 연산에 대한 동작을 보여주는 흐름도, 도 8은 파일시스템의 각 영역에 대한 블럭 할당에 대한 동작을 보여주는 흐름도이다.
도 6에서 보이는 것과 같이, 본 발명에 따른 파일시스템이 주메모리에 마운 트되는 과정은 먼저, 파일 시스템의 위치정보 영역의 ECC(Error Correction Code 오류정정코드)를 체크하여 기록된 자료가 정상적인 자료인지 확인한다(S501). 만약 상기 ECC에 의해 상기 위치정보 영역의 자료가 정상적인 자료가 아니라면 파일 시스템 전체에 대한 스캐닝을 수행하고(S506) 이때, 상기 스캐닝 도중 로그영역을 탐지하면 로그 정보에 대한 작업을 수행한다(S507). 상기 위치정보 영역의 자료가 정상적이면 가장 최근에 작성된 페이지의 언마운트 플래그를 확인(S502)하여 파일 시스템 복구 여부를 결정하는데, 상기 언마운트 플래그가 1이면 정상적인 종료를 수행하였으므로 메타데이터 영역의 메타 데이터를 참조(S503)해 파일시스템의 디렉터리 구조를 생성(S504)하고 블럭정보 영역의 데이터를 읽어서 주메모리에 블럭정보 배열을 구축하여(S505), 파일 시스템의 마운트를 완료한다. 하지만, 상기 언마운트 플래그가 1이 아니면 파일시스템이 비정상적으로 종료되었으므로 로그 영역의 자료가 정상적인지 확인하고(S508) 로그 영역의 체크(S509)를 한 후, 데이터를 읽고(S510) 비정상 종료로 인해 종료되지 않은 트랜잭션(S511)에 대한 복구를 수행한다(S512).
다음으로, 본 발명에 따른 파일시스템에 있어 쓰기 연산에 대한 동작은 도 7에서 보이는 것과 같이, 먼저, 쓰기 연산이 요청되면 해당 요청이 새로운 트랜잭션인가를 확인한다(S601). 만약 새로운 트랜잭션의 시작이라면 트랜잭션 자료구조를 생성하고(S602) 관련 메타 데이터를 메타데이터 영역에서 생성한다(S603). 그렇지 않으면 이전 트랜젝션의 연속이기 때문에 트랜잭션의 해당 메타데이터 영역에서 해당 메타 데이터의 정보를 갱신한다(S603). 이후, 메타 데이터의 정보를 플래시 메 모리의 로그 영역에 기록하고(S604) 상기 쓰기연산에 따른 실제 데이터를 데이터버퍼에 기록할지 결정한다(S605). 기록해야 할 데이터의 크기가 4KB보다 작다면 트랜잭션의 종료로 인식한다(S606). 이후, 주메모리 상에 존재하는 해당 트랜잭션의 로그 정보와 메타 데이터를 플래시 메모리의 해당 영역에 각각 기록하고(S607) 실제 데이터를 플래시 메모리의 해당 일반데이터 영역에 기록한다(S608). 또한 상기 쓰기 요청된 자료가 트랜잭션의 종료라면 로그를 커밋(commit)하여 트랜잭션의 종료를 완결한다. 만약 쓰기 요청된 자료가 4KB라면 이전에 요청된 쓰기 연산과 동일 객체의 연속 블럭인가 확인한다(S610). 동일 객체의 연속 블럭이 아니라면 트랜잭션의 종료(S606)를 수행한다. 동일 객체의 연속 블럭에 대한 쓰기 요청이라면 데이터 버퍼의 남은 용량을 체크한다(S711). 데이터 버퍼에 쓰기 가능하다면 데이터를 기록하고(S612) 다음 쓰기 요청을 기다린다. 그렇지 않으면 버퍼에 저장된 데이터의 관련 로그 정보와 메타 데이터를 플래시 메모리에 기록하고(S607) 실제 데이터도 기록한다(S608). 이후, 데이터 버퍼에 쓰기 요청된 실제 데이터를 기록한다(S612).
한편, 본 발명에 따른 파일 시스템에서는 입출력 성능을 향상시키기 위해 디스크 버퍼 등을 이용한 캐싱(caching) 기법이 사용된다. 그러나 일반적으로 상기 디스크 버퍼로부터 목적 메모리(플래시 메모리)에 데이터를 쓰는 작업을 완료하기 전에, 시스템에 장애(crash)나 전력중단(power fail)과 같은 문제가 발생하였을 경우 파일 시스템의 일관성을 보장할 수 없게 된다. 따라서, 파일 시스템의 일관성을 유지하기 위해 파일 시스템 검사기능(FSCK)이 전체 파일 시스템을 검사해서 파일 시스템의 일관성을 확인해야 한다. 이 단점을 보완한 빠른 복구를 위해 저널링 기법을 적용하였으며, 상기 저널링 기법은 파일 시스템에 연산이 발생하기 이전에 연산에 대한 내용을 로그 영역에 기록하도록 하여 구현하는 것이 바람직하다.
또한, 본 발명에 따른 로그 영역에는 상기 일반데이터의 생성이나 변경과 같은 오퍼레이션에 대한 저널링 정보를 포함하도록 구성되며, 상기 오퍼레이션은 연산명(operation name)뿐만 아니라, 연산을 수행하기 전의 인수 내용(argument content)에 대한 정보도 기록되도록 하는 것이 바람직하다. 또한 하나의 작업을 위해 수행되는 원자적인 모든 작업을 모아 하나의 트랜잭션으로 관리하며, 수행이 완료되면 commit 연산이 이루어지고, 캐쉬의 내용이 목적 메모리(플래시 메모리)에 쓰이게 된다. 따라서 파일 시스템에 장애가 발생해도 로그 파일을 추적하여 파일 시스템의 일관성을 유지하고 복구 가능성을 높일 수 있으며, 파일 시스템이 마운트(mount) 될 때 파일 시스템 전체를 검사를 하지 않아도 되기 때문에 좀 더 빠른 마운트가 가능하다는 이점이 있다.
다음으로, 본 발명에 따른 파일시스템의 각 영역에 대한 블럭 할당에 대한 동작은 도 8에서 보이는 것과 같이, 플래시 메모리에 쓰기가 시작되면(S701) 상기쓰기 연산이 로그 영역에 대한 것인지 판단한다(S702). 만약 로그 영역에 대한 기록이라면 로그 영역에 여유공간이 있는지 판단하여(S703) 여유공간이 있으면 해당 블럭에 기록한(S704) 후, 블럭 정보를 해당 블럭 영역에서 변경한다(S705). 만약 여유공간이 없다면 새로운 영역을 할당하고(S706), 할당된 영역의 첫 블럭에 데이터를 기록한(S707) 후 위치정보 영역의 로그 정보 부분을 수정하여 작성한다 (S708). 만약 메타데이터에 대한 기록이라면(S709) 메타데이터 영역에 여유 공간이 있는지 확인하고(S703) 해당 로그에 대한 처리와 동일하게 수행한다. 만약 일반데이터에 대한 기록이라면 일반데이터 영역에 여유 공간이 있는지 확인(S703)하고 로그 및 메타데이터에 대한 처리 방식과 동일하게 처리한다. 이 모든 경우에 해당되지 않는 요청이라면 오류 발생을 알린다(S711).
도 9는 본 발명에 따른 파일시스템의 있어 복구 수행에 대한 동작을 보여주는 흐름도로써, 크게 두 가지의 선택적인 단계로 이루어진다. 먼저, 상술한 로그 영역의 각 페이지의 구성요소를 참조한 후, 복구 수행이 시작되면 먼저 비정상적인 연산의 메타데이터를 읽어준다(S901단계). 상기 메타데이터에서의 일반데이터 페이지의 정보(데이터 페이지[0], 데이터 페이지[1], ... )와 실제 일반데이터에 기록된 정보의 일치 여부를 확인해준다(S902단계). 만약 상기 메타데이터의 일반데이터 페이지에 대한 정보가 실제 일반데이터에 저장된 정보와 동일하다면, 복구 작업은 종료하게 된다(S907단계).
다음으로, 만약 일치하지 않는다면 해당 메타데이터와 데이터 페이지를 삭제를 한다(S903단계). 이후 이전 상태로의 복구를 위해 이전의 메타데이터의 정보를 로그 영역에서 읽어 온다(S905단계). 읽어온 이전 메타데이터의 시리얼 번호를 1 증가시켜서 메타영역에 적어준다(S906단계). 모든 복구단계가 끝나면 파일 시스템의 마운트를 수행한다(S908단계).
일반적으로, 상기 메타데이터의 시리얼 번호 공지된 기술로써, 메타 영역 블럭내에 존재하는 다수의 페이지 중 최신의 페이지를 나타내기 위한 영역으로서, 상 기 블럭내에서 각 페이지가 할당될 때 상기 각 페이지에 종속하며 스페어 영역이라고 불리는 영역이 동시에 할당된다. 상기 스페어 영역에는 종속되는 페이지의 메타정보가 기록되며 이 중에서 2비트로 구성되어 0 또는 1의 값을 가지는 시리얼 번호가 포함된다.
상기에서는 본 발명에 따른 바람직한 실시한 예에 한정하여 상술하였으나, 본 발명이 이에 한정되지 않고 다양하게 변경 또는 수정될 수 있음은 당업자에 자명하다 할 것이다.
낸드(NAND) 플래시 메모리를 운용하는 파일시스템은 파일 시스템의 구축에 필요한 정보를 메타영역, 블럭 정보영역, 로그 영역으로 나누어서 관리하며, 상기 각 영역의 위치정보를 기억하는 위치정보 영역만을 읽도록 하여 종래의 파일시스템에 비해 마운트 시간의 단축을 가져오는 이점이 있다.
또한, 정적인 수퍼블럭 및 위치정보 영역을 제외한 모든 파일시스템내의 각 영역들을 동적으로 할당함으로써 플래시 메모리의 수명을 연장할 수 있는 이점을 제공할 수 있다.

Claims (9)

  1. 복수의 페이지를 포함하는 블럭을 영역의 구분단위로 하며 상기 페이지 단위로 트랜잭션이 발생하는 낸드(NAND) 플래시 메모리를 운용하는 파일시스템에 있어서,
    플래시 메모리의 크기, 형태, 해당 파일시스템의 명칭과 버전정보 등의 고정 정보가 저장되는 슈퍼블럭 영역과; 파일이나 디렉터리와 같은 데이터가 저장되는 일반데이터 영역과; 상기 일반데이터에 관한 메타데이터가 저장되는 메타 영역과; 상기 일반데이터의 생성이나 변경과 같은 오퍼레이션에 대한 저널링 정보를 포함하는 로그 영역과; 플래시 메모리의 전체 블럭에 있어 각 블럭에 대한 상태정보를 포함하는 블럭정보 영역과; 상기 로그 영역, 메타 영역, 블럭정보 영역 각각의 주소를 관리하며, 해당 파일 시스템의 마운트 동작시 정상 여부를 표시하는 언마운트 플래그를 포함하는 위치정보 영역;으로 구성되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  2. 제 1항에 있어서,
    상기 위치정보 영역의 크기는 초기 8개의 블럭을 할당받은 이후 세그먼트(segment) 단위로 동적으로 증감되며; 메타데이터 영역, 블럭정보 영역, 로그 영역 각각의 크기는 세그먼트 단위로 할당되며; 데이터 영역의 크기는 블럭 단위로 할당되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  3. 제 2항에 있어서 상기 세그먼트 단위는,
    4개의 블럭이 하나의 세그먼트로 이루어지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  4. 제 1항에 있어서 상기 위치정보 영역은,
    플래시 메모리상의 0번째 페이지를 시작 위치로 가지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  5. 제 1항에 있어서 상기 일반데이터 영역은,
    플래시 메모리상의 슈퍼블럭 영역, 위치정보 영역, 로그 영역, 메타 영역, 블럭정보 영역을 제외한 나머지 빈 블럭에 할당되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  6. 제 1항 내지 제 5항 중 선택되는 어느 하나의 항에 있어서,
    상기 위치정보 영역은,
    파일 시스템의 마운트 과정에서 정상종료의 경우 0의 값이 저장되며 비정상종료의 경우 1의 값이 저장되는 언마운트 플래그와, 로그 영역의 주소를 저장하고 있는 로그 포인터와, 블럭정보 영역의 주소를 저장하고 있는 블럭정보 포인터와, 메타 영역의 주소를 저장하고 있는 메타 포인터로 이루어지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  7. 제 1항 내지 제 5항 중 선택되는 어느 하나의 항에 있어서,
    상기 메타 영역에 저장되는 각 메타데이터는,
    대응되는 하나의 일반데이터에 다수의 메타데이터가 대응되며;
    상기 다수의 메타데이터 각각에는 대응되는 일반데이터의 구분을 위한 객체번호와; 상기 대응되는 일반데이터가 파일, 디렉터리, 심볼릭 링크, 하드 링크 등과 같은 객체의 유형을 나타내는 객체유형과; 상기 대응되는 일반데이터의 이름, 생성시간, 최근 접근 시간을 나타내는 기본정보와; 해당 메타데이터가 일반데이터의 어느 부분과 대응되는지를 나타내고 상기 다수의 메타데이터에 있어 개별적인 구분을 위한 시퀀스 번호와; 해당 메타데이터가 수정된 누적 횟수를 나타내는 수정번호와; 대응되는 일반데이터가 저장된 주소를 페이지 번호의 나열로 나타내는 다수의 데이터 페이지로 그 구조를 가지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  8. 제 1항 내지 제 5항 중 선택되는 어느 하나의 항에 있어서,
    상기 블럭정보 영역은,
    포함되는 다수의 페이지에 있어 각 페이지를 다수의 셀로 구분하고 상기 구분된 다수의 셀 각각은 낸드 플래시 메모리의 전체 블럭과 일대일 대응되며;
    상기 각 셀은 해당 블럭이 포함하는 무효화된 페이지의 수를 나타내는 무효 페이지수와; 해당 블럭이 가지는 빈 페이지 수와; 해당 블럭이 사용중인지, 오류 블럭인지, 빈 블럭인를 나타내는 블럭상태와; 해당 블럭의 지움횟수의 기록을 나타내는 지움 횟수와; 해당 블럭이 로그 영역, 메타 영역, 블럭정보 영역, 일반데이터 영역 중 어느 영역에 속하는지를 나타내는 블럭유형으로 구성되는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
  9. 제 1항 내지 제 5항 중 선택되는 어느 하나의 항에 있어서,
    상기 로그 영역에 저장되는 각 로그데이터는,
    새로운 트랜잭션 중 해당 객체의 정보가 변경되는 업데이트 트랜잭션에 대응되며;
    해당 업데이트 트랜잭션이 비정상 종료되었을 경우에 한 스텝전의 트랜잭션으로 복구하기 위하여 한 스텝전의 트랜잭션에 의해 기록된 메타 영역의 메타데이터 위치정보를 가지는 이전 메타데이터의 페이지 번호와; 현재 업데이트되고 있는 트랜잭션에 의해 기록되는 메타 영역의 메타데이터 위치정보를 가지는 메타데이터의 페이지 번호와; 발생된 트랜잭션이 정상적으로 종료되었는지에 대한 정보를 가지는 트랜잭션 커밋과; 현재 트랜잭션에게 부여되고 이전 트랜잭션들과 구분을 하기 위한 현재 트랜잭션의 식별 아이디를 가지는 트랜잭션 아이디와; 현재 해당되는 트랙잭션이 어떤 종류의 객체(파일, 디렉터리, 심볼릭 링크, 하드 링크 등)에 대한 것인지를 구분하기 위한 객체 번호와; 현재 트랙잭션이 객체에 대한 이름 변경 연산인지를 구분하는 정보를 가지는 이름 변경 연산 여부로 그 구조를 가지는 것을 특징으로 하는 낸드 플래시 메모리에 적용되는 파일시스템.
KR1020060026835A 2006-03-24 2006-03-24 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템 KR20070096429A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060026835A KR20070096429A (ko) 2006-03-24 2006-03-24 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060026835A KR20070096429A (ko) 2006-03-24 2006-03-24 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템

Publications (1)

Publication Number Publication Date
KR20070096429A true KR20070096429A (ko) 2007-10-02

Family

ID=38803268

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060026835A KR20070096429A (ko) 2006-03-24 2006-03-24 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템

Country Status (1)

Country Link
KR (1) KR20070096429A (ko)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100895429B1 (ko) * 2007-04-27 2009-05-07 중앙대학교 산학협력단 플래시 메모리 파일 장치 및 그 마운트 방법
KR100952470B1 (ko) * 2007-12-17 2010-04-13 한국전자통신연구원 디지털 증거의 저장 및 분석을 위한 이미지 파일 포맷 구조및 그 구조로 데이터가 기록된 기록 매체
KR100972285B1 (ko) * 2008-07-04 2010-07-23 (주) 씨이엔 고속 접근을 위한 메모리 재구성 방법과 장치 및 이를 위한기록매체
KR101114125B1 (ko) * 2009-04-17 2012-02-20 고려대학교 산학협력단 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법
CN101789004B (zh) * 2010-01-22 2012-07-18 北京北大众志微系统科技有限责任公司 一种Flash文件系统的快速启动方法及装置
KR101356470B1 (ko) * 2011-05-26 2014-01-28 에스코어 주식회사 플래시 파일 시스템
US8819358B2 (en) 2007-10-25 2014-08-26 Samsung Electronics Co., Ltd. Data storage device, memory system, and computing system using nonvolatile memory device
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
KR101450157B1 (ko) * 2013-08-19 2014-10-13 이화여자대학교 산학협력단 비휘발성 저널링 통합 버퍼 캐시와 비휘발성 스토리지를 위한 협동적 데이터 관리 장치 및 방법
KR101451482B1 (ko) * 2011-12-12 2014-10-22 애플 인크. 데이터 이용가능성의 마운트타임 조정
WO2014208863A1 (ko) * 2013-06-27 2014-12-31 이화여자대학교 산학협력단 비휘발성 버퍼 캐시와 비휘발성 스토리지를 위한 통합 데이터 관리 장치 및 방법
KR101482013B1 (ko) * 2012-05-30 2015-01-14 한국외국어대학교 연구산학협력단 플래시 메모리 기반 저장 시스템의 변환 테이블인 메타데이터 데이터 업데이트 방법 및 장치
US9152547B2 (en) 2009-07-16 2015-10-06 Samsung Electronics Co., Ltd. Apparatus and method for scratch pad memory management
US9195583B2 (en) 2011-08-09 2015-11-24 Samsung Electronics Co., Ltd. Methods of managing meta data in a memory system and memory systems using the same
US9424262B2 (en) 2012-09-28 2016-08-23 Samsung Electronics Co., Ltd. Computing system and data management method thereof
CN107678679A (zh) * 2016-08-02 2018-02-09 光宝电子(广州)有限公司 运用于固态储存装置的超级区块的扫描方法
KR20200109131A (ko) * 2019-03-12 2020-09-22 고려대학교 산학협력단 객체의 메타데이터 처리 장치 및 방법

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100895429B1 (ko) * 2007-04-27 2009-05-07 중앙대학교 산학협력단 플래시 메모리 파일 장치 및 그 마운트 방법
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US8819358B2 (en) 2007-10-25 2014-08-26 Samsung Electronics Co., Ltd. Data storage device, memory system, and computing system using nonvolatile memory device
KR101464338B1 (ko) * 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
KR100952470B1 (ko) * 2007-12-17 2010-04-13 한국전자통신연구원 디지털 증거의 저장 및 분석을 위한 이미지 파일 포맷 구조및 그 구조로 데이터가 기록된 기록 매체
KR100972285B1 (ko) * 2008-07-04 2010-07-23 (주) 씨이엔 고속 접근을 위한 메모리 재구성 방법과 장치 및 이를 위한기록매체
KR101114125B1 (ko) * 2009-04-17 2012-02-20 고려대학교 산학협력단 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법
US9152547B2 (en) 2009-07-16 2015-10-06 Samsung Electronics Co., Ltd. Apparatus and method for scratch pad memory management
CN101789004B (zh) * 2010-01-22 2012-07-18 北京北大众志微系统科技有限责任公司 一种Flash文件系统的快速启动方法及装置
KR101356470B1 (ko) * 2011-05-26 2014-01-28 에스코어 주식회사 플래시 파일 시스템
US9195583B2 (en) 2011-08-09 2015-11-24 Samsung Electronics Co., Ltd. Methods of managing meta data in a memory system and memory systems using the same
KR101451482B1 (ko) * 2011-12-12 2014-10-22 애플 인크. 데이터 이용가능성의 마운트타임 조정
KR101482013B1 (ko) * 2012-05-30 2015-01-14 한국외국어대학교 연구산학협력단 플래시 메모리 기반 저장 시스템의 변환 테이블인 메타데이터 데이터 업데이트 방법 및 장치
US9424262B2 (en) 2012-09-28 2016-08-23 Samsung Electronics Co., Ltd. Computing system and data management method thereof
WO2014208863A1 (ko) * 2013-06-27 2014-12-31 이화여자대학교 산학협력단 비휘발성 버퍼 캐시와 비휘발성 스토리지를 위한 통합 데이터 관리 장치 및 방법
KR101450157B1 (ko) * 2013-08-19 2014-10-13 이화여자대학교 산학협력단 비휘발성 저널링 통합 버퍼 캐시와 비휘발성 스토리지를 위한 협동적 데이터 관리 장치 및 방법
CN107678679A (zh) * 2016-08-02 2018-02-09 光宝电子(广州)有限公司 运用于固态储存装置的超级区块的扫描方法
CN107678679B (zh) * 2016-08-02 2020-09-08 建兴储存科技(广州)有限公司 运用于固态储存装置的超级区块的扫描方法
KR20200109131A (ko) * 2019-03-12 2020-09-22 고려대학교 산학협력단 객체의 메타데이터 처리 장치 및 방법

Similar Documents

Publication Publication Date Title
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
CN110678836B (zh) 用于键值存储的持久性存储器
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
Chung et al. A survey of flash translation layer
US7890550B2 (en) Flash memory system and garbage collection method thereof
US8898371B2 (en) Accessing logical-to-physical address translation data for solid state disks
US20100217927A1 (en) Storage device and user device including the same
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
KR20150083264A (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
CN112860594B (zh) 一种固态盘地址重映射方法、设备及固态盘
US20100318726A1 (en) Memory system and memory system managing method
KR20090107098A (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
Lee et al. Efficient logging of metadata using NVRAM for NAND flash based file system
Kim et al. A log-based flash translation layer for large NAND flash memory
KR20120039166A (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
KR20100099888A (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR101079367B1 (ko) 플래시 메모리를 사용하는 raid 저장 장치에서 패리티 데이터 관리 방법 및 그 장치
KR100868674B1 (ko) 플래시메모리 관리방법
Park et al. O1FS: Flash file system with O (1) crash recovery time
Chowdhur et al. A survey of flash memory design and implementation of database in flash memory
KR101114398B1 (ko) 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application