KR20050107557A - 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리정보 갱신 방법, 및 컴퓨터 프로그램 - Google Patents

데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리정보 갱신 방법, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20050107557A
KR20050107557A KR1020047018663A KR20047018663A KR20050107557A KR 20050107557 A KR20050107557 A KR 20050107557A KR 1020047018663 A KR1020047018663 A KR 1020047018663A KR 20047018663 A KR20047018663 A KR 20047018663A KR 20050107557 A KR20050107557 A KR 20050107557A
Authority
KR
South Korea
Prior art keywords
management information
block
data
update
information
Prior art date
Application number
KR1020047018663A
Other languages
English (en)
Inventor
겐이찌 나까니시
준꼬 사사끼
노부히로 가네꼬
오사무 나가따
히데아끼 오꾸보
Original Assignee
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20050107557A publication Critical patent/KR20050107557A/ko

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

관리 정보의 갱신에 따른 기입 에러에 대한 내성이 높은 데이터 기억 장치 및 관리 정보 갱신 방법을 제공한다. 플래시 메모리의 어드레스 관리 정보인 FAT 등의 파일 관리 정보를 메모리의 관리 정보 영역에 저장함과 함께, FAT 구성 데이터의 저장 블럭으로서 2개의 블럭으로 이루어지는 블럭 조를 설정하고, 블럭 조를 구성하는 2개의 블럭의 각 페이지를 교대로 적용하여 갱신 FAT 정보를 기입한다. 블럭 조를 구성하는 1개의 블럭에 갱신 직전의 FAT 정보를 유지한 채, 갱신 정보를 다른 한쪽의 블럭에 기입하는 구성으로 하였기 때문에, 갱신 관리 정보의 기입 에러 발생시에도 갱신 직전의 FAT 정보를 이용한 처리가 가능해진다.

Description

데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리 정보 갱신 방법, 및 컴퓨터 프로그램{DATA STORAGE DEVICE, METHOD FOR UPDATING MANAGEMENT INFORMATION IN DATA STORAGE DEVICE, AND COMPUTER PROGRAM}
본 발명은, 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리 정보 갱신 방법, 및 컴퓨터 프로그램에 관한 것이다. 또한, 상세하게는, 플래시 메모리에 저장하는 관리 정보, 예를 들면, 논리 물리 어드레스 변환 테이블, 혹은 FAT(File Allocation Table) 등의 파일 관리 정보의 기입 처리를 실행하는 장치 및 방법에 관한 것이다. 특히, 관리 정보의 정보 소실 에러에 대한 내성을 높일 수 있게 한 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리 정보 갱신 방법, 및 컴퓨터 프로그램에 관한 것이다.
오늘날, PC(퍼스널 컴퓨터), 데이터 기록 또는 재생 장치, PDA, 비디오 카메라 등, 각종 전자 기기에 있어서의 데이터 기억 장치로서 플래시 메모리가 많이 이용되고 있다. 데이터의 기입 및 소거가 용이한 플래시 메모리는, 소형, 경량, 고속성, 저소비 전력이라는 특성을 가지며, 예를 들면, 화상 데이터, 음성 데이터, 텍스트 파일, 프로그램 등의 기억 매체로서 이용된다.
특히, 플래시 메모리를 전자 기기에 대하여 착탈이 자유로운 구성으로 한 메모리 카드가 활발히 이용되고 있어, 예를 들면, 비디오 카메라로 취득한 화상 데이터를 축적한 메모리 카드를 PC에 장착하여 재생하거나, 혹은 PC에서 인터넷을 통해, 혹은 CD, DVD, MD 등의 기억 매체로부터 취득한 음악 데이터를 메모리 카드에 저장하고, 휴대 플레이어에 메모리 카드를 장착하여 재생하는 등의 이용이 이루어진다.
도 1에 도시한 바와 같이, 플래시 메모리에는, 데이터의 소거 처리 단위로서의 블럭(110), 및 데이터의 판독, 기입 단위로서의 페이지(120)가 규정되어 있다. 플래시 메모리는, 복수의 블럭을 가지고, 1블럭은 복수 페이지에 의해서 구성된다. 1페이지는, 예를 들면, 512Byte의 데이터 저장 영역(121)과, 패리티 데이터 등을 기입하는 16Byte의 확장 영역(Extra 영역)(122)으로 구성된다. 또한, 데이터 저장 영역, 확장 영역의 데이터 사이즈는 플래시 메모리에 따라서 다양하다. 예를 들면, 2048Byte의 데이터 저장 영역(121)과, 64Byte의 확장 영역(Extra 영역)(122)의 조합 등도 있다.
플래시 메모리에 대한 데이터의 기입, 데이터의 판독, 혹은 소거 처리는, 플래시 메모리의 특정한 데이터 영역을 어드레스에 의해 지정하는 것이 필요해진다. 플래시 메모리에 있어서의 어드레스 지정에서는, 플래시 메모리를 이용하는 전자 기기로부터의 어드레스 지정 정보로서의 논리 어드레스로부터, 플래시 메모리에 있어서의 물리적 위치 정보로서의 물리 어드레스로 변환하는 처리가 행하여진다.
플래시 메모리는, 논리 어드레스를 물리 어드레스로 변환하기 위한 변환 정보를 저장한 테이블인 논리-물리 어드레스 변환 테이블을 플래시 메모리 내의 특정한 블럭에 설정된 관리 정보 영역에 기억하고 있다.
플래시 메모리에 있어서의 논리-물리 어드레스 변환 테이블의 적용 구성에 대해서는, 예를 들면, 특허 문헌1(일본 특개2000-47932호 공보)에 기재되어 있다.
플래시 메모리에 있어서는, 예를 들면, 임의의 페이지에 기입된 데이터를 PC 등의 전자 기기가 판독하여 데이터 갱신을 행한 경우, 그 갱신 데이터는, 판독한 페이지 위치와는 다른 위치에 기입된다. 이는, 기억 소자의 기입/소거의 반복 횟수에 상한이 있어, 플래시 메모리의 균일한 이용을 행하여 플래시 메모리 전체로서의 수명을 높이기 위함이다.
논리-물리 어드레스 변환 테이블을 적용한 어드레스 변환 처리에 의해, 예를 들면, 상술한 바와 같은 데이터 갱신이 실행되어 물리적인 데이터 기입 위치를 변경한 경우라도 논리 어드레스를 불변으로 할 수 있게 되고, 전자 기기측에서는, 갱신 전후에서 동일한 논리 어드레스를 적용한 데이터 판독 또는 기입이 가능해진다.
또한, PC 등에 있어서 적용되는 파일 관리 시스템으로서, 예를 들면, FAT(File Allocation Table)가 있다. FAT는, 하드디스크, 플로피 디스크 등에 있어서의 파일 저장 위치 정보의 관리 정보로서 종래부터 이용되고 있다. 1개의 데이터 파일의 저장 위치를 데이터 저장 영역의 단위로서의 클러스터의 연쇄에 의해서 관리하는 테이블로서, FAT는 클러스터 연쇄 정보를 기록하고 있다. 이 FAT는, 상술한 플래시 메모리의 파일 관리 정보로서도 적용되고 있다.
플래시 메모리에 있어서 적용하는 FAT에서의 데이터 저장 영역 단위로서의 1클러스터는, 플래시 메모리에 있어서 예를 들면, 1블럭에 상당한다. 즉, 1개의 데이터 파일이 플래시 메모리의 복수 블럭(클러스터에 상당)에 걸쳐 기입되어 있는 경우, 복수 블럭의 연쇄 정보가 FAT에 저장된다.
논리-물리 어드레스 변환 테이블 및 FAT는, 플래시 메모리의 소정 블럭에 기입되고, 플래시 메모리를 이용하는 호스트 기기, 즉 PC 등의 전자 기기가, 플래시 메모리를 사용할 때에 호스트 기기 내의 RAM(Random Access Memory)에 읽어 들여 이용한다. 호스트 기기의 RAM에 판독된 논리-물리 어드레스 변환 테이블 및 FAT는, 예를 들면, 플래시 메모리에 저장하는 음악 데이터나 화상 데이터의 갱신 등에 따라서 호스트 기기의 CPU의 제어 하에 함께 갱신된다. 갱신된 관리 정보는, 다시 플래시 메모리의 관리 정보 영역에 기입된다.
PC 등, 플래시 메모리를 갖는 메모리 카드를 장착한 호스트 기기에 있어서, 메모리 카드에 대한 데이터 기입 또는 데이터 판독 처리 시퀀스의 개요는 이하와 같다. 어플리케이션 처리 프로그램의 요구에 수반하여 FAT에 의한 파일 기억 위치 관리가 참조되어, FAT에 기초하는 클러스터 연쇄 정보에 기초하는 블럭 연쇄 정보로서의 논리 어드레스를 취득하고, 또한, 논리-물리 어드레스 변환 테이블에 기초하여 논리-물리 어드레스 변환이 행하여져, 물리 어드레스에 따라서 액세스 위치가 결정되어 실제의 액세스가 행해지게 된다.
상술한 바와 같이, 플래시 메모리에 대한 데이터 기입, 판독, 혹은 소거 등의 처리에는, FAT 및 논리-물리 어드레스 변환 테이블이 적용된다. 이들 FAT 및 논리-물리 어드레스 변환 테이블 등의 관리 정보는, 플래시 메모리의 블럭에 기입된다.
상술한 바와 같이, 플래시 메모리에 저장하는 데이터 갱신에 수반하여 관리 정보의 갱신도 필요해진다. 도 2에 도시하는 흐름도를 이용하여, 플래시 메모리의 관리 정보의 갱신 처리 수순에 대하여 설명을 한다. 여기서는, 임의의 관리 정보가 플래시 메모리 내의 소정의 블럭에 기입되어 있는 것으로 한다.
우선, 단계 S21에서, 데이터 기입/판독/소거 처리 제어 수단으로서의 CPU가, 플래시 메모리 내의 소정의 블럭을 검색하고, 블럭 내에 빈 페이지가 있는지의 여부를 판단한다. 블럭 내에 빈 페이지가 없는 경우에는 단계 S23으로 진행하고, 블럭 내에 빈 페이지가 있는 경우에는 단계 S22로 진행한다.
단계 S22에서, CPU는, 갱신 직전의 관리 정보가 기입되어 있는 페이지와 동일한 블럭에 있는 빈 페이지를, 갱신한 관리 정보를 기입하기 위한 새로운 페이지로서 확보한다.
단계 S23에서, CPU는, 관리 정보가 기입되어 있는 페이지가 해당 블럭의 최후의 페이지이기 때문에, 플래시 내의 빈 블럭을 확보하고, 그 선두 페이지를 갱신한 관리 정보를 기입하기 위한 새로운 페이지로서 확보한다.
단계 S24, S25에서, CPU는, 단계 S22 또는 단계 S23에서 확보한 새로운 페이지에 갱신한 관리 정보를 기입한다. 단계 S26에서는, 단계 S25가 종료하면, 갱신전의 관리 정보가 기입된 관리 정보를 모두 소거, 즉 블럭 단위의 소거 처리를 실행하여 빈 블럭으로 한다. 이상으로 갱신 처리가 종료한다.
도 2의 흐름도를 이용하여 설명한 바와 같이 관리 정보의 갱신이 행하여지면, 플래시 메모리의 블럭은 도 3에 도시한 바와 같이 관리 정보가 갱신되어 간다.
관리 정보가 기입되는 블럭을 블럭(151), 블럭(152)으로 하면, 우선, 블럭(151)의 페이지 번호 0부터 관리 정보가 기입되어, 페이지 번호 n까지 기입된다. 계속해서, 블럭(152)으로 이동해, 블럭(152)의 페이지 번호 O부터 관리 정보가 기입된다. 이와 같이 하여, 플래시 메모리의 블럭에는, 블럭마다 순서대로 관리 정보가 갱신되어 간다.
또한, 플래시 메모리의 관리 정보의 갱신 처리에서, 갱신 처리에 실패한 경우, 혹은 갱신 처리중에 이상이 발생하여, 새로운 관리 정보를 정상적인 상태로 기입할 수 없었던 경우, CPU는, 갱신 직전의 관리 정보를 최신의 값으로서 취급하게 된다.
그런데, 플래시 메모리는, 페이지에 데이터를 기입하는 처리에서 에러가 발생한 경우, 그 페이지가 속하는 블럭 내의 데이터 전체에 에러가 미치는 스큐 에러라는 현상이 발생하는 특성이 있다.
스큐 에러란, 도 4에 도시한 바와 같이, 블럭 내의 페이지가 있는 비트에 에러가 발생하면, 블럭 내의 다른 모든 페이지의 동일 비트도 에러가 발생하여 블럭내 모든 데이터가 손상을 입는다는 것이다.
도 2의 흐름도를 참조하여 설명한 플래시 메모리 내의 관리 정보의 갱신에서는, 블럭 내의 갱신 전의 관리 정보가 기입되어 있는 페이지의 다음의 빈 페이지에 관리 정보를 기입하기 때문에, 갱신 처리에 실패하여 에러가 발생한 경우, 에러가 발생한 페이지를 갖는 블럭 내의 모든 관리 정보에 에러가 발생해 버린다. 따라서, 갱신 처리에 실패한 경우에 필요해지는 갱신 직전의 관리 정보에도 에러가 발생하여, 관리 정보를 잃어버려, 갱신 처리는 물론 판독 처리도 행할 수 없게 된다는 문제가 있다.
또한, 종래 플래시 메모리의 하나의 메모리 셀에는 1bit의 정보 밖에 기억할 수 없는데, 플래시 메모리의 저비용화, 대용량화를 위해 하나의 메모리 셀에 2bit, 나아가서는 4bit 라는 정보를 기억하는 다치화가 행해진 경우, 상술한 스큐 에러는 광범위한 비트에 미치게 되어, 오류 정정 코드만으로는 대처할 수 없다는 문제가 있다.
<발명의 개시>
본 발명은, 상술한 종래 기술에서의 문제점에 감안하여 이루어진 것으로, 관리 정보의 갱신에 수반하는 기입 에러로부터, 관리 정보를 보호할 수 있게 한 데이터 기억 장치, 및 데이터 기억 장치에서의 관리 정보 갱신 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명은, 특히 FAT 등의 파일 관리 정보를 복수의 블럭을 적용하여, 갱신 데이터를, 순차적으로 블럭을 전환하여 기입함으로써, 에러에 대한 내성을 높인 데이터 기억 장치, 및 데이터 기억 장치에서의 관리 정보 갱신 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 제1 측면은,
데이터 기억부와, 그 데이터 기억부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖는 데이터 기억 장치로서,
상기 데이터 기억부는, 소정 용량의 데이터를 기억 가능한 페이지가 복수 설정된 블럭으로 분할되고, 사용자 데이터의 저장 영역으로서의 데이터 영역과, 해당 데이터 영역에 대한 액세스를 위한 어드레스 정보를 포함하는 관리 정보 영역을 가지고,
상기 관리 정보 영역은, 상기 데이터 영역에 저장된 데이터 파일의 어드레스연쇄 정보를 갖는 파일 관리 정보를 저장하고,
상기 제어부는,
상기 파일 관리 정보의 갱신 정보를, 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 파일 관리 정보를 남기고, 상기 블럭조를 구성하는 다른 쪽 블럭의 구성 페이지에 갱신후 파일 관리 정보를 기입하는 처리를 실행하는 구성인 것을 특징으로 하는 데이터 기억 장치에 있다.
또한, 본 발명의 데이터 기억 장치의 일 실시양태에 있어서, 상기 파일 관리 정보는, FAT(File Allocation Table)이고, 상기 제어부는, FAT 갱신 정보의 기입 처리에 있어서, 상기 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 적용하고, 블럭조를 구성하는 2블럭의 구성 페이지에 대하여, 2블럭을 교대로 적용하여 갱신 FAT 정보를 기입하는 처리를 실행하는 구성임을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치의 일 실시 양태에 있어서, 상기 파일 관리 정보에 대하여 설정되는 1개의 논리 어드레스에 대응하여 상기 블럭조의 어드레스 정보로서의 2개의 물리 어드레스가 설정되고, 상기 제어부는, 갱신할 파일 관리 정보를 지정한 논리 어드레스에 따라서 상기 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하는 구성임을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치의 일 실시 양태에 있어서, 상기 제어부는, 사용자 데이터의 저장 영역으로서의 데이터 영역에 대한 사용자 데이터 기입 처리의 일 처리 단위마다, 상기 파일 관리 정보의 갱신 정보의 기입 처리를 실행하는 구성임을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치의 일 실시 양태에 있어서, 상기 데이터 기억부의 관리 정보 영역에는, 또한, 상기 데이터 영역에 저장된 데이터에 대응하여 설정되는 논리 어드레스와, 상기 데이터 영역에 저장된 데이터의 물리적 위치에 대응하여 설정되는 물리 어드레스를 대응시킨 논리 물리 어드레스 변환 테이블을 저장한 구성임을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치의 일 실시 양태에 있어서, 상기 제어부는, 또한, 상기 논리 물리 어드레스 변환 테이블의 갱신 정보를, 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 논리 물리 어드레스 변환 테이블 구성 정보를 남기고, 상기 블럭조를 구성하는 다른 한쪽 블럭의 구성 페이지에 갱신후 논리 물리 어드레스 변환 테이블 구성 정보를 기입하는 처리를 실행하는 구성을 갖는 것을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치의 일 실시 양태에 있어서, 상기 데이터 기억 장치는, 정보 처리 장치에 착탈 가능한 구성을 가짐과 함께, 상기 정보 처리 장치와의 데이터 입출력 가능한 인터페이스 수단을 포함하고, 상기 제어부는, 상기 인터페이스 수단을 통해 정보 처리 장치로부터의 논리 어드레스를 입력하고, 해당 입력 논리 어드레스에 따라서 2개의 물리 어드레스를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭의 조로서 식별하는 구성임을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치의 일 실시 양태에 있어서, 상기 제어부는, 상기 파일 관리 정보의 갱신 처리를 페이지 단위로 실행하고, 상기 블럭조를 구성하는 2개의 블럭의 구성 페이지를 교대로 시퀀셜하게 사용하여 갱신 관리 정보의 기입 처리를 실행하고, 해당 블럭조를 구성하는 2블럭의 구성 페이지에 빈 페이지가 없는 경우, 갱신 직전의 파일 관리 정보가 저장된 블럭과 서로 다른 블럭의 데이터를 소거하고, 해당 소거 블럭의 선두 페이지에 갱신 파일 관리 정보의 기입 처리를 실행하는 구성임을 특징으로 한다.
또한, 본 발명의 제2 측면은,
데이터 기억부와, 그 데이터 기억부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖는 데이터 기억 장치에서의 관리 정보 갱신 방법으로,
갱신 관리 정보에 대응하는 논리 어드레스를 입력하는 논리 어드레스 입력 단계와,
상기 논리 어드레스에 따라서 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하는 블럭조 식별 단계와,
상기 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 파일 관리 정보를 남기고, 상기 블럭조를 구성하는 다른 쪽 블럭의 구성 페이지에 갱신후 파일 관리 정보를 기입하는 처리를 실행하는 갱신 정보 기입 단계
를 갖는 것을 특징으로 하는 데이터 기억 장치에서의 관리 정보 갱신 방법에 있다.
또한, 본 발명의 데이터 기억 장치에서의 관리 정보 갱신 방법의 일 실시 양태에 있어서, 상기 파일 관리 정보는, FAT(File Allocation Table)이고, 상기 갱신 정보 기입 단계는, 상기 블럭조를 구성하는 2블럭의 구성 페이지에 대하여, 2블럭을 교대로 적용하여 갱신 FAT 정보를 기입하는 처리를 실행하는 것을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치에서의 관리 정보 갱신 방법의 일 실시 양태에 있어서, 사용자 데이터의 저장 영역으로서의 데이터 영역에 대한 사용자 데이터 기입 처리의 일 처리 단위마다, 상기 파일 관리 정보의 갱신 정보 기입 단계를 실행하는 것을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치에서의 관리 정보 갱신 방법의 일 실시 양태에 있어서, 상기 데이터 기억 장치에서의 관리 정보 갱신 방법은, 또한, 상기 논리 어드레스 입력 단계에서 입력하는 논리 어드레스에 따라서 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신할 논리 물리 어드레스 변환 테이블 구성 정보를 기입하는 블럭을 구성하는 블럭조로서 식별하는 블럭조 식별 단계와, 상기 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 논리 물리 어드레스 변환 테이블 구성 정보를 남기고, 상기 블럭조를 구성하는 다른 쪽 블럭의 구성 페이지에 갱신후 논리 물리 어드레스 변환 테이블 구성 정보를 기입하는 처리를 실행하는 갱신 정보 기입 단계를 실행하는 것을 특징으로 한다.
또한, 본 발명의 데이터 기억 장치에서의 관리 정보 갱신 방법의 일 실시 양태에 있어서, 상기 갱신 정보 기입 단계는, 상기 파일 관리 정보의 갱신 처리를 페이지 단위로 실행하고, 상기 블럭조를 구성하는 2개의 블럭의 구성 페이지를 교대로 시퀀셜하게 사용하여 갱신 관리 정보의 기입 처리를 실행하고, 해당 블럭조를 구성하는 2블럭의 구성 페이지에 빈 페이지가 없는 경우에, 갱신 직전의 파일 관리 정보가 저장된 블럭과 서로 다른 블럭의 데이터를 소거하고, 해당 소거 블럭의 선두 페이지에 갱신 파일 관리 정보의 기입 처리를 실행하는 것을 특징으로 한다.
또한, 본 발명의 제3 측면은,
데이터 기억부와, 그 데이터 기억부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖는 데이터 기억 장치에서의 관리 정보 갱신 처리를 실행하는 컴퓨터 프로그램으로서,
갱신 관리 정보에 대응하는 논리 어드레스를 입력하는 논리 어드레스 입력 단계와,
상기 논리 어드레스에 따라서 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하는 블럭조 식별 단계와,
상기 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 파일 관리 정보를 남기고, 상기 블럭조를 구성하는 다른 쪽 블럭의 구성 페이지에 갱신후 파일 관리 정보를 기입하는 처리를 실행하는 갱신 정보 기입 단계
를 갖는 것을 특징으로 하는 컴퓨터 프로그램에 있다.
본 발명의 구성에 따르면, 플래시 메모리의 어드레스 관리 정보인 FAT 등의 파일 관리 정보를 메모리의 관리 정보 영역에 저장함과 함께, FAT 구성 데이터의 저장 블럭으로서 2개의 블럭으로 이루어지는 블럭조를 설정하고, 블럭조를 구성하는 2개의 블럭의 각 페이지를 교대로 적용하여 갱신 FAT 정보를 기입하고, 블럭조를 구성하는 1개의 블럭에 갱신 직전의 FAT 정보를 보유한 채로, 갱신 정보를 또 다른 한쪽의 블럭에 기입하는 구성으로 했기 때문에, 갱신 관리 정보의 기입 에러 발생시에도 갱신 직전의 FAT 정보가 기억 유지되고, 갱신 직전의 FAT 정보를 이용한 처리, 예를 들면, 갱신 직전의 FAT 정보를 이용한 데이터 액세스, 및 갱신 직전의 FAT 정보를 이용한 FAT 정보의 관리 정보의 재갱신 처리 등이 가능해진다.
또한, 본 발명의 구성에 따르면, FAT에 대응하는 1개의 논리 어드레스에 대응하여 2개의 서로 다른 물리 어드레스를 설정하여 논리 어드레스에 기초하여 갱신 데이터를 기입하는 블럭조를 구성하는 2개의 블럭을 바로 추출가능하게 함과 함께, 직전의 갱신전 데이터가 기입된 블럭 및 페이지에 기초하여 갱신 데이터를 기입하는 블럭 및 페이지를 결정하는 구성으로 했기 때문에, 갱신 관리 정보의 기입 블럭 및 페이지의 결정을 고속으로 실행하는 것이 가능해진다.
또한, 본 발명의 구성에 따르면, FAT 등의 파일 관리 정보의 갱신 처리에 있어서, 종래의 데이터 재저장 시퀀스로서 실행하는 소거 완료 블럭의 취득, 갱신전 데이터가 저장되어 있던 블럭으로부터 소거 완료 블럭에 대한 페이지 데이터의 카피 등의 처리를 실행할 필요가 없어지기 때문에, 관리 정보의 갱신 처리 시간이 단축된다. 따라서, 데이터 갱신후에 사용자에 의한 호스트로부터의 메모리 카드의 발취 등이 행해진 경우에도, FAT, 논리 물리 어드레스 변환 테이블을 포함하는 관리 정보 갱신 처리가 단시간에 실행되기 때문에, 관리 정보의 기입 미완료에 기초하는 에러 발생의 가능성이 감소한다.
또한, 본 발명의 컴퓨터 프로그램은, 예를 들면, 여러가지 프로그램 코드를 실행 가능한 범용 컴퓨터 시스템에 대하여, 컴퓨터 판독 가능한 형식으로 제공하는 기억 매체, 통신 매체, 예를 들면, CD나 FD, MO 등의 기억 매체, 혹은, 네트워크 등의 통신 매체에 의해서 제공 가능한 컴퓨터 프로그램이다. 이러한 프로그램을 컴퓨터 판독 가능한 형식으로 제공함으로써, 컴퓨터 시스템 상에서 프로그램에 따른 처리가 실현된다.
본 발명의 또 다른 목적, 특징이나 이점은, 후술하는 본 발명의 실시예나 첨부하는 도면에 기초한, 보다 상세한 설명에 의해서 분명해질 것이다.
도 1은 플래시 메모리에서의 블럭, 페이지 구성을 설명하는 도면.
도 2는 플래시 메모리에서의 데이터 기입 처리를 설명하는 흐름도.
도 3은 플래시 메모리의 메모리 구성을 설명하는 도면.
도 4는 플래시 메모리에서의 에러의 발생에 대하여 설명하기 위한 도면.
도 5는 본 발명의 메모리 카드의 구성을 설명하는 블럭도.
도 6은 본 발명의 플래시 메모리의 데이터 저장 구성을 설명하는 도면.
도 7은 본 발명의 플래시 메모리의 페이지 구성을 설명하는 도면.
도 8은 본 발명의 플래시 메모리의 관리 정보 영역의 저장 정보에 대하여 설명하는 도면.
도 9는 본 발명의 플래시 메모리의 관리 정보 영역의 저장 정보의 속성 정보로서의 논리 블럭 관리 정보에 대하여 설명하는 도면.
도 10은 본 발명의 플래시 메모리의 관리 정보 영역의 저장 정보의 속성 정보로서의 물리 블럭 관리 정보에 대하여 설명하는 도면.
도 11은 플래시 메모리에서의 논리 물리 어드레스 변환 테이블의 갱신 처리에 대하여 설명하는 도면.
도 12는 플래시 메모리에서의 논리 물리 어드레스 변환 테이블의 갱신 처리에 대하여 설명하는 도면다.
도 13은 플래시 메모리에서의 FAT의 갱신 처리에 대하여 설명하는 도면.
도 14는 본 발명의 플래시 메모리에서의 논리 물리 어드레스 변환 테이블 및 FAT의 저장 구성에 대하여 설명하는 도면.
도 15는 본 발명의 플래시 메모리에서의 논리 물리 어드레스 변환 테이블 또는 FAT의 저장 블럭 구성에 대하여 설명하는 도면.
도 16은 본 발명의 플래시 메모리를 장착한 호스트 기기에서의 초기 설정 처리 및 관리 테이블에 대하여 설명하는 도면.
도 17은 본 발명의 플래시 메모리에서의 데이터 판독 및 기입 처리에 대하여 설명하는 흐름도.
도 18은 본 발명의 플래시 메모리에서의 논리 물리 어드레스 변환 테이블 및 FAT 등의 관리 정보 갱신 처리에 대하여 설명하는 흐름도.
도 19는 본 발명의 플래시 메모리에서의 논리 물리 어드레스 변환 테이블 및 FAT 등의 관리 정보 갱신 처리 타이밍에 대해 설명하는 흐름도.
도 20은 본 발명의 플래시 메모리에서의 논리 물리 어드레스 변환 테이블 및 FAT 등의 관리 정보 갱신 처리 수순에 대하여 설명하는 도면.
도 21은 플래시 메모리를 장착하여, 데이터의 판독 기입을 실행하는 정보 처리 장치로서의 PC의 하드웨어 구성예를 나타내는 블럭도.
<발명을 실시하기 위한 최량의 형태>
이하, 도면을 참조하면서, 본 발명의 데이터 기억 장치, 및 데이터 기억 장치에서의 관리 정보 갱신 방법, 및 컴퓨터 프로그램의 상세한 내용에 대하여 설명한다.
[데이터 기억 장치(메모리 카드)의 구성]
우선, 도 5를 참조하여 플래시 메모리와 컨트롤 IC를 구비한 데이터 기억 장치로서의 메모리 카드의 구성에 대하여 설명을 한다.
데이터 기억 장치(200)는, 플래시 메모리(FMEM)(230)와, 컨트롤 IC(Control IC)(210)를 구비하고, PC, 데이터 기록 재생기, 비디오 카메라 등의 여러가지 호스트 기기(HOST)(300)에 장착하여 이용된다. 1개의 호스트 기기에 대하여 고정적으로 장착하여 이용하는 구성도 가능하지만, 호스트 기기에 대하여 착탈 가능한 구성으로, 필요에 따라서 다양한 호스트 기기에 장착하여 이용할 수 있다.
데이터 기억 장치(200)는, 전원 단자로 되는 VCC와 접지로 되는 VSS 단자를 가지고, 데이터 기억 장치(200)를 장착하는 호스트 기기(300)로부터 이들 단자를 통해 전원이 공급된다. 검출 단자(INS)는, 호스트 기기(300)가 데이터 기억 장치(200)의 착탈 상태를 검출하기 위해서 사용된다. 데이터 기억 장치(200)의 내부에서는, 이 검출 단자(INS)는 접지되어 있고, 호스트 기기(300)에 의해 풀업 저항을 통해 전원에 접속된다. 따라서, 검출 단자(INS)는, 데이터 기억 장치(200)의 장착 상태에서는 「L」레벨로 되고, 비 장착시에는 「H」레벨로 된다.
플래시 메모리(FMEM)(230)는 데이터의 소거 처리 단위로서의 블럭, 및 데이터의 판독, 기입 단위로서의 페이지에 의해 구성되고, 페이지는 예를 들면, 512Byte의 데이터 영역과, 패리티 데이터를 기입하는 16Byte의 확장 영역(Extra 영역)을 구비하고 있다. 플래시 메모리의 상세 구성에 대해서는 도 6 이하를 참조하여 후단에서 설명한다. 또한, 데이터 영역과 확장 영역의 데이터 용량은 다양한 설정이 가능하고, 예를 들면, 2048Byte의 데이터 영역과, 64Byte의 확장 영역(Extra 영역)의 구성을 갖는 데이터 기억 장치(200) 등이 있다.
컨트롤 IC(Control IC)(210) 내의 I/F(216)는, 데이터 기억 장치(200)를 장착한 호스트 기기(300)와의 데이터 전송 제어를 실행하고, 주로 시리얼/패러렐 변환 처리를 실행한다. 플래시 메모리(230)에의 데이터 기입시에는, 쌍방향 데이터 신호(SDIO0∼3)로를 통해, 전송 클럭(SCLK)에 동기하여, 호스트 기기(300)로부터 보내여져 온 시리얼 데이터를, 복수 비트(예를 들면, 8비트, 16비트)의 패러렐 데이터로 변환한다. 제어용 커맨드나 데이터도, 여기서 시리얼 데이터로부터 패러렐 데이터로 변환된다.
시리얼 데이터는 SDIO0만을 사용한 경우는 1비트 데이터이고, SDIO0∼3까지를 사용한 경우에는 4비트 데이터이다.
한편, 플래시 메모리(230)로부터의 데이터 판독 처리는 이하와 같이 행해진다. 우선, 데이터 기억 장치(200) 내부의 플래시 메모리(230)에 기억되어 있는 데이터가 복수 비트의 패러렐 데이터로서 판독되고, I/F(216)에서 시리얼 데이터로 변환되고, 쌍방향 데이터 신호(SDIO0∼3)로를 통해 호스트 기기(300)에 출력된다.
레지스터(211)는, 스테이터스 레지스터, 파라미터 레지스터 등으로 이루어지고, 쌍방향 데이터 신호(SDIO0∼3)로를 통해 데이터가 입/출력된다. 쌍방향 데이터 신호(SDIO0∼3)길은, 제어 데이터나 실제 데이터 그 자체를 기입하여, 판독용으로서 적용된다. 쌍방향 데이터 신호(SDIO0∼3)로를 통해 입출력되는 제어 데이터에 의해 데이터 기억 장치(200) 내부의 메모리의 액세스 제어가 행해진다.
페이지 버퍼(212)는, I/F(216)와 플래시 메모리(230) 사이의 전송 데이터의 일시적인 데이터 기억 영역이다. 어트리뷰트 ROM(213)은, 컨트롤 IC(210)의 물리적 정보를 기억한다. OSC 컨트롤러(OSCCont)(215)는, 컨트롤 IC(210)의 클럭을 발생하여 컨트롤 IC(210)의 동작 타이밍을 제어한다.
플래시 메모리(230)와의 데이터 전송 제어를 실행하는 제어부(214)는, CPU 등에 의해서 구성되는 제어부로서의 시퀀서(221)와, 전송 데이터에 대하여 부가하거나, 전송 데이터의 오류 검출 처리를 행하는 에러 정정 코드 발생부(ECC)(222)와, 플래시 메모리(230)에 대한 인터페이스로서의 플래시 인터페이스(FlashI/F) (223)를 갖는다. 에러 정정 코드 발생부(ECC)(222)에서 에러 정정을 행함으로써, 플래시 메모리(230)의 저장 데이터의 신뢰성이 확보된다.
데이터 기억 장치(200)에는, 전원(VCC) 단자와, 호스트 기기(300)와의 접속을 위한 데이터 입/출력(SDIO0∼3) 단자와, 버스 스테이트(BS)의 입력 단자와, 시리얼 클럭(SCLK)의 입력 단자와, 장착 검출(INS)용의 검출 단자와, 접지(VSS) 단자와가 구성된다.
데이터 입/출력(SDIO0∼3) 단자에 의해, 쌍방향 데이터선을 통해, 데이터가 입/출력된다. 버스 스테이트(BS)의 입력 단자에는, 버스 스테이트(BS)가 공급된다. 버스 스테이트(BS)는, 데이터 입/출력(SDIO0∼3) 단자를 통한 쌍방향 데이터 신호선 상의 데이터 스테이터스를 나타낸다. 예를 들면, 데이터 액세스를 행하기 전의 제어 데이터나 데이터 그 자체에 의해, 그 스테이트를 변화시킴으로써, 데이터 기억 장치(200)의 처리가 실행된다.
시리얼패러렐(SCLK)의 입력 단자에는 데이터 전송용 클럭이 공급된다. 데이터 전송용 클럭은, 제어 데이터나 실제 데이터 전송 제어에 적용하는 클럭이다. 전송용 클럭은, 버스 스테이트(BS) 신호에 의해 제어된다.
다음으로, 도 6을 참조하여, 도 5에 도시하는 데이터 기억 장치(200) 내의 플래시 메모리(FMEM)(230)의 상세 구성에 대하여 설명한다.
상술한 바와 같이, 플래시 메모리에는, 데이터의 소거 처리 단위로서의 블럭, 및 데이터의 판독, 기입 단위로서의 페이지가 규정되어 있다. 플래시 메모리는, 복수의 블럭을 가지고, 1블럭은 복수 페이지에 의해서 구성된다. 1페이지는, 예를 들면, 512Byte의 데이터 저장 영역(121)과, 패리티 데이터 등을 기입하는 16Byte의 확장 영역(Extra 영역)(122)으로 구성된다. 또한, 데이터 저장 영역, 확장 영역의 데이터 사이즈는 플래시 메모리에 따라서 다양하고, 2048Byte의 데이터 저장 영역과, 64Byte의 확장 영역(Extra 영역)을 갖는 구성 등의 데이터 사이즈의 설정이 가능하다.
도 6(a)는, 플래시 메모리의 데이터 구조를 나타내고 있다. 플래시 메모리로서의 기억 영역은, 세그먼트라고 불리는 고정 길이의 데이터 단위가 대구분으로서 설정된다. 이 세그먼트는, 예를 들면, 1세그먼트당 4MB(mega-byte) 혹은 8MB, 16MB 등으로 규정되는 사이즈이고, 1개의 플래시 메모리 내에서의 세그먼트 수는, 그 플래시 메모리의 용량에 의존하여 달라진다. 도면에서는, 0∼7의 8세그먼트를 갖는 플래시 메모리의 구성예를 나타내고 있다.
로더(Loader) 영역은, 기동시의 로드 데이터를 저장한 영역이다. 컨트롤 IC(210)은 전원 온 직후에 로더 영역으로부터 기동에 필요한 정보를 판독한다. 관리 정보 영역은, 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보를 저장하는 블럭과 대체 블럭으로서 미사용인 블럭으로 이루어지는 영역이다. 데이터 영역은, 화상, 음성, 텍스트, 프로그램 등의 사용자 데이터가 저장된 블럭으로 이루어지는 영역으로 된다. 데이터 영역에는, 이들 실제 데이터 및, 색인 정보로서의 선두 어드레스 정보를 포함하는 디렉토리 정보가 저장된 블럭도 포함된다. 관리 정보를 적용한 처리에 대해서는 후술한다.
도 6(b)에 도시한 바와 같이, 각 세그먼트(b-1)는, 블럭이라 불리는 고정 길이의 데이터 단위로 구획된다. 1세그먼트를 512 블럭으로 한 경우, 도 6(b-2)에 도시하는 블럭수 n은, n=511로 된다. 단, 플래시 메모리에서는, 기입 불가인 블럭이 존재하는 것이나, 기입 중에 에러를 발생하는 후발 불량 블럭이 존재하기 때문에, 데이터 기입이 유효하게 되는 실질적인 블럭수를 대상으로 하면, 유효 블럭수 n은 511보다도 적어진다.
1블럭은, 도 6(b-3)에 도시한 바와 같이, 페이지 0∼m에 의해 분할된다. 1페이지는, 도 6(b-4)에 도시한 바와 같이, 예를 들면 512바이트의 데이터부와 16바이트의 확장부로 이루어진다. 확장부의 구성에 대해서는 후술한다.
블럭 내의 페이지 구조는, 로더 영역, 관리 정보 영역, 데이터 영역 모두에 서 공통이고, 도 6(b-4)에 도시한 바와 같이, 데이터부와 확장부로 이루어진다. 플래시 메모리에서는, 데이터의 판독, 및 기입 처리는 페이지 단위로 행해지고, 데이터의 소거 처리는 블럭 단위로 행해진다. 또한, 데이터의 기입은, 소거 완료한 페이지에 대해서만 행해진다. 따라서, 실제의 데이터의 재기입이나 기입은, 원칙적으로 블럭 단위를 대상으로 행해지게 된다.
단, 본 발명의 구성에 있어서는, 관리 정보 영역의 저장 정보, 예를 들면, 논리 물리 어드레스 변환 테이블 및 FAT 등의 파일 관리 정보에 대한 데이터 기입 처리는, 특수한 기입 처리 방식에 따라서 실행한다. 이들의 처리에 대해서는 후술한다.
페이지의 구성에 대하여, 도 7을 참조하여 설명한다. 페이지는, 도 7에 도시한 바와 같이 데이터부와 확장부로 이루어지고, 데이터부에는, 로더 영역, 관리 정보 영역, 데이터 영역의 각 영역마다, 각 영역에 대응한 데이터가 저장된다. 예를 들면, 로더 영역의 구성 블럭에 속하는 페이지라면, 컨트롤 IC가 기동하기 위해서 필요한 정보 등이 저장되고, 관리 정보 영역의 구성 블럭에 속하는 페이지라면, 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보 등의 각 정보가 저장된다. 데이터 영역의 구성 블럭에 속하는 페이지라면, 사용자 데이터로서의 화상, 음성, 텍스트, 프로그램 등 다양한 데이터 파일 및 디렉토리 정보가 저장된다.
페이지의 확장 영역에는, 예를 들면, 에러 정정 코드(ECC) 및 속성 정보가 저장된다. 속성 정보는, 도면에 도시한 바와 같이 논리 블럭 관리 정보와, 물리 블럭 관리 정보에 의해서 구성된다.
도 8에 관리 정보 영역의 상세 구성을 나타낸다. 관리 정보 영역에는, 호스트의 지정하는 논리 어드레스로부터 물리 어드레스에의 변환 처리에 적용하는 테이블로서의 논리 물리 어드레스 변환 테이블을 저장한 논리 물리 어드레스 변환 테이블 블럭, 플래시 메모리에 저장하는 데이터의 연쇄 정보로서의 파일 관리 정보인, 예를 들면, FAT을 저장하는 파일 관리 정보 블럭, 후발 불량 블럭이 발생한 경우의 대체용 블럭 혹은 갱신 처리시 새로운 블럭을 취득하기 위한 빈 블럭으로서의 대체 블럭이 저장된다.
본 발명의 구성에서는, 논리 물리 어드레스 변환 테이블 및 파일 관리 정보(FAT)에 대하여 복수 블럭을 이용하여 순차적으로 갱신된 정보를 기입하는 구성을 갖는다. 구체적으로는, 1페이지분의 논리 물리 어드레스 변환 테이블 또는 FAT 데이터에 대하여, 각각 2개의 서로 다른 블럭을 블럭조로서 할당하고, 블럭조를 구성하는 2개의 블럭의 페이지에 교대로 갱신 데이터를 기입하는 처리를 실행한다. 이 갱신 처리에 의해, 갱신 직전의 논리 물리 어드레스 변환 테이블 또는 FAT도 소거되는 일 없이 유지되고, 만일, 갱신 후의 논리 물리 어드레스 변환 테이블 또는 FAT가 소실된 경우에도 갱신 직전의 정보의 이용이 가능해지고, 갱신 직전의 관리 정보를 이용한 데이터 액세스, 및 갱신 직전의 관리 정보를 이용한 관리 정보의 재 교신 처리 등이 가능해진다.
또한, 파일 관리 정보로서는 종래부터 하드디스크의 파일 관리 정보로서 적용되는 FAT를 예로서 이하, 설명하지만, 본 발명에서 적용하는 파일 관리 정보는 FAT에 한정되는 것이 아니고, 그 밖의 파일 관리 정보, 예를 들면, NTFS, HFS 등을 이용한 구성에서도 적용할 수 있다.
다음으로, 도 9를 참조하여 플래시 메모리의 관리 정보 영역에 저장되는 각 정보 블럭에서의 속성 정보를 구성하는 논리 블럭 관리 정보(도 7 참조)의 구성 및 저장 정보에 대하여 설명한다.
상술한 바와 같이, 플래시 메모리의 관리 정보 영역에는, 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보, 대체 블럭이 저장된다. 도 9는, 이들 각 블럭을 구성하는 페이지로 설정되는 속성 정보 중의 논리 블럭 관리 정보의 구성 및 저장 정보에 대하여 설명하는 도면이다.
논리 블럭 관리 정보의 데이터 구성은, 블럭 타입마다 서로 다른 구성으로 되고, 블럭 타입은, 논리 블럭 관리 정보로서 유지하고 있다. 예로서는, 블럭 타입을 2Bit로 표현한다고 하면, 논리 물리 어드레스 변환 테이블은 [00], FAT 등의 파일 관리 정보는 [01], 대체 블럭은 [11]이 설정된다.
논리 물리 어드레스 변환 테이블 블럭은, 데이터부에는, 논리 어드레스를 물리 어드레스로 변환하기 위한 정보가 저장되고, 논리 블럭 관리 정보에는, 데이터부에 저장된 논리 물리 어드레스 변환 테이블이 어떤 세그먼트에 대응하는가를 나타내는 블럭 번호가 저장된다. 논리 어드레스는 물리 블럭에 대하여 할당되는 값이다. 또한, 논리 물리 어드레스 변환 테이블은 각 세그먼트마다 설정된다. 또한, 데이터부에 저장된 논리 물리 어드레스 변환 테이블이 갱신 처리중인지의 여부를 나타내는 업데이트 플래그, 갱신시에 +1의 가산 처리가 이루어지는 판정보로서의 리비젼 데이터가 논리 블럭 관리 정보에 저장된다. 파일 관리 정보는, 섹터라 부르는 512바이트를 기본 단위로 하고, 또한 클러스터라고 부르는 n개의 섹터로 이루어지는 512×n바이트를 정의하여, 클러스터 단위로 데이터의 배치 정보를 관리한다.
논리 어드레스는 섹터 어드레스를 가르키고 있으며, 어드레스 변환할 때에는 섹터 어드레스의 하위 비트는 물리 블럭 내의 페이지를 가리키는 값으로서 사용한다. 예를 들면, 블럭당 페이지 수가 32페이지인 경우는, 하위 5비트가 페이지 어드레스로 된다. 여기서는 페이지 어드레스는 물리적인 블럭 내의 페이지와 일의적인 경우에 대해 설명하지만, 논리 어드레스의 단위를 페이지로 할 수도 있다.
파일 관리 정보로서의 FAT를 저장하는 파일 관리 정보 블럭은, 데이터부에 파일 관리 정보로서의 FAT가 저장된다. 모든 FAT을 저장하기 위해서는, 복수의 파일 관리 정보 블럭이 필요해지기 때문에, 논리 블럭 관리 정보에는 데이터부에 저장된 FAT의 논리 어드레스에 대응한 블럭 번호와, FAT의 갱신시에 +1의 가산 처리가 이루어지는 판정보로서의 리비젼 데이터가 저장된다.
대체 블럭은, 후발 불량 블럭이 발생한 경우의 대체용 블럭으로, 논리 어드레스가 할당되어 있지 않은, 소거 완료된 물리 블럭이다.
다음으로, 도 10을 참조하여 플래시 메모리의 관리 정보 영역에 저장되는 각 정보 블럭에서의 속성 정보를 구성하는 물리 블럭 관리 정보(도 7 참조)의 구성 및 저장 정보에 대하여 설명한다.
물리 블럭 관리 정보는, 플래시 메모리의 관리 정보 영역에 저장되는 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보, 대체 블럭에 있어서 공통된 구성이고, 도면에 도시한 바와 같이, 불량 블럭 플래그, 소거 플래그를 가지고, 불량 블럭 플래그에는, 블럭이 정상적인 기입 및 판독이 가능한 블럭인지를 나타내는 정상 [1], 불량 [0]의 플래그가 설정된다. 소거 플래그에는, 블럭의 미소거 [1], 소거 [0]의 구별을 나타내는 플래그가 설정된다. 논리 어드레스가 할당되어 사용 중인 블럭은, 정상 [1], 미소거 〔1〕로 되고, 대체 블럭에서 정상 〔1〕, 소거 [1]로 된다.
[관리 정보의 갱신 처리]
다음으로, 예를 들면, 플래시 메모리에 저장된 파일 데이터의 갱신에 의해서 실행할 것이 요청되는 관리 정보의 갱신 처리, 구체적으로는 논리 물리 어드레스 변환 테이블 및 파일 관리 정보(FAT 등)의 갱신 처리에 대하여 설명한다.
상술한 바와 같이, 플래시 메모리에서는, 데이터의 판독, 및 기입은 페이지 단위로 행해지고, 데이터의 소거는 블럭 단위로 행해진다. 또한, 데이터의 기입은, 소거 완료한 페이지에 대해서만 행해진다. 따라서, 플래시 메모리로부터 판독한 데이터를 갱신하여 플래시 메모리에 갱신 데이터를 기입하는 경우, 갱신 데이터는, 갱신전의 데이터가 기입되어 있었던 페이지에 덮어쓰기하는 것이 아니라, 소거 완료한 기입 가능한 페이지를 추출하고 그 추출한 소거 완료 페이지에 기입하게 된다. 따라서, 데이터 기입 위치로서의 물리 어드레스가 데이터 갱신에 수반하여 빈번하게 변경된다.
이와 같이 데이터 갱신이 이루어지고, 데이터 기록 위치가 변경되어 물리 어드레스가 변경된 경우라도, 호스트 기기측에서 이용하는 논리 어드레스를 일정하다고 하면, 호스트측에서는 물리 어드레스의 변경과 무관하게 갱신된 데이터에 대하여 동일한 논리 어드레스를 적용하는 것이 가능해진다. 이러한 처리 때문에, 논리 물리 어드레스 변환 테이블의 갱신이 데이터 갱신에 따라서 실행되게 된다.
데이터 갱신 처리에 수반하는 논리 물리 어드레스 변환 테이블의 갱신 처리에 대하여 이하 설명한다. 도 11(a)에는, 임의의 세그먼트 내로부터 4개의 블럭을 추출하여, 이를 모식적으로 나타내고 있다. 3개의 블럭에 대해서는 고정적으로 물리 어드레스가 부여되고 있고, 또 하나의 블럭은 대체 블럭이다. 이 물리 어드레스는 메모리에서의 블럭의 물리적인 배열순에 따라서 정해져서, 임의의 블럭과 이것에 설정된 물리 어드레스와의 관계는 불변이다. 도 11(a)에 도시하는 4블럭에 대하여, 위에서부터 순서대로 물리 어드레스의 값으로 하고, 어드레스 [0x11], [0x12], [0x13], [0x14]가 부여되어 있는 것으로 한다. 또한, 0x는 16진 데이터를 의미한다. 0x 뒤의 2개의 수치가 실제 어드레스를 표현하고 있다.
데이터 갱신전의 논리 어드레스와 물리 어드레스의 대응은, (a)에 도시한 바와 같이, 논리 어드레스 (0x02)에 대하여 물리 어드레스 [0x11], 논리 어드레스 (0x03)에 대하여 물리 어드레스 [0x12], 논리 어드레스 (0x04)에 대하여 물리 어드레스 [0x14]였던 것으로 한다. 물리 어드레스 [0x13]는 대체 블럭이기 때문에 논리 어드레스가 할당되어 있지 않다.
물리 어드레스 [0x11]와 [0x12]의 블럭 0, 블럭 1에는 호스트에 의해서 기입된 파일 데이터가 저장되어 있는 것으로 한다.
여기서, 호스트 기기가, 논리 어드레스 (0x02)에 의해서 데이터 판독을 실행하면, 논리 물리 어드레스 변환 테이블은, 논리 어드레스 (0x02)를 물리 어드레스 [Ox11]로 변환하여, 블럭 0의 데이터를 호스트에 출력한다.
호스트에 있어서, 블럭 0의 데이터를 갱신하고, 플래시 메모리에 저장하는 경우, 상술한 바와 같이, 갱신전의 데이터가 기입되어 있었던 페이지에 덮어쓰기하는 것이 아니라, 소거 완료한 기입 가능한 페이지를 추출하고, 그 추출한 소거 완료 페이지에 갱신 데이터를 기입하게 된다. 이 경우, 블럭 0은, 갱신전의 값을 유지하고 있고, 소거되지 않았기 때문에, 소거 완료의 블럭인 대체 블럭, 여기서는 블럭 2에 갱신 데이터를 기입한다.
이 경우, 갱신 데이터의 논리 어드레스를, 갱신전의 데이터에 대한 논리 어드레스 (0x02)와 동일하게 유지하기 때문에, 논리 물리 어드레스 변환 테이블의 갱신이 실행된다. 도 11(b)에 도시한 바와 같이, 논리 어드레스 (0x02)를 갱신 데이터가 기입된 블럭 2의 물리 어드레스 [0x13]에 대응시키고, 블럭 0의 물리 어드레스 [0x11]는 블럭 2에의 기입 처리의 실행전 혹은 종료후에 소거하고, 새로운 대체 블럭으로 한다. 이 처리에 의해, 호스트측에서는, 갱신 전후 모두 동일한 논리 어드레스를 이용하여 데이터 액세스를 행하는 것이 가능해진다.
논리 어드레스는, 블럭에 대하여 기입된 데이터에 부수하도록 하여 할당되는 어드레스로서, 이 논리 어드레스가, 후술하는 FAT 파일 시스템이 관리하는 어드레스이다. 이에 반해, 물리 어드레스는 블럭에 대하여 고정적으로 부여되는 어드레스이다.
이와 같이 블럭의 스와프 처리를 행함으로써, 동일한 기억 영역(블럭)에 대하여 반복하여 집중적으로 액세스되는 일이 없어져, 재기입 횟수의 상한이 있는 플래시 메모리의 수명을 연장시킬 수 있게 된다.
데이터 갱신에 수반하여, 논리 어드레스와 물리 어드레스의 변환 테이블을 갱신함으로써, 동일한 논리 어드레스를 사용한 처리가 가능해진다. 또한, 논리 물리 어드레스 변환 테이블은 세그먼트 단위로 유지되고, 데이터 갱신이 행해진 경우라도 다른 세그먼트에 갱신 데이터가 기입되는 일이 없다.
도 12에 데이터 갱신에 수반하는, 논리 물리 어드레스 변환 테이블의 갱신예를 나타낸다. 논리 물리 어드레스 변환 테이블은, 상술한 바와 같이 플래시 메모리의 관리 정보 영역에 저장되어, 상기한 바와 같은 데이터 갱신이 행해진 경우 등에 더불어 갱신된다.
도 11의 데이터 갱신에 대응하는 논리 물리 어드레스 변환 테이블의 갱신예를 나타낸 것이 도 12이다. 갱신전의 논리 물리 어드레스 변환 테이블을 도 12(a)에 나타내고, 갱신후의 논리 물리 어드레스 변환 테이블을 도 12(b)에 나타내고 있다. 논리 물리 어드레스 변환 테이블은, 시퀀셜한 논리 어드레스에 대응하는 물리 어드레스의 열로서 구성된다.
갱신전은, (논리 어드레스)와 [물리 어드레스]의 대응이,
(0x02) [0x11]
(0x03) [0x12]
(0x04) [0x14]
(0x05) [0x15]
로 되어 있는데,
갱신전은, (논리 어드레스)와 [물리 어드레스]의 대응이,
(0x02) [0x13]
(0x03) [0x12]
(0x04) [0x14]
(0x05) [0x15]
로 되도록 변경된다.
이 때, 물리 어드레스 [Ox11]의 블럭은 소거되고, 해당하는 물리 블럭 관리 정보가 갱신된다.
본 발명의 구성에서는, 이들 재기입된 논리 물리 변환 테이블을 2개의 블럭조를 사용하여, 각 블럭의 페이지에 대하여 교대로 갱신 데이터를 기입하는 구성으로 하고 있다. 즉, 1페이지분의 논리 물리 변환 테이블 구성 데이터에 2개의 서로 다른 블럭을 할당하여 교대로 갱신 데이터를 기입하는 처리를 실행한다. 이 갱신 처리에 의해, 갱신 직전의 논리 물리 변환 테이블도 블럭조의 한쪽 블럭 내의 페이지에 소거되는 일 없이 유지되고, 만일 갱신후의 논리 물리 변환 테이블이 소실된 경우에도 갱신 직전의 논리 물리 변환 테이블의 이용이 가능해진다. 이들 처리에 대해서는 후술한다.
상술한 바와 같이, 블럭의 스와프 처리가 행해짐으로써, 물리 어드레스와 논리 어드레스의 대응은 변화한다. 따라서, 플래시 메모리에 대한 데이터의 기입 및 판독을 위한 액세스를 실현하기 위해서는, 물리 어드레스와 논리 어드레스의 대응이 나타나는 논리 물리 어드레스 변환 테이블이 필요해진다. 즉, 논리 물리 어드레스 변환 테이블을 파일 관리 정보(FAT)가 참조함으로써, FAT가 지정한 논리 어드레스에 대응하는 물리 어드레스가 특정되고, 이 특정된 물리 어드레스에 의해 나타나는 블럭에 액세스하는 것이 가능해진다. 다음으로, FAT 등의 파일 관리 정보의 이용에 대하여 도 13을 참조하여 설명한다.
플래시 메모리에 저장하는 데이터 파일은, 클러스터라는 단위로 관리된다. 플래시 메모리의 데이터 영역 위의 물리 섹터는, 플래시 메모리인 경우의 기입 판독 단위로서의 페이지에 상당하는데, 파일 관리 정보(FAT)의 관리 단위로서의 클러스터는 복수의 섹터로 이루어진다. 파일은 클러스터를 단위로서 구성되는데, 플래시 메모리에 저장하는 데이터 파일은, 복수의 클러스터에 걸쳐 저장되는 경우가 많다. FAT는, 이러한 복수의 클러스터에 분산 저장된 데이터 파일에 대한 클러스터 연쇄 정보를 갖는 테이블이다. FAT의 엔트리는, 플래시 메모리의 클러스터, 예를 들면, 블럭과 일대일로 대응하는 논리 어드레스의 연쇄 정보를 저장한다. 파일의 선두 클러스터는 파일명과 함께 디렉토리에 기록된다.
도 13에는, 플래시 메모리의 데이터 영역에 저장된 데이터 파일의 (a) 디렉토리, 관리 정보 영역에 저장되는 파일 관리 정보로서의 (b) FAT를 나타내고 있다.
FAT는, 데이터 저장 영역 단위로서의 클러스터의 연쇄 정보를 저장한 테이블로서, 데이터 파일이 복수의 클러스터에 걸쳐 기록되어 있는 경우, FAT에 따라서 연쇄 정보를 취득함으로써, 데이터 파일을 구성하는 전체 데이터의 클러스터 위치를 취득 가능하게 되어, 데이터 파일을 구성하는 전체 데이터에 대한 액세스가 가능해진다. 클러스터는, 플래시 메모리에 있어서 예를 들면, 1블럭에 상당한다. 즉, 1개의 데이터 파일이 플래시 메모리의 복수 블럭(클러스터에 상당)에 걸쳐 기입되어 있는 경우, 복수 블럭의 연쇄 정보가 FAT에 저장된다. FAT에 설정되는 연쇄 정보로서의 클러스터 식별자는, 논리 물리 어드레스 변환 테이블에서 적용하는 논리 어드레스에 상당한다.
플래시 메모리의 데이터 영역에 저장되는 디렉토리에는, 도 13(a)에 도시한 바와 같이, 예를 들면, 파일명, 확장자, 또한, 선두의 클러스터 식별자가 저장된다. 호스트는, 디렉토리에 저장된 선두 클러스터 식별자에 따라서, FAT를 참조하여, 1개의 파일 데이터가 저장된 클러스터의 연쇄를 알 수 있어, 연쇄 정보에 따라서, 클러스터 식별자를 순차적으로 취득한다. 클러스터 식별자는 논리 어드레스에 상당한다. 이들 논리 어드레스를 상술한 논리 물리 어드레스 변환 테이블을 적용하여 물리 어드레스를 취득하여 데이터 저장 위치로부터 데이터를 취득한다.
도 13에 도시하는 (a) 디렉토리 중의 파일 [ABC.txt]은, 선두 클러스터 식별자가 (0x08)이고, FAT의 0x08의 위치에는 다음의 클러스터 식별자로서의 0x10가 기록되고, 0x10의 위치에는 0x18, 0x18의 위치에는 종료를 나타내는 0xFF가 기록되어 있다. 따라서, 파일 [ABC.txt]은, (Ox08), (Ox10), (Ox18)의 순서대로 기록되어 있는 것이 인식된다. 또한, 파일 [EFG.jpg]은, 선두 클러스터 식별자가 (0x19)이고, FAT의 0x19의 위치에는 다음의 클러스터 식별자로서의 0x25가 기록되고, 순차적으로 FAT에 기록된 클러스터 식별자를 찾아감으로써, 파일 [EFG.jpg]의 저장 위치를 알 수 있다.
클러스터 식별자(클러스터 어드레스)는, 상술한 바와 같이, 논리 어드레스에 상당하는 것으로, FAT로부터 취득한 클러스터 어드레스로부터 페이지 어드레스를 제외한 값을 상술한 논리 물리 어드레스 변환 테이블에 따라서 물리 어드레스로 변환하여 플래시 메모리에서의 실제의 물리적 데이터 저장 위치를 취득하여, 데이터 액세스를 행한다.
FAT는, 새로운 데이터의 추가, 재기입 처리 등에 의해 수시 변경된다. 1클러스터의 사이즈는, 예를 들면, 32섹터인 경우, 16KByte로 된다. 따라서, 예를 들면, 임의의 데이터 파일이 갱신되어 데이터량이 증가하면, 새로운 클러스터를 취득하는 것이 필요해져, FAT의 재기입, 즉 갱신 처리가 필요해진다.
갱신된 FAT는, 플래시 메모리의 관리 정보 영역에 저장된다. 본 발명의 구성에서는, 갱신한 FAT를, 상술한 논리 물리 어드레스 변환 테이블과 마찬가지로, 1페이지분의 FAT 데이터에 2개의 서로 다른 블럭으로 이루어지는 블럭조를 할당하고, 블럭조를 구성하는 각 블럭의 구성 페이지를 이용하여 블럭 교대로 갱신 데이터를 기입하는 처리를 실행한다. 이 갱신 처리에 의해, 갱신 직전의 FAT도 소거되는 일 없이 유지되고, 만일, 갱신후의 FAT가 소실된 경우에도 갱신 직전의 FAT의 이용이 가능해진다. 이하, 이들의 처리에 대하여 상술한다.
플래시 메모리의 관리 정보 영역(도 6 참조)에 저장되는 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보의 갱신 처리에 대하여 설명한다.
도 14는, 플래시 메모리에 저장하는 논리 물리 어드레스 변환 테이블, FAT의 각 관리 정보의 저장 구성의 개념도를 나타낸 도면이다. 도 14에 도시한 바와 같이, 논리 물리 어드레스 변환 테이블, FAT의 각 관리 정보는, (a)플래시 메모리의 관리 정보 영역에 저장된다.
(b)FAT 저장 테이블에 나타낸 바와 같이, FAT의 구성 데이터 각각에는, 2개의 서로 다른 블럭이 블럭조로서 할당된다. 도면에 도시한 바와 같이, FAT1-짝수, FAT1-홀수가 1개의 블럭조이고, 이하, FAT2-짝수, FAT2-홀수∼FATn-짝수, FATn-홀수까지, FAT 구성 데이터용으로 2개의 서로 다른 블럭이 FAT 저장 블럭조로서 설정된다. 또한, 도면에서는 인접 블럭을 블럭조로서 도시하고 있지만, 이격된 블럭을 블럭조로서 설정해도 된다.
마찬가지로, (c)논리 물리 어드레스 변환 테이블에 도시한 바와 같이, 논리 물리 어드레스 변환 테이블의 구성 데이터 각각에 대해서도, 2개의 서로 다른 블럭이 블럭조로서 할당된다. 도면에 도시한 바와 같이, 논리 물리 어드레스 변환 테이블1-짝수, 논리 물리 어드레스 변환 테이블1-홀수가 1개의 블럭조이고, 이하, 논리 물리 어드레스 변환 테이블2-짝수, 논리 물리 어드레스 변환 테이블2-홀수∼논리 물리 어드레스 변환 테이블 n-짝수, 논리 물리 어드레스 변환 테이블 n-홀수까지, 논리 물리 어드레스 변환 테이블 구성 데이터용으로 2개의 서로 다른 블럭이 논리 물리 어드레스 변환 테이블 저장 블럭으로서 설정된다.
또한, 각조를 구성하는 홀수, 짝수는, 블럭을 구별하기 위해서 편의적으로 사용하고 있는 것으로, 2개의 서로 다른 블럭의 조이면, 블럭 No가 홀수끼리거나 짝수끼리라도 상관 없다.
FAT 및 논리 물리 어드레스 변환 테이블의 갱신에서는, 교대로 갱신 데이터를 기입하는 처리를 실행한다. 예를 들면, FAT1-홀수의 1개의 페이지에 기입된 FAT 구성 데이터가 갱신되면, 갱신 데이터는, FAT-1짝수의 페이지에 기입된다. 따라서 갱신전의 데이터도 FAT1-홀수의 페이지에 유지된다. FAT-1짝수의 페이지에 기입된 FAT 구성 데이터가 갱신되면, 갱신 데이터는, FAT-1홀수의 페이지에 기입된다. 논리 물리 어드레스 변환 테이블의 갱신에서도, 짝수, 홀수의 각 블럭에 교대로 갱신 데이터의 기입이 실행된다.
도 15는, 플래시 메모리의 관리 정보 영역(도 6 참조)에 저장되는 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보의 갱신 처리 수순을 설명하는 도면이다. 본 발명의 구성에서는, 상술한 바와 같이 1페이지분의 논리 물리 어드레스 변환 테이블 구성 데이터에 2개의 서로 다른 블럭을 블럭조로서 할당하고, 블럭조를 구성하는 페이지에 대하여 블럭 교대로 갱신 데이터를 기입하는 처리를 실행한다. FAT 등의 파일 관리 정보에 대해서도 마찬가지로, FAT 데이터 구성 데이터에 2개의 서로 다른 블럭을 블럭조로서 할당하고, 블럭조를 구성하는 페이지에 대하여 블럭 교대로 갱신 데이터를 기입하는 처리를 실행한다. 논리 물리 어드레스 변환 테이블, FAT의 갱신 처리 시퀀스는 기본적으로는 마찬가지기 때문에, FAT의 갱신 처리를 예로서 도 15를 참조하여 설명한다.
도 14를 참조하여 설명한 바와 같이, 플래시 메모리의 관리 정보 영역의 FAT 저장 블럭은, 갱신 정보를 기입하는 블럭을 2개 1조로 한 블럭조가 준비된다. 도면에 도시한 바와 같이 (a)FAT 저장 블럭 P(짝수 블럭)(501)과 (b)FAT 저장 블럭 Q(홀수 블럭)(502)이다.
또한, 짝수 블럭, 홀수 블럭 내의 페이지에는, 도 15에 도시한 바와 같이 일련 번호(판 번호)가 0부터 설정된다. 갱신된 FAT 정보는, 이 일련 번호의 순서대로 각 블럭의 각 페이지에 기록된다. 예를 들면, 도 15에 도시한 바와 같이, 짝수 블럭(501)에는 0, 2, 4, 6,…으로 페이지 일련 번호가 부여되고, 홀수 블럭(502)에는, 1, 3, 5, 7,…로 페이지 일련 번호가 부여된다. 갱신된 FAT 정보는, 일련 번호0, 1, 2, 3, 4, 5, 6, 7,…의 순서대로 페이지 내에 기입되게 된다.
또한, 짝수 블럭(501), 홀수 블럭(502)의 각 페이지에는 각각 각 블럭 독립의 페이지 번호가 부여되어 있고, 상술한 일련 번호와 대응시키면 일련 번호 0과 일련 번호 1의 페이지 번호는 0, 일련 번호 2와 일련 번호 3의 페이지 번호는 1이라는 관계가 된다.
또한, 짝수 블럭(501), 홀수 블럭(502)의 각 페이지에 부여하는 일련 번호는, 설명를 위해 편의적으로 부여하는 것이다. 따라서, 호스트 기기가 갱신된 FAT 정보를 기입할 때는, 직접 일련 번호를 지정하는 것이 아니라, 블럭 내의 소정의 기준으로 되는 페이지부터 세어서 N번째의 페이지에 원하는 관리 정보를 기입하는 지정 정보에 기초하여 갱신 데이터의 기입을 실행한다.
본 발명의 구성에서는, 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전의 관리 정보, 즉 갱신전의 FAT 등의 파일 관리 정보 혹은 논리 물리 변환 테이블을 남기고, 블럭조를 구성하는 다른 쪽 블럭의 구성 페이지에 갱신후의 관리 정보를 기입하는 처리를 실행한다.
이와 같이, 본 발명의 구성에서는, 블럭조를 구성하는 2개의 블럭의 구성 페이지를 교대로 시퀀셜하게 사용하여 갱신 관리 정보의 기입 처리를 실행한다. 블럭조를 구성하는 2블럭의 구성 페이지에 빈 페이지가 없는 경우에는, 대체 블럭 중에서 새로운 블럭을 확보하고, 선두 페이지에 갱신 관리 정보를 기입한 후, 갱신 직전의 관리 정보가 저장된 블럭과 서로 다른 블럭의 데이터를 소거한다.
본 발명의 구성에서는, 관리 정보, 즉 FAT 등의 파일 관리 정보 혹은 논리 물리 변환 테이블에 대하여 설정되는 1개의 논리 어드레스에 대하여 블럭조를 구성하는 2개의 블럭의 2개의 물리 어드레스가 대응되고, 데이터 기억 장치의 제어부는, 갱신할 파일 관리 정보를 지정한 논리 어드레스에 따라서, 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하고, 블럭조를 구성하는 2개의 블럭의 구성 페이지를 교대로 적용한 갱신 정보 기입 처리를 실행한다.
다음으로, 도 16 이하의 각 도면을 참조하여 호스트 기기에 의한 플래시 메모리에 대한 데이터 기입, 데이터 판독 처리의 시퀀스에 대하여 설명한다.
우선, 도 16을 참조하여, 상술한 플래시 메모리를 탑재한 메모리 카드를 장착한 호스트(PC 등)의 기동 시의 처리, 즉 호스트가 메모리 카드의 사용을 가능하게 하기 위한 초기 설정 처리에 대하여 설명한다.
호스트는, 우선 단계 S101에서, 플래시 메모리의 로더(Loader) 영역(도 6 참조)의 정보를 판독한다. 플래시 메모리의 로더(Loader) 영역에는 컨트롤 IC가 동작하기 위한 초기 정보가 저장되어 있다.
단계 S102, 단계 S103에서, 플래시 메모리의 관리 정보 영역의 각 블럭의 속성 정보를 판독하고, ROM 상에 판독한 정보에 기초하는 엔트리를 관리 테이블에 등록하고, 그 후 단계 S104에서 관리 정보 영역의 전체 블럭의 속성 정보의 관리 테이블에 대한 등록이 종료하였음을 확인하여 호스트로부터의 커맨드, 예를 들면, 데이터 판독, 기입 등의 처리 커맨드를 대기한다.
플래시 메모리의 관리 정보 영역의 각 블럭의 속성 정보에 기초하여 생성하는 관리 테이블은, 흐름의 우측에 나타낸 바와 같이, 블럭 타입, 블럭 번호/엔트리 번호, 물리 어드레스 블럭 1, 물리 어드레스 블럭 2의 각 항목을 갖는다.
도 8을 참조하여 설명한 바와 같이, 플래시 메모리의 관리 정보 영역에는, 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보, 대체 블럭의 각 블럭이 저장되어 있다. 이들 각 블럭의 속성 정보(도 7, 도 9 참조)로부터 판독한 데이터에 기초하여 도 16에 도시하는 관리 테이블이 생성된다.
여기서는, 본 발명에 관련한 논리 물리 변환 테이블 및 FAT 등의 파일 관리 정보에 대하여 설명한다. 도면에 도시한 바와 같이, FAT에 대해서는, 블럭 타입으로서는, FAT임을 나타내는 블럭 타입 ID가 저장된다. 항목[블럭 번호/엔트리 번호]에는, 도 9를 참조하여 설명한 바와 같이, 논리 포맷상에서의 섹터 어드레스로부터 산출한 논리 어드레스가 저장된다. 이는, FAT 데이터가 저장된 논리 어드레스를 나타낸다. 항목 [물리 어드레스 블럭 1], [물리 어드레스 블럭 2]에는, 상술한 짝수 블럭과 홀수 블럭의 2개의 블럭 각각의 물리 어드레스가 저장된다.
항목 [블럭 번호/엔트리 번호]에 저장된 논리 어드레스에 대응하는 FAT 데이터의 갱신 시에는, 항목 [물리 어드레스 블럭 1], [물리 어드레스 블럭 2]의 블럭을 이용하여, 상술한 짝수 블럭과 홀수 블럭의 각 페이지를 교대로 이용한 FAT 갱신 처리가 실행된다.
플래시 메모리의 관리 정보 영역의 블럭에 대응하는 속성 정보가 모두 판독되어 RAM 상에 관리 테이블이 생성되면, 플래시 메모리에 대한 데이터 기입 혹은 판독이 가능해진다.
데이터의 판독 및 기입 처리에 대하여, 도 17을 참조하여 설명한다. 도 17(a)의 데이터 판독 처리의 수순에 대하여 우선 설명한다. 우선, 단계 S201에서, 판독 데이터 파일의 디렉토리를 검색한다. 디렉토리는, 도 13을 참조하여 설명한 바와 같이, 각 데이터 파일의 명칭 등의 식별자와, 선두의 논리 어드레스로서의 클러스터 식별자를 갖는다.
다음으로, 단계 S202에서, 디렉토리로부터 데이터 파일의 선두의 클러스터 어드레스를 취득하고, 이 클러스터 어드레스에 기초하여 논리 어드레스를 논리 물리 어드레스 변환 테이블에 따라서, 물리 어드레스로 변환하고, 물리 어드레스에 기초하여 특정되는 플래시 메모리의 데이터 저장 위치로부터 데이터를 취득한다. 논리 물리 어드레스 변환 테이블의 저장 위치는, 상술한 관리 테이블에 기초하여 취득되는 논리 물리 어드레스 변환 테이블의 물리 어드레스에 따라서 특정 가능해진다.
또한, 단계 S203에서, 상술한 FAT에 기초하는 클러스터 연쇄 정보에 기초하여 파일 데이터를 구성하는 연속하는 클러스터 식별자, 즉 다음의 논리 어드레스를 취득한다. FAT의 저장 위치는, 상술한 관리 테이블에 기초하여 취득되는 FAT 저장 물리 어드레스에 의해서 액세스된다. FAT에 기초하여 취득한 연쇄 클러스터 정보에 기초하는 논리 어드레스는, 또한 논리 물리 어드레스 변환 테이블에 따라서, 물리 어드레스로 변환하고, 물리 어드레스에 기초하여 특정되는 플래시 메모리의 데이터 저장 위치로부터 데이터를 취득한다.
단계 S202 및 단계 S203의 처리를 데이터 파일의 최종 데이터임이 단계 S204에서 확인될 때까지 반복하여 실행함으로써, 복수의 클러스터(블럭)에 저장된 데이터 파일의 판독이 완료한다.
다음으로, 플래시 메모리에 대한 데이터 기입 처리에 대하여, 도 17(b)의 처리 흐름을 참조하여 설명한다. 우선, 단계 S301에서, 기입하는 논리 어드레스를 결정하기 위한 FAT, 디렉토리 검색을 행한다.
단계 S302에서, 취득된 블럭의 구성 페이지에 순차적으로, 데이터 기입이 실행되고, 단계 S303에서, 데이터 기입을 행한 블럭에 대응하는 물리 어드레스와 논리 어드레스의 대응 관계가 설정된다. 즉, 논리 물리 어드레스 변환 테이블의 갱신 처리가 실행된다. 이 논리 물리 어드레스의 갱신은 앞에서 도 15를 참조하여 설명한 바와 같이, 2개의 서로 다른 블럭의 구성 페이지를 교대로 이용하는 양태로 실행된다. 구체적인 처리 수순에 대해서는, 도 18을 참조하여 후단에서 설명한다.
단계 S304에서, 기입 데이터가 종료하였는지의 여부를 판정하고, 종료하지 않았으면, 단계 S305에서, 또한 논리 어드레스를 FAT에 기초하여 결정하고, 단계 S302에서 결정한 논리 어드레스의 구성 페이지에 데이터를 순차적으로 기입한다.
단계 S303에서는, 관리 정보의 갱신, 즉, 논리 물리 어드레스 변환 테이블의 갱신 처리, 및 어드레스 연쇄 정보(클러스터 연쇄 정보)로서의 FAT의 갱신 처리를 실행한다. 단계 S302∼S305를 반복하여 실행하고, 단계 S304에서 기입 데이터가 종료했다는 판정에 기초하여 처리가 종료한다.
단계 S303에서 실행하는 논리 물리 어드레스 변환 테이블의 갱신 처리, 및 어드레스 연쇄 정보를 나타내는 클러스터 연쇄 정보를 갖는 FAT의 갱신 처리는, 먼저 도 15를 참조하여 설명한 바와 같이, 서로 다른 블럭의 조에 대하여 교대로 페이지를 이용하여 실행한다. 이 구체적인 처리 수순에 대하여 도 18의 처리 흐름을 참조하여 설명한다. 도 18의 처리 흐름에서는, 도 15를 참조하여 설명한 바와 마찬가지고, 짝수 블럭과 홀수 블럭을, 논리 물리 어드레스 변환 테이블 혹은 FAT 등의 파일 관리 정보를 교대로 기입하는 블럭의 조로 한다.
관리 정보의 갱신 처리의 개시에 있어서, 제어부는, 단계 S501에서, 플래시 메모리에서 갱신 직전의 관리 정보가 기입되어 있는 페이지를 검색한다. 이는 상술한 관리 테이블의 정보에 기초하여 취득한다. 또한, 본 흐름에서의 관리 정보는, 논리 물리 어드레스 변환 테이블 혹은 FAT 등의 파일 관리 정보의 양자를 포함하는 의미이다.
단계 S502에서, 갱신전 데이터의 기입 페이지가, 블럭조를 구성하는 블럭 중의 홀수 블럭의 페이지인지의 여부를 판정한다. 갱신전 데이터의 기입 페이지가, 홀수 블럭의 페이지인 경우에는, 단계 S503으로 진행하고, 홀수 블럭의 페이지가 아닌 경우에는, 단계 S506으로 진행한다. 갱신 관리 정보는, 먼저 도 15를 참조하여 설명한 바와 같이, 갱신 직전의 관리 정보가 기입되어 있는 페이지의 다음의 일련 번호가 부여된 페이지, 즉 갱신전의 관리 정보 기입 블럭과는 서로 다른 블럭의 페이지에 기입되는 것으로 한다.
홀수 블럭의 페이지에 갱신 직전의 관리 정보가 기입되어 있었던 경우에는, 갱신 관리 정보를 기입하는 것은 짝수 블럭으로 되고, 단계 S503에서, 제어부는, 갱신 직전의 관리 정보가 기입되어 있는 홀수 블럭의 페이지 번호를 1만큼 인크리먼트한 페이지 번호에 대응하는 짝수 블럭의 페이지 번호를, 갱신 관리 정보의 기입 페이지 번호로서 산출한다.
단계 S504에서, 짝수 블럭에, 단계 S503에서 산출한 페이지 번호에 상당하는 빈 페이지가 있는지의 여부를 판단하고, 해당하는 빈 페이지가 있는 경우에는 단계 S509로 진행하고, 빈 페이지가 없는 경우에는 공정을 단계 S505로 진행한다.
단계 S504의 판정 처리는, 갱신 직전의 관리 정보가 기입되어 있는 홀수 블럭의 페이지가 홀수 블럭의 최후의 페이지인지의 여부를 판단하는 공정에 상당한다. 즉, 홀수 블럭의 최후의 페이지인 경우에는 상술한 단계 S504에서, 짝수 블럭의 페이지 번호를 1인크리먼트해도 해당하는 페이지는 존재하지 않는다.
이 단계 S504에서 짝수 페이지에 갱신 관리 정보를 기입하는 빈 페이지가 존재하는지의 여부를 판단하고, 갱신한 관리 정보를 기입하는 페이지가 없는 경우에, 단계 S505에서, 짝수 블럭으로서 대체 블럭 중에서 새로운 블럭을 취득하고, 구 짝수 블럭에 기입되어 있는 오래된 관리 정보를 모두 소거하여, 선두 페이지, 즉 페이지 번호 O(일련 번호 O)의 페이지를 갱신한 관리 정보를 기입하는 페이지로서 확보하여 확보한 선두 페이지에 갱신한 관리 정보, 즉, 논리 물리 어드레스 변환 테이블의 갱신 데이터 혹은 FAT 등의 파일 관리 정보의 갱신 데이터의 기입 처리를 실행한다.
단계 S504에서, 짝수 블럭에, 단계 S503에서 산출한 페이지 번호에 상당하는 빈 페이지가 있다고 판정한 경우에는, 단계 S509에서, 그 빈 페이지에 대하여 갱신한 관리 정보, 즉, 논리 물리 어드레스 변환 테이블 혹은 FAT 등의 파일 관리 정보의 기입 처리를 실행한다.
단계 S502에서, 갱신전 데이터의 기입 페이지가, 홀수 블럭의 페이지가 아니라고 판정한 경우에는, 단계 S506으로 진행하고, 갱신 직전의 관리 정보가 기입되어 있는 페이지의 페이지 번호가 짝수 블럭의 선두의 페이지, 즉, 페이지 번호 O(일련 번호0)인지의 여부를 판단한다.
짝수 블럭의 선두 페이지, 즉, 페이지 번호 O(일련 번호0)에 갱신 직전의 관리 정보가 기입되어 있는 경우에는, 단계 S507로 진행하여, 홀수 블럭에 기입되어 있는 모든 정보를 소거하고, 홀수 블럭의 선두 페이지, 즉, 페이지 번호 O(일련 번호1)를 갱신 관리 정보의 기입 영역으로서 확보한다.
단계 S506에서, 짝수 블럭의 선두 페이지 이외의 페이지에 갱신 직전의 관리 정보가 기입되어 있다고 판정한 경우에는, 단계 S508로 진행하여, 갱신 직전의 관리 정보가 기입되어 있는 짝수 블럭의 페이지 번호와 동일한 페이지 번호를, 홀수 블럭에서의 갱신 관리 정보의 기입 페이지 영역으로서 확보한다.
단계 S509에서, 제어부는, 홀수 블럭에 확보한 페이지에 갱신한 관리 정보, 즉, 논리 물리 어드레스 변환 테이블의 갱신 데이터 혹은 FAT 등의 파일 관리 정보의 갱신 데이터의 기입 처리를 실행한다.
상술한 바와 같이, 본 발명의 구성에 있어서는, 논리 물리 어드레스 변환 테이블의 갱신 혹은 FAT 등의 파일 관리 정보의 갱신 처리를, 2개의 블럭을 블럭조로서 설정하고, 블럭 교대로 각 페이지를 이용하여 갱신 관리 정보를 기입하는 구성으로 했기 때문에, 예를 들면, 관리 정보의 갱신 처리 중에 호스트 기기로부터 메모리 카드를 뽑게 된 경우, 혹은 전원이 OFF로 되어 버린 경우 등, 갱신 관리 정보의 기입 에러가 발생한 경우에도, 갱신 직전의 데이터는 소실되지 않고 기억 유지되게 되어, 적어도 갱신전의 관리 정보를 이용한 처리가 가능해진다.
따라서, 갱신전의 관리 정보를 이용한 데이터 액세스, 또한 갱신 직전 관리 정보를 이용한 관리 정보의 재갱신 처리를 행할 수 있게 되어, 에러에 대한 내성이 높은 관리 정보 기억 구성이 실현된다.
논리 물리 어드레스 변환 테이블의 갱신 혹은 FAT 등의 파일 관리 정보의 갱신 처리는, 플래시 메모리의 데이터 영역에 저장하는 사용자 데이터의 데이터 기입이 실행될 때마다 행하는 처리 양태와, 사용자 데이터의 데이터 기입이 복수회 행해진 후에 통합하여 실행하는 형태가 있다.
도 19에, 플래시 메모리의 데이터 영역에 대한 데이터 기입마다 관리 정보의 갱신 데이터를 플래시 메모리의 관리 정보 영역에 기입하는 처리를 실행하는 시퀀스와, 플래시 메모리의 데이터 영역에 대한 복수회의 데이터 기입이 종료한 후에 관리 정보의 갱신 데이터를 통합하여 플래시 메모리의 관리 정보 영역에 기입하는 처리를 실행하는 시퀀스를 각각 (a),(b)의 흐름으로서 나타냈다.
(a)와 같이, 단계 S711의 데이터 기입에 대하여, 단계 S712에서, 관리 정보, 즉 논리 물리 어드레스 변환 테이블의 갱신 데이터 혹은 FAT 등의 파일 관리 정보의 갱신 데이터를 기입하고, 단계 S713에서 데이터 기입, 단계 S714에서 관리 정보의 갱신 데이터 기입, 이하 마찬가지로 데이터 기입과 관리 정보 기입을 반복하여 실행한 경우, 예를 들면, 단계 S713에서의 데이터 기입후, 이들 기입 데이터에 대응하는 갱신 관리 정보의 기입(S714)이 완료하기 이전에 메모리 카드가 호스트로부터 뽑혀지는 등, 메모리 카드에 대한 전원 공급이 정지한 경우에는, 단계 S713에서의 기입 데이터만의 어드레스 정보가 관리 정보 영역의 FAT, 논리 물리 어드레스 변환 테이블에 기입되지 않기 때문에, 액세스가 불가능하게 된다.
한편, (b)에는, 데이터 기입 처리 4회당 1회의 비율로 관리 정보의 갱신 처리를 실행하는 시퀀스를 나타내고 있다. 단계 S724∼S727의 4회의 데이터 기입에 대하여, 단계 S728에서, 관리 정보, 즉, 논리 물리 어드레스 변환 테이블의 갱신 데이터 혹은 FAT 등의 파일 관리 정보의 갱신 데이터를 기입한다. 이 경우, 예를 들면, 단계 S727에서의 데이터 기입후, 단계 S724∼S727의 4회의 기입 데이터에 대응하는 갱신 관리 정보의 기입(S728)이 완료하기 이전에 메모리 카드가 호스트로부터 뽑혀지는 등, 메모리 카드에 대한 전원 공급이 정지한 경우에는, 단계 S724∼S727의 4회의 기입 데이터만의 어드레스가 관리 정보 영역의 FAT, 논리 물리 어드레스 변환 테이블에 기입되지 않기 때문에, 액세스가 불가능하게 된다.
이와 같이, 관리 정보의 갱신은, 도 19(a)에 도시한 바와 같이 사용자 데이터의 기입마다 실행하는 것이 갱신 관리 정보에 기초하는 액세스가 불가능하게 되는 데이터량이 감소하게 되어 바람직하다.
또한, 도 20을 참조하여 상술한 본 발명의 관리 정보 갱신 처리, 즉, 논리 물리 어드레스 변환 테이블 및 FAT 등의 파일 관리 정보를 2개의 서로 다른 블럭을 한쌍으로 하여 블럭 교대로 페이지를 이용하여 갱신하는 처리의 시퀀스에 대하여 설명한다.
도 20은, 관리 정보의 갱신 처리 시퀀스를 나타내는 것으로, 예를 들면, 호스트가 플래시 메모리의 데이터 영역으로부터 사용자 데이터를 판독하여 데이터 갱신을 하고, 플래시 메모리에 재기입을 실행한 경우에 행해지는 논리 물리 어드레스 변환 테이블 혹은 FAT 등의 파일 관리 정보의 갱신 처리 시퀀스를 나타내고 있다.
도 20을 참조하여 관리 정보 갱신 시퀀스를 설명한다. 우선, 단계 S701에 서, 갱신할 관리 정보에 대응하는 논리 어드레스가 입력된다. 이 논리 어드레스는 상술한 관리 테이블(도 16 참조)에 기초하여 취득된다.
단계 S702에서, 관리 테이블에 기초하여 갱신 관리 정보를 기입할 블럭을 취득한다. 본 발명의 구성에서는, 상술한 바와 같이, 관리 정보 영역에 저장된 관리 정보, 즉 논리 물리 어드레스 변환 테이블 및 FAT 등의 파일 관리 정보 데이터는, 2개의 블럭(짝수 블럭, 홀수 블럭)의 구성 페이지를 교대로 이용하여 갱신 데이터의 기입 처리를 실행한다. 따라서, 1개의 논리 어드레스에 대하여 2개의 물리 블럭이 대응 되어 있다.
단계 S703에서, 갱신 관리 정보, 즉 갱신된 논리 물리 어드레스 변환 테이블 또는 FAT 등의 파일 관리 정보의 기입 블럭 및 페이지를 결정한다. 이 결정 처리는, 앞서 도 18을 참조하여 설명한 수순에 따라서 실행된다.
기입 블럭 및 페이지가 결정되면, 단계 S704에서, 호스트로부터의 갱신 정보로서의 갱신된 논리 물리 어드레스 변환 테이블 또는 FAT 등의 파일 관리 정보의 기입 처리가 실행되고, 관리 정보 갱신이 종료한다.
도면에 나타낸 예에서는, 블럭 B에 갱신 직전의 관리 정보가 그대로 남고, 블럭 C에 갱신된 관리 정보가 기록되게 된다. 이와 같이, 본 발명의 구성에서는, 갱신전의 관리 정보, 즉, 논리 물리 어드레스 변환 테이블, FAT 등의 파일 관리 정보를 소거하지 않고 유지함으로써, 상술한 갱신 처리에서의 에러 발생 시에 갱신전의 데이터가 보호된다는 효과가 있을 뿐만 아니라, 갱신 처리에 있어서, 새로운 소거 완료 블럭의 추출 처리나, 갱신전 데이터 저장 블럭의 갱신 불필요 페이지의 카피 처리 등이 불필요해져, 관리 정보 갱신 처리에서의 처리 시간의 단축이 도모된다.
상술한 바와 같이, 플래시 메모리에서의 데이터의 재기입은, 통상, 소거 완료 블럭에 대하여 실행되게 되고, 소거 완료 블럭의 확보 처리, 갱신전 데이터의 기입 블럭의 신규 기입 블럭에 대한 데이터 카피 처리 등이 매 갱신마다 필요해졌었다. 본 발명에서는, 관리 정보의 기입 블럭으로서 미리 2개의 블럭이 할당되어 있고, 갱신된 페이지만을 페이지 단위로 순차적으로 서로 다른 블럭에 기입하는 처리를 실행할 뿐으로 관리 정보 갱신이 가능해져, 대폭적인 처리 시간의 단축이 가능해진다. 소거 완료한 블럭의 확보 처리는, 할당된 페이지를 모두 사용한 경우에만 발생하기 때문에, 처리 속도에의 영향는 작다. 따라서, 데이터 갱신후에 사용자에 의한 호스트로부터의 메모리 카드의 발취 등이 행해진 경우에도, FAT, 논리 물리 어드레스 변환 테이블을 포함하는 관리 정보 갱신 처리가 단시간에 실행되기 때문에, 관리 정보의 기입 미완료에 기초하는 에러 발생의 가능성이 감소한다.
예를 들면,
1페이지의 데이터 판독 시간 : Tr
1페이지의 데이터 기입 시간 : Tw
1블럭 소거 시간 : Te
1블럭의 페이지 수 : Pn
으로 했을 때,
종래의 처리 방법, 즉, 소거 블럭에 갱신전의 데이터가 저장되어 있던 구 블럭의 데이터를 카피하고, 또한 갱신 페이지의 기입을 행하면,
처리 시간은,
Tr×(Pn-1)+Tw×Pn+Te
로 된다.
상기 식에서, Tr×(Pn-1)는, 갱신 불필요 페이지(페이지 수 : Pn-1)의 카피 처리에 필요한 구 블럭의 페이지 판독 시간을 나타내고, Tw×Pn은, 신규 블럭에 대한 갱신 페이지+카피 페이지(페이지 수 : Pn)의 기입 시간, Te는 블럭의 소거 시간을 나타낸다.
한편, 본 발명의 구성, 즉 블럭조를 이용한 갱신 정보의 기입 처리의 소요 시간은,
최소로, 1페이지의 기입 시간만, 즉,
Tw이고,
최대, 즉 블럭조의 빈페이지가 없어진 경우에도, Tw+Te에 불과하다.
이와 같이, 본 발명의 구성, 즉 블럭조를 이용한 갱신 정보의 기입 처리의 소요 시간은, 종래의 처리 시간에 비해 대폭 단축된다. 따라서, 데이터 갱신후에 사용자에 의한 호스트로부터의 메모리 카드의 발취 등이 행해진 경우에도, 관리 정보 갱신 처리가 단시간에 실행되어, 관리 정보의 기입 미완료에 기초하는 에러 발생의 가능성이 감소한다.
[호스트 기기의 구성]
마지막으로 플래시 메모리를 이용하는 호스트 기기, 즉 정보 처리 장치의 구성예로서 PC의 하드 구성예에 대하여 도 21을 참조하여 설명한다.
CPU(Central Processing Unit)(701)는, ROM(Read 0nly Memory)(702), 또는 HDD(704) 등에 기억되어 있는 프로그램에 따라서, 각종 처리를 실행한다. RAM(703)에는, CPU(701)가 실행하는 프로그램이나 데이터가 적절하게 기억된다. CPU(701), ROM(702), 및 RAM(703), HDD(704)는, 버스(705)를 통해 서로 접속되어 있다.
버스(705)에는, 입출력 인터페이스(706)가 접속되어 있고, 입출력 인터페이스(706)에는, 예를 들면, 사용자에 의해 조작되는 키보드, 스위치, 버튼, 혹은 마우스 등에 의해 구성되는 입력부(707), 사용자에게 각종의 정보를 제시하는 LCD, CRT, 스피커 등에 의해 구성되는 출력부(708)가 접속된다. 또한, 데이터 송수신 수단으로서 기능하는 통신부(709), 또한, 상술한 플래시 메모리를 갖는 메모리 카드(711)를 장착할 수 있고, 메모리 카드(711)로부터의 데이터 판독 혹은 기입용 인터페이스로서의 플래시 메모리 I/F(710)가 접속된다.
도 21에 도시하는 구성은, 플래시 메모리를 이용하는 정보 처리 장치의 일례로서의 퍼스널 컴퓨터(PC)의 예이지만, 플래시 메모리를 이용하는 정보 처리 장치로는, PC에 한하지 않고, 비디오 카메라, 휴대 전화, PDA 등의 휴대 통신 단말기, 기타 재생 장치, 디스플레이 등의 다양한 전자 기기가 있다. 따라서, 각각의 기기 고유의 하드웨어 구성을 가질 수 있고, 그 하드웨어에 따른 처리를 실행한다.
이상, 특정한 실시예를 참조하면서, 본 발명에 대하여 상세하게 설명하였다. 그러나, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 해당 실시예의 수정이나 대용을 할 수 있는 것은 자명하다. 즉, 예시라는 형태로 본 발명을 개시하여 온 것으로, 한정적으로 해석되어서는 안된다. 본 발명의 요지를 판단하기 위해서는, 특허 청구의 범위의 란을 참작하여야 한다.
또한, 명세서 중에서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 혹은 양자의 복합 구성에 의해서 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우에는, 처리 시퀀스를 기록한 프로그램을, 전용의 하드웨어에 조립된 컴퓨터 내의 메모리에 인스톨하여 실행시키거나, 혹은, 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨하여 실행시키는 것이 가능하다.
예를 들면, 프로그램은 기록 매체로서의 하드디스크나 R0M(Read 0nly Memory)에 미리 기록해 둘 수 있다. 혹은, 프로그램은 플렉시블 디스크, CD-R0M(Compact Disc Read 0nly Memory), MO(Magneto optical) 디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록 매체에, 일시적 혹은 영속적으로 저장(기록)해 둘 수 있다. 이러한 리무버블 기록 매체는, 이른바 패키지 소프트웨어로서 제공할 수 있다.
또한, 프로그램은, 상술한 바와 같은 리무버블 기록 매체로부터 컴퓨터에 인스톨하는 것 외에, 다운로드 사이트로부터, 컴퓨터에 무선 전송하거나, LAN(Local Area Network), 인터넷과 같은 네트워크를 통하여, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그와 같이 하여 전송되어 오는 프로그램을 수신하여, 내장하는 하드디스크 등의 기록 매체에 인스톨할 수 있다.
또한, 명세서에 기재된 각종 처리는, 기재에 따라서 시계열로 실행될 뿐만아니라, 처리를 실행하는 장치의 처리 능력 혹은 필요에 따라서 병렬적으로 혹은 개별적으로 실행되어도 된다.
이상, 설명한 바와 같이, 본 발명의 구성에 따르면, 플래시 메모리의 어드레스 관리 정보인 FAT 등의 파일 관리 정보를 메모리의 관리 정보 영역에 저장함과 함께, FAT 구성 데이터의 저장 블럭으로서 2개의 블럭으로 이루어지는 블럭조를 설정하고, 블럭조를 구성하는 2개의 블럭의 각 페이지를 교대로 적용하여 갱신 FAT 정보를 기입하고, 블럭조를 구성하는 1개의 블럭에 갱신 직전의 FAT 정보를 보유한 채로, 갱신 정보를 또 한쪽의 블럭에 기입하는 구성으로 했기 때문에, 갱신 관리 정보의 기입 에러 발생 시에도 갱신 직전의 FAT 정보가 기억유지되고, 갱신 직전의 FAT 정보를 이용한 처리, 예를 들면, 갱신 직전의 FAT 정보를 이용한 데이터 액세스, 및 갱신 직전의 FAT 정보를 이용한 FAT 정보의 관리 정보의 재갱신 처리 등이 가능해진다.
또한, 본 발명의 구성에 따르면, FAT에 대응하는 1개의 논리 어드레스에 대응하여 2개가 서로 다른 물리 어드레스를 설정하여 논리 어드레스에 기초하여 갱신 데이터를 기입하는 블럭조를 구성하는 2개의 블럭을 바로 추출가능하게 함과 함께, 직전의 갱신전 데이터가 기입된 블럭 및 페이지에 기초하여 갱신 데이터를 기입하는 블럭 및 페이지를 결정하는 구성으로 했기 때문에, 갱신 관리 정보의 기입 블럭 및 페이지의 결정을 고속으로 실행하는 것이 가능해진다.
또한, 본 발명의 구성에 따르면, FAT 등의 파일 관리 정보의 갱신 처리에 있어서, 종래의 데이터 재저장 시퀀스로서 실행하는 소거 완료 블럭의 취득, 갱신전 데이터의 저장되어 있던 블럭으로부터 소거 완료 블럭에 대한 페이지 데이터의 카피 등의 처리를 실행할 필요가 없어지기 때문에, 관리 정보의 갱신 처리 시간이 단축된다. 따라서, 데이터 갱신후에 사용자에 의한 호스트로부터의 메모리 카드의 발취 등이 행해진 경우에도, FAT, 논리 물리 어드레스 변환 테이블을 포함하는 관리 정보 갱신 처리가 단시간에 실행되기 때문에, 관리 정보의 기입 미완료에 기초하는 에러 발생의 가능성이 감소한다.

