6.7.1 Drain Aborts
Format:
CALL_PAL | DRAINA | !PALcode format |
Operation:
IF PS<literal>(<)CM> NE 0 THEN {privileged instruction exception}
{Stall instruction issuing until all prior instructions are guaranteed to complete without incurring aborts.}
Exceptions:
Privileged Instruction
Instruction mnemonics:
CALL_PAL DRAINA | Drain Aborts |
Description:
If aborts are deliberately generated and handled (such as nonexistent memory aborts while siz- ing memory or searching for I/O devices), the DRAINA instruction forces any outstanding aborts to be taken before continuing.
Aborts are necessarily implementation dependent. DRAINA stalls instruction issue at least until all previously issued instructions have completed and any associated aborts have been signaled, as follows:
•For operate instructions, this usually means stalling until the result register has been written.
•For branch instructions, this usually means stalling until the result register and PC have been written.
•For load instructions, this usually means stalling until the result register has been writ- ten.
•For store instructions, this usually means stalling until at least the first level in a poten- tially multilevel memory hierarchy has been written.
For load instructions, DRAINA does not necessarily guarantee that the unaccessed portions of a cache block have been transferred error free before continuing.
For store instructions, DRAINA does not necessarily guarantee that the ultimate target loca- tion of the store has received