This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:multiasm:papc:chapter_6_1 [2025/04/11 08:45] – [Pentium 4] ktokarz | en:multiasm:papc:chapter_6_1 [2025/12/18 13:44] (current) – ktokarz | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Evolution of x86 Processors ====== | ||
| + | The evolution of x86 processors began with the Intel 8086 microprocessor introduced in 1978. It is worth noting that the first IBM machines, the IBM PC and IBM XT, used the cheaper 8088 processor with an 8-bit data bus. The 8088 was software compatible with the 8086, but due to the use of an 8-bit external data bus, it allowed for a reduction in the overall computer cost. IBM later used the 8086 processors in personal computers named PS/2. Its successor, 80286, was used in the IBM AT personal computer, the extended version of the XT, and in the IBM PS/2 286 machine, which became the standard architecture for a variety of personal computers designed by many vendors. This started the history of personal computers based on the x86 family of processors. In this section, we will briefly describe the most important features and differences between models of x86 processors. | ||
| + | ===== 8086 ===== | ||
| + | The 8086 is a 16-bit processor, which means it uses 16-bit registers. With the use of the segmentation operating in so-called real addressing mode and a 20-bit address bus, it can access up to 1MB of memory. The base clocking frequency of this model is 5 - 10 MHz. It implements a three-stage instruction pipeline (loosely pipelined), which allows the execution of up to three instructions at the same time. In parallel to the processor, Intel designed a whole set of supporting integrated circuits, which made it possible to build the computer. One of these chips is 8087 - a math coprocessor known now as the Floating Point Unit. | ||
| + | |||
| + | ===== 80186 ===== | ||
| + | This model includes additional hardware units and is designed to reduce the number of integrated circuits required to build the computer. Its clock generator operates at 6 - 20 MHz. 80186 implements a few additional instructions. It's considered the faster version of the 8086. | ||
| + | |||
| + | ===== 80286 ===== | ||
| + | The 80286 has an extended 24-bit address bus and theoretically can use 16MB of memory. In this model, Intel tried to introduce protected memory management with a theoretical address space of 1 GB. Due to problems with compatibility and efficiency of execution of the software written for 8086, extended features were used by niche operating systems only, with IBM OS/2 as the most recognised. | ||
| + | |||
| + | ===== 80386 ===== | ||
| + | It is the first 32-bit processor designed by Intel for personal computers. It implements protected and virtual memory management that | ||
| + | was successfully used in operating systems, including Microsoft Windows. Architectural elements of the processor (registers, buses) are extended to 32 bits, which allows addressing up to 4GB of memory. 80386 extends the instruction pipeline with three stages, allowing for the execution of up to 6 instructions simultaneously. Although no internal cache was implemented, | ||
| + | |||
| + | ===== i486 ===== | ||
| + | It is an improved version of the i386 processor. Intel combined in one chip the main CPU and FPU (except i486SX version) and memory controller, including 8 or 16 kB of cache memory. The cache is 4-way associative, | ||
| + | |||
| + | < | ||
| + | Tightly pipelined means that all stages of the pipeline perform their duties within the same time period. | ||
| + | Loosely pipelined implies that some kind of buffer is used between pipeline stages to decouple the units and allow them to work more independently. | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Set-associative is the method of placing memory regions in the cache. It represents a compromise between the complexity of the design of the cache controller and flexibility. In general, more " | ||
| + | </ | ||
| + | ===== Pentium ===== | ||
| + | Pentium is a successor of the i486 processor. It is still a 32-bit processor but implements a dual integer pipeline, which makes it the first superscalar processor in the x86 family. I can operate with the clock frequency ranging from 60 to 200 MHz. An improved microarchitecture also includes a separate cache for instructions and data, and a branch prediction unit, which helps to reduce the influence of pipeline invalidation for conditional jump instructions. The cache memory is 8kB for instructions and 8kB for data, both 2-way associative. | ||
| + | |||
| + | ===== Pentium MMX ===== | ||
| + | Pentium MMX (MultiMedia Extension) is the first processor which implements the SIMD instructions. It uses FPU physical registers for 64-bit MMX vector operations. The clock speed is 120 - 233 MHz. Intel also decided to improve the cache memory as compared to the Pentium. Both instruction and data cache are twice as big (16kB), and they are 4-way associative. | ||
| + | |||
| + | < | ||
| + | SIMD stands for Single Instruction Multiple Data. Such instructions allow for performing the same operation on more than one data in a single instruction. Intel introduced such instructions in Pentium MMX and continued in further processors as SSE and AVX instructions, | ||
| + | </ | ||
| + | |||
| + | ===== Pentium Pro ===== | ||
| + | Pentium Pro implements a new architecture (P6) with many innovative units, organised in a 14-stage pipeline, which enhances the overall performance. The advanced instruction decoder generates micro-operations, | ||
| + | ===== Pentium II ===== | ||
| + | Pentium II is the processor based on experience gathered by Intel in the development of the previous Pentium Pro processor and the MMX extension to Pentium. Pentium II combines P6 architecture with SIMD instructions operating at a maximum of 450 MHz. The L1 cache size is increased to 32 KB (16 KB data + 16 KB instructions). Intel decided to exclude the L2 cache from the processor' | ||
| + | ===== Pentium III ===== | ||
| + | Pentium III is very similar to Pentium II. The main enhancement is the addition of the Streaming SIMD Extensions (SSE) instruction set to accelerate SIMD floating point calculations. Due to the enhancement of the production process, it was also possible to increase the clocking frequency to the range of 400 MHz to 1.4 GHz. | ||
| + | ===== Pentium 4 ===== | ||
| + | Pentium 4 is the last 32-bit processor developed by Intel. Some late models also implement 64-bit enhancement. It is based on NetBurst architecture, | ||
| + | |||
| + | ===== AMD Opteron ===== | ||
| + | Opteron is the first processor which supported the 64-bit instruction set architecture, | ||
| + | |||
| + | ===== Pentium D ===== | ||
| + | Pentium D is a multicore 64-bit processor based on the NetBurst architecture known from Pentium 4. Each unit implements two processor cores. | ||
| + | |||
| + | ===== Core Processors ===== | ||
| + | * Pentium Dual Core. | ||
| + | After facing problems with heat dissipation in processors based on the NetBurst microarchitecture, | ||
| + | * Core | ||
| + | All Intel Core processors are based on the Core microarchitecture. Intel uses different naming schemas for these processors. Initially, the names represented the number of physical processor cores in one chip; Core Duo has two physical processors, while Core Quad has four. | ||
| + | * Core 2 | ||
| + | Improved version of the Core microarchitecture. The naming schema is similar to the Core processors. | ||
| + | * Core i3, i5, i7 i9 | ||
| + | Intel changed the naming. Since then, there has been no strict information about the number of cores inside the chip. Name rather represents the overall processor' | ||
| + | * Core X and Core Ultra X | ||
| + | The newest (at the time of writing this book, introduced in 2023) naming drops the " | ||
| + | |||
| + | ===== The most important processors ===== | ||
| + | |||
| + | ^ Model ^ Year ^ Class ^ Address bus ^ Max memory | ||
| + | | 8086 | 1978 | 16-bit | ||
| + | | 80186 | 1982 | 16-bit | ||
| + | | 80286 | 1982 | 16-bit | ||
| + | | 80386 | 1985 | 32-bit | ||
| + | | i486 | 1989 | 32-bit | ||
| + | | Pentium | ||
| + | | Pentium MMX | 1996 | 32-bit | ||
| + | | Pentium Pro | 1995 | 32-bit | ||
| + | | Pentium II | 1997 | 32-bit | ||
| + | | Pentium III | 1999 | 32-bit | ||
| + | | Pentium 4 | 2000 | 32-bit | ||
| + | | AMD Opteron | ||
| + | | Pentium 4 Prescott | ||
| + | | Pentium D | 2005 | 64-bit | ||
| + | | Pentium Dual-Core | ||
| + | | Core 2 | 2006 | 64-bit | ||
| + | * in some models | ||