KR101631409B1 - 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법 - Google Patents

드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법 Download PDF

Info

Publication number
KR101631409B1
KR101631409B1 KR1020150031893A KR20150031893A KR101631409B1 KR 101631409 B1 KR101631409 B1 KR 101631409B1 KR 1020150031893 A KR1020150031893 A KR 1020150031893A KR 20150031893 A KR20150031893 A KR 20150031893A KR 101631409 B1 KR101631409 B1 KR 101631409B1
Authority
KR
South Korea
Prior art keywords
storage device
garbage collection
state
input
flash memory
Prior art date
Application number
KR1020150031893A
Other languages
English (en)
Inventor
차재혁
최종무
윤성로
원유집
강수용
이태화
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020150031893A priority Critical patent/KR101631409B1/ko
Application granted granted Critical
Publication of KR101631409B1 publication Critical patent/KR101631409B1/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

Abstract

본 발명은 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법에 관한 것이다.
구체적으로 가비지 컬렉션 수행 방법은 저장 장치의 메모리에서 발생된 입출력 빈도에 따라 저장 장치의 상태를 결정하여 저장 장치의 상태에 따라 상기 저장 장치의 메모리에 대해 가비지 컬렉션을 수행하는 방법이다.

Description

드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법{STORAGE APPARATUS INCLUDING DRIVE CONTROLLER, THE DRIVE CONTROLLER FOR PERFORMING GARBAGE COLLECTION PERFORM METHOD}
아래의 설명은 드라이브 컨트롤러를 포함하는 저장 장치, 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법에 관한 것으로 구체적으로는 저장 장치의 메모리에서 발생된 입출력 빈도를 고려하여 가비지 컬렉션을 수행하는 가비지 컬렉션 수행 방법에 관한 것이다.
플래시 메모리 기반의 저장 장치는 플래시 메모리에 저장된 데이터에 대하여 읽기, 쓰기 등의 연산을 수행할 수 있다. 이 때, 저장 장치는 플래시 메모리의 덮어쓰기 불가능, 지우기 회수 제한 등의 특징으로 인하여 FTL 계층을 통해 플래시 메모리에 대한 특징을 보완하고 있다.
다시 말해, 저장 장치는 FTL 계층의 S/W 동작을 수행하는 드라이브 컨트롤러를 이용하여 호스트의 입출력 요청에 따른 데이터의 읽기, 쓰기 등의 수행할 수 있다. 드라이브 컨트롤러는 호스트로부터 요청된 논리 페이지와 물리 페이지를 매핑하는 동작을 수행함으로써, 호스트의 입출력 요청에 따른 플래시 메모리의 연산 동작을 수행할 수 있다.
이 때, 드라이브 컨트롤러는 플래시 메모리에 저장된 데이터에 대한 덮어쓰기 동작을 수행하기 위하여 out-of-place 동작을 수행함에 따라 가비지 컬렉션을 수행해야 한다. 다시 말해, 플래시 메모리는 메모리에 대한 덮어쓰기 동작 등의 연산으로 인하여 특정 연산을 수행하기 위해 할당된 메모리에 대응하여 참조하는 변수가 없는 메모리가 발생할 수 있다. 따라서, 드라이브 컨트롤러는 플래시 메모리 내에서 사용하지 않는 메모리를 다시 사용할 수 있도록 가비지 컬렉션을 수행할 수 있다.
그러나, 가비지 컬렉션은 지우기 동작으로 읽기/쓰기 동작에 비해 느리고 블록 내 유효 페이지를 복사 해야하므로 성능에 큰 영향을 끼친다. 즉, 저장 장치는 가비지 컬렉션을 수행하는 동작에 호스트의 입출력 요청이 전달되는 경우, 기존에 수행하던 가비지 컬렉션의 동작을 멈추고, 전달된 입출력 요청을 수행하게 된다. 결국, 저장 장치는 호스트의 입출력 요청이 지속적으로 전달되면 우선 순위에 따라 가비지 컬렉션이 수행되지 않게 되고, 이로 인하여 선점을 통한 플래시 메모리의 성능이 저하된다.
따라서, 입출력 요청에 따른 선점으로 인한 플래시 메모리의 성능 저하를 최소화할 수 있는 가비지 컬렉션이 필요하다.
본 발명은 유휴 상태 이전에 발생된 입출력 빈도에 따라 저장 장치의 상태를 구분하여 가비지 컬렉션의 세부 동작을 다르게 수행하는 가비지 컬렉션 수행 방법을 제공할 수 있다.
본 발명은 저장 장치의 상태를 고려하여 저장 장치에 대해 입출력 요청 시, 유휴 상태에서 동작 상태로 전환되거나 또는 가비지 컬렉션을 계속 진행하는 가비지 컬렉션 수행 방법을 제공할 수 있다.
일실시예에 따른 저장 장치의 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법은 저장 장치의 플래시 메모리에서 발생된 입출력 빈도를 판단하는 단계; 상기 입출력 빈도를 이용하여 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하기 위한 저장 장치의 상태를 결정하는 단계; 및 상기 저장 장치의 상태에 따라 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하는 단계를 포함할 수 있다.
일실시예에 따른 입출력 빈도를 판단하는 단계는 상기 저장 장치가 유휴 상태(IDLE)인 경우, 유휴 상태 이전에 발생된 입출력 빈도를 판단할 수 있다.
일실시예에 따른 입출력 빈도를 판단하는 단계는 상기 플래시 메모리의 사이즈 및 상기 플래시 메모리에 전송된 데이터가 저장된 물리페이지의 사이즈를 고려하여 입출력 빈도를 판단할 수 있다.
일실시예에 따른 저장 장치의 상태를 결정하는 단계는 상기 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션의 처리 정도가 낮은 상태로 결정할 수 있다.
일실시예에 따른 가비지 컬렉션을 수행하는 단계는 상기 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행하고, 상기 가비지 컬렉션의 세부 동작은, 상기 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기를 포함할 수 있다.
일실시예에 따른 가비지 컬렉션을 수행하는 단계는 상기 가비지 컬렉션의 처리 정도가 낮은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 낮아지도록 세부 동작을 수행하는 단계; 또는 상기 가비지 컬렉션의 처리 정도가 높은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 높아지도록 세부 동작을 수행하는 단계를 포함할 수 있다.
일실시예에 따른 저장 장치의 상태를 결정하는 단계는 상기 입출력 빈도에 따라 단계적으로 설정된 안전(Safe) 상태, 정상(Normal) 상태, 경고(Not-Safe) 상태, 위험(Dangerous) 상태 중 어느 하나로 저장 장치의 상태를 결정하고, 상기 가비지 컬렉션을 수행하는 단계는, 상기 저장 장치의 상태에 따라 상기 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기를 포함하는 세부 동작을 다르게 처리할 수 있다.
일실시예에 따른 가비지 컬렉션을 수행하는 단계는 상기 저장 장치의 상태가 안전 상태인 경우, 상기 저장 장치의 단일 플래시 메모리에 대하여 블록 지우기를 수행할 수 있다.
일실시예에 따른 가비지 컬렉션을 수행하는 단계는 상기 저장 장치의 상태가 정상 상태인 경우, 상기 저장 장치의 단일 플래시 메모리에 대하여 유효 페이지 복사 및 블록 지우기를 수행할 수 있다.
일실시예에 따른 가비지 컬렉션을 수행하는 단계는 상기 저장 장치의 상태가 경고 상태인 경우, 상기 저장 장치의 다중 플래시 메모리에 대하여 유효 페이지 복사와 관련된 동작 및 단일 플래시 메모리에 대하여 블록 지우기를 수행할 수 있다.
일실시예에 따른 가비지 컬렉션을 수행하는 단계는 상기 저장 장치의 상태가 위험 상태인 경우, 상기 저장 장치의 다중 플래시 메모리에 대하여 유효 페이지 복사 및 블록 지우기를 수행할 수 있다.
일실시예에 따른 가비지 컬렉션 수행 방법은 상기 저장 장치에 대해 입출력 요청이 발생하여 상기 저장 장치가 유휴 상태에서 동작 상태로 전환되는 경우, 상기 저장 장치의 상태에 따라 입출력 요청에 따라 입출력을 수행할 지 또는 가비지 컬렉션을 계속 진행할 지 여부를 판단하는 단계를 더 포함할 수 있다.
일실시예에 따른 가비지 컬렉션 수행 방법을 처리하는 드라이브 컨트롤러는 저장 장치의 플래시 메모리에서 발생된 입출력 빈도를 판단하고, 상기 입출력 빈도를 이용하여 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하기 위한 저장 장치의 상태를 결정하고, 상기 저장 장치의 상태에 따라 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션의 처리 정도가 낮은 상태로 결정할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행하고, 상기 가비지 컬렉션의 세부 동작은, 상기 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기를 포함할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 가비지 컬렉션의 처리 정도가 낮은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 낮아지도록 세부 동작을 수행하거나 또는 상기 가비지 컬렉션의 처리 정도가 높은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 높아지도록 세부 동작을 수행할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 입출력 빈도에 따라 단계적으로 설정된 안전(Safe) 상태, 정상(Normal) 상태, 경고(Not-Safe) 상태, 위험(Dangerous) 상태 중 어느 하나로 저장 장치의 상태를 결정할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 저장 장치에 대해 입출력 요청이 발생하여 상기 저장 장치가 유휴 상태에서 동작 상태로 전환되는 경우, 상기 저장 장치의 상태에 따라 입출력 요청에 따라 입출력을 수행할 지 또는 가비지 컬렉션을 계속 진행할 지 여부를 판단할 수 있다.
일실시예에 따른 저장 장치는 플래시 메모리; 및 저장 장치의 플래시 메모리에서 발생된 입출력 빈도를 판단하고, 상기 입출력 빈도를 이용하여 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하기 위한 저장 장치의 상태를 결정하고, 상기 저장 장치의 상태에 따라 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하는 드라이브 컨트롤러를 포함할 수 있다.
본 발명의 일실시예에 따르면 가비지 컬렉션 수행 방법은 저장 장치의 상태를 구분하여 가비지 컬렉션의 세부 동작을 다르게 수행함으로써, 가비지 컬렉션을 수행하는 도중에 입출력 요청이 전달되더라도 최소한의 보장 과정을 수행한 후에 입출력을 수행할 수 있다.
도 1은 일실시예에 따른 드라이브 컨트롤러를 포함하는 저장 장치에 대한 전체 구성도이다.
도 2는 일실시예에 따른 저장 장치의 상태를 구분하는 세부 동작을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행하는 동작을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 가비지 컬렉션 수행 방법을 설명하기 위한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 드라이브 컨트롤러를 포함하는 저장 장치에 대한 전체 구성도이다.
도 1을 참고하면, 저장 장치(102)는 호스트(101)로부터 전달되는 입출력 요청에 따라 플래시 메모리에 저장된 데이터에 대한 입출력을 수행할 수 있다. 이 때, 저장 장치(102)는 플래시 메모리 기반의 저장 장치로써, 데이터에 대한 덮어쓰기를 수행하는 경우, In Place Update를 수행하지 않아 가비지 컬렉션이 필요한 소자를 이용하는 장치를 포함할 수 있다. 일례로, 저장 장치는 플래시 메모리에서 데이터가 저장되어 있는 장소에 대해서는 덮어쓰기 기능을 수행하지 않는(In Place Update) 솔리드 스테이트 드라이브(SSD: SOLID STATE DRIVE), 임베디드 멀티 미디어 카드(eMMC: embedded Multi Media Card), USB(universal serial bus) 등의 장치 일 수 있다.
또한, 저장 장치(102)는 입출력 요청에 따라 플래시 메모리를 제어하기 위한 디바이스 컨트롤러(103)를 이용할 수 있다. 디바이스 컨트롤러(103)는 호스트로부터 전달된 입출력 요청에 따라 논리 페이지에 대응하여 데이터가 실제적으로 저장되는 플래시 메모리(204)의 물리 페이지를 매핑할 수 있다. 또한, 디바이스 컨트롤러(103)는 매핑된 물리 페이지를 플래시 메모리 컨트롤러(104)에 전달하고, 플래시 메모리 컨트롤러는 전달된 물리 페이지에 기초하여 플래시 메모리(204)에 대한 입출력 동작을 수행할 수 있다.
이 때, 디바이스 컨트롤러(103)는 플래시 메모리(105)에 저장된 데이터에 대한 덮어쓰기에 대한 입출력 요청을 수신할 수 있다. 앞에서 설명한 바와 같이 저장 장치(102)는 덮어쓰기 요청에 대응하여 In Place Update를 수행하지 않고, Out-Of-Place를 수행함에 따라 덮어쓰기 요청을 지원할 수 있다.
여기서, Out-Of-Place는 플래시 메모리에 저장된 데이터에 대한 덮어쓰기 요청이 발생한 경우, 덮어쓰기 요청이 발생된 데이터의 물리 페이지가 아닌 새로운 물리 페이지를 할당함으로써, 덮어쓰기 요청된 데이터를 저장하는 기법을 의미할 수 있다.
즉, 디바이스 컨트롤러(103)는 덮어쓰기 요청에 대응하여 논리 페이지에 매핑된 기존의 물리 페이지가 아닌 덮어쓰기 요청에 따라 데이터를 저장할 새로운 물리 페이지를 할당할 수 있다.
일례로, 디바이스 컨트롤러(103)는 데이터 A를 저장하기 위해 논리 페이지 A에 대응하여 물리 페이지 A를 매핑할 수 있다. 이후, 디바이스 컨트롤러(103)는 업데이트된 데이터 A에 대한 덮어쓰기 요청을 수신할 수 있다. 이 때, 디바이스 컨트롤러(103)는 업데이트된 데이터 A에 대한 덮어쓰기 요청을 수행하기 위하여 논리 페이지 A에 매핑된 물리 페이지 A를 할당하는 것이 아니라, 물리 페이지 A'에 업데이트된 데이터 A를 저장할 수 있다. 즉, 저장 장치(102)는 데이터가 저장된 메모리에 대한 사용이 불가능함에 따라 새로운 메모리를 할당함으로써, 덮어쓰기 요청을 지원할 수 있다.
이 때, 디바이스 컨트롤러(103)는 기존의 논리 페이지와 매핑된 물리 페이지에 대하여 더 이상 사용되지 못함에 따라 가비지 컬렉션을 수행할 수 있다. 즉, 디바이스 컨트롤러(103)는 더 이상 사용하지 않는 물리 페이지에 대하여 다시 데이터를 저장할 수 있도록 가비지 컬렉션을 수행하고, 이에 따라 플래시 메모리의 메모리 부족 현상을 최소화할 수 있다.
이를 위해, 디바이스 컨트롤러(103)는 저장 장치가 유휴 상태 시. 유휴 상태 이전에 발생된 입출력 빈도에 따른 저장 장치의 상태를 고려하여 가비지 컬렉션을 수행할 수 있다. 또한, 디바이스 컨트롤러(103)는 가비지 컬렉션을 수행하는 도중에 입출력 요청이 발생되더라도 플래시 메모리에 대한 최소한의 보장 과정을 수행한 이후에 입출력 동작을 수행할 수 있다.
다시 말해, 디바이스 컨트롤러(103)는 가비지 컬렉션이 제대로 수행되지 않은 상태에서 입출력 요청이 지속하게 발생되는 경우, 메모리 부족 현상으로 인하여 추후 많은 물리 페이지에 대하여 한번에 가비지 컬렉션을 수행해야 하는 경우가 발생할 수 있다. 따라서, 디바이스 컨트롤러(103)는 입출력 요청과 가비지 컬렉션을 수행하는 두 가지 성능에 대한 저하를 방지하면서 성능의 불균형을 방지할 수 있도록 저장 장치의 상태에 따라 최소한의 가비지 컬렉션을 수행하는 가비지 컬렉션 수행 방법을 제안하고 있다.
도 2는 일실시예에 따른 저장 장치의 상태를 구분하는 세부 동작을 설명하기 위한 도면이다.
도 2를 참고하면, 디바이스 컨트롤러는 플래시 메모리에 대한 입출력 요청이 발생되지 않는 유휴 상태 또는 플래시 메모리 부족 현상이 발생하는 경우에 대응하여 가비지 컬렉션을 수행할 수 있다. 본 발명은 플래시 메모리 부족 현상이 발생하기 이전에 최소한의 가비지 컬렉션을 수행하기 위한 것으로 유휴 상태에 따른 가비지 컬렉션 수행 방법을 설명하도록 한다.
도 2의 (a)를 살펴보면, 디바이스 컨트롤러는 가비지 컬렉션을 수행하기 위하여 저장 장치가 유휴 상태(201)인지를 확인할 수 있다. 유휴 상태(201)는 논리 페이지와 물리 페이지가 매핑되어 있으나, 물리 페이지에 저장된 데이터에 대한 입출력 요청 또는 제어 요청이 전달되지 않은 상태를 의미할 수 있다.
그리고, 디바이스 컨트롤러는 유휴 상태(201) 이전에 저장 장치에서 발생된 입출력 빈도를 판단할 수 있다. 다시 말해, 디바이스 컨트롤러는 저장 장치가 동작 상태(202)에서 호스트로부터 전달된 입출력 요청에 대응하는 입출력 빈도를 판단할 수 있다.
구체적으로, 디바이스 컨트롤러는 IO Burstiness를 정의하고, 정의된 IO Burstiness에 대응하여 입출력 빈도를 판단할 수 있다. 여기서, IO Burstiness는 저장 장치의 플래시 메모리를 관리하는 플래시 메모리 컨트롤러에 존재하는 입출력에 대한 개수를 의미할 수 있다. 즉, 디바이스 컨트롤러는 호스트로부터 저장 장치로 전달된 입출력 요청에 따른 발생 빈도를 판단할 수 있다. 일례로, 디바이스 컨트롤러는 IO Burstiness에 따라 저장 장치의 write buffer에 존재하는 입출력의 수(IO가 발생한 개수)를 판단할 수 있다.
도 2의 (b)를 살펴보면, 디바이스 컨트롤러는 유휴 상태(201) 이전에 플래시 메모리의 동작 상태에서 발생한 입출력 빈도를 고려하여 저장 장치의 상태를 판단할 수 있다. 구체적으로 디바이스 컨트롤러는 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션에 대한 처리 정도를 낮은 상태로 결정할 수 있다. 즉, 디바이스 컨트롤러는 현재 저장 장치에 대한 입출력 빈도를 고려하여 가비지 컬렉션의 세부 동작을 다르게 동작하기 위하여 상술한 바와 같이 상태를 결정할 수 있다.
이를 위해 디바이스 컨트롤러는 입출력 빈도의 계산 범위를 나타내는 수학식 1에 기초하여 플래시 메모리의 동작 상태(202)에서 발생한 입출력 빈도에 따른 판단할 수 있다. 수학식 1은 다음과 같다.
Figure 112015022485663-pat00001
여기서, N은 플래시 메모리에서 수용할 수 있는 최대 입출력 빈도를 의미할 수 있다. 그리고, N은 Write Buffer Size / Page Size에 의해 결정될 수 있다. 여기서, Write Buffer Size는 플래시 메모리의 총 사이즈(크기)를 의미하고, Page Size는 플래시 메모리에 저장된 데이터에 대한 물리 페이지의 사이즈를 의미할 수 있다. 그리고, 디바이스 컨트롤러는 수학식 1을 기반으로 0과 N의 사이에 존재하는 입출력 빈도를 계산할 수 있다.
또한, 입출력 빈도는 N의 값에 가까워 질수록 동작 상태 시, 입출력 요청이 많이 발생했음을 의미할 수 있다. 반대로, 입출력 빈도는 0의 값에 가까워 질수록 동상 상태 시, 입출력 요청이 N의 값에 비해 상대적으로 적게 발생했음을 의미할 수 있다.
즉, 디바이스 컨트롤러는 입출력 빈도가 N의 값에 가까워질수록 입출력 요청이 많이 발생함에 따라 이 때, 가비지 컬렉션을 수행할 경우, 성능 저하가 발생할 수 있다. 따라서, 디바이스 컨트롤러는 입출력 빈도에 따라 적응적으로 가비지 컬렉션을 수행할 수 있도록 저장 장치의 상태를 구분할 수 있다.
그리고, 디바이스 컨트롤러는 구분된 저장 장치의 상태에 따라 가비지 컬렉션의 세부 구성을 상이하게 수행할 수 있다. 가비지 컬렉션의 세부 구성을 상이하게 수행하는 자세한 구성은 도 3을 통해 설명하도록 한다.
도 3은 일실시예에 따른 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행하는 동작을 설명하기 위한 도면이다.
도 3을 참고하면, 가비지 컬렉션은 플래시 메모리의 메모리 중에서 더 이상 사용되지 않은 메모리에 대하여 재사용할 수 있도록 메모리를 정리하는 동작을 수행할 수 있다. 이를 위해 가비지 컬렉션은 결정된 상태에 따라 가비지 컬렉션의 세부 동작이 상이할 수 있다.
다시 말해, 가비지 컬렉션은 입출력 요청에 따라 입출력에 대한 처리 빈도에 중점 두거나 또는 가비지 컬렉션에 대한 처리 빈도에 중점을 두어 동작할 수 있다. 즉, 가비지 컬렉션은 가비지 컬렉션의 처리 정도가 낮은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 낮아지도록 세부 동작을 수행하거나 또는, 가비지 컬렉션의 처리 정도가 높은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 높아지도록 세부 동작을 수행할 수 있다.
또한, 상술한 구성을 기반으로 가비지 컬렉션은 안전(Safe) 상태, 정상(Normal) 상태, 경고(Non-Safe) 상태, 위험(Danger) 상태로 구분할 수 있다. 또한, 가비지 컬렉션은 각각의 상태에 대하여 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기에 대하여 상이하게 동작할 수 있다.
구체적으로 디바이스 컨트롤러는 상술한 가비지 컬렉션의 3 단계의 특성을 기반으로 저장 장치의 상태에 따라 가비지 컬렉션의 세부 구성을 다르게 수행할 수 있다. 다시 말해, 디바이스 컨트롤러는 입출력 빈도가 높을수록 저장 장치의 상태를 안전 상태로 구분하고, 입출력 요청에 중점을 두어 동작할 수 있다. 반대로, 디바이스 컨트롤러는 입출력 빈도가 낮을수록 저장 장치의 상태를 위험 상태로 구분하고, 가비지 컬렉션에 중점을 두어 동작할 수 있다.
즉, 안전 상태는 동작 상태 시, 입출력 빈도가 높았다는 것으로 플래시 메모리에 대한 연산 동작이 상대적으로 많이 이루어진 상태임을 확인할 수 있다. 다시 말해, 안전 상태는 연상 동작이 많이 이루어짐에 따라 더 이상 사용되지 않는 메모리가 많이 발생했다는 의미를 나타낼 수 있다. 또한, 안전 상태는 가비지 컬렉션을 수행한다 하더라도 호스트로부터 입출력 요청이 빈번하게 발생할 수 있는 상태를 의미할 수 있다. 따라서, 디바이스 컨트롤러는 빈번한 입출력 요청에 따라 플래시 메모리에 대한 재 사용률을 높이기 위하여 안전 상태 시, 플래시 메모리에서 사용되지 않은 메모리를 삭제하는 동작을 수행할 수 있다.
이 때, 디바이스 컨트롤러는 유효한 물리 페이지가 존재하지 않는 메모리에 대한 블록을 삭제할 수 있다. 또한, 디바이스 컨트롤러는 안전 상태에 따라 가비지 컬렉션을 수행하는 도중에 입출력 요청이 발생하는 경우, 입출력 요청에 중점을 두어, 입출력 동작을 수행할 수 있다.
즉, 안전 상태는 가비지 컬렉션에서 수행하는 동작 중에서 블록 지우기 동작만을 수행함에 따라 입출력 요청이 발생하더라고 유효한 물리페이지가 존재하지 않는 블록만을 지우고, 신속하게 입출력 동작을 수행할 수 있다.
일례로, 안전 상태는 1분 간격으로 호스트로부터 입출력 요청이 발생하는 상태라고 가정할 수 있다. 그리고, 디바이스 컨트롤러는 안전 상태에 따라 빈번하게 발생하는 입출력 요청에 따라 플래시 메모리 부족 현상이 발생하지 않도록 블록 지우기 동작을 수행하는 가비지 컬렉션을 수행할 수 있다. 즉, 디바이스 컨트롤러는 저장 장치가 유휴 상태에서 동작 상태로 전환됨에 따라 입출력 요청에 따라 입출력을 수행할 수 있다.
반면, 안전 상태를 제외한 나머지 상태는 안전 상태보다는 동작 상태 시, 입출력 빈도가 낮았다는 것으로 플래시 메모리에 대한 연상 동작이 상태적으로 적게 이루어진 상태임을 확인할 수 있다. 이에 따라 안전 상태를 제외한 나머지 상태는 입출력 요청에 중점을 두기보다는 가비지 컬렉션에 중점을 두어 수행할 수 있다.
이에 따라 정상 상태는 안전 상태와 비교하여 입출력 빈도가 상대적으로 낮은 상태를 의미할 수 있다. 즉, 정상 상태는 안전 상태에 비해 연산 동작에 의해 더 이상 사용하지 않은 메모리가 적게 발생하였다는 것을 의미할 수 있다. 따라서, 정상 상태는 안전 상태보다 한 단계 동작을 더 수행할 수 있다.
즉, 정상 상태는 유효한 물리 페이지가 적은 메모리를 대한 블록을 선정할 수 있다. 그리고, 정상 상태는 선정된 블록에 포함된 유효한 물리 페이지 1개를 다른 블록에 복사하고, 선정된 블록을 삭제할 수 있다. 정상 상태는 추후 가비지 컬렉션이 발생함에 따라 유효한 물리 페이지를 복사함에 의해 성능이 저하되는 것을 막을 수 있다. 여기서, 정상 상태는 유효한 물리 페이지가 존재하지 않더라도 우선 순위에 의해 유효한 물리 페이지가 존재하지 않은 메모리에 대한 블록을 삭제한 이후에 입출력 요청에 따른 입출력 동작을 수행할 수 있다.
경고 상태는 위험 상태보다 입출력 빈도가 낮은 상태이나, 이로 인한 가비지 컬렉션의 동작에 의한 오버헤드가 크게 발생할 수 있는 상태를 의미할 수 있다. 따라서, 경고 상태는 N개의 유효한 물리 페이지에 대한 복사를 보장할 수 있다. 또한, 경고 상태는 유효한 물리 페이지가 존재하지 않더라도 우선 순위에 의해 유효한 물리 페이지가 존재하지 않은 메모리에 대한 블록을 삭제한 이후에 입출력 요청에 따른 입출력 동작을 수행할 수 있다.
마지막으로 위험 상태는 컨트롤러는 입출력 빈도가 낮을수록 저장 장치의 상태를 위험 상태로 구분하고, 가비지 컬렉션에 중점을 두어 동작할 수 있다. 위험 상태는 플래시 메모리에 대한 입출력과 관련된 사용 빈도가 가장 낮은 상태로써, 가비지 컬렉션을 수행하기에 적절한 상태일 수 있다. 따라서, 위험 상태는 가비지 컬렉션을 수행하는 도중 입출력 요청이 발생하더라도 가비지 컬렉션을 계속 진행할 수 있다.
일례로, 위험 상태는 20분 간격으로 호스트로부터 입출력 요청이 발생하는 상태라고 가정할 수 있다. 이 때, 드라이브 컨트롤러는 가비지 컬렉션을 수행하는 도중에 입출력 요청이 발생하더라도 가비지 컬렉션을 계속 진행한 이후에 입출력을 수행할 수 있다.
결국, 디바이스 컨트롤러는 플래시 메모리에 요청된 입출력 빈도가 낮을수록 보다 가비지 컬렉션을 수행함에 따라 플래시 메모리의 활용 및 성능 불균형을 최소화할 수 있다.
도 4는 일실시예에 따른 가비지 컬렉션 수행 방법을 설명하기 위한 흐름도이다.
단계(401)에서 디바이스 컨트롤러는 저장 장치가 동작 상태에서 유휴 상태로 진입하였는지 여부를 확인할 수 있다. 다시 말해, 디바이스 컨트롤러는 가비지 컬렉션을 수행하기 위하여 유휴 상태로 상태가 변환되었는지 여부를 확인할 수 있다. 그리고, 디바이스 컨트롤러는 유휴 상태 이전에 발생된 입출력 빈도를 판단할 수 있다. 이 때, 디바이스 컨트롤러는 플래시 메모리의 사이즈 및 상기 플래시 메모리에 전송된 데이터가 저장된 물리페이지의 사이즈를 고려하여 입출력 빈도를 판단할 수 있다.
그리고, 디바이스 컨트롤러는 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션의 처리 정도가 낮은 상태로 결정할 수 있다. 디바이스 컨트롤러는 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행할 수 있다. 즉, 디바이스 컨트롤러는 가비지 컬렉션의 처리 정도가 낮은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 낮아지도록 세부 동작을 수행하거나 또는 가비지 컬렉션의 처리 정도가 높은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 높아지도록 세부 동작을 수행할 수 있다.
다시 말해, 디바이스 컨트롤러는 입출력 요청에 따른 입출력 빈도에 따른 저장 장치의 상태를 고려하여 가비지 컬렉션의 선점 정도를 상이하게 수행할 수 있다.
단계(402)에서 디바이스 컨트롤러는 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션에 대한 처리 정도를 낮은 상태로 결정할 수 있다. 따라서, 디바이스 컨트롤러는 이러한 판단 기준을 중심으로 입출력 빈도에 따른 저장 장치의 상태가 안전 상태인지를 확인할 수 있다. 여기서 안전 상태는 입출력 빈도가 높을수록 저장 장치의 상태를 안전 상태로 구분하고, 입출력 요청에 중점을 두어 동작할 수 있는 상태를 의미할 수 있다.
단계(405)에서 디바이스 컨트롤러는 안전 상태인 경우(단계 402: Yes), 호스트로부터 입출력 요청이 발생하였는지 여부를 확인할 수 있다. 디바이스 컨트롤러는 입출력 요청이 발생하지 않은 경우(단계 405: No), 안전 상태에 대응하여 블록 지우기(408) 동작만을 수행하는 가비지 컬렉션을 수행할 수 있다. 반대로 디바이스 컨트롤러는 입출력 요청이 발생된 경우(단계 405: Yes), 발생된 입출력 요청을 수행할 수 있다.
단계(403)에서 디바이스 컨트롤러는 안전 상태가 아닌 경우(단계 402: No), 판단된 입출력 빈도에 따른 저장 장치의 상태가 정상 상태인지를 확인할 수 있다. 여기서 정상 상태는 안전 상태보다 입출력 빈도가 낮은 상태를 의미할 수 있다.
단계(405)에서 디바이스 컨트롤러는 안전 상태인 경우(단계 402: Yes), 호스트로부터 입출력 요청이 발생하였는지 여부를 확인할 수 있다. 단계(406)에서 디바이스 컨트롤러는 입출력 요청이 발생하지 않은 경우(단계 405: No), 안전 상태에 대응하여 유효한 물리 페이지의 존재 여부에 따라 해당 물리 페이지를 복사할 수 있다. 단계(407)에서 디바이스 컨트롤러는 블록에 유효한 물리 페이지가 존재하는지 여부를 확인할 수 있다. 단계(408)에서 디바이스 컨트롤러는 유효한 물리 페이지가 존재하지 않는 경우(단계 407: No), 해당 블록을 삭제할 수 있다. 반대로 디바이스 컨트롤러는 입출력 요청이 발생된 경우(단계 405: Yes), 발생된 입출력 요청을 수행할 수 있다.
단계(404)에서 디바이스 컨트롤러는 정상 상태가 아닌 경우(단계 403: No), 판단된 입출력 빈도에 따른 저장 장치의 상태가 경고 상태인지를 확인할 수 있다. 여기서 경고 상태는 입출력 빈도가 낮을수록 저장 장치의 상태를 위험 상태로 구분하고, 가비지 컬렉션에 중점을 두어 동작하는 위험 상태보다 입출력 빈도가 높은 상태를 의미할 수 있다.
단계(405)에서 디바이스 컨트롤러는 안전 상태인 경우(단계 402: Yes), 호스트로부터 입출력 요청이 발생하였는지 여부를 확인할 수 있다. 단계(406)에서 디바이스 컨트롤러는 입출력 요청이 발생하지 않은 경우(단계 405: No), 안전 상태에 대응하여 유효한 물리 페이지의 존재 여부에 따라 해당 물리 페이지를 복사할 수 있다. 단계(407)에서 디바이스 컨트롤러는 블록에 유효한 물리 페이지가 존재하는지 여부를 확인할 수 있다. 단계(408)에서 디바이스 컨트롤러는 유효한 물리 페이지가 존재하지 않는 경우(단계 407: No), 해당 블록을 삭제할 수 있다. 반대로 디바이스 컨트롤러는 입출력 요청이 발생된 경우(단계 405: Yes), 발생된 입출력 요청을 수행할 수 있다.
디바이스 컨트롤러는 입출력 빈도에 따른 가비지 컬렉션에 대한 선점 빈도를 상이하게 함에 따라 플래시 메모리의 성능 불균형을 최소화할 수 있음에 따라 플래시 메모리 기반의 저장 장치에서 나타내는 '프리징 현상(freesing)'을 완화할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
101: 호스트
102: 저장 장치
103: 드라이브 컨트롤러
104: 플래시 메모리 컨트롤러
105: 플래시 메모리

