This paper presents the construction of a hybrid cache for magnetic disks built from a combination of phase change memory (PCM) and more traditional flash memory. Unlike traditional flash memory, PCM is byte addressable, enables in-place updates and better endurance for writes, and requires less energy per access in general. The authors therefore build on the hypothesis that combining PCM with flash as an exclusive caching hierarchy, and directing small writes and reads to PCM, would lead to better performance and lower energy consumption in comparison to a cache built purely from flash.
The authors propose a solution that combines a small PCM with a larger flash memory. The two act as mutually exclusive caches of data from magnetic disks. They fix the size of the flash memory at 128 megabytes (MB) in their experiments, and vary the size of the PCM from 4 MB to 128 MB. Each memory type is organized in 2 kilobyte pages with a least recently used (LRU) list for replacement. The configuration enables an allocation policy that aims to direct most small replacements to the PCM, while larger replacements are directed to the flash. For accesses that hit in the hybrid cache, a migration policy tries to favor PCM for smaller accesses and writes. The migration policy is dynamically tuned using an access pressure metric. Finally, the authors implement wear leveling using the LRU lists in conjunction with a hot list of lines to increase the lifetime of both the flash and the PCM. The performance gains are moderate: in the region of 20 percent over a purely flash-based cache. However, lifetime improvements are impressive (sometimes as much as ten times higher) and the energy reduction is also very significant (sometimes as much as seven times less). The latter improvement is due to PCM accesses requiring energy in picojoules compared to microjoules for the flash.
This paper is an excellent read for anyone interested in the performance, energy, and lifetime characteristics of emerging storage technologies, particularly in their use as cache hierarchies. One aspect somewhat lacking in the paper is a comparison to good baselines. Comparing the performance and energy use of the proposed configuration to that of a non-cached disk and to that of a simple two-level cache with flash acting as a victim cache would have greatly enhanced the depth of the results. Overall, this paper is very useful for understanding the intricacies of newer storage technologies.