KR20230032610A - 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 - Google Patents

데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 Download PDF

Info

Publication number
KR20230032610A
KR20230032610A KR1020210115638A KR20210115638A KR20230032610A KR 20230032610 A KR20230032610 A KR 20230032610A KR 1020210115638 A KR1020210115638 A KR 1020210115638A KR 20210115638 A KR20210115638 A KR 20210115638A KR 20230032610 A KR20230032610 A KR 20230032610A
Authority
KR
South Korea
Prior art keywords
user
capacity
data
memory
information
Prior art date
Application number
KR1020210115638A
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 KR1020210115638A priority Critical patent/KR20230032610A/ko
Priority to US17/579,117 priority patent/US20230061626A1/en
Priority to CN202210516299.0A priority patent/CN115729447A/zh
Publication of KR20230032610A publication Critical patent/KR20230032610A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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

데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법{DATA PROCESSING SYSTEM AND OPERATION METHOD THEREOF}
본 발명은 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법에 관한 것이다.
최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨터 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 메모리 장치를 이용하는 메모리 시스템, 다시 말해 데이터 저장 장치를 사용한다. 데이터 저장 장치는 휴대용 전자 장치의 주 기억 장치 또는 보조 기억 장치로 사용된다.
메모리 장치를 이용한 데이터 저장 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며, 또한 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 메모리 시스템의 일 예로 데이터 저장 장치는, USB(Universal Serial Bus) 메모리 장치, 다양한 인터페이스를 갖는 메모리 카드, 솔리드 스테이트 드라이브(SSD: Solid State Drive) 등을 포함한다.
본 발명은 메모리 시스템의 수명을 향상시킬 수 있는 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법을 제공하고자 한다.
본 발명의 실시 예에 따른 데이터 처리 시스템은, 가용 영역 및 배드 영역을 포함하는 메모리 시스템; 상기 메모리 시스템으로부터의 저장 영역 정보에 기초하여 상기 가용 영역에서의 유저 용량에 따른 기대 수명을 결정하고, 요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정하고, 상기 새로운 유저 용량 정보를 상기 메모리 시스템으로 제공함으로써 상기 메모리 시스템이 상기 가용 영역에서의 유저 용량 및 오버프로비저닝 용량을 재설정하도록 제어하는 호스트를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템의 동작 방법에 있어서, 상기 데이터 처리 시스템에 포함된 메모리 시스템의 저장 영역 정보에 기초하여 상기 메모리 시스템의 가용 영역에서의 유저 용량에 따른 기대 수명을 결정하는 단계; 요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정하는 단계; 및 상기 새로운 유저 용량 정보에 기초하여 상기 가용 영역에서의 유저 용량 및 오버프로비저닝 용량을 재설정하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은, 가용 영역 및 배드 영역으로 구분되는 메모리 블록들을 포함하는 메모리 장치; 및 호스트로부터 수신되는 데이터의 양과 백그라운드 동작에 의해 프로그램되는 데이터의 양을 모니터링하여 정해진 기간에서의 평균 블록 사용량을 확인하고, 상기 가용 영역에 포함된 메모리 블록들의 최대 P/E(program/erase) 사이클 및 현재 P/E 사이클에 기초하여 블록 내구도의 총합을 확인하며, 상기 블록 내구도의 총합과 상기 평균 블록 사용량에 기초하여 상기 가용 영역에서의 유저 용량에 따른 기대 수명을 계산하는 컨트롤러를 포함할 수 있다.
본 발명은 메모리 시스템의 수명을 향상시킬 수 있는 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법을 제공하고자 한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(110)을 포함하는 데이터 처리 시스템(100)의 일 예를 개략적으로 도시한 도면이다.
도 2는 도 1을 참조하여 설명된 컨트롤러(130)를 상세히 설명하기 위한 도면이다.
도 3은 메모리 장치(150)의 저장 공간을 개략적으로 나타낸다.
도 4는 본 발명의 실시 예에 따른 호스트(102) 및 메모리 시스템(110)의 상호작용을 나타낸다.
도 5는 유저 용량에 따른 기대 수명을 설명하기 위한 도면이다.
도 6은 호스트(102)가 사용자에게 제공할 수 있는 유저 용량에 따른 기대 수명 정보를 예시한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.
그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(110)을 포함하는 데이터 처리 시스템(100)의 일 예를 개략적으로 도시한 도면이다.
도 1을 참조하면, 데이터 처리 시스템(100)은, 호스트(102) 및 메모리 시스템(110)을 포함한다.
호스트(102)는 전자 장치, 예를 들어 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치들, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 전자 장치들을 포함할 수 있다.
호스트(102)는 적어도 하나의 운영 시스템(OS: operating system)을 포함할 수 있다. 운영 시스템은 호스트(102)의 기능 및 동작을 전반적으로 관리 및 제어하고, 데이터 처리 시스템(100) 또는 메모리 시스템(110)을 사용하는 사용자와 호스트(102) 간에 상호 동작을 제공한다. 운영 시스템은 사용자의 사용 목적 및 용도에 상응한 기능 및 동작을 지원하며, 호스트(102)의 이동성(mobility)에 따라 일반 운영 시스템과 모바일 운용 시스템으로 구분할 수 있다. 운영 시스템에서의 일반 운영 시스템 시스템은, 사용자의 사용 환경에 따라 개인용 운영 시스템과 기업용 운영 시스템으로 구분할 수 있다.
메모리 시스템(110)은 호스트(102)의 요청에 응하여 호스트(102)의 데이터를 저장하기 위해 동작할 수 있다. 예를 들어, 메모리 시스템(110)은 솔리드 스테이트 드라이브(SSD: Solid State Drive), MMC, eMMC(embedded MMC), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(SD: Secure Digital) 카드, USB(Universal Serial Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다.
메모리 시스템(110)은 다양한 종류의 저장 장치에 의해 구현될 수 있다. 예를 들어, 상기 저장 장치는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등과 같은 휘발성 메모리 장치와, ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable ROM), EEPROM(Electrically Erasable ROM), FRAM(Ferromagnetic ROM), PRAM(Phase change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 플래시 메모리 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 상기 플래시 메모리는 3차원 스택 구조를 가질 수 있다.
메모리 시스템(110)은 메모리 장치(150) 및 컨트롤러(130)를 포함할 수 있다. 메모리 장치(150)는 호스트(102)를 위한 데이터를 저장할 수 있으며, 컨트롤러(130)는 메모리 장치(150)로의 데이터 저장을 제어할 수 있다.
컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적될 수 있다. 일 예로, 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적되어 SSD를 구성할 수 있다. 메모리 시스템(110)이 SSD로 사용되면, 메모리 시스템(110)에 연결된 호스트(102)의 동작 속도는 향상될 수 있다. 게다가, 컨트롤러(130) 및 메모리 장치(150)는, 하나의 반도체 장치로 집적되어 메모리 카드를 구성할 수도 있다. 예를 들어, 컨트롤러(130) 및 메모리 장치(150)는 PC 카드(PCMCIA: Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억 장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
다른 일 예로, 메모리 시스템(110)은, 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 태블릿 컴퓨터(tablet computer), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB(Digital Multimedia Broadcasting) 재생기, 3차원 텔레비전(3-dimensional television), 스마트 텔레비전(smart television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 데이터 센터를 구성하는 스토리지, 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID(radio frequency identification) 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등을 구성할 수 있다.
메모리 장치(150)는 비휘발성 메모리 장치일 수 있으며, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있다. 메모리 장치(150)는 프로그램 동작을 통해 호스트(102)로부터 제공된 데이터를 저장할 수 있고, 리드 동작을 통해 호스트(102)로 메모리 장치(150)에 저장된 데이터를 제공할 수 있다. 메모리 장치(150)는 복수의 메모리 블록들을 포함하며, 메모리 블록들 각각은 복수의 페이지들을 포함하며, 상기 페이지들 각각은 워드라인에 연결된 복수의 메모리 셀들을 포함할 수 있다. 일 실시예에서, 메모리 장치(150)는 플래시 메모리가 될 수 있다. 상기 플래시 메모리는 3차원 스택 구조를 가질 수 있다.
컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)를 제어할 수 있다. 예를 들어, 컨트롤러(130)는 메모리 장치(150)로부터 리드된 데이터를 호스트(102)로 제공하고, 호스트(102)로부터 제공된 데이터를 메모리 장치(150)에 저장할 수 있다. 이러한 동작을 위해, 컨트롤러(130)는 메모리 장치(150)의 리드(read), 프로그램(program), 이레이즈(erase) 등의 동작을 제어할 수 있다.
한편, 메모리 장치(150)의 수명은 제한될 수 있다. 예를 들어, 메모리 장치(150)에 포함된 메모리 블록들에서 프로그램 및 이레이즈가 반복되면 상기 메모리 블록들의 수명이 다할 수 있다. 수명이 다한 메모리 블록에는 데이터가 정상적으로 프로그램될 수 없다. 수명이 다하여 프로그램 페일이 발생한 메모리 블록은 배드 블록으로 지칭될 수 있다. 컨트롤러(130)는 어느 메모리 블록이 배드 블록인지를 나타내는 배드 블록 정보를 저장할 수 있으며, 상기 배드 블록 정보를 이용하여 배드 블록에 대한 액세스를 제한할 수 있다.
메모리 장치(150)를 사용함에 따라 배드 블록의 수가 증가하고 정상 블록의 수가 감소할 수 있다. 모든 정상 블록에 데이터가 프로그램되는 경우 메모리 장치(150)에는 더 이상 데이터가 프로그램될 수 없으며, 메모리 장치(150)의 수명이 다할 수 있다. 이하에서, 정상 블록의 수가 감소함에도 불구하고 메모리 장치(150)의 기대 수명을 향상시킬 수 있는 방법이 제안된다.
본 발명의 실시 예에 따르면, 메모리 시스템(110)은 호스트(102)에 의해 액세스될 수 있는 저장 공간의 크기를 축소함으로써 메모리 장치(150)의 수명을 향상시킬 수 있다. 호스트(102)에 의해 액세스될 수 있는 저장 공간의 크기는 유저 용량으로 지칭될 수 있다.
호스트(102)는 메모리 시스템(110)으로부터 획득한 정보에 기초하여 유저 용량에 따른 기대 수명을 결정하고, 요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정하고, 상기 새로운 유저 용량 정보를 메모리 시스템(110)으로 제공할 수 있다. 메모리 시스템(110)은 호스트(102)로부터의 새로운 유저 용량 정보에 기초하여 유저 용량을 축소함으로써 메모리 장치(150)의 수명을 향상시킬 수 있다. 이하에서, 도 2 내지 도 6을 참조하여 본 발명의 실시 예에 따른 메모리 시스템(110) 및 데이터 처리 시스템(100)이 자세히 설명된다.
도 2는 도 1을 참조하여 설명된 컨트롤러(130)를 상세히 설명하기 위한 도면이다.
컨트롤러(130)는 서로 내부 버스를 통해 동작 가능하도록 연결된 호스트 인터페이스(132), 프로세서(134), ECC(error correction code, 138), 메모리 인터페이스(142) 및 메모리(144)를 포함할 수 있다.
호스트 인터페이스(132)는 호스트(102)의 커맨드(command) 및 데이터를 처리하며, USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트(102)와 통신하도록 구성될 수 있다.
호스트 인터페이스(132)는 호스트(102)와 데이터를 주고받기 위해 호스트 인터페이스 계층(HIL: Host Interface Layer)이라 불리는 펌웨어(firmware)를 구동할 수 있다.
ECC(138)는 메모리 장치(150)로부터 독출되는 데이터에 포함된 에러를 검출 및 정정할 수 있다. 즉, ECC(138)는 ECC 인코딩 프로세스에서 사용된 ECC 코드를 통해 메모리 장치(150)로부터 독출된 데이터에 에러 정정 디코딩 프로세스를 수행할 수 있다. 에러 정정 디코딩 프로세스의 결과에 따라, ECC(138)는 예를 들어 에러 정정 성공/실패 신호와 같은 신호를 출력할 수 있다. 에러 비트의 수가 정정 가능한 에러 비트의 임계치를 초과하면, ECC(138)는 에러 비트를 정정하지 못하고, 에러 정정 실패 신호를 출력할 수 있다.
ECC(138)는 LDPC(low density parity check) 코드(code), BCH(Bose, Chaudhuri, Hocquenghem) 코드, 터보 코드(turbo code), 리드-솔로몬 코드(Reed-Solomon code), 컨벌루션 코드(convolution code), RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 수행할 수 있다. 그러나, ECC(138)는 특정한 구조로 한정되는 것은 아니다. ECC(138)는 오류 정정을 위한 회로, 모듈, 시스템, 또는 장치를 모두 포함할 수 있다.
메모리 인터페이스(142)는 컨트롤러(130)가 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어하도록, 컨트롤러(130)와 메모리 장치(150) 간의 인터페이싱을 위한 메모리/스토리지(storage) 인터페이스로서의 역할을 할 수 있다. 메모리 장치(150)가 플래시 메모리, 특히 NAND 플래시 메모리인 경우, 메모리 인터페이스(142)는 메모리 장치(150)를 위한 제어 신호를 생성하고, 프로세서(134)의 제어 하에 메모리 장치(150)로 제공되는 데이터를 처리할 수 있다. 메모리 인터페이스(142)는 컨트롤러(130)와 메모리 장치(150) 사이의 커맨드 및 데이터를 처리하기 위한 인터페이스, 예를 들어 NAND 플래시 인터페이스로서 동작할 수 있다.
메모리 인터페이스(142)는 플래시 인터페이스 계층(FIL: Flash Interface Layer)이라 불리는 펌웨어(firmware)를 구동할 수 있다.
메모리(144)는 메모리 시스템(110) 및 컨트롤러(130)의 동작 메모리로서의 역할을 수행할 수 있으며, 메모리 시스템(110) 및 컨트롤러(130)의 구동을 위한 데이터를 저장할 수 있다. 컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)가 리드, 프로그램, 이레이즈 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)로부터 독출되는 데이터를 호스트(102)로 제공할 수 있으며, 호스트(102)로부터 제공되는 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리(144)는 컨트롤러(130)와 메모리 장치(150)가 이러한 동작을 수행하는 데 필요한 데이터를 저장할 수 있다.
메모리(144)는 휘발성 메모리로 구현될 수 있다. 예를 들어, 메모리(144)는 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 또는 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 등으로 구현될 수 있다. 메모리(144)는 컨트롤러(130) 내부 또는 외부에 배치될 수 있다. 도 1은 컨트롤러(130) 내부에 배치된 메모리(144)를 예시한다. 일 실시예에서, 메모리(144)는 외부 휘발성 메모리 장치로 구현될 수 있으며, 상기 메모리(144)는 컨트롤러(130)와 데이터를 입출력하기 위한 메모리 인터페이스를 가질 수 있다.
메모리(144)는 호스트(102)와 메모리 장치(150) 간의 라이트, 리드 등의 동작을 수행하기 위한 데이터를 저장하기 위해 프로그램 메모리, 데이터 메모리, 라이트 버퍼(buffer)/캐시(cache), 리드 버퍼/캐시, 데이터 버퍼/캐시, 맵(map) 버퍼/캐시 등을 포함할 수 있다.
프로세서(134)는 메모리 시스템(110)의 전체적인 동작을 제어할 수 있다. 프로세서(134)는 메모리 시스템(110)의 전반적인 동작을 제어하기 위해 펌웨어를 구동할 수 있다. 상기 펌웨어는 플래시 변환 계층(FTL: Flash Translation Layer)으로 불릴 수 있다. 그리고, 프로세서(134)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현될 수 있다.
프로세서(134)는 플래시 변환 계층을 구동하여 호스트(102)로부터 수신된 요청에 대응하는 포그라운드 동작(foreground operation)을 수행할 수 있다. 예를 들어, 프로세서(134)는 호스트로부터의 라이트 요청에 응하여 메모리 장치(150)의 라이트 동작을 제어하고, 리드 요청에 응하여 메모리 장치(150)의 리드 동작을 제어할 수 있다.
또한, 컨트롤러(130)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현된 프로세서(134)를 통해 메모리 장치(150)에 대한 백그라운드 동작(background operation)을 수행할 수도 있다. 예를 들어, 메모리 장치(150)에 대한 백그라운드 동작은 가비지 컬렉션(GC: Garbage Collection) 동작, 웨어 레벨링(WL: Wear Leveling) 동작, 맵 플러시(map flush) 동작, 배드 블록 관리(bad block management) 동작 등을 포함할 수 있다.
프로세서(134)는 호스트(102)의 요청에 따라 메모리 장치(150)의 저장 공간을 관리함으로써 메모리 장치(150)에 대한 액세스를 효과적으로 억제하고, 기대 수명을 호스트(102)가 요구하는 만큼 향상시킬 수 있다.
도 3은 메모리 장치(150)의 저장 공간을 개략적으로 나타낸다.
메모리 장치(150)는 유저 영역(User area), 오버프로비저닝 영역(OP area), 시스템 영역(System area) 및 배드 영역(bad area)을 포함할 수 있다. 각 영역은 메모리 블록들을 포함할 수 있다. 도 3에서는 하나의 영역이 하나의 덩어리로 도시되어 있으나, 하나의 영역에 포함된 메모리 블록들이 반드시 물리적으로 연속하는 것은 아니다.
배드 영역은 배드 블록들을 포함할 수 있다. 메모리 장치(150)를 사용함에 따라 배드 영역의 크기가 증가할 수 있다. 유저 영역, 오버프로비저닝 영역 및 시스템 영역은 정상 블록들을 포함할 수 있다.
유저 영역은 호스트(102)로부터 제공되는 유저 데이터를 저장할 수 있다. 즉, 유저 영역은 호스트(102)가 액세스할 수 있는 논리 주소 공간에 대응할 수 있다. 유저 영역은 데이터가 저장되어 있는 영역 및 데이터가 저장되어 있지 않은 영역을 포함할 수 있다. 유저 영역의 크기는 유저 용량에 해당하며, 유저 영역 중에 데이터가 저장되어 있는 영역의 크기는 점유 용량으로 지칭될 수 있다.
시스템 영역은 시스템 데이터를 저장할 수 있다. 상기 시스템 데이터는 호스트(102)의 논리 주소와 메모리 장치(150)의 물리 주소 사이의 매핑을 나타내는 맵 데이터, 메모리 시스템(110)의 부팅을 위한 부팅 데이터 등을 포함할 수 있다.
오버프로비저닝 영역은 가비지 콜렉션 동작과 같은 백그라운드 동작을 원활하게 수행할 수 있도록 하는 여유 공간일 수 있다.
유저 영역과 오버프로비저닝 영역은 통틀어서 가용 영역으로 지칭될 수 있다. 배드 영역의 크기가 증가할수록 가용 영역의 크기는 감소할 수 있다. 가용 영역의 크기가 감소함에도 불구하고 메모리 시스템(110)을 정상적으로 사용하기 위해서, 호스트(102)는 유저 용량 및 오버프로비저닝 영역의 크기를 변경할 수 있다.
본 발명의 실시 예에 따르면, 컨트롤러(130)는 호스트(102)의 요구에 따라 가용 영역에서 유저 영역과 오버프로비저닝 영역이 차지하는 크기를 조절할 수 있다. 구체적으로, 호스트(102)는 메모리 시스템(110)으로부터 획득한 정보에 기초하여 유저 용량에 따른 기대 수명을 결정하고, 요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정할 수 있다. 예를 들어, 호스트(102)는 유저 용량에 따른 기대 수명 정보를 사용자에게 제공할 수 있다. 사용자는 상기 기대 수명 정보를 참조하여 유저 용량을 변경할 수 있다. 호스트(102)는 사용자로부터 새로운 유저 용량 정보를 입력받고, 상기 새로운 유저 용량 정보를 메모리 시스템(110)으로 제공할 수 있다. 메모리 시스템(110)은 상기 새로운 유저 용량 정보에 기초하여 유저 영역 및 오버프로비저닝 영역을 재설정할 수 있다.
본 발명의 실시 예에 따른 데이터 처리 시스템(100)의 동작이 도 4 내지 도 6을 참조하여 상세히 설명된다.
도 4는 본 발명의 실시 예에 따른 호스트(102) 및 메모리 시스템(110)의 상호작용을 나타낸다.
단계 S402에서, 호스트(102)는 메모리 시스템(110)에 저장 영역 정보를 요청할 수 있다.
저장 영역 정보는 호스트(102)가 유저 용량에 따른 기대 수명을 결정하기 위한 정보를 지칭할 수 있다. 예를 들어, 저장 영역 정보는 현재 유저 용량 정보, 블록 사용량 정보 및 메모리 블록들의 블록 내구도 정보를 포함할 수 있으며, 점유 용량 정보를 더 포함할 수 있다.
블록 내구도는 메모리 블록의 신뢰성이 보장될 수 있는 사용 연한을 지칭할 수 있으며, 블록 사용량은 정해진 기간에 메모리 장치(150)에 프로그램된 데이터의 양을 지칭할 수 있다.
단계 S404에서, 메모리 시스템(110)은 호스트(102)의 요청에 응하여 저장 영역 정보를 호스트(102)로 제공할 수 있다.
컨트롤러(130)는 메모리 블록들의 블록 내구도를 결정하기 위해 메모리 블록들의 P/E(program/erase) 사이클을 저장할 수 있다. 각 메모리 블록들에 저장된 데이터의 신뢰성이 보장될 수 있는 최대 P/E 사이클이 사전에 결정될 수 있다. 컨트롤러(130)는 가용 영역에 할당된 메모리 블록들의 최대 P/E 사이클 및 현재 P/E 사이클에 기초하여 메모리 블록들의 블록 내구도를 결정할 수 있다. 예를 들어, 제1 메모리 블록의 최대 P/E 사이클이 100 사이클이고, 현재까지 제1 메모리 블록이 90회 이레이즈된 경우 제1 메모리 블록의 블록 내구도는 10 사이클로 결정될 수 있다.
컨트롤러(130)는 블록 사용량을 결정하기 위해 호스트(102)로부터 수신되는 데이터의 양을 모니터링하고, 백그라운드 동작에 의해 프로그램되는 데이터의 양을 모니터링할 수 있다. 컨트롤러(130)는 정해진 기간에 호스트(102)로부터 수신되는 데이터의 양과 백그라운드 동작에 의해 프로그램되는 데이터의 양의 합을 해당 기간의 블록 사용량으로 결정할 수 있다.
단계 S406에서, 호스트(102)는 상기 저장 영역 정보에 기초하여 유저 용량에 따른 기대 수명을 결정할 수 있다. 단계 S406는 도 5 내지 도 6을 참조하여 자세히 설명된다.
도 5는 유저 용량에 따른 기대 수명을 설명하기 위한 도면이다.
도 5에 도시된 그래프의 가로축은 유저 용량을 MB 단위로 나타내며, 세로축은 기대 수명을 일(day) 단위로 나타낼 수 있다. 컨트롤러(130)가 유저 용량을 줄일수록 기대 수명이 향상될 수 있다. 구체적으로, 유저 용량이 줄어들면 저장할 수 있는 유저 데이터의 양이 감소하므로 호스트(102)로부터 수신되는 유저 데이터의 양도 감소하고, 내부 백그라운드 동작으로 인해 프로그램되는 데이터의 양도 감소할 수 있다. 즉, 블록 사용량이 감소할 수 있다. 블록 사용량이 감소하면 블록 내구도가 감소하는 속도가 완화되므로 기대 수명이 향상될 수 있다.
본 발명의 실시 예에 따르면, 호스트(102)는 아래 [수학식 1]에 기초하여 유저 용량에 따른 기대 수명을 결정할 수 있다.
Figure pat00001
[수학식 1]에서 블록 내구도의 총합은 가용 영역에 할당된 메모리 블록들의 블록 내구도의 합을 가리킬 수 있다.
예를 들어, 컨트롤러(130)로부터 수신한 현재 유저 용량이 80MB이고 블록 내구도의 총합이 100사이클이고, 일별 평균 블록 사용량이 0.5사이클일 수 있다. 블록 내구도의 총합이 100사이클이라는 것은 메모리 장치(150)의 신뢰성을 보장하면서 메모리 장치(150)에 더 프로그램할 수 있는 데이터 양이 메모리 블록 100개 분량에 해당한다는 것을 가리키고, 일별 평균 블록 사용량이 0.5사이클이라는 것은 매일 평균적으로 메모리 블록 반 개 분량의 데이터가 메모리 장치(150)에 프로그램된다는 것을 가리킬 수 있다. 만약 메모리 장치(150)에서 현재 유저 용량이 유지된다면 메모리 장치(150)는 200일 정도 사용되고 수명을 다할 수 있다.
호스트(102)는 현재 유저 용량, 블록 내구도의 총합 및 일별 평균 블록 사용량에 기초하여, 유저 용량에 따른 기대 수명을 결정할 수 있다. 만약 사용자가 유저 용량을 40MB, 즉 현재 유저 용량의 절반으로 축소하는 경우 일별 블록 사용량이 현재의 절반 수준으로 감소할 수 있다. 즉, 유저 용량이 40MB로 변경되는 경우 메모리 장치(150)의 기대 수명은 400일로 향상될 수 있다.
한편, 도 5의 가로축에 현재 유저 용량 및 점유 용량이 도시된다.
도 5를 참조하면, 메모리 장치(150)의 유저 용량이 현재 유저 용량보다 높아진다면 기대 수명은 감소하고, 낮아진다면 기대 수명은 향상될 수 있다. 유저 용량이 낮게 설정될수록 기대 수명은 향상될 수 있지만, 유저 용량이 점유 용량보다도 낮게 설정되는 경우 메모리 장치(150)에 저장된 유저 데이터가 손실될 수 있다. 호스트(102)는 유저 데이터를 유지할지 여부 및 요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정할 수 있다.
호스트(102)는 사용자가 기대 수명 정보를 참조하여 유저 용량을 선택할 수 있도록 유저 인터페이스를 제공할 수 있다. 유저 인터페이스는 변경될 유저 용량에 따른 기대 수명 정보를 사용자에게 제공할 수 있다.
도 6은 호스트(102)가 사용자에게 제공할 수 있는 유저 용량에 따른 기대 수명 정보를 예시한다.
구현에 따라, 호스트(102)는 사용자가 메모리 시스템(110)의 기대 수명을 향상시킬 수 있도록 현재 유저 용량 이하의 유저 용량에 대한 기대 수명 정보를 사용자에게 제공할 수 있다. 사용자는 상기 기대 수명 정보를 참조하여 변경될 유저 용량을 선택할 수 있다. 예를 들어, 사용자는 메모리 시스템(110)의 신뢰성이 150일 이상 보장되기를 원하는 경우, 50MB 이하의 유저 용량을 선택할 수 있다.
호스트(102)는 사용자가 메모리 장치(150)에 저장된 유저 데이터를 유지할지, 혹은 유저 데이터를 제거할지를 선택하도록 할 수 있다. 예를 들어, 호스트(102)는 메모리 장치(150)에 저장된 유저 데이터를 유지할지, 혹은 유저 데이터를 제거할지에 대한 선택정보를 사용자로부터 제공받을 수 있다.
만약 사용자가 유저 데이터를 유지하기로 선택한 경우, 호스트(102)는 사용자가 점유 용량 내지 현재 유저 용량의 범위 내에서 유저 용량을 선택하도록 할 수 있다. 예를 들어, 호스트(102)는 사용자로부터 유저 데이터의 유지에 대한 선택정보를 제공받는 경우, 점유 용량 내지 현재 유저 용량의 범위 내에서 유저 용량과 기대 수명에 대한 관계 정보를 사용자에게 제공할 수 있으며, 사용자는 점유 용량 내지 현재 유저 용량의 범위 내에서 유저 용량을 선택할 수 있다.
반면에, 사용자가 유저 데이터를 제거하기로 선택한 경우, 호스트(102)는 사용자가 점유 용량 이하의 유저 영역을 선택하는 것을 허용할 수 있다. 예를 들어, 호스트(102)는 사용자로부터 유저 데이터의 제거에 대한 선택정보를 제공받는 경우, 점유 용량 이하의 범위 내에서 유저 용량과 기대 수명에 대한 관계 정보를 사용자에게 제공할 수 있으며, 사용자는 점유 용량 내지 현재 유저 용량의 범위뿐만 아니라 점유 용량 이하의 범위에서도 유저 영역을 선택할 수 있다.
도 6에서 점유 용량을 30MB이고 현재 유저 용량을 80MB라고 가정할 경우, 빗금이 도시된 영역은 점유 용량 이하의 범위에서 유저 용량에 따른 기대 수명을 나타내고, 빗금이 도시되지 않은 영역은 점유 용량 내지 현재 유저 용량의 범위 내에서의 유저 용량에 따른 기대 수명을 나타낸다. 따라서, 사용자가 유저 데이터를 유지하기로 선택한 경우, 호스트(102)는 빗금이 도시되지 않은 영역의 유저 용량과 기대 수명에 대한 관계 정보를 사용자에게 제공할 수 있다. 반면, 사용자가 유저 데이터를 제거하기로 선택한 경우, 호스트(102)는 빗금이 도시되지 않은 영역뿐만 아니라 빗금이 도시된 영역의 유저 용량과 기대 수명에 대한 관계 정보를 사용자에게 제공할 수 있다.
다시 도 4를 참조하면, 단계 S408에서 호스트(102)는 사용자로부터의 입력에 기초하여, 새로운 유저 용량을 결정할 수 있다. 제1 예로, 호스트(102)는 사용자가 유저 용량에 따른 기대 수명을 참조하여 새로운 유저 용량을 입력하도록 할 수 있다. 제2 예로, 사용자가 원하는 기대 수명을 입력하면 호스트(102)는 상기 기대 수명에 따른 새로운 유저 용량을 결정할 수 있다.
단계 S410에서, 호스트(102)는 새로운 유저 용량 정보를 메모리 시스템(110)으로 제공함으로써 메모리 시스템(110)이 유저 용량을 변경하도록 제어할 수 있다. 호스트(102)는 메모리 장치(150)에 저장된 유저 데이터를 유지할지 여부 정보를 함께 메모리 시스템(110)으로 제공할 수 있다.
단계 S412에서, 메모리 시스템(110)은 호스트(102)로부터의 새로운 유저 용량 정보에 기초하여 메모리 시스템(110)의 가용 영역에서의 유저 용량 및 오버프로비저닝 용량을 재설정할 수 있다. 예를 들어, 가용 용량이 100MB이고 호스트(102)로부터 수신한 새로운 유저 용량이 40MB인 경우, 메모리 시스템(110)은 유저 용량을 40MB로 설정하고, 오버프로비저닝 용량을 60MB로 설정할 수 있다.
메모리 장치(150)의 유저 데이터를 제거하기로 결정된 경우, 컨트롤러(130)는 메모리 장치(150)의 유저 영역을 비우고, 변경된 유저 용량에 따라 논리 주소 공간의 크기를 변경할 수 있다. 컨트롤러(130)는 호스트(102)에 의해 액세스될 수 있는 논리 주소의 범위를 조절함으로써 논리 주소 공간의 크기를 변경할 수 있다. 예컨대, 컨트롤러(130)는 호스트(102)에 의해 액세스될 수 있는 논리 주소의 범위를 확대함으로써 논리 주소 공간의 크기를 확대시킬 수 있다.
메모리 장치(150)의 유저 데이터를 유지하기로 결정된 경우, 컨트롤러(130)는 메모리 장치(150)에 유저 데이터가 저장된 상태로 논리 주소 공간의 크기를 변경할 수 있다. 컨트롤러(130)는 호스트(102)에 의해 액세스될 수 있는 논리 주소의 범위를 조절함으로써 논리 주소 공간의 크기를 변경할 수 있다. 예컨대, 컨트롤러(130)는 호스트(102)에 의해 액세스될 수 있는 논리 주소의 범위를 축소함으로써 논리 주소 공간의 크기를 축소시킬 수 있다.
컨트롤러(130)가 논리 주소의 범위를 조절하면서 유저 데이터의 논리 주소와 물리 주소 간 매핑을 업데이트하고, 업데이트된 매핑을 나타내는 맵 데이터를 메모리 장치(150)의 시스템 영역에 저장할 수 있다.
본 발명의 실시 예에 따르면, 호스트(102)는 메모리 시스템(110)으로부터 수신된 저장 영역 정보에 기초하여 유저 용량에 따른 기대 수명을 결정하고, 상기 기대 수명 정보를 사용자에게 제공할 수 있다. 호스트(102)는 요구되는 기대 수명에 기초하여 결정된 새로운 유저 용량 정보를 메모리 시스템(110)으로 제공할 수 있다. 본 발명의 실시 예에 따르면, 메모리 시스템(110)은 호스트(102)의 요구에 응하여 메모리 시스템(110)의 기대 수명을 향상시킬 수 있다.
한편, 기대 수명과 관련된 호스트(102)의 동작을 메모리 시스템(110)에 포함된 컨트롤러(130)에서 수행하는 것도 얼마든지 가능하며, 기대 수명과 구체적인 컨트롤러(130)의 동작은, 상기에서 설명한 기대 수명과 관련된 호스트(102)의 동작과 동일할 수 있다.
본 발명의 실시 예에에 따라, 메모리 시스템(110)에서 확인 가능한 저장 영역 정보에 기초하여 가용 영역에서 유저 용량에 따른 기대 수명을 결정하는 호스트(102)의 동작을 메모리 시스템(110) 내부에서 수행하는 것도 얼마든지 가능할 수 있다. 즉, 메모리 시스템(110)에 포함된 컨트롤러(130)는, 가용 영역에서의 유저 용량을 확인하고, 호스트(102)로부터 수신되는 데이터의 양과 백그라운드 동작에 의해 프로그램되는 데이터의 양을 모니터링하여 정해진 기간에서의 평균 블록 사용량을 확인하며, 및 가용 영역에 포함된 메모리 블록들의 최대 P/E(program/erase) 사이클 및 현재 P/E 사이클에 기초하여 가용 영역에 포함된 메모리 블록들의 블록 내구도의 총합을 확인한 뒤, 확인 결과에 기초하여 유저 용량에 따른 기대 수명을 계산할 수 있다.
이렇게, 메모리 시스템(110)에서 유저 용량에 따른 기대 수명을 계산하는 경우, 호스트(102)는 메모리 시스템(110)으로부터 획득된 유저 용량에 따른 기대 수명 정보를 사용자에게 제공할 수 있다.
또한, 호스트(102)는, 가용 영역에 저장된 유저 데이터의 유지 또는 삭제 여부에 대한 선택정보를 사용자로부터 제공받을 수 있으며, 사용자로부터 제공받은 선택정보를 메모리 시스템(110)으로 전달할 수 있다.
이렇게, 사용자의 선택정보를 호스트(102)를 통해 전달받는 경우, 메모리 시스템(110)은, 호스트(102)를 통해 전달된 선택정보에 기초하여 새로운 유저 용량을 결정하고, 결정된 새로운 유저 용량에 기초하여 가용 영역에서의 유저 용량 및 오버프로비저닝 용량을 재설정할 수 있다.이상 본 발명의 실시예에 따른 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법을 구체적인 실시 형태로서 설명하였으나, 이는 예시에 불과한 것으로서 본 발명은 이에 한정되지 않는 것이며, 본 명세서에 개시된 기초 사상에 따르는 최광의 범위를 갖는 것으로 해석되어야 한다. 당업자는 개시된 실시 형태들을 조합, 치환하여 적시되지 않은 실시 형태를 실시할 수 있으나, 이 역시 본 발명의 권리범위를 벗어나지 않는 것이다. 이외에도 당업자는 본 명세서에 기초하여 개시된 실시형태를 용이하게 변경 또는 변형할 수 있으며, 이러한 변경 또는 변형도 본 발명의 권리범위에 속함은 명백하다.

Claims (20)

  1. 데이터 처리 시스템에 있어서,
    가용 영역 및 배드 영역을 포함하는 메모리 시스템;
    상기 메모리 시스템으로부터의 저장 영역 정보에 기초하여 상기 가용 영역에서의 유저 용량에 따른 기대 수명을 결정하고, 요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정하고, 상기 새로운 유저 용량 정보를 상기 메모리 시스템으로 제공함으로써 상기 메모리 시스템이 상기 가용 영역에서의 유저 용량 및 오버프로비저닝 용량을 재설정하도록 제어하는 호스트
    를 포함하는 데이터 처리 시스템.
  2. 제1항에 있어서,
    상기 저장 영역 정보는,
    현재 유저 용량, 평균 블록 사용량 및 메모리 블록들의 블록 내구도의 총합을 포함하는 데이터 처리 시스템.
  3. 제2항에 있어서,
    상기 호스트는
    상기 블록 내구도의 총합과 상기 평균 블록 사용량에 기초하여 현재 유저 용량에서의 기대 수명을 계산하고, 상기 현재 유저 용량과 상기 기대 수명에 기초하여 상기 새로운 유저 용량에 따른 기대 수명을 결정하는
    데이터 처리 시스템.
  4. 제2항에 있어서,
    상기 메모리 시스템은
    상기 호스트로부터 수신되는 데이터의 양과 백그라운드 동작에 의해 프로그램되는 데이터의 양에 기초하여 정해진 기간에서의 상기 평균 블록 사용량을 확인하는
    데이터 처리 시스템.
  5. 제2항에 있어서,
    상기 메모리 시스템은
    상기 가용 영역에 포함된 메모리 블록들의 최대 P/E(program/erase) 사이클 및 현재 P/E 사이클에 기초하여 상기 블록 내구도를 결정하는
    데이터 처리 시스템.
  6. 제2항에 있어서,
    상기 저장 영역 정보는
    유저 데이터가 저장되어 있는 영역의 크기인 점유 용량을 더 포함하는
    데이터 처리 시스템.
  7. 제6항에 있어서,
    상기 호스트는
    사용자로부터 상기 가용 영역에 저장된 유저 데이터의 유지 또는 삭제 여부에 대한 선택정보를 제공받고, 상기 선택정보에 따라 서로 다른 종류의 관계 정보를 사용자에게 제공하는 데이터 처리 시스템.
  8. 제7항에 있어서,
    상기 호스트는
    사용자로부터 유저 데이터의 유지에 대한 상기 선택정보를 제공받는 경우 상기 점유 용량과 상기 현재 유저 용량의 범위 내에서의 유저 용량과 기대 수명에 대한 상기 관계 정보를 사용자에게 제공하며,
    사용자로부터 유저 데이터의 제거에 대한 상기 선택정보를 제공받는 경우 상기 점유 용량 이하의 용량과 상기 현재 유저 용량의 범위 내에서의 유저 용량에 따른 기대 수명에 대한 상기 관계 정보를 사용자에게 제공하는
    데이터 처리 시스템.
  9. 제2항에 있어서,
    상기 메모리 시스템은
    상기 새로운 유저 용량 정보에 기초하여 상기 호스트에 의해 액세스될 수 있는 논리 주소의 범위를 조절하고, 유저 데이터의 논리 주소와 물리 주소의 매핑을 업데이트하는
    데이터 처리 시스템.
  10. 제9항에 있어서,
    상기 메모리 시스템은
    시스템 영역을 더 포함하고, 상기 시스템 영역에 상기 업데이트된 매핑을 나타내는 맵 데이터를 저장하는
    데이터 처리 시스템.
  11. 메모리 시스템의 저장 영역 정보에 기초하여 상기 메모리 시스템의 가용 영역에서의 유저 용량에 따른 기대 수명을 결정하는 단계;
    요구되는 기대 수명에 기초하여 새로운 유저 용량을 결정하는 단계; 및
    상기 새로운 유저 용량 정보에 기초하여 상기 가용 영역에서의 유저 용량 및 오버프로비저닝 용량을 재설정하는 단계를 포함하는 데이터 처리 시스템의 동작 방법.
  12. 제11항에 있어서,
    상기 저장 영역 정보는 현재 유저 용량, 평균 블록 사용량 및 메모리 블록들의 블록 내구도의 총합을 포함하는 데이터 처리 시스템의 동작 방법.
  13. 제12항에 있어서,
    상기 저장 영역 정보에 기초하여 상기 유저 용량에 따른 기대 수명을 결정하는 단계는
    상기 블록 내구도의 총합과 상기 평균 블록 사용량에 기초하여 현재 유저 용량에서의 기대 수명을 계산하는 단계; 및
    상기 현재 유저 용량과 상기 기대 수명에 기초하여 상기 새로운 유저 용량과 기대 수명의 관계를 결정하는 단계를 포함하는
    데이터 처리 시스템의 동작 방법.
  14. 제12항에 있어서,
    상기 메모리 시스템으로 수신되는 데이터의 양과 백그라운드 동작에 의해 상기 메모리 시스템에 프로그램되는 데이터의 양에 기초하여, 정해진 기간에서의 상기 평균 블록 사용량을 확인하는 단계
    를 더 포함하는 데이터 처리 시스템의 동작 방법.
  15. 제12항에 있어서,
    상기 가용 영역에 포함된 메모리 블록들의 최대 P/E(program/erase) 사이클 및 현재 P/E 사이클에 기초하여 상기 블록 내구도를 결정하는 단계
    를 더 포함하는 데이터 처리 시스템의 동작 방법.
  16. 제12항에 있어서,
    상기 저장 영역 정보는
    유저 데이터가 저장되어 있는 영역의 크기인 점유 용량을 더 포함하는
    데이터 처리 시스템의 동작 방법.
  17. 제16항에 있어서,
    사용자로부터 상기 가용 영역에 저장된 유저 데이터의 유지 또는 삭제 여부에 대한 선택정보를 제공받고, 상기 선택정보에 따라 서로 다른 종류의 관계 정보를 사용자에게 제공하는 선택단계를 더 포함하는 데이터 처리 시스템의 동작방법.
  18. 제16항에 있어서,
    상기 선택단계는,
    사용자로부터 유저 데이터의 유지에 대한 상기 선택정보를 제공받는 경우 상기 점유 용량과 상기 현재 유저 용량의 범위 내에서의 유저 용량과 기대 수명에 대한 상기 관계 정보를 사용자에게 제공하는 단계; 및
    사용자로부터 유저 데이터의 제거에 대한 상기 선택정보를 제공받는 경우 상기 점유 용량 이하의 용량과 상기 현재 유저 용량의 범위 내에서의 유저 용량에 따른 기대 수명에 대한 상기 관계 정보를 사용자에게 제공하는 단계를 포함하는 데이터 처리 시스템의 동작 방법.
  19. 제12항에 있어서,
    액세스될 수 있는 논리 주소의 범위를 상기 새로운 유저 용량 정보에 기초하여 조절하는 단계; 및
    유저 데이터의 논리 주소와 물리 주소의 매핑을 업데이트하는 단계
    를 더 포함하는 데이터 처리 시스템의 동작 방법.
  20. 가용 영역 및 배드 영역으로 구분되는 메모리 블록들을 포함하는 메모리 장치; 및
    호스트로부터 수신되는 데이터의 양과 백그라운드 동작에 의해 프로그램되는 데이터의 양을 모니터링하여 정해진 기간에서의 평균 블록 사용량을 확인하고, 상기 가용 영역에 포함된 메모리 블록들의 최대 P/E(program/erase) 사이클 및 현재 P/E 사이클에 기초하여 블록 내구도의 총합을 확인하며, 상기 블록 내구도의 총합과 상기 평균 블록 사용량에 기초하여 상기 가용 영역에서의 유저 용량에 따른 기대 수명을 계산하는 컨트롤러를 포함하는 메모리 시스템.
KR1020210115638A 2021-08-31 2021-08-31 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 KR20230032610A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210115638A KR20230032610A (ko) 2021-08-31 2021-08-31 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
US17/579,117 US20230061626A1 (en) 2021-08-31 2022-01-19 Data processing system and operation method thereof
CN202210516299.0A CN115729447A (zh) 2021-08-31 2022-05-12 数据处理系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210115638A KR20230032610A (ko) 2021-08-31 2021-08-31 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230032610A true KR20230032610A (ko) 2023-03-07

Family

ID=85288527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210115638A KR20230032610A (ko) 2021-08-31 2021-08-31 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법

Country Status (3)

Country Link
US (1) US20230061626A1 (ko)
KR (1) KR20230032610A (ko)
CN (1) CN115729447A (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866741B2 (en) * 2017-08-02 2020-12-15 Toshiba Memory Corporation Extending SSD longevity
KR20200132495A (ko) * 2019-05-17 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법
US11556257B2 (en) * 2020-08-14 2023-01-17 Micron Technology, Inc. Selectable wear life indicator based on data retention
US11436138B2 (en) * 2020-10-21 2022-09-06 EMC IP Holding Company LLC Adaptive endurance tuning of solid-state storage system

Also Published As

Publication number Publication date
CN115729447A (zh) 2023-03-03
US20230061626A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
US11086537B2 (en) Method and system to perform urgency level garbage collection based on write history of memory blocks
US10460774B2 (en) Apparatus and method capable of removing duplication write of data in memory
US20190324644A1 (en) Memory system and operating method thereof
US10866898B2 (en) Method and apparatus for migrating data between nonvolatile main memory and first or second caches
CN107239228B (zh) 提高重建效率的存储器系统和操作方法
KR20180076765A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10553295B2 (en) Memory system which stores meta-data and meta-log, and operating method thereof
CN111208938B (zh) 存储器系统及其操作方法
KR20190026231A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10664391B2 (en) Controller and operating method thereof
KR102415875B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20180373629A1 (en) Memory system and operating method thereof
US11681633B2 (en) Apparatus and method for managing meta data in memory system
US20160334999A1 (en) Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
US20200019507A1 (en) Controller and operating method thereof
KR20210030599A (ko) 데이터를 분산 리드할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법
KR20200122685A (ko) 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법
US20190179548A1 (en) Memory system and operating method thereof
US11042317B2 (en) Memory system for reducing fragmentation based on sequential index and operating method thereof
US20200310968A1 (en) Apparatus and method for transmitting garbage collection status information in a memory system
CN109147853B (zh) 控制器及其操作方法
US20190205249A1 (en) Controller, operating method thereof and data processing system including the controller
US11262950B2 (en) Memory system for adjusting difference between operation time points in sequential command operations performed in memory device, and operation method thereof
KR20210038096A (ko) 메모리 시스템, 데이터 시스템 및 그 동작방법
US20210342083A1 (en) Data processing system including plurality of memory systems