Claims (19)

  1. 저장 장치의 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법에 있어서,
    상기 저장 장치가 저장 장치의 플래시 메모리에 대한 입출력 요청이 발생하지 않은 유휴 상태(IDLE)인지를 판단하는 단계;
    상기 저장 장치가 유휴 상태인 경우, 유휴 상태 이전에 호스트로부터 저장 장치로 전달된 입출력 요청에 따른 상기 플래시 메모리에서 수용할 수 있는 최대 입출력 빈도를 고려하여 플래시 메모리에서 발생된 입출력 빈도를 판단하는 단계;
    상기 입출력 빈도에 따른 입출력에 대한 처리 빈도 및 가비지 컬렉션에 대한 처리 빈도를 고려하여 상기 플래시 메모리에 대해 가비지 컬렉션을 수행하기 위한 저장 장치의 상태를 결정하는 단계; 및
    상기 결정된 저장 장치의 상태에 따른 가비지 컬렉션에 대한 선점 정도에 기초하여 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하는 단계
    를 포함하고,
    상기 가비지 컬렉션에 대한 선점 정도는,
    상기 입출력 빈도에 대한 처리 빈도에 반비례하는 가비지 컬렉션에 대한 처리 빈도에 의해 결정되는 가비지 컬렉션 수행 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 입출력 빈도를 판단하는 단계는,
    상기 플래시 메모리의 사이즈 및 상기 플래시 메모리에 전송된 데이터가 저장된 물리페이지의 사이즈를 고려하여 입출력 빈도를 판단하는 가비지 컬렉션 수행 방법.
  4. 제1항에 있어서,
    상기 저장 장치의 상태를 결정하는 단계는,
    상기 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션의 처리 정도가 낮은 상태로 결정하는 가비지 컬렉션 수행 방법.
  5. 제4항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행하고,
    상기 가비지 컬렉션의 세부 동작은,
    상기 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기를 포함하는 가비지 컬렉션 수행 방법.
  6. 제5항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 가비지 컬렉션에 대한 처리 빈도가 낮은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 낮아지도록 세부 동작을 수행하는 단계; 또는
    상기 가비지 컬렉션에 대한 처리 빈도가 높은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 높아지도록 세부 동작을 수행하는 단계
    를 포함하는 가비지 컬렉션 수행 방법.
  7. 제1항에 있어서,
    상기 저장 장치의 상태를 결정하는 단계는,
    상기 입출력 빈도에 따라 단계적으로 설정된 안전(Safe) 상태, 정상(Normal) 상태, 경고(Not-Safe) 상태, 위험(Dangerous) 상태 중 어느 하나로 저장 장치의 상태를 결정하고,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 저장 장치의 상태에 따라 상기 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기를 포함하는 세부 동작을 다르게 처리하는 것인 가비지 컬렉션 수행 방법.
  8. 제7항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 저장 장치의 상태가 안전 상태인 경우, 상기 저장 장치의 단일 플래시 메모리에 대하여 블록 지우기를 수행하는 가비지 컬렉션 수행 방법.
  9. 제7항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 저장 장치의 상태가 정상 상태인 경우, 상기 저장 장치의 단일 플래시 메모리에 대하여 유효 페이지 복사 및 블록 지우기를 수행하는 가비지 컬렉션 수행 방법.
  10. 제7항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 저장 장치의 상태가 경고 상태인 경우, 상기 저장 장치의 다중 플래시 메모리에 대하여 유효 페이지 복사와 관련된 동작 및 단일 플래시 메모리에 대하여 블록 지우기를 수행하는 가비지 컬렉션 수행 방법.
  11. 제7항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 저장 장치의 상태가 위험 상태인 경우, 상기 저장 장치의 다중 플래시 메모리에 대하여 유효 페이지 복사 및 블록 지우기를 수행하는 가비지 컬렉션 수행 방법.
  12. 제1항에 있어서,
    상기 저장 장치에 대해 입출력 요청이 발생하여 상기 저장 장치가 유휴 상태에서 동작 상태로 전환되는 경우, 상기 저장 장치의 상태에 따라 입출력 요청에 따라 입출력을 수행할 지 또는 가비지 컬렉션을 계속 진행할 지 여부를 판단하는 단계
    를 더 포함하는 가비지 컬렉션 수행 방법.
  13. 가비지 컬렉션 수행 방법을 처리하는 드라이브 컨트롤러에 있어서,
    상기 드라이브 컨트롤러는,
    저장 장치가 저장 장치의 플래시 메모리에 대한 입출력 요청이 발생하지 않은 유휴 상태(IDLE)인지를 판단하고, 저장 장치가 유휴 상태인 경우, 유휴 상태 이전에 호스트로부터 저장 장치로 전달된 입출력 요청에 따른 상기 플래시 메모리에서 수용할 수 있는 최대 입출력 빈도를 고려하여 플래시 메모리에서 발생된 입출력 빈도를 판단하며, 상기 입출력 빈도에 따른 입출력에 대한 처리 빈도 및 가비지 컬렉션에 대한 처리 빈도를 고려하여 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하기 위한 저장 장치의 상태를 결정하고, 저장 장치의 상태에 따른 가비지 컬렉션에 대한 선점 정도에 기초하여 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하고,
    상기 가비지 컬렉션에 대한 선점 정도는,
    상기 입출력 빈도에 대한 처리 빈도에 반비례하는 가비지 컬렉션에 대한 처리 빈도에 의해 결정되는 저장 장치의 드라이브 컨트롤러.
  14. 제13항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 입출력 빈도가 증가할수록 저장 장치가 수행하는 가비지 컬렉션의 처리 정도가 낮은 상태로 결정하는 저장 장치의 드라이브 컨트롤러.
  15. 제14항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 저장 장치의 상태에 따라 가비지 컬렉션의 세부 동작을 다르게 수행하고,
    상기 가비지 컬렉션의 세부 동작은,
    상기 저장 장치의 플래시 메모리에 대해 (i) 희생 블록 선정, (ii) 유효 페이지 복사 및 (iii) 블록 지우기를 포함하는 저장 장치의 드라이브 컨트롤러.
  16. 제15항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 가비지 컬렉션에 대한 처리 빈도가 낮은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 낮아지도록 세부 동작을 수행하거나 또는
    상기 가비지 컬렉션에 대한 처리 빈도가 높은 상태로 결정될수록, 상기 가비지 컬렉션에 대한 선점 정도가 높아지도록 세부 동작을 수행하는 저장 장치의 드라이브 컨트롤러.
  17. 제13항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 입출력 빈도에 따라 단계적으로 설정된 안전(Safe) 상태, 정상(Normal) 상태, 경고(Not-Safe) 상태, 위험(Dangerous) 상태 중 어느 하나로 저장 장치의 상태를 결정하는 저장 장치의 드라이브 컨트롤러.
  18. 제13항에 있어서,
    상기 저장 장치에 대해 입출력 요청이 발생하여 상기 저장 장치가 유휴 상태에서 동작 상태로 전환되는 경우, 상기 저장 장치의 상태에 따라 입출력 요청에 따라 입출력을 수행할 지 또는 가비지 컬렉션을 계속 진행할 지 여부를 판단하는 저장 장치의 드라이브 컨트롤러.
  19. 플래시 메모리; 및
    저장 장치가 상기 플래시 메모리에 대한 입출력 요청이 발생하지 않은 유휴 상태(IDLE)인지를 판단하며, 저장 장치가 유휴 상태인 경우, 유휴 상태 이전에 호스트로부터 저장 장치로 전달된 입출력 요청에 따른 상기 플래시 메모리에서 수용할 수 있는 최대 입출력 빈도를 고려하여 플래시 메모리에서 발생된 입출력 빈도를 판단하고, 상기 입출력 빈도에 따른 입출력에 대한 처리 빈도 및 가비지 컬렉션에 대한 처리 빈도를 고려하여 상기 플래시 메모리에 대해 가비지 컬렉션을 수행하기 위한 저장 장치의 상태를 결정하고, 상기 결정된 저장 장치의 상태에 따 른 가비지 컬렉션에 대한 선점 정도에 기초하여 상기 저장 장치의 플래시 메모리에 대해 가비지 컬렉션을 수행하는 드라이브 컨트롤러
    를 포함하고,
    상기 가비지 컬렉션에 대한 선점 정도는,
    상기 입출력 빈도에 대한 처리 빈도에 반비례하는 가비지 컬렉션에 대한 처리 빈도에 의해 결정되는 저장 장치.
