38.

[Top] [Next] [Prev]

Chapter Review

In this chapter, we have described alternative methods for organizing the control unit of a simple processor. We began by discussing classical Moore and Mealy machine implementations. Although appropriate for simple finite state machines, these monolithic implementations are not much help in structuring a complex state machine.

As an alternative, we examined a divide-and-conquer approach based on decomposing the state machine into time, instruction, and condition state machines-the so-called time state approach. Most instructions follow a similar path through the state machine, and the time state approach captures this sequencing with the time state machine. The microoperations are implemented as Boolean functions of the time state, the instruction state, and the condition state.

Next we looked at jump counters, a method of using MSI TTL components such as counters, multiplexers, and decoders to implement the next-state and output functions of the finite state machine. This leads to a clean implementation of the finite state machine that is easy to debug and to modify. However, it is limited to machines with a modest number of states.

The next controller organization was the branch sequencer. This is a method for arranging the next-state logic that places potential next states into a ROM. Selector logic uses the machine's inputs to choose conditionally among the candidates for the next state.

Finally, we examined microprogramming, including its horizontal and vertical varieties. Microprogramming avoids discrete logic implementations of the next-state and output functions by implementing these as a table of ones and zeros stored in memory. Horizontal microprogramming dedicates a single ROM bit to each control signal, and vertical microcode formats seek to reduce the size of the ROM by extensive encoding. A typical vertical microcode implementation supports multiple microword formats within the ROM.

All these approaches are suitable for implementation with programmable logic devices or ROMs. ROM-based design is perhaps the simplest, but you can construct enormous control ROMs if you are not careful. In its most naive implementation, every possible input signal could become part of the ROM address! In part, the jump counter and branch sequencer techniques were developed as ways to reduce the size of the ROM by moving some of the conditional next-state sequencing to external logic. Similarly, vertical microprogramming reduces the size of the control ROM by separating the choice of the next state from the register transfer operations and by heavily encoding the latter.

It is worthwhile to compare discrete logic "hardwired" controllers to the microprogramming approach. Hardwired control tends to lead to faster implementations, but they are harder to modify. They form the basis of machines with simple or "reduced" instruction sets.

Microprogrammed controllers, on the other hand, take advantage of memory density by implementing complex control functions as ones and zeros stored in a ROM. The architecture of such controllers is more general than that of the hardwired variety, making it possible to change the instruction set without changing the underlying data-path. However, this flexibility comes at some expense in processor cycle time, and an effort is usually made to keep the size of the ROM as small as possible. Compared to the hardwired approach, microprogramming provides a reasonable way to structure the design and implementation of a complex controller. This is the implementation approach of choice for machines with complex instruction sets, and therefore processor controllers, like Digital Equipment Corporation's VAX, the Intel 80x86, or the Motorola 68x00.

Further Reading

Although the controller implementation techniques described in this chapter are a natural application of digital design methods, few books on digital design spend much time on them. Exceptions include Johnson and Karim's book Digital Design: A Pragmatic Approach, PWS Engineering, Boston, 1987 (see Chapter 13), and Prosser and Winkel, The Art of Digital Design, 2nd ed., Prentice-Hall, Englewood Cliffs, NJ, 1987 (see Chapter 10).

Several good books focus on microprogramming as an implementation technique. For example, see M. Andrew's book Principles of Firmware Engineering in Microprogram Control, Computer Science Press, Woodland Hills, CA, 1980.

[Top] [Next] [Prev]


This file last updated on 07/16/96 at 04:34:26.
randy@cs.Berkeley.edu;


What is Sarbanes-Oxley[q]
What is Sarbanes-Oxley[q]
ISBN: 71437967
EAN: N/A
Year: 2006
Pages: 101

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net