intromp

download intromp

of 41

Transcript of intromp

  • 8/7/2019 intromp

    1/41

    1

    Microcontrollers and Introduction

    to Real-Time Programming

    Prof. Yusuf Leblebici

    Microelectronic Systems Laboratory (LSM)

    [email protected]

  • 8/7/2019 intromp

    2/41

    2

    Organization

    Introduction

    Goals of the Course

    Historical Perspective - Microprocessors

    Pre-history Last 30 years Today and tomorrow

    A Few Words on Embedded Systems

    The Technology Aspect: Moores Law

    ITRS Predictions

  • 8/7/2019 intromp

    3/41

    3

    Goals and Objectives

    In this course, you will:

    Learn how the hardware (HW) and software (SW)

    components of a microprocessor-based system

    work together to implement digital systems.

    Learn both HW and SW aspects of integrating

    digital devices (memory, I/O interfaces, etc.) into

    microprocessor / microcontroller systems.

    Get practical hands-on experience in system

    design and assembly language programming.

  • 8/7/2019 intromp

    4/41

    4

    Goals and Objectives

    Remember: There is always more than one way oflooking at things !

    Hardware Design

    Software Design

  • 8/7/2019 intromp

    5/41

    5

    Goals and Objectives

    In the classroom lectures, you will learn more about thehardware architecture aspects of microprocessors and

    microcontrollers, their internal building blocks, operation

    principles, interfacing with other digital systems etc

    In the laboratory sessions, you will learn more about the

    machine code and assembly language programming ofmicroprocessors / microcontrollers, and implementation

    of digital systems using these devices.

  • 8/7/2019 intromp

    6/41

    6

    Goals and Objectives

    The classroom lectures will be in English.

    The laboratory sessions and exercises will be in French.

    There will be regular handouts for reading:

    Book chapters

    Lecture slides

    Laboratory manuals

    etc

    Please follow the lectures regularly its important !

  • 8/7/2019 intromp

    7/41

    7

    Building Blocks of Digital Systems

    MEMORY

    DATAPATH

    CONTROL

    INPUT-OU

    TPUT

    Main question: How to implement these functions ?

  • 8/7/2019 intromp

    8/41

    8

    Computer Pre-history

    Charles Babbage

    Analytical Engine

    Started in 1834

    Never finished

  • 8/7/2019 intromp

    9/41

    9

    Computer History

    Eckert and Mauchly

    1st working electronic

    computer (1946)

    18,000 Vacuum tubes

    1,800 instructions/sec

    3,000 ft3

  • 8/7/2019 intromp

    10/41

    10

    Computer History

    Maurice Wilkes

    1st store program computer

    650 instructions/sec

    1,400 ft3

    http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/

    EDSAC 1 (1949)

    http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/
  • 8/7/2019 intromp

    11/41

    11

    1962 - 1972

    http://hrst.mit.edu/hrs/apollo/public/index.htm

  • 8/7/2019 intromp

    12/41

    12

  • 8/7/2019 intromp

    13/41

    13

    ApolloGuidance

    Computer

  • 8/7/2019 intromp

    14/41

    14

    Word length: 16 bits (15 bits data + parity bit)First computer using integrated circuits (ICs)

    Magnetic core memory

    Fixed memory (ROM): 36,864 wordsErasable memory (RAM): 2,048 words

    Number of instructions: 34

    Cycle time: 11.7 sec Clock frequency: 85 kHz (!)

    Number of logic gates: 5,600 (2,800 packages)Weight: 30 kg

    Power consumption: 70 W

    Apollo Guidance Computer (AGC)

  • 8/7/2019 intromp

    15/41

    15

    Intel 4004 Microprocessor

    Introduced in 1970 First microprocessor

    4 bit architecture !

    2,250 transistors

    12 mm2

    Clock: 108 kHz

  • 8/7/2019 intromp

    16/41

    16

    Intel 8085 Microprocessor

    Introduced in 1974

    8-bit architecture

    Still used in some

    microcontrollerapplications !

  • 8/7/2019 intromp

    17/41

    17

    Intel 8086 Microprocessor

    Introduced in 1979

    29,000 transistors

    33 mm2

    Clock: 5 MHz

    16 bit architecture

  • 8/7/2019 intromp

    18/41

    18

    Intel 386 Microprocessor

    Introduced in 1985

    275,000 transistors

    43 mm2

    Clock: 16 MHz

    32 bit architecture

  • 8/7/2019 intromp

    19/41

    19

    Intel 486 Microprocessor

    Introduced in 1989

    1,200,000 transistors

    81 mm2

    Clock: 25 MHz

    32 bit architecture

    1st pipelinedimplementation of IA32

  • 8/7/2019 intromp

    20/41

    20

    Intel Pentium Microprocessor

    Introduced in 1993

    3,100,000 transistors

    296 mm2

    Clock: 60 MHz

    32 bit architecture

    1st superscalar

    implementation of IA32

  • 8/7/2019 intromp

    21/41

    Pentium Processor Details

    State

    Registers

    Memory

    Control ROM

    Combinationallogic

    REG

  • 8/7/2019 intromp

    22/41

    22

    Intel Pentium III

    Introduced in 1999

    9,500,000 transistors

    125 mm2

    Clock: 450 MHz

    32 bit architecture

  • 8/7/2019 intromp

    23/41

    23

    DEC Alpha 21264

    Introduced in 1998

    15,200,000 transistors

    302 mm2

    Clock: 700 MHz

    64 bit architecture

    Still the highest performancecommercial microprocessor:

    SPEC-95fp

    Alpha 21264: 66Pentium III Xeon: 30.4

  • 8/7/2019 intromp

    24/41

    24

    Moores Law

    http://www.intel.com/research/silicon/mooreslaw.htm
  • 8/7/2019 intromp

    25/41

    25

    Dont think that the highest-performance

    processors are always found in a computer !!

    Sony Playstation II

    Chip designed by Toshiba

    Introduced in 1998

    10,500,000 transistors

    238 mm2

    Clock: 300 MHz

    128 bit architecture

    10 floating-point multiplier

    accumulators

    MPEG-2 decoder

    Multimedia processor

  • 8/7/2019 intromp

    26/41

    26

    Embedded Systems

    About four (!) percent of the worlds microprocessors are used in

    computers.Source: Embedded Systems Programming, May 1999

    Average car has about 15 microprocessors.

    Mercedes S-class: 63 microprocessors !!

    32-bit

    embedded

    microprocessors

    16-bit

    8-bit

    8-bit

    250 million

    1 billion

    1 billion

    1 billion

    125 million PCsIntel, AMD

    Motorola,

    ARM,

    MIPS,

    i960,

    x86,

    Only 4% of the

    total number

  • 8/7/2019 intromp

    27/41

    27

    New Direction: System-on-Chip (SoC)

    ASIC CoreMemory

    Embedded

    Processor

    Core

    Analog

    Functions

    Co

    mmu

    nic

    ati

    on

    SensorInterface

  • 8/7/2019 intromp

    28/41

    28

    Building Blocks of Digital Systems

    MEMORY

    DATAPATH

    CONTROL

    INPUT-OUTPUT

    Main question: How to implement these functions ?

    CPU

  • 8/7/2019 intromp

    29/41

    29

    Bus and CPU

    Bus: A shared group of wires used for communicating

    signals among devices

    address bus: the device and the location within the

    device that is being accessed data bus: the data value being communicated

    control bus: describes the action on the address and databuses

    CPU: Core of the processor, where instructions are executed

    High-level language: a = b + c Assembly language: add r1 r2 r3 Machine language: 0001001010111010101

  • 8/7/2019 intromp

    30/41

    30

    Memory and I/O

    Memory: Where instructions (programs) and data are stored

    Organized in arrays of locations (addresses), each storingone byte (8 bits) in general

    A readoperation to a particular location always returns the

    last value stored in that location

    I/O devices: Enable system to interact with the world Device interface (a.k.a. controller or adapter) hardware

    connects actual device to bus The CPU views the I/O device registers just like

    memory that can be accessed over the bus. However,

    I/O registers are connected to external wires, devicecontrol logic, etc.

    Reads may not return last value written Writes may have side effects

  • 8/7/2019 intromp

    31/41

    31

    Moores Law

    http://www.intel.com/research/silicon/mooreslaw.htm
  • 8/7/2019 intromp

    32/41

    32

  • 8/7/2019 intromp

    33/41

    33

    YEAR 2002 2005 2008 2011 2014

    TECHNOLOGY 130 nm 100 nm 70 nm 50 nm 35 nm

    CHIP SIZE 400 mm2

    600 mm2

    750 mm2

    800 mm2

    900 mm2

    NUMBER OFTRANSISTORS(LOGIC)

    400 M 1 Billion 3 Billion 6 Billion 16 Billion

    DRAMCAPACITY

    2 Gbits 10 Gbits 25 Gbits 70 Gbits 200 Gbits

    MAXIMUM

    CLOCKFREQUENCY

    1.6 GHz 2.0 GHz 2.5 GHz 3.0 GHz 3.5 GHz

    MINIMUMSUPPLYVOLTAGE

    1.5 V 1.2 V 0.9 V 0.6 V 0.6 V

    MAXIMUMPOWERDISSIPATION

    130 W 160 W 170 W 175 W 180 W

    MAXIMUMNUMBER OF

    I/O PINS

    2500 4000 4500 5500 6000

    ITRS - International Technology Roadmap for

    Semiconductors

    Predictions of the worldwide semiconductor / IC industry

    about its own future prospects...

  • 8/7/2019 intromp

    34/41

    34

    YEAR 2002 2005 2008 2011 2014

    TECHNOLOGY 130 nm 100 nm 70 nm 50 nm 35 nm

    CHIP SIZE 400 mm2

    600 mm2

    750 mm2

    800 mm2

    900 mm2

    NUMBER OFTRANSISTORS(LOGIC)

    400 M 1 Billion 3 Billion 6 Billion 16 Billion

    DRAMCAPACITY

    2 Gbits 10 Gbits 25 Gbits 70 Gbits 200 Gbits

    MAXIMUMCLOCKFREQUENCY

    1.6 GHz 2.0 GHz 2.5 GHz 3.0 GHz 3.5 GHz

    MINIMUMSUPPLYVOLTAGE

    1.5 V 1.2 V 0.9 V 0.6 V 0.6 V

    MAXIMUM

    POWERDISSIPATION

    130 W 160 W 170 W 175 W 180 W

    MAXIMUMNUMBER OFI/O PINS

    2500 4000 4500 5500 6000

    Shrinking Device Dimensions

  • 8/7/2019 intromp

    35/41

    35

    YEAR 2002 2005 2008 2011 2014

    TECHNOLOGY 130 nm 100 nm 70 nm 50 nm 35 nm

    CHIP SIZE 400 mm2

    600 mm2

    750 mm2

    800 mm2

    900 mm2

    NUMBER OFTRANSISTORS(LOGIC)

    400 M 1 Billion 3 Billion 6 Billion 16 Billion

    DRAMCAPACITY 2 Gbits 10 Gbits 25 Gbits 70 Gbits 200 Gbits

    MAXIMUMCLOCKFREQUENCY

    1.6 GHz 2.0 GHz 2.5 GHz 3.0 GHz 3.5 GHz

    MINIMUMSUPPLYVOLTAGE

    1.5 V 1.2 V 0.9 V 0.6 V 0.6 V

    MAXIMUM

    POWERDISSIPATION

    130 W 160 W 170 W 175 W 180 W

    MAXIMUMNUMBER OFI/O PINS

    2500 4000 4500 5500 6000

    Increasing Function Density

  • 8/7/2019 intromp

    36/41

    36

    YEAR 2002 2005 2008 2011 2014

    TECHNOLOGY 130 nm 100 nm 70 nm 50 nm 35 nm

    CHIP SIZE 400 mm2

    600 mm2

    750 mm2

    800 mm2

    900 mm2

    NUMBER OFTRANSISTORS(LOGIC)

    400 M 1 Billion 3 Billion 6 Billion 16 Billion

    DRAMCAPACITY

    2 Gbits 10 Gbits 25 Gbits 70 Gbits 200 Gbits

    MAXIMUMCLOCKFREQUENCY

    1.6 GHz 2.0 GHz 2.5 GHz 3.0 GHz 3.5 GHz

    MINIMUMSUPPLYVOLTAGE

    1.5 V 1.2 V 0.9 V 0.6 V 0.6 V

    MAXIMUM

    POWERDISSIPATION

    130 W 160 W 170 W 175 W 180 W

    MAXIMUMNUMBER OFI/O PINS

    2500 4000 4500 5500 6000

    Increasing Clock Frequency

  • 8/7/2019 intromp

    37/41

    37

    YEAR 2002 2005 2008 2011 2014

    TECHNOLOGY 130 nm 100 nm 70 nm 50 nm 35 nm

    CHIP SIZE 400 mm2

    600 mm2

    750 mm2

    800 mm2

    900 mm2

    NUMBER OFTRANSISTORS(LOGIC)

    400 M 1 Billion 3 Billion 6 Billion 16 Billion

    DRAMCAPACITY

    2 Gbits 10 Gbits 25 Gbits 70 Gbits 200 Gbits

    MAXIMUMCLOCKFREQUENCY

    1.6 GHz 2.0 GHz 2.5 GHz 3.0 GHz 3.5 GHz

    MINIMUMSUPPLYVOLTAGE

    1.5 V 1.2 V 0.9 V 0.6 V 0.6 V

    MAXIMUM

    POWERDISSIPATION 130 W 160 W 170 W 175 W 180 W

    MAXIMUMNUMBER OFI/O PINS

    2500 4000 4500 5500 6000

    Decreasing Supply Voltage

  • 8/7/2019 intromp

    38/41

    38

  • 8/7/2019 intromp

    39/41

    39

  • 8/7/2019 intromp

    40/41

    40

  • 8/7/2019 intromp

    41/41

    41

    Some Interesting WWW Links

    Great Microprocessors of the Past and Presenthttp://www3.sk.sympatico.ca/jbayko/cpu.html

    CPU Info Center

    http://bwrc.eecs.berkeley.edu/CIC/

    CPU Design HOW-TOhttp://www.linuxdoc.org/HOWTO/CPU-Design-HOWTO.html

    VLSI Microprocessors

    http://www.microprocessor.sscc.ru/

    Molecular Expressions Chip Shots Galleryhttp://micro.magnet.fsu.edu/chipshots/index.html