KR101160761B1 - 메모리 셀에서 분수 비트 - Google Patents
메모리 셀에서 분수 비트 Download PDFInfo
- Publication number
- KR101160761B1 KR101160761B1 KR1020107011764A KR20107011764A KR101160761B1 KR 101160761 B1 KR101160761 B1 KR 101160761B1 KR 1020107011764 A KR1020107011764 A KR 1020107011764A KR 20107011764 A KR20107011764 A KR 20107011764A KR 101160761 B1 KR101160761 B1 KR 101160761B1
- Authority
- KR
- South Korea
- Prior art keywords
- cells
- programmed
- state
- bits
- memory
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- 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/5642—Sensing or reading circuits; Data output 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- 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/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 메모리 셀을 프로그래밍하기 위한 방법, 장치, 모듈 및 시스템을 포함한다. 하나의 방법 실시예는 메모리 셀의 세트의 비트의 정수를 표시하는 데이터 상태에 상응하는 전하를 저장하는 단계를 포함한다. 상기 방법은 상기 세트의 셀에 전하를 저장하는 단계를 또한 포함하는 바, 상기 전하는 프로그램된 상태에 상응하고, 상기 프로그램된 상태는 비트의 분수를 표시하고, 상기 프로그램된 상태는 N진수로 표현되는 상기 데이터 상태의 디지트를 나타낸다 (N은 정수로 올림한 2B 와 동일하고, B는 상기 프로그램된 상태로 표시되는 상기 비트의 분수와 동일함).
Description
메모리 장치는 전형적으로 컴퓨터 또는 다른 전자 장치에서 내부적, 반도체, 집적회로로서 전형적으로 제공된다. 다른 것 중에서, RAM(random-access memory), ROM(read only memory), DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), 및 플래시(flash) 메모리를 포함하는 많은 상이한 유형의 메모리가 있다.
플래시 메모리 장치는 전자 어플리케이션의 넓은 범위에 대하여 비휘발성 메모리로서 사용된다. 플래시 메모리 장치는 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비가 가능한 단일 트랜지스터를 전형적으로 사용한다.
플래시 메모리에 대한 사용은 개인용 컴퓨터, PDA(personal digital assistants), 디지털 카메라 및 이동 전화에 대한 메모리를 포함한다. BIOS (basic input/output system)과 같은 프로그램 코드 및 시스템 데이터는 전형적으로 플래시 메모리 장치에 저장된다. 이 정보는 다른 것 중에서, 개인용 컴퓨터 시스템에서 사용될 수 있다.
어레이 아키텍처에서 메모리 셀은 바람직한 상태로 프로그램될 수 있다. 즉, 전하(electric charge)는 셀을 많은 저장된 상태로 들어가게 하기 위해 메모리 셀의 플로팅 게이트상에 배치될 수 있거나, 그로부터 제거될 수 있다. 예를 들어, SLC(single level cell)은 이진 디지트 1 또는 0으로 표시되는 두 개의 데이터 상태를 표시할 수 있다. 플래시 메모리 셀은 2개 이상의 데이터 상태, 예를 들어, 1111, 0111,0011, 1011, 1001, 0001, 0101, 1101, 1100, 0100, 0000, 1000, 1010, 0010, 0110 및 1110를 또한 저장할 수 있다. 이러한 셀은 다중 상태(multi state) 메모리 셀, 멀티디지트(multidigit) 셀, 또는 MLC(multilevel cells)로 불리울 수 있다. MLC는 메모리 셀의 수를 증가시키지 않고 더 높은 밀도 메모리의 제조가 가능하도록 할 수 있는데, 각 셀이 하나의 디지트(digit) 이상, 예를 들어, 하나 이상의 비트를 표시할 수 있기 때문이다.
MLC는 하나 이상의 프로그램된 상태를 가질 수 있는데, 예를 들어, 두 개의 디지트를 표시할 수 있는 셀은 4개의 프로그램된 상태를 가질 수 있고, 3개의 디지트를 표시할 수 있는 셀은 8개의 프로그램 상태를 가질 수 있고, 4개의 디지트를 표시할 수 있는 셀은 16개의 프로그램된 상태를 가질 수 있다. 따라서, MLC는 2B 개의 프로그램된 상태를 가질 수 있다 (여기서, B는 셀에 저장될 수 있는 이진 디지트의 수와 동일). 종래적으로, 프로그램된 상태는 데이터 상태를 직접적으로 표시한다. 예를 들어, 두 개의 이진 디지트를 저장할 수 있는 셀은 11, 01, 10 및 00과 같은 4개의 데이터 상태의 하나에 직접적으로 상응하는 4개의 프로그램된 상태의 하나로 프로그램될 수 있다.
도 1은 본 발명의 하나 이상의 실시예에 따른 비휘발성 메모리 어레이의 부분의 개략도이다.
도 2는 본 발명의 하나 이상의 실시예에 따른 메모리 장치에 대한 많은 임계 전압 수준의 다이어그램을 도시한다.
도 3A는 몇몇 이전 접근법(previous approaches)에 따른 두 개의 2 비트 메모리 셀의 세트에 대한 데이터 변환(conversion)표를 도시한다.
도 3B는 본 발명의 하나 이상의 실시예에 따른 두 개의 2.5 비트 메모리 셀의 세트에 대한 데이터 변환표를 도시한다.
도 4A는 본 발명의 하나 이상의 실시예에 따라 동작되는 적어도 하나의 메모리 장치를 갖는 전자 메모리 시스템의 기능적 블록도이다.
도 4B는 본 발명의 하나 이상의 실시예에 따른 분수 비트 제어기의 기능적 블록도이다.
도 5는 본 발명의 하나 이상의 실시예에 따른 적어도 하나의 메모리 장치를 갖는 메모리 모듈의 기능적 블록도이다.
도 2는 본 발명의 하나 이상의 실시예에 따른 메모리 장치에 대한 많은 임계 전압 수준의 다이어그램을 도시한다.
도 3A는 몇몇 이전 접근법(previous approaches)에 따른 두 개의 2 비트 메모리 셀의 세트에 대한 데이터 변환(conversion)표를 도시한다.
도 3B는 본 발명의 하나 이상의 실시예에 따른 두 개의 2.5 비트 메모리 셀의 세트에 대한 데이터 변환표를 도시한다.
도 4A는 본 발명의 하나 이상의 실시예에 따라 동작되는 적어도 하나의 메모리 장치를 갖는 전자 메모리 시스템의 기능적 블록도이다.
도 4B는 본 발명의 하나 이상의 실시예에 따른 분수 비트 제어기의 기능적 블록도이다.
도 5는 본 발명의 하나 이상의 실시예에 따른 적어도 하나의 메모리 장치를 갖는 메모리 모듈의 기능적 블록도이다.
하나의 방법 실시예는 메모리 셀의 세트에서 비트의 정수로서 표시되는 데이터 상태에 상응하는 전하(charges)를 저장하는 단계를 포함한다. 상기 방법은 세트의 셀에 전하를 저장하는 단계를 또한 포함하는 바, 전하는 프로그램된 상태에 상응하고, 프로그램된 상태는 비트의 분수를 표시하고, 프로그램된 상태는 N진수(base)로 표시되는 데이터 상태의 디지트를 나타낸다 (N은 정수로 올림한 2B 와 동일하고, B는 프로그램된 상태로 표시되는 비트의 분수와 동일함).
다음의 본 발명의 상세한 설명에서, 본 발명의 부분을 형성하는 첨부된 도면을 참조하고, 도면에서 어떻게 본 발명의 하나 이상의 실시예가 실행될 수 있는지 도시하는 방법에 의해 도시된다. 이러한 실시예는 당업자가 본 발명의 실시예를 실행할 수 있도록 충분히 상세히 설명되고, 다른 실시예가 사용될 수 있다는 것과, 공정, 전기적 및/또는 구조적 변경이 본 발명의 범위를 벗어나지 않고 행해질 수 있다는 것이 이해되어야 한다.
도 1은 비휘발성 메모리 어레이(100)의 부분의 개략도이다. 도 1의 실시예는 낸드(NAND) 아키텍처 비휘발성 메모리를 도시한다. 그러나, 본원에 기재된 실시예는 이 예시에 한정되지 않는다. 도 1에 도시된 바와 같이, 메모리 어레이(100)은 선택 라인(105-1, ..., 105-N) 및 교차하는(intersecting) 감지 라인(107-1, ..., 107-M)을 포함한다. 디지털 환경에서 어드레싱(addressing)의 용이를 위하여, 선택 라인(105-1, ..., 105-N)의 수 및 감지 라인(107-1, ..., 107-M)의 수는 2의 각 소정 제곱, 예를 들어, 4,096개 감지 라인에 의한 256개 선택 라인이다.
메모리 어레이(100)는 낸드 스트링(string)(109-1, ..., 109-M)을 포함한다. 각 낸드 스트링은, 각각이 선택 라인(105-1, ..., 105-N)과 로컬 감지 라인(107-1, ..., 107-M)의 교차점(intersection)에 위치하는 비휘발성 메모리 셀(111-1, ..., 111-N)을 포함한다. 각 낸드 스트링(string)(109-1, ..., 109-M)의 비휘발성 메모리 셀(111-1, ..., 111-N)은 소스 선택 게이트(source select gate, SGS), 예를 들어, 전계효과(field-effect) 트랜지스터 (FET, 113)와 드레인 선택 게이트(drain select gate, SGD), 예를 들어, FET(119) 사이에서 직렬로 소스가 드레인에 접속된다. 소스 선택 게이트(113)은 로컬 감지 라인(107-1)과 소스 선택 라인(117)의 교차점에 위치되는 반면 드레인 선택 게이트(119)는 로컬 감지 라인(107-1)과 드레인 선택 라인(115)의 교차점에 위치된다.
도 1에 도시된 실시예에서 도시된 바와 같이, 소스 선택 게이트(113)의 소스는 공통(common) 소스 라인(123)에 접속된다. 소스 선택 게이트(113)의 드레인은 상응하는 낸드 스트링(109-1)의 메모리 셀(111-1)의 소스에 접속된다. 드레인 선택 게이트(119)의 드레인은 드레인 접촉(contact)(121-1)에서 상응하는 낸드 스트링(109-1)에 대한 로컬 감지 라인(107-1)에 접속된다. 드레인 선택 게이트(119)의 소스는 상응하는 낸드 스트링(109-1)의 마지막 메모리 셀(111-N)의 드레인, 예를 들어, 플로팅 게이트 트랜지스터,에 접속된다.
하나 이상의 실시예에서, 비휘발성 메모리 셀(111-1, ..., 111-N)의 구조(construction)는 소스, 드레인, 플로팅 게이트 또는 다른 전하 스토리지(storage) 층, 및 제어 게이트를 포함한다. 비휘발성 메모리 셀(111-1, ..., 111-N)은 선택 라인(105-1, ..., 105-N)에 각각 결합된 그들의 제어 게이트를 갖는다. 비휘발성 메모리 셀(111-1, ..., 111-N)의 열은 주어진 로컬 감지 라인, 예를 들어, 107-1, ..., 107-M에 각각 결합된 낸드 스트링, 예를 들어, 109-1, ..., 109-M를 구성한다. 비휘발성 메모리 셀의 행은 대체로 주어진 선택 라인, 예를 들어, 105-1, ..., 105-N에 결합된다. 노어(NOR) 어레이 아키텍처는, 메모리 셀의 스트링이 선택 게이트 사이에 병렬로 결합되는 것을 제외하고, 유사하게 레이아웃(laid out)될 것이다.
당업자가 이해할 것인 바와 같이, 선택된 선택 라인, 예, 105-1, ..., 105-N에 결합된 셀의 서브세트(subsets)는 하나의 그룹으로서 함께 프로그램될 수 있고/있거나 감지(sense)될 수 있다. 프로그램 동작, 예를 들어, 기록(write) 동작은 선택된 셀의 임계 전압(Vt)을 바람직한 프로그램 상태에 상응하는 바람직한 프로그램 전압 수준으로 증가시키기 위하여, 많은 프로그램 펄스, 예를 들어, 16V-20V를 선택된 선택 라인에 인가하는 단계를 포함한다.
판독 또는 프로그램 검증(verify) 동작과 같은 감지 동작은, 선택된 셀의 상태를 결정하기 위하여 선택된 셀에 결합된 감지 라인의 전압 및/또는 전류 변화를 감지하는 단계를 포함할 수 있다. 본 발명의 하나 이상의 실시예에서, 감지 동작은 메모리 셀의 세트의 각 셀에 저장되는 전하를 결정하기 위하여 사용될 수 있는 바, 전하는 프로그램된 상태에 상응하고, 프로그램된 상태는 비트의 분수를 나타낸다. 감지 동작은 선택된 메모리 셀에 연관된 소스 라인, 예를 들어 소스 라인(123),에 대한 바이어스 전압 위의 전압에서 선택된 메모리 셀에 연관된 감지 라인, 예를 들어 감지 라인(107-1),을 바이어스하는 단계를 포함할 수 있다. 감지 동작은, 선택된 셀이 도전(conduct)하기 시작할 때 방전(discharge)이 뒤따르는, 감지 라인(107-1)을 프리차지(precharging)하는 단계, 및 상기 방전을 감지하는 단계를 교대로(alternatively) 포함할 수 있다.
선택된 셀의 상태를 감지하는 단계는, 선택되지 않은 셀의 임계 전압에 독립적인 도전 상태에서 선택되지 않은 셀을 위치(place)시키기에 충분한 전압에서 스트링의 선택되지 않은 셀을 바이어스 하면서, 선택된 선택 라인에 감지 전압을 인가하는 단계를 포함할 수 있다. 판독 및/또는 검증(verified)될 선택된 셀에 상응하는 감지 라인은, 선택된 셀이 선택된 선택 라인에 인가되는 특정 감지 전압에 반응하여 도전되는지를 결정하기 위해 감지될 수 있다. 예를 들어, 선택된 셀의 상태는 감지 라인 전류가 특정 상태에 연관된 특정 기준(reference) 전류에 도달하는 선택 라인 전류에 의해 결정될 수 있다. 특정 기준 전류에 도달하는 단계는, 감지 라인 전류가 특정 전하(예, 프로그램된 상태)에 대하여 감지 증폭기를 작동시킬(trip) 때 결정될 수 있다.
당업자가 이해할 바와 같이, 낸드 스트링에서 선택된 메모리 셀위에서 수행되는 감지 동작에서, 스트링의 선택되지 않은 메모리 셀은 도전 상태에 있도록 바이어스된다. 이러한 감지 동작에서, 선택된 셀에 저장되는 데이터는 스트링에 상응하는 감지 라인상에서 감지되는 전류 및/또는 전압에 기반될 수 있다. 예를 들어, 선택된 셀에 저장되는 데이터는, 감지 라인 전류가 소정량에 의해 변하는지 또는 주어진 지속 시간에서 소정 수준에 도달하는지 여부에 기반될 수 있다.
선택된 셀이 도전 상태에 있을 때, 전류는 스트링의 일단(one end)의 소스 라인 접촉과 스트링의 타단(the other end)의 감지 라인 접촉 사이를 흐른다. 이와 같이, 선택된 셀을 감지하는데 연관된 전류는 스트링의 다른 셀, 셀 스택(stacks) 사이의 분산된(diffused) 영역, 및 선택 트랜지스터의 각각을 통하여 이송된다.
본 발명의 하나 이상의 실시예에서, 메모리 셀은 비트의 정수 또는 분수 어느 하나에 상응하는 많은 임계 전압 수준의 하나로 프로그램될 수 있다. 셀은 12개의 프로그램된 상태의 하나로 프로그램됨으로써 3½ 비트를 저장할 수 있다. 비트의 정수를 출력하기 위하여, 3½ 비트를 저장하는 셀의 짝수로부터의 데이터는 제어 회로, 예를 들어 분수 비트 제어기에서 논리(logic)에 의해 결합될 수 있다. 예를 들어, 도 1에 도시된 실시예에서, 감지 라인(107-1 및 107-2)에 결합된 ½ 분수 나머지(remainder) (예, 3½ 비트)를 갖는 각각 많은 비트를 저장하는 셀(111-1 및 112-1)로부터의 데이터는 비트의 정수를 출력하도록 제어 회로에서 논리에 의해 결합될 수 있다.
도 2는 본 발명의 하나 이상의 실시예에 따른 메모리 장치에 대한 많은 임계 전압 수준의 다이어그램(200)을 도시한다. 표시된 바와 같이, 수직 축은 증가하는 전압 수준을 나타낸다. 본 발명의 실시예는 메모리 장치에 대한 특정 전압 범위에 한정되지 않는다. 예를 들어, 몇몇 플래시 메모리 장치는 -2V 내지 +3V의 전압 범위에서 동작한다.
행(210)은 메모리 셀에 저장될 수 있는 비트의 수를 가리킨다. 행(220)은 메모리 셀이 프로그램될 수 있는 프로그램된 상태의 수를 나타낸다. 1 비트 셀은 전하, 예를 들어 임계 전압 수준(Vt)으로서 두 개의 상이한 프로그램된 상태의 하나를 저장할 수 있다. 1½ 비트 셀은 3개의 프로그램된 상태를 저장할 수 있고; 2 비트 셀은 4개의 프로그램된 상태를 저장할 수 있다. 당업자가 이해할 바와 같이, 몇몇 메모리 장치에 대하여, 특정 메모리 셀상에 저장가능한 최하위 프로그램된 상태는 소거(erased) 상태라고 불리울 수 있는데, 셀이 소거 동작 이후에 최하위 상태에 있을 수 있기 때문이다. 하나 이상의 프로그래밍하는 동작은 셀을 더 높은 Vt 수준으로 충전하기 위하여 수행될 수 있다. 따라서, 도 2의 도시에서, 각 열에 대한 최하위 프로그램된 상태는 수평 라인 아래에 나타나는데, 이것은 소거 상태일 수 있다는 것을 가리키는 것이다. 그러나, 이 도시는 일 예일 뿐이고 본 발명의 실시예는 소거 상태로서 취하위 상태를 갖는 셀에 한정되지 않는다.
도 2의 도시는, 셀 내의 저장가능한 프로그램된 상태의 수가 정수치, 예를 들어 2, 3, 4, ..., 16, 만큼 증가함에 따라, 상응하는 비트의 수도 분수치, 예를 들어 1, 1½, 2, 2¼, 2½, ..., 4, 만큼 증가하는 것을 나타낸다. 예로서, 1 비트 셀에 대한 열은 이진에서 0 및 1로서 나타낼 수 있는 두 개의 프로그램된 상태를 포함할 수 있다. 2 비트 셀에 대한 열은 이진에서 00, 01, 10 및 11로 표시낼 수 있는 4개의 프로그램된 상태를 포함한다. 그러나, 행(230)은 이진에 직접 상응하지 않는 2½ 비트 셀에 대하여 6개의 프로그램된 상태를 포함한다. 즉, 단일 2½ 비트 셀에 저장된 데이터의 이진 수적(numerical) 표시가 없다. 그러나, 비트의 분수를 개별적으로 저장하는 셀의 세트에 저장되는 이진 데이터는 수적으로 표시될 수 있다. 도 3B와 관련하여 아래에서 더 상세히 설명되는 바와 같이, 비트의 분수를 저장하는 셀은 적어도 저장된 비트의 수의 분수 나머지의 역수(inverse)에 상응하는 셀의 수와 결합되어 세트로서 판독될 수 있다. 예를 들어, 두 개의 2½ 비트 셀은 함께 판독되어 5비트 출력을 생성할 수 있고, 4개의 3¼ 비트 셀은 함께 판독되어 13 비트 출력을 생성할 수 있다. 이의 이진값에 상응하는 소정 분수 비트 셀에 저장된 예를 들어 임계 전압 수준으로 표시되는 이의 프로그램된 상태의 고려사항(consideration)이 도 3B와 관련하여 아래에서 논의된다.
도 2에 도시된 바와 같이, 임계 전압 분포(distribution), 즉, 소정 Vt 수준내 전압의 범위는 주어진 전압 범위를 갖는 소정 메모리 셀에 저장된 Vt 수준의 증가되는 수에 대해 비례하여 감소할 수 있다. 예를 들어, 셀이 0V-1V 전압 범위를 갖고 2개의 프로그램된 상태를 저장할 수 있다면, 더 큰 범위의 전압이 각 Vt 수준(예, 0.5V)에 대하여 사용가능할 수 있다. 그러나, 동일한 셀이 10개의 프로그램된 상태를 저장한다면, 더 작은 범위의 전압이 각 Vt 수준(예, 0.1V)에 대하여 사용가능할 수 있다. 다단계 셀에 대한 전압 범위의 부분(portions)은, 다른 이유중에서도 정확한 프로그래밍 및/또는 감지의 정확성을 향상시키기 위하여 Vt 수준 사이의 차(differentials)에 대하여 보류(reserved)될 수 있다. 당업자가 이해할 바와 같이, 본원에 주어진 예시는 본 발명의 측면을 강조하기 위하여 상세함의 감소된 수준을 갖는다.
특정 셀에 대한 프로그램된 상태(예, Vt 수준)는 번호를 매길 수 있다. 예를 들어, 2½ 비트 셀에 대한 6개의 프로그램된 상태는 행(230)에 도시된 바와 같이 0, 1, 2, 3, 4 및 5로 번호를 매길 수 있다. 이러한 번호 매긴 프로그램된 상태는 도 3B와 관련하여 아래에서 더 상세히 설명될 바와 같이 데이터 상태의 디지트를 나타낼 수 있다. 또한, 특정 프로그램된 상태에 상응하는 전하, 예를 들어 전압 수준,은 프로그램된 상태에 대하여 정규화(normalized) 값으로 불리울 수 있다. 특정 메모리 셀은 전압의 주어진 범위내에서 전하를 저장할 수 있다. 메모리 장치는 특정 셀에 대한 전압 범위로부터의 특정 메모리 셀에 저장가능한 프로그램된 상태의 수에 의해 프로그램된 상태를 정규화할 수 있다.
도 3A는 몇몇 이전 접근법에 따른 두 개의 2 비트 메모리 셀의 세트에 대한 데이터 변환표(301)를 도시한다. 표(301)는 0V-1V의 범위를 갖는 두 개의 2 비트 메모리 셀의 세트에 대한 데이터 변환표를 도시한다. 행(311)은 데이터 상태를 셀의 세트에 저장되는 전하로 표시될 수 있는 이진 값의 형태로 나타낸다. 이 경우에, 행(311)은 이러한 두 개의 메모리 셀이 16개의 데이터 상태를 표시하는데 사용될 수 있다는 것은 나타낸다. 도 2와 관련하여 위에서 주목된 바와 같이, 각 2 비트 셀은 4개의 프로그램된 상태의 하나를 저장할 수 있다. 행(321)은 행(311)의 이진 값에 대한 십진 등가치(equivalent)를 표시한다. 행(331)은 십진 및 이진 값에 대한 4진수 등가치(equivalent)를 표시한다. 표(301)은 4진수 등가치를 포함하는데, 각 셀이 4개의 프로그램된 상태의 하나를 저장할 수 있는 2 비트 셀이기 때문이다. 도 4B와 관련하여 아래에서 설명되는 바와 같이, 세트의 각 셀이 저장할 수 있는 프로그램된 상태의 수에 상응하는 진수로 표시되는 데이터는 데이터를 표시하기 위해 하나 이상의 셀상에 전하를 저장하는데 유용할 수 있다. 세트의 특정 셀에 대하여 프로그램된 상태의 수에 상응하는 진수로 표시되는 데이터는 데이터를 출력하기 위해 하나 이상의 셀을 감지할 때 또한 유용할 수 있다.
행(341)은 두 개의 셀 세트에 저장될 이진 값(데이터 상태를 표시하는)에 상응하는 십진수로 표시되는 바와 같은 프로그램된 상태를 나타낸다. 독자가 이해할 바와 같이, 프로그램된 상태는 행(331)에서 세트의 두 개의 셀 사이의 4진수의 스플리트(split)을 나타낸다. 행(341)의 셀 십진수는 도 2와 관련하여 역시 상술된 바와 같이, 각 셀이 프로그램될 수 있는 번호를 매긴 프로그램된 상태(예, Vt 수준)를 나타낼 수 있다.
행(351)은 행(311)에서 이진 값을 표시하기 위해 세트의 각 셀이 프로그램될 수 있는 전압을 나타낸다. 위에서 주목된 바와 같이, 표(301) 각각에 대하여 예시로 사용된 세트의 메모리 셀은 0V-1V의 전압 범위를 갖는다. 각 셀은 4개의 프로그램된 상태를 갖고 상태당 전압 증분(increment)은 .025이다. 따라서, 프로그램된 상태(0)은 0V에 상응하고, 프로그램된 상태(1)은 0.25V에, 프로그램된 상태(2)는 0.50V에, 프로그램된 상태(3)는 0.75V 에 상응한다. 전압 범위 및 리스트된 이러한 범위의 분포는 예시이다. 당업자는 상이한 전압 범위를 사용할 수 있거나, 범위를 상이하게 분포할 수 있다. 독자가 이해할 바와 같이, 각 셀에 저장된 전하, 예를 들어 전압,은 프로그램된 상태에 직접적으로 상응하고, 이는 데이터 상태에 직접적으로 상응한다. 즉, 비트의 정수를 표시하는 프로그램된 상태에 상응하는 전하를 저장하는 메모리 셀은 의미있는 데이터를 출력하기 위해 개별적으로 감지될 수 있다. 대조적으로, 비트의 분수를 표시하는 프로그램된 상태에 상응하는 전하를 저장하는 메모리 셀은, 도 3B와 관련하여 아래에 설명될 바와 같이, 의미있는 데이터를 출력하기 위하여 세트에서 감지되어야 한다.
도 3B는 본 발명의 하나 이상의 실시예에 따른 두 개의 2.5 비트 메모리 셀의 세트에 대한 데이터 변환표(302)를 도시한다. 표(302)는 0V-1V의 범위를 갖는 2.5 비트 메모리 셀에 대한 데이터 변환 표를 도시한다. 행(312)은 데이터 상태를 셀의 세트에 저장되는 전하에 상응할 수 있는 이진 값의 형태로 표시한다. 이 경우에, 행(312)은 이러한 두 개의 메모리 셀이 아래에 설명된 바와 같이 4개의 여분의(extra) 결합을 갖는 32개의 데이터 상태를 표시하는데 사용될 수 있다는 것을 나타낸다. 두 개의 2½ 비트 셀의 세트는 5 비트를 저장할 수 있다. 행(322)는 행(311)의 이진 값에 대한 십진 등가치를 표시한다. 행(332)은 십진 및 이진 값에 대한 6진수 등가치를 표시한다. 표(302)는 6진수 등가치를 포함하는데, 이는 각 셀이 6개의 프로그램된 상태의 하나를 저장할 수 있는 2½ 비트 셀이기 때문이다.
행(342)는 각 셀에 대하여 번호를 매긴 프로그램된 상태를 표시한다. 독자가 이해할 바와 같이, 프로그램된 상태는 행(332)에서 세트의 두 개의 셀 사이의 6진수의 스플리트를 표시한다. 행(342)에서 각각의 번호를 매긴 프로그램된 상태는 행(332)의 6진수로 표시되는 데이터 상태의 디지트를 나타낸다.
행(352)은 세트의 각 셀이 프로그램될 수 있는 전하, 예를 들어 전압,이 행(342)의 프로그램된 상태에 상응하다는 것을 가리킨다. 위에서 주목된 바와 같이, 표(302)에 대한 예시로 사용되는 세트의 메모리 셀은 0V-1V의 전압 범위를 갖는다. 각 셀은 6개의 프로그램된 상태를 갖기 때문에 상태당 전압 증분은 이다. 따라서, 프로그램된 상태(0)은 0V에 상응하고, 프로그램된 상태(1)은 0.17에, 프로그램된 상태 2는 0.34V에, 프로그램된 상태(3)은 0.51V에, 프로그램된 상태(4)는 0.68V에, 프로그램된 상태(5)는 0.85V에 상응한다. 전압 범위 및 리스트된 이러한 범위의 분포는 예시이다. 당업자는 상이한 전압 범위를 사용할 수 있거나, 범위를 상이하게 분포할 수 있다.
독자가 이해할 바와 같이, 두 개의 2½ 비트 셀의 세트는 상이한 5 비트 결합으로 표시되는 각 데이터 상태를 갖는 각 가능한 데이터 상태를 저장하는데 필요한 것보다 4개 더 많은 프로그램된 상태의 결합을 야기한다. 이러한 결합은 표(302) 362에서 '무효(invalid)'로 표시된다. 즉, 프로그램된 상태의 결합(362)은 무효 결합인데, 그들이 데이터 상태에 상응하지 않기 때문이다. 도 4B와 관련하여 아래에서 설명되는 바와 같이, 오류 수정 코드(error correction code, ECC)는 프로그램된 상태의 무효 결합(362)으로 프로그램되는 셀의 세트에 연관되는 오류를 수정하는데 사용될 수 있다. 당업자가 이해할 바와 같이, 표(302)에 비교가능한 표는 2½ 이외의 비트의 분수를 저장하는 각 셀을 갖는 메모리 셀의 세트에 대하여 생성될 수 있다.
도 4A는 본 발명의 하나 이상의 실시예에 따라 동작되는 적어도 하나의 메모리 장치(420)를 갖는 전자 메모리 시스템의 기능적 블록도이다. 메모리 시스템(400)은 다단계 비휘발성 셀의 메모리 어레이(430)를 포함하는 비휘발성 메모리 장치(420)에 결합되는 프로세서(410)를 포함한다. 메모리 시스템(400)은 별개 집적 회로를 포함할 수 있거나, 프로세서(410) 및 메모리 장치(420) 모두가 동일한 집적 회로상에 있을 수 있다. 프로세서(410)는 마이크로프로세서일 수 있거나 어플리케이션-특정 집적 회로(application-specific integrated circuit, ASIC)와 같은 회로를 제어하는 다른 유형일 수 있다.
메모리 장치(420)는 도 1에 도시된 동일한 것과 같은, 플로팅 게이트 플래시 메모리 셀일 수 있는 비휘발성 메모리 셀(430)의 어레이를 포함한다.
도 4A의 실시예는 I/O 회로(460)를 통해 I/O 접속(462) 위에 제공되는 어드레스 신호를 래치하는 어드레스 회로(440)를 포함한다. 어드레스 신호는 메모리 어레이(430)에 엑세스하기 위해 행 디코더(decorder, 444) 및 행 디코더(646)에 의해 수신되고 디코드된다. 당업자는 어드레스 입력 접속의 수는 메모리 어레이(430)의 밀도 및 아키텍처에 따라 다르다는 것 및, 어드레스의 수는 메모리 셀의 증가되는 수 및 메모리 블록 및 어레이의 증가된 수 모두와 함께 증가된다는 것을 이해할 것이다.
비휘발성 셀의 메모리 어레이(430)는 본원에 설명된 실시예에 따른 Vt 수준, 감지 전압 및 비트의 수의 상이한 수를 갖는 비휘발성 다단계 메모리 셀을 포함할 수 있다. 메모리 장치(420)는 이 실시예에서 판독될 수 있고/회로(450)를 래치(latch)할 수 있는 감지/버퍼(buffer) 회로를 사용하여 메모리 어레이 열에서 전압 및/또는 전류 변화를 감지함으로써 메모리 어레이(430)에서 데이터를 감지한다. 판독/래치 회로(450)은 메모리 어레이(430)로부터 데이터의 페이지를 판독 및 래치할 수 있다. I/O 회로(460)는 프로세서(410) 및 제어 회로(470)와 I/O 접속(462) 위의 양방향(bi-directional) 데이터 통신을 위하여 포함된다. 기록 회로(455)는 데이터를 메모리 어레이(430)에 기록하기 위해 포함된다.
제어 회로(470)는 프로세서(410)로부터의 제어 접속(472)에 의해 제공되는 신호를 디코드하고, I/O 회로(460)와 양방향 통신에 있다. 이 신호는 칩(chip) 신호, 기록가능(write enable) 신호, 및 데이터 감지, 데이터 기록 및 데이터 소거 동작을 포함하는 메모리 어레이(430)상 동작을 제어하는데 사용되는 어드레스 래치 신호를 포함할 수 있다. 하나 이상의 실시예에서, 제어 회로(470)는 프로세서(410)로부터 지시를 수행하여 본 발명의 실시예를 따른 동작을 수행하는데 책임이 있다. 제어 회로(470)은 상태 머신(state machine), 순서기(sequencer), 또는 제어기의 몇몇 다른 유형일 수 있다. 당업자는 추가적 회로 및 제어 신호가 제공될 수 있다는 것 및 도 4A의 메모리 장치의 상세함은 도시의 용이를 촉진하기 위하여 축소된 것을 이해할 것이다. 제어 회로(470)는 본 발명의 하나 이상의 실시예를 수행하는데 사용될 수 있는 분수 비트 제어기(480)를 포함한다. 선택적으로(optionally), 분수 비트 제어기(480)는 제어 회로(470)로부터 분리된 요소(component)일 수 있다.
도 4B는 본 발명의 하나 이상의 실시예에 따른 분수 비트 제어기(480)의 기능적 블록도이다. 분수 비트 제어기(480)은 도 4A와 관련하여 상술된 바와 같이 프로세서(410) 및 I/O 회로(460)과 양방향 통신에 있는 것으로 도시된다. 독자가 이해할 바와 같이, 분수 비트 제어기(480)는 제어 회로, 예를 들어 도 4A의 제어 회로(470)의 부분일 수 있거나, 메모리 장치의 독립적 요소일 수 있다.
분수 비트 제어기(480)는 메모리 셀에 저장될 다른 데이터에 오류 수정 정보를 첨가하기 위한 외부 오류 수정 코드(ECC) 인코더(encoder, 481)를 포함할 수 있다. 비트의 정수를 출력하기 위해 세트에서 함께 판독되는 메모리 셀에서 비트의 분수를 저장하는 것은 비트의 정수내 값의 모든 결합을 출력하기 위해 필요한 것보다 더 많은 비트 결합을 야기할 수 있다. 예시가 도 3B 및 요소(element, 362)와 관련하여 위에서 설명된다. 요소(362)에서 표시된 이러한 비트 결합은 '무효 결합(invalid combinations)'으로 불리울 수 있다. 독자가 이해할 바와 같이, 도 3B에 도시된 특정 무효 결합은 예시이다. 다른 실시예에서, 도 3B에 나타난 무효 결합(362)은 데이터를 나타낼 수 있는 반면, 도 3B에서 데이터를 표시하는 특정 유효 결합은 무효 결합으로 나타낼 수 있다.
외부 ECC 인코더(481)은 오류 수정 정보를 표시하는 적어도 하나의 데이터 상태를 가리키는 분수 비트 패커(packer)에 신호를 보낼 수 있다. 외부 ECC 인코더(481)는 당업자가 이해할 바와 같이 오류 수정 정보, 예를 들어 블록 코드(block code),에 따라 또한 인코드할 수 있다. 외부 ECC 인코더(481)은 메모리 셀의 세트에 대한 프로그램된 상태 결합이 무효 결합을 야기하는 것을 가리키는 논리를 포함할 수 있다. 외부 ECC 인코더(481)상 논리는 오류를 더 잘 수정하기 위해 무효 결합의 이러한 표시를 사용할 수 있다. 또한, 어떤 프로그램된 상태의 결합이 무효 결합을 야기하는지의 선택(choice)은 오류 수정을 촉진하기 위해 변경될 수 있다. 외부 ECC 인코더(481)은 오류 수정 정보로 인코드될 데이터를 수신하기 위한 프로세서(410)와 인터페이스를 가질 수 있다. 외부 ECC 인코더(481)는, 데이터가 ECC 정보로 인코드된 후에 전송하기 위해 분수 비트 패커(483)와 인터페이스를 또한 가질 수 있다.
분수 비트 제어기(480)는 외부 ECC 인코더(481)로부터 및 내부 ECC 인코더(485)로의 인터페이스를 갖는 분수 비트 패커(483)을 포함할 수 있다. 몇몇 실시예에서, 분수 비트 패커(483)는 비트의 정수를 표시하는 적어도 하나의 데이터 상태를 나타내는 적어도 하나의 신호를 수신할 수 있고, 비트의 분수를 표시하는 프로그램된 각 상태의 수를 나타내는 적어도 하나의 신호를 보낼 수 있는데, 여기서 프로그램된 상태의 수는 N진수로 표시되는 데이터 상태의 디지트를 나타내는 바, 여기서 N은 정수로 올림한 2B 와 동일하고, 여기서 B는 비트의 분수와 동일하다.
분수 비트 패커(483)는 셀의 세트에 저장되는 비트의 수를 표시하는 데이터 상태로 이진 데이터를 파싱(parse)할 수 있다. 메모리 셀의 세트는, 세트의 각 셀에 저장되는 비트가 결합될 때, 비트의 정수를 생성하는데 필요한 셀의 수에 기반하여 선택될 수 있다. 예를 들어, '00100100100000010000100101'과 같은 이진 데이터의 특정 스트링은 4개의 3¼ 비트 셀의 세트 (즉, 세트의 각 셀이 10개의 프로그램된 상태의 하나로 프로그램될 수 있는 곳)에 저장될 수 있다. 분수 비트 패커(483)상 논리는 데이터를 '0010010010000_0010000100101'과 같은 13 비트의 두 개 그룹으로 표시되는 두 개의 데이터 상태로 나눌 수 있고, 여기서 두 데이터 상태의 각각은 213 (8192)개 가능한 데이터 상태의 하나이고, 여기서 각 데이터 상태는 4개의 3¼ 비트 셀의 세트에 저장될 수 있다 (즉, 데이터 상태는 셀의 세트에 저장될 수 있는 프로그램된 상태의 104 (10,000)개 가능한 결합의 각자 하나로 고유하게(uniquely) 표시될 수 있음).
분수 비트 패커(483)는 N진수에 대한 이진으로부터 각 데이터 상태를 또한 변환시킬 수 있는데, 여기서 N은 정수로 올림한 2B 와 동일하고, B는 특정 셀에 저장되는 비트의 수와 동일하다. 상기 예시를 계속하면, 13 비트의 그룹에 의한 각 데이터 상태의 표시는 (이진 표기(notation))로부터) 진수 (2^3¼ = 9.51, 정수 10으로 올림) 표기로 전환될 수 있다. 이 예시에서, 이진 디지트(비트) '0010010010000_0010000100101'로 표시되는 데이터는 10진수 표기에서 디지트 '1168_1061'로 나타낼 수 있다.
또한, 분수 비트 패커(483)는 N, 예를 들어 이 계속적 예시에서 10으로 N진수의 각 디지트를 나눌 수 있다. 이 계속적 예시에서 이 나뉨 동작의 결과는 0.1, 0.1, 0.6, 0.8_0.1, 0, 0.6, 0.1이다. N으로 디지트를 나누는 것은 메모리 셀로 프로그래밍하는 것에 대한 값을 준비할 수 있다. 이 공정은 데이터 상태를 프로그램된 상태로 패킹(packing)하는 것으로 설명될 수 있다. 따라서, 두 개의 데이터 상태의 각각이 상술한 알고리즘(algorithm)에 따라 결정되는 기저 표기에서 4 디지트, 즉, 프로그램된 상태로 표시될 수 있기 때문에, 분수 비트 패커는 4개의 셀의 세트를 선택할 수 있고, 상기 세트는 각 데이터 상태를 저장하는데 사용된다. 독자가 이해할 바와 같이, 분수 비트 패커(483)의 기능성은 비트의 수의 이 예시에 한정되지 않는다. 프로그램된 상태의 각각을 메모리 셀이 프로그램될 수 있는 전하로 연관시키는 공정은 기록 스케일러(scaler)(487)와 관련하여 아래에 설명된다.
계속적 예시의 외부에서, 이제 일반적으로 비트 패커(483)에 관하여, 비트 패커(483)는 상술한 패킹 동작을 수행하기 위해 많은 분할된 회로(divide-by circuit)를 포함할 수 있다. 예를 들어, 비트 패커(483)는 5로 분할된 회로, 6으로 분할된 회로, 7로 분할된 회로, 및 ¼ 분수 나머지를 갖는 비트를 저장하는 메모리 셀로 사용하기 위한 감산기(subtractor) 회로를 포함할 수 있다. 2¼ 비트 셀은 5개 프로그램된 상태의 하나를 저장할 수 있고, 2½ 비트 셀은 6개의 프로그램된 상태의 하나를 저장할 수 있고, 2¾ 비트 셀은 7개 프로그램된 상태의 하나를 저장할 수 있다. 따라서, 상술한 분할된 회로는 ¼ 비트 분수 나머지를 저장하는 셀에 대하여 프로그램된 상태로 데이터 상태를 패킹하기 위하여 비트 패커(483)에 의해 사용될 수 있다. 비록 3¼ 비트 셀이 프로그램된 상태의 더 많은 수의 하나로 프로그램될 수 있지만, 각각에 대한 프로그램된 상태의 수는 2¼ 비트 셀의 수의 정확히 2배이다. 이 경향은 모든 ¼ 비트 셀, 예를 들어, 4¼, 5¼ 등에 대하여 계속한다. 따라서, 동일한 회로가 당업자가 이해할 바와 같은 적절한 변형을 갖는 임의의 이러한 장치에 대하여 사용될 수 있다.
유사하게, 비트 패커(483)는 9로 분할된 회로, 10으로 분할된 회로, 11로 분할된 회로, 12로 분할된 회로, 13으로 분할된 회로, 14로 분할된 회로, 15로 분할된 회로, 및 1/8 분수 나머지를 갖는 비트를 저장하는 메모리 셀로 사용하기 위한 감산기 회로를 포함할 수 있다. 분할된 회로의 수는 특정 셀에 대하여 프로그램된 상태로 데이터 상태를 패킹하기 위해 비트 패커(483)에 의해 사용될 수 있다.
분수 비트 패커(483)는 비트의 상이한 수를 저장하는 메모리 셀에 저장되는 데이터로 또한 동작할 수 있다. 예를 들어, 사용되는 세트에서 셀의 수는 셀에 저장될 수 있는 비트의 분수 나머지에 대한 최소 공통 분모(least common denominator)에 기반하여 또한 선택될 수 있다. 예를 들어, 메모리 장치는 3 비트, 3¼ 비트, 3½ 비트 및 3¾ 비트를 저장하는 셀을 포함할 수 있다. 이 예시에서, 4개의 셀의 세트 크기는 4개에 대한 최소 공통 분모에 기반하여 선택될 수 있다. 또한, 세트 크기는 비트의 분수의 분수 나머지의 분모와 동등할 수 있다.4개의 세트 크기는, 두 개의 셀의 세트 크기는 그렇지 않으면 결합될 때 비트의 정수를 얻기에 충분할 수 있을지라도, 3½ 비트를 포함하는 셀에 데이터를 저장할 때 사용될 수 있다. 본원에 사용된 바와 같이, '분수 나머지'는 임의의 정수를 차감(discount)한, 메모리 셀에 저장되는 비트의 분수 값을 뜻한다. 예를 들어, 3¼ 비트를 저장한 셀은 분수 나머지 ¼을 갖는다. 따라서, 메모리 셀의 세트는 C셀을 포함할 수 있는데, C는 셀에 저장되는 비트의 수의 분수 나머지의 역과 같다.
분수 비트 제어기(480)는 분수 비트 패커(483)로부터의 인터페이스 및 기록 스케일러(487)로의 인터페이스를 갖는 내부 ECC 인코더(485)를 포함할 수 있다. 내부 ECC 인코더는 오류 수정 정보를 표시하는 적어도 하나의 프로그램된 상태를 가리키는 기록 스케일러(487)로 신호를 보낼 수 있다. 비트의 정수를 출력하기 위해 세트로서 함께 판독되는 메모리 셀에서 비트의 분수를 저장하는 것은, 비트의 정수내에서 모든 값의 결합을 출력하는데 필요한 것보다 패킹된 프로그램된 상태의 더 많은 결합을 야기할 수 있다. 도 3B 및 요소(362)에 관한 예시가 위에서 설명된다. 내부 ECC 인코더(485)는 오류 수정 정보, 예를 들어 길쌈 코드(convolutional code),를 당업자가 이해할 바와 같이 예를 들어 사용자 데이터를 저장하지 않는 셀의 블록에서 인코드할 수 있다. 외부 ECC 인코더(481)에 관하여 상술한 바와 같이, 내부 ECC 인코더(485)는 오류를 더 잘 수정하기 위하여 프로그램된 상태의 무효 결합의 지시를 사용할 수 있다. 내부 ECC 인코더(481)상 논리는 프로그램된 상태의 유효 결합을 사용하여 정보를 인코드하도록 기능할 수 있고, 프로그램된 상태의 무효 결합을 사용하여 정보를 인코딩하는 것을 피할 수 있다.
분수 비트 제어기(480)는 내부 ECC 인코더(485)로부터의 인터페이스를 갖는 기록 스케일러(487)를 포함할 수 있다. 몇몇 실시예에서, 기록 스케일러(487)는 셀의 세트가 프로그램될, 프로그램된 상태의 수를 가리키는 적어도 하나의 신호를 수신할 수 있고, 세트의 셀에 저장될, 셀의 세트에 대한 전압 범위로부터의 N에 의해 정규화되는 많은 전하를 가리키는 적어도 하나의 신호를 보낼 수 있다 (N은 위에서 정의됨).
기록 스케일러(487)은 메모리 셀에서 데이터를 저장, 예를 들어 프로그래밍,하기 위한 I/O 회로(460)을 갖는 인터페이스를 또한 가질 수 있다. 기록 스케일러(487)는 특정 셀에 대한 전압 범위로부터 N에 의해 정규화된 전하로서 분수 비트 패커(483)에 의해 변환된 수로 표시되는 데이터를 분포할 수 있다. 기록 스케일러(487)는 프로그램된 상태를 셀에 대한 전압 범위로 축소(scaling)함으로써 특정 프로그램된 상태에 상응하는 셀상에 전하를 저장하는데 사용될 수 있다. 본 발명의 하나 이상의 실시예에 따라, 특정 메모리 장치는 임의의 전압 범위를 가질 수 있다. 몇몇 플래시 메모리 셀은 -2V 내지 +3V 전압 범위에서 동작한다. 예시를 목적으로, 0V 내지 +1V의 전압 범위가 사용될 것이다. 위에서 정의된 바와 같이, N은 정수로 올림한 2B 와 동일한 진수이고 여기서 B는 특정 셀에 저장되는 비트의 수와 동일하다.
분수 비트 패커(483)에 관해 위에서 시작된 예시를 계속하여, 기록 스케일러(487)는 수 '1168_1061'로 표현되는 데이터를 10으로 정규화된 0V 내지 +1V의 예시 전압 범위를 가로질러 분포할 수 있다. 즉, 3¼ 비트를 저장하는 셀은 예를 들어 임계 전압 수준으로 표현되는 10개의 프로그램된 상태를 가질 수 있다. 이 예시에서, 1V/10 상태 = .1V/상태이다. 전압 수준은 그 후에 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 및 0.9 볼트일 수 있다. 이 예시에서, 데이터 스트링은 언더스코어(underscore, _)로 가리키는 4개 셀의 세트에서 '0.1, 0.1, 0.6, 0.8_0.1, 0, 0.6, 0.1'로 분포될 것이다. 즉, 그룹의 각 디지트는 각 셀의 10개의 임계 전압 수준의 하나로 표시될 수 있다. 따라서, '1168'로 표시되는 데이터의 그룹은 4개의 셀로 표시될 수 있는데, 각각은 셀의 하나를 0.1V의 임계 전압 수준으로, 4개의 셀의 두번째를 0.1V 임계 전압 수준으로, 4개의 셀의 세번째를 0.6V의 임계 전압 수준으로, 및 4개의 셀의 네번째를 0.8V의 임계 전압 수준으로 프로그램함으로써와 같이, 3¼ 비트에 상응하는 프로그램된 상태의 수를 저장할 수 있다.
분수 비트 제어기(480)는 판독 스케일러(488)를 포함할 수 있다. 판독 스케일러(488)은 메모리 셀의 세트의 셀의 수에 저장된 전하의 수를 가리키는 적어도 하나의 신호를 수신할 수 있고, 전하의 수에 상응하는 프로그램된 상태의 수를 가리키는 적어도 하나의 신호를 보낼 수 있다.
판독 스케일러(488)는 제어 회로에 의해 제어되는 바와 같이, 감지 회로에 의해 감지되는 신호를 특정 셀이 저장할 수 있는 상태의 수에 따른 정규화된 값으로 변환하는데 사용될 수 있다. 새로운 예로서, OV 내지 1V의 전압 범위를 갖는 각 세트에 대하여 결합된 7 비트에 대하여 각각이 3½ 비트를 저장하는, 두 개의 셀의 두 세트를 고려한다. 각 셀은 12개 임계 전압 수준으로 표시되는 12개의 프로그램된 상태를 저장할 수 있다. 감지 회로는 예를 들어, 0.16V, 0.08V_0.32V, 0.40V의 전압을 감지할 수 있다. 판독 스케일러(488)상 논리는 전하를 정규화된 값으로 변환할 수 있다. 상술한 바와 같이, 값은 N에 의해 정규화될 수 있는데, 이 경우에 예를 들어 프로그램된 상태의 수 12, 정수로 올림된 2^(3½)이다. 따라서, 0.16V, 0.08V, 0.32V, 0.40V의 전압은 십진수 2, 1, 4, 5로 표시되는 프로그램 상태로 변환될 수 있다. 판독 스케일러(488)는 감지, 예를 들어 메모리 셀로부터 데이터를 판독하기 위한 I/O 회로를 갖는 인터페이스를 가질 수 있다. 판독 스케일러(488)은 내부 ECC 디코더(486)에 대한 인터페이스를 또한 가질 수 있다.
분수 비트 제어기(480)은 이 도면 및 도 3B와 관련하여 상술된 바와 같이, 데이터 상태의 하나를 표시하는데 사용되지 않는 프로그램 상태로서 저장되는 오류 수정 정보를 디코딩하기 위한 내부 ECC 디코더(486)을 포함할 수 있다. 내부 ECC 디코더(486)는 당업자가 이해할 바와 같이, 예를 들어 길쌈 코드로서 사용하기 위한 오류수정 정보를 디코드할 수 있다. 내부 ECC 디코더(486)는 판독 스케일러(488)로부터 인터페이스 및 분수 비트 언패커(unpacker)(484)로의 인터페이스를 가질 수 있다.
분수 비트 제어기(480)은 분수 비트 언패커(484)를 가질 수 있다. 분수 비트 언패커(484)는 프로그램된 상태의 수를 가리키는 적어도 하나의 신호를 수신할 수 있는데, 여기서 각 프로그램된 상태는 비트의 분수를 표시하고, 각 프로그램된 상태는 N진수로 표현되는 데이터 상태의 디지트를 나타내는데, 여기서 N은 정수로 올린 2B 와 동일하고, 여기서 B는 비트의 분수와 동일하다. 분수 비트 언패커(484)는 비트의 정수를 표시하는 데이터 상태를 가리키는 신호를 또한 보낼 수 있다.
분수 비트 언패커(484)는 프로그램된 상태가 N진수(N은 정수로 올림된 2B 와 동일하고, B는 비트의 분수와 동일함)로 표시되는 데이터 상태의 디지트를 나타내는 알고리즘에 따라 셀의 세트의 프로그램된 상태를 멀티플렉스(multiplex)하는데 사용될 수 있다. 분수 비트 언패커(484)는 세트의 각 셀로부터 정규화된 값을 결합할 수 있고 결합된 정규화된 값을 이진 값으로 변환할 수 있다. 판독 스케일러(488)와 관련하여 시작된 예시를 계속하여, 값 2, 1, 4, 5는 두 그룹으로 결합될 것인데, 이 예시에서, '21_45'를 얻는다. 이 결합된 정규화된 값은 이후에 이진 값으로 변환될 것이다. 상술한 바와 같이, 3½ 비트 셀에 대한 정규화된 값은 12진수에 있고, 분수 비트 언패커(484)에 의해 이진수로 변환될 것이다. 이 예시에서, 그 변환의 결과는 데이터의 7 이진 비트로서 0011001이다. 분수 비트 언패커(484)는 내부 ECC 디코더(486)으로부터 및 외부 ECC 디코더(482)로의 인터페이스를 가질 수 있다.
분수 비트 제어기(480)는 이 도면 및 도 3B와 관련하여 상술한 바와 같이, 데이터 상태를 표시하는데 사용되지 않는 비트 결합으로서 저장되는 오류 수정 정보를 디코딩하기 위한 외부 ECC 디코더(482)를 포함할 수 있다. 외부 ECC 디코더(482)는 당업자가 이해할 바와 같이 블록 코드로서 사용하기 위한 오류 수정 정보를 디코드할 수 있다. 외부 ECC 디코더(482)는 분수 비트 언패커(484)로부터의 인터페이스 및, 다른 동작 중에서 오류 수정 정보 및 데이터를 프로세스하기 위한 프로세서(410)을 갖는 인터페이스를 가질 수 있다.
당업자가 이해할 바와같이, 분수 비트 제어기(480)는 도 4B에 도시된 예시 실시예에 설명된 오류 수정 프로세싱의 모든 요소를 포함하지 않고 본 발명의 다양한 실시예에 따라 동작할 수 있다. 도 4B와 관련하여 본원에 제공되는 설명은 하나의 예시적 실시예를 도시하고, 본 발명에 따라 당업자에 의해 실행될 수 있는 다른 실시예의 한정이 아니다. 예를 들어, 요소 사이의 인터페이스의 상이한 결합 및/또는 정렬이 실행될 수 있다.
도 5는 본 발명의 하나 이상의 실시예에 따른 적어도 하나의 메모리 장치를 갖는 메모리 모듈(500)의 기능적 블록도이다. 메모리 모듈(500)은 메모리 카드로서 도시되지만, 메모리 모듈(500)을 참조로 논의된 개념은 제거가능하거나 휴대가능한 메모리 (예, USB 플래시 드라이브)의 다른 유형에 적용가능하고 본원에 사용된 '메모리 모듈'의 범위안에 속하도록 의도된다. 또한, 하나의 예시 형태 요소가 도 5에 도시되지만, 이러한 개념은 다른 형태 요소에도 또한 적용가능하다.
하나 이상의 실시예에서, 메모리 모듈(500)은 하나 이상의 메모리 장치(510)을 둘러싸는(enclose) 하우징(505)를 포함할 것이지만, 이러한 하우징은 모든 장치 또는 장치 어플리케이션에 필수적인 것은 아니다. 적어도 하나의 메모리 장치(510)는 본원에 설명된 실시예에 따라 프로그램 되고/되거나 판독될 수 있는 비휘발성 다단계 메모리 셀의 어레이를 포함한다. 여기서 현재, 하우징(505)는 호스트 장치와 통신을 위한 하나 이상의 접촉(515)을 포함한다. 호스트 장치의 예시는 디지털 카메라, 디지털 리코딩 및 재생(playback) 장치, PDA, 개인용 컴퓨터, 메모리 카드 리더, 인터페이스 허브(hubs) 등을 포함한다. 하나 이상의 실시예에 대하여, 접촉(515)은 표준화된(standardized) 인터페이스의 형태에 있다. 예를 들어, USB 플래시 드라이브로, 접촉(515)는 USB 유형-A 수형(male) 커넥터의 형태로 있을 수 있다. 하나 이상의 실시예에 대하여, 접촉(515)은 샌디스크 코포레이션에 의해 라이센스된 CompactFlashTM 메모리 카드, 소니 코포레이션에 의해 라이센스된 Memory StickTM, 도시바 코포레이션에 의해 라이센스된 SD Secure DigitalTM 등에서 발견될 수 있는 반-특허(semi-proprietary) 인터페이스 형태에 있을 수 있다. 그러나, 일반적으로, 접촉(515)은 메모리 모듈(500)과 접촉(515)에 대한 호환가능한(compatible) 수용기(receptors)를 갖는 호스트 사이의 출입(passing) 제어, 어드레스 및/또는 데이터 신호에 대한 인터페이스를 제공한다.
메모리 모듈(500)은 하나 이상의 집적 회로 및/또는 별개 부품(components)일 수 있는 추가적 회로(520)를 선택적으로(optionally) 포함할 수 있다. 하나 이상의 실시예에 대하여, 추가적 회로(520)는 다중 메모리 장치(510)를 가로지로는 액세스를 제어하고/제어하거나 외부 호스트와 메모리 장치(510) 사이의 병진(translation) 층을 제공하기 위한 메모리 제어와 같은 제어 회로를 포함할 수 있다. 예를 들어, 접촉(515)의 수와 하나 이상의 메모리 장치(510)에 510개의 접속의 수 사이에 일대일(one-to-one) 대응(correspondence)이 없을 수 있다. 따라서, 메모리 제어기는 메모리 장치(510)의 I/O 접속 (도 5에 도시되지 않음)을 선택적으로(selectively) 결합하여 적절한 시간에 적절한 I/O 접속에서 적절한 신호를 수신하거나 적절한 시간에 적절한 접속(515)에서 적절한 신호를 제공한다. 유사하게, 호스트 및 메모리 모듈(500) 사이의 통신 프로토콜(protocol)은 메모리 장치(510)의 액세스를 위해 필요한 것과 상이할 수 있다. 그 후에, 메모리 제어기는 호스트로부터 수신된 명령(command) 시퀀스를 적절한 명령 시퀀스로 병진할 수 있어 메모리 장치(510)에 대하여 바람직한 액세스를 달성한다. 이러한 병진은 명령 시퀀스에 더하여 신호 전압 수준에서 변화를 더 포함할 수 있다.
추가적 회로(520)는 ASIC에 의해 수행될 수 있는 논리 기능과 같은 메모리 장치(510)의 제어와 관련없는 기능성을 더 포함할 수 있다. 또한, 추가적 회로(520)는 패스워드 보호, 생체인식(biometrics) 등과 같은 메모리 모듈(500)에 판독 또는 기록 액세스를 제한하는 회로를 포함할 수 있다. 추가적 회로(520)는 접촉(515) 대신에 사용될 호스트 장치와 무선 통신을 위한 수단을 포함할 수 있다. 추가 회로(520)는 메모리 모듈(500)의 상태를 표시하는 회로를 포함할 수 있다. 예를 들어, 추가적 회로(520)는 전력(power)이 메모리 모듈(500)에 제공되는지 여부 및, 메모리 모듈(500)이 현재 액세스되는지 여부를 결정하고, 전력이 공급되는 동안은 점멸하지 않는 광(solid light), 액세스되는 동안에는 점멸하는 광과 같은, 그 상태의 표시를 디스플레이하기 위한 기능성을 포함할 수 있다. 추가적 회로(520)은 메모리 모듈(500)내의 전력 필요(requirements) 규제(regulate)를 돕는 분리(decoupling) 커패시터(capacitor)와 같은 수동(passive) 장치를 더 포함할 수 있다.
본 발명은 메모리 셀을 프로그래밍하기 위한 방법, 장치, 모듈 및 시스템을 포함한다. 하나의 방법 실시예는 메모리 셀의 세트에서 비트의 정수를 표시하는 데이터 상태에 상응하는 전하를 저장하는 단계를 포함한다. 방법은 세트의 셀에 전하를 저장하는 단계를 또한 포함하는데, 전하는 프로그램된 상태에 상응하고, 프로그램된 상태는 비트의 분수를 표시하고, 프로그램된 상태는 N진수 (N은 정수로 올림한 2B 와 동일하고, B는 프로그램된 상태로 표시되는 비트의 분수와 동일함)로 표시되는 데이터 상태의 디지트를 나타낸다.
본원에 특정 실시예가 도시되고 설명되었지만, 당업자는 동일한 결과를 달성하도록 계산된 배열(arrangement)이 도시된 특정 실시예에 대하여 대신될 수(substituted) 있다는 것을 이해할 것이다. 본 발명은 본 발명의 하나 이상의 실시예들의 적응(adaptations) 또는 변형(variations)을 포함시키도록(cover) 의도된다. 상기 설명은 예시적(illustrative) 방식(fashion)으로 설명되고 제한적 방식으로 설명되지 않는다는 것이 이해된다. 상기 실시예의 결합, 및 본원에 특정하게 설명되지 않은 다른 실시예는 상기 설명을 검토하면 동업자에게 명확할 것이다. 본 발명의 하나 이상의 실시예의 범위는 상기 구조 및 방법이 사용되는 다른 어플리케이션을 포함한다. 따라서, 본 발명의 하나 이상의 실시예의 범위는 첨부된 청구항을 참조하여, 이러한 청구항에 동등한 전체(full) 범위을 따라 결정되어야 한다.
상기 상세한 설명에서, 본 발명을 간소화(streamlining)할 목적으로 단일 실시예에 몇몇 특징이 함께 그룹화(grouped)된다. 발명의 이 방법은 본 발명의 설명된 실시예가 각 청구항에서 표현적으로 열거된 이상의 더 많은 특징을 사용해아만 한다는 의도를 반영한다고 의도되지 않는다. 오히려, 다음 청구항이 반영하는 바와 가이, 발명적 주제(inventive subject matter)는 단일의 설명된 실시예의 모든 특징보다 적게 있다. 따라서, 다음의 청구항은 자체의 별개 실시예에 기초하는 각 청구항으로 상세한 설명에 혼입된다.
Claims (25)
- 메모리 셀(111-1, ..., 111-N)을 프로그래밍하기 위한, 메모리 장치(420)에 의해 수행되는 방법에 있어서,
메모리 셀(111-1, ..., 111-N)의 세트에서 비트의 정수를 표시하는 데이터 상태(312)에 상응하는 전하를 저장하는 단계; 및
상기 세트의 셀(111-1, ..., 111-N)에 전하(352)를 저장하는 단계를 포함하되, 상기 전하(352)는 프로그램된 상태(342)에 상응하고, 상기 프로그램된 상태(342)는 비트의 분수(210)를 표시하고, 상기 프로그램된 상태(342)는 N진수로 표현되는 상기 데이터 상태(312)의 디지트를 나타내고, 상기 N은 정수로 올림한 2B 와 동일하고, 상기 B는 상기 프로그램된 상태(342)로 표시되는 비트의 분수(210)와 동일한 메모리 셀을 프로그래밍하기 위한 방법. - 청구항 1에 있어서, 상기 세트의 각 셀(111-1, ..., 111-N)에 전하(352)를 저장하는 단계를 포함하되, 상기 세트의 각 셀(111-1, ..., 111-N)에 저장되는 상기 전하(352)에 상응하는 상기 프로그램 상태(342)에 의해 표시되는 비트의 분수(210)의 총계가 상기 비트의 정수와 동일한 메모리 셀을 프로그래밍하기 위한 방법.
- 청구항 1에 있어서, 메모리 셀(111-1, ..., 111-N)의 상기 세트에 전하(352)를 저장하는 단계를 포함하되, 메모리 셀(111-1, ..., 111-N)의 상기 세트는 비트의 분수(210)의 분수 나머지의 분모와 동일한 셀(111-1, ..., 111-N)의 수를 포함하는 메모리 셀을 프로그래밍하기 위한 방법.
- 청구항 1에 있어서, 프로그램된 상태(342)의 무효(362) 결합으로 프로그램된 셀(111-1, ..., 111-N)의 세트에 연관된 오류를 수정하기 위하여 ECC를 사용하는 단계를 포함하는 메모리 셀을 프로그래밍하기 위한 방법.
- 청구항 1에 있어서, 상이한 메모리 셀(111-1, ..., 111-N)의 상이한 비트의 분수(210)에 상응하는 전하(352)를 저장하는 단계를 포함하는 메모리 셀을 프로그래밍하기 위한 방법.
- 청구항 1에 있어서, 상기 프로그램된 상태(342)에 상응하는 상기 세트의 셀(111-1, ..., 111-N)에 상기 전하(352)를 저장하는 단계는 상기 프로그램된 상태(342)를 상기 세트의 셀(111-1, ..., 111-N)에 대한 전압 범위로 스케일링(scaling)하는 단계를 포함하는 메모리 셀을 프로그래밍하기 위한 방법.
- 메모리 셀(111-1, ..., 111-N)을 감지하기 위한, 메모리 장치(420)에 의해 수행되는 방법에 있어서,
메모리 셀(111-1, ..., 111-N)의 세트의 각 셀(111-1, ..., 111-N)에 저장된 전하(352)를 결정하는 단계를 포함하되, 상기 전하(352)는 프로그램된 상태(342)에 상응하고, 상기 프로그램된 상태(342)는 비트의 분수(210)를 표시하고;
프로그램된 상태(342)가 N진수(332)로 표시되는 데이터 상태(312)의 디지트를 나타내는 알고리즘에 따라 셀(111-1, ..., 111-N)의 상기 세트의 상기 프로그램된 상태(342)를 멀티플렉싱하는 단계를 포함하되, 상기 N은 정수로 올림한 2B 와 동일하고, 상기 B는 비트의 분수(210)와 동일하고; 및
상기 데이터 상태(312)를 출력하는 단계를 포함하되, 상기 데이터 상태(312)는 비트의 정수를 표시하고, 상기 데이터 상태(312)는 이진으로 표현되는 N진수를 나타내는 메모리 셀을 감지하기 위한 방법. - 청구항 7에 있어서, 상기 세트의 셀(111-1, ..., 111-N)에서 상기 프로그램된 상태(342)로 표시되는 비트의 분수(210)의 총계가 비트의 정수와 동일하도록 상기 프로그램된 상태(342)를 멀티플렉싱하는 단계를 포함하는 메모리 셀을 감지하기 위한 방법.
- 청구항 7에 있어서, 상기 데이터 상태(312)를 출력하는 단계를 포함하되, 상기 데이터 상태(312)는,
사용자 데이터; 및
오류 수정 정보를 포함하는 그룹으로부터 선택되는 하나를 포함하는 메모리 셀을 감지하기 위한 방법. - 청구항 7에 있어서, 비트의 분수(210)의 분수 나머지의 최소 공통 분모와 동일한 셀(111-1, ..., 111-N)의 수를 포함하는 상기 세트의 각 셀(111-1, ..., 111-N)에 저장되는 상기 전하(352)를 결정하는 단계를 포함하는 메모리 셀을 감지하기 위한 방법.
- 청구항 7에 있어서, 메모리 셀(111-1, ..., 111-N)의 세트의 각 셀(111-1, ..., 111-N)에 저장되는 상기 전하(352)를 결정하는 단계는,
임계 전압 수준(200): 및
특정 전하(352)에 대한 감지 증폭기(sense amplifier)를 작동시키는(trip) 전류를 포함하는 그룹으로부터 선택되는 하나를 감지하는 단계를 포함하는 메모리 셀을 감지하기 위한 방법. - 메모리 장치(420)에 있어서,
메모리 셀(111-1, ..., 111-N)의 어레이(100,430); 및
상기 어레이(100,430)에 결합된 분수 비트 제어기(480)를 포함하고,
상기 제어기(480)는 분수 비트 패커(fractional bit packer) 및 기록 스케일러(write scaler)를 포함하되:
상기 분수 비트 패커는:
비트의 정수를 표시하는 적어도 하나의 데이터 상태(312)를 가리키는 적어도 하나의 신호를 수신하고; 및
각각 비트의 분수(210)를 표시하는 프로그램된 상태(342)의 수를 가리키는 적어도 하나의 신호를 보내도록 동작하며, 상기 프로그램된 상태(342)의 수는 N진수(332)로 표현되는 상기 데이터 상태(312)의 디지트를 가리키고, N은 정수로 올림한 2B 와 동일하고, B는 상기 비트의 분수(210)와 동일하며,
상기 기록 스케일러는:
셀(111-1, ..., 111-N)의 세트가 프로그램될 상기 프로그램된 상태(342)의 수를 나타내는 상기 적어도 하나의 신호를 수신하고; 및
상기 세트의 상기 셀(111-1, ..., 111-N)에 저장되는 셀(111-1, ..., 111-N)의 상기 세트에 대한 전압 범위로부터 N으로 정규화되는(normalized) 전하(352)의 수를 가리키는 적어도 하나의 신호를 보내는 메모리 장치. - 청구항 12에 있어서, 상기 장치(420)는 셀(111-1, ..., 111-N)의 상기 세트에 전하(352)의 상기 수를 저장하도록 기능하는 메모리 장치.
- 청구항 12에 있어서, 상기 세트의 셀(111-1, ..., 111-N)은, 각 상이한 전하(352)가 프로그램된 상태(342)에 상응하는 N개의 상이한 전하(352) 중 하나를 저장할 수 있는 메모리 장치.
- 청구항 12에 있어서, 상기 제어기(480)는 오류 수정 정보를 표시하는 적어도 하나의 데이터 상태(312)를 나타내는 상기 분수 비트 패커(483)로 신호를 보내기 위하여 외부 ECC 인코더(481)를 포함하는 메모리 장치.
- 청구항 12에 있어서, 상기 제어기(480)는 오류 수정 정보를 표시하는 적어도 하나의 프로그램된 상태(342)를 가리키는 상기 기록 스케일러(487)로 신호를 보내기 위하여 내부 ECC 인코더(485)를 포함하는 메모리 장치.
- 청구항 12에 있어서, 상기 분수 비트 패커(483)는 5로 분할된 회로, 6으로 분할된 회로, 7로 분할된 회로, 및, 상기 비트의 분수(210)가 X/4 분수 나머지를 포함할 때 사용하기 위한 감산기 회로를 포함하고, 상기 X는 정수인 메모리 장치.
- 청구항 12에 있어서, 상기 분수 비트 패커(483)는 9로 분할된 회로, 10으로 분할된 회로, 11로 분할된 회로, 12로 분할된 회로, 13으로 분할된 회로, 14로 분할된 회로, 15로 분할된 회로, 및, 상기 비트의 분수(210)가 X/8 분수 나머지를 포함할 때 사용하기 위한 감산기 회로를 포함하고, 상기 X는 정수인 메모리 장치.
- 메모리 장치(420)에 있어서,
메모리 셀(111-1, ..., 111-N)의 어레이(100,430); 및
상기 어레이(100,430)에 결합된 분수 비트 제어기(480)를 포함하고,
상기 제어기(480)는 판독 스케일러(read scalar)(488) 및 분수 비트 언패커(fractional bit unpacker)(484)를 포함하되:
상기 판독 스케일러(488)는:
메모리 셀(111-1, ..., 111-N)의 세트의 셀(111-1, ..., 111-N)의 수에 저장되는 전하(352)의 수를 가리키는 적어도 하나의 신호를 수신하고;
전하(352)의 수에 상응하는 프로그램된 상태(342)의 수를 가리키는 적어도 하나의 신호를 보내고;
상기 분수 비트 언패커(484)는:
상기 프로그램된 상태(342)의 수를 가리키는 적어도 하나의 신호를 수신하되, 각 프로그램된 상태(342)는 비트의 분수(210)를 표시하고, 각 프로그램된 상태(342)는 N진수(332)로 표현되는 데이터 상태(312)의 디지트를 나타내고, 상기 N은 정수로 올림한 2B 와 동일하고, 상기 B는 상기 비트의 분수(210)와 동일하고;
비트의 정수를 표시하는 상기 데이터 상태(312)를 나타내는 신호를 보내는 메모리 장치. - 청구항 19에 있어서, 상기 세트의 메모리 셀(111-1, ..., 111-N)에 저장되는 전하는 데이터 상태(312)에 상응하지 않는 메모리 장치.
- 청구항 19에 있어서, 상기 제어기(480)는 상기 판독 스케일러(488)로부터 상기 적어도 하나의 신호를 수신하고, 프로그램된 상태(342)의 상기 수로부터 오류 수정 정보를 디코딩하기 위해 내부 ECC 디코더(486)를 포함하는 메모리 장치.
- 청구항 19에 있어서, 상기 제어기(480)는 상기 분수 비트 언패커(484)로부터 상기 신호를 수신하고,상기 데이터 상태(312)로부터 오류 수정 정보를 디코딩하기 위해 외부 ECC 디코더(482)를 포함하는 메모리 장치.
- 청구항 19에 있어서,
블록 코드; 및
길쌈 코드(convolutional code)를 포함하는 그룹으로부터 선택된 코드에 대한 ECC 디코더(482,486)를 포함하는 메모리 장치. - 청구항 19에 있어서, 분수 비트(210)의 제1 수를 표시하는 프로그램된 상태에 상응하는 전하(352)를 저장하는 셀(111-1, ..., 111-N)의 제1 수 및 분수 비트(210)의 제2 수를 표시하는 프로그램된 상태(342)에 상응하는 전하(352)를 저장하는 셀(111-1, ..., 111-N)의 제2 수를 포함하되, 상기 분수 비트의 제1 및 제2 수는 상이한 메모리 장치.
- 메모리 장치(420)에 있어서,
메모리 셀(111-1, ..., 111-N)의 어레이(100,430) 및
상기 어레이(100,430)에 결합되는 논리(480)를 포함하고,
상기 논리는:
데이터를 비트의 정수를 포함하는 이진 데이터 상태로 파싱(parse)하고;
상기 이진 데이터 상태를 N진수로 변환하고, 상기 N은 세트의 셀(111-1, ..., 111-N)이 프로그램될 수 있는 프로그램된 상태(342)의 수와 동일하고, 상기 N은 2의 제곱과 동일하지 않고, 프로그램된 상태(342)의 상기 수는 O 내지 N까지 수를 매길 수 있으며; 및
상기 세트의 각 셀(111-1, ..., 111-N)을 상기 변환된 데이터의 디지트를 나타내는 프로그램된 상태(342)로 프로그램하도록 기능을 하는 메모리 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/932,287 US7848142B2 (en) | 2007-10-31 | 2007-10-31 | Fractional bits in memory cells |
US11/932,287 | 2007-10-31 | ||
PCT/US2008/012065 WO2009058218A1 (en) | 2007-10-31 | 2008-10-23 | Fractional bits in memory cells |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100083833A KR20100083833A (ko) | 2010-07-22 |
KR101160761B1 true KR101160761B1 (ko) | 2012-06-28 |
Family
ID=40582607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107011764A KR101160761B1 (ko) | 2007-10-31 | 2008-10-23 | 메모리 셀에서 분수 비트 |
Country Status (5)
Country | Link |
---|---|
US (5) | US7848142B2 (ko) |
KR (1) | KR101160761B1 (ko) |
CN (1) | CN101842847B (ko) |
TW (1) | TWI401682B (ko) |
WO (1) | WO2009058218A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190134096A (ko) * | 2018-05-24 | 2019-12-04 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176401B1 (en) | 2007-02-09 | 2012-05-08 | Marvell International Ltd. | Decoding methods and apparatus for fractional multidimensional trellis coded modulation systems |
US7742335B2 (en) | 2007-10-31 | 2010-06-22 | Micron Technology, Inc. | Non-volatile multilevel memory cells |
US7848142B2 (en) * | 2007-10-31 | 2010-12-07 | Micron Technology, Inc. | Fractional bits in memory cells |
US7852671B2 (en) * | 2008-10-30 | 2010-12-14 | Micron Technology, Inc. | Data path for multi-level cell memory, methods for storing and methods for utilizing a memory array |
US8077515B2 (en) | 2009-08-25 | 2011-12-13 | Micron Technology, Inc. | Methods, devices, and systems for dealing with threshold voltage change in memory devices |
US8429391B2 (en) | 2010-04-16 | 2013-04-23 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US8451664B2 (en) | 2010-05-12 | 2013-05-28 | Micron Technology, Inc. | Determining and using soft data in memory devices and systems |
JP5143203B2 (ja) * | 2010-09-24 | 2013-02-13 | 株式会社東芝 | メモリシステム |
KR20120119779A (ko) * | 2011-04-22 | 2012-10-31 | 삼성전자주식회사 | 불휘발성 메모리 장치 |
US8711617B2 (en) * | 2011-06-03 | 2014-04-29 | Micron Technology, Inc. | Data modulation for groups of memory cells |
WO2013134890A1 (en) | 2012-03-13 | 2013-09-19 | Micron Technology, Inc. | Nonconsecutive sensing of multilevel memory cells |
US8788743B2 (en) | 2012-04-11 | 2014-07-22 | Micron Technology, Inc. | Mapping between program states and data patterns |
US8984369B2 (en) | 2012-11-21 | 2015-03-17 | Micron Technology, Inc. | Shaping codes for memory |
US9190174B2 (en) | 2012-11-30 | 2015-11-17 | Micron Technology, Inc. | Determining soft data from a hard read |
US9116822B2 (en) | 2012-12-07 | 2015-08-25 | Micron Technology, Inc. | Stopping criteria for layered iterative error correction |
US9229848B2 (en) | 2013-01-21 | 2016-01-05 | Micron Technology, Inc. | Determining soft data for fractional digit memory cells |
US9065483B2 (en) | 2013-01-21 | 2015-06-23 | Micron Technology, Inc. | Determining soft data using a classification code |
US9081674B2 (en) | 2013-02-28 | 2015-07-14 | Micron Technology, Inc. | Dual mapping between program states and data patterns |
US20140281842A1 (en) * | 2013-03-14 | 2014-09-18 | Fusion-Io, Inc. | Non-Volatile Cells Having a Non-Power-of-Two Number of States |
US9171624B2 (en) | 2013-12-20 | 2015-10-27 | Apple Inc. | Management of data storage in analog memory cells using a non-integer number of bits per cell |
WO2015116136A1 (en) * | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Data storing in memory arrays |
US9786335B2 (en) * | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US10032493B2 (en) * | 2015-01-07 | 2018-07-24 | Micron Technology, Inc. | Longest element length determination in memory |
US10474525B2 (en) * | 2015-08-11 | 2019-11-12 | Sandisk Technologies Llc | Soft bit techniques for a data storage device |
US10290346B2 (en) | 2016-12-22 | 2019-05-14 | Western Digital Technologies, Inc. | Method and apparatus for low-latency read of flash storage devices using fractional bits per cell |
US10175890B2 (en) | 2016-12-22 | 2019-01-08 | Western Digital Technologies, Inc. | Non-binary ECCs for low latency read, fractional bits per cell of NAND flash |
US10360947B2 (en) * | 2017-08-31 | 2019-07-23 | Micron Technology, Inc. | NAND cell encoding to improve data integrity |
US10910044B2 (en) * | 2018-09-28 | 2021-02-02 | Sandisk Technologies Llc | State coding for fractional bits-per-cell memory |
US11061617B2 (en) * | 2019-02-20 | 2021-07-13 | Marvell Asia Pte, Ltd. | High density fractional bit solid state drives using coded set partitions |
US11237906B1 (en) | 2020-07-28 | 2022-02-01 | Micron Technology, Inc. | Generating a balanced codeword protected by an error correction code |
US11494264B2 (en) | 2020-07-28 | 2022-11-08 | Micron Technology, Inc. | Generating a protected and balanced codeword |
US11567831B2 (en) | 2020-07-28 | 2023-01-31 | Micron Technology, Inc. | Generating a protected and balanced codeword |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779073B2 (en) | 1993-10-15 | 2004-08-17 | Image Telecommunications Corporation | Memory device having a systematic arrangement of logical data locations and having plural data portals |
US6868008B2 (en) | 2002-03-18 | 2005-03-15 | Seiko Epson Corporation | Non-volatile semiconductor memory device |
US6963507B2 (en) | 2000-10-02 | 2005-11-08 | Renesas Technology Corp. | Nonvolatile memory, semiconductor device, and method of programming to nonvolatile memory |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218569A (en) | 1991-02-08 | 1993-06-08 | Banks Gerald J | Electrically alterable non-volatile memory with n-bits per memory cell |
US5666516A (en) * | 1993-12-16 | 1997-09-09 | International Business Machines Corporation | Protected programmable memory cartridge having selective access circuitry |
KR0172408B1 (ko) | 1995-12-11 | 1999-03-30 | 김광호 | 다수상태 불휘발성 반도체 메모리 및 그의 구동방법 |
US6363008B1 (en) * | 2000-02-17 | 2002-03-26 | Multi Level Memory Technology | Multi-bit-cell non-volatile memory with maximized data capacity |
US7251270B2 (en) * | 2000-06-20 | 2007-07-31 | Paradyne Corporation | Systems and methods for fractional bit rate encoding in a communication system |
US6587372B2 (en) * | 2001-01-11 | 2003-07-01 | Micron Technology, Inc. | Memory device with multi-level storage cells and apparatuses, systems and methods including same |
JP2002319286A (ja) * | 2001-04-19 | 2002-10-31 | Hitachi Ltd | 不揮発性記憶装置および記憶システム |
US6522580B2 (en) | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US6456528B1 (en) * | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
EP1298670B1 (en) | 2001-09-28 | 2007-03-07 | STMicroelectronics S.r.l. | Method for storing and reading data in a multilevel nonvolatile memory with a non-binary number of levels, and architecture therefor |
US6967872B2 (en) | 2001-12-18 | 2005-11-22 | Sandisk Corporation | Method and system for programming and inhibiting multi-level, non-volatile memory cells |
US6847550B2 (en) | 2002-10-25 | 2005-01-25 | Nexflash Technologies, Inc. | Nonvolatile semiconductor memory having three-level memory cells and program and read mapping circuits therefor |
US6807610B2 (en) * | 2002-11-01 | 2004-10-19 | Silicon Storage Technology, Inc. | Method and apparatus for virtually partitioning an integrated multilevel nonvolatile memory circuit |
JP3935139B2 (ja) | 2002-11-29 | 2007-06-20 | 株式会社東芝 | 半導体記憶装置 |
US7043089B2 (en) * | 2003-02-27 | 2006-05-09 | Hewlett-Packard Development Company, L.P. | Overflow error diffusion |
JP2005092923A (ja) | 2003-09-12 | 2005-04-07 | Renesas Technology Corp | 半導体記憶装置 |
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 |
US7071849B2 (en) | 2004-04-04 | 2006-07-04 | Guobiao Zhang | Fractional-Bit Systems |
US7057939B2 (en) | 2004-04-23 | 2006-06-06 | Sandisk Corporation | Non-volatile memory and control with improved partial page program capability |
US7243193B2 (en) * | 2004-05-27 | 2007-07-10 | Silverbrook Research Pty Ltd | Storage of program code in arbitrary locations in memory |
US7180775B2 (en) | 2004-08-05 | 2007-02-20 | Msystems Ltd. | Different numbers of bits per cell in non-volatile memory devices |
US7212436B2 (en) | 2005-02-28 | 2007-05-01 | Micron Technology, Inc. | Multiple level programming in a non-volatile memory device |
JP4768298B2 (ja) | 2005-03-28 | 2011-09-07 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7167109B2 (en) * | 2005-03-31 | 2007-01-23 | Chenming Hu | Hybrid fractional-bit systems |
US7457178B2 (en) | 2006-01-12 | 2008-11-25 | Sandisk Corporation | Trimming of analog voltages in flash memory devices |
US7613883B2 (en) * | 2006-03-10 | 2009-11-03 | Rambus Inc. | Memory device with mode-selectable prefetch and clock-to-core timing |
US7286409B1 (en) * | 2006-05-09 | 2007-10-23 | Macronix International Co., Ltd. | Method and apparatus to improve nonvolatile memory data retention |
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US7352628B2 (en) | 2006-06-19 | 2008-04-01 | Sandisk Corporation | Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory |
US7355892B2 (en) * | 2006-06-30 | 2008-04-08 | Sandisk Corporation | Partial page fail bit detection in flash memory devices |
US7518914B2 (en) | 2006-08-07 | 2009-04-14 | Micron Technology, Inc. | Non-volatile memory device with both single and multiple level cells |
US7457155B2 (en) | 2006-08-31 | 2008-11-25 | Micron Technology, Inc. | Non-volatile memory device and method having bit-state assignments selected to minimize signal coupling |
US7911835B2 (en) | 2006-10-04 | 2011-03-22 | Samsung Electronics Co., Ltd. | Programming and reading five bits of data in two non-volatile memory cells |
US7545681B2 (en) * | 2006-11-27 | 2009-06-09 | Sandisk Corporation | Segmented bitscan for verification of programming |
US7518923B2 (en) | 2006-12-29 | 2009-04-14 | Sandisk Corporation | Margined neighbor reading for non-volatile memory read operations including coupling compensation |
US7619918B2 (en) * | 2006-12-29 | 2009-11-17 | Intel Corporation | Apparatus, method, and system for flash memory |
US7489543B1 (en) * | 2007-07-25 | 2009-02-10 | Micron Technology, Inc. | Programming multilevel cell memory arrays |
US7912883B2 (en) * | 2007-08-02 | 2011-03-22 | Via Technologies, Inc. | Exponent processing systems and methods |
KR20090017270A (ko) | 2007-08-14 | 2009-02-18 | 삼성전자주식회사 | 멀티 비트 프로그래밍 장치 및 방법 |
US7848142B2 (en) * | 2007-10-31 | 2010-12-07 | Micron Technology, Inc. | Fractional bits in memory cells |
US7668012B2 (en) | 2007-10-31 | 2010-02-23 | Micron Technology, Inc. | Memory cell programming |
US7742335B2 (en) | 2007-10-31 | 2010-06-22 | Micron Technology, Inc. | Non-volatile multilevel memory cells |
US7813212B2 (en) | 2008-01-17 | 2010-10-12 | Mosaid Technologies Incorporated | Nonvolatile memory having non-power of two memory capacity |
US8098530B2 (en) * | 2008-11-14 | 2012-01-17 | Micron Technology, Inc. | Systems and methods for erasing a memory |
US7936610B1 (en) * | 2009-08-03 | 2011-05-03 | Micron Technology, Inc. | Selective refresh of single bit memory cells |
US8144516B2 (en) * | 2009-12-03 | 2012-03-27 | Micron Technology, Inc. | Dynamic pass voltage for sense operation in a memory device |
-
2007
- 2007-10-31 US US11/932,287 patent/US7848142B2/en active Active
-
2008
- 2008-10-23 WO PCT/US2008/012065 patent/WO2009058218A1/en active Application Filing
- 2008-10-23 KR KR1020107011764A patent/KR101160761B1/ko active IP Right Grant
- 2008-10-23 CN CN2008801143202A patent/CN101842847B/zh active Active
- 2008-10-31 TW TW097142217A patent/TWI401682B/zh active
-
2010
- 2010-11-18 US US12/949,347 patent/US8125826B2/en active Active
-
2012
- 2012-02-23 US US13/403,078 patent/US8531877B2/en active Active
-
2013
- 2013-09-06 US US14/020,523 patent/US8964465B2/en active Active
-
2015
- 2015-01-19 US US14/599,786 patent/US9349441B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779073B2 (en) | 1993-10-15 | 2004-08-17 | Image Telecommunications Corporation | Memory device having a systematic arrangement of logical data locations and having plural data portals |
US6963507B2 (en) | 2000-10-02 | 2005-11-08 | Renesas Technology Corp. | Nonvolatile memory, semiconductor device, and method of programming to nonvolatile memory |
US6868008B2 (en) | 2002-03-18 | 2005-03-15 | Seiko Epson Corporation | Non-volatile semiconductor memory device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190134096A (ko) * | 2018-05-24 | 2019-12-04 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
KR102616813B1 (ko) | 2018-05-24 | 2023-12-26 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN101842847B (zh) | 2013-06-05 |
US9349441B2 (en) | 2016-05-24 |
TWI401682B (zh) | 2013-07-11 |
US20150206579A1 (en) | 2015-07-23 |
US20120147672A1 (en) | 2012-06-14 |
US20140003143A1 (en) | 2014-01-02 |
KR20100083833A (ko) | 2010-07-22 |
US20090109747A1 (en) | 2009-04-30 |
US7848142B2 (en) | 2010-12-07 |
CN101842847A (zh) | 2010-09-22 |
US8964465B2 (en) | 2015-02-24 |
US8531877B2 (en) | 2013-09-10 |
TW200926174A (en) | 2009-06-16 |
US8125826B2 (en) | 2012-02-28 |
US20110063907A1 (en) | 2011-03-17 |
WO2009058218A1 (en) | 2009-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101160761B1 (ko) | 메모리 셀에서 분수 비트 | |
US9070450B2 (en) | Non-volatile multilevel memory cells | |
EP2227812B1 (en) | Sensing memory cells | |
KR101071019B1 (ko) | 비휘발성 메모리 디바이스의 다중레벨 셀 판독 방법 | |
US8154926B2 (en) | Memory cell programming | |
US7518914B2 (en) | Non-volatile memory device with both single and multiple level cells | |
KR101485727B1 (ko) | 메모리로부터의 특정 데이터 양자화의 출력 | |
US9230661B2 (en) | Determining soft data for combinations of memory cells | |
US8264879B2 (en) | Sensing memory cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150515 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160517 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170522 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180530 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190618 Year of fee payment: 8 |