Presentation is loading. Please wait.

Presentation is loading. Please wait.

CYBERPHYSICAL SYSTEMS & EMBEDDED PROCESSORS EEN 417 Fall 2013 8/27/13, Dr. Eric Rozier, V1.0, ECE.

Similar presentations


Presentation on theme: "CYBERPHYSICAL SYSTEMS & EMBEDDED PROCESSORS EEN 417 Fall 2013 8/27/13, Dr. Eric Rozier, V1.0, ECE."— Presentation transcript:

1 CYBERPHYSICAL SYSTEMS & EMBEDDED PROCESSORS EEN 417 Fall /27/13, Dr. Eric Rozier, V1.0, ECE

2 CYBERPHYSICAL SYSTEMS

3 Model-Based Design

4 Cyber Physical Systems: Computational + Physical CPS is Multidisciplinary Computer Science: Carefully abstracts the physical world System Theory: Deals directly with physical quantities

5 Challenge

6 What this course is about A principled and scientific approach to engineering embedded systems – Modeling, Design, Implementation, Testing, Analysis – Not just hacking!

7 Traditionally, embedded systems has been an industrial (not academic) problem, about resource limitations. small memory small data word sizes relatively slow clocks When these are the key problems, emphasize efficiency: write software at a low level (in assembly code or C) avoid operating systems with a rich suite of services develop specialized computer architectures: –programmable DSPs –network processors develop specialized networks –Can, FlexRay, TTP/C, MOST, etc. This is how embedded SW has been designed for 30 years

8 But embedded systems do have more fundamental differences from general-purpose computation: time matters –“as fast as possible” is not good enough concurrency is intrinsic –it’s not an illusion (as in time sharing), and –it’s not (necessarily) about exploiting parallelism processor requirements can be specialized –predictable, repeatable timing –support for common operations (e.g. FIR filters) –need for specialized data types (fixed point, bit vectors) programs need to run (essentially) forever –memory usage has to be bounded (no leaks!!) –rebooting is not acceptable

9 What about “real time”? Make it faster! What if you need “absolutely positively on time”? Today, most embedded software engineers write code, build your system, and test for timing. Model-based design seeks to specify dynamic behavior (including timing) and “compile” implementations that meet the behavior.

10 Prioritize and Pray! Real-Time Multitasking? All too often, real-time operating systems (RTOSs) are used in a rather ad hoc way. Without any particular principles, engineers tweak priorities until the prototype works under test. The resulting system is brittle, meaning the small changes in the operating conditions (or in the design of the system) can cause big changes in behavior. For example, replacing the processor with a faster one can cause real-time failures.

11 An engineer’s responsibility Korean Air 747 in Guam, 200 deaths (1997) 30,000 deaths and 600,000 injuries from medical devices ( ) –perhaps 8% due to software? source: D. Jackson, M. Thomas, L. I. Millett, and the Committee on Certifiably Dependable Software Systems, "Software for Dependable Systems: Sufficient Evidence?," National Academies Press, May

12 A Story A “fly by wire” aircraft, expected to be made for 50 years, requires a 50-year stockpile of the hardware components that execute the software. All must be made from the same mask set on the same production line. Even a slight change or “improvement” might affect timing and require the software to be re-certified.

13 Abstraction Layers The purpose for an abstraction is to hide details of the implementation below and provide a platform for design from above.

14 Abstraction Layers Every abstraction layer has failed for time- sensitive applications.

15 Is the problem intrinsic in the technology? Electronics technology delivers highly repeatable and precise timing… … and the overlaying software abstractions discard it MHz (± 100 ppm)

16 EMBEDDED PROCESSORS

17 Typical PC Architecture Single processor (plus GPU) Not a lot of concurrency Market is dominated by a single architecture and instruction set x86 Image courtesy of Wikimedia Commons GPL

18 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP Images courtesy of iFixit © 2012, CC-BY-NC-SA

19 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Images courtesy of iFixit © 2012, CC-BY-NC-SA

20 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Barely begun to examine this system!

21 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Barely begun to examine this system! Four different embedded processors!

22 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Barely begun to examine this system! Four different embedded processors! Four different manufacturers!

23 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Barely begun to examine this system! Four different embedded processors! Four different manufacturers! Four different architectures!

24 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Lots of concurrency!

25 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Lots of concurrency! Different instruction sets!

26 Example Embedded System: Apple iPhone A5 Processor Qualcomm DSP … Texas Instruments touchscreen microcontroller Cirrus Logic DSP Highly Specialized!

27 What advantages might there be to specialization?

28 Energy consumption, specialized hardware, efficiency, etc

29 ATMEGA328, AVR PROCESSORS, & ARDUINO

30 Dueling Architectures

31

32 Advantages/Disadvantages to each?

33 Complexity, dedicated buses Von Neumann bottleneck Advantages/Disadvantages to each?

34 ATmega328

35 CPU (Details later)

36 ATmega328 Flash – program memory 32K SRAM – data memory 2K EEPROM 1K Nonvolatile memory

37 What kind of architecture?

38

39 AVR CPU

40 Instruction fetch and decode

41 AVR CPU ALU instructions

42 AVR CPU I/O and special functions

43 AVR CPU 32 8-bit general purpose registers Part of SRAM memory space

44 AVR CPU X, Y, and Z registers 16-bit registers made using registers Support indirect addressing

45 AVR Memory FLASH BOOT SECTION 32 registers 64 I/O registers 160 Ext I/O Registers Internal SRAM EEPROM

46 AVR Architecture Three timers Flexible Choose clock rate Choose “roll-over” Generate interrupts Generate PWM signals

47 AVR Architecture Interface to pins Each pin directly programmable Program direction (I/O) Program value Program pull-ups Some special pins Analog/Digital Clocks Reset

48 AVR Architecture 3 8-bit ports (B, C, D) Each port controlled by 3 8-bit registers Each bit controls one I/O pin DDRx – direction register Defines Input(0) or Output(1) PINx – Pin input value Reading this “register” returns value of the pin PORTx – Pin output value Writing to this register sets value of pin

49 Pin Circuitry

50 Pin Input PINx DDRx =0 PORTx

51 Synchronization and Timing Takes a clock cycle for data output to be reflected on the input

52 Why is this necessary?

53 What if the pin changes value near the falling edge of a clock cycle?

54 Why is this necessary? What if the pin changes value near the falling edge of a clock cycle? Metastability

55 Pin Output PINx DDRx =1 PORTx

56 Pin Input – PORT controls pullup PINx DDRx =0 PORTx

57 Pullups – If a pin is an input (DDRxi = 0) PORTxi = 0 – Pin is floating PORTxi = 1 – connects pullup to the pin – Keeps pin from floating if noone is driving – Llows wired-OR bus – Individual bits can be set cleared using bit-ops – A bit can be toggled by writing I to PINxi

58 Arduino Uno ATmega328

59 Arduino Uno ATmega328ATmega16U2

60 Arduino Digital and Analog I/O Pins Digital pins – Pins 0-7: PORT D – Pins 8-13: PORT B – Pins 14-19: PORT C Named A0 – A5 Arduino analog – Pins 0 and 1 are RX and TX for serial comms – Pin 13 connected to base board LED

61 More Info Too much to cover! See data sheets for Arduino and ATmega328 – es/8271s.pdf es/8271s.pdf – es/doc0856.pdf es/doc0856.pdf – duinoBoardUno duinoBoardUno

62 PARALLELISM

63 Parallelism vs. Concurrency What’s the difference?

64 Parallelism vs. Concurrency Concurrency is central to embedded systems! – Concurrency – different parts of the program conceptually execute simultaneously – Parallel – different parts physically execute simultaneously

65 Pipelining

66 Sample five stage pipeline What’s going on here?

67 Reservation Table

68 Pipeline hazards represented by dashed lines Pipeline Hazards!

69 Pipeline Interlock to prevent hazard

70 Other types of parallelism CISC vs. RISC Superscalar processors Hyperthreading Multicore

71 WRAP UP

72 Industrial Connection Mr. Tony Kaap – Motion Picture Industry: Motion Capture Mr. Robert Zeh – Financial Industry: Real-time systems Stanford University – Tagging of Pelagic Predators MBARI – Deep sea embedded systems and data collection Dr. Kristin Rozier – NASA: Safety Critical Systems

73 For next time Read Chapter 2 (Continuous Dynamics) Assignment 1: Problems 1, 2, and 3 of Chapter 7.


Download ppt "CYBERPHYSICAL SYSTEMS & EMBEDDED PROCESSORS EEN 417 Fall 2013 8/27/13, Dr. Eric Rozier, V1.0, ECE."

Similar presentations


Ads by Google