Skip to main content

Standard di codifica multicore Scopo di semplificazione della programmazione

L'Associazione Multicore sta stabilendo specifiche per un modello di programmazione che ridurrà la complessità della scrittura di software per chip multicore utilizzati in smartphone, tablet e altri sistemi embedded.

L'associazione sta mettendo insieme un insieme coesivo di API di base (interfacce di programmazione delle applicazioni) per standardizzare la comunicazione, la condivisione delle risorse e la virtualizzazione spanning core su chip uguali o diversi, ha dichiarato Markus Levy, presidente del gruppo.

I produttori di chip aggiungono CPU, sensori e acceleratori ai chip come un modo efficiente dal punto di vista energetico per aumentare le prestazioni delle applicazioni sui dispositivi. Ma i chip multicore hanno anche creato una sfida per i programmatori, che devono scrivere applicazioni scalabili su più core e sincronizzarsi correttamente per garantire che i calcoli vengano eseguiti in un certo ordine per ottenere l'output corretto.

Le API di basso livello forniscono una coerenza Il modello di programmazione multicore da cui le applicazioni possono essere adattate per funzionare su architetture di chip, sistemi operativi e hardware specializzato, ha detto Levy. L'Associazione Multicore ha completato MCAPI (API di comunicazione multicore) e MRAPI (API di gestione risorse multicore) per la comunicazione e la gestione delle risorse, rispettivamente, e ha gruppi di lavoro per creare nuovi strumenti e API relativi alla virtualizzazione.

"Ci sono molti beneficiari di stabilire queste API, ma l'obiettivo principale per tutte le parti è quello di stabilire la portabilità ", ha detto Levy. Un modello di programmazione coerente semplifica il riutilizzo dell'applicazione su piattaforme multicore diverse. Prima di queste API, la maggior parte dei progetti utilizzava meccanismi proprietari privi della portabilità, afferma Levy.

Uno smartphone può essere progettato utilizzando più core del processore con diversi sistemi operativi, con ogni core che fornisce funzionalità diverse, ha affermato Colin Walls, un Mentor Graphics, che rende il sistema operativo in tempo reale Nucleus disponibile in circa 400 milioni di dispositivi ogni anno. MCAPI fornisce un mezzo semplice per comunicare il software sui due core, ha detto Walls.

In alcuni dispositivi, un core può eseguire un SO, come Android o Linux, per gestire gran parte dell'interfaccia utente, l'esecuzione di applicazioni utente, gestione e comunicazione di file e dati. L'altro core potrebbe essere in qualche modo invisibile all'utente e gestire attività telefoniche di basso livello come stabilire e mantenere una connessione di rete cellulare e gestire le chiamate.

"Utilizzando MCAPI, il codice delle applicazioni incorporate non deve essere a conoscenza del Il codice è portatile tra i sistemi operativi e le architetture dei chip ", ha detto Walls.

MCAPI consente ai programmatori di abilitare le applicazioni per multicore una volta e riutilizzare lo stesso codice su più prodotti in una linea di prodotti e per la prossima generazione dispositivi, migliorando così la produttività ingegneristica, ha affermato Sven Brehmer, CEO di PolyCore Software, che fornisce strumenti di sviluppo e software di runtime per la comunicazione multicore e multichip.

MCAPI viene utilizzato principalmente nelle infrastrutture di telecomunicazione e datacom e nei dispositivi multimediali, ha affermato Brehmer . Altre aree di interesse includono dispositivi medici, calcolo ad alte prestazioni e apparecchiature militari e aeronautiche come i radar.

L'API consente la creazione di domini per implementazioni specifiche, come la comunicazione tra core su un determinato chip o su aree specifiche in un topologia del chip. Ciò consente ai progettisti di controllare meglio il routing e la sicurezza dei loro messaggi, ha detto Levy.

"Un aspetto dell'infrastruttura MCAPI implica la specifica di una rete di nodi di comunicazione, in cui un nodo può essere un processo, un thread, un'istanza di un sistema operativo, acceleratore hardware o core del processore ", ha detto Levy.

MCAPI è progettato per funzionare con MRAPI, un'API per le funzionalità di gestione delle risorse a livello di applicazione che coordinano la gestione dell'alimentazione e la virtualizzazione su chip multicore. I chip contengono funzioni e caratteristiche che cambiano in modo dinamico, e su alcuni chip multicore è difficile per un singolo sistema operativo monitorare e controllare tutte le risorse, ha detto Levy. MRAPI fornisce un supporto di basso livello per la notifica degli eventi a livello di sistema come gli stati di risparmio energetico, guasti dei dispositivi e ripartizionamento dell'hypervisor.

Ad esempio, i dispositivi basati su Linux con multiprocessing simmetrico non supportano una funzione per notificare le applicazioni quando l'ambiente operativo o le risorse sono cambiate, ha detto Levy. Per ovviare a questa mancanza, MRAPI fornisce ai programmatori meccanismi di implementazione per gestire la condivisione delle risorse e rispondere ai cambiamenti nella disponibilità delle risorse.

"Utilizzando MRAPI, gli sviluppatori di sistemi possono scrivere programmi applicativi portatili che scaleranno nelle generazioni attuali e future di processori multicore e architetture, a beneficio degli sviluppatori di applicazioni, middleware, processori e sistemi ", ha detto Levy.

Questa standardizzazione consentirà ai produttori di chip e ai fornitori di strumenti di terze parti di assumere la gestione delle risorse, in modo che i programmatori possano concentrarsi su applicazioni di alto livello. .

L'organizzazione sta inoltre sviluppando API per gli utenti di prodotti di virtualizzazione incorporati, che potrebbero consentire l'interoperabilità di applicazioni e middleware in diversi ambienti di virtualizzazione. Ma una maggiore attenzione è rivolta allo sviluppo di strumenti standardizzati che sfruttano le API. Alcuni sostenitori delle nuove API come Mentor, Intel, Freescale e Texas Instruments, ad esempio, avevano tutti sviluppato i propri strumenti di debug e tracciamento, ha detto Levy.

"Il risultato netto per i fornitori di strumenti è che quanto avrebbero non è possibile: nessun singolo fornitore può offrire tutto ciò che i suoi clienti richiedono, eppure i clienti devono essere in grado di sviluppare e comprendere questo diverso sistema ", ha detto Levy.

Ci sono altri multicore modelli di programmazione come OpenMP e OpenCL, ma sono tutti progettati per essere "sinergici" piuttosto che competitivi, ha dichiarato Brehmer di Polycore. L'API OpenMP è progettata per scrivere applicazioni parallele a livello di macchina, mentre OpenCL è un framework di programmazione per l'esecuzione parallela di task tra processori multicore, tra cui CPU e processori grafici.

I membri di Multicore Association includono anche IBM, Samsung e Advanced Micro Devices.