KR0128218B1 - 일괄 소거형 비휘발성 메모리 - Google Patents

일괄 소거형 비휘발성 메모리

Info

Publication number
KR0128218B1
KR0128218B1 KR1019940004327A KR19940004327A KR0128218B1 KR 0128218 B1 KR0128218 B1 KR 0128218B1 KR 1019940004327 A KR1019940004327 A KR 1019940004327A KR 19940004327 A KR19940004327 A KR 19940004327A KR 0128218 B1 KR0128218 B1 KR 0128218B1
Authority
KR
South Korea
Prior art keywords
cluster
sector
information
data
controller
Prior art date
Application number
KR1019940004327A
Other languages
English (en)
Other versions
KR940022572A (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 KR940022572A publication Critical patent/KR940022572A/ko
Application granted granted Critical
Publication of KR0128218B1 publication Critical patent/KR0128218B1/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
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

[목적]일괄소거형 비휘발성 메모리를 사용하는 반도체 디스크 장치에서의 전원 차단 등의 장해에 대한 내성을 개선시키는데 있다.
[구성]일괄소거형 비휘발성 메모리는, 다수개의 섹터를 포함하여, 각 섹터에 자신의 속성을 식별하기 위한 속성 정보가 기록된다. 클러스터 정보 섹터는 원칙적으로 그가 속하는 클러스터의 선두에 위치한다. 또한, 데이타 섹터는 클러스터의 선두이외의 영역인 데이타 영역에 위치한다. 메모리에 접속된 콘트롤러는 클러스터 소거시에는 데이타 영역에 클러스터 정보카피 섹터를 작성하고, 클러스터 초기화시에는 클러스터 정보 카피 섹터로부터 클러스터 관리 정보를 재구성하여 클러스터 정보 섹터를 작성한다.

Description

일괄 소거형 비휘발성 메모리
제1도는 본 발명에 따르는 플래쉬 메모리(flash memory)를 반도체 디스크 장치로서 사용하는 컴퓨터 시스템의 제1실시예를 도시한 블록도.
제2도는 반도체 디스크 장치의 개략적인 구성을 도시한 블록도.
제3도는 제1실시예에 있어서의 플래쉬 메모리의 클러스터 정보 섹터(clustet information sector)의 포맷도.
제4도는 플래쉬 메모리의 데이타 섹터의 포맷도, 제5도는 플래쉬 메모리의 클러스터 정보 카피섹터(cluster information copy sector)의 포맷도. 제6도는 플래쉬 메모리의 불량 정보 섹터의 포맷도. 제7도는 불량 데이타 섹터를 검출한때의 반도체 디스크 장치(solid state file: SSF) 동작을 도시하는 플로우챠트. 제8도는 섹터를 소거하는 때의 SSF 동작을 도시하는 플로우챠트. 제9도는 섹터를 초기화하는 때의 SSF 동작을 도시하는 플로우챠트.
제10도는 가비지 콜렉션(불필요정보수집)(garbage collection)의 제1실시예를 도시하는 프로우챠트.
제11도는 가비지 콜렉션의 제2실시예를 도시하는 플로우챠트.
제12도는 어드레스 변환표(address translation table)를 재구성한때의 SSF 동작을 도시하는 플로우챠트.
제14도는 제1실시예에서의 SSF의 클러스터 선두 섹터의 판독 및 이것에 관련하는 동작을 도시하는 플로우챠트.
제15도는 제2실시예에서의 블록(block)과 페이지(page)의 관계도.
제16도는 제2실시예에서의 클러스터, 블럭, 섹터 및 페이지의 관계도.
제17도는 제2실시예에 있어서의 플래쉬 메모리의 클러스터 정보 섹터의 포맷도. 제18도는 대체(replacement)클러스터 정보 섹터(cluster information sector : CIS) 포인터 섹터(pointer sector)와 대체 CIS의 관계도.
제19도는 대체 CIS 포인터 섹터의 포맷도.
제20도는 제2실시예에서의 SSF의 클러스터 선두 섹터의 판독 및 이것에 관련하는 동작을 도시하는 플로우챠트.
제21도는 제2실시예에서의 SSF의 클러스터 선두 섹터의 판독 및 이것에 관련하는 동작을 도시하는 플로우챠트.
* 도면의 주요부분에 대한 부호의 설명
12 : 직접 메모리 액세스 제어 장치(DMAC) 20 : 반도체 디스크 장치
30 : 콘트롤러 32 : 랜덤 액세스 메모리(RAM)
34 : 플래쉬 메모리
[산업상의 이용분야]
본 발명은 플래쉬(flash) EEPROM(이하에서는 플래쉬 메모리라 칭함) 등의 일괄 소거형(flash erase capability)의 비휘발성 메모리(nonvolatile memory) 및 이것을 이용하는 반도체 디스크 장치에 관한 것으로, 특히 클러스터(cluster)의 소거 횟수 등의 관리정보를 저장(save), 복구(recover) 및 갱신(update)하는 것에 관한 것이다.
[종래기술]
반도체 디스크 장치에 이용되는 메모리로서, 일괄 소거형의 플래쉬메모리가 개발되어 있다. 플래쉬 메모리는 DRAM과 동일하게 트랜지스터 1개로 기억 소자가 구성되어 고밀도화가 가능하고, 미래의 시장 환경에 따라서는 DRAM과 동일하거나 그 이하의 비트 코스트(bit cost)로 생산 가능한 것으로 기대되고 있다. 플래쉬 기억 소자는 비휘발성으로 전지 백업(back up)이 필요없으며, 소거는 일반적으로 칩단위(chip unit) 또는 이것보다 작은 블록 단위(block unit)로 행해진다. Richard D. Pashley 외의 Flash memories: the best of two worlds, IEEE SPECTRUM 1989년 12월 , 30쪽 내지 33쪽에서는, 이와 같은 플래쉬 메모리의 개요를 소개하고 있다. 성능(performance)면에서는 침 소거형보다는 블록 소거형이 우수하다. 블록 소거형의 플래쉬 메모리를 반도체 디스크 장치(SSF; solid state file)에 사용하는 경우, 블록 크기를 하드 디스크 장치의 액세스 단위(a unit of access)인 섹터(sector)와 동일하게 하면 메모리 관리에 편하다. 예를 들어, 유럽공개특허출원 제 392895호는 섹터 소거형의 플래쉬 EEPROM 시스템을 개시하고 있다. 이 시스템은 소거 단위인 섹터마다 래치(a latch)를 설치해두고, 소거해야 할 섹터에 대응하는 래치를 셋트함으로써 임의의 복수의 섹터를 동시에 소거할 수 있도록 하고 있다. 복수 섹터분의 용량(예를 들어 4K 바이트)을 갖는 블록을 소거 단위로 한 플래쉬 메모리도 알려져 있다. 또한 이와 같은 물리적인 일괄 소거 단위인 블록을 복수 포함한 클러스터를 논리적인 소거 단위로 하는 것도 가능하다. 그러나,플래쉬 메모리에는 SRAM 및 DRAM에는 없는 제한이 있다. 우선, 메모리 비트의 프로그래밍은 일방향 프로세스(one-way process)이며, 0에서 1 또는 1에서 0으로밖에 변할 수 없다. 따라서, 이미 기록되어 있는 기억 위치에 새로운 데이타를 기록하는 경우는, 이 기록 위치를 포함하는 블록을 일괄 소거에 의해 전부 0 또는 1로 설정한 후에 기록을 행할 필요가 있다. 소거 및 기록에는 통상 수십 밀리초(millisecond)에서 수초의 시간이 걸린다. 또한, 플래쉬 메모리는 소거 및 기록에 의해 열화되며 현재로서는 수만회에서 수십만회의 소거 및 기록이 사용한도(use unit)이다.
[발명이 해결하고자 하는 과제]
이와 같은 문제에 대처하기 위해서 소거 횟수의 상한(upper limit of the erase count)을 초과하지 않도록 각 블럭마다 소거 횟수를 보존하여 둘 필요가 있다. 또한, 일본국 특허원 평성 3-197318에 개시되어 있는 바와 같이, 한 클러스터내의 무효 섹터들의 위치를 기억하여 두고, 물리 섹터를 놀리 섹터에 동적으로 할당할 때, 이들 무효 섹터들을 스킵(skip)하도록 하는 방법이 필요하게 된다. 이와 같이, 플래쉬 메모리의 상태를 나타내는 관리 정보를 자신의 내부에 보존해야 할 상황이 발생하지만, 플래쉬 메모리의 특성상, 데이타를 소거할 때 동시에 이들 관리 정보도 소거되어 버린다. 통상 이들 관리 정보는 소거되기 전에 SSF의 콘트롤러의 RAM영역에 카피(copy)되며, 블록 소거 종료 후, 플래쉬 메모리에 다시 기록된다. 그러나, 이와 같은 방법을 취하면 클러스터 소거 중에 전원 차단 등의 시스템 장애가 발생한 경우에 RAM상의 관리 정보가 손실되어 콘트롤러는 이것을 회복할 수 없게 된다. 또한, 플래쉬 메모리에서는 그 구성상 블록 불량이 발생되는 것이 고려되지만, 이러한 블록 불량의 발생에 의해 시스템은 관리 정보를 판독할 수 없게 되는 경우가 있다. 이와 같은 불량 모드로 인해 관리정보를 소실한 경우, 시스템은 그 블록 내의 데이타를 잃어버릴 뿐만 아니라 SSF 전체를 관리할 수 없게 되는 경우가 있다. 현재까지는 블록 불량에 대한 데이타의 보호 관리에 대해서는 유효한 방법이 제안되어 있지 않다. 관리 정보는 블록의 소거 횟수 등 일단 상실되어 버리면 재차 회복할 수 없는 시스템 관리상 매우 중요한 데이타를 포함하고 있으므로, 이것을 상실하는 것은 SSF의 관리상 중요한 문제를 초래한다. 이와 같이 언제나 항상 보존되어야 하는 데이타를 보호하기 위하여 다양한 불량 현상에 대응할 수 있는 방법은 없었다. 또한 관리정보를 보존하는 물리섹터가 고정된 장소에 위치하는 경우 그 섹터에 불량이 발생한 때에는 그 관리정보가 관리하는 블록 또는 클러스터 전체가 사용 불가능하게 되어버린다. 즉, 중요한(critical) 섹터가 불량이 되므로써 그 수십 배의 영역이 물리적으로는 하등 문제가 없음에도 불구하고 논리적으로는 불량으로 되어버리는 비효율성이 발생한다. 이것을 방지하기 위해서는 중요한 섹터에 대해 대체 섹터(replacement sector)를 설치 하는 방법이 있지만, 이 경우에는 대체 섹터가 어디 존재하는가를 시스템은 기억해 둘 필요가 있다. 일반적으로는 대체 섹터에 관한 정보는 플래쉬 메모리상에 기억해 둘 필요가 있으며, 또한 플래쉬 메모리의 특성을 고려하면 이 정보는 대체될 섹터를 포함한 클러스터에 속하는 적당한 섹터에 보존되어야 한다. 이러한 조건하에서, 대체 섹터의 위치 정보는, 그 성질상, 이것을 관리 정보의 일부로서 플래쉬 메모리상에 기억하는 것이 고려되지만, 이것에서는 관리정보(자기 자신)의 소재를 표시하기 위해 자기자신(대체 섹터의 위치)을 참조해야 한다는 모순이 나타난다. 현재까지는 이와 같은 상황에 대하여 유효한 대책은 제안되어 있지 않았다. 또한, 새로운 불량 섹터의 발생 등에 의해 관리 정보(불량 섹터 맵)의 갱신을 필요로 하지만, 일반적으로 플래쉬 메모리에 대해서는 중복 기록(overwrite)를 행할 수 없으므로 갱신처리는 해당 클러스터 소거 후에 행해지는 관리 정보의 재기록(write back)의 시점까지 기다려야 할 필요가 있다. 이와 같은 갱신 트랜잭션(update transaction)을 갱신 처리 완료까지 어떻게 보존해야 한다는 것도 해결되어 있지 않은 문제로 있다. 따라서, 본 발명의 목적은, 일괄 소거형 비휘발성 메모리를 사용한 반도체 디스크 장치(SSF)의 신뢰성을 보증하기 위해 필수인 관리 정보의 보존 및 갱신을 확실하게 실현하는 것에 있다. 본 발명의 다른 목적은, 플래쉬 메모리를 사용한 반도체 디스크 장치에 있어서, 클러스터 소거 횟수 등의 관리 정보가 갑작스런 전원 차단 등의 시스템 장애에 의해 소실되어 버린 때에 이것을 회복하는 수단을 제공하는 것에 있다.
본 발명의 또다른 목적은, SSF 동작중에 불량 섹테가 발견될 때, 이것을 관리 정보 보존 영역에 정확하게 반영(reflect)시키는 방법을 제공하는 것에 있다.
본 발명의 또다른 목적은, 관리 정보 보존 영역이 워드 라인 불량(word line failure)등의 섹터 불량에 의해 사용 불가능으로 되어버린 때에 대처할 수 있는 관리 정보의 보존 및 회복 수단을 제공하는 것에 있다.
본 발명의 또다른 목적은, 블럭 불량에 대처할 수 있는 관리 정보의 보존 및 회복 수단을 제공하는 것에 있다.
[과제를 해결하기 위한 수단]
본 발명에 따른 일괄 소거형 비휘발성 메모리는, 복수개의 섹터를 포함하며, 각 섹터에는 자신의 속성(attribute)을 식별하기 위한 속성 정보가 기록되어 있다.
보다 구체적으로는, 본 발명에 따른 일괄 소거형 비휘발성 메모리는, 복수개의 섹터의 집합인 클러스터를 단위로 하여 소거할 수 있으며, 각 클러스터에는 자신의 관리 정보를 기억하기 위한 클러스터 정보 섹터가 제공되어 있으며, 각 클러스터의 클러스터 정보 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보가 기록되어 있으며 , 유저 데이타(user data)를 기록하는 섹터에는 데이타 섹터인 것을 나타내는 속성 정보가 기록되어 있다.
클러스터 정보 섹터는 원칙적으로 그것이 속하는 클러스터의 소정 위치에 놓여진다. 또한, 데이타 섹터는 클러스터의 상기 소정 위치 이외의 영역인 데이타 영역에 놓여진다.
소정의 클러스터 데이타 영역에 다른 클러스터의 관리 정보의 카피를 기억하기 위한 섹터가 포함되는 경우가 있다. 이 섹터에는 상기 다른 클러스터의 식별자(identifier)와 클러스터 정보 카피 섹터인 것을 나타내는 속성 정보가 기록된다.
관리 정보는, 클러스터 소거 횟수와 불량 섹터 맵(a bad sector map)을 포함할 수 있다.
소정의 클러스터의 데이타 영역에는 상기 클러스터 또는 다른 클러스터내에 있으며, 관련하는 클러스터 정보섹터의 불량 섹터 맵이 아직 반영되어 있지 않은 불량 섹터의 위치를 기억하는 섹터가 포함될 수 있다. 이 섹터에는 불량 섹터를 포함하는 클러스터의 식별자와 불량 정보 섹터인 것을 나타내는 속성 정보가 기록된다.
본 발명에 따른 반도체 디스크 장치는, 콘트롤러와, 이것에 접속되며 상기한 바와 같이 섹터마다 속성 정보가 셋트된 일괄 소거형 비휘발성 메모리를 포함한다. 콘트롤러는, 클러스터 소거시에는 클러스터 정보 카피 섹터를 데이타 영역에 작성하고(create), 클러스터 초기화시에는 클러스터 정보 카피섹터로부터 클러스터 관리 정보를 재구성하여 클러스터 정보 섹터를 작성한다.
[실시예]
본 발명의 반도체 디스크 장치를 내장한 컴퓨터 시스템의 제1실시예를 제1도에서 도시한다. CPU(10)는 시스템 버스(13)를 통해 주 기억 장치(15), 버스 제어 장치(16), 선택적인 수치 계산용 코프로세서(optional math coprocessor,14)와 통신한다. CPU(10) 및 관련하는 주변 장치간의 통신은 버스 제어 장치(16)를 통해 행해진다. 이 때문에, 버스 제어 장치(16)는 패밀리 버스(family bus, 18)에 의해 주변 장치에 접속되어 있다. 주변 장치로서는, 본 발명에 따른 플래쉬 메모리로 제조된 반도체 디스크 장치(SSF, 20)가 접속되며, 또한 통신 장치(21), 플로피 디스크 드라이브(FDD,22) 광 파일 장치(optical file unit, 23)표시 장치(24)도 패밀리 버스(18)에 접속되어 있다. 물론, 다른 주변 장치도 접속 가능하다. 이와 같은 컴퓨터 시스템의 일례는 IBM PS/2이다.
직접 메모리 엑세스 제어 장치[direct memory access controller(DMAC), 12]는 이들의 주변 장치 전부 또는 선택된 일부에 대해 메모리 액세스를 가능하게 하도록 제공되어 있다.
이 때문에, 패밀리 버스(18)는, 적어도 그 일부가 DMAC(12)에 분기 접속된다. 제1도에는 도시되어 있지 않지만, DMA 가능한 각 주변 장치에는 아비트레이션 회로(arbitration circyuit)가 제공되며, 아비트레이션 레벨(우선 순위)이 할당된다. DMAC(12)의 측에는, DMA를 동시에 요구하고 있는 복수의 주변 장치 사이에서 조정 작업을 행하여 어느 주변 장치가 DMA를 허가 받았는가를 DMAC(12)dp 알리는 중앙 아비트레이션 제어 회로(11)에 의한 DMA 제어에 대한 상세는 미국 특허 제 4,901,234호의 명세서에 기재되어 있다.
CPU(10)는 SSF(20)를 하드 디스크 장치로서 취급한다. 따라서, SSF(20)를 엑세스할때는, 헤드번호(a gead number), 실런더 번호(sylinder number) 및 섹터 번호(sector number)로 구성되는 소위 상대 블록 어드레스(relative block address, RBA)가 SSF(20)에 보내진다. SSF(20)는 동적(dynamic)섹터 할당을 행한다. 따라서 CPU(10)로부터 공급되는 RBA와, SSF(20)의실제로 엑세스되는 SSF(20)의 섹터의 어드레스(물리 어드레스)와의 관계는 고정되어 있지 않고 기록할 때마다 변화한다. 이 경우 이들의 대응 관계를 명확하게 하는 어드레스 변환표가 제공되어 있다. 즉, CPU(10)로부터의 RBA는 논리 어드레스이다. 대응하는 물리 어드레스는 어드레스 변환표중 논리 어드레스에 의해 지시된 곳에 기록되어 있다.
제2도에서는 SSF(20)의 개략적인 구성을 도시한다. SSF(20)는, 패밀리 버스(18)에 접속된 콘트롤러(30)와, 내부 버스(31)를 통해 이 콘트롤러(30)에 접속된 랜덤 액세스 메모리[Random Access Memory(RAM),32] 버스 제어부(33) 및 플래쉬 메모리(34)로 구성된다. 도시하지는 않았지만, 콘트롤러(30)는, 마이크로프로세서와 이것을 제어하는 프로그램을 저장한 ROM을 포함한다. 제7도 이하의 플로우 챠트에서 설명하는 소거 등의 기능은, ROM의 프로그램이 마이크로프로세서에서 실행됨으로써 실현된다.
RAM(32)은, 어드레스 변환표를 기억하는 영역(35) 및 버퍼 영역(36)을 포함한다. RAM(32)은 이외에 후술하는 클러스터 정보 카피 섹터의 위치를 기억하는 표(38)(이하, CIS 카피 위치표라 칭함)를 포함한다. 버스 제어부(33)는 내부 버스(31)와, 플래쉬 메모리(34)에 접속된 메모리 버스(37)를 상호 접속하기 위한 주지의 리시버/드라이버(receiver/driver) 구성을 갖는다.
이하에서는, 섹터 및 클러스터의 구성을 다르게 한 두 실시예를 도시하였지만, 어느쪽도 CPU가 지정하는 논리 섹터의 사이즈는 512 바이트이며, CPU(10)의 SSF(20)에 대한 최소 섹터 단위인 물리 섹터의 사이즈 512+α 바이트인 것으로 한다. 제1실시예에서는, SSF(20)의 섹터(물리 섹터) 및 클러스터는 다음과 같이 하여 관리되어진다.
1) 실제의 소거를 행하는 논리적인 집합을 만들고, 이것을 클러스터라 칭한다. 클러스터는 하나 이상의 블록으로 구성되어 있으며, 각각의 블록이 물리적인 소거 단위이다. 실시예에서는 8 섹터로 한 블록을 구성하며 8블럭으로 1 클러스터를 구성한다. 블록과 클러스터의 대응 관계는, 블록의 상위어드레스를 클러스터의 식별자로 하거나 또는 표를 작성함으로써 형성된다.
2) 본 실시예에서는, 물리 섹터는 이하와 같은 속성을 가지며, 각각의 속성 플래그(attribuyte flag)에 의해 식별된다.
우선, 각 클러스터의 선두 물리적 어드레스에 위치한 섹터가 클러스터 정보 섹터(CIS)로 할당되어 클러스터 소거 횟수, 클러스터내의 불량 섹터 맵 등 각 클러스터의 고유한 관리 정보를 보존한다.(제3도 참조). 또한, 리던던시(redundancy) 영역(α 바이트)에는 속성 플래그를 기록하는 영역이 포함되어 있으며, 클러스터 정보 플래그가 셋트된다. 이들의 정보에는 각각에 대해 패리티 코드(parity code)등을 부가하여 에러의 발생을 검출할 수 있도록 하게 한다.
각종 관리 정보에 대한 패리티는 에러 정정을 할 수 있도록 한 코드인 것이 바람직하지만, 여기서는 단순한 기수 패리티나 CRC 패리티로도 충분하다. 이들 패리티를 전부 포함하는 관리 정보 전체(속성 플래그를 포함)에 대하여 ECC 패리티를 계산하고, 이것을 클러스터 정보 섹터의 리던던시 영역에 기록한다.
일본국 특허원 평성 5-35227호의 명세서에는, 미리 각 클러스터에 대하여 서로 중복하지 않도록 순서번호를 부여하고, 소정의 클러스터가 소거된 후 초기화될 때에, 현재의 최대 순서 번호보다도 큰 값을 새로운 순서 번호로서 상기 소정의 클러스터에 기록하는 발명을 개시하고 있다. 이와 같은 순서 번호를 사용하여 섹터를 관리하는 경우에는, 클러스터 정보 섹터에 관리 정보로서 순서 번호가 기록되어진다.
또한, 클러스터의 관리 정보가 512 바이트 영역 전부를 점유하는 것은 아니다. 클러스터의 선두 섹터는 클러스터 관리 정보가 놓여지는 중요한 섹터이지만, 이 섹터도 다른 섹터와 마찬가지로 워드 라인 불량 등의 불량이 발생할 가능성이 있다. 이 경우 제1실시예에서는, 선두 섹터가 불량인 경우 다음 이후의 어느 다른 속성을 갖는 다른 섹터보다도 전에 있는 섹터를 클러스터 정보 섹터에 할당하도록 하고 있다.
클러스터의 선두 이외의 섹터는, 본래 유저 데이타를 기록하기 위한 영역으므로, 이것을 데이타 영역이라 칭한다. 제4도는 각 클러스터의 유저 데이타를 보존하는 섹터(이하에서는 데이타 섹터라고 칭함)의 포맷(format)을 도시한다. 도시된 바와 같이, 데이타 섹터는 512바이트의 유저 데이타를 보존하는 데이타 영역 이외에 속성 플래그 및 에러 정정 부호(ECC)를 보유하는 영역을 포함한다. 속성 플래그에는 데이타 섹터인 것을 나타내는 「데이타」 플래그가 셋트된다. 또한, 실시예에서는 동적 섹터 할당을 행하므로, 어드레스 변환표의 항목을 지시하는 역참조 포인터( a reverse pointer)가 속성 플래그의 일부로 기록된다.
데이타 영역에는, 데이타 섹터 이외의 종류의 섹터가 위치되어지는 경우가 있다. 제5도는 클러스터 정보 섹터의 카피를 보유하는 섹터(이하에서는 클러스터 정보 카피 섹터 또는 CIS 카피 섹터라 칭함)의 포맷을 도시한다. 이 섹터는, 자신이 속하는 클러스터와는 다른 클러스터의 관리 정보의 카피를 보관하는 것이다. 도시한 바와 같이, 512 바이트의 데이타 영역에 클러스터 번호와 그 번호를 갖는 클러스터의 관리 정보의 카피가 기록되며, α바이트의 리던던시 영역에 클러스터 정보 섹터인 것을 나타내는 「클러스터 정보 카피」 속성 플래그와 ECC 가 기록되어진다.
제6도는, 불량 정보 섹터의 포맷을 도시한다. 이 섹터는, 자신이 속하는 클러스터 또는 이것과는 다른 클러스터에서 새로이 검출된 불량 데이타 섹터의 번호를 보관하는 것이다. 도시한 바와 같이, 512바이트의 데이타영역에, 클러스터 번호, 이 번호를 갖는 클러스터의 불량 섹터 번호 및 불량 섹터 검출 시점에서의 소거 횟수가 기록되며, α바이트의 리던던시 영역에 불량 정보 섹터인 것을 나타내는 「불량 영역」 속성 플래그와 ECC가 기록되어진다.
제3도 내지 제6도에서 도시한 섹터의 포맷은 예시적인 것이라는데에 주의하여야 한다. 예를 들어 속성 플래그를 512+α 바이트 전체중 최우선으로 액세스되는 영역(워드 라인의 선두)에 위치시켜도 좋다.
3) 다음으로, 제7도를 참조하여, 섹터 기록에 대한 검증(verification)의 결과 불량 데이타 섹터가 발견된 때의 SSF의 동작을 설명하기로 한다.
어느 데이타가 섹터로의 기록을 소정 횟수 이상 행하여도 에러가 발생하는 경우, 콘트롤러는 이 섹터가 속하는 클러스터의 클러스터번호, 소거 횟수, 섹터 번호를 RAM에 일시적으로 보존한다.(단계 47), 다음에 이들 정보를 현재 유저 데이타를 기록하고 있는 클러스터 다음에 기록해야 할 섹터에 기록하고, 속성 플래그는 「불량 정보」로서 불량 정보 섹터를 작성한다(단계 75). 이후에, 작성된 불량 정보 섹터의 위치(클러스터 번호와 섹터 번호)를 불량 정보 위치표에 등록한다(단계 76). 불량 정보 위치표에는, 불량 정보 섹터에 포함되는 클러스터 번화와 상기 섹터의 위치에 대응 관계를 기록한다. 예를 들어, 클러스터 번호에 의해 정해지는 항목에 이 번호를 포함한 불량 정보 섹터의 위치가 등록된다.
이와 같이, 불량 섹터를 발견하면, 불량 정보 섹터를 플래쉬 메모리에 작성하므로, 관련 불량 섹터 맵을 갱신하기 전에 전원 차단이 발생하여도 불량 정보는 유지된다.
4) 제8도 내지 제11도를 참조하여, 클러스터 소거 및 클러스터 초기화에 관하여 SSF의 동작(콘트롤러가 실행하는 소거 프로그램 및 초기화 프로그램)을 설명하기로 한다.
제8도는, 클러스터 소거 동작의 플로우챠트이다. 어느 클러스터 Cn이 그의 유효 섹터수가 일정수 이하로 되는 등의 조건에 일치한 경우, 콘트롤러는 그 클러스터를 소거 대상으로 정한다(단계 80). 다음에, 클러스터 Cn중의 유효 데이타를 다른 클러스터에 보관하기 위한 가비지 콜렉션(불필요한 정보 수집)(garbage collection)을 행하지만(단계 81), 이에 대한 설명은 후술하기로 한다.
가비지 콜렉션 후, 콜트롤러는 클러스터 Cn의 CIS를 판독하여 RAM에 보존한다. 다음에, 현재 유저 테이타가 기록되는 클러스터 다음에 기록해야 할 위치의 섹터에 Cn의 클러스터 번호와 판독한 관리 정보를 기록하고, 또한 「클러스터 정보 카피」 플래그와 계산한 ECC를 기록하여 클러스터 정보카피 섹터를 작성한다(단계 83). 작성된 CIS 카피 섹터의 위치를 CIS 카피 위치표에 등록한 후, 콘트롤러는 클러스터 Cn을 소거한다(단계 84, 85). CIS카피 위치 또는, CIS카피 섹터에 포함되는 클러스터 번호와 상기 섹터의 위치의 대응 관계를 기록한다. 예를 들어, 클러스터 번호에 의해 정해지는 항목에, 그 번호를 포함하는 CIS 카피 섹터의 위치가등록된다.
이와 같이, 클러스터를 소거하기 전에 CIS 카피 섹터를 플래쉬 메로리에 작성하므로, 소거중에 전원 차단이 발생하여도 클러스터 관리 정보는 상실되지 않는다.
제9도는 클러스터 초기화의 플로우챠트이다. 여기서 말하는 초기화는, 소거 완료의 클러스터에 클러스터 정보 섹터를 작성하여 데이타 영역에 유저 데이타를 기록할 수 있는 상태로 하는 것이다. 공백 섹터(blank sector)만으로 이루어지는 클러스터가 없어지게 되는 등의 조건이 성취된 때, 콘트롤러는 소거 완료된 1 개 이상의 클러스터중에서 소거 횟수 등을 고려하여 초기화를 행해야 할 클러스터 Cm을 선택한다(단계 90). 다음에, CIS 카프 위치표에 표시된 클러스터 Cm에 대한 CIS카피 섹터를 판독하여 Cm의 관리 정보를 재구성한다. 이때, 소거 횟수는 카운트업된다(단계 91). 다음에, 불량 정보 위치표에 표시된 클러스터 Cm에 대한 불량정보 섹터를 판독하고, 불량정보 섹터의 정보에 의거하여 불량 섹터 맵을 갱신하다(단계 92).
그후 클러스터 Cm의 선두에 클러스터 정보 섹터를 작성한다. 만일 선두 섹터로의 기록이 실패로 종료한 경우, 또는 CIS 카피 섹터중의 관리 정보(예를 들어, 불량 섹터 맵의 선두 비트)가 선두 섹터가 불량함을 표시하고 있는 경우에는 2번째 이후의 불량이 아닌 위치에서 클러스터 정보 섹터를 작성한다(단계 93). 클러스터 정보 섹터에 반영된 CIS카피 섹터의 위치 정보는 CIS 카피 위치로부터 클리어(clear)되며, 불량 정보 섹터의 위치 정보는 불량 정보 위치표로부터 클리어된다(단계 94)
다음에, 가비지 콜렉션의 상세를 2 개의 예에 입각하여 설명하기로 한다. 제10도는, 데이타 영역을 선두부터 최후까지 순서대로 판독하는 경우의 플로우챠트이다. 판독된 석테의 속성 플래그로부터 CIS 카피 섹터인 것으로 판명된 경우, 콘트롤러는 이곳에 유효한 정보가 있는지 없는지 따라서 다른 섹터에 카피하여야 하는지 여부를 판단한다(단계 102). 구체적으로는, CIS 카피 섹터가 보유하는 클러스터 Cx의 소거 횟수 Ex를, 클러스터 Cx의 CIS에 실제로 기록되어 있는 소거 횟수 Ea와 비교한다. Ex와 Ea가 동일하면, CIS 카피 섹터를 유효 데이타로 간주한다. 또한, 클러스터 Cx가 소거되어 있는 상태일때도, 유효한 것으로 간주한다. 이들 이외의 경우는, 오래된 무효 데이타(invalid data)로서 취급한다. 이것에 의해 CIS 카피 섹터가 무효 데이타로서 소거되어 버리는 것을 방지한다. 또한 클러스터가 소거되어 있는 상태에 있는 것은 후술하는 제 14도의 단계(142)에서 판단한다.
판독한 섹터가 불량 정보 섹터인 것으로 판단한 경우도, 동일한 판단을 한다(단계 104). 구체적으로는, 불량 정보 섹터가 보유하는 소거 횟수와 실제 CIS에 기록되어 있는 소거 횟수를 비교한다. 양자가 동일하면, 불량 정보를 유효하다고 간주한다. 또한 클러스터 Cx가 소거되어 있는 상태인 때에도, 유효하다고 간주한다. 이들 이외의 경우는, 불량 정보는 CIS에 반영을 완료한 것으로 하고 무효 데이타로서 취급한다. 이것에 의해 불량 섹터 맵의 갱신이 행해지기 전에 그 불량 정보 섹터가 무효 테이타로서 소거되어 버리는 것을 방지한다.
판독된 섹터가 데이타 섹터인 경우도, 카피해야 할 유효한 섹터인가 아닌가를 판단한다(단계 105). 구체적으로는, 역참조 포인터에 의해 어드레스 변환표를 참조하여 그것에 기록되어 있는 물리 어드레스를 구하며, 이것을 자신의 물리 어드레스와 비교한다. 양자가 일치하면 유효 섹터이므로, 현재 유지 데이타를 기록하고 있는 클러스터 다음에 유저 데이타를 기록해야 할 위치에 그 섹터를 카피한다(단계 106). 그후 판독된 섹터가 유효한 CIS 카피 섹터인 경우에는 CIS 카피 위치표를 갱신하고, 유효한 불량 정보 섹터인 경우에는 불량 정보 위치표를 갱신한다(단계 107).
5) 제11도는, 각 데이타 섹터의 유효성(validity)이 미리 기록되어 있는 경우에 그 기록 및 CIS 카피 위치표 및 불량 정보 위치표를 활용하여 행하는 가비지 콜렉션의 플로우 챠트이다. CIS 카피 섹터가 소거 대상 클러스터에 있으면, 제10도의 단계(102)와 동일한 방법으로 불량 정보 섹터가 있을때는 단계(104)와 동일한 방법으로, 각각 유효성을 판단한다(단계 112, 117).
제12도 및 제13도를 참조하여 어드레스 변환표를 재구성함에 있어서 SSF의 동작(콘트롤럭 실행하는 어드레스 변화표 재구성 프로그램)에 대해서 설명하기로 한다. 어드레스 변환표는 동적 섹터 할당을 실행함에 있어서 필수이지만 RAM 상에서 작성되는 것이므로 전원을 턴 오프(turn off)하면 상실된다. 그러므로 시스템을 개시할 때에 모든 클러스터내의 모든 섹터를 판독하여 어드레스 변환표를 재구성한다.
소정의 클러스터의 선두에 위치하는 CIS의 판독에 성공한 후, 콘트롤러는 데이타 영역의 섹터를 선두부터 최후까지 순차 판독한다(단계 121, 122, 132, 135). 판독에 실패한 섹터에 대해서는, 그 위치를 일시적으로 RAM에 보존한다. CIS 카피 섹터 또는 불량 정보 섹터인 경우는, 제10도의 단계(102, 104)와 동일하게 유효성을 판단한다(단계 125, 128). 판독된 섹터가 유효한 CIS 카피 섹터인 경우에는 CIS 카피 위치표를 갱신하고, 유효한 불량 정보 섹터인 경우에는 불량 정보 위치표를 갱신한다.(단계 126, 129). 데이타 섹터인 경우는, 역참조 포이터에 의해 지시되는 어드레스 변환표의 항목에 물리 어드레스를 등록한다(단계 130).
데이타 영역의 판독을 종료한 후, 단계(131)에서 보존한 판독 실패 섹터의 위치와 CIS의 불량 섹터 맵에 등록된 불량 섹터의 위치를 비교한다(단계 133). 판독 실패 섹터의 위치가 미등록의 경우에는 에러 메시지를 예를 들어 표시장치(제1도, 24)에 표시한다(단계 134).
6) 상술한 바와 같이, 클러스터를 소거할 때와 어드레스 변환표를 재구성할 때에, SSF는 클러스터 정보 섹터를 판독한다. 그러나, 시스템 장해등에 의해 소거 또는 초기화가 실패로 종료한 경우에는, 클러스터 관리 정보의 내용이 흐트러져 ECC 정정 불능 에러가 발생된다. 즉, 선두 섹터의 판독은 실패로 종료한다. 또한, 본 실시예에서는, 클러스터의 선두 섹터가 불량인때의 클러스터 정보 섹터는, 그 다음 섹터 즉 데이타 영역의 선두 섹터이다. 이때도, 선두 섹터의 판독은 실패로 종료한다.
제14도는 클러스터 소거 또는 어드레스 변환 재구성시 등에 있어서의 클러스터 선두 섹터의 판독 및 그 판독이 실패한 때의 클러스터 관리 정보의 획득에 관계하는 동작의 플로우 챠트이다. 선두 섹터를 판독하고 정정 불능 에러가 검출되지 않은 경우, 단계(146)에서 속성 플래그를 조사한다. 「클러스터 정보」인 것이 확인되면, 관리 정보를 종류마다 나누어서 RAM에 보존한다(단계 147).
단계(141)에서 에러가 검출되는 경우에는, 해당 클러스터가 소거되어 있는 경우도 포함된다. 다음에 단계(142)에서, 해당 클러스터가 소거 완료되었는지 아닌지를 판단한다. 구체적으로는 선두 섹터의 비트 패턴(bit pattern)을 소거 완료된 경우의 특정의 비트 패턴과 비교한다. 양자가 일치한 때는 소거 완료이며 즉시 처리를 종료한다.
본 실시예에서는, 선두 섹터가 불량인 경우, 데이타 영역중의 다른 어떤 속성을 갖는 섹터보다도 전에, 클러스터 정보 섹터가 위치한다. 이 경우 콘트롤러는, 단계(143)에서 정정 불능이라고 판단한 경우도, 정정불능 에러를 유발시키지 않는 섹터가 발견될 때까지 섹터의 판독과 에러 검출을 반복한다(단계 144, 145, 143).
단계(146)의 판단 결과, 올바르게 판독한 섹터가 클러스터 정보 섹터가 아니면, 클러스터 정보 섹터가 본래 있어야 할 위치에 없는 것을 의미한다. 이와 같은 상황은, 클러스터 정보 섹터를 포함하는 블록을 소거하고 있는 동안 또는 클러스터 정보 섹터가 판독 불량으로된 때에 발생한다. 다음에 단계(148)로 진행하여 다른 모든 클러스터내의 모든 섹터를 조사하여 클러스터 관리 정보를 보관하고 있는 클러스터 정보 카피 섹터를 탐한다. 일단 발견되면, 소거를 다시 행한 후 그 클러스터 정보 카피 섹터로부터 관리 정보를 인출(fetch)하고 크러스터의 선두 섹터에 카피하여 클러스터 정보 섹터를 작성함으로써 초기화를 행한다. 만일 선두 섹터로의 기록이 실패로 종료하면 그 다음 섹터를 클러스터 정보 섹터로 한다(단계 150). CIS 카피 섹터가 없는 경우는, 치명적인 에러가 발생한 것이므로 그러한 취지의 메시지를 유저에게 전달하고 유저의 지시를 기다린다(단계 151). 다음에 제2실시예어서의 섹터 및 클러스터의 관리에 대하여 설명하기로 한다.
7) 제15도에서 도시한 바와 같이, 물리적 소거 단위인 블록을 M 페이지(page)로 분할한다. 1페이지의 사이즈는 256+β 바이트 (256 - 섹터 사이즈의 절반, β는 시스템이 사용하는 수개 바이트의 리던던시 영역)이다.
페이지를 어떻게 구성하는가는, 일반적으로는 사용하는 칩(chip)의 물리적인 사양(physical requirements)에 의존하지 않는다. 예를 들어, 바이트 단위로 독립적으로 엑세스 할 수 있도록 한 칩에 대해서는 단순히 256+β 바이트를 논리적인 블록으로서 취급할수 있다. 또한, 물리적인 페이지 길이(워드 라인 길이)가 256+β 바이트이도록 한 전용 칩(a dedicated chip)을 사용하여도 좋다. 제15도와 제16도는, 후자의 전용 칩을 사용하는 경우를 도시한 것이다.
8) 우수개의 블록으로 구성되는 집합을 만들어 논리적인 소거 단위인 클러스터를 형성한다. 콘트롤러는 클러스터를 단위로서 소거를 행한다. 제16도에 도시한 바와 같이, 이들 블록을 절반씩의 그룹으로 분할하여 각각을 다른 칩상에 할당한다.
클러스터를 형성하는 블록의 칩상으로는 할당법은 일반적으로는 임의적인 방법으로 행해진다. 여기서는 데이타 전송 속도 향상을 목적으로서 2개 칩을 동시에 활성화시키기 위해 제16도에서 도시한 바와 같은 블록의 할당법을 취하고 있다. 즉, 4개 블록을 1개 클러스터로 하고 2개 블록씩을 다른 칩에 할당하고 있다. 이와 같이 하면, 콘트롤러와 플래쉬 메모리간의 버스폭은 2배로 할 수 있다. 다시 2 배의 버스폭이 필요하면 클러스터를 형성하는 블록을 1/4씩의 그룹으로 분할하여 각각을 4개의 다른 칩에 할당할 수도 있다. 이 경우 1 페이지 길이는 128+γ 바이트가 된다.
9) 1개의 물리 섹터를 반드시 복수(여기서는 2개)의 블록에 할당하도록 배치한다. 또한 섹터 전체에 대하여 ECC 패리티를 부가하고 있다.
물리섹터의 길이는 512+α 바이트이며, 이것을 수용하기 위해서는 2개의 페이지를 필요로한다. 이하, 1개의 물리 섹터를 수용하는 2개의 페이지를[「페이지 쌍(page pair)」이라 칭함]. 본 실시예에서는, 각 페이지 쌍을 제16도의 Pa(X)와 Pb(X)와 같이 할당함으로써 각 페이지가 서로 다른 칩내에 있고, 따라서 다른 블록내에 있도록 배열되어 있다.
10) 각 클러스터의 선두 섹터에 클러스터 정보 섹터를 작성하고[제16도의 Pa(0)와 Pb(0)], 제1실시예와 동일하게 클러스터 소거 횟수, 클러스터내의 불량 섹터 맵 등 각 클러스터 고유의 관리 정보를 패리티 코드를 부가하여 저장한다. 제17도는, 본 실시예의 클러스터 정보 섹터의 포맷을 도시한다. 제1실시예와 다른 점은, 클러스터 관리 정보가 페이쌍의 각 페이지 각각에 중첩하여 기록할 수 있다는 것이다.
이중화되어 있는(duplicated) 페이지 쌍내의 관리 정보 전체(「클러스터 정보」 속성 플래그를 포함)에 대해 ECC 패리티를 계산하여 이것을 페이지쌍 내 리던던시 영역(α=2β 바이트)에 기록한다. 계산된 ECC 패리티 비트의 절반이 Pa(0)의 ECC 부분은 서로 다르다. ECC 부분을 제외하고 양 페이지는 모두동일 내용을 보존한다.
이와 같이, 클러스터 관리 정보를 2개의 페이지에 중복하여 보유하도록 하므로, 워드 라인 불량에 의해 클러스터 관리 정보가 한꺼번에 상실되는 일은 없다. 또한, 그 2개의 페이지를 다른 블록에 할당하므로 블록 불량에 의해 클러스터 관리 정보가 한꺼번에 상실되는 일도 없다. 제16도에서는, 클러스터 정보 섹터 이외의 섹터에 대해서도 페이지쌍을 2개의 블록에 할당하였다. 일반적으로는, 클러스터 정보 섹터를 구성하는 페이지쌍을 다른 칩에 할당하고 그외의 섹터의 페이지쌍은 동일 블록에 할당하도록 하여도 블록 장해에 대한 내성(endurance)을 충분히 높힐 수 있다.
제1실시예에서는, 클러스터의 선두에 클러스터 정보 섹터 이외의 섹터가 위치하는 일이 없지만 본 실시예에서는 대체 CIS 포인터 섹터가 위치 할 수 있다. 제18도에서 도시된 바와 같이 대체 CIS포인터 섹터는 클러스터의 선두 섹터의 한쪽 페이지가 불량인 경우에 다른쪽의 페이지에 대채 CIS의 어드레스를 보유하는 것이다.
제19도는 그 포맷을 도시한 것이다. 1페이지의 선두에 클러스터 관리 정보를 저장하는 대체 섹터의 어드레스(포인터)가 기록되며 β 바이트 리던던시 영역에 대체 섹터 포인터인 것을 나타내는 속성 플래그와 ECC가 기록되어진다.
통상, 대체 CIS로서는 클러스터의 제 2 섹터가 선택되어지게 되지만, 그 섹터에 관하여 불량 섹터 맵에 「불량」 플래그가 셋트되어 있는 경우에는, 다음 섹터를 대체 CIS 섹터로 하도록 순차로 선택해간다.. 대체 CIS 섹터로서 선택된 섹터는 통상의 클러스터 정보 섹터와 동일한 포맷을 갖고 있다. 데이타 섹터, 클러스터 정보 카피 섹터, 불량 정보 섹터의 포맷은 제4도 내지 제6도에서 도시한 것과 동일하다.
11) 본 실시예에 있어서의 불량 데이타 섹터 발견시, 소거시, 초기화시 및 어드레스 변환표 작성시의 SSF의 동작은 제 1실시예와 동일하다. 단, 클러스터 정보가 이중화되어 있고 대체 섹터 포인터가 제공되어 있으므로, 클러스터 선두 섹터의 판독 및 그 판독 실패시의 클러스터 관리 정보의 획득에 관련하는 동작은 제1실시예와 다르다. 제20도와 제21도는 본 실시예에서의 동작에 대한 플로우챠트이다.
선두 섹터를 판독함으로써 정정 불능 에러가 검출되지 않는 경우, 단계(216)로 진행하여 즉시 관리 정보를 종류별로 분할하여 RAM에 보존한다.
정정 불능 에러가 검출된 경우에는, 클러스터 정보 섹터를 페이지별로 각각 판독한다. 우선, Pa(0)를 판독하여 그 데이타의 정합성을 각종의 관리 정보중에 부가한 Pa(0)에 대한 패리티 코드에 의해 검사한다(단계 204). 정확한 데이타이면, 단계(208)로 진행한다. 단계(208)에서는 Pa(0)의 속성 플래그를 검사한다.
판독한 Pa(0)의 데이타가 부정확하면, 페이지 Pb(0)를 판독하여 그 데이타의 정합성을 Pb(0)에 대한 패리티 코드에 의해 검사한다(단계 206). 정확한 데이타면 단계(209)로 진행하여 Pb(0)의 속성 플래그를 검사한다.
선두 섹터의 어느 페이지의 내용도 정확하지 않으면, CIS 카피 섹터를 탐색하여 이것이 발견되면, 단계(212)로 진행하여 제14도의 단계(149)와 동일하게 하여 CIS를 회복한다. 발견되지 않으면, 단계(213)로 진행하여 제14도의 단계(15)와 마찬가지로 에러 표시 등의 처리를 행한다.
단계(214)에서 불량이 아닌 페이지 Pa(0) 또는 Pb(0)의 속성을 검사한 결과, 상기 페이지가 CIS를 구성하는 페이지의 한쪽인 경우에는 대체 CIS섹터와 대체 CIS 섹터 포인터가 아직 만들어지지 않은 것을 의미한다. 따라서, 다음에 행해지는 클러스터 초기화시에 대체 CIS와 대체 CIS포인터 섹터를 작성하기 위하여 상기 클러스터 번호 및 선두 섹터중 어느 페이지가 불량 페이지인가를 RAM에 보존한다(단계 215). 그후에 단계(216)로 진행하여 상기 페이지에 포함되어 있던 관리 정보를 종류별로 분할하여 RAM에 보존 한다.
Pa(0) 또는 Pb(0)의 속성이 「대체 CIS 포인터」인 경우, 단계(217)로 진행하여, 지시되는 대체 CIS를 판독하고 관리 정보를 인출한다.
또한, 실제로는 단계(201)와 단계(202) 사이에 제14도의 단계 (142)에 상당하는 단계가 존재하지만, 설명의 편의상 제20도에서는 이것은 생략하였다.
이상, 특정의 두 실시예를 설명하였지만, 본 발명의 적용범위는 이들에 한정되는 것은 아니다. 예를 들어, 특원평 5-35228호의 명세서에서와 같이 클러스터에 순서 번호가 기록되며, 소거 및 초기화될 때마다 순서 번호가 다시 기록되어지는 SSF에서는 제 11도의 단계(112, 117)나 제12도의 단계(125, 128)에 있어서 소거 횟수 대신에 순서 번호를 비교하도록 할 수도 있다.
[발명의 효과]
이상과 같이, 본 발명에 의하면, 일괄 소거형 비휘발성 메모리를 사용하는 반도체 디스크 장치에서의 전원 차단 등의 장해에 대한 내성이 개선된다.

