08 December 2007

8086 Microprocessor


The 8086 is a 16-bit microprocessor chip designed by Intel in 1978, which gave rise to the x86 architecture. Intel 8088, released in 1979, was essentially the same chip, but with an external 8-bit data bus and is notable as the processor used in the original IBM PC.


Buses and operation


=> All internal registers as well as internal and external data buses are 16 bits wide, firmly establishing the "16-bit microprocessor" of the 8086.
=> A 20-bit external address bus gives a 1 MiB (segmented) physical address space

=>16-bit I/O addresses give 64 KiB of separate I/O space
=>The control pins carry the essential signals for all kinds of operations.


Intel 8086 microprocessor is a first member of x86 family of processors. The 8086 was not object code compatible with Intel 8080 and intel 8085. The 8086 has complete 16-bit architecture - 16-bit internal registers, 16-bit data bus, and 20-bit address bus .Because the processor has 16-bit index registers and memory pointers, it can effectively address only 64 KB of memory. To address memory beyond 64 KB the CPU uses segment registers - these registers specify memory locations for code, stack, data and extra data 64 KB segments. The segments can be positioned anywhere in memory, and user programs can change their position.


This addressing method has an advantage - it is very easy to write memory-independent code when the size of code, stack and data is smaller than 64 KB each.


The complexity of the code and programming increases when the size of stack, data and/code is larger than 64 KB. To support different variations of this awkward memory addressing scheme many 8086 compilers included 6 different memory models: tiny, small, compact, medium, large and huge. 64 KB direct addressing limitation was eliminated with the introduction of the 32-bit protected mode in Intel 80386 processor.
Intel 8086 instruction set includes a few very powerful string instructions. When these instructions are prefixed by REP instruction, the CPU will perform block operations - move block of data, compare data blocks, set data block to certain value, etc, that is one 8086 string instruction with a REP prefix could do as much as a 4-5 instruction loop on some other processors.
The 8086 microprocessor provides support for Intel 8087 numeric co-processor. The CPU recognizes all Floating-Point instructions. When the FP instructions reference the memory, the CPU calculates memory address and performs dummy memory read. The calculated address, and possibly read data, is captured by the FPU. After that the CPU proceeds to the next instruction, while the FPU executes the floating-point instruction. Thus, both integer and floating-point instructions can be executed concurrently.

Pentium Microprocessors


Pentium Microprocessors
The Pentium family of processors, which has its roots in the Intel486(TM) processor, uses the Intel486 instruction set .The term ''Pentium processor'' refers to a family of microprocessors that share a common architecture and instruction set. The first Pentium processors were introduced in 1993. This 5.0-V processor was fabricated in 0.8-micron bipolar complementary metal oxide semiconductor technology. The P5 processor runs at a clock frequency of either 60 or 66 MHz and has 3.1 million transistors.
The next version of the Pentium processor family, the P54C processor, was introduced in 1994. The P54C processors are fabricated in 3.3-V, 0.6-micron BiCMOS technology. The P54C processor also has System Management Mode for advanced power management
The Intel Pentium processor, like its predecessor the Intel486 microprocessor, is fully software compatible with the installed base of over 100 million compatible Intel architecture systems. In addition, the Intel Pentium processor provides new levels of performance to new and existing software through a reimplementation of the Intel 32-bit instruction set architecture using the latest, most advanced, design techniques. Optimized, dual execution units provide one-clock execution for core instructions, while advanced technology, such as superscalar architecture, branch prediction, and execution pipelining, enables multiple instructions to execute in parallel with high efficiency. Separate code and data caches combined with wide 128-bit and 256-bit internal data paths and a 64-bit, burstable, external bus allow these performance levels to be sustained in cost-effective systems.

The application of this advanced technology in the Intel Pentium processor brings state of the art performance and capability to existing Intel architecture software as well as new and advanced applications.
The Pentium processor has two primary operating modes and a system management mode. The operating mode determines which instructions and architectural features are accessible.
These modes are:

1)Protected Mode
This is the native state of the microprocessor. In this mode all instructions and architectural features are available, providing the highest performance and capability. This is the recommended mode that all new applications and operating systems should
target. Among the capabilities of protected mode is the ability to directly execute real-address mode 8086 software in a protected, multi-tasking environment. This feature is known as Virtual-8086 mode. Virtual-8086 mode is not actually a processor mode, it is an attribute which can be enabled for any task while in protected mode.

2) Real-Address Mode [Real mode]
This mode provides the programming environment of the Intel 8086 processor, with a few extensions .Reset initialization places the processor in real mode where, with a single instruction, it can switch to protected mode.


3) System Management Mode
The Pentium microprocessor provides support for System Management Mode (SMM). SMM is a standard architectural feature unique to all new Intel microprocessors, beginning with the Intel386 SL processor, which provides an operating-system and application independent and transparent mechanism to implement system power management and OEM differentiation features. SMM is entered through activation of an external interrupt pin (SMI#), which switches the CPU to a separate address space while saving the entire context of the CPU. SMM-specific code may then be executed transparently. The operation is reversed upon returning.

Advanced Features

The Pentium P54C processor is the product of a marriage between the Pentium processor's architecture and Intel's 0.6-micron, 3.3-V BiCMOS process The Pentium processor achieves higher performance than the fastest Intel486 processor by making use of the following advanced technologies.
a) Superscalar Execution: The Intel486 processor can execute only one instruction at a time. With superscalar execution, the Pentium processor can sometimes execute two instructions simultaneously.
b) Pipeline Architecture: Like the Intel486 processor, the Pentium processor executes instructions in five stages. This staging, or pipelining, allows the processor to overlap multiple instructions so that it takes less time to execute two instructions in a row. Because of its superscalar architecture, the Pentium processor has two independent processor pipelines.
c) Branch Target Buffer: The Pentium processor fetches the branch target instruction before it executes the branch instruction.
d)Dual 8-KB On-Chip Caches: The Pentium processor has two separate 8KB caches on chip--one for instructions and one for data--which allows the Pentium processor to fetch data and instructions from the cache simultaneously.
e)Write-Back Cache: When data is modified; only the data in the cache is changed. Memory data is changed only when the Pentium processor replaces the modified data in the cache with a different set of data
f) 64-Bit Bus: With its 64-bit-wide external data bus the Pentium processor can handle up to twice the data load of the Intel486 processor at the same clock frequency.
g)Instruction Optimization: The Pentium processor has been optimized to run critical instructions in fewer clock cycles than the Intel486 processor.
h) Floating-Point Optimization: The Pentium processor executes individual instructions faster through execution pipelining, which allows multiple floating-point instructions to be executed at the same time.
i) Pentium Extensions: The Pentium processor has fewer instruction set extensions than the Intel486 processors. The Pentium processor also has a set of extensions for multiprocessor operation. This makes a computer with multiple Pentium processors possible.
A Pentium system, with its wide, fast buses, advanced write-back cache/memory subsystem, and powerful processor, will deliver more power for today's software applications, and also optimize the performance of advanced 32-bit operating systems and 32-bit software applications.