Microcode is often used to refer to assembly language or even raw machine language, but it isn't either of these things. It is actually lower-level code, hard-coded on the silicon itself, that determines how the processor responds to a given opcode and operand.

In actuality, it is a method used in almost all modern microprocessors. If you understand digital circuit design, or possibly even logic theory, you understand how a series of logic gates could, with a given digital input, produce a given digital output. The problem is, with the large number of inputs within a modern microprocessor, let alone the amount of state required, simplifying such a state machine is extremely difficult, even with modern computing technology.

Instead, what is done is that a miniature ROM is on the chip. Every clock cycle, based on an internal counter, a given set of bits is read from the ROM. This set of bits covers all of the outputs needed to manipulate the internal logic as well as a few of the external signals. This set of bits is what asserts load and store lines, chip select lines, activates adders, and so forth. The idea behind RISC was to make each instruction just one line of these digital outputs.

This makes the real trick in microprocessor design coming up with an appropriate, quick microcode core rather than VLSI design. It is even possible to have a submicrocode called nanocode that governs how the microcode works.

Log in or register to write something here or to contact authors.