Microprocessor Working
Microprocessor Working
The first microprocessor to make it into a home computer was the Intel
8080, a complete 8-bit computer on one chip, introduced in 1974. The
first microprocessor to make a real splash in the market was the Intel
8088, introduced in 1979 and incorporated into the IBM PC (which first
appeared around 1982). If you are familiar with the PC market and its
history, you know that the PC market moved from the 8088 to the
80286 to the 80386 to the 80486 to the Pentium to the Pentium II to Intel 8080
the Pentium III to the Pentium 4. All of these microprocessors are
made by Intel and all of them are improvements on the basic design of the 8088. The Pentium 4 can execute any piece of
code that ran on the original 8088, but it does it about 5,000 times faster!
From this table you can see that, in general, there is a relationship between clock speed and MIPS. The maximum clock speed is
a function of the manufacturing process and delays within the chip. There is also a relationship between the number of transistors
and MIPS. For example, the 8088 clocked at 5 MHz but only executed at 0.33 MIPS
(about one instruction per 15 clock cycles). Modern processors can often execute at a
rate of two instructions per clock cycle. That improvement is directly related to the
number of transistors on the chip and will make more sense in the next section.
Inside a Microprocessor
To understand how a microprocessor works, it is helpful to look inside and learn
about the logic used to create one. In the process you can also learn about
assembly language -- the native language of a microprocessor -- and many of
the things that engineers can do to boost the speed of a processor.
A microprocessor executes a collection of machine instructions that tell the Photo courtesy Intel Corporation
processor what to do. Based on the instructions, a microprocessor does three Intel Pentium 4 processor
basic things:
• Using its ALU (Arithmetic/Logic Unit), a microprocessor can perform mathematical operations like addition,
subtraction, multiplication and division. Modern microprocessors contain complete floating point processors that
can perform extremely sophisticated operations on large floating point numbers.
• A microprocessor can move data from one memory location to another.
• A microprocessor can make decisions and jump to a new set of instructions based on those decisions.
There may be very sophisticated things that a microprocessor does, but those are its three basic activities. The following
diagram shows an extremely simple microprocessor capable of doing those three things:
• An address bus (that may be 8, 16 or 32 bits wide) that sends an address to memory
• A data bus (that may be 8, 16 or 32 bits wide) that can send data to memory or receive data from memory
• An RD (read) and WR (write) line to tell the memory whether it wants to set or get the addressed location
• A clock line that lets a clock pulse sequence the processor
• A reset line that resets the program counter to zero (or whatever) and restarts execution
Let's assume that both the address and data buses are 8 bits wide in this example.
• Registers A, B and C are simply latches made out of flip-flops. (See the section on "edge-triggered latches" in
How Boolean Logic Works for details.)
• The address latch is just like registers A, B and C.
• The program counter is a latch with the extra ability to increment by 1 when told to do so, and also to reset to zero
when told to do so.
• The ALU could be as simple as an 8-bit adder (see the section on adders in How Boolean Logic Works for
details), or it might be able to add, subtract, multiply and divide 8-bit values. Let's assume the latter here.
• The test register is a special latch that can hold values from comparisons performed in the ALU. An ALU can
normally compare two numbers and determine if they are equal, if one is greater than the other, etc. The test
register can also normally hold a carry bit from the last stage of the adder. It stores these values in flip-flops and
then the instruction decoder can use the values to make decisions.
• There are six boxes marked "3-State" in the diagram. These are tri-state buffers. A tri-state buffer can pass a 1, a
0 or it can essentially disconnect its output (imagine a switch that totally disconnects the output line from the wire
that the output is heading toward). A tri-state buffer allows multiple outputs to
connect to a wire, but only one of them to actually drive a 1 or a 0 onto the line. Helpful Articles
• The instruction register and instruction decoder are responsible for controlling all If you are new to digital logic, you
of the other components. may find the following articles
helpful in understanding this
Although they are not shown in this diagram, there would be control lines from the section:
How Bytes and Bits Work
instruction decoder that would:
How Boolean Logic Works
How Electronic Gates Work
• Tell the A register to latch the value currently on the data bus
• Tell the B register to latch the value currently on the data bus
• Tell the C register to latch the value currently output by the ALU
• Tell the program counter register to latch the value currently on the data bus
• Tell the address register to latch the value currently on the data bus
• Tell the instruction register to latch the value currently on the data bus
• Tell the program counter to increment
• Tell the program counter to reset to zero
• Activate any of the six tri-state buffers (six separate lines)
• Tell the ALU what operation to perform
• Tell the test register to latch the ALU's test bits
• Activate the RD line
• Activate the WR line
Coming into the instruction decoder are the bits from the test register and the clock line, as well as the bits from the instruction
register.