2. Characteristics of Embedded Computing
• To provide sophisticated
• Complex Algorithms
• User Interface
• To meet deadlines
• Real time
• Multi rate
• Costs
• Manufacturing cost
• Power and Energy
3. Why use microprocessors?
Microprocessors are a very efficient
way to implement digital systems.
Microprocessors make it easier to design families of products
that can be built to provide various feature sets at different
price points and can be extended to provide new features to
keep up with rapidly changing markets.
4. Why use microprocessors?
Microprocessor executes program very efficiently. Some times
one instruction per cycle. Sometime several instructions per
cycle using multicore processor
Second, microprocessor manufacturers spend a great deal of
money to make their CPUs run very fast. They hire large
teams of designers to tweak every aspect of the
microprocessor to make it run at the highest possible speed.
5. Why use microprocessors?
• Microprocessors are a very efficient way to implement digital
systems.
• Microprocessors make it easier to design families of products
that can be built to provide various feature sets at different price
points and can be extended to provide new features to keep up
with rapidly changing markets.
• Microprocessor executes program very efficiently. Some times
one instruction per cycle. Sometime several instructions per
cycle using multicore processor
• Second, microprocessor manufacturers spend a great deal of
money to make their CPUs run very fast. They hire large teams
of designers to tweak every aspect of the microprocessor to
make it run at the highest possible speed.
6. Challenges in Embedded Computing
• How much hardware do we need?
• How do we meet deadlines?
• How do we minimize power consumption?
• How do we design for upgradability?
Does it really work?
• Complex testing
• Limited observability and controllability
• Restricted development environment
7. Performance in Embedded Computing
• CPU - The CPU clearly influences the behavior of the program,
particularly when the CPU is a pipelined processor with a cache.
• Platform: The platform includes the bus and I/O devices. The platform
components that surround the CPU are responsible for feeding the
CPU and can dramatically affect its performance.
• Program: Programs are very large and the CPU sees only a small
window of the program at a time. We must consider the structure of
the entire program to determine its overall behavior.
• Task: We generally run several programs simultaneously on a CPU,
creating a multitasking system. The tasks interact with each other in
ways that have profound implications for performance.
• Multiprocessor: Many embedded systems have more than one
processor— they may include multiple programmable CPUs as well as
accelerators.
8. Computer Specifications
Processor Core i7
Variant 7700
Clock Speed 3.6GHz
Cores 4/8
Cache 8MB
System Memory DDR4-2400, DDR3L-1600
Graphics Processor Intel HD Graphics 630
Hard Disk SSD
Ports RJ45, HDMI, USB, COM, ThunderBolt
Network Wi-Fi 802.11, Bluetooth
Bus Speed 8 GT/s
14. Computer Function
• Program Counter
• Contains the address of the next Instruction
• Instruction Register
• Contains the address of the current instruction
• Memory Buffer Register (MBR)
• contains the data to be written into memory or receives the data
read from memory.
• Memory Address Register (MAR)
• specifies the address in memory for the next read or write
15. Computer Function
• I/O Address register
• specifies a particular I/O device
• IO Buffer register
• is used for the exchange of data between an I/O module and the
CPU.
• Memory Module
• consists of a set of locations, defined by sequentially numbered
addresses.
• IO Module
• An I/O module transfers data from external devices to CPU and
memory, and vice versa. It contains internal buffers for temporarily
holding these data until they can be sent on..
16. Computer Function
• Processor-memory
• Data may be transferred from processor to memory or from memory to
processor.
• Processor-I/O
• Data may be transferred to or from a peripheral device by transferring
between the processor and an I/O module.
• Data processing
• The processor may perform some arithmetic or logic operation on data.
• Control
• An instruction may specify that the sequence of execution be altered. For
example, the processor may fetch an instruction from location 149, which
specifies that the next instruction be from location 182. The processor will
remember this fact by setting the program counter to 182.Thus, on the next
fetch cycle, the instruction will be fetched from location 182 rather than 150.
17. Family of Microcontrollers
Intel 4004
• first single-chip microprocessor
• Introduced November 15, 1971
• Clock rate 740 kHz
• 0.07 MIPS
• Bus Width 8 bits (multiplexed address/data due to limited pins)
• PMOS
• Number of Transistors 2,300 at 10 µm
• Addressable Memory 640 bytes
• Program Memory 4 KB (4 KB)
• One of the earliest Commercial Microprocessors
• Originally designed to be used in Busicom calculator
19. Family of Microcontrollers
• 8008
• Introduced April 1, 1972
• Clock rate 500 kHz (8008–1: 800 kHz)
• 0.05 MIPS
• Bus Width 8 bits (multiplexed address/data due to limited pins)
• Enhancement load PMOS logic
• Number of Transistors 3,500 at 10 µm
• Addressable memory 16 KB
• Typical in early 8 bit microcomputers, dumb terminals, general
calculators
• Developed in tandem with 4004
• Originally intended for use in the Datapoint 2200 microcomputer
• Key volume deployment in Texas Instruments 742
microcomputer in >3,000 Ford dealerships
20. Family of Microcontrollers
8080
• Introduced April 1, 1974
• Clock rate 2 MHz (very rare 8080B: 3 MHz)
• 0.64 MIPS
• Bus Width 8 bits data, 16 bits address
• Enhancement load NMOS logic
• Number of Transistors 6,000
• Assembly language downwards compatible with 8008.
• Addressable memory 64 KB
• Up to 10X the performance of the 8008
• Used in the Altair 8800, Traffic light controller, cruise missile
• Required six support chips versus 20 for the 8008
21. Family of Microcontrollers
8085
• Introduced March 1976
• Clock rate 3 MHz
• 0.37 MIPS
• Bus Width 8 bits data, 16 bits address
• Depletion load NMOS logic
• Number of Transistors 6,500 at 3 µm
• Binary compatible downwards with the 8080.
• Used in Toledo scales. Also was used as a computer peripheral
controller – modems, harddisks,printers, etc...
• CMOS 80C85 in Mars Sojourner, Radio Shack Model 100 portable.
• High level of integration, operating for the first time on a single 5 volt
power supply, from 12 volts previously. Also featured serial I/O,
3 maskable interrupts,1 Non-maskable interrupt,1 externally
expandable interrupt w/[8259],status,DMA.
22. Intel 8051
• The 8051 architecture provides many functions
(CPU, RAM, ROM, I/O, interrupt logic, timer, etc.) in a
single package
• 8-bit ALU, Accumulator and 8-bit Registers; hence it is an 8-
bit microcontroller
• 8-bit data bus – It can access 8 bits of data in one operation
• 16-bit address bus – It can access 216 memory locations –
64 KB (65536 locations) each of RAM and ROM
• On-chip RAM – 128 bytes (data memory)
• On-chip ROM – 4 Kbyte (program memory)
• Four byte bi-directional input/output port
• UART (serial port)
• Two 16-bit Counter/timers
• Interrupt priority
• Power saving mode (on some derivatives)
24. ARM
• Application Profile
• Application profiles implement a traditional ARM architecture with
multiple modes and support a virtual memory system architecture
based on an MMU. These profiles support both ARM and Thumb
instruction sets.
• Real Time Profile
• Real-time profiles implement a traditional ARM architecture with
multiple modes and support a protected memory system architecture
based on an MPU.
• Microcontroller Profile
• Microcontroller profiles implement a programmers' model designed for
fast interrupt processing, with hardware stacking of registers and
support for writing interrupt handlers in high-level languages. The
processor is designed for integration into an FPGA and is ideal for use
in very low power applications.