Chapter 2: General-purpose processors: Software
Embedded System Design, Vahid/Givargi Last update: 09/27/99 2:51 PM
General-purpose processors: Software
A general-purpose processor is a programmable digital system intended to solve
computation tasks in a large variety of applications. Copies of the same processor may
solve computation problems in applications as diverse as communication, automotive,
and industrial embedded systems. An embedded system designer choosing to use a
general-purpose processor to implement part of a system’s functionality may achieve
First, the unit cost of the processor may be very low, often a few dollars or less. One
reason for this low cost is that the processor manufacturer can spread its NRE cost for the
processor’s design over large numbers of units, often numbering in the millions or
billions. For example, Motorola sold nearly half a billion 68HC05 microcontrollers
(source: Motorola 1996 Annual Report).
Second, because the processor manufacturer can spread NRE cost over large
numbers of units, the manufacturer can afford to invest large NRE cost into the
processor’s design, without significantly increasing the unit cost. The processor
manufacturer may thus use experienced computer architects who incorporate advanced
architectural features, and may use leading-edge optimization techniques, state-of-the-art
IC technology, and handcrafted VLSI layouts for critical components. These factors can
improve design metrics like performance, size and power.
Third, the embedded system designer may incur low NRE cost, since the designer
need only write software, and then apply a compiler and/or an assembler, both of which
are mature and low-cost technologies. Likewise, time-to-prototype will be short, since
processor IC’s can be purchased and then programmed in the designer’s own lab.
Flexibility will be high, since the designer can perform software rewrites in a
A general-purpose processor, sometimes called a CPU (Central Processing Unit) or
a microprocessor, consists of a datapath and a controller, tightly linked with a memory.
We now discuss these components briefly. Figure 2.1 illustrates the basic architecture.
The datapath consists of the circuitry for transforming data and for storing
temporary data. The datapath contains an arithmetic-logic unit (ALU) capable of
transforming data through operations such as addition, subtraction, logical AND, logical
OR, inverting, and shifting. The ALU also generates status signals, often stored in a
status register (not shown), indicating particular data conditions. Such conditions include
indicating whether data is zero, or whether an addition of two data items generates a
carry. The datapath also contains registers capable of storing temporary data. Temporary
data may include data brought in from memory but not yet sent through the ALU, data