검색 상세

Software Design for Non-volatile Memory

이성광 (Sungkwang Lee, 포항공과대학교)

원문보기

초록 moremore
Non-volatile memory, including phase-change memory (PCM), has several benefits including low cost, non-volatility, byte-addressability, etc., and limitations such as write endurance. There have been several hardware approaches to exploit the benefits while minimizing the negative impact of limitatio...
Non-volatile memory, including phase-change memory (PCM), has several benefits including low cost, non-volatility, byte-addressability, etc., and limitations such as write endurance. There have been several hardware approaches to exploit the benefits while minimizing the negative impact of limitations. Software approaches could give further improvements, when used together with hardware approaches, by taking advantage of write behavior present in the program, e.g., write behavior on dynamically allocated data, which is hardly captured by hardware approaches. This work proposes a software design methodology to reduce costly PCM writes. First, on top of existing hardware approach such as Flip-N-Write, this work advocates exploiting the capability of PCM bit-level differential write in the software by judiciously reusing previously allocated memory resource. In order to avoid wear-out incurred by the reuse, this work presents software-based wear-leveling methods which distribute writes across PCM cells. In order to further reduce PCM writes, we propose identifying data whose loss does not affect the functionality of the underlying software, and then diverting write traffic for those data items to volatile memory. To evaluate the effectiveness of these methods, as a case study, we applied the proposed methods to the design of journaling in SQLite and Memcached. SQLite is an important database application commonly used in smartphones, and Memcached is a distributed key-value cache system widely used in server application to accelerate service time. For the experiments, we used an in-house PCM-based prototype board and PC. Experiments about SQLite with four representative mobile applications show that the proposed design methods, which is applied on top of the hardware approach, Flip-N-Write, result in 75.2% further reduction in total bit updates in PCM, on average, without aggravating wear out compared with the baseline of PCM-based journaling which is based only on the hardware approach. Also, the proposed design methods result in 58.3% reduction in energy consumption and 31.7% reduction in runtime compared to the baseline design of SQLite journaling on Flash memory. Experiments about Memcached with memtier and YCSB shows proposed design methods gives 14.5% processing time reduction compared to same-cost original Memcached implementation and 67.0% total bit update reduction compared to Memcached implementation that uses PCM only to store key-value items.
초록 moremore
상 변화 메모리(phase-change memory)를 비롯한 비 휘발성 메모리 소자는 기존 메모리 소자들이 갖지 못한 장점을 가지고 있다. 주 기억장치로 주로 활용되는 DRAM에 비해 비용이 싸고 비 휘발성이며, 보조 기억장치로 주로 활용되는 Flash memory에 비해 빠르고 바이트 단위로 입출력을 할 수 있다. 반면, DRAM에 비해 쓰기 내구성이 나쁜 단점도 가지고 있다. 이러한 장점을 십분 발휘하면서 단점을 가릴 수 있는 다양한 하드웨어적인 접근 방법들이 제시된 바 있다. 이에 소프트웨어적인 접근 방법을 더할 경우 동적으...
상 변화 메모리(phase-change memory)를 비롯한 비 휘발성 메모리 소자는 기존 메모리 소자들이 갖지 못한 장점을 가지고 있다. 주 기억장치로 주로 활용되는 DRAM에 비해 비용이 싸고 비 휘발성이며, 보조 기억장치로 주로 활용되는 Flash memory에 비해 빠르고 바이트 단위로 입출력을 할 수 있다. 반면, DRAM에 비해 쓰기 내구성이 나쁜 단점도 가지고 있다. 이러한 장점을 십분 발휘하면서 단점을 가릴 수 있는 다양한 하드웨어적인 접근 방법들이 제시된 바 있다. 이에 소프트웨어적인 접근 방법을 더할 경우 동적으로 할당되는 메모리에 대한 쓰기 동작을 비롯한 하드웨어적 접근 방법으로 잡아내기 힘든 여러 가지 추가적인 정보를 활용하여 더 많은 성능 향상을 이끌어낼 수 있다. 이 논문에서는 비용이 큰 PCM 쓰기를 줄임으로써 성능 향상을 이끌어내는 소프트웨어적인 접근 방법을 제시한다. 먼저, 할당됐던 메모리 자원을 재활용함으로써 PCM의 차동 쓰기(differential write)를 이용해 PCM 셀에 대한 쓰기 동작을 최소화한다. 또한 잦은 재사용으로 인한 PCM 셀의 마모를 최소화하기 위해 소프트웨어적인 사용 평탄화(wear-leveling) 방법을 제시한다. 추가적으로 PCM에 대한 쓰기 동작을 더 줄이기 위해, 기능적으로 올바르게 동작하는데 필요한 최소한의 데이터를 제외한 나머지를 분류하고, 쓰기 동작에 강하지만 휘발성을 지닌 휘발성 메모리에 보관한다. 제시된 소프트웨어 설계 방법의 효과를 알아보기 위해 SQLite와 Memcached 응용 프로그램에 적용하여 성능을 시험하였다. SQLite는 스마트폰을 비롯한 임베디드 장치에서 널리 사용되는 중요한 데이터베이스 프로그램이며, Memcached는 서버 응용 프로그램에서 반응성을 높이기 위해 널리 사용되고 있는 분산형 키-값 캐시 시스템이다. 실험을 위해 연구실에서 제작한 PCM 프로토타이핑 보드와 PC를 사용하였다. SQLite를 이용한 실험에서는, 4가지의 모바일 응용 프로그램을 통해 실험을 진행하였다. Flip-N-Write가 구현된 PCM 을 이용하여 최대 PCM 셀 마모도를 높이지 않는 선에서 평균적으로 75.2%의 PCM 셀 쓰기 동작을 줄였다. 또한, 제안된 방법을 이용하면 기존의 Flash memory를 이용한 SQLite 저널링에 비해 58.3%의 에너지 소모량과 31.6%의 실행 시간 감소를 얻었다. Memcached를 이용한 실험에서는, memtier와 YCSB benchmark를 통해 실험을 진행하였다. 비슷한 비용이 드는 DRAM을 사용하는 기존의 Memcached에 비해 14.5%의 수행 시간 감소를 얻었고, DRAM 대신 PCM을 사용하는 기존 Memcached에 비해 67.0%의 PCM 셀 쓰기 동작을 감소시켰다.
목차 moremore
Contents
I. Introduction - 1 -
II. Background - 7 -
...
Contents
I. Introduction - 1 -
II. Background - 7 -
2.1. Phase-change Memory - 7 -
2.2. SQLite - 10 -
2.3. Memcached - 11 -
2.4. Related works - 12 -
III. Software Design Methodology - 16 -
3.1. Strategy 1: Reuse Previously Allocated Resources - 16 -
3.2. Strategy 2: Minimize the Amount of Persistent Data - 18 -
IV. PCM-based Prototype System - 20 -
V. SQLite Journal Design on PCM - 26 -
5.1. SQLite Write Behavior Analysis - 26 -
5.2. Modified SQLite Journal Design for PCM - 28 -
5.2.1. Terminology - 28 -
5.2.2. Overview - 29 -
5.2.3. Page Frame Reuse - 32 -
5.2.4. Wear Leveling-Conscious Data Structure - 34 -
5.2.5. Minimizing Non-Volatile Data - 39 -
5.2.6. Area Overhead - 42 -
5.3. Evaluation - 42 -
5.3.1. Experimental Setup - 42 -
5.3.2. Experimental Results - 46 -
VI. Memcached on PCM - 59 -
6.1. Internal Structure of Memcached - 59 -
6.2. Modified Memcached Design - 62 -
6.2.1. Overview - 62 -
6.2.2. DRAM Write Cache - 64 -
6.2.3. Item Reuse - 65 -
6.2.4. Area Overhead - 66 -
6.3. Evaluation - 66 -
6.3.1. Experimental Setup - 66 -
6.3.2. Experimental Results - 70 -
VII. Conclusion - 81 -