KR102509540B1 - 저장 장치 및 그것의 가비지 컬렉션 방법 - Google Patents

저장 장치 및 그것의 가비지 컬렉션 방법 Download PDF

Info

Publication number
KR102509540B1
KR102509540B1 KR1020150092950A KR20150092950A KR102509540B1 KR 102509540 B1 KR102509540 B1 KR 102509540B1 KR 1020150092950 A KR1020150092950 A KR 1020150092950A KR 20150092950 A KR20150092950 A KR 20150092950A KR 102509540 B1 KR102509540 B1 KR 102509540B1
Authority
KR
South Korea
Prior art keywords
garbage collection
block group
data
storage device
memory
Prior art date
Application number
KR1020150092950A
Other languages
English (en)
Other versions
KR20170003776A (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 KR1020150092950A priority Critical patent/KR102509540B1/ko
Priority to US15/194,689 priority patent/US10719438B2/en
Publication of KR20170003776A publication Critical patent/KR20170003776A/ko
Priority to US16/903,519 priority patent/US11645199B2/en
Application granted granted Critical
Publication of KR102509540B1 publication Critical patent/KR102509540B1/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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0608Saving storage space on storage systems
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; 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/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

본 발명에 따른 저장 장치의 가비지 컬렉션 방법은, 제 1 기준에 근거로 하여 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하는 단계; 및 상기 제 2 기준에 근거로 하여 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행하는 단계를 포함하고, 상기 제 1 블록 그룹은 노멀 데이터를 저장하는 노멀 블록 그룹이고, 상기 제 2 블록 그룹은 데이터 태그를 가진 메타 데이터를 저장하는 데이터 태그 블록 그룹이다.

Description

저장 장치 및 그것의 가비지 컬렉션 방법{STORAGE DEVICE AND GARBAGE COLLECTION METHOD THEREOF}
본 발명은 저장 장치 및 그것의 가비지 컬렉션 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 나누어진다. 비휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 비휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 비휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 및 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 사용자 데이터 저장, 프로그램 및 마이크로 코드의 저장을 위해서 사용된다.
본 발명의 목적은 시스템 성능을 개선하는 저장 장치 및 그것의 가비지 컬렉션을 제공하는데 있다.
본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법은, 가비지 컬렉션 비용을 계산하는 단계, 상기 가비지 컬렉션 비용이 제 1 값을 초과하는 지를 판별하는 단계, 상기 가비지 컬렉션 비용이 상기 제 1 값을 초과할 때, 상기 가비지 컬렉션 비용이 제 2 값을 초과하는 지를 판별하는 단계, 상기 가비지 컬렉션 비용이 상기 제 2 값을 초과하지 않을 때, 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하는 단계, 및 상기 가비지 컬렉션 비용이 상기 제 2 값을 초과할 때, 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 블록 그룹은 노멀 데이터를 저장한다.
실시 예에 있어서, 상기 제 2 블록 그룹은 메타 데이터를 저장하는 메모리 블록이다.
실시 예에 있어서, 상기 메타 데이터는 데이터 태그를 갖는다.
실시 예에 있어서, 상기 메타 데이터는 저널 데이터이다.
실시 예에 있어서, 상기 메타 데이터가 상기 저널 데이터인 지를 판별하는 단계; 및 상기 저널 데이터를 상기 제 2 블록 그룹에 저장하는 단계를 더 포함한다.
실시 예에 있어서, 상기 가비지 컬렉션 비용은, 가비지 컬렉션 대상 블록의 개수 및 가비지 컬렉션으로 발생되는 새로운 프리 블록의 개수를 이용하여 계산된다.
실시 예에 있어서, 상기 제 1 가비지 컬렉션 및 상기 제 2 가비지 컬렉션 중 어느 하나를 수행할 지를 선택하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 2 블록 그룹의 오버 프로비젼(over provision) 영역 비율이 상기 제 1 블록 그룹의 오버 프로비젼 영역 비율보다 높다.
실시 예에 있어서, 입력 데이터가 사전에 결정된 어드레스 영역 범위를 벗어날 때, 상기 제 2 가비지 컬렉션이 수행된다.
본 발명의 다른 실시 예에 따른 저장 장치의 가비지 컬렉션 방법은, 제 1 기준에 근거로 하여 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하는 단계; 및 상기 제 2 기준에 근거로 하여 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행하는 단계를 포함하고, 상기 제 1 블록 그룹은 노멀 데이터를 저장하는 노멀 블록 그룹이고, 상기 제 2 블록 그룹은 데이터 태그를 가진 메타 데이터를 저장하는 데이터 태그 블록 그룹이다.
실시 예에 있어서, 상기 제 1 기준과 상기 제 2 기준은 동일하다.
실시 예에 있어서, 상기 제 1 기준과 상기 제 2 기준은 서로 다르다.
실시 예에 있어서, 상기 메타 데이터는 안드로이드 시스템의 ext4 저널 데이터이다.
실시 예에 있어서, 상기 ext4 저널 데이터는 약속된 패턴으로 입력된다.
본 발명의 실시 예에 따른 저장 장치는, 노멀 데이터를 저장하는 제 1 블록 그룹; 데이터 태그를 가진 메타 데이터를 저장하는 제 2 블록 그룹; 및 상기 제 1 블록 그룹과 상기 제 2 블록 그룹을 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는, 제 1 기준에 근거로 하여 상기 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하고, 제 2 기준에 근거로 하여 상기 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행한다.
실시 예에 있어서, 상기 제 1 블록 그룹은 제 1 적어도 하나의 비휘발성 메모리 장치에 포함되고, 상기 제 2 블록 그룹은 제 2 적어도 하나의 비휘발성 메모리 장치에 포함된다.
실시 예에 있어서, 상기 제 1 블록 그룹의 오버 프로비전 영역 비율과 상기 제 2 블록 그룹의 오버 프로비젼 영역 비율은 서로 다르다.
실시 예에 있어서, 상기 제 2 기준은 입력 데이터의 어드레스 범위이다.
실시 예에 있어서, 상기 저장 장치는 eMMC(embedded multimedia card) 및 UFS(universal flash storage) 중 어느 하나이다.
본 발명의 또 다른 실시 예에 따른 저장 장치의 가비지 컬렉션 방법은: 제 1 블록 그룹과 제 2 블록 그룹에 대한 가비지 컬렉션 비용들을 계산하는 단계; 상기 제 1 블록 그룹의 가비지 컬렉션 비용이 상기 제 2 블록 그룹의 가비지 컬렉션 비용보다 큰 지를 판별하는 단계; 상기 제 2 블록 그룹의 유효 페이지들의 어드레스 범위가 사전에 결정된 어드레스 범위를 벗어나는 지를 판별하는 단계; 상기 어드레스 범위가 상기 사전에 결정된 어드레스 범위를 벗어날 때 가비지 컬렉션 대상으로 상기 제 2 블록 그룹을 선택하는 단계; 및 상기 선택된 제 2 블록 그룹에 대한 가비지 컬렉션을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 블록 그룹은 노멀 데이터를 저장하는 노멀 블록 그룹이고, 상기 제 2 블록 그룹은 데이터 태그를 갖는 메타 데이터를 저장하는 데이터 태그 블록 그룹이다.
실시 예에 있어서, 상기 제 1 블록 그룹의 가비지 컬렉션 비용이 상기 제 2 블록 그룹의 가비지 컬렉션 비용보다 크지 않을 때, 상기 가비지 컬렉션 대상으로 상기 제 1 블록 그룹을 선택하는 단계; 및 상기 선택된 제 1 블록 그룹에 대한 가비지 컬렉션을 수행하는 단계를 더 포함한다.
실시 예에 있어서, 상기 어드레스 범위가 상기 사전에 결정된 어드레스 범위를 벗어나지 않을 때, 상기 가비지 컬렉션 대상으로 상기 제 1 블록 그룹을 선택하는 단계; 및 상기 선택된 제 1 블록 그룹에 대한 가비지 컬렉션을 수행하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 저장 장치 및 그것의 가비지 컬렉션 방법은, 데이터 태그를 가진 데이터에 대한 가비지 컬렉션을 개별적으로 수행함으로써, 시스템 전체적인 성능 향상을 꾀할 수 있다.
도 1은 본 발명의 개념을 설명하기 컴퓨팅 장치를 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 대상을 선택과정을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 4는 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 5는 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 3 실시 예를 보여주는 흐름도이다.
도 6은 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 4 실시 예를 보여주는 흐름도이다.
도 7은 본 발명의 가비지 컬렉션에 따른 오버 프로비젼 영역에 대한 실시 예를 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 데이터 태그 블록 그룹에 대한 가비지 컬렉션 기준을 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 저장 장치의 메모리 블록을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 블록을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 메모리 블록에 대한 회로도를 예시적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 모바일 장치를 예시적으로 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 NAND MCP(multi chip package)에 대한 블록도이다.
도 17은 본 발명의 실시 예에 따른 eMCP(embedded MCP)에 대한 블록도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 혹은 대체물을 포함한다.
제 1 혹은 제 2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고 유사하게 제 2 구성 요소는 제 1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 혹은 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 개념을 설명하기 컴퓨팅 시스템(10)을 보여주는 도면이다. 도 1을 참조하면, 컴퓨팅 시스템(10)은 저장 장치(100) 및 저장 장치(100)를 관리하는 호스트(200)를 포함할 수 있다.
실시 예에 있어서, 컴퓨팅 시스템(10)은 컴퓨터, 포터블 컴퓨터, UMPC(ultra mobile PC), 워크스테이션(workstation), 데이터 서버(data server), 넷북, PDA, 웹 태블릿, 무선 폰, 모바일 폰, 스마트폰, 전자북, PMP(portable multimedia player), 디지털 카메라, 디지털오디오 녹음기/재생기, 디지털 사진기/비디오 기록기/재생기, 포터블 게임 머신, 네비게이션 시스템, 블록 박스, 3D 텔레비전, 무선 환경에서 정보를 수신 및 송신하는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, RFID, 혹은 컴퓨팅 시스템을 구성하는 다양한 전자 장치들 중 어느 하나로 사용될 수 있다. 호스트(200)는 적어도 하나의 프로세서, CPU(central processing unit), GPU(graphic processing unit), 어플리케이션 프로세서 등 일 수 있다. 또한, 저장 장치(100)는 SSD(solid state drive), eMMC(embedded multimedia card), 메모리 카드(CF, SD, microSD, miniSD 등), UFS(universal flash storage), USB(universal serial bus) 메모리 등 일 수 있다.
저장 장치(100)는 제 1 블록 그룹(111), 제 2 블록 그룹(112), 및 메모리 제어기(120)를 포함할 수 있다.
제 1 블록 그룹(111) 및 제 2 블록 그룹(112) 각각은 적어도 하나의 비휘발성 메모리 장치(NVM)로 구현될 수 있다. 예를 들어, 제 1 블록 그룹(111)은 제 1 적어도 하나의 비휘발성 메모리 장치에 포함되고, 제 2 블록 그룹(112)은 제 2 적어도 하나의 비휘발성 메모리 장치에 포함될 수 있다. 실시 예에 있어서, 제 1 적어도 하나의 비휘발성 메모리 장치와 제 2 적어도 하나의 비휘발성 메모리 장치는 서로 동일할 수 있다. 다른 실시 예에 있어서, 제 1 적어도 하나의 비휘발성 메모리 장치는 제 2 적어도 하나의 비휘발성 메모리 장치와 서로 다를 수 있다.
실시 예에 있어서, 비휘발성 메모리 장치(NVM)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다.
본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖고, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 참고 문헌으로 포함된다.
본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
제 1 블록 그룹(111)은 노멀 데이터(normal data)를 저장하는 노멀 블록 그룹일 수 있다. 제 1 블록 그룹(111)은 복수의 메모리 블록들(BLK1 ~ BLKi, i는 2 이상 정수)을 포함할 수 있다.
제 2 블록 그룹(112)은 데이터 태그를 가진 메타 데이터를 저장하는 데이터 태그 블록 그룹일 수 있다. 제 2 블록 그룹(112)은 복수의 메모리 블록들(BLK1 ~ BLKj, j는 2 이상의 정수)를 포함할 수 있다. 여기서 데이터 태그는 노멀 데이터와 비교하여 메타 데이터를 구별하기 위한 표시일 수 있다.
메모리 블록들(BLK1 ~ BLKi, BLK1 ~ BLKj) 각각은 복수의 페이지들을 포함할 수 있다. 복수의 페이지들 각각은 복수의 메모리 셀들로 구성된다. 복수의 메모리 셀들 각각은 적어도 하나의 비트를 저장할 수 있다.
메모리 제어기(120)는 호스트 인터페이스(121), 가비지 컬렉션(garbage collection, GC) 관리 유닛(122), 및 비휘발성 메모리 인터페이스(123)를 포함할 수 있다.
호스트 인터페이스(121)는 호스트(200)와 인터페이스를 수행할 수 있다. 호스트 인터페이스(121)는 노멀 쓰기 요청 혹은 데이터 태그를 가진 쓰기 요청을 입력받을 수 있다. 노멀 쓰기 요청시, 노멀 데이터는 제 1 블록 그룹(111)에 저장될 수 있다. 데이터 태그를 가진 쓰기 요청시, 데이터 태그를 가진 데이터, 즉 메타 데이터는 제 2 블록 그룹(112)에 저장될 수 있다. 실시 예에 있어서, 데이터 태그를 가진 데이터는 약속된 패턴에 따라 호스트(200)으로부터 입력될 수 있다.
가비지 컬렉션 유닛(122)은 제 1 블록 그룹(111)과 제 2 블록 그룹(112)의 가비지 컬렉션을 개별적으로 관리할 수 있다. 예를 들어, 가비지 컬렉션 유닛(112)은 제 1 블록 그룹(111)에 대하여 제 1 기준에 근거로 하여 제 1 가비지 컬렉션을 수행할 수 있다. 또한, 가비지 컬렉션 유닛(112)은 제 2 블록 그룹(112)에 대하여 제 2 기준에 근거로 하여 제 1 가비지 컬렉션을 수행할 수 있다. 실시 예에 있어서, 제 1 기준과 제 2 기준은 동일하거나 서로 다를 수 있다. 예를 들어, 제 2 기준은 제 1 기준보다 좀 더 엄격한 기준이 될 수 있다.
비휘발성 메모리 인터페이스(123)는 제 1 블록 그룹(111)과 제 2 블록 그룹(112)의 입출력을 제어할 수 있다.
본 발명의 실시 예에 따른 저장 장치(100)는 데이터 태그를 가진 데이터에 대한 가비지 컬렉션을 별도로 수행할 수 있다.
도 2는 본 발명의 실시 예에 따른 저장 장치(100)의 가비지 컬렉션 대상 선택과정을 예시적으로 보여주는 도면이다.
가비지 컬렉션을 수행할 때, 가비지 컬렉션 대상이 제 1 블록 그룹(111)이 될 지 혹은 제 2 블록 그룹(112)이 될 지 선택해야 한다.
만일 데이터 그룹의 데이터 패턴 특징을 모르거나 그 특징이 비슷하다면, 프리 블록을 생성하기 위하여 옮길 유효 페이지(valid page)가 적은 블록 그룹이 선택될 수 있다. 예를 들어, 제 1 블록 그룹(111)의 유효 페이지 개수보다 제 2 블록 그룹(112)의 그것이 적기 때문에, 제 2 블록 그룹(112)이 가비지 컬렉션 대상으로 선택될 수 있다.
반면에, 제 2 블록 그룹(112)의 데이터가 비교적 빠른 시일 내에 모두 무효화될 것을 안다면, 제 2 블록 그룹(112)에 대한 가비지 컬렉션을 굳이 수행할 필요는 없을 것이다. 이 경우, 제 1 블록 그룹(111)에 대한 가비지 컬렉션 비용이 제 2 블록 그룹(112)의 그것보다 크더라도, 제 1 블록 그룹(111)이 가비지 컬렉션 대상으로 선택될 수 있다. 본 발명의 저장 장치(100)는, 가비지 컬렉션 비용이 크더라도 시스템 전체적인 효율 측면에서 가비지 컬렉션 대상을 선택할 수 있다.
한편, 도 2에서는 데이터 태그를 가진 데이터를 저장하는 제 2 블록 그룹(112)에 대하여 본 발명의 가비지 컬렉션 방법에 적용될 수 있다고 설명하였지만, 본 발명이 제 2 블록 그룹(112)에 제한될 필요는 없다고 이해되어야 할 것이다. 본 발명의 가비지 컬렉션 방법은 어떠한 종류의 블록 그룹이든 지 가비지 컬렉션 비용뿐만 아니라 가까운 미래의 시스템 전체적인 효율을 고려하여 가비지 컬렉션을 선택할 수 있다.
도 3은 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 1 실시 예를 보여주는 흐름도이다. 도 1 내지 도 3을 참조하면, 저장 장치(100)의 가비지 컬렉션 방법은 다음과 같이 진행될 수 있다.
제 1 기준을 근거로 하여 제 1 블록 그룹(111, 도 1 참조)에 대한 제 1 가비지 컬렉션을 수행할 수 있다. 여기서 제 1 블록 그룹(111)은 노멀 데이터를 저장하는 노멀 블록 그룹일 수 있다(S110). 제 2 기준을 근거로 하여 제 2 블록 그룹(112, 도 1 참조)에 대한 제 2 가비지 컬렉션을 수행할 수 있다. 여기서 제 2 블록 그룹(112)은 데이터 태그를 가진 메타 데이터를 저장하는 데이터 태그 블록 그룹일 수 있다(S120). 실시 예에 있어서, 제 1 기준과 제 2 기준은 동일할 수 있다. 다른 실시 예에 있어서, 제 1 기준과 제 2 기준은 서로 다를 수 있다.
실시 예에 있어서, 메타 데이터는 저널 데이터일 수 있다. 예를 들어, 저널 데이터는 안드로이드 시스템의 ext4 저널 데이터일 수 있다. 실시 예에 있어서, 저널 데이터는 호스트(200, 도 1 참조)로부터 약속된 패턴으로 입력될 수 있다. 예를 들어, 저널 데이터는 사전에 약속된 어드레스 범위에서 반복적으로 업데이트될 수 있다. 즉, 저널 데이터는 순환 패턴으로 업데이트될 수 있다.
본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법은, 제 1 블록 그룹(111)에 대한 제 1 가비지 컬렉션과 제 2 블록 그룹(112)에 대한 제 2 가비지 컬렉션을 독립적/개별적으로 수행할 수 있다.
도 4는 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 1, 도 2, 및 도 4를 참조하면, 저장 장치(100)의 가비지 컬렉션 방법은 다음과 같이 진행될 수 있다.
가비지 컬렉션 관리 유닛(122, 도 1 참조)은 외부의 요청 혹은 내부적인 요청에 응답하여 가비지 컬렉션 비용을 계산할 수 있다. 여기서 가비지 컬렉션 비용은 가비지 컬렉션에 사용될 메모리 블록의 개수 및 가비지 컬렉션에 의해 생성될 프리 블록의 개수를 이용하여 계산 될 수 있다(S210). 가비지 컬렉션 관리 유닛(122)은 가비지 컬렉션 비용이 제 1 값(PDV1)을 초과하는 지를 판별할 수 있다(S220). 만일, 가비지 컬렉션 비용이 제 1 값(PDV1)을 초과하지 않으면 소정의 시간 후에 S210를 다시 진행할 것이다. 반면에, 가비지 컬렉션 비용이 제 1 값(PDV1)을 초과한다면, 가비지 컬렉션 관리 유닛(122)은 가비지 컬렉션 비용이 제 2 값(PDV2)을 초과하는 지를 판별할 수 있다. 여기서 제 2 값(PDV2)은 제 1 값(PDV1)보다 클 수 있다.
만일, 가비지 컬렉션 비용이 제 2 값(PDV2)을 초과한다면, 제 2 블록 그룹(112), 즉 데이터 태그 블록 그룹에 대한 가비지 컬렉션("제 1 가비지 컬렉션")을 수행할 수 있다(S240). 반면에, 가비지 컬렉션 비용이 제 2 값(PDV2)을 초과하지 않으면, 제 1 블록 그룹(111), 즉 노멀 블록 그룹에 가비지 컬렉션("제 2 가비지 컬렉션")을 수행할 수 있다(S245).
본 발명의 실시 예에 따른 저장 장치(100)의 가비지 컬렉션 방법은, 가비지 컬렉션 비용에 따라 가비지 컬렉션 대상 그룹을 결정할 수 있다.
도 5는 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 3 실시 예를 보여주는 흐름도이다. 도 1 내지 도 5를 참조하면, 저장 장치(100)의 가비지 컬렉션 방법은 다음과 같이 진행될 수 있다.
저장 장치(100, 도 1 참조)의 호스트 인터페이스(121, 도 1 참조)는 호스트(200, 도 1 참조)로부터 쓰기 요청에 따른 데이터를 입력 받는다(S310). 메모리 제어기(120)는 입력 데이터가 메타 데이터인지를 판별할 수 있다. 예를 들어, 노멀 데이터는 데이터 태그가 없고, 메타 데이터는 데이터 태그를 갖는다. 따라서, 데이터 태그의 여부를 통하여 입력 데이터가 메타 데이터인 지가 판별될 수 있다(S320).
만일, 입력 데이터가 메타 데이터라면, 메모리 제어기(120)는 메타 데이터가 저널 데이터(journal data)인지 판별할 수 있다. 예를 들어, 호스트(200)로부터 약속된 특정 어드레스 영역에 대응하는 메타 데이터가 입력될 때, 메타 데이터는 저널 데이터로 판별될 수 있다(S330).
만일, 메타 데이터가 저널 데이터라면, 저널 데이터는 제 1 데이터 태그 블록 그룹에 쓰여질 수 있다(S340). 반면에, 메타 데이터가 저널 데이터가 아니라면, 메타 데이터는 제 2 데이터 태그 블록 그룹에 쓰여질 수 있다(S342). 한편, 입력 데이터가 메타 데이터가 아니라면, 노멀 데이터는 노멀 블록 그룹에 쓰여질 수 있다(S344).
이후, 가비지 컬렉션 관리 유닛(122)은 가비지 컬렉션 정책에 따라 제 1 데이터 태그 블록 그룹에 대한 가비지 컬렉션을 수행하거나(S350), 제 2 데이터 태그 블록 그룹에 대한 가비지 컬렉션을 수행하거나(S352), 노멀 블록 그룹에 대한 가비지 컬렉션을 수행할 수 있다(S354).
본 발명의 실시 예에 따른 저장 장치(100)의 가비지 컬렉션 방법은, 저널 데이터, 저널 데이터가 아닌 메타 데이터, 메타 데이터가 아닌 노멀 데이터에 따라 개별적인 가비지 컬렉션을 수행할 수 있다.
도 6은 본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션 방법에 대한 제 4 실시 예를 보여주는 흐름도이다. 도 1 내지 도 6을 참조하면, 저장 장치(100)의 가비지 컬렉션 방법은 다음과 같이 진행될 수 있다.
외부의 요청 혹은 내부적인 요청에 응답하여 가비지 컬렉션 관리 유닛(122)은 노멀 블록 그룹과 데이터 태그 블록 각각의 가비지 컬렉션 비용들을 계산할 수 있다(S410). 가비지 컬렉션 관리 유닛(122)은 노멀 블록 그룹의 가비지 컬렉션 비용(GC cost_normal)이 데이터 태그 블록의 가비지 컬렉션 비용(GC cost_data_tag)보다 큰 지를 판별할 수 있다(S420).
만일, 노멀 블록 그룹의 가비지 컬렉션 비용(GC cost_normal)이 데이터 태그 블록의 가비지 컬렉션 비용(GC cost_data_tag)보다 크다면, 데이터 태그 블록의 유효 페이지들의 어드레스 범위가 사전에 결정된 어드레스 범위를 벗어나는 지를 판별할 수 있다(S430). 만일, 사전에 결정된 어드레스 범위를 벗어난다면, 가비지 컬렉션 대상으로 데이터 태그 블록 그룹이 선택된다(S440). 반면에, 사전에 결정된 어드레스 범위를 벗어나지 않거나, 노멀 블록 그룹의 가비지 컬렉션 비용(GC cost_normal)이 데이터 태그 블록의 가비지 컬렉션 비용(GC cost_data_tag)보다 크지 않다면, 가비지 컬렉션 대상으로 노멀 블록 그룹이 선택된다(S445).
이후에, 선택된 블록 그룹에 대한 가비지 컬렉션이 수행된다(S450).
본 발명의 실시 예에 따른 저장 장치(100)의 가비지 컬렉션 방법은, 유효 페이지들의 어드레스의 총량이 사전에 결정된 값을 초과할 때 데이터 태그 블록에 대한 가비지 컬렉션을 수행할 수 있다.
한편, 본 발명의 가비지 컬렉션 방법은 오버 프로비젼(over provision) 영역 관점에서 바라볼 수도 있다.
도 7은 본 발명의 가비지 컬렉션에 따른 오버 프로비젼 영역에 대한 실시 예를 예시적으로 보여주는 도면이다. 도 7을 참조하면, 호스트(200)는 저장 장치(100)의 노멀 데이터 영역과 메타 데이터 영역만을 바라볼 수 있다. 그러나 저장 장치(100)는 실제로 노멀 데이터 영역의 오버 프로비젼 영역과 메타 데이터 영역의 오버 프로비젼 영역을 구비하고 있다.
본 발명의 실시 예에 따른 저장 장치의 가비지 컬렉션은 노멀 데이터를 저장하는 노멀 블록 그룹(111, 도 1 참조)과 메타 데이터를 저장하는 데이터 태그 블록 그룹(112, 도 1 참조) 각각에 서로 다른 기준에 의해 수행될 수 있다. 예를 들어, 데이터 태그 블록 그룹(112)에 대한 가비지 컬렉션 기준은 노멀 블록 그룹(111)에 대한 가비지 컬렉션 기준보다 보다 덜 엄격할 수 있다. 이는, 데이터 태그 블록 그룹(112)의 오버 프로비젼 영역 비율(ROPA_meta)은 노멀 블록 그룹(111)의 그것(ROPA_normal)보다 상대적으로 크기 때문에, 덜 엄격하게 가비지 컬렉션이 수행될 수 있다는 것을 알려준다. 반대로, 노멀 블록 그룹(111)의 오버 프로비젼 영역 비율(RORA_normal)은 데이터 태그 블록 그룹(112)의 그것(ROPA_meta)보다 상대적으로 적기 때문에 더 엄격하게 가비지 컬렉션이 수행되어야 할 것이다.
도 8은 본 발명의 실시 예에 따른 데이터 태그 블록 그룹에 대한 가비지 컬렉션 기준을 예시적으로 보여주는 도면이다. 도 8을 참조하면, 사전에 결정된 어드레스 영역(A ~ B)의 저널 데이터에 대하여 가비지 컬렉션이 보류될 수 있다. 실시 예에 있어서, 사전에 결정된 어드레스 영역(A ~ B)은 저장 장치(100)와 호스트(200) 사이에 사전에 약속된 것일 수 있다.
저널 데이터는 특정 어드레스 영역(A ~ B)에서 반복적으로 업데이트될 수 있다. 임의의 시점에 가비지 컬렉션 요청이 발생하더라도, 그 대상이 특정 어드레스 영역(A ~ B) 내의 저널 데이터라면 가비지 컬렉션은 수행되지 않을 수 있다. 추후에 저널 데이터는 계속 업데이트되고, 이전 저널 데이터는 무효화될 것이다. 이에 현재 시점에서 가비지 컬렉션을 수행할 경우 추후에 발생될 가비지 컬렉션 비용이 상대적으로 많이 발생할 수 있다. 따라서, 본 발명의 가비지 컬렉션 방법은, 사전에 결정된 어드레스 영역(A ~ B)을 벗어난 저널 데이터가 입력될 때에 비로소 저널 데이터에 대한 가비지 컬렉션을 시작할 수 있다.
도 9는 본 발명의 실시 예에 따른 저장 장치의 메모리 블록을 예시적으로 보여주는 도면이다. 도 9를 참조하면, 기판 위에 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WL1 ~ WL8), 적어도 하나의 스트링 선택 라인(SSL)이 판 형태로 적층됨으로써 형성된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리될 수 있다. 실시 예에 있어서, 접지 선택 라인(GSL)과 워드라인들(WL1 ~ WL8) 사이에 적어도 하나의 더미 워드라인이 판 형태로 적층되거나, 워드라인들(WL1 ~ WL8)과 스트링 선택 라인(SSL) 사이에 적어도 하나의 더미 워드라인이 판 형태로 적층 될 수 있다. 각각의 워드라인 컷들은, 도시되지 않았지만 공통 소스 라인(common source line: CSL)을 포함한다. 실시 예에 있어서, 각각의 워드라인 컷에 포함된 공통 소스 라인(CSL)은 공통으로 연결된다. 비트라인에 연결된 필라(pillar)가 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WL1 ~ WL8), 적어도 하나의 스트링 선택 라인(SSL)을 관통함으로써, 스트링이 형성된다.
한편, 도 9에서는 8개의 워드라인들(WL1 ~ WL8)이 도시되지만, 본 발명의 메모리 블록의 워드라인 개수는 여기에 제한되지 않는다고 이해되어야 할 것이다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 블록을 예시적으로 보여주는 도면이다. 도 10을 참조하면, 메모리 블록(BLKb)은 설명의 편의를 위하여 워드라인의 층수가 4라고 하였다. 메모리 블록(BLKb)은 인접한 직렬 연결된 메모리 셀들의 하단들을 파이프로 연결하는 PBiCS(pipe-shaped bit cost scalable) 구조로 구현된다. 메모리 블록(BLKb)은 m×n(m,n은 자연수)의 스트링들(NS)을 포함한다.
도 10에서는 m=6, n=2를 나타내고 있다. 각 스트링(NS)은 직렬 연결된 메모리 셀들(MC1 ~ MC8)를 포함한다. 여기서 메모리 셀들(MC1 ~ MC8)의 제 1 상단은 스트링 선택 트랜지스터(SST)에 연결되고, 메모리 셀들(MC1 ~ MC8)의 제 2 상단은 접지 선택 트랜지스터(GST)에 연결되고, 메모리 셀들(MC1 ~ MC8)의 하단은 파이프 연결된다.
스트링(NS)을 구성하는 메모리 셀들은 복수의 반도체 층에 적층됨으로써 형성된다. 각 스트링(NS)은 제 1 필라(PL11), 제 2 필라(PL12), 제 1 필라(PL11) 및 제 2 필라(PL12)를 연결하는 필라 연결부(PL13)를 포함한다. 제 1 필라(PL11)는 비트라인(예를 들어, BL1)과 필라 연결부(PL13)에 연결되고, 스트링 선택 라인(SSL), 워드라인들(WL5 ~ WL8) 사이를 관통함으로써 형성된다. 제 2 필라(PL12)는 공통소스라인(CSL)과 필라 연결부(PL13)에 연결되고, 접지 선택 라인(GSL), 워드라인들(WL1 ~ WL4) 사이를 관통함으로써 형성된다. 도 10에 도시된 바와 같이, 스트링(NS)은 U 자형 필라 형태로 구현된다.
실시 예에 있어서, 백-게이트(BG)는 기판 위에 형성되고, 백-게이트(BC) 내부에 필라 연결부(PL13)가 구현될 수 있다. 실시 예에 있어서, 백-게이트(BG)는 블록(BLKb)에 공통적으로 존재할 수 있다. 백-게이트(BG)는 다른 블록의 백-게이트와 서로 분리된 구조일 수 있다.
도 11은 본 발명의 실시 예에 따른 메모리 블록(BLK)에 대한 회로도를 예시적으로 보여주는 도면이다. 도 11을 참조하면, 메모리 블록(BLK)은 복수의 비트라인들(BL1 ~ BL3, n는 2 이상의 정수)에 연결된 스트링들을 포함한다. 여기서 스트링들 각각은 비트라인과 공통 소스 라인(common source line; CSL) 사이에 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 ~ MC8, m은 2 이상의 정수), 적어도 하나의 접지 선택 트랜지스터(GST)를 포함한다. 메모리 셀들(MC1 ~ MC8) 각각은 적어도 하나의 비트 이상의 데이터를 저장할 수 있다. 도시되지 않았지만, 스트링들 각각은 스트링 선택 트랜지스터(SST)와 메모리 셀들(MC1 ~ MC8) 사이에 적어도 하나의 더미 셀과, 메모리 셀들(MC1 ~ MC8)과 접지 선택 트랜지스터(GST) 사이에 적어도 하나의 더미 셀을 더 포함할 수 있다.
한편, 도 11에 도시된 워드라인의 개수, 비트라인의 개수, 메모리 셀들의 개수, 스트링 선택 라인들의 개수, 접지 선택 라인들의 개수가 제한되지 않는다고 이해되어야 할 것이다.
본 발명은 SSD(solid state drive)에 적용 가능하다.
도 12는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 블록도이다. 도 12를 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다.
비휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. 비휘발성 메모리 장치들(1100) 중 일부는 제 1 블록 그룹(111, 도 1 참조)이고 일부는 제 2 블록 그룹(112, 도 1 참조)일 수 있다.
SSD 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다.
SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 가비지 컬렉션 관리 유닛(1240), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 동작에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 여기서 복수의 메모리 라인들은 캐시 라인들에 다양한 방법으로 맵핑 될 수 있다. 도 12에서 버퍼 메모리(1220)는 메모리 제어기(1200)의 내부에 위치하지만, 발명은 여기에 제한되지 않는다. 본 발명의 버퍼 메모리(1220)는 메모리 제어기(1200)의 외부에 위치할 수도 있다.
에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 에러 정정 회로(1230)는 비휘발성 메모리 장치(1100)로부터 수신된 데이터의 페일 비트(fail bit) 혹은 에러 비트(error bit)를 정정하기 위한 에러 정정 코드(ECC; error correction code)를 생성한다. 에러 정정 회로(1230)는 비휘발성 메모리 장치(1230)로 제공되는 데이터의 에러 정정 인코딩을 수행하여, 패리티(parity) 비트가 부가된 데이터를 형성한다. 패리티 비트는 비휘발성 메모리 장치(1230)에 저장될 수 있다. 또한, 에러 정정 회로(1230)는 비휘발성 메모리 장치(1100)로부터 출력된 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다. 에러정정 회로(1230)는 패리티(parity)를 사용하여 에러를 정정할 수 있다. 에러 정정 회로(1230)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러를 정정할 수 있다.
도시되지 않았지만, 메모리 제어기(1200)를 동작하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
가비지 컬렉션 관리 유닛(1240)은 도 1에 도시된 가비지 컬렉션 관리 유닛(122)으로 구현될 수 있다. 가비지 컬렉션 관리 유닛(1240)은 노멀 데이터와 메타 데이터에 대하여 개별적/독립적으로 가비지 컬렉션을 수행하도록 구현될 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 호스트 인터페이스(1250)는 PATA 버스(parallel AT attachment bus), SATA 버스(serial AT attachment bus), SCSI, USB, PCIe, SD, SAS, UFS, 낸드 인터페이스 등을 통해 호스트와 연결될 수 있다.
비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)는 무선 통신 기능(예를 들어, WiFi)을 탑재할 수 있다.
본 발명의 실시 예에 따른 SSD(1000)는 노멀 데이터와 메타 데이터를 개별적으로 가비지 컬렉션을 선택 및 수행함으로써, 최적의 성능을 꾀할 수 있다.
본 발명은 eMMC(embedded multi media card, moviNAND, iNAND)에도 적용 가능하다. 도 13은 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 블록도이다. 도 13을 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다.
낸드 플래시 메모리 장치(2100)는 제 1 블록 그룹(111, 도 1 참조) 및 제 2 블록 그룹(112, 도 1 참조)를 각각 혹은 모두 구비한 적어도 하나의 낸드 플래시 메모리 장치로 구현될 수 있다.
메모리 제어기(2200)는 채널을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 도 1에 도시된 메모리 제어기(120)로 구현될 수 있다.
메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 가비지 컬렉션 관리 유닛(2240) 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함할 수 있다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다.
가비지 컬렉션 관리 유닛(2240)은 도 1에 도시된 가비지 컬렉션 관리 유닛(122)으로 구현될 수 있다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다. 또 다른 실시 예에 있어서, 호스트 인터페이스(2250)는 낸드 인터페이스일 수 있다.
eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2260)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(2200)에 제공된다. 실시 예에 있어서, eMMC(1000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명의 실시 예에 따른 eMMC(2000)는 저널 데이터에 대한 가비지 컬렉션을 별도로 수행함으로써, 낸드 플래시 메모리 장치의 수명을 연장시킬 수 있다.
본 발명은 UFS(universal flash storage)에도 적용 가능하다. 도 14는 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), 적어도 하나의 임베디드 UFS 장치(3200), 착탈형 UFS 카드(3300)를 포함할 수 있다. UFS 호스트(3100) 및 임베디드 UFS 장치(3200) 사이의 통신 및 UFS 호스트(3100) 및 착탈형 UFS 카드(3300) 사이의 통신은 M-PHY 계층을 통하여 수행될 수 있다.
임베디드 UFS 장치(3200), 및 착탈형 UFS 카드(3300) 중 적어도 하나는 도 1에 도시된 저장 장치(100)로 구현될 수 있다.
한편, 호스트(3100)는 착탈형 UFS 카드(3300)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신하도록 브릿지(bridge)를 구비할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3300)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC, eMMC SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
본 발명은 모바일 장치에도 적용 가능하다. 도 15는 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 블록도이다. 도 15를 참조하면, 모바일 장치(4000)는 통합 프로세서(ModAP, 4100), 버퍼 메모리(4200), 디스플레이/터치 모듈(4300) 및 저장 장치(4400)를 포함한다.
통합 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작 및 외부와의 유선/무선 통신을 제어하도록 구현될 수 있다. 버퍼 메모리(4200)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 디스플레이/터치 모듈(4300)은 통합 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 1 내지 도 14에서 설명된 바와 같이 데이터의 속성을 근거로 한 가비지 컬렉션 정책에 따라 가비지 컬렉션을 수행할 수 있다.
본 발명의 실시 예에 따른 모바일 장치(4000)는 최적의 가비지 컬렉션을 수행함으로써, 최적의 동작 성능을 꾀할 수 있다.
도 16은 본 발명의 실시 예에 따른 NAND MCP(multi chip package)에 대한 블록도이다. 도 16을 참조하면, NAND MCP(5000)는 낸드 플래시 메모리 장치(5100) 및 LPDDR(low power double data rate) 메모리 장치(5200)를 하나의 패키지로 구성한다.
낸드 플래시 메모리 장치(5100)는 도 1에 도시된 노멀 블록 그룹(111) 및 데이터 태그 블록(112)을 포함할 수 잇다. LPDDR 메모리 장치(5200)는 모바일 전용 SDRAM(synchronous dynamic random access memory)일 수 있다.
칩셋은 낸드 플래시 메모리 장치(5100) 및 mDDR 메모리 장치(5200) 각각을 관리할 수 있다. 특히, 칩셋은 도 1 내지 도 3에서 설명된 가비지 컬렉션 정책에 따라 낸드 플래시 메모리 장치(5100)의 가비지 컬렉션을 관리할 수 있다.
도 17은 본 발명의 실시 예에 따른 eMCP(embedded MCP)에 대한 블록도이다. 도 17을 참조하면, eMCP(6000)는 eMMC(6100) 및 LPDDR(low power double data rate) 메모리 장치(6200)를 하나의 패키지로 구성한다. eMMC(6100)는, 도 13에 도시된 eMMC(2000)로 구현될 수 있다. LPDDR 메모리 장치(5200)는 모바일 전용 SDRAM(synchronous dynamic random access memory)일 수 있다. 칩셋은 eMCP(6000)을 관리할 수 있다.
본 발명은 호스트가 특정 데이터 그룹을 데이터 태그로 구분하여 쓸 수 있는 환경에서, 데이터 태그의 쓰기 패턴의 성질을 이용하여 데이터 블록 그룹 간 서로 다른 가비지 컬렉션 기준을 적용할 수 있다. 예를 들어, 데이터 태그로 명시된 블록 그룹의 쓰기 어드레스 범위의 크기보다 많은 블록 영역이 할당되기 전에는, 가비지 컬렉션 요청이 있더라도 가비지 컬렉션 대상에서 제외될 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 상술 된 저장 장치들은, 스마트 폰, 웨어러블 워치, 스마트 글래스 등 다양한 모바일 장치들에 적용 가능하다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10: 컴퓨팅 시스템
100: 저장 장치
200: 호스트
111: 제 1 블록 그룹
112: 제 2 블록 그룹
120: 메모리 제어기
121: 호스트 인터페이스
122: 가비지 컬렉션 관리 유닛
123: 비휘발성 메모리 인터페이스

