Basic CPU Architecture - The Bus Interface Unit
By Stephen Bucaro
The CPU (Central Processing Unit) is a large integrated circuit mounted on the
motherboard inside the computer's case. Most people agree that the CPU (Central Processing
Unit) is the "brains" of the computer. Understanding computers requires an understanding
of the basics of the CPU. In this article I explain basic CPU architecture in simple
basic terms.
In order to explain basic CPU architecture in an understandable way, I'm going to
describe a simple CPU that doesn't really exist. The closest thing to the CPU I describe
here is the 8088, a simple 8-bit processor developed by Intel in 1979. Even so, I'm going
to simplify it even further by leaving out many complex details.
In a previous article, I indicated that the 8088 CPU has two parts; the ALU (Arithmetic
Logic Unit) and the BIU (Bus Interface Unit). Then I focused on the ALU part. In this
article I focus on the BIU part.
In basic operation, a CPU reads program instructions and gets data from a set of
integrated circuits referred to as main memory. The data is processed according
to the instructions and the result of that processing may be stored back in memory. The
BIU is the circuitry that interfaces with the memory.
In the 8088 CPU, each memory location contains 8 bits, and there can be up to one
million memory locations, each having a unique address. To access a memory location,
first its address is placed on the address bus. Then a control signal is placed on the
control bus. The control signal may be a signal to read the data that's at that
memory address, or a signal to write new data into that memory address. If the
access is a write operation, the data to be stored must be placed on the data bus.

Simplified 8088 Bus Interface Unit
The interesting thing about the 8088 CPU is the way it creates memory addresses. The
address comes from two registers. If you're wondering what a "register" is, refer back
to my previous article. Basically a register is a storage area for one "word" of
information. An 8088 internal word is 16-bits long. So the address is placed in two
16-bit registers.
Now you would think two 16-bit registers would give you a 32-bit address, but with the
8088, you get only a 20-bit address. Rather than concatenating the two registers to create
the address, one register is shifted left 4 bits and then the two registers are added.
That's because the 8088 uses a memory segmentation addressing scheme.
|