460 likes | 674 Views
Embedded Systems: Hardware Components (part II). Ed F. Deprettere Leiden Embedded Research Center, Leiden Institute of Advanced Computer Science Leiden University, The Netherlands. Outline. Generic Embedded System component structure Sensors Analog-to-Digital (A/D-) converters
E N D
Embedded Systems: Hardware Components (part II) Ed F. Deprettere Leiden Embedded Research Center, Leiden Institute of Advanced Computer ScienceLeiden University, The Netherlands
Outline • Generic Embedded System component structure • Sensors • Analog-to-Digital (A/D-) converters • Computation Components • General Purpose Processors (GPPS) • Application Specific Instruction Set Processors (ASIPs) • Reconfigurable Processing Units (RPUs) • Application Specific Integrated Circuits (ASICs) • Memory • Input/Output Devices • Communication Infrastructure • Digital-to-Analog (D/A) converters • Actuators Embedded Systems and Software by Todor Stefanov 2010
Embedded Systems Hardware Embedded Systems hardware is frequently used in a loop(“hardware in a loop“): Embedded System Display InformationProcessing A/D-converters sample-and-hold D/A converters Environment Actuators Sensors rain light Embedded Systems and Software by Todor Stefanov 2010
Information Processing System:Input/Output Devices Memory Cache Memory Memory ScratchPad ASIC ASIPMicroCtrl DSP VLIW RPU FPGA GPP … CommunicationInfrastructure I/O device I/O device Memory Memory … … Embedded Systems and Software by Todor Stefanov 2010
Examples of I/O Devices • Timers • WatchDogs • Pulse Width Modulators (PWM) • Universal Asynchronous Receiver Transmitter (UART) • Inter Integrated Circuit (I2C) • … Philips 83C552: 8 bit-8051 based microcontroller Embedded Systems and Software by Todor Stefanov 2010
How Computation Components “talk” to I/O Devices? I/O Devices are mapped in the address space of Computation Components (CC), i.e., CCs communicate with I/O devices simply by reading/writing from/to memory cells. • Two general methods for access • Polling - Includes, a kind of busy-waitloop • Interrupts - Using interrupt line of CC to provide service to devices Local Mem Memory Map 0 I/O device 1 2 3 I/O device 2 5 GPP ASIP RPU I/O Device 1 : 50 Mem 1 100 BUS : 200 I/O Device N Mem1 Local Mem N Embedded Systems and Software by Todor Stefanov 2010
Polling: Busy-Wait Interface SLAVE MASTER Status Regs mechanism GPP ASIP RPU data/address Control Regs Issues: • MASTER is tied up in communication with device until I/O operation is done • No other work can be accomplished by MASTER • Typically one MASTER in system, but many I/O devices • Only really useful if devices are fast • No time consuming context switches Data Regs • Continuous polling Loop (until device ready) Check device End-loop • Periodicpolling Embedded Systems and Software by Todor Stefanov 2010
Interrupt Interface SLAVE MASTER intr request Status Regs mechanism GPP ASIP RPU data/address Control Regs • When I/O device needs MASTER attention, an interrupt signal is sent • MASTER is “forced” to suspend its current task • Interrupts can be ignored (masked) when critical task is executed • MASTER acknowledges interrupt and jumps to interrupt service routine • When finished control is returned to the interrupted task intr ack Data Regs • Key observations: • MASTER is free to do something else until attention is needed • Improves utilization of MASTER, leading to a much better response • I/Os can proceed asynchronously • Time consuming context switches Embedded Systems and Software by Todor Stefanov 2010
Communication with many I/Os interrupt acknowledge device 1 device 2 device n • Interrupt Identification • SW polling (check status registers) • HW polling (ACK signal propagated in Daisy Chain) • Interrupt Priority (in case multiple interrupts to be served) interrupt requests GPP ASIP RPU L1 L2 .. Ln Embedded Systems and Software by Todor Stefanov 2010
Memory Cache Memory Memory ScratchPad ASIC ASIPMicroCtrl DSP VLIW RPU FPGA GPP … I/O device I/O device Memory Memory … … Information Processing System:Communication Infrastructure CommunicationInfrastructure Embedded Systems and Software by Todor Stefanov 2010
Types and Requirements • Types of Communication Infrastructure • Single Bus • Single shared resource, thus may become the bottleneck in the system • Multiple Busses/Crossbar Switches • Wire Switching communication infrastructure • Networks (on Chip) • Packet Switching communication infrastructure • Requirements for Embedded Systems • Performance • bandwidth and latency • guaranteed behavior (real-time) • Efficiency • cost (material, installation, maintenance) • low power • Robustness • fault tolerance • maintainability, diagnoseability • security, safety Embedded Systems and Software by Todor Stefanov 2010
Generic Bus Structure m • What is a BUS? • Set of wires • Common protocol for communication with devices • Address wires: Data wires: Control wires: n c Embedded Systems and Software by Todor Stefanov 2010
Generic Fixed-delay Access Protocol read = 1 addrs = A R/W W R/W data mem[adrs] = data R addrs data = mem[adrs] reg = data SLAVE device MASTER Embedded Systems and Software by Todor Stefanov 2010
Generic Variable-delay Access Protocol read = 1 adrs = A R/W done = 0 mem[adrs] = data done = 1 data W R/W R n adrs done data = mem[adrs] done = 1 y done SLAVE device reg = data MASTER Embedded Systems and Software by Todor Stefanov 2010
Typical Bus Access Protocol clock R/W’ Address enable adrs Data Ready’ data write read time Embedded Systems and Software by Todor Stefanov 2010
Memory Memory Memory ASIC ASIP RPU GPP BUS I/O device I/O device Memory Memory … … What if Multiple Masters “want” the BUS simultaneously • Arbiter is used • Controls access to the shared bus • Uses arbitration policy to select master to grant access to bus • Arbitration policy • Centralized Arbitration • Round Robin policy • Priority policy • TDMA policy • Distributed Arbitration • Carrier Sense Multiple Access / Collision Detection (CSMA/CD) Embedded Systems and Software by Todor Stefanov 2010
Memory Memory Memory ASIC ASIP RPU GPP … I/O device Memory I/O device Memory … … Centralized Arbitration • Two important control signals per MASTER, i.e., • bus_request – from MASTER to ARBITER • bus_granted – from ARBITER to MASTER • Minimal change is required if new components are added to the system Arbiter BUS Embedded Systems and Software by Todor Stefanov 2010
Arbitration Policies (1) • Random • Randomly select master to grant bus access to • Static priority • Masters assigned static priorities • Higher priority master request always serviced first • Can be pre-emptive or non-preemptive • May lead to starvation of low priority masters • Round Robin (RR) • Masters allowed to access bus in a round-robin manner • No starvation – every master guaranteed bus access • Inefficient if masters have vastly different data injection rates • High latency for critical data stream Embedded Systems and Software by Todor Stefanov 2010
Arbitration Policies (2) • Time Division Multiple Access (TDMA) • Assign slots to masters based on bandwidth requirements • If a master does not have anything to read/write during its time slots, leads to low bus utilization • Choice of time slot length and number critical • Predictable behavior suitable for real-time Embedded Systems • TDMA/RR • Two-level scheme • If master does not need to utilize its time slot, second level RR scheme grants access to another waiting master • Better bus utilization • Higher implementation cost for scheme (more logic, area) Embedded Systems and Software by Todor Stefanov 2010
Arbitration Policies (3) • Dynamic priority • Dynamically vary priority of master during application execution • Gives masters with higher injection rates a higher priority • Requires additional logic to analyze traffic at runtime • Adapts to changing data traffic profiles • High implementation cost (several registers to track priorities and traffic profiles) • Programmable priority • Simpler variant of dynamic priority scheme • Programmable register in arbiter allows software to change priority Embedded Systems and Software by Todor Stefanov 2010
Memory Memory Memory ASIC ASIP RPU GPP … Arbiter Arbiter Arbiter Arbiter BUS I/O device Memory I/O device Memory … … Distributed Arbitration • Requires fewer signals compared to the centralized approach • More hardware duplication, more logic/area, less scalable Embedded Systems and Software by Todor Stefanov 2010
Distributed Arbitration Example: CSMA/CD • Carrier Sense Multiple Access / Collision Detection • Try to avoid and detect collisions: • before starting to transmit, MASTER checks whether the bus is idle • if a collision is detected (several MASTERS started almost simultaneously), wait for some time (back-off timer) • Repeated collisions result in increasing back-off times Embedded Systems and Software by Todor Stefanov 2010
How to Connect Different Busses and Interfaces? memory memory memory • Use Bus Bridges • They act as slave on one side and master on the other ASIP RPU CPU BUS3 Bridge1 BUS2 BUS1 Bridge3 I/O device I/O device Bridge2 BUS4 memory memory … Embedded Systems and Software by Todor Stefanov 2010
Multiple Busses • IBM Cell ring bus communication architecture Embedded Systems and Software by Todor Stefanov 2010
Crossbar Switch • Full-crossbar/matrix busPoint-to-Point • Partial-crossbar/matrix bus Embedded Systems and Software by Todor Stefanov 2010
Network-On-Chip: Introduction • Network-on-chip (NoC) is a packet switched on-chip communication network • NoCs use packets to route data from the source to the destination PE via a network fabric that consists of • network interfaces (NI) • switches (routers) • interconnection links (wires) Embedded Systems and Software by Todor Stefanov 2010
Network-On-Chip: Introduction • NoCs are an attempt to scale down the concepts of large-scale networks, and apply them to the Embedded System-on-chip (SoC) domain • NoC Properties • Reliable and predictable electrical and physical properties • Regular geometry that is scalable • Flexible QoS guarantees • Higher bandwidth • Reusable components • Buffers, arbiters, routers, protocol stack Embedded Systems and Software by Todor Stefanov 2010
Network-On-Chip: Topology 1-D Torus 2-D Torus 2-D Mesh Fat Tree Octagon Butterfly Irregular or Ad-hoc Embedded Systems and Software by Todor Stefanov 2010
Network-On-Chip: Issues • Very hot research topic at the moment • NO wide adoption in Industry because • Power • complex NI and switching/routing logic blocks are power hungry • several times greater than for current bus-based approaches • Latency • additional delay to packetize/de-packetize data at NIs • flow/congestion control and fault tolerance protocol overheads • delays at the numerous switching stages encountered by packets • even circuit switching at routers has overhead • lags behind what can be achieved with bus-based/dedicated wiring • Lack of tools and benchmarks Embedded Systems and Software by Todor Stefanov 2010
All this could be on a single chip!!!System-on-chip (SoC) Memory Cache Memory Memory ScratchPad ASIC ASIPMicroCtrl DSP VLIW RPU FPGA GPP … CommunicationInfrastructure I/O device I/O device Memory Memory … … Embedded Systems and Software by Todor Stefanov 2010
SDRAM Serial I/O video-in video-out PCI bridge I2C I/O timers audio-out I$ VLIW cpu audio-in D$ Example of SoC Philips Trimedia Chip Off-chip memory peripherals Programmable core High-way bus Embedded Systems and Software by Todor Stefanov 2010
Examples of Configurable SoC Embedded Systems and Software by Todor Stefanov 2010
Trend: Multi-Processor SoC (MPSoC) http://www.mpsoc-forum.org/2007/slides/Hattori.pdf Embedded Systems and Software by Todor Stefanov 2010
Multi-Processor System-on-Chip (1) http://www.mpsoc-forum.org/2007/slides/Hattori.pdf Embedded Systems and Software by Todor Stefanov 2010
Multi-Processor System-on-Chip (2) http://www.mpsoc-forum.org/2007/slides/Hattori.pdf Embedded Systems and Software by Todor Stefanov 2010
Multi-Processor System-on-Chip (3) http://www.mpsoc-forum.org/2007/slides/Hattori.pdf Embedded Systems and Software by Todor Stefanov 2010
Another Example of MPSoC Embedded Systems and Software by Todor Stefanov 2010
Embedded Systems Hardware Embedded Systems hardware is frequently used in a loop(“hardware in a loop“): Embedded System Display InformationProcessing A/D-converters sample-and-hold D/A converters Environment Actuators Sensors rain light Embedded Systems and Software by Todor Stefanov 2010
Digital-to-Analog (D/A)-converters Various types, can be quite simple, e.g.: Embedded Systems and Software by Todor Stefanov 2010
Ii Output voltage ~no. represented by x ° * Due to Kirchhoff’s laws : Loop rule*: I ~ nat (x), wherenat(x): natural number represented byx; Junction rule°: Hence: Finally: Op-amp turns current I ~ nat (x) into a voltage ~ nat (x) Embedded Systems and Software by Todor Stefanov 2010
Reconstruction Analog from Digital? Filter(Inter-polation) S/H A/D-converter D/A-converter • According to Nyquist theorem: • Analog input to sample-and-hold can be precisely reconstructed from its output if • sampling frequency double the highest input frequency in input voltage • Digitizing values in the A/D generates additional uncertainty preventing precise reconstruction of initial values. Can be modeled as additional noise • Infinite bits for quantization would remove noise Embedded Systems and Software by Todor Stefanov 2010
Embedded Systems Hardware Embedded Systems hardware is frequently used in a loop(“hardware in a loop“): Embedded System Display InformationProcessing A/D-converters sample-and-hold D/A converters Environment Actuators Sensors rain light Embedded Systems and Software by Todor Stefanov 2010
Actuators • Convert a command to a physical stimulus (e.g., heat, light, sound, pressure, magnetism, or other mechanical motion) • May require analog interface • Output physical stimulus varies in range and modality • Large (industrial) control actuators • Pneumatic systems: physical motion • Optical output • IR, LEDs, displays, etc. • Motor controllers • DC, stepper, servo, … • Sound • Loudspeakers, etc. • … Embedded Systems and Software by Todor Stefanov 2010
Stepper Motor • Stepper motor: rotates fixed number of degrees when given a “step” signal • In contrast, DC motor simply rotates when power applied, and coasts to stop • Rotation achieved by applying specific voltage sequence to coils • Controller greatly simplifies this • Stepper motors usedcommonly in hard drives • Head motor (stepper) • Spindle motor (DC) Embedded Systems and Software by Todor Stefanov 2010