Metodologie di Progettazione Hardware/Software Introduzione
Transcript
Metodologie di Progettazione Hardware/Software Introduzione
Metodologie di Progettazione Hardware/Software Introduzione 1 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Embedded systems overview • Computing systems are everywhere • Most of us think of “desktop” computers – – – – PC’s Laptops Mainframes Servers • But there’s another type of computing system – Far more common... 2 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 1 Embedded systems overview • Embedded computing systems – Computing systems embedded within electronic devices – Hard to define. Nearly any computing system other than a desktop computer – Billions of units produced yearly, versus millions of desktop units – Perhaps 50 per automobile 3 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Embedded Systems • Embedded Systems (ES) = sistemi di elaborazione delle informazioni dedicati contenuti all’interno di un prodotto più grande 4 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 2 Application areas (1) • Automotive electronics • Aircraft electronics • Trains • Telecommunication • Military applications 5 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Application areas (2) • Consumer electronics 6 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 3 A “short list” of embedded systems Anti-lock brakes Auto-focus cameras Automatic teller machines Automatic toll systems Automatic transmission Avionic systems Battery chargers Camcorders Cell phones Cell-phone base stations Cordless phones Cruise control Curbside check-in systems Digital cameras Disk drives Electronic card readers Electronic instruments Electronic toys/games Factory control Fax machines Fingerprint identifiers Home security systems Life-support systems Medical testing systems Modems MPEG decoders Network cards Network switches/routers On-board navigation Pagers Photocopiers Point-of-sale systems Portable video games Printers Satellite phones Scanners Smart ovens/dishwashers Speech recognizers Stereo systems Teleconferencing systems Televisions Temperature controllers Theft tracking systems TV set-top boxes VCR’s, DVD players Video game consoles Video phones Washers and dryers 7 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Cars Multiple processors Up to 100 Networked together Multiple networks –Functions: • • • • • ABS: Anti-lock braking systems ESP: Electronic stability control Airbags Efficient automatic gearboxes Theft prevention with smart keys • Blind-angle alert systems • ... etc ... 8 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 4 Cars – Large diversity in processor types: • 8-bit – door locks, lights, etc. • 16-bit – most functions • 32-bit – engine control, airbags – Form follows function • Processing where the action is • Sensors and actuators distributed all over the vehicle 9 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Cars BMW 7 series Up to 70 Electronic Modules Electronic Cost : 25% total Car cost Semiconductor Content > 1000 $ Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 5 Digital camera Digital camera chip CCD CCD preprocessor Pixel coprocessor D2A A2D lens JPEG codec Microcontroller Multiplier/Accum DMA controller Memory controller • • • Display ctrl ISA bus interface UART LCD ctrl Single-functioned -- always a digital camera Tightly-constrained -- Low cost, low power, small, fast Reactive and real-time 11 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Caratteristiche dei sistemi embedded • Specializzazione – Eseguono un solo programma, ripetutamente • Inclusione di elettronica ed altri dispositivi dedicati per: – Interagire con il mondo esterno – Svolgere alcune funzioni elaborative • Sistemi reattivi e real-time – Devono continuamente reagire ai cambiamenti dell’ambiente in cui opera il sistema – Deve produrre certi risultati in real-time senza ritardo • Con molti vincoli (spesso assai stringenti) – Basso costo, ridotto consumo di potenza, piccolo, veloce, ecc. 12 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 6 Caratteristiche dei sistemi embedded Un sistema embedded è progettato per eseguire una sola o comunque poche specifiche applicazioni: – Le applicazioni da svolgere sono note a priori, prima che il processo di progettazione inizi – Spesso è opportuno garantire al sistema la flessibilità necessaria per i futuri aggiornamenti o per un eventuale riutilizzo del componente. Normalmente si raggiunge questo scopo rendendo il sistema riprogrammabile Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Caratteristiche dei sistemi embedded • Dovendo interagire con il mondo esterno i S.E. includono dispositivi quali – Sensori – Attuatori • I sistemi embedded sono sistemi ibridi (digitale + analogico) – Sono presenti convertitori A/D e D/A • L’interazione con l’utente avviene con mezzi spesso semplificati: – Display di dimensione ridotta – Dispositivi di input limitati – Dispositivi di I/O specializzati rispetto alle competenze o al modo di operare dell’utente Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 7 Caratteristiche dei sistemi embedded • Alcune funzioni possono essere svolte in maniera più efficiente facendo ricorso a dispositivi hardware dedicati quali DSP, celle IP, ecc. • Applicazioni DSP tipiche: – segnali generici: filtraggio, DFT, FFT, ecc. – voce: encoding, decoding, equalizzazione, ecc. – modem: modulazione, demodulazione • Altro hardware dedicato: – Compressione video, crittografia, … Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Caratteristiche dei sistemi embedded • Molti ES devono rispettare vincoli real-time • Un sistema real-time system deve reagire agli stimoli provenienti dall’oggetto controllato entro un intervallo di tempo che dipende dall’ambiente. • Per i sistemi real-time, risposte giuste arrivate tardi sono errate. • „Un vincolo real-time constraint è detto hard, se il non rispetto del vincolo potrebbe avere conseguenze catastrofiche “ [Kopetz, 1997]. • Tutti gli altri time-constraints sono detti soft. 16 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 8 Caratteristiche dei sistemi embedded Tipicamente sono reactive systems: “A reactive system is one which is in continual interaction with is environment and executes at a pace determined by that environment“ [Bergé, 1995] Il comportamento dipende dagli ingressi e dallo stato corrente. la macchina a stati è il modello più appropriato. 17 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Principali requisiti dei sistemi embedded • I requisiti di progetto imposti ad un Sistema Embedded possono essere: – – – – – – Requisiti funzionali Requisiti temporali Requisiti di affidabilità Consumo Prestazioni Costo • Spesso i requisiti risultano essere in contrasto tra loro 18 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 9 Challenges for implementation in hardware Lack of flexibility (changing standards). Mask cost for specialized HW becomes very expensive Trend towards implementation in Software 19 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Importance of Embedded Software and Embedded Processors “... the New York Times has estimated that the average American comes into contact with about 60 micro-processors every day....” [Camposano, 1996] Latest top-level BMWs contain over 100 micro-processors [Personal communication] Most of the functionality will be implemented in software 20 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 10 Challenges for implementation in software If embedded systems will be implemented mostly in software, then why don‘t we just use what software engineers have come up with? Exponential increase in software complexity In some areas code size is doubling every 9 months [ST Microelectronics, Medea Workshop, Fall 2003] ... > 70% of the development cost for complex systems such as automotive electronics and communication systems are due to software development 21 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Challenges for Embedded Software – Come catturare il comportamento richiesto di sistemi complessi? – Come tradurre in modo efficiente le specifiche in una implementazione? – Deve essere presa in considerazione dagli ingegneri del software la potenza dissipata? – Come verificare che i vincoli real-time sono rispettati? – Quale linguaggio di programmazione fornisce caratteristiche real-time? 22 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 11 Challenges for Embedded Software It is not sufficient to consider ES just as a special case of software engineering EE knowledge must be available, Walls between EE and CS must be torn down 23 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Design metrics 24 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 12 Progettazione – ottimizzazione di diverse design metrics • Obiettivo di progetto: – Realizzare una implementazione con la funzionalità richiesta • Sfide nella progettazione: – Ottimizzare contemporaneamente diverse design metrics • Design metric – Una caratteristica misurabile dell’implementazione del sistema Implementazione: un microprocessore con relativo programma, una connesione di gates o una loro combinazione 25 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Progettazione – ottimizzazione delle design metrics • Metriche comuni – NRE cost (Non-Recurring Engineering cost): il costo di progettazione del sistema, da conteggiare una sola volta – Unit cost: il costo economico per la produzione di ogni copia del sistema, escluso il costo NRE – Size: lo spazio fisico richiesto dal sistema – Performance: il tempo di esecuzione o il throughput del sistema – Power: la potenza consumata dal sistema – Flexibility: la capacità di modificare la funzionalità del sistema senza richiedere un elevato valore di NRE cost 26 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 13 Progettazione – ottimizzazione delle design metrics • Metriche comuni (continua) – Time-to-prototype: il tempo per realizzare una versione prototipale funzionante del sistema – Time-to-market: il tempo richiesto per lo sviluppo e la vendita ai clienti del sistema – Reliability R(t) = probabilità che il sistema stia lavorando correttamente all’istante t assunto che stava lavorando all’istante t=0 – Maintainability M(d) = probabilità che il sistema continui a lavorare correttamente d unità di tempo dopo un errore. – Availability A(t): probabilità che il sistema stia lavorando al tempo t – Safety: nessun danno deve essere provocato – Security: comunicazione confidenziale e autenticata 27 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Competizione tra metriche – migliorare una metrica può peggiorare le altre • Esperienza sia con il software sia con hardware è necessaria per ottimizzare le metriche di progetto Power Performance Size – Non solo esperto di hardware o esperto di software, come di norma avviene – Un designer deve avere confidenza con diverse tecnologie per potere scegliere quella migliore per una data applicazione e certi vincoli di progetto NRE cost CCD Digital camera chip A2D CCD preprocessor Pixel coprocessor D2A lens JPEG codec Microcontroller Multiplier/Accum DMA controller Memory controller Display ctrl ISA bus interface UART LCD ctrl Hardware Software 28 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 14 Time-to-market • Il tempo richiesto per lo sviluppo e la commercializzazione di un prodotto • Market window – Periodo in cui potrebbe avere le vendite maggiori • Il time-to-market medio richiesto è di circa 7-8 mesi • I ritardi possono essere molto costosi Reve nues ($) Time (months) 29 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Perdite dovute a un ingresso ritardato nel mercato • Modello semplificato del reddito Revenues ($) Peak revenue Peak revenue from delayed entry On-time Market fall Market rise Delayed D On-time entry Delayed entry 2W W Time – Tempo di vita di un prodotto = 2W, picco a W – L’ingresso nel mercato definisce un triangolo che rappresenta la penetrazione del mercato – L’area del triangolo rappresenta il reddito • Perdità – La differenza tra le le aree dei due triangoli, quello dell’immissione in tempo e quello dell’immssione ritardata 30 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 15 Perdite dovute a un ingresso ritardato nel mercato • Area = 1/2 * base * altezza – In tempo = 1/2 * 2W * W – Ritardato = 1/2 * (W-D+W)*(W-D) Revenues ($) Peak revenue Peak revenue from delayed entry On-time • Percentuale di reddito perso = (D(3W-D)/2W 2)*100% Market fall Market rise Delayed D On-time entry W Delayed entry 2W Time – Tempo di vita= 2W=52 settimane, ritardo D=4 settimane – (4*(3*26 –4)/2*26^2) = 22% – Tempo di vita 2W=52 settimane, ritardo D=10 settimane – (10*(3*26 –10)/2*26^2) = 50% 31 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica NRE e unit cost • Costi: – Unit cost: il costo economico per la produzione di ogni copia del sistema, escluso NRE cost – NRE cost (Non-Recurring Engineering cost): il costo di progettazione del sistema, da conteggiare una sola volta – Costo totale = NRE cost + unit cost * numero di unità – Costo per prodotto = costo totale / numero di unità = (NRE cost / numero di unità) + unit cost • Esempio – NRE=$2000, unit cost=$100 – Per 10 unità – Costo totale = $2000 + 10*$100 = $3000 – Costo per prodotto = $2000/10 + $100 = $300 Ammortizzare l’ NRE cost sulle unità comporta un costo aggiuntivo per unità di $200 32 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 16 NRE e unit cost • Confronto delle tecnologie sulla base dei costi – la migliore dipende dalle quantità prodotte – Tecnologia A: NRE=$2,000, unit=$100 – Tecnologia B: NRE=$30,000, unit=$30 – Tecnologia C: NRE=$100,000, unit=$2 100000 1000000 A 100000 B C 10000 Costo per unità ($) Costo Totale ($) 10000000 10000 A 1000 B 100 C 10 1 1000 10 50 250 1250 6250 31250 10 50 250 1250 6250 31250 Numero di unità Num ero di unità • Ma bisogna anche considerare il time-to-market 33 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Le performance • Misure del sistema abbondantemente utilizzate – Clock frequency, instructions per second – non sono delle buone misure – Esempio: Digital camera – un utente vuole conoscere quanto velocemente un immagine viene processata, e non la frequenza del clock o il numero di istruzioni al secondo • Latenza (response time) – Il tempo tra l’inizio e la fine di un task – Esempio: la digital camera processa un immagine in 0,25 secondi • Throughput – Tasks per second. Esempio. La digital camera processa 4 immagini al secondo 34 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 17 Design technologies 35 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Tre tecnologie chiave nei sistemi embedded • Tecnologia – Un modo di realizzare un task, usando processi, metodi o conoscenza • Tecnologie per I sistemi embedded – Processor technology – IC technology – Design technology 36 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 18 Processor technology • L’architettura dell’unità di computazione utilizzata per implementare la funzionalità richiesta al sistema • I processori non devono essere necessariamente programmabili – “Processore” non vuol dire “general-purpose processor” Controller Datapath Controller Datapath Controller Datapath Control logic and State register Register file Control logic and State register Registers Control logic index Custom ALU State register IR PC General ALU IR total + PC Data memory Program memory Assembly code for: Data memory Data memory Program memory Assembly code for: total = 0 for i =1 to … General-purpose (“software”) total = 0 for i =1 to … Application-specific Single-purpose (“hardware”) 37 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Processor technology • I processori variano in funzione del problema total = 0; for (i = 0; i< N; i++) total += M[i]; Desired functionality General-purpose processor Application-specific processor Single-purpose processor 38 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 19 General-purpose processors • Dispositivi programmabili usati per un ampio spettro di applicazioni – Noti come “microprocessori” • Caratteristiche – Program memory – General Datapath con ampio register file e ALU di tipo generale Controller Datapath Control logic and State register Register file IR • Vantaggi General ALU PC Program memory – Basso time-to-market e NRE costs – Alta flessibilità Data memory Assembly code for: • Svantaggi total = 0 for i =1 to … – Alti costi per unità per grandi volumi – Le prestazioni potrebbero essere ridotte 39 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica General-purpose processors il DLX sequenziale PCWriteCond PCSource PCWrite TargetWrite IorD ALUop Unità di MemRead ALUSelA MemWrite ALUSelB Controllo IRWrite RegWrite Mem2Reg RegDest P C M U X Lettura Ind Dati Lettura MEM Scrittura Dati R E G I S T R M U X Mem Data M U X Reg. R Let. Let. 1 E Dati1 Reg. G Let. 2 F Let. Reg. Dati2 Scrittura I L Scrittura E Dati Est. Segno A B 4 Shift S.2 bit M U X M U X Shift S.2 bit A Zero L Ris. U T A R G E T M U X AluOutput 40 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 20 General-purpose processors addi r1, r0, 0 addi r3, r0, 0 Loop: lw r4,M(r1) addi r1,r1,4 slti r2, r1, 40 add r3,r3,r4 bnez r2, loop total = 0; for (i = 0; i< N; i++) total += M[i]; 41 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Pipelining: Increasing Instruction Throughput T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 IFetch 0 IDec 0 IExe 0 IMem 0 IWrB 0 IFetch 1 IDec 1 IExe 1 IMem 1 IWrB 1 IFetch 2 IDec 3 T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 IFetch 0 IDec 0 IExe 0 IMem 0 IWrB 0 IFetch 1 IDec 1 IExe 1 IMem 1 IWrB 1 IFetch 2 IDec 2 IExe 2 IMem 2 IWrB 2 IFetch 3 IDec 3 IExe 3 IMem 3 IWrB 3 IFetch 4 IDec 4 IExe 4 IMem 4 IWrB 4 IFetch 5 IDec 5 IExe 5 IMem 5 IWrB 5 IFetch 6 IDec 6 IExe 6 IMem 6 IWrB 6 IFetch 7 IDec 7 IExe 7 IMem 7 IWrB 7 42 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 21 General-purpose processors il DLX pipeline PCSrc ID/EX 0 M u x 1 WB Control IF/ID EX/MEM M WB EX M MEM/WB WB Add Add Add result Instruction memory ALUSrc Read register 1 Read data 1 Read register 2 Registers Read Write data 2 register Write data Zero ALU ALU result 0 M u x 1 MemtoReg Address Instruction PC Branch Shift left 2 MemWrite RegWrite 4 Address Data memory Read data Write data Instruction 16 [15– 0] Instruction [20– 16] Instruction [15– 11] Sign extend 32 6 ALU control 0 M u x 1 1 M u x 0 MemRead ALUOp RegDst 43 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Superscalar and VLIW Architectures • Performance can be improved by: – Faster clock (but there’s a limit) – Pipelining: slice up instruction into stages, overlap stages – Multiple ALUs to support more than one instruction stream • Superscalar – Scalar: non-vector operations – Fetches instructions in batches, executes as many as possible • May require extensive hardware to detect independent instructions • VLIW: each word in memory has multiple independent instructions • Relies on the compiler to detect and schedule instructions • Currently growing in popularity 44 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 22 Single-purpose processors • Sistema digitale progettato per eseguire un solo programma Controller Datapath Control logic index – Es. coprocessori, acceleratori o periferiche total • Caratteristiche State register – Contengono i soli componenti che servono per eseguire un solo programma – Non hanno la program memory + Data memory • Vantaggi – Veloce, Low power, Piccola dimensione • Svantaggi – Assenza di flessibilità, alto time-to-market, alto costo NRE 45 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Single-purpose processors Cond Compare N Rst_Index Unità di controllo Index Clk_Index + 4 Rst_Total Clk_Total Memory Total + Datapath 46 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 23 Application-specific processors • Processori programmabili ottimizzati per una particolare classe di applicazioni – Compromesso tra general-purpose e singlepurpose processors • Caratteristiche – Program memory, Datapath ottimizzato, Unità funzionali speciali • Vantaggi – Buona flessibilità, buone performance, size e power • Svantaggi – Alto costo NRE (processore e compilatore) Controller Datapath Control logic and State register Registers IR Custom ALU PC Program memory Data memory Assembly code for: total = 0; for(i =0;i<N;i++) total+=M[i]; Esempi: Microcontrollori, DSP 47 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica A Common ASIP: Microcontroller • For embedded control applications – Reading sensors, setting actuators – Mostly dealing with events (bits): data is present, but not in huge amounts – e.g., VCR, disk drive, digital camera (assuming SPP for image compression), washing machine, microwave oven • Microcontroller features – On-chip peripherals • Timers, analog-digital converters, serial communication, etc. • Tightly integrated for programmer, typically part of register space – On-chip program and data memory – Direct programmer access to many of the chip’s pins – Specialized instructions for bit-manipulation and other low-level 48 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 24 Digital Signal Processors (DSP) • For signal processing applications – Large amounts of digitized data, often streaming – Data transformations must be applied fast – e.g., cell-phone voice filter, digital TV, music synthesizer • DSP features – Several instruction execution units – Multiple-accumulate single-cycle instruction, other instrs. – Efficient vector operations – e.g., add two arrays • Vector ALUs, loop buffers, etc. 49 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Microcontrollore: Famiglia ST6 • Microcontrollore a 8 bit – Interrupts 4 interrupt vectors plus NMI and RESET Software programmable for each I/O – Memories Up to 4 Kbytes of program memory OTP/ROM Up to 64 bytes of RAM – I/O Ports Up to 20 I/O lines Multifunctional, bi-directional I/O pins Up to 4 high current capability I/O line – Clock, Reset and Power Supply Power supply operating range: 3.0V to 6V Maximum external frequency: 8 MHz Oscillator Safeguard (OSG) and Backup oscillator (LFAO) Low Voltage Detector (LVD) 2 power saving modes: WAIT and STOP I/O Ports Up to 20 I/O lines Multifunctional, bi-directional I/O pins Up to 4 high current capability I/O line Peripherals Watchdog timer 8-bit timer ADC Instruction Set 8-bit accumulator-based architecture 40 instructions 9 addressing modes 50 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 25 Microcontrollore: STR7(ARM7TDMI® core) • STR710F Flash Microcontrollers from STMicroelectronics combine the industry standard ARM7TDMI® RISC microprocessor with embedded Flash and powerful peripheral functions including, USB and CAN. 51 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica La famiglia ARM7 • L’ARM7 è un processore RISC a 16/32 bit, prodotto, a partire dal 1993, dalla “Advanced Risc Machines Ltd.” • È disponibile in una ampia gamma di versioni, dedicate principalmente ad applicazioni di tipo “embedded”. • Tra queste, ci sono numerosi mC prodotti da almeno 10 diversi costruttori tra i quali STM, Motorola, NEC, Atmel, Philips, Sharp, TI. • Si tratta quindi di un vero e proprio standard industriale. 52 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 26 Integrated circuit (IC) technology • Il modo in cui una implementazione digitale (gate-level) è mappata su un IC – IC: Integrated circuit, o “chip” – IC sono costituiti da diversi layer • I layer più bassi formano i transistor • Quelli intermedi formano i componenti logici • Quelli più alti collegano i componenti con i wires – Le tecnologie differiscono nel livello di specializzazione rispetto a un design IC package IC source gate oxide channel drain Silicon substrate 53 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica IC technology Porta NAND 54 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 27 IC technology • Tre tipi di IC technologies – Full-custom/VLSI – Semi-custom ASIC (gate array and standard cell) – PLD (Programmable Logic Device) 55 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Full-custom/VLSI • Tutti i layer sono ottimizzati per una particolare implementazione del sistema embedded – Placing transistors – Sizing transistors – Routing wires • Benefici – Eccellenti performance, piccola dimensione, ridotta potenza • Svantaggi – Elevato NRE, lungo time-to-market 56 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 28 Semi-custom • I layer più bassi sono in tutto o in parte realizzati Gate array – I designers devono occuparsi dei livelli più alti • Benefici – Buone performance, buona dimensione,minore NRE rispetto a una implementazione full-custom Standard Cell • Svantaggi – Richiede ancora settimane o mesi per lo sviluppo 57 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica PLD (Programmable Logic Device) • Tutti i layers già esistono – I designers possono comprare un IC – Le connessioni sull’ IC sono o create o distrutte per implementare la funzionalità richiesta – Due tipi: • Programmable Logic Array (PLA) • Field-Programmable Gate Array (FPGA) • Benefici – Basso NRE, la dispobibilità dell’IC è quasi immediata • Svantaggi – Più grande, più costoso, consuma molto, più lento 58 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 29 Programmable Logic Array (PLA) 59 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Xilinx FPGA 60 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 30 Indipendenza tra processore e IC technologies Generalpurpose processor General, providing improved: Singlepurpose processor ASIP Customized, providing improved: Flexibility Maintainability NRE cost Time- to-prototype Time-to-market Cost (low volume) Power efficiency Performance Size Cost (high volume) PLD Semi-custom Full-custom 61 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Legge di Moore • Il più importante trend nei embedded systems – Predetto in 1965 dal cofondatore della Intel, Gordon Moore La capacità dei transistor raddoppierà ogni 18 mesi per le prossime decadi 10,000 Logic transistor s per chip (in millions) 1,000 100 10 1 0.1 Note: logarithmic scale 0.01 0.001 20 09 20 07 20 05 20 03 20 01 19 99 19 97 19 95 19 93 19 91 19 89 19 87 19 85 19 83 19 81 62 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 31 Illustazione grafica della legge di Moore 1981 1984 1987 1990 1993 1996 1999 2002 10,000 transistors 150,000,000 transistors Leading edge chip in 1981 Leading edge chip in 2002 63 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica La produttività aumenta in modo esponenziale Productivity (K) Trans./Staff – Mo. 100,000 10,000 1,000 100 10 1 0.1 0.01 2009 2007 2005 2003 2001 1999 1997 1995 1993 1991 1989 1987 1985 1983 1981 64 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 32 Design productivity gap • Sebbene la capacità produttiva dei progettisti sia aumentata in modo impressionante, non ha tenuto il passo dell’incremento della capacità dei chip 10,000 100,000 1,000 10,000 1000 Gap 10 100 IC capacity 1 10 0.1 1 productivity 0.01 Productivi ty (K) Trans./Sta ff-Mo. Logic transistors per chip (in millions) 100 0.1 0.001 0.01 20 09 20 07 20 05 20 03 20 01 19 99 19 97 19 95 19 93 19 91 19 89 19 87 19 85 19 83 19 81 65 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Design productivity gap • 1981 Il chip più avanzato richiedeva 100 mesi uomo – 10,000 transistors / 100 transistors/mese • 2002 Il chip più avanzato richiedeva 30,000 mesi uomo – 150,000,000 / 5000 transistors/mese 10,000 100,000 10,000 100 10 1000 100 Gap IC capacity 1 0.1 10 1 productivity 0.01 Product ivity (K) Trans./ StaffMo. Logic transist ors per chip (in millions ) 1,000 0.1 0.001 0.01 20 09 20 07 20 05 20 03 20 01 19 99 19 97 19 95 19 93 19 91 19 89 19 87 19 85 19 83 19 81 66 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 33 Il mese-uomo • La situazione è peggiore di ciò che mostra il productivity gap • In teoria l’aumento del numero di progettisti dovrebbe ridurre i tempi di completamento di un progetto. In realtà, la produttività del singolo progettista diminuisce a causa della complessità nella gestione e comunicazione nel gruppo di lavoro. • In alcune casi, un incremento di persone potrebbe allungare il tempo di realizzazione di un progetto. • 1M transistors, 1 designer=5000 trans/mese Ogni designer in più riduce di 100 trans/mese 2 designer producono 4900 trans/mese ciascuno • • 60000 50000 40000 30000 20000 10000 16 15 Team 16 19 18 23 24 Mesi per la conclusione del lavoro 43 Individuo 0 10 20 30 Numero di designers 40 67 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Gestione della crisi della produttività • • IP (Intellectual Property) Reuse – Assemblaggio di componenti pre-progettati – Componenti proprietari o provenienti dall’esterno – Soft e Hard IPs System-Level Design – Progetto e verifica a livello di sistema anziché a livello RTL o di gate 68 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 34 Design Technology • E’ il modo in cui si traduce la funzionalità richiesta del sistema in una sua implementazione • Una procedura per progettare un sistema • Il flusso di progettazione può essere parzialmente o totalmente automatizzato mediante un insieme di tools. – Software engineering tools, – Compilers, – Computer-Aided Design tools, • Un’adeguata metodologia di progettazione aiuta la gestione del processo di design e migliora la qualità, le performance e i costi del progetto. 69 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Design Technology Compilation/Synthesis: Automates exploration and insertion of implementation details for lower level. Libraries/IP: Incorporates pre-designed implementation from lower abstraction level into higher level. Test/Verification: Ensures correct functionality at each level, thus reducing costly iterations between levels. System specification Compilation/ Libraries/ Test/ Synthesis IP Verification System Hw/Sw/ Model simulat./ synthesis OS checkers Behavioral specification Behavior synthesis RT specification RT synthesis Logic specification Logic synthesis Cores Hw-Sw cosimulators RT HDL simulators components Gates/ Cells Gate simulators To final implementation 70 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 35 Il co-design Sequential program code (e.g., C, VHDL) • In passato: – Hardware e software design technologies erano molto differenti – La recente maturazione della sintesi permette di avere una visione unificata di hardware e software • Hardware/software “codesign” Behavioral synthesis (1990's) Compilers (1960's,1970's) Register transfers Assembly instructions RT synthesis (1980's, 1990's) Assemblers, linkers (1950's, 1960's) Logic equations / FSM's Machine instructions Logic synthesis (1970's, 1980's) Logic gates Microprocessor plus program bits: “software” Implementation VLSI, ASIC, or PLD implementation: “hardware” La scelta tra hardware e software per una particolare funzione è semplicemente un tradeoff tra varie design metrics, come performance, power, size, NRE cost, e flessibilità; non c’è una differenza sostanziale tra cosa l’hardware o il software può implementare. 71 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica Riferimenti – “Embedded System Design: A Unified Hardware/Software Introduction” , Frank Vahid, Tony Givargis, John Wiley & Sons Inc., ISBN:0-471-38678-2, 2002. – “Computers as Components: Principles of Embedded Computer Systems Design (With CD-ROM)”, Wayne Wolf, Morgan Kaufmann Publishers, ISBN: 1-55860-541-X, 2001 -“Embedded System Design” by Peter Marwedel, Kluwer Academic Publishers, ISBN: 1-4020-7690-8, October 2003 72 Metodologie di Progettazione Hardware/Software – LS Ing. Informatica 36