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 error-free data before continuing. An implementation-specific technique must be used to guarantee the ultimate completion of a write in implementations that have multilevel memory hierarchies or store-and-forward bus adapters.

6–6Alpha Architecture Handbook

Page 248
Image 248
Compaq ECQD2KCTE manual Drain Aborts, Callpal Draina