[LMH]Raven Microcode Questions
Tue Nov 18 06:21:02 2003
I'm sorry I've been slow to answer.
I can indeed answer almost any question on the Explorer I microcode engine.
>Over the past couple weeks I've been working on figuring out how the
>Raven (Explorer I) processor interprets it's microcode. I've got some of
>it figured out, but I have a few questions.
>I'm figuring that the condition field of the jump instruction
>selectively disables the main jump action, in favor of the abbrev-jump
>field action (if specified).
You are right. If the condition is true, the jump action specified by
R, P and N bits is performed. If false, the jump action of the
abbreviated jump field is performed. Only 000 (And-Nop), 110 (And-Popj)
and 111 (And-Popj-Xct-Next) are allowed in the abbreviated jump field of
a jump or dispatch microinstruction.
>My first question is how do the condition and abbrev-jump fields
>interact on alu and byte instructions? How does the condition field
>operate on these instructions without the abbrev-jump field?
The abbreviated jump field is conditioned on the condition selected by
the condition field. Like:
(And-Call-Illop If-Not-Tag-Equal (M-T) M+1 M-T A-R)
This does unary arithmetic on M-T while checking that the tag of M-T is
equal to the tag of A-R).
>My second question is what is the encoding for where to store the data
>when using the jump instruction to read I-Memory?
Ah, that one I'll have to look up.
The M-bus source is written to I<31:00>. The A-bus source bits <23:00>
are written to I<55:32>.
The write sequence must be:
(Popj-Inhibit-Xct-Next A-Reg1 M-Reg2 WRITE-IRAM)
This writes into the I-Ram at write-target with I<55:32> coming from
A-Reg1<23:00> and I<31:00> coming from M-Reg2<31:00>.
>I'm sure there are more questions waiting in the wings. Oh well.
>If someone could shed some light on these subjects it would be much
Again, sorry it took me so long.