final ele of it 97
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