KR101456474B1 - 플래시 메모리에서 오류를 방지하는 방법 - Google Patents

플래시 메모리에서 오류를 방지하는 방법 Download PDF

Info

Publication number
KR101456474B1
KR101456474B1 KR1020097003137A KR20097003137A KR101456474B1 KR 101456474 B1 KR101456474 B1 KR 101456474B1 KR 1020097003137 A KR1020097003137 A KR 1020097003137A KR 20097003137 A KR20097003137 A KR 20097003137A KR 101456474 B1 KR101456474 B1 KR 101456474B1
Authority
KR
South Korea
Prior art keywords
bits
cell
pattern
state
memory
Prior art date
Application number
KR1020097003137A
Other languages
English (en)
Other versions
KR20090041400A (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 KR20090041400A publication Critical patent/KR20090041400A/ko
Application granted granted Critical
Publication of KR101456474B1 publication Critical patent/KR101456474B1/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
    • 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
    • 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/5642Sensing or reading circuits; Data output circuits
    • 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

N 데이터 비트가 2N의 순서대로 정렬된 셀의 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 하나를 나타내기 위해 자신의 각각의 셀을 프로그래밍하는 메모리 셀에 저장될 때마다, 상기 N 데이터 비트는 가장 낮은 상태의 패턴(일반적으로 모두가 1인)을 상이한 패턴으로 맵핑하는 변환에 따라 N 비트의 변환된 패턴으로 맵핑되고, 상기 셀은 상기 변환된 패턴을 나타내기 위해 프로그래밍된다. 상기 변환은 각각의 패턴의 비트 중 모두, 일부 또는 하나만을 역변환시킨다. 상기 메모리의 셀이 판독될 때마다, 상기 변환은 역변환된다.
Figure R1020097003137
셀, 상태, 패턴, 프로그래밍, 메모리, 비트, 변환, 맵핑, 회로, 컨트롤러, 프로세서, 호스트, 임계 전압, 역변환, 메커니즘, 삭제된 상태

Description

플래시 메모리에서 오류를 방지하는 방법{METHOD OF AVOIDING ERRORS IN FLASH MEMORY}
본 발명은 일반적으로 플래시 메모리 스토리지 시스템에 관한 것이다. 특히, 본 발명은 플래시 메모리가 메모리 셀 당 다수 비트를 저장할 수 있고 특정한 불안 효과가 최소화되는 플래시 메모리 스토리지 시스템에 관한 것이다.
플래시 메모리 디바이스는 수년 동안 공지되어 왔다. 전형적으로, 플래시 메모리 내의 각각의 셀은 한 비트의 정보를 저장한다. 전통적으로, 한 비트를 저장하는 방법은 한 상태는 논리값 "0"을 나타내고, 다른 상태는 논리값 "1"을 나타내는, 두가지 상태의 셀을 지원하는 것이다. 플래시 메모리 셀에서, 두 상태는 셀의 채널(셀의 트랜지스터의 소스 및 드레인 엘리먼트를 연결하는 영역) 상에 플로팅 게이트를 가지고, 이 플로팅 게이트 내에 저장된 전하의 크기에 대한 두개의 유효 상태를 가짐으로써 구현된다. 전형적으로, 한 상태는 플로팅 게이트에서 0 전하를 가지고, (일반적으로 "1" 상태를 나타내도록 정의된) 삭제된 후 셀의 초기의 기록되지 않은 상태이고, 다른 상태(일반적으로 "0" 상태를 나타내도록 정의된)는 플로팅 게이트에서 일정 크기의 음 전하를 가진다. 게이트에서 음 전하를 가지는 것은 셀의 트랜지스터의 임계 전압(즉, 트랜지스터가 도전되게 하기 위해 트랜지스 터의 제어 게이트에 인가되어야할 전압)을 증가하게 한다. 셀의 임계 전압을 체크함으로써 저장된 비트를 판독하는 것이 가능하다: 임계 전압이 더 높은 상태이면, 비트 값은 "0"이고, 임계 전압이 더 낮은 상태이면 비트 값은 "1"이다. 실제로 셀의 임계 전압을 정확하게 판독할 필요는 없고, 셀이 현재 두 상태 중 어디에 위치하는지 정확하게 식별하는 것이 필요한 전부이다. 이러한 목적을 위해, 두 상태 사이의 중간인 기준 전압값에 대하여 비교하고, 그 결과 셀의 임계 전압이 이 기준 값보다 큰지 작은지를 판단하는 것으로 충분하다.
도 1A는 이들이 동작하는 방법을 그래픽적으로 도시한다. 더욱 상세하게, 도 1A는 다수의 셀의 임계 전압의 분포를 도시한다. 플래시 디바이스 내의 셀은 (예를 들면, 불순물 농도의 작은 변화 또는 실리콘 구조의 결함에 기인하여) 그들의 특성 및 행동이 정확하게 동일하지는 않기 때문에, 동일한 프로그래밍 동작을 모든 셀에 적용하는 것은 모든 셀이 정확하게 동일한 임계 전압을 가지게 하지 못한다(참고로, 역사적이유로 플래시 메모리에 데이터를 기록하는 것을 일반적으로 플래시 메모리를 "프로그래밍한다"라고 하는 데에 유의하라. "기록" 및 "프로그래밍"이라는 용어는 본문에서 교체가능하게 사용된다.). 그 대신, 임계 전압은 도 1A에 도시된 것과 유사한 방식으로 분포된다. "1"의 값을 저장하는 셀은 전형적으로 음의 임계 전압을 가지고, 대부분의 셀은 도 1A의 좌측 피크에 도시된 값과 근접한 임계 전압을 가지고, 더 적은 수의 셀은 더 낮은 또는 더 높은 임계 전압을 가진다. 이와 유사하게, "0"의 값을 저장하는 셀은 전형적으로 양의 임계 전압을 가지고, 대부분의 셀은 도 1A의 우측 피크에 도시된 값과 근접한 임계 전압을 가지 고, 더 적은 수의 셀은 더 낮은 또는 더 높은 임계 전압을 가진다.
최근에, 일반적으로, "멀티 레벨 셀" 또는 짧게 MLC라 불리는 기술을 사용한 새로운 종류의 플래시 디바이스가 시장에 등장하였다(이러한 명칭은 오해의 소지가 있는데, 이전의 유형의 플래시 셀 또한 하나 이상의 레벨을 가지기 때문이다: 그들은 상술한 바와 같이, 두 레벨을 가진다. 따라서, 두 종류의 플래시 셀은 본문에서 "단일 비트 셀"(SBC), 및 "멀티 비트 셀"(MBC)이라고 한다). MBC 플래시에 의한 개선은 각각의 셀에 2 비트를 저장하는 것이다. 이론상으로, MBC는 셀 당 2 비트 이상을 저장하는 것을 포함한다. 설명의 간략화를 위해, 2-비트 케이스가 본문에서 강조되었다. 그러나, 본 발명은 셀 당 2비트 이상을 지원하는 플래시 메모리 디바이스에 동일하게 적용가능함이 이해되어야 한다. 단일 셀에 대하여 2 비트의 정보를 저장하기 위해, 셀은 4개의 상이한 상태 중 하나에 있어야 한다. 셀의 "상태"는 그것의 임계 전압에 의해 표현되므로, MBC 셀은 자신의 임계 전압에 대하여 4개의 상이한 유효 범위를 지원해야 함이 분명하다. 도 1B는 전형적인 MBC 셀에 대한 임계 전압 분포를 도시한다. 예상한 바와 같이, 도 1B는 하나의 상태에 각각 대응하는 4개의 피크를 가진다. SBC 경우와 같이, 각각의 상태는 실제 임계 전압의 범위이며, 단일 임계 전압이 아니다. 셀의 내용을 판독할 때, 보장되어야 하는 모든 것은 셀의 임계 전압이 속한 범위가 정확하게 식별되는 것이다. 종래기술에 대하여, MBC 플래시 메모리의 예는 Harari의 미국 특허번호 제5,434,825호를 참조하라.
4개의 상태 중 하나로서 MBC 셀 내에 2 비트를 인코딩할 때, 도 1B의 가장 좌측의 상태(일반적으로 네거티브한 임계전압을 가짐)는 2 비트 모두 "1"의 값을 가진 경우를 나타내는 것이 일반적이다(하기 설명에서, 다음의 명명법이 사용된다 - 셀의 2 비트는 "하위 비트" 및 "상위 비트"라 한다. 비트의 명백한 값은 오른쪽에 하위 비트를 가진 ["상위 비트" "하위 비트"] 형태로 쓰여 진다. 그러므로, 하위 비트가 "0"이고 상위 비트가 "1"인 경우는 "10"으로 쓰여 진다. 이러한 용어 및 명명법의 선택은 임의적인 것이며, 다른 명칭 및 인코딩이 가능함을 이해해야 한다.). 이러한 명명법을 사용하여, 가장-좌측의 상태는 "11"의 경우를 나타낸다. 다른 3개의 상태는 좌측에서 우측으로의 순서를 따라: "10", "00", "01"로 할당된것으로 도시된다. 상술한 바와 같은 이러한 인코딩을 사용한 MBC NAND 플래시 디바이스의 한 예시적인 구현은 본 문에 설명을 위해 참조에 의해 통합된 Chen의 미국 특허번호 제6,522,580호에서 찾을 수 있다. 특히 Chen 특허의 도 8을 참조하라. 본 발명은 상기 상태의 할당을 따르지 않고 사용될 수 있는 기타 순서가 있다는 것에 유의해야한다. MBC 셀의 내용을 판독할 때, 셀의 임계 전압이 속하는 범위는 정확하게 식별되어야 하며: 이러한 경우에만, 이것은 하나의 기준 전압을 비교하는 것만으로는 항상 달성될 수 없고, 수차례의 비교가 필요할 수 있다. 예를 들어, 도 1B에 도시된 경우에, 하위 비트를 판독하는 한 가지 방법은, 먼저 셀의 임계 전압이 기준 비교 전압 V1과 비교되고, 그 다음 그 비교 결과에 따라, 0 기준 비교 전압 또는 기준 비교 전압 V2와 비교하는 것이다. 하위 비트를 판독하는 또다른 방법은, 셀의 임계 전압을 0 기준 전압 및 기준 비교 전압 V2 모두와 무조건 비 교하는 것이다. 어느 경우에건, 두 번의 비교가 필요하다.
MBC 디바이스는 1 비트가 아닌 2 비트를 저장하는 유사한 크기의 셀을 이용하여 현저한 비용의 효익을 제공한다. 그러나, MBC 플래시를 사용하는 것은, MBC 메모리의 평균 판독 및 기록 시간이 SBC 메모리 보다 더 길고, 성능 감소를 야기한다는 결점이 있다. 또한, MBC의 신뢰성은 SBC 보다 더 낮다. 이는, MBC에서의 임계 전압 사이의 차이가 SBC에서 보다 더 작다는 것에서 쉽게 이해될 수 있다. 따라서, 2 개 상태 사이의 커다란 갭때문에 SBC에서는 미약한 상기 문턱 전압에서의 요란(예를 들면, 문턱 전압의 드리프트 또는 이웃 셀에 대한 동작으로부터의 간섭, 등을 일으키는 저장된 전하의 누설)은 MBC 셀이 하나의 상태에서 다른 상태로 이동하도록 하여, 오류 비트를 야기한다. 상기 결론적인 결과는 데이터 유지 시간 또는 다수의 기록/삭제 사이클에 대한 상기 디바이스의 내구성에 관해 MBC 셀의 더 낮은 성능의 스펙이다. 따라서, MBC 셀 및 SBC 셀 모두를 이용하는 것에 이점이 있고, 상기 선택은 애플리케이션의 요구조건에 따라 다를수 있다.
상기 설명은 플로팅 게이트 플래시 메모리 셀을 다루었지만, 다른 유형의 플래시 메모리 기술이 있다. 예를 들면, NROM 플래시 메모리 기술에서, 도전성 플로팅 게이트가 없지만, 대신에 전하를 트랩핑하는 절연 층이 있다. 본문의 설명이 플로팅-게이트 기술의 관점에서 주어졌지만, 본 발명은 모든 플래시 메모리 유형에 동일하게 적용가능하다.
플래시 메모리 디바이스에는 다수의 오류 소스가 있다. 상술한 바와 같이, 상기 하나의 소스는 셀의 원래 기록된 상태를 또다른 부정확한 상태로 시프트하는 메모리 셀의 게이트로부터의 전자의 누설이며, 이는 셀 판독시 하나 이상의 비트 오류를 야기한다. 본 발명은 주로 프로그램 장애(Program Disturb) 또는 간단히 PD라고 하는 오류의 특정한 소스에 관한 것이다. 데이터가 상기 플래시 디바이스에 저장되는 긴 기간동안의 오류의 느린 축적을 가져오는 누설-유형의 효과와 달리, 상기 PD 효과는 디바이스 셀로의 데이터 기록에 바로 후속하여, 즉각적인 오류의 표시를 가져온다.
상기 PD 효과는 기록될 의도를 가지지 않은 셀이 의도하지 않게 자신의 최초의 가장 좌측의 상태에서 일부 다른 상태로 이동하도록 한다. (본 문의 설명은 자신의 좌측 방향이 더 낮은 값을 나타내는 임계 전압 축을 도시하는 도 1A 및 1B에 사용되는 공통의 실시를 가정한다. 이는 임의적인 실시예이며, 어떠한 방식으로건 본 발명의 범위를 제한하도록 한정되어서는 안된다.). 도 1B의 셀 당 2 비트의 예를 참조하면, "11"의 비트값(또는, 즉 셀의 삭제 상태)에 대응하는 가장 좌측 상태에 있고 이러한 상태를 유지하는 것으로 가정되는 셀이 "10"의 가장 좌측에서 다음번 상태에 있는 것으로 발견되어, 이러한 셀에 저장된 2 비트중 하나의 비트가 부정확하게 되는 것을 야기한다. 일부 경우, 특히 셀당 2 비트 이상을 저장하고 4개 이상의 상태를 가지는 셀에서, PD 효과는, 가장 좌측의 상태에서 자신의 가장 인접한 상태로 이동할 때 뿐만 아니라, 가장 좌측의 상태로부터 더 이격된 상태로 이동할 때도, 그리고, 또한 가장 좌측의 상태가 아닌 상태로부터 자신의 우측(즉, 더 높은 임계 전압을 가지는)으로 또다른 상태로 이동할 때도 입증되었다. 그러나, 가장 좌측으로부터 자신의 바로 인접한 이웃하는 상태로 이동하는 상기 가장 먼저 기술된 경우는 가장 일반적인 것이며, 본문에서 본 발명의 방법 전체를 제한하지 않으면서 모든 예시 및 설명에 대해 사용된다.
상기 PD 효과에 대한 이유의 논의에 대한 배경으로서, Chen의 특허의 도 1과 동일한 도 2는 전형적인 종래 기술의 플래시 메모리 디바이스의 블록도이다. 매트릭스로 배치된 복수의 메모리 셀 M을 포함하는 메모리 셀 어레이(1)는 컬럼 제어 회로(2), 로 제어 회로(3), c-소스 제어 회로(4) 및 c-p-웰 제어 회로(5)에 의해 제어된다. 컬럼 제어 회로(2)는, 상기 메모리 셀(M)에 저장된 데이터를 판독하고 프로그램 동작 동안 메모리 셀(M)의 상태를 판정하고, 프로그래밍을 촉진하거나 상기 프로그래밍을 억제하기 위해 상기 비트 라인(BL)의 전압 레벨을 제어하도록 메모리 셀 어레이(1)의 비트 라인(BL)으로 연결된다. 로 제어 회로(3)는 워드 라인(WL) 중 하나를 선택하고, 판독 전압을 인가하고, 컬럼 제어 회로(2)에 의해 제어되는 비트 라인 전압 레벨과 조합된 프로그래밍 전압을 인가하고, 및 메모리 셀(M)이 형성된 p-유형 지역의 전압과 결합된 삭제 전압을 인가하기 위해 워드 라인(WL)에 연결된다. C-소스 제어 회로(4)는 상기 메모리 셀(M)에 연결된 공통 소스 라인을 제어한다. C-p-웰 제어 회로(5)는 c-p-웰 전압을 제어한다. 일반적으로, NAND 플래시 디바이스에서, 하나의 워드 라인에 의해 제어되는 셀은 상기 디바이스의 하나 또는 2개의 페이지에 대응한다.
상기 메모리 셀(M)에 저장된 데이터는 컬럼 제어 회로(2)에 의해 판독되고 I/O 라인 및 데이터 입/출력 버퍼(6)를 통해 외부 I/O라인으로 출력된다. 메모리 셀에 저장되는 프로그램 데이터는 외부 I/O 라인을 통해 데이터 입/출력 버퍼(6)로 입력되고, 컬럼 제어 회로(2)로 전송된다. 상기 외부 I/O 라인은 컨트롤러(20)에 연결된다.
플래시 메모리 디바이스 제어를 위한 명령어 데이터는 컨트롤러(20)에 연결된 외부 제어 라인에 연결된 명령어 인터페이스로 입력된다. 상기 명령어 데이터는 플래시 메모리에게 어떠한 동작이 요청되는지를 가르쳐준다. 상기 입력 명령어는 컬럼 제어 회로(2), 로 제어 회로(3) c-소스 제어 회로(4), c-p-웰 제어 회로(5) 및 데이터 입/출력 버퍼(6)를 제어하는 상태 머신(8)으로 전송된다. 상태 머신(8)은 준비/비지 또는 통과/실패와 같은 플래시 메모리의 상태 데이터를 출력할 수 있다.
컨트롤러(20)는 개인용 컴퓨터, 디지털 카메라, 개인휴대정보단말기와 같은 호스트 시스템과 연결되거나 또는 연결가능하다. 이는 데이터를 메모리 어레이(1)에 저장하거나 또는 그로부터 판독하는 것과 같은 명령어를 초기화하고, 상기 데이터를 각각 제공 또는 수신하는 호스트이다. 컨트롤러(20)는 이러한 명령어를 명령어 회로(7)에 의해 번역 및 실행될 수 있는 명령어 신호로 변환한다. 컨트롤러(20)는 또한 일반적으로 사용자가 메모리 어레이(1)로 데이터를 기록하거나 또는 그로부터 판독하기 위한 버퍼 메모리를 포함한다. 일반적인 메모리 시스템은 컨트롤러(20)를 포함하는 하나의 집적회로 칩(21), 및 각각이 메모리 어레이 및 연관된 제어, 입/출력 및 상태 머신 회로를 포함하는 하나 이상의 집적회로 칩(22)를 포함한다. 물론 상기 경향은 하나 이상의 집적 회로 칩에 시스템의 메모리 어레이와 컨트롤러 회로를 함께 집적하는 것이다. 상기 메모리 시스템은 호스트 시스템의 일부로서 내장되거나, 또는 착탈가능하게 호스트 시스템의 짝을 이루는 소켓으로 삽입가능한 메모리 카드에 포함된다. 이러한 카드는 전체 메모리 시스템을 포함하거나, 또는 주변 회로에 연관된 컨트롤러 및 메모리 어레이가 개별 카드에 제공된다.
PD 효과의 이유는 페이지 프로그래밍시 NAND 플래시 디바이스의 셀에 인가된 전압을 리뷰하면 쉽게 이해된다 셀의 페이지 프로그래밍시, 상대적으로 고 전압이 상기 페이지의 셀의 제어 게이트에 연결된 워드 라인에 인가된다. 특정한 셀의 임계 전압이 이러한 제어 게이트 전압의 결과로서 증가될지 여부를 결정하는 것은 그 셀에 연결된 비트 라인에 인가된 전압이다. 데이터가 기록되지 않은(즉, 삭제된 상태를 유지하면서, 모두-1의 상태를 나타내는) 셀은 셀 전체의 전압 차이를 최소화시키는 상대적으로 고전압 레벨에 연결된 자신의 비트 라인을 가진다. 기록될 셀은 저 전압에 연결된 자신의 비트 라인을 가지며, 따라서 셀 전체에서의 커다란 전압차를 야기하고, 셀의 임계 전압이 점차 증가되도록 하며, 따라서 셀이 도 1B의 전압축의 우측으로 이동하도록 하여 셀의 상태를 변화시킨다.
그러나, 기록되지 않을 것으로 의도되는 셀이 기록될 것으로 의도되는 셀보다 그 전체의 더 낮은 전압차를 가질지라도, 기록되지 않을 셀은 여전히 그 전체에 일부 전압차를 가지고 있다. 기록될 페이지가 높은 임계 전압(예를 들면 가장 우측 상태로의)에 대해 기록되는 셀을 가진다면, 프로그래밍되지 않은 셀 전체의 전압차는 더 높아진다. 이는 상기 페이지의 모든 셀의 모든 제어 게이트가 그들 자신에게 동일한 전압을 인가시키며, 임계 전압이 더 높아질 수록 상기 전압이 더 높 아진다. 따라서, 일부 셀에 더 높은 제어 게이트(즉, 워드 라인)을 인가할 필요성은 프로그래밍되지 않은 셀에서의 더 높은 전압차를 가져온다. 상기 셀이 이러한 예측된 전압 차에 의해 영향을 받지 않는 목적으로 설계되었다고 하더라도, 실제 NAND 플래시 디바이스에서, 이러한 전압 차는 셀에 스트레스를 가하고, 일부 셀에서는 이것이 의도하지도 원하지도 않았다고 하더라도 자신들의 상태를 변화시키도록 한다.
상기 설명을 요약하면, PD는 셀의 페이지 프로그래밍시 가장 좌측의 삭제된 상태로 남아있는 것으로 의도되는 일부 셀들이 또다른 상태로 되고, 상기 셀들의 판독시 비트 오류를 야기하는 효과이다.
PD 효과는 경험적으로 그리고 통계적으로 측정되며, 오류 보정 설계의 형태로되어 있는 대응책이 그를 조정하기 위해 적용된다. 플래시 디바이스 제조사는 이러한 잠재적 오류의 소스를 인지하며, 그들은 자신들의 고객들에게 고객들이 사용해야하는 오류 보정의 레벨을 추천할 때 이러한 점을 고려한다. 마찬가지로, 셀당 2비트 MBC 플래시 디바이스의 제조사가 4 비트 ECC 설계(사용자 데이터의 매 512 바이트가 4 비트 오류까지의 발생에 대해 보호되어야하는 것을 의미함)를 추천할 때, 그는 디바이스로 저장된 랜덤 데이터 패턴을 가정하는 통계 분석과 PD 유형의 오류가 이러한 상황에서 발생하는 확률에 대해 상기 추천을 기초로한다. 명백하게, 다른 오류 소스 및 유형이 또한 이러한 연산에 고려된다.
불행히도, 전형적인 실재 사용자 데이터는 랜덤이 아니다. 실재 사용자 파일에 대한 측정치는 셀의 다양한 가능성있는 상태가 동일한 발생 확률을 가지지 않 는 다는 것을 보여준다. 셀의 가장 좌측의 상태가 기록되지 않은 셀의 디폴트 값이기 때문에, 상기 상태는 가장 발생빈도가 높다. 이는, 초기화되지 않은, 또는 파일 내에서 사용되지 않은 메모리 섹션이 삭제 상태의 셀에 매우 자주 대응한다는 것을 용이하게 이해하도록 한다.
그 결과, 실재 애플리케이션에서, PD 오류의 문제는 랜덤 데이터 패턴의 통계적 연산에 기초하여 예측된 것보다 더 심각하다. 상대적으로 다수의 셀이 PD 오류에 대해 가장 취약한 상태인 삭제 상테에 있고, 따라서, 랜덤 데이터 분산 모델에 의해 예측되는 것 보다 더 많은 PD 오류가 실제 발생할 것이다.
따라서, 실재 시나리오에서 사용시 PD에 대해 보다 덜 취약한 의미에서 종래 기술의 플래시 메모리 디바이스 보다 더 신뢰성있는 플래시 메모리 디바이스에 대한 폭넓게 인지된 요구가 있고, 그를 구비하는 것이 현저한 이점을 가진다.
본 발명에 따르면, (a) 적어도 하나의 셀을 포함하고, 각각의 셀의 2N의 순서대로 정렬된(ordered) 상태들 중 각각의 하나로서 N>1비트의 2N의 상이한 패턴 중 하나를 나타내기위해 각각의 셀을 프로그래밍하도록 동작하는 메모리를 제공하는 단계, (b) N비트 패턴 중 상이한 하나의 패턴으로 맵핑되는 상기 상태중 가장 낮은 상태로서 상기 메모리에 의해 프로그래밍되는 N 비트 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 정의하는 단계, 및 (c) 상기 적어도 하나의 셀 중의 하나에 저장하기 위해 N 데이터 비트를 수신할 때마다: (ⅰ) N 데이터 비트를 상기 변환에 따라 N 비트의 변환된 패턴 중 하나로 맵핑하고, 및 (ⅱ) N 비트의 하나의 변환된 패턴을 나타내는 상태로 상기 하나의 셀을 프로그래밍하는 단계;를 포함하는 데이터를 저장하는 방법이 제공된다.
본 발명에 따르면, (a) 적어도 하나의 셀을 포함하는 메모리, (b) 각각의 셀의 2N의 순서대로 정렬된 상태의 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 하나를 표시하도록 각 셀을 프로그래밍하는 회로로서, N 비트 패턴 중 하나는 가장 낮은 상태로 표시되는 회로, 및 (c) (ⅰ) 적어도 하나의 셀 중 하나에 저장하기 위해 N 데이터 비트를 수신하고, (ⅱ) N 비트 패턴중 상이한 하나의 패턴으로 맵핑되는 상기 상태 중 가장 낮은 상태로서 상기 회로에 의해 프로그래밍되는 N 비트 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 이용하여, 상기 N 데이터 비트를 상기 변환에 따라 N 비트의 변환된 패턴 중 하나로 항상 맵핑하고, 및 (ⅲ) 상기 N 비트 중 하나의 변환된 패턴을 상기 회로로 전송하고, 그런다음 상기 회로는 상기 N 비트 중 하나의 변환된 패턴을 나타내기 위해 적어도 하나의 셀 중 하나를 프로그래밍하도록, 동작하는 컨트롤러;를 포함하는 메모리 디바이스가 제공된다.
본 발명에 따르면, (a) (ⅰ) 적어도 하나의 셀, 및 (ⅱ) 상기 각각의 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 나타내도록 각 셀을 프로그래밍하기 위한 회로로서, N 비트의 패턴 중 하나가 가장 낮은 상태로 표시되는 회로:를 포함하는 메모리 디바이스; 및 (b) (ⅰ) 적어도 하나의 셀중 하나에 저장될 N 데이터 비트를 제공하고, (ⅱ) N 비트의 패턴 중 상이한 하나의 패턴으로 맵핑되는 상태 중 가장 낮은 상태로서 상기 회로에 의해 프로그래밍되는 N 비트의 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 이용하여, N 데이터 비트를 상기 변환에 따라 N 비트의 변환된 패턴중 하나로 항상 맵핑하고, 및 (ⅲ) 상기 N 비트의 하나의 변환된 패턴을 메모리 디바이스로 전송하고, 그런다음 상기 메모리 디바이스의 회로가 상기 N 비트의 하나의 변환된 패턴을 나타내기위해 적어도 하나의 셀 중 하나를 프로그래밍하도록 동작하는 프로세서를 구비하는 메모리 디바이스의 호스트;를 포함하는 시스템이 제공된다.
본 발명에 따르면, 적어도 하나의 셀을 포함하고 각각의 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 N 비트의 2N의 상이한 패턴 중 하나를 나타내기위해 각각의 셀을 프로그래밍하도록 동작하는 메모리에 N>1 데이터 비트를 저장하기 위한 컴퓨터-판독가능한 코드를 내장한 컴퓨터 판독가능한 스토리지 매체로서, 상기 컴퓨터 판독가능한 코드는, (a) N 비트의 패턴 중 하나의 상이한 패턴으로 맵핑되는 상태 중 가장 낮은 상태로서 프로그래밍된 N 비트의 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 이용하여, N 데이터 비트를 상기 변환에 따라 N 비트의 변환된 패턴 중 하나로 항상 변환시키는 프로그램 코드; 및 (b) 상기 N 비트의 하나의 변환된 패턴을 저장을 위해 메모리로 전송하고, 상기 적어도 하나의 셀 중 하나를 프로그래밍함으로써 상기 하나의 변환된 패턴을 표시하도록 하는 프로그램 코드;를 포함하는 컴퓨터 판독가능한 스토리지 매체가 제공된다.
본 발명에 따르면, (a) 적어도 하나의 셀을 포함하고 2N(여기서 N>1)의 상이한 순서대로 정렬된 상태 중 선택된 하나에 각각의 셀을 배치하도록 동작하는 메모리를 제공하는 단계; 및 (b) 메모리에 저장하기 위해 입력 데이터로서 N개의 1의 패턴을 수신할 때마다, 상기 입력 데이터를 표시하기 위해 가장 낮은 상태가 아닌 상태 중 하나에 적어도 하나의 셀 중 하나의 셀을 배치하는 단계;를 포함하는 데이터 저장 방법이 제공된다.
본 발명에 따르면, (a) 적어도 하나의 셀을 포함하는 메모리; 및 (b) 2N의 상이한 순서대로 정렬된 상태 중 선택된 하나에 임의의 하나의 셀을 배치함으로써 적어도 하나의 셀 중 하나에 N>1 데이터 비트를 저장하도록 동작하는 메커니즘;을 포함하고, N개의 1의 비트 패턴을 저장하기 위해 사용되는 상태는 항상 가장 낮은 상태와 다른 상태 중 하나인 메모리 디바이스가 제공된다.
본 발명에 따르면, (a) 적어도 하나의 셀을 구비한 메모리를 포함하는 메모리 디바이스; (b) 적어도 하나의 메모리 셀 중 하나에 저장하기 위한 N>1 데이터 비트를 제공하는 메모리 디바이스의 호스트; 및 (c) 2N의 상이한 순서대로 정렬된 상태 중 선택된 하나에 임의의 하나의 셀을 배치함으로써 상기 적어도 하나의 셀 중 임의의 하나에 N 데이터 비트를 저장하도록 동작하는 메커니즘;을 포함하고, 상기 N개의 1의 비트 패턴을 저장하도록 사용되는 상태는 항상 가장 낮은 상태가 아닌 상태 중 하나인 데이터 저장을 위한 시스템이 제공된다.
본 발명에 따르면, 셀을, 각각의 상태가 N>1 비트의 2N의 상이한 패턴 중 각각의 하나를 나타내는 2N의 순서대로 정렬된 상태 중 하나로 프로그래밍함으로써 메모리 셀에 저장된 데이터를 판독하는 방법에 있어서, (a) N 비트의 패턴 중 상이한 하나로 맵핑되는 상태 중 가장 낮은 상태로서 상기 메모리에 의해 프로그래밍되는 N 비트의 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 정의하는 단계; (b) 상기 셀에 저장된 데이터를 판독할 때마다 (ⅰ) 상기 셀의 상태에 의해 표시된 N 비트의 저장된 패턴을 판정하고, 및 (ⅱ) 상기 N 비트의 저장된 패턴을 상기 변환의 역변환에 따라 N 비트의 판독된 패턴으로 맵핑;하는 단계를 포함하는 방법이 제공된다.
본 발명에 따르면, (a) 적어도 하나의 셀을 포함하는 메모리, (b) 각각의 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 하나를 표시하도록 각각의 셀을 프로그래밍하는 회로로서, N 비트의 패턴 중 하나가 가장 낮은 상태로 표시되는 회로, 및 (c) (ⅰ) 상기 임의의 하나의 셀의 상태에 의해 표시되는 N 비트의 저장된 패턴을 판정하는 단계, 및 (ⅱ) N 비트의 패턴 중 상이한 하나의 패턴으로 맵핑되는 상기 상태중 가장 낮은 상태로서 상기 회로에 의해 프로그래밍되는 N 비트의 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환의 역변환에 따라 N 비트의 판독된 패턴으로 N 비트의 저장된 패턴을 맵핑하는 단계를 포함하는 것에 의해 상기 적어도 하나의 셀 중 하나에 저장된 데이터를 항상 판독하도록 동작하는 컨트롤러;를 포함하는 메모리 디바이스가 제공된다.
본 발명에 따르면, (a) (ⅰ) 적어도 하나의 셀, 및 (ⅱ) 상기 각각의 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 나타내도록 각각의 셀을 프로그래밍하기 위한 회로로서, N 비트의 패턴 중 하나가 가장 낮은 상태로 표시되는 회로:를 포함하는 메모리 디바이스; 및 (b) (ⅰ) 임의의 하나의 셀의 상태에 의해 표시되는 N 비트의 저장된 패턴을 판정하고, 및 (ⅱ) N 비트 패턴 중 상이한 하나의 패턴으로 맵핑되는 가장 낮은 상태로서 상기 회로에 의해 프로그래밍되는 N 비트의 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환의 역변환에 따라, N 비트의 저장된 패턴을 N 비트의 판독된 패턴으로 맵핑하는 것을 포함하는 단계에 의해 상기 적어도 하나의 셀 중 하나에 저장된 데이터를 항상 판독하도록 동작하는 프로세서를 구비하는 메모리 디바이스의 호스트;를 포함하는 데이터를 저장 및 판독하는 시스템이 제공된다.
본 발명에 따르면, N>1 비트의 2N의 상이한 패턴 중 하나를 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 나타내기위해 상기 셀을 프로그래밍하도록 동작하는 메모리 셀에 저장된 데이터를 판독하기 위한 컴퓨터-판독가능한 코드를 내장한 컴퓨터 판독가능한 스토리지 매체로서, 상기 컴퓨터 판독가능한 코드는, 상기 셀에 저장된 데이터를 판독할 때마다, (a) 상기 셀의 상태에 의해 표시되는 N 비트의 저장된 비트를 판정하고; 및 (b) N 비트의 패턴중 상이한 하나의 패턴으로 맵핑되는 상태 중 가장 낮은 상태로서 상기 메모리에 의해 프로그래밍되는 N 비트의 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환의 역변환에 따라, 상기 N 비트의 저장된 패턴을 N 비트의 판독 패턴으로 맵핑하는; 프로그램 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 스토리지 매체가 제공된다.
본 발명의 제 1 측면은 데이터를 저장하는 방법에 관한 것이다. 상기 데이터는 하나 이상의 셀을 포함하는 메모리에 저장된다. 상기 메모리는 상기 셀의 2N 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 하나를 표시하기 위해, 자신의 셀을 프로그래밍하거나, 또는 자신의 셀 각각을 프로그래밍하도록 동작한다. 예를 들면, N=2라면, 상기 메모리는 도 1B에 도시된 4개의 임계 전압 범위 중 하나로서 상기 4 개의 비트 패턴("11", "10", "00", "01") 중 하나를 나타내기 위해 셀을 프로그래밍하거나, 또는 자신의 셀 각각을 프로그래밍하도록 동작할 수 있다. 도 1B에 도시된 임계 전압 범위는 가장 낮은 임계 전압 범위에서 가장 높은 임계 전압 범위까지의 순서로 되어있음에 유의하라. 비트 패턴의 상이한 하나로 맵핑되는 상태 중 가장 낮은 상태로서 상기 메모리에 의해 프로그래밍되는 비트 패턴인, N 비트 패턴 각각을 대응하는 변환된 비트 패턴으로 맵핑하는 변환이 정의된다. 도 1B의 예에서, 이는 "10", "00", 또는 "01"로의 "11"의 맵핑을 의미한다. N 데이터 비트가 셀 또는 셀 중 하나에 저장하기 위해 수신될 때마다, 수신된 비트 패턴은 상기 변환된 비트 패턴 중 하나로 맵핑되고 상기 셀은 수신된 비트 패턴을 나타내는 상태에 대한 것이 아니라 변환된 비트 패턴을 나타내는 상태로 프로그래밍된다. 셀을 프로그래밍하기 전에 상기 방식으로 수신된 비트 패턴이 항상 변환된 비트 패턴으로 맵핑되는 것은 본 발명을 Gonzalez 등의 미국 특허 제 6,684,289와 구별시킨다. 하기에 기술되는 바와 같이, Gonzalez 등은 때때로 수신된 비트 패턴을 상기 방식으로 변환된 비트 패턴으로 맵핑하고, 때때로는 수신된 비트 패턴을 상기 방식으로 변환된 비트 패턴으로 맵핑하지 않는다.
바람직하게는, 상기 상태는 프로그래밍되는 셀의 상이한 임계 전압 범위이다.
바람직하게는, 상기 메모리에 의해 가장 낮은 상태로 프로그래밍되는 비트 패턴은 N개의 1의 패턴이다.
바람직하게는 상기 변환은 1:1 및 전사이다.
본 발명의 실시예의 하나의 바람직한 클래스에서, 상기 변환은 모든 비트 패턴의 비트 모두를 역변환시킨다. 도 1B의 예에서, "11"은 "00"으로, "10"은 "01"로, "00"은 "11"로, 그리고 "01"은 "10"으로 맵핑된다. 상기 예시적인 변환은 1:1 및 전사임에 유의하라.
본 발명의 실시예의 또다른 바람직한 클래스에서, 상기 변환은 모든 비트 패턴의 비트의 일부만을 역변환시킨다. 도 1B에서, 이러한 하나의 예시적인 변환은 "11"을 "10"으로, "10"을 "11"로, "00"을 "01"로, 그리고 "01"을 "00"으로 맵핑한다. 이러한 예시적인 변환 역시 1:1 및 전사임에 유의하라.
본 발명의 실시예의 제 3의 바람직한 클래스에서, 상기 변환은 모든 비트 패턴 중 하나 또는 하나만을 역변환시킨다. 예를 들면, N=3이라면, "110", "101" 또는 "011" 중 하나만(다른 비트는 아니고) "111"로 맵핑될 수 있다.
바람직하게는, 상기 가장 낮은 상태는 프로그래밍된 셀의 삭제된 상태이다. 대안으로, 상기 메모리는 프로그래밍된 셀을 상기 셀이 프로그래밍될 수 있는 2N의 상태 중 어떠한 것 보다 더 낮은 삭제된 상태에 배치하도록 동작한다.
본 발명의 범위는 또한 상기 방법을 이용하여 데이터를 저장하는 메모리 디바이스, 상기 방법을 이용하여 데이터를 저장하는 시스템, 및 상기 방법을 구현하는 컴퓨터 판독가능한 코드를 구비한 컴퓨터 판독가능한 스토리지 매체를 포함한다.
본 발명의 제 2 측면은 또한 데이터 저장 방법에 관한 것이다. 상기 데이터는 하나 이상의 셀을 포함하는 메모리에 저장된다. 상기 메모리는 자신의 셀 또는 자신의 셀 각각을 2N(N>1)의 상이한 순서대로 정렬된 상태 중 선택된 하나로 배치하도록 동작한다. 4개의 순서대로 정렬된(가장 낮은 것에서 가장 높은 것 까지의) 도 1B의 임계 전압 범위는 N=2에 대한 순서가 있는 상태의 예이다. N개의 1의 패턴이 상기 메모리에 저장하기 위한 입력 데이터로서 수신될 때마다, 상기 메모리의 셀, 또는 상기 메모리 셀 중 하나가 상기 입력 데이터를 표시하기 위해 가장 낮은 상태가 아닌 상태 중 하나에 배치된다.
바람직하게는, 상기 셀(들)의 상태는 상기 셀(들)의 임계 전압 범위이다.
바람직하게는, 상기 가장 낮은 상태는 셀(들)의 삭제된 상태이다. 대안으로, 상기 메모리는 상기 셀 또는 상기 셀 각각을 상기 셀 또는 셀들이 데이터를 표시하기 위해 배치되는 2N의 상태 중 어떠한 것 보다 낮은 삭제된 상태로 배치하도록 동작한다.
본 발명의 범위는 또한 상기 방법을 이용하여 데이터를 저장하는 메모리 디바이스와 상기 방법을 이용하여 데이터를 저장하는 시스템을 포함한다. 상기 시스템은 하나 이상의 셀을 포함하는 메모리 디바이스와 상기 메모리 디바이스의 호스트를 포함한다. 바람직하게는, 상기 메모리 디바이스에서, 상기 방법에 영향을 주는 메커니즘이 상기 셀(들)을 프로그래밍하기 위해 회로로 구현된다. 대안으로, 상기 방법에 영향을 주는 메커니즘의 적어도 일부는 상기 메모리 디바이스의 컨트롤러로 구현된다. 바람직하게는, 상기 시스템에서, 상기 방법에 영향을 주는 메커니즘은 상기 셀(들)을 프로그래밍하기 위한 메모리 디바이스의 회로로 구현된다. 대안으로, 상기 방법에 영향을 주는 메커니즘의 적어도 일부는 상기 메모리 디바이스의 컨트롤러로 구현된다. 대안으로, 상기 방법에 영향을 주는 메커니즘의 적어도 일부는 상기 호스트에서 구현된다.
본 발명의 제 3 측면은 각각의 상태가 N>1 비트의 2N의 상이한 패턴 중 각각의 하나를 표시하는, 2N의 순서대로 정렬된 상태 중 하나로 상기 셀을 프로그래밍함으로써 메모리 셀에 저장되는 데이터를 판독하는 방법이다. 상기 비트 패턴 중 상이한 하나의 패턴으로 맵핑된 상태 중 가장 낮은 것으로서 상기 메모리에 의해 프로그래밍된, N 비트 패턴의 각각을 대응하는 변환된 비트 패턴으로 맵핑하는 변환이 정의된다. 데이터가 상기 셀로부터 판독될 때마다, 상기 셀의 상태에 의해 표시되는 저장된 비트 패턴이 판정되고, 상기 저장된 패턴은 상기 변환의 역변환에 따라 판독된 비트 패턴으로 맵핑된다. 이러한 방식으로 상기 저장된 비트 패턴이 항상 판독된 비트 패턴으로 맵핑되는 것은 본 발명을 Gonzalez 등의 발명과 구별짓는다. 이러한 판독 방법은 데이터를 저장하기 위해 실제로 프로그래밍된 셀에게만 적용한다는 것에 유의하라. 예를 들면, 하기에 기술된 바와 같이, 바람직하게는, 삭제되었지만 그 삭제 이후에 프로그래밍되지 않은 셀은 상기 저장된 비트 패턴을 판독 비트 패턴으로 맵핑하지 않고서 판독된다.
본 발명의 범위는 또한 상기 방법을 이용하여 저장된 데이터를 판독하는 메모리 디바이스, 상기 방법을 이용하여 저장된 데이터를 판독하는 시스템, 및 상기 방법을 구현하기 위한 컴퓨터 판독가능한 코드를 구비하는 컴퓨터 판독가능한 저장 매체를 포함한다.
본 발명은 첨부 도면을 참조하여 예시의 방식으로서만 본문에 기술된다.
도 1A는 1 비트 모드로 프로그래밍된 플래시 셀의 임계 전압 분포를 도시한다.
도 1B는 2 비트 모드로 프로그래밍된 플래시 셀의 임계 전압 분포를 도시한다.
도 2는 플래시 메모리 디바이스의 블록도이다.
도 3-5는 본 발명의 시스템의 고-레벨 블록도이다.
본 발명은 PD 오류 효과를 감소시키는 셀당 멀티 비트의 플래시 메모리 스토리지 디바이스, 및 상기 디바이스가 PD 오류 효과를 감소시키는 방법에 관한 것이다. PD 오류의 감소는, 종래 기술의 디바이스에서와 같이 가장 좌측의 상태 대신 에, 상기 셀의 디폴트인 모두-1인 상태를 상기 임계 전압 축을 따라 중간의 상태로 놓음으로써 달성된다.
본 발명에 따른 셀당 멀티 비트의 플래시 메모리의 원리와 동작은 도면과 하기의 설명을 참조하여 더 잘 이해된다.
도 1B의 예에 따라, 본 발명의 플래시 메모리 디바이스는, 가장 좌측의 상태에 의해 표시되는 "11"의 값을 가지는 것이 아니라, 예를 들면 좌측으로부터 3번째 상태에 의해 표시되는 값을 가진다. 따라서, 좌측으로부터 우측으로의 상태의 순서는 도 1B에서와 같이 {"11", "10", "00", "01"}이 아니라 예를 들면, {"00", "01", "11", "10"}이 될 수 있다. 이 경우, 하기에 지시된 바와 같이 매우 일반적인, "11"의 값을 포함해야하는 셀은 좌측으로부터 3번째 상태로 기록된다. 따라서, "11"을 포함하는 모든 상기와 같은 셀은 PD 오류 효과에 의해 영향을 받지않는다. "00"을 포함하는 모든 셀들은 PD 오류에 대해 취약하지만, 이러한 셀이 실재에 있어서는 플래시 디바이스에 보다 덜 사용되기 때문에 PD 오류의 전체 예상되는 확률은 감소된다.
본 발명의 이점을 취하기 위해, 플래시 메모리 디바이스의 새로운 아키텍처를 설계할 필요는 없다. 본 발명은 그것이 시장에 존재할때 표준 NAND 플래시 기술에 용이하게 적용가능하다. 가장 좌측의 상태에 배치되지 않는 모두-1인 상태를 구비한 원하는 결과는 저장될 비트로의 간단한 변환을 적용함으로써 달성될 수 있다. 상술한 예에서, 이는 그것을 셀에 기록하기 전에 각각의 그리고 모든 비트를 역변환하고, 그런다음 그것을 셀로부터 판독한 후에 각각의 그리고 모든 비트를 역 변환하는 것에 의해 달성된다. 따라서, 사용자가 자신이 셀로 "11"을 저장한 것으로 믿는 반면, 플래시 디바이스는 실제로는 거기에 "00"을 저장하는 것으로 지시받는다. 따라서, 상기 셀은 좌측으로부터 제3 상태로 놓이며 PD 오류를 겪지않는다. 그런다음, 상기 데이터 판독시, 상기 셀은 종래 기술의 플래시 디바이스에서 "00"으로서 간주되는 값을 제공하지만, 상기 데이터는 다시 역변환되어 사용자는 "11"을 정확하게 수신하여 판독한다.
상기 예가 모든 비트가 역변환되는 변환을 나타내지만, 이는 반드시 그것 하나만 가능한 것이 아니다. 예를 들면 셀에 저장되는 비트 패턴 중 오직 하나의 비트만 역변환될 수 있다. 또는 상기 변환은 역변환에 제한되지 않고 보다 복잡한 동작을 포함할 수 있다. 변환 테이블이 상기 셀로 물리적으로 전송되어야하는 사용자 데이터에 대응하는 값을 발견하기 위해 채용된다. 적용된 변환의 필수적인 특성은 모두-1인 값은 가장 좌측의 상태가 아닌 셀의 상태로 변환된다는 것이다.
데이터 비트로 변환을 적용하는 상기 방법은 상기 셀이 기록되는 것을 가정함에 유의해야한다. 셀이, 상기 가장 좌측의 상태로 물리적으로 삭제될 때, 그리고 본 발명의 방법에 따라 기록되기 전에 상기 셀은 "11"의 값을 나타내지만, 여전히 가장 좌측의 상태에 있다. 이는 아직 기록되지 않은 페이지를 기록된 페이지와 구별할 수 있는 플래시 메모리 디바이스를 이용하여 상기 애플리케이션에 의해 조정될 수 있다. 이는, 예를 들면 페이지 프로그래밍 동작으로 일부로서 항상 기록되는 하나 이상의 플래그 셀을 할당함으로써 용이하게 수행할 수 있고, 플래시 관리 시스템의 종래기술에서 공지된 것이며, 따라서, 가장 좌측 상태에 있는 것으로 밝혀지면 기록되지 않은 페이지로 지시한다. 이와 같이 기록되지 않은 것으로 발견된 페이지는 표준 종래 기술의 로직에 따라 번역되지만, 기록된 것으로 발견된 페이지는 본 발명의 방법에 따라 번역된다. 기록되지 않은 페이지가 PD 오류를 가지지 않을때(PD 오류가 오직 프로그래밍 동작동안에만 도입될 때), 본 해결안에 따라 여전히 기록되지 않은 페이지에서 PD 오류의 위험성은 없다.
스토리지 디바이스에 저장된 논리적 비트 값이 실제로 저장된 값인 물리적 값으로 번역되는 번역 스테이지의 아이디어는 종래 기술에 공지된 것임에 유의하라. 이러한 아이디어는 이미 2005년 2월 22일 출원된 Lasser의 미국 특허 출원 제 11/061,634에서 제공된다. 그러나, Lasser의 번역은 본 발명의 목적과는 완전히 상이한 목적을 위한 것일 뿐 아니라, Lasser의 번역은 본 발명의 번역을 유용하게 만드는 특정한 특징이 부족하다. 본 발명에서 사용된 번역의 필수적인 특징은 셀의 모두-1인 논리 상태가 기록 스테이지에서 가장 좌측의 상태와 상이한 물리적 상태로 번역되는 것이다. Lasser에서, 상기 번역의 목적은 오류의 고른 분산이었지만, 그 목적은 모두-1인 논리적 상태를 임의의 특정한 물리적 상태로 변환함으로써 기능하지 못한다. 사실, Lasser에 제시된 모든 변환의 예는 가장 좌측의 물리적 상태로 맵핑되는 모두-1인 논리적 상태를 나타낸다.
Gonzalez 등의 미국 특허 제 6,684,289는, 데이터의 정적 패턴의 반복된 프로그래밍 상태를 방지하기 위한 목적으로, 플래시 메모리 기록 및 판독시 논리적 비트 값과 물리적 비트 값 사이의 맵핑을 교시한다(컬럼 6의 28-47줄을 참조). Gonzalez 등의 교안은 저장된 비트의 PD 오류의 확률을 최소화하는 것과 관계없을 뿐만 아니라, Gonzalez 등은 또한, 정적 데이터 패턴의 반복된 프로그래밍을 방지하는 목적이 달성되지 못할 때, 동일한 논리적 데이터 값이 상이한 시간에 상이한 물리적 상태로 변환되도록 시간에 따라 변화하는 변환을 적용한다. 즉, 본 발명은 모든 시간에 동일한 변환을 적용한다.
플래시 메모리 셀의 동작의 상기 설명이 N 비트를 저장하는 셀이 정확하게 2N의 가능한 상이한 상태(자신의 임계 전압의 상이한 범위에 의해 표시되는)를 가지고 삭제 동작이 상기 셀을 또한 2N의 데이터 값 중 하나를 나타내는 가장 좌측(가장 낮은 전압) 상태로 가져가는 것을 가정하였지만, 이에 해당하지 않는 경우의 플래시 메모리 디바이스도 있음에 유의해야한다. 이러한 디바이스에서, 삭제된 상태는 모든 데이터 상태와 상이하다. 특히, 상기 삭제된 상태는 다른 어떠한 데이터 상태 보다 더 네거티브한 임계 전압을 가진다. 이러한 디바이스에서, 셀로 데이터를 기록할 때 마다, 상기 데이터가 모두-1인 값일 지라도, 상기 셀은 상기 데이터 값에 대응하는 상태에 도달하도록 프로그래밍된다(즉, 자신의 임계전압이 증가된다.). 즉, 상기 삭제된 상태가, 상기 디바이스가 이전에 언급된 것과는 달리, 모두-1인 상태와는 상이하다. 본 발명의 상기 설명이 상기 디바이스의 제 1 유형에 대해 주어졌더라도, 본 발명은 또한 제 2 유형의 디바이스에 동일하게 적용가능하다.
본 발명의 방법은, 소프트웨어 또는 하드웨어에 의해 구현될 수 있다. 보다 특히, 상기 비트의 변환(기록, 판독, 또는 양쪽 모두 동안)은 소프트웨어 코드를 실행하거나 또는 전자 회로(인버터 게이트와 같은)에 의해 구현될 수 있다. 상기 변환이 소프트웨어에 의해 구현된다면, 그것은 데이터를 기록 또는 판독하는 호스트 컴퓨터에서 실행되는 소프트웨어(예를 들면 스토리지 디바이스를 지원하는 소프트웨어 디바이스 드라이버 내의)에 의해 구현되거나, 또는 상기 호스트 컴퓨터와 상호작용하고 상기 메모리 매체를 제어하는 메모리 컨트롤러(예를 들면 도 2의 컨트롤러(20)) 내에서 실행되는 펌웨어에 의해 구현된다. 상기 변환이 하드웨어에 의해 구현된다면, 그것은 메모리 컨트롤러 또는 메모리 매체(예를 들면 도 2의 명령어 회로 내의) 내에서 구현된다. 이는 상기 메모리 컨트롤러와 메모리 매체가 2 개의 개별 다이에 있거나 또는 공통의 다이에 상주하는 것에 관계없이 적용한다. 모든 상기 설정과 변형은 본 발명의 범위 내에 있다.
따라서, 일반적인 종래 기술의 플래시 메모리 디바이스를 도시하는 것에 추가하여, 도 2는 또한 본 발명의 플래시 메모리 디바이스의 2가지 종류의 실시예를 도시한다. 제 1 종류의 실시예에서, 메모리 어레이(1)에 저장될 데이터에 적용되는 변환은 없다. 메모리 셀 어레이(1)의 셀에 저장할 모두-1인 비트 패턴을 수신하자마자, 명령어 회로(7)는 상태 머신(8)에게 상기 셀을 가장 낮은 프로그래밍된 임계 전압 상태가 아닌 임계 전압 상태로 프로그래밍하도록 지시한다. 예를 들면, 셀당 2비트 디바이스에서, 좌측으로부터 우측으로의 상태의 순서가 {"00", "01", "11", "10"}이라면, 명령어 회로(7)는 상태 머신(8)에게 상기 셀을 도 1B에 도시된 것과 같이 좌측으로부터 3번째 임계 전압 상태로 프로그래밍하도록 지시한다. 나중에 저장된 데이터가 상기 셀로부터 판독될 때, 명령어 회로(7)는 모두 1인 비트 패턴을 의미하는 것으로 상기 셀의 좌측으로부터 3 번째의 임계전압 상태를 번역한다. 제 2 종류의 실시예에서, 컨트롤러(20)는 메모리 어레이(1)로 프로그래밍하기 위해 상기 데이터를 명령어 회로(7)로 전송하기 전에 상술한 변환 중 하나를 인입 데이터에 적용하고, 명령어 회로(7)로부터 판독 데이터 수신시에 상기 변환을 역변환 시킨다.
도 3 및 4는 제 2 종류의 플래시 메모리 디바이스의 실시예를 포함하는 2개의 시스템(40, 60)의 고레벨 블록도이다. 시스템(40)에서, 호스트 컴퓨터(42)는 본 발명의 플래시 메모리 디바이스(52)로 판독 및 기록 지시를 전송한다. 플래시 메모리 디바이스(52)는 플래시 관리 소프트웨어(46)를 실행함으로써 플래시 메모리(50)를 관리하는 플래시 컨트롤러(44)를 이용한다. 플래시 관리 소프트웨어(46)는 플래시 메모리(50)에 저장될 데이터에 대한 상술한 변환 중 하나를 구현하고 플래시 메모리(50)로부터 데이터 판독시 상기 변환을 역변환하기 위한 변환 모듈(48)을 포함한다. 시스템(60)에서, 호스트 컴퓨터는 판독 및 기록 지시를 플래시 메모리 디바이스(72)로 전송한다. 플래시 메모리 디바이스(72)는 플래시 관리 소프트웨어(66)를 실행함으로써 플래시 메모리(70)를 관리하기 위해 플래시 컨트롤러(64)를 이용한다. 플래시 컨트롤러(64)가 데이터를 플래시 메모리(70)로 기록할 때, 상술한 변환 중 하나가 플래시 컨트롤러(64)에서 변환 하드웨어(68)에 의해 데이터에 적용된다. 플래시 컨트롤러(64)가 플래시 메모리(70)로부터 데이터를 판독할 때, 변환 하드웨어(68)는 상기 판독된 데이터에 상기 변환의 역변환을 적용한다.
도 5는 본 발명의 또다른 시스템(80)의 고레벨 블록도이다. 시스템(80)은 프로세서(82) 및, RAM(84), 부트 ROM(86), 대용량 스토리지 디바이스(하드 디스 크)(88) 및 종래 기술의 메모리 디바이스(94)로 되어있는 4 개의 메모리 디바이스를 포함하고, 이들 모두는 공통 버스(60)로 통신한다. 플래시 관리 소프트웨어(90)는 대용량 스토리지 디바이스(88)에 저장되고 종래 기술의 플래시 메모리 디바이스(94)의 플래시 메모리를 관리하기 위해 프로세서(82)에 의해 실행된다. 플래시 관리 소프트웨어(90)는 플래시 메모리 디바이스(94)에 저장될 데이터에 대해 상술한 변환 중 하나를 적용하고, 플래시 메모리 디바이스(94)로 부터 판독된 데이터에 대해 상기 변환의 역변환을 적용하기 위한 변환 모듈(92)을 포함한다.
도 5에서, 플래시 메모리 디바이스(94)가 아닌 시스템(80)의 컴포넌트는 플래시 메모리 디바이스(94)의 호스트(100)를 포함한다. 대용량 스토리지 디바이스(88)는 본 발명을 구현하기 위한 컴퓨터 판독가능한 코드를 포함하는 컴퓨터 판독가능한 저장 매체의 예이다. 이러한 컴퓨터 판독가능한 스토리지 매체의 다른 예로는 상기 코드를 구비하는 CD와 같은 판독 전용 메모리를 포함한다.
본 발명이 제한된 수의 실시예에 대해 기술되었지만, 본 발명의 다수의 변형, 변조, 및 기타 적용이 이루어질 수 있음이 이해될 것이다.

Claims (27)

  1. 적어도 하나의 셀을 포함하고, 상기 각각의 셀의 2N의 순서대로 정렬된(ordered) 상태들 중 각각의 하나로서 N>1비트의 2N의 상이한 패턴 중 임의의 하나를 나타내기 위해 각각의 상기 셀을 프로그래밍하도록 동작하는 메모리를 제공하는 단계;
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 정의하는 단계로서, 상기 메모리에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는, 단계; 및
    상기 적어도 하나의 셀 중의 하나에 저장하기 위해 N 데이터 비트를 수신할 때마다:
    상기 변환에 따라 N 비트의 상기 변환된 패턴 중 하나로 상기 N 데이터 비트를 맵핑하는 단계; 및
    N 비트의 상기 하나의 변환된 패턴을 나타내는 상기 상태로 상기 하나의 셀을 프로그래밍하는 단계;를 포함하는 것을 특징으로 하는 데이터를 저장하는 방법.
  2. 제 1 항에 있어서,
    상기 상태는 상기 적어도 하나의 셀의 상이한 임계 전압의 범위인 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 메모리에 의해 상기 가장 낮은 상태로 프로그래밍되는 N 비트의 상기 패턴은 N개의 1의 패턴인 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 변환은 1:1 및 전사인 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 변환은 상기 모든 2N 패턴의 상기 N 비트 모두를 역변환시키는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 변환은 모든 상기 2N 패턴 중 상기 N 비트의 일부만을 역변환시키는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 변환은 모든 상기 2N 패턴 중 정확하게 하나의 비트만을 역변환시키는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 가장 낮은 상태는 상기 적어도 하나의 셀 각각의 삭제된 상태인 것을 특징으로 하는 방법.
  9. 삭제
  10. 적어도 하나의 셀을 포함하는 메모리;
    각각의 셀의 2N 순서대로 정렬된 상태의 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 표시하도록 상기 각각의 셀을 프로그래밍하는 회로로서, 상기 N 비트 패턴 중 하나는 가장 낮은 상태로 표시되는 회로; 및
    상기 적어도 하나의 셀 중 하나에 저장하기 위해 N 데이터 비트를 수신하고,
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 이용하여, 상기 N 데이터 비트를 상기 변환에 따라 상기 N 비트의 변환된 패턴 중 하나로 항상 맵핑시키고, 및
    상기 N 비트의 하나의 변환된 패턴을 상기 회로로 전송하고, 그런다음 상기 회로는 상기 N 비트의 하나의 변환된 패턴을 나타내기 위해 상기 적어도 하나의 셀 중 하나를 프로그래밍하도록, 동작하는 컨트롤러;를 포함하고,
    상기 회로에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는 것을 특징으로 하는 메모리 디바이스.
  11. 적어도 하나의 셀, 및
    상기 각각의 셀의 2N 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 나타내도록 각각의 상기 셀을 프로그래밍하기 위한 회로로서, N 비트의 상기 패턴 중 하나가 가장 낮은 상태로 표시되는 회로,를 구비하는 메모리 디바이스; 및
    상기 적어도 하나의 셀중 하나에 저장될 N 데이터 비트를 제공하고,
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 이용하여, 상기 N 데이터 비트를 상기 변환에 따라 상기 N 비트의 변환된 패턴 중 하나로 항상 맵핑시키고, 및
    상기 N 비트의 하나의 변환된 패턴을 상기 메모리 디바이스로 전송하고, 그런다음 상기 메모리 디바이스의 상기 회로가 상기 N 비트의 하나의 변환된 패턴을 나타내기위해 상기 적어도 하나의 셀 중 하나를 프로그래밍하도록, 동작하는 프로세서를 구비하는 상기 메모리 디바이스의 호스트;를 포함하고,
    상기 회로에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는 것을 특징으로 하는 데이터 저장을 위한 시스템.
  12. 적어도 하나의 셀을 포함하고 각각의 셀의 2N 순서대로 정렬된 상태 중 각각의 하나로서 N 비트의 2N의 상이한 패턴 중 임의의 하나를 나타내기위해 각각의 셀을 프로그래밍하도록 동작하는 메모리에 N>1 데이터 비트를 저장하기위한 컴퓨터-판독가능한 코드를 내장한 컴퓨터 판독가능한 스토리지 매체로서, 상기 컴퓨터 판독가능한 코드는,
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 이용하여, N 데이터 비트를 상기 변환에 따라 N 비트의 상기 변환된 패턴 중 하나로 항상 변환시키는 프로그램 코드; 및
    상기 N 비트의 하나의 변환된 패턴을 저장을 위해 메모리로 전송하고, 상기 적어도 하나의 셀 중 하나를 프로그래밍함으로써 상기 하나의 변환된 패턴을 표시하도록 하는 프로그램 코드;를 포함하고,
    상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는 것을 특징으로 하는 컴퓨터 판독가능한 스토리지 매체.
  13. 적어도 하나의 셀을 포함하고 2N(여기서 N>1)의 상이한 순서대로 정렬된 상태 중 선택된 하나에 각각의 상기 셀을 배치하도록 동작하는 메모리를 제공하는 단계; 및
    메모리에 저장하기 위한 입력 데이터로서 N 비트의 패턴을 수신할 때마다, 상기 입력 데이터를 표시하기 위해 가장 낮은 상태가 아닌 상기 상태 중 하나에 상기 적어도 하나의 셀 중 하나의 셀을 배치하는 단계;를 포함하고,
    상기 N 비트의 각각은 1 값을 나타내는 것을 특징으로 하는 데이터 저장 방법.
  14. 제 13 항에 있어서,
    상기 상태들은 상기 적어도 하나의 셀의 상이한 임계 전압 범위인 것을 특징으로 하는 데이터 저장 방법.
  15. 제 13 항에 있어서,
    상기 가장 낮은 상태는 각각의 상기 적어도 하나의 셀의 삭제된 상태인 것을 특징으로 하는 데이터 저장 방법.
  16. 삭제
  17. 적어도 하나의 셀을 포함하는 메모리; 및
    2N의 상이한 순서대로 정렬된 상태 중 선택된 하나에 상기 적어도 하나의 셀 중 임의의 하나의 셀을 배치함으로써 상기 적어도 하나의 셀 중 하나에 N>1 데이터 비트를 저장하도록 동작하는 메커니즘;을 포함하고,
    N개의 1의 비트 패턴을 저장하기 위해 사용되는 상기 상태는 항상 가장 낮은 상태가 아닌 상태 중 하나인 것을 특징으로 하는 메모리 디바이스.
  18. 제 17 항에 있어서,
    상기 메커니즘은 상기 적어도 하나의 셀을 프로그래밍하기 위해 회로로 구현되는 것을 특징으로 하는 메모리 디바이스.
  19. 제 17 항에 있어서,
    상기 메커니즘 중 적어도 일부는 상기 메모리 디바이스의 컨트롤러로 구현되는 것을 특징으로 하는 메모리 디바이스.
  20. 적어도 하나의 셀을 구비한 메모리를 포함하는 메모리 디바이스;
    상기 적어도 하나의 셀 중 하나에 저장하기 위한 N>1 데이터 비트를 제공하는 상기 메모리 디바이스의 호스트; 및
    2N의 상이한 순서대로 정렬된 상태 중 선택된 하나에 상기의 임의의 하나의 셀을 배치함으로써 상기 적어도 하나의 셀 중 임의의 하나에 N 데이터 비트를 저장하도록 동작하는 메커니즘;을 포함하고,
    N개의 1의 비트 패턴을 저장하도록 사용되는 상기 상태는 항상 가장 낮은 상태가 아닌 상태 중 하나인 것을 특징으로 하는 데이터 저장을 위한 시스템.
  21. 제 20 항에 있어서,
    상기 메커니즘은 상기 적어도 하나의 셀을 프로그래밍하기 위해 상기 메모리 디바이스의 회로로 구현되는 것을 특징으로 하는 데이터 저장을 위한 시스템.
  22. 제 20 항에 있어서,
    상기 메커니즘의 적어도 일부는 상기 메모리 디바이스의 컨트롤러로 구현되는 것을 특징으로 하는 데이터 저장을 위한 시스템.
  23. 제 20 항에 있어서,
    상기 메커니즘의 적어도 일부는 상기 호스트에서 구현되는 것을 특징으로 하는 데이터 저장을 위한 시스템.
  24. 셀을 2N 순서대로 정렬된 상태로 프로그래밍함으로써 메모리 셀에 저장된 데이터를 판독하는 방법으로서, 상기 각각의 상태는 N>1 비트의 2N의 상이한 패턴 중 각각의 하나를 나타내는 상기 방법에 있어서,
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환을 정의하는 단계로서, 상기 메모리에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는, 단계; 및
    상기 셀에 저장된 데이터를 판독할 때마다,
    상기 셀의 상태에 의해 표시된 N 비트의 저장된 패턴을 판정하는 단계; 및
    상기 N 비트의 저장된 패턴을 상기 변환의 역변환에 따라 N 비트의 판독된 패턴으로 맵핑하는 단계;를 포함하는 것을 특징으로 하는 방법.
  25. 적어도 하나의 셀을 포함하는 메모리;
    각각의 상기 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 표시하도록 각각의 상기 셀을 프로그래밍하는 회로로서, 상기 N 비트의 패턴 중 하나는 가장 낮은 상태로 표시되는 회로; 및
    상기 임의의 하나의 셀의 상태에 의해 표시되는 N 비트의 저장된 패턴을 판정하고, 및
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환의 역변환에 따라, 상기 N 비트의 저장된 패턴을 N 비트의 판독된 패턴으로 맵핑하는 것을, 구비하는 단계에 의해 상기 적어도 하나의 셀 중 하나에 저장된 데이터를 항상 판독하도록 동작하는 컨트롤러;를 포함하고,
    상기 회로에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는 것을 특징으로 하는 메모리 디바이스.
  26. 적어도 하나의 셀; 및
    상기 각각의 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 나타내도록 각각의 상기 셀을 프로그래밍하는 회로로서, N 비트의 패턴 중 하나가 가장 낮은 상태에 의해 표시되는 회로; 를 구비하는 메모리 디바이스; 및
    상기 임의의 하나의 셀의 상태에 의해 표시되는 N 비트의 저장된 패턴을 판정하고, 및
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환의 역변환에 따라, N 비트의 저장된 패턴을 N 비트의 판독된 패턴으로 맵핑하는 것,을 포함하는 단계에 의해 상기 적어도 하나의 셀 중 하나에 저장된 데이터를 항상 판독하도록 동작하는 프로세서를 구비하는 상기 메모리 디바이스의 호스트;를 포함하고,
    상기 회로에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는 것을 특징으로 하는 데이터를 저장 및 판독하는 시스템.
  27. N>1 비트의 2N의 상이한 패턴 중 임의의 하나를 셀의 2N의 순서대로 정렬된 상태 중 각각의 하나로서 나타내기위해 상기 셀을 프로그래밍하도록 동작하는 메모리 셀에 저장된 데이터를 판독하기 위한 컴퓨터-판독가능한 코드를 내장한 컴퓨터 판독가능한 스토리지 매체로서, 상기 컴퓨터 판독가능한 코드는, 상기 셀에 저장된 데이터를 판독할 때마다,
    상기 셀의 상태에 의해 표시되는 N 비트의 저장된 패턴을 판정하고; 및
    N 비트의 상기 패턴 각각을 N 비트의 대응하는 변환된 패턴으로 맵핑하는 변환의 역변환에 따라, N 비트의 저장된 패턴을 N 비트의 판독된 패턴으로 맵핑하는; 프로그램 코드를 포함하고,
    상기 메모리에 의해 상기 상태들 중 가장 낮은 상태로서 프로그래밍되는 N 비트의 패턴은 N 비트의 상기 패턴 중 상이한 하나로 맵핑되는 것을 특징으로 하는 컴퓨터 판독가능한 스토리지 매체.
KR1020097003137A 2006-08-01 2007-07-26 플래시 메모리에서 오류를 방지하는 방법 KR101456474B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82096006P 2006-08-01 2006-08-01
US60/820,960 2006-08-01
US11/797,379 US7716415B2 (en) 2006-08-01 2007-05-03 Method of avoiding errors in flash memory
US11/797,379 2007-05-03
PCT/IL2007/000938 WO2008015665A1 (en) 2006-08-01 2007-07-26 Method of avoiding errors in flash memory

Publications (2)

Publication Number Publication Date
KR20090041400A KR20090041400A (ko) 2009-04-28
KR101456474B1 true KR101456474B1 (ko) 2014-10-31

Family

ID=38544217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097003137A KR101456474B1 (ko) 2006-08-01 2007-07-26 플래시 메모리에서 오류를 방지하는 방법

Country Status (4)

Country Link
US (1) US7716415B2 (ko)
KR (1) KR101456474B1 (ko)
TW (1) TWI352358B (ko)
WO (1) WO2008015665A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7388781B2 (en) 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8127200B2 (en) 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
JP5028577B2 (ja) * 2007-02-19 2012-09-19 株式会社メガチップス メモリ制御方法およびメモリシステム
KR101403314B1 (ko) * 2008-05-23 2014-06-05 삼성전자주식회사 메모리 장치 및 데이터 비트 저장 방법
JP2009294869A (ja) * 2008-06-04 2009-12-17 Toshiba Corp メモリシステム
TWI370969B (en) 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
US8145855B2 (en) 2008-09-12 2012-03-27 Sandisk Technologies Inc. Built in on-chip data scrambler for non-volatile memory
US8429330B2 (en) * 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
WO2010035241A1 (en) * 2008-09-28 2010-04-01 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
KR20110128852A (ko) 2009-02-12 2011-11-30 라모트 앳 텔-아비브 유니버시티 리미티드 데이터의 인코딩에 의한 플래시 내구성 강화 장치 및 방법
US8458114B2 (en) * 2009-03-02 2013-06-04 Analog Devices, Inc. Analog computation using numerical representations with uncertainty
US8179731B2 (en) * 2009-03-27 2012-05-15 Analog Devices, Inc. Storage devices with soft processing
US8102712B2 (en) 2009-12-22 2012-01-24 Intel Corporation NAND programming technique
WO2011128867A1 (en) 2010-04-15 2011-10-20 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
US8732538B2 (en) * 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management
JP2012226822A (ja) 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
US8666068B2 (en) 2011-10-20 2014-03-04 Sandisk Technologies Inc. Method for scrambling shaped data
US8799559B2 (en) 2011-10-24 2014-08-05 Sandisk Technologies Inc. Endurance enhancement coding of compressible data in flash memories
WO2013094792A1 (ko) * 2011-12-23 2013-06-27 주식회사 유니듀 플래시 메모리의 데이터 간섭 완화 장치
JP5962258B2 (ja) * 2012-06-29 2016-08-03 富士通株式会社 データ変換方法、データ変換装置およびデータ変換プログラム
US20150178193A1 (en) * 2012-07-11 2015-06-25 Industry-University Cooperation Foundation, Hanyang University Apparatus and method for managing flash memory by means of writing data pattern recognition
KR102149770B1 (ko) * 2013-08-26 2020-08-31 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법
KR102069274B1 (ko) 2014-02-05 2020-01-22 삼성전자주식회사 메모리 제어 방법
US10216575B2 (en) 2016-03-17 2019-02-26 Sandisk Technologies Llc Data coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6684289B1 (en) 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US20080090604A1 (en) 2006-10-17 2008-04-17 Dover Lance W Performance or power-optimized code/data storage for nonvolatile memories

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US7237074B2 (en) * 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684289B1 (en) 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
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
US20080090604A1 (en) 2006-10-17 2008-04-17 Dover Lance W Performance or power-optimized code/data storage for nonvolatile memories

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Computer Design (ICCD), 2011 IEEE 29th International Conference on, 9-12 Oct. 2011, IEEE, Jue Wang et al., Energy-efficient multi-level cell phase-change memory system with data encoding, pp. 175-182. *

Also Published As

Publication number Publication date
US7716415B2 (en) 2010-05-11
WO2008015665A1 (en) 2008-02-07
KR20090041400A (ko) 2009-04-28
TWI352358B (en) 2011-11-11
TW200823919A (en) 2008-06-01
US20080031042A1 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
KR101456474B1 (ko) 플래시 메모리에서 오류를 방지하는 방법
US7308525B2 (en) Method of managing a multi-bit cell flash memory with improved reliablility and performance
US7984360B2 (en) Avoiding errors in a flash memory by using substitution transformations
US8019928B2 (en) Method of managing a multi-bit-cell flash memory
KR100406612B1 (ko) 다치 데이터를 기억하는 구성을 갖는 불휘발성 반도체기억 장치 및 이 불휘발성 반도체 기억장치를 구비하는데이터 기억 시스템
US8386860B2 (en) Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller
US9047972B2 (en) Methods, devices, and systems for data sensing
US9703698B2 (en) Data writing method, memory controller and memory storage apparatus
US20080172520A1 (en) Nonvolatile memory devices including multiple user-selectable program modes and related methods of operation
JP5497754B2 (ja) アドホックフラッシュメモリ基準セル
US20080172521A1 (en) Memory System Determining Storage Mode According to Host Provided Data Information
US20070260817A1 (en) Method for reading a multilevel cell in a non-volatile memory device
KR20100068364A (ko) 더미 데이터를 기록하여 mlc 플래시를 slc로 사용하는 방법
US8098523B2 (en) Semiconductor memory device with memory cell having charge accumulation layer and control gate and memory system
US8856621B2 (en) Memory controller for nonvolatile memory device, memory system comprising memory controller, and related methods of operation
US11295824B2 (en) Memory controller and storage device including the same
CN109960466B (zh) 存储器系统及其操作方法
KR20130008300A (ko) 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법
CN113066517A (zh) 存储器系统及其操作方法
US20230031193A1 (en) Memory system and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee