In occasione della quindicesima edizione italiana di NIDays, la conferenza mondiale dedicata alla strumentazione virtuale e al Graphical System Design, che si è svolta il 27 febbraio 2008 a Roma, e che anche quest’anno si è confermata, vista la partecipazione di oltre 450 visitatori, come evento di riferimento fondamentale per scoprire gli ultimi sviluppi nei settori del controllo, del design, dell’automazione, della misura e dell’acquisizione dati, abbiamo incontrato Eric Starkloff, responsabile del marketing di prodotto per gli strumenti modulari e il controllo della strumentazione di National Instruments. Starkloff ha analizzato i cambiamenti in atto nel settore, e ci ha spiegato come LabVIEW, e le nuove tecnologie dei processori multicore e degli Fpga, stiano guidando la prossima generazione del test.
Come si è evoluta nel corso degli ultimi anni la strumentazione e il test automatizzato?
Viviamo in un mondo che è sempre più orientato al software; i dispositivi che utilizziamo ogni giorno, come gli smart phone, i set-top-box e anche le automobili, presentano caratteristiche che sono sempre più definite dal software. Per gli ingegneri impegnati nelle attività di test, la sfida nel testare questi dispositivi sempre più complessi è notevolmente aumentata, mentre i tempi di sviluppo e i budget disponibili sono decisamente diminuiti. Oggi, i responsabili del test stanno implementando architetture modulari e definite via software. Il concetto di strumentazione o di sistemi di test definiti dall’utente non è nuovo. In realtà, la strumentazione “user-defined” è sul mercato da oltre due decenni, sotto forma di strumentazione virtuale. Le tecnologie che stanno guidando queste tendenze, tuttavia, sono maturate fino a creare una svolta verso questo nuovo modello definito dal software. Similmente a quanto è avvenuto per il Web 2.0, la differenza è ormai talmente evidente da poter parlare di “Strumentazione 2.0”, basata su bus ad alta velocità PCI Express, processori multicore ed Fpga.
Quali sono i benefici offerti ai progettisti impegnati nella creazione di sistemi di test dai processori multicore?
Avere più Cpu montate su un singolo chip è la chiave trainante per ottimizzare le prestazioni delle applicazioni basate su Pc. Anche la tecnologia Hyperthreading è stata introdotta per migliorare il supporto per il codice multithreaded e permettere un utilizzo più efficiente delle risorse della Cpu. La combinazione di queste due tecnologie fa sì che gli ingegneri possano sviluppare applicazioni ad alta intensità di elaborazione e throughput in grado di eseguire compiti in parallelo, incrementando quindi le prestazioni. Dal momento che i benefici in termini di prestazioni dell’elaborazione multicore sono direttamente collegati al parallelismo del codice sorgente, la sfida per gli ingegneri che desiderano trarre vantaggi dai processori multicore sta nello sviluppo del software. I tradizionali metodi di programmazione sequenziale oggi non sono più validi, e gli sviluppatori di software hanno bisogno di nuovi paradigmi di programmazione come LabVIEW per sfruttare pienamente il potenziale in termini di prestazioni delle architetture hardware parallele.
Cos’è che fa sì che LabVIEW possa definirsi un software pronto per il multicore?
Utilizzando LabVIEW si ha a disposizione un ambiente ideale di software per la programmazione parallela, grazie alla natura dataflow del linguaggio, ad un supporto multicore di primo livello per le piattaforme embedded sviluppate con LabVIEW Real-Time Module e agli stack software top-to-bottom “multicore-ready”. Il principale beneficio dello sviluppo di una applicazione in LabVIEW è la natura intuitiva e grafica del linguaggio. La natura dataflow di LabVIEW fa sì che ogni qualvolta vi sia una sequenza in parallelo sul diagramma a blocchi, il compilatore sottostante di LabVIEW cerchi di creare un thread per eseguire il codice in parallelo. Il linguaggio grafico di LabVIEW gestisce autonomamente un certo grado di parallelismo. LabVIEW 8.5 estende il multithreading automatico disponibile sui desktop a sistemi deterministici real-time con il supporto per i sistemi di multiprocessing simmetrico (SMP), su un hardware multicore real-time.
Qual è l’impatto sui sistemi di test della combinazione dell’elaborazione parallela multicore e dei bus come PCI Express?
PCI Express permette di soddisfare le differenti esigenze applicative di test eseguendo misurazioni ad alte prestazioni, elaborazione del segnale e analisi personalizzata dei dati, senza dover conformarsi ad una soluzione fissa proposta da un dato vendor. La larghezza di banda e le specifiche di latenza dei bus Pc sono rapidamente migliorate nel corso degli ultimi 15 anni, con il passaggio da ISA a PCI fino a PCI Express, creando un collegamento più veloce e dedicato tra la strumentazione e il processore host. Questo permette agli ingegneri di trasferire i dati di misura al processore del Pc host per un’elaborazione dei dati e un’analisi delle misure in tempo reale. Combinando la programmazione parallela e i processori multicore, è possibile aumentare sia le prestazioni del sistema sia il numero di canali di dati che possono essere elaborati in un sistema di test. La convergenza di PCI Express, LabVIEW 8.5 e dell’elaborazione multicore non solo aumenta la velocità del test, ma porta la strumentazione virtuale verso nuove applicazioni come il test digitale ad alta velocità, l’acquisizione dati ad elevato numero di canali e l’acquisizione di immagini a piena velocità.
Quali sono le prospettive per i bus di controllo della strumentazione, come GPIB, Ethernet e Usb?
GPIB, Ethernet e Usb sono tutte valide opzioni per gli strumenti di controllo basati su Pc. Il GPIB rimane il bus più comunemente utilizzato negli strumenti di controllo, grazie alle note prestazioni, alla connettività e alla vasta base di strumenti e controllori installati. L’Usb è preferito per le applicazioni portatili, e per il settaggio veloce da banco, mentre Ethernet sta riscuotendo interesse nei sistemi di strumentazione distribuiti che non richiedono sistemi precisi di temporizzazione e sincronizzazione. Ogni bus di controllo della strumentazione fornisce vantaggi esclusivi a seconda del tipo di sfida richiesta dall’applicazione e a seconda delle opzioni di connettività disponibili sullo strumento. Prima di decidere quale sia il bus migliore è importante comprenderne le caratteristiche chiave, ed è inoltre, è necessario prendere in considerazione un approccio ibrido ai bus, consistente in molteplici opzioni di bus di controllo in modo da poter ottimizzare le prestazioni, la flessibilità e il riutilizzo dei propri sistemi. Una piattaforma di strumentazione basta su Pc come PXI può essere quindi raccomandata nei sistemi di test ibridi per massimizzare le prestazioni globali del sistema, prevenendo i colli di bottiglia che possono verificarsi con bus con ampiezza di banda bassa e maggiore latenza.
Quali potranno essere le evoluzioni a breve della strumentazione e del test automatizzato?
Utilizzando gli Fpga, gli ingegneri possono definire il comportamento dell’hardware ed eseguire l’elaborazione in linea o distribuita sul dispositivo. Gli Fpga permettono inoltre un’esecuzione più veloce, in quanto sono intrinsecamente paralleli, e anche più affidabile. La natura parallela del flusso di dati grafico di LabVIEW, che ben si adatta alle applicazioni multicore, risulta ideale anche per sfruttare la tecnologia Fpga. Con gli Fpga utilizzati all’interno di strumenti stand-alone, gli ingegneri non avevano accesso alla loro riprogrammazione, e questo rappresentava un fattore di criticità per il test automatico. Chiaramente ci sono dei vantaggi nell’eseguire diversi tipi di elaborazione su un processore host dual-core rispetto a un Fpga. Per esempio, l’Fpga è generalmente molto adatta per l’analisi in linea, come ad esempio la semplice decimazione su un I/O point-to-point. Tuttavia, la modulazione complessa potrebbe raggiungere prestazioni migliori in esecuzione su un processore host a causa della grande quantità di calcoli in virgola mobile richiesto. Inoltre, anche se gli Fpga offrono elevate prestazioni e flessibilità per il test automatico, essi sono programmati con linguaggi di descrizione hardware come Verilog o VHDL, che utilizzano una sintassi di basso livello per descrivere il comportamento hardware, e con cui la maggior parte degli ingegneri di test ha poca dimestichezza. I tool a livello di sistema che astraggono i dettagli della programmazione degli Fpga possono colmare questa lacuna. LabVIEW Fpga, per esempio, è in grado di programmmare l’Fpga e sintetizzare l’hardware necessario direttamente da un programma di LabVIEW.