Essay On Memory Checker

770 Words4 Pages

3.2 Memory Checkers: Memory checkers verify two aspects of memory operations: memory consistency and cache coherency. Memory Consistency imposes the ordering conditions on interleaving of accesses to distinct addresses during execution. Cache coherence property ensures that any access to a given location returns the latest value to that location. Based on this, they are classified as follows: 3.2.1 Memory Consistency Checker: Biruk Mammo et al. proposed a method for verification of shared memory interactions of CMPs (OOO cores) in [13]. The main focus of their work is the detection of memory consistency bugs when multiple cores execute multiple threads. It works on the principle that when program execution progresses, memory accesses are tracked in the background by L1 data cache of each core. When logging resources are full, program execution …show more content…

Here, cache coherence is achieved through a string matching algorithm. The program execution is divided into phases (called epochs). Each epoch includes a phase of normal execution while CoSMa operates in the background. This is followed by a coherence checking phase. This operates in a special mode called CosMa mode. There are two checking algorithms – Low overhead algorithm and High Coverage algorithm. The Low overhead algorithm takes two coherence strings as input, one from L1 cache (local history logs) and the other from L2 cache (global history logs). In CosMa mode, the log sequences are compressed, then partitioned at invalid state boundaries and finally matched for compatibility. It checks whether a portion of L1 string is present as a subset of L2 string. If no matches are found, it results in a coherence error. The High Coverage algorithm traverses a pair of L1 and L2 histories linearly and aligns them based on the core id and

Open Document