![Digital Equipment Alpha 21164PC Hardware Reference Manual Download Page 251](http://html.mh-extra.com/html/digital-equipment/alpha-21164pc/alpha-21164pc_hardware-reference-manual_2498508251.webp)
29 September 1997 – Subject To Change
Error Detection and Error Handling
8–3
Error Flows
•
Probably will not be able to recover by deleting a single process, because exact
address is unknown, and a load may have falsely hit.
8.1.4 Istream Data Parity Errors (Bcache or Memory)
•
Machine check occurs before the instruction causing the error is executed.
•
Bad data may be written to the Icache or Icache refill buffer and validated.
•
Can be retried if there are no multiple errors.
•
Must flush Icache to remove bad data. The Icache refill buffer may be flushed by
executing enough instructions to fill the refill buffer with new data (32 instruc-
tions). Then flush the Icache again.
•
CBOX_STATUS: <DATA_PAR_ERR<3:0>> is set; <MULTI_ERR> is set if
there are multiple errors.
•
CBOX_STATUS: <MEMORY> is set if source of fill data is memory/system; is
clear if source is Bcache.
•
CBOX_ADDR: Contains the physical address bits <39:04> of the octaword
associated with the error.
Note:
If the Istream parity error occurs early in the PALcode routine at the
machine check entry point, an infinite loop may result.
•
Recommendation: On data parity errors, it may be feasible for the operating
system to “flush” the block of data out of the Bcache by requesting a block of
data with the same Bcache index, but a different tag. If the requested block is
loaded with no problems, then the “bad data” has been replaced. If the “bad
data” is marked dirty, then when the new data tries to replace the old data,
another parity error may result during the write-back (this is a reason not to
attempt this in PALcode, because a MCHK from PALcode is always fatal).
8.1.5 Dstream Data Parity Errors (Bcache or Memory)
•
Machine check occurs. Machine state may have changed.
•
Cannot be retried, but may only need to delete the process if data is confined to a
single process and no second error occurred.
•
CBOX_STATUS: <DATA_PAR_ERR<3:0>> is set; <MULTI_ERR> is set if
there are multiple errors.