and long write
latency should be hidden or reduced through an effective buffer design. An Active Fetch-
Block Buffer (AFBB) is used to fetch blocks by fetch-block unit (8KB), where the fetchblock
unit has the size of two pages. The AFBB exploits spatial locality in the program
to increase data availability and minimizes the long access latency of the virtually
decoupled NVRAM by hiding and reducing relatively slow read/write operations. Also,
the Static Data Centric Buffer (SDCB) and Dynamic Data Centric Buffer (DDCB) are
used to store evicted fetch-blocks from the AFBB, thereby enhancing temporal locality.
Finally, to hide and delay write latency to the NVRAM, a Dynamic Data Write Buffer
(DDWB) is designed to store evicted reusable fetch-blocks from theDDCBand delay any
write operation to hide slow write latency and maximize the lifetime of the NVRAM.
As shown in Figure 4, we have designed an effective structure for the NVPO, composed
of 2MB of DRAM, to minimize cost and reduce power consumption.