IFUPLAFetchControl.mesa
Copyright c 1984 by Xerox Corporation. All rights reserved.
Last edited by Twilliams, August 27, 1984 6:28:59 pm PDT
Last edited by Curry, September 14, 1986 9:04:31 am PDT
Last edited by Herrmann, August 14, 1985 12:42:42 pm PDT
Last edited by McCreight, June 6, 1986 6:11:06 pm PDT
Don Curry March 14, 1987 4:40:33 pm PST
DIRECTORY
PLAOps;
IFUPLAFetchControl: CEDAR DEFINITIONS =
BEGIN
FetchControlIn: TYPE = RECORD [ -- default must be zero for use initializing sigificance arg
nextMacroJump: BOOLFALSE,
reset:    BOOLFALSE,
iPReject:   BOOLFALSE,
jumpPendingIn: BOOLFALSE,
iPFaultedIn:  BOOLFALSE,
iPFaulting:  BOOLFALSE,
fetchingIn:  BOOLFALSE,
fetchBytesM1: [0..32) ← 0,
op:    [0..8) ← 0 ];  -- 3 msbs of DragOpsCross.Inst
FetchControlOut: TYPE = RECORD [-- default must be zero
newFetch:   BOOL    ← FALSE,
fetching:    BOOL    ← FALSE,
instFault0:   BOOL    ← FALSE,
fetchWtIndexCtl:  FetchWtIndexCtl ← hold,
opLengthb:   [0..7]    ← 0,   -- B latched copy for pc adjustment
jumpPending:  BOOL    ← FALSE,
iPFaulted:   BOOL    ← FALSE,
jumpOffset:   JumpOffsetSel ← beta,
opLength:   [0..7]    ← 0,   -- A latched copy for fetch indexing
notInstReady:  BOOL    ← FALSE ]; -- beginning of old FetchPreDecode out record
FetchRdDecodeIn: TYPE = RECORD [        fetchRd: [0..16)𡤀];
FetchWtDecodeIn: TYPE = RECORD [fetching: BOOLFALSE, fetchWt: [0..4)𡤀];
FetchRdDecodeOut: TYPE = RECORD [fetchBufRdByte: [0..65535] ← 0];
FetchWtDecodeOut: TYPE = RECORD [fetchBufWtWd:  [0..16)  ← 0];
FetchWtIndexCtl: TYPE = MACHINE DEPENDENT {hold(0), inc(3), clear(5)};
JumpOffsetSel:  TYPE = MACHINE DEPENDENT {beta(0), alpha(3), alphaBeta(5), xa(9)};
END.