KR101386489B1 - 메모리 장치 및 멀티 비트 프로그래밍 방법 - Google Patents

메모리 장치 및 멀티 비트 프로그래밍 방법 Download PDF

Info

Publication number
KR101386489B1
KR101386489B1 KR1020080004147A KR20080004147A KR101386489B1 KR 101386489 B1 KR101386489 B1 KR 101386489B1 KR 1020080004147 A KR1020080004147 A KR 1020080004147A KR 20080004147 A KR20080004147 A KR 20080004147A KR 101386489 B1 KR101386489 B1 KR 101386489B1
Authority
KR
South Korea
Prior art keywords
data
page
bit cell
groups
bit
Prior art date
Application number
KR1020080004147A
Other languages
English (en)
Other versions
KR20090078285A (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 KR1020080004147A priority Critical patent/KR101386489B1/ko
Priority to US12/155,647 priority patent/US8230157B2/en
Publication of KR20090078285A publication Critical patent/KR20090078285A/ko
Application granted granted Critical
Publication of KR101386489B1 publication Critical patent/KR101386489B1/ko

Links

Images

Classifications

    • 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/06Auxiliary circuits, e.g. for writing into 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/5671Digital 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 trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Abstract

메모리 장치 및 멀티 비트 프로그래밍 방법이 제공된다. 본 발명의 메모리 장치는 복수의 멀티 비트 셀 어레이들, 상기 복수의 멀티 비트 셀 어레이들 각각에 프로그램되는 데이터를 각각 저장하는 복수의 페이지 버퍼들, 데이터를 복수의 그룹으로 분할하는 데이터 분할부, 및 상기 그룹 각각을 로테이션하여 상기 복수의 페이지 버퍼들 각각으로 전송하는 선택부를 포함한다. 이 때, 복수의 페이지 버퍼들 각각은 상기 전송된 그룹 각각을 상기 복수의 멀티 비트 셀 어레이들 각각에 서로 다른 순서의 페이지 프로그래밍 동작으로 프로그램하며, 이를 통해 evenly reliable한 데이터 페이지들을 생성할 수 있다.
멀티 비트 셀, 멀티 레벨 셀, 멀티 비트 프로그래밍

Description

메모리 장치 및 멀티 비트 프로그래밍 방법 {MEMORY DEVICE AND METHOD OF MULTI-BIT PROGRAMMING}
본 발명은 메모리 장치의 메모리 셀에 데이터를 프로그래밍하는 방법에 관한 것으로, 보다 상세하게는 멀티 레벨 셀(Multi-level Cell, MLC) 메모리 장치의 멀티 레벨 셀(또는 멀티 비트 셀(Multi-Bit Cell, MBC))에 멀티 비트 데이터를 프로그래밍하는 장치 및 방법에 관한 것이다.
싱글 레벨 셀(SLC: single-level cell) 메모리는 하나의 메모리 셀에 1비트의 데이터를 저장하는 메모리이다. 싱글 레벨 셀 메모리는 싱글 비트 셀(SBC: single-bit cell) 메모리로도 불린다. 싱글 레벨 셀 메모리에서는 1비트의 데이터는 메모리 셀에 프로그램된 문턱 전압(threshold voltage)에 의하여 구분되는 2개의 산포(distribution)에 포함되는 전압으로 저장되고, 판독된다. 싱글 레벨 셀 메모리들 간의 미세한 전기적 특성의 차이로 인해 프로그램된 문턱 전압은 일정한 범위의 산포를 가지게 된다. 예를 들어, 메모리 셀로부터 판독된 전압이 0.5-1.5 볼트인 경우에는 상기 메모리 셀에 저장된 데이터는 논리 "1"이고, 메모리 셀로부터 판독된 전압이 2.5-3.5 볼트인 경우에는 상기 메모리 셀에 저장된 데이터는 논 리 "0"으로 해석된다. 메모리 셀에 저장된 데이터는 판독 동작 시 셀 전류/전압의 차이에 의하여 구분된다.
한편 메모리의 고집적화 요구에 응답하여 하나의 메모리 셀에 2비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC: multi-level cell) 메모리가 제안되었다. 멀티 레벨 셀 메모리는 멀티 비트 셀(MBC: multi-bit cell) 메모리로도 불린다. 그러나, 하나의 메모리 셀에 저장하는 비트의 수가 증가할수록 신뢰성은 떨어지고, 판독 실패율(read failure rate)은 증가하게 된다. 하나의 메모리 셀에 m개의 비트를 저장하려면, 2m개의 산포(distribution)를 형성하여야 한다. 그러나, 메모리의 전압 윈도우(voltage window)는 제한되어 있기 때문에, m이 증가함에 따라 인접한 비트들 간의 문턱 전압(threshold)의 차이는 줄어들게 되고, 이에 따라 판독 실패율이 증가한다. 이러한 이유로 종래기술에 따르면, 멀티 레벨 셀(MLC: multi-level cell) 메모리를 이용한 저장 밀도의 향상이 용이하지 않았다.
멀티 레벨 셀 메모리의 이용이 최근의 추세로 확산되고 있는 가운데, 데이터를 저장하고 읽는 과정에서 발생하는 에러를 검출하고, 검출된 에러를 정정하는 에러 정정 코드 또는 에러 제어 코드(error correction codes or error control codes, ECC)의 이용이 활발해지고 있다.
본 명세서에서는, ECC를 하드웨어로 구현할 때의 복잡도를 줄이기 위한 새로운 멀티 레벨(멀티 비트) 프로그래밍 장치 및 방법이 제안된다.
본 발명은 멀티 레벨 셀 메모리에 새로운 멀티 레벨(멀티 비트) 프로그래밍 기법을 적용함으로써, 멀티 레벨 셀 메모리에 있어서, 에러 제어 코드(error control codes, ECC)를 하드웨어로 구현할 때의 복잡도를 줄이는 장치 및 방법을 제공한다.
또한, 본 발명은 페이지 당 비트 에러율(bit error rate, BER)의 최대값을 줄이는 장치 및 방법을 제공한다.
또한, 본 발명은 페이지 당 비트 에러율을 페이지 각각에 대해 평준화(equalize)하는 장치 및 방법을 제공한다.
또한, 본 발명은 페이지 단위의 오류의 분포(distribution)를 조정하여, 데이터가 오류 정정 성능(error correcting capability) 이내의 오류 비율(error rate)을 가지도록 한다. 이로 인해, 본 발명은 페이지 단위의 오류 정정 가능성(error correctability)을 높이는 장치 및 방법을 제공한다.
본 발명의 일 측면에 따른 메모리 장치는 복수의 멀티 비트 셀 어레이들, 상기 복수의 멀티 비트 셀 어레이들 각각에 프로그램되는 데이터를 각각 저장하는 복수의 페이지 버퍼들, 데이터를 복수의 그룹으로 분할하는 데이터 분할부, 및 상기 그룹 각각을 로테이션하여 상기 복수의 페이지 버퍼들 각각으로 전송하는 선택부를 포함한다. 이 때, 복수의 페이지 버퍼들 각각은 상기 전송된 그룹 각각을 상기 복수의 멀티 비트 셀 어레이들 각각에 서로 다른 순서의 페이지 프로그래밍 동작으로 프로그램한다.
본 발명의 다른 일 측면에 따른 메모리 장치는 복수의 메모리 유닛들, 데이터를 복수의 그룹으로 분할하는 데이터 분할부, 상기 그룹을 오류 제어 코드 인코딩하는 인코더, 및 상기 오류 제어 코드 인코딩된 그룹 각각을 상기 오류 제어 코드 인코딩되는 순서대로 로테이션하여 상기 복수의 메모리 유닛들 각각으로 전송하는 선택부를 포함한다.
본 발명의 또 다른 일 측면에 따른 메모리 장치는 제1 멀티 비트 셀 어레이, 제2 멀티 비트 셀 어레이, 상기 제1 멀티 비트 셀 어레이에 저장되는 제1 데이터를 저장하는 제1 페이지 버퍼, 및 상기 제2 멀티 비트 셀 어레이에 저장되는 제2 데이터를 저장하는 제2 페이지 버퍼를 포함한다. 상기 제1 페이지 버퍼는 상기 제1 멀티 비트 셀 어레이에 상기 제1 데이터의 제1 상위 데이터 페이지를 먼저 저장한 후 상기 제1 데이터의 제1 하위 데이터 페이지를 저장한다. 상기 제2 페이지 버퍼는 상기 제2 멀티 비트 셀 어레이에 상기 제2 데이터의 제2 하위 데이터 페이지를 먼저 저장한 후 상기 제2 데이터의 제2 상위 데이터 페이지를 저장한다.
본 발명의 또 다른 일 측면에 따른, 컨트롤러, 복수의 페이지 버퍼들, 상기 복수의 페이지 버퍼들 각각에 대응하는 복수의 멀티 비트 셀 어레이들을 포함하는 메모리 장치의 멀티 비트 프로그래밍 방법은 상기 컨트롤러가 데이터를 복수의 그룹으로 분할하는 단계, 상기 컨트롤러가 상기 그룹 각각을 로테이션하여 복수의 페이지 버퍼들 각각으로 전송하는 단계, 상기 복수의 페이지 버퍼들 각각이 전송된 그룹 각각을 저장하는 단계, 및 상기 복수의 페이지 버퍼들 각각이 상기 저장된 그룹 각각을 서로 다른 순서의 페이지 프로그래밍 동작으로 상기 멀티 비트 셀 어레 이들 각각에 프로그램하는 단계를 포함한다.
이하에서, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
일반적으로 정보를 전송하는 경로를 채널(channel)이라 부를 수 있다. 정보가 유선 통신을 이용하여 전송되면, 채널은 정보가 전송되는 전송선(transmission line)이고, 정보가 무선 통신을 이용하여 전송되면, 채널은 정보를 포함하는 전자기파가 통과하는 대기(air)이다.
반도체 메모리 장치가 정보를 저장하고, 저장된 정보를 반도체 메모리 장치로부터 읽어 내는 과정도 채널이 될 수 있다. 채널은 반도체 메모리 장치가 정보를 저장한 순간부터 저장된 정보를 반도체 메모리 장치로부터 읽어 낼 때까지의 시간적 경과일 수도 있고, 반도체 메모리 장치가 정보를 저장하고 저장된 정보를 반도체 메모리 장치로부터 읽어 내는 물리적 경로일 수도 있다.
채널을 경유하여 정보가 전송되는 동안 정보가 오염될 수 있다. 오염된 정보는 오류를 포함하며, 오염된 정보로부터 오류를 검출하고, 검출된 오류를 제거하여 최초의 정보를 복원하기 위한 장치 및 방법에 관한 연구는 꾸준히 진행되고 있다.
정보를 전송하기 전에 최초의 정보에 오류 제어 코드(Error Correction Codes, ECC)를 부가하여 전송 정보를 생성하는 과정을 ECC 인코딩이라 하고, 전송 정보를 수신한 뒤 수신된 전송 정보로부터 오류 제어 코드를 분리하여 최초의 정보를 복원하는 과정을 ECC 디코딩이라 한다.
채널의 특성에 따라서는, 채널에서 발생하는 오류의 비율이 매우 클 수 있다. 오류의 비율이 크면 클수록 이러한 오류를 극복하여 원하는 성능을 달성하기 위한 ECC 인코딩 및 디코딩을 구현하기 위한 하드웨어 복잡도는 증가한다.
채널이 멀티 비트 메모리 장치인 경우, 채널의 특성 상 발생하는 오류가 특정 데이터 페이지에 집중되는 경향이 있을 수 있다. 본 명세서에서는, 채널이 멀티 비트 메모리 장치인 경우에 오류 정정 가능성을 증가시키기 위한 멀티 비트 프로그래밍 장치 및 방법이 제공된다.
본 발명의 메모리 장치는 멀티 비트 셀 어레이 및 페이지 버퍼를 포함한다.
멀티 비트 셀 어레이는 복수의 멀티 비트 셀들을 포함한다. 하나의 멀티 비트 셀은 멀티 비트 데이터를 저장할 수 있다. 메모리 장치가 하나의 멀티 비트 셀에 데이터를 저장하는 과정은 '프로그래밍'이라고도 불리며, F-N 터널링 (Fowler-Nordheim tunneling, F-N tunneling) 등의 메커니즘을 이용하여 수행될 수 있다.
프로그래밍 과정은 멀티 비트 셀의 문턱 전압을 변화시킨다. 하나의 멀티 비트 셀이 최대 m비트의 데이터를 저장할 수 있다면, 하나의 멀티 비트 셀에 형성될 수 있는 문턱 전압 레벨의 수는 2m개이다.
프로그래밍 과정은 데이터를 읽는 과정에 비해 긴 시간을 필요로 하므로 메모리 장치는 물리적으로 인접한 다수의 멀티 비트 셀들을 동시에 프로그래밍함으로 써 멀티 비트 셀 어레이 전체에 대한 프로그래밍 시간을 단축할 수 있다. 이 때, 동시에 프로그래밍되는 물리적인 멀티 비트 셀들의 집합을 페이지라 하며, 하나의 페이지는 하나의 워드 라인(word line)에 연결된 멀티 비트 셀들의 집합일 수 있다.
하나의 멀티 비트 셀이 m비트의 데이터를 저장할 수 있다면, p개의 멀티 비트 셀들을 포함하는 하나의 페이지는 p x m비트의 데이터를 저장할 수 있다. 이 때, 페이지 내의 멀티 비트 셀들 각각은 m비트의 데이터를 최상위 비트(most significant bit, MSB)로부터 최하위 비트(least significant bit, LSB)로 정렬하여 저장할 수 있다.
메모리 장치는 하나의 페이지 내의 p개의 멀티 비트 셀들의 MSB를 모아 하나의 데이터 페이지(데이터 페이지는 p비트의 비트 스트림이다.)를 형성할 수 있다. 메모리 장치는 하나의 페이지 내의 p개의 멀티 비트 셀들의 LSB를 모아 또 다른 하나의 데이터 페이지를 형성할 수 있으며, 결과적으로 하나의 페이지 내의 p개의 멀티 비트 셀들에 저장될 m개의 데이터 페이지를 형성할 수 있다.
메모리 장치가 하나의 페이지에 m개의 데이터 페이지를 저장하기 위해서는, m개의 페이지 프로그래밍 동작(page programming operation)들이 필요하다. 페이지 프로그래밍 동작들 각각은 하나의 데이터 페이지를 하나의 페이지에 저장하는 과정이다.
페이지 버퍼는 m개의 데이터 페이지를 저장하는 메모리이다. 페이지 버퍼는 페이지 프로그래밍 동작이 실행되는 동안 데이터를 저장하고 있으면 충분하므로, 페이지 버퍼는 비휘발성 메모리일 필요는 없다. 페이지 버퍼는 일반적으로 스태틱 램(Static RAM) 또는 그 유사한 메모리로 구성되며, p x m 비트의 데이터를 저장할 수 있다.
일반적으로 페이지 버퍼는 상위 비트로부터 하위 비트의 순서대로 페이지 프로그래밍 동작을 실행한다. 제1 페이지 프로그래밍 동작은 2개의 문턱 전압 상태들을 생성할 수 있다. 일반적으로 제m 페이지 프로그래밍 동작은 2m개의 문턱 전압 상태들을 생성할 수 있다. 문턱 전압 상태들 간의 간격이 작을수록 데이터를 잘못 읽을 가능성이 높아지므로 LSB에 대응하는 제m 페이지는 상위 비트에 대응하는 페이지들에 비해 많은 오류를 포함할 수 있다.
본 발명의 메모리 장치는 메모리 장치 내부의 컨트롤러 또는 외부의 호스트(또는 컴퓨팅 시스템)에서 하나의 데이터 페이지로 인식하는 데이터 비트 스트림을 분할하여 복수의 페이지 버퍼에 할당하고, 분할된 데이터 비트 스트림이 할당된 페이지 버퍼들 각각은 서로 다른 페이지 프로그래밍 동작으로 데이터를 저장한다. 메모리 장치는 저장된 데이터를 분할된 과정의 역으로 결합하여 하나의 데이터 페이지를 생성하고, 생성된 페이지를 컨트롤러 또는 외부의 호스트로 전달한다.
컨트롤러 또는 호스트가 하나의 데이터 페이지로 인식하는 데이터 비트 스트림은 복수의 그룹으로 분할되고, 분할된 그룹들 각각은 물리적으로 서로 다른 페이지 프로그래밍 동작에 의하여 저장되기 때문에 오류가 발생할 위험을 분산시킬 수 있다.
예를 들어, 데이터 페이지는 제1 그룹, 제2 그룹, 제3 그룹 및 제4 그룹으로 분할될 수 있고, 제1 그룹은 제1 페이지 프로그래밍 동작에 의해 저장되고, 제2 그룹은 제2 페이지 프로그래밍 동작에 의해 저장되고, 제3 그룹은 제3 페이지 프로그래밍 동작에 의해 저장되고, 제4 그룹은 제4 페이지 프로그래밍 동작에 의해 저장될 수 있다. 데이터 페이지의 제3 그룹 및 제4 그룹은 많은 오류를 포함할 가능성이 있지만 제1 그룹 및 제2 그룹은 오류를 포함할 가능성이 낮으므로 데이터 페이지는 평준화된(equalized) 오류 발생 확률을 가질 수 있다.
본 발명의 메모리 장치는 데이터 페이지들 각각의 오류 발생 확률을 평준화함으로써 균등하게 신뢰할 만한(evenly reliable) 데이터 페이지들을 생성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치(100)를 도시하는 도면이다.
도 1을 참조하면, 메모리 장치(100)는 4개의 페이지 버퍼들(131, 132, 133, 134) 및 4개의 멀티 비트 셀 어레이들(141, 142, 143, 144)을 포함하고, 데이터 분할부(110) 및 선택부(120)를 포함한다.
페이지 버퍼 1(131)는 멀티 비트 셀 어레이 1(141)에 저장되는 데이터 페이지들을 저장한다. 페이지 버퍼 2(132)는 멀티 비트 셀 어레이 2(142)에 저장되는 데이터 페이지들을 저장한다. 페이지 버퍼 3(133)는 멀티 비트 셀 어레이 3(143)에 저장되는 데이터 페이지들을 저장한다. 페이지 버퍼 4(134)는 멀티 비트 셀 어레이 4(144)에 저장되는 데이터 페이지들을 저장한다.
데이터 분할부(110)는 데이터를 복수의 그룹으로 분할한다.
도 1의 실시예에서는, 데이터 분할부(110)는 데이터를 4개의 그룹으로 분할한다. 예를 들어 데이터 분할부(110)는 제1 데이터를 4개의 그룹으로 분할하여 그룹 11, 그룹 12, 그룹 13, 그룹 14를 생성할 수 있다. 데이터 분할부(110)는 제2 데이터를 4개의 그룹으로 분할하여 그룹 21, 그룹 22, 그룹 23, 그룹 24를 생성하고, 제3 데이터를 4개의 그룹으로 분할하여 그룹 31, 그룹 32, 그룹 33, 그룹 34를 생성하고, 제4 데이터를 4개의 그룹으로 분할하여 그룹 41, 그룹 42, 그룹 43, 그룹 44를 생성할 수 있다.
선택부(120)는 그룹 각각을 로테이션하여 복수의 페이지 버퍼들(131, 132, 133, 134) 각각으로 전송한다. 선택부(120)는 그룹 11을 페이지 버퍼 1(131)로 전송하고, 그룹 12을 페이지 버퍼 2(132)로 전송하고, 그룹 13을 페이지 버퍼 3(133)로 전송하고, 그룹 14을 페이지 버퍼 4(134)로 전송한다.
마찬가지 방법으로 선택부(120)는 제2 데이터, 제3 데이터 및 제4 데이터로부터 생성된 그룹들을 로테이션하여 페이지 버퍼들(131, 132, 133, 134) 각각으로 전송할 수 있다.
이 같은 방법에 의해 페이지 버퍼 1(131)에는 그룹 11, 그룹 21, 그룹 31, 그룹 41이 전송되고, 페이지 버퍼 2(132)에는 그룹 12, 그룹 22, 그룹 32, 그룹 42이 전송될 수 있다. 페이지 버퍼 3(133)에는 그룹 13, 그룹 23, 그룹 33, 그룹 43이 전송되고, 페이지 버퍼 4(134)에는 그룹 14, 그룹 24, 그룹 34, 그룹 44이 전송될 수 있다.
페이지 버퍼 1(131)는 전송된 데이터를 저장하고, 먼저 저장된 순서대로 데 이터(151)를 멀티 비트 셀 어레이 1(141)에 프로그램한다. 데이터(151)는 4개의 데이터 페이지들로 구성된다.
페이지 버퍼 2(132)는 전송된 데이터를 저장하고, 먼저 저장된 순서대로 데이터(152)를 멀티 비트 셀 어레이 2(142)에 프로그램한다. 데이터(152)는 4개의 데이터 페이지들로 구성된다.
마찬가지 방법으로 페이지 버퍼 3(133)는 전송된 데이터를 저장하고, 먼저 저장된 순서대로 데이터(153)를 멀티 비트 셀 어레이 3(143)에 프로그램한다. 페이지 버퍼 4(134)는 전송된 데이터를 저장하고, 먼저 저장된 순서대로 데이터(154)를 멀티 비트 셀 어레이 4(144)에 프로그램한다.
페이지 버퍼 1(131)는 그룹 11을 제4 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이(141)에 프로그램하고, 그룹 21을 제3 페이지 프로그래밍 동작으로, 그룹 31을 제2 페이지 프로그래밍 동작으로, 그룹 41을 제1 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이(141)에 프로그램한다.
페이지 버퍼 2(132)는 그룹 12을 제1 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이(142)에 프로그램하고, 그룹 22을 제4 페이지 프로그래밍 동작으로, 그룹 32을 제3 페이지 프로그래밍 동작으로, 그룹 42을 제2 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이(142)에 프로그램한다.
페이지 버퍼 3(133)는 그룹 13을 제2 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이(143)에 프로그램하고, 페이지 버퍼 4(134)는 그룹 14을 제3 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이(144)에 프로그램한다.
페이지 버퍼 1(131) 및 페이지 버퍼 2(132)는 데이터를 서로 다른 순서의 페이지 프로그래밍 동작으로 프로그램한다.
이 같은 방법으로 데이터가 프로그램된 경우, 제1 데이터는 제4 페이지 프로그래밍 동작으로 프로그램된 그룹 11, 제1 페이지 프로그래밍 동작으로 프로그램된 그룹 12, 제2 페이지 프로그래밍 동작으로 프로그램된 그룹 13, 제3 페이지 프로그래밍 동작으로 프로그램된 그룹 14을 포함한다. 컨트롤러 또는 호스트가 저장된 제1 데이터를 읽으면 메모리 장치는 4개의 멀티 비트 셀 어레이들(141, 142, 143, 144)로부터 그룹 11, 그룹 12, 그룹 13, 그룹 14을 읽어 출력한다.
제1 데이터는 부분적으로 오류의 비율이 많은 그룹(본 실시예에서는 그룹 11, 그룹 14)을 포함하지만 전체적으로 평준화된 오류의 비율을 가질 수 있다.
제2 데이터는 제3 페이지 프로그래밍 동작으로 프로그램된 그룹 21, 제4 페이지 프로그래밍 동작으로 프로그램된 그룹 22, 제1 페이지 프로그램된 그룹 23, 제2 페이지 프로그래밍 동작으로 프로그램된 그룹 24을 포함할 수 있다. 제2 데이터 역시 부분적으로 오류의 비율이 많은 그룹(그룹 21, 그룹 22)을 포함하지만 전체적으로 평준화된 오류의 비율을 가질 수 있다.
메모리 장치(100)는 제1 데이터, 제2 데이터, 제3 데이터 및 제4 데이터를 혼합하여(shuffle) 4개의 멀티 비트 셀 어레이들(141, 142, 143, 144)에 프로그램할 수 있다. 4개의 페이지 버퍼들(131, 132, 133, 134)이 수행하는 페이지 프로그래밍 동작의 순서는 4개의 멀티 비트 셀 어레이들(141, 142, 143, 144)에 형성되는 문턱 전압 상태들의 수와 관련될 수 있다.
일반적으로 제1 페이지 프로그래밍 동작이 2개의 문턱 전압 상태들을 형성할 수 있고, 제k 페이지 프로그래밍 동작(1≤k≤m)이 2k 개의 문턱 전압 상태들을 형성할 수 있음은 앞에서 설명한 바와 같다.
제1 페이지 프로그래밍 동작이 제m 페이지 프로그래밍 동작보다 적은 수의 문턱 전압 상태들을 형성할 수 있으므로, 제1 페이지 프로그래밍 동작으로 프로그램되는 데이터가 제m 페이지 프로그래밍 동작으로 프로그램되는 데이터보다 오류의 비율이 낮을 수 있다.
4개의 페이지 버퍼들(131, 132, 133, 134)이 수행하는 페이지 프로그래밍 동작의 순서는 4개의 멀티 비트 셀 어레이들(141, 142, 143, 144)에 프로그램된 데이터 페이지의 비트 오류 비율(bit error rate, BER)에 기초하여 결정될 수 있다.
메모리 장치(100)는 제1 데이터, 제2 데이터, 제3 데이터 및 제4 데이터를 혼합하여 프로그램함으로써 데이터 각각의 오류 비율을 동일한 레벨로 조정할 수 있다. 예를 들어, 제1 페이지 프로그래밍 동작으로 프로그램된 데이터의 BER이 10(-8), 제2 페이지 프로그래밍 동작으로 프로그램된 데이터의 BER이 10(-6), 제3 페이지 프로그래밍 동작으로 프로그램된 데이터의 BER이 10(-4), 제4 페이지 프로그래밍 동작으로 프로그램된 데이터의 BER이 10(-1) 라 가정한다. 종래의 구성으로는 제4 페이지 프로그래밍 동작으로 프로그램된 데이터의 BER은 10(-1)이므로 10(-1)의 BER을 가지는 데이터의 오류를 모두 정정할 수 있는 ECC 디코더를 필요로 한다. 반면 에, 메모리 장치(100)는 데이터 각각을 혼합하여 저장함으로써 데이터 각각이 2.5 x 10(-2) 정도의 평균 BER을 가지도록 할 수 있고, 2.5 x 10(-2)의 BER을 가지는 데이터의 오류를 모두 정정할 수 있는 ECC 디코더만을 필요로 한다.
ECC 디코더의 오류 정정 능력(error correcting capability)이 높을수록 ECC 디코더의 하드웨어 복잡도가 높아진다. 메모리 장치(100)는 데이터 각각의 오류 비율을 동일한 레벨로 조정함으로써 균일하게 신뢰 가능한(evenly reliable) 데이터를 생성할 수 있다. 메모리 장치(100)는 동일한 ECC 디코더를 사용했을 때의 오류 정정 가능성(error correctability)을 높이고, ECC 디코더의 하드웨어 복잡도를 줄일 수 있다.
하나의 데이터 비트 스트림이 분할되어 프로그램되는 페이지 프로그래밍 동작의 가능한 조합의 예로는 (1,2,3,4), (1,2,4,3), (1,3,2,4), (1,3,4,2), (1,4,2,3), (1,4,3,2), (2,1,3,4), (2,1,4,3), (2,3,1,4), (2,3,4,1), (2,4,1,3), (2,4,3,1), (3,1,2,4), (3,1,4,2), (3,2,1,4), (3,2,4,1), (3,4,1,2), (3,4,2,1), (4,1,2,3), (4,1,3,2), (4,2,1,3), (4,2,3,1), (4,3,1,2), (4,3,2,1) 등이 있을 수 있다. 이 때, (1,2,3,4)는 (제1 페이지 프로그래밍 동작, 제2 페이지 프로그래밍 동작, 제3 페이지 프로그래밍 동작, 제4 페이지 프로그래밍 동작)을 나타낸다.
메모리 장치(100)는 1 채널 4 way SSD(solid state disk)일 수 있다. 하나의 페이지 버퍼 및 하나의 멀티 비트 셀 어레이는 하나의 way를 구성할 수 있고, 하나의 채널은 데이터가 공유되는 공통의 입출력 버스일 수 있다.
도 5는 데이터 분할부(110)의 다른 실시예를 도시하는 도면이다.
도 5를 참조하면, 데이터 분할부(110)는 인코더(510) 및 코드워드 분할부(520)를 포함한다.
인코더(510)는 데이터를 ECC 인코딩하여 코드워드를 생성한다. 인코더(510)는 n비트의 데이터 비트 스트림에 r비트의 리던던시 비트를 부가하여 (n+r) 비트의 코드워드를 생성할 수 있다. 인코더(510)는 n비트 단위로 데이터를 ECC 인코딩할 수 있다.
코드워드 분할부(520)는 코드워드를 복수의 그룹으로 분할한다. 이 때, 코드워드 분할부(520)는 인코더(510)에 의해 생성된 코드워드들 각각을 분할할 수 있다.
도 2는 본 발명의 다른 실시예에 따른 메모리 장치(200)를 도시하는 도면이다.
도 2를 참조하면, 메모리 장치(200)는 데이터 분할부(210), 인코더(220), 메모리 유닛들(231, 232, 233, 234)을 포함한다.
데이터 분할부(210)는 데이터를 복수의 그룹으로 분할한다. 인코더(220)는 분할된 그룹 각각을 ECC 인코딩한다.
메모리 장치(200)는 ECC 인코딩된 그룹 각각을 ECC 인코딩되는 순서대로 로테이션하여 메모리 유닛들(231, 232, 233, 234) 각각으로 전송한다. 이 때, 메모리 장치(200)는 메모리 유닛들(231, 232, 233, 234) 각각의 식별 번호에 의해 제어되며, ECC 인코딩된 그룹 각각을 ECC 인코딩되는 순서대로 로테이션하여 메모리 유 닛들(231, 232, 233, 234) 각각으로 전송하는 디멀티플렉서(Demultiplexer)(도시되지 않음)를 더 포함할 수 있다.
도 2의 데이터 분할부(210)는 데이터를 4개의 그룹으로 분할할 수 있다. 데이터 분할부(210)는 데이터를 그룹 A, 그룹 B, 그룹 C, 그룹 D로 분할할 수 있다.
인코더(220)는 그룹 A, B, C, D 각각을 ECC 인코딩하고, 디멀티플렉서를 이용하여 그룹 A가 인코딩되는 대로 그룹 A를 메모리 유닛 1(231)으로 전송하고, 그룹 B가 인코딩되는 대로 그룹 B를 메모리 유닛 2(232)으로 전송할 수 있다. 마찬가지로, 인코더(220)는 그룹 C가 인코딩되는 대로 그룹 C를 메모리 유닛 3(233)으로 전송하고, 그룹 D가 인코딩되는 대로 그룹 D를 메모리 유닛 4(234)로 전송할 수 있다.
메모리 장치(200)는 데이터가 ECC 인코딩되는 시간 외에 컨트롤러 또는 호스트로부터 메모리 유닛들(231, 232, 233, 234) 각각으로 전송되는 데 소요되는 시간을 최소화할 수 있다. 컨트롤러 레벨에서 데이터를 혼합하는(shuffle) 구성은 혼합된 데이터로부터 데이터 페이지를 생성하고, 생성된 데이터 페이지를 컨트롤러 버퍼에 저장한 뒤 페이지 버퍼로 순차적으로 전송하는 구성을 취할 수도 있으나, 본 발명의 메모리 장치(200)는 별도의 컨트롤러 버퍼를 필요로 하지 않는다.
메모리 장치(200)는 데이터를 ECC 인코딩하는 시간 외에 데이터를 메모리 유닛들(231, 232, 233, 234) 각각으로 전송하는 데 소요되는 시간을 최소화함으로써 데이터를 프로그래밍하는 시간을 단축할 수 있다.
메모리 유닛들(231, 232, 233, 234) 각각은 멀티 비트 셀 어레이 및 페이지 버퍼를 포함할 수 있다. 페이지 버퍼들 각각은 멀티 비트 셀 어레이들 각각에 프로그램되는 데이터를 저장하고, 서로 다른 순서로 페이지 프로그래밍 동작을 실행하여 멀티 비트 셀 어레이들 각각에 데이터를 프로그램할 수 있다.
도 5에 도시된 실시예는 도 1의 데이터 분할부(110)에 관련되는 실시예이지만, 도 2의 데이터 분할부(210)에도 적용될 수 있다.
도 5의 실시예가 데이터 분할부(210)에 적용될 경우에는 인코더(510)는 인코더(220)의 인코딩 기법과 다른 인코딩 기법으로 데이터를 ECC 인코딩할 수 있다.
도 3은 본 발명의 또 다른 실시예에 따른 메모리 장치(300)를 도시하는 도면이다.
도 3을 참조하면, 메모리 장치(300)는 4개의 멀티 비트 셀 어레이들(321, 322, 323, 324)을 포함하고, 4개의 페이지 버퍼들(311, 312, 313, 314)을 포함한다.
페이지 버퍼 1(311)는 멀티 비트 셀 어레이 1(321)에 프로그램되는 데이터를 저장하고, 페이지 버퍼 2(312)는 멀티 비트 셀 어레이 2(322)에 프로그램되는 데이터를 저장한다. 페이지 버퍼 3(313)는 멀티 비트 셀 어레이 3(323)에 프로그램되는 데이터를 저장하고, 페이지 버퍼 4(314)는 멀티 비트 셀 어레이 4(324)에 프로그램되는 데이터를 저장한다.
페이지 버퍼 1(311)는 데이터의 제4 데이터 페이지(334)를 멀티 비트 셀 어레이 1(321)에 프로그램한 후 제3 데이터 페이지(333)를 프로그램하고, 제3 데이터 페이지(333)를 프로그램한 후 제2 데이터 페이지(332)를 프로그램하고, 마지막으로 제1 데이터 페이지(331)를 프로그램한다.
페이지 버퍼 2(312)는 제1 데이터 페이지(344), 제4 데이터 페이지(343), 제3 데이터 페이지(342) 및 제2 데이터 페이지(341)의 순서대로 멀티 비트 셀 어레이 2(322)에 프로그램한다.
페이지 버퍼 3(313)는 제2 데이터 페이지(354), 제1 데이터 페이지(353), 제4 데이터 페이지(352) 및 제3 데이터 페이지(351)의 순서대로 멀티 비트 셀 어레이 3(323)에 프로그램한다.
페이지 버퍼 4(314)는 제3 데이터 페이지(364), 제2 데이터 페이지(363), 제1 데이터 페이지(362) 및 제4 데이터 페이지(361)의 순서대로 멀티 비트 셀 어레이 4(324)에 프로그램한다.
일반적으로 제4 페이지 프로그래밍 동작은 제3 페이지 프로그래밍 동작보다 긴 시간이 소요될 수 있고, 제1 페이지 프로그래밍 동작은 가장 짧은 시간이 소요될 수 있다.
페이지 버퍼 1(311)는 제1 데이터 페이지(331)를 가장 짧은 시간 동안 프로그램하고, 제2 데이터 페이지(332)를 제1 데이터 페이지(331)의 프로그램 시간보다 긴 시간 동안 프로그램하고, 제3 데이터 페이지(333)를 제2 데이터 페이지(332)의 프로그램 시간보다 긴 시간 동안 프로그램하고, 제4 데이터 페이지(334)를 가장 긴 시간 동안 프로그램할 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티 비트 프로그래밍 방법을 도시하는 동작 흐름도이다.
멀티 비트 프로그래밍 방법은 컨트롤러, 복수의 페이지 버퍼들, 복수의 페이지 버퍼들 각각에 대응하는 복수의 멀티 비트 셀 어레이들을 포함하는 메모리 장치에서 실행될 수 있다.
도 4를 참조하면, 컨트롤러는 데이터를 복수의 그룹으로 분할한다(S410).
컨트롤러는 그룹 각각을 로테이션하여 복수의 페이지 버퍼들 각각으로 전송한다(S420).
복수의 페이지 버퍼들 각각은 전송된 그룹 각각을 저장한다(S430).
복수의 페이지 버퍼들 각각은 저장된 그룹 각각을 서로 다른 순서의 페이지 프로그래밍 동작으로 멀티 비트 셀 어레이들 각각에 프로그램한다(S440).
컨트롤러는 분할된 그룹 각각을 ECC 인코딩할 수 있다. 이 때, 단계(420)에서 컨트롤러는 ECC 인코딩된 그룹 각각을 ECC 인코딩되는 순서대로 복수의 멀티 비트 셀 어레이들 각각으로 전송할 수 있다.
단계(S440)는 다음의 두 단계를 더 포함할 수 있다.
(1) 복수의 페이지 버퍼들 각각은 복수의 멀티 비트 셀 어레이들에 저장된 데이터 페이지의 BER에 기초하여 페이지 프로그래밍 동작의 순서를 결정할 수 있다.
(2) 복수의 페이지 버퍼들 각각은 결정된 순서에 따라 저장된 그룹 각각을 멀티 비트 셀 어레이들 각각에 프로그램할 수 있다.
도 6은 단계(S410)의 다른 실시예를 도시하는 동작 흐름도이다.
도 6을 참조하면, 컨트롤러는 데이터를 제1 ECC 인코딩하여 코드워드를 생성 한다(S610). 이 때, 제1 ECC 인코딩 기법은 단계(S410) 및 단계(S420) 사이에서 수행될 수 있는 인코딩 기법과는 다를 수 있다.
컨트롤러는 코드워드를 복수의 그룹으로 분할한다(S620).
본 발명에 따른 멀티 비트 프로그래밍 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 구현될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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은 본 발명의 일 실시예에 따른 메모리 장치를 도시하는 도면이다.
도 2는 본 발명의 다른 실시예에 따른 메모리 장치를 도시하는 도면이다.
도 3은 본 발명의 또 다른 실시예에 따른 메모리 장치를 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 멀티 비트 프로그래밍 방법을 도시하는 동작 흐름도이다.
도 5는 데이터 분할부(110)의 다른 실시예를 도시하는 도면이다.
도 6은 단계(S410)의 다른 실시예를 도시하는 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 데이터 분할부
120: 선택부
131~134: 페이지 버퍼
141~144: 멀티 비트 셀 어레이

Claims (15)

  1. 복수의 멀티 비트 셀 어레이들;
    상기 복수의 멀티 비트 셀 어레이들 각각에 프로그램되는 데이터를 각각 저장하는 복수의 페이지 버퍼들;
    데이터를 복수의 그룹으로 분할하는 데이터 분할부; 및
    상기 그룹 각각을 로테이션하여 상기 복수의 페이지 버퍼들 각각으로 전송하는 선택부
    를 포함하고,
    상기 복수의 페이지 버퍼들 각각은 상기 전송된 그룹 각각을 상기 복수의 멀티 비트 셀 어레이들 각각에 서로 다른 순서의 페이지 프로그래밍 동작으로 프로그램하는 메모리 장치.
  2. 제1항에 있어서,
    상기 페이지 프로그래밍 동작의 순서는 상기 멀티 비트 셀 어레이들 각각에 형성되는 문턱 전압 상태들의 수와 관련되는 메모리 장치.
  3. 제1항에 있어서,
    상기 복수의 페이지 버퍼들 각각은 상기 복수의 멀티 비트 셀 어레이들에 저장된 데이터 페이지의 비트 오류 비율에 기초하여 상기 페이지 프로그래밍 동작의 상기 순서를 결정하는 메모리 장치.
  4. 제1항에 있어서,
    상기 데이터 분할부는
    상기 데이터를 오류 제어 코드(ECC) 인코딩하여 코드워드를 생성하는 인코더; 및
    상기 코드워드를 상기 복수의 그룹으로 분할하는 코드워드 분할부
    를 포함하는 메모리 장치.
  5. 복수의 메모리 유닛들;
    데이터를 복수의 그룹으로 분할하는 데이터 분할부;
    상기 그룹을 오류 제어 코드 인코딩하는 인코더; 및
    상기 오류 제어 코드 인코딩된 그룹 각각을 상기 오류 제어 코드 인코딩되는 순서대로 로테이션하여 상기 복수의 메모리 유닛들 각각으로 전송하는 선택부
    를 포함하는 메모리 장치.
  6. 제5항에 있어서,
    상기 데이터 분할부는
    상기 데이터를 제1 오류 제어 코드 인코딩하여 코드워드를 생성하는 제1 인코더; 및
    상기 코드워드를 상기 복수의 그룹으로 분할하는 코드워드 분할부
    를 포함하는 메모리 장치.
  7. 제5항에 있어서,
    상기 선택부는
    상기 복수의 메모리 유닛들 각각의 식별 번호에 의해 제어되는 디멀티플렉서인 메모리 장치.
  8. 제5항에 있어서,
    상기 복수의 메모리 유닛들 각각은
    멀티 비트 셀 어레이; 및
    상기 멀티 비트 셀 어레이에 프로그램되는 데이터를 저장하는 페이지 버퍼
    를 포함하고,
    상기 페이지 버퍼들 각각은 서로 다른 순서로 페이지 프로그래밍 동작을 수행하여 상기 멀티 비트 셀 어레이 각각에 데이터를 프로그램하는 메모리 장치.
  9. 제1 멀티 비트 셀 어레이;
    제2 멀티 비트 셀 어레이;
    상기 제1 멀티 비트 셀 어레이에 저장되는 제1 데이터를 저장하는 제1 페이지 버퍼; 및
    상기 제2 멀티 비트 셀 어레이에 저장되는 제2 데이터를 저장하는 제2 페이지 버퍼
    를 포함하고,
    상기 제1 페이지 버퍼는 상기 제1 멀티 비트 셀 어레이에 상기 제1 데이터의 제1 상위 데이터 페이지를 먼저 저장한 후 상기 제1 데이터의 제1 하위 데이터 페이지를 저장하고,
    상기 제2 페이지 버퍼는 상기 제2 멀티 비트 셀 어레이에 상기 제2 데이터의 제2 하위 데이터 페이지를 먼저 저장한 후 상기 제2 데이터의 제2 상위 데이터 페이지를 저장하는 메모리 장치.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서,
    상기 제1 페이지 버퍼는 상기 제1 하위 데이터 페이지를 상기 제1 데이터 페이지를 저장하는 시간보다 더 긴 시간 동안 저장하고,
    상기 제2 페이지 버퍼는 상기 제2 하위 데이터 페이지를 상기 제2 데이터 페이지를 저장하는 시간보다 더 긴 시간 동안 저장하는 메모리 장치.
  11. 컨트롤러, 복수의 페이지 버퍼들, 상기 복수의 페이지 버퍼들 각각에 대응하는 복수의 멀티 비트 셀 어레이들을 포함하는 메모리 장치의 멀티 비트 프로그래밍 방법에 있어서,
    상기 컨트롤러가 데이터를 복수의 그룹으로 분할하는 단계;
    상기 컨트롤러가 상기 그룹 각각을 로테이션하여 복수의 페이지 버퍼들 각각으로 전송하는 단계;
    상기 복수의 페이지 버퍼들 각각이 전송된 그룹 각각을 저장하는 단계; 및
    상기 복수의 페이지 버퍼들 각각이 상기 저장된 그룹 각각을 서로 다른 순서의 페이지 프로그래밍 동작으로 상기 멀티 비트 셀 어레이들 각각에 프로그램하는 단계
    를 포함하는 멀티 비트 프로그래밍 방법.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 컨트롤러가 데이터를 복수의 그룹으로 분할하는 단계는
    상기 컨트롤러가 데이터를 제1 오류 제어 코드(ECC) 인코딩하여 코드워드를 생성하는 단계; 및
    상기 컨트롤러가 상기 코드워드를 상기 복수의 그룹으로 분할하는 단계
    를 포함하는 멀티 비트 프로그래밍 방법.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 컨트롤러가 상기 분할된 그룹 각각을 오류 제어 코드 인코딩하는 단계;
    를 더 포함하고,
    상기 컨트롤러가 상기 그룹 각각을 로테이션하여 복수의 페이지 버퍼들 각각으로 전송하는 단계는
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 복수의 페이지 버퍼들 각각이 상기 저장된 그룹 각각을 서로 다른 순서의 페이지 프로그래밍 동작으로 상기 멀티 비트 셀 어레이들 각각에 프로그램하는 단계는
    상기 복수의 페이지 버퍼들 각각이 상기 복수의 멀티 비트 셀 어레이들에 저장된 데이터 페이지의 비트 오류 비율에 기초하여 상기 페이지 프로그래밍 동작의 순서를 결정하는 단계; 및
    상기 결정된 순서에 따라 상기 복수의 페이지 버퍼들 각각이 상기 저장된 그룹 각각을 상기 멀티 비트 셀 어레이들 각각에 프로그램하는 단계
    를 포함하는 멀티 비트 프로그래밍 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제11항 내지 제14항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020080004147A 2008-01-14 2008-01-14 메모리 장치 및 멀티 비트 프로그래밍 방법 KR101386489B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080004147A KR101386489B1 (ko) 2008-01-14 2008-01-14 메모리 장치 및 멀티 비트 프로그래밍 방법
