KR101736337B1 - 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 - Google Patents

비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 Download PDF

Info

Publication number
KR101736337B1
KR101736337B1 KR1020110017565A KR20110017565A KR101736337B1 KR 101736337 B1 KR101736337 B1 KR 101736337B1 KR 1020110017565 A KR1020110017565 A KR 1020110017565A KR 20110017565 A KR20110017565 A KR 20110017565A KR 101736337 B1 KR101736337 B1 KR 101736337B1
Authority
KR
South Korea
Prior art keywords
data
random sequence
memory device
soft decision
read
Prior art date
Application number
KR1020110017565A
Other languages
English (en)
Other versions
KR20120097963A (ko
Inventor
김용준
손홍락
김재홍
윤상용
이기준
정정수
최성혁
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110017565A priority Critical patent/KR101736337B1/ko
Priority to JP2012041220A priority patent/JP5999926B2/ja
Priority to US13/407,333 priority patent/US9495518B2/en
Publication of KR20120097963A publication Critical patent/KR20120097963A/ko
Application granted granted Critical
Publication of KR101736337B1 publication Critical patent/KR101736337B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • 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
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Abstract

비휘발성 메모리 장치가 개시된다. 상기 비휘발성 메모리 장치는 프로그램 데이터를 저장하는 메모리 셀 어레이와, 하드 디시젼 리드 전압 및 적어도 하나 이상의 소프트 디시젼 리드 전압을 형성하는 전압 발생 회로와, 랜덤 시퀀스를 발생시키는 랜덤 시퀀스 발생 회로와, 비트 라인을 통해 상기 메모리 셀 어레이와 연결되고, 상기 랜덤 시퀀스, 상기 하드 디시젼 리드 전압 인가로 인해 리드된 하드 디시젼 데이터와, 상기 소프트 디시젼 리드 전압 인가로 인해 리드된 소프트 디시젼 데이터를 저장하는 적어도 하나의 래치를 포함하는 페이지 버퍼와, 상기 프로그램 데이터 및 상기 랜덤 시퀀스를 상기 페이지 버퍼에 선택적으로 전달하는 멀티플렉서 회로와, 상기 랜덤 시퀀스 발생 회로, 상기 페이지 버퍼, 및 상기 멀티플렉서 회로를 제어하는 컨트롤 로직을 포함하며, 상기 컨트롤 로직의 제어에 따라, 상기 페이지 버퍼는 상기 랜덤 시퀀스를 사용하여 상기 하드 디시젼 데이터를 디랜덤마이징하고 상기 소프트 디시젼 데이터는 디랜덤마이징되지 않는다.

Description

비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법{NONVOLATILE MEMORY DEVICE, CONTROLLER FOR CONTROLLING THE SAME, AND OPERATION METHOD THEREOR}
본 발명의 개념에 따른 실시 예는 데이터 처리 기술에 관한 것으로, 더욱 상세하게는 소프트 디시젼 데이터에 대해서는 랜덤마이징하지 수행하지 않는 컨트롤러, 상기 컨트롤러의 동작 방법, 및 비휘발성 메모리 장치에 관한 것이다.
반도체 메모리 장치는 DRAM(dynamic random access memory), 또는 SRAM (static random access memory) 등과 같은 휘발성 메모리 장치와 EEPROM (electrically Erasable Programmable Read-Only Memory), FRAM(ferroelectrics random access memory), PRAM(phase change random access memory), MRAM (magnetoresistive random access memory), 또는 플래시(flash) 메모리 등과 같은 비휘발성 메모리 장치로 구분할 수 있다.
플래시 메모리의 경우 각각의 메모리 셀에 저장되는 비트 수에 따라 상기 각각의 메모리 셀에 저장 가능한 데이터 상태들이 결정될 수 있다. 하나의 메모리 셀에 1 비트 데이터를 저장하는 메모리 셀을 단일 비트 셀(single-비트 cell) 또는 단일 레벨 셀(single-level cell; SLC)이라 한다. 그리고 하나의 메모리 셀에 멀티 비트 데이터(예를 들면, 2 비트 이상)를 저장하는 메모리 셀을 멀티 레벨 셀(multi-level cell; MLC)이라 한다. MLC 의 경우 고용량 저장 디바이스로서 유리한 장점을 갖는다. 그러나, 하나의 메모리 셀에 프로그램 되는 비트 수가 증가할수록 신뢰성은 떨어지고, 판독 실패율은 증가하게 된다.
본 발명의 실시 예는 메모리 컨트롤러의 동작에 의해 비휘발성 메모리의 데이터 신뢰도를 향상시킬 수 있는 방법과 상기 방법을 수행할 수 있는 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치는 프로그램 데이터를 저장하는 메모리 셀 어레이와, 하드 디시젼 리드(hard decision read) 전압 및 적어도 하나 이상의 소프트 디시젼 리드(soft decision read) 전압을 발생하는 전압 발생회로와, 랜덤 시퀀스(random sequence)를 발생시키는 랜덤 시퀀스 발생 회로와, 비트 라인을 통해 상기 메모리 셀 어레이와 연결되고, 상기 랜덤 시퀀스와 상기 하드 디시젼 리드 전압 인가로 인해 리드된 하드 디시젼 데이터와, 상기 소프트 디시젼 리드 전압 인가로 인해 리드된 소프트 디시젼 데이터를 저장하는 적어도 하나의 래치(latch)를 포함하는 페이지 버퍼와, 상기 프로그램 데이터 및 상기 랜덤 시퀀스를 상기 페이지 버퍼로 선택적으로 전달하는 멀티플렉서 회로와, 상기 랜덤 시퀀스 발생 회로, 상기 페이지 버퍼, 및 상기 멀티플렉서 회로를 제어하는 컨트롤 로직을 포함하며, 상기 컨트롤 로직의 제어에 따라, 상기 페이지 버퍼는 상기 랜덤 시퀀스를 사용하여 상기 하드 디시젼 데이터를 디랜덤마이징하고 상기 소프트 디시젼 데이터는 디랜덤마이징되지 않는다,
상기 리드된 데이터가 상기 소프트 디시젼 데이터인 경우, 상기 컨트롤 로직의 제어에 따라 상기 멀티플렉서 회로는 상기 랜덤 시퀀스를 상기 페이지 버퍼로 전송하지 않는다.
상기 랜덤 시퀀스 발생 회로는 초기값(seed)를 저장하는 LFSR(linear feedbakc shift register)를 포함한다.
상기 리드된 데이터가 상기 소프트 디시젼 데이터인 경우, 상기 컨트롤 로직의 제어에 따라 상기 랜덤 시퀀스 발생 회로의 초기값을 0으로 초기화하여 상기 랜덤 시퀀스를 0으로 형성한다.
상기 하드 디시젼 데이터는 상기 메모리 셀 어레이에 저장된 데이터로 랜덤 데이터이다. 상기 소프트 디시젼 데이터는 상기 하드 디시젼 데이터의 신뢰도를 나타낸다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작방법은 중앙처리 장치로부터 출력된 제1리드 명령어를 비휘발성 메모리 장치로 인가하는 단계와, 상기 제1리드 명령어에 응답하여 상기 비휘발성 메모리 장치로부터 출력된 제1데이터를 수신하고, 수신된 제1데이터를 디랜덤마이징(de-randomizing)하는 단계와, 상기 중앙처리장치로부터 출력된 제2리드 명령어를 상기 비휘발성 메모리 장치로 인가하는 단계와, 상기 제2리드 명령어에 응답하여 상기 비휘발성 메모리 장치로부터 출력된 제2데이터를 수신하고, 수신된 제2데이터를 사용하여 상기 디랜덤마이즈된 제1데이터를 ECC(error correction code) 디코딩하는 단계를 포함한다.
상기 제1리드 명령어는 상기 비휘발성 메모리 장치에 저장된 상기 제1데이터를 리드하는 하드 디시젼 리드 명령어이다. 상기 제2리드 명령어는 상기 제1데이터에 신뢰도를 부가하는 정보인 상기 제2데이터를 리드하기 위한 소프트 디시젼(soft decision) 리드 명령어이다.
상기 소프트 디시젼(soft decision) 리드 명령어 인가시에상기 메모리 컨트롤러는 상기 제2데이터를 디랜덤마이징하지 않는다. 상기 디코딩하는 단계는 LDPC 코드(low density parity check code)를 사용한다.
본 발명의 실시 예에 따른 메모리 컨트롤러는 중앙처리장치와, 상기 중앙처리 장치의 제어에 따라 인가된 하드 디시젼 명령어에 응답하여 비휘발성 메모리 장치로부터 리드된 하드 디시젼(hard decision) 데이터를 랜덤 시퀀스를 이용하여 디랜덤마이즈하고 디랜덤마이즈된 데이터를 출력하는 디랜덤마이저를 포함한다.
상기 디램덤마이즈는 상기 랜덤 시퀀스를 발생하는 랜덤 시퀀스 발생 회로와, 상기 랜덤 시퀀스와 상기 하드 디시젼 데이터를 XOR 연산하여 상기 디랜덤마이즈된 데이터를 출력하는 XOR 게이트를 포함한다. 상기 랜덤 시퀀스 발생 회로는 초기값(seed)을 갖는 다수의 선형 피드백 시프트 레지스터들(Linear feedback shift registers)을 포함하며, 상기 중앙 처리 장치의 제어에 따라 인가된 소프트 디시젼 명령어에 응답하여 상기 비휘발성 메모리 장치로부터 출력된 소프트 디시젼 데이터를 처리할 때, 상기 다수의 선형 피드백 시프트 레지스터들 각각의 초기값이 0으로 초기화됨에 따라 상기 랜덤 시퀀스 발생 회로는 0인 상기 랜덤 시퀀스를 발생한다.
본 발명의 개념에 따른 실시 예에 따른 비휘발성 메모리, 메모리 컨트롤러 및 메모리 컨트롤러 동작방법은 에러 정정 능력을 높이기 위하여 소프트 디시젼 (soft decision) 리드 수행시, 디랜덤마이져 수행을 하지 않으므로서, 소프트 디시젼(soft decision) 데이터에 손상을 방지시킬 수 있다. 따라서 랜덤마이징과 소프트 디시젼의 운용은 멀티 비트 플래시 메모리 장치의 신뢰도를 향상시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1a는 3비트 멜티 레벨 셀(MLC) 플래시 메모리의 정상적인 프로그램 수행 후 프로그램 상태와 이레이즈 상태의 문턱 전압 산포를 나타낸다.
도 1b는 3비트 멜티 레벨 셀(MLC) 플래시 메모리의 프로그램 수행 후, 프로그램 및 이레이즈를 반복하여 시간이 경과한 경우, 플래시 메모리 셀의 특성 열화로 인하여 변형될 수 있는 프로그램 상태와 및 이레이즈 상태의 문턱 전압 산포를 나타낸다.
도 2는 2비트 소프트 디시젼 리드 동작에서의 각각의 리드 전압과 각각의 페이지 버퍼에서 출력되는 데이터를 나타낸다.
도 3은 3비트 소프트 디시젼 리드 동작에서의 각각의 리드 전압과 각각의 페이지 버퍼에서 출력되는 데이터를 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 메모리 시스템의 블락도이다.
도 5a는 본 발명의 일 실시예에 따른 랜덤마이져의 상세한 블락도이다.
도 5b는 본 발명의 일 실시예에 따른 디랜덤마이져의 상세한 블락도이다.
도 5c는 도 5b에 도시된 랜덤 시퀀스 발생 회로의 다른 실시 예를 나타낸다.
도 6은 도 4의 디랜덤마이져의 상세한 블락도이다.
도 7은 도 4의 비휘발성 메모리 장치의 블락도이다.
도 8은 도 7의 랜덤데이터 인터페이스 부분의 상세한 블락도이다.
도 9는 도 7의 페이지 버퍼의 상세한 블락도이다.
도 10은 본 발명의 다른 실시예에 따른 메모리 장치의 블락도이다.
도 11은 본 발명의 다른 실시예에 따른 메모리 시스템의 블락도이다.
도 12는 본 발명의 일 실시예에 따른 데이터 프로그램 동작의 순서도이다.
도 13은 본 발명의 일 실시예에 따른 데이터 리드 동작의 순서도이다.
도 14는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다.
도 15는 본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블락도이다.
도 16은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다.
도 17은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다.
도 18은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다.
도 19는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다.
도 20은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다.
도 21은 도 20에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1a는 3비트 멜티 레벨 셀(MLC) 플래시 메모리의 정상적인 프로그램 수행 후 프로그램 상태와 이레이즈 상태의 문턱 전압 산포를 나타낸다.
MLC(multi level cell) 플래시 메모리의 경우, 하나의 메모리 셀에 k(k는 자연수)-비트를 프로그램하려면, 2k개의 문턱(threshold) 전압들 중에서 어느 하나가 상기 메모리 셀에 형성되어야 한다.
다수의 메모리 셀들 간의 미세한 전기적 특성 차이로 인해, 동일한 데이터가 프로그램된 다수의 메모리 셀들 각각의 문턱 전압은 일정한 범위의 문턱 전압 산포 (threshold voltage distribution)를 형성할 수 있다. 각각의 문턱 전압 산포는 k-비트에 의해 생성될 수 있는 2k개의 데이터 값 각각에 대응될 수 있다.
3-비트 MLC의 경우, 도 1a에 도시된 바와 같이 7개의 프로그램 상태(state; P1~P7)에 상응하는 문턱 전압 산포와 하나의 이레이즈 상태(E)에 상응하는 문턱 전압 산포가 형성된다. 도 1a에 도시된 각 문턱 전압 산포는 이상적인 산포도로서 각 산포가 하나도 겹치지 않고, 각 문턱 전압 산포 별로 리드 전압(read voltage)을 갖는다.
도 1b는 3비트 멜티 레벨 셀(MLC) 플래시 메모리의 프로그램 수행 후, 프로그램 및 이레이즈를 반복하여 시간이 경과한 경우, 플래시 메모리 셀의 특성 열화로 인하여 변형될 수 있는 프로그램 상태와 및 이레이즈 상태의 문턱 전압 산포를 나타낸다.
플래시 메모리의 경우, 시간이 지남에 따라 플로팅 게이트(floating gate) 또는 터널 산화물(tunnel oxide)에 포획(trap)된 전자들이 방출되는 차지 로스 (charge loss)가 발생한다. 또한, 프로그램과 이레이즈가 반복되면서 터널 산화물이 열화되어 상기 차지 로스가 더욱 증가할 수 있다. 상기 차지 로스는 문턱 전압을 감소시킬 수 있어, 예컨대 문턱 전압 산포는 왼쪽으로 이동될 수 있다.
또한, 프로그램 디스터번스, 이레이즈 디스터번스, 및/또는 백 패턴 디펜던시(back pattern dependency)는 문턱 전압 산포를 증가시킬 수 있다. 따라서, 상술한 이유로 인한 플래시 메모리 셀의 특성 열화로 기인하여, 도 1b에 도시된 바와 같이 서로 인접한 각 상태(E, P1~P7)의 문턱 전압 산포가 서로 중첩될 수 있다.
각 상태(E, P1~P7)의 문턱 전압 산포가 서로 중첩되면, 특정 리드 전압을 이용하여 데이터를 리드할 때, 리드 데이터에 많은 오류가 포함될 수 있다. 예를 들면, 리드 전압(Vread3)이 메모리 셀로 인가될 때, 상기 메모리 셀이 온(on) 상태이면 상태(P2) 쪽에 있는 리드 데이터를 말하고, 오프(off) 상태이면 상태(P3) 쪽에 있는 데이터를 말한다. Vread1~Vread7 각각은 리드 전압을 의미한다.
그러나, 중첩된 부분의 경우 오프(off) 상태로 리드되어야 할 메모리 셀이 온(on) 상태로 리드될 수 있다. 따라서, 문턱 전압 산포가 중첩됨에 따라 리드 데이터에는 많은 에러 비트들이 포함될 수 있다.
도 2는 2비트 소프트 디시젼 리드 동작에서의 각각의 리드 전압과 각각의 페이지 버퍼에서 출력되는 데이터를 나타낸다.
본 명세서에서 리드 명령어(read command)는 하드 디시젼(hard decision) 리드 명령어(예컨대, 제1리드 명령어)와 소프트 디시젼(soft decision) 리드 명령어(예컨대, 제2리드 명령어)를 포함한다.
하드 디시젼 리드 동작은 정상 데이터 리드 동작(normal data read operation)을 말하며, 리드 전압이 메모리 셀의 워드 라인으로 공급될 때, 상기 메모리 셀의 온 상태 또는 오프 상태에 따라 상기 메모리 셀에 저장된 데이터를 1 또는 0으로 리드하는 것을 의미한다.
도 2에 도시된 바와 같이, 하드 디시젼 리드 전압은 R1를 말하고, 상기 R1이 메모리 셀로 인가 시 상기 메모리 셀이 온 상태이면 하드 디시젼 데이터(2-1)는 1이 되고 상기 메모리 셀이 오프 상태이면 하드 디시젼 데이터가 0이 된다.
소프트 디시젼 리드 동작은 하드 디시젼 리드 전압(R1)을 기준으로 일정한 전압 차를 갖는 복수의 리드 전압(예컨대, 소프트 디시젼 리드 전압)을 메모리 셀에 인가하여 하드 디시젼 리드 데이터에 신뢰도를 부가하는 정보를 형성하는 것을 의미한다.
도 2에 도시된 바와 같이, 2-비트 소프트 디시젼 리드 동작의 경우, 소프트 디시젼 리드 전압들 각각은 R2-1과 R2-2이다. R2-1 리드 전압이 메모리 셀에 인가 시 상기 메모리 셀의 온 또는 오프에 따라 판단된 첫 번째 소프트 디시젼 리드 값 (2-2)은 1, 0, 0, 및 0이 될 수 있다. R2-2 리드 전압이 메모리 셀에 인가시 상기 메모리 셀의 온 또는 오프에 따라 판단된 된 두 번째 소프트 디시젼 리드 값(2-3)은 1, 1, 1, 및 0이 된다.
플래시 메모리는 첫 번째 소프트 디시젼 리드 값(2-2)과 두 번째 소프트 디시젼 리드 값(2-2)에 대하여 XNOR(exclusive NOR) 연산을 수행하여, 소프트 디시젼 데이터(2-4)를 형성한다. 소프트 디시젼 데이터(2-4)는 히드 디시젼 데이터(2-1)에 신뢰도를 부가할 수 있다.
다시 말해, 소프트 디시젼 데이터(2-4)가 1이면 하드 디시젼 데이터는 강함 (strong)을 의미하고, 소프트 디시젼 데이터(2-4)가 0이면 하드 디시젼 데이터는 약함(weak)을 의미할 수 있다. 다시 말해, 첫 번째 소프트 디시젼 리드 값(2-2)과 두 번째 소프트 디시젼 리드 값(2-3)을 페이지 버퍼 내에서 XNOR 연산하면, 소프트 디시전 데이터(2-4)가 생성될 수 있다. 상기 페이지 버퍼 내에서의 XNOR 연산에 대해서는 후술하도록 한다.
도 3은 3비트 소프트 디시젼 리드 동작에서의 각각의 리드 전압과 각각의 페이지 버퍼에서 출력되는 데이터를 나타낸다.
도 3을 참조하면, R1은 하드 디스젼 전압이고, 메모리 셀이 온 상태인지 또는 오프 상태인지에 따라 데이터 1과 데이터 0이 출력된다(3-1). 하드 디시젼 전압 (R1)을 기준으로 출력된 데이터 1과 데이터 0은 하드 디시젼 데이터(3-1)를 나타내준다.
하드 디시젼 전압(R1)을 기준으로 일정한 전압 차를 가지는 복수의 리드 전압들(R2-1 및 R2-2) 각각이 비휘발성 메모리 장치의 메모리 셀 어레이로 인가된다. 이는 상술한 2-비트 소프트 디시젼 리드 동작과 동일하다. 첫 번째 소프트 디시젼 데이터(3-2)는 1, 0, 0, 및 1이 형성된다.
3-비트 소프트 디시젼 리드 동작의 경우, R2-1을 기준으로 일정한 전압 차를 가지는 복수의 리드 전압들(R3-1 및 R3-2) 각각이 상기 메모리 셀 어레이로 인가된다. 또한, R2-2를 기준으로 일정한 전압 차를 가지는 복수의 리드 전압들(R3-3 및 R3-4) 각각이 상기 메모리 셀 어레이로 인가된다. 4개의 리드 전압들(R3-1, R3-2, R3-3, 및 R3-4) 각각이 상기 메모리 셀 어레이로 인가됨에 따라 얻어진 데이터에 대하여 페이지 버퍼에서 XNOR연산을 수행하면, 두 번째 소프트 디시전 데이터(3-3) 1, 0, 1, 0, 및 1가 형성된다. 이때 두 번째 소프트 디시젼 데이터(3-3)는 첫 번째 소프트 디시젼 데이터(3-2)에 가중치를 줄 수 있다.
다시 말해, 첫 번째 소프트 디시젼 데이터(3-2) 1이 강함(strong)을 나타낸다면, 두 번째 소프트 디시젼 데이터(3-3) 중에서 1은 매우 강함(very strong)을 나타내고 0은 강함(strong)을 나타낼 수 있다.
도 4는 본 발명의 일 실시 예에 따른 메모리 시스템의 블락도이다.
도 4를 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(40)와 비휘발성 메모리 장치(30), 예컨대 플래시 메모리 장치를 포함한다. 메모리 컨트롤러(40)는 마이크로프로세서(41), ECC(error correction code) 인코더(42), ECC 디코더(42'), 랜덤마이져(randomizer; 43), 및 디랜덤마이져(derandomizer; 43')를 포함하며, 각각(41, 42, 42', 43, 및 43')은 버스(44)를 통해서 전기적으로 연결될 수 있다.
도 4에는 랜덤마이져(43)와 디랜덤마이져(43')가 서로 분리된 형태로 도시되었으나 실시 예에 따라 하나로 구현될 수 있다.
마이크로프로세서(41)는 메모리 컨트롤러(40)의 동작을 전반적으로 제어한다. 마이크로프로세서(41)는 호스트(미도시)에서 인가되는 명령어(command)를 해석하고, 해석결과에 따라 비휘발성 메모리 장치(30)의 전반적인 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 또는 이레이즈(erase) 동작 등을 제어할 수 있다.
도 4를 참조하면, 상단의 화살표는 비휘발성 메모리 장치(30)로 데이터를 프로그램하기 위한 프로그램하는 동작을 나타내고, 하단의 화살표는 비휘발성 메모리 장치(30)에 프로그램된 데이터를 리드하는 동작을 나타낸다.
우선, 도 4의 상단의 화살표에 따라 프로그램 동작을 상세히 설명하면 다음과 같다. ECC 인코더(42)는 호스트와 인터페이스(interface)하는 호스트 인터페이스를 통해 입력되는 데이터에 대해 오류 정정 인코딩(error correction encoding)을 수행하고, 이에 따라 패리티(parity) 비트가 부가된 데이터, 예컨대 인코드된 데이터를 형성한다. 상기 인코드된 데이터는 랜덤마이져(43)로 입력될 수 있다. ECC 인코더(42)는 오류 정정을 위한 회로(circuit), 로직(logic), 코드(code), 또는 이들의 결합을 포함할 수 있다.
랜덤마이져(43)는 입력 데이터 패턴(data pattern)에 데이터 1과 데이터 0이 확률적으로 일정하게 유지될 수 있도록 상기 입력 데이터 패턴을 바꾸어 주는 기능을 수행한다. 비휘발성 메모리 장치의 집적도 향상은 다수의 메모리 셀들 간의 간섭(interference)를 증가시킬 수 있다.
즉, 인접하는 다수의 메모리 셀들 각각의 상태(즉, 저장된 데이터 값)에 따라 상기 간섭은 증감될 수 있다. 따라서, 랜덤화된 데이터, 즉 랜덤 데이터를 다수의 메모리 셀들 각각에 저장하는 것에 의해 상기 다수의 메모리 셀들 각각의 데이터 값, 즉 데이터 패턴의 간섭은 최소화될 수 있다.
본 발명의 일 실시 예에 따른 비휘발성 메모리 장치(30), 예컨대 플래시 메모리 장치의 플래시 메모리 셀에는 프로그램 전압 디스터번스, 패스 전압 디스터번스, 플로팅 폴리 게이트들(floating poly gates) 간의 커플링(coupling), 또는 백 패턴 디펜던시(back pattern dependency) 등의 간섭이 존재할 수 있다. 랜덤 데이터를 프로그램하는 것은 다수의 메모리 셀들 사이의 간섭을 최소화할 수 있다.
계속하여, 도 4의 하단의 화살표에 따라 데이터 리드 동작이 상세히 설명된다. 상술한 바와 같이, 랜덤 데이터는 비휘발성 메모리 장치(30)에 저장되어 있다. 따라서 데이터 리드 동작 동안, 랜덤 데이터는 디랜덤마이져(43`)에 의하여 랜덤화되기 이전의 오리지널 데이터(original data)로 복원 또는 디랜덤마이즈되어야 한다.
데이터 리드 동작은 하드 디시젼 리드 동작과 소프트 디시젼 리드 동작을 포함할 수 있다. 다시 말해, 데이터를 리드하는 하드 디시젼 리드 동작과, 상기 하드 디시젼 리드 동작에 추가적인 리드 동작을 수행하여, 상기 하드 디시젼 리드 동작에 따라 리드된 데이터에 신뢰성을 부가할 수 있는 정보를 얻어내는 소프트 디시전 리드 동작을 설명한다. 상기 하드 디시젼 리드 동작의 경우 비휘발성 메모리 장치 (30)로부터 리드된 랜덤 데이터는 디랜덤마이져(43`)에 의하여 오리지널 데이터로 복원될 수 있다.
소프트 디시전 리드 동작은 비휘발성 메모리 장치(30)에 저장된 데이터를 리드하는 동작이 아니고, 하드 디시젼 리드 전압(예컨대, 도 2 또는 도 3의 R1)을 기준으로 일정한 전압 차가 나는 추가적인 리드 전압을 메모리 셀의 게이트로 인가하여 하드 디시젼 리드 동작에 의하여 리드된 데이터에 신뢰도를 부가할 수 있는 정보를 제공하는 동작을 의미한다. 도 3을 참조하면, 2-비트 소프트 디시젼 데이터 (2-4)의 경우, 데이터 1은 강함(strong)을 나타내며 데이터 0은 약함(weak)을 나타낸다.
이러한 소프트 디시젼 데이터(2-4)가 디랜덤마이져(43`)에서 처리될 경우, 신뢰도를 나타내는 정보가 바뀔 수 있는 문제가 발생할 수 있다. 따라서 소프트 디시젼 리드 명령어에 따른 소프트 디시젼 리드 동작의 경우, 출력되는 소프트 디시젼 데이터(2-4)는 디랜덤마이져(43`)를 우회하여 바이패스될 수 있다. 여기서 랜덤마이져(43)와 디랜덤마이져(43`)는 서로 분리된 회로 또는 로직일 수 있고, 또한 하나의 회로 또는 로직일 수 있다.
디랜덤마이져(43`)에 의하여 복원된(또는 디랜덤마이즈된) 데이터 또는 바이패스된 소프트 디시젼 데이터는 ECC 디코더(42`)로 전송될 수 있다. 복원된 오리지널 데이터와 바이패스된 소프트 디시젼 데이터를 사용해서, ECC 디코더(42`)는 리드된 데이터의 에러를 검출하고 정정할 수 있다. ECC 디코더(42`)는 오류 정정을 위한 회로, 로직, 코드, 또는 이들의 조합을 모두 포함할 수 있다.
기존의 ECC 디코더는 하드 디시젼 데이터만을 이용하여 에러 정정을 하였으나, 본 발명의 실시 예에 따른 ECC 디코더(42')는 하드 디시젼 데이터와, 상기 하드 디시젼 데이터에 신뢰성을 나타내는 정보, 예컨대 소프트 디시젼 데이터 값을 부가하여 에러 정정을 수행하므로, ECC 디코더(42')의 에러 정정 능력을 향상시킬 수 있는 장점이 있다.
ECC 인코더(42)와 ECC 디코더(42')는 LDPC 코드(low density parity check), BCH 코드, 터보 코드(turbo code), 리드-솔로몬 코드(Reed-Solomon code), 컨벌류션 코드(convolution code), RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 부호화된 변조(coded modulation) 을 사용하여 에러 정정을 할 수 있으며 이에 한정되는 것은 아니다.
도 5a는 본 발명의 일 실시예에 따른 랜덤마이져의 상세한 블락도이다.
도 5a를 참조하면, 랜덤마이져(43)는 랜덤 시퀀스 발생 회로(50)와 XOR 게이트(51)를 포함할 수 있다. 랜덤시퀀스 발생 회로(50)는 선형 피드백 시프트 레지스터(linear feedback shift register(LFSR))를 사용하여 랜덤 시퀀스(random sequence; RS)를 생성할 수 있다.
또한 선형 피드백 시프트 레지스터는 초기값, 예컨대 씨드(SEED)를 사용하여 랜덤 시퀀스(RS)를 형성할 수 있다. 예컨대, 씨드(SEED)는 레지스터(register)에 저장될 수 있다. 랜덤 시퀀스(RS)는 바이너리 시퀀스(binary sequence)일 수 있으나 이에 한정된 것은 아니다. 랜덤 시퀀스 발생 회로(50)의 선형 피드백 시프트 레지스터(LFSR))의 개수가 m개 일 경우, 랜덤 시퀀스는 (2 m-1)의 주기를 가질 수 있다.
또한 초기에 각각의 선형 피드백 시프트 레지스터(1~m)에는 초기값이 설정될수 있다. 상기 초기값은 씨드(seed)라고 불리며 상기 씨드는 페이지 어드레스 또는 블락 어드레스 등을 사용하여 결정될 수 있다.
XOR 게이트(51)는 랜덤 시퀀스 발생 회로(50)에 의하여 생성된 랜덤 시퀀스 (RS)와 입력되는 오리지널 데이터(OD)를 XOR 연산하여 랜덤 데이터(RD)를 생성할 수 있다.
도 5b는 본 발명의 일 실시예에 따른 디랜덤마이져의 상세한 블락도이다.
도 5b에 도시된 디랜덤마이져(43')는 랜덤마이져(43)와 동일하게 랜덤 시퀀스 발생 회로(50)와 XOR 게이트(51)를 포함할 수 있다. 따라서 랜덤마이져(43)와 디랜덤마이져(43')는 하나의 회로 또는 장치로 구성될 수 있다. 실시 예에 따라 랜덤마이져(43)와 디랜덤마이져(43')는 서로 분리된 회로 또는 장치로 구성될 수도 있다. 실시 형태에 따라서 랜덤마이져(43)와 디랜덤마이져(43')는 동일한 하나의 회로 또는 장치로 또는 서로 다른 2개의 회로들 또는 장치들로 구성될 수 있다. 또한 디랜덤마이져(43')은 랜덤마이져(43)에서 사용된 씨드(seed)와 동일한 시드를 사용하여, 랜덤 시퀀스(RS)를 형성할 수 있다.
디랜덤마이져(43')로 전송된 하드 디시젼 데이터 즉, 랜덤 데이터(RD)는 랜덤 시퀀스 발생 회로(50)에 의해 생성된 랜덤 시퀀스(RS)에 따라서 XOR 게이트(51)에 의해서 오리지널 데이터(OD)로 변환될 수 있다. 디랜덤마이져(43')는 랜덤마이져(43)에서 사용된 동일한 랜덤 시퀀스를 사용할 수 있다.
랜덤마이져(43)와 디랜덤마이져(43') 각각은 랜덤 시퀀스 발생 회로(50)와 XOR 게이트(51)를 포함하며, 데이터의 입출력 방향이 서로 다를 수 있다.
도 5c는 도 5b에 도시된 랜덤 시퀀스 발생 회로의 다른 실시 예를 나타낸다.
상술한 바와 같이 소프트 디시젼 데이터는 디랜덤마이져(43')에 의하여 디랜덤마이즈될 때 변형될 수 있으므로 이에 따라 신뢰도 부가 정보가 왜곡될 수 있다.
도 4, 도 5b, 및 도 5c를 참조하면, 소프트 디시젼 리드 동작 동안, 마이크로프로세서(41)는 랜덤 시퀀스 발생 회로(50)의 각각의 선형 피드백 시프트 레지스터(1~m)의 초기값, 즉 씨드(seed)를 모두 0으로 만들 수 있다. 따라서 랜덤 시퀀스 발생 회로(50)에서 생성된 시퀀스(RS)가 모두 0(all zero)이 됨에 따라, 소프트 디시젼 데이터의 변형은 방지될 수 있다. 즉, 소프트 디시젼 데이터에 대해서는 디랜덤마이져(43')에 의한 디랜덤마이즈가 수행되지 않는 것과 동일한 효과를 가진다.
도 6은 도 4의 디랜덤마이져의 상세한 블락도이다.
도 6에는 설명의 편의를 위하여 디랜덤마이져(43'), 마이크로프로세서(41), 및 스위치(60)가 함께 도시되어 있다. 디랜덤마이져(43')는 시퀀스 발생 회로(50)와 XOR 게이트(51)를 포함하나, 실시 예에 따라 소프트 디시젼 데이터를 출력할 때 스위칭되는 스위치(60)를 더 포함할 수 있다. 예컨대, 스위치(60)는 트랜지스터로 구현될 수 있다.
마이크로프로세서(41)는 소프트 디시젼 리드 명령어를 발생할 때 디랜덤마이져(43')로 소프트 디시젼 리드 명령어를 전송할 수 있다. 마이크로프로세서(41)의 제어에 따라 소프트 디시젼 데이터가 출력될 때 소프트 디시젼 데이터가 디랜덤마이져(43')로 입력되지 않고 바이패스 될 수 있도록, 스위치(60)가 스위칭될 수 있도록 한다. 예컨대, 소프트 디시젼 명령어에 따른 동작이 수행될 때, 스위치(60)는 스위칭 신호, 예컨대 마이크로프로세서(41)로부터 출력된 스위칭 신호에 응답하여 소프트 디스젼 데이터를 바이패스할 수 있다.
마이크로프로세서(41)제어에 따라 소프트 디시젼 명령어가 디랜덤마이져 (43')로 인가되고, 일정 시간이 지난 후에 스위치(60)가 스위칭 될 수 있다. 또한,소프트 디시젼 데이터가 출력될 때, 특정 신호를 스위치(60)로 인가해서 스위치 (60)가 스위칭될 수 있도록 할 수 있다. 스위치(60)가 스위칭됨에 따라 디랜덤마이져(43')를 우회하여 바이패스(bypass)된 소프트 디시젼 데이터는 변형되지 않은 채 버스(44)를 통하여 ECC 디코더(42')로 입력될 수 있다.
도 7은 도 4의 비휘발성 메모리 장치의 블락도이다.
비휘발성 메모리 장치(30)는 플래시 메모리 장치, 예컨대 NAND 플래시 메모리 장치로 구현될 수 있다.
도 7을 참조하면, 플래시 메모리 장치(30)는 다수의 워드 라인들(W/L)과 다수의 비트 라인들(B/L) 사이에 접속된 다수의 메모리 셀들을 포함하는 메모리 셀 어레이(34), 로우 디코더(row decoder; 33), 전압 발생기(32), 입출력 패드(38), 입출력 버퍼(37), 랜덤 데이터 인터페이스(36), 페이지 버퍼(35), 및 컨트롤 로직 (31)을 포함할 수 있다.
메모리 셀 어레이(34)는 다수의 워드 라인들(W/L)과 다수의 비트 라인들 (B/L)을 포함하며, 각 메모리 셀은 1-비트 데이터 또는 M(M은 2 이상의 자연수)-비트 데이터를 저장할 수 있다. 상기 각 메모리 셀은 플로팅 게이트(floating gate) 또는 전하 트랩 층과 같은 전하 저장 층을 갖는 메모리 셀 또는 가변 저항 소자를 갖는 메모리 셀로 구현될 수 있다. 메모리 셀 어레이(34)는 단층 어레이 구조 (single-layer array structure; 또는, 2차원 어레이 구조) 또는 다층 어레이 구조 (multi-layer array structure; 또는 3차원 어레이 구조)를 가질 수 있도록 구현될 수 있다.
회로, 로직, 코드, 또는 이들의 조합으로 구현될 수 있는 컨트롤 로직(31)은 플래시 메모리 장치(30)의 동작을 전반적으로 제어한다. 외부로부터 명령어(CMD)가 입력되면, 컨트롤 로직(31)은 명령어(CMD)를 해석하고 플래시 메모리 장치(30)가 해석된 명령어에 따른 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 또는 이레이즈(erase) 동작을 수행하도록 플래시 메모리 장치(30)를 제어할 수 있다.
로우 디코더(33)는 컨트롤 로직(31)에 의해 제어되며, 로우 어드레스에 따라 메모리 셀 어레이(34)에 구현된 다수의 워드 라인들 중에서 적어도 하나의 워드 라인을 구동한다.
전압 발생기(32)는 컨트롤 로직(31)의 제어에 따라 프로그램 동작, 리드 동작 또는 이레이즈 동작에 필요한 적어도 하나의 전압을 생성하고, 생성된 적어도 하나의 전압을 로우 디코더(33)에 의하여 선택된 적어도 하나의 워드 라인으로 공급한다.
페이지 버퍼(35)는 컨트롤 로직(31)에 의해 제어되며, 동작 모드, 예컨대 리드 동작 또는 프로그램 동작에 따라 감지 증폭기로서 또는 라이트 드라이버로서 동작할 수 있다.
예를 들면, 리드 동작 동안 페이지 버퍼(35)는 선택된 적어도 하나의 워드 라인과 적어도 하나의 비트 라인 사이에 접속된 적어도 하나의 메모리 셀로부터 리드된 데이터를 감지하는 감지 증폭기로서 동작한다. 프로그램 동작 동안 페이지 버퍼(35)는 프로그램 데이터를 선택된 적어도 하나의 워드 라인과 적어도 하나의 비트 라인 사이에 접속된 적어도 하나의 메모리 셀에 라이트하기 위한 라이트 드라이버로서 동작한다. 페이지 버퍼(35)는 다수의 단위 페이지 버퍼들을 포함하며, 상기 다수의 단위 페이지 버퍼들 각각은 적어도 하나의 비트 라인에 연결되어 있다. 따라서, 페이지 버퍼(35)는 프로그램 동작 또는 리드 동작 동안 프로그램 데이터 또는 리드 데이터를 저장할 수 있다.
입출력 패드(또는 입출력 회로; 38), 입출력 버퍼(37)는 외부 장치, 예컨대 호스트와 비휘발성 메모리 장치(30) 사이에서 주고 받는 데이터의 입출력 경로가 될 수 있다.
랜덤 데이터 인터페이스(36)는 도 5a에 도시된 랜덤마이져(43)와 동일하게 프로그램 동작 동안 외부로부터 입력된 오리지널 데이터(OD)를 랜덤 데이터(RD)로 랜더마이즈할 수 있다. 또한 랜덤 데이터 인터페이스(36)는 도 5b에 도시된 디랜덤마이져(43')와 동일하게 리드 동작 동안 리드된 랜덤 데이터(RD)를 오리지널 데이터(OD)로 디랜더마이즈할 수 있다.
랜덤 데이터 인터페이스(36)는 컨트롤 로직(31)에 의해 제어되며, 도 5a, 도 5b, 또는 도 6에 도시된 바와 같이 랜덤 시퀀스 발생 회로(50)와 XOR 게이트(51)를 포함할 수 있다. 랜덤 시퀀스 발생 회로(50)는 컨트롤 로직(31)에 제어에 따라 랜덤 시퀀스(RS)를 순차적으로 발생한다. 랜덤 데이터 인터페이스(36)는 컨트롤 로직 (31)의 제어에 따라 랜덤 시퀀스(RS)와 입력된 데이터(OD 또는 RD)를 XOR연산하여 랜덤 데이터(RD) 또는 오리지널 데이터(OD)를 생성할 수 있다. 이렇게 생성된 랜덤 데이터는 컨트롤 로직(31)의 제어에 따라 페이지 버퍼(35)에 로딩될 수 있다.
플래시 메모리 장치(30)가 리드 명령어에 응답하여 메모리 셀 어레이(34)에 프로그램된 랜덤 데이터를 리드하는 경우는 다음과 같다.
상술한 바와 같이, 상기 리드 명령어는 메모리 셀 어레이(34)에 저장된 데이터를 온 상태 또는 오프 상태로 판단하여 리드하기 위한 하드 디시젼 리드 명령어(예컨대, 제1 리드 명령어)와, 하드 디시젼 리드 데이터에 신뢰도를 부가하는 정보를 리드하기 위한 소프트 디시젼 리드 명령어(예컨대, 제 2 리드 명령어)를 포함한다.
하드 디시젼 데이터는 랜덤 데이터 인터페이스(36)에 의하여 랜덤 데이터로부터 오리지널 데이터로 복원되는 즉 디랜덤마이즈되는 과정을 거쳐야 한다. 도 5b에 도시된 바와 같이, 랜덤 시퀀스(RS)와 랜덤 데이터(RD), 즉 하드 디시젼 데이터에 대하여 XOR 연산이 수행됨에 따라, 랜덤 데이터(RD)는 오리지널 데이터(OD)로 디랜덤마이즈된다. 그러나 소프트 디시젼 데이터는 랜덤 데이터 인터페이스(36)에 의하여 변형될 수 있다. 따라서 변형된 소프트 디시젼 데이터는 하드 디시젼 데이터에 부가된 신뢰도 정보를 변경시킬 수 수 있다. 이에 대해서는 후술하기로 한다.
도 8은 도 7의 랜덤데이터 인터페이스 부분의 상세한 블락도이다.
도 5a부터 도 6을 참조하여 설명한 바와 같이, 랜덤 데이터 인터페이스(36)는 컨트롤 로직(31)의 제어를 받으며, 랜덤 시퀀스 발생 회로(50) 및 XOR 게이트 (51)를 포함할 수 있다. 프로그램 동작 동안 입력 버퍼(37-1)를 통하여 오리지널 데이터(OD)가 랜덤 데이터 인터페이스(36)로 입력되고, XOR 게이트(51)는 랜덤 시퀀스 발생 회로(50)에 의하여 발생한 랜덤 시퀀스(RS)와 입력 버퍼(37-1)를 통하여 입력된 오리지널 데이터(OD)를 XOR 연산하여 랜덤 데이터(RD)를 생성한다. 생성된 랜덤 데이터(RD)는 페이지 버퍼(35)에 로딩되고 메모리 셀 어레이(34)에 프로그램된다.
메모리 셀 어레이(34)에 프로그램된 데이터를 리드하는 리드 동작 동안, 페이지 버퍼(35)는 하드 디시젼 리드 동작(예컨대, 제1리드 동작)을 통하여 상기 리드 동작의 대상이 된 메모리 셀의 상태가 온인지 또는 오프인지를 감지하여 상기 메모리 셀에 프로그램된 데이터가 데이터 1인지 또는 데이터 0인지를 구분할 수 있다.
감지된 랜덤 데이터는 랜덤 데이터 인터페이스(36)로 전송될 수 있다. 랜덤 데이터 인터페이스(36)의 XOR 게이트(51)는 페이지 버퍼(35)로부터 출력된 랜덤 데이터(RD)와 랜덤 시퀀스 발생 회로(50)로부터 출력된 랜덤 시퀀스(RS)를 XOR 연산하여 램던 데이터(RD)를 오리지널 데이터(OD)로 복원, 즉 디랜덤마이즈할 수 있다.
그러나 소프트 디시젼 리드 동작(예컨대, 제2리드 동작) 동안 출력되는 소프트 디시젼 데이터는 랜덤 인터페이스(36)에 의하여 디랜덤마이즈될 때, 신뢰도 정보가 변형될 수 있다. 따라서 소프트 디시젼 데이터가 출력될 때, 컨트롤 로직(31)의 제어에 따라 스위치(83)는 상기 소프트 디시젼 데이터가 XOR 게이트(51')로 전송되지 않도록 상기 소프트 디시젼 데이터를 출력 버퍼(37-2)로 바이패스한다.
도 9는 도 7의 페이지 버퍼의 상세한 블락도이다.
도 7부터 도 9를 참조하면, 페이지 버퍼(35)는 적어도 하나의 래치(90-1~30-4)를 포함할 수 있다. 도 9에는 예시적으로 4개의 래치들(90-1~90-4)이 도시되었으나 이에 한정되는 것은 아니다. 4개의 래치들(90-1~90-4) 각각은 전기적으로 서로 연결되어 있을 수 있다. 제1래치(90-1)은 메모리 셀의 데이터를 감지하는 감지 래치가 될 수 있고, 제2래치(90-2)는 특정 1-비트 데이터를 저장할 수 있는 제1데이터 래치가 될 수 있다. 제3래치(90-3)는 또 다른 특정 1-비트 데이터를 저장할 수 있는 제2데이터 래치가 될 수 있으며, 제4래치(90-4)는 입력 데이터, 또는 출력되는 데이터를 래치하는 래치가 될 수 있다.
페이지 버퍼(35)는 컨트롤 로직(31)의 제어에 따라 4개의 래치들(90-1, 90-2, 90-3, 및 90-4)의 조합을 통해서 XNOR 연산이나 XOR 연산을 수행할 수 있다.
예를 들면, 도 2에 도시된 바와 같이 제1소프트 디시젼 값(2-2)이 제1데이터 래치(90-2)에 저장되어 있고 제2소프트 디시젼 값(2-3)이 제2데이터 래치(90-3)에 저장되어 있다면, 컨트롤 로직(31)의 제어에 따라 제1데이터 래치(90-2)에 저장된 값과 제2데이터 래치(90-3)에 저장된 값은 XNOR 연산을 통하여 소프트 디시젼 데이터(2-4)로서 출력될 수 있다.
또한 제1래치(90-1)에 외부로부터 입력된 데이터가 저장되고 제2래치(90-2)에 랜덤 데이터가 저장되어 있으면, 컨트롤 로직(31)의 제어에 따라 제1데이터 래치(90-1)에 저장된 값과 제2데이터 래치(90-3)에 저장된 값은 XOR 연산을 통하여 랜덤 데이터로서 출력될 수 있다. 랜덤 데이터를 복원하는 과정도 이와 동일 할 수 있다.
도 10은 본 발명의 다른 실시예에 따른 메모리 장치의 블락도이다.
도 4에 도시된 비휘발성 메모리 장치(30)의 다른 실시 예인 비휘발성 메모리 장치(30a)는 컨트롤 로직(31), 랜덤 시퀀스 발생 회로(50), 선택 신호에 응답하여 데이터(DATA IN)와 랜덤 시퀀스(RS)를 페이지 버퍼(35)로 선택적으로 전달하는 멀티플렉서(91), 및 데이터(DATA IN)와 랜덤 시퀀스(RS)에 대하여 XOR 연산을 수행하는 페이지 버퍼(35)를 포함할 수 있다.
랜덤 시퀀스 발생 회로(50)는 비휘발성 메모리 장치(30a)의 컨트롤 로직(31)에 의해 제어될 수 있다. 컨트롤 로직(31)의 제어에 따라, 랜덤 시퀀스 발생 회로 (50)는 랜덤 시퀀스(RS)를 발생하고 발생한 랜덤 시퀀스(RS)를 멀티플렉서(91)로 w전송할 수 있다. 상술한 바와 같이, 랜덤 시퀀스 발생 회로(50)는 바이너리 랜덤 시퀀스를 형성할 수 있으나 이에 한정되는 것은 아니다.
멀티플렉서(91)는 랜덤 시퀀스 발생 회로(50), 데이터 이동 경로인 입력 버퍼(37-1), 및 페이지 버퍼(35)에 연결될 수 있다. 멀티플렉서(91)는 컨트롤 로직 (31)으로부터 출력된 선택 신호에 따라 동작할 수 있다. 멀티플렉서(91)는 입력 버퍼(37-1)로부터 출력된 데이터(DATA IN)를 페이지 버퍼(35)로 전달(또는 로딩)시킬 수 있다. 랜덤 시퀀스 발생 회로(50)로부터 출력된 랜덤 시퀀스(RS)는 멀티플렉서 (91)에 의하여 페이지 버퍼(35)로 전달(또는 로딩)될 수 있다.
다시 말해, 프로그램 동작 수행시, 페이지 버퍼(35)는 멀티플렉서(91)를 통해 입력 버퍼(37-1)로부터 출력된 데이터(DATA IN)를 수신하고 랜덤 시퀀스(RS)를 수신할 수 있다. 페이지 버퍼(35)는 데이터(DATA IN)를 저장하는 적어도 하나의 래치와 랜덤 시퀀스(RS)를 저장하는 적어도 하나의 래치를 포함할 수 있다.
페이지 버퍼(35)의 구성에 대해서는 도 9에서 이미 설명한 바와 같다. 페이지 버퍼(35)는 컨트롤 로직(31)의 제어에 따라 데이터(DATA IN) 및 랜덤 시퀀스 (RS)에 대한 XOR 연산을 수행하며, 데이터(DATA IN)를 랜덤화할 수 있다. 따라서, 페이지 버퍼(35)는 랜덤 데이터를 저장하는 래치를 더 포함할 수 있을 것이다.
프로그램 동작과 마찬가지로, 데이터 리드 동작 시 페이지 버퍼(35)의 XOR 연산은 리드 동작 시에도 수행될 것이다. 페이지 버퍼(35)에서 랜덤 데이터가 감지 증폭되는 동안, 멀티플렉서(91)는 페이지 버퍼(35)로 랜덤 시퀀스(RS)를 전달할 수 있다. 램덤 데이터에 대한 감지 동작 및 증폭 동작이 완료되면, 페이지 버퍼(35)는 컨트롤 로직(31)의 제어에 따라 감지 증폭된 랜덤 데이터(DATA OUT) 및 랜덤 시퀀스(RS)에 대한 XOR 연산을 수행할 수 있다.
페이지 버퍼(35)는 랜덤 데이터를 디랜덤마이즈하여 오리지널 데이터를 복원할 수 있다. 다시 말해, 랜덤 데이터에 대한 감지가 완료되면, 컨트롤 로직(31)은 페이지 버퍼(35)에 저장된 감지된 랜덤 데이터와 랜덤 시퀀스에 대해 XOR 연산을 수행하도록 페이지 버퍼(35)를 제어한다. 상술한 바와 같이, 메모리 셀 어레이(34)로부터 리드된 랜덤 데이터, 즉 하드 디시젼 데이터는 리드 동작 동안 랜덤 시퀀스 (RS)와 XOR 연산을 통해 오리지널 데이터로 복원, 즉 디랜덤마이즈될 수 있다. 그러나, 랜덤 데이터, 즉 소프트 디시젼 데이터는 디랜덤마이즈 될 때 신뢰도를 부가하는 정보가 변형될 수 있다.
도 10을 참조하면, 소프트 디시젼 데이터 출력시에는 컨트롤 로직(31)의 제어에 따라 멀티플렉서(91)는 랜덤 시퀀스(RS)를 페이지 버퍼(35)로 전송하지 않는다. 따라서 소프트 디시젼 데이터는 변형되지 않은 채로 그대로 출력될 수 있다. 또는 랜덤 시퀀스(RS)가 페이지 버퍼(35)에 로딩된 경우, 소프트 디시젼 데이터가 출력되는 동안, 컨트롤 로직(31)은 페이지 버퍼(35)를 제어하여, 랜덤 시퀀스(RS)와 소프트 디시젼 데이터(DATA OUT)가 XOR 연산되지 않도록 다수의 래치들(90-1~90-4) 각각을 제어할 수 있다.
도 2를 참조하면, 첫 번째 소프트 디시젼 리드 값(2-2)과 두 번째 소프트 디시젼 값(2-3)은 XNOR 연산을 통해 소프트 디시젼 데이터(2-4)로서 형성될 수 있다. 첫 번째 소프트 디시젼 값(2-2)과 두 번째 소프트 디시젼 값(2-3) 각각에 대해서 XOR 연산이 먼저 수행될 수 있다. 그리고 첫 번째 소프트 디시젼 값(2-2)과 두 번째 소프트 디시젼 값(2-3)에 대하여 XNOR 연산이 수행되면, 소프트 디시젼 데이터 (2-4)는 변형되지 아니한다.
도 11은 본 발명의 다른 실시예에 따른 메모리 시스템의 블락도이다.
도 11을 참조하면, 메모리 시스템(10a)은 컨트롤러(40)와 비휘발성 메모리 장치(30)를 포함할 수 있다. 컨트롤러(40)는 마이크로프로세서(41), ECC 인코더 (42), ECC 디코더(42'), 랜덤마이져 유닛(43), 디랜덤마이져 유닛(43'), 및 명령어 발생기(45)를 포함할 수 있다. 마이크로프로세서(41)는 메모리 시스템(10a)의 동작을 전반적으로 제어할 수 있다. 랜덤마이져 유닛(43)과 디랜덤마이져 유닛(43') 각각은 도 4에서 도시된 랜덤마이저(43)와 디램덤마이저(43') 각각과 실질적으로 동일하다.
ECC 인코더(42) 및 ECC 디코더(42')는 도 4에서 도시된 ECC 인코더(42) 및 ECC 디코더(42')와 동일하다. 명령어 발생기(45)는 마이크로프로세서(41)로부터 출력된 명령어를 수신하여 이를 해석하고 해석결과에 따라 비휘발성 메모리 장치 (30), 예를 들면 NAND 플래시 메모리 장치(30)의 동작에 적합한 명령어를 발생할 수 있다. 명령어 발생기(45)는 발생한 명령어를 NAND 플래시 메모리 장치(30)로 인가할 수 있다.
비휘발성 메모리 장치(30)는 메모리 셀 어레이(34), 컨트롤 로직(31), 로우 디코더(33), 입출력 버퍼(38), 랜덤 시퀀스 발생 회로(50), 페이지 버퍼(35)를 포함할 수 있다. 메모리 셀 어레이(34)는 다수의 블록들을 포함하며, 상기 다수의 블록들 각각은 다수의 페이지를 포함한다. 프로그램 동작 또는 리드 동작은 페이지 단위로 수행되고, 이레이즈 동작은 블록 단위로 수행될 수 있다.
컨트롤 로직(31), 로우 디코더(33), 페이지 버퍼(35), 랜덤 시퀀스 발생 회로(50), 및 입출력 회로(50)의 구성과 동작은 도 8 내지 도 10을 참조하여 설명한 바와 같다.
도 4, 도 6, 및 도 11을 참조하면, 컨트롤러(40) 내의 랜덤마이져 유닛(43) 내부에 랜덤 시퀀스 발생 회로(50)가 구현될 수 있고, 비휘발성 메모리 장치(30) 내에 랜덤 시퀀스 발생 회로(50)가 구현될 수 있다.
즉, 실시 예에 따라 랜덤마이져 유닛(43)는 컨트롤러(40)의 내부에 또는 비휘발성 메모리 장치(30) 내부에 구현될 수 있다. 실시 예에 따라 램덤 마이저 유닛(43) 또는 디랜덤마이저 유닛(43')은 컨트롤러(40)와 비휘발성 메모리 장치(30) 중에서 어느 하나에 또는 모두에 구현될 수 있다. 컨트롤러(40) 내에 랜덤 시퀀스 발생 회로가 구현될 때, 상기 랜덤 시퀀스 발생 회로는 비휘발성 메모리 장치(30) 내의 랜덤 시퀀스 발생 회로(50) 보다 더 많은 개수의 선형 피드백 쉬프트 레지스터를 포함할 수 있다. 따라서 컨트롤러(40) 내부에 구현된 랜덤마이져 유닛(43)에 의해 형성된 랜덤 시퀀스는 비휘발성 메모리 장치(30)에 구현된 랜덤마이저에 의하여 형성된 랜덤 시퀀스보다 긴 주기(long term)를 가질 수 있다.
비휘발성 메모리 장치(30)는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 비휘발성 메모리 장치(30) 및/또는 컨트롤러(40)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages (CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
도 12는 본 발명의 일 실시예에 따른 데이터 프로그램 동작의 순서도이다.
도 1 내지 도 12를 참조하면, 마이크로프로세서(41) 제어에 따라, 컨트롤러 (40)는 비휘발성 메모리 장치(30)로 프로그램 명령어를 인가할 수 있다(S11). 컨트롤러(40)는 예를 들면 호스트로부터 출력되고 메모리 셀 어레이(34)에 프로그램될 데이터를 수신할 수 있다(S12). ECC 인코더(42)는 프로그램될 데이터를 ECC 인코딩하여 인코드된 데이터를 랜덤마이져(43)로 보낼 수 있다(S13). 랜덤마이져(43)는 프로그램될 데이터를 램덤 시퀀스를 이용하여 랜덤 데이터로 램덤마이즈할 수 있다 (S14).
랜덤 데이터를 만드는 과정은 도 4부터 도 11을 참조하여 설명한 바와 같다. 컨트롤러(40)는 랜덤 데이터를 비휘발성 메모리 장치(30)로 제공할 수 있다. 그리고 비휘발성 메모리 장치(30)는 컨트롤 로직(30)의 제어에 의해서 랜덤 데이터를 메모리 셀 어레이(34)에 프로그램할 수 있다(S15). 랜덤 데이터를 메모리 장치(30)의 메모리 어레이(34)에 프로그램 한 후 프로그램 동작은 종료될 수 있다(S16).
도 13은 본 발명의 일 실시예에 따른 데이터 리드 동작의 순서도이다.
도 1부터 도 11, 및 도 13을 참조하면, 마이크로프로세서(41)의 제어에 따라, 컨트롤러(40)는 비휘발성 메모리 장치(30)로 리드 명령어를 인가할 수 있다 (S21). 컨트롤러(40)는 하드 디시젼(hard decision) 리드 명령어를 비휘발성 메모리 장치(30)로 인가할 수 있다. 컨트롤러(40)는 상기 하드 디시젼 리드 명령어에 따라 메모리 셀 어레이(34)로부터 리드된 랜덤 데이터, 예컨대 하드 디시젼 데이터를 수신할 수 있다.
디랜덤마이져(43)는 랜덤 시퀀스를 이용하여 랜덤 데이터, 예컨대 하드 디시젼 데이터를 디랜덤마이즈하고 디랜덤마이즈된 데이터를 ECC 디코더(42')로 전송을 할 수 있다(S22). 하드 디시젼(hard decision) 명령어가 인가된 후, 컨트롤러(40)는 소프트 디시젼(soft decision) 명령어를 비휘발성 메모리 장치(30)로 인가할 수 있다(S23). 상기 소프트 디시젼 명령어가 비휘발성 메모리 장치(30)로 인가되지 않는 경우, 컨트롤러(40)는 S22 단계에서 디랜덤마이즈된 데이터를 ECC 디코더(42')에 전송하여 ECC 디코딩을 수행하고 에러 비트를 정정할 수 있다(S25).
마이크로프로세서(41)의 제어에 의해서 컨트롤러(40)가 비휘발성 메모리 장치(30)로 소프트 디시젼(soft decision) 명령어를 인가하는 경우, 컨트롤러(40)는 소프트 디시젼(soft decision) 데이터를 비휘발성 메모리 장치(30)로부터 수신할 수 있다. 앞서 기술한 바와 같이, 소프트 디시젼 데이터는 비휘발성 메모리 장치 (30)에 프로그램된 데이터가 아니며, 하드 디시젼 데이터에 신뢰도를 부가하는 데이터이다. 따라서 다시 소프트 디시젼 데이터에 대해서는 디랜덤마이징을 하지 아니하고, ECC 디코더(42')로 상기 소프트 디시젼 데이터를 그대로 전송해야 한다.
따라서, 디랜덤마이즈되지 않은 소프트 디시젼 데이터가 ECC 디코더(42')에 전송될 수 있다(S24). ECC 디코딩 시에, 복원된 하드 디시젼 데이터(예컨대, 디램덤마이즈된 데이터)와 디랜덤마이져가 되지 않은 소프트 디시젼 데이터를 사용하여 에러 정정이 수행될 수 있다(S25). ECC 디코딩이 완료가 되면, 리드 데이터가 호스트로 출력되고 리드 동작이 종료될 수 있다(S26). ECC 인코더(42)와 ECC 디코더(42')는 LDPC, BCH 코드(code), 터보 코드, 리드-솔로몬 코드, 컨벌루션 코드, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation) 을 사용하여 에러 정정을 할 수 있으며, 이에 한정되는 것은 아니다.
도 14는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도이다. 도 14를 참조하면, 이동 전화기(cellular phone), 스마트 폰 (smart phone), 또는 태블릿(tablet) PC와 같은 전자 장치(100)는 플래시 메모리 장치로 구현될 수 있는 비휘발성 메모리 장치(30)와, 비휘발성 메모리 장치(30)의 동작을 제어할 수 있는 메모리 컨트롤러(40)를 포함할 수 있다.
비휘발성 메모리 장치(30)는 프로그램 동작 또는 리드 동작 시 데이터를 랜덤마이징 또는 디랜덤마이징을 할 수 있다. 메모리 컨트롤러(40)는 전자 장치(100)의 전반적인 동작을 제어하는 프로세서(110)에 의하여 제어된다.
비휘발성 메모리 장치(30)에 저장된 데이터는, 프로세서(110)의 제어에 따라 동작하는 메모리 컨트롤러(40)의 제어에 따라, 디스플레이(130)를 통하여 디스플레이될 수 있다.
무선 송수신기(120)는 안테나를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(120)는 안테나를 통하여 수신된 무선 신호를 프로세서(110)가 처리할 수 있는 신호로 변환할 수 있다. 따라서 프로세서(110)는 무선 송수신기 (120)로부터 출력된 신호를 처리하고, 처리된 신호를 메모리 컨트롤러(40)를 통하여 비휘발성 메모리 장치(30)에 저장하거나 또는 디스플레이(130)를 통하여 디스플레이할 수 있다. 무선 송수신기(120)는 프로세서(110)로부터 출력된 신호를 무선 신호로 변환하고, 변환된 무선 신호를 안테나를 통하여 외부로 출력할 수 있다.
입력 장치(140)는 프로세서(110)의 동작을 제어하기 위한 제어 신호 또는 프로세서(110)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다. 프로세서(110)는 비휘발성 메모리 장치(30)로부터 출력된 데이터, 무선 송수신기(120)로부터 출력된 무선 신호, 또는 입력 장치(140)로부터 출력된 데이터가 디스플레이(130)를 통하여 디스플레이될 수 있도록 디스플레이(130)를 제어할 수 있다.
도 14에는 프로세서(110)와 메모리 컨트롤러(40)가 서로 독립적인 칩으로 구현된 예를 도시하였으나 메모리 컨트롤러(40)는 프로세서(110)의 일부로 구현될 수 있다.
도 15는 본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블락도를 나타낸다. 도 15를 참조하면, PC(personal computer), 태블릿 컴퓨터(tablet computer), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(200)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(30)와, 비휘발성 메모리 장치(30)의 동작을 제어할 수 있는 메모리 컨트롤러(40)를 포함한다.
전자 장치(200)는 전자 장치(200)의 전반적인 동작을 제어하기 위한 프로세서(210)를 포함할 수 있다. 메모리 컨트롤러(40)는 프로세서(210)에 의하여 제어된다. 프로세서(210)는 입력 장치(220)에 의하여 발생한 입력 신호에 따라 비휘발성 메모리 장치(30)에 저장된 데이터를 디스플레이(230)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(220)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 도 15에는 프로세서(210)와 메모리 컨트롤러(40)가 서로 독립적인 칩으로 구현된 예를 도시하였으나 메모리 컨트롤러(40)는 프로세서(210)의 일부로 구현될 수 있다.
도 16은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다. 도 16을 참조하면, 전자 장치(300)는 카드 인터페이스(310), 메모리 컨트롤러(320), 및 비휘발성 메모리 장치(30), 예컨대 플래시 메모리 장치를 포함한다.
전자 장치(300)는 카드 인터페이스(310)를 통하여 호스트(HOST)와 데이터를 주거나 받을 수 있다. 실시 예에 따라, 카드 인터페이스(310)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(310)는 전자 장치(300)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(320) 사이에서 데이터 교환을 인터페이스할 수 있다.
메모리 컨트롤러(320)는 전자 장치(300)의 전반적인 동작을 제어하며, 카드 인터페이스(310)와 비휘발성 메모리 장치(30) 사이에서 데이터의 교환을 제어할 수 있다. 또한 메모리 컨트롤러(320)의 버퍼 메모리(325)는 카드 인터페이스(310)와 비휘발성 메모리 장치(30) 사이에서 주고받는 데이터를 버퍼링할 수 있다. 메모리 컨트롤러(320)는 데이터 버스(DATA) 및 어드레스 버스(ADDRESS)를 통하여 카드 인터페이스(310)와 비휘발성 메모리(30)와 접속된다. 실시 예에 따라 메모리 컨트롤러(320)는 카드 인터페이스(310)로부터 리드 또는 라이트하고자 하는 데이터의 어드레스를 어드레스 버스(ADDRESS)를 통하여 수신하고 이를 비휘발성 메모리 장치(30)로 전송한다.
또한, 메모리 컨트롤러(320)는 카드 인터페이스(310) 또는 비휘발성 메모리 장치(30) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 또는 라이트하고자 하는 데이터를 수신하거나 전송한다. 실시 예에 따라 도 16에 도시된 메모리 컨트롤러 (320)는 도 4에 도시된 메모리 컨트롤러(40)와 동일 또는 유사한 기능을 수행할 수 있다.
따라서 메모리 컨트롤러(320)는 리드 동작 동안 하드 디시젼 데이터를 랜덤화 이전의 데이터로 복원시킬 수 있다. 그리고 소프트 디시젼 데이터는 디랜덤마이져를 우회하여 바이패스 시켜 데이터가 변형이 되지 않도록 할 수 있다. 비휘발성 메모리 장치(30)에는 각종 데이터가 저장된다. 실시 예에 따라, 비휘발성 메모리 장치(30)에서 리드 동작과 라이트 동작이 동시에 수행될 수 있다. 이때 리드 동작이 수행되는 비휘발성 메모리 장치(30)의 메모리 셀 어레이와 라이트 동작이 수행되는 비휘발성 메모리(30)의 메모리 셀 어레이 각각은 서로 다를 수 있다.
도 16의 전자 장치(300)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(310)와 메모리 컨트롤러(320)를 통하여 비휘발성 메모리 장치(30)에 저장된 데이터를 주거나 받을 수 있다.
도 17은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다. 도 17을 참조하면, 전자 장치(400)는 카드 인터페이스(410), 메모리 컨트롤러(420), 및 비휘발성 메모리 장치(30), 예컨대 플래시 메모리를 포함한다.
전자 장치(400)는 카드 인터페이스(410)를 통하여 호스트(HOST)와 데이터 통신을 수행할 수 있다. 실시 예에 따라, 카드 인터페이스(410)는 SD 카드 인터페이스 또는 MMC 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스 (410)는 전자 장치(400)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(420) 사이에서 데이터 통신을 수행할 수 있다.
메모리 컨트롤러(420)는 전자 장치(400)의 전반적인 동작을 제어하며, 카드 인터페이스(410)와 비휘발성 메모리 장치(30) 사이에서 데이터의 교환을 제어할 수 있다. 또한, 메모리 컨트롤러(420)에 포함된 버퍼 메모리(425)는 전자 장치(400)의 전반적인 동작을 제어하기 위하여 각종 데이터를 저장할 수 있다. 메모리 컨트롤러 (420)는 데이터 버스(DATA) 및 로지컬 어드레스 버스(LOGICAL ADDRESS)를 통하여 카드 인터페이스(410)와 비휘발성 메모리(30)와 접속될 수 있다.
실시 예에 따라 메모리 컨트롤러(420)는 카드 인터페이스(410)로부터 리드 데이터 또는 라이트 데이터의 어드레스를 로지컬 어드레스 버스(LOGICAL ADDRESS)를 통하여 수신하고, 피지컬 어드레스 버스(PHYSICAL ADDRESS)를 통하여 비휘발성 메모리(30)로 전달할 수 있다.
또한, 메모리 컨트롤러(420)는 카드 인터페이스(410) 또는 비휘발성 메모리 (30) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 데이터 또는 라이트 데이터를 수신하거나 전송할 수 있다. 메모리 컨트롤러(420)는 도 4에 도시된 메모리 컨트롤러(40)와 동일 또는 유사한 기능을 수행할 수 있다. 따라서 메모리 컨트롤러(420)는 리드 동작 동안 하드 디시젼 데이터를 랜덤화 이전의 데이터로 복원시킬 수 있다. 그리고 소프트 디시젼 데이터는 디랜덤마이져를 우회하여 바이패스 시켜 데이터가 변형이 되지 않도록 할 수 있다.
그리고 전자 장치(400)의 메모리 컨트롤러(420)는 버퍼 메모리 (425) 내에 어드레스 변환 테이블(Address Translation Table; 426)을 포함할 수 있다. 상기 어드레스 변환 테이블에는 외부로부터 입력된 로지컬 어드레스와 비휘발성 메모리(30)에 액세스하기 위한 로지컬 어드레스가 포함될 수 있다. 라이트 동작시, 메모리 컨트롤러(420)는 임의의 피지컬 어드레스에 새로운 데이터를 라이트하고, 상기 어드레스 변환 테이블을 업데이트할 수 있다.
메모리 컨트롤러(420)는 어드레스 변환 테이블(426)로부터 라이트 동작이 수행되는 데이터의 피지컬 어드레스를 참조함으로써 라이트 동작과 병행하여 리드 동작을 수행할 수 있는 피지컬 어드레스를 선택할 수 있다.
메모리 컨트롤러(420)는 상기 라이트 동작과 상기 리드 동작을 병행하고, 상기 라이트 동작과 상기 리드 동작에 따라 어드레스 변환 테이블(426)을 업-데이트할 수 있다. 따라서 전자 장치(400)의 동작시간은 단축될 수 있다.
도 17의 전자 장치(400)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(410)와 메모리 컨트롤러(420)를 통하여 비휘발성 메모리(30)에 저장된 데이터를 주거나 받을 수 있다.
도 18은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다. 도 18을 참조하면, 전자 장치(500)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(30), 비휘발성 메모리 장치(30)의 데이터 처리 동작을 제어하기 위한 메모리 컨트롤러(40), 및 전자 장치(500)의 전반적인 동작을 제어할 수 있는 프로세서(510)를 포함한다. 전자 장치(500)의 이미지 센서(520)는 광학 신호를 디지털 신호로 변환하고, 변환된 디지털 신호는 프로세서 (510)의 제어하에 비휘발성 메모리 장치(30)에 저장되거나 또는 디스플레이(530)를 통하여 디스플레이된다. 또한, 비휘발성 메모리 장치(30)에 저장된 디지털 신호는 프로세서(510)의 제어하에 디스플레이(530)를 통하여 디스플레이된다.
도 19는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다. 도 19를 참조하면, 전자 장치(600)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(30), 비휘발성 메모리 장치(30)의 동작을 제어하기 위한 메모리 컨트롤러(40), 및 전자 장치(600)의 전반적인 동작을 제어할 수 있는 CPU(610)를 포함한다.
전자 장치(600)는 CPU(610)의 동작 메모리(operation memory)로서 사용될 수 있는 메모리(650)를 포함한다. 메모리(650)는 ROM(read only memory)과 같은 비휘발성 메모리 또는 DRAM(dynamic random access memory)같은 휘발성 메모리로 구현될 수 있다.
전자 장치(600)에 접속된 호스트(HOST)는 메모리 컨트롤러(40)와 호스트 인터페이스(640)를 통하여 비휘발성 메모리 장치(30)와 데이터를 주거나 받을 수 있다. 이때 메모리 컨트롤러(40)는 메모리 인터페이스, 예컨대 플래시 메모리 인터페이스의 기능을 수행할 수 있다. 메모리 컨트롤러(40)는 도 4에 도시된 메모리 컨트롤러(40)와 동일 또는 유사한 기능을 수행할 수 있다. 따라서 메모리 컨트롤러(40)는 리드 동작 동안 하드 디시젼 데이터를 랜덤화 이전의 데이터로 복원시킬 수 있다. 그리고 소프트 디시젼 데이터는 디랜덤마이져를 우회하여 바이패스 시켜 데이터가 변형이 되지 않도록 할 수 있다. 실시 예에 따라 전자 장치(600)는 ECC(error correction code) 유닛(630)을 더 포함할 수 있다.
ECC 유닛(630)은 도 4의 ECC encoder(42)와 ECC decoder(42')를 포함할 수 있다. CPU(610)의 제어에 따라 동작하는 ECC 블록(630)은 메모리 컨트롤러(40)를 통하여 비휘발성 메모리 장치(30)로부터 리드된 데이터에 포함된 에러를 검출하고 정정할 수 있다.
CPU(610)는 버스(601)를 통하여 메모리 컨트롤러(40), ECC 블록(630), 호스트 인터페이스(640), 및 메모리(650) 사이에서 데이터의 교환을 제어할 수 있다. 전자 장치(600)는 USB(Universal Serial Bus) 메모리 드라이브 또는 메모리 스틱(memory stick) 등으로 구현될 수 있다.
도 20은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다. 도 20을 참조하면, 전자 장치(700)는 SSD (solid state drive)와 같은 데이터 저장 장치로 구현될 수 있다.
전자 장치(700)는 다수개의 비휘발성 메모리 장치들(30-1~30-j)과, 다수개의 비휘발성 메모리 장치들(30-1~30-j) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(40)를 포함할 수 있다. 전자 장치(700)는 메모리 시스템 또는 메모리 모듈로 구현될 수 있다. 실시 예에 따라 메모리 컨트롤러(710)는 전자 장치 (700)의 내부 또는 외부에 구현될 수 있다.
도 21은 도 20에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다. 도 20과 도 21을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(800)는 RAID 컨트롤러(810)와, 다수개의 메모리 시스템들(700-1~700-n; n는 자연수)을 포함할 수 있다.
다수개의 메모리 시스템들(700-1~700-n) 각각은 도 20에 도시된 전자 장치 (700)일 수 있다. 다수개의 메모리 시스템들(700-1~700-n)은 RAID 어레이를 구성할 수 있다. 데이터 저장 장치(800)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작 동안, RAID 컨트롤러(810)는 호스트로부터 출력된 프로그램 데이터를, 다수개의 RAID 레벨들 중에서 상기 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라, 다수개의 메모리 시스템들(700-1~700-n) 중에서 어느 하나의 메모리 시스템으로 출력할 수 있다.
또한, 리드 동작 동안, RAID 컨트롤러(810)는, 다수개의 RAID 레벨들 중에서 상기 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라서, 다수개의 메모리 시스템(700-1~700-n) 중에서 어느 하나의 메모리 시스템으로부터 리드된 데이터를 상기 호스트로 전송할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 메모리 시스템
30: 비휘발성 메모리 장치
31: 컨트롤 로직(control logic)
32: 전압 발생기
33: 로우 디코더
34: 메모리 셀 어레이
40: 컨트롤러
43: 랜덤마이저
43': 디랜덤마이저
50: 랜덤 시퀀스 발생 회로

Claims (12)

  1. 프로그램 데이터를 저장하는 메모리 셀 어레이;
    하드 디시젼 리드(hard decision read) 전압 및 적어도 하나 이상의 소프트 디시젼 리드(soft decision read) 전압을 발생하는 전압 발생 회로;
    랜덤 시퀀스(random sequence)를 발생시키는 랜덤 시퀀스 발생 회로;
    비트 라인을 통해 상기 메모리 셀 어레이와 연결되고, 상기 랜덤 시퀀스와 상기 하드 디시젼 리드 전압 인가로 인해 리드된 하드 디시젼 데이터와, 상기 소프트 디시젼 리드 전압 인가로 인해 리드된 소프트 디시젼 데이터를 저장하는 적어도 하나의 래치(latch)를 포함하는 페이지 버퍼;
    상기 프로그램 데이터 및 상기 랜덤 시퀀스를 상기 페이지 버퍼로 선택적으로 전달하는 멀티플렉서 회로; 및
    상기 랜덤 시퀀스 발생 회로, 상기 페이지 버퍼, 및 상기 멀티플렉서 회로를 제어하는 컨트롤 로직을 포함하며,
    상기 컨트롤 로직의 제어에 따라, 상기 페이지 버퍼는 상기 랜덤 시퀀스를 사용하여 상기 하드 디시젼 데이터를 디랜덤마이징하고 상기 소프트 디시젼 데이터는 디랜덤마이징되지 않고,
    상기 하드 디시젼 데이터는 상기 메모리 셀 어레이에 저장된 데이터로서 랜덤 데이터인 비휘발성 메모리 장치.
  2. 제1항에 있어서, 리드된 데이터가 상기 소프트 디시젼 데이터인 경우, 상기 컨트롤 로직의 제어에 따라 상기 멀티플렉서 회로는 상기 랜덤 시퀀스를 상기 페이지 버퍼로 전송하지 않는 비휘발성 메모리 장치.
  3. 제1항에 있어서, 상기 랜덤 시퀀스 발생 회로는 초기값(seed)를 저장하는 LFSR(linear feedbakc shift register)를 포함하는 비휘발성 메모리 장치.
  4. 제1항에 있어서, 리드된 데이터가 상기 소프트 디시젼 데이터인 경우, 상기 컨트롤 로직의 제어에 따라 상기 랜덤 시퀀스 발생 회로의 초기값을 0으로 초기화 하여 상기 랜덤 시퀀스를 0으로 형성하는 비휘발성 메모리 장치.
  5. 제1항에 있어서, 상기 소프트 디시젼 리드 전압은 상기 하드 디시젼 리드 전압을 기준으로 일정한 전압 차를 갖는 복수의 리드 전압인 비휘발성 메모리 장치.
  6. 제1항에 있어서, 상기 소프트 디시젼 데이터는 상기 하드 디시젼 데이터의 신뢰도를 나타내는 비휘발성 메모리 장치.
  7. 중앙처리 장치로부터 출력된 하드 디시젼 리드 명령어를 비휘발성 메모리 장치로 인가하는 단계;
    상기 하드 디시젼 리드 명령어에 응답하여 상기 비휘발성 메모리 장치로부터 출력된 제1데이터를 수신하고, 수신된 제1데이터를 디랜덤마이징(de-randomizing)하는 단계;
    상기 중앙처리장치로부터 출력된 소프트 디시젼 리드 명령어를 상기 비휘발성 메모리 장치로 인가하는 단계; 및
    상기 소프트 디시젼 리드 명령어에 응답하여 상기 비휘발성 메모리 장치로부터 출력되고, 상기 제1데이터에 신뢰도를 부가하는 정보인 제2데이터를 수신하고, 수신된 제2데이터를 사용하여 상기 디랜덤마이즈된 제1데이터를 ECC(error correction code) 디코딩하는 단계를 포함하고,
    상기 소프트 디시젼 리드 명령어 인가 시에 상기 제2데이터를 디랜덤마이징하지 않는 메모리 컨트롤러의 동작방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 제7항에 있어서,
    상기 디코딩하는 단계는 LDPC 코드(low density parity check code)를 사용하는 메모리 컨트롤러의 동작방법.
  12. 중앙처리장치; 및
    상기 중앙처리 장치의 제어에 따라 인가된 하드 디시젼 명령어에 응답하여 비휘발성 메모리 장치로부터 리드된 하드 디시젼(hard decision) 데이터를 랜덤 시퀀스를 이용하여 디랜덤마이즈하고 디랜덤마이즈된 데이터를 출력하는 디랜덤마이저를 포함하며,
    상기 디랜덤마이저는 상기 랜덤 시퀀스를 발생하는 랜덤 시퀀스 발생 회로와, 상기 랜덤 시퀀스와 상기 하드 디시젼 데이터를 XOR 연산하여 상기 디랜덤마이즈된 데이터를 출력하는 XOR 게이트를 포함하며,
    상기 랜덤 시퀀스 발생 회로는 초기값(seed)을 갖는 다수의 선형 피드백 시프트 레지스터들(Linear feedback shift registers)을 포함하며, 상기 중앙 처리 장치의 제어에 따라 인가된 소프트 디시젼 명령어에 응답하여 상기 비휘발성 메모리 장치로부터 출력된 소프트 디시젼 데이터를 처리할 때, 상기 다수의 선형 피드백 시프트 레지스터들 각각의 초기값이 0으로 초기화됨에 따라 상기 랜덤 시퀀스 발생 회로는 0인 상기 랜덤 시퀀스를 발생하는 컨트롤러.
KR1020110017565A 2011-02-28 2011-02-28 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 KR101736337B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110017565A KR101736337B1 (ko) 2011-02-28 2011-02-28 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
JP2012041220A JP5999926B2 (ja) 2011-02-28 2012-02-28 不揮発性メモリ装置、該メモリ装置を制御するコントローラ、及び該コントローラの動作方法
US13/407,333 US9495518B2 (en) 2011-02-28 2012-02-28 Method of reliably reading data stored in multi-level cell (MLC) non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110017565A KR101736337B1 (ko) 2011-02-28 2011-02-28 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법

Publications (2)

Publication Number Publication Date
KR20120097963A KR20120097963A (ko) 2012-09-05
KR101736337B1 true KR101736337B1 (ko) 2017-05-30

Family

ID=46719801

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110017565A KR101736337B1 (ko) 2011-02-28 2011-02-28 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법

Country Status (3)

Country Link
US (1) US9495518B2 (ko)
JP (1) JP5999926B2 (ko)
KR (1) KR101736337B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10692579B2 (en) 2017-12-20 2020-06-23 SK Hynix Inc. Memory controller and operating method thereof

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102123946B1 (ko) * 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
US9058880B2 (en) * 2013-02-04 2015-06-16 National Tsing Hua University Unequal bit reliability information storage method for communication and storage systems
CN103218177A (zh) * 2013-04-19 2013-07-24 杭州电子科技大学 具有数据均衡处理功能的NAND Flash存储系统
KR102252379B1 (ko) 2013-06-24 2021-05-14 삼성전자주식회사 메모리 시스템 및 이의 독출 방법
KR20150009105A (ko) * 2013-07-15 2015-01-26 에스케이하이닉스 주식회사 반도체 장치, 반도체 메모리 장치 및 그것의 동작 방법
KR102085127B1 (ko) * 2013-11-13 2020-04-14 삼성전자주식회사 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치
KR102133542B1 (ko) 2013-12-03 2020-07-14 에스케이하이닉스 주식회사 랜더마이저 및 디랜더마이저를 포함하는 메모리 시스템
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
WO2015112167A1 (en) 2014-01-24 2015-07-30 Hewlett-Packard Development Company, L.P. Bit-flip coding
KR102244617B1 (ko) 2014-03-13 2021-04-26 삼성전자 주식회사 논리 정보와 물리 정보를 이용하여 데이터를 처리할 수 있는 장치와 방법
US9621188B2 (en) 2014-03-17 2017-04-11 Samsung Electronics Co., Ltd. Soft and hard decision message-passing decoding
KR20150122825A (ko) * 2014-04-23 2015-11-03 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
KR102171025B1 (ko) * 2014-04-30 2020-10-29 삼성전자주식회사 비휘발성 메모리 장치
KR20150143150A (ko) * 2014-06-13 2015-12-23 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
KR102248207B1 (ko) 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9798470B2 (en) 2015-01-23 2017-10-24 Toshiba Memory Corporation Memory system for storing and processing translation information
KR102370292B1 (ko) 2015-05-07 2022-03-07 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
TWI562152B (en) * 2015-05-29 2016-12-11 Phison Electronics Corp Decoding method, memory storage device and memory control circuit unit
KR102438988B1 (ko) * 2016-04-07 2022-09-02 삼성전자주식회사 랜덤화 연산을 수행하는 불휘발성 메모리 장치
KR102636039B1 (ko) 2016-05-12 2024-02-14 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
KR102648774B1 (ko) * 2016-11-10 2024-03-19 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
KR20190033791A (ko) * 2017-09-22 2019-04-01 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 장치 및 이들을 포함하는 메모리 시스템
KR102496272B1 (ko) * 2017-09-27 2023-02-03 삼성전자주식회사 비휘발성 메모리 장치, 및 이의 동작 방법
US10163500B1 (en) * 2017-09-30 2018-12-25 Intel Corporation Sense matching for hard and soft memory reads
US10621035B2 (en) 2017-10-18 2020-04-14 Intel Corporation Techniques for correcting data errors in memory devices
US10636504B2 (en) * 2017-10-31 2020-04-28 Sandisk Technologies Llc Read verify for improved soft bit information for non-volatile memories with residual resistance
JP7018864B2 (ja) * 2018-10-15 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
TWI722867B (zh) * 2020-04-14 2021-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US11429545B2 (en) 2020-07-16 2022-08-30 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544185B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544186B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
TWI761983B (zh) * 2020-07-16 2022-04-21 慧榮科技股份有限公司 主機效能加速模式的資料讀取方法及裝置
US11954360B2 (en) * 2020-09-01 2024-04-09 Intel Corporation Technology to provide accurate training and per-bit deskew capability for high bandwidth memory input/output links

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090016432A1 (en) 2007-07-11 2009-01-15 Limberg Allen Leroy Systems for reducing adverse effects of deep fades in DTV signals designed for mobile reception
WO2010019373A2 (en) * 2008-08-12 2010-02-18 Micron Technology, Inc. Memory devices and methods of storing data on a memory device
WO2010147246A1 (en) * 2008-01-03 2010-12-23 Samsung Electronics Co., Ltd. Memory device and error control codes decoding method
US20110167227A1 (en) 2010-01-04 2011-07-07 Lsi Corporation Systems and Methods for Updating Detector Parameters in a Data Processing Circuit
US20110167305A1 (en) 2008-09-30 2011-07-07 Haratsch Erich F Methods and Apparatus for Soft Data Generation for Memory Devices Based on Performance Factor Adjustment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792039B1 (en) * 1997-11-13 2004-09-14 Surf Communication Solutions Ltd. Method for controlled reducing of processor utilization by a soft modem and a soft modem with controlled different processor utilization modes
JP4099844B2 (ja) 1998-01-21 2008-06-11 ソニー株式会社 メモリ装置
KR100535291B1 (ko) 1998-01-21 2005-12-09 소니 가부시끼 가이샤 엔코딩 방법 및 메모리 장치
US7526707B2 (en) * 2005-02-01 2009-04-28 Agere Systems Inc. Method and apparatus for encoding and decoding data using a pseudo-random interleaver
KR101147767B1 (ko) * 2005-12-23 2012-05-25 엘지전자 주식회사 디지털 방송 시스템 및 처리 방법
JP4791912B2 (ja) * 2006-08-31 2011-10-12 株式会社東芝 不揮発性半導体記憶装置及び不揮発性記憶システム
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
JP5028577B2 (ja) 2007-02-19 2012-09-19 株式会社メガチップス メモリ制御方法およびメモリシステム
JP2008217857A (ja) * 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
US8169825B1 (en) * 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
KR101554159B1 (ko) 2008-10-08 2015-09-21 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
US8327240B2 (en) * 2008-11-26 2012-12-04 Broadcom Corporation Handling burst error events with interleaved Reed-Solomon (RS) codes
KR20100099961A (ko) * 2009-03-04 2010-09-15 삼성전자주식회사 불휘발성 메모리 장치 및 그 동작 방법
TWI455132B (zh) * 2010-06-23 2014-10-01 Phison Electronics Corp 資料讀取方法、控制電路與記憶體控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090016432A1 (en) 2007-07-11 2009-01-15 Limberg Allen Leroy Systems for reducing adverse effects of deep fades in DTV signals designed for mobile reception
WO2010147246A1 (en) * 2008-01-03 2010-12-23 Samsung Electronics Co., Ltd. Memory device and error control codes decoding method
WO2010019373A2 (en) * 2008-08-12 2010-02-18 Micron Technology, Inc. Memory devices and methods of storing data on a memory device
US20110167305A1 (en) 2008-09-30 2011-07-07 Haratsch Erich F Methods and Apparatus for Soft Data Generation for Memory Devices Based on Performance Factor Adjustment
US20110167227A1 (en) 2010-01-04 2011-07-07 Lsi Corporation Systems and Methods for Updating Detector Parameters in a Data Processing Circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10692579B2 (en) 2017-12-20 2020-06-23 SK Hynix Inc. Memory controller and operating method thereof

Also Published As

Publication number Publication date
JP2012181909A (ja) 2012-09-20
US20120221775A1 (en) 2012-08-30
JP5999926B2 (ja) 2016-09-28
KR20120097963A (ko) 2012-09-05
US9495518B2 (en) 2016-11-15

Similar Documents

Publication Publication Date Title
KR101736337B1 (ko) 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
KR102511459B1 (ko) 비휘발성 메모리 장치 및 그 동작 방법
KR101811298B1 (ko) 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러
US9197247B2 (en) Memory system and error correction method
KR101756111B1 (ko) 메모리 컨트롤러 구동방법, 메모리 컨트롤러, 메모리 장치 및 메모리 시스템
US8499217B2 (en) Memory device and error control codes decoding method
US8788905B2 (en) Flash memory device error correction code controllers and related methods and memory systems
KR101941270B1 (ko) 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법
KR101739878B1 (ko) 컨트롤러, 이의 동작방법, 및 상기 컨트롤러를 포함한 메모리 시스템
US20100125701A1 (en) Multi-Level Non-Volatile Memory Device, Memory System Including the Same, and Method of Operating the Same
US9177660B2 (en) Method of operating memory device
US8549328B2 (en) Memory controller, memory system including the same, and method for operating the same
US9164889B2 (en) Memory system to select program operation method and method thereof
KR20130049332A (ko) 메모리 시스템 및 그것의 동작 방법
US20130132644A1 (en) Method of programming a nonvolatile memory device
KR101990972B1 (ko) 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러
KR20130052971A (ko) 비휘발성 메모리 장치의 동작 방법
US10445002B2 (en) Data accessing method, memory controlling circuit unit and memory storage device
US9405624B2 (en) On-die error detection and correction during multi-step programming
US20140136925A1 (en) Method of operating a data storage device
US8984036B2 (en) Methods for operating controllers using seed tables
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
US11082068B2 (en) Error correction circuit, memory controller having error correction circuit, and memory system having memory controller
CN106158046B (zh) 用于turbo乘积码的误校正避免
US10074433B1 (en) Data encoding method, memory control circuit unit and memory storage device

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