Nuovo simulatore di prestazioni per la CPU

Il termine multicore viene usato per descrivere una CPU (unità di elaborazione centrale), ovvero una tipologia di processore digitale general purpose che sovrintende tutte le funzionalità del computer.

Il compito della CPU è quello di eseguire le istruzioni di un programma presente nella memoria. Durante l’esecuzione del programma la CPU legge o scrive dati in memoria.

Le più grandi aziende produttrici di semiconduttori (microprocessori, dispositivi di memoria, circuiti di supporto alle telecomunicazioni e alle applicazioni informatiche) hanno messo a punto configurazioni multicore  fino a 8 core, 10 o addirittura 12 core. I ricercatori delle università e delle multinazionali stanno lavorando  per migliorare la prestazione di un chip multicore e vi è la possibilità di ottenere fino 24 o 48 core.

Se la tecnologia dovesse progredire con il ritmo degli ultimi anni, cosa che ha consentito di raddoppiare la potenza dei chips ogni 18 mesi, si può prevedere che in tempi brevi si possano ottenere a breve chips a centinaia se non migliaia di core. Tuttavia, se il numero di core dovesse aumentare ulteriormente si potrebbero  avere introdurre grossi problemi di funzionamento e nessun produttore di chips introdurrà nel mercato un chip innovativo senza avere prove inconfutabili che esso funzioni come pubblicizzato.

Come strumento di ricerca, un gruppo del MIT specializzato nella strutturazione dei computer ha sviluppato un simulatore software, chiamato Hornet, che valuta  la prestazione di un chip multicore in modo molto più accurato di quanto facciano quelli che sono tecnologicamente meno avanzati. Al quinto simposio internazionale sulle reti on chip del 2011, il gruppo ha ricevuto un premio per il lavoro fatto in cui essi hanno usato un simulatore per analizzare una promettente tecnologia  multicore computing trovando un grosso difetto che gli altri simulatori non avevano rilevato. In ricercatori, a breve presenteranno, sul prossimo numero di IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,una nuova versione del simulatore che  tiene conto sia di fattori di consumo che di comunicazione tra i cores oltre che dei tempi di elaborazione dei singoli compiti e dei problemi relativi alla memoria di accesso.

Il flusso di dati attraverso un chip con centinaia di core è mostruosamente complesso e i precedenti simulatori software precedenti sacrificavano la  precisione a vantaggio  dell’ efficienza. Per le simulazioni più accurate, i ricercatori hanno usato modelli  hardware di chips programmabili che possono essere riconfigurati per simulare il comportamento dei chip multicore. Secondo Cho Myong Hyon, uno studente presso il Dipartimento di Ingegneria Elettrica e Informatica (EECS) e ricercatore di Hornet, tale scoperta  è destinata ad integrare senza competere con questi altri due approcci. “Pensiamo che Hornet si trova nel punto di integrazione tra di loro,”
I vari compiti svolti da molti componenti di un chip sono sincronizzati da un master clock e, durante ogni “ciclo di clock,” ogni componente esegue un compito. Un processore  è composto infatti  da vari circuiti logici  preposti ad eseguire operazioni diverse, tali circuiti interagiscono tra loro scambiandosi informazioni.

Perché tale operazione avvenga correttamente però è necessario che ad ogni circuito sia indicato il momento esatto in cui può ritenere validi i segnali che riceve in ingresso. Il clock è il segnale che si occupa di questo ed è condiviso tra tutti i circuiti. La sua frequenza quindi deve essere calcolata in modo tale che il ciclo di clock sia sufficientemente lungo da consentire a tutti i circuiti, anche il più lento, di completare correttamente le proprie operazioni. Hornet è molto più lento rispetto ai suoi predecessori, ma può fornire una simulazione di un chip con 1.000 core. Per  “‘Cycle-accurate’ si intendono  risultati precisi al livello di un singolo ciclo,” spiega Cho. “Per esempio, Hornet ha la capacità di prevedere che un determinato compito richiede 1,223,392 cicli per finire.'”

I simulatori esistenti sono capaci di  valutare le prestazioni dei chip in generale, ma possono non rilevare i problemi che si presentano in alcuni casi particolari.  E’ molto probabile che Hornet li rilevi, come si è già verificato secondo i dati della  ricerca presentata al Network-on-Chip Symposium. Lì, Cho, il suo professore Srini Devadas, ed i loro colleghi hanno presentato una tecnica multicore computing  in cui il chip passa i compiti computazionali ai cores per memorizzare i dati pertinenti, piuttosto che  passare i dati ai cores per lo svolgimento di tali compiti. Hornet ha identificato il rischio di un problema chiamato deadlock, che non era stato rilevato da altri simulatori. 

Un deadlock si verifica quando due o più thread sono in attesa l’uno dell’altro, dando vita a un ciclo e impedendo a tutti loro di fare ulteriori progressi. I deadlock possono essere introdotti dal programmatore nel tentativo di evitare condizioni di competizione. Ad esempio, l’uso errato di primitivi di sincronizzazione, come l’acquisizione di blocchi in un ordine sbagliato, può comportare l’attesa reciproca di due o più thread.
Oltre a identificare il rischio di stallo, i ricercatori hanno anche proposto un modo per evitarlo – e hanno dimostrato che la loro proposta ha utilizzato un’altra simulazione Hornet che mostra i vantaggi offerti da Hornet  rispetto ai sistemi hardware: la facilità con cui può essere riconfigurato per testare le proposte progettuali alternative.
Suh sottolinea, tuttavia, che nonostante  Hornet sia  più lento rispetto a simulatori  hardware o meno accurato rispetto a  simulazioni di software, “è meglio simulare un breve periodo di applicazione piuttosto che cercare di eseguire l’intera applicazione.” Ma, aggiunge, “Questo è sicuramente utile se si vuole sapere se ci sono alcuni comportamenti anomali. “E inoltre,” ci sono tecniche in uso come il campionamento statistico, o cose del genere, che sono parti rappresentative ‘si tratta di porzioni rappresentative dell’applicazione.’ ”

 

Avatar

Author: Chimicamo

Share This Post On