Patent ID: 9594558
Date: 2017-03-14
CPC Classifications: G06F

Claim:
1. A system for detecting and recording silent stores in a memory, the system comprising: a memory; and a processor communicatively coupled to the memory; the processor configured to perform a method comprising: receiving a write request, the write request including a memory address and write data; reading stored data from a memory location at the memory address; determining whether previous write requests specifying the memory address resulted in a write to the memory location, the determining based on a value of a modified bit, in a modified bitmap, that corresponds to the memory address, the modified bit having a value of set when the memory location was previously written to and a value of reset when the memory location was not previously written to; based on determining that the memory location was not previously written to: based on determining that the memory location was previously written to: comparing the stored data to the write data based on determining that the modified bit is set, wherein the writing the write data to the memory location, resetting the silent store bit to indicate that the write request was completed by writing the write data to the memory, and setting the modified bit to indicate that the write request was completed by writing the write data to the memory location based on determining that the memory location was previously written to is further based on the stored data not matching the stored data; providing at least one of an application and an operating system access to the silent store bitmap; performing a checkpoint, the performing including using the silent store bitmap to determine which memory locations in the memory system to copy as part of the checkpoint; and scheduling the checkpoint based on contents of the silent store bitmap; wherein silent store bits in the silent store bitmap are reset when the silent store bitmap is initialized and modified bits in the modified bitmap are reset when the modified bitmap is initialized; wherein content of the silent store bitmap is accessed by the at least one of the application and the operating system via a memory mapped input/output interface; wherein the memory system is included in an accelerator device and contents of the silent store bitmap are used to determine when to send data from at least a portion of the memory locations from the accelerator device to a general purpose device; wherein the determining whether previous write requests specifying the memory address resulted in a write to the memory location includes at least one of previous write requests within a specified time frame, previous write requests within a specified number of total writes to the memory system, and previous write requests since a last initialization of the silent store bitmap.