  Variable length coding for Non-Volatile Memory (NVM) technologies is a
promising method to improve memory capacity and system performance through
compressing memory blocks. However, compression techniques used to improve
capacity or bandwidth utilization do not take into consideration the asymmetric
costs of writing 1's and 0's in NVMs. Taking into account this asymmetry, we
propose a variable length encoding framework that reduces the cost of writing
data into NVM. Our experimental results on 12 workloads of the SPEC CPU2006
benchmark suite show that, when the cost asymmetry is 1:2, the proposed
framework is capable of reducing the NVM programming cost by up to 24% more
than leading compression approaches and by 12.5% more than the flip-and-write
approach which selects between the data and its complement based on the
programming cost.
