KR20200051141A - 데이터 스토리지 디바이스 및 데이터 스토리지 시스템 - Google Patents

데이터 스토리지 디바이스 및 데이터 스토리지 시스템 Download PDF

Info

Publication number
KR20200051141A
KR20200051141A KR1020180134091A KR20180134091A KR20200051141A KR 20200051141 A KR20200051141 A KR 20200051141A KR 1020180134091 A KR1020180134091 A KR 1020180134091A KR 20180134091 A KR20180134091 A KR 20180134091A KR 20200051141 A KR20200051141 A KR 20200051141A
Authority
KR
South Korea
Prior art keywords
data
physical address
device controller
information
memory
Prior art date
Application number
KR1020180134091A
Other languages
English (en)
Other versions
KR102567108B1 (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 KR1020180134091A priority Critical patent/KR102567108B1/ko
Priority to US16/414,129 priority patent/US11573733B2/en
Priority to CN201910999765.3A priority patent/CN111142782A/zh
Priority to EP19207036.5A priority patent/EP3647959A1/en
Publication of KR20200051141A publication Critical patent/KR20200051141A/ko
Application granted granted Critical
Publication of KR102567108B1 publication Critical patent/KR102567108B1/ko

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/062Securing 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터 스토리지 디바이스가 제공된다. 상기 데이터 스토리지 디바이스는 데이터를 저장하는 제1 비휘발성 메모리, 및 제1 비휘발성 메모리를 제어하는 디바이스 컨트롤러를 포함하고, 디바이스 컨트롤러는, 제1 비휘발성 메모리의 제1 논리 주소, 제1 논리 주소와 대응되는 제1 물리 주소 및 제1 비휘발성 메모리에 대한 제1 상태 정보를 포함하는 데이터 리드 명령을 수신하고, 데이터 리드 명령에 포함된 제1 상태 정보를 이용하여 제1 리드 레벨을 결정하고, 제1 리드 레벨의 전압을 제1 물리 주소와 대응되는 제1 비휘발성 메모리의 제1 워드 라인에 인가하여 데이터를 리드한다.

Description

데이터 스토리지 디바이스 및 데이터 스토리지 시스템{Data storage device and data storage system}
본 발명은 데이터 스토리지 디바이스 및 데이터 스토리지 시스템에 관한 것이다.
플래시 메모리를 포함하는 스토리지 디바이스에 저장된 데이터를 리드(read)하기 위해, 호스트는 리드할 데이터에 대한 논리 주소를 스토리지 디바이스에 전송할 수 있다. 이에 스토리지 디바이스는, 예컨대 플래시 변환 레이어(FTL: Flash Translation Layer)를 이용하여, 호스트로부터 수신한 논리 주소를 플래시 메모리를 액세스하기 위한 물리 주소로 변환할 수 있다. 이때, 스토리지 디바이스는 변환된 물리 주소와 대응되는 워드 라인에 리드 전압을 인가하여, 데이터를 리드하고 이를 호스트에 제공할 수 있다.
그러나, 플래시 메모리의 상태에 따라, 스토리지 디바이스가 미리 정한 리드 전압을 인가하더라도 리드 페일(fail)이 발생할 수 있다. 따라서, 스토리지 디바이스는 플래시 메모리의 상태에 기초하여 리드 레벨을 결정하고, 결정된 리드 레벨의 전압을 상기 물리 주소와 대응되는 워드 라인에 인가한다. 이때, 플래시 메모리의 상태에 관한 정보는 스토리지 디바이스에서 관리하며, 플래시 메모리가 고집적화 및 고밀도화가 될수록 이러한 상태 정보의 양이 증가될 수 있다. 이러한 상태 정보들을 스토리지 디바이스의 내부 메모리에서 관리하면, 스토리지 디바이스의 내부 메모리의 용량이 증가되어 비용 증가를 초래한다. 반면, 이러한 상태 정보들을 스토리지 디바이스의 비휘발성 메모리에서 관리하면, 상태 정보들을 로드하는데 시간이 많이 소요되어, 스토리지 디바이스의 성능 문제가 발생한다.
본 발명이 해결하고자 하는 기술적 과제는 성능을 유지하면서, 시간적 비용 및 물적 비용을 최소화할 수 있는 데이터 스토리지 디바이스 및 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 데이터 스토리지 디바이스는 데이터를 저장하는 제1 비휘발성 메모리, 및 제1 비휘발성 메모리를 제어하는 디바이스 컨트롤러를 포함하고, 디바이스 컨트롤러는, 제1 비휘발성 메모리의 제1 논리 주소, 제1 논리 주소와 대응되는 제1 물리 주소 및 제1 비휘발성 메모리에 대한 제1 상태 정보를 포함하는 데이터 리드 명령을 수신하고, 데이터 리드 명령에 포함된 제1 상태 정보를 이용하여 제1 리드 레벨을 결정하고, 제1 리드 레벨의 전압을 제1 물리 주소와 대응되는 제1 비휘발성 메모리의 제1 워드 라인에 인가하여 데이터를 리드한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 데이터 스토리지 디바이스는 데이터가 저장되는 제1 비휘발성 메모리, 제1 비휘발성 메모리의 제1 논리 주소, 제1 논리 주소와 대응되는 제1 물리 주소 및 제1 비휘발성 메모리에 대한 제1 상태 정보를 저장하는 제1 내부 메모리, 및 제1 비휘발성 메모리와 제1 내부 메모리를 제어하는 디바이스 컨트롤러를 포함하고, 디바이스 컨트롤러는, 제1 비휘발성 메모리에 대한 데이터 프로그램 명령을 수신하여, 제1 비휘발성 메모리에 데이터를 프로그램하고, 제1 내부 메모리에 저장된 제1 물리 주소와 제1 상태 정보를 갱신하고, 갱신된 제1 물리 주소와 갱신된 제1 상태 정보를 디바이스 외부에 제공한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 데이터 스토리지 디바이스는 데이터가 저장되는 제1 비휘발성 메모리, 제1 비휘발성 메모리의 제1 논리 주소, 제1 논리 주소와 대응되는 제1 물리 주소, 제1 비휘발성 메모리에 대한 제1 상태 정보 및 제1 시그니처 정보를 저장하는 제1 내부 메모리, 및 제1 비휘발성 메모리와 제1 내부 메모리를 제어하는 디바이스 컨트롤러를 포함하고, 디바이스 컨트롤러는, 데이터 리드 명령을 수신하고, 수신한 데이터 리드 명령에 포함된 제1 메타 데이터를 해독하여 제1 비휘발성 메모리의 제2 논리 주소, 제2 논리 주소와 대응되는 제2 물리 주소, 제1 비휘발성 메모리에 대한 제2 상태 정보 및 제2 시그니처 정보를 생성하고, 제1 시그니처 정보와 제2 시그니처 정보에 기초하여, 데이터 리드 레벨을 결정하고, 결정된 데이터 리드 레벨을 이용하여 제1 비휘발성 메모리에 저장된 데이터를 리드한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 데이터 스토리지 시스템은 호스트 컨트롤러를 포함하는 호스트, 및 호스트와 연결되는 데이터 스토리지 디바이스를 포함하되, 데이터 스토리지 디바이스는 제1 비휘발성 메모리와 디바이스 컨트롤러를 포함하고, 호스트 컨트롤러는 데이터 리드 요청에 따라 제1 비휘발성 메모리의 제1 논리 주소와 제1 논리 주소와 대응되는 제1 메타 데이터를 포함하는 데이터 리드 명령을 데이터 스토리지 디바이스에 제공하고, 디바이스 컨트롤러는, 데이터 리드 명령에 포함된 제1 메타 데이터를 해독(decryption)하여, 제1 논리 주소와 대응되는 제1 물리 주소 및 제1 비휘발성 메모리에 대한 제1 상태 정보를 생성하고, 제1 상태 정보를 이용하여 제1 리드 레벨을 결정하고, 제1 리드 레벨을 이용하여 제1 비휘발성 메모리에 저장된 데이터를 리드한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 데이터 스토리지 시스템을 설명하기 위한 도면이다.
도 2는 몇몇 실시예에 따른 제1 메타 데이터, 제2 물리 주소, 제2 상태 정보, 제3 물리 주소 및 제3 상태 정보의 관계에 관해 설명하기 위한 도면이다.
도 3은 몇몇 실시예에 따른 호스트 메모리, 제1 내부 메모리 및 제2 비휘발성 메모리 사이의 데이터 이동을 설명하기 위한 도면이다.
도 4는 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 리드 동작을 설명하기 위한 도면이다.
도 5 및 도 6은 몇몇 실시예에 따른 데이터 스토리지 시스템의 예시적인 데이터 리드 동작을 설명하기 위한 도면이다.
도 7은 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 프로그램 동작을 설명하기 위한 도면이다.
도 8은 몇몇 실시예에 따른 디바이스 컨트롤러가 호스트에 메타 데이터의 갱신을 요청하는 상황을 예시적으로 설명하기 위한 도면이다.
도 9는 몇몇 실시예에 따른 데이터 스토리지 시스템의 예시적인 데이터 프로그램 동작을 설명하기 위한 도면이다.
도 10은 몇몇 실시예에 따른 데이터 스토리지 디바이스의 데이터 가비지 컬렉션(GC: Garbage Collection) 동작을 설명하기 위한 도면이다.
도 11은 몇몇 실시예에 따른 데이터 스토리지 시스템을 설명하기 위한 도면이다
도 12는 몇몇 실시예에 따른 제1 메타 데이터, 제2 물리 주소, 제2 상태 정보, 제3 물리 주소, 제3 상태 정보, 제1 시그니처 정보 및 제2 시그니처 정보의 관계에 관해 설명하기 위한 도면이다.
도 13은 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 리드 동작을 설명하기 위한 도면이다.
도 14는 몇몇 실시예에 따른 제1 시그니처 정보와 제2 시그니처 정보가 서로 동일한 경우, 데이터 스토리지 시스템의 예시적인 데이터 리드 동작을 설명하기 위한 도면이다.
도 15는 몇몇 실시예에 따른 제1 시그니처 정보와 제2 시그니처 정보가 서로 다른 경우, 데이터 스토리지 시스템의 예시적인 데이터 리드 동작을 설명하기 위한 도면이다.
도 16은 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 프로그램 동작을 설명하기 위한 도면이다.
도 17은 몇몇 실시예에 따른 데이터 스토리지 디바이스의 데이터 가비지 컬렉션 동작을 설명하기 위한 도면이다.
도 1은 몇몇 실시예에 따른 데이터 스토리지 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 몇몇 실시예에 따른 데이터 스토리지 시스템(1)은 데이터 스토리지 디바이스(100)와 호스트(200)를 포함할 수 있다.
데이터 스토리지 시스템(1)은 예를 들어, PC(personal computer), 워크스테이션(workstation), 데이터 센터, 인터넷 데이터 센터(internet data center(IDC)), DAS(direct attached storage) 시스템, SAN(storage area network) 시스템, NAS(network attached storage) 시스템, RAID(redundant array of inexpensive disks, or redundant array of independent disks) 시스템, 또는 모바일 디바이스로 구현될 수 있으나 이에 제한되는 것은 아니다.
또한, 상기 모바일 디바이스는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 디바이스(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 디바이스, 만물 인터넷(internet of everything(IoE)) 디바이스, 드론(drone), 또는 e-북(e-book)으로 구현될 수 있으나, 이에 제한되는 것은 아니다.
데이터 스토리지 디바이스(100)는 디바이스 컨트롤러(110), 제1 비휘발성 메모리(120), 제2 비휘발성 메모리(130), 제1 내부 메모리(140) 및 제2 내부 메모리(150)를 포함할 수 있다.
디바이스 컨트롤러(110)는 데이터 스토리지 디바이스(100) 내부의 전반적인 동작을 제어한다. 예를 들어, 디바이스 컨트롤러(110)는 제1 비휘발성 메모리(120)에 대해 호스트(200)가 요청한 데이터를 프로그램(program), 리드(read) 또는 이레이즈(erase)하는 작업들을 수행할 수 있다. 다른 예를 들어, 디바이스 컨트롤러(110)는 제1 비휘발성 메모리(120)에 제공될 리드 레벨을 결정할 수 있다. 이를 위해, 데이터 스토리지 디바이스(100)는 버퍼 메모리를 더 포함할 수 있다. 그러나, 실시예들이 이에 제한되지는 않고 디바이스 컨트롤러(110)는 상술한 동작들 외 다양한 동작들을 제어할 수 있다. 구체적인 내용은 후술한다.
제1 비휘발성 메모리(120)는 유저 데이터(USER DATA)를 저장할 수 있다. 제1 비휘발성 메모리(120)는 예를 들어, 플래시 메모리(Flash Memory), 저항성 램(RRAM), 상변화 메모리(PRAM), 자기저항 메모리(MRAM), 강유전체 메모리(FRAM), 스핀주입 자화반전 메모리(Spin STT-RAM) 등을 포함할 수 있으나, 실시예들이 이러한 예시들에 제한되는 것은 아니다.
제2 비휘발성 메모리(130)는 제1 비휘발성 메모리(120)의 제1 논리 주소(LBA_S), 제1 논리 주소(LBA_S)와 대응되는 제1 물리 주소(PBA_S) 및 제1 물리 주소(PBA_S)와 대응되는 제1 비휘발성 메모리(120)의 제1 상태 정보(PS_S)를 저장할 수 있다. 제1 상태 정보(PS_S)는 예를 들어, 제1 물리 주소(PBA_S)와 대응되는 제1 비휘발성 메모리(120)의 메모리 페이지(page)에 대한 물리적 상태 정보일 수 있다. 다른 예를 들어, 제1 상태 정보(PS_S)는 제1 물리 주소(PBA_S)와 대응되는 제1 비휘발성 메모리(120)의 메모리 블록(block)에 대한 물리적 상태 정보일 수 있다. 다시 말해서, 제1 상태 정보(PS_S)는 제1 물리 주소(PBA_S)와 대응되는 제1 비휘발성 메모리(120)의 특정 저장 영역에 대한 상태 정보일 수 있다. 제2 비휘발성 메모리(130)는 예를 들어, 플래시 메모리(Flash Memory), RRAM, PRAM, MRAM, FeRAM, Spin STT-RAM 등을 포함할 수 있으나, 실시예들이 이러한 예시들에 제한되는 것은 아니다.
몇몇 실시예에 따르면, 제1 비휘발성 메모리(120)는 플래시 메모리이고, 제2 비휘발성 메모리(130)는 자기저항 메모리일 수 있다. 다른 몇몇 실시예에 따르면, 제1 비휘발성 메모리(120)는 멀티 레벨 셀(MLC)을 이용하는 플래시 메모리이고, 제2 비휘발성 메모리(130)는 싱글 레벨 셀(SLC)을 이용하는 플래시 메모리일 수 있다. 도 1은 제1 비휘발성 메모리(120)와 제2 비휘발성 메모리(130)가 서로 분리된 것으로 도시하였으나, 실시예들이 이에 제한되지는 않는다. 실시예들에 따라 제1 비휘발성 메모리(120)와 제2 비휘발성 메모리(130)는 동일한 메모리 장치일 수 있다. 예를 들어, 제1 비휘발성 메모리(120)는 플래시 메모리의 멀티 레벨 셀(MLC) 영역이고, 제2 비휘발성 메모리(130)는 플래시 메모리의 싱글 레벨 셀(SLC) 영역일 수 있다.
제1 내부 메모리(140)는 제1 비휘발성 메모리(120)의 제2 논리 주소(LBA_C), 제2 논리 주소(LBA_C)와 대응되는 제2 물리 주소(PBA_C) 및 제2 물리 주소(PBA_C)와 대응되는 제1 비휘발성 메모리(120)의 제2 상태 정보(PS_C)를 저장할 수 있다. 제2 상태 정보(PS_C)는 앞서 설명한 제1 상태 정보(PS_S)와 유사하므로, 이에 대한 설명은 생략한다. 제1 내부 메모리(140)는 SRAM, DRAM 및 SDRAM 등을 포함할 수 있으나, 실시예들이 이에 제한되지는 않는다. 예를 들어, 제1 내부 메모리(140)는 SRAM 일 수 있다.
제2 내부 메모리(150)는 제1 비휘발성 메모리(120)에 제공될 리드 레벨을 결정하는데 이용되는 리드 레벨 결정 정보(DTI)를 저장할 수 있다. 리드 레벨 결정 정보(DTI)는 제1 비휘발성 메모리(120)의 상태 정보와, 이와 대응되는 리드 전압의 변동(read voltage variation)에 관한 관계일 수 있다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 리드 레벨 결정 정보(DTI)를 다양한 형태로 구현할 수 있으며, 예를 들어 리드 레벨 결정 정보(DTI)는 룩업 테이블(lookup table)일 수 있다. 제2 내부 메모리(150)는 SRAM, DRAM 및 SDRAM 등을 포함하거나, ROM, PROM, EPROM, EEPROM, 플래시 메모리 장치, PRAM, MRAM, RRAM 및 FRAM 등을 포함할 수 있으나, 실시예들이 이에 제한되지는 않는다. 예를 들어, 제2 내부 메모리(150)는 SRAM 또는 ROM일 수 있다.
도 1은 디바이스 컨트롤러(110)와 제1 내부 메모리(140)가 서로 분리되는 것으로 도시하나, 실시예들이 이에 제한되는 것은 아니다. 예를 들어, 제1 내부 메모리(140)는 디바이스 컨트롤러(110)의 내부 메모리일 수 있다. 또한, 도 1은 데이터 스토리지 디바이스(100)의 디바이스 컨트롤러(110), 제1 비휘발성 메모리(120), 제2 비휘발성 메모리(130), 제1 내부 메모리(140) 및 제2 내부 메모리(150)가 버스(bus)를 통해 각각 연결되는 것으로 도시하였으나, 실시예들이 이에 제한되지는 않는다. 예를 들어, 제1 비휘발성 메모리(120), 제2 비휘발성 메모리(130), 제1 내부 메모리(140) 및 제2 내부 메모리(150)는 각각 디바이스 컨트롤러(110)와 직접 연결될 수 있다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상의 범위를 벗어나지 않으면서, 다양한 방식으로 데이터 스토리지 디바이스(100)를 구현할 수 있다.
호스트(200)는 호스트 컨트롤러(210), 호스트 메모리(220) 및 유저 인터페이스(230)를 포함할 수 있다.
호스트 컨트롤러(210)는 호스트(200) 내부의 전반적인 동작을 제어한다. 예를 들어, 호스트 컨트롤러(210)는 유저 인터페이스(230)로부터의 요청에 응답하여 데이터의 프로그램 명령(PROGRAM CMD), 리드 명령(READ CMD) 또는 이레이즈 명령(erase CMD)을 데이터 스토리지 디바이스(100)로 제공할 수 있다. 이를 위해, 호스트(200)는 버퍼 메모리를 더 포함할 수 있다. 그러나, 실시예들이 이에 제한되지는 않고 호스트 컨트롤러(210)는 상술한 동작들 외 다양한 동작들을 제어할 수 있다. 구체적인 내용은 후술한다.
호스트 메모리(220)는 데이터 스토리지 디바이스(100)에 포함된 제1 비휘발성 메모리(120)의 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)를 저장할 수 있다. 호스트 메모리(220)는 DRAM, SRAM 및 SDRAM 등을 포함할 수 있으나, 실시예들이 이에 제한되지는 않는다. 이하에서는, 설명의 편의를 위해 호스트 메모리(220)가 DRAM인 것을 가정하여 설명하나, 본 발명의 기술 분야에서 통상의 지식을 가진 자는 다양한 메모리를 이용하여 호스트 메모리(220)를 구현할 수 있다. 몇몇 실시예에 따르면, 호스트 메모리(220)의 저장 용량은 제1 내부 메모리(140)의 저장 용량 보다 크거나 같을 수 있으나, 실시예들이 이에 제한되는 것은 아니다. 제1 메타 데이터(META_H)에 관한 예시적인 설명을 위해, 도 2를 참조한다.
도 2는 몇몇 실시예에 따른 제1 메타 데이터, 제2 물리 주소, 제2 상태 정보, 제3 물리 주소 및 제3 상태 정보의 관계에 관해 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 디바이스 컨트롤러(110)는 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 암호화(encryption)하여, 제1 메타 데이터(META_H)를 생성할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 스크램블링(scrambling)하여, 제1 메타 데이터(META_H)를 생성할 수 있다. 반면, 디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)를 해독(decryption)하여, 제3 물리 주소(PBA_H)와 제3 상태 정보(PS_H)를 생성할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)를 디스크램블링(descrambling)하여, 제3 물리 주소(PBA_H)와 제3 상태 정보(PS_H)를 생성할 수 있다. 다시 말해서, 제1 메타 데이터(META_H)는 암호화된 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)일 수 있으며, 제3 물리 주소(PBA_H)와 제3 상태 정보(PS_H)는 해독된 제1 메타 데이터(META_H)일 수 있다. 즉, 제1 메타 데이터(META_H)는 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 포함할 수 있으며, 제3 물리 주소(PBA_H)와 제3 상태 정보(PS_C)를 포함할 수도 있다. 다시 도 1을 참조하여 설명한다.
몇몇 실시예에 따른 데이터 스토리지 디바이스(100)와 호스트(200)는 UFS(Universal Flash Storage), SCSI((Small Computer System Interface), SAS(Serial Attached SCSI), SATA(Serial Advanced Technology Attachment), PCIe(Peripheral Component Interconnect Express), eMMC(embedded MultiMediaCard), FC(Fibre Channel), ATA(Advanced Technology Attachment), IDE(Intergrated Drive Electronics), USB(Universal Serial Bus), IEEE 1394(Firewire)등과 같은 전기적 인터페이스를 통해 접속될 수 있다. 그러나, 실시예들이 이에 제한되지 않고 호스트(200)와 데이터 스토리지 디바이스(100) 사이에 데이터를 주고 받을 수 있게 하는 임의의 인터페이스에 적용될 수 있다.
이하에서는 본 발명의 핵심에 대한 설명의 명확성과 편의를 위해 호스트(200)와 데이터 스토리지 디바이스(100)가 UFS 전기적 인터페이스를 통해 접속되어 호스트(200)는 UFS 호스트로, 데이터 스토리지 디바이스(100)는 UFS 메모리 디바이스로 가정하여 설명한다. 예를 들어, 데이터 스토리지 시스템(1)은 MIPI UniPro 또는 MIPI M-PHY를 채용할 수 있다. 그러나, 실시예들이 이에 한정되지 않으며, 앞서 예시한 전기적 인터페이스를 비롯한 임의의 인터페이스를 사용하는 임의의 스토리지 시스템에 적용 가능하다.
도 3은 몇몇 실시예에 따른 호스트 메모리, 제1 내부 메모리 및 제2 비휘발성 메모리 사이의 데이터 이동을 설명하기 위한 도면이다. 도 3은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 1을 함께 참조하여 설명한다.
도 1 및 도 3을 참조하면, 디바이스 컨트롤러(110)는 제2 비휘발성 메모리(130)에 대해 내부 캐싱(internal caching)을 요청할 수 있다. 제2 비휘발성 메모리(130)는 내부 캐싱 요청에 따라, 제2 비휘발성 메모리(130)에 저장된 제1 논리 주소(LBA_S), 제1 물리 주소(PBA_S) 및 제1 상태 정보(PS_S)의 적어도 일부를 제1 내부 메모리(140)에 제공할 수 있다. 제1 내부 메모리(140)는 제2 비휘발성 메모리(130)로부터 제1 논리 주소(LBA_S), 제1 물리 주소(PBA_S) 및 제1 상태 정보(PS_S)의 적어도 일부를 수신하여 저장할 수 있다(S110). 제1 내부 메모리(140)에 저장된 제1 논리 주소(LBA_S), 제1 물리 주소(PBA_S) 및 제1 상태 정보(PS_S)의 적어도 일부를 편의상 제2 논리 주소(LBA_C), 제2 물리 주소(PBA_C) 및 제2 상태 정보(PS_C)로 지칭한다.
디바이스 컨트롤러(110)는 제2 논리 주소(LBA_C), 제2 물리 주소(PBA_C) 및 제2 상태 정보(PS_C)에 대한 호스트 캐싱(host caching)을 제1 내부 메모리(140)에 요청할 수 있다. 제1 내부 메모리(140)는 저장된 제2 논리 주소(LBA_C), 제2 물리 주소(PBA_C) 및 제2 상태 정보(PS_C)를 디바이스 컨트롤러(110)에 제공할 수 있다. 디바이스 컨트롤러(110)는 수신한 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 암호화할 수 있다(S120). 다시 말해서, 디바이스 컨트롤러(110)는 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 암호화하여, 제1 메타 데이터(META_H)를 생성할 수 있다. 디바이스 컨트롤러(110)는 수신한 제2 논리 주소(LBA_C)와 생성된 제1 메타 데이터(META_H)를 호스트 메모리(220)에 제공할 수 있다. 호스트(200)는 제2 논리 주소(LBA_C)와 제1 메타 데이터(META_H)를 수신하여, 이를 호스트 메모리(220)에 저장할 수 있다(S130). 호스트(200)에 제공된 제2 논리 주소(LBA_C)는 설명의 편의상 제3 논리 주소(LBA_H)로 지칭한다.
몇몇 실시예에서, 설명의 편의상 제1 내부 메모리(140)에 캐싱하는 것을 내부 캐싱, 호스트 메모리(220)에 캐싱하는 것을 호스트 캐싱으로 지칭하였으나, 실시예들이 이러한 용어에 제한되는 것은 아니다.
도 4는 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 리드 동작을 설명하기 위한 도면이다. 도 4는 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 1을 함께 참조하여 설명한다.
도 1 및 도 4를 참조하면, 호스트 컨트롤러(210)는 데이터 리드 요청을 수신할 수 있다(S210). 예를 들어, 호스트 컨트롤러(210)는 유저 인터페이스(230)로부터 데이터 리드 요청을 수신할 수 있다. 호스트 컨트롤러(210)는 데이터 리드 요청을 수신하면, 호스트 메모리(220)에 액세스(access)하여, 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)를 로딩(loading)할 수 있다. 호스트 컨트롤러(210)는 데이터 스토리지 디바이스(100)에 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)가 포함된 데이터 리드 명령(READ CMD)을 제공할 수 있다. 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)가 포함된 데이터 리드 명령(READ CMD)은 디바이스 컨트롤러(110)에 제공될 수 있다.
디바이스 컨트롤러(110)는 수신한 데이터 리드 명령에 포함된 제1 메타 데이터(META_H)를 해독할 수 있다(S220). 다시 말해서, 디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)를 해독하여, 제3 물리 주소(PBA_H)와 제3 상태 정보(PS_H)를 생성할 수 있다. 디바이스 컨트롤러(110)는 제3 상태 정보(PS_H)를 이용하여 제3 물리 주소(PBA_H)와 대응되는 제1 비휘발성 메모리(120)의 워드 라인에 인가될 제1 리드 레벨을 결정할 수 있다(S230). 예를 들어, 디바이스 컨트롤러(110)는 제2 내부 메모리(150)에 저장된 리드 레벨 결정 정보(DTI)를 로딩하고, 리드 레벨 결정 정보(DTI)와 제3 상태 정보(PS_H)를 이용하여 제1 리드 레벨을 결정할 수 있다.
디바이스 컨트롤러(110)는 결정된 제1 리드 레벨을 이용하여 제1 비휘발성 메모리(120)의 제3 물리 주소(PBA_H)에 저장된 유저 데이터(USER DATA)를 리드할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 결정된 제1 리드 레벨의 전압을 제3 물리 주소(PBA_H)와 대응되는 제1 비휘발성 메모리(120)의 워드 라인에 인가함으로써, 제1 비휘발성 메모리(120)의 제3 물리 주소(PBA_H)에 저장된 유저 데이터(USER DATA)를 리드할 수 있다. 디바이스 컨트롤러(110)는 리드된 유저 데이터(USER DATA)를 호스트(200)에 제공할 수 있다. 데이터 리드 동작의 예시적인 설명을 위해 도 5 및 도 6을 참조한다.
도 5 및 도 6은 몇몇 실시예에 따른 데이터 스토리지 시스템의 예시적인 데이터 리드 동작을 설명하기 위한 도면이다. 도 5 및 도 6은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 1을 함께 참조하여 설명한다.
도 5를 참조하면, 호스트 메모리(220)는 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)를 저장할 수 있다. 제3 논리 주소(LBA_H)는 복수개의 논리 주소, 예를 들어 논리 주소 LBA_1, 논리 주소 LBA_2 및 논리 주소 LBA_3을 포함할 수 있다. 마찬가지로, 제1 메타 데이터(META_H)는 복수개의 메타 데이터, 예를 들어 메타 데이터 META_1, 메타 데이터 META_2 및 메타 데이터 META_3을 포함할 수 있다. 메타 데이터 META_1, 메타 데이터 META_2 및 메타 데이터 META_3은 각각 논리 주소 LBA_1, 논리 주소 LBA_2 및 논리 주소 LBA_3과 대응될 수 있다.
도 1 및 도 5를 참조하면, 호스트(200)의 유저 인터페이스(230)에 데이터 리드에 관한 입력이 제공될 수 있다. 유저 인터페이스(230)는 호스트 컨트롤러(210)에 논리 주소 LBA_2의 리드를 요청할 수 있다.
호스트 컨트롤러(210)가 논리 주소 LBA_2의 리드 요청을 수신하면, 호스트 컨트롤러(210)는 호스트 메모리(220)에 액세스하여, 논리 주소 LBA_2와 대응되는 메타 데이터 META_2를 로딩할 수 있다.
호스트 컨트롤러(210)는 메타 데이터 META_2를 로딩한 후, 논리 주소 LBA_2와 메타 데이터 META_2를 포함하는 데이터 리드 명령(READ CMD)을 데이터 스토리지 디바이스(100)에 제공할 수 있다.
도 1 및 도 6을 참조하면, 디바이스 컨트롤러(110)는 논리 주소 LBA_2와 메타 데이터 META_2를 포함하는 데이터 리드 명령(READ CMD)을 수신할 수 있다.
디바이스 컨트롤러(110)는 수신한 메타 데이터 META_2를 해독하여, 물리 주소 PBA_2와 상태 정보 PS_2를 생성할 수 있다. 물리 주소 PBA_2는 논리 주소 LBA_2와 대응될 수 있고, 상태 정보 PS_2는 물리 주소 PBA_2와 대응되는 제1 비휘발성 메모리(120)의 저장 영역에 대한 상태 정보일 수 있다.
디바이스 컨트롤러(110)는 제2 내부 메모리(150)에 액세스하여, 상태 정보 PS_2에 대한 리드 레벨 결정 정보(DTI)를 로딩할 수 있다.
디바이스 컨트롤러(110)는 상태 정보 PS_2와, 상태 정보 PS_2에 대한 리드 레벨 결정 정보(DTI)를 이용하여, 제1 비휘발성 메모리(120)의 물리 주소 PBA_2에 저장된 데이터를 리드하기 위한 리드 레벨을 결정할 수 있다.
디바이스 컨트롤러(110)는 결정된 리드 레벨의 전압을 제1 비휘발성 메모리(120)에 제공하여, 데이터를 리드할 수 있다. 수 있다. 다시 말해서, 디바이스 컨트롤러(110)는 결정된 리드 레벨의 전압을 물리 주소 PBA_2와 대응되는 제1 비휘발성 메모리(120)의 워드 라인에 인가함으로써, 물리 주소 PBA_2에 저장된 데이터를 리드할 수 있다.
도 7은 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 프로그램 동작을 설명하기 위한 도면이다. 도 7은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 1을 함께 참조하여 설명한다.
도 1 및 도 7을 참조하면, 호스트 컨트롤러(210)는 데이터 프로그램 요청을 수신할 수 있다(S310). 예를 들어, 호스트 컨트롤러(210)는 유저 인터페이스(230)로부터 데이터 프로그램 요청을 수신할 수 있다. 호스트 컨트롤러(210)는 데이터 프로그램 요청을 수신하면, 데이터 스토리지 디바이스(100)에 데이터 프로그램 명령(PROGRAM CMD)을 제공할 수 있다.
디바이스 컨트롤러(110)는 데이터 프로그램 명령(PROGRAM CMD)을 수신하고, 데이터 스토리지 디바이스(100)의 프로그램 동작을 제어할 수 있다(S320). 예를 들어, 디바이스 컨트롤러(110)는 제1 비휘발성 메모리(120)의 할당되지 않은 물리 주소에 유저 데이터(USER DATA)를 프로그램할 수 있다.
디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 저장된 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를, 데이터가 프로그램된 물리 주소와 이와 대응되는 상태 정보로 갱신할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 저장되어 있는 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 인밸리드(invalid)하고, 데이터가 프로그램된 물리 주소와 이와 대응되는 상태 정보를 각각 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)로 갱신할 수 있다.
디바이스 컨트롤러(110)는 호스트(200)에 메타 데이터의 갱신을 요청할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 갱신된 제2 물리 주소(PBA_C)와 갱신된 제2 상태 정보(PS_C)를 암호화하여, 메타 데이터를 생성할 수 있다. 생성된 메타 데이터는 메타 데이터의 갱신 요청과 함께 호스트(200)에 전달될 수 있다.
몇몇 실시예에 따르면, 디바이스 컨트롤러(110)는 특정 상황에 기초하여 호스트(200)에 메타 데이터의 갱신을 요청할 수 있다. 예시적인 설명을 위해 도 8을 참조한다.
도 8은 몇몇 실시예에 따른 디바이스 컨트롤러가 호스트에 메타 데이터의 갱신을 요청하는 상황을 예시적으로 설명하기 위한 도면이다.
도 1 및 도 8을 참조하면, 디바이스 컨트롤러(110)는 프로그램 명령(PROGRAM CMD)이 수신되는 제1 구간(A)과 리드 명령(READ CMD)이 수신되는 제2 구간(B)을 구분할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제1 구간(A)에서 호스트(200)에 메타 데이터의 갱신을 요청하지 않을 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제2 구간(B)에서 호스트(200)에 메타 데이터의 갱신을 요청할 수 있다. 제1 구간(A)은 데이터가 프로그램되어 제1 내부 메모리(140)에 저장된 제2 물리 주소(PBA_C) 및 제2 상태 정보(PS_C)가 반복적으로 갱신되므로, 디바이스 컨트롤러(110)는 제1 구간(A)에서 호스트(200)에 메타 데이터의 갱신을 요청하지 않을 수 있다. 반면, 제2 구간(B)은 제1 내부 메모리(140)에 저장된 제2 물리 주소(PBA_C) 및 제2 상태 정보(PS_C)가 갱신되지 않으므로, 디바이스 컨트롤러(110)는 제2 구간(B)에서 호스트(200)에 메타 데이터의 갱신을 요청할 수 있다. 그러나, 이는 예시적인 설명에 불과하며 실시예들이 이에 제한되지는 않는다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 호스트 메모리(220)에 저장된 제1 메타 데이터(META_H)을 갱신하는 다양한 정책 및 기준을 설정할 수 있다.
다시 도 7을 참조하면, 호스트 컨트롤러(210)는 메타 데이터의 갱신 요청을 수신하고, 호스트 메모리(220)에 갱신된 제1 메타 데이터(META_H)를 제공할 수 있다. 예를 들어, 호스트 컨트롤러(210)는 호스트 메모리(220)에 저장되어 있는 제1 메타 데이터(META_H)를 인밸리드(invalid)하고, 갱신된 제1 메타 데이터(META_H)로 갱신할 수 있다. 데이터 프로그램 동작의 예시적인 설명을 위해 도 9를 참조한다.
도 9는 몇몇 실시예에 따른 데이터 스토리지 시스템의 예시적인 데이터 프로그램 동작을 설명하기 위한 도면이다. 도 9는 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 1을 함께 참조하여 설명한다.
도 9를 참조하면, 제1 내부 메모리(140)는 제2 논리 주소(LBA_C), 제2 물리 주소(PBA_C) 및 제2 상태 정보(PS_C)를 포함할 수 있다. 제2 논리 주소(LBA_C)는 복수개의 논리 주소, 예를 들어 논리 주소 LBA_1, 논리 주소 LBA_2 및 논리 주소 LBA_3을 포함할 수 있다. 제2 물리 주소(PBA_C)는 복수개의 물리 주소, 예를 들어 물리 주소 PBA_1, 물리 주소 PBA_2, 물리 주소 PBA_3 및 물리 주소 PBA_3'을 포함할 수 있다. 제2 상태 정보(PS_C)는 복수개의 상태 정보, 예를 들어 상태 정보 PS_1, 상태 정보 PS_2, 상태 정보 PS_3 및 상태 정보 PS_3'을 포함할 수 있다. 물리 주소 PBA_1, 물리 주소 PBA_2 및 물리 주소 PBA_3은 각각 논리 주소 LBA_1, 논리 주소 LBA_2 및 논리 주소 LBA_3과 대응될 수 있으며, 물리 주소 PBA_3' 역시 논리 주소 LBA_3과 대응될 수 있다. 상태 정보 PS_1, 상태 정보 PS_2, 상태 정보 PS_3은 각각 논리 주소 LBA_1, 논리 주소 LBA_2 및 논리 주소 LBA_3과 대응될 수 있으며, 상태 정보 PS_3' 역시 논리 주소 LBA_3과 대응될 수 있다.
도 1 및 도 9를 참조하면, 디바이스 컨트롤러(110)는 논리 주소 LBA_3에 대한 프로그램 명령(PROGRAM CMD)을 수신할 수 있다. 디바이스 컨트롤러(110)는 논리 주소 LBA_3에 대한 프로그램 명령(PROGRAM CMD)을 수신하면, 논리 주소가 할당되지 않은 물리 주소 PBA_3'에 논리 주소 LBA_3를 할당하고, 데이터를 프로그램할 수 있다. 이때, 물리 주소 PBA_3'와 대응되는 제1 비휘발성 메모리(120)의 저장 영역에 대한 상태 정보는 상태 정보 PS_3'일 수 있다. 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 포함된 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 갱신할 수 있다. 즉, 디바이스 컨트롤러(110)는 논리 주소 LBA_3과 기존에 대응되던 물리 주소 PBA_3과 상태 정보 PS_3는 인밸리드(invalid)하고, 논리 주소 LBA_3에 물리 주소 PBA_3'와 상태 정보 PS_3'을 할당할 수 있다.
디바이스 컨트롤러(110)는 제2 논리 주소(LBA_C)와 대응되는 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)가 갱신되면, 호스트 컨트롤러(210)에 제1 메타 데이터(META_H)의 갱신을 요청할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 물리 주소 PBA_3'과 상태 정보 PS_3'을 암호화하여, 메타 데이터 META_3'을 생성할 수 있다. 디바이스 컨트롤러(110)는 메타 데이터 META_3'을 포함하는 메타 데이터 갱신 요청을 호스트 컨트롤러(210)에 제공할 수 있다. 호스트 컨트롤러(210)가 메타 데이터 META_3'을 갱신하는 과정은, 디바이스 컨트롤러(110)가 논리 주소 LBA_3에 물리 주소 PBA_3'와 상태 정보 PS_3'을 할당하는 과정과 유사할 수 있다.
비록, 도 7 내지 도 9에서 제2 비휘발성 메모리(130)에 저장된 제1 물리 주소(PBA_S)와 제1 상태 정보(PS_S)의 갱신 과정에 대해 도시되지 않았으나, 본 발명의 기술 분야에서 통상의 지식을 가진 자는 제2 비휘발성 메모리(130)에 저장된 제1 물리 주소(PBA_S)와 제1 상태 정보(PS_S)의 갱신 과정을 이해할 수 있을 것이다. 제2 비휘발성 메모리(130)에 저장된 제1 물리 주소(PBA_S)와 제1 상태 정보(PS_S)의 갱신은 데이터 스토리지 디바이스(100)의 정책 또는 편의에 따라 적절하게 설정될 수 있을 것이다.
도 10은 몇몇 실시예에 따른 데이터 스토리지 디바이스의 데이터 가비지 컬렉션(GC: Garbage Collection) 동작을 설명하기 위한 도면이다. 도 10은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 1을 함께 참조하여 설명한다.
도 10을 참조하면, 디바이스 컨트롤러(110)는 제1 비휘발성 메모리(120)의 가비지 컬렉션 동작을 제어할 수 있다. 제1 비휘발성 메모리(120)에 가비지 컬렉션 동작이 수행되면, 제1 비휘발성 메모리의 논리 주소, 물리 주소 및 상태 정보에 대한 관계가 적어도 하나 변경되므로, 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 갱신할 수 있다. 이후 동작은 도 7 내지 도 9를 이용해 설명한 데이터 스토리지 디바이스(100)의 프로그램 동작과 유사하므로, 이와 관련된 설명은 생략한다.
도 11은 몇몇 실시예에 따른 데이터 스토리지 시스템을 설명하기 위한 도면이다. 설명의 편의를 위해, 앞서 도 1 내지 도 10을 이용하여 설명한 내용과 다른 점을 중심으로 설명하며, 앞서 설명한 내용과 중복되거나 유사한 내용은 생략하거나 간단히 설명한다.
도 11을 참조하면, 몇몇 실시예에 따른 데이터 스토리지 시스템(2)은 데이터 스토리지 디바이스(100)와 호스트(200)를 포함할 수 있다.
데이터 스토리지 디바이스(100)는 디바이스 컨트롤러(110), 제1 비휘발성 메모리(120), 제2 비휘발성 메모리(130), 제1 내부 메모리(140) 및 제2 내부 메모리(150)를 포함할 수 있다. 호스트(200)는 호스트 컨트롤러(210), 호스트 메모리(220) 및 유저 인터페이스(230)를 포함할 수 있다.
제1 내부 메모리(140)는 제2 논리 주소(LBA_C), 제2 물리 주소(PBA_C), 제2 상태 정보(PS_C) 및 제2 시그니처 정보(SIG_C)를 포함할 수 있다. 몇몇 실시예에 따른 제2 시그니처 정보(SIG_C)는 호스트 메모리(220)에 저장된 제1 메타 데이터(META_H)의 유효성과 관련된 정보일 수 있다. 예를 들어, 제2 시그니처 정보(SIG_C)는 제2 물리 주소(PBA_C), 제2 상태 정보(PS_C)의 갱신에 대한 정보일 수 있다. 즉, 디바이스 컨트롤러(110)는 제2 시그니처 정보(SIG_C)를 이용하여 호스트 메모리(220)에 저장된 제1 메타 데이터(META_H)의 유효성을 판단할 수 있다. 제1 메타 데이터(META_H)에 대해 설명하기 위해, 도 12를 참조한다.
도 12는 몇몇 실시예에 따른 제1 메타 데이터, 제2 물리 주소, 제2 상태 정보, 제3 물리 주소, 제3 상태 정보, 제1 시그니처 정보 및 제2 시그니처 정보의 관계에 관해 설명하기 위한 도면이다.
도 11 및 도 12를 참조하면, 몇몇 실시예에 따른 데이터 스토리지 디바이스(100)의 디바이스 컨트롤러(110)는 제2 물리 주소(PBA_C), 제2 상태 정보(PS_C) 및 제2 시그니처 정보(SIG_C)를 암호화하여, 제1 메타 데이터(META_H)를 생성할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제2 물리 주소(PBA_C), 제2 상태 정보(PS_C) 및 제2 시그니처 정보(SIG_C)를 스크램블링(scrambling)하여, 제1 메타 데이터(META_H)를 생성할 수 있다. 반면, 디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)를 해독하여, 제3 물리 주소(PBA_H), 제3 상태 정보(PS_H) 및 제1 시그니처 정보(SIG_H)를 생성할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)를 디스크램블링(descrambling)하여, 제3 물리 주소(PBA_H), 제3 상태 정보(PS_H) 및 제1 시그니처 정보(SIG_H)를 생성할 수 있다. 이하에서는, 제1 시그니처 정보(SIG_H)와 제2 시그니처 정보(SIG_C)를 이용한 데이터 스토리지 시스템(2)의 리드 동작, 프로그램 동작 및 가비지 컬렉션 동작에 대해 설명한다.
도 13은 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 리드 동작을 설명하기 위한 도면이다. 도 13은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 11을 함께 참조하여 설명한다. 또한, 설명의 편의를 위해, 앞서 설명한 내용과 중복되거나 유사한 내용은 생략하거나 간단히 설명한다.
도 11 및 도 13을 참조하면, 호스트 컨트롤러(210)는 데이터 리드 요청을 수신할 수 있다(S410). 호스트 컨트롤러(210)는 데이터 리드 요청을 수신하면, 호스트 메모리(220)에 액세스(access)하여, 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)를 로딩(loading)할 수 있다. 호스트 컨트롤러(210)는 데이터 스토리지 디바이스(100)에 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)가 포함된 데이터 리드 명령(READ CMD)을 제공할 수 있다. 제3 논리 주소(LBA_H)와 제1 메타 데이터(META_H)가 포함된 데이터 리드 명령(READ CMD)은 디바이스 컨트롤러(110)에 제공될 수 있다.
디바이스 컨트롤러(110)는 수신한 데이터 리드 명령에 포함된 제1 메타 데이터(META_H)를 해독하여, 제3 물리 주소(PBA_H), 제3 상태 정보(PS_H) 및 제1 시그니처 정보(SIG_H)를 생성할 수 있다(S420).
디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 엑세스하여, 제1 내부 메모리(140)에 저장된 제2 시그니처 정보(SIG_C)를 로딩할 수 있다. 몇몇 실시예에 따르면, 디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)의 유효성, 즉 제3 물리 주소(PBA_H)와 제3 상태 정보(PS_H)의 유효성을 검사하기 위해, 제1 내부 메모리(140)에 저장된 제2 시그니처 정보(SIG_C)만 우선적으로 로딩할 수 있다.
디바이스 컨트롤러(110)는 제1 메타 데이터(META_H)를 해독하여 생성된 제1 시그니처 정보(SIG_H)와, 제1 내부 메모리(140)로부터 로딩된 제2 시그니처 정보(SIG_C)가 서로 동일한지 여부를 비교할 수 있다(S430).
제1 시그니처 정보(SIG_H)와 제2 시그니처 정보(SIG_C)가 서로 동일한 경우(S430, Y), 디바이스 컨트롤러(110)는 제3 상태 정보(PS_H)를 이용하여 제1 리드 레벨을 결정할 수 있다(S440). 예를 들어, 제1 시그니처 정보(SIG_H)와 제2 시그니처 정보(SIG_C)가 서로 동일한 경우, 디바이스 컨트롤러(110)는 제2 내부 메모리(150)에 액세스하여 리드 레벨 결정 정보(DTI)를 로딩하고, 제3 상태 정보(PS_H)와 리드 레벨 결정 정보(DTI)를 이용하여 제1 리드 레벨을 결정할 수 있다. 디바이스 컨트롤러(110)는 결정된 제1 리드 레벨을 이용하여 제1 비휘발성 메모리(120)의 제3 물리 주소(PBA_H)에 저장된 유저 데이터(USER DATA)를 리드할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 결정된 제1 리드 레벨의 전압을 제3 물리 주소(PBA_H)와 대응되는 제1 비휘발성 메모리(120)의 워드 라인에 인가함으로써, 제1 비휘발성 메모리(120)의 제3 물리 주소(PBA_H)에 저장된 유저 데이터(USER DATA)를 리드할 수 있다.
제1 시그니처 정보(SIG_H)와 제2 시그니처 정보(SIG_C)가 서로 다른 경우(S430, N), 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 액세스하여, 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 로딩할 수 있다. 디바이스 컨트롤러(110)는 앞서 설명한 과정과 유사하게, 로딩된 제2 상태 정보(PS_C)를 이용하여 제1 리드 레벨을 결정할 수 있다(S440). 디바이스 컨트롤러(110)는 결정된 제1 리드 레벨을 이용하여 제1 비휘발성 메모리(120)의 제2 물리 주소(PBA_C)에 저장된 유저 데이터(USER DATA)를 리드할 수 있다. 예를 들어, 디바이스 컨트롤러(110)는 결정된 제1 리드 레벨의 전압을 제2 물리 주소(PBA_C)와 대응되는 제1 비휘발성 메모리(120)의 워드 라인에 인가함으로써, 제1 비휘발성 메모리(120)의 제2 물리 주소(PBA_C)에 저장된 유저 데이터(USER DATA)를 리드할 수 있다.
디바이스 컨트롤러(110)는 리드된 유저 데이터(USER DATA)를 호스트(200)에 제공할 수 있고, 호스트 컨트롤러(210)는 이를 수신할 수 있다. 데이터 리드 동작의 예시적인 설명을 위해 도 14 및 도 15를 참조한다.
도 14는 몇몇 실시예에 따른 제1 시그니처 정보와 제2 시그니처 정보가 서로 동일한 경우, 데이터 스토리지 시스템의 예시적인 데이터 리드 동작을 설명하기 위한 도면이다. 도 15는 몇몇 실시예에 따른 제1 시그니처 정보와 제2 시그니처 정보가 서로 다른 경우, 데이터 스토리지 시스템의 예시적인 데이터 리드 동작을 설명하기 위한 도면이다. 도 14 및 도 15는 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 11을 함께 참조하여 설명한다. 또한, 설명의 편의를 위해, 앞서 설명한 내용과 중복되거나 유사한 내용은 생략하거나 간단히 설명한다.
도 11 및 도 14를 참조하면, 디바이스 컨트롤러(110)는 논리 주소 LBA_2와 메타 데이터 META_2를 포함하는 데이터 리드 명령(READ CMD)을 수신할 수 있다.
디바이스 컨트롤러(110)는 수신한 메타 데이터 META_2를 해독하여, 물리 주소 PBA_2, 상태 정보 PS_2 및 시그니처 정보 SIG_2를 생성할 수 있다. 시그니처 정보 SIG_2는 메타 데이터 META_2로부터 해독된 물리 주소 PBA_2와 상태 정보 PS_2의 유효성과 관련된 정보일 수 있다. 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 액세스하여, 시그니처 정보 SIG_2를 로딩할 수 있다. 디바이스 컨트롤러(110)는 메타 데이터 META_2를 해독하여 생성한 시그니처 정보 SIG_2(즉, 제1 시그니처 정보(SIG_H))와, 제1 내부 메모리(140)로부터 로딩한 시그니처 정보 SIG_2(즉, 제2 시그니처 정보(SIG_C))를 비교한 결과, 메타 데이터 META_2를 해독하여 생성한 시그니처 정보 SIG_2와, 제1 내부 메모리(140)로부터 로딩한 시그니처 정보 SIG_2가 서로 동일하다는 판단을 내릴 수 있다. 이 경우, 디바이스 컨트롤러(110)는 제2 내부 메모리(150)에 액세스하여, 상태 정보 PS_2에 대한 리드 레벨 결정 정보(DTI)를 로딩할 수 있다. 디바이스 컨트롤러(110)는 상태 정보 PS_2와 리드 레벨 결정 정보(DTI)를 이용하여 제1 리드 레벨을 결정할 수 있다. 디바이스 컨트롤러(110)는 제1 리드 레벨의 전압을 제1 비휘발성 메모리(120)에 제공하여, 물리 주소 PBA_2에 저장된 데이터를 리드할 수 있다.
도 11 및 도 15를 참조하면, 디바이스 컨트롤러(110)는 논리 주소 LBA_3과 메타 데이터 META_3를 포함하는 데이터 리드 명령(READ CMD)을 수신할 수 있다.
디바이스 컨트롤러(110)는 수신한 메타 데이터 META_3을 해독하여, 물리 주소 PBA_3, 상태 정보 PS_3 및 시그니처 정보 SIG_3를 생성할 수 있다. 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 액세스하여, 시그니처 정보 SIG_3'를 로딩할 수 있다. 디바이스 컨트롤러(110)는 메타 데이터 META_3을 해독하여 생성한 시그니처 정보 SIG_3(즉, 제1 시그니처 정보(SIG_H))와, 제1 내부 메모리(140)로부터 로딩한 시그니처 정보 SIG_3'(즉, 제2 시그니처 정보(SIG_C))를 비교한 결과, 시그니처 정보 SIG_3와 시그니처 정보 SIG_3'가 서로 다르다는 판단을 내릴 수 있다. 이 경우, 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에서 논리 주소 LBA_3과 대응되는 물리 주소 PBA_3'와 상태 정보 PS_3'을 로딩할 수 있다. 디바이스 컨트롤러(110)는 제2 내부 메모리(150)에 액세스하여, 상태 정보 PS_3'에 대한 리드 레벨 결정 정보(DTI)를 로딩할 수 있다. 디바이스 컨트롤러(110)는 상태 정보 PS_3'와 리드 레벨 결정 정보(DTI)를 이용하여 제1 리드 레벨을 결정할 수 있다. 디바이스 컨트롤러(110)는 제1 리드 레벨의 전압을 제1 비휘발성 메모리(120)에 제공하여, 물리 주소 PBA_3'에 저장된 데이터를 리드할 수 있다.
도 16은 몇몇 실시예에 따른 데이터 스토리지 시스템의 데이터 프로그램 동작을 설명하기 위한 도면이다. 도 16은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 11을 함께 참조하여 설명한다. 또한, 설명의 편의를 위해, 앞서 설명한 내용과 중복되거나 유사한 내용은 생략하거나 간단히 설명한다.
도 11 및 도 16을 참조하면, 호스트 컨트롤러(210)는 프로그램 요청을 수신하여(S510), 데이터 스토리지 디바이스(100)에 프로그램 명령(PROGRAM CMD)을 제공할 수 있다. 디바이스 컨트롤러(110)는 수신한 프로그램 명령(PROGRAM CMD)에 따라, 프로그램 동작을 제어하고, 제1 내부 메모리(140)에 저장된 제2 물리 주소(PBA_C), 제2 상태 정보(PS_C) 및 제2 시그니처 정보(SIG_C)를 갱신할 수 있다. 디바이스 컨트롤러(110)는 호스트(200)에 제1 메타 데이터(META_H)의 갱신을 요청할 수 있다. 호스트 컨트롤러(210)는 제1 메타 데이터(META_H)의 갱신이 요청되는 경우, 호스트 메모리(220)에 저장된 제1 메타 데이터(META_H)를 갱신할 수 있다. 몇몇 실시예에 따르면, 제1 메타 데이터(META_H)가 갱신된 경우, 제1 시그니처 정보(SIG_H)와 제2 시그니처 정보(SIG_C)는 서로 동일할 수 있다. 반면, 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)는 갱신되고, 제1 메타 데이터(META_H)는 갱신되지 않은 경우, 제1 시그니처 정보(SIG_H)와 제2 시그니처 정보(SIG_C)는 서로 다를 수 있다.
몇몇 실시예에서, 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 저장된 제2 물리 주소(PBA_C)와 제2 상태 정보(PS_C)를 갱신할 때, 제2 시그니처 정보(SIG_C)도 갱신하는 것으로 설명하였으나, 실시예들이 이에 제한되지는 않는다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 제2 시그니처 정보(SIG_C)가 갱신되는 다양한 방법 및 정책을 설정할 수 있다.
도 17은 몇몇 실시예에 따른 데이터 스토리지 디바이스의 데이터 가비지 컬렉션 동작을 설명하기 위한 도면이다. 도 17은 설명의 편의를 위해, 일부 구성요소에 대한 동작을 생략하여 도시하나, 이를 보완하기 위해 도 11을 함께 참조하여 설명한다. 또한, 설명의 편의를 위해, 앞서 설명한 내용과 중복되거나 유사한 내용은 생략하거나 간단히 설명한다.
도 11 및 도 17을 참조하면, 디바이스 컨트롤러(110)는 제1 비휘발성 메모리(120)의 가비지 컬렉션 동작을 제어할 수 있다. 제1 비휘발성 메모리(120)에 가비지 컬렉션 동작이 수행되면, 제1 비휘발성 메모리의 논리 주소, 물리 주소 및 상태 정보에 대한 관계가 적어도 하나 변경되므로, 디바이스 컨트롤러(110)는 제1 내부 메모리(140)에 제2 물리 주소(PBA_C), 제2 상태 정보(PS_C) 및 제2 시그니처 정보(SIG_C)를 갱신할 수 있다. 이후 동작은 도 16를 이용해 설명한 데이터 스토리지 디바이스(100)의 프로그램 동작과 유사하므로, 이와 관련된 설명은 생략한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 데이터 스토리지 디바이스 110: 디바이스 컨트롤러
120, 130: 비휘발성 메모리 140, 150: 내부 메모리
210: 호스트 컨트롤러 220: 호스트 메모리
230: 유저 인터페이스

Claims (20)

  1. 데이터를 저장하는 제1 비휘발성 메모리; 및
    상기 제1 비휘발성 메모리를 제어하는 디바이스 컨트롤러를 포함하고,
    상기 디바이스 컨트롤러는,
    상기 제1 비휘발성 메모리의 제1 논리 주소, 상기 제1 논리 주소와 대응되는 제1 물리 주소 및 상기 제1 비휘발성 메모리에 대한 제1 상태 정보를 포함하는 데이터 리드 명령을 수신하고,
    상기 데이터 리드 명령에 포함된 상기 제1 상태 정보를 이용하여 제1 리드 레벨을 결정하고,
    상기 제1 리드 레벨의 전압을 상기 제1 물리 주소와 대응되는 상기 제1 비휘발성 메모리의 제1 워드 라인에 인가하여 데이터를 리드하는 데이터 스토리지 디바이스.
  2. 제 1항에 있어서,
    상기 데이터 리드 명령에 포함된 상기 제1 물리 주소와 상기 제1 상태 정보는 암호화된 데이터 스토리지 디바이스.
  3. 제 2항에 있어서,
    상기 디바이스 컨트롤러가 상기 데이터 리드 명령에 포함된 상기 제1 상태 정보를 이용하여 제1 리드 레벨을 결정하는 것은 상기 암호화된 제1 상태 정보를 해독하는 것을 포함하고,
    상기 디바이스 컨트롤러가 상기 제1 리드 레벨의 전압을 상기 제1 물리 주소와 대응되는 상기 제1 비휘발성 메모리의 제1 워드 라인에 인가하는 것은 상기 암호화된 제1 물리 주소를 해독하는 것을 포함하는 데이터 스토리지 디바이스.
  4. 제 1항에 있어서,
    상기 제1 비휘발성 메모리의 제2 논리 주소, 상기 제2 논리 주소와 대응되는 제2 물리 주소 및 상기 제1 비휘발성 메모리에 대한 제2 상태 정보를 저장하는 제1 내부 메모리; 및
    상기 제1 비휘발성 메모리의 제3 논리 주소, 상기 제3 논리 주소와 대응되는 제3 물리 주소 및 상기 제1 비휘발성 메모리에 대한 제3 상태 정보를 저장하는 제2 비휘발성 메모리를 더 포함하고,
    상기 디바이스 컨트롤러는,
    상기 제3 논리 주소, 상기 제3 물리 주소 및 상기 제3 상태 정보의 적어도 일부를 로딩하여, 각각 상기 제2 논리 주소, 상기 제2 물리 주소 및 상기 제2 상태 정보로 상기 제1 내부 메모리에 저장하고,
    상기 제1 내부 메모리에 저장된 상기 제2 논리 주소, 상기 제2 물리 주소 및 상기 제2 상태 정보를 상기 디바이스 외부에 제공하는 데이터 스토리지 디바이스.
  5. 제 1항에 있어서,
    상기 제1 비휘발성 메모리의 제2 논리 주소, 상기 제2 논리 주소와 대응되는 제2 물리 주소 및 상기 제1 비휘발성 메모리에 대한 제2 상태 정보를 저장하는 제1 내부 메모리를 더 포함하는 데이터 스토리지 디바이스.
  6. 제 5항에 있어서,
    상기 디바이스 컨트롤러는 상기 제1 내부 메모리에 저장된 상기 제2 논리 주소, 상기 제2 물리 주소 및 상기 제2 상태 정보를 상기 디바이스 외부에 제공하는 데이터 스토리지 디바이스.
  7. 제 6항에 있어서,
    상기 디바이스 컨트롤러가 상기 제1 내부 메모리에 저장된 상기 제2 논리 주소, 상기 제2 물리 주소 및 상기 제2 상태 정보를 상기 디바이스 외부에 제공하는 것은,
    상기 제2 물리 주소와 상기 제2 상태 정보를 암호하하여 제1 메타 데이터를 생성하고,
    상기 제2 논리 주소와 상기 제1 메타 데이터를 상기 디바이스 외부에 제공하는 것을 포함하는 데이터 스토리지 디바이스.
  8. 제 5항에 있어서,
    상기 제1 내부 메모리는 상기 제1 논리 주소, 상기 제1 물리 주소 및 상기 제1 상태 정보의 유효성과 관련된 제2 시그니처 정보를 저장하는 데이터 스토리지 디바이스.
  9. 제 1항에 있어서,
    상기 데이터 리드 명령은 상기 제1 논리 주소, 상기 제1 물리 주소 및 상기 제1 상태 정보의 유효성과 관련된 제1 시그니처 정보를 더 포함하는 데이터 스토리지 디바이스.
  10. 제 1항에 있어서,
    상기 제1 리드 레벨을 결정하는데 이용되는 리드 레벨 결정 정보를 저장하는 제2 내부 메모리를 더 포함하는 데이터 스토리지 디바이스.
  11. 제 10항에 있어서,
    상기 디바이스 컨트롤러가 상기 데이터 리드 명령에 포함된 상기 제1 상태 정보를 이용하여 제1 리드 레벨을 결정하는 것은,
    상기 제2 내부 메모리에 액세스하여 상기 리드 레벨 결정 정보를 로딩하고,
    상기 제1 상태 정보와 상기 리드 레벨 결정 정보를 이용하여 상기 제1 리드 레벨을 결정하는 것을 포함하는 데이터 스토리지 디바이스.
  12. 데이터가 저장되는 제1 비휘발성 메모리;
    상기 제1 비휘발성 메모리의 제1 논리 주소, 상기 제1 논리 주소와 대응되는 제1 물리 주소 및 상기 제1 비휘발성 메모리에 대한 제1 상태 정보를 저장하는 제1 내부 메모리; 및
    상기 제1 비휘발성 메모리와 상기 제1 내부 메모리를 제어하는 디바이스 컨트롤러를 포함하고,
    상기 디바이스 컨트롤러는,
    상기 제1 비휘발성 메모리에 대한 데이터 프로그램 명령을 수신하여, 상기 제1 비휘발성 메모리에 데이터를 프로그램하고,
    상기 제1 내부 메모리에 저장된 상기 제1 물리 주소와 상기 제1 상태 정보를 갱신하고,
    상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 디바이스 외부에 제공하는 데이터 스토리지 디바이스.
  13. 제 12항에 있어서,
    상기 디바이스 컨트롤러는,
    제1 메타 데이터를 포함하는 데이터 리드 명령을 수신하고,
    상기 제1 메타 데이터를 해독하여 상기 제1 비휘발성 메모리의 제2 물리 주소와 상기 제1 비휘발성 메모리에 대한 제2 상태 정보를 생성하고,
    상기 제2 상태 정보를 이용하여 제1 리드 레벨을 결정하고,
    상기 제1 리드 레벨을 이용하여 상기 제1 비휘발성 메모리에 저장된 데이터를 리드하는 데이터 스토리지 디바이스.
  14. 제 13항에 있어서,
    상기 디바이스 컨트롤러가 상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 디바이스 외부에 제공하는 것은,
    상기 디바이스 컨트롤러가 상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 암호화하여 제1 메타 데이터를 생성하는 것을 포함하는 데이터 스토리지 디바이스.
  15. 제 12항에 있어서,
    상기 디바이스 컨트롤러가 상기 제1 내부 메모리에 저장된 상기 제1 물리 주소와 상기 제1 상태 정보를 갱신하는 것은,
    상기 제1 물리 주소와 상기 제1 상태 정보의 갱신 여부와 관련된 제1 시그니처 정보를 생성하는 것을 포함하는 데이터 스토리지 디바이스.
  16. 제 12항에 있어서,
    상기 제1 상태 정보와 상기 제1 비휘발성 메모리에 대한 제1 리드 레벨 사이의 관계를 나타내는 리드 레벨 결정 정보를 저장하는 제2 내부 메모리를 더 포함하는 데이터 스토리지 디바이스.
  17. 제 12항에 있어서,
    상기 디바이스 컨트롤러는,
    데이터 리드 명령이 수신되는 제1 구간에서, 상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 상기 데이터 스토리지 디바이스 외부에 제공하고,
    데이터 프로그램 명령이 수신되는 제2 구간에서, 상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 상기 데이터 스토리지 디바이스 외부에 미제공하는 데이터 스토리지 디바이스.
  18. 제 17항에 있어서,
    상기 제1 구간에서, 상기 디바이스 컨트롤러가 상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 상기 데이터 스토리지 디바이스 외부에 제공하는 것은,
    상기 디바이스 컨트롤러가 상기 갱신된 제1 물리 주소와 상기 갱신된 제1 상태 정보를 암호화하여 제1 메타 데이터를 생성하고, 상기 제1 메타 데이터를 상기 데이터 스토리지 디바이스 외부에 제공하는 것을 포함하는 데이터 스토리지 디바이스.
  19. 데이터가 저장되는 제1 비휘발성 메모리;
    상기 제1 비휘발성 메모리의 제1 논리 주소, 상기 제1 논리 주소와 대응되는 제1 물리 주소, 상기 제1 비휘발성 메모리에 대한 제1 상태 정보 및 제1 시그니처 정보를 저장하는 제1 내부 메모리; 및
    상기 제1 비휘발성 메모리와 상기 제1 내부 메모리를 제어하는 디바이스 컨트롤러를 포함하고,
    상기 디바이스 컨트롤러는,
    제1 메타 데이터와 상기 제1 비휘발성 메모리의 제2 논리 주소를 포함하는 데이터 리드 명령을 수신하고,
    상기 제1 메타 데이터를 해독하여, 상기 제2 논리 주소와 대응되는 제2 물리 주소, 상기 제1 비휘발성 메모리에 대한 제2 상태 정보 및 제2 시그니처 정보를 생성하고,
    상기 제1 시그니처 정보와 상기 제2 시그니처 정보에 기초하여, 데이터 리드 레벨을 결정하고,
    상기 결정된 데이터 리드 레벨을 이용하여 상기 제1 비휘발성 메모리에 저장된 데이터를 리드하는 데이터 스토리지 디바이스.
  20. 제 19항에 있어서,
    상기 제1 시그니처 정보와 상기 제2 시그니처 정보에 기초하여 상기 데이터 리드 레벨을 결정하는 것은,
    상기 제1 시그니처 정보와 상기 제2 시그니처 정보가 동일한 경우, 상기 제2 상태 정보를 이용하여 상기 데이터 리드 레벨을 결정하고,
    상기 제1 시그니처 정보와 상기 제2 시그니처 정보가 다른 경우, 상기 제1 상태 정보를 이용하여 상기 데이터 리드 레벨을 결정하는 것을 포함하는 데이터 스토리지 디바이스.
KR1020180134091A 2018-11-05 2018-11-05 데이터 스토리지 디바이스 및 데이터 스토리지 시스템 KR102567108B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180134091A KR102567108B1 (ko) 2018-11-05 2018-11-05 데이터 스토리지 디바이스 및 데이터 스토리지 시스템
US16/414,129 US11573733B2 (en) 2018-11-05 2019-05-16 Data storage device and data storage system
CN201910999765.3A CN111142782A (zh) 2018-11-05 2019-10-21 数据存储装置及数据存储系统
EP19207036.5A EP3647959A1 (en) 2018-11-05 2019-11-05 Data storage device and data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180134091A KR102567108B1 (ko) 2018-11-05 2018-11-05 데이터 스토리지 디바이스 및 데이터 스토리지 시스템

Publications (2)

Publication Number Publication Date
KR20200051141A true KR20200051141A (ko) 2020-05-13
KR102567108B1 KR102567108B1 (ko) 2023-08-14

Family

ID=68468575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180134091A KR102567108B1 (ko) 2018-11-05 2018-11-05 데이터 스토리지 디바이스 및 데이터 스토리지 시스템

Country Status (4)

Country Link
US (1) US11573733B2 (ko)
EP (1) EP3647959A1 (ko)
KR (1) KR102567108B1 (ko)
CN (1) CN111142782A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) * 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US11334387B2 (en) * 2019-05-28 2022-05-17 Micron Technology, Inc. Throttle memory as a service based on connectivity bandwidth
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service
US11100007B2 (en) 2019-05-28 2021-08-24 Micron Technology, Inc. Memory management unit (MMU) for accessing borrowed memory
US11138108B2 (en) 2019-08-22 2021-10-05 Micron Technology, Inc. Logical-to-physical map synchronization in a memory device
US11556481B2 (en) 2019-08-29 2023-01-17 Micron Technology, Inc. Increased efficiency obfuscated logical-to-physical map management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101030617B1 (ko) * 2010-04-22 2011-04-20 주식회사 하이닉스반도체 반도체 메모리 장치 및 그 동작 방법
KR20160131870A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 채널 통신 프로토콜, 그것을 지원하는 메모리 모듈, 및 시스템
KR20170090262A (ko) * 2016-01-28 2017-08-07 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20180039429A (ko) * 2016-10-10 2018-04-18 주식회사 한화 특수형태의 전기식 화약 저항 측정장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
KR20130053247A (ko) 2011-11-15 2013-05-23 삼성전자주식회사 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
KR20160005264A (ko) 2014-07-04 2016-01-14 삼성전자주식회사 저장 장치 및 그것의 읽기 방법들
US10007433B2 (en) 2015-01-21 2018-06-26 Sandisk Technologies Llc Systems and methods for performing adaptive host memory buffer caching of transition layer tables
US10025535B2 (en) 2015-03-27 2018-07-17 Intel Corporation Measurement and reporting of the latency of input and output operations by a solid state drive to a host
KR20170016205A (ko) 2015-08-03 2017-02-13 삼성전자주식회사 노화 수준에 기초하여 환경 파라미터의 값을 변경하는 스토리지 장치, 및 그것을 관리하기 위한 방법
US10229051B2 (en) 2015-12-30 2019-03-12 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
KR20170081118A (ko) * 2015-12-30 2017-07-11 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
US10095424B2 (en) 2016-08-04 2018-10-09 Intel Corporation Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
US10007311B2 (en) 2016-08-15 2018-06-26 Sandisk Technologies Llc Adaptive temperature and memory parameter throttling
KR20180080589A (ko) * 2017-01-04 2018-07-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10542089B2 (en) * 2017-03-10 2020-01-21 Toshiba Memory Corporation Large scale implementation of a plurality of open channel solid state drives

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101030617B1 (ko) * 2010-04-22 2011-04-20 주식회사 하이닉스반도체 반도체 메모리 장치 및 그 동작 방법
KR20160131870A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 채널 통신 프로토콜, 그것을 지원하는 메모리 모듈, 및 시스템
KR20170090262A (ko) * 2016-01-28 2017-08-07 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20180039429A (ko) * 2016-10-10 2018-04-18 주식회사 한화 특수형태의 전기식 화약 저항 측정장치

Also Published As

Publication number Publication date
EP3647959A1 (en) 2020-05-06
CN111142782A (zh) 2020-05-12
US20200142631A1 (en) 2020-05-07
US11573733B2 (en) 2023-02-07
KR102567108B1 (ko) 2023-08-14

Similar Documents

Publication Publication Date Title
KR102567108B1 (ko) 데이터 스토리지 디바이스 및 데이터 스토리지 시스템
US10983722B2 (en) Data storage device using host memory buffer and method of operating the same
US20140129761A1 (en) Non-volatile memory device and host device configured to communication with the same
US10409715B2 (en) Memory controller, nonvolatile memory system, and operating method thereof
US8886963B2 (en) Secure relocation of encrypted files
CN110046506B (zh) 存储设备和包括存储设备的存储系统及使用其进行操作的方法
KR20130098641A (ko) 저장 장치 및 그것의 메모리 컨트롤러
CN110175138B (zh) 支持高速缓存的物理地址验证的存储装置及操作其的方法
TWI824378B (zh) 支援將檔案寫入安裝於安全記憶裝置中之檔案系統的機制
US11556252B2 (en) Storage device and method of operating the same
KR102651408B1 (ko) 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
US11657000B2 (en) Controller and memory system including the same
US20240086336A1 (en) Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same
JP7349565B2 (ja) ランダムアクセスメモリに対する排他的論理和エンジン
US11822800B2 (en) Storage system including host and storage device and operation method thereof
US20240097885A1 (en) Memory controller and storage device including same
US20230236737A1 (en) Storage Controller Managing Different Types Of Blocks, Operating Method Thereof, And Operating Method Of Storage Device Including The Same
US20220164119A1 (en) Controller, and memory system and data processing system including the same
US20230359369A1 (en) Storage compute services for encrypted data
US20230289071A1 (en) Electronic device and method of operating the same
KR20230068271A (ko) 비휘발성 메모리 장치를 활용한 데이터 저장 장치 및 그것의 동작 방법
KR20240009363A (ko) 보안 삭제 검증 가능한 저장 장치 및 그것의 동작 방법
KR20240033958A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Legal Events

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