Claims (14)

  1. 데이터 기억부와, 그 데이터 기억부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖는 데이터 기억 장치로서,
    상기 데이터 기억부는, 소정 용량의 데이터를 기억 가능한 페이지가 복수 설정된 블럭으로 분할되고, 사용자 데이터의 저장 영역으로서의 데이터 영역과, 그 데이터 영역에 대한 액세스를 위한 어드레스 정보를 포함하는 관리 정보 영역을 가지고,
    상기 관리 정보 영역은, 상기 데이터 영역에 저장된 데이터 파일의 어드레스연쇄 정보를 갖는 파일 관리 정보를 저장하고,
    상기 제어부는,
    상기 파일 관리 정보의 갱신 정보를, 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 구성하다 한쪽 블럭의 구성 페이지에 갱신전 파일 관리 정보를 남기고, 상기 블럭조를 구성하는 다른쪽 블럭의 구성 페이지에 갱신후 파일 관리 정보를 기입하는 처리를 실행하는 구성인 것을 특징으로 하는 데이터 기억 장치.
  2. 제1항에 있어서,
    상기 파일 관리 정보는, FAT(File Allocation Tab1e)이고, 상기 제어부는, FAT 갱신 정보의 기입 처리에 있어서, 상기 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 적용하고, 블럭조를 구성하는 2블럭의 구성 페이지에 대하여, 2블럭을 교대로 적용하여 갱신 FAT 정보를 기입하는 처리를 실행하는 구성인 것을 특징으로 하는 데이터 기억 장치.
  3. 제1항에 있어서,
    상기 파일 관리 정보에 대하여 설정되는 1개의 논리 어드레스에 대응하여 상기 블럭조의 어드레스 정보로서의 2개의 물리 어드레스가 설정되고,
    상기 제어부는, 갱신할 파일 관리 정보를 지정한 논리 어드레스에 따라서 상기 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하는 구성인 것을 특징으로 하는 데이터 기억 장치.
  4. 제1항에 있어서,
    상기 제어부는,
    사용자 데이터의 저장 영역으로서의 데이터 영역에 대한 사용자 데이터 기입 처리의 일 처리 단위마다, 상기 파일 관리 정보의 갱신 정보의 기입 처리를 실행하는 구성인 것을 특징으로 하는 데이터 기억 장치.
  5. 제1항에 있어서,
    상기 데이터 기억부의 관리 정보 영역에는, 또한, 상기 데이터 영역에 저장된 데이터에 대응하여 설정되는 논리 어드레스와, 상기 데이터 영역에 저장된 데이터의 물리적 위치에 대응하여 설정되는 물리 어드레스를 대응시킨 논리 물리 어드레스 변환 테이블을 저장한 구성인 것을 특징으로 하는 데이터 기억 장치.
  6. 제5항에 있어서,
    상기 제어부는, 또한,
    상기 논리 물리 어드레스 변환 테이블의 갱신 정보를, 2개의 서로 다른 블럭을 한쌍으로 한 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 논리 물리 어드레스 변환 테이블 구성 정보를 남기고, 상기 블럭조를 구성하는 다른쪽 블럭의 구성 페이지에 갱신후 논리 물리 어드레스 변환 테이블 구성 정보를 기입하는 처리를 실행하는 구성을 갖는 것을 특징으로 하는 데이터 기억 장치.
  7. 제1항에 있어서,
    상기 데이터 기억 장치는, 정보 처리 장치에 착탈 가능한 구성을 가짐과 함께, 상기 정보 처리 장치와의 데이터 입출력 가능한 인터페이스 수단을 포함하고,
    상기 제어부는,
    상기 인터페이스 수단을 통해 정보 처리 장치로부터의 논리 어드레스를 입력하고, 해당 입력 논리 어드레스에 따라서 2개의 물리 어드레스를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭의 조로서 식별하는 구성인 것을 특징으로 하는 데이터 기억 장치.
  8. 제1항에 있어서,
    상기 제어부는,
    상기 파일 관리 정보의 갱신 처리를 페이지 단위로 실행하고, 상기 블럭조를 구성하는 2개의 블럭의 구성 페이지를 교대로 시퀀셜하게 사용하여 갱신 관리 정보의 기입 처리를 실행하고, 해당 블럭조를 구성하는 2블럭의 구성 페이지에 빈 페이지가 없는 경우에, 갱신 직전의 파일 관리 정보가 저장된 블럭과 서로 다른 블럭의 데이터를 소거하고, 해당 소거 블럭의 선두 페이지에 갱신 파일 관리 정보의 기입 처리를 실행하는 구성인 것을 특징으로 하는 데이터 기억 장치.
  9. 데이터 기억부와, 그 데이터 기억부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖는 데이터 기억 장치에서의 관리 정보 갱신 방법으로서,
    갱신 관리 정보에 대응하는 논리 어드레스를 입력하는 논리 어드레스 입력 단계와,
    상기 논리 어드레스에 따라서 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하는 블럭조 식별 단계와,
    상기 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 파일 관리 정보를 남기고, 상기 블럭조를 구성하는 다른쪽 블럭의 구성 페이지에 갱신후 파일 관리 정보를 기입하는 처리를 실행하는 갱신 정보 기입 단계
    를 갖는 것을 특징으로 하는 데이터 기억 장치에서의 관리 정보 갱신 방법.
  10. 제9항에 있어서,
    상기 파일 관리 정보는, FAT(File Allocation Table)이고, 상기 갱신 정보 기입 단계는,
    상기 블럭조를 구성하는 2블럭의 구성 페이지에 대하여, 2블럭을 교대로 적용하여 갱신 FAT 정보를 기입하는 처리를 실행하는 것을 특징으로 하는 데이터 기억 장치에서의 관리 정보 갱신 방법.
  11. 제9항에 있어서,
    사용자 데이터의 저장 영역으로서의 데이터 영역에 대한 사용자 데이터 기입 처리의 일 처리 단위마다, 상기 파일 관리 정보의 갱신 정보 기입 단계를 실행하는 것을 특징으로 하는 데이터 기억 장치에서의 관리 정보 갱신 방법.
  12. 제9항에 있어서,
    상기 데이터 기억 장치에서의 관리 정보 갱신 방법은, 또한,
    상기 논리 어드레스 입력 단계에서 입력하는 논리 어드레스에 따라서 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신할 논리 물리 어드레스 변환 테이블 구성 정보를 기입하는 블럭을 구성하는 블럭조로서 식별하는 블럭조 식별 단계와,
    상기 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 논리 물리 어드레스 변환 테이블 구성 정보를 남기고, 상기 블럭조를 구성하는 다른쪽 블럭의 구성 페이지에 갱신후 논리 물리 어드레스 변환 테이블 구성 정보를 기입하는 처리를 실행하는 갱신 정보 기입 단계
    를 실행하는 것을 특징으로 하는 데이터 기억 장치에서의 관리 정보 갱신 방법.
  13. 제9항에 있어서,
    상기 갱신 정보 기입 단계는,
    상기 파일 관리 정보의 갱신 처리를 페이지 단위로 실행하고, 상기 블럭조를 구성하는 2개의 블럭의 구성 페이지를 교대로 시퀀셜하게 사용하여 갱신 관리 정보의 기입 처리를 실행하고, 해당 블럭조를 구성하는 2블럭의 구성 페이지에 빈 페이지가 없는 경우에, 갱신 직전의 파일 관리 정보가 저장된 블럭과 서로 다른 블럭의 데이터를 소거하고, 해당 소거 블럭의 선두 페이지에 갱신 파일 관리 정보의 기입 처리를 실행하는 것을 특징으로 하는 데이터 기억 장치에서의 관리 정보 갱신 방법.
  14. 데이터 기억부와, 그 데이터 기억부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖는 데이터 기억 장치에서의 관리 정보 갱신 처리를 실행하는 컴퓨터 프로그램으로서,
    갱신 관리 정보에 대응하는 논리 어드레스를 입력하는 논리 어드레스 입력 단계와,
    상기 논리 어드레스에 따라서 2개의 물리 어드레스 정보를 취득하고, 해당 2개의 물리 어드레스에 기초하여 특정되는 2블럭을 갱신 파일 관리 정보의 기입 블럭을 구성하는 블럭조로서 식별하는 블럭조 식별 단계와,
    상기 블럭조를 구성하는 한쪽 블럭의 구성 페이지에 갱신전 파일 관리 정보를 남기고, 상기 블럭조를 구성하는 다른쪽 블럭의 구성 페이지에 갱신후 파일 관리 정보를 기입하는 처리를 실행하는 갱신 정보 기입 단계
    를 갖는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020047018663A 2003-03-19 2004-03-05 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리정보 갱신 방법, 및 컴퓨터 프로그램 KR20050107557A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003074931A JP2004280752A (ja) 2003-03-19 2003-03-19 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JPJP-P-2003-00074931 2003-03-19

