KR20120074707A - 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법 - Google Patents

플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법 Download PDF

Info

Publication number
KR20120074707A
KR20120074707A KR1020100136629A KR20100136629A KR20120074707A KR 20120074707 A KR20120074707 A KR 20120074707A KR 1020100136629 A KR1020100136629 A KR 1020100136629A KR 20100136629 A KR20100136629 A KR 20100136629A KR 20120074707 A KR20120074707 A KR 20120074707A
Authority
KR
South Korea
Prior art keywords
write
data
mapping
flash memory
pattern
Prior art date
Application number
KR1020100136629A
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 KR1020100136629A priority Critical patent/KR20120074707A/ko
Publication of KR20120074707A publication Critical patent/KR20120074707A/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
    • 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/064Management of blocks
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

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

Abstract

플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법이 개시된다. 주소 사상과 데이터 페이지 할당 방법은 데이터의 쓰기 패턴을 판단하는 단계; 쓰기 패턴에 따라 일정한 크기의 블록으로 사상 단위를 구성하는 블록 사상, 일정한 크기의 페이지로 사상 단위를 구성하는 페이지 사상, 데이터의 크기로 사상 단위를 구성하는 범위 사상 중 적어도 하나의 사상 방식(mapping method)을 선택하는 단계; 및 쓰기 패턴에 대응하여 데이터에 대한 페이지를 할당하는 단계를 포함하는 이 제공된다.

Description

플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법{FLASH MEMORY BASED STORAGE AND METHOD FOR ADDRESS MAPPING AND DATA ALLOCATION THEREFOR}
본 발명의 실시예들은 플래시 메모리를 사용하는 저장장치를 위하여 보다 효과적으로 주소 사상과 데이터 페이지 할당을 관리하는 방법에 관한 것이다.
플래시 변환 계층에서는 데이터의 논리적 주소를 물리적 주소를 변환해주는 사상기능이 있다. 플래시 변환 계층의 사상기법으로는 블록 사상기법, 페이지 사상기법, 범위 사상기법 등이 있다. 일반적으로, 데이터의 쓰기 패턴은 연속 쓰기, 혼합 쓰기, 임의적 쓰기로 세 가지로 구분된다.
도 1을 참조하면, 블록 사상기법은 단독으로는 잘 사용되지 않으며 플래시 메모리의 일부 구간을 페이지 사상방식으로 사용하는 혼합 사상방식으로 사용된다. 혼합 사상방식의 블록 사상영역은 블록 단위의 맵을 유지하며 페이지 사상영역은 페이지 단위의 사상을 유지한다. 사용자의 쓰기 요청이 발생하면 페이지 사상영역에 쓰기가 발생되며 페이지 사상영역의 공간이 차게 되면 병합 연산을 통해 다시 공간을 확보한다. 사용자의 읽기 요청이 발생하면 우선적으로 페이지 사상영역을 탐색하여 데이터 유무를 판단하며 만약 있다면 페이지 사상영역에서 데이터를 읽어 들이고 그렇지 않다면 블록 사상영역에서 데이터를 읽는다.
도 2를 참조하면, 페이지 사상방식은 플래시 메모리 전체의 영역을 페이지 단위로 사상을 유지한다. 페이지 사상테이블은 메모리(DRAM 혹은 SRAM)에 모두 유지할 수도 있으며 그렇지 않은 경우에는 일부만을 메모리에 캐싱하는 방법을 사용할 수 있다. 페이지 사상방식은 플래시 메모리를 데이터 영역과 빈 영역으로 구획하고 영역의 공간이 일정한 임계값에 도달하면 쓰레기 수집 과정을 통해 빈 영역의 공간을 확보한다. 쓰레기 수집 과정이란 사용된 플래시 메모리 중 일부 블록을 선택하여 유효한 페이지를 빈 블록에 옮긴 후 해당 블록을 지워서 빈 블록으로 만드는 과정을 말한다.
도 3을 참조하면, 범위 사상은 쓰기 요청한 크기로 사상의 크기를 결정한다. 블록 사상과 페이지 사상은 일정한 크기로 사상 단위를 구성하므로 각 엔트리에 플래시 메모리의 물리적 주소만을 유지하는 반면에 범위 사상은 논리적 시작주소, 크기(논리적 마지막 주소), 물리적 주소의 엔트리를 유지한다. 범위 사상은 페이지 사상과 마찬가지로 플래시 메모리를 데이터 영역 빈 영역으로 구획하고 빈 영역의 공간이 일정한 임계값에 도달하면 쓰레기 수집 과정을 실행한다.
상기한 주소 사상방법에서, 블록 사상은 사상 정보의 크기가 작다는 장점이 있지만 임의 쓰기가 빈번하게 발생할 시에 병합 연산의 증가로 성능이 떨어지게 된다. 또한, 혼합 사상을 사용할 경우 페이지 사상 영역의 크기가 커질수록 임의 쓰기에 유연하게 대처하지만 맵 읽기나 쓰기 요청시 혼합 영역을 탐색해야 하는 비용이 발생하고 임의 쓰기의 빈도가 한계치를 넘어갈 경우 역시 성능이 떨어진다. 페이지 사상의 경우, 임의적 쓰기에 유연하게 대처하지만 사상 정보의 크기가 크고 연속 쓰기 발생 시 맵 테이블의 잦은 참조로 저장 장치의 대역폭이 떨어지는 단점을 가진다. 범위 사상은 연속적 쓰기나 임의적 쓰기에 모두 유연하게 대처한다. 하지만 범위 사상을 유지하기 위한 관리 비용과 탐색 비용이 증가한다. 또한, 극심한 임의 쓰기 발생시 엔트리 수의 증가로 인해 페이지 사상방식보다 사상 정보의 양이 커질 수 있으며 탐색 비용도 증가하게 된다.
더욱이, 플래시 메모리의 집적도 향상과 새로운 MLC, TLC, QLC 형태의 플래시 메모리 개발에 따라 플래시 메모리 저장장치는 점점 대용량화 되어가고 있는 가운데, 블록 사상(혼합사상), 페이지 사상, 범위 사상 등 하나의 사상기법만을 사용하는 것에는 그 한계가 있다.
플래시 메모리를 사용하는 저장장치를 위해 보다 효과적으로 주소 사상과 데이터 페이지 할당을 관리할 수 있는 방법이 제공된다.
데이터의 쓰기 패턴에 따라 주소 사상방식을 서로 다르게 적용하고 또한 플레이 메모리의 물리적 위치를 각각의 쓰기 패턴에 따라 다르게 할당하는 방법이 제공된다.
데이터 영역에 대한 쓰레기 수집과정에 발생하는 비용을 줄이고 플래시 메모리의 수명을 연장할 수 있는 주소 사상과 데이터 페이지 할당 방법이 제공된다.
플래시 메모리를 사용하는 저장 장치에서 플래시 메모리의 주소 사상(address mapping)과 데이터 페이지 할당(data allocation)을 관리하는 방법에 있어서, 데이터의 쓰기 패턴을 판단하는 단계; 쓰기 패턴에 따라, 일정한 크기의 블록으로 사상 단위를 구성하는 블록 사상, 일정한 크기의 페이지로 사상 단위를 구성하는 페이지 사상, 데이터의 크기로 사상 단위를 구성하는 범위 사상 중 적어도 하나의 사상 방식(mapping method)을 선택하는 단계; 및 쓰기 패턴에 대응하여 데이터에 대한 페이지를 할당하는 단계를 포함하는 주소 사상과 데이터 페이지 할당 방법이 제공된다.
일측에 따르면, 데이터의 쓰기 패턴을 판단하는 단계는 쓰기 버퍼에서의 쓰기 패턴과 플래시 메모리에 저장된 사상 테이블의 크기에 따라 쓰기 패턴을 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류할 수 있다.
다른 측면에 따르면, 쓰기 패턴은 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류되고, 사상 방식을 선택하는 단계는 연속 쓰기에 대하여 블록 사상을 선택하고 임의 쓰기에 대하여 페이지 사상을 선택하고 혼합 쓰기에 대하여 범위 사상을 선택하여 사용할 수 있다. 이때, 저장 장치의 논리적 영역은 일정 수의 블록으로 구획되어 각각의 블록에 대하여 연속 쓰기, 임의 쓰기, 혼합 쓰기 중 하나의 쓰기 패턴으로 일치시킨다.
또 다른 측면에 따르면, 데이터에 대한 페이지를 할당하는 단계는 쓰기 패턴에 따라 플래시 메모리의 물리적 위치를 다르게 할당할 수 있다.
또 다른 측면에 따르면, 데이터에 대한 페이지를 할당하는 단계는 플래시 메모리의 쓰기 시작 지점을 쓰기 패턴에 따라 연속쓰기 포인터, 임의쓰기 포인터, 혼합쓰기 포인터로 구분하여 유지할 수 있다.
또 다른 측면에 따르면, 데이터에 대한 페이지를 할당하는 단계는 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터의 쓰기 패턴이 연속 쓰기에 해당하는 경우 연속쓰기 포인터가 가리키는 위치에 데이터를 저장한다.
또 다른 측면에 따르면, 데이터에 대한 페이지를 할당하는 단계는 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터의 쓰기 패턴이 연속 쓰기에 해당하지 않으면서 데이터의 크기가 임계 값 보다 작은 경우 임의쓰기 포인터가 가리키는 위치에 데이터를 저장한다.
또 다른 측면에 따르면, 데이터에 대한 페이지를 할당하는 단계는 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터의 쓰기 패턴이 연속 쓰기에 해당하지 않으면서 데이터의 크기가 임계 값 보다 큰 경우 혼합쓰기 포인터가 가리키는 위치에 데이터를 저장한다.
플래시 메모리의 주소 사상과 데이터 페이지 할당을 관리하는 저장 장치에 있어서, 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터의 쓰기 패턴을 판단하는 쓰기 버퍼 관리부; 및 쓰기 패턴에 따라 일정한 크기의 블록으로 사상 단위를 구성하는 블록 사상, 일정한 크기의 페이지로 사상 단위를 구성하는 페이지 사상, 상기 데이터의 크기로 사상 단위를 구성하는 범위 사상 중 적어도 하나의 사상 방식을 선택하는 사상 관리부를 포함하는 저장 장치를 제공한다. 이때, 쓰기 버퍼 관리부는 쓰기 패턴에 대응하여 데이터에 대한 페이지를 할당할 수 있다.
데이터의 쓰기 패턴에 따라 서로 다른 사상 방법을 사용함으로써 플래시 메모리를 사용하는 저장장치의 사상 정보 크기를 줄일 수 있으며, 사상 캐시의 성능을 높여 주소 변환에 드는 비용을 줄일 수 있다.
쓰기 패턴(사상 방법)에 따라 서로 다른 위치에 플래시 메모리의 물리적 페이지를 할당함으로써 세그먼트의 종류에 따라 시간과 공간 지역성이 다르므로 쓰레기 수집과정의 효율성을 높일 수 있을 뿐 아니라 쓰레기 수집과정에서 발생하는 비용을 줄이고 플래시 메모리의 수명을 연장할 수 있다.
도 1은 플래시 변환 계층의 사상기법 중 블록 사상기법을 설명하기 위한 도면이다.
도 2는 플래시 변환 계층의 사상기법 중 페이지 사상기법을 설명하기 위한 도면이다.
도 3은 플래시 변환 계층의 사상기법 중 범위 사상기법을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 플래시 메모리를 사용하는 저장 장치의 전체 구성도를 도시한 블록도이다.
도 5는 본 발명의 일실시예에 있어서, 맵 구조와 자료 구조를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 읽기 요청 시 주소 변환 수행 과정을 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 읽기 요청 시 사상 캐시의 교체 과정을 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 있어서, 쓰기 버퍼로부터 플래시 메모리에 쓰기가 요청될 때 주소 변환 수행 과정을 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 쓰기 버퍼로부터 플래시 메모리에 쓰기가 요청될 때 세그먼트의 상태가 혼합 쓰기 혹은 임의 쓰기일 때의 주소 변환의 수행 과정을 도시한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 명세서에서는, 데이터의 쓰기 패턴에 따라 주소 사상방법을 다르게 적용하고, 또한 플래시 메모리의 물리적 위치를 각각의 쓰기 패턴에 따라 다르게 저장하는 방법을 제안한다. 본 발명의 실시예들은 플래시 변환 계층의 기능 중 데이터의 논리 영역과 물리 영역을 변환하는 주소 사상과 데이터 관리 기능과 관련된 것이다.
도 4는 본 발명의 일실시예에 있어서, 플래시 메모리를 사용하는 저장 장치의 전체 구성도를 도시한 블록도이다.
도 4에 도시한 바와 같이, 저장 장치는 쓰기 버퍼(410), 쓰기 버퍼 관리부(420), 플래시 메모리(430), 사상 관리부(440)로 구성된다.
데이터의 쓰기 패턴은 연속 쓰기, 임의 쓰기, 혼합 쓰기로 구분될 수 있으며, 플래시 변환 계층의 사상 기법으로는 블록 사상방식, 페이지 사상방식, 범위 사상방식이 있다.
플래시 변환 계층에서의 사상 기능 특성 상 블록 사상 혹은 혼합 사상방식은 사용자 요청이 연속 쓰기가 주로 발생하는 응용에 유리하고, 페이지 사상방식은 사용자 요청이 임의 쓰기가 주로 발생하는 응용에 유리하며, 범위 사상방식은 연속 쓰기와 임의 쓰기의 요청이 혼합된 응용에 유리하다.
쓰기 버퍼(410)는 DRAM과 같은 휘발성 메모리나 PRAM과 같은 비휘발성 메모리(NVRAM) 혹은 플래시 메모리 자체일 수 있다. 쓰기 요청이 발생하면 쓰기 데이터는 우선적으로 쓰기 버퍼(410)에 기록된다. 쓰기 버퍼 관리부(420)에서는 쓰기 요청된 데이터를 요청 크기에 따라 관리한다. 이를 위하여, 쓰기 버퍼 관리부(420)는 쓰기 버퍼(410)로부터 플래시 메모리(430)에 요청되는 데이터의 쓰기 패턴을 판단하는 역할을 수행한다. 만약, 연속된 쓰기 요청이 발생하면 하나의 요청으로 병합할 수 있다. 쓰기 버퍼(410)의 빈 공간이 부족하게 되면 교체할 요청을 선택하여 플래시 메모리(430)에 기록한다. 교체 요청을 선택하는 방법은 기존의 FIFO(First In First Out), LRU(Least Recently used), LFU(Least Frequently used) 기법 등을 사용할 수 있다. 본 발명의 실시예에서는, 플래시 메모리(430)의 논리적 영역을 고정된 크기를 갖는 다수의 세그먼트로 구획하고 각각의 영역을 연속 쓰기, 임의 쓰기, 혼합 쓰기 세가지 패턴 중 하나로 일치시킬 수 있다. 사상 관리부(440)는 플래시 메모리(430)에 기록된 데이터의 주소를 관리하는 역할을 수행한다. 즉, 사상 관리부(440)는 연속 쓰기 패턴의 영역은 블록 사상기법을, 혼합 쓰기 패턴의 영역은 범위 사상기법을, 임의적 쓰기 패턴의 영역은 페이지 사상기법을 사용한다. 그리고, 쓰기 버퍼 관리부(420)에서는 데이터 페이지를 각각의 쓰기 패턴에 대응하여 할당하는 것으로, 각각의 쓰기 패턴에 따라서 플래시 메모리의 물리적 위치를 다르게 저장할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 맵 구조와 자료 구조를 설명하기 위한 도면이다.
도 5를 참조하면, 사상 구조는 시스템 메모리(SRAM or DRAM)(510)에 저장되는 세그먼트(일정 수의 플래시 메모리 블록 집합) 사상 테이블(511)과 세그먼트 하위 사상 테이블 캐시(512)가 있다. 그리고, 플래시 메모리(520)에 저장되는 세그먼트 하위 범위 사상 테이블(521)과 세그먼트 하위 페이지 사상 테이블(522)이 있다. 세그먼트 사상 테이블(511)에는 세그먼트 상태 비트와 물리적 주소 엔트리가 있다. 이때, 세그먼트 상태 비트는 연속쓰기(00), 혼합쓰기(01), 임의쓰기(11) 세 상태를 기록한다. 한 세그먼트가 연속적으로 쓰기가 요청이 되면 그 세그먼트는 연속쓰기 상태(00)로 기록된다. 그리고, 세그먼트가 기록된 시작 주소를 물리적 주소에 기록한다. 따라서, 연속쓰기 상태의 물리적 주소는 데이터가 저장된 플래시 메모리의 물리적 주소를 직접 가리킨다. 혼합쓰기(01), 임의쓰기(11)를 가지는 세그먼트는 세그먼트 사상 테이블(511) 이외에 각각 세그먼트 하위 범위 사상 테이블(521)과 세그먼트 하위 페이지 사상 테이블(522)을 가진다. 여기서, 세그먼트 하위 범위 사상 테이블(521)과 세그먼트 하위 페이지 사상 테이블(522)은 그 크기가 크기 때문에 시스템 메모리(510)에는 그 일부만 캐싱한다. 따라서, 세그먼트 사상 테이블(511)에서 상태 비트 값이 01 혹은 11 이면 해당 물리적 주소 값은 하위 사상 테이블이 기록된 플래시 메모리 페이지 주소이다. 그리고, 세그먼트 하위 사상 테이블 캐시(512)는 주소 엔트리 혹은 페이지 단위로 관리될 수 있다. 또한, 교체 정책은 FIFO, LRU, LFU 등 기존의 정책을 사용할 수 있다.
도 6은 본 발명의 일실시예에 있어서, 읽기 요청 시 주소 변환 수행 과정을 도시한 흐름도이다.
도 6를 참조하면, 어떤 페이지에 대한 읽기가 요청되면 우선적으로 쓰기 버퍼에 있는지 확인한다(601). 쓰기 버퍼에 있다면 요청 데이터를 반환하여 쓰기 버퍼에서 읽기를 수행하고(602), 그렇지 않다면 세그먼트 사상 테이블을 통해서 세그먼트 주소 값을 확인한 후 주소 값을 통하여 플래시 메모리의 페이지를 읽어 들인 후 요청 데이터를 반환한다(603). 여기서, 세그먼트 사상 테이블을 통해서 주소 값을 확인하는 절차는 요청된 페이지를 포함하는 세그먼트의 상태에 따라 다르다. 따라서, 우선 세그먼트 사상 테이블의 상태 비트값을 확인한다(604). 상태 비트값이 연속쓰기(00)이면 세그먼트 사상 테이블의 물리적 주소 값을 이용하여 요청된 페이지의 데이터 주소를 구한 후(605) 해당 데이터 주소를 통해서 플래시 메모리의 읽기 연산을 수행한다(606). 상태 비트 값이 혼합쓰기(01)나 임의쓰기(11)이면 세그먼트 하위 사상 테이블 캐시를 탐색하여(607) 세그먼트 하위 사상 테이블 캐시에 요청 데이터가 있는지 확인한다(608). 이때, 세그먼트 하위 사상 테이블 캐시에 요청 데이터에 요청 데이터가 있으면 플래시 메모리에 저장된 세그먼트 하위 사상 테이블의 캐시 값으로부터 요청된 페이지의 데이터 주소를 구한 후(609) 해당 데이터 주소를 통해서 플래시 메모리의 읽기 연산을 수행한다(606).
도 7은 도 6에서 요청된 페이지의 주소 값이 세그먼트 하위 사상 테이블 캐시에 없는 경우(A)에 대한 사상 캐시의 교체 과정을 도시한 흐름도이다.
도 7을 참조하면, 우선 세그먼트 하위 사상 테이블 캐시에 빈 공간이 있는지 확인하고(701), 빈 공간이 없다면 교체 대상 캐시 데이터를 선택하여 빈 공간을 확보한다(702). 이때, 교체 정책은 기존의 LRU, LFU, FIFO 정책을 사용할 수 있다. 빈 공간을 확보한 후 세그먼트 사상 테이블의 물리적 주소 값을 이용하여 세그먼트 사상 하위 테이블이 플래시에 저장된 위치를 구하고 해당 값을 캐시에 기록 후 주소 값을 구한다. 다시 말해, 교체 대상 캐시 데이터가 수정되었는지 확인한 후(703) 교체 대상 캐시 데이터를 플래시 메모리의 새로운 페이지에 반영한다(704). 그리고, 해당 세그먼트 사상 테이블의 플래시 물리적 주소를 수정한 후(705), 세그먼트 사상 테이블의 물리적 주소를 참조하여 요청된 페이지를 읽어 들인다(706).
일례로, 세그먼트를 구성하는 페이지의 개수가 1000개이고 페이지 200번에 대한 접근 요청이 왔다고 가정한다면, 해당 페이지의 세그먼트 번호는 0번이다(200/1000). 또한, 세그먼트 내의 오프셋은 200이다(200%1000). 도 5에서, 세그먼트 0번의 상태비트 값은 00이므로 물리적 주소 값이 세그먼트 데이터의 시작 주소인 것을 알 수 있다. 그 값이 100이기 때문에 만약 페이지에 대한 읽기 요청이 왔을 경우, 그 페이지의 물리적 주소는 300(100+200)이다. 다른 일례로, 페이지 1200번에 대한 접근 요청이 왔다고 가정한다면, 해당 페이지의 세그먼트 주소는 1번이 되며(200/1000), 해당 세그먼트 사상 테이블의 상태 비트 값은 01이다. 따라서, 우선적으로 세그먼트 하위 사상 테이블 캐시를 탐색한다. 만약, 캐시에 있다면 해당 주소를 읽어 들이고, 캐시에 없다면 세그먼트 사상테이블의 물리적 주소를 참조한다. 이때, 도 5에서 세그먼트 1번의 플래시 물리적 주소 엔트리의 값이 1이기 때문에 1번의 페이지를 캐시로 읽어 들인 후(세그먼트 하위 범위 사상테이블) 해당 주소 값을 읽는다.
도 8은 본 발명의 일실시예에 있어서, 쓰기 버퍼로부터 플래시 메모리에 쓰기가 요청될 때 주소 변환 수행 과정을 도시한 흐름도이다.
도 8을 참조하면, 우선 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터가 연속적인가를 확인한다(801). 만약 플래시 메모리에 요청되는 데이터가 연속적이라면 세그먼트의 기존 상태 비트 값을 확인하고(802) 상태 비트 값이 연속쓰기인지를 확인한다(803). 이때, 상태 비트가 연속쓰기가 아닌 경우 세그먼트 하위 사상 테이블 캐시를 검색하여(804) 캐시에 그 상태 비트 값이 있다면(805) 해당 상태 비트 값을 캐시에서 삭제한다(806). 그 후에 연속쓰기 포인터가 가리키는 플래시 메모리의 위치에 데이터를 저장하고(807) 세그먼트 사상 테이블의 물리적 주소 값을 수정한다(808). 이때, 플래시의 기존에 할당된 데이터는 무효화 된다(809).
도 9는 도 8에서 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터가 연속적이지 않은 경우(B), 즉 세그먼트의 상태가 혼합쓰기 혹은 임의쓰기일 때의 주소 변환 수행 과정을 도시한 흐름도이다.
도 9를 참조하면, 쓰기 버퍼로부터 플래시 메모리에 요청되는 데이터가 연속적이지 않은 경우 세그먼트의 상태 비트 값을 확인하고(901) 상태 비트 값이 연속쓰기인지를 확인한다(902). 이때, 상태 비트가 연속쓰기인 경우 세그먼트 하위 사상 테이블의 캐시 값을 할당한 후 초기 범위 사상 테이블에 기록하고(903) 세그먼트 사상 테이블의 상태 비트를 01 값으로 수정한다(904). 이때, 쓰기 요청 데이터의 크기가 임계 값보다 큰지 확인하고(905) 임계 값보다 크다면 혼합쓰기 포인터가 가리키는 플래시 메모리의 위치에 쓰기 요청 데이터를 저장하고(906) 임계 값보다 크지 않다면 임의쓰기 포인터가 가리키는 플래시 메모리의 위치에 쓰기 요청 데이터를 저장한다(907). 그리고, 세그먼트 하위 사상 테이블 캐시의 플래시 메모리 물리적 주소 값을 수정한 후(908) 해당 세그먼트의 범위 사상 테이블의 크기가 임계 값을 초과했는지 확인하여(909) 초과했다면 해당 세그먼트의 상태 비트를 11 값으로 수정하고 범위 사상 테이블을 페이지 사상 테이블로 수정한다(910). 이때, 플래시의 기존에 할당된 데이터는 무효화 된다(911). 한편, 상기 (902) 단계에서, 상태 비트가 연속쓰기가 아닌 경우 세그먼트 하위 사상 테이블 캐시를 탐색하여(912) 캐시에 쓰기 요청 데이터가 있는지 확인한다(913). 이때, 쓰기 요청 데이터가 세그먼트 하위 사상 테이블 캐시에 없으면 도 7를 통해 설명한 사상 캐시의 교체 과정을 수행하고 쓰기 요청 데이터가 캐시에 있으면 세그먼트의 상태 비트가 혼합쓰기 즉, 01인지 확인하여(914) 혼합쓰기 이면 상기 (905) 단계 이하의 과정을 수행하고 혼합쓰기가 아니면 임의쓰기 포인터가 가리키는 플래시 메모리의 위치에 쓰기 요청 데이터를 저장한다(915). 그리고, 세그먼트 하위 사상 테이블 캐시의 플래시 메모리 물리적 주소 값을 수정하고(916) 기존에 할당된 데이터를 무효화 시킨다(911).
상기한 바와 같이, 본 발명의 실시예에서는, 플래시 메모리의 논리적 영역을 고정된 크기를 갖는 다수의 세그먼트로 구획하고 각각의 영역을 세가지 패턴 중 하나로 일치시킨다. 그리고, 연속 쓰기 패턴의 영역은 블록 사상기법을, 혼합 쓰기 패턴의 영역은 범위 사상기법을, 임의적 쓰기 패턴의 영역은 페이지 사상기법을 사용한다. 또한, 각각의 쓰기 패턴에 따라서 플래시 메모리의 물리적 위치를 다르게 저장한다. 상기한 주소 사상과 데이터 페이지 할당 방법은 플래시 메모리를 저장 장치로 사용하는 운영체제 각 계층, 예를 들어 디바이스 드라이버나 파일 시스템에 적용할 수 있다.
본 발명의 일실시예에 따른 사용자 요청 패턴의 분류는 쓰기 버퍼에서의 쓰기 패턴과 플래시 메모리에 저장된 사상 테이블의 크기에 따라 결정된다. 우선, 쓰기 버퍼에서는 연속 쓰기와 그렇지 않은 경우를 구분한다. 만약, 쓰기 버퍼에 한 세그먼트가 연속적으로 요청되어 한 세그먼트가 쓰기 버퍼에 모두 존재하여 플래시에 기록된다면 해당 세그먼트는 연속쓰기 세그먼트로 기록한다. 또한, 쓰기 버퍼에서 연속쓰기가 아닌 세그먼트인 경우 초기 상태는 혼합 쓰기이다. 혼합 쓰기에 사용되는 범위 사상은 특성상 임의 쓰기가 요청될수록 사상 정보의 양이 많아진다. 사상 정보의 양이 일정 임계치 값 이상이 되면 해당 세그먼트는 임의 쓰기 세그먼트 상태로 변환된다.
이와 같이, 본 발명의 일실시예에 따른 데이터 할당 방법은 각각의 세그먼트 종류에 따라 플래시 메모리의 물리적 위치를 다르게 할당하는 것이다. 사상 관리부에서는 세그먼트의 종류에 따라서 서로 다른 쓰기 시작 지점(연속쓰기 포인터, 혼합쓰기 포인터, 임의쓰기 포인터)을 유지한다. 혼합 쓰기의 경우 연속 쓰기와 임의 쓰기가 섞여 있다. 혼합 쓰기 세그먼트에 요청된 쓰기 패턴 중 쓰기 요청된 데이터의 크기가 임계 값 보다 작은 경우에는 임의쓰기 포인터가 가리키는 위치에 쓴다. 본 발명의 일실시예에 따른 데이터 할당 방법은 세그먼트의 종류에 따라 시간과 공간 지역성이 다르기 때문에 쓰레기 수집과정의 효율성을 높이기 위한 방법으로 활용될 수 있다. 본 실시예들을 통해서 쓰레기 수집과정에서 발생하는 유효한 페이지 복사와 블록 지우기에 드는 비용을 줄일 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
410: 쓰기 버퍼
420: 쓰기 버퍼 관리부
430: 플래시 메모리
440: 사상 관리부

Claims (18)

  1. 플래시 메모리를 사용하는 저장 장치에서 상기 플래시 메모리의 주소 사상(address mapping)과 데이터 페이지 할당(data allocation)을 관리하는 방법에 있어서,
    데이터의 쓰기 패턴을 판단하는 단계;
    상기 쓰기 패턴에 따라, 일정한 크기의 블록으로 사상 단위를 구성하는 블록 사상, 일정한 크기의 페이지로 사상 단위를 구성하는 페이지 사상, 상기 데이터의 크기로 사상 단위를 구성하는 범위 사상 중 적어도 하나의 사상 방식(mapping method)을 선택하는 단계; 및
    상기 쓰기 패턴에 대응하여 상기 데이터에 대한 페이지를 할당하는 단계
    를 포함하는 주소 사상과 데이터 페이지 할당 방법.
  2. 제1항에 있어서,
    상기 데이터의 쓰기 패턴을 판단하는 단계는,
    상기 쓰기 패턴을 쓰기 버퍼에서의 쓰기 패턴과 상기 플래시 메모리에 저장된 사상 테이블의 크기에 따라 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  3. 제1항에 있어서,
    상기 쓰기 패턴은 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류되고,
    상기 사상 방식을 선택하는 단계는,
    상기 연속 쓰기에 대하여 상기 블록 사상을 선택하고 상기 임의 쓰기에 대하여 상기 페이지 사상을 선택하고 상기 혼합 쓰기에 대하여 상기 범위 사상을 선택하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  4. 제3항에 있어서,
    상기 저장 장치의 논리적 영역은,
    일정 수의 블록으로 구획되어 각각의 블록에 대하여 상기 연속 쓰기, 상기 임의 쓰기, 상기 혼합 쓰기 중 하나의 패턴으로 일치시키는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  5. 제1항에 있어서,
    상기 데이터에 대한 페이지를 할당하는 단계는,
    상기 쓰기 패턴에 따라 상기 플래시 메모리의 물리적 위치를 다르게 할당하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  6. 제5항에 있어서,
    상기 쓰기 패턴은 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류되고,
    상기 데이터에 대한 페이지를 할당하는 단계는,
    상기 플래시 메모리의 쓰기 시작 지점을 상기 쓰기 패턴에 따라 연속쓰기 포인터, 임의쓰기 포인터, 혼합쓰기 포인터로 구분하여 유지하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  7. 제6항에 있어서,
    상기 데이터에 대한 페이지를 할당하는 단계는,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 상기 데이터의 쓰기 패턴이 상기 연속 쓰기에 해당하는 경우 상기 연속쓰기 포인터가 가리키는 위치에 상기 데이터를 저장하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  8. 제6항에 있어서,
    상기 데이터에 대한 페이지를 할당하는 단계는,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 상기 데이터의 쓰기 패턴이 상기 연속 쓰기에 해당하지 않으면서 상기 데이터의 크기가 임계 값 보다 작은 경우 상기 임의쓰기 포인터가 가리키는 위치에 상기 데이터를 저장하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  9. 제6항에 있어서,
    상기 데이터에 대한 페이지를 할당하는 단계는,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 상기 데이터의 쓰기 패턴이 상기 연속 쓰기에 해당하지 않으면서 상기 데이터의 크기가 임계 값 보다 큰 경우 상기 혼합쓰기 포인터가 가리키는 위치에 상기 데이터를 저장하는 것
    을 특징으로 하는 주소 사상과 데이터 페이지 할당 방법.
  10. 플래시 메모리의 주소 사상과 데이터 페이지 할당을 관리하는 저장 장치에 있어서,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 데이터의 쓰기 패턴을 판단하는 쓰기 버퍼 관리부; 및
    상기 쓰기 패턴에 따라, 일정한 크기의 블록으로 사상 단위를 구성하는 블록 사상, 일정한 크기의 페이지로 사상 단위를 구성하는 페이지 사상, 상기 데이터의 크기로 사상 단위를 구성하는 범위 사상 중 적어도 하나의 사상 방식을 선택하는 사상 관리부
    를 포함하고,
    상기 쓰기 버퍼 관리부는,
    상기 쓰기 패턴에 대응하여 상기 데이터에 대한 페이지를 할당하는 것
    을 특징으로 하는 저장 장치.
  11. 제10항에 있어서,
    상기 쓰기 버퍼 관리부는,
    상기 쓰기 패턴을 쓰기 버퍼에서의 쓰기 패턴과 상기 플래시 메모리에 저장된 사상 테이블의 크기에 따라 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류하는 것
    을 특징으로 하는 저장 장치.
  12. 제10항에 있어서,
    상기 쓰기 패턴은 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류되고,
    상기 사상 관리부는,
    상기 연속 쓰기에 대하여 상기 블록 사상을 선택하고 상기 임의 쓰기에 대하여 상기 페이지 사상을 선택하고 상기 혼합 쓰기에 대하여 상기 범위 사상을 선택하는 것
    을 특징으로 하는 저장 장치.
  13. 제12항에 있어서,
    상기 저장 장치의 논리적 영역은,
    일정 수의 블록으로 구획되어 각각의 블록에 대하여 상기 연속 쓰기, 상기 임의 쓰기, 상기 혼합 쓰기 중 하나의 패턴으로 일치시키는 것
    을 특징으로 하는 저장 장치.
  14. 제10항에 있어서,
    상기 쓰기 버퍼 관리부는,
    상기 쓰기 패턴에 따라 상기 플래시 메모리의 물리적 위치를 다르게 할당하는 것
    을 특징으로 하는 저장 장치.
  15. 제14항에 있어서,
    상기 쓰기 패턴은 연속 쓰기, 임의 쓰기, 혼합 쓰기로 분류되고,
    상기 쓰기 버퍼 관리부는,
    상기 플래시 메모리의 쓰기 시작 지점을 상기 쓰기 패턴에 따라 연속쓰기 포인터, 임의쓰기 포인터, 혼합쓰기 포인터로 구분하여 유지하는 것
    을 특징으로 하는 저장 장치.
  16. 제15항에 있어서,
    상기 쓰기 버퍼 관리부는,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 상기 데이터의 쓰기 패턴이 상기 연속 쓰기에 해당하는 경우 상기 연속쓰기 포인터가 가리키는 위치에 상기 데이터를 저장하는 것
    을 특징으로 하는 저장 장치.
  17. 제15항에 있어서,
    상기 쓰기 버퍼 관리부는,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 상기 데이터의 쓰기 패턴이 상기 연속 쓰기에 해당하지 않으면서 상기 데이터의 크기가 임계 값 보다 작은 경우 상기 임의쓰기 포인터가 가리키는 위치에 상기 데이터를 저장하는 것
    을 특징으로 하는 저장 장치.
  18. 제15항에 있어서,
    상기 쓰기 버퍼 관리부는,
    쓰기 버퍼로부터 상기 플래시 메모리에 요청되는 상기 데이터의 쓰기 패턴이 상기 연속 쓰기에 해당하지 않으면서 상기 데이터의 크기가 임계 값 보다 큰 경우 상기 혼합쓰기 포인터가 가리키는 위치에 상기 데이터를 저장하는 것
    을 특징으로 하는 저장 장치.
KR1020100136629A 2010-12-28 2010-12-28 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법 KR20120074707A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100136629A KR20120074707A (ko) 2010-12-28 2010-12-28 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100136629A KR20120074707A (ko) 2010-12-28 2010-12-28 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법

Publications (1)

Publication Number Publication Date
KR20120074707A true KR20120074707A (ko) 2012-07-06

Family

ID=46708792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100136629A KR20120074707A (ko) 2010-12-28 2010-12-28 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법

Country Status (1)

Country Link
KR (1) KR20120074707A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101381597B1 (ko) * 2013-01-31 2014-04-07 한국과학기술원 다중채널 ssd의 패턴기반 관리 시스템 및 그 방법
WO2014157817A1 (ko) * 2013-03-25 2014-10-02 아주대학교산학협력단 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
KR101648725B1 (ko) * 2015-06-15 2016-08-30 서울대학교산학협력단 Ssd를 이용한 메모리 관리 방법
US9483413B2 (en) 2014-10-24 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
US9990277B2 (en) 2014-01-09 2018-06-05 Electronics And Telecommunications Research Institute System and method for efficient address translation of flash memory device
US10146474B2 (en) 2015-12-23 2018-12-04 SK Hynix Inc. Memory system and operating method of memory system
US10692171B2 (en) 2015-11-17 2020-06-23 Samsung Electronics Co., Ltd. Method of operating virtual address generator and method of operating system including the same

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101381597B1 (ko) * 2013-01-31 2014-04-07 한국과학기술원 다중채널 ssd의 패턴기반 관리 시스템 및 그 방법
WO2014157817A1 (ko) * 2013-03-25 2014-10-02 아주대학교산학협력단 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
KR101453313B1 (ko) * 2013-03-25 2014-10-22 아주대학교산학협력단 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
US20160048448A1 (en) * 2013-03-25 2016-02-18 Ajou University Industry-Academic Cooperation Foundation Method for mapping page address based on flash memory and system therefor
US9830260B2 (en) 2013-03-25 2017-11-28 Ajou University Industry-Academic Cooperation Foundation Method for mapping page address based on flash memory and system therefor
US9990277B2 (en) 2014-01-09 2018-06-05 Electronics And Telecommunications Research Institute System and method for efficient address translation of flash memory device
US9483413B2 (en) 2014-10-24 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
KR101648725B1 (ko) * 2015-06-15 2016-08-30 서울대학교산학협력단 Ssd를 이용한 메모리 관리 방법
US10692171B2 (en) 2015-11-17 2020-06-23 Samsung Electronics Co., Ltd. Method of operating virtual address generator and method of operating system including the same
US10146474B2 (en) 2015-12-23 2018-12-04 SK Hynix Inc. Memory system and operating method of memory system

Similar Documents

Publication Publication Date Title
US11709597B2 (en) Memory system and method for controlling nonvolatile memory
CN110678836B (zh) 用于键值存储的持久性存储器
JP6982468B2 (ja) メモリシステムおよび制御方法
KR101612922B1 (ko) 메모리 시스템 및 메모리 시스템 관리 방법
US9053013B2 (en) Data storage device and operating method thereof
US9329995B2 (en) Memory device and operating method thereof
US9513815B2 (en) Memory management based on usage specifications
US8312217B2 (en) Methods and systems for storing data blocks of multi-streams and multi-user applications
KR101618634B1 (ko) 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
US9063862B2 (en) Expandable data cache
US20060218347A1 (en) Memory card
US8954656B2 (en) Method and system for reducing mapping table size in a storage device
KR20120074707A (ko) 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법
US20130166828A1 (en) Data update apparatus and method for flash memory file system
KR20140035426A (ko) 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법
EP3752905B1 (en) Append only streams for storing data on a solid state device
CN107817945B (zh) 一种混合内存结构的数据读取方法和系统
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20160106240A (ko) 반도체 장치 및 그 동작 방법
US20150220433A1 (en) Method for managing flash memories having mixed memory types using a finely granulated allocation of logical memory addresses to physical memory addresses
JP7013546B2 (ja) メモリシステム
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
JP6430039B2 (ja) 記憶装置および記憶装置の制御方法
US11321243B2 (en) Data storage device including a semiconductor device managing address mapping of a semiconductor memory device
JP7204020B2 (ja) 制御方法

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