NAND 플래시 메모리는 저전력, 저렴한 가격, 그리고 대용량임에도 불구하고 페이지 단위의 쓰기 및 블록 단위의 지우기 연산은 큰 문제점을 가지고 있다. 특히 NAND 플래시 메모리 특성상 덮어쓰기가 불가능하므로 쓰기동작 후 수반되는 지우기 동작은 전체 성능저하의 원인이 된다. 기존의 NAND 플래시 메모리를 위한 SRAM버퍼는 간단하면서도 NAND 플래시 메모리의 쓰기 동작을 효과적으로 줄여줄 수 있을 뿐 아니라 빠른 접근 시간을 보장 할 수 있다. 본 논문에서는 작은 용량의 SRAM을 이용하여 NAND 플래시 메모리의 가장 큰 오버헤드인 지우기/쓰기 동작을 효과적으로 줄일 수 있는 버퍼 관리 시스템을 제안한다. 제안된 버퍼는 큰 페칭 크기를 가지는 공간적 버퍼와 작은 페칭 크기를 가지는 시간적 버퍼인 완전연관 버퍼로 구성된다. 시간적 버퍼는 공간적 버퍼에서 참조된작은 페칭을 가지며, NAND 플래시 메모리에서 쓰기 및 지우기 수행시 시간적 버퍼내에 존재하는 같은 페이지 혹은 블록에 포함된 페칭 블록을 찾아 동시에 처리한다. 따라서 NAND 플래시 메모리에서 쓰기 및 지우기 동작을 획기적으로 줄였다. 시뮬레이션 결과에 따르면 제안된 NAND 플래시 메모리 버퍼 시스템은 2배 크기의 완전연관 버퍼에 비해 접근 실패율 관점에서는 높았지만, 쓰기 동작과 지우기 동작은 평균적으로 각각 58%, 83% 정도를 줄였으며, 결론적으로 평균 플래시 메모리 접근 시간은 약 84%의 성능 향상을 이루었다.
NAND 플래시 메모리는 저전력, 저렴한 가격, 그리고 대용량임에도 불구하고 페이지 단위의 쓰기 및 블록 단위의 지우기 연산은 큰 문제점을 가지고 있다. 특히 NAND 플래시 메모리 특성상 덮어쓰기가 불가능하므로 쓰기동작 후 수반되는 지우기 동작은 전체 성능저하의 원인이 된다. 기존의 NAND 플래시 메모리를 위한 SRAM 버퍼는 간단하면서도 NAND 플래시 메모리의 쓰기 동작을 효과적으로 줄여줄 수 있을 뿐 아니라 빠른 접근 시간을 보장 할 수 있다. 본 논문에서는 작은 용량의 SRAM을 이용하여 NAND 플래시 메모리의 가장 큰 오버헤드인 지우기/쓰기 동작을 효과적으로 줄일 수 있는 버퍼 관리 시스템을 제안한다. 제안된 버퍼는 큰 페칭 크기를 가지는 공간적 버퍼와 작은 페칭 크기를 가지는 시간적 버퍼인 완전연관 버퍼로 구성된다. 시간적 버퍼는 공간적 버퍼에서 참조된작은 페칭을 가지며, NAND 플래시 메모리에서 쓰기 및 지우기 수행시 시간적 버퍼내에 존재하는 같은 페이지 혹은 블록에 포함된 페칭 블록을 찾아 동시에 처리한다. 따라서 NAND 플래시 메모리에서 쓰기 및 지우기 동작을 획기적으로 줄였다. 시뮬레이션 결과에 따르면 제안된 NAND 플래시 메모리 버퍼 시스템은 2배 크기의 완전연관 버퍼에 비해 접근 실패율 관점에서는 높았지만, 쓰기 동작과 지우기 동작은 평균적으로 각각 58%, 83% 정도를 줄였으며, 결론적으로 평균 플래시 메모리 접근 시간은 약 84%의 성능 향상을 이루었다.
There are the large overhead of block erase and page write operations in NAND flash memory, though it has low power consumption, cheap prices and a large storage. Due to the physical characteristics of NAND flash memory, overwrite operations are not permitted at the same location, so rewriting opera...
There are the large overhead of block erase and page write operations in NAND flash memory, though it has low power consumption, cheap prices and a large storage. Due to the physical characteristics of NAND flash memory, overwrite operations are not permitted at the same location, so rewriting operation require after erase operation. it cause performance decrease of NAND flash memory. Using SRAM buffer in traditional NAND flash memory, it can not only reduce effective write operation but also guarantee fast memory access time. In this paper, we proposed the small SRAM buffer management system for reducing overhead of NAND flash memory, that is, erase and write operations. The proposed buffer system in a NAND flash memory consists of two parts, i.e., a fully associative temporal buffer with the small fetching block size and a fully associative spatial buffer with the large fetching block size. The temporal buffer have small fetching blocks that referenced from spatial buffer. When it happen write operations or erase operations in NAND flash memory, the related fetching blocks in temporal buffer include a page or a block are written in NAND flash memory at the same time. The writing and erasing counts in NAND flash memory can be reduced. According to the simulation results, although we have high miss ratios, write and erase operations can be reduced approximatively 58% and 83% respectively. Also the average memory access times are improved about 84% compared with the fully associative buffer with two sizes.
There are the large overhead of block erase and page write operations in NAND flash memory, though it has low power consumption, cheap prices and a large storage. Due to the physical characteristics of NAND flash memory, overwrite operations are not permitted at the same location, so rewriting operation require after erase operation. it cause performance decrease of NAND flash memory. Using SRAM buffer in traditional NAND flash memory, it can not only reduce effective write operation but also guarantee fast memory access time. In this paper, we proposed the small SRAM buffer management system for reducing overhead of NAND flash memory, that is, erase and write operations. The proposed buffer system in a NAND flash memory consists of two parts, i.e., a fully associative temporal buffer with the small fetching block size and a fully associative spatial buffer with the large fetching block size. The temporal buffer have small fetching blocks that referenced from spatial buffer. When it happen write operations or erase operations in NAND flash memory, the related fetching blocks in temporal buffer include a page or a block are written in NAND flash memory at the same time. The writing and erasing counts in NAND flash memory can be reduced. According to the simulation results, although we have high miss ratios, write and erase operations can be reduced approximatively 58% and 83% respectively. Also the average memory access times are improved about 84% compared with the fully associative buffer with two sizes.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
따라서 본 논문에서는 작은 용량의 버퍼를 사용하여 NAND 플래시 메모리의 가장 큰 문제점인 쓰기 및 지우기 동작을 줄이며, 버퍼에서 쓰기 동작 요청 혹은 NAND 플래시메모리에서 지우기 동작시 효과적인 동작을 수행하는 버퍼 관리 시스템을 제안한다.
본 논문에서는 NAND 플래시 메모리를 위한 가장 효과적인 버퍼의 구조와 크기 그리고 페칭 크기를 위해서 선행 연구로 기존의 상용화된 캐쉬 메모리 버퍼를 NAND 플래시 메모리에 접목하여 버퍼의 접근 실패율을 평가하였다. 선행 연구로 TLB(translation lookaside buffer)처럼 작은 용량으로 좋은 성능을 보이는 완전연관 버퍼를 사용하여 버퍼 크기와 성능의 상관관계에서 가장 좋은 버퍼의 크기 및 페칭 크기를 선택하였다.
본 논문에서는 NAND 플래시 메모리에 효과적으로 쓰기 동작과 지우기 동작을 위한 버퍼 관리시스템을 제안하였다. 제안된 시스템은 완전연관 버퍼인 시간적 버퍼와 공간적 버퍼로 구성되어진다.
본 논문에서는 NAND 플래시 메모리의 특성에 적합한 작은 용량의 SRAM 버퍼를 이용하여 빠른 접근 시간과 쓰기/지우기 동작을 줄여 전체 시스템의 성능향상을 위한 버퍼 구조와 운용방법을 제안한다. 제안된 버퍼는 큰 페칭 크기를 가지는 공간적 버퍼와 작은 페칭 크기를 가지는 시간적 버퍼로 모두 완전연관 버퍼로 구성된다.
본 논문에서는 버퍼에서 쓰기 동작의 지연을 위해 시간적 버퍼에서 공간 확보를 위한 메커니즘을 추가 하였다. 만약 공간적 버퍼가 프로그램 수행시 공간적 지역성의 패턴 주기보다 작은 용량의 버퍼를 사용하게 되면, 충분한 공간적 지역성을 위한 참조가 일어나지 못하게 된다.
본 연구의 목적은 NAND 플래시 메모리에 작은 용량의 캐쉬 메모리 버퍼를 이용하여 NAND 플래시 메모리의 가장 큰 단점인 쓰기 및 지우기 동작에 대한 데이터 버퍼 관리 시스템을 설계하는 것이다.
0을[11] 사용하여 각각 1억 개의 명령을 수행하는 동안 데이터 참조 주소를 모니터링 하여 사용하였다. 시뮬레이션을 위한 시스템으로 본 연구에서는 다양한 버퍼 시스템을 가지는 플래시 메모리 자체 성능을 평가하였다. 기본 시뮬레이션 환경 변수는 표 1과 같다[12]
이러한 NAND 플래시 메모리의 단점을 보완하고 성능향상을 위해 많은 연구가 이루어지고 있다. 플래시 셀에서의 빠른 접근과 효과적인 쓰기 동작을 위한 FTL(Flash Translation Layer) 연구[4]와 지우기 동작의 블록 Wear leveling으로써 플래시 메모리 셀의 페이지 쓰기와 블록 지우기의 성능 향상을 위한 연구[5]이다. 하지만 FTL과 Wear leveling의 연구는 플래시 메모리 페이지와 블록에 대한 쓰기/지우기 연산에서 효과적인 성능 개선을 보이지만 여전히 느린 랜덤 접근 시간을 가지는 문제점이 있다.
가설 설정
그림 2는 제안된 버퍼 시스템의 구조 및 버퍼 접근 실패시 동작을 나타낸 그림이다. 예로 공간적 버퍼의 한 엔트리는 4개의 시간적 버퍼의 페칭 블록 크기의 합과 같고, NAND 플래시 메모리의 한 블록은 4개의 페이지(A~D, E~H...)를 가지고 있다고 가정한다. 그림 2(a)는 공간적 버퍼와 시간적 버퍼에 각 페칭 블록들을 나타낸 그림이다.
제안 방법
NAND 플래시 메모리 시스템의 성능 평가는 버퍼 접근 실패율(miss ratio)과 평균 메모리 접근 시간(Average Memory Access Time)을 제안된 버퍼관리 시스템과 다른 기존의 비교버퍼 시스템을 가진 NAND 플래시 메모리 성능을 비교, 분석하였다. 여기서 버퍼 접근 실패율은 NAND 플래시 메모리를 위한 버퍼에서의 접근 실패율을 의미하며, 평균 메모리 접근 시간은 버퍼 시스템의 접근 실패로부터 요청한 페칭 블록이 NAND 플래시 메모리로부터 버퍼 저장 될 때까지 지연된 시간을 의미한다.
제안된 버퍼 시스템에서 공간적/시간적 버퍼 모두 완전연관 버퍼로 구성된다. 공간적 버퍼의 동작은 기존의 완전연관 버퍼와 동일하게 FIFO로 구성하였다. 공간적 버퍼의 페칭 크기는 n개의 작은 페칭 크기의 총합과 같다.
하지만 작은 페칭 크기의 시간적 버퍼는 동일한 페이지에 많은 쓰기 동작을 요청 할 수 있다. 따라서 본 논문에서는 NAND 플래시 메모리에 쓰기 동작 요청시 시간적 버퍼에 존재하는 동일한 페이지의 쓰기 데이터를 모두 동시에 NAND 플래시 메모리에 쓰기를 수행할 뿐 아니라 지우기 동작시 NAND 플래시 메모리의 블록에 존재하는 데이터 검색하여 동시에 적용하게 된다.
따라서 제안된 버퍼 시스템에서는 데이터의 일치관성과 시간적 버퍼의 공간 확보를 위해 두 버퍼에서 모두 접근 실패가 발생시, NAND 플래시 메모리로부터 공간적 버퍼로 페칭 블록을 저장될 때, 시간적 버퍼에서 공간적 버퍼의 페칭 블록에 포함되는 페칭 블록이 있는지 찾게 된다. 만약 시간적 버퍼에서 공간적 버퍼에 포함되는 페칭 블록들이 존재한다면, 그 페칭 블록들은 NAND 플래시 메모리로부터 가져오는 공간적 페칭 블록에 덮어 쓰게 된다.
제안된 버퍼는 큰 페칭 크기를 가지는 공간적 버퍼와 작은 페칭 크기를 가지는 시간적 버퍼로 모두 완전연관 버퍼로 구성된다. 또한 제안된 버퍼의 쓰기 동작을 줄이기 위하여 버퍼로부터 NAND 플래시 메모리의 쓰기 동작 요청시 버퍼내의 요청 페이지에 해당하는 변경된 데이터를 일괄적으로 찾아서 한 번에 한 페이지를 쓰게 된다. 제안된 버퍼 관리 시스템은 2배 크기의 비교 버퍼들, 예로 8-웨이 집합연관버퍼(8-way set associative buffer), 희생버퍼(Victim buffer), 완전연관버퍼(Fully associative buffer)에 비해 높은 버퍼 접근 실패율을 보였지만, 쓰기 동작과 지우기 동작의 접근을 획기적으로 줄여줌으로써 전체적으로 평균 플래시 메모리 접근 시간에서 높은 성능 향상을 보였다.
본 논문에서는 NAND 플래시 메모리에 쓰기 동작시 NAND 플래시 메모리에 접근하는 블록에 페이지를 쓰기 위한 무효 페이지가 있다면, 시간적 버퍼는 NAND 플래시 메모리에 포함되는 이미 쓰기 동작이 이루어진(dirty 비트 “1”) 페칭 블록을 찾아서 모두 NAND 플래시 메모리에 적어준다.
이 장에서는 시뮬레이션 환경 및 성능 평가에 대해 자세히 설명한다. 사용된 벤치마크는 멀티미디어 응용을 대표하는 미디어벤치마크를 이용하여 성능 평가를 하였다[10]. 이 벤치마크들의 트레이스를 생성하기 위해 Simplescalar3.
본 논문에서는 NAND 플래시 메모리를 위한 가장 효과적인 버퍼의 구조와 크기 그리고 페칭 크기를 위해서 선행 연구로 기존의 상용화된 캐쉬 메모리 버퍼를 NAND 플래시 메모리에 접목하여 버퍼의 접근 실패율을 평가하였다. 선행 연구로 TLB(translation lookaside buffer)처럼 작은 용량으로 좋은 성능을 보이는 완전연관 버퍼를 사용하여 버퍼 크기와 성능의 상관관계에서 가장 좋은 버퍼의 크기 및 페칭 크기를 선택하였다. 완전연관 버퍼는 작은 용량으로 가장 좋은 접근 실패율을 가지는 구조이다.
사용된 벤치마크는 멀티미디어 응용을 대표하는 미디어벤치마크를 이용하여 성능 평가를 하였다[10]. 이 벤치마크들의 트레이스를 생성하기 위해 Simplescalar3.0을[11] 사용하여 각각 1억 개의 명령을 수행하는 동안 데이터 참조 주소를 모니터링 하여 사용하였다. 시뮬레이션을 위한 시스템으로 본 연구에서는 다양한 버퍼 시스템을 가지는 플래시 메모리 자체 성능을 평가하였다.
제안된 버퍼 시스템에서 공간적/시간적 버퍼 모두 완전연관 버퍼로 구성된다. 공간적 버퍼의 동작은 기존의 완전연관 버퍼와 동일하게 FIFO로 구성하였다.
본 논문에서는 NAND 플래시 메모리의 특성에 적합한 작은 용량의 SRAM 버퍼를 이용하여 빠른 접근 시간과 쓰기/지우기 동작을 줄여 전체 시스템의 성능향상을 위한 버퍼 구조와 운용방법을 제안한다. 제안된 버퍼는 큰 페칭 크기를 가지는 공간적 버퍼와 작은 페칭 크기를 가지는 시간적 버퍼로 모두 완전연관 버퍼로 구성된다. 또한 제안된 버퍼의 쓰기 동작을 줄이기 위하여 버퍼로부터 NAND 플래시 메모리의 쓰기 동작 요청시 버퍼내의 요청 페이지에 해당하는 변경된 데이터를 일괄적으로 찾아서 한 번에 한 페이지를 쓰게 된다.
본 논문에서는 NAND 플래시 메모리에 효과적으로 쓰기 동작과 지우기 동작을 위한 버퍼 관리시스템을 제안하였다. 제안된 시스템은 완전연관 버퍼인 시간적 버퍼와 공간적 버퍼로 구성되어진다. NAND 플래시 메모리의 쓰기 동작은 작은 페칭 블록을 가지는 시간적 버퍼에서 이미 쓰기 동작이 이루어진 페칭 블록이 추출될 때 이루어진다.
즉, 제안된 버퍼 관리 시스템은 완전연관 버퍼인 시간적/공간적 버퍼로 구성되며, 시간적 버퍼로부터 NAND 플래시메모리에 쓰기 동작이 발생할 때, NAND 플래시 메모리의 페이지에 포함되는 이미 쓰기 동작이 이루어진 시간적 페칭블록들을 모두 저장하게 되며, 더욱이 쓰기 동작을 위한 더 이상 무효 페이지가 없을 경우, NAND 플래시 메모리의 해당 블록은 다른 무효 블록에 페이지들을 쓰게 된다. 이때 시간적 버퍼는 NAND 플래시 메모리 블록에 포함되는 이미 쓰기 동작이 이루어진 모든 시간적 버퍼의 페칭 블록을 찾아 NAND 플래시 메모리에 적어주게 된다.
대상 데이터
시간적 버퍼는 5Kbyte 크기의 128byte의 페칭 블록 크기를 가진다. 5Kbyte의 시간적 버퍼의 페칭 크기는 선행 연구에서 4Kbyte의 완전연관 버퍼에서 가장 좋은 성능을 보인 크기로 제안된 시간적 버퍼와 비슷한 크기로 128byte를 선택하였다.
성능 평가를 위한 비교 버퍼로 기존의 캐쉬 메모리에서 접근 실패율이 좋은 구조인 8-웨이 연관사상 버퍼(8-웨이), 희생(Victim) 버퍼, 그리고 완전연관 버퍼를 사용하였다. 각 비교 버퍼의 페칭 크기와 버퍼의 크기의 선정은 선행연구로 버퍼크기는 4Kbyte~128Kbyte 그리고 페칭 크기는 32byte~2048byte까지 시뮬레이션 결과 버퍼 크기 면에서 접근 실패율이 가장 효과적인 버퍼 크기와 페칭 크기를 선택하였다. 8-웨이 연관사상 버퍼, 희생 버퍼 그리고 완전연관 버퍼 모두 16Kbyte의 버퍼 크기에서 1024byte의 페칭 크기를 가질 때 가장 좋은 성능을 보였다.
본 논문에서는 완전연관 버퍼의 크기를 8Kbyte에서 128Kbyte까지 증가시켰으며, 버퍼 페칭 크기는 일반적인 L1 캐쉬의 페칭 크기인 32byte부터 NAND 플래시 메모리의 한 페이지 크기인 2048byte까지의 접근 실패율을 확인하였다. 결론적으로 본 논문에서는 버퍼의 크기당 가장 좋은 성능의 향상을 보이는 16Kbyte의 완전연관버퍼를 기본 버퍼의 크기로 선택하였다.
따라서 비교 버퍼의 크기는 모두 1024byte의 페칭 크기를 가지는 16Kbyte의 버퍼 크기로 선정하였다. 단 희생 버퍼의 경우 완전연관 버퍼의 페칭 블록 수는 4개로 선정하였다.
8-웨이 연관사상 버퍼, 희생 버퍼 그리고 완전연관 버퍼 모두 16Kbyte의 버퍼 크기에서 1024byte의 페칭 크기를 가질 때 가장 좋은 성능을 보였다. 따라서 비교 버퍼의 크기는 모두 1024byte의 페칭 크기를 가지는 16Kbyte의 버퍼 크기로 선정하였다. 단 희생 버퍼의 경우 완전연관 버퍼의 페칭 블록 수는 4개로 선정하였다.
본 논문에서는 시간적 지역성과 공간적 지역성을 이용할 수 있는 큰 페칭 크기를 가지는 공간적 버퍼와 작은 페칭 크기를 가지는 시간적 버퍼로 이중 구조의 버퍼를 사용하였다. 큰 페칭 크기를 가지는 공간적 버퍼에서 참조가 이루어진 작은 페칭 크기는 시간적 버퍼에 저장하게 된다.
성능 평가를 위한 비교 버퍼로 기존의 캐쉬 메모리에서 접근 실패율이 좋은 구조인 8-웨이 연관사상 버퍼(8-웨이), 희생(Victim) 버퍼, 그리고 완전연관 버퍼를 사용하였다. 각 비교 버퍼의 페칭 크기와 버퍼의 크기의 선정은 선행연구로 버퍼크기는 4Kbyte~128Kbyte 그리고 페칭 크기는 32byte~2048byte까지 시뮬레이션 결과 버퍼 크기 면에서 접근 실패율이 가장 효과적인 버퍼 크기와 페칭 크기를 선택하였다.
본 연구에서는 NAND 플래시 메모리의 성능 평가를 위해 하이브리드 맵핑(hybrid mapping)[13] 알고리즘을 사용하였다. 제안된 NAND 플래시 메모리의 페이지 크기는 2Kbyte이며, 블록 크기는 128Kbyte로 64개의 페이지로 구성 하였다.
이론/모형
본 연구에서는 NAND 플래시 메모리의 성능 평가를 위해 하이브리드 맵핑(hybrid mapping)[13] 알고리즘을 사용하였다. 제안된 NAND 플래시 메모리의 페이지 크기는 2Kbyte이며, 블록 크기는 128Kbyte로 64개의 페이지로 구성 하였다.
그림 4는 각 버퍼들의 NAND 플래시 메모리에 쓰기 동작 감소율(a)과 지우기 동작 감소율(b)을 나타내고 있다. 쓰기 동작과 지우기 동작의 감소율은 완전연관 버퍼를 기준으로 평준화하여 나타냈다. 이는 제안된 버퍼의 구조가 모두 완전연관 버퍼로 구성되어지기 때문이다.
성능/효과
각 비교 버퍼의 페칭 크기와 버퍼의 크기의 선정은 선행연구로 버퍼크기는 4Kbyte~128Kbyte 그리고 페칭 크기는 32byte~2048byte까지 시뮬레이션 결과 버퍼 크기 면에서 접근 실패율이 가장 효과적인 버퍼 크기와 페칭 크기를 선택하였다. 8-웨이 연관사상 버퍼, 희생 버퍼 그리고 완전연관 버퍼 모두 16Kbyte의 버퍼 크기에서 1024byte의 페칭 크기를 가질 때 가장 좋은 성능을 보였다. 따라서 비교 버퍼의 크기는 모두 1024byte의 페칭 크기를 가지는 16Kbyte의 버퍼 크기로 선정하였다.
결과적으로, 제안된 버퍼 시스템은 완전연관 버퍼에 비해 58%, 8웨이 버퍼에 비해 60% 그리고 희생 버퍼에 비해 36%의 쓰기 동작 감소율을 보였으며, 지우기 동작에서는 완전연관 버퍼에 비해 83% 그리고 8웨이 버퍼와 희생 버퍼에서 81%, 78%의 감소율을 이루었다.
시뮬레이션 결과처럼 데이터는 프로그램의 특성에 따라 공간적 지역성과 시간적 지역성의 특성이 서로 다르게 나타난다. 공간적 지역성은 순차적인 접근에 강한 특성으로 최근 참조되어진 데이터의 이웃 데이터가 참조 되어질 확률이 높은 것으로 큰 페칭 크기에 효과적이며, 시간적 지역성은 한번 참조 되어진 데이터는 가까운 시간에 다시 참조 되어질 확률이 높다는 것을 의미하며, 버퍼의 엔트리 수가 많을수록 효과적이다.
물론 제안된 구조에 대하여 비교버퍼들과 동일한 버퍼 크기(16Kbyte)를 기준으로 시뮬레이션을 수행한 결과 8-웨이 연관사상 버퍼, 희생(Victim) 버퍼, 그리고 완전연관 버퍼에 비해 각각 평균 32%, 30%, 5%의 성능향상을 보였다. 그러나 제안된 구조에 대하여 8Kbyte의 사이즈를 선택한 이유는 플래시 메모리의 성능 평가가 쓰기 및 지우기 연산에 매우 영향을 많이 받기 때문에 후에 설명할 평균 메모리 접근 시간을 보면 버퍼 접근 실패율이 전체 성능에 큰 영향을 미치지 않음을 알 수 있다. 그러므로 비용 및 전력적인 측면에서 본 논문은 작은 버퍼 사이즈를 최종적으로 선택하게 되었다.
이는 제안된 버퍼 구조가 공간적 지역성과 시간적 지역성을 효과적으로 사용할 수 있으며, 특히 공간적 지역성에 대한 데이터들은 제안된 쓰기 동작 알고리즘으로 NAND 플래시 메모리의 쓰기 동작시 좋은 성능향상을 이룰 수 있기 때문이다. 따라서 제안된 버퍼 시스템의 쓰기 동작이 작은 용량의 버퍼에서 효과적이다. 특히 epic와 unepic의 경우, 8웨이 연관사상 버퍼와 희생 버퍼에 비해 평균 77%의 낮은 쓰기 동작을 보였다.
또한 cjpeg(희생 버퍼 제외), djpeg 그리고 mpegde의 경우 쓰기 동작 감소율과 같이 지우기 동작에서는 제안된 버퍼 시스템이 좋은 성능을 보였다. 이는 제안된 버퍼는 NAND 플래시 메모리의 블록 지우기 동작시 시간적 버퍼에서 NAND 플래시 메모리에 관련된 이미 쓰기 동작이 이루어진 페칭 블록들을 모두 적어주게 된다.
제안된 버퍼 시스템에서는 버퍼가 없는 기존 NAND 플래시 메모리에 비해서는 쓰기 동작과 지우기 동작을 각각 99%를 줄였다. 또한 두 배 크기의 비교 버퍼를 사용한 NAND 플래시 메모리에 비해 다소 높은 버퍼 접근 실패율을 보이지만, 8웨이 연관버퍼에 비해 60%, 희생 버퍼에 비해 36% 그리고 완전연관 버퍼에 비해 58%의 쓰기 동작 감소율을 보였다. 또한 지우기 동작에서도 비교 버퍼들에 비해 평균 80%의 성능 향상을 이루었으며, 전체적인 평균 플래시 메모리 접근 시간에서는 비교 버퍼들에 비해 평균 83%의 성능 향상을 이루었다.
또한 두 배 크기의 비교 버퍼를 사용한 NAND 플래시 메모리에 비해 다소 높은 버퍼 접근 실패율을 보이지만, 8웨이 연관버퍼에 비해 60%, 희생 버퍼에 비해 36% 그리고 완전연관 버퍼에 비해 58%의 쓰기 동작 감소율을 보였다. 또한 지우기 동작에서도 비교 버퍼들에 비해 평균 80%의 성능 향상을 이루었으며, 전체적인 평균 플래시 메모리 접근 시간에서는 비교 버퍼들에 비해 평균 83%의 성능 향상을 이루었다.
그럼에도 불구하고 나머지 벤치마크에 대해서는 큰 성능 저하를 보이지 않고 있다. 물론 제안된 구조에 대하여 비교버퍼들과 동일한 버퍼 크기(16Kbyte)를 기준으로 시뮬레이션을 수행한 결과 8-웨이 연관사상 버퍼, 희생(Victim) 버퍼, 그리고 완전연관 버퍼에 비해 각각 평균 32%, 30%, 5%의 성능향상을 보였다. 그러나 제안된 구조에 대하여 8Kbyte의 사이즈를 선택한 이유는 플래시 메모리의 성능 평가가 쓰기 및 지우기 연산에 매우 영향을 많이 받기 때문에 후에 설명할 평균 메모리 접근 시간을 보면 버퍼 접근 실패율이 전체 성능에 큰 영향을 미치지 않음을 알 수 있다.
본 논문에서는 완전연관 버퍼의 크기를 8Kbyte에서 128Kbyte까지 증가시켰으며, 버퍼 페칭 크기는 일반적인 L1 캐쉬의 페칭 크기인 32byte부터 NAND 플래시 메모리의 한 페이지 크기인 2048byte까지의 접근 실패율을 확인하였다. 결론적으로 본 논문에서는 버퍼의 크기당 가장 좋은 성능의 향상을 보이는 16Kbyte의 완전연관버퍼를 기본 버퍼의 크기로 선택하였다.
비록 버퍼 접근 실패율에서 제안된 버퍼가 cjpeg와 djpeg에서 다른 비교 버퍼에 비해 높은 실패율을 보였지만, 지우기 동작에서 평균 각각 25%와 8%를 줄이므로 평균 메모리 접근 시간에서는 비교 버퍼들과 비슷한 성능을 보이고 있다.
즉, NAND 플래시 메모리에 쓰기 동작과 지우기 동작을 줄이므로 NAND 플래시 메모리의 전체 성능향상을 이룰 수 있다. 시뮬레이션 결과, 그림 5에서 보듯이 평균적으로 비교 버퍼에 비해 평균 메모리 접근 시간을 약 80%의 성능향상을 이루었다.
평균 메모리 접근 시간은 그림 4의 쓰기와 지우기 동작의 감소율 결과와 비슷한 그래프 형태를 보이고 있다. 역시 쓰기 동작 및 지우기 동작 감소율에서와 같이 epic와 unepic에서 평균 메모리 접근 시간이 가장 좋은 성능향상을 보이고 있다. 이는 epic와 unepic는 순차적인 공간적 지역성이 강한 특성을 가지며, 제안된 버퍼 시스템 동작은 공간적 지역성이 높은 데이터에 대해서 효과적으로 쓰기 동작과 지우기 동작을 줄일 수 있기 때문이다.
또한 제안된 버퍼의 쓰기 동작을 줄이기 위하여 버퍼로부터 NAND 플래시 메모리의 쓰기 동작 요청시 버퍼내의 요청 페이지에 해당하는 변경된 데이터를 일괄적으로 찾아서 한 번에 한 페이지를 쓰게 된다. 제안된 버퍼 관리 시스템은 2배 크기의 비교 버퍼들, 예로 8-웨이 집합연관버퍼(8-way set associative buffer), 희생버퍼(Victim buffer), 완전연관버퍼(Fully associative buffer)에 비해 높은 버퍼 접근 실패율을 보였지만, 쓰기 동작과 지우기 동작의 접근을 획기적으로 줄여줌으로써 전체적으로 평균 플래시 메모리 접근 시간에서 높은 성능 향상을 보였다.
제안된 버퍼 시스템에서 공간적 버퍼는 3Kbyte 크기로 페칭 블록 크기는 비교 버퍼들의 가장 좋은 성능을 보였든 1024byte 페칭 블록 크기 선택하였다. 시간적 버퍼는 5Kbyte 크기의 128byte의 페칭 블록 크기를 가진다.
제안된 버퍼 시스템에서는 버퍼가 없는 기존 NAND 플래시 메모리에 비해서는 쓰기 동작과 지우기 동작을 각각 99%를 줄였다. 또한 두 배 크기의 비교 버퍼를 사용한 NAND 플래시 메모리에 비해 다소 높은 버퍼 접근 실패율을 보이지만, 8웨이 연관버퍼에 비해 60%, 희생 버퍼에 비해 36% 그리고 완전연관 버퍼에 비해 58%의 쓰기 동작 감소율을 보였다.
이는 제안된 버퍼의 구조가 모두 완전연관 버퍼로 구성되어지기 때문이다. 제안된 버퍼 시스템은 다른 비교 버퍼에 비해 다소 높은 버퍼 접근 실패율을 가짐에도 불구하고 쓰기 동작과 지우기 동작에서 좋은 성능향상을 보였다.
그림 3은 버퍼 접근 실패율을 나타낸 그림이다. 제안된 버퍼 시스템은 다른 비교 버퍼에 비해 다소 높은 접근 실패율을 보이고 있다. cjpeg, djpegd 그리고 epic에서 비교 버퍼와 제안된 버퍼의 접근 실패율이 가장 큰 차이를 보이고 있다.
즉 한 페칭 블록에 대해 시간 간격에 따른 공간적 지역성은 시간적 지역성과 유사하게 버퍼의 엔트리수가 많을수록 유리하다. 제안된 버퍼는 공간적 지역성을 위한 엔트리보다 비교 버퍼들은 약 5배 높은 엔트리를 가지지만, 128byte의 페칭 크기를 가지는 시간적 버퍼를 가지므로 cjpeg, djpeg, mpegde에서 제안된 쓰기 동작을 줄이는 알고리즘으로 높은 쓰기 동작 감소율을 가질 수 있었다. 그 외 다른 벤치마크들에서도 제안된 버퍼 시스템이 비교 버퍼들에 비해 높은 쓰기 동작 감소율을 보이고 있다.
질의응답
핵심어
질문
논문에서 추출한 답변
완전연관 버퍼는 어떤 구조인가?
완전연관 버퍼는 접근 실패율이 가장 좋은 구조임에도 불구하고 프로그램의 가장 큰 특성인 공간적/시간적 지역성을 효과적으로 이용하지 못하는 구조이다. 하지만 NAND 플래시 메모리에 작은 페칭 크기를 가지는 버퍼의 이용은 시간적 지역성을 높여줄 수 있지만 이는 오히려 NAND 플래시 메모리의 많은 쓰기 동작을 초래할 수 있다.
NAND 플래시 메모리의 가장 큰 문제점은 무엇인가?
NAND 플래시 메모리에서 가장 큰 문제점은 동일 셀에 대하여 덮어 쓰기가 불가능하다. 하나의 쓰기 동작은 차후 블록의 지우기 동작이 수반된다.
NAND 플래시 메모리는 어떤 구조적 특징을 가지고 있는가?
더욱이 NAND 플래시 메모리는 읽기 동작에 비해 쓰기 동작과 지우기 동작은 큰 오버헤드를 가질 뿐 아니라 동일한 주소의 쓰기 동작은 횟수가 제한된다. 특히 제한된 횟수 이상 쓰기 동작이 반복 될 경우 해당 블록을 사용 못하게 되는 구조적 특징을 가지고 있다.
참고문헌 (13)
N. Ballard, "State of PDAs and Other Pen-Based Systems," In Pen Computing Magazine, pp.14-19, Aug. 1994.
B. March, F. Douglis, and P. Krishnan, "Flash Memory File Caching for Mobile Computer," In Proc. of the 27 Hawaii International conference on System Science, pp.451-460, Jan. 1994.
Needham & Company, LCC, NAND vs. Hard Disk Drives: Hype, Myth and Reality, Oct. 2005.
Jung-Wook Park, Seung-Ho Park, Charles C.Weems, Shin-Dug Kim, "A hybrid flash translation layer for SLC-MLC flash memory based multibank solid state disk", Microprosessors and Microsystems, Vol.35, Issue 1, pp.48-59, Feb. 2011.
D. Jung, Y.H. Chae, H. Jo, J.S. Kim and J. Lee, "A Group-Based Wear-Leveling Algorithm for Large-C apacity Flash Memory Storage Systems", Proc. The 2007 international conference on Compilers, architecture, and synthesis for embedded systems, pp. 160-164, 2007.
B. Jung, J. Lee, "The Smart buffer NAND Flash memory System for a hard-disk substitution." Journal of The Korea Society of Computer and Information, Vol 14, No 3, pp. 41-50, Mar. 2009,
J. Lee, G. Park, and S. Kim, "A New NAND-type Flash Memory Package with Smart Buffer System for Spatial and Temporal Localities," Journal of System Architecture, Vol.51 No.2 pp.111-123, Feb. 2005.
C. Park, J. Seo, S. Bae, H. Kim, S. Kim and Bumsoo Kim, "A low-cost memory architecture with NAND XIP for mobile embedded systems," In Proc. of the 1st CODES-ISSS'03, pp.138-143, Oct. 2003.
H. S. Jo, J. U Kang, S. Y Pack, " FAB: Flash-aware buffer management policy for protable media players," Comsumer Electronics, IEEE Transactions on, pp.485-493, Apr. 2006
D. Burger and T. M. Austin, "The SimpleScalartool set, version 2.0, Technical Report TR-97- 1342," University of Wisconsin-Madison, 1997.
S. Lee, D, Park and H. Song, "A Log Buffer-Based Flash Translation Layer Using Fully-Associative Sector Translation," ACM Transactions on Embeded Computing Systems, Vol. 6, No. 3, July, 2007.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.