dcache: Do PLRU update one cycle later
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 10 Jul 2020 07:47:52 +0000 (17:47 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 14 Jul 2020 23:44:47 +0000 (09:44 +1000)
commit31587affb38980d5780888ecdbb9a2444da5d7a1
tree3e13f760c42ebf8f7e1ad598e51b3a399d0dec40
parent144d8e3c612e603496481547ea2f27b9a26c0253
dcache: Do PLRU update one cycle later

This does the PLRU update based on r1.cache_hit and r1.hit_way rather
than req_op and req_hit_way, which means there is now a register
between the TLB and cache tag lookup and the PLRU update, which should
help with timing.

The PLRU victim selection now becomes valid one cycle later, in the
cycle where r1.write_tag = 1.  We now have replace_way coming from
the PLRU when r1.write_tag = 1 and from r1.store_way at other times,
and we use that instead of r1.store_way in situations where we need
it to be valid in the first cycle of the RELOAD_WAIT_ACK state.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
dcache.vhdl