IFU1PLAFetchControl.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 April 2, 1987 5:35:04 pm PST
IFU1PLAFetchControl: CEDAR DEFINITIONS =
BEGIN
FetchControlIn: TYPE = RECORD [ -- default must be zero for use initializing sigificance arg
nextMacroJump: BOOL ← FALSE,
reset:    BOOL ← FALSE,
iPReject:   BOOL ← FALSE,
jumpPending: BOOL ← FALSE,
fetching:   BOOL ← FALSE,
fetchBytesM1: [0..32) ← 0,
iPFaulted:  BOOL ← FALSE,
iPFaulting:  BOOL ← FALSE,
op:    [0..8) ← 0 ];  -- 3 msbs of DragOpsCross.Inst
FetchControlOut: TYPE = RECORD [-- default must be zero
jumpPending:  BOOL ← FALSE,
newFetch:   BOOL ← FALSE,
fetching:    BOOL ← FALSE,
iPFaulted:   BOOL ← FALSE,
fetchWtIndexCtl:  FetchWtIndexCtl ← hold,
notInstReady:  BOOL ← FALSE,  -- beginning of old FetchPreDecode out record
jumpOffset:   JumpOffsetSel ← beta,
instFault0:   BOOL ← FALSE,
opLength:   [0..7] ← 0,   -- A latched copy for fetch indexing
opLengthb:   [0..7] ← 0 ];   -- B latched copy for pc adjustment
FetchRdDecodeIn: TYPE = RECORD [        fetchRd: [0..16)𡤀];
FetchWtDecodeIn: TYPE = RECORD [fetching: BOOL ← FALSE, 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.