cpu-o3: Avoid early checker verification for store conditionals
authorNikos Nikoleris <nikos.nikoleris@arm.com>
Tue, 25 Jul 2017 09:31:23 +0000 (10:31 +0100)
committerNikos Nikoleris <nikos.nikoleris@arm.com>
Fri, 13 Oct 2017 08:41:08 +0000 (08:41 +0000)
commitf6ff203ea591bf713a10d7cd0a22ee7ea936eab9
tree7e96e5ea545786f7204bb6b10fc358c168504e9c
parente519aa4ac2942915355f0ef12e88286322336419
cpu-o3: Avoid early checker verification for store conditionals

The O3CPU allows stores to commit before they are completed and as
soon as they enter the store queue. This is the reason why stores are
verified by the the checker CPU, separately, once they complete
and after they are sent to the memory.

Store conditionals, on the other hand, have an additional writeback
stage in the pipeline as they return their result to a register,
similarly to loads. This is the reason why they do not commit
before they receive a response from the memory. This allows store
conditionals to be verified by the checker CPU as soon as they
commit in the same way as all other non-store insturctions.

At the same time, the presense of a checker CPU should not require
changes to way we handle instructions. This change removes explicit
calls to:
* incorrectly set the extra data of the request to 0 (a subsequent
  call to completeAcc already does this without making any ISA
  assumptions about the return value of the failed store conditional)
* complete failing store conditionals

Change-Id: If21d70b21caa55b35e9fdcc50f254c590465d3c3
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4820
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
src/cpu/o3/commit_impl.hh
src/cpu/o3/lsq_unit_impl.hh