by Stan Veit
Stan Veit is editor-in-chief of Computer Shopper. He is one of the pioneers of the computer industry, having opened the first computer store on the East Coast and the first robot store in the world.
The microprocessor is easy to spot inside the housing of your personal computer. Usually the largest rectangle on the main circuit board, its black plastic casing is over a half-inch wide and about two inches long, with dozens of metal legs, or pins, attached to it. The microprocessor chip within is a half-inch-square sliver of silicon with connections to each of the pins.
The Zylog Z-80 microchip, used in such popular computers as the Radio Shack TRS-80 series, the Coleco Adam and countless CP/M-based business systems, is typical of central processing chips now in general use. The Z-80's inner workings will provide us with the key to the secrets of the electronic brain.
Of the forty pins attached to the Z-80, sixteen are known as the address bus. ("Bus" is what we call a group of computer connections with a common purpose.) These have to do with the unique address of each of the computer's memory locations. Since the computer uses the binary system, each address pin can be in either a zero or a one state. With each additional address line offering choices counted in powers of 2 (2 x 2 = 4, 2 x 2 x 2 = 8, etc. ), we will come to the sixteenth power of 2 = 65,536, or 64K, as we call it. This is the number of unique memory locations that sixteen address lines can specify.
The next group of pins constitutes the data bus. These are the lines the data moves on. The Z-80 uses an 8-bit data word, so there are eight data lines. The rest of the pins are used for control of the processes involved in the computer's operations; for example, the system control bus line regulates the flow of information throughout the computer system.
Now that we have some idea of its operating connections, we are ready to visit the microprocessor chip itself. To do this we will have to be reduced to the size of electrons. Beam us down, Scotty!
An Electron's-Eye View
Spread out before us is a vast piece of silicon real estate called the Z-80. It is composed of etched sections of silicon material, each with intermixed materials called "doped" areas. Seen from above, the chip resembles a city map with rectilinear paths and sizable areas that perform specific functions. These silicon "neighborhoods" are easily identified by their uses.
The first section we will look at contains the registers. These are convenient storage areas for memory, much like the warehouse district of a city. All the microprocessor's operations are performed on instructions or data contained in the registers. The Z-80 holds 208 such memory bins accessible to the programmer.
Some of the registers are devoted to special functions. The program counter, for example, holds the address of the instruction being fetched from memory. When its contents are put on the address lines, the register is incremented and then reads the address of the next instruction. If the program contains a jump, the new value is automatically placed in the counter.
Another special-purpose register is the stack pointer, which holds the address of the top of a stack of data stored anywhere in memory. A stack is a sequential group of memory locations in the shape of a chest of drawers. If need be, the computer can temporarily store data here by pushing it onto a stack.
Now that we've explored the memory neighborhoods on the chip, let's visit the business district. Called the arithmetic logic unit (ALU), this is the computational part of the microprocessor. It does all 8-bit arithmetic and logical operations such as add, subtract, logical OR, logical AND, compare, increment, left or right shifts, and testing of bits.
The rest of the chip-the government district, if you will-is devoted to the control of computer instructions and the sequence of operations. The instructions recognized by the chip are part of its design, and their number and complexity define its power. Each chip design has a different instruction set, though some include the instruction sets of previous microprocessors.
For a program to be executed, specific instructions are placed in the computer's memory and the information to be processed is fed into the machine. As the central processor operates, the control section fetches the instructions from memory, places them into the instruction register and decodes them. The control section then generates the signals to read or write data from or to the registers. It also regulates the ALU and provides the external control signals.
Since all bytes are of a similar format, how do computers know whether they're getting instructions or data? The answer is: they don't. Computers crash if they get data when they need instructions, and vice versa, so it's important for the programmer to supply a precise sequence of operations in composing the program. In addition, the computer can only operate by following this sequence at the proper time. The timing is controlled by a clock circuit elsewhere on the main board of the computer.
Chains of Command
You are now normal size, and you are sitting in front of the computer. Turn it on and load BASIC. Type PRINT 2 + 2, press the ENTER key, and the BASIC interpreter will translate your instructions into a form that the computer can understand (a pattern of 1s and 0s called machine language).
The instruction PRINT tells the computer that the result of the operation is to be displayed on the video screen. The machine code for the quantity "2" is stored in the general-purpose register. The symbol "+" tells the computer that the ALU is to add the next number received to the quantity already in the register and to place the result in the accumulator. The number 2 comes along, is translated into machine code and added to the previous number 2, and the resulting machine code for the quantity 4 is placed in the accumulator. The instruction PRINT in BASIC causes many complicated machine-language instructions to occur. The outcome is the result of the arithmetic operation-in this case, 4-displayed on the video screen.
Had we been running a program to add 2 + 2 and save the results in memory, the computer would have shown the results and at the same time saved them at the specified memory location.
Of such building blocks, whether machine language or higher-level, English-like commands, are programs written. The microprocessor chip has no way of knowing whether it's crunching numbers, processing text or playing a game. The ultimate team player, it just follows orders, millions of them per second, and does what it's told.
Return to Table of Contents | Previous Article | Next Article