Abstract
Flash memories have asymmetric I/O costs for read and write in terms of latency and energy consumption. However, the ratio of these costs is dependent on the type of storage. Moreover, it is becoming more common to use two flash memories on a system as an internal memory and an external memory card. For this reason, buffer cache replacement algorithms should consider I/O costs of device as well as possibility of reference. This paper presents WWCLOCK(Write-Weighted CLOCK) algorithm which directly uses I/O costs of devices along with recency and frequency of cache blocks to selecting a victim to evict from the buffer cache. WWCLOCK can be used for wide range of storage devices with different I/O cost and for systems that are using two or more memory devices at the same time. In addition to this, it has low time and space complexity comparable to CLOCK algorithm. Trace-driven simulations show that the proposed algorithm reduces the total I/O time compared with LRU by 36.2% on average.
낸드 플래시 메모리는 하드디스크와 달리 읽기 입출력과 쓰기 입출력이 소모하는 시간 및 전력량이 다르며 그 비율은 SLC, MLC, SSD 등 다양한 형태에 따라 상이하다. 특히 최근에는 내장 메모리 장치와 함께 외장 메모리 카드 또는 USB 메모리를 동시에 사용하는 경우도 증가하고 있어서, 버퍼 캐시 교체 알고리즘을 설계하는 데 있어서 페이지의 재참조 확률뿐 만 아니라 접근 장치와 참조 종류에 따른 입출력 비용을 함께 고려해야 한다. 본 논문은 페이지의 참조 빈도(frequency), 최근성(recency) 정보와 함께 인기와 쓰기의 입출력 비용을 직접적으로 고려하는 WWCLOCK (Write-Weighted CLOCK) 알고리즘을 제안한다. WWCLOCK은 입출력 비용이 다른 다양한 2차 저장 장치에 대해 적용 가능하며, CLOCK에 가까운 낮은 시간 및 공간 복잡도를 갖고 있다. 트레이스 기반 시뮬레이션을 통해 제안된 알고리즘이 LRU 알고리즘에 비해 전체 입출력 실행 시간을 평균 36.2% 감소시킴을 보인다.