Main memory is an essential component to maximize performance in computing environment such as data center, cloud system, and mobile devices. DRAMs are especially widely used as a main memory for consideration of its’ cost comparing to SRAMs and its’ performance comparing to HDDs or NAND flash memories. As demands for memory capacity grow, for programs such as big data analytics and in-memory databases, predicting the server peak memory usage became entangled. On the other hand, the average memory utilization is 50%, consuming unnecessary power from the unused server memories. Therefore deciding between expanding capacity and saving power becomes predicaments for server systems.
In this dissertation, we propose self-managed memory mechanisms by utilizing compression components; if capacity is necessary, compression components expand capacity and if capacity expansion is not required the components reduces energy instead. This dissertation first proposes capacity expansion mechanism using memory compression. Unlike prior work which primarily focus on either capacities or decompression latencies, the proposed mechanism increases capacity without decreasing latency.
However expanding capacity by compressing data, regardless of the needs for expanding capacity, induces energy consumption. Therefore, we propose memory energy saving mechanism by reducing the number of refresh operations. Refresh operations consume growing portions of DRAM power with increasing DRAM capacity in systems. To reduce the power consumption of such refresh operations, this dissertation proposes a novel value-aware refresh reduction technique exploiting the abundance of zero values in the memory contents. The proposed refresh architecture transforms the value and the mapping of DRAM data to increase consecutive zero values, and skips a refresh operation for a row containing zero values entirely. The mechanism converts memory blocks to base and delta values, inspired by a prior compression technique. Once values are converted, bits are transposed to place consecutive zeros at the refresh granularity. By reducing the number of refresh operations, we achieved both energy savings and