  Die-stacked DRAM caches are increasingly advocated to bridge the performance
gap between on-chip Cache and main memory. It is essential to improve DRAM
cache hit rate and lower cache hit latency simultaneously. Prior DRAM cache
designs fall into two categories according to the data mapping polices:
set-associative and direct-mapped, achieving either one. In this paper, we
propose a partial direct-mapped die-stacked DRAM cache to achieve the both
objectives simultaneously, called Gemini, which is motivated by the following
observations: applying unified mapping policy to different blocks cannot
achieve high cache hit rate and low hit latency in terms of mapping structure.
Gemini cache classifies data into leading blocks and following blocks, and
places them with static mapping and dynamic mapping respectively in a unified
set-associative structure. Gemini also designs a replacement policy to balance
the different blocks miss penalty and the recency, and provides strategies to
mitigate cache thrashing due to block type transitions. Experimental results
demonstrate that Gemini cache can narrow the hit latency gap with direct-mapped
cache significantly, from 1.75X to 1.22X on average, and can achieve comparable
hit rate with set-associative cache. Compared with the state-of-the-art
baselines, i.e., enhanced Loh-Hill cache, Gemini improves the IPC by up to 20%
respectively.
