KR20130052811A - 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 - Google Patents

불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 Download PDF

Info

Publication number
KR20130052811A
KR20130052811A KR1020110118071A KR20110118071A KR20130052811A KR 20130052811 A KR20130052811 A KR 20130052811A KR 1020110118071 A KR1020110118071 A KR 1020110118071A KR 20110118071 A KR20110118071 A KR 20110118071A KR 20130052811 A KR20130052811 A KR 20130052811A
Authority
KR
South Korea
Prior art keywords
data
randomization
randomized
read
memory device
Prior art date
Application number
KR1020110118071A
Other languages
English (en)
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 KR1020110118071A priority Critical patent/KR20130052811A/ko
Priority to US13/469,847 priority patent/US8867283B2/en
Publication of KR20130052811A publication Critical patent/KR20130052811A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating

Abstract

본 기술은 불휘발성 메모리 장치에 관한 것으로, 더욱 상세하게는 불휘발성 메모리 장치의 동작 방법에 관한 것이다. 상기 불휘발성 메모리 장치는, 워드 라인과 비트 라인이 교차하는 영역에 배열된 메모리 셀; 시드 값을 참조하여 상기 메모리 셀에 프로그램될 데이터를 1차 랜덤화 하도록 구성된 랜덤화 및 디-랜덤화 회로; 데이터 반전 동작을 이용하여 상기 1차 랜덤화된 데이터를 2차 랜덤화 하고, 상기 2차 랜덤화된 데이터를 상기 메모리 셀에 프로그램하도록 구성된 데이터 읽기/쓰기 회로; 및 상기 랜덤화 및 디-랜덤화 회로와 상기 데이터 읽기/쓰기 회로를 제어하도록 구성된 제어 로직을 포함한다.

Description

불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치{NONVOLATILE MEMORY DEVICE, OPERATING METHOD THEREOF AND DATA STORAGE DEVICE}
본 발명은 불휘발성 메모리 장치에 관한 것으로, 더욱 상세하게는 불휘발성 메모리 장치의 랜덤화 및 디-랜덤화 동작 방법에 관한 것이다.
반도체 메모리 장치는 일반적으로 휘발성 메모리와 불휘발성 메모리 장치로 분류된다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리 장치는 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 불휘발성 메모리 장치는 다양한 형태의 메모리 셀 트랜지스터들을 포함한다. 불휘발성 메모리 장치는 메모리 셀 트랜지스터의 구조에 따라 플래시 메모리 장치, 강유전체 램(Ferroelectric RAM: FRAM), 마그네틱 램(Magnetic RAM: MRAM), 상 변화 램(Phase change RAM: PRAM)등으로 구분될 수 있다.
불휘발성 메모리 장치 중에서 플래시 메모리 장치는 메모리 셀과 비트 라인의 연결 상태에 따라 크게 노어(NOR) 플래시 메모리 장치와 낸드(NAND) 플래시 메모리 장치로 구분된다. 노어 플래시 메모리 장치는 1개의 비트 라인에 2개 이상의 메모리 셀 트렌지스터들이 병렬로 연결되는 구조를 갖는다. 따라서, 노어 플래시 메모리 장치는 우수한 랜덤 액세스(random access) 시간 특성을 갖는다. 반면, 낸드 플래시 메모리 장치는 1개의 비트 라인에 2개 이상의 메모리 셀 트렌지스터들이 직렬로 연결되는 구조를 갖는다. 이러한 구조를 셀 스트링(string) 구조라고 하며, 셀 스트링당 한 개의 비트 라인 컨택(contact)을 필요로 한다. 따라서, 낸드 플래시 메모리 장치는 집적도면에서 우수한 특성을 갖는다.
플래시 메모리 장치의 메모리 셀들은 문턱 전압 분포에 따라 온 셀(on cell)과 오프 셀(off cell)로 구분된다. 온 셀은 소거된 셀(erased cell)이고, 오프 셀은 프로그램된 셀(programmed cell)이다. 프로그램된 메모리 셀의 문턱 전압은 여러 가지 요인에 의해서 변화될 수 있다. 예를 들면, 인접한 메모리 셀들 간에 생기는 프로그램 디스터번스(disturbance) 또는 커플링으로 인해 프로그램된 메모리 셀의 문턱 전압은 변화될 수 있다. 조금 더 구체적으로 설명하면 다음과 같다.
예를 들면, 프로그램 동작 시, 선택된 메모리 셀에 프로그램되는 데이터에 따라서 인접한 메모리 셀들의 프로그램 상태(즉, 문턱 전압 분포)가 변화될 수 있다. 또한, 읽기 동작 시, 선택된 메모리 셀을 통해 흐르는 셀 전류는 인접한 메모리 셀들의 프로그램 상태(즉, 문턱 전압 분포)에 따라 변화될 수 있다. 다시 말해서, 선택된 메모리 셀에 프로그램될 데이터, 또는 인접한 메모리 셀들의 프로그램 상태를 의미하는 데이터 패턴에 따라 메모리 셀의 문턱 전압은 변화될 수 있다.
메모리 셀들은 특정 데이터 패턴에 의해서 프로그램 디스터번스 또는 커플링 영향을 더 많이 받거나 더 적게 받을 수 있다. 따라서, 메모리 셀들의 문턱 전압이 변화되지 않도록 또는 미세하게 변화되도록 하기 위해서, 플래시 메모리 장치는 입력된 데이터에 대해서 데이터 랜덤화 동작을 수행하고, 메모리 셀들에 저장된 데이터에 대해서 디-랜덤화 동작을 수행한다.
본 발명의 실시 예는 신뢰성이 향상된 불휘발성 메모리 장치, 그것의 랜덤화 및 디-랜덤화 동작 방법 및 그것을 포함하는 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는, 워드 라인과 비트 라인이 교차하는 영역에 배열된 메모리 셀; 시드 값을 참조하여 상기 메모리 셀에 프로그램될 데이터를 1차 랜덤화 하도록 구성된 랜덤화 및 디-랜덤화 회로; 데이터 반전 동작을 이용하여 상기 1차 랜덤화된 데이터를 2차 랜덤화 하고, 상기 2차 랜덤화된 데이터를 상기 메모리 셀에 프로그램하도록 구성된 데이터 읽기/쓰기 회로; 및 상기 랜덤화 및 디-랜덤화 회로와 상기 데이터 읽기/쓰기 회로를 제어하도록 구성된 제어 로직을 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치의 동작 방법은, 어드레스와 상기 어드레스에 해당하는 메모리 셀에 프로그램될 데이터를 수신하는 단계; 시드 값으로써 상기 어드레스를 참조하여 랜덤 밸류를 생성하는 단계; 상기 랜덤 밸류와 상기 프로그램될 데이터를 논리적으로 조합하여 1차 랜덤화된 데이터를 생성하는 단계; 및 상기 1차 랜덤화된 데이터를 반전하여 2차 랜덤화된 데이터를 생성하는 단계를 포함한다.
본 발명의 다른 실시 예에 따른 불휘발성 메모리 장치의 동작 방법은, 수신된 어드레스에 해당하는 메모리 셀로부터 데이터를 독출하는 단계; 상기 독출된 데이터를 반전하여 1차 디-랜덤화된 데이터를 생성하는 단계; 시드 값으로써 상기 어드레스를 참조하여 랜덤 밸류를 생성하는 단계; 및 상기 랜덤 밸류와 상기 1차 디-랜덤화된 데이터를 논리적으로 조합하여 2차 디-랜덤화된 데이터를 생성하는 단계를 포함한다.
본 발명의 다른 실시 예에 따른 데이터 저장 장치는, 불휘발성 메모리 장치; 및
상기 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러를 포함하되, 상기 불휘발성 메모리 장치는, 워드 라인과 비트 라인이 교차하는 영역에 배열된 메모리 셀; 시드 값을 참조하여 상기 메모리 셀에 프로그램될 데이터를 1차 랜덤화 하도록 구성된 랜덤화 및 디-랜덤화 회로; 데이터 반전 동작을 이용하여 상기 1차 랜덤화된 데이터를 2차 랜덤화 하고, 상기 2차 랜덤화된 데이터를 상기 메모리 셀에 프로그램하도록 구성된 데이터 읽기/쓰기 회로; 및 상기 랜덤화 및 디-랜덤화 회로와 상기 데이터 읽기/쓰기 회로를 제어하도록 구성된 제어 로직을 포함한다.
본 발명의 실시 예에 따르면, 데이터 랜덤화 동작을 통해 불휘발성 메모리 장치의 신뢰성이 향상될 수 있다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 예시적으로 보여주는 블럭도이다.
도 2는 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 예시적으로 보여주는 블럭도이다.
도 3은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 순서도이다.
도 4는 도 1의 데이터 읽기/쓰기 회로의 랜덤화 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 타이밍도이다.
도 6은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작 동안 데이터 흐름을 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작을 설명하기 위한 순서도이다.
도 8은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 타이밍도이다.
도 9는 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작 동안 데이터 흐름을 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 카피백 프로그램 동작 동안 데이터 흐름을 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다.
도 12는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 또 다른 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다.
도 13은 도 11 및 도 12의 데이터 처리 시스템이 장착되는 컴퓨터 시스템을 예시적으로 보여주는 블럭도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 예시적으로 보여주는 블럭도이다. 도 1을 참조하면, 불휘발성 메모리 장치로서 낸드(NAND) 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 하나의 예로서 사용된다. 하지만, 이하에서 설명될 본 발명의 특징 및 기능이 특정 형태의 불휘발성 메모리 장치에 한정되지 않음은 잘 이해될 것이다. 즉, 이하에서 설명될 불휘발성 메모리 장치 및 그것의 데이터 랜덤화 방법은 낸드 플래시 메모리 장치, 노어(NOR) 플래시 메모리 장치, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등과 같은 불휘발성 메모리 장치들에 적용될 수 있고, 플래시 메모리 장치의 전하 저장층의 구조에 상관없이 다양한 형태의 플래시 메모리 장치에 적용될 수 있다.
도 1을 참조하면, 불휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 행 디코더(120), 데이터 읽기/쓰기 회로(130), 열 디코더(140), 랜덤화 및 디-랜덤화 회로(150), 입출력 버퍼 회로(160), 및 제어 로직(170)을 포함한다.
메모리 셀 어레이(110)는 비트 라인들(BL0~BLn) 및 워드 라인들(WL0~WLm)의 교차 영역에 배열된 복수의 메모리 셀들을 포함한다. 각각의 메모리 셀은 1비트의 데이터를 저장할 수 있다. 이러한 메모리 셀은 싱글 레벨 셀(SLC: single level cell)이라 불린다. 싱글 레벨 셀(SLC)은 소거 상태와 하나의 프로그램 상태에 대응하는 문턱 전압을 갖도록 프로그램된다. 다른 예로서, 각각의 메모리 셀은 2비트 데이터 또는 그 이상의 데이터를 저장할 수 있다. 이러한 메모리 셀은 멀티 레벨 셀(MLC: multi level cell)이라 불린다. 멀티 레벨 셀(MLC)은 멀티 비트 데이터에 따라 소거 상태와 복수의 프로그램 상태들 중 어느 하나에 대응하는 문턱 전압을 갖도록 프로그램된다. 메모리 셀 어레이(110)는 단층 어레이 구조(single-layer array structure)(또는, 2차원 어레이 구조라고 불림) 또는 다층 어레이 구조(multi-layer array structure)(또는, 3차원 어레이 구조라고 불림)를 갖도록 구현될 수 있다.
행 디코더(120)는 제어 로직(170)의 제어에 따라 동작한다. 행 디코더(120)는 행 어드레스에 응답하여 메모리 셀 어레이(110)의 행들에 대한 선택 동작 및 구동 동작을 수행하도록 구성된다. 예를 들면, 행 디코더(120)는 전압 발생기(도시되지 않음)로부터 제공되는 각종 워드 라인 전압들을 선택된 워드 라인과 비선택된 워드 라인들로 각각 전달하도록 구성된다.
데이터 읽기/쓰기 회로(130)는 제어 로직(170)의 제어에 따라 동작한다. 데이터 읽기/쓰기 회로(130)는 동작 모드에 따라 쓰기 드라이버로써 또는 감지 증폭기로써 동작하도록 구성된다. 그리고 데이터 읽기/쓰기 회로(130)는 데이터 반전 동작을 통해 메모리 셀에 프로그램될 데이터를 랜덤화하거나 메모리 셀로부터 읽혀진 데이터를 디-랜덤화하도록 구성된다.
예를 들면, 데이터 읽기/쓰기 회로(130)는 프로그램 동작 시 랜덤화 및 디-랜덤화 회로(150)로부터 제공된 1차 랜덤화된 데이터를 반전시켜 2차 랜덤화된 데이터를 생성할 것이다. 그리고 데이터 읽기/쓰기 회로(130)는 2차 랜덤화된 데이터를 메모리 셀 어레이(110)의 메모리 셀에 저장할 것이다. 다른 예로서, 데이터 읽기/쓰기 회로(130)는 읽기 동작 시 메모리 셀 어레이(110)의 메모리 셀로부터 읽혀진 데이터를 반전시켜 1차 디-랜덤화된 데이터를 생성할 것이다. 그리고 데이터 읽기/쓰기 회로(130)는 1차 디-랜덤화된 데이터를 랜덤화 및 디-랜덤화 회로(150)에 제공할 것이다.
한편, 데이터 읽기/쓰기 회로(130)는 비트 라인들(BL0~BLn)(또는, 비트 라인 쌍들) 각각에 대응하는 복수의 데이터 읽기/쓰기 회로들을 포함한다. 그러한 까닭에, 비트 라인들(BL0~BLn)(또는, 비트 라인 쌍들)은 각각의 데이터 읽기/쓰기 회로에 의해서 선택 또는 제어될 것이다.
열 디코더(140)는 제어 로직(170)의 제어에 따라 동작한다. 열 디코더(140)는 읽기 동작 또는 프로그램 동작 시 열 어드레스에 응답하여 비트 라인들(BL0~BLn)(또는, 데이터 읽기/쓰기 회로들)을 정해진 단위로 순차적으로 선택하도록 구성된다.
랜덤화 및 디-랜덤화 회로(150)는 제어 로직(170)의 제어에 따라 동작한다. 랜덤화 및 디-랜덤화 회로(150)는 입출력 버퍼 회로(160)를 통해 제공되는 데이터(즉, 프로그램될 데이터)를 1차 랜덤화하도록 구성된다. 그리고 랜덤화 및 디-랜덤화 회로(150)는 데이터 읽기/쓰기 회로(130)로부터 제공되는 1차 디-랜덤화된 데이터를 2차 디-랜덤화하도록 구성된다. 본 발명의 실시 예에 따른 랜덤화 및 디-랜덤화 회로(150)는 프로그램될 데이터의 랜덤화가 열 방향(또는, 메모리 셀 스트링 방향)으로 행해지도록 1차 랜덤화 동작을 수행한다. 그리고 랜덤화 및 디-랜덤화 회로(150)는 1차 디-랜덤화된 데이터의 디-랜덤화가 열 방향(또는, 메모리 셀 스트링 방향)으로 행해지도록 2차 디-랜덤화 동작을 수행한다. 이는 이후 상세히 설명될 것이다.
입출력 버퍼 회로(160)는 외부 장치(예를 들면, 메모리 컨트롤러, 메모리 인터페이스, 호스트 장치 등)로부터 명령 및 어드레스를 입력받고, 입력된 명령 및 어드레스를 제어 로직(170)에 제공하도록 구성된다. 입출력 버퍼 회로(160)는 외부 장치로부터 데이터를 입력받고, 입력된 데이터를 랜덤화 및 디-랜덤화 회로(150)에 제공하도록 구성된다. 입출력 버퍼 회로(160)는 랜덤화 및 디-랜덤화 회로(150)로부터 제공되는 디-랜덤화된 데이터(즉, 본래의 데이터로 복원된 데이터)를 외부 장치로 출력하도록 구성된다.
제어 로직(170)은 외부 장치로부터 제공된 제어 신호에 응답하여 불휘발성 메모리 장치(100)의 제반 동작을 제어하도록 구성된다. 예를 들면, 제어 로직(170)은 불휘발성 메모리 장치(100)의 읽기, 프로그램(또는 쓰기), 소거 동작을 제어할 것이다. 다른 예로서, 제어 로직(170)은 프로그램될 데이터의 랜덤화 동작과, 메모리 셀로부터 읽혀진 데이터의 디-랜덤화 동작을 제어할 것이다. 이는 프로그램될 데이터의 랜덤화와 읽혀진 데이터의 디-랜덤화 동작이 불휘발성 메모리 장치(100)의 외부에서 행해지는 것이 아니라 불휘발성 메모리 장치(100)의 내부에서 행해지는 것을 의미한다.
본 발명의 실시 예에 따르면, 메모리 셀에 프로그램될 데이터는 랜덤화 및 디-랜덤화 회로(150)에 의해서 1차 랜덤화 된다. 1차 랜덤화 동작은 랜덤 밸류(random value)를 이용하여 수행된다. 그리고 1차 랜덤화된 데이터는 데이터 읽기/쓰기 회로(130)에 의해서 2차 랜덤화 된다. 2차 랜덤화 동작은 데이터의 반전 동작을 이용하여 수행된다. 반면, 메모리 셀로부터 읽혀진 랜덤화된 데이터는 데이터 읽기/쓰기 회로(130)에 의해서 1차 디-랜덤화 된다. 1차 디-랜덤화 동작은 데이터의 반전 동작을 이용하여 수행된다. 그리고 1차 디-랜덤화된 데이터는 랜덤화 및 디-랜덤화 회로(150)에 의해서 2차 디-랜덤화 된다. 2차 디-랜덤화 동작은 랜덤 밸류(RV)를 이용하여 수행된다. 본 발명의 실시 예에 따른 랜덤화 동작과 디-랜덤화 동작은 도 3 내지 도 8을 통해 상세히 설명될 것이다.
본 발명의 실시 예에 따르면, 프로그램 디스터번스 또는 커플링 등과 같은 영향으로 인해서 발생되는 메모리 셀들의 문턱 전압의 변화가 데이터 랜덤화 이전과 비교하여 볼 때 상대적으로 완화될 것이다. 즉, 메모리 셀들 각각의 문턱 전압 변화가 억제될 것이다. 이는 읽기 마진의 향상, 즉, 불휘발성 메모리 장치의 신뢰성이 향상됨을 의미한다.
도 2는 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 예시적으로 보여주는 블럭도이다. 도 1에서 설명된 바와 같이, 랜덤화 및 디-랜덤화 회로(150)는 입출력 버퍼 회로(도 1의 160)를 통해 제공되는 데이터(즉, 프로그램될 데이터)를 1차 랜덤화하도록 구성된다. 그리고 랜덤화 및 디-랜덤화 회로(150)는 데이터 읽기/쓰기 회로(도 1의 130)로부터 제공되는 1차 디-랜덤화된 데이터를 2차 디-랜덤화하도록 구성된다.
도 2를 참조하면, 랜덤화 및 디-랜덤화 회로(150)는 랜덤 밸류 생성기(151) 및 믹서(152)를 포함한다. 본 발명의 실시 예에 따른 랜덤 밸류 생성기(151)는 선형 피드백 쉬프트 레지스터(LFSR: linear feedback shift register)를 포함할 것이다. 그리고 믹서(152)는 논리 연산을 수행할 수 있는 논리 회로를 포함할 것이다. 예를 들면, 믹서(152)는 배타적 논리합(XOR) 연산을 수행할 수 있는 논리 회로, 즉, XOR 유닛을 포함할 것이다.
랜덤 밸류 생성기(151)는 제어 로직(도 1의 170)으로부터 제공되는 클럭 신호(CLK)의 토글에 따라 랜덤 밸류(RV)를 순차적으로 생성하도록 구성된다. 랜덤 밸류 생성기(151)는 시드(seed) 값에 의거하여 랜덤 밸류(RV)를 생성하도록 구성된다. 예시적으로, 랜덤 밸류 생성기(151)의 시드 값으로써, 프로그램 동작 시 제공되는 열 어드레스 또는 읽기 동작 시 제공되는 열 어드레스가 사용될 것이다. 랜덤 밸류 생성기(151)에 의해서 생성된 랜덤 밸류(RV)는 믹서(152)로 제공된다.
믹서(152)는 프로그램 동작 시 입력되는 데이터(Din)와 랜덤 밸류(RV)를 배타적 논리합(XOR) 연산을 통해 논리적으로 조합하도록 구성된다. 믹서(152)는 조합된 데이터, 즉, 1차 랜덤화된 데이터(RDM(1))를 열 디코더(도 1의 140)로 출력한다. 그리고 믹서(152)는 읽기 동작 시 열 디코더(140)로부터 입력되는 데이터, 즉, 1차 디-랜덤화된 데이터(DRDM(1))와 랜덤 밸류(RV)를 배타적 논리합(XOR) 연산을 통해 논리적으로 조합하도록 구성된다. 믹서(152)는 믹싱된 데이터, 즉, 2차 디-랜덤화된 데이터를 입출력 버퍼 회로(160)로 출력한다. 여기에서, 2차 디-랜덤화된 데이터는 본래의 데이터로 복원된 데이터(Dout)이다.
도 3은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 순서도이다. 그리고 도 4는 도 1의 데이터 읽기/쓰기 회로의 랜덤화 동작을 설명하기 위한 도면이다. 이하, 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작이 도 1 내지 도 4를 참조하여 상세히 설명될 것이다.
외부 장치(예를 들면, 메모리 컨트롤러, 메모리 인터페이스, 호스트 장치 등)로부터 프로그램 명령이 제공되면 불휘발성 메모리 장치(100)의 프로그램 동작이 시작된다. S110 단계에서, 프로그램 명령과 함께 어드레스가 불휘발성 메모리 장치(100)에 제공될 것이다. 여기에서, 어드레스는 메모리 셀 어레이(110)의 열 어드레스와 행 어드레스를 포함한다. 행 어드레스는 메모리 블럭을 선택하기 위한 블럭 어드레스와 메모리 블럭의 페이지를 선택하기 위한 페이지 어드레스를 포함한다.
S120 단계에서, 어드레스가 불휘발성 메모리 장치(100)에 제공되면 랜덤화 및 디-랜덤화 회로(150)는 제어 로직(170)의 제어에 따라 랜덤 밸류(RV)를 생성한다. 랜덤화 및 디-랜덤화 회로(150)에는 시드 값으로써 열 어드레스가 제공될 것이다. 즉, 랜덤화 및 디-랜덤화 회로(150)는 열 어드레스에 의거하여 랜덤 밸류(RV)를 생성한다. 랜덤화 및 디-랜덤화 회로(150)는 제어 로직(170)으로부터 제공되는 클럭 신호(CLK)의 토글에 따라 랜덤 밸류(RV)를 순차적으로 생성한다. 클럭 신호(CLK)는 불휘발성 메모리 장치의 프로그램 동작을 제어하기 위한 제어 신호(예를 들면, 쓰기 인에이블 신호(/WE))에 대응하여 토글될 것이다.
S130 단계에서, 랜덤화 및 디-랜덤화 회로(150)는 생성된 랜덤 밸류(RV)를 이용하여 제 1 랜덤화 동작을 수행한다. 조금 더 구체적으로 설명하면, 프로그램될 데이터는 입출력 버퍼 회로(160)를 통해 믹서(152)에 제공된다. 이때, 생성된 랜덤 밸류(RV)가 믹서(152)에 제공된다. 믹서(152)는 배타적 논리합(XOR) 연산을 통해 프로그램될 데이터와 랜덤 밸류(RV)를 조합한다. 그 결과 1차 랜덤화된 데이터가 생성된다. 1차 랜덤화 동작은 열 방향(또는, 메모리 셀 스트링 방향)으로 수행된다. 1차 랜덤화된 데이터는 열 디코더(140)를 통해 데이터 읽기/쓰기 회로(130)에 로드된다. 1차 랜덤화 동작은 프로그램될 데이터가 데이터 읽기/쓰기 회로(130)에 모두 로드될 때까지 수행된다.
S140 단계에서, 프로그램될 데이터가 데이터 읽기/쓰기 회로(130)에 모두 로드되면 데이터 읽기/쓰기 회로(130)는 데이터의 반전 동작을 이용하여 제 2 랜덤화 동작을 수행한다. 제 2 랜덤화 동작을 조금 더 구체적으로 설명하면 다음과 같다.
도 4를 참조하면, 1차 랜덤화된 데이터들(RDM(1))이 데이터 읽기/쓰기 회로(130)에 "ABh, CAh, ..." 순서로 로딩되는 것을 가정하자. 데이터 읽기/쓰기 회로(130)는 로딩된 1차 랜덤화된 데이터들(RDM(1)) 각각의 특정 비트를 반전한다. 도 4에서는 예시적으로 1차 랜덤화된 데이터들(RDM(1)) 각각의 제 1 비트(b0)가 반전되는 것을 예시하였다. 1차 랜덤화된 데이터들 "ABh, CAh, ..."은 데이터 반전 동작을 이용한 제 2 랜덤화 동작을 통해 "AAh, CBh, ..."로 2차 랜덤화 된다.
데이터 읽기/쓰기 회로(130)가 제 2 랜덤화 동작으로써 수행하는 데이터 반전 동작은 도 4에 도시된 방법으로 한정되지 않을 것이다. 예를 들면, 데이터의 반전 동작을 통해 적어도 하나의 비트가 반전될 수 있다.
다른 예로서, 데이터의 반전 동작을 통해 적어도 하나의 비트 그룹이 반전될 수 있다. 여기에서, 비트 그룹은 특정 비트를 그룹화한 것을 의미한다. 예를 들면, 제 1 비트(b0)와 제 5 비트(b4)는 제 1 비트 그룹으로, 제 2 비트(b1)와 제 6 비트(b5)는 제 2 비트 그룹으로, 제 3 비트(b2)와 제 7 비트(b6)는 제 3 비트 그룹으로, 그리고 제 4 비트(b3)와 제 8 비트(b7)는 제 4 비트 그룹으로 그룹화될 수 있다. 그리고 데이터의 반전 동작을 통해 적어도 하나의 비트 그룹이 반전될 수 있다.
다른 예로서, 데이터의 반전 동작을 통해 메모리 셀 어레이(110)의 페이지 별로 서로 다른 비트가 반전될 수 있다. 이 경우, 데이터의 비트 수에 따라 반전되는 비트가 반복될 수 있다. 데이터의 비트 수가 8비트, 즉 1바이트(Byte)임을 가정하자. 이러한 가정하에서, 제 1 페이지에 저장될 데이터는 제 1 비트(b0)가 반전되고, 제 2 페이지에 저장될 데이터는 제 2 비트(b1)가 반전되고, 제 3 페이지에 저장될 데이터는 제 3 비트(b2)가 반전되고, 제 4 페이지에 저장될 데이터는 제 4 비트(b3)가 반전되고, 제 5 페이지에 저장될 데이터는 제 5 비트(b4)가 반전되고, 제 6 페이지에 저장될 데이터는 제 6 비트(b5)가 반전되고, 제 7 페이지에 저장될 데이터는 제 7 비트(b6)가 반전되고, 제 8 페이지에 저장될 데이터는 제 8 비트(b7)가 반전될 수 있다. 그리고 제 9 페이지에 저장될 데이터는 다시 제 1 비트(b0)가 반전되고, 제 10 페이지에 저장될 데이터는 다시 제 2 비트(b1)가 반전되고, 제 11 페이지에 저장될 데이터는 다시 제 3 비트(b2)가 반전될 수 있다. 이러한 방식으로 이하의 페이지에 저장될 데이터는 반전되는 비트가 반복될 수 있다.
계속해서 도 3을 참조하면, S150 단계에서, 2차 랜덤화된 데이터는 선택된 페이지에 속하는 메모리 셀들에 프로그램된다. 그리고 S160 단계에서, 선택된 페이지에 속하는 메모리 셀들이 요구되는 상태들을 갖도록 프로그램되었는 지의 여부가 판별된다. 선택된 페이지에 속하는 메모리 셀들이 요구되는 상태들을 갖도록 프로그램되지 않은 경우, 절차는 S150 단계로 진행할 것이다. 이에 반해서, 선택된 페이지에 속하는 메모리 셀들이 요구되는 상태들을 갖도록 프로그램된 경우, 프로그램 동작은 종료된다.
앞서 설명된 바와 같이, 프로그램될 데이터는 랜덤 밸류(RV)를 이용한 제 1 랜덤화 동작을 통해 랜덤화된다. 그리고 1차 랜덤화된 데이터는 데이터의 반전 동작을 이용한 제 2 랜덤화 동작을 통해 다시 랜덤화된다. 따라서, 메모리 셀들의 상태들이 균일하게 분포될 수 있다. 이는 데이터 패턴이 메모리 셀 어레이(110)의 열 방향 또는 행 방향으로 동일하게 또는 유사하게 형성될 수 있음을 의미한다. 그러한 까닭에, 불휘발성 메모리 장치(100)의 신뢰성은 향상될 수 있다.
도 5는 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 타이밍도이다. 그리고 도 6은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작 동안 데이터 흐름을 보여주는 도면이다. 이하, 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작이 도 1, 도 5 및 도 6을 참조하여 상세히 설명될 것이다.
프로그램 동작은 일련의 명령들, 어드레스, 그리고 데이터의 입력에 따라 수행된다. 예를 들면, 도 5에 도시된 바와 같이, 제 1 명령(80h), 어드레스들(C0, C1, R0, R1, R2), 데이터들(D0~Dn), 그리고 제 2 명령(10h)이 불휘발성 메모리 장치(100)로 순차적으로 제공된다. 어드레스들(C0, C1, R0, R1, R2)은 열 어드레스들(C0, C1)과 행 어드레스들(R0, R1, R2)을 포함한다.
프로그램될 데이터는 데이터를 프로그램하기 위해 제공되는 제어 신호(예를 들면, 쓰기 인에이블 신호(/WE))의 토글에 따라 입출력 버퍼 회로(160)를 통해 랜덤화 및 디-랜덤화 회로(150)에 순차적으로 제공된다(도 6에서 ① 참조).
랜덤화 및 디-랜덤화 회로(150)는 열 어드레스와, 쓰기 인에이블 신호(/WE))에 대응하여 토글되는 클럭 신호(CLK)에 응답하여 랜덤 밸류(RV)를 생성한다. 그리고 랜덤화 및 디-랜덤화 회로(150)는 데이터가 입력되는 동안 생성된 랜덤 밸류(RV)를 이용하여 제 1 랜덤화 동작을 수행한다(도 6에서 ② 참조). 제 1 랜덤화 동작은 프로그램될 모든 데이터가 데이터 읽기/쓰기 회로(130)에 제공될 때까지 수행될 것이다.
제 1 랜덤화 동작을 통해 1차 랜덤화된 데이터가 데이터 읽기/쓰기 회로(130)에 모두 로딩되면, 프로그램 확인 명령, 즉, 제 2 명령(10h)이 불휘발성 메모리 장치로 제공된다. 이 때, 도 5에 도시된 바와 같이, 불휘발성 메모리 장치(100)의 레디/비지 신호(R/B)는 하이 레벨에서 로우 레벨로 천이할 것이다. 데이터 읽기/쓰기 회로(130)는 레디/비지 신호(R/B)의 로우 레벨 구간 동안, 즉, 프로그램 시간(tPROG) 동안 데이터 반전 동작을 이용하여 로딩된 데이터(즉, 1차 랜덤화된 데이터)에 대한 제 2 랜덤화 동작을 수행한다(도 6에서 ③ 참조). 그리고 데이터 읽기/쓰기 회로(130)는 프로그램 시간(tPROG) 동안 2차 랜덤화된 데이터를 선택된 페이지에 속하는 메모리 셀들에 프로그램한다(도 6에서 ④ 참조).
도 7은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작을 설명하기 위한 순서도이다. 이하, 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작이 도 1, 도 2 및 도 7을 참조하여 상세히 설명될 것이다.
외부 장치(예를 들면, 메모리 컨트롤러, 메모리 인터페이스, 호스트 장치 등)로부터 읽기 명령이 제공되면 불휘발성 메모리 장치(100)의 읽기 동작이 시작된다. S210 단계에서, 읽기 명령과 함께 어드레스가 불휘발성 메모리 장치(100)에 제공될 것이다. 여기에서, 어드레스는 메모리 셀 어레이(110)의 열 어드레스와 행 어드레스를 포함한다. 행 어드레스는 메모리 블럭을 선택하기 위한 블럭 어드레스와 메모리 블럭의 페이지를 선택하기 위한 페이지 어드레스를 포함한다.
S220 단계에서, 제공된 어드레스에 대응하는 페이지로부터 데이터가 데이터 읽기/쓰기 회로(130)에 의해서 감지된다. 즉, 데이터 읽기/쓰기 회로(130)는 제어 로직(170)의 제어에 따라 선택된 페이지에 속하는 메모리 셀들에 저장된 데이터를 읽는다. 이 때, 읽혀진 데이터는 2차 랜덤화된 데이터일 것이다.
S230 단계에서, 데이터 읽기/쓰기 회로(130)는 데이터의 반전 동작을 이용하여 제 1 디-랜덤화 동작을 수행한다. 제 1 디-랜덤화 동작에서 사용되는 데이터의 반전 동작은 제 2 랜덤화 동작(도 3에서 설명됨)에서 사용된 데이터의 반전 동작과 실질적으로 동일하다. 그러므로 그것에 대한 상세한 설명은 생략될 것이다. 제 1 디-랜덤화 동작을 통해 생성된 1차 디-랜덤화된 데이터는 열 디코더(140)를 통해 랜덤화 및 디-랜덤화 회로(150)에 제공된다.
S240 단계에서, 랜덤화 및 디-랜덤화 회로(150)는 제어 로직(170)의 제어에 따라 랜덤 밸류(RV)를 생성한다. 랜덤화 및 디-랜덤화 회로(150)에는 시드 값으로써 열 어드레스가 제공될 것이다. 즉, 랜덤화 및 디-랜덤화 회로(150)는 열 어드레스에 의거하여 랜덤 밸류(RV)를 생성한다. 랜덤화 및 디-랜덤화 회로(150)는 제어 로직(170)으로부터 제공되는 클럭 신호(CLK)의 토글에 따라 랜덤 밸류(RV)를 순차적으로 생성한다. 클럭 신호(CLK)는 불휘발성 메모리 장치의 읽기 동작을 제어하기 위해서 제공되는 제어 신호(예를 들면, 읽기 인에이블 신호(/RE))에 대응하여 토글될 것이다. 한편, 디-랜덤화 동작을 위해서 생성된 랜덤 밸류(RV)는 랜덤화 동작을 위해서 생성된 랜덤 밸류(RV)와 동일한 것임은 잘 이해될 것이다.
S250 단계에서, 랜덤화 및 디-랜덤화 회로(150)는 생성된 랜덤 밸류(RV)를 이용하여 제 2 디-랜덤화 동작을 수행한다. 조금 더 구체적으로 설명하면, 1차 디-랜덤화된 데이터는 열 디코더(140)를 통해 믹서(152)에 제공된다. 이때, 생성된 랜덤 밸류(RV)가 믹서(152)에 제공된다. 믹서(152)는 배타적 논리합(XOR) 연산을 통해 1차 디-랜덤화된 데이터와 랜덤 밸류(RV)를 조합한다. 그 결과 2차 디-랜덤화된 데이터가 생성된다. 2차 디-랜덤화 동작은 열 방향(또는, 메모리 셀 스트링 방향)으로 수행된다.
S260 단계에서, 2차 디-랜덤화된 데이터, 즉, 본래의 데이터로 복원된 데이터는 외부 장치로 출력된다.
도 8은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 타이밍도이다. 그리고 도 9는 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작 동안 데이터 흐름을 보여주는 도면이다. 이하, 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 읽기 동작이 도 1, 도 8 및 도 9를 참조하여 상세히 설명될 것이다.
읽기 동작은 일련의 명령들 및 어드레스의 입력에 따라 수행된다. 예를 들면, 도 8에 도시된 바와 같이, 제 1 명령(00h), 어드레스들(C0, C1, R0, R1, R2), 그리고 제 2 명령(30h)이 불휘발성 메모리 장치(100)로 순차적으로 제공된다. 어드레스들(C0, C1, R0, R1, R2)은 열 어드레스들(C0, C1)과 행 어드레스들(R0, R1, R2)을 포함한다.
읽기 확인 명령, 즉, 제 2 명령(30h)이 불휘발성 메모리 장치(100)에 제공되면, 도 8에 도시된 바와 같이, 불휘발성 메모리 장치(100)의 레디/비지 신호(R/B)는 하이 레벨에서 로우 레벨로 천이할 것이다. 데이터 읽기/쓰기 회로(130)는 레디/비지 신호(R/B)의 로우 레벨 구간 동안, 즉, 읽기 시간(tR) 동안 선택된 페이지에 속하는 메모리 셀들로부터 데이터를 읽는다(도 9에서 ① 참조).
데이터 읽기/쓰기 회로(130)는 읽기 시간(tR) 동안 메모리 셀들로부터 읽혀진 데이터(즉, 2차 랜덤화된 데이터)에 대한 제 1 디-랜덤화 동작을 수행한다(도 9에서 ② 참조). 제 1 디-랜덤화 동작을 통해 1차 디-랜덤화된 데이터는 랜덤화 및 디-랜덤화 회로(150)에 제공된다.
랜덤화 및 디-랜덤화 회로(150)는 데이터를 읽기 위해서 제공된 제어 신호(예를 들면, 읽기 인에이블 신호(/RE))에 대응하여 토글되는 클럭 신호(CLK)에 응답하여 랜덤 밸류(RV)를 생성한다. 그리고 랜덤화 및 디-랜덤화 회로(150)는 생성된 랜덤 밸류(RV)를 이용하여 제 2 디-랜덤화 동작을 수행한다(도 9에서 ③ 참조). 제 2 디-랜덤화 동작은 액세스 요청된 데이터가 모두 출력될 때까지 수행될 것이다.
2차 디-랜덤화된 데이터, 즉, 본래의 데이터로 복원된 데이터(Dout)는 읽기 인에이블 신호(/RE)의 토글에 따라 입출력 버퍼 회로(160)를 통해 외부 장치로 순차적으로 제공된다(도 9에서 ④ 참조).
도 10은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 카피백 프로그램 동작 동안 데이터 흐름을 보여주는 도면이다. 불휘발성 메모리 장치의 카피백 프로그램 동작은 소스 페이지로부터 데이터를 읽기 위한 읽기 동작과 읽혀진 데이터를 타겟 페이지로 프로그램하기 위한 프로그램 동작을 포함한다. 이하, 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 카피백 프로그램 동작이 도 1 및 도 10을 참조하여 상세히 설명될 것이다.
카피백 프로그램 동작이 시작되면, 데이터 읽기/쓰기 회로(130)는 제어 로직(170)의 제어에 따라 메모리 셀 어레이(110)의 소스 페이지에 속한 메모리 셀들로부터 데이터를 읽는다(도 10에서 ① 참조). 이때, 읽혀진 데이터는 2차 랜덤화된 데이터일 것이다.
데이터 읽기/쓰기 회로(130)는 읽기 시간(tR) 동안 데이터 반전 동작을 이용하여 메모리 셀들로부터 읽혀진 데이터(즉, 2차 랜덤화된 데이터)에 대한 디-랜덤화 동작을 수행한다(도 10에서 ② 참조). 읽혀진 데이터는 데이터 반전 동작을 이용한 디-랜덤화 동작을 통해 1차 랜덤화된 데이터로 복원될 것이다.
데이터 읽기/쓰기 회로(130)는 프로그램 시간(tPROG) 동안 데이터 반전 동작을 이용하여 디-랜덤화된 데이터(즉, 1차 랜덤화된 데이터)에 대한 랜덤화 동작을 수행한다(도 10에서 ③ 참조). 디-랜덤화된 데이터(즉, 1차 랜덤화된 데이터)는 데이터 반전 동작을 이용한 랜덤화 동작을 통해 2차 랜덤화된 데이터로 랜덤화될 것이다. 그리고 데이터 읽기/쓰기 회로(130)는 프로그램 시간(tPROG) 동안 2차 랜덤화된 데이터를 타겟 페이지에 속한 메모리 셀들에 프로그램한다(도 10에서 ④ 참조).
본 발명의 실시 예에 따른 카피백 프로그램 동작에 따르면, 카피백 동작에 의해서 데이터가 본래 저장된 페이지와 다른 페이지에 저장되더라도 데이터 반전 동작을 이용한 제 1 디-랜덤화 동작과 랜덤 밸류를 이용한 제 2 디-랜덤화 동작을 통해 본래의 데이터로 복원될 수 있다. 즉, 페이지 어드레스가 랜덤화 동작과 디-랜덤화 동작에 사용되지 않기 때문에, 카피백 프로그램 동작에 의해서 데이터가 본래 저장된 페이지와 다른 페이지에 저장되더라도 본래의 데이터로 복원될 수 있다.
도 11은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다. 도 11을 참조하면, 데이터 처리 시스템(1000)은 데이터 저장 장치(1100)와 호스트 장치(1500)를 포함한다. 데이터 저장 장치(1100)는 솔리드 스테이트 드라이브(solid state drive, 이하, 'SSD'라 칭함)로 구성될 것이다.
SSD(1100)는 SSD 컨트롤러(1200), 버퍼 메모리 장치(1300), 그리고 데이터 저장 매체(1400)를 포함한다. SSD(1100)는 슈퍼 캐패시터들(super capacitors)을 포함하는 임시 전원 회로를 더 포함할 수 있다. 이러한 임시 전원 회로는 서든 파워 오프(sudden power off)가 발생되는 경우, SSD(1100)가 정상적으로 종료되도록 전원을 공급할 수 있다.
SSD(1100)는 호스트 장치(1500)의 액세스 요청에 응답하여 동작한다. 즉, SSD 컨트롤러(1200)는 호스트 장치(1500)로부터의 요청에 응답하여 데이터 저장 매체(1400)를 액세스하도록 구성된다. 예를 들면, SSD 컨트롤러(1200)는 데이터 저장 매체(1400)의 읽기, 프로그램 및 소거 동작을 제어하도록 구성된다.
버퍼 메모리 장치(1300)는 데이터 저장 매체(1400)에 저장될 데이터를 임시 저장하도록 구성된다. 또한, 버퍼 메모리 장치(1300)는 데이터 저장 매체(1400)로부터 읽혀진 데이터를 임시 저장하도록 구성된다. 버퍼 메모리 장치(1300)에 저장된 데이터는 SSD 컨트롤러(1200)의 제어에 따라 데이터 저장 매체(1400) 또는 호스트 장치(1500)로 전송된다.
SSD 컨트롤러(1200)는 복수의 채널들(CH0~CHk)을 통해 데이터 저장 매체(1400)와 연결된다. 복수의 불휘발성 메모리 장치들(NVM00~NVM0i, NVMk0~NVMki)은 각각의 채널들(CH0~CHk)에 연결된다. 데이터 저장 매체(1400)는 본 발명의 실시 예에 따른 불휘발성 메모리 장치(도 1의 100 참조)로 구성될 것이다. 따라서, SSD(1100)의 데이터 신뢰성이 향상될 것이다.
도 12는 본 발명의 실시 예들에 따른 불휘발성 메모리 장치를 포함하는 또 다른 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다. 도 12를 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 데이터 저장 장치(2150)를 포함한다. 데이터 저장 장치(2150)는 컨트롤러(2200) 및 데이터 저장 매체(2900)를 포함한다.
컨트롤러(2200)는 호스트 장치(2100) 및 데이터 저장 매체(2900)에 연결된다. 컨트롤러(2200)는 호스트 장치(2100)로부터의 요청에 응답하여 데이터 저장 매체(2900)를 액세스하도록 구성된다. 예를 들면, 컨트롤러(2200)는 데이터 저장 매체(2900)의 읽기, 프로그램 또는 소거 동작을 제어하도록 구성된다. 컨트롤러(2200)는 데이터 저장 매체(2900)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
컨트롤러(2200)는 호스트 인터페이스(2300), 중앙 처리 장치(2400), 메모리 인터페이스(2500), 램(2600) 및 에러 정정 코드 유닛(2700)과 같은 잘 알려진 구성 요소들을 포함할 수 있다.
중앙 처리 장치(2400)는 컨트롤러(2200)의 제반 동작을 제어한다. 램(2600)은 중앙 처리 장치(2400)의 동작 메모리(working memory)로써 이용될 수 있다.
호스트 인터페이스(2300)는 호스트 장치(2100)와 컨트롤러(2200)를 인터페이싱하도록 구성된다. 예를 들면, 호스트 인터페이스(2300)는 USB(Universal Serial Bus) 프로토콜, MMC(Multimedia Card) 프로토콜, PCI(Peripheral Component Interconnection) 프로토콜, PCI-E(PCI-Express) 프로토콜, PATA(Parallel Advanced Technology Attachment) 프로토콜, SATA(Serial ATA) 프로토콜, SCSI(Small Computer Small Interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 호스트(2300)와 통신하도록 구성될 수 있다.
메모리 인터페이스(2500)는 컨트롤러(2200)와 데이터 저장 매체(2900)를 인터페이싱하도록 구성된다. 데이터 저장 매체(2900)는 본 발명의 실시 예에 따른 불휘발성 메모리 장치(도 1의 100 참조)로 구성될 것이다. 따라서, 데이터 저장 장치(2150)의 데이터 신뢰성이 향상될 것이다.
에러 정정 코드 유닛(2700)은 데이터 저장 매체(2900)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성될 수 있다.
컨트롤러(2200) 및 데이터 저장 매체(2900)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(2200) 및 데이터 저장 매체(2900)는 하나의 반도체 장치로 집적되어 PCMCIA(personal computer memory card international association) 카드, CF(compact flash) 카드, 스마트 미디어(smart media) 카드, 메모리 스틱(memory stick), 멀티 미디어(multi media) 카드(MMC, RS-MMC, MMC-micro), SD(secure digital) 카드(SD, Mini-SD, Micro-SD), UFS(niversal flash storage) 등을 구성할 수 있다.
다른 예로서, 컨트롤러(2200) 또는 데이터 저장 매체(2900)는 다양한 형태들의 패키지(package)로 실장될 수 있다. 예를 들면, 컨트롤러(2200) 또는 데이터 저장 매체(2900)는 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 package(MQFP), thin quad flat package(TQFP), small outline IC(SOIC), shrink small outline package(SSOP), thin small outline package(TSOP), thin quad flat package(TQFP), system in package(SIP), multi chip package(MCP), wafer-level fabricated package(WFP), wafer-level processed stack package(WSP) 등과 같은 방식으로 패키지되어 실장될 수 있다.
도 13은 도 11 및 도 12의 데이터 처리 시스템이 장착되는 컴퓨터 시스템을 예시적으로 보여주는 블럭도이다. 도 13을 참조하면, 컴퓨터 시스템(3000)은 시스템 버스(3700)에 전기적으로 연결되는 네트워크 어댑터(3100), 중앙 처리 장치(3200), 데이터 저장 장치(3300), 램(3400), 롬(3500) 및 사용자 인터페이스(3600)를 포함한다. 여기에서, 데이터 저장 장치(3300)는 도 11에 도시된 데이터 저장 장치(1100)로 구성될 수 있다. 또는, 데이터 저장 장치(3300)는 도 12에 도시된 데이터 저장 장치(2150)로 구성될 수 있다.
네트워크 어댑터(3100)는 컴퓨터 시스템(3000)과 외부의 네트워크들 사이의 인터페이싱을 제공한다. 중앙 처리 장치(3200)는 램(3400)에 상주하는 운영 체제(Operating System)나 응용 프로그램(Application Program)을 구동하기 위한 제반 연산 처리를 수행한다.
데이터 저장 장치(3300)는 컴퓨터 시스템(3000)에서 필요한 제반 데이터를 저장한다. 예를 들면, 컴퓨터 시스템(3000)을 구동하기 위한 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module), 프로그램 데이터(Program data), 그리고 유저 데이터(User data) 등이 데이터 저장 장치(3300)에 저장된다.
램(3400)은 컴퓨터 시스템(3000)의 동작 메모리 장치로 사용될 수 있다. 부팅 시에 램(3400)에는 데이터 저장 장치(3300)로부터 읽혀진 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module)과 프로그램들의 구동에 소요되는 프로그램 데이터(Program data)가 로드된다. 롬(3500)에는 운영 체제(Operating System)가 구동되기 이전부터 활성화되는 기본적인 입출력 시스템인 바이오스(BIOS: Basic Input/Output System)가 저장된다. 유저 인터페이스(3600)를 통해서 컴퓨터 시스템(3000)과 사용자 사이의 정보 교환이 이루어진다.
이외에도, 컴퓨터 시스템(3000)은 배터리(Battery)나 모뎀(Modem) 등을 더 포함할 수 있다. 또한, 비록 도면에는 도시되지 않았지만, 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS) 등이 컴퓨터 시스템(3000)에 더 포함될 수 있음은 잘 이해될 것이다.
이상에서, 본 발명은 구체적인 실시 예를 통해 설명되고 있으나, 본 발명은 그 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있음은 잘 이해될 것이다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위 및 이와 균등한 것들에 의해 정해져야 한다. 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 잘 이해될 것이다.
100 : 불휘발성 메모리 장치
110 : 메모리 셀 어레이
120 : 행 디코더
130 : 데이터 읽기/쓰기 회로
140 : 열 디코더
150 : 랜덤화 및 디-랜덤화 회로
160 : 입출력 버퍼 회로
170 : 제어 로직

Claims (20)

  1. 워드 라인과 비트 라인이 교차하는 영역에 배열된 메모리 셀;
    시드 값을 참조하여 상기 메모리 셀에 프로그램될 데이터를 1차 랜덤화 하도록 구성된 랜덤화 및 디-랜덤화 회로;
    데이터 반전 동작을 이용하여 상기 1차 랜덤화된 데이터를 2차 랜덤화 하고, 상기 2차 랜덤화된 데이터를 상기 메모리 셀에 프로그램하도록 구성된 데이터 읽기/쓰기 회로; 및
    상기 랜덤화 및 디-랜덤화 회로와 상기 데이터 읽기/쓰기 회로를 제어하도록 구성된 제어 로직을 포함하는 불휘발성 메모리 장치.
  2. 제 1 항에 있어서,
    상기 데이터 읽기/쓰기 회로는 상기 1차 랜덤화된 데이터의 적어도 1비트를 반전하여 상기 2차 랜덤화된 데이터를 생성하도록 구성된 불휘발성 메모리 장치.
  3. 제 1 항에 있어서,
    상기 랜덤화 및 디-랜덤화 회로는 열 어드레스를 상기 시드 값으로 사용하도록 구성된 불휘발성 메모리 장치.
  4. 제 3 항에 있어서,
    상기 랜덤화 및 디-랜덤화 회로는,
    상기 열 어드레스를 참조하여 랜덤 밸류를 생성하도록 구성된 랜덤 밸류 생성기; 및
    상기 랜덤 밸류와 상기 프로그램될 데이터를 논리적으로 조합하도록 구성된 믹서를 포함하는 불휘발성 메모리 장치.
  5. 제 4 항에 있어서,
    상기 믹서는 배타적 논리합(XOR) 연산을 수행하는 불휘발성 메모리 장치.
  6. 제 1 항에 있어서,
    상기 데이터 읽기/쓰기 회로는 상기 메모리 셀에 저장된 데이터를 독출하고, 데이터 반전 동작을 이용하여 상기 독출된 데이터를 1차 디-랜덤화하도록 구성된 불휘발성 메모리 장치.
  7. 제 6 항에 있어서,
    상기 데이터 읽기/쓰기 회로는 상기 독출된 데이터의 적어도 1비트를 반전하여 상기 1차 디-랜덤화된 데이터를 생성하도록 구성된 불휘발성 메모리 장치.
  8. 제 6 항에 있어서,
    상기 랜덤화 및 디-랜덤화 회로는 시드 값을 참조하여 상기 1차 디-랜덤화된 데이터를 2차 디-랜덤화하도록 구성된 불휘발성 메모리 장치.
  9. 제 8 항에 있어서,
    상기 랜덤화 및 디-랜덤화 회로는 열 어드레스를 상기 시드 값으로 사용하도록 구성된 불휘발성 메모리 장치.
  10. 불휘발성 메모리 장치의 동작 방법에 있어서:
    어드레스와 상기 어드레스에 해당하는 메모리 셀에 프로그램될 데이터를 수신하는 단계;
    시드 값으로써 상기 어드레스를 참조하여 랜덤 밸류를 생성하는 단계;
    상기 랜덤 밸류와 상기 프로그램될 데이터를 논리적으로 조합하여 1차 랜덤화된 데이터를 생성하는 단계; 및
    상기 1차 랜덤화된 데이터를 반전하여 2차 랜덤화된 데이터를 생성하는 단계를 포함하는 불휘발성 메모리 장치의 동작 방법.
  11. 제 10 항에 있어서,
    상기 어드레스는 열 어드레스와 행 어드레스로 구분되고,
    상기 랜덤 밸류는 상기 열 어드레스를 상기 시드 값으로 사용하여 생성되는 불휘발성 메모리 장치의 동작 방법.
  12. 제 10 항에 있어서,
    상기 랜덤 밸류와 상기 프로그램될 데이터는 배타적 논리합(XOR) 연산을 통해 조합되는 불휘발성 메모리 장치의 동작 방법.
  13. 제 10 항에 있어서,
    상기 2차 랜덤화된 데이터는 상기 1차 랜덤화된 데이터의 적어도 1비트를 반전하여 생성되는 불휘발성 메모리 장치의 동작 방법.
  14. 제 10 항에 있어서,
    상기 2차 랜덤화된 데이터를 상기 메모리 셀에 프로그램하는 단계를 더 포함하는 불휘발성 메모리 장치의 동작 방법.
  15. 불휘발성 메모리 장치의 동작 방법에 있어서:
    수신된 어드레스에 해당하는 메모리 셀로부터 데이터를 독출하는 단계;
    상기 독출된 데이터를 반전하여 1차 디-랜덤화된 데이터를 생성하는 단계;
    시드 값으로써 상기 어드레스를 참조하여 랜덤 밸류를 생성하는 단계; 및
    상기 랜덤 밸류와 상기 1차 디-랜덤화된 데이터를 논리적으로 조합하여 2차 디-랜덤화된 데이터를 생성하는 단계를 포함하는 불휘발성 메모리 장치의 동작 방법.
  16. 제 15 항에 있어서,
    상기 어드레스는 열 어드레스와 행 어드레스로 구분되고,
    상기 랜덤 밸류는 상기 열 어드레스를 상기 시드 값으로 사용하여 생성되는 불휘발성 메모리 장치의 동작 방법.
  17. 제 15 항에 있어서,
    상기 랜덤 밸류와 상기 프로그램될 데이터는 배타적 논리합(XOR) 연산을 통해 조합되는 불휘발성 메모리 장치의 동작 방법.
  18. 제 15 항에 있어서,
    상기 1차 디-랜덤화된 데이터는 상기 독출된 데이터의 적어도 1비트를 반전하여 생성되는 불휘발성 메모리 장치의 동작 방법.
  19. 제 15 항에 있어서,
    상기 2차 디-랜덤화된 데이터를 외부 장치로 출력하는 단계를 더 포함하는 불휘발성 메모리 장치의 동작 방법.
  20. 불휘발성 메모리 장치; 및
    상기 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러를 포함하되,
    상기 불휘발성 메모리 장치는,
    워드 라인과 비트 라인이 교차하는 영역에 배열된 메모리 셀;
    시드 값을 참조하여 상기 메모리 셀에 프로그램될 데이터를 1차 랜덤화 하도록 구성된 랜덤화 및 디-랜덤화 회로;
    데이터 반전 동작을 이용하여 상기 1차 랜덤화된 데이터를 2차 랜덤화 하고, 상기 2차 랜덤화된 데이터를 상기 메모리 셀에 프로그램하도록 구성된 데이터 읽기/쓰기 회로; 및
    상기 랜덤화 및 디-랜덤화 회로와 상기 데이터 읽기/쓰기 회로를 제어하도록 구성된 제어 로직을 포함하는 데이터 저장 장치.
KR1020110118071A 2011-11-14 2011-11-14 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 KR20130052811A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110118071A KR20130052811A (ko) 2011-11-14 2011-11-14 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
US13/469,847 US8867283B2 (en) 2011-11-14 2012-05-11 Semiconductor memory device, operating method thereof, and data storage apparatus including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110118071A KR20130052811A (ko) 2011-11-14 2011-11-14 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치

Publications (1)

Publication Number Publication Date
KR20130052811A true KR20130052811A (ko) 2013-05-23

Family

ID=48280518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110118071A KR20130052811A (ko) 2011-11-14 2011-11-14 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치

Country Status (2)

Country Link
US (1) US8867283B2 (ko)
KR (1) KR20130052811A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160123765A (ko) * 2015-04-17 2016-10-26 경희대학교 산학협력단 메모리 장치 및 그 동작 방법
KR102208497B1 (ko) * 2020-07-01 2021-01-27 주식회사 파두 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880977B2 (en) 2011-07-22 2014-11-04 Sandisk Technologies Inc. Systems and methods of storing data
KR102244617B1 (ko) 2014-03-13 2021-04-26 삼성전자 주식회사 논리 정보와 물리 정보를 이용하여 데이터를 처리할 수 있는 장치와 방법
KR102254100B1 (ko) * 2015-01-05 2021-05-20 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR102511459B1 (ko) 2016-03-17 2023-03-17 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
KR102636039B1 (ko) 2016-05-12 2024-02-14 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
KR20190033791A (ko) * 2017-09-22 2019-04-01 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 장치 및 이들을 포함하는 메모리 시스템
KR20190074890A (ko) 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN110751964B (zh) * 2018-07-24 2021-09-17 长鑫存储技术有限公司 集成电路储存器的多位元信号传递方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100111990A (ko) 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
KR20110055178A (ko) * 2009-11-19 2011-05-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
US8751729B2 (en) * 2010-12-23 2014-06-10 Samsung Electronics Co., Ltd. Flash memory device and memory system including the same
KR101893143B1 (ko) * 2011-03-16 2018-08-31 삼성전자주식회사 비휘발성 메모리 장치, 그것의 프로그램 방법 및 읽기 방법, 및 그것을 포함하는 메모리 시스템
JP2012226822A (ja) * 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
KR101767649B1 (ko) * 2011-05-11 2017-08-14 삼성전자주식회사 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160123765A (ko) * 2015-04-17 2016-10-26 경희대학교 산학협력단 메모리 장치 및 그 동작 방법
KR102208497B1 (ko) * 2020-07-01 2021-01-27 주식회사 파두 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
US11656772B2 (en) 2020-07-01 2023-05-23 FADU Inc. Memory controller and storage device including the same

Also Published As

Publication number Publication date
US20130121090A1 (en) 2013-05-16
US8867283B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
KR101563647B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
KR20130052811A (ko) 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
US8705279B2 (en) Nonvolatile memory device and reading method thereof
KR102025263B1 (ko) 메모리 시스템 및 그것의 읽기 교정 방법
JP5921870B2 (ja) 不揮発性メモリ装置のプログラム方法
KR102005888B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
US9274886B2 (en) Data storage device having a reduced error occurrence, operating method thereof, and data processing system including the same
US8743632B2 (en) Nonvolatile memory device, operating method thereof, and data storage device having the same
US8705276B2 (en) Semiconductor memory device, reading method thereof, and data storage device having the same
KR101716716B1 (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
KR20140008705A (ko) 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
KR101923157B1 (ko) 메모리 시스템 및 그것의 프로그램 방법
KR20150044753A (ko) 데이터 저장 장치의 동작 방법
KR20170099610A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR101949987B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US9990149B2 (en) Memory device for internally performing read-verify operation, method of operating the same, and memory system including the same
KR20130057086A (ko) 비휘발성 메모리 장치의 프로그램 방법
KR20080074585A (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를포함한 메모리 시스템
KR20120118764A (ko) 불휘발성 메모리 장치의 프로그램 방법
KR20140062332A (ko) 데이터 저장 장치의 동작 방법
KR102029933B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
CN110010185A (zh) 存储器系统及其操作方法
KR20170097990A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20210057297A (ko) 시스템 및 시스템의 동작 방법
KR20220139081A (ko) 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid