KR20130088069A - 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 - Google Patents

임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 Download PDF

Info

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
Application number
KR1020130009737A
Other languages
English (en)
Other versions
KR101573977B1 (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 KR20130088069A publication Critical patent/KR20130088069A/ko
Application granted granted Critical
Publication of KR101573977B1 publication Critical patent/KR101573977B1/ko

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16KVALVES; TAPS; COCKS; ACTUATING-FLOATS; DEVICES FOR VENTING OR AERATING
    • F16K3/00Gate valves or sliding valves, i.e. cut-off apparatus with closing members having a sliding movement along the seat for opening and closing
    • F16K3/30Details
    • F16K3/32Means for additional adjustment of the rate of flow
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL 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/00Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms
    • A61H23/04Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms with hydraulic or pneumatic drive
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL 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/00Devices for suction-kneading massage; Devices for massaging the skin by rubbing or brushing not otherwise provided for
    • A61H7/007Kneading
    • A61H7/008Suction kneading
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL 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/00Pneumatic or hydraulic massage
    • A61H9/005Pneumatic massage
    • A61H9/0078Pneumatic massage with intermittent or alternately inflated bladders or cuffs
    • A61H9/0092Cuffs therefor
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16KVALVES; TAPS; COCKS; ACTUATING-FLOATS; DEVICES FOR VENTING OR AERATING
    • F16K3/00Gate valves or sliding valves, i.e. cut-off apparatus with closing members having a sliding movement along the seat for opening and closing
    • F16K3/30Details
    • F16K3/314Forms or constructions of slides; Attachment of the slide to the spindle
    • 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
    • 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/5678Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0004Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code 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
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/20Multistable switching devices, e.g. memristors
    • H10N70/231Multistable switching devices, e.g. memristors based on solid-state phase change, e.g. between amorphous and crystalline phases, Ovshinsky effect
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-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/146Write once memory, i.e. allowing changing of memory content by writing additional bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write 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

임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(MLC) 메모리의 향상된 데이터 쓰기 구현{IMPLEMENTING ENHANCED DATA WRITE FOR MULTI-LEVEL CELL (MLC) MEMORY USING THRESHOLD VOLTAGE-DRIFT OR RESISTANCE DRIFT TOLERANT MOVING BASELINE MEMORY DATA ENCODING}
본 발명은 일반적으로 데이터 저장 분야에 관한 것으로, 특히 향상된 데이터 쓰기, 향상된 데이터 읽기 및 향상된 데이터 부분 소거 동작 수행 중 손상을 감소시켜 비휘발성 메모리의 내구성을 향상시키기 위해 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선(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은 본 발명의 실시예에 따른 컴퓨터 프로그램 제품을 도시하는 블록도이다.
본 발명의 실시예에 관한 하기 상세한 설명에서, 본 발명을 구현할 수 있도록 하는 예시적 실시예를 도시하는 첨부한 도면을 참조한다. 본 발명의 범위를 벗어나지 않으면서 다른 실시예들을 이용할 수 있고 구조적 변경이 가능함을 이해할 수 있을 것이다.
본 발명의 특징에 따르면, 멀티레벨 셀 (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)

  1. 멀티레벨 셀(MLC) 메모리에 대한 데이터 쓰기 구현을 위한 방법에 있어서,
    이전 쓰기의 전압 기선을 식별하는 단계; 및
    상기 식별된 전압 기선에 응답하여, 데이터가 상기 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  2. 제1항에 있어서,
    상기 이전 쓰기의 전압 기선을 식별하는 단계는 상기 데이터 쓰기를 수행하기 전에 MLC 메모리 셀들을 읽는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  3. 제1항에 있어서,
    상기 이전 쓰기의 전압 기선을 식별하는 단계는 MLC 메모리 셀들에 관한 미리 정의된 파라미터 정보를 유지하는 단계를 포함하며, 상기 미리 정의된 파라미터 정보는 상기 전압 기선을 포함하는 데이터 쓰기 구현을 위한 방법.
  4. 제3항에 있어서,
    셀에 대한 매 쓰기 이후 및 매 셀 소거 이후 상기 전압 기선을 업데이트하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  5. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 실행 길이 제한(run-length limited, RLL) 코드를 이용하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  6. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 부당한 데이터 조합의 발생을 표시하기 위한 플래그를 저장하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  7. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 기선 전압을 지속적으로 파악하기 위해 특정의 전압 레벨에서 참조 셀을 주기적으로 쓰는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  8. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 임계치 레벨 해상도를 제공하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  9. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 상태 레벨을 낮추는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  10. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 4-상태 이동 기선 메모리 데이터 코드에서 2-상태 이동 기선 메모리 데이터 코드로 전환하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  11. 제1항에 있어서,
    상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 단계는 상기 MLC 메모리의 부분 소거 이전에 설정된 횟수의 쓰기 사이클을 이용하여 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 해상도를 제공하는 단계를 포함하는 데이터 쓰기 구현을 위한 방법.
  12. 멀티레벨 셀(MLC) 메모리에 대한 데이터 쓰기 구현을 위한 장치에 있어서,
    컨트롤러를 포함하되,
    상기 컨트롤러는 이전 쓰기의 전압 기선을 식별하며; 그리고
    상기 식별된 전압 기선에 응답하여, 데이터가 상기 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 장치.
  13. 제12항에 있어서,
    컴퓨터가 읽을 수 있는 매체에 저장된 제어 코드를 포함하되, 상기 컨트롤러는 데이터 쓰기를 구현하기 위해 상기 제어 코드를 이용하는 장치.
  14. 제12항에 있어서,
    상기 컨트롤러가 이전 쓰기의 전압 기선을 식별하는 것은 상기 컨트롤러가 상기 데이터 쓰기를 수행하기 전에 MLC 메모리 셀들을 읽는 것을 포함하는 장치.
  15. 제12항에 있어서,
    상기 컨트롤러가 이전 쓰기의 전압 기선을 식별하는 것은 상기 컨트롤러가 MLC 메모리 셀들에 관한 미리 정의된 파라미터 정보를 유지하는 것을 포함하되, 상기 미리 정의된 파라미터 정보는 상기 전압 기선을 포함하는 장치.
  16. 제12항에 있어서,
    상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 것은 상기 컨트롤러가 RLL 코드를 이용하는 것을 포함하는 장치.
  17. 제12항에 있어서,
    상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 것은 상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 임계치 레벨 해상도를 제공하고, 상기 컨트롤러가 상기 MLC 메모리의 부분 소거를 수행하기 조절 가능한 횟수의 쓰기 사이클을 제공하는 것을 포함하는 장치.
  18. 멀티레벨 셀 메모리; 및
    데이터 쓰기를 위한 이동 기선 메모리 데이터 부호화 제어를 이용하는 컨트롤러를 포함하되,
    상기 컨트롤러는
    이전 쓰기의 전압 기선을 식별하며; 그리고
    상기 식별된 전압 기선에 응답하여, 데이터가 MLC 메모리에 쓰여 지도록 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화 제어를 이용하여 데이터 쓰기를 수행하는 데이터 저장 장치.
  19. 제18항에 있어서,
    상기 컨트롤러가 이전 쓰기의 전압 기선을 식별하는 것은 상기 컨트롤러가 상기 전압 기선을 포함하는 미리 정의된 파라미터 정보를 유지하는 것을 포함하는 데이터 저장 장치.
  20. 제18항에 있어서,
    상기 컨트롤러가 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용하여 데이터 쓰기를 수행하는 것은 상기 컨트롤러가 상기 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화의 조절 가능한 임계치 레벨 해상도를 제공하는 것을 포함하는 데이터 저장 장치.
KR1020130009737A 2012-01-30 2013-01-29 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 쓰기 구현 KR101573977B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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