KR20140113211A - 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 - Google Patents
비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 Download PDFInfo
- Publication number
- KR20140113211A KR20140113211A KR1020130028311A KR20130028311A KR20140113211A KR 20140113211 A KR20140113211 A KR 20140113211A KR 1020130028311 A KR1020130028311 A KR 1020130028311A KR 20130028311 A KR20130028311 A KR 20130028311A KR 20140113211 A KR20140113211 A KR 20140113211A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- area information
- memory system
- volatile memory
- storage area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
비휘발성 메모리 시스템의 사용자 저장 영역의 적응적 조절 방법은 호스트가 사용자 영역 정보 요청 명령을 상기 비휘발성 메모리 시스템으로 전송하는 단계, 상기 호스트가 상기 비휘발성 메모리 시스템으로부터 전송된 사용자 영역 정보를 수신하는 단계, 상기 호스트가 상기 사용자 영역 정보를 변경하는 단계와 상기 호스트가 상기 변경된 사용자 영역 정보를 상기 비휘발성 메모리 시스템에 설정하기 위하여 사용자 영역 정보 설정 명령을 상기 비휘발성 메모리 시스템으로 전송하는 단계를 포함하며, 상기 비휘발성 메모리 시스템은 상기 사용자 영역 정보 설정 명령에 응답하여 상기 사용자 저장 영역의 크기를 제어할 수 있다.
Description
본 발명의 개념에 따른 실시 예는 비휘발성 메모리 시스템에 관한 것으로, 특히 변경된 사용자 영역 정보에 기초하여 상기 비휘발성 메모리 시스템의 사용자 저장 영역의 크기를 제어하는 비휘발성 메모리 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법에 관한 것이다.
플래시 메모리 장치는 비휘발성 메모리 장치로서 USB(universal serial bus) 드라이브, 디지털 카메라, 이동 전화기, 스마트폰, 태블릿(tablet) PC, 메모리 카드, 및 SSD(solid state drive)에서 널리 사용된다.
플래시 메모리 장치는 복수의 블록들을 포함하고, 상기 복수의 블록들 각각은 복수의 페이지들을 포함하고, 상기 복수의 페이지들 각각은 복수의 메모리 셀들을 포함한다.
상기 복수의 메모리 셀들 각각은 싱글-레벨 셀(single-level cell(SLC)) 또는 멀티-레벨 셀(multi-level cell(MLC))로 구현될 수 있다. 상기 SLC는 1-비트에 상응하는 정보를 저장할 수 있고, 상기 MLC는 적어도 2-비트의 상응하는 정보를 저장할 수 있다.
프로그램(program) 동작은 페이지(page) 단위로 수행되고, 이레이즈(erase) 동작은 블록(block) 단위로 수행된다.
플래시 메모리 장치의 모든 블록은 사용자가 데이터를 라이트하거나 리드할 수 있는 사용자 저장 영역과 상기 사용자가 사용할 수 없는 비사용자 저장 영역으로 구분될 수 있다.
상기 사용자 저장 영역과 상기 비사용자 저장 영역 각각의 크기는 상기 플래시 메모리 장치의 공장 출하시 셋팅된다.
본 발명이 이루고자 하는 기술적인 과제는 변경된 사용자 영역 정보에 기초하여 비휘발성 메모리 시스템의 사용자 저장 영역의 크기를 제어하는 비휘발성 메모리 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법은 호스트가 사용자 영역 정보 요청 명령을 상기 비휘발성 메모리 시스템으로 전송하는 단계, 상기 호스트가 상기 비휘발성 메모리 시스템으로부터 전송된 사용자 영역 정보를 수신하는 단계, 상기 호스트가 상기 사용자 영역 정보를 변경하는 단계와, 상기 호스트가 상기 변경된 사용자 영역 정보를 상기 비휘발성 메모리 시스템에 설정하기 위하여 사용자 영역 정보 설정 명령을 상기 비휘발성 메모리 시스템으로 전송하는 단계를 포함하며, 상기 비휘발성 메모리 시스템은 상기 사용자 영역 정보 설정 명령에 응답하여 전체 메모리 저장 영역 중 사용자 저장 영역의 크기를 제어할 수 있다.
상기 사용자 영역 정보 요청 명령 및 상기 사용자 영역 정보 설정 명령 각각은 벤더 스페스픽 명령(vendor specific command)일 수 있다.
상기 사용자 영역 정보는 사용자 저장 영역 용량 대비 비사용자 저장 영역 용량의 비율, 전체 저장 용량 대비 상기 사용자 저장 영역 용량의 비율, 상기 전체 저장 용량 대비 상기 비사용자 저장 영역 용량의 비율, 상기 사용자 저장 영역 용량, 및 상기 비사용자 저장 영역 용량 중에서 적어도 하나를 포함할 수 있다.
상기 방법은 상기 호스트가 상기 변경된 사용자 영역 정보에 따라 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역을 제외한 비사용자 저장 영역에 상응하는 논리 주소들을 갱신하는 단계를 더 포함할 수 있다.
상기 비휘발성 메모리 시스템은 상기 변경된 사용자 영역 정보에 따라 주소 매핑 테이블을 변경할 수 있다.
상기 사용자 영역 정보를 변경하는 단계는 상기 호스트가 사용자의 요청에 따라 상기 비휘발성 메모리 시스템의 상기 사용자 영역 정보를 디스플레이하는 단계, 상기 호스트가 상기 사용자로부터 상기 비휘발성 메모리 시스템의 상기 사용자 영역 정보의 변경 요청을 수신하는 단계와, 상기 호스트가 상기 변경 요청에 응답하여 상기 사용자 영역 정보를 변경하는 단계를 포함할 수 있다.
상기 사용자 영역 정보를 변경하는 단계는 상기 호스트가 소정의 관리 파라미터 대 사용자 영역 정보에 대한 복수의 엔트리를 저장하는 테이블에서 어느 하나의 사용자 영역 정보를 상기 변경된 사용자 영역 정보로 선택하는 단계를 포함할 수 있다.
상기 소정의 관리 파라미터는 순차 읽기 성능(sequential read performance), 임의 읽기 성능(random read performance), 순차 쓰기 성능(sequential write performance), 최대 레이턴시, 수명, 및 데이터 쓰기량 중에서 어느 하나를 포함할 수 있다.
상기 사용자 영역 정보를 변경하는 단계는 상기 호스트가 미리 설정된 복수의 사용자 영역 정보를 저장하는 테이블에서 어느 하나의 사용자 영역 정보를 상기 변경된 사용자 영역 정보로 선택하는 단계를 포함할 수 있다.
상기 어느 하나의 사용자 영역 정보는 상기 비휘발성 메모리 시스템에 대한 접근 빈도, 상기 비휘발성 메모리 시스템에 대한 데이터 사용량, 및 상기 비휘발성 메모리 시스템에 대한 데이터 쓰기량 중에서 적어도 어느 하나에 따라, 상기 테이블에서 적응적으로 선택될 수 있다.
상기 비휘발성 메모리 시스템은 eMMC(embedded multimedia card) UFS (universal flash storage) 또는 SSD(solid state drive) 등 플래시 메모리 컨트롤러를 포함하는 플래시 기반 저장 장치일 수 있다.
본 발명의 실시 예에 따른 비휘발성 메모리 시스템은 사용자 저장 영역과 비사용자 저장 영역을 포함하는 비휘발성 메모리 장치와, 호스트로부터 출력된 사용자 영역 정보 요청 명령에 응답하여 사용자 영역 정보를 상기 호스트로 전송하고, 상기 호스트로부터 출력된 변경된 사용자 영역 정보에 따라 사용자 영역의 크기를 제어하는 주소 매핑 모듈을 포함할 수 있다.
상기 주소 매핑 모듈은 상기 변경된 사용자 영역 정보에 따라 주소 매핑 테이블을 변경할 수 있다.
상기 사용자 영역 정보는 사용자 저장 영역 용량 대비 비사용자 저장 영역 용량의 비율, 전체 저장 용량 대비 상기 사용자 저장 영역 용량의 비율, 상기 전체 저장 용량 대비 상기 비사용자 저장 영역 용량의 비율, 상기 사용자 저장 영역 용량, 및 상기 비사용자 저장 영역 용량 중에서 적어도 하나를 포함할 수 있다.
상기 비휘발성 메모리 시스템은 eMMC(embedded multimedia card) UFS (universal flash storage) 또는 SSD(solid state drive) 등 플래시 메모리 컨트롤러를 포함하는 플래시 기반 저장 장치일 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 파일 서버의 입출력 데이터를 모니터링하는 호스트와, 전체 메모리 저장 영역을 포함하며, 상기 전체 메모리 저장 영역 중에서 사용자 저장 영역에 대한 정보를 나타내는 사용자 영역 정보를 상기 호스트로 전송하는 비휘발성 메모리 시스템을 포함하며, 상기 호스트는 모니터링 결과와 상기 사용자 영역 정보 중에서 적어도 하나에 기초하여 상기 사용자 영역 정보를 변경하고, 상기 비휘발성 메모리 장치의 상기 사용자 저장 영역의 크기를 제어하는 변경된 사용자 영역 정보를 상기 비휘발성 메모리 시스템으로 전송할 수 있다.
본 발명의 실시 예에 따른 호스트는 비휘발성 메모리 시스템의 사용자 영역 정보를 이용하여 상기 비휘발성 메모리 시스템의 전체 메모리 저장 영역 중에서 사용자 저장 영역의 크기를 제어할 수 있는 효과가 있다.
본 발명의 실시 예에 따른 비휘발성 메모리 시스템은 상기 호스트로부터 변경된 사용자 영역 정보에 따라 상기 사용자 저장 영역의 크기를 변경할 수 있으므로, 상기 비휘발성 메모리 시스템의 성능 저하와 내구력 저하를 방지할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템의 개략적인 블록도이다.
도 2는 본 발명의 다른 실시 예에 따른 전자 시스템의 개략적인 블록도이다.
도 3은 도 1에 도시된 호스트가 변경된 사용자 영역 정보에 따라 논리 주소들을 갱신하는 동작을 설명하기 위한 개념도이다.
도 4는 도 1에 도시된 비휘발성 메모리 장치에 대응되는 메모리 맵을 나타낸다.
도 5는 도 1 또는 도 2에 도시된 호스트가 변경된 사용자 영역 정보를 생성하는 동작을 설명하기 위한 일 실시 예를 나타낸다.
도 6은 도 1 또는 도 2에 도시된 호스트가 변경된 사용자 영역 정보를 생성하는 동작을 설명하기 위한 다른 실시 예를 나타낸다.
도 7은 도 1 또는 도 2에 도시된 주소 매핑 모듈이 주소 매핑 테이블을 변경하는 동작을 설명하기 위한 개념도를 나타낸다.
도 8부터 도 11은 도 1 또는 도 2의 전자 시스템의 동작들을 설명하기 위한 플로우 차트들이다.
도 12는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 13는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 14는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 16은 본 발명의 실시 예에 따른 컴퓨터 네트워크의 실시 예를 나타낸다.
도 17은 도 16의 컴퓨터 네트워크에 포함된 호스트가 비휘발성 메모리 시스템의 사용자 저장 영역의 크기를 제어하는 방법을 설명하기 위한 플로우차트이다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템의 개략적인 블록도이다.
도 2는 본 발명의 다른 실시 예에 따른 전자 시스템의 개략적인 블록도이다.
도 3은 도 1에 도시된 호스트가 변경된 사용자 영역 정보에 따라 논리 주소들을 갱신하는 동작을 설명하기 위한 개념도이다.
도 4는 도 1에 도시된 비휘발성 메모리 장치에 대응되는 메모리 맵을 나타낸다.
도 5는 도 1 또는 도 2에 도시된 호스트가 변경된 사용자 영역 정보를 생성하는 동작을 설명하기 위한 일 실시 예를 나타낸다.
도 6은 도 1 또는 도 2에 도시된 호스트가 변경된 사용자 영역 정보를 생성하는 동작을 설명하기 위한 다른 실시 예를 나타낸다.
도 7은 도 1 또는 도 2에 도시된 주소 매핑 모듈이 주소 매핑 테이블을 변경하는 동작을 설명하기 위한 개념도를 나타낸다.
도 8부터 도 11은 도 1 또는 도 2의 전자 시스템의 동작들을 설명하기 위한 플로우 차트들이다.
도 12는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 13는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 14는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 16은 본 발명의 실시 예에 따른 컴퓨터 네트워크의 실시 예를 나타낸다.
도 17은 도 16의 컴퓨터 네트워크에 포함된 호스트가 비휘발성 메모리 시스템의 사용자 저장 영역의 크기를 제어하는 방법을 설명하기 위한 플로우차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템의 개략적인 블록도이다.
도 1을 참조하면, 전자 시스템(1A)은 호스트(10A)와 비휘발성 메모리 시스템(20)을 포함할 수 있다.
전자 시스템(1A)은 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역 중에서 사용자 저장 영역을 적응적으로 제어할 수 있다.
전자 시스템(1A)은 PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage(NAS)), 또는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
호스트(10A)는 사용자 영역 정보 요청 명령(CMD1)을 비휘발성 메모 시스템(20)으로 전송하고, 비휘발성 메모리 시스템(20)은 사용자 영역 요청 명령(CMD1)에 응답하여 사용자 영역 정보(URI)를 호스트(10A)로 전송할 수 있다.
호스트(10A)는 사용자 영역 정보(URI)를 변경하고, 변경된 사용자 영역 정보(C_URI)를 비휘발성 메모리 시스템(20)에 설정하기 위한 사용자 영역 정보 설정 명령(CMD2)를 생성하고, 변경된 사용자 영역 정보(C_URI)와 사용자 영역 정보 설정 명령(CMD2)을 비휘발성 메모리 시스템(20)으로 전송할 수 있다. 호스트(10A 또는 10B)가 변경된 사용자 영역 정보(URI)를 생성하는 동작은 도 5 및 도 6을 참조하여 상세히 설명될 것이다.
실시 예에 따라, 호스트(10A)는 변경된 사용자 영역 정보(C_URI)가 포함된 사용자 영역 정보 설정 명령(CMD2)을 비휘발성 메모리 시스템(20)으로 전송할 수 있다.
비휘발성 메모리 시스템(20)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역 중 사용자 저장 영역의 크기를 제어할 수 있다.
즉, 비휘발성 메모리 시스템(20)은 호스트(10A)로부터 전송된 변경된 사용자 영역 정보(C_URI)를 이용하여 비휘발성 메모리 시스템(20)의 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역의 크기를 변경하여 설정할 수 있다.
또한, 호스트(10A)는 변경된 사용자 영역 정보(C_URI)에 따라 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역을 제외한 나머지 저장 영역, 예컨대 비사용자 저장 영역에 상응하는 논리 주소 공간을 갱신할 수 있다.
실시 예에 따라, 각 명령(CMD1과 CMD2)은 전자 시스템(1A)의 초기화 동작 동안 생성될 수도 있고 동작 중에 실시간으로 생성될 수 있다.
다른 실시 예에 따라, 각 명령(CMD1과 CMD2)은 벤더 스페스픽 명령(vendor specific command)일 수 있다.
도 3은 도 1에 도시된 호스트가 변경된 사용자 영역 정보에 따라 논리 주소들을 갱신하는 동작을 설명하기 위한 개념도이다.
도 1 및 도 3을 참조하면, 호스트(10A)는 비휘발성 메모리 시스템(20)의 상기 전체 메모리 저장 영역을 제어하기 위해 상기 전체 메모리 저장 영역의 물리 주소들에 대응되는 논리 주소들(LSN)을 생성할 수 있다. 논리 주소들(LSN)은 선형적(또는 연속적, linear)인 특성을 갖을 수 있다. 예컨대, 논리 주소들(LSN)은 논리 섹터 넘버, 또는 논리 블록 넘버일 수 있다.
비휘발성 메모리 시스템(20)의 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역 및 상기 비사용 저장 영역 각각의 물리 주소들은 변경된 사용자 영역 정보(C_URI)에 따라 변경될 수 있다.
따라서, 호스트(10A)는 변경된 사용자 영역 정보(C_URI)에 따라 변경된 물리 주소들에 대응되는 논리 주소들을 갱신할 필요가 있다.
도 3에 도시된 바와 같이 호스트(10A)는 변경된 사용자 영역 정보(C_URI)에 따라 비사용자 저장 영역에 상응하는 논리 주소들(LSN-N)을 증가하거나 감소할 수 있다.
호스트(10A)는 프로세서(13), 메모리(15), 및 호스트 인터페이스(17)을 포함할 수 있다.
실시 예에 따라, 호스트(10A)는 애플리케이션 프로세서 또는 모바일 애플리케이션 프로세서를 의미할 수 있다.
프로세서(13)는 버스(11)를 통해 메모리(15) 및/또는 호스트 인터페이스(17)의 동작을 제어할 수 있다.
프로세서(13)는 본 발명의 실시 예에 따른 비휘발성 메모리 시스템(20)의 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역을 적응적으로 제어하는 방법에 관련된 동작(operation) 또는 기능(function)을 수행할 수 있는 프로그램, 예컨대 운영 체제(operating system(OS)), 애플리케이션 프로그램(application program), 또는 API(application programming interface)를 실행시킬 수 있다.
메모리(15)는 비휘발성 메모리 시스템(20)의 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역을 적응적으로 제어하는 방법에 관련된 프로그램을 저장할 수 있는 동작 메모리(operation memory)를 의미할 수 있고, 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.
상기 휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM (static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
상기 불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
호스트 인터페이스(17)는 호스트(10A)와 비휘발성 메모리 시스템(20) 사이에서 주고받는 신호(또는 데이터)를 인터페이싱할 수 있다.
호스트 인터페이스(17)는 상기 인터페이싱을 위하여 인터페이스 프로토콜을 구비할 수 있다. 예컨대, 상기 인터페이스 프로토콜은 UHS(UHS-I 또는 UHS-II), PCI-E(peripheral component interconnect - express), ATA(Advanced Technology Attachment), SATA(serial ATA), PATA(parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜일 수 있다. 또한, 상기 인터페이스 프로토콜은 USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등에 적합한 프로토콜일 수 있다.
비휘발성 메모리 시스템(20)은 메모리 컨트롤러(100)와 비휘발성 메모리 장치(200)를 포함할 수 있다.
비휘발성 메모리 시스템(20)은 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)), 유니버설 플래시 스토리지 (universal flash storage(UFS)), 솔리드 스테이트 드라이브(solid state drive(SSD)), 또는 레이드(Redundant Array of Independent Disks(RAID) 혹은 Redundant Array of Inexpensive Disks(RAID))일 수 있으나, 반드시 이에 한정되지 않는다. 예컨대, 비휘발성 메모리 시스템(20)은 eMMC, UFC, 또는 SSD 등 플래시 메모리 컨트롤러를 포함한 모든 플래시 기반 저장 장치일 수 있다.
비휘발성 메모리 장치(200)의 전체 메모리 저장 영역 중에서 사용자 저장 영역의 크기는 호스트(10A)의 제어에 따라 메모리 컨트롤러(100), 예컨대 주소 매핑 모듈(130)을 통해서 적응적으로 제어될 수 있다.
비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않으며, PRAM, MRAM, ReRAM, 또는 FeRAM 장치일 수 있다. 비휘발성 메모리 장치(200)가 상기 플래시 메모리 장치인 경우, 비휘발성 메모리 장치(200)는 플로팅 게이트 방식의 NAND 플래시 메모리 장치 또는 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리 장치일 수 있다. 비휘발성 메모리 장치(200)의 메모리 셀 트랜지스터들은 2차원적으로 배열된 구조를 가질 수도 있고, 또는 3차원적으로 배열된 구조를 가질 수도 있다.
도 4는 도 1에 도시된 비휘발성 메모리 장치에 대응되는 메모리 맵을 나타낸다.
도 1, 도 3, 및 도 4를 참조하면, 비휘발성 메모리 시스템(20), 예컨대 비휘발성 메모리 장치(200)의 메모리 셀 어레이(210)는 데이터를 저장할 수 있는 전체 메모리 저장 영역(DSR) 또는 저장 공간(DSR)을 제공할 수 있다. 도 3에서는 메모리 셀 어레이(210)가 하나만 도시되어있지만, 반드시 이에 한정되지 않는다.
전체 메모리 저장 영역(DSR)은 사용자 저장 영역(user storage region(USR))과 비사용자 저장 영역(nonuser storage region(NUSR))을 포함할 수 있다.
사용자 저장 영역(USR)은 특정 데이터가 이미 저장된 사용된 저장 영역(used storage region)과 프로그램가능 가능한 자유 저장 영역(programmable free storage region)을 포함할 수 있다.
비사용자 저장 영역(NUSR)은 비휘발성 메모리 시스템(20)을 관리하기 위한 메타 정보, 및 비휘발성 메모리 장치(200)의 특성이나 비휘발성 메모리 장치(200)의 효율적인 관리를 위하여 필요한 내부 동작(예컨대, 성능 조절, 머지, 웨어 레벨링, 가비지 컬렉션 등)에 관한 정보 등을 저장할 수 있다.
비사용자 저장 영역(NUSR)은 호스트(10A)로부터 출력되는 신호(예컨대, 명령 또는 데이터) 또는 호스트(10A)로 입력되는 신호(예컨대, 명령 또는 데이터)를 임시로 저장할 수 있다.
또한, 에러(또는 불량)가 사용자 저장 영역(USR)에 포함된 블록들에 발생할 때, 비사용자 저장 영역(NUSR)은 에러(또는 불량)가 발생된 블록들을 교체하는 예비 영역을 포함할 수 있다.
사용자 저장 영역(USR)의 크기는 변경된 사용자 영역 정보(C_URI)에 따라 증가하거나 감소할 수 있다. 사용자 저장 영역(USR)이 변경됨에 따라, 비사용자 저장 영역(NUSR)의 크기도 감소하거나 증가할 수 있다.
메모리 컨트롤러(100)는 비휘발성 메모리 시스템(20)의 동작을 전반적으로 제어할 수 있다. 즉, 메모리 컨트롤러(100)는 호스트(10A)와 비휘발성 메모리 시스템(20) 간의 신호(예컨대, 명령 또는 데이터) 교환을 제어할 수 있다.
메모리 컨트롤러(100)는 주소 매핑 모듈(address mapping module; 130)을 포함할 수 있다.
주소 매핑 모듈(130)은 사용자 영역 정보 요청 명령(CMD1)에 응답하여 사용자 영역 정보(URI)를 호스트(10A)로 전송할 수 있다.
실시 예에 따라, 사용자 영역 정보(URI)는 비휘발성 메모리 시스템(20), 예컨대 비휘발성 메모리 장치(200)의 사용자 저장 영역(USR) 용량 대비 비사용자 저장 영역(NUSR) 용량의 비율, 전체 메모리 저장 영역(DSR) 용량(또는 전체 용량) 대비 사용자 저장 영역(USR) 용량의 비율, 전체 메모리 저장 영역(DSR) 용량 대비 비사용자 저장 영역(NUSR) 용량의 비율, 사용자 저장 영역(USR) 용량, 및 비사용자 저장 영역(NUSR) 용량 중에서 적어도 하나를 포함할 수 있다.
주소 매핑 모듈(130)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 호스트로(10)부터 전송된 변경된 사용자 영역 정보(C_URI)에 기초해 비휘발성 메모리 장치(200)의 전체 메모리 저장 영역(DSR) 중에서 사용자 저장 영역(USR)의 크기를 제어할 수 있다.
도 4에 도시된 바와 같이, 주소 매핑 모듈(130)은 변경된 사용자 영역 정보(C_URI)에 따라 사용자 저장 영역(URI)을 증가시키거나 감소시킬 수 있다.
주소 매핑 모듈(100)은 주소 매핑 테이블(133)을 이용하여 논리 주소들과 비휘발성 메모리 장치(200), 예컨대 메모리 셀 어레이(210)의 물리 주소들을 매핑할 수 있다.
주소 매핑 모듈(100)은 변경된 사용자 영역 정보(C_URI)에 따라 주소 매핑 테이블(133)을 변경할 수 있다. 주소 매핑 모듈(130)이 변경된 사용자 영역 정보(C_URI)에 따라 사용자 저장 영역(USR)의 크기를 제어하고, 이에 따라 주소 매핑 테이블(133)을 변경하는 동작은 도 4를 참조하여 상세히 설명될 것이다.
본 명세서에서의 모듈(module)이라 함은 본 명세서에서 설명되는 각각의 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다. 다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다. 각 모듈은 장치로 불릴 수도 있다.
실시 예에 따라, 주소 매핑 모듈(130)은 FTL(Flash Translation Layer)에 구현될 수 있다. 예컨대, 상기 FTL은 비휘발성 메모리 시스템(20)을 관리하기 위한 소프트웨어(또는 소프트웨어 계층)일 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 전자 시스템의 개략적인 블록도이다.
도 2 내지 도 4를 참조하면, 도 1의 전자 시스템(1A)와 달리, 도 2의 전자 시스템(1B)의 호스트(10B)는 프로세서(13), 메모리(15), 호스트 인터페이스(17), 입력 장치(18), 및 디스플레이(19)를 포함할 수 있다. 도 2에서는 입력 장치(18)와 디스플레이(19)가 호스트(10B) 내부에 구현되어 있으나, 반드시 이에 한정되지 않으며, 호스트(10B) 외부에 구현될 수 있다.
호스트(10B)는 사용자 영역 정보 요청 명령(CMD1)을 비휘발성 메모 시스템(20)으로 전송하고, 비휘발성 메모리 시스템(20)은 사용자 영역 요청 명령(CMD1)에 응답하여 사용자 영역 정보(URI)를 호스트(10A)로 전송할 수 있다.
호스트(10B)는 입력 장치(18)로부터 전송된 사용자의 요청에 따라 사용자 영역 정보(URI)를 디스플레이(19)에 디스플레이할 수 있다.
호스트(10B)는 입력 장치(18)를 통해 상기 사용자로부터 입력된 사용자 영역 정보(URI)의 변경 요청을 수신하고, 상기 변경 요청에 응답하여 사용자 영역 정보(URI)를 변경하고, 변경된 사용자 영역 정보(C_URI)를 비휘발성 메모리 시스템(20)에 설정하기 위한 사용자 영역 정보 설정 명령(CMD2)를 생성하고, 변경된 사용자 영역 정보(C_URI)와 사용자 영역 정보 설정 명령(CMD2)을 비휘발성 메모리 시스템(20)으로 전송할 수 있다.
실시 예에 따라, 호스트(10B)는 변경된 사용자 영역 정보(C_URI)가 포함된 사용자 영역 정보 설정 명령(CMD2)을 비휘발성 메모리 시스템(20)으로 전송할 수 있다.
비휘발성 메모리 시스템(20)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역 중 사용자 저장 영역의 크기를 제어할 수 있다.
즉, 비휘발성 메모리 시스템(20B)은 호스트(10B)로부터 전송된 변경된 사용자 영역 정보(C_URI)를 이용하여 비휘발성 메모리 시스템(20)의 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역의 크기를 변경하여 설정할 수 있다.
또한, 호스트(10B)는 변경된 사용자 영역 정보(C_URI)에 따라 전체 메모리 저장 영역(DSR) 중에서 비사용자 저장 영역(NUSR)에 상응하는 논리 주소들(LSN-N)을 갱신할 수 있다.
각 명령(CMD1과 CMD2)은 전자 시스템(1B)의 초기화 동작 동안 생성될 수도 있고 동작 중에 실시간으로 생성될 수 있다.
도 2의 호스트(10B)에 포함된 각 구성요소(13, 15, 17)의 구조 및 동작은 도 1에 도시된 호스트(10A)의 각 구성요소(13, 15, 17)의 구조 및 동작과 실질적으로 동일할 수 있다. 또한, 도 2의 전자 시스템(1B)의 비휘발성 메모리 시스템(20)의 구조 및 동작은 도 1의 전자 시스템(1A)의 비휘발성 메모리 시스템(20)의 구조 및 동작과 실질적으로 동일할 수 있다.
도 5는 도 1 또는 도 2에 도시된 호스트가 변경된 사용자 영역 정보를 생성하는 동작을 설명하기 위한 일 실시 예를 나타낸다.
도 1 내지 도 5를 참조하면, 호스트(10A 또는 10B, 집합적으로 10)는 비휘발성 메모리 시스템(20)으로부터 전송된 사용자 영역 정보(URI)를 변경하고, 변경된 사용자 영역 정보(C_URI)를 생성할 수 있다.
보다 구체적으로, 호스트(10)는 소정의 관리 파라미터(P1 또는 P2) 대 사용자 영역 정보(USR)에 대한 복수의 엔트리(ENT1 내지 ENT5)를 저장하는 테이블(USR_T1)에서 어느 하나의 엔트리(ENT1, ENT2, ENT3, ENT4, 또는 ENT5)를 변경된 사용자 영역 정보(C_USR)로 선택할 수 있다. 도 5의 테이블(USR_T1)의 사용자 영역 정보(USR)의 데이터(Value3-1 내지 Value3-5)는 위에서 상술한 비율들 중에서 어느 하나의 비율에 관한 데이터(또는 값)일 수 있다.
관리 파라미터(P1 또는 P2)는 순차 읽기 성능(sequential read performance), 임의 읽기 성능(random read performance), 순차 쓰기 성능(sequential write performance), 임의 쓰기 성능(random write performance), 최대 레이턴시, 수명, 및 데이터 쓰기량 중에서 어느 하나를 포함할 수 있다.
또한, 테이블(USR_T1)에 기재된 관리 파라미터(P1 또는 P2)에 대한 사용자 영역 정보(USR)의 각 데이터(Value3-1 내지 Value3-5)는 실험에 의해서 얻어지는 데이터일 수 있다.
따라서, 호스트(10)는 비휘발성 메모리 시스템(20)이 변경된 사용자 영역 정보에 따라 상기 사용자 저장 영역의 크기를 변경하도록 제어할 수 있으므로, 비휘발성 메모리 시스템의 성능 저하와 내구력 저하를 방지할 수 있는 효과가 있다.
도 6은 도 1 또는 도 2에 도시된 호스트가 변경된 사용자 영역 정보를 생성하는 동작을 설명하기 위한 다른 실시 예를 나타낸다.
도 1 내지 도 4 및 도 6을 참조하면, 호스트(10)는 비휘발성 메모리 시스템(20)으로부터 전송된 사용자 영역 정보(URI)를 변경하고, 변경된 사용자 영역 정보(C_URI)를 생성할 수 있다.
보다 구체적으로, 호스트(10)는 미리 설정된 복수의 사용자 영역 정보(USR1 내지 USR5)를 저장하는 테이블(USR_T2)에서 어느 하나의 사용자 영역 정보(USR1, USR2, USR3, USR4, 또는 USR5)를 변경된 사용자 영역 정보(C_URI)로 선택할 수 있다.
미리 설정된 복수의 사용자 영역 정보(USR1 내지 USR5)는 위에서 상술한 비율들 중에서 어느 하나의 비율에 관한 데이터(또는 값)을 포함할 수 있다. 또한, 미리 설정된 복수의 사용자 영역 정보(USR1 내지 USR5)는 상술한 비율들 중에서 어느 하나의 비율에 관해 임의로 설정된 데이터(또는 값)일 수 있다.
실시 예에 따라, 호스트(10)는 비휘발성 메모리 시스템(20)에 대한 접근 빈도, 데이터 사용량, 및 데이터 쓰기량 중에서 적어도 어느 하나에 따라 테이블(USR_T2)에서 적응적으로 어느 하나의 사용자 영역 정보(USR1, USR2, USR3, USR4, 또는 USR5)를 변경된 사용자 영역 정보(C_URI)로 선택할 수 있다.
따라서, 호스트(10)는 비휘발성 메모리 시스템(20)이 변경된 사용자 영역 정보에 따라 상기 사용자 저장 영역의 크기를 변경하도록 제어할 수 있으므로, 비휘발성 메모리 시스템의 성능 저하와 내구력 저하를 방지할 수 있는 효과가 있다.
도 7은 도 1 또는 도 2에 도시된 주소 매핑 모듈이 주소 매핑 테이블을 변경하는 동작을 설명하기 위한 개념도를 나타낸다.
도 3에서는 설명의 편의를 위해 주소 매핑 모듈(100)이 변경된 사용자 영역 정보(C_URI)에 따라 전체 메모리 저장 영역(DSR) 중에서 사용자 저장 영역(USR)을 감소하는 동작을 도시하고 있으나, 본 발명의 사상은 이에 한정되지 않는다.
도 1 내지 도 7을 참조하면, 주소 매핑 모듈(130)은 변경된 사용자 영역 정보(C_URI)에 따라 전체 메모리 저장 영역(DSR) 중에서 사용자 저장 영역(USR)을 감소할 수 있다.
사용자 저장 영역(USR) 중에서 비사용자 저장 영역(NUSR)으로 변경되는 영역(RR)에 데이터가 저장되어 있지 않을 때, 주소 매핑 모듈(130)은 사용자 저장 영역(USR) 중에서 비사용자 저장 영역(NUSR)으로 변경되는 영역(RR)의 물리 주소들, 예컨대 4, 5, 10, 11, 16, 17, 22, 및 23에 기초하여 논리 주소들과 매핑할 수 있다(CASE1).
주소 매핑 테이블(133)은 주소 매핑 모듈(130)에 의해서 도 7에 도시된 테이블(TABLE1)과 같이 변경될 수 있다(CASE1).
사용자 저장 영역(USR) 중에서 비사용자 저장 영역(NUSR)으로 변경되는 영역(RR)의 일부 영역(R1)에 데이터가 저장되어 있을 때, 주소 매핑 모듈(130)은 사용자 저장 영역(USR) 중에서 비사용자 저장 영역(NUSR)으로 변경되는 영역(RR)으로 데이터가 저장되지 않은 새로운 영역(R2)을 할당하고, 할당된 영역(R2)의 물리 주소들, 예컨대 14, 15, 20, 및 21에 기초하여 주소 매핑 테이블(133)을 변경할 수 있다(CASE2).
주소 매핑 테이블(133)은 주소 매핑 모듈(130)에 의해서 도 7에 도시된 테이블(TABLE2)과 같이 변경될 수 있다.
도 8부터 도 11은 도 1 또는 도 2의 전자 시스템의 동작들을 설명하기 위한 플로우 차트들이다.
도 1 내지 도 3 및 도 8을 참조하면, 호스트(10)는 사용자 영역 정보 요청 명령(CMD1)을 비휘발성 메모 시스템(20)으로 전송할 수 있다(S110).
호스트(10)는 비휘발성 메모리 시스템(20)으로부터 전송된 사용자 영역 정보(URI)를 수신할 수 있다(S120).
호스트(10A)는 사용자 영역 정보(URI)를 변경하고, 변경된 사용자 영역 정보(C_URI)를 비휘발성 메모리 시스템(20)에 설정하기 위한 사용자 영역 정보 설정 명령(CMD2)를 비휘발성 메모리 시스템(20)으로 전송할 수 있다(S130).
비휘발성 메모리 시스템(20)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역(DSR) 중 사용자 저장 영역(USR)의 크기를 제어할 수 있다(S140).
도 1 내지 도 3, 및 도 9를 참조하면, 호스트(10)는 사용자 영역 정보 요청 명령(CMD1)을 비휘발성 메모 시스템(20)으로 전송할 수 있다(S210).
호스트(10)는 비휘발성 메모리 시스템(20)으로부터 전송된 사용자 영역 정보(URI)를 수신할 수 있다(S220).
호스트(10B)는 입력 장치(18)로부터 전송된 사용자의 요청에 따라 사용자 영역 정보(URI)를 디스플레이(19)에 디스플레이할 수 있다(S230).
호스트(10B)는 입력 장치(18)를 통해 상기 사용자로부터 입력된 사용자 영역 정보(URI)의 변경 요청을 수신할 수 있다(S240).
호스트(10A)는 상기 변경 요청에 응답하여 사용자 영역 정보(URI)를 변경하고, 변경된 사용자 영역 정보(C_URI)를 비휘발성 메모리 시스템(20)에 설정하기 위한 사용자 영역 정보 설정 명령(CMD2)를 비휘발성 메모리 시스템(20)으로 전송할 수 있다(S250).
비휘발성 메모리 시스템(20)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역(DSR) 중 사용자 저장 영역(USR)의 크기를 제어할 수 있다(S260).
도 1 내지 도 3, 도 5 및 도 10을 참조하면, 호스트(10)는 사용자 영역 정보 요청 명령(CMD1)을 비휘발성 메모 시스템(20)으로 전송할 수 있다(S310).
호스트(10)는 비휘발성 메모리 시스템(20)으로부터 전송된 사용자 영역 정보(URI)를 수신할 수 있다(S320).
호스트(10A)는 테이블(USR_T1)에서 어느 하나의 엔트리(ENT1, ENT2, ENT3, ENT4, 또는 ENT5)를 변경된 사용자 영역 정보(C_USR)로 선택하고, 변경된 사용자 영역 정보(C_URI)를 비휘발성 메모리 시스템(20)에 설정하기 위한 사용자 영역 정보 설정 명령(CMD2)를 비휘발성 메모리 시스템(20)으로 전송할 수 있다(S330).
비휘발성 메모리 시스템(20)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역(DSR) 중 사용자 저장 영역(USR)의 크기를 제어할 수 있다(S340).
도 1 내지 도 3, 도 6 및 도 11을 참조하면, 호스트(10)는 사용자 영역 정보 요청 명령(CMD1)을 비휘발성 메모 시스템(20)으로 전송할 수 있다(S410).
호스트(10)는 비휘발성 메모리 시스템(20)으로부터 전송된 사용자 영역 정보(URI)를 수신할 수 있다(S420).
호스트(10A)는 미리 설정된 복수의 사용자 영역 정보(USR1 내지 USR5)를 저장하는 테이블(USR_T2)에서 어느 하나의 사용자 영역 정보(USR1, USR2, USR3, USR4, 또는 USR5)를 변경된 사용자 영역 정보(C_URI)로 선택하고, 변경된 사용자 영역 정보(C_URI)를 비휘발성 메모리 시스템(20)에 설정하기 위한 사용자 영역 정보 설정 명령(CMD2)를 비휘발성 메모리 시스템(20)으로 전송할 수 있다(S430).
비휘발성 메모리 시스템(20)은 사용자 영역 정보 설정 명령(CMD2)에 응답하여 비휘발성 메모리 시스템(20)의 전체 메모리 저장 영역(DSR) 중 사용자 저장 영역(USR)의 크기를 제어할 수 있다(S440).
도 12는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 12를 참조하면, 전자 시스템(1C)는 호스트(10)와 메모리 카드(300)를 포함할 수 있다. 메모리 카드(300)는 스마트 카드일 수 있다.
메모리 카드(300)는 호스트(10)와 통신하는 카드 인터페이스(310), 비휘발성 메모리 장치(200), 및 카드 인터페이스(310)와 비휘발성 메모리 장치(200) 사이에서 데이터 통신을 제어하는 메모리 컨트롤러(100)를 포함할 수 있다.
실시 예에 따라, 카드 인터페이스(310)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(310)는 호스트(10)의 프로토콜에 따라 호스트(10)와 메모리 컨트롤러(100) 사이에서 데이터 교환을 인터페이스할 수 있다.
다른 실시 예에 따라, 카드 인터페이스(310)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(10)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
도 13은 본 발명의 또 다른 실시 예에 다른 전자 시스템의 블록도를 나타낸다.
도 13을 참조하면, 전자 시스템(1D)는 호스트(10)와 비휘발성 메모리 시스템(300)를 포함할 수 있다.
비휘발성 메모리 시스템(300)은 메모리 컨트롤러(100), 및 비휘발성 메모리 장치(200)를 포함할 수 있다.
메모리 컨트롤러(100)는 낸드 플래시 컨트롤러일 수 있고, 비휘발성 메모리 장치(200)는 다수의 낸드 플래시 메모리 소자들(230-1~230-4 및 231-1~231-4)을 포함할 수 있다. 도 13에서는 2-채널(2-channel)/4-뱅크(4-bank) 방식의 하드웨어 구조를 갖는 비휘발성 메모리 시스템(300)이 예시적으로 도시되어 있으나, 본 발명의 사상이 이에 한정되는 것은 아니다. 각 낸드 프래시 소자(230-1~230-4 및 231-1~231-4)는 낸드 플래시 칩으로 구현될 수 있다.
메모리 컨트롤러(100)와 비휘발성 메모리 장치(200)는 2개의 채널(Channel 0 및 Channel 1)로 연결되고, 각 채널(Channel 0 및 Channel 1)은 4개의 플래시 메모리 소자들이 연결될 수 있다. 예컨대, 제1채널(Channel 0)은 4개의 플래시 메모리 소자들(230-1~230-4)이 연결되고, 제2채널(Channel 1)은 4개의 메모리 소자들(231-1~231-4)이 연결될 수 있다. 동일한 채널에 연결된 플래시 메모리 소자들은 I/O 버스와 컨트롤 신호를 공유할 수 있다. 채널의 수 및 뱅크의 수는 상술한 예에 한정되지 않고 변경될 수 있음은 당연하다.
메모리 컨트롤러(100)는 각 채널(Channel 0 및 Channel 1)을 완전히 독립적으로 제어할 수 있다. 즉, 메모리 컨트롤러(100)는 동시에 2개의 플래시 칩(예컨대, 230-1 및 231-1)에 라이트 명령을 입력할 수 있다. 따라서, 2개의 플래시 칩(예컨대, 230-1 및 231-1)에 동시에 라이트 동작이 수행됨으로써, 비휘발성 메모리 시스템(20A)은 상기 라이트 동작에 대한 성능을 개선할 수 있다.
하나의 채널에 연결된 각 낸드 플래시 메모리 소자(예컨대, 230-1~230-4)는 서로 다른 CE 신호들(CE0~CE3)을 통해 선택될 수 있다. 하나의 채널에 연결된 각 낸드 플래시 메모리 소자(230-1~230-4)로의 명령어 입력 및 데이터 전송은 동시데 수행될 수 없다. 즉, 하나의 채널에 연결된 각 낸드 플래시 메모리 소자(예컨대, 230-1~230-4)에 대한 상기 명령어 입력 및 상기 데이터 전송 시간은 중첩될 수 없지만, 하나의 채널에 연결된 각 낸드 플래시 메모리 소자(예컨대, 230-1~230-4)에서의 페이지 프로그램 동작은 서로 중첩될 수 있다.
도 14는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 14를 참조하면, 전자 시스템(1E)은 호스트(10)와 비휘발성 메모리 시스템(500)을 포함할 수 있다.
비휘발성 메모리 시스템(500)은 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다.
비휘발성 메모리 시스템(500)은 다수의 메모리 장치들(200), 다수의 메모리 장치들(200) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(100), DRAM과 같은 휘발성 메모리 장치(525), 메모리 컨트롤러(100)와 호스트(10) 사이에서 주고받는 데이터를 휘발성 메모리 장치(525)에 저장하는 것을 제어하는 버퍼 매니저(520)를 포함할 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 15를 참조하면, 전자 시스템(1F)은 RAID(redundant array of independent disks) 시스템으로 구현될 수 있다.
전자 시스템(1F)은 호스트(10), RAID 컨트롤러(610)와 다수의 메모리 시스템들(20-1~20-n; n는 자연수)을 포함할 수 있다.
다수의 메모리 시스템들(20-1~20-n) 각각은 도 1 또는 도 2에 도시된 시스템 (20)일 수 있다. 다수의 메모리 시스템들(20-1~20-n)은 RAID 어레이를 구성할 수 있다.
전자 시스템(1F)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작 동안, RAID 컨트롤러(610)는 호스트(10)로부터 출력된 프로그램 명령에 따라 호스트(10)로부터 출력된 프로그램 데이터를 RAID 레벨에 따라 다수의 메모리 시스템들(20-1~20-n) 중에서 적어도 어느 하나의 메모리 시스템로 출력할 수 있다.
리드 동작 동안, RAID 컨트롤러(610)는 호스트(10)로부터 출력된 리드 명령에 따라 다수의 메모리 시스템들(20-1~20-n) 중에서 적어도 어느 하나의 메모리 시스템으로부터 읽혀진 데이터를 호스트(10)로 전송할 수 있다.
도 16은 본 발명의 실시 예에 따른 컴퓨터 네트워크의 실시 예를 나타낸다.
도 16을 참조하면, 컴퓨터 네트워크(1G)는 호스트(10C), 적어도 하나의 비휘발성 메모리 시스템(20), 파일 서버(710), 및 복수의 클라이언트들(731-1~731-k, k는 자연수)을 포함할 수 있다.
모니터링 모듈(12)을 제외하면 호스트(10C)의 기능과 구조는 도 1의 호스트(10A)의 구조와 기능과 실질적으로 동일할 수 있다. 또한 호스트(10C)는 도 2의 호스트(10B)의 입력 장치(18)와 디스플레이(19)를 더 포함할 수 있으며, 호스트(10C)의 구조와 기능은 도 2의 호스트(10B)의 구조와 기능과 실질적으로 동일할 수 있다.
비휘발성 메모리 시스템(20)의 구조와 기능은 도 1 또는 도 2의 비휘발성 메모리 시스템(20)의 구조와 기능과 실질적으로 동일하다.
파일 서버(710)와 복수의 클라이언트들(731-1~631-k)은 유선 네트워크 또는 무선 네트워크를 통해 데이터 통신을 수행한다. 상기 유선 네트워크 또는 상기 무선 네트워크는 인터넷 또는 이동 통신 네트워크일 수 있다.
파일 서버(710)는 호스트(200-1)로 데이터를 공급하는 데이터 소스의 기능을 수행할 수 있다.
도 17은 도 16의 컴퓨터 네트워크에 포함된 호스트가 비휘발성 메모리 시스템의 사용자 저장 영역의 크기를 제어하는 방법을 설명하기 위한 플로우차트이다.
호스트(10C)의 모니터링 모듈(12)은 파일 서버(710)와 복수의 클라이언트들(731-1~731-k; k는 자연수) 각각이 주고받는 데이터의 양을 모니터링할 수 있다(S510).
또한, 호스트(10C)의 모니터링 모듈(12)은 파일 서버(710)의 워크로드 (workload) 또는 QoS(Quality of Service)를 모니터링할 수 있다(S510).
모니터링 모듈(12)이 모니터링 결과를 프로세서(13)로 전송하면, 프로세서 (13)는 상기 모니터링 결과에 기초하여 비휘발성 메모리 시스템(20)으로 전송될 데이터의 양을 예측하고(S520), 예측 결과에 기초하여 사용자 영역 정보를 생성하고 생성된 사용자 영역 정보를 변경된 사용자 영역 정보로 비휘발성 메모리 시스템(20)으로 전송할 수 있다(S530).
도 1부터 도 17을 참조하여 설명한 바와 같이, 호스트(10C)는 예측 결과 및/또는 사용자 영역 정보(URI)에 기초하여 변경된 사용자 영역 정보(C_URI)를 생성할 수 있다.
또한, 호스트(10C)는 비휘발성 메모리 시스템(20)으로 전송될 데이터 패턴, 데이터의 양, 데이터의 시작 어드레스, 또는 예측 결과 중에서 적어도 하나를 분석하고, 분석 결과와 사용자 영역 정보(URI)에 기초하여 변경된 사용자 영역 정보(C_URI)를 생성할 수 있다.
따라서, 비휘발성 메모리 시스템(20)은 변경된 사용자 영역 정보(C_URI)에 따라 사용자 저장 영역(USR)의 크기를 제어할 수 있다(S540).
여기서, 모듈(module)은 하드웨어를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세싱 회로를 의미할 수 있다.
다시 말해, 모듈은 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1A~1F: 전자 시스템
10A 및 10B: 호스트
13: 프로세서
15: 메모리
17: 호스트 인터페이스
18: 입력 장치
19: 디스플레이
20: 비휘발성 메모리 시스템
100: 메모리 컨트롤러
130: 주소 매핑 모듈
200: 비휘발성 메모리 장치
10A 및 10B: 호스트
13: 프로세서
15: 메모리
17: 호스트 인터페이스
18: 입력 장치
19: 디스플레이
20: 비휘발성 메모리 시스템
100: 메모리 컨트롤러
130: 주소 매핑 모듈
200: 비휘발성 메모리 장치
Claims (16)
- 비휘발성 메모리 시스템의 전체 메모리 저장 영역 중에서 사용자 저장 영역을 적응적으로 조절하는 방법에 있어서,
호스트가 사용자 영역 정보 요청 명령을 상기 비휘발성 메모리 시스템으로 전송하는 단계;
상기 호스트가 상기 비휘발성 메모리 시스템으로부터 전송된 사용자 영역 정보를 수신하는 단계;
상기 호스트가 상기 사용자 영역 정보를 변경하는 단계; 및
상기 호스트가 상기 변경된 사용자 영역 정보를 상기 비휘발성 메모리 시스템에 설정하기 위하여 사용자 영역 정보 설정 명령을 상기 비휘발성 메모리 시스템으로 전송하는 단계를 포함하며,
상기 비휘발성 메모리 시스템은 상기 사용자 영역 정보 설정 명령에 응답하여 상기 사용자 저장 영역의 크기를 제어하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제1항에 있어서, 상기 사용자 영역 정보 요청 명령 및 상기 사용자 영역 정보 설정 명령 각각은,
벤더 스페스픽 명령(vendor specific command)인 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제1항에 있어서, 상기 사용자 영역 정보는,
사용자 저장 영역 용량 대비 비사용자 저장 영역 용량의 비율, 전체 저장 용량 대비 상기 사용자 저장 영역 용량의 비율, 상기 전체 저장 용량 대비 상기 비사용자 저장 영역 용량의 비율, 상기 사용자 저장 영역 용량, 및 상기 비사용자 저장 영역 용량 중에서 적어도 하나를 포함하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제1항에 있어서, 상기 방법은,
상기 호스트가 상기 변경된 사용자 영역 정보에 따라 상기 전체 메모리 저장 영역 중에서 상기 사용자 저장 영역을 제외한 비사용자 저장 영역에 상응하는 논리 주소 주소들을 갱신하는 단계를 더 포함하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제1항에 있어서,
상기 비휘발성 메모리 시스템은 상기 변경된 사용자 영역 정보에 따라 주소 매핑 테이블을 변경하는 비휘발성 메모리 시스템의 사용자 저장 영역의 적응적 조절 방법. - 제1항에 있어서, 상기 사용자 영역 정보를 변경하는 단계는,
상기 호스트가 사용자의 요청에 따라 상기 비휘발성 메모리 시스템의 상기 사용자 영역 정보를 디스플레이하는 단계;
상기 호스트가 상기 사용자로부터 상기 비휘발성 메모리 시스템의 상기 사용자 영역 정보의 변경 요청을 수신하는 단계; 및
상기 호스트가 상기 변경 요청에 응답하여 상기 사용자 영역 정보를 변경하는 단계를 포함하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제1항에 있어서, 상기 사용자 영역 정보를 변경하는 단계는,
상기 호스트가 소정의 관리 파라미터 대 사용자 영역 정보에 대한 복수의 엔트리를 저장하는 테이블에서 어느 하나의 사용자 영역 정보를 상기 변경된 사용자 영역 정보로 선택하는 단계(S330)를 포함하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제7항에 있어서, 상기 소정의 관리 파라미터는,
순차 읽기 성능(sequential read performance), 임의 읽기 성능(random read performance), 순차 쓰기 성능(sequential write performance), 임의 쓰기 성능(random write performance), 최대 레이턴시, 수명, 및 데이터 쓰기량 중에서 어느 하나를 포함하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제1항에 있어서, 상기 사용자 영역 정보를 변경하는 단계는,
상기 호스트가 미리 설정된 복수의 사용자 영역 정보를 저장하는 테이블에서 어느 하나의 사용자 영역 정보를 상기 변경된 사용자 영역 정보로 선택하는 단계(S430)를 포함하는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 제9항에 있어서, 상기 어느 하나의 사용자 영역 정보는,
상기 비휘발성 메모리 시스템에 대한 접근 빈도, 상기 비휘발성 메모리 시스템에 대한 데이터 사용량, 및 상기 비휘발성 메모리 시스템에 대한 데이터 쓰기량 중에서 적어도 어느 하나에 따라, 상기 테이블에서 적응적으로 선택되는 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 - 제1항에 있어서,
상기 비휘발성 메모리 시스템은 eMMC(embedded multimedia card) UFS (universal flash storage) 또는 SSD(solid state drive) 등 플래시 메모리 컨트롤러를 포함하는 플래시 기반 저장 장치인 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법. - 사용자 저장 영역과 비사용자 저장 영역을 포함하는 비휘발성 메모리 장치;
호스트로부터 출력된 사용자 영역 정보 요청 명령에 응답하여 사용자 영역 정보를 상기 호스트로 전송하고, 상기 호스트로부터 출력된 변경된 사용자 영역 정보에 따라 사용자 영역의 크기를 제어하는 주소 매핑 모듈을 포함하는 비휘발성 메모리 시스템. - 제12항에 있어서,
상기 주소 매핑 모듈은 상기 변경된 사용자 영역 정보에 따라 주소 매핑 테이블을 변경하는 비휘발성 메모리 시스템. - 제12항에 있어서, 상기 사용자 영역 정보는,
사용자 저장 영역 용량 대비 비사용자 저장 영역 용량의 비율, 전체 저장 용량 대비 상기 사용자 저장 영역 용량의 비율, 상기 전체 저장 용량 대비 상기 비사용자 저장 영역 용량의 비율, 상기 사용자 저장 영역 용량, 및 상기 비사용자 저장 영역 용량 중에서 적어도 하나를 포함하는 비휘발성 메모리 시스템. - 제12항에 있어서,
상기 비휘발성 메모리 시스템은 eMMC(embedded multimedia card) UFS (universal flash storage) 또는 SSD(solid state drive) 등 플래시 메모리 컨트롤러를 포함하는 플래시 기반 저장 장치인 비휘발성 메모리 시스템. - 파일 서버의 입출력 데이터를 모니터링하는 호스트; 및
전체 메모리 저장 영역을 포함하며, 상기 전체 메모리 저장 영역 중에서 사용자 저장 영역에 대한 정보를 나타내는 사용자 영역 정보를 상기 호스트로 전송하는 비휘발성 메모리 시스템을 포함하며,
상기 호스트는 모니터링 결과와 상기 사용자 영역 정보 중에서 적어도 하나에 기초하여 상기 사용자 영역 정보를 변경하고, 상기 비휘발성 메모리 장치의 상기 사용자 저장 영역의 크기를 제어하는 변경된 사용자 영역 정보를 상기 비휘발성 메모리 시스템으로 전송하는 컴퓨팅 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130028311A KR102098697B1 (ko) | 2013-03-15 | 2013-03-15 | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 |
US14/207,717 US9460006B2 (en) | 2013-03-15 | 2014-03-13 | Nonvolatile memory system, system including the same, and method of adaptively adjusting user storage region in the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130028311A KR102098697B1 (ko) | 2013-03-15 | 2013-03-15 | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140113211A true KR20140113211A (ko) | 2014-09-24 |
KR102098697B1 KR102098697B1 (ko) | 2020-04-08 |
Family
ID=51533848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130028311A KR102098697B1 (ko) | 2013-03-15 | 2013-03-15 | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9460006B2 (ko) |
KR (1) | KR102098697B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190131170A (ko) * | 2018-05-16 | 2019-11-26 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736065B2 (en) | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
US8908698B2 (en) | 2012-01-13 | 2014-12-09 | Cisco Technology, Inc. | System and method for managing site-to-site VPNs of a cloud managed network |
US10367914B2 (en) | 2016-01-12 | 2019-07-30 | Cisco Technology, Inc. | Attaching service level agreements to application containers and enabling service assurance |
US10476982B2 (en) | 2015-05-15 | 2019-11-12 | Cisco Technology, Inc. | Multi-datacenter message queue |
US10205677B2 (en) | 2015-11-24 | 2019-02-12 | Cisco Technology, Inc. | Cloud resource placement optimization and migration execution in federated clouds |
US10084703B2 (en) | 2015-12-04 | 2018-09-25 | Cisco Technology, Inc. | Infrastructure-exclusive service forwarding |
US10140055B2 (en) * | 2015-12-21 | 2018-11-27 | Memory Technologies Llc | Ensuring that memory device actions are valid using reference values |
US10432532B2 (en) | 2016-07-12 | 2019-10-01 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
US10382597B2 (en) | 2016-07-20 | 2019-08-13 | Cisco Technology, Inc. | System and method for transport-layer level identification and isolation of container traffic |
US10567344B2 (en) | 2016-08-23 | 2020-02-18 | Cisco Technology, Inc. | Automatic firewall configuration based on aggregated cloud managed information |
US10320683B2 (en) | 2017-01-30 | 2019-06-11 | Cisco Technology, Inc. | Reliable load-balancer using segment routing and real-time application monitoring |
US10671571B2 (en) | 2017-01-31 | 2020-06-02 | Cisco Technology, Inc. | Fast network performance in containerized environments for network function virtualization |
US11005731B2 (en) | 2017-04-05 | 2021-05-11 | Cisco Technology, Inc. | Estimating model parameters for automatic deployment of scalable micro services |
KR20180121733A (ko) * | 2017-04-28 | 2018-11-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10439877B2 (en) | 2017-06-26 | 2019-10-08 | Cisco Technology, Inc. | Systems and methods for enabling wide area multicast domain name system |
US10382274B2 (en) | 2017-06-26 | 2019-08-13 | Cisco Technology, Inc. | System and method for wide area zero-configuration network auto configuration |
US10425288B2 (en) | 2017-07-21 | 2019-09-24 | Cisco Technology, Inc. | Container telemetry in data center environments with blade servers and switches |
US10601693B2 (en) | 2017-07-24 | 2020-03-24 | Cisco Technology, Inc. | System and method for providing scalable flow monitoring in a data center fabric |
US10541866B2 (en) | 2017-07-25 | 2020-01-21 | Cisco Technology, Inc. | Detecting and resolving multicast traffic performance issues |
US10705882B2 (en) | 2017-12-21 | 2020-07-07 | Cisco Technology, Inc. | System and method for resource placement across clouds for data intensive workloads |
US11595474B2 (en) | 2017-12-28 | 2023-02-28 | Cisco Technology, Inc. | Accelerating data replication using multicast and non-volatile memory enabled nodes |
US10728361B2 (en) | 2018-05-29 | 2020-07-28 | Cisco Technology, Inc. | System for association of customer information across subscribers |
US10904322B2 (en) | 2018-06-15 | 2021-01-26 | Cisco Technology, Inc. | Systems and methods for scaling down cloud-based servers handling secure connections |
US10764266B2 (en) | 2018-06-19 | 2020-09-01 | Cisco Technology, Inc. | Distributed authentication and authorization for rapid scaling of containerized services |
US11019083B2 (en) | 2018-06-20 | 2021-05-25 | Cisco Technology, Inc. | System for coordinating distributed website analysis |
US10819571B2 (en) | 2018-06-29 | 2020-10-27 | Cisco Technology, Inc. | Network traffic optimization using in-situ notification system |
US10904342B2 (en) | 2018-07-30 | 2021-01-26 | Cisco Technology, Inc. | Container networking using communication tunnels |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050102232A1 (en) * | 2003-11-07 | 2005-05-12 | Kabushiki Kaisha Toshiba | Host device, memory card, memory capacity changing method, memory capacity changing program and memory capacity charge giving/receiving method |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3878508B2 (ja) * | 2001-11-08 | 2007-02-07 | 松下電器産業株式会社 | 回路群制御システム |
KR20040075968A (ko) | 2002-01-29 | 2004-08-30 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 데이터 저장 장치 상의 데이터를 처리하기 위한 데이터저장 장치 및 방법 |
US7137037B2 (en) | 2003-03-27 | 2006-11-14 | Silicon Motion, Inc. | Data storage system and method for testing the same |
TWI251144B (en) * | 2003-05-23 | 2006-03-11 | Hon Hai Prec Ind Co Ltd | USB device and switching method |
US8078788B2 (en) * | 2005-12-08 | 2011-12-13 | Sandisk Technologies Inc. | Media card command pass through methods |
KR100745163B1 (ko) | 2006-06-19 | 2007-08-01 | 주식회사 셀픽 | 동적 매핑 테이블을 이용한 플래시 메모리 관리방법 |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US7844777B2 (en) * | 2007-06-26 | 2010-11-30 | Intel Corporation | Cache for a host controller to store command header information |
TWI389127B (zh) | 2008-08-01 | 2013-03-11 | Jmicron Technology Corp | 快閃記憶體的配置方法 |
KR20100039179A (ko) | 2008-10-07 | 2010-04-15 | 삼성전자주식회사 | 메모리 장치의 상태를 검사하는 메모리 시스템, 저장 장치,그리고 메모리 컨트롤러 |
US9098396B2 (en) | 2009-02-13 | 2015-08-04 | Sandisk Il Ltd. | Enhancement of efficiency in power failure handling in flash memory |
JP2011082911A (ja) * | 2009-10-09 | 2011-04-21 | Sony Corp | 周辺機器および機器接続システム |
KR101090394B1 (ko) | 2009-12-24 | 2011-12-07 | 주식회사 하이닉스반도체 | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 |
US8489855B2 (en) | 2010-05-07 | 2013-07-16 | Ocz Technology Group Inc. | NAND flash-based solid state drive and method of operation |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8886904B2 (en) | 2011-04-14 | 2014-11-11 | Kaminario Technologies Ltd. | Managing a solid-state storage device |
EP2715510B1 (en) | 2011-05-24 | 2018-05-02 | Marvell World Trade Ltd. | Method for storage devices to achieve low write amplification with low over provision |
-
2013
- 2013-03-15 KR KR1020130028311A patent/KR102098697B1/ko active IP Right Grant
-
2014
- 2014-03-13 US US14/207,717 patent/US9460006B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050102232A1 (en) * | 2003-11-07 | 2005-05-12 | Kabushiki Kaisha Toshiba | Host device, memory card, memory capacity changing method, memory capacity changing program and memory capacity charge giving/receiving method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190131170A (ko) * | 2018-05-16 | 2019-11-26 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR102098697B1 (ko) | 2020-04-08 |
US9460006B2 (en) | 2016-10-04 |
US20140281173A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102098697B1 (ko) | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 | |
US11086537B2 (en) | Method and system to perform urgency level garbage collection based on write history of memory blocks | |
US9690700B2 (en) | Host-driven garbage collection | |
US10379948B2 (en) | Redundancy coding stripe based on internal addresses of storage devices | |
JP6517684B2 (ja) | メモリシステムおよび制御方法 | |
US9798656B2 (en) | Memory controller, method of operating, and apparatus including same | |
US9244619B2 (en) | Method of managing data storage device and data storage device | |
KR102098246B1 (ko) | 호스트, 저장 장치, 및 이를 포함하는 시스템의 동작 방법 | |
KR102711044B1 (ko) | 메모리 시스템에서의 유효 데이터 체크 방법 및 장치 | |
KR20170105760A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10776268B2 (en) | Priority addresses for storage cache management | |
KR102649131B1 (ko) | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 | |
KR102571629B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20200110547A (ko) | 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치 | |
KR102692901B1 (ko) | 메모리 시스템에서의 비휘발성 메모리 블록 내 데이터를 삭제하는 방법 및 장치 | |
KR20200016074A (ko) | 데이터 처리 시스템 및 그의 동작 방법 | |
US11403011B1 (en) | Host memory buffer allocation management | |
US20140325168A1 (en) | Management of stored data based on corresponding attribute data | |
KR20230094943A (ko) | 저장 단편화를 정량화하고 성능 저하를 예측하기 위한 저장 시스템 및 방법 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
CN111625187B (zh) | 一种存储器及其控制方法与存储系统 | |
US20240037027A1 (en) | Method and device for storing data | |
KR20200016076A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
CN111309642A (zh) | 一种存储器及其控制方法与存储系统 | |
US11657000B2 (en) | Controller and memory system including the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |