KR101403922B1 - 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 - Google Patents

접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 Download PDF

Info

Publication number
KR101403922B1
KR101403922B1 KR1020110085299A KR20110085299A KR101403922B1 KR 101403922 B1 KR101403922 B1 KR 101403922B1 KR 1020110085299 A KR1020110085299 A KR 1020110085299A KR 20110085299 A KR20110085299 A KR 20110085299A KR 101403922 B1 KR101403922 B1 KR 101403922B1
Authority
KR
South Korea
Prior art keywords
data
flash memory
access frequency
pram
area
Prior art date
Application number
KR1020110085299A
Other languages
English (en)
Other versions
KR20130022604A (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 KR1020110085299A priority Critical patent/KR101403922B1/ko
Publication of KR20130022604A publication Critical patent/KR20130022604A/ko
Application granted granted Critical
Publication of KR101403922B1 publication Critical patent/KR101403922B1/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/064Management of blocks
    • 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
    • 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/12Replacement control
    • 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

Abstract

본 발명은 데이터 저장장치 및 데이터 저장 방법에 관한 것으로, 플래쉬 변환 계층을 이용하여 플래쉬 메모리를 맵핑하는 저장장치에 있어서, 접근 빈도가 높은 데이터를 PRAM(Phase-change Random Access Memory)에 할당하고, 접근 빈도가 낮은 데이터를 플래쉬 메모리에 할당하는 것을 특징으로 한다.
상기와 같이 구성된 본 발명에 따르면, 접근빈도가 낮은 Cold 데이터는 플래쉬메모리에, 로그 블록 및 접근빈도가 높은 Hot 데이터를 덮어쓰기가 가능한 PRAM에 할당함으로써, 합병 연산 및 삭제 연산을 감소시켜 저장장치의 마모도를 감소시킬 수 있는 효과가 있고, 플래쉬 메모리보다 성능이 좋고 덮어쓰기가 가능한 PRAM에 접근 빈도가 높은 데이터를 기록함으로써 기존의 BAST 방법과 FAST 방법에 비해 저장 장치의 읽기, 쓰기 성능이 향상되는 효과가 있다.

Description

접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법{Apparatus and method for data storing according to an access degree}
본 발명은 데이터 저장장치 및 데이터 저장 방법에 관한 것으로, 특히 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법에 대한 것이다.
저장장치(Solid State Drive)는 낸드 플래쉬의 배열로 구성되어 있기 때문에 전력 소모가 적고, 충격에 강하며, 전원 공급이 중단 되어도 정보가 사라지지 않는 비휘발성이다. 하지만 플래쉬 메모리로 구성된 저장장치는 기존의 하드 디스크와는 다른 두 가지의 특성을 가지고 있다.
첫째, 플래쉬 메모리의 각 블록 당 쓰기 가능 횟수가 제한된다. 현재 플래쉬 메모리는 SLC(Single Level Cell) 타입과 MLC(Multi Level Cell) 타입으로 구분할 수 있는데, SLC의 경우 약 10만 번의 쓰기가 가능하고, MLC의 경우 SLC의 1/10인 약 1만 번 정도의 쓰기만이 가능하다. 공간 효율성을 높이기 위하여 MLC 타입의 메모리가 사용되는 경우 SLC의 메모리를 사용하는 경우보다 수명이 단축되므로 플래쉬 메모리 전반에서 균등하게 데이터를 쓰는 방법이 필요하다.
둘째, 플래쉬 메모리는 일반 디스크와는 다르게 덮어쓰기가 불가능 하므로 데이터를 쓰기 전에 지워야 하는 문제점이 있다. 덮어쓰기가 불가능한 플래쉬 메모리의 특징으로 인하여 삭제 연산이 많이 발생되므로 저장장치의 수명이 단축되며, 저속의 삭제연산으로 인하여 플래쉬 메모리 전반의 성능도 저하된다.
이처럼 저장장치는 장점도 많지만 기존의 일반 디스크에서 발생되지 않는 많은 문제점을 가지고 있다. 이러한 플래쉬 메모리의 여러 문제점을 해결하기 위하여 플래쉬 변환 계층(Flash Translation Layer, 이하 ‘FTL’이라 한다.)을 이용하여, 블록 디바이스 설정에 관계없이 일반 디스크처럼 플래쉬 메모리 저장장치를 관리하는 방법이 제안되었다. 여기서 FTL은 플래쉬 메모리에서 일반적인 파일 시스템을 지원하기 위하여 사용되는 소프트웨어 계층으로서, 플래쉬 메모리에 쓰기 연산을 하기 전에 블록단위를 삭제하고, 플래쉬 메모리에서 특정 블록만이 사용되어 마모되는 것을 방지하는 역할을 한다.
FTL은 맵핑 방법에 따라 세 가지로 분류 하는데, 페이지 단위로 맵핑하는 페이지 맵핑 방법, 블록 단위를 기준으로 하는 블록 맵핑 방법 및 페이지 맵핑 방법과 블록 맵핑 방법의 장점을 취한 하이브리드 맵핑 방법이 있다. 페이지 맵핑 방법의 경우 쓰기의 가장 작은 단위인 페이지를 기준으로 하여 맵핑하기 때문에, 플래쉬 메모리의 저장 공간이 클수록 맵 테이블의 크기가 커지게 되고, 맵 테이블을 관리하는 DRAM의 저장 공간 또한 늘어나야 하는 문제점을 가지고 있다.
블록 맵핑 방법은 맵 테이블의 크기를 줄이기 위해 페이지를 단위 블록을 기준으로 맵 테이블을 만드는 것으로, 맵 테이블의 크기를 줄일 수 있지만, 저장 공간의 효율성이 떨어지며, 삭제 연산이 많이 일어난다는 문제점이 있다.
하이브리드 맵핑 방법(또는 로그 블록 맵핑 방법이라고도 한다.)은 페이지 맵핑 방법과 블록 맵핑 방법의 장점만을 취합한 것으로 BAST(Block Associative Sector Translation)와 FAST (Fully Associative Sector Translation)로 나뉜다.
BAST는 로그 블록이라는 빈 블록을 쓰기 버퍼로 할당하여 쓰기 요청을 처리한다. 데이터 블록과 로그 블록은 1:1 대응 관계를 가지며, 데이터 블록에서 갱신 연산이 발생할 경우, 상기 데이터 블록에 로그 블록이 할당되어 로그 블록의 페이지에 데이터를 기록한다. 로그 블록의 수는 데이터 블록의 수에 비하여 적으므로 로그 블록이 전부 사용 중이면, 빈 로그 블록을 만들기 위하여 로그 블록에 저장된 데이터들을 다시 데이터 블록으로 전송한 후, 상기 데이터들을 삭제한다.
도 1은 BAST 방법에서 로그 블록에 데이터를 쓰는 과정을 도시한 도면이다. 도 1에 도시한 바와 같이 BAST 방법은 데이터 블록과 로그 블록이 1:1로 대응된다. BAST 방법은 순차적인 데이터 갱신에 좋은 성능을 보이나, 랜덤쓰기가 발생할 경우 로그 블록이 전부 사용되기 전에 새로운 로그 블록을 다시 할당해야 하는 문제점이 있다.
도 2는 FAST 방법에서 로그 블록에 데이터를 쓰는 과정을 도시한 도면이다. FAST (Fully Associative Sector Translation)는 BAST 방법과 같이 랜덤쓰기에서 발생되는 로그블록의 낭비를 방지하기 위하여 모든 데이터 블록들이 로그블록을 공유하는 방법을 취한다. FAST는 로그 블록과 데이터 블록의 대응관계를 1:N으로 확장하고, 로그 블록을 순차 쓰기와 임의 쓰기를 구분하여 순차쓰기용 로그블록과 임의 쓰기용 로그 블록을 따로 관리하여 처리함으로써 임의쓰기에서 로그블록의 활용율을 높였다. 따라서 같은 작업환경에서 BAST보다 공간 활용율이 증대되므로 로그 블록의 고갈에 따라 가비지(gabage) 수집 연산을 통하여 빈 공간을 확보하는 합병연산이 적게 발생하고 불필요한 읽기/쓰기/삭제 연산이 감소한다. 여기서 합병연산이란, 1) 교체될 로그 블록을 선택하는 과정 2) 교체될 로그 블록과 연관된 데이터 블록들을 선정하는 과정 3) 선택된 플래쉬 메모리 블록 내의 유효한 페이지들을 빈 블록에 복사하는 과정 4) 이전 블록들을 삭제하고 주소 사상 테이블을 수정하는 과정으로 이루어진다. 일반적으로 과정 3)과 4)에서의 복사 및 삭제 연산이 전반적인 합병 연산의 비용을 결정한다. 하지만 FAST는 임의 쓰기의 효율성을 높인 전략이므로, 임의 쓰기와 순차 쓰기 명령이 혼합된 경우 효율적인 대응이 어려운 문제점이 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 접근빈도에 따라 데이터를 PRAM(Phase-change Random Access Memory) 또는 플래쉬 메모리에 선택적으로 할당함으로써 전반적인 저장 성능을 향상될 수 있을 뿐만 아니라, 로그 블록을 PRAM에 할당하여 사용함으로써 낸드 플래쉬 메모리의 제한된 쓰기 가능 횟수 문제점을 해결할 수 있는 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법을 제공하는 것을 목적으로 한다.
본 발명에 따른 접근 빈도에 따라 데이터를 할당하는 저장장치는, 플래쉬 변환 계층을 이용하여 플래쉬 메모리를 맵핑하는 저장장치에 있어서, 접근 빈도가 높은 데이터를 PRAM(Phase-change Random Access Memory)에 할당하고, 접근 빈도가 낮은 데이터를 플래쉬 메모리에 할당하는 것을 특징으로 한다.
또한, 상기 플래쉬 메모리는 블록을 단위 기준으로 맵핑하는 블록 맵핑 방법을 사용하고, 상기 PRAM은 페이지를 단위 기준으로 맵핑하는 페이지 맵핑 방법을 사용하는 것을 특징으로 한다.
또한, 상기 PRAM은, 상기 데이터에 대하여 쓰기 연산 또는 갱신 연산 요청 시 쓰기 버퍼로 사용되는 로그 블록 영역, 상기 접근 빈도가 기 설정된 값을 초과하는 데이터가 할당되는 Hot 데이터 영역, 상기 데이터의 접근 빈도 수가 저장되는 접근 빈도 체크 영역을 포함하며, 상기 플래쉬 메모리는 상기 접근 빈도가 상기 기 설정된 값 이하인 데이터가 할당되는 Cold 데이터 영역이 포함되는 것을 특징으로 한다.
또한, 상기 플래쉬 메모리의 상기 Cold 데이터 영역에 포함된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하는 경우 상기 플래쉬 메모리의 상기 Cold 데이터 영역에 포함된 데이터를 상기 PRAM의 상기 Hot 데이터 영역에 기록하는 교체 연산을 수행하는 것을 특징으로 한다.
또한, 상기 교체 연산은, 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값 이하이면 상기 입력 또는 출력 요청된 데이터를 상기 플래쉬 메모리의 Cold 영역 기록하고, 상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하고 상기 Hot 데이터 영역에 빈 공간이 존재하면, 상기 입력 또는 출력 요청된 데이터를 Hot 데이터 영역의 빈 공간에 기록하며, 상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하나 상기 Hot 데이터 영역에 빈 공간이 존재하지 않으면, 상기 Hot 데이터 영역의 블록 중 접근 빈도가 상기 기 설정된 값 이하인 데이터를 상기 입력 또는 출력 요청된 데이터와 교체하는 데이터 교환을 하는 것을 특징으로 한다.
또한, 상기 데이터 교환은 상기 접근 빈도가 상기 기 설정된 값을 초과하는 입력 또는 출력 요청된 데이터가 일정 개수 이상인 경우 수행되는 것을 특징으로 한다.
본 발명에 따른 접근 빈도에 따라 데이터를 할당하는 데이터 저장방법은, 플래쉬 변환 계층을 이용하여 플래쉬 메모리를 맵핑하는 저장장치에 있어서,
접근 빈도가 높은 데이터를 PRAM에 할당하고, 접근 빈도가 낮은 데이터를 플래쉬 메모리에 할당하는 것을 특징으로 한다.
또한, 상기 플래쉬 메모리는 블록을 단위 기준으로 맵핑하는 블록 맵핑 방법을 사용하고, 상기 PRAM은 페이지를 단위 기준으로 맵핑하는 페이지 맵핑 방법을 사용하는 것을 특징으로 한다.
또한, 상기 PRAM은, 상기 데이터에 대하여 쓰기 연산 또는 갱신 연산 요청 시 쓰기 버퍼로 사용되는 로그 블록 영역, 상기 접근 빈도가 기 설정된 값을 초과하는 데이터가 할당되는 Hot 데이터 영역, 상기 데이터의 접근 빈도 수가 저장되는 접근 빈도 체크 영역을 포함하며, 상기 플래쉬 메모리는 상기 접근 빈도가 상기 기 설정된 값 이하인 데이터가 할당되는 Cold 데이터 영역이 포함되는 것을 특징으로 한다.
또한, 상기 플래쉬 메모리의 상기 Cold 데이터 영역에 포함된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하는 경우 상기 플래쉬 메모리의 상기 Cold 데이터 영역에 포함된 데이터를 상기 PRAM의 상기 Hot 데이터 영역에 기록하는 교체 연산을 수행하는 것을 특징으로 한다.
또한, 상기 교체 연산은, 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값 이하이면 상기 입력 또는 출력 요청된 데이터를 상기 플래쉬 메모리의 Cold 영역 기록하는 단계, 상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하고 상기 Hot 데이터 영역에 빈 공간이 존재하면, 상기 입력 또는 출력 요청된 데이터를 Hot 데이터 영역의 빈 공간에 기록하는 단계, 상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하나 상기 Hot 데이터 영역에 빈 공간이 존재하지 않으면, 상기 Hot 데이터 영역의 블록 중 접근 빈도가 상기 기 설정된 값 이하인 데이터를 상기 입력 또는 출력 요청된 데이터와 교체하는 데이터 교환을 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 데이터 교환은 상기 접근 빈도가 상기 기 설정된 값을 초과하는 입력 또는 출력 요청된 데이터가 일정 개수 이상인 경우 수행되는 것을 특징으로 한다.
상기와 같이 구성된 본 발명에 따르면, 접근빈도가 낮은 Cold 데이터는 플래쉬메모리에, 로그 블록 및 접근빈도가 높은 Hot 데이터를 덮어쓰기가 가능한 PRAM에 할당함으로써, 합병 연산 및 삭제 연산을 감소시켜 저장장치의 마모도를 감소시킬 수 있는 효과가 있고, 플래쉬 메모리보다 성능이 좋고 덮어쓰기가 가능한 PRAM에 접근 빈도가 높은 데이터를 기록함으로써 기존의 BAST 방법과 FAST 방법에 비해 저장 장치의 읽기, 쓰기 성능이 향상되는 효과가 있다.
도 1은 BAST 방법에서 로그 블록에 데이터를 쓰는 과정을 도시한 도면이다.
도 2는 FAST 방법에서 로그 블록에 데이터를 쓰는 과정을 도시한 도면이다.
도 3은 본 발명에 따른 저장장치의 구성도를 도시한 도면이다.
도 4는 본 발명에 따른 저장장치의 하이브리드 맵핑 방법을 도시한 도면이다.
도 5는 본 발명에 따른 하이브리드 맵핑 방법을 이용한 저장장치의 전체 구조를 도시한 도면이다.
도 6은 PRAM을 이용한 데이터 할당 방법을 도시한 도면이다.
도 7은 본 발명에 따른 하이브리드 맵핑 방법을 이용한 데이터 교체 알고리즘의 순서도를 도시한 도면이다.
도 8은 접근빈도의 임계 값 및 N값의 변동에 따른 저장장치의 실행시간을 도시한 도면이다.
도 9는 로그 블록의 개수 변경에 따른 삭제 연산 발생 빈도를 도시한 도면이다.
도 10은 본 발명, 종래의 BAST 방법 및 종래의 FAST 방법에 대하여 발생되는 삭제연산을 표로 도시한 도면이다.
도 11a 및 도 11b는 본 발명, 종래의 BAST 방법 및 종래의 FAST 방법에 대하여 각각 순차/임의 쓰기 및 순차/임의 읽기 성능을 도시한 도면이다.
일반적으로 요청되는 데이터는 쓰기보다 읽기가 많다. 따라서 플래쉬 메모리 보다 읽기 속도가 높은 PRAM에 접근 빈도가 높은 데이터를 저장하여 읽기 연산을 하는 경우 성능 향상을 가져올 수 있다. 또한 접근 빈도가 높은 데이터 일수록 데이터 갱신이 자주 일어날 확률이 높기 때문에 접근 빈도가 높은 데이터들을 덮어쓰기가 가능한 PRAM에 저장하면 플래쉬 메모리에서 발생되는 삭제 연산을 감소시켜 플래쉬 메모리의 성능 및 수명을 향상시킬 수 있다.
여기서 PRAM(Phase-change Random Access Memory)은 상변화에 따른 저항의 차이로 데이터를 저장하는 메모리 소자로서, 현재 PRAM은 주로 주 메모리로 사용되는 DRAM(Dynamic Random Access Memory)과 CPU의 캐쉬 메모리를 대체하기 위한 메모리로 연구되고 있다. PRAM을 주 메모리나 CPU의 캐쉬로 사용할 경우, 비휘발성의 특징을 이용하여 운영체제에 대한 정보를 미리 저장함으로써 부팅 시간을 단축 시킬 수 있다. 이러한 장점은 일반 컴퓨터 환경에서 큰 장점이 아닐 수 있지만, 모바일 환경에서는 NOR 플래쉬를 대체하여 생산 비용을 감소시키고 저장 효율을 높일 수 있다.
PRAM의 경우 비휘발성이라는 장점이 있지만, DRAM이나 SRAM에 비하여 속도가 떨어지기 때문에 실제 적용하는데 어려움이 있다. 하지만 표 1에서 보는 바와 같이 저장장치로서 플래쉬 메모리보다 저장 속도가 빠르고, 플래쉬 메모리와는 달리 덮어쓰기가 가능하므로 플래쉬 메모리를 대체 할 수 있는 차세대 저장장치로 주목 받고 있다. 따라서 본 발명에서는 PRAM을 이용하여 저장 속도가 느리고 덮어쓰기가 불가능한 플래쉬 메모리의 단점을 보완하고, 플래쉬 메모리의 성능을 향상 시키는 방법에 대하여 설명한다.
Memory
device
Access time
Read Write Erase
MLC NAND 121us
(page)
861us
(page)
1.5ms
(block)
PRAM 80ns
(word)
10us
(word)
N/A

도 3은 본 발명에 따른 저장장치의 구성도를 도시한 도면이다. 본 발명에서는 데이터 저장장치의 예로서 SSD(Solid State Drive)를 기준으로 설명하나 반드시 이에 한정되는 것은 아니다. 상기 도면에 따르면, 본 발명에 따른 저장장치는 낸드 플래쉬 메모리의 제한된 쓰기 가능 횟수 문제와 삭제연산으로 인한 성능 감소문제를 해결하기 위해, 접근빈도에 따른 데이터 할당기법과 PRAM(Phase-change Random Access Memory)을 접근빈도 체크영역, 로그 블록 및 Hot 데이터를 저장하는 영역으로 사용하여 저장장치의 성능을 향상시킨다.
보다 구체적으로 설명하면 플래쉬 메모리는 블록 맵핑 방법을 사용하고, PRAM은 페이지 맵핑 방법을 사용하며, 전술한 하이브리드 맵핑 방법에서 쓰기 버퍼로 사용되던 로그 블록으로 플래쉬 메모리가 아닌 덮어쓰기 가능한 PRAM을 사용한다. 또한 데이터에 대한 접근 빈도를 체크하여, 접근 빈도가 높은 데이터를 Hot 데이터, 접근 빈도가 낮은 데이터를 Cold 데이터로 구분하고 Hot 데이터를 PRAM으로 할당하여 플래쉬 메모리에서의 쓰기/삭제 연산을 줄이고 성능을 향상시킨다.
도 4는 본 발명에 따른 저장장치의 하이브리드 맵핑 방법을 도시한 도면이다. 도 4에 따르면, 본 발명에 따른 저장장치의 하이브리드 맵핑 방법은 일반적인 로그 블록 맵핑 방법을 사용하며, 플래쉬 메모리의 일부분을 로그 블록으로 사용하던 기존의 방법 대신에, 로그 블록을 PRAM에 저장한다. 로그 블록을 플래쉬 메모리가 아닌 PRAM에 저장함으로써 발생하는 이점은 다음과 같다.
첫째, 삭제 연산를 줄여 플래쉬 메모리의 신뢰성을 높인다. 플래쉬 메모리는 지우는 횟수에 제한을 가지고 있다. 기존의 하이브리드 맵핑 방법 중 하나인 BAST의 경우, 데이터 블록의 수에 비해 로그 블록의 수는 적고, 한 개의 데이터 블록에 한 개의 로그블록을 할당하기 때문에 여러 데이터 블록에 대해 덮어쓰기 연산이 발생할 경우 잦은 합병연산이 발생하여, 저장장치의 수명을 단축시킨다. 반면, PRAM의 경우 덮어쓰기 연산이 가능하므로 로그 블록을 전부 활용할 수 있다. 따라서 상대적으로 비용 부담이 큰 완전 합병 연산의 수를 줄일 수 있고, 그에 따른 삭제 연산 역시 줄일 수 있어서, 플래쉬 메모리의 신뢰성을 향상 시킬 수 있다.
둘째, PRAM은 낸드 플래쉬 보다 빠른 접근속도를 가진다. 따라서 PRAM을 로그 블록으로 사용한 경우 플래쉬 메모리를 로그 블록으로 사용했을 때 보다 빠른 성능을 얻을 수 있다. PRAM에 Hot 데이터를 저장하는 할당 방법도 이러한 장점을 이용하고 있다.
도 5는 본 발명에 따른 하이브리드 맵핑 방법을 이용한 저장장치의 전체 구조를 도시한 도면이다. 상기 도면에 따르면 플래쉬 메모리는 Cold 데이터 블록 영역으로 사용되고, PRAM은 접근빈도 체크영역, 로그 블록 및 Hot 데이터를 저장하는 영역으로 사용된다.
도 6은 PRAM을 이용한 데이터 할당 방법을 도시한 도면이다. 도 6에 따르면, 읽기/쓰기 요청이 5, 7, 7, 5순서로 들어올 경우, 순서대로 로그 블록에 기록이 되고 맵핑 테이블 및 접근 빈도 체크 영역이 갱신 된다. 접근 빈도가 많다는 것은 그만큼 많이 사용되는 블록을 의미하는 것이므로, 도 6에 도시한 바와 같이 접근 빈도가 일정 수치 이상이면 그 블록을 Hot 데이터로 분류하게 된다. 즉, PRAM의 빈 Hot 데이터 블록에 상기 분류된 Hot 데이터를 할당한 후 상기 Hot 데이터를 PRAM의 할당된 데이터 블록으로 이동한 후 맵핑 테이블에서 실제 블록 주소의 위치를 할당된 Hot 데이터 블록의 위치로 변경한다.
한편, PRAM에 Hot 데이터를 할당함으로써 얻는 이점은 로그블록을 PRAM에 저장함으로써 얻는 이점과 비슷하다. 우선 접근 빈도가 많은 데이터일수록 다음 읽기/쓰기 요청 시 재사용될 확률이 높다. 플래쉬 메모리의 임의 쓰기, 읽기 성능은 연속적인 읽기 쓰기에 비하여 상대적으로 느린 단점을 가지고 있는데 플래쉬 메모리보다 속도가 빠른 PRAM에 재사용될 확률이 높은 데이터를 저장함으로써 저장장치의 전반적인 성능을 향상 시킬 수 있다.
또한, 데이터 업데이트 시, 플래쉬 메모리를 거치지 않고 덮어쓰기가 가능한 PRAM에서 처리되기 때문에, 플래쉬 메모리의 삭제 연산을 줄여 플래쉬 메모리가 마모되는 것을 늦출 수 있어 저장장치의 신뢰성을 향상 시킬 수 있으며, 플래쉬 메모리의 느린 삭제 연산으로 인한 저장장치의 전반적인 성능 저하도 방지할 수 있다.
다음은 접근 빈도 수 체크에 따른 Hot 데이터와 Cold 데이터 간 데이터 교체방법에 대하여 설명한다. 로그 블록 및 Hot데이터 할당 영역으로 사용되는 PRAM의 용량에는 물리적인 한계가 있다. 따라서 PRAM에 할당된 Hot 데이터블록 중 접근 빈도가 적은 블록에 저장된 데이터를 플래쉬 메모리에 할당된 Cold 데이터 블록 중 접근 빈도가 큰 블록에 저장된 데이터로 교체하는 연산이 필요하다. 데이터의 접근 빈도를 체크하기 위해 PRAM의 일부 영역을 사용하여 접근 빈도를 카운트 한다. 접근 빈도 체크 영역의 크기는, 맵핑 테이블의 크기를 계산하는 방법과 같이 방법과 같이 플래쉬메모리와 PRAM의 블록의 수를 기준으로 계산된다. 접근 빈도를 체크하여 Hot 데이터에서 접근 빈도가 임계 값 이하로 떨어진 데이트 블록을 Cold 데이터에서 접근 빈도가 임계 값 이상으로 올라간 데이터 블록을 교체한다. 여기서 상기 임계 값은 Hot 데이터와 Cold 데이터를 구분할 수 있는 접근 빈도의 경계값을 의미한다.
도 7은 본 발명에 따른 하이브리드 맵핑 방법을 이용한 데이터 교체 알고리즘의 순서도를 도시한 도면이다. 먼저 입/출력 요청이 들어오면 PRAM의 접근빈도 체크 영역을 이용하여 접근빈도를 체크한다. 만약 접근빈도 수가 상기 임계 값 이하인 경우나 최초 입/출력 요청일 경우는 플래쉬 메모리에 데이터를 저장 하고 접근빈도 수를 증가시킨다. 상기 임계 값을 초과한 경우, Hot 데이터 영역에 빈 공간이 있다면 Hot 데이터 영역에 데이터 복사를 하고, 빈 공간이 없으면 Hot 데이터와 Cold 데이터를 교체한다.
교체 연산으로 데이터들을 자주 이동하게 될 경우 오히려 저장 장치 전반의성능 저하를 가져 올 수 있기 때문에, Hot데이터 영역에서 접근 빈도가 상기 임계 값 이하인 데이터 블록의 개수가 N개 이상일 경우 데이터 교환을 하는 것이 바람직하다. 여기에서 N은 교체 연산을 하기 위한 최소의 Hot데이터 영역에서 접근 빈도가 상기 임계 값 이하인 데이터 블록의 개수로서 N 값은 후술할 실험결과를 통하여 도출할 수 있다.
만약 Hot데이터 영역에서 접근 빈도가 상기 임계 값 이하인 데이터 블록의 개수가 N개가 넘지 않았을 경우 N개 이상이 될 때까지 데이터 교체를 하지 않는다. 만약 N값을 넘었을 경우 데이터 교체가 일어나고 PRAM의 일부 영역을 사용하는 접근 빈도 체크 영역을 초기화하여 다시 접근빈도에 따라 Hot 데이터와 Cold 데이터를 구분한다.
다음은 실험을 통하여 기존 하이브리드 맵핑 방법과 삭제횟수, 마모도 및 읽기/쓰기 성능을 비교한다.
표 2에 본 발명의 실험 환경을 도시하였다. 저장장치를 구성하는 플래쉬메모리 와 PRAM은 Disksim 기반의 저장장치 모듈이 패치된 시뮬레이터를 사용하여 구현 하였으며, 실험 데이터들은 리눅스 환경에서 일반적인 PC 환경에서의 프로그램 설치, 동영상 재생, 게임, 웹서핑 등의 상황을 blktrace 프로그램을 이용하여, trace 파일을 추출하여 실험하였다. 비교 대상으로 하이브리드 맵핑 방법 중 BAST 방법과 FAST 방법을 사용 하였다.
항목 시스템 사양
운영체제 Linux kernel 2.6.29
CPU Intel core 2 duo (2.4Ghz)
Memory DDR2 1GB * 3개
저장장치 MLC NAND 16GB
PRAM 64MB

우선 Hot 데이터와 Cold 데이터를 구분하는 접근빈도의 임계 값 및 교체 연산을 하기 위한 최소의 Hot데이터 영역에서 접근 빈도가 상기 임계 값 이하인 데이터 블록의 개수인 N값을 도출하기 위한 실험을 수행하였다.
Hot 데이터와 Cold데이터를 구분하기 위해 접근빈도의 임계 값을 설정하고 데이터 교체 횟수를 줄이기 위해 N값을 예측할 필요가 있다. 도 8은 접근빈도의 임계 값 및 N값의 변동에 따른 저장장치의 실행시간을 도시한 도면이다. 실행시간을 기준으로 실험한 결과 실험데이터에 따라 조금씩 차이를 보이나 Hot 데이터로 분류하기 위한 접근빈도 임계 값은 8 내지 32에서, 데이터 교환을 위한 N값은 4 내지 16일 때 각각 가장 좋은 성능을 보여주었다.
도 9는 로그 블록의 개수 변경에 따른 삭제 연산 발생 빈도를 도시한 도면이다. 로그 블록의 수가 가장 적은 4개로 설정 하였을 때, 삭제 연산이 가장 많이 발생 하였고, 로그 블록의 수가 커질수록 삭제 연산이 줄어드는 것을 볼 수 있다. 본 발명은 종래의 BAST 방법에 비해 60% 내지 40%, 종래의 FAST 방법에 비해 80% 내지 60% 정도로 삭제 연산이 적게 발생하였다. 로그 블록이 많을수록 합병 연산을 지연 시킬 수 있는 장점이 있지만, 로그 블록의 수가 많아지면 그로 인해 Hot 데이터를 저장할 수 있는 공간의 활용률이 떨어지는 단점이 있다.
도 10은 본 발명, 종래의 BAST 방법 및 종래의 FAST 방법에 대하여 발생되는 삭제연산을 표로 도시한 도면이다. 전술한 바와 같이, 본 발명은 접근빈도가 높은 데이터 및 로그블록을 PRAM에 저장하는 방법을 사용하였으므로 덮어쓰기가 안 되는 플래쉬메모리를 사용한 방법보다 합병 연산 발생 빈도를 감소시킬 수 있었고, 그 결과 도 10에 나타난 바와 같이 본 발명이 BAST 보다 약 46%, FAST 보다 약 38%정도 삭제연산 횟수가 감소하였다.
도 11a 및 도 11b는 본 발명, 종래의 BAST 방법 및 종래의 FAST 방법에 대하여 각각 순차/임의 쓰기 및 순차/임의 읽기 성능을 도시한 도면이다. 도 11a 및 도 11b에 도시한 바와 같이 본 발명에 의하면 종래의 BAST 방법 및 FAST 방법보다 합병 연산이 줄어 순차 쓰기의 경우 BAST에 비해 약 34%, FAST에 비해 약 19%, 임의 쓰기의 경우 BAST에 비해 약 59%, FAST에 비해 약 31%의 성능 향상을 보여주었다. 읽기 성능의 경우 접근빈도가 높은 Hot 데이터를 읽기 성능이 좋은 PRAM에 할당함으로써 얻어지는 접근속도 차이로 인해 순차 읽기의 경우 BAST에 비해 약 5%, FAST에 비해 3%, 임의 쓰기의 경우 BAST에 비해 약 8%, FAST에 비해 3% 성능향상을 보였다.
본 발명에서는 저장장치의 블록당 삭제 가능 횟수 문제 및 덮어 쓰기가 불가능한 저장장치의 데이터를 갱신하기 위하여 저장장치에 느린 삭제연산을 수행하여야 하는 문제점을 해결하여 저장장치의 읽기/쓰기 성능을 향상시키기 위하여, 데이터 할당방법 및 교체방법과 PRAM을 접근빈도 체크영역 및 로그 블록과 Hot 데이터를 저장하는 영역으로 사용하는 방법을 설명하였다.
본 발명은 하이브리드 맵핑 FTL을 기반으로 하며 접근빈도가 낮은 Cold 데이터는 플래쉬메모리에, 로그 블록 및 접근빈도가 높은 Hot 데이터를 덮어쓰기가 가능한 PRAM에 할당함으로써, 합병 연산 및 삭제 연산을 감소시켜 저장장치의 마모도를 감소시킬 수 있는 효과가 있었고, 플래쉬 메모리보다 성능이 좋고 덮어쓰기가 가능한 PRAM에 접근 빈도가 높은 데이터를 기록함으로써 기존의 BAST 방법과 FAST 방법에 비해 저장 장치의 읽기, 쓰기 성능이 향상되는 효과가 있었다.

Claims (12)

  1. 플래쉬 변환 계층을 이용하여 플래쉬 메모리를 맵핑하는 저장장치에 있어서,
    PRAM(Phase-change Random Access Memory); 및,
    플래쉬 메모리를 포함하고,
    상기 플래쉬 메모리는 블록을 단위 기준으로 맵핑하는 블록 맵핑 방법을 사용하고,
    상기 PRAM은 페이지를 단위 기준으로 맵핑하는 페이지 맵핑 방법을 사용하고,
    상기 PRAM은,
    데이터에 대한 쓰기 연산 또는 갱신 연산 요청 시 쓰기 버퍼로 사용되는 로그 블록 영역;
    상기 데이터의 접근 빈도의 수가 저장되는 접근 빈도 체크 영역;
    상기 접근 빈도가 기 설정된 값을 초과하는 데이터가 할당되는 Hot 데이터 영역;을 포함하며,
    상기 플래쉬 메모리는 상기 접근 빈도가 상기 기 설정된 값 이하인 데이터가 할당되는 Cold 데이터 영역을 포함하고,
    상기 플래쉬 메모리의 상기 Cold 데이터 영역에 할당된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하는 경우 상기 플래쉬 메모리의 상기 Cold 데이터 영역에 할당된 데이터를 상기 PRAM의 상기 Hot 데이터 영역에 기록하는 교체 연산을 수행하고,
    상기 교체 연산은,
    입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값 이하이면 상기 입력 또는 출력 요청된 데이터를 상기 플래쉬 메모리의 Cold 영역 기록하고,
    상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하고 상기 Hot 데이터 영역에 빈 공간이 존재하면, 상기 입력 또는 출력 요청된 데이터를 Hot 데이터 영역의 빈 공간에 기록하며,
    상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하나, 상기 Hot 데이터 영역에 빈 공간이 존재하지 않으면, 상기 Hot 데이터 영역의 블록 중 접근 빈도가 상기 기 설정된 값 이하인 데이터를 상기 입력 또는 출력 요청된 데이터와 교체하는 데이터 교환을 수행하고,
    상기 데이터 교환은 상기 접근 빈도가 상기 기 설정된 값을 초과하는 입력 또는 출력 요청된 데이터가 일정 개수 이상인 경우 수행되는 것을 특징으로 하는 접근 빈도에 따라 데이터를 할당하는 저장장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 기 설정된 값은 8 내지 32인 것을 특징으로 하는 접근 빈도에 따라 데이터를 할당하는 저장장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 일정 개수의 값은 4 내지 16인 것을 특징으로 하는 접근 빈도에 따라 데이터를 할당하는 저장장치.
  7. PRAM(Phase-change Random Access Memory); 및, 플래쉬 메모리를 포함하는 저장장치에서, 플래쉬 변환 계층을 이용하여 플래쉬 메모리를 맵핑하는 데이터 저장방법에 있어서,
    상기 플래쉬 메모리는 블록을 단위 기준으로 맵핑하는 블록 맵핑 방법을 사용하고,
    상기 PRAM은 페이지를 단위 기준으로 맵핑하는 페이지 맵핑 방법을 사용하고,
    상기 PRAM은,
    데이터에 대한 쓰기 연산 또는 갱신 연산 요청 시 쓰기 버퍼로 사용되는 로그 블록 영역;
    상기 데이터의 접근 빈도의 수가 저장되는 접근 빈도 체크 영역;
    상기 접근 빈도가 기 설정된 값을 초과하는 데이터가 할당되는 Hot 데이터 영역;을 포함하며,
    상기 플래쉬 메모리는 상기 접근 빈도가 상기 기 설정된 값 이하인 데이터가 할당되는 Cold 데이터 영역을 포함하고,
    상기 플래쉬 메모리의 상기 Cold 데이터 영역에 할당된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하는 경우 상기 플래쉬 메모리의 상기 Cold 데이터 영역에 할당된 데이터를 상기 PRAM의 상기 Hot 데이터 영역에 기록하는 교체 연산을 수행하고,
    상기 교체 연산은,
    입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값 이하이면 상기 입력 또는 출력 요청된 데이터를 상기 플래쉬 메모리의 Cold 영역 기록하는 단계;
    상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하고 상기 Hot 데이터 영역에 빈 공간이 존재하면, 상기 입력 또는 출력 요청된 데이터를 Hot 데이터 영역의 빈 공간에 기록하는 단계; 및,
    상기 입력 또는 출력 요청된 데이터의 접근 빈도가 상기 기 설정된 값을 초과하나 상기 Hot 데이터 영역에 빈 공간이 존재하지 않으면, 상기 Hot 데이터 영역의 블록 중 접근 빈도가 상기 기 설정된 값 이하인 데이터를 상기 입력 또는 출력 요청된 데이터와 교체하는 데이터 교환을 수행하는 단계;
    를 포함하고,
    상기 데이터 교환은 상기 접근 빈도가 상기 기 설정된 값을 초과하는 입력 또는 출력 요청된 데이터가 일정 개수 이상인 경우 수행되는 것을 특징으로 하는 접근 빈도에 따라 데이터를 할당하는 데이터 저장방법.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서,
    상기 기 설정된 값은 8 내지 32인 것을 특징으로 하는 접근 빈도에 따라 데이터를 할당하는 데이터 저장방법.
  11. 삭제
  12. 제7항에 있어서,
    상기 일정 개수의 값은 4 내지 16인 것을 특징으로 하는 접근 빈도에 따라 데이터를 할당하는 데이터 저장방법.
KR1020110085299A 2011-08-25 2011-08-25 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 KR101403922B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110085299A KR101403922B1 (ko) 2011-08-25 2011-08-25 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110085299A KR101403922B1 (ko) 2011-08-25 2011-08-25 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법

Publications (2)

Publication Number Publication Date
KR20130022604A KR20130022604A (ko) 2013-03-07
KR101403922B1 true KR101403922B1 (ko) 2014-06-09

Family

ID=48175212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110085299A KR101403922B1 (ko) 2011-08-25 2011-08-25 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법

Country Status (1)

Country Link
KR (1) KR101403922B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942678B2 (en) 2018-08-09 2021-03-09 Samsung Electronics Co., Ltd. Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
US11379381B2 (en) 2019-01-07 2022-07-05 SK Hynix Inc. Main memory device having heterogeneous memories, computer system including the same, and data management method thereof

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655508B1 (ko) * 2013-11-28 2016-09-07 한양대학교 에리카산학협력단 메모리 장치 및 그 동작 방법
KR20160058458A (ko) 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10671321B2 (en) * 2018-04-19 2020-06-02 SK Hynix Inc. Data storage device, operation method for preventing read disturbance thereof, and storage system using the same
KR102017422B1 (ko) * 2018-05-08 2019-10-14 인하대학교 산학협력단 핫 앤 콜드 데이터 분류에 기반한 사용자 인지 품질을 고려한 비디오 스토리지 전력관리 방법 및 시스템
KR20210056625A (ko) 2019-11-11 2021-05-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 이를 이용한 스토리지 시스템
CN113419678A (zh) * 2021-06-18 2021-09-21 上海盈方微电子有限公司 一种用于嵌入式系统的存储管理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100012468A (ko) * 2008-07-29 2010-02-08 주식회사 하이닉스반도체 고속 동작하는 반도체 스토리지 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100012468A (ko) * 2008-07-29 2010-02-08 주식회사 하이닉스반도체 고속 동작하는 반도체 스토리지 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
2010년 대한전자공학회 추계학술대회 논문집(2010.11. 논문제목: 데이터 할당과 선반입 기법을 이용한 SSD 스토리지의 성능 향상) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942678B2 (en) 2018-08-09 2021-03-09 Samsung Electronics Co., Ltd. Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
US11379381B2 (en) 2019-01-07 2022-07-05 SK Hynix Inc. Main memory device having heterogeneous memories, computer system including the same, and data management method thereof

Also Published As

Publication number Publication date
KR20130022604A (ko) 2013-03-07

Similar Documents

Publication Publication Date Title
US11830546B2 (en) Lifetime mixed level non-volatile memory system
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
US9507711B1 (en) Hierarchical FTL mapping optimized for workload
US9390004B2 (en) Hybrid memory management
EP2565792B1 (en) Block management schemes in hybrid SLC/MLC memory
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
KR20070099234A (ko) 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US11194737B2 (en) Storage device, controller and method for operating the controller for pattern determination
US11645006B2 (en) Read performance of memory devices
KR20120081351A (ko) Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
JP2007334413A (ja) 記憶装置
JP2008181203A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
Nam et al. A hybrid flash memory SSD scheme for enterprise database applications
TWI420528B (zh) 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器
CN114391139A (zh) 存储器组件中的使用经调整参数的垃圾收集
Kwon et al. FARS: A page replacement algorithm for NAND flash memory based embedded systems
Wu et al. A demand-based caching method for garbage collection in flash-memory embedded systems
CN110609817A (zh) 一种防止文件碎片化的文件存储系统
Firmware et al. A Beginner’s Guide to SSD Firmware

Legal Events

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

Payment date: 20170223

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190408

Year of fee payment: 6