Microprocessors

The microprocessor, or CPU, is the workhorse for a computer. All devices in the system communicate with the CPU, asking it to perform calculations, and then return the data. The CPU communicates with all the devices in the system via the external data bus. The main function of the CPU is to execute programs stored in memory. Programs are nothing more than a series of commands that the CPU can understand. If the CPU wants to execute a program, it will access a line of code stored in memory. To do this it must send the address to the memory controller chip (MCC) on the address bus. The MCC then fetches the data at that data location and returns it to the CPU on the external data bus.

The CPU has helpers that help it do it's job. The first is the arithimetic logic unit (ALU). This performs simple mathematical functions. The other is the floating point unit (FPU). This handles more complex functions. While the ALU and FPU are doing their jobs, they need somewhere internal to the processor to store data. These places are called registers. Registers are nothing more than holding places for bits of data.

The CPU also communicates with other devices on the external data bus. If a program requires the CPU to access a device, such as a sound card, then the CPU will send a command to the sound card on the external data bus, and then the sound card will send a response back to the CPU, or perform a function.

As the families of microprocessors have evolved, many new elements have been introduced into the microprocessor, such as caching, enhanced instruction sets and clock doubling. These have helped to make processors faster and capable of doing much more work quickly.

The various families of processors have also supported different modes of operation. The first processors, the 8086 and the 8088 supported only a single mode of operation. Starting with the 80286, a mode known as protected mode was avaliable. This allowed access to special operations only avaliable in the 80286. Next came the 80386, which also offered it's own protected mode operation. The 80486 and Pentium processors have not offered any new modes of operation, and support 386-enhanced mode operation.

External Data Bus

The external data bus is a row of wires that interconnect every device on the motherboard. The external data bus has come in various sizes including 8-bit, 16-bit, 32-bit, and 64-bit. The higher the number of bits in the external data bus, the more data can be moved at one time. The different families of processors have had different sizes of external data busses. The 8086 supported a 16-bit external data bus. This was incompatible with most hardware and software of the time, so a new processor, the 8088, was created with an 8-bit external data bus. The 80286 had a 16-bit external data bus, and in the 80386 this was widened to 32-bit. The problem with a 32-bit external data bus on the 386 was that it could not be used on 16-bit motherboards. This is why the 80386SX processor was created. It supports the 386 enhanced mode, but only has a 16-bit external data bus.

The 80486 has a 32-bit external data bus, like the 80386, and the Pentium offers an even wider 64-bit external data bus. The external data bus on the Pentium implements what is called dual-pipelining. It is actually two 32-bit data busses that work independently of each other. Commands may be sent through each of the pipelines and executed simultaneously. The only drawback is that one of the pipelines is only capable of handling simple mathematical functions, while the other supports more complex functions.

The Pentium Pro, and Pentium II also have a 64-bit external data bus and offer quad-pipelining. This allows for four seperate simultaneous pipelines.

Back to Top

Address Bus

The address bus is a set of wires simular to the external data bus, but completely seperate. Combinations of 0's and 1's are sent along the wires, telling the memory controller chip to access a particular address in memory. In the 8086 and 8088, a 20-bit address bus was used. This allowed up to 1 MB of RAM (2^20 bits). In the 80286, a 24-bit address bus was used, which increased the ammount of RAM to 8 MB. The 80386SX also used a 24-bit address bus. All other processors (80386, 80486, Pentium, Pentium Pro, Pentium II) use a 32-bit address bus, allowing up to 4 GB of RAM.

Back to Top

Caching

Starting with the 80486, caching was introduced. In caching, upcomming data is read into the cache from memory, and the CPU takes it's data from the cache. If the data it's looking for is not in the cache it will have to access the memory itself. Data to be written to memory is also stored into the cache until it can be written to memory. There are two types of caching: write-through, and write-back. In write-through caching, the data in the cache is written to memory as soon as it recieves it, creating a wait cycle if the memory is not avaliable. Write-back caching will store the data until the memory is avaliable to be written to. Write-through caching is cheaper but slower, while write-back caching is harder to implement and costs more.

Caches are implemented using SRAM (static RAM) as opposed to DRAM (dynamic RAM). DRAM, which is used for system RAM, uses transistors and capacitators to store information. It must be continually refreshed in order to keep it from loosing it's data. While the DRAM is being refreshed, it is inaccessible, and if the CPU wants to access the data a wait cycle must be created until the refresh is complete. SRAM, on the other hand, uses flip-flop latches to store data, so it does not need to be refreshed. It's data is constantly avaliable. SRAM is much more expensive than DRAM, which is why DRAM is used for system RAM.

There are two types of caches, L1 and L2. In the 80486 a small internal cache cache was implemented on the processor itself. This was called the L1 cache and was only 8k. It was either write-through or write-back depending on the chip. There was also an external cache called a L2 cache. This cache was usually much larger (sometimes 64k to 1MB) and mostly soldered directly to the motherboard. The Pentium would implement a 8k write-through / 8k write-back L1 cache.

Starting with the Pentium Pro, and also on the Pentium II, a 512k onboard L2 cache was also included. The L1 cache on the Pentium II was also increased to 16k write-through / 16k write-back.

Back to Top

Instruction Sets

Every processor has a set of commands that it knows. As each family of processors increases, more commands are added to the instruction set. All the previous commands are left intact to provide for backward compatiblility with programs written for older processors. The newest instruction set is called MMX, and released by Intel. MMX stands for Multimedia Extensions. It provides 57 new commands to the Pentium instruction set, and also adds four new registers to manipulate large chunks of data (such as graphics). In order for new instruction sets to be effective, new software has to be written to take advantage of the new commands.

Back to Top

Protected Mode

The original 8086 processor had one mode of operation, which was what all programs were written to run under. When the 80286 was released, it offered a new mode, called protected mode, which allowed it to run more specialized functions. Normally the 80286 ran in 8086 compatible mode, but if a special command were issued, then it would switch to protected mode. The only drawback to this is that 80286 protected mode wouldn't run 8086 programs, and to get the 80286 processor into normal mode the machine had to be rebooted.

When the 80386 processor was released, it had it's own protected mode too. This supported the 80286 protected mode, and also offered more features. One of the new features with 80386 protected mode was virtual 8086 processing. This enabled 8086 programs to be run in 80386 protected mode. This mode is also referred to as 386-enhanced mode. It also introduced the use of virtual memory. This allows for the use of free hard drive space to be used like it is system RAM.

Neither the 80486, Pentium, or later processors introduced any new modes of operation.

Back to Top

Clock Doubling

Starting with the 80486, a trick called clock doubling was introduced. Microprocessor manufacturers found that they could make processors that ran at high clock speeds, but most motherboards only ran at a maximum of 33 MHz. Therefore, clock doubling was introduced. Clock doubling uses a specific multiplier to increase the internal clock speed. With clock doubling, processors could run at one speed internally, and another externally. The 486 DX/2 33/66 would run at 66 MHz internally, and 33 MHz externally. The Intel 486 DX/4 chip uses a multiplier which triples the external speed.

Starting with the Pentium, most motherboards were increasing in speed to 66 MHz. Multipliers of 1, 1.5, 2, 2.5, and 3 were used to allow internal speeds of up to 200 MHz. In the Pentium II, the maximum speeds are around 400 MHz, and with new 100MHz motherboards becomming popular are still increasing.

Back to Top