Louvre: Lightweight Ordering Using Versioning for Release Consistency

10/30/2017
by   Pranith Kumar, et al.
0

Fence instructions are fundamental primitives that ensure consistency in a weakly consistent shared memory multi-core processor. The execution cost of these instructions is significant and adds a non-trivial overhead to parallel programs. In a naive architecture implementation, we track the ordering constraints imposed by a fence by its entry in the reorder buffer and its execution overhead entails stalling the processor's pipeline until the store buffer is drained and also conservatively invalidating speculative loads. These actions create a cascading effect of increased overhead on the execution of the following instructions in the program. We find these actions to be overly restrictive and that they can be further relaxed thereby allowing aggressive optimizations. The current work proposes a lightweight mechanism in which we assign ordering tags, called versions, to load and store instructions when they reside in the load/store queues and the write buffer. The version assigned to a memory access allows us to fully exploit the relaxation allowed by the weak consistency model and restricts its execution in such a way that the ordering constraints by the model are satisfied. We utilize the information captured through the assigned versions to reduce stalls caused by waiting for the store buffer to drain and to avoid unnecessary squashing of speculative loads, thereby minimizing the re-execution penalty. This method is particularly effective for the release consistency model that employs uni-directional fence instructions. We show that this mechanism reduces the ordering instruction latency by 39.6 program performance by 11

READ FULL TEXT
research
02/07/2023

Adding Explicit Load-Acquire and Store-Release Instructions to the RISC-V ISA

Weak memory models allow for simplified hardware and increased performan...
research
10/18/2022

NearPM: A Near-Data Processing System for Storage-Class Applications

Persistent Memory (PM) technologies enable program recovery to a consist...
research
05/16/2017

An Operational Framework for Specifying Memory Models using Instantaneous Instruction Execution

There has been great progress recently in formally specifying the memory...
research
09/24/2018

Pointing in the Right Direction - Securing Memory Accesses in a Faulty World

Reading and writing memory are, besides computation, the most common ope...
research
08/08/2020

TransForm: Formally Specifying Transistency Models and Synthesizing Enhanced Litmus Tests

Memory consistency models (MCMs) specify the legal ordering and visibili...
research
12/23/2019

SSR: A Stall Scheme Reducing Bubbles in Load-Use Hazard of RISC-V Pipeline

Modern processors usually adopt pipeline structure and often load data f...
research
06/20/2020

Compiler Directed Speculative Intermittent Computation

This paper presents CoSpec, a new architecture/compiler co-design scheme...

Please sign up or login with your details

Forgot password? Click here to reset