Navigation bar
  Start Previous page  2 of 15  Next page End Home  1 2 3 4 5 6 7 8 9 10 11 12  

Copyright Ó 2001 All Rights Reserved.
March 2001
Contact for reprint and copy permission
Years after the introduction of the two architectures debate continues on whether or not
a convergence can ever take place. Techniques are debated, architectures compared,
positions are promoted. Many articles and papers have been written on this topic - and
you're reading one of them now. The difference is that, in this paper you are reading, is
that real world selection criteria will be discussed, including:
Real time-to-market,
Politics of semiconductor companies,
Useful features and their respective benefits
Quality of development tools.
Microcontrollers are used primarily in control-oriented applications that are interrupt-
driven, sensing and controlling external events. The external environment is detected
either by digital I/O, interrupt pins, or analog (A/D) inputs. The source of the signals to
these pins comes from switches, analog and digital sensors, and status signals from
other systems. Each input represents a piece of information on the status of some
outside event. Outputs are sent to actuators, relays, motors, or other drivers that control
events. In between is the trusty microcontroller, analyzing the inputs and the present
state of the system,  determining when to switch on and what to turn off. The software
that does all this, that makes these decisions, does so in mostly a conditional fashion;
that is, conditional jumps and heavy bit manipulation and shifts are the heavy staples of
deep embedded control (interrupts are counted as a condition here - program flow is
altered upon the occurrence of an external event).
Digital Signal Processors, meanwhile, are traditionally found in systems that require the
precision processing of digitized analog signals. The performance goal of a DSP
architecture is to perform as many arithmetic operations as possible in the smallest
number of cycles. Traditional DSP applications are as subtle as a freight train - they are
brute force mathematical applications, pure and simple. Traditional DSPs use complex,
compound instructions that allow the programmer to perform multiple operations in a
single instruction and increase the amount of useful processing done; for example,
compute one tap of an FIR filter in a single cycle. DSP cores are crafted to be number
crunchers, and to that end they must do two things very well: first, a DSP core must
perform multiple math functions, including multiplication, extremely quickly; and second,
a DSP needs to continuously feed the data path to the number-crunching computational
units so that they can continue to crunch away. It is pursuit of this functionality that
makes the programming model of a DSP look all so different when compared to a
microcontroller. See Table 1 on the next page. White Papers Previous page Top Next page