1 research outputs found

    Mending Fences with Self-Invalidation and Self-Downgrade

    No full text
    Cache coherence protocols based on self-invalidation and self-downgrade haverecently seen increased popularity due to their simplicity, potentialperformance efficiency, and low energy consumption. However, such protocolsresult in memory instruction reordering, thus causing extra program behaviorsthat are often not intended by the programmers. We propose a novel formal modelthat captures the semantics of programs running under such protocols, andfeatures a set of fences that interact with the coherence layer. Using themodel, we design an algorithm to analyze the reachability and check whether aprogram satisfies a given safety property with the current set of fences. Wedescribe a method for insertion of optimal sets of fences that ensurecorrectness of the program under such protocols. The method relies on acounter-example guided fence insertion procedure. One feature of our method isthat it can handle a variety of fences (with different costs). This diversitymakes optimization more difficult since one has to optimize the total cost ofthe inserted fences, rather than just their number. To demonstrate the strengthof our approach, we have implemented a prototype and run it on a wide range ofexamples and benchmarks. We have also, using simulation, evaluated theperformance of the resulting fenced programs
    corecore