KR100868674B1 - 플래시메모리 관리방법 - Google Patents

플래시메모리 관리방법 Download PDF

Info

Publication number
KR100868674B1
KR100868674B1 KR1020060105732A KR20060105732A KR100868674B1 KR 100868674 B1 KR100868674 B1 KR 100868674B1 KR 1020060105732 A KR1020060105732 A KR 1020060105732A KR 20060105732 A KR20060105732 A KR 20060105732A KR 100868674 B1 KR100868674 B1 KR 100868674B1
Authority
KR
South Korea
Prior art keywords
block
physical
logical
flash memory
super block
Prior art date
Application number
KR1020060105732A
Other languages
English (en)
Other versions
KR20080038613A (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 KR1020060105732A priority Critical patent/KR100868674B1/ko
Publication of KR20080038613A publication Critical patent/KR20080038613A/ko
Application granted granted Critical
Publication of KR100868674B1 publication Critical patent/KR100868674B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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
    • G06F12/0646Configuration or reconfiguration
    • 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

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 플래시메모리 관리방법에 관한 것이다.
이러한 본 발명에 따른 플래시메모리 관리방법은 하나 이상의 논리블록을 포함하는 논리슈퍼블록을 생성하는 단계 및 논리슈퍼블록을 대응하는 물리슈퍼블록으로 재사상하는 단계를 포함한다.
이러한 본 발명에 따르면, 플래시메모리를 효율적으로 관리할 수 있고, 플래시메모리의 전체적 수명을 보다 연장시켜주는 등의 효과가 있다.
플래시메모리, 논리슈퍼블록, 물리슈퍼블록, 재사상 정보, 자유 페이지

Description

플래시메모리 관리방법 {THE METHOD OF MANAGING FLASH MEMORY}
도 1은 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 기초한 시스템의 블록도를 나타낸 도면.
도 2는 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 있어서의 슈퍼블록을 설명하기 위한 도면.
도 3은 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 있어서의 재사상 방법을 설명하기 위한 도면.
도 4는 도 3의 재사상 방법에 대한 구체적인 예를 나타낸 도면.
도 5는 본 발명에 따른 플래시 메모리에 데이터와 함께 저장되는 재사상 정보의 구조를 나타낸 도면.
도 6은 덮어쓰기 빈도가 비슷한 페이지들을 특정 물리 블록으로 모으는 방법을 설명하기 위한 도면.
본 발명은 플래시메모리 관리방법에 관한 것이다.
플래시메모리는 전기적으로 데이터를 지우거나 쓸 수 있는 비휘발성 기억소자이다. 마그네틱 디스크 메모리를 기반으로 한 저장장치에 비해 플래시메모리를 기반으로 한 저장장치는 전력소모가 적으며 크기가 작아서 마그네틱 디스크 메모리의 대안으로서 연구 및 개발이 활발하게 진행되고 있다. 특히, 플래시 메모리는 디지털 카메라, 모바일 폰, PDA(Personal Digital Assistant)와 같은 모바일 컴퓨팅 기기를 위한 저장장치로서 각광받을 것이 예상된다.
그러나, 플래시메모리는 데이터의 덮어쓰기가 자유로운 마그네틱 디스크 메모리와 달리 데이터의 덮어쓰기가 불가능하다. 플래시메모리에 데이터를 덮어쓰기 위해서는 먼저 데이터를 지워야한다. 즉, 메모리 셀들을 쓰기 가능한 초기상태로 되돌려놓아야 한다. 이러한 작업을 지우기(erase)라고 한다. 지우기는 일반적으로 쓰기에 비해 매우 긴 시간이 소요된다. 더욱이, 지우기는 쓰기보다 훨씬 큰 블록 단위로 수행되기 때문에 쓰기가 요청되지 않은 부분까지 함께 지워지는 결과를 초래할 수 있다. 부득이하게 지워진 부분은 다시 쓰기를 통해 복원되어야 하므로 최악의 경우 데이터 하나의 쓰기 요청이 하나의 지우기와 지워진 단위만큼의 쓰기를 필요로 하게 된다. 이와 같이 지우기와 쓰기의 실행 단위의 불일치로 인해 쓰기의 수행 성능은 읽기의 그것에 비해 현저히 떨어지며, 심지어 기계동작으로 인한 필연적인 지연을 수반하게 되는 마그네틱 디스크 기반의 저장장치의 그것보다 낮다. 따라서 플래시 메모리를 기반으로 한 저장장치의 설계에 있어서 쓰기의 성능개선은 핵심기술에 해당된다.
미국특허 No. 5,845,313은 저장장치를 초기화할 때 플래시메모리에 저장된 논리적 주소를 스캐닝하여 별도의 RAM에 직접 주소 변환을 수행할 수 있는 선형적 인 주소변환 테이블을 구축하는 방법을 제시하고 있다. 그러나 주소변환 테이블을 저장하기 위해서는 대용량 RAM이 필요하다. 예를 들어, 전체 저장용량이 32MB이고 페이지의 크기가 512B인 플래시메모리 기반 저장장치의 주소변환 테이블을 저장하기 위해서는 65,536개의 페이지 당 2B가 필요하므로 총 128KB의 RAM이 필요하게 된다. 이러한 요구량은 모바일 기기 등 자원이 귀한 소규모 시스템에 있어서는 지나치게 크다는 문제점이 있다.
미국특허 No. 5,404,485는 쓰기를 위해 새로운 블록(교체 블록)을 할당하고 할당된 블록에 쓰기를 수행하는 방식을 제안하고 있다. 그러나 이에 따르면, 1) 쓰기를 위해 계속 새로운 블록이 할당되므로 동일한 페이지가 기록된 서로 다른 버전의 복수개의 블록이 존재하게 된다. 즉, 묵시적으로 모든 블록마다 적어도 하나의 교체 블록이 존재할 것을 요구하여 플래시메모리의 용량이 상당히 줄어드는 문제점이 있다. 또한, 2) 새로운 블록에 쓰여지는 페이지는 항상 이전 블록의 그것과 동일한 위치에 쓰여져야 하므로, 특정 페이지에 대해서만 잦은 갱신이 이루어지고 나머지 페이지는 갱신이 거의 없는 경우 특정 페이지의 내용만 상이할 뿐 나머지 페이지의 내용은 동일한 교체 블록이 복수개 존재하게 되어 플래시 메모리의 저장공간의 낭비가 심하게 되고, 모바일 기기 등 소규모 시스템에 적합하지 않은 문제점이 있다.
대한민국특허 특2002-0092487은 플래시메모리 자원의 낭비를 줄이기 위해서 로그블록 내에서는 자유롭게 페이지들을 재사상할 수 있는 플래시 메모리 관리 기법을 제안하였다. 하나의 논리 블록에 속한 데이터를 덮어쓸 때, 해당 논리 블록에 로그블록을 할당하기 위해서 로그블록을 가지고 있는 다른 논리 블록을 합병한다. 합병하는 과정은 논리블록과 로그블록 안에 있는 유효한 데이터를 새로운 블록으로 복사한 후, 지움 연산을 통해서 생긴 블록을 로그블록으로 재사용한다. 하지만, 하나의 논리블록에 속한 데이터는 하나의 물리블록(데이터블록)과 논리블록에 할당 받은 로그블록에만 데이터를 저장해야 하는 제약 때문에 성능이 떨어지는 문제점이 있다.
이러한 문제점을 해결하기 위한 본 발명은 재사상을 위한 주소테이블의 메모리 요구량을 낮추고, 논리블록의 데이터를 물리블록에 자유롭게 저장할 수 있는 재사상 방법을 통하여, 플래시메모리를 효율적으로 관리할 수 있는 플래시메모리 관리방법을 제공하는 것을 목적으로 한다.
또한, 재사상 정보를 별도의 추가 장치 없이 플래시메모리 내에서 관리할 수 있는 플래시메모리 관리방법을 제공하는 것을 목적으로 한다.
이러한 기술적 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 플래시메모리 관리방법은 하나 이상의 논리블록을 포함하는 논리슈퍼블록을 생성하는 단계 및 상기 논리슈퍼블록을 대응하는 물리슈퍼블록으로 재사상하는 단계를 포함한다.
상기 논리슈퍼블록에 포함된 논리블록의 페이지들이 상기 물리슈퍼블록에 포함된 물리블록으로 재사상되는 것이 바람직하다.
상기 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보를 상기 플래시메모리에 데이터와 함께 관리하는 것이 바람직하다.
상기 논리블록에 대한 재사상 정보가 RAM에 저장되어 있는 지 확인하는 단계와, 상기 논리블록에 대한 재사상 정보가 상기 RAM에 없는 경우, 상기 논리블록에 대한 재사상 정보의 위치를 찾는 단계와, 상기 위치에 저장된 재사상 정보를 읽고, 상기 RAM에 저장하는 단계를 포함하는 것이 바람직하다.
데이터의 위치가 바뀌는 경우, 상기 재사상 정보를 변경하는 단계와, 상기 변경된 재사상 정보를 상기 데이터와 함께 저장하는 단계를 더 포함하는 것이 바람직하다.
상기 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보는 나무 구조에 따라 여러 페이지에 나누어 관리되는 것이 바람직하다.
상기 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보를 상기 나무 구조에 따라 상기 플래시메모리에 저장할 때, 상기 나무 구조의 중간 노드들을 함께 저장하는 것이 바람직하다.
상기 물리슈퍼블록은 상기 논리슈퍼블록에 포함된 논리블록의 수보다 크거나 같은 수의 물리블록을 포함하고, 상기 물리슈퍼블록에 포함된 물리블록의 수는 증가 또는 감소될 수 있다.
상기 물리슈퍼블록 내에 데이터가 기입되지 않은 자유 페이지가 없는 경우, 상기 물리슈퍼블록에 포함된 물리블록들을 병합하여 데이터가 기입되지 않은 자유 페이지들로 이루어진 자유물리블록을 생성하는 단계를 더 포함하는 것이 바람직하다.
상기 병합을 수행할 물리슈퍼블록을 선정하는 단계와, 상기 선정된 물리슈퍼블록에 포함된 물리블록들 중 지움 연산을 수행할 물리블록을 선정하는 단계와, 상기 선정된 물리블록에 저장된 유효 데이터를 상기 물리슈퍼블록에 포함된 다른 물리블록 내의 자유 페이지로 복사하는 단계와, 상기 복사 후 상기 선정된 물리블록을 지움 연산을 통하여 데이터가 기입되지 않은 자유물리블록으로 변경하는 단계와, 상기 물리슈퍼블록에서 상기 자유물리블록을 제거하는 단계를 포함하는 것이 바람직하다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 기초한 시스템의 블록도를 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 기초한 시스템은 플래시 메모리(101), ROM(102), RAM(103), 및 CPU(104)를 포함한다.
ROM(102)에는 플래시 메모리(101)를 제어하는 프로그램이 저장되어 있다.
RAM(103)은 재사상 정보 및 데이터를 읽고 쓰기위한 버퍼로 사용된다.
CPU(104)는 ROM(102)에 저장된 프로그램을 수행한다.
도 2는 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 있어서의 슈퍼블록을 설명하기 위한 도면이다.
도 2를 참조하면, 하나의 논리슈퍼블록은 연속적인 2개의 논리블록으로 이루어지고, 하나의 물리슈퍼블록은 2개 이상의 물리블록으로 이루어진다. 이를 보다 상세히 설명하면 다음과 같다. 즉, 제1 논리슈퍼블록(201)은 2개의 논리블록(Logical Block 0, Logical Block 1)으로 이루어지고, 제2 논리슈퍼블록(204)은 다른 2개의 논리블록(Logical Block 2, Logical Block 3)으로 이루어진다. 또한, 제1 논리슈퍼블록(201)에 대응하는 제1 물리슈퍼블록(203)은 4개의 물리블록(Physical Block 1, Physical Block 7, Physical Block 2, Physical Block 3)으로 이루어지고, 제2 논리슈퍼블록(204)에 대응하는 제2 물리슈퍼블록(205)은 다른 2개의 물리블록(Physical Block 4, Physical Block 0)으로 이루어진다.
논리슈퍼블록을 구성하는 논리블록의 수는 변할 수 있으며, 논리슈퍼블록에 대응하는 물리슈퍼블록을 구성하는 물리블록의 수는 논리블록의 수보다 크거나 같다. 논리슈퍼블록을 구성하는 논리블록은 고정되지만, 논리슈퍼블록에 대응하는 물리슈퍼블록을 구성하는 물리블록은 플래시메모리 내의 임의의 물리블록일 수 있으며, 후술하는 본 발명의 재사상 방법을 통하여 물리블록의 위치는 변경될 수 있고, 물리블록의 수는 증가 또는 감소될 수 있으며, 하나의 논리슈퍼블록을 이루는 논리블록에 속한 페이지들은 논리슈퍼블록에 대응하는 물리슈퍼블록을 이루는 물리블록의 임의의 위치에 저장될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 플래시메모리 관리방법에 있어서의 재사상 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 논리블록 단위의 재사상 정보인 PGD(Page global directory, 302)는 RAM에 저장되어 있으며, 논리슈퍼블록 내에서의 재사상 정보를 가지고 있는 PMD(Page middle directory, 303)의 위치를 가지고 있다. PGD(302)의 크기는 논리슈퍼블록의 크기와 동일하다. PMD(303)는 후술할 플래시메모리의 스페어 영역에 저장되어 있으며 실제 데이터가 저장되어 있는 위치를 가지고 있는 4개의 PT(Page table, 304)의 위치를 가지고 있다. PT(304)는 PMD(303)와 함께 플래시메모리의 스페어 영역에 저장되어 있으며 16개의 페이지 주소를 가지고 있다. 따라서 하나의 PMD(303)와 4개의 PT(304)를 이용해서 64개의 페이지 주소를 지시할 수 있다.
본 발명에 따르면, 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보를 플래시메모리에서 관리한다. 이를 위하여, 본 발명의 일 실시 예에 따른 플래시메모리 재사상 방법은 1) 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보가 RAM에 저장되어 있는 지 확인하고, 2) 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보가 RAM에 없는 경우, 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보의 위치를 찾고, 3) 찾은 위치에 저장된 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보를 읽은 후, RAM에 저장하고, 4) 데이터의 위치가 바뀌는 경우, 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보를 변경하고, 5) 변경된 재사상 정보를 데이터와 함께 저장한다.
이를 보다 상세히 설명하면 다음과 같다.
먼저, 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보가 RAM에 없는 경우, 논리슈퍼블록에 포함된 논리블록에 대한 재사상 정보의 위치를 찾기 위하여, 논리 주소를 슈퍼블록 번호, PGD 번호, PMD 번호, PTE 번호로 나누고, 슈퍼블록 번호를 이용해서 PGD에서 해당 PGD를 찾고, PGD 번호를 이용해서 해당 PMD의 위치를 읽는다. PGD에 저장된 PMD의 위치 정보를 이용해서 플래시메모리로부터 PMD를 읽은 후, PMD 번호를 이용하여 해당 PT의 위치를 찾아서, 다시 플래시메모리로부터 PT를 읽는다. 읽은 PT에서 PTE 번호를 이용해서 논리 주소에 해당하는 데이터가 저장된 물리 주소를 알아낸다.
한번 읽은 PMD(303)와 PT(304)는 RAM(103)에 임시로 보관하며, 동일한 PMD(303) 혹은 PT(304)를 사용하는 논리 주소(301)가 왔을 때, 플래시메모리로부터 읽지 않고 바로 RAM(103)에 임시로 보관된 정보를 사용한다. RAM(103)의 크기가 제한적이므로 임시로 저장된 PMD(303)와 PT(304)는 다른 논리 주소에 해당하는 PMD(303)와 PT(304)로 교체된다. 본 발명에서는 교체 알고리즘에 대해 특별히 규정하지 않으므로, 본 발명을 구현하기 위해 LRU(Least Recently Used)와 같은 일반화된 교체 알고리즘을 사용하는 것도 가능하다.
도 4는 도 3을 통하여 설명한 재사상 방법에 대한 구체적인 예를 나타낸 도면이다.
도 4를 참조하면, 논리슈퍼블록의 크기가 4이고 하나의 논리블록 내에 64개의 논리 페이지가 있을 경우, 논리블록 번호가 17이고 논리 페이지 번호가 12인 논 리 주소를 참조할 때, 슈퍼블록 번호는 4, PGD 번호는 1, PMD 번호는 0, PTE 번호는 12가 된다. PGD에는 물리블록 번호 6번의 24번째 페이지에 해당 PMD(303)가 저장되어 있다는 정보가 있다. 따라서, PMD를 읽기 위해서 물리블록 번호 6번의 24번째 페이지의 스페어 영역을 읽는다. PMD 번호를 이용해서 PT의 위치를 찾는다. 이 때, PMD는 항상 하나의 PT와 함께 저장된다. 따라서 해당 PT가 PMD와 같이 저장되어 있었다면, RAM에 해당 정보가 이미 존재하게 된다. 도 4와 같이 다른 페이지에 해당 PT가 저장되어 있다면, 다시 플래시메모리에서 PT를 읽는다. PT로부터 PT 번호를 이용해서 데이터가 저장된 물리 주소를 찾는다. 찾은 물리 주소를 이용해서 원하는 데이터를 읽는다.
논리블록 번호 17, 논리 페이지 번호 12 인 데이터가 덮어쓰기를 시도하면 앞서 설명한 방법으로 해당 PMD와 PT를 읽은 후, 물리슈퍼블록 내에 존재하는 데이터가 기입되지 않은 자유 페이지를 찾는다. 자유 페이지가 존재하지 않으면, 물리슈퍼블록에 포함된 물리블록들을 병합하여 데이터가 기입되지 않은 자유 페이지들로 이루어진 자유물리블록을 생성하여 물리슈퍼블록에 추가한다. 이를 위하여, 1) 병합을 수행할 물리슈퍼블록을 선정하고, 2) 선정된 물리슈퍼블록에 포함된 물리블록들 중 지움 연산을 수행할 물리블록을 선정하고, 3) 선정된 물리블록에 저장된 유효 데이터를 물리슈퍼블록에 포함된 다른 물리블록 내의 자유 페이지로 복사하고, 4) 복사 후 선정된 물리블록을 지움 연산을 통하여 데이터가 기입되지 않은 자유물리블록으로 변경하고, 5) 물리슈퍼블록에서 자유물리블록을 제거한다.
자유 페이지의 주소로 RAM에 저장되어 있는 해당 PT의 값을 변경한 후, RAM 에 역시 저장되어있는 해당 PMD도 빈 자유 페이지를 지시하도록 변경한다. 자유 페이지에 덮어쓸 데이터와 함께 변경된 PMD와 PT를 저장한다. 해당 PMD를 지시하고 있는 PGD의 엔트리를 새로 저장된 주소로 변경한다.
도 5는 본 발명에 따른 플래시 메모리에 데이터와 함께 저장되는 재사상 정보의 구조를 나타낸 도면이다.
도 5의 (a)를 참조하면, 스페어 영역에는 데이터 정보(DI), 물리 블록 사상 정보(PBMT), PMD(303), PT(304)가 저장된다.
도 5의 (b)를 참조하면, 데이터 정보(DI)에는 배드 블록 정보, 데이터의 안정성을 위한 에러 보정 코드(ECC), 복구를 위한 데이터의 논리 주소가 저장된다.
도 5의 (c)를 참조하면, 물리블록 사상 정보(PBMT)에는 7개의 물리블록 번호가 기록된다.
도 5의 (d)와 (e)를 참조하면, PMD와 PT에 물리 주소를 저장하기 위해서 물리블록 사상 정보(PBMT)의 번호와 블록 내에서의 페이지 번호가 기록된다.
도 6은 덮어쓰기 빈도가 비슷한 페이지들을 특정 물리 블록으로 모으는 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 슈퍼블록의 크기가 3이고, 2개의 추가적인 로그 블록을 할당받아서 5개의 물리 블록으로 구성된 슈퍼블록을 재생할 때의 예가 나타나 있다. 본 발명에서는 특별한 경우를 제외하고, 선택 알고리즘에 대해 특별히 규정하지 않으므로, 본 발명을 구현하기 위해 LRU와 같은 일반화된 선택 알고리즘을 사용하는 것도 가능하다.
선택된 물리슈퍼블록에서 유효하지 않은 페이지를 포함한 물리블록을 선택하여, 물리슈퍼블록 내의 자유 페이지로 복사한다. 만약 자유 페이지를 다 사용한 후에도 선택한 물리블록 내에 유효한 페이지가 존재하면, 그 유효한 페이지는 새로운 빈 자유물리블록을 할당해서 자유물리블록에 복사한다. 모든 유효한 페이지를 복사한 후 선택한 물리블록을 지움 연산을 통해서 빈 자유물리블록으로 만든 후, 물리슈퍼블록에서 제거한다. 이러한 과정을 물리슈퍼블록이 가지고 있는 물리블록의 개수가 논리슈퍼블록이 가지고 있는 논리블록의 개수와 동일해 질 때 까지 반복한다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
이상에서 상세히 설명한 바와 같이, 본 발명은 블록 단위의 재사상 테이블을 RAM에서 관리하고, 페이지 단위의 재사상 테이블을 플래시메모리에서 관리하여 플래시 저장장치를 위한 추가적인 자원을 최소화하면서, 연속적인 복수개의 논리블록 을 하나의 슈퍼블록으로 관리하여서 플래시메모리 저장장치의 성능을 개선시킬 수 있는 방법을 제공한다.
또한, 슈퍼블록에 속해 있는 여러 논리블록안의 데이터를 서로 다른 복수개의 물리블록에 자유롭게 저장할 수 있는 유연성을 제공하는 장점이 있다.
또한, 유연성을 활용한 재생방법을 통하여 쓰기 연산과 삭제 연산의 횟수를 감소시켜, 삭제 연산 횟수에 한계가 있는 플래시메모리의 전체적 수명을 보다 연장시켜주는 효과가 있다.

Claims (10)

  1. 하나 이상의 논리블록을 포함하는 논리슈퍼블록을 생성하는 단계; 및
    상기 논리슈퍼블록을 대응하는 물리슈퍼블록으로 재사상하는 단계를 포함하고,
    상기 논리슈퍼블록에 포함된 논리블록의 페이지들이 상기 물리슈퍼블록에 포함된 물리블록으로 재사상되고,
    상기 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보는
    상기 논리블록에 대한 재사상 정보가 RAM에 저장되어 있는지 확인하는 단계;
    상기 논리블록에 대한 재사상 정보가 상기 RAM에 없는 경우, 상기 논리블록에 대한 재사상 정보의 위치를 찾는 단계;
    상기 위치에 저장된 재사상 정보를 읽고, 상기 RAM에 저장하는 단계를 통하여 플래시메모리에 데이터와 함께 관리되는 플래시메모리 관리방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1 항에 있어서,
    데이터의 위치가 바뀌는 경우, 상기 재사상 정보를 변경하는 단계;
    상기 변경된 재사상 정보를 상기 데이터와 함께 저장하는 단계;
    를 더 포함하는 플래시메모리 관리방법.
  6. 제1 항에 있어서,
    상기 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보는 나무 구조에 따라 여러 페이지에 나누어 관리되는 플래시메모리 관리방법.
  7. 제6 항에 있어서,
    상기 논리슈퍼블록에 포함된 논리블록의 페이지들에 대한 재사상 정보를 상기 나무 구조에 따라 상기 플래시메모리에 저장할 때, 상기 나무 구조의 중간 노드들을 함께 저장하는 플래시메모리 관리방법.
  8. 제1 항에 있어서,
    상기 물리슈퍼블록은 상기 논리슈퍼블록에 포함된 논리블록의 수보다 크거나 같은 수의 물리블록을 포함하고,
    상기 물리슈퍼블록에 포함된 물리블록의 수는 증가 또는 감소될 수 있는 플 래시메모리 관리방법.
  9. 제8 항에 있어서,
    상기 물리슈퍼블록 내에 데이터가 기입되지 않은 자유 페이지가 없는 경우, 상기 물리슈퍼블록에 포함된 물리블록들을 병합하여 데이터가 기입되지 않은 자유 페이지들로 이루어진 자유물리블록을 생성하는 단계를 더 포함하는 플래시메모리 관리방법.
  10. 제9 항에 있어서,
    상기 병합을 수행할 물리슈퍼블록을 선정하는 단계;
    상기 선정된 물리슈퍼블록에 포함된 물리블록들 중 지움 연산을 수행할 물리블록을 선정하는 단계;
    상기 선정된 물리블록에 저장된 유효 데이터를 상기 물리슈퍼블록에 포함된 다른 물리블록 내의 자유 페이지로 복사하는 단계;
    상기 복사 후 상기 선정된 물리블록을 지움 연산을 통하여 데이터가 기입되지 않은 자유물리블록으로 변경하는 단계;
    상기 물리슈퍼블록에서 상기 자유물리블록을 제거하는 단계;
    를 포함하는 플래시메모리 관리방법.
KR1020060105732A 2006-10-30 2006-10-30 플래시메모리 관리방법 KR100868674B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060105732A KR100868674B1 (ko) 2006-10-30 2006-10-30 플래시메모리 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060105732A KR100868674B1 (ko) 2006-10-30 2006-10-30 플래시메모리 관리방법

Publications (2)

Publication Number Publication Date
KR20080038613A KR20080038613A (ko) 2008-05-07
KR100868674B1 true KR100868674B1 (ko) 2008-11-13

Family

ID=39647045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060105732A KR100868674B1 (ko) 2006-10-30 2006-10-30 플래시메모리 관리방법

Country Status (1)

Country Link
KR (1) KR100868674B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100973496B1 (ko) * 2008-05-16 2010-08-03 명지대학교 산학협력단 플래시 메모리 삭제 블록을 고려한 선반입 스왑 인 방법
KR100929371B1 (ko) * 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001018640A1 (en) 1999-09-03 2001-03-15 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001018640A1 (en) 1999-09-03 2001-03-15 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time

Also Published As

Publication number Publication date
KR20080038613A (ko) 2008-05-07

Similar Documents

Publication Publication Date Title
KR100389867B1 (ko) 플래시 메모리 관리방법
US8180955B2 (en) Computing systems and methods for managing flash memory device
KR100789406B1 (ko) 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
KR100849221B1 (ko) 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
JP4933269B2 (ja) 不揮発性メモリおよびメモリプレーン配列を伴う方法
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
US7191306B2 (en) Flash memory, and flash memory access method and apparatus
US8341336B2 (en) Region-based management method of non-volatile memory
KR101077904B1 (ko) 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
JP4682261B2 (ja) 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
KR20090024971A (ko) 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
KR101077901B1 (ko) 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
Ross Modeling the performance of algorithms on flash memory devices
KR100868674B1 (ko) 플래시메모리 관리방법
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
KR101022001B1 (ko) 플래시 메모리 시스템 및 플래시 메모리의 관리 방법
KR101114398B1 (ko) 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법

Legal Events

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

Payment date: 20111102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee