Microprocessor History, Part 2
Posted: 2006-05-24
Author: Roy Davis
Manufacturer: N/A
Source:
Geeks.com
In the last installment we talked about the very early days of microprocessor history and how it grew out of a programmable calculator into the first personal computers. The history is just the foundation for understanding the features that make our current day microprocessors so powerful and helps to illustrate what is really important in your next computer purchase.
There have been many players in the microprocessor story, but the two companies that have had the most impact are also the two that dominate the market; Intel and AMD. Along the way, other big companies like IBM and Motorola made major contributions but have fallen by the wayside in the marketplace for personal computers.
1. Expanding Address Space
We started with the Intel 4004 and how that first device could handle only 4-bit numbers and up to 640 bytes of memory address space. Nowadays, it's common to plug in hundreds of megabytes in a single Memory Stick.
Running the latest operating system like Microsoft Windows XP requires quite a bit of memory. Working on digital photographs or running the newest computer games requires even more. It's not uncommon to have a Gigabyte (1,000 Megabytes) of RAM in your computer.
2. Finding the Way
How does the microprocessor keep track of all that memory? To answer that, we need to talk about some of the components of a microprocessor. Last week, I mentioned the program counter. The program counter is a register. Your microprocessor is full of these registers; little chucks of hardware that are like a sticky note you would use to remind you of something. Registers are like this for the microprocessor, easily and quickly referenced by many of the instructions the computer executes.
A microprocessor will have several of these registers dedicated to pointing to memory addresses. The program counter indicates the next instruction, while the index register is used to automatically step through tables of data. A stack register keeps track of memory addresses to return from program subroutines.
The memory addressing registers of an 8-bit microprocessor are almost always twice as big at 16-bits. When personal computers shifted to 16-bit microprocessors, the registers grew to 32-bits. That meant there were a lot of specialized instructions and multiple steps to manipulate the memory addresses. This slowed down the execution of programs. It became obvious that a microprocessor that can handle a full memory address in one chunk would run faster. That's why we are using 32-bit microprocessors even in our low-end systems, and the big boys are sporting 64-bits at a time.

3. Segmented Verses Unsegmented
Early on, the struggle with handling large memory address space while maintaining microprocessor speed took two paths. Motorola took the simple approach by making the memory space "flat" so that it is addressed as one big continuous memory string. The instruction set was "symmetric", meaning for every read operation there was a corresponding write.
Intel took a more convoluted route. They broke the memory up into "segments". Simple and fast addressing modes were used within the segment. The program instructions and data usually lived in different segments. When a program had to jump to another segment or retrieve data from a different segment, the segment registers had to be modified, which could take several steps. The idea was that the slow crossing of segment boundaries was more than made up for by the simple and fast operation within a segment.
In the first IBM PC, the segments were 64 Kilobytes, which was pretty limiting then. Intel was quick to respond to this when they released the 286 microprocessor in 1982 by expanding the segments to 1 megabyte. The Intel 386 microprocessor took the segment size to 4 Gigabytes in 1985 and segment size hasn't been an issue since. This Intel segmented design became more popular than the un-segmented Motorola flat memory.
« Back | 1 |
2 |
3 |
Next »