[go: up one dir, main page]

KR101046083B1 - 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법 - Google Patents

정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법 Download PDF

Info

Publication number
KR101046083B1
KR101046083B1 KR1020067010179A KR20067010179A KR101046083B1 KR 101046083 B1 KR101046083 B1 KR 101046083B1 KR 1020067010179 A KR1020067010179 A KR 1020067010179A KR 20067010179 A KR20067010179 A KR 20067010179A KR 101046083 B1 KR101046083 B1 KR 101046083B1
Authority
KR
South Korea
Prior art keywords
data
block
valid
recording medium
information
Prior art date
Application number
KR1020067010179A
Other languages
English (en)
Other versions
KR20060120674A (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 KR20060120674A publication Critical patent/KR20060120674A/ko
Application granted granted Critical
Publication of KR101046083B1 publication Critical patent/KR101046083B1/ko

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

데이터 처리 장치(200)는, 복수의 블록으로 이루어지는 기록 영역을 포함하는 정보 기록 매체(100)의 기록 영역에 있어서의 일정 속도 이상으로 기록 가능한 공백 영역에 관한 정보를 유효 공백 영역 관리부(240)에 저장한다. 일정 속도 이상으로 기록 가능한 공백 영역이라는 것은, 소정 수 이상의 미사용 클러스터를 포함하는 블록이다. 데이터 처리 장치(200)는, 정보 기록 매체(100)에 대하여 새로운 공백 영역에 데이터를 기록할 필요가 있는 경우, 유효 공백 영역 관리부(240)에 저장된 정보를 참조하여, 공백 영역을 검색하고, 그 검색한 영역에 대하여 데이터의 기록을 실행한다.

Description

정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법{INFORMATION RECORDING MEDIUM DATA PROCESSING APPARATUS AND DATA RECORDING METHOD}
본 발명은, 정보 기록 매체에 디지털 데이터를 기록하는 데이터 처리 장치 및 데이터 기록 방법에 관한 것이고, 특히, 디지털 데이터의 기록 처리의 최저 속도를 보증하는 기술에 관한 것이다.
음악 콘텐츠, 동화상 콘텐츠, 정지 화상 콘텐츠 등의 디지털 데이터(이하 간단히 "데이터"라고 한다)를 기록하는 기록 매체에는, 반도체 기록 매체, 자기 디스크, 광 디스크, 광자기 디스크 등, 여러 가지 종류가 존재한다. 특히, 반도체 기록 매체는 소형화·경량화를 실현할 수 있는 특징이 있으므로, 디지털 스틸 카메라나 휴대전화 단말 등의 휴대 기기를 중심으로 급속히 보급되고 있다. 대표적인 반도체 기록 매체로서는, SD 메모리 카드(등록상표), 메모리 스틱(등록상표), 콤팩트 플래시(등록상표) 등이 있다.
반도체 기록 매체는, 매년 대용량화가 진행되고 있어서, 대용량의 이점을 살린 응용 분야로서, 특히 동화상 콘텐츠 기록 용도에의 응용이 기대되고 있다. 휴대형 동영상 단말 등으로써 동화상 콘텐츠를 실시간 녹화하는 경우, 기록 매체에의 기록 속도 부족에 의한 녹화 정지를 방지하기 위하여, 기록 처리의 최저 속도를 보 증하는 것이 중요하게 된다.
이러한 반도체 기록 매체에 저장되는 데이터의 관리는, 파일 시스템에 의하여 실현된다. 파일 시스템에서는, 기록 영역을 최소 액세스 단위인 섹터, 및 섹터의 집합인 클러스터(cluster)로 분할하여 관리하고, 1개 이상의 클러스터를 파일로 하여 관리한다. PC(퍼스널 컴퓨터) 등의 정보 기기에서 일반적으로 이용되고 있는 파일 시스템으로서, FAT(File Allocation Table) 파일 시스템을 일례로 들 수 있다(상세한 것은, 비특허문헌 1 참조).
한편, 반도체 기록 매체 내부에서는 블록이라고 하는 단위로 기록 영역을 관리하고 있다. 따라서, 기록 크기가 동일하면, 될 수 있는 한 동일한 블록으로 연속하여 기록을 실행하는 쪽이 고속으로 실행된다. 블록의 크기는 상기 클러스터 크기보다도 일반적으로 크다.
종래에, 클러스터의 경계를 블록의 경계에 일치시킴으로써 반도체 기록 매체에의 기록 속도를 고속화하는 방법이 제안되어 있다(예를 들면, 특허문헌 1 참조). 이 방법을 이용하면, 1개의 블록 내에 정수(整數) 개의 클러스터가 존재하게 된다. 따라서, 1개의 클러스터의 기록 처리를 실행할 때에 2개 이상의 블록에 대하여 갱신 처리를 실행할 필요가 없다.
특허문헌 1: 일본국 특개2001-188701호 공보
비특허문헌 1: ISO/IEC 9293, "Information Technology-Volume and file structure of disk cartridges for information", 1994년
(발명이 해결하려고 하는 과제)
상기의 종래 기술에는 다음과 같은 문제점이 있다. 종래의 제어 방법에서는, 반도체 기록 매체에 여러 가지 크기의 파일의 기록 및 소거를 반복하면, 공백 영역(free area)이 단편화(斷片化)된 상태로 된다. 즉, 미사용 클러스터의 위치가 이산적(離散的)으로 된다. 이러한 상태의 반도체 기록 매체에 대하여 데이터의 기록을 실행하면, 각각의 블록 내의 미사용 클러스터의 수가 적을 경우, 블록을 넘는 기록 처리가 빈번하게 실행되므로, 동일한 블록에 연속하여 기록을 실행하는 경우에 비해서 극단적으로 속도가 저하할 가능성이 있다. 따라서, 동화상 콘텐츠 등의 실시간 녹화에 필요하게 되는 최저 기록 속도를 보증할 수 없으므로, 녹화 처리가 파탄(破綻)되는 문제가 발생할 수 있다.
(과제를 해결하기 위한 수단)
본 발명은 상기 문제점을 감안하여 이루어진 것으로서, 정보 기록 매체에의 기록 처리의 속도 저하를 감소시키는 데이터 기록 장치 및 기록 방법을 제공하는 것을 목적으로 한다.
(1) 본 발명에 의한 제1데이터 기록 방법은, 데이터를 저장하는 기록 영역을 구비하고, 저장 데이터가 파일 시스템에 의해서 관리되는 정보 기록 매체에 대하여 데이터를 기록하는 기록 방법이다. 이때, 정보 기록 매체는, 그 기록 영역이 블록 단위로 관리되고, 각각의 블록은 파일 시스템의 데이터를 저장하는 단위인 클러스터를 소정 수 포함한다. 데이터 기록 방법은, 새로운 공백 영역에 데이터를 기록할 필요가 있는 경우, 소정의 문턱값 이상의 미사용 클러스터를 포함하는 블록을 검색하고, 그 검색한 블록에 대하여 우선적으로 데이터의 기록 처리를 실행한다.
이 경우, 미사용 클러스터를 문턱값 이상 포함하는 블록인 유효 블록 내의 미사용 클러스터에 대하여 데이터의 기록 처리를 실행해도 좋다.
또한, 상기 데이터 기록 방법에 있어서, 기록 영역의 각각의 블록에 포함되는 미사용 클러스터의 수를 계수하고, 그 계수 결과에 근거하여 상기 유효 블록을 구하고, 유효 블록에 관한 리스트 정보인 유효 공백 영역 리스트를 생성하여 저장하고, 데이터 기록 처리할 때에, 상기 유효 공백 영역 리스트를 참조하여 상기 유효 블록을 검색해도 좋다.
문턱값에 관한 정보는 정보 기록 매체 내에 저장되어 있어도 좋다. 문턱값은, 1 블록 내의 클러스터 수의 1/2 이상의 값이어도 좋다.
(2) 본 발명에 의한 제1데이터 처리 장치는, 정보 기록 매체에 대한 데이터의 기록, 판독을 실행하는 데이터 처리 장치이다. 정보 기록 매체는 그 기록 영역이 블록 단위로 관리되고, 각각의 블록은 파일 시스템의 데이터를 저장하는 단위인 클러스터를 소정 수 포함한다. 제1데이터 처리 장치는, 정보 기록 매체에의 정보의 입출력을 실행하는 입출력 처리부와, 정보 기록 매체에 저장된 데이터를 파일로 하여 관리하는 파일 시스템 제어부와, 정보 기록 매체에 대한 데이터의 기록, 판독에 관한 제어를 실행하는 데이터 처리부와, 정보 기록 매체의 영역에 있어서 소정의 문턱값 이상의 미사용 클러스터를 포함하는 블록에 관한 정보를 저장하는 유효 공백 영역 관리부를 구비하고 있다. 데이터 처리부는, 새로운 공백 영역에 데이터를 기록할 필요가 있는 경우, 유효 공백 영역 관리부에 저장된 정보를 참조하여, 소정의 문턱값 이상의 미사용 클러스터를 포함하는 블록을 검색하고, 그 검색한 블록에 대하여 우선적으로 데이터의 기록을 실행하도록, 제어를 실행한다.
(3) 본 발명에 의한 데이터 재정렬 방법은, 데이터를 저장하는 기록 영역을 구비하고, 그 저장 데이터가 파일 시스템에 의해서 관리되는 정보 기록 매체의 기록 영역에 있어서의 데이터 재정렬 방법으로서, 정보 기록 매체는 그 기록 영역이 블록 단위로 관리되고, 각각의 블록은 파일 시스템의 데이터를 저장하는 단위인 클러스터를 소정 수 포함하며, 정보 기록 매체의 각각의 블록에 대하여, 블록에 포함되는 미사용 클러스터의 수가 소정의 범위 내에 있는가 아닌가의 여부를 판정하여, 블록에 포함되는 미사용 클러스터의 수가 소정의 범위 내에 있는 블록에 대하여, 블록에 포함되는 미사용 클러스터에, 다른 블록의 사용 클러스터로부터 데이터를 이동시킨다.
소정의 범위는, 예를 들면, 1 이상이면서 또한 1 블록 내의 클러스터 수의 1/2 미만의 범위, 또는 1 이상이면서 또한 (1)의 문턱값 미만의 범위이다.
또한, 정보 기록 매체가, 그 저장 데이터가 FAT 파일 시스템에 의해서 관리되고, FAT 파일 시스템이, 링크(link) 정보로서 제1 및 제2의 FAT 테이블을 구비하고 있는 경우, 또한, 제1 및 제2의 FAT 테이블 중에서 유효한 테이블을 나타내는 유효 FAT 플래그(flag)를 설정해 두고, 데이터 이동 후에, 제2의 FAT 테이블을 정보 기록 매체에 기록하고, 유효 FAT 플래그를, 제2의 FAT 테이블이 유효인 것을 나타내도록 설정하고, 정보 기록 매체에서 제2의 FAT 테이블의 내용을 제1의 FAT 테이블에 복사하고, 유효 FAT 플래그를, 제1의 FAT 테이블이 유효인 것을 나타내도록 설정한다.
(4) 본 발명에 의한 제2데이터 처리 장치는, 정보 기록 매체에 대하여 데이터의 기록, 판독을 실행하는 데이터 처리 장치로서, 정보 기록 매체에의 정보의 입출력을 실행하는 입출력 처리부와, 정보 기록 매체에 저장된 데이터를 파일로 하여 관리하는 파일 시스템 제어부와, 정보 기록 매체에 대한 데이터의 기록, 판독에 관한 제어를 실행하는 데이터 처리부와, 정보 기록 매체 내의 각각의 블록을, 블록 내에 포함되는 미사용 클러스터의 수에 따라서 분류하고, 그 분류 정보를 저장하는 블록 판정부를 구비하고 있다. 데이터 처리부는, 블록 판정부에 저장된 분류 정보를 참조하여, 각각의 블록에 대하여, 그 블록에 포함되는 미사용 클러스터의 수가 소정의 범위 내에 있는 블록인가 아닌가의 여부를 판단하고, 그 블록이 미사용 클러스터의 수가 소정의 범위 내에 있는 블록인 경우에, 그 블록에 포함되는 미사용 클러스터에, 다른 블록의 사용 클러스터로부터 데이터를 이동시키도록, 제어를 실행한다.
(발명의 효과)
본 발명에 의하면, 공백 영역이 단편화된 반도체 기록 매체에 대한 기록 처리에 있어서, 속도가 극단적으로 저하하는 것을 방지할 수 있다. 따라서, 동화상 콘텐츠의 실시간 녹화에 필요하게 되는 최저 기록 속도를 보증할 수 있으므로, 매우 유효하다.
도 1은 본 발명의 제1실시형태에 있어서의 반도체 기록 매체 및 데이터 처리 장치의 구성 예를 나타내는 블록도.
도 2는 유효 공백 영역 리스트의 데이터 예를 나타내는 도면.
도 3은 FAT 파일 시스템의 구성 예를 나타내는 도면.
도 4는 FAT 파일 시스템의 데이터 저장 예를 나타내는 도면.
도 5는 FAT 파일 시스템의 데이터 기록 처리의 일례를 나타내는 플로차트.
도 6은 유효 공백 영역 리스트의 생성 처리의 일례를 나타내는 플로차트.
도 7은 유효 공백 영역 리스트의 엔트리의 유효 플래그의 결정 방법을 설명하기 위한 도면.
도 8은 유효 공백 영역 리스트를 이용한 FAT 파일 시스템의 데이터 기록 처리의 일례를 나타내는 플로차트.
도 9는 파일 데이터 기록 처리 전후의 상태의 일례를 나타내는 도면.
도 10은 본 발명의 제2실시형태에 있어서의 반도체 기록 매체 및 데이터 처리 장치의 구성 예를 나타내는 블록도.
도 11은 블록 판정부의 일례를 나타내는 개념도.
도 12는 데이터 재정렬 처리의 일례를 나타내는 플로차트.
도 13은 미사용 클러스터 Z에의 데이터 이동 처리의 일례를 나타내는 플로차트.
도 14는 미사용 클러스터 Z에의 데이터 이동 처리의 전후에 있어서의 상태 변화의 일례(링크 대상의 클러스터(link destination cluster)가 미사용 클러스터 Z의 후방에 있는 경우)를 나타낸 도면.
도 15는 미사용 클러스터 Z에의 데이터 이동 처리의 전후에 있어서의 상태 변화의 일례(링크 대상의 클러스터가 미사용 클러스터 Z의 전방에 있는 경우)를 나타낸 도면.
도 16A는 데이터 재정렬 처리의 변형 예를 나타내는 플로차트.
도 16B는 데이터 재정렬 처리의 변형 예에 있어서의 FAT 기록 처리를 나타내는 플로차트.
(부호의 설명)
100: 반도체 기록 매체 110: 호스트 인터페이스부
120: 제어부 130: 데이터 저장부
131: 관리 정보 영역 132: 데이터 영역
200, 200b: 데이터 처리 장치 210: 장착부
220: 입출력 처리부 230: 파일 시스템 제어부
240: 유효 공백 영역 관리부 241: 유효 공백 영역 리스트
242: 선택 플래그 250: 데이터 처리부
301: 디렉토리 엔트리 302: FAT 테이블
260: 블록 판정부
이하에, 첨부 도면을 참조하여 본 발명의 실시형태에 대하여 설명한다.
(제1실시형태)
도 1은 본 발명의 제1실시형태에 있어서의 반도체 기록 매체 및 데이터 처리 장치의 구성 예를 나타내는 블록도이다.
반도체 기록 매체(100)는, 호스트 인터페이스부(110), 제어부(120) 및 데이터 저장부(130)로 구성된다.
호스트 인터페이스부(110)는, 반도체 기록 매체(100)의 호스트 기기(機器)인 데이터 처리 장치(200)와의 사이에서 정보를 송수신한다.
제어부(120)는 반도체 기록 매체(100)의 내부 제어를 실행한다. 제어부(120)는, 호스트 인터페이스부(110)에서 수신한 명령의 처리를 실행하고, 필요에 따라서 처리 결과를 호스트 인터페이스부(110)를 경유하여 데이터 처리 장치(200)에 통지한다. 또한, 데이터 저장부(130)에 저장되는 데이터의 관리를 실행한다.
데이터 저장부(130)는, 데이터 처리 장치(200)로부터의 임의의 데이터의 판독 기록이 가능한, 데이터를 기록하는 영역을 구비하고, 플래시 메모리 등의 불휘발성 메모리로 구성된다. 데이터 저장부(130)의 기록 영역은, 제어부(120)에 의해서, 블록이라고 하는 단위로 관리된다. 본 실시형태에 있어서는, 1 블록의 크기가 256 kB이고, 데이터 저장부(130)의 기록 영역은 블록 #0, ..., 블록 #(N-1)의 N개의 블록으로 구성되어 있다. 데이터 저장부(130)에는 FAT 파일 시스템이 구축되어 있다.
데이터 처리 장치(200)는, 장착부(210), 입출력 처리부(220), 파일 시스템 제어부(230), 유효 공백 영역 관리부(240) 및 데이터 처리부(250)로 구성된다.
장착부(210)는 반도체 기록 매체(100)를 장착하는 하드웨어이다.
입출력 처리부(220)는, 장착부(210)에 장착된 반도체 기록 매체(100)에 대하여 명령이나 데이터 등의 정보의 송수신을 실행한다.
파일 시스템 제어부(230)는, 데이터 저장부(130) 상에 구축된 FAT 파일 시스템을 해석하고, 제어한다. 파일 시스템 제어부(230)는, 데이터 처리부(250)에 대하여, 데이터를 파일로 하여 액세스하는 수단을 제공한다. 또한, 입출력 처리부(220)를 경유하여 데이터 저장부(130)의 데이터에 액세스한다. 또한, 파일 시스템 제어부(230)는 내부에 RAM(도시되어 있지 않음)을 포함하고, 반도체 기록 매체(100)에 저장되는 FAT 정보를 그 RAM에 저장한다.
유효 공백 영역 관리부(240)는, 파일 시스템 제어부(230)에 의해서 관리되는 데이터 저장부(130)의 공백 영역이 유효한가 아닌가의 여부를 블록 단위로 관리한다. 여기서, "유효"라는 것은, 그 영역(블록)에 있어서 일정 속도 이상에서의 데이터 기록 처리가 가능한 것을 의미한다. 일정 속도라는 것은, 예를 들면 동화상 콘텐츠의 실시간 녹화에 필요한 최저 기록 속도이다. 또한, 유효 공백 영역 관리부(240)에 의해서 관리되는 블록은, 논리 어드레스 공간 상의 영역이고, 반도체 기록 매체(100)의 데이터 저장부(130) 내의 물리 어드레스 공간에서의 블록과 대응하여 설정된다. 유효 공백 영역 관리부(240)는, 유효한 공백 영역의 리스트인 유효 공백 영역 리스트(241)를 생성하고, 관리한다. 도 2에 유효 공백 영역 리스트(241)의 구성 예를 나타낸다. 도 2는 블록 번호가 0, Q-1인 블록이 유효한 공백 영역, 즉, 유효 블록인 것을 나타내고 있다. 또한, 유효 공백 영역 관리부(240)는 선택 플래그(242)를 구비하고 있다. 선택 플래그(242)는, 데이터 기록 처리에 있어서, 유효 공백 영역 리스트(241)에 포함되는 복수의 엔트리 중의 1개가 선택 중인가 아닌가의 여부를 나타내는 플래그이다.
데이터 처리부(250)는 데이터 처리 장치(200)의 중심적인 처리를 담당하여, 반도체 기록 매체(100)에 저장된 데이터 또는 지금부터 저장하는 데이터를 처리한다. 예를 들면, 데이터 처리부(250)는 반도체 기록 매체(100)에 대한 데이터의 기록, 판독에 관한 제어를 실행한다.
이어서, 데이터 저장부(130)에 구축되는 FAT 파일 시스템에 대하여 설명한다.
도 3은 데이터 저장부(130)에 구축된 FAT 파일 시스템의 데이터 구조 예를 나타내는 도면이다. 데이터 저장부(130)를 구성하는 N개(N은 2 이상의 자연수)의 블록 중에서, P개(P≤N)의 블록이, 본 파일 시스템의 전체를 관리하기 위한 정보를 저장하는 관리 정보 영역(131)으로서 이용되고, 나머지 Q개(Q=N-P)의 블록은 파일의 실체(實體; entity) 데이터 등을 저장하는 데이터 영역(132)으로서 이용된다.
관리 정보 영역(131)은, 데이터 저장부(130)를 복수의 파티션(partition)이라고 하는 영역으로 분할하여 관리하기 위한 정보를 저장하는 마스터 부트 레코드 파티션 테이블(master boot record partition table), 1개의 파티션 내의 관리 정보를 저장하는 파티션 부트 섹터, 파일에 포함되는 데이터의 물리적인 저장 위치를 나타내는 FAT 테이블 1 및 FAT 테이블 2, 루트 디렉토리 바로 아래에 존재하는 파일이나 디렉토리의 정보를 저장하는 루트 디렉토리 엔트리로 구성된다. 여기서, FAT 테이블이 2개 존재하는 것은, FAT 테이블이 중요한 정보를 저장하고 있으므로, 이중화(二重化)되어 있기 때문이다.
데이터 영역(132)은, 복수의, 클러스터라고 하는 논리적인 데이터 단위로 분할되어 관리되고 있으며, 각각의 클러스터에는 파일에 포함되는 데이터가 저장되어 있다. 크기가 큰 데이터를 저장하는 파일 등은 복수의 클러스터를 사용하고 있으며, 각각의 클러스터 간의 연계는, FAT 테이블 1 및 FAT 테이블 2에 저장된 링크 정보에 의해서 관리되고 있다. 또한, 본 실시형태에 있어서는 클러스터의 크기를 16 kB로 한다. 따라서, 1 블록은 16개의 클러스터를 포함한다. 데이터 영역(132)에는, 클러스터 #0, ..., 클러스터 #(M-1)의 M개의 클러스터가 존재하고 있는 것으로 한다.
도 4를 이용하여 FAT 파일 시스템에 있어서의 파일 데이터의 더욱 구체적인 저장 예를 설명한다.
루트 디렉토리 엔트리나 데이터 영역(132)의 일부에는, 도 4의 (a)에 나타내는 바와 같은, 파일명이나 파일 크기 등을 저장하는 디렉토리 엔트리(301)가 저장된다. 파일 데이터의 저장처인 데이터 영역(132)은 클러스터 단위로 관리되고 있으며, 각각의 클러스터에는 고유하게 식별 가능한 클러스터 번호가 부여되어 있다. 파일의 데이터가 저장되어 있는 클러스터를 특정하기 위하여, 디렉토리 엔트리(301)에는, 파일 데이터의 선두(先頭) 부분이 저장되어 있는 클러스터의 클러스터 번호(개시 클러스터 번호)가 저장되어 있다. 도 4의 (a)의 디렉토리 엔트리(301)의 예는, "FILE001.TXT"라고 하는 명칭을 갖는 파일의 데이터가, 클러스터 번호 31의 클러스터로부터 저장되어 있는 것을 나타내고 있다.
복수의 클러스터에 데이터가 저장되어 있는 파일의 경우, 링크 정보가 FAT 테이블에 저장된다. 도 4의 (b)에 FAT 테이블(302)의 예를 나타낸다. FAT 테이블(302)에는, 각각의 클러스터의 링크 정보를 나타내는 FAT 엔트리가 저장된다. FAT 엔트리는, 다음에 링크되는 클러스터의 클러스터 번호를 저장한다. 도 4의 (b)의 예에서는, 클러스터 번호 31에 대응하는 FAT 엔트리로서 "32"가 저장되어 있다. 이것은, 클러스터 번호 31의 클러스터는, 클러스터 번호 32의 클러스터에 링크되어 있는 것을 나타낸다. 마찬가지로 클러스터 번호 32에 대응하는 FAT 엔트리에는 "34", 클러스터 번호 34에 대응하는 FAT 엔트리에는 "35"가 저장되어 있어서, 클러스터 번호 31, 32, 34, 35의 순서로 링크되게 된다. 이어서, 클러스터 번호 35에 대응하는 FAT 엔트리에는 "FFF"가 저장되어 있지만, "FFF"는 링크의 종단(終端)을 의미하므로, 클러스터 번호 31로 시작되는 링크는, 클러스터 번호 31, 32, 34, 35의 4 클러스터로 종료되게 된다. 따라서, "FILE001.TXT"라고 하는 파일명의 데이터는, 데이터 영역(132)에 있어서, 도 4의 (c)에 나타내는 바와 같이 클러스터 #31, #32, #34, #35에 순서대로 저장되어 있게 된다. 또한, 클러스터 번호 33에 대응하는 FAT 엔트리에 저장되어 있는 "0"은, 그 클러스터가 파일에 할당되어 있지 않고, 공백 영역, 즉, 미사용인 것을 의미하고 있다.
이어서, FAT 파일 시스템에 있어서의 파일 데이터의 기록 처리의 일례에 대하여 설명한다.
도 5는 FAT 파일 시스템에 있어서의 파일 데이터 기록 처리 방법을 나타내는 플로차트이다. 파일 데이터 기록 처리에서는, 우선 처음에, 기록을 실행하는 대상 파일의 디렉토리 엔트리(301)를, 파일 시스템 제어부(230)의 RAM 상에 판독하고, 그 디렉토리 엔트리(301)에 저장된 개시 클러스터 번호를 취득함으로써, 대상 파일의 데이터의 선두 위치를 확인한다(S401). 또한, FAT 테이블 1 및 FAT 테이블 2를 파일 시스템 제어부(230)의 RAM 상에 판독하고, 단계 S401에서 취득한 대상 파일의 데이터 선두 위치로부터 순서대로, RAM 상에 판독한 FAT 테이블 1 또는 FAT 테이블 2를 참조하여 링크를 더듬어 가서, 기록 위치에 대응하는 클러스터 번호를 취득한다(S402).
그리고, 데이터 기록 시에, 그 대상 파일에 대하여 새롭게 공백 영역을 할당할 필요가 있는가 없는가의 여부를 판정한다(S403). 공백 영역의 할당이 불필요한 경우는, 단계 S405의 처리로 진행한다. 공백 영역의 할당이 필요한 경우, FAT 테이블 1 또는 FAT 테이블 2 상에서 공백 영역(미사용 클러스터)을 검색하고, 1 클러스터 분량의 공백 영역을 대상 파일의 종단(終端)에 할당한다(S404).
그 후, 현재 참조하고 있는 클러스터에, 기록할 수 있는 만큼의 데이터를 기록한다(S405). 이때, 파일 시스템 제어부(230)의 RAM 상에 판독된 FAT 테이블 1, 2에 대해서도, 데이터 기록 처리에 따라서 갱신한다.
이어서, 전체 데이터의 기록이 완료되었는가를 판정한다(S406). 아직 데이터가 남아 있는 경우, 단계 S403의 처리로 복귀하고, 이어서 클러스터에 대하여 S403~S406을 반복하여, 데이터 영역(132)에의 데이터 기록을 실행한다. 대상 파일의 전체 데이터의 기록이 완료된 경우, 파일 시스템 제어부(230)의 RAM 상에 판독된 디렉토리 엔트리(301) 내에 저장된 파일 크기나 타임 스탬프(time stamp) 등을 갱신한 후, 갱신된 디렉토리 엔트리를 반도체 기록 매체(100)에 기록한다(S407).
최후로, 파일 시스템 제어부(230)의 RAM 상에서 갱신된 FAT 테이블 1 및 FAT 테이블 2를, 반도체 기록 매체(100)에 되돌려 기록하고, 처리를 완료한다(S408).
크기가 상이한 파일의 기록이나 소거를 반복하여 실행함으로서, 상기 FAT 엔트리의 링크 정보는 복잡하게 되어 간다. 즉, 각각의 파일 데이터는, 데이터 영역(132)에 이산적인 상태로 저장된 상태가 된다. 마찬가지로 미사용 영역인 공백 영역도 이산적인 위치에 저장된 상태가 된다. 이것을 "데이터의 단편화"라고 한다. 이 데이터의 단편화가 생긴 기록 영역에 데이터를 기록한 경우, 그 영역에의 액세스에 시간이 걸린다. 그래서, 본 실시형태에서는, 데이터 기록 시에 있어서, 이러한 데이터의 단편화가 생기고 있는 영역에는 데이터를 기록하지 않도록 하고 있다. 이러한 데이터 기록 방법의 상세에 대하여, 이하에 설명한다.
데이터 기록 방법의 설명에 앞서서, 우선, 유효 공백 영역 리스트(241)의 생성 절차에 대하여 설명한다.
도 6은, 데이터 처리 장치(200)의 유효 공백 영역 관리부(240)가 유효 공백 영역 리스트(241)를 생성하는 절차의 시퀀스 예이다.
유효 공백 영역 리스트의 생성 처리에서는, 우선, 유효 공백 영역 관리부(240)가 블록 내에 몇 개 이상의 미사용 클러스터가 존재하는 경우에 기록을 허가할 것인가 하는 문턱값 T를 설정한다(S501). 본 실시형태에서는, 문턱값 T는 미리 결정된 값(고정치)을 이용한다. 문턱값 T는, 1 블록 내에 포함되는 클러스터 수의 1/2 이상의 값에 설정하는 것이 바람직하다. 동시에, 문턱값 T의 설정 이외의 초기화 처리를 실행한다(S501). 예를 들면, 유효 공백 영역 리스트(241)의 전체 엔트리의 유효 플래그를 "0"(무효)에 설정한다.
이어서, 데이터 영역(132)의 선두로부터의 블록 번호 i(i는 변수)를 0으로 하여(S502), 이하의 처리를 실행한다.
유효 공백 영역 관리부(240)는, 파일 시스템 제어부(230)로부터 FAT 테이블 1, 2의 정보를 수취하고, i 번째의 블록에 존재하는 미사용 클러스터의 수 X를 계수한다(S503). 그리고, 미사용 클러스터의 수 X가 문턱값 T 이상인가 아닌가의 여부를 판단한다(S504).
미사용 클러스터의 수 X가 문턱값 T 이상인 경우(Yes의 경우), 도 2에 나타내는 유효 공백 영역 리스트(241)의 i 번째의 엔트리의 유효 플래그를 "1"(유효)에 설정한다(S505).
미사용 클러스터의 수 X가 문턱값 T 이상이 아닌 경우(No의 경우), 유효 공백 영역 리스트(241)의 i 번째의 엔트리의 유효 플래그를 "0"(무효)에 설정한다(S506).
그 후, 블록 번호 i에 1을 가산하고(S507), 블록 번호 i가 데이터 영역(132)의 총 블록 수 Q 이상인가 아닌가의 여부를 판단한다(S508). i가 Q 미만이면, 단계 S503의 처리에 복귀하여, S503~507을 반복한다. 한편, 단계 S508에서, 블록 번호 i가 Q 이상이면 처리를 완료한다.
도 7은, 문턱값 T가 "8"인 경우의, 유효 공백 영역 리스트(241)의 엔트리의 유효 플래그의 설정 방법을 설명한 도면이다. 도면에서, 사용중인 클러스터에는, 사선(斜線) 처리가 되어 있다. 도 7의 (a)의 예에서는, 블록은 11개의 미사용 클러스터를 포함하고, 문턱값 T가 8 이상이므로, 엔트리의 유효 플래그로서 "1"(유효)이 설정된다. 도 7의 (b)의 예에서는, 블록은 3개의 미사용 클러스터를 포함하고, 미사용 클러스터의 수는 8 미만이므로, 엔트리의 유효 플래그로서 "0"(무효)이 설정된다.
본 실시형태에 있어서의 파일 데이터 기록 처리 절차를 설명한다. 도 8은 본 실시형태에 있어서의 파일 데이터 기록 처리 절차를 나타낸 도면이다.
파일 데이터 기록 처리에서는, 우선, 선택 플래그(242)를 OFF에 설정한다(S801). 이어서, 기록 대상 파일의 디렉토리 엔트리(301)를 파일 시스템 제어부(230)의 RAM 상에 판독하고, 상기 디렉토리 엔트리(301)에 저장된 파일 개시 클러스터 번호를 취득하여, 파일 데이터의 선두 위치를 확인한다(S802).
이어서, FAT 테이블 1, FAT 테이블 2를, 파일 시스템 제어부(230)의 RAM 상에 판독하고, 단계 S802에서 취득한 파일 데이터의 선두 위치로부터, 순서대로, RAM 상에 판독한 FAT 테이블 1 또는 FAT 테이블 2를 참조하여 링크를 더듬어 가서, 기록 위치의 클러스터 번호를 취득한다(S803).
이어서, 데이터 기록 시에, 그 대상 파일에 새롭게 공백 영역을 할당할 필요가 있는가 아닌가의 여부를 판정한다(S804). 공백 영역의 할당이 불필요한 경우(No의 경우)는, 단계 S810의 처리로 진행한다.
공백 영역의 할당이 필요한 경우(단계 S804에서 Yes의 경우), 선택 플래그(242)가 ON인가 아닌가를 판정하고(S805), 선택 플래그(242)가 0FF인 경우에만, 유효 공백 영역 리스트(241)를 참조하여, 유효 플래그가 "1"(유효)인 블록을 1개 선택하고, 그와 동시에 선택 플래그(242)를 ON으로 한다(S806). 즉, 선택 플래그(241)가 ON일 때는, 기록 영역으로서, 이미 유효 플래그가 "1"(유효)인 블록이 선택되어 있지만, 선택 플래그(241)가 OFF일 때는, 아직, 유효 플래그가 "1"(유효)인 블록이 선택되어 있지 않으므로, 유효 공백 영역 리스트(241)를 참조하여 유효 플래그가 "1"(유효)인 블록을 새롭게 선택할 필요가 있다. 또한, 유효 공백 영역 리스트(241)에 있어서 유효 플래그가 "1"(유효)인 블록이 전혀 존재하지 않을 때는, 유효 플래그가 "0"(무효)인 블록 중에서 1개의 블록을 선택한다. 이와 같이, 유효 플래그가 "1"(유효)인 블록으로부터 우선적으로 선택한다.
RAM 상의 FAT 테이블 1 또는 FAT 테이블 2를 참조하여, 선택한 블록에 있어서의 미사용 클러스터를 검색한다(S807). 그리고, 미사용 클러스터가 존재하는가 아닌가의 여부를 판단한다(S808).
미사용 클러스터가 존재하지 않는 경우(S808에서 No의 경우), 공백 영역 리스트(241)에 있어서 현재 선택 중인 블록의 유효 플래그를 무효화한다(S809). 즉, 해당하는 엔트리의 유효 플래그를 "0"(무효)으로 갱신한다. 또한, 선택 플래그(242)를 OFF에 설정하여(S809), 단계 S806의 처리로 복귀한다.
미사용 클러스터가 존재하는 경우(S808에서 Yes의 경우), 현재 참조하고 있는 미사용 클러스터 내에 기록할 수 있는 데이터만을 기록한다(S810).
이어서, 전체 데이터의 기록이 완료되었는가 판정한다(S811). 아직, 기록해야 할 데이터가 남아 있는 경우, 단계 S804의 처리에 복귀하여, 전체 데이터의 기록이 완료될 때까지, 상기 단계 S804~S810을 반복한다.
전체 데이터의 기록이 완료된 경우, 파일 시스템 제어부(230)의 RAM 상의 디렉토리 엔트리(301) 내에 저장된 파일 크기나 타임 스탬프 등을 갱신하고, 그 후, 갱신한 디렉토리 엔트리를 반도체 기록 매체(100)에 기록한다(S812). 그리고, 파일 시스템 제어부(230)의 RAM 상의 FAT 테이블 1, FAT 테이블 2를 반도체 기록 매체(100)에 되돌려 기록한다(S813).
최후로, 현재 선택 중인 블록의 미사용 클러스터의 수를 확인하여, 문턱값 T 미만이면 유효 공백 영역 리스트(241)의 해당하는 엔트리의 유효 플래그를 "0"(무효)으로 갱신하고, 처리를 완료한다(S814).
도 9를 참조하여, 상기의 파일 데이터 기록 처리에 의한, 미사용 클러스터의 선택을 구체적으로 설명한다. 파일 데이터의 기록을 실행하기 전의 데이터 영역(132)의 상태가 도 9의 (a)에 나타내는 상태인 것으로 한다. 문턱값 T는 8이고, 유효 공백 영역 리스트(241)에 있어서, 블록 #0 및 블록 #3은 "유효", 블록 #1 및 블록 #2는 "무효"로 되어 있다.
도 9의 (b)는, 16 클러스터 분량의 데이터를, 상기의 파일 데이터 기록 처리에 의하여 기록한 경우의 예를 나타내고 있다. 블록 #0으로부터 데이터 기록을 개시하여, 블록 #0의 미사용 클러스터 모두에 데이터를 기록하면, 계속해서 블록 #3에 데이터가 기록된다. 이것은, 블록 #1 및 블록 #2는 유효 플래그가 "무효"에 설정되어 있으므로, 이들 블록에의 기록은 실행되지 않기 때문이다. 이 경우, 블록 간에 천이(遷移)하는 것은, 블록 #0으로부터 블록 #3에의 1회뿐이다.
한편, 16 클러스터 분량의 데이터를 종래의 파일 데이터 기록 처리에 의해서 기록한 경우의 예를 도 9의 (c)에 나타낸다. 종래 방법에서는, FAT 테이블 1, FAT 테이블 2의 선두로부터 공백을 검색해 가므로, 블록 #1 및 블록 #2에의 기록도 발생한다. 그 결과, 블록 간의 천이는, 블록 #0으로부터 블록 #1, 블록 #1로부터 블록 #2, 블록 #2로부터 블록 #3으로, 3회 발생하게 된다. 이 경우, 도 9의 (b)의 경우에 비하여, 블록 간에 천이하는 횟수가 증가하므로, 데이터 기록 시의 처리 속도가 더 늦어지게 된다.
이상과 같이, 본 실시형태에서는, 데이터 처리 장치(200)가 반도체 기록 매체(100)에 데이터를 기록하기 전에 반도체 기록 매체(100)의 블록 내의 미사용 클러스터의 수를 확인하고, 미사용 클러스터의 수가 어느 일정치 이상인 블록에만 기록 처리를 실행하므로, 기록 속도의 극단적인 저하의 원인인 블록 간 천이의 발생 횟수를 감소시킬 수 있게 된다.
따라서, 공백 영역이 단편화된 반도체 기록 매체(100)에 대해서도 동화상 콘텐츠의 실시간 녹화에 필요하게 되는 최저 기록 속도를 보증할 수 있게 된다.
또한, 이하와 같은 변형 예를 고려할 수 있다.
(1) 본 실시형태에 있어서는, 도 6에 나타내는 단계 S501의 처리에 있어서, 문턱값 T가 미리 고정치로서 결정되어 있는 것으로 해서 설명하였지만, 반도체 기록 매체(100)에 문턱값 T에 관한 정보를 저장해 두고, 데이터 처리 장치(200)가 그 정보를 참조하여 문턱값 T를 설정하도록 해도 좋다. 또한, 사용자에 의해서 지정된 정보에 의하여 결정해도 좋다.
(2) 본 실시형태에 있어서는, FAT 파일 시스템을 예로서 기술하였지만, 이것에 한정되는 것은 아니다. 액세스 단위보다도 작은 단위로 파일 데이터를 관리하고 있는 경우, 본 발명의 개념을 적용할 수 있다.
또한, 블록 단위나 클러스터 단위 등은 모두 일례이고, 다른 크기이어도 좋다.
(3) 본 실시형태에 있어서는, 파일 데이터 기록 처리 절차의 설명에 있어서, 에러(error) 처리를 생략하였지만, 에러 처리를 추가해도 좋다. 예를 들면, 도 8에 나타내는 단계 S806의 처리에 있어서, 유효 공백 영역 리스트(241)에 유효 플래그 "1"(유효)인 블록이 존재하지 않는 경우, 에러 처리로서 기록 처리를 중단해도 좋다.
(4) 본 실시형태에 있어서는, 파일 데이터 기록 처리 전에, 미리 유효 공백 영역 리스트(241)를 작성해 두는 예를 기술하였지만, 유효 공백 영역 리스트(241) 및 선택 플래그(242)는 반드시 필요한 것은 아니다. FAT 테이블을 참조하여 사용하는 공백 영역을 검색할 때에, 할당하려고 하는 미사용 클러스터가 속하는 블록의 미사용 클러스터의 수가 문턱값 T 이상인가 아닌가의 여부를 판단하고, 문턱값 T 이상인 경우에만, 그 블록의 미사용 클러스터를 사용하는 사양(仕樣)이어도 좋다.
또한, 본 실시형태에 있어서는, 데이터 영역(132)의 전체 블록에 대한 유효 공백 영역 리스트(241)를 작성하였지만, 유효 공백 영역 리스트(241)의 생성에 시간이 걸리는 경우나, 충분한 메모리를 확보할 수 없는 경우에는, 상기 유효 공백 영역 리스트(241)를 일부의 블록에 대하여 작성하고, 필요에 따라서 재생성하는 사양이어도 좋다.
또한, 본 실시형태에 있어서는 선택 플래그(242)가 유효 공백 영역 관리부(240)에 있는 것으로 하였지만, 파일 시스템 제어부(230)의 내부에 있어도 좋다.
(5) 본 실시형태에 있어서의 데이터 기록 방법은, 기록 매체 내에서 관리하는 블록이 파일 시스템에 있어서의 파일 데이터의 단위인 클러스터보다도 크고, 또한 블록 넘음에 의하여 액세스 속도가 저하하는 경우에 유효하다. 이러한 조건을 만족시키는 기록 매체라면, 반도체 기록 매체(100)에 한정되는 것은 아니고, 다른 정보 기록 매체이어도 본 발명의 개념을 적용할 수 있다.
(제2실시형태)
도 10에 본 발명의 제2실시형태에 있어서의 반도체 기록 매체 및 데이터 처리 장치의 구성 예를 나타낸다. 본 실시형태에서는, 반도체 기록 매체의 기록 영역의 단편화를 해소하기 위하여 반도체 기록 매체의 저장 데이터의 재정렬을 실행한다.
본 실시형태의 데이터 처리 장치(200b)는, 기본적으로 제1실시형태의 구성과 유사한 구성으로 되어 있지만, 유효 공백 영역 관리부(240) 대신에, 반도체 기록 매체의 저장 데이터의 재정렬을 위한 구성으로서 블록 판정부(260)를 구비하고 있는 점이 제1실시형태의 구성과 상이하다.
블록 판정부(260)는, 반도체 기록 매체(100)의 데이터 저장부(130) 내의 각각의 블록의 "형태"를 판별한다. 도 11에 블록 판정부(260)의 내부 구성 예를 나타낸다. 본 실시형태에서는, 블록의 형태는 블록 내에 존재하는 미사용 클러스터의 수에 의하여 결정되고, A형, B형, C형의 3개가 정의된다. 본 실시형태에서는, 제1실시형태와 마찬가지로 1 블록의 크기가 256 kB이고, 1 블록은 16 kB의 클러스터가 16개로 구성되어 있다. 1 블록에 8개 이상의 미사용 클러스터가 존재하는 경우, 즉, 1 블록에서 반수 이상이 미사용 클러스터인 경우를 "A형"이라고 한다. 1 블록에, 1개 내지 7개의 미사용 클러스터가 존재하는 경우를 "B형", 모두 사용중이고 미사용 클러스터가 존재하지 않는 경우를 "C형"이라고 한다.
블록 내에 존재하는 미사용 클러스터의 수가 적은 B형의 블록이 많이 존재하고 있는 상태에서는, 동화상 등의 대용량 데이터를 연속적으로 기록할 때에, 빈번하게 블록을 넘는 기록이 발생하므로, 기록 처리 속도가 극단적으로 저하할 가능성이 있다.
그래서, 본 실시형태에서는, B형의 블록을 검색하고, 그 블록에 대하여 다른 블록으로부터 데이터를 이동시킴으로써, 즉, 데이터를 재정렬함으로써, B형의 블록이 될 수 있는 한 C형으로 되도록 한다. 즉, 공백 영역이 적은 B형의 블록에, 데이터를 더욱 집중시킬 수 있으므로, 다른 블록의 공백 영역이 확대되어서, 단편화를 해소할 수 있다.
이하에, 본 실시형태에 있어서의 데이터 재정렬 방법의 상세를 설명한다. 도 12는 데이터 처리 장치(200b)의 데이터 처리부(250)가 파일 시스템 제어부(230)에 대하여 반도체 기록 매체(100)의 데이터 재정렬을 지시했을 때의 플로차트이다. 본 실시형태에 있어서의 데이터 재정렬 방법은, 상기와 같이, B형의 블록, 즉 16개 중 1개 내지 7개의 미사용 클러스터를 갖는 블록을 될 수 있는 한 감소시키는 것을 목적으로 하고 있다.
파일 시스템 제어부(230)는, 우선, FAT 테이블 1 및 FAT 테이블 2를 RAM 상에 판독한다(S1201). 이어서, 데이터 영역(132)의 선두로부터의 블록 번호를 나타내는 변수 i에 0을 설정하고(S1202), 이하의 처리를 실행한다.
블록 판정부(260)는 파일 시스템 제어부(230)로부터의 정보를 기초로, i 번째의 블록에 존재하는 미사용 클러스터의 수를 계수하고, i 번째 블록의 형태를 판단한다(S1203).
단계 S1203의 판단 결과, B형이 아닌 경우는, 단계 S1207로 진행하고, 블록 번호 i를 증가시킨다. B형인 경우는, i 번째의 블록 내의 최초의 미사용 클러스터인 미사용 클러스터에 다른 블록으로부터 데이터를 이동시키는 처리를 실행한다(S1204). 이 처리의 상세에 대해서는 이후에 설명한다. 또한, 이하의 설명에서, 다른 블록으로부터의 데이터의 이동처가 되는 미사용 클러스터를 "미사용 클러스터 Z"라고 한다.
이어서, 상기의 이동 처리의 완료/미완료를 판단한다(S1205). 미완료의 경우, 즉, 이동시킬 데이터가 이미 존재하지 않는 경우에는, 파일 시스템 제어부(230)의 RAM 상에 있는 FAT 테이블 1, FAT 테이블 2의 데이터에 의거하여, 반도체 기록 매체(100)의 FAT 테이블 1, FAT 테이블 2의 갱신을 실행하고(S1209), 처리를 완료한다.
단계 S1204의 이동 처리가 완료된 경우, i 번째의 블록 내의 나머지의 미사용 클러스터를 검색한다(S1206). i 번째의 블록 내에 미사용 클러스터가 남아 있는 경우, 그 미사용 클러스터를, 데이터 이동처인 미사용 클러스터 Z로 하고, 단계 S1204의 처리로 복귀한다. 남아 있지 않은 경우는, 블록 번호 i를 증가시킨 후(S1207), i가 데이터 영역(132)의 총 블록 수 Q 이하인가 아닌가의 여부를 판단한다(S1208).
i가 Q 이하인 경우, 단계 S1203의 처리로 복귀하여, 단계 S1203~S1207의 처리를 계속한다. i가 Q보다 큰 경우, 파일 시스템 제어부(230)의 RAM 상에 있는 FAT 테이블 1, FAT 테이블 2의 데이터에 의거하여, 반도체 기록 매체(100)의 FAT 테이블 1, FAT 테이블 2의 갱신을 실행하고(S1209), 처리를 완료한다.
이상과 같이, 본 실시형태에 있어서의 재정렬 처리는 데이터 영역(132)의 선두 블록으로부터 순서대로 미사용 클러스터를 검출하고, 그 미사용 클러스터에 다른 블록으로부터 데이터를 이동시킴으로써 데이터의 재정렬을 실행하고, 더 이상 데이터의 이동이 불가능하게 되거나 최후의 블록의 처리를 실행한 시점에서, 재정렬의 처리를 완료한다.
이어서, 상기의 단계 S1204에 있어서의, 데이터의 이동 처리에 대하여 도 13을 이용하여 상세하게 설명한다. 도 13은 i 번째의 블록에 있어서의 미사용 클러스터 Z에 다른 블록으로부터 데이터를 이동시키는 처리의 플로차트이다.
본 이동 처리에 있어서, 미사용 클러스터 Z에 데이터를 이동시킬 때에 데이터 이동원(移動元)이 되는 클러스터의 검색은 FAT 테이블 1 또는 FAT 테이블 2를 이용하여 실행한다. 본 이동 처리는, 반도체 기록 매체(100) 상의 FAT 테이블 1 또는 FAT 테이블 2에 저장되는 링크 정보의 변경 처리, 및 데이터 영역(132)에의 데이터 복사 처리에 의하여 실현한다. 데이터 이동 처리에 있어서, 링크의 선두가 되는 데이터는 이동시키지 않으므로, 디렉토리 엔트리의 검색이나 재기록 등이 발생하지 않아서, 고속의 처리가 가능하다.
도 13을 참조하면, 본 이동 처리에서는, 우선, 데이터 영역(132)의 선두로부터의 클러스터 번호를 지정하는 변수 k를 0에 설정한다(S1301). 즉, 데이터 영역(132)의 각각의 클러스터에 대하여, 데이터 영역 선두로부터 순차적으로 이하의 처리를 실행한다. 이어서, FAT 테이블 1 또는 FAT 테이블 2를 참조하여, k 번째의 클러스터가 사용중인가 아닌가의 여부를 판단한다(S1302).
k 번째의 클러스터가 사용중이 아니면 k를 증분(增分)시킨다(S1311). 증분 후의 k 번째의 클러스터가 데이터 영역(132)의 범위 내에 있는가 아닌가의 여부를 판정한다(S1312). 범위 내에 있으면, 단계 S1302의 처리로 복귀한다. 범위 내에 있지 않으면, 그 블록 내에서 데이터를 이동할 수 있는 클러스터는 이미 존재하지 않으므로, "이동 NG(미완료)"로 하고(S1313), 처리를 종료한다.
단계 S1302에서, k 번째의 클러스터가 사용중인 경우, FAT 엔트리로부터 k 번째의 클러스터의 링크 대상을 검색한다(S1303). 링크 대상의 클러스터가 속하는 블록(블록 R)이 i 번째의 블록인가 아닌가의 여부를 판단한다(S1304).
링크 대상의 클러스터가 속하는 블록이 i 번째의 블록인 경우, 동일한 블록 내에서의 이동이 되어서 무의미하므로, 그 클러스터에 대해서는 아무것도 처리를 실행하지 않고, 단계 S1311로 진행한다. 단계 S1311 이후의 처리는 상기한 바와 같다.
링크 대상의 클러스터가 속하는 블록 R이 i 번째의 블록이 아닌 경우(S1304에서 NO), 블록 R이 C형인가 아닌가의 여부를 판단한다(S1305). 블록 R이 C형인 경우, 그 블록 R로부터 데이터를 이동시키는 것은 단편화를 발생시키므로, 적절하지 않다. 따라서, 링크 대상의 클러스터가 속하는 블록 R이 C형인 경우는, 단계 S1311로 진행하고, 다음의 클러스터에 대하여 검토를 실행한다.
한편, 블록 R이 C형이 아닌 경우, 데이터 이동 전에, 데이터 이동처가 되는 미사용 클러스터 Z가 "임시 미사용 클러스터"인가 아닌가의 여부를 판단한다(S1306). 임시 미사용 클러스터의 상세한 것은 이후에 설명한다.
미사용 클러스터 Z가 임시 미사용 클러스터인 경우(S1306에서 YES), 클러스터 Z의 데이터를 고쳐쓰게(overwrite) 되므로, 그 전에 시스템 제어부(230)의 RAM 상의 FAT 테이블 1, FAT 테이블 2를 반도체 기록 매체(100)에 되돌려 기록한다(S1307). 즉, 데이터 기록 전에 반도체 기록 매체(100) 상의 FAT 테이블 1, FAT 테이블 2를 갱신해 둔다.
이어서, 클러스터 번호 k의 링크 대상의 데이터를 미사용 클러스터 Z에 복사한다(S1308). 즉, 데이터 영역(132)에의 기록을 실행한다.
그 후, 파일 시스템 제어부(230)의 RAM에 있어서, 클러스터 번호 k, 클러스터 번호 k의 링크 대상, 및 미사용 클러스터 Z 간의 링크 정보를 재기록하고(S1309), "이동 OK(완료)"로 하여(S1310), 처리를 종료한다.
이어서, 임시 미사용 클러스터에 대하여 설명한다. 임시 미사용 클러스터라는 것은, 클러스터 간의 데이터 이동 후에, 데이터 처리 장치(200b)의 FAT 테이블 상에서는 공백(미사용)인 것으로 인식되어 있지만, 반도체 기록 매체(100)의 FAT 테이블 상에서는 미사용인 것으로 인식되어 있지 않은 클러스터이다. 예를 들면, 클러스터 X로부터 클러스터 Y에 데이터를 이동하였을 때에, 클러스터 X는, 데이터 처리 장치(200b)의 FAT 테이블 상에서는 공백(미사용)인 것으로 인식되지만, 반도체 기록 매체(100)의 FAT 테이블 상에서는 공백인 것으로 인식되지 않는 경우가 있다. 이것은, 데이터 처리 장치(200b)의 FAT 테이블과 반도체 기록 매체(100)의 FAT 테이블의 갱신 타이밍이 상이하기 때문이다.
데이터 처리 장치(200b)는 처리 효율의 관점에서, 반도체 기록 매체(100)의 FAT 테이블을 데이터 처리 장치(200b) 내부에 포함시켜, 보통은 그 내부의 FAT 정보만을 갱신하고, 어느 타이밍에서만 반도체 기록 매체(100)에 FAT 테이블을 되돌려 기록한다. 이것은, 반도체 기록 매체(100)의 FAT 테이블의 갱신 처리에는 시간이 걸리므로, 데이터 갱신 시의 처리 시간을 적게 하기 위한 것이다. 또한, 클러스터 X로부터 클러스터 Y에 데이터를 이동시키는 경우, 이동원인 클러스터 X의 데이터를 이동처인 클러스터 Y에 복사하는 동시에, 데이터 처리 장치(200b) 내부의 FAT 테이블의 링크 정보를 재기록한다. 이때, 클러스터 X에 대해서는, 그 링크 정보가 재기록될 뿐이고, 데이터는 소거되지 않는다. 따라서, 이동 처리 후, 반도체 기록 매체(100)의 FAT 테이블이 갱신될 때까지의 사이에, 데이터 처리 장치(200b) 내부의 FAT 테이블 상에서는, 클러스터 X는 미사용 클러스터인 것으로 인식되지만, 반도체 기록 매체(100)의 FAT 테이블 상에서는, 클러스터 X의 이동 전의 상태가 유지된다. 이러한 클러스터 X가 임시 미사용 클러스터이다. 이 경우, 임시 미사용 클러스터인 클러스터 X는 이전의 데이터를 저장하고 있으므로, 반도체 기록 매체(100) 내부에 있어서는, 그 FAT 테이블과 데이터의 대응 관계는 설정되어 있다. 그러나, 임시 미사용 클러스터에 데이터를 기록하는 도중 또는 기록 종료 직후에, 예상하지 못한 사태에 의하여 반도체 기록 매체(100)에의 전원 공급이 차단되면, 임시 미사용 클러스터의 데이터는 고쳐써지지만, 반도체 기록 매체(100) 내부의 FAT 테이블은 갱신되지 않는 상황이 되어서, 반도체 기록 매체(100) 내부의 FAT 테이블과 데이터의 대응 관계에 있어서 부정합이 발생하는 문제가 있다. 그래서, 본 실시형태에서는, 임시 미사용 클러스터에의 데이터 기록 전에, 반도체 기록 매체(100) 상의 FAT 테이블 1, FAT 테이블 2를 갱신하도록 하고 있다(S1306, S1307). 이것에 의해서, 임시 미사용 클러스터에의 데이터 기록 도중 또는 종료 직후에, 예상하지 못한 사태에 의하여 반도체 기록 매체(100)에의 전원 공급이 차단된 경우에 있어서도, 반도체 기록 매체(100) 내부의 FAT 테이블과 데이터의 정합성(整合性)을 유지시킬 수 있다.
도 14는, 이동 전에 블록 #2에 미사용 클러스터 Z가 존재하고, 상기의 재정렬 처리에 의해서, 블록 #4의 "클러스터 Z2"의 데이터가 "미사용 클러스터 Z"으로 이동하였을 때의 상태 변화를 설명한다. 단, 링크 정보를 데이터 처리 장치(200b)의 파일 시스템 제어부(230)의 RAM 상에서 재기록한 것뿐이고, 반도체 기록 매체(100)의 FAT 정보는 갱신되어 있지 않은 것으로 한다. 이때, 반도체 기록 매체(100)는, 블록 #4에 있는 이동원인 클러스터 Z2에 아직 데이터가 기록되어 있는 것으로 인식한다. 이동 후의 클러스터 Z2가 "임시 미사용 클러스터"가 된다. 도 12에서 설명한 데이터의 재정렬 처리를 진행해 가면, 임시 미사용 클러스터에 다른 데이터가 고쳐써질 가능성이 있다. 고쳐쓰는 동안에 전원 차단 등이 발생하면, 데이터를 복구할 수 없게 되므로, 단계 S1307의 처리를 실행하고, FAT 테이블 1, FAT 테이블 2를 반도체 기록 매체(100)에 되돌려 기록하여, 반도체 기록 매체(100)에, 클러스터 Z2가 공백 영역인 것을 인식시킬 필요가 있다.
도 15는, 이동 전에 블록 #2에 미사용 클러스터 Z가 존재하고, 상기의 재정렬 처리에 의해서, 블록 #0의 클러스터 Z2의 데이터가, 미사용 클러스터 Z에 이동하였을 때의 상태 변화를 설명한다. 이동 후에 클러스터 Z2가 임시 미사용 클러스터로 되어 있다.
이상과 같이, 본 실시형태에서는, 반도체 기록 매체(100)의 각각의 블록 내에 일정한 개수 이상의 미사용 클러스터가 존재하도록 데이터를 재정렬시킴으로써, 기록 처리 속도가 극단적으로 저하하는 블록의 수를 감소시킬 수 있게 한다.
또한, 본 실시형태의 재정렬 방법은, FAT 테이블 1, FAT 테이블 2에 저장되어 있는 링크 정보의 변경 및 데이터 영역(132)에의 데이터 복사만으로써 실현한다. 디렉토리 엔트리(301)의 검색이나 재기록 등을 필요로 하지 않으므로 고속의 처리가 가능하다.
또한, 이하와 같은 변형 예를 고려할 수 있다.
(1) 본 실시형태에 있어서는, 블록 판정부(260)가, 블록 형태의 정의에 관한 정보를 미리 갖고 있는 것으로서 설명하였지만, 반도체 기록 매체(100)에 블록 형태의 정의에 관한 정보가 저장되어 있는 경우, 데이터 처리 장치(200b)가 상기 정보를 참조하여 블록 형태의 정의를 결정해도 좋다. 또한, 사용자에 의해서 지정된 정보에 의하여 결정해도 좋다.
또한, 본 실시형태에 있어서의 블록 형태의 정의는 일례이다. 블록 형태의 정의는 미사용 클러스터의 수가 아니고, 미사용 클러스터의 수의 비율이나 미사용 클러스터의 수가 차지하는 크기로 결정하여도 좋다.
(2) 본 실시형태에 있어서는, FAT 파일 시스템을 예로서 기술하였지만, 이것에 한정되는 것은 아니다. 블록보다도 작은 단위로 파일 데이터를 관리하는 경우에, 본 발명의 개념을 적용할 수 있다.
또한, 블록 단위나 클러스터 단위 등은 모두 일례이고, 다른 크기이어도 좋다.
(3) 본 실시형태에 있어서는, 데이터의 재정렬 처리의 설명에 있어서, 에러 처리를 생략하고 있지만, 에러 처리를 추가해도 좋다. 예를 들면, FAT 테이블 1, FAT 테이블 2가 손상되어 있는 경우, 에러 처리로서 재정렬 처리를 중단해도 좋다.
(4) 본 실시형태에 있어서는, 한창 재정렬 처리중일 때에 전원 차단이 발생하여, 반도체 기록 매체(100)의 데이터 영역(132)에 저장되어 있는 정보와 관리 정보 영역(131)에 저장되어 있는 정보에 부정합이 발생하는 것을 회피하기 위하여, 데이터의 고쳐쓰기를 실행하기 직전에 FAT 테이블 1, FAT 테이블 2를 기록하는 처리(S1306, S1307)가 존재하였다. 그러나, 전원 차단이 발생하지 않는 것이 미리 보증되어 있는 경우나, 상기 부정합이 발생해도 관계없는 경우 등에는 이러한 처리를 생략할 수 있다.
(5) 본 실시형태에 있어서는, S1301에서 클러스터 번호 k를 0으로 하고, 데이터 영역(132)의 최초의 클러스터로부터 순서대로 이동원의 데이터의 검색을 시작하였지만, 항상 최초부터 검색하지 않아도 좋다. 예를 들면, 전회(前回)에서 검색한 클러스터 번호를 기억해 두고, 이후는 그 다음부터 검색하는 사양이어도 좋다.
(6) 본 실시형태에 있어서의 데이터 재정렬 방법은, 기록 매체 내에서 관리하는 블록이, 파일 시스템에 있어서의 파일 데이터의 관리 단위인 클러스터보다도 크고, 또한 블록 넘음에 의하여 액세스 속도가 저하할 염려가 있는 경우에 유효하다. 이러한 조건을 만족시키는 기록 매체라면, 반도체 기록 매체에 한정되지 않는다.
(7) 본 실시형태에 있어서는, FAT 테이블 1 및 FAT 테이블 2의 기록 순서 등에 대하여 특히 언급하지 않았지만, 하기의 변형 예에 의하여 FAT 테이블 1 또는 FAT 테이블 2의 기록 처리중에 전원 차단 등이 발생해도 데이터를 복구시키는 것이 가능하게 된다.
도 16A, 도 16B는, 데이터 재정렬 처리의 변형 예의 플로차트이다. 본 변형 예에 있어서는, 데이터 처리 장치(200b)가 유효 FAT 플래그를 구비하고 있는 것으로 한다. 유효 FAT 플래그는, FAT 테이블 1 및 FAT 테이블 2 중에서 어느 FAT 테이블이 유효한가를 나타내는 플래그이다. 이 플래그를 참조하여, 유효한 쪽의 FAT 테이블을 결정하고, 그 정보를 참조함으로써, 올바른 링크 정보를 얻을 수 있다.
우선, 유효 FAT 플래그를 "1"에 설정한다(S1601). 그 후, 도 12, 도 13에 나타낸 재정렬 처리를 실행한다(S1602). 단, 단계 S1209 및 S1307에 있어서의 FAT 테이블의 기록 처리에 대해서는, 도 16B에 나타내는 처리를 실행한다.
도 16B에 나타내는 처리를 설명한다. 우선, 데이터 처리 장치(200b) 상의 FAT 테이블 2를, 반도체 기록 매체(100)에 되돌려 기록한다(S1611). 이어서, 유효 FAT 플래그를 "2"에 설정하고(S1612), 반도체 기록 매체(100) 상에서 FAT 테이블 2를 FAT 테이블 1에 복사한다(S1613). 복사 완료 후에, 유효 FAT 플래그를 "1"로 복귀시킨다(S1614).
이 변형 예를 적용한 경우, FAT의 기록 처리중에 전원 차단 등이 발생하여 기록 에러가 발생한 경우에는, 데이터 처리 장치(200b)는 유효 FAT 플래그를 참조하여, 현재 유효로 되어 있는 FAT 테이블을 다른 쪽에 복사할 수 있다. 즉, 유효 FAT 플래그가 "1"이면, FAT 테이블 1을 FAT 테이블 2에 복사하고, 유효 FAT 플래그가 "2"이면, FAT 테이블 2를 FAT 테이블 1에 복사한다.
이 절차에 따라서 FAT 테이블의 기록중에 에러가 발생한 경우에도, 데이터를 정합성이 있는 상태로 복원할 수 있게 된다. 또한, 상기 유효 FAT 플래그는 반도체 기록 매체(100) 내에 저장해도 좋다.
(8) 본 실시형태의 데이터 재정렬 방법을, 제1실시형태의 데이터 기록 방법과 조합하는 것도 가능하다. 양(兩) 실시형태의 기술 개념을 조합함으로써, 데이터 기록 시의 단편화에 의한 속도 저하를 더욱 효과적으로 감소시킬 수 있다.
이상, 본 발명을, 특정한 실시형태에 대하여 설명하였지만, 당업자에게는 다른 많은 변형 예, 수정, 및 기타의 이용이 있을 수 있는 것은 명백하다. 따라서, 본 발명은, 여기에서의 특정한 개시에 한정되지 않고, 첨부된 청구의 범위에 의해서만 한정될 수 있다. 또한, 본 출원은 일본국 특허 출원, 특원 2003-404158호(2003년 12월 03일 제출)에 관련되고, 그 내용은 참조로서 본문에 포함된다.
본 발명은, 미사용 클러스터의 수가 어느 일정치 이상인 블록에 대해서만 기록을 실행함으로써, 정보 기록 매체에의 어느 기록 처리의 최저 속도가 극단적으로 저하하는 것을 회피할 수 있으므로, 동화상 콘텐츠의 기록 시 등의 고속 기록 처리가 요구되는 정보 기록 매체의 데이터 처리 장치에 적용할 수 있다.

Claims (13)

  1. 데이터를 저장하는 기록 영역을 구비하고, 저장 데이터가 파일 시스템에 의해서 관리되는 정보 기록 매체에 대하여 데이터를 기록하는 기록 방법에 있어서,
    상기 정보 기록 매체는 기록 영역이 블록 단위로 관리되고, 블록은 파일 시스템의 데이터를 저장하는 단위인 클러스터를 소정 수(數) 포함하고 있으며,
    상기 기록 방법은,
    새로운 공백 영역에 데이터를 기록할 필요가 있는 경우, 소정의 문턱값(threshold) 이상의 미사용 클러스터를 포함하는 유효 블록을 검색하고, 검색한 유효 블록을 상기 블록 단위로 관리하여, 데이터 기록 처리 시에, 관리하는 유효 블록 중에서 데이터가 기록되어야 할 유효 블록을 검색하여, 검색한 유효 블록에 대하여 데이터의 기록 처리를 실행하고,
    상기 관리하는 유효 블록에 대해서만 데이터가 기록되고,
    상기 소정의 문턱값은, 상기 정보 기록 매체 내에 저장되어 있는 문턱값에 관한 정보를 참조하여 결정되는
    데이터 기록 방법.
  2. 제1항에 있어서,
    새로운 공백 영역에 데이터를 기록할 필요가 있는 경우에, 상기 검색한 유효 블록 내의 미사용 클러스터에 대하여 데이터의 기록 처리를 실행하는
    데이터 기록 방법.
  3. 제2항에 있어서,
    상기 기록 영역의 각각의 블록에 포함되는 미사용 클러스터의 수를 계수하고, 계수 결과에 의거하여 상기 유효 블록을 구하고, 유효 블록에 관한 리스트 정보인 유효 공백 영역 리스트를 생성하여 저장하고,
    데이터 기록 처리 시에, 상기 유효 공백 영역 리스트를 참조하여 상기 유효 블록을 검색하는
    데이터 기록 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 문턱값은 1 블록 내의 클러스터 수의 1/2 이상의 값인
    데이터 기록 방법.
  6. 정보 기록 매체에 대한 데이터의 기록, 판독을 실행하는 데이터 처리 장치에 있어서,
    상기 정보 기록 매체는 기록 영역이 블록 단위로 관리되고, 블록은 파일 시스템의 데이터를 저장하는 단위인 클러스터를 소정 수 포함하고 있으며,
    상기 데이터 처리 장치는,
    상기 정보 기록 매체로의 정보의 입출력을 실행하는 입출력 처리부와,
    상기 정보 기록 매체에 저장된 데이터를 파일로 하여 관리하는 파일 시스템 제어부와,
    상기 정보 기록 매체에 대한 데이터의 기록, 판독에 관한 제어를 실행하는 데이터 처리부와,
    상기 정보 기록 매체의 영역에서 소정의 문턱값 이상의 미사용 클러스터를 포함하는 유효 블록에 관한 정보를 상기 블록 단위로 관리하는 유효 공백 영역 관리부를 포함하고,
    상기 데이터 처리부는, 새로운 공백 영역에 데이터를 기록할 필요가 있는 경우, 상기 유효 공백 영역 관리부에 저장된 정보를 참조하여, 관리하는 유효 블록 중에서 데이터를 기록해야 할 유효 블록을 검색하고, 검색한 유효 블록에 대하여 데이터의 기록을 실행하도록, 제어를 실행하고,
    상기 데이터 처리부는, 상기 유효 공백 영역 관리부에서 관리되는 유효 블록에 대해서만 데이터를 기록하고,
    상기 소정의 문턱값은, 상기 정보 기록 매체 내에 저장되어 있는 문턱값에 관한 정보를 참조하여 결정되는
    데이터 처리 장치.
  7. 제6항에 있어서,
    상기 유효 공백 영역 관리부는, 상기 문턱값 이상의 미사용 클러스터를 포함하는 블록인 유효 블록에 관한 리스트 정보인 유효 공백 영역 리스트를 저장하는
    데이터 처리 장치.
  8. 삭제
  9. 제6항에 있어서,
    상기 문턱값은 1 블록 내의 클러스터 수의 1/2 이상의 값인
    데이터 처리 장치.
  10. 데이터를 저장하는 기록 영역을 구비하고, 저장 데이터가 파일 시스템에 의해서 관리되는 정보 기록 매체의 기록 영역에서의 데이터 재정렬 방법에 있어서,
    상기 정보 기록 매체는 기록 영역이 블록 단위로 관리되고, 각각의 블록은 파일 시스템의 데이터를 저장하는 단위인 클러스터를 소정 수 포함하며,
    상기 데이터 재정렬 방법은,
    상기 정보 기록 매체의 각각의 블록에 대하여, 블록에 포함되는 미사용 클러스터의 수가 소정의 범위 내에 있는지 아닌지의 여부를 판정하고,
    블록에 포함되는 미사용 클러스터의 수가 소정의 범위 내에 있는 블록에 대하여, 블록에 포함되는 미사용 클러스터에, 다른 블록의 사용 클러스터로부터 데이터를 이동시키는
    데이터 재정렬 방법.
  11. 제10항에 있어서,
    상기 소정의 범위는, 1 이상이면서 또한 1 블록 중의 클러스터 수의 1/2 미만의 범위인
    데이터 재정렬 방법.
  12. 제10항에 있어서,
    상기 정보 기록 매체는 저장 데이터가 FAT 파일 시스템에 의해서 관리되고 있으며, 상기 FAT 파일 시스템이, 링크(link) 정보로서 제1 및 제2의 FAT 테이블을 구비하고 있는 경우, 상기 제1 및 제2의 FAT 테이블 중에서 유효한 테이블을 나타내는 유효 FAT 플래그(flag)를 설정해 두고,
    상기 데이터 재정렬 방법은, 또한
    데이터 이동 후에, 상기 제2의 FAT 테이블을 상기 정보 기록 매체에 기록하고,
    상기 유효 FAT 플래그를, 상기 제2의 FAT 테이블이 유효인 것을 나타내도록 설정하고,
    상기 정보 기록 매체에서 상기 제2의 FAT 테이블의 내용을 상기 제1의 FAT 테이블에 복사하고,
    상기 유효 FAT 플래그를, 상기 제1의 FAT 테이블이 유효인 것을 나타내도록 설정하는
    데이터 재정렬 방법.
  13. 정보 기록 매체에 대하여 데이터의 기록, 판독을 실행하는 데이터 처리 장치에 있어서,
    상기 정보 기록 매체에의 정보의 입출력을 실행하는 입출력 처리부와,
    상기 정보 기록 매체에 저장된 데이터를 파일로 하여 관리하는 파일 시스템 제어부와,
    상기 정보 기록 매체에 대한 데이터의 기록, 판독에 관한 제어를 실행하는 데이터 처리부와,
    상기 정보 기록 매체 내의 각각의 블록을, 블록 내에 포함되는 미사용 클러스터의 수에 따라서 분류하고, 그 분류 정보를 저장하는 블록 판정부를 포함하고,
    상기 데이터 처리부는, 상기 블록 판정부에 저장된 분류 정보를 참조하여, 각각의 블록에 대하여, 블록에 포함되는 미사용 클러스터의 수가 소정의 범위 내에 있는 블록인지 아닌지의 여부를 판단하고, 블록이 미사용 클러스터의 수가 소정의 범위 내에 있는 블록인 경우에, 그 블록에 포함되는 미사용 클러스터에, 다른 블록의 사용 클러스터로부터 데이터를 이동시키도록, 제어를 실행하는
    데이터 처리 장치.
KR1020067010179A 2003-12-03 2004-11-30 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법 KR101046083B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00404158 2003-12-03
JP2003404158 2003-12-03
PCT/JP2004/017767 WO2005055064A1 (ja) 2003-12-03 2004-11-30 情報記録媒体のデータ処理装置及びデータ記録方法

Publications (2)

Publication Number Publication Date
KR20060120674A KR20060120674A (ko) 2006-11-27
KR101046083B1 true KR101046083B1 (ko) 2011-07-01

Family

ID=34650127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067010179A KR101046083B1 (ko) 2003-12-03 2004-11-30 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법

Country Status (7)

Country Link
US (1) US20070162707A1 (ko)
EP (1) EP1693758A4 (ko)
JP (1) JP4608434B2 (ko)
KR (1) KR101046083B1 (ko)
CN (1) CN1890645B (ko)
TW (1) TWI356302B (ko)
WO (1) WO2005055064A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004206861A (ja) * 2002-12-13 2004-07-22 Matsushita Electric Ind Co Ltd 空き領域の検索方法および検索装置、記録済み領域の配置の検証方法および検証装置
EP1936508B1 (en) * 2005-09-22 2019-07-03 Panasonic Corporation Information recording medium access apparatus, and data recording method
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法
JP4802791B2 (ja) * 2006-03-20 2011-10-26 ソニー株式会社 データ記憶装置及びデータアクセス方法
KR101433860B1 (ko) * 2007-10-10 2014-08-26 삼성전자주식회사 파일을 효율적으로 관리할 수 있는 정보 처리 장치
US20110055297A1 (en) * 2009-03-13 2011-03-03 Takuji Maeda Access module, information recording module, controller, and information recording system
JP5481493B2 (ja) 2009-11-11 2014-04-23 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
US8054684B2 (en) * 2009-12-18 2011-11-08 Sandisk Technologies Inc. Non-volatile memory and method with atomic program sequence and write abort detection
JP5471547B2 (ja) * 2010-02-10 2014-04-16 ソニー株式会社 情報記録装置、撮像装置、情報更新方法及びプログラム
CN102314490B (zh) * 2011-08-16 2013-07-10 晨星软件研发(深圳)有限公司 一种Linux FAT文件系统修复方法及装置
JP6053274B2 (ja) * 2011-10-31 2016-12-27 キヤノン株式会社 ファイル管理装置、ファイル管理方法およびプログラム
CN103257831B (zh) 2012-02-20 2016-12-07 深圳市腾讯计算机系统有限公司 存储器的读写控制方法及对应的存储器
CN104583973B (zh) 2012-08-07 2017-09-08 松下知识产权经营株式会社 记录装置、记录系统以及记录方法
CN103631774B (zh) * 2012-08-20 2018-03-20 腾讯科技(深圳)有限公司 数据存储方法和系统
CN111782656B (zh) 2020-06-30 2024-04-12 京东科技信息技术有限公司 数据读写方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411552B1 (en) * 1997-08-04 2002-06-25 Tokyo Electron Device Limited Data processing system, block erasing type memory device and memory medium storing program for controlling memory device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US5210865A (en) * 1989-06-30 1993-05-11 Digital Equipment Corporation Transferring data between storage media while maintaining host processor access for I/O operations
US5287500A (en) * 1991-06-03 1994-02-15 Digital Equipment Corporation System for allocating storage spaces based upon required and optional service attributes having assigned piorities
US5535369A (en) * 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
KR0127029B1 (ko) * 1994-10-27 1998-04-01 김광호 메모리카드와 그 기록, 재생 및 소거방법
JPH09251407A (ja) * 1996-03-14 1997-09-22 Matsushita Electric Ind Co Ltd 記憶領域管理方法及び記憶装置
US5872905A (en) * 1996-03-14 1999-02-16 Matsushita Electric Industrial Co., Ltd. Recording area management method, error recovery processing method, and storage apparatus
JP3407628B2 (ja) * 1997-12-19 2003-05-19 株式会社日立製作所 計算機システム
US6202121B1 (en) * 1998-04-15 2001-03-13 Microsoft Corporation System and method for improved program launch time
US6377958B1 (en) * 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6397308B1 (en) * 1998-12-31 2002-05-28 Emc Corporation Apparatus and method for differential backup and restoration of data in a computer storage system
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
US6611907B1 (en) * 1999-10-21 2003-08-26 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
JP2003296177A (ja) * 2002-04-03 2003-10-17 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
JP2003296156A (ja) * 2002-04-04 2003-10-17 Sony Corp 情報記録管理装置、データ記録再生装置、情報記録管理方法及びファイル管理方法
US20050216684A1 (en) * 2003-11-21 2005-09-29 Matsushita Electric Industrial Co., Ltd. Information recording medium, data processing apparatus, and recording region setting method of information recording medium
US7401174B2 (en) * 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7801930B2 (en) * 2004-05-10 2010-09-21 Panasonic Corporation Recording medium, host device, and data processing method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411552B1 (en) * 1997-08-04 2002-06-25 Tokyo Electron Device Limited Data processing system, block erasing type memory device and memory medium storing program for controlling memory device

Also Published As

Publication number Publication date
WO2005055064A1 (ja) 2005-06-16
CN1890645A (zh) 2007-01-03
KR20060120674A (ko) 2006-11-27
US20070162707A1 (en) 2007-07-12
TWI356302B (en) 2012-01-11
JP4608434B2 (ja) 2011-01-12
EP1693758A1 (en) 2006-08-23
TW200527206A (en) 2005-08-16
JPWO2005055064A1 (ja) 2007-12-06
CN1890645B (zh) 2010-09-08
EP1693758A4 (en) 2009-02-04

Similar Documents

Publication Publication Date Title
US7401174B2 (en) File system defragmentation and data processing method and apparatus for an information recording medium
KR101046083B1 (ko) 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법
JP5485163B2 (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
KR100877448B1 (ko) 비휘발성 기억 시스템
KR101042588B1 (ko) 플래시 메모리들에 직접 데이터 파일 저장
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
CN108009098B (zh) 具有经压缩的正向映射的存储分层
US8977802B2 (en) Access device, information recording device, controller, real time information recording system, access method, and program
KR20070024573A (ko) 최적의 성능을 위한 파일 관리 방법
US20080288710A1 (en) Semiconductor Memory Device and Its Control Method
WO2011121870A1 (ja) データ記録装置、及びデータ記録方法
JP2005216119A (ja) 記録媒体
WO2010001606A1 (ja) コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法
CN113535086B (zh) 一种固态硬盘中重建的加速方法
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
WO2018186455A1 (ja) 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム
JP2021082005A (ja) 記録装置
KR100727399B1 (ko) 데이터 입출력 속도가 증가된 메모리 카드
JP2004342090A (ja) データ記録装置
JP4219299B2 (ja) 記録デバイスのキャッシュ方法及びデータ記録装置
JP2001202282A (ja) データファイリングシステム及びデータファイリング方法
JP2006338437A (ja) 半導体記録メディアへのデータ記録方法及びアクセス装置

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20060525

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20080222

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20091021

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20100618

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20110524

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20110627

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20110627

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20140603

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20150529

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20150529

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20160517

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20170522

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20180328

Start annual number: 8

End annual number: 14