Review Board 2.0.15


o3cpu: lsq: Fix TSO implementation

Review Request #2183 - Created March 5, 2014 and submitted

Information
Marco Elver
gem5
default
Reviewers
Default
Changeset 10149:456195b55e60
---------------------------
o3cpu: lsq: Fix TSO implementation

This patch fixes violation of TSO in the O3CPU, as all loads must be
ordered with all other loads. In the LQ, if a snoop is observed, all
subsequent loads need to be squashed if the system is TSO.

Prior to this patch, the following case could be violated:

 P0         | P1          ;
 MOV [x],$1 | MOV EAX,[y] ;
 MOV [y],$1 | MOV EBX,[x] ;

exists (1:EAX=1 /\ 1:EBX=0) [is a violation]

The problem was found using litmus [http://diy.inria.fr]."
This patch was originally against a much older version of Gem5 (9677:773aae0990ae), where the effect was tested extensively and diy no longer reports violation. This patch was then ported and rebased against the newest Gem5 version, where I only ran quick/se/00.hello/x86/linux/o3-timing. Performance results of parallel workloads will change slightly.

Issue Summary

1 1 0 0
Review request changed
Updated (March 31, 2014, 10:25 a.m.)

Status: Closed (submitted)