KR20130088069A - 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 - Google Patents
임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 Download PDFInfo
- Publication number
- KR20130088069A KR20130088069A KR1020130009737A KR20130009737A KR20130088069A KR 20130088069 A KR20130088069 A KR 20130088069A KR 1020130009737 A KR1020130009737 A KR 1020130009737A KR 20130009737 A KR20130009737 A KR 20130009737A KR 20130088069 A KR20130088069 A KR 20130088069A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- baseline
- memory
- drift
- write
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 138
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 32
- 230000036039 immunity Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 4
- 239000007787 solid Substances 0.000 abstract description 7
- 210000004027 cell Anatomy 0.000 description 180
- 230000008859 change Effects 0.000 description 10
- 230000006866 deterioration Effects 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 230000032683 aging Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000035882 stress Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010583 slow cooling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16K—VALVES; TAPS; COCKS; ACTUATING-FLOATS; DEVICES FOR VENTING OR AERATING
- F16K3/00—Gate valves or sliding valves, i.e. cut-off apparatus with closing members having a sliding movement along the seat for opening and closing
- F16K3/30—Details
- F16K3/32—Means for additional adjustment of the rate of flow
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H23/00—Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms
- A61H23/04—Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms with hydraulic or pneumatic drive
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H7/00—Devices for suction-kneading massage; Devices for massaging the skin by rubbing or brushing not otherwise provided for
- A61H7/007—Kneading
- A61H7/008—Suction kneading
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H9/00—Pneumatic or hydraulic massage
- A61H9/005—Pneumatic massage
- A61H9/0078—Pneumatic massage with intermittent or alternately inflated bladders or cuffs
- A61H9/0092—Cuffs therefor
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16K—VALVES; TAPS; COCKS; ACTUATING-FLOATS; DEVICES FOR VENTING OR AERATING
- F16K3/00—Gate valves or sliding valves, i.e. cut-off apparatus with closing members having a sliding movement along the seat for opening and closing
- F16K3/30—Details
- F16K3/314—Forms or constructions of slides; Attachment of the slide to the spindle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5678—Digital 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 amorphous/crystalline phase transition storage elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0035—Evaluating degradation, retention or wearout, e.g. by counting writing cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10N—ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10N70/00—Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
- H10N70/20—Multistable switching devices, e.g. memristors
- H10N70/231—Multistable switching devices, e.g. memristors based on solid-state phase change, e.g. between amorphous and crystalline phases, Ovshinsky effect
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/146—Write once memory, i.e. allowing changing of memory content by writing additional bits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
- G11C2013/0076—Write operation performed depending on read result
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Crystallography & Structural Chemistry (AREA)
- Chemical & Material Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Epidemiology (AREA)
- Rehabilitation Therapy (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Physical Education & Sports Medicine (AREA)
- Life Sciences & Earth Sciences (AREA)
- Pain & Pain Management (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Dermatology (AREA)
- Read Only Memory (AREA)
Abstract
임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 멀티레벨 셀(MLC) 메모리의 향상된 성능을 구현하기 위한 방법 및 장치가 제공된다. 이전 쓰기의 전압 기선이 식별되고, 데이터 쓰기는 식별된 전압 기선에 응답하여 데이터가 상기 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한다.
Description
본 발명은 일반적으로 데이터 저장 분야에 관한 것으로, 특히 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거 동작 수행 중 손상을 감소시켜 비휘발성 메모리의 내구성을 향상시키기 위해 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선(baseline) 메모리 데이터 부호화를 이용하여 멀티레벨 셀(multi-level cell, MLC) 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 포함하는 향상된 성능을 구현하기 위한 방법 및 장치에 관한 것이다.
하기 설명과 청구항에서 사용하는 하기의 용어들은 다음과 같이 이해되어야 할 것이다.
멀티레벨 셀(MLC) 메모리는 낸드(NAND) 플래시 메모리와 상변화 메모리(phase change memory, PCM)를 포함하도록 넓게 해석되어야 한다.
낸드 플래시 메모리내의 임계 전압 드리프트는 플로팅 게이트의 전하 손실에 기인하며 이는 총 전하의 감소에 영향을 미치고, PCM내의 저항 드리프트는 비정질 상의 구조 완화로 인해 시간이 지남에 따라 저항이 일반적으로 증가하는 메모리 소자 저항의 변화, 즉 드리프트에 기인한다. 비정질 상태가 더 안정적이고 더 낮은 저항의 결정질 상태로 변화하는 것도 가능하나 이는 셀을 완전히 소거할 수 있는 파국적이고 빠른 현상이 될 수 있다. 따라서, 전압 또는 저항 드리프트는 반드시 하향이나 상향 드리프트일 필요는 없고 원래의 쓰기 시간으로부터 시간 경과에 따른 변화를 포함하도록 넓게 해석되어야 한다.
임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 (moving baseline, MB) 메모리 데이터 부호화는 각 메모리 셀의 내용이 인접하는 메모리 셀들의 내용과 관련하여 결정될 수 있도록 하는 자기 참조 방법에서 복수의 상태 레벨 데이터 중 선택된 하나를 포함하도록 넓게 해석되어야 한다.
쓰기 또는 소거 동작마다 메모리 셀에 의한 손상 또는 노화를 감소시키기 위하여 예를 들어, 솔리드 스테이트 드라이브(solid state drive, SSD)에 대한 MLC 메모리 데이터 쓰기, 데이터 읽기 및 데이터 부분 소거를 구현하기 위한 효과적이고 효율적인 메커니즘을 제공할 필요가 있다.
본 발명의 양태는 멀티레벨 셀 (MLC) 메모리, 예를 들어 솔리드 스테이트 드라이브(SSD)의 향상된 성능을 구현하기 위한 방법 및 장치를 제공하는 데에 있다. 본 발명의 다른 중요한 양태는 실질적으로 부정적인 효과가 없으며 종래 장치들의 단점을 극복하는 그러한 방법 및 장치를 제공하는 데에 있다.
요컨대, 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 멀티레벨 셀(MLC) 메모리의 향상된 성능을 구현하기 위한 방법 및 장치가 제공된다. 이전 쓰기의 전압 기선이 식별되고, 데이터 쓰기는 식별된 전압 기선에 응답하여 데이터가 상기 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한다.
상술한 그리고 다른 목적 및 이점들과 함께 본 발명이 도면에 나타낸 발명의 바람직한 실시예에 대한 아래의 상세한 설명으로부터 가장 잘 이해될 수 있다.
도 1은 본 발명의 실시예에 따른 솔리드 스테이트 드라이브(SSD)를 위한 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 멀티레벨 셀(MLC) 메모리의 향상된 성능 방법을 구현하기 위한 시스템을 나타내는 블록도이다.
도 2a, 2b, 2c, 2d 및 2e는, 본 발명의 실시예에 따라, 솔리드 스테이트 드라이브(SSD)를 위한, 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 MLC 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 포함한 향상된 성능을 구현하기 위한 도 1의 시스템의 예시적인 동작들을 각각 도시하는 흐름도이다.
도 3a, 3b 및 3c는 각각 본 발명의 실시예에 따른 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀에 대해 모든 셀들이 완전히 소거된 시작 상태를 도시한다.
도 4a는 본 발명의 실시예에 따라 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀에 대한 2-상태 이동 기선 쓰기(moving baseline write, MBW) 사이클을 도시한다.
도 5a, 5b, 5c 및 5d는 각각 본 발명의 실시예에 따라, 예시적 2-상태 2-비트 MLC셀에 대한 모든 셀이 소거된 시작상태, 제1 쓰기, 제2 쓰기, 및 제3 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 6a, 6b, 및 6c는 각각 본 발명의 실시예에 따라, 예시적 2-상태 3-비트 MLC셀에 대한 제1, 제2 및 제7 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 7a, 7b, 및 7c는 각각 본 발명의 실시예에 따라, 예시적 3-상태 3-비트 MLC셀에 대한 제1, 제2 및 제3 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 8a, 8b, 및 8c는 각각 본 발명의 실시예에 따라, 예시적 3-상태 4-비트 MLC셀에 대한 제1, 제2 및 제7 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 9a 및 도 9b는 각각 본 발명의 실시예에 따라, 예시적 4-상태 4-비트 MLC셀의예에 대한 제1 및 제5 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 10a 및 도 10b는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에 대해 데이터 쓰기 및 데이터 읽기 동작에 따른 예시적 전압 드리프트를 도시한다.
도 11a, 11b 및 11c는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에 대한 제3 데이터 쓰기, 빠른 부분소거 및 데이터 다시쓰기의 동작에 따른 예시적 부분 소거를 도시한다.
도 12a 및 도 12b는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에서의 비열화(un-degraded) 셀 및 열화(degraded) 셀에 대한 임계치 해상도의 예시적인 변화를 도시한다.
도 13a, 13b, 13c 및 13d는 각각 본 발명의 실시예에 따라, 예시적 3-비트 MLC 낸드 셀에서의 비열화 셀 및 열화 셀에 대한 임계치 해상도의 예시적인 변화를 도시한다.
도 14는 본 발명의 실시예에 따른, 예시적 MLC 셀에 대한 예시적 파라미터 데이터를 나타내는 차트이다.
도 15a 및 도 15b는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에 대한 데이터 쓰기 및 데이터 읽기 동작에 따른 예시적 전압 누설 표시를 도시한다.
도 16은 본 발명의 실시예에 따른 컴퓨터 프로그램 제품을 도시하는 블록도이다.
도 1은 본 발명의 실시예에 따른 솔리드 스테이트 드라이브(SSD)를 위한 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 멀티레벨 셀(MLC) 메모리의 향상된 성능 방법을 구현하기 위한 시스템을 나타내는 블록도이다.
도 2a, 2b, 2c, 2d 및 2e는, 본 발명의 실시예에 따라, 솔리드 스테이트 드라이브(SSD)를 위한, 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 MLC 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 포함한 향상된 성능을 구현하기 위한 도 1의 시스템의 예시적인 동작들을 각각 도시하는 흐름도이다.
도 3a, 3b 및 3c는 각각 본 발명의 실시예에 따른 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀에 대해 모든 셀들이 완전히 소거된 시작 상태를 도시한다.
도 4a는 본 발명의 실시예에 따라 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀에 대한 2-상태 이동 기선 쓰기(moving baseline write, MBW) 사이클을 도시한다.
도 5a, 5b, 5c 및 5d는 각각 본 발명의 실시예에 따라, 예시적 2-상태 2-비트 MLC셀에 대한 모든 셀이 소거된 시작상태, 제1 쓰기, 제2 쓰기, 및 제3 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 6a, 6b, 및 6c는 각각 본 발명의 실시예에 따라, 예시적 2-상태 3-비트 MLC셀에 대한 제1, 제2 및 제7 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 7a, 7b, 및 7c는 각각 본 발명의 실시예에 따라, 예시적 3-상태 3-비트 MLC셀에 대한 제1, 제2 및 제3 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 8a, 8b, 및 8c는 각각 본 발명의 실시예에 따라, 예시적 3-상태 4-비트 MLC셀에 대한 제1, 제2 및 제7 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 9a 및 도 9b는 각각 본 발명의 실시예에 따라, 예시적 4-상태 4-비트 MLC셀의예에 대한 제1 및 제5 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 10a 및 도 10b는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에 대해 데이터 쓰기 및 데이터 읽기 동작에 따른 예시적 전압 드리프트를 도시한다.
도 11a, 11b 및 11c는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에 대한 제3 데이터 쓰기, 빠른 부분소거 및 데이터 다시쓰기의 동작에 따른 예시적 부분 소거를 도시한다.
도 12a 및 도 12b는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에서의 비열화(un-degraded) 셀 및 열화(degraded) 셀에 대한 임계치 해상도의 예시적인 변화를 도시한다.
도 13a, 13b, 13c 및 13d는 각각 본 발명의 실시예에 따라, 예시적 3-비트 MLC 낸드 셀에서의 비열화 셀 및 열화 셀에 대한 임계치 해상도의 예시적인 변화를 도시한다.
도 14는 본 발명의 실시예에 따른, 예시적 MLC 셀에 대한 예시적 파라미터 데이터를 나타내는 차트이다.
도 15a 및 도 15b는 각각 본 발명의 실시예에 따라, 예시적 2-비트 MLC 낸드 셀에 대한 데이터 쓰기 및 데이터 읽기 동작에 따른 예시적 전압 누설 표시를 도시한다.
도 16은 본 발명의 실시예에 따른 컴퓨터 프로그램 제품을 도시하는 블록도이다.
본 발명의 실시예에 관한 하기 상세한 설명에서, 본 발명을 구현할 수 있도록 하는 예시적 실시예를 도시하는 첨부한 도면을 참조한다. 본 발명의 범위를 벗어나지 않으면서 다른 실시예들을 이용할 수 있고 구조적 변경이 가능함을 이해할 수 있을 것이다.
본 발명의 특징에 따르면, 멀티레벨 셀 (MLC) 메모리, 예를 들어 솔리드 스테이트 드라이브(SSD)를 위한 향상된 데이터 쓰기, 데이터 읽기 및 데이터 부분 소거를 포함하는 향상된 성능을 구현하기 위한 방법 및 장치가 제공된다. MLC 메모리를 위한 향상된 데이터 쓰기, 데이터 읽기 및 데이터 부분 소거는 본 발명의 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선(moving baseline, MB) 메모리 데이터 부호화를 이용하여 구현된다.
본 발명의 특징에 따르면, 이동 기선 또는 바닥(floor)은 데이터 무결성이 임계 전압 드리프트 또는 저항 드리프트에 덜 영향을 받도록 읽기 전압과의 비교에 이용된다. MLC 상변화 메모리(PCM) 및 MLC 낸드(NAND) 플래시 메모리 모두 시간에 따른 현저한 저항 드리프트 및 임계 전압 드리프트를 각각 가지며 이는 일반적인 쓰기 및 소거 사이클에 의해 악화된다. MLC NAND 칩에서 물리적으로 근접하여 위치한 거의 동일한 전하의 셀들의 임계 전압 드리프트는 거의 동일하나 이는 칩 내에서 서로 물리적으로 떨어진 극히 다른 전압의 셀들에서는 그렇지 않다. 전하의 큰 차이는 데이터 셀 쓰기 동안 완전한 MLC 비트 쓰기 능력이 이용되었을 때 발생한다. 유사하게, MLC PCM 칩에서 물리적으로 매우 근접하여 위치한 거의 동일한 정도의 비정질/결정질 상태를 갖는 셀들의 저항 값 드리프트는 거의 동일하나 이는 칩 내에서 서로 물리적으로 떨어진 극히 다른 비정질/결정질 상태를 갖는 셀들에 있어서는 기대되지 않는다. 비정질/결정질 상태의 큰 차이는 데이터 셀 쓰기 동안 완전한 MLC 비트 쓰기 능력이 이용되었을 때 발생한다. 칩 내에서 물리적으로 인접한 유사 상태의 메모리 셀들 사이의 임계 전압 또는 저항 드리프트가 대략 동일한 상태에서 본 발명의 전압 드리프트 또는 저항 드리프트 내성의 MB 데이터 부호화를 이용하여 메모리 셀의 때때로의 현저한 드리프트에도 불구하고 데이터는 더 정확하게 복구될 수 있다.
본 발명의 특징에 따르면, 셀들의 전체 소거는 더 적게 일어나며 이는 저장 장치의 수명을 늘려준다. 셀들의 전체 소거는 셀들에 대한 현저한 열화를 야기하며, 25nm MLC NAND 플래시 메모리에서는 대략 최대 5k 전체 소거/쓰기 사이클이 일반적이다. 종래의 전체 소거 중 발생하는 보다 높은 전압 및 전압 이벤트의 보다 긴 지속 시간은 낸드 셀의 플로팅 게이트 근처에 높은 전계를 지속시켜 더 많은 손상을 야기한다. 본 발명은 더 적은 전하 이동을 이용하여 구 데이터상에 새로운 데이터를 재기입함으로써 플로팅 게이트의 전하량의 변화를 최소화한다. 연기된 소거 동작은 소거소거(각각의 쓰기 동작 후가 아닌) 수 차례의 연속적인 쓰기 동작 후에, 그리고 전체 소거 대신 부분 소거가 이용될 때, 일어난다.
상변화 메모리(PCM)의 소거 사이클은 느리며, 저장 소자의 가열이 필요하며 이후 상기 소자의 서냉이 요구된다. 예를 들어, 초기의 전체 소거가 전혀 없이 더 빨리 쓰기 위한 이득 시간이 있다. 대안적으로, PCM 셀들이 예를 들어, 가장 높은 저항(비정질 상태)에 위치해 있다면, PCM 셀들의 저항은 셀들에 대한 추가적인 전류 펄스 또는 펄스들에 의해 감소될 수 있으며 이는 점차 셀들을 더 안정적이고 낮은 저항의 결정질 상태로 이르게 한다. 따라서, 셀을 전압/전류로 펄싱함으로써 전체 소거 없이도 MLC PCM 셀 저항은 변경될 수 있다. 유사하게, MLC 낸드 셀의 플로팅 게이트의 전하량은 전체 소거 없이 증가될 수 있다.
본 발명의 이동 기선(MB) 메모리 데이터 부호화에 대해 예시적인 MLC 낸드 플래시 경우들을 이용하여 이제 설명한다. 본 발명의 범위를 벗어나지 않고 본 발명의 MB 메모리 데이터 부호화가 멀티레벨 PCM 메모리로 유리하게 확장되는 것을 당업자가 인식할 수 있음을 이해하여야 한다.
본 발명의 특징에 따르면, 저장 장치에 대한 바이트 쓰기 횟수의 전반적인 증가가 가능해진다. 예를 들어, 3-비트 MLC 저장 셀은 2-상태 MB 코드를 이용하여 전체 소거 전에 적어도 7회 쓰여질 수 있으며 이는 셀의 수명을 약 7배 증가시키며, 셀에 대한 각각의 쓰기에 따른 전체 데이터 용량의 손실은 3 비트가 아니라 단지 3분의 1 또는 1 비트에 불과하다. 따라서, 바이트 쓰기 단위로 측정한 저장 장치의 수명이 전반적으로 증가한다. 2-상태 MB 코딩은 3, 4, 5, 6, 7, 8, 9, 또는 10개의 쓰기 레벨이 모두 1-비트의 숫자를 생성하도록 쓰기 레벨의 개수에 상관없이 각 셀에서 1-비트의 숫자를 생성한다.
4-비트 MLC 저장 셀은 2-상태 MB 코드를 이용하여 전체 소거 전에 적어도 15회 쓰여질 수 있으며 이는 셀의 수명을 약 15배 증가시키며, 셀에 대한 각각의 쓰기를 위한 전체 데이터 용량의 손실은 4 비트가 아니라 단지 4분의 1 또는 1 비트에 불과하다. 따라서, 바이트 쓰기 단위로 측정한 저장 장치의 수명이 전반적으로 증가한다. 사실, 레벨의 개수가 많을수록, 바이트 쓰기 단위로 측정한 수명 면에서 더 많은 이득을 MB는 축적할 수 있다. 이러한 계산들은 쓰기 사이클 동안에 스트레스가 있기 때문에 대략적인 것임을 주의하여야 한다. 그러나, 이러한 스트레스는 전체 소거 스트레스의 영향보다는 현저하게 작다. 게다가, MLC 셀에서 임계 전압 레벨보다 큰 개수의 쓰기를 수용할 수 있도록 어떤 쓰기는 기선을 상향이동할 필요가 없을 수도 있다.
본 발명의 특징에 따르면, MB 데이터 부호화로써, 인접한 낸드 플래시 셀 간의 플로팅 게이트 전하는, 예를 들어 메모리 셀 크기가 감소함으로써 점점 더 유리해지는 것과 같이, 유사한 범위 내에 있게 된다. 지속적인 낸드 메모리 크기의 감소는 인접 셀 간의 용량 결합(capacitance coupling)을 강화시켜 낸드 동작에 방해가 되는 측면 프린징 필드(fringing field)를 현저히 증가시킨다. 예를 들어, 시뮬레이션에 따르면, 동일한 비트 라인(BL) 및 워드 라인(WL) 상의 인접한 셀들에 의해 유도된 임계 전압 변화(?T)는 기술 스케일링과 함께 기하급수적으로 증가한다.
본 발명의 특징에 따르면, MB 데이터 부호화를 위해 필요한 오버헤드는 최소화된다. 메모리 셀 그룹에 대한 부당한(illegal) 데이터 조합은 파라미터 데이터 영역에서 발생시 표시(flag)될 수 있는 가능성이 적은 일이다. MB는 자기 참조되기 때문에, 모든 셀들이 같은 임계 전압을 갖는다면, 모든 셀들이 0 또는 1의 값을 가질 수 있다. 이러한 경우는 특정 비트에 저장된 플래그에 의해 방지되거나 표시될 수 있다. MB 데이터 부호화는 메모리 셀들의 집합들이 가능한 두 개의 임계 값 중 하나만 가질 수 있도록 된 모든 셀들을 자기 참조하도록 유지하기 때문에, 이러한 집합에서 소수의 셀들이 이탈하여도, 그 내용을 수정하는 것이 가능하다. 이는 데이터를 보호하기 위해 필요한 ECC 보호의 바이트의 개수를 줄일 수 있다.
이제 도 1을 참조하면, 본 발명의 실시예에 따라 참조기호 100에 의해 대략적으로 표기되는 MLC 메모리, 예를 들어 SSD의 향상된 데이터 쓰기, 데이터 읽기 및 데이터 부분 소거 방법들을 구현하기 위한 예시적 시스템이 도시되어 있다. 시스템(100)은 SSD(102) 및 호스트 컴퓨터(104)를 포함한다. SSD(102)는 메인 메모리 혹은 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)(108)에 연결된 컨트롤러(106), MLC 메모리 관리 정보 및 제어 블록(110) 및 이동 기선(MB) 메모리 데이터 부호화 제어 블록(112)을 포함한다.
SSD(102)는 낸드 플래시 칩들(114) 또는 상변화 메모리(PCM) 칩들(114) 또는 이들의 조합과 같은, 컨트롤러(106)에 연결된 이동 기선 메모리 데이터 부호화 블록(112)에 연결된 복수의 MLC 메모리 장치들(114)을 포함한다. SSD(102)는 호스트 컴퓨터(104), 그리고 컨트롤러(106) 및 이동 기선 메모리 데이터 부호화 제어 블록(112) 사이에 연결된 호스트 인터페이스(116)를 포함한다.
시스템(100)의 예시적 실시예가 SSD(102)의 맥락에서 설명되지만, 본 발명의 원리는 다른 종류의 데이터 저장 장치에도 유리하게 적용됨을 이해하여야 한다.
시스템(100)은 본 발명을 이해하는데 충분할 정도로 단순화된 형태로 보여진다. 예를 들어, 컨트롤러(106)는 하나 또는 복수의 집적회로 다이 상에 제조될 수 있으며 본 발명의 실시예에 따른 방법을 구현하도록 적합하게 프로그램된다.
SSD(102)는, 본 발명의 실시예에 따라, 확고한 MLC 메모리 데이터 쓰기, 확고한 MLC 메모리 데이터 읽기 및 확고한 MLC 메모리 데이터 부분 소거를 위하여, 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선메모리 데이터 부호화를 이용하여 MLC 메모리를 위한 향상된 데이터 쓰기, 데이터 읽기 및 데이터 부분 소거를 구현한다. SSD(102)의 컨트롤러(106)은 이동 기선 메모리 데이터 부호화 제어 블록(112)에 직접 접속할 수 있는 펌웨어를 포함한다. SSD(102)의 컨트롤러(106)의 펌웨어는 이동 기선 메모리 데이터 부호화 제어 블록(112)에 관한 정보를, 예를 들어 MLC 메모리 관리 정보 및 제어 블록(110)으로부터 받는다.
본 발명의 원리는 도시된 시스템(100) 및 SSD(102)에 한정되지 않음을 이해하여야 한다. 예를 들어, MLC 메모리 관리 정보 및 제어 블록(110)과 MB 메모리 데이터 부호화 제어 블록(112)은 SSD(102)에 의해 수행되는 MB 메모리 데이터 부호화 대신 호스트 컴퓨터(104)에 의해 또는 MLC 메모리 장치들(114)내에서 구현될 수 있다.
이제 도 2a, 2b, 2c, 2d 및 2e를 참조하면, 본 발명의 실시예에 따른, SSD를 위한, 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 MLC 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 포함하는 향상된 성능을 구현하기 위한 도 1의 시스템의 예시적 동작들을 각각 도시하는 흐름도가 도시되어 있다.
본 발명의 특징에 따르면, 확고한 MLC 메모리 데이터 쓰기를 위한 전압 드리프트 내성의 이동 기선 메모리 데이터 부호화는 메모리 셀에 대한 각각의 새로운 쓰기를 위한 바닥 또는 최소 전압 레벨인 이동 기선을 이용한다. 멀티레벨 셀 메모리는 선택적으로 PCM 및 낸드 플래시 메모리를 포함한다. 데이터 쓰기 전, 이전 쓰기의 기선을 알 필요가 있는 데, 이 정보는 쓰기 전에 셀들을 읽거나, 메모리 셀들의 그룹이 같은 기선을 가질 수 있는 마지막으로 알려진 기선 레벨을 가진 셀들에 관한 파라미터 정보를 유지함으로써 결정될 수 있다
본 발명의 특징에 따르면, 예를 들어 전체 MLC 비트 범위의 절반 이하를 이용하여 적어도 두 개의 쓰기 사이클이 전체 소거 이전에 가능해진다. 메모리 셀들의 그룹에 대한 부당한 데이터 조합은 코딩에 의해 방지되거나 예컨대 모든 0을 허용하지 않는다거나 모든 1을 허용하지 않는 것과 같이 개별적 플래그들을 이용하며; 또는, 플래그는 같은 임계 전압 또는 같은 저항 값을 가진 셀들의 집합이 모든 0 또는 모든 1 데이터를 나타내는지를 표시하도록 설정된다.
도 2a, 2b, 2c, 2d 및 2e는, 본 발명의 실시예에 따른, SSD를 위한, 이동 기선 메모리 데이터 부호화를 이용하여 MLC 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 포함하는 향상된 성능을 구현하기 위한 시스템(100)의 예시적 동작들을 각각 도시하는 흐름도를 제공한다. 도 2a, 2b, 2c, 2d 및 2e에서, 도시된 예시적 동작들 또는 단계들은 일부 순차적인 동작들 또는 단계들을 포함하고 또한 본 발명의 선택적 실시예들의 선택적 동작들 또는 단계들, 대안적 동작들 또는 단계들 및 조합된 동작들 또는 단계들을 포함함을 이해하여야 한다.
이제 도 2a 및 2b를 참조하면, 블록(200)에 나타난 바와 같이 예시적 동작들이 확고한 MLC 메모리 데이터 쓰기를 위해 시작된다. 이동 기선은 메모리 셀에 대한 각각의 새로운 쓰기를 위한 새로운 바닥 또는 최소 전압 레벨이다. 예를 들어 쓰기 전에 셀들을 읽거나, 마지막으로 알려진 기선 레벨을 가진 셀들에 관한 파라미터 정보를 유지함으로써, 쓰기 동작 전에 이전의 쓰기를 위한 기선을 획득한다.
확고한 MLC 메모리 데이터 쓰기는 부당한 데이터 조합을 방지하기 위해 대체 코드를 선택적으로 이용한다. 예를 들어, 블록(202)에 나타난 바와 같이 실행 길이 제한(run length limited, RLL) 코드가 대체 코드로서 이용된다. 블록(204)에 나타난 바와 같이 별개의 플래그들이 부당한 조합의 발생을 표시하기 위해 이용되며, 예를 들어 플래그들의 각 발생의 리스트는 별도의 데이터 영역에 저장된다. 블록(204)에서의 별개의 플래그들은 선택적으로 블록(202)에서의 대체 코드와 함께 이용되거나 대체 코드의 대안으로서 이용될 수 있다. 블록(206)에 나타난 바와 같이 참조 셀들은 선택적으로 특정의 전압 레벨들에서 주기적으로 쓰여져 기선 전압 및 셀들의 그룹에서 이용 가능한 데이터 값들의 전압 레벨들, 예를 들어 1이나 0에 해당하는 전압 레벨들을 지속적으로 파악한다.
블록(208)에 나타난 바와 같이, 선택적 실시예의 2-상태 MB 코드에서, 각 셀의 이용 가능한 데이터 값은 1 또는 0이 된다. 예를 들어, 도 5a 내지 5d 및 도 6a 내지 6c를 참조. 셀들은 베이스 2 이진 비트 데이터를 갖는 싱글 레벨 셀(single-level cell, SLC)처럼 동작한다. 블록(210)에 나타난 바와 같이, 선택적 실시예에 있어서, 3-상태 MB 코드에서, 각 셀의 이용 가능한 데이터 값은 예를 들어 2 또는 1 또는 0을 포함한다. 예를 들어, 도 7a 내지 7c 및 도 8a 내지 8c를 참조. 셀 데이터는 베이스 3이며, 별개의 데이터 코딩에 의해 셀들의 블록은 베이스 2 이진 데이터로 변환된다. 블록(212)에 나타난 바와 같이, 선택적 실시예에 있어서, 4-상태 MB 코드에서, 각 셀의 이용 가능한 데이터 값은 예를 들어 3 또는 2 또는 1 또는 0을 포함한다. 예를 들어, 도 9a 및 9b를 참조. 셀 데이터는 다시 셀당 2 비트를 갖는 이진 데이터가 된다.
블록(214)에 나타난 바와 같이, 예컨대 MB 코드의 상태 레벨을 낮추는 것을 통해 조절 가능한 비트 해상도가 선택적으로 이용된다. 예를 들어, 4-상태 MB 코드 대신에 3-상태 MB 코드에서 데이터를 쓰거나, 블록(216)에 나타난 바와 같이 3-상태 혹은 4-상태 MB 코드 대신에 3-상태 코드에서 데이터를 쓴다.
도 2b를 참조하면, 블록(218)에서, 데이터를 리프레시하기 위해 해상도에 대한 선택적 조절을 이용하는 것과 그러한 조절은 서로 다른 범위 예컨대, 개별적 페이지, 개별적 라인, 개별적 칩, 또는 개별적 워드에서 할 수 있다. 블록(220)에 나타난 바와 같이, 선택적 조절 가능한 해상도의 이용이 전체 소거 이전의 쓰기 사이클을 더 적게 하는 것을 통해 제공될 수 있다.
블록(222)에서, 선택적 실시예에서 오류 보정 정보에 응답하여 저장 장치가 자체적으로 해상도 조절을 할 수 있다. 블록(224)에 나타난 바와 같이, 사용 중 저장 장치에 의해 수집된, 시간 에이징, 쓰기 사이클 에이징 및/또는 전체 소거 사이클 에이징에 의한 셀들의 열화를 측정하는 전압 드리프트 통계 정보에 응답하여 해상도에 대한 조절이 저장 장치에 의해 자체적으로 수행될 수 있다. 예들 들어, 임박한 데이터 손실에 대한 경고 표시가 저장 장치로 하여금 해상도를 낮추게 한다. 블록(226)에 나타난 바와 같이, 예컨대 호스트 컴퓨터 또는 다른 관련 장치의 필요 또는 교체 장비 비용 또는 데이터 저장의 필요에 의거하여, 해상도의 조절 또는 선택은 사용자에 의해서도 또는 대안적으로 사용자에 의해 수행될 수 있다. 또는, 해상도의 조절 또는 선택은 초기 테스트 또는 비닝(binning) 단계에서 저장 장치의 제조사에 의해서도 수행될 수 있다. 예들 들어, 칩들 혹은 칩들 내의 서브 블록들의 비닝은 예컨대 MB 코드의 상태 레벨을 낮추거나 전체 소거 이전 쓰기 사이클의 횟수를 감소시키는 등의 해상도의 조절 및 선택에 의해 완료된다.
블록(228)에 나타난 바와 같이, 예를 들어 쓰기 동작 이전에 데이터 읽기를 실행할 필요 없이 매 쓰기 마다 어떤 새로운 전압으로 쓸 것인지를 알기 위해, 기선 전압은 선택적으로 파라미터로서 유지될 수 있으며 셀에 대한 각각의 쓰기 이후 및 각각의 셀 소거 후 기선 전압 파라미터를 갱신하여야 한다. 그렇지 않으면, 블록(230)에 나타난 바와 같이, 선택적 실시예에서 예를 들어 가장 최근의 기선 전압을 판단하기 위하여 쓰기 동작 이전에 하나 이상의 샘플 셀의 데이터 읽기를 실행함으로써 기선 전압은 선택적으로 파라미터로서 유지되지 않는다.
블록(232)에서, MB 데이터 부호화를 이용할 때 자동 셀 소거는 비활성화되어야 함을 주의하여야 한다. MB 메모리 데이터 부호화의 주요 이점은 그러한 전체 소거 사이클의 방지이다. 셀들은 선택적으로 새로운 데이터 쓰기 이전에 새로운 기선으로 미리 쓰여진다.
본 발명의 특징에 따르면, 확고한 MLC 메모리 데이터 읽기를 위한 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화는 이동 기선을 갖는 MLC에 쓰여진 데이터를 읽기 위한 되읽기(read back) 및 오류 복구 강화를 가능하게 한다.
이제 도 2c 및 2d를 참조하면, 블록(234)에 나타난 바와 같이 동작들이 확고한 MLC 메모리 데이터 읽기를 위해 시작된다. 선택적으로 초기 데이터 읽기는 예컨대 높은 전압과 낮은 전압의 비교를 이용하는 블라인드 상태이다. 전압 드리프트의 예가 도 10a 및 10b에 도시되어 있다. 예를 들어, 2-상태 MB 코드에 대해, 높은 전압은 1, 낮은 전압은 0일 것이다. 그리고, 기선 전압을 파라미터 데이터로서 지속적으로 파악하는 것은 필요하지 않다.
블록(236)에 나타난 바와 같이, 데이터 되읽기는 가장 최근의 기선을 판단하기 위해 선택적으로 별개의 데이터를 이용하는 데, 예를 들어, 별개의 데이터는 전압 레벨들을 비교하는데 도움을 준다. 또한, 예를 들어, 별개의 데이터는 매 데이터 쓰기 및 전체 소거마다 갱신되어야 한다. 블록(238)에 나타난 바와 같이, 별개의 데이터가 선택적으로 파라미터 데이터로서 유지되는 데, 예를 들어, 카운터가 페이지에 대한 매 쓰기마다 유지될 수 있고 전체 소거마다 리셋될 수 있다. 예를 들어, 플래그 정보 또는 수치 데이터가 셀들의 그룹을 위해 유지될 수 있다. 블록(240)에 나타난 바와 같이, 대안적으로 별개의 데이터는 주기적 참조 셀 쓰기 동작들로부터의 실제 참조 셀 전압 레벨들, 예컨대 실제 쓰기 동작들 및 되읽기 동작으로부터의 아날로그 전압 레벨이다. 참조 셀들은 라인, 페이지 또는 블록의 일부 작은 비율일 수 있다.
블록(242)에 나타난 바와 같이, 선택적으로 오류 복구 서브루틴은 가장 최근의 기선 레벨을 판단하기 위해 저장된 별개의 데이터를 참조한다. 예를 들어, 읽기 동작은 우선 블라인드 되읽기를 시도하고 실패하면, 쓰여진 데이터의 값의 판단에 도움을 주기 위해 별개의 데이터를 참조한다. 유사한 참조 셀들의 전압 드리프트 및/또는 이전 쓰기 동작들과 되읽기 동작들로부터의 통계 정보는 데이터를 복구하는데 도움이 될 수 있다.
블록(244)에서, 오류 복구 서브루틴은 다른 유사하게 쓰여진 데이터 셀들도 읽을 수 있거나 다른 유사하게 쓰여진 데이터 셀들을 대안적으로 읽을 수 있다. 예를 들어, 기선 판단을 위해 읽힌 셀들은 오류가 있는 셀과 같은 라인 또는 페이지 또는 블록에 있으며 동일한 기선 값을 갖는다. 기선 값은 이러한 다른 정상적인 셀들로부터 결정된다.
도 2d를 참조하면, 블록(246)에 나타난 바와 같이 전압 드리프트를 판단하기 위해 참조 셀 전압 참조 정보 및/또는 쓰기/읽기 사이클의 횟수와 소거 사이클의 횟수 면에서 유사한 셀들을 이용하여 읽기 데이터 업데이트가 선택적으로 제공된다. 블록(248)에 나타난 바와 같이 예를 들어, 참조 셀들을 쓰고 추후에 되읽는다. 참조 셀에 쓸 때, 쓰기 이벤트 조건들, 예컨대 전압 레벨, 쓰기 시간/날짜 및 셀에 대한 총 쓰기 및 소거 사이클을 개별적으로 저장한다. 예를 들어, 이러한 참조 셀들을 주기적으로 되읽어 전압 레벨 드리프트를 판단하고 추후의 조절/예측을 위해 전압 드리프트에 관한 통계를 유지한다.
블록(250)에서, 데이터 셀들을 쓰고, 기선 전압 레벨을 지속적으로 파악하고, 추후 되읽기를 한다. 참조 셀에 쓸 때, 쓰기 이벤트 조건들, 예컨대 전압 레벨, 쓰기 시간/날짜 및 셀에 대한 총 쓰기 및 소거 사이클을 개별적으로 저장한다. 데이터 되읽기 또는 데이터 무결성 테스트 시에, 이러한 데이터 셀들을 되읽고 전압 레벨 드리프트를 판단한다.
본 발명의 특징에 따르면, 확고한 MLC 메모리 데이터 부분 소거를 위한 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화는 쓰여진 데이터를 수용하기 위해 기선이 더 이상 이동할 수 없어 소거가 필요할 때마다 데이터의 다시쓰기 이전에 제공된다. 예를 들어, 전체 소거는 느릴 뿐만 아니라 부분 소거보다 많은 셀 열화/스트레스를 유발하므로 부분 소거는 이용하나 전체 소거는 이용하지 않고 이는 낸드 플래시에서 소거 중 전류를 감소시키고 PCM의 발열을 감소시킨다. 예를 들어, 그룹 내 모든 셀들이 기선 값들을 실질적으로 같이 변화시키는 셀 전압 드리프트와 유사한 효과를 부분 소거가 갖는다.
이제 도 2e를 참조하면, 블록(252)에 나타난 바와 같이 동작들이 확고한 MLC 메모리 데이터 부분 소거를 위해 시작된다. 본 발명의 MLC 메모리 데이터 부분 소거는 데이터가 MB와 함께 다시 쓰여지고 이 경우 모든 셀들이 같은 기선을 갖고 있는 한 정확한 기선 전압을 필수적으로 요구하지 않는다면 작동한다. 소거 중의 부정확성은 용인되며 일부의 경우는 낸드 플래시에 대한 정상적인 전체 소거보다 약 10배 정도 빠를 수 있다. 부분 소거의 예가 도 11a, 11b 및 11c에 도시되어 있다.
블록(254)에 나타난 바와 같이, 부분 소거 후 데이터 다시쓰기는 선택적으로 블라인드 상태이다. 예를 들어, 부분 소거는 셀 전압을 충분한 레벨로 감소시키는 것으로 가정하고 모든 셀들은 새로운 전압에서 다시 쓰여진다. 블록(256)에 나타난 바와 같이, 대안적으로, 부분 소거 후 데이터 다시쓰기는 블라인드 상태가 아니다. 예를 들어, 셀들의 다시쓰기 이전에 셀 전압을 읽는다. 읽기는 모든 셀들 또는 셀들의 통계적 샘플링에 대해 수행될 수 있다.
블록(258)에 나타난 바와 같이, 부분 소거 및 셀들이 새로운 기선 전압으로 미리 쓰여진 후, 데이터 다시쓰기를 수행한다. 예를 들어, 개념적으로 설명하면, 새로운 데이터 쓰기 이전에 셀들은 새로운 기선으로 미리 쓰여지게 된다. 예를 들어, 셀들은 다음의 균등한 기선으로 미리 쓰여진다. 실제 구현 시, 각 셀이 프로그램되는 최종 전하는 하나의 프로그램 명령어로 도달된다.
블록(260)에 나타난 바와 같이, 데이터 부분 소거를 위한 기간 및/또는 전압은 셀들의 에이지/열화에 적응적이다. 예를 들어, 셀들의 통계적 샘플링은 필요할 가능성이 있는 부분 소거 기간을 위해 사용된다. 예를 들어, 소거 사이클, 쓰기 사이클 및 칩의 에이지의 횟수를 위해 저장된 데이터는 부분 소거의 기간 및/또는 전압을 판단하는데 도움이 될 수 있다.
도 3a, 3b 및 3c는 본 발명의 실시예에 따라 각각 참조 번호 300, 310, 320으로 대략 표기되는 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀에 대해 모든 셀들이 완전히 소거된 시작 동작을 도시한다. 도 3a에서, 모든 셀이 완전이 소거된 상태에서 각각의 시작 동작 300, 310, 300은 각각의 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀에 대해 도시된 Vth-1보다 작은 V-read를 포함하거나 V-read < Vth-1이다.
도 4a는 본 발명의 실시예에 따라 각각 참조 번호 400, 410, 420으로 대략 표기되는 2-비트 낸드 셀, 3-비트 낸드 셀 및 4-비트 낸드 셀을 위한 2-상태 이동 기선 쓰기(moving baseline write, MBW) 사이클을 도시한다.
도 5a, 5b, 5c 및 5d는 본 발명의 실시예에 따라 각각 참조 번호 500, 510, 520, 530으로 대략 표기되는, 예시적인 2-상태 2-비트 MLC셀에서의 모든 셀이 소거된 시작상태, 제1 쓰기, 제2 쓰기, 및 제3 쓰기에서의 예시적 이동 기선 코딩 동작을 도시한다. 도 5a에서, 모든 셀이 소거된 시작 상태(500)에서, V-read < Vth-1이다.
본 발명의 바람직한 실시예의 특징에 따르면, 신뢰성 있는 MLC 메모리(114)를 위한 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 사용하는 것은 되읽기 디코더로 하여금 모든 데이터 셀 비트를 읽을 수 있도록 하고 디코더는 모든 셀들이 오직 두 가지의 다른 레벨에 있다고 기대하고, 이러한 레벨의 정확한 값은 고려하지 않고 낮은 임계치를 갖는 셀들에는 0을 높은 임계치를 갖는 셀들에는 1을 할당한다. 되읽기 디코더는 결정을 위해 어떤 임계치 레벨을 사용할 것인지를 선험적으로 알 필요가 없다. 되읽기 디코더는 데이터 셀들을 읽고 되읽기 값들을 두 그룹, 즉 높은 임계치 그룹 및 낮은 임계치 그룹으로 묶어 이에 따라 각각 복수의 1과 0을 할당한다. 모든 셀이 같은 임계치를 가질 때, 프리코딩에 의하거나 되읽기 디코더에 1또는 0을 할당하도록 통보하도록 플래그를 설정한다.
도 5b에 도시된 바와 같이, 제1 쓰기 동작(510) 이후, THRESHOLD-1로 나타낸 Vth-1이 V-read ≥Vth-1이면, V-read = 1, 그렇지 않으면, V-read = 0이다.
도 5c에 도시된 바와 같이, 제2 쓰기 동작(520) 이후, Vth-2는 THRESHOLD-1로 나타내어지고 Vth-1 = BASELINE (전하가 레벨링된 상태)이고 V-read ≥ Vth-2이면 V-read = 1, 그렇지 않으면, V-read = 0이다. 전하 레벨링은 이동 기선의 기본적 동작을 단지 명확히 하기 위한 개념적 설명이다. 쓰기 명령으로써, 낸드 플래시 셀들(114)은 각 셀이 획득할 필요가 있는 최종 목표 임계치 레벨을 프로그램하도록 지시 받는다.
도 5d에 도시된 바와 같이, 제3 쓰기 동작(530) 이후, Vth-3은 THRESHOLD-1로 나타내어지고 Vth-2 = BASELINE (전하가 레벨링된 상태)이고 V-read ≥ Vth-3이면 V-read = 1, 그렇지 않으면, V-read = 0이다.
도 6a, 6b, 및 6c는 각각 본 발명의 실시예에 따라 참조 번호 600, 610, 620으로 대략 표기되는, 예시적인 2-상태 3-비트 MLC셀에서의 제1, 제2 및 제7 쓰기에서의 예시적 이동 기선 코딩 동작을 도시한다.
도 6a에 도시된 바와 같이, 제1 쓰기 동작(600) 이후, Vth-1이 THRESHOLD-1로 나타내어지고 0 VOLTS = BASELINE이고 V-read ≥ Vth-1이면 V-read = 1이고, 그렇지 않으면 V-read = 0이다.
도 6b에 도시된 바와 같이, 제2 쓰기 동작(610) 이후, Vth-2는 THRESHOLD-1로 나타내어지고 Vth-1 = BASELINE (전하가 레벨링된 상태)이고 V-read ≥ Vth-2이면 V-read = 1, 그렇지 않으면, V-read = 0이다.
도 6c에 도시된 바와 같이, 제7 쓰기 동작(620) 이후, Vth-6은 THRESHOLD-1로 나타내어지고 Vth-6 = BASELINE (전하가 레벨링된 상태)이고 V-read ≥ Vth-7이면 V-read = 1, 그렇지 않으면, V-read = 0이다.
본 발명의 다른 실시예의 특징에 따르면, 신뢰성 있는 MLC 메모리(114)를 위한 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화는 셀들의 그룹 내 각 셀에 대해 1또는 0의 이용 가능한 데이터 값을 갖는 2-상태 MB 메모리 데이터가 아닌 3-상태 또는 4-상태 MB 메모리 데이터와 같은 선택된 다중 상태 레벨을 포함할 수 있다. 예를 들어, 도 7a 내지 도 7c 및 도 8a 내지 도 8c에 도시된 바와 같은 3-상태 MB 메모리 데이터는 각 셀에 대해 2, 1, 또는 0의 이용 가능한 데이터 값을 포함한다. 다른 예를 들면, 도 9a 및 도 9b에 도시된 바와 같은 4-상태 MB 메모리 데이터는 각 셀에 대해 3, 2, 1, 또는 0의 이용 가능한 데이터 값을 포함한다.
도 7a, 7b, 및 7c는 각각 본 발명의 실시예에 따라 참조 번호 700, 710, 720으로 대략 표기되는, 예시적 3-상태 3-비트 MLC셀에서의 제1, 제2 및 제3 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 7a에 도시된 바와 같이, 제1 쓰기 동작(700) 이후, Vth-1이 THRESHOLD-1로 나타내어지고 Vth-2가 THRESHOLD-2로 나타내어지고 0 VOLTS = BASELINE일 때, V-read ≥ Vth-2이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-1이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 7b에 도시된 바와 같이, 제2 쓰기 동작(710) 이후, Vth-3이 THRESHOLD-1로 나타내어지고 Vth-4가 THRESHOLD-2로 나타내어지고 Vth-2 = BASELINE (전하는 레벨링된 상태) 일 때, V-read ≥ Vth-4이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-3이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 7c에 도시된 바와 같이, 제7 쓰기 동작(720) 이후, Vth-5이 THRESHOLD-1로 나타내어지고 Vth-6가 THRESHOLD-2로 나타내어지고 Vth-4 = BASELINE (전하는 레벨링된 상태) 일 때, V-read ≥ Vth-6이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-5이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 8a, 8b, 및 8c는 각각 본 발명의 실시예에 따라 참조 번호 800, 810, 820으로 대략 표기되는, 예시적 3-상태 4-비트 MLC셀에서의 제1, 제2 및 제7 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 8a에 도시된 바와 같이, 제1 쓰기 동작(800) 이후, Vth-1이 THRESHOLD-1로 나타내어지고 Vth-2가 THRESHOLD-2로 나타내어지고 0 VOLTS = BASELINE일 때, V-read ≥ Vth-2이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-1이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 8b에 도시된 바와 같이, 제2 쓰기 동작(810) 이후, Vth-3이 THRESHOLD-1로 나타내어지고 Vth-4가 THRESHOLD-2로 나타내어지고 Vth-2 = BASELINE (전하는 레벨링된 상태) 일 때, V-read ≥ Vth-4이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-3이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 8c에 도시된 바와 같이, 제7 쓰기 동작(820) 이후, Vth-13이 THRESHOLD-1로 나타내어지고 Vth-14가 THRESHOLD-2로 나타내어지고 Vth-12 = BASELINE (전하는 레벨링된 상태) 일 때, V-read > Vth-14이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-13이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 9a 및 도 9b는 각각 본 발명의 실시예에 따라 참조 번호 900, 910으로 대략 표기되는, 예시적 4-상태 4-비트 MLC셀에서의 제1 및 제5 쓰기의 예시적 이동 기선 코딩 동작을 도시한다.
도 9a에 도시된 바와 같이, 제1 쓰기 동작(900) 이후, Vth-1이 THRESHOLD-1로 나타내어지고 Vth-2가 THRESHOLD-2로 나타내어지고 Vth-3이 THRESHOLD-3로 나타내어 지고 0 VOLTS = BASELINE일 때, V-read ≥ Vth-3이면 V-read = 3이고, 그렇지 않고 V-read ≥ Vth-2이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-1이면 V-read = 1이고 그렇지도 않으면 V-read = 0이다.
도 9b에 도시된 바와 같이, 제5 쓰기 동작(910) 이후, Vth-12이 THRESHOLD-1로 나타내어지고 Vth-13이 THRESHOLD-2로 나타내어지고 Vth-14가 THRESHOLD-3로 나타내어 지고 Vth-11 = BASELINE (전하는 레벨링된 상태) 일 때, V-read ≥ Vth-14이면 V-read = 2이고, 그렇지 않고 V-read ≥ Vth-13이면 V-read = 1이고, 그렇지도 않으면 V-read = 0이다.
도 10a 및 도 10b는 각각 본 발명의 실시예에 따라 참조 번호 1000, 1010으로 대략 표기되는, 예시적 2-비트 MLC 낸드 셀에서의 데이터 쓰기 및 데이터 읽기 동작에 따른 예시적 전압 드리프트를 도시한다.
도 10a에 도시된 바와 같이, 데이터 쓰기 동작(1000) 이후, Vth-4이 THRESHOLD로 나타내어지고 Vth-3 = BASELINE일 때 V-read ≥ Vth-4이면 V-read = 1이고, 그렇지 않으면 V-read = 0이다.
도 10b에 도시된 바와 같이, 예시적 전압 드리프트를 포함하는 데이터 읽기 동작(1010) 이후, Vth-2' 이 THRESHOLD로 나타내어지고 Vth-1' = BASELINE일 때 V-read ≥ Vth-2' 이면 V-read = 1이고, 그렇지 않으면 V-read = 0이다. 필요에 따라 읽기 데이터에 대한 임계 전압을 조절하는 능력으로, 셀들 간 전압 드리프트가 실질적으로 동일하다면 데이터는 복구 가능하다
도 11a, 11b 및 11c는 본 발명의 실시예에 따라 각각 참조 번호 1100, 1110, 1120으로 대략 표기되는, 예시적 2-비트 MLC 낸드 셀에서의 제3 데이터 쓰기, 빠른 부분소거 및 데이터 다시쓰기의 동작에 따른 예시적 부분 소거를 도시한다.
도 11a에 도시된 바와 같이, 제3 데이터 쓰기 동작(1100)으로, Vth-3이 THRESHOLD로 나타내어지고 Vth-2 = BASELINE일 때 V-read ≥ Vth-3이면 V-read = 1이고, 그렇지 않으면 V-read = 0이다.
도 11b에 도시된 바와 같이, 데이터 부분 소거 동작(1110)이 나타나 있고, 여기서 셀 사이에 불균등한 소거의 가능성이 있다.
도 11c에 도시된 바와 같이, 부분 소거 동작(1110)의 후속으로 데이터 다시쓰기 동작(1120)이 나타나 있다. 데이터 다시쓰기 동작(1120)에 대해, Vth-3은 THRESHOLD로 나타내어지고 Vth-2 = BASELINE (전하가 레벨링된 상태)일 때 V-read ≥ Vth-3이면 V-read = 1, 그렇지 않으면, V-read = 0이다.
도 12a 및 도 12b는 각각 본 발명의 실시예에 따라 참조 번호 1200, 1210으로 대략 표기되는, 예시적 2-비트 MLC 낸드 셀에서의 비열화 셀 및 열화 셀에 대한 임계치 해상도의 예시적인 변화를 도시하고 있다.
도 12a에 도시된 바와 같이, 예시적 비열화 셀(1200)에 대해, 3번의 이동 기선 쓰기에 대해 세 개의 임계치 레벨, 즉 Vth-1, Vth-2 및 Vth-3이 있다. 도 12b에서, 예시적 열화 셀(1210)에 대해, 2번의 이동 기선 쓰기에 대해 두 개의 임계치 레벨, 즉 Vth-1' 및 Vth-2' 이 있다.
도 13a, 13b, 13c 및 13d는 각각 본 발명의 실시예에 따라 참조 번호 1300, 1310, 1320 및 1330으로 대략 표기되는, 예시적 3-비트 MLC 낸드 셀에서의 비열화 셀 및 열화 셀에 대해 임계치 해상도의 예시적인 변화를 도시하고 있다.
도 13a에 도시된 바와 같이, 예시적 비열화 셀(1300)에 대해, 5번의 이동 기선 쓰기에 대해 다섯 개의 임계치 레벨, 즉 Vth-1, Vth-2, Vth-3, Vth-4 및 Vth-5가 있다. 도 13b에 도시된 바와 같이, 예시적 열화 셀(1310)에 대해, 4번의 이동 기선 쓰기에 대해 네 개의 임계치 레벨, 즉 Vth-1', Vth-2', Vth-3' 및 Vth-4' 가 있다. 도 13c에 도시된 바와 같이, 예시적 열화 셀(1320)에 대해, 3번의 이동 기선 쓰기에 대해 세 개의 임계치 레벨, 즉 Vth-1', Vth-2' 및 Vth-3' 이 있다. 도 13d에서, 예시적 열화 셀(1330)에 대해, 2번의 이동 기선 쓰기에 대해 두 개의 임계치 레벨, 즉 Vth-1' 및 Vth-2' 이 있다.
도 14를 참조하면, 본 발명의 실시예에 따라 참조 번호 1400으로 대략 표시되는, 예시적 MLC 셀에 대한 예시적 파라미터 데이터를 나타내는 차트가 도시되어 있다. 예시적 MLC 셀(1400)에 대한 예시적 파라미터 데이터는 각각의 예시적 셀당 레벨(1402), 수치 베이스(1404), 임계치 레벨 번호(1404), 전체 소거 후 셀이 열화되지 않는 경우의 이용 가능한 이동 기선 쓰기(1408), 및 전체 소거 후 셀이 열화되는 경우의 이용 가능한 이동 기선 쓰기(1410)의 범위을 포함한다.
도 15a 및 도 15b는 각각 본 발명의 실시예에 따라 참조 번호 1500, 1510으로 대략 표기되는, 예시적 2-비트 MLC 낸드 셀에서의 데이터 쓰기 및 데이터 되읽기 동작에 따른 예시적 전압 누설 표시를 도시한다.
도 15a에 도시된 바와 같이, 제1 쓰기 동작(1500) 이후, Vth-3이 THRESHOLD-1로 나타내어지고 Vth-2 = BASELINE일 때 V-read ≥ Vth-3이면 V-read = 1이고, 그렇지 않으면 V-read = 0이다.
도 15b 도시된 바와 같이, 전압 누설 표시, 데이터 되읽기 동작(1510)과 관련하여, Vth-3이 THRESHOLD-1로 나타내어지고 Vth-2 = BASELINE일 때 V-read < Vth-2이면 전압 누설이 발생한 경우 오류가 '?'로 표시될 수 있다. 이동 기선 디코더는 누설을 오류로 표시하거나 "0" 또는 "1"을 서로 다른 확률로 누설 셀로 할당할 수 있으며 이를 교정 셀 내용에 대한 최종 결정을 위해 소프트 디코더/오류 교정 시스템으로 보낸다. 이러한 누설 이벤트는 관리 시스템에 의해 이용되어 그 부분에 대한 에이지를 누설 비트가 일어나는 빈도에 따라 간주하며, 이는 전체 메모리 부분의 교체를 위해 권장되는 미리 정의된 임계치에 있을 수 있다.
비록 본 발명의 이동 기선(MB) 메모리 데이터 부호화를 도시된 MLC 낸드 플래시의 경우와 관련하여 개괄적으로 설명하였으나, 당업자라면 본 발명의 MB 데이터 부호화가 본 발명의 범위에서 벗어남이 없이 멀티레벨 PCM 메모리와 함께 유리하게 이용될 수 있음을 이해할 것이다.
이제 도 16을 참조하면, 본 발명의 컴퓨터 프로그램 제품(1600)의 제조품이 도시되어 있다. 컴퓨터 프로그램 제품(1600)은 컴퓨터로 읽을 수 있는 기록 매체(1602), 예컨대 플로피 디스크, 광학적으로 판독하는 콤팩트 디스크 형태의 대용량 읽기 전용 메모리 혹은 CD-ROM, 테이프, 또는 기타 유사한 컴퓨터 프로그램 제품을 포함한다. 컴퓨터로 읽을 수 있는 기록 매체(1602)는 기록 매체(1602) 상에, 본 발명의 실시예의 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 MLC 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 구현하기 위한 방법을 도 1의 시스템(100)에서 실행하기 위한 프로그램 수단 또는 제어 코드(1604, 1606, 1608, 1610)를 저장한다.
일련의 프로그램 명령어 또는 기록된 프로그램 수단 또는 제어 코드(1604, 1606, 106, 1610)에 의해 정의되는 하나 이상의 서로 관련된 모듈들의 논리적 어셈블리는 본 발명의 실시예의 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 MLC 메모리의 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거를 구현하기 위한 시스템(100)의 SSD 컨트롤러(106)를 제어한다.
본 발명은 도면에 도시된 본 발명의 실시예의 세부사항들을 참조하여 설명되었지만, 이러한 세부 사항들은 첨부된 청구항에서 청구된 바와 같은 본 발명의 범위를 제한하고자 하는 것은 아니다.
Claims (20)
- 멀티레벨 셀(MLC) 메모리에 대한 데이터 쓰기 구현을 위한 방법에 있어서,
이전 쓰기의 전압 기선을 식별하는 단계; 및
상기 식별된 전압 기선에 응답하여, 데이터가 상기 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 이전 쓰기의 전압 기선을 식별하는 단계는 상기 데이터 쓰기를 수행하기 전에 MLC 메모리 셀들을 읽는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 이전 쓰기의 전압 기선을 식별하는 단계는 MLC 메모리 셀들에 관한 미리 정의된 파라미터 정보를 유지하는 단계를 포함하며, 상기 미리 정의된 파라미터 정보는 상기 전압 기선을 포함하는 데이터 쓰기 구현을 위한 방법. - 제3항에 있어서,
셀에 대한 매 쓰기 이후 및 매 셀 소거 이후 상기 전압 기선을 업데이트하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 실행 길이 제한(run-length limited, RLL) 코드를 이용하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 부당한 데이터 조합의 발생을 표시하기 위한 플래그를 저장하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 기선 전압을 지속적으로 파악하기 위해 특정의 전압 레벨에서 참조 셀을 주기적으로 쓰는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 임계치 레벨 해상도를 제공하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 상태 레벨을 낮추는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 4-상태 이동 기선 메모리 데이터 코드에서 2-상태 이동 기선 메모리 데이터 코드로 전환하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 제1항에 있어서,
상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 MLC 메모리의 부분 소거 이전에 설정된 횟수의 쓰기 사이클을 이용하여 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 해상도를 제공하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법. - 멀티레벨 셀(MLC) 메모리에 대한 데이터 쓰기 구현을 위한 장치에 있어서,
컨트롤러를 포함하되,
상기 컨트롤러는 이전 쓰기의 전압 기선을 식별하며; 그리고
상기 식별된 전압 기선에 응답하여, 데이터가 상기 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 장치. - 제12항에 있어서,
컴퓨터가 읽을 수 있는 매체에 저장된 제어 코드를 포함하되, 상기 컨트롤러는 데이터 쓰기를 구현하기 위해 상기 제어 코드를 이용하는 장치. - 제12항에 있어서,
상기 컨트롤러가 이전 쓰기의 전압 기선을 식별하는 것은 상기 컨트롤러가 상기 데이터 쓰기를 수행하기 전에 MLC 메모리 셀들을 읽는 것을 포함하는 장치. - 제12항에 있어서,
상기 컨트롤러가 이전 쓰기의 전압 기선을 식별하는 것은 상기 컨트롤러가 MLC 메모리 셀들에 관한 미리 정의된 파라미터 정보를 유지하는 것을 포함하되, 상기 미리 정의된 파라미터 정보는 상기 전압 기선을 포함하는 장치. - 제12항에 있어서,
상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 것은 상기 컨트롤러가 RLL 코드를 이용하는 것을 포함하는 장치. - 제12항에 있어서,
상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 것은 상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 임계치 레벨 해상도를 제공하고, 상기 컨트롤러가 상기 MLC 메모리의 부분 소거를 수행하기 조절 가능한 횟수의 쓰기 사이클을 제공하는 것을 포함하는 장치. - 멀티레벨 셀 메모리; 및
데이터 쓰기를 위한 이동 기선 메모리 데이터 부호화 제어를 이용하는 컨트롤러를 포함하되,
상기 컨트롤러는
이전 쓰기의 전압 기선을 식별하며; 그리고
상기 식별된 전압 기선에 응답하여, 데이터가 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화 제어를 이용하여 데이터 쓰기를 수행하는 데이터 저장 장치. - 제18항에 있어서,
상기 컨트롤러가 이전 쓰기의 전압 기선을 식별하는 것은 상기 컨트롤러가 상기 전압 기선을 포함하는 미리 정의된 파라미터 정보를 유지하는 것을 포함하는 데이터 저장 장치. - 제18항에 있어서,
상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 것은 상기 컨트롤러가 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 임계치 레벨 해상도를 제공하는 것을 포함하는 데이터 저장 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/361,905 US8699266B2 (en) | 2012-01-30 | 2012-01-30 | Implementing enhanced data write for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding |
US13/361,905 | 2012-01-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130088069A true KR20130088069A (ko) | 2013-08-07 |
KR101573977B1 KR101573977B1 (ko) | 2015-12-02 |
Family
ID=47890882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130009737A KR101573977B1 (ko) | 2012-01-30 | 2013-01-29 | 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8699266B2 (ko) |
KR (1) | KR101573977B1 (ko) |
DE (1) | DE102013001420A1 (ko) |
GB (1) | GB2498873A (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716266B (zh) * | 2012-09-29 | 2017-09-12 | 华为技术有限公司 | 信号处理方法、装置及系统 |
US9754682B2 (en) * | 2013-11-19 | 2017-09-05 | Western Digital Technologies, Inc. | Implementing enhanced performance with read before write to phase change memory |
GB201320983D0 (en) * | 2013-11-28 | 2014-01-15 | Ibm | Data encoding in solid-state storage apparatus |
US9690656B2 (en) | 2015-02-27 | 2017-06-27 | Microsoft Technology Licensing, Llc | Data encoding on single-level and variable multi-level cell storage |
US9786386B2 (en) | 2015-02-27 | 2017-10-10 | Microsoft Technology Licensing, Llc | Dynamic approximate storage for custom applications |
US9646721B1 (en) * | 2016-03-31 | 2017-05-09 | EMC IP Holding Company LLC | Solid state drive bad block management |
US11170853B2 (en) | 2020-03-04 | 2021-11-09 | Micron Technology, Inc. | Modified write voltage for memory devices |
US11294819B2 (en) * | 2020-03-31 | 2022-04-05 | Western Digital Technologies, Inc. | Command optimization through intelligent threshold detection |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7333364B2 (en) | 2000-01-06 | 2008-02-19 | Super Talent Electronics, Inc. | Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory |
DE602005012625D1 (de) * | 2005-07-22 | 2009-03-19 | Hynix Semiconductor Inc | Verfahren zum Zugreifen auf eine nichtflüchtige Mehrpegelspeichervorrichtung vom Typ FLASH NAND |
US7697326B2 (en) * | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US7639531B2 (en) | 2006-05-15 | 2009-12-29 | Apple Inc. | Dynamic cell bit resolution |
WO2009067633A1 (en) | 2007-11-20 | 2009-05-28 | California Institute Of Technology | Rank modulation for memory devices |
US8074013B2 (en) * | 2009-09-21 | 2011-12-06 | Skymedi Corporation | Uniform coding system for a flash memory |
US8578246B2 (en) * | 2010-05-31 | 2013-11-05 | International Business Machines Corporation | Data encoding in solid-state storage devices |
TWI438777B (zh) | 2010-06-10 | 2014-05-21 | Global Unichip Corp | 一種快閃記憶體控制器之資料傳輸保護裝置 |
US9229804B2 (en) * | 2010-08-17 | 2016-01-05 | Technion Research And Development Foundation Ltd. | Mitigating inter-cell coupling effects in non volatile memory (NVM) cells |
-
2012
- 2012-01-30 US US13/361,905 patent/US8699266B2/en active Active
-
2013
- 2013-01-28 GB GB1301472.5A patent/GB2498873A/en not_active Withdrawn
- 2013-01-28 DE DE102013001420A patent/DE102013001420A1/de active Pending
- 2013-01-29 KR KR1020130009737A patent/KR101573977B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
GB2498873A (en) | 2013-07-31 |
KR101573977B1 (ko) | 2015-12-02 |
GB201301472D0 (en) | 2013-03-13 |
US8699266B2 (en) | 2014-04-15 |
US20130194864A1 (en) | 2013-08-01 |
DE102013001420A1 (de) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20130088061A (ko) | 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 읽기 구현 | |
KR20130088066A (ko) | 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 부분 소거 구현 | |
US9378830B2 (en) | Partial reprogramming of solid-state non-volatile memory cells | |
KR20130088069A (ko) | 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 | |
KR100963707B1 (ko) | 플래시 메모리 관리 방법, 메모리 장치, 시스템, 컴퓨터판독가능한 기록 매체, 비휘발성 저장 요소 어레이 관리방법 | |
KR100948791B1 (ko) | 멀티 비트 셀 플래시 메모리 관리 방법 | |
US9263158B2 (en) | Determining data retention time in a solid-state non-volatile memory | |
KR100297465B1 (ko) | 비휘발성메모리의일회삭제당복수회기록방법 | |
US8923045B2 (en) | Multi-level cell (MLC) update with protected mode capability | |
CN107608628B (zh) | 闪存控制器 | |
US9001578B2 (en) | Soft erasure of memory cells | |
JP2019168937A (ja) | メモリシステム、制御方法及びコントローラ | |
US20150149693A1 (en) | Targeted Copy of Data Relocation | |
US9099185B2 (en) | Using different programming modes to store data to a memory cell | |
US8705291B2 (en) | Sanitizing a non-volatile memory through charge accumulation | |
US9361221B1 (en) | Write amplification reduction through reliable writes during garbage collection | |
JP2021026448A (ja) | 記憶部システム、記憶部制御装置および記憶部制御方法 | |
KR101197031B1 (ko) | 메모리의 읽기 및 쓰기 보정장치 및 보정방법과 그 보정방법을 수행하는 명령어를 포함하는 컴퓨터 판독가능 기록매체 | |
US9576649B2 (en) | Charge loss compensation through augmentation of accumulated charge in a memory cell | |
KR20160021549A (ko) | 메모리 시스템 및 메모리의 데이터 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |