KR101155566B1 - 공간 데이터의 페이지 매핑 방법 - Google Patents

공간 데이터의 페이지 매핑 방법 Download PDF

Info

Publication number
KR101155566B1
KR101155566B1 KR1020090029099A KR20090029099A KR101155566B1 KR 101155566 B1 KR101155566 B1 KR 101155566B1 KR 1020090029099 A KR1020090029099 A KR 1020090029099A KR 20090029099 A KR20090029099 A KR 20090029099A KR 101155566 B1 KR101155566 B1 KR 101155566B1
Authority
KR
South Korea
Prior art keywords
spatial
data
page
mapping
pages
Prior art date
Application number
KR1020090029099A
Other languages
English (en)
Other versions
KR20100062842A (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 한국전자통신연구원
Publication of KR20100062842A publication Critical patent/KR20100062842A/ko
Application granted granted Critical
Publication of KR101155566B1 publication Critical patent/KR101155566B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/7201Logical to physical mapping or translation of blocks or pages

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

본 발명은 공간 데이터에 대한 공간 색인을 수행하여 그에 대응하는 논리 페이지 또는 물리 페이지를 매핑 및 재매핑한다는 것으로, 이를 위하여 본 발명은, 공간 데이터를 공간적 근접성에 따라 공간 그리드 방식으로 공간 색인을 수행하고, 공간적 근접성에 따른 논리 페이지 또는 물리 페이지를 할당하는 매핑 테이블을 통해 공간 데이터의 매핑 또는 변경 데이터의 재매핑을 수행함으로써, 데이터 페이지의 병합 또는 소거 횟수를 감소시켜 시스템 성능을 향상시킬 수 있는 것이다.
공간 데이터, 페이지 매핑, 공간적 근접성

Description

공간 데이터의 페이지 매핑 방법{PAGE MAPPING METHOD OF SPACE DATA}
본 발명은 공간 데이터에 대한 페이지 매핑 기법에 관한 것으로, 더욱 상세하게는 플래시 메모리를 공간 데이터의 데이터베이스 저장소로 활용할 경우 랜덤 접근(random access) 성능 향상을 위한 페이지 매핑을 수행하는데 적합한 공간 데이터의 페이지 매핑 방법에 관한 것이다.
잘 알려진 바와 같이, 플래시 메모리(flash memory)의 특성을 설명하면 다음과 같다.
첫째, 메모리 접근 API(application programming interface, 이하 'API'라 함)가 읽기(read), 쓰기(write), 소거(erase)로 구분된다.
둘째, 읽기와 쓰기의 단위는 페이지(page) 또는 섹터(sector)이고, 소거의 단위는 블록(block)이며, 다수의 블록은 다수의 페이지로 구성된다.
셋째, 소거 연산의 회수는 예를 들면, 1000000번 등으로 정해져 있으며, 이 회수를 초과하면 해당 블록을 사용할 수 없다.
넷째, 이미 기록되어 있는 페이지에 새로운 데이터를 기록하려고 할 경우 직접 기록(in-place update)하지 못하고 블록을 소거한 후 기록하여야 한다.
다섯째, 읽기, 쓰기, 소거의 연산 비용(시간)은 '읽기<쓰기<소거'의 순이며, 소거의 경우 연산 비용이 크기 때문에 이미 기록되어 있는 페이지에 재기록을 위하여 일반적으로 직접 기록(in-place update)을 수행하지 않고 여유 블록을 찾아서 간접 기록(out-place update)을 수행한다.
이러한 플래시 메모리의 특성에 따라 FTL(flash translation layer, 이하 'FTL'이라 함)은 운영 체계(OS)에 포함된 FAT 등과 같은 기존 파일 시스템과 플래시 메모리 API를 중간에서 맞춰주는 역할을 수행함으로써, 기존 파일 시스템을 사용하는 응용프로그램은 프로그램의 수정없이 플래시 메모리를 사용할 수 있다.
특히, FTL은 예를 들면, 위어 레벨링(wear leveling), 매핑(mapping), 페이지와 블록 관리 전략 등의 기능을 수행하는데, 위어 레벨링은 블록의 소거 회수가 제한적인 문제를 해결하기 위해 전체 블록을 고르게 사용될 수 있도록 하며, 매핑은 기존 파일 시스템의 논리적 페이지 아이디(ID)를 실제 플래시 메모리의 물리적 블록, 페이지 등에 따라 매핑하는 것으로 이를 위해 별로 매핑 테이블을 유지 및 관리하게 된다. 이러한 매핑 기법으로는 예를 들면, 섹터 매핑(또는 페이지 매핑), 블록 매핑, 섹터 매핑과 블록 매핑이 혼합된 하이브리드 매핑 기법 등이 있다.
또한, 플래시 메모리의 성능 및 효율을 향상시키기 위해 페이지와 블록의 관리 기법이 제안되어 있는데, 예를 들면, 여유 공간 기법(spare space method), 복사 블록 기법(mirror block method), 로그 블록 기법(log block method) 등이 있고, 이러한 기법들은 이미 기록되어 있는 페이지에 재기록이 요청(update)되면 소거를 수행하지 않고, 더욱 효율적으로 동작하기 위한 기법으로서, 기존 블록에 여 유 섹터들, 별도 복사 블록, 로그 블록 등을 이용하여 소거 회수를 감소시키고 간접적으로 기록함으로써, 전체적인 시스템의 성능을 향상시킬 수 있다.
이러한 플래시 메모리의 FTL 위치에 따라 개발된 제품들은 디지털 카메라의 이미지 파일 또는 MP3 플레이어의 MP3 파일 등에서 순차적 접근(sequential access)을 수행할 경우 향상된 성능을 나타낸다.
하지만, 최근에는 낸드 플래시 메모리를 데이터베이스 시스템의 저장소로 많이 이용하고 있는데, 데이터베이스 시스템의 경우 데이터 읽기, 데이터 쓰기 등이 랜덤(random)하고, 랜덤 쓰기(random write)의 경우 각각의 FTL 기법들에 의해 블록의 병합 및 소거가 순차적인 접근에 비해 상대적으로 많이 발생하기 때문에 시스템 성능이 저하되는 문제점이 있었다.
이에 따라, 본 발명은 랜덤 접근(random access)을 순차적인 접근으로 페이지를 재매핑함으로써, 시스템 성능을 향상시킬 수 있는 공간 데이터의 페이지 매핑 방법을 제공하고자 한다.
또한, 본 발명은 플래시 메모리를 지도 데이터의 저장소로 활용할 경우 공간 데이터의 공간적 근접성에 따라 페이지를 재매핑함으로써, 시스템 성능을 향상시킬 수 있는 공간 데이터의 페이지 매핑 방법을 제공하고자 한다.
본 발명은, 공간에 대한 정보를 담고 있는 공간 데이터를 플래시 메모리의 페이지에 매핑하는 방법에 있어서, 공간적 근접성에 따라 상기 공간 데이터에 상기 공간적 근접성을 나타내는 공간 색인을 부여하는 단계와, 상기 공간 색인이 수행된 상기 공간 데이터에 대해 매핑 테이블에 상기 공간적 근접성에 따라 논리 페이지 또는 물리 페이지를 매핑시키는 단계와, 상기 공간 데이터가 변경될 경우 상기 매핑 테이블의 여유 논리 페이지 또는 여유 블록에 변경 페이지를 재매핑하는 단계를 포함하는 공간 데이터의 페이지 매핑 방법을 제공한다.
본 발명은, 공간 데이터를 공간적 근접성에 따라 공간 그리드 방식으로 공간 색인을 수행하고, 공간적 근접성에 따른 논리 페이지 또는 물리 페이지를 할당하는 매핑 테이블을 통해 공간 데이터의 매핑 또는 변경 데이터의 재매핑을 수행함으로써, 데이터 페이지의 병합 또는 소거 횟수를 더욱 감소시켜 플래시 메모리 성능을 더욱 향상시킬 수 있다.
본 발명은, 공간 데이터를 공간적 근접성에 따라 공간 그리드 방식으로 공간 색인을 수행하고, 공간적 근접성에 따른 논리 페이지 또는 물리 페이지를 할당하는 매핑 테이블을 통해 공간 데이터의 매핑 또는 변경 데이터의 재매핑을 수행한다는 것이며, 이러한 기술적 수단을 통해 종래 기술에서의 문제점을 해결할 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 상세하게 설명한다.
먼저, 본 발명의 실시 예를 설명하기 전에, 종래에 수행되고 있는 공간 데이터에 대한 페이지 매핑에 대해 설명한다.
도 1a 및 도 1b는 종래에 따른 페이지 재매핑 기법의 덮어쓰기 연산과 블록 소거 연산을 예시한 도면이다.
도 1a 및 도 1b를 참조하면, API에서 write(2), write(2), write(2), write(2)가 요청되면, write(1,0), write(1,0), write(1,0), write(1,0)로 호출하는 것이 아니라 도 1a에 도시한 바와 같이 write(5,0), write(5,1), write(5,2), write(5,3)로 호출하여 데이터 블록에 기록함으로써, 병합 또는 소거를 감소시켜 시스템 성능을 향상시킬 수 있다.
또한, 도 1b에 도시한 바와 같이 페이지 재매핑 기법을 통해 블록 0에 무효 페이지(invalid page)만 남게 되면 해당 블록을 소거함으로써, 새로운 여유 블록으로 남길 수 있는데, 라운드 로빈 방식으로 여유 블록이 쓰여질 때마다 다음 여유 블록을 할당하는 방식으로 인해 덮어쓰기에 대한 소거 연산을 감소시킬 수 있으며, 전체 블록에 대한 평준화가 이루어져 시스템 성능을 향상시킬 수 있다.
이러한 페이지 재매핑으로 인해 페이지의 데이터에 관계없이 데이터 페이지를 순차적으로 재매핑함으로써, 시스템 성능을 향상시킬 수 있다.
다음에, 공간 데이터에 대한 공간 색인과 논리 페이지 및 물리 페이지의 매핑 테이블을 구성하며, 변경된 공간 데이터에 대한 데이터 페이지를 재매핑하는 과정에 대해 설명한다.
도 2는 종래에 따라 공간 색인된 공간 데이터의 변경에 따라 페이지를 재매 핑하는 과정을 나타낸 플로우차트이다.
도 2를 참조하면, 플래시 메모리에 공간 데이터를 매핑하는 모드에서(단계202), 예를 들면, 네비게이션용 맵 데이터 등과 같은 공간 데이터에 대해 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display) 등의 데이터로 구분하고, 페이지 단위의 저장을 위해 공간 그리드 방식으로 전체 노드, 전체 링크, 전체 주기, 전체 디스플레이의 순서에 따라 공간 색인을 수행(부여)한다(단계204).
그리고, 순서에 따라 공간 색인이 수행된 공간 데이터에 대응하는 매핑 테이블을 통해 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display) 등의 데이터에 대한 논리 페이지를 할당(매핑)시키고, 이에 대응하도록 플래시 메모리의 블록별, 섹터별로 할당시켜 물리 페이지를 매핑시킨다(단계206). 이러한 공간 색인과 논리 페이지 및 물리 페이지의 매핑을 통해 플래시 메모리에 공간 데이터를 저장한다.
예를 들면, 도 3a 내지 도 3c는 종래에 따라 공간 데이터에 대한 공간 색인과 논리 페이지 및 물리 페이지의 매핑 테이블을 나타낸 도면으로, 공간 데이터인 내비게이션용 맵 데이터는 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display) 등의 데이터로 크게 구분되고, 그 데이터 관리는 예를 들면, 공간 그리드 방식 등의 공간 색인에 의하여 페이지 단위로 저장된다.
그리고, 도 3a에 도시된 바와 같이 공간을 영역에 의해서 분할하고 각각의 분할된 영역에 0개 이상의 페이지가 할당되며, 그 데이터 종류에 의하여 데이터 페이지 순서가 결정되고, 그 데이터 페이지 순서대로 파일 시스템의 쓰기 API를 호출 하여 데이터를 구성하게 된다. 여기에서, 도 3b에서는 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display)에 대한 데이터가 데이터 페이지 순서대로 할당된 논리 페이지의 매핑 테이블을 나타내며, 도 3c에서는 플래시 메모리의 블록과 섹터(페이지)에 따라 노드(N), 링크(L), 주기(P), 디스플레이(D)에 대한 데이터가 데이터 페이지 순서대로 할당된 물리 페이지의 매핑 테이블을 나타낸다.
한편, 상술한 바와 같은 플래시 메모리를 저장 수단으로 사용하는 데이터베이스 시스템에서는 예를 들면, 응용 프로그램을 통한 데이터의 업데이트 등과 같이 공간 데이터가 변경되는지를 체크한다(단계208).
상기 단계(208)에서의 체크 결과, 공간 데이터가 변경될 경우 그 변경 데이터(즉, 변경된 논리 데이터)에 대응하여 후위의 여유 논리 페이지에 예를 들면, 라운드 로빈 방식 등과 같이 순차적으로 변경된 논리 페이지를 재매핑시킨다(단계210). 이 때, 원래의 위치에 있는 변경 데이터는 무효화시킨다.
이와 함께, 변경된 데이터에 대응하여 후위의 여유 블록에 순차적으로 변경된 물리 페이지를 재매핑시킨다(단계212).
예를 들면, 도 4a 내지 도 4c는 종래에 따라 변경된 공간 데이터에 대한 공간 색인과 논리 페이지 및 물리 페이지의 재매핑 테이블을 나타낸 도면으로, 도 4a에 도시한 바와 같이 공간 페이지에 변경(update, 파란색 영역)이 발생하면 논리 페이지의 재매핑에 의한 매핑 테이블은 도 4b에 도시한 바와 같이 변경되는데, 원래 데이터는 무효화(Invalidate)되며, 여유 논리 페이지에 라운드 로빈 방식으로 매핑 테이블의 후위에 추가되는 방식으로 논리 페이지가 재매핑되고, 그에 대응하 는 물리 페이지의 매핑 테이블은 도 4c에 도시한 바와 같다. 즉, 공간 페이지에 변경이 발생하면 실제 FTL에서는 이를 여유 블록의 후위에 계속 추가하게 되며, 기존 데이터 블록에는 무효화(I) 된 페이지들이 발생하게 된다.
그리고, 데이터베이스 시스템에서는 변경된 페이지를 재매핑할 수 있는 여유 블록이 있는지를 체크한다(단계214).
상기 단계(214)에서의 체크 결과, 여유 블록이 있는 경우 변경된 페이지에 대한 논리 페이지 및 물리 페이지의 재매핑을 수행하는 단계208 내지 단계212의 과정을 반복 수행하고, 여유 블록이 없는 경우 유효 데이터의 포함 여부에 관계없이 적어도 두 개의 블록을 병합하거나 임의의 블록을 소거한다(단계216). 즉, 공간 데이터의 재매핑을 지속적으로 수행하는 중에 여유 블록이 없는 경우 특정 블록을 소거해야만 하는데, 도4c에 도시한 바와 같이 데이터 블록의 무효 페이지가 일부분일지라도 병합(데이터 블록과 후위에 추가된 여유 블록)과 소거가 발생하게 된다.
따라서, 공간 데이터에 대한 공간 색인, 논리 페이지와 물리 페이지의 매핑을 통해 공간 데이터를 플래시 메모리에 구성하고, 변경 페이지에 대해 후위의 여유 논리 페이지에 변경 페이지를 재매핑하면서 후위의 여유 블록에 변경 페이지를 재매핑함으로써, 병합 또는 소거 발생 회수를 감소시켜 데이터베이스 시스템 성능을 향상시킬 수 있다.
이 때, 실제 시스템에 적용할 경우에는 논리 페이지의 매핑 및 재매핑하는 논리 페이지 매핑 모듈, 물리 페이지의 매핑 및 재매핑하는 물리 페이지 매핑 모듈 중 어느 하나를 적용할 수 있다.
다음에, 본 발명의 실시 예에 따라 병합 및 소거 연산을 더욱 감소시켜 시스템 성능을 향상시킬 수 있도록 공간 데이터를 해당 데이터 페이지의 위치 접근성(locality approximation)을 고려하여 페이지를 재매핑하는 기법에 대해 설명한다.
도 5는 본 발명의 일 실시 예에 따라 위치 근접성을 고려하여 공간 색인된 공간 데이터의 변경에 따라 페이지를 재매핑하는 과정을 나타낸 플로우차트이다.
도 5를 참조하면, 플래시 메모리에 공간 데이터를 매핑하는 모드에서(단계502), 예를 들면, 네비게이션용 맵 데이터 등과 같은 공간 데이터에 대해 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display) 등의 데이터로 구분하고, 페이지 단위의 저장을 위해 공간 그리드 방식으로 각각의 공간적 근접성(즉, 위치 근접성)에 따라 공간 색인을 수행(부여)한다(단계504). 이러한 공간 데이터는, 예를 들면, 네비게이션 프로그램 등에 사용되는 지도 데이터를 의미하며, 공간 색인의 경우 공간을 공간 그리드에 의하여 복수의 인접 구역으로 나눈 후에, 복수의 인접 구역에서 동일한 인접 구역 내에 속하는 공간 데이터에 대해 동일한 공간 색인을 부여하는 방식으로 수행될 수 있다.
그리고, 공간적 근접성(즉, 위치 근접성)에 따라 공간 색인이 수행된 공간 데이터에 대응하는 매핑 테이블을 통해 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display) 등의 데이터에 대한 논리 페이지를 할당(매핑)시키고, 이에 대응하도록 플래시 메모리의 블록별, 섹터별로 할당시켜 물리 페이지를 매핑시킨다(단계506). 이러한 공간 색인과 논리 페이지 및 물리 페이지의 매핑을 통해 플래시 메 모리에 공간적 근접성을 고려하여 공간 데이터를 저장한다.
예를 들면, 예를 들면, 도 6a 내지 도 6c는 본 발명의 실시 예에 따라 공간 데이터의 위치 접근성을 고려한 공간 색인과 논리 페이지 및 물리 페이지의 매핑 테이블을 나타낸 도면으로, 공간 데이터는 그 특성상 근접한 위치에 존재하는 데이터가 함께 액세스될 가능성이 크며, 데이터의 변경도 마찬가지로 근접한 위치의 데이터가 함께 변경될 가능성이 크다.
이에 따라, 도 6a에 도시한 바와 같이 공간 데이터의 공간 색인을 위치 순서별로 노드(Node), 링크(Link), 주기(POI), 디스플레이(Display) 각각의 동일한 영역을 순서대로 페이지를 할당(예를 들면, 1-2-3-4 또는 13,14-15,16-17-18 등)하고, 도6b에 도시한 바와 같이 위치 순서별로 논리 페이지가 할당된 매핑 테이블로 나타낼 수 있고, 그에 대응하여 물리 페이지가 할당된 매핑 테이블을 도 6c에 도시한 바와 같이 나타낼 수 있다.
한편, 상술한 바와 같은 플래시 메모리를 저장 수단으로 사용하는 데이터베이스 시스템에서는 예를 들면, 응용 프로그램을 통한 데이터의 업데이트 등과 같이 공간 데이터가 변경되는지를 체크한다(단계508).
상기 단계(508)에서의 체크 결과, 공간 데이터가 변경될 경우 그 변경 데이터(즉, 변경된 논리 데이터)에 대응하여 후위의 여유 논리 페이지에 예를 들면, 라운드 로빈 방식 등과 같이 순차적으로 변경된 논리 페이지를 재매핑시킨다(단계510). 이 때, 원래의 위치에 있는 데이터는 무효화시킨다.
이와 함께, 변경된 데이터에 대응하여 후위의 여유 블록에 순차적으로 변경 된 물리 페이지를 재매핑시킨다(단계512).
예를 들면, 한편, 도 7a 내지 도 7c는 본 발명의 실시 예에 따라 변경된 공간 데이터의 위치 접근성을 고려한 공간 색인과 논리 페이지 및 물리 페이지의 재매핑 테이블을 나타낸 도면으로, 도 7a에 도시한 바와 같이 공간 데이터가 변경(파란색 영역)되면, 도 7b에 도시한 바와 같이 여유 논리 페이지에 변경된 논리 페이지를 공간적 근접성에 따라 재매핑할 수 있으며, 그에 대응하여 도 7c에 도시한 바와 같이 여유 블록에 변경된 물리 페이지를 공간적 근접성에 따라 재매핑할 수 있다.
그리고, 데이터베이스 시스템에서는 변경된 페이지를 재매핑할 수 있는 여유 블록이 있는지를 체크한다(단계514).
상기 단계(514)에서의 체크 결과, 여유 블록이 있는 경우 변경된 페이지에 대한 논리 페이지 및 물리 페이지의 재매핑을 수행하는 단계508 내지 단계512의 과정을 반복 수행하고, 여유 블록이 없는 경우 유효 데이터의 포함 여부에 관계없이 적어도 두 개의 블록을 병합하거나 임의의 블록을 소거한다(단계516). 즉, 도 7c에 도시한 바와 같은 방식으로 여유 블록에 물리 페이지를 재매핑한 후 여유 블록이 없게 되면 소거 대상 블록이 그림과 같이 무효화(Invalid)된 섹터가 동일 블록에 모여있을 가능성이 커지기 때문에 병합 및 소거의 발생이 감소되어 시스템 성능을 더욱 향상시킬 수 있다.
따라서, 공간 데이터에 대한 공간 색인, 논리 페이지와 물리 페이지의 매핑을 통해 공간 데이터를 플래시 메모리에 구성하고, 변경 페이지에 대해 후위의 여 유 논리 페이지에 변경 페이지를 재매핑하면서 후위의 여유 블록에 변경 페이지를 재매핑함으로써, 병합 또는 소거 발생 회수를 감소시켜 데이터베이스 시스템 성능을 향상시킬 수 있다.
한편, 상술한 본 발명의 일 실시 예에서는 공간적 근접성에 따라 논리 페이지의 매핑 및 재매핑과 물리 페이지의 매핑 및 재매핑을 함께 수행하는 것으로 하여 설명하였으나, 실제 시스템에 적용할 경우에는 공간적 근접성에 따라 논리 페이지의 매핑 및 재매핑하는 논리 페이지 매핑 모듈, 공간적 근접성에 따라 물리 페이지의 매핑 및 재매핑하는 물리 페이지 매핑 모듈 중 어느 하나를 적용할 수 있다.
도 8은 본 발명의 실시 예에 따라 여유 블록을 만드는 기법을 설명하기 위한 도면으로, 물리 페이지의 매핑 테이블에서 변경(update)된 물리 페이지를 여유 블록(spare block)인 Block 4에 순차적으로 재매핑(즉, 라운드 로빈 방식으로 후위에 쓰기를 수행)하고, 무효화(Invalid)된 블록이 꽉 차게 되면 이를 소거하여 여유 블록으로 만듦으로써, 위어 레벨링(wear leveling, 블록에 대한 평준화)이 보다 더 잘 수행될 수 있다.
상술한 바와 같이 본 발명은 공간적 근접성에 의한 공간 데이터의 페이지를 할당(매핑)한 후에, 공간적 근접성에 따라 변경된 데이터의 페이지를 재매핑함으로써, 공간적 근접성에 의한 논리 페이지의 재매핑 기법(LSPRM: logical spatial page re-mapping methodology)과 공간적 근접성에 의한 물리 페이지의 재매핑 기법(PSPRM: physical spatial page re-mapping methodology)을 이용하여 병합 또는 소거의 발생 회수를 감소시켜 시스템 성능을 향상시킬 수 있다.
한편, 도 9a 및 도 9b는 본 발명의 실시 예에 따라 공간적 근접성을 고려한 페이지 매핑을 수행하는 매핑 장치의 적용을 예시한 도면으로, 첫 번째 그림은 낸드 플래시 메모리를 구동하는 플래시 디바이스 드라이브와, 플래시 디바이스 드라이브 및 플래시 파일 시스템을 연동시키는 FTL과, 파일 시스템과, 공간적 근접성을 고려한 논리 페이지의 재매핑을 수행하는 LSPRM 모듈을 포함하는 플래시 메모리 장치를 나타내고, 두 번째 그림은 낸드 플래시 메모리를 구동하는 플래시 디바이스 드라이브와, 플래시 디바이스 드라이브를 이용한 플래시 메모리를 구동하기 위한 전용 파일 시스템과, 공간적 근접성을 고려한 논리 페이지의 재매핑을 수행하는 LSPRM 모듈을 포함하는 전용 플래시 메모리 장치를 나타내며, 세 번째 그림은 낸드 플래시 메모리를 블록 디바이스 드라이버에서 구동할 수 있도록 연동시키는 FTL과, FTL을 통해 연동된 낸드 플래시 메모리를 구동하는 브록 디바이스 드라이버와, 파일 시스템과, 공간적 근접성을 고려한 논리 페이지의 재매핑을 수행하는 LSPRM 모듈을 포함하는 플래시 메모리 장치를 나타낸다. 여기에서, 세 번째의 경우 플래시 디스크, USB 플래시 드라이브, USB 메모리 카드 등을 포함하는 플래시 메모리 장치를 의미한다.
여기에서, 도 9a에 도시한 바와 같이 각 파일 시스템의 상위의 어플리케이션(application)에 공간적 근접성을 이용한 논리 페이지 매핑 모듈(즉, LSPRM 모듈)이 위치하는 경우 기존 FTL 또는 디바이스 드라이브(Device Driver)의 변경 없이 적용이 가능하며, 어플리케이션단에서 매핑 모듈을 이용하여 하위 레벨의 파일 시스템, FTL 등의 변경 없이 적용할 수 있다.
또한, 도 9b에 도시한 바와 같이 공간적 근접성을 이용한 물리 페이지 매핑 모듈(즉, PSPRM 모듈)을 FTL에 포함시키거나 FTL을 대체할 수 있고, FTL을 포함하는 전용 플래시 파일 시스템의 내부에 포함될 수 있는데, 하위 레벨에 직접 적용하여 플래시 디바이스 드라이버를 직접 핸들링 함으로써 물리적 블록, 섹터(페이지)를 직접 제어할 수 있어 논리 페이지 재매핑의 경우보다 더욱 향상된 성능을 보장할 수 있다.
이상의 설명에서는 본 발명의 다양한 실시 예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.
도 1a 및 도 1b는 종래에 따른 페이지 재매핑 기법의 덮어쓰기 연산과 블록 소거 연산을 예시한 도면,
도 2는 종래에 따라 공간 색인된 공간 데이터의 변경에 따라 페이지를 재매핑하는 과정을 나타낸 플로우차트,
도 3a 내지 도 3c는 종래에 따라 공간 데이터에 대한 공간 색인과 논리 페이지 및 물리 페이지의 매핑 테이블을 나타낸 도면,
도 4a 내지 도 4c는 종래에 따라 변경된 공간 데이터에 대한 공간 색인과 논리 페이지 및 물리 페이지의 재매핑 테이블을 나타낸 도면,
도 5는 본 발명의 일 실시 예에 따라 위치 근접성을 고려하여 공간 색인된 공간 데이터의 변경에 따라 페이지를 재매핑하는 과정을 나타낸 플로우차트,
도 6a 내지 도 6c는 본 발명의 실시 예에 따라 공간 데이터의 위치 접근성을 고려한 공간 색인과 논리 페이지 및 물리 페이지의 매핑 테이블을 나타낸 도면,
도 7a 내지 도 7c는 본 발명의 실시 예에 따라 변경된 공간 데이터의 위치 접근성을 고려한 공간 색인과 논리 페이지 및 물리 페이지의 재매핑 테이블을 나타낸 도면,
도 8은 본 발명의 실시 예에 따라 여유 블록을 만드는 기법을 설명하기 위한 도면,
도 9a 및 도 9b는 본 발명의 실시 예에 따라 공간적 근접성을 고려한 페이지 매핑을 수행하는 매핑 장치의 적용을 예시한 도면.

Claims (8)

  1. 공간에 대한 정보를 담고 있는 공간 데이터를 플래시 메모리의 페이지에 매핑하는 방법에 있어서,
    공간적 근접성에 따라 상기 공간 데이터에 상기 공간적 근접성을 나타내는 공간 색인을 부여하는 단계와,
    상기 공간 색인이 수행된 상기 공간 데이터에 대해 매핑 테이블에 상기 공간적 근접성에 따라 논리 페이지 또는 물리 페이지를 매핑시키는 단계와,
    상기 공간 데이터가 변경될 경우 상기 매핑 테이블의 여유 논리 페이지 또는 여유 블록에 변경 페이지를 재매핑하는 단계
    를 포함하는 공간 데이터의 페이지 매핑 방법.
  2. 제 1 항에 있어서,
    상기 공간 색인을 부여하는 단계는, 상기 공간을 공간 그리드에 의하여 복수의 인접 구역으로 나누는 단계를 포함하는 공간 데이터의 페이지 매핑 방법.
  3. 제 2 항에 있어서,
    상기 공간 색인을 부여하는 단계는, 상기 복수의 인접 구역 중 동일한 인접 구역 내에 속하는 상기 공간 데이터에 대하여 동일한 공간 색인을 부여하는 단계를 포함하는 공간 데이터의 페이지 매핑 방법.
  4. 제 3 항에 있어서,
    상기 매핑시키는 단계는, 상기 동일한 공간 색인을 갖는 상기 공간 데이터를 순서대로 인접시켜 매핑하는 공간 데이터의 페이지 매핑 방법.
  5. 제 1 항에 있어서,
    상기 공간 데이터는, 네비게이션 프로그램에 사용되는 지도 데이터인 공간 데이터의 페이지 매핑 방법.
  6. 제 5 항에 있어서,
    상기 공간 데이터는, 상기 공간에 대한 노드 데이터, 링크 데이터, 주기(POI) 데이터, 디스플레이 데이터를 포함하는 공간 데이터의 페이지 매핑 방법.
  7. 제 1 항에 있어서,
    상기 변경 페이지를 재매핑하는 단계는, 상기 여유 논리 페이지 또는 여유 블록에 라운드 로빈 방식으로 상기 변경 페이지를 할당하는 공간 데이터의 페이지 매핑 방법.
  8. 제 1 항에 있어서,
    상기 변경 페이지를 재매핑하는 단계는, 상기 공간 데이터가 변경된 기존 데 이터를 무효화시키는 공간 데이터의 페이지 매핑 방법.
KR1020090029099A 2008-12-01 2009-04-03 공간 데이터의 페이지 매핑 방법 KR101155566B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080120785 2008-12-01
KR20080120785 2008-12-01

Publications (2)

Publication Number Publication Date
KR20100062842A KR20100062842A (ko) 2010-06-10
KR101155566B1 true KR101155566B1 (ko) 2012-06-19

Family

ID=42363047

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090029099A KR101155566B1 (ko) 2008-12-01 2009-04-03 공간 데이터의 페이지 매핑 방법

Country Status (1)

Country Link
KR (1) KR101155566B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977610B2 (en) 2015-06-22 2018-05-22 Samsung Electronics Co., Ltd. Data storage device to swap addresses and operating method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364450A (zh) * 2011-06-27 2012-02-29 浪潮电子信息产业股份有限公司 一种NandFlash物理地址和逻辑地址映射的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070037022A (ko) * 2005-09-30 2007-04-04 삼성전자주식회사 플래시 메모리, 이를 위한 맵핑 장치 및 방법
KR20070073502A (ko) * 2006-01-05 2007-07-10 삼성전자주식회사 데이터를 플래쉬 메모리에 저장하는 방법 및 장치
KR20080026393A (ko) * 2006-09-20 2008-03-25 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
KR100874013B1 (ko) * 2007-05-11 2008-12-17 한국전자통신연구원 플래시 메모리의 데이터 관리 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070037022A (ko) * 2005-09-30 2007-04-04 삼성전자주식회사 플래시 메모리, 이를 위한 맵핑 장치 및 방법
KR20070073502A (ko) * 2006-01-05 2007-07-10 삼성전자주식회사 데이터를 플래쉬 메모리에 저장하는 방법 및 장치
KR20080026393A (ko) * 2006-09-20 2008-03-25 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
KR100874013B1 (ko) * 2007-05-11 2008-12-17 한국전자통신연구원 플래시 메모리의 데이터 관리 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977610B2 (en) 2015-06-22 2018-05-22 Samsung Electronics Co., Ltd. Data storage device to swap addresses and operating method thereof
US10579279B2 (en) 2015-06-22 2020-03-03 Samsung Electronics Co., Ltd. Data storage device and data processing system having the same

Also Published As

Publication number Publication date
KR20100062842A (ko) 2010-06-10

Similar Documents

Publication Publication Date Title
US9842030B2 (en) Data storage device and flash memory control method
US9122592B2 (en) Flash memory device with multi-level cells and method of writing data therein
KR101185617B1 (ko) 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US7752412B2 (en) Methods of managing file allocation table information
CN103562842B (zh) 用于存储设备的用低预留空间实现低写入放大的方法
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US8239619B2 (en) Method and apparatus for high-speed byte-access in block-based flash memory
US7681008B2 (en) Systems for managing file allocation table information
US20060020744A1 (en) Method and apparatus for maintaining data on non-volatile memory systems
JP2003085037A (ja) メモリ管理方法
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
KR20080077668A (ko) 플래시 메모리 관리 시스템 및 방법
TW200417856A (en) Method and apparatus for splitting a logical block
CN101288054A (zh) 快闪文件***中的虚拟至物理地址翻译
US20100042775A1 (en) Block management method for flash memory, and storage system and controller using the same
KR20080038368A (ko) 데이터 파일을 직접 저장하는 재프로그램가능 비휘발성메모리에 파일 데이터의 인덱싱
CN117555478A (zh) 一种基于闪存的模拟eeprom读写方法
KR101155566B1 (ko) 공간 데이터의 페이지 매핑 방법
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
WO2008042594A1 (en) Managing file allocation table information
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
KR100638638B1 (ko) 플래시 메모리의 제어 방법
US11182286B2 (en) Data storage device and control method for non-volatile memory
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
KR20050009045A (ko) 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee