KR20130075018A - 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 - Google Patents

플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 Download PDF

Info

Publication number
KR20130075018A
KR20130075018A KR1020110143195A KR20110143195A KR20130075018A KR 20130075018 A KR20130075018 A KR 20130075018A KR 1020110143195 A KR1020110143195 A KR 1020110143195A KR 20110143195 A KR20110143195 A KR 20110143195A KR 20130075018 A KR20130075018 A KR 20130075018A
Authority
KR
South Korea
Prior art keywords
block
data
update
idle
address
Prior art date
Application number
KR1020110143195A
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 KR1020110143195A priority Critical patent/KR20130075018A/ko
Priority to US13/726,880 priority patent/US20130166828A1/en
Publication of KR20130075018A publication Critical patent/KR20130075018A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 플래시 메모리의 파일 시스템에 데이터를 저장하기 위한 것으로, 파일시스템이 데이터에 대한 업데이트를 처리함에 있어서 플래시 메모리의 동작 속도 및 내구성을 향상시킬 수 있도록 하는 데이터 업데이트 장치 및 방법에 관한 발명으로, 입출력 요청 신호가 수신되면, 상기 입출력 요청 신호가 업데이트 신호에 해당하는지 여부를 판단하는 업데이트 식별부, 데이터 영역과 구분되는 별도의 메타 데이터 영역에, 임의의 파일에 속하는 블록들에 대한 매핑(mapping)정보를 저장하는 데이터 저장부, 상기 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록에 해당하는 유휴 블록의 주소에 대한 정보를 포함하는 블록 할당부, 상기 신호가 업데이트 신호인 경우, 상기 업데이트 신호에 대응되는 업데이트 파일을 기록하기 위한 유휴 블록 주소를 상기 블록 할당부를 통하여 획득하고, 상기 획득된 주소에 대응되는 유휴 블록에 상기 업데이트 파일을 기록하고, 상기 데이터 저장부의 매핑 정보에 포함된 정보 중, 상기 업데이트 파일이 매핑된 기존의 블록 주소를 상기 업데이트 파일이 기록된 유휴 블록의 주소로 갱신하는 데이터 업데이트부를 포함하는 것을 특징으로 한다.

Description

