Systems Design and Programming

Instructor:
Chintan Patel

Text:
Barry B. Brey, 'The Intel Microprocessors, 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor, Pentium II, Pentium III and Pentium 4, Architecture, Programming and Interfacing' Sixth Edition, Prentice Hall (2003).
Supplementary text:
Muhammad Ali Mazidi and Janice Gillispie Mazidi, 'The 80x86 IBM PC and Compatible Computers (Volumes I&II), Assembly Language, Design, and Interfacing', Third Edition, Prentice Hall (2000).
Lab Text:
Bob Neveln, 'Linux Assembly Language Programming', Prentice Hall PTR.

Web:
http://www.cs.umbc.edu/~cpatel2

Course Description

This course covers:

n Intel 80x86 assembly language.
n Architecture of the Intel microprocessors.
n Hardware configuration and control of:
Common microprocessor support chips, e.g. Interrupt controller.
Popular I/O devices, e.g. UART, sound card.

Prerequisites:

n Experience with the C programming language.
n Some familiarity with Operating Systems, such as Windows.
n Experience with the Linux operating system.

Projects:

n Assembly Language Programming
n Hardware Project
80x86 Evolution

4004:
n 4-bit microprocessor.
n 4KB main memory.
n 45 instructions.
n PMOS technology.
n 50 KIPS
8008: (1971)
n 8-bit version of 4004.
n 16KB main memory.
n 48 instructions.
n NMOS technology.
8080: (1973)
n 8-bit microprocessor.
n 64KB main memory.
n 2 microseconds clock cycle time; 500,000 instructions/sec.
n 10X faster than 8008.

80x86 Evolution

8085: (1977)
n 8-bit microprocessor - upgraded version of the 8080.
n 64KB main memory.
n 1.3 microseconds clock cycle time; 769,230 instructions/sec.
n 246 instructions.
n Intel sold 100 million copies of this 8-bit microprocessor.
8086: (1978) 8088 (1979)
n 16-bit microprocessor.
n 1MB main memory.
n 2.5 MIPS (400 ns).
n 4- or 6-byte instruction cache.
n Other improvements included more registers and additional instructions.
80286: (1983)
n 16-bit microprocessor very similar in instruction set to the 8086.
n 16MB main memory.
n 4.0 MIPS (250 ns/8MHz).

80x86 Evolution

80386: (1986)
n 32-bit microprocessor.
n 4GB main memory.
n 12-33MHz.
n Memory management unit added.
n Variations: DX, EX, SL, SLC (cache) and SX.
80386SX: 16MB through a 16-bit data bus and 24 bit address bus.
80486: (1989)
n 32-bit microprocessor, 32-bit data bus and 32-bit address bus.
n 4GB main memory.
n 20-50MHz. Later at 66 and 100MHz
n Incorporated an 80386-like microprocessor, 80387-like floating point coprocessor and an 8K byte cache on one package.
n About half of the instructions executed in 1 clock instead of 2 on the 386.
n Variations: SX, DX2, DX4.
DX2: Double clocked version:
66MHz clock cycle time with memory transfers at 33MHz.
80x86 Evolution

Pentium: (1993)
n 32-bit microprocessor, 64-bit data bus and 32-bit address bus.
n 4GB main memory.
n 60, 66, 90MHz.
1-and-1/2 100MHz version.
Double clocked 120 and 133MHz versions.
Fastest version is the 233MHz (3-and-1/2 clocked version).
n 16KB L1 cache (split instruction/data: 8KB each).
n Memory transfers at 66MHz (instead of 33MHz).
n Dual integer processors.


80x86 Evolution

Pentium Pro: (1995)
n 32-bit microprocessor, 64-bit data bus and 36-bit address bus.
n 64GB main memory.
n Starts at 150MHz.
n 16KB L1 cache (split instruction/data: 8KB each).
n 256KB L2 cache.
n Memory transfers at 66MHz.
n 3 integer processors.


80x86 Evolution

Pentium II: (1997)
n 32-bit microprocessor, 64-bit data bus and 36-bit address bus.
n 64GB main memory.
n Starts at 266MHz.
n 32KB split instruction/data L1 caches (16KB each).
n Module integrated 512KB L2 cache (133MHz).
n Memory transfers at 66MHz to 100MHz (1998).


80x86 Evolution

Pentium III: (1999)
n 32-bit microprocessor, 64-bit data bus and 36-bit address bus.
n 64GB main memory.
n 800MHz and above.
n 32KB split instruction/data L1 caches (16KB each).
n On-chip 256KB L2 cache (at-speed).
n Memory transfers 100MHz to 133MHz.
n Dual Independent Bus (simultaneous L2 and system memory access).


80x86 Evolution

Pentium IV: (2002)
n 1.4 to 1.9GHz and the latest at 3.20 GHz and 3.46GHz (Hyper-Threading)!
n 1MB/512KB/256KB L2 cache.
n 800 MHz (about 6.4GB/s)/533 MHz (4.3 GB/s)/ 400MHz (3.2 GB/s) system bus.
n 1066 MHz front side bus just available.
n Specialized for streaming video, game and DVD applications (144 new SIMD 128-bit instructions).
n 0.13um, more than 55 million transistors, 60nm transistors.
n Newer ones are in 90nm transistors, more than 125 million possible.

Refer to the following URL for more details:
http://www.intel.com/design/pentium4/documentation.htm