KR20120037218A - Ssd 장치의 매핑 테이블 관리 방법 - Google Patents

Ssd 장치의 매핑 테이블 관리 방법 Download PDF

Info

Publication number
KR20120037218A
KR20120037218A KR1020100098848A KR20100098848A KR20120037218A KR 20120037218 A KR20120037218 A KR 20120037218A KR 1020100098848 A KR1020100098848 A KR 1020100098848A KR 20100098848 A KR20100098848 A KR 20100098848A KR 20120037218 A KR20120037218 A KR 20120037218A
Authority
KR
South Korea
Prior art keywords
mapping table
mapping
ram
flash memory
hit ratio
Prior art date
Application number
KR1020100098848A
Other languages
English (en)
Other versions
KR101155542B1 (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 KR1020100098848A priority Critical patent/KR101155542B1/ko
Publication of KR20120037218A publication Critical patent/KR20120037218A/ko
Application granted granted Critical
Publication of KR101155542B1 publication Critical patent/KR101155542B1/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
    • G06F12/0646Configuration or reconfiguration
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

본 발명의 SSD 장치는, 복수의 플래쉬 메모리를 포함하는 것으로, 플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 생성하여 상기 플래쉬 메모리에 저장하고, 상기 플래쉬 메모리에 저장된 매핑 테이블을 독출하여 상기 SSD 장치와 접속된 램(RAM)에 로딩시키는 매핑 테이블 관리부 및 상기 램에 로딩된 매핑 테이블의 정보에 기초하여, 요청된 논리 어드레스를 상기 플래쉬 메모리의 물리 어드레스로 변환하는 주소 변환부를 포함하되, 상기 매핑 테이블 관리부는 상기 요청된 논리 어드레스에 대한 정보가 상기 램에 로딩된 매핑 테이블에 포함된 비율에 기초하여, 상기 램에 로딩시키는 매핑 테이블의 용량을 가변시킨다.

Description

SSD 장치의 매핑 테이블 관리 방법{METHOD FOR MANAGING MAPPING TABLE OF SSD DEVICE}
본 발명은 SSD 장치의 주소 변환시에 사용되는 매핑 테이블의 새로운 관리 방법 및 그를 이용한 SSD 장치에 관한 것이다.
낸드 플래시 메모리 기반 SSD(Solid State Disk)는 하드 디스크 드라이브(HDD)를 대체할 블록 장치로 주목 받고 있다. SSD는 다수의 낸드 플래시 메모리를 병렬적으로 구성하며, 이에 따라 낸드 플래시 메모리가 가지는 저전력, 높은 랜덤 접근 성능 및 충격에 강한 장점들을 갖는다. 또한 지우기 전 기록할 수 없다는 점(erase-before-write)과 읽기, 쓰기 및 지우기 연산값이 다르다는 특징을 포함한다. 단일 낸드 플래시 메모리로는 SATA 3.0 인터페이스의 최대 6Gb/s에 해당하는 속도를 지원할 수 없다. 이를 위해 SSD는 내부에 다수의 낸드 플래시 메모리를 병렬적으로 구성하며, 속도 향상을 위한 다양한 방법을 통해 병렬성을 최대화한다. 이 중 한가지가 논리 주소 스트라이핑(address striping) 이며, 이를 통해 I/O 수행시 최대한 많은 수의 낸드 플래시 메모리를 동작 시킨다. 풀 스트라이핑(full-striping)으로 논리 주소 영역을 지정하게 되면 SSD 내부를 구성하는 낸드 플래시 메모리 전체를 단일 논리 주소 영역으로 구성하고 이에 따라 데이터 기록 범위가 전 영역에 펼쳐지게 된다.
플래시 메모리는 기존 블록 장치와는 다른 특징을 가지며, 이에 따라 FTL(Flash Translation Layer)이라는 시스템 소프트웨어가 필요하다. FTL은 운영체제와 낸드 플래시 메모리 사이에 있는 시스템 소프트웨어로써 운영체제로부터 요청된 주소를 낸드 플래시 메모리내 물리 주소와 매핑하는 역할을 수행한다. 낸드 플래시 메모리를 위한 매핑 기법은 페이지 매핑(page-level mapping), 블록 매핑(block-level mapping), 하이브리드 매핑(hybrid mapping) 3가지로 구분할 수 있다. 페이지 매핑 기법은 페이지 단위로 매핑 정보를 구성하며, 성능은 가장 좋지만 매핑 테이블의 크기가 커진다는 단점을 갖는다. 블록 매핑 기법은 블록 단위로 매핑 정보를 구성하며 페이지 매핑 기법에 비해 매핑 정보는 작지만 블록 내 페이지 갱신에 따른 오버헤드가 커진다는 단점이 있다. 하이브리드 매핑은 블록 매핑 기법과 페이지 매핑 기법을 혼합한 기법이며, 낸드 플래시 메모리 공간 내 일부를 데이터 갱신을 전담하는 로그 버퍼(log buffer)로 활용하게 된다. 따라서 하이브리드 매핑 기법을 사용하게 되면 플래시 메모리 공간은 데이터 블록과 데이터 블록 내 갱신데이터를 기록하는 로그 블록으로 구성되며 데이터 블록은 블록 매핑 기법으로, 로그 블록은 페이지 매핑 기법으로 매핑 정보를 관리한다. 이 때, 로그 블록의 개수는 페이지 매핑 정보 크기에 따라 달라진다. 하이브리드 매핑 기법에서 처음 데이터 기록 요청이 발생하면 데이터 블록을 할당하여 기록하고 이 후 데이터 갱신이 발생하면 해당 데이터 블록에 로그 블록을 할당하여 갱신 데이터를 기록한다. 이 후 로그 버퍼 공간이 부족하게 되면 데이터 블록과 로그 블록을 병합하여 새로운 로그 버퍼 공간을 생성한다. 현재 가장 많이 활용되는 매핑 기법은 하이브리드 매핑 기법이며, 이에 따라 많은 연구가 진행되었다.
하지만 하이브리드 매핑 기법을 사용할 경우 해당 작업 부하의 패턴에 따라 성능이 감소할 수 있다. 만약 공간적 지역성(spatial locality)이 큰 작업 패턴을 갖는 데이터를 기록해야 하는 경우 작업 부하의 특성에 따라 갱신 요청이 많이 발생하게 된다. 로그 블록 공간은 한정되어 있기 때문에 갱신 데이터가 로그 블록 공간을 넘어설 수도 있다. 이 경우 빈번한 로그 블록의 병합 연산으로 인해 전체 성능이 감소할 수 있다. 또한 낸드 플래시 메모리는 첫 번째 페이지부터 순서대로 기록해야 하는 제약 조건을 가지고 있는데, 하이브리드 매핑 기법을 사용할 경우 내부 단편화(internal fragmentation)로 인해 블록 내 빈 페이지가 있음에도 불구하고 데이터를 기록할 수 없는 경우가 발생하기도 한다. 만약 랜덤 패턴을 가지는 데이터를 기록하게 되는 경우 내부 단편화의 문제가 커질 수 있다. 더구나 앞에서 언급한 풀 스트라이핑 방식으로 SSD 내부 논리 주소 공간을 지정하게 된다면 내부 단편화 문제가 더욱 심각해질 수 있다. 이때 SSD 내부 낸드 플래시 메모리 공간에 단편화가 발생할수록 저장 공간이 낭비되어 블록 병합 연산이 더 자주 발생할 수 있으며, 이에 따라 성능 저하가 발생하게 된다. 결국 공간적 지역성이 크거나 랜덤 패턴을 가진 데이터를 기록할 경우 SSD의 높은 성능을 위해서는 페이지 매핑을 사용하는 것이 적합하지만 앞에서 언급한 것처럼 페이지 매핑 기법은 매핑 정보가 커진다는 단점을 가지고 있다.
이에 본 발명에서는 이러한 점을 고려하여 SSD에서 하이브리드 매핑 기법을 사용할 경우 발생 가능한 성능 저하 문제를 해결하기 위한 페이지 매핑 기반의 작업부하 적응형 동적 페이지 매핑 기법(WADPM: Workload-Aware Dynamic Page-level Mapping) 기법을 제안하고자 한다.
본 발명의 일부 실시예는 매핑 적중률에 따라 램에 상주되는 매핑 테이블의 용량을 가변시키는 SSD 장치 및 그의 매핑 테이블 관리 방법을 제공한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 SSD 장치는, 복수의 플래쉬 메모리를 포함하는 것으로, 플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 생성하여 상기 플래쉬 메모리에 저장하고, 상기 플래쉬 메모리에 저장된 매핑 테이블을 독출하여 상기 SSD 장치와 접속된 램(RAM)에 로딩시키는 매핑 테이블 관리부 및 상기 램에 로딩된 매핑 테이블의 정보에 기초하여, 요청된 논리 어드레스를 상기 플래쉬 메모리의 물리 어드레스로 변환하는 주소 변환부를 포함하되, 상기 매핑 테이블 관리부는 상기 요청된 논리 어드레스에 대한 정보가 상기 램에 로딩된 매핑 테이블에 포함된 비율에 기초하여, 상기 램에 로딩시키는 매핑 테이블의 용량을 가변시킨다.
또한, 본 발명의 제 2 측면에 따른 SSD 장치의 매핑 테이블 관리 방법은, 복수의 플래쉬 메모리를 포함하는 SSD(Solid State Disk) 장치에 관한 것으로, (a) 상기 플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 램에 로딩시키는 단계, (b) 요청된 논리 어드레스의 요청 빈도와 상기 요청된 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함된 빈도의 비율에 기초하여 매핑 적중률을 산출하는 단계 및 (c) 상기 산출된 매핑 적중률에 기초하여 상기 램에 로딩시키는 매핑 테이블의 용량을 가변시키는 단계를 포함한다.
또한, 본 발명의 제 3 측면에 따른 복수의 플래쉬 메모리를 포함하는 SSD(Solid State Disk) 장치의 어드레싱 방법은, (a) 상기 플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 램에 로딩시키는 단계, (b) 논리 어드레스에 기초한 상기 플래쉬 메모리에의 접근 요청에 기초하여, 상기 램에 로딩된 매핑 테이블로부터 상기 논리 어드레스에 대응되는 물리 어드레스를 검색하는 단계, (c) 상기 검색결과 상기 램에 로딩된 매핑 테이블에 상기 논리 어드레스가 없는 경우, 상기 논리 어드레스 및 상기 논리 어드레스에 대응하는 물리 어드레스를 포함하는 정보를 상기 플래쉬 메모리의 매핑 테이블로부터 독출하여, 상기 램에 로딩시키는 단계 및 (d) 상기 검색결과 상기 램에 로딩된 매핑 테이블에 상기 논리 어드레스가 있는 경우, 상기 논리 어드레스에 대응하는 물리 어드레스를 반환하는 단계를 포함하되, 상기 매핑 테이블은 상기 플래쉬 메모리의 플레인 단위로, 플레인 내의 논리 페이지 인덱스(LPI: Logical Page Index)와 물리 페이지 인덱스(PPI: Physical Page Index)를 대응시킨 것이다.
전술한 본 발명의 과제 해결 수단에 의하면, 통상의 매핑 방법인 하이브리드 매핑 방법의 단점을 해소할 수 있다. 하이브리드 매핑 기법은 플래시 메모리 내부 단편화를 발생시키는 문제점을 가지고 있으며, 단일 플래시 메모리의 경우보다 SSD에서 더 큰 문제를 야기시킨다.
본 발명의 경우 작업 부하의 패턴이 동적으로 변경되는 것에 맞추어 램상에 로딩되는 매핑 테이블의 용량을 가변함에 따라, 매핑 테이블 관리의 효율성을 향상시킬 수 있다. 매핑 정보를 동적으로 유지하는 본 발명의 기법에서는 최대 11%의 성능감소를 통해 매핑 테이블의 크기를 페이지 매핑 기법에 비해 최소 1%부터 50%까지 가변적으로 유지할 수 있다. 이때 SSD의 성능은 하이브리드 매핑 기법 대비 최소 185%, 최대 350% 증가하였다.
도 1은 통상적인 플래시 메모리의 내부 구조를 도시한 도면이다.
도 2는 통상적인 SSD 장치에서의 내부 논리 주소 할당 방법을 설명하기 위한 도면이다.
도 3은 통상적인 하이브리드 매핑 기법을 SSD 장치에 적용할 경우의 문제점을 설명하기 위한 도면이다.
도 4는 본원 발명의 구성이 적용된 SSD 장치의 구성을 도시한 도면이다.
도 5는 본원 발명의 일 실시예에 따른 SSD 장치 제어부의 상세 구성을 도시한 도면이다.
도 6과 도 7은 본원 발명의 일 실시예에 따른 플레인 단위 매핑 테이블의 개념을 설명하기 위한 도면이다.
도 8은 본원 발명의 일 실시예에 따른 동적 로딩 기법을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 램에 상주하는 매핑 테이블의 용량을 제어하는 알고리즘을 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 램에 상주하는 매핑 테이블의 용량을 제어하는 방법을 도시한 순서도이다.
도 11은 램에 로딩시키는 매핑 정보의 독출 방법에 따른 적중률의 실험 데이터를 도시한 도면이다.
도 12는 램에 로딩시키는 매핑 테이블의 크기에 따른 성능을 비교한 실험 데이터를 도시한 도면이다.
도 13은 매핑 테이블의 크기 변화 및 매핑 정보 적중율에 대한 실험 데이터를 도시한 도면이다.
도 14는 본 발명의 일 실시예에 따른 방법과 다른 매핑 방법과의 성능을 비교한 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 통상적인 플래시 메모리의 내부 구조를 도시한 도면이다.
단일 낸드 플래시 메모리는 제조회사 및 종류에 따라 4GB 또는 8GB의 크기를 가진다. SLC 낸드 플래시 메모리의 경우 대체로 4GB의 크기를 가지며, 내부는 다이(die), 플레인(plane), 블록(block), 페이지(page) 등으로 구성된다. 또한, 병렬성을 위해 2개의 다이를 사용하며, 다이들 간에는 병렬적인 I/O를 수행할 수 있다. 또한 다이는 복수의 플레인들을 포함하고, 각 플레인은 복수의 블록들을 포함하며, 각 블록은 복수의 페이지들을 포함한다.
I/O 수행시에, 운영체제는 해당 데이터를 논리 블록주소 (LBA: Logical Block Address)를 통해 접근하게 된다. SSD 내부의 FTL은 현재 SSD 내부의 페이지 크기에 따라 다수의 LBA를 하나의 논리 페이지 번호로 (LPN: Logical Page Number) 변환 한다. 만약 LBA의 단위가 512 bytes이고, SSD의 페이지가 2KB라면 4개의 LBA를 하나의 페이지로 구성하게 된다. 또한 SSD 내부의 낸드 플래시 메모리들을 최대한 병렬적으로 동작시키기 위해 LPN을 SSD 전 영역에 스트라이핑(striping) 한다.
도 2는 통상적인 SSD 장치에서의 내부 논리 주소 할당 방법을 설명하기 위한 도면이다.
SSD는 내부에 가지고 있는 모든 물리 플래시 메모리를 하나의 논리 플래시 메모리로 구성하며, 낸드 플래시 메모리내 다이와 플레인의 개수는 각각 2개라고 가정한다. 먼저, 데이터 기록 요청이 발생하여 LPN 0~7까지 8개의 페이지에 데이터를 기록해야 한다고 가정한다.
(a)에 도시된 경우처럼 LPN을 스트라이핑하지 않는다면 8개의 페이지를 기록할 때 병렬성을 활용할 수 없게 된다. 즉, 0번 낸드 플래시 메모리의 0번 다이만 동작하여 기록 요청을 수행한다. 그러나, (b)에 도시된 경우처럼 낸드 플래시 메모리 전 영역에 걸쳐 LPN을 스트라이핑 한다면 낸드 플래시 메모리간 그리고 다이간 병렬성을 활용할 수 있게 된다. 이때는 4개의 다이가 동시에 동작하기 때문에 no-striping에 비해 이론적으로 기록 속도를 4배 증가시킬수 있다.
SSD의 주소 정보를 변환하기 위해 페이지 매핑 기법을 사용할 경우 데이터 기록 요청이 발생하면 빈 페이지에 데이터를 기록한 후 해당 물리 페이지 번호 (PPN: Physical Page Number)와의 매핑 정보를 유지한다. 만약 하이브리드 매핑 기법을 사용한다면 LPN과 PPN의 매핑 정보대신 데이터 블록은 블록 매핑 정보를, 로그 블록은 페이지 매핑 정보를 유지하게 된다. 이때 LPN을 이용하여 논리 블록 번호 (LBN: Logical Block Number)와 페이지 오프셋을 계산하고, 처음 기록 요청이 발생된 데이터라면 데이터 불록에 기록한 후 LBN과 물리 블록 번호 (PBN: Physical Block Number)의 매핑 정보를 유지한다. 이후 블록 내 데이터 갱신이 발생하면 이미 블록에 기록되어 있는 데이터를 무효화(invalidate)한 후 로그 블록을 할당하여 갱신 데이터를 기록한다. 그러나 앞에서 살펴본 바와 같이 SSD 내부의 LPN은 물리 페이지 위치에 상관없이 고정시켜 사용하기 때문에 LBA를 이용하여 LPN을 계산할 수 있으며, 따라서 LBA와 LPN의 매핑 정보는 유지할 필요가 없다. 결국 LPN과 PPN 또는 LBN과 PBN과의 정보만 유지하면 된다.
도 3은 통상적인 하이브리드 매핑 기법을 SSD 장치에 적용할 경우의 문제점을 설명하기 위한 도면이다.
SSD에 하이브리드 매핑 기법을 사용하게 되면 작업 부하의 특성에 따라 두 가지의 성능 저하 문제가 발생할 수 있다. 첫 번째는 공간적 지역성이 높은 작업 부하의 기록 요청으로 인해 데이터 갱신이 많이 발생하게 되는 경우이다. 이 경우에는 데이터 블록보다는 로그 블록에 데이터를 더 많이 기록하게 된다. 데이터 갱신이 발생하게 되면 빈 블록을 로그 블록으로 할당하여 데이터를 기록하게 된다. 이 때 로그 블록으로 할당할 수 있는 빈 블록이 많다고 해도 로그 블록의 개수가 한정되어 있기 때문에 전체 로그 블록의 개수를 넘어선 데이터 갱신이 발생하게 되면 병합(merge) 연산을 수행해야 한다. 병합 연산은 낸드 플래시 메모리의 세 가지 연산 중 연산 값이 가장 큰 블록 삭제 연산을 포함하게 되며, 이에 따라 전체 성능의 저하가 발생할 수 있다.
두 번째는 작업 부하가 랜덤 패턴으로 구성된 경우이다. 낸드 플래시 메모리는 자체적으로 데이터를 기록할 때 해당 블록의 첫 번째 페이지부터 순차적으로 기록해야 하는 제약 조건이 있다. 예를 들어 블록이 삭제된 직후 10번째 페이지에 데이터가 기록되었다면 블록을 다시 삭제하기 전까지는 0~9번째 페이지에 데이터를 기록할 수 없다. 만약 페이지 매핑 기법을 사용하게 되면 앞에서 언급한 문제는 발생하지 않는다. 하지만 블록 매핑 또는 하이브리드 매핑 기법을 사용하게 되면 기록해야 하는 페이지 오프셋이 빈 페이지라고 할지라도 기록할 수 없는 경우가 발생할 수 있으며 이에 따라 데이터 블록의 활용률이 낮아질 수 있다. 더구나 SSD 내부 병렬성을 높이기 위해 논리 주소 영역을 풀 스트라이핑하게 될 경우 이러한 문제가 더 커질 수 있다.
도 3처럼 p16~p23까지 8개 페이지에 대한 기록 요청이 발생했다고 가정하면, 스트라이핑을 하지 않는 경우 (a)에 도시된 바와 같이 1번 플래시 메모리의 0번 다이에 있는 첫 번째 페이지부터 데이터가 기록된다. 하지만 풀 스트라이핑의 경우 SSD를 구성하고 있는 전체 영역에 걸쳐 데이터가 기록되기 때문에 앞에서 언급한 낸드 플래시 메모리의 제약 사항에 따라 p0~p15가 빈 공간임에도 불구하고 8개의 블록이 지워지기 전까지 데이터를 기록할 수 없게 된다.
이러한 문제점을 해결하기 위해, 본원 발명에서는 페이지 매핑 기반의 작업부하 적응형 동적 페이지 매핑 기법(WADPM: Workload-Aware Dynamic Page-level Mapping) 기법을 제안하고자 한다.
도 4는 본원 발명의 구성이 적용된 SSD 장치의 구성을 도시한 도면이다.
도시된 바와 같이, SSD 장치(400)는 제어부(410), I/O 장치(420) 및 복수의 플래쉬 메모리(430)를 포함한다.
제어부(410)는 I/O 장치(420)를 통해 외부에서 입력되는 데이터를 플래쉬 메모리(430)에 기록한다. 제어부(410)는 플래쉬 메모리(430)에 저장되어 있는 데이터를 독출하거나, 플래쉬 메모리(430)에 새로운 데이터를 기록하기 위한 논리 섹터 어드레스에 대한 읽기 또는 쓰기 연산 요청을 처리한다. 이때, 플래쉬 변환 계층(FTL)의 알고리즘에 의하여 논리 섹터 어드레스는 플래쉬 메모리(430)의 물리 섹터 어드레스로 변환된다.
또한, 본원 발명에서는 주소 변환을 위한 매핑 테이블을 램(10)에 상주시키는 동작을 수행하는 바, 이에 대해서는 추가 도면을 통해 상세히 살펴보기로 한다.
도 5는 본원 발명의 일 실시예에 따른 SSD 장치 제어부의 상세 구성을 도시한 도면이다.
제어부(410)는 매핑 테이블 관리부(412), 매핑 적중률 산출부(414) 및 주소 변환부(416)를 포함한다.
참고로, 본 발명의 실시예에 따른 도 4 또는 도 5에 도시된 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성 요소를 의미하며, 소정의 역할들을 수행한다.
그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
매핑 테이블 관리부(412)는 램에 상주시키는 매핑 테이블을 구성하거나, 구성된 매핑 테이블의 용량을 특정 조건에 따라 변경한다.
먼저, 본원 발명에서는 램에 상주시키는 매핑 테이블의 용량을 최소화하기 위해, 플레인 단위 매핑 테이블을 구성한다. 플레인 단위 매핑 테이블의 구성 개념을 도면을 통해 살펴보기로 한다.
도 6과 도 7은 본원 발명의 일 실시예에 따른 플레인 단위 매핑 테이블의 개념을 설명하기 위한 도면이다.
(a)에 도시된 바와 같이, SSD 장치(400)가 2개의 플래시 메모리를 포함하고, 각 플래시 메모리는 4개의 플레인을 포함하며, 각 플레인은 1개의 블록으로, 각 블록은 4개의 페이지를 포함한다고 가정한다. 또한 플레인 번호는 순서대로 넘버링 된다고 가정한다.
만약, (b)에 도시된 바와 같이 종전의 페이지 매핑 기법으로 매핑 테이블을 구성한다면, SSD에 포함된 모든 페이지에 대한 정보를 유지하므로 테이블의 전체 엔트리 수는 전체 페이지 수가 된다.
그러나, (c)에 도시된 바와 같이, 본원 발명에서 새롭게 제안하는 플레인 단위로 매핑 테이블을 구성하게 되면, 테이블당 엔트리 수는 플레인에 속한 페이지 수가 되므로, 램에 로딩되는 매핑 테이블의 용량을 감소시킬 수 있다. 이 경우 매핑 테이블의 엔트리 수는 플레인에 속한 페이지의 수가 되며, 플레인 내의 논리 페이지 인덱스(LPI: Logical Page Index)와 물리 페이지 인덱스(PPI: Physical Page Index)를 대응시킨 매핑 테이블 형태로 매핑 정보를 유지한다.
이때 SSD에 데이터를 기록하기 위한 데이터 주소 변환은 LBA->LPN->LPI->PPI->PPN의 순서대로 이루어지며, 주소 변환 수식은 다음과 같다.
[수학식 1]
Figure pat00001
[수학식 2]
Figure pat00002
[수학식 3]
Figure pat00003
이때, Nsectors는 페이지당 섹터의 개수를 나타내고, Nplanes는 SSD 장치(400)의 전체 플레인 개수를 나타내며, PN(LPN)은 임의의 LPN(Logical Page Number)이 속한 플레인 번호를 나타낸다.
먼저, 수학식 1에 따라 운영체제로부터 요청된 LBA가 페이지 주소로 변경된다. 이 값은 LBA를 페이지에 포함되는 섹터의 수로 나누어 줌으로서 산출할 수 있다. 또한 SSD에서 풀 스트라이핑을 사용할 경우 SSD에 속한 모든 플레인에 주소 영역이 나누어 진다. 따라서 LPN을 Nplanes로 나누어 LPI를 산출할 수 있고, LPN과 Nplanes의 나머지 연산(%)으로 LPI가 속한 플레인 번호를 산출할 수 있다. 이후 LPI에 PPI를 매핑하여 주소 정보를 저장하며, 이러한 매핑 테이블은 SSD 장치(10)의 메모리에 저장된다. 또한, 메모리에 저장된 매핑 테이블은 필요에 따라 독출되어, 램(10)에 로딩된다.
도 7은 본원 발명의 일 실시예에 따른 물리 페이지 인덱스 획득 알고리즘을 도시한 도면이다.
도시된 바와 같이, LBA가 입력되면, 수학식 1에 기초하여 LPN을 산출한다. 또한, 수학식 2에 기초하여, LPN이 속한 플레인 번호를 산출한다. 또한, 수학식 3에 기초하여, 논리 페이지 인덱스(LPI)를 산출한다. LPI가 산출되면, 램(10)에 로딩된 매핑 테이블로부터, LPI에 대응하는 물리 페이지 인덱스(PPI)를 획득할 수 있다.
이때, LPI에 할당된 PPI가 없다면 LPI가 속한 플레인에서 빈 페이지를 하나 할당 받아 매핑하고, 이에 대한 정보를 매핑 테이블에 저장한다.
이와 같이, LPI와 PPI만을 이용하여 매핑 정보를 유지하므로, 매핑 정보 엔트리당 유지해야 하는 비트수가 감소하기 때문에 전체 매핑 정보가 작아지게 된다. 또한 LPI와 매핑된 PPI의 페이지는 동일한 플레인에 위치하기 때문에, 데이터 이동시 항상 같은 플레인의 페이지로 이동하게 되므로 플래시 메모리의 카피백(copy-back) 동작을 항상 보장할 수 있다. 낸드 플래시 메모리는 이미 기록된 페이지는 지우기 전에 다시 기록할 수 없는 단점이 있다. 때문에 주기적으로 가비지 컬렉션(garbage collection)을 수행하여 사용 가능한 페이지를 만들어 주어야 한다. 가비지 컬렉션은 희생 블록을 선택하여, 희생블록의 유효한 페이지를 새 블록으로 옮기는 작업을 수행한다. 이후 희생 블록을 지워 사용 가능한 페이지를 만든다. 이때, 만약 일반적인 페이지 매핑 기법을 사용 한다면 유효한 페이지가 옮겨질 페이지가 동일한 플레인에 위치하지 않을 수 있다. 따라서 페이지 매핑 기법에서는 카피백 연산을 사용하지 못할 수도 있다. 하지만 플레인 단위 매핑 기법을 사용한다면 데이터가 기록될 플레인이 고정된다. 데이터는 특정 플레인에 속한 페이지들 중 한곳에 기록되며, 데이터가 이동할 때도 같은 플레인의 페이지로 옮겨진다. 즉, 플레인 단위 매핑 기법에서는 유효한 페이지를 옮기는 작업이 모두 카피백 연산을 이용하여 수행된다. 따라서 플레인 단위 매핑 기법을 사용하면 가비지 컬렉션 동작에 필요한 데이터 이동 비용을 최소화하여 플래시 메모리의 성능 증가에 도움이 된다.
다시 도 5를 참조하면, 매핑 테이블 관리부(412)는 매핑 테이블 중 일부만을 선택하여 램(10)에 상주하도록 제어할 수 있다.
작업 부하의 주소 접근 패턴에 따라 I/O 요청 데이터의 지역성 (locality)이 달라질 수 있으며, 이에 따라 램(10)에 유지해야 할 매핑 정보가 달라질 수 있다. 이러한 점을 고려하여 매핑 테이블 전체를 램(10)에 유지하지 않고 필요한 부분만을 램(10)에 유지하도록 한다. 또한 고정된 크기의 매핑 정보를 RAM에 유지하는 것이 아니라 매핑 정보의 적중률에 따라 RAM에 상주하는 매핑 테이블의 크기를 동적으로 변경할 수 있도록 한다.
도 8은 본원 발명의 일 실시예에 따른 동적 로딩 기법을 설명하기 위한 도면이다.
먼저, (a)에 도시된 바와 같이 페이지 매핑 정보는 SSD를 구성하는 플래쉬 메모리에 저장되며, 플래쉬 메모리에 저장된 매핑 테이블 중 일부만이 램(10)에 상주되도록 제어할 수 있다. 이때, 플래쉬 메모리에 저장된 매핑 테이블은 앞서 설명한 바와 같이, 각 플레인 단위로 논리 페이지 인덱스(LPI)와 물리 페이지 인덱스(PPI)를 매칭시켜 저장한 것이다.
이와 같이, 플레인 단위로 저장된 매핑 테이블 중 일부를 매핑 테이블 관리부(412)의 제어에 따라 램(10)에 상주시킬 수 있다.
이때, 한번에 얼마만큼의 매핑 정보를 램(10)에 상주시킬 것인지, 어떠한 기준에 따라 매핑 정보를 램(10)에 상주시킬 것인지에 따라 SSD 장치의 성능이 달라질 수 있다.
즉, (b)에 도시된 바와 같이, 미스(miss) 엔트리만 램(10)에 로딩시키는 방법, 미스 엔트리를 포함하여 몇 개의 엔트리를 추가로 로딩시키는 방법, 미스 엔트리에 대한 주소 정보가 포함된 플래시 메모리 페이지 내에 저장된 모든 매핑 정보를 읽어 들이는 방법 (page chunk)이 있을 수 있다.
예를 들어, 0번 플레인의 0번 페이지에 대해 독출하고자 하나, 이에 대한 정보가 램에 상주되지 않은 경우, 즉 미스 엔트리가 발생했다고 가정한다. 이러한 경우, 첫 번째 방법(per miss entry)에 따르면, 미스된 해당 엔트리만을 플래쉬 메모리로부터 독출하여 램(10)에 로딩시킨다. 두 번째 방법(read-ahead)에 따르면, 미스된 엔트리를 포함하는 복수의 엔트리를 플래쉬 메모리로부터 독출하여 램(10)에 로딩시킨다. 세 번째 방법(page chunk)에 따르면, 미스된 엔트리가 포함된 플레인에 대한 매핑 테이블 전체를 플래쉬 메모리로부터 독출하여 램(10)에 로딩시킨다.
그러나, 세 가지 방법 중 어떤 방법을 사용하더라도 독출 및 램(10)에 로딩되는 시간에는 큰 차이가 없다. 이는 낸드 플래쉬 메모리의 고유 특성에서 비롯된 것으로, 낸드 플래쉬 메모리는 읽기 동작이 페이지 단위로 이루어지기 때문에, 단일 엔트리를 독출하는 것, 복수의 엔트리를 독출하는 것 및 플레인 단위의 전체 엔트리를 독출하는데 소요되는 시간은 동일하다고 볼 수 있다. 이러한 내용에 비추어 보면, 미스된 엔트리가 포함된 플레인에 대한 매핑 테이블 전체를 플래쉬 메모리로부터 독출하여 램(10)에 로딩시키는 방법이 가장 바람직한 방법일 수 있다.
한편, 플래쉬 메모리로부터 독출된 매핑 정보는 LRU(Least Recently Used) 기법에 따라 관리될 수 있다. 또한, 설정에 따라 램(10)에 상주하게 되는 매핑 정보의 크기(window size)를 고정할 수도 있고, SSD 동작 중 설정 값 이내에 동적으로 크기를 변경하도록 할 수 있다.
도 9는 본 발명의 일 실시예에 따른 램에 상주하는 매핑 테이블의 용량을 제어하는 알고리즘을 도시한 도면이고, 도 10은 본 발명의 일 실시예에 따른 램에 상주하는 매핑 테이블의 용량을 제어하는 방법을 도시한 순서도 이다.
본 발명에서는 램에 로딩된 매핑 정보의 적중률을 이용하여 매핑 테이블의 크기를 가변한다. 이때, 매핑 정보의 적중률은 주소 변환이 요청된 어드레스가 램에 상주하고 있는지 여부를 나타내는 수치이다. 따라서, 램에 상주된 매핑 테이블의 정보가 많을수록 매핑 정보의 적중률은 높아지게 된다.
도 10을 참조하면, 본 발명에서는 먼저 매핑 테이블을 램에 로딩시킨다(S1010).
이때, 램에 로딩되는 매핑 테이블은 앞서 설명한 바와 같이 플레인 단위로 매핑된 테이블일 수 있다. 또한, 램에 로딩되는 매핑 테이블의 용량은 미리 설정된 값에 따라 정하여 진다. 또한, 미리 설정된 매핑 테이블의 용량이 램에 로딩된 상태가 지속되는 시간도 미리 설정된 값에 따라 정하여 진다.
다음으로, 매핑 테이블에 기초하여 주소 변환 작업을 수행하며, 주소 변환 결과에 기초하여, 매핑 적중률을 산출한다(S1020).
이러한 매핑 정보의 적중률은 매핑 적중률 산출부(414)를 통하여 산출될 수 있으며, 미리 설정한 시간 동안, 요청된 어드레스의 빈도와 요청된 어드레스가 램에 상주하고 있는 빈도의 비율에 근거하여 산출할 수 있다.
이와 같이 산출된 매핑 적중률 산출부(414)는 매핑 테이블 관리부(412)로 전달된다. 매핑 테이블 관리부(412)는 매핑 적중률 산출부(414)로부터 전달된 매핑 적중률에 기초하여 램에 상주하는 매핑 테이블의 용량을 제어한다.
알고리즘을 더욱 상세히 살펴보면, 매핑 적중률 산출부(414)가 산출한 매핑 적중률(currentHitRatio)이 임계 적중률(θHR) 보다 큰지 여부를 판단한다(S1030).
만약, 매핑 적중률이 임계 적중률(θHR)보다 작은 경우에는 램에 상주시키는 매핑 테이블의 용량을 증가시킨다(S1040). 그러나, 매핑 적중률이 임계 적중률(θHR)보다 작은 경우에는 램에 상주시키는 매핑 테이블의 용량을 증가시킨다.
추가적으로, 매핑 적중률이 임계 적중률(θHR)보다 크게 유지되는 시간이 임계 시간 이상인지 여부에 기초하여 매핑 테이블의 용량을 가변하도록 구성할 수 있다. 즉, 매핑 적중률이 임계 적중률(θHR)보다 크게 유지되는 시간(curretnMaintenanceCount)이 임계 시간(θMT)보다 큰지 여부를 판단한다(S1050).
만약, 매핑 적중률이 임계 적중률(θHR)보다 크게 유지되는 시간(curretnMaintenanceCount)이 임계 시간(θMT) 큰 경우에는 램에 상주시키는 매핑 테이블의 용량을 감소시킨다(S1070).
그러나, 매핑 적중률이 임계 적중률(θHR)보다 크게 유지되는 시간(curretnMaintenanceCount)이 임계 시간(θMT)보다 작은 경우에는 매핑 테이블의 로딩시간을 증가시킨다(S1060).
다음으로, 가변된 매핑 테이블에 기초하여 주소 변환 작업을 지속한다(S1080).
도 11은 램에 로딩시키는 매핑 정보의 독출 방법에 따른 적중률의 실험 데이터를 도시한 도면이다.
도시된 바와 같이, 페이지 단위로 매핑 정보를 읽어 램에 상주시키는 것이 가장 높은 적중률을 보이는 것을 알 수 있다. 이는 작업 부하에 따라 차이는 있지만 일반적으로 작업 부하가 집약성 (locality)을 갖기 때문이다. 또한 플래시 메모리의 최소 읽기 단위가 페이지이므로 세 가지 방법의 비용은 모두 동일하다. 따라서 페이지 단위로 매핑 정보를 읽는 것이 가장 효율적임을 알 수있다.
도 12는 램에 로딩시키는 매핑 테이블의 크기에 따른 성능을 비교한 실험 데이터를 도시한 도면이다.
본 발명의 방법의 성능을 검증하기 위해 램에 상주하는 매핑 테이블의 크기를 정적으로 변경하여 전체 성능을 측정하였다. I/O 수행시 해당 데이터의 매핑 정보가 램에 존재하지 않는다면 SSD에서 읽어와야 하기 때문에 전체 성능이 감소하게 된다. 성능 측정을 위해 매핑 테이블의 크기는 페이지 매핑 테이블 크기에 비례하여 1%부터 20%까지 증가시켰다.
하이브리드 매핑 기법은 앞에서 언급한 문제로 인해 가장 성능이 좋지 않다. Bonnie++와 IOzone 작업 부하의 경우 공간적 집약성으로 인해 작은 크기의 매핑 테이블만 유지해도 페이지 매핑기법을 사용한 것과 비교하여 성능의 차이가 없는 것을 알 수 있다. Internet explorer와 PCapplication 작업 부하의 경우 매핑 테이블의 크기와 비례하여 전체 성능이 변화하는 것을 알 수 있다.
Internet explorer 작업 부하의 경우 대부분 랜덤 접근 데이터로 구성되어 있다. 하지만 작업 부하의 길이가 짧기 때문에 PC application 작업 부하에 비해 병합 연산이 적게 발생하며, 이에 따라 하이브리드 매핑 기법에서는 성능이 더 좋다. 하지만 작업 부하의 랜덤 패턴으로 인해 매핑 테이블 정보에 대한 빈번한 I/O가 발생하며 이에 따라 WADPM 기법에서는 전체적으로 성능이 낮아지는 것을 알 수가 있다. PC application 작업 부하의 경우 랜덤과 순차접근 데이터를 모두 포함하고 있으며, 작업 부하의 크기가 크기 때문에 병합 연산이 많이 발생하게 된다. 이로 인해 하이브리드 매핑을 사용할 경우 가장 좋지 않은 성능을 보인다. 실험 결과에 따라 지역성이 높은 데이터인 경우 페이지 매핑 테이블의 크기를 하이브리드 매핑 테이블 크기만큼 유지해도 전체 성능의 감소가 거의 없음을 알 수 있었다. 랜덤 패턴을 가진 작업 부하의 경우 매핑 테이블의 크기와 성능이 비례함을 알 수 있다. 본 발명의 방법에서 매핑 테이블의 크기를 페이지 매핑 기법의 20%로 유지할 경우 Internet explore 작업 부하의 경우 성능은 약 15%, PC application 작업부하의 경우 약 10% 정도 성능이 감소하는 것을 보인다.
도 13은 매핑 테이블의 크기 변화 및 매핑 정보 적중율에 대한 실험 데이터를 도시한 도면이다.
Bonnie++와 Iozone 작업 부하의 경우 전체 매핑 테이블의 2%만 유지되어도 매핑 정보의 적중률을 거의 100%가 된다. 하지만 Internet explorer와 PC application 작업 부하의 경우 매핑 테이블의 크기는 Internet explorer의 경우 35%, PC application 작업 부하의 경우 50%가지 증가한다.
도 14는 본 발명의 일 실시예에 따른 방법과 다른 매핑 방법과의 성능을 비교한 도면이다.
페이지 매핑 기법의 테이블 크기와 비교했을 때 평균 매핑 테이블의 크기는 Bonnie++와 IOzone 작업 부하의 경우 2%가 되며, Internet explorer 작업부하는 26%, PC application 작업 부하는 22%가 된다. 이때, 성능을 비교해 보면 하이브리드 기법에 비해 최소 185%, 최대 350% 증가하였으며, 페이지 매핑 테이블에 비해 최소 2.6%, 최대 11%의 성능 감소를 보인다.
SSD는 성능 향상을 위해 다수의 플래시 메모리를 병렬적으로 구성하며, 논리 주소 공간을 최대한 스트라이핑한다. 또한 하이브리드 매핑 기법은 FTL의 매핑 기법으로 가장 많이 활용되는 매핑 기법이며, 이에 따라 활발한 연구가 진행되었다. 하지만 하이브리드 매핑 기법은 플래시 메모리 내부 단편화를 발생시키는 문제점을 가지고 있으며, 단일 플래시 메모리의 경우보다 SSD에서 더 큰 문제를 야기시킨다. 따라서 본 발명에서는 SSD 내부 환경에 적합한 페이지 매핑 기법을 제안하였다.
실제 SSD를 사용하게 되는 경우 다양한 작업 부하의 패턴이 혼합되어 SSD에게 I/O를 요청하게 될 것이다. 따라서 작업 부하의 패턴이 동적으로 변경될 경우 전체 매핑 테이블을 항상 램상에 유지하는 것은 비 효율적이다. 매핑 정보를 동적으로 유지하는 본 발명의 기법에서는 최대 11%의 성능감소를 통해 매핑 테이블의 크기를 페이지 매핑 기법에 비해 최소 1%부터 50%까지 가변적으로 유지할 수 있다. 이때 SSD의 성능은 하이브리드 매핑 기법 대비 최소 185%, 최대 350% 증가하였다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
400: SSD 장치
410: 제어부
412: 매핑 테이블 관리부
414: 매핑 적중률 산출부
416: 주소 변환부
420: I/O 장치
430: 플래쉬 메모리

Claims (17)

  1. 복수의 플래쉬 메모리를 포함하는 SSD(Solid State Disk) 장치에 있어서,
    플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 생성하여 상기 플래쉬 메모리에 저장하고, 상기 플래쉬 메모리에 저장된 매핑 테이블을 독출하여 상기 SSD 장치와 접속된 램(RAM)에 로딩시키는 매핑 테이블 관리부 및
    상기 램에 로딩된 매핑 테이블의 정보에 기초하여, 요청된 논리 어드레스를 상기 플래쉬 메모리의 물리 어드레스로 변환하는 주소 변환부를 포함하되,
    상기 매핑 테이블 관리부는 상기 요청된 논리 어드레스에 대한 정보가 상기 램에 로딩된 매핑 테이블에 포함된 비율에 기초하여, 상기 램에 로딩시키는 매핑 테이블의 용량을 가변시키는 SSD 장치.
  2. 제 1 항에 있어서,
    상기 요청된 논리 어드레스의 요청 빈도와 상기 요청된 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함된 빈도의 비율에 기초하여 매핑 적중률을 산출하는 매핑 적중률 산출부를 더 포함하고,
    상기 매핑 테이블 관리부는 상기 산출된 매핑 적중률이 임계 적중률보다 작은 경우, 상기 램에 로딩시키는 매핑 테이블의 용량을 증가시키는 SSD 장치.
  3. 제 2 항에 있어서,
    상기 매핑 테이블 관리부는 상기 산출된 매핑 적중률이 임계 적중률보다 큰 경우, 상기 램에 로딩시키는 매핑 테이블의 용량을 감소시키는 SSD 장치.
  4. 제 2 항에 있어서,
    상기 매핑 테이블 관리부는 상기 산출된 매핑 적중률이 임계 적중률보다 크고, 상기 임계 적중률보다 큰 매핑 적중률이 유지된 시간이 임계 시간보다 큰 경우, 상기 램에 로딩시키는 매핑 테이블의 용량을 감소시키는 SSD 장치.
  5. 제 2 항에 있어서,
    상기 매핑 테이블 관리부는 상기 산출된 매핑 적중률이 임계 적중률보다 크고, 상기 임계 적중률보다 큰 매핑 적중률이 유지된 시간이 임계 시간보다 작은 경우, 상기 임계 적중률보다 큰 매핑 적중률을 나타내는 매핑 테이블의 상기 램에서의 로딩 유지시간을 증가시키는 SSD 장치.
  6. 제 1 내지 5 항 중 어느 한 항에 있어서,
    상기 매핑 테이블은 상기 플래쉬 메모리의 플레인 단위로, 플레인 내의 논리 페이지 인덱스(LPI: Logical Page Index)와 물리 페이지 인덱스(PPI: Physical Page Index)를 대응시킨 것인 SSD 장치.
  7. 제 6 항에 있어서,
    상기 매핑 테이블 관리부는 요청된 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함되지 않은 경우, 상기 요청된 논리 어드레스가 포함된 플레인에 대한 매핑 테이블 전체를 플래쉬 메모리로부터 독출하여 상기 램에 로딩시키는 SSD 장치.
  8. 제 6 항에 있어서,
    상기 매핑 테이블 관리부는 요청된 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함되지 않은 경우, 상기 요청된 논리 어드레스 및 상기 요청된 논리 어드레스에 대응한 물리 어드레스를 상기 플래쉬 메모리로부터 독출하여 상기 램에 로딩시키는 SSD 장치.
  9. 복수의 플래쉬 메모리를 포함하는 SSD(Solid State Disk) 장치의 매핑 테이블 관리 방법에 있어서,
    (a) 상기 플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 램에 로딩시키는 단계,
    (b) 요청된 논리 어드레스의 요청 빈도와 상기 요청된 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함된 빈도의 비율에 기초하여 매핑 적중률을 산출하는 단계 및
    (c) 상기 산출된 매핑 적중률에 기초하여 상기 램에 로딩시키는 매핑 테이블의 용량을 가변시키는 단계
    를 포함하는 SSD 장치의 매핑 테이블 관리 방법.
  10. 제 9 항에 있어서,
    상기 매핑 테이블의 용량을 가변시키는 단계는,
    상기 산출된 매핑 적중률이 임계 적중률보다 작은 경우, 상기 램에 로딩시키는 매핑 테이블의 용량을 증가시키는 SSD 장치의 매핑 테이블 관리 방법.
  11. 제 9 항에 있어서,
    상기 매핑 테이블의 용량을 가변시키는 단계는,
    상기 산출된 매핑 적중률이 임계 적중률보다 큰 경우, 상기 램에 로딩시키는 매핑 테이블의 용량을 감소시키는 SSD 장치의 매핑 테이블 관리 방법.
  12. 제 9 항에 있어서,
    상기 매핑 테이블의 용량을 가변시키는 단계는,
    상기 산출된 매핑 적중률이 임계 적중률보다 크고, 상기 임계 적중률보다 큰 매핑 적중률이 유지된 시간이 임계 시간보다 큰 경우, 상기 램에 로딩시키는 매핑 테이블의 용량을 감소시키는 SSD 장치의 매핑 테이블 관리 방법.
  13. 제 9 항에 있어서,
    상기 매핑 테이블의 용량을 가변시키는 단계는,
    상기 산출된 매핑 적중률이 임계 적중률보다 크고, 상기 임계 적중률보다 큰 매핑 적중률이 유지된 시간이 임계 시간보다 작은 경우, 상기 임계 적중률보다 큰 매핑 적중률을 나타내는 매핑 테이블의 상기 램에서의 로딩 유지시간을 증가시키는 SSD 장치의 매핑 테이블 관리 방법.
  14. 제 9 내지 13 항 중 어느 한 항에 있어서,
    상기 매핑 테이블은 상기 플래쉬 메모리의 플레인 단위로, 플레인 내의 논리 페이지 인덱스(LPI: Logical Page Index)와 물리 페이지 인덱스(PPI: Physical Page Index)를 대응시킨 것인 SSD 장치의 매핑 테이블 관리 방법.
  15. 복수의 플래쉬 메모리를 포함하는 SSD(Solid State Disk) 장치의 어드레싱 방법에 있어서,
    (a) 상기 플래쉬 메모리의 논리 어드레스에 대응하는 플래쉬 메모리의 물리 어드레스 정보를 포함하는 매핑 테이블을 램에 로딩시키는 단계,
    (b) 논리 어드레스에 기초한 상기 플래쉬 메모리에의 접근 요청에 기초하여, 상기 램에 로딩된 매핑 테이블로부터 상기 논리 어드레스에 대응되는 물리 어드레스를 검색하는 단계,
    (c) 상기 검색결과 상기 램에 로딩된 매핑 테이블에 상기 논리 어드레스가 없는 경우, 상기 논리 어드레스 및 상기 논리 어드레스에 대응하는 물리 어드레스를 포함하는 정보를 상기 플래쉬 메모리의 매핑 테이블로부터 독출하여, 상기 램에 로딩시키는 단계 및
    (d) 상기 검색결과 상기 램에 로딩된 매핑 테이블에 상기 논리 어드레스가 있는 경우, 상기 논리 어드레스에 대응하는 물리 어드레스를 반환하는 단계를 포함하되,
    상기 매핑 테이블은 상기 플래쉬 메모리의 플레인 단위로, 플레인 내의 논리 페이지 인덱스(LPI: Logical Page Index)와 물리 페이지 인덱스(PPI: Physical Page Index)를 대응시킨 것인 SSD 장치의 어드레싱 방법.
  16. 제 15 항에 있어서,
    상기 (c) 단계는
    요청된 상기 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함되지 않은 경우, 상기 요청된 논리 어드레스가 포함된 플레인에 대한 매핑 테이블 전체를 상기 플래쉬 메모리로부터 독출하여 상기 램에 로딩시키는 것인 SSD 장치의 어드레싱 방법.
  17. 제 15 항에 있어서,
    (e) 상기 논리 어드레스의 요청 빈도와 상기 요청된 논리 어드레스가 상기 램에 로딩된 매핑 테이블에 포함된 빈도의 비율에 기초하여 매핑 적중률을 산출하는 단계 및
    (f) 상기 산출된 매핑 적중률에 기초하여 상기 램에 로딩시키는 매핑 테이블의 용량을 가변시키는 단계
    를 더 포함하는 SSD 장치의 어드레싱 방법.
KR1020100098848A 2010-10-11 2010-10-11 Ssd 장치의 매핑 테이블 관리 방법 KR101155542B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100098848A KR101155542B1 (ko) 2010-10-11 2010-10-11 Ssd 장치의 매핑 테이블 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100098848A KR101155542B1 (ko) 2010-10-11 2010-10-11 Ssd 장치의 매핑 테이블 관리 방법

Publications (2)

Publication Number Publication Date
KR20120037218A true KR20120037218A (ko) 2012-04-19
KR101155542B1 KR101155542B1 (ko) 2012-06-18

Family

ID=46138459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100098848A KR101155542B1 (ko) 2010-10-11 2010-10-11 Ssd 장치의 매핑 테이블 관리 방법

Country Status (1)

Country Link
KR (1) KR101155542B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014157817A1 (ko) * 2013-03-25 2014-10-02 아주대학교산학협력단 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
US10509602B2 (en) 2016-03-10 2019-12-17 SK Hynix Inc. Data storage device and operating method thereof
WO2020101862A1 (en) * 2018-11-15 2020-05-22 Micron Technology, Inc. Address obfuscation for memory
CN114371814A (zh) * 2021-12-08 2022-04-19 浙江大华存储科技有限公司 数据处理的方法、装置及固态硬盘
CN114371814B (zh) * 2021-12-08 2024-05-10 浙江华忆芯科技有限公司 数据处理的方法、装置及固态硬盘

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048871A (ko) 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100062190A (ko) * 2008-12-01 2010-06-10 엘지전자 주식회사 확장형 플래시 메모리장치, 및 그 제어방법
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
KR101565975B1 (ko) * 2009-02-27 2015-11-04 삼성전자주식회사 인덱스를 저장하는 플래시 메모리를 포함하는 사용자 장치 및 그것의 인덱스 액세스 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014157817A1 (ko) * 2013-03-25 2014-10-02 아주대학교산학협력단 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
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
US10509602B2 (en) 2016-03-10 2019-12-17 SK Hynix Inc. Data storage device and operating method thereof
WO2020101862A1 (en) * 2018-11-15 2020-05-22 Micron Technology, Inc. Address obfuscation for memory
US11042490B2 (en) 2018-11-15 2021-06-22 Micron Technology, Inc. Address obfuscation for memory
US11853230B2 (en) 2018-11-15 2023-12-26 Micron Technology, Inc. Address obfuscation for memory
CN114371814A (zh) * 2021-12-08 2022-04-19 浙江大华存储科技有限公司 数据处理的方法、装置及固态硬盘
CN114371814B (zh) * 2021-12-08 2024-05-10 浙江华忆芯科技有限公司 数据处理的方法、装置及固态硬盘

Also Published As

Publication number Publication date
KR101155542B1 (ko) 2012-06-18

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
US9135181B2 (en) Management of cache memory in a flash cache architecture
KR101982251B1 (ko) 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
Qiu et al. NVMFS: A hybrid file system for improving random write in nand-flash SSD
US10740251B2 (en) Hybrid drive translation layer
WO2015008356A1 (ja) ストレージコントローラ、ストレージ装置、ストレージシステム、半導体記憶装置
US8954656B2 (en) Method and system for reducing mapping table size in a storage device
GB2511325A (en) Cache allocation in a computerized system
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20200116372A (ko) 저장 장치, 컨트롤러 및 컨트롤러의 동작 방법
CN113254358A (zh) 用于地址表高速缓存管理的方法和系统
US10853252B2 (en) Performance of read operations by coordinating read cache management and auto-tiering
US11144224B2 (en) Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications
KR101155542B1 (ko) Ssd 장치의 매핑 테이블 관리 방법
Wang et al. ZFTL: A zone-based flash translation layer with a two-tier selective caching mechanism
KR20230055978A (ko) 블록 수정 특성을 갖는 메모리의 데이터에 대해 순차 액세스하는 장치, 시스템, 및 그것의 동작 방법
KR20120034976A (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
JP6273678B2 (ja) ストレージ装置
Kale et al. Performance Analysis of FTL Schemes

Legal Events

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

Payment date: 20160328

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee