Vocademy

Intermediate Advances

The Transistor  

The downfall of ENIAC was the vacuum tube. Not only do vacuum tubes require a lot of power, but they tend to burn out. With 19,000 tubes, ENIAC would lose a tube every few days. The machine would have to be shut down for 15 minutes or so while the bad tube was tracked-down and replaced.

Transistors have no heaters to burn out. They are also much smaller than vacuum tubes and consume a tiny fraction of the power. Replacing vacuum tubes with transistors made it possible to build much smaller computers with much more computing power than before. The transistor was the most significant advance in computers until the integrated circuit.

The Integrated Circuit

Integrated circuits are manufactured using photographic techniques to put multiple transistors and other components on a single wafer of silicon (called a chip). Early digital integrated circuits had such devices as four AND gates or four OR gates in a package not much larger than a piece of Pez candy[1]. Most of that was packaging—getting connections to the chip. The actual circuit would be two or three millimeters across.



An Erasable Programmable Read-Only Memory integrated circuit.


A Central Processing Unit (essentially a bank of ENIAC-style accumulators, Boolean units, and math units) could be made on a circuit board less than two feet across. This made it possible to make "mainframe" computers the size of a couple of bookshelves. A "mini computer" could be made the size of a secretary's desk.

The Microprocessor

The final advance that made the desktop personal computer possible, and subsequently, laptop, notebook, and smartphone computers, was the microprocessor. This is a Central Processing Unit on a single integrated circuit.

The Intel 4004

The first microprocessor was the Intel 4004. The 4004 could access 4096 bytes of Read-Only Memory and 640 bytes of Read-Write Memory. It had a four-bit data bus[2], so only half a byte could be accessed at a time. It had 16 four-bit working registers (places to store data while it was being manipulated). It could perform addition and subtraction in binary or decimal mode[3] and could perform a conditional branch. It could not be commanded to use the individual Boolean AND, OR, and Exclusive OR functions, but like all computers, used them as part of the addition process. It also could not perform the logical shift function;[4] a separate integrated circuit was required for this.  

The Intel 8008

 The Intel 8008 was a significant improvement over the 4004. First of all, it had an eight-bit data bus so it could access a complete byte at a time. It could access 16,384 bytes of memory (16k), and the memory could be mixed read-only memory and read-write memory with instructions or data placed wherever needed. The 8008 had a single eight-bit working register, called the accumulator, where all math and Boolean functions were performed. Four other registers could be used for temporary storage. Two more registers could be combined to hold a 16-bit memory address (to point to where to get data for the other registers). The 8008 could also perform all necessary math and logic operations, i.e., addition, subtraction, AND, OR, compare, and shift. It could perform a conditional branch and a branch to subroutine (where the microprocessor remembers where it branched from so it can go back with a single instruction). The 8008 also had a hardware interrupt function.[5]

The Intel 8080

The microprocessor that launched the microcomputer industry was the Intel 8080. The 8080 was largely based on the 8008. It could access 65,536 bytes (64k) of mixed memory (read-only and read-write). It had enough connections (pins) on the package to access memory and data without multiplexing; [6]16 pins were used to specify a memory address and 8 pins to read or write data. It had all of the instructions of the 8008 plus a few extras to facilitate working with 16 bits at a time. It also had three types of interrupts: a hardware interrupt, like the 8008, a hardware interrupt request (that can be deferred if a critical operation is in progress when the interrupt signal is given) and a software interrupt, which is just an instruction to do an interrupt without an external signal.   The machine that most historians consider to be the first personal computer, the MITS Altair 8800, used the 8080 processor.

The Zilog Z-80

The Zilog Z-80 was designed as an enhanced clone of the 8080. The Z-80 could run any program written for the 8080 and had some extra instructions. It had built-in circuitry for which the 8080 required extra circuits, and it performed more efficiently than the 8080. As a result, many 8080 class microcomputers used the Z-80 instead of the 8080. The Z-80 is also significant because it is still in production as of 2019[7]. It is a popular circuit for embedded systems[8],  which the circuit was designed for in the first place.

The MOS 6502

The MOS Technology 6502 has an entirely different lineage from the Intel circuits. Like the 8080 and the Z-80, it has a 16-bit address bus and can, therefore access 64k of memory. It also has an 8-bit data bus. Internally it has a single eight-bit accumulator, and two other eight-bit registers called X and Y. The accumulator is used for addition, subtraction, and Boolean logic functions. The X and Y registers can be used for temporary storage or as auxiliary pointers to make memory addressing more versatile. It can perform both binary and binary-coded decimal addition along with Boolean AND and OR, etc. It also has a conditional branch and a jump-to-subroutine function. It also has three interrupt functions like the 8008, 8080 and Z-80 processors.

The 6502 is a much simpler circuit than the Intel and Zilog circuits. When introduced, it sold for $25 when the 8080 and Z-80 cost around $125. The 6502 has all the functions required for a modern digital computer. However, it doesn't have as many instructions as its competition. It also only has three simple internal registers. Having fewer features and a nearly orthogonal instruction set,[9] it is somewhat easier to program than the 8080. Having fewer instructions, it also takes less time to decode instructions, making it faster than it would be otherwise. Its performance rivaled the faster-clocked 8080 family. Some historians consider the 6502 to be the first Reduced Instruction Set Computer (RISC) processor.

The 6502 was used in the Apple II computer, which was at least as important as the 8080-based machines in starting the microcomputer industry. It was also used in the Commodore PET, Commodore VIC 20, Commodore 64, and Atari 400, 800, and XL computers.

Like the Z-80, the 6502 is still in production[10] as of 2019, although the originator, MOS Technology, went out of business long ago. The 6502 owes its continuing popularity to its simplicity. This is why it will be used below to explain how microprocessors work in detail.

The Intel 8086

The last microprocessor to be discussed at this time is the Intel 8086. The 8086 had a 20-bit address bus and could, therefore, access 1,048,576 bytes (1MiB) of mixed memory. It also had a 16-bit data bus so it could access two bytes of memory at a time. IBM chose this processor for it's Personal Computer. Since the IBM PC made the computer industry what it is today, their choice made the x86 family (as it is called today) the most widely-used microprocessor family ever. There have been many improvements in the 8086 design that will be discussed later. However, even the latest, greatest Intel-type microprocessors today are essentially "souped-up" 8086s. The x86 processor family will be discussed in detail later.

—————————
1One of these circuits could perform the AND function or the OR function on two four-bit binary numbers.
2In computers, a bus is a group of wires that connect one chip to another or one subsystem to another.
3It used binary-coded decimal for decimal arithmetic.
4A logical shift moves each bit to the neighboring memory cell; for example, a left shift would turn 00101100 into 01011000.
5A hardware interrupt is a connection where an external signal causes the processor to stop what it is doing and branch to a predetermined subprogram.
6Multiplexing would send half of the address to the memory controller, wait for the controller to store it, then send the other half, etc.
7As cheap as $3.95 at Jameco Electronics.
8Embedded systems are computer-controlled devices, like digital televisions, radios, automobiles, etc., that are not thought of as computers
9An orthogonal instruction set means most instructions can access any part of memory with any addressing mode
10As cheap as $7.95 at Jameco Electronics
Vocademy