KR20160150036A - 부분 페이지 압축을 위한 메모리 시스템 - Google Patents

부분 페이지 압축을 위한 메모리 시스템 Download PDF

Info

Publication number
KR20160150036A
KR20160150036A KR1020160075319A KR20160075319A KR20160150036A KR 20160150036 A KR20160150036 A KR 20160150036A KR 1020160075319 A KR1020160075319 A KR 1020160075319A KR 20160075319 A KR20160075319 A KR 20160075319A KR 20160150036 A KR20160150036 A KR 20160150036A
Authority
KR
South Korea
Prior art keywords
page
memory
partial
partial page
data
Prior art date
Application number
KR1020160075319A
Other languages
English (en)
Other versions
KR102628009B1 (ko
Inventor
아밋 베르만
공준진
유리 베이틀러
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20160150036A publication Critical patent/KR20160150036A/ko
Application granted granted Critical
Publication of KR102628009B1 publication Critical patent/KR102628009B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Human Computer Interaction (AREA)

Abstract

본 발명에 따른 메모리 장치를 포함하는 메모리 시스템은, 상기 메모리 장치가 메모리 셀 어레이 및 압축 인코더를 포함하며, 상기 메모리 셀 어레이는 복수의 제1 MLC를 포함하고, 상기 메모리 장치는, 적어도 하나의 제1 기준 전압을 이용하여 상기 복수의 제1 MLC에 대한 적어도 하나의 제1 센싱 동작을 수행하여 제1 부분 페이지를 생성하고, 상기 제1 부분 페이지를 출력하고, 상기 적어도 하나의 제1 기준 전압과 다른 전압 레벨을 갖는 제2 기준 전압에 기초하여 상기 복수의 제1 MLC에 대한 제2 센싱 동작을 수행하여 제2 부분 페이지를 생성하고, 상기 압축 인코더를 이용하여 상기 제2 부분 페이지를 압축하여 압축된 제2 부분 페이지를 생성하고, 상기 압축된 제2 부분 페이지를 출력한다.

Description

부분 페이지 압축을 위한 메모리 시스템{MEMORY SYSTEM FOR PARTIAL PAGE COMPRESSION}
본 발명의 개념에 따른 실시예는 메모리 시스템에서 데이터를 압축 및 압축 해제하는 방법 및 장치에 관한 것이다.
NAND 플래시 메모리는 EEPROM(Electrically Erasable and Programmable Read Only Memory)의 일 예이다. NAND 플래시 메모리는 복수의 메모리 셀이 서로 직렬 연결된 NAND 셀 단위를 이용하여 작은 칩 영역에 많은 양의 정보를 저장할 수 있다.
NAND 플래시 메모리는 리드 레이턴시(read latency) 관점에서 자기 및 광학 저장에 대한 성능 이점을 겪는다. 예를 들어, 하드 디스크 및 광 드라이브 레이턴시가 3~12ms 일 수 있지만, 플래시 비휘발성 메모리(NVM) 레이턴시는 50~120μs 사이의 범위일 수 있다.
본 발명이 이루고자 하는 기술적인 과제는, 부분적인 데이터 페이지를 압축하여 메모리 시스템의 리드 레이턴시를 감소시키기 위한 방법 및 장치를 제공하는 것에 있다.
본 발명의 실시예에 따른 메모리 장치를 포함하는 메모리 시스템은, 상기 메모리 장치는 메모리 셀 어레이 및 압축 인코더를 포함하며, 상기 메모리 셀 어레이는 복수의 제1 MLC(multi level cell)을 포함하고, 상기 메모리 장치는, 적어도 하나의 제1 기준 전압을 이용하여 상기 복수의 제1 MLC에 대한 적어도 하나의 제1 센싱 동작을 수행하여 제1 부분 페이지를 생성하고, 상기 제1 부분 페이지를 출력하고, 상기 적어도 하나의 제1 기준 전압과 다른 전압 레벨을 갖는 제2 기준 전압에 기초하여 상기 복수의 제1 MLC에 대한 제2 센싱 동작을 수행하여 제2 부분 페이지를 생성하고, 상기 압축 인코더를 이용하여 상기 제2 부분 페이지를 압축하여 압축된 제2 부분 페이지를 생성하고, 상기 압축된 제2 부분 페이지를 출력한다.
본 발명의 실시예에 따른 메모리 장치를 포함하는 메모리 시스템은, 상기 메모리 장치는 메모리 셀 어레이를 포함하며, 상기 메모리 셀 어레이는 복수의 제1 MLC(multi level cell)을 포함하고, 상기 메모리 장치는, 적어도 하나의 제1 기준 전압을 이용하여 상기 복수의 제1 MLC에 대한 적어도 하나의 제1 센싱 동작을 수행하여 제1 부분 페이지를 생성하고, 상기 제1 부분 페이지에 기초하여 적어도 하나의 기지의 데이터 값을 결정하고, 상기 제1 부분 페이지를 출력하고, 상기 적어도 하나의 제1 기준 전압과 다른 전압 레벨을 갖는 제2 기준 전압에 기초하여 상기 복수의 제1 MLC에 대한 제2 센싱 동작을 수행하여 제2 부분 페이지를 생성하고, 상기 적어도 하나의 기지의 데이터 값에 기초하여 상기 메모리 장치에 의해 생성된 상기 제2 부분 페이지의 적어도 하나의 비트를 생략하여 축소된 제2 부분 페이지를 생성하고, 상기 축소된 제2 부분 페이지를 출력한다.
본 발명의 실시예에 따른 메모리 장치를 포함하는 메모리 시스템은, 상기 메모리 장치는 메모리 셀 어레이를 포함하며, 상기 메모리 셀 어레이는 복수의 제1 MLC(multi level cell)을 포함하고, 상기 메모리 장치는, 적어도 하나의 제1 기준 전압을 이용하여 상기 복수의 제1 MLC에 대한 적어도 하나의 제1 센싱 동작을 수행하여 상기 복수의 제1 MLC의 제1 데이터 페이지를 생성하고, 상기 제1 데이터 페이지를 출력하고, 상기 제1 기준 전압과 다른 전압 레벨을 갖는 제2 기준 전압에 기초하여 상기 복수의 제1 MLC에 대한 제2 센싱 동작을 수행하여 제1 부분 페이지를 센싱하고, 상기 제1 및 제2 기준 전압과 다른 전압 레벨을 갖는 제3 기준 전압에 기초하여 상기 복수의 제1 MLC에 대한 제3 센싱 동작을 수행하여 제2 부분 페이지를 센싱하고, 상기 복수의 제1 MLC 중에서 상기 제1 기준 전압 이상인 임계 전압 상태를 저장하는 상기 메모리 장치에 의해 결정된 MLC들로부터 센싱된 비트들을 제외한 상기 센싱된 제1 부분 페이지의 모든 비트들을 축소된 제1 부분 페이지로 출력하고, 상기 복수의 제1 MLC 중에서 상기 제1 기준 전압 이하인 임계 전압 상태를 저장하는 상기 메모리 장치에 의해 결정된 MLC들로부터 센싱된 비트들을 제외한 상기 센싱된 제2 부분 페이지의 모든 비트들을 축소된 제2 부분 페이지로 출력하며, 상기 제1 데이터 페이지는 제1 데이터 페이지 타입의 데이터 페이지이며, 상기 제1 데이터 페이지 타입은 MSB(most significant bit) 페이지 타입, LSB(least significant bit) 페이지 타입 또는 CSB(central significant bit) 페이지 타입 중 하나이다.
본 발명의 실시예에 따른 메모리 시스템에 의하면, 부분적인 페이지를 압축함으로써 리드 레이턴시를 감소시킬 수 있다.
도 1a는 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 1b는 본 발명의 일 실시예에 따른 허프만(Huffman) 인코더의 일 예를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티 레벨 셀(MLC)의 데이터 값과 임계 전압 상태 사이의 대응 관계를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 부분 페이지 압축 방법을 이용하여 데이터 페이지를 리드하는 방법을 일반적인 방법과 비교하여 나타내는 도면이다.
도 4a는 본 발명의 일 실시예에 따른 부분 페이지 압축을 이용하여 리드하는 방법을 나타내는 플로우차트이다.
도 4b는 도 1a에 도시된 메모리 셀 어레이의 메모리 셀들을 나타내는 도면이다.
도 4c는 2-비트 데이터를 저장하는 메모리 셀들의 MSB(most significant bit) 및 LSB(least significant bit) 데이터 페이지의 리드 동작을 설명하기 위한 도면이다.
도 4d는 본 발명의 일 실시예에 따른 4-레벨 MLC와 관련된 리드 동작에서의 부분 페이지의 구조를 설명하기 위한 도면이다.
도 5a는 도 1a에 도시된 메모리 셀 어레이의 메모리 셀들을 나타내는 도면이다.
도 5b는 3-비트 데이터를 저장하는 MLC들의 MSB, CSB(central significant bit) 및 LSB 데이터 페이지의 리드 동작을 설명하기 위한 도면이다.
도 5c는 본 발명의 일 실시예에 따른 8-레벨 MLC와 관련된 리드 동작에서 부분 페이지의 구조를 설명하기 위한 도면이다.
도 6은 분석적 워드 길이와 압축비 결과를 비교하는 테이블을 나타내는 도면이다.
도 7a는 3-비트 입력에 대한 허프만(Huffman) 코드의 예시적인 구현의 특성을 설명하는 테이블을 나타내는 도면이다.
도 7b는 분석적 워드 길이와 압축비 결과를 비교하는 테이블 및 4-비트 입력에 대한 허프만(Huffman) 코드의 예시적인 구현의 특성을 설명하는 테이블을 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 부분 페이지 압축 및 소프트 데이터(soft data) 추출을 리드하는 방법을 나타내는 플로우차트이다.
도 9는 본 발명의 일 실시예에 따른 순차적 데이터 페이지 리드 방법을 나타내는 플로우차트이다.
도 10a는 도 1a에 도시된 메모리 셀 어레이의 메모리 셀들을 나타내는 도면이다.
도 10b는 2-비트 데이터를 저장하는 MLC들의 MSB 및 LSB에 대하여 본 발명의 일 실시예에 따른 순차적 데이터 페이지 리드 동작을 설명하기 위한 도면이다.
도 10c는 본 발명의 일 실시예에 따른 4-레벨 MLC와 관련된 리드 동작에서 부분 페이지의 구조를 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 메모리 시스템을 포함하는 컴퓨터 시스템을 나타내는 블록도이다.
도 12는 본 발명의 일 실시예에 따른 메모리 카드를 나타내는 블록도이다.
도 13은 본 발명의 일 실시예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 나타내는 블록도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Ⅰ. 개요
어떤 종류의 자기 및 광 저장 장치보다 플래시 메모리의 리드 레이턴시(read latency) 성능 이점은 어느 정도는 플래시 메모리의 임의의 리드 능력 때문이다. 그러나, 1-비트 메모리는 하나의 기준 전압을 이용하여 리드될 수 있지만, 2-비트 메모리는 3개의 다른 기준 전압들 중 적어도 하나의 전압을 이용하여 리드될 수 있고 3-비트 메모리는 7개의 다른 기준 전압들 중 적어도 하나의 전압을 이용하여 리드될 수 있다. 따라서, SLC(single level cell) 구조에서 MLC(multilevel cell) 구조로 전환할 때, 리드 레이턴시는 추가적인 셀의 기준 비교로 인해 늦춰질 수 있다.
본 명세서에서 사용되는 2-비트 메모리 셀이라는 용어는 4-레벨 메모리 셀과 동일한 것으로 간주되거나 4-레벨 메모리 셀로 언급될 수 있으며, 4개의 상태 중 하나로 프로그램된 값(예컨대, 임계 전압)을 유지하여 2 비트 데이터를 저장하는 MLC를 나타낸다. 본 명세서에서 사용되는 3-비트 메모리 셀이라는 용어는 8-레벨 메모리 셀과 동일한 것으로 간주되거나 8-레벨 메모리 셀로 언급될 수 있으며, 8개의 상태 중 하나로 프로그램된 값(예컨대, 임계 전압)을 유지하여 3 비트 데이터를 저장하는 MLC를 나타낸다.
따라서, 리드 레이턴시(read latency)를 단축하는 방법을 제공하는 것이 필요하다. 본 발명의 실시 예에 따르면, 리드 레이턴시는 부분 페이지 압축 방법을 사용하는 리드 동작을 이용하여 단축될 수 있다. 부분 페이지 압축 방법을 사용하는 리드 동작은 단일 기준 비교에 의한 부분 페이지를 압축하고 리드하는 과정을 병렬로 반복하여 부분 페이지를 출력하고 다른 기준 비교와 연관된 부분 페이지를 압축할 수 있다. 효율적인 압축으로 인해, 입/출력(I/O) 지속시간이 축소된다. 출력 데이터는 컨트롤러에 의해 압축 해제되고, 전체 페이지 데이터가 복원된다. 소프트 정보(soft information) 또한 압축 해제된 페이지로부터 추출될 수 있고 LDPC(low density parity check) 전원을 감소시키기 위해 사용될 수 있다. 또한, 다중의 기준 전압을 이용하는 다수의 비교 연산을 포함하는 데이터 페이지 리드 동작으로부터 단일 비교 연산에 상응하는 데이터에서 일반적으로 '0'과 '1'의 분포가 없기 때문에(즉, p(1)=(0.5) 및 p(0)=(0.5), 이때 p(x)는 소정의 이진 데이터에서의 비트 값(x)의 비율을 나타냄), 단일 비교 연산에 상응하는 데이터에 압축 인코딩을 적용하면 특히 유효해진다.
본 발명의 실시 예에 따른 부분 페이지 압축 방법을 사용하는 리드 동작을 이용하기 위한 예시적인 구조를 도 1a 및 도 1b를 참조하여 후술한다.
도 1a는 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 1a를 참조하면, 메모리 시스템(900)은 메모리 컨트롤러(1000) 및 비휘발성 메모리 장치(2000)를 포함한다.
비휘발성 메모리 장치(2000)는 플래시 메모리 장치, NAND 플래시 메모리 장치, PRAM(Phase change Random Access Memory(RAM)), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등일 수 있으나, 이에 한정되지 않는다. 실시 예에 따라, 비휘발성 메모리 장치(2000)는 복수의 NAND 플래시 메모리 장치를 포함할 수 있다. 비휘발성 메모리 장치(2000)는 평면 구조(planar structure) 또는 적층 메모리 셀들을 갖는 3차원(3D) 메모리 셀 구조를 가질 수 있다.
비휘발성 메모리 장치(2000)는 각각이 적어도 하나의 회로로 구현될 수 있는 메모리 셀 어레이(2100), X-디코더(121), 페이지 버퍼(123), 입출력(I/O) 버퍼(124), 전압 생성기(125), 컨트롤 로직(126) 및 레지스터(128)를 포함할 수 있다. 비휘발성 메모리 장치(2000)는 입출력(I/O) 패드(127)를 더 포함할 수 있다.
메모리 셀 어레이(2100)는 복수의 워드 라인(W/L) 및 복수의 비트 라인(B/L)을 포함한다. 각 메모리 셀은 플로팅 게이트 또는 전하 트랩 층(charge trapping layer)과 같은 전하 저장층을 갖는 메모리 셀로 구현될 수 있다.
메모리 셀 어레이(2100)는 복수의 블록 및 복수의 페이지를 포함할 수 있다. 하나의 블록은 복수의 페이지를 포함한다. 페이지는 프로그램(program) 및 리드(read) 동작의 단위일 수 있고, 블록은 이레이즈(erase) 동작의 단위일 수 있다. 예를 들어, 메모리 셀 어레이(2100)는 제1 블록(2120) 및 제2 블록(2130)을 포함한다. 도 1a에 도시된 바와 같이, 제1 블록(2120)은 페이지들(PAGE 1~PAGE N, N은 1보다 큰 양의 정수)을 포함하고, 제2 블록(2130)은 페이지들(PAGE 1~PAGE N)을 포함한다.
컨트롤 로직(126)은 비휘발성 메모리 장치(2000)의 전반적인 동작을 제어한다. 메모리 컨트롤러(1000)로부터 커맨드(CMD)을 수신하는 경우 컨트롤 로직(126)은 커맨드(CMD)을 해석하고 커맨드(CMD)에 따라 동작(예컨대, 프로그램 동작, 리드 동작, 리드 리트라이(retry) 동작, 또는 이레이즈 동작)을 수행하는 비휘발성 메모리 장치(2000)를 제어한다.
실시 예에 따라, 컨트롤 로직(126)은 커맨드 신호(CMD)에 기초하여 명령을 실행하는 하드웨어로 구현된 프로세서를 포함할 수 있다. 실시 예에 따라, 컨트롤 로직(126)은 컨트롤 로직(126)에 포함된 프로세서가 실행되는 경우 프로세서가 특정 동작을 수행하도록 하는 단계를 저장하는 저장 장치를 더 포함할 수 있다. 실시 예에 따라, 비휘발성 메모리 장치(2000)에 의해 수행되는 것으로 기재된 동작들은 컨트롤 로직(126), 예를 들어, 컨트롤 로직(126)에 포함된 저장 장치에 저장된 펌웨어를 구동하는 컨트롤 로직(126)에 포함된 프로세서에 의해 또는 컨트롤 로직(126)의 제어하에 수행될 수 있다. 반면, 컨트롤 로직(126)은 비휘발성 메모리 장치(2000)에 의해 수행되는 것으로 기재된 동작들을 하드웨어 관점에서 수행 또는 제어하기 위해 물리적으로 프로그램된 회로(예컨대, ASIC(Application Specific Integrated Circuit))일 수 있다.
X-디코더(121)는 컨트롤 로직(126)에 의해 제어되며, 로우 어드레스에 따라 메모리 셀 어레이(2100)의 적어도 하나의 워드 라인들(W/L)을 구동한다.
전압 생성기(125)는 프로그램 동작, 리드 동작, 또는 이레이즈 동작에 필요한 적어도 하나의 전압을 생성하고 생성된 전압들을 X-디코더(121)에 의해 선택된 적어도 하나의 로우들로 제공하기 위해 컨트롤 로직(126)에 의해 제어된다.
컨트롤 로직(126)에 의해 제어되고 메모리 컨트롤러(1000)로부터 입력된 정보가 저장되는 공간인 레지스터(128)는, 복수의 래치를 포함할 수 있다. 예를 들어, 레지스터(128)는 리드 전압(및/또는 기준 전압) 정보를 그룹화하고, 상기 정보를 테이블 형태로 저장할 수 있다.
페이지 버퍼(123)는 컨트롤 로직(126)에 의해 제어되며, 동작 모드(예컨대, 리드 동작 또는 프로그램 동작)에 따라 감지 증폭기 또는 라이트 드라이버로 동작한다.
입출력 패드(127) 및 입출력 버퍼(124)는 외부 장치(예컨대, 메모리 컨트롤러(1000) 또는 호스트)와 비휘발성 메모리 장치(2000) 사이에서 교환되는 데이터의 입출력 경로의 역할을 할 수 있다. 입출력 패드(127)는 메모리 시스템 버스(800)를 통해 메모리 컨트롤러(1000)에 연결된다. 데이터 및 커맨드가 입출력 패드(127) 및 메모리 시스템 버스(800)를 통해 비휘발성 메모리 장치(2000)로부터 메모리 컨트롤러(1000)로 출력되거나 메모리 컨트롤러(1000)로부터 비휘발성 메모리 장치(2000)로 수신될 수 있다.
실시 예에 따라, 비휘발성 메모리 장치(2000)는 페이지 버퍼(123)와 입출력 버퍼(124) 사이에 연결된 압축 인코더를 더 포함할 수 있다. 이에 대해서는 도 1b를 참조하여 보다 상세히 설명한다.
도 1b는 본 발명의 일 실시예에 따른 허프만(Huffman) 인코더의 일 예를 나타내는 도면이다. 도 1b를 참조하면, 압축 인코더(129)는 컨트롤 로직(126)에 의해 제어될 수 있으며, 페이지 버퍼(123)로부터 출력되는 비트들을 수신하고 수신된 비트들을 압축하고 압축된 비트들을 입출력 버퍼(214)로 출력할 수 있다. 실시 예에 따라, 압축 인코더(129)는 수신된 비트들에 대한 허프만 인코딩을 수행하여 수신된 비트들을 압축하는 허프만 인코더이다. 실시 예에 따라, 압축 인코더(129)는 한 번에 16 비트를 병렬로 인코딩할 수 있는 4개의 4-비트 인코더를 포함할 수 있다. 실시 예에 따라, 압축 인코더(129)는 비휘발성 메모리 장치(2000)의 제조사 또는 설계자의 선택에 따라 각각이 한 번에 임의의 비트 수를 인코딩하는 복수의 인코더를 포함할 수 있다.
다시 도 1a를 참조하면, 메모리 컨트롤러(1000)는 마이크로프로세서(111), RAM(Random Access Memory, 112), ROM(Read-Only Memory, 113), 인코더(1100), 디코더(1200), 메모리 인터페이스(116) 및 컨트롤러 버스(118)를 포함할 수 있다. 메모리 컨트롤러(1000)의 구성요소들(111 내지 116)은 컨트롤러 버스(118)를 통해 서로 전기적으로 접속될 수 있다.
마이크로프로세서(111)는 메모리 컨트롤러(1000)를 포함하는 메모리 시스템(900)의 전반적인 동작을 제어한다. 마이크로프로세서(111)는 제어 신호들을 생성하여 다른 구성요소들을 제어하는 회로이다. 메모리 시스템(900)으로 전원이 공급되는 경우, 마이크로프로세서(111)는 RAM(112) 상에서 메모리 시스템(900)을 작동시키기 위한 펌웨어(예컨대, ROM(113)에 저장된)를 구동시킬 수 있으며, 이에 따라 메모리 시스템(900)의 전반적인 동작을 제어할 수 있다.
실시 예에 따라, 마이크로프로세서(111)는 ROM(113), RAM(112), 인코더 (1100), 디코더(1200), 메모리 인터페이스(116) 및 컨트롤러 버스(118)의 일부 또는 전부를 포함하는 메모리 컨트롤러(1000)의 다른 구성요소들의 동작을 제어하기 위한 단계들을 발생할 수 있다.
실시 예에 따라, 메모리 컨트롤러(1000)에 의해 수행되는 것으로 본 명세서에 기재된 임의의 동작들은 마이크로프로세서(111), 예를 들어, 펌웨어를 구동시키는 마이크로프로세서에 의해 또는 마이크로프로세서(111)의 제어하에 수행될 수 있다.
메모리 시스템(900)의 구동 펌웨어 코드는 ROM(113)에 저장될 수 있으나 실시예가 이에 한정되지 않는다. 펌웨어 코드는 ROM(113) 이외의 메모리 시스템(900)의 일부에 저장될 수 있다. 따라서, 마이크로프로세서(111)의 제어 또는 개입은 마이크로프로세서(111)의 직접적인 제어뿐만 아니라 마이크로프로세서(111)에 의해 구동되는 소프트웨어인 펌웨어의 개입도 포함할 수 있다.
반면, 마이크로프로세서(111)는 메모리 컨트롤러(1000)에 의해 수행되는 것으로 기재된 동작들을 하드웨어 관점에서 수행 또는 제어하기 위해 물리적으로 프로그램된 회로(예컨대, ASIC(Application Specific Integrated Circuit))일 수 있다.
버퍼의 역할을 하는 메모리인 RAM(112)은 호스트 또는 마이크로프로세서(111)로부터 입력된 초기 커맨드, 데이터 및 다양한 변수들 또는 비휘발성 메모리 장치(2000)로부터 출력된 데이터를 저장할 수 있다. RAM(112)은 비휘발성 메모리 장치(2000)로 입력되거나 비휘발성 메모리 장치(2000)로부터 출력되는 데이터와 다양한 파라미터들과 변수들을 저장할 수 있다.
메모리 인터페이스(116)는 메모리 컨트롤러(1000)와 비휘발성 메모리 장치(2000) 사이의 인터페이스의 역할을 할 수 있다. 메모리 인터페이스(116)는 메모리 시스템 버스(800)를 통해 비휘발성 메모리 장치(2000)의 입출력 패드(127)에 접속되며, 메모리 시스템 버스(800)를 통해 입출력 패드(127)와 데이터를 교환할 수 있다.
또한, 메모리 인터페이스(116)는 비휘발성 메모리 장치(2000)에 적합한 커맨드를 생성하고, 생성된 커맨드를 비휘발성 메모리 장치(2000)의 입출력 패드(127)로 제공할 수 있다. 메모리 인터페이스(116)는 비휘발성 메모리 장치(2000)에 의해 실행될 커맨드와 비휘발성 메모리 장치(2000)의 어드레스(ADD)를 제공한다.
실시 예에 따라, 마이크로프로세서(111) 및 디코더(1200) 중 하나 또는 둘 모두는 허프만 인코딩된 데이터를 디코딩하는 허프만 디코딩을 수행할 수 있다.
실시 예에 따라, 디코더(1200)는 ECC(error correcting code) 디코더일 수 있고, 인코더(1100)는 ECC 인코더일 수 있다. 실시 예에 따라, 디코더(1200) 및 인코더(1100)는 에러 비트 정정을 수행할 수 있다. 인코더(1100)는 데이터가 비휘발성 메모리 장치(2000)로 제공되기 이전에, 데이터에 대한 에러 정정 인코딩을 수행하여 적어도 하나의 패리티(parity) 및/또는 리던던시(redundancy) 비트들이 포함된 데이터를 생성할 수 있다. 적어도 하나의 패리티 및/또는 리던던시 비트들은 비휘발성 메모리 장치(2000)에 저장될 수 있다.
디코더(1200)는 출력 데이터에 대한 에러 정정 디코딩을 수행하고, 에러 정정 디코딩 결과에 기초하여 에러 정정 디코딩에 성공했는지 여부를 판단하고, 상기 판단 결과에 기초하여 스텝 신호(step signal)를 출력할 수 있다. 리드 데이터는 디코더(1200)로 전송되고, 디코더(1200)는 적어도 하나의 패리티 및/또는 리던던시 비트들을 이용하여 데이터의 에러 비트들을 정정할 수 있다. 에러 비트들의 수가 정정될 수 있는 에러 비트들의 허용치를 초과하는 경우, 디코더(1200)는 에러 정정 실패로 에러 비트들을 정정할 수 없게 된다.
인코더(1100)와 디코더(1200)는 예를 들어, 적어도 하나의 LDPC(low density parity check) 코드, BCH(Bose-Chaudhuri-Hocquenghem) 코드, 터보(turbo) 코드, RS(Reed-Solomon) 코드, 콘볼루션(convolution) 코드, RSC(recursive systematic code) 또는 TCM(trellis-coded modulation)이나 BCM(block coded modulation)과 같은 부호화된 변조를 이용하여 에러 정정을 수행할 수 있다.
인코더(1100) 및 디코더(1200) 각각은 에러 정정 회로, 시스템 또는 장치를 포함할 수 있다.
실시 예에 따라, 메모리 시스템(900)은 비휘발성 메모리 장치(2000)의 메모리 셀 어레이(2100)에 라이트된 데이터가 0과 1로 랜덤 분포되도록 랜덤 함수를 수행한다. 즉, 비휘발성 메모리 장치(2000)에 라이트된 라이트 데이터의 각 비트에 대하여, 비휘발성 메모리 장치(2000)에 라이트된 데이터의 비트가 '0'일 확률은 비휘발성 메모리 장치(2000)에 라이트된 데이터의 비트가 '1'일 확률과 같다.
실시 예에 따라, 메모리 컨트롤러(1000)는 비휘발성 메모리 장치(2000)로 전송되고 비휘발성 메모리 장치(2000)로부터 수신된 데이터에 대해 랜덤 함수를 수행한다. 실시 예에 따라, 메모리 컨트롤러(1000)는 마이크로프로세서(111)가 랜덤 함수를 수행하기 위한 명령을 예컨대, RAM(112) 또는 ROM(113)에 저장할 수 있다. 실시 예에 따라, 랜덤 함수는 기준 이진 벡터의 각 비트에 대하여 기준 이진 벡터의 길이(n)를 생성하는 단계를 포함하며, 비트가 '0'일 확률은 비트가 '1'일 확률과 같다.
또한, 메모리 컨트롤러(1000)가 비휘발성 메모리 장치(2000)로 전송할 라이트 데이터를 준비하는 경우, 랜덤 함수는 초기 데이터 벡터의 길이(n)와 기준 벡터에 대한 제1 XOR 연산을 수행하는 단계와, 제1 XOR 연산의 결과를 랜덤화된 라이트 데이터 벡터로 생성하는 단계를 포함한다. 이후에 메모리 컨트롤러(1000)는 초기 데이터 벡터 대신에 랜덤화된 라이트 데이터 벡터를 비휘발성 메모리 장치(2000)로 전송한다. 비휘발성 메모리 장치(2000)는 랜덤화된 라이트 데이터 벡터를 저장된 데이터 벡터로 메모리 셀 어레이(2100)에 라이트한다.
또한, 메모리 컨트롤러(1000)는 기준 벡터를 예컨대, RAM(112)에 저장할 수 있다. RAM(112)에 기준 벡터를 저장하는 대신에 기준 벡터는 ROM(113)에 저장될 수 있다.
메모리 컨트롤러(1000)가 비휘발성 메모리 장치(2000)로부터 저장된 데이터 벡터를 리드하는 경우, 랜덤 함수는 리드 데이터 벡터에 대한 제2 XOR 연산을 수행하여 초기 데이터 벡터를 복원하는 단계를 포함한다. 제2 XOR 연산의 결과는 초기 데이터 벡터이다.
랜덤 함수가 메모리 컨트롤러(1000)에 의해 수행되는 것으로 설명되었지만, 랜덤 함수는 비휘발성 메모리 장치(2000)에 의해 유사한 방식으로 수행될 수 있다.
예를 들어, 실시 예에 따라, 비휘발성 메모리 장치(2000)는 비휘발성 메모리 장치(2000)로 전송되고 비휘발성 메모리 장치(2000)로부터 수신된 데이터에 대해 랜덤 함수를 수행한다. 실시 예에 따라, 비휘발성 메모리 장치(2000)는 컨트롤 로직(126)이 랜덤 함수를 수행하기 위한 명령을 저장할 수 있다. 상술한 바와 같이, 랜덤 함수는 기준 이진 벡터의 각 비트에 대하여 기준 이진 벡터의 길이(n)를 생성하는 단계를 포함하며, 비트가 '0'일 확률은 비트가 '1'일 확률과 같다.
또한, 비휘발성 메모리 장치(2000)가 메모리 컨트롤러(1000)로부터 수신된 초기 데이터 벡터의 길이(n)를 저장할 준비를 하는 경우, 랜덤 함수는 초기 데이터 벡터와 기준 벡터에 대한 제1 XOR 연산을 수행하는 단계와, 제1 XOR 연산의 결과를 랜덤화된 라이트 데이터 벡터로 생성하는 단계를 포함한다. 이후에 비휘발성 메모리 장치(2000)는 랜덤화된 라이트 데이터 벡터를 저장된 데이터 벡터로 메모리 셀 어레이(2100)에 라이트한다.
또한, 비휘발성 메모리 장치(2000)는 기준 벡터를 저장할 수 있다. 또한, 비휘발성 메모리 장치(2000)가 저장된 데이터 벡터를 리드하기 위한 명령을 수신하는 경우, 랜덤 함수는 저장된 데이터 벡터에 대한 제2 XOR 연산을 수행하여 초기 데이터 벡터를 복원하는 단계를 포함한다. 제2 XOR 연산의 결과는 초기 데이터 벡터이다.
실시 예에 따른 부분 페이지 압축 방법을 사용하는 리드 동작을 보다 상세히 설명한다.
Ⅱ. 부분 페이지 압축 방법을 사용하는 리드 동작에 대한 설명
다음과 같은 표기법(notation)은, 실시 예에 따른 부분 페이지 압축 방법을 사용하는 리드 동작을 설명하기 위해 사용된다.
표기법 1(기준 페이지 및 포착 페이지를 리드): 본 명세서에서 사용되는 바와 같이, Refx ,y(Refx -y 또는 Refx-y)는 프로그램 상태 Lx 및 Ly를 구별하기 위해 사용되는 기준 전압(즉, 프로그램 상태들의 전압 레벨 사이에 있는 기준 전압)을 나타내고, Pagex ,y(Pagex -y 또는 Pagex-y)는 기준 전압인 Refx ,y(Refx -y 또는 Refx-y)를 이용하여 복수의 메모리 셀을 리드하여 얻어진 데이터의 페이지를 나타내며, 그룹({Refx1,y1, Refx2 , y2, ..., Refxn , y n})은 여러 기준 비교로 구성되는 리드 동작을 나타낸다.
표기법 2(단일 기준을 갖는 어레이-페이지 버퍼 시간): 본 명세서에서 사용되는 바와 같이, tREF는 단일 기준을 갖는 NAND 어레이에서 페이지 버퍼로 페이지 데이터를 전달하는 동작의 시간의 길이를 나타내며, 일 예로 tREF 값은 30 μs이다.
표기법 3(리드 사이클 시간): 본 명세서에서 사용되는 바와 같이, tRC는 바이트(byte)를 NAND 입출력(IO)으로 출력하기 위한 리드 사이클 시간의 길이를 나타내며, 일 예로 tRC 값의 범위는 2.5 내지 15 ns이다.
표기법 4(페이지 사이즈): 본 명세서에서 사용되는 바와 같이, Pz는 페이지 당 바이트(byte) 수를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 멀티 레벨 셀(MLC)의 데이터 값과 임계 전압 상태 사이의 대응 관계를 설명하기 위한 도면이다.
도 2의 (a)는 2-비트 데이터를 저장하는 메모리 셀의 프로그램 상태에 따른 임계 전압의 분포를 나타내는 그래프이다. 도 2의 (a)에서, 가로축은 임계 전압을 나타내고 세로축은 메모리 셀의 수를 나타낸다. 도 2의 (a)에 도시된 바와 같이, 2-비트 메모리 셀은 4개의 프로그램 상태(L0, L1, L2 및 L3) 중 하나의 임계 전압을 유지하여 데이터를 저장하며, L0 상태는 이레이즈 상태에 상응한다. 또한, 2-비트 메모리 셀의 데이터는 전압이 증가하는 순서로 3개의 서로 다른 기준 전압(Ref0,1, Ref1,2 및 Ref2,3)을 이용하여 리드될 수 있다.
도 2의 (b)는 프로그램 상태(L0~L3)와 2-비트 데이터 값의 대응 관계를 나타내는 도면이다. 도 2의 (b)에 도시된 바와 같이, 각 프로그램 상태(L0, L1, L2 및 L3)는 데이터 값('11', '10', '00' 및 '01')에 상응한다. 실시 예에 따라, 데이터 값들 사이에 단 하나의 비트 변화가 인접한 임계 전압 상태들로 매핑되도록, 그레이(Gray) 코드는 임계 전압 상태와 데이터 값 사이의 매핑에 사용된다. 도 2의 (b)에 도시된 매핑은 그레이 코드이다. 도 2의 (a) 및 (b)에 도시된 일 예에서, L0 상태는 이레이즈 상태에 상응한다.
도 2의 (c)는 3-비트 데이터를 저장하는 메모리 셀의 프로그램 상태에 따른 임계 전압의 분포를 나타내는 그래프이다. 도 2의 (c)에서, 가로축은 임계 전압을 나타내고 세로축은 메모리 셀의 수를 나타낸다. 도 2의 (c)에 도시된 바와 같이, 3-비트 메모리 셀은 8개의 프로그램 상태(L0, L1, L2, L3, L4, L5, L6 및 L7) 중 하나의 임계 전압을 유지하여 데이터를 저장한다. 또한, 3-비트 메모리 셀의 데이터는 전압이 증가하는 순서로 7개의 서로 다른 기준 전압(Ref0 ,1, Ref1 ,2, Ref2,3, Ref3,4, Ref4,5, Ref5,6, 및 Ref6,7)을 이용하여 리드될 수 있다.
도 2의 (d)는 프로그램 상태(L0~L7)와 3-비트 데이터 값의 대응 관계를 나타내는 도면이다. 도 2의 (d)에 도시된 바와 같이, 각 프로그램 상태(L0, L1, L2, L3, L4, L5, L6 및 L7)는 데이터 값('111', '011', '010', '000', '001', '101', '100' 및 '110')에 상응한다. 도 2의 (d)에 도시된 매핑은 그레이 코드이다. 도 2의 (c) 및 (d)에 도시된 일 예에서, L0 상태는 이레이즈 상태에 상응한다.
실시 예에 따른 부분 페이지 압축 방법으로 리드 동작을 수행하는 방법 및 알고리즘은, 도 3 내지 도 5c 및 알고리즘 1, 2를 참조하여 보다 상세히 설명하기로 한다.
MLC 리드 동작은 페이지 데이터(예컨대, MSB(most significant bit), CSB(central significant bit), 또는 LSB(least significant bit) 페이지 데이터)를 얻기 위해 기준 전압을 이용한 여러 가지의 비교를 포함한다. 기준 전압을 이용하는 각 센싱은 연속하는 센싱의 부분 페이지(또는 부분 페이지들)와 통합된 부분 페이지를 생성한다. 부분 페이지는 중요한 리던던시(redundancy)를 포함하며 다음 기준을 사용하는 센싱을 병렬로 수행하여 컨트롤러로 압축하여 전송하기 위해 제안하는 것이 확인될 수 있다. 따라서, 도 3을 참조하여 보다 상세히 설명되는 바와 같이, 마지막 기준 비교 후에 비휘발성 메모리 장치(2000)에 의해 출력되는 입출력(IO) 데이터의 양이 축소되므로, 리드 레이턴시가 가속된다.
도 3은 본 발명의 일 실시예에 따른 부분 페이지 압축 방법을 이용하여 데이터 페이지를 리드하는 방법을 일반적인 방법과 비교하여 나타내는 도면이다. 도 3을 참조하면, 도 3의 (a)는 2개의 기준 전압을 이용하여 2개의 리드 동작을 포함하는 일반적인 데이터 페이지 리드 동작의 각 단계를 나타내고, 도 3의 (b)는 실시예에 따른 부분 페이지 압축 방법을 사용하는 리드 동작의 각 단계를 나타낸다.
도 3의 (a)를 참조하면, 일반적인 리드 방법의 단계 1(Stage 1)에서, 제1 부분 페이지는 제1 기준 전압(Ref-1)을 이용하여 복수의 메모리 셀의 데이터를 리드하여 생성되며, 제1 부분 페이지는 페이지 버퍼에 저장된다. 단계 2(Stage 2)에서, 제2 부분 페이지는 제2 기준 전압(Ref-2)을 이용하여 복수의 메모리 셀의 데이터를 리드하여 생성되며, 제2 부분 페이지는 페이지 버퍼에 저장된다. 단계 3(Stage 3)에서, 페이지 1, 2는 페이지 버퍼에서 결합되며, 결합된 페이지는 버스를 통해 호스트 또는 컨트롤러로 전송된다.
도 3의 (b)를 참조하면, 실시 예에 따른 단계 1(Stage 1)에서, 제1 부분 페이지는 제1 기준 전압(Ref-1)을 이용하여 복수의 메모리 셀(예컨대, 도 1a에 도시된 메모리 셀 어레이(2100)의 메모리 셀들)의 데이터를 리드하여 생성되며, 제1 부분 페이지는 페이지 버퍼(예컨대, 도 1a에 도시된 페이지 버퍼(123))에 저장된다.
단계 2(Stage 2)에서, 제2 부분 페이지는 제2 기준 전압(Ref-2)을 이용하여 복수의 메모리 셀의 데이터를 리드하여 생성되며, 제2 부분 페이지는 페이지 버퍼에 저장된다. 또한, 단계 2(Stage 2)에서, 제2 부분 페이지의 생성 및/또는 저장과 병렬로, 페이지 버퍼에 저장된 제1 부분 페이지는 압축된 제1 부분 페이지를 생성하기 위해 압축되고(예컨대, 도 1b에 도시된 압축 인코더(129)를 이용하여 압축됨), 압축된 제1 부분 페이지는 호스트 또는 컨트롤러(예컨대, 도 1a에 도시된 메모리 컨트롤러(1000))로 버스(예컨대, 도 1a에 도시된 메모리 시스템 버스(800))를 통해 전송된다.
단계 3(Stage 3)에서, 페이지 버퍼에 저장된 제2 부분 페이지는 압축된 제2 부분 페이지를 생성하기 위해 압축되고(예컨대, 도 1b에 도시된 압축 인코더(129)를 이용하여 압축됨), 압축된 제2 부분 페이지는 호스트 또는 컨트롤러(예컨대, 도 1a에 도시된 메모리 컨트롤러(1000))로 버스(예컨대, 도 1a에 도시된 메모리 시스템 버스(800))를 통해 전송된다.
도 3에 도시된 (b)의 예에서 버스로 전송되는 압축된 제2 부분 페이지에 포함된 총 비트 수는, 도 3에 도시된 (a)의 예에서 버스로 전송되는 결합된 페이지에 포함된 총 비트 수보다 작을 수 있다. 즉, 도 3의 (a)에 비해서 도 3의 (b)에 대하여, 마지막 기준 비교 후에 출력되는 입출력(IO)의 양이 감소되므로, 리드 레이턴시가 가속(즉, 감소)된다.
부분 페이지 압축 방법을 사용하는 리드 동작의 좀 더 상세한 예를 도 4a 내지 4d를 참조하여 설명한다.
도 4a는 본 발명의 일 실시예에 따른 부분 페이지 압축을 이용하여 리드하는 방법을 나타내는 플로우차트이다. 도 4b는 도 1a에 도시된 메모리 셀 어레이의 메모리 셀들을 나타내는 도면이다. 도 4c는 2-비트 데이터를 저장하는 메모리 셀들의 MSB(most significant bit) 및 LSB(least significant bit) 데이터 페이지의 리드 동작을 설명하기 위한 도면이다. 도 4d는 본 발명의 일 실시예에 따른 4-레벨 MLC와 관련된 리드 동작에서의 부분 페이지의 구조를 설명하기 위한 도면이다.
도 4b에 도시된 바와 같이, 예시적인 메모리 셀(40)은 5개의 셀들을 포함하며, 제1 메모리 셀(41)은 '00' 데이터를 저장하고, 제2 메모리 셀(43)은 '00' 데이터를 저장하고, 제3 메모리 셀(45)은 '10' 데이터를 저장하고, 제4 메모리 셀(47)은 '11' 데이터를 저장하고, 제5 메모리 셀(49)은 '01' 데이터를 저장한다. 메모리 셀(40)은 예를 들어, 도 1a에 도시된 메모리 셀 어레이(2100)의 제1 블록(2120)의 Page 1의 5개의 셀들일 수 있다. 실시 예에 따라 메모리 셀(40)은 메모리 셀 어레이(2100)의 워드 라인들 중 서로 동일한 워드 라인에 위치해 있다.
도 4c의 (a) 및 (b)에 도시된 데이터 값은 도 2의 (b)에 도시된 데이터 값에 대한 임계 전압 상태의 매핑과 동일하다. 도 4c에 도시된 바와 같이, 도 2의 (b)에 도시된 임계 전압 상태와 데이터 값의 매핑이 사용되는 경우, 비휘발성 메모리 장치(2000)는 기준 전압(Ref1 ,2)을 이용하여 하나의 비교(즉, 리드) 동작으로 2-비트 메모리 셀의 MSB 페이지를 리드하고, 비휘발성 메모리 장치(2000)는 기준 전압(Ref0,1 및 Ref2 ,3)을 이용하여 두 개의 비교(즉, 리드) 동작으로 2-비트 메모리 셀의 LSB 페이지를 리드할 수 있다.
본 명세서에서 사용되는 바와 같이, 데이터 페이지는 MSB 페이지, LSB 페이지 또는 CSB 페이지를 나타낸다. 또한, MSB 페이지 또는 MSB 데이터 페이지는 리드되는 복수의 MLC 중 MSB들로 구성된 페이지를 나타내고, LSB 페이지 또는 LSB 데이터 페이지는 리드되는 복수의 MLC 중 LSB들로 구성된 페이지를 나타내며, CSB 페이지 또는 CSB 데이터 페이지는 리드되는 복수의 MLC 중 CSB들로 구성된 페이지를 나타낸다.
본 명세서에서 사용되는 바와 같이, 부분 페이지 또는 임시 페이지는 복수의 MLC의 임계 전압을 기준 전압과 비교하여 수행되는 중간 비교 연산의 결과를 나타내는 비트들로 구성되는 페이지를 나타낸다. 이때, 중간 비교 연산은, 데이터 페이지를 결정하기 위해 수행되는 비교 연산들 중 하나이다. 예를 들어, 부분 페이지(또는 임시 페이지)는 페이지 데이터를 결정하기 위해 다른 부분 페이지(또는 임시 페이지)와 결합된 페이지를 나타낸다. 페이지는 데이터 페이지는 아니지만 부분 페이지(또는 임시 페이지)의 조합으로 형성되고, 부분 페이지(또는 임시 페이지)로 나타난다.
도 4a는 도 4c에 도시된 임계 전압 상태와 데이터 값의 매핑 관계를 가정하여 메모리 셀(40)의 LSB 페이지를 리드하는 예를 참조하여 설명된다. 또한, 도 4a는 다음과 같은 부분 페이지 매핑이 사용되는 예를 참조하여 설명된다. 예를 들어, 부분 페이지(Page0 ,1)는 기준 전압(Ref0 ,1) 이하의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref0 ,1) 이상의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다. 또한, 부분 페이지(Page2 ,3)는 기준 전압(Ref2 ,3) 이상의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref2 ,3) 이하의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다.
도 4a를 참조하면, 메모리 장치(2000)는 제1(1st) 부분 페이지를 결정하기 위해 적어도 하나의 제1(1st) 기준 전압을 인가한다(S410). 예를 들어, 메모리 장치(2000)는 메모리 셀(40)의 임계 전압과 기준 전압(Ref0 ,1)의 비교를 수행하여 비교 결과를 생성하고, 도 4d에 도시된 바와 같이 '00010' 비트들을 포함하는 부분 페이지(Page0,1)를 생성한다. 좀 더 구체적으로, 메모리 셀(40) 중 하나(제4 메모리 셀(47))만 기준 전압(Ref0 ,1) 이하의 임계 전압에 상응하는 데이터를 저장한다. 즉, 제4 메모리 셀(47)을 제외한 모든 메모리 셀(40)에 상응하는 부분 페이지(Page0,1)의 비트들은 '0'이고, 제4 메모리 셀(47)에 상응하는 부분 페이지(Page0,1)의 비트는 '1'이다. S410 단계에서, 부분 페이지(Page0 ,1)를 생성한 이후, 메모리 장치(2000)는 부분 페이지(Page0 ,1)를 예를 들어, 페이지 버퍼(123)에 저장할 수 있다.
메모리 장치(2000)는 제1 부분 페이지를 압축한다(S430). 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 부분 페이지(Page0 ,1)를 압축 인코더(129)로 출력하도록 페이지 버퍼(123)를 제어하고, 압축된 부분 페이지(CPage0,1)를 생성하기 위해 예를 들어, 허프만 인코딩을 이용하여 부분 페이지(Page0,1)를 압축하도록 압축 인코더(129)를 제어할 수 있다. 또한, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 압축된 부분 페이지(CPage0 ,1)를 입출력 버퍼(124)로 출력하도록 압축 인코더(129)를 제어할 수 있다.
메모리 장치(2000)는 압축된 제1 부분 페이지를 출력한다(S440). 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 압축된 부분 페이지(CPage0 ,1)가 입출력 패드(127) 및 메모리 시스템 버스(800)를 통해 메모리 컨트롤러(1000)로 출력되도록 입출력 버퍼(124)를 제어하며, 메모리 컨트롤러(1000)(또는, 호스트)는 압축된 부분 페이지(CPage0 ,1)를 수신하여 저장(예컨대, RAM(112)에 저장)한다.
메모리 장치(2000)는 제2(2nd) 부분 페이지를 결정하기 위해 제2(2nd) 기준 전압을 인가한다(S450). 예를 들어, 메모리 장치(2000)는 메모리 셀(40)의 임계 전압과 기준 전압(Ref2 ,3)의 비교를 수행하여 비교 결과를 생성하고, 도 4d에 도시된 바와 같이 '00001' 비트들을 포함하는 부분 페이지(Page2 ,3)를 생성한다. 좀 더 구체적으로, 메모리 셀(40) 중 하나(제5 메모리 셀(49))만 기준 전압(Ref2 ,3) 이상의 임계 전압에 상응하는 데이터를 저장한다. 즉, 제5 메모리 셀(49)을 제외한 모든 메모리 셀(40)에 상응하는 부분 페이지(Page2 ,3)의 비트들은 '0'이고, 제5 메모리 셀(49)에 상응하는 부분 페이지(Page2 ,3)의 비트들은 '1'이다.
실시 예에 따라, 도 4a에 도시된 바와 같이, S450 단계는 S430 단계 및 S440 단계 중 하나 또는 둘 모두와 병렬로 메모리 장치(2000)에 의해 수행될 수 있다. 다른 방법으로, S450 단계는 S430 단계 및 S440 단계 중 하나 또는 둘 모두가 수행된 이후 메모리 장치(2000)에 의해 수행되거나, S450 단계는 S430 단계 및 S440 단계 중 하나 또는 둘 모두가 수행되기 이전에 메모리 장치(2000)에 의해 수행될 수 있다.
메모리 장치(2000)는 제1 부분 페이지에 기초하여 기지의 데이터 비트를 결정한다(S455). 본 명세서에서 사용되는 기지의 데이터 비트는, LSB, MSB 또는 CSB 페이지를 리딩하는 것과 관련된 모든 복수의 비교 연산들이 완료되기 이전에 알려진 데이터 비트(예컨대, LSB, MSB 또는 CSB 페이지의 비트들)이다. 예를 들어, 도 4c의 (b)를 참조하면, 기준 전압(Ref0 ,1) 이하로 결정되는 임의의 메모리 셀들은 기준 전압(Ref2 ,3)을 이용하여 제2 비교 연산이 수행되기 전에도, '1'의 LSB를 갖는 것으로 알려져있다. 좀 더 구체적으로, 도 4c의 (b)에 도시된 매핑에 기초하여 다른 값이 가능하지 않기 때문에, S410 단계 이후에, 메모리 장치(2000)는 제4 메모리 셀(47)의 LSB가 '1'인 것을 알고 있다. 즉, S455 단계에서, 메모리 장치(2000)는 제4 메모리 셀(47)의 LSB '1'이 알려진 비트인 것으로 판단한다.
메모리 장치(2000)는 기지의 데이터 비트에 상응하는 제2 부분 페이지의 비트들을 생략하여 제2 부분 페이지를 축소시킨다(S460). 예를 들어, S455 단계에서, 메모리 장치(2000)는 제4 메모리 셀(47)의 LSB가 '1'의 값을 갖는 기지의 데이터 비트를 갖는 것으로 판단한다. 즉, 메모리 장치(2000)는 제4 메모리 셀(47)(즉, 부분 페이지(Page2 ,3)의 4번째 비트)에 상응하는 부분 페이지(Page2 ,3)의 비트를 생략하여, 도 4d에 도시된 바와 같이, '0001' 비트들을 포함하는 축소된 부분 페이지(RPage2 ,3)를 생성할 수 있다. 생략된 비트는 도 4d의 굵은 'X' 로 설명된다. 도 4d에 도시된 바와 같이, 축소된 부분 페이지(RPage2 ,3)는 부분 페이지(Page2,3)(즉, 5 비트)보다 더 적은 비트들(즉, 4 비트)을 갖는다. 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 축소된 부분 페이지(RPage2 ,3)를 저장하도록 페이지 버퍼(123)를 제어할 수 있다.
메모리 장치(2000)는 제2 부분 페이지를 압축한다(S470). 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 축소된 부분 페이지(RPage2 ,3)를 압축 인코더(129)로 출력하도록 페이지 버퍼(123)를 제어하고, 압축된 축소된 부분 페이지(CRPage2,3)를 생성하기 위해 예를 들어, 허프만 인코딩을 이용하여 축소된 부분 페이지(RPage2 ,3)를 압축하도록 압축 인코더(129)를 제어할 수 있다. 또한, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 압축된 축소된 부분 페이지(CRPage2,3)를 입출력 버퍼(124)로 출력하도록 압축 인코더(129)를 제어할 수 있다.
메모리 장치(2000)는 압축된 제2 부분 페이지를 출력한다(S480). 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 압축된 축소된 부분 페이지(CRPage2,3)가 입출력 패드(127) 및 메모리 시스템 버스(800)를 통해 메모리 컨트롤러(1000)로 출력되도록 입출력 버퍼(124)를 제어하며, 메모리 컨트롤러(1000)(또는, 호스트)는 압축된 축소된 부분 페이지(CRPage2 ,3)를 수신하여 저장(예컨대, RAM(112)에 저장)한다.
메모리 컨트롤러(1000)(또는, 호스트)는 제1 및 제2 부분 페이지를 재구성(reform)한다(S490). S490 단계에서, 메모리 컨트롤러(1000)(예컨대, 마이크로프로세서(111) 및/또는 디코더(1200))는 도 4d에 도시된 바와 같이, '00010' 비트들을 포함하는 부분 페이지(Page0 ,1)를 재구성하기 위해 예를 들어, 허프만 디코딩을 이용하여 압축된 부분 페이지(CPage0 ,1)를 압축 해제할 수 있다. 또한, 메모리 컨트롤러(1000)는 메모리 셀(40)에 데이터를 저장하기 위해 사용되는 임계 전압 상태와 데이터 값 사이의 대응 관계를 알 수 있다. 즉, 메모리 컨트롤러(1000)는 부분 페이지(Page0,1)에서 '1' 비트들에 상응하는 메모리 셀들의 LSB 비트들이 '1'인 것으로 알려져 있음을 판단할 수 있다.
또한, S490 단계에서, 메모리 컨트롤러(1000)(예컨대, 마이크로프로세서(111) 및/또는 디코더(1200))는 도 4d에 도시된 바와 같이, '0001' 비트들을 포함하는 축소된 부분 페이지(RPage2 ,3)를 재구성하기 위해 예를 들어, 허프만 디코딩을 이용하여 압축된 축소된 부분 페이지(CRPage2 ,3)를 압축 해제할 수 있다. 또한, 제4 메모리 셀의 LSB 비트가 알려진 비트라는 메모리 컨트롤러(1000)의 초기 판단에 기초하여, 메모리 컨트롤러(1000)는 알려진 비트에 상응하는 비트를 축소된 부분 페이지(RPage2 ,3)에 추가할 수 있다. 예를 들어, 메모리 컨트롤러(1000)는 도 4d에 도시된 바와 같이, '00001' 비트들을 포함하는 부분 페이지(Page2,3)를 재구성하기 위해 축소된 부분 페이지(RPage2 ,3)의 4번째 비트 위치에서 '0'을 추가하여 부분 페이지(Page2,3)를 재구성할 수 있다.
메모리 컨트롤러(1000)(예컨대, 마이크로프로세서(111))는 제1 및 제2 부분 페이지에 기초하여 메모리 셀(40)의 데이터 페이지(DataPage)를 결정한다(S495). 예를 들어, S495 단계에서, 메모리 컨트롤러(1000)는 부분 페이지(Page0,1)와 부분 페이지(Page2 ,3)에 대한 적어도 하나의 산술 연산을 수행하여 메모리 셀(40)의 LSB 페이지를 데이터 페이지(DataPage)로 결정할 수 있다. 예를 들어, 메모리 컨트롤러(1000)는 데이터 페이지(DataPage)(즉, 메모리 셀(40)의 LSB 페이지)가 '00011'인지 판단하기 위해 부분 페이지(Page0 ,1)(즉, '00010')와 부분 페이지(Page2 ,3)(즉, '00001')에 대한 비트단위의(bitwise) OR 연산을 수행할 수 있다.
S490 단계에서, 부분 페이지(Page2 ,3)를 재구성하기 위해서 '0'을 축소된 부분 페이지(RPage2 ,3)로 추가하는 대신에, 4번째 비트 위치에 대한 LSB 데이터가 이미 '1'로 알려져 있기 때문에, 메모리 컨트롤러는 간단히, 4번째 비트 위치에 대한 OR 연산을 스킵(skip)하고 5번째 비트 위치에 대한 비트단위의 OR 연산은 계속해서 수행하여 부분 페이지(Page0 ,1)(즉, '00010')와 축소된 부분 페이지(RPage2,3)(즉, '0001')에 대한 비트단위의 OR 연산을 수행할 수 있다. 즉, 메모리 셀(40)의 LSB 페이지는 '00011'인 것으로 판단한다.
따라서, 도 4a에 도시된 방법은 마지막 기준 비교(즉, S450 단계) 이후에 메모리 장치(2000)로부터 출력되는 입출력 데이터의 양이 감소되므로, 일반적인 MLC 리드 방법에 비해 리드 레이턴시가 가속된다.
도 4a에 도시된 부분 페이지 압축 방법을 사용하는 리드 동작은 LSB 페이지가 4-레벨(즉, 2-비트) MLC 메모리 셀로부터 리드되는 예를 참조하여 설명되지만, 도 4a에 도시된 실시 예에 따른 방법은 2개의 기준 전압이 MSB 페이지를 리드하는데 사용되는 경우에서 4-레벨 메모리 셀의 MSB 페이지를 리드하기 위해 적용될 수 있다. 또한, 도 4a에 도시된 실시 예에 따른 방법은 4-레벨 메모리 셀 외에 메모리 셀들(예컨대, 8-레벨 메모리 셀)의 MSB, CSB 또는 LSB 데이터 페이지를 리드하기 위해 적용될 수 있다. 이에 대해서는, 도 5a 내지 5c 및 알고리즘 2를 참조하여 보다 상세히 설명하기로 한다.
도 4a에 도시된 방법은 도 4c에 도시된 임계 전압 상태와 데이터 값 매핑이 사용되는 예를 참조하여 설명되지만, 실시 예에 따른 도 4a에 도시된 방법은 그레이(Gray) 코드의 제약 조건을 만족하는 임계 전압 상태와 데이터 값 매핑에 대해 수행될 수 있다.
도 4a에 도시된 방법은 다음과 같은 부분 페이지 매핑이 사용되는 예를 참조하여 설명된다. 부분 페이지(Page0 ,1)는 기준 전압(Ref0 ,1) 이하의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref0 ,1) 이상의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다. 또한, 부분 페이지(Page2 ,3)는 기준 전압(Ref2,3) 이상의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref2,3) 이하의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다. 그러나, 실시 예에 따라, 임의의 부분 페이지 매핑이 사용될 수 있다. 예를 들어, 실시 예에 따른 도 4a에 도시된 방법으로 S460 단계에서 기지의 데이터 비트들을 식별하기 위해 메모리 장치(2000)를 허용하는 임의의 부분 페이지 매핑이 사용될 수 있다.
도 4a에 도시된 방법은 S430, S455, S460 및 S470의 모든 단계가 수행되는 일 예를 참조하여 설명되지만, 실시 예에 따라 S455 및 S460 단계가 생략될 수 있다. 즉, S470 단계에서, 축소된 부분 페이지(RPage2 ,3)를 압축하여 압축된 축소된 부분 페이지(CRPage2 ,3)를 생성하는 대신에, 메모리 장치(2000)는 부분 페이지(Page2,3) 전체를 압축하여 압축된 부분 페이지(CPage2 ,3)를 생성할 수 있다. 즉, S480 단계에서 메모리 컨트롤러(1000)로 출력되는 페이지는 압축된 부분 페이지(CPage2,3)이고, S490 단계에서 제2 부분 페이지를 재구성하는 단계는 부분 페이지(Page2,3)를 생성하기 위해 압축된 부분 페이지(CPage2 ,3)에 대한 허프만 디코딩 연산을 수행하는 단계를 포함할 수 있다. 부분 페이지(Page0 ,1) 및 부분 페이지(Page2,3) 중 하나 또는 둘 모두의 압축의 결과로, 제2 리드 동작(즉, S450 단계) 이후 메모리 장치(2000)에 의해 출력되는 입출력 데이터의 양이 감소될 수 있으므로, 일반적인 MLC 리드 방법에 비해 리드 레이턴시가 가속된다.
다른 대안으로, 실시 예에 따라, S430 단계 및 S470 단계 중 하나 또는 둘 모두가 생략되는 반면 S455 및 S460 단계는 유지될 수 있다. 즉, S440 단계에서 압축되지 않은 부분 페이지(Page0 ,1)가 메모리 컨트롤러(1000)로 출력될 수 있고, S470 단계에서 압축되지 않은 축소된 부분 페이지(RPage2 ,3)가 메모리 컨트롤러(1000)로 출력될 수 있다. S460 단계에서 하나의 부분 페이지(Page2 ,3)의 축소의 결과로, 제2 리드 동작(즉, S450 단계) 이후 메모리 장치(2000)에 의해 출력되는 입출력 데이터의 양이 감소될 수 있으므로, 일반적인 MLC 리드 방법에 비해 리드 레이턴시가 가속된다.
2-비트 셀에 적용되는, 실시 예에 따른 부분 페이지 압축 방법을 사용하여 데이터 페이지를 리드하는 방법은, 하기와 같이 의사코드(pseudocode)로 표현된 알고리즘 1(Algorithm 1)을 참조하여 상세히 설명된다.
Figure pat00001
실시 예에 따르면, 알고리즘 1(Algorithm 1)에서의 (F1) 단계 및 (F2) 단계는 각각이 도 4a에 도시된 S410 단계 및 S430 단계에 상응하고, (F3) 단계는 도 4a에 도시된 S440 단계 및 S450 단계에 상응하고, (F4) 단계는 도 4a에 도시된 S455 단계 및 S460 단계에 상응하고, (F5) 단계 및 (F6) 단계는 각각이 도 4a에 도시된 S470 단계 및 S480 단계에 상응하며, (F7) 단계는 도 4a에 도시된 S490 단계 및 S495 단계에 상응한다.
동일한 워드 라인 상에 위치하고, 도 2의 (b)에 도시된 임계 전압 상태와 데이터 값의 매핑에 따라 데이터를 저장하는 4-레벨(즉, 2-비트) 메모리 셀에 대해 고려하면, 4-레벨 셀의 제1 MLC 페이지를 리드하는 동작은 기준 전압(Ref0-1, Ref2-3)에 의해 수행된다. 이때, Pz=(8K+1K) 이다. 제1 MLC 페이지를 리드하는 동작과 관련되는 리드 레이턴시는 2tREF+9KtRC이다. 부분 페이지를 압축하는데 있어서, tREF 이후 부분 페이지(Page0 ,1)가 압축된다. 페이지 비트들이 p(1)=0.25 및 p(0)=0.75를 갖도록 분산되기 때문에, H(p)는 ~0.8이다. 이때, p(x)는 x 값의 확률을 나타내고, H(p)는 하기와 같은 수학식 1에 의해 정의되는 이진 엔트로피 함수를 나타낸다.
Figure pat00002
기준 전압(Ref2 ,3)을 이용하는 센싱을 병렬로 수행하여 제1 MLC 페이지는 ~6KB로 압축되고 메모리 컨트롤러(1000)로 전송될 수 있다. 상술한 바와 같이, 부분 페이지(Page2 ,3)는 부분 페이지(Page0 ,1)에 상응하는 비트가 '1'인 위치에 있는 부분 페이지(Page2 ,3)의 모든 '0' 비트들이 감소되도록 축소된다. 부분 페이지(Page0,1)의 '1'의 위치가 이미 전송된 기지의 비트들이기 때문에 삭제된 비트는 무시될 수 있다. 축소 결과는 페이지 사이즈의 0.75까지의 25% 감소이다(즉, '1'의 25%는 이미 전송되었기 때문이다). 남아있는 데이터(즉, 축소된 페이지(RPage2 ,3)의 데이터)는 p(1)=0.33 및 p(0)=0.66로 분산된다. 이때,
Figure pat00003
이다. 새로운 리드 레이턴시는 2tREF+5.4KtRC이다.
또한, 알고리즘 1(Algorithm 1)은 복수의 기준 비교를 포함하는 리드 동작에 적용되기 때문에, 4-레벨 셀의 남아있는 MLC 페이지가 하나의 기준 전압({Ref1-2})을 이용하여 리드되고 일반적인 방법으로 리드될 수 있음에 주의해야 한다.
4-레벨 MLC에서, 기준 전압({Ref0-1, Ref2-3})을 사용하는 가속 페이지 리드 레이턴시는 수학식 2와 같이 나타난다. 여기서, R은 알려진 이전의 센싱 데이터로 인한 마지막 페이지 사이즈 전송의 감소 백분율을 의미한다('1'의 인덱스는 이미 출력되었기 때문에 마지막 부분 페이지에 따라 마지막 페이지는 '0' 인덱스를 통해 실행하고 '1'을 표시함). 이러한 R 값은, 하기와 같이 수학식 3에 의해 정의된다.
Figure pat00004
Figure pat00005
즉, R 값은
Figure pat00006
이다. R의 크기는 페이지 사이즈에 의해 나누어지는 하나 이상의 이전의 센싱된 페이지(이 경우, 부분 페이지(Page0 ,1))의 해밍 웨이트(hamming weight)(즉, '1'의 수)인 W(PR)에 의해 결정된다.
본 발명의 실시 예에 따른 부분 페이지 압축 방법을 사용하여 데이터 페이지를 리드하는 방법을 3-비트 셀에 적용하여 도 5a, 5b, 5c 및 알고리즘 2를 참조하여 설명한다.
도 5a는 도 1a에 도시된 메모리 셀 어레이의 메모리 셀들을 나타내는 도면이다. 도 5b는 3-비트 데이터를 저장하는 메모리 셀들의 MSB, CSB 및 LSB 데이터 페이지의 리드 동작을 설명하기 위한 도면이다. 도 5c는 본 발명의 일 실시예에 따른 8-레벨 셀과 관련된 리드 동작에서 부분 페이지의 구조를 설명하기 위한 도면이다.
도 5a에 도시된 바와 같이, 예시적인 메모리 셀(50)은 5개의 셀들을 포함하며, 제1 메모리 셀(51)은 '110' 데이터를 저장하고, 제2 메모리 셀(53)은 '111' 데이터를 저장하고, 제3 메모리 셀(55)은 '101' 데이터를 저장하고, 제4 메모리 셀(57)은 '100' 데이터를 저장하고, 제5 메모리 셀(59)은 '000' 데이터를 저장한다. 메모리 셀(50)은 예를 들어, 도 1a에 도시된 메모리 셀 어레이(2100)의 제1 블록(2120)의 Page 1의 5개의 8-레벨 셀들일 수 있다. 실시 예에 따라 메모리 셀(50)은 메모리 셀 어레이(2100)의 워드 라인들 중 서로 동일한 워드 라인에 위치해 있다.
도 5b의 (a) 내지 (c)에 도시된 데이터 값은 도 2의 (d)에 도시된 데이터 값에 대한 임계 전압 상태의 매핑과 동일하다. 도 5b에 도시된 바와 같이, 도 2의 (d)에 도시된 임계 전압 상태와 데이터 값의 매핑이 사용되는 경우, 비휘발성 메모리 장치(2000)는 기준 전압(Ref4 ,5 및 Ref0 ,1)을 이용하여 두 개의 비교(즉, 리드) 동작으로 3-비트 메모리 셀의 MSB 페이지를 리드하고, 비휘발성 메모리 장치(2000)는 기준 전압(Ref2 ,3 및 Ref6 ,7)을 이용하여 두 개의 비교(즉, 리드) 동작으로 3-비트 메모리 셀의 CSB 페이지를 리드하고, 비휘발성 메모리 장치(2000)는 기준 전압(Ref5 ,6, Ref3 ,4 및 Ref1 ,2)을 이용하여 세 개의 비교(즉, 리드) 동작으로 3-비트 메모리 셀의 LSB 페이지를 리드할 수 있다.
3-비트 셀에 적용되는, 실시 예에 따른 부분 페이지 압축 방법을 사용하여 데이터 페이지를 리드하는 방법은, 하기와 같이 의사코드(pseudocode)로 표현된 알고리즘 2(Algorithm 2)을 참조하여 설명된다.
Figure pat00007
도 4a는 4-레벨 셀의 데이터 페이지가 리드되는 경우의 일 예를 참조하여 설명되지만, 도 4a에 도시된 방법은 예컨대 8-레벨 셀을 포함하는 4 이상의 레벨을 갖는 메모리 셀에 대해 수행될 수 있다. 예를 들어, 실시 예에 따라, 알고리즘 2(Algorithm 2)에서의 (E1) 단계는 S410 내지 S495의 모든 단계의 완료에 상응하고, (E2) 및 (E3) 단계는 도 4a에 도시된 S410 단계에 상응하고, (E4) 단계는 도 4a에 도시된 S430 단계 및 S450 단계에 상응하고, (E5) 단계는 도 4a에 도시된 S455 단계 및 S460 단계에 상응하고, (E6) 및 (E7) 단계는 각각이 도 4a에 도시된 S470 단계 및 S480 단계에 상응하며, (E8) 단계는 도 4a에 도시된 S490 단계 및 S495 단계에 상응한다.
알고리즘 2는 메모리 셀(50)의 LSB 페이지를 리드하고, 다음과 같은 부분 페이지 매핑이 사용되는 예를 참조하여 좀 더 상세히 설명된다. 부분 페이지(Page3,4)는 기준 전압(Ref3 ,4) 이상의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref3 ,4) 이하의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다. 부분 페이지(Page5 ,6)는 기준 전압(Ref5 ,6) 이상의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하고 기준 전압(Ref5 ,6) 이하의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하여 생성된다. 또한, 부분 페이지(Page1 ,2)는 기준 전압(Ref1,2) 이상의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하고 기준 전압(Ref1,2) 이하의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하여 생성된다.
알고리즘 2를 참조하면, (E1) 단계에서 메모리 장치(2000)는 데이터 페이지를 리드하는데 사용되는 기준 전압을 결정한다. 메모리 장치(2000)는 두 개의 기준 전압만이 사용되는 것으로 결정한 경우(즉, 리드되는 데이터 페이지가 도 5b에 도시된 MSB 페이지 또는 CSB 페이지), 메모리 장치(2000)는 알고리즘 1에 대해 상술한 기준 전압들(Ref0 ,1, Ref2 ,3) 대신에 데이터 페이지를 리드하기 위해 필요한 두 개의 기준 전압을 이용하여 알고리즘 1을 수행한다.
메모리 장치(2000)는 세 개의 기준 전압이 사용되는 것으로 결정한 경우(즉, 리드되는 데이터 페이지가 도 5b에 도시된 LSB 페이지), 메모리 장치(2000)는 (E2) 및 (E3) 단계를 진행한다. (E2) 단계에서 메모리 장치(2000)는 메모리 셀(50)의 임계 전압을 기준 전압(Ref3 ,4)과 비교하여 부분 페이지(Page3 ,4)를 생성한다. (E3) 단계에서 메모리 장치(2000)는 메모리 셀(50)의 임계 전압을 기준 전압(Ref5,6)과 비교하여 부분 페이지(Page5 ,6)를 생성한다. 도 5c에 도시된 바와 같이, 부분 페이지(Page3,4)는 '10110'이고, 부분 페이지(Page5,6)는 '01101'이다.
(E4) 단계에서, 메모리 장치(2000)는 메모리 셀(50)의 임계 전압을 기준 전압(Ref1,2)과 비교하여 부분 페이지(Page1 ,2)를 생성한다. 도 5c에 도시된 바와 같이, 부분 페이지(Page1 ,2)는 '01000'이다. 부분 페이지(Page1 ,2)의 생성과 병렬로, 메모리 장치(2000)는 부분 페이지(Page3 ,4 및 Page5 ,6)에 대한 비트단위의(bitwise) AND 연산을 수행하여 결합된 부분 페이지(Part1and2)를 생성하고, 메모리 장치(2000)는 결합된 부분 페이지(Part1and2)를 압축(예컨대, 압축 인코더(129)를 이용하여 허프만 인코딩을 적용)하여 압축된 결합된 부분 페이지(CPart1and2)생성하고, 메모리 장치(2000)는 압축된 결합된 부분 페이지(CPart1and2)를 메모리 컨트롤러(1000)로 출력한다. 예를 들어, 메모리 장치(2000)는 압축된 결합된 부분 페이지(CPart1and2)를 메모리 시스템 버스(800)를 이용하여 메모리 컨트롤러(1000)로 출력하고, 메모리 컨트롤러(1000)는 압축된 결합된 부분 페이지(CPart1and2)를 수신하여 저장한다(예컨대, RAM(112)에 저장). 도 5c에 도시된 바와 같이, 결합된 부분 페이지(Part1and2)는 '00100'이다.
(E5) 단계에서, 메모리 장치(2000)는 결합된 부분 페이지(Part1and2)에 존재하는 '1'값을 갖는 메모리 셀에 상응하는 '0' 비트를 제거하여 축소된 부분 페이지(RPage1,2)를 생성한다. 예를 들어, 결합된 부분 페이지(Part1and2)와 부분 페이지(Page1,2)의 비교 없이도, 메모리 장치(2000)는 '1'의 LSB 페이지 값을 갖는 메모리 셀에 상응하는 '1'값을 갖는 결합된 부분 페이지(Part1and2)의 비트들을 판단할 수 있다. 즉, 메모리 장치(2000)는 제3 메모리 셀(55)에 상응하는 LSB 페이지 비트가 기지의 데이터 비트인 것으로 판단할 수 있다. 따라서, 도 5c에 도시된 바와 같이, (E5) 단계는 메모리 장치(2000)가 '0100'의 값을 갖는 축소된 부분 페이지(RPage1 ,2)를 생성하기 위해 부분 페이지(Page1 ,2)의 세 번째 비트를 생략하는 단계를 포함한다. 생략된 비트는 도 5c의 굵은 'X' 로 설명된다.
(E6) 단계에서, 메모리 장치(2000)는 압축된 축소된 부분 페이지(CRPage1,2)를 생성하기 위해 축소된 부분 페이지(RPage1 ,2)를 압축(예컨대, 압축 인코더(129)를 이용하여 허프만 인코딩을 수행)한다.
(E7) 단계에서, 메모리 장치(2000)는 압축된 축소된 부분 페이지(CRPage1 ,2)를 메모리 컨트롤러(1000)로 출력한다. 예를 들어, 메모리 장치(2000)는 메모리 시스템 버스(800)를 통해 압축된 축소된 부분 페이지(CRPage1,2)를 메모리 컨트롤러(1000)로 출력하고, 메모리 컨트롤러(1000)는 압축된 축소된 부분 페이지(CRPage1 ,2)를 수신하여 저장(예컨대, RAM(112)에 저장)한다.
(E8) 단계에서, 메모리 컨트롤러(1000)(예컨대, 마이크로프로세서(111) 및/또는 디코더(1200))는, 도 5c에 도시된 바와 같이 '00100' 비트들을 포함하는 결합된 부분 페이지(Part1and2)를 재구성하기 위해 예컨대, 허프만 디코딩을 이용하여 압축된 결합된 부분 페이지(CPart1and2)를 압축 해제한다. 또한, 메모리 컨트롤러(1000)는 메모리 셀(50)에 데이터를 저장하기 위해 사용되는 임계 전압과 데이터 값 사이의 대응 관계를 알 수 있다. 즉, 메모리 컨트롤러(1000)는 결합된 부분 페이지(Part1and2)에서 '1'비트에 상응하는 메모리 셀들의 LSB 비트가 '1'로 알려진 것을 판단할 수 있다.
또한, 메모리 컨트롤러(1000)(예컨대, 마이크로프로세서(111) 및/또는 디코더(1200))는, 도 5c에 도시된 바와 같이 '0100' 비트들을 포함하는 축소된 부분 페이지(RPage1 ,2)를 재구성하기 위해 예컨대, 허프만 디코딩을 이용하여 압축된 축소된 부분 페이지(CRPage1 ,2)를 압축 해제할 수 있다. 또한, 메모리 컨트롤러(1000)는 데이터 페이지(DataPage)(즉, 메모리 셀(50)의 LSB 페이지)를 '01100'으로 생성하기 위해, '00100' 값을 갖는 결합된 부분 페이지(Part1and2)와 '0100' 값을 갖는 축소된 부분 페이지(RPage1 ,2) 사이에 비트 단위의 OR 연산을 수행하여 예를 들어, 축소된 부분 페이지(RPage1 ,2)의 생략된 세 번째 비트를 스킵(skpi)하고 생략된 세 번째 비트를 기지의 LSB 비트 '1'로 대신하여 데이터 페이지(DataPage)를 구성할 수 있다.
부분 페이지 압축을 사용하는 8-레벨 MLC 에서, 랜덤 리드 레이턴시(random read latency)는, 두 페이지(즉, 2개의 기준 전압을 사용하여 리드되는 페이지)에 대한
Figure pat00008
에 의해 가속되고, 세 페이지(즉, 3개의 기준 전압을 사용하여 리드되는 페이지)에 대한
Figure pat00009
에 의해 가속된다.
예를 들어, 도 2 및 도 5b는 8-레벨 MLC에 대한 데이터 비트의 매핑을 나타낸다. 도 5b의 (a)는 MSB 페이지의 리드 동작과 관련된 기준 전압들을 나타낸다. 랜더마이저(randomizer)에 의한 레벨들 사이의 균일 분포(uniform distribution)로 인해, 기준 전압(Ref4 ,5)으로 센싱한 결과 부분 페이지(Page4 ,5)는 Pz=8K+1K의 사이즈를 갖고 37.5%의 1과 62.5%의 0을 갖는다. 엔트로피(H(p))는 0.95이다.
기준 전압(Ref4 ,5)을 이용한 제1 센싱 이후, 어레이 셀들은 이전 부분 페이지(Page4,5)의 출력과 병행하여 기준 전압(Ref0 ,1)과 비교된다. 이전의 부분 페이지(Page4,5)에서 1에 상응하는 부분 페이지(Page0 ,1)의 인덱스들이 무시되도록 기준 전압(Ref0 ,1)을 이용하여 센싱된 데이터(예컨대, 부분 페이지(Page0 ,1))가 축소된다. 축소된 이후, 부분 페이지(Page4 ,5)가 p(1)=0.2, p(0)=0.8 및 H(p)=0.72로 압축된다.
제2 센싱이 완료된 이후, 메모리 장치(2000)는 전체 페이지 사이즈의 0.72X0.625=0.45(즉, 45%)인 사이즈를 갖는 페이지를 출력하므로, 리드 동작이
Figure pat00010
에 의해 가속된다. 동일한 결과가 CSB 페이지에 대해서도 유지된다. LSB 페이지의 리드 동작은 알고리즘 2를 참조하여 상세히 설명되어있다. 결합된 부분 페이지(Part1and2)는 p(1)=0.25, p(0)=0.75 및 H(p)=0.81로 압축된다. 압축된 결합된 부분 페이지(CPart1and2)의 출력과 병행하여, 기준 전압(Ref1,2)을 이용한 센싱 동작이 수행되고, 부분 페이지(Page1 ,2)가 MSB/CSB 페이지와 유사한 플로우로 축소되어 압축된다. 제3 기준 비교 이후, 메모리 장치(2000)는 전체 페이지의 0.9X0.75=0.68(즉, 68%)인 사이즈를 갖는 페이지를 출력한다.
리드 레이턴시의 이득은 (부분 페이지 압축을 이용한 리드 동작)/(일반적인 리드 동작)의 비율로 표현될 수 있다. 리드 레이턴시 이득의 분석은 다음과 같은 가정에 기초하여 설명된다.
메모리 셀 어레이(2100)에서 비교 동작을 수행한 결과를 버퍼(123)에 저장하는 단일 기준 센싱의 지속 시간(tREF)은 30 또는 25 μs이고, tRC 파라미터는 1.25, 2.5 및 5 ns 사이에서 가변한다. 4-레벨에서, 하나의 페이지만이 가속된다(즉, 두 개의 기준 전압을 이용한 페이지 리드). 8-레벨에서, MSB 및 CSB 페이지가 LSB 페이지보다 더 개선되는 경우 모든 세 페이지가 가속된다. 리드 가속의 분석 결과는 하기의 표 1-3에 나타난 바와 같다.
4-레벨 가속, MSB 페이지
tRC[nS] 8KB Page 16KB Page
1.25 1.05 1.09
2.5 1.09 1.15
5 1.15 1.23
8-레벨 가속, MSB/CSB 페이지
tRC[nS] 8KB Page 16KB Page
1.25 1.11 1.21
2.5 1.21 1.36
5 1.36 1.55
8-레벨 가속, LSB 페이지
tRC[nS] 8KB Page 16KB Page
1.25 1.04 1.08
2.5 1.08 1.14
5 1.14 1.21
표 1-3에 나타난 바와 같이, 실시 예에 따라, 부분 페이지 압축을 이용한 리드 방법은 페이지 사이즈가 증가할 때 더 큰 효과를 가질 수 있다. 실시 예에 따라, 개선 한계는 최소 엔트로피(H(p)) 및 축소(R)를 갖는 기준에 기초할 수 있으며, 하기의 수학식 4에 의해 표현될 수 있다.
Figure pat00011
표 1-3에 나타난 바와 같이, 실시 예에 따라, 부분 페이지 압축을 이용한 리드 방법은 셀당 비트수가 증가할 때 더 큰 효과를 가질 수 있다. 예를 들어, 더 많은 기준 전압을 가지면 가장 낮은 엔트로피를 갖는 기준 전압이 선택될 수 있다.
Ⅲ. 압축 알고리즘
실시 예에 따른 부분 페이지 압축 동작을 이용한 리드 동작에 포함된 압축 동작을 수행할 방법을 결정하기 위한 고려 사항이 설명된다.
실시 예에 따라, 적어도 하나의 목적은 낮은 게이트 카운트(gate count)를 갖는 엔트로피 율을 달성하는 압축 알고리즘의 구현이다. 실시 예에 따라, 압축이 NAND 칩(예컨대, 메모리 장치(2000))에 구현되기 때문에, 비교적 간단한 인코더의 구현을 가능하게 하기 위해, 본 명세서상에 기재된 부분 페이지 압축 방법을 사용하는 리드 동작 및 도 1a에 도시된 압축 인코더(129)를 이용하기 위해 허프만 코드가 예시적인 압축 코드로 선택된다.
실시 예에 따라, 하기의 적어도 네 개의 소스 분포를 살펴본다.
1. 8-레벨 메모리 셀의 MSB 및 CSB 페이지를 리드하는 동안 기준 전압들(Ref0,1 및 Ref6 ,7)을 이용하여 비교 동작을 수행하는 경우 경험되는 분포(p(1)=0.2, p(0)=0.8)
2. 8-레벨 메모리 셀의 MSB 및 CSB 페이지를 리드하는 동안 기준 전압들(Ref4,5 및 Ref2 ,3)을 이용하여 비교 동작을 수행하는 경우 경험되는 분포(p(1)=0.375, p(0)=0.625)
3. 8-레벨 메모리 셀의 LSB 페이지 및 4-레벨 메모리 셀의 MSB 페이지를 리드하는 동안 기준 전압들(Ref3 ,4 및 Ref5 ,6)을 이용하여 비교 동작을 수행하는 경우 경험되는 분포(p(1)=0.25, p(0)=0.75)
4. 8-레벨 메모리 셀의 LSB 페이지를 리드하는 동안 기준 전압(Ref1 ,2)을 이용하여 비교 동작을 수행하는 경우 경험되는 분포(p(1)=0.333, p(0)=0.666)
구현 복잡도 및 압축 효율 사이의 트레이드-오프(trade-off)의 분석이 하기에 설명된다.
각 소스 분포에 포함된 구현 복잡도 및 압축 효율 사이의 상기 참조된 트레이드-오프(trade-off)의 분석은 2-6 비트들의 워드 길이에 대한 확률 분포를 계산하는 단계를 포함한다. 각 워드 길이와 확률에 대해, 허프만 코드가 설계되고 달성된 압축비를 얻는다. 워드 길이가 증가함에 따라, 압축 인코더가 더 큰 세트의 워드 매핑에서 선택해야 하기 때문에 압축 인코더(예컨대, 압축 인코더(129))의 설계는 더 높은 게이트 카운트를 가질 수 있다. 반면에, 더 긴 워드 길이는 소스 엔트로피에 더 가까워질 수 있다.
도 6은 분석적 워드 길이와 압축비 결과를 비교하는 테이블을 나타내는 도면이다. 도 6을 참조하면, 도 6의 (a)-(d)는 상술한 네 가지 분포 타입 각각에 대하여 복수의 다른 길이의 입력(즉, 2, 3, 4, 5 및 6 비트들의 입력 워드 길이에 대한 허프만 압축 동작)에 대한 코드 워드(code word)의 개수, 압축 값, 및 엔트로피 값으로부터의 갭(gap)을 나타낸 테이블이다. 트레이트-오프 분석에 기초하여, 실시 예에 따라, 입력 인코더 워드의 사이즈는 모든 소스 분포에 대해 3 비트 사이즈로 선택되었다. 그러나, 메모리 장치(2000)의 제조자 및 사용자의 선택에 따라 다른 사이즈들(예컨대, 2, 3, 4 또는 4 이상의 비트들)이 사용될 수 있다.
도 7a는 3-비트 입력에 대한 허프만(Huffman) 코드의 예시적인 구현의 특성을 설명하는 테이블을 나타내는 도면이다. 도 7a를 참조하면, 도 7a의 (a)-(d)는 상술한 네 가지 분포 타입 각각에 대하여 각각의 가능한 3-비트 입력 워드(즉, '000', '001', '010', '011', '100', '101', '110' 및 '111')에 대한 출력 비트들, 비트들에 대한 출력 길이, 발생 확률, 및 발생 확률과 출력 길이의 곱(product)을 나타내는 값을 도시한 테이블이다.
도 7b는, 분포 타입(p(1)=0.125, p(0)=0.875)에 대하여 복수의 다른 길이의 입력(즉, 2, 3, 4, 5 및 6 비트들의 입력 워드 길이에 대한 허프만 압축 동작)에 대한 코드 워드(code word)의 개수, 압축 값, 및 엔트로피 값으로부터의 갭(gap)을 도시한 테이블과, 분포 타입(p(1)=0.125, p(0)=0.875)에 대하여 각각의 가능한 4-비트 입력 워드(즉, '0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110' 및 '1111')에 대한 출력 비트들, 비트들에 대한 출력 길이, 발생 확률, 및 발생 확률과 출력 길이의 곱(product)을 나타내는 값을 포함하는 특성인 4-비트 입력에 대한 허프만(Huffman) 코드의 예시적인 구현의 특성을 설명하는 테이블을 포함한다.
소프트 정보(예컨대, LLR(Log Likelihood Ratio) 데이터)를 결정하기 위해, 실시 예에 따라 부분 페이지 압축 동작을 사용하여 리드 동작을 실행하는 동안 생성된 부분 페이지를 이용하는 방법을 도 8을 참조하여 보다 상세히 설명한다.
Ⅳ. 소프트 정보(Soft Information) 추출
단일 기준 비교(예컨대, 도 4a의 S410 단계, S450 단계 또는 알고리즘 1, 2의 (F1), (F3), (E2), (E3) 또는 (E4) 단계에서 수행되는 단일 기준 비교)의 로우 데이터(raw data)는 페이지 비트의 LLR(Log Likelihood Ratio)에 대한 소프트 정보를 추출하는데 사용될 수 있다. 실시 예에 따라, 단일 기준 비교에 기초하여 소프트 정보를 추출하는 방법은 도 8과 8-레벨 메모리 셀의 MSB 페이지를 참조하여 하기에 설명된다.
도 8은 본 발명의 일 실시예에 따른 부분 페이지 압축 및 소프트 데이터(soft data) 추출을 리드하는 방법을 나타내는 플로우차트이다.
도 8의 S810 단계 내지 S895 단계는, 4-레벨 셀의 LSB 페이지 데이터를 리드하고 비교 동작을 수행하기 위해 도 4c의 (b)에 도시된 기준 전압들(Ref0 ,1 및 Ref2,3)을 이용하는 대신에, 도 8에서는 8-레벨 셀의 MSB 페이지 데이터를 리드하고 비교 동작을 수행하기 위해 메모리 장치(2000)가 도 5b의 (a)에 도시된 기준 전압들(Ref0,1 및 Ref4 ,5)을 이용하는 구성을 제외하고, 도 4a 및 알고리즘 1에 대해 상술한 S410 단계 내지 S495 단계와 동일하다.
따라서, S810 단계에서 메모리 장치(2000)에 의해 생성된 부분 페이지는 부분 페이지(Page0 ,1)이고, S850 단계에서 메모리 장치(2000)에 의해 생성된 부분 페이지는 부분 페이지(Page4 ,5)이다. 마찬가지로, S890 단계에서 메모리 컨트롤러(1000)(또는 호스트)에 의해 재구성되고 S895 단계에서 데이터 페이지(즉, 복수의 8-레벨 셀의 MSB 페이지)를 결정하기 위해 메모리 컨트롤러(1000)(또는 호스트)에 의해 사용되는 부분 페이지는 부분 페이지들(Page0,1, Page4 ,5)이다.
또한, 도 8에 도시된 방법은, S897 단계 및 S899 단계를 포함한다. S897 단계에서, 메모리 컨트롤러(1000)는 제1 및 제2 부분 페이지의 적어도 하나(즉, Page0,1 및 Page4,5의 적어도 하나)에 기초하여 LLR 값을 결정할 수 있다.
예를 들어, 부분 페이지(Page0 ,1)의 내용(복수의 메모리 셀의 임계 전압과 기준 전압(Ref0 ,1) 사이의 비교 동작을 수행하여 생성된)은 메모리 컨트롤러(1000)가 하나 이상의 8-레벨 셀의 MSB 페이지의 '1' 비트들 중 이레이즈 상태(즉, 도 2의 (c)에 도시된 L0 상태)에 상응하는 '1' 비트들을 식별하는 정보를 저장하도록 한다.
실시 예에 따라, 메모리 컨트롤러(1000)는 기준 전압(Ref4-5)을 이용하는 비교 동작에 기초하여 L5, L6 또는 L7 상태에 대응하도록 결정되는 '1' 비트들보다 더 낮은 신뢰성을 갖는 L0 상태에 대응하도록 결정되는 '1' 비트들을 주시할 수 있다. 예를 들어, L6 및 L7 상태에서의 '1' 비트들은 인접한 레벨들에서 유사한 값으로 인해 신뢰할 수 있으며, 일반적으로 에러는 L5 상태에서만 상대적으로 가능성이 있다. 즉, 높은 LLR 값(더 큰 신뢰성을 나타내는)은 기준 전압(Ref4-5)으로 센싱되는 1로 할당될 수 있다.
또한, 메모리 컨트롤러(1000)는 8-레벨 셀의 1의 MSB 페이지에 대하여 상술한 추가 데이터가 8-레벨 셀의 0의 MSB 페이지에 대해 유사한 형태로 존재할 필요가 없기 때문에 기준 전압(Ref0,1)에 기초하여 결정된 MSB 페이지 1로 할당된 LLR 값(LLR1 with Ref0 -1)과 기준 전압(Ref4,5)에 기초하여 결정된 MSB 페이지 1로 할당된 LLR 값(LLR1 with Ref4 -5) 사이에 있는 MSB 페이지 0에 대한 LLR 값(LLR0)을 할당할 수 있다. 즉, 8-레벨 셀의 MSB 페이지의 다른 비트들과 관련된 LLR 값들 사이에 상기 언급된 관계는 수학식 5에 의해 하기와 같이 정의될 수 있다.
Figure pat00012
따라서, S897 단계에서, 메모리 컨트롤러(1000)는 수학식 5에 기초하여 1 및 0의 MSB 데이터 페이지(DataPage)(예컨대, 복수의 8-레벨 메모리 셀의 MSB 데이터 페이지)에 대한 LLR 값을 결정할 수 있다. 예를 들어, 마이크로프로세서(111)는 LLR 값을 산출하고, LLR 값을 예컨대, RAM(112)에 저장할 수 있다.
다음으로, S899 단계에서, 메모리 컨트롤러(1000)는 S897 단계에서 결정된 LLR 값에 기초하여 상기 데이터 페이지(DataPage)(예컨대, 복수의 8-레벨 메모리 셀의 MSB 데이터 페이지)를 디코딩할 수 있다. 예를 들어, 마이크로프로세서(111)는 LLR 값을 이용하여 LDPC 디코딩을 수행하는 이미 알려진 방식에 따라, S897 단계에서 결정된 LLR 값을 이용하여 데이터 페이지(DataPage)에 대한 LDPC 디코딩을 수행하도록 디코더(1200)를 제어할 수 있다. 하기에서 좀 더 상세히 설명되는 바와 같이, 도 8에 도시된 방법에 대하여 상술한 바와 같이 생성된 LLR 값의 사용은 디코더(1200)에 의한 향상된 LDPC 디코딩이 될 수 있다.
수학식 5에 의해 나타난 관측치에 기초하여, LDPC 디코더는 LDPC 디코딩 동작을 완료하는데 필요한 LDPC 반복 횟수의 감소를 분석하기 위해 상기에서 언급된 부가 정보(즉, LLR 값)를 이용하여/부가 정보 없이 시뮬레이션 되었다. 상기에서 언급된 시뮬레이션은 1-15 사이의 범위의 LLR 값이 사용되었다. 선택된 LLR 값은, 기준 전압(Ref0-1)을 이용하여 결정된 1의 MSB 페이지에 대해 3이었고, 0의 MSB 페이지에 대해 4였고, 기준 전압(Ref4-5)을 이용하여 결정된 1의 MSB 페이지에 대해 5였다. 에러가 비트 천이를 갖는 프로그램 상태들 사이에 균일하게 분포된 것으로 가정하였다. 상기와 같은 시뮬레이션 결과에 따라, LDPC 디코딩 동작을 완료하는데 필요한 LDPC 반복 횟수가 10% 까지 감소하였고, 상응하는 전력 또한 감소하였음이 관찰되었다.
다음으로, 버스 전송 오버헤드(overhead)를 처리하는 방법을 설명한다.
Ⅴ. 버스 전송 오버헤드
부분 페이지 압축 방법으로 리드하지만, 도 4a, 도 8 및 알고리즘 1, 2를 참조하여 상술한 일 예는, 페이지 리드 동작의 제2 리드 동작 이후 적은 데이터가 전송될 수 있기 때문에 일반적인 리드 동작과 비교하여 리드 가속을 제공하므로, 상기 방법은 랜덤 페이지 리드 동작의 일부로 수행될 때 일반적인 리드 동작에 비해 페이지당 전체 바이트(byte) 전송이 증가될 수 있다. 증가된 전체 바이트 전송은 버스 전송 패널티로 불린다. 본 명세서에서 사용되는 바와 같이, 하나의 데이터 페이지 리드 동작의 결과는 또 다른 데이터 페이지 리드 동작의 결과에 의존하지 않기 때문에(예컨대, LSB 페이지를 리드하기 전에 MSB 페이지를 리드하고, MSB 페이지를 리드하기 전에 LSB 페이지를 리드하고, LSB 페이지 이전에 리드되는 MSB 페이지를 리드하기 전에 CSB 페이지를 리드하는 등), 랜덤 페이지 리드 동작은 임의의 순서로 수행될 수 있는 데이터 페이지 리드 동작을 나타낸다.
예를 들어, 도 2의 (d)에 도시된 임계 전압과 데이터 값의 매핑을 이용하여, 도 4a에 기재된 방법을 이용하여 복수의 8-레벨 셀의 MSB 또는 CSB 페이지를 리드하는 경우, 제1 부분 페이지의 전송은 전체 MSB 또는 CSB 페이지 전송의 95% 인 사이즈를 가질 수 있으며, 제2 부분 페이지의 전송은 전체 MSB 또는 CSB 페이지 전송의 0.72X0.625=0.45(즉, 45%)인 사이즈를 가질 수 있다. 제1 및 제2 부분 페이지의 총 전송 사이즈는 전체 MSB 또는 CSB 페이지 전송 사이즈의 140% 이다.
다른 예로, 도 2의 (d)에 도시된 임계 전압과 데이터 값의 매핑을 이용하여, 도 4a에 기재된 방법을 이용하여 복수의 8-레벨 셀의 LSB 페이지를 리드하는 경우, 제1 부분 페이지의 전송은 전체 LSB 페이지 전송의 81% 인 사이즈를 가질 수 있으며, 제2 부분 페이지의 전송은 전체 LSB 페이지 전송의 0.9X0.75=0.675(즉, 68%)인 사이즈를 가질 수 있다. 제1 및 제2 부분 페이지의 총 전송 사이즈는 전체 LSB 페이지 전송 사이즈의 149% 이다.
다른 예로, 도 2의 (b)에 도시된 임계 전압과 데이터 값의 매핑을 이용하여, 도 4a에 기재된 방법을 이용하여 복수의 4-레벨 셀의 MSB 페이지를 리드하는 경우, 제1 부분 페이지의 전송은 전체 MSB 페이지 전송의 81% 인 사이즈를 가질 수 있으며, 제2 부분 페이지의 전송은 전체 MSB 페이지 전송의 0.9X0.75=0.675(즉, 68%)인 사이즈를 가질 수 있다. 제1 및 제2 부분 페이지의 총 전송 사이즈는 전체 MSB 페이지 전송 사이즈의 149% 이다.
그러나, 실시 예에 따라, 순차적인 데이터 페이지 리드 동작에서, 버스 전송 패널티는 감소되거나 그렇지 않으면 제거될 수 있으며, 첫 번째 비트 레이턴시(bit latency)는 랜덤 페이지 리드 동작으로 관찰된 정도보다 더 큰 정도까지 가속될 수 있다.
순차적인 데이터 페이지 리드 동작을 수행하는 방법의 일 예를 도 9 내지 도 10c를 참조하여 설명한다.
도 9는 본 발명의 일 실시예에 따른 순차적 데이터 페이지 리드 방법을 나타내는 플로우차트이다. 도 10a는 도 1a에 도시된 메모리 셀 어레이의 메모리 셀들을 나타내는 도면이다. 도 10b는 2-비트 데이터를 저장하는 메모리 셀들의 MSB 및 LSB 데이터 페이지 리드 동작에 대하여 본 발명의 일 실시예에 따른 순차적 데이터 페이지 리드 동작을 설명하기 위한 도면이다. 도 10c는 본 발명의 일 실시예에 따른 4-레벨 MLC와 관련된 리드 동작에서 부분 페이지의 구조를 설명하기 위한 도면이다.
도 10a에 도시된 바와 같이, 예시적인 메모리 셀(60)은 5개의 셀들을 포함하며, 제1 메모리 셀(61)은 '01' 데이터를 저장하고, 제2 메모리 셀(63)은 '00' 데이터를 저장하고, 제3 메모리 셀(65)은 '11' 데이터를 저장하고, 제4 메모리 셀(67)은 '10' 데이터를 저장하고, 제5 메모리 셀(69)은 '00' 데이터를 저장한다. 메모리 셀(60)은 예를 들어, 도 1a에 도시된 메모리 셀 어레이(2100)의 제1 블록(2120)의 Page 1의 5개의 4-레벨 셀들일 수 있다. 실시 예에 따라 메모리 셀(60)은 메모리 셀 어레이(2100)의 워드 라인들 중 서로 동일한 워드 라인에 위치해 있다.
도 10b에 도시된 데이터 값은 도 2의 (b)에 도시된 데이터 값에 대한 임계 전압 상태의 매핑과 다르다. 도 10b에 도시된 바와 같이, 도 10b에 나타난 임계 전압 상태와 데이터 값의 매핑이 사용되는 경우, 비휘발성 메모리 장치(2000)는 기준 전압(Ref2 ,3)을 이용하여 하나의 비교(즉, 리드) 동작으로 2-비트 메모리 셀의 LSB 페이지를 리드하고, 비휘발성 메모리 장치(2000)는 기준 전압(Ref0 ,1 및 Ref3,4)을 이용하여 두 개의 비교(즉, 리드) 동작으로 2-비트 메모리 셀의 MSB 페이지를 리드할 수 있다.
도 9는 도 10b에 도시된 임계 전압 상태와 데이터 값의 매핑 관계를 가정하여 메모리 셀(60)의 LSB 및 MSB 데이터 페이지를 리드하는 예를 참조하여 설명된다. 또한, 도 9는 다음과 같은 부분 페이지 매핑이 사용되는 예를 참조하여 설명된다. 예를 들어, 부분 페이지(Page0 ,1)는 기준 전압(Ref0 ,1) 이하의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref0 ,1) 이상의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다. 또한, 부분 페이지(Page3 ,4)는 기준 전압(Ref3,4) 이상의 임계 전압을 갖는 셀에 '1'의 비트 값을 할당하고 기준 전압(Ref3,4) 이하의 임계 전압을 갖는 셀에 '0'의 비트 값을 할당하여 생성된다.
도 9를 참조하면, 메모리 장치(2000)는 제1 데이터 페이지를 리드한다(S910). 예를 들어, 도 10b에 도시된 일예에서, 메모리 장치(2000)는 메모리 셀(60)의 임계 전압과 기준 전압(Ref2 ,3)을 비교하여 메모리 셀(60)의 LSB 데이터 페이지를 리드한다. 도 10c에 도시된 바와 같이, 메모리 장치(2000)는 메모리 셀(60)의 LSB 데이터 페이지를 '10100'으로 생성한다.
메모리 장치(2000)는 제1 데이터 페이지를 컨트롤러(또는 호스트)로 출력한다(S920). 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 메모리 셀(60)의 LSB 데이터 페이지가 입출력 패드(127) 및 메모리 시스템 버스(800)를 통해 메모리 컨트롤러(1000)로 출력되도록 입출력 버퍼(124)를 제어하며, 메모리 컨트롤러(1000)(또는, 호스트)는 LSB 데이터 페이지를 수신하여 저장(예컨대, RAM(112)에 저장)한다.
메모리 장치(2000)는 상응하는 제1(1st) 부분 페이지를 결정하기 위해 제1(1st) 기준 전압을 인가한다(S930). 예를 들어, 메모리 장치(2000)는 메모리 셀(60)의 임계 전압과 기준 전압(Ref0 ,1)의 비교를 수행하여 비교 결과를 생성하고, 도 10c에 도시된 바와 같이 '00100' 비트들을 포함하는 부분 페이지(Page0 ,1)를 생성한다. 좀 더 구체적으로, 메모리 셀(60) 중 하나(제3 메모리 셀(65))만 기준 전압(Ref0 ,1) 이하의 임계 전압에 상응하는 데이터를 저장한다. 즉, 제3 메모리 셀(65)을 제외한 모든 메모리 셀(60)에 상응하는 부분 페이지(Page0 ,1)의 비트들은 '0'이고, 제3 메모리 셀(65)에 상응하는 부분 페이지(Page0 ,1)의 비트는 '1'이다. S930 단계에서, 부분 페이지(Page0 ,1)를 생성한 이후, 메모리 장치(2000)는 부분 페이지(Page0 ,1)를 예를 들어, 페이지 버퍼(123)에 저장할 수 있다.
메모리 장치(2000)는 제1 부분 페이지를 축소하고 축소된 제1 부분 페이지를 컨트롤러(또는 호스트)로 출력한다(S940). 예를 들어, 메모리 셀(60)의 임계 전압을 기준 전압(Ref2 ,3)과 비교하는 단계가 포함된 S910 단계에서 메모리 셀(60)의 LSB 데이터 페이지의 결정에 기초하여, 메모리 장치(2000)는 메모리 셀(60)이 갖는 임계 전압 상태 중 어느 것이 기준 전압(Ref2,3) 이상이고 어느 것이 기준 전압(Ref2,3) 이하인지 알고 있다.
즉, S940 단계에서, 메모리 장치(2000)는 메모리 셀(60) 중 '0'의 LSB 를 갖는 메모리 셀에 상응하는 부분 페이지(Page0 ,1)의 비트들(즉, 부분 페이지(Page0,1)의 제2, 제4 및 제5 비트들)을 생략하여, 도 10c에 도시된 바와 같이, '01' 비트를 포함하는 축소된 부분 페이지(RPage0 ,1)를 생성할 수 있다. 생략된 비트는 도 10c의 굵은 'X'로 설명된다. 도 10c에 도시된 바와 같이, 축소된 부분 페이지(RPage0,1)는 부분 페이지(Page0 ,1)(즉, 5 비트)보다 더 적은 비트들(즉, 2 비트)을 갖는다. 또한, 도 10b에 도시된 바와 같이, 부분 페이지(Page0 ,1)는 축소된 부분 페이지(RPage0 ,1)의 비트들이 상응하는 메모리 셀의 MSB 비트들(즉, 제1 메모리 셀(61) 및 제3 메모리 셀(65)의 MSB 비트들이 각각 '0', '1')이 되도록 축소된다. S940 단계에서, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 축소된 부분 페이지(RPage0 ,1)를 저장하도록 페이지 버퍼(123)를 제어할 수 있다.
또한, S940 단계에서, 메모리 장치(2000)는 축소된 부분 페이지(RPage0 ,1)를 출력한다. 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 메모리 셀(60)의 축소된 부분 페이지(RPage0 ,1)가 입출력 패드(127) 및 메모리 시스템 버스(800)를 통해 메모리 컨트롤러(1000)로 출력되도록 입출력 버퍼(124)를 제어하며, 메모리 컨트롤러(1000)(또는, 호스트)는 축소된 부분 페이지(RPage0 ,1)를 수신하여 저장(예컨대, RAM(112)에 저장)한다.
메모리 장치(2000)는 상응하는 제2(2nd) 부분 페이지를 결정하기 위해 제2(2nd) 기준 전압을 인가한다(S950). 예를 들어, 메모리 장치(2000)는 메모리 셀(60)의 임계 전압과 기준 전압(Ref3 ,4)의 비교를 수행하여 비교 결과를 생성하고, 도 10c에 도시된 바와 같이 '00010' 비트들을 포함하는 부분 페이지(Page3 ,4)를 생성한다. 좀 더 구체적으로, 메모리 셀(60) 중 하나(제4 메모리 셀(67))만 기준 전압(Ref3 ,4) 이상의 임계 전압에 상응하는 데이터를 저장한다. 즉, 제4 메모리 셀(67)을 제외한 모든 메모리 셀(60)에 상응하는 부분 페이지(Page3 ,4)의 비트들은 '0'이고, 제4 메모리 셀(67)에 상응하는 부분 페이지(Page3 ,4)의 비트는 '1'이다. S950 단계에서, 부분 페이지(Page3 ,4)를 생성한 이후, 메모리 장치(2000)는 부분 페이지(Page3,4)를 예를 들어, 페이지 버퍼(123)에 저장할 수 있다.
메모리 장치(2000)는 제2 부분 페이지를 축소하고 축소된 제2 부분 페이지를 컨트롤러(또는 호스트)로 출력한다(S960). 예를 들어, 메모리 셀(60)의 임계 전압을 기준 전압(Ref2 ,3)과 비교하는 단계가 포함된 S910 단계에서 메모리 셀(60)의 LSB 데이터 페이지의 결정에 기초하여, 메모리 장치(2000)는 메모리 셀(60)이 갖는 임계 전압 상태 중 어느 것이 기준 전압(Ref2 ,3) 이상이고 어느 것이 기준 전압(Ref2,3) 이하인지 알고 있다.
즉, S960 단계에서, 메모리 장치(2000)는 메모리 셀(60) 중 '1'의 LSB 를 갖는 메모리 셀에 상응하는 부분 페이지(Page3 ,4)의 비트들(즉, 부분 페이지(Page3,4)의 제1 및 제3 비트들)을 생략하여, 도 10c에 도시된 바와 같이, '010' 비트를 포함하는 축소된 부분 페이지(RPage3 ,4)를 생성할 수 있다. 생략된 비트는 도 10c의 굵은 'X'로 설명된다. 도 10c에 도시된 바와 같이, 축소된 부분 페이지(RPage3,4)는 부분 페이지(Page3 ,4)(즉, 5 비트)보다 더 적은 비트들(즉, 3 비트)을 갖는다. 또한, 도 10c에 도시된 바와 같이, 부분 페이지(Page3 ,4)는 축소된 부분 페이지(RPage3 ,4)의 비트들이 상응하는 메모리 셀의 MSB 비트들(즉, 제2 메모리 셀(61), 제4 메모리 셀(67) 및 제5 메모리 셀(69)의 MSB 비트들이 각각 '0', '1', '0')이 되도록 축소된다. S960 단계에서, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 축소된 부분 페이지(RPage3 ,4)를 저장하도록 페이지 버퍼(123)를 제어할 수 있다.
또한, S960 단계에서, 메모리 장치(2000)는 축소된 부분 페이지(RPage3 ,4)를 출력한다. 예를 들어, 메모리 장치(2000)(예컨대, 컨트롤 로직(126))는 메모리 셀(60)의 축소된 부분 페이지(RPage3 ,4)가 입출력 패드(127) 및 메모리 시스템 버스(800)를 통해 메모리 컨트롤러(1000)로 출력되도록 입출력 버퍼(124)를 제어하며, 메모리 컨트롤러(1000)(또는, 호스트)는 축소된 부분 페이지(RPage3 ,4)를 수신하여 저장(예컨대, RAM(112)에 저장)한다.
메모리 컨트롤러(1000)(또는 호스트)는 제1 데이터 페이지, 축소된 제1 및 제2 부분 페이지에 기초하여 제2 데이터 페이지를 결정한다(S970). 예를 들어, S920 단계에서 LSB 데이터 페이지를 수신하자마자, 메모리 컨트롤러(1000)는 메모리 셀(60)의 LSB 데이터 페이지를 저장(예컨대, RAM(112)에 저장)할 수 있다. 또한, 메모리 컨트롤러(1000)는 메모리 셀(60) 중 어느 것이 '1'의 LSB를 저장하는지 메모리 셀(60) 중 어느 것이 '0'의 LSB를 저장하는지를 나타내는 정보를 저장할 수 있다. 또한, 메모리 컨트롤러(1000)는, 메모리 장치(2000)로부터 메모리 컨트롤러(1000)(예컨대, RAM(112) 또는 ROM(113))에 의해 수신될 제1 및 제2 부분 페이지에서의 특정 순서를 나타내는 순서 정보를 저장할 수 있다.
즉, 순서 정보와 메모리 셀(60) 중 어느 것이 '1'의 LSB를 저장하는지를 나타내는 정보에 기초하여, 메모리 컨트롤러(1000)는 축소된 부분 페이지(RPage0 ,1)의 비트들을 '1'을 저장하는 LSB 페이지의 위치에 상응하는 MSB 페이지의 위치로 할당하여 메모리 셀(60)의 MSB 데이터 페이지의 일부를 생성할 수 있다. 도 10c에 도시된 바와 같이, 메모리 셀(60)의 LSB 데이터 페이지의 제1 및 제3 비트 위치가 1이다. 즉, 메모리 컨트롤러(1000)는 축소된 부분 페이지(RPage0,1)(즉, '01')에 포함된 두 비트를 각각 MSB 데이터 페이지의 제1 및 제3 비트 위치로 할당한다.
마찬가지로, 순서 정보와 메모리 셀(60) 중 어느 것이 '0'의 LSB를 저장하는지를 나타내는 정보에 기초하여, 메모리 컨트롤러(1000)는 축소된 부분 페이지(RPage3,4)의 비트들을 '0'을 저장하는 LSB 페이지의 위치에 상응하는 MSB 페이지의 위치로 할당하여 메모리 셀(60)의 MSB 데이터 페이지의 남은 부분을 생성할 수 있다. 도 10c에 도시된 바와 같이, 메모리 셀(60)의 LSB 데이터 페이지의 제2, 제4 및 제5 비트 위치가 0이다. 즉, 메모리 컨트롤러(1000)는 축소된 부분 페이지(RPage3,4)(즉, '010')에 포함된 세 비트를 각각 MSB 데이터 페이지의 제2, 제4 및 제5 비트 위치로 할당한다.
따라서, 상술한 바와 같이, 메모리 컨트롤러(1000)는 메모리 셀(60)의 MSB 페이지의 제1 내지 제5 비트들을 '00110'으로 생성하기 위해 축소된 부분 페이지(RPage0,1)와 함께 축소된 부분 페이지(RPage3 ,4)를 사용한다.
즉, 도 9에 도시된 방법에 기초하여, 메모리 장치(2000)가 메모리 컨트롤러(1000)로 전송하는 정보의 전체 사이즈는 2 데이터 페이지(즉, S920 단계에서 전송된 5 비트 + S940 단계에서 전송된 2 비트 +S960 단계에서 전송된 3 비트 = 총 10 비트가 전송되며, 이때, 5 메모리 셀에 대한 데이터 페이지가 5 데이터 비트의 사이즈를 가짐)와 같다. 또한, 메모리 장치(2000)로부터 수신된 정보에 기초하여 메모리 컨트롤러(1000)에 의해 구성된 총 페이지 수는 2 페이지(즉, 메모리 셀(60)의 LSB 페이지 및 메모리 셀(60)의 MSB 페이지)이다. 즉, 메모리 시스템 버스(800)를 통해 메모리 장치(2000)에 의해 메모리 컨트롤러(1000)로 전송된 정보의 총 사이즈(즉, 2 데이터 페이지 또는 10 비트)는 메모리 컨트롤러(1000)에서 구성된 정보의 총 사이즈(즉, 2 데이터 페이지 또는 10 비트)와 같다.
따라서, 도 9를 참조하여 상술한 바와 같이, 실시 예에 따른 순차적인 데이터 페이지 리드 동작을 이용하여 버스 전송 패널티는 감소되거나 그렇지 않으면 제거된다.
메모리 셀들의 큰 세트(예컨대, 천 개 또는 그 이상의 메모리 셀들)에 대하여, S920 단계에서 비트들의 전송 사이즈(즉, 축소된 부분 페이지(RPage0 ,1) 사이즈)는 메모리 셀에 상응하는 데이터 페이지의 사이즈의 약 50%일 것이며, S940 단계에서 비트들의 전송 사이즈(즉, 축소된 부분 페이지(RPage3 ,4) 사이즈) 또한, 메모리 셀에 상응하는 데이터 페이지의 사이즈의 약 50%일 것이다.
실시 예에 따른 순차적 데이터 페이지 리드 동작과 관련된 리드 레이턴시 가속은 예를 들어, 4-레벨 메모리 셀의 랜덤 페이지 리드 동작에 대한
Figure pat00013
와 비교하여, 4-레벨 메모리 셀에 대해
Figure pat00014
이다.
도 9에 도시된 순차적 데이터 페이지 리드 방법이 4-레벨(즉, 2-비트) MLC 메모리 셀로부터 리드된 LSB 및 MSB 데이터 페이지들에 관련하여 설명되지만, 도 9에 도시된 방법은 4-레벨 메모리 셀 외에(예컨대, 8-레벨 메모리 셀) MLC 메모리 셀의 MSB, CSB 및/또는 LSB 데이터 페이지의 리드 동작에도 적용할 수 있다.
예를 들어, 8-레벨 메모리 셀에 대하여 도 5b에 도시된 임계 전압과 데이터 값의 매핑을 사용하여, 메모리 장치(2000)는 우선, 메모리 셀의 임계 전압을 기준 전압(Ref3 -4)과 비교하는 단계를 포함하는 복수의 8-레벨 메모리 셀의 LSB 페이지를 리드한다. 다음으로, 메모리 장치(2000)는 부분 페이지(Page2 -3)를 생성하기 위해 기준 전압(Ref2 -3)을 이용하여 비교 동작을 수행하여 메모리 셀들의 CSB 페이지의 일부를 리드한다. 메모리 장치(2000)는 기준 전압(Ref3 -4) 이상의 임계 전압 상태를 갖는 것으로 판단된 메모리 셀에 상응하는 부분 페이지(Page2 -3)의 비트들을 생략하여 축소된 부분 페이지(RPage2 -3)를 생성하기 위해 부분 페이지(Page2 -3)를 축소시킨다.
즉, 메모리 셀들의 주어진 그룹의 대략 절반이 기준 전압(Ref3 -4) 이상의 임계 전압 상태를 갖는 것으로 예상되기 때문에(즉, 도 5b에 도시된 바와 같이, 프로그램 상태(L4-L7)는 8-레벨 셀에 대한 모든 프로그램 상태의 절반), 메모리 셀들의 큰 수에 대하여 축소된 부분 페이지(RPage2 -3)는 메모리 셀들의 데이터 페이지의 약 50%의 사이즈를 가질 것이다.
다음으로, 메모리 장치(2000)는 부분 페이지(Page6 -7)를 생성하기 위해 기준 전압(Ref6 -7)을 이용한 비교 동작을 수행하여 메모리 셀들의 CSB 페이지의 일부를 리드한다. 메모리 장치(2000)는 기준 전압(Ref3 -4) 이하의 임계 전압 상태를 갖는 것으로 판단된 메모리 셀에 상응하는 부분 페이지(Page6 -7)의 비트들을 생략하여 축소된 부분 페이지(RPage6 -7)를 생성하기 위해 부분 페이지(Page6 -7)를 축소시킨다.
즉, 메모리 셀들의 주어진 그룹의 대략 절반이 기준 전압(Ref3 -4) 이하의 임계 전압 상태를 갖는 것으로 예상되기 때문에(즉, 도 5b에 도시된 바와 같이, 프로그램 상태(L0-L3)는 8-레벨 셀에 대한 모든 프로그램 상태의 절반), 메모리 셀들의 큰 수에 대하여 축소된 부분 페이지(RPage6 -7)는 메모리 셀들의 데이터 페이지의 약 50%의 사이즈를 가질 것이다.
도 9에서의의 S940, S960 및 S970 단계에 대해 상술한 바와 유사한 방식으로, 축소된 부분 페이지(RPage2 -3)의 비트들이 축소된 부분 페이지(RPage2 -3)의 비트들에 상응하는 메모리 셀의 CSB 비트들이 되도록 축소된 부분 페이지(RPage2 -3)가 메모리 장치(2000)에 의해 생성된다. 또한, 축소된 부분 페이지(RPage6 -7)의 비트들이 축소된 부분 페이지(RPage6 -7)의 비트들에 상응하는 메모리 셀의 CSB 비트들이 되도록 축소된 부분 페이지(RPage6-7)가 메모리 장치(2000)에 의해 생성된다.
메모리 장치(2000)는 축소된 부분 페이지(RPage2 -3)와 축소된 부분 페이지(RPage6-7)를 메모리 컨트롤러(1000)로 전송한다. 메모리 컨트롤러(1000)는 축소된 부분 페이지(RPage2 -3)와 축소된 부분 페이지(RPage6 -7)를 수신하여 저장하고, 4-레벨 메모리 셀(60)의 MSB 데이터 페이지에 대하여 도 9의 S970 단계에서 상술한 바와 유사한 방식으로 8-레벨 메모리 셀의 CSB 데이터 페이지를 결정한다.
8-레벨 메모리 셀의 MSB 페이지는, 순차적 데이터 페이지 리드 동작을 이용하여 예를 들어, 기준 전압들(Ref4 -5 및 Ref0 -1)을 이용하여 8-레벨 메모리 셀의 CSB 페이지를 리드하는 방법의 설명에 대하여 상술한 바와 유사한 방식으로 순차적 데이터 페이지 리드 동작을 이용하여 리드될 수 있다. 축소된 데이터 페이지(RPage4-5 및 RPage0 -1)는 각각 데이터 페이지의 약 50%의 사이즈를 가질 것이다.
실시 예에 따라, 8-레벨 메모리 셀에 대한 버스 전송 패널티를 감소 또는 제거하기 위해 모든 세 개의 페이지(즉, MSB, LSB 및 CSB 페이지)를 리드할 필요가 없으며, 버스 오버헤드를 감소시키기 위해 세 개의 데이터 페이지 중 두 페이지를 리드하는 것이 충분할 수 있다.
도 11은 본 발명의 일 실시예에 따른 메모리 시스템을 포함하는 컴퓨터 시스템을 나타내는 블록도이다. 도 11을 참조하면, 모바일 장치(mobile device), 데스크탑 컴퓨터(desktop computer) 및 서버(server)와 같은 컴퓨터 시스템(3000)은 본 발명의 실시예에 따른 메모리 시스템(3400)을 포함할 수 있다.
컴퓨터 시스템(3000)은 CPU(Central Processing Unit, 3100), RAM(3200), 사용자 인터페이스(user interface, 3300) 및 메모리 시스템(3400)을 포함할 수 있으며, 구성요소들은 버스(3500)에 전기적으로 연결되어있다. 상술한 바와 같이 호스트는 컴퓨터 시스템(3000)의 CPU(3100), RAM(3200) 및 사용자 인터페이스(3300)를 포함할 수 있다. CPU(3100)는 컴퓨터 시스템(3000)의 전반적인 동작을 제어할 수 있고, 사용자 인터페이스(3300)를 통해 입력되는 사용자 커맨드에 상응하는 계산을 수행할 수 있다. RAM(3200)은 CPU(3100)를 위한 데이터 메모리로 기능할 수 있고, CPU(3100)는 메모리 시스템(3400)으로/으로부터 데이터를 라이트/리드할 수 있다.
본 발명의 실시예에 따른 메모리 시스템(3400)은 메모리 컨트롤러(3410) 및 메모리 장치(3420)를 포함할 수 있다. 메모리 컨트롤러(3410)는 인코더 및 디코더를 포함할 수 있으며, 메모리 장치(3420)는 복수의 메모리 셀을 포함하는 셀 어레이를 포함할 수 있다.
본 발명의 실시예에 따라, 메모리 컨트롤러(3410) 및 메모리 장치(3420)는 도 1 내지 도 10c에 대하여 기재된 메모리 컨트롤러(1000) 및 메모리 장치(2000)에 의해 각각 구현될 수 있다.
도 12는 본 발명의 일 실시예에 따른 메모리 카드를 나타내는 블록도이다. 도 1 내지 도 10c에 대하여 기재된 본 발명의 실시예에 따른 메모리 시스템(900)은 메모리 카드(4000)일 수 있다. 예를 들어, 메모리 카드(4000)는 eMMC(embedded multimedia card) 또는 SD(secure digital) 카드를 포함할 수 있다. 도 12에 도시된 바와 같이, 메모리 카드(4000)는 메모리 컨트롤러(4100), 비휘발성 메모리(4200) 및 포트 영역(4300)을 포함할 수 있다. 도 1 내지 도 10c에 대하여 기재된 본 발명의 실시예에 따른 메모리 장치(2000)는 도 12에 도시된 비휘발성 메모리(4200)일 수 있다.
메모리 컨트롤러(4100)는 인코더 및 디코더를 포함할 수 있다. 인코더 및 디코더는 본 발명의 실시예에 따른 인코딩 방법과 디코딩 방법을 수행할 수 있다. 메모리 컨트롤러(4100)는 미리 설정된 프로토콜에 따라 포트 영역(4300)을 통해 외부 호스트와 통신할 수 있다. 프로토콜은 eMMC 프로토콜, SD 프로토콜, SATA 프로토콜, SAS 프로토콜 또는 USB 프로토콜일 수 있다. 비휘발성 메모리(4200)는 내부로 공급되는 전원 공급이 차단되더라도 저장된 데이터를 유지하는 메모리 셀들을 포함할 수 있다. 예를 들어, 비휘발성 메모리(4200)는 플래시 메모리, MRAM(Magnetic Random Access Memory(RAM)), RRAM(Resistance RAM), FRAM(Ferroelectric RAM) 또는 PCM(Phase Change Memory)를 포함할 수 있다.
본 발명의 실시예에 따라, 메모리 컨트롤러(4100) 및 메모리 장치(4200)는 도 1 내지 도 10c에 대하여 기재된 메모리 컨트롤러(1000) 및 메모리 장치(2000)에 의해 각각 구현될 수 있다.
도 13은 본 발명의 일 실시예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 나타내는 블록도이다. 도 13을 참조하면, 네트워크 시스템(5000)은 네트워크(5200)를 통해 연결된 서버 시스템(5100) 및 복수의 단말(5300, 5400, 5500)을 포함할 수 있다. 서버 시스템(5100)은 네트워크(5200)에 연결된 복수의 단말(5300, 5400, 5500)로부터 수신된 리퀘스트들을 처리하는 서버(5110) 및 복수의 단말(5300, 5400, 5500)로부터 수신된 리퀘스트들에 상응하는 데이터를 저장하는 SSD(5120)를 포함할 수 있다. 이때, SSD(5120)는 본 발명의 실시예에 따른 메모리 시스템일 수 있다.
본 발명의 실시예에 따라, SSD(5120)는 도 1 내지 도 10c에 대하여 기재된 메모리 시스템(900)에 의해 구현될 수 있다.
한편, 본 발명의 실시예에 따른 메모리 시스템은 다양한 형태의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명의 실시예에 따른 메모리 시스템은 PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flatpack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), TQFP(Thin Quad FlatPack), SIP(System In Package), MCP(Multi Chip Package), WFP(fer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package)등을 포함하는 패키지들을 이용하여 실장될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
900; 메모리 시스템
1000; 메모리 컨트롤러
2000; 비휘발성 메모리 장치
2100; 메모리 셀 어레이
121; X-디코더
123; 페이지 버퍼
124; 입출력(I/O) 버퍼
125; 전압 생성기
126; 컨트롤 로직
127; 입출력(I/O) 패드
128; 레지스터

Claims (10)

  1. 메모리 장치를 포함하는 메모리 시스템에 있어서,
    상기 메모리 장치는 메모리 셀 어레이 및 압축 인코더를 포함하며,
    상기 메모리 셀 어레이는 복수의 제1 MLC(multi level cell)을 포함하고,
    상기 메모리 장치는,
    적어도 하나의 제1 기준 전압을 이용하여 상기 복수의 제1 MLC에 대한 적어도 하나의 제1 센싱 동작을 수행하여 제1 부분 페이지를 생성하고,
    상기 제1 부분 페이지를 출력하고,
    상기 적어도 하나의 제1 기준 전압과 다른 전압 레벨을 갖는 제2 기준 전압에 기초하여 상기 복수의 제1 MLC에 대한 제2 센싱 동작을 수행하여 제2 부분 페이지를 생성하고,
    상기 압축 인코더를 이용하여 상기 제2 부분 페이지를 압축하여 압축된 제2 부분 페이지를 생성하고,
    상기 압축된 제2 부분 페이지를 출력하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 제1 부분 페이지는 상기 복수의 제1 MLC의 제1 데이터 페이지를 생성하기 위한 정보를 포함하고, 상기 제2 부분 페이지는 상기 복수의 제1 MLC의 상기 제1 데이터 페이지를 생성하기 위한 정보를 포함하며,
    상기 제1 데이터 페이지는 상기 복수의 제1 MLC의 MSB(most significant bit) 페이지, LSB(least significant bit) 페이지 또는 CSB(central significant bit) 페이지 중 하나인 메모리 시스템.
  3. 제1항에 있어서,
    상기 압축 인코더는 허프만(Huffman) 인코딩을 이용하여 정보를 압축하고,
    상기 메모리 장치는, 상기 메모리 장치에 의해 출력되는 상기 제1 부분 페이지가 압축된 제1 부분 페이지가 되도록 상기 메모리 장치에 의해 생성된 상기 제1 부분 페이지를 압축하여 상기 압축된 제1 부분 페이지를 생성하는 메모리 시스템.
  4. 제3항에 있어서, 상기 메모리 장치는,
    상기 제1 부분 페이지의 압축 동작과 상기 제2 부분 페이지의 센싱 동작을 병렬로 수행하는 메모리 시스템.
  5. 제4항에 있어서, 상기 메모리 장치는,
    상기 메모리 셀 어레이로부터 상기 생성된 제1 부분 페이지와 상기 생성된 제2 부분 페이지를 수신하는 페이지 버퍼를 더 포함하는 메모리 시스템.
  6. 제1항에 있어서, 상기 메모리 시스템은 메모리 컨트롤러를 더 포함하며,
    상기 메모리 컨트롤러는,
    상기 메모리 장치로부터 출력되는 상기 제1 부분 페이지를 수신하고,
    상기 메모리 장치로부터 출력되는 상기 압축된 제2 부분 페이지를 수신하고,
    상기 압축된 제2 부분 페이지를 압축 해제하고,
    상기 제1 부분 페이지 및 상기 압축 해제된 제2 부분 페이지에 기초하여 상기 복수의 제1 MLC의 제1 데이터 페이지를 생성하며,
    상기 제1 데이터 페이지는 상기 복수의 제1 MLC의 MSB(most significant bit) 페이지, LSB(least significant bit) 페이지 또는 CSB(central significant bit) 페이지 중 하나인 메모리 시스템.
  7. 제6항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1 부분 페이지 및 상기 압축 해제된 제2 부분 페이지 중 적어도 하나에 기초하여 LLR(log likelihood ratio) 정보를 결정하고,
    상기 제1 부분 페이지, 상기 압축 해제된 제2 부분 페이지 및 상기 결정된 LLR 정보에 기초하여 상기 복수의 제1 MLC의 상기 제1 데이터 페이지를 생성하는 메모리 시스템.
  8. 제6항에 있어서, 상기 메모리 시스템은 메모리 시스템 버스를 더 포함하며,
    상기 메모리 장치는 상기 메모리 시스템 버스를 통해 상기 제1 부분 페이지를 상기 메모리 컨트롤러로 출력하고,
    상기 메모리 장치는, 상기 제1 부분 페이지를 상기 메모리 컨트롤러로 출력한 이후에, 상기 메모리 시스템 버스를 통해 상기 압축된 제2 부분 페이지를 상기 메모리 컨트롤러로 출력하는 메모리 시스템.
  9. 제6항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1 부분 페이지 및 상기 제2 부분 페이지에 기초하여 적어도 하나의 산술 연산을 수행하여 상기 제1 데이터 페이지를 생성하는 메모리 시스템.
  10. 제9항에 있어서, 상기 메모리 장치는,
    상기 제1 부분 페이지에 기초하여 적어도 하나의 기지의 데이터 값을 결정하고,
    상기 메모리 장치에 의해 생성된 상기 제2 부분 페이지의 적어도 하나의 비트를 생략하여 축소된 제2 부분 페이지를 생성하며,
    상기 생략된 적어도 하나의 비트는 상기 적어도 하나의 기지의 데이터 값에 상응하는 비트들이고, 상기 축소된 제2 부분 페이지는 상기 복수의 제1 MLC 중 상기 적어도 하나의 기지의 데이터 값에 대응하는 MLC에 상응하는 데이터가 아닌 비트들을 포함하며, 상기 압축된 제2 부분 페이지를 생성하기 위해 상기 메모리 장치에 의해 압축된 상기 제2 부분 페이지는 상기 축소된 제2 부분 페이지인 메모리 시스템.
KR1020160075319A 2015-06-18 2016-06-16 부분 페이지 압축을 위한 메모리 시스템 KR102628009B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/743,445 2015-06-18
US14/743,445 US9858994B2 (en) 2015-06-18 2015-06-18 Memory system with MLC memory cells and partial page compression or reduction

Publications (2)

Publication Number Publication Date
KR20160150036A true KR20160150036A (ko) 2016-12-28
KR102628009B1 KR102628009B1 (ko) 2024-01-22

Family

ID=57588070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160075319A KR102628009B1 (ko) 2015-06-18 2016-06-16 부분 페이지 압축을 위한 메모리 시스템

Country Status (2)

Country Link
US (1) US9858994B2 (ko)
KR (1) KR102628009B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10043573B2 (en) 2016-08-04 2018-08-07 Intel Corporation Apparatus and method for endurance friendly programming using lower voltage thresholds
US10095424B2 (en) * 2016-08-04 2018-10-09 Intel Corporation Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
US10083742B2 (en) * 2016-09-26 2018-09-25 Intel Corporation Method and apparatus for programming non-volatile memory using a multi-cell storage cell group to provide error location information for retention errors
US10514852B2 (en) * 2018-02-19 2019-12-24 Infineon Technologies Ag Processing data in memory cells of a memory
US11662941B2 (en) * 2020-10-13 2023-05-30 Western Digital Technologies, Inc. System and method for mitigating effect of erase cells on adjacent cells

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130134186A (ko) * 2012-05-30 2013-12-10 삼성전자주식회사 메모리 장치의 리라이트 방법
KR20150105175A (ko) * 2014-03-06 2015-09-16 윈본드 일렉트로닉스 코포레이션 반도체 기억장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836432B1 (en) * 2002-02-11 2004-12-28 Advanced Micro Devices, Inc. Partial page programming of multi level flash
US7769944B2 (en) * 2004-10-01 2010-08-03 Supertalent Electronics, Inc. Partial-write-collector algorithm for multi level cell (MLC) flash
US7593263B2 (en) 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7800943B2 (en) * 2008-01-18 2010-09-21 Qimonda Ag Integrated circuit having a memory cell arrangement and method for reading a memory cell state using a plurality of partial readings
KR101437103B1 (ko) * 2008-01-29 2014-09-02 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US9772936B2 (en) * 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8429498B1 (en) 2009-03-25 2013-04-23 Apple Inc. Dual ECC decoder
US8996785B2 (en) 2009-09-21 2015-03-31 Aplus Flash Technology, Inc. NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface
US8533564B2 (en) 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
KR101626080B1 (ko) * 2010-02-17 2016-06-01 삼성전자주식회사 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들
US8458568B2 (en) 2010-09-24 2013-06-04 International Business Machines Corporation Systems and methods for memory devices
KR101772951B1 (ko) 2011-03-10 2017-09-13 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 읽기 방법
KR101730497B1 (ko) * 2011-11-04 2017-04-27 삼성전자 주식회사 에러 정정 성능 신장 방법 및 이를 이용한 저장 장치
US9239754B2 (en) 2012-08-04 2016-01-19 Seagate Technology Llc Single read based soft-decision decoding of non-volatile memory
KR102024850B1 (ko) * 2012-08-08 2019-11-05 삼성전자주식회사 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9135155B2 (en) 2012-11-30 2015-09-15 Sandisk Technologies Inc. Storage and retrieval of shaped data
US9236136B2 (en) * 2012-12-14 2016-01-12 Intel Corporation Lower page read for multi-level cell memory
KR102195298B1 (ko) * 2014-02-13 2020-12-24 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130134186A (ko) * 2012-05-30 2013-12-10 삼성전자주식회사 메모리 장치의 리라이트 방법
KR20150105175A (ko) * 2014-03-06 2015-09-16 윈본드 일렉트로닉스 코포레이션 반도체 기억장치

Also Published As

Publication number Publication date
KR102628009B1 (ko) 2024-01-22
US9858994B2 (en) 2018-01-02
US20160371028A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
US10437668B2 (en) Memory controller, memory system, and method for controlling memory system
CN111326199B (zh) 用于存储器设备的多态编程
KR100845529B1 (ko) 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US8874994B2 (en) Systems and methods of storing data
TWI533304B (zh) 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
US8949687B2 (en) Memory device and memory system
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
KR102628009B1 (ko) 부분 페이지 압축을 위한 메모리 시스템
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US8463985B2 (en) Constrained coding to reduce floating gate coupling in non-volatile memories
US10445002B2 (en) Data accessing method, memory controlling circuit unit and memory storage device
US11243838B2 (en) Methods and apparatuses for error correction
JP2019057812A (ja) メモリシステム
KR20170012006A (ko) 메모리 컨트롤러와 이를 포함하는 메모리 시스템
CN116775368A (zh) 用于以不同码率在分区之间回拷的多层码率架构
CN106681856B (zh) 解码方法、存储器存储装置及存储器控制电路单元
KR20220080589A (ko) Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치
CN107305510B (zh) 数据处理方法、存储器存储装置及存储器控制电路单元
KR102414620B1 (ko) 메모리 장치의 동작 방법 및 메모리 장치를 동작시키는 메모리 컨트롤러
JP7177338B2 (ja) メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法
CN112799874B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN107608817B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN111796774B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN111326186B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN107590018B (zh) 译码方法、存储器控制电路单元及存储器存储装置

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