KR100963708B1 - 비휘발성 메모리로의 기록에 대한 제한을 제어하기 위한방법 - Google Patents

비휘발성 메모리로의 기록에 대한 제한을 제어하기 위한방법 Download PDF

Info

Publication number
KR100963708B1
KR100963708B1 KR1020077013193A KR20077013193A KR100963708B1 KR 100963708 B1 KR100963708 B1 KR 100963708B1 KR 1020077013193 A KR1020077013193 A KR 1020077013193A KR 20077013193 A KR20077013193 A KR 20077013193A KR 100963708 B1 KR100963708 B1 KR 100963708B1
Authority
KR
South Korea
Prior art keywords
sectors
recording
writing
order
nonvolatile memory
Prior art date
Application number
KR1020077013193A
Other languages
English (en)
Other versions
KR20070095892A (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 KR20070095892A publication Critical patent/KR20070095892A/ko
Application granted granted Critical
Publication of KR100963708B1 publication Critical patent/KR100963708B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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
    • 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/0626Reducing size or complexity of storage systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits

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)

Abstract

모든 섹터를 제 1 순서로 기록하고 이어서 모든 섹터를 제 2 기록 전에 결정되는 다른 제 2 순서로 기록함으로써 데이터 섹터를 저장한다. 하나 이상의 섹터를 2회 기록하는 제 1 기록 동작 세트를 이용하여 섹터를 기록함으로써 섹터를 비휘발성 메모리에 기록한다. 제 1 세트는 각각의 섹터를 1회만 기록하고, 제 2 세트는 메모리 외부로부터의 섹터를 기록한다. 제 1 세트는 제 2 세트보다 적은 메모리 셀을 결합하는 모드로 기록한다. 제 1 세트는 제 2 세트보다 더 낮은 신뢰도로 기록한다.

Description

비휘발성 메모리로의 기록에 대한 제한을 제어하기 위한 방법{A METHOD OF HANDLING LIMITATIONS ON THE ORDER OF WRITING TO A NON-VOLATILE MEMORY}
본 발명은 메모리에 데이터를 저장하는 것에 관한 것으로, 보다 구체적으로는 인입 데이터(incoming stream) 스트림을 비휘발성 메모리에 저장하는 순서에 관한 것이다.
데이터 스트림을 저장하는 경우의 예로는 셀룰러폰에 디지털 오디오(예를 들면, MP3 뮤직 파일)를 기록하는 경우, 디지털 비디오 카메라에 디지털 비디오를 기록하는 경우, 디지털 카메라에 하나 이상의 디지털 정지 화상을 기록하는 경우, 개인용 컴퓨터로부터의 파일을 휴대용 USB 플래시 드라이브에 복사하는 경우를 들 수 있다. 이 모든 경우, 시스템은 비휘발성 메모리 모듈(예를 들면, 플래시 메모리 카드, USB 플래시 드라이브, 내장용 온보드 플래시 메모리 칩 또는 임의의 다른 환경 지원 비휘발성 저장 장치) 및 고정된 크기의 섹터(본 출원명세서에서 용어 "섹터(sector)"는 데이터 소스와 메모리 모듈 간의 데이터 교환의 기본 단위로서 사용되는 데이터의 고정된 크기의 청크(chunk)를 나타낸다)의 시퀀스로서 저장되도록 데이터를 제공하는 데이터 소스를 포함한다. 데이터 소스는 카메라 또는 셀룰러폰을 제어하는 CPU, 하드디스크로부터 사전에 저장된 데이터를 인출하고 데이터를 휴대용 USB 드라이브로 전송하는 호스트 컴퓨터의 CPU, 화상 데이터를 제어하는 센서의 제어기, 또는 데이터 스트림을 제공할 수 있는 기타 요소일 수 있다.
데이터 소스로부터 메모리 모듈로의 데이터 섹터의 도착 순서가 메모리 모듈에 섹터를 기록하는 최선의 순서가 아닌 경우가 있다.
첫 번째 예로, 나중에 판독하는 속도를 최적화하는 방식으로 데이터를 저장하는 경우를 들 수 있다. 2004년 9월 30일 출원된, 발명의 명칭이 "Method of Managing Files for Optimal Performance"인 미국 특허 출원 제10/952,837호에서는 메모리 디바이스 내부의 공간을 할당하는 방법에 의해 판독 성능을 최적화하는 것에 대한 고려가 이루어졌다. 이 특허 출원은 참조로서 본 명세서에 포함된다. 이러한 방법은 데이터가 삭제되거나 변경되기 전에 다수 회 판독될 것으로 예상되는 경우에 매우 유용한데, 그 이유는 데이터를 기록할 때 훨씬 더 중요한 보다 빠른 판독을 위해 데이터를 재배열하는데 보다 많은 시간을 소비하는 것이 비용면에서 효율적이기 때문이다. 이에 대한 바람직한 예로서 MP3 뮤직 파일을 플래시 메모리 기반의 MP3 플레이어로 복사하는 경우를 들 수 있다. 이 경우, 사용자가 새로운 노래를 저장할 공간을 확보하기 위해 기존의 노래를 삭제하기 전에 그 노래는 아마도 다수 회 재생될 것이다. 이와 마찬가지로, 판독 성능이 기록 성능보다 훨씬 더 중요한 경우가 있다. 예를 들면, 게임 콘솔용의 메모리 모듈은 사용자가 오프닝 화면이 나타나는 것을 기다리느라 짜증내지 않도록 가능한 한 빨리 게임 애플리케 이션을 시작해야 하는 반면에, 게임 애플리케이션을 모듈로 사전에 로딩하는 것은 제조 시에 한 번 행해진다. US 10/952,837에 개시된 특정 예는 데이터를 수신하는 순서와 다른 순서로 저장하는 것을 요구하지 않지만, 데이터를 하나의 순서로 수신하고 다른 순서로 사용자에게 제공하는 시스템이 알려져 있다. 예를 들어, Birk 등의 미국 특허 제6,502,139호에는 니어 비디오 온 디맨드(Near Video On Demand) 방법이 개시되어 있는데, 이 방법에서는, 비디오 스트림의 세그먼트가 모두 동시에 전송되고, 제 1 세그먼트에 후속하는 세그먼트들은 전송 전에 서브세그먼트로 분할되며, 제 1 세그먼트에 후속하는 세그먼트의 늦은 서브세그먼트(later subsegment)가 동일 세그먼트의 보다 이른 서브세그먼트(earlier subsegment) 이전에 뷰어에 의해 수신될 수도 있다. 이러한 비디오 전송을 보관하기를 원하는 뷰어는 이들을 진정한 순서로 저장하기 위해 세그먼트들 및 서브세그먼트들을 재정렬할 필요가 있다. 이 예를 요약하면, 섹터의 시퀀스가 데이터 소스에 의해 메모리 모듈로 제공되어, 각각의 데이터 섹터가 저장되도록 하나의 기록 동작을 요구하며, 섹터가 메모리에 저장되는 순서는 섹터가 원래 수신되는 순서와 다를 것이 요구된다. 일부 메모리 기술에서는, 각각의 섹터 도착 시에 이들 각각을 최종 목표 위치에 기록함으로써 요구된 순서 치환을 수행하는 것이 가능하다. 그러나, 많은 메모리 기술은 랜덤 순서의 기록을 허용하지 않는다. 예를 들면, MLC(Multi-Level-Cell) NAND 플래시 장치는 메모리 유닛의 물리 페이지가 엄격하게 순차적으로 기록될 것을 요구하며, 따라서 기록이 물리적 공간에 순차적으로 진행되고 원하는 저장 순서를 생성할 수 있도록, 동일 메모리 유닛을 목표로 하는 치환된 섹터의 전체 그룹이 이용가 능한 후에 원하는 섹터의 재정렬이 행해져야 한다.
(데이터 섹터를 수신하는 순서에 비해)기록 동작의 순서를 변경할 필요가 있는 다른 예는 보다 복잡한데, 이들은 섹터와 기록 동작 사이에 단순히 1대1로 대응하지 않기 때문이다. 이 복잡성은 하나 이상의 섹터가 1회 이상 기록될 것을 요구하는 저장 기술 때문에 발생한다. 예를 들어, Chen 등의 발명의 명칭이 "Operating Techniques For Reducing Effects Of Coupling Between Storage Elements Of a Non-Volatile Memory Operated in Multiple Data States"인 미국 특허 제6,522,580호를 참조하라. 이 특허는 참조로서 본 명세서에 포함된다. US 6,522,580은 셀당 2 비트를 저장하는 플래시 메모리 셀 사이의 교차 결합 효과를 제거하거나 감소시키는 방법을 개시하고 있다. 이 방법은 다른 섹터가 이웃 셀에 기록된 후에 데이터 섹터의 일부가 두 번째로 기록될 것을 요구한다. 예를 들어 "제 1 저장 요소 그룹"을 두 번째로 기록하는 것을 기술하는 US 6,522,580의 청구범위 제1항 및 이러한 두 번째 기록이 이들 셀의 제 1 기록과 시간적으로 인접하지 않지만 저장 요소의 제 2 그룹의 기록 후에(즉, 다른 섹터가 인접 셀에 기록된 후에) 행해지는 것을 기술하는 제3항을 참조하라. 셀당 보다 많은 수의 비트를 포함하는 플래시 메모리 셀(예를 들면 셀당 4 비트)을 사용하는 경우, 교차 결합 효과를 감소시키기 위한 더욱 어려운 요건이 있으며, 따라서 기록 순서 및 1회보다 많은 기록을 반복하는 것에 대한 제한이 US 6,522,580보다 훨씬 더 복잡하다. 이 예를 요약하면, 섹터 시퀀스가 데이터 소스에 의해 메모리 모듈로 제공되고, 여기서 각각의 데이터 섹터가 하나 이상의 기록 동작을 요구할 수 있으며, (일부 섹터는 1 회보다 더 많이 기록되기 때문에, 현재 소스에 의해 제공된 데이터 섹터의 수보다 더 많은) 기록 동작의 순서가 대응 섹터가 원래 수신된 순서와 다른 것이 희망된다.
요구된 재정렬 및/또는 기록 동작의 반복을 달성하기 위한 종래기술의 해법은 버퍼링 기법을 이용한다. 인입 데이터 섹터는 메모리 모듈의 제어기의 로컬 휘발성 메모리에 버퍼링된다. 그 다음에, 처리해야할 섹터 그룹을 포함하는 모든 섹터가 그 로컬 휘발성 메모리 내의 제어기에 이용가능하면, 요구된 재정렬이 결정되고, 비휘발성 저장 기술의 제약을 따르는 기록 동작의 시퀀스가 생성된다. 시퀀스가 종료된 후에는, 버퍼링된 섹터가 더 이상 필요치 않고, 새로운 데이터 섹터를 위한 공간을 확보하기 위해 휘발성 메모리로부터 삭제될 수 있다.
이 해법은 다음과 같은 제약을 갖는다.
a. 메모리 모듈의 제어기 내에 보다 많은 휘발성 메모리가 필요하다. 일반적으로 제어기는, 그 비용을 감소시키는 것이 매우 바람직하므로, 저 성능의 처리 장치이다. 위 버퍼링을 위해 필요한 여분의 휘발성 메모리의 양은 다른 목적을 위해 요구되는 휘발성 메모리의 양에 비해 매우 많을 수 있다. 예를 들면, 저 비용의 마이크로컨트롤러가 내부 RAM의 단지 16Kbyte만 가질 수 있는 반면에, 2Kbyte의 32 섹터를 버퍼링하기 위해서는 RAM의 64 Kbyte로 변환될 것이 요구되며, 따라서 이 경우에 RAM의 양을 크게 증가시키기 위해서는 그에 따라 제어기의 비용이 증가되어야 한다.
b. 인입 데이터가 휘발성 메모리에 버퍼링되는 동안, 이들 섹터는 전력 장애 가 발생할 경우에 손실될 위험이 있다. 휘발성 메모리는 그 명칭이 암시하듯이, 전력이 제거되면 그 내용을 잃어버린다. 따라서, 임의의 수의 데이터 섹터를 송신한 후에 데이터 소스는 이들 섹터가 이미 안전하게 메모리 모듈에 저장되었으며 따라서 소스로부터 삭제될 수 있다고 가정하는 반면에, 실제로는 섹터가 휘발성 메모리에 버퍼링된 채로 비휘발성 메모리에 저장되기를 기다리고 있는 경우가 있을 수 있다. 이 때문에, 기대치못한 전력 손실로 인해(예를 들면, 사용자가 장치를 꺼버리는 경우) 데이터를 영구적으로 잃어버릴 수 있다.
c. 휘발성 메모리에 데이터를 버퍼링한 다음 데이터를 비휘발성 메모리로 이동시키는 것은 시스템의 성능에 부정적인 영향을 줄 수도 있다. 전술한 데이터 손실 위험 때문에, 제어기는 통상 허용되는 한 최대한 빨리 버퍼링된 데이터를 안전한 비휘발성 저장 장치로 이동시키려고 한다. 예를 들어, 만약 재정렬 요구에 의해 32개의 데이터 섹터(이것이 재정렬이 행해지는 섹터 그룹이기 때문)가 버퍼링되면, 일단 32 개의 섹터가 버퍼 내에서 이용가능하고, 데이터가 비휘발성 메모리로 이동을 시작할 수 있으며, 제어기는 모든 섹터를 목표 위치에 기록한다. 만약 비휘발성 매체로의 기록이 느리면, 이 기록은 메모리 모듈을 바쁜 상태로 만들어, 그 시간 동안 새로운 데이터를 제공할 필요가 있는 데이터 소스에 문제를 일으킬 수도 있다. 예를 들어, 한 섹터를 비휘발성 메모리에 기록하는데 1 밀리초가 걸리면, 32개의 섹터 버퍼를 기록하는 데에는 32 밀리초가 걸린다. 초당 500 Kbyte의 평균 레이트로 MPEG2 스트림을 발생하는 디지털 비디오 카메라는 평균 4밀리초마다 2 Kbyte의 새로운 섹터를 생성하며, 메모리의 동작 중에 32 밀리초의 정지를 받아들 일 수 없다.
d. 위 고려 사항은 모두 인입 데이터가 모두 하나의 논리 시퀀스의 부분이고 함께 저장되는 국부적인 기록을 다룬다. 그러나, 데이터 소스가 동시에 별도로 저장되어야 하는 두 개의 상이한 논리 시퀀스에 대한 데이터를 동시에 생성하는 경우도 있다. 예를 들면, 화상을 통해 음성 나레이션을 지원하는 디지털 스틸 카메라가 제 2 오디오 데이터 스트림과 혼합된 하나의 화상 이미지 데이터 스트림을 전송할 수 있으며, 따라서 두 스트림이 (논리적으로는 연결된다 하더라도)상이한 파일에 저장되어야 한다. 이러한 경우를 다루기 위한 종래기술의 해법에 있어서, 휘발성 버퍼링 메모리의 양은 증가되어야 한다. 이것은 각각의 섹터 스트림이 독자적으로 재정렬되어야 하기 때문으로, 각각이 자신의 독립된 버퍼를 요구한다. 이것은 메모리 모듈의 비용을 더욱 증가시킨다.
따라서, 전술한 바와 같은 현재 공지되어 있는 방법의 문제점을 극복할 메모리 모듈로의 기록 동작을 반복하거나 재정렬하는 방법의 필요성이 널리 인식되고 있으며 또한 이러한 방법을 갖는 것이 매우 유익할 것이다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 방법에 있어서, (a) 비휘발성 메모리를 제공하는 단계와, (b) 상기 비휘발성 메모리에 모든 상기 섹터를 제 1 순서로 기록하는 단계와, (c) 상기 비휘발성 메모리에 모든 상기 섹터를 상기 제 1 순서로 기록한 후에, 모든 상기 섹터를 상기 비휘발성 메모리에 상기 제 1 순서와 다른 제 2 순서로 기록하는 단계로서, 상기 제 2 순서는 상기 섹터를 상기 제 2 순서로 기록하기 전에 결정되는 단계를 포함하는 데이터 섹터 저장 방법이 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 방법에 있어서, (a) 비휘발성 메모리를 제공하는 단계와, (b) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 메모리에 상기 섹터를 기록하는 단계로서, 각각의 상기 섹터는 상기 제 1 세트에 의해 1회만 기록되는 단계와, (c) 상기 제 1 세트를 이용하여 상기 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리 외부로부터 상기 메모리에 상기 섹터를 기록하는 단계로서, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 단계를 포함하는 데이터 섹터 저장 방법이 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 방법에 있어서, (a) 복수의 셀을 포함하는 비휘발성 메모리를 제공하는 단계와, (b) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 단계와, (c) 상기 제 1 세트를 이용하여 상기 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 단계로서, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 단계를 포함하되, 상기 제 1 세트에 의한 기록은 제 1 기록 모드를 이용하고 상기 제 2 세트에 의한 기록은 제 2 기록 모드를 이용하며, 상기 제 1 기록 모드는, 기록되는 셀 사이에 기록되지 않은 셀을 남겨 둠으로써, 상기 제 2 기록 모드에 의해 기록되는 셀들 간의 상기 결합에 비해, 상기 제 1 기록 모드에 의해 기록되는 셀들 간의 결합을 감소시키는 데이터 섹터 저장 방법이 제공된다.
본 발명에 따르면, 복수의 데이터 섹터 저장 방법에 있어서, (a) 비휘발성 메모리를 제공하는 단계와, (b) 적어도 하나의 기록 동작의 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 단계와, (c) 상기 제 1 세트를 이용하여 상기 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 단계로서, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 단계를 포함하되, 상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 낮은 신뢰도를 갖는 데이터 섹터 저장 방법이 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서, (a) 비휘발성 메모리와, (b) 제어기를 포함하되, 상기 제어기는 (i) 상기 섹터를 제 1 순서로 상기 비휘발성 메모리에 기록하고, (ii) 상기 섹터를 상기 제 1 순서로 기록한 후에, 상기 섹터를 상기 제 1 순서와 다른 제 2 순서로 상기 비휘발성 메모리에 기록하되, 상기 제 2 순서는 상기 섹터를 상기 제 2 순서로 기록하기 전에 결정되는 메모리 디바이스가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서, (a) 비휘발성 메모리와, (b) 제어기를 포함하되, 상기 제어기는 (i) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 각각의 상기 섹터는 상기 제 1 세트에 의해 1회만 기록되고, (ii) 상기 제 1 세트를 이용하여 상기 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리 외부로부터 상기 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 메모리 디바이스가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서, (a) 복수의 셀을 포함하는 비휘발성 메모리와, (b) 제어기를 포함하되, 상기 제어기는 (i) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하고, (ii) 상기 제 1 세트를 이용하여 상기 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되며, 상기 제 1 세트에 의한 기록은 제 1 기록 모드를 이용하고 상기 제 2 세트에 의한 기록은 제 2 기록 모드를 이용하며, 상기 제 1 기록 모드는, 기록되는 셀 사이에 기록되지 않은 셀을 남겨 둠으로써, 상기 제 2 기록 모드에 의해 기록되는 셀들 간의 상기 결합에 비해, 상기 제 1 기록 모드에 의해 기록되는 셀들 간의 결합을 감소시키는 메모리 디바이스가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서, (a) 비휘발성 메모리와, (b) 제어기를 포함하되, 상기 제어기는 (i) 적어도 하나의 기록 동작의 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하고, (ii) 상기 제 1 세트를 이용하여 상기 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되며, 상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 낮은 신뢰도를 갖는 메모리 디바이스가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 컴퓨터 판독 가능한 코드는 (a) 상기 섹터를 제 1 순서로 상기 비휘발성 메모리에 기록하는 프로그램 코드와, (b) 상기 섹터를 상기 제 1 순서로 기록한 후에, 상기 섹터를 상기 제 1 순서와 다른 제 2 순서로 상기 비휘발성 메모리에 기록하되, 상기 제 2 순서는 상기 섹터를 상기 제 2 순서로 기록하기 전에 결정되게 하는 프로그램 코드를 포함하는 컴퓨터 판독 가능한 기록 매체가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 컴퓨터 판독 가능한 코드는 (a) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 각각의 상기 섹터는 상기 제 1 세트에 의해 1회만 기록되게 하는 프로그램 코드와, (b) 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리 외부로부터 상기 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되게 하는 프로그램 코드를 포함하는 컴퓨터 판독 가능한 기록 매체가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 컴퓨터 판독 가능한 코드는 (a) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 프로그램 코드와, (b) 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되게 하는 프로그램 코드를 포함하며, 상기 비휘발성 메모리는 복수의 셀을 포함하고, 상기 제 1 세트에 의한 기록은 제 1 기록 모드를 이용하고 상기 제 2 세트에 의한 기록은 제 2 기록 모드를 이용하며, 상기 제 1 기록 모드는, 기록되는 셀 사이에 기록되지 않은 셀을 남겨 둠으로써, 상기 제 2 기록 모드에 의해 기록되는 셀들 간의 상기 결합에 비해, 상기 제 1 기록 모드에 의해 기록되는 셀들 간의 결합을 감소시키는 컴퓨터 판독 가능한 기록 매체가 제공된다.
본 발명에 따르면, 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 컴퓨터 판독 가능한 코드는 (a) 적어도 하나의 기록 동작의 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 프로그램 코드와, (b) 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되게 하는 프로그램 코드를 포함하며, 상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 낮은 신뢰도를 갖는 컴퓨터 판독 가능한 기록 매체가 제공된다.
본 발명의 방법은 데이터 파일의 복수의 섹터를 비휘발성 메모리에 기록하는 네 가지 기본적인 방법을 포함한다.
본 발명의 제 1 기본적인 방법에 따르면, 저장될 복수의 섹터가 먼저 제 1 순서(예를 들면, 섹터가 수신되는 순서)로 비휘발성 메모리에 기록된다. 그 다음에, 섹터는 제 2 순서로 섹터를 기록하기 전에 결정되는 다른 제 2 순서로 비휘발성 메모리에 기록된다. 섹터가 제 1 순서로 기록된 후에 제 2 순서로 기록되는 것이, "리와인드(rewind)" 능력의 지원으로, 수신된 순서로 서브세그먼트의 일부(만) 기록한 후 디스플레이되는 순서로 이들 서브세그먼트를 재기록하는 Birk 등의 방법과 본 발명의 차이이다. 섹터를 기록하는 제 2 순서가 섹터가 제 2 순서로 기록되기 전에 결정되는 것이, 수신되어 나중에 기록된 세그먼트를 포함하는 블록이 (동시에) 카피될 수 있고 수신되어 보다 일찍 기록된 세그먼트를 포함하는 블록 전에 삭제될 수 있는 플래시 메모리의 블록 재이용에 대한 종래기술과 본 발명의 차이이며, 또한, 세그먼트가 원래 기록된 것과 다른 순서로 세그먼트를 (동시에) 재기록할 수 있는 하드디스크의 조각모으기에 대한 종래기술과 본 발명의 차이이다.
바람직하게는, 제 1 및 제 2 순서는 (다양한 섹터가 기록되는 물리적 어드레스의 공간적인 배열을 나타내는)공간적인 순서보다는 (다양한 섹터가 기록되는 시간을 나타내는)시간적인 순서이다.
바람직하게는, 제 2 순서는 데이터에 따라 결정된다.
바람직하게는, 비휘발성 메모리는 하나 이상의 다른 메모리를 포함하는 메모리 디바이스의 일부로서 제공된다. 모든 섹터를 제 1 순서로 상기 비휘발성 메모리에 기록하는 것과 모든 섹터를 제 2 순서로 비휘발성 메모리에 기록하는 것 사이에 경과한 시간 동안 섹터는 비휘발성 메모리에만 저장되고 메모리 디바이스의 다른 어떠한 메모리에도 저장되지 않는다. 예를 들면, 이 시간 동안, 어떠한 섹터도 메모리 디바이스의 제어기의 RAM에 저장되지 않는다.
바람직하게는, 제 2 순서로 기록하는 것은 제 1 순서로 기록하는 것과 다른 기록 모드를 이용하여 행해진다. 보다 바람직하게는, 제 1 기록 모드는 제 2 기록 모드와 다른 밀도를 가지며, 가장 바람직하게는 제 2 기록 모드보다 더 낮은 밀도를 갖는다. 예를 들어, 제 1 방법의 보다 바람직한 실시예에서는, 비휘발성 메모리가 복수의 셀을 포함하고, 제 1 기록 모드가 제 2 기록 모드와 다른 셀당 데이터 비트 수를 저장하며, 가장 바람직하게는 더 적은 데이터 비트 수를 갖는다. 제 1 방법의 다른 바람직한 실시예에서는, 제 1 기록 모드가, 기록된 셀 사이에 기록되지 않은 셀을 남겨 둠으로써, 제 2 기록 모드에 의해 기록되는 비휘발성 메모리의 셀들 간의 결합에 비해, 비휘발성 메모리의 셀들 간의 결합을 감소시킨다. 가장 바람직하게는, 기록되지 않은 셀이 제 1 순서로 기록하는 모드에 의해 스킵되는 비휘발성 메모리의 페이지의 셀을 포함한다. 예를 들면, 제 1 방법의 몇몇 가장 바람직한 실시예는 기록된 페이지 쌍들 사이의 한 페이지를 스킵하고, 제 1 방법의 다른 가장 바람직한 실시예는 기록된 페이지 쌍들 사이의 세 페이지를 스킵한다.
이와 달리, 제 1 모드는 제 2 모드와 다른 신뢰도를 가지며, 가장 바람직하게는 보다 낮은 신뢰도를 갖는다. 바람직하게는, 다른 신뢰도는 다른 데이터 보존 시간을 포함하는데, 즉, 이렇게 기록된 섹터가 신뢰성 있게 판독될 수 있는 제 1 순서로 기록한 후의 기간은 이렇게 기록된 섹터가 신뢰성 있게 판독될 수 있는 제 2 순서로 기록된 후의 기간과 상이하다.
바람직하게는, 본 발명의 제 1 방법에 따라 제 2 순서로 기록하는 것은 한번의 연속적인 복수의 기록 동작에 의해 이루어진다. 이 기록 동작은, 기록 동작의 지원에 의한 동작 외에는 두 기록 동작 사이에 어떠한 다른 기록 동작도 개입될 수 없다는 것을 의미하는 "연속적"이다. 예를 들면, 플래시 메모리 디바이스는 연속적인 기록 동작 세트를 실행하는 중에 메모리의 일부 블록을 재이용할 필요가 있음을 알게 될 수 있다. 메모리 블록을 재이용하기 위한 관련 판독, 기록 및 삭제 동작은 연속적인 기록 동작을 지원하며, 또한 기록 동작의 연속성을 방해하는 것으로 간주되지는 않는다. 반면에, 관련 판독 동작이 연속 기록 동작을 지원하지 않기 때문에, 플래시 메모리 디바이스의 호스트는, 연속적인 기록 동작의 실행 동안 플래시 메모리 디바이스를 판독하는 것이 금지된다.
이와 달리, 본 발명의 제 1 방법에 따라 제 2 순서로 기록하는 것은 복수의 단속적인 기록 동작에 의해 이루어진다. 이 기록 동작은 두 기록 동작의 실행 사이에 하나 이상의 다른 동작의 실행이 개입될 수 없다는 것을 의미하는 "단속적(intermittent)"이다.
본 발명의 제 2, 제 3 및 제 4의 기본적인 방법에 따르면, 저장되는 복수의 섹터는 먼저 하나 이상의 기록 동작의 제 1 세트를 이용하여 비휘발성 메모리에 기록된다. 그 다음에, 하나 이상의 기록 동작의 제 2 세트를 이용하여 비휘발성 메모리에 섹터들이 기록되며, 섹터들 중 적어도 하나는 적어도 2회 기록된다. 청구범위는 제 1 기록 동작 세트가 완료되기 전에 제 2 기록 동작 세트를 개시하는 것을 포함하지만, 이것은 일반적으로 본 발명의 바람직한 모드는 아니다. 이러한 상황에서, 주어진 데이터에 대한 "기록" 동작은 메모리의 상태를, 메모리가 데이터를 다른 디바이스에 제공할 수 있는 다른 상태, 즉 다른 디바이스가 메모리로부터 데이터를 판독할 수 있는 상태로 변화시키는 동작이다. 이것은 메모리의 상태를 변화시키지 않는 "판독" 동작과 반대되며, 메모리가 데이터를 다른 디바이스로 제공할 수 없는 상태가 되도록 만드는 "삭제" 동작과 반대된다. 기록 동작 이전의 메모리의 최초 상태는 메모리가 동일 데이터를 다른 디바이스로 제공할 수 있는 상태일 수도 있다. 예를 들면, US 6,522,580이 페이지의 짝수 비트 라인의 셀을 기록한 후 페이지의 홀수 비트 라인의 셀을 기록하고, 그 다음에 다시 페이지의 짝수 비트 라인의 셀을 기록하면, 짝수 셀은 이들의 제 2 기록 전 및 후에 동일 데이터를 저장한다.
제 2의 기본적인 방법에 따르면, 각각의 섹터는 하나 이상의 기록 동작의 제 1 세트에 의해 1회만 기록되고, 하나 이상의 기록 동작의 제 2 세트는 비휘발성 메모리의 외부로부터 섹터를 기록한다.
바람직하게는, 제 2 세트는 제 1 세트와 다른 기록 모드를 이용한다. 보다 바람직하게는, 제 1 세트의 기록 모드는 제 2 세트의 기록 모드와 다른 밀도를 가지며, 가장 바람직하게는 보다 낮은 밀도를 갖는다. 예를 들어, 제 2 방법의 일부 보다 바람직한 실시예에서는, 비휘발성 메모리가 복수의 셀을 포함하고, 제 1 기록 모드는 제 2 기록모드와 다른 셀당 데이터 비트 수를 저장하며, 가장 바람직하게는 보다 적은 데이터 비트를 저장한다. 또한, 보다 바람직하게는, 제 1 기록 모드가 제 2 기록 모드와 다른 신뢰도를 가지며, 가장 바람직하게는 보다 낮은 신뢰도를 갖는다.
Lee 등의 미국 특허 제5,930,167호는 또한 데이터가 셀당 낮은 비트 수(통상은 1 비트)로 기록되고, 이어서 셀당 보다 높은 비트 수(통상은 2 비트)로 기록되는 비휘발성 메모리에 데이터를 기록하는 방법을 개시하고 있다. 본 발명의 제 2의 기본적인 방법은 본 발명의 제 2의 기본적인 방법이 하나 이상의 기록 동작의 제 2 세트를 이용하여 메모리에 섹터를 2회 기록할 때, 본 발명의 제 2의 기본적인 방법이 메모리 외부에 있는 RAM 내의 임시 기억 장소와 같은 메모리 외부로부터 섹터를 기록한다는 점에서, US 6,522,580의 방법을 이용하여 셀당 보다 높은 비트 수를 기록하는 US 5,930,167의 일실시예와 상이하다. 반대로, US 6,522,580은 2회 기록된 데이터를 메모리 내부에 데이터가 기록되는 셀 또는 메모리의 일부인 별도의 레지스터에 유지한다.
제 3의 기본적인 방법에 따르면, 비휘발성 메모리는 복수의 셀을 포함하고, 제 2 세트는 제 1 세트와 다른 기록 모드를 이용한다. 제 1 세트의 기록 모드는 기록되는 셀들 사이에 기록되지 않은 셀을 남겨둠으로써 제 2 세트의 기록 모드에 비해 셀간 결합을 감소시킨다.
바람직하게는, 기록되지 않은 셀은 제 1 세트의 기록 모드에 의해 스킵되는 페이지의 셀을 포함한다. 예를 들면, 제 3 방법의 일부 바람직한 실시예는 기록된 페이지 쌍들 사이의 한 페이지를 스킵하고, 제 3 방법의 다른 바람직한 실시예는 기록된 페이지 쌍들 사이의 세 페이지를 스킵한다.
제 4의 기본적인 방법에 따르면, 제 1 세트에 의한 기록은 제 2 세트에 의한 기록보다 낮은 신뢰도를 갖는다.
바람직하게는, 보다 낮은 신뢰도가 보다 낮은 데이터 보존 시간을 포함한다.
본 발명의 제 2, 제 3 및 제 4 방법의 일부 바람직한 실시예는 본 발명의 제 1 실시예의 바람직한 실시예와 공통인 측면을 갖는다. 예를 들면, 제 2, 제 3, 제 4 방법의 일부 바람직한 실시예에서, 비휘발성 메모리는 하나 이상의 다른 메모리를 포함하는 메모리 디바이스의 일부로서 제공된다. 섹터를 하나 이상의 기록 동작의 제 1 세트에 의해 비휘발성 메모리에 기록하는 것과 섹터를 하나 이상의 기록 동작의 제 2 세트에 의해 비휘발성 메모리에 기록하는 것 사이에 경과하는 시간 동안에, 섹터는 비휘발성 메모리에만 저장되고, 디바이스 내의 다른 어떠한 메모리에도 저장되지 않는다. 예를 들면, 이 기간 동안, 어떠한 섹터도 메모리 디바이스의 제어기의 RAM에 저장되지 않는다. 이러한 상황에서, 메모리 외부로부터 제 2 세트에 의해 섹터를 기록하기 위해 제 2 방법의 지원으로 메모리 외부에 섹터를 저장하는 것은 제 2 세트에 의한 기록의 일부로서 간주된다.
본 발명의 제 1 방법의 바람직한 실시예와 공통인 측면을 갖는 본 발명의 제 2, 제 3, 제4 방법의 바람직한 실시예들 중 다른 예는, 하나 이상의 기록 동작의 제 2 세트가 연속하는 복수의 기록 동작을 포함하는 바람직한 실시예와, 기록 동작의 제 2 세트가 단속적인 복수의 기록 동작을 포함하는 바람직한 실시예를 포함한다.
본 발명의 제 1 방법의 일부 바람직한 실시예는 제 2 순서로 섹터를 기록하는 중에, US 6,522,580 또는 본 발명의 제 2, 3, 4 실시예에서와 같이 섹터들 중 적어도 하나를 2회 기록한다.
본 발명의 범위는 또한 본 발명의 방법을 구현하는 메모리 디바이스, 본 발명을 구현하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 저장 매체를 포함한다.
도 1은 본 발명의 플래시 메모리 디바이스의 고수준 블록도.
도 2는 본 발명의 컴퓨터 시스템의 고수준 블록도.
이하, 첨부 도면을 참조하여 예를 통해 본 발명을 설명한다.
본 발명은 전술한 종래기술 방법의 문제점 없이 인입 데이터 섹터를 재정렬하고 재기록하는 방법 및 메모리 모듈에 관한 것이다.
본 발명에 따른 메모리 모듈의 원리 및 동작은 첨부 도면 및 이하의 상세한 설명을 참고하면 잘 이해할 수 있을 것이다.
본 발명은 휘발성 메모리 버퍼링을 하지 않고 대신에 인입 데이터 섹터를 비휘발성 메모리에 2회 기록함으로써 종래기술 방법의 문제점을 극복한다. 즉, 데이터 섹터가 도착할 때 한 번, 그리고 재정렬이 행해질 때 다시 한번 기록하여 어떠한 정렬 및 반복 제한도 만족하면서 데이터 섹터는 최종 목표 위치에 기록될 수 있 다. 한편, 이것은 비휘발성 메모리를 버퍼로서 사용한다. 분명히, 이러한 해결책은 데이터를 1회 기록하는 것에 비해 데이터를 기록하는데 보다 많은 시간 및 전력이 요구되는 점은 있다. 또한, 데이터를 제 1 위치로부터 제 2 위치로 이동시키는데 하나 이상의 판독 동작이 요구되며, 이것 역시 시간 및 전력을 소모한다. 그러나, 본 발명의 이점이 이러한 단점을 훨씬 능가하는 경우가 있다. 예를 들어, 만약 애플리케이션이 최소한의 데이터 손실의 위험조차 허락할 수 없다면, 본 발명은 성능 또는 전력에 관계없이 선택되어야 할 것이다.
데이터가 왜 2회 기록되어야 하는 지 의아해 할 수 있을 것이다. 만약 인입 섹터가 이미 비휘발성 메모리에 저장되었다면, 왜 이들을 이들이 있던 장소에 남겨 두지 않는 것일까? 이 물음에 대한 답은 US 10/952,837 및 US 6,502,139의 경우와 같이 섹터를 재정렬하기 위한 동기가 성능 최적화일 때 분명하다. 여기서는 제 1 위치에 데이터를 남겨두는 옵션이 있지만, 이들의 판독 성능이 나빠질 것이다.
그러나, 본 발명의 큰 이점은 비휘발성 저장 매체에 의해 부여된 제한이 최적의 기록 모드를 사용하여 제 1 기록 동작을 수행할 수 없게 하는 경우에 나타난다. 일례로서 US 6,522,580의 경우를 고려해 보자. 여기서는 기록 매체가, 일부 데이터 섹터가 1회보다 많이 기록되어야 하고, 부가적인 기록 동작이 엄격한 순서(ordering) 규칙을 따라야 한다고 규정한다. 표면상, 제 1 기록 중에 동일한 규칙이 적용되어야 하며, 그렇지 않으면 신뢰도 문제가 발생할 수도 있다. 이 해결책은 다소 한계를 회피하는 다른 방식으로 제 1 기록을 수행하는 것이다. US 6,522,580은 두 개의 섹터를 페이지의 짝수 셀에 기록한 다음, 두 개의 다른 섹터 를 페이지의 홀수 셀에 기록하고, 마지막으로 첫 번째 두 섹터를 짝수 셀에 재기록한다. 첫 번째 두 섹터의 이중 기록은 인접 셀 사이의 결합 효과에 의해 요구되는 것이기 때문으로, 이 결합 효과는 셀을 스킵함으로써 회피될 수 있다. 예를 들면, 짝수 셀만으로 기록하고 홀수 셀은 생략하면 결합 효과가 감소하며, 따라서 정규 제한을 무시할 수 있고 인입 섹터를 도착하는 데로 기록할 수 있다. 다른 예로서, 셀의 수가 4로 고르게 나누어지는 셀에만 기록하고 모든 다른 셀을 생략하면, 결합 효과가 더욱 감소되며 훨씬 더 낮은 에러 위험으로 정규 제한을 무시할 수 있다. 이제 데이터를 처음 기록된 장소에 두지 않는 지를 쉽게 이해할 수 있는데, 그 이유는 물리적 저장 공간의 사용이 제 1 기록에 효과적이지 않기 때문이다. 최적의 기록 방법 하에서와 같이 데이터를 저장하기 위해 2배 또는 4배의 페이지가 사용된다. 저장 용량의 활용은 최적의 기록 방법을 이용하는 경우의 단지 절반 또는 1/4뿐이며, 이 방법으로 그것을 남겨두는 것은 매우 비효율적일 것이다. 따라서, 데이터는 두 번째로 기록되고, 이 때 저장 매체의 디폴트 최적 모드를 이용한다.
제 1 기록 동작에서 최적의 기록 모드의 제한을 피하는 유사한 방법은 페이지의 모든 셀에 기록하고, 예를 들어 기록되는 페이지 쌍 사이의 한 페이지 또는 기록되는 페이지 쌍 사이의 3 페이지의 페이지를 스킵하는 것이다. 또한, 저장 매체 영역의 2 또는 4 배의 영역이 최적의 기록 방법 하에서와 같이 데이터를 저장하는데 사용되며, 따라서 저장 매체의 디폴트 최적 모드를 이용하여 데이터가 기록된다.
다른 방법으로 제 1 기록을 수행하는 다른 예는 셀당 복수의 비트 기록 동작 을 할 수 있는 플래시 메모리 디바이스에서 셀당 단일 비트 기록 동작을 이용하는 것이다. 동일 셀에서 셀당 복수의 비트 및 셀당 단일 비트 동작을 모두 지원할 수 있는 플래시 메모리가 당해 기술분야에 잘 알려져 있다. 예를 들어, Chen의 발명의 명칭이 "Selective Operation of a Multi-State Non-Volatile Memory System in a Binary Mode"인 미국 특허 제6,456,528호를 참고하라. 통상, 기록 순서에 부여된 제한은 신뢰할 수 있는 셀당 복수의 비트 동작에 요구되는 보다 엄격한 정확도 사양에 기인한다. 동일 메모리 셀이 단일 비트를 각각 저장하는데 사용되면, 정확도에 대한 허용오차가 보다 덜 엄격해지기 때문에, 제한이 무시될 수도 있다. 따라서, 셀당 단일 비트의 모드가 제 1 기록에 사용될 수 있고(임의의 순서 또는 반복 제한을 무시하면서), 셀당 복수 비트 모드가 제 2 기록에 사용될 수 있다(모든 제한을 준수함). 제 1 위치에 데이터를 남겨두지 않는 이유는 이전의 경우와 매우 유사한데, 즉 셀당 단일 비트 모드가 저장 공간 활용에서 셀당 복수 비트 모드보다 덜 효율적이다. 이 방법은 셀당 단일 비트의 경우를 넘어 확장될 수 있다. 셀당 비트의 임의의 두 값이 사용될 수도 있는데, 즉 보다 낮은 셀당 비트 수가 제 1 기록 동작에 사용되고, 보다 높은 셀당 비트 수가 제 2 기록 동작에 사용될 수 있다. 플래시 메모리에 유용한 조합은 (본 발명을 이들 조합에만 제한하지 않고) 다음을 포함한다.
a. 제 1 기록 동작에는 셀당 1 비트, 제 2 기록 동작에는 셀당 2 비트.
b. 제 1 기록 동작에는 셀당 1 비트, 제 2 기록 동작에는 셀당 3 비트.
c. 제 1 기록 동작에는 셀당 1 비트, 제 2 기록 동작에는 셀당 4 비트.
c. 제 1 기록 동작에는 셀당 2 비트, 제 2 기록 동작에는 셀당 4 비트.
다른 방법으로 제 1 기록을 수행하는 또 다른 예는 높은 신뢰도 및 낮은 신뢰도의 기록 모드가 가능한 장치에서 감소된 신뢰도 모드를 이용하는 것이다. 두 모드 간의 차이는 데이터가 기록 후에 유지되도록 보장되는 시간의 길이 또는 보장 온도 범위 또는 보장 외부 전원 전압 범위와 같은 신뢰도 사양의 임의의 다른 특성에 있을 수 있다. 동일 셀에 대한 높은 신뢰도 및 낮은 신뢰도의 기록 모드를 모두 지원할 수 있는 메모리가 당해 기술분야에 공지되어 있다. 예를 들어, 2003년 12월 16일 출원된 발명의 명칭이 "Method of Archiving Data"인 Lasser 등의 미국 특허 출원 제10/735,667호를 참조하라. 이 특허 출원은 본 명세서에 참조로서 완전히 포함된다. 이러한 메모리에서, 순서 제한을 무시함으로써 높은 신뢰도로 기록하는 능력을 상실하지만, 여전히 보다 낮은 신뢰도를 갖는다 하더라도 유효한 기록 동작으로 종료하는 경우가 있을 수 있다. 따라서, 제 1 기록에 대한 순서 제한을 무시할 수 있으며, 제 2 기록에 대해 이들을 따를 수 있다. 이 경우, 데이터를 그 제 1 위치에 남겨두지 않는 이유는 저장 비효율성 때문이 아니라 신뢰도 때문이다. 데이터를 잠시동안 낮은 신뢰도 모드로 유지되게 하는 것은 가능하지만, 이들을 장기간 저장을 위해 이와 같이 남겨두어서는 안되며, 모든 데이터는 가능한 한 높은 신뢰도 모드로 이동되어야 한다.
제 1 위치로부터 제 2 위치로 데이터를 이동시키는 것은 현재의 섹터 그룹의 재배열에 포함된 모든 섹터가 이용가능할 때 즉각 발생할 수 있다. 이러한 정책을 이용하면 데이터 섹터의 완전한 시퀀스가 하나의 연속적인 기록 동작 세트로서 이 동된다. 그러나, 모든 인입 섹터들은 이들이 도착 시 즉각적으로 비휘발성 메모리에 안전하게 저장되므로, 이 이동이 긴급하지 않다. 메모리 모듈의 제어기는 데이터의 이동을 지연시키는 것이 편리한 경우 지연시킬 수 있으며, 그 데이터에 대한 판독 요구가 데이터가 그 최종 수신지로 이동되기 전에 메모리 모듈의 호스트로부터 수신되면, 데이터를 찾아 호스트로 전송하는 것이 여전히 가능할 것을 보장하기만 하면 된다. 또한, 완전한 섹터 그룹을 함께 이동시킬 필요는 없다. 데이터의 이동은 서로로부터 시간적으로 분리된 여러 개의 기록 동작 세트로 나누어질 수 있다. 보다 적은 기록 동작 세트는 단일 섹터, 두 개의 섹터, 4 개의 섹터 또는 8 개의 섹터를 각각 이동시킬 수 있거나 또는 모든 섹터들이 동일한 수의 섹터가 될 것을 요구하지도 않고 임의의 편리한 방법으로 보다 작은 부분들로 나누어질 수 있다. 이것은 종래기술의 해법의 성능 문제를 극복하는데 매우 유용하며, 이하에 보다 완전하게 설명할 것이다.
종래기술의 모든 한계가 본 발명에 의해 해결된다는 것을 이제 알 수 있을 것이다.
a. 제어기의 정규 동작에 필요한 것을 넘어서는 제어기 내의 휘발성 메모리의 양을 증가시키는 것이 필요치 않다. 여분의 휘발성 메모리가 버퍼링에 할당될 필요가 없다. 이것은 데이터 섹터의 비휘발성 메모리로의 제 1 기록 및 제 2 기록 사이에, 어떠한 데이터의 카피가 (제 1 기록 동작 중에 이것이 기록된 위치를 제외하고는)제어기 내의 어디에도 유지될 필요가 없기 때문이다. 비휘발성 메모리 내의 제 1 기록에 일시적으로 사용된 여분의 공간은 제어기에 추가된 동일한 휘발성 저장 공간의 양에 비해 비용면에서 무시할 수 있다.
b. 전력 장애시에도 데이터 손실 위험이 없다. 인입 데이터는 도착하자마자 비휘발성 메모리에 저장된다.
c. 데이터는 (데이터의 최종 수신지로 이동되기 전에도)항상 안전하게 저장되기 때문에, 모든 섹터를 한번에 이동시키는데 긴급하지 않다. 모든 관련 섹터가 이용가능하면, 제어기는 모두 함께보다는 동일 청크로 이들을 이동시키는 것을 시작할 수 있다. 통상의 구현은 제어기가 각 단계에서 단일 섹터만 기록하게 하고, 그 다음에 데이터 소스로부터 임의의 새로운 요구가 있다면 이를 서비스한다. 이 방법으로, 데이터 소스는 단일 섹터 기록 동작의 길이를 넘는 메모리 모듈로부터의 서비스를 중지하지 않는다.
d. 복수의 혼합된 독립된 인입 섹터의 스트림은 휘발성 메모리의 양을 추가적으로 증가시키지 않고 쉽게 서비스될 수 있다. 각 스트림은 비휘발성 메모리의 상이한 영역에 배치되고, 충분한 섹터가 이용가능할 때 그 최종 위치로 이동된다. 또한, 두 스트림의 비휘발성 메모리로의 제 1 기록에 일시적으로 사용된 여분의 공간은, 제어기 내의 휘발성 메모리의 양을 증가시킴으로써 동일한 것을 달성하는 것에 비해 비용면에서 무시할 수 있다.
도면을 참조하면, 도 1은 본 발명의 플래시 메모리 디바이스(10)의 고수준 블록도이다. 도 1은 본 명세서에 참조로서 완전히 포함되는 Ban의 미국 특허 제5,404,485호의 도 1로부터 변형된 것이다. 디바이스(10)는 MLC NAND 플래시 메모리(12), 플래시 메모리 제어기(14) 및 RAM(16)을 포함한다. 제어기(14)는 US 5,404,485 및 본 명세서에 참조로서 완전히 포함된, Ban의 미국 특허 제5,937,425)호에 개시된 플래시 메모리(12)를 관리한다. (US 5,404,485는 일반적으로 플래시 메모리의 관리에 적용된다. US 5,937,425는 NAND 플래시 메모리에 특유하다.) 제어기(14)는 플래시 메모리(12)에 저장된 데이터를 종래의 방식으로 호스트 디바이스(도시되어 있지 않음)와 교환한다. 예를 들어, 디바이스(10)가 개인용 컴퓨터와 같은 시스템에서 비휘발성 데이터 저장용으로 사용되면, 제어기(14)는 시스템의 버스를 통해 시스템의 다른 구성요소와 통신한다. 만약 디바이스(10)가 예를 들어 Ban 등의 미국 특허 제6,148,354호에 개시된 USB 인터페이스와 같은 적절한 인터페이스를 사용하여 호스트에 탈착가능하게 부착되면, 제어기는 이 인터페이스를 통해 호스트와 통신한다.
종래기술에 따르면, 인입 데이터 섹터를 재정렬 또는 재기록할 필요가 있을 때, 제어기(14)는 RAM(16)을 버퍼로서 사용할 것이다. 본 발명에 따르면, 제어기(14)는 대신에 플래시 메모리(12)를 자신의 버퍼로서 사용한다. 제어기(14)는 인입 데이터 섹터를 수신된 순서로 플래시 메모리(12)에 기록하고/또는 반드시 플래시 메모리(12)에 대한 최적의 모드로 기록하지는 않는다. 본 발명의 제 2 방법 하에서, 제 2 기록 동작 세트의 일부로서, 제어기(14)는 플래시 메모리(12)로부터 플래시 메모리(12)에 기록되는 데이터 섹터를 판독하고, 이들 섹터를 일시적으로 RAM(16)에 저장하며, 섹터를 RAM(16)으로부터 플래시 메모리(12)에 2회 기록한다.
디바이스(10)는 본 발명의 방법의 펌웨어 구현예이다. 도 2는 본 발명의 방법의 소프트웨어 구현예인 본 발명의 컴퓨터 시스템(20)의 부분적인 고수준 블록도 이다. 시스템(20)은 프로세서(22), RAM(24), 총괄적으로 I/O 블록(32)으로 표현된 키보드 및 디스플레이 스크린과 같은 입력 및 출력 장치, 하드디스크(26) 및 MLC NAND 플래시 메모리(30)와 같은 비휘발성 매체 저장 메모리를 포함한다. 구성요소(22, 24, 26, 30, 32)는 공통 버스(34)를 통해 서로 통신한다. 하드디스크(26)에 저장된 데이터 중에는 운영체제(28)의 코드가 있다. 시스템(20)이 켜지면, 프로세서(22)는 운영체제(28)의 코드를 RAM(24)으로 다운로드하고, RAM(24)으로부터 운영체제(28)의 코드를 실행하여 시스템(20)의 동작을 관리한다. 따라서 하드디스크(26)는 본 발명의 방법을 실시하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 저장 매체의 일례이다.
운영체제(28)의 코드는 US 5,404,485 및 US 5,937,425에 개시된 바와 같이, NAND 플래시 메모리(30)를 관리하기 위한 코드를 포함한다. 운영체제(28)의 코드는 또한 본 발명의 원리에 따른 NAND 플래시 메모리(30)를 관리하기 위한 코드를 포함한다. 프로세서(22)에 의해 실행되는 애플리케이션이 NAND 플래시 메모리(30)에 사용자 데이터 섹터를 저장할 것을 요구할 때, 프로세서(22)는 운영체제(28)의 적절한 코드를 실행하여 NAND 플래시 메모리(30)에 섹터들을 애플리케이션에 의해 생성된 순서로 기록하고/또는 반드시 플래시 메모리(30)에 대한 최적의 모드로 기록하지는 않는다. 나중에, 프로세서(22)는 운영체제(28)의 적절한 코드를 실행하여 섹터를 NAND 플래시 메모리(30) 내에 최적의 동작 순서로 및/또는 NAND 플래시 메모리(30)의 최적의 기록 모드에 따라서 카피한다. 본 발명의 제 2 방법에서는, 제 2 기록 동작 세트의 일부로서, 프로세서(22)가 NAND 플래시 메모리(30)로부터 NAND 플래시 메모리(30)에 재기록되는 데이터 섹터를 판독하고, 이들 섹터를 RAM(24)에 일시적으로 저장하며, RAM(24)로부터 섹터를 NAND 플래시 메모리(30)로 2회 기록한다.
이상 본 발명을 한정된 수의 실시예에 대해 설명하였지만, 본 발명의 많은 변형, 수정 및 기타 응용이 이루어질 수도 있다.

Claims (51)

  1. 복수의 데이터 섹터를 저장하는 방법에 있어서,
    비휘발성 메모리를 제공하는 단계와,
    상기 비휘발성 메모리에 복수의 데이터 섹터 모두를 제 1 순서(first order)로 기록하는 단계와,
    상기 비휘발성 메모리에 복수의 데이터 섹터 모두를 상기 제 1 순서로 기록한 후에, 복수의 데이터 섹터 모두를 상기 비휘발성 메모리에 상기 제 1 순서와 다른 제 2 순서로 기록하는 단계로서, 상기 제 2 순서(second order)는 상기 섹터를 상기 제 2 순서로 기록하기 전에 결정되는 단계
    를 포함하는 데이터 섹터 저장 방법.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 순서는 시간 순서(temporal orders)인
    데이터 섹터 저장 방법.
  3. 제 1 항에 있어서,
    상기 제 2 순서는 복수의 데이터 섹터 중 하나 이상의 데이터 값의 적어도 일부분에 따라서 결정되는
    데이터 섹터 저장 방법.
  4. 제 1 항에 있어서,
    상기 비휘발성 메모리는 적어도 하나의 다른 메모리를 포함하는 메모리 디바이스의 일부로서 제공되고, 모든 상기 섹터를 상기 제 1 순서로 상기 비휘발성 메모리에 기록하는 것과 복수의 데이터 섹터 모두를 상기 제 2 순서로 상기 비휘발성 메모리에 기록하는 것 사이에 상기 섹터는 상기 메모리 디바이스 내의 상기 비휘발성 메모리에만 저장되는
    데이터 섹터 저장 방법.
  5. 제 1 항에 있어서,
    상기 제 2 순서로 기록하는 것은 상기 제 1 순서로 기록하는 것과 다른 기록 모드를 이용하여 행해지는
    데이터 섹터 저장 방법.
  6. 제 5 항에 있어서,
    상기 제 1 순서로 기록하는 모드는 상기 제 2 순서로 기록하는 모드와 다른 밀도(density)를 갖는
    데이터 섹터 저장 방법.
  7. 제 6 항에 있어서,
    상기 비휘발성 메모리는 복수의 셀을 포함하고, 상기 제 1 순서로 기록하는 모드는 상기 제 2 순서로 기록하는 모드와 다른 셀당 데이터 비트 수를 저장하는
    데이터 섹터 저장 방법.
  8. 제 7 항에 있어서,
    상기 제 1 순서로 기록하는 모드는 상기 제 2 순서로 기록하는 모드보다 더 적은 셀당 비트를 저장하는
    데이터 섹터 저장 방법.
  9. 제 6 항에 있어서,
    상기 제 1 순서로 기록하는 모드는 상기 제 2 순서로 기록하는 모드보다 더 낮은 밀도를 갖는
    데이터 섹터 저장 방법.
  10. 제 9 항에 있어서,
    상기 제 1 순서로 기록하는 모드는, 기록되는 셀 사이에 기록되지 않은 셀을 남겨 둠으로써, 상기 제 2 순서로 기록하는 모드에 의해 기록되는 상기 비휘발성 메모리의 셀들 간의 상호 셀 결합(inter-cell coupling)에 비해, 상기 제 1 순서로 기록하는 모드에 의해 기록되는 상기 비휘발성 메모리의 셀들 간의 상호 셀 결합을 감소시키는
    데이터 섹터 저장 방법.
  11. 제 10 항에 있어서,
    상기 기록되지 않은 셀은 상기 제 1 순서로 기록하는 모드에 의해 스킵되는 상기 비휘발성 메모리의 페이지의 셀을 포함하는
    데이터 섹터 저장 방법.
  12. 제 11 항에 있어서,
    상기 제 1 순서로 기록하는 모드에 의해 기록되는 상기 페이지의 모든 쌍은 그들 사이에 적어도 하나의 기록되지 않은 페이지를 포함하는
    데이터 섹터 저장 방법.
  13. 제 11 항에 있어서,
    상기 제 1 순서로 기록하는 모드에 의해 기록되는 상기 페이지의 모든 쌍은 그들 사이에 적어도 세 개의 기록되지 않은 페이지를 포함하는
    데이터 섹터 저장 방법.
  14. 제 5 항에 있어서,
    상기 제 1 순서로 기록하는 것은 상기 제 2 순서로 기록하는 것과 다른 신뢰도를 갖는
    데이터 섹터 저장 방법.
  15. 제 14 항에 있어서,
    상기 제 1 순서로 기록하는 것은 상기 제 2 순서로 기록하는 것보다 낮은 신뢰도를 갖는
    데이터 섹터 저장 방법.
  16. 제 14 항에 있어서,
    상기 다른 신뢰도는 다른 데이터 보존 시간을 포함하는
    데이터 섹터 저장 방법.
  17. 제 1 항에 있어서,
    상기 제 2 순서로 기록하는 것은 단일의 연속적인 복수의 기록 동작에 의해 이루어지는
    데이터 섹터 저장 방법.
  18. 제 1 항에 있어서,
    상기 제 2 순서로 기록하는 것은 복수의 단속적인 기록 동작에 의해 이루어지는
    데이터 섹터 저장 방법.
  19. 제 1 항에 있어서,
    상기 제 2 순서로 섹터를 기록하는 동안, 적어도 하나의 섹터는 상기 비휘발성 메모리에 2회 기록되는
    데이터 섹터 저장 방법.
  20. 복수의 데이터 섹터를 저장하는 방법에 있어서,
    상기 방법은,
    적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 비휘발성 메모리에 복수의 섹터를 기록하는 단계로서, 상기 복수의 섹터 각각은 상기 제 1 세트에 의해 1회만 기록되는 단계와,
    상기 제 1 세트를 이용하여 상기 복수의 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하는 단계로서, 상기 복수의 섹터는 상기 비휘발성 메모리의 외부로부터 제공되고, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 단계
    를 포함하는 데이터 섹터 저장 방법.
  21. 제 20 항에 있어서,
    상기 제 2 세트는 상기 제 1 세트의 기록 모드와 상이한 상기 제 2 세트의 기록 모드를 이용하는
    데이터 섹터 저장 방법.
  22. 제 21 항에 있어서,
    상기 제 1 세트의 기록 모드는 상기 제 2 세트의 기록 모드와 다른 밀도를 갖는
    데이터 섹터 저장 방법.
  23. 제 22 항에 있어서,
    상기 메모리는 복수의 셀을 포함하고, 상기 제 1 세트의 기록 모드는 상기 제 2 세트의 기록 모드와 다른 수의 셀당 데이터 비트 수를 저장하는
    데이터 섹터 저장 방법.
  24. 제 23 항에 있어서,
    제 1 세트의 기록 모드는 상기 제 2 세트의 기록 모드보다 더 적은 셀당 비트를 저장하는
    데이터 섹터 저장 방법.
  25. 제 22 항에 있어서,
    상기 제 1 세트의 기록 모드는 상기 제 2 세트의 기록 모드보다 더 낮은 밀도를 갖는
    데이터 섹터 저장 방법.
  26. 제 21 항에 있어서,
    상기 제 1 세트의 기록 모드는 상기 제 2 세트의 기록 모드와 다른 신뢰도를 갖는
    데이터 섹터 저장 방법.
  27. 제 26 항에 있어서,
    상기 제 1 세트의 기록 모드는 상기 제 2 세트의 기록 모드보다 더 낮은 신뢰도를 갖는
    데이터 섹터 저장 방법.
  28. 제 20 항에 있어서,
    상기 제 2 세트는 연속하는 복수의 기록 동작을 포함하는
    데이터 섹터 저장 방법.
  29. 제 20 항에 있어서,
    상기 제 2 세트는 단속적인 복수의 기록 동작을 포함하는
    데이터 섹터 저장 방법.
  30. 제 20 항에 있어서,
    상기 비휘발성 메모리는 적어도 하나의 다른 메모리를 포함하는 메모리 디바이스의 일부로서 제공되고, 상기 섹터를 상기 제 1 세트에 의해 상기 비휘발성 메모리에 기록하는 것과 상기 섹터를 상기 제 2 세트에 의해 상기 비휘발성 메모리에 기록하는 것 사이에 상기 섹터는 상기 메모리 디바이스 내의 상기 비휘발성 메모리에만 저장되는
    데이터 섹터 저장 방법.
  31. 제 20 항에 있어서,
    상기 비휘발성 메모리는 복수의 셀을 포함하고,
    상기 제 1 세트에 의한 기록은 셀간 제 1 상호 셀 결합 값을 가진 제 1 기록 모드를 사용하고,
    상기 제 2 세트에 의한 기록은 셀간 제 2 상호 셀 결합 값을 가진 제 2 기록 모드를 사용하며,
    상기 제 1 상호 셀 결합 값은 상기 제 2 상호 셀 결합 값 보다 작은 것을 특징으로 하는
    데이터 섹터 저장 방법.
  32. 복수의 데이터 섹터를 저장하는 방법에 있어서,
    적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 비휘발성 메모리에 복수의 섹터를 기록하는 단계와,
    상기 제 1 세트를 이용하여 상기 복수의 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하는 단계로서, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 단계를 포함하되,
    상기 제 1 세트에 의한 기록은 기록된 셀 사이에 기록되지 않은 셀을 남겨두는 제 1 기록 모드를 이용하고, 상기 제 2 세트에 의한 기록은 제 2 기록 모드를 이용하며,
    상기 제 1 기록 모드를 사용하여 기록된 제 1 쌍의 셀들 사이의 상호 셀 결합 효과(effect)는 제 1 상호 셀 결합 값에 연관되고, 상기 제 2 기록 모드를 사용하여 기록된 제 2 쌍의 셀들 사이의 상호 셀 결합 효과는 제 2 상호 셀 결합 값에 연관되며, 상기 제 1 상호 셀 결합 값은 상기 제 2 상호 셀 결합 값 보다 작은 것을 특징으로 하는
    데이터 섹터 저장 방법.
  33. 제 32 항에 있어서,
    상기 기록되지 않은 셀은 상기 제 1 기록 모드에 의해 스킵되는 상기 비휘발성 메모리의 페이지의 셀을 포함하는
    데이터 섹터 저장 방법.
  34. 제 33 항에 있어서,
    상기 제 1 기록 모드에 의해 기록되는 제 1 페이지와, 제1 기록 모드에 의해 기록되는 제 2 페이지는 제1 페이지와 제2 페이지 사이에 적어도 하나의 기록되지 않은 페이지를 포함하는
    데이터 섹터 저장 방법.
  35. 제 33 항에 있어서,
    상기 제 1 기록 모드에 의해 기록되는 제1 페이지와, 제1 기록 모드에 의해 기록되는 제 2 페이지는 제1 페이지와 제2 페이지 사이에 적어도 세 개의 기록되지 않은 페이지를 포함하는
    데이터 섹터 저장 방법.
  36. 제 32 항에 있어서,
    상기 비휘발성 메모리는 적어도 하나의 다른 메모리를 포함하는 메모리 디바이스의 일부로서 제공되고, 상기 복수의 섹터를 상기 제 1 세트에 의해 상기 비휘발성 메모리에 기록한 후에, 그리고 상기 복수의 섹터를 상기 제 2 세트에 의해 상기 비휘발성 메모리에 기록하기 이전에, 상기 복수의 섹터는 상기 메모리 디바이스 내의 상기 비휘발성 메모리에만 저장되는
    데이터 섹터 저장 방법.
  37. 제 32 항에 있어서,
    상기 제 2 세트는 연속하는 복수의 기록 동작을 포함하는
    데이터 섹터 저장 방법.
  38. 제 32 항에 있어서,
    상기 제 2 세트는 단속적인 복수의 기록 동작을 포함하는
    데이터 섹터 저장 방법.
  39. 복수의 데이터 섹터 저장 방법에 있어서,
    적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 비휘발성 메모리에 복수의 섹터를 기록하는 단계와,
    상기 제 1 세트를 이용하여 상기 복수의 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하는 단계로서, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는 단계를 포함하되,
    상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 낮은 신뢰도를 갖는
    데이터 섹터 저장 방법.
  40. 제 39 항에 있어서,
    상기 비휘발성 메모리는 적어도 하나의 다른 메모리를 포함하는 메모리 디바이스의 일부로서 제공되고, 상기 복수의 섹터를 상기 제 1 세트에 의해 상기 비휘발성 메모리에 기록한 후에, 그리고 상기 복수의 섹터를 상기 제 2 세트에 의해 상기 비휘발성 메모리에 기록하기 이전에, 상기 복수의 섹터는 상기 메모리 디바이스 내의 상기 비휘발성 메모리에만 저장되는
    데이터 섹터 저장 방법.
  41. 제 39 항에 있어서,
    상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 데이터 보존 시간이 낮은
    데이터 섹터 저장 방법.
  42. 제 39 항에 있어서,
    상기 제 2 세트는 복수의 연속적인(consecutive) 기록 동작을 포함하는
    데이터 섹터 저장 방법.
  43. 제 39 항에 있어서,
    상기 제 2 세트는 복수의 단속적인(intermittent) 기록 동작을 포함하는
    데이터 섹터 저장 방법.
  44. 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서,
    (a) 비휘발성 메모리와,
    (b) 제어기를 포함하되,
    상기 제어기는
    (i) 상기 섹터를 제 1 순서로 상기 비휘발성 메모리에 기록하고,
    (ii) 상기 섹터를 상기 제 1 순서로 기록한 후에, 상기 섹터를 상기 제 1 순서와 다른 제 2 순서로 상기 비휘발성 메모리에 기록하되, 상기 제 2 순서는 상기 섹터를 상기 제 2 순서로 기록하기 전에 결정되는
    메모리 디바이스.
  45. 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서,
    (a) 비휘발성 메모리와,
    (b) 제어기를 포함하되,
    상기 제어기는
    (i) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하되, 각각의 상기 섹터는 상기 제 1 세트에 의해 1회만 기록되고,
    (ii) 상기 제 1 세트를 이용하여 상기 복수의 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하되, 상기 복수의 섹터는 상기 비활성 메모리의 외부로부터 제공되고, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되는
    메모리 디바이스.
  46. 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서,
    (a) 복수의 셀을 포함하는 비휘발성 메모리와,
    (b) 제어기를 포함하되,
    상기 제어기는
    (i) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하고,
    (ii) 상기 제 1 세트를 이용하여 상기 복수의 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하되, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되며, 상기 제 1 세트에 의한 기록은 기록된 셀들 사이에 기록되지 않은 셀을 남겨두는 제 1 기록 모드를 사용하며,
    상기 제 1 기록 모드를 사용하여 기록된 제 1 쌍의 셀들 사이의 상호 셀 결합 효과(effect)는 제 1 상호 셀 결합 값에 연관되고, 상기 제 2 기록 모드를 사용하여 기록된 제 2 쌍의 셀들 사이의 상호 셀 결합 효과는 제 2 상호 셀 결합 값에 연관되며, 상기 제 1 상호 셀 결합 값은 상기 제 2 상호 셀 결합 값 보다 작은 것을 특징으로 하는
    메모리 디바이스.
  47. 복수의 데이터 섹터를 저장하는 메모리 디바이스에 있어서,
    (a) 비휘발성 메모리와,
    (b) 제어기를 포함하되,
    상기 제어기는
    (i) 적어도 하나의 기록 동작의 제 1 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하고,
    (ii) 상기 제 1 세트를 이용하여 상기 복수의 섹터의 기록을 시작한 후에, 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하되, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되며,
    상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 신뢰도가 낮은 것을 특징으로 하는
    메모리 디바이스.
  48. 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 컴퓨터 판독 가능한 코드는
    (a) 상기 섹터를 제 1 순서로 상기 비휘발성 메모리에 기록하는 프로그램 코드와,
    (b) 상기 섹터를 상기 제 1 순서로 기록한 후에, 상기 섹터를 상기 제 1 순서와 다른 제 2 순서로 상기 비휘발성 메모리에 기록하되, 상기 제 2 순서는 상기 섹터를 상기 제 2 순서로 기록하기 전에 결정되게 하는 프로그램 코드를 포함하는
    컴퓨터 판독 가능한 기록 매체.
  49. 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 컴퓨터 판독 가능한 코드는
    (a) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 각각의 상기 섹터는 상기 제 1 세트에 의해 1회만 기록되게 하는 프로그램 코드와,
    (b) 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리 외부로부터 상기 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되게 하는 프로그램 코드를 포함하는
    컴퓨터 판독 가능한 기록 매체.
  50. 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 컴퓨터 판독 가능한 코드는
    (a) 적어도 하나의 기록 동작으로 이루어진 제 1 세트를 이용하여 비휘발성 메모리에 복수의 섹터를 기록하는 프로그램 코드와,
    (b) 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 복수의 섹터를 기록하되, 상기 복수의 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되게 하는 프로그램 코드를 포함하며,
    상기 비휘발성 메모리는 복수의 셀을 포함하고,
    상기 제 1 세트에 의한 기록은 제 1 기록 모드를 이용하고 - 제 1 기록 모드는 제 1 기록 모드를 사용하여 기록된 제1 쌍의 셀들 사이에 기록되지 않은 셀을 남겨둠 -,
    상기 제 2 세트에 의한 기록은 제 2 쌍의 셀들에 데이터를 기록하는 제 2 기록 모드를 이용하며,
    상기 제 1 기록 모드를 사용하여 기록된 제 1 쌍의 셀들 사이의 상호 셀 결합 효과(effect)는 제 1 상호 셀 결합 값에 연관되고, 상기 제 2 기록 모드를 사용하여 기록된 제 2 쌍의 셀들 사이의 상호 셀 결합 효과는 제 2 상호 셀 결합 값에 연관되며, 상기 제 1 상호 셀 결합 값은 상기 제 2 상호 셀 결합 값 보다 작은 것을 특징으로 하는
    컴퓨터 판독 가능한 기록 매체.
  51. 복수의 데이터 섹터를 저장하기 위한 컴퓨터 판독 가능한 코드가 기록되어 있는 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 컴퓨터 판독 가능한 코드는
    (a) 적어도 하나의 기록 동작의 제 1 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하는 프로그램 코드와,
    (b) 적어도 하나의 기록 동작으로 이루어진 제 2 세트를 이용하여 상기 비휘발성 메모리에 상기 섹터를 기록하되, 상기 섹터 중 적어도 하나는 상기 제 2 세트에 의해 2회 기록되게 하는 프로그램 코드를 포함하며,
    상기 제 1 세트에 의한 기록은 상기 제 2 세트에 의한 기록보다 낮은 신뢰도를 갖는
    컴퓨터 판독 가능한 기록 매체.
KR1020077013193A 2004-12-17 2005-12-13 비휘발성 메모리로의 기록에 대한 제한을 제어하기 위한방법 KR100963708B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63651004P 2004-12-17 2004-12-17
US60/636,510 2004-12-17
US11/142,489 2005-06-02
US11/142,489 US7149111B2 (en) 2004-12-17 2005-06-02 Method of handling limitations on the order of writing to a non-volatile memory

Publications (2)

Publication Number Publication Date
KR20070095892A KR20070095892A (ko) 2007-10-01
KR100963708B1 true KR100963708B1 (ko) 2010-06-14

Family

ID=36588269

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077013193A KR100963708B1 (ko) 2004-12-17 2005-12-13 비휘발성 메모리로의 기록에 대한 제한을 제어하기 위한방법

Country Status (3)

Country Link
US (1) US7149111B2 (ko)
KR (1) KR100963708B1 (ko)
WO (1) WO2006064497A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
TW561491B (en) 2001-06-29 2003-11-11 Toshiba Corp Semiconductor memory device
US7490775B2 (en) * 2004-12-30 2009-02-17 Aol Llc, A Deleware Limited Liability Company Intelligent identification of multimedia content for synchronization
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7937422B1 (en) 2005-11-03 2011-05-03 Aol Inc. Digital asset hosting and distribution
US8074022B2 (en) * 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
KR100902008B1 (ko) * 2007-02-09 2009-06-12 삼성전자주식회사 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
US7577024B2 (en) * 2007-05-25 2009-08-18 Intel Corporation Streaming mode programming in phase change memories
US8443260B2 (en) * 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
US8166368B2 (en) 2009-02-24 2012-04-24 International Business Machines Corporation Writing a special symbol to a memory to indicate the absence of a data signal
US8023345B2 (en) 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US8743629B2 (en) * 2009-08-31 2014-06-03 Sandisk Il Ltd. Preloading data into a flash storage device
US8386739B2 (en) 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8230276B2 (en) 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US8825945B2 (en) 2011-01-31 2014-09-02 Marvell World Trade Ltd. Mapping different portions of data to different pages of multi-level non-volatile memory
KR102034626B1 (ko) * 2013-06-26 2019-10-21 삼성전자 주식회사 메모리 동작을 제어하는 방법 및 장치
KR102297541B1 (ko) * 2014-12-18 2021-09-06 삼성전자주식회사 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502139B1 (en) 1999-06-01 2002-12-31 Technion Research And Development Foundation Ltd. System for optimizing video on demand transmission by partitioning video program into multiple segments, decreasing transmission rate for successive segments and repeatedly, simultaneously transmission

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US6857099B1 (en) * 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
DE60203477D1 (de) * 2002-01-11 2005-05-04 St Microelectronics Srl Architektur eines Flash-EEPROMs, der gleichzeitig während des Löschens oder Programmierens von einem oder mehreren anderen Sektoren, lesbar ist.
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US6903972B2 (en) * 2003-07-30 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Different methods applied for archiving data according to their desired lifetime
US8352697B2 (en) * 2004-05-17 2013-01-08 Sandisk Il Ltd. Method of managing files for optimal performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502139B1 (en) 1999-06-01 2002-12-31 Technion Research And Development Foundation Ltd. System for optimizing video on demand transmission by partitioning video program into multiple segments, decreasing transmission rate for successive segments and repeatedly, simultaneously transmission

Also Published As

Publication number Publication date
US7149111B2 (en) 2006-12-12
WO2006064497A3 (en) 2006-12-07
KR20070095892A (ko) 2007-10-01
US20060133157A1 (en) 2006-06-22
WO2006064497A2 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
KR100963708B1 (ko) 비휘발성 메모리로의 기록에 대한 제한을 제어하기 위한방법
JP4480571B2 (ja) パイプラインメモリのための効率的な読出し、書込み方法
TWI381272B (zh) 快閃記憶體裝置及快閃記憶體的存取方法
KR100754226B1 (ko) 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치
TWI679538B (zh) 資料儲存系統之控制單元以及邏輯至物理映射表更新方法
KR101529290B1 (ko) 반도체 디스크 장치 및 그것의 데이터 처리 방법
KR20110033206A (ko) 플래시 메모리들에서의 역순 페이지 기록
JP2008524748A (ja) メモリシステムにおけるデータ再配置
JP5166118B2 (ja) 半導体メモリの制御方法
JP5378197B2 (ja) メモリコントローラ、メモリカード、不揮発性メモリシステム
US8819332B2 (en) Nonvolatile storage device performing periodic error correction during successive page copy operations
KR100367295B1 (ko) 광디스크 구동장치의 지역정보 기록장치 및 기록방법
US5724612A (en) Information transfer apparatus and information recording apparatus including transfer control means for determining a transfer sequence of plural information blocks
KR101491687B1 (ko) 버퍼 용량의 사용이 개선된 대량 저장 시스템
JP2005078378A (ja) データ記憶装置及び不揮発性メモリに対するデータ書き込み方法
JP2007199828A (ja) 不揮発性記憶装置およびそのアドレス管理方法
JPH0546461A (ja) メモリカード装置
KR101320917B1 (ko) 파일의 특성에 따라 각기 다른 기록방식을 적용하는 파일기록방법 및 이를 적용한 전자기기
US6523105B1 (en) Recording medium control device and method
JP3552280B2 (ja) 情報転送装置及び情報記録装置
JP2008300018A (ja) 不揮発性メモリおよびその書き換え方法
KR101214784B1 (ko) 녹화 및 재생 속도 개선을 위한 다채널 녹화 및 재생 장치
JP2008021335A (ja) 不揮発性記憶装置、不揮発性記憶装置の書込み方法およびコントローラ
KR100490603B1 (ko) 플래시 메모리 동작 제어 방법 및 장치
JP2005250619A (ja) 不揮発性記憶装置およびその書き換え方法

Legal Events

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

Payment date: 20130522

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 10