1. A cache management method using checkpoint tags, the method comprising steps of: receiving a request for data from a processor; fetching a cache block comprising the data from a cache memory; writing the data from the cache block into a data array; writing an address and metadata of the data into an array of cache tags; checkpointing a current state of the cache tags; writing at least one identifier of the data into at least one checkpoint array; and using the checkpoint array to restore the cache at a subsequent time.