KR101179027B1 - 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법 - Google Patents

버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법 Download PDF

Info

Publication number
KR101179027B1
KR101179027B1 KR1020100017821A KR20100017821A KR101179027B1 KR 101179027 B1 KR101179027 B1 KR 101179027B1 KR 1020100017821 A KR1020100017821 A KR 1020100017821A KR 20100017821 A KR20100017821 A KR 20100017821A KR 101179027 B1 KR101179027 B1 KR 101179027B1
Authority
KR
South Korea
Prior art keywords
data
page
block
flash memory
state
Prior art date
Application number
KR1020100017821A
Other languages
English (en)
Other versions
KR20110098279A (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 KR1020100017821A priority Critical patent/KR101179027B1/ko
Publication of KR20110098279A publication Critical patent/KR20110098279A/ko
Application granted granted Critical
Publication of KR101179027B1 publication Critical patent/KR101179027B1/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
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에 따른 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템은 최근 거의 사용되지 않은 데이터가 기록되는 제1 영역과, 최근에 사용된 데이터가 기록되는 제2 영역을 가지는 버퍼 캐시와, 데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리와, 가비지 컬렉션 동작시, 상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 플래시 메모리에 저장되어 있는 페이지와 동일한 상태인 클린 상태의 페이지가 존재하는 지를 판단하고, 상기 클린 상태의 복제 페이지가 존재하면 상기 클린 상태의 페이지중 상기 제2 영역의 페이지 상태를 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태로 변경하고, 상기 클린 상태의 페이지중 상기 제1 영역의 페이지 상태를 클린 상태로 유지하고, 상기 복제 페이지 중 클린 상태의 페이지에 대응하는 페이지를 상기 데이터 블록이나 로그 블록으로부터 프리 블록으로 복사하는 플래시 변환 계층을 포함한다.

Description

버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법{NAND FLASH MEMORY SYSTEM AND METHOD FOR PERFORMING GARBAGE COLLECTION BASED ON LOCALITY OF BUFFER}
본 발명은 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법에 관한 것이다.
낸드 플래시 메모리는 여러 개의 블록들로 구성되어 있으며 하나의 블록은 여러 개의 페이지로 구성되어 있다.(읽기/쓰기 단위 : 페이지, 삭제 단위: 블록) 또한, 낸드 플래시 메모리는 하드디스크와 달리 덮어쓰기 연산을 지원하지 않는다. 따라서 업데이트가 발생하게 되면 대부분의 낸드 플래시 메모리는 빈 공간에 업데이트 데이터를 기록한다. 그리고 기존에 기록되어 있던 데이터는 무효화(invalid) 시킨다.
이러한 플래시 메모리의 특성을 위해 파일 시스템과 낸드 메모리 사이에 플래시 메모리 변환계층(Flash Translation Layer, FTL)을 사용한다. 플래시 변환 계층의 주요 기능은 크게 2가지로 나눌 수 있다. 첫 번째 논리 주소와 물리 주소를 맵핑 시켜주는 기능이다. 다른 하나는 가비지 컬렉션 기능이다. 주소 맵핑 기능은 파일 시스템에서 덮어쓰기를 요청 받은 데이터를 다른 빈 공간에 기록하고 기존의 데이터를 무효화 시킨다. 이러한 동작으로 추가적으로 발생할 수 있는 삭제와 복사 연산을 감소시키는 역할을 한다. 그러나 무효화 된 페이지들은 메모리 공간을 차지 하고 있으며 사용이 불가능한 공간이다. 이러한 공간을 다시 사용하기 위해서는 삭제 연산이 필요하다. FTL은 무효화 된 페이지 공간을 다시 사용 가능하도록 해주는 동작을 가비지 컬렉션이라고 한다. 가비지 컬렉션 기능은 낸드 플래시 메모리에서 특정 블록을 선택하여 해당 블록의 유효한 페이지를 다른 빈 공간에 복사하고 해당 블록은 삭제 하는 동작을 하게 된다. 삭제된 블록 공간내의 모든 페이지 들은 모두 빈 페이지가 되어 쓰기가 가능해지는 공간이 된다.
FTL 기법 중에 현재 가장 많이 사용되고 있는 것은 로그 버퍼 기반의 FTL(log buffer-based FTL) 기법이다. 로그 버퍼 기법은 플래시 메모리 블록들을 데이터 블록과 로그 블록으로 나눈다. 데이터 블록은 일반적인 데이터 저장 공간으로 사용되고, 로그 블록은 덮어 쓰려는 데이터를 임시로 저장하는 공간으로 사용된다. 따라서 쓰기 명령이 발생하면 해당 쓰기 명령이 덮어쓰기일 경우 해당 데이터를 로그 블록에 기록한다. 로그 버퍼 기반의 FTL 기법은 덮어쓰기 될 데이터를 로그 블록에 임시로 기록함으로써 추가적으로 발생할 수 있는 삭제와 쓰기 연산을 줄일 수 있다. 그러나 로그 블록들의 빈 페이지들을 모두 사용하게 되면, 가비지 컬렉션 과정으로 로그 블록에 빈 페이지들을 만들어줘야 한다.
도 1은 로그 버퍼 기반의 FTL을 사용하는 플래시 메모리와 버퍼 캐시를 나타내고 있다.
도 1에서, 플래시 메모리는 데이터 블록(PBN0, PBN1, PBN2)과 로그 블록(PBN3, PBN4)으로 구분된다. 그리고 프리 블록(PBN5, PBN6)은 쓰기 동작이 되지 않은 공간, 즉 바로 쓰기 동작이 가능한 곳이다. 각각의 블록들은 4개의 페이지로 구성된다고 가정한다. 데이터 블록과 로그 블록은 무효화된 페이지(invalid page)와 유효한 페이지(valid page)를 포함한다.
유효한 페이지는 최신의 데이터를 말하며 무효화된 페이지는 업데이트가 발생하여 더 이상 유효한 데이터가 아니다. 만약 플래시 메모리의 공간이 부족해서 더 이상 사용할 공간이 없을 때 가비지 컬렉션 동작이 요구된다. 가비지 컬렉션은 교체할 로그 블록(희생 블록)을 선택하며, 선택된 로그 블록을 연관된 데이터 블록과 병합하는 과정으로 구성되어 있다.
플래시 메모리 기반의 스토리지는 일반적으로 플래시 메모리와 별개로 버퍼 캐시를 가지고 있다. 도 1에서 버퍼 캐시는 6개의 페이지를 담고 있으며 클린과 더티의 상태를 가진다. 클린 데이터는 플래시 메모리에 저장되어 있는 데이터와 동일한 데이터를 갖는다. 더티 데이터는 플래시 메모리에 저장된 데이터와 다른 더 최신의 데이터를 말한다. 따라서 클린 데이터는 버퍼 캐시에서 밀려날 때 플래시에 동일한 데이터를 가지고 있기 때문에 기록하는 과정이 필요 없다. 그러나 더티 데이터는 버퍼 캐시에서 밀려날 때 플래시 메모리에 기록된다.
도 2는 기존의 가비지 컬렉션 동작을 설명하기 위한 도면이다. 도 2는 로그 블록 PBN 3이 희생 블록인 경우의 동작을 나타내고 있다.
도 2를 참조하면, 로그 블록 PBN 3과 관련 있는 모든 데이터 블록은 PBN 0과 PBN 2이다. 구체적으로 로그 블록 PBN 3은 페이지 P1, P3, P8 및 P10을 포함한다.
가비지 컬렉션 동작시에, 로그 블록 PBN 3을 비우기 위해 로그 블록 PBN 3에 저장된 페이지들 P1, P3, P8 및 P10을 프리 블록에 복사한다. 이 경우, 페이지들 P1 및 P3은 관련된 페이지들과 같이 관리되므로, 데이터 블록 PBN 0의 P0 및 P2과 같이 프리 블록 PBN 5에 저장된다. 즉, 페이지 P1, P3은 데이터 블록 PBN 0에 관련된다, 그에 따라, 프리 블록 PBN 5에는 로그 블록 PBN 3의 페이지들 P1 및 P3이 저장되고, 데이터 블록 PBN 0의 P0 및 P2이 저장된다.
유사하게, 페이지들 P8 및 P10은 관련된 페이지들과 같이 관리되므로, 데이터 블록 PBN 2의 P9 및 P11과 같이 프리 블록 PBN 6에 저장된다. 즉, 페이지 P8 및 P10은 데이터 블록 PBN 2에 관련된다. 그에 따라, 프리 블록 PBN 6에는 로그 블록 PBN 3의 페이지들 P8 및 P10이 저장되고, 데이터 블록 PBN 2의 P9 및 P11이 저장된다.
이와 같이, 데이터 블록 PBN 0과 PBN 2 및 로그 블록 PBN 3의 모든 유효한 페이지를 프리 블록 PBN 5 및 PBN 6에 복사하고 PBN 0, PBN 2 및 PBN 3에 대해 삭제 동작을 수행하는 것이 가비지 컬렉션의 일련의 과정이다.
이 경우, 도 2에서는 P0, P1, P2, P3, P8, P9, P10, P11의 각 유효한 페이지를 프리 블록인 PBN 5와 PBN 6에 복사하게 된다. 총 8개의 페이지 복사와 3개 블록의 삭제가 가비지 컬렉션을 하면서 발생하는 비용이다. 이와 같이 가비지 컬렉션 동작에서는 많은 비용이 발생하게 된다. 따라서 효율적인 가비지 컬렉션 방법이 필요하다.
이러한 기존의 가비지 컬렉션 방법은 버퍼 캐시를 활용하지 않고 있다. 버퍼 캐시의 데이터를 미리 알고 있다면 버퍼 캐시를 고려하는 것이 가비지 컬렉션 비용을 줄이는데 효과적인 방법이 된다. 따라서 가비지 컬렉션을 해줄 때 나중에 버퍼 캐시에서 쓰기 동작 될 데이터를 미리 고려하여 가비지 컬렉션을 할 필요가 있다.
이러한 버퍼 캐시를 고려한 기존 가비지 컬렉션 방법을 설명한다.
도 3는 종래 버퍼를 고려한 가비지 컬렉션 방법을 설명하기 위한 도면이다. 도 3의 경우도 로그 블록 PBN 3이 희생 블록인 경우의 동작을 나타내고 있다.
도 3을 참조하면, 가비지 컬렉션 동작시에, 프리 블록 PBN 5에는 로그 블록 PBN 3의 페이지들 P1 및 P3이 저장되고, 데이터 블록 PBN 0의 P0 및 P2이 저장된다. 프리 블록 PBN 6에는 로그 블록 PBN 3의 페이지들 P8 및 P10이 저장되고, 데이터 블록 PBN 2의 P9 및 P11이 저장된다.
이 경우, 도 2의 경우와 다르게, 버퍼 캐시에 저장되어 있는 페이지들을 고려한다. 구체적으로, 프리 블록에 복사되는 페이지들이 버퍼 캐시에도 저장되어 있는 지를 체크한다. 만약, 프리 블록에 복사되는 페이지들 중 버퍼 캐시에 저장된 페이지들이 있다면, 버퍼 캐시에 저장된 페이지들은 프리 블록으로 복사하지 않는다.
도 3의 경우에, 유효한 페이지 중에 버퍼 캐시에 동시에 존재하는 복제 페이지(duplicated page)인 P1, P2, P9, P11은 프리 블록 PBN 5 및 PBN 2로 복사되지 않는다. 버퍼 캐시에 존재하는 페이지(P1, P2, P9, P11)는 이후에 버퍼 캐시에서 밀려날 때 플래시 메모리에 기록될 수 있기 때문에 병합 과정에서는 복사를 하지 않는다. 버퍼 캐시에 저장된 데이터들은 FIFO 방식에 따라 관리되므로, 버퍼 캐시에 저장 공간이 없으면 가장 오래된 데이터를 삭제한다. 그에 따라 삭제될 데이터는 플래시 메모리로 복사된 후 삭제된다.
그 결과로 프리 블록에 저장되는 페이지(PO, P1, P2, P3, P8, P9, P10, P11)들 중 버퍼 캐시로부터 저장될 페이지인 P1, P2, P9, P11를 제외하고, 실제로 복사되는 페이지의 수는 8개의 페이지들 중 P1, P2, P9, P11를 제외한 4개의 페이지로 줄어들게 된다. 도 3의 예와 같이 버퍼를 고려한 가비지 컬렉션 방법은 가비지 컬렉션 비용을 줄이는데 효과적인 방법이다.
그런데, 버퍼 캐시에 저장된 페이지들은 클린(clean) 상태 및 더티(dirty) 상태의 2가지 상태 중 하나의 상태를 갖는다. 버퍼 캐시에 저장된 페이지의 데이터와 플래시 메모리에 저장되어 있는 페이지의 데이터가 동일하면, 버퍼 캐시에 저장된 페이지는 클린 상태를 갖는다. 버퍼 캐시에 저장된 페이지의 데이터와 플래시 메모리에 저장되어 있는 해당 페이지의 데이터가 다르면, 버퍼 캐시에 저장된 페이지는 더티 상태를 갖는다. 일반적으로 버퍼 캐시에 저장된 데이터들이 플래시 메모리에 저장될 때 클린 상태의 페이지는 기존 플래시 메모리에 저장된 해당 페이지와 동일한 데이터이므로 버퍼 캐시로부터 밀려나더라도 플래시 메모리로 복사하지 않는다. 그러므로, 이러한 가비지 컬렉션 동작을 위해서는 클린 상태의 페이지 데이터를 더티 상태로 변경해줘야 버퍼 캐시로부터 플래시 메모리로 복사된다.
도 3의 경우에서는 더티 상태는 음영처리된 페이지들의 상태이고, 클린 상태는 흰색으로 표시된 페이지들의 상태이다. P1, P9처럼 버퍼 캐시에서 클린 데이터는 더티 상태로 변경해줘야 나중에 플래시 메모리로 밀려날 때 플래시 메모리에 기록 될 것이다. 따라서 P1, P9은 더티 상태로 변경해준다. 따라서 이 가비지 컬렉션 동작에서는 버퍼 캐시의 해당 페이지들의 상태를 변경하는 추가적인 동작이 필요하다.
이와 같이, 로그 버퍼 기반의 FTL에서 버퍼 캐시에서 더티 상태의 모든 데이터는 로그 블록으로 기록된다. 로그 블록에 기록되는 데이터가 많아지면 큰 비용이 발생하는 가비지 컬렉션의 발생 횟수를 증가하게 만든다. 따라서 버퍼를 고려한 가비지 컬렉션으로 인해 불필요하게 버퍼 캐시의 더티 상태를 증가시키는 것은 추가적인 손실을 유발 시킬 수 있다.
다시 말해, 버퍼를 고려한 가비지 컬렉션 방법은 로그 버퍼 기반의 FTL을 사용하는 버쳐 메모리 시스템에서 가비지 컬렉션의 발생 횟수가 늘어 날 수 있는 단점을 가지고 있다.
따라서, 본 발명의 목적은 버퍼의 지역성을 고려하여 버퍼 캐시와 플래시 메모리의 정보를 가지고 가비지 컬렉션 하는 방법 및 이를 위한 낸드 플래시 메모리 시스템을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따라, 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템은 최근 거의 사용되지 않은 데이터가 기록되는 제1 영역과, 최근에 사용된 데이터가 기록되는 제2 영역을 가지는 버퍼 캐시와, 데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리와, 가비지 컬렉션 동작시, 상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 플래시 메모리에 저장되어 있는 페이지와 동일한 상태인 클린 상태의 페이지가 존재하는 지를 판단하고, 상기 클린 상태의 복제 페이지가 존재하면 상기 클린 상태의 페이지중 상기 제2 영역의 페이지 상태를 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태로 변경하고, 상기 클린 상태의 페이지중 상기 제1 영역의 페이지 상태를 클린 상태로 유지하고, 상기 복제 페이지 중 클린 상태의 페이지에 대응하는 페이지를 상기 데이터 블록이나 로그 블록으로부터 프리 블록으로 복사하는 플래시 변환 계층을 포함한다.
본 발명의 다른 측면에 따라, 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템은 최근 거의 사용되지 않은 데이터가 기록되는 제1 영역과, 최근에 사용된 데이터가 기록되는 제2 영역을 가지는 버퍼 캐시와, 데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리와, 가비지 컬렉션 동작시, 상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 상기 제1 영역에 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태의 페이지가 존재하는 지 판단하고, 상기 제1 영역에 더티 상태의 복제 페이지가 존재하면, 상기 버퍼 캐시의 제1 영역의 더티 상태의 페이지를 상기 프리 블록으로 복사하고, 그 상태를 클린 상태로 변경하고, 상기 버퍼 캐시의 복제 페이지 중 상기 제2 영역에 상기 플래시 메모리에 저장된 데이터와 동일한 상태인, 클린 상태의 페이지가 존재하면, 상기 제2 영역의 페이지 상태를 더티 상태로 변경하는 플래시 변환 계층을 포함한다.
본 발명에 의하면, 버퍼 캐시의 지역성을 함께 고려한 가비지 컬렉션 방법은 기존의 버퍼 캐시를 고려하지 않은 가비지 컬렉션보다 더 적은 복사 비용이 발생하게 된다. 또한 가비지 컬렉션의 횟수가 증가하는 단점도 보완하는 장점을 가진다.
도 1은 로그 버퍼 기반의 FTL을 사용하는 플래시 메모리와 버퍼 캐시를 나타낸다.
도 2는 기존의 가비지 컬렉션 동작을 설명하기 위한 도면이다.
도 3는 종래 버퍼를 고려한 가비지 컬렉션 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 시스템을 도시한다.
도 5는 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 나타낸 도면이다.
도 8은 본 발명의 다른 실시예에 따른 가비지 컬렉션 동작을 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 시스템을 도시한다.
도 4를 참조하면, 플래시 메모리 시스템은 파일 시스템(10), 플래시 변환 계층(Flash Translation Layer, FTL)(20), 및 플래시 메모리(30)을 포함한다.
파일 시스템(10)은 버퍼 캐시(12)를 포함한다. 버퍼 캐시(12)는 플래시 메모리(30)에 저장될 데이터를 임시 저장하고 있다. 파일 시스템(10)은 플래시 메모리(30)에 대한 데이터 읽기/쓰기 명령을 플래시 변환 계층(20)에 제공한다. 플래시 변환 계층(20)은 파일 시스템(10)으로부터의 데이터 읽기/쓰기 명령에 따라 플래시 메모리(30)에 저장된 데이터를 판독하거나 플래시 메모리(30)에 기록한다. 이를 위해 플래시 변환 계층(20)은 파일 시스템(10)으로부터 제공되는 데이터의 논리 주소와 플래시 메모리의 물리 주소를 맵핑시켜 플래시 메모리(30)에 대해 데이터를 판독하거나 기록한다.
또한, 플래시 변환 계층(20)은 가비지 컬렉션 동작을 수행하는데, 본 발명에 따라, 가비지 컬렉션 동작시, 버퍼 캐시가 갖는 지역성을 고려한다.
버퍼 캐시(12)는 LRU(Least Recently Used) 알고리즘 및 MRU(Most Recently Used) 알고리즘을 채용한다. LRU(Least Recently Used)는 운영체계의 페이지 교체 알고리즘 중 하나로서, 기억장치 바깥으로 내보낼 페이지를 선정할 때, 최근에 다른 어떤 페이지보다도 적게 사용된(읽혀지거나 기록되거나) 즉, 적은 횟수로 사용된 페이지를 고르는 알고리즘이다.
그리고, 버퍼 캐시(12)는 LRU(Least Recently Used) 알고리즘에 따라 관리되는 데이터를 저장하는 LRU 영역과 MRU(Most Recently Used) 알고리즘에 따라 데이터가 저장되는 MRU 영역을 포함한다,
그에 따라, 버퍼 캐시(12)에 기록된 지 얼마 되지 않은 데이터(MRU 영역의 데이터)는 다시 업데이트가 되어 더티 상태로 바뀔 가능성이 크다. 그러나 곧 버퍼 캐시에서 나가게 될 데이터(LRU 영역의 데이터)는 업데이트가 발생할 가능성이 낮다.
본 발명에 따라 플래시 변환 계층(20)은 가비지 컬렉션 동작시 이러한 버퍼 캐시(12)가 가지는 지역성을 고려한다.
도 5는 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 설명하기 위한 도면이다. 도 5는 로그 블록 PBN 3이 희생 블록인 경우의 동작을 나타내고 있다.
도 5를 참조하면, 가비지 컬렉션 동작시에, 희생 블록인 로그 블록 PBN 3을 비우기 위해 로그 블록 PBN 3에 저장된 페이지들 P1, P3, P8 및 P10을 프리 블록에 복사한다. 따라서, 연관된 블록은 모두 PBN 0, PBN 2, PBN 3이 된다. 따라서 복사되어야 하는 페이지의 수는 P0~P3, P8~P11의 페이지 총 8개이다.
이 경우, 플래시 변환 계층(20)은 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 데이터를 고려한다. 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 페이지는 가비지 컬렉션 동작 후 버퍼 캐시에서 나중에 플래시 메모리로 쓰기 동작을 발생할 수 있기 때문이다. 동시에 존재하는 복제 페이지(duplicated page)는 P1, P2, P9, P11이다.
버퍼 캐시(12)에서 더티(dirty) 상태의 데이터는 버퍼 캐시의 공간이 부족하게 되면 무조건 플래시 메모리로 쓰기 동작이 발생하게 된다. 따라서 도 4를 참조하면, 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하면서 더티(dirty) 상태인 데이터(P2, P11)는 가비지 컬렉션 동작시 복사할 필요가 없다. 이를 통해 가비지 컬렉션의 비용이 줄어 들게 된다.
또한, 플래시 변환 계층(20)은 클린(clean) 상태의 페이지도 고려한다. 클린 상태의 데이터는 MRU 영역과 LRU 영역으로 구분하여 동작한다. 버퍼 캐시의 특성에서 보면 MRU 영역의 데이터는 다시 업데이트가 발생할 가능성이 큰 데이터이다. 반대로 LRU 영역의 데이터는 업데이트가 발생하지 않고 버퍼 캐시에서 밀려나게 될 확률이 크다.
도 5에서 버퍼 캐시와 플래시 메모리에 동시에 존재하면서 클린 상태의 데이터는 P1와 P9이다. P9은 MRU 영역에 존재하며 P1는 LRU 영역에 존재하고 있다. P9은 업데이트가 발생할 가능성이 크기 때문에 버퍼 캐시에서 더티 상태로 바뀔 가능성이 크다. 그리고 P1는 기존의 클린 상태를 유지하고 버퍼 캐시에서 밀려나게 될 가능성이 크다. 이런 특징을 고려하여 P9은 가비지 컬렉션에서 복사하지 않도록 한다. 그리고, 나중에 버퍼 캐시에서 플래시 메모리로 쓰기 동작이 발생 할 수 있도록 도 4에서와 같이 현재 클린 상태를 더티 상태로 변경해준다. P1은 곧 플래시 메모리로 밀려날 데이터이기 때문에 더티 상태로 변경되지 않도록 한다. 이와 같이 버퍼 캐시의 지역성을 함께 고려한 가비지 컬렉션 방법은 기존의 버퍼 캐시를 고려하지 않은 가비지 컬렉션보다 더 적은 복사 비용이 발생하게 된다. 또한 가비지 컬렉션의 횟수가 증가하는 단점도 보완하는 장점을 가진다.
로그 버퍼 기반의 FTL에서 로그 블록의 쓰기 연산이 증가하는 것은 가비지 컬렉션의 횟수가 증가하게 된다. 이러한 특성으로 버퍼 캐시의 더티 데이터를 줄여줌으로 가비지 컬렉션의 횟수를 줄일 수 있다. 따라서 버퍼의 지역에 따라 업데이트가 발생 될 확률이 다른 것을 이용하여 LRU 영역의 더티 데이터를 활용하는 방법을 제시한다.
도 6은 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 설명하기 위한 도면이다. 도 6에서도 로그 블록 PBN 3이 희생 블록인 경우의 동작을 나타내고 있다.
도 6을 참조하면, 가비지 컬렉션 동작시에, 희생 블록인 로그 블록 PBN 3을 비우기 위해 로그 블록 PBN 3에 저장된 페이지들 P1, P3, P8 및 P10을 프리 블록에 복사한다. 따라서, 연관된 블록은 모두 PBN 0, PBN 2, PBN 3이 된다. 따라서 복사되어야 하는 페이지의 수는 P0~P3, P8~P11의 페이지 총 8개이다.
이 경우, 플래시 변환 계층(20)은 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 데이터를 고려한다. 이하, 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 데이터 즉, 페이지를 복제 페이지라고 한다.
버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 페이지는 가비지 컬렉션 동작 후 버퍼 캐시에서 나중에 플래시 메모리로 쓰기 동작을 발생할 수 있기 때문이다. 동시에 존재하는 복제 페이지(duplicated page)는 P1, P2, P9, P11이다.
이 실시예에서, 플래시 변환 계층(20)은 MRU 영역의 데이터는 더티/클린 상태의 데이터를 모두 가비지 컬렉션에서 복사하지 않는다. 그러나 LRU 영역의 더티 상태의 데이터는 업데이트될 가능성이 낮으므로 가비지 컬렉션시 버퍼 캐시로부터 프리 블록으로 미리 복사하고 그 상태를 클린 상태로 변경해준다.
도 6을 참조하면, 플래시 변환 계층(20)은 복제 페이지(duplicated page)인 P1, P2, P9, P11중 MRU 영역의 페이지인 P9 및 P11에 대해서는 가비지 컬렉션 동작시 데이터 블록 또는 로그 블록으로부터 프리 블록으로 복사를 수행하지 않는다. 이 경우, 플래시 변환 계층(20)은 MRU 영역의 페이지인 P9 및 P11중 클린 상태의 페이지가 있다면 해당 페이지의 상태를 더티 상태로 변경한다.
또한, 플래시 변환 계층(20)은 LRU 영역의 페이지인 P1 및 P2는 업데이트 될 가능성이 낮으므로 LRU 영역의 페이지 P1 및 P2 중 더티 상태의 페이지 P2에 대해서는 버퍼 캐시로부터 프리 블록으로 복사하고, 그 상태를 클린 상태로 변경하는데, 이는 프리 블록으로 복사되었으므로, 추후 버퍼 캐시(12)로부터 플래시 메모리(30)로 복사될 필요가 없기 때문이다.
이러한 동작을 이용하여 곧 플래시 메모리에 기록될 더티 데이터를 미리 기록함으로 로그 블록에 기록되는 페이지의 수를 줄일 수 있다. 따라서 가비지 컬렉션의 횟수를 줄일 수 있다. MRU 영역의 복제 페이지(duplicated page)는 복사하지 않기 때문에 가비지 컬렉션에 발생하는 복사 비용도 감소된다.
이러한 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 도 7을 참조하며 설명한다.
도 7은 본 발명의 일 실시예에 따른 가비지 컬렉션 동작을 나타낸 도면이다.
도 7을 참조하면, 먼저, 플래시 변환 계층(20)은 단계 210에서 가비지 컬렉션 동작을 개시할 지를 결정한다. 예컨대, 플래시 변환 계층(20)은 로그 블록들의 빈 페이지들을 모두 사용하게 되면, 가비지 컬렉션 동작을 개시한다. 로그 블록에 데이터를 복사해야 하는 경우 가비지 컬렉션 동작이 요구될 수 있다.
플래시 변환 계층(20)은 가비지 컬렉션 동작을 개시할 것을 결정하면 단계 220에서 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 복제 페이지(duplicated page)가 있는 지를 판단한다.
만약 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 복제 페이지가 있다면, 플래시 변환 계층(20)은 단계 230으로 진행하여 복제 페이지중 클린 상태의 페이지가 존재하는 지를 판단한다.
만약 복제 페이지중 클린 데이터가 존재하면 플래시 변환 계층(20)은 단계 240에서 해당 클린 페이지중 MRU 영역의 페이지의 상태를 더티 상태로 변경한다. MRU 영역의 데이터는 다시 업데이트가 발생할 가능성이 큰 데이터이다. 즉, MRU 영역의 데이터는 업데이트가 발생할 가능성이 크기 때문에 버퍼 캐시에서 더티 상태로 바뀔 가능성이 크다. 따라서, 플래시 변환 계층(20)은 이런 특징을 고려하여 MRU 영역의 데이터는 가비지 컬렉션 동작시 프리 블록으로 복사하지 않도록 한다. . 플래시 변환 계층(20)은 이후 버퍼 캐시에서 플래시 메모리로 쓰기 동작이 발생 할 수 있도록 도 5에서와 같이 현재 클린 상태를 더티 상태로 변경해준다.
이어서, 플래시 변환 계층(20)은 단계 250에서 해당 클린 페이지 중 LRU 영역의 페이지의 상태를 클린 상태를 유지한다. LRU 영역의 데이터는 업데이트가 발생하지 않고 버퍼 캐시에서 밀려나게 될 확률이 크다. 이러한 LRU 영역의 페이지는 곧 플래시 메모리로 밀려날 데이터이기 때문에, 플래시 변환 계층(20)은 더티 상태로 변경되지 않도록 한다.
이어서, 플래시 변환 계층(20)은 단계 260에서 복제 페이지 중 버퍼 캐시에 존재하는 클린 상태의 페이지에 대응하는 페이지를 데이터 블록이나 로그 블록으로부터 프리 블록으로 복사한다.
이어서, 플래시 변환 계층(20)은 단계 270에서 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 복제 페이지를 제외하고, 나머지 페이지들을 프리 블록으로 복사함으로써 병합한다.
이로써, 버퍼 캐시(12)에서 더티(dirty) 상태의 데이터는 버퍼 캐시의 공간이 부족하게 되면 무조건 플래시 메모리로 쓰기 동작이 발생하게 된다. 따라서 도 5를 참조하면, 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하면서 더티(dirty) 상태인 데이터(P2, P11)는 가비지 컬렉션 동작시 복사할 필요가 없다. 이를 통해 가비지 컬렉션의 비용이 줄어 들게 된다.
도 8은 본 발명의 다른 실시예에 따른 가비지 컬렉션 동작을 나타낸 도면이다.
도 8을 참조하면, 먼저, 플래시 변환 계층(20)은 단계 310에서 가비지 컬렉션 동작을 개시할 지를 결정한다.
플래시 변환 계층(20)은 가비지 컬렉션 동작을 개시할 것을 결정하면 단계 320에서 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 복제 페이지(duplicated page)가 있는 지를 판단한다.
만약 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 복제 페이지가 있다면, 플래시 변환 계층(20)은 단계 330으로 진행하여 복제 페이지중 LRU 영역에 더티 상태의 페이지가 존재하는 지를 판단한다.
만약 버퍼 캐시의 LRU 영역에 복제 페이지중 더티 상태의 페이지가 존재하면, 플래시 변환 계층(20)은 단계 340으로 진행하여 버퍼 캐시의 해당 더티 상태의 페이지를 프리 블록으로 복사하고, 그 상태를 클린 상태로 변경한다. 전술한 바와 같이, 이는 프리 블록으로 복사되었으므로, 추후 버퍼 캐시(12)로부터 플래시 메모리(30)로 복사될 필요가 없기 때문이다.
이후, 플래시 변환 계층(20)은 단계 350에서 복제 페이지중 MRU 영역에 클린 상태의 페이지가 존재하는 지를 판단한다.
만약 버퍼 캐시의 MRU 영역에 복제 페이지중 클린 상태의 페이지가 존재하면, 플래시 변환 계층(20)은 단계 360으로 진행하여 해당 페이지의 클린 상태를 더티 상태로 변경한다. 이는 MRU 영역은 변경이 자주 발생하므로, 추후 버퍼 캐시로부터 플래시 메모리로 페이지가 복사되도록 하기 위함이다.
이어서, 플래시 변환 계층(20)은 단계 370에서 버퍼 캐시(12)와 플래시 메모리(30)에 동시에 존재하는 복제 페이지를 제외하고, 나머지 페이지들을 프리 블록으로 복사함으로써 병합한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 파일 시스템
12: 버퍼 캐시
20: 플래시 변환 계층
30: 플래시 메모리

Claims (8)

  1. 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템에 있어서,
    LRU(Least Recently Used) 알고리즘에 따라 최근 가장 적게 사용된 데이터가 저장되는 제1 영역과, MRU(Most Recently Used) 알고리즘에 따라 최근에 사용된 데이터가 저장되는 제2 영역을 가지는 버퍼 캐시와,
    데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리와,
    가비지 컬렉션 동작시, 상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 플래시 메모리에 저장되어 있는 페이지와 동일한 상태인 클린 상태의 페이지가 존재하는 지를 판단하고, 상기 클린 상태의 복제 페이지가 존재하면 상기 클린 상태의 페이지중 상기 제2 영역의 페이지 상태를 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태로 변경하고, 상기 클린 상태의 페이지중 상기 제1 영역의 페이지 상태를 클린 상태로 유지하고, 상기 복제 페이지 중 클린 상태의 페이지에 대응하는 페이지를 상기 데이터 블록이나 로그 블록으로부터 프리 블록으로 복사하는 플래시 변환 계층을 포함하는 것을 특징으로 하는 낸드 플래시 메모리 시스템.
  2. 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템에 있어서,
    LRU(Least Recently Used) 알고리즘에 따라 최근 가장 적게 사용된 데이터가 저장되는 제1 영역과, MRU(Most Recently Used) 알고리즘에 따라 최근에 사용된 데이터가 저장되는 제2 영역을 가지는 버퍼 캐시와,
    데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리와,
    가비지 컬렉션 동작시, 상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 상기 제1 영역에 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태의 페이지가 존재하는 지 판단하고, 상기 제1 영역에 더티 상태의 복제 페이지가 존재하면, 상기 버퍼 캐시의 제1 영역의 더티 상태의 페이지를 상기 프리 블록으로 복사하고, 그 상태를 클린 상태로 변경하고, 상기 버퍼 캐시의 복제 페이지 중 상기 제2 영역에 상기 플래시 메모리에 저장된 데이터와 동일한 상태인, 클린 상태의 페이지가 존재하면, 상기 제2 영역의 페이지 상태를 더티 상태로 변경하는 플래시 변환 계층을 포함하는 것을 특징으로 하는 낸드 플래시 메모리 시스템.
  3. 제1항 또는 제2 항에 있어서, 상기 플래시 변환 계층은 상기 복제 페이지들을 제외한 페이지들을 상기 데이터 블록 또는 상기 로그 블록으로부터 상기 프리 블록으로 복사하는 것을 특징으로 하는 낸드 플래시 메모리 시스템.
  4. 삭제
  5. LRU(Least Recently Used) 알고리즘에 따라 최근 가장 적게 사용된 데이터가 저장되는 제1 영역과, MRU(Most Recently Used) 알고리즘에 따라 최근에 사용된 데이터가 저장되는 제2 영역을 가지는 버퍼 캐시와, 데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리를 포함하는 낸드 플래시 메모리 시스템에서 가비지 컬렉션을 수행하는 방법에 있어서,
    상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 플래시 메모리에 저장되어 있는 페이지와 동일한 상태인 클린 상태의 페이지가 존재하는 지를 판단하는 단계와,
    상기 클린 상태의 복제 페이지가 존재하면, 상기 클린 상태의 복제 페이지중 상기 제2 영역의 페이지 상태를 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태로 변경하는 단계와,
    상기 클린 상태의 페이지중 상기 제1 영역의 페이지 상태를 클린 상태로 유지하는 단계와,
    상기 복제 페이지 중 클린 상태의 페이지에 대응하는 페이지를 상기 데이터 블록이나 로그 블록으로부터 프리 블록으로 복사하는 단계를 포함하는 것을 특징으로 하는 가비지 컬렉션 방법.
  6. LRU(Least Recently Used) 알고리즘에 따라 최근 가장 적게 사용된 데이터가 저장되는 제1 영역과, MRU(Most Recently Used) 알고리즘에 따라 최근에 사용된 데이터가 저장되는 제2 영역을 가지는 버퍼 캐시와, 데이터를 저장하는 데이터 블록, 상기 데이터 블록으로 저장될 데이터를 임시로 저장하는 로그 블록, 및 빈 공간의 프리 블록을 포함하고, 상기 각 블록은 복수개의 페이지를 포함하는 플래시 메모리를 포함하는 낸드 플래시 메모리 시스템에서 가비지 컬렉션을 수행하는 방법에 있어서,
    가비지 컬렉션 동작시, 상기 버퍼 캐시와 상기 플래시 메모리에 동시에 존재하는 복제 페이지가 존재하면, 상기 버퍼 캐시의 복제 페이지 중 상기 제1 영역에 상기 플래시 메모리에 저장된 데이터와 다른 더 최신 상태인 더티 상태의 페이지가 존재하는 지 판단하는 단계와,
    상기 제1 영역에 더티 상태의 복제 페이지가 존재하면, 상기 버퍼 캐시의 제1 영역의 더티 상태의 페이지를 상기 프리 블록으로 복사하고, 그 상태를 클린 상태로 변경하는 단계와,
    상기 버퍼 캐시의 복제 페이지 중 상기 제2 영역에 상기 플래시 메모리에 저장된 데이터와 동일한 상태인, 클린 상태의 페이지가 존재하면, 상기 제2 영역의 페이지 상태를 더티 상태로 변경하는 단계를 포함하는 것을 특징으로 하는 가비지 컬렉션 방법.
  7. 제5항 또는 제6항에 있어서, 상기 플래시 변환 계층은 상기 복제 페이지들을 제외한 페이지들을 상기 데이터 블록 또는 상기 로그 블록으로부터 상기 프리 블록으로 복사하는 단계를 더 포함하는 것을 특징으로 하는 가비지 컬렉션 방법.
  8. 삭제
KR1020100017821A 2010-02-26 2010-02-26 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법 KR101179027B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100017821A KR101179027B1 (ko) 2010-02-26 2010-02-26 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100017821A KR101179027B1 (ko) 2010-02-26 2010-02-26 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110098279A KR20110098279A (ko) 2011-09-01
KR101179027B1 true KR101179027B1 (ko) 2012-08-31

Family

ID=44951857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100017821A KR101179027B1 (ko) 2010-02-26 2010-02-26 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101179027B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019376B2 (en) 2015-11-19 2018-07-10 SK Hynix Inc. Memory system and operating method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419004B1 (ko) * 2012-05-03 2014-07-11 주식회사 디에이아이오 비휘발성 메모리 시스템
KR102002830B1 (ko) 2012-09-28 2019-07-23 삼성전자 주식회사 세그먼트 클리닝 장치 및 방법
KR101548689B1 (ko) 2014-12-26 2015-09-01 성균관대학교산학협력단 파일 시스템에서의 부분 가비지 컬렉션 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019376B2 (en) 2015-11-19 2018-07-10 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
KR20110098279A (ko) 2011-09-01

Similar Documents

Publication Publication Date Title
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
CN110678836B (zh) 用于键值存储的持久性存储器
KR101038167B1 (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US9405675B1 (en) System and method for managing execution of internal commands and host commands in a solid-state memory
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
USRE45577E1 (en) Method of writing to a flash memory including data blocks and log blocks
US10740251B2 (en) Hybrid drive translation layer
KR101067018B1 (ko) 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치
JP5708216B2 (ja) フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
JP2012514794A (ja) 記憶装置におけるマッピングアドレステーブルの維持
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
JP2009521049A (ja) ブロック消去可能な記憶場所を有するメモリ
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
JP2011022933A (ja) メモリ管理装置を含む情報処理装置及びメモリ管理方法
CN108845957B (zh) 一种置换和回写自适应的缓冲区管理方法
KR100787856B1 (ko) 플래시 메모리 저장장치의 페이지 교체 방법
US20180210675A1 (en) Hybrid drive garbage collection
KR101179027B1 (ko) 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
US20170199687A1 (en) Memory system and control method
KR100987251B1 (ko) 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR100998212B1 (ko) Nand 플래시 메모리의 버퍼 접근 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160607

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee