Vocademy

x86 Processors

8086

The successor of the 8080 was the 8086, released in 1978. The 8086 had a 16-bit data bus that allowed it to retrieve or store two bytes simultaneously. It had a 20-bit address bus which allowed it to access 1MB of memory space. However, in an attempt to make it easy to port programs written for 8080 systems to the 8086, programs specified an address using a different method from its predecessors. Instead of simply specifying a 20-bit number, two 16-bit numbers were used. The first 16-bit number, called the base address, was multiplied by 16, making it a 20-bit number. This constituted a pointer to the start of a 64k block of memory (these blocks started every 16 bytes, there was considerable overlap). The second number, the offset, pointed to a specific address in the 64k block. This became known as 16-bit addressing.

The 8086 had a clock speed of 5 MHz to 10 MHz. NEC made a compatible chip called the V20 that could run at 16 MHz.

8088

Since the 8086 had a 16-bit data bus, it required a minimum of 16 memory chips to interface to it (one data bit per chip). Memory was very expensive at the time, and manufacturers wanted a chip that could interface to 8 memory chips. Intel facilitated this by creating the 8088. This is a full-fledged 8086 that multiplexed the 16-bit data bus to an external 8-bit bus. The chip still worked on 16 bits internally, but a 16-bit number had to be stored in memory using two bytes. It was released in 1979.

IBM chose the 8088 for the first-generation IBM PC.[1]

80186

The 80186 was a microcontroller based on the 8086[2]. It was not a successor to the 8986 but is mentioned here to fill the numeric gap in the list. There was a small number of personal computers that used the 80186. However, the 80186 integrated hardware was not compatible with the hardware in the original IBM PC, which limited the compatibility of these computers. The 80186 was produced until 2007.

80286

The 80286 was the next generation of Intel microprocessor and was introduced in 1982. It ran at 10 MHz to 12 MHz. It had a 24-bit address bus and could therefore access 16 MB of memory. It also had a 16-bit data bus, which was not an issue by that time because of the drop in memory chip costs.

The 80286 included an instruction pipeline: The processing of an instruction takes place in several stages. In the 80286, this involves four stages called fetch, decode, execute, and write-back. In the 80286, the hardware that performed these functions was arranged to operate sequentially, like an assembly line (the pipeline). It normally takes four clock cycles to complete an instruction as it goes through these stages. Using a pipeline, when one instruction moves from the fetch circuitry to the instruction decoder, the next instruction can be fetched from memory. With a four-stage pipeline, there are frequently four instructions in the pipeline at any one time. This quadruples the speed by effectively performing four instructions with each clock cycle.

Real mode and protected mode

When started, the 80286 operates exactly like an 8086. This 8086 compatibility mode was called real mode. Designers expected the 80286 to be switched to its native operating mode, protected mode, once the system was initialized.

In protected mode, multiple programs could be loaded in memory at the same time, and the operating system could switch between these programs so that they all appear to be running simultaneously. Memory was allocated to each program and could be flagged as readable, writable, or executable. If a program attempted to access memory improperly, such as attempting to write to memory marked as read-only, the microprocessor would generate an exception (perform a software interrupt and execute the designated protection interrupt routine). The operating system would then be able to shut down the errant program.

There were two problems with the 80286 protected mode. First, the designers assumed that programmers would rewrite all their programs to run in protected mode, and the processor would never need to go back to real mode once switched to protected mode. To return to real mode, you had to reset the computer. Second, programming for protected mode was complex, and exceptions were far too common. As a result, the 80286 was usually used in real mode as a souped-up 8086.

The upper 15 MB of memory space (extended memory) could only be accessed for program instructions when the 80286 was in protected mode. There were ways to access the extended memory without going into protected mode, but only for data storage. Two popular uses for extended memory were a disk cache[3] and to emulate expanded memory.[4]

Windows 3 was able to make good use of the 80286 protected mode when using applications written specifically for Windows. At first, this was limited to some free applications that came with Windows, such as WordPad and CardFile, but later programs such as Microsoft Word and Excel became available. For the first time, multitasking became widespread on the PC.

Windows 3 used a hack[5] to switch the 80286 out of protected mode without resetting the computer. Therefore it could launch programs that only ran in real mode. However, that program would have complete control of the computer until the user pressed Ctrl-Alt-Esc to return to Windows. Real-mode programs still could not be multitasked (although they could be suspended, and the user could switch between them).

The 80286 was used in the second-generation IBM PC called the IBM PC-AT.

80386 (i386, 386DX)

The i386 was a leap forward in microprocessor design. Many of the features of modern x86 processors originated in the i386.

The i386 had a 32-bit address bus and a 32-bit data bus. Therefore it could access 4 GB of physical memory if the motherboard were capable. Furthermore, it operated on 32 bits at a time, so it would have been four times faster than the 8086, even if it ran at the same clock speed. It operated at up to 33 MHz and was introduced in 1985.

The 386 had an improved protected mode that allocated 4 GiB of virtual memory space for protected mode programs. It could also switch out of protected mode without being reset. Therefore, it could access real-mode programming, such as hardware drivers, if no protected mode drivers were available for a particular piece of hardware.

The 386 also had a virtual 8086 mode that simulated a real mode 8086 in protected memory space. Most real-mode programs could be run in one of these virtual 8086 machines.[6]

In addition, the 386 introduced virtual memory. This swaps data in RAM to the hard disk when currently not in use by the associated program, simulating the presence of more ram.

The 386 also introduced 32-bit addressing. Instead of specifying an address with a 16-bit base and a 16-bit offset, thus accessing memory in 64k segments, a single 32-bit number can access memory as a single 4 GB block.

Early in production, some 386 processors had a bug that prevented them from running 32-bit software. These processors were recalled but then resold as 16-bit-only versions of the 386. This was not a problem for most users at the time because it took several years before 32-bit programs began to be widely adopted.

386SX

The 386SX was a 386 processor with the 32-bit data bus multiplexed to a 16-bit external bus. It also had a 24-bit external address bus. This allowed manufacturers to redesign existing 80286 motherboards for a version of the 386 processor. When the 386SX was introduced, the 80386 was renamed the i386DX.

486


An exposed 486DX2

Some improvements of microprocessors, not mentioned above, improved performance but didn't add capabilities. The i486 processor didn't add any significant capabilities but was faster and more efficient than the 386. Such things as improved pipelining (the 486 added a fifth stage) increased the efficiency of the 486 more than simply increased clock speed would have.

However, the one significant addition to the 486 was a built-in math coprocessor (Floating Point Unit or FPU). Before the 486, a math coprocessor was a rarely-purchased optional item. Only a few high-performance programs (such as AutoCAD and Lotus 1-2-3) could use them anyway. The 8086/8088 had the 8087 coprocessor available, the 80286 had the 80287, and the 386 had the 80387. The 486 included an FPU as an integrated device.

Some 486 processors had defective FPUs. Since this didn't affect the rest of the chip and most people didn't need an FPU, 486 processors with defective FPUs were sold and labeled as 486SX processors. 486 processors with working FPUs were labeled as 486DX. Computers sold with 486SX processors often came with a math coprocessor socket for an optional 80487 coprocessor. The 80487 was a fully-functioning 486DX that took over both chips' entire functions.

Later 486 processors did add a feature that is still an essential part of modern microprocessors. That is clock multiplying. Early 486 processors could work at clock speeds up to 33 MHz. However, the 486DX2 introduced clock doubling. The 486DX2-66 ran on a 33 MHz motherboard (33 MHz front-side bus) but was clocked at 66 MHz internally. The fastest 486DX2 ran on a 50 MHz motherboard and itself ran at 100 MHz.

The 486DX4 was a clock-tripled 486. The 486DX4-100 ran on a 33 MHz motherboard and was clocked at 99 MHz internally. AMD made a 486DX4-120 that ran on a 40 MHz motherboard and was clocked at 120 MHz internally.

Pentium

The next generation of Intel processors should have been the 586. However, after losing a trademark battle with AMD where the courts decided that numbers can't be trademarked, Intel decided to name the next-generation chip the Pentium. The first Pentium processor was introduced in 1993. The first Pentium ran at 50 MHz and was not multiplied. Later versions ran at motherboard speeds of up to 66 MHz (actually 66.5 MHz) and were clock-multiplied by factors up to 3.5 to achieve up to 233 MHz.

The main features added with the Pentium were 64-bit address and data buses (therefore working on 64 bits at a time) and a second instruction pipeline. The Pentium was able to operate on two threads[7] simultaneously, assuming the operating system was capable of using the second pipeline.

AMD produced a processor called the am5x86. This processor had some features of the Pentium but was installed on a 486 motherboard. It outperformed early Pentium processors.

The AMD version of the Pentium was the K5.

Pentium Pro

The Pentium Pro was Intel's sixth-generation microprocessor (sometimes unofficially called an i686). The Pentium Pro was, in many ways, a completely new processor. Among other improvements, it had a 12-stage pipeline that could work on two instructions of the same thread if the instructions were able to operate in parallel (such as the most significant byte and least significant byte in a math operation). The Pentium Pro also introduced a new technology called MMX.[8] This is a type of Single Instruction Multiple Data (SIMD) technology, which could perform a single instruction on a block of data rather than one byte or word at a time.

MMX

MMX actually preceded the Pentium Pro but became a standard feature with the Pentium Pro. MMX adds eight 64-bit-wide registers specifically for the processing of integer math. Each register is configured so that the processor can decide to process one 64-bit integer, two 32-bit integers, four 16-bit integers, or eight 8-bit integers.

3D-Now

AMD's answer to the Pentium Pro included 3D-Now. This short-lived processor instruction extension set enhanced MMX to allow the processor to render simple vectors in real time. It did this by augmenting the MMX registers to support common arithmetic functions fully (add/subtract/multiply/divide) and integer-only functions.

The AMD K6 was an approximate market competitor to the Pentium Pro, although the K6 was installed in Socket 7 rather than Pentium Pro's Socket 8.

Pentium II / Celeron



The Pentium II

 

The Pentium II was an improvement of the Pentium Pro. One of the significant improvements was that it included the CPU and L2 cache memory in a single module. The Pentium is installed in a slot connector rather than a socket. The Pentium II also handled 16-bit code better than the Pentium Pro.

The Celeron was essentially a Pentium II with lower speed and less L2 cache.[9] Since the Pentium II, each Intel processor has had a Celeron version. The Celeron line performs considerably less than the Pentium or other lines and targets budget computers.

AMD's answer to the Pentium II ultimately departed from their previous market strategy of cloning Intel processors. The AMD Athlon was slot-mounted like the Pentium II but did not fit Pentium II's Slot 1. Instead, it was installed in its own Slot A.[10] Just as Intel marketed a slower Pentium II with less cache as the Celeron, AMD marketed a low-performance version of the Athlon called the Duron.

Pentium III



Early Pentium III

Later Pentium III

The Pentium III included Streaming SIMD Extensions (SSE). This was Intel's answer to 3D-Now. It added 70 new instructions to work with floating point operations on blocks of data. Like the Pentium II, early Pentium IIIs installed in a slot. Later the L2 cache was moved to the processor die (chip), and the Pentium III was installed in a socket.

Pentium IV

The Pentium IV is the first seventh-generation Intel microprocessor using what Intel called Netburst architecture. It had a longer pipeline (20 stages as opposed to the typical 13 stages) than the Pentium III. This 20-stage pipeline actually reduced performance. However, the longer pipeline also allowed the Pentium IV to be clocked faster than the Pentium III, theoretically to 10 GHz, giving it an overall performance boost.

Another feature introduced with the Pentium IV was Hyperthreading. The longer instruction pipelines often have idle stages, and the Pentium IV can consolidate some of these stages into two more virtual pipelines. The virtual pipelines look like an extra processor core to an operating system that can handle multiple core processors.

The successor to the Pentium IV was the Pentium D. This was two CPUs in a single package. However, further development of the Pentium IV, NetBurst, and Hyperthreading was ended because the chips produced too much heat at the speeds demanded by consumers.

Pentium M

While Intel was mainly pressing forward with the Pentium IV technology, their laboratory in Israel began developing a less-power-hungry chip for portable computers based on the Pentium III. By making the entire CPU smaller, they reduced power consumption. This chip was called the Pentium M.

Intel Core

The next development was the Intel Core processor. This is an improvement of the Pentium III/Pentium M branch of the Intel processor family tree. The latest Intel processors, such as Core i3 through i9, Core Solo, Core Duo, etc., are all successors of the Pentium III/Pentium M branch. Current Pentium and Celeron processors are the less-powerful variants of this line. The Xeon processor is a high-end version marketed for servers and workstations.[11]

64-bit Architecture

In 2003 AMD introduced the Athlon 64, the first 64-bit processor targeted at the average consumer. 64-bit architecture adds the ability to address over 18 quintillion memory addresses. This extends the memory space beyond the 4G available with 32-bit addressing. Intel followed by licensing the technology from AMD and produced the IA-64. 64-bit versions of Windows, modern Unix-like operating systems, and application programs were developed to take advantage of the 64-bit architecture. 64-bit architecture is part of most modern processors.

Multiple Core Processors

AMDs answer to Hyperthreading was the Athlon 64 X2. This is a dual-core processor, essentially two processors in a single package. All modern desktop operating systems can handle the new multi-core processors.

Multiple-core processors are useful for programming where several threads can operate simultaneously. Network servers are prime candidates for these processors. Virtual computing also makes good use of multiple cores. Although virtual machines can be assigned one or more available cores, running one virtual machine per core is possible, making a single computer perform like four.

Virtualization

Another feature available with many modern processors is hardware virtualization. Processors with "virtualization extensions" can natively be shared among virtual machines; a single computer can act like several computers. Since network servers generally use only about 15% of their capacity, running several virtual computers as network servers on a single physical machine makes economic sense.

For virtualization to work, the processor, motherboard, hard drive controller, network adapter, etc., must be capable of virtualization.

On-die GPU and Northbridge

Another trend in modern processors is to include the functions generally done on the video card on the central processor die. Since many motherboards have onboard graphics controllers (GPUs), moving these functions closer to the CPU makes sense for greater efficiency. AMD markets Accelerated Processing Units (APUs) consisting of a CPU and GPU on the same die.

The Northbridge system connects the CPU to memory and high-speed expansion slots. The functions of the Northbridge are also being incorporated into some CPU dies.

Processor Speed

Up until about the time of the Pentium IV, the speed of microprocessors steadily increased with each generation. This speed has maxed out at approximately 4GHz (4,000MHz). Microprocessors can be made to run faster, but it takes extraordinary effort to keep them cool at such speeds. To increase performance at available speeds, processors now process more bits at a time (64-bit architecture), have multiple cores, more cache, etc. Other factors affecting a computer's overall speed are memory and mass storage. Slow RAM or a slow hard disk will cause a computer with a lightning-fast processor to perform poorly. Moving work away from the CPU to the GPU, using fast and powerful GPUs will also increase performance.

—————————
1Despite many claims to the contrary, the IBM PC never used the 8086.
2A microcontroller is a single-chip computers typically used for embedded systems.
3 A disk cache stores frequently-used data from the hard disk in ram where it can be accessed much faster.
4Expanded memory used a special memory board and associated driver software to make more memory than 1 MB available for data. It was not related to extended memory.
5A hack is exploiting something that makes hardware or software work in an unexpected but useful way.
6Whenever you start a command prompt in Windows, you are running a virtual 8086 machine.
7A thread is a sequence of machine language instructions. Most programs consist of multiple threads. Often these threads are independent enough that a multi-processor computer or multi-pipeline processor can execute multiple threads at the same time
8Despite what you may read or hear, MMX is not an initialism or acronym; it stands for nothing
9By this time most processors worked with three levels of cache. The L1 cache is part of the processor die, L2 cache is separate from the processor but physically close enough to work at ½ the processor speed. L3 cache is usually on the motherboard and works at the front side bus speed.
10Slot 1 and Slot A were actually the same physical connector but they were wired differently. They were also keyed differently so that you could not accidentally put the wrong processor in the slot.
11In this context, a workstation is a high-power computer used for special applications such as graphics or computer aided design.
Vocademy