8 research outputs found
๋ฉํฐํ ์ดํํ ์์คํ ์ ๋๊ฐ ํน์ฑ์ ๊ดํ ์ฐ๊ตฌ
ํ์๋
ผ๋ฌธ(์์ฌ) --์์ธ๋ํ๊ต ๋ํ์ :๊ธฐ๊ณํญ๊ณต๊ณตํ๋ถ,2007.Maste
Software Design for Non-volatile Memory
DoctorNon-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.์ ๋ณํ ๋ฉ๋ชจ๋ฆฌ(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 ์
์ฐ๊ธฐ ๋์์ ๊ฐ์์์ผฐ๋ค