KR20150081635A - 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법 - Google Patents

불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법 Download PDF

Info

Publication number
KR20150081635A
KR20150081635A KR1020140001315A KR20140001315A KR20150081635A KR 20150081635 A KR20150081635 A KR 20150081635A KR 1020140001315 A KR1020140001315 A KR 1020140001315A KR 20140001315 A KR20140001315 A KR 20140001315A KR 20150081635 A KR20150081635 A KR 20150081635A
Authority
KR
South Korea
Prior art keywords
physical
partition
partitions
memory
logical
Prior art date
Application number
KR1020140001315A
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 KR1020140001315A priority Critical patent/KR20150081635A/ko
Priority to US14/505,077 priority patent/US20150193159A1/en
Publication of KR20150081635A publication Critical patent/KR20150081635A/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/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
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/7202Allocation control and policies
    • 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/7206Reconfiguration of flash memory system

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)
  • Memory System (AREA)

Abstract

본 발명은 파티션 생성 신호에 기초하여 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성하는 메모리 컨트롤러, 및 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분되는 메모리 영역을 포함하는 불휘발성 반도체 메모리를 포함하는 저장 장치를 제공한다. 단, 본 발명의 저장 장치에서, 파티션 해제 신호를 제공받기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각이 생성된 맵핑 정보에 의해 고유하게 결정된다. 본 발명의 저장 장치가 이용되는 경우, 복수의 물리 파티션 각각에 저장된 데이터의 무결성이 향상될 수 있다. 그리고, 복수의 물리 파티션 각각에 저장된 데이터의 보안 수준이 향상될 수 있다. 뿐만 아니라, 복수의 물리 파티션 각각의 메모리 사용 특성을 다양하게 설정함으로써, 저장 장치가 필요에 맞게 유동적으로 사용될 수 있다.

Description

불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법{STORAGE DEVICE INCLUDING NONVOLATILE SEMICONDUCTOR MEMORY AND MANAGING METHOD THEREOF}
본 발명은 저장 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 반도체 메모리의 복수의 물리 파티션(Partition)과 복수의 논리 파티션을 고유하게 맵핑(Mapping)하는 저장 장치 및 그것을 관리하는 방법에 관한 것이다.
반도체 메모리 장치는 휘발성 메모리 장치(Volatile Memory Device)와 불휘발성 메모리 장치(Nonvolatile Memory Device)로 분류된다. 휘발성 메모리 장치는 빠른 작동 속도를 갖지만, 전원 공급이 중단되면 휘발성 메모리 장치에 저장되었던 데이터가 소멸한다. 반면, 전원 공급이 중단되더라도 불휘발성 메모리 장치에 저장된 데이터는 보존된다. 따라서, 불휘발성 메모리 장치는 전원 공급 여부와 관계없이 데이터를 보존하기 위해 사용된다.
널리 사용되는 불휘발성 반도체 메모리 장치의 예로서, 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, 디지털 카메라, 게임 콘솔(Console), 휴대용 컴퓨터(Handheld PC), 프린터 등(이하, '호스트'라 함)과 같은 기기들과 연결되어 데이터를 저장하기 위해 사용된다. SSD(Solid State Drive), SD(Secure Digital) 카드, 및 eMMC(embedded MultiMedia Card)는 플래시 메모리를 포함하는 저장 장치의 예이다.
플래시 메모리 장치의 메모리 영역은 동적으로 접근된다. 즉, 메모리 영역의 페이지들 또는 블록들의 물리적 배치 순서와 관계없이, 페이지 또는 블록 각각은 설계된 알고리즘(Algorithm)에 의해 산출된 순서에 따라 접근된다. 필요에 따라, 메모리 영역에 대한 복수의 논리 파티션이 구성될 수 있으나, 논리적으로 구분된 파티션이 물리적으로도 구분되지 않을 수 있다. 즉, 복수의 논리 파티션이 구성되더라도, 물리적인 메모리 영역은 복수의 논리 파티션에 의해 공유될 수 있다.
그런데, 물리적인 메모리 영역이 복수의 논리 파티션에 의해 공유되면, 데이터 무결성(Integrity)이 손상될 가능성이 있다. 나아가, 복수의 논리 파티션 각각의 접근 권한이 서로 다른 호스트에게 부여된 경우, 물리적인 메모리 영역이 공유되면 데이터 보안(Security)이 취약해질 수 있다.
복수의 논리 파티션 각각과 맵핑되는 복수의 물리 파티션이 불휘발성 반도체 메모리의 서로 다른 물리 영역에 할당되도록 제어되는 저장 장치가 제공된다. 특히, 본 발명의 저장 장치에서, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 고유하게 결정된다.
본 발명의 일 실시 예에 따른 저장 장치는 파티션 생성 신호에 기초하여, 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성하는 메모리 컨트롤러; 및 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분되는 메모리 영역을 포함하는 불휘발성 반도체 메모리를 포함할 수 있다. 단, 본 발명의 일 실시 예에 따른 저장 장치에서, 파티션 해제 신호를 제공받기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각이 생성된 맵핑 정보에 의해 고유하게 결정된다.
본 발명의 일 실시 예에 따른 저장 장치에서, 복수의 물리 파티션에 포함되는 제 1 물리 파티션과 복수의 논리 파티션에 포함되는 제 1 논리 파티션이 맵핑 정보에 기초하여 고유하게 맵핑되고, 복수의 물리 파티션에 포함되는 제 2 물리 파티션과 복수의 논리 파티션에 포함되는 제 2 논리 파티션이 맵핑 정보에 기초하여 고유하게 맵핑되는 경우, 파티션 해제 신호를 제공받기 전까지, 제 1 논리 파티션은 제 1 물리 파티션으로만 맵핑되고, 제 2 논리 파티션은 제 2 물리 파티션으로만 맵핑된다.
본 발명의 일 실시 예에 따른 저장 장치에서, 파티션 생성 신호 및 파티션 해제 신호는 각각 호스트로부터 제공된 파티션 생성 커맨드 및 파티션 해제 커맨드에 기초하여 생성될 수 있다.
본 발명의 일 실시 예에 따른 저장 장치에서, 파티션 생성 신호는 복수의 물리 파티션 각각이 할당되는 물리 영역의 물리 어드레스 범위 및 복수의 물리 파티션 각각의 메모리 크기 중 적어도 하나에 대응하는 정보를 포함할 수 있다.
본 발명의 일 실시 예에 따른 저장 장치에서, 파티션 생성 신호는 복수의 물리 파티션 각각의 메모리 사용 특성에 대응하는 정보를 포함할 수 있다. 이 실시 예에서, 메모리 사용 특성은 오버 프로비져닝 영역의 비율 및 웨어 레벨 중 적어도 하나를 포함할 수 있다. 나아가, 이 실시 예에서, 복수의 물리 파티션 중 적어도 하나의 물리 파티션은 다른 물리 파티션과 서로 다른 값의 메모리 사용 특성을 갖도록 설정될 수 있다.
본 발명의 일 실시 예에 따른 저장 장치에서, 호스트로부터 복수의 논리 파티션 중 접근 대상 논리 파티션에 대한 접근 요청이 제공된 경우, 메모리 컨트롤러는 복수의 물리 파티션 중 접근 대상 논리 파티션과 고유하게 맵핑되는 접근 대상 물리 파티션에서 접근 요청이 처리되도록 불휘발성 반도체 메모리를 제어할 수 있다.
본 발명의 일 실시 예에 따른 저장 장치에서, 불휘발성 반도체 메모리는 복수의 논리 파티션 중 둘 이상과 공통으로 맵핑되는 메모리 영역 및 생성된 맵핑 정보와 관계없이 접근되는 메모리 영역 중 적어도 하나를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 저장 장치에서, 메모리 컨트롤러는 파티션 해제 신호에 따라 불휘발성 반도체 메모리의 모든 메모리 영역이 동적으로 접근되도록 설정할 수 있다.
본 발명의 다른 실시 예에 따라 불휘발성 반도체 메모리를 포함하는 저장 장치를 관리하는 방법은 파티션 생성 신호를 수신하는 단계; 수신된 파티션 생성 신호에 기초하여, 불휘발성 반도체 메모리의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성하는 단계; 및 생성된 맵핑 정보에 기초하여 불휘발성 반도체 메모리의 메모리 영역이 복수의 물리 파티션으로 구분되도록 불휘발성 반도체 메모리를 제어하는 단계를 포함할 수 있다. 단, 본 발명의 다른 실시 예에 따른 저장 장치 관리 방법에서, 파티션 해제 신호를 수신하기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 생성된 맵핑 정보에 의해 고유하게 결정된다.
본 발명의 다른 실시 예에 따른 저장 장치 관리 방법에서, 파티션 생성 신호는 복수의 물리 파티션 각각이 할당되는 물리 영역의 물리 어드레스 범위 및 복수의 물리 파티션 각각의 메모리 크기 중 적어도 하나에 대응하는 정보를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 저장 장치 관리 방법에서, 파티션 생성 신호는 복수의 물리 파티션 각각의 메모리 사용 특성에 대응하는 정보를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 저장 장치 관리 방법은 호스트로부터 복수의 논리 파티션 중 접근 대상 논리 파티션에 대한 접근 요청을 제공받는 단계; 및 복수의 물리 파티션 중 접근 대상 논리 파티션과 고유하게 맵핑되는 접근 대상 물리 파티션에서 접근 요청이 처리되도록 불휘발성 반도체 메모리를 제어하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시 예에 따른 저장 장치 관리 방법은 파티션 해제 신호를 수신하는 단계; 및 수신된 파티션 해제 신호에 따라 불휘발성 반도체 메모리의 모든 메모리 영역이 동적으로 접근되도록 설정하는 단계를 더 포함할 수 있다.
본 발명의 저장 장치가 이용되는 경우, 복수의 물리 파티션 각각에 저장된 데이터의 무결성이 향상될 수 있다. 그리고, 복수의 물리 파티션 각각에 저장된 데이터의 보안 수준이 향상될 수 있다. 뿐만 아니라, 복수의 물리 파티션 각각의 메모리 사용 특성을 다양하게 설정함으로써, 저장 장치가 필요에 맞게 유동적으로 사용될 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템이 가질 수 있는 구성을 나타낸 블록도이다.
도 2는 저장 장치의 일반적인 작동을 설명하기 위한 개념도이다.
도 3 및 도 4는 본 발명의 일 실시 예에 따른 저장 장치의 작동을 설명하기 위한 개념도이다.
도 5는 본 발명의 실시 예에 따른 맵핑 정보의 내용을 설명하기 위한 개념도이다.
도 6 및 도 7은 본 발명의 실시 예에 따른 파티션 생성 신호의 내용을 설명하기 위한 개념도이다.
도 8 및 도 9는 본 발명의 일 실시 예에 따른 저장 장치의 작동을 설명하기 위한 개념도이다.
도 10 내지 도 12는 본 발명의 다른 실시 예에 따른 저장 장치 관리 방법을 설명하는 흐름도이다.
도 13은 본 발명의 실시 예에 따른 단일 호스트 스토리지 시스템이 가질 수 있는 구성을 나타낸 블록도이다.
도 14는 본 발명의 실시 예에 따른 메모리 카드 시스템이 가질 수 있는 구성을 나타낸 블록도이다.
도 15는 본 발명의 실시 예에 따른 스토리지 또는 메모리 카드를 포함하는 컴퓨팅 시스템이 가질 수 있는 구성을 나타낸 블록도이다.
도 16은 본 발명의 실시 예에 따른 다중 호스트 스토리지 시스템이 가질 수 있는 구성을 나타낸 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템이 가질 수 있는 구성을 나타낸 블록도이다. 메모리 시스템(1000)은 호스트(10) 및 저장 장치(100)를 포함할 수 있다. 나아가, 저장 장치(100)는 메모리 컨트롤러(110) 및 불휘발성 반도체 메모리(130)를 포함할 수 있다.
메모리 시스템(1000)은 파티션(Partition) 생성 신호를 제공받을 수 있다. 실시 예로서, 파티션 생성 신호는 호스트(10)로부터 제공된 파티션 생성 커맨드에 기초하여 생성될 수 있다. 호스트(10)의 사용자가 파티션 생성 커맨드를 메모리 시스템(1000)으로 입력하면, 메모리 컨트롤러(110)는 파티션 생성 신호를 제공받을 수 있다. 이 실시 예에서, 호스트(10)의 사용자는 유저 인터페이스를 통해 파티션 생성 커맨드를 입력할 수 있다. 입력된 파티션 생성 커맨드는 호스트(10)에 설치된 드라이버(Driver)를 통해 저장 장치(100)로 제공될 수 있다. 다만, 이는 실시 예일 뿐이며, 파티션 생성 신호는 다른 과정을 통해 생성될 수 있다. 예컨대, 소정의 조건이 충족되는 경우, 저장 장치(100) 내부에서 파티션 생성 신호가 생성될 수 있다. 파티션 생성 신호의 내용에 관한 자세한 설명은 도 6 및 도 7에 관한 설명과 함께 언급된다.
메모리 컨트롤러(110)는 파티션 생성 신호에 기초하여 맵핑(Mapping) 정보를 생성할 수 있다. 맵핑 정보는 불휘발성 반도체 메모리(130)의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 관계에 관한 정보이다. 실시 예로서, 생성된 맵핑 정보는 메모리 컨트롤러(110)에 포함되는 저장 영역에 저장될 수 있다. 그러나, 본 발명의 개념은 이 실시 예로 제한되지 않는다. 예컨대, 생성된 맵핑 정보는 불휘발성 반도체 메모리(130)에 포함되는 메모리 영역 또는 별도의 저장 영역에 저장될 수도 있다. 맵핑 정보에 관한 자세한 설명은 도 3 내지 도 5에 관한 설명과 함께 언급된다.
불휘발성 반도체 메모리(130)는 데이터를 저장하기 위한 메모리 영역을 포함할 수 있다. 맵핑 정보가 생성되면, 불휘발성 반도체 메모리(130)에 포함되는 메모리 영역은 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분될 수 있다. 특히, 본 발명의 실시 예에 따르면, 파티션 해제 신호가 제공되기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 고유하게 결정된다. 예로서, 제 1 논리 파티션이 제 1 물리 파티션으로 맵핑되는 경우, 제 2 논리 파티션은 제 1 물리 파티션으로 맵핑될 수 없다. 나아가, 제 1 논리 파티션이 제 1 물리 파티션으로 맵핑되는 경우, 제 1 논리 파티션은 제 2 물리 파티션으로 맵핑될 수 없다. 파티션 해제 신호가 제공되기 전까지, 서로 맵핑된 제 1 논리 파티션과 제 1 물리 파티션은 고유한 맵핑 관계를 갖는다. 복수의 논리 파티션과 복수의 물리 파티션 사이의 맵핑에 관한 자세한 설명은 도 3 및 도 4에 관한 설명과 함께 언급된다.
메모리 시스템(1000)은 파티션 해제 신호를 제공받을 수 있다. 실시 예로서, 파티션 해제 신호는 호스트(10)로부터 제공된 파티션 해제 커맨드에 기초하여 생성될 수 있다. 즉, 호스트(10)의 사용자가 파티션 해제 커맨드를 메모리 시스템(1000)으로 입력하면, 메모리 컨트롤러(110)는 파티션 해제 신호를 제공받을 수 있다. 이 실시 예에서, 호스트(10)의 사용자는 유저 인터페이스를 통해 파티션 해제 커맨드를 입력할 수 있다. 입력된 파티션 해제 커맨드는 호스트(10)에 설치된 드라이버(Driver)를 통해 저장 장치(100)로 제공될 수 있다. 다만, 이는 실시 예일 뿐이며, 파티션 해제 신호는 다른 과정을 통해 생성될 수 있다. 예컨대, 소정의 조건이 충족되는 경우, 저장 장치(100) 내부에서 파티션 해제 신호가 생성될 수 있다.
파티션 해제 신호가 제공된 후, 불휘발성 반도체 메모리(130)의 메모리 영역은 복수의 물리 파티션으로 구분되지 않을 수 있다. 즉, 메모리 컨트롤러(110)는 파티션 해제 신호에 따라 불휘발성 반도체 메모리(130)의 모든 메모리 영역이 동적으로 접근되도록 설정할 수 있다. 동적으로 접근되는 메모리 영역을 포함하는 불휘발성 반도체 메모리(130)에 관한 설명은 도 2에 관한 설명과 함께 언급된다.
도 2는 저장 장치의 일반적인 작동을 설명하기 위한 개념도이다. 불휘발성 반도체 메모리(130)에 포함되는 메모리 영역은 페이지 단위(또는, 블록 단위)로 구분되는 Q개의 물리 영역(PR1 내지 PRQ)으로 형성될 수 있다. 일반적으로, Q개의 물리 영역(PR1 내지 PRQ)은 동적으로 접근될 수 있다. 즉, Q개의 물리 영역(PR1 내지 PRQ)의 물리적 배치 순서와 관계없이, Q개의 물리 영역(PR1 내지 PRQ) 각각은 설계된 알고리즘(Algorithm)에 의해 산출된 순서에 따라 접근될 수 있다.
예로서, P개의 사용자 데이터(UD1 내지 UDP)가 제공되는 경우, 도 2의 도시 내용과 같이, 제 2 사용자 데이터(UD2)는 제 3 물리 영역(PR3)에 저장되고 제 3 사용자 데이터(UD3)는 제 1 물리 영역(PR1)에 저장될 수 있다. 그러나, 동일한 P개의 사용자 데이터(UD1 내지 UDP)가 다시 제공되더라도, 도 2의 도시 내용과 달리, 제 2 사용자 데이터(UD2)는 제 1 물리 영역(PR1)에 저장되고 제 3 물리 영역(PR3)은 제 1 사용자 데이터(UD1)를 저장할 수 있다. 이는, 일반적으로, Q개의 물리 영역(PR1 내지 PRQ)이 동적으로 접근될 수 있기 때문이다.
일반적인 저장 장치(100)는 이상의 설명과 같이 작동할 수 있다. 나아가, 본 발명의 실시 예에 따라 파티션 해제 신호를 제공받은 저장 장치(100) 역시 이상의 설명과 같이 작동할 수 있다. 이하에서, 파티션 생성 신호에 기초하여 생성된 맵핑 정보에 따라 작동하는 저장 장치(100)의 작동이 설명된다.
도 3은 본 발명의 일 실시 예에 따른 저장 장치의 작동을 설명하기 위한 개념도이다. 본 발명의 실시 예에 따라 파티션 생성 신호가 제공되면, 맵핑 정보(MI)가 생성될 수 있다. 도 3의 실시 예에서, 맵핑 정보(MI)가 메모리 컨트롤러(110)에 포함되는 저장 영역에 저장된 것으로 도시되었다. 그러나, 도 1에 관한 설명에서 언급된 바와 같이, 본 발명의 개념은 이 실시 예로 제한되지 않는다.
파티션 생성 신호가 제공되거나 맵핑 정보(MI)가 생성되면, N개의 논리 파티션(LP1 내지 LPN)에 대한 정보가 생성될 수 있다. 불휘발성 반도체 메모리(130)에 포함되는 메모리 영역은 맵핑 정보(MI)에 기초하여 N개의 물리 파티션(PP1 내지 PPN)으로 구분될 수 있다. N개의 물리 파티션(PP1 내지 PPN)은 불휘발성 반도체 메모리(130)의 서로 다른 물리 영역에 할당된다. N개의 논리 파티션(LP1 내지 LPN) 각각은 N개의 물리 파티션(PP1 내지 PPN) 각각으로 맵핑될 수 있다. 맵핑 정보(MI)는 N개의 물리 파티션(PP1 내지 PPN)과 N개의 논리 파티션(LP1 내지 LPN) 사이의 맵핑 관계에 관한 정보를 포함할 수 있다.
특히, 본 발명의 저장 장치(100)에서, N개의 물리 파티션(PP1 내지 PPN) 각각으로 맵핑되는 N개의 논리 파티션(LP1 내지 LPN) 각각은 고유하게 결정된다. 예로서, 제 1 논리 파티션(LP1)이 제 2 물리 파티션(PP2)으로 맵핑되는 경우, 제 2 논리 파티션(LP2)은 제 2 물리 파티션(PP2)으로 맵핑될 수 없다. 나아가, 제 1 논리 파티션(LP1)이 제 2 물리 파티션(PP2)으로 맵핑되는 경우, 제 1 논리 파티션(LP1)은 제 2 물리 파티션(PP2)이 아닌 다른 물리 파티션으로 맵핑될 수 없다. 파티션 해제 신호가 제공되기 전까지, 서로 맵핑된 제 1 논리 파티션(LP1)과 제 2 물리 파티션(PP2)은 고유한 맵핑 관계를 갖는다. 즉, 파티션 해제 신호가 제공되기 전까지, 제 1 논리 파티션(LP1)은 제 2 물리 파티션(PP2)이 아닌 다른 물리 파티션으로 맵핑되지 않는다.
다만, 도 3의 도시 내용은 본 발명의 개념의 이해를 돕기 위한 예시이고, 본 발명의 개념은 도 3의 도시 내용으로 제한되지 않는다. 예컨대, 제 1 논리 파티션(LP1)은 맵핑 정보(MI)에 기초하여 제 1 물리 파티션(PP1)으로 맵핑될 수 있다. 제 1 논리 파티션(LP1)이 제 1 물리 파티션(PP1)으로 맵핑되는 경우, 제 1 논리 파티션(LP1)은 파티션 해제 신호가 제공되기 전까지 제 1 물리 파티션(PP1)이 아닌 다른 물리 파티션으로 맵핑되지 않는다. 즉, N개의 물리 파티션(PP1 내지 PPN) 각각과 N개의 논리 파티션(LP1 내지 LPN) 각각은 도 3의 도시 내용과 다르게 맵핑될 수 있다. 단지, 파티션 해제 신호가 제공되기 전까지, 서로 맵핑된 물리 파티션과 논리 파티션이 고유한 맵핑 관계를 갖는 것으로 충분하다. 나아가, 파티션 해제 신호가 제공되고 다시 파티션 생성 신호가 제공된 후에, N개의 물리 파티션(PP1 내지 PPN) 각각과 N개의 논리 파티션(LP1 내지 LPN) 각각은 도 3의 도시 내용과 다르게 맵핑될 수 있다.
도 4는 본 발명의 일 실시 예에 따른 저장 장치의 작동을 설명하기 위한 개념도이다. 도 4에서, 예로서, 서로 맵핑되는 제 2 물리 파티션(PP2)과 제 1 논리 파티션(LP1)의 내부 구성이 더 설명된다.
제 2 물리 파티션(PP2)은 M개의 물리 블록(PB21 내지 PB2M)을 포함할 수 있다. 나아가, 제 2 물리 파티션(PP2)은 K개의 오버프로비져닝(Overprovisioning) 블록(OP21 내지 OP2K)을 더 포함할 수 있다. 제 1 논리 파티션(LP1)은 M개의 논리 블록(LB11 내지 LB1M)을 포함할 수 있다.
제 2 물리 파티션(PP2)과 제 1 논리 파티션(LP1)이 고유한 맵핑 관계를 가지므로, M개의 논리 블록(LB11 내지 LB1M) 각각은 M개의 물리 블록(PB21 내지 PB2M) 각각으로 맵핑된다. 실시 예로서, M개의 물리 블록(PB21 내지 PB2M)과 M개의 논리 블록(LB11 내지 LB1M)은 고유한 맵핑 관계를 가질 수 있다. 그러나, M개의 물리 블록(PB21 내지 PB2M)과 M개의 논리 블록(LB11 내지 LB1M)은 동적인 맵핑 관계를 가질 수도 있다. 즉, 제 1 논리 블록(LB11)이 제 1 물리 블록(PB21)으로 맵핑되었다가, 제 2 물리 블록(PB22)으로 맵핑될 수도 있다.
결론적으로, N개의 물리 파티션(PP1 내지 PPN)과 N개의 논리 파티션(LP1 내지 LPN)은 고유한 맵핑 관계를 갖는다. 하지만, N개의 물리 파티션(PP1 내지 PPN) 각각에 포함되는 M개의 물리 블록(예컨대, PB21 내지 PB2M)과 N개의 논리 파티션(LP1 내지 LPN) 각각에 포함되는 M개의 논리 블록(예컨대, LB11 내지 LB1M) 사이의 맵핑 관계는 고유하거나 동적일 수 있다.
K개의 오버프로비져닝 블록(OP21 내지 OP2K)은 버퍼(Buffer)로 사용될 수 있다. K개의 오버프로비져닝 블록(OP21 내지 OP2K)은 M개의 물리 블록(PB21 내지 PB2M)에 저장될 데이터를 임시로 저장할 수 있다. 오버프로비져닝 기능을 수행하는 블록의 물리적 위치는 고정되지 않을 수 있다. 예컨대, 제 1 물리 블록(PB21)이 오버프로비져닝 블록으로 대체될 수 있다. 나아가, 제 1 오버프로비져닝 블록(OP21)이 물리 블록으로 대체될 수 있다. N개의 물리 파티션(PP1 내지 PPN) 각각에서, 오버프로비져닝 블록의 비율은 필요에 따라 조절될 수 있다. 또한, 오버프로비져닝 블록의 비율은 N개의 물리 파티션(PP1 내지 PPN) 각각마다 서로 다를 수 있다.
도 5는 본 발명의 실시 예에 따른 맵핑 정보의 내용을 설명하기 위한 개념도이다. 저장 장치(100, 도 1 참조)로 파티션 생성 신호가 제공되면 맵핑 정보가 생성될 수 있다.
맵핑 정보는 복수의 논리 파티션 각각의 어드레스(Address) 범위에 대응하는 정보를 포함할 수 있다. 맵핑 정보는 복수의 물리 파티션 각각의 어드레스 범위에 대응하는 정보를 포함할 수 있다. 맵핑 정보는 각각의 논리 파티션이 어떤 물리 파티션으로 맵핑되는지에 관한 정보를 포함할 수 있다. 즉, 맵핑 정보는 불휘발성 반도체 메모리(130, 도 1 참조)의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 관계에 관한 정보이다.
불휘발성 반도체 메모리(130)에 포함되는 메모리 영역은 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분될 수 있다. 파티션 해제 신호가 제공되기 전까지, 복수의 논리 파티션 각각은 생성된 맵핑 정보에 기초하여 복수의 물리 파티션 각각으로 고유하게 맵핑될 수 있다. 도 5에 나타난 맵핑 관계는 예시이다. 복수의 물리 파티션 각각과 복수의 논리 파티션 각각은 도 5의 도시 내용과 다른 맵핑 관계를 가질 수 있다. 단지, 파티션 해제 신호가 제공되기 전까지, 서로 맵핑된 물리 파티션과 논리 파티션이 고유한 맵핑 관계를 갖는 것으로 충분하다. 도 5에 나타난 맵핑 정보의 내용은 본 발명의 개념의 이해를 돕기 위한 실시 예이다. 맵핑 정보는 도 5의 도시 내용 외의 다른 내용을 더 포함할 수 있다.
도 6은 본 발명의 실시 예에 따른 파티션 생성 신호의 내용을 설명하기 위한 개념도이다.
파티션 생성 신호는 복수의 물리 파티션 각각이 할당되는 물리 영역의 물리 어드레스 범위에 대응하는 정보를 포함할 수 있다. 파티션 생성 신호는 복수의 물리 파티션 각각의 메모리 크기에 대응하는 정보를 포함할 수 있다. 즉, 파티션 생성 신호는 맵핑 정보의 생성에 필요한 정보를 포함할 수 있다. 다만, 도 6에 나타난 파티션 생성 신호의 내용은 본 발명의 개념의 이해를 돕기 위한 실시 예이다. 파티션 생성 신호는 도 6의 도시 내용 외의 다른 내용을 더 포함할 수 있다. 또는, 파티션 생성 신호는 물리 어드레스 범위에 대응하는 정보 및 메모리 크기에 대응하는 정보 중 어느 하나만 포함할 수도 있다.
도 1에 관한 설명에서 언급된 바와 같이, 실시 예로서, 파티션 생성 신호는 호스트(10, 도 1 참조)로부터 제공된 파티션 생성 커맨드에 기초하여 생성될 수 있다. 실시 예로서, 파티션 생성 커맨드는 복수의 물리 파티션 각각이 할당되는 물리 영역의 물리 어드레스 범위를 설정하기 위한 파라미터(Parameter)를 가질 수 있다. 또는, 파티션 생성 커맨드는 복수의 물리 파티션 각각의 메모리 크기를 설정하기 위한 파라미터를 가질 수 있다.
이 실시 예에서, 호스트(10)의 사용자는 유저 인터페이스를 통해 메모리 시스템(1000)으로 파티션 생성 커맨드를 입력하면서 파라미터의 값을 직접 설정할 수 있다. 예컨대, 호스트(10)의 사용자는 25메가바이트의 메모리 용량을 갖는 불휘발성 반도체 메모리(130)를 각각 12메가바이트, 8메가바이트, 및 5메가바이트의 메모리 용량을 갖는 3개의 물리 파티션으로 구분하기 위한 파라미터를 갖는 파티션 생성 커맨드를 입력할 수 있다. 이 실시 예는 본 발명의 활용을 위한 다양한 실시 예들 중 하나이다. 본 발명은 다른 실시 형태에 따라 구현될 수 있다. 본 발명의 개념은 이 실시 예로 제한되지 않음이 명백하다.
도 7은 본 발명의 실시 예에 따른 파티션 생성 신호의 내용을 설명하기 위한 개념도이다.
파티션 생성 신호는 복수의 물리 파티션 각각의 메모리 사용 특성에 대응하는 정보를 포함할 수 있다. 메모리 사용 특성은 복수의 물리 파티션 각각의 메모리 영역의 사용 환경을 설정하기 위한 특성이다. 예컨대, 메모리 사용 특성은 각각의 물리 파티션에 포함되는 물리 블록들 중 오버프로비져닝 기능을 수행하는 블록의 비율을 포함할 수 있다. 또는, 메모리 사용 특성은 각각의 물리 파티션에 포함되는 물리 블록들의 웨어 레벨(Wear Level)을 포함할 수 있다. 다만, 도 7에 나타난 메모리 사용 특성은 본 발명의 개념의 이해를 돕기 위한 실시 예이다. 메모리 사용 특성은 도 7의 도시 내용 외의 다른 내용을 더 포함할 수 있다. 또는, 메모리 사용 특성은 오버프로비져닝 기능을 수행하는 블록의 비율 및 웨어 레벨 중 어느 하나만 포함할 수도 있다.
도 1에 관한 설명에서 언급된 바와 같이, 실시 예로서, 파티션 생성 신호는 호스트(10, 도 1 참조)로부터 제공된 파티션 생성 커맨드에 기초하여 생성될 수 있다. 실시 예로서, 파티션 생성 커맨드는 메모리 사용 특성을 설정하기 위한 파라미터를 가질 수 있다. 예컨대, 파티션 생성 커맨드는 복수의 물리 파티션 각각에서 오버프로비져닝 기능을 수행하는 불록의 비율을 설정하기 위한 파라미터를 가질 수 있다. 또는, 파티션 생성 커맨드는 복수의 물리 파티션 각각에 대한 웨어 레벨을 설정하기 위한 파라미터를 가질 수 있다.
이 실시 예에서, 호스트(10)의 사용자는 유저 인터페이스를 통해 메모리 시스템(1000)으로 파티션 생성 커맨드를 입력하면서 파라미터의 값을 직접 설정할 수 있다. 나아가, 이 실시 예에서, 복수의 물리 파티션 중 적어도 하나의 물리 파티션은 다른 물리 파티션과 서로 다른 값의 메모리 사용 특성을 갖도록 설정될 수 있다. 즉, 복수의 물리 파티션 모두가 동일한 메모리 사용 특성을 가질 필요는 없다.
예컨대, 제 1 물리 파티션과 제 2 물리 파티션 각각에서 오버프로비져닝 기능을 수행하는 불록의 비율은 서로 다를 수 있다. 반면, 제 1 물리 파티션과 제 N 물리 파티션 각각에서 오버프로비져닝 기능을 수행하는 블록의 비율은 서로 같을 수 있다. 따라서, 호스트(10)의 사용자는 복수의 물리 파티션 각각에 적합한 메모리 사용 특성을 설정하여, 저장 장치(100, 도 1 참조)를 용도에 맞게 사용할 수 있다. 이 실시 예는 본 발명의 활용을 위한 다양한 실시 예들 중 하나이다. 본 발명은 다른 실시 형태에 따라 구현될 수 있다. 본 발명의 개념은 이 실시 예로 제한되지 않음이 명백하다.
도 8은 본 발명의 일 실시 예에 따른 저장 장치의 작동을 설명하기 위한 개념도이다. 특히, 도 8은 본 발명의 실시 예에 따라 접근 요청을 처리하는 과정을 나타낸다. 본 발명의 개념의 이해를 돕기 위해, 맵핑 정보(MI)에 기초하여 제 2 논리 파티션(LP2)이 제 1 물리 파티션(PP1)으로 맵핑되는 것으로 가정된다.
호스트(10, 도 1 참조)로부터 저장 장치(100)로 하나 이상의 논리 파티션에 대한 접근 요청이 제공될 수 있다. 예로서, 접근 요청은 데이터 읽기 요청, 데이터 쓰기 요청 등을 포함할 수 있다. 메모리 컨트롤러(110)는 맵핑 정보(MI)에 기초하여 접근 대상 논리 파티션과 고유하게 맵핑되는 접근 대상 물리 파티션을 파악할 수 있다. 메모리 컨트롤러(110)는 접근 대상 물리 파티션에서 접근 요청이 처리되도록 불휘발성 반도체 메모리(130)를 제어할 수 있다.
예로서, 제 2 논리 파티션(LP2)에 대한 데이터 쓰기 요청이 제공된 것으로 가정한다. 즉, 이 예에서, 접근 대상 논리 파티션은 제 2 논리 파티션(LP2)이다. 맵핑 정보(MI)에 기초하여, 제 2 논리 파티션(LP2)과 고유하게 맵핑되는 접근 대상 물리 파티션이 파악된다. 이 예에서, 접근 대상 물리 파티션은 제 1 물리 파티션(PP1)이다. 메모리 컨트롤러(110)는 제 1 물리 파티션(PP1)에서 데이터 쓰기 연산이 처리되도록 불휘발성 반도체 메모리(130)를 제어할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 저장 장치의 작동을 설명하기 위한 개념도이다. 실시 예로서, 불휘발성 반도체 메모리(130)에 포함되는 메모리 영역은 자유롭게 접근 가능한 영역(FAR)을 더 포함할 수 있다.
자유롭게 접근 가능한 영역(FAR)은 복수의 논리 파티션(LP1 내지 LPN) 중 둘 이상과 공통으로 맵핑되는 메모리 영역일 수 있다. 또는, 자유롭게 접근 가능한 영역(FAR)은 생성된 맵핑 정보(MI)와 관계없이 접근되는 메모리 영역일 수 있다. 즉, 자유롭게 접근 가능한 영역(FAR)은 복수의 물리 파티션(PP1 내지 PPN)과 복수의 논리 파티션(LP1 내지 LPN) 사이의 고유한 맵핑 관계의 영향을 받지 않고 접근되는 영역이다.
예로서, 자유롭게 접근 가능한 영역(FAR)은 제 3 논리 파티션(LP3) 및 제 N 논리 파티션(LPN)과 공통으로 맵핑되는 메모리 영역일 수 있다. 그러나, 이는 예시일 뿐이다. 자유롭게 접근 가능한 영역(FAR)으로 맵핑되는 논리 파티션의 수와 위치는 필요에 따라 변경될 수 있다. 예로서, 자유롭게 접근 가능한 영역(FAR)은 복수의 논리 파티션(LP1 내지 LPN) 모두와 공통으로 맵핑되는 메모리 영역일 수 있다. 즉, 자유롭게 접근 가능한 영역(FAR)은 맵핑 정보(MI)와 관계없이 접근되는 메모리 영역일 수 있다. 예로서, 저장 장치(100)에서 전역적(Global)으로 활용되는 자원에 관한 데이터는 자유롭게 접근 가능한 영역(FAR)에 저장될 수 있다.
도 10은 본 발명의 다른 실시 예에 따른 저장 장치 관리 방법을 설명하는 흐름도이다.
S110 단계에서, 파티션 생성 신호가 제공될 수 있다. 실시 예로서, 파티션 생성 신호는 호스트로부터 제공된 파티션 생성 커맨드에 기초하여 생성될 수 있다. 호스트의 사용자가 파티션 생성 커맨드를 입력하면 파티션 생성 신호가 제공될 수 있다. 이 실시 예에서, 호스트의 사용자는 유저 인터페이스를 통해 파티션 생성 커맨드를 입력할 수 있다. 다만, 이는 실시 예일 뿐이며, 파티션 생성 신호는 다른 과정을 통해 생성될 수 있다. 파티션 생성 신호의 내용에 관한 설명은 도 6 및 도 7에 관한 설명에서 언급되었다.
S120 단계에서, 맵핑 정보가 생성될 수 있다. 맵핑 정보는 S110 단계에서 제공된 파티션 생성 신호에 기초하여 생성될 수 있다. 위에서 언급된 바와 같이, 맵핑 정보는 불휘발성 반도체 메모리의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 관계에 관한 정보이다. 맵핑 정보의 내용에 관한 설명은 도 3 내지 도 5에 관한 설명에서 언급되었다.
S130 단계에서, 불휘발성 반도체 메모리를 제어함으로써, 메모리 영역이 복수의 물리 파티션으로 구분될 수 있다. 불휘발성 반도체 메모리는 S120 단계에서 생성된 맵핑 정보에 기초하여 제어될 수 있다. 특히, 본 발명의 실시 예에 따르면, 파티션 해제 신호가 제공되기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 고유하게 결정된다.
도 11은 본 발명의 다른 실시 예에 따른 저장 장치 관리 방법을 설명하는 흐름도이다. 특히, 도 11은 본 발명의 실시 예에 따라 접근 요청을 처리하는 과정을 설명한다. S210 단계, S220 단계, 및 S230 단계의 처리 내용은 각각 도 10의 S110 단계, S120 단계, 및 S130 단계의 처리 내용을 포함할 수 있다. S210 단계, S220 단계, 및 S230 단계의 처리 내용에 관한 자세한 설명은 도 10에 관한 설명과 중복되는 범위에서 생략된다.
S240 단계에서, 호스트로부터 하나 이상의 논리 파티션에 대한 접근 요청이 제공될 수 있다. 접근 요청의 대상이 되는 논리 파티션은 접근 대상 논리 파티션으로 불릴 수 있다. 예로서, 접근 요청은 데이터 읽기 요청, 데이터 쓰기 요청 등을 포함할 수 있다.
S250 단계에서, 접근 대상 물리 파티션에서 접근 요청이 처리되도록 불휘발성 반도체 메모리가 제어될 수 있다. 접근 대상 물리 파티션은 복수의 물리 파티션 중 접근 대상 논리 파티션과 고유하게 맵핑되는 물리 파티션이다. 접근 대상 물리 파티션은 S220 단계에서 생성된 맵핑 정보에 기초하여 파악될 수 있다. 접근 요청이 처리되는 과정은 도 8에 관한 설명에서 언급되었다.
도 12는 본 발명의 다른 실시 예에 따른 저장 장치 관리 방법을 설명하는 흐름도이다. 특히, 도 12는 파티션 구성을 해제하는 과정을 설명한다. S310 단계, S320 단계, 및 S330 단계의 처리 내용은 각각 도 10의 S110 단계, S120 단계, 및 S130 단계의 처리 내용을 포함할 수 있다. S310 단계, S320 단계, 및 S330 단계의 처리 내용에 관한 자세한 설명은 도 10에 관한 설명과 중복되는 범위에서 생략된다.
S340 단계에서, 파티션 해제 신호가 제공될 수 있다. 파티션 해제 신호는 호스트로부터 제공된 파티션 해제 커맨드에 기초하여 생성될 수 있다. 호스트의 사용자가 파티션 해제 커맨드를 입력하면 파티션 해제 신호가 제공될 수 있다. 이 실시 예에서, 호스트의 사용자는 유저 인터페이스를 통해 파티션 해제 커맨드를 입력할 수 있다. 다만, 이는 실시 예일 뿐이며, 파티션 해제 신호는 다른 과정을 통해 생성될 수 있다.
S350 단계에서, 불휘발성 반도체 메모리의 모든 메모리 영역이 동적으로 접근되도록 설정될 수 있다. 특히, S350 단계는 S340 단계에서 제공받은 파티션 해제 신호에 따라 수행될 수 있다. 이로써, 불휘발성 반도체 메모리의 메모리 영역은 복수의 물리 파티션으로 구분되지 않을 수 있다. 모든 메모리 영역이 동적으로 접근되는 불휘발성 반도체 메모리에 관한 설명은 도 2에 관한 설명에서 언급되었다.
도 13은 본 발명의 실시 예에 따른 단일 호스트 스토리지 시스템이 가질 수 있는 구성을 나타낸 블록도이다. 단일 호스트 스토리지 시스템(2000)은 호스트(2100) 및 스토리지(2300)를 포함할 수 있다. 스토리지(2300)는 스토리지 컨트롤러(2310), 불휘발성 반도체 메모리(2330), 및 버퍼 메모리(2350)를 포함할 수 있다. 실시 예로서, 스토리지(2300)는 SSD(Solid State Drive)일 수 있다. 하지만, 본 발명의 개념은 이 실시 예로 제한되지 않는다.
스토리지 컨트롤러(2310)는 호스트(2100)와 스토리지(2300) 사이의 물리 연결 경로를 제공할 수 있다. 스토리지 컨트롤러(2310)는 호스트(2100)의 버스 포맷(Bus Format)에 대응하는 인터페이스 프로토콜(Interface Protocol)을 처리할 수 있다. 이로써, 스토리지 컨트롤러(2310)는 호스트(2100)와 스토리지(2300)의 인터페이싱을 가능하게 할 수 있다. 호스트(2100)의 버스 포맷은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI(Peripheral Component Interconnect) Express, ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), IDE(Integrated Drive Electronics) 등을 포함할 수 있다.
스토리지 컨트롤러(2310)는 호스트(2100)로부터 제공되는 커맨드를 디코딩할 수 있다. 특히, 본 발명의 실시 예에서, 스토리지 컨트롤러(2310)는 호스트(2100)로부터 제공되는 파티션 생성 커맨드 및 파티션 해제 커맨드를 디코딩할 수 있다. 스토리지 컨트롤러(2310)는 디코딩 결과에 따라 불휘발성 반도체 메모리(2330)를 제어할 수 있다.
불휘발성 반도체 메모리(2330)는 하나 이상의 메모리 영역을 포함할 수 있다. 불휘발성 반도체 메모리(2330)가 복수의 메모리 영역을 포함하는 경우, 각각의 메모리 영역은 채널 단위로 스토리지 컨트롤러(2310)와 연결될 수 있다. 실시 예로서, 스토리지(2300)가 SSD인 경우, 불휘발성 반도체 메모리(2330)는 낸드 플래시 메모리(NAND-type Flash Memory)일 수 있다. 그러나, 본 발명의 개념은 이 실시 예로 제한되지 않는다. 예컨대, 불휘발성 반도체 메모리(2330)는 PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM), 노어 플래시 메모리(NOR-type Flash Memory) 등일 수 있다. 뿐만 아니라, 불휘발성 반도체 메모리(2330)는 이종의 메모리 장치를 동시에 포함할 수 있다.
스토리지 컨트롤러(2310) 및 불휘발성 반도체 메모리(2330)는 본 발명의 실시 예에 따라 작동하도록 구현될 수 있다. 즉, 호스트(2100)로부터 파티션 생성 커맨드가 제공되면, 스토리지 컨트롤러(2310)는 불휘발성 반도체 메모리(2330)의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성할 수 있다. 그리고, 불휘발성 반도체 메모리(2330)의 메모리 영역은 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분될 수 있다. 특히, 호스트(2100)로부터 파티션 해제 커맨드가 제공되기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 생성된 맵핑 정보에 의해 고유하게 결정될 수 있다.
버퍼 메모리(2350)는 호스트(2100)에서 제공된 쓰기 데이터 또는 불휘발성 반도체 메모리(2330)에서 읽힌 데이터를 임시로 저장할 수 있다. 호스트(2100)가 데이터 읽기 요청을 제공했을 때 불휘발성 반도체 메모리(2330)의 데이터가 캐시(Cache)되어 있는 경우, 버퍼 메모리(2350)는 캐시된 데이터를 호스트(2100)로 직접 제공하는 캐시 기능을 지원할 수 있다.
일반적으로, 호스트(2100)의 버스 포맷에 의한 데이터 전송 속도는 스토리지(2300)의 메모리 채널의 데이터 전송 속도보다 빠르다. 버퍼 메모리(2350)는 호스트(2100)와 스토리지(2300) 각각의 데이터 전송 속도의 차이로 인해 발생하는 성능 저하를 보완하기 위해 사용될 수 있다. 실시 예로서, 버퍼 메모리(2350)는 충분한 버퍼 기능을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 구현될 수 있다. 그러나, 본 발명의 개념이 이 실시 예에 의해 제한되지 않음이 명백하다.
단일 호스트 스토리지 시스템에서 본 발명의 실시 예에 따라 구현된 저장 장치가 이용되는 경우, 불휘발성 반도체 메모리의 복수의 물리 파티션 각각에 저장된 데이터의 무결성(Integrity)이 향상될 수 있다. 하나의 물리 파티션이 복수의 논리 파티션에 의해 공유되지 않아서, 가비지(Garbage) 데이터가 읽히거나 저장될 가능성이 작기 때문이다. 뿐만 아니라, 복수의 물리 파티션 각각의 메모리 사용 특성을 다양하게 설정함으로써, 스토리지가 필요에 맞게 유동적으로 사용될 수 있다.
도 14는 본 발명의 실시 예에 따른 메모리 카드 시스템이 가질 수 있는 구성을 나타낸 블록도이다. 도 14의 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3300)를 포함할 수 있다. 호스트(3100)는 호스트 컨트롤러(3110) 및 호스트 접속 유닛(3130)을 포함할 수 있다. 메모리 카드(3300)는 카드 접속 유닛(3310), 카드 컨트롤러(3330), 및 불휘발성 반도체 메모리(3350)를 포함할 수 있다. 실시 예로서, 메모리 카드(3300)는 eMMC(Embedded Multimedia Card)일 수 있다. 하지만, 본 발명의 개념은 이 실시 예로 제한되지 않는다.
호스트 접속 유닛(3130) 및 카드 접속 유닛(3310)은 하나 이상의 핀으로 형성될 수 있다. 하나 이상의 핀은 커맨드 신호 핀, 데이터 신호 핀, 클록 신호 핀, 전원 공급 핀 등을 포함할 수 있다. 핀의 수는 메모리 카드(3300)의 종류에 따라 달라질 수 있다. 카드 접속 유닛(3310)은 USB, SCSI, PCIe, ATA, PATA, SATA, SAS, IDE, MMC, ESDI(Enhanced Small Disk Interface) 등 다양한 인터페이스 프로토콜들 중 하나에 따라 호스트(3100)와 통신하도록 구성될 수 있다.
호스트(3100)는 메모리 카드(3300)에 데이터를 저장하거나, 메모리 카드(3300)에 저장된 데이터를 읽을 수 있다. 호스트 컨트롤러(3110)는 커맨드 신호(CMD), 호스트(3100) 내 클록 발생기(미도시)에서 발생된 클록 신호(CLK), 및 데이터 신호(DAT)를 호스트 접속 유닛(3130)을 통해 메모리 카드(3300)로 제공할 수 있다.
카드 컨트롤러(3330)는 카드 접속 유닛(3310)을 통해 제공된 커맨드에 따라 작동할 수 있다. 특히, 본 발명의 실시 예에서, 카드 컨트롤러(3330)는 호스트(3100)로부터 제공된 파티션 생성 커맨드 및 파티션 해제 커맨드에 기초하여 불휘발성 반도체 메모리(3350)를 제어할 수 있다. 불휘발성 반도체 메모리(3350)는 호스트(3100)로부터 제공된 데이터를 저장할 수 있다. 예컨대, 호스트(3100)가 디지털 카메라인 경우 불휘발성 반도체 메모리(3350)는 영상 데이터를 저장할 수 있다.
카드 컨트롤러(3330) 및 불휘발성 반도체 메모리(3350)는 본 발명의 실시 예에 따라 작동하도록 구현될 수 있다. 즉, 호스트(3100)로부터 파티션 생성 커맨드가 제공되면, 카드 컨트롤러(3330)는 불휘발성 반도체 메모리(3350)의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성할 수 있다. 그리고, 불휘발성 반도체 메모리(3350)의 메모리 영역은 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분될 수 있다. 특히, 호스트(3100)로부터 파티션 해제 커맨드가 제공되기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 생성된 맵핑 정보에 의해 고유하게 결정될 수 있다.
도 15는 본 발명의 실시 예에 따른 스토리지 또는 메모리 카드를 포함하는 컴퓨팅 시스템이 가질 수 있는 구성을 나타낸 블록도이다. 컴퓨팅 시스템(4000)은 프로세서(4100), 메모리(4200), 스토리지 또는 메모리 카드(4300), 통신 유닛(4400), 및 유저 인터페이스(4500)를 포함할 수 있다.
프로세서(4100)는 컴퓨팅 시스템(4000)의 작동을 제어할 수 있다. 프로세서(4100)는 각종 연산을 수행할 수 있다. 예로서, 프로세서(4100)는 SoC(System on Chip)로 구성될 수 있다. 프로세서(4100)는 일반적인 컴퓨터 또는 워크스테이션에서 사용되는 범용 프로세서일 수 있다. 또는, 프로세서(4100)는 휴대폰과 같은 모바일 기기에서 사용되는 AP(Application Processor)일 수 있다.
메모리(4200)는 프로세서(4100)와 데이터를 교환할 수 있다. 메모리(4200)는 프로세서(4100) 또는 컴퓨팅 시스템(4000)의 메인 메모리일 수 있다. 메모리(4200)는 SRAM, DRAM, 및 SDRAM와 같은 휘발성 메모리, 또는 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM와 같은 불휘발성 반도체 메모리를 포함할 수 있다. 메모리(4200)는 하나 이상의 메모리 모듈 또는 하나 이상의 메모리 패키지를 포함할 수 있다.
스토리지 또는 메모리 카드(4300)는 장기적으로 저장하고자 하는 데이터를 저장할 수 있다. 스토리지 또는 메모리 카드(4300)는 SSD나 eMMC와 같은 플래시 메모리 장치, 또는 PRAM , MRAM, ReRAM, FRAM 등의 불휘발성 반도체 메모리를 포함하는 장치일 수 있다. 스토리지 또는 메모리 카드(4300)는 도 13의 스토리지(2300, 도 13 참조) 또는 도 14의 메모리 카드(3300)일 수 있다.
스토리지 또는 메모리 카드(4300)는 본 발명의 실시 예에 따라 작동하도록 구현될 수 있다. 즉, 파티션 생성 신호가 제공되면, 스토리지 또는 메모리 카드(4300)의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보가 생성될 수 있다. 그리고, 스토리지 또는 메모리 카드(4300)의 메모리 영역은 생성된 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분될 수 있다. 특히, 파티션 해제 커맨드가 제공되기 전까지, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 생성된 맵핑 정보에 의해 고유하게 결정될 수 있다.
통신 유닛(4400)은 프로세서(4100)의 제어에 따라 컴퓨팅 시스템(4000)의 외부와 통신할 수 있다. 통신 유닛(4400)은 유선 또는 무선 통신 규약에 따라 컴퓨팅 시스템(4000)의 외부와 통신할 수 있다. 예로서, 통신 유닛(4400)은 LTE(Long Term Evolution), WiMax, GSM(Global System for Mobile communication), CDMA(Code Division Multiple Access), Bluetooth, NFC(Near Field Communication), WiFi, RFID(Radio Frequency Identification) 등의 다양한 무선 통신 규약, 또는 USB, SCSI, PCIe, ATA, PATA, SATA, SAS, Firewire 등의 다양한 유선 통신 규약 중 적어도 하나에 따라 컴퓨팅 시스템(4000)의 외부와 통신할 수 있다.
유저 인터페이스(4500)는 프로세서(4100)의 제어에 따라 사용자와 컴퓨팅 시스템(4000) 사이의 통신을 중계할 수 있다. 예로서, 유저 인터페이스(4500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 유저 인터페이스(4500)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode) 표시 장치, AMOLED(Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등의 출력 인터페이스를 포함할 수 있다.
도 16은 본 발명의 실시 예에 따른 다중 호스트 스토리지 시스템이 가질 수 있는 구성을 나타낸 블록도이다. 다중 호스트 스토리지 시스템(5000)은 둘 이상의 호스트(5110, 5130, 5150) 및 스토리지(5300)를 포함할 수 있다. 스토리지(5300)는 스토리지 컨트롤러(5310) 및 불휘발성 반도체 메모리(5330)를 포함할 수 있다. 다중 호스트 스토리지 시스템(5000)의 각 구성 요소의 구성과 기능에는 도 13의 단일 호스트 스토리지 시스템(2000, 도 13 참조)의 각 구성 요소의 구성과 기능이 포함될 수 있다. 다중 호스트 스토리지 시스템(5000)의 각 구성 요소의 구성과 기능에 관한 자세한 설명은 도 13에 관한 설명과 중복되는 범위에서 생략된다.
본 발명의 실시 예에 따라, 불휘발성 반도체 메모리(5330)는 맵핑 정보에 기초하여 복수의 물리 파티션으로 구분될 수 있다. 그리고, 맵핑 정보에 기초하여, 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 각각은 고유하게 결정될 수 있다. 나아가, 둘 이상의 호스트(5110, 5130, 5150) 각각은 하나 이상의 논리 파티션으로 접근할 수 있는 권한을 할당받을 수 있다. 도 16에서, 둘 이상의 호스트(5110, 5130, 5150) 중 어느 하나와 복수의 논리 파티션 중 어느 하나가 연결되는 실시 예가 도시되었다. 그러나, 서로 연결되는 호스트(5110, 5130, 또는 5150)와 논리 파티션의 수는 다양하게 변경될 수 있다. 즉, 도 16의 도시 내용은 본 발명의 실시 예의 이해를 돕기 위한 예시이다.
복수의 논리 파티션 각각은 복수의 물리 파티션 각각으로 고유하게 맵핑된다. 따라서, 둘 이상의 호스트(5110, 5130, 5150) 각각은 할당받은 논리 파티션과 맵핑되는 물리 파티션으로만 접근할 수 있다. 즉, 둘 이상의 호스트(5110, 5130, 5150) 각각은 할당받은 논리 파티션과 맵핑되는 물리 파티션 외의 다른 물리 파티션으로 접근할 수 없다. 이 실시 예에 따르면, 스토리지(5300)가 한 개만 구비되더라도, 둘 이상의 호스트(5110, 5130, 5150) 각각의 사용자는 복수의 스토리지가 구비된 것으로 인식할 수 있다.
이 실시 예는 MPIO(Multipath Input/Output) 기술에 기초하여 구현될 수 있다. 이 경우, 둘 이상의 호스트(5110, 5130, 5150)와 스토리지(5300)는 복수의 물리 경로를 통해 통신할 수 있다. 반면, 이 실시 예는 SR-IOV(Single-Root Input/Output Virtualization) 기술 또는 MR-IOV(Multi-Root Input/Output Virtualization) 기술을 응용함으로써 구현될 수도 있다. 이 실시 예는 둘 이상의 호스트를 포함하는 로컬 컴퓨팅 시스템에서 구현될 수 있다. 또는, 이 실시 예는 서버와 클라이언트 구조를 갖는 웹 환경에서 구현될 수 있다. 뿐만 아니라, 이 실시 예는 모바일 장치들을 포함하는 무선 통신 환경에서 구현될 수도 있다.
다중 호스트 스토리지 시스템에서 본 발명의 실시 예에 따라 구현된 저장 장치가 이용되는 경우, 불휘발성 반도체 메모리의 복수의 물리 파티션 각각에 저장된 데이터의 무결성이 향상될 수 있다. 하나의 물리 파티션이 복수의 논리 파티션에 의해 공유되지 않아서, 가비지 데이터가 읽히거나 저장될 가능성이 작기 때문이다. 뿐만 아니라, 복수의 물리 파티션 각각에 저장된 데이터의 보안 수준이 향상될 수 있다. 하나의 호스트는 할당받은 논리 파티션과 맵핑되는 물리 파티션 외의 다른 물리 파티션으로 접근할 수 없기 때문이다.
본 발명의 실시 예에 따른 불휘발성 반도체 메모리와 메모리 컨트롤러는 다양한 형태의 패키지를 이용하여 실장될 수 있다. 예컨대, 본 발명의 실시 예에 따른 불휘발성 반도체 메모리와 메모리 컨트롤러는 PoP(Package on Package), BGAs(Ball Grid Arrays), CSPs(Chip Scale Packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-line Package), MQFP(Metric Quad Flat Pack), TQFP(Thin Quad Flat Pack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등의 패키지를 이용하여 실장될 수 있다.
각각의 블록도에 도시된 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
10 : 호스트 100 : 저장 장치
110 : 메모리 컨트롤러 130 : 불휘발성 반도체 메모리
1000 : 메모리 시스템
2000 : 단일 호스트 스토리지 시스템
2100 : 호스트 2300 : 스토리지
2310 : 스토리지 컨트롤러 2330 : 불휘발성 반도체 메모리
2350 : 버퍼 메모리
3000 : 메모리 카드 시스템 3100 : 호스트
3110 : 호스트 컨트롤러 3130 : 호스트 접속 유닛
3300 : 메모리 카드 3310 : 카드 접속 유닛
3330 : 카드 컨트롤러 3350 : 불휘발성 반도체 메모리
4000 : 컴퓨팅 시스템 4100 : 프로세서
4200 : 메모리 4300 : 스토리지 또는 메모리 카드
4400 : 통신 유닛 4500 : 유저 인터페이스
5000 : 다중 호스트 스토리지 시스템
5110, 5130, 5150 : 호스트 5300 : 스토리지
5310 : 스토리지 컨트롤러 5330 : 불휘발성 반도체 메모리

Claims (10)

  1. 파티션 생성 신호에 기초하여, 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 상기 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성하는 메모리 컨트롤러; 및
    상기 생성된 맵핑 정보에 기초하여 상기 복수의 물리 파티션으로 구분되는 메모리 영역을 포함하는 불휘발성 반도체 메모리를 포함하되,
    파티션 해제 신호를 제공받기 전까지, 상기 복수의 물리 파티션 각각으로 맵핑되는 상기 복수의 논리 파티션 각각이 상기 생성된 맵핑 정보에 의해 고유하게 결정되는 저장 장치.
  2. 제 1 항에 있어서,
    상기 복수의 물리 파티션에 포함되는 제 1 물리 파티션과 상기 복수의 논리 파티션에 포함되는 제 1 논리 파티션이 상기 맵핑 정보에 기초하여 고유하게 맵핑되고, 상기 복수의 물리 파티션에 포함되는 제 2 물리 파티션과 상기 복수의 논리 파티션에 포함되는 제 2 논리 파티션이 상기 맵핑 정보에 기초하여 고유하게 맵핑되는 경우, 상기 파티션 해제 신호를 제공받기 전까지, 상기 제 1 논리 파티션은 상기 제 1 물리 파티션으로만 맵핑되고, 상기 제 2 논리 파티션은 상기 제 2 물리 파티션으로만 맵핑되는 저장 장치.
  3. 제 1 항에 있어서,
    상기 파티션 생성 신호는 상기 복수의 물리 파티션 각각이 할당되는 물리 영역의 물리 어드레스 범위 및 상기 복수의 물리 파티션 각각의 메모리 크기 중 적어도 하나에 대응하는 정보를 포함하는 저장 장치.
  4. 제 1 항에 있어서,
    상기 파티션 생성 신호는 상기 복수의 물리 파티션 각각의 메모리 사용 특성에 대응하는 정보를 포함하는 저장 장치.
  5. 제 4 항에 있어서,
    상기 메모리 사용 특성은 오버 프로비져닝 영역의 비율 및 웨어 레벨 중 적어도 하나를 포함하는 저장 장치.
  6. 제 4 항에 있어서,
    상기 복수의 물리 파티션 중 적어도 하나의 물리 파티션이 다른 물리 파티션과 서로 다른 값의 메모리 사용 특성을 갖도록 설정되는 저장 장치.
  7. 제 1 항에 있어서,
    호스트로부터 상기 복수의 논리 파티션 중 접근 대상 논리 파티션에 대한 접근 요청이 제공된 경우, 상기 메모리 컨트롤러는 상기 복수의 물리 파티션 중 상기 접근 대상 논리 파티션과 고유하게 맵핑되는 접근 대상 물리 파티션에서 상기 접근 요청이 처리되도록 상기 불휘발성 반도체 메모리를 제어하는 저장 장치.
  8. 제 1 항에 있어서,
    상기 불휘발성 반도체 메모리는 상기 복수의 논리 파티션 중 둘 이상과 공통으로 맵핑되는 메모리 영역 및 상기 생성된 맵핑 정보와 관계없이 접근되는 메모리 영역 중 적어도 하나를 더 포함하는 저장 장치.
  9. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 파티션 해제 신호에 따라 상기 불휘발성 반도체 메모리의 모든 메모리 영역이 동적으로 접근되도록 설정하는 저장 장치.
  10. 불휘발성 반도체 메모리를 포함하는 저장 장치를 관리하는 방법에 있어서:
    파티션 생성 신호를 수신하는 단계;
    상기 수신된 파티션 생성 신호에 기초하여, 상기 불휘발성 반도체 메모리의 서로 다른 물리 영역에 할당되는 복수의 물리 파티션과 상기 복수의 물리 파티션 각각으로 맵핑되는 복수의 논리 파티션 사이의 맵핑 정보를 생성하는 단계; 및
    상기 생성된 맵핑 정보에 기초하여 상기 불휘발성 반도체 메모리의 메모리 영역이 상기 복수의 물리 파티션으로 구분되도록 상기 불휘발성 반도체 메모리를 제어하는 단계를 포함하되,
    파티션 해제 신호를 수신하기 전까지, 상기 복수의 물리 파티션 각각으로 맵핑되는 상기 복수의 논리 파티션 각각은 상기 생성된 맵핑 정보에 의해 고유하게 결정되는 저장 장치 관리 방법.
KR1020140001315A 2014-01-06 2014-01-06 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법 KR20150081635A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140001315A KR20150081635A (ko) 2014-01-06 2014-01-06 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법
US14/505,077 US20150193159A1 (en) 2014-01-06 2014-10-02 Storage device including nonvolatile semiconductor memory and managing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140001315A KR20150081635A (ko) 2014-01-06 2014-01-06 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법

Publications (1)

Publication Number Publication Date
KR20150081635A true KR20150081635A (ko) 2015-07-15

Family

ID=53495190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140001315A KR20150081635A (ko) 2014-01-06 2014-01-06 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법

Country Status (2)

Country Link
US (1) US20150193159A1 (ko)
KR (1) KR20150081635A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200036675A (ko) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 저장 공간을 동적으로 할당하는 제어 장치 및 이를 포함하는 데이터 저장 장치
CN111414313A (zh) * 2019-01-07 2020-07-14 爱思开海力士有限公司 数据存储装置及数据存储装置的操作方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI645288B (zh) * 2017-07-04 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10503404B2 (en) * 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
US10437476B2 (en) 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation 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
US11500567B2 (en) * 2019-12-06 2022-11-15 Micron Technology, Inc. Configuring partitions of a memory sub-system for different data
WO2022180903A1 (ja) * 2021-02-25 2022-09-01 パナソニックIpマネジメント株式会社 データ記録システム及びデータ記録システムの制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61163430A (ja) * 1985-01-16 1986-07-24 Nec Corp デ−タマツピング装置
EP1912123A4 (en) * 2005-07-29 2008-10-29 Matsushita Electric Ind Co Ltd MEMORY CONTROL UNIT, NON-VOLATILE MEMORY, NON-VOLATILE MEMORY SYSTEM, AND MEMORY ADDRESS MANAGEMENT METHOD
US8688899B2 (en) * 2010-09-28 2014-04-01 Fusion-Io, Inc. Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol
US9690694B2 (en) * 2011-09-27 2017-06-27 Sandisk Technologies, Llc Apparatus, system, and method for an address translation layer
US10606754B2 (en) * 2012-04-16 2020-03-31 International Business Machines Corporation Loading a pre-fetch cache using a logical volume mapping
US10489295B2 (en) * 2012-10-08 2019-11-26 Sandisk Technologies Llc Systems and methods for managing cache pre-fetch

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200036675A (ko) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 저장 공간을 동적으로 할당하는 제어 장치 및 이를 포함하는 데이터 저장 장치
CN111414313A (zh) * 2019-01-07 2020-07-14 爱思开海力士有限公司 数据存储装置及数据存储装置的操作方法
CN111414313B (zh) * 2019-01-07 2023-09-15 爱思开海力士有限公司 数据存储装置及数据存储装置的操作方法

Also Published As

Publication number Publication date
US20150193159A1 (en) 2015-07-09

Similar Documents

Publication Publication Date Title
KR20150081635A (ko) 불휘발성 반도체 메모리를 포함하는 저장 장치 및 그것의 관리 방법
US9804801B2 (en) Hybrid memory device for storing write data based on attribution of data stored therein
CN108733595B (zh) 存储器***、包括其的数据处理***及其操作方法
US20190166201A1 (en) Storage device and electronic device including the same
KR20160013351A (ko) 데이터 저장 장치 및 그것의 데이터 처리 방법
KR102330391B1 (ko) 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법
US11681553B2 (en) Storage devices including heterogeneous processors which share memory and methods of operating the same
US11029873B2 (en) Storage device with expandable logical address space and operating method thereof
KR102238650B1 (ko) 저장 장치, 상기 저장 장치를 포함하는 컴퓨팅 시스템 및 상기 저장 장치의 동작 방법
US11861359B2 (en) Storage device and method of operating the same
US9971549B2 (en) Method of operating a memory device
US11907120B2 (en) Computing device for transceiving information via plurality of buses, and operating method of the computing device
KR102219759B1 (ko) 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
TW201732797A (zh) 半導體記憶體裝置的控制器及其操作方法
KR20200060154A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20160004728A (ko) 메모리 시스템 및 데이터 저장 장치
US10490237B2 (en) Data storage device and method of operating the same
US20200192599A1 (en) Storage device and method of operating the same
KR20200076534A (ko) 데이터 저장 장치 및 그 동작 방법
US9311257B2 (en) Semiconductor memory device, memory system and method of operating the same
CN113867619A (zh) 存储器控制器及其操作方法
US20130346677A1 (en) Non-volatile memory device
JP2020087408A (ja) メモリーシステム
US9465747B2 (en) Controller for controlling non-volatile memory and semiconductor device including the same
US8972655B2 (en) Initialization of a storage device

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid