KR100848315B1 - 이중 저널링을 이용한 데이터 저장 공간 확보 방법 - Google Patents

이중 저널링을 이용한 데이터 저장 공간 확보 방법 Download PDF

Info

Publication number
KR100848315B1
KR100848315B1 KR1020060110165A KR20060110165A KR100848315B1 KR 100848315 B1 KR100848315 B1 KR 100848315B1 KR 1020060110165 A KR1020060110165 A KR 1020060110165A KR 20060110165 A KR20060110165 A KR 20060110165A KR 100848315 B1 KR100848315 B1 KR 100848315B1
Authority
KR
South Korea
Prior art keywords
segment
data
journaling
storage
storage segment
Prior art date
Application number
KR1020060110165A
Other languages
English (en)
Other versions
KR20070061345A (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 PCT/KR2006/004746 priority Critical patent/WO2007066909A1/en
Priority to US11/909,078 priority patent/US7734863B2/en
Publication of KR20070061345A publication Critical patent/KR20070061345A/ko
Application granted granted Critical
Publication of KR100848315B1 publication Critical patent/KR100848315B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/04Addressing variable-length words or parts of words
    • 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
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터의 저장 매체로 플래시 메모리(flash memory)를 이용할 시에 이중 저널링을 이용한 데이터 저장 공간 확보 방법에 관한 것이다.
본 발명은 (a)플래시 메모리의 데이터 저장 장소인 세그먼트의 프리 리스트(free list)를 중앙점을 설정하여 전반부 저널링 프리 리스트와 후반부 저널링 프리 리스트로 분리 작성하고, 상기 전반부 프리 리스트로부터 프리 세그먼트가 충분히 확보되어 있는지 판단하는 단계; 및 (b)상기 프리 세그먼트가 충분히 확보되어 있지 아니한 경우, 소정의 데이터가 이미 저장된 세그먼트에 설정된 지움 평준화의 한계치와 유효 데이터의 한계치를 참고하여, 상기 저장된 데이터 중 Garbage 데이터를 수집하여(Garbage collection) 데이터 저장 공간을 확보하는 단계를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.

Description

이중 저널링을 이용한 데이터 저장 공간 확보 방법{Method for guarantying data storing space using dual journaling}
도 1은 세그먼트 프리 리스트를 이용한 데이터 저장 구조를 제시한 도면이다.
도 2와 도 3은 중앙점이 이동되는 경우를 제시한 도면이다.
도 4a와 도 4b는 본 발명의 바람직한 일실시예의 흐름을 제시한 도면이다.
본 발명은 이중 저널링을 이용한 데이터 저장 공간 확보 방법에 관한 것으로, 보다 상세하게는 데이터의 저장 매체로 플래시 메모리(flash memory)를 이용할 시에 이중 저널링을 이용한 데이터 저장 공간 확보 방법에 관한 것이다.
컴퓨터 시스템에서 일반적으로 데이터를 저장하고 관리하고 읽기 위하여 데이터 저장 형태를 일정한 모양으로 만드는데 이런 형식을 데이터 저장 구조라고 하며, 파일 형식으로 묶어서 데이터를 저장하고 관리하는 것을 파일 시스템(file system)이라 한다.
최근에 정보통신 기술과 이동 컴퓨팅 기술이 발전함에 따라 PDA(Personal Digital Assistants), HPC(Hand-Held PC), 휴대폰, 전자책(e-book) 등 임베디드 시스템(Embedded System)이 많이 개발되고 있는데, 이러한 임베디드 시스템에 데이터를 저장하기 위해 주로 사용되는 저장 매체는 플래시 메모리(flash memory)이다.
플래시 메모리는 일반적으로 ROM(Read Only Memory)과 유사한 특성을 가지고 있으며, 하드 디스크와는 좀 다른 특성을 갖는다. 플래시 메모리는 비휘발성으로 전원이 차단되어도 저장된 데이터의 내용이 없어지지 않는다는 면에서 ROM이나 하드 디스크와 같지만 신뢰성 측면에서 하드 디스크보다 견고하다. 아울러 칩(Chip) 형식으로 저전력 동작이 가능하며 접근 시간이 RAM(Random Access Memory)과 유사할 만큼 빠르다. 또한 저장된 데이터를 지우고 다시 쓸 수 있으며 크기가 작아 휴대 기기에 적합하다.
그러나 하드 디스크에 비해 매우 고비용이며 이미 데이터가 있는 공간에 새로운 데이터를 쓰고자 할 때는 클리닝(cleaning, 지움) 과정을 수행한 다음에서야 다시 저장할 수 있다. 그런데 이런 지움 과정을 수행하는 시간은 데이터를 읽는 시간에 비해 약 100배 정도 더 소요되는 문제점이 있다.
인텔(Intel co.)에서 개발한 28F640J3A 모델(model) 플래시 메모리를 기준으로 할 때, 읽기 속도는 100~150 nsec로 RAM과 유사할 정도로 빠르지만 쓰기 속도와 지우는 속도는 이에 비해 상대적으로 느리다. 버퍼(buffer)를 이용한 쓰기 시간은 32 bytes 버퍼를 이용할 경우 218 μsec 정도가 걸리며, 지움 블록(erase block) 단위의 쓰기 시간은 블록당 0.8 초 정도가 걸린다. 또한 한번에 지울 수 있는 지움 블록의 크기가 128 Kbytes로 일정하며, 상온에서 지운 다음 재사용할 수 있는 회수 가 약 10만 번으로 정해져 있다. 여기서 지움 블록(erase block)이란 한번에 지울 수 있는 플래시 메모리의 공간을 의미하며 세그먼트(segment)라고도 한다.
이러한 플래시 메모리를 저장 매체로 이용하여 파일 시스템을 구성한 종래 기술로는 미국 특허 5,404,485의 "Flash File System"이란 제목의 특허가 있으며, 1995년도 USENIX 컨퍼런스(conference)에서 발표된 논문 페이지 155에서 164에 "A Flash Memory Based File System" 이 있다. 또한, 미국 특허 번호 6,128,630의 "Journal Space Release for Log-structured Storage Systems"와 미국 특허 번호 6,128,630의 "Data Storage Library Array with Log-structured File System Which Allows Simultaneous Write and Garbage Collection" 등에서 발명한 로그 구조의 파일 시스템(log-structured file system)을 플래시 메모리에 적용시킨 저널링 플래시 파일 시스템(journaling flash file system : JFFS) 등이 있다.
로그 구조의 파일 시스템은 하드 디스크에 파일 시스템을 구성하고 저장할 때 발생한 데이터를 순차적으로 저장하는 방식으로 이전 데이터와 새로 수정된 데이터에 대한 버전(version)을 로그 형식으로 유지할 수 있고, 현재 문제가 발생한 데이터에 대해 이전 데이터로 회귀함으로써 복구할 수 있다는 장점을 갖는다.
JFFS는 로그 구조의 파일 시스템을 이용하여 플래시 메모리에 대해 파일 시스템을 구성하고 발생한 데이터를 순차적으로 저장하도록 한다. JFFS는 미국의 Axis Communications에서 개발했으며, 이의 버전(version) 2에 해당하는 JFFS2는 미국의 RedHat에서 FSF(free software foundation)의 GPL(GNU public licenses)를 따라 개발하고 있다.
JFFS에 의하여 플래시 메모리에 파일 시스템을 구성할 때에 저널링 방식을 이용하는 중요한 이유 중 하나는 데이터의 무결성을 보장할 수 있기 때문이다. 플래시 메모리를 많이 사용하는 임베디드 시스템의 특성상 전원 공급이 갑자기 차단될 가능성이 매우 높다. 일반적으로 컴퓨터 시스템이 읽기나 쓰기 등을 수행할 때에는 저장의 효율성을 위해 저장 매체에 바로 쓰기 않고 RAM 부분의 메인 메모리에 버퍼 형식으로 저장한 다음 일정 정도의 작업이 끝난 후 저장매체에 저장하는 방식을 사용한다.
이 경우 갑자기 전원이 꺼진다면 중간 결과의 값이 없어지고 실제로 저장 매체에 남아 있는 데이터가 어디까지 수행한 결과인지 알기가 어렵다. 또한 저장 매체에 저장구조나 파일 시스템을 만들기 위한 추가적인 메타 데이터(meta data)들이 있는데 대부분이 RAM 부분에 임시적으로 저장된다. 이런 데이터들이 없어지면 데이터나 파일 시스템의 무결성을 보장하기가 어렵다.
이러한 이유로 저널링 방식이 이용되며, 데이터를 저널링 방식으로 로깅(logging)하여 저장하면 데이터의 무결성을 쉽게 보장할 수 있음과 아울러 메타 데이터 부분도 작아져 쉽게 관리가 가능하다는 장점이 있다.
그러나 JFFS의 가장 큰 문제점은 모든 데이터를 발생 순서대로 저장하기 때문에 파일 시스템의 실제 파일과 이를 관리하기 위한 메타 데이터도 순차적으로 저장해야 한다는 점이다. JFFS에 의하면 컴퓨터를 켜서 파일 시스템을 마운트(mount)할 때 메타 데이터를 모두 RAM으로 읽어 와야 하기 때문에 플래시 메모리의 전체 공간을 모두 읽어봐야 하므로 마운트에 매우 많은 시간이 소요된다.
플래시 메모리의 용량이 커짐에 따라 상기 소요 시간은 더욱 증가하며 따라서 임베디드 시스템에서 시스템을 켜고 사용하는데 까지 걸리는 부팅(booting) 시간을 크게 증가시키기 때문에 빠른 접근을 요구하는 임베디드 시스템의 특성상 적당하지 않다.
저널링 방식에서 데이터를 순차적으로 저장하는 또 다른 이유는 앞에서 설명한 저장의 단순성이나 무결성의 이유도 있지만 지움 평준화(Wear-leveling) 문제도 고려해야 하기 때문이다. 플래시 메모리는 그 특성상 데이터를 지우고 다시 쓰는 것을 영구적으로 할 수 없다. 제품 종류에 따라 약간 다르지만 약 10만에서 100만 번 정도 지움을 수행하면 수명이 다한다.
이것은 지움 단위인 각 세그먼트 마다 해당되므로 특정한 세그먼트에 지우고 쓰는 과정이 집중되어 수명을 다하면, 플래시 메모리를 전체적으로 사용할 수 없거나 수명이 다한 세그먼트를 따로 관리해 줘야 하는 문제가 발생한다. 이를 피하기 위해 모든 세그먼트에 지움 과정이 공평하게 수행되는 지움 평준화가 이루어져야 한다. 저널링 방식은 지우는 것도 순차적으로 수행하여 지움 평준화가 자연적으로 이루어진다.
그러나 이렇게 지움 평준화가 이루어지도록 순차적으로 지우는 방식은 시스템 전체적인 측면에서 데이터의 입출력 속도의 저하를 야기한다. 저널링 저장 방식에서 저장이 발생하는 부분을 저널링의 헤드(head)라 하고, 지움 과정이 수행되는 곳을 테일(tail)이라 하는데, 플래시 메모리의 처음 빈 공간에서 한번 끝까지 모두 저장이 이루어져 헤드가 플래시의 끝에 도달하기 전에 어느 정도 여유 공간을 두고 테일 부분을 지워야 계속해서 저장이 가능하다.
헤드가 플래시의 끝부분까지 데이터를 저장하는 동안 필요 없는 데이터가 생겼을 것이고 새롭게 갱신된 데이터도 있을 수 있다. 이 경우 플래시 메모리의 필요 없는 데이터는 실제로 삭제되는 것이 아니라, 무효화(invalid) 상태로만 표시된다. 갱신된 데이터의 경우에도 갱신 이전 데이터는 무효화 표시만 되고 갱신된 데이터가 헤드에 저장된다. 이렇게 함으로써 문제가 생겼을 때 복구가 용이하며 무결성을 유지할 수 있다.
이러한 과정에서 새롭게 테일의 세그먼트를 지워야 하는 순서가 왔을 때, 세그먼트 내 모든 데이터가 모두 무효화 상태이면 바로 지울 수 있겠지만 그렇지 않은 유효한(valid) 데이터는 헤드로 옮긴 다음 지울 수 있다. 그러나 테일의 세그먼트의 데이터가 거의 모두 유효한 데이터인 경우 데이터를 헤드로 옮기는 시간이 많이 필요하다. 이러한 현상은 저널링의 중간 부분에 무효화된 데이터가 대부분인 세그먼트가 있는데도 불구하고 지움이 순차적으로 행하여지기 때문에 발생한다.
또한 테일 부분에서 세그먼트를 지우는 이유는 플래시 메모리에 전체적으로 저장 공간이 부족해서인데, 유효한 데이터를 옮기기 위해 헤드 부분의 세그먼트를 모두 사용하게 되면 테일 부분에서 세그먼트를 지운다 하더라도 역시 저장 공간이 부족하여 계속해서 이런 과정을 반복해야 한다는 문제가 발생한다. 이런 데이터가 시스템에 계속 남아 있는 고정 데이터인 경우는 이러한 과정을 저널링을 수행할 때 마다 반복적으로 수행해야 한다. 이것은 시스템의 성능을 매우 저하시키는 요인이 된다.
이러한 문제를 방지하기 위한 방안은 결국 유효한 데이터가 세그먼트의 대부분을 차지하면 지우지 않고 넘어가는 것이다. 그러나 단순히 세그먼트를 지우지 않으면 지움 평준화를 위배하게 되므로 둘 사이에서 타당한 방안을 찾아야 한다. 또한 사용자는 내부의 저장매체가 무엇인가에 상관하지 않고 빠른 부팅시간을 요구하는데 현재의 저널링 저장 방법으로는 이러한 요구사항을 만족하기 어렵다.
본 발명은 상기한 문제점들을 해결하기 위해 창안된 것으로, 본 발명의 목적 및 이루고자 하는 기술적 과제는 기존의 저널링 저장 방식을 개선하여 저장 매체에 데이터의 저장을 효과적으로 수행할 수 있는 데이터 저장 공간 확보 방법을 제공하는 것에 있다.
상기와 같은 목적 및 기술적 과제를 달성하기 위해 본 명세서에서 개시하는 데이터 저장 방법은
(a)플래시 메모리의 데이터 저장 장소인 세그먼트의 프리 리스트(free list)를 중앙점을 설정하여 전반부 저널링 프리 리스트와 후반부 저널링 프리 리스트로 분리 작성하고, 상기 전반부 저널링 프리 리스트로부터 프리 세그먼트가 충분히 확보되어 있는지 판단하는 단계; 및 (b)상기 프리 세그먼트가 충분히 확보되어 있지 아니한 경우, 소정의 데이터가 이미 저장된 세그먼트에 설정된 지움 평준화의 한계치와 유효 데이터의 한계치를 참고하여, 상기 저장된 데이터 중 Garbage 데이터를 수집하여(Garbage collection) 데이터 저장 공간을 확보하는 단계를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.
본 발명이 상기한 문제점들을 해소하기 위해 제시하는 핵심적인 방안은 DJFS(Dual Journaling File System) 방식, 즉 이중 저널링 저장 방식이다. 이 방식에 관한 기존에 공지된 것이 있는데, 이는 국제특허 PCT WO 2004/059624 A1 "Dual Journaling Store Method And Storage Medium Thereof" 에 제시되어 있다.
이 국제특허는 상기한 문제를 해결하고자 DJFS(Dual Journaling File System)가 제시되어 있으며 두 가지 상이한 데이터의 종류를 분리하여 한 종류는 앞쪽부터 순방향 저널링 방식으로 저장하고 다른 종류의 데이터는 뒤쪽부터 역방향저널링 방식으로 저장하는 즉, 이중 저널링 방식의 저장 방식을 사용한다.
이 방식을 채용함으로써 파일 시스템의 순수 데이터는 앞부터 저장하고 메타 데이터는 뒤쪽에서 저장하기 때문에 데이터가 섞이기 않는다. 그러므로 마운트를 위해 전체 저장매체를 모두 읽지 않고 상대적으로 작은 메타 데이터가 저장되는 저장매체의 후반부만을 읽음으로써 부팅 시간을 감소시킬 수 있는 장점이 있다.
그러나 이 국제특허의 방식에 의하더라도 고정 데이터의 반복적인 지움 수행은 피할 수 없으며, 지움 평준화를 제대로 이루지 못하는 문제점이 있다. 이러한 문제점들을 해결하고자 본 발명에서는 세그먼트 프리 리스트(segment free list)를 채용하고 지움 지연(erase-delayed)을 도입한 개선된 이중 저널링 방식을 개시한다.
이하, 본 발명의 기술적 사상을 명확화하기 위한 발명의 구성을 본 발명의 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다.
플래시 메모리를 저장 매체로 주로 사용하는 임베디드 시스템 등에서 사용자는 가능한 빠른 부팅으로 사용하고자 하는 기기가 바로 응답을 할 수 있기를 바란다. 또한 주로 사용되는 기기는 모바일 단말이므로 수시로 전원을 켜고 끄는 특성이 있다. 이런 특성은 저장 장치에 대한 저장 구조의 견고성을 요구하며, 갑작스런 전원 차단으로 파일 시스템 등이 깨지는 것이 허용되지 않으며, 만약 문제가 있다고 해도 복구를 위해 많은 시간을 허용되지 않음을 요구한다.
이러한 특성을 플래시 메모리를 사용하는 기기에 적용해 보면 플래시 메모리의 파일 시스템을 마운팅(mountaing)하는 시간이 최소화되어야 하며, 갑작스런 전원 차단에 대해 파일 시스템의 견고성이 유지되어야 하며, 복구에 대한 회복이 빨라야 하며, 데이터를 읽고 쓰는 성능을 저하시키면서 플래시 메모리의 수명을 필요이상으로 연장시킬 필요가 없어진다.
이를 위해 파일 시스템의 메타 데이터를 분리하여 따로 저장함으로써 마운트 시간이 적고 빠른 복구 시간을 지원하는 파일 시스템으로 이중 저널링 저장 방법을 이용하는 것은 타당하다. 그러나 일반적인 저널링 저장 방식을 이용하여 읽기와 쓰기의 성능을 저하시키면서 플래시의 지움 평준화를 고집하고 수명을 연장시키는 것은 타당성이 떨어진다.
이를 해결하기 위한 방안으로 본 발명은, 위에서 언급한 바와 같이, 지움 지 연(erase-delayed) 방식의 이중 저널링 저장 방법을 제공한다. 여기서 지움 지연의 의미는 한 세그먼트 내에 유효한 데이터의 양이 일정 크기 이상이면 그 세그먼트가 비록 지워져야 할 순서에 도달한 경우에도 바로 지우지 않고 지움 과정을 미룬다는 의미이다. 이렇게 하는 이유는 유효한 데이터의 양이 일정 크기 이상인 세그먼트를 지우게 되면 플래시 메모리에서 전체적으로 빈 저장 공간의 확보가 거의 이루어지지 않고 세그먼트 내 유효 데이터를 이동하는 시간이 소요되어 데이터 쓰기 시간을 증가시켜 시스템의 성능을 떨어뜨리기 때문이다.
이를 위해 세그먼트의 지움 기준이 되는 일정량 이상의 유효 데이터를 설정해야 하는데, 본 발명에서는 이를 "유효 데이터의 한계치(valid data threshold) - 유효 데이터 량의 임계치 Tv"라 정의하고 단순히 지움 지연을 시킬 것인지에 대한 판단만을 고려한다면 이 값은 세그먼트 크기의 절반에 해당하는 크기로 설정할 수 있다.
그러나 이러한 유효 데이터의 한계치를 넘는 세그먼트에 대해 영구히 지움 지연을 행할 수는 없다. 지움 지연을 계속하는 것은 플래시 메모리의 수명을 단축시키기 때문이다. 따라서 비록 그 세그먼트가 유효 데이터 한계치 이상의 데이터를 가지고 있다고 해도 경우에 따라서는 지움 과정을 수행해야 한다. 본 발명에서는 "지움 평준화의 한계치(Wear-leveling Threshold) - 지움 회수의 임계치 Te"를 설정하여 해결한다. 이 한계치는 지움 평준화 한계치와 플래시 메모리 수명간의 상관관계에 대해 면밀한 검토가 필요하겠지만 통상적으로 가능 지움 회수의 1/10 정도로 설정할 수 있다.
본 발명에 의한 지움 지연 방식의 저널링 저장 방법을 이용하기 위해서는 기존의 저널링에 의한 헤드와 테일의 개념으로 데이터를 저장할 수 없다. 왜냐하면, 지움 지연으로 중간에 지우지 않고 넘어가는 세그먼트가 존재하기 때문이다. 이를 해결하기 위해 본 발명에서는 제안하는 저장 방식은 위에서 소개한 세그먼트 프리 리스트(segment free list)를 이용하는 것이다.
도 1은 세그먼트 프리 리스트를 이용한 데이터 저장 구조를 제시한 도면이다.
도 1에 제시된 바와 같이, 시스템의 메인 메모리에 프리 리스트를 구성하고 프리 세그먼트(free segment)에 대해 포인터를 이용하여 프리 리스트를 작성한다. 본 발명에 의한 이중 저널링 저장 방식의 경우, 세그먼트 프리 리스트는 프리 세그먼트의 중앙점을 기준으로 전반부 저널링 프리 리스트(Front Journaling Free List)와 후반부 저널링 프리 리스트(Rear Journaling Free List)로 분리 설정한다. 저장 대상 데이터는 프리 리스트의 헤드(head)에서부터 저장되며, 세그먼트를 지우고 지워진 세그먼트를 프리 리스트에 붙이는 과정은 테일(tail)에서 발생한다.
처음 프리 리스트를 구성할 때는 반절 정도를 설정해서 두 저널링(전반부 저널링과 후반부 저널링)에 대한 프리 리스트를 만들어도 되며, 시간이 지남에 따라 중앙점이 새로 정해질 수 있다.
신규의 저장 데이터가 들어오면 헤드 부분에 저장되는데, 먼저 프리 리스트에 빈 저장 공간(프리 공간)이 충분한지를 확인해야 한다. 저장을 위한 최소 공간은 세그먼트를 지우기 위해 유효한 공간을 이동해야 하므로 최소한 2개의 세그먼트 는 빈 공간으로 유지해야 하는데, 충분하다고 평가되는 프리 세그먼트의 개수는 플래시 메모리 전체 공간의 약 10% 정도이다.
데이터가 계속 저장되어 충분한 프리 공간이 없으면 테일에서 지움 과정이 일어나는데, 우선적으로 유효 데이터 한계치 Te 이하의 유효 데이터를 갖는 세그먼트를 지우고 지워진 세그먼트를 프리 리스트에 붙인다. 그리고 프리 리스트의 테일이 가리키는 곳은 새롭게 붙은 테일의 위치가 된다. 프리 리스트 이외의 세그먼트는 모두 데이터가 일단 한번 저장된 dirty 세그먼트이다. 결국, 데이터를 저장하는 위치는 항상 프리 리스트의 헤드 부분이 되고 프리 세그먼트를 확보하는 곳은 테일이 된다.
이러한 저장 과정을 반복하다 보면 도 2에서 보는 것처럼 테일의 다음 위치가 중앙점 C에 도달하게 된다. 그 다음 세그먼트를 프리 리스트에 넣을지를 결정해야 하는데, 이 중앙점 C을 넘는 세그먼트는 자신(전반부 또는 후반부)의 저널링 공간이 아니다.
도 2는 중앙점이 이동되는 경우를 제시한 도면이다.
도 2는 전반부 저널링이 증가하는 것을 그 예로 들었다. 중앙점 이상은 후반부 저널링이 된다. 이 경우 기존의 이중 저널링 방식에서는 단순히 중앙점에 먼저 도착하는 저널링이 상대쪽(전반부가 후반부로 또는 후반부가 전반부로) 저널링 공간으로 밀도록 되어 있었다. 그러나 본 발명에서는 지움 지연 방식과 프리 리스트를 이용하기 때문에 이 방식을 그대로 사용할 수 없으며 지움 회수를 고려하여 지움 지연을 할지를 결정해야 한다.
중앙점을 상대방측 저널링 공간으로 미는 이유는 결국은 지움 평준화를 가능한 한 맞추어 주기 위함인데, 데이터를 저장코자 하는 전반부 세그먼트(이하 ‘전반부 저장 세그먼트’)의 최대 지움 회수 Emax보다 테일 다음의 세그먼트의 지움 회수 E(St+1)가 크면 중앙점을 그대로 두고 전반부 저널링의 처음부터 다시 시작해야 한다.
도 2에는 중앙점 이동 여부의 결정을 위한 네 가지 경우가 제시되어 있다.
지우고자 하는 전반부 저장 세그먼트의 최대 지움 회수를 넘어서는지와 상기 전반부 저장 세그먼트의 바로 다음 후반부 저장 세그먼트가 dirty 세그먼트인지 아닌지를 결정하여 중앙점의 이동 여부를 결정한다.
도 2에서 전반부 저널링의 tail이 가리키는 세그먼트 St 다음은 중앙점을 넘어서고 있다. 그러므로 중앙점 너머의 세그먼트 St+ 1를 전반부 저널링으로 포함시키고 중앙점의 이동 여부를 결정해야 한다. 우선 지우고자 하는 후반부 저장 세그먼트 St+1의 지움 회수 E(St+1)가 전반부 저장 세그먼트의 최대 지움 회수 Emax 보다 크면, 후반부 세그먼트 St+1가 전반부 세그먼트들 보다 더 많이 지워졌다는 의미이므로 St+1 세그먼트가 dirty 세그먼트인지 free 세그먼트인지 무관하게 중앙점을 이동시킬 필요가 없다. 즉, 중앙점을 그대로 유지한다.
그러나 E(St+1)가 전반부 최대 지움 회수 Emax보다 작다면 후반부 저널링의 지 움 회수가 작다는 의미이므로 중앙점을 St+1 다음으로 증가시키고 St+1을 전반부 저널링의 tail에 붙여서 전반부 저널링에 포함시킨다. 이러한 과정은 또 다시 후반부 세그먼트 St+2에 대해 지움 회수를 비교하여 반복되며 아울러 후반부 세그먼트 St+1의 지움 회수가 전반부 세그먼트의 최대 지움 회수보다 클 때까지 반복된다.
이를 위해서 후반부 저장 세그먼트 St+1에 유효 데이터가 있으면 후반부 저널링 프리 리스트의 헤드 부분에 저장하고 후반부 저장 세그먼트 St+1을 초기화해 프리 세그먼트로 만든 다음 전반부 저널링의 테일에 붙여 주고 중앙점을 하나 증가시킨다. 만일 후반부 저장 세그먼트가 프리이면 지울 필요가 없으므로 후반부 저장 세그먼트를 후반부 프리 리스트에서 떼어내어 전반부 프리 리스트의 테일에 붙여 준 후 중앙점을 하나 증가시킨다. 그런데 이때 후반부 저널링의 프리 세그먼트의 개수가 최소값 이하이면 중앙점을 그대로 유지시킨다.
한 가지 제약사항으로 도 2의 두 번째 경우에서 “E(St+1) < Emax”인데 St+1가 dirty 세그먼트인 경우 이 세그먼트의 유효 데이터 내용을 옮겨주어야 하는 문제가 있으므로 세그먼트 St+1가 dirty 세그먼트 인 경우에만 지움 회수가 전반부 저널링의 최소 지움 회수 Emin보다 작을 때, 즉 “E(St+1) < Emin”일 때만 중앙점을 증가시키는 방법을 사용할 수 있다.
이런 과정을 수행하여 테일 부분에서 프리 세그먼트를 확보하다 보면 도 3에서처럼 테일의 다음 세그먼트가 헤드 위치가 될 수 있다. 이것은 플래시 메모리의 저장 공간이 거의 없다는 의미가 되는데 본 발명에서는 지움 지연의 방식으로 유효 데이터 한계치(유효 데이터 량의 임계치)를 이용하여 프리 세그먼트를 확보하기 때문에 아직 빈 공간을 만들 수 있는 공간은 남아 있다.
이렇게 테일 위치가 한 바퀴 돌아서 헤드 위치를 넘어가는 경우는 한계치를 더 증가시키는 방법을 사용할 수 있다. 예를 들어 처음 지움 지연을 사용할 때는 유효 데이터량의 1/3 이상을 가진 세그먼트만 지우지 않고 남기지만, 한 바퀴 돌아서 헤드를 넘어서는 경우는 유효 데이터량의 2/3 이상을 가진 세그먼트를 남기고 그 이하는 지워서 프리 공간으로 확보하는 방안을 사용할 수 있다.
또 다른 예로 프리 리스트가 N 바퀴 돈다고 볼 때, 처음에는 유효 데이터량의 1/N 이상을 가진 세그먼트를 지우지 않고 남기고 다음번에는 유효 데이터량의 2/N 이상을 가진 세그먼트를 남기고 또 다음번에는 유효 데이터량의 3/N 이상을 가진 세그먼트를 남기는 등의 방식으로 가중치를 주어서 한계치를 설정할 수 있다. 그러나 이런 경우에도 지움 평준화의 한계치를 넘어서는 세그먼트는 그대로 지운다.
이렇게 저장 공간이 부족하여 유효한 데이터를 헤드로 옮기고 세그먼트 단위로 지움 과정을 수행하여 빈 저장 공간을 확보하는 과정을 Garbage Collection(GC)이라 한다.
도 4a는 본 발명의 바람직한 일실시예의 흐름을 제시한 도면이고 도 4b는 도 4a에 제시된 Garbage Collection 이 수행되는 흐름을 제시한 도면이다. 도 4a와 4b에 제시된 흐름은 전반부 저널링을 통해 저장이 수행되는 것을 가정하기로 한다.후 반부 저널링에 관해서는 전반부 저널링의 경우와 대칭적으로 설명할 수 있다.
신규 저장 대상 데이터가 입력되면 먼저 전반부 세그먼트 프리 리스트의 저장 공간이 충분한지 즉, 전반부 프리 세그먼트의 개수 N(F)가 전반부 세그먼트 프리 리스트의 최소 개수 Nmin 이상인지 판단하여(S41) 이하이면 GC을 수행하여 빈 공간을 확보하며(S42), 이상이면 메모리의 입출력 버퍼에 저장 대상 데이터가 있는지 판단한다(S43). 입출력 버퍼에 저장 대상 데이터가 있는 경우에는 전반부 프리 리스트의 헤드에서부터 세그먼트 단위로 데이터를 저장하고(S44) 헤드의 위치를 증가시킨 후(S45) S41 단계로 회귀한다.
입출력 버퍼에 저장 대상 데이터가 없는 경우에는 N(F)가 전반부 프리 세그먼트의 충분 개수 Nen보다 작은지 판단하여(S46) 작은 경우에는 GC을 수행하여 빈 공간(프리 공간)을 확보하며(S42), 큰 경우에는 저장 절차를 최종 종료한다. GC 수행의 상세 과정은 도 4b를 참고하여 자세히 설명한다.
GC를 수행하는 과정은 위에서 언급한 바와 같이 전반부 프리 세그먼트의 개수 N(F)가 전반부 프리 리스트의 최소 개수 Nmin 보다 작은 경우와, 입출력 버퍼에 데이터가 없는 경우 N(F)가 Nen보다 작은 경우에 실행되어 빈 저장 공간을 확보하는 과정이다.
먼저 테일이 중앙점 C에 도달했는지 판단하다(S421). 이는 t+i 번째 전반부 저장 세그먼트 St+i의 시작위치 L(St+i)가 중앙점 C보다 작은지를 판단하는 것과 같 다.
1)L(St+i)가 C보다 작은 경우(L(St+i) < C)
St+i 의 테일(t)이 St++i+1 의 헤드(h)를 넘는지(t≤h and t+i≥h ?) 판단한다(S422). 판단 결과 넘는 경우는 세그먼트 St+i가 프리 세그먼트인지 판단하여(S423) 프리 세그먼트인 경우에는 S421 단계로 회귀하여 다음 세그먼트 St++i+1에 대한 GC 처리가 이루어지며, 프리 세그먼트가 아닌 경우에는 전반부 저장 세그먼트 St+i의 유효 데이터를 전반부 프리 리스트의 헤드로 옮기고(S4231) 전반부 저장 세그먼트 St+i를 지운 후(S4232) 지워진 전반부 저장 세그먼트 St+i를 전반부 프리 리스트의 테일에 붙인다(S4233).
한편 테일(t)이 헤드(h)를 넘어서지 아니한 경우에는 전반부 저장 세그먼트 St+i의 유효 데이터 량 V(St+i)이 유효 데이터 량의 임계치 Tv를 넘는지와 전반부 저장 세그먼트 St+i의 지움 회수 E(St+i)가 지움 회수의 임계치 Te를 넘는지를 판단하여(S424) 모두 넘는 경우에는 전반부 저장 세그먼트 St+i의 다음 세그먼트에 대한 GC 처리가 이루어지며(즉, 전반부 저장 세그먼트 St+i를 지우지 않고 St+i에 대한 지움 지연이 이루어진다), 넘지 아니한 경우에는 S4231 내지 S4233 단계가 수행되어 전반부 저장 세그먼트 St+i를 지운다.
2)L(St+i)가 C보다 큰 경우(L(St+i) > C)
우선 전반부 저장 세그먼트 St+i의 지움 회수 E(St+i)가 최대 지움 회수 Emax 보다 작은지 판단한다(S425). 판단 결과 큰 경우 전반부 저장 세그먼트 St+i을 지우지 않고 중앙점을 그대로 두며 전반부 저널링 프리 리스트의 처음부터 다시 시작하기 위해 S421 단계로 회귀하며(t=0, i=0), 작은 경우에는 중앙점을 넘어선 전반부 저장 세그먼트의 바로 다음 후반부 저장 세그먼트 St+i가 dirty 세그먼트인지 판단한다(S426). 상기 후반부 저장 세그먼트 St+i가 dirty 세그먼트인 경우에는 후반부 저장 세그먼트 St+i의 유효 데이터를 후반부 프리 리스트의 헤드로 옮기고(S4261) 후반부 저장 세그먼트 St+i를 지운 후(S4262) 후반부 저장 세그먼트 St+i를 전반부 프리 리스트의 테일에 붙인 다음(S4263) 중앙점 C를 하나 증가시킨다(S428).
후반부 저장 세그먼트 St+i가 dirty 세그먼트가 아닌 경우에는 후반부 프리 세그먼트의 개수 N(F)가 후반부 프리 세그먼트의 충분 개수 Nen 보다 큰지 판단한다(S427). 작은 경우에는 중앙점을 그대로 두고 전반부 저널링의 처음부터 다시 시작하기 위해 S421 단계로 회귀하며(t=0, i=0), 큰 경우에는 후반부 저장 세그먼트 St+i를 전반부 프리 리스트의 테일에 붙이고(S4271) 후반부 프리 리스트에서 후반부 저장 세그먼트 St+i를 제거한 후(S4272) 중앙점 C를 하나 증가시킨다(S428).
본 방법발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있 는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.
그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명은 저장 매체에 데이터를 저장할 때 이중 저널링 방식을 이용하는 경우, 지움 지연 방식과 세그먼트 프리 리스트를 이용하여 데이터 저장 속도를 향상 시킬 수 있으며 또한 시스템의 부팅 시간을 향상하는 것뿐 아니라 효율적인 중앙점 관리가 이루어져 지움 평준화의 효율성을 높일 수 있다.
또한 지움 평준화의 한계치를 설정하기 때문에 갑작스런 전원 차단에 의한 파일 시스템 복구가 용이하며, 메인 메모리에 유지된 프리 리스트를 상실한다 하더라도 플래시 메모리의 전반부 또는 후반부의 처음부터 프리 리스트를 만들면 되므로 복구가 용이하다.

Claims (6)

  1. (a)플래시 메모리의 데이터 저장 장소인 세그먼트의 프리리스트(free list)를 중앙점을 설정하여 전반부 및 후반부 저널링프리리스트로 분리 작성하고, 상기 전반부 저널링프리리스트로부터 프리세그먼트가 충분히 확보되어 있는지 판단하는 단계; 및
    (b)상기 프리세그먼트가 충분히 확보되어 있지 아니한 경우, 상기 세그먼트에 기설정된 지움평준화의 한계치와 유효데이터의 한계치를 참고하여, Garbage데이터를 수집하여(Garbage collection) 데이터 저장 공간을 확보하는 단계를 포함하고, 상기(b)단계는
    (b1)데이터를 저장코자 하는 전반부 세그먼트(이하 '전반부저장세그먼트')의 시작 위치가 상기 중앙점을 넘어서는지 판단하는 단계;
    (b2)상기 중앙점을 넘어서지 아니한 경우, 상기 전반부저장세그먼트의 테일이 상기 전반부저장세그먼트의 다음 세그먼트의 헤드를 넘는지 판단하는 단계; 및
    (b3)상기 테일이 상기 헤드를 넘지 아니한 경우, 상기 전반부저장세그먼트의 유효데이터 량이 상기 유효데이터의 한계치를 넘어서는지와 상기 전반부저장세그먼트의 지움 회수가 상기 지움평준화의 한계치를 넘어서는 지를 판단하여, 넘어서는 경우에는 상기 전반부저장세그먼트에 대한 지움을 지연하는 단계;를 포함하는 것을 특징으로 하는 이중 저널링을 이용한 데이터 저장 공간 확보 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    (b4)상기 전반부저장세그먼트의 유효데이터 량이 상기유효 데이터의 한계치를 넘어서지 아니하고 상기 전반부저장세그먼트의 지움 회수가 상기 지움평준화의 한계치를 넘어서지 아니하여 상기 전반부저장세그먼트의 데이터가 유효한 경우에는, 상기 유효데이터를 상기 전반부 저널링프리리스트의 헤드로 옮기는 단계;
    (b5)상기 전반부저장세그먼트를 지우는 단계; 및
    (b6)상기 지워진 전반부저장세그먼트를 상기 전반부 저널링프리리스트의 테일에 붙이는 단계를 더 포함하는 것을 특징으로 하는 이중 저널링을 이용한 데이터 저장 공간 확보 방법.
  4. 제 1 항에 있어서,
    (b2)상기 전반부저장세그먼트의 시작 위치가 상기 중앙점을 넘어서는 경우, 상기 전반부저장세그먼트의 지움 회수가 상기 전반부저장세그먼트의 최대지움회수보다 작은지 판단하는 단계;
    (b3)작은 경우에는 상기 중앙점을 넘어선 전반부저장세그먼트의 바로 다음 후반부저장세그먼트가 dirty 세그먼트인지 판단하는 단계;
    (b4)dirty 세그먼트인 경우에는 상기 후반부저장세그먼트의 유효데이터를 상기 후반부 저널링프리리스트의 헤드로 옮기는 단계;
    (b5)상기 후반부저장세그먼트를 지우는 단계;
    (b6)상기 지워진 후반부저장세그먼트를 상기 전반부 저널링프리리스트의 테일에 붙이는 단계; 및
    (b7)상기 중앙점을 하나 증가시키는 단계를 포함하는 것을 특징으로 하는 이중 저널링을 이용한 데이터 저장 공간 확보 방법.
  5. 제 4 항에 있어서,
    (b4)상기 후반부저장세그먼트가 dirty 세그먼트가 아닌 경우에는 상기 후반부 저널링프리리스트의 프리 세그먼트 개수가 상기 후반부 저널링프리리스트의 프리 세그먼트의 충분 개수 Nen 보다 큰지 판단하는 단계;
    (b5)큰 경우에는 상기 후반부저장세그먼트를 상기 전반부프리리스트의 테일에 붙이는 단계;
    (b6)상기 후반부 프리리스트에서 상기 후반부저장세그먼트를 제거하는 단계; 및
    (b7)상기 중앙점을 하나 증가시키는 단계를 포함하는 것을 특징으로 하는 이중 저널링을 이용한 데이터 저장 공간 확보 방법.
  6. 삭제
KR1020060110165A 2005-12-08 2006-11-08 이중 저널링을 이용한 데이터 저장 공간 확보 방법 KR100848315B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2006/004746 WO2007066909A1 (en) 2005-12-08 2006-11-13 Method for guarantying data storing space using dual journaling
US11/909,078 US7734863B2 (en) 2005-12-08 2006-11-13 Method for guarantying data storing space using dual journaling

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050119465 2005-12-08
KR1020050119465 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061345A KR20070061345A (ko) 2007-06-13
KR100848315B1 true KR100848315B1 (ko) 2008-07-24

Family

ID=38357270

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060110165A KR100848315B1 (ko) 2005-12-08 2006-11-08 이중 저널링을 이용한 데이터 저장 공간 확보 방법

Country Status (2)

Country Link
US (1) US7734863B2 (ko)
KR (1) KR100848315B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791325B1 (ko) * 2006-10-27 2008-01-03 삼성전자주식회사 비휘발성 메모리를 관리하는 장치 및 방법
KR20100013485A (ko) 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
KR101562794B1 (ko) 2009-08-04 2015-10-26 삼성전자주식회사 데이터 저장 장치
US8539007B2 (en) * 2011-10-17 2013-09-17 International Business Machines Corporation Efficient garbage collection in a compressed journal file
US9063946B1 (en) * 2012-12-14 2015-06-23 Amazon Technologies, Inc. Backoff-based scheduling of storage object deletions
US9483397B2 (en) * 2013-07-16 2016-11-01 Intel Corporation Erase management in memory systems
US9213634B2 (en) * 2013-11-22 2015-12-15 Apple Inc. Efficient reuse of segments in nonoverwrite storage systems
US11940882B2 (en) * 2022-07-25 2024-03-26 Hewlett Packard Enterprise Development Lp Migration of journal groups in a storage system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149483A (ja) 2000-09-21 2002-05-24 Internatl Business Mach Corp <Ibm> リニア・メモリ・アレイ内の両方向スタック
US6715027B2 (en) * 2000-12-27 2004-03-30 Electronics And Telecommunications Research Institute Ranked cleaning policy and error recovery method for file systems using flash memory
WO2004059624A1 (en) * 2002-12-24 2004-07-15 Lg Electronics, Inc. Dual journaling store method and storage medium thereof
WO2004069624A2 (de) 2003-02-08 2004-08-19 Zf Friedrichshafen Ag Antriebsanordnung mit zuschaltbarem retarder
KR20050079991A (ko) * 2005-06-29 2005-08-11 박상원 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)
KR20050083850A (ko) * 2002-10-28 2005-08-26 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US6260103B1 (en) * 1998-01-05 2001-07-10 Intel Corporation Read-while-write memory including fewer verify sense amplifiers than read sense amplifiers
US6104638A (en) 1999-02-26 2000-08-15 Hewlett-Packard Company Use of erasable non-volatile memory for storage of changing information
US6725241B1 (en) * 1999-03-31 2004-04-20 International Business Machines Corporation Method and apparatus for freeing memory in a data processing system
JP2001216765A (ja) * 2000-02-01 2001-08-10 Yamaha Corp オーディオデータ保存方法およびオーディオデータ記録再生装置
KR100654431B1 (ko) 2004-03-08 2006-12-06 삼성전자주식회사 가변 gop 사이즈를 갖는 스케일러블 비디오 코딩방법및 이를 위한 스케일러블 비디오 인코더

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149483A (ja) 2000-09-21 2002-05-24 Internatl Business Mach Corp <Ibm> リニア・メモリ・アレイ内の両方向スタック
US6715027B2 (en) * 2000-12-27 2004-03-30 Electronics And Telecommunications Research Institute Ranked cleaning policy and error recovery method for file systems using flash memory
KR20050083850A (ko) * 2002-10-28 2005-08-26 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
WO2004059624A1 (en) * 2002-12-24 2004-07-15 Lg Electronics, Inc. Dual journaling store method and storage medium thereof
WO2004069624A2 (de) 2003-02-08 2004-08-19 Zf Friedrichshafen Ag Antriebsanordnung mit zuschaltbarem retarder
KR20050079991A (ko) * 2005-06-29 2005-08-11 박상원 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)

Also Published As

Publication number Publication date
US20080168213A1 (en) 2008-07-10
US7734863B2 (en) 2010-06-08
KR20070061345A (ko) 2007-06-13

Similar Documents

Publication Publication Date Title
KR100848315B1 (ko) 이중 저널링을 이용한 데이터 저장 공간 확보 방법
KR100365725B1 (ko) 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법
CN101014929B (zh) 使用nvram进行存储器管理的系统、方法和设备
JP4495172B2 (ja) 電源状態に応じて不揮発性メモリのブロック回収を行う装置およびその方法
KR101465816B1 (ko) 플래시 드라이브 수명 연장
CN102648457B (zh) 使用混合存储来延伸ssd生存期
US8862689B2 (en) Local flash memory and remote server hybrid continuous data protection
AU2003286967B2 (en) Dual journaling store method and storage medium thereof
US20080162786A1 (en) Flash memory wear leveling system and method
JP2011505046A (ja) メモリの寿命を延長するためにメモリ内のスペア領域を増加させること
CN103049349B (zh) 基于分层存储的快照方法及系统
JP2004522230A (ja) フラッシュメモリ内の静的領域の消耗平準化
EP2425345A1 (en) Method and apparatus for implementing a caching policy for non-volatile memory
CN101241471A (zh) 快闪存储器系统及其垃圾收集方法
CN110515550B (zh) 一种sata固态硬盘冷热数据分离的方法及其装置
CN112817544A (zh) 一种数据处理方法、存储系统及存储设备
CN115686385A (zh) 一种数据存储方法、装置、计算机设备及存储介质
CN113467713A (zh) 数据分离方法及固态硬盘
WO2007066909A1 (en) Method for guarantying data storing space using dual journaling
Mylavarapu et al. FSAF: File system aware flash translation layer for NAND flash memories
KR100483490B1 (ko) 저장 매체에 데이터를 저장하기 위한 이중 저널링저장방법
JP2006126919A (ja) フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法
JP2005275722A (ja) 電子機器
CN103038753B (zh) 用基于日志的缓冲向基于nand存储块的文件系统写入的方法
JP2000112836A (ja) 情報処理装置、情報格納方法および記憶媒体

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: 20110711

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee