MP - Md. Atiqur Rahman Ahad
Download
Report
Transcript MP - Md. Atiqur Rahman Ahad
Microprocessor – Intro!
Md. Atiqur Rahman Ahad
Introduction to Microcontrollers
Parts of computer: CPU, memory, I/O
• CPU: Control and data path
• Memory: Stores instruction and data
• Input/output: Interact with the outside of
computers
Why Study Microprocessor
Design?
Why Study Microprocessor Design?
Sony Playstation 2000
° (as reported in Microprocessor Report, Vol 13, No. 5)
• Emotion Engine: 6.2 GFLOPS, 75 million polygons per second
• Graphics Synthesizer: 2.4 Billion pixels per second
• Claim: Toy Story realism brought to games!
Why Study Microprocessor Design?
Wireless Sensor Networks Platform
Power Metering Application
Microcontrollers vs Microprocessors
• A microprocessor is a CPU on a single
chip.
• If a microprocessor, its associated support
circuitry, memory and peripheral I/O
components are implemented on a single
chip, it is a microcontroller.
What is an Embedded System?
• A combination of computer hardware and
software, and perhaps additional mechanical
or other parts, designed to perform a dedicated
function.
• In some cases, embedded systems are part of a
larger system or product, as is the case of an
anti-lock braking system in a car. Contrast
with general-purpose computer.
• Examples range from washing machines,
cellular phones to missiles and space shuttles.
• Embedded Systems
– Operations managed behind the scenes by a
microcontroller
• Microcontroller (MCU)
– An integrated electronic computing device that
includes three major components on a single
chip
• Microprocessor (MPU)
• Memory
• I/O (Input/Output) ports
What is an Embedded System?
• Electronic devices that incorporate a
computer (usually a microprocessor) within
their implementation.
• A computer is used in such devices
primarily as a means to simplify the system
design and to provide flexibility.
• Often the user of the device is not even
aware that a computer is present.
Killer apps!
• Communications network routers, switches,
hubs.
• Children’s toys
• Fuel injection control, passenger environmental
controls, anti-lock braking systems,
• Air bag controls,
• GPS mapping.
• Automotive Navigation systems, automatic landing
systems, flight attitude controls,
• Engine controls, space exploration ……..
Where are the embedded devices?
• Instrumentations: Data collection, oscilloscopes,
signal generators, signal analyzers, power supplies.
• Industrial: Elevator controls, surveillance systems,
robots.
• Home: Dishwashers, microwave ovens, VCRs,
televisions, stereos, fire/security alarm systems,
lawn sprinkler controls, thermostats, cameras, clock
radios, answering machines.
• Printers, scanners, keyboards, displays, modems,
hard disk drives, CD-ROM drives.
Embedded Rocks!
• Embedded processors account for 100% of
worldwide microprocessor production!
• Embedded:desktop = 100:1
• Embedded Systems is a big, fast growing industry
$ 40 billions in 2000
$92.0 billion in 2008
$112.5 billion (estimated) by the end of 2013
• Embedded hardware was worth $89.8 billion in
2008 and is expected to reach $109.6 billion in
2013
• Embedded software generated $2.2 billion in
2008. This should increase to $2.9 billion in 2013
• Microprocessors/Microcontrollers are the core
of embedded systems.
http://www.bccresearch.com/report/embedded-systems-technologies-markets-ift016c.html
Computer Technology Dramatic Change
• Processor
– 2X in speed every 1.5 years;
100X performance in last decade
• Memory
– DRAM capacity: 2X / 2 years; 64X size in last
decade
– Cost per bit: improves about 25% per year
• Disk
– capacity: > 2X in size every 1.0 years
– Cost per bit: improves about 100% per year
– 250X size in last decade
Computer Technology Dramatic Change!
• State-of-the-art PC (at least…)
– Processor clock speed:
5000 MegaHertz
(5.0 GigaHertz)
– Memory capacity:
4000 MegaBytes
(4.0 GigaBytes)
– Disk capacity:
2000 GigaBytes
(2.0 TeraBytes)
– New units! Mega => Giga, Giga => Tera
(Kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta = 1024)
Kilo, Mega, etc. are incorrect Terminologies!
Microprocessors
are everywhere
in our life.
Microcontroller Components –
Memory
• Each memory location has
a specific address
• We must supply an address
to access the corresponding
location
• R/W allows us to select
reading or writing
• Various types of memory
for different functions and
speeds
Memory location 0
Memory location 1
address
data
Memory location n-2
Memory location n-1
r/w
Microcontroller Components –
Memory
• Read Only Memory - Memory that can only be read
– Holds the program code for a microprocessor used in an embedded
system where the code is always the same and is executed every
time the system is switched on
– Computer BIOS, boot-up information
• Other types of Read Only Memory
– Erasable Programmable Read Only Memory (EPROM) – Similar
to ROM but can be erased (exposure to ultraviolet light) and
reprogrammed
– Electrically Erasable Programmable Read Only Memory
(EEPROM) – more common that EPROM because it can be erased
by the microprocessor
– Flash Memory, Ferroelectric RAM (FRAM), Magnetic Random
Access Memory (MRAM)
Microcontroller Components –
Memory
• Random Access Memory – used to store dynamic data when processor
is running
– Holds program code and data during execution
– Can be accesses in any random order – unlike takes or disks
• Some types of RAM
– Static RAM (SRAM) – Uses transistors to store bits, fast SRAM is used
for cache
– Dynamic RAM (DRAM) – Uses capacitors to store bits, must be
refreshed, smaller and cheaper than SRAM
• Fast Page Mode (FPM), Extended Data Out (EDO)
• Synchrounous DRAM (SDRAM) – introduced in 1997 and replaced most
DRAM in computers by 2000
• Double Data Rate (DDR SDRAM) – uses both clock edges found today in
most computers
• Direct Rambus DRAM (RDRAM) – somewhat of a flop
Microcontroller Components – CPU
• Smart part
– Processes instructions and data
– All the parts of a microprocessor
• Registers – fast memory used to
store operands and other
information
– Condition register –
positive/negative result
– Exception register – overflow
condition
– Loop count register
• Load-store architecture
address
Register 0
Register 1
r/w
Register n-1
data
inst
ALU
CPU
Microcontroller Components – I/O
• Connection to the outside world
• Examples
–
–
–
–
Analog to Digital Converter
Temperature Sensor
Display
Communications Circuit
Microcontroller Components – BUS
• Group of wires used to transport information
• CPU to Memory
– Address bus
– Data bus
• CPU to I/O
– Port mapped I/O – used when address space is limited,
special instructions are needed for I/O
– Memory mapped I/O – I/O looks like memory
locations, easier to use and common in Reduced
Instruction Set Computing (RISC)
MPU-Based Systems
• System hardware
– Discrete components
• Microprocessor, Memory, and I/O
– Components connected by buses
• Address, Data, and Control
• System software
– A group of programs that monitors the
functions of the entire system
MPU-Based Time
and Temperature System
MCU-Based Systems
• Includes microprocessor, memory, I/O
ports, and support devices (such as timers)
on a single semiconductor chip
• Buses are generally not available to a
system designer
• I/O ports are generally multiplexed and can
be programmed to perform different
functions
MCU-Based Time
and Temperature System
Read -- Computer Architectures
• Princeton versus Harvard Architecture
• CISC versus RISC processors
• Microprocessors and Microcontrollers
Processor Performance
CPU Time
= # Cycles × Cycle Time
= # Instructions × CPI × Cycle Time
CPI: Cycles per instruction
Embedded System Programming
• Key factors in embedded programming
– Speed – timing constraints, limited processing power
– Code size – limited memory, power
• Programming methods
–
–
–
–
Machine Code – bits
Low level language – assembly
High level language – C, C++, Java
Application level language – Visual Basic, Access
• Levels of abstraction – factor out details to focus
on few concepts at a time
Embedded System Programming
• Why use C in embedded programming?
– Ease of management of large embedded projects
– Provides an additional level above assembly
programming
– Fairly efficient
– Supports access to I/O
• Why use assembly?
– High speed, low code size
– However, difficult to do a large project in assembly
• From various sources