Refining the CCU
Last Edit November 2, 1996; May 1, 1999; July 7, 2001
Control Lines
In addition to the four instruction lines into the Am2910, there
are additional control lines which allow variations in the behavior
of the standard Am2910 instructions.
Register Load
The RLD pin is the register load control pin and is normally held
HIGH. When RLD = LOW, whatever is on the Di bus is loaded
into the register/counter. The RLD pin allows the continue (CONT)
instruction to become "Load Register and Continue", the same as
the existing LDCT command. It also allows a JMAP instruction to
become a "Load Register and Jump Map", which could be useful if
fail-soft procedures are desirable. (Selected instructions could
be re-executed on recovery.)
Note that this "feature" could also lead to problems. Misuse, such
as holding RLD LOW during Repeat Loop from Pipeline Until <COUNTER>
= 0 (RPCT), could lead to infinite loops. RLD should not be LOW
during any instruction loop where the counter or register is being
used. This includes RFCT, RPCT and TWB loops.
Test Enable
The test pin, CC' (active LOW), is the input from the conditional
test MUX, an Am2914 or other structure. All conditional instructions
reference this pin. The test enable, CCEN', if held HIGH, causes
all conditional instructions to become unconditional instructions,
behaving as if the CC input were LOW (condition = TRUE) and forcing
the appropriate jump. This affects nine instructions (see Table
4-2).
CCEN can be supplied by the microinstruction or it could be tied
to one of the instruction lines into the Am2910.
Table 4-2 Effect of CCEN = HIGH (CCEN is a complemented pin)
Original
Instructions |
New
Behavior |
New
Instructions |
CJP |
Jump to Pipeline |
JPL |
CJPP |
Jump to Pipeline and POP stack |
JPP |
CJS |
Jump to Subroutine |
JSUB |
CJV |
Jump to Vector |
JVECT |
CRTN |
Return |
RTRN |
JSRP |
Jump to Subroutine (same as CJS) |
JSUB |
LOOP |
POP stack and continue |
POP |
PUSH |
PUSH, load counter and continue |
PCNTR |
TWB |
POP stack and continue(same as LOOP) |
POP |
Carry In
There is a carry-in Cin pin which is normally held HIGH.
Then Cin = LOW, the incrementer does not increment, holding
the microprogram in a one-statement loop. To avoid infinite looping,
the Cin pin, if controlled, must not be controlled via
the pipeline register. It must be controlled by independent hardware.
The Cin pin can be used to hold a program at a NOP or
similar instruction until some external signal triggers the control
circuit to allow Cin to go HIGH.
Stack and Enable
There is a five-deep stack onboard the Am2910 which, unlike the
Am2909/11 stack, will not "wrap around". The behavior of the Am2910
should be considered to be undefined under stack misuse. A pin is
provided that can be used during initial design and/or debug which
allows the stack to be tested. FULL goes LOW to indicate when five
items have been pushed onto the stack without any intermittent pops.
The tristated control OE pin allows the Am2910 to share a bus with
other devices, including other Am2910s.
|