KR100703680B1 - 플래시 파일 시스템 - Google Patents

플래시 파일 시스템 Download PDF

Info

Publication number
KR100703680B1
KR100703680B1 KR1019990044504A KR19990044504A KR100703680B1 KR 100703680 B1 KR100703680 B1 KR 100703680B1 KR 1019990044504 A KR1019990044504 A KR 1019990044504A KR 19990044504 A KR19990044504 A KR 19990044504A KR 100703680 B1 KR100703680 B1 KR 100703680B1
Authority
KR
South Korea
Prior art keywords
file
file information
block
information item
data
Prior art date
Application number
KR1019990044504A
Other languages
English (en)
Other versions
KR20010037155A (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 KR1019990044504A priority Critical patent/KR100703680B1/ko
Priority to CNB001284304A priority patent/CN1180349C/zh
Publication of KR20010037155A publication Critical patent/KR20010037155A/ko
Application granted granted Critical
Publication of KR100703680B1 publication Critical patent/KR100703680B1/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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • 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/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 별도의 운용 프로그램이 필요 없이 플래시 파일 시스템을 독립적으로 운영되도록 구성하여 플래시 파일 시스템에서 데이터를 파일단위로 관리(생성 및 기록, 수정, 검색, 삭제, 복원 등)할 수 있도록 한 플래시 파일 시스템에 관한 것이다.
본 발명의 특징은 하나의 파일정보 블럭과 하나의 자유삭제 블럭 및 적어도 하나 이상의 데이터 블럭을 포함하고; 파일정보 블럭은 파일정보 블럭의 상태정보를 나타내는 상태와, 파일 시스템의 식별자를 갖는 부트 레코드와, 데이터 블럭에 기록되는 파일의 정보가 기록되는 적어도 하나 이상의 파일정보 항목을 포함하며; 자유삭제 블럭은 파일정보 블럭을 갱신할 때 파일정보 블럭에 기록된 "유효"한 파일정보 항목만을 검출하여 저장하고, 파일정보 블럭이 삭제된 후 저장된 "유효"한 파일정보 항목을 파일정보 블럭에 전송하여 갱신하고; 적어도 하나 이상의 데이터 블럭은 연속되는 주소를 갖는 데이터들이 기록되도록 한 플래시 파일 시스템에 있다.
본 발명은 플래시 메모리 상에 독자적인 파일 시스템을 구성하여 별도의 파일 시스템을 사용하기 어려운 환경에서도 손쉽게 파일 단위의 데이터에 접근할 수 있는 이점이 있다.
플래시 파일 시스템, 파일단위 관리, 파일정보 블럭의 상태, 파일정보 항목, 파일의 상태

Description

플래시 파일 시스템{FLASH FILE SYSTEM}
도 1은 종래의 플래시 메모리에 데이터를 기록하기 위한 가상메모리 맵 구조를 나타내는 도면이고,
도 2는 본 발명에 의한 플래시 파일 시스템을 나타내는 도면이며,
도 3은 도 2에 도시된 파일정보 블럭의 상세 구조도이고,
도 4는 도 3에 도시된 파일정보 항목의 상세 구조도이며,
도 5는 본 발명의 플래시 파일 시스템을 통한 파일 생성 및 기록작업의 수행과정을 나타내는 동작흐름도이고,
도 6은 본 발명의 플래시 파일 시스템을 통한 파일 수정작업의 수행과정을 나타내는 동작흐름도이며,
도 7은 본 발명의 플래시 파일 시스템을 통한 파일 읽기 작업의 수행과정을 나타내는 동작흐름도이고,
도 8은 본 발명의 플래시 파일 시스템을 통한 파일 삭제작업의 수행과정을 나타내는 동작흐름도이며,
도 9는 본 발명의 플래시 파일 시스템을 통한 파일 복원작업의 수행과정을 나타내는 동작흐름도이다.
<도면의 주요부분에 대한 부호의 설명>
101: 파일정보 블럭 102: 자유삭제 블럭
103: 데이터 블럭 104: 파일정보 블럭의 상태
105: 부트 레코드 106: 파일정보 항목
107: 파일의 상태 109: 파일의 이름
113: 데이터 블럭의 주소(번호)
본 발명은 플래시 파일 시스템에 관한 것으로서, 보다 상세하게는 별도의 운용 프로그램이 필요 없이 플래시 파일 시스템을 독립적으로 운영되도록 구성하여 플래시 파일 시스템에서 데이터를 파일단위로 관리(생성 및 기록, 수정, 검색, 삭제, 복원 등)할 수 있도록 한 플래시 파일 시스템에 관한 것이다.
플래시타입의 플로팅 게이트 트랜지스터를 사용하는 일종의 EEPROM(Electronically Erasable and Programmable Read Only Memory)인 플래시 메모리는 컴퓨터, 이동 통신 단말기 등의 프로그램 및 데이터 저장장치로 널리 사용되고 있다.
플래시 메모리는 일반적인 메모리와는 상이하게 간단한 프로그램에 의한 제어만으로 데이터를 기록 및 삭제할 수 있으며, 전원이 차단되더라도 저장된 데이터가 보존되는 특성으로 인하여 그 사용영역이 급속하게 확대되고 있다.
한편, 플래시 메모리는 기존의 RAM(Random Access Memory)이나 비휘발성 저장장치(NVRAM), 마그네틱 디스크 등과 마찬가지로 특정위치에 저장된 데이터를 임의로 접근할 수 있지만, 데이터를 수정하거나 삭제하는 방법은 위의 다른 저장매체와는 상이한 방식을 취한다.
종래의 플래시 파일 시스템의 관련기술은 미국특허공고 제5,404,485호(1995.04.04)에 제시되어 있으며, 이러한 종래의 플래시 파일 시스템의 관련기술에 대하여 도 1을 참조하여 설명하면 다음과 같다.
도 1에는 종래의 플래시 메모리에 데이터를 기록하기 위한 가상메모리 맵 구조를 나타내는 도면이 도시되어 있다.
도 1에 도시된 바와 같이, 플래시 메모리에 기록된 데이터에 접근하기 위해서는 가상 매핑기법을 사용하여야 한다. 종래의 플래시 메모리내의 각 바이트에는 물리적 주소(Physical Address: 10)와 가상 주소(Virtual Address: 20)가 부여된다. 가상 메모리 맵은 물리적 주소(10)와 가상 주소(20)간의 변환을 담당한다.
한편, 물리적으로 연속되는 주소를 갖는 바이트들을 블럭(Block)이라 하며, 연속된 블럭들이 모여 유니트를 구성한다. 유니트는 플래시 메모리에서 물리적으로 한번에 삭제될 수 있는 삭제 블럭이다. 각 유니트에는 논리적 유니트 번호(30) 가 부여된다.
가상 메모리 맵에서 각 가상 블럭에 해당하는 물리적 주소(10)가 저장되며, 가상 주소(20)를 통해 접근할 때 물리적 주소(10)로 변환하는 데 사용된다. 가상 블럭의 물리적 주소(10)가 변경되더라도 가상 메모리 맵에 변경된 물리적 주소(10)가 기록되므로 동일한 가상 주소(20)로 계속 접근할 수 있다.
이러한 종래의 플래시 파일 시스템을 이용하여 읽기 연산을 수행하는 경우, 사용자가 요청한 가상 주소(20)는 가상 블럭번호(40)와 그 블럭 내에서의 바이트 위치로 변환되고, 이것은 다시 가상 메모리 맵을 사용하여 물리적 주소(10)로 변환된다. 이 물리적 주소(10)로부터 읽기 연산이 수행된다.
또한, 쓰기 연산에서도 읽기와 마찬가지로 가상 메모리 맵을 통하여 가상 주소(20)에서 물리적 주소(10)로 변환된다. 그런데, 써야 할 블럭에 이미 데이터가 기록되어 있는 상태인 경우, 플래시 메모리의 특성상 해당 블럭이 속한 유니트 즉, 삭제 블럭을 모두 지워야 하기 때문에, 삭제하고자 하는 해당 블럭만 삭제하고 재기록하기 어렵다. 따라서, 사용하지 않는 블럭을 찾아서 해당 블럭에 데이터를 기록하고, 가상 메모리 맵에서 이 블럭의 가상 주소(20)가 새로운 물리적 블럭의 주소(10)로 변환되도록 수정한다.
유니트에 사용되지 않은 블럭이 많아지면 메모리의 사용효율이 저하되므로, 사용되는 블럭만을 다른 유니트로 이동시킨 후 해당 유니트를 모두 삭제하는 과정을 수행한다.
한편, 미국특허공고 제5,404,485호(1995.04.04)에는 종래의 다른 실시예로 유니트에 논리적 번호(50)를 부여하고, 이것을 물리적 주소(10)로 변환함으로써, 유니트의 데이터를 이동하더라도 동일한 유니트 번호로 접근할 수 있는 방식이 제시되어 있다.
그런데, 이와 같은 종래의 플래시 파일 시스템에 의하면 다음과 같은 문제점(들)이 발생한다.
종래에는 가상 메모리 맵을 이용하여 메모리 상에 데이터를 기록하거나 플래시 메모리에 기록된 데이터를 읽는 방식을 채택하고 있다. 즉, 종래에는 데이터에 대한 접근방식이 블럭 번호를 통해 이루어지기 때문에 실제 응용에서 요구하는 파일 단위의 접근은 별도로 구현하거나 다른 파일 시스템에 연동시켜 사용해야 한다. 그러나, 플래시 메모리 이외의 저장매체가 사용되지 않거나 혹은 일반적인 파일 시스템의 기능이 모두 필요하지 않은 환경에서 다른 파일 시스템을 운용하는 것은 비효율적이다.
따라서, 본 발명은 이와 같은 문제점(들)을 해결하기 위한 것으로서, 본 발명의 목적은 플래시 메모리 상에 독자적인 파일 시스템을 구성하여 별도의 파일 시스템을 사용하기 어려운 환경에서도 손쉽게 파일 단위의 데이터에 접근할 수 있도록 한 플래시 파일 시스템을 제공함에 있다.
또한, 본 발명의 다른 목적은 플래시 메모리에서 데이터를 읽거나 플래시 메모리에 데이터를 기록하는 도중 고장이 발생하는 경우에도 이를 복원할 수 있는 플래시 파일 시스템을 제공함에 있다.
이와 같은 목적(들)을 달성하기 위한 본 발명의 특징은, 하나의 파일정보 블럭과 하나의 자유삭제 블럭 및 적어도 하나 이상의 데이터 블럭을 포함하고; 파일정보 블럭은 파일정보 블럭의 상태정보를 나타내는 상태와, 파일 시스템의 식별자를 갖는 부트 레코드와, 데이터 블럭에 기록되는 파일의 정보가 기록되는 적어도 하나 이상의 파일정보 항목을 포함하며; 자유삭제 블럭은 파일정보 블럭을 갱신할 때 파일정보 블럭에 기록된 "유효"한 파일정보 항목만을 검출하여 저장하고, 파일정보 블럭이 삭제된 후 저장된 "유효"한 파일정보 항목을 파일정보 블럭에 전송하여 갱신하고; 적어도 하나 이상의 데이터 블럭은 연속되는 주소를 갖는 데이터들이 기록되며; 새로운 파일을 생성 및 기록할 경우, 파일정보 블럭에 새로운 파일정보 항목을 할당함과 동시에 새로운 파일정보 항목의 상태를 "생성 중"으로 설정하고, 새로운 파일에 대한 정보를 새로운 파일정보 항목에 기록하며, 새로운 파일을 기록할 적어도 하나 이상의 데이터 블럭을 할당받아 파일정보 항목에 할당된 적어도 하나 이상의 데이터 블럭의 주소를 기록한 후, 새로운 파일을 적어도 하나 이상의 데이터 블럭에 기록함과 동시에 파일정보 항목의 상태를 "유효"로 갱신하고; 기존 파일을 수정할 경우, 새로운 파일정보 항목을 할당하고, 할당된 파일정보 항목에 수 정된 파일에 대한 정보를 기록하며, 수정된 파일을 기록할 적어도 하나 이상의 데이터 블럭을 할당받아 파일정보 항목에 할당된 적어도 하나 이상의 데이터 블럭의 주소를 기록한 후, 수정된 파일을 적어도 하나 이상의 데이터 블럭에 기록함과 동시에 새로운 파일정보 항목의 상태를 "유효"로 설정하고, 수정 전의 기존 파일에 관련된 임의의 파일정보 항목을 삭제함과 동시에 파일정보 항목의 상태를 "삭제"로 설정하며; 파일의 내용을 검색할 경우, 적어도 하나 이상의 파일정보 항목 중 해당 파일의 내용에 대응하는 임의의 파일정보 항목을 검출하여, 검출된 파일정보 항목에 기록된 적어도 하나 이상의 데이터 블럭의 주소를 찾아 해당 주소의 데이터 블럭에 기록된 데이터를 읽고; 파일을 삭제하는 경우, 해당 파일에 대응하는 파일정보 항목을 검출함과 동시에 파일정보 항목의 상태를 "삭제 중"으로 설정하고, 검출된 파일정보 항목에 기록된 해당 파일에 관련된 적어도 하나 이상의 데이터 블럭의 주소를 찾아 해당 주소의 데이터 블럭에 기록된 데이터를 삭제함과 동시에 파일정보 항목의 상태를 "삭제"로 설정하는 파일 시스템을 갖는 점에 있다.
여기서, 파일 시스템은, 파일 시스템의 내용이 변경되는 도중 해당 작업이 중지되면, 파일 시스템을 다시 시작한 후, 적어도 하나 이상의 파일정보 항목을 검색하여 적어도 하나 이상의 파일정보 항목 중 파일정보 항목의 상태가 "삭제 중" 및 "생성 중"인 파일정보 항목을 검출하여, 검출된 파일정보 항목의 상태를 모두 "삭제"로 갱신하는 것이 바람직하다.
또한, 파일정보 항목은, 해당 파일의 현재 상태를 나타내는 상태와; 파일의 이름; 및 파일이 기록된 적어도 하나 이상의 데이터 블럭의 주소를 포함하는 것이 바람직하다.
그리고, 데이터 블럭은, 데이터 블럭의 사용여부를 나타내는 비트 맵 형태의 블럭 사용 맵을 포함하는 것이 바람직하다.
이하, 본 발명의 바람직한 실시예(들)에 대하여 첨부도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호로 표기되었음에 유의하여야 한다. 또한, 하기의 설명에서는 구체적인 회로의 구성소자 등과 같은 많은 특정사항들이 도시되어 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 2에는 본 발명에 의한 플래시 파일 시스템을 나타내는 도면이 도시되어 있고, 도 3에는 도 2에 도시된 파일정보 블럭의 상세 구조도가 도시되어 있으며, 도 4에는 도 3에 도시된 파일정보 항목의 상세 구조도가 도시되어 있고, 도 5에는 본 발명의 플래시 파일 시스템을 통한 파일 생성 및 기록작업의 수행과정을 나타내는 동작흐름도가 도시되어 있으며, 도 6에는 본 발명의 플래시 파일 시스템을 통한 파일 수정작업의 수행과정을 나타내는 동작흐름도가 도시되어 있고, 도 7에는 본 발명의 플래시 파일 시스템을 통한 파일 읽기 작업의 수행과정을 나타내는 동작흐름도가 도시되어 있으며, 도 8에는 본 발명의 플래시 파일 시스템을 통한 파일 삭제작업의 수행과정을 나타내는 동작흐름도가 도시되어 있고, 도 9에는 본 발명의 플래시 파일 시스템을 통한 파일 복원작업의 수행과정을 나타내는 동작흐름도가 도시되어 있다.
먼저, 도 2 내지 도 4를 참조하여 본 발명의 플래시 파일 시스템의 상세한 구조에 대해 설명하면 다음과 같다.
플래시 메모리에서 한 번에 지울 수 있는 연속된 데이터의 집합을 삭제 블럭이라 하며, 본 발명에 적용되는 파일 시스템에서는 플래시 메모리를 삭제 블럭단위로 관리한다. 이러한 삭제 블럭의 크기는 플래시 메모리의 특성과 사용자의 요구에 따라 달라질 수 있다.
삭제 블럭의 종류에는 도 2에 도시된 바와 같이, 파일정보 블럭(101), 자유삭제 블럭(102), 데이터 블럭(103)이 있다. 플래시 파일 시스템에는 하나의 파일정보 블럭(101)과 하나의 자유삭제 블럭(102)이 있으며, 나머지 블럭들은 데이터 블럭(103)으로 할당된다. 파일정보 블럭(101)에는 도 3에 도시된 바와 같이, 상태(104), 부트 레코드(105) 및 다수개의 파일정보 항목(106)이 기록된다. 여기서, 자유삭제 블럭(102)은 파일정보 블럭(101)을 수정하는데 사용되는 블럭이다. 또한, 데이터 블럭(103)에는 파일의 데이터가 기록된다.
이때, 파일정보 블럭(101)의 상태(104)는 파일정보 블럭(101)이 삭제된 것인지 혹은 기록할 수 있는 것인지 등의 파일정보 블럭(101)의 현재상태를 나타내는 정보가 기록된다. 부트 레코드(105)는 파일 시스템의 식별자와 기타 정보가 기록된다. 다수개의 파일정보 항목(106)은 각 파일에 대한 파일정보가 기록되며, 각각의 파일정보 항목(106)에는 도 4에 도시된 바와 같이, 파일의 상태(107), 파일정보 항목의 크기(108), 파일 이름(109), 파일 생성 또는 최종 수정날짜 및 시각(110), 파일 데이터의 길이(111), 파일 속성(112), 파일 데이터가 기록된 데이터 블럭(103)의 번호(113) 등이 포함된다.
이와 같은 구성을 갖는 본 발명의 동작에 대하여 도 5 내지 도 9를 참조하여 설명하면 다음과 같다.
플래시 파일 시스템의 동작은 파일 생성 및 기록, 수정, 검색, 삭제, 고장에서의 복원 등의 항목으로 구분된다.
먼저, 도 5에 도시된 바와 같이 파일을 생성 및 기록하는 경우를 보면, 파일정보 블럭(101)에 새로운 파일정보 항목(106)이 할당될 수 있는가를 검사한다(S1). 새로운 파일정보 항목(106)이 할당될 공간이 존재하면(S2, S15), 새로운 파일정보 항목(106)의 위한 공간을 할당하고(S3), 그 파일정보 항목(106)에 대한 정보(상태, 이름, 날짜, 크기, 속성 등)를 기록한다(S5). 이때, 파일의 상태(107)는 "생성 중"이라 표시된다(S4). 그리고, 사용되지 않는 데이터 블럭(103)을 하나 할당받아(S6~S8) 그 주소를 파일정보 항목(106)에 기록하고(S9), 파일 데이터를 해 당 데이터 블럭(103)에 기록한다(S10). 이때, 플래시 메모리의 각종 작업 중 시스템에 고장이 발생하여 다운되더라도 이를 복원할 수 있도록 하기 위하여 파일정보 항목(106)의 파일데이터가 기록된 데이터 블럭(103)의 번호(113)를 우선적으로 기록한 후, 해당 파일데이터를 데이터 블럭(103)에 기록하여야 한다. 그리고, 파일에 관련된 모든 데이터 블럭(103)의 주소와 파일 데이터를 기록하는 작업을 수행하면, 나머지 파일 정보(이름, 파일 크기 등)를 기록한다(S11). 이때, 필요에 따라 혹은 파일 크기를 미리 알 수 있는 경우에는 파일정보 항목(106)의 크기를 먼저 기록할 수도 있다. 이러한 기록작업이 모두 완료되면, 파일의 상태(107)는 유효로 전환된다(S12).
한편, 파일 시스템에서 사용되지 않는 데이터 블럭(103)을 쉽게 찾을 수 있도록 하기 위하여 블럭사용 맵을 이용한다. 블럭사용 맵은 통상 비트 맵 형태로 구성되며, 블럭사용 맵의 각 비트는 해당 블럭의 사용여부를 나타낸다. 따라서, 파일 시스템은 블럭사용 맵의 비트를 통해 해당 블럭의 사용여부를 간단하게 검색할 수 있다.
다음으로, 도 6에 도시된 바와 같이 파일의 내용을 수정하는 경우를 보면, 파일정보 항목을 다시 할당하고(S17~S19, S31), 앞서 언급한 파일 생성 및 기록과정과 동일한 과정을 수행한다(S20~S24). 그리고, 새로운 파일정보 항목(106)에 수정된 내용이 적힌 데이터 블럭(103)의 번호를 기록한 후(S25~S27), 이전의 파일정보 항목(106)은 파일의 상태(107)를 "삭제"로 변경한다(S28).
또한, 도 7에 도시된 바와 같이 파일의 내용을 읽는 경우를 보면, 파일정보 블럭(101)에서 각 파일정보 항목(106)을 검사하여(S33) 요청된 파일이 존재하는가를 검사하고(S34), 해당 파일이 존재하면 파일정보 항목(106)내의 데이터 블럭(103)의 번호(113)를 검출하여 해당 데이터 블럭(103)에서 데이터를 읽어낸다(S35). 만약, 각 파일정보 항목(106)을 검사한 결과 요청된 파일이 존재하지 않는다면 에러로 처리한다(S36).
그리고, 도 8에 도시된 바와 같이 파일을 삭제하는 경우를 보면, 파일정보 항목(106)내의 파일의 상태(107)를 "삭제 중"으로 설정하고(S37), 그 파일에 속한 모든 데이터 블럭(103)을 삭제한 후(S38), 해당 데이터 블럭(103)의 블럭사용 맵을 갱신한다(S39). 이후, 모든 데이터 블럭(103)을 삭제하고 블럭사용 맵을 갱신한 후, 파일의 상태(107)를 "삭제"로 설정하여 해당 파일이 삭제되었음을 나타낸다(S40).
한편, 도 9에 도시된 바와 같이 파일 시스템의 내용이 변경되던 도중 시스템이 다운되거나 혹은 고장이 발생하면, 해당 시스템이 재 구동된 후에 파일 시스템의 구조는 파괴된 상태가 된다. 따라서, 파일 시스템을 처음 사용하거나 혹은 재 시작할 때마다 파일 시스템의 구조를 먼저 검사하여야 한다. 이때, 파일정보 항목(106)내의 파일의 상태(107)를 검사하여 파일의 상태(107)가 "생성 중"이거나 혹은 "삭제 중"인 항목이 있는가를 검사한다(S41). 여기서, 파일의 상태(107)가 "생성 중"이면(S42) 파일을 생성하는 도중 고장이 발생한 것에 해당하며, 파일의 상태(107)가 "삭제 중"이면(S43) 파일을 삭제하는 도중 고장이 발생한 것을 의미하므로, 두 가지의 경우에 해당하는 파일은 모두 불필요한 파일이 된다. 따라서, 파일 정보 항목(106)내의 파일의 상태(107)를 "삭제 중"으로 변경하고(S44), 해당 파일정보 항목(106)에 속한 모든 데이터 블럭(103)을 삭제하며(S45), 삭제가 완료되면 해당 파일의 상태(107)를 "삭제"로 변경한다(S46).
한편, 파일정보 블럭(101)에 삭제된 항목이 많은 경우에는 플래시 메모리의 사용효율이 저하되므로, 자유삭제 블럭(102)을 이용하여 파일정보 항목(106)을 정리할 수도 있다. 즉, 각각의 파일정보 항목(106)내의 파일의 상태(107)를 검사하여 파일의 상태(107)가 "유효"인 해당 파일정보 항목(106)만을 검색하여 이를 자유삭제 블럭(102)에 이동시킨다. 이러한 과정을 "재생"이라 칭한다. 이후, 파일정보 블럭(101)내의 각 파일정보 항목(106)을 모두 삭제한 후, 자유삭제 블럭(102)에 저장되어 있는 "유효"한 파일정보 항목(106)들을 다시 파일정보 블럭(101)으로 이동시킨다. 이때, 파일정보 블럭(101)은 삭제된 파일정보 항목(106)이 많을 때 재생되고, 데이터 블럭(103)은 파일이 삭제되거나 수정되는 경우에만 재생된다(도 5의 S13~S15 및 도 6의 S29~S31).
한편, 파일정보 블럭(101)의 상태(104)를 변경시키기 위하여 매번 데이터 블럭(103)을 삭제할 필요가 없도록 상태값 변경절차를 설정할 수도 있다. 예컨대, 파일정보 블럭(101)의 상태(104)를 미정(FF)
Figure 111999012970560-pat00001
삭제(8F)
Figure 111999012970560-pat00002
복원(4F)
Figure 111999012970560-pat00003
삭제 중(2F)
Figure 111999012970560-pat00004
기록가능(OF)
Figure 111999012970560-pat00005
가득 참(08)과 같은 절차로 변경할 수 있다.
마찬가지로, 파일정보 항목(106)에서 파일의 상태(107)를 변경시키기 위하여 매번 파일정보 항목(106)을 새로 생성하거나 파일정보 블럭(101) 전체를 삭제할 필 요가 없도록 상태값 변경절차를 설정할 수도 있다. 예컨대, 파일정보 항목(106)의 파일의 상태(107)를 미사용(FF)
Figure 111999012970560-pat00006
생성 중(8F)
Figure 111999012970560-pat00007
유효(4F)
Figure 111999012970560-pat00008
삭제 중(2F)
Figure 111999012970560-pat00009
삭제(OF)와 같은 절차로 변경할 수 있다.
이와 같이, 본 발명의 상세한 설명에서는 구체적인 실시예(들)에 관해 설명하였으나, 본 발명의 범주에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예(들)에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
결국, 본 발명에 의한 플래시 파일 시스템에 따르면 다음과 같은 이점(들)이 발생한다.
즉, 플래시 메모리 상에 독자적인 파일 시스템을 구성하여 별도의 파일 시스템을 사용하기 어려운 환경에서도 손쉽게 파일 단위의 데이터에 접근할 수 있다.
또한, 플래시 메모리에서 데이터를 읽거나 플래시 메모리에 데이터를 기록하는 도중 고장이 발생하는 경우에도 파일 시스템의 상태정보에 따라 파괴된 파일 시스템을 용이하게 복원할 수 있다.

Claims (4)

  1. 하나의 파일정보 블럭과 하나의 자유삭제 블럭 및 적어도 하나 이상의 데이터 블럭을 포함하고;
    상기 파일정보 블럭은 상기 파일정보 블럭의 상태정보를 나타내는 상태와, 파일 시스템의 식별자를 갖는 부트 레코드와, 상기 데이터 블럭에 기록되는 파일의 정보가 기록되는 적어도 하나 이상의 파일정보 항목을 포함하며;
    상기 자유삭제 블럭에는 상기 파일정보 블럭이 갱신될 때 상기 파일정보 블럭에 기록된 "유효"한 파일정보 항목만을 검출되어 저장되고, 상기 파일정보 블럭이 삭제된 후 저장된 상기 "유효"한 파일정보 항목이 상기 파일정보 블럭에 전송되어 갱신되고;
    상기 적어도 하나 이상의 데이터 블럭은 연속되는 주소를 갖는 데이터들이 기록되며;
    새로운 파일을 생성 및 기록할 경우, 상기 파일정보 블럭에 새로운 파일정보 항목이 할당됨과 동시에 상기 새로운 파일정보 항목의 상태가 "생성 중"으로 설정되고, 상기 새로운 파일에 대한 정보가 상기 새로운 파일정보 항목에 기록되며, 상기 새로운 파일을 기록할 적어도 하나 이상의 데이터 블럭을 할당받아 상기 파일정보 항목에 할당된 상기 적어도 하나 이상의 데이터 블럭의 주소가 기록된 후, 상기 새로운 파일이 상기 적어도 하나 이상의 데이터 블럭에 기록됨과 동시에 상기 파일정보 항목의 상태가 "유효"로 갱신되고;
    기존 파일을 수정할 경우, 새로운 파일정보 항목이 할당되고, 할당된 상기 파일정보 항목에 수정된 파일에 대한 정보가 기록되며, 상기 수정된 파일을 기록할 적어도 하나 이상의 데이터 블럭을 할당받아 상기 파일정보 항목에 할당된 상기 적어도 하나 이상의 데이터 블럭의 주소가 기록된 후, 상기 수정된 파일이 상기 적어도 하나 이상의 데이터 블럭에 기록됨과 동시에 상기 새로운 파일정보 항목의 상태가 "유효"로 설정되고, 수정 전의 기존 파일에 관련된 임의의 파일정보 항목이 삭제됨과 동시에 상기 파일정보 항목의 상태가 "삭제"로 설정되며;
    파일의 내용을 검색할 경우, 상기 적어도 하나 이상의 파일정보 항목 중 해당 파일의 내용에 대응하는 임의의 상기 파일정보 항목이 검출되어, 검출된 상기 파일정보 항목에 기록된 적어도 하나 이상의 데이터 블럭의 주소를 찾아 해당 주소의 상기 데이터 블럭에 기록된 데이터를 읽고;
    파일을 삭제하는 경우, 해당 파일에 대응하는 상기 파일정보 항목이 검출됨과 동시에 상기 파일정보 항목의 상태가 "삭제 중"으로 설정되고, 검출된 상기 파일정보 항목에 기록된 해당 파일에 관련된 적어도 하나 이상의 데이터 블럭의 주소를 찾아 해당 주소의 상기 데이터 블럭에 기록된 데이터가 삭제됨과 동시에 상기 파일정보 항목의 상태가 "삭제"로 설정되는 플래시 파일 시스템.
  2. 제 1 항에 있어서, 상기 파일 시스템은,
    상기 파일 시스템의 내용이 변경되는 도중 해당 작업이 중지되면, 상기 파일 시스템이 다시 시작된 후, 상기 적어도 하나 이상의 파일정보 항목을 검색하여 상기 적어도 하나 이상의 파일정보 항목 중 상기 파일정보 항목의 상태가 "삭제 중" 및 "생성 중"인 파일정보 항목이 검출되어, 검출된 상기 파일정보 항목의 상태가 모두 "삭제"로 갱신되도록 한 것을 특징으로 하는 플래시 파일 시스템.
  3. 제 2 항에 있어서, 상기 파일정보 항목은,
    해당 파일의 현재 상태를 나타내는 상태;
    상기 파일의 이름; 및
    상기 파일이 기록된 상기 적어도 하나 이상의 데이터 블럭의 주소를 포함하는 것을 특징으로 하는 플래시 파일 시스템.
  4. 제 2 항에 있어서, 상기 데이터 블럭은,
    상기 데이터 블럭의 사용여부를 나타내는 비트 맵 형태의 블럭 사용 맵을 포함하는 플래시 파일 시스템.
KR1019990044504A 1999-10-14 1999-10-14 플래시 파일 시스템 KR100703680B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019990044504A KR100703680B1 (ko) 1999-10-14 1999-10-14 플래시 파일 시스템
CNB001284304A CN1180349C (zh) 1999-10-14 2000-10-14 快闪文件***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990044504A KR100703680B1 (ko) 1999-10-14 1999-10-14 플래시 파일 시스템

Publications (2)

Publication Number Publication Date
KR20010037155A KR20010037155A (ko) 2001-05-07
KR100703680B1 true KR100703680B1 (ko) 2007-04-05

Family

ID=19615321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990044504A KR100703680B1 (ko) 1999-10-14 1999-10-14 플래시 파일 시스템

Country Status (2)

Country Link
KR (1) KR100703680B1 (ko)
CN (1) CN1180349C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941368B1 (ko) 2007-12-27 2010-02-11 한국전자통신연구원 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
JP3928724B2 (ja) * 2003-02-20 2007-06-13 ソニー株式会社 記録媒体の記録制御方法および記録媒体の記録制御装置
US7386700B2 (en) * 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system
KR100703727B1 (ko) 2005-01-12 2007-04-05 삼성전자주식회사 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
KR101102754B1 (ko) * 2005-02-28 2012-01-05 삼성전자주식회사 낸드 플래시 메모리 파일 시스템 및 낸드 플래시 메모리 시스템에서 파일 엑세스 방법
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
KR100726513B1 (ko) * 2005-12-29 2007-06-11 주식회사 팬택앤큐리텔 서버에 의한 단말기 소프트웨어의 무선 업데이트 방법
CN100481025C (zh) * 2007-02-08 2009-04-22 深圳万利达电子工业有限公司 一种nandflash文件***实现方法
CN101256536B (zh) * 2007-03-01 2010-05-26 创惟科技股份有限公司 闪存地址转换层***
TW200919448A (en) * 2007-10-17 2009-05-01 Silicon Motion Inc Storage device and method of accessing a status thereof
US8117377B2 (en) 2007-12-27 2012-02-14 Electronics And Telecommunications Research Institute Flash memory device having secure file deletion function and method for securely deleting flash file
US10209904B2 (en) 2013-04-09 2019-02-19 EMC IP Holding Company LLC Multiprocessor system with independent direct access to bulk solid state memory resources
CN106462510B (zh) * 2014-03-06 2019-12-13 伊姆西公司 具有独立直接接入大量固态存储资源的多处理器***
CN111949212B (zh) * 2020-07-10 2024-03-08 深圳宏芯宇电子股份有限公司 基于自定义开放通道ssd的文件***及文件管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930010981A (ko) * 1991-11-26 1993-06-23 가나이 쯔또무 플래시메모리를 사용한 기억장치
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム
JPH06266587A (ja) * 1993-03-16 1994-09-22 Nec Corp フラッシュメモリのファイル管理方式
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930010981A (ko) * 1991-11-26 1993-06-23 가나이 쯔또무 플래시메모리를 사용한 기억장치
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH06266587A (ja) * 1993-03-16 1994-09-22 Nec Corp フラッシュメモリのファイル管理方式
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941368B1 (ko) 2007-12-27 2010-02-11 한국전자통신연구원 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법

Also Published As

Publication number Publication date
CN1293404A (zh) 2001-05-02
CN1180349C (zh) 2004-12-15
KR20010037155A (ko) 2001-05-07

Similar Documents

Publication Publication Date Title
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
KR100703680B1 (ko) 플래시 파일 시스템
CN1307555C (zh) 数据存储装置
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
KR100952135B1 (ko) 순차적 기록만을 사용하는 플래시 관리 시스템
JP5603997B2 (ja) ストレージ装置及びデータ制御方法
US6385690B1 (en) Recording method, managing method, and recording apparatus
KR100987241B1 (ko) 메모리 장치 및 그 메모리 장치를 이용한 기록 재생 장치
JP4268396B2 (ja) 1回プログラム可能な不揮発性メモリデバイスのファイル管理
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
US20060020745A1 (en) Fat analysis for optimized sequential cluster management
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
CN108009098B (zh) 具有经压缩的正向映射的存储分层
KR20000048766A (ko) 비휘발성 메모리에서 파일의 연속 중복기재를 수행하는 방법
CN113568582B (zh) 数据管理方法、装置和存储设备
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
JP4130808B2 (ja) フォーマット方法
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
US20050149493A1 (en) Data recording apparatus and data recording method
CN111949212B (zh) 基于自定义开放通道ssd的文件***及文件管理方法
KR100638638B1 (ko) 플래시 메모리의 제어 방법
JPH1031611A (ja) 不揮発性メモリ記憶媒体用ファイルシステム
GB2391350A (en) Non-volatile memory which can be directly overwritten

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
LAPS Lapse due to unpaid annual fee