final ele of it 97

Upload: harprit-singh

Post on 10-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Final ele of IT 97

    1/15

    MICROPROCESSORS

    Term Paper

    Submitted in partial fulfillment of the award of the degree of

    MASTERS OF BUISNESS ADMINISTRATION

    (Information Technology)

    Submitted By:-

    Harprit Singh (A63)

    Manish kumar (B40)

    Irfan Ali (A61)

    1

  • 8/8/2019 Final ele of IT 97

    2/15

    S.No. Topic Page

    1 Introduction 3

    2 History 3

    3 Microprocessors Work 5

    4Intel 8085

    7

    5 85 Family 9

    6 Intel 8086 10

    7 Microcomputers using the 8086 16

    8Bibliography

    17

    2

  • 8/8/2019 Final ele of IT 97

    3/15

    Introduction

    The microprocessor is the heart of any normal computer, whether it is a desktop machine, a

    server or a laptop. The microprocessor you are using might be a Pentium, a K6, a PowerPC, a

    Sparc, an AMD or any of the many other brands and types of microprocessors, but they all do

    approximately the same thing in approximately the same way.

    A microprocessor -- also known as a CP U or central processing unit -- is a complete

    computation engine that is fabricated on a single chip. The first microprocessor was the Intel

    4004, introduced in 1971. The 4004 was not very powerful -- all it could do was add and

    subtract, and it could only do that 4 bits at a time. But it was amazing that everything was on one

    chip. Prior to the 4004, engineers built computers either from collections of chips or from

    discrete components (transistors wired one at a time). The 4004 powered one of the first portable

    electronic calculators.

    In other words we can say that microprocessor is a computer processor on a microchip. It'ssometimes called a logic chip. It is the "engine" that goes into motion when you turn your

    computer on. A microprocessor is designed to perform arithmetic and logic operations that make

    use of small number-holding areas called registers. Typical microprocessor operations include

    adding, subtracting, comparing two numbers, and fetching numbers from one area to another.

    These operations are the result of a set of instructions that are part of the microprocessor design.

    History

    Microprocessor Design and Architecture

    Microprocessors are fabricated using techniques similar to those used for other integrated

    circuits, such as memory chips. Microprocessors generally have a more complex structure than

    do other chips, and their manufacture requires extremely precise techniques. The first step in

    producing a microprocessor is the creation of an ultra pure silicon substrate, a silicon slice in the

    shape of a round wafer that is polished to a mirror-like smoothness. At present, the largest wafersused in industry are 300 mm (12 in) in diameter. Economical manufacturing of microprocessors

    requires mass production. Several hundred dies, or circuit patterns, are created on the surface of a

    silicon wafer simultaneously. Microprocessors are constructed 8 by a process of deposition and

    removal of conducting, insulating, and semi conducting materials one thin layer at a time until,

    after hundreds of separate steps, a complex sandwich is constructed that contains all the

    interconnected circuitry of the microprocessor. Only the outer surface of the silicon wafera

    3

  • 8/8/2019 Final ele of IT 97

    4/15

    layer about 10 microns (about 0.01 mm/0.0004 in) thick, or about one-tenth the thickness of a

    human hairis used for the electronic circuit. The processing steps include substrate creation,

    oxidation, lithography, etching, ion implantation, and film deposition. In the oxidation step, an

    electrically no conducting layer, called a dielectric, is placed between each conductive layer on

    the wafer. The most important type of dielectric is silicon dioxide, which is grown by exposing

    the silicon wafer to oxygen in a furnace at about 1000C (about 1800F). The oxygen combines

    with the silicon to form a thin layer of oxide about 75 angstroms deep (an angstrom is one ten-

    billionth of a meter). Nearly every layer that is deposited on the wafer must be patterned

    accurately into the shape of the transistors and other electronic elements. Usually this is done in a

    process known as photolithography, which is analogous to transforming the wafer into a piece of

    photographic film and projecting a picture of the circuit on it. A coating on the surface of the

    wafer, called the photo resist or resist, changes when exposed to light, making it easy to dissolve

    in a 9 developing solution. These patterns are as small as 0.13 microns in size. Because the

    shortest wavelength of visible light is about 0.5 microns, short-wavelength ultraviolet light must

    be used to resolve the tiny details of the patterns. After photolithography, the wafer is etchedthat is, the resist is removed from the wafer either by chemicals, in a process known as wet

    etching, or by exposure to a corrosive gas, in a special vacuum chamber In the next step of the

    process, ion implantation, also called doping, impurities such as boron and phosphorus are

    introduced into the silicon to alter its conductivity. This is accomplished by ionizing the boron or

    phosphorus atoms and propelling them at the wafer with an ion implanter at very high energies.

    The ions become embedded in the surface of the wafer. The thin layers used to build up a

    microprocessor are referred to as films. In the final step of the process, the films are deposited

    using sputterers in which thin films are grown in a plasma; by means of evaporation, whereby

    the material is melted and then evaporated coating the wafer; or by means of chemical-vapor

    deposition, whereby the material condenses from a gas at low or atmospheric pressure. In eachcase, the film must be of high purity and its thickness must be controlled within a small fraction

    of a micron.

    Microprocessor features are so small and precise that a single speck of dust 10 can destroy an

    entire die. The rooms used for microprocessor creation are called clean rooms because the air in

    them is extremely well filtered and virtually free of dust. The purest of today's clean rooms are

    referred to, as class 1, indicating that there is no more than one speck of dust per cubic foot of

    air. A basic difference between a microprocessor and other logic chips is the functional

    flexibility afforded by the microprocessors programmable nature. Its instruction set comprises

    the group of available low-level operations. Each instruction has a specific binary pattern, oroperation code. This operation code specifies the operation as well as the location of the

    operands. A programmer uses sequences of these low-level instructions to create a desired

    higher-level function. Therefore the personality of a microprocessor-based system can be readily

    modified without the hardware modifications usually associated with non-programmable logic

    systems. A typical microprocessor chip set includes an instruction control unit, one or more

    functional units, a set of register, and one or more caches. Conceptually, the instruction control

    4

  • 8/8/2019 Final ele of IT 97

    5/15

    unit fetches an instruction from main memory, interprets the operation code, and then dispatches

    the instruction to a functional unite. The functional unit may again interpret the operation 11

    code, read the required operands from the register or memory perform the specified operation

    and store the result in either the register set or memory. Then the process repeats, with the

    instruction control unite fetching the next instruction. A powerful aspect of programmability

    arises from the ability to specify which instruction will be executed next; selection is often based

    on the outcome of a test involving computed results. For performance reasons, implementations

    commonly segment the instruction processing into stages and allow multiple instructions to

    overlap, each executing in a different pipeline stage. High-end designs dispatch multiple

    instructions each processor cycle. Since main memory access times are relatively slow, smaller,

    faster memory units are frequently employed to cache recently used portions of main memory,

    creating a memory hierarchy. These caches are typically an order of magnitude faster than main

    memory. Separate caches may be used for instruction and data, or a unified cache may hold

    both. Multiple levels of cache are how a popular solution to the performance problems created

    by the increasing gap between processor and memory speeds.

    How Microprocessors Work ?

    microprocessor to do its work. The microprocessor is the heart of any normal computer,

    whether it is adesktop machine, aserveror a laptop. The microprocessor you are using might be

    a Pentium, a K6, a PowerPC, a Sparc or any of the many other brands and types ofmicroprocessors, but they all do approximately the same thing in approximately the same way.

    A microprocessor -- also known as a CPU or central processing unit -- is a complete

    computation engine that is fabricated on a single chip. The first microprocessor was the Intel4004, introduced in 1971. The 4004 was not very powerful -- all it could do was add and

    subtract, and it could only do that 4bits at a time. But it was amazing that everything was on one

    chip. Prior to the 4004, engineers built computers either from collections of chips or fromdiscrete components (transistors wired one at a time). The 4004 powered one of the first portable

    electronic calculators.

    5

    http://computer.howstuffworks.com/pc.htmhttp://computer.howstuffworks.com/pc.htmhttp://computer.howstuffworks.com/web-server.htmhttp://computer.howstuffworks.com/web-server.htmhttp://computer.howstuffworks.com/laptop.htmhttp://computer.howstuffworks.com/bytes.htmhttp://computer.howstuffworks.com/diode2.htmhttp://computer.howstuffworks.com/web-server.htmhttp://computer.howstuffworks.com/laptop.htmhttp://computer.howstuffworks.com/bytes.htmhttp://computer.howstuffworks.com/diode2.htmhttp://computer.howstuffworks.com/pc.htm
  • 8/8/2019 Final ele of IT 97

    6/15

    6

  • 8/8/2019 Final ele of IT 97

    7/15

    INTEL 8085

    The Intel 8085 is an 8-bitmicroprocessorintroduced by Intel in 1977. It was binary-compatiblewith the more-famous Intel 8080but required less supporting hardware, thus allowing simpler

    and less expensive microcomputersystems to be built.The "5" in the model number came from

    the fact that the 8085 required only a +5-volt (V) power supply rather than the +5V, -5V and+12V supplies the 8080 needed. Both processors were sometimes used in computers running the

    CP/M operating system, and the 8085 later saw use as a microcontroller(much by virtue of its

    component count reducing feature). Both designs were eclipsed for desktop computers by thecompatible but more capable Zilog Z80, which took over most of the CP/M computer market as

    well as taking a large share of the booming home computermarket in the early-to-mid-1980s.

    The 8085 had a very long life as a controller. Once designed into such products as the DECtapecontroller and the VT100 video terminal in the late 1970s, it continued to serve for new

    production throughout the life span of those products (generally many times longer than the new

    manufacture lifespan of desktop computers).

    Description

    i8085 microarchitecture.

    The 8085 is a conventional von Neumann design based on the Intel 8080. Unlike the 8080 it

    had no state signals multiplexed onto the data bus, but the 8-bit data bus was insteadmultiplexed with the lower part of the 16-bit address bus (in order to limit the number of pins

    to 40). The processor was designed using nMOS circuitry and the later "H" versions were

    implemented in Intel's enhanced nMOS process called HMOS, originally developed for faststatic RAM products. The 8085 used approximately 6,500 transistors. The 8085 incorporated

    the functionality of the 8224 (clock generator) and the 8228 (system controller), increasing the

    level of integration. A downside compared to similar contemporary designs (such as the Z80)was the fact that the buses required demultiplexing, however, address latches in the Intel 8155,

    8355, and 8755 memory chips allowed a direct interface, so an 8085 along with these chips

    was almost a complete system.

    The 8085 had extensions to support new interrupts: It had three maskable interrupts (RST7.5, RST 6.5 and RST 5.5), one Non-Maskable interrupt (TRAP), and one externally

    serviced interrupt (INTR). The RST n.5 interrupts refer to actual pins on the processor-afeature which permitted simple systems to avoid the cost of a separate interrupt controller.

    Like the 8080, the 8085 could accommodate slower memories through externally generated waitstates (pin 35, READY), and had provisions forDirect Memory Access (DMA) using HOLD and

    HLDA signals (pins 39 and 38). An improvement over the 8080 was that the 8085 can itself

    drive apiezoelectric crystal directly connected to it, and a built in clock generator generates theinternal high amplitude two-phase clock signals at half the crystal frequency (a 6.14 MHz crystal

    would yield a 3.07 MHz clock for instance).

    7

    http://en.wikipedia.org/wiki/8-bithttp://en.wikipedia.org/wiki/Microprocessorhttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/Intel_8080http://en.wikipedia.org/wiki/Microcomputerhttp://en.wikipedia.org/wiki/Volthttp://en.wikipedia.org/wiki/CP/M_operating_systemhttp://en.wikipedia.org/wiki/Microcontrollerhttp://en.wikipedia.org/wiki/Zilog_Z80http://en.wikipedia.org/wiki/Home_computerhttp://en.wikipedia.org/wiki/DECtapehttp://en.wikipedia.org/wiki/VT100http://en.wikipedia.org/wiki/Von_Neumann_architecturehttp://en.wikipedia.org/wiki/Data_bushttp://en.wikipedia.org/wiki/Address_bushttp://en.wikipedia.org/wiki/Transistorhttp://en.wikipedia.org/wiki/Transistorhttp://en.wikipedia.org/wiki/Non-Maskable_interrupthttp://en.wikipedia.org/wiki/Wait_statehttp://en.wikipedia.org/wiki/Wait_statehttp://en.wikipedia.org/wiki/Direct_Memory_Accesshttp://en.wikipedia.org/wiki/Piezoelectric_crystalhttp://en.wikipedia.org/wiki/8-bithttp://en.wikipedia.org/wiki/Microprocessorhttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/Intel_8080http://en.wikipedia.org/wiki/Microcomputerhttp://en.wikipedia.org/wiki/Volthttp://en.wikipedia.org/wiki/CP/M_operating_systemhttp://en.wikipedia.org/wiki/Microcontrollerhttp://en.wikipedia.org/wiki/Zilog_Z80http://en.wikipedia.org/wiki/Home_computerhttp://en.wikipedia.org/wiki/DECtapehttp://en.wikipedia.org/wiki/VT100http://en.wikipedia.org/wiki/Von_Neumann_architecturehttp://en.wikipedia.org/wiki/Data_bushttp://en.wikipedia.org/wiki/Address_bushttp://en.wikipedia.org/wiki/Transistorhttp://en.wikipedia.org/wiki/Non-Maskable_interrupthttp://en.wikipedia.org/wiki/Wait_statehttp://en.wikipedia.org/wiki/Wait_statehttp://en.wikipedia.org/wiki/Direct_Memory_Accesshttp://en.wikipedia.org/wiki/Piezoelectric_crystal
  • 8/8/2019 Final ele of IT 97

    8/15

    Programming model

    With a slighly higher integration and a single 5V power (using depletion mode load nMOS),the 8085 was abinary compatible follow up on the 8080, the successor to the original Intel 8008.

    The 8080 and 8085 used the same basic instruction set as the 8008 (developed by Computer

    Terminal Corporation) and they were source code compatible with their predecessor. However,the 8080 added several useful and handy 16-bit operations above the 8008 instruction set,

    while the 8085 added only a few relatively minor instructions above the 8080 set.

    Registers

    The processor had seven 8-bit registers, (A, B, C, D, E, H, and L) where A was the 8-bit

    accumulator and the other six could be used as either byte-registers or as three 16-bit register

    pairs (BC, DE, HL) depending on the particular instruction. Some instructions also enabled HL

    to be used as (a limited) 16-bit accumulator. It also had a 16-bit stack pointer to memory

    (replacing the 8008's internal stack), and a 16-bitprogram counter.

    Commands/instructions

    Like in many other 8-bit processors, all instructions were encoded in a single byte (including

    register-numbers, but excluding immediate data), for simplicity. Some of them were followed by

    one or two bytes of data, which could be an immediate operand, a memory address, or a port

    number. Like larger processors, it had automatic CALL and RET instructions for multi-level procedure calls and returns (which could even be conditionally executed, like jumps) and

    instructions to save and restore any 16-bit register-pair on the machine stack. There were also

    eight one-byte call instructions (RST) for subroutines located at the fixed addresses 00h, 08h,10h,...,38h. These were intended to be supplied by external hardware in order to invoke a

    corresponding interrupt-service routine, but were also often employed as fast system calls. The

    most sophisticated command was XTHL, which was used for exchanging the register pair HL

    with the value stored at the address indicated by the stack pointer.

    8-bit instructions

    Most 8-bit operations could only be performed on the 8-bit accumulator (the A register). For

    dyadic 8-bit operations, the other operand could be either an immediate value, another 8-bit

    register, or a memory cell addressed by the 16-bit register pair HL. Direct copying was supportedbetween any two 8-bit registers and between any 8-bit register and a HL-addressed memory cell.

    Due to the regular encoding of the MOV-instruction (using a quarter of available opcode space)

    there were redundant codes to copy a register into itself (MOV B,B, for instance), which was oflittle use, except for delays. However, what would have been a copy from the HL-addressed cell

    into itself (i.e., MOV M,M) was instead used to encode the HLT instruction (halting execution

    until an external reset or interrupt).

    16-bit operations

    Although the 8085 was generally an 8-bit processor, it also had limited abilities to perform 16-bitoperations: Any of the three 16-bit register pairs (BC, DE, HL) or SP could be loaded with an

    immediate 16-bit value (using LXI), incremented or decremented (using INX and DCX), or

    added to HL (using DAD). The XCHG operation exchanged the values of HL and DE. By

    8

    http://en.wikipedia.org/wiki/Binary_compatiblehttp://en.wikipedia.org/wiki/Intel_8008http://en.wikipedia.org/wiki/Instruction_sethttp://en.wikipedia.org/wiki/Computer_Terminal_Corporationhttp://en.wikipedia.org/wiki/Computer_Terminal_Corporationhttp://en.wikipedia.org/wiki/Source_code_compatibilityhttp://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Stack-based_memory_allocationhttp://en.wikipedia.org/wiki/Stack_(data_structure)http://en.wikipedia.org/wiki/Program_counterhttp://en.wikipedia.org/wiki/Program_counterhttp://en.wikipedia.org/wiki/Accumulator_(computing)http://en.wikipedia.org/wiki/Dyadichttp://en.wikipedia.org/wiki/HLThttp://en.wikipedia.org/wiki/Binary_compatiblehttp://en.wikipedia.org/wiki/Intel_8008http://en.wikipedia.org/wiki/Instruction_sethttp://en.wikipedia.org/wiki/Computer_Terminal_Corporationhttp://en.wikipedia.org/wiki/Computer_Terminal_Corporationhttp://en.wikipedia.org/wiki/Source_code_compatibilityhttp://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Stack-based_memory_allocationhttp://en.wikipedia.org/wiki/Stack_(data_structure)http://en.wikipedia.org/wiki/Program_counterhttp://en.wikipedia.org/wiki/Accumulator_(computing)http://en.wikipedia.org/wiki/Dyadichttp://en.wikipedia.org/wiki/HLT
  • 8/8/2019 Final ele of IT 97

    9/15

    adding HL to itself, it was possible to achieve the same result as a 16-bit arithmetical left shift

    with one instruction. The only 16 bit instructions that affect any flag is DAD, which sets the CY

    (carry) flag in order to allow for programmed 24-bit or 32-bit arithmetics (or larger), needed toimplement floating point arithmetics, for instance.

    Input/output scheme

    The 8085 supported up to 256 input/output (I/O) ports, accessed via dedicated I/O instructions

    taking port addresses as operands. This I/O mapping scheme was regarded as an advantage, as it

    freed up the processor's limited address space. Many CPU architectures instead use a commonaddress space without the need for dedicated I/O instructions, although a drawback in such

    designs may be that special hardware must be used to insert wait states as peripherals are often

    slower than memory. However, in some simple 8080 computers, I/O was indeed addressed as ifthey were memory cells, "memory mapped", leaving the I/O commands unused. I/O addressing

    could also sometimes employ the fact that the processor would output the same 8-bit port address

    to both the lower and the higher address byte (i.e. IN 05h would put the address 0505h on the 16-bit address bus). Similar I/O-port schemes were used in the 8080-compatible Zilog Z80 as well

    as the closely related x86 families of microprocessors.

    Development system

    Intel produced a series of development systems for the 8080 and 8085, known as the Personal

    Development System. The original PDS was a large box (in the Intel corporate blue colour)which included a CPU and monitor, and used 8 inch floppy disks. It ran the ISIS operating

    system and could also operate an emulatorpod and EPROM programmer. The later iPDS was a

    much more portable unit featuring a small green screen and a 5 inch floppy disk drive, and ranthe ISIS-II operating system. It could also accept a second 8085 processor, allowing a limited

    form of multi-processor operation where both CPUs shared the screen, keyboard and floppy diskdrive. In addition to an 8080/8085 assembler, Intel produced a number of compilers includingPL/M-80 and Pascal languages, and a set of tools for linking and statically locating programs to

    enable them to be burnt into EPROMs and used in embedded systems. The hardware support

    changes were announced and supported, but the software upgrades were not supported by the

    assembler, user manual or any other means. At times it was claimed they were not tested whenthat was false.

    Applications

    For the extensive use of 8085 in various applications, the microprocessor is provided with an

    instruction set which consists of various instructions such as MOV, ADD, SUB, JMP etc. Theseinstructions are written in the form of a program which is used to perform various operations

    such as branching, addition, subtraction, bitwise logical andbit shift operations. More complex

    operations and other arithmetic operations must be implemented in software. For example,multiplication is implemented using a multiplication algorithm.

    The 8085 processor has found marginal use in small scale computers up to the 21st century. The

    TRS-80 Model 100 line uses a 80C85. The CMOS version 80C85 of the NMOS/HMOS 8085 processor has/had several manufacturers, and some versions (eg. Tundra Semiconductor

    9

    http://en.wikipedia.org/wiki/Arithmeticshttp://en.wikipedia.org/wiki/Floating_point_arithmetichttp://en.wikipedia.org/wiki/Input/outputhttp://en.wikipedia.org/w/index.php?title=ISIS_(operating_system)&action=edit&redlink=1http://en.wikipedia.org/wiki/Emulatorhttp://en.wikipedia.org/wiki/EPROMhttp://en.wikipedia.org/wiki/CPUhttp://en.wikipedia.org/wiki/PL/Mhttp://en.wikipedia.org/wiki/Pascal_programming_languagehttp://en.wikipedia.org/wiki/EPROMhttp://en.wikipedia.org/wiki/Embedded_systemhttp://en.wikipedia.org/wiki/Bitwise_operationhttp://en.wikipedia.org/wiki/Bit_shiftinghttp://en.wikipedia.org/wiki/Multiplication_algorithmhttp://en.wikipedia.org/wiki/TRS-80_Model_100_linehttp://en.wikipedia.org/wiki/CMOShttp://en.wikipedia.org/wiki/Arithmeticshttp://en.wikipedia.org/wiki/Floating_point_arithmetichttp://en.wikipedia.org/wiki/Input/outputhttp://en.wikipedia.org/w/index.php?title=ISIS_(operating_system)&action=edit&redlink=1http://en.wikipedia.org/wiki/Emulatorhttp://en.wikipedia.org/wiki/EPROMhttp://en.wikipedia.org/wiki/CPUhttp://en.wikipedia.org/wiki/PL/Mhttp://en.wikipedia.org/wiki/Pascal_programming_languagehttp://en.wikipedia.org/wiki/EPROMhttp://en.wikipedia.org/wiki/Embedded_systemhttp://en.wikipedia.org/wiki/Bitwise_operationhttp://en.wikipedia.org/wiki/Bit_shiftinghttp://en.wikipedia.org/wiki/Multiplication_algorithmhttp://en.wikipedia.org/wiki/TRS-80_Model_100_linehttp://en.wikipedia.org/wiki/CMOS
  • 8/8/2019 Final ele of IT 97

    10/15

    Corporation's CA80C85B) have additional functionality, eg. extra machine code instructions.

    One niche application for the rad-hard version of the 8085 has been in on-board instrument data

    processors for severalNASA and ESA space physics missions in the 1990s and early 2000s,including CRRES, Polar, FAST,Cluster,HESSI,Sojourner (rover)[2], and THEMIS. The Swiss

    company SAIA used the 8085 and the 8085-2 as the CPUs of their PCA1 line ofprogrammable

    logic controllers during the 1980s.

    MCS-85 Family

    The 8085 CPU was only one part of a much larger family of chips developed by Intel, for

    building a complete system. Although the 8085 CPU itself was not a great success, many of

    these support chips (or their descendents) later found their use in combination with the 8086

    microprocessor. For example, the original IBM PC based on the Intel 8088processor used manyof these chips, and the prominence ofIBM PC compatibles is why many of these chips are still

    in use today, although not as the chips themselves, but with their equivalent functionality

    embedded into largerVLSI chips, namely the "Southbridge" chips of modern PCs.

    INTEL 8086

    A microprocessor introduced by Intel in 1978. The 8086 chip had a full 16-bit data bus

    structure.While introduced at the same time as the Intel 8088 and was a better processor, the

    8086 was not picked for the first IBMpersonal computers because of the difficulty of building16-bit accessories versus 8-bit accessories which the 8088 supported.The 8086 is a 16-bit

    microprocessorchip designed by Intel and introduced on the market in 1978, which gave rise to

    the x86 architecture. The Intel 8088, released in 1979, was a slightly modified chip with anexternal 8-bit data bus (allowing the use of cheaper and fewer supporting logic chips, and isnotable as the processor used in the original IBM PC

    10

    http://en.wikipedia.org/wiki/Rad-hardhttp://en.wikipedia.org/wiki/NASAhttp://en.wikipedia.org/wiki/ESAhttp://en.wikipedia.org/wiki/CRREShttp://en.wikipedia.org/wiki/Polar_(satellite)http://en.wikipedia.org/w/index.php?title=FAST_(satellite)&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Cluster_(satellite)&action=edit&redlink=1http://en.wikipedia.org/wiki/HESSIhttp://en.wikipedia.org/wiki/Sojourner_(rover)http://en.wikipedia.org/wiki/Sojourner_(rover)http://mpfwww.jpl.nasa.gov/rover/descrip.htmlhttp://en.wikipedia.org/wiki/THEMIS_(satellite)http://en.wikipedia.org/wiki/Programmable_logic_controllerhttp://en.wikipedia.org/wiki/Programmable_logic_controllerhttp://en.wikipedia.org/wiki/Intel_8086http://en.wikipedia.org/wiki/Intel_8088http://en.wikipedia.org/wiki/IBM_PC_compatibleshttp://en.wikipedia.org/wiki/Very-large-scale_integrationhttp://en.wikipedia.org/wiki/Southbridge_(computing)http://www.cknow.com/cms/ckinfo/ibm---international-business-machines.htmlhttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/Microprocessorhttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/X86_architecturehttp://en.wikipedia.org/wiki/Intel_8088http://en.wikipedia.org/wiki/Bus_(computing)http://en.wikipedia.org/wiki/IBM_PChttp://en.wikipedia.org/wiki/File:KL_USSR_KP1810BM86.jpghttp://en.wikipedia.org/wiki/Rad-hardhttp://en.wikipedia.org/wiki/NASAhttp://en.wikipedia.org/wiki/ESAhttp://en.wikipedia.org/wiki/CRREShttp://en.wikipedia.org/wiki/Polar_(satellite)http://en.wikipedia.org/w/index.php?title=FAST_(satellite)&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Cluster_(satellite)&action=edit&redlink=1http://en.wikipedia.org/wiki/HESSIhttp://en.wikipedia.org/wiki/Sojourner_(rover)http://mpfwww.jpl.nasa.gov/rover/descrip.htmlhttp://en.wikipedia.org/wiki/THEMIS_(satellite)http://en.wikipedia.org/wiki/Programmable_logic_controllerhttp://en.wikipedia.org/wiki/Programmable_logic_controllerhttp://en.wikipedia.org/wiki/Intel_8086http://en.wikipedia.org/wiki/Intel_8088http://en.wikipedia.org/wiki/IBM_PC_compatibleshttp://en.wikipedia.org/wiki/Very-large-scale_integrationhttp://en.wikipedia.org/wiki/Southbridge_(computing)http://www.cknow.com/cms/ckinfo/ibm---international-business-machines.htmlhttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/Microprocessorhttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/X86_architecturehttp://en.wikipedia.org/wiki/Intel_8088http://en.wikipedia.org/wiki/Bus_(computing)http://en.wikipedia.org/wiki/IBM_PC
  • 8/8/2019 Final ele of IT 97

    11/15

    Block diagram over Intel 8088 (a variant of 8086).

    11

    http://en.wikipedia.org/wiki/File:Intel_8086_block_scheme.svghttp://en.wikipedia.org/wiki/File:Intel_8086_block_scheme.svg
  • 8/8/2019 Final ele of IT 97

    12/15

    Main registers

    AH AL AX (primary accumulator)

    BH BL BX (base, accumulator)

    CH CL CX (counter, accumulator)

    DH DL DX (accumulator, other functions)

    Index registers

    SI Source Index

    DI Destination Index

    BP Base Pointer

    SP StackPointer

    Status register

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (bit position)

    - - - - O D I T S Z - A - P - C Flags

    Segment register

    CS Code Segment

    DS Data Segment

    ES ExtraSegment

    SS StackSegment

    Instruction pointer

    IP Instruction Pointer

    Buses and operation

    All internal registers as well as internal and external data buses were 16 bits wide, firmly

    12

  • 8/8/2019 Final ele of IT 97

    13/15

    establishing the "16-bit microprocessor" identity of the 8086. A 20-bit external address bus gave

    an 1 MB (segmented) physical address space (220 = 1,048,576). The data bus was multiplexed

    with the address bus in order to fit a standard 40-pin dual in-line package. 16-bit I/O addressesmeant 64 KB of separate I/O space (216 = 65,536). The maximum linear address space was

    limited to 64 KB, simply because internal registers were only 16 bits wide. Programming over 64

    KB boundaries involved adjusting segment registers (see below) and was therefore fairlyawkward (and remained so until the 80386).

    Some of the control pins, which carry essential signals for all external operations, had more than

    one function depending upon whether the device was operated in "min" or "max" mode. The

    former was intended for small single processor systems whilst the latter was for medium or largesystems, using more than one processor.

    Registers and instructions

    The 8086 had eight 16-bit registers including the stack pointer, but excluding the instruction

    pointer, flag register and segment registers. Four of them (AX,BX,CX,DX) could also beaccessed as (twice as many) 8-bit registers (AH,AL,BH,BL, etc), the other four (BP,SI,DI,SP)

    were 16-bit only.Due to a compact encoding inspired by 8085 and other 8-bit processors, most instructions were

    one-address or two-address operations which means that the result were stored in one of theoperands. At most one of the operands could be in memory, but this memory operand could also

    be the destination, while the other operand, the source, could be either register or immediate. A

    single memory location could also often be used as both source and destination which, amongother factors, further contributed to a code density comparable to (often better than) most eight bit

    machines.

    Although the degree of generality of most registers were much greater than in the 8080 or 8085, it

    was still fairly low compared to the typical contemporary minicomputer, and registers were alsosometimes used implicitly by instructions. While perfectly sensible for the assembly programmer,

    this complicated register allocation for compilers compared to more regular 16- and 32-bitprocessors (such as the PDP-11, VAX, 68000, etc); on the other hand, compared to contemporary8-bit microprocessors (such as the 8085, or 6502), it was significantly easier to generate code for

    the 8086 design.

    As mentioned above 8086 also featured 64 KB of 8-bit (or alternatively 32 K-word of 16-bit) I/O

    space. A 64 KB (one segment) stackgrowing towards lower addresses is supported by hardware;2-byte words are pushed to the stack and the stack top (bottom) is pointed out by SS:SP. There

    are 256 interrupts, which can be invoked by both hardware and software. The interrupts can

    cascade, using the stack to store the return address.

    The processor had some new instructions (not present in the 8085) to better support stack based

    high level programming languages such as Pascal and PL/M; some of the more useful ones werepush mem-op, and ret size, supporting the "pascal calling convention". (Several others, such aspush immed and enter, would be added in the subsequent 80186, 80286, and 80386 designs.)

    Flags

    8086 has a 16bit flag register. Out of these, 9 are active, and indicate the current state of the

    processor. These are Carry flag, Parity flag, Auxiliary flag, Zero flag, Sign flag, Trap flag or

    Trace flag, Interrupt enable flag, Direction flag and Overflow flag.

    13

    http://en.wikipedia.org/wiki/Megabytehttp://en.wikipedia.org/wiki/Multiplexedhttp://en.wikipedia.org/wiki/Dual_in-line_packagehttp://en.wikipedia.org/wiki/KBhttp://en.wikipedia.org/wiki/80386http://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Stack-based_memory_allocationhttp://en.wikipedia.org/wiki/Instruction_set#Code_densityhttp://en.wikipedia.org/wiki/Minicomputerhttp://en.wikipedia.org/wiki/PDP-11http://en.wikipedia.org/wiki/DEC_VAXhttp://en.wikipedia.org/wiki/68000http://en.wikipedia.org/wiki/I/Ohttp://en.wikipedia.org/wiki/Stack_(data_structure)http://en.wikipedia.org/wiki/Hardwarehttp://en.wikipedia.org/wiki/Interrupthttp://en.wikipedia.org/wiki/Return_addresshttp://en.wikipedia.org/wiki/PL/Mhttp://en.wikipedia.org/wiki/Bithttp://en.wikipedia.org/wiki/Flag_registerhttp://en.wikipedia.org/wiki/Carry_flaghttp://en.wikipedia.org/wiki/Parity_flaghttp://en.wikipedia.org/wiki/Auxiliary_flaghttp://en.wikipedia.org/wiki/Zero_flaghttp://en.wikipedia.org/wiki/Sign_flaghttp://en.wikipedia.org/wiki/Trap_flaghttp://en.wikipedia.org/w/index.php?title=Trace_flag&action=edit&redlink=1http://en.wikipedia.org/wiki/Interrupthttp://en.wikipedia.org/wiki/Direction_flaghttp://en.wikipedia.org/wiki/Overflow_flaghttp://en.wikipedia.org/wiki/Megabytehttp://en.wikipedia.org/wiki/Multiplexedhttp://en.wikipedia.org/wiki/Dual_in-line_packagehttp://en.wikipedia.org/wiki/KBhttp://en.wikipedia.org/wiki/80386http://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Stack-based_memory_allocationhttp://en.wikipedia.org/wiki/Instruction_set#Code_densityhttp://en.wikipedia.org/wiki/Minicomputerhttp://en.wikipedia.org/wiki/PDP-11http://en.wikipedia.org/wiki/DEC_VAXhttp://en.wikipedia.org/wiki/68000http://en.wikipedia.org/wiki/I/Ohttp://en.wikipedia.org/wiki/Stack_(data_structure)http://en.wikipedia.org/wiki/Hardwarehttp://en.wikipedia.org/wiki/Interrupthttp://en.wikipedia.org/wiki/Return_addresshttp://en.wikipedia.org/wiki/PL/Mhttp://en.wikipedia.org/wiki/Bithttp://en.wikipedia.org/wiki/Flag_registerhttp://en.wikipedia.org/wiki/Carry_flaghttp://en.wikipedia.org/wiki/Parity_flaghttp://en.wikipedia.org/wiki/Auxiliary_flaghttp://en.wikipedia.org/wiki/Zero_flaghttp://en.wikipedia.org/wiki/Sign_flaghttp://en.wikipedia.org/wiki/Trap_flaghttp://en.wikipedia.org/w/index.php?title=Trace_flag&action=edit&redlink=1http://en.wikipedia.org/wiki/Interrupthttp://en.wikipedia.org/wiki/Direction_flaghttp://en.wikipedia.org/wiki/Overflow_flag
  • 8/8/2019 Final ele of IT 97

    14/15

    Segmentation

    There were also four sixteen-bit segment registers (CS, DS, SS, ES) that allowed the CPU to

    access one megabyte of memory in an unusual way. Rather than concatenating the segment

    register with the address register, as in most processors whose address space exceeded their

    register size, the 8086 shifted the 16-bit segment only 4 bits left before adding it to the 16-bitoffset (16segment + offset), therefore producing a 20-bit effective (or physical or external)

    address from the 32-bit segment:offset pair. As a result, each physical address could be referredto by 212 = 4096 different segment:offset pairs. Althouh considered complicated and cumbersome

    by many programmers, this scheme also had advantages; a small program (less than 64 kilobytes)

    could be loaded starting at a fixed offset (such as 0) in its own segment, avoiding the need for

    relocation, with at most 15 bytes of alignment waste. The 16-byte separation between segmentbases was called a paragraph.

    Compilers for the 8086-family commonly supported two types ofpointer, near and far. Near

    pointers were 16-bit addresses implicitly associated with the program's code and/or data segmentand so made sense only within parts of a program small enough to fit in one segment. Far pointers

    were 32-bit segment:offset pairs (resolving to 20-bit real addresses). Some compilers alsosupported huge pointers, which were like far pointers except that pointer arithmetic on a hugepointer treated it as a linear 20-bit pointer, while pointer arithmetic on a far pointerwrapped

    around within its initial 64-kilobyte segment.

    To avoid the need to specify near and far on every pointer and every function which took or

    returned a pointer, compilers also supported "memory models" which specified default pointersizes. The "small", "compact", "medium", and "large" models covered every combination of near

    and far pointers for code and data. The "tiny" model was like "small" except that code and data

    shared one segment. The "huge" model was like "large" except that all pointers were huge instead

    of far by default. Precompiled libraries often came in several versions compiled for differentmemory models.

    In principle the address space of the x86 series could have been extended in later processors byincreasing the shift value, as long as applications obtained their segments from the operatingsystem and did not make assumptions about the equivalence of different segment:offset pairs. In

    practice the use of "huge" pointers and similar mechanisms was widespread, and though some

    80186 clones did change the shift value, these were never commonly used in desktop computers.

    According to Morse et al., the designers of the 8086 considered using a shift of eight bits insteadof four, which would have given the processor a 16-megabyte address space.

    Subsequent expansion

    The 80286'sprotected mode extended the processor's address space to 224 bytes (16 megabytes),

    but not by increasing the shift value. Instead, the 16-bit segment registers supply an index into atable of 24-bit base addresses, to which the offset is added. To support old software the 80286

    also had a "real mode" in which address calculation mimicked the 8086. There was, however, one

    small difference: on the 8086 the address was truncated to 20 bits, while on the 80286 it was not.Thus real-mode pointers could refer to addresses between 100000 and 10FFEF (hexadecimal).

    This roughly 64-kilobyte region of memory was known as the High Memory Area, and later

    versions ofMS-DOS could use it to increase available low memory.

    The 80386 increased both the base address and the offset to 32 bits and introduced two moregeneral-purpose segment registers, FS and GS. The 80386 also introducedpaging. The segment

    14

    http://en.wikipedia.org/wiki/X86_memory_segmentationhttp://en.wikipedia.org/wiki/Central_processing_unithttp://en.wikipedia.org/wiki/Megabytehttp://en.wikipedia.org/wiki/Relocation_(computer_science)http://en.wikipedia.org/wiki/Pointer_(computing)http://en.wikipedia.org/wiki/Pointer_arithmetichttp://en.wikipedia.org/wiki/Integer_overflowhttp://en.wikipedia.org/wiki/Integer_overflowhttp://en.wikipedia.org/wiki/Intel_80286http://en.wikipedia.org/wiki/Protected_modehttp://en.wikipedia.org/wiki/High_Memory_Areahttp://en.wikipedia.org/wiki/MS-DOShttp://en.wikipedia.org/wiki/Intel_80386http://en.wikipedia.org/wiki/Virtual_memoryhttp://en.wikipedia.org/wiki/X86_memory_segmentationhttp://en.wikipedia.org/wiki/Central_processing_unithttp://en.wikipedia.org/wiki/Megabytehttp://en.wikipedia.org/wiki/Relocation_(computer_science)http://en.wikipedia.org/wiki/Pointer_(computing)http://en.wikipedia.org/wiki/Pointer_arithmetichttp://en.wikipedia.org/wiki/Integer_overflowhttp://en.wikipedia.org/wiki/Integer_overflowhttp://en.wikipedia.org/wiki/Intel_80286http://en.wikipedia.org/wiki/Protected_modehttp://en.wikipedia.org/wiki/High_Memory_Areahttp://en.wikipedia.org/wiki/MS-DOShttp://en.wikipedia.org/wiki/Intel_80386http://en.wikipedia.org/wiki/Virtual_memoryhttp://en.wikipedia.org/wiki/X86-64
  • 8/8/2019 Final ele of IT 97

    15/15

    Bibliography

    Tocci, Ronald J. Microprocessors and Microcomputers, (1987) Prentice Hall.

    Slater, Micheal . A Guide to RISC Microprocessors (1992).

    Gary H. Bernstein, Microprocessor, Britannica Encyclopedia.

    White, Steven W, ComputerArchitecture

    Wilson, J.A.Sam. Introduction to Microprocessor Theory)

    Scott Mueller, Upgrading and Repairing PCs, 17th Edition

    15

    http://en.wikipedia.org/wiki/8-bithttp://en.wikipedia.org/wiki/Concurrency_(computer_science)http://en.wikipedia.org/wiki/Concurrency_(computer_science)http://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Intel_8086#cite_note-10http://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Pipelininghttp://en.wikipedia.org/wiki/Pipelininghttp://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/80286http://en.wikipedia.org/wiki/80286http://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/Thread_(computer_science)http://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/8-bithttp://en.wikipedia.org/wiki/Application_Programming_Interfacehttp://en.wikipedia.org/wiki/CP/Mhttp://en.wikipedia.org/wiki/Intel_8086#cite_note-10http://en.wikipedia.org/wiki/Concurrency_(computer_science)http://en.wikipedia.org/wiki/Pipelininghttp://en.wikipedia.org/wiki/Processor_registerhttp://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/80186http://en.wikipedia.org/wiki/80286http://en.wikipedia.org/wiki/16-bithttp://en.wikipedia.org/wiki/Arithmetic_logic_unithttp://en.wikipedia.org/wiki/Orthogonalizationhttp://en.wikipedia.org/wiki/Operandhttp://en.wikipedia.org/wiki/Addressing_modehttp://en.wikipedia.org/wiki/Intel_8080http://en.wikipedia.org/wiki/Intel_8085http://en.wikipedia.org/wiki/Multiplexinghttp://en.wikipedia.org/wiki/Intel_80186http://en.wikipedia.org/wiki/Intel_80286http://en.wikipedia.org/wiki/Intel_80286