Claims (20)

  1. 저장 장치의 가비지 컬렉션 방법에 있어서:
    가비지 컬렉션 비용을 계산하는 단계;
    상기 가비지 컬렉션 비용이 제 1 값을 초과하는 지를 판별하는 단계;
    상기 가비지 컬렉션 비용이 상기 제 1 값을 초과할 때, 상기 가비지 컬렉션 비용이 제 2 값을 초과하는 지를 판별하는 단계;
    상기 가비지 컬렉션 비용이 상기 제 2 값을 초과하지 않을 때, 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하는 단계; 및
    상기 가비지 컬렉션 비용이 상기 제 2 값을 초과할 때, 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 블록 그룹은 노멀 데이터를 저장하는 메모리 블록이고,
    상기 제 2 블록 그룹은 메타 데이터를 저장하는 메모리 블록인 방법.
  3. 제 2 항에 있어서,
    상기 메타 데이터는 데이터 태그를 갖는 방법.
  4. 제 3 항에 있어서,
    상기 메타 데이터는 저널 데이터인 방법.
  5. 제 1 항에 있어서,
    상기 가비지 컬렉션 비용은, 가비지 컬렉션 대상 블록의 개수 및 가비지 컬렉션으로 발생되는 새로운 프리 블록의 개수를 이용하여 계산되는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 가비지 컬렉션 및 상기 제 2 가비지 컬렉션 중 어느 하나를 수행할 지를 선택하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    입력 데이터가 사전에 결정된 어드레스 영역 범위를 벗어날 때, 상기 제 2 가비지 컬렉션이 수행되는 방법.
  8. 저장 장치의 가비지 컬렉션 방법에 있어서:
    제 1 기준에 근거로 하여 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하는 단계; 및
    상기 제1 기준과 다른 제 2 기준에 근거로 하여 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행하는 단계를 포함하고,
    상기 제 1 블록 그룹은 노멀 데이터를 저장하는 노멀 블록 그룹이고,
    상기 제 2 블록 그룹은 데이터 태그를 가진 메타 데이터를 저장하는 데이터 태그 블록 그룹인 방법.
  9. 삭제
  10. 삭제
  11. 제 8 항에 있어서,
    상기 메타 데이터는 안드로이드 시스템의 ext4 저널 데이터이고,
    상기 ext4 저널 데이터는 약속된 패턴으로 입력되는 방법.
  12. 노멀 데이터를 저장하는 제 1 블록 그룹;
    데이터 태그를 가진 메타 데이터를 저장하는 제 2 블록 그룹; 및
    상기 제 1 블록 그룹과 상기 제 2 블록 그룹을 제어하는 메모리 제어기를 포함하고,
    상기 메모리 제어기는,
    제 1 기준에 근거로 하여 상기 제 1 블록 그룹에 대한 제 1 가비지 컬렉션을 수행하고,
    상기 제 1 기준과 다른 제 2 기준에 근거로 하여 상기 제 2 블록 그룹에 대한 제 2 가비지 컬렉션을 수행하는 저장 장치.
  13. 제 12 항에 있어서,
    상기 제 1 블록 그룹은 제 1 적어도 하나의 비휘발성 메모리 장치에 포함되고,
    상기 제 2 블록 그룹은 제 2 적어도 하나의 비휘발성 메모리 장치에 포함되는 저장 장치.
  14. 제 12 항에 있어서,
    상기 제 1 블록 그룹의 오버 프로비젼 영역 비율과 상기 제 2 블록 그룹의 오버 프로비젼 영역 비율은 서로 다른 저장 장치.
  15. 제 12 항에 있어서,
    상기 제 2 기준은 입력 데이터의 어드레스 범위인 저장 장치.
  16. 제 12 항에 있어서,
    상기 저장 장치는 eMMC(embedded multi media card) 및 UFS(universal flash storage) 중 어느 하나인 저장 장치.
  17. 저장 장치의 가비지 컬렉션 방법에 있어서:
    제 1 블록 그룹과 제 2 블록 그룹에 대한 가비지 컬렉션 비용들을 계산하는 단계;
    상기 제 1 블록 그룹의 가비지 컬렉션 비용이 상기 제 2 블록 그룹의 가비지 컬렉션 비용보다 큰 지를 판별하는 단계;
    상기 제 2 블록 그룹의 유효 페이지들의 어드레스 범위가 사전에 결정된 어드레스 범위를 벗어나는 지를 판별하는 단계;
    상기 어드레스 범위가 상기 사전에 결정된 어드레스 범위를 벗어날 때 가비지 컬렉션 대상으로 상기 제 2 블록 그룹을 선택하는 단계; 및
    상기 선택된 제 2 블록 그룹에 대한 가비지 컬렉션을 수행하는 단계를 포함하는 방법.
  18. 제 17 항에 있어서,
    상기 제 1 블록 그룹은 노멀 데이터를 저장하는 노멀 블록 그룹이고,
    상기 제 2 블록 그룹은 데이터 태그를 갖는 메타 데이터를 저장하는 데이터 태그 블록 그룹인 방법.
  19. 제 17 항에 있어서,
    상기 제 1 블록 그룹의 가비지 컬렉션 비용이 상기 제 2 블록 그룹의 가비지 컬렉션 비용보다 크지 않을 때, 상기 가비지 컬렉션 대상으로 상기 제 1 블록 그룹을 선택하는 단계; 및
    상기 선택된 제 1 블록 그룹에 대한 가비지 컬렉션을 수행하는 단계를 더 포함하는 방법.
  20. 제 17 항에 있어서,
    상기 어드레스 범위가 상기 사전에 결정된 어드레스 범위를 벗어나지 않을 때, 상기 가비지 컬렉션 대상으로 상기 제 1 블록 그룹을 선택하는 단계; 및
    상기 선택된 제 1 블록 그룹에 대한 가비지 컬렉션을 수행하는 단계를 더 포함하는 방법.
KR1020150092950A 2015-06-30 2015-06-30 저장 장치 및 그것의 가비지 컬렉션 방법 KR102509540B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150092950A KR102509540B1 (ko) 2015-06-30 2015-06-30 저장 장치 및 그것의 가비지 컬렉션 방법
US15/194,689 US10719438B2 (en) 2015-06-30 2016-06-28 Storage device and garbage collection method thereof
US16/903,519 US11645199B2 (en) 2015-06-30 2020-06-17 Storage device and garbage collection method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150092950A KR102509540B1 (ko) 2015-06-30 2015-06-30 저장 장치 및 그것의 가비지 컬렉션 방법

Publications (2)

Publication Number Publication Date
KR20170003776A KR20170003776A (ko) 2017-01-10
KR102509540B1 true KR102509540B1 (ko) 2023-03-14

Family

ID=57811785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150092950A KR102509540B1 (ko) 2015-06-30 2015-06-30 저장 장치 및 그것의 가비지 컬렉션 방법

Country Status (2)

Country Link
US (2) US10719438B2 (ko)
KR (1) KR102509540B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620846B2 (en) * 2016-10-26 2020-04-14 ScaleFlux, Inc. Enhancing flash translation layer to improve performance of databases and filesystems
KR20180076425A (ko) * 2016-12-27 2018-07-06 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US10521143B2 (en) * 2017-03-23 2019-12-31 Netapp Inc. Composite aggregate architecture
US10248562B2 (en) 2017-06-30 2019-04-02 Microsoft Technology Licensing, Llc Cost-based garbage collection scheduling in a distributed storage environment
US10241716B2 (en) 2017-06-30 2019-03-26 Microsoft Technology Licensing, Llc Global occupancy aggregator for global garbage collection scheduling
KR20190005307A (ko) * 2017-07-06 2019-01-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190040607A (ko) * 2017-10-11 2019-04-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102457400B1 (ko) * 2017-11-16 2022-10-21 삼성전자주식회사 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템
CN108573720B (zh) * 2018-03-12 2024-04-19 深圳市江波龙电子股份有限公司 一种lpddr芯片以及兼容设计电路板
US10838621B2 (en) * 2018-08-14 2020-11-17 Silicon Motion, Inc. Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection
KR102585883B1 (ko) 2018-09-18 2023-10-10 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 메모리 시스템
US10824556B2 (en) * 2018-11-05 2020-11-03 International Business Machines Corporation Adaptive garbage collection (GC) utilization for grid storage systems
KR20200064499A (ko) 2018-11-29 2020-06-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200068259A (ko) 2018-12-05 2020-06-15 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN109947405A (zh) * 2019-01-30 2019-06-28 深圳市赛格车圣科技有限公司 基于车身控制器的软件设计方法与系统
KR20200098847A (ko) * 2019-02-13 2020-08-21 삼성전자주식회사 전자장치 및 그 제어방법
JP2020170477A (ja) * 2019-04-05 2020-10-15 株式会社バッファロー 記憶装置、その制御方法、及びプログラム
KR20210004613A (ko) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN115803719A (zh) * 2020-07-17 2023-03-14 美光科技公司 视频数据和文件系统元数据的存储
US11954346B2 (en) * 2021-04-23 2024-04-09 EMC IP Holding Company LLC Using multi-stream storage devices in log structured storage system
US11755237B2 (en) * 2021-08-31 2023-09-12 Micron Technology, Inc. Overwriting at a memory system
CN117909250A (zh) * 2022-10-11 2024-04-19 成都华为技术有限公司 固态硬盘配置方法、垃圾回收方法以及相关设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789406B1 (ko) 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434575B1 (en) 1998-11-12 2002-08-13 International Business Machines Corporation Method of instrumenting garbage collection generating a trace file making a single pass analysis of object heap
US6493730B1 (en) 2000-10-10 2002-12-10 Sun Microsystems, Inc. Efficient object faulting with generational garbage collection
US7181732B2 (en) 2001-11-14 2007-02-20 Sun Microsystems, Inc. Method and apparatus for facilitating lazy type tagging for compiled activations
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US8825718B2 (en) 2006-12-28 2014-09-02 Oracle America, Inc. Methods and apparatus for marking objects for garbage collection in an object-based memory system
US8650228B2 (en) 2008-04-14 2014-02-11 Roderick B. Wideman Methods and systems for space management in data de-duplication
KR101114125B1 (ko) * 2009-04-17 2012-02-20 고려대학교 산학협력단 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법
KR101067018B1 (ko) * 2009-04-17 2011-09-22 서울대학교산학협력단 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
JP6183876B2 (ja) * 2012-03-30 2017-08-23 日本電気株式会社 レプリケーション装置、レプリケーション方法及びプログラム
US8910017B2 (en) 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
US20150222705A1 (en) * 2012-09-06 2015-08-06 Pi-Coral, Inc. Large-scale data storage and delivery system
WO2014047159A1 (en) 2012-09-21 2014-03-27 Violin Memory Inc. Write cache sorting
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US20170123700A1 (en) * 2015-11-03 2017-05-04 Samsung Electronics Co., Ltd. Io redirection methods with cost estimation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789406B1 (ko) 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
곽현호, 신동군, '부분 가비지 컬렉션을 이용한 로그구조 파일시스템의 쓰기성능 개선', 한국정보과학회 논문지, vol 41, no 12, pp1026-1034, 2014.12.31
장시웅, 'cold 블록 영역과 hot 블록 영역의 주기적인 교환을 통한 wear-leveling 향상 기법, 한국해양정보통신학회 2008 춘계종합학술대회, pp175-178, 2008.05.30

Also Published As

Publication number Publication date
US10719438B2 (en) 2020-07-21
US20200320001A1 (en) 2020-10-08
US20190155725A9 (en) 2019-05-23
US11645199B2 (en) 2023-05-09
KR20170003776A (ko) 2017-01-10
US20170371781A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
KR102509540B1 (ko) 저장 장치 및 그것의 가비지 컬렉션 방법
KR102233074B1 (ko) 저장 장치 및 그것의 신뢰성 검증 방법
CN108121669B (zh) 存储器系统及其操作方法
US9921908B2 (en) Storage device and read reclaim and read method thereof
US9836219B2 (en) Storage device and read methods thereof
US10452431B2 (en) Data processing system and operating method thereof
CN105739914B (zh) 数据处理系统及其操作方法
US11681554B2 (en) Logical address distribution in multicore memory system
KR102468751B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN106776352B (zh) 存储器系统和存储器系统的操作方法
US20160335179A1 (en) Data separation by delaying hot block garbage collection
KR102364381B1 (ko) 메모리 시스템 및 그의 동작방법
KR20160075174A (ko) 메모리 시스템 및 그 동작방법
US9858000B2 (en) Storage device and sustained status accelerating method thereof
KR20170059658A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20170061218A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102475798B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN106126437B (zh) 存储系统
CN111273856B (zh) 控制器以及控制器的操作方法
CN106406749B (zh) 存储系统及其操作方法
KR102571629B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20170073944A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법
KR20170027036A (ko) 데이터 처리 시스템
CN109739681B (zh) 具有共享缓冲器架构的存储器系统及其操作方法
CN109918315B (zh) 存储器系统及存储器系统的操作方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant