KR20230068197A - 스토리지 장치 및 이의 동작 방법 - Google Patents

스토리지 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20230068197A
KR20230068197A KR1020210154290A KR20210154290A KR20230068197A KR 20230068197 A KR20230068197 A KR 20230068197A KR 1020210154290 A KR1020210154290 A KR 1020210154290A KR 20210154290 A KR20210154290 A KR 20210154290A KR 20230068197 A KR20230068197 A KR 20230068197A
Authority
KR
South Korea
Prior art keywords
data
memory
storage
memory area
time
Prior art date
Application number
KR1020210154290A
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 KR1020210154290A priority Critical patent/KR20230068197A/ko
Priority to CN202211349862.6A priority patent/CN116107493A/zh
Priority to EP22206251.5A priority patent/EP4180971A1/en
Priority to US17/983,455 priority patent/US20230147773A1/en
Publication of KR20230068197A publication Critical patent/KR20230068197A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

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)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

스토리지 장치 및 이의 동작 방법이 개시된다. 스토리지 장치는, 제1 메모리 셀들을 포함하는 제1 메모리 영역, 제2 메모리 셀들을 포함하는 제2 메모리 영역, 및 제3 메모리 셀들을 포함하는 제3 메모리 영역을 포함하는 비휘발성 메모리, 라이트 요청, 데이터 및 데이터의 저장 시간 정보를 호스트로부터 수신하고, 라이트 요청에 응답하여 데이터를 비휘발성 메모리에 프로그램하는 스토리지 컨트롤러를 포함하고, 제1 메모리 셀들의 데이터 용량이 제2 메모리 셀들의 데이터 용량보다 작고, 제2 메모리 셀들의 데이터 용량이 제3 메모리 셀들의 데이터 용량보다 작고, 스토리지 컨트롤러는, 저장 시간 정보에 기초하여 제1 메모리 영역, 제2 메모리 영역, 및 제3 메모리 영역 중 선택된 메모리 영역에 데이터를 프로그램하고, 스토리지 컨트롤러는, 데이터의 저장 시간이 제1 기준 시간 이상이면 데이터를 제1 메모리 영역에 프로그램하고, 데이터의 저장 시간이 제2 기준 시간 이상이고 제1 기준 시간 미만이면 데이터를 제2 메모리 영역에 프로그램하고, 데이터의 저장 시간이 제2 기준 시간 미만이면 데이터를 제3 메모리 영역에 프로그램 한다.

Description

스토리지 장치 및 이의 동작 방법{STORATE DEVICE AND OPERATING METHOD OF THE SAME}
본 개시의 기술적 사상은 스토리지 장치 및 이의 동작 방법에 관한 것으로, 더욱 상세하게는, 서로 다른 데이터 용량을 갖는 메모리 셀들을 포함하는 메모리를 포함하는 스토리지 장치 및 이의 동작 방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. SSD(Solid State Drive) 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있다. 플래시 메모리는 메모리 셀들의 문턱 전압을 변화시킴으로써 데이터를 저장하고, 미리 정해진 리드 레벨을 이용하여 데이터를 리드한다. 그러나, 메모리 셀들의 열화에 의해 메모리 셀들의 문턱 전압이 변경될 수 있고, 이에 따라, 리드 오류가 발생할 수 있다.
본 개시의 기술적 사상이 해결하려는 과제는, 데이터의 특성에 따라 데이터를 정해진 데이터 영역에 기입함으로써, 데이터 신뢰도를 향상시키고 성능 저하를 방지하는 스토리지 장치 및 이의 동작 방법을 제공하는 데에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상에 따른 스토리지 장치는, 제1 메모리 셀들을 포함하는 제1 메모리 영역, 제2 메모리 셀들을 포함하는 제2 메모리 영역, 및 제3 메모리 셀들을 포함하는 제3 메모리 영역을 포함하는 비휘발성 메모리, 라이트 요청, 데이터 및 데이터의 저장 시간 정보를 호스트로부터 수신하고, 라이트 요청에 응답하여 데이터를 비휘발성 메모리에 프로그램하는 스토리지 컨트롤러를 포함하고, 제1 메모리 셀들의 데이터 용량이 제2 메모리 셀들의 데이터 용량보다 작고, 제2 메모리 셀들의 데이터 용량이 제3 메모리 셀들의 데이터 용량보다 작고, 스토리지 컨트롤러는, 저장 시간 정보에 기초하여 제1 메모리 영역, 제2 메모리 영역, 및 제3 메모리 영역 중 선택된 메모리 영역에 데이터를 프로그램하고, 스토리지 컨트롤러는, 데이터의 저장 시간이 제1 기준 시간 이상이면 데이터를 제1 메모리 영역에 프로그램하고, 데이터의 저장 시간이 제2 기준 시간 이상이고 제1 기준 시간 미만이면 데이터를 제2 메모리 영역에 프로그램하고, 데이터의 저장 시간이 제2 기준 시간 미만이면 데이터를 제3 메모리 영역에 프로그램할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는, 제1 메모리 셀들을 포함하는 제1 메모리 영역, 제2 메모리 셀들을 포함하는 제2 메모리 영역, 및 제3 메모리 셀들을 포함하는 제3 메모리 영역을 포함하는 비휘발성 메모리, 프로세서 및 기계 학습 모델이 저장된 메모리를 포함하고, 라이트 요청에 응답하여 데이터를 비휘발성 메모리에 프로그램하는 스토리지 컨트롤러를 포함하고, 제1 메모리 셀들, 제2 메모리 셀들, 및 제3 메모리 셀들은 서로 상이한 데이터 용량을 가지고, 스토리지 컨트롤러는, 기계 학습 모델을 이용한 기계 학습 추론을 통해 데이터의 특성 정보로부터 데이터의 저장 시간 정보를 추출하고, 저장 시간 정보에 기초하여 제1 메모리 영역, 제2 메모리 영역, 및 제3 메모리 영역 중 선택된 메모리 영역에 데이터를 프로그램할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 컨트롤러의 동작 방법은, 라이트 요청, 데이터 및 데이터의 저장 시간 정보를 호스트로부터 수신하는 단계, 저장 시간 정보에 기초하여 데이터를 할당된 메모리 영역에 프로그램하는 단계 및 저장 시간 정보에 기초하여 소거 예정 시간 이후 프로그램된 데이터를 셀프-소거하는 단계를 포함하고, 데이터를 할당된 메모리 영역에 프로그램하는 단계는 데이터 용량이 서로 상이한 메모리 셀들을 각각 포함하는 복수의 메모리 영역들 중 선택된 메모리 영역에 데이터를 프로그램할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 컨트롤러의 동작 방법은, 데이터의 특성 정보 및 데이터의 저장 시간 정보를 수집하는 단계, 수집된 정보들을 이용하여 기계 학습 훈련을 수행하고, 기계 학습 모델을 추출하는 단계, 라이트 요청 및 새로운 데이터를 수신하는 단계, 기계 학습 모델을 이용한 기계 학습 추론을 통해, 새로운 데이터의 특성 정보로부터 새로운 데이터의 저장 시간 정보를 추출하는 단계, 및 추출된 저장 시간 정보에 기초하여 새로운 데이터를 선택된 메모리 영역에 프로그램 하는 단계를 포함하고, 새로운 데이터를 선택된 메모리 영역에 프로그램하는 단계는 데이터 용량이 서로 상이한 메모리 셀들을 각각 포함하는 복수의 메모리 영역들 중 선택된 메모리 영역에 새로운 데이터를 프로그램할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는, 데이터 특성에 따라 설정된 저장 시간에 대한 정보, 즉, 저장 시간 정보를 데이터와 함께 수신할 수 있다. 스토리지 장치는, 저장 시간 정보를 이용하여, 수신된 데이터의 특성에 따라 메모리 영역을 선택하여 프로그램할 수 있고, 데이터 신뢰도가 보장되지 않는 데이터에 대해 셀프-소거 동작을 수행할 수 있다. 따라서, 데이터 신뢰도를 향상시키기 위해 방어 코드에 의한 프로그램 동작/소거 동작의 사이클 횟수를 감소시킬 수 있고, 데이터 신뢰도를 향상시키고 성능 저하를 방지할 수 있다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 도 1의 스토리지 장치에 포함된 스토리지 컨트롤러를 상세하게 나타내는 블록도이다.
도 3은 도 1의 비휘발성 메모리에 포함되는 메모리 장치를 설명하는 블록도이다.
도 4는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 5는 도 4의 S20 단계를 설명하기 위한 도면이다.
도 6는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다.
도 7은 도 1의 스토리지 장치(100)에 포함된 스토리지 컨트롤러(110A)를 상세하게 나타내는 블록도이다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다.
도 9는 도 8의 S400 단계를 설명하기 위한 도면으로서, 기계 학습 모델을 이용한 기계 학습 추론 동작을 설명하기 위한 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 스토리지 장치가 적용된 시스템을 도시한 도면이다.
도 11는 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 시스템(10)을 나타내는 블록도이다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
스토리지 장치(100)는 호스트(200)로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 예를 들어, 스토리지 장치(100)는 SSD(Solid State Drive), 임베디드(embedded) 메모리 및 착탈 가능한 외장(external) 메모리 중 적어도 하나를 포함할 수 있다. 스토리지 장치(100)가 SSD인 경우, 스토리지 장치(100)는 NVMe(non-volatile memory express) 표준을 따르는 장치일 수 있다.
스토리지 장치(100)가 임베디드(embedded) 메모리 혹은 외장(external) 메모리인 경우, 스토리지 장치(100)는 UFS(universal flash storage) 혹은 eMMC(embedded multi-media card) 표준을 따르는 장치일 수 있다. 호스트(200)와 스토리지 장치(100)는 각각 채용된 표준 프로토콜에 따른 패킷을 생성하고 이를 전송할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 스토리지 시스템(10)에 내장되는 임베디드 메모리일 수 있고, 예를 들어, 스토리지 장치(100)는 eMMC(embedded Multi-Media Card) 또는 임베디드 UFS(Universal Flash Storage) 메모리 장치일 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 스토리지 시스템(10)에 착탈 가능한 외장 메모리일 수 있고, 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
도 1을 참조하면, 스토리지 시스템(10)은 호스트(200) 및 스토리지 장치(100)를 포함할 수 있다. 또한, 스토리지 장치(100)는 스토리지 컨트롤러(110) 및 비휘발성 메모리(120)를 포함할 수 있다.
호스트(200)는 다양한 인터페이스를 통하여 스토리지 장치(100)와 통신할 수 있고, 리드 요청 및 프로그램 요청 등의 요청(REQ)을 스토리지 장치(100)에 전달할 수 있다. 예시적인 실시 예에서, 호스트(200)는 AP(Application Processor) 또는 SoC(System-On-a-Chip, SoC)로 구현될 수 있다.
스토리지 컨트롤러(110)는 채널(CH)을 통해 비휘발성 메모리(120)의 동작을 제어할 수 있다. 스토리지 컨트롤러(110)는 호스트(200)로부터의 리드 요청(RREQ)에 응답하여 비휘발성 메모리(120)에 저장된 데이터(DATA)를 리드하거나, 또는 호스트(200)로부터의 라이트 요청(WREQ)에 응답하여 비휘발성 메모리(120)에 데이터(DATA)를 프로그램하도록 비휘발성 메모리(120)를 제어할 수 있다.
이 때, 호스트(200)는 라이트 요청(WREQ) 및 데이터(DATA)와 함께, 데이터(DATA)에 대한 저장 시간 정보(STI)를 스토리지 장치(100)로 제공할 수 있다. 호스트(200)는 데이터(DATA)의 특성에 따른 저장 시간을 설정할 수 있고, 저장 시간 정보(STI)를 데이터(DATA)와 함께 스토리지 장치(100)로 제공할 수 있다. 저장 시간 정보(STI)는 데이터(DATA)의 특성에 따라 설정된 저장 시간에 대한 정보로서, 대응하는 데이터(DATA)가 프로그램된 후, 데이터(DATA)의 신뢰도 조건을 만족하면서 프로그램된 상태를 유지하도록 요구되는 최소 저장 시간에 대한 정보일 수 있다. 즉, 데이터(DATA)는 비휘발성 메모리(120)에 프로그램된 후 저장 시간 동안, 신뢰도를 유지하면서 프로그램된 상태를 유지할 것이 요구될 수 있다.
예시적인 실시 예에서, 스토리지 컨트롤러(110)는 데이터 할당기(114)를 포함할 수 있다. 데이터 할당기(114)는 호스트(200)로부터 라이트 요청(WRDQ)이 수신되고, 데이터(DATA) 및 데이터(DATA)에 대한 저장 시간 정보(STI)가 수신되면, 저장 시간 정보(STI)에 기초하여 데이터가 프로그램될 메모리 영역(예를 들어, 제1 내지 메모리 영역(MR1~MR3) 중 하나의 메모리 영역)을 결정할 수 있다. 스토리지 컨트롤러(110)는 결정된 메모리 영역에 데이터(DATA)가 프로그램되도록 비휘발성 메모리(120)를 제어할 수 있다.
스토리지 장치(100)의 비휘발성 메모리(120)가 플래시 메모리를 포함할 때, 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 또는, 예를 들어, 비휘발성 메모리(120)는 다른 다양한 종류의 비휘발성 메모리일 수도 있다. 예를 들어, 비휘발성 메모리(120)는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM) 및 다른 다양한 종류의 메모리가 적용될 수 있다.
비휘발성 메모리(120)는 데이터 용량이 상이한 메모리 셀들을 포함하는 복수의 메모리 영역들을 포함할 수 있다. 예를 들어, 비휘발성 메모리(120)는 제1 내지 제3 메모리 영역(MR1~MR3)을 포함할 수 있고, 제1 메모리 영역(MR1)은 (i)-bit의 데이터를 저장하는 제1 메모리 셀들을 포함할 수 있고, 제2 메모리 영역(MR2)은 (j)-bit의 데이터를 저장하는 제2 메모리 셀들을 포함할 수 있고, 제3 메모리 영역(MR3)은 (k)-bit의 데이터를 저장하는 제3 메모리 셀들을 포함할 수 있다. 이 때, i, j, k는 1 이상의 자연수이고, i보다 j가 크고, j보다 k가 클 수 있다.
예를 들어, 제1 메모리 영역(MR1)은 1-bit의 데이터를 저장하는 싱글 레벨 셀(single level cell, SLC)들을 포함할 수 있고, 제2 메모리 영역(MR2)은 멀티 레벨 셀(multi level cell, MLC)들 및/또는 트리플 레벨 셀(triple level cell, TLC)들을 포함할 수 있고, 제3 메모리 영역(MR3)은 쿼드 레벨 셀(quad level cell, QLC)들을 포함할 수 있다.
다만, 비휘발성 메모리(120)의 구성은 이에 한정되지는 않으며 다양하게 변형이 가능하다. 예를 들어, 비휘발성 메모리(120)는 싱글 레벨 셀들을 포함하는 제1 메모리 영역, 멀티 레벨 셀들을 포함하는 제2 메모리 영역, 및 트리플 레벨 셀들 및/또는 쿼드 레벨 셀들을 포함하는 제3 메모리 영역을 포함할 수도 있다. 또는 예를 들어, 비휘발성 메모리(120)는 싱글 레벨 셀들을 포함하는 제1 메모리 영역, 멀티 레벨 셀들을 포함하는 제2 메모리 영역, 트리플 레벨 셀들을 포함하는 제3 메모리 영역, 쿼드 레벨 셀들을 포함하는 제4 메모리 영역을 포함할 수도 있다.
하나의 메모리 셀에 저장되는 데이터 용량이 늘어날수록 메모리 셀에 저장된 데이터의 신뢰도가 보장되는 메모리 셀 리텐션 시간은 감소될 수 있다. 즉, 제1 메모리 영역(MR1)의 메모리 셀 리텐션 시간은 제3 메모리 영역(MR3)의 메모리 셀 리텐션 시간보다 길 수 있다.
본 개시에 따른 스토리지 장치(100)의 스토리지 컨트롤러(110)는, 데이터(DATA)의 저장 시간 정보(STI)에 기초하여, 데이터(DATA)가 프로그램될 위치, 즉, 메모리 영역을 결정할 수 있다. 예를 들어, 스토리지 장치(100)는 데이터(DATA)가 상대적으로 오랜 기간 동안 스토리지 장치(100)에 저장 예정인 경우에는 데이터(DATA)를 제1 메모리 영역(121)에 프로그램할 수 있고, 반면, 데이터(DATA)가 상대적으로 짧은 기간 동안 스토리지 장치(100)에 저장될 예정인 경우에는 데이터(DATA)를 제3 메모리 영역(121)에 프로그램할 수 있다. 따라서, 스토리지 장치(100)는 데이터 신뢰도를 향상시키기 위해 방어 코드에 의한 프로그램 동작/소거 동작의 사이클 횟수를 감소시킬 수 있고, 데이터 신뢰도를 향상시키고 성능 저하를 방지할 수 있다.
도 2는 도 1의 스토리지 장치(100)에 포함된 스토리지 컨트롤러(110)를 상세하게 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 스토리지 컨트롤러(110)는 프로세서(111), 호스트 인터페이스(112), 메모리(113), 데이터 할당기(114) 및 메모리 인터페이스(115)를 포함할 수 있고, 이들은 버스(116)를 통해 서로 통신할 수 있다. 프로세서(111)는 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 컨트롤러(110)의 전반적인 동작을 제어할 수 있다. 프로세서(111)는 특정 동작을 수행하도록 구성되는 프로그램 코드의 명령어 집합을 실행할 수 있는 하나 이상의 프로세서 코어들을 포함할 수 있다. 예를 들어, 프로세서(111)는 메모리(113)에 저장된 펌웨어의 명령 코드를 실행할 수 있다.
호스트 인터페이스(112)는 호스트(200)와 컨트롤러(110) 사이의 인터페이스를 제공할 수 있고, 예를 들어, USB(Universal Serial Bus), MMC, PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등에 따른 인터페이스를 제공할 수 있다. 호스트 인터페이스(112)는 호스트(200)로부터 요청(REQ), 데이터(DATA), 저장 시간 정보(STI)를 수신할 수 있고, 데이터(DATA)를 출력할 수 있다.
메모리(113)는 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있고, 예를 들어, 메모리(113)는 DRAM, SRAM, PRAM 또는 플래시 메모리로 구현될 수 있다. 메모리(113)에는 호스트(200)로부터 수신된 저장 시간 정보(STI)가 저장될 수 있다. 예시적인 실시 예에서, 메모리(113)에는 데이터(DATA)가 프로그램될 위치를 결정하기 위해 이용되는 기준 시간 정보(T1)가 저장될 수 있고, 데이터(DATA)가 프로그램된 후 소거될 소거 예정 시간에 대한 소거 예정 시간 정보(ETI)가 저장될 수 있다.
데이터 할당기(114)는 저장 시간 정보(STI)에 기초하여, 대응하는 데이터(DATA)의 저장 위치를 결정할 수 있다. 데이터 할당기(114)는 저장 시간 정보(STI) 및 메모리(113)에 저장된 기준 시간 정보(T1)에 기초하여, 저장 기간 정보(STI)에 대응하는 데이터(DATA)의 저장 시간을 기준 시간과 비교할 수 있다. 비교 결과에 따라, 복수의 메모리 영역들 중 데이터(DATA)가 저장될 메모리 영역을 결정할 수 있다. 기준 시간 정보(T1)에 대해서는 도 5에서 구체적으로 후술하겠다.
또한, 예시적인 실시 예에서, 데이터 할당기(114)는 저장 시간 정보(STI)에 기초하여, 데이터(DATA)가 프로그램된 후 소거될 소거 예정 시간을 설정할 수 있고, 메모리(113)에 소거 예정 시간 정보(ETI)를 저장할 수 있다. 데이터 할당기(114)는 소거 예정 시간 정보(ETI)에 기초하여, 데이터(DATA)가 프로그램된 후 소거 예정 시간이 경과되면 데이터(DATA)를 소거하도록 비휘발성 메모리(120)를 제어할 수 있다.
데이터 할당기(114)는 하드웨어, 소프트웨어 또는 펌웨어로 구현될 수 있다. 데이터 할당기(114)가 소프트웨어 또는 펌웨어로 구현되는 경우, 데이터 할당기(114)는 메모리(113)에 로딩될 수 있고, 프로세서(111)의 제어에 따라 동작할 수 있다.
메모리 인터페이스(115)는 컨트롤러(110)와 비휘발성 메모리(120) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 데이터, 커맨드 및 어드레스가 메모리 인터페이스(115)를 통해 컨트롤러(110)와 비휘발성 메모리(120) 사이에서 송수신될 수 있다.
스토리지 컨트롤러(110)는 플래시 변환 레이어(Flash Translation Layer(FTL)), 패킷 매니저, ECC(error correction code) 엔진 및 AES(advanced encryption standard) 엔진 등을 더 포함할 수 있다. 플래시 변환 계층은 어드레스 매핑(address mapping), 웨어-레벨링(wear-leveling), 가비지 콜렉션(garbage collection)과 같은 여러 기능을 수행할 수 있다. 패킷 매니저는 호스트(200)와 협의된 인터페이스의 프로토콜에 따른 패킷(Packet)을 생성하거나, 호스트(200)로부터 수신된 패킷(Packet)으로부터 각종 정보를 파싱할 수 있다. ECC 엔진은 비휘발성 메모리(120)로부터 리드되는 리드 데이터의 패리티 비트(parity bit)들을 이용하여 리드 데이터에 대한 오류 검출 및 정정 기능을 수행할 수 있다. AES 엔진은, 스토리지 컨트롤러(110)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를, 대칭 키 알고리즘(symmetric-key algorithm)를 이용하여 수행할 수 있다.
도 3은 도 1의 비휘발성 메모리(120)에 포함되는 메모리 장치(120A)를 설명하는 블록도이다. 도 1의 비휘발성 메모리(120)는 적어도 하나의 메모리 장치(120A)를 포함할 수 있다.
도 1 및 도 3을 참조하면, 메모리 장치(120A)는 메모리 셀 어레이(122), 어드레스 디코더(123), 제어 로직 블록(124), 페이지 버퍼(125), 입출력 회로(126), 및 전압 생성기(127)를 포함할 수 있다. 도시되지는 않았으나, 메모리 장치(120A)는 입출력 인터페이스를 더 포함할 수 있다.
메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL), 그라운드 선택 라인들(GSL) 및 비트 라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(122)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 그라운드 선택 라인들(GSL)을 통해 어드레스 디코더(123)에 연결되고, 비트 라인들(BL)을 통해 페이지 버퍼(125)에 연결될 수 있다. 메모리 셀 어레이(122)는 복수의 메모리 블록들(BLK1~BLKn)을 포함할 수 있다.
복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 메모리 셀들 및 복수의 선택 트랜지스터들을 포함할 수 있다. 메모리 셀들은 워드라인들(WL)에 연결되고, 선택 트랜지스터들은 스트링 선택 라인들(SSL) 또는 그라운드 선택 라인들(GSL)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKn) 각각은 소거 단위에 해당할 수 있다. 복수의 메모리 블록들(BLK1~BLKn) 각각은 복수의 페이지들을 포함할 수 있고, 복수의 페이지 각각은 하나의 메모리 블록에서 데이터의 프로그램 또는 리드 단위에 해당할 수 있다.
복수의 메모리 블록들(BLK1~BLKn)은 도 1의 제1 메모리 영역(MR1), 제2 메모리 영역(MR2) 및 제3 메모리 영역(MR3)로 구분될 수 있다. 예를 들어, 제1 메모리 영역(MR1)은 싱글 레벨 셀들을 포함하는 복수의 메모리 블록들을 포함할 수 있고, 제2 메모리 영역(MR2)은 멀티 레벨 셀들 및 트리플 레벨 셀들을 포함하는 메모리 블록들을 포함할 수 있고, 제3 메모리 영역(MR3)은 쿼드 레벨 셀들을 포함하는 메모리 블록들을 포함할 수 있다. 다만, 이에 한정되지 않고, 비휘발성 메모리(120)는 복수의 메모리 장치들을 포함할 수 있고, 복수의 메모리 장치들 각각은, 싱글 레벨 셀, 멀티 레벨 셀, 트리플 레벨 셀 및 쿼드 레벨 셀 중 대응하는 셀을 포함할 수도 있다.
어드레스 디코더(123)는 메모리 셀 어레이(122)의 복수의 메모리 블록들(BLK1~BLKn) 중 하나를 선택할 수 있고, 선택된 메모리 블록의 워드라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다.
제어 로직 블록(124)은 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(122)에 대한 프로그램, 리드 및 소거 동작을 수행하기 위한 각종 제어 신호를 출력할 수 있다. 제어 로직 블록(124)은 어드레스 디코더(123)에 로우 어드레스(X-ADDR)를 제공할 수 있고, 페이지 버퍼(125)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있고, 전압 생성기(127)에 전압 제어 신호(CTRL_Vol)를 제공할 수 있다.
페이지 버퍼(125)는 동작 모드에 따라 라이트 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 리드 동작시, 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 선택된 메모리 셀의 비트라인(BL)을 센싱할 수 있다. 센싱된 데이터는 페이지 버퍼(125) 내부에 구비되는 래치들에 저장될 수 있다. 페이지 버퍼(125)는 제어 로직 블록(124)의 제어에 따라 래치들에 저장된 데이터를 입출력 회로(126)로 덤핑할 수 있다.
입출력 회로(126)는 메모리 장치(120A)의 외부로부터 입출력 라인(I/O)을 통해서 제공되는 커맨드(CMD), 어드레스(ADDR), 제어 신호(CTRL) 및 데이터를 일시 저장할 수 있다. 입출력 회로(126)는 메모리 장치(120A)의 리드 데이터를 일시 저장하고, 지정된 시점에 입출력 라인(I/O)을 통해서 외부로 출력할 수 있다.
전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 메모리 셀 어레이(122)에 대한 프로그램, 리드 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 구체적으로, 전압 생성기(127)는 워드 라인 전압(VWL), 예를 들어, 프로그램 전압, 리드 전압, 패스 전압, 이레이즈 검증 전압 또는 프로그램 검증 전압 등을 생성할 수 있다. 또한, 전압 생성기(127)는 전압 제어 신호(CTRL_Vol)를 기초로 하여 스트링 선택 라인 전압 및 그라운드 선택 라인 전압을 생성할 수 있다. 또한, 전압 생성기(127)는 메모리 셀 어레이(122)에 제공할 소거 전압을 생성할 수 있다.
도 4는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 5는 도 4의 S20 단계를 설명하기 위한 도면이다.
도 1 및 도 4를 참조하면, S10 단계에서, 스토리지 장치(100)는 호스트(200)로부터 라이트 요청(WREQ), 데이터(DATA) 및 데이터(DATA)의 저장 시간 정보(STI)를 수신할 수 있다. 저장 시간 정보(STI)는 대응하는 데이터(DATA)가 프로그램된 후, 데이터(DATA)의 신뢰도 조건을 만족하면서 프로그램된 상태를 유지하는 최소 시간에 대한 정보일 수 있다. 즉, 데이터(DATA)는 비휘발성 메모리(120)에 프로그램된 후 저장 시간 동안, 신뢰도를 유지하면서 프로그램된 상태를 유지할 것이 요구될 수 있다.
S20 단계에서, 스토리지 장치(100)는 저장 시간 정보(STI)에 기초하여, 데이터(DATA)를 할당된 메모리 영역에 프로그램할 수 있다. 스토리지 장치(100)는 서로 다른 데이터 용량을 갖는 메모리 셀들을 각각 포함하는 복수의 메모리 영역들(예를 들어, 제1 내지 제3 메모리 영역(MR1~MR3)) 중 데이터(DATA)에 할당된 메모리 영역에 데이터(DATA)를 프로그램할 수 있다.
도 1, 도 4 및 도 5를 참조하면, 하나의 메모리 셀에 저장되는 데이터 용량이 늘어날수록 메모리 셀에 저장된 데이터의 신뢰도가 보장되는 메모리 셀 리텐션 시간은 감소될 수 있다. 1-bit의 데이터가 저장되는 싱글 레벨 셀(SLC)에서 4-bit의 데이터가 저장되는 쿼드 레벨 셀(QLC)로 갈수록 데이터 용량은 커지나, 메모리 셀 리텐션 특성은 열화될 수 있다. 즉, 쿼드 레벨 셀(QLC)에 저장된 데이터는 트리플 레벨 셀(TLC)에 저장된 데이터보다 데이터 열화 속도가 빠를 수 있고, 트리플 레벨 셀(TLC)에 저장된 데이터는 멀티 레벨 셀(MLC)에 저장된 데이터보다 열화 속도가 빠를 수 있고, 멀티 레벨 셀(MLC)에 저장된 데이터는 싱글 레벨 셀(SLC)에 저장된 데이터보다 데이터가 열화되는 속도가 빠를 수 있다. 예를 들어, 싱글 레벨 셀은 데이터 신뢰도가 보장되는 리텐션 시간이 5년일 수 있고, 멀티 레벨 셀은 리텐션 시간이 1년일 수 있고, 트리플 레벨 셀은 리텐션 시간이 3달일 수 있고, 쿼드 레벨 셀은 리텐션 시간이 1달일 수 있다.
예를 들어, 비휘발성 메모리(120)는 싱글 레벨 셀들을 포함하는 제1 메모리 영역(MR1), 멀티 레벨 셀들 및 트리플 레벨 셀들을 포함하는 제2 메모리 영역(MR2), 및 쿼드 레벨 셀들을 포함하는 제3 메모리 영역(MR3)을 포함할 수 있다. 스토리지 컨트롤러(110)의 메모리(예를 들어, 113)에는 메모리 영역에 대응하는 데이터 리텐션 기준 시간 정보를 포함하는 기준 시간 정보(T1)가 저장될 수 있다. 예를 들어, 메모리(113)에는 제1 메모리 영역(MR1)에 대응하는 제1 기준 시간(TR1), 및 제2 메모리 영역(MR2)에 대응하는 제2 기준 시간(TR2)에 대한 정보를 포함하는 기준 시간 정보(T1)가 저장될 수 있다. 제1 기준 시간(TR1)은 제2 기준 시간(TR2)보다 길 수 있다.
스토리지 장치(100)는 데이터(DATA)의 저장 시간을 제1 기준 시간(TR1) 및 제2 기준 시간(TR2)과 비교하여, 데이터(DATA)를 프로그램할 메모리 영역을 할당할 수 있다. 예를 들어, 데이터(DATA)의 저장 시간이 제2 기준 시간(TR2)보다 작은 경우에는 제3 메모리 영역(MR3)이 할당될 수 있고, 데이터(DATA)의 저장 시간이 제2 기준 시간(TR2)이상이고 제1 기준 시간(TR1)보다 작은 경우에는 제2 메모리 영역(MR2)이 할당될 수 있다. 데이터(DATA)의 저장 시간이 제1 기준 시간(TR2)이상이면, 제1 메모리 영역(MR1)이 할당될 수 있다. 데이터(DATA)에 요구되는 저장 시간이 길어질수록 데이터(DATA)는 비휘발성 메모리(120)에 프로그램된 상태가 오래 유지되어야 하므로, 제3 메모리 영역(MR3)보다는 제1 메모리 영역(MR1)에 프로그램될 수 있다.
다시 도 1 및 도 4를 참조하면, S30 단계에서, 스토리지 장치(100)는 저장 시간 정보(STI)에 기초하여, 데이터(DATA)의 소거 예정 시간 이후에 프로그램된 데이터(DATA)를 셀프-소거할 수 있다. 즉, 스토리지 장치(100)는 호스트(200)로부터 소거 요청이 없더라도 데이터(DATA)를 셀프-소거할 수 있다. 이 때, 데이터(DATA)의 소거 예정 시간은 데이터(DATA)의 저장 시간과 같거나, 저장 시간보다 길 수 있다. 스토리지 장치(100)는 비휘발성 메모리(120)에 프로그램된 데이터(DATA)의 열화가 예상되는 경우에 셀프-소거할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치(100)는, 수신된 데이터(DATA)의 특성에 따라 적합한 데이터 리텐션 특성을 갖는 메모리 영역을 할당하여 프로그램할 수 있고, 데이터 신뢰도가 보장되지 않는 데이터에 대해 셀프-소거 동작을 수행할 수 있다. 따라서, 데이터 신뢰도를 향상시키기 위해 방어 코드에 의한 프로그램 동작/소거 동작의 사이클 횟수를 감소시킬 수 있고, 데이터 신뢰도를 향상시키고 성능 저하를 방지할 수 있다.
도 6는 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다. 도 6의 S30 단계는 도 4의 S30 단계의 일 예시일 수 있고, S30 단계는 S31 내지 S33 단계를 포함할 수 있다.
도 1 및 도 6을 참조하면, 스토리지 장치(100)는 데이터(DATA)의 저장 시간 정보(STI)에 기초하여, 데이터(DATA)의 소거 예정 시간을 설정할 수 있다. 소거 예정 시간은 데이터(DATA)가 프로그램된 후 데이터(DATA)의 신뢰도가 보장되기 어려울 것으로 예상되는 시간일 수 있다. 예시적인 실시 예에서, 데이터(DATA)의 소거 예정 시간은 데이터(DATA)의 저장 시간과 같거나, 저장 시간보다 길 수 있다.
S32 단계에서, 스토리지 장치(100)는 프로그램된 데이터(DATA)에 대한 방어 코드 실행 여부에 따라 소거 예정 시간을 재설정할 수 있다. 예를 들어, 스토리지 장치(100)는 비휘발성 메모리(120)에 프로그램된 데이터(DATA)의 리드 오류를 제거하기 위해 리드 레벨을 변경하거나, 데이터(DATA)를 프리 블록에 재프로그램하는 리드 리클레임(read reclaim) 동작을 수행할 수 있다. 스토리지 장치(100)는 데이터(DATA)에 대한 리드 동작의 신뢰도 향상을 위한 리커버리 동작을 수행하기 위해, 펌웨어에 의한 방어 코드(recovery code)를 실행할 수 있다. 스토리지 장치(100)는 프로그램된 데이터(DATA)에 대한 방어 코드가 실행된 경우에는, 소거 예정 시간을 변경할 수 있다.
S33 단계에서, 스토리지 장치(100)는 소거 예정 시간 이후에 프로그램된 데이터(DATA)를 셀프-소거할 수 있다.
도 7은 도 1의 스토리지 장치(100)에 포함된 스토리지 컨트롤러(110A)를 상세하게 나타내는 블록도이다. 도 7에 대한 설명에서는 도 2에서와 동일한 부호에 대해 중복되는 설명을 생략하겠다.
도 1 및 도 7을 참조하면, 스토리지 컨트롤러(110A)는 프로세서(111), 호스트 인터페이스(112), 메모리(113A), 데이터 할당기(114) 및 메모리 인터페이스(115)를 포함할 수 있고, 이들은 버스(116)를 통해 서로 통신할 수 있다.
프로세서(111)는 메모리(113A)에 로드된 기계 학습 툴을 실행할 수 있고, 기계 학습을 수행할 수 있다. 스토리지 컨트롤러(110A)는 기계 학습을 수행하기 위한 별도의 프로세서를 더 포함할 수도 있다.
메모리(113A)에는 데이터(DATA)의 특성에 따른 데이터(DATA)의 저장 기간에 대한 정보를 추출하는 기계 학습 툴이 저장될 수 있고, 메모리(113A)에는 기계 학습 툴에 의해 처리될 데이터(즉, 기계 학습 모델(MLM)), 및 기계 학습 툴에 의해 생성된 저장 기간에 대한 정보를 저장할 수 있다.
스토리지 컨트롤러(110)는 일정 기간 동안 호스트(200)로부터 수신된 데이터(DATA) 및 데이터(DATA)의 저장 기간 정보(STI)를 수집할 수 있고, 수집된 정보에 기초하여 기계 학습을 수행함으로써 기계 학습 모델(MLM)을 추출할 수 있다. 스토리지 컨트롤러(110)는 호스트(200)로부터 저장 기간 정보(STI)가 수신되지 않더라도, 기계 학습 모델(MLM)을 이용하여 데이터(DATA)에 대응하는 저장 기간 정보(STI)를 획득할 수 있다. 따라서, 호스트(200)로부터 저장 기간 정보(STI)가 수신되지 않더라도, 스토리지 장치(100) 내부에서 데이터(DATA)의 특성에 대응하는 메모리 영역을 선택하여 프로그램할 수 있다.
다만, 기계 학습 모델(MLM)은 스토리지 장치(100) 내부에서의 기계 학습 동작을 통해 추출되지 않을 수도 있다. 스토리지 장치(100)는 외부로부터 기계 학습 모델(MLM)을 수신할 수 있다. 스토리지 장치(100)는 외부로부터 수신된 기계 학습 모델(MLM)을 이용한 추론 동작을 수행할 수도 있다. 또한, 스토리지 장치(100)는 추출한 기계 학습 모델(MLM)을 외부로 출력할 수도 있다.
도 8은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 동작 방법을 나타내는 흐름도이다.
도 1 및 도 8을 참조하면, S100 단계에서, 스토리지 장치(100)는 데이터(DATA)의 특성 정보 및 데이터(DATA)의 저장 시간 정보(STI)를 일정 시간 동안 수집할 수 있다. 예시적인 실시 예에서, 스토리지 장치(100)는 호스트(200)로부터 수신되는 데이터(DATA) 및 저장 시간 정보(STI)로부터, 데이터(DATA)의 특성 정보 및 데이터(DATA)의 저장 시간 정보(STI)를 수집할 수 있다. 예를 들어, S100 단계는 도 4의 S10 단계가 일정 시간 동안 반복됨으로써 수행될 수 있다. 또는, 예시적인 실시 예에서, 스토리지 장치(100)는 내부에 저장된 데이터(DATA)의 특성 정보 및 데이터(DATA)의 저장 시간 정보(STI)를 수집할 수 있다.
S200 단계에서, 스토리지 장치(100)는 수집된 정보, 즉, 데이터(DATA)의 특성 정보 및 데이터(DATA)의 저장 시간 정보(STI)를 이용하여 기계 학습 훈련(trainning)을 수행할 수 있다. 예시적인 실시 예에서, 수집된 정보는 기계 학습 훈련에 이용되기 적합하도록 전처리(preprocessing)될 수 있다.
기계 학습 훈련을 통해 추출된 기계 학습 모델(예를 들어, 도 7의 MLM)의 오차를 평가할 수 있다. 평가 결과에 따라 기계 학습 모델(MLM)의 정확도가 기준보다 낮을 경우에는 재훈련을 수행함으로써, 기계 학습 모델(MLM)의 학습도를 증가시키고 정확도를 향상시킬 수 있다.
S300 단계에서, 스토리지 장치(100)는 호스트(200)로부터 새로운 라이트 요청(WREQ) 및 새로운 데이터(DATA)를 수신할 수 있다. 새로운 데이터(DATA)의 저장 시간 정보는 호스트(200)로부터 별도로 수신하지 않을 수 있다.
S400 단계에서, 스토리지 장치(100)는 수신된 데이터(DATA)의 특성 정보를 획득하고, 기계 학습 추론을 통해 데이터(DATA)의 특성 정보로부터 데이터(DATA)의 저장 시간 정보(STI)를 추출할 수 있다. 예를 들어, 유저가 중요한 사진으로 설정한 사진 데이터를 스토리지 장치(100)에 저장하는 경우에는 데이터(DATA)가 스토리지 장치(100)에 상대적으로 오래 저장될 것이 요구될 수 있다. 반면, 유저가 기간 한정을 적용한 영화와 같은 동영상 데이터를 스토리지 장치(100)에 저장하는 경우에는 데이터(DATA)가 스토리지 장치(100)에 상대적으로 짧게 저장되어도 무방할 수 있다. 따라서, 호스트(200)로부터 데이터(DATA)의 저장 시간 정보(STI)를 수신하지 않더라도, 기계 학습 추론을 통해 데이터(DATA)의 특성으로부터 데이터(DATA)의 저장 시간이 추출될 수 있다.
S500 단계에서, 스토리지 장치(100)는 추출된 저장 시간 정보(STI)에 기초하여, 데이터(DATA)를 선택된 메모리 영역에 프로그램할 수 있다. 따라서, 호스트(200)로부터 저장 기간 정보(STI)가 수신되지 않더라도, 스토리지 장치(100) 내부에서 데이터(DATA)의 특성에 대응하는 메모리 영역을 선택하여 프로그램할 수 있다. S500 단계 이후에는, 도 4의 S30 단계가 수행될 수 있다.
도 9는 도 8의 S400 단계를 설명하기 위한 도면으로서, 기계 학습 모델을 이용한 기계 학습 추론 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 예시적인 실시 예에서, 기계 학습 모델(예를 들어, 도 7의 MLM)은 뉴럴 네트워크 모델(NN)로 구현될 수 있고, 데이터의 저장 시간을 예측할 수 있다. 뉴럴 네트워크 모델(NN)은 스토리지 장치에 포함되는 프로세서에 의해 실행되는 소프트웨어로 구현될 수 있다. 도 9의 뉴럴 네트워크 모델(NN)은 예시일 뿐, 기계 학습 모델(MLM)은 이에 한정되지 않으며, 다양한 모델로 구현될 수 있다. 기계 학습 모델(MLM)은 예를 들어, 선형 회귀(linear regression) 모델, 다항식 회귀(polynomial regression) 모델, 랜덤 포레스트(random forest) 모델, 다층 퍼셉트론(multilayer perceptron(fully connected neural network)), 뉴럴 네트워크(neural network) 모델, 딥러닝(deep learning) 모델, 강화 학습(reinforcement learning) 등을 포함할 수 있다. 뉴럴 네트워크 모델은 예를 들어, 컨볼루셔널 뉴럴 네트워크(convolutional neural network) 모델, 및 순환 뉴럴 네트워크(recurrent neural network) 모델 등을 포함할 수 있다. 도 9에서는, 기계 학습 모델의 예시로서, 딥 뉴럴 네트워크(Deep Neural Network) 모델인 뉴럴 네트워크 모델(NN)을 설명하나, 본 개시는 이에 한정되지는 않는다.
뉴럴 네트워크 모델(NN)은, 입력 계층(IL), 하나 이상의 중간 계층(ML) 및 출력 계층(OL)을 포함하는 다중 계층을 포함할 수 있다. 입력 계층(IL)은 적어도 하나의 입력 값(DF1~DFn, n은 자연수), 예를 들어, 데이터의 특성 정보를 수신할 수 있다. 출력 계층(OL)은 예측 출력 값, 예를 들어, 데이터의 저장 시간 정보(STI)를 생성할 수 있다.
뉴럴 네트워크 모델(NN)의 입력 계층(IL), 하나 이상의 중간 계층(ML) 및 출력 계층(OL) 각각은 여기서는 또한 뉴런으로 지칭되는 복수의 노드를 포함할 수 있다. 각 노드 또는 뉴런은 하나이상의 입력 및 출력을 갖는 계산 단위를 나타낼 수 있다. 계층의 복수의 노드로부터의 각각의 입력은 인접한 계층의 각 노드로부터 공급될 수 있다. 유사하게, 출력은 인접 층의 복수의 노드에 공급될 수 있다. 입력 계층(IL), 하나 이상의 중간 계층(ML) 및 출력 계층(OL) 각각의 노드들의 수는 뉴럴 네트워크 모델(NN)의 어플리케이션에 따라 서로 동일하거나 상이할 수 있다. 본 개시에서는 동일한 수의 노드를 갖는 2개의 중간 계층들(ML)만을 도시하고 있지만, 본 발명의 범위를 벗어나지 않으면서, 임의의 개수의 중간 계층과 중간 계층들 각각의 다른 수의 중간 계층이 존재할 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 스토리지 장치가 적용된 시스템을 도시한 도면이다.
도 10을 참조하면, 도 10의 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 10의 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용(automotive) 장비 등이 될 수도 있다.
도 10을 참조하면, 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator) 블록(1130)을 더 포함할 수 있다. 이와 같은 가속기 블록(1130)은 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(universal flash storage)와 같은 표준 규약이 적용되는 장치일 수 있다. 스토리지 장치(1300a, 1300b)는 도 1 내지 도 10에서 설명된 스토리지 장치(100)로 구현될 수 있다. 따라서, 스토리지 장치(1300a, 1300b)는 수신된 데이터의 특성에 따라 메모리 영역을 선택하여 프로그램할 수 있고, 데이터 신뢰도가 보장되지 않는 데이터에 대해 셀프-소거 동작을 수행할 수 있다. 따라서, 데이터 신뢰도를 향상시키고 성능 저하를 방지할 수 있다.
촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
도 11는 본 발명의 하나의 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 11을 참조하면, 메모리 시스템(3000)은 메모리 장치(3100) 및 메모리 컨트롤러(3200)를 포함할 수 있다. 메모리 시스템(3000)은 복수의 채널들(CH1~CHm)을 지원할 수 있고, 메모리 장치(3100)와 메모리 컨트롤러(3200)는 복수의 채널들(CH1~CHm)을 통해 연결될 수 있다. 예를 들어, 메모리 시스템(3000)은 SSD와 같은 스토리지 장치로 구현될 수 있다. 메모리 장치(3100)는 도 1의 비휘발성 메모리(120)일 수 있고, 메모리 컨트롤러(322)는 도 1의 스토리지 컨트롤러(110)일 수 있다.
메모리 장치(3100)는 복수의 비휘발성 메모리 장치들(NVM11~NVMma)을 포함할 수 있다. 비휘발성 메모리 장치들(NVM11~NVMma) 각각은 대응하는 웨이(way)를 통해 복수의 채널들(CH1~CHm) 중 하나에 연결될 수 있다. 예를 들어, 비휘발성 메모리 장치들(NVM11~NVM1a)은 웨이들(W11~W1a)을 통해 제1 채널(CH1)에 연결되고, 비휘발성 메모리 장치들(NVM21~NVM2a)은 웨이들(W21~W2a)을 통해 제2 채널(CH2)에 연결될 수 있다. 예시적인 실시 예에서, 비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 컨트롤러(3200)로부터의 개별적인 명령에 따라 동작할 수 있는 임의의 메모리 단위로 구현될 수 있다. 예를 들어, 비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 칩(memory chip) 또는 다이(memory die)로 구현될 수 있으나, 본 개시는 이에 한정되는 것은 아니다. 예를 들어, 비휘발성 메모리 장치들(NVM11~NVMma)은 도 1의 제1 내지 제a 메모리 다이(DIE1~DIEa)일 수 있다.
메모리 컨트롤러(3200)는 복수의 채널들(CH1~CHm)을 통해 메모리 장치(3100)와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 채널들(CH1~CHm)을 통해 메모리 장치(3100)로 커맨드들(ICMD1~ICMDm), 어드레스들(ADDR1~ADDRm), 및 데이터(DATA1~DATAm)를 메모리 장치(3100)로 전송하거나, 메모리 장치(3100)로부터 데이터(DATA1~DATAm)를 수신할 수 있다.
메모리 컨트롤러(3200)는 각각의 채널을 통해 해당 채널에 연결된 비휘발성 메모리 장치들 중 하나를 선택하고, 선택된 비휘발성 메모리 장치와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)에 연결된 비휘발성 메모리 장치들(NVM11~NVM1a) 중 비휘발성 메모리 장치(NVM11)를 선택할 수 있다. 메모리 컨트롤러(3200)는 선택된 비휘발성 메모리 장치(NVM11)로 제1 채널(CH1)을 통해 커맨드(ICMD1), 어드레스(ADDR1), 및 데이터(DATA1)를 전송하거나, 선택된 비휘발성 메모리 장치(NVM11)로부터 데이터(DATA1)를 수신할 수 있다.
메모리 컨트롤러(3200)는 서로 다른 채널들을 통해 메모리 장치(3100)와 신호들을 병렬적으로 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)을 통해 메모리 장치(3100)로 커맨드(ICMD1)를 전송하는 동안 제2 채널(CH2)을 통해 메모리 장치(3100)로 커맨드(ICMD2)를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)을 통해 메모리 장치(3100)로부터 데이터(DATA1)를 수신하는 동안 제2 채널(CH2)을 통해 메모리 장치(3100)로부터 데이터(DATA2)를 수신할 수 있다.
메모리 컨트롤러(3200)는 메모리 장치(3100)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(3200)는 채널들(CH1~CHm)로 신호를 전송하여 채널들(CH1~CHm)에 연결된 비휘발성 메모리 장치들(NVM11~NVMma) 각각을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(3200)는 제1 채널(CH1)로 커맨드(ICMD1) 및 어드레스(ADDR1)를 전송하여 비휘발성 메모리 장치들(NVM11~NVM1a) 중 선택된 하나를 제어할 수 있다.
비휘발성 메모리 장치들(NVM11~NVMma) 각각은 메모리 컨트롤러(3200)의 제어에 따라 동작할 수 있다. 예를 들어, 비휘발성 메모리 장치(NVM11)는 제1 채널(CH1)로 제공되는 커맨드(ICMD1), 어드레스(ADDR1), 및 데이터(DATA1)에 따라 데이터(DATA1)를 프로그램할 수 있다. 예를 들어, 비휘발성 메모리 장치(NVM21)는 제2 채널(CH2)로 제공되는 커맨드(ICMD2) 및 어드레스(ADDR2)에 따라 데이터(DATA2)를 독출하고, 독출된 데이터(DATA2)를 메모리 컨트롤러(3200)로 전송할 수 있다.
도 11에는 메모리 장치(3100)가 m개의 채널을 통해 메모리 컨트롤러(3200)와 통신하고, 메모리 장치(3100)가 각각의 채널에 대응하여 a개의 비휘발성 메모리 장치를 포함하는 것으로 도시되나, 채널들의 개수와 하나의 채널에 연결된 비휘발성 메모리 장치의 개수는 다양하게 변경될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 제1 메모리 셀들을 포함하는 제1 메모리 영역, 제2 메모리 셀들을 포함하는 제2 메모리 영역, 및 제3 메모리 셀들을 포함하는 제3 메모리 영역을 포함하는 비휘발성 메모리;
    라이트 요청, 데이터 및 상기 데이터의 저장 시간 정보를 호스트로부터 수신하고, 상기 라이트 요청에 응답하여 상기 데이터를 비휘발성 메모리에 프로그램하는 스토리지 컨트롤러를 포함하고,
    상기 제1 메모리 셀들의 데이터 용량이 상기 제2 메모리 셀들의 데이터 용량보다 작고, 상기 제2 메모리 셀들의 데이터 용량이 상기 제3 메모리 셀들의 데이터 용량보다 작고,
    상기 스토리지 컨트롤러는, 상기 저장 시간 정보에 기초하여 상기 제1 메모리 영역, 상기 제2 메모리 영역, 및 상기 제3 메모리 영역 중 선택된 메모리 영역에 상기 데이터를 프로그램하고,
    상기 스토리지 컨트롤러는,
    상기 데이터의 저장 시간이 제1 기준 시간 이상이면 상기 데이터를 상기 제1 메모리 영역에 프로그램하고,
    상기 데이터의 저장 시간이 제2 기준 시간 이상이고 상기 제1 기준 시간 미만이면 상기 데이터를 상기 제2 메모리 영역에 프로그램하고,
    상기 데이터의 저장 시간이 상기 제2 기준 시간 미만이면 상기 데이터를 상기 제3 메모리 영역에 프로그램하는 것을 특징으로 하는 스토리지 장치.
  2. 제1 항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 저장 시간 정보에 기초하여, 상기 데이터가 프로그램된 후 소거 예정 시간이 경과하면 셀프-소거하는 것을 특징으로 하는 스토리지 장치.
  3. 제2 항에 있어서,
    상기 소거 예정 시간은 상기 데이터의 저장 시간보다 길거나 같고,
    상기 데이터의 저장 시간은, 상기 데이터가 신뢰도 조건을 만족하면서 프로그램된 상태를 유지하는 최소 시간인 것을 특징으로 하는 스토리지 장치.
  4. 제2 항에 있어서,
    상기 스토리지 컨트롤러는,
    프로그램된 상기 데이터에 대한 방어 코드 실행 여부에 따라 상기 소거 예정 시간을 재설정하는 것을 특징으로 하는 스토리지 장치.
  5. 제2 항에 있어서,
    상기 제1 메모리 영역, 상기 제2 메모리 영역, 및 상기 제3 메모리 영역 각각은 복수의 메모리 블록들을 포함하고,
    상기 복수의 메모리 블록들 각각은 상기 셀프-소거 동작이 수행되는 소거 단위인 것을 특징으로 하는 스토리지 장치.
  6. 제1 항에 있어서,
    상기 제1 메모리 셀들은 1-bit의 데이터를 저장하는 싱글 레벨 셀들을 포함하고, 상기 제2 메모리 셀들은 2-bit의 데이터를 저장하는 멀티 레벨 셀들을 포함하고, 상기 제3 메모리 셀들은 4-bit의 데이터를 저장하는 쿼드 레벨 셀들을 포함하는 것을 특징으로 하는 스토리지 장치.
  7. 제1 항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 데이터의 특성 정보 및 상기 저장 시간 정보를 수집하고,
    상기 수집된 정보를 이용하여 기계 학습 훈련함으로써, 기계 학습 모델을 추출하는 것을 특징으로 하는 스토리지 장치.
  8. 제1 메모리 셀들을 포함하는 제1 메모리 영역, 제2 메모리 셀들을 포함하는 제2 메모리 영역, 및 제3 메모리 셀들을 포함하는 제3 메모리 영역을 포함하는 비휘발성 메모리;
    프로세서 및 기계 학습 모델이 저장된 메모리를 포함하고, 라이트 요청에 응답하여 데이터를 상기 비휘발성 메모리에 프로그램하는 스토리지 컨트롤러를 포함하고,
    상기 제1 메모리 셀들, 상기 제2 메모리 셀들, 및 상기 제3 메모리 셀들은 서로 상이한 데이터 용량을 가지고,
    상기 스토리지 컨트롤러는, 상기 기계 학습 모델을 이용한 기계 학습 추론을 통해 상기 데이터의 특성 정보로부터 상기 데이터의 저장 시간 정보를 추출하고,
    상기 저장 시간 정보에 기초하여 상기 제1 메모리 영역, 상기 제2 메모리 영역, 및 상기 제3 메모리 영역 중 선택된 메모리 영역에 상기 데이터를 프로그램하는 것을 특징으로 하는 스토리지 장치.
  9. 제8 항에 있어서,
    상기 스토리지 컨트롤러는,
    호스트로부터 이전에 수신된 데이터 및 이전에 수신된 데이터의 저장 시간 정보를 일정 시간 동안 수집하고,
    상기 수집된 정보를 이용하여 기계 학습 훈련함으로써, 상기 기계 학습 모델을 추출하여 상기 메모리에 저장하는 것을 특징으로 하는 스토리지 장치.
  10. 제8 항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 저장 시간 정보에 기초하여, 상기 데이터가 프로그램된 후 소거 예정 시간이 경과하면 셀프-소거하는 것을 특징으로 하는 스토리지 장치.
  11. 제10 항에 있어서,
    상기 소거 예정 시간은 상기 데이터의 저장 시간보다 길거나 같고,
    상기 데이터의 저장 시간은, 상기 데이터가 신뢰도 조건을 만족하면서 프로그램된 상태를 유지하는 최소 시간인 것을 특징으로 하는 스토리지 장치.
  12. 제8 항에 있어서,
    상기 메모리는 기준 시간 정보를 저장하고,
    상기 스토리지 컨트롤러는,
    상기 기준 시간 정보 및 상기 저장 시간 정보에 따라, 상기 제1 메모리 영역, 상기 제2 메모리 영역, 및 상기 제3 메모리 영역 중 선택된 메모리 영역에 상기 데이터를 프로그램하는 것을 특징으로 하는 스토리지 장치.
  13. 제12 항에 있어서,
    상기 기준 시간 정보는 제1 기준 시간 및 제2 기준 시간에 대한 정보를 포함하고,
    상기 스토리지 컨트롤러는,
    상기 데이터의 저장 시간이 상기 제1 기준 시간 이상이면 상기 데이터를 상기 제1 메모리 영역에 프로그램하고,
    상기 데이터의 저장 시간이 상기 제2 기준 시간 이상이고 상기 제1 기준 시간 미만이면 상기 데이터를 상기 제2 메모리 영역에 프로그램하고,
    상기 데이터의 저장 시간이 상기 제2 기준 시간 미만이면 상기 데이터를 상기 제3 메모리 영역에 프로그램하는 것을 특징으로 하는 스토리지 장치.
  14. 제8 항에 있어서,
    상기 제1 메모리 셀들은 1-bit의 데이터를 저장하는 싱글 레벨 셀들을 포함하고, 상기 제2 메모리 셀들은 2-bit의 데이터를 저장하는 멀티 레벨 셀들 및 3-bit의 데이터를 저장하는 트리플-레벨 셀들을 포함하고, 상기 제3 메모리 셀들은 4-bit의 데이터를 저장하는 쿼드 레벨 셀들을 포함하는 것을 특징으로 하는 스토리지 장치.
  15. 라이트 요청, 데이터 및 상기 데이터의 저장 시간 정보를 호스트로부터 수신하는 단계;
    상기 저장 시간 정보에 기초하여, 상기 데이터를 할당된 메모리 영역에 프로그램하는 단계; 및
    상기 저장 시간 정보에 기초하여, 소거 예정 시간 이후 프로그램된 상기 데이터를 셀프-소거하는 단계를 포함하고,
    상기 데이터를 할당된 메모리 영역에 프로그램하는 단계는, 데이터 용량이 서로 상이한 메모리 셀들을 각각 포함하는 복수의 메모리 영역들 중 선택된 메모리 영역에 상기 데이터를 프로그램하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  16. 제15 항에 있어서,
    상기 복수의 메모리 영역들은, 제1 메모리 셀들을 포함하는 제1 메모리 영역, 제2 메모리 셀들을 포함하는 제2 메모리 영역, 및 제3 메모리 셀들을 포함하는 제3 메모리 영역을 포함하고,
    상기 제1 메모리 셀들의 데이터 용량이 상기 제2 메모리 셀들의 데이터 용량보다 작고, 상기 제2 메모리 셀들의 데이터 용량이 상기 제3 메모리 셀들의 데이터 용량보다 작고,
    상기 데이터를 할당된 메모리 영역에 프로그램하는 단계는, 상기 제1 메모리 영역, 상기 제2 메모리 영역 및 상기 제3 메모리 영역 중 선택된 메모리 영역에 상기 데이터를 프로그램하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  17. 제16 항에 있어서,
    상기 제1 메모리 셀들은 1-bit의 데이터를 저장하는 싱글 레벨 셀들을 포함하고, 상기 제2 메모리 셀들은 2-bit의 데이터를 저장하는 멀티 레벨 셀들을 포함하고, 상기 제3 메모리 셀들은 4-bit의 데이터를 저장하는 쿼드 레벨 셀들을 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  18. 제15 항에 있어서,
    상기 프로그램된 상기 데이터를 셀프-소거하는 단계는,
    상기 데이터의 상기 저장 시간 정보에 기초하여, 상기 데이터의 소거 예정 시간을 설정하는 단계;
    프로그램된 상기 데이터에 대한 방어 코드 실행 여부에 따라 상기 소거 예정 시간을 재설정 하는 단계; 및
    상기 데이터가 프로그램된 시점으로부터 상기 소거 예정 시간 이후에 상기 데이터를 셀프-소거하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  19. 제15 항에 있어서,
    상기 데이터를 할당된 메모리 영역에 프로그램하는 단계는,
    상기 저장 시간과 기준 시간을 비교한 결과에 따라, 상기 데이터가 프로그램될 상기 메모리 영역을 할당하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  20. 제15 항에 있어서,
    상기 데이터의 특성 정보 및 상기 저장 시간 정보를 일정 시간 동안 수집하는 단계; 및
    상기 수집된 정보를 이용하여 기계 학습 훈련하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
KR1020210154290A 2021-11-10 2021-11-10 스토리지 장치 및 이의 동작 방법 KR20230068197A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210154290A KR20230068197A (ko) 2021-11-10 2021-11-10 스토리지 장치 및 이의 동작 방법
CN202211349862.6A CN116107493A (zh) 2021-11-10 2022-10-31 存储设备及操作方法
EP22206251.5A EP4180971A1 (en) 2021-11-10 2022-11-08 Storage device and operating method
US17/983,455 US20230147773A1 (en) 2021-11-10 2022-11-09 Storage device and operating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210154290A KR20230068197A (ko) 2021-11-10 2021-11-10 스토리지 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230068197A true KR20230068197A (ko) 2023-05-17

Family

ID=84330427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210154290A KR20230068197A (ko) 2021-11-10 2021-11-10 스토리지 장치 및 이의 동작 방법

Country Status (4)

Country Link
US (1) US20230147773A1 (ko)
EP (1) EP4180971A1 (ko)
KR (1) KR20230068197A (ko)
CN (1) CN116107493A (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4452261B2 (ja) * 2006-09-12 2010-04-21 株式会社日立製作所 ストレージシステムの論理ボリューム管理方法、論理ボリューム管理プログラム、及びストレージシステム
KR102289919B1 (ko) * 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US20210011623A1 (en) * 2019-07-10 2021-01-14 Pure Storage, Inc. Generating tags for data allocation

Also Published As

Publication number Publication date
US20230147773A1 (en) 2023-05-11
EP4180971A1 (en) 2023-05-17
CN116107493A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
KR20150121562A (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
KR20170099610A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11715538B2 (en) Memory system processing request based on inference and operating method of the same
US20210334000A1 (en) Memory system, memory controller and memory device for configuring super blocks
US20230266884A1 (en) Operating method for storage controller and storage system including same
KR102304929B1 (ko) 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법
KR20160105100A (ko) 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20170109344A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11586379B2 (en) Memory system and method of operating the same
US20220206893A1 (en) Storage controller and storage system including the same
EP4180971A1 (en) Storage device and operating method
KR20230094110A (ko) 스토리지 장치
KR102372828B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20220122826A (ko) 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치의 리드 방법
KR20210156010A (ko) 저장 장치 및 그 동작 방법
CN112181282A (zh) 存储器系统、存储器控制器及用于操作存储器系统的方法
EP4181125A2 (en) Storage device and operating method thereof
KR102553263B1 (ko) 스토리지 장치 및 이의 동작 방법
US11562776B2 (en) Performing read operations on grouped memory cells
US11886747B2 (en) Controller, storage device and operation method of the storage device
US20240184486A1 (en) Storage device determining memory area to which data is written using write throughput and method of operation
US20240152276A1 (en) Storage device determining priorities on the basis of temperatures of memory dies and temperature variations, and method thereof
US20230131466A1 (en) Storage device and operation method thereof
US20230144659A1 (en) Memory device, method of operating the same, and method of operating storage device including the same
KR20230068712A (ko) 메모리 시스템의 성능 최적화 장치 및 그 방법