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