[go: up one dir, main page]

KR102765301B1 - 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 - Google Patents

멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR102765301B1
KR102765301B1 KR1020160143424A KR20160143424A KR102765301B1 KR 102765301 B1 KR102765301 B1 KR 102765301B1 KR 1020160143424 A KR1020160143424 A KR 1020160143424A KR 20160143424 A KR20160143424 A KR 20160143424A KR 102765301 B1 KR102765301 B1 KR 102765301B1
Authority
KR
South Korea
Prior art keywords
namespace
address space
logical address
mapping table
storage device
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020160143424A
Other languages
English (en)
Other versions
KR20180047402A (ko
Inventor
서동영
왕홍문
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160143424A priority Critical patent/KR102765301B1/ko
Priority to US15/611,364 priority patent/US10324834B2/en
Priority to DE102017112925.1A priority patent/DE102017112925A1/de
Priority to CN201710546576.1A priority patent/CN108021510B/zh
Priority to TW106123127A priority patent/TWI739859B/zh
Publication of KR20180047402A publication Critical patent/KR20180047402A/ko
Application granted granted Critical
Publication of KR102765301B1 publication Critical patent/KR102765301B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

본 개시의 기술적 사상에 따른 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법은, 제1 네임스페이스의 생성 요청에 응답하여 제1 네임스페이스에 할당되는 제1 논리 주소 공간과 대응하는 제1 물리 주소 공간에 대한 제1 맵핑 정보를 맵핑 테이블에 저장하고, 제2 네임스페이스의 생성 요청에 응답하여 제2 네임스페이스에 할당되고 제1 논리 주소 공간에 연속적인 제2 논리 주소 공간과 대응하는 제2 물리 주소 공간에 대한 제2 맵핑 정보를 맵핑 테이블에 업데이트한다.

Description

멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법{Storage device managing multi-namespaces and Method of operating the storage device}
본 개시의 기술적 사상은 스토리지 장치에 관한 것이며, 더욱 상세하게는, 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 SSD 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다. 최근에는, 하나의 물리적 장치로부터 복수의 논리적 장치를 제공할 수 있는 네임스페이스 기능을 지원하는 스토리지 장치에 대한 연구가 진행되고 있다.
본 개시의 기술적 사상은 멀티 네임스페이스 기능을 지원하면서 저장 효율성을 향상시킬 수 있는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공한다.
본 개시의 기술적 사상에 따른, 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법은, 제1 네임스페이스의 생성 요청에 응답하여, 상기 제1 네임스페이스에 할당되는 제1 논리 주소 공간 및 상기 제1 논리 주소 공간에 대응하는 제1 물리 주소 공간에 대한 제1 맵핑 정보를 맵핑 테이블에 저장하는 단계, 및 제2 네임스페이스의 생성 요청에 응답하여, 상기 제2 네임스페이스에 할당되고 상기 제1 논리 주소 공간에 연속적인 제2 논리 주소 공간 및 상기 제2 논리 주소 공간에 대응하는 제2 물리 주소 공간에 대한 제2 맵핑 정보를 상기 맵핑 테이블에 업데이트하는 단계를 포함한다.
또한, 본 개시의 다른 기술적 사상에 따른, 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법은, 제1 및 제2 네임 스페이스들의 생성 요청에 응답하여, 서로 연속적인 제1 및 제2 논리 주소 공간들을 상기 제1 및 제2 네임스페이스들에 각각 할당하고, 상기 제1 및 제2 논리 주소 공간들 각각에 대한 제1 및 제2 맵핑 정보들을 맵핑 테이블을 저장하는 단계, 및 상기 제1 네임스페이스의 삭제 요청에 응답하여, 상기 맵핑 테이블에서 상기 제1 맵핑 정보와 상기 제2 맵핑 정보를 재배치하는 단계를 포함한다.
또한, 본 개시의 다른 기술적 사상에 따른, 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법은, 제1, 제2 및 제3 네임스페이스들이 연속적인 논리 주소 공간들을 갖도록 맵핑 테이블을 관리하는 단계, 및 상기 제2 네임스페이스의 삭제 요청에 응답하여, 상기 제1 네임스페이스와 상기 제3 네임스페이스가 연속적인 논리 주소 공간을 갖도록 상기 맵핑 테이블을 업데이트하는 단계를 포함한다.
또한, 본 개시의 다른 기술적 사상에 따른, 멀티 네임스페이스를 관리하는 스토리지 장치는, 비휘발성 메모리, 및 제1 네임스페이스의 생성 요청에 응답하여, 이전에 생성된 네임스페이스의 논리 주소 공간과 연속한 제1 논리 주소 공간을 상기 제1 네임스페이스에 할당함으로써 상기 제1 네임스페이스를 동적으로 생성하고, 상기 제1 네임스페이스의 제1 맵핑 정보를 맵핑 테이블을 업데이트하는 컨트롤러를 포함한다.
본 개시의 기술적 사상에 따르면, 네임스페이스의 생성 동작 시 생성될 네임스페이스의 논리 주소 공간이 이전에 생성된 네임스페이스의 논리 주소 공간과 연속하도록 맵핑 테이블을 업데이트하고, 네임스페이스의 삭제 동작 시 맵핑 테이블에서 맵핑 정보를 재배치함으로써, 스토리지 장치는 동적인 멀티 네임스페이스 기능을 지원할 수 있다. 또한, 네임스페이스들이 하나의 맵핑 테이블을 공유하고, 네임스페이스들의 논리 주소 공간과 스토리지 장치의 물리 주소 공간을 1:1로 맵핑함으로써 맵핑 정보의 증가를 막을 수 있고, 이에 따라, 맵핑 정보를 저장하기 위한 비휘발성 메모리의 사용량 및 DRAM 사용량이 증가하지 않을 수 있다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2a는 본 개시의 비교예에 따라 네임스페이스 기능을 지원하지 않는 스토리지 장치의 L2P 맵핑 동작을 나타내고, 도2 b는 본 개시의 일 실시예에 따라 네임스페이스 기능을 지원하는 스토리지 장치의 L2P 맵핑 동작을 나타낸다.
도 3a는 본 개시의 비교예에 따라 멀티 네임스페이스 기능을 지원하는 스토리지 장치의 L2P 맵핑 동작을 나타내고, 도 3b는 본 개시의 일 실시예에 따른 멀티 네임스페이스 기능을 지원하는 스토리지 장치의 L2P 맵핑 동작을 나타낸다.
도 4는 본 개시의 일 실시예에 따라, 도 1의 컨트롤러의 일 예를 상세하게 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라, 도 1의 컨트롤러의 다른 예를 상세하게 나타내는 블록도이다.
도 6은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치에서 수행되는 네임스페이스의 동적인 생성 동작 및 삭제 동작을 나타낸다.
도 7은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 8은 도 7의 방법에 따른 네임스페이스 생성 동작을 나타낸다.
도 9는 본 개시의 일 실시예에 따라, 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다.
도 10은 도 9에 예시된 네임스페이스 생성 동작에 따른 맵핑 테이블의 수정을 나타낸다.
도 11은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 12는 도 11의 방법에 따른 네임스페이스 삭제 동작을 나타낸다.
도 13은 본 개시의 일 실시예에 따라, 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다.
도 14는 도 13에 예시된 네임스페이스 삭제 동작에 따른 맵핑 테이블의 수정을 나타낸다.
도 15는 본 개시의 일 실시예에 따라, 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다.
도 16은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 17은 도 16에 예시된 네임스페이스 삭제 동작에 따른 맵핑 테이블의 수정을 나타낸다.
도 18은 도 16에 예시된 네임스페이스 삭제 동작에 따른 맵핑 테이블의 수정을 나타낸다.
도 19는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 20은 도 19의 방법에 따른 스토리지 장치의 네임스페이스 삭제 동작을 나타낸다.
도 21은 도 19의 방법에 따른 맵핑 테이블의 수정을 나타낸다.
도 22는 본 개시의 일 실시예에 따라, 네임스페이스가 삭제되는 경우 컨트롤러와 비휘발성 메모리 사이의 동작을 나타내는 흐름도이다.
도 23은 도 22의 동작의 일 예에 따른 맵핑 테이블 업데이트 동작을 나타낸다.
도 24는 본 개시의 일 실시예에 따라, 네임스페이스가 삭제되는 경우 컨트롤러와 비휘발성 메모리 사이의 동작을 나타내는 흐름도이다.
도 25는 도 24의 동작의 일 예에 따른 맵핑 테이블 업데이트 동작을 나타낸다.
도 26은 본 개시의 일 실시예에 따른 메타 데이터의 일 예를 나타낸다.
도 27은 본 개시의 일 실시예에 따라, 멀티 네임스페이스를 관리하는 L2P 맵핑 테이블과 블록 정보를 나타낸다.
도 28은 본 개시의 일 실시예에 따라, 네임스페이스 삭제 동작에 따라 변경된 L2P 맵핑 테이블과 블록 정보를 나타낸다.
도 29는 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템(10)을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함하고, 스토리지 장치(100)는 컨트롤러(110) 및 비휘발성 메모리(120)를 포함할 수 있다. 컨트롤러(110)는 호스트(200)로부터의 기록/독출 요청에 응답하여 비휘발성 메모리(120)에 저장된 데이터를 독출하거나, 또는 비휘발성 메모리(120)에 데이터를 기록하도록 비휘발성 메모리(120)를 제어할 수 있다.
스토리지 장치(100)는 네임스페이스 기능을 지원할 수 있다. 여기서, "네임스페이스"는 논리 블록들로 포맷될 수 있는 비휘발성 메모리(120)의 양(quantity)으로 정의할 수 있고, 사이즈 n의 네임스페이스는 0에서 (n-1)까지의 LBA(Logical Block Address)를 갖는 논리 블록들의 컬렉션(collection)이다. "네임스페이스 기능"은 하나의 물리적 장치로부터 복수의 논리적 장치들을 제공하는 기능을 나타낸다. 구체적으로, 네임스페이스 기능은 스토리지 장치(100)를 복수의 네임스페이스들로 나누고, 각 네임스페이스 별로 고유한 LBA를 할당하는 기법이다.
스토리지 장치(100)는 멀티 네임스페이스를 관리할 수 있고, 이에 따라, 멀티 네임스페이스 기능을 제공한다고 지칭할 수 있다. 구체적으로, 스토리지 장치(100)는 복수의 네임스페이스들을 동적으로 생성할 수 있고, 또한, 생성된 복수의 네임스페이스들 중 일부 네임스페이스를 동적으로 삭제할 수 있다. 예를 들어, 스토리지 장치(100)는 NVMe SSD(Non-Volatile Memory Express Solid State Drive) 장치일 수 있다.
컨트롤러(110)는 네임스페이스 관리자(111a)를 포함할 수 있고, 네임스페이스 관리자(111a)는 단일 맵핑 테이블을 이용하여, 네임스페이스의 동적인 생성 동작 및 삭제 동작을 관리할 수 있다. 구체적으로, 네임스페이스 관리자(111a)는 복수의 네임스페이스들이 연속적인 논리 주소 공간을 갖도록, 네임스페이스의 생성 동작 및 삭제 동작 시에 맵핑 테이블을 업데이트할 수 있다. 일 실시예에서, 네임스페이스 관리자(111a)는 FTL(Flash Translation Layer)에 구현될 수 있다. 이하에서는, 네임스페이스 관리자(111a)의 구체적인 동작에 대해 설명하기로 한다.
네임스페이스 관리자(111a)는 사용자 요청에 의해, 즉, 호스트(200)로부터의 네임스페이스 생성 요청에 응답하여 네임스페이스를 동적으로 생성할 수 있다. 이때, 네임스페이스 관리자(111a)는 새로 생성될 네임스페이스의 논리 주소 공간을 이전에 생성된 네임스페이스의 논리 주소 공간과 연속적으로 할당함으로써, 네임스페이스를 생성할 수 있다. 또한, 네임스페이스 관리자(111a)는 생성된 네임스페이스의 논리 주소 공간과 물리 주소 공간에 대한 맵핑 정보를 맵핑 테이블에 업데이트할 수 있다.
또한, 네임스페이스 관리자(111a)는 사용자 요청에 의해, 즉, 호스트(200)로부터의 네임스페이스 삭제 요청에 응답하여 네임스페이스를 동적으로 삭제할 수 있다. 이때, 네임스페이스 관리자(111a)는 삭제 동작 이후에 남아있는 네임스페이스들이 서로 연속적인 논리 주소 공간들을 갖도록, 맵핑 테이블에서 맵핑 정보를 재배치함으로써 네임스페이스를 삭제할 수 있다. 또한, 네임스페이스 관리자(111a)는 맵핑 테이블에서, 삭제될 네임스페이스의 맵핑 정보에 대한 언맵 동작을 수행할 수 있다.
비휘발성 메모리(120)는 메모리 셀 어레이(MCA)를 포함할 수 있고, 메모리 셀 어레이(MCA)는 사용자 데이터를 저장하기 위한 스토리지 영역(120a) 및 메타 데이터를 저장하기 위한 메타 영역(120b)을 포함할 수 있다. 일 실시예에서, 메모리 셀 어레이(MCA)는 복수의 플래쉬 메모리 셀들을 포함할 수 있고, 예를 들어, 복수의 플래쉬 메모리 셀들은 낸드(NAND) 플래쉬 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.
일 실시예에서, 메타 영역(120b)은 논리 주소와 물리 주소의 사이의 맵핑 정보가 저장된 맵핑 테이블을 저장할 수 있다. 스토리지 장치(100)에 전원이 인가되면, 다시 말해, 스토리지 시스템(10)이 부팅되면, 비휘발성 메모리(120)에 저장된 맵핑 테이블은 컨트롤러(110) 내부 또는 외부의 메모리(예를 들어, DRAM 또는 SRAM)에 로딩될 수 있다. 네임스페이스 관리자(111a)는 네임스페이스의 동적인 생성 동작 및 삭제 동작에 따라, 메모리에 로딩된 맵핑 테이블을 업데이트할 수 있다.
호스트(200)는 다양한 인터페이스를 통하여 스토리지 장치(100)와 통신할 수 있다. 구체적으로, 호스트(200)는 스토리지 장치(100)의 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기입 동작 등을 제어하도록 독출 커맨드 또는 기입 커맨드 등을 스토리지 장치(100)에 전달할 수 있다. 본 실시예에서, 호스트(200)는 네임스페이스 생성 요청 및 삭제 요청과 같은 네임스페이스 관리 커맨드, 또는 비휘발성 메모리(120)에 프리 블록(free block)을 생성하기 위한 트림(trim) 커맨드 등을 스토리지 장치(100)에 더 전달할 수 있다. 일 실시예에서, 호스트(200)는 어플리케이션 프로세서(Application Processor, AP)일 수 있다. 일 실시예에서, 호스트(200)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다.
스토리지 시스템(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)는 전자 장치에 내장되는(embedded) 내부(internal) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 SSD, 임베디드 UFS(Universal Flash Storage) 메모리 장치 또는 eMMC(embedded Multi-Media Card)일 수 있다. 일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 착탈 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
도 2a는 본 개시의 비교예에 따라 네임스페이스 기능을 지원하지 않는 스토리지 장치의 L2P 맵핑 동작을 나타낸다.
도 2a를 참조하면, 호스트 LBA는 스토리지 장치의 FTL이 관리하는 L2P(Logical to Physical) 맵핑 테이블의 정보를 이용하여 비휘발성 메모리(NVM)의 물리 주소로 변환된다. 스토리지 장치가 네임스페이스 기능을 지원하지 않는 경우, L2P 맵핑 테이블은 모든 호스트 LBA를 비휘발성 메모리(NVM)의 물리 주소 공간으로 맵핑할 수 있어야 한다. 이때, L2P 맵핑 테이블의 사이즈는 맵핑을 위한 LBA의 주소 공간에 비례하게 된다.
도 2b는 본 개시의 일 실시예에 따라 네임스페이스 기능을 지원하는 스토리지 장치의 L2P 맵핑 동작을 나타낸다.
도 2b를 참조하면, 스토리지 장치(예를 들어, 도 1의 100)에 한 개의 네임스페이스(NS1)가 생성된 경우, 하나의 물리적 장치로부터 하나의 논리적 장치를 제공할 수 있다. 따라서, 네임스페이스(NS1)의 사이즈는 스토리지 장치가 제공하는 전체 논리 주소 공간의 사이즈와 같을 수 있다. 이때, 네임스페이스(NS1)에 대한 L2P 맵핑 테이블이 관리하는 논리 주소 공간은 비휘발성 메모리(NVM)의 물리 주소 공간과 일치하게 된다. 따라서, L2P 맵핑 테이블의 사이즈는 도 2a와 동일할 수 있다.
도 3a은 본 개시의 비교예에 따라 멀티 네임스페이스 기능을 지원하는 스토리지 장치의 L2P 맵핑 동작을 나타낸다.
도 3a를 참조하면, 스토리지 장치에 세 개의 네임스페이스들(NS1 내지 NS3)이 생성된 경우, 하나의 물리적 장치로부터 세 개의 논리적 장치들을 제공할 수 있다. 각 네임스페이스(NS1, NS2 또는 NS3) 별로 맵핑 테이블을 관리하는 경우, 각 네임스페이스 별로 최대 주소 공간을 가질 수 있다. 이에 따라, 각 네임스페이스 별 L2P 맵핑 테이블은 최대 크기의 용량을 사용할 수 있으므로, 세 개의 네임스페이스들(NS1 내지 NS3)에 대한 L2P 맵핑 테이블들의 양이 크게 증가하게 된다. 따라서, L2P 맵핑 테이블들을 저장하기 위한 비휘발성 메모리(NVM)의 저장 공간 및 L2P 맵핑 테이블들을 로딩하기 위한 스토리지 장치의 컨트롤러 내의 메모리(예를 들어, DRAM)의 저장 공간이 크게 증가하게 된다.
도 3b는 본 개시의 일 실시예에 따른 멀티 네임스페이스 기능을 지원하는 스토리지 장치의 L2P 맵핑 동작을 나타낸다.
도 3b를 참조하면, 스토리지 장치(예를 들어, 도 1의 100)에 세 개의 네임스페이스들(NS1 내지 NS3)이 생성될 수 있다. 본 실시예에 따르면, 네임스페이스들(NS1 내지 NS3)의 논리 주소 공간과 물리 주소 공간을 1:1로 맵핑할 수 있다. 따라서, 네임스페이스들(NS1 내지 NS3)이 제공하는 전체 논리 주소 공간은 비휘발성 메모리(NVM)의 물리 주소 공간보다 작거나 같을 수 있다. 또한, 본 실시예에 따르면, 세 개의 네임스페이스들(NS1 내지 NS3)은 하나의 맵핑 테이블을 공유할 수 있다.
제1 네임스페이스(NS1)에는 전체 논리 주소 공간 중 일부 주소 공간(예를 들어, LBA0 내지 LBA3)을 할당하고, 제2 네임스페이스(NS2)에는 전체 논리 주소 공간 중, 제1 네임스페이스(NS1)에 할당된 주소 공간에 연속하는 일부 주소 공간(예를 들어, LBA4 내지 LBA7)을 할당하며, 제3 네임스페이스(NS3)에는 전체 논리 주소 공간 중, 제2 네임스페이스(NS2)에 할당된 주소 공간에 연속하는 일부 주소 공간(예를 들어, LBA8 내지 LBA11)을 할당할 수 있다. 이에 따라, 제1 내지 제3 네임스페이스들(NS1 내지 NS3)에 대한 L2P 맵핑 테이블이 관리하는 논리 주소 공간은 비휘발성 메모리(NVM)의 물리 주소 공간과 일치하게 된다. 따라서, L2P 맵핑 테이블의 사이즈는 도 2b와 동일할 수 있다.
도 4는 본 개시의 일 실시예에 따라, 도 1의 컨트롤러의 일 예(110a)를 상세하게 나타내는 블록도이다.
도 1 및 도 4를 참조하면, 컨트롤러(110a)는 메모리(111), 프로세서(112), ROM(113), 호스트 인터페이스(114) 및 비휘발성 메모리 인터페이스(115)를 포함할 수 있고, 이들은 버스(116)를 통해 서로 통신할 수 있다. 본 실시예에서, 네임스페이스 관리자(111a)는 소프트웨어 또는 펌웨어로 구현될 수 있고, 메모리(111)에 로딩될 수 있다. 프로세서(112)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 컨트롤러(110a)의 전반적인 동작을 제어할 수 있다.
메모리(111)는 프로세서(112)의 제어에 따라 동작하며, 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있다. 예를 들어, 메모리(111)는 DRAM, SRAM, PRAM 또는 플래시 메모리로 구현될 수 있다. 본 실시예에서, 메모리(111)에는 FTL이 로딩될 수 있고, FTL은 네임스페이스 관리자(111a)를 포함할 수 있다. 구체적으로, FTL은 펌웨어를 포함할 수 있고, 펌웨어에 의해 구현되는 기능에 따라, 웨어-레벨링 모듈, 배드 블록 관리 모듈, 가비지 콜렉션 모듈, 암호화/복호화 모듈, 맵핑 테이블 관리 모듈 등을 더 포함할 수 있다.
네임스페이스 관리자(111a)는 호스트(200)로부터 수신한 네임스페이스 생성 요청 또는 삭제 요청에 응답하여, 네임스페이스를 동적으로 생성 또는 삭제할 수 있다. 맵핑 테이블(MT)은 논리 주소를 물리 주소로 변환하기 위한 맵핑 정보를 포함하고, 비휘발성 메모리(120)의 메타 영역(120b)으로부터 메모리(111)에 로딩될 수 있다. 구체적으로, 네임스페이스 관리자(111a)는 네임스페이스 생성 요청에 응답하여, 논리 주소 공간을 네임스페이스에 할당하고, 생성된 네임스페이스에 대한 맵핑 정보를 맵핑 테이블(MT)에 업데이트할 수 있다. 또한, 네임스페이스 관리자(111a)는 네임스페이스 삭제 요청에 응답하여, 맵핑 테이블(MT)에서 삭제될 네임스페이스에 대한 맵핑 정보를 재배치하고, 삭제될 네임스페이스의 맵핑 정보에 대해 언맵 동작을 수행할 수 있다. 또한, 네임스페이스 관리자(111a)는 호스트(200)로부터 수신된 트림 명령에 응답하여, 맵핑 테이블(MT)에 저장된 일부 맵핑 정보에 대해 언맵 동작을 수행할 수 있다.
ROM(113)은 스토리지 장치(100)의 초기 부팅에 필요한 코드(code) 데이터를 저장할 수 있다. 호스트 인터페이스(114)는 호스트(200)와 컨트롤러(110a) 사이의 인터페이스를 제공할 수 있고, 예를 들어, USB(Universal Serial Bus), MMC(MultiMediaCard), 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) 등에 따른 인터페이스를 제공할 수 있다. 비휘발성 메모리 인터페이스(115)는 컨트롤러(110a)와 비휘발성 메모리(120) 사이의 인터페이스를 제공할 수 있다. 예를 들어, L2P 맵핑 테이블, 블록 정보, 기록 데이터 및 독출 데이터가 비휘발성 메모리 인터페이스(115)를 통해 컨트롤러(110a)와 비휘발성 메모리(120) 사이에서 송수신될 수 있다.
도 5는 본 개시의 일 실시예에 따라, 도 1의 컨트롤러의 다른 예(110b)를 상세하게 나타내는 블록도이다.
도 5를 참조하면, 컨트롤러(110b)는 네임스페이스 관리자(111a), 메모리(111'), 프로세서(112), ROM(113), 호스트 인터페이스(114) 및 비휘발성 메모리 인터페이스(115)를 포함할 수 있고, 이들은 버스(116)를 통해 서로 통신할 수 있다. 컨트롤러(110b)는 도 4의 컨트롤러(110a)의 변형 실시예이며, 중복된 설명은 생략하기로 한다. 본 실시예에서, 네임스페이스 관리자(111a)는 하드웨어로 구현될 수 있고, 네임스페이스 관리자(111a)의 동작은 도 4의 실시예와 실질적으로 유사할 수 있다.
도 6은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치(100)에서 수행되는 네임스페이스의 동적인 생성 동작 및 삭제 동작을 나타낸다.
도 1 및 도 6을 참조하면, 네임스페이스 관리자(111a)는 스토리지 장치(100)의 논리 주소 공간(61)에 제1 내지 제5 네임스페이스들(NS1 내지 NS5)을 순차적으로 생성할 수 있다. 예를 들어, 논리 주소 공간(61)의 사이즈는 70이고, 논리 주소 공간(61)은 LBA0부터 LBA69를 포함할 수 있다. 예를 들어, 제1 네임스페이스(NS1)의 사이즈는 10이고, 제2 네임스페이스(NS2)의 사이즈는 20이고, 제3 네임스페이스(NS3)의 사이즈는 10이고, 제4 네임스페이스(NS4)의 사이즈는 20이고, 제5 네임스페이스(NS5)의 사이즈는 10일 수 있다. 이때, 논리 주소 공간(61)은 비휘발성 메모리(120)의 물리 주소 공간과 1:1로 맵핑될 수 있고, 논리 주소 공간(61)은 비휘발성 메모리(120)의 저장 용량 이하일 수 있다.
본 실시예에 따르면, 제1 내지 제5 네임스페이스들(NS1 내지 NS5)는 서로 연속적인 논리 주소 공간들을 가질 수 있고, 이에 따라, 제1 내지 제5 네임스페이스들(NS1 내지 NS5) 사이에는 프리(free) 공간이 존재하지 않을 수 있다. 구체적으로, 네임스페이스 관리자(111a)는 제1 내지 제5 네임스페이스들(NS1 내지 NS5)의 생성 순서에 따라, 제1 내지 제5 네임스페이스들(NS1 내지 NS5)에 논리 주소 공간들을 순차적으로 할당할 수 있다.
예를 들어, 사이즈 10을 갖는 제1 네임스페이스(NS1)에는 LBA0부터 LBA9까지의 제1 논리 주소 공간이 할당될 수 있고, 사이즈 20을 갖는 제2 네임스페이스(NS2)에는 LBA10부터 LBA29까지의 제2 논리 주소 공간이 제2 네임스페이스(NS2)에 할당될 수 있고, 사이즈 10을 갖는 제3 네임스페이스(NS3)에는 LBA30부터 LBA39까지의 제3 논리 주소 공간이 할당될 수 있다. 이어서, 사이즈 20을 갖는 제4 네임스페이스(NS4)에는 LBA40부터 LBA59까지의 제4 논리 주소 공간이 할당될 수 있고, 사이즈 10을 갖는 제5 네임스페이스(NS5)에는 LBA60부터 LBA69까지의 제5 논리 주소 공간이 할당될 수 있다.
스토리지 장치(100)는 호스트(200)로부터 제3 및 제5 네임스페이스들(NS3, NS5)의 삭제 요청을 수신할 수 있다. 네임스페이스 관리자(111a)는 수신된 삭제 요청에 응답하여, 논리 주소 공간(62)에서 제3 및 제5 네임스페이스들(NS3, NS5)을 동적으로 삭제할 수 있다. 구체적으로, 네임스페이스 관리자(111a)는 논리 주소 공간(62)에서 제3 및 제5 네임스페이스들(NS3, NS5)에 할당된 제3 및 제5 논리 주소 공간들에 대해 언맵 동작을 수행할 수 있다. 이에 따라, 호스트(200)는 논리 주소 공간(62)에 나타난 바와 같이, 제3 및 제5 네임스페이스들(NS3, NS5)이 삭제된 것으로 판단할 수 있다.
본 실시예에 따르면, 제3 및 제5 네임스페이스들(NS3, NS5)이 삭제된 이후에, 제1, 제2 및 제4 네임스페이스들(NS1, NS2, NS4)이 서로 연속적인 논리 주소 공간들을 가지도록 제4 네임스페이스(NS4)의 맵핑 정보를 위치를 재조정할 수 있다. 구체적으로, 제2 네임스페이스(NS2)와 제4 네임스페이스(NS4) 사이에 프리 공간이 존재하지 않도록, 제4 네임스페이스(NS4)의 맵핑 정보를 LBA30부터 LBA49까지의 논리 주소 공간으로 재조정할 수 있다.
스토리지 장치(100)는 호스트(200)로부터, 사이즈 20을 갖는 새로운 제3 네임스페이스(NS3)의 생성 요청을 수신할 수 있다. 네임스페이스 관리자(111a)는 수신된 생성 요청에 응답하여, 논리 주소 공간(63)에 새로운 제3 네임스페이스(NS3)를 동적으로 생성할 수 있다. 구체적으로, 네임스페이스 관리자(111a)는 논리 주소 공간(63)에서 제4 네임스페이스(NS4)와 제3 네임스페이스(NS3)가 서로 연속적인 논리 주소 공간들을 가지도록 제3 네임스페이스(NS3)에 LBA50에서 LBA69까지의 논리 주소 공간을 할당할 수 있다. 이에 따라, 기존에 생성된 제4 네임스페이스(NS4)와 새롭게 생성된 제3 네임스페이스(NS3) 사이에 프리 공간이 존재하지 않을 수 있다.
도 7은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 도 8은 도 7의 방법에 따른 네임스페이스 생성 동작을 나타낸다. 이하에서는, 도 1, 도 7 및 도 8을 함께 참조하여 스토리지 장치의 동작 방법을 설명하기로 한다.
도 7 및 도 8을 참조하면, 본 실시예에 따른 스토리지 장치의 동작 방법은 스토리지 장치에 네임스페이스를 동적으로 생성하는 동작으로서, 예를 들어, 도 1의 스토리지 장치(100)에서 시계열적으로 수행되는 단계들을 포함할 수 있다. 도 1 내지 도 6을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다.
단계 S110에서, 제1 네임스페이스(NS1)의 생성 요청에 응답하여, 제1 논리 주소 공간을 제1 네임스페이스(NS1)에 할당한다. 예를 들어, 제1 네임스페이스(NS1)의 사이즈는 10일 수 있고, 논리 주소 공간(81)에서 LBA0에서 LBA9까지의 제1 논리 주소 공간을 제1 네임스페이스(NS1)에 할당할 수 있다.
단계 S130에서, 제2 네임스페이스(NS2)의 생성 요청에 응답하여, 제1 논리 주소 공간에 연속적인 제2 논리 주소 공간을 제2 네임스페이스(NS2)에 할당한다. 예를 들어, 제2 네임스페이스(NS2)의 사이즈는 20일 수 있고, 논리 주소 공간(82)에서 LBA10에서 LBA29까지의 제2 논리 주소 공간을 제2 네임스페이스(NS2)에 할당할 수 있다.
단계 S150에서, 제3 네임스페이스(NS3)의 생성 요청에 응답하여, 제2 논리 주소 공간에 연속적인 제3 논리 주소 공간을 제3 네임스페이스(NS3)에 할당한다. 예를 들어, 제3 네임스페이스(NS3)의 사이즈는 10일 수 있고, 논리 주소 공간(82)에서 LBA30에서 LBA49까지의 제3 논리 주소 공간을 제3 네임스페이스(NS3)에 할당할 수 있다.
도 9는 본 개시의 일 실시예에 따라, 호스트(200)와 스토리지 장치(100) 사이의 동작을 나타내는 흐름도이다. 도 10은 도 9에 예시된 네임스페이스 생성 동작에 따른 맵핑 테이블의 수정을 나타낸다. 이하에서는, 도 9 및 도 10을 함께 참조하여 네임스페이스 생성 방법을 자세하게 설명하기로 한다.
도 9 및 도 10을 참조하면, 단계 S210에서, 호스트(200)는 스토리지 장치(100)에 제1 네임스페이스(NS1) 생성 요청을 전달한다. 단계 S220에서, 스토리지 장치(100)는 제1 네임스페이스(NS1) 생성 요청에 응답하여, 제1 논리 주소 공간을 제1 네임스페이스(NS1)에 할당한다.
단계 S225에서, 스토리지 장치(100)는 제1 논리 주소 공간과 제1 논리 주소 공간에 대응하는 제1 물리 주소 공간에 대한 제1 맵핑 정보를 맵핑 테이블에 저장한다. 예를 들어, 맵핑 테이블(101)에서 제1 논리 주소 공간은 LPN(Logical Page Number)0에서 LPN9까지의 논리 주소를 포함하고, LPN0에 대응하는 물리 주소는 PPN(Physical Page Number)a이고, LPN9에 대응하는 물리 주소는 PPNb일 수 있다. 단계 S230에서, 스토리지 장치(100)는 제1 네임스페이스(NS1)의 생성 완료를 나타내는 응답 메시지를 호스트(200)에 전달할 수 있다.
단계 S240에서, 호스트(200)는 스토리지 장치(100)에 제2 네임스페이스(NS2) 생성 요청을 전달한다. 단계 S250에서, 스토리지 장치(100)는 제2 네임스페이스(NS2) 생성 요청에 응답하여, 제1 논리 주소 공간에 연속적인 제2 논리 주소 공간을 제2 네임스페이스(NS2)에 할당한다.
단계 S255에서, 스토리지 장치(100)는 제2 논리 주소 공간과 제2 논리 주소 공간에 대응하는 제2 물리 주소 공간에 대한 제2 맵핑 정보를 맵핑 테이블에 업데이트한다. 예를 들어, 업데이트된 맵핑 테이블(102)에서 제2 논리 주소 공간은 LPN10에서 LPN29까지의 논리 주소를 포함하고, LPN10에 대응하는 물리 주소는 PPNc이고, LPN29에 대응하는 물리 주소는 PPNd일 수 있다. 단계 S260에서, 스토리지 장치(100)는 제2 네임스페이스(NS2)의 생성 완료를 나타내는 응답 메시지를 호스트(200)에 전달할 수 있다.
단계 S270에서, 호스트(200)는 스토리지 장치(100)에 제3 네임스페이스(NS3) 생성 요청을 전달한다. 단계 S280에서, 스토리지 장치(100)는 제3 네임스페이스(NS3) 생성 요청에 응답하여, 제2 논리 주소 공간에 연속하는 제3 논리 주소 공간을 제3 네임스페이스(NS3)에 할당한다.
단계 S285에서, 스토리지 장치(100)는 제3 논리 주소 공간과 제3 논리 주소 공간에 대응하는 제3 물리 주소 공간에 대한 제3 맵핑 정보를 맵핑 테이블에 업데이트한다. 예를 들어, 업데이트된 맵핑 테이블(103)에서 제3 논리 주소 공간은 LPN30에서 LPN39까지의 논리 주소를 포함하고, LPN30에 대응하는 물리 주소는 PPNe이고, LPN39에 대응하는 물리 주소는 PPNf일 수 있다. 단계 S290에서, 스토리지 장치(100)는 제3 네임스페이스(NS3)의 생성 완료를 나타내는 응답 메시지를 호스트(200)에 전달할 수 있다.
도 11은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 도 12는 도 11의 방법에 따른 네임스페이스 삭제 동작을 나타낸다. 이하에서는, 도 1, 도 11 및 도 12를 함께 참조하여 스토리지 장치의 동작 방법을 설명하기로 한다.
도 11 및 도 12를 참조하면, 본 실시예에 따른 스토리지 장치의 동작 방법은 스토리지 장치에 네임스페이스를 동적으로 생성하고 삭제하는 동작으로서, 예를 들어, 도 1의 스토리지 장치(100)에서 시계열적으로 수행되는 단계들을 포함할 수 있다. 도 1 내지 도 6을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다.
단계 S310에서, 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 요청에 응답하여, 서로 연속적인 제1 및 제2 논리 주소 공간들을 제1 및 제2 네임스페이스들(NS1, NS2)에 각각 할당한다. 예를 들어, 제1 네임스페이스(NS1)의 사이즈는 10일 수 있고, 논리 주소 공간(121)에서 LBA0에서 LBA9까지의 제1 논리 주소 공간을 제1 네임스페이스(NS1)에 할당할 수 있다. 예를 들어, 제2 네임스페이스(NS2)의 사이즈는 20일 수 있고, 논리 주소 공간(121)에서 LBA10에서 LBA29까지의 제2 논리 주소 공간을 제2 네임스페이스(NS2)에 할당할 수 있다.
본 실시예에서, 논리 주소 공간(121)은 물리 주소 공간과 1:1로 맵핑될 수 있고, 스토리지 장치(100)의 저장 용량 이하일 수 있다. 일 실시예에서, 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 동작은 실질적으로 동시에 수행될 수 있다. 일 실시예에서, 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 동작은 순차적으로 수행될 수도 있다.
단계 S330에서, 제1 네임스페이스(NS1)의 삭제 요청에 응답하여, 맵핑 테이블에서 제1 네임스페이스(NS1)에 대한 제1 맵핑 정보와 제2 네임스페이스(NS2)에 대한 제2 맵핑 정보를 재배치한다. 예를 들어, 논리 주소 공간(122)에서, 제1 맵핑 정보와 제2 맵핑 정보의 위치를 변경하여, 제2 맵핑 정보를 LBA0부터 LBA19까지의 논리 주소 공간으로 재조정하고, 제1 맵핑 정보는 LBA20에서 LBA29까지의 논리 주소 공간으로 재조정할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에 따르면, 제1 네임스페이스(NS1)의 삭제 요청을 수신한 이후, 논리 주소 공간(122)에서 연속적인 논리 주소 공간을 판단하고, 연속적인 논리 주소 공간이 부족한 경우에 제1 맵핑 정보와 제2 맵핑 정보의 재배치를 수행할 수도 있다.
단계 S350에서, 제1 네임스페이스(NS1)의 제1 맵핑 정보에 대한 언맵 동작을 수행한다. 이에 따라, 논리 주소 공간(123)에는 제2 네임스페이스(NS2)의 제2 맵핑 정보만 남게 되고, 제1 맵핑 정보에 따른 물리 주소에 저장된 데이터가 무효화될 수 있다. 따라서, 비휘발성 메모리(120)에서 프리 블록의 개수를 증가시킬 수 있고, 이에 따라, 가비지 컬렉션을 효율적으로 수행할 수 있다. 예를 들어, 언맵 동작은 백그라운드 동작으로 수행될 수 있다. 일 실시예에서, 단계 S350 이후에, 블록 정보를 업데이트하는 동작을 더 수행할 수 있으며, 이에 대해 도 26 내지 도 28을 참조하여 후술하기로 한다.
도 13은 본 개시의 일 실시예에 따라, 호스트(200)와 스토리지 장치(100) 사이의 동작을 나타내는 흐름도이다. 도 14는 도 13에 예시된 네임스페이스 삭제 동작에 따른 맵핑 테이블의 수정을 나타낸다. 이하에서는, 도 13 및 도 14를 함께 참조하여 네임스페이스 삭제 방법을 자세하게 설명하기로 한다.
도 13 및 도 14를 참조하면, 단계 S410에서, 호스트(200)는 스토리지 장치(100)에 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 요청을 전달한다. 단계 S420에서, 스토리지 장치(100)는 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 요청에 응답하여, 서로 연속적인 제1 및 제2 논리 주소 공간들을 제1 및 제2 네임스페이스들(NS1, NS2)에 각각 할당한다.
단계 S430에서, 스토리지 장치(100)는 제1 논리 주소 공간과 제1 물리 주소 공간에 대한 제1 맵핑 정보 및 제2 논리 주소 공간과 제2 물리 주소 공간에 대한 제2 맵핑 정보를 맵핑 테이블에 저장한다. 예를 들어, 맵핑 테이블(141)에서 제1 논리 주소 공간은 LPN0에서 LPN9까지의 논리 주소를 포함하고, 제2 논리 주소 공간은 LPN10에서 LPN29까지의 논리 주소를 포함할 수 있다. 단계 S440에서, 스토리지 장치(100)는 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 완료를 나타내는 응답 메시지를 호스트(200)에 전달할 수 있다.
단계 S450에서, 호스트(200)는 스토리지 장치(100)에 제1 네임스페이스(NS1)의 삭제 요청을 전달한다. 단계 S460에서, 스토리지 장치(100)는 맵핑 테이블에서 제1 맵핑 정보와 제2 맵핑 정보를 재배치한다. 예를 들어, 맵핑 테이블(142)에서, 삭제될 제1 네임스페이스(NS1)가 사용하던 제1 논리 주소 공간과 제1 물리 주소 공간에 대한 제1 맵핑 정보가 그대로 남아 있게 되면, 스토리지 장치(100)에서 논리 주소 공간의 단편화가 발생할 수 있다.
본 실시예에 따르면, 맵핑 테이블(142)에서, 제1 논리 주소 공간을 제2 네임스페이스(NS2)에 할당하여 유효한 주소 공간을 모을 수 있다. 구체적으로, 제1 논리 주소 공간에 포함되었던 LPN0에서 LPN9 및 제2 논리 주소 공간에 포함되었던LPN10에서 LPN19를 제2 네임스페이스(NS2)에 할당할 수 있다. 이에 따라, LPN10에 대응하던 PPNc는 LPN0에 대응하고, LPN29에 대응하던 PPNd는 LPN19에 대응하는 것으로 맵핑 테이블(142)이 업데이트될 수 있다. 또한, 제2 논리 주소 공간에 포함되었던 LPN20에서 LPN29를 제1 네임스페이스(NS1)에 할당할 수 있다. 이에 따라, LPN0에 대응하던 PPNa는 LPN20에 대응하고, LPN9에 대응하던 PPNb는 LPN29에 대응하는 것으로 맵핑 테이블(142)이 업데이트될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에 따르면, 단계 S450 이후에, 논리 주소 공간에서 연속적인 논리 주소 공간을 판단하고, 연속적인 논리 주소 공간이 부족한 경우에 단계 S460을 수행할 수도 있다.
단계 S470에서, 스토리지 장치(100)는 맵핑 테이블에서 제1 네임스페이스(NS1)의 제1 맵핑 정보에 대한 언맵 동작을 수행한다. 예를 들어, 맵핑 테이블(143)에서, LPN20과 PPNa 사이의 맵핑 정보 내지 LPN29와 PPNb 사이의 맵핑 정보에 대해 언맵한다. 이어서, PPNa 내지 PPNb에 해당하는 블록 정보를 수정할 수 있다. 구체적으로, 블록 정보에서, PPNa 내지 PPNb에 대한 유효 페이지 개수를 수정할 수 있다. 이에 따라, PPNa 내지 PPNb에 저장된 데이터를 무효화시킬 수 있고, 비휘발성 메모리(120)에서 프리 블록의 개수를 증가시킴으로써 가비지 컬렉션을 효율적으로 수행할 수 있다. 단계 S480에서, 스토리지 장치(100)는 제1 네임스페이스(NS1)의 삭제 완료를 나타내는 응답 메시지를 호스트(200)에 전달할 수 있다.
도 15는 본 개시의 일 실시예에 따라, 호스트(200)와 스토리지 장치(100) 사이의 동작을 나타내는 흐름도이다.
도 15를 참조하면, 본 실시예는 네임스페이스의 삭제 동작의 일 구현예이며, 구체적으로, 도 13의 단계 S450 내지 S480에 대한 구체적인 일 실시예일 수 있다. 단계 S510에서, 호스트(200)는 스토리지 장치(100)에 제1 네임스페이스(NS1)의 삭제 요청을 전달한다. 단계 S520에서, 스토리지 장치(100)는 연속적인 논리 주소 공간이 부족한지 판단한다. 판단 결과, 연속적인 논리 주소 공간이 부족한 경우 단계 S530을 수행하고, 그렇지 않을 경우 단계 S540을 수행한다. 단계 S530에서, 스토리지 장치(100)는 맵핑 테이블에서 제1 맵핑 정보와 제2 맵핑 정보를 재배치한다.
단계 S540에서, 스토리지 장치(100)는 맵핑 테이블에서 제1 맵핑 정보에 대한 언맵 동작을 수행한다. 이에 따라, 제1 맵핑 정보에 포함된 물리 주소에 저장된 데이터는 무효화될 수 있고, 비휘발성 메모리(120)에서 프리 블록의 개수를 증가시킬 수 있다. 단계 S550에서, 스토리지 장치(100)는 언맵 동작의 완료를 나타내는 응답 메시지를 호스트(200)에 전달할 수 있다.
도 16은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 도 17은 도 16에 예시된 네임스페이스 삭제 동작에 따른 맵핑 테이블의 수정을 나타낸다. 도 18은 도 16에 예시된 네임스페이스 삭제 동작에 따른 맵핑 테이블의 수정을 나타낸다. 이하에서는, 도 16 내지 도 18을 함께 참조하여 네임스페이스 삭제 방법을 자세하게 설명하기로 한다.
도 16 내지 도 18을 참조하면, 본 실시예에 따른 스토리지 장치의 동작 방법은 스토리지 장치에 네임스페이스를 동적으로 생성하고 삭제하는 동작으로서, 도 11에 예시된 방법의 변형 예에 대응할 수 있다. 본 실시예는 예를 들어, 도 1의 스토리지 장치(100)에서 시계열적으로 수행되는 단계들을 포함할 수 있다. 도 1 내지 도 6을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다.
단계 S610에서, 제1 및 제2 네임스페이스들(NS1, NS2)의 생성 요청에 응답하여, 서로 연속적인 제1 및 제2 논리 주소 공간들을 제1 및 제2 네임스페이스들(NS1, NS2)에 각각 할당한다. 예를 들어, 논리 주소 공간(171)에서 사이즈 10을 갖는 제1 네임스페이스(NS1)에 제1 논리 주소 공간을 할당하고, 사이즈 20을 갖는 제2 네임스페즈이스(NS2)에 제2 논리 주소 공간을 할당할 수 있다.
본 실시예예서, 논리 주소 공간(171)은 물리 주소 공간과 1:1로 맵핑될 수 있고, 논리 주소 공간(171)은 스토리지 장치(100)의 저장 용량 이하일 수 있다. 예를 들어, 맵핑 테이블(181)에서 제1 논리 주소 공간은 LPN0에서 LPN9까지의 논리 주소를 포함하고, 제2 논리 주소 공간은 LPN10에서 LPN29까지의 논리 주소를 포함할 수 있다.
단계 S620에서, 제2 네임스페이스(NS2)의 삭제 요청에 응답하여, 맵핑 테이블에서 제2 맵핑 정보에 대한 언맵 동작을 수행한다. 이에 따라, 논리 주소 공간(172)에는 제1 네임스페이스(NS1)의 제1 맵핑 정보만 남게 되고, 맵핑 테이블(182)에는 LPN0와 PPNa의 맵핑 정보 내지 LPN9와 PPNb의 맵핑 정보만 남게 된다. 따라서, PPNc 내지 PPNd에 저장된 데이터가 무효화될 수 있고, 비휘발성 메모리(120)에서 프리 블록의 개수를 증가시킬 수 있다. 예를 들어, 언맵 동작은 백그라운드 동작으로 수행될 수 있다.
도 19는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 도 20은 도 19의 방법에 따른 스토리지 장치의 네임스페이스 삭제 동작을 나타낸다. 도 21은 도 19의 방법에 따른 맵핑 테이블의 수정을 나타낸다.
도 19 내지 도 21을 참조하면, 단계 S710에서, 스토리지 장치(100)는 제1 내지 제3 네임스페이스들(NS1, NS2, NS3)이 연속적인 논리 주소 공간들을 갖도록 맵핑 테이블을 관리한다. 예를 들어, 논리 주소 공간(201)에서, 사이즈 10을 갖는 제1 네임스페이스(NS1)에 제1 논리 주소 공간을 할당하고, 사이즈 20을 갖는 제2 네임스페이스(NS2)에 제1 논리 주소 공간에 연속하는 제2 논리 주소 공간을 할당하고, 사이즈 10을 갖는 제3 네임스페이스(NS3)에 제2 논리 주소 공간과 연속하는 제3 논리 주소 공간을 할당할 수 있다.
본 실시예에서, 논리 주소 공간(201)은 물리 주소 공간과 1:1로 맵핑될 수 있고, 논리 주소 공간(201)은 스토리지 장치(100)의 저장 용량 이하일 수 있다. 예를 들어, 맵핑 테이블(211)에서 제1 논리 주소 공간은 LPN0에서 LPN9까지의 논리 주소를 포함하고, 제2 논리 주소 공간은 LPN10에서 LPN29까지의 논리 주소를 포함하고, 제3 논리 주소 공간은 LPN30에서 LPN39까지의 논리 주소를 포함할 수 있다.
단계 S730에서, 스토리지 장치(100)는 제2 네임스페이스(NS2)의 삭제 요청에 응답하여, 제1 네임스페이스(NS1)와 제3 네임스페이스(NS3)가 연속적인 논리 주소 공간들을 갖도록 맵핑 테이블을 업데이트한다. 구체적으로, 논리 주소 공간(202)에서, 제2 네임스페이스(NS2)에 대한 제2 맵핑 정보와 제3 네임스페이스(NS3)에 대한 제3 맵핑 정보의 위치를 변경할 수 있다. 예를 들어, 제3 맵핑 정보를 LBA10부터 LBA19까지의 논리 주소 공간으로 재조정하고, 제2 맵핑 정보는 LBA20에서 LBA39까지의 논리 주소 공간으로 재조정할 수 있다.
본 실시예에 따르면, 맵핑 테이블(212)에서, 제2 논리 주소 공간을 제3 네임스페이스(NS3)에 할당하여 유효한 주소 공간을 모을 수 있다. 구체적으로, 제2 논리 주소 공간에 포함되었던 LPN10에서 LPN19를 제3 네임스페이스(NS3)에 할당할 수 있다. 이에 따라, LPN30에 대응하던 PPNe는 LPN10에 대응하고, LPN39에 대응하던 PPNf는 LPN19에 대응하는 것으로 맵핑 테이블(212)이 업데이트될 수 있다. 또한, 제2 주소 공간에 포함된 LPN20에서 LPN29 및 제3 논리 주소 공간에 포함되었던 LPN30에서 LPN39를 제2 네임스페이스(NS2)에 할당할 수 있다. 이에 따라, LPN10에 대응하던 PPNc는 LPN20에 대응하고, LPN29에 대응하던 PPNd는 LPN39에 대응하는 것으로 맵핑 테이블(212)이 업데이트될 수 있다.
단계 S750에서, 스토리지 장치(100)는 맵핑 테이블에서 제2 네임스페이스(NS2)의 맵핑 정보에 대한 언맵 동작을 수행한다. 이에 따라, 논리 주소 공간(203)에는 제1 네임스페이스(NS1)에 대한 제1 맵핑 정보 및 제3 네임스페이스(NS3)의 제3 맵핑 정보만 남게 되고, 제2 맵핑 정보에 따른 물리 주소에 저장된 데이터가 무효화될 수 있다. 예를 들어, 맵핑 테이블(213)에서, LPN20과 PPNc 사이의 맵핑 정보 내지 LPN39와 PPNd 사이의 맵핑 정보에 대해 언맵한다. 이에 따라, PPNc 내지 PPNd에 저장된 데이터를 무효화시킬 수 있고, 비휘발성 메모리(120)에서 프리 블록의 개수를 증가시킬 수 있다. 예를 들어, 언맵 동작은 백그라운드 동작으로 수행될 수 있다.
도 22는 본 개시의 일 실시예에 따라, 네임스페이스가 삭제되는 경우 컨트롤러(110)와 비휘발성 메모리(120) 사이의 동작을 나타내는 흐름도이다. 도 23은 도 22의 동작의 일 예에 따른 맵핑 테이블 업데이트 동작을 나타낸다.
도 22 및 도 23을 참조하면, 단계 S810에서, 컨트롤러(110)는 복수의 네임스페이스들 중 하나의 네임스페이스의 삭제 요청을 수신한다. 예를 들어, 복수의 네임스페이스들은 제1 내지 제3 네임스페이스들(NS1 내지 NS3)이고, 컨트롤러(110)는 제2 네임스페이스(NS2)의 삭제 요청이 수신될 수 있다.
단계 S820에서, 컨트롤러(110)는 현재 맵핑 테이블을 비휘발성 메모리(120)에 제공한다. 구체적으로, 컨트롤러(110)는 컨트롤러(110)에 포함된 메모리(예를 들어, 도 4의 111 또는 도 5의 111')에 로딩된 현재 맵핑 테이블을 비휘발성 메모리(120)의 메타 영역(120b)에 제공할 수 있다. 단계 S830에서, 비휘발성 메모리(120)는 현재 맵핑 테이블을 메타 영역(120b)에 저장한다.
예를 들어, DRAM에 로딩된 현재 맵핑 테이블(231)은 제1 내지 제3 네임스페이스들(NS1 내지 NS3)의 맵핑 정보를 포함할 수 있다. 제1 네임스페이스(NS1)의 메타 데이터는 제1 블록(BLK0)의 제1 내지 제4 페이지들(P0 내지 P4)에 저장되고, 제2 네임스페이스(NS2)의 메타 데이터는 제2 블록(BLK1)의 제1 내지 제4 페이지들(P0 내지 P4) 및 제3 블록(BLK2)의 제1 내지 제4 페이지들(P0 내지 P4)에 저장되며, 제3 네임스페이스(NS2)의 메타 데이터는 제4 블록(BLK3)에 저장될 수 있다.
본 실시예에서, DRAM에 로딩된 현재 맵핑 테이블(231)을 비휘발성 메모리(NVM)에 제공함으로써, 비휘발성 메모리(120)는 현재 맵핑 테이블(231)과 동일한 맵핑 테이블(232)을 저장할 수 있다. 따라서, 비휘발성 메모리(120)에 저장된 맵핑 테이블(232)도 제1 내지 제3 네임스페이스들(NS1 내지 NS3)의 맵핑 정보를 포함할 수 있다. 이와 같이, 네임스페이스 삭제 동작 시, 컨트롤러(110)와 비휘발성 메모리(120) 사이에 첫 번째 데이터 입출력이 발생하게 된다. 그러나, 본 발명은 이에 한정되지 않으며, 단계 S820 및 S830은 생략될 수 있다. 구체적으로, 비휘발성 메모리(120)에 이미 저장된 맵핑 테이블과 DRAM에 로딩된 현재 맵핑 테이블(231)이 동일한 경우에 단계 S820 및 S830은 생략될 수 있다.
단계 S840에서, 비휘발성 메모리(120)는 저장된 맵핑 테이블을 컨트롤러(110)에 제공한다. 단계 S850에서, 컨트롤러(110)는 비휘발성 메모리(120)로부터 제공된 맵핑 테이블 내의 맵핑 정보를 재배치하여 로딩한다. 구체적으로, 컨트롤러(110)는 맵핑 정보가 재배치된 수정 맵핑 테이블을 컨트롤러(110)에 포함된 메모리에 로딩할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 컨트롤러(110)는 맵핑 정보가 재배치된 수정 맵핑 테이블을 컨트롤러(110) 외부에 배치된 메모리에 로딩할 수도 있다.
본 실시예에서, 비휘발성 메모리(120)에서 DRAM으로 맵핑 정보를 읽을 때, 제3 네임스페이스(NS3)의 맵핑 정보와 제2 네임스페이스(NS2)의 맵핑 정보의 위치를 바꿀 수 있고, 이에 따라, DRAM에는 수정 맵핑 테이블(233)이 로딩될 수 있다. 이와 같이, 네임스페이스 삭제 동작 시, 컨트롤러(110)와 비휘발성 메모리(120) 사이에 두 번째 데이터 입출력이 발생하게 된다.
본 실시예에 따르면, 수정 맵핑 테이블(233)에서, 제1 네임스페이스(NS1)와 제3 네임스페이스(NS3)는 서로 연속적인 논리 주소 공간들을 가질 수 있다. 따라서, 제2 네임스페이스(NS2)를 삭제하더라도 논리 주소 공간들 사이의 단편화가 발생되지 않을 수 있고, 유효 논리 주소 공간들을 모을 수 있다.
단계 S860에서, 컨트롤러(110)는 수정 맵핑 테이블을 비휘발성 메모리(120)에 제공한다. 단계 S870에서, 비휘발성 메모리(120)는 수정 맵핑 테이블을 메타 영역(120b)에 저장한다. 본 실시예에서, DRAM에 로딩된 수정 맵핑 테이블(233)을 비휘발성 메모리(NVM)에 제공함으로써, 비휘발성 메모리(120)는 수정 맵핑 테이블(233)과 동일한 맵핑 테이블(234)을 저장할 수 있다. 이와 같이, 네임스페이스 삭제 동작 시, 컨트롤러(110)와 비휘발성 메모리(120) 사이에 세 번째 데이터 입출력이 발생하게 된다.
도 24는 본 개시의 일 실시예에 따라, 네임스페이스가 삭제되는 경우 컨트롤러(110)와 비휘발성 메모리(120) 사이의 동작을 나타내는 흐름도이다. 도 25는 도 24의 동작의 일 예에 따른 맵핑 테이블 업데이트 동작을 나타낸다.
도 24 및 도 25를 참조하면, 단계 S910에서, 컨트롤러(110)는 복수의 네임스페이스들 중 하나의 네임스페이스의 삭제 요청을 수신한다. 예를 들어, 복수의 네임스페이스들은 제1 내지 제3 네임스페이스들(NS1 내지 NS3)이고, 컨트롤러(110)은 제2 네임스페이스(NS2)의 삭제 요청이 수신될 수 있다. 단계 S920에서, 컨트롤러(110)는 삭제할 네임스페이스의 맵핑 정보에 대한 언맵 동작을 수행한다.
예를 들어, DRAM에 로딩된 맵핑 테이블(251)은 제1 내지 제3 네임스페이스들(NS1 내지 NS3)의 맵핑 정보를 포함할 수 있다. 제1 네임스페이스(NS1)의 메타 데이터는 제1 블록(BLK0)의 제1 내지 제4 페이지들(P0 내지 P4)에 저장되고, 제2 네임스페이스(NS2)의 메타 데이터는 제2 블록(BLK1)의 제1 내지 제4 페이지들(P0 내지 P4) 및 제3 블록(BLK2)의 제1 내지 제4 페이지들(P0 내지 P4)에 저장되며, 제3 네임스페이스(NS2)의 메타 데이터는 제4 블록(BLK3)에 저장될 수 있다.
본 실시예에서, 언맵 동작에 의해, 맵핑 테이블(252)에서, 제2 네임스페이스(NS2)의 메타 데이터가 삭제될 수 있다. 구체적으로, 제2 블록(BLK1)의 제1 내지 제4 페이지들(P0 내지 P4) 및 제3 블록(BLK2)의 제1 내지 제4 페이지들(P0 내지 P4)에 저장된, 제2 네임스페이스(NS2)의 메타 데이터가 언맵된다. 이에 따라, 제2 블록(BLK1)의 제1 내지 제4 페이지들(P0 내지 P4) 및 제3 블록(BLK2)의 제1 내지 제4 페이지들(P0 내지 P4)에 저장된 물리 주소, 즉, 유저 데이터가 저장된 물리 주소의 유효 페이지 개수가 변경될 수 있다.
단계 S930에서, 컨트롤러(110)는 다음 네임스페이스의 맵핑 정보를 삭제할 네임스페이스에 할당되었던 논리 주소 공간으로 카피한다. 예를 들어, 다음 네임스페이스는 제3 네임스페이스(NS3)일 수 있다. 본 실시예에서, 제3 네임스페이스(NS3)의 맵핑 정보는 제2 네임스페이스(NS2)의 논리 주소 공간으로 카피함으로써, DRAM에 변경된 맵핑 테이블(253)이 생성될 수 있다.
예를 들어, 제2 네임스페이스(NS2)에 할당되었던 논리 주소 공간이 LBA100 내지 LBA199이고, 제3 네임스페이스(NS3)에 할당된 논리 주소 공간이 LBA200 내지 LBA250인 경우, 제3 네임스페이스(NS3)의 LBA200 내지 LBA250의 맵핑 정보를 LBA100 내지 LBA150까지의 맵핑 정보로 카피할 수 있다. 이에 따라, 변경된 맵핑 테이블(253)은 제1 및 제3 네임스페이스들(NS1, NS3)의 맵핑 정보들을 포함할 수 있다.
단계 S940에서, 컨트롤러(110)는 변경된 맵핑 테이블을 비휘발성 메모리(120)에 제공한다. 단계 S950에서, 비휘발성 메모리(120)는 변경된 맵핑 테이블을 메타 영역(120b)에 저장한다. 본 실시예에서, DRAM에 생성된 수정 맵핑 테이블(253)을 비휘발성 메모리(NVM)에 제공함으로써, 비휘발성 메모리(120)는 수정 맵핑 테이블(253)과 동일한 맵핑 테이블(254)을 저장할 수 있다. 이와 같이, 네임스페이스 삭제 동작 시, 컨트롤러(110)와 비휘발성 메모리(120) 사이에 데이터 입출력이 발생하게 된다.
이하에서는, 도 1, 도 26 내지 도 28을 참조하여, 네임스페이스 삭제 동작 시 수행되는 블록 정보 업데이트 동작에 대해 설명하기로 한다. 도 1 내지 도 25를 참조하여 상술된 내용은 이하의 실시예에도 적용될 수 있고, 중복된 설명은 생략하기로 한다.
도 26은 본 개시의 일 실시예에 따른 메타 데이터의 일 예(261)를 나타낸다.
도 1 및 도 26을 함께 참조하면, 메타 데이터(261)는 L2P 맵핑 테이블(L2P) 및 블록 정보(Block Information)(BI)를 포함할 수 있다. 메타 데이터(261)는 스토리지 장치(100)의 비휘발성 메모리(120)에 저장되고, 스토리지 장치(100)에 전원이 인가되면 비휘발성 메모리(120)에서 메모리에 로딩될 수 있다. 이때, 메모리는 스토리지 장치(100)의 컨트롤러(110) 내부에 배치될 수도 있고, 컨트롤러(110) 외부에 배치될 수도 있다.
L2P 맵핑 테이블(L2P)은 예를 들어, LPN0 내지 LPNn 각각에 대응하는 물리 주소 공간에 대한 맵핑 정보를 포함할 수 있다. 여기서, n은 임의의 자연수일 수 있다. 본 실시예에서, L2P 맵핑 테이블(L2P)는 스토리지 장치(100)에 생성된 복수의 네임스페이스들의 맵핑 정보를 모두 포함할 수 있고, 복수의 네임스페이스들은 L2P 맵핑 테이블(L2P)을 공유할 수 있다.
블록 정보(BI)는 PBN(Physical Block Number)0 내지 PBNm의 각각에 대한 유효 페이지 카운트(valid page count)(도 27 및 도 28의 VPC)를 저장할 수 있다. 여기서, n은 임의의 자연수일 수 있다. 여기서, 유효 페이지 카운트는 각 블록에 포함된 복수의 페이지들 중 유효 페이지의 개수를 의미한다.
컨트롤러(110)의 FTL은 블록 정보(BI)를 참조하여 비휘발성 메모리(120)에 대한 가비지 컬렉션 동작 또는 소거 동작 등을 수행할 수 있다. 예를 들어, PBN0에 대한 유효 페이지 카운트가 0이면, FTL은 PBN0을 무효 블록으로 볼 수 있고, PBN0에 대해 소거 동작을 수행할 수 있다. 예를 들어, PBN1에 대한 유효 페이지 카운트가 기준 값 이하이면, FTL은 PBN1에 대해 가비지 컬렉션을 수행할 수 있다.
도 27은 본 개시의 일 실시예에 따라, 멀티 네임스페이스를 관리하는 L2P 맵핑 테이블(271)과 블록 정보(272)를 나타낸다.
도 27을 참조하면, L2P 맵핑 테이블(271)은 제1 내지 제3 네임스페이스들(NS1 내지 NS3)의 맵핑 정보를 포함할 수 있다. 예를 들어, LPN0 내지 LPN3이 제1 네임스페이스(NS1)에 할당되고, LPN4 내지 LPN7이 제2 네임스페이스(NS2)에 할당되고, LPN8 내지 LPN11이 제3 네임스페이스(NS3)에 할당될 수 있다.
예를 들어, L2P 맵핑 테이블(271)에 따르면, LPN4 내지 LPN7은 비휘발성 메모리(NVM)의 제2 블록(BLK1)의 제1 내지 제4 페이지들(PAGE0 내지 PAGE4)로 각각 맵핑될 수 있다. 예를 들어, L2P 맵핑 테이블(271)에 따르면, 제1 블록(BLK0), 즉, PBN0의 제1 내지 제4 페이지들(PAGE0 내지 PAGE3)은 모두 유효하므로, 블록 정보(272)에서, PBN0에 대한 유효 페이지 카운트(VPC)는 4일 수 있다. 또한, L2P 맵핑 테이블(271)에 따르면, 제2 블록(BLK1), 즉, PBN0의 제1 내지 제4 페이지들(PAGE0 내지 PAGE3)도 모두 유효하므로, 블록 정보(272)에서, PBN1에 대한 유효 페이지 카운트(VPC)도 4일 수 있다.
도 28은 본 개시의 일 실시예에 따라, 네임스페이스 삭제 동작에 따라 변경된 L2P 맵핑 테이블(281)과 블록 정보(282)를 나타낸다.
도 28을 참조하면, L2P 맵핑 테이블(281)은 제1 및 제3 네임스페이스들(NS1, NS3)의 맵핑 정보를 포함할 수 있다. 예를 들어, 제2 네임스페이스(NS2)가 삭제되는 경우, L2P 맵핑 테이블(281)에서 제2 네임스페이스(NS2)의 맵핑 정보에 대한 언맵 동작이 수행될 수 있다. 이에 따라, 제2 네임스페이스(NS2)에 할당되었던 LPN4 내지 LPN7은 더 이상 제2 블록(BLK1)의 제1 내지 제4 페이지들(PAGE0 내지 PAGE3)에 맵핑되지 않는다.
따라서, 제2 블록(BLK1)의 제1 내지 제4 페이지들(PAGE0 내지 PAGE3)은 유효한 데이터를 저장하고 있지 않으며, 제2 블록(BLK1)의 제1 내지 제4 페이지들(PAGE0 내지 PAGE3)은 무효 데이터를 저장하고 있는 것으로 볼 수 있다. 그러므로, 제2 블록(BLK1), 즉, PBN1의 제1 내지 제4 페이지들(PAGE0 내지 PAGE3)은 모두 유효하지 않으므로, 블록 정보(282)에서, PBN1에 대한 유효 페이지 카운트(VPC)는 0으로 변경될 수 있다. PBN1은 유효 페이지를 포함하고 있지 않으므로, FTL은 PBN1에 대해 소거 동작을 수행할 수 있고, 소거 동작에 의해, PBN1은 프리 블록이 될 수 있다.
한편, 예를 들어, 제2 블록(BLK1), 즉, PBN1의 제1 페이지(PAGE0)만 유효하고, 제2 내지 제4 페이지(PAGE1 내지 PAGE3)이 유효하지 않은 경우, PBN1의 유효 페이지 카운트(VPC)는 1으로 변경될 수 있다. 이때, FTL은 PBN1의 제1 페이지(PAGE0)를 임의의 다른 블록에 기록하고 PBN1에 대해 소거 동작을 수행할 수 있고, 소거 동작에 의해, PBN1은 프리 블록이 될 수 있다.
도 29는 본 개시의 일 실시예에 따른 전자 장치(1000)를 나타내는 블록도이다.
도 29를 참조하면, 전자 장치(1000)는 프로세서(1100), 메모리 장치(1200), 스토리지 장치(1300), 모뎀(1400), 입출력 장치(1500) 및 파워 서플라이(1600)를 포함할 수 있다. 본 실시예에서, 스토리지 장치(1300)는 네임스페이스 기능을 지원할 수 있고, 멀티 네임스페이스를 관리할 수 있다. 스토리지 장치(1300)는 네임스페이스 생성 요청 또는 삭제 요청에 응답하여, 네임스페이스를 동적으로 생성 또는 삭제할 수 있고, 네임스페이스의 생성 또는 삭제에 따라 맵핑 테이블을 업데이트할 수 있다. 도 1 내지 도 28을 참조하여 상술된 내용은 스토리지 장치(1300)에 적용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 스토리지 시스템, 100: 스토리지 장치,
110: 컨트롤러, 120: 비휘발성 메모리, 200: 호스트,
111a: 네임스페이스 관리자, MT: 맵핑 테이블

Claims (20)

  1. 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법으로서,
    제1 네임스페이스의 생성 요청에 응답하여, 상기 제1 네임스페이스에 할당되는 제1 논리 주소 공간 및 상기 제1 논리 주소 공간에 대응하는 제1 물리 주소 공간에 대한 제1 맵핑 정보를 맵핑 테이블에 저장하는 단계;
    제2 네임스페이스의 생성 요청에 응답하여, 상기 제2 네임스페이스에 할당되고 상기 제1 논리 주소 공간에 연속적인 제2 논리 주소 공간 및 상기 제2 논리 주소 공간에 대응하는 제2 물리 주소 공간에 대한 제2 맵핑 정보를 상기 맵핑 테이블에 업데이트하는 단계; 및
    상기 제1 네임스페이스의 삭제 요청에 응답하여, 상기 맵핑 테이블에서 상기 제1 및 제2 맵핑 정보를 재배치(relocate)하는 단계를 포함하고,
    상기 재배치하는 단계는, 상기 제1 논리 주소 공간을 상기 제2 네임스페이스에 할당하고, 상기 제1 논리 주소 공간에 상기 제2 물리 주소 공간이 대응하도록 상기 맵핑 테이블을 업데이트하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 논리 주소 공간들의 합은 상기 스토리지 장치의 저장 용량 이하인 것을 특징으로 하는 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 재배치하는 단계 이후에, 상기 제1 물리 주소 공간에 저장된 데이터를 무효화하도록, 상기 맵핑 테이블에서 상기 제1 맵핑 정보에 대한 언맵(unmap) 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 스토리지 장치는 메모리 및 비휘발성 메모리를 포함하고,
    상기 재배치하는 단계는,
    상기 비휘발성 메모리에 저장된 상기 맵핑 테이블 내의 상기 제1 및 제2 맵핑 정보를 재배치하여, 상기 메모리에 수정 맵핑 테이블을 로딩하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 재배치하는 단계는,
    상기 로딩하는 단계 이전에, 상기 메모리에 로딩된 상기 맵핑 테이블을 상기 비휘발성 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 재배치하는 단계는, 상기 로딩하는 단계 이후에, 상기 수정 맵핑 테이블을 상기 비휘발성 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 재배치하는 단계는,
    상기 맵핑 테이블에서 상기 제1 맵핑 정보에 대한 언맵 동작을 수행하는 단계; 및
    상기 맵핑 테이블에서 상기 제2 맵핑 정보를 상기 제1 논리 주소 공간으로 카피(copy)함으로써 상기 맵핑 테이블을 변경하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 스토리지 장치는 비휘발성 메모리를 포함하고,
    상기 재배치하는 단계는, 상기 변경된 맵핑 테이블을 상기 비휘발성 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 제1 네임스페이스의 삭제 요청에 응답하여, 상기 스토리지 장치의 논리 주소 공간에서 연속적인 논리 주소 공간이 부족한지 판단하는 단계; 및
    상기 연속적인 논리 주소 공간이 부족한 경우, 상기 맵핑 테이블에서 상기 제1 및 제2 맵핑 정보를 재배치하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    제3 네임스페이스의 생성 요청에 응답하여, 상기 제3 네임스페이스에 할당되고 상기 제2 논리 주소 공간에 연속하는 제3 논리 주소 공간 및 상기 제3 논리 주소 공간에 대응하는 제3 물리 주소 공간에 대한 제3 맵핑 정보를 상기 맵핑 테이블에 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 제1 내지 제3 논리 주소 공간들의 합은 상기 스토리지 장치의 저장 용량 이하인 것을 특징으로 하는 방법.
  14. 제12항에 있어서,
    상기 제2 네임스페이스의 삭제 요청에 응답하여, 상기 맵핑 테이블에서 상기 제2 및 제3 맵핑 정보를 재배치하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법으로서,
    제1 및 제2 네임 스페이스들의 생성 요청에 응답하여, 서로 연속적인 제1 및 제2 논리 주소 공간들을 상기 제1 및 제2 네임스페이스들에 각각 할당하고, 상기 제1 및 제2 논리 주소 공간들 각각에 대한 제1 및 제2 맵핑 정보들을 맵핑 테이블에 저장하는 단계; 및
    상기 제1 네임스페이스의 삭제 요청에 응답하여, 상기 맵핑 테이블에서 상기 제1 맵핑 정보와 상기 제2 맵핑 정보를 재배치하는 단계를 포함하는 방법.
  16. 멀티 네임스페이스를 관리하는 스토리지 장치의 동작 방법으로서,
    제1, 제2 및 제3 네임스페이스들이 연속적인 논리 주소 공간들을 갖도록 맵핑 테이블을 관리하는 단계; 및
    상기 제2 네임스페이스의 삭제 요청에 응답하여, 상기 제1 네임스페이스와 상기 제3 네임스페이스가 연속적인 논리 주소 공간을 갖도록 상기 맵핑 테이블을 업데이트하는 단계를 포함하는 방법.
  17. 제16항에 있어서,
    상기 업데이트하는 단계는, 상기 맵핑 테이블에서 상기 제2 네임스페이스에 대한 맵핑 정보와 상기 제3 네임스페이스에 대한 맵핑 정보를 재배치하여, 상기 제2 네임스페이스에 할당되었던 논리 주소 공간을 상기 제3 네임스페이스에 할당하는 것을 특징으로 하는 방법.
  18. 제16항에 있어서,
    상기 업데이트하는 단계 이후에, 상기 맵핑 테이블에서 상기 제2 네임스페이스의 맵핑 정보에 대한 언맵 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 멀티 네임스페이스를 관리하는 스토리지 장치로서,
    비휘발성 메모리; 및
    제1 네임스페이스의 생성 요청에 응답하여, 이전에 생성된 네임스페이스의 논리 주소 공간과 연속한 제1 논리 주소 공간을 상기 제1 네임스페이스에 할당함으로써 상기 제1 네임스페이스를 동적으로 생성하고, 상기 제1 네임스페이스의 제1 맵핑 정보를 맵핑 테이블을 업데이트하는 컨트롤러를 포함하는 스토리지 장치.
  20. 제19항에 있어서,
    상기 컨트롤러는, 제2 네임스페이스의 생성 요청에 응답하여, 상기 제1 논리 주소 공간과 연속한 제2 논리 주소 공간을 상기 제2 네임스페이스에 할당함으로써 상기 제2 네임스페이스를 동적으로 생성하고, 상기 제2 네임스페이스의 제2 맵핑 정보를 상기 맵핑 테이블에 더 업데이트하고, 또한,
    상기 컨트롤러는, 상기 제1 네임스페이스의 삭제 요청에 응답하여, 상기 제1 및 제2 맵핑 정보를 재배치하고 상기 제1 맵핑 정보를 언맵함으로써, 상기 제1 네임스페이스를 동적으로 삭제하는 것을 특징으로 하는 스토리지 장치.
KR1020160143424A 2016-10-31 2016-10-31 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 Active KR102765301B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160143424A KR102765301B1 (ko) 2016-10-31 2016-10-31 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US15/611,364 US10324834B2 (en) 2016-10-31 2017-06-01 Storage device managing multi-namespace and method of operating the storage device
DE102017112925.1A DE102017112925A1 (de) 2016-10-31 2017-06-13 Speichervorrichtung zum Verwalten eines Mehrfachnamenraums und Verfahren zum Betreiben der Speichervorrichtung
CN201710546576.1A CN108021510B (zh) 2016-10-31 2017-07-06 操作对多重名称空间进行管理的存储装置的方法
TW106123127A TWI739859B (zh) 2016-10-31 2017-07-11 操作對多重名稱空間進行管理的儲存裝置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160143424A KR102765301B1 (ko) 2016-10-31 2016-10-31 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20180047402A KR20180047402A (ko) 2018-05-10
KR102765301B1 true KR102765301B1 (ko) 2025-02-07

Family

ID=61912211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160143424A Active KR102765301B1 (ko) 2016-10-31 2016-10-31 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Country Status (5)

Country Link
US (1) US10324834B2 (ko)
KR (1) KR102765301B1 (ko)
CN (1) CN108021510B (ko)
DE (1) DE102017112925A1 (ko)
TW (1) TWI739859B (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032259B1 (en) * 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
TWI602074B (zh) * 2016-12-29 2017-10-11 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
CN108959108B (zh) * 2017-05-26 2021-08-24 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置
CN109656833B (zh) * 2017-10-12 2022-11-11 慧荣科技股份有限公司 数据储存装置
CN109656834B (zh) * 2017-10-12 2022-11-11 慧荣科技股份有限公司 数据管理方法以及数据储存系统
US10503404B2 (en) * 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
US10642488B2 (en) 2017-10-23 2020-05-05 Micron Technology, Inc. Namespace size adjustment in non-volatile memory devices
US10437476B2 (en) 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
US10915440B2 (en) 2017-11-16 2021-02-09 Micron Technology, Inc. Namespace mapping optimization in non-volatile memory devices
US10678703B2 (en) 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US10223254B1 (en) 2017-11-16 2019-03-05 Micron Technology, Inc. Namespace change propagation in non-volatile memory devices
US11580034B2 (en) 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
KR102571629B1 (ko) * 2018-05-23 2023-08-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN115421671B (zh) * 2018-06-22 2025-08-19 慧荣科技股份有限公司 闪存存储装置的命名空间操作方法
CN110908927A (zh) * 2018-09-14 2020-03-24 慧荣科技股份有限公司 数据储存装置及其删除命名空间的方法
TWI715116B (zh) * 2018-09-14 2021-01-01 慧榮科技股份有限公司 資料儲存裝置及其刪除命名空間之方法
CN110908926B (zh) 2018-09-14 2022-03-22 慧荣科技股份有限公司 数据储存装置及逻辑至物理地址映射表的写入方法
KR20200032404A (ko) * 2018-09-18 2020-03-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US10691592B2 (en) * 2018-10-30 2020-06-23 Micron Technology, Inc. Error-checking in namespaces on storage devices using a namespace table and metadata
KR102837303B1 (ko) 2018-12-12 2025-07-24 삼성전자주식회사 저장 장치 및 그것의 동작 방법
KR102837223B1 (ko) * 2019-04-18 2025-07-22 에스케이하이닉스 주식회사 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법
CN110046170B (zh) * 2019-04-22 2021-07-27 深圳乐信软件技术有限公司 基于多文件管理的语句执行方法、装置、设备和介质
TWI719654B (zh) 2019-06-21 2021-02-21 慧榮科技股份有限公司 閃存實體資源集合管理裝置及方法以及電腦程式產品
KR102869315B1 (ko) * 2019-07-24 2025-10-14 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11579910B2 (en) * 2019-09-20 2023-02-14 Netapp, Inc. Policy enforcement and performance monitoring at sub-LUN granularity
KR102879913B1 (ko) * 2019-11-28 2025-11-03 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템
JP7475989B2 (ja) * 2020-06-26 2024-04-30 キオクシア株式会社 メモリシステムおよび制御方法
US11061770B1 (en) * 2020-06-30 2021-07-13 EMC IP Holding Company LLC Reconstruction of logical pages in a storage system
US11256678B2 (en) * 2020-06-30 2022-02-22 EMC IP Holding Company LLC Reconstruction of links between logical pages in a storage system
KR20220021796A (ko) 2020-08-14 2022-02-22 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102809393B1 (ko) 2020-08-28 2025-05-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20220053808A (ko) * 2020-10-23 2022-05-02 삼성전자주식회사 멀티 네임스페이스 스토리지 장치, 상기 스토리지 장치를 포함하는 전자 시스템 및 상기 스토리지 장치의 동작 방법
CN114594901B (zh) 2020-12-04 2024-09-06 伊姆西Ip控股有限责任公司 访问存储系统的方法、电子设备和计算机程序产品
US12088470B2 (en) * 2020-12-18 2024-09-10 Western Digital Technologies, Inc. Management of non-volatile memory express nodes
JP7547231B2 (ja) * 2021-01-27 2024-09-09 キオクシア株式会社 メモリシステムおよび制御方法
JP2023001573A (ja) 2021-06-21 2023-01-06 キオクシア株式会社 メモリシステムおよび制御方法
CN114281408B (zh) * 2021-12-27 2025-09-02 杭州电子科技大学 一种物联网数据监控点和寄存器地址自适应映射方法
US11914898B2 (en) * 2022-01-26 2024-02-27 Kioxia Corporation Systems, methods, and non-transitory computer-readable media for thin provisioning in non-volatile memory storage devices
US11947816B1 (en) * 2022-09-19 2024-04-02 Kioxia Corporation Solid state drives with improved format handling
US12386564B2 (en) * 2022-11-02 2025-08-12 Intel Corporation Reducing write amplification and over-provisioning using flash translation layer synchronization
KR20240065774A (ko) * 2022-11-07 2024-05-14 에스케이하이닉스 주식회사 네임스페이스의 순차성을 기초로 논리 주소를 변환하는 스토리지 장치 및 그 동작 방법
KR20240114205A (ko) 2023-01-16 2024-07-23 삼성전자주식회사 멀티 네임스페이스를 지원하는 스토리지 장치 및 그것의 동작 방법
US12461853B2 (en) 2023-06-27 2025-11-04 Western Digital Technologies, Inc. Data storage device with key-value delete management for multi-host namespaces
US20250130960A1 (en) * 2023-10-24 2025-04-24 Western Digital Technologies, Inc. Namespace Management Using Mastership In Multi-Host Storage Systems
US20250383814A1 (en) * 2024-05-08 2025-12-18 Micron Technology, Inc. Sub Block Access via Memory Namespace Command Set

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110295A1 (en) * 2013-11-15 2016-04-21 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
JP2016091534A (ja) * 2014-10-30 2016-05-23 株式会社東芝 メモリシステム及びプログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408298B1 (en) * 1999-12-15 2002-06-18 Microsoft Corporation Methods and systems for copying and moving across virtual namespaces
KR100392382B1 (ko) * 2001-07-27 2003-07-23 한국전자통신연구원 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법
US8914429B2 (en) * 2002-02-08 2014-12-16 Willaim Pitts Method for creating global distributed namespace
US7496565B2 (en) * 2004-11-30 2009-02-24 Microsoft Corporation Method and system for maintaining namespace consistency with a file system
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US9727570B2 (en) 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
US8635326B1 (en) * 2011-09-29 2014-01-21 Juniper Networks, Inc. Mobile gateway having reduced forwarding state for anchoring mobile subscribers
US9086820B2 (en) * 2012-12-10 2015-07-21 Infinidat Ltd. System and methods for managing storage space allocation
US9003071B2 (en) 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV
US9524300B2 (en) * 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Heterogenic volume generation and use system
US9430412B2 (en) 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
US9292379B2 (en) * 2013-09-28 2016-03-22 Intel Corporation Apparatus and method to manage high capacity storage devices
CA2881206A1 (en) 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US20170228173A9 (en) 2014-05-02 2017-08-10 Cavium, Inc. Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
US9501245B2 (en) 2014-05-02 2016-11-22 Cavium, Inc. Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
KR102430198B1 (ko) 2014-06-12 2022-08-05 삼성전자주식회사 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법
US10380026B2 (en) 2014-09-04 2019-08-13 Sandisk Technologies Llc Generalized storage virtualization interface
JP2016122227A (ja) * 2014-12-24 2016-07-07 株式会社東芝 メモリシステムおよび情報処理システム
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US20160342463A1 (en) * 2015-05-20 2016-11-24 Kabushiki Kaisha Toshiba Data protection in a namespace
US10402092B2 (en) * 2016-06-01 2019-09-03 Western Digital Technologies, Inc. Resizing namespaces for storage devices
US10866732B2 (en) * 2017-03-10 2020-12-15 Toshiba Memory Corporation Namespace re-sizing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110295A1 (en) * 2013-11-15 2016-04-21 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
JP2016091534A (ja) * 2014-10-30 2016-05-23 株式会社東芝 メモリシステム及びプログラム

Also Published As

Publication number Publication date
US20180121344A1 (en) 2018-05-03
CN108021510A (zh) 2018-05-11
CN108021510B (zh) 2023-02-17
US10324834B2 (en) 2019-06-18
KR20180047402A (ko) 2018-05-10
TW201818249A (zh) 2018-05-16
TWI739859B (zh) 2021-09-21
DE102017112925A1 (de) 2018-05-03

Similar Documents

Publication Publication Date Title
KR102765301B1 (ko) 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
US10789162B2 (en) Memory system and method for controlling nonvolatile memory
CN109240938B (zh) 存储系统以及控制非易失性存储器的控制方法
US12141480B2 (en) Storage device and operating method thereof including a plurality of zones and operating method thereof
US9367451B2 (en) Storage device management device and method for managing storage device
JP2018049522A (ja) メモリシステム及び制御方法
CN101937319A (zh) 存储器系统及其映射方法
JP2018049523A (ja) メモリシステムおよび制御方法
KR20110119408A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20190391756A1 (en) Data storage device and cache-diversion method thereof
KR20170038853A (ko) 호스트-관리 비휘발성 메모리
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
CN115390747A (zh) 存储设备及其操作方法
US12353332B2 (en) Storage device supporting multi-namespace and method of operating the same
JP2008217208A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
US20250251868A1 (en) Memory controller, storage device including memory controller, and method of operating the same
US20220164119A1 (en) Controller, and memory system and data processing system including the same
JP2022036263A (ja) 制御方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20161031

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20210924

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20161031

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240130

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241028

PG1601 Publication of registration