Claims (14)

  1. 복수의 클러스터로 구성된 일괄 소거형 비휘발성 메모리에 있어서, 상기 클러스터는 복수의 섹터로 구성되어 있고, 클러스터 단위로 소거하는 것이 가능하며, 각 클러스터에는 자신의 관리정보(management information)를 기억하기 위한 클러스터 정보 섹터가 제공되어 있으며, 각 클러스터의 클러스터 정보 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보(attribute information)가 기록되며, 유저 데이타(user data)를 기록하는 섹터에는 데이타 섹터인 것을 나타내는 속성 정보가 기록되며, 상기 클러스터 정보 섹터는 클러스터 소정 위치에 위치되며, 상기 데이타 섹터는 클러스터의 상기 소정 위치 이외의 영역인 데이타 영역에 위치되며, 소정의 클러스터 데이타 영역에는 다른 클러스터의 관리 정보의 카피(copy)를 기억하기 위한 섹터가 포함되며, 또한 상기 섹터에는 상기 다른 클러스터의 식별자(identifier)와 클러스터 정보 카피 섹터임을 나타내는 속성정보가 기록되는 일괄 소거형 비휘발성 메모리.
  2. 복수의 클러스터로 구성된 일괄 소거형 비휘발성 메모리에 있어서, 상기 클러스터는 복수의 섹터로 구성되어 있고, 클러스터 단위로 소거하는 것이 가능하며, 각 클러스터에는 자신의 관리 정보(management information)를 기억하기 위한 클러스터 정보 섹터가 제공되어 있으며, 각 클러스터의 클러스터 정보 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보(attribute information)가 기록되며 유저 데이타(user data)를 기록하는 섹터에는 데이타 섹터인 것을 나타내는 속성 정보가 기록되며, 상기 클러스터 정보 섹터는 클러스터의 소정 위치에 위치되며, 상기 데이타 섹터는 클러스터의 상기 소정 위치 이외의 영역인 데이타 영역에 위치되며, 상기 관리 정보는 클러스터 소거 횟수(cluster erase counts)와 불량 섹터 맵(a bad sector map)을 포함하며, 소정의 클러스터의 데이타 영역내의 한 섹터가, 상기 클러스터 또는 다른 클러스터내의 불량섹터로서 관련된 클러스터 정보 섹터의 위치를 저장하고, 또한 상기 섹터에는 상기 불량 섹터를 포함하는 클러스터의 식별자와 불량 정보 섹터인 것을 나타내는 속성 정보가 기록되어 있는 일괄소거형 비휘발성 메모리.
  3. 복수의 클러스터로 구성된 일괄 소거형 비휘발성 메모리에 있어서, 상기 클러스터는 복수의 섹터로 구성되어 있고, 클러스터 단위로 소거하는 것이 가능하며, 각 클러스터에는 자신의 관리 정보(management information)를 기억하기 위한 클러스터 정보 섹터가 제공되어 있으며, 각 클러스터의 클러스터 정보 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보(attribute information)가 기록되며, 유저 데이타(user data)를 기록하는 섹터에는 데이타 섹터인 것을 나타내는 속성 정보가 기록되며, 상기 각 클러스터, 각각이 물리적 소거 단위(a physical erase unit)이며 복수의 페이지(a plurality of pages)를 포함하는 블록(block)을 우수개 포함하며, 소정의 클러스터 구성하는 블록의 절반의 선두 페이지(top pages)가 상기 소정 클러스터의 클러스터 정보 섹터중 제 1 절반에 할당되어 있으며, 나머지 블록의 선두 페이지가 상기 클러스터 정보 섹터 중 제 2 절반에 할당되고, 상기 소정의 클러스터의 관리 정보는 상기 클러스터의 정보 섹터의 제 1 절반과 제 2절반에 중복해서 기록되어 있는 일괄소거형 비휘발성 메모리.
  4. 제3항에 있어서, 상기 클러스터 정보 섹터의 제 1 절반과 제 2 절반은 서로 다른 메모리칩에 할당되어 있는 일괄소거형 비휘발성 메모리.
  5. 제4항에 있어서, 상기 클러스터 정보 섹터중 한쪽 절반이 불량이면, 상기 소정의 클러스터 데이타 영역에 대체 클러스터 정보 섹터(a replacement-cluster-information sector)가 위치되며, 또한 상기 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보가 기록되며, 상기 클러스터 정보 섹터의 다른쪽 절반에 상기 대체 클러스터 정보 섹터를 지시하는 포인터(pointer)가 기록되어 있는 일괄소거형 비휘발성 메모리
  6. 반도체 디스크 장치에 있어서, 콘트롤러(a controller)와, 상기 콘트롤러에 접속되며, 복수개의 섹터 집합인 클러스터를 단위로서 소거할 수 있으며, 각 클러스터에 자신의 관리 정보를 기억하기 위한 클러스터 정보 섹터가 제공되며, 각 클러스터의 클러스터 정보 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보가 기록되며, 유저 데이타를 기록하는 섹터에는 데이타 섹터인 것을 나타내는 속성 정보가 기록되는 일과 소거형 비휘발성 메모리를 포함하며, 상기 클러스터 정보 섹터는 클러스터의 소정 위치에 위치되며, 상기 데이타 섹터는 클러스터의 상기 소정 위치 이외의 영역인 데이타 영역에 위치되며, 상기 콘트롤러는, 소정의 클러스터를 소거하기 전에, 그 클러스터 정보 섹터에 포함되는 관리 정보를 판독하고, 상기 소정 클러스터의 식별자와 상기 관리 정보를 상기 소정 클러스터 이외의 클러스터의 데이타 영역의 섹터에 기록하며, 또한 상기 기록된 섹터에 클러스터 정보 카피 섹터인 것을 나타내는 속성 정보를 셋트(set)하는 반도체 디스크 장치.
  7. 제6항에 있어서, 상기 관리 정보는 클러스터 소거 횟수를 포함하며, 상기 콘트롤러는, 소거 대상인 소정의 클러스터에 포함되는 클러스터 정보 카피 섹터의 유효성(validity)을 상기 클러스터 정보 카피 섹터에 보존되어 있는 소거 횟수와 상기 섹터에 의해 지시되는 클러스터의 클러스터 정보 섹터에 보존되어 있는 소거 횟수를 비교하여 판단하고, 유효인 경우에는, 상기 소정의 클러스터를 소거하기 전에, 상기 클러스터 정보 카피 섹터를 다른 클러스터의 데이타 영역에 카피하는 반도체 디스크 장치.
  8. 제6항에 있어서, 상기 콘트롤러는 소정의 클러스터를 소거 후에 초기화할 때 소거전에 작성된 상기 소정 클러스터의 식별자를 포함하는 클러스터 정보 카피 섹터로부터 관리 정보를 재구성하고, 상기 소정 클러스터에 클러스터 정보 섹터를 작성하는 반도체 디스크 장치.
  9. 제6항에 있어서, 상기 콘트롤러는 소정 클러스터의 클러스터 정보 섹터의 판독에 실패한 때 상기 소정 클러스터의 식별자를 포함하는 클러스터 정보 카피 섹터의 탐색(search)을 행하는, 반도체 디스크 장치.
  10. 반도체 디스크 장치에 있어서, 콘트롤러(a controller)와, 상기 콘트롤러에 접속되며, 복수개의 섹터 집합인 클러스터를 단위로서 소거할 수 있으며, 각 클러스터에 자신의 관리 정보를 기억하기 위한 클러스터 정보 섹터가 제공되며, 각 클러스터의 클러스터 정보 섹터에는 클러스터 정보 섹터인 것을 나타내는 속성 정보가 기록되며, 유저 데이타를 기록하는 섹터에는 데이타 섹터인 것을 나타내는 속성 정보가 기록되는 일괄 소거형 비휘발성 메모리를 포함하며, 상기 클러스터 정보 섹터는 원칙적으로 클러스터의 소정 위치에 위치되며, 상기 데이타 섹터는 클러스터의 상기 소정 위치 이외의 영역인 데이타 영역에 위치되며, 상기 관리 정보는 불량 섹터 맵을 포함하며, 상기 콘트롤러는 소정의 클러스터에서 불량 섹터를 검출한 때, 상기 클러스터의 식별자와 상기 불량 섹터의 식별자와 상기 클러스터의 소거 횟수를 현재 유저 데이타가 기록되는 클러스터의 섹터에 기록하고, 또한 상기 기록된 섹터에 불량 정보 클러스터인 것을 나타내는 속성 정보를 셋트하는 반도체 디스크 장치.
  11. 제10항에 있어서, 상기 클러스터 정보는 클러스터 소거 횟수를 포함하며, 상기 콘트롤러, 소거 대상인 소정의 클러스터에 포함되는 불량 정보 섹터의 유효성을 상기 불량 정보 섹터에 보존되어 있는 소거 횟수와 상기 섹터에 의해 지시되는 클러스터의 클러스터 정보 섹터에 보존되어 있는 소거 횟수를 비교하여 판단하고, 유효인 경우에는 상기 소정의 클러스터를 소거하기 전에, 상기 불량 정보 섹터를 다른 클러스터의 데이타 영역에 카피하는 반도체 디스크 장치
  12. 제10항에 있어서, 상기 콘트롤러는 소정의 클러스터를 소거후에 초기화한때, 소거전에 작성된 상기 소정 클러스터의 식별자를 포함한 불량 정보 섹터를 참조하여 상기 소정 클러스터의 불량 섹터 맵을 갱신(update)하는 반도체 디스크 장치
  13. 제6항에 있어서, 상기 콘트롤러에 접속된 랜덤 액세스 메모리(random access memory)를 더구비하고, 상기 랜덤 액세스 메모리에는, 상기 콘트롤러에 접속된 프로세서로부터의 코맨드(command)에 포함되는 논리 어드레스(a logical address)를 특정 섹터를 지시하는 물리 어드레스 (a physical address)로 변환하기 위한 어드레스 변환표 (an address translation table)가 제공되고 있으며, 상기 콘트롤러 개시(starting up)시에 상기 메모리의 전체 섹터를 판독하여 상기 어드레스 변환표를 재구성할때에, 검출된 클러스터 정보 카피 섹터에 포함되는 클러스터 식별자와 상기 섹터의 위치의 대응 관계(associativity)를 상기 랜덤 액세스 메모리상의 상기 어드레스 변환표와는 다른 표에 기록하는 반도체 디스크 장치.
  14. 제10항에 있어서, 상기 콘트롤러의 접속된 랜덤 액세스 메모리를 더 구비하며, 상기 랜덤 액세스 메모리는, 상기 콘트롤러에 접속된 프로세서로부터의 코맨드에 포함되는 논리 어드레스를 특정 섹터를 지시하는 물리 어드레스로 변환하기 위한 어드레스 변환표가 제공되며, 상기 콘트롤러는 개시 시에 상기 메모리의 전체 섹터를 판독하여 상기 어드레스 변환표를 재구성할때에, 검출된 불량 정보 섹터에 포함되는 클러스터 식별자와 상기 섹터 위치의 대응 관계를 상기 랜덤 액세스 메모리상의 상기 어드레스 변환표와는 다른 표에 기록하는 반도체 디스크 장치.
KR1019940004327A 1993-03-11 1994-03-07 일괄 소거형 비휘발성 메모리 KR0128218B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP5024793A JP3078946B2 (ja) 1993-03-11 1993-03-11 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
JP93-50247 1993-03-11

Publications (2)

Publication Number Publication Date
KR940022572A KR940022572A (ko) 1994-10-21
KR0128218B1 true KR0128218B1 (ko) 1998-04-15

Family

ID=12853663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940004327A KR0128218B1 (ko) 1993-03-11 1994-03-07 일괄 소거형 비휘발성 메모리

Country Status (4)

Country Link
US (1) US5734816A (ko)
EP (1) EP0615184A3 (ko)
JP (1) JP3078946B2 (ko)
KR (1) KR0128218B1 (ko)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
US6081878A (en) * 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
KR100308173B1 (ko) 1996-02-29 2001-11-02 가나이 쓰도무 부분불량메모리를탑재한반도체기억장치
GB9606928D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Memory devices
JP3538202B2 (ja) * 1996-07-19 2004-06-14 東京エレクトロンデバイス株式会社 フラッシュメモリカード
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
JPH10255489A (ja) * 1997-03-13 1998-09-25 Mitsubishi Electric Corp マイクロコンピュータ
PL335753A1 (en) * 1997-03-21 2000-05-22 Canal Plus Sa Computer memory organisation
US6560702B1 (en) 1997-12-10 2003-05-06 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation
US6009520A (en) * 1997-12-10 1999-12-28 Phoenix Technologies, Ltd Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM
US6202090B1 (en) * 1997-12-11 2001-03-13 Cisco Technology, Inc. Apparatus and method for downloading core file in a network device
JP2990181B1 (ja) 1998-09-28 1999-12-13 日本電気アイシーマイコンシステム株式会社 フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6247152B1 (en) * 1999-03-31 2001-06-12 International Business Machines Corporation Relocating unreliable disk sectors when encountering disk drive read errors with notification to user when data is bad
US6426928B1 (en) 1999-03-31 2002-07-30 International Business Machines Corporation Ability to distinguish true disk write errors
US6332204B1 (en) 1999-03-31 2001-12-18 International Business Machines Corporation Recovering and relocating unreliable disk sectors when encountering disk drive read errors
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US6678203B1 (en) * 1999-08-27 2004-01-13 Sony Corporation Editing apparatus, editing method, and non-volatile memory
WO2001024014A1 (en) * 1999-09-27 2001-04-05 Zf Micro Devices, Inc. Embedded computer system and method with flash memory interface
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6536038B1 (en) * 1999-11-29 2003-03-18 Intel Corporation Dynamic update of non-upgradeable memory
JP4364384B2 (ja) * 2000-02-01 2009-11-18 富士通マイクロエレクトロニクス株式会社 短時間でイレーズ動作を行う不揮発性メモリ
US20040181731A1 (en) * 2000-04-12 2004-09-16 Advantest Corporation Semiconductor test system storing pin calibration data, commands and other data in non-volatile memory
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
JP4467728B2 (ja) * 2000-07-28 2010-05-26 富士通マイクロエレクトロニクス株式会社 半導体記憶装置
US6715036B1 (en) * 2000-08-01 2004-03-30 International Business Machines Corporation Method, system, and data structures for transferring blocks of data from a storage device to a requesting application
JP2002351685A (ja) * 2001-05-22 2002-12-06 Sankyo Seiki Mfg Co Ltd 不揮発性メモリのデータ更新方法及び制御装置
US7000063B2 (en) * 2001-10-05 2006-02-14 Matrix Semiconductor, Inc. Write-many memory device and method for limiting a number of writes to the write-many memory device
PL351779A1 (en) * 2002-01-18 2003-07-28 Advanced Digital Broadcast Ltd Apparatus for storing data and method of subdividing te data storage area
US6675281B1 (en) * 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US6909910B2 (en) 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US6621746B1 (en) * 2002-02-27 2003-09-16 Microsoft Corporation Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
EP1523711A1 (en) * 2002-06-19 2005-04-20 Tokyo Electron Device Limited Memory device, memory managing method and program
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7082512B2 (en) * 2002-11-21 2006-07-25 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
EP1437888A3 (en) * 2003-01-06 2007-11-14 Samsung Electronics Co., Ltd. Video recording and reproducing apparatus
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US8706990B2 (en) 2003-10-28 2014-04-22 Sandisk Technologies Inc. Adaptive internal table backup for non-volatile memory system
TWI254947B (en) * 2004-03-28 2006-05-11 Mediatek Inc Data managing method and data access system for storing all management data in a management bank of a non-volatile memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7395384B2 (en) * 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
JP4332108B2 (ja) * 2004-12-28 2009-09-16 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
TW200705180A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc Adjustable flash memory management system and method
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7925151B2 (en) * 2007-01-31 2011-04-12 Kobre Kenneth R Device for redirecting and reflecting light from camera flash and methods for using same
US7925822B2 (en) * 2008-01-31 2011-04-12 Sandisk Il Ltd Erase count recovery
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
JP5593254B2 (ja) * 2010-05-12 2014-09-17 パナソニック株式会社 半導体メモリ装置及び半導体メモリシステム
US9076528B2 (en) * 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
US9116862B1 (en) * 2012-01-17 2015-08-25 Amazon Technologies, Inc. System and method for data replication using a single master failover protocol
US8843441B1 (en) 2012-01-17 2014-09-23 Amazon Technologies, Inc. System and method for maintaining a master replica for reads and writes in a data store
TWI509615B (zh) * 2012-08-03 2015-11-21 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9613715B2 (en) 2014-06-16 2017-04-04 Sandisk Technologies Llc Low-test memory stack for non-volatile storage
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US8976609B1 (en) 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001883A (en) * 1974-03-07 1977-01-04 Honeywell Information Systems, Inc. High density data storage on magnetic disk
US5031168A (en) * 1986-02-05 1991-07-09 Information Storage, Inc. Apparatus and method for increasing storage capacity of recording media
JPH02185766A (ja) * 1989-01-11 1990-07-20 Canon Inc 情報記録再生装置
EP0675502B1 (en) * 1989-04-13 2005-05-25 SanDisk Corporation Multiple sector erase flash EEPROM system
CA2014584C (en) * 1990-04-12 1992-06-09 Paul Y. Tsoi C-, t- and s-switches that are mechanically operated by a rotary actuator
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JPH0750558B2 (ja) * 1992-09-22 1995-05-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリ
US5437020A (en) * 1992-10-03 1995-07-25 Intel Corporation Method and circuitry for detecting lost sectors of data in a solid state memory disk
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置

Also Published As

Publication number Publication date
JPH06274409A (ja) 1994-09-30
JP3078946B2 (ja) 2000-08-21
KR940022572A (ko) 1994-10-21
EP0615184A2 (en) 1994-09-14
US5734816A (en) 1998-03-31
EP0615184A3 (en) 1997-02-12

Similar Documents

Publication Publication Date Title
KR0128218B1 (ko) 일괄 소거형 비휘발성 메모리
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US5956473A (en) Method and system for managing a flash memory mass storage system
USRE46404E1 (en) Flash memory management method
JP3215237B2 (ja) 記憶装置および記憶装置の書き込み/消去方法
US6223308B1 (en) Identification and verification of a sector within a block of mass STO rage flash memory
US6381176B1 (en) Method of driving remapping in flash memory and flash memory architecture suitable therefor
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
JP4058322B2 (ja) メモリカード
US5907856A (en) Moving sectors within a block of information in a flash memory mass storage architecture
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
JP3226042B2 (ja) フラッシュEEpromシステム
US8312326B2 (en) Delta checkpoints for a non-volatile memory indirection table
US5379262A (en) Nonvolatile semiconductor memory device
US20030033471A1 (en) Window-based flash memory storage system and management and access methods thereof
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
JPH06111588A (ja) 一括消去型不揮発性メモリ
US20080104361A1 (en) Storage Device, Memory Managing Apparatus, Memory Managing Method, and Program
KR20020009564A (ko) 메모리 시스템
KR100370893B1 (ko) 일괄 소거형 비휘발성 메모리 장치
US8516213B2 (en) Method and apparatus for EEPROM emulation for preventing data loss in the event of a flash block failure
US20100325524A1 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
JP2004220068A (ja) メモリカード及びメモリへのデータ書き込み方法
CN110633056A (zh) 在操作***层面的Flash芯片的页面管理方法及存储设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20001013

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee