KR101563647B1 - 메모리 시스템 및 그것의 데이터 처리 방법 - Google Patents

메모리 시스템 및 그것의 데이터 처리 방법 Download PDF

Info

Publication number
KR101563647B1
KR101563647B1 KR1020090015346A KR20090015346A KR101563647B1 KR 101563647 B1 KR101563647 B1 KR 101563647B1 KR 1020090015346 A KR1020090015346 A KR 1020090015346A KR 20090015346 A KR20090015346 A KR 20090015346A KR 101563647 B1 KR101563647 B1 KR 101563647B1
Authority
KR
South Korea
Prior art keywords
page
data
random
random seed
meta
Prior art date
Application number
KR1020090015346A
Other languages
English (en)
Other versions
KR20100096457A (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 KR1020090015346A priority Critical patent/KR101563647B1/ko
Priority to US12/656,131 priority patent/US8255643B2/en
Publication of KR20100096457A publication Critical patent/KR20100096457A/ko
Application granted granted Critical
Publication of KR101563647B1 publication Critical patent/KR101563647B1/ko

Links

Images

Classifications

    • 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/5628Programming or writing circuits; Data input circuits
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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

메모리 시스템 및 그것의 데이터 처리 방법{MEMORY SYSTEM AND DATA PROCESSING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 메모리 시스템 및 그것의 데이터 처리 방법에 관한 것이다.
반도체 메모리는, 일반적으로, 위성에서 소비자 전자 기술까지의 범위에 속하는 마이크로프로세서를 기반으로 한 응용 및 컴퓨터와 같은 디지털 로직 설계의 가장 필수적인 마이크로 전자 소자이다. 그러므로, 높은 집적도 및 빠른 속도를 위한 축소(Scaling)를 통해 얻어지는 프로세스 향상 및 기술 개발을 포함한 반도체 메모리의 제조 기술의 진보는 다른 디지털 로직 계열의 성능 기준을 확립하는 데 도움이 된다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 불휘발성 반도체 메모리 장치로 나뉘어진다. 불휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 불휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 불휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 그리고 소비자 전자 기술 산업과 같은 넓은 범위의 응용에 서 프로그램 및 마이크로 코드의 저장을 위해서 사용된다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치(Flash memory device)가 있다. 최근 들어 모바일 기기들의 대중화가 급속히 진전됨에 따라, 플래시 메모리에 대한 고집적 요구가 증가하고 있다. 또한, 이러한 모바일 기기 및 메모리 카드들에 저장되는 데이터의 중요도가 증가함에 따라 플래시 메모리에 저장되는 데이터에 대한 신뢰도 및 보안성이 요구되고 있다.
본 발명은 기입되는 데이터의 신뢰도를 높일 수 있는 반도체 메모리 장치 및 그것의 데이터 처리 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 반도체 메모리 장치의 데이터 처리 방법은, 프로그램될 페이지 데이터 및 상기 페이지 데이터에 대응하는 페이지 메타에 대한 랜덤 연산을 수행하고 랜덤 시드를 생성하는 단계; 그리고 상기 랜덤 연산에 따라 랜덤화된 페이지 데이터와 상기 페이지 메타 및 상기 랜덤 시드를 상기 불휘발성 메모리에 프로그램하는 단계를 포함하되, 상기 랜덤 시드는 상기 페이지 데이터의 속성에 따라 프로그램되는 위치가 가변된다.
상기 목적을 달성하기 위한 본 발명의 메모리 시스템은 불휘발성 메모리 장치; 및 상기 불휘발성 메모리 장치에 프로그램될 페이지 데이터와 상기 페이지 데이터에 대응하는 페이지 메타에 대한 랜덤 연산을 수행하여 랜덤 시드를 생성하고, 상기 랜덤 연산에 따라 랜덤화된 페이지 데이터와 상기 페이지 메타 및 상기 랜덤 시드를 상기 불휘발성 메모리 장치가 프로그램하도록 제어하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 랜덤 시드의 프로그램되는 위치를 상기 페이지 데이터의 어드레스에 따라 가변적으로 제공한다.
본 발명의 반도체 메모리 장치 및 그것의 데이터 관리 방법에 따르면, 프로그램되는 데이터 전체에 대한 랜덤화가 가능하여 메모리의 신뢰성을 높일 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 불휘발성 메모리의 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템에도 적용될 수 있다. 그리고, 2-비트 멀티 레벨 셀(MLC)을 본 발명의 특징을 설명하기 위한 예로 사용되었다. 하지만, 하나의 메모리 셀에 3-비트 이상의 데이터를 기입하는 멀티 비트 메모리 장치에 본 발명의 기술들이 쉽게 적용될 수 있을 것이다.
또한, 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 사용에 따라 수정되거나 변경될 수 있다.
이하에서는 본 발명의 상세한 설명에서는 페이지 데이터와 페이지 데이터에 대한 제어 정보에 해당하는 페이지 메타(Page meta)를 예로 본 발명의 기술적 특징들이 설명될 것이다. 그러나, 본 발명의 데이터 크기 및 종류들에는 페이지 데이터 및 페이지 메타에만 한정되지는 않는다. 또한, 랜덤 연산의 결과로 출력되는 랜덤 시드(Random seed)를 설명의 편의를 위해 페이지 메타와 구별하여 기술하고 있으나, 넓게 보면 랜덤 시드(Random seed)도 페이지 메타의 범주에 포함된다.
도 1은 멀티-비트 플래시 메모리 장치의 문턱 전압 분포를 예시적으로 보여주는 도면이다. 도 1을 참조하면, 하나의 메모리 셀에 2-비트가 저장되는 메모리 셀의 문턱 전압이 도시되어 있다.
데이터 '11'에 대응하는 소거 상태(E0)는 가장 낮은 문턱 전압 레벨을 갖는다. 그리고 데이터 '10'에 대응하는 프로그램 상태(P1), 데이터 '00'에 대응하는 프로그램 상태(P2) 및 데이터 '01'에 대응하는 프로그램 상태(P3)들로 각각의 2-비트 데이터와 프로그램 상태들이 배열될 수 있다. 여기서, 프로그램 상태들(E0, P1, P2, P3) 각각에 대응하는 2-비트 데이터의 대응 관계는 예시에 지나지 않는다. 메모리 장치의 설계 방식에 따라 프로그램 상태들(E0, P1, P2, P3)과 그에 대응하는 2-비트 데이터는 다양하게 변경될 수 있다.
플래시 메모리 장치에서, 메모리 셀의 문턱 전압은 상술한 복수의 프로그램 상태들(E0, P1, P2, P3) 중 어느 하나의 상태를 갖는다. 그러나, 플래시 메모리 장치는 프로그램 및 소거의 횟수에 제한이 있다. 왜냐하면, 메모리 셀의 특성 열화 때문에 특정 프로그램/소거 사이클(P/E Cycle) 이상에서는 전하의 누설이나 절연막의 열화로 인하여 데이터 보유 특성(Retention Characteristic)이 나빠지게 된다. 따라서, 메모리 셀들의 프로그램/소거 사이클의 적절한 제어를 통해서 수명의 단축을 피하기 위한 기술들이 개발되고 있다.
또한, 메모리 셀은 특정 프로그램 상태로만 반복해서 프로그램되는 경우에도 그 산포의 열화가 발생할 수 있다. 즉, 어느 하나의 메모리 셀이 반복적으로 프로그램 상태(P3)로만 프로그램된다면, 이 메모리 셀은 프로그램 상태들이 골고루 프로그램된 메모리 셀들에 비해서 산포 특성이 나빠질 수 있다. 따라서, 이러한 메모리 셀들의 열화로 인하여 메모리 장치 전체의 수명이 단축될 수도 있다.
도 2는 본 발명에 따른 메모리 시스템(100)의 구조를 간략히 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 메모리 시스템(100)은 불휘발성 메모리 장치(120)와 불휘발성 메모리 장치(120)에 저장될 데이터를 랜덤화하기 위한 메모리 컨트롤러(110)를 포함한다.
프로그램 동작시, 메모리 컨트롤러(110)는 호스트(Host)로부터 제공되는 프로그램 데이터(Program data)를 소정의 데이터 단위로 구분하고, 구분된 데이터들 각각에 대해 랜덤 연산을 수행한다. 랜덤화된 데이터(Randomized data)는 랜덤화 정보를 담고있는 랜덤 시드(Random seed)와 함께 불휘발성 메모리 장치(120)에 전 달된다. 랜덤화된 데이터 및 시드는 불휘발성 메모리 장치(120)의 소정 영역에 프로그램될 것이다.
읽기 동작시, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로부터 제공되는 랜덤 시드(Random seed)를 참조하여 독출된 데이터를 원래의 배열로 복구한다. 복구된 데이터가 호스트(Host)로 전달될 것이다.
본 발명의 메모리 컨트롤러(110)는 제공되는 하나의 페이지 데이터에 대한 랜덤 연산을 수행한다. 또한, 본 발명의 메모리 컨트롤러(110)는 페이지 데이터로부터 생성되는 페이지 메타(Page meta)에 대해서도 랜덤 연산을 수행한다. 일반적으로 랜덤 연산을 통해서 재배열되는 페이지 데이터의 경우, 랜덤 연산의 역연산을 위한 랜덤 시드(Random seed)를 생성해야 한다. 랜덤 시드는 읽기 동작시 랜덤화된 데이터의 배열을 복구시키기 위한 키값에 해당하는 데이터이다. 본 발명의 메모리 컨트롤러(110)는 페이지 데이터 및 그에 대응하는 페이지 메타에 대한 랜덤 연산을 수행한다. 예를 들면, 메모리 컨트롤러(110)는 에러 정정 코드(ECC)와 같은 페이지 메타에 대한 랜덤 연산을 수행한다. 그리고, 랜덤 연산의 결과로 출력되는 랜덤 시드(Random seed)를 출력한다. 랜덤 시드(Random seed)는 페이지 메타가 저장되는 스페어 영역에서 다양한 위치에 저장될 수 있다. 즉, 랜덤 시드의 위치는 페이지 데이터의 어드레스 또는 페이지 데이터의 특성이나 속성에 따라 스페어 페이지 메타가 저장되는 스페어 영역의 가변적 위치에 저장된다.
따라서, 프로그램되는 하나의 페이지 데이터와 그에 대응하는 페이지 메타가 랜덤 연산에 따라 메모리 셀들이 프로그램되는 문턱 전압 상태는 랜덤화될 수 있 다. 또한, 랜덤 연산의 키값에 해당하는 랜덤 시드가 기입되는 위치도 페이지 메타가 저장되는 영역 내에서 가변될 수 있다. 결국, 하나의 페이지를 프로그램하는 동작에서 페이지 데이터, 페이지 메타 및 랜덤 시드까지 랜덤화될 수 있음을 의미한다. 읽기 동작시에는, 불휘발성 메모리 장치(120)로부터 먼저 랜덤 시드(Random seed)가 메모리 컨트롤러(110)에 제공된다. 메모리 컨트롤러(110)는 랜덤 시드를 참조하여 이어서 전달되는 페이지 데이터 및 페이지 메타를 복호한다.
도 3은 도 2에서 설명된 본 발명의 불휘발성 메모리 장치(120)의 구조를 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 불휘발성 메모리 장치(120)는 하나의 페이지 데이터를 프로그램할 때, 페이지 데이터뿐 아니라 페이지 메타 및 랜덤 시드의 값에도 랜덤성을 부여한다. 좀더 자세히 설명하면 다음과 같다.
셀 어레이(210)는 비트 라인 및 워드 라인에 연결되는 메모리 셀들을 포함한다. 셀 어레이(210)는 프로그램 데이터의 메시지 필드가 저장되는 메인 영역(Main area)과 메시지 필드의 제어 정보가 저장되는 메타 영역 또는 스페어 영역을 포함한다. 하나의 워드 라인에는 복수의 페이지가 저장된다. 특히, 멀티 레벨 셀들을 포함하는 메모리 장치에서, 하나의 워드 라인에 연결되는 메모리 셀들에는 복수의 페이지가 저장된다. 각각의 페이지 데이터는 랜덤화되어 메인 영역에 저장된다. 그리고 페이지 데이터들 각각에 대한 페이지 메타도 랜덤화되어 스페어 영역에 저장된다.
특히, 페이지 데이터와 페이지 메타의 랜덤 연산에 따라 도출되는 랜덤 시드는 스페어 영역의 임의에 위치에 가변적으로 저장될 수 있다. 따라서, 페이지 데이 터와 페이지 메타의 랜덤화에 따라 메인 영역과 스페어 영역의 메모리 셀들의 열화가 방지될 수 있다. 그리고, 랜덤 시드의 위치를 페이지 어드레스, 데이터의 속성 등에 따라 스페어 영역 내에서 다변화하여 랜덤 시드에 대해서도 랜덤성을 제공할 수 있다.
행 디코더(220)는 일반적으로 행 어드레스(Row Address)에 응답하여 워드 라인을 선택한다. 행 디코더(220)는 전압 발생기(260)로부터 제공되는 각종 워드 라인 전압(Vpgm, Vrd 등)을 선택된 워드 라인들로 전달한다. 프로그램 동작시, 선택 워드 라인(Selected WL)으로는 프로그램 전압(Vpgm; 약 15~20V)과 검증 전압(Vfy)을, 비선택 워드 라인(Unselected WL)으로는 패스 전압(Vpass)을 전달한다. 독출 동작 시, 행 디코더(220)는 전압 발생기(260)로부터 제공되는 읽기 전압(Vrd)을 선택된 워드 라인으로, 읽기 전압(Vread, 약 5V)를 비선택 워드 라인으로 제공한다.
페이지 버퍼(230)는 동작 모드에 따라 기입 드라이버(Write driver)로서 또는 감지 증폭기(Sense amplifier)로서 동작한다. 예를 들면, 페이지 버퍼(230)는 읽기 동작 모드에서 감지 증폭기로서 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다. 본 발명의 페이지 버퍼(230)는 프로그램 동작시 하나의 페이지 단위의 데이터를 로드한다. 즉, 페이지 버퍼(230)는 프로그램될 데이터를 입출력 버퍼(240)로부터 제공받아 내부의 래치에 저장한다. 페이지 버퍼(230)는 로드된 데이터를 프로그램하는 동작시, 프로그램되는 메모리 셀들의 비트 라인으로 접지 전압(예를 들면, 0V)을 제공한다. 그리고 페이지 버퍼(230)는 프로그램 금지(Program inhibit)되는 메모리 셀들의 비트 라인으로 프리차지 전압(예를 들면, Vcc)을 공급 한다.
입출력 버퍼(240)는 입출력 핀(I/O Pin)을 통해서 입력되는 어드레스 또는 프로그램 데이터 등을 일시 저장한다. 입출력 버퍼(240)는 저장된 어드레스를 어드레스 버퍼(미도시됨)로, 프로그램 데이터는 페이지 버퍼(230) 측으로, 그리고 명령어는 명령어 레지스터(미도시됨)로 전달한다. 읽기 동작시, 페이지 버퍼(230)로부터 제공되는 독출 데이터가 입출력 버퍼(240)를 통해서 외부로 출력될 것이다.
제어 로직(250)은 프로그램 동작시, 메모리 컨트롤러(110, 도 2 참조)로부터 제공된 명령어(CMDi)에 따라서 제공되는 프로그램 데이터를 선택된 셀 영역으로 기입하도록 페이지 버퍼(230) 및 전압 발생기(260)를 제어한다. 또한, 제어 로직(250)은 메모리 컨트롤러(110, 도 2 참조)로부터의 명령어에 응답하여 선택된 셀 영역의 데이터를 감지 및 래치하여 출력하도록 페이지 버퍼(230) 및 전압 발생기(260)를 제어한다.
도 4는 도 2의 메모리 컨트롤러(110)에서 이루어지는 프로그램 데이터의 처리 과정을 보여주는 도면이다. 도 4를 참조하면, 프로그램될 페이지 데이터(Page data)로부터 페이지 메타(Page meta)가 생성되며, 페이지 데이터 및 페이지 메타에 대한 랜덤 연산(Randomizing Operation)이 이루어진다. 랜덤 연산에 따라 발생하는 랜덤 시드(Random seed)는 셀 어레이(210, 도 2 참조) 상에서 페이지 메타가 저장되는 스페어 영역(Spare Area)에 저장된다. 게다가, 랜덤 시드는 스페어 영역의 고정 위치에 저장될 수도 있으나, 가변적인 위치에 저장될 수 있다. 좀더 자세히 설명하면 다음과 같다.
(a)에는 프로그램될 페이지 데이터(310)가 예시적으로 도시되었다. 프로그램될 페이지 데이터(310)가 메모리 컨트롤러(110)에 입력되면, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 기입하기 이전에 페이지 데이터(310)의 데이터 배열을 랜덤하게 변환한다. 랜덤 연산의 이전에 에러 정정 코드나 플래그 셀 및 기타 제어 데이터들을 포함하는 페이지 메타(Page meta)가 생성될 것이다.
(b)에는 페이지 데이터(310)와 페이지 데이터(310)로부터 생성된 페이지 메타(320)가 도시되어 있다. 결국, 페이지 데이터(310)와 페이지 메타(320)는 하나의 프로그램 단위로 관리된다. (c)에는 페이지 데이터(310)와 페이지 메타(320)가 랜덤 연산을 위한 하나의 데이터 단위(330)로 구성된 형태를 간략히 보여준다.
(c)에는 랜덤 연산이 실시되기 이전의 데이터 단위(330)가 도시되어 있다. 본 발명의 메모리 컨트롤러(110)는 페이지 데이터(310)뿐만 아니라 페이지 메타(320)에 대해서도 랜덤 연산을 실시한다. 랜덤 연산은 페이지 데이터(310) 및 페이지 메타(320)에 대응하는 비트들을 재배열하는 것이다. 재배열을 통해서 메모리 셀들에 기입되는 데이터가 특정 스테이트로 편중되지 않게 관리될 수 있다.
(d)에는 랜덤 연산에 의해서 페이지 데이터 및 페이지 메타가 병합된 데이터 단위(330)가 랜덤화된 데이터 단위(340)로 재배열되는 과정이 간략히 도시되어 있다. 또한, 랜덤 연산의 키(Key)를 제공하는 랜덤 시드(350)가 생성된다.
(e)에는 랜덤 시드(350)의 스페어 영역(Spare area)으로의 기입 절차가 도시되어 있다. 데이터 단위(340)에는 랜덤 연산에 의해서 페이지 메타에 대응하는 데이터 [0011]가 포함된다. 그리고, 페이지 메타에 대응하는 데이터 [0011]과 랜덤 시드(350)가 스페어 영역(Spare area)에 프로그램될 것이다. 프로그램되는 페이지 데이터(310) 및 페이지 메타(320)는 랜덤화되어, 메모리 셀에 특정 데이터가 편중되게 프로그램될 확률이 낮아졌다. 그러나, 랜덤 시드(350) 자체에 대한 랜덤 연산은 수행되지 않았다. 본 발명에서는 랜덤 시드(350)가 스페어 영역에 기입되는 위치를 페이지 데이터의 어드레스나 속성을 참조하여 가변할 수 있다. 결국, 랜덤 시드(350)의 프로그램 위치의 가변을 통해서 랜덤 연산과 유사한 효과를 제공할 수 있다. 랜덤 시드(350)의 기입 위치에 대한 특징은 후술하는 도 5에서 상세하게 설명될 것이다.
도 5는 페이지 데이터 및 페이지 메타에 대한 랜덤 시드(Random seed)의 기입 위치를 간략히 보여주는 도면이다. 도 5를 참조하면, 랜덤 시드(Random seed)는 프로그램을 위해서 제공되는 페이지 데이터의 속성에 따라서 스페어 영역 내에서 다른 위치에 저장된다. 본 발명에서는 페이지 데이터의 페이지 어드레스(Page address)를 참조하여 랜덤 시드(Random seed)의 위치를 결정하는 실시예로 기술적 특징을 설명하기로 한다.
동일 워드 라인을 공유하는 메모리 셀들이 3-비트 MLC인 경우, 동일한 메모리 셀들에 3개의 페이지 데이터가 저장될 수 있다. 제 1 페이지(1st page or LSB page)는 A 그룹으로 분류된다. 그리고 제 2 페이지(2nd page)는 B 그룹에 포함된다. 그리고 제 3 페이지(3rd page or MSB page)는 C 그룹으로 분류될 수 있다.
제 1 페이지(1st page)를 프로그램하는 경우, 메모리 컨트롤러(110)는 제 1 페이지(1st page)에 대한 페이지 메타를 생성한다. 그리고 제 1 페이지(1st page) 및 그에 대응하는 페이지 메타에 대한 랜덤 연산을 실시한다. 랜덤화된 페이지 데이터(360)와 랜덤화된 페이지 메타(362)가 도시된 바와 같이 구성된다. 랜덤 연산을 통해서 생성되는 랜덤 시드(361)는 랜덤화된 페이지 메타(362)가 프로그램되는 스페어 영역에 도시된 바와 같이 위치하도록 설정된다. 즉, 제 1 페이지(1st page)의 랜덤 시드 위치는 스페어 영역에서 오프셋 0(Offset 0)의 위치에 기록된다.
제 2 페이지(2nd page)를 프로그램하는 경우, 메모리 컨트롤러(110)는 제 2 페이지(2nd page)에 대한 페이지 메타를 생성한다. 그리고 제 2 페이지(2nd page) 및 그에 대응하는 페이지 메타에 대한 랜덤 연산을 실시한다. 랜덤화된 페이지 데이터(370)와 랜덤화된 페이지 메타(372, 372′)가 도시된 바와 같이 구성된다. 그리고 랜덤 연산을 통해서 생성되는 랜덤 시드(371)는 스페어 영역에 도시된 바와 같이 위치하도록 설정된다. 즉, 제 2 페이지(2nd page)에 해당하는 랜덤 시드(371)의 위치는 스페어 영역에서 오프셋 L-bit(Offset L-bit)의 위치에 기록된다. 즉, 랜덤 시드(371)는 스페어 영역에서 랜덤 시드(361)보다 L-비트만큼 이동한 위치에 저장된다.
제 3 페이지(3rd page)를 프로그램하는 경우, 메모리 컨트롤러(110)는 제 3 페이지(3rd page)에 대한 페이지 메타를 생성한다. 그리고 제 3 페이지(3rd page) 및 그에 대응하는 페이지 메타에 대한 랜덤 연산을 실시한다. 랜덤화된 페이지 데이터(380)와 랜덤화된 페이지 메타(382′)가 도시된 바와 같이 구성된다. 그리고 랜덤 연산을 통해서 생성되는 랜덤 시드(381)는 스페어 영역에 도시된 바와 같이 위치하도록 설정된다. 즉, 제 3 페이지(3rd page)에 해당하는 랜덤 시드(381)의 위 치는 스페어 영역에서 오프셋 2L-bit(Offset 2L-bit)의 위치에 기록된다. 즉, 랜덤 시드(381)는 스페어 영역에서 랜덤 시드(361)보다 2L-비트 만큼 우측으로 이동한 위치에 저장된다.
여기서, 페이지 데이터의 속성을 3-비트 MLC의 페이지 어드레스를 참조하여 구분하는 것으로 설명되었으나 본 발명은 이에 국한되지 않는다. 즉, 프로그램되는 페이지 데이터의 중요도, 보안성, 데이터의 종류에 따라서 복수의 그룹으로 분류될 수 있다. 페이지 데이터에 대해, 그리고 페이지 데이터 및 페이지 메타가 램덤 연산에 의해서 처리됨에 따라 메인 영역 및 스페어 영역에서 특정 데이터로 편중되어 메모리 셀이 프로그램될 확률이 크게 감소될 수 있다. 또한, 상술한 랜덤 연산의 키값에 해당하는 랜덤 시드(Random seed)의 위치를 페이지 데이터의 속성에 따라 가변시킴으로써, 스페어 영역에 해당하는 메모리 셀들에 프로그램되는 데이터 전체에 대해서 랜덤성을 부여할 수 있다.
도 6a 및 도 6b는 메모리 컨트롤러(110, 도 2 참조)에 의한 본 발명의 데이터 관리 방법을 보여주는 순서도들이다. 도 6a는 쓰기 동작시의 제어 절차를, 도 6b는 읽기 동작시의 제어 절차를 보여준다.
도 6a를 참조하면, 메모리 컨트롤러(110)는 호스트(Host)로부터 프로그램되는 페이지 데이터(Page data) 및 그에 대응하는 페이지 어드레스(Page address)를 제공받는다. 호스트(Host)로부터의 명령어에 응답하여 메모리 컨트롤러(110)는 페이지 데이터 및 페이지 어드레스를 수신할 수도 있다(S110).
페이지 데이터를 제공받은 메모리 컨트롤러(110)는 페이지 데이터로부터 페 이지 메타를 생성하기 위한 제반 데이터 처리를 실시한다. 예를 들면, 메모리 컨트롤러(110)는 페이지 데이터로부터 에러를 검출하거나 검출된 에러를 정정하기 위한 패리티 비트들을 생성할 수 있다. 그리고, 메모리 컨트롤러(110)는 페이지 데이터의 특성을 정의하고 읽기 동작시 제어 데이터로 사용할 수 있는 제어 비트들을 생성할 수 있다. 에러 정정을 위해, 또는 기타의 제어를 위해서 생성되는 데이터를 페이지 메타라 칭한다. 메모리 컨트롤러(110)는 호스트(Host)로부터 제공되는 논리 어드레스(Logical address)를 불휘발성 메모리 장치의 물리적 어드레스(Physical address)로 전환하는 어드레스 맵핑 연산을 실시할 수 있다(S120).
이어서, 메모리 컨트롤러(110)는 페이지 데이터 및 페이지 데이터로부터 생성된 페이지 메타에 대한 랜덤 연산을 실시한다. 랜덤 연산에 따라, 페이지 데이터 및 페이지 메타의 배열은 랜덤하게 변경된다. 랜덤화된 페이지 데이터 및 페이지 메타에 대한 정렬 정보에 대응하는 랜덤 시드(Random seed)가 상술한 랜덤 연산의 결과로 도출된다(S130).
페이지 데이터, 페이지 메타 그리고 랜덤 시드(Random seed)에 대한 프로그램이 진행된다. 특히, 랜덤 시드(Random seed)의 스페어 영역에서의 저장 위치는 페이지 어드레스 또는 페이지 데이터의 속성에 따라서 결정된다. 예를 들면, 프로그램 데이터가 A 그룹에 포함되어 있는 경우, 랜덤 시드(Random seed)는 시드 오프셋이 0인 위치에 저장된다. 프로그램 데이터가 B 그룹에 포함되어 있는 경우, 랜덤 시드(Random seed)는 시드 오프셋이 L-비트인 위치에 저장된다. 프로그램 데이터가 C 그룹에 포함되어 있는 경우, 랜덤 시드(Random seed)는 시드 오프셋이 2L-비트인 위치에 저장될 수 있다(S140).
이상의 프로그램 절차에 따라서, 하나의 페이지 데이터 및 그에 대응하는 페이지 메타와 그에 대응하는 랜덤 시드(Random seed) 값이 랜덤화될 수 있다.
도 6b는 도 6a에 도시된 절차에 따라 프로그램된 데이터에 대한 읽기 방법을 간략히 보여준다. 먼저, 호스트(Host)로부터 읽기 명령이 제공되면, 메모리 컨트롤러(110)는 페이지 어드레스를 참조하여 랜덤 시드의 위치를 검출한다. 즉, 메모리 컨트롤러(110)는 읽기 명령에 응답하여 랜덤 시드의 오프셋을 검출한다(S210).
메모리 컨트롤러(110) 검출된 오프셋을 참조하여 불휘발성 메모리 장치(120)로부터 랜덤 시드의 값을 독출한다(S220). 그리고 메모리 컨트롤러(110)는 랜덤화되어 프로그램된 페이지 데이터 및 페이지 메타를 독출한다(S230). 메모리 컨트롤러(110)는 랜덤 시드의 값을 이용하여 독출된 페이지 데이터 및 페이지 메타를 랜덤 연산 이전의 데이터 배열로 복구한다(S240).
이상에서 설명된 순서도들(도 6a, 도 6b)에 따르면, 하나의 워드 라인을 공유하는 메모리 셀들에 프로그램되는 멀티 비트 데이터는 페이지 메타와 랜덤 시드까지 랜덤화된다. 따라서, 특정 스테이트에 대응하는 데이터가 특정 메모리 셀로 반복되어 프로그램되는 불균일한 프로그램 조건이 완화될 수 있다.
도 7a 및 도 7b는 본 발명의 다른 실시예들을 간략히 보여주는 도면들이다. 도 7a는 페이지 메타에 대한 랜덤 연산은 수행된 않고, 단지 랜덤 시드의 프로그램 위치만 랜덤화시키기 위한 예를 보여준다. 페이지 데이터(410)로부터 페이지 메타(420)가 생성되는 (a)와 (b)의 절차는 도 4와 동일하다. 그러나, 랜덤 연산은 페 이지 데이터에 대해서만 실행된다. 따라서, 페이지 메타(Page meta)에 대해서는 랜덤 연산이 수행되지 않는다. (c)와 (d)에서 도시된 바와 같이 페이지 데이터(430)에 대한 랜덤 연산만 실행되며, 랜덤 시드(450)는 페이지 메타(420)와는 무관하다.
(e)에서는 랜덤 연산을 적용하지 않은 페이지 메타들 중에 랜덤 시드(450)가 랜덤화된 위치에 삽입되도록 프로그램 동작이 진행된다. 즉, 랜덤 시드(450)의 스페어 영역(Spare area)으로의 기입 절차가 도시되어 있다. 랜덤 시드(450)는 스페어 영역에 기입되는 위치를 페이지 데이터의 어드레스나 속성을 참조하여 가변할 수 있다. 예를 들면, 랜덤 시드(450)는 페이지 데이터가 속하는 그룹(A, B, C)이나 속성에 따라서 스페어 영역에 랜덤한 위치에 기입될 수 있다. 결국, 랜덤 시드(450)의 프로그램 위치의 가변을 통해서 랜덤 연산과 유사한 효과를 제공할 수 있다.
도 7b는 랜덤 연산이 페이지 메타의 생성 연산보다 먼저 실행되는 환경에서 프로그램되는 데이터에 랜덤 연산을 수행하기 위한 또 다른 실시예를 보여준다. 도 7b를 참조하면, (a)와 (b)에서 페이지 데이터(410)가 제공되면, 메모리 컨트롤러(110)는 페이지 메타의 생성 이전에 랜덤 연산을 수행하고, 그 결과로 랜덤화된 페이지 데이터(460) 및 랜덤 시드(470)를 획득한다. (c)에서는 랜덤화된 페이지 데이터(460)로부터 페이지 메타(480)가 생성되는 과정이 도시되어 있다. 그리고 (d)에서는 페이지 메타(480)가 기록되는 스페어 영역에 랜덤 시드(470)가 랜덤한 어느 하나의 위치에 프로그램되는 절차가 도시되어 있다. 즉, 랜덤 시드(470)의 스페어 영역(Spare area)으로의 기입 절차가 도시되어 있다. 랜덤 시드(470)는 스페어 영 역에 기입되는 위치를 페이지 데이터의 어드레스나 속성을 참조하여 가변할 수 있다. 예를 들면, 랜덤 시드(470)는 페이지 데이터가 속하는 그룹(A, B, C)이나 속성에 따라서 스페어 영역에 랜덤한 위치에 기입될 수 있다. 결국, 랜덤 시드(470)의 프로그램 위치의 가변을 통해서 랜덤 연산과 유사한 효과를 제공할 수 있다.
이상의 도 7a 및 도 7b에서는 페이지 메타(Page meta)의 랜덤화 여부 및 랜덤 연산이 데이터 쓰기 연산 전체에서 실행되는 순서에 따라 변형될 수 있는 예들이 설명되었다. 그러나, 랜덤 시드의 랜덤 위치에 저장되는 본 발명의 특징이 상술한 실시예들에만 국한되지는 않으며 다양하게 변경될 수 있을 것이다.
도 8은 3-비트 MLC에서의 복수의 워드 라인들(WL0~WL43) 각각에 프로그램되는 복수의 페이지의 할당 예를 간략히 보여주는 표이다. 도 8을 참조하면, 워드 라인(WL5)에 대응하는 메모리 셀들에는 페이지 번호(또는, 페이지 어드레스)가 20, 21, 28, 29, 36, 37인 페이지 데이터가 프로그램된다. 페이지 번호(20, 21)를 갖는 페이지 데이터는 A 그룹, 페이지 번호(28, 29)를 갖는 페이지 데이터는 B 그룹 그리고 페이지 번호 (36, 37)을 갖는 페이지 데이터는 C 그룹으로 할당된다. A, B, C 그룹들 각각에 대응하는 페이지 데이터 및 페이지 메타에 대한 랜덤 시드는 스페어 영역에서 서로 다른 위치에 기록될 것이다.
도 9는 본 발명에 따른 메모리 시스템(500)을 간략히 보여주는 블록도이다. 도 9를 참조하면, 본 발명에 따른 메모리 시스템(500)은 불휘발성 메모리 장치(520)와 메모리 컨트롤러(510)를 포함한다.
불휘발성 메모리 장치(520)는 앞서 설명된 도 3에 도시된 플래시 메모리 장 치로 구성될 수 있다. 메모리 컨트롤러(510)는 불휘발성 메모리 장치(520)를 제어하도록 구성될 것이다. 불휘발성 메모리 장치(520)와 메모리 컨트롤러(510)의 결합에 의해 메모리 카드 또는 반도체 디스크 장치(Solid State Disk: SSD)로 제공될 수 있을 것이다. SRAM(511)은 프로세싱 유닛(512)의 동작 메모리로써 사용된다.
호스트 인터페이스(513)는 메모리 시스템(500)과 접속되는 호스트의 데이터 교환 프로토콜을 구비한다. 에러 정정 블록(514)은 불휘발성 메모리 장치(520)로부터 독출된 데이터에 포함되는 에러를 검출 및 정정한다. 에러 정정 블록(514)에 의해서도 페이지 메타가 생성된다. 메모리 인터페이스(515)는 본 발명의 불휘발성 메모리 장치(520)와 인터페이싱 한다. 프로세싱 유닛(512)은 메모리 컨트롤러(510)의 데이터 교환을 위한 제반 제어 동작을 수행한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(500)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 불휘발성 메모리 장치(520)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다.
랜덤 연산시 프로세싱 유닛(512)은 페이지 데이터와 페이지 메타에 대한 랜덤 처리를 실행하고, 그 키값으로 랜덤 시드를 생성한다. 또한, 읽기 동작 시에는 독출된 랜덤 시드를 사용하여 랜덤화된 페이지 데이터 및 페이지 메타의 배열을 프로그램 이전과 같게 복구한다. 메모리 컨트롤러(510)는 랜덤 연산을 수행하는 구성으로 랜더마이저/디랜더마이저(Randomizer/Derandomizer)와 같은 하드웨어를 포함할 수 있다. 또는 랜덤 연산을 전적으로 수행할 수 있는 펌웨어가 메모리 컨트롤 러(510)에 포함될 수도 있을 것이다.
이상의 본 발명의 메모리 시스템(500)은 데이터 배열의 불균일로 인하여 발생하는 문제를 해결할 수 있다. 따라서, 메모리 시스템(500)은 불휘발성 메모리 장치(520)의 수명을 연장할 수 있으며 에러의 발생 확률이 낮은 고신뢰성의 저장 매체로 제공될 수 있다. 특히, 최근 활발히 연구되고 있는 반도체 디스크 장치(Solid State Disk: 이하 SSD)와 같은 메모리 시스템에서 본 발명의 플래시 메모리 장치가 구비될 수 있다. 이 경우, 메모리 컨트롤러(410)는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다.
도 10은 앞서 설명된 다양한 실시예들에 따라 프로그램 동작을 수행하는 퓨전 메모리 장치 또는 퓨전 메모리 시스템(600)을 간략히 보여주는 블록도이다. 예를 들면, 퓨전 메모리 장치로서 원낸드 플래시 메모리 장치(600)에 본 발명의 기술적 특징이 적용될 수 있다.
원낸드 플래시 메모리 장치(600)는 서로 다른 프로토콜을 사용하는 장치와의 각종 정보 교환을 위한 호스트 인터페이스(610)와, 메모리 장치를 구동하기 위한 코드를 내장하거나 데이터를 일시적으로 저장하는 버퍼 램(620)과, 외부에서 주어지는 제어 신호와 명령어에 응답하여 읽기와 프로그램 및 모든 상태를 제어하는 제어부(630)와, 명령어와 어드레스, 메모리 장치 내부의 시스템 동작 환경을 정의하는 설정(Configuration) 등의 데이터가 저장되는 레지스터(640) 및 불휘발성 메모리 셀과 페이지 버퍼로 구성된 낸드 플래시 셀 어레이(650)를 포함한다. 호스트로 부터의 쓰기 요청에 응답하여 원낸드 플래시 메모리 장치(600)는 페이지 데이터 및 페이지 메타에 대한 랜덤 연산을 수행한다. 그리고, 랜덤 연산의 키값인 랜덤 시드의 저장 위치를 랜덤하게 설정하여 선택된 페이지의 메모리 셀들 중 특정 데이터로 편중되어 프로그램되는 현상을 차단할 수 있다.
도 11에는 본 발명에 따른 플래시 메모리 장치(712)를 포함한 컴퓨팅 시스템(700)이 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템(700)은 시스템 버스(760)에 전기적으로 연결된 마이크로프로세서(720), 램(730), 사용자 인터페이스(740), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(750) 및 메모리 시스템(710)을 포함한다. 메모리 시스템(710)은 도 9 또는 도 10에 도시된 것과 실질적으로 동일하게 구성될 것이다. 본 발명에 따른 컴퓨팅 시스템(700)이 모바일 장치인 경우, 컴퓨팅 시스템(700)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(700)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 시스템(710)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 시스템(710)은, 퓨전 플래시 메모리(예를 들면, 원낸드 플래시 메모리)로 제공될 수 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 멀티-비트 플래시 메모리 장치의 문턱 전압 분포를 보여주는 도면;
도 2는 본 발명의 메모리 시스템을 보여주는 블록도;
도 3은 본 발명의 불휘발성 메모리 장치를 보여주는 블록도;
도 4는 본 발명에 따른 랜덤 연산 방법의 제 1 실시예를 보여주는 도면;
도 5는 도 4의 처리에 따라 설정되는 랜덤 시드의 위치를 보여주는 도면;
도 6a는 본 발명의 프로그램 방법을 보여주는 순서도;
도 6b는 본 발명의 읽기 방법을 보여주는 순서도;
도 7a는 본 발명의 다른 실시예를 보여주는 도면;
도 7b는 본 발명의 또 다른 실시예를 보여주는 도면;
도 8은 본 발명의 페이지 분류의 예시를 보여주는 표;
도 9는 본 발명의 데이터 처리 방법에 따라 데이터를 저장하거나 독출하는 메모리 시스템을 보여주는 블록도;
도 10은 본 발명의 데이터 처리 방법에 따라 데이터를 저장하거나 독출하는 원낸드 플래시 메모리 장치를 보여주는 블록도; 및
도 11은 본 발명의 데이터 처리 방법에 따라 동작하는 메모리 카드를 포함하는 컴퓨팅 시스템을 보여주는 블록도.
*도면의 주요 부분에 대한 부호의 설명*
110 : 메모리 컨트롤러 120 : 불휘발성 메모리 장치
210 : 셀 어레이 220 : 행 디코더
230 : 페이지 버퍼 240 : 입출력 버퍼
250 : 제어 로직 260 : 전압 발생기
510 : 메모리 컨트롤러 511 : 에스램
512 : 중앙처리장치 513 : 호스트 인터페이스
514 : 에러정정코드 515 : 메모리 인터페이스
520 : 불휘발성 메모리 장치 610 : 호스트 인터페이스
620 : 버퍼램 630 : 컨트롤러
640 : 레지스터 650 : 낸드 셀 어레이
710 : 메모리 카드 711 : 메모리 컨트롤러
712 : 플래시 메모리 장치 720 : 프로세싱 유닛
730 : 램 740 : 유저 인터페이스
750 : 모뎀 760 : 시스템 버스

Claims (10)

  1. 불휘발성 메모리의 데이터 처리 방법에 있어서:
    프로그램될 페이지 데이터 및 상기 페이지 데이터에 대응하는 페이지 메타에 대한 랜덤 연산을 수행하고 랜덤 시드를 생성하는 단계; 그리고
    상기 랜덤 연산에 따라 랜덤화된 페이지 데이터와 상기 페이지 메타 및 상기 랜덤 시드를 상기 불휘발성 메모리에 프로그램하는 단계를 포함하되,
    상기 랜덤 시드는 상기 페이지 데이터의 속성에 따라 프로그램되는 위치가 가변되는 것을 특징으로 하는 데이터 처리 방법.
  2. 제 1 항에 있어서,
    상기 랜덤화된 페이지 메타 및 상기 랜덤 시드는 상기 불휘발성 메모리의 스페어 영역에 저장되는 것을 특징으로 하는 데이터 처리 방법.
  3. 제 2 항에 있어서,
    상기 랜덤 시드는 상기 페이지 데이터에 대응하는 페이지 어드레스에 따라 상기 스페어 영역에서의 프로그램 위치가 결정되는 데이터 처리 방법.
  4. 제 1 항에 있어서,
    상기 불휘발성 메모리는 멀티 레벨 셀이며, 상기 페이지 데이터는 상기 불휘 발성 메모리의 동일 워드 라인에 연결되는 복수의 메모리 셀들에 프로그램되는 데이터인 것을 특징으로 하는 데이터 처리 방법.
  5. 제 4 항에 있어서,
    상기 페이지 메타 및 상기 랜덤 시드는 상기 복수의 메모리 셀들의 스페어 영역에 프로그램되며, 상기 랜덤 시드는 상기 페이지 데이터의 페이지 어드레스에 따라 상기 스페어 영역의 서로 다른 위치에 기입되는 데이터 처리 방법.
  6. 제 1 항에 있어서,
    상기 페이지 메타 및 상기 랜덤 시드를 상기 불휘발성 메모리에 프로그램하는 단계 후에,
    페이지 어드레스를 참조하여 상기 랜덤 시드의 위치를 검출하는 단계;
    상기 검출된 랜덤 시드의 위치를 참조하여 상기 불휘발성 메모리로부터 상기 랜덤 시드를 독출하는 단계; 및
    상기 불휘발성 메모리로부터 상기 랜덤화된 페이지 데이터 및 페이지 메타를 독출하고, 독출된 상기 랜덤 시드를 참조하여 랜덤화된 페이지 데이터 및 페이지 메타의 배열을 복구하는 단계를 더 포함하는 데이터 처리 방법.
  7. 제 1 항에 있어서,
    상기 랜덤 시드를 생성하기 이전에, 상기 프로그램될 페이지 데이터로부터 페이지 메타를 생성하는 단계를 더 포함하는 데이터 처리 방법.
  8. 제 1 항에 있어서,
    상기 랜덤 시드의 프로그램되는 위치는 상기 페이지 데이터의 속성에 따라서 결정되는 오프셋의 크기에 따라 결정되는 데이터 처리 방법.
  9. 불휘발성 메모리 장치; 및
    상기 불휘발성 메모리 장치에 프로그램될 페이지 데이터와 상기 페이지 데이터에 대응하는 페이지 메타에 대한 랜덤 연산을 수행하여 랜덤 시드를 생성하고, 상기 랜덤 연산에 따라 랜덤화된 페이지 데이터와 상기 페이지 메타 및 상기 랜덤 시드를 상기 불휘발성 메모리 장치가 프로그램하도록 제어하는 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러는 상기 랜덤 시드의 프로그램되는 위치를 상기 페이지 데이터의 어드레스에 따라 가변적으로 제공하는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 어드레스는 상기 불휘발성 메모리 장치의 동일 워드 라인에 연결되는 메모리 셀들에 대응하는 복수의 페이지 어드레스들인 것은 특징으로 하는 메모리 시스템.
KR1020090015346A 2009-02-24 2009-02-24 메모리 시스템 및 그것의 데이터 처리 방법 KR101563647B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090015346A KR101563647B1 (ko) 2009-02-24 2009-02-24 메모리 시스템 및 그것의 데이터 처리 방법
US12/656,131 US8255643B2 (en) 2009-02-24 2010-01-19 Memory system and data processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090015346A KR101563647B1 (ko) 2009-02-24 2009-02-24 메모리 시스템 및 그것의 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20100096457A KR20100096457A (ko) 2010-09-02
KR101563647B1 true KR101563647B1 (ko) 2015-10-28

Family

ID=42631897

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090015346A KR101563647B1 (ko) 2009-02-24 2009-02-24 메모리 시스템 및 그것의 데이터 처리 방법

Country Status (2)

Country Link
US (1) US8255643B2 (ko)
KR (1) KR101563647B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013180B1 (en) 2016-12-29 2018-07-03 SK Hynix Inc. Operating methods of nonvolatile memory device and data storage device including the same

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101504338B1 (ko) 2009-03-04 2015-03-23 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
KR101572830B1 (ko) * 2009-06-22 2015-11-30 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법, 비휘발성 메모리 장치 및 비휘발성 메모리 시스템
US9063886B2 (en) * 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
JP2013530448A (ja) * 2010-05-05 2013-07-25 マーベル ワールド トレード リミテッド キャッシュストレージアダプタアーキテクチャ
TWI455136B (zh) * 2010-07-01 2014-10-01 Silicon Motion Inc 用來進行資料整形之方法以及相關之記憶裝置及其控制器
KR20120005826A (ko) * 2010-07-09 2012-01-17 주식회사 하이닉스반도체 반도체 메모리 장치 및 이의 동작 방법
TWI441181B (zh) * 2010-09-09 2014-06-11 Silicon Motion Inc 用來進行資料整形之方法以及其記憶裝置及控制器
CN102455948B (zh) * 2010-10-15 2014-09-10 慧荣科技股份有限公司 用来进行数据整形的方法以及相关的记忆装置及其控制器
US8954647B2 (en) * 2011-01-28 2015-02-10 Apple Inc. Systems and methods for redundantly storing metadata for non-volatile memory
KR101686980B1 (ko) * 2011-03-02 2016-12-16 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리 내의 데이터 저장 방법
CN102682848B (zh) * 2011-03-16 2016-12-07 三星电子株式会社 存储器装置、存储器卡、固态驱动器、系统及其操作方法
KR101893143B1 (ko) * 2011-03-16 2018-08-31 삼성전자주식회사 비휘발성 메모리 장치, 그것의 프로그램 방법 및 읽기 방법, 및 그것을 포함하는 메모리 시스템
JP2012226822A (ja) * 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
KR101818445B1 (ko) * 2011-07-08 2018-01-16 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들
US20130124778A1 (en) * 2011-11-10 2013-05-16 Greenliant Llc Method of storing host data and meta data in a nand memory, a memory controller and a memory system
KR101811298B1 (ko) * 2011-12-28 2017-12-27 삼성전자주식회사 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러
CN102882678B (zh) * 2012-07-02 2014-10-29 飞天诚信科技股份有限公司 一种非接触式烧写种子的方法及系统
KR20140088421A (ko) * 2013-01-02 2014-07-10 삼성전자주식회사 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리로부터 데이터를 읽는 읽기 방법
KR101997623B1 (ko) * 2013-02-26 2019-07-09 삼성전자주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
KR102112115B1 (ko) * 2013-04-17 2020-05-18 삼성전자주식회사 반도체 메모리 장치 및 그것의 데이터 프로그램 방법
KR102133542B1 (ko) * 2013-12-03 2020-07-14 에스케이하이닉스 주식회사 랜더마이저 및 디랜더마이저를 포함하는 메모리 시스템
KR20160127525A (ko) * 2015-04-27 2016-11-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9747982B1 (en) * 2016-02-22 2017-08-29 Arm Ltd. Device and method for generating random numbers
CN111679787B (zh) * 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US11256617B2 (en) 2020-04-01 2022-02-22 Micron Technology, Inc. Metadata aware copyback for memory devices
US11327884B2 (en) 2020-04-01 2022-05-10 Micron Technology, Inc. Self-seeded randomizer for data randomization in flash memory
US11269746B1 (en) * 2021-01-22 2022-03-08 EMC IP Holding Company LLC Recovery of page description blocks based on context

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008158908A (ja) 2006-12-25 2008-07-10 Tdk Corp メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP2008287803A (ja) 2007-05-17 2008-11-27 Elpida Memory Inc 半導体記憶装置、半導体記憶装置の制御装置、および半導体記憶装置のアドレス制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005179A (ja) 2002-05-31 2004-01-08 Denso Corp Eepromのデータ記憶方法
JP2008117003A (ja) 2006-10-31 2008-05-22 Toshiba Microelectronics Corp 不揮発性半導体記憶装置およびその制御方法
US8296337B2 (en) * 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
JP4498370B2 (ja) 2007-02-14 2010-07-07 株式会社東芝 データ書き込み方法
JP5028577B2 (ja) * 2007-02-19 2012-09-19 株式会社メガチップス メモリ制御方法およびメモリシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008158908A (ja) 2006-12-25 2008-07-10 Tdk Corp メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP2008287803A (ja) 2007-05-17 2008-11-27 Elpida Memory Inc 半導体記憶装置、半導体記憶装置の制御装置、および半導体記憶装置のアドレス制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013180B1 (en) 2016-12-29 2018-07-03 SK Hynix Inc. Operating methods of nonvolatile memory device and data storage device including the same

Also Published As

Publication number Publication date
US20100217921A1 (en) 2010-08-26
KR20100096457A (ko) 2010-09-02
US8255643B2 (en) 2012-08-28

Similar Documents

Publication Publication Date Title
KR101563647B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US10521353B2 (en) Data storage device and operating method thereof
US8582360B2 (en) Read method for nonvolatile memory device, and data storage system using the same
US9262266B2 (en) Nonvolatile memory devices with age-based variability of read operations and methods of operating same
KR102005888B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
KR102025193B1 (ko) 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
US9032245B2 (en) RAID data management method of improving data reliability and RAID data storage device
US20080172520A1 (en) Nonvolatile memory devices including multiple user-selectable program modes and related methods of operation
US9177660B2 (en) Method of operating memory device
US8503231B2 (en) Multi-level cell flash memory device and read method
US8607120B2 (en) Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same
US20080172521A1 (en) Memory System Determining Storage Mode According to Host Provided Data Information
JP2011165301A (ja) フラッシュメモリ装置及びその読み出し方法
KR20140044640A (ko) 메모리 시스템 및 그것의 읽기 교정 방법
JP2012195047A (ja) ページフラッグを有する不揮発性メモリ装置、それを含む駆動方法、及びメモリシステム
US9520184B2 (en) Method for writing in-system programming code into flash memory for better noise margin
KR20120076787A (ko) 비휘발성 메모리 장치의 프로그램 방법
US9053790B1 (en) Counter for write operations at a data storage device
KR20100055906A (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
US10902924B2 (en) Memory system varying pass voltage based on erase count of target memory block and operating method thereof
KR20130052811A (ko) 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20100133707A (ko) 비휘발성 메모리 장치 및 그것의 최상위 비트 프로그램 상태 판별 방법
US20130318419A1 (en) Flash memory system including read counter logic
CN115527596A (zh) 用于在非易失性存储器装置中编程数据的设备及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 5