Commit dda59021 authored by Andrew Waterman's avatar Andrew Waterman
Browse files

D$: eliminate a data ECC -> dirty-bit path

The previous logic suppressed dirty-bit writes in the event of a data
error.  This is a good thing, because if the error had been uncorrectable,
and the line had been clean, we could just discard the line and refetch it,
rather than being forced to report an uncorrectable error.

Unfortunately, that logic creates a critical path from the data ECC check
to the tag RAM.  Instead, allow the dirty-bit write to proceed, but
then immediately victimize the line, so that the tag will be set to invalid.
The ultimate effect is the same as before.

A side effect of 46e0fcb481ef3b1fdd47bdae1b27e1b31e5e8d07 is that the cache
is guaranteed to enter the victimization state machine whenever this
scenario occurs (which is a requisite property to preserve the uncorrectable
error behavior).
parent e8f7734c
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment