KR20210106597A - Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 - Google Patents
Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 Download PDFInfo
- Publication number
- KR20210106597A KR20210106597A KR1020200020812A KR20200020812A KR20210106597A KR 20210106597 A KR20210106597 A KR 20210106597A KR 1020200020812 A KR1020200020812 A KR 1020200020812A KR 20200020812 A KR20200020812 A KR 20200020812A KR 20210106597 A KR20210106597 A KR 20210106597A
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- area
- request
- read
- write
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 요구 기반 FTL의 캐시 영역을 클린 영역과 더티 영역으로 분리하고, 클린 영역을 통해 읽기 요청의 동작을 처리함으로써 응답시간 특성을 향상시킨 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치에 관한 것이다.
또한, 본 발명은 읽기 응답 특성의 향상에 따라 저하된 쓰기 응답 특성을 보완하도록 테이블의 엔트리로 더티 영역에서 쓰기가 이루어지게 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치에 관한 것이다.
또한, 본 발명은 읽기 응답 특성의 향상에 따라 저하된 쓰기 응답 특성을 보완하도록 테이블의 엔트리로 더티 영역에서 쓰기가 이루어지게 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치에 관한 것이다.
Description
본 발명은 요구 기반 FTL의 캐시 영역을 클린 영역과 더티 영역으로 분리하고, 클린 영역을 통해 읽기 요청의 동작을 처리함으로써 응답시간 특성을 향상시킨 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치에 관한 것이다.
또한, 본 발명은 읽기 응답 특성의 향상에 따라 저하된 쓰기 응답 특성을 보완하도록 테이블의 엔트리로 더티 영역에서 쓰기가 이루어지게 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치에 관한 것이다.
최근 SSD(Solid State Drive)는 높은 입출력 처리량과 빠른 응답시간 등의 장점을 바탕으로 기존의 HDD를 빠르게 대체하고 있다. 또한 3D 낸드 플래시와 같이 플래시 공정 기술이 발전하면서 SSD 용량도 빠른 속도로 커지는 중이다.
이러한 SSD는 종래의 HDD와 다르게 그 용량이 커질수록 논리 주소(Logical Address)를 물리 주소(Physical Address)로 변환하는 SSD 컨트롤러의 메모리 요구량도 함께 증가하게 되는 문제가 있다.
이에 전체 테이블은 SSD에 저장하고 자주 사용되는 주소 사상 관계를 메모리(캐시 메모리)에 유지하는 요구 기반 FTL(Demand-based FTL, DFTL)이 대안으로 주목받고 있다.
그러나 요구 기반 FTL은 접근되는 주소 사상 정보가 DRAM에 캐싱되어 있지 않을 경우 응답 시간이 매우 느려지는 문제를 발생시킨다. 아울러 워크로드의 지역성에 따라 상이한 성능을 제공하므로 일관된 성능을 보장받기 힘들다.
그 이유를 살펴보면, 요구 기반 FTL은 메모리 환경에서 가상 주소를 물리 주소로 빠르게 변환하기 위해 사용하는 TLB(Translation Look-aside Buffer)의 동작 방식으로부터 차용된 것이다.
이에 따라 요구 기반 FTL은 기본적으로 자주 사용되는 주소 사상 관계는 CMT(Cached Mapping Table)라는 테이블 형태로 메모리에 유지하면서 빠르게 주소 변환에 사용한다.
반면, 메모리에 올라오지 않은 주소에 대한 사용자 요청이 들어오면 다음과 같이 요구 기반 방식으로 진행된다.
먼저 각 테이블의 정보를 담고 있는 GTD(Global Table Directory)를 참조한다. 그 후 저장 장치로부터 해당되는 사상 페이지를 읽어 메모리의 주소 변환 테이블을 갱신한다.
주소 변환 관계를 저장하기 위한 메모리 공간이 제한적인 만큼 새로운 페이지(혹은 엔트리)를 메모리에 올리기 위해서는 이미 저장된 것을 비워 메모리 공간을 확보해야 할 필요가 있다.
이 과정에서 비워지는 페이지가 메모리로 올라온 이후 갱신되었다면 'dirty' 상태로 간주하고, SSD에 부가적인 쓰기 작업을 요청하여 새롭게 저장해야 한다.
이러한 부가적인 쓰기는 쓰기 요청이 많은 워크로드에서 빈번하게 일어날 수밖에 없는데, 이는 데이터가 덮어써질 때마다 주소 변환 테이블의 엔트리도 함께 갱신되기 때문이다.
메모리에서 희생되는 페이지들이 계속해서 저장 장치의 새로운 페이지를 할당받으면 SSD의 NAND 플래시의 특성상 쓰레기 수집(Garbage collection)이라는 정리 작업이 필요해진다.
플래시 메모리는 인플레이스(in-place) 갱신이 되지 않기 때문에 덮어쓰기가 일어나면 쓰레기 페이지가 생기게 된다. 쓰레기 페이지들은 쓰레기 수집 과정에서 추려지고 유효한 페이지는 새로운 블록으로 복사된다.
이러한 쓰레기 수집 과정은 단순한 읽기/쓰기 작업과 비교하여 많은 시간이 소모되기 때문에 사용자 요청 중에 발생할 경우 성능 및 응답시간에 치명적으로 작용하게 된다.
도 1에는 임의 읽기/쓰기 혼합 워크로드에서 페이지 수준 FTL과 CMT의 25%를 페이지 단위로 캐싱하는 요구 기반 FTL의 읽기 응답시간 차이를 보여준다. 모든 주소 변환 관계를 메모리에 올려 참조하는 페이지 수준의 FTL은 빠르고 일관된 응답시간을 보인다.
이와 비슷하게 요구 기반 FTL에서 사상 페이지를 읽기(0.8ms)만 하는 경우에는 비교적 빠른 응답시간을 보인다. 반면, 사상 페이지 쓰기(0.8ms~10ms)는 쓰기 시간 및 그로 인한 쓰레기 수집 작업(10ms 이상)의 영향으로 읽기 요청의 응답시간이 크게 증가한다.
따라서, 요구 기반 FTL의 읽기 응답시간을 개선하기 위해서는 사상 페이지의 읽기 중 발생하는 부가적인 쓰기 연산을 방지해야 한다.
본 발명은 전술한 문제점을 해결하기 위한 것으로, 요구 기반 FTL의 캐시 영역을 클린 영역과 더티 영역으로 분리하고, 클린 영역을 통해 읽기 요청의 동작을 처리함으로써 응답시간 특성을 향상시킨 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치를 제공하고자 한다.
또한, 본 발명은 읽기 응답 특성의 향상에 따라 저하된 쓰기 응답 특성을 보완하도록 테이블의 엔트리로 더티 영역에서 쓰기가 이루어지게 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치를 제공하고자 한다.
이를 위해, 본 발명에 따른 SSD를 위한 요구 기반 FTL 캐시 분리 방법은 컴퓨팅 장치에 의해 구현되는 것으로, 캐시 영역 분리부에서 캐시 저장 영역을 클린 상태의 사상 페이지만 저장되는 클린 영역과 더티 상태의 사상 페이지만 저장되는 더티 영역으로 분류하는 캐시 분리 단계와; SSD(Solid State Drive)에 읽기 요청시, 읽기 요청 처리부에서 상기 클린 영역에 기록되어 있는 CMT(Cached Mapping Table)를 읽어들이는 캐시 읽기 단계; 상기 SSD에 쓰기 요청시, 쓰기 요청 처리부에서 상기 더티 영역에 CMT를 기록하는 캐시 쓰기 단계; 및 상기 SSD에 읽기 또는 쓰기 요청시, FTL(Flash Translation Layer)에서 상기 읽거나 써진 CMT를 처리하는 주소 변환 단계;를 포함하는 것을 특징으로 한다.
이때, 상기 캐시 읽기 단계는 페이지 단위의 CMT를 상기 클린 영역에서 읽는 단계이고, 상기 캐시 쓰기 단계는 엔트리 단위의 CMT를 상기 더티 영역에 쓰는 단계인 것이 바람직하다.
또한, 상기 캐시 읽기 단계에서는 읽기 요청시 상기 클린 영역 및 더티 영역을 모두 검색하고, 검색 결과 캐시 참조가 실패(miss)이면 LRU 알고리즘에 따라 상기 클린 영역내의 클린 페이지들 중 가장 오래된 클린 페이지를 내보내고, 검색 결과 캐시 참조가 성공(hit)이면 상기 주소 변환 단계를 통해 물리 주소에 저장된 데이터를 읽는 것이 바람직하다.
또한, 상기 캐시 쓰기 단계에서는 쓰기 요청시 상기 더티 영역을 검색하고, 검색 결과 캐시 참조가 실패이면 상기 더티 영역에서 캐시를 비우고 상기 새로이 참조된 CMT를 쓰고, 검색 결과 캐시 참조가 성공이고 상기 더티 영역에서 적중된 경우에는 새롭게 쓰이는 물리 주소로 상기 CMT의 엔트리를 갱신하며, 검색 결과 캐시 참조가 성공이고 이미 클린 영역으로 올라온 사상 페이지에서 적중된 경우에는 상기 적중된 사상 페이지는 더티 영역으로 이전되는 것이 바람직하다.
또한, 상기 사상 페이지가 클린 영역에서 더티 영역으로 이전될 때, 상기 더티 영역이 가득 차 있는 경우에는 희생 페이지를 사용하여 공간을 확보하는 것이 바람직하다.
한편, 본 발명에 따른 컴퓨팅 장치는 이상과 같은 SSD를 위한 요구 기반 FTL 캐시 분리 방법이 구현되도록 상기 캐시 영역 분리부와, 읽기 요청 처리부와, 쓰기 요청 처리부 및 주소 변환 처리부를 포함하는 것을 특징으로 한다.
이상과 같은 본 발명은 요구 기반 FTL의 캐시 영역을 클린 영역과 더티 영역으로 분리하고, 분리된 영역을 통해 클린 영역에서만 읽기 동작을 처리함으로써 응답시간을 부가 쓰기 없이 읽기 2회의 시간 이내로 줄일 수 있게 한다.
또한, 본 발명은 읽기 응답 특성의 향상에 따라 다소 저하된 쓰기 응답 특성을 보완하도록 쓰기 요청시 테이블의 엔트리로 캐시의 갱신이 이루어지게 함으로써 쓰기 동작시의 문제점 역시 해결할 수 있게 한다.
도 1은 종래 기술에 따른 요구 기반 FTL의 읽기 응답 시간을 나타낸 도이다.
도 2는 본 발명에 따른 컴퓨팅 장치를 나타낸 구성도이다.
도 3은 본 발명에 따른 SSD를 위한 요구 기반 FTL 캐시 분리 방법을 나타낸 도이다.
도 4는 요구 기반 FTL의 두 가지 캐시 형태를 나타낸 도이다.
도 5는 페이지 단위 저장 방식의 요구 기반 FTL을 나타낸 도이다.
도 6은 본 발명의 캐시 분리 상태를 나타낸 도이다.
도 7은 본 발명의 쓰기 성능 향상을 위한 CMT의 엔트리를 나타낸 도이다.
도 8은 본 발명의 배치 업데이트 동작 과정을 나타낸 도이다.
도 9 내지 도 11은 본 발명의 성능 평가 결과를 나타낸 도이다.
도 2는 본 발명에 따른 컴퓨팅 장치를 나타낸 구성도이다.
도 3은 본 발명에 따른 SSD를 위한 요구 기반 FTL 캐시 분리 방법을 나타낸 도이다.
도 4는 요구 기반 FTL의 두 가지 캐시 형태를 나타낸 도이다.
도 5는 페이지 단위 저장 방식의 요구 기반 FTL을 나타낸 도이다.
도 6은 본 발명의 캐시 분리 상태를 나타낸 도이다.
도 7은 본 발명의 쓰기 성능 향상을 위한 CMT의 엔트리를 나타낸 도이다.
도 8은 본 발명의 배치 업데이트 동작 과정을 나타낸 도이다.
도 9 내지 도 11은 본 발명의 성능 평가 결과를 나타낸 도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 SSD를 위한 요구 기반 FTL 캐시 분리 방법 및 그 컴퓨팅 장치에 대해 상세히 설명한다.
본 발명의 SSD를 위한 요구 기반 FTL 캐시 분리 방법은 컴퓨팅 장치에서 실행되는 것으로, 이 장치는 SSD(Solid State Drive)를 채택함에 따라 FTL(Flash Translation Layer)에서 논리 주소를 물리 주소로 변환할 필요가 있다.
컴퓨팅 장치는 대표적으로 개인용 PC 및 서버용 컴퓨터를 비롯하여, 최근에는 자체에 컴퓨팅 처리 기능이 있는 스마트폰과 같은 모바일 장치에도 SSD를 탑재하므로 모바일 장치도 컴퓨팅 장치에 포함된다.
이러한 본 발명은 캐시 영역을 클린(clean)과 더티(dirty) 영역으로 분리하고, 분리된 영역을 통해 클린 영역에서만 읽기 동작을 처리함으로써 부가적인 쓰기 동작의 발생을 억제하고 응답시간을 읽기 2회(사상 페이지 읽기 1회 및 데이터 읽기 1회)로 총 2번의 읽기의 시간 이내로 줄인다.
또한, 본 발명은 읽기 응답 특성의 향상에 따라 다소 저하된 쓰기 응답 특성을 보완하도록 쓰기 요청시 CMT의 엔트리만으로 갱신이 이루어지게 함으로써 쓰기 동작시 응답 특성이 저하되는 문제점 역시 해결할 수 있게 한다.
이를 위해, 도 2와 같이 본 발명이 적용되는 컴퓨팅 장치에는 캐시 영역 분리부(10), 읽기 요청 처리부(20), 쓰기 요청 처리부(30) 및 주소 변환 처리부(40)를 포함한다. 나아가 주소 변환 처리부(40)를 제어하는 SSD 컨트롤러를 비롯한 SSD 구성 요소도 포함할 수 있으며, 상기 주소 변환 처리부(40)은 SSD 컨트롤러에 일체로 구현된 것일 수 있다.
상기한 캐시 영역 분리부(10), 읽기 요청 처리부(20), 쓰기 요청 처리부(30), 주소 변환 처리부(40) 및 SSD 컨트롤러 등을 포함하는 본 발명의 컴퓨팅 장치는 아래에서 설명하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법을 구현하는 장치로 각 구성에 대해서는 이하에서 설명한다.
한편, 도 3과 같이, 본 발명에 따른 SSD를 위한 요구 기반 FTL 캐시 분리 방법은 위에서 설명한 바와 같은 컴퓨팅 장치에서 구현되는 것으로, 캐시 분리 단계(S10), 캐시 읽기 단계(S20), 캐시 쓰기 단계(S30) 및 주소 변환 단계(S40)를 포함한다.
이때, 캐시 분리 단계(S10)에서는 컴퓨팅 장치의 캐시 영역 분리부(10)에서 캐시 저장 영역을 클린 상태의 사상 페이지만 저장되는 클린 영역(읽기 영역)과 더티 상태의 사상 페이지만 저장되는 더티 영역(쓰기 영역)으로 분류한다.
캐시 읽기 단계(S20)에서는 컴퓨팅 장치를 통해 SSD에 읽기(read) 요청시, 읽기 요청 처리부(20)에서 클린 영역에 기록되어 있는 사상 테이블(주소 변환 테이블)인 CMT(예: 페이지 단위)를 읽어(S41)들인다.
캐시 쓰기 단계(S30)에서는 컴퓨팅 장치를 통해 상기한 SSD에 쓰기(write) 요청이 있는 경우 쓰기 요청 처리부(30)에서 더티 영역에 CMT(예: 엔트리 단위)를 기록하며, CMT는 SSD 메모리의 쓰기 알고리즘에 따른다.
CMT(Cached Mapping Table)는 논리 주소를 물리 주소로 변환하는 정보를 제공하는 것으로, 논리 주소는 상위 계층에서 인지하는 주소이고, 물리 주소는 캐시 메모리를 지정하는 주소를 의미한다.
따라서, 주소 변환 단계(S40)에서는 SSD에 읽기 또는 쓰기 요청이 있는 경우 상위 계층과 하위 계층의 중간에 있는 FTL(40, Flash Translation Layer)을 통해 읽거나 써진 CMT를 참조하여 저장 장치의 데이터를 읽거나 쓸 수 있게 한다.
다만, 아래에서 좀더 상세히 설명하는 바와 같이 상기한 캐시 읽기 단계(S20)는 페이지 단위의 CMT를 읽는 단계이고, 캐시 쓰기 단계(S30)는 엔트리 단위의 CMT를 쓰는 단계인 것이 바람직하다.
또한, 캐시 읽기 단계(S20)에서는 읽기 요청시 클린 영역 및 더티 영역을 모두 검색하고, 검색 결과 캐시 참조가 실패(miss)이면 LRU 알고리즘에 따라 클린 영역내의 클린 페이지들 중 가장 오래된 클린 페이지를 내보내고, 검색 결과 캐시 참조가 성공(hit)이면 상기 주소 변환 단계(S40)를 통해 물리 주소에 저장된 데이터를 읽는 것이 바람직하다.
또한, 캐시 쓰기 단계(S30)에서는 쓰기 요청시 더티 영역을 검색하고, 검색 결과 캐시 참조가 실패이면 더티 영역에서 캐시를 비우고 새로이 참조된 CMT를 쓴다. 반면, 검색 결과 캐시 참조가 성공이고 더티 영역에서 적중된 경우에는 새롭게 쓰이는 물리 주소로 상기 CMT의 엔트리를 갱신한다.
더 나아가 캐시 쓰기 단계(S30)에서 검색 결과 캐시 참조가 성공임에도 이미 클린 영역으로 올라온 사상 페이지에서 적중된 경우에는 적중된 사상 페이지는 더티 영역으로 이전되는 것이 바람직하다.
다만, 사상 페이지가 클린 영역에서 더티 영역으로 이전될 때 반복된 이전으로 인하여 더티 영역이 가득찰 수 있으므로, 더티 영역이 가득 차 있는 경우에는 희생 페이지를 사용하여 공간을 확보하는 것이 바람직하다.
좀더 상세히 설명하면, 본 발명은 제한된 캐시 메모리(DRAM) 상황에서도 늘어지는 읽기 응답시간을 줄이기 위해 캐시를 나누어 독립적으로 관리하는 캐시 분리 방법에 관한 것이다.
종래의 요구 기반 FTL에서 주소 변환 테이블을 메모리에 유지하는 방법은 크게 도 4의 (a)와 같은 엔트리 단위 저장 방식과 도 4의 (b)와 같이 페이지 단위 저장 방식이 있으며, 본 발명은 그 중 페이지 단위 저장 방식을 기반으로 한다.
알려진 바와 같이 엔트리 단위 저장 방식은 엔트리 단위로 CMT를 구성할 경우 LPA, PPA 쌍을 함께 기록해야한다. 그리고 엔트리 단위로 LRU 교체 정책을 사용할 경우 캐싱되는 엔트리 개수만큼 포인터 오버헤드가 발생한다.
이 방식은 시간적 지역성은 충분히 활용하지만, 공간적/지역성 측면에서는 제한점이 있다. 이런 형태의 캐시에서 공간적 지역성을 활용하기 위해서는 한 번에 여러 엔트리를 미리 읽기(prefetch)해야 한다.
반면, 페이지 단위 저장 방식은 페이지 단위로 메모리에 적재시킬 경우 하나의 사상 페이지가 배열 형태 그대로 올라온다. 따라서 LPA를 배열 인덱스로 사용 가능하므로 엔트리 단위 저장 방식보다 2배 더 많은 엔트리를 저장할 수 있다.
또한, LRU 역시 페이지 단위로 이루어지기 때문에 LRU 포인터를 유지하는 오버헤드를 줄일 수 있다는 장점을 가진다. 그리고 메모리 저장의 최소 단위가 페이지이므로 공간적 지역성과 SSD 읽기 단위를 쉽게 활용 가능하다.
다만, 이 방식은 공간적 지역성을 가진 워크로드에서 큰 성능 향상을 보여주지만, DRAM의 크기가 지역성을 충분히 커버하지 못하는 경우 엔트리 단위 저장 방식에 비해 빈번한 사상 페이지 쓰고/읽기 연산이 발생한다. 따라서 임의 트래픽의 워크로드에서 성능이 떨어지며 응답시간의 방해가 심해지는 단점이 존재한다.
따라서, 본 발명은 CMT를 메모리에 유지하는 엔트리 단위 저장 방식 및 페이지 단위 저장 방식 중 페이지 단위 저장 방식을 기본으로 하되, 페이지 단위 저장 방식에서는 쓰기 요청에 대한 불필요한 메모리 등재가 존재한다는 단점을 해결하기 위해 별도로 쓰기 성능을 최적화하기 위한 엔트리 방식을 적용한다.
한편, 도 5는 일반적인 요구 기반 FTL의 CMT를 나타낸 것이고, 도 6는 본 발명에서 수행하는 기본적인 캐시 분리 기법을 개략적으로 나타낸 것이다.
도 6와 같이, 본 발명의 캐시 분리 단계(S10)에서는 컴퓨팅 장치의 캐시 영역 분리부(10)에 의해 캐시 저장 영역을 클린(clean)과 더티(dirty)의 두 영역으로 나누어 분류하고 이를 관리한다.
즉, SSD 내부 메모리에서 CMT로 사용되는 영역을 논리적으로 나누어 클린 영역에는 'clean' 상태의 사상 페이지만 저장하고, 더티 영역에는 'dirty' 상태의 사상 페이지만 저장한다. 저장된 사상 페이지들은 차후 각 영역에서 최저 사용 빈도(least recently used, LRU) 교체 정책을 통해 관리된다.
따라서, SSD(Solid State Drive)에 읽기 요청시, 캐시 읽기 단계(S20)에서는 컴퓨팅 장치의 읽기 요청 처리부(20)에서 클린 영역에 기록되어 있는 CMT(Cached Mapping Table)를 읽어들이는 단계를 수행한다.
이를 위해 읽기 요청이 SSD로 들어오면 먼저 캐시를 살펴본다. 이때, 관련된 사상 페이지가 더티 영역에 저장되어 있더라도 참조는 가능하며, 캐시 참조를 통해 주소 변환 관계를 알 수 있다면 주소 변환 단계(S40)에서는 주소 변환 처리부(40)를 통해 해당 물리주소(저장 장치)에 저장된 데이터를 읽어들인다.
반면, 캐시 적중에 실패할 경우, 즉 클린 및 더티 영역 모두에서 참조를 실패하였다면 클린 영역 내의 LRU 알고리즘을 통해 참조된 지 가장 오래된 클린 페이지를 쫓아낸다. 이렇게 하면 읽기 요청 중에 추가적인 쓰기 작업이 발생하지 않는 것을 쉽게 보장할 수 있다.
이러한 본 발명은 종래 기술과 다르게 읽기 요청시 부수적 쓰기 과정이 생략되므로, 읽기 요청시 최악의 경우라도 캐시 적중 실패로 인한 '사상 페이지 읽기'와 '데이터 읽기'로 총 2번의 읽기만으로 완료된다.
다음, SSD에 쓰기 요청시, 캐시 쓰기 단계(S30)에서는 쓰기 요청 처리부(30)에서 더티 영역에 CMT를 기록한다. 특히, 캐시 쓰기 단계(S30)는 엔트리 단위의 CMT를 더티 영역에 쓰는 로깅 단계이다.
쓰기 요청 중에는 더티 영역에서 페이지를 비워주게 되기 때문에 캐시 적중에 실패(miss)할 경우 사상 페이지의 쓰기가 항상 동반하게 된다. 이는 기존 요구 기반 FTL에서 읽기 요청 중에 발생하던 추가 쓰기 작업들을 쓰기 요청 중에 발생하도록 미룬 것과 같다.
위와 반대로 캐시에서 참조에 성공(hit)하는 경우에는 아래의 두 가지 시나리오가 발생한다. 이들 두 가지 시나리오는 참조가 더티 영역에서 이루어졌는지 아니면 클린 영역에서 이루어졌는지로 구분된다.
먼저 더티 영역에서 적중된 경우 새롭게 쓰이는 물리 주소로 엔트리를 갱신한다. 더티 영역에 기 존재하던 사상 페이지들은 모두 'dirty' 상태이기 때문에 이 작업 중에 사상 페이지의 상태 변화는 없다. 그리고 해당 페이지를 더티 영역에서 자체적으로 관리하는 LRU 알고리즘에서 갱신해준다.
반면에 이미 클린 영역으로 올라온 사상 페이지에서 캐시 적중이 될 경우에는 추가적인 연산이 발생한다. 쓰기 요청이 발생하면 주소 변환 테이블인 CMT의 엔트리도 함께 갱신되기 때문에 쓰기 요청에 한번이라도 적중된 사상 페이지는 dirty 상태로 전환되어 버린다.
그러므로 해당 페이지는 더 이상 클린 영역에 머무를 수 없게 된다. 이 때 캐시 영역을 제한하지 않고 단순히 더티 영역으로 반복해서 이전시키는 것은 모든 캐시 영역이 dirty 상태의 사상 페이지로 채워지는 문제가 발생한다.
이 경우 다음에 들어오는 읽기 요청에서 캐시 적중에 실패하면 쓰기 작업이 수행되어야 하므로 이는 곧바로 응답시간에 영향을 미치게 되므로, 클린 영역의 공간은 어느 정도 보장되어야 한다.
따라서, 위와 같이 클린 영역에서 더티 영역으로 이전될 때, 더티 영역이 가득 차 있다면 해당 캐시 영역의 희생 페이지를 SSD에 써서 각 영역의 공간을 확보한다.
한편, 도 5나 도 6와 같이 페이지 단위로 CMT를 구성하면, 임의 트래픽의 워크로드에서 부가적인 쓰기 연산이 많아지고 쓰기 성능이 저하되는 문제가 발생한다. 이는 아래에서 설명하는 성능 평가에서도 볼 수 있듯 요구 기반 FTL은 물론, 본 발명의 캐시 분리 기법이 적용된 상태에서는 더 뚜렷하게 나타난다.
이에 본 발명은 캐시 분리 기법에서 더티 영역을 엔트리 단위로 이어 쓰기(logging)가 이루어지도록 하여 쓰기 요청시에도 쓰기 성능을 최적화하는 과정을 적용한다. 즉, 읽기 요청은 기존 구조와 같기 때문에 이전 흐름을 그대로 따라가지만, 쓰기 요청은 동작 방식을 더욱 개선한다.
구체적으로, 쓰기 요청은 그 요청이 발생할 때마다 CMT의 엔트리를 갱신해야 하는데, 페이지 단위 저장 방식에서는 하나의 엔트리를 갱신하기 위해 전체 사상 페이지를 함께 메모리에 올려야 했었다.
이는 임의 트래픽의 쓰기 워크로드에서 매우 비효율적으로 동작한다. 반면 쓰기 요청에서 갱신하는 엔트리는 사상 페이지를 메모리에 올리지 않아도 변경 사항을 기록할 수 있다.
따라서, 도 7과 같이 더티 영역에 엔트리 단위로 이어 쓰게(Logging) 되면 불필요한 쓰기 작업을 없앨 수 있다.
다만, 부족한 메모리를 위해 엔트리를 비워야하는 상황이 되면 엔트리 단위 저장 방식에서는 배치 업데이트(batch-update)를 통해 희생 엔트리와 같은 사상 페이지의 엔트리들을 함께 써야 한다.
희생 엔트리 한개만 SSD에 써줄 경우 부가적인 쓰기 연산이 매우 빈번하게 발생하기 때문에, 도 8과 같이 본 발명은 더티 영역의 엔트리들을 사상페이지 별로 관리하고, 쫓아낼 상황이 되면 희생페이지를 정해서 배치 업데이트하였다.
이때, 희생 페이지를 정하는 데에 있어서 다양한 교체 정책이 사용될 수 있다. 예를 들어, 페이지 단위로 LRU 알고리즘을 사용하거나 혹은 dirty 상태의 엔트리가 가장 많은 페이지를 선택하는 탐욕 알고리즘을 사용할 수도 있다. 바람직하게는 탐욕 알고리즘 방식을 채택하여 배치 업데이트 효과를 최대한 활용한다.
이하, 이상과 같은 본 발명의 성능 평가를 설명하여 종래 기술과의 차별점을 확인한다.
본 기법의 성능 평가는 Xilinx ZCU102 보드에서 구현된 환경을 통해 수행되었다. 이는 최대 512GB 용량의 SSD 역할을 하는 임베디드 보드로 4GB의 DRAM과 1GHz ARM 코어 4개로 구성되어 있다.
또한, 해당 임베디드 보드 위에서 FTL 플랫폼을 개발하였으며, 플랫폼 자체 벤치마크 툴을 사용하여 성능을 측정하였다. 벤치마크 툴에서 생성하는 워크로드는 균등분포(Uniform distribution)를 가지는 임의 읽기 및 쓰기이며, 두 요청을 함께 섞어서 생성하는 혼합(Mixed) 워크로드도 포함한다.
혼합 워크로드의 성능 측정은 쓰레기 수집 과정이 반영된 경우와 반대의 경우를 함께 관찰하였다. 실험에 사용된 데이터 셋의 크기는 64GB이며 CMT의 용량은 데이터 셋의 25%를 캐싱할 수 있도록 설정하였다.
본 발명의 캐시 분리 기법의 경우 클린과 더티 영역을 각각 12.5%씩 설정하여 그 효용성을 확인하였다. 실험에서 캐시 분리 기법을 페이지 수준 FTL 및 요구 기반 FTL과 비교하면서, 읽기/쓰기 성능과 읽기 응답시간에 초점을 두었다.
도 9는 실험 결과 중 읽기/쓰기 성능을 나타낸 것으로 균등분포의 임의 읽기/쓰기 성능을 각 기법에 대해 비교한 그래프이다.
임의 읽기나 쓰기 성능은 해당되는 요청을 충분한 범위(64GB)에 임의로 생성하여 측정되었다. 또한, 혼합 워크로드는 순차 쓰기로 64GB의 데이터를 적은 후에 해당 범위에 대해서 임의로 읽기/쓰기 요청을 혼합 생성하여 성능을 측정하였다.
임의 트래픽의 워크로드에서 요구 기반 FTL 및 캐시 분리 기법은 사상 페이지의 빈번한 읽기/쓰기로 인해 좋은 성능을 내지 못한다. 하지만 쓰기 성능을 최적화시킨 기법은 요구 기반 FTL보다 1.65배 좋으며 페이지 수준 FTL과는 비슷한 임의 쓰기 성능을 보인다.
그리고 임의 읽기/쓰기를 섞은 혼합 워크로드에서도 임의 쓰기 성능을 개선시킨 만큼 요구 기반 FTL 대비 1.15배 높은 성능을 보여준다.
도 10에서는 각 기법에서 얻은 쓰기 증폭 인자(Write Amplification Factor, WAF)를 나타낸다. 쓰기 증폭 인자는 1번의 쓰기 요청에 대해 평균 몇 번의 낸드 플래시 쓰기연산이 발생하는지 계산한 값을 나타낸다.
위에서 도 9를 참조하여 설명한 바와 마찬가지로 페이지 단위의 저장 방식을 사용하는 요구 기반 FTL은 캐싱 방식의 특성상 높은 쓰기 증폭 인자 값을 보인다.
반면 더티 영역을 엔트리 단위로 저장하면 페이지 수준 FTL과 거의 동일한 쓰기 증폭 인자 값을 가진다. 다만 사상 페이지의 읽기가 완료돼야 해당 페이지를 새로 쓸 수 있기 때문에 페이지 수준 FTL에 비해 조금 떨어지는 성능을 보인다.
다음, 도 11은 실험 결과 중 읽기 응답시간을 나타낸다. 이는 임의 읽기/쓰기가 섞인 혼합 워크로드에서 읽기 요청에 대한 응답시간의 누적 분포 그래프서 쓰기 요청으로 인해 방해받는 응답 시간을 보여준다.
본 발명의 캐시 분리 기법은 페이지 수준 FTL과 비교하면 상대적으로 느리지만 종래의 요구 기반 FTL 보다는 앞서는 응답시간을 보여준다.
또한, 요구 기반 FTL에서 부가적인 쓰기 연산으로 인해 나타났던 꼬리 응답시간도 관찰되지 않는다. 오히려 도 1에서 보여준 사상 페이지 읽기로 인한 읽기 응답시간(0.8ms)과 유사한 수치의 꼬리 응답시간을 보인다.
이를 통해 최악의 경우 2번의 읽기 연산으로 읽기 요청이 수행됨을 확인할 수 있다. 또한 쓰기 성능을 최적화시킨 경우에도 캐시 분리 기법은 그대로 유지하였기 때문에 동일하게 늘어지는 꼬리 응답시간을 제거한 모습을 보인다.
이상에서 본 발명을 통해 요구 기반 FTL의 늘어지는 읽기 꼬리 응답시간을 줄이기 위해 캐시를 클린과 더티 두 영역으로 나누어 읽기 응답시간을 보장하는 캐시 분리 기법에 대해 설명하였다.
본 발명은 요구 기반 FTL의 읽기 응답시간이 느려지는 원인 분석을 바탕으로 읽기 요청 중 방해받을 수 있는 요소들을 없앴다. 그리고 요구 기반 FTL의 두 가지 테이블 구성 방식의 장점을 함께 취하여 쓰기 성능 또한 최적화시켰다.
그리고 Xilinx ZCU102 임베디드 보드에서 FTL의 성능을 측정하여, 임의 쓰기와 임의 읽기/쓰기 혼합 실험에서 각각 요구 기반 FTL 대비 각각 1.65배와 1.15배 성능이 개선됨을 보였다.
따라서 메모리가 제한적인 상황에서도 읽기 응답시간을 보장하면서 높은 쓰기 성능을 낼 수 있음을 검증하였다.
이상, 본 발명의 특정 실시예에 대하여 상술하였다. 그러나, 본 발명의 사상 및 범위는 이러한 특정 실시예에 한정되는 것이 아니라, 본 발명의 요지를 변경하지 않는 범위 내에서 다양하게 수정 및 변형 가능하다는 것을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 것이다.
따라서, 이상에서 기술한 실시예들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이므로, 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 하며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
10: 캐시 영역 분리부
20: 읽기 요청 처리부
30: 쓰기 요청 처리부
40: 주소 변환 처리부
20: 읽기 요청 처리부
30: 쓰기 요청 처리부
40: 주소 변환 처리부
Claims (6)
- 컴퓨팅 장치에서 구현되는 SSD를 위한 요구 기반 FTL 캐시 분리 방법에 있어서,
캐시 영역 분리부(10)에서 캐시 저장 영역을 클린 상태의 사상 페이지만 저장되는 클린 영역과 더티 상태의 사상 페이지만 저장되는 더티 영역으로 분류하는 캐시 분리 단계(S10)와;
SSD(Solid State Drive)에 읽기 요청시, 읽기 요청 처리부(20)에서 상기 클린 영역에 기록되어 있는 CMT(Cached Mapping Table)를 읽어들이는 캐시 읽기 단계(S20);
상기 SSD에 쓰기 요청시, 쓰기 요청 처리부(30)에서 상기 더티 영역에 CMT를 기록하는 캐시 쓰기 단계(S30); 및
상기 SSD에 읽기 또는 쓰기 요청시, 주소 변환 처리부(40)에서 상기 읽거나 써진 CMT를 처리하는 주소 변환 단계(S40);를 포함하는 것을 특징으로 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법. - 제1항에 있어서,
상기 캐시 읽기 단계(S20)는 페이지 단위의 CMT를 상기 클린 영역에서 읽는 단계이고,
상기 캐시 쓰기 단계(S30)는 엔트리 단위의 CMT를 상기 더티 영역에 이어 쓰는 단계인 것을 특징으로 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법. - 제2항에 있어서,
상기 캐시 읽기 단계(S20)에서는 읽기 요청시 상기 클린 영역 및 더티 영역을 모두 검색하고,
검색 결과 캐시 참조가 실패(miss)이면 LRU 알고리즘에 따라 상기 클린 영역내의 클린 페이지들 중 가장 오래된 클린 페이지를 내보내고,
검색 결과 캐시 참조가 성공(hit)이면 상기 주소 변환 단계(S40)를 통해 물리 주소에 저장된 데이터를 읽는 것을 특징으로 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법. - 제2항에 있어서,
상기 캐시 쓰기 단계(S30)에서는 쓰기 요청시 상기 더티 영역을 검색하고,
검색 결과 캐시 참조가 실패이면 상기 더티 영역에서 캐시를 비우고 상기 새로이 참조된 CMT를 쓰고,
검색 결과 캐시 참조가 성공이고 상기 더티 영역에서 적중된 경우에는 새롭게 쓰이는 물리 주소로 상기 CMT의 엔트리를 갱신하며,
검색 결과 캐시 참조가 성공이고 이미 클린 영역으로 올라온 사상 페이지에서 적중된 경우에는 상기 적중된 사상 페이지는 더티 영역으로 이전되는 것을 특징으로 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법. - 제4항에 있어서,
상기 사상 페이지가 클린 영역에서 더티 영역으로 이전될 때, 상기 더티 영역이 가득 차 있는 경우에는 희생 페이지를 사용하여 공간을 확보하는 것을 특징으로 하는 SSD를 위한 요구 기반 FTL 캐시 분리 방법. - 제1항 내지 제5항 중 어느 하나의 항과 같은 SSD를 위한 요구 기반 FTL 캐시 분리 방법이 구현되도록 상기 캐시 영역 분리부(10)와, 읽기 요청 처리부(20)와, 쓰기 요청 처리부(30) 및 주소 변환 처리부(40)를 포함하는 것을 특징으로 하는 컴퓨팅 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200020812A KR102416880B1 (ko) | 2020-02-20 | 2020-02-20 | Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200020812A KR102416880B1 (ko) | 2020-02-20 | 2020-02-20 | Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210106597A true KR20210106597A (ko) | 2021-08-31 |
KR102416880B1 KR102416880B1 (ko) | 2022-07-06 |
Family
ID=77489363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200020812A KR102416880B1 (ko) | 2020-02-20 | 2020-02-20 | Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102416880B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160065468A (ko) | 2014-12-01 | 2016-06-09 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 동작 방법 |
KR20190016562A (ko) | 2016-08-06 | 2019-02-18 | 울리 인코포레이티드 | 저장 클래스 메모리를 위한 웨어 레벨링의 장치 및 방법 |
-
2020
- 2020-02-20 KR KR1020200020812A patent/KR102416880B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160065468A (ko) | 2014-12-01 | 2016-06-09 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 동작 방법 |
KR20190016562A (ko) | 2016-08-06 | 2019-02-18 | 울리 인코포레이티드 | 저장 클래스 메모리를 위한 웨어 레벨링의 장치 및 방법 |
Non-Patent Citations (1)
Title |
---|
Bae Jinwook et al., "Op vraag gebaseerde FTL-cachescheidingstechniek voor SSD's met grote capaciteit" (2019.04.30.)* * |
Also Published As
Publication number | Publication date |
---|---|
KR102416880B1 (ko) | 2022-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
US20170235681A1 (en) | Memory system and control method of the same | |
Jiang et al. | S-FTL: An efficient address translation for flash memory by exploiting spatial locality | |
US9063862B2 (en) | Expandable data cache | |
US9104327B2 (en) | Fast translation indicator to reduce secondary address table checks in a memory device | |
US20170228155A1 (en) | Information processing apparatus, storage device, and computer program product | |
US20200117368A1 (en) | Method for achieving data copying in ftl of solid state drive, system and solid state drive | |
US10740251B2 (en) | Hybrid drive translation layer | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
US20140115241A1 (en) | Buffer management apparatus and method | |
US20190303019A1 (en) | Memory device and computer system for improving read performance and reliability | |
CN113254358A (zh) | 用于地址表高速缓存管理的方法和系统 | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
CN109783398A (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
US11630779B2 (en) | Hybrid storage device with three-level memory mapping | |
CN108845957A (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
Wang et al. | ADAPT: Efficient workload-sensitive flash management based on adaptation, prediction and aggregation | |
Liu et al. | LCR: Load-aware cache replacement algorithm for flash-based SSDs | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
Lv et al. | Exploiting minipage-level mapping to improve write efficiency of NAND flash | |
Park et al. | A cost-aware page replacement algorithm for nand flash based mobile embedded systems | |
Fareed et al. | Leveraging intra-page update diversity for mitigating write amplification in SSDs | |
Kim et al. | Utilizing subpage programming to prolong the lifetime of embedded NAND flash-based storage | |
KR102416880B1 (ko) | Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 | |
Fareed et al. | Update frequency-directed subpage management for mitigating garbage collection and dram overheads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |