KR20090117654A - 파일 시스템 및 데이터 관리 방법 - Google Patents

파일 시스템 및 데이터 관리 방법 Download PDF

Info

Publication number
KR20090117654A
KR20090117654A KR1020090040160A KR20090040160A KR20090117654A KR 20090117654 A KR20090117654 A KR 20090117654A KR 1020090040160 A KR1020090040160 A KR 1020090040160A KR 20090040160 A KR20090040160 A KR 20090040160A KR 20090117654 A KR20090117654 A KR 20090117654A
Authority
KR
South Korea
Prior art keywords
data
area
storage area
accumulated data
erase
Prior art date
Application number
KR1020090040160A
Other languages
English (en)
Other versions
KR101067464B1 (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 후지쯔 마이크로일렉트로닉스 가부시키가이샤
Publication of KR20090117654A publication Critical patent/KR20090117654A/ko
Application granted granted Critical
Publication of KR101067464B1 publication Critical patent/KR101067464B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

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

Abstract

본 발명은, 플래시 메모리 내의 데이터의 소거 횟수를 감소시키는 구성을 갖는 파일 시스템 및 데이터 관리 방법을 제공하는 것을 목적으로 한다.
상기한 과제를 해결하기 위해, 입력 데이터를 반전하여 축적 데이터로 하는 데이터 제어부와, 축적 데이터를 저장하는 저장 영역과, 저장 영역의 사용 상황이 기록되는 테이블 부분으로 이루어지는 불휘발성 기억부와, 테이블 부분에 기록된 사용 상황에 따라서, 축적 데이터를 저장 영역에 저장하도록 불휘발성 기억부를 제어하는 제어부를 갖는 파일 시스템을 제공한다.

Description

파일 시스템 및 데이터 관리 방법{FILE SYSTEM AND DATA MANAGEMENT METHOD}
플래시 메모리를 이용한 파일 시스템 및 그 파일 시스템에서의 데이터 관리 방법에 관한 것이다.
플래시 메모리 단체의 기억 용량의 증대에 따라, 플래시 메모리를 주기억에 이용한 파일 시스템을 내장 또는 접속하여 사용하는 민생기기 및 산업기기가 증대하고 있다. 이와 같은 파일 시스템 중, 데이터를 파일 단위로 취급하는 기기(예컨대 퍼스널 컴퓨터)에 사용하는 파일 시스템으로서는, 소위, FAT(File Allocation Table)를 포함하는, FAT 파일 시스템이 많이 이용되고 있다.
여기서, FAT란, 데이터를 파일로서 관리할 때의 관리 효율의 향상을 도모할 목적으로, 플래시 메모리로 이루어지는 메모리 영역 내에 설치된 파일 관리 테이블이다. 또한, 파일이, 데이터의 집합, 즉 클러스터로 구성되어 있다고 생각하면, FAT란 클러스터 관리 테이블이라고도 할 수 있다.
또한, FAT 파일 시스템이란, 메모리 영역 내에, 파일을 축적하는 영역과, 파일 관리 테이블을 가지며, 클러스터의 사용 상태를 관리하는 파일 시스템이다.
그래서, 파일 관리 테이블의 영역에 "0"이 기록되어 있는 경우에는, 그것에 대응하는 클러스터가 비사용 상태인 것을 나타내고, "0" 이외가 기록되어 있는 경우에는, 그 클러스터가 사용 상태인 것을 나타낸다. 그리고, FAT 파일 시스템은, 그 클러스터의 사용 상황에 따라서, 파일을 관리한다.
그렇게 하면, 파일 축적 영역의 클러스터를 비사용 상태로부터 사용 상태로 할 때에는, 파일 관리 테이블 영역 내의 비트 중 어느 하나를 "1"로 해야 한다.
한편, 플래시 메모리에 있어서는, "1"이 기록된 상태는 소거 상태를 나타내고, 데이터를 기록하는 것에 의해 "0"의 상태로 한다.
그렇게 하면, 사용 상태(테이블 영역 중 어느 하나에 "O"이 기록되어 있는 상태)로부터, 비사용 상태(테이블 영역 내의 전체 비트를 "1"의 상태)로 할 때에는, 플래시 메모리에 데이터 소거 동작을 행하게 해야 한다.
또한, 플래시 메모리에서의 소거 단위는, 일정한 사이즈 단위로 행해지지만, 파일 관리 테이블 영역 내에서의 클러스터에 대한 사용 상황 표시 영역은 소거 단위보다 작다. 따라서, 소거 단위에는 복수의 사용 상황 표시 영역이 포함된다.
따라서, 새로운 클러스터의 사용 상태를 파일 관리 테이블 영역에 기록하기 위해서는, 파일 관리 테이블 영역 내의 데이터를 세이브시킨 후, 일단 모든 비트를 "1"로 하는 소거를 행하고, 그 후, 세이브한 파일 관리 영역의 데이터에 새로운 클러스터의 사용 상태를 추기하여 재기록해야 한다.
데이터의 세이브 횟수를 줄이기 위해, 하나의 소거 단위에 하나의 사용 상황 표시 영역을 갖게 한 것으로는, 플래시 메모리 내에서의 파일 관리 테이블이 차지하는 영역이 증대하여, 사용 효율이 저하되어 버린다.
그러나, 하나의 소거 단위에 복수의 사용 상황 표시 영역을 갖게 한 경우, 데이터의 변경이 있을 때마다, 소거와 기록을 반복하게 되어, 소거 동작 및 기록 동작이 그 소거 단위에 집중된다. 그렇게 하면, 그 소거 단위는 다른 부분보다 빠르게 열화되어 버린다.
그래서, 데이터를 구성하는 비트 중, "0"의 부분이 많은 경우에는, 플래시 메모리에, 데이터를 구성하는 비트의 논리를 반전시켜 데이터를 기록하는 것이 제안되어 있다. 그 결과, 소거 단위의 열화를 늦출 수 있다(예컨대 특허문헌 1 및 특허문헌 2를 참조.).
[특허문헌 1] 일본 특허 공개 제2005-157781호 공보
[특허문헌 2] 일본 특허 공개 평11-25002호 공보
데이터를 구성하는 비트의 논리를 반전시켜 플래시 메모리에 데이터를 기록하면, 기록 횟수는 감소한다. 그러나, 소거 횟수는 감소하지 않는다.
그래서, 본 발명의 목적은, 플래시 메모리 내의 데이터의 소거 횟수를 감소시키는 구성을 갖는 파일 시스템 및 데이터 관리 방법을 제공하는 것에 있다.
상기한 과제를 해결하기 위해 제공되는, 본 발명의 일측면은,
입력 데이터의 논리를 반전하여 축적 데이터로 하는 데이터 제어부와,
축적 데이터를 저장하는 저장 영역과, 저장 영역의 사용 상황이 기록되는 테이블 부분으로 이루어지는 불휘발성 기억부와,
테이블 부분에 기록한 사용 상황에 따라서, 축적 데이터를 저장 영역에 저장하도록 불휘발성 기억부를 제어하는 제어부를 포함하는 파일 시스템이다.
상기한 파일 시스템에서는, 테이블 부분에 기록된 사용 상황을 보고, 과거에서 사용한 또는 현재 사용되고 있는 저장 영역을 선택하여, 그 저장 영역에 축적 데이터가 저장된다. 따라서, 저장 영역 또는 테이블 부분의 일부에 소거 동작이 집중하지 않고, 모든 축적 데이터 저장 부분을 사용한 후, 소거 동작이 행해지게 된다. 그리고, 소거 영역 내의 축적 데이터의 소거 횟수가 감소하여, 그 소거 영역의 열화가 늦어진다.
이하, 본 발명의 실시예 1, 실시예 2, 및 실시예 3에 대해서 설명한다. 또한 본 발명은, 상기한 실시예에 한정되는 것이 아니다.
[실시예 1]
실시예 1은, 파일 시스템(내장 기기)에 관한 것이다. 그리고, 상기한 파일 시스템(내장 기기)은, 입력 데이터의 논리를 반전하여 축적 데이터로 하는 데이터 제어부와, 축적 데이터를 저장하는 영역과 축적 데이터의 저장 영역의 사용 상황이 기록되는 테이블 부분으로 이루어지는 불휘발성 기억부와, 테이블 부분에 기록된 사용 상황에 따라서, 축적 데이터를 저장 영역에 저장하도록 불휘발성 기억부를 제어하는 제어부를 포함하는 것을 특징으로 한다.
도 1에 의해, 실시예 1의 파일 시스템(10)(내장 기기) 및 파일 시스템(10)(내장 기기)과 데이터를 입출력하는 퍼스널 컴퓨터(50)가 도시되어 있다.
여기서, 도 1에는, 플래시 메모리(30)를 포함하는 파일 시스템(10)이, 애플리케이션 제어부(15), 파일 시스템 제어부(16), 데이터 제어부(17)를 포함하도록 도시되어 있다. 그러나, USB(Universal Serial Bus) 경유로 퍼스널 컴퓨터에 접속되는 USB 메모리 등의 외부 기억 장치의 경우는, 이들 제어부의 구성 요소는 포함되지 않아도 좋다. 그 경우, 퍼스널 컴퓨터(50)는 애플리케이션 제어 수단(51), 파일 시스템 제어 수단(52), 및 USB 호스트 드라이버(53)를 가지며, 애플리케이션 제어부(15), 파일 시스템 제어부(16), 데이터 제어부(17)와 유사한 제어를 행한다. 즉, 애플리케이션 제어 수단(51)은, 파일 시스템(10)을 구성하는 애플리케이션을 제어하는 수단이다. 파일 시스템 제어 수단(52)은 USB 경유로 파일 시스템(10)의 데이터를 판독하는 것이 가능한 수단이고, 파일 시스템 제어부(16)와 유사한 제어하는 수단이다. USB 호스트 드라이버(53)는 USB를 경유하여 접속되어 있는 파일 시스템(10)과 퍼스널 컴퓨터(50) 사이의 데이터 입출력을 제어하는 제어 수단이고, 데이터 제어부(17)와 유사한 제어를 행하는 수단이다.
한편, 파일 시스템(10)이 그것만으로 파일 시스템으로서 동작하는 경우는, 파일 시스템(10)은, 제어부(12), FLASH 메모리(30), 및 RAM(Random access memory)(40)으로 구성된다. 이 경우는, 제어부(12)에 포함되는, 애플리케이션 제어부(15), 파일 시스템 제어부(16), 데이터 제어부(17)가, 파일 시스템(10)의 동작을 뒤에 설명하는 바와 같이 제어한다. FLASH 메모리(30)는, 불휘발성 메모리이고, FAT 파일 시스템 영역(32), 소거 영역 관리 테이블(31), 및 다른 영역(33)을 포함한다. 그리고 FAT 파일 시스템 영역(32)은 축적 데이터를 저장하는 영역과, 그 저장 영역의 사용 상황을 나타내는 테이블 부분을 갖는다. 또한, 사용 상황이란, 축적 데이터를 저장하는 영역(클러스터)이 초기 상태인지, 과거에 사용한 상태인지, 또는 현재 사용하고 있는 상태인지를 나타내는 것이다. 다른 영역(33)은, 이용자에 의한 동작 설정에 관한 데이터를 저장하는 영역이다. 소거 영역 관리 테이블(31)은, 축적 데이터로 구성되는 데이터 파일의 상황을 관리하는 테이블이다. 또한, FLASH 메모리(30)에서는, "1"(비트 온)의 상태는 소거 상태이다. 또한, "O"(비트 오프)의 상태는 프로그램 상태이다. 또한, FLASH 메모리(30)의 회로는, 비트 데이터를 소거할 때는, 미리 정해진 범위의 소거 영역에 대해서 일괄하여 소거 상태로 하도록 설계되어 있다. 그리고, 소거 상태 직후의 상태는 초기 상태에 대응한다.
제어부(12)는 애플리케이션 제어부(15), 파일 시스템 제어부(16), 데이터 제어부(17), FLASH 드라이버(18), 및 USB 드라이버(19)로 구성되어 있다.
애플리케이션 제어부(15)는 파일 시스템(10)을 동작시키는 애플리케이션을 제어하고, 필요가 있으면, 다른 영역(33)에 대한 데이터의 기록 및 판독을 관리하는 제어부이다.
파일 시스템 제어부(16)는 FAT 파일 시스템 영역(32) 및 소거 영역 관리 테이블(31)에의 데이터의 기록 및 판독을 관리하는 제어부이다. 파일 시스템 제어부(16)는, 초기 상태에서는, 축적 데이터를 저장하는 부분 및 테이블부의 모든 비트를 "1"(비트 온)의 상태로 하도록, 데이터 제어부(17)를 제어하는 수단을 갖는다. 파일 시스템 제어부(16)는, 과거에서 사용된 저장 영역에 대응하는 테이블 부분에는, 사용 상황으로서, 그 테이블 부분의 모든 비트를 "0"(비트 오프)의 상태로 하고, 현재 사용하고 있는 저장 영역에 대응하는 테이블 부분에는, 사용 상황으로서, 테이블 부분 중 어느 하나의 비트를 "0"(비트 오프)의 상태로 하도록 데이터 제어부(17)를 제어하는 수단을 갖는다. 파일 시스템 제어부(16)는, FAT 파일 시스템 영역(32)에 축적 데이터를 저장할 때에, 테이블부에 의해 나타나 있는 사용 상황이 사용한 상태 또는 사용하고 있는 상태인 영역을 피하여, 저장 영역을 선택하고, 선택한 저장 영역에 축적 데이터를 기록하도록 제어하는 수단을 갖는다. 그리고, 파일 시스템 제어부(16)는, 모든 테이블 부분 및 축적 데이터를 저장하는 부분을 사용 상태로 한 후, 축적 데이터 저장 부분 및 테이블부를 소거하도록 데이터 제어부(17)를 제어하는 수단을 갖는다.
데이터 제어부(17)는, 파일 시스템 제어부(16) 및 애플리케이션 제어부(15)로부터의 지령에 의해 데이터의 기록 및 판독을 제어하는 제어부이다. 또한, 데이터 제어부(17)는 USB 드라이버(19)로부터의 입력 데이터의 논리를 반전하여 FLASH 메모리(30)에 출력한다. 반대로, 데이터 제어부(17)는, FLASH 메모리(30)로부터의 출력 데이터의 논리를 반전하여, USB 드라이버(19)에 출력 데이터를 출력한다. 또한, 데이터 제어부(17)는 FLASH 메모리(30)로부터 RAM(40)에의 데이터 재기록 처리를 제어한다.
FLASH 드라이버(18)는, 데이터 제어부(17)의 제어를 받아, FLASH 메모리(30)의 데이터 입출에 관한 동작을 제어하는 드라이버이다. 또한, FLASH 드라이버(18)는, FLASH 메모리(30)의 데이터 재기록 처리를 행할 때에, RAM(40)의 데이터의 입출력에 관한 동작을 제어하는 메모리 드라이버도 포함한다. 또한 RAM(40)은 FLASH 메모리(30)의 데이터 재기록 처리를 행하는 작업 영역을 갖는다.
FLASH 메모리(30)의 데이터 재기록 동작(28)시에는, FLASH 메모리(30)와 RAM(40) 사이의 데이터가 버스(34)를 통과한다. 퍼스널 컴퓨터(50)로부터 USB 경유로 데이터 입출력 동작(26)을 행할 때에는, USB 드라이버(19)와 데이터 제어부(17) 사이의 데이터가 버스(34)를 통과한다. 데이터 기록 및 판독 동작(27)시에는, 데이터 제어부(17)와 FLASH 메모리(30) 사이의 데이터가 버스(34)를 통과한다.
또한, 파일 시스템(10)과 퍼스널 컴퓨터(50) 사이의 데이터의 기록 및 판독은 USB 케이블(21)을 통해 행해진다.
상기로부터, 실시예 1의 파일 시스템은, 입력 데이터의 논리를 반전하여 축적 데이터로 하는 데이터 제어부(17)와, 축적 데이터를 저장하는 영역과 축적 데이터의 저장 영역의 사용 상황이 기록된 테이블 부분으로 이루어지는 불휘발성 기억부[FLASH 메모리(30)]와, 테이블 부분에 기록된 사용 상황에 따라서, 축적 데이터를 저장하는 영역을 이하와 같이 제어하는 제어부[파일 시스템 제어부(16)]를 갖는 파일 시스템이다. 그리고, 실시예 1의 파일 시스템의 제어부[파일 시스템 제어부(16)]는, 초기 상태에서는 테이블부를 "1"(비트 온)의 상태로 한다. 실시예 1의 파일 시스템의 제어부[파일 시스템 제어부(16)]는, 과거에서 사용된 저장 영역에 대응하는 테이블 부분에는, 사용 상황으로서, 그 테이블 부분의 모든 비트를 "0"(비트 오프)의 상태로 하고, 현재 사용하고 있는 저장 영역에 대응하는 테이블 부분에는, 사용 상황으로서, 테이블 부분 중 어느 하나의 비트를 "0"(비트 오프)의 상태로 한다. 또한, 실시예 1의 파일 시스템의 제어부[파일 시스템 제어부(16)]는, 사용된 또는 현재 사용하고 있는 상태인 영역을 피하여, 축적 데이터를 기록한다. 또한 실시예 1의 파일 시스템의 제어부[파일 시스템 제어부(16)]는, 모든 테이블 부분 및 축적 데이터 저장 영역이 과거에서 사용된 상태 또는 현재에서 사용 상태로 한 후, 축적 데이터 저장 영역 내의 축적 데이터를 소거하도록 제어하는 파일 시스템이다.
여기서, 불휘발성 메모리에 있어서, 축적 데이터를 저장하기 위해서는, 축적 데이터중의 "0"(비트 오프)의 상태를 프로그램해야 한다. 그래서, 축적 데이터를 재기록하기 위해서는, 일단 축적 데이터를 RAM(40) 내의 재기록 처리용 작업 영역 에 세이브시키고, 축적 데이터를 포함하는 소거 영역을 소거한 후, 재기록 후의 축적 데이터에 대응한 "O"(비트 오프)의 상태를 프로그램하게 된다. 그렇게 하면, 재기록 후의 축적 데이터를, 축적 데이터 저장 부분 내의 동일한 영역에 저장한 것으로는, 그 영역에 소거 동작이 집중된다. 그 결과, 불휘발 메모리의 소거 횟수가 많아져, 그 소거 영역의 데이터 축적 능력이 열화된다.
그러나, 실시예 1의 파일 시스템에서는, 테이블부에 기록되어 있는 사용 상황에 따라서, 축적 데이터가 재기록될 때마다, 축적 데이터 저장 영역이 이동한다. 그렇게 하면, 축적 데이터가 저장되어 있던 동일 부분에 대하여, 소거 동작이 행해지지 않고, 모든 축적 데이터 저장 부분을 사용한 후, 소거 동작이 행해지게 된다. 또한, 테이블부에서도, "O"(비트 오프)의 상태를 프로그램하는 부분이 한 지점에 집중하지 않는다. 축적 데이터를 저장하는 부분이 순차 이동해 가기 때문에, 그 영역에 대응하는 테이블 부분도 이동하기 때문이다. 따라서 테이블 부분에서도, 모든 테이블 부분이 사용된 후에, 테이블 부분의 소거 영역의 소거 동작이 행해지게 된다.
그 결과, 저장 영역 또는 테이블 부분의 일부에 소거 동작이 집중하지 않고, 모든 축적 데이터 저장 부분을 사용한 후, 소거 동작이 행해지게 된다. 소거 영역의 소거 횟수가 감소하여, 그 소거 단위의 열화가 늦어진다.
또한, 제1 경우로서, 초기 상태에 있어서, 축적 데이터 저장부 및 테이블부에서의 비트를 "O"(비트 오프)의 상태(프로그램 상태)로 한 경우에, 입력 데이터를 반전시키지 않고 파일 시스템에 데이터를 기록하는 경우를 생각한다. 우선, 소거 영역에 비해 축적 데이터를 저장하는 영역은 일반적으로 작다. 그래서, 인접하는 데이터를 유지하기 위해, 인접 데이터를 RAM(40)의 재기록 처리용 영역에 세이브시켜야 한다. 그 후, 소거를 행하고, 입력 데이터를 인접 데이터와 함께 기록해야 하여, 데이터 입력시에 여분의 시간을 요하여, 축적 데이터 저장부 및 테이블부에 부하가 걸린다.
계속해서, 제2 경우로서, 축적 데이터 저장부 및 테이블부에서의 비트를 "1"(비트 온)의 상태로 한 경우에, 입력 데이터를 반전시키지 않고 파일 시스템에 데이터를 기록하는 경우를 생각한다. 그렇게 하면, 데이터를 기록하지 않는 상태는 "O"으로 인식해야 하기 때문에, 파일 시스템으로부터 데이터를 판독할 때에, 축적 데이터를 저장하지 않는 영역으로부터 데이터를 판독할 때에, 데이터 기록이 없는 영역을 특정하여, "0"을 판독하도록 조작이 필요하다.
계속해서, 제3 경우로서, 축적 데이터 저장부 및 테이블부에서의 비트를 "1"(비트 온)의 상태로 한 경우에, 입력 데이터를 반전하여 파일 시스템에 데이터를 기록하는 경우를 생각한다. 추가하여 축적 데이터를 기록하는 경우에, "0"(비트 오프)의 상태(프로그램 상태)를 추가하는 것만으로 좋아, 제1 경우와는 달리, 소거에 관한 문제점이 없다. 또한, 데이터를 반전하여 판독하기 때문에, 데이터 기록이 없는 영역을 특정하지 않고, "0"을 판독할 수 있어, 제2 경우와 같은 문제점도 없다.
따라서, 실시예 1의 파일 시스템과 같이, 사용 상황이 과거에서 사용되었거나 또는 현재 사용하고 있는 상태인 저장 영역을 피하여, 축적 데이터의 재기록 및 신규 축적 데이터를 저장할 때에, 축적 데이터를 저장하는 영역을 이동하는 경우에는, 입력 데이터를 반전하여 축적 데이터로 하는 것이 바람직하다.
[실시예 2]
실시예 2는, 실시예 1의 파일 시스템에서의 데이터의 관리 방법에 관한 것이다. 그리고, 그 관리 방법은, 초기 상태에, 적어도 축적 데이터 저장부(66), 및 테이블부(64)에 속하는 비트에 모두 "1"을 기록하는 공정과, "0"이 기록된 테이블부(64)의 사용 상황 표시 영역에 대응하는 클러스터(60)를 피하여, 축적 데이터를 클러스터(60)에 저장하는 공정과, 그 후, 테이블부(64)에 사용 상황 데이터를 기록하는 공정과, 축적 데이터를 클러스터(60)로부터 배출할 때는, 테이블부(64)의 사용 상황 표시 영역에 모두 "O"을 기록하는 공정을 포함하는 것을 특징으로 하는 데이터의 관리 방법이다.
도 2에 의해, 실시예 1에서 도시한 FAT 파일 시스템 영역(32) 내의 기억 영역의 단위 영역, 즉 클러스터(60)를 어드레스순으로 도시한다.
FAT 파일 시스템 영역(32)은, 부트섹터부(63), 테이블부(64), 엔트리부(65), 축적 데이터 저장부(66)를 갖는다.
부트섹터부(63)는 FAT 파일 시스템 영역(32) 전체의 관리 정보를 포함하는 영역이다. 테이블부(64)는 도 1에 도시한 것과 동일한 것이고, 부트섹터부(63)에 계속되는 영역이다. 엔트리부(65)는 축적 데이터로 이루어지는 파일의 관리 정보를 포함하는 영역이고, 테이블부(64)에 계속되는 영역이다. 축적 데이터 저장부(66)는 도 1에 도시한 것과 동일한 것이고, 엔트리부(65)에 계속되는 영역이다.
FAT 파일 시스템 영역(32)은 복수의 소거 영역(61)으로 구성되어 있다. 또한 소거 영역(61)은 복수의 클러스터(60)로 구성되어 있다. 클러스터(60)는 복수의 섹터(62)로 구성되어 있다.
도 3에 의해, 실시예 2의 관리 방법에 대해서 설명한다. 도 3에 의하면, 실시예 2의 관리 방법은, 「초기 상태에, 축적 데이터 저장부(66) 및 테이블부(64)에 속하는 비트에 모두 "1"을 기록하는 초기화 공정(70)」과, 「축적 데이터를 클러스터(60)로부터 배출할 때에는, 그 클러스터(60)에 대응하는 테이블부(64)의 사용 상황 표시 영역에 모두 "0"을 기록하는 데이터 배출 공정(72)」과, 「"0"이 기록된 테이블부(64)의 사용 상황 표시 영역에 대응하는 클러스터(60)를 피하여, 축적 데이터를 저장하는 클러스터(60)를 선택하고, 축적 데이터를 클러스터(60)에 저장하며, 테이블부(64)에 사용 상황 데이터를 기록하는 기록 공정(71, 73)」을 갖는 것을 특징으로 하는 데이터의 관리 방법이다.
또한, 상기한 관리 방법은, 축적 데이터 저장부(66) 및 테이블부(64)의 모든 영역을, 과거에서 사용한 상태 또는 현재 사용하고 있는 상태로 했을 때는, 상기한 영역을 재이용하는 재이용 공정(74)을 포함한다.
또한, 도 3은 각 공정에서의 입력 데이터의 상태 및 파일 시스템(10) 내의 데이터의 상태를 나타내고 있다. 여기서 「2, 3, 4, 5」는 클러스터(60)의 어드레스를 도시한다. 또한, 도 3에는 클러스터(60)의 수를 4개로 가정하여, 각 공정의 상황이 도시되어 있지만, 뒤에 도 4 내지 도 7에 그 상세를 도시한다. 또한, 도 3에서는, 각 숫자는, 2진법에 의해 4비트가 나타내는 수를 나타내고, 단, 10을 초과 하는 숫자를 나타낼 때에는 순차, A, B, C, D, E, F로 나타낸다. 즉, 4비트 모두에 "1"을 기록하는 것은 "F"로 표기된다.
그래서, 초기화 공정(70)에서는, 어드레스「2, 3, 4, 5」의 클러스터(60)에, 입력 데이터「FFFF FFFF FFFF FFFF」가 입력되지만, 파일 시스템(10)에는 「O000 0000 0000 0000」이 입력된다.
기록 공정(71)에서는, 어드레스「2, 3, 4, 5」의 클러스터(60)에, 입력 데이터「FFFC FFFB O007 FFFF」가 입력되지만, 파일 시스템(10)에는 「0003 0004 FFF8 0000」이 입력된다.
데이터 배출 공정(72)에서는, 어드레스 「2, 3, 4, 5」의 클러스터(60)에, 입력 데이터 「0000 0000 0000 FFFF」가 입력되고, 파일 시스템(10)에는 어드레스(5)의 클러스터(60)에 「0000」가 입력되지만, 어드레스 2 내지 4의 클러스터(60)에는 입력이 행해지지 않는다.
기록 공정(73)에서는, 어드레스「2, 3, 4, 5」의 클러스터(60)에, 입력 데이터「0000 0000 0000 FFF9」가 입력되고, 파일 시스템(10)에는 어드레스 5의 클러스터(60)에 「0006」이 입력되지만, 어드레스 2 내지 4의 클러스터(60)에는 입력이 행해지지 않는다.
상기로부터, 파일 시스템(10)에 입력되는 데이터는, 데이터 제어부(17)에 의해, 입력 데이터에 대하여 논리의 반전이 행해진 데이터인 것을 알 수 있다.
도 4에 의해, 초기 상태에서의, 어드레스순으로 나열된 클러스터(60)의 내용을 도시한다. 그리고, 도 4에 있어서, 테이블부(64), 엔트리부(65), 축적 데이터 저장부(66)가 도시되어 있다. 또한, 상기한 테이블부(64)는, 영역(0)부터 영역(8)을 갖는다. 그리고, 테이블부(64)의 영역(2)부터 영역(8)까지의 영역에는, 파일 시스템(10)에 입력되는 데이터로서 보면, 논리 "0"이 기록된다. 즉, FLASH 메모리(30)에 입력되는 데이터로서 보면 , 논리 "1"이 기록된다. 또한, 클러스터 (60(2))부터 클러스터(60(8))는, 클러스터(60) 중, 테이블부(64)의 영역(2)부터 영역(8)까지 대응한 클러스터이다.
그래서, 도 3 및 도 4를 이용하여, 「초기 상태에, 축적 데이터 저장부(66) 및 테이블부(64)에 속하는 비트에 모두 "1"을 기록하는 초기화 공정(70)」을 설명한다.
즉, 도 3에 도시하는 초기화 공정(70)이란, 파일 시스템(10)의 초기 상태에, FLASH 메모리(30)에 입력되는 입력 데이터로서 보면, 축적 데이터 저장부(66) 및 테이블부(64)에 속하는 비트에 모두 "1"을 기록하는 공정이다.
도 5에 의해, 축적 데이터의 기록 상태 및 축적 데이터의 배출 상태에서의, 어드레스순으로 나열된 클러스터(60)의 내용을 도시한다. 또한, 클러스터 (60(2))부터 클러스터(60(8))는, 클러스터(60) 중, 테이블부(64)의 영역(2)부터 영역(8)까지 대응한 클러스터이다.
도 5a는, 축적 데이터 저장부(66)에 있어서, 2번째부터 7번째까지의 클러스터(60)에 축적 데이터가 기록되어 있는 것을 도시한다. 또한, 엔트리부(65)에는, 상기한 축적 데이터를 구성하고 있는 2개의 파일에 관한 정보가 기록되어 있다. 그 정보는, 예컨대 파일명, 파일 속성, 파일 사이즈, 갱신 일시, 선두 클러스터(60)의 번호를 포함한다. 테이블부(64)의 영역(2)부터 영역(7)에는, 상기한 번호의 클러스터(60)의 사용 상황이 표시되어 있다. 우선, 영역(2)에는 "3"이 기재되어 있고, 2번째 클러스터(60)로 파일이 구성되어 있으며, 계속되는 데이터는 3번째의 클러스터(60)에 저장되어 있는 것을 알 수 있다. 이어서, 영역(3)에는 "4"가 기재되어 있고, 계속되는 데이터는 4번째의 클러스터(60)에 저장되어 있는 것을 알 수 있다. 이어서, 영역(4)에는 "7"이 기재되어 있고, 계속되는 데이터는 7번째의 클러스터(60)에 저장되어 있는 것을 알 수 있다. 이어서, 영역(7)에는 "E"가 기재되어 있고, 7번째의 클러스터(60)까지의 데이터로, 파일을 구성하는 데이터가 종료되어 있는 것을 알 수 있다. 즉, 클러스터 60(2), 60(3), 60(4), 60(7)은 격자무늬로 해칭되어 있고, 동일 파일을 구성하는 데이터가 저장되어 있는 것을 도시한다.
또한, 영역(5)에는 "6"이 기재되어 있고, 2개째의 파일의 계속되는 데이터는 6번째의 클러스터(60)에 저장되어 있는 것을 알 수 있다. 이어서, 영역(6)에는, "E"가 기재되어 있고, 6번째의 클러스터(60)까지의 데이터로, 2개째의 파일이 종료하는 것을 알 수 있다. 즉, 클러스터(60(5), 60(6))는 경사무늬로 해칭되어 있고, 동일 파일을 구성하는 데이터가 저장되어 있는 것을 도시한다.
도 5b는, 축적 데이터 저장부(66)에서, 2개째의 파일이 삭제된 것을 도시한다. 또한, 엔트리부(65)는, 2개째의 파일에 관한 정보가 삭제된 것을 도시한다. 또한 테이블부(64)의 영역(5), (6)에는, "0"이 기록되고, 2개째의 파일에 관한 5번째의 클러스터(60)와 6번째의 클러스터(60)의 축적 데이터가 삭제된 것을 도시하고 있다. 즉, 클러스터(60(5), 60(6))는 해칭되어 있지 않고, 데이터가 저장되어 있지 않는 것을 도시한다.
그래서, 도 3 및 도 5을 이용하여, 「축적 데이터를 클러스터(60)로부터 배출할 때는, 그 클러스터(60)에 대응하는 테이블부(64)의 사용 상황 표시 영역에 모두 "0"을 기록하는 데이터 배출 공정(72)」을 설명한다.
즉, 도 3에 도시하는 데이터 배출 공정(72)이란, 축적 데이터를 클러스터(60)로부터 배출할 때에, FLASH 메모리(30)에 입력되는 데이터로서 보면, 축적 데이터를 배출하는 클러스터(60) 및 그 클러스터(60)에 대응하는 테이블부(64)의 영역에 속하는 비트에 "0"을 기록하는 공정이다. 한편, 파일 시스템(10)에 입력되는 데이터로서 보면, 상기한 클러스터(60) 및 테이블부(64)의 영역에는, "1"을 기록하게 된다.
도 6에 의해, 축적 데이터의 추가 기록 상태에서의, 어드레스순으로 나열된 클러스터(60)의 내용을 도시한다. 또한, 클러스터(60(2))부터 클러스터(60(8))는, 클러스터(60) 중, 테이블부(64)의 영역(2)부터 영역(8)까지 대응한 클러스터이다.
도 6a는, 축적 데이터 저장부(66)에 있어서, 2개째의 파일이 삭제된 것을 도시한다. 또한, 엔트리부(65)는, 2개째의 파일에 관한 정보가 삭제된 것을 도시한다. 또한, 테이블부(64)의 영역((5), (6))에는, "0"이 기록되고, 2개째의 파일에 관한 5번째의 클러스터(60)와 6번째의 클러스터(60)의 축적 데이터가 삭제된 것을 나타내고 있다. 즉, 클러스터(60(2), 60(3), 60(4), 60(7))은 격자무늬로 해칭되어 있고, 동일 파일을 구성하는 데이터가 저장되어 있는 것을 도시한다. 또한, 클러스터(60(5), 60(6))은 해칭되어 있지 않고, 데이터가 삭제되어 있는 것을 도시한다.
도 6b는, 도 6a에서 도시한 FAT 파일 시스템 영역(32)의 상태에서, 추가 파일을 구성하는 축적 데이터를, FAT 파일 시스템 영역(32)에 기록한 상태를 도시한다. 축적 데이터 저장부(66)에 있어서, 2번째부터 4번째, 7번째부터 9번째까지의 클러스터(60)에 축적 데이터가 기록되어 있는 것을 도시한다. 또한, 엔트리부(65)에는, 상기한 축적 데이터를 구성하고 있는 2개의 파일에 관한 정보가 기록되어 있다. 그 정보는, 예컨대 파일명, 파일 속성, 파일 사이즈, 갱신 일시, 선두 클러스터(60)의 번호를 포함한다. 테이블부(64)의 영역(2)부터 영역(9)에는, 상기 번호의 클러스터(60)의 사용 상황이 표시되어 있다. 우선, 영역(2)에는 "3"이 기재되어 있고, 2번째의 클러스터로 파일이 구성되어 있으며, 계속되는 데이터는 3번째의 클러스터에 저장되어 있는 것을 알 수 있다. 이어서, 영역(3)에는 "4"가 기재되어 있고, 계속되는 데이터는 4번째의 클러스터에 저장되어 있는 것을 알 수 있다. 이어서, 영역(4)에는 "7"이 기재되어 있고, 계속되는 데이터는 7번째의 클러스터에 저장되어 있는 것을 알 수 있다. 이어서, 영역(7)에는 "E"가 기재되어 있고, 7번째의 클러스터까지의 데이터로, 파일을 구성하는 데이터가 종료하는 것을 알 수 있다. 또한 영역(5) 및 영역(6)에는, "0"이 기재되어 있고, 5번째, 6번째의 클러스터의 축적 데이터는 삭제되어 있는 것을 알 수 있다. 이어서, 영역(8)에는 "9"가 기재되어 있고, 계속되는 데이터는 9번째의 클러스터에 저장되어 있는 것을 알 수 있다. 이어서, 영역(9)에는 "E"가 기재되어 있고, 9번째의 클러스터까지의 데이터로, 파일을 구성하는 데이터가 종료하는 것을 알 수 있다. 즉, 클러스터(60(2), 60(3), 60(4), 60(7))는 격자무늬로 해칭되어 있고, 동일 파일을 구성하는 데이터가 저장 되어 있는 것을 도시한다. 또한, 클러스터 60(8)과 그 다음 클러스터(60)는 경사무늬로 해칭되어 있고, 동일 파일을 구성하는 데이터가 저장되어 있는 것을 도시한다. 또한 클러스터(60(5), 60(6))는 경사 무늬로 해칭되어 있지 않고, 데이터가 삭제된 것을 도시한다.
그리고, 8번째부터 9번째까지의 클러스터(60)에 저장된 축적 데이터에 의해 구성되는 파일은, 5번째, 6번째의 클러스터(60)에 저장되어 있던 축적 데이터가 삭제된 후에 추가된 추가 파일이다. 그 추가 파일의 사이즈는, 삭제된 축적 데이터로 구성되어 있던 삭제 파일의 사이즈와 동일하다. 그러나, 5번째, 6번째의 클러스터(60)에 대응하는 테이블부(64)의 영역(5), (6)에는 "0"이 기록되어 있기 때문에, 5번째 및 6번째의 클러스터(60)를 피하여, 축적 데이터를 저장하는 클러스터(60)를 선택하고, 추가 파일에 관한 축적 데이터는, 8번째 및 9번째의 클러스터(60)에 기록되어 있다.
그래서, 도 3 및 도 6을 이용하여, 「"0"이 기록된 테이블부(64)의 사용 상황 표시 영역에 대응하는 클러스터(60)를 피하여, 축적 데이터를 저장하는 클러스터(60)를 선택하고, 축적 데이터를 클러스터(60)에 저장하며, 테이블부(64)에 사용 상황 데이터를 기록하는 공정(71, 73)」을 설명한다.
즉, 도 3에 도시하는 데이터 기록 공정(71, 73)이란, 축적 데이터를 클러스터(60)에 기록할 때에, 테이블부(64)에 있어서, "0"이 기록된 사용 상황 표시 영역에 대응하는 클러스터(60)를 피하여, 축적 데이터를 저장하는 클러스터(60)를 선택하고, 축적 데이터를 기록하는 공정이다.
도 3 및 도 7을 이용하여, 「축적 데이터 저장부(66) 및 테이블부(64)의 모든 영역을, 과거에서 사용한 상태 또는 현재 사용하고 있는 상태로 했을 때는, 상기한 영역을 재이용하는 재이용 공정(74)」을 설명한다.
도 7은, 테이블부(64)에 있어서, 테이블부(64)를 재이용하는 것을 도시한다. 테이블부(64)는, 예컨대 3구분의 소거 영역(61)으로 구성되어 있는 것을 도시한다.
도 7a에 의하면, 3구분의 소거 영역은, 과거에서 사용한 영역 또는 현재 사용하고 있는 영역인 것을 알 수 있다. 예컨대 상단의 소거 영역(61)에 있어서, "0"이 기록되어 있는 영역은, 대응하는 클러스터(60)로부터 축적 데이터를 배출한 것을 나타내고 있다. 즉, "0"이 기록되어 있는 영역은, 과거에서 사용한 영역이다. 그 이외의 영역, 예컨대 FFF8, FFF7로 표시되어 있는 영역은, 그 영역에 대응하는 클러스터(60)의 사용 상황을 표시하고 있고, 현재 사용하고 있는 영역이다.
도 7b는, 상단의 소거 영역(61)에 대해서, 과거에서 사용한 영역의 재이용을 도모하는 처리를 행한 것을 도시한다.
과거에서 사용한 영역의 재이용을 도모하기 위해서는, 이하와 같은 처리를 행한다. 우선, 현재 사용하고 있는 영역에 저장되어 있는 축적 데이터를, RAM(40)의 재기록 처리용 작업 영역에 기록하는 처리를 행한다. 계속해서, 소거 동작을 하도록 FLASH 메모리(30)를 제어하여, 상단의 소거 영역(61) 전체의 데이터를 소거하는 처리를 행한다. 이어서, 기록 동작을 행하도록 FLASH 메모리(30)를 제어하여, RAM(40)에 세이브시켜 둔 축적 데이터를, 상단의 소거 영역(61)에 복귀시키는 처리를 행한다.
그 결과, 상단의 소거 영역(61)에 있어서, "0"이 기록되어 었던 영역은, FFFF가 기록된 영역이 된다.
도 7c는, 중단의 소거 영역(61)에 대해서, 과거에서 사용한 영역의 재이용을 도모하는 처리를 행한 것을 도시한다. 상단의 소거 영역(61)에 대하여 행한 것과 유사한 처리를 행함으로써, 중단의 소거 영역(61)에 있어서, "0"이 기록되어 있었던 영역은, FFFF가 기록된 영역이 된다.
한편, FAT 파일 시스템 영역(32)의 축적 데이터 저장 영역(66)에 있어서도, 도 7b에서 설명한 처리와 같은 처리를 행한다. 그 결과, 현재 사용중인 클러스터(60)의 축적 데이터는 그대로 유지된다. 또한, 과거에서 사용된 클러스터(60)에는, FFFF가 기록된다.
그래서, 도 3 및 도 7에서 도시한, 「축적 데이터 저장부(66) 및 테이블부(64)의 모든 영역이, 과거에서 사용한 상태 또는 현재 사용하고 있는 상태로 되었을 때는, 상기한 영역을 재이용하는 재이용 공정(74)」을 설명한다.
즉, 도 3에 도시하는 재이용 공정(74)은, 축적 데이터 저장부(66) 및 테이블부(64)의 모든 영역이, 과거에서 사용한 상태 또는 현재 사용하고 있는 상태가 되었을 때에, 현재 사용하고 있는 영역의 축적 데이터는 그대로 유지하고, 한편 과거에서 사용한 영역에는 FFFF를 기록하는 공정이다.
도 8은 엔트리부(65)의 데이터가, 각 공정에서 어떻게 처리될지에 대해서 도시한 도면이다. 여기서, 각 공정이란, 초기화 공정(70), 기록 공정(71 및 73), 데이터 배출 공정(72), 재이용 공정(74)을 말한다.
또한, 도 8은, 각 공정에서의, 파일명 저장 영역에의 입력 데이터의 상태 및 파일 시스템(10) 내의 데이터의 상태를 나타내고 있다. 그리고, 도 8을 이용하여, 파일명 저장 영역은 2개로 가정하고, 엔트리부(65)에서의 데이터의 처리 상황을 설명한다.
초기화 공정(70)은, 초기 상태에, 엔트리부(65)에 속하는 비트에 모두 "1"을 기록하는 공정이다. 즉, 도 8에서 도시하는 바와 같이, 초기화 공정(70)에서, 입력 데이터「FFFFFFFFFFFFFFFFFFFFFF」와, 「FFFFFFFFFFFFFFFFFFFFFF」가, 2개의 파일명 저장 영역에 기록된다. 한편, 파일 시스템(10)에 대해서는, 상기의 입력 데이터의 논리가 반전된 데이터가 입력된다.
기록 공정(71 및 73)은, "0"이 기록된 영역을 피하여, 엔트리부(65)에 파일 정보를 기록하는 공정이다. 즉, 도 8에 도시하는 바와 같이, 기록 공정(71 및 73)에서, 입력 데이터 「BEBDBCDFDFDFDFDFABA7AB」와, 「BBBAB9DFDFDFDFDFABA7AB」가, 엔트리부(65)에 기록된다. 한편, 파일 시스템(10)에 대해서는, 상기의 입력 데이터의 논리가 반전된 데이터가 입력된다.
데이터 배출 공정(72)은, 축적 데이터를 클러스터(60)로부터 배출할 때는, 배출되는 축적 데이터로 구성되는 파일에 대응하는 파일 정보를 저장하고 있는 영역에 모두 "0"을 기록하는 공정이다. 즉, 도 8에 도시하는 바와 같이, 데이터 배출 공정(72)에서, 입력 데이터 「0000000000000000000000」이 2개째의 파일명 저장 영역에 기록된다. 한편, 파일 시스템(10)에 대해서는, 상기의 입력 데이터의 논리가 반전된 데이터가 입력된다.
또한, 재이용 공정(74)은, 엔트리부(65)의 모든 영역을, 과거에서 사용한 상태 또는 현재 사용하고 있는 상태로 했을 때는, 상기 영역을 재이용하는 공정이다. 재이용 공정(74)에 있어서는, 엔트리부(65)에 대하여, 도 7b에서 설명한 것과 유사한 처리를 행한다. 즉, 도 8에 도시하는 바와 같이, 재이용 공정(74)에 있어서, 입력 데이터 「FFFFFFFFFFFFFFFFFFFFFF」가 2개째의 파일명 저장 영역에 기록된다.
한편, 상기한 설명에서 이용한 데이터의 논리는, FLASH 메모리(30)에 기록할 때의 것이다. 따라서, 파일 시스템(10)에 입력되는 데이터는, 상기 데이터와 논리가 반전되어 있는 데이터이다.
이상으로부터, 실시예 2의 관리 방법은, 「초기 상태에, 축적 데이터 저장부(66) 및 테이블부(64)에 속하는 비트에 모두 "1"을 기록하는 초기화 공정(70)」과, 「축적 데이터를 클러스터(60)로부터 배출할 때에는, 그 클러스터(60)에 대응하는 테이블부(64)의 사용 상황 표시 영역에 모두 "0"을 기록하는 데이터 배출 공정(72)」과, 「"0"이 기록된 테이블부(64)의 사용 상황 표시 영역에 대응하는 클러스터(60)를 피하여, 축적 데이터를 클러스터(60)에 저장하고, 테이블부(64)에 사용 상황 데이터를 기록하는 기록 공정(71, 73)」을 갖는 것을 특징으로 하는 데이터의 관리 방법이다.
상기와 같은 데이터의 관리 방법을 FLASH 메모리(30)에 대하여 적용하면, 추가적으로, 파일을 구성하는 축적 데이터를 기록하는 경우에, FLASH 메모리(30)는 특정한 영역에 대하여, 소거 동작을 집중시키지 않는다.
상기한 관리 방법은, 「축적 데이터를 클러스터(60)로부터 배출할 때에는, 그 클러스터(60)에 대응하는 테이블부(64)의 사용 상황 표시 영역에 모두 "0"을 기록하는 데이터 배출 공정(72)」과, 「"0"이 기록된 테이블부(64)의 사용 상황 표시 영역에 대응하는 클러스터(60)를 피하여, 축적 데이터를 클러스터(60)에 저장하고, 테이블부(64)에 사용 상황 데이터를 기록하는 기록 공정(71, 73)」을 구비하기 때문에, FLASH 메모리(30)에 있어서, 현재 사용하고 있는 영역을 피할 뿐만 아니라, 과거에서 사용한 영역도 피하여, 축적 데이터의 기록이 행해진다. 따라서, 축적 데이터를 추가할 때마다 소거 동작을 행하지 않고, 모든 영역을 사용한 후에, 소거 동작이 행해진다.
그렇게 하면, 소거 횟수가 감소하고, 특정 영역에의 소거 동작의 집중이 없어지기 때문에, FLASH 메모리(30)의 조기의 열화가 방지되어, 원래의 수명을 다하게 된다.
[실시예 3]
실시예 3은, 실시예 1의 파일 시스템에서의 데이터의 관리 방법에 관한 것이다. 그리고, 그 관리 방법은, 「초기 상태에, 적어도 축적 데이터 저장부(66), 및 소거 영역 관리 테이블(31)에 속하는 비트에 모두 "1"을 기록하는 공정」과, 「축적 데이터를 클러스터(60)에 기록하는 공정」과, 「소거 영역 관리 테이블(31)에, 소거 영역 내의 클러스터(60)의 사용 상황에 따른, 클러스터 사용 상황 데이터를 기록하는 공정」과, 「클러스터 사용 상황에 따라서, 추가한 축적 데이터를 저장하는 클러스터(60)를 선택하고, 선택한 클러스터(60)에 축적 데이터를 추가 기록하는 공정」과, 「추가 축적 데이터 기록 후에, 소거 영역 관리 테이블(31)에 클러스터 사용 상황 데이터를 기록하는 공정」과, 「클러스터 사용 상황 데이터에 기초하여, 추가 축적 데이터를 기록할 수 없다고 판단할 때에는, 소거 영역에 대해서 데이터 소거 동작을 행하는 공정」을 갖는 것을 특징으로 하는 데이터의 관리 방법이다.
「초기 상태에, 적어도, 축적 데이터 저장부(66), 및 소거 영역 관리 테이블(31)에 속하는 비트에 모두 "1"을 기록하는 공정」은, FLASH 메모리(30)의 기억소자의 데이터를 소거하는 공정이다.
도 9에 의해, 「축적 데이터 기록 공정」 및 「클러스터 사용 상황 데이터를 기록하는 공정」을 설명한다. 또한, 「축적 데이터 기록 공정」은 「축적 데이터를 클러스터(60)에 기록하는 공정」이고, 「클러스터 사용 상황 데이터를 기록하는 공정」은 「소거 영역 관리 테이블(31)에, 소거 영역 내의 클러스터(60)의 사용 상황에 따른, 클러스터 사용 상황 데이터를 기록하는 공정」이다.
도 9는, 소거 영역(61), 소거 영역 관리 테이블(31), 및 테이블부(64)에 기록된 데이터를 도시한다. 또한, 도 9에서는, 복수의 소거 영역(61) 중, 공정의 설명에 필요한 소거 영역(61-1, 61-2, 61-3, 61-4)을 추출하여 도시하고 있다. 또한, 소거 영역(61-1, 61-2, 61-3, 61-4)은, 클러스터 번호 2부터 33으로 도시되는 클러스터(60)를 포함한다. FAT 파일 시스템 영역(32)에 기록된 데이터는, 상기한 소거 영역(61-1, 61-2, 61-3, 61-4) 내에 기록되어 있는 데이터를 나타낸다. 또한, 소거 영역(61-1, 61-2, 61-3, 61-4)에 기록하는 축적 데이터는, 파일 시스템(10)에 입력되는, 입력 데이터의 반전 데이터인 것은 물론이다.
그래서, 도 9에 의하면, 클러스터 번호 2부터 5로 도시되는 클러스터(60), 클러스터 번호 19부터 22로 도시되는 클러스터(60), 및 클러스터 번호 23부터 24로 도시되는 클러스터(60)에, 3개의 파일이 축적되어 있는 것을 도시한다. 또한, 소거 영역 관리 테이블(31)에, 소거 영역 61-1에 대하여, 「사용 파일수: 1」, 클러스터(60)에서의 축적 데이터의 축적 상태를 도시하는 「공간 있음」의 클러스터 사용 상황 데이터가 기록되어 있다. 또한, 소거 영역 61-2에 대하여, 「사용 파일수: 0」, 「공간 있음 」의 클러스터 사용 상황 데이터가 기록되어 있다. 또한, 소거 영역 61-3에 대하여, 「사용 파일수: 2」, 「공간 있음」의 클러스터 사용 상황 데이터가 기록되어 있다. 또한, 소거 영역 61-4에 대하여, 「사용 파일수: 0」, 「공간 있음」의 클러스터 사용 상황 데이터가 기록되어 있다.
테이블부(64)에서의, 축적 데이터가 기록되어 있는 클러스터(60)에 대응하는 영역에, 파일에 관한 구성 정보「0003, 0004, 0005, FFF8」, 「0014, 0015, 0016, FFF8」,「0018, FFF8」이 기록되어 있다. 그리고, 정보 「0003, 0004, 0005, FFF8」에 의하면, 클러스터 번호 2부터 클러스터 번호 5로 도시하는 클러스터(60)에 축적 데이터가 축적되어 있는 것을 알 수 있다. 「0003, 0004, 0005」에 의하면, 클러스터 번호 2로 나타내는 클러스터(60)에 기록된 축적 데이터의 계속되는 데이터가 클러스터 번호 3, 4, 5로 나타내는 클러스터(60)에 기록되어 있는 것을 알 수 있다. 「FFF8」에 의하면, 클러스터 번호 5로 나타내는 클러스터(60)에 기재되어 있는 축적 데이터가 최후의 축적 데이터인 것을 알 수 있다. 「0014, 0015, 0016, FFF8」,「0018, FFF8」에 의해서도, 유사한 것을 알 수 있다.
이상으로부터, 「축적 데이터를 클러스터(60)에 기록하는 공정」은, 데이터 제어부(17)에 의해, 파일 시스템(10)에 대한 입력 데이터의 논리를 반전시켜, 입력 데이터를 축적 데이터로 변환한 후, 축적 데이터를 FAT 파일 시스템 영역(32)의 소거 영역(61)에 기록하는 공정이다. 그 때, 하나의 파일을 구성하는 축적 데이터는, 1 집합의 데이터로서 취급된다.
「소거 영역 관리 테이블(31)에, 소거 영역 내의 클러스터(60)의 사용 상황에 따른, 클러스터 사용 상황 데이터를 기록하는 공정」을 이하에 설명한다. 여기서, 소거 영역(61)이란, FLASH 메모리(30)에 대하여 소거 동작했을 때에, 일괄하여 데이터가 소거되는 복수의 기억 소자로 이루어지는 소거 단위에 대응하는, 논리 어드레스에 의해 나타낸 데이터 영역이다. 또한, 그 소거 영역(61)은, 복수의 클러스터(60)로 구성되어 있다. 그래서, 사용 상황이란, 축적 데이터로 구성되는 파일이, 소거 영역(61)에 축적되어 있는지의 여부를 나타내는 것이다. 그리고, 사용 상황 데이터는, 소거 영역(61)마다 작성되고, 소거 영역(61)에 파일이 축적되어 있는지의 여부를 나타내는 데이터와, 축적되어 있는 파일수를 나타내는 데이터를 갖는다. 따라서, 클러스터 사용 상황 데이터를 기록하는 공정은, 소거 영역 관리 테이블(31)에, 소거 영역(61)에 파일이 축적되어 있는지의 여부를 나타내는 데이터와, 축적되어 있는 파일수를 나타내는 데이터를 기록하는 공정이다.
도 10은, 소거 영역(61-1), 소거 영역(61-2), 소거 영역(61-3), 소거 영역(61-4), 소거 영역 관리 테이블(31), 및 FAT 파일 시스템 영역(32) 내의 테이블부(64)에 기록된 데이터를 도시한다. 각각은, 도 9에 도시한 것과 유사한 것이다.
그래서, 도 10은 도 9에서의 파일 기록 상태에 추가로, 또한 파일을 FAT 파 일 시스템 영역(32)에 기록한 것을 도시한다.
도 10에 의하면, 추가하여 기록한 파일은, 클러스터 번호 10부터 17에 대응하는 클러스터(60) 및 클러스터 번호 26부터 클러스터 번호 30에 대응하는 클러스터(60)에 기록되어 있다. 즉, 소거 영역(61-2)과 소거 영역(61-4)의 일부에, 상기한 파일이 기록되어 있다. 그리고, 소거 영역(61-2)에 대하여, 클러스터 사용 상황데이터가, 「사용 파일수: 1」, 「공간 없음]으로 변경된다. 또한, 소거 영역 61-4에 대하여, 클러스터 사용 상황 데이터가 「사용 파일수: 1」, 「공간 있음」으로 변경된다.
또한, 테이블부(64)에는, 「000B, 000C, 000D, 000E, 000F, 0010, 0011, 001A, 001B, 001C, 001D, 001E, FFF8」의 파일 구성 정보가 추가된다.
상기로부터, 추가한 파일을 구성하는 「축적 데이터를 클러스터(60)에 기록하는 공정」은, 소거 영역 관리 테이블(31)에 있어서, 「사용 파일수: 0」, 「공간 있음」의 클러스터 사용 상황 데이터가 기록되어 있는 소거 영역(61)을 검색하고, 그 소거 영역(61)의 클러스터(60)에 축적 데이터를 기록하는 공정이다.
그리고, 그 기록에 대응하여 「소거 영역 관리 테이블(31)에, 소거 영역 내의 클러스터(60)의 사용 상황에 따른 클러스터 사용 상황 데이터를 기록하는 공정」은, 소거 영역 관리 테이블(31)에, 소거 영역(61)에 파일이 축적되어 있는지의 여부를 나타내는 데이터와, 축적되어 있는 파일수를 나타내는 데이터를 추가하여 기록하는 공정이다.
도 11은, 도 10에서의 파일 기록 공정에 추가로, 또한 4번째의 파일 내용의 추가를 FAT 파일 시스템 영역(32)에 기록한 상태를 도시한다.
도 11은 소거 영역(61-1), 소거 영역(61-2), 소거 영역(61-3), 소거 영역(61-4), 소거 영역 관리 테이블(31), 및 FAT 파일 시스템 영역(32) 내의 테이블부(64)에 기록된 데이터를 도시한다. 각각은, 도 9에 도시한 것과 유사한 것이다.
도 11에 의하면, 추가하여 기록한 파일의 내용은, 클러스터 번호 31부터 33에 대응하는 클러스터(60) 및 클러스터 번호 6부터 클러스터 번호 8에 대응하는 클러스터(60)에 기록되어 있다. 즉, 소거 영역(61-1)의 일부와 소거 영역(61-4)의 일부에, 상기한 파일 내용에 추가가 기록되어 있다. 그 경위를 상세히 설명하면, 4번째의 파일의 데이터가 축적되어 있는 최후의 클러스터 번호 30이 존재하는 소거 영역(61-4)의 빈 영역에 추가를 기록한다. 즉, 클러스터 번호 31부터 기록한다. 그리고, 소거 영역 61-4의 모든 영역에 기록한 것에 상관없이, 더 기록해야 하기 때문에, 소거 영역 관리 테이블(31)을 참조한다. 소거 영역 관리 테이블(31)의 정보 중에서, 「공간 있음」, 또한 「사용 파일수」가 최소의 소거 영역을 찾으면, 소거 영역(61-1)인 것을 알 수 있다. 그리고, 소거 영역(61-1)에 대하여 파일 내용의 추가의 기록을 행하고, 클러스터 사용 상황 데이터가, 「사용 파일수: 2」, 「공간 있음」으로 변경된다. 또한, 소거 영역 61-4에 대하여, 클러스터 사용 상황 데이터가 「사용 파일수: 1」, 「공간 없음]으로 변경된다.
또한, 테이블부(64)에는, 「000B, 000C, 000D, 000E, 000F, 0010, 0011, 001A, 001B, 001C, 001D, 001E, 001F, 0020, 0021, 0006, 0007, 0008, FFF8」의 파일 구성 정보가 추가된다.
도 12에 의해, 도 11에 도시하는 상태로 하기 위한, 「파일 내용을 추가 기록하는 공정」에 대한 처리를 흐름도를 이용하여 도시한다. 또한, 파일 내용의 추가에 따르는 「추가 축적 데이터 기록 후에, 소거 영역 관리 테이블(31)에 클러스터 사용 상황 데이터를 기록하는 공정」을 도시한다.
도 12에 의하면, 「파일 내용을 추가 기록하는 공정」은, 기존 파일의 추가 기록인지의 여부를 판단하는 단계 80과, 기존 파일의 최후의 데이터가 있는 클러스터(60)를 FAT 파일 시스템 영역(32)의 테이블부(64)에 기재된 내용으로부터 특정하는 단계 81과, 기존 파일의 최후의 데이터가 있는 클러스터(60)가 속하는 소거 영역(61)에 공간이 있는지의 여부를 판단하고, 공간이 있으면, 그 소거 영역(61)에 추가 축적 데이터를 기록하는 단계 82와, 추가 데이터를 기록할 수 있었는지의 여부를 판단하는 단계 83과, 기록한 후, 공간이 있는지의 여부를 판단하는 단계 84와, 추가 데이터를 기록할 수 없었을 때에, 소거 영역 관리 테이블(31)을 참조하는 단계 87과, 사용 파일수가 0인지의 여부를 판단하는 단계 89와, 소거 영역(61)에 공간이 있는지의 여부를 판단하는 단계 90과, 사용 파일수가 최소인 소거 영역(61)인지의 여부를 판단하는 단계 91과, 사용 파일수가 최소인 소거 영역(61)을 기억하는 단계 92와, 소거 영역 관리 테이블(31)을 참조하여, 단계 87 및 89부터 단계 92까지의 단계를 행하는 단계 88과, 사용 파일수가 0인 소거 영역(61) 또는 사용 파일수가 최소인 소거 영역(61)을 결정하고, 그 소거 영역(61)에 추가 파일을 기록하는 단계 85와, 소거 영역 관리 테이블(31)을 갱신하는 단계 86을 갖는다.
그 결과, 도 11에 도시하는 바와 같이, 소거 영역(61-1)의 일부와 소거 영 역(61-4)의 일부에, 상기한 파일 내용에 추가가 기록된다. 그리고, 소거 영역(61-1)에 대하여, 클러스터 사용 상황 데이터가, 「사용 파일수: 2」, 「공간 있음」으로 변경된다. 또한, 소거 영역(61-4)에 대하여, 클러스터 사용 상황 데이터가 「사용 파일수: 1」, 「공간 없음」으로 변경된다.
상기한 「파일 내용을 추가 기록하는 공정」에 의하면, 파일 내용을 추가 기록할 때에, 파일을 구성하는 축적 데이터를, 원래의 클러스터(60)에 재기록하는 것이 아니라, 증가하는 축적 데이터를 그 파일이 속하는 소거 영역(61)의 빈 영역에 기록한다. 빈 영역이 없는 경우는, 소거 영역 관리 테이블(31)을 참조하여, 다른 소거 영역(61)의 빈 영역에 증가하는 축적 데이터를 기록한다.
따라서, 원래의 클러스터(60)에 재기록하기 위해, 그 클러스터(60)가 속하는 소거 영역(61)의 소거 동작을 반복할 필요가 없다.
여기서, 소거 영역 관리 테이블(31)을 갱신하는 단계 86은, 파일 내용의 추가에 따르는 「추가 축적 데이터 기록 후에, 소거 영역 관리 테이블(31)에 클러스터 사용 상황 데이터를 기록하는 공정」이다. 그 결과, 도 11에 도시하는 바와 같이, 테이블부(64)에는, 「000B, 000C, 000D, 000E, 000F, 0010, 0011, 001A, 001B, 001C, 001D, 001E, 001F, 0020, 0021, 0006, 0007, O008, FFF8」의 파일 구성 정보가 추가된다.
도 13은, 재이용 전의 FAT 파일 시스템 영역(32)과, 재이용 후의 FAT 파일 시스템 영역(32)을 도시한다. 또한 FAT 파일 시스템 영역(32)은, 부트섹터(63), 테이블부(64), 엔트리부(65), 및 축적 데이터 저장부(66)를 갖는 점은 같다.
도 13에 의하면, 「클러스터 사용 상황 데이터에 기초하여, 추가 축적 데이터를 기록할 수 없다고 판단할 때는, 소거 영역에 대해서 데이터 소거 동작을 행하는 공정」은 이하와 같이 행해진다. 소거 영역 관리 테이블(31)에서는, 소거 영역 관리 테이블(31)의 전체 영역을 사용한 후, 다음에 사용하는 소거 영역 관리 테이블(31)의 영역이 다음의 소거 영역(61)으로 변할 때마다, 다음 소거 영역(61)을 소거하여 사용하고 있다. 테이블부(64)에 있어서는, 테이블부(64)의 전체 영역을 사용한 후, 다음에 사용하는 클러스터(60)에 대응하는 영역이 다음 소거 영역(61)으로 바뀔 때마다, 다음의 소거 영역(61)을 소거하여 사용하고 있다. 축적 데이터 저장부(66)에서는, 각 소거 영역(61)의 전체 영역을 사용한 후, 다음에 그 소거 영역(61)을 사용하는 순서가 되었을 때에, 소거하여 사용한다.
그 관리 방법은, 「초기 상태에, 적어도, 축적 데이터 저장부(66), 및 소거 영역 관리 테이블(31)에 속하는 비트에 모두 "1"을 기록하는 공정」과, 「축적 데이터를 클러스터(60)에 기록하는 공정」과, 「소거 영역 관리 테이블(31)에, 소거 영역 내의 클러스터(60)의 사용 상황에 따른 클러스터 사용 상황 데이터를 기록하는 공정」과, 「클러스터 사용 상황에 따라서, 추가의 축적 데이터를 저장하는 클러스터(60)를 선택하고, 선택한 클러스터(60)에 축적 데이터를 추가 기록하는 공정」과, 「추가 축적 데이터 기록 후에, 소거 영역 관리 테이블(31)에 클러스터 사용 상황 데이터를 기록하는 공정」과, 「클러스터 사용 상황 데이터에 기초하여, 추가 축적 데이터를 기록할 수 없다고 판단할 때는, 소거 영역에 대해서 데이터 소거 동작을 행하는 공정」을 갖는 것을 특징으로 하는 데이터의 관리 방법이다.
상기한 「파일 내용을 추가 기록하는 공정」에 의하면, 파일 내용을 추가 기록할 때에, 파일을 구성하는 축적 데이터를, 원래의 클러스터(60)에 재기록하는 것이 아니라, 증가하는 축적 데이터를 그 파일이 속하는 소거 영역(61)의 빈 영역에 기록한다. 빈 영역이 없는 경우는, 소거 영역 관리 테이블(31)을 참조하여, 다른 소거 영역(61)의 빈 영역에 증가하는 축적 데이터를 기록한다. 파일 내용을 변경하는 경우는, 빈 영역에 변경을 기록하고, 테이블부(64)를 갱신함으로써 실현한다.
따라서, 원래의 클러스터(60)에 재기록하기 위해, 그 클러스터(60)가 속하는 소거 영역(61)의 소거 동작을 반복할 필요가 없다. 따라서, 소거 동작이 감소하고, 또한 소거 동작을 그 소거 영역(61)에 대하여 집중시키지 않는다. 즉, 소거 영역의 소거 횟수가 감소하여, 그 소거 단위의 열화가 늦어진다. 그 결과, FLASH 메모리(30)의 기억 영역의 소거 동작에 의한 열화의 정도를 감소시킬 수 있다.
상기한 파일 시스템에 있어서는, 플래시 메모리 내의 저장 영역 또는 테이블 부분의 일부에 소거 동작이 집중하지 않고, 모든 축적 데이터 저장 부분을 사용한 후, 소거 동작이 행해지게 된다. 따라서, 본 발명의 일측면에 의하면, 소거 영역 내의 축적 데이터의 소거 횟수가 감소하여, 수명이 긴 파일 시스템을 제공할 수 있다.
도 1은 실시예 1의 파일 시스템(10) 및 파일 시스템과의 데이터를 입출력하는 퍼스널 컴퓨터(50)를 도시하는 도면.
도 2는 실시예 1에서 나타낸 FAT 파일 시스템 영역(32) 내의 클러스터(60)를 어드레스순으로 도시하는 도면.
도 3은 실시예 2의 관리 방법을 도시하는 도면.
도 4는 초기 상태에서의, 어드레스순으로 나열된 클러스터(60)의 내용을 도시하는 도면.
도 5는 축적 데이터의 기록 상태 및 축적 데이터의 배출 상태에서의, 어드레스순으로 나열된 클러스터(60)의 내용을 도시하는 도면.
도 6은 축적 데이터의 추가 기록 상태에서의, 어드레스순으로 나열된 클러스터(60)의 내용을 도시하는 도면.
도 7은 테이블부(64)에 있어서, 테이블부(64)를 재이용하는 것을 도시하는 도면.
도 8은 엔트리부(65)의 데이터가, 각 공정에서 어떻게 처리될지에 대해서 도시하는 도면.
도 9에 의해, 「축적 데이터 기록 공정」 및 「클러스터 사용 상황 데이터를 기록하는 공정」을 설명하는 도면.
도 10은 도 9에서의 파일 기록 상태에 추가로, 또한 파일을 FAT 파일 시스템 영역(32)에 기록한 것을 도시하는 도면.
도 11은 도 10에서의 파일 기록 공정에 추가로, 또한 4번째의 파일 내용의 추가를 FAT 파일 시스템 영역(32)에 기록한 상태를 도시하는 도면.
도 12에 의해, 도 11에 도시하는 상태로 하기 위한, 「파일 내용을 추가 기록하는 공정」에 대한 처리를 흐름도를 이용하여 도시하는 도면.
도 13은 재이용 전의 FAT 파일 시스템 영역(32) 및 소거 영역 관리 테이블(31)과, 재이용 후의 FAT 파일 시스템 영역(32) 및 소거 영역 관리 테이블(31)을 도시하는 도면.
<부호의 설명>
10: 파일 시스템 12: 제어부
15: 애플리케이션 제어부 16: 파일 시스템 제어부,
17: 데이터 제어부 18: FLASH 드라이버
19: USB 드라이버 26: 데이터 입출력 동작
27: 데이터 기록 및 판독 동작 28: 데이터 재기록 동작
30: FLASH 메모리 31: 소거 영역 관리 테이블
32: FAT 파일 시스템 영역 33: 다른 영역
40: RAM 50: 퍼스널 컴퓨터
51: 애플리케이션 제어 수단 52: 파일 시스템 제어 수단
53: USB 호스트 드라이버 60: 클러스터
61: 소거 영역 61-1, 61-2, 61-3, 61-4: 소거 영역
63: 부트섹터 64: 테이블부
65: 엔트리부 66: 축적 데이터 저장부
70: 초기화 공정 71: 기록 공정
72: 데이터 배출 공정 73: 기록 공정
74: 재이용 공정
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91: 단계