Publications (1)

Publication Number Publication Date
KR20050107557A true KR20050107557A (ko) 2005-11-14

Family

ID=33027853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047018663A KR20050107557A (ko) 2003-03-19 2004-03-05 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리정보 갱신 방법, 및 컴퓨터 프로그램

Country Status (7)

Country Link
US (1) US7444460B2 (ko)
EP (1) EP1507209A4 (ko)
JP (1) JP2004280752A (ko)
KR (1) KR20050107557A (ko)
CN (1) CN1698035A (ko)
TW (1) TWI247988B (ko)
WO (1) WO2004084074A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442145B1 (ko) * 2007-01-11 2014-09-23 삼성전자 주식회사 데이터 관리 장치 및 방법
KR20200009384A (ko) 2018-07-18 2020-01-30 고진호 격투기용 신체보호대

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050152251A1 (en) * 2004-01-08 2005-07-14 Victor Company Of Japan, Ltd. Method and apparatus for recording check data of file system on recording medium
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
JP4570891B2 (ja) * 2004-03-30 2010-10-27 ルネサスエレクトロニクス株式会社 記憶装置
JP4843222B2 (ja) * 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
KR100746289B1 (ko) 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
JP4547028B2 (ja) * 2005-08-03 2010-09-22 サンディスク コーポレイション ブロック管理を伴う不揮発性メモリ
JP4859837B2 (ja) * 2005-09-22 2012-01-25 パナソニック株式会社 情報記録媒体アクセス装置、及びデータ記録方法
US7836105B2 (en) * 2005-11-14 2010-11-16 Apple Inc. Converting file-systems that organize and store data for computing systems
JP4895264B2 (ja) * 2005-12-27 2012-03-14 株式会社メガチップス 記憶装置および情報処理装置
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
KR100737919B1 (ko) * 2006-02-28 2007-07-10 삼성전자주식회사 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
DE102006013765A1 (de) 2006-03-24 2007-09-27 Robert Bosch Gmbh Verfahren zur Belegung eines Speichers
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP2008059228A (ja) * 2006-08-31 2008-03-13 Sharp Corp ファイルシステム
KR100845137B1 (ko) * 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US8151060B2 (en) 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
JP4402103B2 (ja) * 2006-12-11 2010-01-20 富士通株式会社 データ記憶装置、そのデータ再配置方法、プログラム
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
US8103936B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for data read of a synchronous serial interface NAND
US7675776B2 (en) * 2007-12-21 2010-03-09 Spansion, Llc Bit map control of erase block defect list in a memory
US8239611B2 (en) 2007-12-28 2012-08-07 Spansion Llc Relocating data in a memory device
JP5491201B2 (ja) * 2008-01-16 2014-05-14 パナソニック株式会社 半導体記録装置及び半導体記録システム
US8296506B2 (en) * 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
TWI498731B (zh) * 2010-03-17 2015-09-01 Phison Electronics Corp 非揮發性記憶體儲存系統
TWI425355B (zh) * 2010-03-17 2014-02-01 Phison Electronics Corp 資料存取方法、記憶體控制器與儲存系統
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
JP2013003701A (ja) * 2011-06-14 2013-01-07 Sony Corp 情報処理装置及び方法、並びにプログラム
CN102591807B (zh) * 2011-12-30 2015-03-11 记忆科技(深圳)有限公司 一种固态硬盘掉电和写异常处理方法及系统
TWI451248B (zh) * 2012-01-13 2014-09-01 Phison Electronics Corp 資料保護方法、記憶體控制器與記憶體儲存裝置
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
JP5659178B2 (ja) * 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US8625386B2 (en) 2012-03-22 2014-01-07 Seiko Epson Corporation Non-volatile memory device, circuit board, printing material container and printer
JP6072428B2 (ja) * 2012-05-01 2017-02-01 テセラ アドバンスト テクノロジーズ インコーポレーテッド 制御装置、記憶装置、記憶制御方法
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
CN107533518B (zh) * 2015-01-20 2020-09-18 乌尔特拉塔有限责任公司 用于容错对象存储器结构的分布式索引
WO2016118624A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Object memory instruction set
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
KR102316198B1 (ko) * 2015-06-12 2021-10-25 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
US9904607B2 (en) 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
CN108885604B (zh) 2015-12-08 2022-04-12 乌尔特拉塔有限责任公司 存储器结构软件实现方案
CA3006776A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc. Memory fabric operations and coherency using fault tolerant objects
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
US10235063B2 (en) 2015-12-08 2019-03-19 Ultrata, Llc Memory fabric operations and coherency using fault tolerant objects
KR102299880B1 (ko) * 2017-04-04 2021-09-09 에스케이하이닉스 주식회사 데이터 변환 장치 및 방법
WO2018207489A1 (ja) * 2017-05-10 2018-11-15 オリンパス株式会社 動画生成装置、動画生成方法、及び動画生成プログラム
CN107357528A (zh) * 2017-06-29 2017-11-17 长沙伟确科技发展有限公司 一种基于flash的文件系统
JP6935694B2 (ja) * 2017-07-12 2021-09-15 株式会社デンソー 電子制御装置
JP2019179455A (ja) 2018-03-30 2019-10-17 東芝メモリ株式会社 記憶装置及びコンピュータシステム
CN114116366A (zh) * 2020-08-26 2022-03-01 宸展光电(厦门)股份有限公司 一种检测存储器安装状态的方法、装置及系统
CN114442903A (zh) * 2020-10-30 2022-05-06 伊姆西Ip控股有限责任公司 管理存储系统的方法、电子设备和计算机程序产品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207788A (ja) 1997-01-28 1998-08-07 Casio Comput Co Ltd 情報記録装置及びそのデータ管理方法並びに記録媒体
US6330028B1 (en) * 1996-02-15 2001-12-11 Casio Computer Co., Ltd. Electronic image pickup device which is operable even when management information related to recording/reproducing image data is not readable
JPH11144478A (ja) * 1997-11-10 1999-05-28 Hitachi Device Eng Co Ltd 不揮発性半導体メモリの情報記憶方法および電子機器
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4779183B2 (ja) * 1999-03-26 2011-09-28 ソニー株式会社 再生装置および再生方法
JP4524921B2 (ja) * 1999-03-03 2010-08-18 ソニー株式会社 記録装置、記録方法、再生装置および再生方法
JP4281185B2 (ja) * 1999-03-25 2009-06-17 ソニー株式会社 編集装置および方法
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6643731B2 (en) * 1999-12-31 2003-11-04 Texas Instruments Incorporated Low cost memory management that resists power interruption
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
TW539950B (en) 2000-12-28 2003-07-01 Sony Corp Data recording device and data write method for flash memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442145B1 (ko) * 2007-01-11 2014-09-23 삼성전자 주식회사 데이터 관리 장치 및 방법
KR20200009384A (ko) 2018-07-18 2020-01-30 고진호 격투기용 신체보호대

Also Published As

Publication number Publication date
TWI247988B (en) 2006-01-21
CN1698035A (zh) 2005-11-16
TW200506609A (en) 2005-02-16
WO2004084074A1 (ja) 2004-09-30
EP1507209A4 (en) 2008-08-27
JP2004280752A (ja) 2004-10-07
EP1507209A1 (en) 2005-02-16
US20050182892A1 (en) 2005-08-18
US7444460B2 (en) 2008-10-28

Similar Documents

Publication Publication Date Title
KR20050107557A (ko) 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리정보 갱신 방법, 및 컴퓨터 프로그램
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
US8291155B2 (en) Data access method, memory controller and memory storage system
KR100871027B1 (ko) 데이터 기록 장치 및 플래시 메모리에 대한 데이터 기입방법
KR100877448B1 (ko) 비휘발성 기억 시스템
JP3072722B2 (ja) フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
US7752412B2 (en) Methods of managing file allocation table information
US20110099324A1 (en) Flash memory storage system and flash memory controller and data processing method thereof
JP2010244573A (ja) 記憶装置および記憶システム
US20080082773A1 (en) Systems for Managing File Allocation Table Information
JP4722704B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
CN109496292B (zh) 一种磁盘管理方法、磁盘管理装置及电子设备
JP2007280108A (ja) 記憶媒体制御装置、記憶媒体制御方法、プログラム
US20130013885A1 (en) Memory storage device, memory controller, and method for identifying valid data
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
KR100757128B1 (ko) 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법
CN100409164C (zh) 存储系统
JP5002944B2 (ja) 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
JP2007026453A (ja) 記憶装置および記憶システム
WO2020241545A1 (ja) 情報処理装置
JP2006155461A (ja) 情報処理装置、情報処理方法、並びにプログラム
JP2006302315A (ja) 記憶装置および記憶システム
JP3624647B2 (ja) 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム
KR20030095820A (ko) 메모리 억세스 제어장치 및 방법
JP2006178633A (ja) 情報処理装置、情報処理方法、プログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid