TCS - The CPU

The CPU

by Lee Alexander
Macon Users Group
From the June 2003 issue of the I/O Port Newsletter

The core of a PC is its CPU (Central Processing Unit). What is a CPU? It is an IC (Integrated Circuit) of tiny transistors arranged in logic gates to perform the Boolean operations that carry out the instructions of the software code. Popularly, the type of the PC is identified by the CPU's development. A 386 PC meant the CPU was an 80386 unit. The next progression was the 80486 and Intel dropped the five digit numerical designation with its Pentium (5- series) chip.

IC's are fabricated by a complex process involving photolithography and the doping (adding positive and negative materials) of a thin, single crystal, silicon wafer. The generations of the CPU are astounding in their growth parameters. The aforementioned 80286, in 1982, was comprised of 134,000 transistors using 1.5 micron technology. The 1.5 microns refers to the smallest line width of the process. A micron is one millionth of a meter (0.000001 m), equivalent to 0.000004 inches. A human hair is about 0.002 inches thick; one hair would cover 2000 side-by-side lines. Jumping ahead to 1993, Intel's Pentium CPU contained 3.1 million transistors and used 0.8 micron lines. The present top Pentium, the P4, has 55 million transistors and employs 0.13 micron technology and runs at just over 3 GHz (Gigahertz).

What's inside and what does it do?

Let's follow some action on your PC. Suppose you reach a point where the OS (Operating System) requests a password and you have previously set the PW to AardVark. Hitting the A on the keyboard sends the data through RAM to the processor. As this is not an instruction, the CPU recognizes it as data but does not know what to do with it. It therefore sends the data to the Prefetch unit, where it joins the line of pending data/instructions. The Prefetch unit scans the CPU's main memory for an instruction, wherein the software tells the Prefetch to send the code via the data bus to the instruction cache. There it is assigned an address for future use. The Prefetch unit then sends the address and the data code to the Decode unit. The Decode unit translates the data, the instruction with it, and its address into binary code. The translated information is then sent to the Control unit, which is told to store the data in the Data cache and wait for further instructions. Almost simultaneously, the letter A appears on your monitor (due to the built in instructions) via the Data bus. The process is repeated for the remaining seven letters of your password.

When you hit Enter, a new procedure begins. The BIOS (Basic Input/Output System) runs the command to read through the Data bus to the Prefetch unit. Checking the Instruction cache it finds none and goes on to main memory. The OS sends the Prefetch the collected data of eight letters and a command to compile (translate) and compare the data with a known stored value. The new instruction, addresses, and data are sent to the Decode unit where it again converted to binary code. All this is now passed on to the ALU for processing. The Control unit sends the first letter of the stored password (in the OS) as binary code along with the address of your first typed letter, which has been stored in the Data cache. The ALU runs a Boolean compare on each bit of the binary code for the first letter. The result, a TRUE or FALSE, is stored in a memory register until the comparison is complete for each character.

A parallel "computation" has found an instruction in the main memory to provide access if the information from the Prefetch unit, the Instruction cache, and the Decode unit all result in a final condition of TRUE from the ALU. Now you can proceed - or gracefully quit.

For a more detailed view of CPUs and their features, visit www.pcmag.com and scroll down to Comparison: CPU Road Map.

ANSI (American National Standards Institute) 8 bit (0 through 255 decimal) code is used for characters. The number zero (0) is assigned 4810, upper case A is 6510, lower case 'a' is 9710. The corresponding binary values are 0011 000, 0100 0001, and 0110 0001



For more information on the Tulsa Computer Society click here




Tulsa Computer Society 6/02/2003
Don Singleton, President