KR102200108B1 - 비휘발성 메모리 장치 및 그 동작 방법 - Google Patents

비휘발성 메모리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102200108B1
KR102200108B1 KR1020140136776A KR20140136776A KR102200108B1 KR 102200108 B1 KR102200108 B1 KR 102200108B1 KR 1020140136776 A KR1020140136776 A KR 1020140136776A KR 20140136776 A KR20140136776 A KR 20140136776A KR 102200108 B1 KR102200108 B1 KR 102200108B1
Authority
KR
South Korea
Prior art keywords
seed
data
reference value
seeds
randomly
Prior art date
Application number
KR1020140136776A
Other languages
English (en)
Other versions
KR20160042623A (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 KR1020140136776A priority Critical patent/KR102200108B1/ko
Priority to US14/722,751 priority patent/US9268531B1/en
Publication of KR20160042623A publication Critical patent/KR20160042623A/ko
Application granted granted Critical
Publication of KR102200108B1 publication Critical patent/KR102200108B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 메모리 장치 및 그 동작 방법이 제공된다. 비휘발성 메모리 장치는 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하는 데이터 생성 유닛; 상기 기준 값을 이용하여 복수의 시드(seed)들 중에서 하나 이상의 시드를 선정하는 시드 선정 유닛; 및 상기 선정된 시드를 이용하여 상기 데이터를 랜덤화(randomize)한 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함한다.

Description

비휘발성 메모리 장치 및 그 동작 방법{NON-VOLATILE MEMORY DEVICE AND METHOD FOR OPERATING THE SAME}
본 발명은 비휘발성 메모리 장치 및 그 동작 방법에 관한 것이다.
반도체 메모리 장치는 실리콘(Si), 게르마늄(Ge), 비화 갈륨(GaAs), 인화인듐(InP) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등을 포함한다. 비휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 비휘발성 메모리 장치는 플래시 메모리 장치, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 저항성 메모리 장치(예를 들어, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), RRAM(Resistive RAM)) 등을 포함한다.
미국 특허 제8595422호는 메모리 디바이스 및 메모리 디바이스에 데이터를 저장하는 방법을 개시하고 있다.
본 발명이 해결하려는 과제는 데이터의 랜덤성을 증가시키기 위해 시드의 랜덤성을 증가시킬 수 있는 비휘발성 메모리 장치를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는 데이터의 랜덤성을 증가시키기 위해 시드의 랜덤성을 증가시킬 수 있는 비휘발성 메모리 장치의 동작 방법을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 비휘발성 메모리 장치는, 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하는 데이터 생성 유닛; 기준 값을 이용하여 복수의 시드(seed)들 중에서 하나 이상의 시드를 선정하는 시드 선정 유닛; 및 선정된 시드를 이용하여 데이터를 랜덤화(randomize)한 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함한다.
상기 데이터 생성 유닛은 상기 프로그램 요청이 있을 때마다 상기 기준 값을 재생성하고, 상기 시드 선정 유닛은 상기 재생성된 기준 값을 이용하여 상기 시드를 재선정할 수 있다.
상기 랜더마이저는 상기 프로그램 요청이 있을 때마다 상기 재선정된 시드를 이용하여 상기 데이터를 랜덤화할 수 있다.
상기 데이터 생성 유닛은 타이머, TRNG(True Random Number Generator), 카운터 및 시프트 레지스터(shift register) 중 적어도 하나를 포함할 수 있다.
상기 복수의 시드들은 복수의 시드 테이블에 저장되어 있고, 상기 시드 선정 유닛은 상기 복수의 시드 테이블 중 상기 기준 값에 대응되는 시드 테이블을 선정한 후, 상기 선정된 시드 테이블에 저장된 시드를 선정할 수 있다.
상기 복수의 시드 테이블은, 각각의 시드 테이블을 식별하기 위한 테이블 인덱스 값을 각각 포함하고, 상기 기준 값은 상기 테이블 인덱스 값 중 어느 하나에 대응될 수 있다.
상기 복수의 시드들은 복수의 다항식으로부터 각각 연산되고, 상기 시드 선정 유닛은 상기 복수의 다항식 중 상기 기준 값에 대응되는 다항식을 선정하고, 상기 선정된 다항식을 이용하여 시드를 연산할 수 있다.
상기 복수의 시드들은 복수의 시프트 레지스터(shift register)에 의해 연산되고, 상기 시드 선정 유닛은 상기 복수의 시프트 레지스터 중 상기 기준 값에 대응되는 시프트 레지스터를 선정하고, 상기 선정된 시프트 레지스터를 이용하여 시드를 연산할 수 있다.
상기 선정된 시프트 레지스터는 제1 출력탭 및 제2 출력탭을 포함하고, 상기 시드 선정 유닛은 상기 선정된 시프트 레지스터의 상기 제1 출력탭의 출력 값과 상기 제2 출력탭의 출력 값을 조합하여 시드를 연산할 수 있다.
상기 랜덤화된 데이터는 상기 기준 값 또는 상기 기준 값에 대응되는 값과 함께 상기 메모리 셀에 프로그램될 수 있다.
상기 메모리 셀에 프로그램된 상기 랜덤화된 데이터는 상기 메모리 셀에 프로그램된 상기 기준 값 또는 상기 기준 값에 대응되는 값을 이용하여 디랜덤화(derandomize)될 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치는, 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하는 데이터 생성 유닛; 기준 값을 이용하여 둘 이상의 시드(seed)를 생성하는 시드 생성 유닛; 및 둘 이상의 시드를 이용하여 데이터를 랜덤화(randomize)한 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함한다.
상기 시드 생성 유닛은, 상기 기준 값을 이용하여 복수의 시드 후보들을 포함하는 시드 후보군을 생성하는 시드 후보 생성기와, 상기 시드 후보 생성기에 의해 생성된 상기 시드 후보군에서 미리 정해진 규칙을 만족하는 둘 이상의 시드를 선정하는 시드 선정기를 포함할 수 있다.
상기 데이터 생성 유닛은 타이머, TRNG(True Random Number Generator), 카운터 및 시프트 레지스터(shift register) 중 적어도 하나로부터 획득한 값을 이용하여 상기 기준 값을 생성할 수 있다.
상기 데이터 생성 유닛은 상기 프로그램 요청이 있을 때마다 상기 기준 값을 재생성하고, 상기 시드 생성 유닛은 상기 재생성된 기준 값을 이용하여 상기 시드를 재생성할 수 있다.
상기 랜덤화된 데이터는 상기 둘 이상의 시드와 함께 상기 메모리 셀에 프로그램될 수 있다.
상기 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치는, 복수의 메모리 셀을 포함하는 메모리 블록; 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청이 있을 때마다 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 반복하여 생성하는 데이터 생성 유닛; 및 미리 저장된 시드들 중 기준 값에 대응되는 시드를 선정하여, 프로그램 요청이 있을 때마다 데이터를 랜덤화(randomizer)하여 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함한다.
상기 데이터 생성 유닛은 상기 프로그램 요청이 있을 때마다 상기 기준 값을 다른 값으로 생성할 수 있다.
상기 데이터 생성 유닛은 타이머, TRNG(True Random Number Generator), 카운터 및 시프트 레지스터(shift register) 중 적어도 하나로부터 획득한 값을 이용하여 상기 기준 값을 생성할 수 있다.
상기 비휘발성 메모리 장치는 상기 비휘발성 메모리 장치의 외부에 배치된 휘발성 메모리와 전기적으로 연결되고, 상기 카운터의 초기 값은 상기 휘발성 메모리 장치의 파워 온(power-on)시 상기 휘발성 메모리 장치에 저장되어 있는 초기 값을 이용하여 설정될 수 있다.
상기 미리 저장된 시드들은 상기 비휘발성 메모리 장치와 전기적으로 연결된 ROM(Read Only Memory)에 저장되어 있을 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 동작 방법은, 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하고, 기준 값을 이용하여 복수의 시드(seed)들 중에서 하나 이상의 시드를 선정하고, 선정된 시드를 이용하여 데이터를 랜덤화하고, 랜덤화된 데이터를 메모리 셀에 프로그램하는 것을 포함한다.
상기 기준 값을 이용하여 복수의 시드들 중에서 하나 이상의 시드를 선정하는 것은, 미리 저장된 시드 값들 중 상기 기준 값에 대응되는 시드를 선정하는 것을 포함할 수 있다.
상기 기준 값을 이용하여 복수의 시드들 중에서 하나 이상의 시드를 선정하는 것은, 상기 프로그램 요청에 따라 상기 기준 값을 이용하여 복수의 시드 후보를 생성하고, 상기 생성된 복수의 시드 후보 중 미리 정해진 제약 조건을 만족하는 둘 이상의 시드를 선정하는 것을 포함할 수 있다.
상기 랜덤화된 데이터를 상기 메모리 셀에 프로그램하는 것은, 상기 랜덤화된 데이터와 함께 상기 기준 값 또는 상기 선정된 시드를 상기 메모리 셀에 프로그램하는 것을 더 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치를 설명하기 위한 블록도이다.
도 2는 비휘발성 메모리 장치의 데이터 생성 유닛의 일 실시예를 설명하기 위한 블록도이다.
도 3은 비휘발성 메모리 장치의 데이터 생성 유닛의 다른 실시예를 설명하기 위한 블록도이다.
도 4는 비휘발성 메모리 장치의 데이터 생성 유닛의 또 다른 실시예를 설명하기 위한 블록도이다.
도 5는 도 4에 도시된 카운터의 다른 실시예를 설명하기 위한 블록도이다.
도 6은 비휘발성 메모리 장치가 시드를 선정하는 일 실시예를 설명하기 위한 블록도이다.
도 7은 도 6의 실시예에 사용되는 시드 테이블을 설명하기 위한 도면이다.
도 8은 비휘발성 메모리 장치가 시드를 선정하는 다른 실시예를 설명하기 위한 블록도이다.
도 9는 비휘발성 메모리 장치가 시드를 선정하는 또 다른 실시예를 설명하기 위한 블록도이다.
도 10은 비휘발성 메모리 장치가 시드를 선정하는 또 다른 실시예를 설명하기 위한 블록도이다.
도 11은 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치를 설명하기 위한 블록도이다.
도 12는 비휘발성 메모리 장치의 시드 생성 유닛의 일 실시예를 설명하기 위한 블록도이다.
도 13은 비휘발성 메모리 장치가 시드를 선정하는 일 실시예를 설명하기 위한 개략도이다.
도 14는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 15는 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 16은 도 1을 참조하여 설명된 메모리 블록의 등가 회로를 설명하기 위한 회로도이다.
도 17은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 사용자 장치를 설명하기 위한 블록도이다.
도 18은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 메모리 시스템의 응용예를 설명하기 위한 블록도이다.
도 19는 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 데이터 저장 장치를 설명하기 위한 블록도이다.
도 20은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치(1)는 컨트롤러(100) 및 메모리 셀(200)을 포함한다.
비휘발성 메모리 장치(1)는 컨트롤러(100)의 제어에 따라 메모리 셀(200)에 대해 라이트(write), 리드(read), 이레이즈(erase) 동작 등을 수행할 수 있다. 비휘발성 메모리 장치(1)는 플래시 메모리(Flash Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), FRAM(Ferroelectrics Random Access Memory), PRAM(Phase change Random Access Memory), MRAM(Magneto resistive Random Access Memory) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 몇몇의 실시예에서, 비휘발성 메모리 장치(1)는 낸드(NAND) 플래시 메모리 장치일 수 있다. 이 경우, 비휘발성 메모리 장치는 복수개의 플래인(PL1~PLn)(단, n은 자연수)을 포함할 수 있다. 각각의 플래인(PL1~PLn)은 복수개의 블록(BLK1~BLKm)(단, m은 자연수)을 포함하며, 각각의 블록(BLK1~BLKm)은 복수개의 워드라인(WL1~WLk)(단, k는 자연수)을 포함한다. 여기서 블록(BLK1~BLKm)은 이레이즈 명령을 수행하는 단위, 즉 이레이즈 동작이 동시에 이루어지는 단위일 수 있다. 워드라인은 프로그램 및 리드 명령을 수행하는 단위, 즉, 프로그램 및 리드 동작이 동시에 이루어지는 단위일 수 있다. 한편, 복수개의 블록들(BLK1~BLKm)은 기판으로부터 수직 방향으로 메모리 셀들이 적층된 3차원 구조를 포함할 수 있다.
본 발명의 일 실시예에 따른 비휘발성 메모리 장치(1)에서 컨트롤러(100)는 데이터 생성 유닛(110), 시드 선정 유닛(120) 및 랜더마이저(randomizer)(130)를 포함한다.
데이터 생성 유닛(110)은 데이터(DATA_U)를 메모리 셀(200)에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)(RV)을 생성한다. 여기서 기준 값(RV)은 후술할 랜더마이저(130)가 데이터를 랜덤화하기 위해 사용되는 시드(seed)(SD)를, 미리 생성되어 있는 복수의 시드들 중에서 선정하기 위한 값을 의미한다. 본 발명의 몇몇의 실시예에서, 데이터 생성 유닛(110)은 프로그램 요청이 있을 때마다 랜덤성을 갖는 기준 값(RV)을 재생성할 수 있으며, 재생성된 기준 값(RV)은 이전에 생성된 기준 값(RV)과 다른 값일 수 있다. 데이터 생성 유닛(110)이 기준 값(RV)을 랜덤하게 또는 의사 랜덤하게 생성하기 위한 구체적인 실시예들에 대해서는 도 2 내지 도 5와 관련하여 후술하도록 한다.
데이터(DATA_U)를 랜덤화한다는 것은, 예컨대 인접한 메모리 셀들이 연속적으로 프로그램되는 것을 방지하기 위해, 뚜렷한 경향성을 갖는 데이터를 경향성을 갖지 않거나 현저히 낮은 경향성만을 갖도록 변환하는 것을 의미한다. 메모리 셀(200)에 랜덤화된 데이터(DATA_R)를 프로그램함으로써 인접한 메모리 셀들 사이에서 발생할 수 있는 문제들을 극복할 수 있다. 일례로 CTF(Charge Trap Flash)형 메모리의 경우, 이레이즈 동작이 인접한 셀에 연속적으로 행해지는 경우, 프로그램 상태(program state)의 전하 확산(charge spreading) 현상이 가속화되는, 이른바 딥 이레이즈(deep erase) 현상이 발생할 수 있다. 메모리 셀(200)에 프로그램할 데이터에 랜덤성을 부여하게 되면 이러한 현상의 발생을 방지하거나 그 빈도를 낮출 수 있어, 비휘발성 메모리 장치(1)의 신뢰성을 향상시킬 수 있다. 특히 본 발명의 다양한 실시예에 따르면, 시간적으로 랜덤하게 변화하는 특정 값(즉, 기준 값)을 이용하여 시드(SD)를 선정하게 되므로, 시드(SD) 자체가 시간에 따라 랜덤성을 띠게 되고, 이에 따라 시드(SD)를 이용하는 랜더마이저(130)를 거친 데이터(DATA_R)의 랜덤성은 더욱 증가하게 된다.
시드 선정 유닛(120)은 데이터 생성 유닛(110)에서 생성된 기준 값(RV)을 이용하여 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정한다. 여기서 복수의 시드들은 미리 생성되어 비휘발성 메모리 장치(1)와 전기적으로 연결된 다른 메모리 공간(예컨대, ROM(Read Only Memory)) 또는 저장 공간에 기록되어 있을 수 있다. 데이터 생성 유닛(110)에서 생성된 기준 값(RV)은 복수의 시드들 중 일부와 대응 관계를 가질 수 있다. 구체적으로 예를 들면, 먼저 데이터 생성 유닛(110)이 제1 데이터의 프로그램 요청에 따라 제1 기준 값을 생성하고, 시드 선정 유닛(120)이 복수의 시드들 중에서 제1 기준 값에 대응되는 제1 시드를 선정한다. 이후 제2 데이터의 프로그램 요청이 발생하면 데이터 생성 유닛(110)은 제1 기준 값과 다른 제2 기준 값을 랜덤하게 또는 의사 랜덤하게 생성하고, 시드 선정 유닛(120)은 복수의 시드들 중에서 제2 기준 값에 대응되는 제2 시드를 선정한다. 본 발명의 몇몇의 실시예에서, 시드 선정 유닛(120)은 프로그램 요청이 있을 때마다 데이터 생성 유닛(110)에 의해 재생성된 기준 값(RV)을 이용하여 시드(SD)를 재선정할 수 있으며, 재선정된 시드(SD)는 이전에 선정된 시드(SD)와 다를 수 있다.
랜더마이저(130)는 시드 선정 유닛(120)에 의해 선정된 시드(SD)를 이용하여 데이터를 랜덤화(randomize)하고, 랜덤화된 데이터(DATA_R)를 생성한다. 구체적으로, 랜더마이저(130)는 프로그램 요청된 데이터(DATA_U)와 시드 선정 유닛(120)에 의해 선정된 시드(SD)를 조합(예컨대, 배타적 논리합(XOR))하여 랜덤화된 데이터(DATA_R)를 생성할 수 있다. 앞서 설명한 바와 같이 메모리 셀(200)에는 실제로 이 랜덤화된 데이터(DATA_R)가 프로그램된다. 본 발명의 몇몇의 실시예에서, 랜더마이저(130)는 프로그램 요청이 있을 때마다 시드 선정 유닛(120)에 의해 재선정된 시드(SD)를 이용하여 데이터(DATA_U)를 랜덤화할 수 있으며, 이에 따라 데이터(DATA_R)의 랜덤성은 시간적으로 증가할 수 있다.
랜더마이저(130)에 의해 랜덤화된 데이터(DATA_R)는 기준 값(RV) 또는 기준 값(RV)에 대응되는 어떤 값(예컨대, 기준 값(RV)에 일대일 대응되는 다른 값)과 함께 메모리 셀(200)에 프로그램될 수 있다. 다시 말해서, 랜더마이저(130)는 랜덤화된 데이터(DATA_R)와, 기준 값(RV) 또는 기준 값(RV)에 대응되는 값을 함께 메모리 셀(200)에 전송한다. 랜더마이저(130)의 구체적인 구현 방식에 따라, 랜더마이저(130)는 기준 값(RV)을 데이터 생성 유닛(110)으로부터 전달받거나, 시드 선정 유닛(120)으로부터 전달받을 수 있다. 이후, 메모리 셀(200)에 프로그램된 랜덤화된 데이터(DATA_R)는 메모리 셀(200)에 프로그램된 기준 값(RV) 또는 기준 값(RV)에 대응되는 값을 이용하여 디랜덤화(derandomize)될 수 있다.
본 발명의 몇몇의 실시예에서, 데이터 생성 유닛(110)은 프로그램 요청에 따라 기준 값(RV)을 랜덤하게 또는 의사 랜덤하게 생성하기 위해, 타이머, TRNG(True Random Number Generator), 카운터 및 시프트 레지스터(shift register) 중 적어도 하나를 포함할 수 있다. 이하 도 2 내지 도 5를 참조하여 이에 관해 설명하도록 한다.
도 2는 비휘발성 메모리 장치의 데이터 생성 유닛의 일 실시예를 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터 생성 유닛(110)은 타이머(112)를 포함할 수 있고, 타이머(112)를 이용하여 기준 값(RV)을 생성할 수 있다. 예를 들어, 타이머(112)는 비휘발성 메모리가 장착되는 시스템의 리얼 타임 클록(Real Time Clock, RTC)의 값을 기초로 랜덤성을 갖는 기준 값(RV)을 생성할 수 있다. 데이터 생성 유닛(110)은 타이머(112)를 이용하여 생성한 기준 값(RV)을 시드 선정 유닛(120)에 전달할 수 있다. 여기서 기준 값(RV)은 타이머(112)로부터 획득한 값 그대로를 의미할 수도 있고, 타이머(112)로부터 획득한 값을 예컨대 특정 계산 식을 이용하여 변환한 값을 의미할 수도 있다. 시드 선정 유닛(120)은 데이터 생성 유닛(110)으로부터 전달받은 기준 값(RV)을 이용하여 미리 생성되어 있는 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정할 수 있다. 이와 같이 시간에 따른 랜덤성을 갖는 기준 값(RV)을 고려하여 시드(SD)를 선정하면, 시드(SD) 역시 시간에 따른 랜덤성을 갖게 되고, 이러한 시드(SD)를 이용하여 랜더마이저(130)에 의해 랜덤화된 데이터의 랜덤성은 더욱 증가하게 된다.
도 2에서는 타이머(112)가 데이터 생성 유닛(110)의 내부에 배치되어 있는 것으로 도시되었지만 이에 한정되는 것은 아니다. 즉, 본 발명의 몇몇의 실시예에서, 타이머(112)는 데이터 생성 유닛(110)의 외부에 배치되고, 데이터 생성 유닛(110)은 타이머(112)로부터 획득한 값을 이용하여 기준 값(RV)을 생성할 수도 있다.
도 3은 비휘발성 메모리 장치의 데이터 생성 유닛의 다른 실시예를 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 데이터 생성 유닛(110)은 TRNG(True Random Number Generator)(114)를 포함할 수 있고, TRNG(114)를 이용하여 랜덤성을 갖는 기준 값(RV)을 생성할 수 있다. 앞서 설명한 타이머(112)로부터 획득할 수 있는 임의의 시점의 값은 엄밀히 말해 랜덤한 값(random number)이 아니라 의사 랜덤한 값(pseudo-random number)이다. 도 3에 도시된 본 실시예에서는 메모리 셀(200)에 프로그램되는 데이터의 랜덤성을 더욱 증가시키기 위해, 진정한 랜덤 값(true random number)을 생성하는 TRNG(114)를 이용하여 기준 값(RV)을 생성할 수 있다. 데이터 생성 유닛(110)은 TRNG(114)를 이용하여 생성한 기준 값(RV)을 시드 선정 유닛(120)에 전달할 수 있다. 여기서 기준 값(RV)은 TRNG(114)로부터 획득한 값 그대로를 의미할 수도 있고, TRNG(114)로부터 획득한 값을 예컨대 특정 계산 식을 이용하여 변환한 값을 의미할 수도 있다. 시드 선정 유닛(120)은 데이터 생성 유닛(110)으로부터 전달받은 기준 값(RV)을 이용하여 미리 생성되어 있는 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정할 수 있다. 이와 같이 시간에 따른 랜덤성을 갖는 기준 값(RV)을 고려하여 시드(SD)를 선정하면, 시드(SD) 역시 시간에 따른 랜덤성을 갖게 되고, 이러한 시드(SD)를 이용하여 랜더마이저(130)에 의해 랜덤화된 데이터의 랜덤성은 더욱 증가하게 된다.
도 3에서는 TRNG(114)가 데이터 생성 유닛(110)의 내부에 배치되어 있는 것으로 도시되었지만 이에 한정되는 것은 아니다. 즉, 본 발명의 몇몇의 실시예에서, TRNG(114)는 데이터 생성 유닛(110)의 외부에 배치되고, 데이터 생성 유닛(110)은 TRNG(114)로부터 획득한 값을 이용하여 기준 값(RV)을 생성할 수도 있다.
도 4는 비휘발성 메모리 장치의 데이터 생성 유닛의 또 다른 실시예를 설명하기 위한 블록도이고, 도 5는 도 4에 도시된 카운터의 다른 실시예를 설명하기 위한 블록도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 데이터 생성 유닛(110)은 카운터(116)를 포함할 수 있고, 카운터(116)를 이용하여 랜덤성을 갖는 기준 값(RV)을 생성할 수 있다. 예를 들어, 카운터(116)는 비휘발성 메모리가 장착되는 시스템 중 특정 영역의 상태(status)의 값을 초기 값으로 하고, 특정 이벤트가 발생할 때마다 이벤트의 횟수를 카운트하는 방식으로 동작할 수 있다. 그러나 카운터(116)의 구체적인 구현 방식은 이에 한정되는 것은 아니다.
본 발명의 몇몇의 실시예에서, 카운터(116)는 카운트를 시작할 때의 초기 값(DATA_E)을 외부로부터 입력받을 수 있다. 예를 들어, 도 5를 같이 참조하면, 카운터(116)를 포함하는 비휘발성 메모리 장치는 비휘발성 메모리 장치의 외부에 배치된 휘발성 메모리 장치(400)와 전기적으로 연결될 수 있다. 본 발명의 몇몇의 실시예에서 휘발성 메모리 장치(400)는 SRAM일 수 있으나 이에 한정되는 것은 아니다. 휘발성 메모리 장치(400)의 메모리 셀은, 휘발성 메모리 장치(400)의 파워 온(power-on)시 특정 값들을 가질 수 있다. 이러한 값들은 무의미한 가비지 데이터(garbage data)일 수 있다. 카운터(116)의 초기 값은 휘발성 메모리 장치(400)의 파워 온(power-on)시 휘발성 메모리 장치(400)에 저장되어 있는 초기 값(INIT_VALUE)을 이용하여 설정될 수 있다.
데이터 생성 유닛(110)은 카운터(116)를 이용하여 생성한 기준 값(RV)을 시드 선정 유닛(120)에 전달할 수 있다. 여기서 기준 값(RV)은 타이머(112)로부터 획득한 값 그대로를 의미할 수도 있고, 카운터(116)로부터 획득한 값을 예컨대 특정 계산 식을 이용하여 변환한 값을 의미할 수도 있다. 시드 선정 유닛(120)은 데이터 생성 유닛(110)으로부터 전달받은 기준 값(RV)을 이용하여 미리 생성되어 있는 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정할 수 있다. 이와 같이 시간에 따른 랜덤성을 갖는 기준 값(RV)을 고려하여 시드(SD)를 선정하면, 시드(SD) 역시 시간에 따른 랜덤성을 갖게 되고, 이러한 시드(SD)를 이용하여 랜더마이저(130)에 의해 랜덤화된 데이터의 랜덤성은 더욱 증가하게 된다.
도 4에서는 카운터(116)가 데이터 생성 유닛(110)의 내부에 배치되어 있는 것으로 도시되었지만 이에 한정되는 것은 아니다. 즉, 본 발명의 몇몇의 실시예에서, 카운터(116)는 데이터 생성 유닛(110)의 외부에 배치되고, 데이터 생성 유닛(110)은 카운터(116)로부터 획득한 값을 이용하여 기준 값(RV)을 생성할 수도 있다.
도 6은 비휘발성 메모리 장치가 시드를 선정하는 일 실시예를 설명하기 위한 블록도이고, 도 7은 도 6의 실시예에 사용되는 시드 테이블을 설명하기 위한 도면이다.
도 6을 참조하면, 시드 선정 유닛(120)은 데이터 생성 유닛(110)에서 생성된 기준 값(RV)을 이용하여 시드 테이블 형태로 미리 저장되어 있는 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정한다.
복수의 시드들은 복수의 시드 테이블(300a~300d)에 미리 저장되어 있을 수 있다. 도 7을 같이 참조하면, 복수의 시드 테이블(300a~300d)은 각각의 시드 테이블을 식별하기 위한 테이블 인덱스 값을 포함한다(도 7의 "TABLE INDEX" 참조). 그리고 복수의 시드 테이블(300a~300d) 각각은, 예컨대 비휘발성 메모리 장치의 페이지별로 미리 계산되어 있는 하나 이상의 시드 값들을 포함한다. 예를 들어, 도 7에서, 테이블 인덱스 값이 '0'인 시드 테이블(330a)은 페이지 0(PG0)에 대응되는 시드 값으로 "0x2425"를 저장하고, 테이블 인덱스 값이 '1'인 시드 테이블(330b)은 페이지 1(PG1)에 대응되는 시드 값으로 "0x23AC"를 저장하고 있다. 물론 시드 테이블(300a~300d)의 구체적인 구조는 이에 한정되는 것은 아니다. 한편, 본 발명의 몇몇의 실시예에서, 이러한 복수의 시드 테이블(300a~300d)은 비휘발성 메모리 장치와 전기적으로 연결된 ROM(Read Only Memory)에 저장되어 있을 수 있으나, 이에 한정되는 것은 아니다.
시드 선정 유닛(120)은 복수의 시드 테이블(300a~300d) 중 데이터 생성 유닛(110)에서 생성된 기준 값(RV)에 대응되는 시드 테이블을 선정하기 위한 테이블 선정기(122)를 포함할 수 있다. 구체적으로, 기준 값(RV)은 앞서 설명한 시드 테이블을 식별하기 위한 테이블 인덱스 값 중 어느 하나에 대응될 수 있다. 테이블 선정기(122)는 복수의 시드 테이블(300a~300d) 중 기준 값(RV)에 대응되는 시드 테이블(예컨대 도 6의 시드 테이블(300c))을 선정한 후, 상기 선정된 시드 테이블에 저장된 시드(SD)를 선정할 수 있다. 이와 같은 방식으로 선정된 시드(SD)는 랜더마이저(130)로 전달되어, 메모리 셀(200)에 프로그램하기 위한 데이터를 랜덤화하기 위해 사용될 수 있다.
도 8은 비휘발성 메모리 장치가 시드를 선정하는 다른 실시예를 설명하기 위한 블록도이다.
도 8을 참조하면, 시드 선정 유닛(120)은 데이터 생성 유닛(110)에서 생성된 기준 값(RV)을 이용하여 미리 저장되어 있는 복수의 다항식(310a~310d) 중에서 하나 이상의 다항식을 선정하고, 선정된 다항식을 이용하여 시드(SD)를 연산할 수 있다.
본 발명의 몇몇의 실시예에서 복수의 다항식(310a~310d)은 비휘발성 장치와 전기적으로 연결된 회로로써 구현될 수 있으나, 이에 한정되는 것은 아니다. 시드 선정 유닛(120)은 복수의 다항식(310a~310d) 중 데이터 생성 유닛(110)에서 생성된 기준 값(RV)에 대응되는 다항식을 선정하기 위한 다항식 선정기(124)를 포함할 수 있다. 구체적으로, 다항식 선정기(124)는 복수의 다항식(310a~310d) 중 기준 값(RV)에 대응되는 다항식(예컨대 도 8의 다항식(310b))을 선정한 후, 상기 선정된 다항식을 이용하여 시드(SD)를 연산할 수 있다. 이와 같은 방식으로 선정된 다항식을 이용하여 연산된 시드(SD)는 랜더마이저(130)로 전달되어, 메모리 셀(200)에 프로그램하기 위한 데이터를 랜덤화하기 위해 사용될 수 있다.
도 9는 비휘발성 메모리 장치가 시드를 선정하는 또 다른 실시예를 설명하기 위한 블록도이고, 도 10은 도 9 의 실시예에 사용되는 시프트 레지스터를 설명하기 위한 도면이다.
도 9를 참조하면, 시드 선정 유닛(120)은 데이터 생성 유닛(110)에서 생성된 기준 값(RV)을 이용하여 미리 저장되어 있는 복수의 시프트 레지스터(shift register)(330a~330d) 중 하나 이상의 시프트 레지스터를 선정하고, 선정된 시프트 레지스터를 이용하여 시드(SD)를 연산할 수 있다.
도 10을 같이 참조하면, 본 발명의 몇몇의 실시예에서, 복수의 시프트 레지스터(330a~330d)는 m(여기서 m은 2 이상의 정수)개의 시프트 레지스터(SR)들을 구비하는 LFSR(Linear Feedback Shift Register)를 포함할 수 있다. 설명의 편의를 위해 도 10에서는 피보나치 구현(Fibonacci implementation)의 LFSR을 도시하였으나, LFSR의 구체적인 구현 형태는 이에 한정되지 않는다. 본 발명의 몇몇의 실시예에서 LFSR은 갈루아 구현(Galois implementatioin)의 LFSR 또는 기타 다양한 형태로 구현되는 LFSR을 포함할 수 있다. 본 발명의 몇몇의 실시예에서 복수의 시프트 레지스터(330a~330d)는 비휘발성 장치와 전기적으로 연결된 회로로써 구현될 수 있으나, 이에 한정되는 것은 아니다.
시드 선정 유닛(120)은 복수의 시프트 레지스터(330a~330d) 중 데이터 생성 유닛(110)에서 생성된 기준 값(RV)에 대응되는 시프트 레지스터, 즉 LFSR를 선정하기 위한 LFSR 선정기(126)를 포함할 수 있다. 구체적으로, LFSR 선정기(124)는 복수의 시프트 레지스터(330a~330d) 중 기준 값(RV)에 대응되는 시프트 레지스터(예컨대 도 9의 시프트 레지스터(330a))를 선정한 후, 상기 선정된 시프트 레지스터를 이용하여 시드(SD)를 연산할 수 있다. 이와 같은 방식으로 선정된 다항식을 이용하여 연산된 시드(SD)는 랜더마이저(130)로 전달되어, 메모리 셀(200)에 프로그램하기 위한 데이터를 랜덤화하기 위해 사용될 수 있다.
한편, 도 10을 다시 참조하면, 비휘발성 메모리 장치가 시드를 선정하는 또 다른 실시예로서 둘 이상의 출력탭의 값을 조합하여 시드(SD2)를 생성할 수도 있다. 구체적으로, 도 9에서 시드 선정 유닛(120)에 의해 선정된 시프트 레지스터(330a)는 복수의 출력탭(331a~336a)을 포함할 수 있다. 여기서 시드 선정 유닛(120)은 시프트 레지스터(330a)의 복수의 출력탭(331a~336a) 중 출력탭(333a)의 출력 값과 출력탭(335a)의 출력 값을 조합(예컨대, 배타적 논리합(XOR))하여 시드(SD2)를 연산할 수 있다. 즉, 시드 선정 유닛(120)은 선정된 시프트 레지스터(330a)를 이용하여 직접 시드(SD1)를 연산할 수도 있지만, 시프트 레지스터(330a)에 포함된 임의의 둘 이상의 출력탭으로부터 획득할 수 있는 출력 값들을 조합하여 시드(SD2)를 연산할 수도 있다.
도 6 내지 도 10과 관련하여 이제까지 설명한 다양한 방식에 의해 랜덤화된 데이터는 데이터 생성 유닛(110)에 의해 생성된 기준 값(RV) 그 자체 또는 기준 값(RV)에 대응되는 값과 함께 메모리 셀(200)에 프로그램될 수 있다. 여기서, 기준 값(RV)에 대응되는 값이란, 예컨대, 도 6과 관련된 실시예에서 기준 값(RV)에 대응되는 테이블 인덱스 값, 도 8과 관련된 실시예에서 기준 값(RV)에 대응되는 다항식 인덱스 값, 또는 도 9와 관련된 실시예에서 기준 값(RV)에 대응되는 LFSR 인덱스 값 등이 있을 수 있다. 즉, 기준 값(RV)에 대응되는 값은 기준 값(RV) 그 자체가 아니지만, 추후 메모리 셀(200)에 프로그램된 랜덤화된 데이터를 디랜덤화하기 위해 필요한 시드에 관한 부가적인 정보를 의미하는 것으로, 그 구체적인 구현 방식은 특정한 방식으로 한정되지 않는다.
도 11은 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치를 설명하기 위한 블록도이다.
도 11을 참조하면, 도 1과 관련하여 설명한 실시예와 다른 점은, 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치(2)의 컨트롤러(100)는 시드 생성 유닛(140)을 포함한다는 점이다.
도 1의 시드 선정 유닛(120)은 데이터 생성 유닛(110)에서 생성된 기준 값(RV)을 이용하여 미리 생성되어 저장되어 있는 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정하는 반면, 시드 생성 유닛(140)은 데이터 생성 유닛(110)에서 생성된 기준 값(RV)을 이용하여 실시간 또는 온더플라이(on-the-fly) 방식으로 둘 이상의 시드를 생성한다. 따라서, 본 실시예는 미리 생성한 시드들을 저장해 놓을 저장 공간을 요구하지 않는다는 유리한 효과를 가진다. 본 발명의 몇몇의 실시예에서, 시드 생성 유닛(140)은 프로그램 요청이 있을 때마다 데이터 생성 유닛(110)에 의해 재생성된 기준 값(RV)을 이용하여 시드(SD)를 재생성할 수 있으며, 재생성된 시드(SD)는 이전에 선정된 시드(SD)와 다를 수 있다. 랜더마이저(130)는 시드 생성 유닛(140)에 의해 생성된 시드(SD)를 이용하여 데이터를 랜덤화하고, 랜덤화된 데이터(DATA_R)를 생성한다.
도 12는 비휘발성 메모리 장치의 시드 생성 유닛의 일 실시예를 설명하기 위한 블록도이고, 도 13은 비휘발성 메모리 장치가 시드를 선정하는 일 실시예를 설명하기 위한 개략도이다.
도 12를 참조하면 비휘발성 메모리 장치(2)의 시드 생성 유닛(140)은 시드 후보 생성기(142) 및 시드 선정기(144)를 포함할 수 있다. 시드 후보 생성기(142)는 데이터 생성 유닛(110)에 의해 생성된 기준 값(RV)을 이용하여 복수의 시드 후보들을 포함하는 시드 후보군을 생성할 수 있다. 그리고 시드 선정기(144)는 시드 후보 생성기(142)에 의해 생성된 시드 후보군에서 미리 정해진 규칙을 만족하는 둘 이상의 시드를 선정할 수 있다. 여기서 미리 정해진 규칙이란 하나의 워드 라인(WL)에서 모든 프로그램 스테이트(program state)가 골고루 나올 수 있도록 하기 위한 조건을 포함한다. 예를 들어, N 비트 MLC(Multi Level Cell)에서 셀의 프로그램 스테이트는 N 개의 시드와 입력 데이터에 의해 결정되며, 이 경우 미리 정해진 규칙은 N 개의 시드들 중 임의의 2 개 이상의 시드들에 대해 배타적 논리합(XOR)을 한 결과가 0이 아니어야 한다는 것과 같은 일종의 제약조건을 포함한다.
예를 들어, 3 비트 MLC의 경우, 'A', 'B', 'C'의 3 개의 시드들 중 임의의 2 개 이상의 시드들에 대해 배타적 논리합(XOR)을 한 결과는 0이 아니어야 할 수 있다. 즉, 'A'와 'B', 'B'와 'C', 'A'와 'C', 그리고 'A', 'B' 및 'C'에 대해 각각 배타적 논리합(XOR)을 한 결과는 0이 아니어야 할 수 있다. 추가로 예를 들어, 4 비트 MLC의 경우도, 'A', 'B', 'C', 'D'의 4 개의 시드들 중 임의의 2 개 이상의 시드들에 대해 배타적 논리합(XOR)을 한 결과는 0이 아니어야 할 수 있다. 즉, 3 비트 MLC의 조건을 포함하면서 'A', 'B' 및 'C'; 'A', 'B' 및 'D'; 'A', 'C' 및 'D'; 'B', 'C' 및 'D'; 그리고 'A', 'B', 'C' 및 'D'에 대해 각각 배타적 논리합(XOR)을 한 결과는 0이 아니어야 할 수 있다.
도 13을 같이 참조하면, 시드 후보 생성기(142)는 데이터 생성 유닛(110)에 의해 생성된 기준 값(RV)을 이용하여 12 개의 시드 후보들을 포함하는 시드 후보군을 생성하였다. 그 후 시드 선정기(144)는 시드 후보 생성기(142)에 의해 생성된 시드 후보군에서, 예를 들어 상술한 배타적 논리합(XOR)에 관한 제약조건을 만족하는 시드(SD)인 "0x13EF", "0xE33b", "0x4364"를 선정하였다. 이후 랜더마이저(130)는 시드 선정기(144)에 의해 선정된 시드(SD)인 "0x13EF", "0xE33b", "0x4364"를 이용하여, 메모리 셀(200)에 프로그램 요청된 데이터(DATA_U)를 랜덤화하고, 랜덤화된 데이터(DATA_R)를 생성한다.
이후 랜덤화된 데이터(DATA_R)는 시드 생성 유닛(140)에 의해 생성된 둘 이상의 시드(SD)와 함께 메모리 셀(200)에 프로그램될 수 있다. 추후 메모리 셀(200)에 프로그램된 랜덤화된 데이터는 메모리 셀(200)에 함께 프로그램된 둘 이상의 시드(SD)를 이용하여 디랜덤화될 수 있다.
도 14는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 14를 참조하면, 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 동작 방법은 다음 단계들을 포함할 수 있다.
먼저, 비휘발성 메모리 장치의 프로그램 동작 수행 시 랜덤하게 또는 의사 랜덤하게 기준 값(RV)을 생성한다(S1401). 본 발명의 몇몇의 실시예에서, 상기 단계는 데이터를 메모리 셀(200)에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게 또는 의사 랜덤하게 기준 값(RV)을 생성하는 것을 포함할 수 있다. 본 발명의 몇몇의 실시예에서, 상기 프로그램 요청에 따라 기준 값(RV)을 생성하는 것은 상기 프로그램 요청이 있을 때마다 기준 값(RV)을 다른 값으로 생성하는 것을 포함할 수 있다.
다음으로, 기준 값(RV)을 이용하여 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정한다(S1403). 본 발명의 몇몇의 실시예에서, 상기 기준 값(RV)을 이용하여 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정하는 것은, 미리 저장된 시드 값들 중 기준 값(RV)에 대응되는 시드(SD)를 선정하는 것을 포함할 수 있다.
이후 선정된 시드(SD)를 이용하여 사용자 데이터(DATA_U)로부터 랜덤화된 랜덤 데이터(DATA_R)를 생성하고(S1405), 생성된 랜덤 데이터(DATA_R)를 메모리 셀(200)에 프로그램한다(S1407). 본 발명의 몇몇의 실시예에서, 랜덤 데이터(DATA_R)를 메모리 셀(200)에 프로그램하는 것은, 랜덤 데이터(DATA_R)와 함께 데이터 생성 유닛(110)에 의해 생성된 기준 값(RV) 그 자체 또는 기준 값(RV)에 대응되는 값을 메모리 셀(200)에 프로그램하는 것을 포함할 수 있다.
도 15는 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 15를 참조하면, 본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 동작 방법은 다음 단계들을 포함할 수 있다.
먼저, 비휘발성 메모리 장치의 프로그램 동작 수행 시 랜덤하게 또는 의사 랜덤하게 기준 값(RV)을 생성한다(S1501). 본 발명의 몇몇의 실시예에서, 상기 단계는 데이터를 메모리 셀(200)에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게 또는 의사 랜덤하게 기준 값(RV)을 생성하는 것을 포함할 수 있다. 본 발명의 몇몇의 실시예에서, 상기 프로그램 요청에 따라 기준 값(RV)을 생성하는 것은 상기 프로그램 요청이 있을 때마다 기준 값(RV)을 다른 값으로 생성하는 것을 포함할 수 있다.
다음으로, 기준 값(RV)을 이용하여 복수의 시드들 중에서 하나 이상의 시드(SD)를 선정하기 위해, 상기 프로그램 요청에 따라 기준 값(RV)을 이용하여 복수의 시드 후보를 포함하는 시드 후보군을 생성한다(S1503). 그리고 생성된 시드 후보군 내의 복수의 시드 후보 중 미리 정해진 제약 조건을 만족하는 둘 이상의 시드(SD)를 선정한다(S1505).
이후 선정된 시드(SD)를 이용하여 사용자 데이터(DATA_U)로부터 랜덤화된 랜덤 데이터(DATA_R)를 생성하고(S1507), 생성된 랜덤 데이터(DATA_R)를 메모리 셀(200)에 프로그램한다(S1509). 본 발명의 몇몇의 실시예에서, 랜덤 데이터(DATA_R)를 메모리 셀(200)에 프로그램하는 것은, 랜덤 데이터(DATA_R)와 함께 시드 생성 유닛(140)에 의해 생성된 둘 이상의 시드를 메모리 셀(200)에 프로그램하는 것을 포함할 수 있다.
본 발명의 다양한 실시예에 따른 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법은 인접한 셀들 사이에서 발생될 수 있는 문제들을 극복하기 위해 메모리 셀(200)에 프로그램하기 위해 랜덤화된 데이터의 랜덤성을 현저히 증가시킬 수 있다. 구체적으로 본 발명의 다양한 실시예에 따른 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법은 시간적으로 랜덤하게 변화하는 특정 값(즉, 기준 값)을 이용하여 시드를 선정하게 되므로, 시드 자체가 시간에 따라 랜덤성을 띠게 되고, 이에 따라 시드를 이용하여 랜덤화된 데이터의 랜덤성은 더욱 증가하게 된다. 이에 따라 도 1과 관련하여 앞서 설명한 딥 이레이즈 현상 또는 특정 메모리 셀의 마모 현상 등을 억제할 수 있어, 비휘발성 메모리 장치의 신뢰성을 향상시킬 수 있다.
한편, 이제까지 설명한 본 발명의 다양한 실시예에 따른 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법은 평면형(planaer) 낸드 플래시 메모리뿐 아니라 수직적(vertical) 낸드 플래시 메모리에도 적용될 수 있다. 수직적 낸드 플래시 메모리의 경우 도 1과 관련하여 설명된 메모리 블록(BLKi)은 도 16에 도시된 것과 같은 3차원 구조(또는 수직 구조)를 가질 수 있다.
도 16은 도 1을 참조하여 설명된 메모리 블록(BLKi)의 등가 회로를 설명하기 위한 회로도이다. 도 16을 참조하면, 제 1 비트 라인(BL1) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11~NS31)이 제공되고, 제 2 비트 라인(BL2) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 제공되며, 제 3 비트 라인(BL3) 및 공통 소스 라인(CSL) 사이에, 낸드 스트링들(NS13, NS23. NS33)이 제공된다. 각 낸드 스트링(NS)의 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL)과 연결된다. 각 낸드 스트링(NS)의 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)과 연결된다. 각 낸드 스트링(NS)의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST) 사이에 메모리 셀들(MC)이 제공된다.
도 17은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 사용자 장치를 설명하기 위한 블록도이다.
도 17을 참조하면, 사용자 장치(1000)는 호스트(1100), 데이터 저장 장치(1200)을 포함할 수 있다.
호스트(1100)는 데이터 저장 장치(1200)를 제어하도록 구성될 수 있다. 예를 들어, 호스트(1100)는 개인용/휴대용 컴퓨터, PDA(Personal Digital Assistant), PMP(portable media player), MP3 플레이어 등과 같은 휴대용 전자 장치를 포함할 수 있다.
호스트(1100)와 데이터 저장 장치(1200)는 USB, SCSI, ESDI, SATA, SAS, PCIexpress, 또는 IDE 인터페이스와 같은 표준 인터페이스(standardized interface)에 의해서 연결될 수 있다. 그러나, 호스트(1100)와 데이터 저장 장치(1200)를 연결하기 위한 인터페이스 방식이 이에 한정되는 것은 아니다.
데이터 저장 장치(1200)는 메모리 컨트롤러(1210), 비휘발성 메모리 장치(1220)를 포함할 수 있다. 메모리 컨트롤러(1210)는 호스트(1100)로부터의 요청에 응답하여 비휘발성 메모리 장치(1220)의 라이트/리드/이레이즈 동작을 제어할 수 있다.
비휘발성 메모리 장치(1220)는 복수의 비휘발성 메모리 칩들로 구성될 수도 있다. 복수의 비휘발성 메모리 칩들은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치와 실질적으로 동일하게 구성되고 동작할 수 있다.
데이터 저장 장치(1200)는 반도체 디스크(Solid State Disk; SSD) 장치로 구성될 수 있다. 그러나, 이는 일 예에 불과하며, 데이터 저장 장치(1200)는 하나의 반도체 장치로 집적되어, PC 카드(personal computer memory card international association; PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMC-micro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등으로 구성될 수도 있다.
도 18은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 메모리 시스템의 응용예를 설명하기 위한 블록도이다.
도 18을 참조하면, 메모리 시스템(2000)은 메모리 컨트롤러(2100), 비휘발성 메모리 장치(2200)를 포함할 수 있다.
메모리 컨트롤러(2100)는 호스트로부터의 요청에 응답하여 비휘발성 메모리 장치(2200)의 라이트/리드/이레이즈 동작을 제어할 수 있다. 메모리 컨트롤러(2100)는 CPU(2110), RAM(2120), 호스트 인터페이스(2130), 에러 정정 블록(2140), 메모리 인터페이스(2150)을 포함할 수 있다.
CPU(2110)는 메모리 컨트롤러(2100)의 제반 동작을 제어할 수 있다. RAM(2120)은 CPU(2110)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(2130)는 메모리 시스템(2000)과 접속되는 호스트와 인터페이싱하여 데이터를 교환할 수 있다.
에러 정정 블록(2140)은 비휘발성 메모리 장치(2200)으로부터 독출된 데이터의 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2150)는 비휘발성 메모리 장치(2200)와 인터페이싱하여 데이터를 교환할 수 있다.
비휘발성 메모리 장치(2200)는 복수의 비휘발성 메모리 칩들로 구성될 수도 있다. 복수의 비휘발성 메모리 칩들은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치와 실질적으로 동일하게 구성되고 동작할 수 있다.
도 19는 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 데이터 저장 장치를 설명하기 위한 블록도이다.
도 19를 참조하면, 데이터 저장 장치(3000)는 비휘발성 메모리 장치(3100L)와 메모리 컨트롤러(3200)를 포함할 수 있다.
비휘발성 메모리 장치(3100)는 복수의 비휘발성 메모리 칩들로 구성될 수도 있다. 복수의 비휘발성 메모리 칩들은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치와 실질적으로 동일하게 구성되고 동작할 수 있다.
메모리 컨트롤러(3200)는 외부로부터의 요청에 응답하여 비휘발성 메모리 장치(3100)의 라이트/리드/이레이즈 동작을 제어할 수 있다.
데이터 저장 장치(3000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 장치, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할수 있다. 예를 들어, 데이터 저장 장치(3000)는 디지털 카메라, 개인 컴퓨터 등과 같은 사용자 장치를 사용하기 위한 카드를 구성할 수 있다.
도 20은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 20을 참조하면, 컴퓨터 시스템(4000)은 프로세서(4100), RAM(4200), 인터페이스 장치(4300), 메모리 시스템(4400), 전원 공급 장치(4500; POWER SUPPLY) 및 버스(4600)를 포함할 수 있다.
프로세서(4100), RAM(4200), 인터페이스 장치(4300), 메모리 시스템(4400), 전원 공급 장치(4500)는 버스(4600)를 통하여 서로 결합 될 수 있다. 버스(4600)는 데이터들이 이동되는 통로(path)에 해당한다.
프로세서(4100)는 마이크로프로세서, 디지털 신호 프로세서, 마이크로컨트롤러 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함할 수 있다.
RAM(4200)은 프로세서(4100)의 성능을 향상시키기 위한 워킹 메모리로 사용될 수 있다. 인터페이스 장치(4300)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다.
인터페이스 장치(4300)는 유선 또는 무선 형태일 수 있다. 예를 들어, 인터페이스 장치(4300)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다.
메모리 시스템(4400)는 데이터 및/또는 명령어 등을 저장할 수 있다. 메모리 시스템(4400)은 메모리 컨트롤러(4410)와 비휘발성 메모리 장치(4420)를 포함할 수 있다.
메모리 컨트롤러(4410)는 비휘발성 메모리 장치(4420)의 라이트/리드/이레이즈 동작을 제어할 수 있다. 비휘발성 메모리 장치(3100)는 복수의 비휘발성 메모리 칩들로 구성될 수도 있다. 복수의 비휘발성 메모리 칩들은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치와 실질적으로 동일하게 구성되고 동작할 수 있다.
전원 공급 장치(4500)는 프로세서(4100), RAM(4200), 인터페이스 장치(4300), 메모리 시스템(4400)의 동작 전원을 공급할 수 있다.
컴퓨팅 시스템(4000)은 개인 휴대용 정보 단말기(PDA, personal digital assistant) 포터블 컴퓨터(portable computer), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 디지털 뮤직 플레이어(digital music player), 메모리 카드(memory card), 또는 정보를 무선환경에서 송신 및/또는 수신할 수 있는 모든 전자 제품에 적용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 비휘발성 메모리 장치 100: 컨트롤러
110: 데이터 생성 유닛 112: 타이머
114: TRNG 116: 카운터
120: 시드 선정 유닛 122: 테이블 선정기
124: 다항식 선정기 126: LFSR 선정기
130: 랜더마이저 140: 시드 생성 유닛
142: 시드 후보 생성기 144: 시드 선정기
200: 메모리 셀 300a~300d: 시드 테이블
310a~310d: 다항식 330a~330d: LFSR
331a~336a: 출력 탭 400: 휘발성 메모리 장치

Claims (10)

  1. 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하는 데이터 생성 유닛;
    상기 랜덤하게 또는 의사 랜덤하게 생성된 기준 값을 이용하여 복수의 시드(seed)들 중에서 하나 이상의 시드를 선정하는 시드 선정 유닛; 및
    상기 선정된 시드를 이용하여 상기 데이터를 랜덤화(randomize)한 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함하고,
    상기 데이터 생성 유닛은 상기 프로그램 요청이 있을 때마다 상기 기준 값을 재생성하고,
    상기 시드 선정 유닛은 상기 재생성된 기준 값을 이용하여 상기 시드를 재선정하는 비휘발성 메모리 장치.
  2. 제1항에 있어서,
    상기 데이터 생성 유닛은 타이머, TRNG(True Random Number Generator), 카운터 및 시프트 레지스터(shift register) 중 적어도 하나를 포함하는 비휘발성 메모리 장치.
  3. 제1항에 있어서,
    상기 복수의 시드들은 복수의 시드 테이블에 저장되어 있고,
    상기 시드 선정 유닛은 상기 복수의 시드 테이블 중 상기 기준 값에 대응되는 시드 테이블을 선정한 후, 상기 선정된 시드 테이블에 저장된 시드를 선정하는 비휘발성 메모리 장치.
  4. 제1항에 있어서,
    상기 복수의 시드들은 복수의 다항식으로부터 각각 연산되고,
    상기 시드 선정 유닛은 상기 복수의 다항식 중 상기 기준 값에 대응되는 다항식을 선정하고, 상기 선정된 다항식을 이용하여 시드를 연산하는 비휘발성 메모리 장치.
  5. 제1항에 있어서,
    상기 복수의 시드들은 복수의 시프트 레지스터(shift register)에 의해 연산되고,
    상기 시드 선정 유닛은 상기 복수의 시프트 레지스터 중 상기 기준 값에 대응되는 시프트 레지스터를 선정하고, 상기 선정된 시프트 레지스터를 이용하여 시드를 연산하는 비휘발성 메모리 장치.
  6. 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하는 데이터 생성 유닛;
    상기 랜덤하게 또는 의사 랜덤하게 생성된 기준 값을 이용하여 둘 이상의 시드(seed)를 생성하는 시드 생성 유닛; 및
    상기 둘 이상의 시드를 이용하여 상기 데이터를 랜덤화(randomize)한 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함하고,
    상기 데이터 생성 유닛은 상기 프로그램 요청이 있을 때마다 상기 기준 값을 재생성하고,
    상기 시드 생성 유닛은 상기 재생성된 기준 값을 이용하여 상기 시드를 재생성하는 비휘발성 메모리 장치.
  7. 제6항에 있어서,
    상기 시드 생성 유닛은,
    상기 기준 값을 이용하여 복수의 시드 후보들을 포함하는 시드 후보군을 생성하는 시드 후보 생성기와,
    상기 시드 후보 생성기에 의해 생성된 상기 시드 후보군에서 미리 정해진 규칙을 만족하는 둘 이상의 시드를 선정하는 시드 선정기를 포함하는 비휘발성 메모리 장치.
  8. 복수의 메모리 셀을 포함하는 메모리 블록;
    데이터를 상기 메모리 셀에 프로그램하기 위한 프로그램 요청이 있을 때마다 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 반복하여 생성하는 데이터 생성 유닛; 및
    미리 저장된 시드들 중 상기 랜덤하게 또는 의사 랜덤하게 생성된 기준 값에 대응되는 시드를 선정하여, 상기 프로그램 요청이 있을 때마다 상기 데이터를 랜덤화(randomizer)하여 랜덤화된 데이터를 생성하는 랜더마이저(randomizer)를 포함하고,
    상기 데이터 생성 유닛은 상기 프로그램 요청이 있을 때마다 상기 기준 값을 다른 값으로 생성하는 비휘발성 메모리 장치.
  9. 제8항에 있어서,
    상기 데이터 생성 유닛은 타이머, TRNG(True Random Number Generator), 카운터 및 시프트 레지스터(shift register) 중 적어도 하나로부터 획득한 값을 이용하여 상기 기준 값을 생성하는 비휘발성 메모리 장치.
  10. 데이터를 메모리 셀에 프로그램하기 위한 프로그램 요청에 따라 랜덤하게(randomly) 또는 의사 랜덤하게(pseudo-randomly) 기준 값(reference value)을 생성하고,
    상기 랜덤하게 또는 의사 랜덤하게 생성된 기준 값을 이용하여 복수의 시드(seed)들 중에서 하나 이상의 시드를 선정하고,
    상기 선정된 시드를 이용하여 상기 데이터를 랜덤화하고,
    상기 랜덤화된 데이터를 상기 메모리 셀에 프로그램하는 비휘발성 메모리 장치의 동작 방법.
KR1020140136776A 2014-10-10 2014-10-10 비휘발성 메모리 장치 및 그 동작 방법 KR102200108B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140136776A KR102200108B1 (ko) 2014-10-10 2014-10-10 비휘발성 메모리 장치 및 그 동작 방법
US14/722,751 US9268531B1 (en) 2014-10-10 2015-05-27 Nonvolatile memory system, storage device and method for operating nonvolatile memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140136776A KR102200108B1 (ko) 2014-10-10 2014-10-10 비휘발성 메모리 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20160042623A KR20160042623A (ko) 2016-04-20
KR102200108B1 true KR102200108B1 (ko) 2021-01-08

Family

ID=55314621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140136776A KR102200108B1 (ko) 2014-10-10 2014-10-10 비휘발성 메모리 장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US9268531B1 (ko)
KR (1) KR102200108B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
TWI569275B (zh) * 2015-07-17 2017-02-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
US10891083B2 (en) 2017-04-18 2021-01-12 Microsemi Solutions (Us), Inc. System and method for randomizing data
KR20210094696A (ko) 2020-01-21 2021-07-30 삼성전자주식회사 비휘발성 메모리 장치, 스토리지 장치, 및 그것의 프로그램 방법
US11398291B2 (en) 2020-11-20 2022-07-26 Microchip Technology Inc. Method and apparatus for determining when actual wear of a flash memory device differs from reliability states for the flash memory device
KR20220091235A (ko) * 2020-12-23 2022-06-30 에스케이하이닉스 주식회사 메모리 시스템의 랜덤 시드 생성 회로
US11514992B2 (en) 2021-02-25 2022-11-29 Microchip Technology Inc. Method and apparatus for reading a flash memory device
US11934696B2 (en) 2021-05-18 2024-03-19 Microchip Technology Inc. Machine learning assisted quality of service (QoS) for solid state drives
US11699493B2 (en) 2021-05-24 2023-07-11 Microchip Technology Inc. Method and apparatus for performing a read of a flash memory using predicted retention-and-read-disturb-compensated threshold voltage shift offset values
US11514994B1 (en) 2021-05-28 2022-11-29 Microchip Technology Inc. Method and apparatus for outlier management
GB2624821A (en) * 2021-08-13 2024-05-29 Financial & Risk Organisation Ltd Deterministic credit system
US11843393B2 (en) 2021-09-28 2023-12-12 Microchip Technology Inc. Method and apparatus for decoding with trapped-block management
WO2023208431A1 (en) * 2022-04-28 2023-11-02 Ams-Osram Ag Spad-based dithering generator and tof sensor comprising the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233762A1 (en) * 2006-02-24 2007-10-04 Novell, Inc. Techniques for random bit generation
US20140223246A1 (en) * 2013-02-06 2014-08-07 Kyungryun Kim Memory, memory controller, memory system, method of memory, memory controller and memory system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047262B2 (en) 2002-08-21 2006-05-16 Koninklijke Philips Electronics N.V. Entropy estimation and decimation for improving the randomness of true random number generation
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
US8127200B2 (en) 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8370561B2 (en) 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8131920B2 (en) 2007-12-06 2012-03-06 Hitachi Global Storage Technologies, Netherlands B.V. Method and system for dynamically allocating read and write sequence randomizer
KR101517185B1 (ko) 2008-04-15 2015-05-04 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US8230158B2 (en) 2008-08-12 2012-07-24 Micron Technology, Inc. Memory devices and methods of storing data on a memory device
KR101554159B1 (ko) 2008-10-08 2015-09-21 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20100111990A (ko) * 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
TWI435328B (zh) 2009-07-20 2014-04-21 Silicon Motion Inc 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器
KR20110055178A (ko) * 2009-11-19 2011-05-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
TWI438778B (zh) 2010-03-25 2014-05-21 Silicon Motion Inc 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器
TWI455136B (zh) 2010-07-01 2014-10-01 Silicon Motion Inc 用來進行資料整形之方法以及相關之記憶裝置及其控制器
KR101733567B1 (ko) * 2010-12-23 2017-05-11 삼성전자주식회사 초기 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템
KR101678915B1 (ko) 2010-12-27 2016-11-23 삼성전자주식회사 플래시 메모리 장치, 그것의 데이터 랜덤화 방법, 및 그것을 포함하는 메모리 시스템
KR20120125790A (ko) 2011-05-09 2012-11-19 삼성전자주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101767649B1 (ko) * 2011-05-11 2017-08-14 삼성전자주식회사 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템
KR101811298B1 (ko) 2011-12-28 2017-12-27 삼성전자주식회사 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러
US8730724B2 (en) 2012-08-07 2014-05-20 Sandisk Technologies Inc. Common line current for program level determination in flash memory
US8737125B2 (en) 2012-08-07 2014-05-27 Sandisk Technologies Inc. Aggregating data latches for program level determination

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233762A1 (en) * 2006-02-24 2007-10-04 Novell, Inc. Techniques for random bit generation
US20140223246A1 (en) * 2013-02-06 2014-08-07 Kyungryun Kim Memory, memory controller, memory system, method of memory, memory controller and memory system

Also Published As

Publication number Publication date
US9268531B1 (en) 2016-02-23
KR20160042623A (ko) 2016-04-20

Similar Documents

Publication Publication Date Title
KR102200108B1 (ko) 비휘발성 메모리 장치 및 그 동작 방법
US9761287B2 (en) Semiconductor memory device, memory system including the same and operating method thereof
KR102509540B1 (ko) 저장 장치 및 그것의 가비지 컬렉션 방법
KR102542375B1 (ko) 데이터 처리 시스템 및 그의 동작 방법
KR102648618B1 (ko) 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템
US9847122B2 (en) Multi-bit memory device and on-chip buffered program method thereof
US8799593B2 (en) Flash memory devices, data randomizing methods of the same, memory systems including the same
KR20130050589A (ko) 비휘발성 메모리 장치 및 그것의 구동 방법
KR20130061967A (ko) 메모리 시스템 및 그것의 웨어 레벨링 방법
KR102524432B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR102485397B1 (ko) 메모리 시스템 및 그 동작 방법
US9081658B2 (en) Storage device and data management method thereof
US9293177B2 (en) Semiconductor memory device, memory system including the same and operating method thereof
KR20170011645A (ko) 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR20160107970A (ko) 메모리 시스템 및 그의 동작방법
KR20170036548A (ko) 3차원 어레이 구조를 갖는 반도체 메모리 장치
TW201724118A (zh) 記憶體系統及記憶體系統的操作方法
KR20150127419A (ko) 반도체 메모리 장치 및 그것의 읽기 방법
KR20200001310A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR102398611B1 (ko) 메모리 시스템
US9406386B2 (en) Data storage device and operation method thereof
KR20200035630A (ko) 메모리 시스템 및 그것의 동작방법
US9147484B2 (en) Semiconductor memory device and operating method thereof
KR20170040466A (ko) 데이터 처리 시스템
KR20170027036A (ko) 데이터 처리 시스템

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