KR102291806B1 - 불휘발성 메모리 시스템 및 그것의 동작 방법 - Google Patents

불휘발성 메모리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102291806B1
KR102291806B1 KR1020150055408A KR20150055408A KR102291806B1 KR 102291806 B1 KR102291806 B1 KR 102291806B1 KR 1020150055408 A KR1020150055408 A KR 1020150055408A KR 20150055408 A KR20150055408 A KR 20150055408A KR 102291806 B1 KR102291806 B1 KR 102291806B1
Authority
KR
South Korea
Prior art keywords
data
time
memory
nonvolatile memory
reception time
Prior art date
Application number
KR1020150055408A
Other languages
English (en)
Other versions
KR20160124990A (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 KR1020150055408A priority Critical patent/KR102291806B1/ko
Priority to US15/048,988 priority patent/US9760308B2/en
Publication of KR20160124990A publication Critical patent/KR20160124990A/ko
Application granted granted Critical
Publication of KR102291806B1 publication Critical patent/KR102291806B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 따른 불휘발성 메모리 시스템은 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치, 및 복수의 메모리 블록들 각각의 데이터에 대한 시작 수신 시각 및 종료 수신 시각을 관리하고, 관리되는 시작 수신 시각 및 종료 수신 시각을 기반으로 복수의 메모리 블록들 중 적어도 하나의 메모리 블록을 물리적으로 소거하는 메모리 컨트롤러를 포함한다.

Description

불휘발성 메모리 시스템 및 그것의 동작 방법{NONVOLATILE MEMORY SYSTEM AND OPERATION METHOD THEREOF}
본 발명은 반도체 메모리에 관한 것으로 더욱 상세하게는 불휘발성 메모리 시스템 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 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), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.
플래시 메모리는 대용량, 저소음, 저전력 등의 장점으로 인하여 다양한 분야에서 사용된다. 플래시 메모리는 호스트의 데이터 관리 단위와 다른 페이지 단위로 읽기 동작 및 쓰기 동작을 수행하고, 일반적인 하드 디스크와 달리 소거 후 쓰기 특성을 갖기 때문에, 별도의 관리 방법이 요구된다.
일반적으로, 플래시 메모리를 기반으로 하는 저장 장치는 플래시 변환 계층(FTL)을 통해 데이터를 관리한다. 플래시 변환 계층은 호스트로부터의 논리적 어드레스를 저장 장치의 물리적 어드레스로 변환하는 동작을 수행한다. 특히, 호스트에 의해 데이터가 삭제되는 경우, 플래시 메모리 기반의 저장 장치는 저장된 데이터를 실제로 삭제하는 대신에, 플래시 변환 계층에 의해 관리되는 맵핑 테이블을 갱신하고 저장된 데이터를 무효 데이터로 처리하는 방식으로 데이터를 처리한다. 즉, 사용자 데이터가 호스트에 의해 삭제되더라도, 저장 장치에 사용자 데이터가 유지되기 때문에 사용자 데이터에 대한 보안 문제가 발생할 수 있다.
또한, 최근에는, 보안성 향상을 목적으로 하는 프로그램 또는 서버 업체들이 증가하고 있다. 일 예로서, 일부 프로그램 또는 애플리케이션은 보안성 향상을 위하여 사용자 데이터를 암호화하고, 일정 시간이 경과한 후에 사용자 데이터를 삭제한다. 그러나, 상술된 바와 같이, 플래시 메모리를 기반으로 하는 저장 장치는 데이터가 삭제되더라도, 실제 데이터가 저장 장치에 유지되기 때문에 사용자 데이터에 대한 보안 문제가 발생할 수 있다.
본 발명의 목적은 특정 시간에 수신된 데이터를 완전 제거함으로써 향상된 보안성을 갖는 불휘발성 메모리 시스템 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 시스템은 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치; 및 상기 복수의 메모리 블록들 각각의 데이터에 대한 시작 수신 시각 및 종료 수신 시각을 관리하고, 상기 관리되는 시작 수신 시각 및 종료 수신 시각을 기반으로 상기 복수의 메모리 블록들 중 적어도 하나의 메모리 블록을 물리적으로 소거하는 메모리 컨트롤러를 포함한다.
실시 예로서, 상기 시작 수신 시각은 상기 복수의 메모리 블록들 각각의 데이터 중 가장 먼저 수신된 데이터의 수신 시각을 가리키고, 상기 종료 수신 시각은 상기 복수의 메모리 블록들 각각의 데이터 중 가장 늦게 수신된 데이터의 수신 시각을 가리킨다.
실시 예로서, 상기 메모리 컨트롤러는 호스트로부터 기준 시각을 포함한 데이터 제어 커맨드를 수신하고, 상기 데이터 제거 커맨드에 응답하여 상기 기준 시각, 상기 시작 수신 시각, 및 상기 종료 수신 시각을 기반으로 상기 적어도 하나의 메모리 블록을 물리적으로 소거한다.
실시 예로서, 상기 적어도 하나의 메모리 블록은 상기 기준 시각보다 빠른 종료 수신 시각을 갖는다.
실시 예로서, 상기 적어도 하나의 메모리 블록은 상기 기준 시각보다 늦은 시작 수신 시각을 갖는다.
실시 예로서, 상기 메모리 컨트롤러는 상기 적어도 하나의 메모리 블록에 저장된 데이터 중 제거되지 않을 데이터를 선택하고, 상기 선택된 데이터를 자유 메모리 블록으로 이동시킨다.
실시 예로서, 상기 제거되지 않을 데이터는 유효 데이터, 호스트에 의해 관리되는 메타 데이터, 또는 상기 메모리 컨트롤러에 의해 관리되는 메타 데이터를 포함한다.
실시 예로서, 상기 메모리 컨트롤러는 호스트로부터 데이터 및 수신 시각을 수신하고, 상기 수신된 데이터를 상기 복수의 메모리 블록들 중 어느 하나의 메모리 블록의 사용자 영역에 저장하고, 상기 수신된 수신 시각을 상기 데이터가 저장된 사용자 영역과 대응되는 스페어 영역에 저장한다.
실시 예로서, 상기 메모리 컨트롤러는 호스트로부터 절대 시각을 수신하고, 상기 수신된 절대 시각을 기반으로 상기 복수의 메모리 블록들 각각의 데이터에 대한 상기 시작 수신 시각 및 상기 종료 수신 시각을 갱신한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 복수의 메모리 블록들 중 어느 하나의 메모리 블록의 상기 종료 수신 시각 및 현재 시각의 차이가 기준 시간을 초과하는 경우, 상기 어느 하나의 메모리 블록의 남은 영역에 더미 데이터를 프로그램한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 물리적으로 소거된 상기 적어도 하나의 메모리 블록에 임의 데이터를 프로그램하고, 상기 프로그램된 적어도 하나의 메모리 블록을 물리적으로 재소거한다.
실시 예로서, 상기 복수의 메모리 블록들 각각은 실리콘 기판 위에 배치되는 활성 영역을 포함하는 메모리 셀들의 적어도 하나의 물리 레벨들에 모놀리식으로(monolithically) 형성되는 불휘발성 메모리를 포함한다.
본 발명의 다른 실시 예에 따른 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템의 동작 방법은 호스트로부터 데이터 제거 커맨드를 수신하는 단계; 상기 수신된 데이터 제거 커맨드에 응답하여 상기 복수의 메모리 블록들 각각에 대한 시작 수신 시각 및 종료 수신 시각을 포함하는 블록 타임 테이블을 기반으로 상기 복수의 메모리 블록들 중 타겟 블록을 선택하는 단계; 및 상기 선택 타겟 블록을 물리적으로 소거하는 단계를 포함한다.
실시 예로서, 상기 시작 수신 시각은 상기 복수의 메모리 블록들 각각의 데이터 중 가장 먼저 상기 호스트로부터 수신된 데이터의 수신 시각을 가리키고, 상기 종료 수신 시각은 상기 복수의 메모리 블록들 각각의 데이터 중 가장 늦게 상기 호스트로부터 수신된 데이터의 수신 시각을 가리킨다.
실시 예로서, 상기 호스트로부터 데이터 제거 커맨드를 수신하는 단계는 상기 호스트로부터 기준 시각을 수신하는 단계를 더 포함한다.
실시 예로서, 상기 복수의 메모리 블록들 중 타겟 블록을 선택하는 단계는 상기 기준 시각 및 상기 블록 타임 테이블을 기반으로 상기 복수의 메모리 블록들 중 타겟 블록을 선택하는 단계를 포함한다.
실시 예로서, 상기 물리적으로 소거된 타겟 블록에 대한 시작 수신 시각 및 종료 수신 시각을 초기화하는 단계를 더 포함한다.
본 발명의 또 다른 실시 예에 따른 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은 호스트로부터 쓰기 커맨드, 데이터, 및 수신 시각을 수신하는 단계; 상기 쓰기 커맨드에 응답하여, 상기 데이터를 상기 복수의 메모리 블록들 중 어느 하나의 메모리 블록의 사용자 영역에 저장하고, 상기 수신된 수신 시각을 상기 데이터가 저장된 상기 사용자 영역과 대응되는 스페어 영역에 저장하는 단계; 및 상기 수신 시각을 기반으로 상기 복수의 메모리 블록들 각각에 대한 시작 수신 시각 및 종료 수신 시각을 포함하는 블록 타임 테이블을 갱신하는 단계를 포함한다.
실시 예로서, 가비지 콜렉션이 요구되는지 판별하는 단계; 상기 가비지 콜렉션이 요구되는 경우, 상기 복수의 메모리 블록들 중 소스 블록들을 선택하는 단계; 상기 선택된 소스 블록들에 포함된 유효 데이터를 탐색하는 단계; 상기 블록 타임 테이블을 기반으로 상기 유효 데이터를 목표 블록으로 이동시키는 단계; 상기 소스 블록을 소거하는 단계; 및 상기 목표 블록으로 이동된 데이터의 수신 시각들을 기반으로 상기 블록 타임 테이블을 갱신하는 단계를 더 포함한다.
실시 예로서, 상기 복수의 메모리 블록들 어느 하나의 메모리 블록의 시작 수신 시각 및 현재 시각의 차이가 기준 시간을 초과하는 경우, 상기 어느 하나의 메모리 블록의 남은 영역에 더미 데이터를 프로그램하는 단계를 더 포함한다.
본 발명에 따르면, 불휘발성 메모리 시스템은 특정 시간에 수신된 데이터를 완전 제거할 수 있다. 따라서, 보안성이 향상된 불휘발성 메모리 시스템 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 2는 도 1의 사용자 시스템의 소프트웨어 계층을 보여주는 블록도이다.
도 3은 도 1의 메모리 컨트롤러를 상세하게 보여주는 블록도이다.
도 4는 도 1의 불휘발성 메모리 장치를 상세하게 보여주는 블록도이다.
도 5는 도 1의 메모리 컨트롤러의 동작을 보여주는 순서도이다.
도 6 내지 도 9는 도 5의 동작 방법을 설명하기 위한 도면들이다.
도 10은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 11 및 도 12는 도 10의 동작 방법을 설명하기 위한 도면들이다.
도 13은 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 14는 도 13의 동작 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작 방법을 보여주는 순서도이다.
도 16은 본 발명의 또 다른 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 17은 도 16의 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 18 및 도 19는 도 17의 동작 방법을 설명하기 위한 도면들이다.
도 20은 도 16의 불휘발성 메모리 시스템의 다른 동작을 보여주는 순서도이다.
도 21은 도 20의 동작을 설명하기 위한 도면이다.
도 22는 본 발명의 또 다른 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 23은 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 24는 도 23의 동작을 설명하기 위한 도면이다.
도 25는 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 26은 도 25의 동작을 설명하기 위한 도면이다.
도 27은 본 발명에 따른 불휘발성 메모리 장치에 포함된 제1 메모리 블록의 예시적인 회로도이다.
도 28은 본 발명의 실시 예들에 따른 불휘발성 메모리 시스템이 적용된 메모리 카드 시스템을 보여주는 블록도이다.
도 29는 본 발명에 따른 불휘발성 메모리 시스템이 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 블록도이다.
도 30은 본 발명에 따른 불휘발성 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술 분야에서 통상의 기술을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세하게 설명하기 위하여 본 발명의 실시 예들을 첨부된 도면들을 참조하여 설명하기로 한다. 예시적으로, 이하에서 설명된 다양한 실시 예들은 본 발명의 기술적 사상을 상세하게 설명하기 위한 것들이며, 본 발명의 기술적 사상이 본문에 기재된 실시 예들에 국한되는 것은 아니다. 또한, 다양한 실시 예들 각각은 독립적으로 구현되거나 또는 서로 조합되어 다른 실시 예로서 구현될 수 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 시스템은 복수의 메모리 블록들 각각에 저장된 데이터의 수신 시각(reception time)을 관리하고, 이를 기반으로, 데이터를 완전 제거할 수 있다. 즉, 불휘발성 메모리 시스템은 특정 시각 이전에 수신된 데이터, 특정 시각 이후에 수신된 데이터, 또는 특정 시간(certain time period) 사이에 수신된 데이터가 저장된 메모리 블록을 물리적으로 소거할 수 있다. 따라서, 불휘발성 메모리 시스템의 보안성이 향상된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 1을 참조하면, 사용자 시스템(1000)은 호스트(1100) 및 불휘발성 메모리 시스템(1200)을 포함한다. 예시적으로, 사용자 시스템(1000)은 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나를 포함할 수 있다.
호스트(1100)는 사용자 또는 다양한 응용 프로그램들의 요청에 따라 불휘발성 메모리 시스템(1200)에 데이터(DATA)를 저장하거나 또는 불휘발성 메모리 시스템(1200)에 저장된 데이터(DATA)를 읽을 수 있다. 예를 들어, 호스트(1100)는 어드레스(ADDR), 데이터(DATA), 커맨드(CMD) 등의 신호들을 불휘발성 메모리 시스템(1200)으로 전송할 수 있다.
불휘발성 메모리 시스템(1200)은 메모리 컨트롤러(1210) 및 불휘발성 메모리 장치(1220)를 포함한다. 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 수신된 신호들에 응답하여, 데이터(DATA)를 저장하거나 또는 저장된 데이터(DATA)를 호스트(1100)로 전달할 수 있다. 예시적으로, 불휘발성 메모리 시스템(1200)은 멀티 미디어 카드(MMC; Multi-Media Card), embeded-MMC, 솔리드 스테이트 드라이브(SSD; Solid State Drive), USB 메모리 스틱, UFS(Universal Flash Storage) 등과 같은 저장 장치로서 제공될 수 있다.
메모리 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호들에 응답하여 불휘발성 메모리 장치(1220)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호들에 응답하여 불휘발성 메모리 장치(1220)로 어드레스(addr), 커맨드(cmd), 제어 신호(CTRL) 등과 같은 신호들을 전송하고, 불휘발성 메모리 장치(1220)와 데이터(DATA)를 주고 받을 수 있다.
예시적으로, 호스트(1100)로부터 제공되는 신호들(즉, 어드레스(ADDR), 커맨드(CMD) 등)은 호스트(1100) 및 불휘발성 메모리 시스템(1200) 간 미리 정의된 인터페이스에 의해 정의된 신호들일 수 있다. 예시적으로, 메모리 컨트롤러(1210)로부터 불휘발성 메모리 장치(1220)로 제공되는 신호들(즉, 어드레스(addr), 커맨드(cmd), 제어 신호(CTRL) 등)은 메모리 컨트롤러(1210) 및 불휘발성 메모리 장치(1220) 간 미리 정의된 인터페이스에 의해 정의된 신호들일 수 있다.
호스트(1100) 및 불휘발성 메모리 시스템(1200) 사이의 인터페이스는 USB (Universal Serial Bus), MMC (multimedia card), eMMC(embeded MMC), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer small interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe (Nonvolatile Memory express) 등과 같은 다양한 통신 규격들 중 적어도 하나를 포함할 수 있다. 예시적으로, 메모리 컨트롤러(1210) 및 불휘발성 메모리 장치(1220) 사이의 인터페이스는 낸드 인터페이스를 포함할 수 있다.
예시적으로, 호스트(1100)로부터 제공되는 어드레스(ADDR)는 호스트(1100)의 운영 체제 또는 파일 시스템에 의해 정의된, 데이터의 논리적 주소를 가리킬 수 있다. 메모리 컨트롤러(1210)는 논리적 어드레스(ADDR)를 불휘발성 메모리 장치(1220)에서 사용되는 물리적 어드레스(addr)로 변환하여 불휘발성 메모리 장치(1220)로 제공할 수 있다.
불휘발성 메모리 장치(1220)는 메모리 컨트롤러(1210)의 제어에 따라 데이터(DATA)를 저장하거나 또는 저장된 데이터(DATA)를 출력할 수 있다. 예시적으로, 불휘발성 메모리 장치(1220)는 적어도 하나의 반도체 메모리를 포함할 수 있다. 예를 들어, 불휘발성 메모리 장치(1220)는 낸드 플래시, 노어 플래시, PRAM, ReRAM, FRAM, MRAM 등과 같은 불휘발성 메모리 소자들 중 적어도 하나를 기반으로 구현될 수 있다.
예시적으로, 본 발명의 실시 예에 따른 불휘발성 메모리 시스템(1200)은 특정 시간동안 호스트로부터 수신된 데이터를 완전 삭제(즉, 물리적으로 삭제)할 수 있다. 예를 들어, 호스트(1100)는 데이터 제거 커맨드(CMD_de; data elimination command)를 불휘발성 메모리 시스템(1200)으로 전송할 수 있다. 예시적으로, 데이터 제거 커맨드(CMD_de)는 기준 시각(RT)을 포함할 수 있다. 기준 시각(RT)은 물리적으로 제거될 데이터를 선택하기 위한 기준 시각일 수 있다. 예시적으로, 데이터 제거 커맨드(CMD_de)는 호스트(1100) 및 불휘발성 메모리 시스템(1200) 간 미리 정의된 인터페이스에 의해 정의된 커맨드, 커맨드들의 조합, 제조사 커맨드, 또는 예비 커맨드 등과 같은 신호들로서 제공될 수 있다.
메모리 컨트롤러(1210)는 데이터 제거부(1211, Data Eliminating Unit) 및 블록 타임 테이블(1212, BLK Time Table)을 포함할 수 있다.
블록 타임 테이블(1212)은 불휘발성 메모리 장치(1200)의 복수의 메모리 블록들 각각에 저장된 데이터의 수신 시각(reception time)을 관리할 수 있다. 예를 들어, 블록 타임 테이블(1212)은 복수의 메모리 블록들 각각에 대하여, 저장된 데이터 중 가장 먼저 수신된 데이터의 수신 시각 및 가장 늦게 수신된 데이터의 수신 시각을 관리할 수 있다. 예시적으로, 데이터의 수신 시각(reception time)은 데이터가 불휘발성 메모리 시스템(1200)로 수신된 시각 또는 데이터가 호스트(1100)로부터 전송되는 시각을 가리킬 수 있다. 이하에서, 간결한 설명을 위하여, 데이터 수신 시각(reception time)은 데이터가 호스트(1100)로부터 전송되는 시각인 것으로 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 수신 시각(reception time)은 데이터가 불휘발성 메모리 장치(1220)에 프로그램되는 시각, 복수의 데이터가 수신되는 시간(time period) 등으로 확장될 수 있다. 또한, 수신 시각(reception time)은 호스트(1100)에 의해 정의된 시각이거나 또는 불휘발성 메모리 시스템(1200)에서 사용되는 상대 시각 또는 절대 시각으로 정의될 수 있다.
데이터 제거부(1211)는 호스트(1100)로부터 수신된 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 불휘발성 메모리 장치(1200)에 포함된 복수의 메모리 블록들 중 타겟 블록들(target block)을 물리적으로 소거할 수 있다. 예를 들어, 데이터 제거부(1211)는 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 기준 시각(RT) 이전에 수신된 데이터가 저장된 메모리 블록을 선택하고, 선택된 메모리 블록을 물리적으로 소거할 수 있다. 또는 데이터 제거부(1211)는 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 기준 시각(RT) 및 현재 시각 사이에 수신된 데이터가 저장된 메모리 블록을 선택하고, 선택된 메모리 블록을 물리적으로 소거할 수 있다. 데이터 제거부(1211)는 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 기준 시각(RT)을 기반으로 특정 시간(time period)에 수신된 데이터가 저장된 메모리 블록을 선택하고, 선택된 메모리 블록을 물리적으로 소거할 수 있다.
호스트에서 데이터를 삭제할 경우, 플래시 메모리를 기반으로 하는 종래의 불휘발성 메모리 시스템은 단순히 호스트에 의해 관리되는 논리적 어드레스 및 불휘발성 메모리 장치의 물리적 어드레스 사이의 맵핑 관계를 해제 또는 제거한다. 이 경우, 논리적 어드레스 및 물리적 어드레스 사이의 맵핑 관계는 해제되었으나, 불휘발성 메모리 장치에 유저 데이터가 유지되기 때문에, 외부로의 데이터 유출과 같은 보안 문제가 발생할 수 있다.
그러나, 상술된 본 발명의 실시 예에 따르면, 데이터 수신 시각(reception time) 및 기준 시각(RT)을 기반으로 특정 시간(time period), 특정 시각 이전, 또는 특정 시각 이후에 수신된 데이터를 완적 삭제(또는 물리적 소거)할 수 있다. 즉, 특정 시간, 특정 시각 이전, 또는 특정 시각 이후에 수신된 데이터가 불휘발성 메모리 장치(1220)에서 완전 제거되기 때문에, 불휘발성 메모리 시스템(1200)의 보안성이 향상된다.
도 2는 도 1의 사용자 시스템의 소프트웨어 계층을 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 호스트(1100)는 애플리케이션(1110), 파일 시스템(1120), 및 장치 드라이버(1130)를 포함한다.
애플리케이션(1110)은 호스트(1100)의 운영 체제(OS; Operating System) 상에서 구동되는 다양한 응용 프로그램들을 포함한다. 예를 들어, 애플리케이션(1110)은 문서 편집기, 영상 재생기, 웹브라우저 등과 같은 다양한 프로그램들을 포함할 수 있다.
파일 시스템(1120)은 애플리케이션(1111)에 의해 사용되는 파일 또는 데이터를 불휘발성 메모리 장치(1220)에 저장할 경우, 이를 조직화하는 역할을 수행한다. 예를 들어, 파일 시스템(1120)은 파일 또는 데이터의 어드레스(ADDR)를 제공할 수 있다. 예시적으로, 어드레스(ADDR)는 파일 시스템(1120)에 의해 관리되는 논리적 어드레스(logical address)일 수 있다. 파일 시스템(1120)은 운영체제에 따라 다양한 형태로 제공될 수 있다. 예를 들어, 파일 시스템(1120)은 FAT(File Allocation Table), FAT32, NTFS(NT File System), HFS(Hierarchical File System), JSF2(Journaled File System2), XFS, ODS-5(On-Disk Structure-5), UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다. 예시적으로, 파일 시스템(1120)은 데이터를 섹터 단위로 정의할 수 있다.
장치 드라이버(1130)는 호스트(1100)에 포함된 장치들 및 호스트(1100)와 연결된 장치들을 제어하기 위한 프로그램이다. 장치 드라이버(1130)는 운영 체제의 일반적인 입출력 명령어들을 각 장치들에 대응하는 메시지로 변환하는 동작을 수행할 수 있다. 장치 드라이버(1130)는 불휘발성 메모리 시스템(1200)을 제어할 수 있다. 예를 들어, 장치 드라이버(1130)는 사용자, 애플리케이션, 또는 운영 체제에 의한 읽기 또는 쓰기 요청에 따라 불휘발성 메모리 시스템(1200)으로 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA)를 전송할 수 있다.
플래시 변환 계층(1213, flash translation layer, 이하에서 'FTL'이라 함.)은 불휘발성 메모리 장치(1220)가 효율적으로 사용될 수 있도록 호스트(1100) 및 불휘발성 메모리 장치(1220) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 불휘발성 메모리 장치(1220)는 페이지 단위로 데이터를 쓰고 읽을 수 있다. 그러나, 호스트(1100)의 파일 시스템(1120)은 데이터 또는 파일을 섹터 단위로 관리하기 때문에, FTL(1213)은 어드레스(ADDR)를 수신하고, 수신된 어드레스(ADDR)를 불휘발성 메모리 장치(1220)에서 사용 가능한 물리적 어드레스(addr)로 변환하는 역할을 수행한다. FTL(111)은 상술된 어드레스 변환 동작을 매핑 테이블을 통해 관리할 수 있다.
예시적으로, FTL(1213)은 가비지 컬렉션(garbage collection), 웨어 레벨링(Wareleveling), 리드 리클레임(read reclaim) 등과 같은 동작을 수행할 수 있다. 예를 들어, FTL(1213)은 적어도 하나의 메모리 블록에 포함된 적어도 하나의 유효 페이지를 자유 메모리 블록으로 복사하고, 적어도 하나의 메모리 블록을 물리적으로 소거하는 가비지 컬렉션을 수행할 수 있다. 예시적으로, FTL(1213)은 도 1을 참조하여 설명된 데이터 제거부(1211)의 동작을 수행할 수 있다.
도 3은 도 1의 메모리 컨트롤러를 상세하게 보여주는 블록도이다. 도 1 내지 도 3을 참조하면, 메모리 컨트롤러(1210)는 프로세서(1214), SRAM(1215), ROM(1216), 호스트 인터페이스(1217), 플래시 인터페이스(1218)를 포함한다.
프로세서(1214)는 메모리 컨트롤러(1210)의 제반 동작을 제어할 수 있다. SRAM(1215)는 메모리 컨트롤러(1210)의 버퍼 메모리, 메인 메모리, 캐시 메모리 등으로 사용될 수 있다. 예시적으로, SRAM(1215)은 메모리 컨트롤러(1210)가 동작하는데 요구되는 정보, 데이터, 또느 프로그램을 저장할 수 있다.
예시적으로, 도 1을 참조하여 설명된 데이터 제거부(1211) 및 블록 타임 테이블(1212)은 소프트웨어 형태로 제공되며, SRAM(1215)에 저장될 수 있다. SRAM(1215)에 저장된 데이터 제거부(1211) 및 블록 타임 테이블(1212)은 프로세서(1214)에 의해 구동되거나 또는 관리될 수 있다. 예시적으로, 데이터 제거부(1211) 및 블록 타임 테이블(1212)은 FTL(1213)에 포함되고, FTL(1213)은 SRAM(1215)에 저장될 수 있다. SRAM(1215)에 저장된 FTL(1213)은 프로세서(1214)에 의해 구동될 수 있다. 예시적으로, 갱신된 블록 타임 테이블(1212)은 불휘발성 메모리 장치(1220)로 주기적으로 플러쉬될 수 있다.
ROM(1216)은 메모리 컨트롤러(1210)가 동작하는데 요구되는 다양한 정보를 펌웨어 형태로 저장할 수 있다. ROM(1216)에 저장된 펌웨어는 프로세서(1214)에 의해 구동될 수 있다.
메모리 컨트롤러(1210)는 호스트 인터페이스(1217)를 통해 호스트(1100)와 통신할 수 있다. 메모리 컨트롤러(1210)는 플래시 인터페이스(1220)를 통해 불휘발성 메모리 장치(1220)와 통신할 수 있다.
비록 도면에 도시되지는 않았으나, 메모리 컨트롤러(1210)는 데이터 랜덤화기(data randomizer), 에러 정정 회로(ECC circuit), 별도의 버퍼 메모리 등과 같은 추가 구성 요소들을 더 포함할 수 있다.
도 4는 도 1의 불휘발성 메모리 장치를 상세하게 보여주는 블록도이다. 도 1 및 도 4를 참조하면, 불휘발성 메모리 장치(1220)는 메모리 셀 어레이(1221), 어드레스 디코더(1222), 제어 로직 및 전압 발생 회로(1223), 페이지 버퍼(1224), 및 입출력 회로(1225)를 포함한다.
메모리 셀 어레이(1221)는 복수의 메모리 블록들을 포함한다. 복수의 메모리 블록들은 복수의 스트링들을 포함하고, 복수의 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들 각각은 복수의 워드라인들(WL)과 각각 연결된다. 복수의 메모리 셀들 각각은 적어도 1-비트를 저장하는 싱글 레벨 셀(SLC; single level cell) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(MLC; multi level cell)을 포함할 수 있다.
어드레스 디코더(1222)는 복수의 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(1221)와 연결된다. 어드레스 디코더(1222)는 메모리 컨트롤러(1210)로부터 어드레스(addr)를 수신한다. 어드레스 디코더(1222)는 수신된 어드레스(addr)를 디코딩하고, 디코딩된 어드레스(addr)를 기반으로 복수의 워드라인들(WL)을 제어할 수 있다. 예를 들어, 어드레스 디코더(1222)는 디코딩된 어드레스(addr)를 기반으로 복수의 워드라인들(WL) 중 적어도 하나의 워드라인을 선택하고, 선택된 적어도 하나의 워드라인의 전압을 제어할 수 있다.
제어 로직 및 전압 발생 회로(1223)는 메모리 컨트롤러(1210)로부터 커맨드(cmd) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(1222), 페이지 버퍼(1224), 및 입출력 회로(1224)를 제어할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(1223)는 메모리 컨트롤러(1210)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(1221)에 기입되도록 또는 메모리 셀 어레이(1221)에 저장된 데이터(DATA)가 독출되도록 어드레스 디코더(1222), 페이지 버퍼(1224), 및 입출력 회로(1224)를 제어할 수 있다.
제어 로직 및 전압 발생 회로(1223)는 불휘발성 메모리 장치(1220)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(1223)는 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들, 복수의 소거 검증 전압들 등과 같은 다양한 전압들을 생성할 수 있다.
페이지 버퍼(1224)는 복수의 비트라인들(BL)을 통해 메모리 셀 어레이(1221)와 연결된다. 페이지 버퍼(1224)는 입출력 회로(1225)로부터 제공되는 데이터(DATA)를 임시 저장할 수 있다. 페이지 버퍼(1224)에 저장된 데이터(DATA)는 제어 로직 및 전압 발생 회로(1223)의 제어에 따라 메모리 셀 어레이(1221)에 저장될 수 있다. 페이지 버퍼(1224)는 메모리 셀 어레이(1221)로부터 독출된 데이터(DATA)를 임시 저장할 수 있다. 페이지 버퍼(1224)는 독출된 데이터(DATA)를 제어 회로 및 전압 발생 회로(1223)의 제어에 따라 입출력 회로(1225)로 제공할 수 있다.
입출력 회로(1225)는 메모리 컨트롤러(1210)로부터 데이터(DATA)를 수신할 수 있다. 입출력 회로(1225)는 수신된 데이터(DATA)를 페이지 버퍼(1224)로 제공할 수 있다. 입출력 회로(1225)는 제어 로직 및 전압 발생 회로(1223)의 제어에 따라 페이지 버퍼(1224)로부터 제공되는 데이터(DATA)를 메모리 컨트롤러(1210)로 제공할 수 있다.
예시적으로, 불휘발성 메모리 장치(1220)는, 소거 동작 시 (즉, 물리 소거 동작 시), 제어 로직 및 전압 발생 회로(1223)에서 생성된 소거 전압(Vers)을 메모리 셀 어레이(1221)의 기판으로 제공할 수 있다. 소거 동작시, 불휘발성 메모리 장치(1220)는 소거될 메모리 블록(즉, 타겟 메모리 블록)과 연결된 워드라인들로 워드라인 소거 전압을 제공할 수 있다. 예시적으로, 불휘발성 메모리 장치(1220)의 소거 동작시 복수의 워드라인들 각각으로 인가되는 워드라인 전압들은 메모리 셀 어레이(1221)에 포함된 메모리 셀들 각각의 크기, 동작 속도에 따라 가변될 수 있다. 예시적으로, 물리적으로 소거된 메모리 블록에 포함된 메모리 셀들은 소거 상태의 문턱 전압 산포 범위에 포함될 수 있다. 또는 물리적으로 소거된 메모리 블록에 포함된 메모리 셀들은 특정 문턱 전압 산포 범위 내에 포함될 수 있다.
본 발명에 따른 예시적인 실시 예로서, 불휘발성 메모리 장치(120)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명에 따른 예시적인 실시 예로서, 3차원 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 상부에 배치되도록 수직의 방향성을 갖는 수직 낸드 스트링들을 포함한다. 적어도 하나의 메모리 셀들은 전하 트랩 층을 포함할 수 있다. 각 수직 낸드 스트링은 메모리 셀들 상부에 배치되는 적어도 하나의 선택 트랜지스터를 포함할 수 있고, 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖고, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
도 5는 도 1의 메모리 컨트롤러의 동작을 보여주는 순서도이다. 이하의 도면들을 참조하여, 본 발명의 실시 예에 따른 메모리 컨트롤러(1210)의 수신 시각(reception time)에 기반된 데이터 제거 방법이 상세하게 설명된다. 먼저, 도 1 및 도 5를 참조하면, S1110 단계에서, 메모리 컨트롤러(1210)는 호스트(1100)로부터 데이터 제거 커맨드(CMD_de) 및 기준 시각(RT, reference time)을 수신한다. 예시적으로, 기준 시각(RT)은 데이터 제거 커맨드(CMD_de)에 포함될 수 있다. 또는 기준 시각(RT)은 데이터 제거 커맨드(CMD_de)와 별도의 커맨드를 통해 제공될 수 있다. 예시적으로, 데이터 제거 커맨드(CMD_de)는 불휘발성 메모리 시스템(1200) 및 호스트(1100) 사이의 인터페이스에 의해 미리 정의된 커맨드, 예비 커맨드, 제조사 커맨드, 복수의 커맨드들의 조합, 또는 새롭게 정의된 커맨드 등과 같은 신호로서 제공될 수 있다.
S1120 단계에서, 메모리 컨트롤러(1120)는 블록 타임 테이블(1212)을 기반으로 타겟 블록들을 선택한다. 예를 들어, 도 1을 참조하여 설명된 바와 같이 블록 타임 테이블(1212)은 복수의 메모리 블록들 각각에 저장된 데이터의 수신 시각(reception time)을 포함한다. 메모리 컨트롤러(1210)는 수신된 기준 시각(RT) 및 현재 시각 사이에 수신된 데이터가 저장된 메모리 블록들을 타겟 블록들로서 선택할 수 있다. 또는 메모리 컨트롤러(1210)는 수신된 기준 시각(RT) 이전에 수신된 데이터가 저장된 메모리 블록들을 타겟 블록들로서 선택할 수 있다. 또는 메모리 컨트롤러(1210)는 수신된 기준 시각(RT)을 기준으로 특정 시간 동안 수신된 데이터가 저장된 메모리 블록들 타겟 블록들로서 선택할 수 있다.
S1130 단계에서, 메모리 컨트롤러(1120)는 선택된 타겟 블록에 대하여 물리 소거 동작(physical erase operation)을 수행할 수 있다. 예시적으로, 물리 소거 동작은 호스트(1100)의 논리적 어드레스 및 불휘발성 메모리 장치(1220)의 물리적 어드레스 사이의 맵핑 관계를 해제하는 논리적 소거가 아닌 실제 메모리 셀들에 저장된 데이터를 소거하는 동작을 가리킨다.
상술된 본 발명의 실시 예에 따르면, 불휘발성 메모리 시스템(1200)은 데이터의 수신 시각(reception time) 및 기준 시각(RT)을 기반으로 타겟 블록들을 선택하고, 선택된 타겟 블록들을 물리적으로 소거할 수 있다. 즉, 특정 시각 이전, 특정 시각 이후, 또는 특정 시간 동안 수신된 데이터가 불휘발성 메모리 시스템(1200)에서 완전 제거되기 때문에, 향상된 보안성을 갖는 불휘발성 메모리 시스템(1200)이 제공된다.
도 6 내지 도 9는 도 5의 동작 방법을 설명하기 위한 도면들이다. 이하에서, 간결한 설명을 위하여, 도 5의 동작을 설명하는데 불필요한 구성 요소들은 생략된다. 또한, 도 6 내지 도 9에 도시된 제1 내지 제3 메모리 블록들(BLK1~BLK3)은 불휘발성 메모리 장치(1220)에 포함된 메모리 블록들이고, 제1 내지 제3 메모리 블록들(BLK1~BLK3) 각각은 4개의 페이지 데이터를 저장하는 것으로 가정한다. 또한, 도 6 내지 도 9에 도시된 시각들(T11~T14, T21~T24, T31~T34)은 대응되는 데이터가 호스트(1100)로부터 불휘발성 메모리 시스템(1220)으로 수신된 수신 시각(reception time)인 것으로 가정한다. 또한, 시각들(T11~T14, T21~T24, T31~T34)에 대한 정보는 대응되는 데이터와 함께 호스트(1100)로부터 제공되는 것으로 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
먼저, 도 1, 도 5, 및 도 6을 참조하면, 불휘발성 메모리 시스템(1200)은 T11 시각 내지 T14 시각 사이에 데이터(DATA11, DATA12, DATA13, DATA14)를 수신할 수 있다. 좀 더 상세하게는, 데이터(DATA11)는 T11 시각에 수신되고, 데이터(DATA12)는 T12에 수신되고, 데이터(DATA13)는 T13 시각에 수신되고, 데이터(DATA14)는 T14 시각에 수신될 수 있다. T11 시각 내지 T14 시각 사이의 시간 내에 수신된 데이터(DATA11~DATA14)는 제1 메모리 블록(BLK1)에 저장될 수 있다. 예시적으로, 데이터(DATA11~DATA14)는 제1 메모리 블록(BLK1)의 사용자 영역(User Area)에 저장되고, 대응하는 시각들(T11~T14)에 대한 정보는 대응하는 데이터가 저장된 페이지의 스페어 영역(Spare Area)에 저장될 수 있다. 예시적으로, 도면에 도시되지는 않았으나, 스페어 영역은 사용자 영역에 저장된 데이터의 에러 정정 코드, 데이터 타입, 논리적 주소 등과 같은 정보를 포함할 수 있다.
메모리 컨트롤러(1210)는 블록 타임 테이블(1212)에 포함된 제1 메모리 블록(BLK1)의 시작 수신 시각 및 종료 수신 시각을 관리할 수 있다. 예를 들어, 제1 메모리 블록(BLK1)에 저장된 데이터(DATA11~DATA14) 중 가장 먼저 수신된 데이터는 시각(T11)에 수신된 데이터(DATA11)이고, 가장 나중에 수신된 데이터는 T14 시각에 수신된 데이터(DATA14)이다. 이 경우, 메모리 컨트롤러(1210)는 T11 시각을 제1 메모리 블록(BLK1)의 시작 수신 시각(ST1)으로서 관리하고, T14 시각을 제1 메모리 블록(BLK1)의 종료 수신 시각(ET1)으로서 관리할 수 있다. 이는 제1 메모리 블록(BLK1)에 저장된 데이터가 T11 시각 내지 T14 시각 사이에 수신된 것임을 의미한다.
마찬가지로, 불휘발성 메모리 시스템은 T21 시각 내지 T14 시각 사이에 데이터(DATA21, DATA22, DATA23, DATA24)를 수신할 수 있다. 수신된 데이터(DATA21, DATA22, DATA23, DATA24)는 제2 메모리 블록(BLK2)의 사용자 영역(User Area)에 저장되고, 대응하는 시각들(T21~T24)은 대응하는 데이터가 저장된 페이지의 스페어 영역(Spare Area)에 저장될 수 있다. 메모리 컨트롤러(1210)는 T21 시각을 제2 메모리 블록(BLK2)의 시작 수신 시각(ST2)으로서 관리하고, T24 시각을 제2 메모리 블록(BLK2)의 종료 수신 시각(ET2)으로서 관리할 수 있다. 이는 제2 메모리 블록(BLK2)에 저장된 데이터가 T21 시각 내지 T24 시각 사이에 수신된 것임을 의미한다.
마찬가지로, T31 시각 내지 T34 시각 사이에 수신된 데이터(DATA31, DATA32, DATA33, DATA34)는 제3 메모리 블록(BLK3)에 저장된다. 메모리 컨트롤러(1210)는 T31 시각을 제3 메모리 블록(BLK3)의 시작 수신 시각(ST3)으로서 관리하고, T34 시각을 제3 메모리 블록(BLK3)의 종료 수신 시각(ET3)으로서 관리할 수 있다.
다음으로, 도 7을 참조하여 기준 시각(RT) 이전에 수신된 데이터가 제거되는 동작 방법이 설명된다. 도 1, 도 5, 및 도 7을 참조하면, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 데이터 제거 커맨드(CMD_de) 및 기준 시각(RT)을 수신할 수 있다. 메모리 컨트롤러(1210)는 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 수신된 기준 시각(RT) 이전에 수신된 데이터가 저장된 메모리 블록들을 선택할 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 기준 시각(RT)은 T24 시각 및 T31 시각 사이에 포함될 수 있다. 이 경우, 제1 및 제2 메모리 블록들(BLK1, BLK2)에 저장된 데이터(DATA11~DATA14, DATA21~DATA24)는 기준 시각(RT) 이전에 수신된 데이터일 것이다.
메모리 컨트롤러(1210)는 블록 타임 테이블(1212)을 기반으로 제1 및 제2 메모리 블록들(BLK1, BLK2)을 타겟 블록들로서 선택할 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 종료 수신 시각(ET)이 기준 시각(RT)보다 이전인 메모리 블록들을 타겟 블록들로서 선택할 수 있다. 도 7에 도시된 실시 예의 경우, 제1 및 제2 메모리 블록들(BLK1, BLK2)의 종료 수신 시각들(ET1, ET2)이 기준 시각(RT)보다 이전이므로, 제1 및 제2 메모리 블록들(BLK1, BLK2)이 타겟 블록들로서 선택될 것이다.
메모리 컨트롤러(1210)는 선택된 목표 블록들(즉, 제1 및 제2 메모리 블록들(BLK1, BLK2))에 대하여 소거 동작(좀 더 상세하게는, 물리 소거 동작)을 수행할 수 있다. 물리 소거된 제1 및 제2 메모리 블록들(BLK1, BLK2)에 포함된 메모리 셀들은 소거 상태를 가질 것이다.
예시적으로, 제1 및 제2 메모리 블록들(BLK1, BLK2)이 물리 소거된 이후에, 메모리 컨트롤러(1210)는 블록 타임 테이블(1212)을 갱신할 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 블록 타임 테이블(1212)에 포함된 물리 소거된 제1 및 제2 메모리 블록들(BLK1, BLK2)의 시작 수신 시각 및 종료 수신 시각을 해제할 수 있다.
다음으로, 도 8을 참조하여 기준 시각(RT) 이후에 수신된 데이터가 제거되는 동작 방법이 설명된다. 도 1, 도 5, 도 6, 및 도 8을 참조하면, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 데이터 제거 커맨드(CMD_de) 및 기준 시각(RT)을 수신할 수 있다. 메모리 컨트롤러(1210)는 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 수신된 기준 시각(RT) 및 현재 시각(Current Time) 사이에 수신된 데이터가 저장된 메모리 블록들을 선택할 수 있다. 예를 들어, 기준 시각(RT)은 T24 시각 및 T31 시각 사이에 포함될 수 있다. 이 경우, 제3 메모리 블록(BLK3)에 저장된 데이터(DATA31~DATA34)가 기준 시각(RT) 및 현재 시각(Current Time) 사이에 수신된 데이터일 것이다.
메모리 컨트롤러(1210)는 블록 타임 테이블(1212)을 기반으로 제3 메모리 블록(BLK3)을 목표 블록으로서 선택할 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 시작 수신 시각(ST)이 기준 시각(RT)보다 이후인 메모리 블록을 타겟 블록으로서 선택할 수 있다. 도 8에 도시된 실시 예의 경우, 제3 메모리 블록(BLK3)의 시작 수신 시각(ST3)이 기준 시각(RT)보다 이후이므로, 제3 메모리 블록(BLK3)이 타겟 블록으로서 선택될 것이다.
메모리 컨트롤러(1210)는 선택된 제3 메모리 블록(BLK3)에 대하여 소거 동작(즉, 물리 소거 동작)을 수행할 수 있다. 물리 소거된 제3 메모리 블록(BLK3)은
예시적으로, 제3 메모리 블록(BLK3)이 물리 소거된 이후에, 메모리 컨트롤러(1210)는 블록 타임 테이블(1212)을 갱신할 수 있다. 예를 들어, 제3 메모리 블록(BLK3)이 물리 소거된 이후에, 메모리 컨트롤러(1210)는 블록 타임 테이블(1212)에 포함된 제3 메모리 블록들(BLK3)의 시작 수신 시각 및 종료 수신 시각을 해제할 수 있다.
다음으로, 도 9를 참조하여 기준 시각(RT)을 기반으로 소정의 시간 구간(time period) 동안 수신된 데이터가 제거되는 동작 방법이 설명된다. 도 1, 도 5, 도 6, 및 도 9를 참조하면, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 데이터 제거 커맨드(CMD_de) 및 기준 시간 구간(RT)을 수신할 수 있다. 예시적으로, 기준 시간 구간(RT)은 특정 시간 구간을 가리키는 구간 정보를 포함할 수 있다.
메모리 컨트롤러(1210)는 데이터 제거 커맨드(CMD_de)에 응답하여, 블록 타임 테이블(1212)을 기반으로 기준 시간 구간(RT)동안 수신된 데이터가 저장된 메모리 블록들을 선택할 수 있다. 예를 들어, 기준 시간 구간(RT; period)은 T21 시각부터 T24 시각까지의 시간 구간을 포함할 수 있다. 즉, 제2 메모리 블록(BLK2)에 저장된 데이터(DATA21~DATA24)가 기준 시간 구간(RT) 사이에 수신된 데이터일 것이다.
메모리 컨트롤러(1210)는 블록 타임 테이블(1212)을 기반으로 제2 메모리 블록(BLK2)을 타겟 블록으로서 선택할 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 시작 수신 시각(ST) 및 종료 수신 시각(ET)이 기준 시간 구간(RT) 내에 포함된 메모리 블록을 타겟 블록으로서 선택할 수 있다. 도 9에 도시된 실시 예의 경우, 메모리 컨트롤러(1210)는 블록 타임 테이블(BLK2)을 기반으로 제2 메모리 블록(BLK2)을 타겟 블록으로서 선택할 수 있다.
메모리 컨트롤러(1210)는 타겟 블록으로서 선택된 제2 메모리 블록(BLK2)에 대하여 소거 동작(즉, 물리 소거 동작)을 수행할 수 있다. 물리적으로 소거된 제2 메모리 블록(BLK2)의 메모리 셀들은 소거 상태의 문턱 전압을 가질 것이다.
예시적으로, 호스트(1100)로부터 수신된 데이터 제거 커맨드(CMD_de)는 기준 시각(RT)보다 이전에 수신된 데이터를 제거할지, 기준 시각(RT)보다 이후에 수신된 데이터를 제거할지, 또는 기준 시간 구간(RT) 내에 수신된 데이터를 제거할지에 대한 정보를 포함할 수 있다. 메모리 컨트롤러(1210)는 데이터 제거 커맨드(CMD_de)에 포함된 정보에 따라 상술된 조건들 중 적어도 하나를 기반으로 데이터 제거 동작을 수행할 수 있다.
예시적으로, 호스트(1100)에 의해 제1 데이터가 삭제되어, 불휘발성 메모리 시스템(1200)이 제1 데이터의 매핑 관계를 해제할 경우, (즉, 논리적으로 데이터를 소거할 경우) 불휘발성 메모리 장치(1220)에는 제1 데이터가 남아 있을 것이다. 이 경우, 제1 데이터가 논리적으로 삭제되더라도 제1 데이터가 불휘발성 메모리 장치(1220)의 메모리 블록 내에 존재하기 때문에, 블록 타임 테이블(1212)은 갱신되지 않을 것이다.
도 6 내지 도 9를 참조하여 설명된 바와 같이, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 수신된 데이터 제거 커맨드(CMD_de)에 응답하여, 기준 시각(RT)보다 이전에 수신된 데이터, 기준 시각(RT) 이후에 수신된 데이터, 또는 기준 시각(RT)에 따른 특정 시간(time period)동안 수신된 데이터를 물리적 소거함으로써, 불휘발성 메모리 시스템(1200)의 보안성이 향상된다.
도 10은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 1 및 도 10을 참조하면, S1210 단계에서, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 데이터 제거 커맨드(CMD_de) 및 기준 시각(RT)을 수신한다. S1220 단계에서, 불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1212)을 기반으로 타겟 블록들을 선택한다. 예시적으로, S1210 단계 및 S1220 단계는 도 5의 S1110 단계 및 S1120 단계 및 도 6 내지 도 9를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
S1230 단계에서, 불휘발성 메모리 시스템(1200)은 선택된 타겟 블록들에 저장된 데이터 중 제거되지 않을 데이터를 선택한다. 예를 들어, 기준 시각(RT) 이전에 수신된 데이터를 제거하는 경우, 선택된 타겟 블록들에 저장된 데이터 중 기준 시각(RT)보다 이후에 수신된 데이터가 존재할 수 있다. 이 경우, 기준 시각(RT)보다 이후에 수신된 데이터는 제거되지 않을 것이다. 또는 기준 시각(RT) 이전에 수신된 데이터이더라도, 호스트(1100)의 시스템 데이터, 파일 시스템(1120)에 의해 관리되는 데이터, 불휘발성 메모리 시스템(1200)에서 사용되는 메타 데이터 등과 같이 중요 시스템 파일 또는 메타 데이터는 제거되어서는 안 될 것이다. 불휘발성 메모리 시스템(1200)은 상술된 바와 같이 제거되지 않을 데이터를 선택할 수 있다.
예시적으로, 불휘발성 메모리 시스템(1200)은 선택된 타겟 블록들에 저장된 데이터 중 유효 데이터를 제거되지 않을 데이터로서 선택할 수 있다.
S1240 단계에서, 불휘발성 메모리 시스템(1200)은 선택된 데이터를 자유 메모리 블록으로 이동시킬 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 선택된 데이터를 읽고, 읽은 데이터를 불휘발성 메모리 장치(1220)에 포함된 자유 메모리 블록에 저장할 수 있다.
S1250 단계에서, 불휘발성 메모리 시스템(1200)은 이동된 데이터의 수신 시각(reception time)을 기반으로 블록 타임 테이블(1212)을 갱신할 수 있다. 예를 들어, 제1 메모리 블록으로 이동된 데이터 중 가장 먼저 수신된 데이터의 수신 시각은 제1 시각이고, 가장 나중에 수신된 데이터의 수신 시각은 제2 시각일 수 있다. 이 때, 메모리 컨트롤러(1210)는 블록 타임 테이블(1212)에 제1 메모리 블록의 시작 시간(ST)을 제1 시각으로 설정하고, 종료 수신 시각(ET)을 제2 시각으로 설정할 수 있다.
S1260 단계에서, 불휘발성 메모리 시스템(1200)은 선택된 타겟 블록들에 대하여 물리 소거 동작을 수행한다. S1260 단계는 도 5의 S1130 단계와 동일하므로, 이에 대한 상세한 설명은 생략된다. 예시적으로, 타겟 블록들이 소거된 이 후에, 타겟 블록들의 시작 수신 시각(ST) 및 종료 수신 시각(ET)이 초기화되도록 블록 타임 테이블(1212)이 갱신될 수 있다.
도 11 및 도 12는 도 10의 동작 방법을 설명하기 위한 도면들이다. 간결한 설명을 위하여, 도 10의 동작 방법을 설명하는데 불필요한 구성 요소들은 생략된다. 도 11에 도시된 도면의 참조 번호들은 앞서 도 6을 참조하여 설명된 참조 번호들과 유사하므로, 이에 대한 상세한 설명은 생략된다. 또한, 도 11 및 도 12를 참조하여 설명되는 본 발명의 실시 예는 기준 시각(RT)보다 이전에 수신된 데이터에 대한 제거 동작을 기준으로 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니다. 즉, 도 11 기준 시각(RT)보다 이후에 수신된 데이터에 대한 제거 동작 또는 기준 시간 구간(RT) 사이에 수신된 데이터의 제거 동작에서도 제거되지 않을 데이터를 선택하는 동작 방법이 유사하게 적용될 수 있다.
먼저, 도 1, 도 10, 및 도 11을 참조하면, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 데이터 제거 커맨드(CMD_de) 및 기준 시각(RT)을 수신할 수 있다. 기준 시각(RT)은 T22 시각 및 T23 시각 사이에 포함될 수 있다. 즉, 기준 시간(RT)보다 이전에 수신된 데이터는 데이터(DATA11, DATA12, DATA13, DATA14, DATA21, DATA22)일 것이다. 이 경우, 메모리 컨트롤러(1210)는 제1 및 제2 메모리 블록들(BLK1, BLK2)을 타겟 블록들로서 선택할 수 있다. 즉, 메모리 컨트롤러(1210)는 시작 수신 시각(ST)이 기준 시각(RT)보다 이전인 메모리 블록들을 타겟 블록들로서 선택할 수 있다.
메모리 컨트롤러(1210)는 타겟 블록들로서 선택된 제1 및 제2 메모리 블록들(BLK1, BLK2)에 저장된 데이터 중 제거되지 않을 데이터를 선택할 수 있다. 예를 들어, 제2 메모리 블록(BLK2)의 데이터(DATA23, DATA24)는 기준 시간(RT)보다 이후인 T23 시각 및 T24 시각에 각각 수신되었으므로, 제거되지 않을 데이터일 것이다. 또한, 제1 메모리 블록(BLK1)의 데이터(DATA11, DATA12)는 호스트(1100)의 시스템 파일, 파일 시스템(1120, 도 2 참조)에 의해 관리되는 메타 정보, 또는 불휘발성 메모리 시스템(1200)에서 사용되는 메타 정보일 수 있다. 이 경우, 제1 메모리 블록(BLK1)의 데이터(DATA11, DATA12)는 제거되지 않을 데이터일 것이다. 즉, 메모리 컨트롤러(1210)는 제1 메모리 블록(BLK1)의 데이터(DATA11, DATA12) 및 제2 메모리 블록(BLK2)의 데이터(DATA21, DATA22)를 제거되지 않을 데이터로서 선택할 것이다.
메모리 컨트롤러(1210)는 선택된 데이터(DATA11, DATA12, DATA21, DATA22)를 자유 메모리 블록인 제4 메모리 블록(BLK4)으로 이동(또는 복사)시킬 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 데이터(DATA11, DATA12, DATA21, DATA22)를 순차적으로 읽고, 읽은 데이터를 순차적으로 제4 메모리 블록(BLK4)에 프로그램할 수 있다. 예시적으로, 스페어 영역(Spare Area)에 저장된 수신 시각(reception time)이 함께 이동될 수 있다. 예시적으로, 데이터가 자유 메모리 블록으로 이동하더라도, 이동된 데이터와 대응되는 수신 시각은 변경되지 않을 것이다.
다음으로, 도 1, 도 10, 및 도 12를 참조하면, 메모리 컨트롤러(1210)는 제1 및 제2 메모리 블록들(BLK1, BLK2)에 대하여 물리 소거 동작을 수행할 수 있다. 물리 소거된 제1 및 제2 메모리 블록들(BLK1, BLK2)은 자유 메모리 블록들로서 사용될 수 있다.
메모리 컨트롤러(1210)는 제1 및 제2 메모리 블록들(BLK1, BLK2)이 물리 소거된 이후에, 블록 타임 테이블(1212)을 갱신할 수 있다. 예를 들어, 메모리 컨트롤러(1210)는 물리 소거된 제1 및 제2 메모리 블록들(BLK1, BLK2)의 시작 수신 시각들(ST1, ST2) 및 종료 수신 시각들(ET1, ET2)을 해제할 수 있다. 메모리 컨트롤러(1210)는 제4 메모리 블록(BLK4)의 시작 수신 시각(ST4)을 T11 시각으로 설정하고, 종료 수신 시각(ET4)을 ET24 시각으로 설정할 수 있다.
도 10 내지 도 12를 참조하여 설명된 본 발명의 다른 실시 예에 따르면, 불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1212)을 기반으로 타겟 블록들을 선택하고, 선택된 타겟 블록들에 대하여 물리 소거 동작을 수행한다. 이 때, 불휘발성 메모리 시스템(1200)은 선택된 타겟 블록들에 저장된 데이터들 중 제거 조건에 부합되지 않거나 또는 제거 대상이 아닌 데이터를 선택하고, 선택된 데이터를 자유 블록으로 이동시킬 수 있다. 따라서, 시스템 정보 또는 메타 정보와 같은 데이터를 보호함으로써 사용자 시스템(1000)이 정상적으로 동작할 뿐만 아니라, 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 13은 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 14는 도 13의 동작 방법을 설명하기 위한 도면이다. 도 1, 도 13, 및 도 14를 참조하면, 불휘발성 메모리 시스템(1200)은 S1310 단계 내지 S1330 단계의 동작들을 수행할 수 있다. S1310 단계 내지 S1330 단계의 동작들은 도 5의 S1110 단계 내지 S1130 단계의 동작들과 동일하므로 이에 대한 상세한 설명은 생략된다.
S1340 단계에서, 불휘발성 메모리 시스템(1200)은 물리적으로 소거된 타겟 블록에 대하여 프로그램 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 시스템(1200)은 임의 데이터, 특정 패턴의 데이터, 더미 데이터, 또는 유저 데이터 등과 같은 데이터를 물리적으로 소거된 타겟 블록에 프로그램할 수 있다. 예시적으로, 불휘발성 메모리 시스템(1200)은 물리적으로 소거된 타겟 블록의 일부 영역 또는 특정 영역에 대하여 프로그램 동작을 수행할 수 있다. 좀 더 상세한 예로서, 도 14에 도시된 바와 같이 제1 메모리 블록(BLK1)은 타겟 블록으로서 선택된 메모리 블록이고, 물리적으로 소거될 수 있다. 이 후, 제1 메모리 블록(BLK1)은 임의 데이터(DATA_r)로 프로그램될 수 있다. 예시적으로, 임의 데이터(DATA_r)는 랜덤 패턴 데이터, 특정 패턴 데이터, 보안 패턴 데이터, 올 제로(all-zero) 데이터 등과 같은 데이터를 포함할 수 있다.
S1350 단계에서, 불휘발성 메모리 시스템(1200)은 타겟 블록에 대하여 물리적 소거 동작을 다시 수행할 수 있다. 예를 들어, 도 14에 도시된 바와 같이, 불휘발성 메모리 시스템(1200)은 임의 데이터(DATA_r)로 프로그램된 제1 메모리 블록(BLK1)을 물리적으로 다시 소거할 수 있다. 예시적으로, 불휘발성 메모리 시스템(1200)은 미리 정해진 횟수만큼 S1340 단계 및 S1350 단계의 동작들을 반복 수행할 수 있다.
상술된 본 발명의 또 다른 실시 예에 따르면, 타겟 블록에 대하여 물리 소거 및 프로그램 동작을 반복 수행함으로써 타겟 블록에 저장된 데이터를 완전 제거할 수 있다. 예를 들어, 타겟 블록이 1회 물리적 소거될 경우, 별도의 데이터 복구 장치 또는 알고리즘을 통해 타겟 블록의 메모리 셀들의 문턱 전압 및 셀 특성을 기반으로 데이터가 복구될 가능성이 있다. 그러나, 상술된 본 발명의 또 다른 실시 예에 따라, 타겟 블록에 대하여 물리 소거 및 프로그램 동작을 반복 수행할 경우, 타겟 블록의 데이터 복구가 불가능할 것이다. 따라서, 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 15는 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작 방법을 보여주는 순서도이다. 도 1 및 도 15를 참조하면, S1410 단계에서, 불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1212)을 스캔하여 타겟 블록을 탐색할 수 있다. 예를 들어, 불휘발성 메모리 시스템(1200)은 주기적으로 블록 타임 테이블(1212)을 검색하여 저장된 데이터의 수신 시각이 미리 정해진 시간을 경과한 메모리 블록들을 탐색할 수 있다. 예시적으로, 불휘발성 메모리 시스템(1200)은 도 5 내지 도 9를 참조하여 설명된 데이터 제거 조건을 기반으로 블록 타임 테이블(1212)을 스캔하여 타겟 블록을 탐색할 수 있다. 예시적으로, 불휘발성 메모리 시스템(1200)은 유휴 시간(idle time)동안 블록 타임 테이블(1212)을 스캔할 수 있다. 예시적으로, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터 별도의 커맨드 또는 요청을 수신하지 않고, S1410 단계를 수행할 수 있다.
S1420 단계에서, 불휘발성 메모리 시스템(1200)은 타겟 블록이 존재하는지 판별한다. 타겟 블록이 존재하는 경우, S1430 단계에서, 불휘발성 메모리 시스템(1200)은 타겟 블록에 대하여 물리 소거 동작을 수행한다. 타겟 블록이 존재하지 않는 경우, 불휘발성 메모리 시스템(1200)은 추가 동작을 수행하지 않는다.
상술된 본 발명의 또 다른 실시 예에 따르면, 불휘발성 메모리 시스템(1200)은 호스트(1100)로부터의 커맨드 또는 요청 없이 주기적으로 블록 타임 테이블(1212)을 스캔하여 타겟 블록을 선택하고, 선택된 타겟 블록에 대하여 물리 소거 동작을 수행할 수 있다. 따라서, 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 16은 본 발명의 또 다른 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 16을 참조하면, 사용자 시스템(2000)은 호스트(2100) 및 불휘발성 메모리 시스템(2200)을 포함한다. 불휘발성 메모리 시스템(2200)은 메모리 컨트롤러(2210) 및 불휘발성 메모리 장치(2220)를 포함한다. 메모리 컨트롤러(2210)는 데이터 제거부(2211) 및 블록 타임 테이블(2212)을 포함한다. 간결한 설명을 위하여, 호스트(2100), 불휘발성 메모리 시스템(2200), 메모리 컨트롤러(2210), 불휘발성 메모리 장치(2220), 데이터 제거부(2211), 및 블록 타임 테이블(2212)은 도 1 내지 도 15를 참조하여 설명되었으므로 이에 대한 상세한 설명은 생략된다.
호스트(2100)는 불휘발성 메모리 시스템(2200)으로 수신 시각(RCT; reception time) 또는 절대 시간(ABT; absolute time)을 전송할 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 수신 시각(RCT; reception time) 또는 절대 시간(ABT; absolute time)을 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다. 예를 들어, 메모리 컨트롤러(2210)는 호스트(2100)로부터 수신 시각(RCT) 및 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 불휘발성 메모리 장치(2220)에 저장할 수 있다. 메모리 컨트롤러(2210)는 블록 타임 테이블(2212)에서 수신 시각(RCT)을 기반으로 데이터(DATA)가 저장된 메모리 블록에 대한 정보를 갱신할 수 있다. 또는, 메모리 컨트롤러(2210)는 호스트(2100)로부터 주기적으로 절대 시간(ABT)을 수신하고, 수신된 절대 시간(ABT)을 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다.
예시적으로, 하의 도면들을 참조하여 블록 타임 테이블(2212)의 관리 방법이 상세하게 설명된다.
도 17은 도 16의 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 18 및 도 19는 도 17의 동작 방법을 설명하기 위한 도면들이다. 먼저, 도 16 및 도 17을 참조하면, S2110 단계에서, 불휘발성 메모리 시스템(2200)은 호스트(2100)로부터 데이터(DATA), 쓰기 커맨드, 및 수신 시각(RCT)을 수신한다. 예시적으로, 수신 시각(RCT)은 쓰기 커맨드의 예비 영역에 포함될 수 있다. 또는 수신 시각(RCT)은 데이터(DATA)에 포함될 수 있다. 또는 수신 시각(RCT)은 복수의 데이터 섹터들 각각에 포함될 수 있다. 수신 시각(RCT)은 호스트(2100)에 의해 정의된 상대 시간이거나, 호스트(2100)에 의해 관리되는 절대 시간일 수 있다.
S2120 단계에서, 불휘발성 메모리 시스템(2200)은 수신된 데이터(DATA)를 사용자 영역에 저장하고, 수신된 수신 시각(RCT)을 스페어 영역에 저장한다. 예시적으로, 수신된 데이터(DATA)와 대응되는 수신 시각(RCT)은 수신된 데이터(DATA)가 저장된 페이지의 스페어 영역에 저장될 수 있다.
S2130 단계에서, 불휘발성 메모리 시스템(2200)은 수신된 수신 시각(RCT)을 기반으로 블록 타임 테이블(2212)을 갱신한다. 예를 들어, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에서 데이터(DATA)가 저장된 메모리 블록의 종료 수신 시각(ET)을 수신된 수신 시각(RCT)으로 갱신할 수 있다.
도 18을 참조하여 도 17의 동작 방법이 더욱 상세하게 설명된다. 도 16 내지 도 18을 참조하면, 불휘발성 메모리 시스템(2200)은 제1 시각(T1)에 호스트(2100)로부터 제1 데이터(DATA1)를 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 제1 데이터(DATA1)를 제1 메모리 블록(BLK1)의 사용자 영역에 기입할 수 있다. 예시적으로, 불휘발성 메모리 시스템(2200)은 수신 시각(RCT)으로서 제1 시각(T1)에 대한 정보를 제1 데이터(DATA1)와 함께 호스트(2100)로부터 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 수신 시각(RCT)(즉, 제1 시각(T1)을 제1 메모리 블록(BLK1)의 스페어 영역에 저장할 수 있다. 제1 메모리 블록(BLK1)에 제1 데이터(DATA1)가 저장된 이후, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에서 제1 메모리 블록(BLK1)의 시작 수신 시각(ST) 및 종료 수신 시각(ET)을 각각 제1 시각(T1)으로 갱신할 수 있다.
다음으로, 불휘발성 메모리 시스템(2200)은 제2 시각(T2)에 제2 데이터(DATA2)를 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 제2 데이터(DATA2)를 제1 메모리 블록(BLK1)의 사용자 영역에 저장할 수 있다. 마찬가지로, 불휘발성 메모리 시스템(2200)은 수신 시각(RCT)으로서 제2 시각(T2)에 대한 정보를 제2 데이터(DATA2)와 함께 호스트(2100)로부터 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 제2 시각(T2)을 제1 메모리 블록(BLK1)의 스페어 영역에 저장할 수 있다. 제1 메모리 블록(BLK1)에 제2 데이터(DATA2)가 저장된 이후, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에서 제1 메모리 블록(BLK1)의 종료 수신 시각(ET)을 제2 시각(T2)으로 갱신할 수 있다. 이는 제1 시각(T1) 내지 제2 시각(T2) 사이에 수신된 데이터가 제1 메모리 블록(BLK1)에 저장되어 있음을 의미한다.
다음으로, 불휘발성 메모리 시스템(2200)은 제3 시각(T3)에 제3 데이터(DATA3)를 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 제3 데이터(DATA3)를 제1 메모리 블록(BLK1)의 사용자 영역에 저장할 수 있다. 마찬가지로, 불휘발성 메모리 시스템(2200)은 수신 시각(RCT)으로서 제3 시각(T3)에 대한 정보를 제3 데이터(DATA3)와 함께 호스트(2100)로부터 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 제3 시각(T3)을 제1 메모리 블록(BLK1)의 스페어 영역에 저장할 수 있다. 제1 메모리 블록(BLK1)에 제3 데이터(DATA3)가 저장된 이후, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에서 제1 메모리 블록(BLK1)의 종료 수신 시각(ET)을 제3 시각(T3)으로 갱신할 수 있다. 이는 제1 시각(T1) 내지 제3 시각(T3) 사이에 수신된 데이터가 제1 메모리 블록(BLK1)에 저장되어 있음을 의미한다.
상술된 바와 같이, 불휘발성 메모리 시스템(2200)은 호스트(2100)로부터 데이터가 수신될 때마다, 호스트(2100)로부터 수신 시각(reception time)을 수신하고, 이를 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다. 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)을 기반으로 도 1 내지 도 15를 참조하여 설명된 동작을 수행할 수 있다.
다음으로, 도 16, 도 17, 및 도 19를 참조하면, 불휘발성 메모리 시스템(2200)은 제1 시각(T1)에 호스트(2100)로부터 쓰기 커맨드와 함께 제1 수신 시각(RCT1)에 대한 정보를 수신할 수 있다. 예시적으로, 제1 수신 시각(RCT1)에 대한 정보는 제1 시각(T1)에 대한 정보이며, 쓰기 커맨드에 포함될 수 있다.
이 후, 제2 및 제3 시각들(T2, T3) 각각에서, 불휘발성 메모리 시스템(2200)은 호스트(2100)로부터 제1 및 제2 데이터(DATA1, DATA2) 각각을 수신할 수 있다. 예시적으로, 제1 및 제2 데이터(DATA1, DATA2) 각각은 제1 시각(T1)에 수신된 쓰기 커맨드에 대한 데이터일 수 있다. 불휘발성 메모리 시스템(2200)은 제1 및 제2 데이터(DATA1, DATA2)를 제1 메모리 블록(BLK1)에 저장할 수 있다. 이 때, 불휘발성 메모리 시스템(2200)은 제1 수신 시각(RCT1)에 대한 정보(즉, 제1 시각(T1))에 대한 정보를 제1 메모리 블록(BLK1)의 스페어 영역에 기입할 수 있다.
예시적으로, 제1 메모리 블록(BLK1)에 제1 및 제2 데이터(DATA1, DATA2)가 저장된 이후에, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)을 갱신할 수 있다. 예를 들어, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에서 제1 메모리 블록(BLK1)의 시작 수신 시각(ST) 및 종료 수신 시각(ET)을 제1 시각(T1)(즉, 제1 수신 시각(RCT1)으로 설정할 수 있다.
다음으로, 제4 시각(T4)에서, 불휘발성 메모리 시스템(2200)은 호스트(2100)로부터 쓰기 커맨드와 함께 제2 수신 시각(RCT2)에 대한 정보를 수신할 수 있다. 예시적으로, 제2 수신 시각(RCT2)에 대한 정보는 제4 시각(T4)에 대한 정보이며, 쓰기 커맨드에 포함될 수 있다.
이 후, 제5 및 제6 시각들(T5, T6) 각각에서, 불휘발성 메모리 시스템(2200)은 제3 및 제4 데이터(DATA3, DATA4)를 수신할 수 있다. 예시적으로, 제3 및 제4 데이터(DATA3, DATA4) 각각은 제4 시각(T4)에 수신된 쓰기 커맨드에 대한 데이터일 수 있다. 불휘발성 메모리 시스템(2200)은 제3 및 제4 데이터(DATA3, DATA4)를 제1 메모리 블록(BLK1)에 저장할 수 있다. 이 때, 불휘발성 메모리 시스템(2200)은 제2 수신 시각(RCT2)에 대한 정보(즉, 제4 시각(T4))에 대한 정보를 제1 메모리 블록(BLK1)의 스페어 영역에 기입할 수 있다.
예시적으로, 제1 메모리 블록(BLK1)에 제1 및 제2 데이터(DATA1, DATA2)가 저장된 이후에, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)을 갱신할 수 있다. 예를 들어, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에서 제1 메모리 블록(BLK1)의 종료 수신 시각(ET)을 제4 시각(T4)(즉, 제2 수신 시각(RCT2)으로 설정할 수 있다.
상술된 바와 같이, 불휘발성 메모리 시스템(2200)은 호스트(2100)로부터 쓰기 커맨드와 함께 수신 시각에 대한 정보를 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 수신 시각을 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다. 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)을 기반으로 도 1 내지 도 15를 참조하여 설명된 동작을 수행할 수 있다.
도 20은 도 16의 불휘발성 메모리 시스템의 다른 동작을 보여주는 순서도이다. 도 21은 도 20의 동작을 설명하기 위한 도면이다. 먼저 도 16, 도 20, 및 도 21을 참조하면, S2210 단계에서, 불휘발성 메모리 시스템(2200)은 호스트(2100)로부터 절대 시각(ABT)에 대한 정보를 주기적으로 수신한다. 예시적으로, 절대 시각(ABT)은 호스트(2100)에 의해 관리 또는 정의되는 시간을 가리킨다. 불휘발성 메모리 시스템(2200)은 미리 정의된 커맨드, 예비 커맨드, 제조사 커맨드, 또는 커맨드들의 조합을 통해 절대 시각(ABT)을 호스트(2100)로부터 수신할 수 있다.
S2220 단계에서, 불휘발성 메모리 시스템(2200)은 수신된 절대 시각(ABT)을 기반으로 블록 타임 테이블(2212)을 주기적으로 갱신할 수 있다. 예를 들어, 불휘발성 메모리 시스템(2200)은 이전에 수신된 절대 시각부터 현재 수신된 절대 시각(ABT) 사이에 수신된 데이터들이 저장된 메모리 블록들의 시작 수신 시각 및 종료 수신 시각을 절대 시각(ABT)을 기반으로 갱신할 수 있다.
좀 더 상세한 예로서, 도 21에 도시된 바와 같이, 불휘발성 메모리 시스템(2200)은 제1 및 제2 시각들(T1, T2) 각각에서, 제1 및 제2 데이터(DATA1, DATA2)를 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 제1 및 제2 데이터(DATA1, DATA2)를 제1 메모리 블록(BLK1)에 저장할 수 있다.
이 후, 불휘발성 메모리 시스템(2200)은 제3 시각(T3)에 제1 절대 시각(ABT1)에 대한 정보를 호스트(2100)로부터 수신할 수 있다. 제1 절대 시각(ABT1)에 대한 정보는 제3 시각(T3)에 대한 정보일 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 제1 절대 시각(ABT1)에 대한 정보를 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다. 즉, 제1 메모리 블록(BLK1)에 저장된 제1 및 제2 데이터(DATA1, DATA2)는 수신 시각(reception time)에 대한 정보가 없을 수 있다. 불휘발성 메모리 시스템(2200)은 제1 절대 시각(ABT1)을 수신한 이후에, 수신 시각에 대한 정보가 없는 데이터의 수신 시각을 제1 절대 시각(ABT1)으로 설정할 수 있다. 예시적으로, 제3 시각(T3)(즉, 제1 절대 시각(ABT1))에 대한 정보가 제1 메모리 블록(BLK1)의 스페어 영역에 저장될 수 있다. 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에 포함된 제1 메모리 블록(BLK1)의 시작 수신 시각 및 종료 수신 시각을 제3 시각(T3)(즉, 제1 절대 시각(ABT1))으로 갱신할 수 있다.
이 후, 불휘발성 메모리 시스템(2200)은 제4 및 제5 시각(T4, T4) 각각에서 제3 및 제4 데이터(DATA3, DATA4)를 각각 수신할 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 제3 및 제4 데이터(DATA3, DATA4)를 제1 메모리 블록(BLK1)에 저장할 수 있다.
이 후, 불휘발성 메모리 시스템(2200)은 제6 시각(T3)에 제2 절대 시각(ABT2)에 대한 정보를 호스트(2100)로부터 수신할 수 있다. 제2 절대 시각(ABT2)에 대한 정보는 제6 시각(T6)에 대한 정보일 수 있다. 불휘발성 메모리 시스템(2200)은 수신된 제2 절대 시각(ABT2)에 대한 정보를 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다. 즉, 제1 메모리 블록(BLK1)에 저장된 제3 및 제4 데이터(DATA3, DATA4)는 수신 시각(reception time)에 대한 정보가 없을 수 있다. 불휘발성 메모리 시스템(2200)은 제2 절대 시각(ABT2)을 수신한 이후에, 수신 시각에 대한 정보가 없는 데이터의 수신 시각을 제2 절대 시각(ABT2)으로 설정할 수 있다. 예시적으로, 제6 시각(T6)(즉, 제2 절대 시각(ABT2))에 대한 정보가 제1 메모리 블록(BLK1)의 스페어 영역에 저장될 수 있다. 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)에 포함된 제1 메모리 블록(BLK1)의 종료 수신 시각을 제6 시각(T6)(즉, 제2 절대 시각(ABT2))으로 갱신할 수 있다.
상술된 본 발명의 실시 예에 따르면, 불휘발성 메모리 시스템(2200)은 수신 시각(RCT) 또는 절대 시각(ABT)에 대한 정보를 호스트(2100)로부터 수신하고, 수신된 수신 시각(RCT) 또는 절대 시각(ABT)을 기반으로 블록 타임 테이블(2212)을 갱신할 수 있다. 이 때, 수신 시각(RCT)은 쓰기 커맨드 또는 데이터와 함께 수신될 수 있고, 절대 시각(ABT)은 호스트(2100)로부터 주기적으로 수신될 수 있다. 예시적으로, 불휘발성 메모리 시스템(2200)은 블록 타임 테이블(2212)을 기반으로 도 1 내지 도 15를 참조하여 설명된 동작을 수행할 수 있다.
도 22는 본 발명의 또 다른 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 22를 참조하면, 사용자 시스템(3000)은 호스트(3100) 및 불휘발성 메모리 시스템(3200)을 포함한다. 불휘발성 메모리 시스템(3200)은 메모리 컨트롤러(3210) 및 불휘발성 메모리 장치(3220)를 포함한다. 메모리 컨트롤러(3210)는 데이터 제거부(3211), 블록 타임 테이블(3212), 및 타이머(3219)를 포함한다. 간결한 설명을 위하여, 호스트(3100), 불휘발성 메모리 시스템(3200), 메모리 컨트롤러(3210), 불휘발성 메모리 장치(3220), 데이터 제거부(3211), 및 블록 타임 테이블(3212)은 도 1 내지 도 15를 참조하여 설명되었으므로 이에 대한 상세한 설명은 생략된다.
도 22의 메모리 컨트롤러(3210)는 타이머(3219)를 더 포함한다. 타이머(3219)는 현재 시각에 대한 정보를 생성할 수 있다. 예시적으로, 현재 시각은 절대 시각이거나 또는 기준 시각에 대한 상대 시각일 수 있다. 또는 현재 시각은 불휘발성 메모리 시스템(3200)의 동작 클럭의 카운팅 횟수이거나 또는 호스트(3100)로부터 제공되는 클럭의 카운팅 횟수일 수 있다.
메모리 컨트롤러(3210)는 타이머(3219)로부터 생성된 현재 시각을 기반으로 블록 타임 테이블(3219)을 갱신할 수 있다. 예를 들어, 메모리 컨트롤러(3210)는 호스트(3100)로부터 수신된 데이터의 수신 시각을 타이머(3219)에 의해 생성된 현재 시각으로 설정하고, 설정된 수신 시각을 기반으로 블록 타임 테이블(3212)을 갱신할 수 있다.
상술된 본 발명의 또 다른 실시 예에 따르면, 불휘발성 메모리 시스템(3200)은 타이머(3219)를 사용하여 데이터의 수신 시각을 설정하고, 이를 기반으로 블록 타임 테이블(3212)을 관리할 수 있다. 불휘발성 메모리 시스템(3200)은 블록 타임 테이블(3212)을 기반으로 도 1 내지 도 15를 참조하여 설명된 동작을 수행할 수 있다. 따라서, 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 23은 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 24는 도 23의 동작을 설명하기 위한 도면이다. 예시적으로, 도 23 및 도 24를 참조하여, 불휘발성 메모리 시스템(1200)의 가비지 콜렉션 동작이 설명된다. 도 1, 도 23, 및 도 24를 참조하면, S3110 단계에서, 불휘발성 메모리 시스템(1200)은 가비지 콜렉션(GC)이 요구되는지 판별할 수 있다. 예를 들어, 불휘발성 메모리 시스템(1200)은 자유 블록 개수가 소정의 개수 이하인 경우, 가비지 콜렉션이 요구되는 것으로 판별할 수 있다.
가비지 콜렉션이 요구되는 경우, S3120 단계에서, 불휘발성 메모리 시스템(1200)은 소스 블록들을 선택할 수 있다.
S3130 단계에서, 불휘발성 메모리 시스템(1200)은 소스 블록들에 포함된 유효 페이지들을 탐색할 수 있다. 예를 들어, 불휘발성 메모리 시스템(1200)은 소스 블록들의 스페어 영역을 스캔하여 유효 데이터가 저장된 유효 페이지들을 탐색할 수 있다.
S3140 단계에서, 불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1200)을 기반으로 유효 페이지들을 목표 블록으로 이동시킬 수 있다. 예를 들어, 제1 내지 제4 메모리 블록(BLK1~BLK4)이 소스 블록들로서 선택될 수 있다. 도 24에 도시된 바와 같이, 제1 메모리 블록(BLK1)의 시작 수신 시각은 T11 시각이고, 종료 수신 시각은 T12 시각일 수 있다. 이는 제1 메모리 블록(BLK1)에 포함된 데이터가 T11 시각부터 T12 시각 사이에 수신되었음을 가리킨다. 마찬가지로, 제2 메모리 블록(BLK2)의 시작 수신 시각은 T21 시각이고, 종료 수신 시각은 T22 시각일 수 있다. 제3 메모리 블록(BLK3)의 시작 수신 시각은 T31 시각이고, 종료 수신 시각은 T32 시각일 수 있다. 제4 메모리 블록(BLK4)의 시작 수신 시각은 T41 시각이고, 종료 수신 시각은 T42 시각일 수 있다.
불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1212)을 기반으로, 목표 블록들의 시작 수신 시각 및 종료 수신 시각의 차이가 최소화되도록 소스 블록들의 유효 데이터를 목표 블록으로 이동시킬 수 있다. 좀 더 상세한 예로서, 제1 메모리 블록(BLK1)의 시작 수신 시각(T11)부터 제2 메모리 블록(BLK2)의 종료 수신 시각(T22)까지의 시간은 미리 정해진 시간보다 짧을 수 있다. 이 경우, 불휘발성 메모리 시스템(1200)은 제1 및 제2 메모리 블록들(BLK1, BLK2)에 포함된 유효 데이터를 자유 메모리 블록인 제5 메모리 블록(BLK5)으로 이동시킬 수 있다. 마찬가지로, 제3 메모리 블록(BLK3)의 시작 수신 시각(T31)부터 제4 메모리 블록(BLK4)의 종료 수신 시각(T42)까지의 시간은 미리 정해진 시간보다 짧을 수 있다. 이 경우, 불휘발성 메모리 시스템(1200)은 제3 및 제4 메모리 블록들(BLK3, BLK4)에 포함된 유효 데이터를 자유 메모리 블록인 제6 메모리 블록(BLK6)으로 이동시킬 수 있다. 예시적으로, 상술된 바와 같이 유효 데이터를 이동시킴으로서, 데이터가 이동된 메모리 블록의 시작 수신 시각 및 종료 수신 시각의 차이가 미리 정해진 시간 내에 포함되도록 메모리 블록들의 시작 수신 시각 및 종료 수신 시각이 관리될 수 있다.
S3150 단계에서, 불휘발성 메모리 시스템(1200)은 소스 블록들에 대하여 물리 소거 동작을 수행할 수 있다. 예를 들어, 도 24에 도시된 바와 같이, 불휘발성 메모리 시스템(1200)은 제1 내지 제4 메모리 블록들(BLK1~BLK4)을 소거할 수 있다.
S3160 단계에서, 불휘발성 메모리 시스템(1200)은 목표 블록들에 포함된 유효 데이터의 수신 시각을 기반으로 타임 테이블(1212)을 갱신할 수 있다. 예를 들어, 도 24에 도시된 바와 같이, 제5 메모리 블록(BLK5)은 제1 및 제2 메모리 블록들(BLK1, BLK2)에 포함된 유효 데이터를 포함할 것이다. 즉, 제5 메모리 블록(BLK5)에 포함된 데이터는 T11 시각 내지 T22 시각 사이에 수신된 데이터일 것이다. 불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1212)에서 제5 메모리 블록(BLK5)의 시작 수신 시각을 T11 시각으로 갱신하고, 종료 수신 시각을 T22 시각으로 갱신할 수 있다. 마찬가지로, 불휘발성 메모리 시스템(1200)은 제6 메모리 블록(BLK6)의 시작 수신 시각을 T31 시각으로 설정하고, 종료 수신 시각을 T42 시각으로 설정할 수 있다. 예시적으로, 물리 소거된 제1 내지 제4 메모리 블록들(BLK1~BLK4)의 시작 수신 시각들 및 종료 수신 시각들은 해제될 수 있다.
상술된 바와 같이, 불휘발성 메모리 시스템(1200)의 가비지 콜렉션 동작시, 불휘발성 메모리 시스템(1200)은 인접한 시각에 수신된 데이터를 하나의 목표 블록으로 이동시킴으로써, 미리 정해진 시간 사이에 수신된 데이터가 하나의 메모리 블록에 저장되도록 가비지 콜렉션을 수행할 수 있다. 즉, 하나의 메모리 블록의 시작 수신 시각 및 종료 수신 시각의 차이를 미리 정해진 시간 이내로 관리함으로써, 데이터의 완전 제거 동작시의 오버헤드를 감소시킬 수 있다. 따라서, 향상된 성능 및 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 25는 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 26은 도 25의 동작을 설명하기 위한 도면이다. 도 1, 도 25, 및 도 26을 참조하면, S3210 단계에서, 불휘발성 메모리 시스템(1200)은 하나의 메모리 블록에 대하여 현재 시각(CT) 및 시작 시작(ST)의 차이가 기준 시간보다 긴지 판별할 수 있다. 예를 들어, 도 26에 도시된 바와 같이, 불휘발성 메모리 시스템(1200)은 제1 시각(T1)에 제1 데이터(DATA1)를 수신할 수 있다. 불휘발성 메모리 시스템(1200)은 제1 데이터(DATA1)를 제1 메모리 블록(BLK1)에 저장하고, 블록 타임 테이블(1212)에서 제1 메모리 블록(BLK1)의 시작 수신 시각 및 종료 수신 시각을 제1 시각(T1)으로 갱신할 수 있다.
이 후, 불휘발성 메모리 시스템(1200)은 제2 시각(T2)에 제2 데이터(DATA2)를 수신하고, 수신된 제2 데이터(DATA2)를 제1 메모리 블록(BLK2)에 저장할 수 있다. 불휘발성 메모리 시스템(1200)은 블록 타임 테이블(1212)에서, 제1 메모리 블록(BLK1)의 종료 수신 시각을 제2 시각(T2)으로 갱신할 수 있다.
도 26에 도시된 바와 같이, 제1 메모리 블록(BLK1)의 시작 수신 시각(T1) 및 현재 시각(CT)의 차이가 기준 시간(Trp)보다 길어질 수 있다. 이 경우, S3220 단계에서, 불휘발성 메모리 시스템(1200)은 메모리 블록의 남은 영역에 대하여 더미 프로그램 동작을 수행할 수 있다. 예를 들어, 도 26에 도시된 바와 같이, 현재 시점(CT)에서, 불휘발성 메모리 시스템(1200)은 제1 메모리 블록(BLK1)의 남은 영역들에 더미 데이터(DATA_d)를 저장할 수 있다. 이 경우, 제1 메모리 블록(BLK1)의 시작 수신 시각 및 종료 수신 시각은 갱신되지 않을 것이다. 즉, 불휘발성 메모리 시스템(1200)은 제1 메모리 블록(BLK1)의 남은 영역들에 더미 데이터(DATA_d)를 프로그램함으로써, 이 후 제1 메모리 블록(BLK1)이 물리 소거되기 전까지 제1 메모리 블록(BLK1)에는 다른 데이터가 저장되지 않을 것이다. 이는 제1 메모리 블록(BLK1)이 물리 소거되기 전까지 제1 메모리 블록(BLK1)의 시작 수신 시각 및 종료 수신 시각이 유지됨을 의미한다. 따라서, 제1 메모리 블록(BLK1)의 시작 수신 시각 및 종료 수신 시각의 차이가 미리 정해진 시간 내에 포함되도록 관리될 수 있다.
도 23 내지 도 26을 참조하여 설명된 불휘발성 메모리 시스템의 동작에 따르면, 하나의 메모리 블록의 시작 수신 시각 및 종료 수신 시각의 차이가 미리 정해진 시간 내에 포함되도록 관리될 수 있다. 즉, 하나의 메모리 블록의 시작 수신 시각 및 종료 수신 시각의 차이가 미리 정해진 시간 내에 포함되도록 관리함으로써, 도 10 내지 도 12를 참조하여 설명된 동작 방법에 따른 오버 헤드를 감소시킬 수 있다. 따라서, 향상된 성능 및 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 27은 본 발명에 따른 불휘발성 메모리 장치에 포함된 제1 메모리 블록의 예시적인 회로도이다. 예시적으로, 도 27을 참조하여 3차원 구조의 제1 메모리 블록(BLK1)이 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 다른 메모리 블록들 또한 제1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.
도 27을 참조하면, 제1 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS12)은 스트링 선택된 라인들(SSL1a, SSL1b)와 연결되어, 제1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택된 라인들(SSL2a, SSL2b)와 연결되어 제2 행을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS21)은 제1 비트라인(BL1)과 연결되어 제1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제2 비트라인(BL2)과 연결되어 제2 열을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택된 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택된 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다.
예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평명과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택된 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택된 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택된 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택된 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택된 트랜지스터들(GSTa, GSTb) 사이에 제1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택된 트랜지스터들(SSTa, SSTb) 사이에 제2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택된 트랜지스터들(GSTa, GSTb)은 접지 선택된 라인(GSL)에 공통으로 연결될 수 있다.
예시적으로, 동일한 행의 접지 선택된 트랜지스터들은 동일한 접지 선택된 라인에 연결될 수 있고, 다른 행의 접지 선택된 트랜지스터들은 다른 접지 선택된 라인에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 접지 선택된 트랜지스터들(GSTa)은 제1 접지 선택된 라인에 연결될 수 있고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 접지 선택된 트랜지스터들(GSTa)은 제2 접지 선택된 라인에 연결될 수 있다.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택된 트랜지터들은 동일한 접지 선택된 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택된 트랜지스터들은 다른 접지 선택된 라인에 연결될 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 접지 선택된 트랜지스터들(GSTa)은 제1 접지 선택된 라인에 연결되고, 제2 접지 선택된 트랜지스터들(GSTb)은 제2 접지 선택된 라인에 연결될 수 있다.
기판(또는 접지 선택된 트랜지스터(GSTa, GSTb)으로부터 동일한 높이의 메모리 셀들은 동일한 워드라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 내지 제8 메모리 셀들(MC8)은 제1 내지 제8 워드라인들(WL1~WL8)에 각각 공통으로 연결된다.
동일한 높이의 제1 스트링 선택된 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택된 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택된 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택된 라인(SSL1a)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택된 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제2 스트링 선택된 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택된 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택된 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택된 라인(SSL1b)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택된 라인(SSL2b)과 공통으로 연결된다.
비록 도면에 도시되지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택된 트랜지스터들은 동일한 스트링 선택된 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 및 제2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택된 라인에 공통으로 연결될 수 있다. 제2 행의 셀 스트링들(CS21, CS22)의 제1 및 제2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택된 라인에 공통으로 연결될 수 있다.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제1 더미 메모리 셀들(DMC1)은 제1 더미 워드라인(DWL1)과 연결되고, 제2 더미 메모리 셀들(DMC2)은 제2 더미 워드라인(DWL2)과 연결된다.
제1 메모리 블록(BLK1)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택된 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 행이 선택될 수 있다.
예를 들어, 스트링 선택된 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택된 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 스트링 선택된 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택된 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결되어 구동된다. 워드라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중 동일한 높이의 메모리 셀들이 선택된다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다.
제1 메모리 블록(BLK1)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 제1 메모리 블록(BLK1)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 제1 메모리 블록(BLK1)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅될 수 있다.
예시적으로, 도 27에 도시된 제1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들는 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
도 28은 본 발명의 실시 예들에 따른 불휘발성 메모리 시스템이 적용된 메모리 카드 시스템을 보여주는 블록도이다. 도 28을 참조하면, 메모리 카드 시스템(4000)은 컨트롤러(4100), 불휘발성 메모리(4200), 및 커넥터(4300)를 포함한다.
컨트롤러(4100)는 불휘발성 메모리(4200)와 연결된다. 컨트롤러(4100)는 불휘발성 메모리(4200)를 액세스하도록 구성된다. 예를 들어, 컨트롤러(4200)는 불휘발성 메모리(4100)의 읽기, 쓰기, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 배경(background) 동작은 마모도 관리, 가비지 콜렉션 등과 같은 동작들을 포함한다.
컨트롤러(4200)는 불휘발성 메모리(4100) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(4200)는 불휘발성 메모리(1100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
예시적으로, 컨트롤러(4100)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 메모리 인터페이스(memory interface), 에러 정정부와 같은 구성 요소들을 포함할 수 있다.
컨트롤러(4100)는 커넥터(4300)를 통해 외부 장치와 통신할 수 있다. 컨트롤러(4100)는 미리 정해진 통신 규격에 따라 외부 장치(예를 들어, 호스트)와 통신할 수 있다. 예시적으로, 컨트롤러(4200)는 USB (Universal Serial Bus), MMC (multimedia card), eMMC(embeded MMC), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer small interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe (Nonvolatile Memory express) 등과 같은 다양한 통신 규격들 중 적어도 하나를 통해 외부 장치와 통신하도록 구성된다.
불휘발성 메모리(4200)는 EPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 소자들로 구현될 수 있다.
예시적으로, 컨트롤러(4100) 및 불휘발성 메모리(4200)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 컨트롤러(4200) 및 불휘발성 메모리(4100)는 하나의 반도체 장치로 집적되어 솔리드 스테이트 드라이브(SSD, Solid State Drive)를 구성할 수 있다. 컨트롤러(4100) 및 불휘발성 메모리(4100)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(4100) 및 불휘발성 메모리(4200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티` `미디어 카드(MMC, RS-MMC, MMCmicro, eMMC), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
불휘발성 메모리(4200) 또는 메모리 카드 시스템(4000)은 다양한 형태의 패키지로 실장될 수 있다. 예를 들면, 불휘발성 메모리(4200) 또는 메모리 카드 시스템(4000)은 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) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
예시적으로, 메모리 카드 시스템(4000)은 도 1 내지 도 26을 참조하여 설명된 동작들을 수행할 수 있다.
도 29는 본 발명에 따른 불휘발성 메모리 시스템이 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 블록도이다. 도 29를 참조하면, SSD 시스템(5000)은 호스트(5100) 및 SSD(5200)를 포함한다. SSD(5200)는 신호 커넥터(5001)를 통해 호스트(5100)와 신호(SIG)를 주고 받고, 전원 커넥터(2002)를 통해 전원(PWR)을 입력받는다. SSD(2200)는 SSD 컨트롤러(2210), 복수의 플래시 메모리들(5221~522n), 보조 전원 장치(5230), 및 버퍼 메모리(5240)를 포함한다.
SSD 컨트롤러(5210)는 호스트(5100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(5221~522n)을 제어할 수 있다. 복수의 플래시 메모리들(5221~522n)은 SSD 컨트롤러(5210)의 제어에 따라 프로그램 동작을 수행할 수 있다.
보조 전원 장치(5230)는 전원 커넥터(5002)를 통해 호스트(5100)와 연결된다. 보조 전원 장치(5230)는 호스트(5100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 보조 전원 장치(5230)는 호스트(5100)로부터의 전원 공급이 원활하지 않을 경우, SSD 시스템(5000)의 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(5230)는 SSD(5200) 내에 위치할 수도 있고, SSD(5200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(5230)는 메인 보드에 위치하며, SSD(5200)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(5240)는 SSD(5200)의 버퍼 메모리로 동작한다. 예를 들어, 버퍼 메모리(5240)는 호스트(5100)로부터 수신된 데이터 또는 복수의 플래시 메모리들(5221~522n)로부터 수신된 데이터를 임시 저장하거나, 플래시 메모리들(5221~522n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 버퍼 메모리(5240)는 DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, SRAM 등과 같은 휘발성 메모리 또는 FRAM ReRAM, STT-MRAM, PRAM 등과 같은 불휘발성 메모리들을 포함할 수 있다.
예시적으로, SSD(5200)는 도 1 내지 도 26을 참조하여 설명된 동작을 수행할 수 있다. 예시적으로, 데이터의 수신 시각(reception time)은 호스트(5100)로부터 수신된 데이터가 버퍼 메모리(5240)에 저장되는 시각을 가리킬 수 있다.
도 30은 본 발명에 따른 불휘발성 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다. 도 30을 참조하면, 사용자 시스템(6000)은 애플리케이션 프로세서(6100), 메모리 모듈(6200), 네트워크 모듈(6300), 스토리지 모듈(6400), 및 사용자 인터페이스(6500)를 포함한다.
애플리케이션 프로세서(6100)는 사용자 시스템(6000)에 포함된 구성 요소들, 운영체제(OS; Operating System), 또는 다양한 프로그램들을 구동시킬 수 있다. 예시적으로, 애플리케이션 프로세서(6100)는 사용자 시스템(6000)에 포함된 구성 요소들을 제어하는 컨트롤러들, 인터페이스들, 그래픽 엔진 등을 포함할 수 있다. 애플리케이션 프로세서(6100)는 시스템-온-칩(SoC; System-on-Chip)의 형태로 제공될 수 있다.
메모리 모듈(6200)은 사용자 시스템(6000)의 주 메모리, 동작 메모리, 버퍼 메모리, 또는 캐쉬 메모리로 동작할 수 있다. 메모리 모듈(6200)은 DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, LPDDR SDARM, LPDDR3 SDRAM, LPDDR3 SDRAM 등과 같은 휘발성 랜덤 액세스 메모리 또는 PRAM, ReRAM, MRAM, FRAM 등과 같은 불휘발성 랜덤 액세스 메모리를 포함할 수 있다. 예시적으로, 메모리 모듈(6200)는 애플리케이션 프로세서(6100)와 패키지-온-패키지 방식으로 패키징될 수 있다.
네트워크 모듈(6300)은 외부 장치들과 통신을 수행할 수 있다. 예시적으로, 네트워크 모듈(6300)은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile communication), WCDMA(wideband CDMA), CDMA-2000, TDMA(Time Dvision Multiple Access), LTE(Long Term Evolution), Wimax, WLAN, UWB, 블루투스, WI-DI 등과 같은 무선 통신을 지원할 수 있다. 예시적으로, 네트워크 모듈(6300)은 애플리케이션 프로세서(6100)에 포함될 수 있다.
스토리지 모듈(6400)은 데이터를 저장할 수 있다. 예를 들어, 스토리지 모듈(6400)은 애플리케이션 프로세서(6100)로부터 수신한 데이터를 저장할 수 있다. 또는 스토리지 모듈(6400)은 스토리지 모듈(6400)에 저장된 데이터를 애플리케이션 프로세서(6100)로 전송할 수 있다. 예시적으로, 스토리지 모듈(6400)은 PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), NAND flash, NOR flash, 3차원 구조의 NAND 플래시 등과 같은 불휘발성 반도체 메모리 소자로 구현될 수 있다. 예시적으로, 스토리지 모듈(6400)은 도 1 내지 도 26을 참조하여 설명된 동작들을 수행할 수 있다.
사용자 인터페이스(6500)는 애플리케이션 프로세서(6100)에 데이터 또는 명령어를 입력하거나 또는 외부 장치로 데이터를 출력하는 인터페이스들을 포함할 수 있다. 예시적으로, 사용자 인터페이스(6500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(6500)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다.
상술된 본 발명의 실시 예들에 따르면, 불휘발성 메모리 시스템은 호스트로부터 수신된 데이터의 수신 시각을 메모리 블록별 또는 데이터별로 관리할 수 있다. 불휘발성 메모리 시스템은 관리되는 수신 시각을 기반으로 데이터를 완전 제거할 수 있다. 따라서, 향상된 보안성을 갖는 불휘발성 메모리 시스템이 제공된다.
예시적으로, 상술된 본 발명의 실시 예들은 본 발명의 기술적 사상을 상세하게 설명하기 위하여 특정된 실시 예들이며, 본 발명의 기술적 사상이 이에 국한되는 것은 아니다.
본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
1000 : 사용자 시스템 1100 : 호스트
1200 : 불휘발성 메모리 시스템 1210 : 메모리 컨트롤러
1211 : 데이터 제거부 1212 : 블록 타임 테이블
1220 : 불휘발성 메모리 장치 CMD_de : 데이터 제거 커맨드
ST : 시작 수신 시각 ET : 종료 수신 시각
RCT : 수신 시각 ABT : 절대 시각
BLK : 메모리 블록

Claims (10)

  1. 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치; 및
    상기 복수의 메모리 블록들 각각의 데이터에 대한 시작 수신 시각 및 종료 수신 시각을 관리하고, 상기 관리되는 시작 수신 시각 및 종료 수신 시각을 기반으로 상기 복수의 메모리 블록들 중 적어도 하나의 메모리 블록을 물리적으로 소거하는 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 시작 수신 시각은 상기 복수의 메모리 블록들 각각의 데이터 중 가장 먼저 수신된 데이터의 수신 시각을 가리키고, 상기 종료 수신 시각은 상기 복수의 메모리 블록들 각각의 데이터 중 가장 늦게 수신된 데이터의 수신 시각을 가리키는 불휘발성 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 호스트로부터 기준 시각을 포함한 데이터 제어 커맨드를 수신하고, 상기 데이터 제어 커맨드에 응답하여 상기 기준 시각, 상기 시작 수신 시각, 및 상기 종료 수신 시각을 기반으로 상기 적어도 하나의 메모리 블록을 물리적으로 소거하는 불휘발성 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 메모리 블록은 상기 기준 시각보다 빠른 종료 수신 시각을 갖는 불휘발성 메모리 시스템.
  5. 제 3 항에 있어서,
    상기 적어도 하나의 메모리 블록은 상기 기준 시각보다 늦은 시작 수신 시각을 갖는 불휘발성 메모리 시스템.
  6. 제 3 항에 있어서,
    상기 메모리 컨트롤러는 상기 적어도 하나의 메모리 블록에 저장된 데이터 중 제거되지 않을 데이터를 선택하고, 상기 선택된 데이터를 자유 메모리 블록으로 이동시키는 불휘발성 메모리 시스템.
  7. 제 6 항에 있어서,
    상기 제거되지 않을 데이터는 유효 데이터, 상기 호스트에 의해 관리되는 메타 데이터, 또는 상기 메모리 컨트롤러에 의해 관리되는 메타 데이터를 포함하는 불휘발성 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 호스트로부터 데이터 및 수신 시각을 수신하고, 상기 수신된 데이터를 상기 복수의 메모리 블록들 중 어느 하나의 메모리 블록의 사용자 영역에 저장하고, 상기 수신된 수신 시각을 상기 데이터가 저장된 사용자 영역과 대응되는 스페어 영역에 저장하는 불휘발성 메모리 시스템.
  9. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 호스트로부터 절대 시각을 수신하고, 상기 수신된 절대 시각을 기반으로 상기 복수의 메모리 블록들 각각의 데이터에 대한 상기 시작 수신 시각 및 상기 종료 수신 시각을 갱신하는 불휘발성 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 복수의 메모리 블록들 중 어느 하나의 메모리 블록의 상기 종료 수신 시각 및 현재 시각의 차이가 기준 시간을 초과하는 경우, 상기 어느 하나의 메모리 블록의 남은 영역에 더미 데이터를 프로그램하는 불휘발성 메모리 시스템.

KR1020150055408A 2015-04-20 2015-04-20 불휘발성 메모리 시스템 및 그것의 동작 방법 KR102291806B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150055408A KR102291806B1 (ko) 2015-04-20 2015-04-20 불휘발성 메모리 시스템 및 그것의 동작 방법
US15/048,988 US9760308B2 (en) 2015-04-20 2016-02-19 Nonvolatile memory system and operation method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150055408A KR102291806B1 (ko) 2015-04-20 2015-04-20 불휘발성 메모리 시스템 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160124990A KR20160124990A (ko) 2016-10-31
KR102291806B1 true KR102291806B1 (ko) 2021-08-24

Family

ID=57129152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150055408A KR102291806B1 (ko) 2015-04-20 2015-04-20 불휘발성 메모리 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US9760308B2 (ko)
KR (1) KR102291806B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230068266A (ko) * 2021-11-10 2023-05-17 삼성전자주식회사 메모리 컨트롤러, 저장 장치, 및 저장 장치의 동작 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102449192B1 (ko) * 2015-09-10 2022-09-29 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
KR102452993B1 (ko) * 2016-03-25 2022-10-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US9977622B1 (en) 2016-11-22 2018-05-22 Micron Technology, Inc. Buffer operations in memory
KR20180126921A (ko) * 2017-05-19 2018-11-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20180102241A (ko) * 2017-03-06 2018-09-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11030094B2 (en) * 2018-07-31 2021-06-08 SK Hynix Inc. Apparatus and method for performing garbage collection by predicting required time
KR102692901B1 (ko) * 2019-01-11 2024-08-08 에스케이하이닉스 주식회사 메모리 시스템에서의 비휘발성 메모리 블록 내 데이터를 삭제하는 방법 및 장치
KR20200088563A (ko) 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200091679A (ko) 2019-01-23 2020-07-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR102714121B1 (ko) 2019-02-01 2024-10-08 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11288007B2 (en) * 2019-05-16 2022-03-29 Western Digital Technologies, Inc. Virtual physical erase of a memory of a data storage device
KR102671736B1 (ko) * 2019-05-31 2024-06-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR102671743B1 (ko) 2019-05-31 2024-06-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20210071314A (ko) 2019-12-06 2021-06-16 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
JP2023137910A (ja) * 2022-03-18 2023-09-29 キオクシア株式会社 メモリシステムおよび制御方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US6684288B1 (en) * 2000-06-06 2004-01-27 Intel Corporation Method and apparatus for predictive flash memory erase and write times
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US8332574B2 (en) 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US7969788B2 (en) * 2007-08-21 2011-06-28 Micron Technology, Inc. Charge loss compensation methods and apparatus
KR100988414B1 (ko) 2007-09-07 2010-10-18 (주)밀레니엄 포스 데이터 보안장치
KR101226685B1 (ko) * 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
JP5106219B2 (ja) * 2008-03-19 2012-12-26 株式会社東芝 メモリデバイス、ホストデバイス、メモリシステム、メモリデバイスの制御方法、ホストデバイスの制御方法、およびメモリシステムの制御方法
JP2010165039A (ja) 2009-01-13 2010-07-29 Sony Ericsson Mobilecommunications Japan Inc メモリ制御方法、メモリ制御装置および電子機器
JP4533960B2 (ja) * 2009-01-30 2010-09-01 株式会社東芝 記憶装置および情報処理装置
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
KR101785010B1 (ko) * 2011-07-12 2017-10-12 삼성전자주식회사 불휘발성 메모리 장치
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
JP2012048770A (ja) 2010-08-24 2012-03-08 Toshiba Corp 不揮発性半導体記憶装置、及び、メモリシステム
KR101736457B1 (ko) * 2011-07-12 2017-05-17 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치의 소거 방법, 불휘발성 메모리 장치의 동작 방법, 불휘발성 메모리 장치를 포함하는 메모리 시스템, 메모리 시스템의 동작 방법, 불휘발성 메모리 장치를 포함하는 메모리 카드 및 솔리드 스테이트 드라이브
JP5697796B2 (ja) 2011-08-29 2015-04-08 株式会社日立製作所 電気的に書き換え可能な不揮発性半導体メモリを有する半導体記憶装置
KR101942272B1 (ko) * 2011-12-27 2019-01-28 삼성전자주식회사 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
CN108595345B (zh) 2012-07-25 2021-11-23 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
KR102013841B1 (ko) 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9117530B2 (en) * 2013-03-14 2015-08-25 Sandisk Technologies Inc. Preserving data from adjacent word lines while programming binary non-volatile storage elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230068266A (ko) * 2021-11-10 2023-05-17 삼성전자주식회사 메모리 컨트롤러, 저장 장치, 및 저장 장치의 동작 방법
KR102557992B1 (ko) * 2021-11-10 2023-07-20 삼성전자주식회사 메모리 컨트롤러, 저장 장치, 및 저장 장치의 동작 방법

Also Published As

Publication number Publication date
US20160306590A1 (en) 2016-10-20
US9760308B2 (en) 2017-09-12
KR20160124990A (ko) 2016-10-31

Similar Documents

Publication Publication Date Title
KR102291806B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102254392B1 (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR102211865B1 (ko) 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102148889B1 (ko) 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US10304539B2 (en) Method of performing a write operation based on an idle time
US10008272B2 (en) Operation method of nonvolatile memory system that includes erase operations, fast erase operations, program operations and fast program operations
KR102290974B1 (ko) 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
KR102291803B1 (ko) 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
US9032138B2 (en) Storage device based on a flash memory and user device including the same
US20160188208A1 (en) Nonvolatile memory system and operation method of the same
KR102420158B1 (ko) 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법
US9916093B2 (en) Nonvolatile memory device and storage device for storing bad block management information with high reliability
US9977711B2 (en) Operation method of nonvolatile memory system
US20160246529A1 (en) Storage device and operating method of the same
KR20170015708A (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR20200086143A (ko) 저장 장치 및 그것의 데이터 처리 방법
US9798478B2 (en) Nonvolatile memory system for creating and updating program time stamp and operating method thereof
US11556271B2 (en) Storage device storing data on key-value basis and operating method thereof
KR102222444B1 (ko) 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법
KR102435863B1 (ko) 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
KR102234725B1 (ko) 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right