KR20230060163A - 스토리지 장치 및 그 동작 방법 - Google Patents

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

Info

Publication number
KR20230060163A
KR20230060163A KR1020210144557A KR20210144557A KR20230060163A KR 20230060163 A KR20230060163 A KR 20230060163A KR 1020210144557 A KR1020210144557 A KR 1020210144557A KR 20210144557 A KR20210144557 A KR 20210144557A KR 20230060163 A KR20230060163 A KR 20230060163A
Authority
KR
South Korea
Prior art keywords
zone
data
controller
memory block
storage device
Prior art date
Application number
KR1020210144557A
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 KR1020210144557A priority Critical patent/KR20230060163A/ko
Priority to US17/830,138 priority patent/US12014062B2/en
Priority to TW111130229A priority patent/TW202318200A/zh
Priority to CN202210967280.8A priority patent/CN116027964A/zh
Priority to DE102022209866.8A priority patent/DE102022209866A1/de
Publication of KR20230060163A publication Critical patent/KR20230060163A/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
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

일 실시예에 의한 스토리지 장치는 복수의 메모리 블록을 포함하고, 단위 메모리 블록이 최소 소거 단위로 지정된 저장부 및, 외부의 라이트 요청에 응답하여 적어도 하나의 메모리 블록을 포함하는 존을 생성하여 존의 첫번째 저장 위치로부터 순차적으로 데이터를 저장하며, 외부로부터 라이트 동작이 완료된 제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 수신됨에 따라, 갱신 요청된 데이터가 저장된 타겟 메모리 블록을 오픈하고, 타겟 메모리 블록에 데이터를 리라이트하도록 구성되는 컨트롤러를 포함하도록 구성될 수 있다.

Description