US12/155,647 US8230157B2 (en) 2008-01-14 2008-06-06 Memory device and method of multi-bit programming

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080004147A KR101386489B1 (ko) 2008-01-14 2008-01-14 메모리 장치 및 멀티 비트 프로그래밍 방법

Publications (2)

Publication Number Publication Date
KR20090078285A KR20090078285A (ko) 2009-07-17
KR101386489B1 true KR101386489B1 (ko) 2014-04-21

Family

ID=40851683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080004147A KR101386489B1 (ko) 2008-01-14 2008-01-14 메모리 장치 및 멀티 비트 프로그래밍 방법

Country Status (2)

Country Link
US (1) US8230157B2 (ko)
KR (1) KR101386489B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905510B2 (ja) * 2009-06-29 2012-03-28 富士通株式会社 ストレージ制御装置及びストレージ装置のデータ回復方法
US8489979B2 (en) * 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
KR101736792B1 (ko) 2010-09-20 2017-05-18 삼성전자주식회사 플래시 메모리 및 그것의 셀프 인터리빙 방법
US8825945B2 (en) 2011-01-31 2014-09-02 Marvell World Trade Ltd. Mapping different portions of data to different pages of multi-level non-volatile memory
KR102221752B1 (ko) * 2014-03-20 2021-03-02 삼성전자주식회사 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
KR102126760B1 (ko) * 2014-04-07 2020-06-25 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
KR102234592B1 (ko) * 2014-07-29 2021-04-05 삼성전자주식회사 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법
KR102296738B1 (ko) 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법
JP7025266B2 (ja) * 2018-03-29 2022-02-24 パナソニック デバイスSunx株式会社 画像検査システム
US11003375B2 (en) 2018-05-15 2021-05-11 Micron Technology, Inc. Code word format and structure
US10831653B2 (en) 2018-05-15 2020-11-10 Micron Technology, Inc. Forwarding code word address
US11042325B2 (en) 2019-08-05 2021-06-22 International Business Machines Corporation Speculative bank activate dynamic random access memory (DRAM) scheduler

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100719380B1 (ko) 2006-03-31 2007-05-18 삼성전자주식회사 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템
KR20070112224A (ko) * 2005-02-28 2007-11-22 마이크론 테크놀로지, 인크. 비휘발성 메모리 장치에서의 다중 레벨 프로그래밍

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5969997A (en) * 1997-10-02 1999-10-19 International Business Machines Corporation Narrow data width DRAM with low latency page-hit operations
US5898623A (en) 1997-10-09 1999-04-27 International Business Machines Corporation Input port switching protocol for a random access memory
US6373751B1 (en) 2000-05-15 2002-04-16 Enhanced Memory Systems, Inc. Packet-based integrated circuit dynamic random access memory device incorporating an on-chip row register cache to reduce data access latencies
US6678811B2 (en) 2001-04-07 2004-01-13 Hewlett-Packard Development Company, L.P. Memory controller with 1X/MX write capability
DE10226485A1 (de) 2002-06-14 2005-06-23 Infineon Technologies Ag Halbleiterspeicher mit Adressdecodiereinheit
KR20040015589A (ko) 2002-08-13 2004-02-19 삼성전자주식회사 향상된 테스트 신뢰성을 갖는 반도체 메모리 장치
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070112224A (ko) * 2005-02-28 2007-11-22 마이크론 테크놀로지, 인크. 비휘발성 메모리 장치에서의 다중 레벨 프로그래밍
KR100719380B1 (ko) 2006-03-31 2007-05-18 삼성전자주식회사 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템

Also Published As

Publication number Publication date
US20090182934A1 (en) 2009-07-16
US8230157B2 (en) 2012-07-24
KR20090078285A (ko) 2009-07-17

Similar Documents

Publication Publication Date Title
KR101386489B1 (ko) 메모리 장치 및 멀티 비트 프로그래밍 방법
KR101436505B1 (ko) 메모리 장치
JP5502064B2 (ja) メモリ装置およびデータ判定方法
US8560901B2 (en) Apparatus, method and memory device for error correction by increasing or decreasing a read voltage and analyzing frequency information for a read error pattern
KR101378349B1 (ko) 메모리 장치 및 메모리 데이터 읽기 방법
KR101398212B1 (ko) 메모리 장치 및 인코딩/디코딩 방법
US9990247B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
US8543892B2 (en) Memory device and method of storing data with error correction using codewords
KR20100028924A (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US9761326B2 (en) Memory system and memory control method
KR101678404B1 (ko) 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법
CN107634764B (zh) 使用低密度奇偶校验码的解码器及存储控制器
CN111435604B (zh) 解码方法、存储器控制电路单元以及存储器存储装置
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device
CN111508546B (zh) 解码方法、存储器控制电路单元与存储器存储装置
US10310941B2 (en) Data encoding method, memory control circuit unit and memory storage device

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee