diff options
author | Marco Elver <marco.elver@ed.ac.uk> | 2014-03-25 13:15:04 -0500 |
---|---|---|
committer | Marco Elver <marco.elver@ed.ac.uk> | 2014-03-25 13:15:04 -0500 |
commit | b884fcf412f43ae8e1d365f23846f0f8e912ef1a (patch) | |
tree | 741591b9c7fb8b5bca3773e94d874630936c52a3 /src/cpu/o3/FUPool.py | |
parent | 8b4b1dcb86b0799a8c32056427581a8b6249a3bf (diff) | |
download | gem5-b884fcf412f43ae8e1d365f23846f0f8e912ef1a.tar.xz |
cpu: o3: 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],mail=/usr/spool/mail/nilay | MOV EAX,[y] ;
MOV [y],mail=/usr/spool/mail/nilay | MOV EBX,[x] ;
exists (1:EAX=1 /\ 1:EBX=0) [is a violation]
The problem was found using litmus [http://diy.inria.fr].
Committed by: Nilay Vaish <nilay@cs.wisc.edu
Diffstat (limited to 'src/cpu/o3/FUPool.py')
0 files changed, 0 insertions, 0 deletions