스토리지 장치 및 그 동작 방법{Storage Device and Operating Method Therefor}
본 기술은 반도체 집적 장치에 관한 것으로, 보다 구체적으로는 스토리지 장치 및 그 동작 방법에 관한 것이다.
스토리지 장치는 호스트 장치와 연결되어 호스트의 요청에 따라 데이터 입출력 동작을 수행한다.
인공지능 및 빅데이터 관련 산업의 발달에 따라 고성능의 데이터 센터나 개인용 컴퓨팅 장치에 대한 연구가 활발해지고 있다. 고성능 컴퓨팅 장치는 스토리지 장치로 대표되는 하드웨어 풀을 이용하여 다수의 운영 체제 및/또는 응용 프로그램이 구동되도록 구현할 수 있다.
스토리지 장치에 구비되는 비휘발성 메모리 장치는 가비지 콜렉션과 같은 내부 관리 동작을 통해 저장 공간을 확보하고 수명을 연장한다. 내부 관리 동작은 여분의 저장 공간을 이용하여 데이터를 리드하고 프로그램하는 작업을 유발하고, 이는 시스템의 서비스 품질에 영향을 미친다.
이러한 내부 관리 동작을 배제하기 위하여 저장 공간을 존(Zone)으로 구분하고 존 내에 순차적으로 데이터를 기록하는 존드 네임 스페이스(Zoned Namespace) 개념이 도입되었으며, 존을 보다 효율적으로 사용하기 위한 다양한 방법이 연구되고 있다.
본 기술의 실시예는 존에 저장된 데이터를 효율적으로 갱신할 수 있는 스토리지 장치 및 그 동작 방법을 제공할 수 있다.
본 기술의 일 실시예에 의한 스토리지 장치는 복수의 메모리 블록을 포함하고, 단위 메모리 블록이 최소 소거 단위로 지정된 저장부; 및 외부의 라이트 요청에 응답하여 적어도 하나의 메모리 블록을 포함하는 존을 생성하여 상기 존의 첫번째 저장 위치로부터 순차적으로 데이터를 저장하며, 상기 외부로부터 라이트 동작이 완료된 제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 수신됨에 따라, 상기 갱신 요청된 데이터가 저장된 타겟 메모리 블록을 오픈하고, 상기 타겟 메모리 블록에 데이터를 리라이트하도록 구성되는 컨트롤러;를 포함하도록 구성될 수 있다.
본 기술의 일 실시예에 의한 스토리지 장치는 적어도 하나의 메모리 블록을 포함하는 적어도 하나의 존으로 구분된 저장부; 및 제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 외부로부터 수신됨에 따라, 상기 제 1 존을 복수의 서브 존으로 분할하여 갱신 대상 타겟 서브 존을 검출하여 갱신한 후 상기 제 1 존을 결합하는 컨트롤러;를 포함하도록 구성될 수 있다.
본 기술의 일 실시예에 의한 스토리지 장치의 동작 방법은 컨트롤러에 의해 제어되며, 복수의 메모리 블록을 포함하여 단위 메모리 블록이 최소 소거 단위로 지정되는 저장부가 제공되는 단계; 외부의 라이트 요청에 응답하여, 상기 컨트롤러가 적어도 하나의 메모리 블록을 포함하는 제 1 존을 생성하는 단계; 상기 컨트롤러가, 상기 제 1 존의 첫번째 저장 위치로부터 순차적으로 데이터를 저장하고 상기 제 1 존을 클로즈하는 단계; 상기 외부로부터 상기 제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 수신됨에 따라, 상기 컨트롤러가 상기 갱신 요청된 데이터가 저장된 타겟 메모리 블록을 오픈하는 단계; 및 상기 컨트롤러가, 상기 타겟 메모리 블록에 데이터를 리라이트하는 단계;를 포함하도록 구성될 수 있다.
본 기술에 의하면, 존에 저장된 데이터를 부분적으로 갱신할 수 있어 데이터 갱신 속도를 향상시킬 수 있고 스토리지 장치의 수명을 증가시킬 수 있다.
도 1은 일 실시예에 의한 데이터 처리 시스템의 구성도이다.
도 2는 일 실시예에 의한 ZNS 관리부의 구성도이다.
도 3은 일 실시예에 의한 존 관리 테이블의 구성도이다.
도 4는 일 실시예에 의한 존 관리 커맨드의 구성도이다.
도 5는 일 실시예에 의한 스토리지 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 의한 스토리지 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 의한 서브 존 오픈 방법을 설명하기 위한 개념도이다.
도 8은 일 실시예에 의한 존 결합 방법을 설명하기 위한 개념도이다.
도 9는 일 실시예에 의한 스토리지 시스템의 구성도이다.
도 10 및 도 11은 실시예들에 따른 데이터 처리 시스템의 구성도이다.
도 12는 일 실시예에 의한 메모리 시스템을 포함하는 네트워크 시스템의 구성도이다.
도 13은 일 실시 예에 따른 스토리지 장치에 포함된 비휘발성 메모리 장치의 구성도이다.
이하, 첨부된 도면을 참조하여 본 기술의 실시예를 보다 구체적으로 설명한다.
도 1은 일 실시예에 의한 데이터 처리 시스템의 구성도이다.
도 1을 참조하면, 데이터 처리 시스템(100)은 호스트 장치(110) 및 스토리지 장치(120)를 포함할 수 있다.
호스트 장치(110)는, 예를 들면, 휴대폰, MP3 플레이어 등과 같은 휴대용 전자 장치들, 또는 랩탑 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 빔 프로젝터 등과 같은 개인용 전자 장치들, 또는 워크스테이션이나 서버 등과 같은 대용량 데이터 처리를 위한 전자 장치들을 포함한다.
스토리지 장치(120)는 외부, 예를 들어 호스트 장치(110)와 같은 외부 장치의 명령(CMD)에 응답하여 데이터(DATA)를 입출력하도록 구성된다. 스토리지 장치(120)는 호스트 장치(110)에 의해서 액세스 되는 데이터를 저장하도록 구성된다. 즉, 스토리지 장치(120)는 호스트 장치(110)의 주 기억 장치 또는 보조 기억 장치 중 적어도 하나로 사용될 수 있다. 스토리지 장치(120)는 다양한 인터페이스를 통해 호스트 장치(110)와 연결되는 메모리 카드 형태, 또는 솔리드 스테이트 드라이브(Solid State Drive: SSD) 형태로 집적될 수 있다.
스토리지 장치(120)는 컨트롤러(130) 및 저장부(140)를 포함할 수 있다.
컨트롤러(130)는 외부, 예를 들어 호스트 장치(110)로부터의 요청에 응답하여 저장부(NVM, 140)를 제어하도록 구성된다. 예를 들면, 컨트롤러(130)는 호스트 장치(110)로부터 제공된 데이터를 저장부(140)에 저장하거나, 저장부(140)로부터 읽은 데이터를 호스트 장치(110)로 제공하도록 구성된다. 이러한 동작을 위해서, 컨트롤러(130)는 저장부(140)의 읽기, 쓰기 및 소거 동작을 제어할 수 있다.
저장부(140)는 불휘발성 메모리 장치(NVM)를 포함할 수 있다. 일 실시예에서, 불휘발성 메모리 장치는 낸드(NAND) 플래시 메모리 장치, 노어(NOR) 플래시 메모리 장치, 강유전체 커패시터를 이용한 강유전체 램(Ferroelectric RAM: FRAM), 티엠알(tunneling magneto-resistive: TMR) 막을 이용한 마그네틱 램(Magnetic RAM: MRAM), 칼코겐 화합물(chalcogenide alloys)을 이용한 상변화 메모리 장치(phase change memory device: PRAM), 전이 금속 산화물(transition metal oxide)을 이용한 저항 메모리 장치(resistive memory device: RERAM) 등과 같은 다양한 형태의 불휘발성 메모리 장치들 중 적어도 하나로 구성될 수 있다.
저장부(140)는 적어도 하나의 채널(CH0~CHn)을 통해 컨트롤러(130)와 연결될 수 있다. 저장부(140)는 복수의 페이지를 포함하는 복수의 블록을 포함할 수 있다. 페이지는 데이터를 라이트 또는 리드하는 단위이고, 블록은 데이터를 소거하는 단위로 정의될 수 있다.
각 페이지를 구성하는 메모리 셀들의 적어도 일부는 1비트의 데이터를 저장할 수 있는 싱글 레벨 셀(single level cell: SLC), 또는 2비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(multi-level cell: MLC)로 동작할 수 있다.
컨트롤러(130)는 ZNS 관리부(210) 및 오퍼레이션 처리부(220)를 포함할 수 있다.
ZNS 관리부(210)는 호스트 장치(110)의 라이트 요청에 응답하여 저장부(140)에 존을 생성하고 데이터를 라이트할 수 있다. 복수의 존(Zone 1~ Zone m) 각각은 적어도 하나의 블록을 서브 존으로서 포함할 수 있고, 같거나 다른 사이즈를 가질 수 있다. 블록은 저장부(140)를 소거하는 최소 단위로 정의될 수 있다. 저장부(140)의 저장 공간은 컨트롤러(130)의 제어에 따라 복수의 존(Zone 1~ Zone m)으로 설정될 수 있다. 각 존(Zone 1~ Zone m)에는 존의 첫번째 저장 위치로부터 순차적으로 데이터가 저장된다.
라이트 동작이 준비 중이거나 수행 중인 존은 오픈(opened) 존, 라이트 동작이 완료된 존은 클로즈(closed) 존이라 칭할 수 있다.
ZNS 관리부(210)는 호스트 장치가(110)가 라이트 동작이 완료된 존(클로즈 존)에 저장된 데이터의 일부를 변경하기 위하여 갱신 데이터를 포함하는 라이트 명령을 전송함에 따라, 존 내에서 갱신 대상 데이터가 저장된 타겟 블록을 탐색하고, 타겟 블록을 리셋, 예를 들어 소거한 후, 타겟 블록에 데이터를 리라이트하도록 구성될 수 있다.
즉, 일 실시예에 의한 ZNS 관리부(210)는 데이터 갱신시 존 단위로 리셋 및 리라이트를 수행하지 않고, 갱신 대상 데이터가 포함된 서브 존 단위로 리셋 및 리라이트한다. 이에 따라, 데이터 갱신시 소거 및 라이트되는 데이터의 양을 최소화하여 데이터 처리 시스템(100)의 동작 속도를 향상시킬 수 있다.
일 실시예에서, ZNS 관리부(210)는 호스트 장치가(110)가 라이트 동작이 완료된 존(클로즈 존)에 저장된 데이터의 일부를 변경하기 위하여 갱신 데이터를 포함하는 라이트 명령을 전송함에 따라, 존 내에서 갱신 대상 데이터가 저장된 타겟 블록을 탐색하고, 타겟 블록을 리셋, 예를 들어 소거할 수 있다. 그리고, 저장부(140) 내에서 갱신 데이터에 대응하는 적어도 하나의 프리 블록을 할당하여 갱신 데이터를 리라이트할 수 있다.
데이터를 리라이트하는 동작은 타겟 블록의 데이터를 리드하여 임시 저장하고, 호스트 장치(110)로부터 전송된 갱신 데이터에 따라 임시 저장된 데이터를 수정하여 타겟 블록 또는 새로 할당된 프리 블록에 라이트하는 동작일 수 있다.
오퍼레이션 처리부(220)는 컨트롤러(130)의 제어에 따라 저장부(140)에 대한 리드, 라이트, 소거 동작 등을 제어할 수 있다.
도 2는 일 실시예에 의한 ZNS 관리부(210)의 구성도이다.
도 2를 참조하면, ZNS 관리부(210)는 존 관리 테이블(211), 주소 확인부(213), 존 생성부(215), 존 분할부(217) 및 존 결합부(219)를 포함할 수 있다.
존 관리 테이블(ZMT, 211)은 호스트 장치(110)의 요청에 따라 생성된 존에 대한 정보를 저장할 수 있다.
도 3은 일 실시예에 의한, 존 관리 테이블의 구성도이다.
도 3에 도시한 것과 같이 존 관리 테이블(ZMT)은 각 존에 대한 식별자(ID) 필드, 시작 논리주소(ZSLBA) 필드, 용량(CAPA) 필드, 속성(ATTRIB) 필드, 라이트 포인터(WP) 필드 등을 포함할 수 있다. 존 관리 테이블(ZMT, 211)은 저장부(140)에 저장되고, 데이터 처리 시스템(100)의 기동시 컨트롤러(130) 내의 동작 메모리(미도시)에 로드될 수 있다.
식별자(ID) 필드에는 각 존을 구분하기 위한 정보가 저장된다. 존 식별자(ID)는 호스트 장치(110)로부터 전송될 수 있으나, 이에 한정되는 것은 아니다.
시작 논리주소(ZSLBA) 필드는 해당 존의 선두 논리 블록 주소를 나타낸다. 시작 논리주소(ZSLBA)에 대응하는 물리 주소는 호스트 장치(110)에서 관리하거나 컨트롤러(130)에서 관리할 수 있다.
용량(CAPA) 필드는 해당 존에 라이트할 수 있는 논리 블록의 총량을 나타낸다.
속성(ATTRIB) 필드는 해당 존이 오픈 상태(O)인지 클로즈 상태(C)인지 나타낸다.
라이트 포인터(WP) 필드는 해당 존에서 라이트할 수 있는 논리 블록의 주소를 나타낸다.
주소 확인부(213)는 호스트 장치(110)의 라이트 요청에 응답하여, 라이트 요청된 논리 블록의 주소(라이트 주소)가 클로즈 존에 포함되는지의 여부를 판단할 수 있다. 호스트 장치(110)의 라이트 요청은 라이트 주소, 라이트 데이터 및 라이트 데이터의 사이즈를 포함할 수 있고, 존 식별자(ID)를 더 포함하는 것도 가능하다.
라이트 주소 또는 존 식별자(ID)가 클로즈 존에 포함되지 않은 경우, 주소 확인부(213)는 존 생성부(215)로 라이트 주소 및 라이트 데이터 사이즈를 전송하여 신규 존 생성을 요청할 수 있다.
존 생성부(215)는 주소 확인부(211)의 존 생성 요청에 응답하여, 라이트 데이터의 사이즈에 대응하는 존을 생성하고 존 관리 테이블(ZMT, 211)에 추가한다. 라이트 요청에 라이트 데이터의 사이즈가 포함되지 않는 경우 존 생성부(215)는 기 설정된 사이즈의 존을 생성할 수 있다. 일 실시예에서, 존 생성부(215)는 신규로 생성된 존에 식별자(ID)를 부여하고 호스트 장치(110)로부터 전송된 라이트 논리 주소를 시작 논리주소(ZSLBA)로 설정할 수 있다. 또한 생성된 존의 사이즈에 따라 용량(CAPA) 필드를 설정하고, 속성(ATTRIB) 필드를 오픈 상태(O)으로 정의할 수 있다. 아울러, 생성된 존의 첫번째 저장 위치를 지시하도록 라이트 포인터를 설정할 수 있다. 해당 존에 대한 라이트 동작이 완료되면, 존 생성부(215)는 속성(ATTRIB) 필드를 오픈 상태(C)로 변경하고, 라이트 포인터(WP)가 마지막 데이터 저장 위치를 지시하도록 변경할 수 있다.
존 생성부(215)는 응용 프로그램별로 존을 할당할 수 있다. 예를 들어, 호스트 장치(110)에서 실행되는 복수의 응용 프로그램 각각은 자신에게 할당된 존에 순차적으로 데이터(파일)를 저장할 수 있다. 각각의 존에는 대응하는 응용 프로그램의 성격을 반영하는 종류의 데이터가 순차적으로 저장될 수 있다. 존은 존 단위 또는 존을 구성하는 서브 존(블록) 단위로 소거될 수 있다.
라이트 요청에 포함된 라이트 주소가 클로즈 존에 포함되는 경우, 주소 확인부(213)는 존 분할부(217)로 라이트 주소를 전송하여 서브 존을 오픈할 것을 요청할 수 있다. 라이트 주소가 클로즈 존에 포함된다는 것은 호스트 장치(110)의 라이트 요청이 이미 라이트한 데이터에 대한 갱신 요청임을 의미할 수 있다. 상술하였듯이, 존은 적어도 하나의 서브 존으로 구성될 수 있고, 갱신 대상 데이터는 하나 또는 복수의 서브 존에 저장된 데이터일 수 있다.
존 분할부(217)는 주소 확인부(213)의 요청에 응답하여, 존 관리 테이블(211)을 조회함으로써, 라이트 주소가 포함된 존 내의 갱신 대상 서브 존을 오픈 상태로 전환할 수 있다. 구체적으로, 존 분할부(217)는 라이트 주소가 포함된 존을 검출하고, 해당 존의 용량(CAPA)과 존을 구성하는 단위 블록의 사이즈에 기초하여 해당 존을 구성하는 서브 존의 개수를 파악한다. 이에 따라, 갱신 대상 서브 존의 위치가 검출되면, 오퍼레이션 처리부(220)로 리셋 명령을 전송할 수 있다.
갱신 대상 서브 존이 리셋된 후에는, 해당 존의 라이트 포인터를 갱신 대상 존의 첫번째 저장 위치로 변경할 수 있다. 오퍼레이션 처리부(220)는 라이트 포인터를 참조하여 서브 존 내에 데이터를 리라이트하고 서브 존을 클로즈 상태로 변경할 수 있다.
서브 존이 클로즈 상태로 변경되면, 존 결합부(219)는 해당 존을 결합한다. 존을 결합한다는 것은 존은 서브 존 단위가 아닌 존 단위로 관리함을 의미하며, 존을 결합하기 위하여 라이트 포인터(WP)가 해당 존의 마지막 데이터 저장 위치를 지시하도록 변경할 수 있다.
도 4는 일 실시예에 의한 존 관리 커맨드의 구성도이다.
존에 저장된 데이터의 일부를 갱신하기 위해 타겟 서브 존을 오픈하고, 데이터 갱신 후 존을 다시 결합하기 위하여 도 4와 같은 존 관리 커맨드를 사용할 수 있다.
도 4를 참조하면, 존 관리 커맨드는 동작 코드(OPCODE) 필드, 식별자(ID) 필드, 서브 존 개수(NOSZ) 필드 및 서브 존 번호(NORST) 필드를 포함할 수 있다.
동작 코드(OPCODE) 필드는 존 분할시 제 1 논리레벨(예를 들어, 0)으로 설정되고 존 결합시 제 2 논리레벨(예를 들어, 1)로 설정될 수 있다.
식별자(ID) 필드는 분할 또는 결합할 존의 식별자로 설정된다.
서브 존 개수(NOSZ) 필드는 데이터를 갱신할 존을 구성하는 서브 존의 개수를 설정된다. 존 분할시 존 분할부(217)에서 파악한 서브 존의 개수가 서브 존 개수(NOSZ) 필드에 설정될 수 있다. 존 결합시 서브 존 개수(NOSZ) 필드는 무시된다.
서브존 번호(NORST) 필드에는 리셋할 서브 존의 번호가 설정된다. 존 분할시 서브존 번호(NORST) 필드에는 갱신할 서브 존의 번호가 지정되고, 존 결합시 서브존 번호(NORST) 필드는 무시된다.
예를 들어 존 관리 커맨드가 "01MX"인 경우, ID가 1인 존의 M개의 서브 존 중 X번째 서브존을 리셋할 수 있다. 존 관리 커맨드가 "11- -"인 경우 ID가 1인 존을 결합할 수 있다.
도 5는 일 실시예에 의한 스토리지 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 호스트 장치(110)로부터 라이트 주소, 라이트 데이터, 라이트 데이터의 사이즈 및 구현하기에 따라 존 식별자(ID)를 포함하는 라이트 요청이 수신됨에 따라(S101), 컨트롤러(130)는 라이트 요청된 논리 블록의 주소(라이트 주소) 또는 존 식별자(ID)가 클로즈 존에 포함되는지의 여부를 판단할 수 있다(S103).
라이트 주소 또는 존 식별자(ID)가 클로즈 존에 포함되는 경우(S103:Y) 즉, 이미 라이트한 데이터를 갱신하기 위한 라이트 요청이 수신된 경우 컨트롤러(130)는 갱신 대상인 타겟 서브 존을 오픈한다(S105). 서브 존을 오픈하는 구체적인 과정은 도 6을 참조하여 후술할 것이다.
컨트롤러(130)는 오픈된 타겟 서브 존에 데이터를 리라이트할 수 있다(S107). 즉, 타겟 서브 존의 데이터에 갱신 대상 데이터를 반영한 후 타겟 서브 존에 라이트한다.
리라이트가 완료되면, 컨트롤러(130)는 타겟 서브 존을 클로즈하고(S109), 해당 존을 결합한다(S111). 예를 들어, 컨트롤러(130)는 라이트 포인터(WP)가 해당 존의 마지막 데이터 저장 위치를 지시하도록 변경할 수 있다.
한편, 라이트 주소가 클로즈 존에 포함되지 않은 경우(S103:N), 컨트롤러(130)는 신규 존을 생성하여 라이트 동작을 수행할 수 있다(S113). 신규로 생성된 존에 대한 정보는 존 관리 테이블(ZMT)로 관리할 수 있다.
도 6은 일 실시예에 의한 스토리지 장치의 동작 방법을 설명하기 위한 흐름도이다.
데이터를 리라이트할 타겟 서브 존을 오픈하기 위하여, 컨트롤러(130)는 존 관리 테이블(ZMT)을 참조하여 라이트 주소가 포함된 존의 용량(CAPA)과 존을 구성하는 단위 블록의 사이즈에 기초하여 해당 존을 구성하는 서브 존의 개수를 파악한다(S201).
이후, 라이트 주소가 포함된 서브 존의 위치 즉, 해당 존 내의 몇번째 서브 존에 대한 라이트 요청인지 판단하고(S203), 존 관리 커맨드를 통해 리셋 명령을 전송하여 타겟 서브 존을 리셋할 수 있다(S205). 존 관리 커맨드는 도 4와 같은 포맷을 가질 수 있다.
타겟 서브 존이 리셋된 후에는, 해당 존의 라이트 포인터를 갱신 대상 존의 첫번째 저장 위치로 변경할 수 있다(S207).
도 7은 일 실시예에 의한 서브 존 오픈 방법을 설명하기 위한 개념도이다.
도 7과 같이, 클로즈 상태에 있는 ID가 1인 존(Zone 1)을 가정한다. 존 1은 두 개의 서브 존(SZ0, SZ1)으로 구성되고, 시작 어드레스(ZSLBA)는 0, 라이트 포인터(WP)는 4095를 지시한다.
존 1의 논리 주소 범위(0~4095)에 포함된 논리 주소에 대한 라이트 명령이 수신됨에 따라, 컨트롤러(130)는 갱신할 타겟 서브 존의 위치를 파악하여 존 관리 커맨드를 생성할 수 있다.
도 7에 도시한 것과 같이, 존 관리 커맨드는 분할 커맨드로 생성되고, "0121"이 될 수 있다. 즉, 존 1이 2개의 서브 존으로 구성되고 이 중 1번 서브 존을 분할할 것을 지시할 수 있다.
이에 따라, 존 1은 서브 존 0(Sub Zone #0)과 서브 존 1(Sub Zone #1)로 분할되고, 라이트 포인터(WP)는 서브 존 1(Sub Zone #1)의 첫번째 저장 위치(2048)를 지시하도록 변경된다.
분할 커맨드에 따라 서브 존 1(Sub Zone #1)이 리셋되면, 컨트롤러(130)는 서브 존 1(Sub Zone #1)에 데이터를 리라이트한다.
데이터를 리라이트하기 위하여, 서브 존 1(Sub Zone #1)에 기 저장되어 있는 데이터를 리드하여 임시 저장하고, 호스트 장치(110)로부터 전송된 갱신 영역(MODIFY RANGE)의 갱신 데이터에 따라 임시 저장된 데이터를 수정하여 서브 존 1(Sub Zone #1)에 라이트할 수 있다.
도시하지 않았지만, 서브 존 1(Sub Zone #1)의 적어도 일부 데이터에 대한 갱신 요청시, 새로운 프리 블록을 할당하여 데이터를 리라이트하는 것도 가능하다.
도 8은 일 실시예에 의한 존 결합 방법을 설명하기 위한 개념도이다.
도 7과 같은 방식으로 서브 존 1(Sub Zone #1)이 리셋되고 데이터가 리라이트된 후, 컨트롤러(130)는 존 관리 커맨드를 결합 커맨드로 생성하여 해당 존을 결합할 수 있다. 예를 들어, 존 관리 커맨드는 결합 커맨드로 생성되고, "11--"이 될 수 있다. 즉, 존 1을 결합할 것을 지시할 수 있다.
결합 커맨드에 따라 존 1을 구성하는 서브 존 0(Sub Zone #0)과 서브 존 1(Sub Zone #1)이 결합되고, 라이트 포인터(WP)는 존 1의 마지막 데이터 저장 위치(4095)를 지시할 수 있다.
존에 저장된 데이터를 갱신할 때, 존 전체를 리셋하고 데이터를 리라이트하는 대신, 갱신 대상 영역을 부분적으로 리셋하고 리라이트함으로써, 데이터 처리 속도가 향상되고 메모리 장치의 사용 빈도를 감소시킬 수 있다.
도 9는 일 실시예에 의한 스토리지 시스템의 구성도이다.
도 9를 참조하면, 스토리지 시스템(1000)은 호스트 장치(1100)와 스토리지 장치(1200)를 포함할 수 있다. 일 실시예에서, 스토리지 장치(1200)는 솔리드 스테이트 드라이브(solid state drive)(SSD)로 구성될 수 있다.
스토리지 장치(1200)는 컨트롤러(1210), 비휘발성 메모리 장치들(1220-0 ~ 1220-n), 버퍼 메모리 장치(1230), 전원 공급기(1240), 신호 커넥터(1101) 및 전원 커넥터(1103)를 포함할 수 있다.
컨트롤러(1210)는 스토리지 장치(1200)의 제반 동작을 제어할 수 있다. 컨트롤러(1210)는 호스트 인터페이스 유닛, 컨트롤 유닛, 동작 메모리로서의 랜덤 액세스 메모리, 에러 정정 코드(ECC) 유닛 및 메모리 인터페이스 유닛을 포함할 수 있다. 예를 들어, 컨트롤러(1210)는 도 1 내지 도 3에 도시한 것과 같은 컨트롤러(130)를 포함하도록 구성될 수 있다.
호스트 장치(1100)와 스토리지 장치(1200)는 신호 커넥터(1101)를 통해 신호를 송수신할 수 있다. 여기에서, 신호란 명령어, 어드레스, 데이터를 포함할 수 있다.
컨트롤러(1210)는 호스트 장치(1100)로부터 입력된 신호를 분석하고 처리할 수 있다. 컨트롤러(1210)는 스토리지 장치(1200)를 구동하기 위한 펌웨어 또는 소프트웨어에 따라서 백그라운드 기능 블록들의 동작을 제어할 수 있다
버퍼 메모리 장치(1230)는 비휘발성 메모리 장치들(1220-0 ~ 1220-n)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(1230)는 비휘발성 메모리 장치들(1220-0 ~ 1220-n)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(1230)에 임시 저장된 데이터는 컨트롤러(1210)의 제어에 따라 호스트 장치(1100) 또는 비휘발성 메모리 장치들(1220-0 ~ 1220-n)로 전송될 수 있다.
비휘발성 메모리 장치들(1220-0 ~ 1220-n)은 스토리지 장치(1200)의 저장 매체로 사용될 수 있다. 비휘발성 메모리 장치들(1220-0 ~ 1220-n) 각각은 복수의 채널들(CH0~CHn)을 통해 컨트롤러(1210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 비휘발성 메모리 장치가 연결될 수 있다. 하나의 채널에 연결되는 비휘발성 메모리 장치들은 동일한 신호 버스 및 데이터 버스에 연결될 수 있다.
전원 공급기(1240)는 전원 커넥터(1103)를 통해 입력된 전원을 스토리지 장치(1200)의 컨트롤러(1210), 비휘발성 메모리 장치들(1220-0 ~ 1220-n) 및 버퍼 메모리(1230)에 제공할 수 있다. 전원 공급기(1240)는 보조 전원 공급기(1241)를 포함할 수 있다. 보조 전원 공급기(1241)는 서든 파워 오프(sudden power off)가 발생되는 경우, 스토리지 장치(1200)가 정상적으로 종료될 수 있도록 전원을 공급할 수 있다. 보조 전원 공급기(1241)는 대용량 캐패시터들(capacitors)을 포함할 수 있으나 이에 한정되는 것은 아니다.
신호 커넥터(1101)는 호스트 장치(1100)와 스토리지 장치(1200)의 인터페이스 방식에 따라서 다양한 형태의 커넥터로 구성될 수 있음은 자명하다.
전원 커넥터(1103)는 호스트 장치(1100)의 전원 공급 방식에 따라서 다양한 형태의 커넥터로 구성될 수 있음은 물론이다.
도 10 및 도 11은 실시예들에 따른 데이터 처리 시스템의 구성도이다.
도 10을 참조하면, 데이터 처리 시스템(3000)은 호스트 장치(3100)와 메모리 시스템(3200)을 포함할 수 있다.
호스트 장치(3100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(3100)는 호스트 장치의 기능을 수행하기 위한 백그라운드 기능 블록들을 포함할 수 있다.
호스트 장치(3100)는 소켓(socket), 슬롯(slot) 또는 커넥터(connector)와 같은 접속 터미널(3110)을 포함할 수 있다. 메모리 시스템(3200)은 접속 터미널(3110)에 마운트(mount)될 수 있다.
메모리 시스템(3200)은 인쇄 회로 기판과 같은 기판 형태로 구성될 수 있다. 메모리 시스템(3200)은 메모리 모듈 또는 메모리 카드로 불릴 수 있다. 메모리 시스템(3200)은 컨트롤러(3210), 버퍼 메모리 장치(3220), 비휘발성 메모리 장치(3231~3232), PMIC(power management integrated circuit)(3240) 및 접속 터미널(3250)을 포함할 수 있다.
컨트롤러(3210)는 메모리 시스템(3200)의 제반 동작을 제어할 수 있다.
컨트롤러(3210)는 도 1 내지 도 3에 도시된 컨트롤러(130)를 포함하도록 구성될 수 있다.
버퍼 메모리 장치(3220)는 비휘발성 메모리 장치들(3231~3232)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(3220)는 비휘발성 메모리 장치들(3231~3232)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(3220)에 임시 저장된 데이터는 컨트롤러(3210)의 제어에 따라 호스트 장치(3100) 또는 비휘발성 메모리 장치들(3231~3232)로 전송될 수 있다.
비휘발성 메모리 장치들(3231~3232)은 메모리 시스템(3200)의 저장 매체로 사용될 수 있다.
PMIC(3240)는 접속 터미널(3250)을 통해 입력된 전원을 메모리 시스템(3200) 백그라운드에 제공할 수 있다. PMIC(3240)는, 컨트롤러(3210)의 제어에 따라서, 메모리 시스템(3200)의 전원을 관리할 수 있다.
접속 터미널(3250)은 호스트 장치의 접속 터미널(3110)에 연결될 수 있다. 접속 터미널(3250)을 통해서, 호스트 장치(3100)와 메모리 시스템(3200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 접속 터미널(3250)은 호스트 장치(3100)와 메모리 시스템(3200)의 인터페이스 방식에 따라 다양한 형태로 구성될 수 있다. 접속 터미널(3250)은 메모리 시스템(3200)의 어느 한 변에 배치될 수 있다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면이다.
도 11을 참조하면, 데이터 처리 시스템(4000)은 호스트 장치(4100)와 메모리 시스템(4200)을 포함할 수 있다.
호스트 장치(4100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(4100)는 호스트 장치의 기능을 수행하기 위한 백그라운드 기능 블록들을 포함할 수 있다.
메모리 시스템(4200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(4200)은 솔더 볼(solder ball)(4250)을 통해서 호스트 장치(4100)에 마운트될 수 있다. 메모리 시스템(4200)은 컨트롤러(4210), 버퍼 메모리 장치(4220) 및 비휘발성 메모리 장치(4230)를 포함할 수 있다.
컨트롤러(4210)는 메모리 시스템(4200)의 제반 동작을 제어할 수 있다. 컨트롤러(4210)는 도 1 내지 도 3에 도시한 읽기 컨트롤러(130)를 포함하도록 구성될 수 있다.
버퍼 메모리 장치(4220)는 비휘발성 메모리 장치(4230)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(4220)는 비휘발성 메모리 장치들(4230)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(4220)에 임시 저장된 데이터는 컨트롤러(4210)의 제어에 따라 호스트 장치(4100) 또는 비휘발성 메모리 장치(4230)로 전송될 수 있다.
비휘발성 메모리 장치(4230)는 메모리 시스템(4200)의 저장 매체로 사용될 수 있다.
도 12는 일 실시예에 의한 메모리 시스템 포함하는 네트워크 시스템의 구성도이다.
도 12를 참조하면, 네트워크 시스템(5000)은 네트워크(5500)를 통해서 연결된 서버 시스템(5300) 및 복수의 클라이언트 시스템들(5410~5430)을 포함할 수 있다.
서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)로 데이터를 제공할 수 있다.
서버 시스템(5300)은 호스트 장치(5100) 및 메모리 시스템(5200)을 포함할 수 있다. 메모리 시스템(5200)은 도 1 내지 도 3의 스토리지 장치(120), 도 9의 스토리지 장치(1200), 도 10의 메모리 시스템(3200), 도 11의 메모리 시스템(4200)으로 구성될 수 있다.
도 13은 일 실시 예에 따른 스토리지 장치에 포함된 비휘발성 메모리 장치의 구성도이다.
도 13을 참조하면, 비휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 행 디코더(320), 데이터 읽기/쓰기 블록(330), 열 디코더(340), 전압 발생기(350) 및 제어 로직(360)을 포함할 수 있다.
메모리 셀 어레이(310)는 워드 라인들(WL1~WLm)과 비트 라인들(BL1~BLn)이 서로 교차된 영역에 배열된 메모리 셀(MC)들을 포함할 수 있다.
메모리 셀 어레이(310)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는 반도체 기판의 평판면에 대해 수직의 방향성을 가지며, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀의 수직 상부에 위치하는 낸드(NAND) 스트링을 포함하는 구조를 의미한다. 하지만 3차원 메모리 어레이의 구조가 이에 한정되는 것은 아니며 수직의 방향성뿐 아니라 수평의 방향성을 가지고 고집적도로 형성된 메모리 어레이 구조라면 선택적으로 적용 가능함은 자명하다.
행 디코더(320)는 워드 라인들(WL1~WLm)을 통해서 메모리 셀 어레이(310)와 연결될 수 있다. 행 디코더(320)는 제어 로직(360)의 제어에 따라 동작할 수 있다. 행 디코더(320)는 외부 장치(도시되지 않음)로부터 제공된 어드레스를 디코딩할 수 있다. 행 디코더(320)는 디코딩 결과에 근거하여 워드 라인들(WL1~WLm)을 선택하고, 구동할 수 있다. 예시적으로, 행 디코더(320)는 전압 발생기(350)로부터 제공된 워드 라인 전압을 워드 라인들(WL1~WLm)에 제공할 수 있다.
데이터 읽기/쓰기 블록(330)은 비트 라인들(BL1~BLn)을 통해서 메모리 셀 어레이(310)와 연결될 수 있다. 데이터 읽기/쓰기 블록(330)은 비트 라인들(BL1~BLn) 각각에 대응하는 읽기/쓰기 회로들(RW1~RWn)을 포함할 수 있다. 데이터 읽기/쓰기 블록(330)은 제어 로직(360)의 제어에 따라 동작할 수 있다. 데이터 읽기/쓰기 블록(330)은 동작 모드에 따라서 쓰기 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 예를 들면, 데이터 읽기/쓰기 블록(330)은 쓰기 동작 시 외부 장치로부터 제공된 데이터를 메모리 셀 어레이(310)에 저장하는 쓰기 드라이버로서 동작할 수 있다. 다른 예로서, 데이터 읽기/쓰기 블록(330)은 읽기 동작 시 메모리 셀 어레이(310)로부터 데이터를 독출하는 감지 증폭기로서 동작할 수 있다.
열 디코더(340)는 제어 로직(360)의 제어에 따라 동작할 수 있다. 열 디코더(340)는 외부 장치로부터 제공된 어드레스를 디코딩할 수 있다. 열 디코더(340)는 디코딩 결과에 근거하여 비트 라인들(BL1~BLn) 각각에 대응하는 데이터 읽기/쓰기 블록(330)의 읽기/쓰기 회로들(RW1~RWn)과 데이터 입출력 라인(또는 데이터 입출력 버퍼)을 연결할 수 있다.
전압 발생기(350)는 비휘발성 메모리 장치(300)의 백그라운드 동작에 사용되는 전압을 생성할 수 있다. 전압 발생기(350)에 의해서 생성된 전압들은 메모리 셀 어레이(310)의 메모리 셀들에 인가될 수 있다. 예를 들면, 프로그램 동작 시 생성된 프로그램 전압은 프로그램 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다. 다른 예로서, 소거 동작 시 생성된 소거 전압은 소거 동작이 수행될 메모리 셀들의 웰-영역에 인가될 수 있다. 다른 예로서, 읽기 동작 시 생성된 읽기 전압은 읽기 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다.
제어 로직(360)은 외부 장치로부터 제공된 제어 신호에 근거하여 비휘발성 메모리 장치(300)의 제반 동작을 제어할 수 있다. 예를 들면, 제어 로직(360)은 비휘발성 메모리 장치(300)의 읽기, 쓰기, 소거 동작을 제어할 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 데이터 처리 시스템
110 : 호스트 장치
120 : 스토리지 장치
130 : 컨트롤러
140 : 저장부

Claims (12)

  1. 복수의 메모리 블록을 포함하고, 단위 메모리 블록이 최소 소거 단위로 지정된 저장부; 및
    외부의 라이트 요청에 응답하여 적어도 하나의 메모리 블록을 포함하는 존을 생성하여 상기 존의 첫번째 저장 위치로부터 순차적으로 데이터를 저장하며, 상기 외부로부터 라이트 동작이 완료된 제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 수신됨에 따라, 상기 갱신 요청된 데이터가 저장된 타겟 메모리 블록을 오픈하고, 상기 타겟 메모리 블록에 데이터를 리라이트하도록 구성되는 컨트롤러;
    를 포함하도록 구성되는 스토리지 장치.
  2. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 타겟 메모리 블록을 리셋하고, 상기 타겟 메모리 블록의 첫번째 저장 위치를 지시하도록 라이트 포인터를 설정하도록 구성되는 스토리지 장치.
  3. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 리라이트 완료된 상기 타겟 메모리 블록을 클로즈하도록 구성되는 스토리지 장치.
  4. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 리라이트 완료 후 상기 제 1 존의 마지막 데이터 저장 위치를 지시하도록 라이트 포인터를 설정하도록 구성되는 스토리지 장치.
  5. 적어도 하나의 메모리 블록을 포함하는 적어도 하나의 존으로 구분된 저장부; 및
    제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 외부로부터 수신됨에 따라, 상기 제 1 존을 복수의 서브 존으로 분할하여 갱신 대상 타겟 서브 존을 검출하여 갱신한 후 상기 제 1 존을 결합하는 컨트롤러;
    를 포함하도록 구성되는 스토리지 장치.
  6. 제 5 항에 있어서,
    상기 서브 존은 상기 저장부의 최소 소거 단위인 스토리지 장치.
  7. 제 5 항에 있어서,
    상기 컨트롤러는, 상기 검출한 타겟 서브 존의 첫번째 저장 위치에 라이트 포인터를 설정하고 데이터를 갱신 저장하도록 구성되는 스토리지 장치.
  8. 제 5 항에 있어서,
    상기 컨트롤러는, 상기 제 1 존의 마지막 데이터 저장 위치를 지시하도록 라이트 포인터를 설정하여 상기 제 1 존을 결합하도록 구성되는 스토리지 장치.
  9. 컨트롤러에 의해 제어되며, 복수의 메모리 블록을 포함하여 단위 메모리 블록이 최소 소거 단위로 지정되는 저장부가 제공되는 단계;
    외부의 라이트 요청에 응답하여, 상기 컨트롤러가 적어도 하나의 메모리 블록을 포함하는 제 1 존을 생성하는 단계;
    상기 컨트롤러가, 상기 제 1 존의 첫번째 저장 위치로부터 순차적으로 데이터를 저장하고 상기 제 1 존을 클로즈하는 단계;
    상기 외부로부터 상기 제 1 존에 저장된 데이터의 적어도 일부에 대한 갱신 요청이 수신됨에 따라, 상기 컨트롤러가 상기 갱신 요청된 데이터가 저장된 타겟 메모리 블록을 오픈하는 단계; 및
    상기 컨트롤러가, 상기 타겟 메모리 블록에 데이터를 리라이트하는 단계;
    를 포함하도록 구성되는 스토리지 장치의 동작 방법.
  10. 제 9 항에 있어서,
    상기 타겟 메모리 블록을 오픈하는 단계는,
    상기 타겟 메모리 블록을 리셋하는 단계; 및
    상기 타겟 메모리 블록의 첫번째 저장 위치를 지시하도록 라이트 포인터를 설정하는 단계;
    를 포함하도록 구성되는 스토리지 장치의 동작 방법.
  11. 제 9 항에 있어서,
    상기 컨트롤러가, 상기 리라이트 완료된 상기 타겟 메모리 블록을 클로즈하는 단계를 더 포함하도록 구성되는 스토리지 장치의 동작 방법.
  12. 제 9 항에 있어서,
    상기 컨트롤러가, 상기 리라이트 완료 후 상기 제 1 존의 마지막 데이터 저장 위치를 지시하도록 라이트 포인터를 설정하는 단계를 더 포함하도록 구성되는 스토리지 장치의 동작 방법.
KR1020210144557A 2021-10-27 2021-10-27 스토리지 장치 및 그 동작 방법 KR20230060163A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210144557A KR20230060163A (ko) 2021-10-27 2021-10-27 스토리지 장치 및 그 동작 방법
US17/830,138 US12014062B2 (en) 2021-10-27 2022-06-01 Storage device and operating method thereof
TW111130229A TW202318200A (zh) 2021-10-27 2022-08-11 儲存裝置及其操作方法
CN202210967280.8A CN116027964A (zh) 2021-10-27 2022-08-12 存储装置及其操作方法
DE102022209866.8A DE102022209866A1 (de) 2021-10-27 2022-09-20 Speichergerät und betriebsverfahren dafür

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210144557A KR20230060163A (ko) 2021-10-27 2021-10-27 스토리지 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20230060163A true KR20230060163A (ko) 2023-05-04

Family

ID=85795870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210144557A KR20230060163A (ko) 2021-10-27 2021-10-27 스토리지 장치 및 그 동작 방법

Country Status (5)

Country Link
US (1) US12014062B2 (ko)
KR (1) KR20230060163A (ko)
CN (1) CN116027964A (ko)
DE (1) DE102022209866A1 (ko)
TW (1) TW202318200A (ko)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101365704B1 (ko) 2012-03-30 2014-02-24 유비벨록스(주) 플래시 기반 메모리를 관리하기 위한 방법
US10726865B2 (en) * 2018-10-11 2020-07-28 Western Digital Technologies, Inc. Zoned block command to stream command translator
JP7346311B2 (ja) * 2020-01-16 2023-09-19 キオクシア株式会社 メモリシステム
JP7366795B2 (ja) * 2020-02-14 2023-10-23 キオクシア株式会社 メモリシステムおよび制御方法
KR20220058224A (ko) * 2020-10-30 2022-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법
KR20220060372A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20220066688A (ko) * 2020-11-16 2022-05-24 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11543985B2 (en) * 2021-04-13 2023-01-03 Oracle International Corporation Zone segment drive management
US11537305B1 (en) * 2021-06-03 2022-12-27 Western Digital Technologies, Inc. Dissimilar write prioritization in ZNS devices
JP2023012773A (ja) * 2021-07-14 2023-01-26 キオクシア株式会社 メモリシステムおよび制御方法
JP2023044135A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
US12014062B2 (en) 2024-06-18
CN116027964A (zh) 2023-04-28
DE102022209866A1 (de) 2023-04-27
US20230129727A1 (en) 2023-04-27
TW202318200A (zh) 2023-05-01

Similar Documents

Publication Publication Date Title
US11226895B2 (en) Controller and operation method thereof
KR102532084B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11537318B2 (en) Memory system and operating method thereof
KR20190120573A (ko) 메모리 시스템, 데이터 처리 시스템 및 메모리 시스템의 동작 방법
US11113202B2 (en) Operating method forcing the second operation to fail using a scatter-gather buffer and memory system thereof
KR20190102781A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11543990B2 (en) Data storage apparatus with extended lifespan and operation method thereof
KR20200048978A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190125026A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11061614B2 (en) Electronic apparatus having data retention protection and operating method thereof
KR102620727B1 (ko) 전자 장치
KR20160105100A (ko) 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11966610B2 (en) Storage device capable of adjusting size of zoned namespace and operating method thereof
US12008249B2 (en) Memory system and method of performing background operation
US11586379B2 (en) Memory system and method of operating the same
KR20200121068A (ko) 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러
KR20190106008A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
US12014062B2 (en) Storage device and operating method thereof
KR20220070989A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210079637A (ko) 데이터 저장 장치 및 그 동작 방법
KR20200142698A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20230031193A1 (en) Memory system and operating method thereof
CN112416242B (zh) 数据存储设备及其操作方法
TW202326419A (zh) 資料儲存裝置及其操作方法