KR20140038110A - 파일 시스템 관리 방법 및 이를 이용하는 장치 - Google Patents

파일 시스템 관리 방법 및 이를 이용하는 장치 Download PDF

Info

Publication number
KR20140038110A
KR20140038110A KR1020120104410A KR20120104410A KR20140038110A KR 20140038110 A KR20140038110 A KR 20140038110A KR 1020120104410 A KR1020120104410 A KR 1020120104410A KR 20120104410 A KR20120104410 A KR 20120104410A KR 20140038110 A KR20140038110 A KR 20140038110A
Authority
KR
South Korea
Prior art keywords
leb
block
dirty
list
free
Prior art date
Application number
KR1020120104410A
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 KR1020120104410A priority Critical patent/KR20140038110A/ko
Priority to US14/030,455 priority patent/US9286213B2/en
Publication of KR20140038110A publication Critical patent/KR20140038110A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable

Landscapes

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

Abstract

파일 관리 장치 및 파일 시스템 관리 방법이 개시된다. 본 발명의 일 측면에 따른 파일 관리 장치는, 본 발명에 따른 파일 관리 장치는, 물리적 삭제 블록(PEB)에 대응되는 논리적 삭제 블록(LEB)을 이용해 파일을 관리하며, LEB 내의 모든 페이지에 쓰기가 가능한 프리 LEB를 저장하는 프리 LEB 리스트, 상기 프리 LEB가 아닌 더티 LEB를 저장하는 더티 LEB(Logical Erase Block) 리스트, 및 적어도 하나의 블록에 대해 블록의 사용 여부를 표시하는 블록 테이블 및 해당 LEB의 PEB로의 매핑 여부에 따라, 적어도 하나의 더티 LEB에 대한 노후 영역을 판별을 수행하는 노후 영역 판별 모듈을 포함하여 구성될 수 있다.

Description

파일 시스템 관리 방법 및 이를 이용하는 장치{METHOD FOR MANAGING FILE SYSTEM AND APPARATUS USING THE SAME}
본 발명은 파일 시스템 관리 방법 및 이를 이용하는 장치에 관한 것으로, 더욱 상세하게는 임베디드 시스템의 메모리에 데이터를 저장하기 위한, 파일 시스템 관리 방법 및 이를 이용하는 장치에 관한 것이다.
컴퓨터, 스마트폰과 같은 다양한 모바일 기기 등에 폭넓게 사용되고 있는 파일 시스템에 저장되는 내용은 크게 데이터와 메타데이터로 나뉠 수 있다. 파일을 구성하는 실제 내용이 데이터이고, 파일에 대한 부가적인 정보, 이를 테면 파일이름, 접근 권한, 수정한 시각, 파일을 구성하는 데이터 조각(chunk)의 위치 등이 메타데이터에 해당된다.
파일 시스템을 위해 다양한 메모리가 사용될 수 있는데, 이들 중 NAND 플래시 메모리는 저렴한 가격, 낮은 소비전력, 작은 크기, 충격에 강한 특성 등의 장점 때문에 임베디드 시스템에서 저장장치로 널리 쓰인다. NAND 플래시 메모리는 전통적인 저장장치인 디스크와는 그 특성이 매우 다르다.
NAND 플래시 메모리는 여러 개의 삭제 블록(erase block)으로 구성되며, 각 삭제 블록은 여러 개의 페이지(page)로 구성된다. 이를테면 페이지 하나의 크기는 2KB이며, 삭제 block 1개는 64개 페이지로 구성되어 128KB가 되는 식이다.
플래시 메모리에는 읽기/쓰기/삭제 3가지 동작이 가능하다. 읽기/쓰기는 페이지 단위로 이루어지데, 한번 쓰기를 한 페이지에 다시 쓰기 위해서는 먼저 그 페이지가 속한 삭제 블록 전체를 삭제(erase)해야 한다. 이러한 삭제 동작은 읽기/쓰기에 비해 매우 많은 시간이 걸린다. 또한 각 삭제 블록은 삭제 가능한 횟수에 제한이 있어 한계에 달하면 해당 삭제 블록은 사용할 수 없게 된다. 더 이상 쓸 수 없게 된 삭제 블록은 불량(bad) 블록이라 부른다. 이런 불량 블록은 처리하는 것이 힘들뿐만 아니라 불량 블록만큼 사용 가능한 공간이 감소하기 때문에 저장 장치로서의 기능을 상실하게 된다. 따라서 각 삭제 블록(erase block)들이 골고루 닳게 해서 최대한 불량 블록이 늦게 나타나도록 해야 충분한 수명을 확보할 수 있다. 이런 기능을 웨어-레벨링(wear-leveling)이라고 부른다.
플래시 메모리의 경우, 기존에 기록된 어떤 파일의 데이터를 일부 수정하더라도 해당 위치에 다시 쓰기를 시도하는 것은 바람직하지 않다. 삭제 블록 전부를 삭제하고 다시 기록하므로, 시간이 오래 걸려 쓰기 성능이 크게 떨어지기 때문이다. 또한, 하나의 페이지에 대해서만 수정해도 삭제 블록을 모두 다시 쓰기 때문에 결과적으로 삭제를 남발하는 것이 되어 수명에도 악 영향을 미친다. 따라서 플래시 메모리에서는 수정 사항이 있어도 본래 위치가 아닌 다른 위치에 수정 사항을 기록하는 방식이 적합하며, 이를 아웃-오브-플레이스(out-of-place) 업데이트라고 부른다.
반면, 디스크의 경우, 기존 데이터를 수정하려면 해당 위치에 다시 쓰기를 하면 되고, 플래시 메모리에서처럼 지우고 다시 쓰는 과정이 필요 없다. 즉, 디스크는 인-플레이스(in-place) 업데이트가 가능하다.
이처럼 플래시 메모리와 디스크는 그 특성이 다르기 때문에 각 장치의 특성에 맞게 구성된 파일 시스템들을 각각 사용한다. 플래시 메모리를 위한 플래시 파일시스템으로 대표적인 것이 JFFS2(journaling flash file system), YAFFS2(yet another flash file system) 등의 로그-구조 파일 시스템(log-structured File System)이다.
로그-구조 파일 시스템 스타일의 파일 시스템들은 저장 공간을 하나의 로그로 본다. 기록할 데이터가 있으면 로그에 계속 추가 기록하는 것이다. 데이터는 어느 정도 일정한 단위(예를 들면, 페이지 하나 크기)로 기록되는데, 이런 기록 단위를 여기서는 노드라고 부르기로 한다. 기록하려는 데이터가 이미 기록된 데이터에 대한 수정이라 하더라도, 즉 이미 노드가 로그에 존재하더라도 본래 위치에 가서 수정하지 않고 로그에 또 다른 노드를 추가한다. 다시 말해, 아웃-오프-플레이스(out-of-place) 업데이트 방식으로 동작하는 것이다.
로그-구조 파일 시스템은 이렇듯, 아웃-오프-플레이스 방식을 통해 쓰기 성능이 크게 향상되고 플래시 메모리의 수명 연장에도 도움이 된다. 하지만, 예전 데이터가 그대로 남아 저장 공간을 차지하게 된다는 문제점이 발생한다. 이러한 영역은 회수되어야 추후 다른 데이터를 기록할 수 있는데, 이처럼 아웃-오프-플레이스 업데이트를 통해 남겨진 예전 데이터를 가비지(garbage)라고 하며, 이런 가비지로 채워진 노후(obsolete) 영역을 찾아내어 사용 가능한 공간을 확보하는 것을 가비지 수집(garbage collection)이라고 부른다.
한편, 로그 구조 파일시스템에서는 데이터와 메타데이터가 모두 노드 단위로 로그에 기록된다. 즉, 데이터와 마찬가지로 메타데이터도 흩어져 있다. 파일의 데이터에 접근하기 위해서는 그 파일의 메타데이터가 필요한데, 메타데이터가 흩어져 있으므로 어디에 있는지 알 수가 없다. 때문에 메타데이터를 얻으려면 플래시 메모리 전체를 스캔하여 메타데이터를 찾아야 한다. 이것을 매번 할 수는 없으므로 결국 파일 시스템을 마운트하는 시점에 플래시 메모리 전역을 읽어 메모리 상에 메타 데이터 정보를 구성해 놓게 된다. 그에 따라, 장시간의 마운트 시간이 소요되며 모든 메타데이터 정보를 항상 메모리에 저장해야 하기 때문에 메모리 소모가 크다. 또한, 마운트 시간, 메모리 공간 소모는 플래시 메모리 크기에 비례하여 커지므로, 플래시 메모리의 크기가 점점 늘어남에 따라 이러한 확장성 문제도 점점 심각해지고 있다.
디스크 파일시스템의 대표적인 것으로 리눅스에서 오랫동안 사용되어 온 ext2, ext3 등을 들 수 있다. 디스크에서는 앞서 밝힌 바와 같이 인-플레이스(in-place) 업데이트가 가능하기 때문에, 디스크 파일시스템은 그 구조가 플래시 파일시스템의 그것과 크게 다르다. 통상적으로 모든 메타데이터는 저장 공간 앞부분의 특정 위치에 고정되어 있다. 파일에 대한 메타데이터 위치를 알 수 있기 때문에 필요할 때 그 위치에 가서 읽어 들이면 된다. 즉, 메타데이터를 메모리상에 모두 유지할 필요가 없게 되고, 따라서, 디스크 파일 시스템의 경우 마운트 시간도 짧고 메모리 사용량도 적다.
이러한 장점으로 인해 최근의 대용량 플래시 메모리에서 디스크 파일시스템을 사용하는 것을 생각해 볼 수 있겠으나, 디스크 파일 시스템의 경우 플래시 메모리의 특성을 고려하여 설계되지 않아 생기는 문제점 또한 다수 존재한다. 먼저 인-플레이스(in-place) 업데이트를 하기 때문에 쓰기 성능이 크게 떨어진다는 점, 불량 블록을 처리하는 부분이 없다는 점 등을 들 수 있다.
살펴본 바와 같이, 메타 데이터의 위치를 저장공간의 특정 영역에 고정시키는 디스크 파일시스템을 NAND 플래시 메모리에서 그대로 사용할 경우, 마운트 시간이 짧게 걸리고 메모리 소모가 적은 장점이 있는 반면 플래시 메모리가 빨리 마모되고 쓰기 속도가 저하되는 단점이 있다.
상술한 문제점을 극복하기 위한 본 발명의 목적은, 디스크 파일시스템의 데이터 저장 구조는 유지하면서 플래시 메모리에 적합하도록 데이터 쓰기를 처리하는, 파일 관리 장치를 제공하는 데 있다.
본 발명의 다른 목적은, 디스크 파일시스템의 데이터 저장 구조는 유지하면서 플래시 메모리에 적합하도록 데이터 쓰기를 처리하는, 파일 시스템 관리 방법을 제공하는 데 있다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 파일 관리 장치는, 물리적 삭제 블록(PEB)에 대응되는 논리적 삭제 블록(LEB)을 이용해 파일을 관리하며, LEB 내의 모든 페이지에 쓰기가 가능한 프리 LEB를 저장하는 프리 LEB 리스트, 상기 프리 LEB가 아닌 더티 LEB를 저장하는 더티 LEB(Logical Erase Block) 리스트, 및 적어도 하나의 블록에 대해 블록의 사용 여부를 표시하는 블록 테이블 및 해당 LEB의 PEB로의 매핑 여부에 따라, 적어도 하나의 더티 LEB에 대한 노후 영역을 판별을 수행하는 노후 영역 판별 모듈을 포함하여 구성될 수 있다.
상기 파일 관리 장치는, 상기 노후 영역 판별의 결과에 따라, 상기 더티 LEB 리스트에 포함된 적어도 하나의 더티 LEB에 대한 가비지 수집을 수행하는 가비지 수집 모듈을 더 포함할 수 있다.
상기 가비지 수집 모듈은, 상기 더티 LEB 리스트에 포함된 적어도 하나의 더티 LEB에 포함된 블록들을 노후 영역과 유효 영역으로 분류하여, 유효 영역은 다른 프리 LEB로 이동시키고 상기 유효 영역을 제외한 나머지 노후 영역은 내용 삭제 후 상기 프리 LEB 리스트로 이동시킨다.
상기 가비지 수집 모듈은, 상기 프리 LEB 리스트로 이동되는, 기존의 노후 영역을 포함하는 LEB에 대해 대응되어 있던 PEB와의 매핑을 해제하는 것을 특징으로 한다.
상기 파일 관리 장치는, 상기 프리 LEB 리스트에서 사용 가능한 블록들을 순차적으로 제공하고, 더 이상 사용 가능한 공간을 보유하지 않는 LEB는 상기 더티 LEB 리스트로 이동시키는 블록 할당 모듈을 더 포함할 수 있다.
상기 파일 관리 장치는, 제1 블록에 대한 업데이트 쓰기 요청을 수신한 경우, 상기 블록 할당 모듈로부터 상기 제1 블록이 아닌 새로운 제2 블록을 할당받고, 상기 블록 테이블에서 상기 제1 블록에 대해 사용하지 않음을 표시하는, 쓰기 모듈을 더 포함할 수 있다.
상기 노후 영역 판별 모듈은, 더티 LEB를 구성하는 각 블록들의 사용 여부를 상기 블록 테이블에서 확인하여, 해당 블록이 사용 중이 아닌 경우 노후 블록으로, 사용 중인 경우 유효 블록으로 판별하는 것을 특징으로 한다.
상기 블록 테이블은 메타 데이터 저장영역에 저장되는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예에 따르면, 물리적 메모리에 포함된 전체 PEB의 개수는 LEB의 개수와 같거나 더 많도록 구성될 수 있다.
PEB 각각은 해당 PEB의 삭제된 횟수 정보를 포함하는 삭제 카운터를 포함할 수 있으며, 삭제 카운터는 LEB 계층에 의한 웨어-레벨링에 사용될 수 있다.
본 발명의 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 파일 시스템 관리 방법은, 물리적 삭제 블록(PEB)에 대응되는 논리적 삭제 블록(LEB)을 이용해 파일 시스템을 관리하며, 적어도 하나의 블록에 대해 블록의 사용 여부를 표시하는 블록 테이블 및 해당 더티 LEB의 PEB로의 매핑 여부에 따라, 적어도 하나의 더티 LEB에 대해 노후 영역 판별을 수행하는 단계, 및 상기 노후 영역 판별 결과에 따라, 적어도 하나의 더티 LEB에 대한 가비지 수집을 수행하는 단계를 포함하며, 상기 프리 LEB는 LEB 내의 모든 페이지에 쓰기가 가능한 LEB이고, 상기 더티 LEB는 프리 LEB가 아닌 LEB인 것을 특징으로 한다.
상기 적어도 하나의 더티 LEB에 대한 가비지 수집을 수행하는 단계는, 상기 적어도 하나의 더티 LEB을 노후 영역과 유효 영역으로 분류하는 단계 및 유효 영역은 다른 프리 LEB로 이동시키고 상기 유효 영역을 제외한 나머지 노후 영역은 내용 삭제 후 프리 LEB 리스트로 이동시키는 단계를 포함할 수 있다.
상기 파일 시스템 관리 방법은, 상기 프리 LEB 리스트로 이동되는, 기존의 노후 영역을 포함하는 LEB에 대해 대응되어 있던 PEB와의 매핑을 해제하는 단계를 더 포함할 수 있다.
상기 파일 시스템 관리 방법은, 제1 블록에 대한 업데이트 쓰기 요청을 수신한 경우, 상기 제1 블록이 아닌 새로운 제2 블록을 할당하는 단계, 및 상기 블록 테이블에서 상기 제1 블록에 대해 사용하지 않음을 표시하는 단계를 포함할 수 있다.
상기 노후 영역 판별을 수행하는 단계는, 더티 LEB를 구성하는 각 블록들의 사용 여부를 상기 블록 테이블에서 확인하는 단계, 및 해당 블록이 사용 중이 아닌 경우 노후 블록으로, 사용 중인 경우 유효 블록으로 판별하는 단계를 포함할 수 있다.
상술한 바와 같은 본 발명에 따르면, 디스크 파일시스템의 메타데이터 위치가 고정되는 형식을 취하는 저장 구조는 유지하되 쓰기 처리 방식을 수정하여 아웃-오브-플레이스 업데이트가 가능하도록 한다.
또한, 이를 통해, 짧은 마운트 시간, 적은 메모리 소모의 장점은 취하면서 쓰기 속도가 저하되는 단점은 경감시킬 수 있다.
도 1은 본 발명에 따른 파일 시스템의 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리의 파일 시스템의 계층 구성도이다.
도 3은 본 발명의 일 실시예에 따른 파일 시스템의 계층별 상세 구성 및 계층간 연관관계를 나타내는 도면이다.
도 4는 본 발명에 따른 파일 시스템 계층의 상세 블록 구성도이다.
도 5는 본 발명의 일 실시예에 따른 파일 관리 방법에서 가비지 수집 및 관련 동작의 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 업데이트 쓰기 동작의 흐름도이다.
도 7은 본 발명에 따른 가비지 수집 동작의 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명에 따른 파일 시스템의 블록 구성도이다.
본 발명에 따른 파일시스템은, 그 공간이 블록 단위로 관리된다. 즉, 본 발명에 따른 저장 공간은 일정한 크기 단위(예를 들어, 1KB, 2KB, 4KB)의 블록으로 분할될 수 있으며, 따라서 저장 공간은 블록들의 연속이라 할 수 있다. 따라서, 본 명세서에서 사용되는 '블록'이라는 용어는 다양한 크기를 가질 수 있는 저장 공간의 단위라는 의미에서 포괄적으로 사용될 것이다.
도 1에 도시된 바와 같이, 특정 블록 영역이 메타데이터 저장 영역(110)으로 할당되어 고정적으로 사용되고, 메타데이터 블록들(110)과 구분된 별도의 영역이 데이터를 저장하는 데이터 블록들(120)이 설정된다.
본 발명의 바람직한 실시예에 따르면, 하나의 파일에 대응되는 메타데이터가 존재하는데, 본 명세서에서는 편의상 '아이 노드'라고 부르기로 한다. 본 발명에 따른 아이 노드는 파일에 속하는 블록들의 번호를 저장한다.
또한, 메타데이터 저장 영역은 각 블록 별로 사용 중인지 여부를 나타내는 정보를 포함하는데, 본 명세서에서는 편의상 '블록 테이블'이라 칭하기로 한다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리의 파일 시스템의 계층 구성도이다.
본 발명에 따른 파일 시스템은 파일 시스템 계층(210), 논리적 삭제 블록 계층인 LEB 계층(220), 그리고 물리적 삭제 블록 계층인 PEB 계층(230)을 포함하여 구성될 수 있다. 여기서, PEB 계층(230)은 물리적 플래시(flash) 메모리일 수 있다.
도 2에 도시된 바와 같이, 물리적(physical) 삭제 블록들을 논리적 삭제 블록들로 보이게 하는 LEB(Logical Erase Block) 계층을 파일 시스템의 하위 계층으로 사용하는 것이 본 발명의 일 특징이다.
LEB 계층(220)은 물리적 삭제 블록(PEB)을 논리적 삭제 블록(LEB)으로 변환하며, 불량 블록을 숨기고, 각 물리적 삭제 블록의 헤더에 포함된 삭제 카운터(erase counter)를 참조하여 삭제 블록 수준에서의 웨어-레벨링(wear-leveling)을 수행한다.
LEB 계층(220)은 또한, 논리적 삭제 블록 주소 LEB에 플래시 메모리의 물리적 삭제 블록 주소 PEB를 대응시킨다.
도 3은 본 발명의 일 실시예에 따른 파일 시스템의 계층별 상세 구성 및 계층간 연관관계를 나타내는 도면이다.
이미 설명한 바와 같이, 본 발명에서는 파일 시스템 계층(210)과 물리적 플래시(230) 사이에 위치하는 LEB 계층(220)을 가진다.
파일 시스템 계층(210)은 도시된 바와 같이 다수의 블록들로 구성되며, 블록은 다시 다수의 페이지를 포함할 수 있다.
도 3을 살펴보면, 파일 시스템 계층(210)의 블록으로 나뉜 주소 공간이 사용되면 그에 대응되는 논리적 삭제 블록(LEB)은 이를 저장하기 위해 물리적 삭제 블록(PEB)에 매핑된다.
논리적 삭제 블록과 물리적 삭제 블록의 매핑 관계에 어떠한 제한이 있는 것은 아니며, 하나의 논리적 삭제 블록에 어떤 물리적 삭제 블록이든 매핑될 수 있다. 또한, 특정 LEB에 매핑된 PEB가 존재할 수도 있고 존재하지 않을 수도 있다.
한편, 전체 파일 시스템에서 논리적 삭제 블록의 개수는 물리적 삭제 블록의 개수보다 작을 수 있는데, 실제로 도 3을 살펴보면 물리적 삭제 블록은 7개이고 논리적 삭제 블록은 6개이다. 이처럼, 처음에 논리적 삭제 블록의 개수를 물리적 삭제 블록의 개수보다 적게 잡으면, 논리적 삭제 블록과 매핑되지 않고 남는 물리적 삭제 블록을 예비로 남겨두었다가, 불량 블록(PEB)이 발생하면 대응되는 물리적 삭제 블록을 예비 PEB에 재매핑시키는 방식으로 불량 블록(bad PEB)을 숨길 수 있다.
PEB와 관련하여, 각 물리적 삭제 블록(PEB)의 첫 번째 페이지에는 헤더(231)가 저장된다. 헤더(231)는 해당 PEB와 매핑되는 LEB 주소와 삭제 카운터(erase counter)를 포함하는데, 여기서, 삭제 카운터는 해당 PEB의 삭제된 횟수 정보를 포함한다. 매핑되는 LEB 주소는 해당 PEB가 LEB에 매핑되었을 때만 기록하며, 삭제 카운터는 웨어-레벨링에 사용된다. 한편, 하나의 PEB는 다수의 페이지로 구성될 수 있으며, 라지 블록 NAND 플래쉬 메모리의 경우 하나의 페이지는 2KB이고 64개의 페이지가 모여 하나의 PEB를 구성한다.
LEB 계층(220)은 삭제 블록 단위로 웨어-레벨링을 수행하는데, 웨어-레벨링 동작은 여러 방식에 의해 구현될 수 있다.
본 발명의 일 실시예에 따른 웨어-레벨링 방법은, 논리적 삭제 블록에 물리적 삭제 블록를 매핑해야 할 때 삭제 카운터를 보고 덜 마모된 물리적 삭제 블록를 골라 논리적 삭제 블록에 매핑할 수 있다.
본 발명의 다른 실시예에 따른 웨어-레벨링 방법은, 가장 높은 삭제 카운터 값을 기준으로 다른 삭제 카운터와의 차이가 일정 값을 초과하는 경우, 많이 마모된 물리적 삭제 블록의 내용을 덜 마모된 물리적 삭제 블록에 옮기는 방식이다. 이 방식은 구체적으로, 논리적 삭제 블록과 물리적 삭제 블록의 매핑이 일어날 때는 삭제 카운터(Erase Counter)를 신경 쓰지 않고 매핑을 수행하는 대신, PEB간 삭제 카운터의 차이에 한계를 둔다.
예를 들어, 그 한계치가 5라고 가정하면, 현재 모든 PEB의 삭제 카운터 값이 0인 경우 삭제 카운터가 5인 PEB가 출현할 때까지는 그대로 둔다. 이후, 삭제 카운터의 값이 5인 PEB가 출현하면 해당 PEB의 내용을, 각 PEB에 대한 삭제 카운터 값을 담은 테이블을 비교하여 더 낮은 삭제 카운터를 가지는 PEB로 이동시킨다. 즉, 각 PEB간의 삭제 카운터의 차를 항상 5 아래로 유지시킨다.
이 방식의 장점은 매핑될 때마다 삭제 카운터 테이블을 찾아보지 않아도 되므로 다른 방식에 비해 동작 속도가 빠르다는 것이다.
본 발명에 따른 LEB 계층의 바람직한 일 실시예로는, 리눅스 커널에 포함된 UBI(Unsorted Block Image)를 들 수 있다.
도 4는 본 발명에 따른 파일 시스템 계층의 상세 블록 구성도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 파일시스템 계층(210)은 쓰기 모듈(2110), 블록할당 모듈(2120), 가비지수집 모듈(2130), 및 노후 영역 판별 모듈(2140)을 포함할 수 있고, 더티 LEB 리스트(2001) 및 프리 LEB 리스트(2002)를 관리한다.
본 발명에 따른 파일 시스템은 LEB 계층으로부터 LEB 정보를 수신하여 프리 LEB 리스트(2001)와 더티 LEB 리스트(2002)를 구성한다. 프리 LEB는 해당 LEB 내의 모든 페이지가 쓰기가 가능한 LEB를 의미하며, 더티 LEB는 프리 LEB가 아닌 LEB를 의미한다.
LEB가 매핑되어 있으면 파일 시스템에 의해 사용되고 있음을 의미하므로 해당 LEB는 더티이고, 그렇지 않다면 프리이다. 본 발명의 바람직한 일 실시예에 따르면, 프리 LEB 리스트 및 더티 LEB 리스트는 파일 시스템의 마운트 시점에 작성된다.
관련하여, 가비지 수집 모듈이 주기적으로 더티 LEB들에 대해 가비지 수집을 수행하여 확보된 프리 LEB를 리스트에 채워 넣는다. 가비지 수집 모듈에 의해 확보된 프리 LEB는 블록할당 모듈이 쓰기 모듈로부터 블록을 요청 받았을 때 사용된다.
이하에서는 도 4에 도시된 각 모듈의 상세 동작에 대해 좀더 자세히 살펴본다.
블록 할당 모듈
블록 할당 모듈은 프리 LEB 리스트에서 가져와 확보해둔 프리 LEB에서 사용 가능한 블록들(LEB에 대응되는 블록들)을 앞쪽 블록부터 차례대로 제공한다. 블록들을 순서대로 제공하는 것은 플래시 메모리의 순차적 프로그래밍(sequential programming) 제약사항을 만족하기 위함이다. 사용 가능한 공간이 바닥난 LEB는 더티 LEB List로 이동시킨다.
쓰기 모듈
본 발명에서는 인-플레이스(in-place) 업데이트를 하는 디스크 파일 시스템의 쓰기 모듈을 변경하여 아웃-오브-플레이스(out-of-place) 업데이트를 수행하도록 변경한다. 이를 위한 본 발명에 따른 파일 시스템의 쓰기 처리는 아래와 같은 동작을 통해 이루어질 수 있다.
통상적인 디스크 파일시스템에서 업데이트 동작을 수행하는 경우 블록을 할당받지 않지만, 본 발명에 따른 쓰기 방법은 모든 쓰기 요청에 대해 우선, 블록 할당 모듈을 호출하여 새로운 블록을 할당 받는다. 할당 받은 블록은 아이 노드와 연결시킨다.
만약 해당 쓰기 요청이 기존 데이터를 수정하는 업데이트라면 이미 블록이 할당되어 있다는 뜻이다. 이 경우, 할당 받은 새 블록을 사용하므로 기존 블록은 더 이상 사용되지 않는다. 따라서, 앞서 기술한 '블록 테이블'에서 해당되는 기존 블록을 '사용하지 않음'상태로 표시하고, 해당 파일의 메타데이터인 아이 노드에서 해당 블록의 주소를 제거한 후 새로 할당받은 블록의 주소를 대신 기입한다.
이러한 방식을 사용하면 데이터는 아웃-오브-플레이스(out-of-place) 업데이트가 되지만, 메타데이터인 아이 노드가 변경되고 이것을 저장 장치에 반영하게 되면 메타데이터는 위치가 바뀌지 않기 때문에 인-플레이스(in-place) 업데이트가 일어나는 문제점이 발생한다. 하지만, 메타데이터는 바로 바로 저장장치에 기록하지 않고 동기화(sync)를 수행할 때에 반영하는 방식으로 메타데이터 변경으로 인한 인-플레이스(in-place) 업데이트를 최소화 할 수 있다.
또한, 메타데이터 영역은 도 1에서와 같이 고정되어 있는데(특정 LEB들을 할당하여 사용), 이는 LEB 주소 공간 상으로 볼 때만 고정된 것으로, LEB 계층의 웨어-레벨링을 통해 LEB에 매핑된 PEB가 계속 바뀌기 때문에 저장장치의 특정영역만 닳아버리는 것을 염려할 필요는 없다.
본 발명에 따르면 이러한 동작을 통해 아웃-오브-플레이스 업데이트가 가능해진다. 아웃-오브-플레이스 업데이트를 하게 되면 노후 블록이 생겨나게 되므로 이를 찾아 회수하는 가비지 수집을 수행할 필요가 있다. 문제는 어느 블록이 노후(obsolete)되었는지 바로 알 수가 없다는 것인데, 메타데이터 영역에는 '어느 블록이 파일 시스템에서 사용하는지 안 하는지를 표시하는 내용'만 있을 뿐 '노후되었는지 아닌지 여부'를 표시하는 영역이 없기 때문이다.
손쉬운 해결 방법의 하나로 각 블록의 노후 영역 여부를 나타내는'노후 영역 정보'을 메타데이터 영역에 추가하는 방법을 생각해 볼 수 있다. 쓰기 모듈이 아웃-오브-플레이스 업데이트를 할 때 기존 블록이 노후 영역이 되었음을 알 수 있으므로, 그 시점에 '노후 영역 정보'를 갱신하면 된다. 하지만, 이 방법은 '노후 영역 정보'를 저장장치에 유지하기 위해 메타데이터 영역이 늘어나는 오버헤드가 있다. 역시 설명 추가한 부분임.따라서, 제한된 정보를 바탕으로 노후 영역을 판별하는 방법이 필요하다 할 것이다.
가비지 수집 모듈
가비지 수집 모듈(2130)은 더티 LEB 리스트의 LEB들을 노후 영역과 유효(Valid) 영역으로 분류하여, 유효 영역들만 따로 모아 다른 프리 LEB로 복사한다.
관련하여, 도 7은 본 발명에 따른 가비지 수집 동작의 개념을 상세히 설명한다.
도 7을 참고하면, 도 7의 단계 1에서 더티 LEB 리스트의 LEB들을 노후 영역과 유효(Valid) 영역으로 분류한다. 도 7에서 빗금친 부분은 노후 영역이고, b1, b2, b3, b4는 유효한 블록들, 단계 1에서 LEB C를 차지하고 있는 빈 블록들은 프리 블록을 의미한다.
이후 단계 2에서 LEB A 및 LEB B에 있던 유효 영역들만 따로 모아 다른 프리 LEB, 즉 LEB C로 복사한다. 프리 LEB 하나를 사용하여 프리 LEB 2개를 확보하게 되는 셈이다.
유효 영역들을 다 복사하고 나면 기존의 유효 블록들 또한 노후 블록이 되어 해당 더티 LEB에는 노후 블록들만 남게 된다. 가비지 수집 모듈(2130)은, 도 7의 단계 3에서와 같이, 더티 LEB를 삭제하고 프리 LEB 리스트로 보낸다. 이때, 가비지 수집 모듈(2130)은, 기존의 노후 블록들의 PEB에 대한 매핑을 해제시킨다.
노후(Obsolete) 영역 판별 모듈
가비지 수집 모듈(2130)이 가비지 수집을 하려면 어떤 블록들이 노후 블록들을 가려내야 한다. 가비지 수집 모듈(2130)은 LEB를 노후 영역 판별 모듈(2140)로 보내 노후 영역 판별 모듈(2140)로 하여금 해당 LEB가 노후 블록인지 판단해 줄 것을 요청한다.
본 발명에 따른 노후 영역 판별 모듈(2140)이 노후 블록을 판별하는 기준은 아래와 같다.
더티 LEB를 구성하는 각 블록들의 사용 여부를 블록 테이블에서 확인하여, 사용 중이 아니라면 노후 블록이고, 사용 중이라면 유효한 블록으로 판별한다.
이러한 판별이 가능한 이유는, 본 발명의 동작 원칙을 따르는 경우 매핑이 되지 않았다면 프리 LEB이고, 매핑이 되면 더티 LEB인 것이 명백하기 때문이다. 본 발명에 따른 더티 LEB는 파일 시스템에서 해당 LEB의 블록들 중 적어도 하나는 기록하는 데에 사용되었음을 의미한다.
앞서 살펴본 바와 같이, 블록 할당 모듈은 저장공간을 모두 사용해 버린 LEB만 더티 LEB 리스트로 옮긴다. 더티 LEB 리스트로 옮겨지는 시점에는 해당 LEB가 보유한 블록들은 모두 블록 테이블 상에서 사용 중으로 표시되어 있게 된다. 그럼에도 노후 영역 판별 모듈이 확인하는 시점에 더티 LEB의 블록들 중에 블록 테이블 상에서 사용 중이 아닌 블록이 발견된다면 해당 블록은 한 번 사용됐다가 업데이트가 발생해서 버려진 노후된 블록이라는 것을 의미하게 된다.
도 5는 본 발명의 일 실시예에 따른 파일 시스템 관리 방법에서 가비지 수집 및 관련 동작의 흐름도를 나타낸다.
우선, 본 발명의 일 실시예에 따른 파일 시스템 관리 방법은, 적어도 하나의 PEB에 적어도 하나의 LEB를 매핑한다(S510). 이 절차는 셋업 시점에 일률적으로 이루어질 수도 있고, 셋업 시점에는 최소한의 매핑만 해두고 이후 필요시마다 매핑을 수행하는 형태로 이루어질 수도 있다.
가비지 수집을 위해 본 발명에서는 우선, 노후 블록 판별 절차를 거친다.
즉, 더티 LEB를 구성하는 각 블록들의 사용 여부를 블록 테이블에서 확인하고(S520), 해당 블록이 사용 중인지 판단한다(S530). 판단 결과, 해당 블록이 사용 중인 경우는 유효(valid) 블록으로 판별하고(S531), 사용 중이 아니라면 노후 블록으로 판별한다(S532).
이후, 적어도 하나의 더티 LEB에 포함된 블록들을 노후 영역과 유효 영역으로 분류한다(S540). 유효 영역은 다른 프리 LEB로 이동시키고 유효 영역을 제외한 나머지 노후 영역은 내용 삭제 후 프리 LEB 리스트로 이동시킨다(S550).
또한, 프리 LEB 리스트로 이동되는 기존의 노후 영역을 포함하는 LEB에 대해 대응되어 있던 PEB와의 매핑을 해제시킨다(S560).
이상으로, 본 발명에 따른 파일 시스템 관리 방법 중 가비지 수집과 관련된 동작들을 살펴보았으며, 아래 도 6을 통해 업데이트 쓰기 동작에 대해 자세히 살펴본다.
도 6은 본 발명의 일 실시예에 따른 업데이트 쓰기 동작의 흐름도이다.
본 발명에 따른 파일 시스템 관리 방법에 따르면, 임의의 제1 블록에 대한 업데이트 쓰기 요청을 수신하면(S610), 제1 블록이 아닌 새로운 제2 블록을 할당 한다(S620). 이는 이미 설명한 바와 같이, 아웃-오프-플레이스 업데이트를 가능케 하기 위함이다.
이후, 쓰기 요청에 따라 제2 블록에 대해 쓰기 동작을 수행한다(S630). 그리고, 더 이상 사용되지 않는 제1 블록에 대해서는, 메타 데이터에 저장된 블록 테이블에서 제1 블록이 사용되지 않음을 표시해 준다(S640). 또한, 쓰기 동작과 관련된 해당 파일의 아이 노드에서 제1 블록의 주소를 제거하고 제2 블록의 주소를 기입한다(S650).
이상 상술한 바와 같은 본 발명의 구성을 따르면 메타데이터가 저장공간의 특정 위치에 고정되어 저장되어 있어 마운트 시간이 적게 걸리고 메모리 공간 사용이 적은 데이터 저장 구조를 사용하면서도 플래시 메모리에서 아웃-오브-플레이스 방식으로 데이터를 기록하는 것이 가능하다.
이를 통해 기존 디스크 파일시스템 대비 쓰기 성능 저하는 줄이면서 마운트 시간과 메모리 공간 사용 측면에서의 이점을 그대로 살려서 플래시 메모리에서의 사용이 가능하다는 장점이 있다. 또한, 본 발명에 따른 파일 시스템의 구성은 그 구현이 어렵지 않다는 이점도 있다.
뿐만 아니라, 본 발명의 동작을 위해 필요한 LEB 계층은 이미 리눅스 커널에 UBI가 해당 기능을 구현되어 있어 손쉽게 활용할 수 있다. 또한, 파일시스템 계층은 완전히 새롭게 구현하지 않고도 ext2와 같은 기존의 디스크 파일 시스템에 본 발명의 동작 부분을 추가하여 수정하는 것이 가능하다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110: 메타데이터 블록들, 120: 데이터 블록들
210: 파일 시스템 계층 220: 물리적 삭제 블록(LEB) 계층
230: 물리적 플래시
2001: 더티 LEB 리스트 2002: 프리 LEB 리스트
2110: 쓰기 모듈 2120: 블록 할당 모듈
2130: 가비지 수집 모듈 2140: 노후영역 판별 모듈

Claims (16)

  1. 물리적 삭제 블록(PEB)에 대응되는 논리적 삭제 블록(LEB)을 이용해 파일을 관리하는 장치에 있어서,
    LEB 내의 모든 페이지에 쓰기가 가능한 프리 LEB를 저장하는 프리 LEB 리스트;
    상기 프리 LEB가 아닌 더티 LEB를 저장하는 더티 LEB(Logical Erase Block) 리스트; 및
    적어도 하나의 블록에 대해 블록의 사용 여부를 표시하는 블록 테이블 및 해당 LEB의 PEB로의 매핑 여부에 따라, 적어도 하나의 더티 LEB에 대한 노후 영역을 판별을 수행하는 노후 영역 판별 모듈을 포함하는, 파일 관리 장치.
  2. 청구항 1에 있어서,
    상기 노후 영역 판별의 결과에 따라, 상기 더티 LEB 리스트에 포함된 적어도 하나의 더티 LEB에 대한 가비지 수집을 수행하는 가비지 수집 모듈을 더 포함하는 파일 관리 장치.
  3. 청구항 2에 있어서,
    상기 가비지 수집 모듈은,
    상기 더티 LEB 리스트에 포함된 적어도 하나의 더티 LEB에 포함된 블록들을 노후 영역과 유효 영역으로 분류하여, 유효 영역은 다른 프리 LEB로 이동시키고 상기 유효 영역을 제외한 나머지 노후 영역은 내용 삭제 후 상기 프리 LEB 리스트로 이동시키는, 파일 관리 장치.
  4. 청구항 3에 있어서,
    상기 가비지 수집 모듈은,
    상기 프리 LEB 리스트로 이동되는, 기존의 노후 영역을 포함하는 LEB에 대해 대응되어 있던 PEB와의 매핑을 해제하는 것을 특징으로 하는, 파일 관리 장치.
  5. 청구항 1에 있어서,
    상기 프리 LEB 리스트에서 사용 가능한 블록들을 순차적으로 제공하고, 더 이상 사용 가능한 공간을 보유하지 않는 LEB는 상기 더티 LEB 리스트로 이동시키는 블록 할당 모듈을 더 포함하는 파일 관리 장치.
  6. 청구항 5에 있어서,
    제1 블록에 대한 업데이트 쓰기 요청을 수신한 경우, 상기 블록 할당 모듈로부터 상기 제1 블록이 아닌 새로운 제2 블록을 할당받고, 상기 블록 테이블에서 상기 제1 블록에 대해 사용하지 않음을 표시하는, 쓰기 모듈을 더 포함하는, 파일 관리 장치.
  7. 청구항 1에 있어서,
    상기 노후 영역 판별 모듈은,
    더티 LEB를 구성하는 각 블록들의 사용 여부를 상기 블록 테이블에서 확인하여, 해당 블록이 사용 중이 아닌 경우 노후 블록으로, 사용 중인 경우 유효 블록으로 판별하는 것을 특징으로 하는, 파일 관리 장치.
  8. 청구항 1에 있어서,
    상기 블록 테이블은 메타 데이터 저장영역에 저장되는 것을 특징으로 하는, 파일 관리 장치.
  9. 청구항 1에 있어서,
    물리적 메모리에 포함된 전체 PEB의 개수는 LEB의 개수와 같거나 더 많은 것을 특징으로 하는, 파일 관리 장치.
  10. 청구항 1에 있어서,
    상기 PEB 각각은 해당 PEB의 삭제된 횟수 정보를 포함하는 삭제 카운터를 포함하는, 파일 관리 장치.
  11. 청구항 10에 있어서,
    상기 삭제 카운터는 LEB 계층에 의한 웨어-레벨링에 사용되는 것을 특징으로 하는, 파일 관리 장치.
  12. 물리적 삭제 블록(PEB)에 대응되는 논리적 삭제 블록(LEB)을 이용해 파일 시스템을 관리하는 방법에 있어서,
    적어도 하나의 블록에 대해 블록의 사용 여부를 표시하는 블록 테이블 및 해당 더티 LEB의 PEB로의 매핑 여부에 따라, 적어도 하나의 더티 LEB에 대해 노후 영역 판별을 수행하는 단계; 및
    상기 노후 영역 판별 결과에 따라, 적어도 하나의 더티 LEB에 대한 가비지 수집을 수행하는 단계를 포함하고,
    상기 프리 LEB는 LEB 내의 모든 페이지에 쓰기가 가능한 LEB이고, 상기 더티 LEB는 프리 LEB가 아닌 LEB인 것을 특징으로 하는, 파일 시스템 관리 방법.
  13. 청구항 12에 있어서,
    상기 적어도 하나의 더티 LEB에 대한 가비지 수집을 수행하는 단계는,
    상기 적어도 하나의 더티 LEB을 노후 영역과 유효 영역으로 분류하는 단계; 및
    유효 영역은 다른 프리 LEB로 이동시키고 상기 유효 영역을 제외한 나머지 노후 영역은 내용 삭제 후 프리 LEB 리스트로 이동시키는 단계를 포함하는, 파일 시스템 관리 방법.
  14. 청구항 13에 있어서,
    상기 프리 LEB 리스트로 이동되는, 기존의 노후 영역을 포함하는 LEB에 대해 대응되어 있던 PEB와의 매핑을 해제하는 단계를 더 포함하는, 파일 시스템 관리 방법.
  15. 청구항 12에 있어서,
    제1 블록에 대한 업데이트 쓰기 요청을 수신한 경우,
    상기 제1 블록이 아닌 새로운 제2 블록을 할당하는 단계; 및
    상기 블록 테이블에서 상기 제1 블록에 대해 사용하지 않음을 표시하는 단계를 포함하는, 파일 시스템 관리 방법.
  16. 청구항 12에 있어서,
    상기 노후 영역 판별을 수행하는 단계는,
    더티 LEB를 구성하는 각 블록들의 사용 여부를 상기 블록 테이블에서 확인하는 단계; 및
    해당 블록이 사용 중이 아닌 경우 노후 블록으로, 사용 중인 경우 유효 블록으로 판별하는 단계를 포함하는, 파일 시스템 관리 방법.
KR1020120104410A 2012-09-20 2012-09-20 파일 시스템 관리 방법 및 이를 이용하는 장치 KR20140038110A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120104410A KR20140038110A (ko) 2012-09-20 2012-09-20 파일 시스템 관리 방법 및 이를 이용하는 장치
US14/030,455 US9286213B2 (en) 2012-09-20 2013-09-18 Method and apparatus for managing file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120104410A KR20140038110A (ko) 2012-09-20 2012-09-20 파일 시스템 관리 방법 및 이를 이용하는 장치

Publications (1)

Publication Number Publication Date
KR20140038110A true KR20140038110A (ko) 2014-03-28

Family

ID=50275576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120104410A KR20140038110A (ko) 2012-09-20 2012-09-20 파일 시스템 관리 방법 및 이를 이용하는 장치

Country Status (2)

Country Link
US (1) US9286213B2 (ko)
KR (1) KR20140038110A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598386B (zh) * 2013-10-31 2018-03-27 Lsi公司 通过追踪和利用二级映射索引重复利用固态驱动器块
CN104156432A (zh) * 2014-08-08 2014-11-19 四川九成信息技术有限公司 一种文件访问方法
CN105426313A (zh) * 2014-09-12 2016-03-23 株洲南车时代电气股份有限公司 司法记录器数据存储结构、管理***及管理方法
KR102275710B1 (ko) 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US11809727B1 (en) * 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US10459839B1 (en) 2018-05-02 2019-10-29 International Business Machines Corporation Accelerating garbage collection of flushed logical erase blocks in non-volatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100453053B1 (ko) 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
WO2010134300A1 (ja) * 2009-05-21 2010-11-25 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US8447915B2 (en) * 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
KR20120072228A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 플래시 메모리의 파일 시스템

Also Published As

Publication number Publication date
US9286213B2 (en) 2016-03-15
US20140082031A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US8898371B2 (en) Accessing logical-to-physical address translation data for solid state disks
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
CN108038026B (zh) 一种基于闪存的数据快速恢复方法与***
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
US8607016B2 (en) FAT analysis for optimized sequential cluster management
CN108604165B (zh) 存储装置
KR20130075018A (ko) 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US20150186259A1 (en) Method and apparatus for storing data in non-volatile memory
KR20140038110A (ko) 파일 시스템 관리 방법 및 이를 이용하는 장치
CN107817945B (zh) 一种混合内存结构的数据读取方法和***
KR20120072228A (ko) 플래시 메모리의 파일 시스템
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
EP4372540A1 (en) Techniques for zoned namespace (zns) storage using multiple zones
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
KR20100099888A (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
JP6805501B2 (ja) ストレージ装置
KR101791855B1 (ko) 스토리지 장치 및 이의 공간 재수거 방법
KR101114398B1 (ko) 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법
KR20110021417A (ko) 플래시 메모리 시스템 및 그것의 내용기반 블록 관리 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid