KR102546304B1 - 데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템 - Google Patents

데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템 Download PDF

Info

Publication number
KR102546304B1
KR102546304B1 KR1020160091882A KR20160091882A KR102546304B1 KR 102546304 B1 KR102546304 B1 KR 102546304B1 KR 1020160091882 A KR1020160091882 A KR 1020160091882A KR 20160091882 A KR20160091882 A KR 20160091882A KR 102546304 B1 KR102546304 B1 KR 102546304B1
Authority
KR
South Korea
Prior art keywords
data
memory
sectors
data sectors
memory device
Prior art date
Application number
KR1020160091882A
Other languages
English (en)
Other versions
KR20170064980A (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 KR20170064980A publication Critical patent/KR20170064980A/ko
Application granted granted Critical
Publication of KR102546304B1 publication Critical patent/KR102546304B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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

Abstract

데이터 섹터들을 저장하는 물리 페이지들을 포함하는 플래시 메모리 장치의 동작 방법은 상기 플래시 메모리 장치에 저장될 라이트 데이터 섹터들을 수신하는 단계와, 데이터 섹터 쌍들과 상기 데이터 섹터 쌍들의 차이를 정의하기 위해 매칭과 중복 제거 작동을 기초로 상기 플래시 메모리 장치의 상기 물리 페이지들에 미리 저장된 라이트된 데이터 섹터들과 상기 라이트 데이터 섹터들을 페어링하는 단계와, 부분-페이지 라이팅 모드에서 각각의 데이터 섹터 쌍들의 상기 라이트 데이터 섹터와 라이트된 데이터 섹터의 상기 차이를 저장하기 위해 상기 플래시 메모리 장치의 상기 물리 페이지들로 리라이트하는 단계를 포함한다.

Description

데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템{METHOD FOR OPERATING FLASH MEMORY DEVICE CAPABLE OF DATA DE-DUPLICATION AND DATA STORAGE SYSTEM INCLUDING THE FLASH MEMORY DEVICE}
본 발명의 개념에 따른 실시 예는 데이터 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템에 관한 것으로, 특히 매칭과 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템에 관한 것이다.
반도체 메모리 장치들은 휘발성 메모리 장치들과 불휘발성 메모리 장치들을 포함한다. 상기 휘발성 메모리 장치의 리드 속도와 라이트 속도는 빠른 반면, 파워-오프 시에 상기 휘발성 메모리 장치에 저장된 컨텐츠는 손실된다. 대조적으로, 상기 불휘발성 메모리 장치들은 파워-오프시에도 상기 불휘발성 메모리 장치들에 저장된 컨텐츠를 유지한다. 따라서, 상기 불휘발성 메모리 장치들은 전력이 공급되는지 여부에 관계없이 유지되어야 하는 컨텐츠를 저장하는데 사용된다.
휘발성 메모리 장치는 SRAM(static random access memory), DRAM(dynamic RAM), SDRAM(synchronous DRAM) 등으로 구현될 수 있다. 불휘발성 메모리 장치는 전력 공급이 중단될 때, 상기 불휘발성 메모리 장치에 저장된 데이터를 유지한다. 불휘발성 메모리 장치는 롬(read only memory(ROM)), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable and programmable ROM), 플래시 메모리, PRAM(phase change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FRAM(ferroelectric RAM) 등으로 구현될 수 있다. 플래시 메모리는 NOR 타입 플래시 메모리와 NAND 타입 플래시 메모리로 분류될 수 있다.
특히, 불휘발성 메모리 장치들 중에서 플래시 메모리 장치는 종래의 EEPROM에 비해 고도로 집적되므로 보조 대용량 저장 장치와 같은 기기에 유리하다.
다양한 메모리 시스템들은 상기 플래시 메모리를 사용하여 제조된다. 상기 메모리 시스템은 프로토콜을 통해 상기 플래시 메모리에 데이터를 저장하거나 상기 플래시 메모리로부터 데이터를 리드할 수 있다. 상기 메모리 시스템의 라이트 작동 또는 리드 작동을 수행하는데 걸리는 시간을 단축하기 위한 다양한 기술들이 제안되고 있다.
저장 매체로써 플래시 메모리를 사용하는 저장 장치는 디스크 드라이브들을 포함하는 저장 장치에 비해 증가된 수명, 적은 전력 소비, 및 더 나은 엑세스 시간을 갖는다.
플래시 메모리의 블록은 데이터를 일괄적으로 이레이즈하는 단위의 저장 영역이고, 페이지는 데이터를 리드하고 라이트하는 단위이다. 복수의 페이지들은 하나의 블록에 제공될 수 있다. 이러한 특성 때문에, 상기 플래시 메모리는 전형적으로 직접 데이터를 리라이트(rewrite)할 수 없다. 즉, 상기 플래시 메모리가 상기 플래시 메모리에 저장된 데이터를 리라이트할 때, 상기 플래시 메모리는 저장된 유효 데이터를 다른 블록에 저장한 다음, 상기 저장된 데이터를 블록 단위로 이레이즈한다. 상기 플래시 메모리는 그 후에 데이터가 이레이즈된 블록으로 상기 데이터를 라이트한다.
중복 제거(또는 데이터 중복 감소라고도 함)는 저장 장치들의 용량 비용(capacity cost)을 감소하기 위한 것이다. 중복 제거는 동일한 데이터를 저장하는 복수의 논리 블록들과 이러한 데이터를 저장하는 하나의 물리 블록을 연관시킨다. 중복 제거를 사용하여, 상기 데이터 리라이팅 횟수를 감소할 수 있으므로, 상기 플래시 메모리의 수명은 연장될 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 매칭과 중복 제거를 수행하여 중복 제거될 수 있는 데이터 섹터 쌍들의 수를 최대화할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템을 제공하는 것이다.
본 발명의 실시 예에 따라 데이터 섹터들을 저장하는 물리 페이지들을 포함하는 플래시 메모리 장치의 동작 방법은 상기 플래시 메모리 장치에 저장될 라이트 데이터 섹터들을 수신하는 단계와, 데이터 섹터 쌍들과 상기 데이터 섹터 쌍들의 차이를 정의하기 위해 매칭과 중복 제거 작동을 기초로 상기 플래시 메모리 장치의 상기 물리 페이지들에 미리 저장된 라이트된 데이터 섹터들과 상기 라이트 데이터 섹터들을 페어링하는 단계와, 부분-페이지 라이팅 모드에서 각각의 데이터 섹터 쌍들의 상기 라이트 데이터 섹터와 라이트된 데이터 섹터의 상기 차이를 저장하기 위해 상기 플래시 메모리 장치의 상기 물리 페이지들로 리라이트하는 단계를 포함한다.
본 발명의 실시 예에 따라 데이터 섹터들을 저장하는 물리 페이지들의 블락들을 포함하는 NAND 플래시 메모리 장치의 동작 방법은 상기 NAND 플래시 메모리 장치에 저장될 라이트 데이터 섹터들의 세트들을 수신하는 단계와, 데이터 섹터 쌍들과 상기 데이터 섹터 쌍들의 차이를 정의하기 위해 한 세트의 상기 라이트 데이터 섹터들과 상기 NAND 플래시 메모리 장치의 블록 내의 대응하는 물리 페이지를 부분적으로 점유하는 라이트된 데이터 섹터들을 페어링하는 단계와, 상기 블록의 각 동일한 물리 페이지에 상기 데이터 섹터 쌍들과 상기 데이터 섹터 쌍들의 차이를 공동으로 저장하기 위해 중복 제거를 수행하는 단계를 포함한다.
본 발명의 실시 예에 따라 데이터 저장 시스템은 데이터 섹터들을 저장하는 물리 페이지들의 블락들을 포함하는 플래시 메모리 장치와, 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 플래시 메모리 장치에 저장될 라이트 데이터 섹터들의 세트들을 수신하고, 데이터 섹터 쌍들과 상기 데이터 섹터 쌍들의 차이를 정의하기 위해 상기 플래시 메모리 장치의 블락 내의 대응하는 물리 페이지를 부분적으로 점유하는 라이트된 데이터 섹터들과 상기 라이트 데이터 섹터들을 페어링하고, 상기 플래시 메모리 장치의 상기 블록의 각 동일한 물리 페이지에 상기 데이터 섹터 쌍들과 상기 데이터 섹터 쌍들의 차이를 공동으로 저장하기 위해 중복 제거를 수행한다.
본 발명의 실시 예들에 따른 플래시 메모리 장치의 동작 방법은 매칭과 중복 제거를 수행함으로써 데이터 섹터 쌍들 사이의 차이를 최소화하고, 상기 데이터 섹터 쌍들과 상기 차이를 공동으로 저장할 수 있는 효과가 있다.
본 발명의 실시 예들에 따른 플래시 메모리 장치의 동작 방법은 매칭과 중복 제거를 수행함으로써 부분적으로 점유된 페이지들에 저장될 수 있는 새로운 데이터 섹터들의 수를 최대화할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 메모리 시스템에 포함된 메모리 장치를 나타내는 상세 블록도이다.
도 3은 도 2의 메모리 장치에 포함된 메모리 셀 어레이를 나타내는 블록도이다.
도 4는 도 3의 메모리 셀 어레이에 포함된 메모리 블록을 나타내는 회로도이다.
도 5는 도 4의 메모리 블록에 포함된 메모리 셀을 나타내는 단면도이다.
도 6은 도 3의 메모리 셀 어레이에 포함된 메모리 블록을 나타내는 회로도이다.
도 7은 도 6의 메모리 블록을 나타내는 사시도이다.
도 8은 도 1의 메모리 시스템에 포함된 메모리 컨트롤러를 나타내는 블록도이다.
도 9는 본 발명의 실시 예들에 따른 데이터 섹터들을 노드들로써 표현하는 이분 그래프를 나타낸다.
도 10은 본 발명의 실시 예들에 따른 중복 제거와 리라이트하기 전/후 물리 페이지를 개략적으로 나타낸다.
도 11은 본 발명의 실시 예들에 따라 메모리 시스템이 적용되는 메모리 카드 시스템을 나타내는 블록도이다.
도 12는 본 발명의 실시 예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 13은 본 발명의 실시 예들에 따른 SSD 시스템을 나타내는 블록도이다.
도 1은 본 발명의 실시 예들에 따른 메모리 시스템을 나타내는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 메모리 장치(100)와 메모리 컨트롤러(200)를 포함할 수 있다. 메모리 장치(100)는 메모리 셀 어레이(110)를 포함하고, 메모리 컨트롤러(200)는 데이터 매처(data matcher; 210)와 데이터 중복 제거기(data deduplicator; 220)를 포함할 수 있다.
메모리 셀 어레이(110)는 복수의 워드 라인들(도 2의 WL)과 복수의 비트 라인들(도 2의 BL) 사이의 교차 지점들(intersections)에서 제공되는 복수의 메모리 셀들(미 도시)을 포함할 수 있다. 실시 예들에 따라, 상기 복수의 메모리 셀들은 플래시 메모리 셀들일 수 있고, 상기 메모리 셀 어레이(110)는 NAND 플래시 메모리 셀 어레이일 수 있다.
다음의 예시적인 실시 예들은 상기 복수의 메모리 셀들이 NAND 플래시 메모리 셀들이라고 가정하여 설명할 것이다. 예컨대, 도 4를 참조하여 설명될 상기 복수의 메모리 셀들은 2-차원(two-dimensional(2D)) 수평 NAND 플래시 메모리 셀들일 수 있다.
대안적으로, 도 6과 도 7을 참조하여 설명될 상기 복수의 메모리 셀들은 3-차원(three-dimensional(3D)) 수직 NAND 플래시 메모리 셀들일 수 있다. 그러나 본 발명은 이에 한정되지 않으며, 다른 실시 예들에 따라, 상기 복수의 메모리 셀들은 저항 메모리(resistive random access memory(PRAM)) 셀들, PRAM(phase change RAM) 셀들, 또는 MRAM(magnetic RAM) 셀들과 같은 저항성 메모리 셀들일 수 있다.
실시 예들에 따라, 메모리 셀 어레이(110)는 복수의 메모리 그룹들로 나뉠 수 있고, 상기 복수의 메모리 그룹들 각각은 복수의 메모리 셀들을 포함할 수 있다. 예컨대, 상기 복수의 메모리 그룹들은 메모리 블락들에 따라 나뉠 수 있다. 대안적으로, 상기 복수의 메모리 그룹들은 워드 라인들에 따라 나뉠 수 있다. 대안적으로, 상기 복수의 메모리 그룹들은 페이지들에 따라 나뉠 수 있다. 대안적으로, 상기 복수의 메모리 그룹들은 다이들(dies)에 따라 나뉠 수 있다. 그러나 본 발명이 이에 한정되는 것은 아니고, 상기 복수의 메모리 그룹들은 임의의 프로그램 유닛들에 따라 나뉠 수 있다.
실시 예들에 따라, 메모리 셀 어레이(110)에 포함된 메모리 셀들 각각은 1-비트 데이터를 저장하는 싱글 레벨 셀(single level cell(SLC))일 수 있다. 실시 예들에 따라, 메모리 셀 어레이(110)의 각 메모리 셀은 2-비트 데이터를 저장하는 멀티 레벨 셀(multi level cell(MLC))일 수 있다. 실시 예들에 따라, 메모리 셀 어레이(110)의 각 메모리 셀은 3-비트 데이터를 저장하는 트리플 레벨 셀(triple level cell(TLC))일 수 있다. 그러나 본 발명이 이에 한정되는 것은 아니고, 메모리 셀 어레이(110)의 각 메모리 셀은 4 또는 그 이상의 비트들의 데이터를 저장할 수 있다.
메모리 컨트롤러(200)는, 호스트(HOST)로부터 리드(read) 또는 라이트 (write) 요청에 응답하여, 메모리 장치(100)에 저장된 데이터를 리드하거나 메모리 장치(100)로 데이터를 라이트하기 위해 메모리 장치(100)를 제어할 수 있다.
또한, 메모리 컨트롤러(200)는 호스트(HOST)로부터의 요청 대신 내부 요청에 따라, 예컨대, 서든 파워 오프(sudden power off), 리드 리클레임(read reclaim) 작동, 또는 웨어 레벨링(wear leveling) 작동을 수행하기 위해 메모리 장치(100)를 제어할 수 있다. 이러한 제어 작동은 백그라운드 작동이라고 불릴 수 있다.
구체적으로, 메모리 컨트롤러(200)는 메모리 장치(100)로 어드레스(ADDR), 명령(CMD), 및 제어 신호(CTRL)를 적용하여 메모리 장치(100)의 프로그램(또는 라이트) 작동, 리드 작동, 및 이레이즈 작동을 제어할 수 있다. 또한, 프로그램 작동을 위한 데이터(DATA)와 리드 데이터(DATA)는 메모리 컨트롤러(200)와 메모리 장치 (100) 사이에서 송신/수신될 수 있다.
데이터 매처(210)는 데이터 섹터 쌍들(pairs)과 상기 데이터 섹터 쌍들 사이의 차이를 정의하기 위해, 수신된 한 세트(set)의 라이트 데이터 섹터들과 메모리 장치(100)의 블락 내의 대응하는 물리 페이지(physical page)를 부분적으로 점유하는 라이트된 데이터 섹터들을 페어링(pairing)할 수 있다.
이러한 페어링은, 상기 데이터 섹터 쌍들(pairs) 사이의 상기 차이를 감소 또는 최소화하기 위해, 라이트 데이터 섹터들의 세트들의 라이트 데이터 섹터들 각각과 물리 페이지들의 블락들에서 라이트된 데이터 섹터들 각각의 매칭(matching)을 포함한다.
데이터 중복 제거기(220)는 메모리 장치(100)의 상기 블락의 각 동일한 물리 페이지에 상기 데이터 섹터 쌍들과 이들의 차이를 공동으로 저장하기 위해 중복 제거를 수행할 수 있다.
중복 제거의 수행은 부분-페이지 라이팅 모드(partial-page writing mode)에서, 상기 라이트 데이터 섹터와 데이터 섹터 쌍들 각각의 라이트된 데이터 섹터 사이의 상기 차이를 저장하기 위해 메모리 장치(100)의 상기 물리 페이지들로 리라이팅(rewriting)하는 것을 포함할 수 있다. 상기 부분-페이지 라이팅 모드는 이전 (previous) 프로그램 후 이레이징 하기 전 각 물리 페이지에서 수행될 수 있다. 다시 말하면, 중간 이레이징 단계 없이 추가적인 프로그램이 허용된다.
특정 실시 예에 따라, 상기 라이트 데이터 섹터와 상기 각 데이터 섹터 쌍의 라이트된 데이터 섹터 사이의 차이는 메모리 장치(100)의 대응하는 물리 페이지의 비어있는 부분에 저장된다.
매칭과 중복 제거 작동은 중복 제거될 수 있는 데이터 섹터 쌍들의 수를 최대화할 수 있다. 매칭과 중복 제거 작동은, 아래에서 상세히 설명될 바와 같이, 상기 라이트 데이터 섹터들과 상기 라이트된 데이터 섹터들 사이의 최대 가중 이분 매칭(maximal weighted bipartite matching)을 포함할 수 있다.
또한, 다양한 실시 예들에 따라, 메모리 셀 어레이(110)는 워드 라인들(WL)과 비트 라인들(BL) 사이에 연결된 MLC 또는 TLC를 포함할 수 있다. 이와 같이, 리라이팅은 상기 라이트 데이터 섹터와 대응하는 물리 페이지 내의 다른 (alternating) 워드 라인들(WL)의 메모리 셀들에서 각각의 데이터 섹터 쌍들의 라이트된 데이터 섹터 사이의 차이를 저장하는 것을 포함할 수 있다.
본 발명의 개념에 따른 데이터 매칭과 중복 제거는 도 9와 도 10을 추가적으로 참고하여 아래에서 상세히 설명될 것이다.
도 2는 본 발명의 실시 예들에 따른 도 1의 메모리 시스템에 포함된 메모리 장치를 나타내는 상세 블록도이다. 도 2를 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 제어 로직(120), 전압 생성기(130), 로우 디코더(140), 및 페이지 버퍼(150)를 포함할 수 있다. 비록 도 2에는 도시되지 않았지만, 메모리 장치(100)는 입/출력 회로 또는 입/출력 인터페이스를 더 포함할 수 있다. 메모리 장치(100)에 포함된 구성요소들은 이하에서 상세히 설명될 것이다.
메모리 셀 어레이(110)는 복수의 워드 라인들(WL)과 복수의 비트 라인들(BL)에 연결될 수 있다. 비록 도 2에는 도시되지 않았지만, 메모리 셀 어레이(110)는 적어도 하나의 스트링 선택 라인(SSL)과 적어도 하나의 접지 선택 라인(GSL)에 연결될 수 있다. 메모리 셀 어레이(110)는 복수의 워드 라인들(WL)과 복수의 비트 라인들(BL) 사이의 교차 지점들에서 제공되는 복수의 메모리 셀들(도 4의 MC 또는 도 6의 MC1~MC8)을 포함할 수 있다. 복수의 메모리 셀들 각각은 1-비트 또는 멀티-비트 데이터를 저장할 수 있다.
이레이즈 전압이 메모리 셀 어레이(110)로 공급될 때, 복수의 메모리 셀들 (MC)은 이레이즈 상태로 변경하고, 프로그램 전압이 메모리 셀 어레이(110)로 공급될 때, 복수의 메모리 셀들(MC)은 프로그램 상태로 변경한다. 이 경우, 각 메모리 셀(MC)은 문턱 전압(threshold voltage; Vth)에 따라 나뉘어진 이레이즈 상태(E)와 적어도 하나의 프로그램 상태를 가질 수 있다.
실시 예들에 따라, 메모리 셀(MC)이 SLC일 때, 메모리 셀(MC)은 이레이즈 상태(E)와 프로그램 상태(P)를 가질 수 있다. 실시 예들에 따라, 메모리 셀(MC)은 제1 내지 제n 프로그램 상태들(P1~Pn) 중에서 적어도 하나를 가지고, n은 3과 같거나 3보다 큰 자연수일 수 있다. 실시 예들에 따라, 메모리 셀(MC)이 MLC일 때 n은 3일 수 있다. 실시 예들에 따라, 메모리 셀(MC)이 TLC일 때 n은 7일 수 있다.
메모리 셀 어레이(110)는 SLC들을 포함하는 SLC 블락, MLC들을 포함하는 MLC 블락, 및 TLC들을 포함하는 TLC 블락 중에서 선택된 적어도 하나를 포함할 수 있다. 다시 말하면, 메모리 셀 어레이(110)에 포함된 복수의 메모리 블락들 중에서 일부 메모리 블락들은 SLC 블락들일 수 있고, 다른 메모리 블락들은 MLC 블락들 또는 TLC 블락들일 수 있다.
제어 로직(120)은 메모리 컨트롤러(200)로부터 수신된 명령(CMD), 어드레스 (ADDR), 및 제어 신호(CTRL)에 기초하여 메모리 셀 어레이(110)로 데이터를 라이트하거나 메모리 셀 어레이(110)로부터 데이터를 리드하기 위한 다양한 제어 신호들을 출력할 수 있다. 따라서, 제어 로직(120)은 메모리 장치(100)의 다양한 작동들을 전반적으로 제어할 수 있다.
제어 로직(120)으로부터 출력된 다양한 제어 신호들은 전압 생성기(130), 로우 디코더(140), 및 페이지 버퍼(150)로 인가될 수 있다. 구체적으로, 제어 로직 (120)은 전압 생성기(130)로 전압 제어 신호(CTRL_vol), 로우 디코더(140)로 로우 어드레스(X_ADDR), 페이지 버퍼(150)로 컬럼 어드레스(Y_ADDR)를 인가할 수 있다. 그러나 본 발명의 사상이 이에 한정되는 것은 아니고 제어 로직(120)은 전압 생성기(130), 로우 디코더(140), 및 페이지 버퍼(150)로 다른 제어 신호들을 더 인가할 수 있다.
전압 생성기(130)는 전압 제어 신호(CTRL_vol)에 기초하여 메모리 셀 어레이 (110)의 프로그램 작동, 리드 작동, 및 이레이즈 작동을 수행하기 위한 다양한 타입의 전압들을 생성할 수 있다. 구체적으로 전압 생성기(130)는 복수의 워드 라인들(WL)을 구동하기 위한 워드 라인 구동 전압(VWL)을 생성할 수 있다. 이 경우, 워드 라인 구동 전압(VWL)은 프로그램 전압(또는 라이트 전압), 리드 전압, 이레이즈 전압, 금지 전압(inhibit voltage), 또는 프로그램 검증 전압(program verify voltage)일 수 있다. 비록 도 2에는 도시되지 않았으나, 전압 생성기(130)가 복수의 스트링 선택 라인들(SSL)을 구동하기 위한 스트링 선택 라인 구동 전압(VSSL)과 복수의 접지 선택 라인들(GSL)을 구동하기 위한 접지 선택 라인 구동 전압(VGSL)을 더 생성할 수 있다.
로우 디코더(140)는 복수의 워드 라인들(WL)을 통해 메모리 셀 어레이(110)로 연결될 수 있고, 제어 로직(120)으로부터 수신된 로우 어드레스(X_ADDR)에 응답하여 복수의 워드 라인들(WL) 중에서 일부 워드 라인들을 활성화시킬 수 있다.
구체적으로 리드 작동 동안에, 로우 디코더(140)는 선택된 워드 라인으로 리드 전압을 인가할 수 있고, 비-선택된(non-selected) 워드 라인으로 금지 전압을 인가할 수 있다. 또한, 프로그램 작동 동안에, 로우 디코더(140)는 선택된 워드 라인으로 프로그램 전압을 인가할 수 있고, 비-선택된 워드 라인으로 금지 전압을 인가할 수 있다.
페이지 버퍼(150)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(110)에 연결될 수 있다. 구체적으로, 리드 작동 동안에, 페이지 버퍼(150)는 감지 증폭기를 작동하여 메모리 셀 어레이(110)에 저장된 데이터(DATA)를 출력할 수 있다. 프로그램 작동 동안에, 페이지 버퍼(150)는 라이트 드라이버를 작동하여 메모리 셀 어레이(110)에 저장될 데이터(DATA)를 입력할 수 있다.
도 3은 본 발명의 실시 예들에 따른 도 2의 메모리 장치에 포함된 메모리 셀 어레이를 나타내는 블록도이다. 도 3을 참조하면, 메모리 셀 어레이(110)는 플래시 메모리 셀 어레이일 수 있다. 이 경우, 메모리 셀 어레이(110)는 a(a는 2와 같거나 2보다 큰 정수) 메모리 블락들, 즉, 제1 내지 제a 메모리 블락들(BLK1~BLKa)을 포함할 수 있다.
제1 내지 제a 메모리 블락들(BLK1~BLKa) 각각은 b(b는 2와 같거나 2보다 큰 정수) 페이지들(PAGE1~PAGEb)을 포함할 수 있고, 페이지들(PAGE1~PAGEb) 각각은 c (c는 2와 같거나 2보다 큰 정수) 섹터들(SEC1~SECc)을 포함할 수 있다. 비록 설명의 편의를 위해, 도 3에는 제1메모리 블락(BLK1)의 섹터들(SEC1~SECc)만 도시하였으나, 다른 메모리 블락들, 즉 제2 내지 제a 메모리 블락들(BLK2~BLKa)은 제1메모리 블락(BLK1)의 구조와 동일한 구조들을 가질 수 있다.
도 4는 본 발명의 실시 예들에 따른 도 3의 메모리 셀 어레이에 포함된 메모리 블록을 나타내는 회로도이다. 도 4를 참조하면, 제1메모리 블락(BLK1)은 수평 NAND 플래시 메모리 블락일 수 있고, 도 3의 제1 내지 제a 메모리 블락들 (BLK1~BLKa) 각각은 도 4에 도시된 바와 같이 형성될 수 있다.
제1메모리 블락(BLK1)은 8개의 메모리 셀들이 직렬로 연결된 예컨대, d(d는 2와 같거나 큰 정수) 개의 스트링들(STR)을 포함할 수 있다. 각 스트링(STR)은 각각이 직렬로 연결된 메모리 셀들(MC)의 양끝에 연결된 드레인 선택 트랜지스터(STr1)와 소스 선택 트랜지스터(STr2)를 포함할 수 있다. 스트링들(STR)의 개수, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수는 실시 예들에 따라 다양하게 변경될 수 있다.
도 4의 NAND 플래시 메모리 장치는 이레이즈 작동을 메모리 블락 단위로 수행할 수 있고, 프로그램 작동을 워드 라인들(WL1~WL8)에 대응하는 페이지 단위로 수행할 수 있다. 예컨대, 메모리 셀(MC)이 SLC일 때, 하나의 페이지는 각 워드 라인에 대응할 수 있다. 대안적으로, 메모리 셀(MC)이 MLC 또는 TLC일 때, 복수의 페이지들은 각 워드 라인에 대응할 수 있다.
도 5는 본 발명의 실시 예들에 따라 도 4의 메모리 블록에 포함된 메모리 셀을 나타내는 단면도이다. 도 5를 참조하면, 메모리 셀(MC)은 채널 영역(1), 전하 저장 층(charge storage layer; 2), 및 컨트롤 게이트(control gate; 3)를 포함할 수 있다. 예컨대, 전하 저장 층(2)은 도전체(conductor)인 플로팅 게이트를 포함할 수 있고, 이 경우 메모리 셀(MC)은 플로팅 게이트 구조 셀이라고도 불릴 수 있다. 대안적으로, 전하 저장 층(2)은 예컨대, 절연체(non-conductor)인 질화 실리콘 (silicon nitride(SIN))을 포함할 수 있고, 이 경우 메모리 셀은 전하 트랩 플래시 셀(charge trap flash(CTF) cell)이라고도 불릴 수 있다.
메모리 셀(MC)에서 프로그램 작동을 수행하기 위해, 비교적 높은 프로그램 전압이 컨트롤 게이트(3)로 인가될 수 있고, 상대적으로 낮은 전압(예컨대, 0V)이 채널 영역(1)에 인가될 수 있다. 전기장은 바이어스 조건에 따라 컨트롤 게이트(3)로부터 채널 영역(1) 방향으로 형성되기 때문에, 전하들, 예컨대, 전자들은 채널 영역(1)으로부터 전하 저장 층(2)으로 이동하고, 이에 따라 메모리 셀(MC)은 프로그램될 수 있다.
메모리 장치(100)가 플래시 메모리 장치일 때, 메모리 셀(MC)에 저장된 데이터는 메모리 셀(MC)의 문턱 전압(Vth)에 따라 리드될 수 있다. 이 경우, 메모리 셀 (MC)의 문턱 전압(Vth)은 전하 저장 층(2)에 저장된 전자들의 개수에 의해 결정될 수 있다. 구체적으로, 전하 저장 층(2)에 저장된 전자들의 개수가 증가함에 따라, 메모리 셀(MC)의 문턱 전압(Vth)은 증가할 수 있다.
도 6은 본 발명의 실시 예들에 따른 도 3의 메모리 셀 어레이에 포함된 메모리 블록을 나타내는 회로도이다. 도 6을 참조하면, 제1메모리 블락(BLK1')은 수직 NAND 플래시 메모리 블락일 수 있고, 도 3의 제1 내지 제a 메모리 블락들(BLK1~BLKa)은 도 6에 도시된 바와 같이 형성될 수 있다.
제1메모리 블락(BLK1')은 복수의 NAND 스트링들(NS11~NS33), 복수의 워드 라인들(WL1~WL8), 복수의 비트 라인들(BL1~BL3). 접지 선택 라인(GSL), 복수의 스트링 선택 라인들(SSL1~SSL3), 및 공통 소스 라인(CSL)을 포함할 수 있다. NAND 스트링들의 수, 워드 라인들의 수, 비트 라인들의 수, 접지 선택 라인들의 수, 및 스트링 선택 라인들의 수는 실시 예들에 따라 다양하게 변경될 수 있다.
NAND 스트링들(NS11~NS33)은 비트 라인들(BL1~BL3)과 공통 소스 라인(CSL) 사이에 연결된다. 각 NAND 스트링들(NS11~NS33, 예컨대, NS11)은 서로 직렬로 접속된 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1~MC8), 및 접지 선택 트랜지스터(GST)를 포함할 수 있다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인들(SSL1~SSL3)에 연결된다. 복수의 메모리 셀들(MC1~MC8) 각각은 워드 라인들(WL1~WL8)에 연결된다. 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)에 연결된다. 스트링 선택 트랜지스터(SST)는 스트링 선택 트랜지스터(SST)에 대응하는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결된다.
같은 높이를 가지는 워드 라인들(예컨대, 워드 라인들(WL1))은 공통으로 연결되고, 스트링 선택 라인들(SSL1~SSL3)은 서로 분리된다. 제1워드 라인들(WL1)에 연결되고 NAND 스트링들(NS11, NS12, 및 NS13)에 속하는 메모리 셀들이 프로그램될 때, 제1워드 라인(WL1)과 제1스트링 선택 라인(SSL1)이 선택된다.
도 7은 본 발명의 실시 예들에 따른 도 6의 메모리 블록을 나타내는 사시도이다. 도 7을 참조하면, 제1메모리 블락(BLK1')은 기판(SUB)에 수직 방향으로 형성된다. 공통 소스 라인(CSL)은 기판(SUB)에 배치되고, 게이트 전극들(GE)과 절연층들(IL)은 기판(SUB) 위에 교대로 적층된다. 또한, 전하 저장 층(CS)은 게이트 전극들(GE)과 절연층들(IL) 사이에 형성된다.
교대로 적층된 복수의 게이트 전극들(GE)과 복수의 절연층들(IL)이 수직으로 패터닝될 때, V-모양(V-shape)을 갖는 기둥(pillar; P)이 형성된다. 기둥(P)은 게이트 전극들(GE)과 절연층들(IL)을 통과하고 기판(SUB)에 연결된다. 기둥(P)의 바깥 부분(outer portion; O)은 반도체 물질로 형성될 수 있고, 채널 영역으로서 기능할 수 있고, 기둥(P)의 안쪽 부분(inner portion; I)은 실리콘 산화물(silicon oxide)과 같은 절연 물질로 형성될 수 있다.
제1메모리 블락(BLK1')의 게이트 전극들(GE)은 접지 선택 라인(GSL), 복수의 워드 라인들(WL1~WL8), 및 스트링 선택 라인(SSL)에 연결될 수 있다. 제1메모리 블락(BLK1')의 기둥(P)은 복수의 비트 라인들(BL1~BL3)에 연결될 수 있다. 비록 도 7에는 제1메모리 블락(BLK1')은 두개의 선택 라인들(GSL과 SSL), 8개의 워드 라인들(WL1~WL8), 및 3개의 비트 라인들(BL1~BL3)이 도시되어 있으나, 구성요소들의 개수가 이에 한정되는 것은 아니며 다양한 변경이 이루어질 수 있다.
도 8은 본 발명의 실시 예들에 따른 도 1의 메모리 시스템에 포함된 메모리 컨트롤러를 나타내는 블록도이다. 도 8을 참조하면, 메모리 컨트롤러(200)는 데이터 매처(210), 데이터 중복 제거기(220), 호스트 인터페이스(240), CPU(central processing unit; 250), 버퍼 메모리(260), 에러 정정 코드(error correction code(ECC)) 유닛(270), 및 메모리 인터페이스(280)를 포함할 수 있다.
호스트 인터페이스(240)는 호스트와 인터페이스에 의해 상기 호스트로부터 메모리 작동 요청을 수신할 수 있다. 구체적으로, 호스트 인터페이스(240)는 상기 호스트로부터 데이터 리드 요청과 데이터 라이트 요청과 같은 다양한 요청들을 수신하고, 상기 다양한 요청들에 응답하여 메모리 장치(100)의 상기 메모리 작동에 대한 다양한 내부 신호들을 생성할 수 있다.
예컨대, 메모리 컨트롤러(200)는 USB(Universal Serial Bus), MMC(multi-media card), PCI-e(peripheral component interconnect - express), ATA(advanced technology attachment), S-ATA(serial-ATA), P-ATA(parallel-ATA), SCSI(small computer system interface), ESDI(enhanced small disk interface), 및 IDE(integrated drive electronics)와 같은 다양한 인터페이스 프로토콜들로부터 선택된 적어도 하나를 통해 상기 호스트와 통신할 수 있다.
CPU(250)는 메모리 컨트롤러(200)의 전반적인 작동을 제어할 수 있다. 예컨대, CPU(250)는 메모리 장치(100)의 메모리 작동과 관련된 다양한 기능 블락들을 제어할 수 있다. 비록 본 발명의 실시 예들에 따라, 데이터 매처(210)와 데이터 중복 제거기(220)가 별도의 블락들로 도시되어 있으나, 이러한 기능들은 CPU(250)의 일부로서 작동할 수 있다.
버퍼 메모리(260)는 호스트 인터페이스(240)를 통해 외부로 전송되는 데이터와 메모리 인터페이스(280)를 통해 메모리 장치(100)로부터 전송되는 데이터를 일시적으로 저장할 수 있다. 또한, 버퍼 메모리(260)는 메모리 장치(100)를 제어하는데 필요한 정보를 일시적으로 저장할 수 있다. 예컨대, 버퍼 메모리(260)는 DRAM(dynamic RAM), SRAM(static RAM), 또는 DRAM과 SRAM의 조합일 수 있으나 본 발명이 이에 한정되는 것은 아니다.
ECC 유닛(270)은 RS 코드(Reed-Solomon code), 해밍 코드(Hamming code), 또는 CRC와 같은 알고리즘을 사용하여 라이트 데이터에 ECC 인코딩과 리드 데이터에 ECC 디코딩을 수행할 수 있고, 메모리 장치(100)로부터 리드된 데이터로부터 에러 검출 결과를 생성하고, 상기 리드된 데이터에 에러 정정을 수행할 수 있다. 예컨대, ECC 유닛(270)은 데이터가 프로그램될 때 생성되고 저장된 패리티 비트와 데이터가 리드될 때 생성된 패리티 비트를 비교하여 에러 비트를 검출하고, 검출된 에러 비트에 예정된(predetermined) 로직 연산(예컨대, 배타적 논리합(exclusive-OR(XOR)))을 수행하여 상기 에러 비트를 정정할 수 있다.
메모리 인터페이스(280)는 메모리 컨트롤러(200)에서 생성된 다양한 신호들(예컨대, 명령, 어드레스, 및 리드 전압 제어 신호)을 전송하고 수신하기 위해 메모리 장치(100)를 인터페이스할 수 있다.
데이터 매처(210)와 데이터 중복 제거기(220)를 포함하는 메모리 컨트롤러(200)는 가끔 하나의 물리 페이지에 둘 이상의 데이터 섹터들(예컨대, 두개의 논리 NAND 섹터들)의 공동 프로그램 또는 라이팅을 제공할 수 있다. 예컨대, 물리 페이지는 상기 물리 페이지의 일부만 점유하는 데이터 섹터를 저장할 수 있다. 이러한 작동은 예컨대, 중복 제거 또는 압축 결과로써 발생할 수 있다. 따라서, 현재 실시 예에 따라, 메모리 컨트롤러(200)는 데이터 섹터(예컨대, A)가 새롭게 도착한 시점에 또 다른 데이터 섹터(예컨대, B)에 의해 이미 부분적으로 점유된 물리적 페이지의 사용 가능한 공간에 상기 데이터 섹터(예컨대, A)를 저장하기 위해서 메모리 장치(100)를 제어할 수 있다.
이와 같이, 데이터 중복 제거기(220)는 새로운 데이터 섹터(예컨대, A)와 유사하고, 부분적으로 점유된 물리 페이지에 저장된 데이터 섹터(예컨대, B)를 찾기 위해 중복 제거를 수행할 수 있다. 상기 중복 제거 작동은 특정 양보다 적은 사용 가능한 공간과 함께 라이트된 데이터 섹터(예컨대, B)를 포함하는 상기 물리 페이지에 상기 라이트 데이터 섹터(예컨대, A)를 저장하기 위해 사용된다.
이러한 실시 예는 페이지가 프로그램된 후, 이레이즈 없이 추가적인 프로그램이 허용되는 것을 의미하는 "부분-페이지 라이팅 모드"의 활성화를 포함할 수 있다. MLC들 또는 TLC들에 대해, 새로운 블락의 데이터 섹터들은 예컨대, 커플링 효과를 최소화하기 위해 다른(alternating) 워드 라인들에서 블락의 상기 물리 페이지로 라이팅될 수 있다.
실시 예들에 따라, 데이터 섹터들 Sd의 동적 세트(dynamic set)는 메모리 장치(100, 예컨대, NAND 플래시 메모리 장치)의 블록의 부분적으로 점유된 물리 페이지들에 미리 라이트된 것을 의미한다. 새로운 세트 데이터 섹터들 Sn은 저장하기 위해 호스트(HOST)로부터 도착한 것을 의미한다.
이 경우, 세트 Sd의 데이터 섹터 S1과 세트 Sn의 데이터 섹터 S2 사이에서 데이터 매처(210)에 의해 결정된 차이 Δ가 존재한다. 중복 제거를 이용하여, S1과 Δ 집합은 S2를 디코딩 하기에 충분하다. 따라서, 데이터 중복 제거(220)는 예컨대, 상기 물리 페이지에 이용 가능한 공간이 있고 커플링이 리라이팅을 방해하지 않는 한, 상기 차이 Δ를 S1의 물리 페이지에 프로그램 또는 라이트한다.
실시 예들에 따라, 중복 제거의 효율을 개선하기 위해 데이터 섹터들 S1과 S2 사이의 차이 Δ를 최소화 하는 것이 목적이다. 그러므로, 세트들 Sd와 Sn에 대해, Sd의 페이지들과 Sn의 페이지들 사이의 적절한 매칭을 찾는 것은 Sd와 Sn에서 데이터 섹터들의 쌍들 사이의 차이 Δ를 감소 또는 최소화할 수 있다.
세트들 Sd와 Sn 사이의 적절한 매칭을 찾는 것은 그래프 이론에서 최대 가중치 이분 매칭(maximal weighted bipartite matching)과 관련될 수 있다. 그래프 이론의 용어에서, 이분 매칭은 두 개의 에지가 동일한 노드(즉, 데이터 섹터)에 인접하지 않는 것을 명시한다.
도 9를 참조하면, 세트 Sd의 섹터들은 이분 그래프의 왼쪽의 노드들을 나타내고, 세트 Sn의 섹터들은 이분 그래프의 오른쪽 노드들을 나타낸다. Sd와 Sn 사이의 에지들의 가중치는 데이터 섹터들 사이에서 유사성 척도이다. 예컨대, 실시 예들에 따라, 상기 유사성 척도는 Sd의 데이터 섹터와 Sn의 데이터 섹터 사이의 차이 Δ가 관련된 물리 페이지의 남은 저장 영역보다 적으면 하나(1)이고, 그렇지 않으면 영(0)일 수 있다.
이 접근법의 목적은 가중치들의 합을 최대화하는 것이다. 작은 차이 Δ를 가지는 데이터 섹터들의 쌍들은 상기 데이터 섹터들이 서로 중복 제거될 때 메모리 장치(100)에서 공간을 덜 차지한다. 따라서, 이러한 데이터 섹터들을 서로 매칭하는 것은 바람직하다.
최대 가중치 이분 매칭은 부분적으로 점유된 페이지들에 저장될 수 있는 새로운 데이터 섹터들의 수를 최대화하기 위해 사용될 수 있다. 그래프 이론에서 일부 관련된 알고리즘들이 있음을 알 수 있다. 예컨대, 헝가리안 알고리즘(hungarian algorithm) 또는 근사 알고리즘(approximation algorithm)은 두 세트들 사이의 최적의 매칭을 찾기 위해 사용될 수 있다.
따라서, 상기 매칭은 동일한 물리 페이지에 공동 저장을 위해 중복제거될 수 있는 데이터 섹터들의 쌍들의 수를 최대화할 수 있다. 도 10에 도시된 바와 같이, 세트 Sd에 라이트된 데이터 섹터 S1에 대한 매칭, 중복 제거, 및 리라이팅의 결과가 데이터 섹터 S2와 상기 차이 Δ가 현재 저장되고 데이터 섹터 S1을 나타내는 물리 페이지 P에 도시된다.
도 11은 본 발명의 실시 예들에 따라 메모리 시스템이 적용되는 메모리 카드 시스템을 나타내는 블록도이다. 도 11을 참조하면, 메모리 카드 시스템(1000)은 호스트(1100)와 메모리 카드(1200)를 포함할 수 있다. 호스트(1100)는 호스트 컨트롤러(1110)와 호스트 커넥터(1120)를 포함할 수 있다. 메모리 카드(1200)는 카드 커넥터(1210), 카드 컨트롤러(1220), 및 메모리 장치(1230)를 포함할 수 있다. 이 경우, 메모리 카드(1200)는 도 1부터 도 10의 실시 예들을 이용하여 형성될 수 있다.
호스트(1100)는 메모리 카드(1200)로 데이터를 라이트하거나 메모리 카드(1200)에 저장된 데이터를 리드할 수 있다. 호스트 컨트롤러(1110)는 호스트 커넥터(1120)를 통해 명령(CMD), 호스트(1100)에 포함된 클락 생성기(미도시)에 의해 생성된 클락 신호(CLK), 및 데이터(DATA)를 메모리 카드(1200)로 전송할 수 있다.
카드 컨트롤러(1220)는 카드 커넥터(1210)를 통해 수신된 명령(CMD)에 응답하여 카드 컨트롤러(1220)에 포함된 클락 생성기(미도시)에 의해 생성된 클락 신호에 동기하여 메모리 장치(1230)로 데이터(DATA)를 저장할 수 있다. 메모리 장치(1230)는 호스트(1100)로부터 전송된 데이터(DATA)를 저장할 수 있다.
메모리 카드(1200)는 컴팩트 플래시 카드(compact flash card(CFC)), 마이크로드라이브(microdrive), 스마트 미디어 카드(smart media card(SMC)), 멀티미디어 카드(multimedia card(MMC)), 보안 디지털 카드(security digital card(SDC)), 메모리 스틱(memory stick) 또는 USB 플래시 메모리 드라이버일 수 있다.
도 12는 본 발명의 실시 예들에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다. 도 12를 참조하면, 컴퓨팅 시스템(2000)은 메모리 시스템(2100), 프로세서(2200), RAM(2300), 입/출력 장치(2400), 및 전원 공급기(2500)를 포함할 수 있다. 비록 도 12에는 도시되지 않았지만 컴퓨팅 시스템(2000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 드라이버, 또는 다른 전자 장치들과 통신할 수 있는 포트들을 더 포함할 수 있다. 컴퓨팅 시스템(2000)은 랩탑 컴퓨터, 모바일 폰, PDA(personal digital assistance), 또는 카메라와 같은 휴대용 전자 장치, 또는 PC일 수 있다.
프로세스(2200)는 특정 계산들(calculations)과 작업들(tasks)을 수행할 수 있다. 실시 예들에 따라, 프로세서(2200)는 마이크로프로세서 또는 CPU일 수 있다. 프로세서(220)는 어드레스 버스, 제어 버스, 또는 데이터 버스와 같은 버스(2600)를 통해 RAM(2300), 입/출력 장치(2400), 및 메모리 시스템(2100)과 통신할 수 있다. 이 경우, 메모리 시스템(2100)은 도 1부터 도 11의 실시 예를 이용하여 형성될 수 있다.
실시 예들에 따라, 프로세서(2200)는 PCI 버스와 같은 확장 버스(expansion bus)에 연결될 수 있다.
RAM(2300)은 컴퓨팅 시스템(2000)을 작동시키는데 필요한 데이터를 저장할 수 있다. 예컨대, RAM(2300)은 DRAM, 모바일 DRAM, SRAM, PRAM, FRAM(ferroelectric RAM), RRAM(resistive RAM), 및/또는 MRAM일 수 있다.
입/출력 장치(2400)는 키보드, 키패드, 및/또는 미우스와 같은 입력 유닛과 프린터, 및/또는 디스플레이와 같은 출력 유닛을 포함할 수 있다. 전력 공급기(2500)는 컴퓨팅 장치(2000)를 작동시키는데 필요한 작동 전압을 공급할 수 있다.
도 13은 본 발명의 실시 예들에 따른 SSD 시스템을 나타내는 블록도이다. 도 13을 참조하면 솔리드 스테이트 드라이브(solid state drive(SSD); 3000)는 호스트(3100)와 SSD(3200)를 포함할 수 있다. SSD(3200)는 신호 커넥터를 통해 호스트(3100)로부터 신호를 수신하거나 호스트(3100)로 신호를 전송하고, 전력 커넥터를 통해 전력을 수신할 수 있다. SSD(3200)는 SSD 컨트롤러(3210), 보조 전력 장치(3220), 및 복수의 메모리 장치들(3230, 3240, 및 3250)을 포함할 수 있다. 이 경우, SSD(3200)는 도 1부터 도 12의 실시 예들에 따라 형성될 수 있다.
본 발명은 도면에 도시된 일 시시 예를 참고하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10; 메모리 시스템
100; 메모리 장치
110; 메모리 셀 어레이
120; 제어 로직
130; 전압 생성기
140; 로우 디코더
150; 페이지 버퍼
200; 메모리 컨트롤러
210; 데이터 매처
220; 데이터 중복 제거기

Claims (10)

  1. 데이터 섹터들을 저장하는 물리 페이지들을 포함하는 메모리 시스템의 동작 방법에 있어서,
    새로운 데이터 섹터들을 수신하는 단계;
    최대 가중 이분 매칭에 기초하여, 상기 물리 페이지들 중 제1 물리 페이지에 저장된 데이터 섹터들과 상기 새로운 데이터 섹터들 사이의 가중치들의 합이 최대화 되도록, 상기 저장된 데이터 섹터들과 상기 새로운 데이터 섹터들을 매칭하고, 상기 가중치들은 상기 저장된 데이터 섹터들과 상기 새로운 데이터 섹터들 사이의 유사도인 단계;
    상기 매칭 결과에 따른 상기 저장된 테이터 섹터들과 상기 새로운 데이터 섹터들 사이의 차이를 정의하기 위해, 상기 저장된 테이터 섹터들과 상기 새로운 데이터 섹터들의 중복 제거를 수행하는 단계; 및
    상기 제1 물리 페이지의 잔여 공간에 상기 차이를 라이트하는 단계를 포함하고,
    상기 매칭하는 단계는,
    상기 중복 제거를 수행하는 단계에서 중복 제거될 수 있는 데이터 섹터 쌍의 수를 최대화하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 라이트하는 단계는,
    상기 저장된 데이터 섹터들을 프로그램한 후 이레이즈하기 전에 상기 제1 물리 페이지에서 수행되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  3. 제1항에 있어서,
    상기 저장된 데이터 섹터들은,
    상기 제1 물리 페이지를 부분적으로 점유하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 데이터 섹터 쌍은,
    상기 새로운 데이터 섹터들 중 어느 하나인 제1 새로운 데이터 섹터, 및 상기 저장된 데이터 섹터들 중 상기 제1 새로운 데이터 섹터에 대응되는 제1 저장된 데이터 섹터를 포함하는 메모리 시스템의 동작 방법.
  5. 제1항에 있어서,
    상기 메모리 시스템은,
    워드 라인들과 비트 라인들 사이의 교차 지점들에 연결된 복수의 메모리 셀들을 포함하는 메모리 셀 어레이를 포함하고,
    상기 물리 페이지들 각각은,
    상기 워드 라인들 중 어느 하나에 대응되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  6. 제5항에 있어서,
    상기 복수의 메모리 셀들 중 적어도 하나는
    멀티 레벨 셀(multi level cell(MLC)) 또는 트리플 레벨 셀(triple level cell(TLC))인 메모리 시스템의 동작 방법.
  7. 데이터 섹터들을 저장하는 물리 페이지들을 포함하는 플래시 메모리 장치; 및
    상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    최대 가중 이분 매칭에 기초하여, 상기 물리 페이지들 중 제1 물리 페이지에 저장된 데이터 섹터들과 상기 플래시 메모리 장치에 저장될 새로운 데이터 섹터들 사이의 가중치들의 합이 최대화되도록, 상기 저장된 데이터 섹터들과 상기 새로운 데이터 섹터들을 매칭하는 데이터 매처; 및
    상기 데이터 매처의 상기 매칭 결과에 따른 상기 저장된 데이터 섹터들과 상기 새로운 데이터 섹터들 사이의 차이를 정의하기 위해, 상기 저장된 데이터 섹터들과 상기 새로운 데이터 섹터들의 중복 제거를 수행하는 데이터 중복 제거기를 포함하고,
    상기 데이터 매처는,
    상기 데이터 중복 제거기에서 중복 제거될 수 있는 데이터 섹터 쌍의 수를 최대화하는 것을 특징으로 하는 메모리 시스템.
  8. 제7항에 있어서,
    상기 저장된 데이터 섹터들은,
    상기 제1 물리 페이지를 부분적으로 점유하는 것을 특징으로 하는 메모리 시스템.
  9. 제7항에 있어서,
    상기 메모리 컨트롤러는,
    상기 저장된 데이터 섹터들을 상기 플래시 메모리 장치에 프로그램한 후 이레이즈하기 전에, 상기 저장된 데이터 섹터들을 덮어 쓰지 않고, 상기 제1 물리 페이지의 잔여 공간에 상기 차이를 라이트하도록 상기 플래시 메모리 장치를 제어하는 것을 특징으로 하는 메모리 시스템.
  10. 제7항에 있어서,
    상기 데이터 섹터 쌍은,
    상기 새로운 데이터 섹터들 중 어느 하나인 제1 새로운 데이터 섹터, 및 상기 저장된 데이터 섹터들 중 상기 제1 새로운 데이터 섹터에 대응되는 제1 저장된 데이터 섹터를 포함하는 메모리 시스템.
KR1020160091882A 2015-12-02 2016-07-20 데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템 KR102546304B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/956,715 2015-12-02
US14/956,715 US9841918B2 (en) 2015-12-02 2015-12-02 Flash memory device including deduplication, and related methods

Publications (2)

Publication Number Publication Date
KR20170064980A KR20170064980A (ko) 2017-06-12
KR102546304B1 true KR102546304B1 (ko) 2023-06-21

Family

ID=58798959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160091882A KR102546304B1 (ko) 2015-12-02 2016-07-20 데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템

Country Status (2)

Country Link
US (1) US9841918B2 (ko)
KR (1) KR102546304B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318202B2 (en) * 2017-03-20 2019-06-11 Via Technologies, Inc. Non-volatile memory apparatus and data deduplication method thereof
US10564856B2 (en) * 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
KR20190083862A (ko) * 2018-01-05 2019-07-15 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11921644B2 (en) 2022-05-20 2024-03-05 Western Digital Technologies, Inc. Optimizing huge page management

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
JP5130646B2 (ja) 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US8245094B2 (en) 2007-11-20 2012-08-14 California Institute of Technology Texas A & M Rank modulation for flash memories
US8527482B2 (en) 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
US9389952B2 (en) * 2008-06-18 2016-07-12 Super Talent Technology, Corp. Green NAND SSD application and driver
US8407378B2 (en) 2009-04-22 2013-03-26 Lsi Corporation High-speed inline data compression inline with an eight byte data path
JP2010287279A (ja) 2009-06-11 2010-12-24 Toshiba Corp 不揮発性半導体記憶装置
US8321648B2 (en) 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8423866B2 (en) 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8453031B2 (en) * 2010-03-24 2013-05-28 International Business Machines Corporation Data deduplication using CRC-seed differentiation between data and stubs
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
KR101734200B1 (ko) * 2010-12-03 2017-05-11 삼성전자주식회사 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US9146856B2 (en) * 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US20140059279A1 (en) * 2012-08-27 2014-02-27 Virginia Commonwealth University SSD Lifetime Via Exploiting Content Locality
US9830106B2 (en) * 2012-11-16 2017-11-28 Avalanche Technology, Inc. Management of memory array with magnetic random access memory (MRAM)
KR20150015578A (ko) * 2013-07-30 2015-02-11 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
WO2015128955A1 (ja) * 2014-02-26 2015-09-03 株式会社日立製作所 記憶デバイス、記憶デバイスを有する装置、及び記憶制御方法
US9690512B2 (en) * 2015-11-23 2017-06-27 Samsung Electronics Co., Ltd. Method of similarity testing by syndromes and apparatus therefore

Also Published As

Publication number Publication date
US9841918B2 (en) 2017-12-12
US20170160978A1 (en) 2017-06-08
KR20170064980A (ko) 2017-06-12

Similar Documents

Publication Publication Date Title
US20170161202A1 (en) Flash memory device including address mapping for deduplication, and related methods
KR102609130B1 (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
US9858993B2 (en) Non-volatile memory device and method of programming the same
KR102139323B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
CN107154274B (zh) 操作非易失性存储器设备的方法
US9921749B2 (en) Memory system and method including determining a read voltage based on program order information and a plurality of mapping tables
US9715341B2 (en) Operating a memory device using a program order stamp to control a read voltage
KR102083547B1 (ko) 플래시 메모리와 메모리 컨트롤러를 포함하는 데이터 저장 장치 및 그것의 배드 페이지 관리 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
CN107369470B (zh) 存储设备的编程方法和使用其的存储系统
KR102287760B1 (ko) 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR20140031556A (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
CN112860178B (zh) 存储器装置、存储器控制器、存储器系统及其操作方法
CN111128280B (zh) 存储装置及其操作方法
KR102546304B1 (ko) 데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템
TW201723852A (zh) 記憶體系統及其操作方法
CN114067870A (zh) 存储器系统、存储器装置以及用于操作存储器装置的方法
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
CN113703662A (zh) 存储器系统、存储器控制器及其操作方法
CN113903384A (zh) 存储器系统、存储器控制器以及操作存储器系统的方法
KR20220049109A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN113806254B (zh) 存储器系统、存储器控制器及存储器系统的操作方法
KR20220118004A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20150059058A (ko) 호스트 ftl을 갖는 사용자 장치 및 그것의 오픈 블록의 페이지 오프셋 전송 방법
CN113806255A (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