KR101436506B1 - 메모리 장치 및 메모리 데이터 프로그래밍 방법 - Google Patents
메모리 장치 및 메모리 데이터 프로그래밍 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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
-
- 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
- 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
-
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data 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
본 발명의 실시예들은 메모리 장치에 데이터를 프로그램하는 장치 및 방법에 관한 것이다. 본 발명의 실시예들은 메모리 셀의 문턱 전압 (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 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드를 생성하고, 제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성하는 인코더; 및상기 복수의 멀티 비트 셀들에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 프로그래밍부를 포함하는 메모리 장치.
- 제1항에 있어서,상기 인코더는상기 제1 데이터 페이지를 인코드하여 연속적인 0의 개수의 제1 최소값과 연속적인 0의 개수의 제2 최대값을 가지는 상기 하나 이상의 제1 코드워드를 생성하는 메모리 장치.
- 제1항에 있어서,상기 인코더는상기 제2 데이터 페이지를 분할하여 복수의 제2 코드워드를 생성하고, 상기 하나 이상의 제1 코드워드 및 상기 복수의 제2 코드워드에 관련된 부호율을 높이는 메모리 장치.
- 제1항에 있어서,상기 인코더는상기 제2 데이터 페이지를 인코드하여 연속적인 1의 개수의 제3 최대값 또는 연속적인 0의 개수의 제4 최대값을 가지는 상기 하나 이상의 제2 코드워드를 생성하는 메모리 장치.
- 제1항에 있어서,상기 인코더는상기 하나 이상의 제1 코드워드를 반전하여 하나 이상의 제3 코드워드를 생성하고,상기 프로그래밍부는상기 복수의 멀티 비트 셀들에 상기 하나 이상의 제3 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 메모리 장치.
- 제1항에 있어서,상기 인코더는(d, k) 런 렝쓰 리미티드 코드에 대응하는 인코딩 기법에 의하여 상기 제1 데이터 페이지를 인코드 - d 는 두 개의 1 사이의 연속적인 0의 개수의 최소값이 고, k는 두 개의 1 사이의 연속적인 0의 개수의 최대값 - 하는 메모리 장치.
- 제1항에 있어서,상기 복수의 멀티 비트 셀들 각각은 m비트(m은 2 이상의 정수)의 데이터를 저장하고,상기 인코더는상기 복수의 멀티 비트 셀들 각각에 저장된 m비트의 데이터를 하나씩의 심볼로 생성하고, 상기 심볼에 2m-ary 런 렝쓰 리미티드 코드를 적용하여 상기 하나 이상의 제1 코드워드를 생성하는 메모리 장치.
- 제1항에 있어서,상기 복수의 멀티 비트 셀들 각각은전하 포획 사이트(charge trap site)를 포함하고,상기 프로그래밍부는상기 전하 포획 사이트에 전하를 충전 또는 방전하여 상기 복수의 멀티 비트 셀들 각각의 문턱 전압을 변경하는 메모리 장치.
- 제1항에 있어서,상기 프로그래밍부는상기 제1 코드워드의 한 비트 및 상기 제2 코드워드의 한 비트의 조합에 기초하여 상기 복수의 멀티 비트 셀들 중 하나의 문턱 전압을 결정하는 메모리 장치.
- 제1 데이터 페이지를 인코드하여 연속적인 1의 개수의 제1 최대값 또는 연속적인 0의 개수의 제2 최대값을 가지는 하나 이상의 제1 코드워드를 생성하는 단계;제2 데이터 페이지를 인코드하여 하나 이상의 제2 코드워드를 생성하는 단계; 및복수의 멀티 비트 셀들에 상기 하나 이상의 제1 코드워드 및 상기 하나 이상의 제2 코드워드를 프로그램하는 단계를 포함하는 메모리 데이터 프로그래밍 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
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)
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)
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)
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 | 삼성전자주식회사 | 플래시 메모리 프리프로세싱 시스템 및 그 방법 |
-
2008
- 2008-07-23 KR KR1020080071647A patent/KR101436506B1/ko active IP Right Grant
-
2009
- 2009-05-28 US US12/453,964 patent/US8004891B2/en active Active
Patent Citations (4)
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 |