KR102083271B1 - 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법 - Google Patents

플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법 Download PDF

Info

Publication number
KR102083271B1
KR102083271B1 KR1020120084064A KR20120084064A KR102083271B1 KR 102083271 B1 KR102083271 B1 KR 102083271B1 KR 1020120084064 A KR1020120084064 A KR 1020120084064A KR 20120084064 A KR20120084064 A KR 20120084064A KR 102083271 B1 KR102083271 B1 KR 102083271B1
Authority
KR
South Korea
Prior art keywords
memory cells
random number
data
flash memory
random
Prior art date
Application number
KR1020120084064A
Other languages
English (en)
Other versions
KR20140017290A (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 KR1020120084064A priority Critical patent/KR102083271B1/ko
Priority to US13/685,743 priority patent/US9218159B2/en
Priority to TW102113707A priority patent/TWI617945B/zh
Priority to JP2013119560A priority patent/JP6193629B2/ja
Priority to CN201310328869.4A priority patent/CN103578550B/zh
Publication of KR20140017290A publication Critical patent/KR20140017290A/ko
Application granted granted Critical
Publication of KR102083271B1 publication Critical patent/KR102083271B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 장치의 난수 생성 방법은, 하나 또는 그 이상의 워드 라인을 선택하는 단계; 선택된 워드 라인에 대응하는 페이지를 동일 데이터로 프로그램하는 단계; 상기 선택된 워드 라인에 난수 읽기 전압을 제공하고, 선택된 페이지를 읽는 단계; 및 상기 선택된 페이지의 읽기 데이터로부터 난수(random number)를 얻는 단계를 포함한다. 여기에서, 상기 메모리 장치는 플래시 메모리일 수 있다. 본 발명은 플래시 메모리 셀의 문턱 전압 분포의 특성을 이용하여 난수를 생성한다. 본 발명은 플래시 메모리의 물리적 특성을 이용하여 난수를 발생하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.

Description

플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법{FLASH MEMORY SYSTEM GENERATING RANDOM NUMBER USING PHYSICAL CHARACTERISTIC OF FLASH MEMORY AND RANDOM NUMBER GENERATING METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 불휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 빠른 읽기 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 기반으로 하는 플래시 메모리 시스템은 데이터 저장 매체로 널리 사용되고 있다.
플래시 메모리를 비롯한 메모리 장치에 데이터를 저장할 때, 암호화된 데이터(encrypted data)를 저장할 수 있다. 데이터를 암호화할 때에는 암호화 키(encryption key)를 사용한다. 암호화 키는 일반적으로 사용자 정보(user information), 암호, 또는 난수(random number)로부터 생성하거나 이들을 조합하여 생성한다. 메모리 시스템은 난수를 생성하기 위해서 난수 발생기(random number generator)를 별도로 구비한다.
본 발명의 목적은 별도의 난수 발생기를 구비하지 않고서도 난수를 발생할 수 있는 플래시 메모리 시스템 및 그것의 난수 생성 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 메모리 장치의 난수 생성 방법은, 하나 또는 그 이상의 워드 라인을 선택하는 단계; 선택된 워드 라인에 대응하는 페이지를 동일 데이터로 프로그램하는 단계; 상기 선택된 워드 라인에 난수 읽기 전압을 제공하고, 선택된 페이지를 읽는 단계; 및 상기 선택된 페이지의 읽기 데이터로부터 난수(random number)를 얻는 단계를 포함한다. 여기에서, 상기 메모리 장치는 플래시 메모리일 수 있다.
실시 예로서, 상기 난수 생성 방법은 상기 선택된 페이지를 동일 데이터로 프로그램하기 위해서, 상기 플래시 메모리의 모든 페이지 버퍼에 동일 데이터를 로드(load)하는 단계를 더 포함할 수 있다. 상기 선택된 페이지는 동일 데이터로 프로그램된다.
상기 선택된 페이지를 읽는 단계에서, 상기 선택된 워드 라인에는 난수 읽기 전압(Vrn)이 제공되고 비선택된 워드 라인에 비선택 읽기 전압(Vread)이 제공된다. 상기 난수 읽기 전압(Vrn)은 문턱 전압 분포에서 중간값에 해당하는 전압이다. 실시 예에 따라, 상기 선택된 워드 라인에는 하나 또는 그 이상의 난수 읽기 전압(Vrn)이 제공될 수 있다. 복수의 난수 읽기 전압(Vrn)이 제공되는 경우에, 읽기 데이터의 XOR 연산을 통해 난수를 얻을 수 있다.
실시 예로서, 상기 난수 생성 방법은 상기 선택된 페이지의 읽기 데이터로부터 얻은 난수(random number)를 이용하여 암호화 키(KEY)를 생성하는 단계를 더 포함한다. 상기 난수 생성 방법은 상기 생성된 암호화 키(KEY)를 이용하여 데이터를 암호화하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 플래시 메모리 시스템은 데이터를 저장하기 위한 플래시 메모리; 및 상기 플래시 메모리에 저장된 데이터로부터 난수(random number)를 얻고, 상기 난수를 이용하여 암호화 키(KEY)를 생성하는 메모리 컨트롤러를 포함한다.
실시 예로서, 상기 플래시 메모리는 선택된 페이지를 동일 데이터로 프로그램한 다음에, 선택된 워드 라인에 난수 읽기 전압을 제공하고 선택된 페이지를 읽음으로 난수를 생성한다. 상기 플래시 메모리는 상기 선택된 페이지를 동일 데이터로 프로그램하기 위해서, 모든 페이지 버퍼에 동일 데이터를 로드(load)한다. 상기 플래시 메모리는 상기 선택된 페이지를 동일 데이터로 프로그램한다. 상기 플래시 메모리는 문턱 전압 분포에서 중간값에 해당하는 전압을 난수 읽기 전압으로 제공한다. 상기 플래시 메모리는 상기 선택된 워드 라인에 복수의 난수 읽기 전압(Vrn)을 제공함으로 복수의 난수를 얻을 수도 있다.
다른 실시 예로서, 상기 플래시 메모리는 상기 선택된 페이지의 읽기 데이터로부터 얻은 난수(random number)를 얻고, 상기 난수를 상기 메모리 컨트롤러로 제공한다. 상기 메모리 컨트롤러는 상기 플래시 메모리로부터 제공되는 난수를 이용하여 암호화 키를 생성하는 키 발생기; 및 상기 생성된 암호화 키(KEY)를 이용하여 데이터를 암호화하는 암호화 회로를 포함한다.
또 다른 실시 예로서, 상기 플래시 메모리는 상기 선택된 페이지의 읽기 데이터로부터 얻은 난수(random number)를 이용하여 암호화 키를 생성하기 위한 키 발생기를 포함한다. 상기 메모리 컨트롤러는 상기 플래시 메모리로부터 제공되는 암호화 키(KEY)를 이용하여 데이터를 암호화하는 암호화 회로를 포함한다.
본 발명의 실시 예에 따른 메모리 컨트롤러는 플래시 메모리로부터 제공되는 난수(random number)를 이용하여 암호화 키(KEY)를 생성하는 키 발생기; 및 상기 키 발생기로부터 제공되는 암호화 키를 이용하여 데이터를 암호화하는 암호화 회로를 포함한다.
실시 예로서, 상기 플래시 메모리는 선택된 페이지를 동일 데이터로 프로그램한 다음에, 선택된 워드 라인에 난수 읽기 전압을 제공하고 선택된 페이지를 읽음으로 난수를 생성한다. 상기 플래시 메모리는 상기 선택된 페이지를 동일 데이터로 프로그램한다.
본 발명은 플래시 메모리 셀의 문턱 전압 분포의 특성을 이용하여 난수를 생성한다. 본 발명은 플래시 메모리의 물리적 특성을 이용하여 난수를 발생하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 시스템을 보여주는 블록도이다.
도 3은 도 2에 도시된 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 4는 플래시 메모리 셀의 문턱 전압 분포를 보여주는 다이어그램이다.
도 5는 플래시 메모리 셀의 원 샷(one shot) 문턱 전압 분포를 보여주는 다이어그램이다.
도 6은 도 5에 도시된 난수 읽기 전압으로 인해 발생하는 난수 및 키 생성 방법을 보여주는 도표이다.
도 7은 도 2에 도시된 플래시 메모리 시스템의 난수 생성 방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 다른 실시 예에 따른 플래시 메모리 시스템을 보여주는 블록도이다.
도 9는 도 8에 도시된 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 11은 도 10에 도시된 메모리 시스템의 난수 생성 방법을 설명하기 위한 다이어그램 및 도표이다.
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 14는 도 13에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 플래시 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
도 16은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 17은 도 16에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 18은 도 17에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 제어 유닛(110), 메모리(120), 보안 회로(130), 그리고 키 발생기(140)를 포함한다.
메모리 시스템(100)은 검침(probing), 폴트 인젝션(fault injection), 또는 전력 분석(power analysis) 등과 같은 외부 공격(external attack)을 받을 수 있다. 메모리 시스템(100)은 외부 공격으로부터 데이터를 보호하기 위해 데이터를 암호화하고, 암호화된 데이터(encrypted data)를 메모리(120)에 저장할 수 있다.
도 1을 참조하면, 제어 유닛(110)은 데이터 처리 및 산술 동작 등의 메모리 시스템(100)의 전반적인 동작을 제어한다. 메모리(120)는 제어 유닛(110)에 의해 시행될 프로그램, 또는 사용자 데이터 등을 저장할 수 있다. 메모리(120)에는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 플래시 메모리와 같은 불휘발성 메모리(NVM) 등이 포함될 수 있다. 도 1에서는 하나의 메모리(120)만 도시되어 있지만, 메모리 시스템(100) 내에는 여러 종류의 메모리가 다양하게 존재할 수 있다.
보안 회로(130)는 암호화 회로(131) 및 복호화 회로(132)를 포함한다. 암호화 회로(131)는 어드레스(ADDR) 및 키(KEY)를 입력받고, 데이터(DATA)를 암호화할 수 있다. 여기에서, 어드레스(ADDR) 및 데이터(DATA)는 제어 유닛(110)으로부터 제공되고, 키(KEY)는 키 발생기(140)로부터 제공될 수 있다. 복호화 회로(132)는 어드레스(ADDR) 및 키(KEY)를 입력받고, 암호화된 데이터를 복호화할 수 있다.
계속해서 도 1을 참조하면, 키 발생기(140)는 메모리(120)로부터 난수(RN; Random Number)를 입력받고, 키(KEY)를 생성한다. 여기에서, 난수(RN)는 메모리(120)로부터 읽은 읽기 데이터(RD; Read Data)일 수 있다. 키 발생기(140)는 메모리(120)로부터 제공된 읽기 데이터(RD) 또는 사용자 정보(user information) 등을 이용하여 키(KEY)를 생성한다.
본 발명의 실시 예에 따른 메모리 시스템(100)은 메모리(120)의 읽기 데이터(RD; Read Data)를 이용하여 키(KEY)를 생성하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다. 여기에서, 메모리 시스템(100)은 메모리(120)의 물리적 특성을 기반으로, 읽기 데이터(RD)를 난수(RN)로 이용할 수 있다. 메모리(120)의 물리적 특성을 기반으로 하는 난수(RN) 생성 방법이 이하에서 자세하게 설명될 것이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 시스템을 보여주는 블록도이다. 도 2를 참조하면, 플래시 메모리 시스템(1000)은 플래시 메모리(1100) 및 메모리 컨트롤러(1200)를 포함한다. 플래시 메모리 시스템(1000)에는 메모리 카드, USB 메모리, SSD 등과 같이, 플래시 메모리를 기반으로 하는 데이터 저장 장치가 모두 포함될 수 있다.
플래시 메모리(1100)는 메모리 컨트롤러(1200)의 제어에 따라 소거, 쓰기 또는 읽기 동작 등을 수행할 수 있다. 도 2를 참조하면, 플래시 메모리(1100)는 메모리 셀 어레이(1110) 및 데이터 입출력 회로(1140)를 포함한다. 플래시 메모리(1100)는 메모리 블록 단위로 소거 동작을 수행하고, 페이지 단위로 쓰기 또는 읽기 동작을 수행한다.
메모리 컨트롤러(1200)는 외부(예를 들면, 호스트)의 요청에 응답하여 플래시 메모리(1100)에 대한 읽기 및 쓰기 동작들을 제어한다. 메모리 컨트롤러(1200)는 호스트 인터페이스(1210), 플래시 인터페이스(1220), 제어 유닛(1230), 램(1240), 키 발생기(1250), 그리고 암호화 회로(1260)를 포함한다.
호스트 인터페이스(1210)는 외부(예를 들면, 호스트)와의 인터페이스를 제공하고, 플래시 인터페이스(1220)는 플래시 메모리(1100)와의 인터페이스를 제공한다. 호스트 인터페이스(1210)는 PATA 버스(parallel AT attachment bus), SATA 버스(serial AT attachment), SCSI, USB 등을 통해 호스트와 연결될 수도 있다.
제어 유닛(1230)은 플래시 메모리(1100)에 대한 전반적인 동작(예를 들면, 읽기, 쓰기, 파일 시스템 관리 등)을 제어할 수 있다. 예를 들면, 비록 도면에는 도시되지 않았지만, 제어 유닛(1230)은 중앙처리장치(CPU), 프로세서(processor), 에스램, DMA 제어기 등을 포함할 수 있다.
램(1240)은 제어 유닛(1230)의 제어에 따라 동작하며, 워크 메모리(work memory), 버퍼 메모리(buffer memory), 캐시 메모리(cache memory) 등으로 사용될 수 있다. 램(1240)이 워크 메모리로 사용되는 경우에, 제어 유닛(1230)에 의해서 처리되는 데이터가 임시 저장된다. 램(1240)이 버퍼 메모리로 사용되는 경우에는, 호스트에서 플래시 메모리(1100)로 또는 플래시 메모리(1100)에서 호스트로 전송될 데이터를 버퍼링하는 데 사용된다. 램(1240)이 캐시 메모리로 사용되는 경우에는 저속의 플래시 메모리(1100)가 고속으로 동작하도록 한다.
램(1240)은 플래시 변환 계층(FTL)을 구동하기 위한 구동 메모리로 사용될 수 있다. 플래시 변환 계층(FTL)은 플래시 메모리의 머지 동작(merge operation)이나 맵핑 테이블(mapping table) 등을 관리하는 데 사용된다.
키 발생기(1250)는 플래시 메모리(1100)로부터 제공되는 읽기 데이터를 난수(RN)로 이용한다. 키 발생기(1250)는 플래시 메모리(1100)로부터 제공되는 난수(RN)를 이용하여, 키(KEY)를 생성한다. 키 발생기(1250)는 여러 가지 방법으로 키(KEY)를 생성한다. 일반적으로 키 발생기(1250)는 사용자 정보나 난수(random number)를 조합하여 생성한다. 암호화 회로(1260)는 키 발생기(1250)로부터 키(KEY)를 입력받고, 데이터(DATA)를 암호화한다.
한편, 종래의 키 발생기는 난수를 생성하기 위해서 난수 발생기를 별도로 구비한다. 그러나 본 발명의 실시 예에 따른 플래시 메모리 시스템(1000)은 플래시 메모리(1100)의 읽기 데이터(RD; Read Data)를 난수(RN)로 이용하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.
도 3은 도 2에 도시된 플래시 메모리를 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 플래시 메모리(1100)는 메모리 셀 어레이(1110), 어드레스 디코더(1120), 페이지 버퍼 회로(1130), 데이터 입출력 회로(1140), 전압 발생기(1150), 그리고 제어 로직(1160)을 포함한다.
메모리 셀 어레이(1110)는 복수의 메모리 블록(memory block)으로 구성될 수 있다. 도 3에서는 예로서 하나의 메모리 블록이 도시되어 있다. 각각의 메모리 블록은 복수의 물리 페이지(physical page)로 구성될 수 있다. 여기에서, 물리 페이지는 하나의 워드 라인에 연결되어 있는 메모리 셀의 집합을 의미한다. 도 3에서 참조번호 1111은 하나의 물리 페이지의 예이다. 각각의 물리 페이지는 복수의 메모리 셀로 구성될 수 있다. 각각의 메모리 셀은 컨트롤 게이트와 플로팅 게이트를 갖는 셀 트랜지스터로 구성될 수 있다.
메모리 셀 어레이(1110)는 복수의 셀 스트링(cell string)으로 구성되어 있다. 각각의 셀 스트링(예를 들면, 1112)은 스트링 선택 라인(SSL; String Selection Line)에 연결되는 스트링 선택 트랜지스터, 복수의 워드 라인(WL0~WL63)에 연결되는 복수의 메모리 셀, 그리고 접지 선택 라인(GSL; Ground Selection Line)에 연결되는 접지 선택 트랜지스터를 포함한다. 스트링 선택 트랜지스터는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터는 공통 소스 라인(CSL; Common Source Line)에 연결된다.
플래시 메모리(1100)의 하나의 메모리 셀에는 싱글 비트 데이터(single bit data) 또는 두 비트 이상의 멀티 비트 데이터(multi bit data)가 저장될 수 있다. 싱글 비트 데이터를 저장하는 SLC 플래시 메모리는 문턱 전압 분포에 따라 소거 상태와 프로그램 상태를 갖는다. 멀티 비트 데이터를 저장하는 MLC 플래시 메모리는 문턱 전압 분포에 따라 하나의 소거 상태와 복수의 프로그램 상태를 갖는다.
계속해서 도 3을 참조하면, 어드레스 디코더(1120)는 선택 라인(SSL, GSL) 또는 워드 라인(WL0~WL63)을 통해 메모리 셀 어레이(1110)와 연결된다. 프로그램 또는 읽기 동작 시에, 어드레스 디코더(1120)는 어드레스(ADDR)를 입력받고, 어느 하나의 워드 라인(예를 들면, WL0)을 선택할 수 있다.
페이지 버퍼 회로(1130)는 비트 라인(BL0~BLm)을 통해 메모리 셀 어레이(1110)와 연결된다. 페이지 버퍼 회로(1130)는 복수의 페이지 버퍼(도시되지 않음)로 구성된다. 하나의 페이지 버퍼에는 하나의 비트 라인이 연결(all BL 구조)되거나, 두 개 또는 그 이상의 비트 라인이 연결(shield BL 구조)될 수도 있다. 페이지 버퍼 회로(1130)는 선택 페이지(1111)에 프로그램될 데이터나 선택 페이지(1111)로부터 읽은 데이터를 임시로 저장할 수 있다.
데이터 입출력 회로(1140)는 내부적으로는 데이터 라인(DL)을 통해 페이지 버퍼 회로(1130)와 연결되고, 외부적으로는 입출력 라인(I/O)을 통해 메모리 컨트롤러(도 2 참조, 1200)와 연결된다. 데이터 입출력 회로(1140)는 프로그램 동작 시 메모리 컨트롤러(1200)로부터 프로그램 데이터(program data)를 입력받는다. 그리고 데이터 입출력 회로(1140)는 읽기 동작 시 읽기 데이터(read data)를 메모리 컨트롤러(1200)로 제공하며, 난수 생성 동작 시에는 난수(random number)를 출력(read out)할 수 있다.
전압 발생기(1150)는 메모리 컨트롤러(1200)로부터 전원(PWR)을 입력받고, 데이터를 읽거나 쓰는 데 필요한 워드 라인 전압(VWL)을 발생한다. 워드 라인 전압(VWL)은 어드레스 디코더(1120)로 제공된다. 도 3을 참조하면, 전압 발생기(1150)는 선택 읽기 전압 발생기(Vrd generator, 1151), 비선택 읽기 전압 발생기(Vread generator, 1152), 그리고 난수 읽기 전압 발생기(Vrn generator, 1153)를 포함한다.
선택 읽기 전압 발생기(1151)는 선택된 워드 라인(예를 들면, WL0)으로 선택 읽기 전압(Vrd)을 제공한다. 그리고 비선택 읽기 전압 발생기(1152)는 비선택된 워드 라인(WL1~WL63)으로 비선택 읽기 전압(Vread)을 제공한다. 비선택 읽기 전압(Vread)은 셀 스트링에 연결된 메모리 셀을 충분히 턴 온 시킬 수 있는 전압 레벨이다.
난수 읽기 전압 발생기(1153)는 난수 생성 동작 시에 난수 읽기 전압(Vrn)을 발생한다. 난수 생성 동작 시에, 난수 읽기 전압 발생기(1153)는 선택 워드 라인(WL0)으로 난수 읽기 전압(Vrn)을 제공하고, 비선택 읽기 전압 발생기(1152)는 비선택 워드 라인(WL1~WL63)으로 비선택 읽기 전압(Vread)을 제공한다. 난수 읽기 전압(Vrn)은 플래시 메모리 셀의 문턱 전압 분포 특성을 통해 구할 수 있다. 이는 도 4 및 도 5에서 좀 더 상세하게 설명될 것이다.
제어 로직(1160)은 커맨드(CMD), 어드레스(ADDR), 그리고 제어신호(CTRL)를 이용하여, 플래시 메모리(1100)의 프로그램, 읽기, 소거 등의 동작을 제어할 수 있다. 예를 들면, 제어 로직(1160)은 읽기 동작 시에, 어드레스 디코더(1120)를 제어함으로 선택 워드 라인(예를 들면, WL0)으로 선택 읽기 전압(Vrd)이 제공되도록 하고, 페이지 버퍼 회로(1130) 및 데이터 입출력 회로(1140)를 제어함으로, 선택 페이지(1111)에 프로그램된 데이터를 읽을 수 있다. 한편, 제어 로직(1160)은 난수 생성 동작 시에, 선택 워드 라인(WL0)으로 난수 읽기 전압(Vrn)을 제공함으로, 난수를 생성할 수 있다.
도 4는 플래시 메모리 셀의 문턱 전압 분포를 보여주는 다이어그램이다. 도 4에서 가로축은 메모리 셀의 문턱 전압을 나타내고, 세로축은 메모리 셀의 수를 나타낸다.
난수(random number)를 생성할 수 있는 플래시 메모리의 물리적 특성들 중에는 프로그램 노이즈(program noise)와 읽기 노이즈(read noise)가 있다. 프로그램 노이즈는 각각의 메모리 셀마다 서로 다른 문턱 전압 이동 속도를 갖는 것에 기인한다. 프로그램 노이즈는 메모리 셀의 문턱 전압 분포에 영향을 주는 요소로서, 각각의 프로그램 상태는 정규 분포와 유사한 분포를 갖는다. 플래시 메모리를 이용한 난수의 생성은 프로그램 상태의 정규 분포 특성을 이용한 것이다.
읽기 노이즈는 특정 데이터가 저장된 동일 페이지에 동일 읽기 전압을 인가해도 읽기 데이터가 달라지는 현상으로 나타난다. 플래시 메모리는 이러한 읽기 노이즈 특성을 이용하여 난수를 생성할 수도 있다.
도 4에서 보는 바와 같이, 하나의 페이지 내의 모든 메모리 셀을 특정 데이터(예를 들면, 0)로 프로그램하면, 메모리 셀의 문턱 전압 분포는 정규 분포 곡선을 형성한다. 이때 난수 읽기 전압(Vrn)은 문턱 전압 분포의 중간값에 해당하는 전압일 수 있다. 난수 읽기 전압(Vrn)을 선택 워드 라인(WL0)에 인가하고, 비선택 읽기 전압(Vread)을 비선택 워드 라인(WL1~WL63)에 인가하고 읽기 동작을 수행한다.
이러한 난수 생성 동작을 통해 하나의 페이지에 해당하는 난수를 생성할 수 있다. 여러 페이지에 대해 난수 생성 동작을 수행하면, 해당하는 페이지 사이즈만큼의 난수를 얻을 수 있다. 도 4에서는 SLC 프로그램 동작의 경우를 예로 하고 있지만, MLC 프로그램 동작의 경우에도 각각의 프로그램 상태로부터 난수를 얻을 수 있다.
도 5는 플래시 메모리 셀의 원 샷(one shot) 문턱 전압 분포를 보여주는 다이어그램이다. 적어도 하나의 페이지를 동일 데이터(예를 들면, 데이터 0)로 SLC 프로그램하면, 메모리 셀은 도 5에서 보는 바와 같이 원 샷(one shot) 문턱 전압 분포를 갖는다. 플래시 메모리(도 3 참조, 1100)는 여러 레벨의 난수 읽기 전압을 통해 난수를 생성할 수 있다.
도 5는 3개의 난수 읽기 전압(Vrn1, Vrn2, Vrn3)을 인가하는 예를 보여준고 있다. 선택 워드 라인(WL0)에 제 1 내지 제 3 난수 읽기 전압(Vrn1, Vrn2, Vrn3)을 차례대로 인가하고, 난수 생성 동작을 수행하면, 페이지 내의 각 셀의 문턱 전압에 따라, 제 1 내지 제 3 난수가 생성된다.
도 6은 도 5에 도시된 난수 읽기 전압으로 인해 발생하는 난수 및 키 생성 방법을 보여주는 도표이다. 도 6에서 제 1 난수(RN1)는 제 1 난수 읽기 전압(Vrn1)을 선택 워드 라인(예를 들면, WL0)에 인가할 때 발생하는 읽기 데이터이다. 마찬가지로, 제 2 및 제 3 난수(RN2)는 제 2 난수 읽기 전압(Vrn2)을 인가할 때 발생하는 읽기 데이터이다. 제 1 내지 제 3 난수(RN1~RN3)로부터 발생하는 키(KEY)는 여러 가지 방법으로 구할 수 있다. 도 6에서는 제 1 내지 제 3 난수(RN1~RN3)을 XOR 연산할 통해 키(KEY)를 구하는 예가 도시되어 있다.
도 7은 도 2에 도시된 플래시 메모리 시스템의 난수 생성 방법을 설명하기 위한 순서도이다. 이하에서는 도 2 및 도 3을 참조하며, 본 발명의 실시 예에 따른 플래시 메모리 시스템의 난수 생성 방법이 설명된다.
S110 단계에서, 난수를 발생할 워드 라인(예를 들면, WL0)이 선택된다. 도 3에서는 난수를 발생할 워드 라인(WL0)이 하나만 도시되어 있지만, 더 많은 수의 워드 라인이 선택될 수도 있다. 플래시 메모리(도 3 참조, 1100)는 페이지 단위로 프로그램 및 읽기 동작이 수행되기 때문에, 여러 개의 워드 라인이 선택되는 경우에도 프로그램이나 읽기 동작은 각각의 선택 워드 라인에 대해 별개로 수행된다.
S120 단계에서, 선택 페이지는 모두 동일 데이터(예를 들면, 데이터 0)로 프로그램된다. 이를 위해, 페이지 버퍼 회로(1130) 내의 모든 페이지 버퍼에 데이터 0이 로드된 다음에, 선택 페이지가 모두 0으로 프로그램된다. 선택 페이지가 0으로 프로그램되면, 메모리 셀의 문턱 전압 분포는 도 5에 도시된 바와 같이 원 샷(one shot) 문턱 전압 분포를 갖는다.
S130 단계에서, 선택 워드 라인(WL0)에 난수 읽기 전압(Vrn)이 인가된다. 비선택 워드 라인(WL1~WL63)에는 비선택 읽기 전압(Vread)이 제공된다. 선택 워드 라인(WL0)에 인가되는 난수 읽기 전압(Vrn)은 문턱 전압 분포의 중간값에 해당하는 전압이다. 실시 예에 따라서는 도 5에서 보는 바와 같이 여러 레벨의 난수 읽기 전압이 인가될 수도 있다.
S140 단계에서, 선택된 페이지를 읽는다. 난수 읽기 전압(Vrn)이 문턱 전압 분포의 중간값이기 때문에, 선택 페이지로부터 읽은 데이터는 난수(random number)로 사용할 수 있다.
S150 단계에서, 선택 페이지로부터 읽는 데이터는 메모리 컨트롤러(도 2 참조, 1200)의 키 발생기(1250)로 제공된다. 키 발생기(1250)는 플래시 메모리(1100)의 읽기 데이터를 난수(random number)로 사용하여 키(KEY)를 생성한다. 암호화 회로(1260)는 키 발생기(1250)로부터 제공되는 키(KEY)를 이용하여 데이터를 암호화한다.
이상에서 설명한 바와 같이, 본 발명의 실시 예에 따른 플래시 메모리 시스템(1000)은 플래시 메모리 셀의 문턱 전압 분포의 특성을 이용하여 난수를 발생할 수 있다. 본 발명은 플래시 메모리(1100)의 물리적 특성을 이용하여 난수를 발생하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.
도 8은 본 발명의 다른 실시 예에 따른 플래시 메모리 시스템을 보여주는 블록도이다. 도 8을 참조하면, 플래시 메모리 시스템(2000)은 플래시 메모리(2100) 및 메모리 컨트롤러(2200)를 포함한다. 메모리 컨트롤러(2200)는 호스트 인터페이스(2210), 플래시 인터페이스(2220), 제어 유닛(2230), 램(2240), 그리고 암호화 회로(2250)를 포함한다.
도 8에 도시된 플래시 메모리 시스템(2000)에서는 키 발생기(2165)가 플래시 메모리(2100) 내에 포함된다. 플래시 메모리(2100)는 내부적으로 읽기 데이터를 이용하여 키(KEY)를 하고, 생성한 키(KEY)를 메모리 컨트롤러(2200)의 암호화 회로(2250)로 제공한다. 키 발생기(2165)를 포함한 플래시 메모리(2100)의 내부 구성 및 동작은 도 9에서 상세하게 설명될 것이다.
도 9는 도 8에 도시된 플래시 메모리를 예시적으로 보여주는 블록도이다. 도 9를 참조하면, 플래시 메모리(2100)는 메모리 셀 어레이(2110), 어드레스 디코더(2120), 페이지 버퍼 회로(2130), 데이터 입출력 회로(2140), 전압 발생기(2150), 그리고 제어 로직(2160)을 포함한다.
전압 발생기(2150)는 선택 읽기 전압 발생기(Vrd generator, 2151), 비선택 읽기 전압 발생기(Vread generator, 2152), 그리고 난수 읽기 전압 발생기(Vrn generator, 2153)를 포함한다. 난수 읽기 전압 발생기(2153)는 난수 생성 동작 시에 선택 워드 라인(WL0)으로 난수 읽기 전압(Vrn)을 제공한다.
제어 로직(2160)은 키 발생기(2165)를 포함한다. 키 발생기(2165)는 난수 생성 동작 시에, 데이터 입출력 회로(2140)로부터 난수(random number)를 입력받고, 키(KEY)를 생성한다. 키(KEY)는 데이터 입출력 회로(2140)를 통해 메모리 컨트롤러(도 8 참조, 2200)의 암호화 회로(2250)로 제공된다. 암호화 회로(2250)는 플래시 메모리(2100)로부터 제공된 키(KEY)를 이용하여 데이터를 암호화하고, 암호화된 데이터를 플래시 메모리(2100) 또는 다른 메모리(도시되지 않음)에 제공한다.
도 8에 도시된 플래시 메모리 시스템(2000)은 도 2에 도시된 플래시 메모리 시스템(1000)과 동일한 방법으로, 플래시 메모리 셀의 문턱 전압 분포의 특성을 이용하여 난수를 생성한다. 본 발명은 플래시 메모리(2100)의 물리적 특성을 이용하여 난수를 발생하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 10을 참조하면, 메모리 시스템(200)은 제어 유닛(210), 플래시 메모리(220), 보안 회로(230), 그리고 키 발생기(240)를 포함한다.
플래시 메모리(220)는 슬로우 비트 카운터(221)를 포함한다. 도 10에 도시된 메모리 시스템(200)은 플래시 메모리(220)의 슬로우 비트(SB; Slow Bits)의 수를 난수(random number)로 이용하여 키(KEY)를 생성할 수 있다. 플래시 메모리(220)의 슬로우 비트(SB) 물리적 특성을 기반으로 하는 난수(RN) 발생 방법이 이하에서 자세하게 설명될 것이다.
보안 회로(230)는 암호화 회로(231) 및 복호화 회로(232)를 포함한다. 암호화 회로(131)는 어드레스(ADDR) 및 키(KEY)를 입력받고, 데이터(DATA)를 암호화할 수 있다. 여기에서, 키(KEY)는 키 발생기(240)로부터 제공된다. 암호화된 데이터(Encrypted DATA)는 플래시 메모리(220)에 저장된다.
도 11은 도 10에 도시된 메모리 시스템의 난수 생성 방법을 설명하기 위한 다이어그램 및 도표이다. 플래시 메모리(220)는 프로그램 동작 시에 슬로우 셀(slow cell)의 수가 랜덤(random)하다는 물리적 특성을 이용하여 난수(random number)를 생성할 수 있다.
도 11을 참조하면, 플래시 메모리 셀은 문턱 전압 분포에 따라 복수의 프로그램 상태(P1, P2, P3)를 가질 수 있다. 플래시 메모리(220)는 선택 워드 라인(도 3 참조, WL0)에 프로그램 전압을 인가한 다음에, 프로그램 검증 동작을 수행한다. 프로그램 검증 동작은 프로그램 검증 전압(예를 들면, Vf1, Vf2)을 선택 워드 라인에 인가함으로 수행된다. 여기에서, Vf1은 메모리 셀이 P1 상태로 프로그램되었는지를 검증하기 위한 전압이고, Vf2는 P2 상태인지를 검증하기 위한 전압이다.
프로그램 검증 전압(Vf1, Vf2)에 도달하지 못한 슬로우 셀(slow cell)의 수는 랜덤하기 때문에, 슬로우 비트의 수를 통해 난수를 생성할 수 있다. 도 11의 예에서, 제 1 슬로우 비트(SB1)는 Vf1 검증을 통해 생성된 슬로우 비트를 나타내고, 제 2 슬로우 비트(SB2)는 Vf2 검증을 통해 생성된 슬로우 비트를 나타낸다. 키(KEY)는 제 1 및 제 2 슬로우 비트(SB1, SB2)를 XOR 연산하여 생성할 수 있다.
또 다른 난수 생성 방법으로는 읽기 노이즈(read noise) 특성을 이용하는 방법이 있다. 읽기 노이즈는 특정 데이터가 기록된 동일한 페이지에 대하여 동일한 읽기 전압으로 읽었음에도 불구하고, 선택 페이지로부터 페이지 버퍼로 내려오는 데이터가 서로 달라지는 물리적 현상이다. 읽기 노이즈는 플래시 메모리의 물리적 특성으로 이것을 이용하여 난수를 생성할 수도 있다.
한편, 본 발명에 따른 메모리 시스템은 플래시 메모리의 P/E 사이클에 따라 여러 가지 난수 생성 방법을 번갈아가며 사용할 수 있다. 예를 들면, P/E 사이클 초기 단계에서는 플래시 메모리의 문턱 전압 분포 특성을 이용하여 난수를 생성하고, 후기 단계에서는 슬로우 비트 특성을 이용하여 난수를 생성할 수 있다.
또한, 본 발명에 따른 메모리 시스템은 동작 모드에 따라 난수 생성 방법을 변경할 수 있다. 예를 들면, 본 발명의 실시 예에 따른 메모리 시스템은 문턱 전압 분포 특성을 이용한 난수 생성 모드와 슬로우 비트 특성을 이용한 모드를 갖고, 모드 변경을 통해 난수 생성 방법을 바꿀 수 있다.
한편, 본 발명에 따른 메모리 시스템은 위에서 설명한 방법으로 플래시 메모리에서 생성된 데이터를 의사 난수 생성기의 씨드(seed)로 사용할 수 있다. 예를 들면, 도 2에 도시된 플래시 메모리 시스템(1000)에서 키 발생기(1250) 내에 난수(random number)를 생성하기 위한 의사 난수 생성기를 포함하고 있는 경우에, 의사 난수 생성기는 플래시 메모리(1100)로부터 제공되는 씨드(seed)를 사용하여 난수(random)를 생성할 수도 있다.
여기에서, 플래시 메모리(1100)는 선택된 페이지를 동일 데이터로 프로그램한 다음에, 선택된 워드 라인에 씨드 읽기 전압을 제공하고 선택된 페이지를 읽음으로 씨드를 생성할 수 있다. 플래시 메모리는 문턱 전압 분포 내의 특정 전압 레벨에 해당하는 전압을 씨드 읽기 전압으로 제공할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 메모리 시스템은 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PSP, PDA 등과 같은 전자 장치들뿐만 아니라, 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD라 함) 등과 같은 저장 장치로 구현될 수 있다.
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3200)를 포함한다. 호스트(3100)는 호스트 컨트롤러(3110), 호스트 접속 유닛(3120), 그리고 디램(3130)을 포함한다.
호스트(3100)는 메모리 카드(3200)에 데이터를 쓰거나, 메모리 카드(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(3100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(3120)을 통해 메모리 카드(3200)로 전송한다. 디램(3130)은 호스트(3100)의 메인 메모리이다.
메모리 카드(3200)는 카드 접속 유닛(3210), 카드 컨트롤러(3220), 그리고 플래시 메모리(3230)를 포함한다. 카드 컨트롤러(3220)는 카드 접속 유닛(3210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(3220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(3230)에 저장한다. 플래시 메모리(3230)는 호스트(3100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(3100)가 디지털 카메라인 경우, 메모리 카드(3200)는 영상 데이터를 저장한다.
도 12에 도시된 메모리 카드 시스템(3000)은 카드 컨트롤러(3220) 또는 플래시 메모리(3230) 내에 키 발생기(도 2 또는 도 8 참조)를 포함할 수 있다. 본 발명에 따른 메모리 카드 시스템(3000)은 앞에서 설명한 난수 생성 방법을 통해, 별도의 난수 발생기를 구비하지 않고도 난수를 생성할 수 있다. 본 발명은 이를 통해 메모리 카드의 면적을 그대로 유지하면서 데이터 신뢰성을 유지할 수 있다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 13을 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다. 호스트(4100)는 호스트 인터페이스(4111), 호스트 컨트롤러(4120), 그리고 디램(4130)을 포함한다.
호스트(4100)는 SSD(4200)에 데이터를 쓰거나, SSD(4200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(4120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(4111)를 통해 SSD(4200)로 전송한다. 디램(4130)은 호스트(4100)의 메인 메모리이다.
SSD(4200)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 불휘발성 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(4201~420n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(4210)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 14를 참조하여 상세하게 설명된다.
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
도 14는 도 13에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), 암호화 회로(4213), 제어 유닛(4214), 그리고 에스램(4215)을 포함한다.
NVM 인터페이스(4211)는 호스트(4100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 불휘발성 메모리(4201~420n)로부터 읽은 데이터를 호스트 인터페이스(4212)를 경유하여 호스트(4100)로 전달한다.
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
암호화 회로(4213)는 SSD 컨트롤러(4210) 또는 불휘발성 메모리(4201~420n)에 포함된 키 발생기로부터 키(KEY)를 입력받고, 데이터를 암호화할 수 있다. 제어 유닛(4214)은 호스트(4100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(4214)은 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 불휘발성 메모리(4201~420n)를 제어한다. 제어 유닛(4214)은 SSD(4200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(4201~420n)의 동작을 제어한다.
에스램(4215)은 불휘발성 메모리(4201~420n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(4215)은 호스트(4100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(4215)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(4220)를 이용하여 불휘발성 메모리(4201~420n)에 저장될 수 있다.
다시 도 13을 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(4000)은 불휘발성 메모리 셀의 문턱 전압 분포의 특성을 이용하여 난수를 생성한다. 본 발명은 불휘발성 메모리의 물리적 특성을 이용하여 난수를 발생하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.
도 15는 본 발명의 실시 예에 따른 플래시 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 15를 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 디램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다. 메모리 시스템(5100)은 전자 장치(5000)에 내장될 수 있다.
본 발명에 따른 전자 장치(5000)는 플래시 메모리 셀의 문턱 전압 분포의 특성을 이용하여 난수를 생성한다. 본 발명은 플래시 메모리(5110)의 물리적 특성을 이용하여 난수를 발생하기 때문에, 별도의 난수 발생기를 필요로 하지 않는다.
본 발명의 실시 예에 따른 메모리 시스템은 2차원 구조를 갖는 플래시 메모리뿐만 아니라, 3차원 구조를 갖는 플래시 메모리에도 적용될 수 있다. 도 16은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다. 도 16을 참조하면, 플래시 메모리(6000)는 3차원 셀 어레이(6110), 데이터 입출력 회로(6120), 어드레스 디코더(6130), 그리고 제어 로직(6140)을 포함한다.
3차원 셀 어레이(6110)는 복수의 메모리 블록(BLK1~BLKz)을 포함한다. 각각의 메모리 블록은 3차원 구조 (또는 수직 구조)를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다. 각각의 메모리 블록은 플래시 메모리(6100)의 소거 단위를 이룬다.
데이터 입출력 회로(6120)는 복수의 비트 라인(BLs)을 통해 3차원 셀 어레이(6110)와 연결된다. 데이터 입출력 회로(6120)는 외부로부터 데이터(DATA)를 입력받거나, 3차원 셀 어레이(6110)로부터 읽은 데이터(DATA)를 외부로 출력한다. 어드레스 디코더(6130)는 복수의 워드 라인(WLs) 및 선택 라인(GSL, SSL)을 통해 3차원 셀 어레이(6110)와 연결된다. 어드레스 디코더(6130)는 어드레스(ADDR)를 입력받고 워드 라인을 선택한다.
제어 로직(6140)은 플래시 메모리(6000)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(6140)은 프로그램 동작 시에, 어드레스 디코더(6130)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(6120)를 제어함으로 데이터가 프로그램되도록 할 수 있다.
도 17은 도 16에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다. 도 17을 참조하면, 메모리 블록(BLK1)은 기판(SUB)과 수직 방향으로 형성되어 있다. 기판(SUB)에는 n+ 도핑 영역이 형성된다. 기판(SUB) 위에는 게이트 전극막(gate electrode layer)과 절연막(insulation layer)이 교대로 증착된다. 그리고 게이트 전극막(gate electrode layer)과 절연막(insulation layer) 사이에는 전하 저장막(charge storage layer)이 형성될 수 있다.
게이트 전극막과 절연막을 수직 방향으로 패터닝(vertical patterning)하면, V자 모양의 필라(pillar)가 형성된다. 필라는 게이트 전극막과 절연막을 관통하여 기판(SUB)과 연결된다. 필라(Pillar)의 외곽 부분(O)은 채널 반도체로 구성될 수 있고, 내부(I)는 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 17을 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1~WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트 라인(BL1~BL3)과 연결될 수 있다. 도 13에서는, 하나의 메모리 블록(BLK1)이 2개의 선택 라인(GSL, SSL), 8개의 워드 라인(WL1~WL8), 그리고 3개의 비트 라인(BL1~BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
도 18은 도 17에 도시된 메모리 블록(BLK1)의 등가 회로도이다. 도 18을 참조하면, 비트 라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에는 낸드 스트링(NS11~NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀(MC1~MC8), 그리고 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL1~SSL3)에 연결되어 있다. 복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL1~GSL3)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결되어 있다.
계속해서 도 18을 참조하면, 동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되어 있고, 접지 선택 라인(GSL1~GSL3) 및 스트링 선택 라인(SSL1~SSL3)은 분리되어 있다. 제 1 워드 라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀(이하, 페이지라 함)을 프로그램하는 경우에는, 제 1 워드 라인(WL1)과 제 1 선택 라인(SSL1, GSL1)이 선택된다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000: 플래시 메모리 시스템 1100: 플래시 메모리
1200: 메모리 컨트롤러 1210: 호스트 인터페이스
1220: 플래시 인터페이스 1230: 제어 유닛
1240: 램 1250: 키 발생기
1260: 암호화 회로

Claims (20)

  1. 복수의 프로그램 상태들 중 적어도 하나로 프로그램 되는 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치에서 난수를 생성하는 방법에 있어서:
    상기 복수의 메모리 셀들의 각각을 상기 복수의 프로그램 상태들 중 동일한 프로그램 상태로 프로그램 하는 단계;
    상기 메모리 셀들의 특성에 따라 선택된 난수 읽기 전압을 이용하여, 상기 프로그램 된 메모리 셀들로부터 데이터를 읽는 단계; 그리고
    상기 프로그램 된 메모리 셀들로부터 읽혀진 상기 데이터를 상기 난수로써 제공하는 단계를 포함하되,
    상기 난수 읽기 전압은 상기 프로그램 된 메모리 셀들의 문턱 전압 산포 내에서 선택되고, 상기 복수의 메모리 셀들의 프로그램 동안 상기 복수의 메모리 셀들의 각각이 슬로우 셀로서 응답하는지 여부를 검증하는데 사용되는 프로그램 검증 전압인 방법.
  2. 제 1 항에 있어서,
    상기 데이터를 제공하는 단계는 별도의 난수 생성 회로의 사용 없이 수행되는 방법.
  3. 제 1 항에 있어서,
    상기 메모리 셀들의 상기 특성은, 상기 메모리 셀들의 상기 프로그램에 응답하는, 상기 메모리 셀들에 대한 상기 문턱 전압 산포인 방법.
  4. 제 1 항에 있어서,
    상기 난수 읽기 전압은 상기 문턱 전압 산포의 중앙에서 선택되는 방법.
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    상기 프로그램 된 메모리 셀들은 워드 라인에 공통으로 연결된 물리적 페이지에 배치되는 방법.
  8. 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치에서 난수를 생성하는 방법에 있어서:
    상기 복수의 메모리 셀들의 각각을 동일한 프로그램 상태로 프로그램 하는 단계;
    상기 메모리 셀들의 특성에 따라 선택된 난수 읽기 전압을 이용하여 상기 프로그램 된 메모리 셀들로부터 데이터를 읽어, 읽기 데이터를 생성하는 단계; 그리고
    상기 읽기 데이터로부터 상기 난수를 생성하는 단계를 포함하되,
    상기 메모리 셀들의 상기 특성은 상기 메모리 셀들의 상기 프로그램에 응답하여 상기 메모리 셀들 중 적어도 하나에 의한 슬로우 셀 응답(slow cell response) 인 방법.
  9. 불휘발성 메모리 셀들의 특성에 기반하여 선택된 난수 읽기 전압을 사용하여, 복수의 프로그램 상태들 중 동일한 프로그램 상태로 프로그램 된 상기 불휘발성 메모리 셀들로부터 랜덤 읽기 데이터를 획득하는 단계; 그리고
    상기 랜덤 읽기 데이터를 논리적으로 조합하여 난수를 생성하는 단계를 포함하되,
    상기 난수 읽기 전압은 상기 불휘발성 메모리 셀들의 상기 프로그램에 응답하여 상기 불휘발성 메모리 셀들에 대한 문턱 전압 산포 내에서 선택되고,
    상기 불휘발성 메모리 셀들의 상기 특성은 상기 메모리 셀들의 상기 프로그램에 응답하여 상기 메모리 셀들 중 적어도 하나에 의한 슬로우 셀 응답(slow cell response)인 방법.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 난수로부터 암호화 키를 생성하는 단계; 그리고
    상기 암호화 키를 사용하여, 메모리 컨트롤러 및 상기 불휘발성 메모리 셀들을 포함하는 메모리를 포함하는 메모리 시스템에 의해 수신된 데이터를 암호화하는 단계를 더 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 암호화 키를 생성하는 단계는 상기 메모리 컨트롤러 및 상기 메모리 중 하나에 배치되는 키 생성기에 의해 수행되는 방법.
  13. 제 9 항에 있어서,
    상기 난수 읽기 전압은 상기 문턱 전압 산포의 중앙에서 선택되는 방법.
  14. 불휘발성 메모리 셀들의 특성에 기반하여 선택된 난수 읽기 전압을 사용하여, 프로그램 된 불휘발성 메모리 셀들로부터 랜덤 읽기 데이터를 획득하는 단계를 포함하되,
    상기 난수 읽기 전압은, 상기 불휘발성 메모리 셀들의 프로그램 동안 상기 불휘발성 메모리 셀들의 각각이 슬로우 셀로서 응답하는지 여부를 검증하는데 사용되는 프로그램 검증 전압인 방법.
  15. 암호화 키 생성 방법에 있어서:
    프로그램 전압을 사용하여 불휘발성 메모리 셀들을 프로그램 하되, 상기 불휘발성 메모리 셀들의 각각은 상기 프로그램에 응답하여 문턱 전압 산포 내의 동일한 프로그램 상태로 프로그램 되는 단계;
    상기 문턱 전압 산포 내의 적어도 하나의 난수 읽기 전압을 이용하여 상기 프로그램 된 불휘발성 메모리 셀들을 읽음으로써 랜덤 읽기 데이터를 생성하는 단계;
    상기 랜덤 읽기 데이터를 난수로써 키 생성기에 제공하는 단계; 그리고
    상기 키 생성기를 이용하여 암호화 키를 생성하는 단계를 포함하되,
    상기 적어도 하나의 난수 읽기 전압은 상기 불휘발성 메모리 셀들의 프로그램 동안 상기 불휘발성 메모리 셀들의 각각이 슬로우 셀로서 응답하는지 여부를 검증하는데 사용되는 프로그램 검증 전압인 방법.
  16. 삭제
  17. 삭제
  18. 제 15 항에 있어서,
    상기 적어도 하나의 난수 읽기 전압은:
    대응하는 제 1 랜덤 읽기 데이터를 생성하는 제 1 난수 읽기 전압; 및
    대응하는 제 2 난수 읽기 데이터를 생성하는 제 2 난수 읽기 전압을 포함하고,
    상기 방법은:
    상기 제 1 난수 읽기 데이터 및 상기 제 2 난수 읽기 데이터를 논리적으로 조합하여 상기 난수 읽기 데이터를 생성하는 단계를 더 포함하는 방법.
  19. 삭제
  20. 삭제
KR1020120084064A 2012-07-31 2012-07-31 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법 KR102083271B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120084064A KR102083271B1 (ko) 2012-07-31 2012-07-31 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
US13/685,743 US9218159B2 (en) 2012-07-31 2012-11-27 Memory system generating random number and method generating random number
TW102113707A TWI617945B (zh) 2012-07-31 2013-04-18 隨機數產生方法、在非揮發性記憶體胞元的記憶體的操作方法以及加密金鑰產生方法
JP2013119560A JP6193629B2 (ja) 2012-07-31 2013-06-06 不揮発性メモリセルの物理的特性を利用して乱数を生成する方法
CN201310328869.4A CN103578550B (zh) 2012-07-31 2013-07-31 产生随机数的存储***与产生随机数的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120084064A KR102083271B1 (ko) 2012-07-31 2012-07-31 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법

Publications (2)

Publication Number Publication Date
KR20140017290A KR20140017290A (ko) 2014-02-11
KR102083271B1 true KR102083271B1 (ko) 2020-03-02

Family

ID=50025491

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120084064A KR102083271B1 (ko) 2012-07-31 2012-07-31 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법

Country Status (5)

Country Link
US (1) US9218159B2 (ko)
JP (1) JP6193629B2 (ko)
KR (1) KR102083271B1 (ko)
CN (1) CN103578550B (ko)
TW (1) TWI617945B (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102060996B1 (ko) * 2013-01-07 2020-02-11 삼성전자주식회사 단말기의 메모리 주소 및 데이터변환 장치 및 방법
US9529570B2 (en) * 2014-03-19 2016-12-27 Seagate Technology Llc Random number generation using pulsed programming parameters
DE102014206992A1 (de) * 2014-04-11 2015-10-15 Siemens Aktiengesellschaft Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
KR102235492B1 (ko) * 2014-08-25 2021-04-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
US9575727B2 (en) 2014-09-26 2017-02-21 Intel Corporation Methods for generating random data using phase change materials and related devices and systems
JP6587188B2 (ja) * 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
KR20170008546A (ko) * 2015-07-14 2017-01-24 에스케이하이닉스 주식회사 난수 발생 회로 및 이를 이용한 반도체 시스템
US9967094B2 (en) * 2015-08-25 2018-05-08 Nxp Usa, Inc. Data processing system with secure key generation
US9747982B1 (en) 2016-02-22 2017-08-29 Arm Ltd. Device and method for generating random numbers
US9990181B2 (en) * 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
KR101920190B1 (ko) * 2016-11-22 2019-02-08 한국인터넷진흥원 임의의 ip 생성 방법 및 그 장치
TWI620119B (zh) 2017-02-21 2018-04-01 群聯電子股份有限公司 隨機資料產生電路、記憶體儲存裝置及隨機資料產生方法
JP6865652B2 (ja) 2017-02-22 2021-04-28 キオクシア株式会社 電子機器
US10512182B2 (en) 2017-02-22 2019-12-17 Toshiba Memory Corporation Electronic apparatus
CN108536423B (zh) * 2017-03-03 2022-05-10 群联电子股份有限公司 随机数据产生电路、存储器存储装置及随机数据产生方法
JP6349008B1 (ja) * 2017-04-13 2018-06-27 力旺電子股▲ふん▼有限公司eMemory Technology Inc. 乱数発生装置及びその制御方法
US10536266B2 (en) 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
EP3407336B1 (en) * 2017-05-22 2022-08-17 Macronix International Co., Ltd. Unchangeable phyisical unclonable function in non-volatile memory
KR20190033791A (ko) * 2017-09-22 2019-04-01 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 장치 및 이들을 포함하는 메모리 시스템
US11522724B2 (en) * 2017-12-11 2022-12-06 International Business Machines Corporation SRAM as random number generator
US11728000B1 (en) 2017-12-13 2023-08-15 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for detecting counterfeit or defective memory
CN110018810B (zh) * 2018-01-10 2021-05-18 力旺电子股份有限公司 随机码产生器
TWI648739B (zh) * 2018-03-20 2019-01-21 大陸商深圳大心電子科技有限公司 記憶體管理方法與儲存控制器
US11063755B2 (en) * 2018-05-07 2021-07-13 Cryptography Research, Inc. Generating a key at a device based on a memory of the device
US11620108B1 (en) * 2018-05-17 2023-04-04 Board Of Trustees Of The University Of Alabama For And On Behalf Of The University Of Alabama In Huntsville Random number generation systems and methods
US11321475B2 (en) 2018-10-04 2022-05-03 Hewlett Packard Enterprise Development Lp Entropy data based on error correction data
KR102644274B1 (ko) * 2018-11-22 2024-03-06 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법
US11757632B2 (en) * 2018-12-19 2023-09-12 Micron Technology, Inc. Generating a random value based on a noise characteristic of a memory cell
US11139043B2 (en) 2019-05-20 2021-10-05 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for identifying counterfeit memory
KR20200137542A (ko) * 2019-05-30 2020-12-09 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 저장 장치
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US11650795B2 (en) * 2019-08-23 2023-05-16 SK Hynix Inc. Raw read based physically unclonable function for flash memory
CN110491434B (zh) * 2019-08-23 2021-04-02 上海华虹宏力半导体制造有限公司 一种闪存存储器装置及其编程方法
JP2021033687A (ja) * 2019-08-26 2021-03-01 キオクシア株式会社 メモリシステム
CN110941418B (zh) * 2019-11-26 2022-04-01 杭州浮云网络科技有限公司 一种随机数生成的方法、装置、设备及可读存储介质
US11532354B2 (en) * 2020-03-22 2022-12-20 Silicon Storage Technology, Inc. Precision tuning of a page or word of non-volatile memory cells and associated high voltage circuits for an analog neural memory array in an artificial neural network
US11232844B2 (en) * 2020-05-22 2022-01-25 Samsung Electronics Co., Ltd. Memory with adaptive slow-cell data compression
KR20210145341A (ko) * 2020-05-25 2021-12-02 삼성전자주식회사 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치
KR20220099384A (ko) 2021-01-06 2022-07-13 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR20230003972A (ko) * 2021-06-30 2023-01-06 현대자동차주식회사 디지털 랜덤 암호키 생성 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020128928A1 (en) * 2001-03-09 2002-09-12 Hiroshi Sukegawa Music distribution method for distributing production such as music, server used for said music distribution method, and music reproduction apparatus
JP2004234153A (ja) * 2003-01-29 2004-08-19 Toshiba Corp シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US20090165086A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Random number generation through use of memory cell activity

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333652A (en) * 1998-01-24 1999-07-28 Motorola Ltd Random number generator with improved equiprobability
US7170996B1 (en) * 1999-10-18 2007-01-30 Qualcomm Incorporated Random number generation for encrypting cellular communications
EP1367715B1 (en) * 2001-02-07 2009-10-21 FDK Corporation Random number generator and probability generator
JP4053792B2 (ja) * 2001-03-09 2008-02-27 株式会社東芝 音楽配信方法及び音楽再生装置
US6963888B2 (en) * 2001-11-29 2005-11-08 Koninklijke Philips Electronics N.V. Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
TW557636B (en) * 2002-03-26 2003-10-11 Ind Tech Res Inst Random number generator
DE10219135B4 (de) * 2002-04-29 2004-03-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer Zufallszahl
US7599976B1 (en) 2002-11-13 2009-10-06 Metrowerks Corporation System and method for cryptographic key generation
US7139785B2 (en) * 2003-02-11 2006-11-21 Ip-First, Llc Apparatus and method for reducing sequential bit correlation in a random number generator
TW580797B (en) * 2003-03-11 2004-03-21 Chunghwa Telecom Co Ltd Random number generator using audio card
JP4359130B2 (ja) * 2003-12-05 2009-11-04 株式会社東芝 乱数生成素子
CA2564576A1 (en) * 2004-04-26 2005-11-03 Trek 2000 International Ltd. Portable data storage device with encryption system
KR100706812B1 (ko) 2006-02-10 2007-04-12 삼성전자주식회사 반도체 장치의 물리적 파라미터들의 통계적 분포 특성을평가하는 방법
US20070230702A1 (en) 2006-04-04 2007-10-04 Research In Motion Limited Method, system and apparatus for updating encryption keys on a mobile communication device
TWI367490B (en) * 2006-09-08 2012-07-01 Sandisk Corp Method of pseudo random and command driven bit compensation for the cycling effects in flash memory and apparatus therefor
KR100969758B1 (ko) 2007-01-22 2010-07-13 삼성전자주식회사 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
KR100824203B1 (ko) * 2007-04-03 2008-04-21 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
US7826277B2 (en) * 2008-03-10 2010-11-02 Hynix Semiconductor Inc. Non-volatile memory device and method of operating the same
US8230158B2 (en) * 2008-08-12 2012-07-24 Micron Technology, Inc. Memory devices and methods of storing data on a memory device
KR101468096B1 (ko) * 2008-10-24 2014-12-04 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템
TWI387921B (zh) * 2009-04-16 2013-03-01 Univ Nat Changhua Education 利用中央極限定理之常態分佈亂數產生器及其亂數產生方法
JP5017407B2 (ja) * 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
TWI455142B (zh) * 2010-04-08 2014-10-01 Silicon Motion Inc 快閃記憶體之資料讀取的方法以及資料儲存裝置
JP5499365B2 (ja) * 2010-09-29 2014-05-21 国立大学法人神戸大学 メモリセルアレイを用いたidチップおよびその生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020128928A1 (en) * 2001-03-09 2002-09-12 Hiroshi Sukegawa Music distribution method for distributing production such as music, server used for said music distribution method, and music reproduction apparatus
JP2004234153A (ja) * 2003-01-29 2004-08-19 Toshiba Corp シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US20090165086A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Random number generation through use of memory cell activity

Also Published As

Publication number Publication date
CN103578550B (zh) 2019-05-28
TW201405359A (zh) 2014-02-01
CN103578550A (zh) 2014-02-12
JP6193629B2 (ja) 2017-09-06
JP2014032655A (ja) 2014-02-20
TWI617945B (zh) 2018-03-11
US20140037086A1 (en) 2014-02-06
US9218159B2 (en) 2015-12-22
KR20140017290A (ko) 2014-02-11

Similar Documents

Publication Publication Date Title
KR102083271B1 (ko) 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR101678907B1 (ko) 리드 디스터번스를 줄일 수 있는 불휘발성 메모리 장치 및 그것의 읽기 방법
KR102083506B1 (ko) 더미 워드 라인을 갖는 3차원 플래시 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20140020057A (ko) 키 제어 로직을 포함하는 플래시 메모리 장치 및 그것의 암호화 키 저장 방법
KR102524923B1 (ko) 저장 장치 및 그 동작 방법
KR101916192B1 (ko) 플래그 셀을 포함하는 불휘발성 메모리 장치 및 그것의 사용자 장치
US9910607B2 (en) Method of managing a memory, and a memory system
KR102128825B1 (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
KR102568203B1 (ko) 비휘발성 메모리 장치
KR20100107294A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치의 프로그램 방법
KR102345597B1 (ko) 더미 워드 라인을 갖는 3차원 플래시 메모리 장치
KR20170101000A (ko) 메모리 장치의 프로그램 방법 및 이를 적용하는 메모리 시스템
KR20130060749A (ko) 불휘발성 메모리 장치, 그것의 읽기 방법 및 그것을 포함하는 데이터 저장 장치
US20140006859A1 (en) Storage system and data managing method thereof
KR20120046846A (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
KR20110102735A (ko) 워드 라인들 사이의 간섭을 줄이기 위한 불휘발성 메모리 장치 및 그것의 동작 방법
US20170117056A1 (en) Memory device and an edge word line management method thereof
KR102182804B1 (ko) 메모리 장치의 독출 방법
KR101893562B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
US20230153030A1 (en) Storage device and operating method thereof
US20180267903A1 (en) Memory system and operating method thereof
KR20210028517A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20150059058A (ko) 호스트 ftl을 갖는 사용자 장치 및 그것의 오픈 블록의 페이지 오프셋 전송 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant