Chapter 4: Custom single-purpose processors: Hardware
Embedded System Design, Vahid/Givargis Last update: 09/27/99 2:51 PM
Custom single-purpose processors: Hardware
As mentioned in the previous chapter, a single-purpose processor is a digital system
intended to solve a specific computation task. While a manufacturer builds a standard
single-purpose processor for use in a variety of applications, we build a custom single-
purpose processor to execute a specific task within our embedded system. An embedded
system designer choosing to use a custom single-purpose, rather than a general-purpose,
processor to implement part of a system’s functionality may achieve several benefits,
similar to some of those of the previous chapter.
First, performance may be fast, due to fewer clock cycles resulting from a
customized datapath, and due to shorter clock cycles resulting from simpler functional
units, less multiplexors, or simpler control logic. Second, size may be small, due to a
simpler datapath and no program memory. In fact, the processor may be faster and
smaller than a standard one implementing the same functionality, since we can optimize
the implementation for our particular task.
However, because we probably won't manufacture as many of the custom processor
as a standard processor, we may not be able to invest as much NRE, unless the embedded
system we are building will be sold in large quantities or does not have tight cost
constraints. This fact could actually penalize performance and size.
In this chapter, we describe basic techniques for designing custom processors. We
start with a review of combinational and sequential design, and then describe a method
for converting programs to custom single-purpose processors.
Combinational logic design
A transistor is the basic electrical component of digital systems. Combinations of
transistors form more abstract components called logic gates, which designers primarily
use when building digital systems. Thus, we begin with a short description of transistors
before discussing logic design.
A transistor acts as a simple on/off switch. One type of transistor (CMOS --
Complementary Metal Oxide Semiconductor) is shown in Figure 4.1(a). The
be confused with logic gate) controls whether or not current flows from the
. When a high voltage (typically +5 Volts, which we'll refer to as logic 1) is applied
to the gate, the transistor conducts, so current flows. When low voltage (which we'll
refer to as logic 0, typically ground, which is drawn as several horizontal lines of
decreasing width) is applied to the gate, the transistor does not conduct. We can also
build a transistor with the opposite functionality, illustrated in in Figure 4.1(b). When
logic 0 is applied to the gate, the transistor conducts, and when logic 1 is applied, the
transistor does not conduct. Given these two basic transistors, we can easily build a
circuit whose output inverts its gate input, as shown in in Figure 4.1(c). When the input