hilpert at cs.ubc.ca
Sun Mar 22 14:16:34 CDT 2009
dwight elvey wrote:
> I have a question about micro sequences.
> If I had the sequence SLA,INA
> would the skip happen before the INA or
> after? Would the test for the skip happen
> before or after the INA?
Micro sequence execution order is discussed in the 2100 manual
in the section "3.3 REGISTER REFERENCE INSTRUCTIONS" - Alter-Skip Group (page 3-15/16).
(or for quick ref my own summary: http://www.cs.ubc.ca/~hilpert/e/HP21xx/pgmref.html#micro)
According to the table there, the SLA is executed before the INA, so that
should answer the question of which value is tested.
I guess you could say it still leaves ambiguous or open to interpretation as to
whether the INA is skipped or not, but I would interpret the skip instructions
description "skip next instruction" as skipping the next instruction word,
rather than aborting the remainder of the micro-sequence.
Alternatives interpretations would be
- skip only the next micro-instruction (would require extra hardware to sort
it all out, for marginal benefit)
- skip remaining micro-instructions as well as the next instruction word
(would contradict "skip next instruction", as multiple 'instructions' were skipped)
Skipping only the next instruction word makes sense in hardware terms as it
requires simply an extra increment of the PC.
So, in short, my understanding would be that the pre-increment value of A is
tested in the skip, but the increment is executed in either case. (I could test
it on my 2116 if necessary.)
More information about the cctalk