KR20130019567A - 마이그레이션 관리자를 포함하는 메모리 시스템 - Google Patents

마이그레이션 관리자를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20130019567A
KR20130019567A KR20110081591A KR20110081591A KR20130019567A KR 20130019567 A KR20130019567 A KR 20130019567A KR 20110081591 A KR20110081591 A KR 20110081591A KR 20110081591 A KR20110081591 A KR 20110081591A KR 20130019567 A KR20130019567 A KR 20130019567A
Authority
KR
South Korea
Prior art keywords
memory
area
migration
data
mru
Prior art date
Application number
KR20110081591A
Other languages
English (en)
Other versions
KR101861170B1 (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 KR1020110081591A priority Critical patent/KR101861170B1/ko
Priority to US13/586,967 priority patent/US9158671B2/en
Publication of KR20130019567A publication Critical patent/KR20130019567A/ko
Application granted granted Critical
Publication of KR101861170B1 publication Critical patent/KR101861170B1/ko

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Abstract

본 발명에 따른 메모리 시스템은 MLC 영역과 SLC 영역을 갖는 플래시 메모리; 및 상기 SLC 영역으로부터 상기 MLC 영역으로의 마이그레이션 동작을 관리하기 위한 마이그레이션 관리자를 포함한다. 여기에서 상기 마이그레이션 관리자는 상기 SLC 영역의 사용량에 따라 상기 MLC 영역의 일부를 캐시 영역으로 사용한다. 상기 마이그레이션 관리자는 LRU 리스트에 근거하여 마이그레이션 동작을 수행하고, MRU_W 위치와 MRU_R 위치를 구분하여 상기 LRU 리스트를 관리할 수 있다.
본 발명에 의하면, 불휘발성 메모리 장치의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄이고, 메인 영역의 소거 횟수를 줄일 수 있다. 또한, 본 발명은 플래시 메모리 장치의 MLC 영역의 일부를 캐시 영역으로 할당함으로, SLC 영역의 사용량이 부족한 경우에도 마이그레이션 동작을 효율적으로 수행할 수 있다.

Description

마이그레이션 관리자를 포함하는 메모리 시스템{MEMORY SYSTEM INCLUDING MIGRATION MANAGER}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리를 기반으로 하는 메모리 시스템 및 마이그레이션 동작에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 불휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 빠른 읽기 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 포함하는 메모리 시스템은 데이터 저장 매체로 널리 사용되고 있다.
플래시 메모리를 포함하는 메모리 시스템은 파일 데이터를 효율적으로 관리하고 시스템의 성능을 향상하기 위하여, 로그 블록 또는 캐시 블록을 사용한다. 즉 메모리 시스템은 파일 데이터를 메인 영역에 저장하기 전에 캐시 영역에 저장함으로, 머지 동작(merge operation)이나 블록 소거(block erase) 횟수 등을 줄일 수 있다.
그러나 종래의 메모리 시스템은 플래시 메모리의 캐시 영역에 저장하는 파일 데이터의 사이즈가 커지면서 캐시 영역의 공간이 부족할 수 있다. 또한, 플래시 메모리의 캐시 영역과 메인 영역 간의 파일 데이터의 이동이 빈번히 일어나서 메모리 시스템의 성능이 저하될 수 있다.
본 발명의 목적은 플래시 메모리의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄일 수 있는 메모리 시스템을 제공하는 데 있다. 본 발명의 다른 목적은 불휘발성 메모리의 캐시 영역의 사용량을 확장함으로, 데이터 마이그레이션 동작을 효율적으로 운용할 수 있는 메모리 시스템을 제공하는 데 있다.
본 발명은 마이그레이션 관리자를 포함하는 메모리 시스템에 관한 것으로, 메인 영역과 캐시 영역을 갖는 불휘발성 메모리; 및 상기 캐시 영역으로부터 상기 메인 영역으로의 마이그레이션 동작을 관리하기 위한 마이그레이션 관리자를 포함하되, 상기 마이그레이션 관리자는 LRU 리스트에 근거하여 마이그레이션 동작을 수행하고, 쓰기 데이터 액세스에 대한 MRU(이하, MRU_W) 위치와 읽기 데이터 액세스에 대한 MRU(MRU_R) 위치를 구분하여 상기 LRU 리스트를 관리할 수 있다.
실시 예로서, 상기 MRU_W의 위치는 상기 MRU_R의 위치보다 MRU에 더 가깝다. 상기 메인 영역에는 멀티 비트 셀에 데이터가 저장되고, 상기 캐시 영역에는 싱글 비트 셀에 데이터가 저장될 수 있다. 상기 불휘발성 메모리는 플래시 메모리일 수 있다.
다른 실시 예로서, 상기 불휘발성 메모리는 외부로부터 입력된 데이터를 캐시 영역에 저장한 다음에, 상기 LRU 리스트에 근거하여 상기 캐시 영역에 저장된 데이터를 상기 메인 영역으로 이동한다. 상기 마이그레이션 관리자는 상기 캐시 영역의 사용량이 제 1 사이즈인 경우에 마이그레이션 동작을 시작하고, 제 2 사이즈인 경우에 마이그레이션 동작을 종료한다.
또 다른 실시 예로서, 상기 캐시 영역 및 상기 메인 영역은 하나의 메모리 칩으로 구현되거나, 서로 다른 메모리 칩으로 구현될 수 있다.
본 발명에 따른 메모리 시스템의 다른 예는 MLC 영역과 SLC 영역을 갖는 플래시 메모리; 및 상기 SLC 영역으로부터 상기 MLC 영역으로의 마이그레이션 동작을 관리하기 위한 마이그레이션 관리자를 포함하되, 상기 마이그레이션 관리자는 상기 SLC 영역의 사용량에 따라 상기 MLC 영역의 일부를 캐시 영역으로 사용한다.
실시 예로서, 상기 마이그레이션 관리자는 LRU 리스트에 근거하여 마이그레이션 동작을 수행하고, MRU_W 위치와 MRU_R 위치를 구분하여 상기 LRU 리스트를 관리할 수 있다. 상기 MRU_W의 위치는 상기 MRU_R의 위치보다 LRU에서 더 멀리 있다. 상기 플래시 메모리는 외부로부터 입력된 데이터를 상기 SLC 영역에 저장한 다음에, 상기 LRU 리스트에 근거하여 상기 SLC 영역에 저장된 데이터를 상기 MLC 영역으로 이동한다.
본 발명에 의하면, 불휘발성 메모리 장치의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄이고, 메인 영역의 소거 횟수를 줄일 수 있다. 또한, 본 발명은 플래시 메모리 장치의 MLC 영역의 일부를 캐시 영역으로 할당함으로, SLC 영역의 사용량이 부족한 경우에도 마이그레이션 동작을 성능 저하 없이 효율적으로 수행할 수 있다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 캐시 영역의 파일 데이터를 메인 영역으로 옮기는 동작을 보여준다.
도 3은 도 2에 도시된 마이그레이션 관리자(125)의 LRU 리스트 관리를 예시적으로 설명하기 위한 다이어그램이다.
도 4는 도 1에 도시된 캐시 영역의 사용 방법을 설명하기 위한 다이어그램이다.
도 5는 본 발명에 따른 메모리 시스템의 다른 실시 예를 개략적으로 보여주는 블록도이다.
도 6은 도 5에 도시된 캐시 영역의 파일 데이터를 메인 영역으로 옮기는 동작을 보여준다.
도 7은 본 발명에 따른 메모리 시스템의 또 다른 실시 예를 보여주는 블록도이다.
도 8은 본 발명에 따른 메모리 시스템의 또 다른 실시 예를 보여주는 블록도이다.
도 9 및 도 10은 도 8에 도시된 메모리 시스템의 쓰기 및 읽기 동작을 설명하기 위한 블록도이다.
도 11 및 도 12는 본 발명에 따른 메모리 시스템의 다양한 적용 예를 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 15는 도 14에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
도 17은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 18은 도 17에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 19는 도 18에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 본 발명에 따른 메모리 시스템(100)은 불휘발성 메모리 장치(NVM, 110) 및 메모리 컨트롤러(120)를 포함한다.
불휘발성 메모리 장치(110)는 메모리 컨트롤러(120)에 의해서 제어되며, 메모리 컨트롤러(120)의 요청에 대응하는 동작들(예를 들면, 읽기 또는 쓰기 동작 등)을 수행할 수 있다. 불휘발성 메모리 장치(110)는 메인 영역(111)과 캐시 영역(112)을 포함한다. 메인 영역(111)은 저속 동작을 수행하는 메모리(이하, 저속 불휘발성 메모리)로 구현되며, 캐시 영역(112)은 고속 동작을 수행하는 메모리(이하, 고속 불휘발성 메모리)로 구현될 수 있다.
고속 불휘발성 메모리는 고속 동작에 적합한 맵핑 스킴을 사용하도록 구성되며, 저속 불휘발성 메모리는 저속 동작에 적합한 맵핑 스킴을 사용하도록 구성될 수 있다. 예를 들어, 저속 불휘발성 메모리를 구성하는 메인 영역(111)은 블록 맵핑 스킴을 통해 관리되고, 고속 불휘발성 메모리를 구성하는 캐시 영역(112)은 페이지 맵핑 스킴을 통해 관리된다. 페이지 맵핑 스킴은 동작 성능(예를 들면, 쓰기 성능)의 저하를 유발하는 머지 동작을 필요로 하지 않기 때문에 캐시 영역(112)은 고속으로 동작할 수 있다. 반면에, 블록 맵핑 스킴은 동작 성능(예를 들면, 쓰기 성능)의 저하를 유발하는 머지 동작을 필요로 하기 때문에 메인 영역(111)은 상대적으로 저속으로 동작한다.
한편, 캐시 영역(112)은 셀 당 1-비트 데이터를 저장하는 단일-레벨 플래시 메모리(SLC flash memory)로 구성되고, 메인 영역(111)은 셀 당 N-비트 데이터(N은 2 또는 그보다 큰 정수)를 저장하는 멀티-레벨 플래시 메모리(MLC flash memory)로 구성될 수 있다. 또는, 메인 및 캐시 영역(111, 112) 각각은 멀티-레벨 플래시 메모리로 구성될 수 있다. 이러한 경우, 메인 영역(111)의 멀티-레벨 플래시 메모리는 단일-레벨 플래시 메모리와 같이 동작하도록 LSB 프로그램 동작만을 수행할 것이다. 한편, 메인 및 캐시 영역(111, 112) 각각은 단일-레벨 플래시 메모리로 구성될 수 있다. 메인 영역(111)과 캐시 영역(112)은 하나의 메모리 장치로 구현되거나, 별도의 메모리 장치로 구현될 수도 있다.
메모리 컨트롤러(120)는 외부(예를 들면, 호스트)의 요청에 응답하여 불휘발성 메모리 장치(110)에 대한 읽기 및 쓰기 동작들을 제어한다. 메모리 컨트롤러(120)는 호스트 인터페이스(121), 메모리 인터페이스(122), 제어 유닛(control unit, 123), 램(RAM, 124), 그리고 마이그레이션 관리자(migration manager, 125)를 포함한다.
호스트 인터페이스(121)는 외부(예를 들면, 호스트)와의 인터페이스를 제공한다. 메모리 인터페이스(122)는 불휘발성 메모리 장치(110)와의 인터페이스를 제공한다. 호스트 인터페이스(121)는 하나 또는 그보다 많은 채널들(또는, 포트들) (도시되지 않음)을 통해 호스트(도시되지 않음)와 연결될 수 있다.
예를 들면, 호스트 인터페이스(121)는 두 개의 채널들 즉, 병렬 ATA 버스 (parallel AT attachment bus, "PATA 버스"라 불림)와 직렬 ATA 버스 (serial AT attachment, "SATA 버스"라 불림) 중 어느 하나를 통해 호스트와 연결될 수 있다. 또는, 호스트 인터페이스(121)는 PATA 버스 및 SATA 버스를 통해 외부와 연결될 수 있다. 또는, 호스트 인터페이스(121)는 SCSI, USB 등을 통해 외부와 연결될 수도 있다.
제어 유닛(123)은 불휘발성 메모리 장치(110)에 대한 전반적인 동작(예를 들면, 읽기, 쓰기, 파일 시스템 관리 등)을 제어할 수 있다. 예를 들면, 비록 도면에는 도시되지 않았지만, 제어 유닛(123)은 중앙처리장치(CPU), 프로세서(processor), 에스램, DMA 제어기, ECC 엔진 등을 포함할 수 있다. 예시적인 제어 유닛(123)은 미국공개특허 제2006-0152981호에 "Solid State Disk Controller Apparatus"라는 제목으로 게재되어 있으며, 이 출원의 레퍼런스로서 포함된다.
램(124)은 제어 유닛(123)의 제어에 따라 동작하며, 워크 메모리(work memory), 버퍼 메모리(buffer memory), 캐시 메모리(cache memory) 등으로 사용될 수 있다. 램(124)은 하나의 칩으로 또는 불휘발성 메모리 장치(110)의 각 영역에 대응하는 복수의 칩들로 구성될 수 있다.
램(124)이 워크 메모리로 사용되는 경우에, 제어 유닛(123)에 의해서 처리되는 데이터가 임시 저장된다. 램(124)이 버퍼 메모리로 사용되는 경우에는, 호스트에서 불휘발성 메모리 장치(110)로 또는 불휘발성 메모리 장치(110)에서 호스트로 전송될 데이터를 버퍼링하는 데 사용된다. 램(124)이 캐시 메모리로 사용되는 경우(이하, 캐시 스킴이라 함)에, 램(124)은 저속의 불휘발성 메모리 장치(110)가 고속으로 동작하도록 한다. 캐시 스킴에 의하면, 캐시 메모리(램, 124)에 저장된 파일 데이터가 불휘발성 메모리 장치(110)의 캐시 영역(112)으로 덤프(dump) 된다. 제어 유닛(123)은 덤프(dump) 동작에 따른 맵핑 테이블(mapping table)을 관리한다.
램(124)은 불휘발성 메모리 장치(110)가 플래시 메모리인 경우에 플래시 변환 계층(FTL)을 구동하기 위한 구동 메모리로 사용될 수 있다. 플래시 변환 계층(FTL)은 플래시 메모리의 머지 동작(merge operation)이나 맵핑 테이블(mapping table) 등을 관리하는 데 사용된다.
한편, 호스트(도시되지 않음)는 쓰기(write), 읽기(read) 이외에 플러시 캐시(flush cache)와 같은 커맨드를 메모리 시스템(100)으로 제공한다. 메모리 시스템(100)은 플러시 캐시 커맨드를 입력받을 때, 데이터 일관성(data consistency)을 유지하기 위해, 캐시 메모리(124)에 저장되어 있는 파일 데이터를 불휘발성 메모리 장치(110)의 캐시 영역(112)에 저장하게 된다. 이러한 일련의 동작을 플러시 동작(flush operation)이라고 한다. 제어 유닛(123)은 플러시 동작 시에 캐시 메모리(124)의 파일 데이터를 불휘발성 메모리 장치(110)의 캐시 영역(112)으로 덤프(dump) 하는 동작을 관리할 수 있다.
마이그레이션 관리자(125)는 불휘발성 메모리 장치(110)의 캐시 영역(112)에 저장된 데이터를 메인 영역(111)으로 옮기는 동작(이하, 마이그레이션 동작)을 관리한다. 여기에서, 캐시 영역(112)에 저장된 데이터는 플러시 동작에 의해 램(124)에서 덤프된 데이터일 수 있고, 호스트의 쓰기 요청에 의해 외부로부터 제공된 데이터일 수도 있다. 마이그레이션 관리자(125)의 동작 원리는 도 2 및 도 3을 참조하여 상세하게 설명될 것이다.
도 2는 도 1에 도시된 마이그레이션 관리자의 동작 원리를 설명하기 위한 다이어그램이다. 도 2에서는 예시적으로 마이그레이션 관리자(125)의 LRU 리스트에 따라, 캐시 영역(112)에 저장된 파일 데이터(예를 들면, A.jpg~E.jpg)를 메인 영역(111)으로 옮기는 동작을 보여준다. 마이그레이션 동작에 의해, 파일 데이터는 메인 영역(111)의 물리적 주소에 저장된다. 마이그레이션 관리자(125)의 LRU 리스트 관리는 도 3을 참조하여 상세히 설명될 것이다.
도 2를 참조하면, 메인 영역(111) 또는 캐시 영역(112)은 복수의 메모리 블록으로 구성되고, 각각의 메모리 블록은 복수의 페이지로 구성될 수 있다. 도 2의 예에서, 파일 데이터(A.jpg~E.jpg)는 하나 또는 그 이상의 페이지에 저장되거나, 하나 또는 그 이상의 메모리 블록에 저장될 수 있다. 여기에서, 각각의 메모리 블록은 소거 단위이고, 각각의 페이지는 읽기나 쓰기 단위일 수 있다.
한편, 캐시 영역(112)에서 메인 영역(111)으로 데이터를 옮기는 동작은 다양한 방식들을 통해 수행될 수 있다. 예를 들면, 마이그레이션 동작은 캐시 영역(112)의 여유 공간이 미리 설정된 공간(예를 들면, 30%) 이하인 지의 여부에 따라 개시될 수 있다. 다른 예로, 마이그레이션 동작은 정해진 시간마다 주기적으로 개시될 수도 있다. 또 다른 예로, 마이그레이션 동작은 불휘발성 메모리 장치(110)의 유휴 시간(idle time)을 감지함으로써 개시될 수도 있다.
도 2에서는 LRU 리스트에 따라서, 가장 오래전에 저장된 파일 데이터(A.jpg)가 캐시 영역(112)에서 메인 영역(111)으로 옮겨지는 동작을 보여준다. 여기에서, 파일 데이터(A.jpg)의 마이그레이션 동작은 캐시 영역(112)에 채워진 파일 데이터의 사용량이 제 1 사이즈(예를 들면, 70%)인 경우에 시작하고 제 2 사이즈(예를 들면, 30%)인 경우에 종료할 수 있다.
도 3은 도 2에 도시된 마이그레이션 관리자(125)의 LRU 리스트 관리를 예시적으로 설명하기 위한 다이어그램이다. LRU 리스트(Least Recently Used List)란 최근에 가장 적게 사용한 메모리 공간을 가장 먼저 사용하도록 하기 위한 메모리 관리 리스트이다. 가장 오래된 파일 데이터는 LRU 리스트 상에서 LRU에 위치하고, 가장 최근에 액세스된 파일 데이터는 헤더 부분, 즉 MRU(Most Recently Used)에 위치한다.
본 발명에서, 가장 최근에 쓰인 파일 데이터는 MRU_W에 위치하고, 가장 최근에 읽은 파일 데이터는 MRU_R에 위치한다. 일반적으로 데이터 파일의 액세스 패턴을 분석해보면, 쓰기보다 읽기가 많고, 한 번 읽은 데이터는 다시 읽는 경우가 많으며, 그 데이터는 짧은 시간 내에 없어질 가능성이 크다. 그리고 읽은 지 오래된 데이터일수록 다시 읽을 가능성이 작다. 또한, 플래시 메모리는 그 특성상 읽기보다 쓰기 소모 전력이 크다. 따라서 자주 쓰는 데이터는 좀 더 좋은 내구성을 갖는 캐시 영역에 저장하는 것이 유리하다. 이런 이유로 인해, 본 발명에서는 읽기 데이터의 MRU 위치(MRU_R)와 쓰기 데이터의 MRU 위치(MRU_W)를 구분하여 사용한다.
일반적으로 데이터 읽기 또는 쓰기 빈도가 높은 데이터를 핫 데이터(hot data)라 하고, 상대적으로 읽기 또는 쓰기 빈도가 낮은 데이터를 콜드 데이터(cold data)라고 한다. 파일 데이터가 MRU 쪽에 있으면 핫 데이터이고, LRU 쪽에 있으면 콜드 데이터이다. 본 발명은 캐시 영역(112)에 모든 데이터를 저장한 다음에, LRU 리스트에 근거하여 콜드 데이터(cold data)를 메인 영역(111)으로 이동한다.
도 3에서, A 내지 E 파일 데이터가 순서대로 캐시 영역(도 2 참조, 112)에 저장되었다고 가정한다. (1) 단계에서, A 파일 데이터에 대한 쓰기 동작이 수행되면, 새로운 A' 파일 데이터는 MRU_W에 위치하고, 나머지 파일 데이터(B~E)는 LRU 쪽으로 이동한다. (2) 단계에서, C 파일 데이터에 대한 쓰기 동작이 수행되면, 새로운 C' 파일 데이터는 MRU_W에 위치하고, 나머지 파일 데이터(D, E, A')는 LRU 쪽으로 이동한다.
(3) 단계에서, B 파일 데이터에 대한 읽기 동작이 수행되면, B 파일 데이터는 MRU_R에 위치한다. 이때 MRU_W 쪽에 위치한 파일 데이터(A', C')는 위치를 변경하지 않고, 파일 데이터(D, E)는 LRU 쪽으로 이동한다. (4) 단계에서, E 파일 데이터에 대한 읽기 동작이 수행되면, E 파일 데이터는 MRU_R에 위치한다. 이때 MRU_W 쪽에 위치한 파일 데이터(A', C')는 위치를 변경하지 않고, 파일 데이터(B)는 LRU 쪽으로 이동한다.
도 4는 도 1에 도시된 캐시 영역의 사용 방법을 설명하기 위한 다이어그램이다. 도 4에서는, 마이그레이션 동작의 시작과 종료 시점을 보여준다.
도 4를 참조하면, 마이그레이션 동작은 캐시 영역(112)에 저장된 파일 데이터의 크기가 M_Max 이상이면 시작하고, M_Min 이하이면 종료될 수 있다. M_Max와 M_Min은 사용자에 의해 조절될 수 있다. 예를 들면, 마이그레이션 관리자(도 2 참조, 125)는 캐시 영역(112)의 사용량, 즉 파일 데이터의 사이즈가 캐시 영역의 70% 이상이면 마이그레이션 동작을 시작하고, 30% 이하이면 종료할 수 있다. 또한, 파일 데이터의 사이즈가 M_Min 이상이 되면, 마이그레이션 관리자(125)는 주기적으로 마이그레이션 시작 여부를 검사할 수 있다.
계속해서 도 4를 참조하면, 마이그레이션 관리자(125)는 MRU_R 사이즈를 관리할 수 있다. 이 경우에는 마이그레이션 동작은 MRU_R size에서 종료할 수 있다. M_Min은 쓰기 핫 데이터(write hot data)를 보호하기 위한 것이고, MRU_R size는 읽기 핫 데이터(read hot data)를 보호하기 위한 것이다.
본 발명에 따른 메모리 시스템(도 1 참조, 100)은 핫 데이터와 콜드 데이터를 구분하여, 콜드 데이터를 캐시 영역(112)에서 메인 영역(111)으로 옮긴다. 또한, 본 발명은 쓰기 액세스 빈도가 높은 데이터가 읽기 액세스 빈도가 높은 데이터보다 캐시 영역(112)에 오래 있도록 LRU 리스트를 관리한다. 본 발명에 의하면, 캐시 영역(112)과 메인 영역(111) 간의 파일 데이터의 이동(migration)을 줄이고, 메인 영역(111)의 소거 횟수를 줄일 수 있다.
도 5는 본 발명에 따른 메모리 시스템의 다른 실시 예를 개략적으로 보여주는 블록도이다. 도 5를 참조하면, 본 발명에 따른 메모리 시스템(200)은 플래시 메모리 장치(210) 및 메모리 컨트롤러(220)를 포함한다.
플래시 메모리 장치(210)는 MLC 영역(211)과 SLC 영역(212)을 포함한다. 여기에서, MLC 영역(211)과 SLC 영역(212)은 하나의 메모리 장치로 구현되거나, 별도의 메모리 장치로 구현될 수도 있다. MLC 영역(211)은 저속 동작에 적합한 블록 맵핑 스킴이 적용되고, SLC 영역(212)은 고속 동작에 적합한 페이지 맵핑 스킴이 적용될 수 있다.
메모리 컨트롤러(220)는 호스트(도시되지 않음)의 요청에 응답하여 플래시 메모리 장치(210)에 대한 읽기 또는 쓰기 동작 등을 제어한다. 메모리 컨트롤러(220)는 호스트 인터페이스(221), 플래시 인터페이스(222), 제어 유닛(control unit, 223), 램(RAM, 224), 그리고 마이그레이션 관리자(225)를 포함한다.
호스트 인터페이스(221)는 호스트와의 인터페이스를 제공하고, 플래시 인터페이스(222)는 플래시 메모리 장치(210)와의 인터페이스를 제공한다. 제어 유닛(223)은 플래시 메모리 장치(210)에 대한 제반 동작(예를 들면, 읽기, 소거, 프로그램, 파일 시스템 관리 등)을 제어한다. 램(224)은 제어 유닛(223)의 제어에 따라 동작하며, 플래시 변환 계층(FTL), 워크 메모리(work memory), 버퍼 메모리(buffer memory), 캐시 메모리(cache memory) 등으로 사용될 수 있다. 마이그레이션 관리자(225)는 플래시 메모리 장치(210)의 마이그레이션 동작을 관리한다. 즉, 마이그레이션 관리자(225)는 캐시 영역에 저장된 데이터를 메인 영역으로 옮기는 동작을 관리한다.
도 5를 참조하면, 플래시 메모리 장치(210)의 캐시 영역(213)은 SLC 영역(212)과 MLC 영역(211)의 일부를 포함할 수 있다. 즉, 마이그레이션 관리자(225)는 SLC 영역(212)에 저장된 파일 데이터의 크기가 M_Max(도 4 참조)보다 큰 경우에, MLC 영역(211)의 일부를 할당받아 캐시 영역(이하, MLC 캐시 영역이라 함)으로 사용할 수 있다. MLC 캐시 영역의 파일 데이터가 MLC 메인 영역으로 이동하면, MLC 캐시 영역은 다시 메인 영역으로 될 수 있다. 예를 들면, MLC 캐시 영역에 할당된 파일 데이터는 유휴 시간(idle time) 동안에 MLC 메인 영역으로 이동될 수 있다.
도 6은 도 5에 도시된 캐시 영역의 파일 데이터를 메인 영역으로 옮기는 동작을 보여준다. 본 발명에 따른 메모리 시스템(200)은 마이그레이션 관리자(225)의 LRU 리스트에 따라, SLC 영역(212)에 저장된 파일 데이터(예를 들면, A.jpg~E.jpg)를 MLC 영역(211)으로 옮길 수 있다.
SLC 영역(212)에 여유 공간이 없는 경우에, 마이그레이션 관리자(225)는 MLC 영역(211)의 일부를 캐시 영역(213)으로 할당한 다음에, 파일 데이터(F.jpg)를 저장할 수 있다. MLC 캐시 영역에 할당된 파일 데이터(F.jpg)는 다양한 방식에 의해 MLC 메인 영역으로 이동될 수 있다. 예를 들면, MLC 캐시 영역에 할당된 파일 데이터(F.jpg)는 SLC 캐시 영역에 할당된 파일 데이터(A.jpg ~ E.jpg)보다 우선적으로 이동되거나, 유휴 시간(idle time) 동안에 이동될 수 있다.
다시 도 5를 참조하면, 본 발명에 따른 메모리 시스템(200)은 MLC 영역(211)의 일부를 캐시 영역으로 할당함으로, SLC 영역(212)의 사용량이 부족한 경우에도 마이그레이션 동작을 효율적으로 수행할 수 있다.
도 7은 본 발명에 따른 메모리 시스템의 또 다른 실시 예를 보여주는 블록도이다. 도 7을 참조하면, 메모리 시스템(300)은 제 1 및 제 2 메모리 칩(310, 320), 그리고 마이그레이션 관리자(325)를 포함한다.
제 1 메모리 칩(310)은 제 1 플래시 변환 계층(311)과 캐시 영역(312)을 포함하고, 제 2 메모리 칩(310)은 제 2 플래시 변환 계층(321)과 메인 영역(322)을 포함한다. 여기에서, 캐시 영역(312)은 SLC 플래시 메모리일 수 있고, 메인 영역(322)은 MLC 플래시 메모리일 수 있다.
제 1 및 제 2 플래시 변환 계층(311, 321) 각각은 캐시 영역(312) 및 메인 영역(322)에 저장된 데이터의 맵핑 동작 등을 관리하기 위한 소프트웨어이다. 예를 들면, 제 1 플래시 변환 계층(311)은 페이지 맵핑 동작을 이용하고, 제 2 플래시 변환 계층(321)은 블록 맵핑 동작을 이용할 수 있다.
마이그레이션 관리자(325)는 제 1 메모리 칩(310)의 캐시 영역(312)에 저장된 파일 데이터를 제 2 메모리 칩(320)의 메인 영역(322)으로 옮기는 동작을 관리할 수 있다. 본 발명에 다른 메모리 시스템(300)은 서로 다른 칩 사이에서도 마이그레이션 동작을 수행할 수 있다. 도 7에 도시된 메모리 시스템(300)의 마이그레이션 동작은 도 1 내지 도 6에서 설명한 동작을 모두 포함할 수 있다.
도 8은 본 발명에 따른 메모리 시스템의 또 다른 실시 예를 보여주는 블록도이다. 도 8을 참조하면, 메모리 시스템(400)은 메모리 칩(410) 및 마이그레이션 관리자(425)를 포함한다.
메모리 칩(410)은 제 1 플래시 변환 계층(411), SLC 영역(412), 제 2 플래시 변환 계층(421), 그리고 MLC 영역(422)을 포함한다. 제 1 및 제 2 플래시 변환 계층(411, 421) 각각은 SLC 영역(412) 및 MLC 영역(422)에 저장된 데이터의 맵핑 동작 등을 관리한다. 한편, 본 발명에 따른 메모리 시스템(400)은 MLC 영역(422)의 일부를 캐시 영역(425)으로 사용할 수 있다. 즉, SLC 영역(412)의 여유 공간이 부족한 경우에, MLC 영역(422)의 일부를 캐시 영역(425)으로 할당받아 사용할 수 있다.
마이그레이션 관리자(425)는 SLC 영역(412) 또는 캐시 영역(425)에 저장된 파일 데이터를 MLC 영역(422) 또는 메인 영역(MLC 영역의 나머지 부분)으로 옮기는 동작을 관리할 수 있다. 본 발명에 다른 메모리 시스템(400)은 동일 메모리 칩 내에서 마이그레이션 동작을 수행할 수 있다. 도 8에 도시된 메모리 시스템(400)의 마이그레이션 동작은 도 5 및 도 6에서 설명한 동작을 모두 포함할 수 있다.
도 9 및 도 10은 도 7 또는 도 8에 도시된 메모리 시스템의 쓰기 및 읽기 동작을 설명하기 위한 블록도이다. 도 9를 참조하면, 데이터는 마이그레이션 관리자(425)의 데이터 관리 방법에 따라, SLC 영역(412)에 모두 저장된다. 제 1 플래시 변화 계층(411)은 SLC 영역(412)에 저장된 데이터의 맵핑 테이블을 관리한다. 마이그레이션 관리자(425)는 LRU 리스트에 따라, 콜드 데이터(cold data)를 MLC 영역(422)으로 이동하도록 한다. 제 2 플래시 변환 계층(421)은 MLC 영역(422)에 저장된 데이터의 맵핑 테이블을 관리한다.
도 10을 참조하면, 호스트(도시되지 않음)의 읽기 요청에 응답하여, 마이그레이션 관리자(425)는 데이터가 SLC 영역(412)에 저장되어 있는지를 판단한다. SLC 영역(412)에 저장되어 있으면 제 1 플래시 변환 계층(411)의 맵핑 테이블을 참조하여 SLC 데이터를 읽는다. 만약, SLC 영역(412)에 저장되어 있지 않으면, 마이그레이션 관리자(425)는 읽기 명령을 MLC 영역(422) 쪽으로 바이패스하고, 제 2 플래시 변환 계층(421)의 맵핑 테이블을 참조하여 MLC 데이터를 읽는다.
본 발명의 실시 예에 따른 메모리 시스템은 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 메모리 시스템은 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PSP, PDA 등과 같은 전자 장치들뿐만 아니라, 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD라 함) 등과 같은 저장 장치로 구현될 수 있다.
도 11 및 도 12는 본 발명에 따른 메모리 시스템의 다양한 적용 예를 보여주는 블록도이다. 도 11 및 도 12를 참조하면, 메모리 시스템(1000, 2000)은 저장 장치(1100, 2100) 및 호스트(1200, 2200)를 포함한다. 저장 장치(1100, 2100)는 플래시 메모리(1110, 2110) 및 메모리 컨트롤러(1120, 2120)를 포함한다.
저장 장치(1100, 2100)는 메모리 카드(예를 들면, SD, MMC 등)나 착탈 가능한 이동식 저장 장치(예를 들면, USB 메모리 등)와 같은 저장 매체를 포함한다. 저장 장치(1100, 2100)는 호스트(1200, 2200)와 연결되어 사용될 수 있다. 저장 장치(1100, 2100)는 호스트 인터페이스를 통해 호스트와 데이터를 주고 받는다. 저장 장치(1100, 2100)는 호스트(1200, 2200)로부터 전원을 공급받아서 내부 동작을 수행할 수 있다.
도 11을 참조하면, 마이그레이션 관리자(1101)는 플래시 메모리(1110) 내에 포함될 수 있다. 도 12를 참조하면, 마이그레이션 관리자(2201)는 호스트(2200) 내에 포함될 수 있다. 본 발명의 실시 예에 따른 메모리 시스템(1000, 2000)은 마이그레이션 관리자를 이용하여, 불휘발성 메모리 장치의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄이고, 메인 영역의 소거 횟수를 줄일 수 있다. 또한, 본 발명은 플래시 메모리 장치의 MLC 영역의 일부를 캐시 영역으로 할당함으로, SLC 영역의 사용량이 부족한 경우에도 마이그레이션 동작을 효율적으로 수행할 수 있다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3200)를 포함한다. 호스트(3100)는 호스트 컨트롤러(3110), 호스트 접속 유닛(3120), 그리고 디램(3130)을 포함한다.
호스트(3100)는 메모리 카드(3200)에 데이터를 쓰거나, 메모리 카드(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(3100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(3120)을 통해 메모리 카드(3200)로 전송한다. 디램(3130)은 호스트(3100)의 메인 메모리이다.
메모리 카드(3200)는 카드 접속 유닛(3210), 카드 컨트롤러(3220), 그리고 플래시 메모리(3230)를 포함한다. 카드 컨트롤러(3220)는 카드 접속 유닛(3210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(3220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(3230)에 저장한다. 플래시 메모리(3230)는 호스트(3100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(3100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 13에 도시된 메모리 카드 시스템(3000)은 호스트 컨트롤러(3110), 카드 컨트롤러(3220), 또는 플래시 메모리(3230) 내에 마이그레이션 관리자(도시되지 않음)를 포함할 수 있다. 앞에서 설명한 바와 같이, 본 발명은 플래시 메모리(3230)의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄이고, 메인 영역의 소거 횟수를 줄일 수 있다. 또한, 본 발명은 플래시 메모리(3230)의 MLC 영역의 일부를 캐시 영역으로 할당함으로, SLC 영역의 사용량이 부족한 경우에도 마이그레이션 동작을 효율적으로 수행할 수 있다.
도 14는 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 14를 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다. 호스트(4100)는 호스트 인터페이스(4111), 호스트 컨트롤러(4120), 그리고 디램(4130)을 포함한다.
호스트(4100)는 SSD(4200)에 데이터를 쓰거나, SSD(4200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(4120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(4111)를 통해 SSD(4200)로 전송한다. 디램(4130)은 호스트(4100)의 메인 메모리이다.
SSD(4200)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 불휘발성 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(4201~420n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(4210)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 15를 참조하여 상세하게 설명된다.
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
도 15는 도 14에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 15를 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), 마이그레이션 관리자(4213), 제어 유닛(4214), 그리고 에스램(4215)을 포함한다.
NVM 인터페이스(4211)는 호스트(4100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 불휘발성 메모리(4201~420n)로부터 읽은 데이터를 호스트 인터페이스(4212)를 경유하여 호스트(4100)로 전달한다.
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
마이그레이션 관리자(4213)는 앞에서 설명한 바와 같이 불휘발성 메모리(4201~420n)의 마이그레이션 동작을 관리할 수 있다. 제어 유닛(4214)은 호스트(4100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(4214)은 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 불휘발성 메모리(4201~420n)를 제어한다. 제어 유닛(4214)은 SSD(4200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(4201~420n)의 동작을 제어한다.
에스램(4215)은 불휘발성 메모리(4201~420n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(4215)은 호스트(4100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(4215)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(4220)를 이용하여 불휘발성 메모리(4201~420n)에 저장될 수 있다.
다시 도 14를 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(4000)은 앞에서 설명한 바와 같이, 복수의 불휘발성 메모리(4201~420n)의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄이고, 메인 영역의 소거 횟수를 줄일 수 있다. 또한, 본 발명은 복수의 불휘발성 메모리(4201~420n)의 MLC 영역의 일부를 캐시 영역으로 할당함으로, SLC 영역의 사용량이 부족한 경우에도 마이그레이션 동작을 효율적으로 수행할 수 있다.
도 16은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 16을 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 디램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다. 메모리 시스템(5100)은 전자 장치(5000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(5000)는 플래시 메모리(5110)의 캐시 영역과 메인 영역 간의 파일 데이터의 이동을 줄이고, 메인 영역의 소거 횟수를 줄일 수 있다. 또한, 본 발명은 플래시 메모리(5110)의 MLC 영역의 일부를 캐시 영역으로 할당함으로, SLC 영역의 사용량이 부족한 경우에도 마이그레이션 동작을 효율적으로 수행할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 2차원 구조를 갖는 플래시 메모리 뿐만 아니라, 3차원 구조를 갖는 플래시 메모리에도 적용될 수 있다. 도 17은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다. 도 17을 참조하면, 플래시 메모리(6000)는 3차원 셀 어레이(6110), 데이터 입출력 회로(6120), 어드레스 디코더(6130), 그리고 제어 로직(6140)을 포함한다.
3차원 셀 어레이(6110)는 복수의 메모리 블록(BLK1~BLKz)을 포함한다. 각각의 메모리 블록은 3차원 구조 (또는 수직 구조)를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다. 각각의 메모리 블록은 플래시 메모리(6100)의 소거 단위를 이룬다.
데이터 입출력 회로(6120)는 복수의 비트 라인(BLs)을 통해 3차원 셀 어레이(6110)와 연결된다. 데이터 입출력 회로(6120)는 외부로부터 데이터(DATA)를 입력받거나, 3차원 셀 어레이(6110)로부터 읽은 데이터(DATA)를 외부로 출력한다. 어드레스 디코더(6130)는 복수의 워드 라인(WLs) 및 선택 라인(GSL, SSL)을 통해 3차원 셀 어레이(6110)와 연결된다. 어드레스 디코더(6130)는 어드레스(ADDR)를 입력받고 워드 라인을 선택한다.
제어 로직(6140)은 플래시 메모리(6000)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(6140)은 프로그램 동작 시에, 어드레스 디코더(6130)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(6120)를 제어함으로 데이터가 프로그램되도록 할 수 있다.
도 18은 도 17에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다. 도 18을 참조하면, 메모리 블록(BLK1)은 기판(SUB)과 수직 방향으로 형성되어 있다. 기판(SUB)에는 n+ 도핑 영역이 형성된다. 기판(SUB) 위에는 게이트 전극막(gate electrode layer)과 절연막(insulation layer)이 교대로 증착된다. 그리고 게이트 전극막(gate electrode layer)과 절연막(insulation layer) 사이에는 전하 저장막(charge storage layer)이 형성될 수 있다.
게이트 전극막과 절연막을 수직 방향으로 패터닝(vertical patterning)하면, V자 모양의 필라(pillar)가 형성된다. 필라는 게이트 전극막과 절연막을 관통하여 기판(SUB)과 연결된다. 필라(Pillar)의 외곽 부분(O)은 채널 반도체로 구성될 수 있고, 내부(I)는 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 18을 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1~WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트 라인(BL1~BL3)과 연결될 수 있다. 도 18에서는, 하나의 메모리 블록(BLK1)이 2개의 선택 라인(GSL, SSL), 8개의 워드 라인(WL1~WL8), 그리고 3개의 비트 라인(BL1~BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
도 19는 도 18에 도시된 메모리 블록(BLK1)의 등가 회로도이다. 도 19를 참조하면, 비트 라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에는 낸드 스트링(NS11~NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀(MC1~MC8), 그리고 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL1~SSL3)에 연결되어 있다. 복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL1~GSL3)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결되어 있다.
계속해서 도 19를 참조하면, 동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되어 있고, 접지 선택 라인(GSL1~GSL3) 및 스트링 선택 라인(SSL1~SSL3)은 분리되어 있다. 제 1 워드 라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀(이하, 페이지라 함)을 프로그램하는 경우에는, 제 1 워드 라인(WL1)과 제 1 선택 라인(SSL1, GSL1)이 선택된다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100, 200, 300, 400: 메모리 시스템
110: 불휘발성 메모리 111: 메인 영역
112: 캐시 영역 120: 메모리 컨트롤러
121: 호스트 인터페이스 122: 메모리 인터페이스
123: 제어 유닛 124: 램
125:: 마이그레이션 관리자 210: 플래시 메모리
211:: MLC 영역 212: SLC 영역
213: 캐시 영역 220: 메모리 컨트롤러
221: 호스트 인터페이스 222: 플래시 인터페이스
223: 제어 유닛 224: 램
225:: 마이그레이션 관리자

Claims (10)

  1. 메인 영역과 캐시 영역을 갖는 불휘발성 메모리; 및
    상기 캐시 영역으로부터 상기 메인 영역으로의 마이그레이션 동작을 관리하기 위한 마이그레이션 관리자를 포함하되,
    상기 마이그레이션 관리자는 LRU 리스트에 근거하여 마이그레이션 동작을 수행하고, 쓰기 데이터 액세스에 대한 MRU(이하, MRU_W) 위치와 읽기 데이터 액세스에 대한 MRU(MRU_R) 위치를 구분하여 상기 LRU 리스트를 관리하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 MRU_W의 위치는 상기 MRU_R의 위치보다 MRU에 더 가까운 것을 특징으로 하는 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 메인 영역에는 멀티 비트 셀에 데이터가 저장되고, 상기 캐시 영역에는 싱글 비트 셀에 데이터가 저장되는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 불휘발성 메모리는 외부로부터 입력된 데이터를 캐시 영역에 저장한 다음에, 상기 LRU 리스트에 근거하여 상기 캐시 영역에 저장된 데이터를 상기 메인 영역으로 이동하는 메모리 시스템.
  5. 제 1 항에 있어서,
    상기 마이그레이션 관리자는 상기 캐시 영역의 사용량이 제 1 사이즈인 경우에 마이그레이션 동작을 시작하고, 제 2 사이즈인 경우에 마이그레이션 동작을 종료하는 메모리 시스템.
  6. MLC 영역과 SLC 영역을 갖는 플래시 메모리; 및
    상기 SLC 영역으로부터 상기 MLC 영역으로의 마이그레이션 동작을 관리하기 위한 마이그레이션 관리자를 포함하되,
    상기 마이그레이션 관리자는 상기 SLC 영역의 사용량에 따라 상기 MLC 영역의 일부를 캐시 영역으로 사용하는 메모리 시스템.
  7. 제 6 항에 있어서,
    상기 마이그레이션 관리자는 LRU 리스트에 근거하여 마이그레이션 동작을 수행하고, MRU_W 위치와 MRU_R 위치를 구분하여 상기 LRU 리스트를 관리하는 메모리 시스템.
  8. 제 7 항에 있어서,
    상기 MRU_W의 위치는 상기 MRU_R의 위치보다 LRU에서 더 멀리 있는 것을 특징으로 하는 메모리 시스템.
  9. 제 7 항에 있어서,
    상기 플래시 메모리는 외부로부터 입력된 데이터를 상기 SLC 영역에 저장한 다음에, 상기 LRU 리스트에 근거하여 상기 SLC 영역에 저장된 데이터를 상기 MLC 영역으로 이동하는 메모리 시스템.
  10. 제 6 항에 있어서,
    상기 마이그레이션 관리자는 상기 SLC 영역의 사용량이 제 1 사이즈인 경우에 마이그레이션 동작을 시작하고, 제 2 사이즈인 경우에 마이그레이션 동작을 종료하는 메모리 시스템.
KR1020110081591A 2011-08-17 2011-08-17 마이그레이션 관리자를 포함하는 메모리 시스템 KR101861170B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110081591A KR101861170B1 (ko) 2011-08-17 2011-08-17 마이그레이션 관리자를 포함하는 메모리 시스템
US13/586,967 US9158671B2 (en) 2011-08-17 2012-08-16 Nonvolatile memory system with migration manager

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110081591A KR101861170B1 (ko) 2011-08-17 2011-08-17 마이그레이션 관리자를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20130019567A true KR20130019567A (ko) 2013-02-27
KR101861170B1 KR101861170B1 (ko) 2018-05-25

Family

ID=47713483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110081591A KR101861170B1 (ko) 2011-08-17 2011-08-17 마이그레이션 관리자를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US9158671B2 (ko)
KR (1) KR101861170B1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130127207A (ko) * 2012-05-14 2013-11-22 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
WO2015102213A1 (ko) * 2013-12-30 2015-07-09 주식회사 시큐아이 멀티 스레드 기반 세션 관리 방법
KR20150103532A (ko) * 2014-03-03 2015-09-11 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
KR20150118650A (ko) * 2014-04-14 2015-10-23 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR20170019557A (ko) * 2015-08-11 2017-02-22 삼성전자주식회사 불휘발성 메모리 장치, 버퍼 메모리 및 컨트롤러를 포함하는 스토리지 장치를 포함하는 컴퓨팅 장치의 동작 방법
KR20170024222A (ko) * 2015-08-24 2017-03-07 삼성전자주식회사 표면 실장 기술의 적용에 따른 메모리 셀의 문턱 전압 산포 변화 복구 기능을 갖는 데이터 스토리지 및 그것의 동작 방법
US10073628B2 (en) 2015-12-23 2018-09-11 SK Hynix Inc. Memory system and operating method of memory system
KR102117531B1 (ko) 2019-11-07 2020-06-10 한국기계연구원 연소진동 저감을 위한 음향 감쇠 구조를 갖는 가스터빈 연소기용 버너
US10747469B2 (en) 2017-07-17 2020-08-18 SK Hynix Inc. Memory system and operating method of the same
KR102379124B1 (ko) 2020-10-15 2022-03-28 한국기계연구원 연소진동 저감 구조를 갖는 가스터빈 연소기용 버너 및 이를 구비한 가스터빈 연소기

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
KR20130046700A (ko) * 2011-10-28 2013-05-08 삼성전자주식회사 3차원적으로 배열된 메모리 요소들을 구비하는 반도체 장치
US8990524B2 (en) * 2012-09-27 2015-03-24 Hewlett-Packard Development Company, Lp. Management of data elements of subgroups
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
KR102039537B1 (ko) * 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
US10007428B2 (en) * 2013-08-16 2018-06-26 Micron Technology, Inc. Data storage management
US9298389B2 (en) 2013-10-28 2016-03-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Operating a memory management controller
CN104657286B (zh) * 2013-11-19 2019-05-10 中兴通讯股份有限公司 一种分级存储方法及装置
US8874835B1 (en) * 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
WO2015116080A1 (en) 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Migrating data between memories
JP5983665B2 (ja) * 2014-03-17 2016-09-06 日本電気株式会社 アクセス回数カウント装置、メモリシステム、および、アクセス回数カウント方法
KR102308777B1 (ko) 2014-06-02 2021-10-05 삼성전자주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
US9507711B1 (en) * 2015-05-22 2016-11-29 Sandisk Technologies Llc Hierarchical FTL mapping optimized for workload
JP5992592B1 (ja) * 2015-09-16 2016-09-14 株式会社東芝 キャッシュメモリシステム
US10705952B2 (en) 2015-11-04 2020-07-07 Sandisk Technologies Llc User space data storage management
US9965398B2 (en) 2016-01-12 2018-05-08 Samsung Electronics Co., Ltd. Method and apparatus for simplified nameless writes using a virtual address table
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
KR102550343B1 (ko) 2016-07-27 2023-07-03 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US10572388B2 (en) 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
CN112835817A (zh) * 2017-09-05 2021-05-25 华为技术有限公司 数据迁移的方法及系统
US10459662B1 (en) 2017-09-27 2019-10-29 Amazon Technologies, Inc. Write failure handling for a memory controller to non-volatile memory
US10642727B1 (en) * 2017-09-27 2020-05-05 Amazon Technologies, Inc. Managing migration events performed by a memory controller
US10521146B1 (en) 2017-11-09 2019-12-31 Micron Technology, Inc. UFS based idle time garbage collection management
US11048644B1 (en) 2017-12-11 2021-06-29 Amazon Technologies, Inc. Memory mapping in an access device for non-volatile memory
US10387304B2 (en) * 2017-12-28 2019-08-20 Intel Corporation Virtual transfer of data between memory and storage domains
US10671313B2 (en) * 2018-01-23 2020-06-02 Goke Us Research Laboratory Apparatus and methods for fast and secure storage of data
CN108255437B (zh) * 2018-01-26 2021-03-02 国科美国研究实验室 数据贮存装置及方法
KR102535104B1 (ko) * 2018-03-19 2023-05-23 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10909040B2 (en) * 2018-04-19 2021-02-02 Intel Corporation Adaptive calibration of nonvolatile memory channel based on platform power management state
US10387330B1 (en) * 2018-04-30 2019-08-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Less recently and frequently used (LRAFU) cache replacement policy
US11068413B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications based on application priority and minimum retention time for tracks in least recently used demoting schemes
US11068417B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications that indicate minimum retention time for tracks in least recently used demoting schemes
US11074197B2 (en) 2018-06-26 2021-07-27 International Business Machines Corporation Integration of application indicated minimum time to cache and maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11061826B2 (en) 2018-06-26 2021-07-13 International Business Machines Corporation Integration of application indicated minimum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11144474B2 (en) 2018-06-26 2021-10-12 International Business Machines Corporation Integration of application indicated maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US10713158B2 (en) * 2018-06-28 2020-07-14 Western Digital Technologies, Inc. Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring
KR101952827B1 (ko) * 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
TWI670599B (zh) * 2018-08-28 2019-09-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
KR20200076528A (ko) 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
WO2020180045A1 (en) * 2019-03-07 2020-09-10 Samsung Electronics Co., Ltd. Electronic device and method for utilizing memory space thereof
TWI698749B (zh) * 2019-03-13 2020-07-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20200110547A (ko) 2019-03-14 2020-09-24 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
CN110427158B (zh) * 2019-07-29 2023-06-20 浙江华忆芯科技有限公司 固态硬盘的写入方法及固态硬盘
US11144475B2 (en) 2019-08-16 2021-10-12 International Business Machines Corporation Managing indication of accessed tracks in cache to a most recently used end of a cache list
US10901916B1 (en) * 2019-08-16 2021-01-26 International Business Machines Corporation Managing indication of accessed tracks in cache to a most recently used end of a cache list based on accesses to different regions of the cache list
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11282567B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US11726869B2 (en) * 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
KR20210046377A (ko) 2019-10-18 2021-04-28 에스케이하이닉스 주식회사 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법
KR20220069543A (ko) 2020-11-20 2022-05-27 삼성전자주식회사 스토리지 장치, 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템
US11537306B2 (en) * 2021-03-12 2022-12-27 Micron Technology, Inc. Cold data detector in memory system
US20220391131A1 (en) * 2021-06-04 2022-12-08 Fujitsu Limited Computer-readable recording medium, information processing device control method and information processing device
CN113253939B (zh) * 2021-06-11 2023-05-16 锐掣(杭州)科技有限公司 数据处理方法、装置、电子设备及存储介质
US11593032B1 (en) * 2021-08-06 2023-02-28 Micron Technology, Inc. Memory sub-system data migration
KR20230027957A (ko) 2021-08-20 2023-02-28 삼성전자주식회사 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법
US11829636B2 (en) * 2021-09-01 2023-11-28 Micron Technology, Inc. Cold data identification

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US7961511B2 (en) 2006-09-26 2011-06-14 Sandisk Corporation Hybrid programming methods and systems for non-volatile memory storage elements
KR100858241B1 (ko) 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
KR101447188B1 (ko) 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
US20090043831A1 (en) 2007-08-11 2009-02-12 Mcm Portfolio Llc Smart Solid State Drive And Method For Handling Critical Files
KR101553532B1 (ko) 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
US8060719B2 (en) 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100088459A1 (en) 2008-10-06 2010-04-08 Siamak Arya Improved Hybrid Drive
KR100995546B1 (ko) 2008-12-02 2010-11-22 한국과학기술원 낸드 플래시 메모리와 비휘발성 램을 사용하는 하이브리드 저장 장치 기반의 데이터베이스 시스템 및 데이터베이스 시스템에서 데이터를 업데이트하는 방법
US8069324B2 (en) 2008-12-19 2011-11-29 Seagate Technology Llc Storage device with manual learning

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130127207A (ko) * 2012-05-14 2013-11-22 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
WO2015102213A1 (ko) * 2013-12-30 2015-07-09 주식회사 시큐아이 멀티 스레드 기반 세션 관리 방법
KR20150103532A (ko) * 2014-03-03 2015-09-11 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
KR20150118650A (ko) * 2014-04-14 2015-10-23 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR20170019557A (ko) * 2015-08-11 2017-02-22 삼성전자주식회사 불휘발성 메모리 장치, 버퍼 메모리 및 컨트롤러를 포함하는 스토리지 장치를 포함하는 컴퓨팅 장치의 동작 방법
KR20170024222A (ko) * 2015-08-24 2017-03-07 삼성전자주식회사 표면 실장 기술의 적용에 따른 메모리 셀의 문턱 전압 산포 변화 복구 기능을 갖는 데이터 스토리지 및 그것의 동작 방법
US10073628B2 (en) 2015-12-23 2018-09-11 SK Hynix Inc. Memory system and operating method of memory system
US10747469B2 (en) 2017-07-17 2020-08-18 SK Hynix Inc. Memory system and operating method of the same
KR102117531B1 (ko) 2019-11-07 2020-06-10 한국기계연구원 연소진동 저감을 위한 음향 감쇠 구조를 갖는 가스터빈 연소기용 버너
KR102379124B1 (ko) 2020-10-15 2022-03-28 한국기계연구원 연소진동 저감 구조를 갖는 가스터빈 연소기용 버너 및 이를 구비한 가스터빈 연소기

Also Published As

Publication number Publication date
US9158671B2 (en) 2015-10-13
US20130046920A1 (en) 2013-02-21
KR101861170B1 (ko) 2018-05-25

Similar Documents

Publication Publication Date Title
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
US11243878B2 (en) Simultaneous garbage collection of multiple source blocks
KR101997572B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US9032138B2 (en) Storage device based on a flash memory and user device including the same
US20150347291A1 (en) Flash memory based storage system and operating method
US9891838B2 (en) Method of operating a memory system having a meta data manager
KR20130060791A (ko) 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
CN109697027B (zh) 包括共享存储器区域和专用存储器区域的数据存储设备
US11194736B2 (en) Memory controller having improved map data access performance and method of operating the same
KR20130128694A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20130084846A (ko) 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
US11567685B2 (en) Storage controller and storage device including the same
KR20130128685A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
KR20210057254A (ko) 스토리지 장치 및 그 동작방법
KR20220077691A (ko) 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법
KR101081948B1 (ko) 불휘발성 메모리 장치 및 그것의 데이터 저장 방법
US20200201563A1 (en) Data storage device and method of operating the same
KR20220053973A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20150059058A (ko) 호스트 ftl을 갖는 사용자 장치 및 그것의 오픈 블록의 페이지 오프셋 전송 방법
KR20230071005A (ko) 스토리지 장치
KR20220023649A (ko) 메모리 컨트롤러 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant