Nanoprogramming
Extending microprogramming
Microprogramming
The microprogram counter contains
M ic r o p ro g ra m c o u n te r
The address of the next
microinstruction to be executed.
M ic r o p ro g r a m m e m o ry
M ic r o in s t r u c t io n r e g i s t e r
Microprogramming
M ic r o p ro g ra m c o u n te r
The microprogram memory contains
all the microinstructions.
M ic r o p ro g r a m m e m o ry Each machine level instruction is
interpreted by one or more
microinstructions.
M ic r o in s t r u c t io n r e g i s t e r
Microprogramming
M ic r o p ro g ra m c o u n te r
If there are n machine-level instructions
and each instruction is interpreted by m
M ic r o p ro g r a m m e m o ry microinstructions, the size of the
microprogram ROM is n.m lines.
M ic r o in s t r u c t io n r e g i s t e r
Microprogramming
M ic r o p ro g ra m c o u n te r
M ic r o p ro g r a m m e m o ry
The microinstruction register holds the
M ic r o in s t r u c t io n r e g i s t e r bits of the current microinstruction. If
this is p bits wide, the total size of the
microprogram memory in bits is
n.m.p
Microprogramming
M ic r o p ro g ra m c o u n te r
This structure requires a lot of fast
microinstruction storage. For example, if
there are 512 machine-level instructions, and
M ic r o p ro g r a m m e m o ry each instruction is interpreted by four 200-
bit microinstructions, the size of the ROM is
512 x 4 x 200 = 409,600 bits (51,200 bytes)
M ic r o in s t r u c t io n r e g i s t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
Nanoprogramming reduces the M ic r o p r o g ra m m e m o ry
number of control bits require to
interpret an instruction set.
M ic r o in s tr u c ti o n r e g is t e r
Microinstructions are very long;
for example 200 bits. This
requires a large amount of
storage.
N a n o in s tr u c tio n M e m o r y
However, of all the possible
different microinstructions, a
typical Microprogram ROM
contains only a tiny fraction of
possible microinstructions.
N a n o in s tr u c ti o n r e g is t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
M ic r o p r o g ra m m e m o ry The microprogram memory
(control ROM) is now much
narrower because it contains
pointers to the actual
microinstructions.
M ic r o in s tr u c ti o n r e g is t e r
N a n o in s tr u c tio n M e m o r y
N a n o in s tr u c ti o n r e g is t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
M ic r o p r o g ra m m e m o ry
The microinstruction register
M ic r o in s tr u c ti o n r e g is t e r contains a short pointer that
points to the nanoinstruction
memory.
N a n o in s tr u c tio n M e m o r y
N a n o in s tr u c ti o n r e g is t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
M ic r o p r o g ra m m e m o ry
M ic r o in s tr u c ti o n r e g is t e r
The nanoinstruction memory
N a n o in s tr u c tio n M e m o r y contains the actual microinstructions
and is very wide.
N a n o in s tr u c ti o n r e g is t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
Suppose that a microinstruction is
M ic r o p r o g ra m m e m o ry 200 bits wide and that the
microprogram memory contains
only 120 unique microinstructions.
Thus, out of 2200 possible
microinstructions, only 120 are
M ic r o in s tr u c ti o n r e g is t e r actually used.
Each microinstruction in the control
ROM cam be replaced by a pointer
that requires only 7 bits.
N a n o in s tr u c tio n M e m o r y 27 = 128 < 120
N a n o in s tr u c ti o n r e g is t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
M ic r o p r o g ra m m e m o ry
M ic r o in s tr u c ti o n r e g is t e r
The nanoinstruction memory
N a n o in s tr u c tio n M e m o r y contains the 120 unique 100-bit-
wide microinstructions.
N a n o in s tr u c ti o n r e g is t e r
Nanoprogramming
M ic r o p r o g ra m c o u n te r
Let’s use the previous example, with 512 machine-level
M ic r o p r o g ra m m e m o ry instructions, where each instruction is interpreted by
four 200-bit microinstructions. The size of the control
ROM without nanoprogramming is
512 x 4 x 200 = 409,600 bits (51,200 bytes)
With nanoprogramming (and assuming 120 unique
M ic r o in s tr u c ti o n r e g is t e r microinstructions) the control ROM now requires
512 x 4 x 7 = 2048 x 7 = 14,336 bits because the 200-bit
microinstruction has been replaced by a 7-bit pointer.
The nanoinstruction memory contains 120 200-bit
microinstructions or 120 x 200 = 24,000 bits.
N a n o in s tr u c tio n M e m o r y
The total size of the read-only memory is the sum of the
microinstruction memory and nanoinstruction memories
or 14,336 + 24,000 = 38,336 bits (4,792 bytes).
Nanoprogramming has reduced the storage requirement
by a factor of 10
N a n o in s tr u c ti o n r e g is t e r