KR1020150031893A 2015-03-06 2015-03-06 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법 KR101631409B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150031893A KR101631409B1 (ko) 2015-03-06 2015-03-06 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150031893A KR101631409B1 (ko) 2015-03-06 2015-03-06 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법

Publications (1)

Publication Number Publication Date
KR101631409B1 true KR101631409B1 (ko) 2016-06-24

Family

ID=56343518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150031893A KR101631409B1 (ko) 2015-03-06 2015-03-06 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법

Country Status (1)

Country Link
KR (1) KR101631409B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614882B2 (en) 2020-06-19 2023-03-28 Samsung Electronics Co., Ltd. Operating method of memory controller to reduce lifespan damage, operating method of host and storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100089229A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
KR20120131579A (ko) * 2011-05-26 2012-12-05 에스코어 주식회사 플래시 파일 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100089229A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
KR20120131579A (ko) * 2011-05-26 2012-12-05 에스코어 주식회사 플래시 파일 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614882B2 (en) 2020-06-19 2023-03-28 Samsung Electronics Co., Ltd. Operating method of memory controller to reduce lifespan damage, operating method of host and storage device

Similar Documents

Publication Publication Date Title
US10789162B2 (en) Memory system and method for controlling nonvolatile memory
US10732905B2 (en) Automatic I/O stream selection for storage devices
US8521949B2 (en) Data deleting method and apparatus
US7895394B2 (en) Storage system
US20160162187A1 (en) Storage System And Method For Processing Writing Data Of Storage System
US20180107593A1 (en) Information processing system, storage control apparatus, storage control method, and storage control program
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
JP2014522537A (ja) 使用によるフラッシュ・ベースの記憶装置へのデータ配置の管理
EP3346387B1 (en) Storage system and system garbage collection method
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US10120583B2 (en) Performance penalty avoidance for solid state drive
US20170139616A1 (en) Method of decreasing write amplification factor and over-provisioning of nand flash by means of diff-on-write approach
KR20080104815A (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
US20140281581A1 (en) Storage Device
KR101631409B1 (ko) 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법
JP6988445B2 (ja) ストレージシステム、制御装置及び制御方法
KR20150096177A (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US11360678B1 (en) Asynchronous unmap service
US11853203B1 (en) Systems and methods with variable size super blocks in zoned namespace devices
JP6666405B2 (ja) メモリシステムおよび制御方法
JP6721765B2 (ja) メモリシステムおよび制御方法
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory
KR101691286B1 (ko) 입출력 정보 공유 방법, 상기 방법을 수행하는 저장 장치 및 호스트 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190415

Year of fee payment: 4