KR20090036905A - 파일을 효율적으로 관리할 수 있는 정보 처리 장치 - Google Patents

파일을 효율적으로 관리할 수 있는 정보 처리 장치 Download PDF

Info

Publication number
KR20090036905A
KR20090036905A KR1020070102205A KR20070102205A KR20090036905A KR 20090036905 A KR20090036905 A KR 20090036905A KR 1020070102205 A KR1020070102205 A KR 1020070102205A KR 20070102205 A KR20070102205 A KR 20070102205A KR 20090036905 A KR20090036905 A KR 20090036905A
Authority
KR
South Korea
Prior art keywords
data
cluster
file
area
stored
Prior art date
Application number
KR1020070102205A
Other languages
English (en)
Other versions
KR101433860B1 (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 KR1020070102205A priority Critical patent/KR101433860B1/ko
Priority to US12/248,957 priority patent/US8782353B2/en
Publication of KR20090036905A publication Critical patent/KR20090036905A/ko
Application granted granted Critical
Publication of KR101433860B1 publication Critical patent/KR101433860B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

여기에 개시된 정보 처리 장치는 기록 영역, 및 상기 기록 영역에 대한 쓰기 동작을 제어하는 제어부를 포함하고, 상기 기록 영역은 파일 데이터를 저장하는 데이터 영역; 및 상기 데이터 영역의 정보가 저장된 관리 정보 영역을 포함하고, 상기 제어부는 상기 관리 정보 영역에 저장된 상기 데이터 영역의 정보를 참조하여, 상기 기록 영역에 저장될 파일 데이터 중 미리 정해진 블록 크기의 양의 정수배에 해당하는 파일 데이터를 상기 데이터 영역에 블록 단위로 저장한다.

Description

파일을 효율적으로 관리할 수 있는 정보 처리 장치{INFORMATION PROCESS DEVICE CAPABLE OF MANAGING EFFICIENTLY FILE AND OPERATION METHOD THEREOF}
본 발명은 정보 처리 장치에 관한 것으로, 좀더 구체적으로는 파일을 효율적으로 관리할 수 있는 정보 처리 장치에 관한 것이다.
반도체 메모리, 자기 디스크, 광자기 디스크 등과 같은 기록매체의 기록영역에 저장되는 데이터의 관리는 파일 시스템에 의해 수행된다. 데이터를 저장하고 탐색하는 파일 시스템 중 FAT(File Allocation Table)(파일 할당 테이블) 파일 시스템은 모바일 장치 및 개인용 컴퓨터와 같은 정보 처리 장치에 일반적으로 사용되는 파일 시스템이다. FAT 파일 시스템은 파일의 관리정보인 파일 내용과 디렉토리 엔트리를 구성하는 데이터의 물리적 저장위치를 관리하기 위하여 파일 할당 테이블을 이용한다.
FAT 파일 시스템의 기록 영역은 파일 내용(이하, "파일 데이터"라 칭함)을 구성하는 데이터를 저장하기 위한 데이터 영역 및 데이터 영역에 저장된 파일 데이터의 정보를 저장하는 관리 정보 영역으로 구분된다. 데이터 영역은 클러스터(cluster)로 분할된다. 클러스터는 가장 작은 물리적 액세스 단위이다. 클러스터 의 크기는 주로 기억 장치의 볼륨의 크기에 따라서 2048 바이트~32768 바이트로 결정된다.
관리 정보 영역은 FAT 테이블을 포함한다. FAT 테이블은 클러스터들에 각각 대응되는 복수의 FAT 엔트리들을 포함한다. 각 FAT 엔트리들은 대응되는 클러스터들의 사용 여부를 표시하고, 데이터 영역에 저장된 파일 데이터의 위치를 연결 리스트 형식으로 표현한다. 파일들은 각각 디렉토리 엔트리라는 자료 구조로 표현되며, 관리 정보 영역에 할당되어 저장된다. 디렉토리 엔트리는 파일의 이름, 파일의 크기, 및 시작 클러스터 정보 등을 저장한다.
정보 처리 장치에서 FAT 파일 시스템을 이용하여 파일을 저장하는 동작을 설명하면 다음과 같다. 신규 파일을 데이터 영역에 저장할 경우, 먼저, 신규 파일에 대응하는 디렉토리 엔트리가 할당된다. 그리고, 파일 데이터를 기록하기 위해서 FAT 테이블을 참조하여 데이터 영역의 빈 클러스터가 검색되고, 빈 클러스터가 신규 파일에 할당된다. 할당된 빈 클러스터에 대응하는 FAT 테이블의 FAT 엔트리는 빈 클러스터가 사용상태로 표시되도록 업데이트되고, 할당된 빈 클러스터는 데이터를 저장한다. 이때 사용된 클러스터가 파일을 저장하기 위해 처음으로 사용된 시작 클러스터일 경우, 시작 클러스터의 위치는 디렉토리 엔트리에 저장된다.
파일 데이터의 크기가 클 경우, 파일 데이터는 복수의 클러스터들에 저장된다. 이러한 경우, 파일 데이터를 기록한 하나의 클러스터에 대응하는 FAT 엔트리는 동일한 파일 데이터를 기록하는 연속된 클러스터의 클러스터 번호를 저장한다. 예를 들어, 4개의 클러스터는 클러스터 번호 10부터 13으로 표시되며, 클러스터 번호 10부터 13은 빈 클러스터라고 가정한다. 파일 데이터는 4개의 클러스터에 저장될 수 있는 크기이다. 파일 데이터를 저장할 경우, 클러스터 번호 10은 빈 클러스터로 검색되고, 클러스터 번호 10에 대응되는 FAT 엔트리는 업데이트되며, 파일 데이터는 클러스터 번호 10에 저장된다. 클러스터 번호 10은 시작 클러스터이므로, 디렉토리 엔트리는 번호 10을 저장한다. 이후, 클러스터 번호 11이 빈 클러스터로 검색되며, 번호 11은 클러스터 번호 10에 대응하는 FAT 엔트리에 저장된다. 클러스터 번호 11에 대응되는 FAT 엔트리는 업데이트되며, 파일 데이터는 클러스터 번호 11에 저장된다. 이러한 동작은 파일 데이터의 저장이 완료될때까지 반복된다. 따라서, 번호 12는 클러스터 번호 11에 대응하는 FAT 엔트리에, 그리고 번호 13은 클러스터 번호 12에 대응하는 FAT 엔트리에 저장된다. 클러스터들에 대응하는 각 FAT 엔트리들에 저장되는 클러스터 번호는 링크 정보라 한다. 클러스터 번호 13은 파일 데이터의 마지막 데이터를 저장하며 클러스터 번호 13에 대응하는 FAT 엔트리는 동일한 파일 데이터의 끝을 식별하는 값으로서, 예를들어, "0xFFF"를 저장한다.
정보 처리 장치에서 FAT 파일 시스템을 이용하여 파일을 읽는 과정은 다음과 같다. 요청된 파일 이름 등으로부터 파일의 디렉토리 엔트리를 찾는다. 디렉토리 엔트리에 저장된 시작 클러스터 번호를 참조하여, 시작 클러스터 번호에 저장된 데이터를 로드한다. 시작 클러스터 번호에 대응되는 FAT 엔트리에 저장된 다음 클러스터 번호를 참조하여, 다음 클러스터 번호에 저장된 데이터를 로드한다. 전술한 쓰기 동작을 참조하면, 클러스터 번호 10부터 13에 대응하는 각 FAT 엔트리의 정보를 참조하여, 클러스터 번호 10부터 13까지의 데이터들이 각각 로드된다.
정보 처리 장치에서 FAT 파일 시스템을 이용하여 파일을 지우는 과정은 다음과 같다. 기록 영역은 복수의 블록들로 구성된 플래시 메모리 어레이로 가정한다. 잘 알려진 바와 같이 플레시 메모리는 블록 단위로 소거동작을 수행한다. 각 클러스터는 32K이고 각 플래시 메모리 블록은 128K일 경우, 한 메모리 블록은 4개의 클러스터로 구성된다. 이러한 경우, 파일 데이터의 저장은 클러스터 단위로 수행되므로, 한 메모리 블록에 서로 다른 파일 데이터가 저장될 수 있다. 예를 들어, 128K의 메모리 블록 중 두 개의 클러스터(62K)는 제 1 파일을 저장하고, 나머지 두 개의 클러스터(62K)는 제 2 파일를 저장할 수 있다. 제 1 파일의 삭제를 원하는 경우, 제 1 파일이 저장된 메모리 블록을 소거해야 한다. 그러나, 제 1 파일이 저장된 메모리 블록을 소거할 경우, 제 2 파일가 소거된다. 제 2 파일가 소거되는 것을 방지하기 위해 제 2 파일를 다른곳에 복사(copy)해 놓고, 제 1 파일이 저장된 메모리 블록을 소거한다.
전술한 쓰기 동작을 참조하면, 클러스터 단위로 쓰기 동작이 수행된다. 즉, 테이블을 참조하여, 클러스터 단위로 빈 영역을 검색하고, 테이블을 업데이트하며, 데이터를 저장한다. 파일이 클수록 이러한 동작이 많이 반복되므로, 쓰기 동작의 성능이 저하된다. 또한, 클러스터 단위로 빈 영역을 검색하므로, 데이터 영역의 사용 가능 영역을 찾는데 많은 시간이 소요된다.
전술한 읽기 동작을 참조하면, 클러스터 단위로 읽기 동작이 수행된다. 즉, FAT 테이블을 매번 참조하고, FAT 테이블이 가리키는 각각의 클러스터들을 따라가면서 읽기 동작이 수행된다. 파일이 클수록 이러한 동작이 계속 반복되므로, 읽기 동작의 성능이 저하된다.
전술한 소거 동작을 참조하면, 클러스터 단위로 파일 데이터가 저장되므로, 동일 블록에 서로 다른 데이터가 저장될 수 있다. 따라서, 소거동작시, 소거되지 않기를 원하는 데이터를 다른 영역에 저장시켜야하는 추가 동작이 필요하므로, 소거 동작의 성능이 저하된다.
클러스터 단위로 파일을 처리하는 FAT 파일시스템을 이용하는 정보처리 장치는 성능이 저하되는 문제점이 있다.
본 발명의 특징에 따른 정보 처리 장치는: 기록 영역; 및 상기 기록 영역에 대한 쓰기 동작을 제어하는 제어부를 포함하고, 상기 기록 영역은 파일 데이터를 저장하는 데이터 영역; 및 상기 데이터 영역의 정보가 저장된 관리 정보 영역을 포함하고, 상기 제어부는 상기 관리 정보 영역에 저장된 상기 데이터 영역의 정보를 참조하여, 상기 기록 영역에 저장될 파일 데이터 중 미리 정해진 블록 크기의 양의 정수배에 해당하는 파일 데이터를 상기 데이터 영역에 블록 단위로 저장한다.
이 실시 예에 있어서, 상기 관리 정보 영역은 상기 데이터 영역의 정보를 저장하기 위한 파일 할당 테이블을 포함하고, 상기 데이터 영역은 각각 복수의 클러스터들을 갖는 복수의 클러스터 블록들로 구성된 제 1 데이터 영역; 및 복수의 클러스터들로 구성된 제 2 데이터 영역을 포함하며, 상기 제어부는 블록 단위로 상기 쓰기 동작을 제어하는 제 1 제어부; 클러스터 단위로 상기 쓰기 동작을 제어하는 제 2 제어부; 및 상기 파일 데이터를 하나의 클러스터 블록 크기로 나누고, 클러스터 블록 크기의 양의 정수배에 해당하는 상기 파일 데이터를 상기 제 1 제어부에 제공하고 나머지에 해당하는 상기 파일 데이터를 상기 제 2 제어부에 제공하는 데이터 처리부를 포함한다.
이 실시 예에 있어서, 상기 파일 할당 테이블은 상기 데이터 영역의 복수의 클러스터들에 각각 대응되는 복수의 에프에이티 엔트리들을 포함하며, 상기 복수의 에프에이티 엔트리들은 각각 대응되는 클러스터들의 사용상태 정보를 저장한다.
이 실시 예에 있어서, 상기 파일 데이터가 저장된 상기 데이터 영역의 클러스터들에 대응되는 에프에이티 엔트리들은 각각 제 1 및 제 2 제어부의 제어에 의해 대응되는 클러스터들을 사용상태로 설정하며, 다음 데이터가 저장된 링크 정보를 저장한다.
이 실시 예에 있어서, 상기 제 1 제어부는 상기 제 1 데이터 영역의 클러스터 블록들 각각의 첫 번째 클러스터들에 대응하는 각 에프에이티 엔트리들에 저장된 클러스터 정보를 참조하여, 빈 클러스터 블록들을 검색하고, 상기 검색된 빈 클러스터 블록들에 상기 테이터 처리부로부터 제공받은 클러스터 블록 크기의 양의 정수배에 해당하는 파일 데이터를 블록 단위로 저장한다.
이 실시 예에 있어서, 상기 제 2 제어부는 상기 제 2 데이터 영역의 클러스터들에 각각 대응되는 에프에이티 엔트리들에 저장된 정보를 참조하여, 빈 클러스터들을 검색하고, 상기 검색된 빈 클러스터들에 상기 데이터 처리부로부터 제공받은 나머지에 해당하는 파일 데이터를 클러스터 단위로 저장한다.
본 발명의 다른 특징에 따른 파일 데이터가 클러스터 블록 단위로 저장되는 제 1 데이터 영역 및 파일 데이터가 클러스터 단위로 저장되는 제 2 데이터 영역으로 구성되는 데이터 영역을 갖는 정보 처리 장치의 쓰기 동작 방법은: (a) 쓰기 요청 파일 데이터의 크기를 한 클러스터 블록 크기로 나누는 단계; (b) 상기 제 1 데 이터 영역의 빈 클러스터 블록을 검색하는 단계; (c) 상기 쓰기 요청 파일 데이터의 크기를 한 클러스터 블록 크기로 나눈 몫에 해당하는 파일 데이터가 상기 검색된 빈 클러스터 블록에 블록 단위로 저장되는 단계; (d) 상기 제 2 데이터 영역의 빈 클러스터를 검색하는 단계; 및 (e) 상기 쓰기 요청 파일 데이터의 크기를 미리 설정된 블록 크기로 나눈 나머지에 해당하는 파일 데이터가 상기 검색된 빈 클러스터에 클러스터 단위로 저장되는 단계를 포함하고, 상기 클러스터 블록은 복수의 클러스터들로 구성된다.
이 실시 예에 있어서, 상기 (c) 단계는 상기 몫에 해당하는 파일 데이터의 저장이 완료되지 않을 경우, 상기 (a) 단계로 진행하며, 상기 (e) 단계는 상기 나머지에 해당하는 파일 데이터의 저장이 완료되지 않을 경우, 상기 (d) 단계로 진행한다.
본 발명의 다른 특징에 따른 기록 영역; 및 상기 기록 영역에 대한 읽기 동작을 제어하는 제어부를 포함하고, 상기 기록 영역은 파일 데이터가 저장된 데이터 영역; 및 상기 파일 데이터의 정보와 상기 데이터 영역의 정보가 저장된 관리 정보 영역을 포함하고, 상기 제어부는 상기 관리 정보 영역에 저장된 상기 파일 데이터 정보 및 상기 데이터 영역 정보를 참조하여, 상기 데이터 영역에 블록 단위로 저장된 파일 데이터를 블록 단위로 독출한다.
이 실시 예에 있어서, 상기 관리 정보 영역은 상기 데이터 영역의 정보가 저장된 파일 할당 테이블을 포함하고, 상기 데이터 영역은 각각 복수의 클러스터들로 구성된 복수의 클러스터 블록들을 갖는 제 2 데이터 영역; 및 복수의 클러스터들로 구성된 제 1 데이터 영역을 포함하며, 상기 제어부는 블록 단위로 상기 읽기 동작을 제어하는 제 1 제어부; 및 클러스터 단위로 상기 읽기 동작을 제어하는 제 2 제어부를 포함하고, 상기 관리 정보 영역은 임의의 영역에 상기 파일 데이터 정보를 저장한다.
이 실시 예에 있어서, 상기 파일 할당 테이블은 상기 데이터 영역의 복수의 클러스터들에 각각 대응되는 복수의 에프에이티 엔트리들을 포함하며, 상기 복수의 에프에이티 엔트리들은 각각 대응되는 클러스터들의 사용상태 및 링크 정보를 저장한다.
이 실시 예에 있어서, 상기 링크 정보는 다음에 독출된 파일 데이터가 저장된 클러스터를 가리킨다.
이 실시 예에 있어서, 상기 파일 데이터 정보는 시작 클러스터 정보를 포함하며, 상기 제 1 제어부는 상기 시작 클러스터 정보를 참조하여, 상기 파일 데이터가 저장된 시작 클러스터를 포함한 클러스터 블록의 데이터를 블록 단위로 독출한다.
이 실시 예에 있어서, 상기 제 1 제어부는 상기 파일 데이터가 저장된 상기 제 1 데이터 영역의 클러스터 블록들 각각의 마지막 클러스터들에 대응하는 에프에이티 엔트리들에 저장된 링크 정보를 참조하여, 다음 데이터가 저장된 클러스터 블록의 데이터를 블록 단위로 독출한다.
이 실시 예에 있어서, 상기 제 2 제어부는 상기 파일 데이터가 저장된 상기 제 2 데이터 영역의 클러스터들에 대응하는 에프에이티 엔트리들에 저장된 링크 정 보를 참조하여, 다음 데이터가 저장된 클러스터의 데이터를 클러스터 단위로 독출한다.
본 발명의 다른 특징에 따른 파일 데이터가 클러스터 블록 단위로 저장된 제 1 데이터 영역 및 파일 데이터가 클러스터 단위로 저장된 제 2 데이터 영역으로 구성되는 데이터 영역을 갖는 정보 처리 장치의 읽기 동작 방법은: (a) 읽기 요청 파일이 저장된 상기 제 1 데이터 영역의 클러스터 블록을 검색하는 단계; (b) 상기 제 1 데이터 영역의 클러스터 블록에 저장된 상기 읽기 요청 파일 데이터를 블록 단위로 독출하는 단계; (c) 상기 읽기 요청 파일이 저장된 상기 제 2 데이터 영역의 클러스터를 검색하는 단계; 및 (d) 상기 제 2 데이터 영역의 클러스터에 저장된 상기 읽기 요청 파일 데이터를 클러스터 단위로 독출하는 단계를 포함하고, 상기 클러스터 블록은 복수의 클러스터들로 구성된다.
이 실시 예에 있어서, 상기 (b) 단계는 상기 블록 단위의 독출 동작이 완료되지 않으면, 상기 (a) 단계로 진행하며, 상기 (d) 단계는 상기 클러스터 단위의 독출 동작이 완료되지 않으면, 상기 (c) 단계로 진행한다.
본 발명의 다른 특징에 따른 정보 처리 장치는: 각각 복수의 클러스터들을 갖는 복수의 클러스터 블록들로 구성되며, 파일 데이터를 블록 단위로 저장하는 제 1 데이터 영역 및 복수의 클러스터들로 구성되며, 파일 데이터를 클러스터 단위로 저장하는 제 2 데이터 영역으로 구성된 데이터 영역; 상기 제 1 데이터 영역에 블록 단위로 저장된 파일 데이터를 블록 단위로 소거하는 제 1 제어부; 및 상기 제 2 데이터 영역에 클러스터 단위로 저장된 파일 데이터를 복수의 클러스터들이 포함된 블록 단위로 소거하는 제 2 제어부를 포함하고, 상기 제 2 제어부는 상기 제 2 데이터 영역의 소거될 블록에 소거 미요청 파일 데이터가 저장되어 있을 경우, 소거 미요청 파일 데이터를 임의의 데이터 영역에 복사한다.
본 발명의 다른 특징에 따른 파일 데이터가 클러스터 블록 단위로 저장된 제 1 데이터 영역 및 파일 데이터가 클러스터 단위로 저장된 제 2 데이터 영역으로 구성되는 데이터 영역을 갖는 정보 처리 장치의 소거 동작 방법은: (a) 소거 요청 파일 데이터가 저장된 상기 제 1 데이터 영역의 클러스터 블록들을 블록 단위로 소거하는 단계; (b) 소거 요청 파일 데이터가 저장된 상기 제 2 데이터 영역의 소거될 블록에 소거 미요청 파일 데이터가 저장되어 있는지 검출하는 단계; 및 (c) 검출된 소거 미요청 파일 데이터를 임의의 데이터 영역에 복사하고, 상기 소거 요청 파일이 저장된 제 2 데이터 영역의 클러스터들을 소거하는 단계를 포함하고, 상기 클러스터 블록은 복수의 클러스터들로 구성된다.
본 발명에 따른 정보처리 장치의 파일 관리 시스템은 효율적으로 파일을 관리할 수 있으므로, 정보처리 장치의 성능은 향상된다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 상세히 설명한다.
도 1 은 본 발명의 실시 예에 따른 정보처리 장치의 블록도이다.
도 1 을 참조하면, 본 발명의 실시 예에 따른 정보처리 장치(100)는 기록 영 역(110), 제어부(120), 사용자 요청부(130), 입력부(140), 및 출력부(150)를 포함한다.
기록 영역(110)은 파일 내용(이하, "파일 데이터"라 칭함)을 구성하는 데이터를 저장하기 위한 데이터 영역(112) 및 데이터 영역에 저장된 파일 데이터의 정보를 저장하는 관리 정보 영역(111)으로 구분된다. 데이터 영역(112)은 복수의 클러스터들, 그리고 관리 정보 영역(111)은 클러스터들에 각각 대응되는 복수의 FAT엔트리들을 포함한다(이하, 도 2에서 상세히 설명됨). 데이터 영역(112)은 복수의 클러스터들을 각각 포함하는 복수의 블록들로 구성된 제 1 데이터 영역(1121) 및 복수의 클러스터들로 구성된 제 2 데이터 영역(1122)을 포함한다(이하, 도 2에서 상세히 설명됨). 제어부(120)는 제 1 제어부(121), 제 2 제어부(122), 및 데이터 처리부(123)를 포함한다.
사용자 요청부(130)는 파일 데이터의 쓰기, 읽기, 및 소거를 요청한다. 제어부(120)는 사용자 요청부(130)의 요청에 따라 기록영역(110)에 대한 파일 데이터의 쓰기, 읽기, 소거 동작을 제어한다. 제 1 제어부(121)는 제 1 데이터 영역(1121)에 대한 파일 데이터의 쓰기, 읽기, 및 소거 동작을 제어한다. 또한, 제 1 제어부(121)는 제 1 데이터 영역(1121)에 대응하는 관리 정보 영역(111)에 제 1 데이터 영역(1121)의 정보 및 파일 데이터의 정보를 저장한다. 제 2 제어부(122)는 제 2 데이터 영역(1122)에 대한 파일 데이터의 쓰기, 읽기, 및 소거 동작을 제어한다. 또한, 제 2 제어부(122)는 제 2 데이터 영역(1122)에 대응하는 관리 정보 영역(111)에 제 2 데이터 영역(1122)의 정보 및 파일 데이터의 정보를 저장한다. 제 어부(120)의 데이터 처리부(123)는 쓰기 동작시, 입력받은 파일의 크기를 미리 정해진 크기로 나누고, 그 결과로서 몫에 해당하는 파일 데이터를 제 1 제어부(121)로 제공하고 나머지에 해당하는 파일 데이터를 제 2 제어부(122)로 제공한다.
사용자 요청부(130)는 마우스, 키보드, 터치 패드 등으로 구성될 수 있다.
사용자 요청부(130)에 의해 특정 파일의 쓰기 요청이 있을 경우, 데이터 처리부(123)는 입력부(140)를 통해 해당 파일을 입력받는다. 쓰기 요청된 파일은 적어도 한 블록의 사이즈보다 크다. 데이터 처리부(123)는 미리 정해진 크기로 입력받은 파일의 사이즈를 나눈다. 미리 정해진 크기는 데이터 영역(112)을 구성하는 한 블록의 크기이다. 파일 사이즈를 N, 미리 정해진 크기는 F, 그리고 파일 사이즈를 미리 정해진 크기로 나눈 나머지를 R이라 할 경우, 다음과 같은 수식이 성립한다.
Figure 112007072783402-PAT00001
F는 n보다 크며, n은 양의 정수이다. 데이터 처리부(123)는 F의 n배에 해당하는 파일 데이터를 제 1 제어부(121)에 제공한다. F는 제 1 제어부(121)는 관리 정보 영역(111)에 저장된 데이터 영역(112)의 정보를 제공받고, 제공받은 데이터 영역(112)의 정보를 참조하여 제 1 데이터 영역(1121)의 빈 영역을 검색한다. 제 1 데이터 영역(1121)의 빈 영역은 블록 단위로 검색된다. 제 1 제어부(121)는 제공받은 파일 데이터를 검색된 제 1 데이터 영역(1121)의 빈 영역에 블록 단위로 저장한다. 제 1 제어부(121)는 사용된 클러스터들의 정보 및 파일 정보를 관리 정보 영 역(111)에 저장한다.
F의 n배에 해당하는 파일 데이터의 저장이 완료된 후, 데이터 처리부(123)는 나머지(R)에 해당하는 파일 데이터를 제 2 제어부(122)에 제공된다. 제 2 제어부(122)는 제 1 제어부(121)와 같이, 관리 정보 영역(111)의 정보를 참조하여 데이터 영역(112)의 제 2 데이터 영역(1122)의 빈 영역을 검색한다. 제 2 데이터 영역(1122)의 빈 영역은 클러스터 단위로 검색된다. 제 2 제어부(122)는 제공받은 파일 데이터를 제 2 데이터 영역(1122)의 빈 영역에 클러스터 단위로 저장하고, 사용된 클러스터들의 정보를 관리 정보 영역(111)에 저장한다.
전술한 쓰기 동작을 참조하면, 쓰기 동작은 빈 영역 검색, 데이터 저장, 및 클러스터 정보 저장동작으로 구성된다. 만약 모든 쓰기 동작이 클러스터 단위로 수행될 경우, 블록에 저장될 파일 데이터는 블록을 구성하는 클러스터 수만큼 쓰기 동작을 수행함으로써 데이터 영역에 저장된다. 그러나, 본 발명의 정보 처리 장치(100)는 제 1 데이터 영역(1121)에 대해서 블록 단위로 쓰기 동작을 수행함으로써, 파일 데이터 중 블록 크기로 저장될 수 있는 파일 데이터를 블록 단위로 저장한다. 따라서, 정보처리 장치(100)는 효율적으로 쓰기 동작을 수행할 수 있다.
사용자 요청부(130)에 의해 기록 영역(110)에 저장된 특정 파일의 읽기 요청이 있을 경우, 정보 처리 장치(100)의 동작을 설명하면 다음과 같다. 기록 영역(110)에 저장된 파일 데이터는 적어도 한 블록의 사이즈보다 크다. 제 1 제어부(121)는 관리 정보 영역(111)에 저장된 파일 데이터 정보 및 클러스터들의 정보를 참조하여, 제 1 데이터 영역(1121)에 블록 단위로 저장된 해당 파일 데이터를 블록 단위로 독출(read)한다. 제 1 제어부(121)에 의해 독출 동작이 완료된 후, 제 2 제어부(122)는 관리 정보 영역(111)에 저장된 클러스터들의 정보를 참조하여, 제 2 데이터 영역(1122)에 클러스터 단위로 저장된 읽기 요청 파일을 클러스터 단위로 독출(read)한다. 독출된 파일 데이터는 출력부(150)를 통해 출력된다. 참조되는 클러스터들의 정보들은 읽기 요청을 받은 특정 파일을 저장한 클러스터들의 정보이다.
만약 모든 읽기 동작이 클러스터 단위로 수행될 경우, 블록에 저장된 데이터를 독출 하기 위해 매번 관리 정보 영역(111)에 저장된 클러스터 정보를 참조되고 클러스터 단위로 데이터가 독출된다. 그러나, 본 발명의 정보처리 장치(100)는 제 1 데이터 영역(1121)에 대해서 블록 단위로 읽기 동작을 수행함으로써, 저장된 파일 데이터 중 블록 단위로 독출될 수 있는 데이터를 블록 단위로 독출한다. 따라서, 정보처리 장치(100)는 효율적으로 읽기 동작을 수행할 수 있다.
사용자 요청부(130)에 의해 기록 영역(110)에 저장된 특정 파일의 지우기 요청이 있을 경우, 제 1 제어부(121)는 제 1 데이터 영역(1121)에 블록 단위로 저장된 해당 파일 데이터를 블록 단위로 소거한다. 제 2 제어부(122)는 제 2 데이터 영역(1121)에 클러스터 단위로 저장된 해당 파일 데이터를 클러스터 단위로 소거한다. 제 1 제어부(121)에 의해 파일 데이터는 블록 단위로 저장되므로, 한 블록에 서로 다른 파일 데이터가 저장되지 않는다. 따라서, 소거 동작시, 블록 단위로 파일 데이터를 소거할 경우, 종래기술처럼 소거를 원하지 않는 데이터를 다른 영역에 복사하는 동작이 필요없게 된다. 그 결과, 정보처리 장치(100)는 효율적으로 소거 동작을 수행할 수 있다.
전술한 정보처리 장치(100)의 동작 설명을 참조하면, 제 2 제어부(122)의 동작은 클러스터 단위로 파일을 관리하는 종래 기술과 유사하다.
본 발명에 따른 정보처리 장치(100)에서 사용되는 파일 관리 시스템은 블록 단위 및 클러스터 단위로 파일을 관리한다. 블록 단위로 파일이 우선 관리되어야 하므로, 파일 크기는 데이터 영역(112)의 한 블록 사이즈 이상이여야 한다. 이러한 이유로, 본 발명의 정보처리 장치(100)는 큰 용량의 파일을 관리하는데 적합하다.
결과적으로, 본 발명의 정보처리 장치(100)의 파일 관리 시스템은 효율적으로 파일을 관리할 수 있다. 따라서, 정보처리 장치(100)의 성능은 향상된다.
DMB, MP3 플레이어, 동영상 플레이어등과 같은 기기는 주로 크기가 큰 멀티미디어 데이터를 사용한다. 본 발명의 정보처리 장치(100)의 동작을 참조하면, 이러한 큰 멀티 미디어 데이터는 블록 단위로 데이터를 처리하는 본 발명의 정보처리 장치에 의해 효율적으로 관리될 수 있을 것이다.
도 2는 도 1에 도시된 관리 정보 영역 및 데이터 영역의 구성을 도시한 도면이다.
도 2 를 참조하면, 관리 정보 영역(111)은 FAT(File Allocation Table)(또는, 파일 할당 테이블)영역(1111)을 포함하며, FAT 영역(1111)은 복수의 FAT 엔트리들(11~mn)을 포함한다. 데이터 영역(112)은 제 1 데이터 영역(1121) 및 제 2 데이터 영역(1122)을 포함한다. 제 1 데이터 영역(1121)은 복수의 블록들(Block11~Blockmn)을 포함하며, 복수의 블록들(Block11~Blockmn)은 각각 복수의 클러스터들로 구성된다. 제 2 데이터 영역(1122)은 복수의 클러스터들(CL11~CLmn)로 구성된다. 따라서, 실질적으로, 데이터 영역(112)은 복수의 클러스터들로 구성된다. 데이터 영역(112)의 복수의 클러스터들은 각각 FAT 영역(1111)의 복수의 FAT 엔트리들(11~mn)에 대응된다.
본 발명의 실시 예에서 블록들(Block11~Blockmn)은 각각 4개의 클러스터들로 구성되는 것으로 그리고 각 클러스터들의 크기는 32K로 가정한다. 블록들(Block11~Blockmn)은 각각 4개의 클러스터들로 구성되므로, 각 블록들(Block11~Blockmn)의 크기는 128K이다. 이하, 블록은 클러스터 블록이라 칭한다.
도 3 내지 도 5는 쓰기 동작시, 관리 정보 영역 및 데이터 영역의 상태를 설명하기 위한 도면이다.
도 3은 쓰기 동작시, 데이터 영역의 상태를 보여주는 도면이며, 도 3에 도시된 데이터 영역은 예시적으로 12개의 클러스터 블록(Block01~Block12)으로 구성된 제 1 데이터 영역(1121) 및 16개의 클러스터들(CL01~CL16)로 구성된 제 2 데이터 영역(1122)으로 설정되었다. 도 4는 도 3에 도시된 클러스터 블록들(block02~block05)을 클러스터 단위로 보여주는 도면이다. 도 4는 쓰기 동작에 따른 파일 데이터가 저장된 클러스터들에 각각 대응하는 FAT 엔트리들 및 디렉토리 엔트리의 상태를 보여주는 도면이다.
먼저, 도 3을 참조하면, 현재 제 1 파일(File)은 제 1 데이터 영역(1121)의 클러스터 블록(Block01) 및 제 2 데이터 영역(1122)의 클러스터들(CL01,CL02)에 저장되어 있다. 기타 다른 영역은 빈 상태이다.
정보 처리 장치(100)는 560K 크기의 제 2 파일(File2)을 저장하려고 한다. 제 2 파일의 크기(560K)를 한 블록 크기(128K)로 나눌 경우, 몫은 4이고 나머지는 48K이다. 한 블록 크기(128k)를 F, 몫을 n, 그리고 나머지를 R이라 할 경우, F의 n배는 블록 단위로 저장되고, R은 클러스터 단위로 저장된다. 따라서, 제 2 파일(File2)은 4개의 클러스터 블록 및 두 개의 클러스터에 저장될 수 있다.
제 2 파일(File2)의 쓰기 동작시, FAT 영역(1111)을 참조하여 제 1 데이터 영역(1121)의 빈 클러스터 블록이 검색된다. 구체적으로, 각 클러스터 블록들의 첫 번째 클러스터에 대응하는 FAT 영역(1111)의 각 FAT 엔트리들이 참조된다. 예를들어, 도 4를 참조하면, 클러스터 블록(Block02)의 첫 번째 클러스터(CL21)에 대응하는 FAT 엔트리를 참조한다. 클러스터 블록(Block02)은 빈 상태이므로, 첫 번째 클러스터(CL21)에 대응하는 FAT 엔트리는 클러스터(CL21)를 미사용상태로 설정한다. 블록 단위로 쓰기 및 지우기 동작이 수행되므로, 각 블록의 첫 번째 클러스터의 상태만을 검색함으로써 빈 클러스터 블록을 검색할 수 있다. 다른 블록들 역시, 전술한 방법으로 사용상태 여부가 검색된다.
클러스터 블록(Block02)이 빈 클러스터 블록으로 검색된 후, 클러스터 블록(Block02)에 제 2 파일(File2) 데이터가 저장된다. 구체적으로, 제 2 파일(File2) 데이터는 4 개의 클러스터들(CL21~CL24)에 연속적으로 저장된다. 이후, 다시 빈 클러스터 블록이 검색되고, 전술한 동작이 반복된다. 이러한 동작이 반복됨으로써 제 2 파일(File2) 데이터 중 512K는 클러스터 블록들(Block02~Block05)에 저장된다. 나머지 제 2 파일(File2) 데이터(560K 중 48K)는 종래 기술에서 설명된 것과 같은 방법으로 두 개의 클러스터들(CL03,CL04)에 저장된다.
도 5를 참조하면, 디렉토리 엔트리는 파일 이름, 시작 클러스터, 및 파일 사이즈등의 파일 데이터 정보를 저장한다. 종래기술을 참조하면, 제 2 파일(File2)의 쓰기 동작시 디렉토리 엔트리는 관리 정보 영역(111)에 할당되어 저장된다. 쓰기 동작시 제 2 파일(File2) 데이터가 저장되는 시작 클러스터는 클러스터 블록(Block02)의 첫 번째 클러스터(CL21)이다. 따라서, 클러스터 블록(Block02)의 첫 번째 클러스터(CL21)의 위치 정보가 도 5에 도시된 바와 같이, 디렉토리 엔트리의 시작 클러스터 영역(start cluster)에 저장된다. 또한, 도 5에 도시된 바와 같이, 파일 이름(File2)은 파일 이름영역(File name)에 그리고 파일 크기는 파일 사이즈 영역(File size)에 저장된다.
제 2 파일(File2) 데이터는 클러스터 블록들(Block02~05) 및 클러스터들(CL03~CL04)에 저장되어 있다. 클러스터 블록(Block02)에 제 2 파일 데이터가 연속적으로 저장된 후, 클러스터 블록(Block02)의 클러스터들(CL21~CL24)에 각각 대응되는 FAT 엔트리들(21~14)은 대응되는 클러스터들(CL21~CL24)을 각각 사용상태로 설정한다. 도 5에 도시하지 않았으나, 사용상태는 예를들어, "0" 또는 "1"로 표시될 수 있다. "0"으로 표시된 경우, 해당 클러스터는 미사용상태이며, "1"으로 표시된 경우, 해당 클러스터는 사용상태이다. 또한, FAT 엔트리들(21~23)은 각각 해당되는 링크 정보들(CL22~CL24)을 저장한다.
클러스터 블록(Block03)에 제 2 파일(File2) 데이터가 연속적으로 저장된 후, 클러스터 블록(Block03)의 클러스터들(CL31~CL34)에 각각 대응되는 FAT 엔트리 들(25~28)은 대응되는 클러스터들(CL21~CL24)을 각각 사용상태로 설정한다. 또한, 이전 클러스터 블록(Block02)의 마지막 클러스터(CL24)에 대응하는 FAT 엔트리(24)는 해당되는 링크 정보(CL31)를 저장한다. FAT 엔트리들(25~27)은 각각 해당되는 링크 정보들(CL32~CL34)을 저장한다.
클러스터 블록들(Block02~Block05)에 제 2 파일(File2) 데이터가 블록 단위로 저장된 후, 나머지 제 2 파일(File2) 데이터는 클러스터들(CL03,CL04)에 저장된다. 클러스터(CL03)에 제 2 파일(File2) 데이터가 저장된 후, 이전 클러스터 블록(Block05)의 마지막 클러스터(CL54)에 대응하는 FAT 엔트리(36)는 해당되는 링크 정보(CL03)를 저장한다. 이러한 동작을 반복함으로써, 제 2 파일(File2) 데이터는 클러스터(CL04)에 마지막으로 저장된다. 클러스터(CL04)에 제 2 파일(File2) 데이터의 마지막 데이터가 저장되었으므로, 더 이상 클러스터(CLO4)는 사용되지 않는다. 따라서, 클러스터(CL04)에 대응되는 FAT 엔트리(38)는 더 이상의 링크 정보가 없음을 표시한다. 예를들어, FAT 엔트리(38)는 "0xFFF"를 저장한다.
전술한 쓰기 동작을 참조하면, 정보처리 장치(100)는 제 1 데이터 영역(1121)에 대해서 블록 단위로 쓰기 동작을 수행함으로써, 파일 데이터 중 블록 크기로 저장될 수 있는 데이터를 블록 단위로 저장한다. 따라서, 정보처리 장치(100)는 효율적으로 쓰기 동작을 수행할 수 있다.
도 3 내지 도 5를 참조하여 읽기 동작이 설명될 수 있을 것이다.
제 2 파일(File2)에 대한 읽기 동작이 요구될 경우, 디렉토리 엔트리에 저장된 시작 클러스터(CL21)를 참조하여, 시작 클러스터(CL21)부터 클러스터(CL24)까지 연속적으로 데이터가 독출될 것이다. 즉, 클러스터 블록(Block02)에 저장된 데이터가 독출된다. 클러스터 블록(Block02)의 마지막 클러스터(CL24)에 대응하는 FAT 엔트리(24)에 저장된 링크 정보는 클러스터(CL31)를 가리킨다. 따라서, FAT 엔트리(24)에 저장된 링크 정보를 참조하여, 클러스터 블록(Block03)에 저장된 데이터가 블록 단위로 독출된다. 이러한 동작을 통해 제 1 데이터 영역(1121)의 클러스터 블록들(Block02~Block05)에 저장된 제 2 파일(File2) 데이터가 독출된다. 클러스터들(CL03,CL04)에 저장된 제 2 파일(File2) 데이터의 나머지 데이터는 종래 기술과 동일하게 독출될 것이다.
전술한 읽기 동작을 참조하면, 본 발명의 정보처리 장치(100)는 제 1 데이터 영역(1121)에 대해서 블록 단위로 읽기 동작을 수행함으로써, 저장된 파일 데이터 중 블록 단위로 독출될 수 있는 데이터를 블록 단위로 독출한다. 따라서, 정보처리 장치(100)는 효율적으로 읽기 동작을 수행할 수 있다.
도 6은 지우기 동작시, 관리 정보 영역 및 데이터 영역의 상태를 설명하기 위한 도면이다.
도 6을 참조하면, 제 1 데이터 영역(1121)의 클러스터 블록(Block01) 및 제 2 데이터 영역(1122)의 클러스터들(CL01,CL02)은 제 1 파일(File1) 데이터를 저장하고 있다. 제 1 데이터 영역(1121)의 클러스터 블록들(Block02~Block05) 및 제 2 데이터 영역(1122)의 클러스터들(CL03,CL04)은 제 2 파일(File2) 데이터를 저장하고 있다. 제 1 데이터 영역(1121)의 클러스터 블록들(Block06~Block08) 및 제 2 데이터 영역(1122)의 클러스터(CL05)는 제 3 파일(File3) 데이터를 저장하고 있다.
기록 영역(110)이 플래시 메모리일 경우, 소거동작은 블록 단위로 수행된다. 파일 데이터가 저장된 각 클러스터 블록들은 동일한 파일 데이터를 저장하고 있으며, 서로 다른 파일 데이터를 저장하지 않는다. 제 2 파일(File2)에 대한 소거 요청이 있을 경우, 제 1 데이터 영역(1121)의 클러스터 블록들(Block02~Block05)에 저장된 제 2 파일(File2) 데이터가 삭제된다.
제 2 파일(File2) 데이터의 나머지 데이터를 소거하기 위해서는 제 2 데이터 영역(1122)의 클러스터들(CL03,CL04)에 저장된 제 2 파일(File2) 데이터를 소거해야 한다. 그러나, 소거 동작은 블록 단위로 수행되므로, 제 2 파일(File2) 데이터를 소거하기 위한 소거 동작이 수행될 경우, 클러스터들(CL01~CL04)에 저장된 데이터가 소거된다. 따라서, 클러스터들(CL01,CL02)에 저장된, 소거를 원하지 않는 제 1 파일(File1) 데이터를 임의의 영역에 복사해야한다. 소거 미요청 제 1 파일(File1) 데이터는 데이터 영역(112)의 임의의 영역(CL15,CL16)에 복사된다. 이후, 제 2 데이터 영역(1122)에 저장된 제 2 파일(File2) 데이터를 소거하기 위해 클러스터들(CL01~CL04)에 저장된 데이터가 소거된다.
도 6에 도시된 바와 같이, 제 1 파일(File1) 데이터를 복사한 임의의 영역은 클러스터들(CL15,CL16)로 설정되었다. 그러나, 다른 영역에 설정될 수 있음은 이 분야의 통상의 지식을 가진 이들에게 자명하다.
전술한 소거 동작을 참조하면, 제 1 데이터 영역(1121)에서 블록 단위로 파일 데이터를 소거할 경우, 종래기술처럼 소거를 원하지 않는 데이터를 다른 영역에 복사하는 동작이 필요 없게 된다. 그 결과, 정보처리 장치(100)는 효율적으로 소거 동작을 수행할 수 있다.
결과적으로, 본 발명의 정보처리 장치(100)의 파일 관리 시스템은 효율적으로 파일을 관리할 수 있다. 따라서, 정보처리 장치(100)의 성능은 향상된다.
도 7은 본 발명의 실시 예에 따른 정보 처리장치의 쓰기 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 본 발명의 실시 예에 따른 정보 처리장치(100)는 쓰기 동작시, 쓰기 요청 파일의 크기를 블록 사이즈로 나눈다(S710). 단계(S720)에서 블록 사이즈의 n배(양의 정수)에 해당하는 쓰기 요청 파일을 저장하기 위해 관리 정보 영역(111)에 저장된 정보가 참조되어 제 1 데이터 영역(1121)의 빈 클러스터 블록이 검색된다. 블록 사이즈의 n배(양의 정수)에 해당하는 파일 데이터는 검색된 제 1 데이터 영역(1121)의 빈 클러스터 블록에 블록 단위로 저장된다(S730). 블록 사이즈의 n배(양의 정수)에 해당하는 파일 데이터의 저장이 완료되지 않을 경우(S740), 단계(S720) 및 단계(S730)들이 다시 수행된다.
블록 사이즈의 n배(양의 정수)에 해당하는 파일 데이터의 저장이 완료되면, 단계(S750)에서 나머지에 해당하는 쓰기 요청 파일을 저장하기 위해 관리 정보 영역(111)에 저장된 정보가 참조 되어 제 2 데이터 영역(1122)의 빈 클러스터가 검색된다. 나머지에 해당하는 파일 데이터는 검색된 제 2 데이터 영역(1121)의 빈 클러스터에 클러스터 단위로 저장된다(S760). 나머지에 해당하는 파일 데이터의 저장이 완료되지 않을 경우(S770), 단계(S750) 및 단계(S760)들이 다시 수행된다. 나머지에 해당하는 파일 데이터의 저장이 완료되면, 쓰기 동작은 종료된다.
도 8은 본 발명의 실시예에 따른 정보 처리장치의 읽기 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 본 발명의 실시예에 따른 정보 처리장치(100)는 읽기 동작시, 관리 정보 영역(111)에 저장된 데이터 영역 정보 및 파일 정보를 참조하여 제 1 데이터 영역(1121)에서 읽기 요청 파일이 저장된 클러스터 블록을 검색한다(S810). 검색된 제 1 데이터 영역(1121)의 클러스터 블록에 저장된 읽기 요청 파일 데이터는 블록 단위로 독출된다(S820). 제 1 데이터 영역(1121)에 저장된 읽기 요청 파일의 독출이 완료되지 않았을 경우(S830), 단계(S810) 및 단계(S820)들이 다시 수행된다.
제 1 데이터 영역(1121)에 저장된 읽기 요청 파일 데이터의 독출이 완료되면, 관리 정보 영역에 저장된 데이터 영역 정보가 참조되어 제 2 데이터 영역(1122)에서 읽기 요청 파일이 저장된 클러스터가 검색된다(S840). 검색된 제 2 데이터 영역(1122)의 클러스터에 저장된 읽기 요청 파일 데이터는 클러스터 단위로 독출된다(S850). 제 2 데이터 영역(1122)에 저장된 읽기 요청 파일 데이터의 독출이 완료되지 않았을 경우(S860), 단계(S840) 및 단계(S850)들이 다시 수행된다. 제 2 데이터 영역(1122)에 저장된 읽기 요청 파일 데이터의 독출이 완료되면, 읽기 요청 파일 데이터에 대한 읽기 동작은 종료된다.
도 9는 본 발명의 실시 예에 따른 정보 처리장치의 소거 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 본 발명의 실시 예에 따른 정보 처리장치(100)는 소거 동 작시, 단계(910)에서 소거 요청 파일이 저장된 제 1 데이터 영역(1121)의 블록들이 블록 단위로 소거한다. 제 1 데이터 영역(1121)에 저장된 소거 요청 파일의 소거 동작이 완료되면, 단계(S920)에서, 소거 요청 파일이 저장된 제 2 데이터 영역(1122)의 블록 영역에 다른 파일이 저장되어 있는지가 판별된다. 다른 파일이 저장되어 있을 경우, 소거 동작은 단계(S930)으로 진행하고, 단계(S930)에서 다른 파일 데이터는 임의의 데이터 영역에 복사된다. 단계(S920)에서 다른 파일이 저장되어 있지 않을 경우, 소거 동작은 단계(S940)으로 진행하고, 단계(S940)에서 소거 요청 파일이 저장된 제 2 데이터 영역의 블록이 블록 단위로 소거된다.
결과적으로, 전술한 본 발명의 정보처리 장치(100)의 동작을 참조하면, 정보처리 장치(100)의 파일 관리 시스템은 효율적으로 파일을 관리할 수 있다. 따라서, 정보처리 장치(100)의 성능은 향상된다.
이상에서와 같이 도면과 명세서에서 최적의 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1 은 본 발명의 실시 예에 따른 정보처리 장치의 블록도;
도 2는 도 1에 도시된 관리 정보 영역 및 데이터 영역의 구성을 도시한 도면;
도 3 내지 도 5는 쓰기 동작시, 관리 정보 영역 및 데이터 영역의 상태를 설명하기 위한 도면;
도 6은 지우기 동작시, 관리 정보 영역 및 데이터 영역의 상태를 설명하기 위한 도면;
도 7은 본 발명의 실시예에 따른 정보 처리장치의 쓰기 방법을 설명하기 위한 흐름도;
도 8은 본 발명의 실시예에 따른 정보 처리장치의 읽기 방법을 설명하기 위한 흐름도; 그리고
도 9는 본 발명의 실시예에 따른 정보 처리장치의 소거 방법을 설명하기 위한 흐름도이다.
<도면의 주요 부분에 대한 부호 설명>
100: 정보 처리 장치 110: 기록 영역
120: 제어부 130: 사용자 요청부
140: 입력부 150: 출력부
111: 관리 정보 영역 112: 데이터 영역
121: 제 1 제어부 122: 제 2 제어부
123: 데이터 처리부 1111: FAT 영역
1121: 제 1 데이터 영역 1122: 제 2 데이터 영역

Claims (19)

  1. 기록 영역; 및
    상기 기록 영역에 대한 쓰기 동작을 제어하는 제어부를 포함하고,
    상기 기록 영역은
    파일 데이터를 저장하는 데이터 영역; 및
    상기 데이터 영역의 정보가 저장된 관리 정보 영역을 포함하고,
    상기 제어부는 상기 관리 정보 영역에 저장된 상기 데이터 영역의 정보를 참조하여, 상기 기록 영역에 저장될 파일 데이터 중 미리 정해진 블록 크기의 양의 정수배에 해당하는 파일 데이터를 상기 데이터 영역에 블록 단위로 저장하는 정보 처리 장치.
  2. 제 1 항에 있어서,
    상기 관리 정보 영역은 상기 데이터 영역의 정보를 저장하기 위한 파일 할당 테이블을 포함하고,
    상기 데이터 영역은
    각각 복수의 클러스터들을 갖는 복수의 클러스터 블록들로 구성된 제 1 데이터 영역; 및
    복수의 클러스터들로 구성된 제 2 데이터 영역을 포함하며,
    상기 제어부는
    블록 단위로 상기 쓰기 동작을 제어하는 제 1 제어부;
    클러스터 단위로 상기 쓰기 동작을 제어하는 제 2 제어부; 및
    상기 파일 데이터를 하나의 클러스터 블록 크기로 나누고, 클러스터 블록 크기의 양의 정수배에 해당하는 상기 파일 데이터를 상기 제 1 제어부에 제공하고 나머지에 해당하는 상기 파일 데이터를 상기 제 2 제어부에 제공하는 데이터 처리부를 포함하는 정보 처리 장치.
  3. 제 2 항에 있어서,
    상기 파일 할당 테이블은 상기 데이터 영역의 복수의 클러스터들에 각각 대응되는 복수의 에프에이티 엔트리들을 포함하며, 상기 복수의 에프에이티 엔트리들은 각각 대응되는 클러스터들의 사용상태 정보를 저장하는 정보 처리 장치.
  4. 제 3 항에 있어서,
    상기 파일 데이터가 저장된 상기 데이터 영역의 클러스터들에 대응되는 에프에이티 엔트리들은 각각 제 1 및 제 2 제어부의 제어에 의해 대응되는 클러스터들을 사용상태로 설정하며, 다음 데이터가 저장된 링크 정보를 저장하는 정보 처리 장치.
  5. 제 3 항에 있어서,
    상기 제 1 제어부는 상기 제 1 데이터 영역의 클러스터 블록들 각각의 첫 번 째 클러스터들에 대응하는 각 에프에이티 엔트리들에 저장된 클러스터 정보를 참조하여, 빈 클러스터 블록들을 검색하고, 상기 검색된 빈 클러스터 블록들에 상기 테이터 처리부로부터 제공받은 클러스터 블록 크기의 양의 정수배에 해당하는 파일 데이터를 블록 단위로 저장하는 정보 처리 장치.
  6. 제 3 항에 있어서,
    상기 제 2 제어부는 상기 제 2 데이터 영역의 클러스터들에 각각 대응되는 에프에이티 엔트리들에 저장된 정보를 참조하여, 빈 클러스터들을 검색하고, 상기 검색된 빈 클러스터들에 상기 데이터 처리부로부터 제공받은 나머지에 해당하는 파일 데이터를 클러스터 단위로 저장하는 정보 처리 장치.
  7. 파일 데이터가 클러스터 블록 단위로 저장되는 제 1 데이터 영역 및 파일 데이터가 클러스터 단위로 저장되는 제 2 데이터 영역으로 구성되는 데이터 영역을 갖는 정보 처리 장치의 쓰기 동작 방법은:
    (a) 쓰기 요청 파일 데이터의 크기를 한 클러스터 블록 크기로 나누는 단계;
    (b) 상기 제 1 데이터 영역의 빈 클러스터 블록을 검색하는 단계;
    (c) 상기 쓰기 요청 파일 데이터의 크기를 한 클러스터 블록 크기로 나눈 몫에 해당하는 파일 데이터가 상기 검색된 빈 클러스터 블록에 블록 단위로 저장되는 단계;
    (d) 상기 제 2 데이터 영역의 빈 클러스터를 검색하는 단계; 및
    (e) 상기 쓰기 요청 파일 데이터의 크기를 미리 설정된 블록 크기로 나눈 나머지에 해당하는 파일 데이터가 상기 검색된 빈 클러스터에 클러스터 단위로 저장되는 단계를 포함하고,
    상기 클러스터 블록은 복수의 클러스터들로 구성되는 정보 처리 장치의 쓰기 동작 방법.
  8. 제 7 항에 있어서,
    상기 (c) 단계는 상기 몫에 해당하는 파일 데이터의 저장이 완료되지 않을 경우, 상기 (a) 단계로 진행하며,
    상기 (e) 단계는 상기 나머지에 해당하는 파일 데이터의 저장이 완료되지 않을 경우, 상기 (d) 단계로 진행하는 정보처리 장치의 쓰기 동작 방법.
  9. 기록 영역; 및
    상기 기록 영역에 대한 읽기 동작을 제어하는 제어부를 포함하고,
    상기 기록 영역은
    파일 데이터가 저장된 데이터 영역; 및
    상기 파일 데이터의 정보와 상기 데이터 영역의 정보가 저장된 관리 정보 영역을 포함하고,
    상기 제어부는 상기 관리 정보 영역에 저장된 상기 파일 데이터 정보 및 상기 데이터 영역 정보를 참조하여, 상기 데이터 영역에 블록 단위로 저장된 파일 데 이터를 블록 단위로 독출하는 정보 처리 장치.
  10. 제 9 항에 있어서,
    상기 관리 정보 영역은 상기 데이터 영역의 정보가 저장된 파일 할당 테이블을 포함하고,
    상기 데이터 영역은
    각각 복수의 클러스터들로 구성된 복수의 클러스터 블록들을 갖는 제 2 데이터 영역; 및
    복수의 클러스터들로 구성된 제 1 데이터 영역을 포함하며,
    상기 제어부는
    블록 단위로 상기 읽기 동작을 제어하는 제 1 제어부; 및
    클러스터 단위로 상기 읽기 동작을 제어하는 제 2 제어부를 포함하고,
    상기 관리 정보 영역은 임의의 영역에 상기 파일 데이터 정보를 저장하는 정보 처리 장치.
  11. 제 10 항에 있어서,
    상기 파일 할당 테이블은 상기 데이터 영역의 복수의 클러스터들에 각각 대응되는 복수의 에프에이티 엔트리들을 포함하며, 상기 복수의 에프에이티 엔트리들은 각각 대응되는 클러스터들의 사용상태 및 링크 정보를 저장하는 정보 처리장치.
  12. 제 11 항에 있어서,
    상기 링크 정보는 다음에 독출된 파일 데이터가 저장된 클러스터를 가리키는 정보 처리 장치.
  13. 제 10 항에 있어서,
    상기 파일 데이터 정보는 시작 클러스터 정보를 포함하며, 상기 제 1 제어부는 상기 시작 클러스터 정보를 참조하여, 상기 파일 데이터가 저장된 시작 클러스터를 포함한 클러스터 블록의 데이터를 블록 단위로 독출하는 정보 처리 장치.
  14. 제 11 항에 있어서,
    상기 제 1 제어부는 상기 파일 데이터가 저장된 상기 제 1 데이터 영역의 클러스터 블록들 각각의 마지막 클러스터들에 대응하는 에프에이티 엔트리들에 저장된 링크 정보를 참조하여, 다음 데이터가 저장된 클러스터 블록의 데이터를 블록 단위로 독출하는 정보 처리 장치.
  15. 제 11 항에 있어서,
    상기 제 2 제어부는 상기 파일 데이터가 저장된 상기 제 2 데이터 영역의 클러스터들에 대응하는 에프에이티 엔트리들에 저장된 링크 정보를 참조하여, 다음 데이터가 저장된 클러스터의 데이터를 클러스터 단위로 독출하는 정보 처리 장치.
  16. 파일 데이터가 클러스터 블록 단위로 저장된 제 1 데이터 영역 및 파일 데이터가 클러스터 단위로 저장된 제 2 데이터 영역으로 구성되는 데이터 영역을 갖는 정보 처리 장치의 읽기 동작 방법은:
    (a) 읽기 요청 파일이 저장된 상기 제 1 데이터 영역의 클러스터 블록을 검색하는 단계;
    (b) 상기 제 1 데이터 영역의 클러스터 블록에 저장된 상기 읽기 요청 파일 데이터를 블록 단위로 독출하는 단계;
    (c) 상기 읽기 요청 파일이 저장된 상기 제 2 데이터 영역의 클러스터를 검색하는 단계; 및
    (d) 상기 제 2 데이터 영역의 클러스터에 저장된 상기 읽기 요청 파일 데이터를 클러스터 단위로 독출하는 단계를 포함하고,
    상기 클러스터 블록은 복수의 클러스터들로 구성되는 정보 처리 장치의 읽기 동작 방법.
  17. 제 16 항에 있어서,
    상기 (b) 단계는 상기 블록 단위의 독출 동작이 완료되지 않으면, 상기 (a) 단계로 진행하며,
    상기 (d) 단계는 상기 클러스터 단위의 독출 동작이 완료되지 않으면, 상기 (c) 단계로 진행하는 정보 처리 장치의 읽기 동작 방법.
  18. 각각 복수의 클러스터들을 갖는 복수의 클러스터 블록들로 구성되며, 파일 데이터를 블록 단위로 저장하는 제 1 데이터 영역 및 복수의 클러스터들로 구성되며, 파일 데이터를 클러스터 단위로 저장하는 제 2 데이터 영역으로 구성된 데이터 영역;
    상기 제 1 데이터 영역에 블록 단위로 저장된 파일 데이터를 블록 단위로 소거하는 제 1 제어부; 및
    상기 제 2 데이터 영역에 클러스터 단위로 저장된 파일 데이터를 복수의 클러스터들이 포함된 블록 단위로 소거하는 제 2 제어부를 포함하고,
    상기 제 2 제어부는 상기 제 2 데이터 영역의 소거될 블록에 소거 미요청 파일 데이터가 저장되어 있을 경우, 소거 미요청 파일 데이터를 임의의 데이터 영역에 복사하는 정보 처리 장치.
  19. 파일 데이터가 클러스터 블록 단위로 저장된 제 1 데이터 영역 및 파일 데이터가 클러스터 단위로 저장된 제 2 데이터 영역으로 구성되는 데이터 영역을 갖는 정보 처리 장치의 소거 동작 방법은:
    (a) 소거 요청 파일 데이터가 저장된 상기 제 1 데이터 영역의 클러스터 블록들을 블록 단위로 소거하는 단계;
    (b) 소거 요청 파일 데이터가 저장된 상기 제 2 데이터 영역의 소거될 블록에 소거 미요청 파일 데이터가 저장되어 있는지 검출하는 단계; 및
    (c) 검출된 소거 미요청 파일 데이터를 임의의 데이터 영역에 복사하고, 상 기 소거 요청 파일이 저장된 제 2 데이터 영역의 클러스터들을 소거하는 단계를 포함하고,
    상기 클러스터 블록은 복수의 클러스터들로 구성되는 정보 처리 장치의 소거 동작 방법.
KR1020070102205A 2007-10-10 2007-10-10 파일을 효율적으로 관리할 수 있는 정보 처리 장치 KR101433860B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070102205A KR101433860B1 (ko) 2007-10-10 2007-10-10 파일을 효율적으로 관리할 수 있는 정보 처리 장치
US12/248,957 US8782353B2 (en) 2007-10-10 2008-10-10 Information processing device having data field and operation methods of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070102205A KR101433860B1 (ko) 2007-10-10 2007-10-10 파일을 효율적으로 관리할 수 있는 정보 처리 장치

Publications (2)

Publication Number Publication Date
KR20090036905A true KR20090036905A (ko) 2009-04-15
KR101433860B1 KR101433860B1 (ko) 2014-08-26

Family

ID=40643110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070102205A KR101433860B1 (ko) 2007-10-10 2007-10-10 파일을 효율적으로 관리할 수 있는 정보 처리 장치

Country Status (2)

Country Link
US (1) US8782353B2 (ko)
KR (1) KR101433860B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012166535A2 (en) * 2011-05-31 2012-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
KR101736788B1 (ko) 2015-12-04 2017-05-18 주식회사 엠티오메가 Fat 파일 시스템, 이를 이용하는 차량용 멀티미디어 데이터 관리 장치 및 그 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651136A (en) * 1995-06-06 1997-07-22 International Business Machines Corporation System and method for increasing cache efficiency through optimized data allocation
US5956745A (en) * 1997-04-23 1999-09-21 Novell, Inc. System and method for automatically resizing a disk drive volume
US6449689B1 (en) * 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
JP2001265633A (ja) 2000-03-21 2001-09-28 Sanyo Electric Co Ltd ファイル記録管理システムおよびファイル記録管理方法
JP2001265628A (ja) 2000-03-21 2001-09-28 Sanyo Electric Co Ltd ファイル記録管理システム
US7096327B2 (en) * 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
JP2002041341A (ja) 2000-07-25 2002-02-08 Aiwa Co Ltd データ記録媒体、並びにそれを取り扱うデータ記録装置およびデータ再生装置
US20030120858A1 (en) * 2000-09-15 2003-06-26 Matrix Semiconductor, Inc. Memory devices and methods for use therewith
US6745311B2 (en) * 2001-01-24 2004-06-01 Networks Associates Technology, Inc. Method of allocating clusters of computer readable medium to a file while minimizing fragmentation of the computer readable medium
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
JP4608434B2 (ja) * 2003-12-03 2011-01-12 パナソニック株式会社 情報記録媒体のデータ処理装置及びデータ記録方法
US7424574B1 (en) * 2004-04-21 2008-09-09 Sun Microsystems, Inc. Method and apparatus for dynamic striping
US7930508B2 (en) * 2006-03-07 2011-04-19 Apple Inc. File systems for data processing systems
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US20090077327A1 (en) * 2007-09-18 2009-03-19 Junichi Hara Method and apparatus for enabling a NAS system to utilize thin provisioning

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012166535A2 (en) * 2011-05-31 2012-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods
WO2012166535A3 (en) * 2011-05-31 2013-01-24 Micron Technology, Inc. Apparatus including memory system controllers and related methods
US9076528B2 (en) 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
US9747029B2 (en) 2011-05-31 2017-08-29 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster

Also Published As

Publication number Publication date
US8782353B2 (en) 2014-07-15
US20090132623A1 (en) 2009-05-21
KR101433860B1 (ko) 2014-08-26

Similar Documents

Publication Publication Date Title
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
KR100882862B1 (ko) 플렉시블 플래시 파일 시스템을 위한 시스템 및 방법
US7610434B2 (en) File recording apparatus
US8069306B2 (en) Data area managing method in information recording medium and information processor employing data area managing method
US8386746B2 (en) Storage unit management methods and systems
US7401174B2 (en) File system defragmentation and data processing method and apparatus for an information recording medium
JP5400875B2 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US7516266B2 (en) System and method capable of sequentially writing data to a flash memory
KR101329068B1 (ko) 블록 관리를 가지는 비휘발성 메모리
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
US20050174849A1 (en) Method of remapping flash memory
KR20100030602A (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
KR20140099737A (ko) 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
WO2009107393A1 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
US20050169058A1 (en) Data management apparatus and method used for flash memory
KR101433860B1 (ko) 파일을 효율적으로 관리할 수 있는 정보 처리 장치
JP2010237907A (ja) ストレージ装置および記録方法
US20180349268A1 (en) Block mapping systems and methods for storage device
US20220365677A1 (en) Storage management device, storage management method, and program
CN114610228A (zh) 文件管理系统及其文件管理方法、装置
WO2012104974A1 (ja) メモリコントローラ
TWI385520B (zh) 儲存單元管理方法及系統
JP4648196B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及び領域設定方法
JP7232921B2 (ja) ストレージ管理装置、ストレージの管理方法およびプログラム
WO2021015175A1 (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: 20180731

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 6