KR101436506B1 - 메모리 장치 및 메모리 데이터 프로그래밍 방법 - Google Patents

메모리 장치 및 메모리 데이터 프로그래밍 방법 Download PDF

Info

Publication number
KR101436506B1
KR101436506B1 KR1020080071647A KR20080071647A KR101436506B1 KR 101436506 B1 KR101436506 B1 KR 101436506B1 KR 1020080071647 A KR1020080071647 A KR 1020080071647A KR 20080071647 A KR20080071647 A KR 20080071647A KR 101436506 B1 KR101436506 B1 KR 101436506B1
Authority
KR
South Korea
Prior art keywords
codewords
memory device
data
memory
generate
Prior art date
Application number
KR1020080071647A
Other languages
English (en)
Other versions
KR20100010664A (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 삼성전자주식회사
Priority to KR1020080071647A priority Critical patent/KR101436506B1/ko
Priority to US12/453,964 priority patent/US8004891B2/en
Publication of KR20100010664A publication Critical patent/KR20100010664A/ko
Application granted granted Critical
Publication of KR101436506B1 publication Critical patent/KR101436506B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • 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
    • 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

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

Abstract

메모리 장치 및 메모리 데이터 프로그래밍 방법이 제공된다. 본 발명 일 실시예에 따른 메모리 장치는 제1 데이터 페이지를 인코드하여 제1 코드워드 (codeword)를 생성하고 제2 데이터 페이지를 인코드하여 제2 코드워드를 생성할 수 있다. 메모리 장치는 연속적인 1의 개수의 최대값 또는 연속적인 0의 개수의 최대값을 가지는 제1 코드워드를 생성할 수 있다. 메모리 장치는 제1 코드워드 및 제2 코드워드를 복수의 멀티 비트 셀에 프로그램할 수 있다. 메모리 장치는 메모리 셀들의 문턱 전압의 산포(distribution)를 개선할 수 있다.
CTF, modulation coding, charge trap, flash memory

Description

메모리 장치 및 메모리 데이터 프로그래밍 방법 {MEMORY DEVICE AND METHOD OF PROGRAMMING DATA IN MEMORY DEVICE}
본 발명의 실시예들은 메모리 장치에 데이터를 프로그램하는 장치 및 방법에 관한 것이다. 본 발명의 실시예들은 메모리 셀의 문턱 전압 (threshold voltage)을 변경함으로써 데이터를 저장하는 메모리 장치에 있어서 데이터를 프로그램하는 장치 및 방법에 관한 것이다.
전원이 꺼져도 저장된 정보를 계속 저장할 수 있는 스토리지(storage)의 하나로서 최근 비휘발성(non-volatile) 반도체 메모리가 널리 이용되고 있다. 비휘발성 메모리의 대표적인 것으로 플래시 메모리를 들 수 있으며, 플래시 메모리는 종래의 하드 디스크 드라이브(Hard Disk Drive, HDD)에 비하면 크기가 작고, 전력 소모량이 작으며, 읽기 속도를 높일 수 있는 이점이 있다. 최근에는 대용량의 플래시 메모리를 이용하여 HDD를 대체하기 위한 SSD(Solid State Disk)가 제안되기도 하였다.
플래시 메모리의 종류로서 대표적인 것들로는 NAND 방식의 플래시 메모리와 NOR 플래시 메모리 등을 들 수 있다. NAND 방식과 NOR 방식은 셀 어레이의 구성 및 동작 방식에 의해 구별될 수 있다.
플래시 메모리는 다수의 메모리 셀들의 배열로 이루어지며, 하나의 메모리 셀은 하나 이상의 데이터 비트를 저장할 수 있다. 하나의 메모리 셀은 컨트롤 게이트(control gate) 및 플로팅 게이트(floating gate)를 포함하며, 컨트롤 게이트 및 플로팅 게이트 사이에는 절연체(insulator)가 삽입되고, 플로팅 게이트 및 서브스트레이트(substrate) 간에도 절연체가 삽입된다.
플래시 메모리의 메모리 셀에 데이터를 저장하는 과정을 프로그램이라고 하며, 프로그램 또는 데이터를 소거하는(erase) 과정은 핫 캐리어 이펙트(hot carrier effect) 또는 F-N 터널링(Fowler-Nordheim Tunneling, F-N tunneling) 메커니즘에 의하여 수행될 수 있다.
본 발명의 일 실시예에 따른 메모리 장치는 복수의 멀티 비트 셀들을 포함하는 메모리 셀 어레이, 제1 데이터 페이지를 인코드하여 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드 (codeword)를 생성하고, 제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성하는 인코더, 및 상기 복수의 멀티 비트 셀들에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 프로그래밍부를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 데이터 프로그래밍 방법은 제1 데이터 페이지를 인코드하여 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드를 생성하는 단계, 제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성하는 단계, 및 복수의 멀티 비트 셀들에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면 복수의 메모리 셀들의 문턱 전압(threshold voltage)의 산포 폭을 줄일 수 있다. 따라서 본 발명의 실시예에 따르면 복수의 메모리 셀들로부터 데이터를 읽을 때의 오류를 줄일 수 있다.
본 발명의 실시예에 따르면 인접한 복수의 메모리 셀들 간의 lateral charge spreading을 줄일 수 있다. 따라서 본 발명의 실시예에 따르면 메모리 셀에 저장된 데이터의 오염 가능성을 줄일 수 있다.
본 발명의 실시예에 따르면 위상 동기 루프(phase locked loop, PLL)에 레퍼런스 정보를 적절한 제공할 수 있다. 따라서 본 발명의 실시예는 고속 데이터 전송 시의 오류를 줄일 수 있다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
본 발명의 실시예들은 메모리 셀의 문턱 전압 (threshold voltage)을 변화시켜 데이터를 저장하는 메모리 장치에 적용될 수 있다. 이러한 종류의 메모리 장치의 예로는 플래시 메모리(flash memory), EEPROM(Electrically Erasable Programmable Read Only Memory), PRAM(Phase Shift Random Access Memory), MRAM(Magnetic Random Access Memory) 등이 포함될 수 있다.
비휘발성 메모리 장치의 메모리 셀은 저장되는 데이터의 밀도(density)에 따라 싱글 레벨 셀 또는 멀티 레벨 셀로 분류될 수 있다.
싱글 레벨 셀(SLC: single-level cell) 메모리는 하나의 메모리 셀에 1비트의 데이터를 저장하는 메모리이다. 싱글 레벨 셀 메모리는 싱글 비트 셀(SBC: single-bit cell) 메모리로도 불린다. 싱글 레벨 셀 메모리의 메모리 셀(싱글 레벨 셀)에 데이터를 저장하는 과정은 프로그램 과정이라고도 불리며, 메모리 셀의 문턱 전압(threshold voltage)을 변화시킬 수 있다. 예를 들어, 싱글 레벨 셀에 논리 "1"의 데이터가 저장된 경우에는 싱글 레벨 셀은 1.0 Volt의 문턱 전압을 가질 수 있으며, 논리 "0"의 데이터가 저장된 경우에는 싱글 레벨 셀은 3.0 Volt의 문턱 전압을 가질 수 있다.
복수의 싱글 레벨 셀들 간의 미세한 전기적 특성의 차이로 인해 동일한 데이터가 프로그램된 싱글 레벨 셀들 각각에 형성된 문턱 전압은 일정한 범위의 산포(distribution)를 가지게 된다. 예를 들어, 메모리 셀로부터 판독된 전압이 0.5-1.5 Volt인 경우에는 상기 메모리 셀에 저장된 데이터는 논리 "1"이고, 메모리 셀로부터 판독된 전압이 2.5-3.5 Volt인 경우에는 상기 메모리 셀에 저장된 데이터는 논리 "0"으로 판정될 수 있다. 메모리 셀에 저장된 데이터는 판독 동작 시 메모리 셀의 전류/전압의 차이에 의하여 구분된다.
멀티 레벨 셀(MLC: multi-level cell) 메모리는 하나의 메모리 셀에 2비트 이상의 데이터를 프로그램할 수 있는 메모리이다. 멀티 레벨 셀 메모리는 멀티 비트 셀(MBC: multi-bit cell) 메모리로도 불린다. 멀티 레벨 셀 메모리는 저장되는 데이터의 밀도를 높일 수 있으므로 대용량 메모리를 구현하는 데 유리하다. 그러나, 하나의 메모리 셀에 프로그램되는 비트의 수가 증가할수록 신뢰성은 떨어지고, 판독 실패율(read failure rate)은 증가하게 된다. 하나의 메모리 셀에 m개의 비트를 프로그램하려면, 2m개의 문턱 전압 중 어느 하나가 상기 메모리 셀에 형성되어야 한다. 메모리 셀들 간의 미세한 전기적 특성의 차이로 인해, 동일한 데이터가 프로그램된 메모리 셀들의 문턱 전압들은 일정한 범위의 산포(distribution)를 형성할 수 있다. 이 때, m개의 비트에 의해 생성될 수 있는 2m 개의 데이터 값 각각에 하나씩의 문턱 전압 산포가 대응할 수 있다.
그러나, 메모리의 전압 윈도우(voltage window)는 제한되어 있기 때문에, m이 증가함에 따라 인접한 비트들 간의 문턱 전압(threshold)의 2m개의 산포들 간의 거리는 줄어들고, 산포들 간의 거리가 더욱 줄어들면 산포들끼리 겹칠 수 있다. 산포들끼리 겹치면 판독 실패율이 증가할 수 있다.
본 발명의 실시예들은 멀티 비트 셀을 포함하는 전하 트랩 메모리(Charge Trap Memory)에 적용될 수 있다. 전하 트랩 메모리의 메모리 셀은 게이트 단자(gate terminal) 및 채널(channel) 사이에 위치하는 전하 트랩 사이트(charge trap site)를 포함할 수 있다. 메모리 셀의 문턱 전압은 전하 트랩 사이트에 충전된 전하의 양에 기초하여 결정될 수 있다.
전하 트랩 메모리의 인접한 메모리 셀들의 전하 트랩 사이트에 저장된 전하들 간에 작용하는 전기력에 의하여 전하 트랩 사이트에 충전된 전하가 채널과 평행한 방향으로 이동할 수 있고, 전하 트랩 사이트에 충전된 전하의 위치 또는 양이 영향 받을 수 있다. 이러한 메커니즘에 의해 전하 트랩 메모리에 저장된 데이터는 시간이 경과하면 오염될 가능성을 가지므로, 전하 트랩 메모리 장치는 데이터를 장기간 유지하였을 경우, 판독 에러를 효율적으로 정정할 수 있는 장치 또는 방법을 필요로 한다.
메모리 셀은 금속(metal) 또는 폴리실리콘(poly-silicon)으로 이루어진 게이트 단자를 가지고, 게이트 단자 및 채널 사이에 부유 게이트(floating gate, FG)를 가질 수도 있다. 부유 게이트는 금속 또는 폴리실리콘으로 이루어질 수 있다.
전하 트랩 메모리의 메모리 셀은 게이트 단자 및 채널 사이에 전하 트랩 사이트를 가질 수 있다. 전하 트랩 사이트는 절연 층(insulating layer)일 수 있다. 전하 트랩 사이트는 게이트 단자 및 채널 사이에 존재하는 제1 절연 층보다 큰 유전율(permittivity)을 가질 수 있다.
예를 들어, 게이트 단자 및 채널 사이에는 실리콘 옥사이드(silicon oxide)로 이루어진 제1 절연 층이 존재할 수 있고, 전하 트랩 사이트는 실리콘 나이트라이드 (silicon nitride)로 이루어진 절연 층일 수 있다. 이 때 게이트 단자 및 실리콘 나이트라이드 층 사이에 실리콘 옥사이드 층이 존재하고, 실리콘 나이트라이드 층 및 채널 사이에 실리콘 옥사이드 층이 존재할 수 있다. 전하 트랩 사이트가 절연 층으로 이루어진 경우, 이를 전하 트랩 층(charge trap layer)라 하기도 한다.
본 발명의 실시예들에 따른 전하 트랩 메모리에 데이터를 저장하는 방법은 전하 트랩 층에 전하를 충전 또는 전하 트랩 층으로부터 전하를 방전하여 메모리 셀의 문턱 전압을 변경할 수 있다. 이처럼 데이터를 저장하는 방법을 프로그램이라 하기도 한다. 이 때 전하 트랩 층에 충전된 전하는 메모리 셀의 게이트 단자 및 채널 간에 형성된 전기장(electric field)에 의하여 전하 트랩 층 내에서 이동할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치(100)를 도시하는 도면이다.
도 1을 참조하면 메모리 장치(100)는 메모리 셀 어레이 (110), 프로그래밍부 (120) 및 인코더 (130)를 포함한다.
메모리 셀 어레이(110)는 복수의 멀티 비트 셀들을 포함할 수 있다.
멀티 비트 셀에 데이터를 저장하는 프로그램 과정은 멀티 비트 셀로부터 데이터를 읽는 과정에 비해 긴 시간을 소요한다. 따라서 메모리 장치(100)는 특정 개수의 멀티 비트 셀들에 대하여 동시에 프로그램 과정을 수행할 수 있다.
동시에 프로그램되는 멀티 비트 셀들의 집합(set)을 페이지(page)라 부르기도 한다. 하나의 페이지에 동시에 프로그램되는 데이터의 집합을 데이터 페이지(data page)라 부르기도 한다.
메모리 장치(100)는 하나의 멀티 비트 셀에 m비트의 데이터를 저장할 수 있으므로 하나의 페이지에 m개의 데이터 페이지들을 프로그램할 수 있다.
인코더(130)는 제1 데이터 페이지를 인코드하여 하나 이상의 제1 코드워드 (codeword)를 생성할 수 있다. 이 때 인코더(130)는 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드를 생성할 수 있다.
인코더(130)는 제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성할 수 있다.
프로그래밍부(120)는 하나의 페이지에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램할 수 있다.
본 발명의 다른 실시예에 따라서는 프로그래밍부(120)는 상기 페이지에 상기 하나 이상의 제1 코드워드를 프로그램한 후 상기 페이지에 상기 하나 이상의 제2 코드워드를 프로그램할 수 있다. 본 발명의 다른 실시예에 따라서는 프로그래밍부(120)는 상기 페이지에 상기 하나 이상의 제2 코드워드를 프로그램한 후 상기 페이지에 상기 하나 이상의 제1 코드워드를 프로그램할 수 있다.
다시 도 1을 참조하면 인코더(130)는 제1 데이터 페이지를 인코드하여 연속적인 1의 개수의 제1 최소값 또는 연속적인 0의 개수의 제2 최소값을 가지는 하나 이상의 제1 코드워드를 생성할 수 있다.
메모리 장치(100)는 제1 데이터 페이지에 포함된 연속적인 1의 개수 또는 연속적인 0의 개수의 최대값을 설정할 수 있다. 따라서 메모리 장치(100)는 제1 데이터 페이지의 연속적인 1의 개수 또는 연속적인 0의 개수를 상기 최대값 이하로 제한할 수 있다.
메모리 장치(100)가 메모리 셀 어레이(110)로부터 데이터를 읽은 후 상기 읽은 데이터를 출력하는 과정에서 위상 동기 루프(Phase Locked Loop, PLL)가 이용될 수 있다. PLL은 일반적으로 데이터의 값이 0에서 1로 또는 1에서 0으로 변화하는 순간을 감지하여 위상을 동기할 수 있다. 메모리 장치(100)는 연속적으로 출력되는 0의 개수 또는 연속적으로 출력되는 1의 개수를 제한함으로써 PLL이 감지할 수 있는 레퍼런스 정보를 보다 빈번하게 제공할 수 있다. 따라서 메모리 장치(100)는 고속 PLL의 동작 시 오류를 줄일 수 있고 데이터를 고속으로 출력할 수 있다.
메모리 장치(100)가 연속적인 1의 개수의 최대값, 연속적인 0의 개수의 최대 값, 연속적인 1의 개수의 최소값 또는 연속적인 0의 개수의 최소값을 가지는 제1 코드워드를 생성하는 과정에서 이용할 수 있는 인코딩 기법으로 런 렝쓰 리미티드 코드(Run-length limited code, RLL code)를 이용하는 인코딩 기법이 있을 수 있다.
RLL code의 예로는 다음과 같은 것이 있다. (d, k) code는 두 개의 1 사이의 0의 개수의 최소값이 d이고 두 개의 1 사이의 0의 개수의 최대값이 k인 RLL code이다.
본 발명의 다른 실시예에 따라서는 인코더(130)는 제2 데이터 페이지를 분할하여 복수의 제2 코드워드를 생성할 수 있다. 이 때 인코더(130)는 제2 데이터 페이지에 RLL code를 이용하는 인코딩 기법을 적용하지 않고 복수의 제2 코드워드를 생성할 수 있다. 인코더(130)는 제2 데이터 페이지에 RLL code를 이용하는 인코딩 기법을 적용하지 않음으로써 제1 코드워드 및 제2 코드워드에 관련된 부호율(code rate)을 높일 수 있다.
본 발명의 다른 실시예에 따라서는 인코더(130)는 제2 데이터 페이지를 인코드하여 연속적인 1의 개수의 제3 최대값 또는 연속적인 0의 개수의 제4 최대값을 가지는 상기 하나 이상의 제2 코드워드를 생성할 수 있다. 이 때 인코더(130)는 제2 데이터 페이지에 RLL code를 이용하는 인코딩 기법을 적용하여 하나 이상의 제2 코드워드를 생성할 수 있다.
본 발명의 다른 실시예에 따라서는 인코더(130)는 하나 이상의 제1 코드워드를 반전(flip)하여 하나 이상의 제3 코드워드를 생성할 수 있다. 이 때 프로그래 밍부(120)는 하나의 페이지에 하나 이상의 제3 코드워드 및 하나 이상의 제2 코드워드를 프로그램할 수 있다. 이 때 프로그래밍부(120)는 상기 페이지에 하나 이상의 제1 코드워드 대신 하나 이상의 제3 코드워드를 프로그램할 수 있다.
본 발명의 다른 실시예에 따라서는 인코더(130)는 셀 단위의 심볼 연산을 할 수 있다. 예를 들어 2-bit 멀티 비트 셀의 경우, 하나의 셀에 저장되는 제1 데이터 페이지와 제2 데이터 페이지의 정보를 조합하여 4-ary (Quaternary) 심볼을 생성할 수 있다. m-bit 멀티 비트 셀의 경우, 하나의 셀에 저장되는 m개의 데이터 페이지의 정보를 조합하여 2m-ary 심볼을 생성할 수 있다. 이 경우, 2m-ary RLL code를 적용하여 심볼 단위의 코드워드를 생성할 수 있다.
도 2는 도 1의 메모리 장치(100)에 의해 프로그램된 복수의 멀티 비트 셀들의 문턱 전압 (threshold voltage)들의 산포(distribution)의 일 예를 도시하는 도면이다.
도 2를 참조하면 문턱 전압에 대응하는 멀티 비트 셀의 개수가 도시된다.
산포(210)는 데이터 "11"이 프로그램된 복수의 멀티 비트 셀들의 문턱 전압들의 산포를 나타낸다. 데이터 "11"는 최상위비트 (Most Significant Bit, MSB) "1", 최하위비트 (Least Significant Bit, LSB) "1"로 나타내어질 수 있다. 산포(210)는 프로그램 상태 P0라 불릴 수도 있다.
산포(220)는 데이터 "10"이 프로그램된 복수의 멀티 비트 셀들의 문턱 전압들의 산포를 나타낸다. 데이터 "10"는 MSB "1", LSB "0"로 나타내어질 수 있다. 산포(220)는 프로그램 상태 P1이라 불릴 수도 있다.
산포(230)는 데이터 "00"이 프로그램된 복수의 멀티 비트 셀들의 문턱 전압들의 산포를 나타낸다. 데이터 "00"는 MSB "0", LSB "0"로 나타내어질 수 있다. 산포(230)는 프로그램 상태 P2라 불릴 수도 있다.
산포(240)는 데이터 "01"이 프로그램된 복수의 멀티 비트 셀들의 문턱 전압들의 산포를 나타낸다. 데이터 "01"는 MSB "0", LSB "1"로 나타내어질 수 있다. 산포(240)는 프로그램 상태 P3이라 불릴 수도 있다.
메모리 장치(100)는 제1 코드워드의 한 비트를 선택하고 선택된 비트를 LSB로 결정할 수 있다. 메모리 장치(100)는 제2 코드워드의 한 비트를 선택하고 선택된 비트를 MSB로 결정할 수 있다. 메모리 장치(100)는 MSB 및 LSB의 조합에 기초하여 멀티 비트 셀의 목표 문턱 전압을 결정할 수 있다. 메모리 장치(100)는 목표 문턱 전압에 기초하여 멀티 비트 셀의 문턱 전압을 변경할 수 있다.
메모리 장치(100)의 다른 실시예에 따라서는 제1 코드워드의 한 비트를 선택하고 선택된 비트를 MSB로 결정하고, 제2 코드워드의 한 비트를 선택하고 선택된 비트를 LSB로 결정할 수 있다.
메모리 장치(100)의 다른 실시예에 따라서는 멀티 비트 셀은 m비트의 데이터가 저장할 수 있다. 이 때 메모리 장치(100)는 하나의 페이지에 m개의 데이터 페이지들을 프로그램할 수 있다. 메모리 장치(100)는 m개의 데이터 페이지들 중 두 개의 데이터 페이지들을 선택하고, 선택된 데이터 페이지들 각각을 제1 데이터 페이지 및 제2 데이터 페이지로 결정할 수 있다.
멀티 비트 셀이 전하 포획 사이트(charge trap site)를 포함하는 경우 메모리 장치(100)는 전하 포획 사이트에 전하를 충전하거나 전하 포획 사이트로부터 전하를 방전하여 멀티 비트 셀의 문턱 전압을 변경할 수 있다.
도 3은 lateral charge spreading 이 발생하는 예를 도시하는 도면이다.
도 3을 참조하면 4개의 멀티 비트 셀들 (310 내지 340)은 워드 라인(word line) WL에 연결된다.
메모리 장치(100)는 WL을 경유하여 4개의 멀티 비트 셀들 (310 내지 340)의 게이트 단자(gate terminal)에 프로그램 전압을 인가할 수 있다.
멀티 비트 셀 (310)에 프로그램될 데이터는 "11"로 표시된다. 멀티 비트 셀 (320)에 프로그램될 데이터는 "01"로 표시된다. 멀티 비트 셀 (330)에 프로그램될 데이터는 "00"로 표시된다. 멀티 비트 셀 (340)에 프로그램될 데이터는 "10"로 표시된다.
데이터 "11"은 프로그램 상태 P0에 대응할 수 있다. 데이터 "01"은 프로그램 상태 P3에 대응할 수 있다. 멀티 비트 셀 (310) 및 멀티 비트 셀 (320)의 전하 포획 사이트(charge trap site) 간에는 강한 전기장(electric field)이 형성되어 lateral charge spreading 이 강하게 발생할 수 있다.
메모리 장치(100)는 도 3의 데이터를 인코드하여 인접한 멀티 비트 셀들 간의 lateral charge spreading 을 줄일 수 있다.
메모리 장치(100)의 인코딩 과정의 예가 도 4 내지 도 9를 참조하여 설명된다.
도 4는 도 1의 메모리 장치(100)에 의하여 인코드되기 전의 데이터의 일 예를 도시하는 도면이다.
설명의 편의 상 MSB에 대응하는 데이터 페이지를 제2 데이터 페이지라 하면 제2 데이터 페이지는 "110100110"의 값을 가질 수 있다. LSB에 대응하는 데이터 페이지를 제1 데이터 페이지라 하면 제1 데이터 페이지는 "111110001"의 값을 가질 수 있다.
가상의 셀(cell) 1에 저장될 데이터는 MSB "1", LSB "1"이고 셀 1에 형성될 프로그램 상태는 P0이다. 마찬가지로 가상의 셀 2에 형성될 프로그램 상태는 P0이고 셀 3에 형성될 프로그램 상태는 P3이다.
셀 4 내지 셀 9에 형성될 프로그램 상태는 각각 P0, P3, P2, P1, P1, P2이다.
이 때 인접한 셀 2 및 셀 3 에 프로그램 상태 P0, P3가 형성되므로 lateral charge spreading 이 발생할 것이 쉽게 예측될 수 있다. 도 4를 참조하면 인접한 셀들에 P0 및 P3의 상태가 형성되는 경우가 3번이다.
메모리 장치(100)는 제1 데이터 페이지를 인코드하여 인접한 셀에 P0 및 P3가 형성될 가능성을 줄일 수 있다. 따라서 도 1의 메모리 장치(100)는 인접한 셀의 lateral charge spreading 이 발생할 가능성을 줄일 수 있다.
도 5는 도 1의 메모리 장치(100)에 의해 인코딩 과정에서 이용되는 RLL code의 일 예를 도시하는 도면이다. 도 5를 참조하면 (1, ∞) RLL code의 일 예가 도시된다.
(1, ∞) RLL code는 두 개의 1 사이의 0의 개수는 1개 이상으로 제한되고 연속되는 0의 개수는 제한되지 않는 코드이다. 즉, (1, ∞) RLL code에서는 1이 연속되는 경우는 존재하지 않는다.
메모리 장치(100)는 제1 데이터 페이지의 비트 스트림을 3비트 단위로 분할할 수 있다. 메모리 장치(100)는 입력 비트 스트림 "000"을 인코드하여 코드워드 "00000"를 생성할 수 있다.
메모리 장치(100)는 입력 비트 스트림 "001", "010", "011", "100", "101", "110", "111"을 각각 인코드하여 코드워드 "00001", "00010", "00100", "00101", "01000", "01001", "01010"를 각각 생성할 수 있다.
이 때 5비트의 코드워드가 3비트의 유효 정보(effective information)를 포함하므로 코드율(code rate)은 0.6 이다.
도 6은 도 4의 데이터가 도 1의 메모리 장치(100)에 의해 인코드된 코드워드의 일 예를 도시하는 도면이다.
메모리 장치(100)는 도 4의 MSB의 비트 스트림 중 "110"을 인코드하여 코드워드 "01001"를 생성할 수 있다. 메모리 장치(100)는 도 4의 LSB의 비트 스트림 중 "111"을 인코드하여 코드워드 "01010"을 생성할 수 있다.
메모리 장치(100)는 생성된 코드워드에 기초하여 멀티 비트 셀들 cell 1 내지 cell 5에 프로그램 상태를 형성할 수 있다.
cell 1에는 MSB "0", LSB "0"이 저장되므로 프로그램 상태 P2가 형성될 수 있다. cell 2에는 MSB "1", LSB "1"이 저장되므로 프로그램 상태 P0가 형성될 수 있다.
마찬가지로 cell 3 내지 cell 5 각각에는 프로그램 상태 P2, P3, P1이 각각 형성될 수 있다. 도 4와 비교하면 도 6에서는 인접한 셀들에 P0 및 P3를 형성되는 경우가 모두 제거되었음을 알 수 있다.
메모리 장치(100)는 인접한 셀들 간에 강한 전기장이 형성될 가능성을 줄일 수 있다. 따라서 메모리 장치(100)는 인접한 셀들 간에 lateral charge spreading 이 발생할 가능성을 줄일 수 있다. 메모리 장치(100)는 멀티 비트 셀의 문턱 전압이 시간의 경과에 따라 변화할 가능성을 줄일 수 있다. 메모리 장치(100)는 복수의 멀티 비트 셀들의 문턱 전압들의 산포의 폭을 줄일 수 있다.
메모리 장치(100)가 코드워드에 기초하여 도 2의 실시예와 같이 멀티 비트 셀의 문턱 전압을 형성하는 경우에 메모리 장치(100)가 인코딩 과정에 (1, ∞) RLL code를 이용함으로써 인접하는 셀들에 P0 및 P3가 형성될 가능성은 0이 될 수 있다.
도 4 내지 도 6의 실시예에서는 lateral charge spreading 을 줄일 수 있는 방법이 도시되었으나 코드율(code rate)이 0.6이므로 저장 공간에 대한 오버헤드가 크다. 도 7 내지 도 9의 실시예에서는 lateral charge spreading 을 줄일 수 있으면서도 코드율을 상대적으로 높일 수 있는 실시예가 도시된다.
도 7은 도 1의 메모리 장치(100)에 의해 인코딩 과정에 이용되는 RLL code의 일 예를 도시하는 도면이다. 도 7을 참조하면 (0, 2) RLL code의 일 예가 도시된다.
(0, 2) RLL code는 두 개의 1 사이의 0의 개수를 최대 2개로 제한하고 연속되는 1의 개수는 제한되지 않는 RLL code이다.
메모리 장치(100)는 입력 데이터 페이지를 분할하여 4비트의 입력 비트 스트림을 생성할 수 있다.
메모리 장치(100)는 입력 비트열 "0000"을 인코드하여 코드워드 "11001"을 생성할 수 있다. 메모리 장치(100)는 입력 비트열 "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" 각각을 인코드하여 코드워드 "11011", "10010", "10011", "11101", "10101", "10110", "10111", "11010", "01001", "01010", "01011", "11110", "01101", "01110", "01111" 를 각각 생성할 수 있다.
메모리 장치(100)는 연속되는 0의 개수를 최대 2개로 제한함으로써 PLL의 레퍼런스 정보를 생성할 수 있다. 메모리 장치(100)는 PLL의 고속 동작 시 오류를 줄일 수 있다.
도 8은 도 4의 데이터가 도 1의 메모리 장치(100)에 의해 인코드된 코드워드의 일 예를 도시하는 도면이다.
메모리 장치(100)는 도 4의 MSB의 처음 4비트를 입력 비트 스트림 "1101"으로 생성할 수 있다. 메모리 장치(100)는 도 4의 MSB의 두번째 4비트를 입력 비트 스트림 "0011"으로 생성할 수 있다.
메모리 장치(100)는 도 4의 LSB의 처음 4비트를 입력 비트 스트림 "1111"으로 생성할 수 있다. 메모리 장치(100)는 도 4의 LSB의 두번째 4비트를 입력 비트 스트림 "1000"으로 생성할 수 있다.
메모리 장치(100)는 입력 비트 스트림 "1101"을 인코드하여 코드워드 "01101"을 생성하고 입력 비트 스트림 "0011"을 인코드하여 코드워드 "10011"을 생성하고 입력 비트 스트림 "1111"을 인코드하여 코드워드 "01111"을 생성하고 입력 비트 스트림 "1000"을 인코드하여 코드워드 "11010"을 생성할 수 있다.
메모리 장치(100)는 MSB에 대응하는 코드워드 "01101", "10011"를 생성하고 LSB에 대응하는 코드워드 "01111", "11010"를 생성할 수 있다.
도 9는 도 8의 코드워드가 도 1의 메모리 장치(100)에 의해 반전(flip)된 일 예를 도시하는 도면이다.
메모리 장치(100)는 MSB에 대응하는 반전된 코드워드 "10010", "01100"를 생성하고 LSB에 대응하는 반전된 코드워드 "10000", "00101" 를 생성할 수 있다.
메모리 장치(100)는 도 2의 실시예에 기초하여 상기 반전된 코드워드들을 복수의 멀티 비트 셀들에 프로그램할 수 있다.
셀 1에는 MSB "1" 및 LSB "1"이 저장되므로 프로그램 상태 P0가 형성될 수 있다. 마찬가지로 셀 2 내지 10에는 프로그램 상태 P2, P2, P1, P2, P2, P1, P0, P2, P3가 형성될 수 있다. 도 9의 실시예에서는 인접한 셀들에 P0 및 P3가 형성되지 않았음을 알 수 있다.
데이터가 0 또는 1의 값을 가질 확률(probability)이 각각 1/2 ( = 0.5) 라고 가정한다. RLL code를 이용하지 않는 경우 인접한 메모리 셀들에 P0 및 P3가 형성될 확률(probability)은 1/4 ( = 0.25 ) 이다.
도 7 내지 도 9의 실시예에서는 인접한 메모리 셀들에 P0 및 P3가 형성될 확률(probability)은 17/128 ( = 0.1328125) 이다.
도 4 내지 도 6의 실시예에서는 인접한 메모리 셀들에 P0 및 P3가 형성될 확률(probability)은 0이다.
메모리 장치(100)는 lateral charge spreading 이 발생할 확률 및 코드율(code rate)에 기초하여 (0, 2) RLL code 및 flipping을 적용할 지 (1, ∞) RLL code를 적용할 지 여부를 결정할 수도 있다.
도 7 내지 도 9의 실시예에서는 코드율은 0.8이고 도 4 내지 도 6의 실시예에서는 코드율은 0.6이다.
본 발명의 다른 실시예에 따라서는 메모리 장치(100)는 NRZ(Non Return to Zero), NRZ-L, NRZ-M, NRZ-S, RZ(Return to Zero), unipolar RZ, bipolar RZ, RZ-AMI, Bi-Φ-L (Manchester coding), Bi-Φ-M, Bi-Φ-S, delay modulation 중 적어도 하나의 modulation coding에 기초한 인코딩 기법을 이용할 수 있다.
도 10은 본 발명의 일 실시예에 따른 메모리 데이터 프로그래밍 방법을 도시하는 동작 흐름도이다.
도 10을 참조하면 프로그래밍 방법은 제1 데이터 페이지를 인코드하여 하나 이상의 제1 코드워드를 생성한다(S1010). 이 때 하나 이상의 제1 코드워드는 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가질 수 있다.
하나 이상의 제1 코드워드는 연속적인 1의 개수의 제1 최소값 또는 연속적인 0의 개수의 제2 최소값을 가질 수 있다.
프로그래밍 방법은 제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성한다(S1020).
프로그래밍 방법은 제2 데이터 페이지를 분할하여 복수의 제2 코드워드를 생성할 수도 있다.
프로그래밍 방법은 제2 데이터 페이지를 인코드하여 연속적인 1의 개수의 제3 최대값 또는 연속적인 0의 개수의 제4 최대값을 가지는 하나 이상의 제2 코드워드를 생성할 수도 있다.
프로그래밍 방법은 복수의 멀티 비트 셀들에 하나 이상의 제1 코드워드 및 하나 이상의 제2 코드워드를 프로그램한다(S1030).
프로그래밍 방법은 하나 이상의 제1 코드워드를 반전(flip)하여 하나 이상의 제3 코드워드를 생성할 수 있다. 이 때 프로그래밍 방법은 상기 복수의 멀티 비트 셀들에 제1 데이터 페이지 대신 제3 데이터 페이지를 프로그램할 수 있다.
본 발명의 실시예들에 따른 메모리 데이터 프로그래밍 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명의 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명의 실시예들은 메모리 셀의 문턱 전압을 변화시켜 데이터를 저장하는 메모리 장치에 적용될 수 있다. 이러한 종류의 메모리 장치의 예로는 플래시 메모리(flash memory), EEPROM(Electrically Erasable Programmable Read Only Memory), PRAM(Phase Shift Random Access Memory), MRAM(Magnetic Random Access Memory) 등이 포함될 수 있다.
본 발명의 실시예들에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 구현될 수 있다. 예를 들면, 본 발명의 실시예들에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 구현될 수 있다.
플래시 메모리 장치와 메모리 컨트롤러는 메모리 카드를 구성할 수 있다. 이러한 경우, 메모리 컨트롤러는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 비휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용될 수 있다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다.
본 발명의 실시예들에 따른 컴퓨팅 시스템은 버스에 전기적으로 연결된 마이크로프로세서, 사용자 인터페이스, 베이스밴드 칩셋(baseband chipset)과 같은 모뎀, 메모리 컨트롤러, 그리고 플래시 메모리 장치를 포함한다. 플래시 메모리 장치에는 마이크로프로세서에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 컨트롤러를 통해 저장될 것이다. 본 발명의 실시예들에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 것이다.
본 발명의 실시예들에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 컨트롤러와 플래시 메모리 장치는, 예를 들면, 데이터를 저장하는 데 비휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치(100)를 도시하는 도면이다.
도 2는 도 1의 메모리 장치(100)에 의해 프로그램된 복수의 멀티 비트 셀들의 문턱 전압 (threshold voltage)들의 산포(distribution)의 일 예를 도시하는 도면이다.
도 3은 lateral charge spreading이 발생하는 예를 도시하는 도면이다.
도 4는 도 1의 메모리 장치(100)에 의하여 인코드되기 전의 데이터의 일 예를 도시하는 도면이다.
도 5는 도 1의 메모리 장치(100)에 의해 인코딩 과정에서 이용되는 RLL code의 일 예를 도시하는 도면이다.
도 6은 도 4의 데이터가 도 1의 메모리 장치(100)에 의해 인코드된 코드워드의 일 예를 도시하는 도면이다.
도 7은 도 1의 메모리 장치(100)에 의해 인코딩 과정에 이용되는 RLL code의 일 예를 도시하는 도면이다.
도 8은 도 4의 데이터가 도 1의 메모리 장치(100)에 의해 인코드된 코드워드의 일 예를 도시하는 도면이다.
도 9는 도 8의 코드워드가 도 1의 메모리 장치(100)에 의해 반전(flip)된 일 예를 도시하는 도면이다.
도 10은 본 발명의 일 실시예에 따른 메모리 데이터 프로그래밍 방법을 도시하는 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 메모리 셀 어레이
120: 프로그래밍부
130: 인코더

Claims (18)

  1. 복수의 멀티 비트 셀들을 포함하는 메모리 셀 어레이;
    제1 데이터 페이지를 인코드하여 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드를 생성하고, 제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성하는 인코더; 및
    상기 복수의 멀티 비트 셀들에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 프로그래밍부
    를 포함하는 메모리 장치.
  2. 제1항에 있어서,
    상기 인코더는
    상기 제1 데이터 페이지를 인코드하여 연속적인 0의 개수의 제1 최소값과 연속적인 0의 개수의 제2 최대값을 가지는 상기 하나 이상의 제1 코드워드를 생성하는 메모리 장치.
  3. 제1항에 있어서,
    상기 인코더는
    상기 제2 데이터 페이지를 분할하여 복수의 제2 코드워드를 생성하고, 상기 하나 이상의 제1 코드워드 및 상기 복수의 제2 코드워드에 관련된 부호율을 높이는 메모리 장치.
  4. 제1항에 있어서,
    상기 인코더는
    상기 제2 데이터 페이지를 인코드하여 연속적인 1의 개수의 제3 최대값 또는 연속적인 0의 개수의 제4 최대값을 가지는 상기 하나 이상의 제2 코드워드를 생성하는 메모리 장치.
  5. 제1항에 있어서,
    상기 인코더는
    상기 하나 이상의 제1 코드워드를 반전하여 하나 이상의 제3 코드워드를 생성하고,
    상기 프로그래밍부는
    상기 복수의 멀티 비트 셀들에 상기 하나 이상의 제3 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 메모리 장치.
  6. 제1항에 있어서,
    상기 인코더는
    (d, k) 런 렝쓰 리미티드 코드에 대응하는 인코딩 기법에 의하여 상기 제1 데이터 페이지를 인코드 - d 는 두 개의 1 사이의 연속적인 0의 개수의 최소값이 고, k는 두 개의 1 사이의 연속적인 0의 개수의 최대값 - 하는 메모리 장치.
  7. 제1항에 있어서,
    상기 복수의 멀티 비트 셀들 각각은 m비트(m은 2 이상의 정수)의 데이터를 저장하고,
    상기 인코더는
    상기 복수의 멀티 비트 셀들 각각에 저장된 m비트의 데이터를 하나씩의 심볼로 생성하고, 상기 심볼에 2m-ary 런 렝쓰 리미티드 코드를 적용하여 상기 하나 이상의 제1 코드워드를 생성하는 메모리 장치.
  8. 제1항에 있어서,
    상기 복수의 멀티 비트 셀들 각각은
    전하 포획 사이트(charge trap site)를 포함하고,
    상기 프로그래밍부는
    상기 전하 포획 사이트에 전하를 충전 또는 방전하여 상기 복수의 멀티 비트 셀들 각각의 문턱 전압을 변경하는 메모리 장치.
  9. 제1항에 있어서,
    상기 프로그래밍부는
    상기 제1 코드워드의 한 비트 및 상기 제2 코드워드의 한 비트의 조합에 기초하여 상기 복수의 멀티 비트 셀들 중 하나의 문턱 전압을 결정하는 메모리 장치.
  10. 제1 데이터 페이지를 인코드하여 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드를 생성하는 단계;
    제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성하는 단계; 및
    복수의 멀티 비트 셀들에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 단계
    를 포함하는 메모리 데이터 프로그래밍 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020080071647A 2008-07-23 2008-07-23 메모리 장치 및 메모리 데이터 프로그래밍 방법 KR101436506B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080071647A KR101436506B1 (ko) 2008-07-23 2008-07-23 메모리 장치 및 메모리 데이터 프로그래밍 방법
US12/453,964 US8004891B2 (en) 2008-07-23 2009-05-28 Memory device and method of programming thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080071647A KR101436506B1 (ko) 2008-07-23 2008-07-23 메모리 장치 및 메모리 데이터 프로그래밍 방법

Publications (2)

Publication Number Publication Date
KR20100010664A KR20100010664A (ko) 2010-02-02
KR101436506B1 true KR101436506B1 (ko) 2014-09-02

Family

ID=41568533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080071647A KR101436506B1 (ko) 2008-07-23 2008-07-23 메모리 장치 및 메모리 데이터 프로그래밍 방법

Country Status (2)

Country Link
US (1) US8004891B2 (ko)
KR (1) KR101436506B1 (ko)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
KR101466695B1 (ko) * 2008-04-30 2014-12-01 삼성전자주식회사 멀티 비트 레벨 데이터의 부호화 및 복호화 방법
KR101602316B1 (ko) * 2009-02-09 2016-03-22 삼성전자주식회사 반도체 메모리 장치 및 그것의 데이터 처리 방법
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8463985B2 (en) * 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
KR101678407B1 (ko) 2010-05-10 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것의 프로그램 방법
US8537623B2 (en) * 2011-07-07 2013-09-17 Micron Technology, Inc. Devices and methods of programming memory cells
US8874994B2 (en) 2011-07-22 2014-10-28 Sandisk Technologies Inc. Systems and methods of storing data
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) * 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
KR102068519B1 (ko) * 2013-07-01 2020-01-21 삼성전자주식회사 저장 장치, 그것의 쓰기 방법 및 읽기 방법
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
KR102204394B1 (ko) 2013-10-14 2021-01-19 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
KR102098247B1 (ko) 2013-11-25 2020-04-08 삼성전자 주식회사 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
KR102242565B1 (ko) * 2017-06-08 2021-04-20 삼성전자주식회사 소거 상태 정보를 기초로 메모리 장치를 제어하는 메모리 컨트롤러 및 이의 동작 방법
KR102669450B1 (ko) 2018-12-11 2024-05-28 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11716078B2 (en) * 2021-12-15 2023-08-01 Texas Instruments Incorporated Transistor switching based on voltage sensing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09102747A (ja) * 1995-10-06 1997-04-15 Pioneer Electron Corp 情報データのrll符号化方法及び符号化装置
US5987066A (en) 1995-12-05 1999-11-16 Kabushiki Kaisha Toshiba Digital data transmitting method
JP2005018439A (ja) 2003-06-26 2005-01-20 Hitachi Ltd メモリモジュールおよびバスシステム
US7098818B1 (en) 2005-03-31 2006-08-29 Fujitsu Limited Encoder and decoder using run-length-limited code

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW535161B (en) * 1999-12-03 2003-06-01 Nec Electronics Corp Semiconductor memory device and its testing method
US7224296B2 (en) 2002-04-18 2007-05-29 Koninklijke Philips Electronics N.V. Error-correcting binary run-length-limited product-code
DE60334000D1 (de) * 2002-06-27 2010-10-14 Ibm Überschreiben von daten in datenspeichervorrichtungen basierend auf einer messsonde
US7436331B1 (en) * 2006-04-12 2008-10-14 Marvell International Ltd. Rate-28/30 DC-free RLL code
KR101602316B1 (ko) * 2009-02-09 2016-03-22 삼성전자주식회사 반도체 메모리 장치 및 그것의 데이터 처리 방법
KR101572833B1 (ko) * 2009-06-24 2015-12-01 삼성전자주식회사 플래시 메모리 프리프로세싱 시스템 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09102747A (ja) * 1995-10-06 1997-04-15 Pioneer Electron Corp 情報データのrll符号化方法及び符号化装置
US5987066A (en) 1995-12-05 1999-11-16 Kabushiki Kaisha Toshiba Digital data transmitting method
JP2005018439A (ja) 2003-06-26 2005-01-20 Hitachi Ltd メモリモジュールおよびバスシステム
US7098818B1 (en) 2005-03-31 2006-08-29 Fujitsu Limited Encoder and decoder using run-length-limited code

Also Published As

Publication number Publication date
US8004891B2 (en) 2011-08-23
US20100020620A1 (en) 2010-01-28
KR20100010664A (ko) 2010-02-02

Similar Documents

Publication Publication Date Title
KR101436506B1 (ko) 메모리 장치 및 메모리 데이터 프로그래밍 방법
KR101528167B1 (ko) 메모리 장치 및 메모리 데이터 판정 방법
KR101412974B1 (ko) 메모리 장치 및 메모리 프로그래밍 방법
JP5502064B2 (ja) メモリ装置およびデータ判定方法
KR101423052B1 (ko) 메모리 장치 및 읽기 레벨 제어 방법
KR101378349B1 (ko) 메모리 장치 및 메모리 데이터 읽기 방법
KR101414494B1 (ko) 메모리 장치 및 메모리 데이터 읽기 방법
KR101518199B1 (ko) 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
KR101412690B1 (ko) 메모리 장치 및 메모리 프로그래밍 방법
US7796429B2 (en) Memory controller controlling semiconductor storage device and semiconductor device
US8473668B2 (en) Memory device and wear leveling method
KR101518033B1 (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
JP5773367B2 (ja) メモリ装置およびメモリプログラミング方法
KR101403314B1 (ko) 메모리 장치 및 데이터 비트 저장 방법
KR101386489B1 (ko) 메모리 장치 및 멀티 비트 프로그래밍 방법
JP2011165301A (ja) フラッシュメモリ装置及びその読み出し方法
KR101466697B1 (ko) 메모리 장치 및 메모리 데이터 프로그래밍 방법
KR20090117172A (ko) 메모리 장치 및 메모리 데이터 읽기 방법
US20100027351A1 (en) Memory device and memory programming method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 6