Instruction manual

10.8.2 Bcache Tag Parity Error on CPU Reference, LDxL, STxC
ABOX_CTL<MCHK_EN> = 0;
turn off machine checks
ABOX_CTL<DC_ENA> = 0;
turn off DCache
adr = BIU_ADDR;
correctable = !BC_TAG<Dirty>;
fatal if block was modified
if correctable
then begin
BIU_CTL<BC_ENA> = 0;
shut down Bcache
clear error registers
read adr
allocate desired block, write new tag
BIU_CTL<BC_ENA> = 1;
turn it on again
read adr
if BIU_STAT<TPERR> is set again
hard error in tag
then begin
build stack
build logout, r=0
mchks on
unlock any remaining error registers
ABOX_CTL<DC_ENA> = 1;
call OS
end
else begin
soft error in tag was fixed
build stack
build logout, r=1
mchks on
unlock any remaining error registers
ABOX_CTL<DC_ENA> = 1;
call OS
end;
end
else begin
build stack
build logout, r=0
mchks on
unlock any remaining error registers
ABOX_CTL<DC_ENA> = 1;
call OS
end;
Hardware Exceptions and Interrupts 10–17