KR20010022618A - 데이터 처리 시스템, 블록 소거형 메모리 장치 및 메모리장치 제어용 프로그램을 저장하는 기록 매체 - Google Patents

데이터 처리 시스템, 블록 소거형 메모리 장치 및 메모리장치 제어용 프로그램을 저장하는 기록 매체 Download PDF

Info

Publication number
KR20010022618A
KR20010022618A KR1020007001212A KR20007001212A KR20010022618A KR 20010022618 A KR20010022618 A KR 20010022618A KR 1020007001212 A KR1020007001212 A KR 1020007001212A KR 20007001212 A KR20007001212 A KR 20007001212A KR 20010022618 A KR20010022618 A KR 20010022618A
Authority
KR
South Korea
Prior art keywords
data
block
memory device
erasing
memory
Prior art date
Application number
KR1020007001212A
Other languages
English (en)
Other versions
KR100375533B1 (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 KR20010022618A publication Critical patent/KR20010022618A/ko
Application granted granted Critical
Publication of KR100375533B1 publication Critical patent/KR100375533B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

데이터 처리 시스템에는 복수개의 블록을 포함하고 저장된 데이터를 블록 단위로 선택적으로 소거할 수 있는 플래시 메모리(1)가 제공되고, 플래시 메모리를 액세스하고, 플래시 메모리의 메모리 영역의 논리 단위로서 동작하는 각 클러스터와 정수개의 블록을 실질적으로 일치시키기 위한 포맷 정보에 따라 플래시 메모리를 포맷시키는 제어 회로(21)를 포함하며, 각 클러스터의 크기 및 위치를 결정하고 그 결정된 클러스터의 크기 및 위치에 따라 플래시 메모리의 데이터의 소거, 기록 입력 및 판독을 실행하는 제어 회로(23)를 포함하는 메모리 제어 유닛(2)이 제공된다.

Description

데이터 처리 시스템, 블록 소거형 메모리 장치 및 메모리 장치 제어용 프로그램을 저장하는 기록 매체{DATA PROCESSING SYSTEM, BLOCK ERASING TYPE MEMORY DEVICE AND MEMORY MEDIUM STORING PROGRAM FOR CONTROLLING MEMORY DEVICE}
최근, 플래시 메모리가 플로피 디스크 대신에 휴대형 비휘발성 기록 매체, 특히 이동 정보 단말기용 기록 매체로서 이용되고 있다. 여기에 언급하는 플래시 메모리는 복수개의 블록을 포함하는 비휘발성 블록 소거형 메모리 장치에 관한 것이며, 이 비휘발성 메모리 장치의 내부에 저장된 데이터는 각 블록 단위로 전기적으로 소거될 수 있다.
플래시 메모리가 MS-DOS(마이크로소프트사의 등록 상표)와 같은 디스크 오퍼레이팅 시스템 환경의 제어 하에서 사용될 때, 플로피 디스크와 동일한 방식으로 메모리를 사용하도록 플로피 디스크에 종래의 방식으로 사용된 동일한 포맷에 따라 포맷된다. 이 포맷에 따라, 메모리 영역은 부트 영역, FAT(파일 할당 테이블) 영역, 디렉토리 영역 및 데이터 영역으로 분할된다. 데이터 영역은 부트 영역에 저장된 정의에 따라 클러스터들로 분할되고 플래시 메모리에 저장될 파일은 1개의 클러스터 단위로 저장된다.
그러나, 종래의 플래시 메모리의 포맷에 있어서, 클러스터의 위치는 블록의 위치와 일치하지 않는다.
그러므로, 클러스터에 저장된 데이터(파일)를 갱신하고자 하면, 블록 유닛에서 갱신할 필요가 없는 데이터(파일)도 모두 함께 소거된다. 따라서, 갱신할 필요가 없는 데이터는 다른 클러스터에 저장되어야 한다.
데이터(파일)가 플래시 메모리에 기록될 때에 동일한 문제가 발생한다.
또한, 데이터의 소거 또는 기록 입력이 실행되면, FAT 또는 디렉토리는 재기록 되어야 하며, 그에 따라서 소거할 필요가 없는 데이터가 상응하여 다른 블록에 저장되어야 한다.
그러므로, 종래의 블록 소거형 메모리 장치의 단일 파일을 갱신하기 위해서, 1개의 블록 내의 데이터라 할지라도 복수개의 블록이 갱신되어야 한다. 이로 인해, 데이터 기록 프로세스는 2개 부분으로 분할되어서 장시간을 소모하고, 그에 따라서 전체 메모리 장치의 처리 속도의 저하가 자주 발생된다.
데이터(파일)가 플래시 메모리에 기록될 때에 동일한 문제가 발생한다.
또한, 데이터의 소거 또는 기록 입력이 실행되면, FAT 또는 디렉토리는 재기록 되어야 하며, 이로써 소거할 필요가 없는 데이터가 상응하여 다른 블록에 저장되어야 한다.
CPU와 같은 데이터 처리 유닛이 메모리 장치의 크기 및 전력 소모를 감소시키기 위한 특정 제어기를 사용하지 않고 직접 액세스를 통하여 블록 소거형 메모리를 제어할 때, 이러한 문제는 더욱 이해 가능하게 된다.
본 발명은 블록 소거형 메모리 장치를 사용하는 데이터 처리 시스템, 블록 소거형 메모리 장치, 및 블록 소거형 메모리 장치에 대한 데이터 포맷, 데이터 소거 및 데이터 기록 등을 제어하는 프로그램을 저장하는 컴퓨터 판독 가능 프로그램 기록 매체에 관한 것이다.
도 1은 본 발명의 제1 실시예에 따른 플래시 메모리의 메모리 제어 시스템의 구조를 나타내는 블록도.
도 2는 플래시 메모리의 구조를 나타내는 개략도.
도 3은 메모리 셀 어레이의 구조를 나타내는 도면.
도 4는 본 발명의 제1 실시예에 따른 플래시 메모리의 포맷에서의 블록과 클러스터 사이의 관계를 나타내는 도면.
도 5는 본 발명의 제1 실시예에서 디렉토리, 파일 할당 테이블 및 클러스터 사이의 통신을 나타내는 도면.
도 6은 어드레스 전환 테이블의 구조예를 나타내는 도면.
도 7은 본 발명의 제1 실시예의 데이터 판독 출력 동작을 나타내는 플로우차트.
도 8은 본 발명의 제1 실시예의 데이터 기록 입력 동작을 나타내는 플로우차트.
도 9는 본 발명의 제1 실시예의 데이터 소거 동작을 나타내는 플로우차트.
도 10은 본 발명의 제1 실시예에 따른 플래시 메모리의 포맷 프로세스를 나타내는 플로우차트.
도 11은 본 발명의 제1 실시예에 따른 플래시 메모리에서의 파일 소거를 나타내는 플로우차트.
도 12은 본 발명의 제1 실시예에 따른 플래시 메모리에 파일을 기록하는 프로세스를 나타내는 플로우차트.
도 13은 본 발명의 제2 실시예에 따른 메모리 장치의 구조를 나타내는 블록도.
도 14는 본 발명의 제3 실시예에 따른 플래시 메모리의 포맷도.
도 15는 본 발명의 제4 실시예에 따른 플래시 메모리를 포맷하는 프로세스를 나타내는 플로우차트.
도 16은 본 발명의 제5 실시예에 따른 파일 할당 테이블 및 디렉토리의 데이터를 저장하기 위한 특정 클러스터 그룹을 나타내는 도면.
도 17은 본 발명의 제5 실시예에 따른 2개의 특정 클러스터 그룹을 나타내는 도면.
도 18은 본 발명의 제5 실시예에 따른 플래시 메모리를 포맷하는 프로세스의 플로우차트.
도 19는 본 발명의 제5 실시예에 따른 플래시 메모리의 파일을 소거하는 프로세스를 나타내는 플로우차트.
도 20은 본 발명의 제5 실시예에 따른 플래시 메모리에 파일을 기록하는 프로세스를 나타내는 플로우차트.
본 발명의 목적은 데이터 액세스, 특히 블록 소거형 메모리 장치에서의 데이터 소거를 포함하는 처리를 가속시키는 것이다.
본 발명의 다른 목적은 데이터 기록 입력 프로세스를 신속하게 행하고 기억 용량을 최적으로 활용할 수 있는 포맷 구조를 갖는 블록 소거형 메모리 장치와, 동일한 기록 매체를 사용하는 처리 시스템과, 블록 소거형 메모리 장치의 포맷, 데이터 소거 및 데이터 기록 입력을 위한 프로그램을 저장하는 프로그램 기록 매체를 제공하는 것이다.
본 발명의 제1 사상에 따라, 복수개의 블록을 포함하는 블록 소거형 메모리 장치를 포함하고 저장된 데이터를 1개 블록 단위로 선택적으로 소거할 수 있는 데이터 처리 시스템과, 블록 소거형 메모리 장치를 액세스하기 위한 데이터 처리 수단이 제공되고, 여기에서 데이터 처리 수단은 블록 소거형 메모리 장치에 접속되어서 블록 소거형 메모리 장치의 메모리 영역의 논리 단위로서 클러스터의 크기 및 위치와 정수개의 블록의 크기 및 위치를 실질적으로 일치시키도록 포맷 정보에 따라서 블록 소거형 메모리 장치를 포맷하는 포맷부를 포함하고, 포맷 정보에 따라 클러스터의 크기 및 위치를 결정하고 결정된 클러스터의 크기 및 위치에 따라 블록 소거형 메모리 장치에 대해 데이터 소거, 데이터 기록 입력 및 데이터 판독 출력을 실행하는 액세스 제어부를 포함한다.
상기 데이터 처리 시스템에서, 클러스터는 정수개의 블록을 포함한다. 따라서, 데이터 소거 및 데이터 기록 입력 프로세스는 1개 블록 단위로 실행될 수 있다. 따라서, 데이터 기록 입력 또는 소거를 위해 다른 데이터를 저장할 필요성이 없어져서, 데이터 소거 및 기록 입력 프로세스가 신속하게 실행될 수 있다.
본 발명의 제2 사상에 따라, 정수개의 블록이 데이터 메모리 영역의 단위로서 동작하는 클러스터와 실질적으로 대응하도록 포맷 정보를 저장하는 포맷 정보 메모리 영역을 가지며 저장된 데이터를 선택적으로 1개 블록 단위로 소거 가능한 블록 소거형 메모리 장치가 제공된다.
이러한 블록 소거형 메모리 장치에서, 클러스터는 정수개의 블록을 포함한다. 따라서, 데이터 소거 및 기록 입력 프로세스는 1개 블록 단위로 실행될 수 있다. 따라서, 데이터 기록 입력을 위해 다른 데이터를 저장할 필요성이 없어져서, 데이터 소거 및 기록 입력 프로세스가 신속하게 실행될 수 있다.
본래, 클러스터는 단일 블록을 가지지만, 복수개의 블록으로 형성될 수 있다.
포맷 정보는 클러스터의 크기와 블록의 크기를 대응시키는 정보와, 각 클러스터의 시작 위치 및 끝 위치와 블록의 시작 위치 및 끝 위치, 예컨대 빈 공간을 일치시키도록 영역을 조정하는 위치를 포함한다.
블록 소거형 메모리 장치는 파일명 및 헤드 메모리를 지시하는 디렉토리 정보와 단일 클러스터 내의 파일 위치를 지시하는 파일 할당 테이블을 저장할 수 있다.
데이터가 기록 매체에 저장될 때에는 본래, 각 데이터가 저장된 위치가 어디인지를 지시하는 위치 정보(예컨대, 파일 할당 테이블)와 각 데이터의 식별명(예컨대, 파일명 및 디렉토리)을 기억시킬 필요가 있다. 이러한 위치 정보 및 식별명은 데이터 기록 입력 또는 소거가 실행되는 매시간 갱신되어야 한다. 상기 블록 소거형 메모리 장치에서, 위치 정보 및 식별명은 단일 클러스터 또는 단일 블록에 저장된다. 그러므로, 이들 데이터를 갱신하기 위해 다른 데이터를 저장할 필요성이 없어졌다. 따라서, 데이터 기록 입력 또는 소거 프로세스는 신속하게 실행될 수 있다.
포맷 정보를 저장하는 블록을 포함한 상기 블록 외의 블록의 저장된 데이터는 물리적으로 소거되는 것이 바람직하다.
일반적인 기록 매체에서, 데이터 영역에 저장된 데이터를 물리적으로 소거(예컨대, "1"에 상응하는 데이터를 기록함으로써 소거)하지 않고, 데이터의 특정 부분(예컨대, 헤드 1개의 캐릭터)을 특정 코드로써 대체함으로써 데이터가 소거된 것을 고려할 수 있다.
그러나, 플래시 메모리와 같은 블록 소거형 메모리 장치에서, 이러한 데이터 소거 방식에 의해서 새로운 데이터는 소거된 데이터 위에 기록될 수 없고, 이로써 본래의 데이터를 저장하고 그 적합한 영역을 소거하는 프로세스가 필요하다.
본 발명에 따름으로써, 부트 영역 및 FAT 영역 등과 같은 특정 영역 외의 영역에서, 데이터가 소거되었고, 데이터의 저장 및 기록 입력상의 소거 프로세스는 불필요하게 되어서, 기록 입력 프로세스는 가속될 수 있다.
본 발명의 제3 사상에 따라, 복수개의 블록을 포함하여서 저장된 데이터를 1개 블록 단위로 선택적으로 소거할 수 있는 블록 소거형 메모리 장치에 접속 가능하게 되도록 구성된 접속부와, 정수개의 블록, 예컨대 1개 블록과 클러스터를 실질적으로 일치시키는 포맷 정보를 접속부를 통하여 블록 소거형 메모리 장치에 기록함으로써 블록 소거형 메모리 장치를 포맷하는 포맷부를 포함하는 데이터 처리 시스템이 제공된다.
이러한 시스템에 따라, 클러스터는 정수개의 블록을 포함한다. 따라서, 데이터 소거 및 기록 입력 프로세스는 1개 블록 단위로 실행될 수 있다. 그러므로, 데이터 기록 입력 프로세스를 위해 다른 데이터를 저장할 필요성이 없어져서, 데이터 소거 및 기록 입력 프로세스가 가속될 수 있다.
클러스터와 블록을 대응시키기 위해, 클러스터의 크기와 블록의 크기를 대응시키는 정보와, 각 클러스터의 시작 위치 및 끝 위치와 각 블록의 시작 위치 및 끝 위치를 일치시키는 위치 조정 정보를 블록 소거형 메모리 장치에 기록하는 것이 가능하다.
상기한 데이터 처리 시스템은 파일명 및 헤드 메모리 위치를 지시하는 디렉토리 정보를 기록하기 위한 섹션과, 클러스터를 위치 지정하는 파일을 지시하는 파일 할당 테이블을 더 포함할 수 있다.
이들 정보 항목들은 데이터 기록 입력 또는 소거 프로세스가 실행되는 매시간 갱신된다. 이러한 시스템에서이기 때문에, 이들 정보 항목들은 단일 블록에 저장되고, 이들 데이터를 갱신하기 위해 다른 데이터를 저장할 필요성이 없어진다. 따라서, 데이터 기록 입력 또는 소거 프로세스는 가속될 수 있다.
상기한 포맷부는 포맷 정보가 기록되어 있는 블록 외의 블록의 저장된 데이터를 물리적으로 소거하는 소거부를 포함할 수 있다.
일반적인 기록 매체에서, 데이터를 물리적으로 소거하지 않고 특정 데이터부를 특정 코드로 대체함으로써 데이터가 소거되었다고 생각할 수 있다.
그러나, 블록 소거형 메모리 장치에서, 이러한 데이터 소거 방식에 따라, 본래의 데이터 등을 소거하는 프로세스가 데이터 기록 입력 프로세스시에 필요하므로, 프로세스 시간이 길어진다. 본 발명에 따름으로써, 데이터 영역의 데이터는 포맷 위에서 물리적으로 소거되고, 기록 입력 프로세스가 가속될 수 있다.
블록 소거형 메모리 장치에 기록된 파일을 소거할 때에도, 적합한 데이터를 포함하는 블록의 데이터가 물리적으로 소거되는 것이 바람직하다.
상기한 데이터 처리 시스템은 접속부를 통해 포맷 정보를 판독 출력하는 포맷 정보 판독 출력부와, 포맷 정보 판독 출력부에 의해 판독 출력된 포맷 정보에 따라 파일의 최소 단위로서 동작하는 클러스터의 크기 및 위치를 결정하는 클러스터 결정부와, 클러스터 결정 수단에 의해 결정된 클러스터의 크기 및 위치에 따라 블록 소거형 메모리의 데이터의 소거, 기록 입력 및 판독 출력을 제어하는 제어부를 더 포함할 수 있다.
이러한 요소로, 데이터 소거 및 기록 입력 프로세스 등이 가속될 수 있다.
컴퓨터가 상기한 데이터 처리 시스템 및 기능을 실행하도록 만드는 프로그램이 매모리 매체에 저장되고 분배될 수 있고, 컴퓨터 상에서 상기한 동작을 실행하도록 컴퓨터에 삽입될 수 있다.
이하에서, 본 발명의 실시예는 첨부된 도면을 참조하여 설명할 것이다.
도 1은 본 발명의 제1 실시예에 따른 플래시 메모리의 메모리 제어 시스템의 구조를 나타내는 블록도이다.
나타낸 바와 같이, 메모리 제어 시스템은 플래시 메모리(1), 메모리 제어 유닛(메모리 제어기)(2), 컴퓨터(3) 및 I/O 버스(4)를 포함한다. 메모리 제어 유닛(2)은 SCSI 버스와 같은 I/O 버스(4)를 통해 컴퓨터(3)에 접속되고 컴퓨터(3)로부터 제거 가능하다.
플래시 메모리(1)는 메모리 셀 어레이(11), 어드레스 레지스터(12), 컬럼 디코더(13), 로우(low) 어드레스 디코더(14), 전압 변환 회로(변압기)(15) 및 고전압 발생 회로(고전압 발생기)(16)를 포함한다.
메모리 셀 어레이(11)는 각각 1 바이트의 메모리 용량을 갖는 복수개의 메모리 영역으로 구성된다. 이들 메모리 영역은 16384 로우 * 528 컬럼의 매트릭스로 정렬되고, 따라서 전체 메모리 셀 어레이는 약 8.64 메가바이트의 용량을 갖는다.
메모리 셀 어레이(11)의 각 로(row)는 도 2에 도시한 바와 같이 528 바이트의 메모리 용량을 갖는 페이지를 형성한다. 각 페이지에 포함된 각 메모리 영역에는 1부터 528까지의 연속적인 컬럼 어드레스가 제공된다.
처음부터의 16 페이지의 각 유닛은 단일 블록을 형성한다. 각 블록은 약 8.03 킬로바이트의 메모리 용량을 가지며 전체 메모리 영역은 1024 블록을 포함한다. 각 블록에는 블록 어드레스가 1부터 1024까지 연속적으로 제공된다.
동일한 블록에 속하는 모든 16개의 메모리 영역은 도 3에 나타낸 바와 같이 16 로우 * 8 컬럼의 매트릭스로 정렬된 메모리 셀을 포함한다. 이들 메모리 셀은 공통 기판 상에 형성된 NAND형이다.
각 컬럼의 메모리 셀의 전류 경로는 직렬로 접속되어 있고 각 로우의 게이트는 공통 로우 제어 입력 단자(Trcnt)에 접속된다. 각 로우 제어 입력 단자(Trcnt)는 동일한 페이지의 다른 컬럼에 속하는 각 메모리 셀의 게이트에 접속된다.
FET들(전계 효과 트랜지스터)(1-1~1-8)의 소스는 직렬로 접속된 각 전류 경로의 단부에 접속된다. FET들(전계 효과 트랜지스터)(1-1~1-8)의 드레인은 각 컬럼에 대응하는 데이터 I/O 단자(Tdata)에 접속되고 게이트는 공통 컬럼 제어 입력 단자(Tccnt1)에 접속된다.
각 컬럼 선택 FET들(2-1~2-8)의 드레인은 각 전류 경로의 다른 단부에 접속되고 각 FET들(2-1~2-8)의 소스는 기판에 접속된다. 각 FET들(2-1~2-8)의 게이트는 공통 컬럼 제어 입력 단자(Tccnt2)에 접속된다.
컬럼 제어 입력 단자(Tccnt1, Tccnt2)는 플래시 메모리 어레이(11)의 동일한 로우에 속하는 각 메모리 셀에 접속된 로우 선택 FET(1-1~1-8) 및 FET(2-1~2-8)에 접속되어 있다.
각 메모리 셀은 데이터 I/O 단자(Tdata) 상에 데이터의 기록 입력을 실행하고, 데이터 I/O 단자(Tdata)로의 판독을 실행하며, 로우 제어 입력 단자(Trcnt), 컬럼 제어 입력 단자(Tccnt1, Tccnt2) 및 기판에 공급된 전압에 따른 메모리의 소거를 실행한다. 이후에 설명하는 바와 같이, 일반적으로 메모리 셀 어레이(11)에서, 데이터는 1개 페이지 단위로 기록되고, 데이터 판독은 1개 바이트 단위로 실행되며, 데이터 소거는 1개 블록 단위로 실행된다.
각 메모리 셀은 NAND형이기 때문에, 기록된 값의 "1"에서 "0"까지의 방향으로 기록하는 것 외에는 데이터 기록이 실행될 수 없다. 메모리 셀의 기록된 값이 "0"인 비트는 기록 내용이 리셋(1개 블록 단위로 소거)일 때까지 "0"의 상태를 유지한다.
어드레스 레지스터(12)는 컬럼 디코더(13), 로우 어드레스 디코더(14) 및 메모리 제어 유닛(2)에 접속된다.
어드레스 레지스터(12)는 메모리 셀 어레이(11)의 컬럼 어드레스 및 페이지 어드레스를 지시하는 3 바이트의 정보를 각 바이트로 메모리 제어 유닛(2)으로부터 수신하고 저장한다. 저장된 정보에서, 컬럼 어드레스 정보는 컬럼 디코더(13)로 출력되고, 페이지 어드레스 정보는 로우 어드레스 디코더(14)로 출력된다.
컬럼 어드레스 정보는 어드레스 레지스터(12)로부터 컬럼 디코더(13)로 입력된다. 입력된 컬럼 어드레스 정보와 제어 회로(제어기)(21)의 명령에 따라, 고전압 발생기(16)에 의해 발생된 기록 입력 전압, 소거 전압, 판독 출력 전압 또는 판독 출력 금지 전압은 각 로우 제어 입력 단자(Trcnt)에 인가된다.
페이지 어드레스 정보는 어드레스 레지스터(12)로부터 로우 어드레스 디코더(14)로 입력된다. 상기 정보와 제어 회로(21)의 명령에 따라, 고전압 발생기(16)에 의해 발생된 순방향 바이어스 전압 또는 역방향 바이어스 전압은 각 컬럼 제어 입력 단자(Tccnt1, Tccnt2)에 인가된다.
변압기(15)는 메모리 셀 어레이에 기록될 데이터를 데이터 레지스터(24)로부터 수신하고 상기 데이터의 각 비트를 지시하는 전압은 소정의 기록 입력 전압으로 변환된다. 이어서, 상기 기록 입력 전압은 제어 회로(21)의 명령에 따라 데이터 I/O 단자에 인가된다. 데이터가 메모리 셀 어레이(11)로부터 판독될 때, 변압기(15)는 각 메모리 셀의 내용을 지시하는 전압을 데이터 I/O 단자(Tdata)로부터 패치하고, 상기 전압을 증폭한 후에 데이터 레지스터(24)에 저장한다.
제어 회로(21)의 명령에 따라, 고전압 발생기(16)는 각 로우 제어 입력 단자(Trcnt)에 인가될 기록 입력 전압과, 각 데이터 I/O 단자(Tdata)에 인가될 기록 금지 전압과, 기판에 인가될 소거 전압과, 각 컬럼의 컬럼 제어 입력 단자((Tccnt1, Tccnt2)에 인가될 순방향 바이어스 전압 및 역방향 바이어스 전압을 발생시킨다. 발생된 전압은 메모리 셀 어레이(11), 컬럼 디코더(13) 및 로우 어드레스 디코더(14)에 공급된다.
도 1에 나타낸 메모리 제어 유닛(메모리 제어기)(2)은 제어 회로(21), I/O 제어 회로(22), 동작 논리 제어 회로(23), 커맨드 레지스터(24) 및 데이터 레지스터(25)를 포함한다. 메모리 제어 유닛(2)은 플래시 메모리(1)와 주기억장치 유닛(32) 사이에서 데이터를 전송한다.
제어 회로(21)는 커맨드 레지스터(24)에 저장된 커맨드 및 동작 논리 제어 회로(23)의 명령에 따라 이하에 설명하는 바와 같이, 컬럼 디코더(13), 로우 어드레스 디코더(14), 변압기(15) 및 고전압 발생기(16)를 제어한다.
I/O 제어 회로(22)는 플래시 메모리(1)의 데이터 버스, I/O 버스(4), 동작 논리 제어 회로(23), 커맨드 레지스터(24), 어드레스 레지스터(12) 및 상태 레지스터(28)에 접속된다.
I/O 제어 회로(22)는 동작 논리 제어 회로(23)의 명령에 따라 데이터 레지스터(25)와 I/O 버스로부터 데이터를 패치하여 들이고 데이터를 어드레스 레지스터(12), 커맨드 레지스터(24), 데이터 레지스터(25) 및 I/O 버스(4)에 출력한다.
동작 논리 제어 회로(23)는 이후에 설명할 CPU(31), I/O 제어 회로(22) 및 제어 회로(21)에 접속된다.
동작 논리 제어 회로(23)는 커맨드 래치 신호, 어드레스 래치 신호, 기록 입력 신호 및 판독 출력 신호를 CPU(31)로부터 수신하고, 이들 신호에 따라, 이후에 설명하는 바와 같이 제어 회로(21) 및 I/O 제어 회로(22)를 제어한다.
커맨드 레지스터(24)는 I/O 제어 회로(22)로부터 수신한 커맨드 정보를 저장하고 제어 회로(21)에 출력한다.
데이터 레지스터(25)는 528 바이트의 메모리 용량을 가지고 I/O 제어 회로(22)로부터 수신한 기록 입력 대상의 데이터를 저장하며 변압기(15)에 출력한다. 또한, 메모리 셀 어레이(11)로부터 판독 출력된 결과로서 변압기(15)로부터 출력된 데이터를 패치하고 I/O 제어 회로(22)에 출력한다.
컴퓨터(3)는 각각이 VME 버스로 구성된 시스템 버스(34)를 통하여 접속된 CPU(중앙 처리 장치)(31), 주기억장치 유닛(32) 및 IOC(I/O 제어 유닛)(33)를 포함한다. 컴퓨터(3)는 IOC(33)를 통하여 I/O 버스에 접속된다.
CPU(31)는 주기억장치 유닛(32)에 저장된 프로그램을 실행한다. CPU(31)는 I/O 버스(4)를 통하여 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)의 동작에 대응한 하기의 프로우차트에 나타낸 프로그램을 실행하기 위한 커맨드를 출력한다. 하기의 프로우차트에 나타낸 프로그램을 실행하기 위한 커맨드를 출력한다.
주기억장치 유닛(32)은 플래시 메모리에 저장될 파일 및 플래시 메모리(1)로부터 판독될 파일 뿐 아니라 CPU(31)의 처리 프로그램을 저장한다.
주기억장치 유닛(32)은 플래시 메모리(1)가 포맷될 때에 부트 영역에 기록될 마스터 부트 레코드를 저장하고, 파티션(partition) 레코드와 이후에 설명할 어드레스 변환 테이블을 저장한다.
IOC(33)는 CPU(31) 또는 컴퓨터(3)의 주기억장치 유닛(32)으로부터 I/O 버스(4)로의 데이터 출력과 반대 방향의 처리의 입력을 제어하는 I/O 제어기이다.
메모리 셀 어레이(11)의 메모리 영역의 논리적인 구조
메모리 셀 어레이(11)는 컴퓨터에서 사용된 오퍼레이팅 시스템(OS), 예컨대 MS-DOS(마이크로소프트사의 등록 상표명)에 따라 포맷되고, 특히 메모리 셀 어레이(11)의 물리적 구조의 블록이 OS에 의해 관리되는 파일의 논리 단위의 클러스터와 일치하는 방식으로 포맷된다.
각 클러스터에는 "1"부터 시작하는 숫자가 제공되고 이 숫자는 메모리 셀 어레이(11)의 헤드 어드레스로부터의 블록의 순서와 항상 일치하지는 않는다.
도 4에 나타낸 바와 같이, 메모리 셀 어레이(11)가 포맷되는 초기 상태에서, 메모리 셀 어레이(11)의 메모리 영역은 마스터 부트 메모리 영역(master boot memory region), 빈 영역(empty region), 파티션 부트 메모리 영역(partition boot memory region), FAT(file allocation table), 디렉토리 영역 및 파일 영역으로 분할된다.
이들 영역 중에서, 마스터 부트 메모리 영역, 빈 영역 및 파티션 부트 메모리 영역은 메모리 셀 어레이(11)의 헤드 블록에 할당되어 있다.
마스터 부트 메모리 영역은 헤드의 제1 페이지(제1 섹터)와, 시동 프로세스에 대한 정보와 이 메모리(이 메모리가 하나 이상의 가상 메모리로 분할될 경우의 각 가상 메모리) 상에 제공된 각 파티션의 정보를 기록하는 영역을 포함한다.
각 파티션에 대한 정보는 예컨대, 각 파티션이 시작될 것인지 아닌지의 정보를 포함하고, 다음의 정보를 더 포함한다.
(1) 각 파티션의 시작하는 페이지의 위치
(2) 각 파티션의 마지막 페이지의 위치
(3) 각 파티션에 포함된 전체 페이지
빈 영역은 마스터 부트 메모리 영역의 다음에 14 페이지를 갖는다. 빈 영역은 물리적인 단위인 블록의 헤드 및 마지막과, 메모리 영역이 복수개의 클러스터로 분할될 때에 OS에 의해 관리되는 논리 단위인 클러스터의 헤드 및 마지막을 일치시키기 위해 제공된다.
파티션 부트 메모리 영역은 빈 영역의 다음의 페이지를 갖는다. 파티션 부트 메모리 영역은 각 파티션의 구조에 대한 정보와 시동 프로세스에 대한 정보를 저장한다. 각 파티션의 구조에 대한 정보는 다음 내용을 포함한다.
(4) 각 파티션에 포함된 페이지의 메모리 용량
(5) 단일 클러스터를 구성하는 페이지의 수
(6) 각 파티션이 포함할 수 있는 디렉토리의 최대 수
(7) FAT에 의해 점유된 페이지의 수
(8) FAT의 수
클러스터는 파티션 부트 메모리 영역에서 정의된 특정 개수의 페이지로 구성된 메모리 단위이고 OS에 의해 관리되는 파일의 내용이 기록되어 있는 메모리의 최소 단위이다. 그러므로, 다른 파일 내용은 클러스터 내에 절대 포함되지 않는다.
상기 실시예에 따라, 블록 및 클러스터의 크기를 서로 일치시키도록 각 클러스터가 16 페이지를 갖는 것이 정의된다.
블록 2 내지 블록 1024는 임의의 데이터 및 파일 등을 저장하는 데이터 영역을 형성한다.
FAT 및 디렉토리는 임의의 데이터 영역(초기 조건에서는 블록 2)에 저장된다. FAT는 블록의 16 페이지 중 헤드의 3개 페이지에 저장되고 디렉토리는 나머지 13 페이지에 저장된다.
FAT는 파일의 할당을 지시하는 테이블이다. 디렉토리는 저장된 파일의 이름과 파일의 헤드가 저장되어 있는 많은 클러스터 등에 대한 정보를 포함한다.
메모리 셀(11)의 물리적인 단위인 블록의 크기 및 위치와 컴퓨터(3)의 오퍼레이팅 시스템(OS)에 의해 관리되는 클러스터의 크기 및 위치를 일치시키기 위해, 구체적으로, 예컨대 다음의 값들이 마스터 부트 메모리 영역 및 파티션 부트 영역에 저장된다.
(1) 각 파티션의 시작하는 페이지의 위치 = 1
(2) 각 파티션의 마지막 페이지의 위치 = 16384
(3) 각 파티션에 포함된 전체 페이지의 수 = 1
(4) 각 파티션에 포함된 페이지의 메모리 용량 = 512 바이트
(5) 하나의 클러스터를 구성하는 페이지의 수 = 16
(6) 각 파티션이 포함할 수 있는 디렉토리의 최대 수 = 256
(7) FAT에 의해 점유된 페이지의 수 = 3
(8) FAT의 수 = 1
도 5는 FAT, 디렉토리 및 클러스터간의 관계를 나타내는 도면이다.
동일 도면에서 나타낸 바와 같이, FAT 및 디렉토리가 저장되어 있는 클러스터의 수가 제어 회로(21)의 메모리부(21a)의 포인터에 의해 지시된다.
디렉토리는 메모리 셀 어레이(11)에 저장된 파일의 파일명을 지정하고 상기 파일의 헤드부가 저장된 클러스터를 포인터로 지정한다.
파일 내에 파일이 포함될 수 없는 경우에, FAT는 다음에 오는 부분을 저장하기 위해 클러스터를 지정한다. 파일의 최종 부분이 저장되어 있는 클러스터가 엔드 코드(EC)에 의해 지시된다.
어드레스 변환 테이블
어드레스 변환 테이블은 각 블록에 대해 할당된 클러스터의 개수를 지시하는 정보를 저장하는 테이블이다. 상기한 바와 같이, 어드레스 변환 테이블은 컴퓨터(3)의 주기억장치 유닛(32)에 저장되고 CPU(31)에 의해 액세스되며 갱신된다.
도 6은 어드레스 변환 테이블의 구조예를 나타낸다. 어드레스 변환 테이블은 복수의 레코드를 포함한다. "1"로 시작하는 클러스터 수는 각 레코드의 헤드에 저장되고 상기 수에 대응하는 블록 수는 저장된다.
숫자 "1" 은 항상 FAT가 클러스터 수로서 저장되는 블록에 할당된다. 클러스터의 숫자 "1"은 FAT가 새로 저장될 블록을 지시하도록 다음에 설명하는 프로세스에 의해 갱신된다.
플래시 메모리 및 메모리 제어 유닛의 기본 동작
다음에, 플래시 메모리(1) 및 메모리 제어 유닛(2)으로써 데이터를 판독 출력, 기록 입력 및 소거하는 것을 위한 기본적인 동작을 도 7 내지 도 9의 플로우차트를 참조하여 설명할 것이다.
판독 출력
다음의 3가지의 판독 출력 모드 형태가 가능하다. 도 7에 나타낸 제1 판독 출력 모드에서, 기록 입력 신호가 I/O 버스(4)를 통하여 I/O 제어 회로(22)에 입력되는 제1 판독 출력 모드를 지시하는 커맨드 "00H"로써 동작 논리 제어 회로(23)에 입력되면, 커맨드 래치 신호가 활성 레벨로 온되고 시작하게 된다(단계 101, 끝단에 "H"의 수치값은 16진수를 나타냄).
기록 입력 신호가 입력되면, 동작 논리 제어 회로(23)는 I/O 제어 회로(22)가 커맨드를 입력하도록 명령하고(단계 S102), 이 명령을 수신하는 I/O 제어 회로(22)는 커맨드 레지스터(24)에 커맨드 "00H"를 저장한다(단계 S103).
제어 회로(21)가 커맨드 레지스터(24)의 내용을 판독하면, 제어 회로(21)는 제1 판독 출력 모드의 시작을 검출한다.
다음에, 커맨드 래치 신호는 해제되고, 대신에 어드레스 래치 신호가 활성 레벨로 생성된다. 컬럼 어드레스를 지시하는 신호가 I/O 버스(4)에 입력된다. 기록 입력 신호가 이 조건에서 다시 입력되면(단계 S105), 동작 논리 제어 회로(23)는 I/O 제어 회로(22)가 어드레스를 입력하도록 명령한다(단계 S106). 이러한 명령을 수신하는 I/O 제어 회로(22)는 어드레스 레지스터(12)에 컬럼 어드레스를 저장한다(단계 S107).
다음에, 페이지 어드레스의 하위 8 비트를 지정하는 하위 페이지 어드레스 신호가, 어드레스 래치 신호가 활성 레벨로 유지되는 조건에서 I/O 버스(4)에 입력된다(단계 S108). 기록 입력 신호가 이 조건에서 다시 입력되면, 동작 논리 제어 회로(23)는 I/O 제어 회로(22)가 어드레스를 입력하도록 명령한다. 이러한 명령을 수신하는 I/O 제어 회로(22)는 어드레스 레지스터(12)에 하위 페이지 어드레스를 저장한다(단계 S109).
다음에, 단계 S108에서 S109와 동일한 프로세스로써, 페이지 어드레스의 상위 5 비트를 지정하는 상위 페이지 어드레스는 어드레스 레지스터(12)에 저장된다(단계 S110).
컬럼 어드레스 및 페이지 어드레스 정보 항목이 상기 세 번에 걸쳐서 입력되는 레지스터는 컬럼 어드레스를 컬럼 디코더(13)에 입력하고, 이어서 블록 어드레스 및 페이지 어드레스를 로우 어드레스 디코더(14)에 입력한다(단계 S111). 결과적으로, 컬럼 디코더(13) 및 로우 어드레스 디코더(14)는 판독 출력 대상의 헤드의 메모리 영역을 지정한다.
판독 출력 대상이 지정되면, 어드레스 래치 신호는 해제되고 판독 출력 신호가 입력된다(단계 S112). 판독 출력 신호가 입력된 동작 논리 제어 회로(23)는 제어 회로(21)가 데이터 판독 출력 제어를 시작하도록 명령한다(단계 S113).
이러한 명령을 수신하는 제어 회로는 컬럼 디코더(13), 로우 어드레스 디코더(14) 및 고전압 발생기(16)가 데이터를 판독하는 동작을 시작하도록 명령한다(단계 114).
이러한 명령을 수신하는 컬럼 디코더(13)는 충분한 순방향 바이어스를 컬럼 제어 입력 단자(Tccnt1, Tccnt2)에 인가한다. 이러한 조건에서, 로우 어드레스 디코더(14)는 소정의 판독 출력 전압을 판독 출력 대상의 메모리 영역을 형성하는 각 메모리 셀의 게이트에 접속된 컬럼 제어 입력 단자(Tccnt)에 인가하고, 소정의 판독 출력 금지 전압을 다른 로(row) 제어 입력 단자(Tccnt)에 인가한다(단계 S115).
연속하여, 판독 출력 대상의 메모리 영역에 저장된 1 바이트의 데이터는 각 데이터 I/O 단자(Tdata)에 출력된다. 상기 데이터는 그 전압치가 변압기(15)에 의해 변환된 후에 데이터 레지스터(25) 및 I/O 제어 회로(22)를 통하여 I/O 버스(4)에 출력된다(단계 S116).
판독 출력 신호가 동작 논리 제어 회로에 입력되는 매번, 다음의 메모리 영역의 저장 내용은 단계 S112 내지 S116의 동일한 프로세트를 통하여 각 바이트씩 I/O 버스에 연속적으로 출력된다(단계 117).
상기한 단계 S101에서, 제2 판독 출력 모드를 지시하는 커맨드 "01H"가 I/O 버스(4)에 의해 I/O 제어 회로(22)에 입력될 때에 제2 판독 출력 모드가 기록 입력 신호에 의해 시작된다.
제2 판독 출력 동작은, 판독 출력된 헤드 위치가 I/O 버스(4)를 통해 입력된 컬럼 어드레스 또는 페이지 어드레스에 의해 지시된 위치의 이전의 어드레스 256인 제1 판독 출력 모드와는 다르다. 다른 동작은 제1 판독 출력 모드와 동일하다.
제3 판독 출력 모드는, 상기한 단계 S101에서 제2 판독 출력 모드를 지시하는 커맨드 "50H"가 I/O 버스(4)에 의해 I/O 제어 회로(22)에 입력될 때에 기록 입력 신호에 의해 시작된다.
제2 판독 출력 모드 동작에서, 판독 출력된 헤드 위치는 I/O 버스(4)로부터 입력된 컬럼 어드레스 및 페이지 어드레스의 하위 4 비트에 의해 지시된 위치의 이전 어드레스 512이다. 또한, 각 페이지의 최종 컬럼의 메모리 셀의 데이터가 판독된 후, 판독 출력 신호가 더 입력된다면, 다음 페이지의 513번째 메모리 셀로부터의 판독 출력이 실행된다. 각 페이지의 513번째 메모리 셀 이후의 메모리 셀은 판독 출력의 대상이다. 다른 동작은 제1 판독 출력 모드와 동일하다.
기록 입력
도 8에 나타낸 데이터 기록 입력을 위한 동작이 이후에 설명한 바와 같이 실행되고, 기록 입력 대상 페이지의 어드레스가 지정될 때, 페이지의 데이터가 데이터 레지스터(25)에 기록되고, 이어서 데이터 레지스터의 데이터는 지정된 페이지에 연속적으로 기록된다.
커맨드 래치 신호가 활성 레벨일 때에 데이터 레지스터로의 데이터 출력을 지시하는 커맨드 "80H"가 I/O 제어 회로(22)에 입력되는 조건에서 기록 입력 신호가 동작 논리 제어 회로(23)에 입력될 때, 기록 입력 프로세스가 시작된다(단계 S201).
프로세스가 시작되는 후에, 컬럼 디코더(13) 및 로우 어드레스 디코더(14)는 데이터 입력 프로세스에서 단계 S102 내지 S11과 동일한 프로세스로 기록 입력 대상 페이지의 헤드 위치를 지시하는 컬럼 어드레스 및 페이지 어드레스를 지정한다(단계 S202).
단계 S202의 프로세스가 끝난 후에 어드레스 래치 신호가 해제되고, 이어서 기록 입력 신호가 동작 논리 제어 회로(23)에 입력되면, 동작 논리 제어 회로(23)는 I/O 제어 회로(22)가 데이터를 입력하도록 명령한다(단계 S203).
이러한 명령이 입력된 I/O 제어 회로(22)는 데이터 레지스터(25)의 어드레스에서 I/O 버스(4)로 출력된 데이터를 저장한다(단계 S204).
제어 회로(21), I/O 제어 회로(22) 및 동작 논리 제어 회로(23)는 단계 S203 내지 S204와 동일한 프로세스를 실행하고 데이터 레지스터(25)의 다음 어드레스에서 기록 입력 데이터를 저장한다(단계 S205). 기록 입력될 데이터의 총량은 단일 페이지 내, 즉 528 바이트보다 적어야 한다.
모든 기록 입력 대상 데이터가 데이터 레지스터(25)에 저장되면, 커맨드 래치 신호는 활성 레벨로 되고 데이터 레지스터(25)의 저장 내용을 기록 입력 대상 페이지에 기록하도록 명령하는 커맨드 "10H"는 I/O 버스(4)에 입력된다(단계 S206).
이러한 조건 하에서 기록 입력 신호가 동작 논리 제어 회로(23)에 입력되면, 동작 논리 제어 회로(23)는 제어 회로(21)가 데이터 기록 입력 제어를 시작하도록 명령을 한다(단계 S207).
이러한 명령을 수신하는 제어 회로(21)는 컬럼 디코더(13), 로우 어드레스 디코더(14), 변압기(15), 고전압 발생기(16) 및 데이터 레지스터(25)가 데이터 기록 입력 동작을 시작하도록 명령한다(단계 S208).
이러한 명령을 수신하는 고전압 발생기(16)는 기록 입력 전압을 발생시키고 이 전압을 로우 어드레스 디코더(14)에 공급하여, 기록 입력 금지 전압을 발생시키고 이 전압을 변압기(15)에 공급한다(단계 S209).
변압기(15)는 로우 어드레스 디코더(14)의 헤드 어드레스에 저장된 1 바이트의 데이터를 판독한다. 고전압 발생기(16)로부터 입력된 기록 입력 금지 전압이 논리값이 "1"인 비트에 대응하는 데이터 I/O 단자(Tdata)에 인가되고, 한편, 접지 전압은 논리값이 "0"인 비트에 대응하는 데이터 I/O 단자(Tdata)에 인가된다(단계 S210).
다음에, 컬럼 디코더(13)는 충분한 순방향 바이어스를 단계 S202에서 지정된 페이지를 위한 메모리 영역인 컬럼 제어 입력 단자(Tccnt1)에 인가하고 충분한 역방향 바이어스를 컬럼 제어 입력 단자(Tccnt2)에 인가한다. 또한, 로우 어드레스 디코더(14)는 고전압 발생기(16)로부터 입력된 기록 입력 전압을 단계 S202에서 지정된 페이지인 로 제어 입력 단자(Trcnt)에 인가한다(단계 S211).
여기에서, 접지 전압이 적합한 메모리 셀의 전류 경로에 인가되면, 메모리 셀의 메모리값은 "1"에서 "0"으로 변화된다.
단계 S211의 프로세스가 끝나면, 데이터 레지스터(25)에 저장된 다음 데이터는 단계 S209 내지 S211과 동일한 프로세스를 통하여 단계 S202에 의해 지정된 다음의 메모리 영역에 연속적으로 기록된다(단계 S212).
데이터는 상기 프로세스에 의해 페이지 단위로 메모리 셀 어레이(11)에 기록된다.
소거
도 9에 나타낸 블록의 소거를 위한 동작은, 커맨드 래치 신호가 활성 레벨로 온되고 소거 대상 블록의 어드레스의 로드를 지시하는 커맨드 "60H"가 I/O 제어 회로(22)에 입력될 때에 기록 입력 신호를 동작 논리 제어 회로(23)에 입력함으로써 시작된다(단계 S301).
프로세스가 시작된 후에, 어드레스 레지스터(12)는 상위 및 하위 페이지의 어드레스를 데이터 판독 입력(read-in) 프로세스에서 단계 S102 내지 S111과 동일한 프로세스에 의해 입력한다.입력된 페이지 어드레스의 상위 9 비트는 인출되고 소거 대상 블록의 위치를 지시하는 블록 어드레스가 지정된다(단계 S302).
소거 대상 블록의 어드레스가 지정되면, 커맨드 래치 신호가 활성 레벨로 되고 소거 대상 블록의 저장 내용을 소거하도록 명령하는 커맨드 "D0H"가 I/O 버스(4)에 입력된다(단계 S303).
기록 입력 신호가 동작 로직 제어 회로(23)에 입력되면, 동작 로직 제어 회로(23)는 제어 회로(21)가 지정된 블록의 데이터 소거를 위한 제어를 시작하도록 명령한다(단계 S304). 이러한 명령을 수신하는 제어 회로(21)는 컬럼 디코더(13), 로우 어드레스 디코더(14) 및 고전압 발생기(16)가 데이터 소거를 위한 프로세스를 시작하도록 명령한다(단계 S305).
이러한 명령을 수신하는 컬럼 디코더(13)는 충분한 역방향 바이어스를 메모리 셀 어레이(11)의 모든 로 제어 입력 단자(Tccnt1, Tccnt2)에 인가한다. 로우 어드레스 디코더(14)는 접지 전압을 단계 S302에 의해 지정된 블록에 속하는 모든 페이지의 로 제어 입력 단자(Trcnt)에 인가한다(단계 S306).
이러한 조건에서, 고전압 발생기(16)는 소거 전압을 발생시키고 이 소거 전압은 메모리 셀 어레이(11)의 기판에 인가된다(단계 S307). 결과적으로, 적합한 블록에 속하는 모든 메모리 셀의 메모리값은 "1"로 전환된다. 상기한 프로세스에 의해, 메모리 셀 어레이(11)에 저장된 데이터는 1개 블록 단위로 소거된다.
플래시 메모리(1)의 포맷 프로세스
다음에, 도 4에 나타낸 바와 같은 플래시 메모리(1)의 포맷 프로세스를 도 10의 프로우차트를 참조하여 설명한다. 이러한 프로세스는 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 동작시킴으로써 포맷을 시작하도록 하는 사용자의 명령에 의해 시작된다.
플래시 메모리(1) 및 메모리 제어 유닛(2)은 상기한 소거 동작, 즉 각 블록을 소거하기 위해 단계 S301 내지 S306의 동작을 실행하여, 각 블록의 저장 내용을 소거한다(단계 S401). 단계 S401의 프로세스에서, I/O 버스(4)에 출력된 커맨드 "60H" 및 "D0H"는 시스템 버스(34) 및 IOC(33)를 통하여 CPU(31)로부터 전송된다.
다음에, CPU(31)는, 플래시 메모리(1)의 블록 및 섹터의 크기 및 위치에 있어서 서로 일치시키기 위해 상기한 내용을 갖는 마스터 부트 레코드, 빈 공간 크기 및 파티션 부트 레코드를 발생하도록 포맷 프로그램을 실행한다.
플래시 메모리(1) 및 메모리 제어 유닛(2)은 상기한 동작, 즉 상기한 내용을 갖는 마스터 부트 레코드를 시작부터 각 페이지씩 기록하기 위해 단계 S201 내지 S211의 동작을 실행한다(단계 S402). 단계 S402의 프로세스에서, 커맨드 "80H" 및 "10H" 및 기록 입력 대상 데이터는 시스템 버스(34) 및 IOC(33)를 통하여 CPU(31)로부터 전송된다.
다음에, 메모리 제어 유닛(2)은 14 페이지를 비우고 파티션 부트 레코드를 동일한 동작으로 블록 1의 페이지 16에 기록한다(단계 S403).
결과적으로, 마스터 부트 영역, 빈 영역 및 파티션 부트 영역이 블록 1에 형성된다.
최종적으로, CPU(31)는 어드레스 변환 테이블을 생성시키고 주기억장치 유닛(32)에 저장한다(단계 S404).
단계 S404에서 생성된 어드레스 변환 테이블에서, 각 클러스터 및 블록값은 메모리 셀 어레이(11)의 헤드 어드레스로부터의 각 블록 수가 각 클러스터와 일치하도록 설정된다. 즉, 블록 2는 클러스터 2와 일치하도록 설정되고, 블록 3은 클러스터 3과 일치하도록 설정된다. 다음의 조작에서, 블록 수 또는 클러스터 수의 일치화가 실행된다.
여기에서, 도 10에 나타낸 플로우차트의 프로세스가 끝난다. 결과적으로, 플래시 메모리(1)는 도 4에 나타낸 바와 같이 포맷된다.
파워 온시의 프로세스
컴퓨터(3)의 파워가 턴 온되면, CPU(31)는 내부 ROM(도시하지 않음)에 저장된 프로그램에 따라 메모리 제어 유닛(2)이 제1 판독 출력 모드에 의해 플래시 메모리(1)의 마스터 부트 영역 및 파티션 부트 영역에 저장된 정보를 판독하도록 명령한다.
연속하여서, 제1 블록에 저장된 마스터 부트 레코드는 데이터 I/O 단자(Tdata)로부터 판독 출력된다. 판독 출력된 마스터 부트 레코드는 CPU(31)에 공급된다.
CPU(31)는 메모리 제어 유닛(2)이 제1 판독 출력 모드에서 판독 출력된 마스터 부트 레코드를 바탕으로 한 동일한 동작에 의해 파티션 부트 레코드를 판독하도록 명령한다. 판독 출력된 파티션 부트 레코드는 CPU(31)에 공급된다. CPU(31)는 판독 출력된 부트 정보를 주기억장치 유닛(32)에 저장한다.
CPU(31)는 판독 출력된 데이터에 따라 클러스터 크기 및 데이터 영역의 헤드를 결정한다. 파일 액세스 동작은 이들 부트 정보의 정의를 이어서 실행된다. 그러므로, 데이터 판독 출력 및 기록 입력시의 파일의 최소 단위 및 위치는 플래시 메모리(1)의 블록의 크기 및 위치와 동일하게 된다.
파일 소거 프로세스
다음에, 플래시 메모리(1)에 기록된 파일을 소거하는 프로세스를 도 11에 나타낸 프로우차트를 참조하여 설명한다.
파일 소거하는 프로세스는 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 동작시키거나, 또는 CPU(31)에 의해 실행되는 응용 프로그램의 필요성에 의해 시작된다.
파일 소거 프로세스가 시작되면, CPU(31)는 소거 대상 파일을 지정한다(단계 S501). 다음에, CPU(31)는 FAT 및 디렉토리를 갖는 페이지(즉, 클러스터 수 "1"이 어드레스 변환 테이블에 할당되는 블록의 헤드 이후의 페이지)를 지정한다. CPU(31)는 메모리 제어 유닛(2)이 제1 판독 출력 모드에서 시스템 버스(34), IOC(33) 및 I/O 버스(4)를 통하여 적합한 페이지를 판독 출력하도록 명령한다. CPU(31)는 메모리 제어 유닛(2)에 의해 판독 출력된 FAT 및 디렉토리의 저장 내용을 입력하고 주기억장치 유닛(32)에 저장한다(단계 S502).
다음에, CPU(31)는 주기억장치 유닛(32)에 저장된 FAT 및 디렉토리를 검색하고 단계 S501에서 지정된 파일이 저장되는 클러스터를 지정한다. 클러스터 수는 주기억장치 유닛(32)에 일시적으로 저장된다(단계 S503).
다음에, CPU(31)는 주기억장치 유닛(32)에 저장된 FAT의 내용을 분석하고 빈 클러스터를 선택한다(단계 504). CPU(31)는 단계 504에서 선택된 클러스터 수를 클러스터 수 "1"이 현재 할당되어 있는 블록에 할당하고, 한편 단계 504에서 선택된 클러스터 수를 FAT가 현재 저장되어 있는 블록에 할당한다. 이러한 할당의 변화에 따라, 어드레스 변환 테이블의 내용이 기록된다(단계 S505).
다음에, CPU(31)는 단계 S501에서 지정된 소거 대상 파일을 지시하는 정보를 주기억장치 유닛(32)에 저장된 FAT 및 디렉토리의 내용으로부터 소거한다(단계 S506). 결과적으로, FAT 및 디렉토리가 갱신된다. 다음에, CPU(31)는 메모리 제어 유닛(2)이 제1 빈 블록에 갱신된 FAT 및 디렉토리를 기록하도록 명령한다. 결과적으로, 메모리 제어 유닛(2)은 갱신된 FAT의 헤드의 단일 페이지를 단계 201 내지 S212의 동작에 따라 단계 S504에서 선택된 빈 블록의 헤드의 페이지에 기록한다(단계 S507).
CPU(31)는 갱신된 FAT 및 디렉토리가 단계 S504에서 선택된 빈 블록에 모두 기록될 때까지 메모리 제어 유닛(2)의 기록 입력 동작이 끝날 때마다 기록하도록 명령한다. 메모리 제어 유닛(2)은 명령이 수신되는 매번 단계 S201 내지 S212의 동작에 따라 각각의 다음 페이지에 연속적으로 FAT 및 디렉토리를 기록한다(단계 S508).
다음에, CPU(31)는 어드레스 변환 테이블을 참조하여 단계 S503에서 저장된 클러스터의 수에 대응하는 블록을 지정하고 메모리 제어 유닛(2)이 블록의 저장된 내용을 소거하도록 명령한다. 결과적으로, 상기 블록에 저장된 데이터 또는 소거 대상 파일은 단계 S301 내지 S306의 동작에 의해 소거된다(단계 S509).
다음에, CPU(31)는 메모리 제어 유닛(2)이 갱신 이전에 FAT 및 디렉토리가 존재하는 블록의 저장된 내용을 소거하도록 명령한다(단계 510). 연속하여, 갱신 이전의 디렉토리 및 FAT가 저장되는 블록의 저장 내용이 단계 S301 내지 S306의 동작에 따라 소거된다.
단계 S501 내지 S510의 상기한 프로세스에 의해, 소거 대상 파일을 지시하는 정보는 FAT 및 디렉토리로부터 소거되고 상기 파일의 내용도 소거된다. FAT 및 디렉토리의 내용이 단계 S501 내지 S510의 프로세스에 앞서서 실행된 프로세스에 의해 주기억장치 유닛(32)에서 판독되었다면, 단계 S502의 프로세스는 생략될 수 있다.
파일 기록 입력 프로세스
파일을 플래시 메모리로에 기록하기 위한 프로세스를 도 12에 나타낸 프로우차트를 참조하여 설명한다. 이 프로우차트의 프로세스는 사용자가 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 조작함으로써, 또는 사용자 프로그램의 필요성에 의해 실행된다.
프로세스가 시작된 후에, CPU(31)는 기록될 파일의 파일명, 헤드 어드레스 및 데이터량을 지정한다(단계 S601). CPU(31)가 상기한 포맷 정보에 따라 동작되기 때문에, 데이터량은 정수배의 블록이다.
다음에, CPU(31)는 어드레스 변환 테이블을 참조하여 FAT 및 디렉토리가 존재하는 블록을 지정하고, 메모리 제어 유닛(2)이 제1 판독 출력 모드에서 상기 블록을 판독 출력하도록 명령하여서 FAT 및 디렉토리의 저장 내용을 입력한다(단계 S602). 입력된 FAT를 참조하여, 플래시 메모리(1) 내의 빈 클러스터가 검색된다(단계 S603).
다음에, 단계 S603에서 검색된 빈 클러스터의 수가 단계 S601에서 지정된 데이터량의 파일을 저장하기에 충분한지의 여부가 결정되고 갱신 이후의 디렉토리 및 FAT는 이하에서 설명한다(단계 S604). 빈 클러스터의 수가 단계 S604에서 불충분하다고 결정되면, 프로세스는 이하에 설명된 단계 S610의 프로세스로 진행한다.
빈 클러스터의 수가 단계 S604에서 충분하다고 결정되면, 단계 S601에서 지정된 데이터량의 파일을 저장하기 위해 필요한 블록은 단계 S603에서 검색된 빈 클러스터의 헤드로부터의 순서로 지정된다. 각 지정된 클러스터에 의해 지시된 각 블록의 수는 어드레스 변환 테이블을 검색함으로써 지정되고 지정된 블록 수는 주기억장치 유닛(32)에 일시적으로 저장된다(단계 S605).
다음에, CPU(31)는 메모리 제어 유닛(2)이 단계 S605에서 지정된 블록에 파일을 기록하기 위해 기록 입력 동작을 실행하도록 명령한다. 결과적으로, 메모리 제어 유닛(2)은 기록 입력 대상 파일의 헤드의 단일 페이지를 단계 S603에서 검색된 빈 블록의 헤드의 페이지에 기록한다(단계 S606).
CPU(31)는 기록 입력 대상 파일의 내용이 단계 S603에서 검색된 빈 클러스터에 기록될 때까지 메모리 제어 유닛(2)의 기록 입력 동작이 끝날 때마다 기록 입력 동작을 명령한다. 메모리 제어 유닛(2)은 명령을 수신할 때마다 단계 S201 내지 S212의 동작에 따라 다음 페이지에 파일의 내용을 연속적으로 기록한다(단계 607). CPU(31)에 의해 생성될 파일의 크기는 블록의 정수배 크기이다. 그러므로, 기록 입력 대상 파일은 동등하게 분할되고 복수개의 블록에 저장된다.
파일 기록 입력 동작이 끝나면, CPU(31)는 소거 프로세스를 위한 단계 S504 내지 S508의 동작에 따라 FAT 및 디렉토리를 갱신한다(단계 608). 단계 506의 프로세스에서, 소거 대상 파일을 지시하는 정보를 주기억장치 유닛(32)에 저장된 FAT 및 디렉토리로부터 소거하는 대신에, 기록된 파일을 지시하는 정보가 부가된다. FAT 및 디렉토리의 갱신이 끝나면, 이 플로우차트의 프로세스가 끝난다.
한편, 빈 클러스터의 수가 단계 S604에서 파일의 기록 입력을 위해 불충분하다고 결정되면, CPU(31)는 파일의 기록 입력이 불가능하다고 인식하여 이 플로우차트의 프로세스를 종료한다(단계 S610).
파일 판독 출력 프로세스
파일을 플래시 메모리(1)로부터 판독 출력하기 위해, 종래에 파일을 플래시 메모리(1)에서 판독하는데 사용된 프로세스와 동일한 프로세스가 제공된다. 즉, CPU(31)는 판독 출력 대상 파일의 파일명을 지정하고, 제1 판독 출력 모드에서 FAT 정보 및 디렉토리 정보를 판독 출력하며, 적합한 파일명을 갖는 파일이 판독 출력 정보에 따라 저장되는 페이지를 지정한다. CPU(31)는 제1 판독 출력 모드에서 판독 출력하도록 명령한다. 결과적으로, 적합한 파일은 연속적으로 판독 출력되고 CPU(31)에 공급된다.
이 실시예에 따른 메모리 제어 시스템에서, 상기한 바와 같이, 플래시 메모리(1)의 블록의 크기 및 위치는 OS로 관리되는 파일의 최소 단위인 클러스터의 크기 및 위치와 일치된다.
그러므로, 복수개의 파일이 각 블록에 저장되지 않는다. 그러므로, 플래시 메모리(1)에 저장된 파일이 기록 입력될 때, 다른 클러스터의 동일 블록 내의 소거 대상 데이터 외의 데이터를 저장하거나 저장된 데이터 등을 저장하기 위해 블록을 소거할 필요가 없다. 일반적으로, 플래시 메모리(1)의 데이터 기록 입력 속도는 데이터 판독 출력 속도보다 빠르고, 데이터 소거 속도는 데이터 기록 입력 속도보다 느리다. 따라서, 이러한 구조로, 기존에 필요한 기록 입력 프로세스 및 소거 프로세스는 실행될 필요가 없어서, 프로세스 속도를 가속할 수 있다.
일반적인 오퍼레이팅 시스템에서, 매체가 초기화 될 때, 데이터는 물리적으로 소거하여 소거되지 않고 존재하는 데이터 부분과 특정 코드를 대체함으로써 소거된다. 그러나, 플래시 메모리에서, 데이터가 기록될 때에 소거된 데이터가 남아 있다고 하더라도, 데이터의 저장 및 적합한 블록의 물리적 소거가 필요하여 기록 입력 동작을 감속시킨다. 이 실시예에 따라서, 데이터 영역은 포맷 위에서 물리적으로 소거된다. 그러므로, 소거 프로세스는 기록 입력시에 필요하지 않아서, 기록 입력 프로세스는 가속될 수 있다.
또한, 일반적인 동작 시스템에서 파일이 소거될 때, 그 파일을 실제로 형성하는 전체 데이터는 소거되지 않으나, 헤드 1개 캐릭터를 "CE"같은 특정 코드로 대체함으로써, 그 파일이 소거된 파일로서 조작된다. 플래시 메모리에서, 이러한 소거된 데이터가 남아있을 때에도, 데이터의 저장 및 적합한 블록의 물리적 소거가 필요하여, 기록 입력 동작을 감속시킨다. 이 실시예에 따름으로써, 데이터 영역은 포맷시에 물리적으로 소거되고, 기록 입력 위의 소거 프로세스는 불필요하여, 기록 입력 프로세스가 가속될 수 있다.
반면에, 이 실시예에 따른 메모리 제어 시스템의 플래시 메모리(1)의 구조는 상기한 구조에 한정되지 않는다. 예컨대, 플래시 메모리(1)의 전체 메모리 용량은 8 메가바이트가 될 필요가 없고, 각 메모리 셀의 메모리 용량은 1 바이트가 될 필요가 없으며, 페이지의 메모리 용량은 528 바이트가 될 필요가 없다. 또한, 각 블록의 페이지의 수는 16개일 필요가 없다.
플래시 메모리는 NOR형이 될 수 있다. 플래시 메모리(1)에 의해 단번에 입력 또는 출력된 데이터량은 1 바이트일 필요가 없는, 즉 모두 동시에 2 바이트 이상을 입력 또는 출력할 수 있다.
상기한 실시예에 따라, 파워 온시에 플래시 메모리(1)의 포맷은 부트 영역을 액세스함으로써 결정된다. 그러나, 플래시 메모리(1)가 액세스될 때에 일시적으로 부트 영역에 액세스하게 하는 것이 가능하고, 제어 회로(21) 또는 CPU(31)에 의해 인식된 포맷과 일치시키는 것을 결정하며 데이터에 액세스한다.
비록 도 4에 나타낸 포맷에서이지만, FAT 및 디렉토리는 동일한 클러스터에 할당되고, FAT 및 디렉토리를 분리하여 할당할 수 있다. 이러한 경우에, FAT 및 디렉토리를 저장하는 클러스터를 "1", "2" 또는 기타 특정 개수의 클러스터에 대응시킴으로써, FAT 및 디렉토리의 위치가 결정된다.
비록 도 4에 나타낸 포맷에서이지만, 단 하나의 FAT가 할당되고, 일반 디스크 포맷을 이어서 FAT의 제1 카피(FAT1) 및 제2 카피(FAT2)를 할당할 수 있다.
비록 도 4에 나타낸 포맷에서이지만, 부트 정보 및 FAT와 같은 다른 정보가 분리 블록에 기록되고, 이들 정보 항목을 동일 클러스터(블록)에 기록할 수 있다. 이러한 포맷 구조가 제공될 때, 부트 정보 등은 FAT의 갱신과 함께 다른 빈 블록에 카피된다. 그러므로, 제어 회로(21) 및 CPU(31)는 부트 영역의 위치를 저장한다.
각 클러스터가 예컨대, 8 페이지(4 KB)를 가지는 경우에, 마스터 부트 레코드를 섹터의 페이지 1에 기록하고, 페이지 2 내지 페이지 4를 빈 영역으로 유지하며, 파티션 부트 레코드를 페이지 5에 기록하고, FAT1 및 FAT2를 페이지 7 내지 페이지 8에 기록하며, 그 디렉토리를 다른 클러스터에 기록할 수 있다. 이러한 구성은 FAT 및 디렉토리 크기가 작을 때, 예컨대 전체 메모리 용량이 약 1 MB일 때에 효과적으로 유용하다.
각 클러스터가 8 페이지를 갖는 경우에, 마스터 부트 레코드를 섹터의 페이지 1에 기록하고, 페이지 2 내지 페이지 3을 빈 영역으로 유지하며, 파티션 레코드를 페이지 4에 기록하고, FAT1 및 FAT2를 페이지 5 내지 페이지 8에 기록하며, 그 디렉토리를 다른 클러스터에 기록할 수 있다.
각 클러스터가 16 페이지(8 KB)를 갖는 경우에, 마스터 부트 레코드를 섹터의 페이지 1에 기록하고, 페이지 2 내지 페이지 9를 빈 영역으로 유지하며, 파티션 레코드를 페이지 10에 기록하고, FAT1 및 FAT2를 페이지 11 내지 페이지 16에 기록하며, 그 디렉토리를 다른 클러스터에 기록할 수 있다. 유사하게, 마스터 부트 레코드를 섹터의 페이지 1에 기록하고, 페이지 2 및 페이지 3을 빈 영역으로 유지하며, 파티션 부트 레코드를 페이지 4에 기록하고, FAT1 및 FAT2를 페이지 5 내지 페이지 16에 기록하며, 그 디렉토리를 다른 클러스터에 기록할 수 있다. 이러한 구성은 FAT 및 디렉토리 크기가 비교적 클 때, 예컨대 메모리 용량이 8 MB, 16 MB 또는 그에 상응할 때에 효과적으로 유용하다.
이러한 포맷 구성이 채용된다 하더라도, 블록 및 클러스터의 크기가 동일한 크기 및 위치로 설정되기 때문에, 불필요한 소거 프로세스는 발생하지 않으므로, 프로세스는 신속히 실행된다.
플래시 메모리(1)는 메모리 제어 유닛(2)에 고정될 필요는 없으나, 메모리 제어 유닛(2)에 제거가 가능하도록 삽입된다.
다음에, 제2 실시예를 설명한다. 비록 제1 실시예를 따르지만, 메모리 제어 유닛(2)은 플래시 메모리(1)의 포맷, 파일의 소거, 파일의 기록 및 CPU(31)로부터의 커맨드에 대응하는 그와 같은 것을 실행하고, 제2 실시예에서, CPU(31) 자체는 메모리 제어 유닛(2)의 동작을 실행할 수 있다.
이러한 구조에서, 예컨대 도 13에 도시한 바와 같이, 어드레스 레지스터(12), 컬럼 디코더(13), 로우 어드레스 디코더(14), 변압기(15) 및 플래시 메모리(1)의 고전압 발생기(15)는 IOC(33)에 접속된다.
이러한 구성이 사용되면, CPU(31) 자체는 메모리 제어 유닛(2)에 의해 실행된 동작을 실행한다. 예컨대, 플래시 메모리(1)가 포맷될 때, CPU(31)는 블록 어드레스를 갱신하고, 동시에 로우 어드레스 디코더(14), 변압기(15) 및 고전압 발생기(16)가 IOC(33)를 통하여 데이터를 소거하는 프로세스를 시작하도록 명령한다(도 10, 단계 S401). 또한, CPU는 기록 입력 대상 마스터 부트 레코드 및 파티션 부트 레코드를 출력하고, 컬럼 디코더(13), 로우 어드레스 디코더(14), 변압기(15) 및 고전압 발생기(16)가 이들 데이터를 기록하기 위한 프로세스를 시작하도록 명령한다(단계 S402, 403). 이어서, 주기억장치 유닛(32)상의 어드레스 변환 테이블이 생성된다(단계 S404).
CPU(31)는 파워 온시에 플래시 메모리(1)의 헤드 블록에 액세스하여서, 부트 정보를 판독 출력하고, 클러스터 구조(크기 및 위치)를 결정하며, 이에 따라 플래시 메모리(1)로의 다음 액세스를 제어한다.
예컨대, 파일이 소거되는 경우에, CPU(31) 자체는 포인터 값에 따라 FAT 및 디렉토리를 판독 출력하고(도 11, 단계 S501, S502), 소거될 파일이 저장되는 클러스터를 결정한다(단계 S503). FAT 및 디렉토리는 갱신되고(단계 S504 내지 S508), 그 클러스터에 대응하는 블록이 소거된다(단계 S509). 최종적으로, CPU(31)는 갱신 이전의 FAT 등이 저장되는 블록을 소거하고(단계 S510) 프로세스를 결정한다.
예컨대, 새로운 데이터가 기록될 때, CPU(31)는 FAT에 따라 빈 클러스터를 결정하고, 메모리 셀 어레이(11)에 연속적으로 데이터를 저장하도록 컬럼 디코더(13), 로우 어드레스 디코더(14), 변압기(15) 및 고전압 발생기(16)를 제어한다. 파일 기록 입력이 완성되면, FAT 및 디렉토리는 갱신된다.
CPU(31)에 의해 생성된 파일의 크기는 정수배의 블록 크기이다. 그러므로, 파일은 1개 이상의 블록에 확실히 저장된다. FAT 및 디렉토리의 크기는 단일 블록의 크기와 동일하게 설정도기 때문에, FAT 및 디렉토리는 블록에 확실히 저장된다. 그러므로, 파일 또는 디렉토리의 일부분인 작은 양의 데이터가 단일 기록 입력 프로세스에 의해 블록의 일부에 저장되는 것을 방지하는 것이 가능함으로써, 파일은 상기한 소거시에 1개 블록의 단위로 소거될 수 있다.
CPU(31)의 포맷, 파일 소거 및 파일 갱신 제어에 의해, 다른 제어 회로를 사용하지 않고 플래시 메모리(1)를 액세스하는 것이 가능하다.
이러한 구조에서, 동일한 블록 내에 소거 대상 데이터 및 다른 데이터가 섞여서 존재한다면, CPU(31)는 파일 저장 및 소거의 프로세스를 실행하여야 하고, 이로써 전체 컴퓨터 시스템의 동작 속도가 떨어지는 불안한 점이 있다. 이 실시예는 클래스가 도 4에 나타낸 바와 같이 블록과 일치하는 포맷을 사용하기 때문에, 불필요한 저장 프로세스 및 소거 프로세스가 억제되고, 이로써 전체 시스템의 프로세스 속도를 높일 수 있다.
다음에, 제3 실시예를 설명한다. 제1 및 제2 실시예를 따르지만, 플래시 메모리(1)가 포맷되어서 단일 클러스터가 단일 블록과 일치하고, 제3 실시예에 따라, 플래시 메모리(1)가 포맷되어서 단일 클러스터가 도 14에 나타낸 복수개의 블록과 대응한다.
도면에 타나낸 바와 같이, 이 포맷에서, 플래시 메모리의 블록 1은 부트 영역이고, 마스터 부트 레코드 및 파티션 부트 레코드가 저장된다.
플래시 메모리(1)의 클러스터는 부트 영역의 마스터 부트 레코드 및 파티션 부트 레코드에 저장된 데이터에 의해 지정된다. 이러한 포맷에서, 플래시 메모리(1)의 블록 2 내지 블록 4는 클러스터 1에 대응한다. 블록 5 내지 블록 7은 클러스터 2에 대응한다. 블록 8 내지 블록 10은 클러스터 3에 대응한다. 이하에서, 블록 1022 내지 블록 1024는 클러스터 343에 대응한다.
이 실시예 및 그 프로세스에 따른 메모리 제어 시스템은 제1 및 제2 실시예와 동일하다. 그러나, 클러스터의 데이터가 소거될 때, 상기 메모리 제어 시스템은 데이터 소거 대상 클러스터에 대응하는 3개 블록의 각 데이터를 소거한다. 그러므로, 단계 S301 내지 S307의 프로세스는 3회 반복된다. 클러스터가 3개 블록에 대응하는 예를 도 14가 나타내지만, 클러스터는 2 이상의 정수배의 블록에 대응할 수 있다.
다음에, 제4 실시예를 설명한다. 제1 실시예에 따라, 플래시 메모리(1)가 포맷될 때, 플래시 메모리(1)의 모든 블록의 저장 내용은 소거되고, 이어서 마스터 부트 레코드 및 파티션 부트 레코드는 블록 1에 기록된다. 그러나, 부트 정보가 포맷 전과 후에 동일하다면, 이러한 정보는 다시 기록될 필요가 없다. 그러므로, 부트 정보가 포맷 전과 후에 동일하다면, 부트 정보를 소거하지 않고 플래시 메모리(1)가 포맷되는 방식에 제4 실시예에 제안되었다.
제4 실시예에 따라, 메모리 제어 시스템 구성은 도 1의 경우와 동일하다. 또한, 포맷 외의 다른 플래시 메모리(1)의 프로세스는 제1 실시예와 동일하다.
도 15는 이 실시예에 따라 플래시 메모리(1)를 포맷하기 위한 프로세스를 나타내는 플로우차트이다. 이 플로우차트의 프로세스는 도 10에 나타낸 플로우차트의 프로세스와 같이 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 사용자가 조작함으로써, 시스템 버스(34), IOC(33) 및 I/O 버스(4)를 통하여 소정의 커맨드를 CPU(31)로부터 I/O 제어 회로(22)로 입력함으로써 시작된다.
프로세스가 시작되면, CPU(31)는 제1 실시예에서 파워 온 동안의 프로세스와 같이 플래시 메모리(1)의 부트 영역에 저장된 주기억장치 유닛(32)에 마스터 부트 레코드 및 파티션 부트 레코드를 판독 출력하고, 이들을 주기억장치 유닛(32)에 일시적으로 저장한다(단계 S701).
다음에, 플래시 메모리(1)를 포맷시키기 위해, CPU(31)는 시스템 버스(34), IOC(33), I/O 버스(4) 및 I/O 제어 회로(22)를 통하여 주기억장치 유닛(32)에 저장된 마스터 부트 레코드 및 파티션 부트 레코드를 판독 출력한다. 이어서, 마스터 부트 레코드 및 파티션 부트 레코드가 단계 S701에서 일시적으로 저장된 마스터 부트 레코드 및 파티션 부트 레코드와 일치하는지의 여부가 결정된다(단계 S702).
단계 S702에서 일치한다고 결정되면, 단계 S301 내지 S307의 프로세스가 플래시 메모리(1)의 블록 1 이외의 다른 블록에 대해서 실행된다. 결과적으로, 플래시 메모리(1)의 블록 1(부트 영역) 이외의 다른 블록의 메모리 셀에 저장된 데이터가 소거된다(단계 S703). 이 플로우차트의 프로세스가 끝난다. 결과적으로, 플래시 메모리(1)는 도 4에 나타낸 바와 같이 포맷된다.
한편, 비교 결과가 단계 S702에서 일치하지 않으면, 제어 회로(21)는 플래시 메모리(1)를 포맷하도록 도 10에 나타낸 단계 S401 내지 S404의 프로세스를 실행하여서(단계 S704), 이 플로우차트의 프로세스가 끝난다.
이 실시예에 따른 메모리 제어 시스템에 따라, 상기한 바와 같이, 플래시 메모리(1)가 포맷될 때에 부트 영역에 기록된 마스터 부트 레코드 및 파티션 부트 레코드가 변할 필요가 없다면, 부트 영역에 기록된 데이터의 소거 및 부트 영역으로의 데이터의 기록은 실행되지 않는다. 데이터 판독 출력 프로세스보다 시간이 길어지는 데이터 기록 입력 프로세스 및 소거 프로세스는 실행될 필요가 없으며, 플래시 메모리(1)는 제1 실시예에 따라 메모리 제어 시스템보다 더욱 신속히 포맷될 수 있다.
다음에, 제5 실시예를 설명한다. 제1 내지 제4 실시예를 따르지만, FAT 및 디렉토리는 데이터 영역 내의 빈 클러스터에 적합하게 기록되고, 제5 실시예에서, FAT 및 디렉토리는 단 1개의 특정 블록에 기록될 수 있다.
이 실시예에 따라, 메모리 제어 시스템의 구조 및 플래시 메모리(1)의 포맷 구조는 제1 실시예와 동일하다. 그러나, FAT 및 디렉토리 데이터가 기록될 클러스터의 수는 지정되지 않는 대신에, 특정 숫자가 다음에 설명할 특정 클러스터 그룹에 속하는 클러스터에 할당된다. CPU(31)는 FAT 및 디렉토리 데이터가 다음에 설명할 식별 플래그에 따라 기록되는 클러스터를 결정한다.
도 16은 이 실시예에 따라 FAT 및 디렉토리의 데이터를 저장하기 위한 특정 클러스터 그룹을 나타내는 도면이다. 여기에 나타낸 바와 같이, 특정 클러스터 그룹은 임의의 1개에 FAT 및 디렉토리가 기록될 2개의 그룹, 즉 클러스터 그룹 1 및 클러스터 그룹 2를 포함한다.
FAT 및 디렉토리의 구조는 제1 및 제2 실시예와 실질적으로 동일하다. 도 17에 나타낸 바와 같이, 일반 데이터에 의해 사용될 수 없는 "FFh" 값을 사용하는 식별 플래그가 FAT 및 디렉토리가 기록되어 있는 클러스터 그룹의 헤드에 기록된다. 한편, FAT 및 디렉토리가 기록되지 않은 클러스터 그룹은 빈 블록이다. 또한, 각 식별 코드(도시하지 않음)는 FAT 영역 및 디렉토리 영역의 헤드에 첨부된다.
이 실시예에 따라 제어 회로(21)에 의해 실행된 플래시 메모리상의 포맷 프로세스를 도 18의 플로우차트를 참조하여 설명한다. 이 플로우차트의 프로세스는 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 사용자가 조작하여서, 시스템 버스(34), IOC(33) 및 I/O 버스(4)를 통하여 소정의 커맨드를 CPU(31)로부터 I/O 제어 회로(22)로 입력함으로써 시작된다.
프로세스가 시작된 이후에, 제어 회로(21)는 도 5의 단계 S401 내지 S403과 동일한 프로세스를 실행한다(단계 S801). 다음에, CPU(31)는 FFh 데이터를 단계 S201 내지 S203의 프로세스에 따라 초기에 설정된 FAT 및 디렉토리를 저장하기 위한 클러스터 그룹의 헤드 페이지에 기록하여, 이 플로우차트의 프로세스가 끝난다(단계 S802). 결과적으로, 플래시 메모리(1)가 포맷된다.
이 실시예에 따라 제어 회로(21)에 의해 실행된 플래시 메모리(1)에 기록된 파일을 소거하는 프로세스를 도 19에 나타낸 플로우차트를 참조하여 설명한다. 이 플로우차트의 프로세스는 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 사용자가 조작하여서, 시스템 버스(34), IOC(33) 및 I/O 버스(4)를 통하여 소정의 커맨드를 CPU(31)로부터 I/O 제어 회로(22)로 입력함으로써 시작된다.
프로세스가 시작되면, 제어 회로(21)는 단계 S501 내지 S506의 프로세스를 실행한다(단계 S901). 다음에, CPU(31)는 단계 S201 내지 S212의 동작에 따라, 식별 플래그가 FFh가 아닌 클러스터 그룹의 헤드 페이지 이후에 오는 각 페이지에 갱신된 FAT 및 디렉토리의 내용을 연속적으로 기록한다(단계 S902).
다음에, CPU(31)는 단계 S301 내지 S306의 프로세스에 따라 갱신 이전의 디렉토리 및 FAT가 저장되는 클러스터 그룹의 내용을 소거하고(단계 S903) 이 플로우차트의 프로세스를 결정한다.
이 실시예에 따라 제어 회로(21)에 의해 실행된 플래시 메모리(1)로의 파일 기록의 프로세스를 도 20에 나타낸 플로우차트를 참조하여 설명한다. 이 플로우차트의 프로세스는 컴퓨터(3)에 접속된 키보드와 같은 입력 장치(도시하지 않음)를 사용자가 조작하여서, 시스템 버스(34), IOC(33) 및 I/O 버스(4)를 통하여 소정의 커맨드를 CPU(31)로부터 I/O 제어 회로(22)로 입력함으로써 시작된다.
프로세스가 시작되면, 제어 회로(21)는 도 11에 나타낸 단계 S601 내지 S607의 프로세스를 실행한다(그러나, 빈 클러스터의 수가 단계 S604의 프로세스에서 불충분하다고 결정되면, 단계 S610의 프로세스도 실행)(단계 S1001). 다음에, CPU(31)는 단계 S902 및 S903의 프로세스를 실행한다(단계 S1002). 갱신된 FAT 및 디렉토리에서, 소거 대상 파일을 지시하는 정보는 소거되었으나, 새롭게 기록된 파일의 정보가 부가되었다. 그러면, 플로우차트의 프로세스가 끝난다.
상기한 바와 같이, 본 발명의 메모리 제어 시스템에서, 파일 소거 또는 재기록이 실행되는 때마다 FAT 및 디렉토리 데이터의 메모리 위치가 재기록되지 않는다고 하더라도 FAT 및 디렉토리 데이터가 판독 출력될 수 있다. 이 실시예에 따른 메모리 제어 시스템에서, 클러스터 그룹을 구성하기 위한 클러스터의 수는 2개에 제한되지 않으나, 클러스터 그룹은 1개 이상의 클러스터로써 구성될 수 있다.
이 실시예의 메모리 제어 시스템에서, FAT 및 디렉토리 데이터를 저장하기 위한 2개의 특정 클러스터 그룹은 플래시 메모리(1)의 제1 영역에 항상 제공될 필요는 없으나, 임의의 위치에 제공될 수 있다.
CPU(31) 등에 의해 실행된 플래시 메모리(1)를 포맷하는 프로세스를 실행하기 위한 프로그램(포맷용 드라이버)은 플로피 디스크 및 CR-ROM과 같은 기록 매체로 제공될 수 있다.
상기한 바와 같이, 이 실시예에 따른 블록 소거형 메모리 장치에 따라, 데이터 소거 및 기록 입력은 신속하게 실행될 수 있다.
또한, 이 실시예에 따라 프로그램 기록 매체에 저장된 프로그램을 실행함으로써, 데이터 소거 및 기록 입력이 신속하게 실행되도록 블록 소거형 메모리 장치가 포맷될 수 있다. 또한, 이 실시예의 프로그램 기록 매체에 저장된 프로그램을 실행함으로써, 데이터 소거 및 기록 입력이 신속하게 실행된다.

Claims (16)

  1. 데이터 처리 시스템에 있어서,
    복수개의 블록을 포함하고 저장된 데이터를 블록 단위로 선택적으로 소거할 수 있는 블록 소거형 메모리 장치와;
    상기 블록 소거형 메모리 장치를 액세스하기 위한 데이터 처리 수단을 포함하고,
    상기 데이터 처리 수단은,
    블록 소거형 메모리 장치에 접속되어서 상기 블록 소거형 메모리 장치의 메모리 영역의 논리 단위로서 동작하는 클러스터의 크기 및 위치와 상기 블록들 중 정수개의 블록의 크기 및 위치를 실질적으로 대응시키기 위한 포맷 정보에 따라서 상기 블록 소거형 메모리 장치를 포맷하는 제어 수단과;
    상기 포맷 정보에 따라 클러스터의 크기 및 위치를 결정하고 결정된 클러스터의 크기 및 위치에 따라 포맷된 블록 소거형 메모리 장치에 대해 데이터 소거, 데이터 기록 입력 및 데이터 판독 출력을 위한 액세스 제어를 실행하는 액세스 수단을 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  2. 복수개의 블록을 포함하고 데이터를 블록 단위로 선택적으로 소거할 수 있는 블록 소거형 메모리 장치에 있어서,
    정수개의 블록들과, 각각이 상기 메모리 영역의 단위로서 동작하는 클러스터들을 실질적으로 대응시키기 위한 포맷 정보에 따라 포맷된 메모리 영역을 포함하는 것을 특징으로 하는 블록 소거형 메모리 장치.
  3. 제2항에 있어서, 상기 각각의 클러스터들은 상기 블록들 중 대응하는 블록과 실질적으로 일치하는 크기 및 위치를 갖는 것인 블록 소거형 메모리 장치.
  4. 제2항 또는 제3항에 있어서, 상기 포맷 정보는 상기 각각의 클러스터들의 크기와 상기 각각의 블록들의 크기를 대응시키기 위한 정보와, 상기 각각의 클러스터들의 시작 위치 및 끝 위치와 상기 각각의 블록들의 시작 위치 및 끝 위치를 대응시키기 위한 위치 조정 영역을 포함하는 것인 블록 소거형 메모리 장치.
  5. 제2항, 제3항 또는 제4항 중 어느 한 항에 있어서, 파일명 및 헤드 메모리 위치를 지시하는 디렉토리 정보와 파일 위치를 지시하는 파일 할당 테이블은 상기 클러스터들 중 단일 클러스터에 저장되는 것인 블록 소거형 메모리 장치.
  6. 제2항, 제3항 또는 제4항 중 어느 한 항에 있어서, 상기 포맷 정보를 저장하는 상기 블록 이외의 다른 블록들의 저장된 데이터는 물리적으로 소거되는 것인 블록 소거형 메모리 장치.
  7. 복수개의 블록을 포함하는 블록 소거형 메모리 장치에 접속 가능하게 되도록 구성되고 저장된 데이터를 블록 단위로 선택적으로 소거할 수 있는 접속부와;
    상기 블록들 중 정수개의 블록과 적어도 1개의 클러스터를 실질적으로 일치시키는 포맷 정보를 상기 접속부를 통하여 상기 블록 소거형 메모리 장치에 기록함으로써 상기 블록 소거형 메모리 장치를 포맷하는 포맷부를 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  8. 제7항에 있어서, 상기 포맷 수단은 상기 각각의 클러스터들의 크기 및 위치와 상기 각각의 블록들의 크기 및 위치를 실질적으로 일치시키기 위한 포맷 정보를 상기 블록 소거형 메모리 장치에 기록하는 것인 데이터 처리 시스템.
  9. 제7항에 있어서, 상기 포맷 수단은 상기 각각의 클러스터들의 크기와 상기 각각의 블록들의 크기를 대응시키기 위한 정보와, 상기 각각의 클러스터들의 시작 위치 및 끝 위치와 상기 각각의 블록들의 시작 위치 및 끝 위치를 대응시키기 위한 위치 조정 정보를 상기 블록 소거형 메모리 장치에 기록하는 것인 데이터 처리 시스템.
  10. 제7항에 있어서, 파일명 및 헤드 메모리 위치를 지시하는 디렉토리 정보와 파일 위치를 지시하는 파일 할당 테이블을 각 클러스터에 기록하는 기록 수단을 더 포함하는 것인 데이터 처리 시스템.
  11. 제7항에 있어서, 상기 포맷 수단은 상기 포맷 정보가 기록되어 있는 상기 블록들의 블록 이외의 다른 상기 블록들의 저장된 데이터를 물리적으로 소거하는 수단을 포함하는 것인 데이터 처리 시스템.
  12. 제7항에 있어서, 상기 접속부를 통하여 상기 블록 소거형 메모리 장치에 기록된 파일을 소거하고, 적합한 데이터를 갖는 상기 블록들의 데이터를 물리적으로 소거하기 위한 수단을 구비하는 파일 소거 수단을 더 포함하는 것인 데이터 처리 시스템.
  13. 제7항 내지 제12항 중 어느 한 항에 있어서, 상기 접속부를 통해 포맷 정보를 판독 출력하는 포맷 정보 판독 출력 수단과, 상기 포맷 정보 판독 출력 수단에 의해 판독 출력된 포맷 정보에 따라 각각 파일의 최소 단위로서 동작하는 각각의 클러스터들의 크기 및 위치를 결정하는 클러스터 결정 수단과, 상기 클러스터 결정 수단에 의해 결정된 각각의 클러스터들의 크기 및 위치에 따라 상기 블록 소거형 메모리 장치의 데이터 소거, 데이터 기록 입력 및 데이터 판독 출력을 제어하는 수단을 더 포함하는 것인 데이터 처리 시스템.
  14. 저장된 데이터를 블록 단위로 선택적으로 소거할 수 있는 블록 소거형 메모리 장치의 저장된 데이터를 물리적으로 소거하는 명령과;
    각각 데이터 메모리 영역의 단위로서 동작하는 각각의 클러스터들의 크기 및 위치와 정수개의 블록들의 각각의 크기 및 위치를 대응시키는 정보를 저장된 데이터가 소거된 블록 소거형 메모리 장치에 기록하기 위한 명령을 포함하는 프로그램을 저장하는 것을 특징으로 하는 기록 매체.
  15. 제14항에 있어서, 블록 소거형 메모리 장치에 저장된 데이터가 소거되도록 명령을 받을 때에 소거되도록 명령을 받은 데이터를 포함하는 블록의 저장 내용을 물리적으로 소거하기 위한 명령을 포함하는 프로그램을 더 저장하는 것인 기록 매체.
  16. 제14항 또는 제15항에 있어서, 파일명 및 헤드 메모리 위치를 지시하는 디렉토리 정보를 기록하고, 각 클러스터 내에 파일의 할당을 지시하는 파일 할당 테이블을 기록하기 위한 명령을 포함하는 프로그램을 더 저장하는 것인 기록 매체.
KR10-2000-7001212A 1997-08-04 1998-06-25 데이터 처리 시스템, 블록 소거형 메모리 장치 및 메모리장치 제어용 프로그램을 저장하는 기록 매체 KR100375533B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-208976 1997-08-04
JP20897697A JP3588231B2 (ja) 1997-08-04 1997-08-04 データ処理システム及びブロック消去型記憶媒体

Publications (2)

Publication Number Publication Date
KR20010022618A true KR20010022618A (ko) 2001-03-26
KR100375533B1 KR100375533B1 (ko) 2003-03-10

Family

ID=16565284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7001212A KR100375533B1 (ko) 1997-08-04 1998-06-25 데이터 처리 시스템, 블록 소거형 메모리 장치 및 메모리장치 제어용 프로그램을 저장하는 기록 매체

Country Status (6)

Country Link
US (2) US6411552B1 (ko)
EP (1) EP1000394A1 (ko)
JP (1) JP3588231B2 (ko)
KR (1) KR100375533B1 (ko)
TW (1) TW449690B (ko)
WO (1) WO1999008177A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007668A (ko) * 2004-07-20 2006-01-26 엘지전자 주식회사 플래시메모리 기반형 데이터베이스 시스템 및 그 관리방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3588231B2 (ja) * 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6725322B1 (en) 1999-02-22 2004-04-20 Renesas Technology Corp. Memory card, method for allotting logical address, and method for writing data
CN1203395C (zh) 1999-10-21 2005-05-25 松下电器产业株式会社 半导体存储卡的访问装置、计算机可读记录介质、初始化方法和半导体存储卡
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US7510572B2 (en) * 2000-09-12 2009-03-31 Shlomo Gabbay Implantation system for delivery of a heart valve prosthesis
JP2002358248A (ja) * 2001-06-04 2002-12-13 Pioneer Electronic Corp データ記録装置およびデータ消去装置
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
JP3852693B2 (ja) * 2002-03-19 2006-12-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP2003296177A (ja) 2002-04-03 2003-10-17 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
JP4218406B2 (ja) 2003-04-25 2009-02-04 富士フイルム株式会社 情報記録再生方法
US7188228B1 (en) 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
KR101046083B1 (ko) * 2003-12-03 2011-07-01 파나소닉 주식회사 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
JP4347707B2 (ja) * 2004-01-09 2009-10-21 パナソニック株式会社 情報記録媒体のフォーマット方法および情報記録媒体
KR100877448B1 (ko) * 2004-04-20 2009-01-09 파나소닉 주식회사 비휘발성 기억 시스템
EP2977906A1 (en) 2004-04-28 2016-01-27 Panasonic Corporation Nonvolatile storage device and data write method
JP4157501B2 (ja) * 2004-06-30 2008-10-01 株式会社東芝 記憶装置
JP2006155461A (ja) * 2004-12-01 2006-06-15 Sony Corp 情報処理装置、情報処理方法、並びにプログラム
JP2007095222A (ja) * 2005-09-30 2007-04-12 Eastman Kodak Co 半導体メモリ及びそのメモリコントローラ
AU2006315812B2 (en) * 2005-11-10 2013-03-28 Cardiaq Valve Technologies, Inc. Balloon-expandable, self-expanding, vascular prosthesis connecting stent
EP1895418B1 (en) 2005-12-09 2015-04-01 Panasonic Corporation Nonvolatile memory device, method of writing data, and method of reading out data
JP4663577B2 (ja) * 2006-05-16 2011-04-06 株式会社バッファロー データ記憶装置およびこの初期化方法
US7510426B2 (en) * 2006-05-26 2009-03-31 Mina Hwang Electrical power apparatus with retractable cords and moveable sockets
US8239869B2 (en) * 2006-06-19 2012-08-07 Condusiv Technologies Corporation Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US9588809B2 (en) * 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8056083B2 (en) 2006-10-10 2011-11-08 Diskeeper Corporation Dividing a computer job into micro-jobs for execution
CN102522118A (zh) * 2006-07-31 2012-06-27 株式会社东芝 控制非易失性存储器的方法
JP4991320B2 (ja) 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
JP4978224B2 (ja) * 2007-02-08 2012-07-18 カシオ計算機株式会社 光電変換装置及びそれを備えた表示パネル
KR100909358B1 (ko) * 2007-04-16 2009-07-24 삼성전자주식회사 신뢰성 높은 초기화 데이터를 제공하는 플래시 메모리 장치및 그것의 초기화 방법
JP4539677B2 (ja) 2007-04-23 2010-09-08 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム
CA2700872A1 (en) * 2007-10-05 2009-04-09 Diskeeper Corporation Solid state drive optimizer
JP2010044822A (ja) * 2008-08-12 2010-02-25 Toppan Printing Co Ltd 半導体メモリ
US8281117B2 (en) * 2008-09-24 2012-10-02 Airbus Operations Gmbh Method and a memory unit for booting a server by copying boot data from an exchangeable memory unit to primary hard disk of the server
US8392687B2 (en) 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US8180995B2 (en) 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
JP5341584B2 (ja) 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
WO2012127309A1 (en) 2011-03-21 2012-09-27 Ontorfano Matteo Disk-based valve apparatus and method for the treatment of valve dysfunction
JP5366159B2 (ja) * 2011-09-06 2013-12-11 ルネサスエレクトロニクス株式会社 半導体装置及びマイクロコンピュータ
EP2798500A1 (en) * 2011-12-29 2014-11-05 Memory Technologies LLC Method for erasing data entity in memory module
US8870948B1 (en) 2013-07-17 2014-10-28 Cephea Valve Technologies, Inc. System and method for cardiac valve repair and replacement
AU2015361260B2 (en) 2014-12-09 2020-04-23 Cephea Valve Technologies, Inc. Replacement cardiac valves and methods of use and manufacture
WO2018136959A1 (en) 2017-01-23 2018-07-26 Cephea Valve Technologies, Inc. Replacement mitral valves
US10849746B2 (en) 2015-05-14 2020-12-01 Cephea Valve Technologies, Inc. Cardiac valve delivery devices and systems
US9842054B2 (en) * 2015-07-08 2017-12-12 Hon Hai Precision Industry Co., Ltd. Computing device and method for processing data in cache memory of the computing device
US10496607B2 (en) * 2016-04-01 2019-12-03 Tuxera Inc. Systems and methods for enabling modifications of multiple data objects within a file system volume
WO2017218877A1 (en) 2016-06-17 2017-12-21 Cephea Valve Technologies, Inc. Cardiac valve delivery devices and systems
AU2018203053B2 (en) 2017-01-23 2020-03-05 Cephea Valve Technologies, Inc. Replacement mitral valves

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01103248A (ja) 1987-10-14 1989-04-20 Koyo Seiko Co Ltd 工具位置決め装置
JPH0484216A (ja) * 1990-07-26 1992-03-17 Toshiba Corp 半導体ディスク装置のデータ消去方法
US5303198A (en) * 1990-09-28 1994-04-12 Fuji Photo Film Co., Ltd. Method of recording data in memory card having EEPROM and memory card system using the same
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JPH0546459A (ja) * 1991-08-09 1993-02-26 Toshiba Corp メモリカード装置
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
JPH0773098A (ja) * 1993-09-01 1995-03-17 Toshiba Emi Ltd データ書き込み方法
US5542077A (en) * 1993-09-10 1996-07-30 Compaq Computer Corporation Personal computer with CMOS memory not having a separate battery
JPH0877286A (ja) * 1994-08-31 1996-03-22 Fuji Photo Film Co Ltd メモリカードインタフェース装置
KR0182939B1 (ko) * 1995-06-28 1999-04-15 김광호 특정 기록포멧을 갖는 아이씨 카드 메모리 및 그로부터의 디지탈음성 기록 및 재생방법
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5933847A (en) * 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US5701492A (en) * 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
JPH10124384A (ja) * 1996-08-28 1998-05-15 Toshiba Corp 不揮発性半導体メモリの制御方法
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
JP3588231B2 (ja) * 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP4135049B2 (ja) * 1999-03-25 2008-08-20 ソニー株式会社 不揮発性メモリ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007668A (ko) * 2004-07-20 2006-01-26 엘지전자 주식회사 플래시메모리 기반형 데이터베이스 시스템 및 그 관리방법

Also Published As

Publication number Publication date
TW449690B (en) 2001-08-11
KR100375533B1 (ko) 2003-03-10
WO1999008177A1 (en) 1999-02-18
JP3588231B2 (ja) 2004-11-10
US20010010065A1 (en) 2001-07-26
JPH1153248A (ja) 1999-02-26
US6401166B2 (en) 2002-06-04
EP1000394A1 (en) 2000-05-17
US6411552B1 (en) 2002-06-25

Similar Documents

Publication Publication Date Title
KR100375533B1 (ko) 데이터 처리 시스템, 블록 소거형 메모리 장치 및 메모리장치 제어용 프로그램을 저장하는 기록 매체
US11636032B2 (en) Memory system, data storage device, user device and data management method thereof
JP3680142B2 (ja) 記憶装置及びアクセス方法
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
US5963983A (en) Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device
US8375157B2 (en) Cluster based non-volatile memory translation layer
KR101132497B1 (ko) 메모리 시스템
US7802054B2 (en) Apparatus and methods using invalidity indicators for buffered memory
US5717886A (en) Semiconductor disk device and memory management method
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
JP2000305839A (ja) 記憶装置、記憶システム、メモリ管理方法及び記録媒体
KR20040082921A (ko) 플래쉬 파일 시스템
US10997073B2 (en) Memory system
US20110035543A1 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
JP2003067244A (ja) 不揮発性記憶装置及びその制御方法
JP2000181784A (ja) 書き換え可能な不揮発性記憶装置
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
WO2006030421A2 (en) Emulating small block size of flash memory
CN113407111B (zh) 闪存控制器、闪存控制器的方法及记忆装置
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
US20240143223A1 (en) Storage device and method of operating the same
JP2009265839A (ja) 記憶装置
JPH05250884A (ja) 不揮発性記憶装置
JP2004005651A (ja) データ処理システム、アクセス装置及び記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120130

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee