KR20200017664A - 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치 - Google Patents

저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치 Download PDF

Info

Publication number
KR20200017664A
KR20200017664A KR1020180092826A KR20180092826A KR20200017664A KR 20200017664 A KR20200017664 A KR 20200017664A KR 1020180092826 A KR1020180092826 A KR 1020180092826A KR 20180092826 A KR20180092826 A KR 20180092826A KR 20200017664 A KR20200017664 A KR 20200017664A
Authority
KR
South Korea
Prior art keywords
metadata
nonvolatile memory
memory
data
storage device
Prior art date
Application number
KR1020180092826A
Other languages
English (en)
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 KR1020180092826A priority Critical patent/KR20200017664A/ko
Priority to US16/292,769 priority patent/US10942678B2/en
Priority to CN201910476312.2A priority patent/CN110825655A/zh
Publication of KR20200017664A publication Critical patent/KR20200017664A/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/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
    • 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
    • G06F13/1694Configuration of memory controller to different memory types
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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/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/061Improving I/O performance
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/7202Allocation control and policies
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7211Wear leveling

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

서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 저장 장치의 데이터 액세스 방법에서, 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블을 설정한다. 복수의 메타 데이터들 중 제1 메타 데이터에 대한 제1 액세스 요청이 수신된 경우에, 메타 데이터 특성 테이블에 기초하여 제1 메타 데이터의 특성을 검출한다. 제1 메타 데이터의 특성에 기초하여, 제1 비휘발성 메모리 및 제2 비휘발성 메모리 중 제1 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정한다. 제1 메타 데이터에 기초하여 선택 메모리에 대한 액세스 동작을 수행한다.

Description

저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치{METHOD OF ACCESSING DATA IN STORAGE DEVICE, METHOD OF MANAGING DATA IN STORAGE DEVICE AND STORAGE DEVICE PERFORMING THE SAME}
본 발명은 저장 장치에 관한 것으로서, 더욱 상세하게는 저장 장치의 데이터 액세스 방법 및 데이터 관리 방법과, 상기 데이터 액세스 방법 및 상기 데이터 관리 방법을 수행하는 저장 장치에 관한 것이다.
메모리 장치를 이용하는 솔리드 스테이트 드라이브(solid state drive; SSD)와 같은 저장 장치가 널리 사용되고 있다. 상기와 같은 저장 장치는 기계적인 구동부가 없어 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 상기와 같은 저장 장치는 저장 매체로서 이용되는 비휘발성 메모리 장치를 포함할 수 있다. 최근에는 두 가지 이상의 서로 다른 타입의 비휘발성 메모리 장치들을 포함하는 저장 장치가 연구되고 있다.
본 발명의 일 목적은 두 가지 이상의 서로 다른 타입의 비휘발성 메모리들을 포함하는 저장 장치에서 메타 데이터(meta data)를 효과적으로 액세스하는 방법을 제공하는 것이다.
본 발명의 다른 목적은 두 가지 이상의 서로 다른 타입의 비휘발성 메모리들을 포함하는 저장 장치에서 메타 데이터를 효과적으로 관리하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 데이터 액세스 방법 및 상기 데이터 관리 방법을 수행하는 저장 장치를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법에서, 상기 저장 장치는 서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함한다. 상기 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터(meta data)들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블을 설정한다. 상기 복수의 메타 데이터들 중 제1 메타 데이터에 대한 제1 액세스 요청이 수신된 경우에, 상기 메타 데이터 특성 테이블에 기초하여 상기 제1 메타 데이터의 특성을 검출한다. 상기 제1 메타 데이터의 특성에 기초하여, 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 제1 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정한다. 상기 제1 메타 데이터에 기초하여 상기 선택 메모리에 대한 액세스 동작을 수행한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 저장 장치의 데이터 관리 방법에서, 상기 저장 장치는 서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함한다. 상기 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터(meta data)들을 열거한다. 상기 복수의 메타 데이터들 각각을 복수의 특성들 중 하나와 매칭시킨다. 상기 복수의 특성들에 기초하여, 상기 복수의 메타 데이터들 각각에 대한 액세스 하기에 적합한 메모리 타입을 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 하나로 설정한다. 상기 복수의 메타 데이터들, 상기 복수의 특성들 및 상기 액세스 하기에 적합한 메모리 타입의 관계를 메타 데이터 특성 테이블로 저장한다.
상기 또 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 저장 장치는 제1 비휘발성 메모리, 상기 제1 비휘발성 메모리와 다른 타입의 제2 비휘발성 메모리 및 컨트롤러를 포함한다. 상기 컨트롤러는 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리의 동작을 제어하고, 상기 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터(meta data)들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블을 설정하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터에 대한 제1 액세스 요청이 수신된 경우에 상기 메타 데이터 특성 테이블에 기초하여 상기 제1 메타 데이터의 특성을 검출하고, 상기 제1 메타 데이터의 특성에 기초하여 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 제1 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정하며, 상기 제1 메타 데이터에 기초하여 상기 선택 메모리에 대한 액세스 동작을 수행한다.
상기와 같은 본 발명의 실시예들에 따른 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치에서는, 메타 데이터의 특성을 미리 파악/분류하여 메타 데이터 특성 테이블을 설정하며, 메타 데이터에 대한 액세스 요청이 수신된 경우에 메타 데이터 특성 테이블에 설정된 메타 데이터의 특성에 따라 서로 다른 타입의 비휘발성 메모리들 중 액세스하기에 적합한 비휘발성 메모리를 결정할 수 있다. 따라서, 성능 및 신뢰성 모두를 만족하도록 메타 데이터를 효율적으로 관리 및 액세스할 수 있다.
도 1은 본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 저장 장치를 포함하는 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 저장 장치에 포함되는 비휘발성 메모리의 일 예를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 저장 장치에 포함되는 컨트롤러의 일 예를 나타내는 블록도이다.
도 5는 본 발명의 실시예들에 따른 저장 장치에 포함되고 데이터 액세스 방법에서 이용되는 메타 데이터 특성 테이블의 일 예를 나타내는 도면이다.
도 6은 본 발명의 실시예들에 따른 데이터 액세스 방법을 이용하여 데이터를 액세스하는 일 예를 나타내는 순서도이다.
도 7은 도 6의 데이터 액세스 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예들에 따른 데이터 액세스 방법을 이용하여 데이터를 액세스하는 다른 예를 나타내는 순서도이다.
도 9는 도 8의 데이터 액세스 동작을 설명하기 위한 도면이다.
도 10 및 11은 본 발명의 실시예들에 따른 데이터 액세스 방법을 이용하여 데이터를 액세스하는 또 다른 예를 나타내는 순서도들이다.
도 12는 본 발명의 실시예들에 따른 저장 장치의 데이터 관리 방법을 나타내는 순서도이다.
도 13은 본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법을 인터페이스 관점에서 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 저장 장치를 포함하는 모바일 장치를 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 데이터 액세스 방법은, 서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 저장 장치에 의해 수행된다. 상기 저장 장치의 구체적인 구조는 도 2 내지 4를 참조하여 상세하게 후술하도록 한다.
본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법에서, 복수의 메타 데이터(meta data)들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블을 설정한다(단계 S100). 상기 복수의 메타 데이터들은 상기 저장 장치의 동작을 제어하기 위한 데이터이다. 예를 들어, 상기 복수의 메타 데이터들은 펌웨어(firmware)가 실행되면서 발생되고 갱신되는 레지스터 데이터 및 프로그램 시퀀스(sequence) 데이터 등을 포함할 수 있다. 또한, 상기 복수의 메타 데이터들은 플래시 변환 계층(flash translation layer; FTL)이 관리하거나 가비지 컬렉션(garbage collection) 또는 웨어 레벨링(wear leveling) 동작에 의해 관리되는 어드레스 맵핑 데이터, 배드 블록 데이터 등을 포함할 수 있다.
상기 복수의 메타 데이터들 중 하나의 메타 데이터에 대한 액세스 요청(예를 들어, 제1 메타 데이터에 대한 제1 액세스 요청)이 수신된 경우에, 상기 메타 데이터 특성 테이블에 기초하여 상기 메타 데이터의 특성을 검출한다(단계 S200). 예를 들어, 상기 제1 액세스 요청에 포함된 정보를 기초로 상기 메타 데이터 특성 테이블을 검색하여 상기 제1 메타 데이터의 특성을 검출할 수 있다.
상기 액세스 요청된 메타 데이터의 특성에 기초하여, 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정한다(단계 S300). 예를 들어, 상기 메타 데이터 특성 테이블을 검색하여 상기 제1 메타 데이터의 특성에 적합한 메모리 타입을 결정할 수 있다.
상기 액세스 요청된 메타 데이터에 기초하여 상기 선택 메모리에 대한 액세스 동작을 수행한다(단계 S400). 예를 들어, 상기 액세스 동작은 상기 제1 메타 데이터에 대한 독출/프로그램/소거 동작 중 적어도 하나를 포함할 수 있다.
본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법에서는, 메타 데이터의 특성을 미리 파악/분류하여 테이블화한 후에, 메타 데이터에 대한 액세스 요청이 수신된 경우에 메타 데이터의 특성에 따라 액세스하기에 적합한 비휘발성 메모리를 결정함으로써, 성능 및 신뢰성 모두를 만족하도록 메타 데이터를 효율적으로 관리 및 액세스할 수 있다.
도 2는 본 발명의 실시예들에 따른 저장 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 2를 참조하면, 컴퓨팅 시스템(10)은 호스트(20) 및 호스트(20)와 통신하는 저장 장치(100)를 포함한다.
호스트(20)는 운영 체제(operating system; OS)를 실행하여 구동될 수 있다. 예를 들어, 상기 운영 체제는 파일 관리를 위한 파일 시스템(file system), 및 저장 장치(100)를 포함하는 주변 기기를 운영 체제 레벨에서 제어하기 위한 장치 드라이버(device driver)를 포함할 수 있다. 상기 파일 시스템은 호스트(20)의 요청에 따라 액세스되는 파일들에 대한 파일명, 확장자, 파일 속성, 파일 크기, 클러스터 정보 등을 관리할 수 있다. 또한, 상기 파일 시스템에 의해 파일 단위의 데이터가 생성, 삭제 및 관리될 수 있다. 상기 장치 드라이버는 저장 장치(100)를 제어하기 위한 커널(kernel)의 소프트웨어 모듈일 수 있다. 호스트(20)는 상기 장치 드라이버를 통하여 저장 장치(100)에 대한 독출/프로그램/소거 동작 등을 요청할 수 있다. 또한, 호스트(20)는 다양한 서비스를 제공하기 위하여 동영상 어플리케이션, 게임 어플리케이션, 웹 브라우저 어플리케이션 등을 실행할 수 있다.
일 실시예에서, 호스트(20)는 PC(personal computer), 노트북(laptop), 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC, MP3 플레이어, PDA(personal digital assistant), EDA(enterprise digital assistant), PMP(portable multimedia player), 디지털 카메라(digital camera), 음악 재생기(music player), 휴대용 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등의 임의의 전자 기기일 수 있다.
저장 장치(100)는 컨트롤러(110), 적어도 하나의 제1 비휘발성 메모리(NVM1)(120) 및 복수의 제2 비휘발성 메모리들(NVM2)(130)을 포함한다. 예를 들어, 저장 장치(100)는 호스트(20)에 장착될 수 있다.
컨트롤러(110)는 호스트(20)로부터 수신된 커맨드 및 데이터에 기초하여 비휘발성 메모리들(120, 130)의 동작, 예를 들어 독출/프로그램/소거 동작 등을 제어한다.
컨트롤러(110)는 데이터 분배기(112)를 포함할 수 있다. 데이터 분배기(112)는 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 데이터 액세스 방법을 수행할 수 있다. 예를 들어, 데이터 분배기(112)는 저장 장치(100)의 동작을 제어하기 위한 복수의 메타 데이터들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블(114)을 설정하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터에 대한 제1 액세스 요청이 수신된 경우에 상기 메타 데이터 특성 테이블에 기초하여 상기 제1 메타 데이터의 특성을 검출하고, 상기 제1 메타 데이터의 특성에 기초하여 제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(130) 중 상기 제1 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정하며, 상기 제1 메타 데이터에 기초하여 상기 선택 메모리에 대한 액세스 동작을 수행한다.
일 실시예에서, 도 6 및 7 등을 참조하여 후술하는 것처럼, 상기 제1 메타 데이터에 대한 상기 제1 액세스 요청은 저장 장치(100)의 외부에 위치하는 호스트(20)로부터 수신될 수 있다. 다른 실시예에서, 도 8 및 9 등을 참조하여 후술하는 것처럼, 상기 제1 메타 데이터에 대한 상기 제1 액세스 요청은 저장 장치(100)의 내부에 위치하는 제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(130) 중 하나로부터 수신될 수 있다.
일 실시예에서, 메타 데이터 특성 테이블(114)은 동작 초기에 설정되어 저장되고, 최초 설정된 이후에는 저장된 메타 데이터 특성 테이블(114)을 로딩하여 사용할 수 있다. 예를 들어, 메타 데이터 특성 테이블(114)은 저장 장치(100)의 설계 및 제조 시에 미리 설정 및 저장되어 있을 수 있다. 다른 예에서, 메타 데이터 특성 테이블(114)은 저장 장치(100)가 부팅(예를 들어, 파워 온)될 때마다 설정 및 저장될 수 있다. 예를 들어, 메타 데이터 특성 테이블(114)은 비휘발성 메모리들(120, 130) 중 하나 또는 저장 장치(100) 내의 별도의 저장부(미도시)에 저장될 수 있다.
일 실시예에서, 상술한 것처럼 메타 데이터 특성 테이블(114)이 동작 초기에 설정되고 그 이후에는 초기 설정된 메타 데이터 특성 테이블(114)을 로딩하여 사용하는 경우에, 상술한 메타 데이터 특성 테이블(114)을 설정하는 동작(예를 들어, 도 1의 단계 S110)은 저장 장치(100)가 부팅될 때마다 미리 저장된 메타 데이터 특성 테이블(114)을 로딩하는 동작으로 대체될 수 있다.
일 실시예에서, 메타 데이터 특성 테이블(114)은 저장 장치(100)가 구동됨에 따라 실시간으로 업데이트될 수 있다. 예를 들어, 새로 생성된 메타 데이터 및 관련 정보를 메타 데이터 특성 테이블(114)에 추가하거나, 더 이상 사용하지 않는 메타 데이터 및 관련 정보를 메타 데이터 특성 테이블(114)에서 삭제할 수 있다.
한편, 데이터 분배기(112)는 도 12를 참조하여 후술하는 본 발명의 실시예들에 따른 데이터 관리 방법을 수행할 수 있다.
도시하지는 않았으나, 컨트롤러(110)는 플래시 변환 계층을 더 포함하거나, 가비지 컬렉션 또는 웨어 레벨링 동작을 수행하기 위한 구성요소를 더 포함할 수도 있다.
제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(130)는 서로 다른 타입의 메모리일 수 있다. 예를 들어, 제1 비휘발성 메모리(120)는 상대적으로 빠른 속도 및 높은 내구성(endurance)을 가지며, 버퍼 메모리로 이용될 수 있다. 제2 비휘발성 메모리(130)는 상대적으로 큰 저장 용량을 가지며, 데이터를 주로 저장하는 저장 매체로 이용될 수 있다.
일 실시예에서, 제1 비휘발성 메모리(120)는 PRAM(Phase Change Random Access Memory)이고, 제2 비휘발성 메모리(130)는 플래시 메모리(flash memory)일 수 있다. 예를 들어, 제2 비휘발성 메모리(130)는 NAND 플래시 메모리일 수 있다. 다른 실시예에서, 제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(130) 각각은 RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 임의의 비휘발성 메모리일 수 있다.
일 실시예에서, 저장 장치(100)는 SSD(solid state drive), MMC(multi media card), eMMC(embedded multi media card) 및 UFS(universal flash storage) 중 하나일 수 있다. 다른 실시예에서, 저장 장치(100)는 SD 카드(secure digital card), 마이크로 SD 카드, 메모리 스틱(memory stick), 칩 카드(chip card), USB(universal serial bus) 카드, 스마트 카드(smart card), CF 카드(compact flash card) 중 하나일 수 있다.
도 3은 본 발명의 실시예들에 따른 저장 장치에 포함되는 비휘발성 메모리의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 비휘발성 메모리(200)는 메모리 셀 어레이(210), 로우 디코더(220), 페이지 버퍼 회로(230), 데이터 입출력 회로(240), 전압 발생기(250) 및 제어 회로(260)를 포함한다. 비휘발성 메모리(200)는 도 2의 제1 비휘발성 메모리(120) 및 제2 비휘발성 메모리(130) 중 하나일 수 있다.
메모리 셀 어레이(210)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 로우 디코더(220)와 연결된다. 또한, 메모리 셀 어레이(210)는 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(230)와 연결된다. 메모리 셀 어레이(210)는 복수의 워드 라인들(WL) 및 복수의 비트 라인들(BL)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(210)는 각각 메모리 셀들을 포함하는 복수의 메모리 블록들(BLK1, BLK2, ..., BLKz)로 구분될 수 있다. 예를 들어, 비휘발성 메모리(200)가 플래시 메모리인 경우에 각 메모리 셀은 플래시 메모리 셀(예를 들어, NAND 메모리 셀)일 수 있고, 비휘발성 메모리(200)가 PRAM인 경우에 각 메모리 셀은 PRAM 셀일 수 있다.
일 실시예에서, 메모리 셀 어레이(210)는 기판 상에 2차원 구조(또는 평면 구조)로 형성되는 2차원(two dimensional) 메모리 셀 어레이일 수 있다. 다른 실시예에서, 메모리 셀 어레이(210)는 기판 상에 3차원 구조(또는 수직 구조)로 형성되는 3차원(three dimensional) 메모리 셀 어레이일 수 있다. 이 경우, 메모리 셀 어레이(210)는 서로 적층되어 형성되는 복수의 메모리 셀들을 포함하는 셀 스트링들, 예를 들어 수직 메모리 스트링들을 포함할 수 있다. 수직형(또는 3차원) 메모리 셀 어레이에 대한 자세한 설명은 본 명세서에 참고 문헌으로 결합된 미국 등록 번호 7,679,133; 8,553,466; 8,654,587; 8,559,235 및 미국 공개 번호 2011/0233648에 기술되어 있다.
제어 회로(260)는 메모리 컨트롤러(예를 들어, 도 2의 컨트롤러(110))로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 비휘발성 메모리(200)의 소거 루프, 프로그램 루프 및 독출 동작을 제어한다. 여기서 프로그램 루프는 프로그램 동작과 프로그램 검증 동작을 포함하고, 소거 루프는 소거 동작과 소거 검증 동작을 포함할 수 있다. 여기서 독출 동작은 노멀 독출 동작과 데이터 리커버리 독출 동작을 포함할 수 있다.
예를 들어, 제어 회로(260)는 커맨드(CMD)에 기초하여 전압 발생기(250)를 제어하기 위한 제어 신호들(CON) 및 페이지 버퍼 회로(230)를 제어하기 위한 제어 신호들(PBC)을 발생하고, 어드레스(ADDR)에 기초하여 로우 어드레스(R_ADDR) 및 컬럼 어드레스(C_ADDR)를 발생할 수 있다. 제어 회로(260)는 로우 어드레스(R_ADDR)를 로우 디코더(220)에 제공하고, 컬럼 어드레스(C_ADDR)를 데이터 입출력 회로(240)에 제공할 수 있다.
로우 디코더(220)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(210)와 연결된다.
예를 들어, 소거/프로그램/독출 동작 시에, 로우 디코더(220)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 워드 라인들(WL) 중 적어도 하나를 선택 워드 라인으로 결정하고, 복수의 워드 라인들(WL) 중에서 상기 선택 워드 라인을 제외한 나머지 워드 라인들을 비선택 워드 라인들로 결정할 수 있다.
또한, 소거/프로그램/독출 동작 시에, 로우 디코더(220)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 스트링 선택 라인들(SSL) 중 적어도 하나를 선택 스트링 선택 라인으로 결정하고, 나머지 스트링 선택 라인들을 비선택 스트링 선택 라인들로 결정할 수 있다.
또한, 소거/프로그램/독출 동작 시에, 로우 디코더(220)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 접지 선택 라인들(GSL) 중 적어도 하나를 선택 접지 선택 라인으로 결정하고, 나머지 접지 선택 라인들을 비선택 접지 선택 라인들로 결정할 수 있다.
전압 발생기(250)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 비휘발성 메모리(200)의 동작에 필요한 게이트 전압들(VG)을 발생할 수 있다. 게이트 전압들(VG)은 로우 디코더(220)를 통해 복수의 워드 라인들(WL), 복수의 스트링 선택 라인들(SSL) 및 복수의 접지 선택 라인들(GSL)에 인가될 수 있다. 또한, 전압 발생기(250)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 소거 동작에 필요한 소거 전압을 발생할 수 있다.
예를 들어, 소거 동작 시에, 전압 발생기(250)는 메모리 블록들(BLK1~BLKz)의 공통 소스 라인 및/또는 비트 라인(BL)에 소거 전압을 인가하고, 로우 디코더(220)를 통해 하나의 메모리 블록의 모든 워드 라인들에 소거 허용 전압(예를 들어, 접지 전압)을 인가할 수 있다. 소거 검증 동작 시에, 전압 발생기(250)는 하나의 메모리 블록의 모든 워드 라인들에 소거 검증 전압을 인가하거나 워드 라인 단위로 소거 검증 전압을 인가할 수 있다.
예를 들어, 프로그램 동작 시에, 전압 발생기(250)는 로우 디코더(220)를 통해 상기 선택 워드 라인에 프로그램 전압을 인가하고, 상기 비선택 워드 라인들에는 프로그램 금지 전압을 인가할 수 있다. 프로그램 검증 동작 시에, 전압 발생기(250)는 로우 디코더(220)를 통해 상기 선택 워드 라인에 프로그램 검증 전압을 인가하고, 상기 비선택 워드 라인들에는 검증 패스 전압을 인가할 수 있다.
또한, 노멀 독출 동작 시에, 전압 발생기(250)는 로우 디코더(220)를 통해 상기 선택 워드 라인에 독출 전압을 인가하고, 상기 비선택 워드 라인들에는 독출 패스 전압을 인가할 수 있다. 또한 데이터 리커버리 독출 동작 시에, 전압 발생기(250)는 로우 디코더(220)를 통해 상기 선택 워드 라인에 인접한 워드 라인에 독출 전압을 인가하고, 상기 선택 워드 라인에는 리커버리 독출 전압을 인가할 수 있다.
페이지 버퍼 회로(230)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(210)와 연결될 수 있다. 페이지 버퍼 회로(230)는 복수의 페이지 버퍼들을 포함할 수 있다. 일 실시예에서, 하나의 페이지 버퍼에 하나의 비트 라인이 연결될 수 있다. 다른 실시예에서, 하나의 페이지 버퍼에 두 개 이상의 비트 라인들이 연결될 수 있다.
페이지 버퍼 회로(230)는 메모리 셀 어레이(210)에 프로그램 될 기입 데이터(DAT)를 저장하거나 혹은 메모리 셀 어레이(210)로부터 감지된 독출 데이터(DAT)를 저장할 수 있다. 즉, 페이지 버퍼 회로(230)는 비휘발성 메모리(200)의 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다.
데이터 입출력 회로(240)는 데이터 라인들(DL)을 통해 페이지 버퍼 회로(230)와 연결될 수 있다. 데이터 입출력 회로(240)는 컬럼 어드레스(C_ADDR)에 응답하여, 기입 데이터(DAT)를 페이지 버퍼 회로(230)를 거쳐서 메모리 셀 어레이(210)에 제공하거나 혹은 메모리 셀 어레이(210)로부터 페이지 버퍼 회로(230)를 거쳐서 출력되는 독출 데이터(DAT)를 외부(예를 들어, 도 2의 컨트롤러(110))에 제공할 수 있다.
도 4는 본 발명의 실시예들에 따른 저장 장치에 포함되는 컨트롤러의 일 예를 나타내는 블록도이다.
도 4를 참조하면, 컨트롤러(300)는 적어도 하나의 프로세서(310), 데이터 분배기(320), 버퍼 메모리(330), 호스트 인터페이스(340) 및 메모리 인터페이스(350)를 포함할 수 있다.
프로세서(310)는 호스트(예를 들어, 도 2의 호스트(20))로부터 호스트 인터페이스(340)를 통하여 수신된 커맨드에 응답하여 컨트롤러(300)의 동작을 제어할 수 있다. 일 실시예에서, 프로세서(310)는 저장 장치(100)를 구동하기 위한 펌웨어를 채용하여 각각의 구성들을 제어할 수 있다.
버퍼 메모리(330)는 프로세서(310)에 의해 실행 및 처리되는 명령어(instruction) 및 데이터를 저장할 수 있다. 예를 들어, 버퍼 메모리(330)는 SRAM(static random access memory), DRAM(dynamic random access memory) 등과 같은 휘발성 메모리로 구현될 수 있다. 일 실시예에서, 버퍼 메모리(330)는 프로세서(310)의 캐시 메모리(cache memory)일 수 있다.
데이터 분배기(320)는 메타 데이터 특성 테이블(322)을 설정 및 저장하며, 메타 데이터에 대한 액세스 요청이 수신된 경우에 메타 데이터의 특성에 따라 액세스하기에 적합한 비휘발성 메모리를 결정한다. 도 4의 데이터 분배기(320) 및 메타 데이터 특성 테이블(322)은 도 2의 데이터 분배기(112) 및 메타 데이터 특성 테이블(114)과 각각 실질적으로 동일할 수 있다.
일 실시예에서, 데이터 분배기(320)의 일부 또는 전부는 하드웨어의 형태로 구현될 수 있다. 예를 들어, 데이터 분배기(320)는 프로세서(310)의 일부 또는 별도의 하드웨어로서 데이터 처리 동작을 수행할 수 있고, 메타 데이터 특성 테이블(322)은 버퍼 메모리(330)에 저장될 수 있다. 다른 실시예에서, 데이터 분배기(320)의 일부 또는 전부는 소프트웨어(즉, 프로그램)의 형태로 구현될 수 있다. 예를 들어, 데이터 분배기(320)는 프로세서(310)에 의해 실행되고 버퍼 메모리(330)에 저장되는 명령어 및/또는 프로그램 루틴일 수 있다.
호스트 인터페이스(340)는 상기 호스트와 저장 장치(100) 사이의 물리적 연결을 제공할 수 있다. 즉, 호스트 인터페이스(340)는 상기 호스트의 버스 포맷(bus format)에 대응하여 저장 장치(100)와의 인터페이싱을 제공할 수 있다. 일 실시예에서, 상기 호스트의 버스 포맷은 SCSI(small computer system interface) 또는 SAS(serial attached SCSI)일 수 있다. 다른 실시예에서, 상기 호스트의 버스 포맷은 USB, PCIe(peripheral component interconnect express), ATA(advanced technology attachment), PATA(parallel ATA), SATA(serial ATA), NVMe 등일 수 있다.
메모리 인터페이스(350)는 비휘발성 메모리(예를 들어, 도 2의 제1 비휘발성 메모리(120) 또는 제2 비휘발성 메모리(130))와 데이터를 교환할 수 있다. 메모리 인터페이스(350)는 데이터를 상기 비휘발성 메모리에 전송할 수 있고, 상기 비휘발성 메모리로부터 독출된 데이터를 수신할 수 있다. 일 실시예에서, 메모리 인터페이스(350)는 상기 비휘발성 메모리와 하나의 채널을 통하여 연결될 수 있다. 다른 실시예에서, 메모리 인터페이스(350)는 상기 비휘발성 메모리와 2 이상의 채널들을 통하여 연결될 수 있다.
도시하지는 않았으나, 컨트롤러(300)는 에러 정정을 위한 ECC(error correction code) 블록을 더 포함할 수 있다. 상기 ECC 블록은 BCH(Bose-Chaudhuri-Hocquenghem) 코드, LDPC(Low Density Parity Check) 코드, 터보 코드(Turbo Code), 리드-솔로몬 코드(Reed-Solomon Code), 콘볼루션 코드(Convolution Code), RSC(Recursive Systematic Code), TCM(Trellis-Coded Modulation), BCM(Block Coded Modulation) 등의 부호화된 변조(Coded Modulation), 또는 다른 에러 정정 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다.
도 5는 본 발명의 실시예들에 따른 저장 장치에 포함되고 데이터 액세스 방법에서 이용되는 메타 데이터 특성 테이블의 일 예를 나타내는 도면이다.
도 5를 참조하면, 메타 데이터 특성 테이블(MDA_TABLE)은 복수의 메타 데이터들(meta data)(MDAT1, MDAT2, MDAT3, MDAT4), 복수의 특성들(attribute)(ATTR1, ATTR2, ATTR3, ATTR4) 및 액세스 하기에 적합한 메모리 타입들(access allowed memory)(NVM1, NVM2)을 포함하며, 이들의 관계가 테이블의 형태로 정리될 수 있다.
일 실시예에서, 복수의 특성들(ATTR1, ATTR2, ATTR3, ATTR4)은 제1 특성(ATTR1), 제2 특성(ATTR2), 제3 특성(ATTR3) 및 제4 특성(ATTR4) 중 적어도 하나를 포함할 수 있다. 제1 특성(ATTR1)은 프로그램/소거 사이클(P/E cycle)에 대한 신뢰성을 나타내고, 제2 특성(ATTR2)은 온도(temperature)에 대한 신뢰성을 나타내고, 제3 특성(ATTR3)은 데이터 리텐션(retention)에 대한 신뢰성을 나타내며, 제4 특성(ATTR4)은 독출 디스터브(read disturb)에 대한 신뢰성을 나타낼 수 있다.
다른 실시예에서, 복수의 특성들은 성능 등과 같은 다른 주요 파라미터들 중 적어도 하나를 더 포함할 수 있다. 예를 들어, 상기 성능은 메모리 셀 어레이의 데이터를 출력 버퍼에 전송할 때까지의 시간을 나타내는 독출 지연 시간(tR), 입력 버퍼의 데이터를 메모리 셀 어레이에 기록하는 시간을 나타내는 기입 지연 시간(tPROG) 등을 포함할 수 있다.
일 실시예에서, 메타 데이터 특성 테이블(MDA_TABLE)을 설정하는데 있어서(즉, 도 1의 단계 S110에서), 먼저 복수의 메타 데이터들(MDAT1, MDAT2, MDAT3, MDAT4)을 열거하고, 복수의 메타 데이터들(MDAT1, MDAT2, MDAT3, MDAT4) 각각을 복수의 특성들(ATTR1, ATTR2, ATTR3, ATTR4) 중 하나와 매칭시키고, 복수의 특성들(ATTR1, ATTR2, ATTR3, ATTR4)에 기초하여 복수의 메타 데이터들(MDAT1, MDAT2, MDAT3, MDAT4) 각각에 대한 액세스 하기에 적합한 메모리 타입을 제1 비휘발성 메모리(NVM1) 및 제2 비휘발성 메모리(NVM2) 중 하나로 설정하며, 복수의 메타 데이터들(MDAT1, MDAT2, MDAT3, MDAT4), 복수의 특성들(ATTR1, ATTR2, ATTR3, ATTR4) 및 액세스 하기에 적합한 메모리 타입(NVM1, NVM2)의 관계를 메타 데이터 특성 테이블(MDA_TABLE)로 저장할 수 있다.
도 5의 예에서, 제1 메타 데이터(MDAT1)는 제1 특성(ATTR1)을 가지고, 제1 메타 데이터(MDAT1)가 액세스 하기에 적합한 메모리는 제1 비휘발성 메모리(NVM1)일 수 있다. 이와 유사하게, 제2 메타 데이터(MDAT2)는 제2 특성(ATTR2)을 가지고, 제2 메타 데이터(MDAT2)가 액세스 하기에 적합한 메모리는 제2 비휘발성 메모리(NVM2)일 수 있다. 제3 메타 데이터(MDAT3)는 제3 특성(ATTR3)을 가지고, 제3 메타 데이터(MDAT3)가 액세스 하기에 적합한 메모리는 제2 비휘발성 메모리(NVM2)일 수 있다. 제4 메타 데이터(MDAT4)는 제4 특성(ATTR4)을 가지고, 제4 메타 데이터(MDAT4)가 액세스 하기에 적합한 메모리는 제1 비휘발성 메모리(NVM1)일 수 있다.
도 6은 본 발명의 실시예들에 따른 데이터 액세스 방법을 이용하여 데이터를 액세스하는 일 예를 나타내는 순서도이다. 도 7은 도 6의 데이터 액세스 동작을 설명하기 위한 도면이다.
도 1, 5, 6 및 7을 참조하면, 메타 데이터 특성 테이블(도 5의 MDA_TABLE 또는 도 7의 114)은 본 발명의 실시예들에 따른 데이터 액세스 방법을 수행하기 위해 단계 S100에서 미리 설정 및 분류되어 있어야 하고, 컨트롤러(110) 및/또는 데이터 분배기(112)에 의해 실행되는 펌웨어에서 인식되어 있어야 한다.
상기 메타 데이터의 특성을 검출하는데 있어서(단계 S200), 컨트롤러(110) 및/또는 데이터 분배기(112)가 제1 메타 데이터(MDAT1)에 대한 제1 액세스 요청(REQ1)을 수신한 경우에, 메타 데이터 특성 테이블(MDA_TABLE)에 기초하여 제1 메타 데이터(MDAT1)의 특성을 검출한다. 예를 들어, 제1 액세스 요청(REQ1)은 제1 메타 데이터(MDAT1), 제1 액세스 요청(REQ1)과 관련된 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1), 및 제1 메타 데이터(MDAT1)에 대한 제1 정보(INF1)를 포함할 수 있다. 제1 액세스 요청(REQ1)에 포함되는 제1 메타 데이터(MDAT1) 또는 제1 정보(INF1)를 기초로 메타 데이터 특성 테이블(MDA_TABLE)을 검색하여 제1 메타 데이터(MDAT1)의 특성을 검출할 수 있다.
일 실시예에서, 도 5에 도시된 것처럼, 제1 메타 데이터(MDAT1)의 특성은 상기 프로그램/소거 사이클에 대한 신뢰성을 나타내는 제1 특성(ATTR1)일 수 있다. 예를 들어, 제1 메타 데이터(MDAT1)가 보안 모드에서 사용되고 기준 횟수보다 많은 프로그램/소거 횟수가 요구되는 보안(security) 데이터인 경우에, 제1 메타 데이터(MDAT1)의 특성은 제1 특성(ATTR1)에 대응할 수 있다. 또한, 제1 메타 데이터(MDAT1)가 상기 보안 데이터인 경우에, 제1 메타 데이터(MDAT1)에 대한 제1 액세스 요청(REQ1)은 외부의 호스트(20)로부터 제공될 수 있다.
상기 선택 메모리를 결정하는데 있어서(단계 S300), 제1 메타 데이터(MDAT1)의 특성이 상기 프로그램/소거 사이클에 대한 신뢰성을 나타내는 제1 특성(ATTR1)인 경우에(단계 S310: 예), 제2 비휘발성 메모리(130)보다 상기 프로그램/소거 사이클에 대한 신뢰성이 높은(즉, 높은 내구성을 가지는) 제1 비휘발성 메모리(120)를 선택할 수 있다(단계 S350). 예를 들어, 제1 비휘발성 메모리(120)는 PRAM일 수 있다.
상기 선택 메모리에 대한 상기 액세스 동작을 수행하는데 있어서(단계 S400), 제1 비휘발성 메모리(120)에 대한 독출/프로그램/소거 동작 중 적어도 하나를 수행할 수 있다(단계 S410). 예를 들어, 제1 액세스 요청(REQ1)에 포함되는 제1 커맨드(CMD1)가 기입 커맨드인 경우에, 제1 어드레스(ADDR1)에 기초하여 제1 비휘발성 메모리(120)에 제1 메타 데이터(MDAT1)를 저장 또는 프로그램할 수 있다. 제1 액세스 요청(REQ1)에 포함되는 제1 커맨드(CMD1)가 독출 커맨드인 경우에, 제1 어드레스(ADDR1)에 기초하여 제1 비휘발성 메모리(120)에 저장되어 있는 제1 메타 데이터(MDAT1)를 독출할 수 있다. 제1 액세스 요청(REQ1)에 포함되는 제1 커맨드(CMD1)가 소거 커맨드인 경우에, 제1 어드레스(ADDR1)에 기초하여 제1 비휘발성 메모리(120) 내의 제1 메타 데이터(MDAT1)를 삭제 또는 소거할 수 있다.
한편, 제1 메타 데이터(MDAT1)의 특성이 상기 프로그램/소거 사이클에 대한 신뢰성을 나타내는 제1 특성(ATTR1)이 아닌 경우에(단계 S310: 아니오), 상술한 단계 S350 및 S410이 수행되지 않으며, 제1 메타 데이터(MDAT1)의 특성을 검출할 때까지 메타 데이터 특성 테이블(MDA_TABLE) 검색 동작이 반복될 수 있다.
도 8은 본 발명의 실시예들에 따른 데이터 액세스 방법을 이용하여 데이터를 액세스하는 다른 예를 나타내는 순서도이다. 도 9는 도 8의 데이터 액세스 동작을 설명하기 위한 도면이다. 이하 도 6 및 7과 중복되는 설명은 생략하도록 한다.
도 1, 5, 8 및 9를 참조하면, 상기 메타 데이터의 특성을 검출하는데 있어서(단계 S200), 컨트롤러(110) 및/또는 데이터 분배기(112)가 제2 메타 데이터(MDAT2)에 대한 제2 액세스 요청(REQ2)을 수신한 경우에, 메타 데이터 특성 테이블(MDA_TABLE)에 기초하여 제2 메타 데이터(MDAT2)의 특성을 검출한다. 제1 액세스 요청(REQ1)과 유사하게, 제2 액세스 요청(REQ2)은 제2 메타 데이터(MDAT2), 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 정보(INF2)를 포함하며, 제2 액세스 요청(REQ2)에 포함되는 제2 메타 데이터(MDAT2) 또는 제2 정보(INF2)를 기초로 메타 데이터 특성 테이블(MDA_TABLE)을 검색하여 제2 메타 데이터(MDAT2)의 특성을 검출할 수 있다.
일 실시예에서, 도 5에 도시된 것처럼, 제2 메타 데이터(MDAT2)의 특성은 상기 온도에 대한 신뢰성을 나타내는 제2 특성(ATTR2)일 수 있다. 예를 들어, 제2 메타 데이터(MDAT2)가 고온 환경에서 사용되는 디버깅(debugging) 데이터인 경우에, 제2 메타 데이터(MDAT2)의 특성은 제2 특성(ATTR2)에 대응할 수 있다. 또한, 제2 메타 데이터(MDAT2)가 상기 디버깅 데이터인 경우에, 제2 메타 데이터(MDAT2)에 대한 제2 액세스 요청(REQ2)은 내부의 메모리(예를 들어, 제2 비휘발성 메모리(130))로부터 제공될 수 있다.
일반적으로, 상기 디버깅 데이터는 저장 장치(100)가 제조 완료되어 출하된 이후에, 고객사로부터 불량 접수된 경우에 불량 분석을 위해 이용될 수 있다. 이 때 불량 분석을 위해 인쇄 회로 기판(printed circuit board; PCB)에 부착된 저장 장치(100) 및 또는 비휘발성 메모리들(120, 130)을 열을 가하여 떼어내야 하며, 따라서 상기 디버깅 데이터는 온도에 대한 신뢰성이 높은 메모리에 저장될 필요가 있다.
상기 선택 메모리를 결정하는데 있어서(단계 S300), 제2 메타 데이터(MDAT2)의 특성이 상기 온도에 대한 신뢰성을 나타내는 제2 특성(ATTR2)인 경우에(단계 S320: 예), 제1 비휘발성 메모리(120)보다 상기 온도에 대한 신뢰성이 높은(즉, 우수한) 제2 비휘발성 메모리(130)를 선택할 수 있다(단계 S360). 예를 들어, 제1 비휘발성 메모리(120)는 PRAM이고 제2 비휘발성 메모리(130)는 플래시 메모리일 수 있으며, PRAM의 경우 셀 기입 동작의 원리 상 열이 가해지는 경우에 오버라이트(overwrite)되어 데이터가 손상될 수 있어, 고온 환경에서 신뢰성이 상대적으로 낮을 수 있다.
상기 선택 메모리에 대한 상기 액세스 동작을 수행하는데 있어서(단계 S400), 제2 비휘발성 메모리(130)에 대한 독출/프로그램/소거 동작 중 적어도 하나를 수행할 수 있다(단계 S420). 예를 들어, 제2 액세스 요청(REQ2)에 포함되는 제2 커맨드(CMD2)가 기입 커맨드인 경우에, 제2 어드레스(ADDR2)에 기초하여 제2 비휘발성 메모리(130)에 제2 메타 데이터(MDAT2)를 저장 또는 프로그램할 수 있다. 제2 액세스 요청(REQ2)에 포함되는 제2 커맨드(CMD2)가 독출 커맨드인 경우에, 제2 어드레스(ADDR2)에 기초하여 제2 비휘발성 메모리(130)에 저장되어 있는 제2 메타 데이터(MDAT2)를 독출할 수 있다. 제2 액세스 요청(REQ2)에 포함되는 제2 커맨드(CMD2)가 소거 커맨드인 경우에, 제2 어드레스(ADDR2)에 기초하여 제2 비휘발성 메모리(130) 내의 제2 메타 데이터(MDAT2)를 삭제 또는 소거할 수 있다.
한편, 제2 메타 데이터(MDAT2)의 특성이 상기 온도에 대한 신뢰성을 나타내는 제2 특성(ATTR2)이 아닌 경우에(단계 S320: 아니오), 상술한 단계 S360 및 S420이 수행되지 않으며, 제2 메타 데이터(MDAT2)의 특성을 검출할 때까지 메타 데이터 특성 테이블(MDA_TABLE) 검색 동작이 반복될 수 있다.
도 10 및 11은 본 발명의 실시예들에 따른 데이터 액세스 방법을 이용하여 데이터를 액세스하는 또 다른 예를 나타내는 순서도들이다. 이하 도 6 내지 9와 중복되는 설명은 생략하도록 한다.
도 1, 5 및 10을 참조하면, 상기 메타 데이터의 특성을 검출하는데 있어서(단계 S200), 컨트롤러(110) 및/또는 데이터 분배기(112)가 제3 메타 데이터(MDAT3)에 대한 제3 액세스 요청을 수신한 경우에, 메타 데이터 특성 테이블(MDA_TABLE)에 기초하여 제3 메타 데이터(MDAT3)의 특성을 검출한다.
일 실시예에서, 도 5에 도시된 것처럼, 제3 메타 데이터(MDAT3)의 특성은 상기 데이터 리텐션에 대한 신뢰성을 나타내는 제3 특성(ATTR3)일 수 있다. 예를 들어, 제3 메타 데이터(MDAT3)가 기준 시간보다 긴 리텐션 시간이 요구되는 펌웨어 데이터인 경우에, 제3 메타 데이터(MDAT3)의 특성은 제3 특성(ATTR3)에 대응할 수 있다. 또한, 제3 메타 데이터(MDAT3)가 상기 펌웨어 데이터인 경우에, 도 7에 도시된 것과 유사하게 제3 메타 데이터(MDAT3)에 대한 상기 제3 액세스 요청은 외부의 호스트(20)로부터 제공될 수 있다.
상기 선택 메모리를 결정하는데 있어서(단계 S300), 제3 메타 데이터(MDAT3)의 특성이 상기 데이터 리텐션에 대한 신뢰성을 나타내는 제3 특성(ATTR3)인 경우에(단계 S330: 예), 제1 비휘발성 메모리(120)보다 상기 데이터 리텐션에 대한 신뢰성이 높은 제2 비휘발성 메모리(130)를 선택할 수 있다(단계 S360). 예를 들어, 제2 비휘발성 메모리(130)는 플래시 메모리일 수 있다. 또한, 상기 선택 메모리에 대한 상기 액세스 동작을 수행하는데 있어서(단계 S400), 제2 비휘발성 메모리(130)에 대한 독출/프로그램/소거 동작 중 적어도 하나를 수행할 수 있다(단계 S420). 도 10의 단계 S360 및 S420은 도 8의 단계 S360 및 S420과 각각 실질적으로 동일할 수 있다.
한편, 제3 메타 데이터(MDAT3)의 특성이 상기 데이터 리텐션에 대한 신뢰성을 나타내는 제3 특성(ATTR3)이 아닌 경우에(단계 S330: 아니오), 상술한 단계 S360 및 S420이 수행되지 않으며, 제3 메타 데이터(MDAT3)의 특성을 검출할 때까지 메타 데이터 특성 테이블(MDA_TABLE) 검색 동작이 반복될 수 있다.
도 1, 5 및 11을 참조하면, 상기 메타 데이터의 특성을 검출하는데 있어서(단계 S200), 컨트롤러(110) 및/또는 데이터 분배기(112)가 제4 메타 데이터(MDAT4)에 대한 제4 액세스 요청을 수신한 경우에, 메타 데이터 특성 테이블(MDA_TABLE)에 기초하여 제4 메타 데이터(MDAT4)의 특성을 검출한다.
일 실시예에서, 도 5에 도시된 것처럼, 제4 메타 데이터(MDAT4)의 특성은 상기 독출 디스터브에 대한 신뢰성을 나타내는 제4 특성(ATTR4)일 수 있다. 예를 들어, 제4 메타 데이터(MDAT4)가 기준 횟수보다 많은 독출 횟수가 요구되는 데이터인 경우에, 제4 메타 데이터(MDAT4)의 특성은 제4 특성(ATTR4)에 대응할 수 있다. 또한, 제4 메타 데이터(MDAT4)가 상기 기준 횟수보다 많은 독출 횟수가 요구되는 데이터인 경우에, 도 7에 도시된 것과 유사하게 제4 메타 데이터(MDAT4)에 대한 상기 제4 액세스 요청은 외부의 호스트(20)로부터 제공될 수 있다.
상기 선택 메모리를 결정하는데 있어서(단계 S300), 제4 메타 데이터(MDAT4)의 특성이 상기 독출 디스터브에 대한 신뢰성을 나타내는 제4 특성(ATTR4)인 경우에(단계 S340: 예), 제2 비휘발성 메모리(130)보다 상기 독출 디스터브에 대한 신뢰성이 높은 제1 비휘발성 메모리(120)를 선택할 수 있다(단계 S350). 예를 들어, 제1 비휘발성 메모리(130)는 PRAM일 수 있다. 또한, 상기 선택 메모리에 대한 상기 액세스 동작을 수행하는데 있어서(단계 S400), 제1 비휘발성 메모리(120)에 대한 독출/프로그램/소거 동작 중 적어도 하나를 수행할 수 있다(단계 S410). 도 11의 단계 S350 및 S410은 도 6의 단계 S350 및 S410과 각각 실질적으로 동일할 수 있다.
한편, 제4 메타 데이터(MDAT4)의 특성이 상기 독출 디스터브에 대한 신뢰성을 나타내는 제4 특성(ATTR4)이 아닌 경우에(단계 S340: 아니오), 상술한 단계 S350 및 S410이 수행되지 않으며, 제4 메타 데이터(MDAT4)의 특성을 검출할 때까지 메타 데이터 특성 테이블(MDA_TABLE) 검색 동작이 반복될 수 있다.
한편, 도 6, 8, 10 및 11을 참조하여 메타 데이터의 특성이 하나의 특성에 대응하는지 여부를 판단하여 액세스 하기에 적합한 하나의 비휘발성 메모리를 선택하는 것으로 본 발명의 실시예들을 도시하였으나, 본 발명은 이에 한정되지 않으며, 메타 데이터의 특성이 두 개 이상의 특성들에 대응하는지 여부를 판단하여 액세스 하기에 적합한 하나의 비휘발성 메모리를 선택할 수 있다. 다시 말하면, 도 6의 단계 S310, 도 8의 단계 S320, 도 10의 단계 S330 및 도 11의 단계 S340 중 두 개 이상을 조합하여 액세스 하기에 적합한 하나의 비휘발성 메모리를 선택할 수도 있고, 도시되지 않은 다양한 특성들(예를 들어, 성능 등과 같은 다른 주요 파라미터들)에 대응하는지 여부를 추가적으로 판단할 수도 있다.
도 12는 본 발명의 실시예들에 따른 저장 장치의 데이터 관리 방법을 나타내는 순서도이다. 이하 도 1과 중복되는 설명은 생략하도록 한다.
도 12를 참조하면, 본 발명의 실시예들에 따른 데이터 관리 방법은, 서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 저장 장치에 의해 수행된다. 상기 저장 장치의 구체적인 구조는 도 2 내지 4를 참조하여 상술한 것과 실질적으로 동일할 수 있다.
본 발명의 실시예들에 따른 저장 장치의 데이터 관리 방법에서, 상기 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터들을 열거한다(단계 S500). 상기 복수의 메타 데이터들 각각을 복수의 특성들 중 하나와 매칭시킨다(단계 S600). 상기 복수의 특성들에 기초하여, 상기 복수의 메타 데이터들 각각에 대한 액세스 하기에 적합한 메모리 타입을 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 하나로 설정한다(단계 S700). 상기 복수의 메타 데이터들, 상기 복수의 특성들 및 상기 액세스 하기에 적합한 메모리 타입의 관계를 메타 데이터 특성 테이블로 저장한다(단계 S800). 예를 들어, 도 12의 단계 S500, S600, S700 및 S800은 도 2의 컨트롤러(110) 및/또는 데이터 분배기(112)에 의해 수행될 수 있으며, 도 5에 도시된 것처럼 메타 데이터 특성 테이블(MDA_TABLE)이 설정될 수 있다.
실시예에 따라서, 상기 메타 데이터 특성 테이블은 동작 초기에(예를 들어, 상기 저장 장치의 설계 및 제조 시에 또는 부팅 시에) 설정되어 저장되고, 최초 설정된 이후에는 저장된 메타 데이터 특성 테이블을 로딩하여 사용되며, 상기 저장 장치가 구동됨에 따라 실시간으로 업데이트될 수 있다.
일 실시예에서, 도 12의 단계 S500, S600, S700 및 S800은 도 1의 단계 S100의 일부로서 수행될 수 있다. 다시 말하면, 도 12의 단계 S500, S600, S700 및 S800을 순차적으로 수행함으로써, 도 1의 단계 S100에서 상술한 상기 메타 데이터 특성 테이블의 설정 동작이 수행될 수 있다.
도 13은 본 발명의 실시예들에 따른 저장 장치의 데이터 액세스 방법을 인터페이스 관점에서 나타내는 도면이다.
도 5 및 13을 참조하면, 여러 볼륨(volume)을 가지고 있는 볼륨 인터페이스를 거쳐 각 메모리 인터페이스로 액세스할 때, 미리 정해진 메타 데이터 특성 테이블(MDA_TABLE)에 맞춰 체크하고 이에 기초하여 결정 또는 설정된 메모리를 액세스 할 수 있다.
예를 들어, 제1 메타 데이터(MDAT1)와 같이 보안 데이터 또는 보안 볼륨을 가지는 메타 데이터는 제1 메모리 인터페이스(NVM1 interface)를 통해 제1 비휘발성 메모리(NVM1)에 액세스될 수 있다. 제2 메타 데이터(MDAT2)와 같이 디버깅 데이터 또는 디버그 볼륨을 가지는 메타 데이터와, 제3 메타 데이터(MDAT3)와 같이 펌웨어 데이터 또는 펌웨어 볼륨을 가지는 메타 데이터는 제2 메모리 인터페이스(NVM2 interface)를 통해 제2 비휘발성 메모리(NVM2)에 액세스될 수 있다. 한편, 메타 데이터가 아닌 사용자 데이터 또는 사용자 볼륨을 가지는 데이터는 메타 데이터 특성 테이블(MDA_TABLE)을 고려하지 않고, 제2 메모리 인터페이스(NVM2 interface)를 통해 메인 저장 매체로 이용되는 제2 비휘발성 메모리(NVM2)에 액세스될 수 있다.
이상, 저장 장치(100)가 서로 다른 두 가지 타입의 비휘발성 메모리들(120, 130)을 포함하는 경우에 기초하여 본 발명의 실시예들을 설명하였으나, 본 발명은 이에 한정되지 않으며, 저장 장치가 서로 다른 세 가지 이상 타입의 비휘발성 메모리들을 포함하는 경우에도 확대 적용될 수 있다.
실시예에 따라서, 본 발명의 데이터 액세스 방법 및 데이터 관리 방법은, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
도 14는 본 발명의 실시예들에 따른 저장 장치를 포함하는 모바일 장치를 나타내는 블록도이다.
도 14를 참조하면, 모바일 장치(1000)는 어플리케이션 프로세서(1100), 통신 모듈(1200), 디스플레이/터치 모듈(1300), 저장 장치(1400), 및 모바일 램(1500)을 포함한다.
어플리케이션 프로세서(1100)는 모바일 장치(1000)의 전반적인 동작을 제어한다. 어플리케이션 프로세서(1100)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 통신 모듈(1200)은 외부와의 유선 통신 및/또는 무선 통신을 제어하도록 구현될 수 있다. 디스플레이/터치 모듈(1300)은 어플리케이션 프로세서(1100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 수 있다. 저장 장치(1400)는 사용자의 데이터를 저장하도록 구현될 수 있다.
저장 장치(1400)는 본 발명의 실시예들에 따른 저장 장치이며, 본 발명의 실시예들에 따른 데이터 액세스 방법 및/또는 데이터 관리 방법을 수행함에 따라, 메타 데이터의 특성을 미리 파악/분류하여 테이블화한 후에, 메타 데이터에 대한 액세스 요청이 수신된 경우에 메타 데이터의 특성에 따라 액세스하기에 적합한 비휘발성 메모리를 결정함으로써, 성능 및 신뢰성 모두를 만족하도록 메타 데이터를 효율적으로 관리 및 액세스할 수 있다.
모바일 램(1500)은 모바일 장치(1000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 예를 들어, 모바일 램(1500)은 DDR(dual data rate) DRAM, LPDDR(low power DDR) DRAM, GDDR (graphic DDR) DRAM 등과 같은 임의의 휘발성 메모리일 수 있다.
본 발명의 실시예들은 저장 장치를 포함하는 임의의 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(personal digital assistant), PMP(portable multimedia player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things) 기기, IoE(internet of everything) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 저장 장치의 데이터 액세스 방법으로서,
    상기 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터(meta data)들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블을 설정하는 단계;
    상기 복수의 메타 데이터들 중 제1 메타 데이터에 대한 제1 액세스 요청이 수신된 경우에, 상기 메타 데이터 특성 테이블에 기초하여 상기 제1 메타 데이터의 특성을 검출하는 단계;
    상기 제1 메타 데이터의 특성에 기초하여, 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 제1 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정하는 단계; 및
    상기 제1 메타 데이터에 기초하여 상기 선택 메모리에 대한 액세스 동작을 수행하는 단계를 포함하는 저장 장치의 데이터 액세스 방법.
  2. 제 1 항에 있어서,
    상기 복수의 특성들은, 프로그램/소거 사이클(P/E cycle)에 대한 신뢰성을 나타내는 제1 특성, 온도(temperature)에 대한 신뢰성을 나타내는 제2 특성, 데이터 리텐션(retention)에 대한 신뢰성을 나타내는 제3 특성, 및 독출 디스터브(read disturb)에 대한 신뢰성을 나타내는 제4 특성 중 적어도 하나를 포함하는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  3. 제 2 항에 있어서,
    상기 제1 메타 데이터가 보안 모드에서 사용되고 기준 횟수보다 많은 프로그램/소거 횟수가 요구되는 보안(security) 데이터인 경우에, 상기 제1 메타 데이터의 특성은 상기 제1 특성에 대응하며,
    상기 선택 메모리를 결정하는 단계는,
    상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 프로그램/소거 사이클에 대한 신뢰성이 높은 상기 제1 비휘발성 메모리를 상기 선택 메모리로 결정하는 단계를 포함하는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  4. 제 2 항에 있어서,
    상기 제1 메타 데이터가 고온 환경에서 사용되는 디버깅(debugging) 데이터인 경우에, 상기 제1 메타 데이터의 특성은 상기 제2 특성에 대응하며,
    상기 선택 메모리를 결정하는 단계는,
    상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 온도에 대한 신뢰성이 높은 상기 제2 비휘발성 메모리를 상기 선택 메모리로 결정하는 단계를 포함하는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  5. 제 2 항에 있어서,
    상기 제1 메타 데이터가 기준 시간보다 긴 리텐션 시간이 요구되는 펌웨어(firmware) 데이터인 경우에, 상기 제1 메타 데이터의 특성은 상기 제3 특성에 대응하며,
    상기 선택 메모리를 결정하는 단계는,
    상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 데이터 리텐션에 대한 신뢰성이 높은 상기 제2 비휘발성 메모리를 상기 선택 메모리로 결정하는 단계를 포함하는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  6. 제 2 항에 있어서,
    상기 제1 메타 데이터가 기준 횟수보다 많은 독출 횟수가 요구되는 데이터인 경우에, 상기 제1 메타 데이터의 특성은 상기 제4 특성에 대응하며,
    상기 선택 메모리를 결정하는 단계는,
    상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 독출 디스터브에 대한 신뢰성이 높은 상기 제1 비휘발성 메모리를 상기 선택 메모리로 결정하는 단계를 포함하는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  7. 제 1 항에 있어서,
    상기 제1 메타 데이터에 대한 상기 제1 액세스 요청은 상기 저장 장치의 외부에 위치하는 호스트로부터 수신되는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  8. 제 1 항에 있어서,
    상기 제1 메타 데이터에 대한 상기 제1 액세스 요청은 상기 저장 장치의 내부에 위치하는 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 하나로부터 수신되는 것을 특징으로 하는 저장 장치의 데이터 액세스 방법.
  9. 서로 다른 타입의 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 저장 장치의 데이터 관리 방법으로서,
    상기 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터(meta data)들을 열거하는 단계;
    상기 복수의 메타 데이터들 각각을 복수의 특성들 중 하나와 매칭시키는 단계;
    상기 복수의 특성들에 기초하여, 상기 복수의 메타 데이터들 각각에 대한 액세스 하기에 적합한 메모리 타입을 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 하나로 설정하는 단계; 및
    상기 복수의 메타 데이터들, 상기 복수의 특성들 및 상기 액세스 하기에 적합한 메모리 타입의 관계를 메타 데이터 특성 테이블로 저장하는 단계를 포함하는 저장 장치의 데이터 관리 방법.
  10. 제1 비휘발성 메모리;
    상기 제1 비휘발성 메모리와 다른 타입의 제2 비휘발성 메모리; 및
    상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리의 동작을 제어하고, 저장 장치의 동작을 제어하기 위한 복수의 메타 데이터(meta data)들을 복수의 특성들 및 액세스 하기에 적합한 메모리 타입을 기초로 분류하여 메타 데이터 특성 테이블을 설정하고, 상기 복수의 메타 데이터들 중 제1 메타 데이터에 대한 제1 액세스 요청이 수신된 경우에 상기 메타 데이터 특성 테이블에 기초하여 상기 제1 메타 데이터의 특성을 검출하고, 상기 제1 메타 데이터의 특성에 기초하여 상기 제1 비휘발성 메모리 및 상기 제2 비휘발성 메모리 중 상기 제1 메타 데이터가 액세스 하기에 적합한 선택 메모리를 결정하며, 상기 제1 메타 데이터에 기초하여 상기 선택 메모리에 대한 액세스 동작을 수행하는 컨트롤러를 포함하는 저장 장치.
KR1020180092826A 2018-08-09 2018-08-09 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치 KR20200017664A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180092826A KR20200017664A (ko) 2018-08-09 2018-08-09 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치
US16/292,769 US10942678B2 (en) 2018-08-09 2019-03-05 Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
CN201910476312.2A CN110825655A (zh) 2018-08-09 2019-06-03 存储器件、存取数据的方法及管理数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180092826A KR20200017664A (ko) 2018-08-09 2018-08-09 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치

Publications (1)

Publication Number Publication Date
KR20200017664A true KR20200017664A (ko) 2020-02-19

Family

ID=69407184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180092826A KR20200017664A (ko) 2018-08-09 2018-08-09 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치

Country Status (3)

Country Link
US (1) US10942678B2 (ko)
KR (1) KR20200017664A (ko)
CN (1) CN110825655A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11068204B2 (en) * 2019-05-22 2021-07-20 Macronix International Co., Ltd. Memory device with multiple physical spaces, multiple non-volatile memory arrays, multiple main data, multiple metadata of multiple types of commands, and access method thereof
US11656936B2 (en) * 2021-09-07 2023-05-23 Micron Technology, Inc. Managing write disturb for units of memory in a memory sub-system
EP4206937A1 (en) * 2021-12-29 2023-07-05 Samsung Electronics Co., Ltd. Storage device including indirect access module, method of operating the same, and method of operating storage system including the same

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005108304A (ja) 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
US8332575B2 (en) 2007-06-20 2012-12-11 Samsung Electronics Co., Ltd. Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance
KR20090098276A (ko) 2008-03-13 2009-09-17 주식회사 엠트론스토리지테크놀로지 하이브리드 저장 장치
KR20100016987A (ko) 2008-08-05 2010-02-16 삼성전자주식회사 상 변화 메모리를 포함하는 컴퓨팅 시스템
KR101146082B1 (ko) 2010-03-31 2012-05-15 성균관대학교산학협력단 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법
KR101795629B1 (ko) 2011-02-15 2017-11-13 삼성전자주식회사 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들
KR20120126678A (ko) 2011-05-12 2012-11-21 삼성전자주식회사 내구성을 향상한 비휘발성 메모리 장치 및 그 동작방법
KR101790165B1 (ko) 2011-08-09 2017-11-20 삼성전자 주식회사 메모리 시스템 및 그것의 메타 데이터 관리 방법
KR101403922B1 (ko) 2011-08-25 2014-06-09 인하대학교 산학협력단 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
KR101992934B1 (ko) 2012-11-14 2019-06-26 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
KR101977684B1 (ko) 2012-12-12 2019-05-13 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법, 상기 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 메모리 시스템 및 비휘발성 메모리 장치
US20140229655A1 (en) * 2013-02-08 2014-08-14 Seagate Technology Llc Storing Error Correction Code (ECC) Data In a Multi-Tier Memory Structure
US9916091B2 (en) 2015-07-13 2018-03-13 Samsung Electronics Co., Ltd. Memory system architecture

Also Published As

Publication number Publication date
US10942678B2 (en) 2021-03-09
CN110825655A (zh) 2020-02-21
US20200050400A1 (en) 2020-02-13

Similar Documents

Publication Publication Date Title
US10657041B2 (en) Data management method and storage device performing the same
US10460774B2 (en) Apparatus and method capable of removing duplication write of data in memory
US10180805B2 (en) Memory system and operating method thereof
KR102615593B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN107491396B (zh) 存储器系统及其操作方法
KR102457400B1 (ko) 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템
KR20180060524A (ko) 메모리 시스템 및 그의 동작 방법
KR20190057887A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102593352B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
US10120606B2 (en) Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same
US20200057725A1 (en) Data storage device and operating method thereof
CN110968522B (zh) 存储器系统及其操作方法、包括存储器系统的数据库系统
KR20200049051A (ko) 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법
KR20180058328A (ko) 메모리 시스템 및 그의 동작 방법
KR102653389B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN111625188A (zh) 一种存储器及其数据写入方法与存储系统
KR20180130140A (ko) 데이터 처리 시스템 및 데이터 처리 방법
KR102646252B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10942678B2 (en) Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20180011375A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10872035B1 (en) Systems and methods for managing an artificially limited logical space of non-volatile memory
US20220391324A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
TW202311965A (zh) 主機裝置、記憶體控制器及包括其的計算系統

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal