KR101329497B1 - 파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법 - Google Patents

파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법 Download PDF

Info

Publication number
KR101329497B1
KR101329497B1 KR1020110021496A KR20110021496A KR101329497B1 KR 101329497 B1 KR101329497 B1 KR 101329497B1 KR 1020110021496 A KR1020110021496 A KR 1020110021496A KR 20110021496 A KR20110021496 A KR 20110021496A KR 101329497 B1 KR101329497 B1 KR 101329497B1
Authority
KR
South Korea
Prior art keywords
pages
storage space
different
partition
logical block
Prior art date
Application number
KR1020110021496A
Other languages
English (en)
Other versions
KR20120103312A (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 KR1020110021496A priority Critical patent/KR101329497B1/ko
Publication of KR20120103312A publication Critical patent/KR20120103312A/ko
Application granted granted Critical
Publication of KR101329497B1 publication Critical patent/KR101329497B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

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

Abstract

본 발명은 파티션으로 구분되는 논리 드라이브를 물리적으로 분할되는 저장 공간에 효율적으로 맵핑함으로써, 전체 쓰기 비용을 줄여 성능을 향상시키는 파티션에 따라서 저장 위치를 물리적으로 구분하는 NVRAM 기반의 저장 장치 및 상기 저장 장치의 동작 방법에 관한 것이다.

Description

파티션에 따라서 저장 위치를 물리적으로 구분하는 NVRAM 기반의 저장 장치 및 상기 저장 장치의 동작 방법{STORAGE DEVICE BASED ON NON VOLATILE RANDOM ACCESS MEMORY OF PHYSICALLY DIVIDING STORAGE POSITION DEPENDING ON PARTITION}
본 발명의 실시예들은 NVRAM 기반의 저장 장치에서, 파티션으로 구분되는 논리 드라이브를 물리적으로 분할되는 저장 공간에 효율적으로 맵핑함으로써, 전체 쓰기 비용을 줄여 성능을 향상시키는 기술에 관한 것이다.
NVRAM 기반의 저장 장치에서, 플래시 변환 계층에서는 데이터의 논리적 주소를 물리적 주소를 변환해주는 사상(mapping)기능이 있다. 이러한 사상기능은 크게 페이지 사상 및 블록 사상 등으로 구분될 수 있다.
블록 사상기법은 단독으로는 잘 사용되지 않으며 플래시 메모리의 일부 구간을 페이지 사상기법으로 사용하는 혼합 사상방식으로 사용될 수 있다.
혼합 사상방식의 블록 사상영역은 블록 단위의 맵을 유지하며 페이지 사상영역은 페이지 단위의 사상을 유지한다. 사용자의 쓰기 요청이 발생하면 페이지 사상영역에 쓰기가 발생되며 페이지 사상영역의 공간이 차게 되면 병합 연산을 통해 다시 공간을 확보한다. 사용자의 읽기 요청이 발생하면 우선적으로 페이지 사상영역을 탐색하여 데이터 유무를 판단하며 만약 있다면 페이지 사상영역에서 데이터를 읽어 들이고 그렇지 않다면 블록 사상영역에서 데이터를 읽는다.
컴퓨터 시스템에서의 데이터의 논리 저장단위는 블록이며, 이를 구분하기 위해 일반적으로 정수 형태인 논리블록주소(LBA, Logical Block Address)를 사용할 수 있다.
컴퓨터 시스템에서 데이터의 영구저장매체로 사용되는 블록저장 장치는 논리블록주소의 위치를 물리적인 저장 장치로 사상(mapping)해서 사용할 수 있다.
논리블록주소와 물리적 저장 위치간의 사상 관계는 저장 장치마다 다르며 일반적으로 저장 장치 내부의 사상 알고리즘에 의해 결정될 수 있다.
SSD, 플래시 드라이브 등의 플래시 저장 장치는 페이지와 페이지의 집합인 블록으로 구성될 수 있다. 논리 단위인 논리 블록과 플래시 블록은 서로 다른 개념으로서, 읽기와 쓰기의 단위는 페이지이며 지우기의 단위는 블록이다.
도 1은 일반적으로 논리블록주소를 저장 장치로의 사상하는 것을 설명하는 도면이다.
도면부호 110은 데이터의 논리적 배열로서 페이지들을 표시하고, 도면부호 130은 저장 장치의 페이지들 및 상기 페이지들을 구분하는 블록들을 표현한다.
블록0(131)에는 페이지들(P0, P1, P2)이 포함되고, 블록1(132)에는 다른 페이지들(P3, ..)이 포함될 수 있다.
도면부호 110의 페이지들은 사상 알고리즘(120)에 따라서, 도면부호 130의 페이지들에 사상될 수 있다.
이때, 저장 장치는 이미 데이터가 씌여진 곳에 다시 데이터를 쓰기 위해서 블록 전체를 지우고 데이터를 써야한다.
일반적으로 블록에는 수명이라 불리는 지우기 횟수에 제한이 있으며, 제한을 넘어서 지울 경우, 해당 블록은 사용이 불가능한 상태가 된다.
운영체제에서는 하나의 물리 저장 장치를 논리적으로 여러 드라이브로 나눌 수 있으며 이들 나뉜 드라이브를 파티션이라 한다.
도 2는 하나의 플래시 저장 장치를 두 개의 논리드라이브 LD1(211) 및 LD2(212)로 나눈 것이고, 두 개의 논리 드라이브는 하나의 물리적 저장 공간을 갖는 저장 장치(200)에 사상될 수 있다.
기존의 사상 방식은 모두 논리블록주소가 사상되는 위치를 저장 장치 내부에서 정해진 알고리즘에 의해 결정할 수 있다. 즉, 쓰기 요청이 발생한 순서대로 매핑될 가능성이 높아, 논리적으로는 분리되어 있는 파티션일지라도 물리적으로는 분리되지 않는다.
다시 말해, 서로 다른 파티션에 위치하는 페이지라 하더라도, 저장 치의 물리적인 공간에서는 인접한 위치에 저장될 수 있을 뿐만 아니라, 하나의 블록에 저장될 수도 있다.
본 발명의 일실시예에 따른 저장 장치는 논리적으로 분할된 서로 다른 파티션들에 맵핑되는 물리적인 저장 공간을 유지하는 저장부, 및 상기 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 상기 저장 공간 상에서 물리적으로 구분하여 저장하도록 제어하는 제어부를 포함할 수 있다.
본 발명의 일측에 따른 상기 제어부는, 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하며, 상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 제어할 수 있다.
본 발명의 다른 일측에 따른 상기 제어부는, 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하며, 상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 저장 공간 상의 위치를 결정할 수 있다.
본 발명의 일실시예에 따른 저장 장치는 파티션 정보를 확인하는 파티션 정보 확인부 및 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 저장 공간 상에서 물리적으로 구분하여 저장하도록 처리하는 저장 처리부를 포함할 수 있다.
본 발명의 일실시예에 따른 저장 장치의 동작 방법은, 논리적으로 분할된 서로 다른 파티션들에 맵핑되는 물리적인 저장 공간을 유지하는 단계, 및 상기 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 상기 저장 공간 상에서 물리적으로 구분하여 저장하도록 제어하는 단계를 포함할 수 있다.
본 발명의 일측에 따른 상기 제어하는 단계는, 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하는 단계, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하는 단계, 및 상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 제어하는 단계를 포함할 수 있다.
본 발명의 다른 일측에 따른 상기 제어하는 단계는, 상기 논리적으로 분할된 서로 다른 파티션들에 대응하여, 상기 물리적인 저장 공간을 분리하는 단계, 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하는 단계, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하는 단계, 및 상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 저장 공간 상의 위치를 결정하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따르면, 논리적으로 분할된 여러 파티션에 위치하는 페이지를 물리적으로 구분하여 저장 장치에 사상함으로써, NVRAM(Non-volatile random-access memory) 기반의 저장 장치의 성능을 향상시킬 수 있다.
본 발명의 일실시예에 따르면, 서로 다른 파티션에 위치하는 페이지를 서로 다른 물리적 공간에 저장함으로써, 쓰기 동작에 필요한 전체 비용을 현저히 줄일 수 있다.
도 1은 일반적으로 논리블록주소를 저장 장치로의 사상하는 것을 설명하는 도면이다.
도 2는 논리적으로 분할된 파티션을 하나의 저장 장치로 사상하는 것을 설명하는 도면이다.
도 3은 본 발명의 일실시예에 따른 저장 장치를 설명하기 위한 블록도이다.
도 4는 도 3의 실시예를 보다 구체적으로 설명하기 위한 사상 예시에 관한 설명이다.
도 5는 본 발명의 일실시예에 따른 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 일실시예에 따른 저장 장치(300)를 설명하기 위한 블록도이다.
본 발명의 일실시예에 따른 저장 장치(300)는 저장부(310) 및 제어부(320)를 포함할 수 있다.
저장부(310)는 논리적으로 분할된 서로 다른 파티션들(301, 302)에 맵핑되는 물리적인 저장 공간을 유지할 수 있다.
제어부(320)는 상기 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 상기 저장 공간 상에서 물리적으로 구분하여 저장하도록 제어할 수 있다.
본 발명의 일측에 따른 제어부(320)는 파티션 테이블(330)을 참조하여, 파티션 테이블 정보를 확인할 수 있다.
이에, 제어부(320)는 상기 확인된 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인할 수 있다.
제어부(320)는 상기 확인된 파티션 정보에 따라, 상기 복수의 페이지들 각각이 어느 파티션에 소속되었는지 확인할 수 있다.
본 발명의 일측에 따른 제어부(320)는 상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 제어할 수 있다.
다시 말해, 제어부(320)는 저장하려는 두 개의 페이지가 서로 다른 파티션에 위치한다면, 상기 두 개의 페이지를 서로 다른 블록에 저장하도록 사상할 수 있다.
본 발명의 다른 일측에 따른 제어부(320)는 상기 논리적으로 분할된 서로 다른 파티션들에 대응하여, 상기 물리적인 저장 공간을 분리할 수 있다.
즉, 제어부(320)는 저장부(310)의 저장 공간을 상기 논리적으로 분할된 서로 다른 파티션들에 대응하도록 구분할 수 있다.
다시 말해, 제어부(320)는 파티션 1(301)의 페이지들과 파티션 2(302)의 페이지들이 상기 저장 공간 상에서 멀리 떨어져 사상될 수 있도록 상기 저장 공간을 물리적으로 구분할 수 있다.
이를 위해, 제어부(320)는 상기 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인할 수 있다.
이에, 제어부(320)는 상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 저장 공간 상의 위치가 멀리 떨어질 수 있도록 결정할 수 있다.
제어부(320)는 상기 복수의 페이지들 중에서 서로 다른 파티션에 위치하는 서로 다른 페이지를, 상기 분리된 저장 공간 상의 서로 다른 위치에 저장하도록, 상기 저장 공간 상의 위치를 결정할 수 있다.
도 4는 도 3의 실시예를 보다 구체적으로 설명하기 위한 사상 예시에 관한 설명이다.
본 발명의 일실시예에 따른 제어부는 논리 드라이브1(파티션1, 411)와 논리 드라이브2(파티션2, 412)를 물리적인 저장 장치에 사상할 수 있다.
이때, 제어부는 파티션1(411)의 페이지들을 저장 장치 상의 같은 블록에 저장할 수 있다. 구체적으로, 상기 제어부는 파티션1(411)의 페이지들 중 일부 페이지들을 블록0(421)에 사상할 수 있다.
마찬가지로, 상기 제어부는 파티션2(412)의 페이지들 중 일부 페이지들을 블록2(422)에 사상할 수 있다.
블록0(421)과 블록(422)는 서로 다른 블록일 뿐만 아니라, 물리적으로 떨어진 위치에 존재할 수 있다.
본 발명의 일실시예에 따른 제어부는 파티션1(411)과 파티션2(412)가 논리적으로 구분되는 다른 파티션이므로 물리적으로도 분리해서 사상한다.
즉, 파티션1(411)의 페이지가 블록0(421)에 사상되면, 파티션2(412)의 페이지의 사상위치는 하드웨어 및 알고리즘의 설계에 따라 BL1-BL4중 어떤 위치라도 될 수 있으나, 반드시 블록0(421)과 다른 물리적 블록 위치에 사상되어야 한다.
서로 다른 파티션의 페이지들을 물리적으로 구분되는 저장 공간 상에 사상하기 때문에, 상기 제어부는 전체 쓰기 비용을 효율적으로 줄여 저장 장치의 성능을 향상시킬 수가 있다.
구체적인 예로, 상기 제어부는 쓰기 명령에 응답하여 상기 서로 다른 파티션 중에서 특정 파티션에 위치하는 N개의 페이지에 대한 쓰기 동작을 제어하고, 상기 N개의 페이지에 대응하는 상기 저장 공간 상의 특정 블록에 대한 지우기 동작을 제어할 수 있다.
이로 인해, 쓰기 명령에 대한 전체 쓰기 비용은 아래 [수학식 1]에 의해서 산출될 수 있다.
[수학식 1]
전체 쓰기 비용 = N * (쓰기 횟수*쓰기 비용 + 지우기 비용)
이때, 상기 쓰기 횟수는 상기 쓰기 동작에 따른 쓰기 횟수이고, 상기 쓰기 비용은 상기 쓰기 동작에 따라 발생하는 쓰기 비용이며, 상기 지우기 비용은 상기 지우기 동작에 따라 발생하는 지우기 비용이다.
이와는 달리, 종래에는 서로 다른 파티션의 페이지들에 대해서 물리적으로 구분하여 저장하지 않았기 때문에, 전체 쓰기 비용이 증가할 수 밖에 없다.
예를 들어, 도 4에서 B0-B2의 논리 블록에 대한 N번의 재쓰기가 발생할 경우, 종래에는 기본적으로 B0-B2의 3페이지에 대한 쓰기작업 발생할 수 있고, 이 때, 'N*3 페이지 복사' 비용이 발생한다.
또한, A0-A2의 페이지는 여전히 유효한 페이지이므로, 즉 물리적으로 B0-B2와 구분하여 저장되지 않았기에 B0-B2와 연관성이 있을 가능성이 매우 높고, 따라서 복사 과정이 필요하다.
따라서, B0-B2의 3페이지에 대한 쓰기작업은 'N*3 페이지 복사' 비용이 다시 발생한다.
또한, B0-B2의 페이지는 두 블록에 거쳐 존재하기 때문에, 해당 블록에 대한 지우기가 발생하며, 이때, B0-B2의 3페이지에 대한 쓰기작업은 'N*2 블록 지우기' 비용이 발생한다.
결국, 종래 B0-B2의 3페이지에 대한 전체 쓰기 비용은 아래 [수학식 3]아래 식로 표현될 수 있다.
[수학식 2]
전체 쓰기 비용 = N*{(3*2) * 페이지 복사 비용 + 2*지우기 비용}
쓰기 비용, 지우기 비용을 각각 1 및 3이라고 가정한다면, 본 발명에 따른 [수학식 1]에 의해서 산출되는 전체 쓰기 비용은 6N이고, 종래 [수학식 2]에 의해서 산출되는 전체 쓰기 비용은 12N이다.
즉, 본 발명에 따른 제어부에 따르면, 저장 장치는 쓰기 명령에 따른 동작 시에 종래에 비해서 대략 2배의 성능 향상이 예상된다.
일반적인, 플래시 메모리 저장 장치의 수명은 지우기 횟수에 반비례하므로 본 발명을 적용하면, 기존의 경우보다 2배의 수명 향상을 기대할 수 있다.
본 발명의 일실시예에 따른 제어부의 기능은 별도의 독립된 장치로 구현될 수 있다.
이를 위해, 본 발명의 일실시예에 따른 저장 장치는 파티션 정보 확인부와 저장 처리부를 포함할 수 있다.
먼저, 본 발명의 일실시예에 따른 파티션 정보 확인부는 파티션 정보를 확인할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 파티션 정보 확인부는 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 상기 파티션 정보를 확인할 수 있다.
다음으로, 본 발명의 일실시예에 따른 저장 처리부는 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 저장 공간 상에서 물리적으로 구분하여 저장하도록 처리할 수 있다.
예를 들어, 상기 저장 처리부는 상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 처리할 수 있다.
또 다른 예로, 상기 저장 처리부는 상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 저장 공간 상의 위치를 결정하여 저장되도록 처리할 수 있다.
도 5는 본 발명의 일실시예에 따른 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
본 발명의 일실시예에 따른 저장 장치의 동작 방법은 논리적으로 분할된 서로 다른 파티션들에 맵핑되는 물리적인 저장 공간을 유지할 수 있다(단계 501).
다음으로, 본 발명의 일실시예에 따른 저장 장치의 동작 방법은 파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인할 수 있다(단계 502).
다음으로, 본 발명의 일실시예에 따른 저장 장치의 동작 방법은 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인할 수 있다(단계 503).
다음으로, 본 발명의 일실시예에 따른 저장 장치의 동작 방법은 상기 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 상기 저장 공간 상에서 물리적으로 구분하여 저장하도록 제어할 수 있다(단계 504).
예를 들어, 본 발명의 일실시예에 따른 저장 장치의 동작 방법은 상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 제어할 수 있다.
또 다른 예로, 본 발명의 일실시예에 따른 저장 장치의 동작 방법은 상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 저장 공간 상의 위치를 결정할 수 있다.
다시 말해, 본 발명의 일실시예에 따른 저장 장치의 동작 방법은 상기 복수의 페이지들 중에서 서로 다른 파티션에 위치하는 서로 다른 페이지를, 상기 분리된 저장 공간 상의 서로 다른 위치에 저장하도록 상기 저장 공간 상의 위치를 결정할 수 있다.
결국, 본 발명의 일실시예에 따르면, 논리적으로 분할된 여러 파티션에 위치하는 페이지를 물리적으로 구분하여 저장 장치에 사상함으로써, NVRAM(Non-volatile random-access memory) 기반의 저장 장치의 성능을 향상시킬 수 있다.
또한, 본 발명의 일실시예에 따르면, 서로 다른 파티션에 위치하는 페이지를 서로 다른 물리적 공간에 저장함으로써, 쓰기 동작에 필요한 전체 비용을 현저히 줄일 수 있다.
본 발명의 일실시예에 따른 저장 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
301: 파티션 1 302: 파티션 2
300: 저장 장치 310: 저장부
320: 제어부 330: 파티션 테이블

Claims (14)

  1. 논리적으로 분할된 서로 다른 파티션들에 맵핑되는 물리적인 저장 공간을 유지하는 저장부; 및
    상기 논리적으로 분할된 서로 다른 파티션들에 대응하여, 상기 물리적인 저장 공간을 분리하고, 상기 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 상기 물리적으로 분리된 저장 공간 상에서 저장하도록 제어하는 제어부
    를 포함하고,
    상기 제어부는,
    파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하며,
    상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 물리적으로 분리된 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 제어하고, 쓰기 명령에 응답하여 상기 논리적으로 분할된 서로 다른 파티션 중에서 특정 파티션에 위치하는 N개의 페이지에 대한 쓰기 동작을 제어하며, 상기 N개의 페이지에 대응하는 상기 물리적으로 분리된 저장 공간 상의 특정 블록에 대한 지우기 동작을 제어하는 것을 특징으로 하는 저장 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제어부는,
    파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하며, 상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 물리적으로 분리된 저장 공간 상의 위치를 결정하는 것을 특징으로 하는 저장 장치.
  6. 제5항에 있어서,
    상기 제어부는,
    상기 복수의 페이지들 중에서 서로 다른 파티션에 위치하는 서로 다른 페이지를, 상기 물리적으로 분리된 저장 공간 상의 서로 다른 위치에 저장하도록, 상기 물리적으로 분리된 저장 공간 상의 위치를 결정하는 것을 특징으로 하는 저장 장치.
  7. 파티션 정보를 확인하는 파티션 정보 확인부; 및
    논리적으로 분할된 서로 다른 파티션 각각의 페이지를 저장 공간 상에서 물리적으로 구분하여 저장하도록 처리하는 저장 처리부를 포함하고,
    상기 파티션 정보 확인부는,
    파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 상기 파티션 정보를 확인하고,
    상기 저장 처리부는,
    상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 처리하며,
    상기 파티션 정보 확인부는,
    파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하고, 상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 상기 파티션 정보를 확인하고,
    상기 저장 처리부는,
    상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 저장 공간 상의 위치를 결정하는 저장 장치.
  8. 삭제
  9. 삭제
  10. 저장부에서, 논리적으로 분할된 서로 다른 파티션들에 맵핑되는 물리적인 저장 공간을 유지하는 단계;
    제어부에서, 상기 논리적으로 분할된 서로 다른 파티션들에 대응하여, 상기 물리적인 저장 공간을 분리하는 단계; 및
    상기 논리적으로 분할된 서로 다른 파티션 각각의 페이지를 상기 물리적으로 분리된 저장 공간 상에서 저장하도록 제어하는 단계
    를 포함하고,
    상기 제어하는 단계는,
    파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하는 단계;
    상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하는 단계; 및
    상기 확인된 파티션 정보에 따라 서로 다른 파티션에 포함되는 서로 다른 페이지를 상기 물리적으로 분리된 저장 공간에서 서로 다른 블록으로 구분하여 저장하도록 제어하는 단계
    를 포함하는 저장 장치의 동작 방법.
  11. 삭제
  12. 제10항에 있어서,
    상기 제어하는 단계는,
    파티션 테이블 정보로부터 쓰기 명령이 실행된 복수의 페이지들 각각에 대한 논리블록주소를 확인하는 단계;
    상기 확인된 논리블록주소로부터 상기 복수의 페이지들 각각에 대한 파티션 정보를 확인하는 단계; 및
    상기 확인된 파티션 정보에 따라 상기 복수의 페이지들 각각이 저장되는 상기 물리적으로 분리된 저장 공간 상의 위치를 결정하는 단계
    를 포함하는 것을 특징으로 하는 저장 장치의 동작 방법.
  13. 제12항에 있어서,
    상기 물리적으로 분리된 저장 공간 상의 위치를 결정하는 단계는,
    상기 복수의 페이지들 중에서 서로 다른 파티션에 위치하는 서로 다른 페이지를, 상기 물리적으로 분리된 저장 공간 상의 서로 다른 위치에 저장하도록 상기 저장 공간 상의 위치를 결정하는 단계
    를 포함하는 것을 특징으로 하는 저장 장치의 동작 방법.
  14. 제10항, 및 제12항 내지 제13항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020110021496A 2011-03-10 2011-03-10 파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법 KR101329497B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110021496A KR101329497B1 (ko) 2011-03-10 2011-03-10 파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110021496A KR101329497B1 (ko) 2011-03-10 2011-03-10 파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120103312A KR20120103312A (ko) 2012-09-19
KR101329497B1 true KR101329497B1 (ko) 2013-11-13

Family

ID=47111441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110021496A KR101329497B1 (ko) 2011-03-10 2011-03-10 파티션에 따라서 저장 위치를 물리적으로 구분하는 nvram 기반의 저장 장치 및 상기 저장 장치의 동작 방법

Country Status (1)

Country Link
KR (1) KR101329497B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065631A (ko) * 2002-10-28 2005-06-29 샌디스크 코포레이션 논리적 블록을 분할하기 위한 방법 및 장치
US20080010431A1 (en) * 2006-07-07 2008-01-10 Chi-Tung Chang Memory storage device and read/write method thereof
KR20080028685A (ko) * 2006-09-27 2008-04-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
US20110029720A1 (en) * 2009-07-31 2011-02-03 Silicon Motion, Inc. Flash Storage Device and Operation Method Thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065631A (ko) * 2002-10-28 2005-06-29 샌디스크 코포레이션 논리적 블록을 분할하기 위한 방법 및 장치
US20080010431A1 (en) * 2006-07-07 2008-01-10 Chi-Tung Chang Memory storage device and read/write method thereof
KR20080028685A (ko) * 2006-09-27 2008-04-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
US20110029720A1 (en) * 2009-07-31 2011-02-03 Silicon Motion, Inc. Flash Storage Device and Operation Method Thereof

Also Published As

Publication number Publication date
KR20120103312A (ko) 2012-09-19

Similar Documents

Publication Publication Date Title
US9063838B1 (en) Data storage device shifting data chunks of alignment zone relative to sector boundaries
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
US9383927B2 (en) Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device
US8832356B2 (en) Apparatus and method for flash memory address translation
US9026764B2 (en) Memory system performing wear leveling based on deletion request
JP4164118B1 (ja) フラッシュメモリを用いた記憶装置
US8886869B2 (en) Storage system and data control method therefor
JP5788369B2 (ja) メモリシステム、コンピュータシステム、およびメモリ管理方法
US8312203B2 (en) Semiconductor storage device and method of controlling a semiconductor storage device by allocating a physical block composed of plural pages to a group of logical addresses
JP5581256B2 (ja) メモリシステム、コントローラ、およびメモリシステムの制御方法
US20150378884A1 (en) Storage system controlling addressing of solid storage disks (ssd)
US20140297921A1 (en) Method of Partitioning Physical Block and Memory System Thereof
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
KR102387935B1 (ko) 공용 메모리 영역 및 전용 메모리 영역을 포함하는 데이터 저장 장치
US20100169556A1 (en) Nonvolatile storage device, information recording system, and information recording method
KR20100011698A (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법
US20140143476A1 (en) Usage of cache and write transaction information in a storage device
KR101374065B1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
CN108255414B (zh) 固态硬盘访问方法及装置
KR20110139956A (ko) 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법
US20100318726A1 (en) Memory system and memory system managing method
JP5300496B2 (ja) 半導体記憶装置、ホスト機器及び半導体記憶システム
US9891826B1 (en) Discard command support in parity based redundant array of flash memory disk
CN104182353A (zh) 一种采用不同存储介质的数据存储***
US20160124650A1 (en) Data Storage Device and Flash Memory Control Method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee