67% found this document useful (3 votes)
9K views

Nanoprogramming: Extending Microprogramming

Nanoprogramming reduces the storage requirements for microcode by splitting microinstructions into shorter pointers stored in a microprogram memory and the actual microinstructions stored in a separate nanoinstruction memory. This allows microinstructions to be replaced by smaller pointers since not all possible microinstructions are used, significantly reducing the size of the microprogram memory while still providing the same functionality through the nanoinstruction memory. In an example, nanoprogramming reduced the total storage needs for a microprogrammed processor by a factor of 10 compared to traditional microprogramming.

Uploaded by

premanand33eee
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
67% found this document useful (3 votes)
9K views

Nanoprogramming: Extending Microprogramming

Nanoprogramming reduces the storage requirements for microcode by splitting microinstructions into shorter pointers stored in a microprogram memory and the actual microinstructions stored in a separate nanoinstruction memory. This allows microinstructions to be replaced by smaller pointers since not all possible microinstructions are used, significantly reducing the size of the microprogram memory while still providing the same functionality through the nanoinstruction memory. In an example, nanoprogramming reduced the total storage needs for a microprogrammed processor by a factor of 10 compared to traditional microprogramming.

Uploaded by

premanand33eee
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

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

You might also like