KR101626218B1 - 블록 기반의 페이지 매핑 방법 - Google Patents

블록 기반의 페이지 매핑 방법 Download PDF

Info

Publication number
KR101626218B1
KR101626218B1 KR1020140163444A KR20140163444A KR101626218B1 KR 101626218 B1 KR101626218 B1 KR 101626218B1 KR 1020140163444 A KR1020140163444 A KR 1020140163444A KR 20140163444 A KR20140163444 A KR 20140163444A KR 101626218 B1 KR101626218 B1 KR 101626218B1
Authority
KR
South Korea
Prior art keywords
block
physical
information
logical
logical block
Prior art date
Application number
KR1020140163444A
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 KR1020140163444A priority Critical patent/KR101626218B1/ko
Application granted granted Critical
Publication of KR101626218B1 publication Critical patent/KR101626218B1/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
    • 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/0607Interleaved addressing
    • 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/0615Address space extension

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

본 발명은 페이지 매핑 방법에 관한 것이다.
구체적으로 페이지 매핑 방법은 논리 페이지 정보를 이용해 추출한 논리 블록의 인덱스 정보 및 오프셋 정보를 이용하여 논리 블록에 할당된 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하고, 추출한 논리 블록의 인덱스 정보 및 오프셋 정보를 통해 물리 페이지 정보를 확인함으로써, 확인된 물리 페이지 정보에 대응하는 물리 블록에 대한 블록 단위를 상기 논리 블록에 매핑하는 방법을 제안하고 있다.

Description

블록 기반의 페이지 매핑 방법{BLOCK BASED PAGE MAPPING METHOD}
아래의 설명은 적은 메모리 사용을 위한 블록 기반의 페이지 매핑 방법에 관한 것으로, 구체적으로는 메모리에서 동작하는 연산에 대한 성능을 향상시키기 위해 메모리를 구성하는 논리 블록과 물리 블록 간의 매핑을 보다 효율적으로 수행하기 위한 페이지 매핑 방법에 관한 것이다.
최근에는 휴대폰, 태블릿 등 모바일 시스템이 발달함에 따라 PC를 대체할 만큼 그 사용량이 증가하였다. 모바일 시스템은 서버와 달리 멀티 태스킹 환경에서의 사용자 사용 패턴에 따라 저장장치에 전달되는 워크로드의 특성에 대한 차이가 크다. 이러한 문제점을 극복하기 위해 모바일 시스템의 스토리지 성능에 대하여 연구가 진행되었으나, 이에 대한 심도있는 연구가 부족한 실적이다.
모바일 시스템은 일반적으로 낸드 플래시 기반의 저장장치를 사용한다. 여기서, 낸드 플래시 기반의 저장장치에 대한 성능은 I/O 요청을 처리하는 FTL과 가용 가능한 SRAM의 크기에 의해 크게 좌우된다. 다시 말해, 저장장치에 대한 성능에 있어, 모바일 시스템은 다양한 어플리케이션을 동시에 사용하는 모바일 시스템의 사용자에 따른 패턴에 대응하여 복합적인 I/O 패턴을 효율적으로 처리할 수 있는 FTL이 필수적으로 요구된다.
또한, 급격히 증가하는 모바일 시스템의 저장장치의 용량은 FTL이 필요로 하는 맵 등의 메타데이터 양 또한 이에 비례해 증가하게 된다. 따라서, 최소한의 SRAM을 기반으로 MAP을 효율적으로 운용하며 쓰기 성능을 최대한 향상 시킬 수 있는 고효율 FTL 및 MAP 운용 기법의 설계 및 개발이 필요하다
본 발명의 목적은 메모리를 에서 동작하는 연산에 대한 성능을 향상시키는 페이지 매핑 방법을 제안하고자 한다.
본 발명의 다른 목적은 메모리를 구성하는 논리 블록과 물리 블록에 있어, 물리 블록을 동적으로 논리 블록에 할당하는 페이지 매핑 방법을 제안하고자 한다.
일실시예에 따른 페이지 매핑 방법은 논리 페이지 정보를 이용하여 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계; 상기 추출된 인덱스 정보 및 오프셋 정보를 이용하여 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계; 상기 추출한 물리 블록의 인덱스 정보 및 오프셋 정보에 대응하여 물리 페이지 정보를 확인하는 단계; 및 상기 확인된 물리 페이지 정보에 대응하는 물리 블록에 대한 블록 단위를 상기 논리 블록에 매핑하는 단계를 포함할 수 있다.
일실시예에 따른 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계는 상기 논리 페이지 정보에 대응하여 논리 블록에 대한 위치를 나타내는 블록 정보를 기반으로 논리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다.
일실시예에 따른 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계는 상기 논리 블록에 할당된 물리 블록에 대한 정보를 포함하는 맵 테이블을 이용하여 물리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다.
일실시예에 따른 논리 블록은 상기 논리 블록에 대한 블록 단위의 크기 및 논리 블록에 대한 블록 단위의 크기를 고려하여 적어도 하나의 물리 블록이 할당될 수 있다.
일실시예에 따른 논리 블록은 상기 논리 블록에 할당된 물리 블록에 대한 여유 블록의 존재 여부에 따라 상기 물리 블록이 추가로 할당할 수 있다.
일실시예에 따른 페이지 매핑 방법은 블록 단위로 구분된 논리 블록에 대한 제어 명령을 수신하는 단계; 상기 제어 명령에 대응하여 상기 논리 블록의 크기와 논리 블록에 할당된 물리 블록의 크기를 비교하는 단계; 상기 비교 결과에 대응하여 논리 블록에 할당된 물리 블록에 대한 여유 블록이 존재하는지 여부를 확인하는 단계; 상기 확인 결과에 대응하여 상기 논리 블록에 물리 블록을 추가로 할당하는 단계; 및 상기 물리 블록이 추가로 할당된 논리 블록에 상기 물리 블록에 대한 블록 단위를 매핑하는 단계를 포함할 수 있다.
일실시예에 따른 매핑하는 단계는 상기 제어 명령에 따라 논리 페이지 정보를 이용하여 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계; 상기 추출한 인덱스 및 오프셋 정보를 이용하여 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계; 상기 추출한 물리 블록의 인덱스 정보 및 오프셋 정보에 대응하여 물리 페이지 정보를 확인하는 단계; 및 상기 확인된 물리 페이지 정보에 대응하는 물리 블록에 대한 블록 단위를 상기 논리 블록에 매핑하는 단계를 포함할 수 있다.
일실시예에 따른 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계는 논리 페이지 정보에 대응하여 논리 블록에 대한 위치를 나타내는 블록 정보를 기반으로 논리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다.
일실시예에 따른 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계는 상기 논리 블록에 할당된 물리 블록에 대한 정보를 포함하는 맵 테이블을 이용하여 물리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다.
일실시예에 따른 논리 블록은 상기 물리 블록에 대한 블록 단위의 크기 및 논리 블록에 대한 블록 단위의 크기를 고려하여 적어도 하나의 물리 블록이 할당될 수 있다.
페이지 매핑 방법은 메모리에서 수행하는 쓰기, 읽기 동작에 대한 지우기 회수를 최소화하고 맵핑 테이블 캐시의 히트 율을 증가시킴으로써, 메모리에서 동작하는 연산에 대한 성능을 향상시킬 수 있다.
페이지 매핑 방법은 메모리의 제한된 환경에서 물리 블록을 동적으로 논리 블록에 할당함으로써, 페이지를 매핑하기 위한 맵 테이블의 크기를 감소하고, worn-out 문제를 완화할 수 있다.
도 1은 일실시예에 따른 페이지 매핑 방법에 대한 구성을 도시한 도면이다.
도 2는 일실시예에 따른 페이지 매핑 방법에 사용되는 테이블에 대한 자료 구조를 도시한 도면이다.
도 3은 일실시예에 따른 페이지 매핑 방법의 동작 흐름을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 동적으로 물리 블록을 논리 블록에 할당하는 동작을 설명하기 위한 흐름도이다.
도 5는 일실시예에 따른 논리 블록과 물리 블록을 매핑하는 동작을 설명하기 위한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 페이지 매핑 방법에 대한 구성을 도시한 도면이다.
도 1을 참고하면, 페이지 매핑 방법은 논리 블록에서 요구하는 물리 블록을 동적으로 논리 블록에 할당함으로써, 메모리에 대한 사용을 최소화할 수 있는 는 방법을 제안할 수 있다.
페이지 매핑 방법은 블록 단위를 기반으로 논리 블록과 물리 블록 간에 페이지 매핑을 수행할 수 있다. 구체적으로 페이지 매핑 방법은 논리 페이지 정보(101)를 이용하여 논리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다. 여기서, 논리 페이지 정보(101)는 지역 페이지 번호(LPN: logical page number)일 수 있다.
페이지 매핑 방법은 논리 페이지 정보(101)를 기반으로 연산 동작을 수행하기 위한 논리 블록 번호 및 논리 블록 오프셋을 확인할 수 있다. 페이지 매핑 방법은 확인된 논리 블록 번호 및 논리 블록 오프셋을 이용하여 논리 블록(103)에 대한 인덱스 정보 및 오프셋 정보를 추출할 수 있다. 이 때, 논리 블록 번호는 맵 테이블(102)에 포함된 논리 블록에 대한 인덱스 정보의 주소를 포함할 수 있다. 그리고, 페이지 매핑 방법은 맵 테이블(102)의 주소에 따른 논리 블록의 인덱스 정보를 추출할 수 있다.
여기서, 논리 블록(103)은 메모리 중 논리 영역을 블록화 블록일 수 있다. 논리 블록(103)은 블록화된 크기가 동일하여 초기 설정이 가능할 수 있다. 또한, 논리 블록(103)은 물리 블록(104)이 미리 할당될 수 있으며, 물리 블록(104)에 대하여 추가 할당이 가능할 수 있다.
또한, 논리 블록(103)은 물리 블록(104)에 대한 블록 단위의 크기 및 논리 블록(103)에 크기를 고려하여 동적으로 물리 블록(104)이 할당될 수 있다. 논리 블록(103)은 읽기/쓰기 동작을 수행하기 위해 추가적인 물리 블록(104)이 요구될 경우에 대응하여 추가적으로 물리 블록(104)을 할당받을 수 있다. 일례로, 논리 블록(103)은 최소 0개부터 최대 ( 논리 블록 크기* 2)/(물리 블록 크기) 개까지 할당이 가능할 수 있다.
물리 블록은 블록 단위로 구분된 공간으로 데이터의 저장 공간에 연속적으로 위치한 메모리 중 물리 영역에 대하여 블록화된 영역일 수 있다. 물리 블록의 크기는 동일하며, 초기 설정이 가능할 수 있다. 또한, 물리 블록은 최대 한 개의 논리 블록에 할당될 수 있으며, 상황에 따라 논리 블록에 추가 할당될 수 있다.
그리고, 페이지 매핑 방법은 추출된 논리 블록의 인덱스 정보 및 오프셋 정보를 이용하여 상기 논리 블록에 할당된 물리 블록의 인덱스 번호 및 오프셋 정보를 추출할 수 있다. 페이지 매핑 방법은 블록 인덱스 테이블(103)을 통해 논리 블록에 할당된 물리 블록을 확인할 수 있다. 블록 인덱스 테이블(103)은 논리 블록에 임시적으로 할당된 물리 블록으로, 논리 블록의 메모리 사용량에 따라 상이한 개수로 물리 블록이 할당될 수 있다.
이후, 페이지 매핑 방법은 추출된 물리 블록의 인덱스 번호 및 오프셋 정보를 기반으로 물리 페이지 정보(104)를 확인할 수 있다. 그리고, 페이지 매핑 방법은 확인된 물리 페이지 정보(104)에 대응하는 물리 블록에 대한 블록 단위를 상기 논리 블록에 매핑할 수 있다.
페이지 매핑 방법은 동일한 메모리를 사용하는 저장장치의 메모리 환경에서 논리 블록에 물리 블록를 동적으로 할당할 수 있다. 이 후, 페이지 매핑 방법은 논리 블록에 할당된 물리 블록을 대상으로 매핑을 수행함에 따라 맵핑 테이블 캐시의 히트율을 증가시켜서 메모리 사용에 대한 성능을 향상시킬 수 있다.
또한, 페이지 매핑 방법은 논리 블록에 물리 블록을 동적으로 할당함으로써, 각 논리 블록이 사용하는 물리 블록에 대한 필요량에 따라 물리 블록을 상이하게 논리 블록에 할당할 수 있다. 따라서, 페이지 매핑 방법은 각 논리 블록에 상이한 물리 블록이 할당됨에 따라 물리 블록을 보다 효율적으로 사용할 수 있다.
도 2는 일실시예에 따른 페이지 매핑 방법에 대한 세부적인 구성을 도시한 도면이다.
도 2를 참고하면, 메모리는 읽기/쓰기 동작을 수행하며, 논리 블록과 물리 블록으로 구분될 수 있다. 일례로, 메모리는 낸드 플래시 메모리로써, 논리 영역과 물리 블록으로 메모리가 구분될 수 있다.
논리 블록(201)은 논리 영역이 블록화된 블록일 수 있다. 그리고, 논리 블록(201)은 물리 블록을 매핑하기 위한 맵 테이블(202)을 포함할 수 있다. 맵 테이블(202)은 논리 블록(201)에 할당된 물리 블록에 대한 정보를 포함할 수 있다.
구체적으로, 맵 테이블(202)은 물리 블록에 대한 물리 블록의 인덱스 정보(203) 및 물리 블록의 오프셋 정보(204)를 포함할 수 있다. 그리고, 맵 테이블(202)은 물리 블록에 대한 정보 및 물리 블록 번호(205)를 포함할 수 있다. 이 때, 물리 블록 번호(205)는 논리 블록(201)에 할당된 순서에 따라 순차적으로 입력될 수 있다. 다시 말해, 논리 블록(201)은 물리 블록의 연속적인 순서에 상관없이 할당이 가능하며, 이렇게 할당된 물리 블록은 가상의 순차 할당으로 제공될 수 있다.
즉, 논리 블록(201)에 할당된 물리 블록은 논리 블록(201)에서 사용할 수 있는 메모리의 주소를 제공할 뿐, 실질적으로 데이터를 쓰거나 읽기 위한 매핑이 이루어지지 않은 상태일 수 있다. 따라서, 본 발명은 논리 블록에 가상의 순차 할당된 물리 블록에 대하여 페이지 매핑 방법을 적용함으로써, 실질적인 데이터 작성을 위한 물리 블록을 논리 블록에 매핑할 수 있다.
여기서, 페이지 매핑 방법은 논리 블록(201)에 대하여 독립된 형태의 매핑 방식을 사용할 수 있다. 다시 말해, 페이지 매핑 방법은 논리 블록(201)을 물리 블록과 매핑하는 매핑 방식으로 논리 블록에 할당된 물리 블록만을 이용할 수 있다. 또한, 페이지 매핑 방법은 논리 블록에 할당된 물리 블록만을 대상으로 매핑을 수행하기 때문에 매핑 단위의 크기가 감소할 수 있다.
일례로, 도 2에 도시된 것과 같이 논리 블록은 4, 1, 6, 2번 해당하는 물리 블록을 미리 할당받을 수 있다. 이 때, 할당된 물리 블록은 위에서 언급한 바와 같이 가상의 순차 할당으로 제공될 수 있다. 그리고, 페이지 매핑 방법은 논리 블록에 할당된 물리 블록 4, 1, 6, 2에 한정되어 논리 블록(201)에 매핑하기 적합한 물리 블록을 검색할 수 있다. 여기서, 페이지 매핑 방법은 논리 블록에 할당된 물리 블록에 대한 인덱스 정보 및 물리 블록에 대한 오프셋 정보를 나타내는 맵 테이블을 기초하여 검색할 수 있다.
그리고, 페이지 매핑 방법은 특정 하나의 물리 블록에 논리 블록을 매핑할 수 있다. 즉, 페이지 매핑 방법은 논리 블록을 물리 블록에 매핑하기 위해 논리 블록에 기 할당된 물리 블록만을 대상으로 매핑을 수행함에 따라 매핑 단위 즉 매핑 대상에 대한 검색 횟수를 최소화할 수 있다. 따라서, 페이지 매핑 방법은 논리 블록과 물리 블록 간의 매핑 단위의 크기를 감소시킬 수 있다. 또한, 페이지 매핑 방법은 물리 블록에 대한 오프셋 정보를 포함함에 따라 매핑 단위의 크기에 대한 감소를 유지할 수 있다.
또한, 페이지 매핑 방법은 논리 블록에서 물리 블록에 대한 추가 할당에 대한 요청의 발생에 대응하여 물리 블록을 추가로 할당할 수 있다. 이 때, 페이지 매핑 방법은 논리 블록에 할당된 물리 블록에 대한 여유 블록을 고려하여 유효한 물리 블록을 할당할 수 있다.
결국, 페이지 매핑 방법은 각 논리 블록에 할당된 물리 블록을 비교하였을 때, 추가 할당에 대한 요청이 빈번하게 발생하는 논리 블록에 상대적으로 많은 물리 블록이 할당될 수 있다. 이에 따라, 페이지 매핑 방법은 특정 물리 블록에 대하여 빈번하게 요청되는 연산에 의한 worn-out 문제를 완화할 수 있으며, 불필요한 가비지 콜렉션의 발생을 방지할 수 있다.
도 3은 일실시예에 따른 페이지 매핑 방법에 사용되는 테이블에 대한 자료 구조를 도시한 도면이다.
도 3을 참고하면 페이지 매핑 방법에 사용되는 테이블은 논리 블록에 할당된 물리 블록에 대한 맵 테이블 및 물리 블록의 인덱스 정보에 대한 블록 인덱스 테이블로 구성될 수 있다.
구체적으로, 도 3의 (a)를 살펴보면 논리 페이지 정보는 논리 블록에 대한 논리 블록 번호와 오프셋 정보를 포함할 수 있다. 여기서, 논리 페이지 정보는 외부로부터 입력된 연산에 대한 제어 명령에 따라 지정된 논리 블록에 대한 주소를 포함할 수 있다. 그리고, 논리 블록에 대한 주소는 맵 테이블에 포함된 논리 블록의 위치를 나타낼 수 있다. 그리고, 페이지 매핑 방법은 논리 블록의 위치를 기반으로 해당 논리 블록의 인덱스 정보 및 오프셋 정보를 확인할 수 있다. 그리고, 논리 블록의 인덱스 정보 및 오프셋 정보는 일정 크기의 bits로 설정될 수 있다.
도 3의 (b)를 살펴보면 MAP 테이블은 각 논리 블록에 할당된 물리 블록에 대한 정보를 포함할 수 있다. MAP 테이블은 2l * 2k * 2byte의 크기로 나타낼 수 있다. 여기서, 2l은 논리 블록의 최대 개수를 나타내는 논리 페이지 정보의 지역 번호에 대한 비트 수를 나타낼 수 있다. 2k는 논리 블록의 최대 개수를 나타낼 수 있다. 그리고, 2byte는 물리 블록에 대한 오프셋 정보를 나타낼 수 있는 최대 byte를 의미할 수 있다.
맵 테이블은 위에서 언급한 바와 같이 정의되며, 논리 블록의 요청에 따라 물리 블록이 추가 할당 시, 테이블의 크기를 고려하여 물리 블록이 추가로 할당될 수 있다.
도 3의 (c)를 살펴보면 물리 블록의 인덱스 정보를 나타내는 인덱스 테이블은 논리 블록에 할당된 물리 블록에 대한 인덱스 정보를 포함할 수 있다. 인덱스 테이블은 2l * 2n * 2byte의 크기로 나타낼 수 있다. 2l , 2n 은 논리 블록의 최대 개수를 나타내는 논리 페이지 정보의 비트 수를 나타낼 수 있다. 그리고, 2byte는 물리 블록에 대한 인덱스 번호를 나타낼 수 있는 최대 byte를 의미할 수 있다.
여기서, 맵 테이블과 블록 인덱스 테이블은 논리 블록에 물리 블록을 할당하기 위한 매핑을 위해 사용될 수 있다. 다시 말해, 페이지 매핑 방법은 기존의 매핑 방법과는 다르게 2단계에 거쳐 매핑을 수행할 수 있다. 페이지 매핑 방법은 다음과 같은 2단계 매핑을 거쳐 논리 블록에 물리 블록을 할당할 수 있다.
① 1단계 매핑: 논리 페이지 정보를 이용하여 맵 테이블을 통해 논리 블록에 할당된 물리 블록에 대한 인덱스 정보 및 오프셋 정보를 추출할 수 있다.
② 2단계 매핑: 추출된 물리 블록에 대한 인덱스 정보 및 오프셋 정보에 대응하여 블록 인덱스 테이블을 통해 물리 페이지 정보를 확인할 수 있다.
본 발명이 제안하는 페이지 매핑 방법은 위와 같이 2단계에 걸친 매핑 방법을 수행함으로써, 각 논리 블록에 대한 독립적인 매핑을 수행할 수 있으며, 물리 블록에 대하여 보다 효율적으로 활용할 수 있는 특징적인 구성을 포함할 수 있다.
도 4는 일실시예에 따른 페이지 매핑 방법의 동작 흐름을 설명하기 위한 도면이다.
도 4를 참고하면, 페이지 매핑 방법은 논리 페이지 정보를 기반으로 물리 페이지 정보를 추출함으로써, 논리 블록에 물리 블록을 매핑할 수 있다. 이하에서는 논리 블록에 물리 블록을 매핑하는 동작에 대하여 설명하도록 한다.
구체적으로 페이지 매핑 방법은 논리 페이지 정보를 기반으로 논리 블록에 대한 논리 블록 번호 및 논리 블록의 오프셋 정보를 확인할 수 있다. 여기서, 논리 블록 번호는 논리 블록의 주소를 의미할 수 있다. 그리고, 페이지 매핑 방법은 논리 블록 번호에 따라 논리 블록의 인덱스 정보 및 오프셋 정보를 확인할 수 있다.
일례로, 페이지 매핑 방법은 논리 블록에 대한 정보를 포함하는 논리 페이지 번호를 기반으로 해당 논리 페이지 번호에 속하는 논리 블록의 주소를 확인할 수 있다. 그리고, 페이지 매핑 방법은 논리 블록의 주소에 따라 해당 논리 블록의 인덱스 정보 및 오프셋 정보를 확인할 수 있다.
페이지 매핑 방법은 확인한 논리 블록의 인덱스 정보 및 오프셋 정보를 이용하여 논리 블록에 할당된 물리 블록의 인덱스 정보 및 오프셋 정보를 확인할 수 있다. 여기서, 물리 블록의 인덱스 정보 및 오프셋 정보를 확인하는 것은 논리 블록에 물리 블록을 매핑하기 위한 1단계 매핑일 수 있다.
여기서, 페이지 매핑 방법은 논리 블록에 가상의 순차로 할당된 물리 블록에 대응하여 특정 물리 블록의 인덱스 정보 및 오프셋 정보를 확인할 수 있다. 그리고, 페이지 매핑 방법은 논리 블록에 할당된 물리 블록만을 기준으로 1단계 매핑을 수행할 수 있다.
그리고, 페이지 매핑 방법은 물리 블록의 인덱스 정보 및 오프셋 정보에 대응하여 해당 물리 페이지 정보를 확인할 수 있다. 다시 말해, 페이지 매핑 방법은 물리 블록의 인덱스 정보 및 오프셋 정보를 기반으로 물리 페이지 정보에 대한 위치를 정보를 확인할 수 있다. 여기서, 물리 페이지 정보를 확인 것은 논리 블록에 물리 블록을 매핑하기 위한 2단계 매핑일 수 있다.
이후, 페이지 매핑 방법은 확인된 물리 페이지 정보에 따른 해당 물리 블록에 대한 블록 단위를 논리 블록에 할당할 수 있다.
결국, 페이지 매핑 방법은 논리 블록에 물리 블록을 매핑하기 위해 2단계에 거친 매핑 방법을 적용함으로써, 페이지 매핑에 있어 히트율을 향상시킬 수 있다. 일례로, 페이지 매핑 방법은 논리 블록과 물리 블록간의 매핑 방법을 특정 메모리만을 이용하여 동작하는 안드로이드에 적용함으로써, 안드로이드의 메모리 사용에 따른 효율성을 향상시키며, 지우기 횟수를 감소시킬 수 있다. 이는 결국 WAF 감소로 볼 수 있고 eMMC의 성능이 향상됨을 확인 할 수 있다.
도 5는 일실시예에 따른 동적으로 물리 블록을 논리 블록에 할당하는 동작을 설명하기 위한 흐름도이다.
단계(501)에서 페이지 매핑 방법은 논리 블록에 제어 명령이 요청될 수 있다. 다시 말해, 페이지 매핑 방법은 논리 블록에 대하여 write 요청을 수신할 수 있다.
단계(502)에서 페이지 매핑 방법은 논리 블록에 새로운 물리 블록에 대한 블록 단위가 필요한지 확인할 수 있다. 물리 블록에 대한 새로운 블록 단위가 필요한 경우(단계502: Yes), 단계(506)에서 페이지 매핑 방법은 논리 블록에 유효한 물리 블록을 추가 할당 할 수 있다.
물리 블록에 대한 새로운 블록 단위가 필요하지 않은 경우(단계502: No), 단계(503)에서 페이지 매핑 방법은 논리 블록에 할당된 물리 블록의 총 크기와 논리 블록의 크기를 비교할 수 있다. 그리고, 논리 블록의 크기가 더 큰 경우(단계503: Yes), 단계(506)에서 페이지 매핑 방법은 논리 블록에 유효한 물리 블록을 추가 할당 할 수 있다.
논리 블록에 할당된 물리 블록의 총 크기가 더 큰 경우(단계503: No), 단계(504)에서 페이지 매핑 방법은 논리 블록에 할당된 물리 블록의 총 크기와 논리 블록의 크기를 제곱한 결과와 비교할 수 있다. 논리 블록에 할당된 물리 블록의 총 크기가 더 큰 경우(단계504: No), 단계(507)에서 페이지 매핑 방법은 GC를 수행할 수 있다.
논리 블록의 크기를 제곱한 결과가 더 큰 경우(단계504: Yes), 단계(505)에서 페이지 매핑 방법은 제어 명령이 요청된 해당 논리 블록에 대하여 논리 블록에 할당된 물리 블록에 대한 여유 블록이 존재하는지 여부를 확인할 수 있다. 다시 말해, 페이지 매핑 방법은 제어 명령에 따라 동작을 수행하기 위해 제어 명령에 따른 데이터를 저장할 수 있는 여유 공간이 존재하는지에 따른 필요 여부를 확인할 수 있다.
여유 블록이 존재하는 경우(단계505: Yes), 단계(507)에서 페이지 매핑 방법은 GC를 수행할 수 있다. 반면, 여유 블록이 존재하지 않는 경우(단계505: No), 단계(506)에서 페이지 매핑 방법은 논리 블록에 유효한 물리 블록을 추가 할당 할 수 있다.
페이지 매핑 방법은 논리 블록에 대한 제어 명령에 대응하여 논리 블록에 할당된 물리 블록에 대한 추가 할당에 대하여 단계적으로 확인함으로써, 다양한 상황에 따라 적절하게 물리 블록을 추가 할당할 수 있다.
도 6은 일실시예에 따른 논리 블록과 물리 블록을 매핑하는 동작을 설명하기 위한 흐름도이다.
단계(601)에서 페이지 매핑 방법은 논리 페이지 정보를 이용하여 논리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다. 여기서, 논리 블록은 논리 영역이 블록화된 블록일 수 있다.
단계(602)에서 페이지 매핑 방법은 추출된 인덱스 정보 및 오프셋 정보를 이용하여 상기 논리 블록에 할당되어 블록 단위로 구분된 물리 블록의 인덱스 정보 및 오프셋 정보를 추출할 수 있다.
여기서, 물리 블록은 데이터의 저장 공간에 연속적으로 위치한 물리 영역이 블록화된 블록일 수 있다. 물리 블록은 물리 블록의 크기 및 논리 블록의 크기를 고려하여 적어도 하나의 논리 블록에 할당될 수 있다.
또한. 물리 블록은 논리 블록에 할당된 물리 블록에 대한 여유 블록의 존재 여부에 따라 상기 논리 블록에 물리 블록이 추가로 할당할 수 있다. 구체적으로, 페이지 매핑 방법은 논리 블록에 대한 제어 명령을 수신하여, 수신한 제어 명령에 따라 상기 논리 블록의 크기와 논리 블록에 할당된 물리 블록의 크기를 비교할 수 있다.
그리고, 페이지 매핑 방법은 비교 결과에 대응하여 논리 블록에 할당된 물리 블록에 대한 여유 블록이 존재하는지 여부를 확인할 수 있다. 페이지 매핑 방법은 확인 결과에 대응하여 논리 블록에 새로운 물리 블록을 추가로 할당할 수 있다.
단계(603)에서 페이지 매핑 방법은 추출한 물리 블록의 인덱스 정보 및 오프셋 정보에 대응하여 물리 페이지 정보를 확인할 수 있다.
단계(604)에서 페이지 매핑 방법은 확인된 물리 페이지 정보에 대응하는 물리 블록에 대한 블록 단위를 상기 논리 블록에 매핑할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
101: 논리 페이지 정보
102: 논리 블록 번호 및 논리 블록 오프셋
103: 논리 블록
104: 물리 블록

Claims (10)

  1. 논리 페이지 정보를 이용하여 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계;
    상기 추출된 인덱스 정보 및 오프셋 정보를 이용하여 상기 논리 블록에서 사용할 수 있도록 할당된 물리 블록을 포함하는 블록 인덱스 테이블을 통해 상기 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계;
    상기 추출한 물리 블록의 인덱스 정보 및 오프셋 정보에 대응하여 논리 블록과 물리 블록 간에 매핑을 위한 물리 페이지 정보를 확인하는 단계; 및
    상기 확인된 물리 페이지 정보에 대응하는 물리 블록에 대한 블록 단위를 상기 논리 블록에 매핑하는 단계
    를 포함하고,
    상기 블록 인덱스 테이블은,
    상기 물리 블록에 대한 블록 단위의 크기 및 논리 블록의 크기를 기반으로 논리 블록의 메모리 사용량에 따라 동적으로 논리 블록에 할당된 물리 블록에 관한 메모리의 주소를 포함하는 페이지 매핑 방법.
  2. 제1항에 있어서,
    상기 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계는,
    상기 논리 페이지 정보에 대응하여 논리 블록에 대한 위치를 나타내는 블록 정보를 기반으로 논리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 페이지 매핑 방법.
  3. 제1항에 있어서,
    상기 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 단계는,
    상기 논리 블록에 할당된 물리 블록에 대한 정보를 포함하는 맵 테이블을 이용하여 물리 블록의 인덱스 정보 및 오프셋 정보를 추출하는 페이지 매핑 방법.
  4. 제1항에 있어서,
    상기 논리 블록은,
    상기 물리 블록에 대한 블록 단위의 크기 및 논리 블록에 대한 블록 단위의 크기를 고려하여 적어도 하나의 물리 블록이 할당되는 페이지 매핑 방법.
  5. 제1항에 있어서,
    상기 논리 블록은,
    상기 논리 블록에 할당된 물리 블록에 대한 여유 블록의 존재 여부에 따라 상기 물리 블록이 추가로 할당하는 페이지 매핑 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020140163444A 2014-11-21 2014-11-21 블록 기반의 페이지 매핑 방법 KR101626218B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140163444A KR101626218B1 (ko) 2014-11-21 2014-11-21 블록 기반의 페이지 매핑 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140163444A KR101626218B1 (ko) 2014-11-21 2014-11-21 블록 기반의 페이지 매핑 방법

Publications (1)

Publication Number Publication Date
KR101626218B1 true KR101626218B1 (ko) 2016-06-13

Family

ID=56191306

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140163444A KR101626218B1 (ko) 2014-11-21 2014-11-21 블록 기반의 페이지 매핑 방법

Country Status (1)

Country Link
KR (1) KR101626218B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101936364B1 (ko) 2017-08-09 2019-01-08 성균관대학교산학협력단 플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법
US10289561B2 (en) 2017-08-08 2019-05-14 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
US10922222B2 (en) 2018-01-19 2021-02-16 SK Hynix Inc. Data processing system and operating method for generating physical address update history
US11301393B2 (en) 2018-12-17 2022-04-12 SK Hynix Inc. Data storage device, operation method thereof, and storage system including the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090124257A (ko) * 2008-05-29 2009-12-03 아주대학교산학협력단 플래시메모리의 데이터 연산 및 매핑방법
KR20130032603A (ko) * 2011-09-23 2013-04-02 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090124257A (ko) * 2008-05-29 2009-12-03 아주대학교산학협력단 플래시메모리의 데이터 연산 및 매핑방법
KR20130032603A (ko) * 2011-09-23 2013-04-02 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289561B2 (en) 2017-08-08 2019-05-14 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
KR101936364B1 (ko) 2017-08-09 2019-01-08 성균관대학교산학협력단 플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법
US10922222B2 (en) 2018-01-19 2021-02-16 SK Hynix Inc. Data processing system and operating method for generating physical address update history
US11301393B2 (en) 2018-12-17 2022-04-12 SK Hynix Inc. Data storage device, operation method thereof, and storage system including the same

Similar Documents

Publication Publication Date Title
US11030094B2 (en) Apparatus and method for performing garbage collection by predicting required time
US20190102291A1 (en) Data storage device and method for operating non-volatile memory
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US9170885B2 (en) Independent management of data and parity logical block addresses
US8572309B2 (en) Apparatus and method to protect metadata against unexpected power down
US20150378888A1 (en) Controller, flash memory apparatus, and method for writing data into flash memory apparatus
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
US10572171B2 (en) Storage system
EP3346387B1 (en) Storage system and system garbage collection method
TW201303592A (zh) 雙快閃轉譯層
KR20120105294A (ko) 불휘발성 메모리를 제어하는 메모리 컨트롤러
KR102430198B1 (ko) 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
US20140281132A1 (en) Method and system for ram cache coalescing
CN115756312A (zh) 数据访问系统、数据访问方法和存储介质
US11226738B2 (en) Electronic device and data compression method thereof
KR20200014175A (ko) 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치
TW201624491A (zh) 資訊處理裝置及非暫態電腦可讀取記錄媒體
TW201624288A (zh) 快取記憶體裝置及非暫態電腦可讀取記錄媒體
KR20210089055A (ko) 지우기 성능이 향상된 플래시메모리 저장 장치 및 그 방법
KR20130087898A (ko) 파일 속성을 고려한 메모리 블록 할당 장치 및 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190415

Year of fee payment: 4