KR102297541B1 - 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템 - Google Patents

메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템 Download PDF

Info

Publication number
KR102297541B1
KR102297541B1 KR1020140183292A KR20140183292A KR102297541B1 KR 102297541 B1 KR102297541 B1 KR 102297541B1 KR 1020140183292 A KR1020140183292 A KR 1020140183292A KR 20140183292 A KR20140183292 A KR 20140183292A KR 102297541 B1 KR102297541 B1 KR 102297541B1
Authority
KR
South Korea
Prior art keywords
data
memory
storage
reliability level
requested
Prior art date
Application number
KR1020140183292A
Other languages
English (en)
Other versions
KR20160074827A (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 KR1020140183292A priority Critical patent/KR102297541B1/ko
Priority to US14/962,899 priority patent/US9817591B2/en
Publication of KR20160074827A publication Critical patent/KR20160074827A/ko
Application granted granted Critical
Publication of KR102297541B1 publication Critical patent/KR102297541B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/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/065Replication mechanisms
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 호스트와 통신하도록 구성되는 저장 장치를 제공한다. 저장 장치는 각각이 서로 다른 저장 신뢰성 수준들을 갖는 복수의 메모리 영역 중 적어도 하나를 포함하는 복수의 메모리 장치, 및 호스트로부터 제공된 데이터 및 데이터의 요청 신뢰성 수준에 관한 요청 수준 데이터를 복수의 메모리 영역에 저장하기 위해 상기 복수의 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러의 제어에 따라, 데이터는 복수의 메모리 영역 중에서 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 본 발명에 따르면, 높은 요청 신뢰성 수준 또는 긴 요청 보존 시간을 갖는 데이터가 장기간 동안 신뢰할 수 있도록 저장될 수 있다.

Description

메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템{STORAGE DEVICE AND STORAGE SYSTEM STORING DATA BASED ON RELIABILITY OF MEMORY AREA}
본 발명은 데이터 저장 기술에 관한 것으로, 좀 더 구체적으로는 데이터를 저장하기 위한 저장 장치 및 스토리지 시스템에 관한 것이다.
근래 많은 정보가 생성되고 있다. 생성된 정보는 다양한 방법에 의해 기록되고, 기록된 정보는 탐색되거나 가공된다. 예로서, 정보는 전자적인 데이터의 형태로 저장된다. 데이터를 전자적으로 저장하기 위해, 다양한 유형의 저장 장치들이 생산 및 이용되고 있다. 하나 이상의 저장 장치들은 스토리지 시스템을 형성할 수 있다. 어떤 저장 장치들 또는 스토리지 시스템들은 영구적으로 또는 반영구적으로 데이터를 저장한다.
저장 장치 또는 스토리지 시스템의 수명은 반복적인 이용 때문에 제한된다. 예로서, 하드 디스크 드라이브(Hard Disk Drive)와 같은 기계적인 저장 매체는 반복적인 접근들에 따라 디스크 헤드(Head)에 의해 물리적으로 손상된다. 다른 예로서, 솔리드 스테이트 드라이브(Solid State Drive)와 같이 플래시(Flash) 메모리를 이용하는 저장 매체에 포함되는 메모리 셀(Cell)들은 반복적인 프로그램 및 삭제 작동들에 따라 열화된다.
저장 장치 또는 스토리지 시스템이 손상됨에 따라, 그 저장 장치 또는 스토리지 시스템의 수명이 다할 수 있다. 저장 장치 또는 스토리지 시스템의 수명이 다하면, 그 저장 장치 또는 스토리지 시스템은 데이터를 정상적으로 저장하지 못한다. 데이터를 신뢰할 수 있도록(Reliably) 저장하기 위해, 저장 장치 또는 스토리지 시스템을 이용할 수 있는 시간이 연장될 필요가 있다.
저장 장치 또는 스토리지 시스템의 이용 시간을 연장하기 위한 구성들 및 스킴(Scheme)들이 제공된다. 본 발명의 실시 예에 따르면, 저장 장치 또는 스토리지 시스템의 메모리 영역의 신뢰성(Reliability)에 기초하여 데이터가 저장될 수 있다. 본 발명의 실시 예에 따른 저장 장치 또는 스토리지 시스템은 호스트(Host)로부터 데이터의 요청 신뢰성 수준(Required Reliability Level) 또는 데이터의 요청 보존 시간(Required Retention Time)을 제공받을 수 있다.
본 발명의 일 실시 예에 따라 호스트와 통신하도록 구성되는 저장 장치는 각각이 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역 중 적어도 하나를 포함하는 복수의 메모리 장치; 및 호스트로부터 제공된 데이터 및 데이터의 요청 신뢰성 수준에 관한 요청 수준 데이터를 복수의 메모리 영역의 일부 또는 전부에 저장하기 위해 복수의 메모리 장치를 제어하도록 구성되는 메모리 컨트롤러를 포함할 수 있다. 이 실시 예에서, 메모리 컨트롤러의 제어에 따라, 데이터는 복수의 메모리 영역 중에서 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 나아가, 이 실시 예에서, 저장된 데이터의 요청 신뢰성 수준은 호스트로부터 제공되는 변경 명령에 응답하여 다른 요청 신뢰성 수준으로 변경될 수 있다.
본 발명의 일 실시 예에서, 저장 신뢰성 수준들은 복수의 메모리 영역에서 수행된 오류 검출 정정 연산들의 결과 및 복수의 메모리 영역의 웨어 레벨들 중 적어도 하나에 기초하여 결정될 수 있다.
본 발명의 일 실시 예에서, 저장 신뢰성 수준들에 관한 저장 신뢰성 데이터는 복수의 메모리 장치에 포함되고 데이터 및 요청 수준 데이터를 저장하지 않은 메모리 영역에 저장되거나, 복수의 메모리 장치와 별도로 제공되는 불휘발성 메모리에 저장될 수 있다.
본 발명의 일 실시 예에서, 데이터의 요청 신뢰성 수준은 데이터의 중요도에 기초하여 호스트의 사용자에 의해 설정되거나 데이터에 대한 호스트의 관리 정책에 기초하여 선택될 수 있다.
본 발명의 일 실시 예에서, 데이터의 요청 신뢰성 수준이 높을수록, 데이터는 복수의 메모리 영역 중에서 더 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다.
본 발명의 일 실시 예에서, 복수의 메모리 장치 중에서 제 1 메모리 장치에 포함되고 데이터의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장 가능 공간이 없거나 부족한 경우, 메모리 컨트롤러의 제어에 따라, 데이터는 복수의 메모리 장치 중에서 제 1 메모리 장치가 아닌 제 2 메모리 장치에 포함되고 데이터의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다.
본 발명의 일 실시 예에서, 데이터의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장 가능 공간이 없거나 부족한 경우, 메모리 컨트롤러의 제어에 따라, 데이터의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역의 무효 데이터가 삭제될 수 있다.
본 발명의 일 실시 예에서, 복수의 메모리 장치 중 대상 메모리 장치에 포함되는 복수의 메모리 영역 중에서 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역의 총 저장 용량이 기준 값보다 작은 경우, 메모리 컨트롤러의 제어에 따라, 대상 메모리 장치는 데이터를 저장하기 위해 이용되지 않을 수 있다.
본 발명의 일 실시 예에서, 메모리 컨트롤러의 제어에 따라, 저장된 데이터에 대해 오류 검출 정정 연산이 수행될 수 있다. 이 실시 예에서, 저장된 데이터의 요청 신뢰성 수준이 높을수록, 오류 검출 정정 연산이 더 정밀하게 수행될 수 있다.
본 발명의 일 실시 예에서, 메모리 컨트롤러의 제어에 따라, 저장 신뢰성 수준들은 저장된 데이터에 대해 읽기 작동 또는 삭제 작동이 수행될 때에 갱신될 수 있다.
본 발명의 일 실시 예에서, 데이터를 저장한 메모리 영역의 저장 신뢰성 수준이 다른 저장 신뢰성 수준으로 변경되는 경우, 메모리 컨트롤러의 제어에 따라, 저장된 데이터는 저장된 데이터의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 다른 메모리 영역으로 이동될 수 있다.
본 발명의 일 실시 예에서, 변경 명령이 제공된 경우, 메모리 컨트롤러의 제어에 따라, 요청 수준 데이터는 다른 요청 신뢰성 수준에 관한 새 요청 수준 데이터로 변경될 수 있다.
본 발명의 일 실시 예에서, 복수의 메모리 장치에 저장된 무효 데이터를 삭제하기 위한 가비지 콜렉션 연산이 수행되는 경우, 다른 요청 신뢰성 수준을 갖는 저장된 데이터는 복수의 메모리 영역 중에서 다른 요청 신뢰성 수준에 대응하는 다른 저장 신뢰성 수준을 갖는 메모리 영역으로 이동될 수 있다.
본 발명의 다른 실시 예에 따라 호스트와 통신하도록 구성되는 저장 장치는 각각이 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역 중 적어도 하나를 포함하는 복수의 메모리 장치; 및 호스트로부터 제공된 데이터 및 데이터의 요청 보존 시간에 관한 보존 시간 데이터를 복수의 메모리 영역의 일부 또는 전부에 저장하기 위해 복수의 메모리 장치를 제어하도록 구성되는 메모리 컨트롤러를 포함할 수 있다. 이 실시 예에서, 메모리 컨트롤러의 제어에 따라, 데이터의 요청 보존 시간이 만료되기 전까지 데이터는 복수의 메모리 영역 중에서 가장 높은 저장 신뢰성 수준을 갖는 대상 메모리 영역에 저장될 수 있다.
본 발명의 다른 실시 예에서, 저장된 데이터의 요청 보존 시간이 만료되기 전에 대상 메모리 영역의 저장 신뢰성 수준이 낮아진 경우, 메모리 컨트롤러의 제어에 따라, 저장된 데이터는 가장 높은 저장 신뢰성 수준을 갖는 다른 대상 메모리 영역으로 이동될 수 있다.
본 발명의 다른 실시 예에서, 저장된 데이터의 요청 보존 시간이 만료된 경우, 메모리 컨트롤러의 제어에 따라, 저장된 데이터로의 접근이 차단될 수 있다.
본 발명의 다른 실시 예에서, 메모리 컨트롤러의 제어에 따라, 저장된 데이터의 요청 보존 시간이 만료된 때에 또는 저장된 데이터로의 접근이 요청된 때에 저장된 데이터의 요청 보존 시간의 만료를 알리도록 구성되는 정보가 호스트로 제공될 수 있다.
본 발명의 다른 실시 예에서, 저장된 데이터의 요청 보존 시간이 만료된 경우, 메모리 컨트롤러의 제어에 따라, 저장된 데이터는 복수의 메모리 영역 중에서 대상 메모리 영역이 아닌 메모리 영역으로 이동될 수 있다.
본 발명의 다른 실시 예에서, 저장된 데이터의 요청 보존 시간은 호스트로부터 제공되는 변경 명령에 응답하여 연장되거나 단축되거나 갱신될 수 있다.
본 발명의 또 다른 실시 예에 따라 호스트와 통신하도록 구성되는 스토리지 시스템은 하나 이상의 저장 장치들을 포함할 수 있다. 하나 이상의 저장 장치들 각각은 각각이 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역 중 적어도 하나를 포함하는 하나 이상의 메모리 장치들; 및 호스트로부터 제공된 데이터 및 데이터의 요청 신뢰성 수준에 관한 요청 수준 데이터, 및 요청 신뢰성 수준에 대응하는 보존 시간에 관한 보존 시간 데이터를 복수의 메모리 영역의 일부 또는 전부에 저장하기 위해 하나 이상의 메모리 장치들을 제어하도록 구성되는 메모리 컨트롤러를 포함할 수 있다. 이 실시 예에서, 메모리 컨트롤러의 제어에 따라, 요청 신뢰성 수준이 높을수록, 보존 시간은 더 긴 값을 갖도록 선택될 수 있다. 나아가, 이 실시 예에서, 메모리 컨트롤러의 제어에 따라, 데이터의 보존 시간이 만료되기 전까지 데이터는 복수의 메모리 영역 중에서 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다.
본 발명의 실시 예에 따르면, 높은 요청 신뢰성 수준 또는 긴 요청 보존 시간을 갖는 데이터가 장기간 동안 신뢰할 수 있도록 저장될 수 있다. 따라서, 본 발명의 실시 예에 따르면, 저장 장치 또는 스토리지 시스템을 이용할 수 있는 시간이 연장될 수 있다. 결과적으로, 본 발명의 실시 예에 따르면, 데이터를 유지 및 관리하기 위해 소모되는 비용이 줄어들 수 있다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 포함하는 전자 시스템의 구성을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 저장 장치의 다른 구성을 보여주는 블록도이다.
도 3은 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 보여주는 개념도이다.
도 4는 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 다른 과정을 보여주는 개념도이다.
도 5는 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 또 다른 과정을 보여주는 개념도이다.
도 6은 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 설명하는 흐름도이다.
도 7은 본 발명의 일 실시 예에 따라 도 1의 메모리 장치를 관리하는 과정을 보여주는 개념도이다.
도 8은 본 발명의 일 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 과정을 보여주는 개념도이다.
도 9는 본 발명의 일 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 다른 과정을 보여주는 개념도이다.
도 10은 본 발명의 다른 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 보여주는 개념도이다.
도 11은 본 발명의 다른 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 설명하는 흐름도이다.
도 12는 본 발명의 다른 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 과정을 보여주는 개념도이다.
도 13은 본 발명의 다른 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 다른 과정을 보여주는 개념도이다.
도 14는 본 발명의 다른 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 또 다른 과정을 보여주는 개념도이다.
도 15는 본 발명의 또 다른 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 보여주는 개념도이다.
도 16 및 도 17은 본 발명의 실시 예에 따른 저장 장치를 이용함으로써 얻어지는 예시적인 효과를 보여주는 개념도이다.
도 18은 본 발명의 실시 예에 따른 스토리지 시스템을 포함하는 전자 시스템의 구성을 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 분산 클라우드 스토리지(Distributed Cloud Storage) 시스템을 포함하는 전자 시스템의 구성을 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 스토리지 장치 또는 시스템을 포함하는 전자 장치의 구성을 보여주는 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 포함하는 전자 시스템의 구성을 보여주는 블록도이다. 전자 시스템(1000)은 호스트(Host; 1100) 및 저장 장치(1300)를 포함할 수 있다. 예로서, 전자 시스템(1000)은 호스트(1100) 및 저장 장치(1300)를 모두 포함하는 단일의 시스템일 수 있다. 또는, 전자 시스템(1000)의 호스트(1100)와 저장 장치(1300)는 서로 별도의 장치로 구현될 수 있다.
예로서, 호스트(1100)는 범용 프로세서 또는 어플리케이션 프로세서(Application Processor)를 포함하는 프로세서 회로 또는 전자 장치일 수 있다. 또는, 호스트(1100)는 하나 이상의 프로세서들을 포함하는 컴퓨팅 장치(예컨대, 퍼스널 컴퓨터(Personal Computer), 주변 장치, 디지털 카메라, PDA(Personal Digital Assistant), PMP(Portable Media Player), 스마트폰(Smartphone), 태블릿(Tablet), 웨어러블(Wearable) 장치 등)일 수 있다. 다만, 이 예들은 본 발명을 제한하기 위한 것은 아니다.
저장 장치(1300)는 영구적으로 또는 반영구적으로 데이터를 저장할 수 있다. 저장 장치(1300)는 불휘발성 메모리를 포함하는 어떠한 저장 매체로든 구현될 수 있다. 예로서, 저장 장치(1300)는 하드 디스크 드라이브(Hard Disk Drive)와 같은 기계적인 저장 매체, 솔리드 스테이트 드라이브(Solid State Drive)와 같이 플래시(Flash) 메모리를 포함하는 저장 매체 등으로 구현될 수 있으나, 이 예들은 본 발명을 제한하기 위한 것은 아니다.
이하의 설명에서, 저장 장치(1300)가 플래시 메모리를 포함하는 저장 매체인 것으로 가정한다. 그러나, 위에서 언급된 것과 같이, 저장 장치(1300)는 불휘발성 메모리를 포함하는 어떠한 저장 매체로든 구현될 수 있다. 본 발명은 불휘발성 메모리를 포함하는 어떠한 저장 매체에든 적용될 수 있다. 위 가정은 단지 본 발명의 이해를 돕기 위한 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
저장 장치(1300)는 호스트(1100)와 통신할 수 있다. 저장 장치(1300)는 호스트(1100)로부터 제공된 데이터 또는 호스트(1100)로 제공될 데이터를 저장할 수 있다. 예로서, 저장 장치(1300)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCIe, M-PCIe(Mobile PCIe), ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), IDE(Integrated Drive Electronics), Firewire, UFS(Universal Flash Storage), TCP/IP(Transmission Control Protocol/Internet Protocol) 등의 다양한 유선 통신 규약들, 및 LTE(Long Term Evolution), WiMax, GSM(Global System for Mobile communication), CDMA(Code Division Multiple Access), HSPA(High Speed Packet Access), Bluetooth, NFC(Near Field Communication), WiFi, RFID(Radio Frequency Identification) 등의 다양한 무선 통신 규약들 중 하나 이상에 기초하여 호스트(1100)와 통신할 수 있다. 다만, 이 예들은 본 발명을 제한하기 위한 것은 아니다.
예로서, 전자 시스템(1000)이 호스트(1100) 및 저장 장치(1300)를 모두 포함하는 단일의 시스템인 경우, 저장 장치(1300)는 호스트(1100)의 서비스에 이용되는 데이터를 저장하기 위한 로컬(Local) 저장 장치일 수 있다. 예로서, 호스트(1100)와 저장 장치(1300)가 서로 별도의 장치로 구현되는 경우, 저장 장치(1300)는 외장 저장 장치 또는 원격 저장 장치일 수 있다. 예로서, 저장 장치(1300)가 TCP/IP 또는 다양한 무선 통신 규약들 중 하나 이상에 기초하여 호스트(1100)와 통신하는 경우, 저장 장치(1300)는 스토리지 서버로서 작동할 수 있고 호스트(1100)는 저장 장치(1300)에 접근하는 클라이언트 장치로서 작동할 수 있다. 다만, 이 예들은 본 발명을 제한하기 위한 것은 아니다. 저장 장치(1300)는 이 예들과는 다른 다양한 형태들로 구현될 수 있다.
저장 장치(1300)는 메모리 컨트롤러(1310) 및 복수의 메모리 장치(1330, 1350)를 포함할 수 있다. 메모리 컨트롤러(1310)는 저장 장치(1300)의 전반적인 작동들을 제어할 수 있다. 특히, 메모리 컨트롤러(1310)는 메모리 장치들(1330, 1350)의 작동들을 제어하여 저장 장치(1300)가 고유의 기능을 수행하도록 할 수 있다.
메모리 장치들(1330, 1350) 각각은 데이터를 저장할 수 있다. 메모리 장치들(1330, 1350)은 메모리 컨트롤러(1310)의 제어에 따라 작동할 수 있다. 메모리 장치들(1330, 1350) 각각은 불휘발성 메모리 장치일 수 있다. 도 1에서, 저장 장치(1300)에 포함되는 메모리 장치들의 개수가 두 개인 것으로 표현되었다. 그러나, 도 1에 나타낸 구성은 본 발명의 이해를 돕기 위한 예시일 뿐이고, 본 발명은 도 1에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)는 하나 이상의 메모리 장치들을 포함할 수 있고, 저장 장치(1300)에 포함되는 메모리 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
저장 장치(1300)는 필요에 따라 도 1에 나타내지 않은 다른 구성 요소들을 더 포함할 수 있다. 예로서, 저장 장치(1300)는 호스트(1100)와의 통신을 위한 인터페이스 회로, 데이터의 입출력을 제어하기 위한 입출력 회로, 데이터를 일시적으로 저장하기 위한 버퍼(Buffer) 메모리 등 중 적어도 하나를 더 포함할 수 있다. 이하의 설명에서, 설명의 편의를 위해, 저장 장치(1300)에 포함되는 메모리 컨트롤러(1310) 및 메모리 장치들(1330, 1350)의 구성들 및 작동들만이 언급된다.
본 발명의 실시 예에서, 메모리 장치들(1330, 1350) 각각은 복수의 메모리 영역 중 적어도 하나를 포함할 수 있다. 즉, 메모리 장치들(1330, 1350) 각각은 하나 이상의 메모리 영역들을 포함할 수 있다. 예로서, 제 1 메모리 장치(1330)는 복수의 메모리 영역(1331, 1332)을 포함할 수 있다. 여기서, 저장 장치(1300)가 플래시 메모리를 포함하는 경우, 메모리 영역은 논리 파티션(Logical Partition) 단위로 관리되거나, 페이지(Page), 블록(Block) 등의 어드레스(Address)에 기초하여 관리될 수 있다.
제 1 메모리 장치(1330) 외의 제 N 메모리 장치(1350)는 제 1 메모리 장치(1330)와 동일하거나 유사한 구성 및 기능들을 가질 수 있다. 따라서, 이하의 설명에서, 제 1 메모리 장치(1330) 외의 제 N 메모리 장치(1350)에 관한 설명은 생략된다.
위에서 언급된 것과 같이, 제 1 메모리 장치(1330)는 메모리 영역들(1331, 1332)을 포함할 수 있다. 본 발명의 실시 예에서, 메모리 영역들(1331, 1332)은 서로 다른 저장 신뢰성 수준(Storing Reliability Level)들을 가질 수 있다. 예로서, 제 1 메모리 장치(1330)의 제 1 메모리 영역(1331)은 가장 높은 저장 신뢰성 수준을 갖고, 제 1 메모리 장치(1330)의 제 2 메모리 영역(1332)은 가장 낮은 저장 신뢰성 수준을 가질 수 있다.
메모리 영역의 저장 신뢰성 수준은 그 메모리 영역이 데이터를 얼마나 신뢰할 수 있도록(Reliable) 저장할 수 있는가를 나타낸다. 메모리 영역의 저장 신뢰성 수준이 높을수록, 그 메모리 영역은 데이터를 더 신뢰할 수 있도록 저장한다. 반면, 메모리 영역의 저장 신뢰성 수준이 낮을수록, 그 메모리 영역은 데이터를 덜 신뢰할 수 있도록 저장한다.
예로서, 제 1 메모리 장치(1330)가 플래시 메모리를 포함하는 장치인 경우, 제 1 메모리 장치(1330)에 포함되는 메모리 셀(Cell)들은 반복적인 프로그램 및 삭제 작동들에 따라 열화된다. 제 1 메모리 장치(1330)에서 적은 횟수의 프로그램 및 삭제 작동들이 수행된 경우, 제 1 메모리 장치(1330)는 데이터를 신뢰할 수 있도록 저장할 수 있다. 반면, 제 1 메모리 장치(1330)에서 많은 횟수의 프로그램 및 삭제 작동들이 수행된 경우, 제 1 메모리 장치(1330)에 저장된 데이터는 신뢰하기 어려울 수 있다.
예로서, 제 1 메모리 장치(1330)에 포함되는 한 메모리 영역에서는 많은 횟수의 프로그램 및 삭제 작동들이 수행되었을 수 있다. 그 메모리 영역(예컨대, 제 2 메모리 영역(1332))은 더 열화된 메모리 셀들을 포함하고 상대적으로 낮은 저장 신뢰성 수준을 가질 수 있다. 반면, 제 1 메모리 장치(1330)에 포함되는 다른 메모리 영역에서는 적은 횟수의 프로그램 및 삭제 작동들이 수행되었을 수 있다. 그 메모리 영역(예컨대, 제 1 메모리 영역(1331))은 덜 열화된 메모리 셀들을 포함하고 상대적으로 높은 저장 신뢰성 수준을 가질 수 있다. 요약하면, 제 1 메모리 장치(1330)는 데이터 저장의 신뢰성에 기초하여 구별되는 메모리 영역들(1331, 1332)을 포함할 수 있다.
실시 예로서, 제 1 메모리 장치(1330)가 플래시 메모리를 포함하는 장치인 경우, 저장 신뢰성 수준은 제 1 메모리 장치(1330)에서 수행된 오류 검출 정정 연산(Error Detection and Correction Operation)들의 결과에 기초하여 결정될 수 있다. 예로서, 기준 개수 이상의 오류들을 발생시킨 메모리 영역은 낮은 저장 신뢰성 수준을 가질 수 있다. 반면, 기준 개수보다 적은 오류들을 발생시킨 메모리 영역은 높은 저장 신뢰성 수준을 가질 수 있다. 기준 개수는 필요에 따라 다른 값을 가질 수 있다.
다른 실시 예로서, 제 1 메모리 장치(1330)가 플래시 메모리를 포함하는 장치인 경우, 저장 신뢰성 수준은 웨어 레벨(Wear Level)에 기초하여 결정될 수 있다. 예로서, 많은 횟수의 프로그램 및 삭제 작동들을 수행하여 기준 값보다 높은 웨어 레벨을 갖는 메모리 영역은 낮은 저장 신뢰성 수준을 가질 수 있다. 반면, 적은 횟수의 프로그램 및 삭제 작동들을 수행하여 기준 값보다 낮은 웨어 레벨을 갖는 메모리 영역은 높은 저장 신뢰성 수준을 가질 수 있다. 기준 값은 필요에 따라 다른 값을 가질 수 있다.
다만, 본 발명은 위 실시 예들에 의해 제한되지 않는다. 메모리 영역의 저장 신뢰성 수준은 다른 기준(Criteria)에 기초하여 결정될 수 있다. 예로서, 저장 신뢰성 수준은 메모리 영역에 저장된 데이터에 대한 접근 패턴에 기초하여 결정될 수 있다. 위 실시 예들은 본 발명의 이해를 돕기 위한 예시일 뿐이다. 메모리 영역의 저장 신뢰성 수준을 결정하기 위해 이용되는 기준은 필요에 따라 다양하게 변경 또는 수정될 수 있다.
도 1에서, 제 1 메모리 장치(1330)에 포함되는 메모리 영역들의 개수가 두 개인 것으로 표현되었다. 그러나, 도 1에 나타낸 구성은 본 발명의 이해를 돕기 위한 예시일 뿐이다. 제 1 메모리 장치(1330)에 포함되는 메모리 영역들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
예로서, 세 개 이상의 저장 신뢰성 수준들에 기초하여 제 1 메모리 장치(1330)가 관리되는 경우, 제 1 메모리 장치(1330)는 세 개 이상의 메모리 영역들을 포함할 수 있다. 나아가, 저장 장치(1300) 또는 제 1 메모리 장치(1330)가 생산된 직후, 제 1 메모리 장치(1330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)만을 포함할 수 있다. 반면, 저장 장치(1300) 또는 제 1 메모리 장치(1330)의 수명이 다한 경우, 제 1 메모리 장치(1330)는 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)만을 포함할 수 있다. 본 발명은 도 1에 나타낸 구성에 의해 제한되지 않는다.
나아가, 도 1에서, 제 1 메모리 영역(1331)을 나타낸 박스가 제 2 메모리 영역(1332)을 나타낸 박스와 동일한 크기를 갖는 것으로 표현되었다. 그러나, 박스의 크기는 메모리 영역의 저장 용량을 나타내기 위한 것은 아니다. 제 1 메모리 장치(1330)에 포함되는 메모리 영역들 각각의 저장 용량은 필요에 따라 다르게 설정되거나 시간의 흐름에 따라 변할 수 있다. 본 발명은 도 1에 의해 제한되지 않는다.
도 2는 본 발명의 실시 예에 따른 저장 장치의 다른 구성을 보여주는 블록도이다. 저장 장치(2300)는 메모리 컨트롤러(2310) 및 복수의 메모리 장치(2330, 2350)를 포함할 수 있다. 실시 예로서, 저장 장치(2300)는 불휘발성 메모리(2360)를 더 포함할 수 있다.
메모리 컨트롤러(2310)의 구성 및 기능들은 도 1의 메모리 컨트롤러(1310)의 구성 및 기능들을 포함할 수 있다. 메모리 컨트롤러(2310)의 구성 및 기능들에 관한 중복되는 설명들은 생략된다.
제 1 메모리 장치(2330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(2331) 및 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(2332)을 포함할 수 있다. 메모리 영역들(2331, 2332)의 구성들 및 기능들은 도 1의 메모리 영역들(1331, 1332)의 구성들 및 기능들을 포함할 수 있다. 메모리 영역들(2331, 2332)의 구성들 및 기능들에 관한 중복되는 설명들은 생략된다.
실시 예로서, 제 1 메모리 장치(2330)는 저장 신뢰성 데이터를 저장하기 위한 신뢰성 데이터 영역(2335)을 더 포함할 수 있다. 저장 신뢰성 데이터는 메모리 영역들(2331, 2332)의 저장 신뢰성 수준들에 관한 정보를 포함하는 데이터이다. 실시 예로서, 제 1 메모리 장치(2330)는 메타데이터(Metadata)를 저장하기 위한 메타데이터 영역(2337)을 더 포함할 수 있다. 메타데이터는 제 1 메모리 장치(2330) 또는 저장 장치(2300)에 저장된 데이터에 관한 정보를 포함하는 데이터이다.
실시 예로서, 메모리 영역들(2331, 2332)을 관리하기 위해, 제 1 메모리 장치(2330)는 메모리 영역들(2331, 2332)의 저장 신뢰성 수준들을 관리할 수 있다. 메모리 영역들(2331, 2332)의 저장 신뢰성 수준들을 관리하기 위해, 제 1 메모리 장치(2330)는 저장 신뢰성 수준들에 관한 저장 신뢰성 데이터를 저장할 수 있다. 제 1 메모리 장치(2330)는 저장 신뢰성 데이터를 참조하여 메모리 영역들(2331, 2332)을 관리할 수 있다.
실시 예로서, 저장 신뢰성 데이터는 신뢰성 데이터 영역(2335)에 저장될 수 있다. 신뢰성 데이터 영역(2335)의 일부 또는 전부는 메모리 영역들(2331, 2332) 중 적어도 하나와 중첩될 수 있다. 그러나, 저장 신뢰성 데이터의 오류를 방지하기 위해, 신뢰성 데이터 영역(2335)은 메모리 영역들(2331, 2332)과 중첩되지 않을 수 있다. 나아가, 가장 높은 중요성을 갖는 메타데이터의 오류를 방지하고 메타데이터 영역(2337)에 포함되는 메모리 셀들의 열화를 방지하기 위해, 신뢰성 데이터 영역(2335)은 메타데이터 영역(2337)과 별도로 제공될 수 있다. 즉, 저장 신뢰성 데이터는 다른 데이터를 저장하지 않은 메모리 영역에 저장될 수 있다.
다른 실시 예로서, 저장 신뢰성 데이터는 불휘발성 메모리(2360)에 저장될 수 있다. 불휘발성 메모리(2360)는 메모리 장치들(2330, 2350)과 별도로 제공될 수 있다. 즉, 저장 신뢰성 데이터는 별도로 제공되는 메모리에 저장될 수 있다. 예로서, 불휘발성 메모리(2360)는 플래시 메모리, PRAM(Phase-change Random Access Memory), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM), 또는 그것들의 조합을 포함할 수 있다. 그러나, 본 발명은 위 예들에 의해 제한되지 않는다.
메모리 영역들(2331, 2332)의 저장 신뢰성 수준들은 메모리 컨트롤러(2310)의 제어에 따라 갱신(Update)될 수 있다. 저장 신뢰성 수준들은 프로그램 및 삭제 작동들, 또는 시간의 흐름에 따라 변할 수 있다. 예로서, 저장 장치(2300)가 플래시 메모리를 포함하는 경우, 메모리 셀들이 열화됨에 따라, 저장 신뢰성 수준들이 낮아질 수 있다. 메모리 컨트롤러(2310)의 제어에 따라, 저장 신뢰성 수준들은 주기적으로 또는 특정 시점마다 갱신되거나, 특정 조건에 기초하여 갱신될 수 있다.
실시 예로서, 저장 신뢰성 수준들은 메모리 영역들(2331, 2332)에 저장된 데이터에 대해 읽기 작동이 수행될 때에 갱신될 수 있다. 예로서, 메모리 영역들(2331, 2332)에 저장된 데이터에 대해 읽기 작동이 수행될 때, 오류 검출 정정 연산이 수행될 수 있다. 오류 검출 정정 연산의 결과에 기초하여, 저장 신뢰성 수준들이 갱신될 수 있다.
다른 실시 예로서, 저장 신뢰성 수준들은 메모리 영역들(2331, 2332)에 저장된 데이터에 대해 삭제 작동이 수행되기 전에 갱신될 수 있다. 예로서, 메모리 영역들(2331, 2332)에 저장된 데이터에 대해 삭제 작동이 수행되기 전, 그 저장된 데이터에 대해 오류 검출 정정 연산이 임의로 수행될 수 있다. 오류 검출 정정 연산의 결과에 기초하여, 저장 신뢰성 수준들이 갱신될 수 있다.
또 다른 실시 예로서, 저장 신뢰성 수준들은 메모리 영역들(2331, 2332)에 저장된 데이터에 대해 삭제 작동이 수행될 때에 갱신될 수 있다. 예로서, 메모리 영역들(2331, 2332)에 대해 삭제 작동이 수행될 때, 메모리 영역에 포함되는 하나 이상의 페이지들 또는 블록들의 웨어 레벨이 변경될 수 있다. 변경된 웨어 레벨에 기초하여, 저장 신뢰성 수준들이 갱신될 수 있다.
갱신된 저장 신뢰성 수준들에 관한 정보를 포함하는 저장 신뢰성 데이터는 신뢰성 데이터 영역(2335) 또는 불휘발성 메모리(2360)에 저장될 수 있다. 불휘발성 메모리(2360)가 이용되는 경우, 저장 신뢰성 데이터를 자주 갱신하기 위해, 불휘발성 메모리(2360)의 수명이 충분히 길 필요가 있다.
다만, 제 1 메모리 장치(2330)는 필요에 따라 도 2에 나타내지 않은 다른 종류의 메모리 영역들을 더 포함할 수 있다. 그리고, 저장 장치(2300)는 도 2에 나타내지 않은 다른 구성 요소들을 더 포함할 수 있다. 도 2에 나타낸 구성 요소들은 단지 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 나아가, 제 1 메모리 장치(2330) 외의 제 N 메모리 장치(2350)는 제 1 메모리 장치(2330)와 동일하거나 유사한 구성 및 기능들을 가질 수 있다. 따라서, 제 1 메모리 장치(2330) 외의 제 N 메모리 장치(2350)에 관한 설명은 생략된다.
도 3은 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 3에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 3에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
호스트(1100)는 저장 장치(1300)로 데이터(HD)를 제공할 수 있다. 데이터(HD)는 호스트(1100)에 의해 생성되고 저장 장치(1300)에 저장될 데이터이다.
실시 예로서, 호스트(1100)는 저장 장치(1300)로 요청 수준 데이터(RLD)를 더 제공할 수 있다. 요청 수준 데이터(RLD)는 데이터(HD)의 요청 신뢰성 수준(Required Reliability Level)에 관한 정보를 포함하는 데이터이다. 데이터(HD)의 요청 신뢰성 수준은 그 데이터(HD)가 얼마나 신뢰할 수 있도록 저장될 필요가 있는가를 나타낸다. 데이터(HD)의 요청 신뢰성 수준이 높을수록, 그 데이터(HD)는 더 신뢰할 수 있도록 저장될 필요가 있다. 반면, 데이터(HD)의 요청 신뢰성 수준이 낮을수록, 그 데이터(HD)는 덜 신뢰할 수 있도록 저장되어도 무방하다.
실시 예로서, 데이터(HD)의 요청 신뢰성 수준은 그 데이터(HD)의 중요도에 기초하여 호스트(1100)의 사용자에 의해 설정될 수 있다. 이 실시 예에서, 호스트(1100)는 데이터(HD)의 요청 신뢰성 수준을 설정하기 위해 이용되는 유저 인터페이스를 포함할 수 있다.
다른 실시 예로서, 데이터(HD)의 요청 신뢰성 수준은 호스트(1100)의 관리 정책에 기초하여 선택될 수 있다. 예로서, 데이터(HD)의 원본 데이터 또는 사본 데이터가 다른 저장 장치 또는 스토리지 시스템에 저장되어 있는 경우(예컨대, 데이터(HD)의 원본 데이터가 클라우드 스토리지(Cloud Storage)에 저장되어 있는 경우, 데이터(HD)가 캐시(Cache) 데이터인 경우 등), 데이터(HD)는 낮은 요청 신뢰성 수준을 가질 수 있다. 데이터(HD)가 손실되더라도, 원본 데이터 또는 사본 데이터를 이용함으로써 데이터(HD)가 복원될 수 있기 때문이다.
반면, 데이터(HD)가 단일의 원본 데이터인 경우(예컨대, 데이터(HD)가 티어링(Tiering) 시스템의 데이터인 경우 등), 데이터(HD)는 높은 요청 신뢰성 수준을 가질 수 있다. 다만, 위 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이다. 데이터(HD)의 요청 신뢰성 수준을 결정하기 위해 이용되는 기준은 필요에 따라 다양하게 변경 또는 수정될 수 있다. 도 16 및 도 17에 대한 설명에서, 다른 예시가 더 언급된다.
데이터(HD) 및 요청 수준 데이터(RLD)는 저장 장치(1300)에 포함되는 복수의 메모리 영역의 일부 또는 전부에 저장될 수 있다. 메모리 컨트롤러(1310)는 데이터(HD) 및 요청 수준 데이터(RLD)를 메모리 영역들의 일부 또는 전부에 저장하기 위해 메모리 장치들을 제어할 수 있다. 예로서, 데이터(HD) 및 요청 수준 데이터(RLD)는 제 1 메모리 장치(1330)에 저장될 수 있다. 다만, 이 예는 본 발명의 이해를 돕기 위한 예시일 뿐이다. 데이터(HD) 및 요청 수준 데이터(RLD)는 저장 장치(1300)에 포함되는 다른 메모리 장치에 저장될 수 있다.
본 발명의 실시 예에서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 그것의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 예로서, 가장 높은 요청 신뢰성 수준을 갖는 제 1 데이터(HD1)는 신뢰할 수 있도록 저장될 필요가 있다. 따라서, 제 1 데이터(HD1)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)에 저장될 수 있다. 반면, 가장 낮은 요청 신뢰성 수준을 갖는 제 2 데이터(HD2)는 상대적으로 덜 신뢰할 수 있도록 저장되어도 무방하다. 따라서, 제 2 데이터(HD2)는 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)에 저장될 수 있다. 실시 예로서, 데이터(HD)의 요청 신뢰성 수준이 높을수록, 그 데이터(HD)는 더 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다.
어떤 경우(예컨대, 저장 장치(1300) 또는 제 1 메모리 장치(1330)가 생산된 직후), 제 1 메모리 장치(1330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)만을 포함할 수 있다. 이 경우, 제 2 데이터(HD2)는 제 1 메모리 영역(1331)에 저장되어도 무방하다.
반면, 어떤 경우(예컨대, 제 1 메모리 장치(1330)의 수명이 다한 경우), 제 1 메모리 장치(1330)는 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)만을 포함할 수 있다. 이 경우, 제 1 데이터(HD1)는 제 2 메모리 영역(1332)에 저장되지 않을 수 있다. 제 1 데이터(HD1)가 제 2 메모리 영역(1332)에 저장되는 경우, 제 1 데이터(HD1)를 신뢰할 수 있도록 저장하기 어렵기 때문이다. 이 경우에 관한 실시 예들은 도 4, 도 5, 및 도 7에 대한 설명에서 언급된다.
실시 예로서, 메모리 컨트롤러(1310)의 제어에 따라, 저장 장치(1300)에 저장된 데이터(HD)에 대해 오류 검출 정정 연산이 수행될 수 있다. 예로서, 저장 장치(1300)에 저장된 데이터(HD)에 대해 읽기 작동이 수행될 때, 호스트(1100)로 올바른 데이터를 제공하기 위해 오류 검출 정정 연산이 수행될 수 있다.
실시 예로서, 저장된 데이터(HD)의 요청 신뢰성 수준이 높을수록, 오류 검출 정정 연산이 더 정밀하게 수행될 수 있다. 예로서, 제 2 데이터(HD2)보다 높은 요청 신뢰성 수준을 갖는 제 1 데이터(HD1)에 대해 수행되는 오류 검출 정정 연산은 제 2 데이터(HD2)에 대해 수행되는 오류 검출 정정 연산보다 정밀하게 수행될 수 있다. 실시 예로서, 호스트(1100)는 데이터(HD)에 대해 수행되는 오류 검출 정정 연산의 정밀도를 설정하기 위해 이용되는 유저 인터페이스를 포함할 수 있다.
메모리 컨트롤러(1310)는 메모리 장치들을 제어하기 위해 구성될 수 있다. 예로서, 메모리 컨트롤러(1310)는 하드웨어로 구현될 수 있다. 메모리 컨트롤러(1310)는 데이터(HD)의 요청 신뢰성 수준을 판별하기 위해 이용되는 로직 회로, 메모리 영역의 저장 신뢰성 수준을 판별하기 위해 이용되는 로직 회로, 데이터(HD)를 적절한 메모리 영역에 저장하기 위해 이용되는 로직 회로 등을 포함할 수 있다. 다른 예로서, 메모리 컨트롤러(1310)는 기계적으로 실행 가능한 명령어(Machine-excutable Instruction)를 실행하도록 구성되는 하나 이상의 프로세서들로 구현될 수 있다. 메모리 컨트롤러(1310)는 메모리 장치들을 제어하기 위해 내장된(Embedded) 명령어, ROM(Read-only Memory)에 저장된 명령어 등을 실행할 수 있다.
도 4는 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 다른 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 4에서, 저장 장치(1300)가 제 1 메모리 장치(1330) 및 제 2 메모리 장치(1340)를 포함하는 것으로 표현되었다. 그리고, 제 2 메모리 장치(1340)가 가장 높은 저장 신뢰성 수준을 갖는 제 3 메모리 영역(1341)만을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 4에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수 및 메모리 장치에 포함되는 메모리 영역들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
어떤 경우(예컨대, 제 1 메모리 장치(1330)의 수명이 다한 경우), 제 1 메모리 장치(1330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)을 포함하지 않을 수 있다. 또는, 제 1 메모리 장치(1330)의 제 1 메모리 영역(1331)에 저장 가능 공간(Available Space)이 없거나 부족할 수 있다. 이 경우, 가장 높은 요청 신뢰성 수준을 갖는 데이터(HD)는 제 1 메모리 장치(1330)의 제 2 메모리 영역(1332)에 저장되지 않을 수 있다. 데이터(HD)가 제 2 메모리 영역(1332)에 저장되는 경우, 데이터(HD)를 신뢰할 수 있도록 저장하기 어렵기 때문이다.
이 경우, 실시 예로서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 제 2 메모리 장치(1340)에서 가장 높은 저장 신뢰성 수준을 갖는 제 3 메모리 영역(1341)에 저장될 수 있다. 실시 예로서, 메모리 컨트롤러(1310)는 메모리 장치들(1330, 1340)의 저장 가능 공간들의 용량을 모니터링(Monitoring)할 수 있다. 이 실시 예에서, 메모리 컨트롤러(1310)는 모니터링 결과에 기초하여 데이터(HD)를 저장하기에 적절한 메모리 장치(예컨대, 제 2 메모리 장치(1340))를 판별할 수 있다.
다른 실시 예로서, 부족한 저장 가능 공간을 포함하는 메모리 장치(예컨대, 제 1 메모리 장치(1330))는 데이터(HD)를 제공받으면 메모리 컨트롤러(1310)로 에러 신호를 리턴(Return)할 수 있다. 이 실시 예에서, 메모리 컨트롤러(1310)는 에러 신호에 응답하여 데이터(HD)를 저장하기에 적절한 다른 메모리 장치(예컨대, 제 2 메모리 장치(1340))를 탐색할 수 있다. 다만, 이 실시 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 4에 대한 설명에서, 가장 높은 요청 신뢰성 수준을 갖는 데이터(HD), 제 1 저장 장치(1330), 및 제 2 저장 장치(1340)가 언급되었다. 그러나, 도 4에 대한 설명에서 언급된 실시 예는 다른 요청 신뢰성 수준을 갖는 데이터 또는 다른 저장 장치들에도 적용될 수 있다. 요약하면, 한 메모리 장치에 포함되고 데이터(HD)의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장 가능 공간이 없거나 부족한 경우, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 다른 메모리 장치에 포함되고 데이터(HD)의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 다른 메모리 영역에 저장될 수 있다.
도 5는 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 또 다른 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 5에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 5에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
위에서 언급된 것과 같이, 어떤 경우(예컨대, 제 1 메모리 장치(1330)의 수명이 다한 경우), 제 1 메모리 장치(1330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)을 포함하지 않을 수 있다. 또는, 제 1 메모리 장치(1330)의 제 1 메모리 영역(1331)에 저장 가능 공간이 없거나 부족할 수 있다.
이 경우, 실시 예로서, 메모리 컨트롤러(1310)의 제어에 따라, 제 1 메모리 영역(1331)의 무효 데이터(Invalid Data)가 삭제될 수 있다. 예로서, 메모리 컨트롤러(1310)는 제 1 메모리 장치(1330)에 포함되는 메모리 영역들의 용량을 모니터링할 수 있다. 메모리 컨트롤러(1310)는 모니터링 결과에 기초하여 무효 데이터를 삭제하기 위해 제 1 메모리 장치(1330)로 트리밍(Trimming) 명령(TRIM)을 제공할 수 있다. 다른 예로서, 부족한 저장 가능 공간을 포함하는 메모리 장치(예컨대, 제 1 메모리 장치(1330))는 데이터(HD)를 제공받으면 메모리 컨트롤러(1310)로 에러 신호를 리턴할 수 있다. 메모리 컨트롤러(1310)는 에러 신호에 응답하여 제 1 메모리 장치(1330)로 트리밍 명령(TRIM)을 제공할 수 있다.
제 1 메모리 장치(1330)로 트리밍 명령(TRIM)이 제공된 경우, 제 1 메모리 영역(1331)의 무효 데이터가 삭제될 수 있다. 제 1 메모리 영역(1331)의 무효 데이터가 삭제된 후, 트리밍된 제 1 메모리 영역(1331')이 생성될 수 있다. 트리밍된 제 1 메모리 영역(1331')은 충분한 저장 가능 공간을 포함할 수 있다. 가장 높은 요청 신뢰성 수준을 갖는 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖는 트리밍된 제 1 메모리 영역(1331')에 저장될 수 있다.
도 5에 대한 설명에서, 가장 높은 요청 신뢰성 수준을 갖는 데이터(HD), 제 1 저장 장치(1330), 및 트리밍 명령이 언급되었다. 그러나, 위 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 도 5에 대한 설명에서 언급된 실시 예는 다른 요청 신뢰성 수준을 갖는 데이터 또는 다른 저장 장치들에도 적용될 수 있다. 나아가, 무효 데이터를 삭제하기 위해 가비지 콜렉션(Garbage Collection) 명령과 같은 다른 명령이 이용될 수 있다. 요약하면, 데이터(HD)의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장 가능 공간이 없거나 부족한 경우, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역의 무효 데이터가 삭제될 수 있다. 무효 데이터가 삭제된 후, 데이터(HD)가 저장될 수 있다.
도 6은 본 발명의 일 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 설명하는 흐름도이다.
S110 단계에서, 저장 장치(1300, 도 1 참조)는 데이터(HD, 도 3 참조) 및 요청 수준 데이터(RLD, 도 3 참조)를 제공받을 수 있다. 데이터(HD) 및 요청 수준 데이터(RLD)는 호스트(1100, 도 1 참조)로부터 제공될 수 있다. 데이터(HD) 및 요청 수준 데이터(RLD)에 관한 설명은 도 3에 대한 설명에서 언급되었다.
S120 단계에서, 메모리 컨트롤러(1310, 도 1 참조)는 S110 단계에서 제공받은 데이터(HD)의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장 가능 공간이 있는지 여부를 판별할 수 있다. 저장 신뢰성 수준에 관한 설명은 도 1 및 도 2에 대한 설명에서 언급되었다. 요청 신뢰성 수준에 관한 설명은 도 3에 대한 설명에서 언급되었다. 저장 가능 공간이 있는 경우, S130 단계가 수행될 수 있다. 반면, 저장 가능 공간이 없거나 부족한 경우, S135 단계가 수행될 수 있다.
S130 단계에서, S110 단계에서 제공받은 데이터가 저장될 수 있다. 데이터(HD)는 그것의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 예로서, 요청 수준 데이터(RLD)는 데이터(HD)와 동일한 메모리 영역 또는 다른 메모리 영역에 저장될 수 있다. 또는, 요청 수준 데이터(RLD)는 저장 신뢰성 데이터와 함께 신뢰성 데이터 영역(2335, 도 2 참조) 또는 불휘발성 메모리(2360, 도 2 참조)에 저장될 수 있다. 다만, 이 예들은 예시들일 뿐이고, 본 발명은 이 예들에 의해 제한되지 않는다.
S135 단계에서, 실시 예로서, S110 단계에서 제공받은 데이터(HD)는 다른 메모리 장치에 포함되고 그것의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 이 실시 예는 도 4에 대한 설명에서 언급되었다. 다른 실시 예로서, 데이터(HD)의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역의 무효 데이터가 삭제될 수 있다. 무효 데이터가 삭제된 후, S110 단계에서 제공받은 데이터가 저장될 수 있다. 이 실시 예는 도 5에 대한 설명에서 언급되었다.
도 7은 본 발명의 일 실시 예에 따라 도 1의 메모리 장치를 관리하는 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 7에서, 저장 장치(1300)가 제 1 메모리 장치(1330) 및 제 N 메모리 장치(1350)를 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 7에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수 및 메모리 장치에 포함되는 메모리 영역들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
데이터(HD, 도 3 참조)는 높은 요청 신뢰성 수준 또는 낮은 신뢰성 수준을 가질 수 있다. 낮은 요청 신뢰성 수준을 갖는 데이터(HD)는 낮은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 그러나, 낮은 요청 신뢰성 수준을 갖는 데이터(HD)는 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장되어도 무방하다. 반면, 높은 요청 신뢰성 수준을 갖는 데이터(HD)는 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 필요가 있다. 따라서, 높은 저장 신뢰성 수준을 갖는 메모리 영역의 총 저장 용량이 관리될 필요가 있다.
예로서, 메모리 장치들(1330, 1350)은 각각 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역들(1331, 1351)을 포함할 수 있다. 실시 예로서, 메모리 컨트롤러(1310)는 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역들(1331, 1351) 각각의 총 저장 용량을 모니터링할 수 있다. 실시 예로서, 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역의 총 저장 용량이 기준 값(REF)보다 작은 경우, 메모리 컨트롤러(1310)의 제어에 따라, 그 메모리 영역을 포함하는 메모리 장치는 데이터(HD)를 저장하기 위해 이용되지 않을 수 있다.
도 7에서, 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)의 총 저장 용량은 기준 값(REF)보다 클 수 있다. 따라서, 제 1 메모리 영역(1331)을 포함하는 제 1 메모리 장치(1330)는 데이터(HD)를 저장하기 위해 이용될 수 있다. 반면, 가장 높은 저장 신뢰성 수준을 갖는 제 4 메모리 영역(1351)의 총 저장 용량은 기준 값(REF)보다 작을 수 있다. 제 4 메모리 영역(1351)을 포함하는 제 N 메모리 장치(1350)에 가장 높은 요청 신뢰성 수준을 갖는 데이터(HD)를 신뢰할 수 있도록 저장하는 것이 조만간 어려워질 수 있다. 따라서, 제 4 메모리 영역(1351)을 포함하는 제 N 메모리 장치(1350)는 데이터(HD)를 저장하기 위해 이용되지 않을 수 있다.
요약하면, 특정 메모리 장치에 포함되고 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역의 총 저장 용량이 기준 값(REF)보다 작은 경우, 메모리 컨트롤러(1310)의 제어에 따라, 그 특정 메모리 장치는 데이터(HD)를 저장하기 위해 이용되지 않을 수 있다. 그 특정 메모리 장치는 낮은 요청 신뢰성 수준을 갖는 데이터(HD)만 저장하거나, 폐기(Discard)될 수 있다. 이를 위해, 메모리 컨트롤러(1310)는 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역들 각각의 총 저장 용량을 주기적으로 또는 특정 시점마다 모니터링하거나, 특정 조건에 기초하여 모니터링할 수 있다. 기준 값은 필요에 따라 다른 값을 가질 수 있다.
실시 예로서, 메모리 컨트롤러(1310)의 제어에 따라, 메모리 영역들(1331, 1332, 1351, 1352) 각각의 총 저장 용량에 관한 정보(CAP)가 호스트(1100)로 제공될 수 있다. 호스트(1100)의 사용자는 제공된 정보(CAP)에 기초하여 메모리 영역들(1331, 1332, 1351, 1352) 각각의 저장 용량을 모니터링할 수 있다. 이 실시 예에서, 호스트(1100)는 제공된 정보(CAP)에 기초하여 특정 메모리 장치가 폐기될 것인지 여부를 결정하기 위해 이용되는 유저 인터페이스를 포함할 수 있다.
도 8은 본 발명의 일 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 8에서, 저장 장치(1300, 도 1 참조)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그리고, 두 개의 요청 신뢰성 수준들 및 두 개의 저장 신뢰성 수준들이 이용되는 것으로 표현되었다. 그러나, 본 발명은 도 8에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수, 메모리 장치에 포함되는 메모리 영역들의 개수, 요청 신뢰성 수준들의 개수, 및 저장 신뢰성 수준들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
도 8은 시간의 흐름에 따라 데이터(HD1, HD2)를 관리하는 과정을 보여준다. 먼저, 시각 't1'에서, 제 1 메모리 장치(1330)에 포함되는 메모리 셀들은 적게 열화되어 있다. 따라서, 제 1 메모리 장치(1330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)만을 포함할 수 있다. 예로서, 제 1 메모리 영역(1331)은 가장 높은 요청 신뢰성 수준을 갖는 제 1 데이터(HD1) 및 가장 낮은 요청 신뢰성 수준을 갖는 제 2 데이터(HD2)를 저장할 수 있다.
다음으로, 시각 't2'에서, 제 1 메모리 장치(1330)에 포함되는 메모리 셀들의 일부가 많이 열화되었다. 따라서, 제 1 메모리 장치(1330)는 제 1 메모리 영역(1331)은 물론, 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)을 포함할 수 있다. 예로서, 제 2 메모리 영역(1332)이 생성됨에 따라, 제 1 데이터(HD1)의 일부분(HD1')이 제 2 메모리 영역(1332)에 속할 수 있다. 그러나, 제 1 데이터(HD1)는 가장 높은 요청 신뢰성 수준을 갖는다. 따라서, 제 1 데이터(HD1)가 제 2 메모리 영역(1332)에 속하는 경우, 제 1 데이터(HD1)는 신뢰할 수 있도록 저장되기 어렵다.
이후, 시각 't3'에서, 실시 예로서, 메모리 컨트롤러(1310, 도 1 참조)의 제어에 따라, 제 1 데이터(HD1)의 일부분(HD1')은 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)으로 이동될 수 있다. 나아가, 시각 't4'에서, 실시 예로서, 메모리 컨트롤러(1310)의 제어에 따라, 제 2 데이터(HD2)는 제 2 메모리 영역(1332)으로 이동될 수 있다. 결과적으로, 제 1 데이터(HD1)는 신뢰할 수 있도록 저장될 수 있다. 나아가, 제 1 메모리 영역(1331)의 저장 가능 공간이 확보될 수 있다.
요약하면, 특정 데이터를 저장한 메모리 영역의 저장 신뢰성 수준이 다른 저장 신뢰성 수준으로 변경되는 경우, 메모리 컨트롤러(1310)의 제어에 따라, 그 특정 데이터는 그것의 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 다른 메모리 영역으로 이동될 수 있다. 도 8에 대한 설명에서 언급된 실시 예에 따르면, 한 메모리 영역은 동일한 요청 신뢰성 수준을 갖는 데이터를 저장할 수 있다.
예로서, 데이터(HD1, HD2)를 이동시키는 과정은 저장 신뢰성 수준이 변경되자마자 수행될 수 있다. 또는, 데이터(HD1, HD2)를 이동시키는 과정은 주기적으로 또는 특정 시점마다 수행되거나, 특정 조건에 기초하여 수행될 수 있다. 예로서, 저장 장치(1300) 또는 제 1 메모리 장치(1330)에서 가비지 콜렉션 연산이 수행될 때, 데이터(HD1, HD2)가 이동될 수 있다. 다만, 위 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 8에서, 데이터(HD1, HD2)가 동일한 메모리 장치(예컨대, 제 1 메모리 장치(1330)) 내에서 이동되는 것으로 표현되었다. 그러나, 필요에 따라, 데이터(HD1, HD2)는 다른 메모리 장치로 이동될 수 있다.
도 9는 본 발명의 일 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 다른 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 9에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그리고, 제 1 메모리 장치(1330)가 두 개의 메모리 영역들(1331, 1332)을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 9에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수 및 메모리 장치에 포함되는 메모리 영역들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
실시 예로서, 호스트(1100)는 저장 장치(1300)로 변경 명령(CC1)을 제공할 수 있다. 변경 명령(CC1)은 데이터(HD)의 요청 신뢰성 수준을 변경하기 위해 이용되는 명령이다. 호스트(1100)로부터 변경 명령(CC1)이 제공된 경우, 변경의 대상인 데이터(HD)의 요청 신뢰성 수준은 다른 요청 신뢰성 수준으로 변경될 수 있다. 이 실시 예에서, 호스트(1100)는 데이터(HD)의 요청 신뢰성 수준을 변경하기 위해 이용되는 유저 인터페이스를 포함할 수 있다
예로서, 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)은 가장 낮은 요청 신뢰성 수준을 갖는 데이터(HD)를 저장할 수 있다. 호스트(1100)는 데이터(HD)의 가장 낮은 요청 신뢰성 수준을 가장 높은 요청 신뢰성 수준으로 변경하기 위한 변경 명령(CC1)을 저장 장치(1300)로 제공할 수 있다. 변경 명령(CC1)에 응답하여, 데이터(HD)의 요청 신뢰성 수준이 변경될 수 있다.
위에서 언급된 것과 같이, 데이터(HD)의 요청 신뢰성 수준에 관한 정보를 포함하는 요청 수준 데이터(RLD, 도 3 참조)가 저장 장치(1300) 또는 불휘발성 메모리(2360, 도 2 참조)에 저장될 수 있다. 변경 명령(CC1)이 제공된 경우, 메모리 컨트롤러(1310)의 제어에 따라, 요청 수준 데이터(RLD)는 다른 요청 신뢰성 수준(즉, 새 요청 신뢰성 수준)에 관한 정보를 포함하는 새 요청 수준 데이터로 변경(즉, 갱신)될 수 있다.
실시 예로서, 데이터(HD)의 요청 신뢰성 수준이 변경되는 경우, 데이터(HD)는 새 요청 신뢰성 수준에 대응하는 다른 저장 신뢰성 수준을 갖는 메모리 영역으로 이동될 수 있다. 예로서, 가장 높은 요청 신뢰성 수준을 갖도록 변경된 데이터(HD)는 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)에서 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)으로 이동될 수 있다. 따라서, 데이터(HD)는 신뢰할 수 있도록 저장될 수 있다.
예로서, 데이터(HD)를 이동시키는 과정은 요청 신뢰성 수준이 변경되자마자 수행될 수 있다. 또는, 데이터(HD)를 이동시키는 과정은 주기적으로 또는 특정 시점마다 수행되거나, 특정 조건에 기초하여 수행될 수 있다. 예로서, 저장 장치(1300) 또는 제 1 메모리 장치(1330)에서 가비지 콜렉션 연산이 수행될 때, 데이터(HD)가 이동될 수 있다. 다만, 위 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 9에서, 데이터(HD)가 동일한 메모리 장치(예컨대, 제 1 메모리 장치(1330)) 내에서 이동되는 것으로 표현되었다. 그러나, 필요에 따라, 데이터(HD)는 다른 메모리 장치로 이동될 수 있다. 나아가, 도 9에 대한 설명에서 언급된 실시 예는 데이터(HD)의 요청 신뢰성 수준이 가장 낮은 것에서 가장 높은 것으로 변경되는 경우 외의 경우에도 적용될 수 있다. 도 9는 본 발명의 이해를 돕기 위한 예시일 뿐이다.
도 10은 본 발명의 다른 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 10에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 10에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
호스트(1100)는 저장 장치(1300)로 데이터(HD)를 제공할 수 있다. 실시 예로서, 호스트(1100)는 저장 장치(1300)로 보존 시간 데이터(RTD)를 더 제공할 수 있다. 보존 시간 데이터(RTD)는 데이터(HD)의 요청 보존 시간(Required Retention Time)에 관한 정보를 포함하는 데이터이다. 데이터(HD)의 요청 보존 시간은 그 데이터(HD)가 보존될 필요가 있는 시간을 나타낸다.
예로서, 데이터(HD)의 요청 보존 시간이 길수록, 그 데이터(HD)는 더 오래 보존될 수 있다. 반면, 데이터(HD)의 요청 보존 시간이 짧을수록, 그 데이터(HD)는 상대적으로 짧게 보존될 수 있다. 더 오래 보존될 필요가 있는 데이터(HD)는 더 긴 요청 보존 시간을 가질 수 있다.
실시 예로서, 데이터(HD)의 요청 보존 시간은 호스트(1100)의 사용자에 의해 설정될 수 있다. 이 실시 예에서, 호스트(1100)는 데이터(HD)의 요청 보존 시간을 설정하기 위해 이용되는 유저 인터페이스를 포함할 수 있다. 예로서, 데이터(HD)를 오래 보존하고자 하는 사용자는 유저 인터페이스를 통해 긴 요청 보존 시간을 입력할 수 있다. 다른 실시 예로서, 데이터(HD)의 요청 보존 시간은 호스트(1100)의 관리 정책에 기초하여 설정될 수 있다.
데이터(HD) 및 보존 시간 데이터(RTD)는 저장 장치(1300)에 포함되는 복수의 메모리 영역의 일부 또는 전부에 저장될 수 있다. 메모리 컨트롤러(1310)는 데이터(HD) 및 보존 시간 데이터(RTD)를 메모리 영역들(1331, 1332)의 일부 또는 전부에 저장하기 위해 메모리 장치들을 제어할 수 있다. 예로서, 데이터(HD) 및 보존 시간 데이터(RTD)는 제 1 메모리 장치(1330)에 저장될 수 있다. 다만, 이 예는 본 발명의 이해를 돕기 위한 예시일 뿐이다. 데이터(HD) 및 보존 시간 데이터(RTD)는 저장 장치(1300)에 포함되는 다른 메모리 장치에 저장될 수 있다.
본 발명의 실시 예에서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)에 저장될 수 있다. 요청 보존 시간은 데이터(HD)가 보존될 필요가 있는 시간을 나타내기 때문에, 요청 보존 시간이 만료되기 전에는 데이터(HD)가 신뢰할 수 있도록 저장될 필요가 있다. 따라서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 요청 보존 시간이 만료되기 전까지 제 1 메모리 영역(1331)에 저장될 수 있다.
실시 예로서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 데이터(HD)는 저장 장치(1300)에서 삭제될 수 있다. 다른 실시 예로서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 데이터(HD)는 낮은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 이 실시 예들에 관한 설명은 도 13에 대한 설명에서 언급된다. 다만, 이 실시 예들은 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 제 1 메모리 영역(1331)에 저장 가능 공간이 없거나 부족한 경우, 도 4에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 제 1 메모리 장치(1330)가 아닌 다른 메모리 장치에 저장될 수 있다. 실시 예로서, 제 1 메모리 영역(1331)에 저장 가능 공간이 없거나 부족한 경우, 도 5에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 제 1 메모리 영역(1331)의 무효 데이터가 삭제될 수 있다. 실시 예로서, 제 1 메모리 영역(1331)의 총 저장 용량이 기준 값보다 작은 경우, 도 7에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 제 1 메모리 장치(1330)는 데이터(HD)를 저장하기 위해 이용되지 않을 수 있다.
도 11은 본 발명의 다른 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 설명하는 흐름도이다.
S210 단계에서, 저장 장치(1300, 도 1 참조)는 데이터(HD, 도 10 참조) 및 보존 시간 데이터(RTD, 도 10 참조)를 제공받을 수 있다. 데이터(HD) 및 보존 시간 데이터(RTD)는 호스트(1100, 도 1 참조)로부터 제공될 수 있다. 보존 시간 데이터(RTD)에 관한 설명은 도 10에 대한 설명에서 언급되었다.
S220 단계에서, 메모리 컨트롤러(1310, 도 1 참조)의 제어에 따라, 적절한 보존 시간 데이터(RTD)가 제공되었는지 여부가 판별될 수 있다. 좀 더 구체적으로, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)의 요청 보존 시간이 메타데이터의 보존 시간보다 긴지 여부가 판별될 수 있다. 또는, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)의 요청 보존 시간이 메모리 장치 또는 저장 장치(1300)의 예상 잔여 수명보다 긴지 여부가 판별될 수 있다.
위에서 언급된 것과 같이, 메타데이터는 메모리 장치 또는 저장 장치(1300)에 저장된 데이터에 관한 정보를 포함하기 때문에, 메타데이터가 손실 또는 손상된 경우 데이터(HD)가 적절히 읽히지 않을 수 있다. 나아가, 데이터(HD)의 요청 보존 시간이 메모리 장치 또는 저장 장치(1300)의 예상 잔여 수명보다 긴 경우, 데이터(HD)는 요청 보존 시간이 만료되기 전까지 신뢰할 수 있도록 저장되기 어렵다. 따라서, 데이터(HD)의 요청 보존 시간은 메타데이터의 보존 시간, 또는 메모리 장치 또는 저장 장치(1300)의 예상 잔여 수명보다 길지 않을 필요가 있다. 이 실시 예를 구현하기 위해, 메타데이터의 보존 시간, 또는 메모리 장치 또는 저장 장치(1300)의 예상 잔여 수명이 관리될 필요가 있다.
적절한 보존 시간 데이터(RTD)가 제공된 경우, S230 단계가 수행될 수 있다. 반면, 적절한 보존 시간 데이터(RTD)가 제공되지 않은 경우, S235 단계가 수행될 수 있다.
S230 단계에서, S210 단계에서 제공받은 데이터가 저장될 수 있다. 실시 예로서, 데이터(HD)는 요청 보존 시간이 만료되기 전까지 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 예로서, 보존 시간 데이터(RTD)는 데이터(HD)와 동일한 메모리 영역 또는 다른 메모리 영역에 저장될 수 있다. 또는, 보존 시간 데이터(RTD)는 저장 신뢰성 데이터와 함께 신뢰성 데이터 영역(2335, 도 2 참조) 또는 불휘발성 메모리(2360, 도 2 참조)에 저장될 수 있다. 다만, 이 예들은 예시들일 뿐이고, 본 발명은 이 예들에 의해 제한되지 않는다.
S235 단계에서, 에러 신호가 리턴될 수 있다. 예로서, 데이터(HD)의 요청 보존 시간이 메타데이터의 보존 시간 또는 저장 장치(1300)의 예상 잔여 수명보다 긴 경우, 메모리 컨트롤러(1310)의 제어에 따라, 호스트(1100)로 에러 신호가 리턴될 수 있다. 실시 예로서, 에러를 확인한 호스트(1100)의 사용자는 유저 인터페이스를 통해 다른 값을 갖는 요청 보존 시간을 입력할 수 있다. 예로서, 데이터(HD)의 요청 보존 시간이 메모리 장치의 예상 잔여 수명보다 긴 경우, 메모리 컨트롤러(1310)로 에러 신호가 리턴될 수 있다. 실시 예로서, 메모리 컨트롤러(1310)는 에러 신호에 응답하여 데이터(HD)의 요청 보존 시간을 만족시키는 다른 메모리 장치(즉, 데이터(HD)의 요청 보존 시간보다 긴 예상 잔여 수명을 갖는 메모리 장치)를 탐색할 수 있다. 다만, 이 예들 및 실시 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 12는 본 발명의 다른 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 12에서, 저장 장치(1300, 도 1 참조)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그리고, 두 개의 저장 신뢰성 수준들이 이용되는 것으로 표현되었다. 그러나, 본 발명은 도 12에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수, 메모리 장치에 포함되는 메모리 영역들의 개수, 및 저장 신뢰성 수준들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
도 12는 시간의 흐름에 따라 데이터(HD)를 관리하는 과정을 보여준다. 먼저, 시각 't1'에서, 제 1 메모리 장치(1330)에 포함되는 메모리 셀들은 적게 열화되어 있다. 따라서, 제 1 메모리 장치(1330)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)만을 포함할 수 있다. 제 1 메모리 영역(1331)은 데이터(HD)를 저장할 수 있다.
다음으로, 시각 't2'에서, 제 1 메모리 장치(1330)에 포함되는 메모리 셀들의 일부가 많이 열화되었다. 따라서, 제 1 메모리 장치(1330)는 제 1 메모리 영역(1331)은 물론, 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)을 포함할 수 있다. 예로서, 제 2 메모리 영역(1332)이 생성됨에 따라, 데이터(HD)의 일부분(HD')이 제 2 메모리 영역(1332)에 속할 수 있다. 데이터(HD)가 제 2 메모리 영역(1332)에 속하는 경우, 데이터(HD)는 신뢰할 수 있도록 저장되기 어렵다.
이후, 시각 't3'에서, 실시 예로서, 메모리 컨트롤러(1310, 도 1 참조)의 제어에 따라, 데이터(HD)의 일부분(HD')은 제 1 메모리 영역(1331)으로 이동될 수 있다. 결과적으로, 데이터(HD)는 신뢰할 수 있도록 저장될 수 있다. 요약하면, 특정 데이터의 요청 보존 시간이 만료되기 전에 그 특정 데이터를 저장한 메모리 영역의 저장 신뢰성 수준이 낮아진 경우, 메모리 컨트롤러(1310)의 제어에 따라, 그 특정 데이터는 가장 높은 저장 신뢰성 수준을 갖는 다른 메모리 영역으로 이동될 수 있다.
예로서, 데이터(HD)를 이동시키는 과정은 저장 신뢰성 수준이 변경되자마자 수행될 수 있다. 또는, 데이터(HD)를 이동시키는 과정은 주기적으로 또는 특정 시점마다 수행되거나, 특정 조건에 기초하여 수행될 수 있다. 예로서, 저장 장치(1300) 또는 제 1 메모리 장치(1330)에서 가비지 콜렉션 연산이 수행될 때, 데이터(HD)가 이동될 수 있다. 다만, 위 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 12에서, 데이터(HD)가 동일한 메모리 장치(예컨대, 제 1 메모리 장치(1330)) 내에서 이동되는 것으로 표현되었다. 그러나, 필요에 따라, 데이터(HD)는 다른 메모리 장치로 이동될 수 있다.
도 13은 본 발명의 다른 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 다른 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 13에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그리고, 제 1 메모리 장치(1330)가 두 개의 메모리 영역들(1331, 1332)을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 13에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수 및 메모리 장치에 포함되는 메모리 영역들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
시간이 흐름에 따라, 데이터(HD)의 요청 보존 시간이 만료될 수 있다. 실시 예로서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)로의 접근이 차단될 수 있다. 예로서, 데이터(HD)의 요청 보존 시간은 저장 서비스를 제공하기 위한 기간에 대응할 수 있다. 이 예에서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 저장 서비스를 중단하기 위해 데이터(HD)로의 접근이 차단될 수 있다.
실시 예로서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 메모리 컨트롤러(1310)의 제어에 따라, 만료 정보(EXP)가 호스트(1100)로 제공될 수 있다. 만료 정보(EXP)는 데이터(HD)의 요청 보존 시간의 만료를 알리기 위한 정보이다. 실시 예로서, 만료 정보(EXP)는 데이터(HD)의 요청 보존 시간이 만료된 때에 호스트(1100)로 제공될 수 있다. 다른 실시 예로서, 만료 정보(EXP)는 호스트(1100)가 데이터(HD)로의 접근을 요청한 때에 호스트(1100)로 제공될 수 있다. 다만, 이 실시 예들은 본 발명을 제한하기 위한 것은 아니다. 만료 정보(EXP)의 제공은 필요에 따라 다양하게 변경 또는 수정될 수 있다.
실시 예로서, 데이터(HD)의 요청 보존 시간이 만료되더라도, 호스트(1100)로 만료 정보(EXP)가 제공되기 전까지 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)에 그대로 저장될 수 있다. 만료 정보(EXP)가 호스트(1100)로 제공된 후, 호스트(1100)의 사용자의 판단 또는 호스트(1100)의 관리 정책에 따라 데이터(HD)가 더 관리될 수 있다.
다른 실시 예로서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖지 않는 메모리 영역으로 이동될 수 있다. 데이터(HD)의 요청 보존 시간이 만료된 경우, 데이터(HD)는 신뢰할 수 있도록 저장되지 않아도 무방하다. 예로서, 데이터(HD)의 요청 보존 시간이 만료된 경우, 데이터(HD)는 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)으로 이동될 수 있다. 이 실시 예에 따르면, 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역(예컨대, 제 1 메모리 영역(1331))의 저장 가능 공간이 확보될 수 있다. 다만, 이 실시 예는 본 발명을 제한하기 위한 것은 아니다. 만료된 요청 보존 시간을 갖는 데이터(HD)의 관리 및 이동은 필요에 따라 다양하게 변경 또는 수정될 수 있다.
위 실시 예들과 달리, 데이터(HD)의 요청 보존 시간이 만료된 경우, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 저장 장치(1300)에서 바로 삭제될 수 있다. 그러나, 데이터(HD)가 바로 삭제되는 경우, 데이터(HD)를 계속 저장하기 위한 요청이 지원되지 못할 수 있다. 데이터(HD)의 요청 보존 시간이 만료되더라도 데이터(HD)가 저장 장치(1300)에 특정 시간 동안 저장되는 경우, 도 14에 대한 설명에서 언급될 것과 같이, 데이터(HD)를 계속 저장하기 위한 요청(즉, 데이터(HD)의 요청 보존 시간을 갱신하기 위한 요청)이 지원될 수 있다. 데이터(HD)의 요청 보존 시간이 만료된 후 데이터(HD)를 저장 장치(1300)에 저장하기 위한 특정 시간은 필요에 따라 다른 값을 가질 수 있다.
도 14는 본 발명의 다른 실시 예에 따라 도 1의 메모리 영역에 저장된 데이터를 관리하는 또 다른 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 14에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그리고, 제 1 메모리 장치(1330)가 두 개의 메모리 영역들(1331, 1332)을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 14에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수 및 메모리 장치에 포함되는 메모리 영역들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
실시 예로서, 호스트(1100)는 저장 장치(1300)로 변경 명령(CC2)을 제공할 수 있다. 변경 명령(CC2)은 데이터(HD)의 요청 보존 시간을 변경하기 위해 이용되는 명령이다. 호스트(1100)로부터 변경 명령(CC2)이 제공된 경우, 변경 명령(CC2)에 응답하여, 변경의 대상인 데이터(HD)의 요청 보존 시간의 값이 변경될 수 있다. 예로서, 데이터(HD)의 요청 보존 시간을 변경함으로써, 데이터(HD)의 요청 보존 시간이 연장되거나 단축될 수 있다. 또는, 데이터(HD)의 요청 보존 시간이 만료되었더라도, 데이터(HD)의 요청 보존 시간이 갱신될 수 있다. 이 실시 예에서, 호스트(1100)는 데이터(HD)의 요청 보존 시간을 변경하기 위해 이용되는 유저 인터페이스를 포함할 수 있다
예로서, 만료된 요청 보존 시간을 갖는 데이터(HD)가 제 1 메모리 장치(1330)에 저장되어 있을 수 있다. 특히, 도 13에 대한 설명에서 언급된 실시 예에 따르면, 만료된 요청 보존 시간을 갖는 데이터(HD)는 가장 낮은 저장 신뢰성 수준을 갖는 제 2 메모리 영역(1332)에 저장되어 있을 수 있다. 호스트(1100)는 데이터(HD)의 요청 보존 시간을 갱신하기 위한 변경 명령(CC2)을 저장 장치(1300)로 제공할 수 있다. 변경 명령(CC2)에 응답하여, 데이터(HD)의 요청 보존 시간이 갱신될 수 있다.
실시 예로서, 데이터(HD)의 요청 보존 시간이 갱신되는 경우, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역(예컨대, 제 1 메모리 영역(1331))으로 이동될 수 있다. 따라서, 데이터(HD)는 신뢰할 수 있도록 저장될 수 있다.
예로서, 데이터(HD)를 이동시키는 과정은 요청 보존 시간이 변경되자마자 수행될 수 있다. 또는, 데이터(HD)를 이동시키는 과정은 주기적으로 또는 특정 시점마다 수행되거나, 특정 조건에 기초하여 수행될 수 있다. 예로서, 저장 장치(1300) 또는 제 1 메모리 장치(1330)에서 가비지 콜렉션 연산이 수행될 때, 데이터(HD)가 이동될 수 있다. 다만, 위 예들은 본 발명의 이해를 돕기 위한 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 14에서, 데이터(HD)가 동일한 메모리 장치(예컨대, 제 1 메모리 장치(1330)) 내에서 이동되는 것으로 표현되었다. 그러나, 필요에 따라, 데이터(HD)는 다른 메모리 장치로 이동될 수 있다. 도 14는 본 발명의 이해를 돕기 위한 예시일 뿐이다.
도 15는 본 발명의 또 다른 실시 예에 따라 도 1의 저장 장치에 데이터를 저장하는 과정을 보여주는 개념도이다. 설명의 편의를 위해, 도 15에서, 저장 장치(1300)가 제 1 메모리 장치(1330)만을 포함하는 것으로 표현되었다. 그러나, 본 발명은 도 15에 나타낸 구성에 의해 제한되지 않는다. 저장 장치(1300)에 포함되는 메모리 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다.
호스트(1100)는 저장 장치(1300)로 데이터(HD)를 제공할 수 있다. 실시 예로서, 호스트(1100)는 저장 장치(1300)로 요청 수준 데이터(RLD)를 더 제공할 수 있다. 위에서 언급된 것과 같이, 요청 수준 데이터(RLD)는 데이터(HD)의 요청 신뢰성 수준에 관한 정보를 포함하는 데이터이다. 실시 예로서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)의 요청 신뢰성 수준에 대응하는 보존 시간이 선택될 수 있다. 데이터(HD)의 보존 시간은 그 데이터(HD)가 보존될 시간을 나타낸다.
실시 예로서, 데이터(HD)의 요청 신뢰성 수준이 높을수록, 더 긴 보존 시간이 선택될 수 있다. 높은 요청 신뢰성 수준을 갖는 데이터(HD)는 오래 보존될 수 있다. 반면, 데이터(HD)의 요청 신뢰성 수준이 낮을수록, 상대적으로 짧은 보존 시간이 선택될 수 있다. 낮은 요청 신뢰성 수준을 갖는 데이터(HD)는 상대적으로 짧게 보존될 수 있다. 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)의 요청 신뢰성 수준이 높을수록, 보존 시간은 더 긴 값을 갖도록 선택될 수 있다.
실시 예로서, 메모리 컨트롤러(1310)는 보존 시간을 선택하기 위해 관계 표(RT)를 참조할 수 있다. 관계 표(RT)는 데이터(HD)의 요청 신뢰성 수준과 보존 시간 사이의 대응 관계에 관한 정보를 포함할 수 있다. 관계 표(RT)에 포함되는 정보는 저장 장치(1300)의 메모리 영역 또는 불휘발성 메모리(2360)에 저장될 수 있으나, 본 발명은 여기에 한정되지 않는다.
예로서, 데이터(HD)의 가장 높은 요청 신뢰성 수준은 10년의 보존 시간에 대응하고, 데이터(HD)의 가장 낮은 요청 신뢰성 수준은 1년의 보존 시간에 대응할 수 있다. 이 예에서, 가장 높은 요청 신뢰성 수준을 갖는 데이터(HD)는 10년 동안 저장되고, 가장 낮은 요청 신뢰성 수준을 갖는 데이터(HD)는 1년 동안 저장될 수 있다. 다만, 이 실시 예는 본 발명의 이해를 돕기 위한 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
예로서, 도 15에서, 가장 높은 요청 신뢰성 수준을 갖는 제 1 데이터(HD1)가 호스트(1100)로부터 제공된다. 메모리 컨트롤러(1310)의 제어에 따라, 관계 표(RT)를 참조하여, 가장 높은 요청 신뢰성 수준에 대응하는 보존 시간(예컨대, 10년)이 선택된다. 메모리 컨트롤러(1310)의 제어에 따라, 제 1 데이터(HD1)는 보존 시간 동안(예컨대, 10년 동안) 저장 장치(1300)에 저장될 수 있다.
데이터(HD), 요청 수준 데이터(RLD), 및 보존 시간에 관한 정보를 포함하는 보존 시간 데이터는 저장 장치(1300)에 포함되는 복수의 메모리 영역의 일부 또는 전부에 저장될 수 있다. 메모리 컨트롤러(1310)는 데이터(HD), 요청 수준 데이터(RLD), 및 보존 시간 데이터를 메모리 영역들의 일부 또는 전부에 저장하기 위해 메모리 장치들을 제어할 수 있다. 예로서, 데이터(HD), 요청 수준 데이터(RLD), 및 보존 시간 데이터는 제 1 메모리 장치(1330)에 저장될 수 있다. 다만, 이 예는 본 발명의 이해를 돕기 위한 예시일 뿐이다. 데이터(HD), 요청 수준 데이터(RLD), 및 보존 시간 데이터는 저장 장치(1300)에 포함되는 다른 메모리 장치에 저장될 수 있다.
본 발명의 실시 예에서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖는 제 1 메모리 영역(1331)에 저장될 수 있다. 보존 시간은 데이터(HD)가 보존될 시간을 나타내기 때문에, 보존 시간이 만료되기 전에는 데이터(HD)가 신뢰할 수 있도록 저장될 필요가 있다. 따라서, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 보존 시간이 만료되기 전까지 제 1 메모리 영역(1331)에 저장될 수 있다.
실시 예로서, 제 1 메모리 영역(1331)에 저장 가능 공간이 없거나 부족한 경우, 도 4에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 제 1 메모리 장치(1330)가 아닌 다른 메모리 장치에 저장될 수 있다. 실시 예로서, 제 1 메모리 영역(1331)에 저장 가능 공간이 없거나 부족한 경우, 도 5에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 제 1 메모리 영역(1331)의 무효 데이터가 삭제될 수 있다. 실시 예로서, 제 1 메모리 영역(1331)의 총 저장 용량이 기준 값보다 작은 경우, 도 7에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 제 1 메모리 장치(1330)는 데이터(HD)를 저장하기 위해 이용되지 않을 수 있다.
실시 예로서, 데이터(HD)의 보존 시간이 만료되기 전에 데이터(HD)를 저장한 메모리 영역의 저장 신뢰성 수준이 낮아진 경우, 도 12에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 가장 높은 저장 신뢰성 수준을 갖는 다른 메모리 영역으로 이동될 수 있다. 실시 예로서, 데이터(HD)의 요청 신뢰성 수준을 변경함으로써 데이터(HD)의 보존 시간이 변경되는 경우, 도 13 및 도 14에 대한 설명에서 언급된 것과 같이, 메모리 컨트롤러(1310)의 제어에 따라, 데이터(HD)는 다른 메모리 영역으로 이동될 수 있다.
실시 예로서, 데이터(HD)의 보존 시간이 만료된 경우, 데이터(HD)는 저장 장치(1300)에서 삭제될 수 있다. 다른 실시 예로서, 데이터(HD)의 보존 시간이 만료된 경우, 데이터(HD)는 낮은 저장 신뢰성 수준을 갖는 메모리 영역으로 이동될 수 있다. 이 실시 예들은 도 13에 대한 설명에서 언급되었다.
도 16 및 도 17은 본 발명의 실시 예에 따른 저장 장치를 이용함으로써 얻어지는 예시적인 효과를 보여주는 개념도이다. 예로서, 도 16 및 도 17에서, 데이터로서 3차원 영상 데이터가 저장되는 경우가 설명된다. 그러나, 도 16 및 도 17에서 언급되는 예는 본 발명의 이해를 돕기 위한 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 본 발명은 다른 다양한 종류의 데이터를 저장하기 위해 이용될 수 있다.
3차원 영상 데이터는 객체를 표현하기 위해 이용되는 점 데이터(Vertex Data) 및 면 데이터(Polygon Data)를 포함한다. 3차원 영상 데이터가 많은 양의 점 데이터 및 면 데이터를 포함할수록, 객체가 더 정밀하게 표현된다. 3차원 영상 데이터는 객체의 개괄적인 구조를 표현하기 위해 이용되는 데이터 및 객체의 세부적인 구조를 표현하기 위해 이용되는 데이터를 포함할 수 있다.
객체의 개괄적인 구조를 표현하기 위해 이용되는 데이터는 객체를 표현하기 위해 반드시 필요하다. 반면, 객체의 세부적인 구조를 표현하기 위해 이용되는 데이터는 객체를 현실적으로 표현하기 위해 필요하지만, 객체를 표현하기 위해 반드시 필요하지는 않다. 따라서, 객체의 개괄적인 구조를 표현하기 위해 이용되는 데이터는 객체의 세부적인 구조를 표현하기 위해 이용되는 데이터보다 높은 "요청 신뢰성 수준", 또는 긴 "요청 보존 시간" 또는 "보존 시간"을 가질 수 있다.
예로서, 도 16에서, 제 1 데이터(HD1)는 객체의 개괄적인 구조를 표현하기 위해 이용되고, 제 2 데이터(HD2)는 제 1 데이터(HD1)보다 객체를 세부적으로 표현하기 위해 이용되고, 제 3 데이터(HD3)는 제 2 데이터(HD2)보다 객체를 세부적으로 표현하기 위해 이용되는 것으로 가정한다. 실시 예로서, 제 1 데이터(HD1)는 가장 높은 요청 신뢰성 수준을 갖고, 제 3 데이터(HD3)는 가장 낮은 요청 신뢰성 수준을 갖고, 제 2 데이터(HD2)는 중간의 요청 신뢰성 수준을 가질 수 있다. 다른 실시 예로서, 제 1 데이터(HD1)는 가장 긴 요청 보존 시간(T3)을 갖고, 제 3 데이터(HD3)는 가장 짧은 요청 보존 시간(T1)을 갖고, 제 2 데이터(HD2)는 중간의 요청 보존 시간(T2)을 가질 수 있다. 또 다른 실시 예로서, 제 1 데이터(HD1)는 가장 긴 보존 시간(T3)을 갖고, 제 3 데이터(HD3)는 가장 짧은 보존 시간(T1)을 갖고, 제 2 데이터(HD2)는 중간의 보존 시간(T2)을 가질 수 있다.
본 발명의 실시 예들에 따르면, 제 1 데이터(HD1)는 가장 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 또는, 제 1 데이터(HD1)의 요청 보존 시간 또는 보존 시간은 가장 늦게 만료될 수 있다. 제 1 데이터(HD1)는 가장 신뢰할 수 있도록 저장될 수 있다. 반면, 제 3 데이터(HD3)는 가장 낮은 저장 신뢰성 수준을 갖는 메모리 영역에 저장될 수 있다. 또는, 제 3 데이터(HD3)의 요청 보존 시간 또는 보존 시간은 가장 빨리 만료될 수 있다. 제 3 데이터(HD3)는 상대적으로 덜 신뢰할 수 있도록 저장될 수 있다.
예로서, 도 17에서, 제 3 데이터(HD3)의 보존 시간(T1)이 만료될 때까지, 제 1 데이터(HD1), 제 2 데이터(HD2), 및 제 3 데이터(HD3)가 이용 가능할 수 있다. 따라서, 제 3 데이터(HD3)의 보존 시간(T1)이 만료될 때까지, 높은 화질을 갖는 3차원 영상이 표현될 수 있다. 예로서, 제 3 데이터(HD3)의 보존 시간(T1)이 만료된 후, 제 3 데이터(HD3)는 가장 낮은 저장 신뢰성 수준을 갖는 메모리 영역의 열화로 인해 손실될 수 있다. 또는, 제 3 데이터(HD3)의 보존 시간(T1)이 만료된 후, 제 3 데이터(HD3)로의 접근이 차단될 수 있다.
제 3 데이터(HD3)의 보존 시간(T1)이 만료된 후 제 2 데이터(HD2)의 보존 시간(T2)이 만료될 때까지, 제 1 데이터(HD1) 및 제 2 데이터(HD2)가 이용 가능할 수 있다. 제 2 데이터(HD2)의 보존 시간(T2)이 만료될 때까지, 중간의 화질을 갖는 3차원 영상이 표현될 수 있다. 예로서, 제 2 데이터(HD2)의 보존 시간(T2)이 만료된 후, 제 2 데이터(HD2)가 손실되거나 제 2 데이터(HD2)로의 접근이 차단될 수 있다.
제 2 데이터(HD2)의 보존 시간(T2)이 만료된 후 제 1 데이터(HD1)의 보존 시간(T3)이 만료될 때까지, 제 1 데이터(HD1)만이 이용 가능할 수 있다. 제 1 데이터(HD1)에 기초하여, 3차원 영상의 개괄적인 구조가 표현될 수 있다.
본 발명의 실시 예와 달리, 신뢰성 수준 또는 보존 시간의 고려 없이 제 1 데이터(HD1), 제 2 데이터(HD2), 및 제 3 데이터(HD3)가 함께 저장되는 경우, 제 1 데이터(HD1), 제 2 데이터(HD2), 및 제 3 데이터(HD3)가 동시에 이용 불가능하게 될 수 있다. 반면, 도 16 및 도 17의 예에 따르면, 시간이 흐름에 따라 3차원 영상의 화질은 다소 낮아지지만, 더 긴 시간 동안 3차원 영상이 표현될 수 있다.
도 16 및 도 17의 예에서 이해될 수 있듯이, 본 발명의 실시 예에 따르면, 낮은 요청 신뢰성 수준 또는 짧은 보존 시간을 갖는 데이터가 이용 불가능하더라도, 높은 요청 신뢰성 수준 또는 긴 보존 시간을 갖는 데이터는 계속 이용될 수 있다. 예로서, 저장 장치 또는 메모리 장치의 저장 신뢰성 수준이 감소함에 따라 덜 중요한 데이터가 손실되더라도, 더 중요한 데이터는 여전히 보존될 수 있다. 본 발명의 실시 예에 따르면, 높은 요청 신뢰성 수준 또는 긴 요청 보존 시간을 갖는 데이터가 장기간 동안 신뢰할 수 있도록 저장될 수 있다. 따라서, 본 발명의 실시 예에 따르면, 저장 장치 또는 스토리지 시스템을 이용할 수 있는 시간이 연장될 수 있다. 결과적으로, 본 발명의 실시 예에 따르면, 데이터를 유지 및 관리하기 위해 소모되는 비용이 줄어들 수 있다.
도 18은 본 발명의 실시 예에 따른 스토리지 시스템을 포함하는 전자 시스템의 구성을 보여주는 블록도이다. 전자 시스템(3000)은 호스트(3100) 및 스토리지 시스템을 포함할 수 있다. 스토리지 시스템은 하나 이상의 저장 장치들(3300, 3400, 3500)을 포함할 수 있다.
제 1 저장 장치(3300)는 메모리 컨트롤러(3310) 및 복수의 메모리 장치(3330, 3350)를 포함할 수 있다. 제 2 저장 장치(3400)는 메모리 컨트롤러(3410) 및 메모리 장치(3430)를 포함할 수 있다. 제 3 저장 장치(3500)는 메모리 컨트롤러(3510) 및 복수의 메모리 장치(3530, 3550)를 포함할 수 있다. 도 18에서, 스토리지 시스템이 세 개의 저장 장치들(3300, 3400, 3500)을 포함하는 것으로 표현되었으나, 본 발명은 이것에 한정되지 않는다. 스토리지 시스템에 포함되는 저장 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다. 나아가, 저장 장치들 각각에 포함되는 메모리 장치들의 개수는 필요에 따라 다양하게 변경 또는 수정될 수 있다. 도 18에 나타낸 구성은 본 발명의 이해를 돕기 위한 예시일 뿐이다.
도 18에 나타낸 호스트(3100) 및 저장 장치들(3300, 3400, 3500)은 도 1 내지 도 15에 대한 설명들에서 언급된 본 발명의 실시 예들에 따라 구성되고 작동할 수 있다. 메모리 장치들 각각은 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역 중 적어도 하나를 포함할 수 있다. 메모리 컨트롤러들(3310, 3410, 3510)의 제어에 따라, 저장 장치들(3300, 3400, 3500) 각각은 데이터의 요청 신뢰성 수준, 요청 보존 시간, 또는 보존 시간에 기초하여 데이터를 저장할 수 있다. 본 발명의 실시 예들에 관한 중복되는 설명들은 생략된다.
예로서, 전자 시스템(3000)이 호스트(3100) 및 스토리지 시스템을 모두 포함하는 단일의 시스템인 경우, 스토리지 시스템에 포함되는 저장 장치들(3300, 3400, 3500)은 로컬 저장 장치들일 수 있다. 예로서, 호스트(3100)와 스토리지 시스템이 별도로 구현되는 경우, 스토리지 시스템에 포함되는 저장 장치들(3300, 3400, 3500)은 원격 스토리지 서버로서 작동할 수 있고 호스트(3100)는 스토리지 시스템에 접근하는 클라이언트로서 작동할 수 있다. 예로서, 스토리지 서버로서 작동하는 저장 장치들(3300, 3400, 3500)은 RAID(Redundant Array of Inexpensive Disks) 시스템을 형성할 수 있다. 예로서, 저장 장치들(3300, 3400, 3500)을 포함하는 스토리지 시스템으로 접근하는 호스트(3100)가 여러 개일 수 있다. 다만, 이 예들은 본 발명을 제한하기 위한 것은 아니다. 스토리지 시스템은 이 예들과는 다른 다양한 형태들로 구현될 수 있다.
도 19는 본 발명의 실시 예에 따른 분산 클라우드 스토리지(Distributed Cloud Storage) 시스템을 포함하는 전자 시스템의 구성을 보여주는 블록도이다. 전자 시스템(4000)은 호스트(4100) 및 분산 클라우드 스토리지 시스템(4300)을 포함할 수 있다.
호스트(4100)는 다양한 통신 규약들 중 하나 이상에 기초하여 분산 클라우드 스토리지 시스템(4300)과 통신할 수 있다. 분산 클라우드 스토리지 시스템(4300)은 분산 파일 시스템(Distributed File System)에 기초하여 데이터를 저장할 수 있다. 분산 클라우드 스토리지 시스템(4300)은 호스트(4100)로부터 제공받은 데이터를 저장하거나 저장된 데이터를 호스트(4100)로 제공할 수 있다. 분산 클라우드 스토리지 시스템(4300)으로 접근하는 호스트(4100)는 하나 이상일 수 있다.
분산 클라우드 스토리지 시스템(4300)은 데이터를 저장하도록 구성되는 복수의 슬레이브(Slave) 장치(4311, 4312, 4313)를 포함할 수 있다. 슬레이브 장치들(4311, 4312, 4313)은 분산 파일 시스템의 데이터 노드(Data Node)로서 작동할 수 있다.
슬레이브 장치들(4311, 4312, 4313) 각각은 도 1 내지 도 15에 대한 설명들에서 언급된 본 발명의 실시 예들에 따라 구성되고 작동할 수 있다. 슬레이브 장치들(4311, 4312, 4313)에 포함되는 메모리 장치들 각각은 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역 중 적어도 하나를 포함할 수 있다. 슬레이브 장치들(4311, 4312, 4313) 각각은 데이터의 요청 신뢰성 수준, 요청 보존 시간, 또는 보존 시간에 기초하여 데이터를 저장할 수 있다. 본 발명의 실시 예들에 관한 중복되는 설명들은 생략된다.
분산 클라우드 스토리지 시스템(4300)은 슬레이브 장치들(4311, 4312, 4313)을 제어하고 저장된 데이터에 관한 정보를 관리하도록 구성되는 마스터(Master) 장치(4330)를 포함할 수 있다. 마스터 장치(4330)는 분산 파일 시스템의 네임(Name Node)로서 작동할 수 있다. 마스터 장치(4330)는 네트워크(4350)를 통해 슬레이브 장치들(4311, 4312, 4313)과 통신할 수 있다. 예로서, 네트워크(4350)는 PAN(Personal Area Network), MAN(Metropolitan Area Network), LAN(Local Area Network), WAN(Wide Area Network), 인터넷(Internet) 등일 수 있으나, 본 발명은 이 예들로 제한되지 않는다.
예로서, 분산 클라우드 스토리지 시스템(4300)은 시스템 관리부(4371), 리소스(Resource) 관리부(4373), 및 정책(Policy) 관리부(4375)를 포함할 수 있다. 시스템 관리부(4371)는 분산 클라우드 스토리지 시스템(4300)의 전반적인 작동들을 제어하고 관리할 수 있다. 리소스 관리부(4373)는 분산 클라우드 스토리지 시스템(4300)에 포함되는 구성 요소들의 리소스 사용량을 관리할 수 있다. 정책 관리부(4375)는 호스트(4100)에 의한 분산 클라우드 스토리지 시스템(4300)으로의 접근에 관한 정책을 관리하고, 호스트(4100)의 접근을 통제할 수 있다. 다만, 이 예는 본 발명을 제한하기 위한 것은 아니다. 분산 클라우드 스토리지 시스템(4300)은 도 19에 나타내지 않은 다른 구성 요소들을 더 포함할 수 있다. 또는, 분산 클라우드 스토리지 시스템(4300)은 도 19에 나타낸 구성 요소들 중 하나 이상을 포함하지 않을 수 있다.
슬레이브 장치들(4311, 4312, 4313) 및 마스터 장치(4330) 각각은 퍼스널 컴퓨터, 워크스테이션(Workstation) 등과 같은 컴퓨팅 장치일 수 있다. 시스템 관리부(4371), 리소스 관리부(4373), 및 정책 관리부(4375)는 마스터 장치(4330)와 별개로 제공되거나 마스터 장치(4330)에 포함될 수 있다. 도 19에 나타낸 구성은 본 발명을 제한하기 위한 것은 아니다. 분산 클라우드 스토리지 시스템(4300)은 도 19에 나타낸 것과 다른 다양한 형태들로 구현될 수 있다.
도 20은 본 발명의 실시 예에 따른 스토리지 장치 또는 시스템을 포함하는 전자 장치의 구성을 보여주는 블록도이다. 전자 장치(5000)는 프로세서(5100), 메모리(5200), 스토리지 장치 또는 시스템(5300), 통신 블록(5400), 및 유저 인터페이스(5500)를 포함할 수 있다. 전자 장치(5000)는 퍼스널 컴퓨터, 주변 장치, 디지털 카메라, PDA, PMP, 스마트폰, 태블릿, 웨어러블 장치 등일 수 있다.
프로세서(5100)는 전자 장치(5000)의 전반적인 작동들을 제어할 수 있다. 예로서, 프로세서(5100)는 어플리케이션 프로세서를 포함할 수 있다. 또는, 프로세서(5100)는 범용 프로세서 또는 워크스테이션 프로세서를 포함할 수 있다.
메모리(5200)는 전자 장치(5000)의 작동에 이용되는 데이터를 임시로 저장할 수 있다. 메모리(5200)는 전자 장치(5000)의 워킹(Working) 메모리, 연산(Operation) 메모리, 버퍼(Buffer) 메모리 등으로 이용될 수 있다. 실시 예로서, 메모리(5200)는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM과 같은 불휘발성 메모리를 포함할 수 있다. 메모리(5200)는 하나 이상의 메모리 모듈 또는 하나 이상의 메모리 패키지를 포함할 수 있다.
스토리지 장치 또는 시스템(5300)은 보존을 필요로 하는 데이터를 저장할 수 있다. 스토리지 장치 또는 시스템(5300)은 로컬 또는 외장 저장 장치, 또는 원격 스토리지 시스템일 수 있다.
스토리지 장치 또는 시스템(5300)은 도 1 내지 도 15에 대한 설명들에서 언급된 본 발명의 실시 예들에 따라 구성되고 작동할 수 있다. 스토리지 장치 또는 시스템(5300)에 포함되는 메모리 장치들 각각은 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역 중 적어도 하나를 포함할 수 있다. 스토리지 장치 또는 시스템(5300)은 데이터의 요청 신뢰성 수준, 요청 보존 시간, 또는 보존 시간에 기초하여 데이터를 저장할 수 있다. 본 발명의 실시 예들에 관한 중복되는 설명들은 생략된다.
통신 블록(5400)은 프로세서(5100)의 제어에 따라 전자 장치(5000)의 외부와 통신할 수 있다. 통신 블록(5400)은 유선 또는 무선 통신 규약에 따라 전자 장치(5000)의 외부와 통신할 수 있다. 예로서, 통신 블록(5400)은 LTE, WiMax, GSM, CDMA, HSPA, Bluetooth, NFC, WiFi, RFID 등의 다양한 무선 통신 규약, 또는 USB, SCSI, PCIe, ATA, PATA, SATA, SAS, IDE, Firewire, UFS 등의 다양한 유선 통신 규약 중 적어도 하나에 따라 전자 장치(5000)의 외부와 통신할 수 있다.
유저 인터페이스(5500)는 프로세서(5100)의 제어에 따라 사용자와 전자 장치(5000) 사이의 통신을 중계할 수 있다. 예로서, 유저 인터페이스(5500)는 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프(Gyroscope) 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 유저 인터페이스(5500)는 LCD(Liquid Crystal Display), LED(Light Emitting Diode) 표시 장치, OLED(Organic LED) 표시 장치, AMOLED(Active Matrix OLED) 표시 장치, 스피커, 모터 등의 출력 인터페이스를 포함할 수 있다.
유저 인터페이스(5500)는 도 1 내지 도 15에 대한 설명들에서 언급된 본 발명의 실시 예들에 따라 구성되고 작동할 수 있다. 유저 인터페이스(5500)는 데이터의 요청 신뢰성 수준 또는 요청 보존 시간을 입력하기 위해 이용될 수 있다.
다만, 도 20은 본 발명을 제한하기 위한 것은 아니다. 전자 장치(5000)는 도 20에 나타내지 않은 다른 구성 요소들을 더 포함할 수 있다. 또는, 전자 장치(5000)는 도 20에 나타낸 구성 요소들 중 하나 이상을 포함하지 않을 수 있다.
본 발명의 실시 예들에 따른 프로세서들, 메모리 장치들, 컨트롤러들, 및 그 외 전자 회로들은 다양한 형태의 반도체 패키지를 이용하여 실장될 수 있다. 예컨대, 본 발명의 실시 예들에 따른 프로세서들, 메모리 장치들, 컨트롤러들, 및 그 외 전자 회로들은 PoP(Package on Package), BGAs(Ball Grid Arrays), CSPs(Chip Scale Packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-line Package), MQFP(Metric Quad Flat Pack), TQFP(Thin Quad Flat Pack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등의 패키지를 이용하여 실장될 수 있다.
각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.
각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
1000 : 전자 시스템 1100 : 호스트
1300 : 저장 장치 1310 : 메모리 컨트롤러
1330, 1340, 1350 : 메모리 장치
1331, 1332, 1341, 1351, 1352 : 메모리 영역
1331' : 트리밍된 메모리 영역
2300 : 저장 장치 2310 : 메모리 컨트롤러
2330, 2350 : 메모리 장치 2331, 2332 : 메모리 영역
2335 : 신뢰성 데이터 영역 2337 : 메타데이터 영역
2360 : 불휘발성 메모리
3000 : 전자 시스템 3100 : 호스트
3300, 3400, 3500 : 저장 장치
3310, 3410, 3510 : 메모리 컨트롤러
3330, 3350, 3430, 3530, 3550 : 메모리 장치
4000 : 전자 시스템 4100 : 호스트
4300 : 분산 클라우드 스토리지 시스템
4311, 4312, 4313 : 슬레이브 장치
4330 : 마스터 장치 4350 : 네트워크
4371 : 시스템 관리부 4373 : 리소스 관리부
4375 : 정책 관리부
5000 : 전자 장치 5100 : 프로세서
5200 : 메모리 5300 : 스토리지 장치 또는 시스템
5400 : 통신 블록 5500 : 유저 인터페이스

Claims (10)

  1. 호스트와 통신하도록 구성되는 저장 장치에 있어서,
    각각이 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역들 중 적어도 하나를 포함하는 복수의 메모리 장치들; 및
    상기 호스트로부터 제공된 데이터 및 상기 데이터의 요청 신뢰성 수준에 관한 요청 수준 데이터를 상기 복수의 메모리 영역들의 일부 또는 전부에 저장하는 상기 복수의 메모리 장치들을 제어하도록 구성되는 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러의 제어에 따라, 상기 데이터는 상기 복수의 메모리 영역들 중에서 상기 요청 신뢰성 수준에 대응하는 저장 신뢰성 수준을 갖는 메모리 영역에 저장되는 저장 장치.
  2. 제 1 항에 있어서,
    상기 저장 신뢰성 수준들은 상기 복수의 메모리 영역들에서 수행된 오류 검출 정정 연산들의 결과 및 상기 복수의 메모리 영역들의 웨어 레벨들 중 적어도 하나에 기초하여 결정되는 저장 장치.
  3. 제 1 항에 있어서,
    상기 저장 신뢰성 수준들에 관한 저장 신뢰성 데이터는 상기 복수의 메모리 장치들에 포함되고 상기 데이터 및 상기 요청 수준 데이터를 저장하지 않은 메모리 영역에 저장되거나, 상기 복수의 메모리 장치들과 별도로 제공되는 불휘발성 메모리에 저장되는 저장 장치.
  4. 제 1 항에 있어서,
    상기 데이터의 상기 요청 신뢰성 수준은 상기 데이터의 중요도에 기초하여 상기 호스트의 사용자에 의해 설정되거나 상기 데이터에 대한 상기 호스트의 관리 정책에 기초하여 선택되는 저장 장치.
  5. 제 1 항에 있어서,
    상기 데이터의 상기 요청 신뢰성 수준이 높을수록, 상기 데이터는 상기 복수의 메모리 영역들 중에서 더 높은 저장 신뢰성 수준을 갖는 메모리 영역에 저장되는 저장 장치.
  6. 제 1 항에 있어서,
    상기 복수의 메모리 장치들 중에서 제 1 메모리 장치에 포함되고 상기 데이터의 상기 요청 신뢰성 수준에 대응하는 상기 저장 신뢰성 수준을 갖는 메모리 영역에 저장 가능 공간이 없거나 부족한 경우, 상기 메모리 컨트롤러의 제어에 따라, 상기 데이터는 상기 복수의 메모리 장치들 중에서 상기 제 1 메모리 장치가 아닌 제 2 메모리 장치에 포함되고 상기 데이터의 상기 요청 신뢰성 수준에 대응하는 상기 저장 신뢰성 수준을 갖는 메모리 영역에 저장되는 저장 장치.
  7. 제 1 항에 있어서,
    상기 데이터를 저장한 상기 메모리 영역의 상기 저장 신뢰성 수준이 다른 저장 신뢰성 수준으로 변경되는 경우, 상기 메모리 컨트롤러의 제어에 따라, 상기 저장된 데이터는 상기 저장된 데이터의 상기 요청 신뢰성 수준에 대응하는 상기 저장 신뢰성 수준을 갖는 다른 메모리 영역으로 이동되는 저장 장치.
  8. 제 1 항에 있어서,
    상기 저장된 데이터의 상기 요청 신뢰성 수준은 상기 호스트로부터 제공되는 변경 명령에 응답하여 다른 요청 신뢰성 수준으로 변경되고,
    상기 변경 명령이 제공된 경우, 상기 메모리 컨트롤러의 제어에 따라, 상기 요청 수준 데이터는 상기 다른 요청 신뢰성 수준에 관한 새 요청 수준 데이터로 변경되며,
    상기 복수의 메모리 장치들에 저장된 무효 데이터를 삭제하는 가비지 콜렉션 연산이 수행되는 경우, 상기 다른 요청 신뢰성 수준을 갖는 상기 저장된 데이터는 상기 복수의 메모리 영역들 중에서 상기 다른 요청 신뢰성 수준에 대응하는 다른 저장 신뢰성 수준을 갖는 메모리 영역으로 이동되는 저장 장치.
  9. 호스트와 통신하도록 구성되는 저장 장치에 있어서,
    각각이 서로 다른 저장 신뢰성 수준들을 갖도록 구성되는 복수의 메모리 영역들 중 적어도 하나를 포함하는 복수의 메모리 장치들; 및
    상기 호스트로부터 제공된 데이터 및 상기 데이터의 요청 보존 시간에 관한 보존 시간 데이터를 상기 복수의 메모리 영역들의 일부 또는 전부에 저장하는 상기 복수의 메모리 장치들을 제어하도록 구성되는 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러의 제어에 따라, 상기 데이터의 상기 요청 보존 시간이 만료되기 전까지 상기 데이터는 상기 복수의 메모리 영역들 중에서 가장 높은 저장 신뢰성 수준을 갖는 대상 메모리 영역에 저장되는 저장 장치.
  10. 제 9 항에 있어서,
    상기 저장된 데이터의 요청 보존 시간이 만료된 경우, 상기 메모리 컨트롤러의 제어에 따라, 상기 저장된 데이터로의 접근이 차단되는 저장 장치.
KR1020140183292A 2014-12-18 2014-12-18 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템 KR102297541B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140183292A KR102297541B1 (ko) 2014-12-18 2014-12-18 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템
US14/962,899 US9817591B2 (en) 2014-12-18 2015-12-08 Storage device and storage system storing data based on reliability of memory area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140183292A KR102297541B1 (ko) 2014-12-18 2014-12-18 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템

Publications (2)

Publication Number Publication Date
KR20160074827A KR20160074827A (ko) 2016-06-29
KR102297541B1 true KR102297541B1 (ko) 2021-09-06

Family

ID=56129415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140183292A KR102297541B1 (ko) 2014-12-18 2014-12-18 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템

Country Status (2)

Country Link
US (1) US9817591B2 (ko)
KR (1) KR102297541B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916199B2 (en) * 2016-03-30 2018-03-13 Intel Corporation Method and apparatus for an error tolerance aware data retention scheme in a storage device for multi-scale error tolerant data
KR102474596B1 (ko) * 2017-12-06 2022-12-05 삼성전자주식회사 반도체 장치
KR102495915B1 (ko) 2018-04-30 2023-02-03 삼성전자 주식회사 스토리지 장치 및 상기 스토리지 장치를 포함하는 서버
DE102019118631A1 (de) 2018-08-03 2020-02-06 Samsung Electronics Co., Ltd. Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben
KR102546255B1 (ko) * 2018-08-03 2023-06-21 삼성전자주식회사 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템
US11334253B2 (en) * 2018-12-07 2022-05-17 Intel Corporation Storage system that provides protection levels at stored data item granularity
US20230018820A1 (en) * 2021-07-16 2023-01-19 EMC IP Holding Company LLC Data security classification for storage systems using security level descriptors
US11861177B2 (en) * 2021-08-06 2024-01-02 Micron Technology, Inc. Configurable verify level for a set of data in a memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060133157A1 (en) 2004-12-17 2006-06-22 M-Systems Flash Disk Pioneers, Ltd. Method of handling limitations on the order of writing to a non-volatile memory
US20080215911A1 (en) 2007-03-02 2008-09-04 Hui-Neng Chang Storage device capable of meeting the reliability and a building and data writing method thereof
US20130103894A1 (en) 2008-09-22 2013-04-25 Micron Technology, Inc. Programming a memory device to increase data reliability
US20150200688A1 (en) 2014-01-10 2015-07-16 Fusion-Io, Inc. Dynamic log-likelihood ratio mapping for error correcting code decoding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10350590A1 (de) 2003-10-30 2005-06-16 Ruprecht-Karls-Universität Heidelberg Verfahren und Vorrichtung zum Sichern von Daten bei mehreren unabhängigen Schreib-Lese-Speichern
JP4227931B2 (ja) 2004-04-15 2009-02-18 株式会社日立製作所 情報記憶装置、情報格納方法及び情報記憶処理プログラム
KR100645058B1 (ko) 2004-11-03 2006-11-10 삼성전자주식회사 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법
EP1863182A1 (en) 2006-06-01 2007-12-05 Thomson Licensing Data detection with adaptive reference levels
US7646636B2 (en) 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
US8589730B2 (en) 2010-08-31 2013-11-19 Apple Inc. Handling errors during device bootup from a non-volatile memory
US8732518B2 (en) 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
WO2012119410A1 (zh) 2011-08-23 2012-09-13 华为技术有限公司 一种检测数据可靠性的方法和装置
KR101801147B1 (ko) 2011-08-30 2017-11-27 삼성전자주식회사 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US20130185482A1 (en) 2012-01-18 2013-07-18 Samsung Electronics Co., Ltd. Memory system using a storage having firmware with a plurality of features
US20150039815A1 (en) * 2013-08-02 2015-02-05 OCZ Storage Solutions Inc. System and method for interfacing between storage device and host
US9542119B2 (en) * 2014-07-09 2017-01-10 Toshiba Corporation Solid-state mass storage media having data volumes with different service levels for different data types

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060133157A1 (en) 2004-12-17 2006-06-22 M-Systems Flash Disk Pioneers, Ltd. Method of handling limitations on the order of writing to a non-volatile memory
US20080215911A1 (en) 2007-03-02 2008-09-04 Hui-Neng Chang Storage device capable of meeting the reliability and a building and data writing method thereof
US20130103894A1 (en) 2008-09-22 2013-04-25 Micron Technology, Inc. Programming a memory device to increase data reliability
US20150200688A1 (en) 2014-01-10 2015-07-16 Fusion-Io, Inc. Dynamic log-likelihood ratio mapping for error correcting code decoding

Also Published As

Publication number Publication date
KR20160074827A (ko) 2016-06-29
US20160179421A1 (en) 2016-06-23
US9817591B2 (en) 2017-11-14

Similar Documents

Publication Publication Date Title
KR102297541B1 (ko) 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템
US9910622B2 (en) Host-controlled garbage collection
US20210182166A1 (en) Zoned namespace management of non-volatile storage devices
KR102080967B1 (ko) 하이브리드 스토리지
US10789019B2 (en) Storage device capable of managing jobs without intervention of a processor
KR102098697B1 (ko) 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법
JP5792841B2 (ja) メモリ内のデータを管理するための方法および装置
US9990277B2 (en) System and method for efficient address translation of flash memory device
US10437738B2 (en) Storage device performing hashing-based translation between logical address and physical address
US20170242785A1 (en) Efficient Implementation of Optimized Host-Based Garbage Collection Strategies Using Xcopy and Arrays of Flash Devices
US9507720B2 (en) Block storage-based data processing methods, apparatus, and systems
JP2017021805A (ja) 不揮発性メモリ装置内でデータ属性基盤データ配置を利用可能にするインターフェイス提供方法及びコンピュータ装置
JP2014522537A (ja) 使用によるフラッシュ・ベースの記憶装置へのデータ配置の管理
KR20120090965A (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
KR20200067962A (ko) Ssd에 데이터를 기록하는 방법 및 장치
KR20200018999A (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
US11200178B2 (en) Apparatus and method for transmitting map data in memory system
US10013174B2 (en) Mapping system selection for data storage device
US20170168956A1 (en) Block cache staging in content delivery network caching system
KR20180092715A (ko) 동작들의 횟수에 기초하여 복제된 데이터를 관리하는 스토리지 장치
JP6269253B2 (ja) 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム
US10783033B2 (en) Device and method for accessing in-band memory using data protection
JP2018160060A (ja) メモリシステム
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US9501414B2 (en) Storage control device and storage control method for cache processing according to time zones

Legal Events

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