The basic tenant upon which all stored program computers are
based is the fetch, decode, and execute cycle. Dr. Howard
Pollard
What is a microprocessor?
To fully understand the
differences and similarities between Microblaze, PowerPC, and other
microprocessors it is necessary to spend a few minutes discussing
microprocessors in general. We intend to introduce the reader to basic
concepts on microprocessors and provide useful references in case you
need to go deeper into the details. The sources of all the information
posted here are detailed at the end of this webpage.
Basically, a microprocessor
is an integrated circuit that contains thousands, or even millions, of
transistors. The transistors work together to store and manipulate data
so that the microprocessor can perform a wide variety of useful
functions. The particular functions a microprocessor performs are
dictated by software. [1]
A very nice site to check the history of
microprocessors can be found at Intel [2]. This can help to understand
the actual impact of MicroBlaze and programmable logic on today's
applications.
Let's first discuss some
basic ideas and concepts:
The first idea of a
computer as we know it now was developed by Von Neumann and Alan Turing
and is know as the "Von Neumann Machine". The first system implementing
this idea was the IAS computer (1952 at the Princeton Institute for
Advanced Studies). The general structure was composed of a main memory,
an arithmetic logic unit (CA), a program control unit (CC) and I/O
equipment (I/O). [3]
Figure 1.
Structure of the IAS Computer [3].
At this very first stage of
development, these systems were huge and the CPU was built using
discrete elements wired together. Finally around 1971, microelectronic
developments produced a breakthrough as Intel developed its 4004, the
first chip to contain all of the components of a CPU on a single chip.
The microprocessor was born! [3]. Many years have passed since that day.
The basic ideas are still the same. A computer system still follows the
very basic scheme shown in figure 1.
Another concept to discuss
is "System-on-a-Chip" or SoC. SoC technology is the packaging of all the
necessary electronic circuits and parts for a "system" (such as a cell
phone or digital camera) on a single integrated circuit (IC), generally
known as a microchip. For example, a system-on-a-chip for a
sound-detecting device might include an audio receiver, an
analog-to-digital converter (ADC), a microprocessor, necessary memory,
and the input/output logic control for a user - all on a single
microchip.
System-on-a-chip
technology is used in small, increasingly complex consumer electronic
devices. Some such devices have more processing power and memory than a
typical 10-year-old desktop computer. In the future, SoC-equipped
nanorobots (robots of microscopic dimensions) might act as programmable
antibodies to fend off previously incurable diseases. SoC video devices
might be embedded in the brains of blind people, allowing them to see;
SoC audio devices might allow deaf people to hear. Handheld computers
with small whip antennas might someday be capable of browsing the
Internet at megabit-per-second speeds from any point on the surface of
the earth. [4]
Finally, the concept of
"Embedded Systems". An embedded system is some combination of computer
hardware and software, either fixed in capability or programmable, that
is specifically designed for a particular kind of application.
Industrial machines, automobiles, medical equipment, cameras, household
appliances, airplanes, vending machines, and toys (as well as the more
obvious cellular phone and PDA) are among the myriad of possible hosts
of an embedded system. Embedded systems that are programmable are
provided with a programming interface, and embedded systems programming
is a specialized occupation.
Certain operating systems
or language platforms are tailored for the embedded market, such as
EmbeddedJava and Windows XP Embedded. However, some low-end consumer
products use very inexpensive microprocessors and limited storage, with
the application and operating system both being part of a single
program. The program is written permanently into the system's memory (in
this case), rather than being loaded into Random Access Memory (RAM), as
programs on a personal computer are. [4]
In this context, it is safe
to describe a simple embedded microcomputer system as a combination of
computer hardware and software tailored for a specific application. A
good (and somehow generic example) is shown in figure 2.
Figure 2;
Example of embedded microcomputer system.
A coarse division of this
system is used to explain its components and to start establishing
relationships with EDK, Microblaze and PPC405 as tools for us to
understand the role of programmable logic and Xilinx's tools in embedded
computer systems. Our arbitrary division is Microprocessor,
other computer hardware as memory, peripheral blocks
(timer, ADC/DAC, etc), buses and I/O
interfaces.
[1]
http://www.intel.com/intel/intelis/museum/exhibits/hist_micro/hof/whatis.htm
[2]
http://www.intel.com/intel/intelis/museum/exhibits/hist_micro/index.htm
[3]
Computer Organization & Architecture, designing for performance, W.
Stallings.
[4] Whatis.com