플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법{DATA UPDATE APPARATUS FOR FLASH MEMORY FILE SYSTEM AND METHOD THEREOF}
본 발명은 데이터의 저장장치로 사용되는 플래시 메모리의 파일 시스템에 데이터를 저장하기 위한 것으로, 파일시스템이 데이터에 대한 업데이트를 처리함에 있어서 플래시 메모리의 동작 속도 및 내구성을 향상시킬 수 있도록 하는 데이터 업데이트 장치 및 방법에 관한 발명이다.
플래시 메모리는 가격이 저렴하고 소비전력이 적으며 크기가 작기 때문에 다양한 임베디드 시스템에서 저장장치로 널리 사용되고 있다.
특히, 널리 사용되는 플래시 메모리의 종류 중 하나인 NAND 플래시 메모리는 여러 개의 삭제 단위 블록(erase block)으로 구성되며, 각 삭제 단위 블록은 여러 개의 페이지(page)로 구성된다. 또한, 최근 그 사용이 증가하는 라지 블록(Large Block) NAND 플래시 메모리의 경우, 페이지 하나의 크기는 2KB이며 64개의 페이지가 모여 1개의 삭제 단위 블록을 구성한다.
플래시 메모리에는 읽기(Read), 쓰기(Write), 삭제(Program) 3가지 동작 수행이 가능하다. 읽기/쓰기는 페이지 단위로 이루어지는데 쓰기를 프로그램(program)이라고 한다. 한번 프로그램 된 페이지를 다시 프로그램하기 위해서는 먼저 그 페이지가 속한 삭제 단위 블록 전체를 삭제(erase)해야 하는데, 상기 삭제 동작은 읽기/쓰기에 비해 매우 많은 시간이 걸린다. 또한 각 삭제 단위 블록은 삭제 가능한 횟수에 제한이 있어 삭제 횟수가 한계에 도달하면 해당 삭제 단위 블록은 사용할 수 없게 된다. 더 이상 쓸 수 없게 된 삭제 단위 블록은 배드 블록(bad block)에 해당한다. 따라서 각 삭제 단위 블록들이 골고루 이용되도록 하는 웨어 레벨링(wear-leveling)이 이루어져야 플래시 메모리의 충분한 수명을 확보할 수 있다.
즉, 플래시 메모리는 한번 데이터가 기록된 영역에 다시 기록하려면 처리 시간이 오래 소모된다는 문제, 플래시 메모리의 블록은 사용될수록 점점 마모되어 한계에 다다르면 쓸 수 없게 되는 문제점이 존재하였고, 따라서, 플래시 메모리의 상위의 계층에 해당하는 파일 시스템에서 특정 동작을 수행하여 데이터를 처리함으로써 상기 문제점을 해결하는 방식이 제시되었다.
즉, 플래시 메모리 자체가 바로 저장장치로 사용되는 방식과, 하드웨어로 FTL(Flash Translation Layer)을 구현하여 플래시 메모리와 결합한 FTL 장치(eMMC, SD 카드 등)로서 사용되는 경우에 따라 각기 다른 방식이 제시되었다.
즉, 플래시 메모리 자체가 바로 저장장치로 사용되는 경우에는, 로그 구조 파일 시스템(log-structured File System)이 많이 사용된다. 즉, 예를 들어 JFFS2(journaling flash file system), YAFFS2(yet another flash file system)이사용될 수 있다. 로그 구조 파일 시스템 스타일의 파일 시스템들은 저장 공간을 하나의 로그로 보고 데이터를 쓸 때 앞부분부터 차례로 기록한다. 또한, 데이터를 기록함과 함께 메타데이터가 저장되고, 상기 메타 데이터 기반으로 매핑 테이블(mapping table)을 주 메모리 상에 구성하여 관리하게 된다. 다만, 파일 시스템의 마운트(mount) 시, 플래시 메모리 전역을 읽어 메타 데이터를 찾아 메모리 상에 매핑 테이블을 구성해야 하므로, 처리 시간이 길게 소요되며 매핑 테이블을 유지하기 위해 주 메모리를 많이 소비되는 문제점이 있다.
또한, 상기 FTL 장치의 경우에는, 장치에 탑재된 소프트웨어(FTL 계층)가 앞서 서술한 플래시 메모리의 시간 지연 및 마모의 문제를 상위의 운영체제에서 방지할 수 있도록 한다. 따라서, 기존의 디스크용 파일시스템을 사용할 수 있다. 예를 들어, 리눅스(linux)에서 널리 쓰이는 ext2 파일 시스템이 사용될 수 있다.
또한, 기존의 디스크용 파일시스템들은 대체로 저장 공간의 앞부분에 메타데이터가 저장되고 나머지 공간을 데이터를 저장하는 형태를 취한다. 이런 체계는 마운트를 수행하는 경우, 앞부분의 메타 데이터 영역만 읽어 들이면 되기 때문에 마운트 시간이 짧고, 자료구조도 단순하여 많은 주 메모리를 사용하지 않게 된다.
다만, 데이터 업데이트가 발생하는 경우, 기존의 위치에 데이터 업데이트를 수행하는 인플레이스 업데이트(in-place update)가 수행되므로, 플래시 메모리에 불리하다. 또한, 인플레이스 업데이트가 발생하면, 플래시 메모리의 해당 삭제 단위 블록를 삭제(erase)하고 다시 그 위치에다 변경된 내용을 기록하여야 하거나, FTL 계층을 통한 매핑 변환이 빈번하게 발생하여 장치의 수명과 성능에 영향을 주게 되는 문제점이 있다.
이에 따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 플래시 메모리의 디스크용 파일시스템의 업데이트를 처리하는 방식을 수정하여 데이터 업데이트가 발생하는 경우에도 플래시 메모리가 마모 되거나 쓰기 속도가 저하되는 것을 방지할 수 있는 플래시 메모리 파일 시스템의 데이터 업데이트 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 목적을 달성하기 위하여, 본 발명의 실시 예에 따른 데이터 업데이트 장치는, 입출력 요청 신호가 수신되면, 상기 입출력 요청 신호가 업데이트 신호에 해당하는지 여부를 판단하는 업데이트 식별부, 데이터 영역과 구분되는 별도의 메타 데이터 영역에, 임의의 파일에 속하는 블록들에 대한 매핑(mapping)정보를 저장하는 데이터 저장부, 상기 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록인 유휴 블록의 주소를 저장하는 블록 할당부 및 상기 입출력 요청 신호가 업데이트 신호인 경우, 상기 업데이트 신호에 대응되는 업데이트 파일을 기록하기 위한 상기 유휴 블록의 주소를 상기 블록 할당부를 통하여 획득하고, 상기 획득된 주소에 대응되는 상기 유휴 블록에 상기 업데이트 파일을 기록하고, 상기 데이터 저장부의 매핑 정보에 포함된 정보 중, 상기 업데이트 파일이 매핑된 기존의 블록 주소를 상기 업데이트 파일이 기록된 유휴 블록의 주소로 갱신하는 데이터 업데이트부를 포함한다.
또한, 본 발명의 다른 실시 예에 따른 데이터 업데이트 방법은, 입출력 요청 신호가 수신되면, 업데이트 식별부가 상기 입출력 요청 신호가 업데이트 신호에 해당하는지 여부를 판단하고, 상기 입출력 요청 신호가 업데이트 신호인 경우, 데이터 업데이트부가 업데이트 요청을 수신하는 단계, 상기 데이터 업데이트부가, 블록할당부에 유휴 블록의 주소 정보를 요청하는 단계, 데이터 영역과 구분되는 별도의 메타 데이터 영역에, 임의의 파일에 속하는 블록들에 대한 매핑(mapping)정보를 저장하는 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록에 해당하는 유휴 블록의 주소를 상기 블록할당부로부터 획득하는 단계 및 상기 획득된 유휴 블록 주소에 대응되는 유휴 블록에 상기 업데이트 신호에 대응되는 업데이트 파일을 기록하고, 상기 데이터 저장부의 매핑 정보에 포함된 정보 중, 상기 업데이트 파일이 매핑된 기존의 블록 주소를 상기 업데이트 파일이 기록된 유휴 블록의 주소로 갱신하는 단계를 포함한다.
본 발명에 따른 데이터 업데이트 방법을 이용하면, 디스크용 파일시스템을 플래시 메모리에 적용할 때 빠른 속도로 플래시 메모리가 닳아버리는 문제를 크게 경감시킬 수 있다. 따라서, 플래시 메모리에서의 디스크용 파일시스템의 활용 가능성을 향상시킬 수 있고, 짧은 마운트 시간, 적은 메모리 소모 등의 효과를 얻을 수 있다.
도 1은 본 발명의 실시 예에 따른 파일 시스템의 데이터 구조를 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 데이터 업데이트 장치의 구성을 도시한 도면이다.
도 3은 본 발명의 다른 실시 예에 따른 데이터 업데이트 장치의 구성을 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 저장 계층을 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 블록 매칭을 도시한 도면이다.
도 6은 본 발명의 실시 예에 따른 유휴 블록 확보를 도시한 도면이다.
도 7은 본 발명의 실시 예에 따른 데이터 업데이트 방법을 도시한 순서도이다.
도 8은 도 7의 업데이트 요청 신호를 수신하는 단계를 상세히 도시한 도면이다.
도 9는 도 7의 유휴 블록 주소 획득 단계를 상세히 도시한 도면이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 여러 가지 실시 예들을 보다 상세히 설명하도록 하겠다. 나아가, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "부", “모듈” 및 "장치"는 단순히 본 명세서 작성의 용이함을 고려하여 부여되는 것으로서, 상기 "부", “모듈” 및 "장치"는 서로 혼용되어 사용될 수 있으며, 하드웨어 또는 소프트웨어로 설계 가능하다.
나아가, 이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시 예를 상세하게 설명하지만, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다.
도 1은 본 발명의 실시 예에 따른 파일 시스템의 데이터 구조를 도시한 도면이다.
실시 예에 따라, 파일 시스템의 데이터 구조(100)는, 도 1에 도시된 바와 같은 ext2 형태의 구조를 포함할 수 있다.
즉, 본 발명의 실시 예에 따른 파일시스템은 저장 공간을, 1KB, 2KB, 및 4KB 등의 일정한 크기로 나누어 관리하고, 상기 일정한 크기로 나누어 관리되는 단위를 블록(block)이라 한다. 즉, 저장공간을 연속적인 블록들의 집합으로 본다.
또한, 메타데이터(metadata, 101) 영역은 저장장치의 특정 주소(Address) 영역에 고정되어 저장될 수 있고, 상기 메타데이터 영역에는 기타 메타데이터 블록(104)과 구분되는 아이노드(inode) 리스트(103)가 별도로 포함될 수 있다.
상기 기타 메타데이터 블록(104)은 유휴 블록 리스트 및 유휴 아이노드 리스트를 포함할 수 있다.
즉, 본 발명의 실시 예에 따른 데이터 저장부는, 임의의 파일에 속하는 데이터 블록의 주소를 포함하는 아이노드 정보를 메타데이터 영역에 포함할 수 있다.
아이노드는 하나의 파일에 각각 대응된다. 또한, 아이노드는, 해당 파일에 속하는 데이터 블록들에 대한 위치, 즉 주소 정보를 포함할 수 있다. 따라서, I/O 요청(읽기 또는 쓰기 요청)신호가 입력되면, 데이터 블록 중, 몇 번째 데이터 블록에 대한 신호인지 판단하고, 판단된 데이터 블록에 대한 저장장치 상의 주소를 아이노드를 통해 획득할 수 있다.
따라서, 종래 기술의 데이터 업데이트 방법에 따르면, 기존의 파일 내용에 대한 쓰기 요청 신호가 입력되면, 기존 위치에 쓰기를 수행하게 된다. 즉, 인플레이스 업데이트(in-place update)가 발생하게 되어 플래시 메모리의 마모를 촉진시키고 처리 속도를 저하시키게 된다.
따라서, 본 발명의 실시 예에 따른 데이터 업데이트 장치는, 인플레이스 업데이트가 발생하지 않도록, 업데이트 발생 시 파일의 블록이 저장될 주소를 변경함으로써, 즉, 아웃오브플레이스(out-of-place) 업데이트 방식을 이용할 수 있도록 한다. 본 발명의 실시 예에 따른 데이터 업데이트 장치 및 방법은, 이하 도면에서 상세히 설명한다.
도 2는 본 발명의 실시 예에 따른 데이터 업데이트 장치의 구성을 도시한 도면이다.
실시 예에 따라, 데이터 업데이트 장치(200)는, 입력 인터페이스(201), 업데이트 식별부(202), 데이터 업데이트부(203), 블록 할당부(204), 데이터 로드부(205), 데이터 저장부(206)을 포함할 수 있다.
입력 인터페이스(201)는, 사용자 또는 다른 장치로부터 전송되는 I/O 요청 신호를 수신할 수 있다. 또한, 상기 요청 신호가 수신되면, 수신된 신호를 업데이트 식별부로 전송할 수 있다.
업데이트 식별부(202)는, 파일시스템에 들어오는 I/O 요청 신호에 대해서 업데이트 요청 신호에 해당하는지 여부를 식별하기 위한 동작을 수행할 수 있다. 즉, I/O 요청 신호가 읽기 요청 신호가 아니라 쓰기 요청 신호에 해당하고, 쓰기를 요청한 위치의 블록이 이미 소정의 파일에 할당되어 사용 중이라면 업데이트 요청 신호라고 식별할 수 있다. 따라서, 업데이트 요청 신호로 식별되면, 데이터 업데이트부를 호출할 수 있다. 반면에, 상기 I/O 요청 신호가 읽기 요청 신호에 해당하면, 데이터 로드부(205)를 호출하여, 데이터 읽기 동작을 수행할 수 있도록 한다.
데이터 업데이트부(203)는, 데이터를 기록하기 위한 유휴 블록들의 요청신호를, 블록할당부(204)에 전송한다. 상기 유휴 블록은, 현재 파일이 할당되어 있지 않아, 사용 중이 아닌 블록을 포함할 수 있다. 즉, 블록할당부는, 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록에 해당하는 유휴 블록의 주소에 대한 정보를 포함할 수 있다. 또한, 블록할당부(204)는, 데이터 저장부(206)에 포함된 블록들 중 데이터가 기록될 블록을 할당할 수 있다.
따라서, 데이터 업데이트부(203)는 데이터를 기록할 블록들의 주소를 획득할 수 있다. 즉, 업데이트 신호가 수신되면, 상기 업데이트 신호에 대응되는 업데이트 데이터를 기록하기 위한 유휴 블록 주소를 상기 블록 할당부를 통하여 획득하고, 상기 획득된 주소에 대응되는 유휴 블록에 상기 업데이트 데이터를 기록하고, 상기 데이터 저장부의 아이노드 정보에 포함된 데이터 블록의 주소 중, 예전 데이터에 속하는 데이터 블록의 주소를 상기 업데이트 데이터가 기록된 유휴 블록의 주소로 변경할 수 있다.
즉, 요청된 데이터는 새 블록들에 기록하고, 새 블록들의 주소를 아이노드에 기입한다. 또한, 주소 부분을 예전 블록들 주소를 버리고 새로 받은 블록의 주소로 변경할 수 있고, 예전 블록들은 사용하지 않으므로 해제할 수 있다. 즉, 상기 도 1의 기타 메타데이터 블록에 포함되는 유휴 블록 리스트에 추가할 수 있다.
도 3은 본 발명의 다른 실시 예에 따른 데이터 업데이트 장치의 구성을 도시한 도면이다.
실시 예에 따라, FTL 장치가 아닌, 플래시 메모리 자체가 바로 저장장치로 사용되는 방식을 이용하는 플래시 메모리에서, 본 발명의 실시 예에 따른 데이터 저장 방법을 이용하기 위한 데이터 저장 장치는, 상기 도 2에 도시된 구성에서, 유휴 LEB 리스트(Free LEB List, 301), 사용 중 LEB 리스트(Dirty LEB List, 302), 및 유휴 LEB 확보부(Garbage Collection Module, 303)를 더 포함할 수 있다.
즉, 플래시 메모리 자체가 바로 저장장치로 사용되는 방식은, 하드웨어로 구현된 FTL(Flash Translation Layer)가 존재하지 않으므로, LEB(Logic Erase Block) 계층 및 PEB(Physical Erase Block) 계층을 통하여 본 발명에 따른 데이터 업데이트가 수행되도록 할 수 있다. 상기 계층에 대하여는 이하 도 4 내지 도 5에서 상세히 설명한다.
또한, 상기 LEB는 논리 삭제 단위 블록을 의미하고, 상기 PEB는 물리 삭제 단위 블록을 의미한다.
유휴 LEB 리스트(301)는 LEB 내에 사용중인 블록이 없는 LEB들의 리스트이다. LEB는 연속적인 블록의 집합으로, 이를테면 64개의 블록으로 이루어질 수 있다. LEB가 몇 개의 블록으로 이루어져야 하는지는 삭제 단위 블록(erase block) 크기에 따라 달라질 수 있다.
블록 할당부(305)은, 도 2에 도시된 블록할당부와 다른 동작을 수행할 수 있다. 즉, 블록 할당부(305)는 호출 신호가 수신되면 유휴 블록들을 제공한다. 이를 위해 항상 LEB 하나를 확보하고 있을 수 있다. 상기 LEB는 유휴 LEB 리스트(301)에서 가져오고, 유휴 LEB 리스트(301)에서 상기 LEB를 제거할 수 있다. 또한, 호출될 때마다 미리 준비된 LEB에서 제일 앞에 있는 블록부터 차례대로 제공할 수 있다. 제공한 블록은 유휴 블록 리스트에서 제거한다. LEB 내에 사용 가능한 블록이 다 바닥나면 해당 LEB는 사용 중 LEB 리스트(302)에 추가한다. 또한 유휴 LEB 리스트(301)에서 LEB를 하나 가져온다.
또한, 블록 할당부(305)는, 모든 쓰기 요청 신호에 대하여 호출될 수 있다. 파일에 대해 블록이 없다면 당연히 호출될 수 있고, 블록이 있다면 인플레이스(in-place) 업데이트를 피하기 위해 역시 호출되도록 할 수 있다.
유휴 LEB 확보부(303)는 주기적으로 사용 중 LEB 리스트(302)를 확인하여 앞서 설명한 폐영역 회수(Garbage Collection) 작업을 수행하여 유휴 LEB를 확보할 수 있다. 상기 폐영역회수 작업에 관하여는 이하 도 6에서 상세히 설명한다.
도 4는 본 발명의 실시 예에 따른 저장 계층을 도시한 도면이다.
본 발명에 따른 데이터 업데이트를 수행하기 위하여, 물리적인 삭제 단위 블록들을 논리적인 삭제 단위 블록으로 인식할 수 있도록 하는 LEB 계층(402)을 파일시스템의 하위 계층으로 사용할 수 있다. 즉, LEB(Logical Erase Block) 계층(402)은, 물리적 삭제 단위 블록을 포함하는 PEB(Physical Erase Block) 계층(403)을 LEB로 변환할 수 있고, PEB 계층(403)의 PEB에 삭제 카운터(erase counter)를 저장함으로써, 삭제 단위 블록 수준의 웨어 레벨링(wear-leveling)을 수행할 수 있도록 한다.
따라서, 파일 시스템 계층(401)의 데이터 읽기 또는 쓰기 요청 신호에 따라, LEB 계층(402), 및 PEB 계층(403)을 통하여 물리적 플래시 메모리에 액세스(access)할 수 있다.
즉, LEB 계층(402)은 논리적인 삭제 단위 블록(erase block) 주소 LEB에 대해 플래시 메모리의 물리적인 삭제 단위 블록(404)에 대응시킬 수 있다. 따라서, 도 4에 도시된 바와 같이 물리적인 삭제 단위 블록을 PEB 주소 단위로 인식시키는 PEB 계층(403)을 하위 계층으로 구비하거나, 다른 실시 예에 따라, LEB 계층이 상기 PEB 계층의 기능까지 수행하도록 할 수 있다.
또한, 본 발명의 실시 예에 따른 데이터 업데이트 장치가 리눅스(linux)에 탑재된 기존 소프트웨어를 이용하여 구현되는 경우, 파일 시스템은 ext2 소프트웨어를 이용할 수 있고, LEB 계층(402)는, UBI(Unsorted Block Image) 소프트웨어를 이용할 수 있다. 또한, PEB 계층(403)은 MTD(Memory Technology Device) 소프트 웨어를 이용할 수 있다.
도 5는 본 발명의 실시 예에 따른 블록 매칭을 도시한 도면이다.
실시 예에 따라, LEB 주소에 대해 어떤 PEB던지 매핑(mapping) 될 수 있다. 또한, LEB 계층은 삭제 단위 블록(erase block) 단위로 웨어 레벨링(wear-leveling)을 수행한다.
따라서, 각 PEB(502)에는 헤더(header, 503)가 포함될 수 있고, 상기 헤더에는 LEB 주소와 삭제 카운터(erase counter) 정보가 저장될 수 있다. 예를 들어, 각 PEB의 첫 번째 페이지(page)에 삭제 카운터(erase counter)가 저장되도록 할 수 있다.
따라서, LEB 계층 상위의 파일 시스템은 LEB 주소로 접근하며 LEB 계층은 LEB 주소를 PEB 주소로 변환해서 대응되는 PEB의 내용을 넘겨준다. 또한, LEB에 인플레이스(in-place) 업데이트가 발생하면 삭제 카운터(erase counter)를 참조하여, 소모가 적게 진행된 PEB를 골라 LEB에 매핑되도록 할 수 있다. 따라서, LEB 계층을 통하여 삭제 단위 블록(erase block) 단위에서 웨어 레벨링(wear-leveling)를 수행하므로 특정 LEB에 쓰기가 계속 요청 되더라도, 특정 PEB만 소모되는 것을 방지할 수 있다.
도 6은 본 발명의 실시 예에 따른 유휴 블록 확보를 도시한 도면이다.
실시 예에 따라, NAND 플래시 메모리는 삭제 단위 블록(erase block) 내의 임의의 페이지에 데이터를 기록할 수 없고 제일 앞 페이지부터 차례로 데이터를 기록하여야 한다. 또한, 만약 비어있는 삭제 단위 블록(erase block)에서 3번째 페이지에 기록한다면, 앞의 1번, 2번 페이지를 어떤 형태로든 프로그램 해주어야 한다.
따라서, 이런 문제를 피하기 위하여 공간 관리는 삭제 단위 블록(erase block) 크기에 맞추어 수행하는 것이 효율성을 향상시킬 수 있다.
또한 아웃오브플레이스(out-of-place) 업데이트가 수행되면, 파일의 예전 데이터 블록이 플래시 메모리에 프로그램 된 상태로 남아있게 된다. 이런 부분을 재고(obsolete) 영역이라 부른다. 즉, 삭제 단위 블록(erase block)에 잔여(obsolete) 블록들이 섞여있게 된다.
따라서, 효율적인 블록 관리를 위하여, 폐영역회수(Garbage Collection) 동작을 수행할 수 있다. 즉, 추후 잔여(obsolete) 데이터가 아닌 데이터들은 다른 삭제 단위 블록(erase block)에 이주시키고, 상기 재고가 아닌 데이터들이 다 이주되면, 전부 잔여(obsolete) 데이터에 해당하기 때문에, 해당 삭제 단위 블록(erase block)은 삭제(erase)하여 쓰기 가능한 상태로 준비시켜 둘 수 있다.
따라서, 본 발명의 실시 예와 관련하여, LEB를 하나 선택하여 유효한 데이터는 다른 LEB로 옮기고 기존 LEB는 삭제(erase)한 후 유휴 LEB 리스트로 보내는 역할을 수행할 수 있다.
즉, 도 6에 도시된 바와 같이, 유휴 LEB 확보부(602)는, 삭제 가능 LEB 리스트(603), 잔여(obsolete) 데이터가 존재하는 잔여 LEB 리스트(604), 사용 중 LEB 리스트(605)에서 정보를 수집하고, 잔여 데이터를 예비 LEB(606)으로 이주 시킴으로써 상기 폐영역회수 동작을 수행하여, 유휴 LEB 리스트(607)을 갱신할 수 있다.
또한, 블록 할당부(607)는, 상기 유휴 LEB 리스트를 통하여 유휴 LEB에 대한 정보를 획득하고, 데이터 쓰기 동작을 수행한 후, 삭제 가능 LEB 리스트(603), 잔여 LEB 리스트(604), 사용 중 LEB 리스트(605) 중 어느 하나의 리스트를 갱신할 수 있다.
도 7은 본 발명의 실시 예에 따른 데이터 업데이트 방법을 도시한 순서도이다.
실시 예에 따라, 데이터 업데이트 장치에, 입출력 요청 신호가 수신되면, 업데이트 식별부가 상기 입출력 요청 신호가 업데이트 신호에 해당하는지 여부를 판단하고, 상기 입출력 요청 신호가 업데이트 신호인 경우, 데이터 업데이트부가 업데이트 요청을 수신한다(S701).
다음으로, 상기 데이터 업데이트부가, 블록할당부에 유휴 블록의 주소 정보를 요청하고(S702),임의의 파일에 속하는 데이터 블록의 주소를 포함하는 아이노드 정보를 메타데이터 영역에 포함하는 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록에 해당하는 유휴 블록의 주소를 상기 블록할당부로부터 획득한다(S703).
다음으로, 상기 획득된 유휴 블록 주소에 대응되는 유휴 블록에 상기 업데이트 신호에 대응되는 업데이트 데이터를 기록하고, 상기 데이터 저장부의 아이노드 정보에 포함된 데이터 블록의 주소 중, 상기 업데이트 파일에 속하는 데이터 블록의 주소를 상기 업데이트 파일이 기록된 유휴 블록의 주소로 변경한다(S704).
도 8은 도 7의 업데이트 요청 신호를 수신하는 단계를 상세히 도시한 도면이다.
실시 예에 따라, 상기 도 7에 도시된 업데이트 요청을 수신하는 단계는 아래 와 같은 동작을 포함할 수 있다.,
먼저, 입출력 요청 신호가 데이터 업데이트 장치로 수신되면(S801), 상기 입출력 요청 신호가 쓰기 요청 신호인지 여부를 판단하고(S802), 상기 판단 결과, 쓰기 요청 신호인 경우, 상기 쓰기를 요청한 위치의 블록이 이미 소정의 파일에 할당되어 사용 중인지 여부를 판단한다(S803).
즉, 상기 입출력 요청 신호가 쓰기 요청 신호이고, 상기 쓰기를 요청한 위치의 블록이 이미 소정의 파일에 할당되어 사용 중인 경우에, 상기 입출력 요청신호를 업데이트 신호로 식별할 수 있다(S804).
도 9는 도 7의 유휴 블록 주소 획득 단계를 상세히 도시한 도면이다.
실시 예에 따라, 상기 도 7에 도시된 유휴 블록 주소를 획득하는 단계는, 아래와 같은 동작을 포함할 수 있다.
먼저, 블록 할당부에 유휴 블록 요청 신호가 수신되면, 블록할당부가 가지고 있는 LEB에서 블록을 할당하고, 상기 블록할당부가 가지고 있는 LEB에 더 이상 유휴 블록이 없는 경우, 유휴 LEB 리스트를 로드(load)하고(S901), 유휴 LEB 주소를 획득한다(S902).
또한, 상기 유휴 LEB 주소가 획득되면 상기 유휴 LEB 리스트에서 상기 획득된 유휴 LEB 주소를 제거하고 다시 유휴 LEB 리스트를 저장한다(S903).
즉, 블록 할당부는 유휴 블록 요청 신호를 수신할 수 있고, 상기 요청 신호가 수신되었으나 블록할당부가 가지고 있는 LEB에 할당할 수 있는 유휴블록이 남자 있지 않은 경우, 유휴 LEB 리스트에서 유휴 LEB 주소를 새로이 할당 받을 수 있다. 또한, 상기 할당 받은 유휴 LEB 주소는 상기 유휴 LEB 리스트에서 제거된다.
또한, 실시 예에 따라, 상기 획득한 유휴 LEB 주소에 대응되는 LEB에 블록 할당부가 블록을 할당하고, 블록에 쓰기가 이루어지면, 앞서 설명한 LEB 계층은 비로소 해당 LEB에 실제 삭제 단위 블록, 즉 PEB를 연결시켜줄 수 있다. 또한, 이 때, LEB 계층은 각 PEB에 기록된 헤더의 카운터 값을 참조하여, 상기 카운터 값이 최소인 PEB를 LEB에 연결시킴으로써, 웨어 레벨링(wear-leveling)이 수행되도록 할 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
100: 파일 시스템의 데이터 구조
101: 메타 데이터 영역
102: 데이터 영역
103: 아이노드 블록
104: 기타 메타 데이터 블록
105: 데이터 블록

Claims (14)

  1. 입출력 요청 신호가 수신되면, 상기 입출력 요청 신호가 업데이트 신호에 해당하는지 여부를 판단하는 업데이트 식별부;
    데이터 영역과 구분되는 별도의 메타 데이터 영역에, 임의의 파일에 속하는 블록들에 대한 매핑(mapping)정보를 저장하는 데이터 저장부;
    상기 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록인 유휴 블록의 주소를 저장하는 블록 할당부; 및
    상기 입출력 요청 신호가 업데이트 신호인 경우, 상기 업데이트 신호에 대응되는 업데이트 파일을 기록하기 위한 상기 유휴 블록의 주소를 상기 블록 할당부를 통하여 획득하고, 상기 획득된 주소에 대응되는 상기 유휴 블록에 상기 업데이트 파일을 기록하고, 상기 데이터 저장부의 매핑 정보에 포함된 정보 중, 상기 업데이트 파일이 매핑된 기존의 블록 주소를 상기 업데이트 파일이 기록된 유휴 블록의 주소로 갱신하는 데이터 업데이트부
    를 포함하는 것을 특징으로 하는 데이터 업데이트 장치.
  2. 청구항 1에 있어서,
    상기 매핑 정보는,
    임의의 파일에 속하는 데이터 블록의 주소를 포함하는 아이노드 정보;
    하나 이상의 물리 삭제 단위 블록과 매칭되는 논리 삭제 단위 블록(LEB) 중, 데이터의 기록되어 있지 않은 논리 삭제 블록의 주소 정보를 포함하는 유휴 LEB리스트;
    상기 논리 삭제 단위 블록 중, 데이터가 저장되어 있는 논리 삭제 블록의 주소 정보를 포함하는 사용 중 LEB 리스트; 및
    주기적으로 상기 사용 중 LEB 리스트를 확인하여, 폐영역 회수 동작을 수행하는 유휴 LEB 확보부를 포함하고,
    상기 블록 할당부는,
    상기 유휴 LEB 리스트에 포함된 논리 삭제 단위 블록의 주소 정보 중, 어느 하나의 논리 삭제 단위 블록의 주소 정보를 상기 유휴 블록의 주소로 획득하는 것을 특징으로 하는 데이터 업데이트 장치.
  3. 청구항 2에 있어서,
    상기 유휴 LEB 확보부는,
    임의의 논리 단위 블록에서, 잔여(obsolete) 데이터가 아닌 데이터는 다른 논리 삭제 단위 블록으로 이동시키고, 잔여 데이터에 해당하는 데이터는 삭제함으로써 유휴 논리 삭제 단위 블록을 확보하는 동작을 포함하는 폐영역 회수 동작을 수행하는 것을 특징으로 하는 데이터 업데이트 장치.
  4. 청구항 2에 있어서,
    상기 블록 할당부는,
    상기 데이터 업데이트부를 통하여 상기 유휴 블록에 상기 업데이트 파일이 기록되면, 상기 유휴 블록의 주소, 상기 유휴 LEB 리스트, 및 상기 사용 중 LEB 리스트를 갱신하는 것을 특징으로 하는 데이터 업데이트 장치.
  5. 청구항 4에 있어서,
    상기 블록 할당부는,
    상기 유휴 LEB 리스트에 포함된 논리 삭제 단위 블록의 주소 정보 중, 논리 삭제 단위 블록에 매칭된 물리 삭제 단위 블록의 헤더에 포함된 삭제 카운터 값이 최소인 논리 삭제 단위 블록의 주소를 상기 유휴 블록의 주소로 갱신하는 것을 특징으로 하는 데이터 업데이트 장치.
  6. 청구항 1에 있어서,
    상기 업데이트 식별부는,
    상기 입출력 요청 신호가 쓰기 요청 신호이고, 상기 쓰기를 요청한 위치의 블록이 이미 소정의 파일에 할당되어 사용 중인 경우, 상기 입출력 요청신호를 업데이트 신호로 판단하는 것을 특징으로 하는 데이터 업데이트 장치.
  7. 청구항 1에 있어서,
    상기 데이터 저장부는,
    FTL(Flash Translation Layer) 계층을 통하여 데이터를 저장하는 것을 특징으로 하는 데이터 업데이트 장치.
  8. 청구항 2에 있어서,
    상기 데이터 저장부는,
    플래시 메모리의 물리 영역이, 물리 삭제 단위 블록 계층과 매핑(mapping)되는 것을 특징으로 하는 데이터 업데이트 장치.
  9. 입출력 요청 신호가 수신되면, 업데이트 식별부가 상기 입출력 요청 신호가 업데이트 신호에 해당하는지 여부를 판단하고, 상기 입출력 요청 신호가 업데이트 신호인 경우, 데이터 업데이트부가 업데이트 요청을 수신하는 단계;
    상기 데이터 업데이트부가, 블록할당부에 유휴 블록의 주소 정보를 요청하는 단계;
    데이터 영역과 구분되는 별도의 메타 데이터 영역에, 임의의 파일에 속하는 블록들에 대한 매핑(mapping)정보를 저장하는 데이터 저장부에 포함된 블록 중, 데이터가 저장되어 있지 않은 블록에 해당하는 유휴 블록의 주소를 상기 블록할당부로부터 획득하는 단계; 및
    상기 획득된 유휴 블록 주소에 대응되는 유휴 블록에 상기 업데이트 신호에 대응되는 업데이트 파일을 기록하고, 상기 데이터 저장부의 매핑 정보에 포함된 정보 중, 상기 업데이트 파일이 매핑된 기존의 블록 주소를 상기 업데이트 파일이 기록된 유휴 블록의 주소로 갱신하는 단계
    를 포함하는 것을 특징으로 하는 데이터 업데이트 방법.
  10. 청구항 9에 있어서,
    상기 블록할당부에 유휴 블록의 주소 정보를 요청하는 단계는,
    하나 이상의 물리 삭제 단위 블록과 매칭되는 논리 삭제 단위 블록(LEB) 중, 데이터가 기록되어 있지 않은 논리 삭제 블록의 주소 정보를 포함하는 유휴 LEB리스트의 유휴 논리 삭제 블록 주소를 유휴 블록의 주소 정보로 포함하는 블록할당부에 유휴 블록의 주소 정보를 요청하는 단계
    를 포함하는 것을 특징으로 하는 데이터 업데이트 방법.
  11. 청구항 9에 있어서,
    상기 데이터 업데이트 방법은,
    유휴 LEB 확보부에서, 임의의 논리 단위 블록에 대하여, 잔여(obsolete) 데이터가 아닌 데이터는 다른 논리 삭제 단위 블록으로 이동시키고, 잔여 데이터에 해당하는 데이터는 삭제함으로써 유휴 논리 삭제 단위 블록을 확보하는 단계
    를 더 포함하는 것을 특징으로 하는 데이터 업데이트 방법.
  12. 청구항 10에 있어서,
    상기 데이터 업데이트 방법은,
    상기 데이터 업데이트부를 통하여 상기 유휴 블록에 상기 업데이트 파일이 기록되면, 상기 유휴 블록의 주소, 상기 유휴 LEB 리스트, 및 사용 중 LEB 리스트를 갱신하는 단계
    를 더 포함하는 것을 특징으로 하는 데이터 업데이트 방법.
  13. 청구항 12에 있어서,
    상기 갱신하는 단계는,
    상기 유휴 LEB 리스트에 포함된 논리 삭제 단위 블록의 주소 정보 중, 논리 삭제 단위 블록에 매칭된 물리 삭제 단위 블록의 헤더에 포함된 삭제 카운터 값이 최소인 논리 삭제 단위 블록의 주소를 상기 유휴 블록의 주소로 갱신하는 단계
    를 포함하는 것을 특징으로 하는 데이터 업데이트 방법.
  14. 청구항 9에 있어서,
    상기 업데이트 요청을 수신하는 단계는,
    상기 입출력 요청 신호가 쓰기 요청 신호이고, 상기 쓰기를 요청한 위치의 블록이 이미 소정의 파일에 할당되어 사용 중인 경우, 상기 입출력 요청신호를 업데이트 신호로 판단하는 단계
    를 포함하는 것을 특징으로 하는 데이터 업데이트 방법.
KR1020110143195A 2011-12-27 2011-12-27 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 KR20130075018A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110143195A KR20130075018A (ko) 2011-12-27 2011-12-27 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US13/726,880 US20130166828A1 (en) 2011-12-27 2012-12-26 Data update apparatus and method for flash memory file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110143195A KR20130075018A (ko) 2011-12-27 2011-12-27 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20130075018A true KR20130075018A (ko) 2013-07-05

Family

ID=48655717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110143195A KR20130075018A (ko) 2011-12-27 2011-12-27 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법

Country Status (2)

Country Link
US (1) US20130166828A1 (ko)
KR (1) KR20130075018A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170037017A (ko) 2015-09-25 2017-04-04 한화테크윈 주식회사 메모리 업그레이드 시스템 및 방법
KR20180045557A (ko) 2016-10-26 2018-05-04 한화테크윈 주식회사 메모리 장치

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050732B1 (ko) * 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US9405672B2 (en) 2013-06-25 2016-08-02 Seagate Technology Llc Map recycling acceleration
US9626288B2 (en) * 2013-08-14 2017-04-18 Skyera, Llc Address translation for a non-volatile memory storage device
US10763752B1 (en) 2019-06-25 2020-09-01 Chengdu Monolithic Power Systems Co., Ltd. Zero-voltage-switching flyback converter
KR102252419B1 (ko) 2014-01-09 2021-05-14 한국전자통신연구원 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
KR102033323B1 (ko) 2014-03-05 2019-10-17 한국전자통신연구원 플래시 메모리에서 사용하는 로그 구조 파일시스템의 메타데이터 저장 방법
CN105607861A (zh) * 2014-11-24 2016-05-25 中兴通讯股份有限公司 数据处理方法及装置
KR102342564B1 (ko) 2015-03-03 2021-12-24 한국전자통신연구원 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법
US10409719B2 (en) * 2016-03-17 2019-09-10 Samsung Electronics Co., Ltd. User configurable passive background operation
KR102570367B1 (ko) 2016-04-21 2023-08-28 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법
CN107786299B (zh) * 2016-08-25 2021-06-08 华为技术有限公司 一种发送和接收业务的方法、装置和网络系统
US11008526B2 (en) 2019-07-23 2021-05-18 Croda Inc. Demulsifier for quaternary ammonium salt containing fuels
CN114442903A (zh) * 2020-10-30 2022-05-06 伊姆西Ip控股有限责任公司 管理存储系统的方法、电子设备和计算机程序产品

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US9104599B2 (en) * 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
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
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8688896B2 (en) * 2009-05-21 2014-04-01 Panasonic Corporation High speed writing mode in memory controller, nonvolatile storage device, accessing device, nonvolatile storage system, and method and program for writing data
US8849876B2 (en) * 2009-12-28 2014-09-30 Wenguang Wang Methods and apparatuses to optimize updates in a file system based on birth time
US8671265B2 (en) * 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170037017A (ko) 2015-09-25 2017-04-04 한화테크윈 주식회사 메모리 업그레이드 시스템 및 방법
KR20180045557A (ko) 2016-10-26 2018-05-04 한화테크윈 주식회사 메모리 장치

Also Published As

Publication number Publication date
US20130166828A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
KR20130075018A (ko) 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US20220327050A1 (en) Storage system and information processing system for controlling nonvolatile memory
CN110678836B (zh) 用于键值存储的持久性存储器
US20220083278A1 (en) Storage system, information processing system and method for controlling nonvolatile memory
US10372331B2 (en) Storage system, information processing system and method for controlling nonvolatile memory
US10275162B2 (en) Methods and systems for managing data migration in solid state non-volatile memory
US10353612B2 (en) Storage system, information processing system and method for controlling nonvolatile memory
CN106326133B (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
KR101038167B1 (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
Han et al. ZNS+: Advanced zoned namespace interface for supporting in-storage zone compaction
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US9747202B1 (en) Storage module and method for identifying hot and cold data
KR102033491B1 (ko) 플래시 메모리 시스템에서 trim 동작 관리
US9940040B2 (en) Systems, solid-state mass storage devices, and methods for host-assisted garbage collection
WO2013171792A1 (en) Storage control apparatus and storage control method
US20120317337A1 (en) Managing data placement on flash-based storage by use
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
JP2018041245A (ja) ストレージ装置、及びストレージ制御装置
CN101278267A (zh) 具有经调度回收操作的非易失性存储器
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20120072228A (ko) 플래시 메모리의 파일 시스템
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
US20190303019A1 (en) Memory device and computer system for improving read performance and reliability
US9286213B2 (en) Method and apparatus for managing file system
US11269771B2 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device

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