Sponsored Link

Showing posts with label The 16-bit processors. Show all posts
Showing posts with label The 16-bit processors. Show all posts

Thursday, October 16, 2008

INTEL 80286



The Intel 286[1],introduced on February 1, 1982, (originally named 80286, and also called iAPX 286 in the programmer's manual) was an x86 16-bit microprocessor with 134,000 transistors.

It was widely used in IBM PC compatible computers during the mid 1980s to early 1990s.

After the 6 and 8 MHz initial releases, it was subsequently scaled up to 12.5 MHz. (AMD and Harris later pushed the architecture to speeds as high as 20 MHz and 25 MHz, respectively.) On average, the 80286 had a speed of about 0.21 instructions per clock. [2] The 6 MHz model operated at 0.9 MIPS, the 10 MHz model at 1.5 MIPS, and the 12 MHz model at 1.8 MIPs.[3]

The 80286's performance was more than twice that of its predecessors (the Intel 8086 and Intel 8088) per clock cycle. In fact, the performance increase per clock cycle of the 80286 over its immediate predecessor may be the largest among the generations of x86 processors. Calculation of the more complex addressing modes (such as base+index) had less clock penalty because it was performed by a special circuit in the 286; the 8086, its predecessor, had to perform effective address calculation in the general ALU, taking many cycles. Also, complex mathematical operations (such as MUL/DIV) took fewer clock cycles compared to the 8086.

Having a 24-bit address bus, the 286 was able to address up to 16 MB of RAM, in contrast to 1 MB that the 8086 could directly access. While DOS could utilize this additional RAM (extended memory) via BIOS call (INT 15h, AH=87h), or as RAM disk, or emulation of expanded memory, cost and initial rarity of software utilizing extended memory meant that 286 computers were rarely equipped with more than a megabyte of RAM. As well, there was a performance penalty involved in accessing extended memory from real mode, as noted below.

The 286 was designed to run multitasking applications, including communications (such as automated PBXs), real-time process control, and multi-user systems.

The later E-stepping level of the 80286 was a very clean CPU, free of the several significant errata that caused problems for programmers and operating system writers in the earlier B-step and C-step CPUs (common in the AT and AT clones).

An interesting feature of this processor is that it was the first x86 processor with protected mode. Protected mode enabled up to 16 MB of memory to be addressed by the on-chip linear memory management unit (MMU) with 1 GB logical address space. The MMU also provided some degree of prevention from (crashed or ill-behaved) applications writing outside their allocated memory zones. However, the 286 could not revert to the basic 8086-compatible "real mode" without resetting the processor, which imposed a performance penalty (though some very clever programmers did figure out a way to re-enter real mode via a series of software instructions which would execute the reset while retaining active memory and control). The Intel 8042 keyboard controller at IBM PC/AT had a function to initiate a "soft boot" which resets a host CPU only.

This limitation led to Bill Gates famously referring to the 80286 as a 'brain dead chip'[4], since it was clear that the new Microsoft Windows environment would not be able to run multiple MS-DOS applications with the 286. It was arguably responsible for the split between Microsoft and IBM, since IBM insisted that OS/2, originally a joint venture between IBM and Microsoft, would run on a 286 (and in text mode). To be fair, when Intel designed the 286, it was not designed to be able to multitask real-mode applications; real mode was intended to be a simple way for a bootstrap loader to prepare the system and then switch to protected mode.

In theory, real mode applications could be directly executed in 16-bit protected mode if certain rules were followed; however, as many DOS programs broke those rules, protected mode was not widely used until the appearance of its successor, the 32-bit Intel 80386, which was designed to go back and forth between modes easily. See Protected Mode for more info.

The 80286 provided the first glimpse into the world of the protection mechanisms then exclusive to the world of mainframes and minicomputers which would pave the way for the x86 and the IBM PC architecture to extend from the personal computer all the way to high-end servers, drive the market for other architectures all the way down to only the highest-end servers and mainframes, and blur the differences between microcomputers and mainframes, a fact which presumably gave the IBM PC/AT its name.

Intel 80188

The Intel 80188 is a version of the Intel 80186 microprocessor with an 8 bit external data bus, instead of 16 bit. This makes it less expensive to connect to peripherals. Since the 80188 is very similar to the 80186, it had a throughput of 1 million instructions per second. [1]

As the 8086, the 80188 featured four 16-bit general registers, which could also be accessed as eight 8-bit registers. It also included six more 16-bit registers, which included, for example, the stack pointer, the instruction pointer, index registers, or a status word register that acted like a flag, for example, in comparison operations.

Just like the 8086, the processor also included four 16-bit segment registers that enabled the addressing of more than 64 KB of memory, which is the limit of a 16-bit architecture, by introducing an offset value that was added, after being shifted left 4 bits, to the value of another register. This addressing system provided a total of 1 MB of addressable memory, a value that, at the time, was considered to be very far away from the total memory a computer would ever need.

Intel 80186

The 80186 is a microprocessor that was developed by Intel circa 1982. The 80186 was an improvement on the Intel 8086 and Intel 8088. As with the 8086, it had a 16-bit external bus and was also available as the Intel 80188, with an 8-bit external data bus. The initial clock rate of the 80186 and 80188 was 6 MHz, but due to more hardware (in place of microcode) some of the individual instructions ran 10-20 times faster than on an 8086 at the same clock frequency. On the average, it ran at 1 million instructions per second. [1]

They were generally used as embedded processors (roughly comparable to microcontrollers). They were not used in many personal computers, but there were some notable exceptions: the Wang Office Assistant, marketed as a pc-like stand-alone word processor which used a subset of their WP Plus word processing program; the Mindset; the Siemens PC-D [2] (Siemens' first DOS PC line, which ran MS-DOS v2.11 even though their hardware was not 100% IBM PC-compatible); the Compis (a Swedish school computer); the RM Nimbus (a British school computer); the Unisys ICON (a Canadian school computer); ORB Computer by ABS; the HP 200lx; the Tandy 2000 desktop (a somewhat PC-compatible workstation featuring particularly sharp graphics for its day); and the Philips :YES. Another British computer manufacturer, Acorn, created a plug-in second processor that contained the 80188 chip along with assorted support chips and 512 KB of RAM – hence the Master 512 system.

One major function of the 80186/80188 series was to reduce the number of chips required by including features such as a DMA controller, interrupt controller, timers, and chip select logic.

New instructions were introduced as follows:

ENTER Make stack frame for procedure parameters
LEAVE High-level procedure exit
PUSHA Push all general registers
POPA Pop all general registers
BOUND Check array index against bounds
UD2 Generate invalid opcode exception
INS Input from port to string
OUTS Output string to port

Intel 8088

The Intel 8088 is an Intel x86 microprocessor based on the 8086, with 16-bit registers and an 8-bit external data bus. It can address up to 1 MB of memory. The 8088 was introduced on July 1, 1979, and was used in the original IBM PC.

The 8088 was targeted at economical systems by allowing the use of 8-bit designs. Large bus width circuit boards were still fairly expensive when it was released. The prefetch queue of the 8088 was shortened to four bytes (as opposed to the 8086's six bytes) and the prefetch algorithm slightly modified to adapt to the narrower bus.

Variants of the 8088 with more than 5 MHz maximum clock frequency, include the 8088-2, which was fabricated in Intels new enhanced nMOS process called HMOS and specified for a maximum frequency of 8 MHz. Later followed the 80C88, a fully static CMOS design, which could operate from DC to 8 MHz. There were also several other, more or less similar, variants from other manufacturers. For instance, the V20 was a slightly faster pin compatible variant of the 8088.

The descendants of the 8088 include the 80188, 80186, 80286, 80386, and 80486 microprocessors which are still in use today. See below for a more complete list.

The most influential microcomputer to use the 8088 was, by far, the IBM PC. The original PC processor ran at a clock frequency of 4.77 MHz (4/3 the NTSC colorburst frequency of 3.579545 MHz). Depending on the model, the Intel 8088 ranged from 0.33 to 0.75 million instructions per second. [1]

Some of IBM's engineers wanted to use the Motorola 68000[citation needed], and it was used later in the IBM Instruments 9000 Laboratory Computer, but IBM already had rights to manufacture the 8086 family, in exchange for giving Intel the rights to its bubble memory designs. A factor for using the 8-bit Intel 8088 version was that it could use existing Intel 8085-type components, and allowed the computer to be based on a modified 8085 design. 68000 components were not widely available at the time, though it could use Motorola 6800 components to an extent. Intel bubble memory was on the market for a while, but Intel left the market due to fierce competition from Japanese corporations who could undercut by cost, and left the memory market to focus on processors.

Intel 8086

The 8086[1] is a 16-bit microprocessor chip designed by Intel and introduced on the market 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 (allowing the use of cheaper and fewer supporting logic chips[2]), and is notable as the processor used in the original IBM PC.


Background

In 1972, Intel launched the 8008, the first 8-bit microprocessor[3]. It implemented an instruction set designed by Datapoint corporation with programmable CRT terminals in mind, that also proved to be fairly general purpose. The device needed several additional ICs to produce a functional computer, in part due to its small 18-pin "memory-package" which prevented a separate address bus (Intel was primarily a DRAM manufacturer at the time).

Two years later, in 1974, Intel launched the 8080[4], employing the new 40-pin DIL packages originally developed for calculator ICs to enable a separate address bus. It had an extended instruction set that was source- (not binary-) compatible with the 8008 and also included some 16-bit instructions to make programming easier. The 8080 device, often described as the first truly useful microprocessor, was nonetheless soon replaced by the 8085 which could cope with a single 5V power supply instead of the three voltages of earlier chips.[5] Other well known 8-bit microprocessors that emerged during these years were Motorola 6800 (1974), Microchip PIC16X (1975), MOS Technology 6502 (1975), Zilog Z80 (1976), and Motorola 6809 (1977), as well as others.

The first x86 design

The 8086 was originally intended as a temporary substitute for the ambitious iAPX 432 project in an attempt to draw attention from the less-delayed 16 and 32-bit processors of other manufacturers (such as Motorola, Zilog, and National Semiconductor) and at the same time to top the successful Z80 (designed by former Intel employees). Both the architecture and the physical chip were therefore developed quickly (in a little more than two years[6]), using the same basic microarchitecture elements and physical implementation techniques as employed for the one year earlier 8085, which it would also function as a continuation of. Marketed as source compatible, it was designed so that assembly language for the 8085, 8080, or 8008 could be automatically converted into equivalent (sub-optimal) 8086 source code, with little or no hand-editing. This was possible because the programming model and instruction set was (loosely) based on the 8085. However, the 8086 design was expanded to support full 16-bit processing, instead of the fairly basic 16-bit capabilities of the 8080/8085. New kinds of instructions were added as well; self-repeating operations and instructions to better support nested ALGOL-family languages such as Pascal, among others.

The 8086 was sequenced[7] using a mix of random logic and microcode and was implemented using depletion load nMOS circuitry with approximately 20,000 active transistors (29,000 counting all ROM and PLA sites). It was soon moved to a new refined nMOS manufacturing process called HMOS (for High performance MOS) that Intel originally developed for manufacturing of fast static RAM products[8]. This was followed by HMOS-II, HMOS-III, and eventually a CMOS version. The original chip measured 33 mm² and minimum feature size was 3.2 μm.

The architecture was defined by Stephen P. Morse and Bruce Ravenel. Peter A.Stoll was lead engineer of the development team and William Pohlman the manager. While less known than the 8088 chip, the legacy of the 8086 is enduring; references to it can still be found on most modern computers in the form of the Vendor entry for all Intel device IDs which is "8086". It also lent its last two digits to Intel's later extended versions of the design, such as the 286 and the 386, all of which eventually became known as the x86 family.