Claims (7)

  1. 입력 데이터의 논리를 반전하여 축적 데이터로 하는 데이터 제어부와,
    상기 축적 데이터를 저장하는 저장 영역과, 상기 저장 영역의 사용 상황이 기록되는 테이블 부분으로 이루어지는 불휘발성 기억부와,
    상기 테이블 부분에 기록된 상기 사용 상황에 따라서, 상기 축적 데이터를 상기 저장 영역에 저장하도록 불휘발성 기억부를 제어하는 제어부
    를 포함하는 것을 특징으로 하는 파일 시스템.
  2. 제1항에 있어서,
    상기 제어부는,
    상기 테이블 부분을 초기 상태로 하는 수단과,
    상기 불휘발성 기억부의 상기 저장 영역의 사용 상태에 따라서 상기 테이블 부분에 "0"의 상태를 기록하는 수단과,
    상기 테이블 부분에서의 "O"의 상태에 따라서, 상기 축적 데이터를 저장하는 상기 저장 영역을 선택하는 선택 수단과,
    상기 선택한 저장 영역에 상기 축적 데이터를 기록하는 수단과,
    모든 상기 저장 영역을 사용했을 때에, 상기 저장 영역 내의 축적 데이터를 소거하도록 제어하는 수단
    을 포함하는 것을 특징으로 하는 파일 시스템.
  3. 제2항에 있어서,
    상기 테이블 부분은, 상기 저장 영역의 상기 사용 상태에 따라서 "O"의 상태가 기록되는 사용 상태 표시 영역을 포함하고,
    상기 선택 수단은, 상기 사용 상태 표시 영역의 비트에 "0"이 기록되어 있을 때는, 상기 "0"이 기록되어 있는 사용 상태 표시 영역에 대응하는 상기 저장 영역을 피하여, 상기 저장 영역을 선택하는 것을 특징으로 하는 파일 시스템.
  4. 축적 데이터를 저장하는 저장 영역과, 상기 저장 영역의 사용 상황이 기록되는 테이블 부분으로 이루어지는 불휘발성 기억부와, 상기 테이블 부분에 기록된 상기 사용 상황에 따라서, 상기 축적 데이터를 상기 저장 영역에 저장하도록 제어하는 제어부를 포함하는 파일 시스템에서의 데이터의 관리 방법으로서,
    상기 저장 영역 및 상기 테이블 부분에 속하는 비트에 "1"을 기록하는 초기화 공정과,
    상기 축적 데이터를 상기 저장 영역으로부터 배출할 때에는, 상기 저장 영역에 대응하는 상기 테이블 부분의 사용 상황 표시 영역의 모든 비트에 "O"을 기록하는 데이터 배출 공정과,
    "0"이 기록된 상기 테이블 부분의 상기 사용 상황 표시 영역에 대응하는 상기 저장 영역을 피해, 상기 축적 데이터를 저장하는 상기 저장 영역을 선택하여, 상기 축적 데이터를 상기 선택한 저장 영역에 저장하는 공정과,
    상기 테이블 부분에 상기 사용 상황을 기록하는 기록 공정
    을 포함하는 것을 특징으로 하는 데이터의 관리 방법.
  5. 제4항에 있어서,
    상기 저장 영역의 모든 영역이, "0"이 기록된 상태 또는 상기 축적 데이터를 유지하는 상태가 되었을 때는, 상기 저장 영역에 속하는 비트에 "1"을 기록하는 공정을 더 포함하는 것을 특징으로 하는 데이터의 관리 방법.
  6. 축적 데이터를 저장하는 저장 영역과, 상기 저장 영역을 포함하는 소거 영역과, 상기 소거 영역의 사용 상황이 기록되는 소거 영역 관리 테이블로 이루어지는 불휘발성 기억부와, 상기 소거 영역 관리 테이블에 기록된 사용 상황에 따라서, 상기 축적 데이터를 상기 저장 영역에 저장하도록 제어하는 제어부를 포함하는 파일 시스템에서의 데이터의 관리 방법으로서,
    상기 축적 데이터를 저장하는 상기 저장 영역, 및 상기 소거 영역 관리 테이블에 속하는 비트에 모두 "1"을 기록하는 공정과,
    상기 축적 데이터를 상기 저장 영역에 기록하는 공정과,
    상기 소거 영역 관리 테이블에, 상기 소거 영역 내의 상기 저장 영역의 상기 사용 상황에 따른 사용 상황 데이터를 기록하는 공정과,
    상기 사용 상황 데이터에 따라서, 상기 축적 데이터를 저장하는 상기 저장 영역을 선택하여 상기 선택한 저장 영역에 상기 축적 데이터를 기록하는 축적 데이 터의 기록 공정과,
    상기 축적 데이터의 기록 공정 후에, 상기 소거 영역 관리 테이블에 상기 사용 상황 데이터를 기록하는 공정
    을 포함하는 것을 특징으로 하는 데이터의 관리 방법.
  7. 제6항에 있어서,
    상기 사용 상황 데이터에 기초하여, 상기 축적 데이터를 기록할 수 없다고 판단할 때는, 소거 영역에 대해서 데이터 소거 동작을 행하는 공정을 더 포함하는 것을 특징으로 하는 데이터의 관리 방법.
KR1020090040160A 2008-05-09 2009-05-08 파일 시스템 및 데이터 관리 방법 KR101067464B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008123651A JP2009271848A (ja) 2008-05-09 2008-05-09 ファイルシステム及びデータ管理方法
JPJP-P-2008-123651 2008-05-09

Publications (2)

Publication Number Publication Date
KR20090117654A true KR20090117654A (ko) 2009-11-12
KR101067464B1 KR101067464B1 (ko) 2011-09-27

Family

ID=41267751

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090040160A KR101067464B1 (ko) 2008-05-09 2009-05-08 파일 시스템 및 데이터 관리 방법

Country Status (3)

Country Link
US (1) US8200611B2 (ko)
JP (1) JP2009271848A (ko)
KR (1) KR101067464B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706788B (zh) * 2009-11-25 2012-11-14 惠州Tcl移动通信有限公司 一种嵌入式文件***的跨区访问方法
US11272918B2 (en) * 2018-06-27 2022-03-15 Boston Scientific Scimed, Inc. Endoscope attachment mechanism for use with suture based closure device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JP3175648B2 (ja) * 1997-07-07 2001-06-11 ソニー株式会社 記憶装置及びデータの書込み方法
JPH11272537A (ja) * 1998-03-20 1999-10-08 Victor Co Of Japan Ltd フラッシュ型メモリ及びその管理装置
JP4157294B2 (ja) * 2001-11-08 2008-10-01 富士通株式会社 欠陥ファイルの修復を可能とするファイルシステム
JP2006099797A (ja) * 2001-11-28 2006-04-13 Access Co Ltd メモリ制御方法および装置
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
JP2005157781A (ja) 2003-11-26 2005-06-16 Sony Corp 情報処理装置および情報処理方法
JP2006155461A (ja) * 2004-12-01 2006-06-15 Sony Corp 情報処理装置、情報処理方法、並びにプログラム
JP4766240B2 (ja) * 2005-11-08 2011-09-07 日本電気株式会社 ファイル管理方法、装置、およびプログラム
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
US7447836B2 (en) * 2006-02-14 2008-11-04 Software Site Applications, Limited Liability Company Disk drive storage defragmentation system
JP5184041B2 (ja) * 2007-10-16 2013-04-17 株式会社バッファロー ファイルシステム管理装置およびファイルシステム管理プログラム
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM

Also Published As

Publication number Publication date
KR101067464B1 (ko) 2011-09-27
US20090282091A1 (en) 2009-11-12
US8200611B2 (en) 2012-06-12
JP2009271848A (ja) 2009-11-19

Similar Documents

Publication Publication Date Title
US7783851B2 (en) Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
KR100818035B1 (ko) 저장 매체 상의 데이터 관리 및 데이터 관리 시스템과 컴퓨터 판독가능한 저장 매체
US10509570B2 (en) Method, device, and program for managing a flash memory for mass storage
JP4551958B2 (ja) 半導体記憶装置および半導体記憶装置の制御方法
TWI436369B (zh) 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統
JP3942612B2 (ja) 記憶装置、メモリ管理方法及びプログラム
US20140181378A1 (en) Control device, control method, and program
US20120246399A1 (en) Storage Device and Memory Controller
JP7095568B2 (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
KR101067464B1 (ko) 파일 시스템 및 데이터 관리 방법
US20100306455A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP3555456B2 (ja) フラッシュ型メモリの管理装置
US9465730B2 (en) Flash memory device
JP2004296014A (ja) 不揮発性メモリの消去回数平準化方法
JP4910402B2 (ja) 不揮発性メモリの書き換え装置及び書き換え方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2007219793A (ja) フラッシュメモリの書き込み方法
JP5707695B2 (ja) フラッシュディスク装置
JP2008171246A (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
JPH07111092A (ja) 不揮発性半導体記憶装置の制御方法
JPH06119252A (ja) 情報処理装置
JPH0896588A (ja) 半導体記憶装置

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: 20140901

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190906

Year of fee payment: 9