Circuito asincrono

Un circuito asincrono è un circuito elettronico digitale che non utilizza un segnale di clock globale per sincronizzare i suoi vari elementi. Invece, spesso comunicano localmente indicando l'invio e la ricezione di dati. A volte parliamo di un "circuito auto-sequenziato  ".

Sono previste come una possibile alternativa ai circuiti sincroni , più diffusi, in particolare per la riduzione dei consumi energetici, poiché un orologio rimane permanentemente attivo. L'assenza di un orologio può fornire altri vantaggi, come una maggiore velocità, un design più semplice e una maggiore affidabilità.

Nel 2012, nonostante questi numerosi vantaggi e sebbene abbiano visto la luce quasi contemporaneamente ai circuiti sincroni, tali circuiti rimangono in minoranza. Ad esempio, la maggior parte dei processori prodotti sono sincronizzati da uno o più clock, sia nel mercato embedded che per i processori più efficienti, anche se stiamo cominciando a vedere la comparsa di microcontrollori asincroni.

Storia

La storia dei circuiti asincroni è segnata da molte importanti conquiste, la creazione di computer o processori completi che costituiscono una pietra miliare. Non dovrebbero, tuttavia, oscurare i progressi teorici e, di recente, lo sviluppo di strumenti di sintesi e verifica che hanno consentito.

Come in altri rami dell'elettronica digitale, la ricerca continua anche se il concetto è stato espresso già negli anni 50. Alcuni ricercatori prevedono l'uso diffuso di tecniche asincrone, ma tali previsioni non sono state fatte in passato.

Gli inizi: circuiti indipendenti dalla velocità e automi finiti

La teoria dei circuiti asincroni inizia con il lavoro di David A. Huffman sull'implementazione degli automi finiti nel 1953. Il concetto di "circuito asincrono" come è oggi, costruito in modo modulare utilizzando un protocollo di comunicazione tra elementi risale al alla fine degli anni '50, quando i circuiti "indipendenti dalla velocità" basati su un protocollo a doppia rotaia a tre stati furono introdotti da David Muller: il suo team costruì l' ILLIAC I nel 1952 e l' ILLIAC II nel 1962. Tuttavia, l'uso di questo tipo di circuito viene quindi giudicato complesso: non esiste un metodo semplice che consenta di produrre tali circuiti, mentre gli automi finiti forniscono un modello adattato.

Negli anni '60 e '70 videro la luce alcuni circuiti asincroni, tra cui i "macromoduli", componenti asincroni assemblati per creare sistemi complessi: l'interfaccia asincrona permetteva di preoccuparsi solo dei problemi logici.

L'ascesa delle micropipeline e dei primi microprocessori

La fine degli anni '80 e l'inizio degli anni '90 hanno visto una rinascita dell'interesse per le tecniche asincrone, senza dubbio attribuibile al lavoro di Ivan Sutherland e Alain Martin.

Nel 1989, Ivan Sutherland ha introdotto il concetto di micropipeline , un'implementazione del protocollo di dati raggruppati in due fasi . Questo viene poi continuamente migliorato, grazie ad altre implementazioni o all'uso di protocolli a quattro fasi.

Questo periodo ha visto anche la comparsa del primo microprocessore asincrono, il Caltech Asynchronous Microprocessor progettato alla Caltech dal team di Alain Martin nel 1989. Utilizza circuiti quasi-delay-insensitive ( QDI ) generati da codice CHP e ha un'architettura RISC .

È seguito dalle diverse versioni di AMULET , basate su micropipeline , che utilizzano l' architettura ARM . La seconda versione introduce le micropipeline a quattro fasi. Un altro microprocessore Caltech QDI , il MiniMIPS, considerato particolarmente efficiente, è stato progettato e testato alla fine degli anni 90. Altri sono progettati nelle università di tutto il mondo come il TITAC 1 nel 1994, il TITAC 2 nel 1997 (architettura RISC , modello simile al Modello QDI) o Aspro (RISC e QDI), nel 2001 a Grenoble .

Allo stesso tempo, stanno emergendo nuovi metodi: la codifica a quattro stati, più efficiente di altre codifiche a doppio binario a due fasi, è stata inventata indipendentemente da due squadre nel 1991 e nel 1992; le varie pipeline QDI compaiono e vengono utilizzate nei microprocessori; Vengono proposte condotte potenzialmente più efficienti, che formulano ipotesi temporali.

La prima ricerca in aziende e sfruttamenti commerciali

Alla fine degli anni '90 ricominciano a riemergere applicazioni commerciali: molte aziende iniziano ad utilizzare circuiti basati su un approccio asincrono oa fare ricerche in questa direzione.

Tra questi, Philips è un pioniere nell'implementazione di strumenti di sintesi di circuiti asincroni utilizzando il linguaggio Tangram dal 1995, grazie agli strumenti della società Handshake Solutions  ; l'azienda dispone di microcontrollori asincroni 80C51 dal 1998, che vengono utilizzati in diversi sistemi, inclusi cercapersone e smart card.

Anche i ricercatori di Sun Microsystems , Intel e IBM prendono parte a questa mania: dal 1995 al 1999, Intel ha condotto ricerche per creare un decodificatore per il set di istruzioni x86, RAPPID , mentre i laboratori Sun erano dietro le diverse tecniche, tra cui gasP-type pipeline e un'architettura per un processore asincrono, la pipeline controcorrente , che non è mai stata implementata.

Infine, molte start-up sfruttano i vantaggi di questi circuiti, come Theseus Logic nel 1996, Fulcrum nel 2000, o successivamente Tiempo, o anche GreenArrays .

Anche i metodi di sintesi e ottimizzazione sono migliorati molto, in particolare la sintesi da una specifica sotto forma di una rete di Petri , che ha portato a strumenti come Petrify . Vengono esplorate altre strade: oltre alla compilazione da linguaggi come CHP o Tangram sopra menzionati, gli strumenti mirano alla sintesi per modelli di ritardo limitato, come Minimalist .

Recenti progressi

La ricerca sui circuiti asincroni è continuata durante gli anni 2000: sono state proposte nuove implementazioni di pipeline, sia multi-rail, come LP2 / 1 nel 2000, sia dati raggruppati, come IPCMOS nel 2000 o MOUSETRAP nel 2007;  compaiono i cosiddetti protocolli “  single-track ”, che utilizzano lo stesso thread per la richiesta e il riconoscimento, con implementazioni come STFB e GasP.

Nel 2004, Epson ha creato un microcontrollore flessibile , il primo del suo genere ad essere asincrono.

Caratteristiche

I circuiti asincroni hanno diverse proprietà potenzialmente interessanti: sono particolarmente promettenti nei settori dove è richiesta affidabilità e per circuiti a basso consumo, anche per la loro velocità, anche se nessun metodo di progettazione ha tutti questi vantaggi contemporaneamente: ci sono tanti, tanti modi di pensarli , ciascuno con i propri vantaggi e problemi.

Consumo di energia

Un segnale di clock cambia stato in modo permanente: può rappresentare una parte significativa del consumo di un circuito. Al contrario, i circuiti asincroni sono attivi solo quando i dati sono disponibili. Altrimenti, nessun transistor commuta e l'unica potenza consumata è dovuta alle loro correnti di dispersione, rendendoli candidati credibili per circuiti a bassa potenza o quando il carico di lavoro cambia rapidamente. Tuttavia, per garantire la comunicazione tra gli elementi, utilizzano anche più transistor e più fili per la stessa quantità di dati rispetto alle loro controparti sincrone, il che può ridurre i guadagni di energia e aumentare le dimensioni dei chip.

Alcuni circuiti hanno tuttavia mostrato guadagni sostanziali, con un'efficienza energetica quattro volte maggiore di un equivalente sincrono per un'implementazione del microcontrollore 80C51, o vicino ad altri processori ARM del momento per processori AMULET .

Affidabilità

A seconda della metodologia di progettazione utilizzata, è possibile realizzare circuiti utilizzando poche ipotesi temporali (insensibili o quasi insensibili ai ritardi ad esempio): questi circuiti hanno un comportamento corretto anche se le proprietà fisiche del circuito evolvono (a causa della temperatura, della tensione di alimentazione o un cambiamento nella tecnologia di produzione).

I circuiti asincroni sono sensibili a tutti i cambiamenti di stato dei fili, e non ai segnali stabilizzati campionati durante le commutazioni dell'orologio: si parla di “  random  ” per designare le variazioni indesiderate dei segnali. Tali problemi dovrebbero essere presi in considerazione in fase di progettazione. Ciò conferisce loro anche comportamenti diversi dai circuiti sincroni in caso di errori o interferenze . Inoltre, i protocolli asincroni fanno ipotesi sul comportamento dei circuiti (principalmente sui ritardi) che possono essere invalidate ad esempio da variazioni di dimensioni e prestazioni dei transistor.

La progettazione di un circuito sincrono richiede una conoscenza precisa dei ritardi di gate, ma un ritardo troppo lungo può essere compensato da una diminuzione della frequenza di clock, a costo però di una diminuzione della velocità complessiva del circuito. Un altro problema ricorrente è il fenomeno del jitter di clock , ed in generale il problema della distribuzione del segnale di clock nei circuiti, che complica l'aumento di frequenza e la cui correzione richiede l'utilizzo di tecniche complesse, talvolta consumatrici di energia.

Velocità

Nell'elettronica digitale , la velocità può essere caratterizzata in due modi diversi: latenza , che corrisponde al tempo necessario affinché i dati vengano elaborati dal circuito, e throughput , che è il numero di dati elaborati per unità di tempo.

I circuiti per il passaggio dei dati da un elemento a un altro possono introdurre latenza aggiuntiva per elaborare la richiesta e riconoscere i segnali, riducendo il throughput e aumentando la latenza.

D'altra parte, sia la latenza che il bit rate non sono limitati da un segnale di clock globale e non sono necessariamente costanti in base alle parti del circuito o ai dati in ingresso. Ad esempio, per circuiti logici come i sommatori , alcune implementazioni asincrone possono restituire il risultato non appena viene calcolato (qui, il riporto), mentre un circuito sincrono deve sempre attendere fino al successivo segnale di clock (che deve essere abbastanza in ritardo per calcoli da completare anche nel peggiore dei casi). Consentono quindi buone implementazioni nel tempo medio di calcolo, sebbene il caso peggiore possa essere molto più lungo.

Alcuni microprocessori asincroni fabbricati presentano quindi prestazioni molto buone, la velocità del MiniMIPS è approssimativamente pari a quattro volte quella di processori equivalenti per un'efficienza energetica ravvicinata.

Semplicità di design

È facile utilizzare diversi circuiti asincroni insieme (anche utilizzando protocolli diversi, aggiungendo un elemento che si traduce da uno all'altro), perché nessun elemento deve essere comune, a differenza del clock dei circuiti sincroni. È anche possibile interfacciarli con circuiti sincroni e interfacciarsi tra loro circuiti sincroni tramite collegamenti asincroni. Questa modularità è un vantaggio per l'interfacciamento con altri elementi, ma anche per la progettazione in generale, che è facilitata e può essere realizzata con linguaggi di alto livello .

L'assenza di un unico orologio e quindi di una base temporale globale semplifica notevolmente il processo, evitando di dover tenere conto dei ritardi e della distribuzione del segnale di clock a tutte le scale in fase di progettazione, ma introduce altri problemi che devono essere presi tenuto conto degli strumenti o del progettista.

Emissioni elettromagnetiche

Poiché i diversi elementi non sono sincronizzati, le emissioni elettromagnetiche vengono ridotte mentre viene livellato il consumo di energia: questo può essere sfruttato per difendersi da determinati attacchi che li sfruttano , perché è quindi più difficile dedurre l'attività del circuito in base alle sue emissioni o consumi. Questa proprietà può essere sfruttata in qualsiasi ambiente in cui le emissioni elettromagnetiche devono essere ridotte al minimo, ad esempio in prossimità di un'antenna .

Un circuito sincrono, invece, tende ad emettere onde armoniche della sua frequenza di clock ea presentare picchi di potenza consumata ad ogni fronte di clock.

Condutture elastiche

Poiché le sincronizzazioni tra gli elementi vengono eseguite localmente, le pipeline asincrone sono naturalmente elastiche, ovvero possono contenere una quantità variabile di dati. Questa è una conseguenza del fatto che questi si propagano indipendentemente da quelli che li seguono.

Trattamenti non deterministici

La mancanza di una base temporale globale facilita la gestione degli eventi esterni. Un tale evento può verificarsi nel momento peggiore, ad esempio contemporaneamente a un segnale di clock o all'arrivo di dati, il che può portare alla comparsa di uno stato metastabile a cui è difficile adattarsi nell'elettronica sincrono. Per i circuiti asincroni, invece, esistono gate specializzati che consentono di effettuare un “arbitrato”: è possibile attendere la risoluzione dello stato metastabile.

Esistono molti modi per creare un'interfaccia asincrona tra due elementi. In una comunicazione unidirezionale che coinvolge un mittente e un destinatario, l'invio dei dati è segnalato da una richiesta, denominata "Req", e la loro ricezione da un riconoscimento, denominato "Ack": si parla di "stretta di mano. Per designare questo scambio. Un invio procede come segue: quando i suoi dati sono pronti, il mittente li copia e informa il destinatario tramite una richiesta; quando quest'ultimo li ha trasmessi, copiati o utilizzati, restituisce un riconoscimento per significare che non ne ha più bisogno. Il trasmettitore può quindi inviare nuovi dati.

La richiesta e il riscontro non sono necessariamente segnali separati; ciascuno può essere codificato su un filo, ma questa non è una necessità: esistono codifiche diverse.

Esistono due famiglie di protocolli a seconda del modo in cui gli eventi, come richieste e riconoscimenti, sono codificati:

  • o corrispondono ad una qualsiasi transizione, cioè una variazione di valore su un filo, da 1 a 0 o da 0 a 1. Si parla di protocollo bifase, di “  half- handshake  ”, di “  segnalazione di transizione  ” o Codifica NRZ ( Non ritorno a zero ): il mittente invia i dati e invia una richiesta, che il destinatario elabora prima di inviare la conferma.
  • oppure il mittente e il destinatario riportano i segnali di richiesta e di riscontro al loro stato iniziale dopo aver segnalato la trasmissione e la ricezione dei dati per transizioni. Si parla di protocollo a quattro fasi a "  full- handshake  " o codifica RZ ( return-to-zero ) dopo aver inviato i dati e la richiesta e la ricevuta e il pagamento, l'emittente restituisce il segnale di richiesta nel suo stato iniziale, quindi il destinatario fa lo stesso con il segnale di riconoscimento. Nonostante un'apparente complessità, questo protocollo consente implementazioni spesso più semplici e veloci rispetto al protocollo a due fasi.

I protocolli poi variano a seconda dei segnali utilizzati. Molto spesso, la query viene codificata sugli stessi thread dei dati, risultando nelle codifiche di più thread presentate nella sezione successiva. Alcuni protocolli meno diffusi non hanno un filo separato per il riscontro e utilizzano uno o più fili sui quali mittente e destinatario possono agire: in questo modo ci sono solo due fasi (invio, poi azzeramento dopo ricezione), e meno fili di comunicazione . Sono stati proposti altri protocolli: basati su impulsi, vale a dire un ripristino anticipato dei fili, o l'eliminazione dei flip-flop , o anche l'utilizzo di segnali non binari, con più di due tensioni significative.

Codifica dei dati

Nei circuiti asincroni, ci sono molti modi per codificare i dati. La codifica più ovvia, simile ai circuiti sincroni, utilizza un filo per un bit  ; in modalità asincrona, si chiama "codifica dati raggruppati". Tuttavia, poiché ogni trasmissione dati asincrona è accompagnata da una richiesta che ne consente la segnalazione, un'altra tecnica è quella di codificare insieme il dato e la richiesta, come ad esempio nelle codifiche "double-rail", su due fili, che sono ampiamente utilizzate.

Codifica dei dati raggruppati

In questo protocollo, uno o più thread trasportano dati, con un thread per bit . Un thread (Req) è per la richiesta del mittente che i dati sono pronti e un altro (Ack) è per la risposta del destinatario. Tali circuiti sono progettati utilizzando un modello in cui determinati ritardi sono considerati limitati, perché altrimenti i dati potrebbero non essere validi anche se la richiesta sarebbe arrivata.

Si parla spesso di micropipeline per designare circuiti che utilizzano questa codifica, con due o quattro fasi. In origine, questo termine si riferiva a una pipeline asincrona utilizzando un protocollo di bundle di dati a due fasi.

Codifica su più fili

Qui non esiste un thread separato per l'invio della richiesta, il che è implicito. In generale esistono le cosiddette codifiche complesse “m out of n”, di cui viene utilizzata solo una particolare custodia cosiddetta “double rail”, a due fili. In queste codifiche, un elemento di dati è rappresentato da m transizioni tra n figli, e il destinatario può considerare che i dati sono validi non appena si sono verificate m transizioni, il che rende la codifica stessa insensibile ai ritardi. Tale codifica è adatta sia per un protocollo a quattro fasi, dove tutti i fili vengono riportati al loro stato iniziale dopo ogni scambio, sia per un protocollo a due fasi.

Il tipo più semplice di codifica m tra n è la codifica 1 tra n, detta anche "  one-hot  ": in questo caso, ci sono n possibili transizioni, che permette di rappresentare un numero in base n, il caso particolare di double -rail dando una scrittura binaria. Ovviamente sono possibili altre codifiche, ma poco utilizzate, come le altre m tra le n codifiche.

I protocolli one-hot double-rail sono ampiamente utilizzati. Il protocollo in quattro fasi, noto anche come "codifica a tre stati", è il più popolare. Ha un valore non valido (tipicamente 00) e due valori significativi (01 codifica 0 e 10 codifica 1 per esempio), lo stato 11 non è utilizzato. Il trasmettitore torna allo stato non valido ogni volta che i dati vengono inviati. Per significare che il destinatario ha notato il cambiamento di valore, viene inviata ogni volta una risposta, anche quando si passa attraverso lo stato non valido, che consente anche al segnale di riconoscimento di tornare allo stato iniziale. Nel protocollo a due fasi, ad ogni invio avviene una sola transizione e anche questa viene confermata da una singola transizione.

Infine esiste un'altra codifica double-rail, destinata ad un protocollo bifase: tutti gli stati sono significativi, ma due codici corrispondono ad ogni valore di un bit, il che permette di cambiare stato ad ogni nuovo dato; stiamo parlando della codifica a quattro stati .

Progettazione di circuiti asincroni

Presupposti della cronologia

I circuiti asincroni raggruppano infatti più classi di circuiti aventi proprietà differenti, secondo le ipotesi fatte in fase di progettazione. Infatti, la comunicazione locale di circuiti asincroni può consentire di superare alcuni vincoli di tempo, gli stessi elementi che indicano la disponibilità dei dati. Queste proprietà vanno dall'insensibilità al ritardo (si parla di circuiti DI ), dove il circuito è corretto indipendentemente dai ritardi del gate e del filo, al modello del ritardo limitato, dove i ritardi hanno un limite noto. Vengono utilizzate due classi di circuiti intermedi: quasi insensibile ai ritardi ( QDI ) e indipendente dalla velocità ( SI ).

Per dirla semplicemente, questi modelli considerano i segnali come booleani, con gate e fili che forniscono solo un ritardo di propagazione. In realtà, i ritardi a volte sono più complessi dei semplici ritardi, i segnali sono in realtà tensioni e non valori binari e le porte stesse sono spesso implementate utilizzando un modello di ritardo limitato.

Circuiti insensibili ai ritardi

Tali circuiti funzionano bene indipendentemente dai ritardi nei cavi e nei cancelli. Tuttavia non possono essere realizzate con semplici porte logiche (le uniche porte logiche con un'uscita utilizzabili sono le porte C e l'inverter), e quindi nella pratica non vengono spesso utilizzate. Questo modello può comunque essere utilizzato con gate più complessi, a loro volta implementati secondo altre ipotesi.

Circuiti quasi insensibili ai ritardi

I circuiti quasi-delay insensitive ( QDI ) aggiungono l'ipotesi, per il progetto, che sia possibile ottenere "forcelle isocrone", cioè una separazione di un filo in più che hanno esattamente lo stesso ritardo, un presupposto che è generalmente considerato essere fattibile in pratica, ma presenta alcuni rischi, perché i ritardi dei fili possono essere lunghi rispetto a quelli dei gate con tecniche CMOS , e perché la propagazione dei segnali è più complessa dei semplici ritardi sui segnali binari. Questo è un modello di progettazione ampiamente utilizzato, tuttavia, perché tali circuiti sono completi di Turing .

Circuiti indipendenti dalla velocità

Possiamo anche considerare trascurabili i ritardi nei cavi. Questo è difficile da verificare nei sistemi attuali, motivo per cui possiamo preferire circuiti progettati come quasi insensibili ai ritardi. Le due ipotesi sono però in realtà molto vicine, il caso indipendente della velocità si riduce a considerare tutte le forcelle come isocrone. Nonostante questo apparente difetto, questa ipotesi progettuale è quindi molto diffusa.

Circuiti con ritardi limitati

Come suggerisce il nome, si presume che i ritardi nei gate e nei thread siano noti o limitati da una durata nota. A volte sono chiamati circuiti Huffman . Questo è il principio di progettazione nell'elettronica sincrona, in cui gli impulsi di clock vengono effettuati a intervalli sufficientemente lunghi da consentire la propagazione e la stabilizzazione dei segnali in tutto il circuito. Nell'elettronica asincrona, questo modello viene utilizzato anche, prima di tutto per progettare la struttura interna di molte porte complesse viste come automi finiti , ma anche in micropipeline , o per ottenere circuiti particolarmente performanti.

Le micropipeline si distinguono talvolta da altri circuiti con ritardi limitati, definendoli come circuiti aventi una parte di controllo insensibile ai ritardi che inviano i segnali di riconoscimento e richiesta e flip-flop di memorizzazione costruiti secondo un modello di ritardi limitati, ciò che lo rende metodo di progettazione a sé stante. Secondo questa definizione, le micropipeline non raggruppano quindi tutti i circuiti utilizzando un protocollo dati raggruppato, perché anche le strutture di controllo possono avere ritardi limitati.

Pericoli

Una delle principali differenze tra i progetti sincroni e asincroni è la considerazione dei rischi logici. Un pericolo è una transizione indesiderata su un filo. In un circuito sincrono, i pericoli non hanno conseguenze poiché vengono considerati solo i segnali stabilizzati al momento dei fronti di clock  ; questo non è più il caso in modalità asincrona e un pericolo può portare ad un blocco del circuito o ad un errore.

I pericoli possono manifestarsi a seguito di una cattiva scomposizione del circuito in porte logiche: le porte ei fili che hanno dei ritardi, le differenze di tempo di propagazione tra i segnali possono far oscillare il circuito. Ciò è possibile anche per alcune modifiche simultanee degli ingressi. Infine, la causa può essere fisica, in particolare il crosstalk , che diventa più critico con il progresso della miniaturizzazione.

Automazione del design e linguaggi

Possiamo progettare un circuito asincrono tramite la compilazione di linguaggi di alto livello o una descrizione del suo comportamento, ad esempio dalle reti di Petri .

Sono state sviluppate diverse metodologie e strumenti di sintesi, sia in ambito accademico (Balsa, “Caltech” , Minimalist, Petrify) che in quello industriale (Tangram, Null Convention Logic). Tuttavia, la mancanza di strumenti di sintesi e verifica completi come quelli destinati all'elettronica sincrona rimane uno dei maggiori ostacoli all'adozione di metodologie asincrone.

Sintesi per traduzione o compilazione

Molte metodologie di progettazione iniziano con un linguaggio di alto livello che viene compilato o tradotto direttamente in un circuito. In questo modo, il design è relativamente intuitivo ed è possibile costruire un sistema complesso assemblando mattoni di base. Tra questi linguaggi, molti derivano da CSP , che riflette bene la concorrenza  : Tangram è stato sviluppato per questo scopo presso Philips , Balsa presso l' Università di Manchester , CHP presso Caltech . È anche possibile utilizzare linguaggi di descrizione hardware più convenzionali, come Verilog o VHDL , che non sono specificamente destinati a questo.

Sintesi da una specifica

Esistono altri metodi di sintesi, basati su una descrizione del comportamento del circuito. Consentono di ottenere circuiti efficienti, ma a costo di un progetto più complesso, sia dal punto di vista del programmatore che da quello della complessità algoritmica. La specifica viene eseguita sotto forma di un grafico: una rete di Petri o una rete di Petri semplificata chiamata grafo di transizione del segnale ( STG ) o un automa finito ( ASM ).

A seconda degli strumenti, il circuito generato sarà indipendente dalla velocità o con ritardi limitati. Oltre a questi vincoli di tempo, una limitazione comune è una restrizione al numero di voci che possono cambiare simultaneamente. Si dice che il circuito funzioni in "modalità fondamentale" se gli ingressi cambiano solo quando il circuito ha raggiunto uno stato stabile, e in "modalità ingresso-uscita" se possono cambiare non appena il circuito ha risposto con un cambiamento di stato. .

Verifica, analisi delle prestazioni e ottimizzazione

È necessario poter verificare che il circuito si comporti come previsto: si tratta di una serie di controlli prima e dopo la produzione: da un lato, si tratta di evitare problemi dovuti ad errori in fase di progettazione. essere fatto da prove formali e simulazioni, e d'altra parte quelle dovute a difetti di fabbricazione che possono causare la non correttezza di alcuni circuiti fabbricati. Per questi ultimi è necessario sviluppare nuovi protocolli di test applicabili ai circuiti prodotti, con algoritmi specifici per i circuiti asincroni.

L'ottimizzazione dei circuiti asincroni ha dato luogo a molte ricerche. Le loro proprietà sono molto diverse dai circuiti sincroni: rendono impossibili alcune ottimizzazioni classiche, che possono introdurre incertezze temporali e pericoli, ma anche l'analisi delle prestazioni è completamente diversa per l'assenza di un ritmo comune: gli elementi hanno linee temporali variabili e interagiscono in modo complesso modi. L'ottimizzazione, generalmente fornita dallo strumento di progettazione, utilizza più trasformazioni a diversi livelli: al di là della scelta della tecnologia, è possibile ottimizzare a livello "astratto" (cambio di codifica dei dati, aggiunta degli stadi della pipeline, ecc.) Come così come a livello locale (sostituzione di gruppi di porte con gruppi equivalenti). Questo processo è automatizzato e può utilizzare simulazioni per valutare le prestazioni di un circuito.

Problemi con il concepimento

La progettazione di circuiti asincroni soffre della mancanza di strumenti dedicati, con i principali linguaggi di descrizione dell'hardware destinati alla progettazione di circuiti sincroni, sebbene sia possibile utilizzarli nell'elettronica asincrona.

Un altro limite è la formazione, che è generalmente incentrata sull'elettronica sincrona, poiché l'elettronica asincrona è meno comune e spesso vista come meno efficiente o più complessa.

Infine, problemi di affidabilità dovuti tra l'altro a vincoli di tempo sono presenti anche nei circuiti asincroni, e possono essere particolarmente gravi in ​​quanto i tempi di propagazione non sono regolabili come con un orologio. Sono presenti soprattutto nei circuiti che fanno molte ipotesi temporali (come il modello dei ritardi limitati), ma esistono anche con modelli che introducono una certa insensibilità ai ritardi; A causa di imperfezioni nelle tecniche di produzione, possono essere evitate solo prima simulazioni e poi test di post-produzione.

Scelte tecniche e loro conseguenze

Molti criteri sono presi in considerazione per valutare le diverse tipologie di circuiti asincroni: la loro velocità in termini di latenza e throughput, la loro dimensione e il loro consumo, ma anche la loro affidabilità. Queste caratteristiche variano molto a seconda del protocollo utilizzato e dell'implementazione scelta, ma anche delle tecniche di fabbricazione e delle ottimizzazioni applicate al circuito. Questa sezione fornisce quindi solo una panoramica dell'impatto di alcune scelte sul circuito.

Due o quattro fasi?

I protocolli a due e quattro fasi hanno ciascuno i propri vantaggi. A priori, i protocolli a due fasi comportano meno transizioni e dovrebbero quindi essere più veloci ed economici. In pratica, tuttavia, in un punto o nell'altro si ottiene un passaggio attraverso un protocollo in quattro fasi: questo è tra l'altro il caso dell'implementazione originale delle micropipeline. Inoltre, è più facile implementare i protocolli con quattro fasi e il loro numero limitato di stati possibili, in particolare quando è necessario eseguire calcoli in multi-rail.

In effetti, entrambi i protocolli sono stati utilizzati per la codifica dei gruppi di dati. D'altra parte, i protocolli su più binari utilizzati sono piuttosto del tipo ritorno a zero, tranne quando la comunicazione avviene su fili lunghi, quindi con ritardi e consumi maggiori, e diventa interessante limitare il numero di transizioni, come nel caso di collegamenti seriali .

Dati raggruppati e multi-rail

La prima differenza è il numero di fili utilizzati: i protocolli di dati raggruppati usano solo un filo per bit, più richiesta e riconoscimento, mentre i protocolli multi-rail ne usano diversi. Ciò rende quest'ultimo meno adatto per l'invio di molti bit; d'altra parte, consentono la creazione di circuiti QDI più robusti; hanno anche il vantaggio di includere la query nei dati, che consente direttamente la creazione di gate a completamento anticipato, restituendo i risultati senza attendere che siano disponibili tutti i dati di input (ad esempio un gate o se un input è 1); tali pipeline "a grana fine", con una richiesta per bit , consentono l'invio separato di ogni parte del risultato.

Si prevede che i circuiti di dati in bundle consumino meno e occupino meno spazio; le porte della logica combinatoria possono essere riutilizzate lì , come per i circuiti sincroni; è quindi necessario adattare il ritardo imposto al segnale di richiesta ai ritardi delle porte, sia per scelta del ritardo dagli operandi, sia per rilevazione di fine calcolo dal consumo del circuito. In termini di frequenza pura, generalmente si comportano leggermente meglio, ma questo non è necessariamente rappresentativo della realtà, dove calcoli complessi vengono eseguiti con condutture non lineari. Possiamo vedere che i microprocessori asincroni più efficienti, come il MiniMIPS, hanno utilizzato protocolli multi-rail, mentre i processori Philips 80C51 e AMULET , che mirano a un basso consumo, utilizzano protocolli di dati raggruppati.

A volte, i due tipi di protocollo vengono utilizzati insieme per sfruttare al massimo i vantaggi di ciascuno, ad esempio scegliendo double-rail per i calcoli ma dati raggruppati per le interfacce.

Scelta delle implementazioni Dati raggruppati

Esistono molte implementazioni di protocolli raggruppati in dati: in due fasi, oltre all'implementazione originale, ce ne sono alcune basate su D flip - flop che reagiscono a due fronti di clock, o di tipo MOUSETRAP.

Per i protocolli con quattro fasi raggruppate in dati, è possibile rimuovere alcune dipendenze tra i segnali di richiesta e di riconoscimento inviati da fasi contigue, consentendone il rinvio in precedenza. Si ottengono così strutture più complesse, ma potenzialmente più efficienti.

Multi-binario

Allo stesso modo, nel multi-rail a quattro fasi, ci sono tre tipi comuni di circuiti, tutti e tre QDI: WCHB , PCHB e PCFB . In WCHB, uno stadio attende che tutti i suoi input siano validi (rispettivamente ripristinati) prima di restituire un dato alla sua uscita (rispettivamente tornare allo stato intermedio). Di conseguenza, al massimo una fase su due conterrà effettivamente dei dati, da cui il nome "  half-buffer  ", e soprattutto il completamento anticipato è impossibile. I protocolli PCHB e PCFB, verificando esplicitamente la validità degli inserimenti, possono reinviare i dati prima dell'arrivo di tutti gli inserimenti e consentire un rapido reset, senza attendere l'invalidità degli inserimenti. Il protocollo PCFB permette inoltre ad ogni fase di contenere dati inviando un riscontro non appena le fasi precedenti vengono azzerate: si parla di “  full-buffer  ”. Tuttavia, la semplicità dei circuiti di tipo WCHB a volte li rende più veloci di altri, mentre i circuiti di tipo PCFB richiedono più porte logiche: la scelta non è quindi scontata.

Altri tipi di pipeline sono possibili utilizzando un modello di ritardo limitato: con logica di precarico, come PS0 o LP2 / 1, o con protocolli a  traccia singola  . Tuttavia, sebbene più veloci, sono anche meno affidabili a causa dell'aggiunta di ipotesi temporali.

Una particolarità dei protocolli multi-rail è la possibilità di utilizzare più fili per codificare i dati grazie ad una codifica 1 in n piuttosto che double-rail, riducendo così il numero di fili che commutano, il che può diminuire il consumo di energia.

Scelta dei componenti e processo di fabbricazione

Molte delle proprietà dei circuiti dipendono dalle tecniche di produzione, che si tratti del processo di produzione stesso o delle librerie di componenti utilizzate. Il miglioramento delle possibilità di integrazione dovuto al miglioramento dei processi produttivi, quantificato dalla legge di Moore , permette di ottenere circuiti elettronici più compatti ed efficienti. L'ottimizzazione dei circuiti asincroni può passare anche attraverso la scelta di opportuni componenti, dall'ottimizzazione del layout , ovvero della disposizione dei componenti sul circuito integrato , anche dal controllo delle taglie dei transistor di così come per adattare al meglio ogni porta al suo fan-out .

Adattamento dinamico della tensione di alimentazione

I circuiti elettronici consumano tanto più quanto la loro tensione di alimentazione è alta. Di conseguenza, cerchiamo di minimizzarlo per circuiti a basso consumo. Per ridurre questo senza sacrificare le prestazioni, la tensione può essere adattata al carico di lavoro del circuito o alla velocità desiderata. Questa ottimizzazione esiste anche per i circuiti sincroni, ma richiede congiuntamente un adattamento della frequenza di clock che viene fatto lentamente, dove il processo di mettere un circuito asincrono in standby e risvegliarsi dallo standby è estremamente veloce.

Note e riferimenti

Appunti

  1. Vicino al linguaggio CSP ma adattato alla descrizione dell'hardware
  2. Emissione nel 1996 da Theseus Research Incorporated, essa stessa fondata nel 1990 secondo la pagina web dell'azienda
  3. Un'ottimizzazione per i circuiti sincroni, chiamata "  clock gating  ", consiste nell'arrestarlo o rallentarlo quando il circuito rimane inattivo per un "lungo periodo".
  4. Questa è la distinzione tra consumi cosiddetti "dinamici" e "statici": il primo, il consumo di un circuito che cambia stato, è dovuto al carico dei fili, alle perdite e ai cortocircuiti durante le commutazioni; il secondo, il consumo di un circuito stabile, è dovuto solo al fatto che i transistor non sono perfetti e hanno delle perdite, ed è generalmente molto più basso
  5. spesso classificati in base a ciò che li causa: possono essere combinatori o sequenziali, logici o dinamici
  6. Sebbene il tempo di ciclo sia uniforme nei circuiti sincroni, questo non è il caso dei circuiti asincroni e sono necessari altri strumenti per quantificare le prestazioni, ad esempio come parte dell'ottimizzazione. Questo è il caso dei circuiti che formano loop, fork o che hanno ritardi variabili; in tali circuiti, il throughput e la latenza complessivi non sono facili da dedurre dalle proprietà locali. Possiamo leggere i riferimenti e il paragrafo dell'articolo dedicato all'ottimizzazione
  7. Stiamo parlando di circuiti globalmente asincroni ma localmente sincroni
  8. L'obiettivo è imporre un ordine tra due eventi potenzialmente simultanei, cosa impossibile in un tempo limitato; ad esempio, un arbitrato dovrà scegliere quale ingresso sarà ritrasmesso per primo a un'uscita comune
  9. Tali protocolli sono stati proposti per codifiche differenti
  10. Vari esempi possono essere trovati in letteratura, sebbene non abbiano tutte le proprietà di altri circuiti asincroni e tali condutture d'onda sono anche utilizzate in modo sincrono
  11. A volte, per motivi di prestazioni o affidabilità, codifichiamo su due fili, codificando il bit e il suo complementare
  12. Il filo di riconoscimento è presente, tranne il protocollo speciale
  13. Questo non è il caso delle implementazioni; questi sono spesso quasi insensibili ai ritardi, utilizzando un fork isocrono sul segnale di riconoscimento, ma l'interfaccia tra due elementi sarà insensibile ai ritardi
  14. A volte sono anche gli unici menzionati, come in Vivet 2001 , p.  10-11
  15. Questa codifica è anche chiamata LEDR per Level Encoded Dual-Rail  "
  16. Questi modelli prendono in considerazione solo i "ritardi puri", in contrasto con i "ritardi inerziali" che considerano variazioni livellate realistiche: gli impulsi troppo brevi non possono quindi essere trasmessi e le transizioni non sono istantanee
  17. Con tutti gli effetti parassiti che questo implica: rumore, oscillazioni, tensioni di soglia dei transistor, effetti capacitivi , resistivi , propagativi , ecc.
  18. A causa del fatto che le porte che seguono la forcella stessa hanno un ritardo, il che consente di verificarlo solo approssimativamente. Vedi Vivet 2001 , p.  23
  19. Tanto più con il progresso della miniaturizzazione
  20. È utilizzato dallo strumento "  Pietrifica  "
  21. Il circuito di handshake è spesso insensibile al ritardo, mentre i flip-flop sono costruiti su un modello di ritardo limitato
  22. Questo è il caso di quasi tutti i circuiti simulati a Shojaee, Gholipour, Nourani 2006
  23. Cercheremo di impedire loro di violare i presupposti di insensibilità alle scadenze, ad esempio
  24. Tale protocollo viene utilizzato per la propagazione del trasporto negli adder, anche se il resto dell'ambiente è costituito da dati raggruppati
  25. Come per esempio nelle micropipeline
  26. Sebbene qui sia anche possibile creare gate di completamento anticipato, che non sempre hanno un ritardo nel caso peggiore, prevedendo diversi possibili ritardi; ci sono molti esempi di tali porte nella letteratura, specialmente per gli addetti: si veda ad esempio Steven Nowick , Kenneth Yun , Peter Berel e Ayoob Dooply , Speculative Completion for the Design of High-Performance Asynchronous Dynamic Adders ,1997( leggi online )
  27. Questa fase di ripristino è chiamata "precarica"
  28. Ripristino mediante un cosiddetto segnale di "precarica" ​​prima di ogni calcolo

Riferimenti

  1. Ad esempio, Alain Martin ha scritto nel 2007: Un approccio asincrono offre molti vantaggi ed è inevitabile a lungo termine  " in [ppt] Logica asincrona: risultati e prospettive
  2. [PDF] (en) Charles L. Seitz , La storia remota di circuiti e sistemi asincroni ,20 maggio 2009( leggi online )
  3. Sparsø, Furber 2001 , p.  23
  4. [PDF] (in) Chris J. Myers , Asynchronous Circuit Design: Lezione 1: Introduzione, Prefazione e Capitolo 1 ( leggi online )
  5. [PDF] (en) Chris J. Myers , Asynchronous Circuit Design: Lezione 9: Applicazioni ( leggere online )
  6. Sparsø, Furber 2001 , p.  4
  7. [PDF] (en) DA Edwards e WB Tom , The Status of Asynchronous Design in Industry ,Giugno 2004, 3 e  ed. ( leggi online )
  8. (ps) Nicolas Boullis , Algoritmi di divisione per circuiti asincroni ,2001( leggi online )
  9. [PDF] Nell'articolo (a) Ivan E. Sutherland , "  Micropipelines  " , Communications of the ACM , vol.  32, n o  6,Giugno 1989, p.  19 ( leggi in linea )
  10. Presentazione di un articolo sul sito web IEEE
  11. Vivet 2001 , p.  32
  12. [PDF] (en) Alain J. Martin , Steven M. Burns , TK Lee , Drazen Borkovic e Pieter J. Hazewindus , la progettazione di un asincrono microprocessore ,1989( leggi online )
  13. [PDF] (en) Stephen B. Furber e Paul Day , quattro fasi Circuito Micropipeline Blocco di controllo ( leggere online )
  14. Vivet 2001 , p.  34
  15. (ps) (it) Alain J. Martin , Mika Nyström , Paul Penzes e Catherine Wong , velocità e rendimento energetico di un asincrono MIPS R3000 a microprocessore ,22 giugno 2001( leggi online )
  16. Vivet 2001 , p.  33
  17. Oggetto della tesi: Vivet 2001
  18. [PDF] (en) Marco Storto e Roberto Saletti , Time-Multiplexed Dual-Rail Protocol for Low-Power Delay-Insensitive Asynchronous Communication ( leggi online )
  19. [PDF] (EN) Ted Eugene Williams , anelli autotemporizzati e la loro applicazione alla divisione ,Maggio 1991( leggi online )Tesi presentata nel 1991 in vista del conseguimento di un dottorato presso la Stanford University
  20. [PDF] (en) Hans van Gageldonk , An asincrono a bassa potenza 80C51 microcontroller ,1998( leggi online )
  21. Junko Yoshida, "  Philips Gambit: Self-timing's here  "
  22. [PDF] Robert F. Sproull , Ivan E. Sutherland e Charles E. Molnar , Counterflow Pipeline Processor Architecture ,Aprile 1994( leggi online )
  23. Pagina di presentazione
  24. [PDF] Jordi Cortadella , Michael Kishinevsky , Alex Kondratyev , Luciano Lavagno e Alex Yakovlev , Petrify: uno strumento per manipolare specifiche concorrenti e sintesi di controller asincroni , 1996( leggi online )
  25. Vivet 2001 , p.  28
  26. [PDF] (en) Montek Singh e Steven M. Nowick , High-Throughput asincrono Pipelines per grana fine dinamica datapath ,aprile 2000( leggi online )
  27. Shojaee, Gholipour, Nourani 2006
  28. [PDF] (en) Montek Singh e Steven M. Nowick , MOUSETRAP: Connessione Transizione di segnalazione asincrona Pipelines ,giugno 2007( leggi online )Pubblicato in IEEE Transactions on Very Large Scale Integration Systems , volume 15
  29. Apparentemente presentato per la prima volta (interpretando Dinh Duc 2003 , p.  64) (in) Kees van Berkel e Arjan Bink , stretta di mano di segnalazione a traccia singola con applicazione a micropipeline e circuiti di handshake ,1996Non trovato in accesso gratuito
  30. [PDF] (en) Marcos Ferretti e Peter A. Beerel , single-track asincrono Pipeline Modelli Utilizzando 1-di-N Encoding , University of Southern California,2002( leggi online )
  31. [PDF] (it) Ivan E. Sutherland e Scott Fairbanks , Gasp: Un minimo di controllo FIFO , Sun Microsystems Laboratories,2001( leggi online )
  32. Articolo in francese e comunicato stampa originale
  33. Questi vantaggi sono descritti in numerosi articoli relativi all'elettronica asincrona, come Vivet 2001 , p.  16-18, Sparsø, Furber 2001 , pagg.  3-4 e Hauck 1995 , p.  1-2
  34. Vivet 2001 , p.  16-18
  35. La velocità dei circuiti asincroni varia con la temperatura senza richiedere regolazioni, poiché i ritardi del cancello, e non la frequenza di un orologio, determinano la loro velocità; circuiti insensibili o quasi insensibili ai ritardi tollereranno meglio queste variazioni.
  36. Come umoristicamente dimostrato sul primo microprocessore asincrono
  37. Vivet 2001 , p.  19-20 e Hauck 1995 , pagg.  2
  38. Davis e Nowick 1997 , p.  13-17
  39. Dinh-Duc 2003 , p.  15-19
  40. Dinh-Duc 2003 , p.  9
  41. [PDF] Florent Ouchet , Analisi e miglioramento della robustezza dei circuiti asincroni QDI ,dicembre 2011( leggi online )Tesi presentata nel 2011 in vista dell'ottenimento del dottorato dall'IPG
  42. Davis e Nowick 1997 , p.  3-5
  43. Vivet 2001 , p.  13 e Sparsø, Furber 2001 , pag.  47, il tempo di ciclo è correlato al flusso (a volte chiamato larghezza di banda dalla traduzione dall'inglese "  larghezza di banda  ")
  44. [PDF] (en) Genette D. Gill , Analysis and Optimization for Pipelined Asynchronous Systems ,2010( leggi online )Tesi di dottorato presentata nel 2010 dalla University of North Carolina
  45. Sommatori e moltiplicatori che utilizzano questo principio sono descritti in Vivet 2001 , p.  159-171; è una tecnica ampiamente utilizzata per la propagazione dei serbatoi
  46. [PDF] (en) Ilya Obridko e Ran Ginosar , Minimal energia dinamica asincrona Adders , Israel Institute of Technology,2006, 16  p. ( leggi online )Una versione abbreviata di questo articolo è stata accettata per la pubblicazione dalla rivista IEEE Trans. Su VLSI nel 2006
  47. Vivet 2001 , p.  14-15
  48. [PDF] (en) Jens Muttersbach , Thomas Villiger e Wolfgang Fichtner , Practical Design of Globally-Asynchronous Locally-Synchronous Systems , Swiss Federal Institute of Technology ( leggi online )
  49. Davis e Nowick 1997 , p.  5
  50. Vivet 2001 , p.  20-21
  51. Vivet 2001 , p.  16
  52. Vivet 2001 , p.  18-19
  53. [PDF] (in) Konrad J. Kulikowski , Ming Su , Alexander Smirnov , Alexander Taubin , Mark G. Karpovsky e Daniel MacDonald , "  Delay Insensitive Encoding and Power Analysis: A Balancing Act  " , ASYNC , IEEE,2005, p.  116-125 ( leggi in linea )
  54. Vivet 2001 , p.  15
  55. Vivet 2001 , p.  15-16
  56. Sparsø, Furber 2001 , p.  77-80
  57. Dinh-Duc , p.  13
  58. [PDF] (in) Mika Nyström , Asynchronous Pulse Logic , California Institute of Technology,14 maggio 2001( leggi online )Tesi presentata nel 2001 in vista del conseguimento di un dottorato a Berkeley
  59. [PDF] Ad esempio (in) T. Feng , B. Jin , J. Wang , N. Park , YB Kim e F. Lombardi , Fault Tolerant Clockless Wave Pipeline Design ( leggi online )e (en) O. Hauck e SA Huss , Asynchronous Wave Pipelines for High Throughput Dynamic Datapaths , Darmstadt University of Technology ( leggi online )
  60. Vivet 2001 , p.  11
  61. Vivet 2001 , p.  10-11
  62. Dinh-Duc , p.  11-12
  63. (ps) (it) Tom Verhoeff , Delay-insensitive Codici - Panoramica ,Gennaio 1987( leggi online )
  64. Vivet 2001 , p.  9-10
  65. Vivet 2001 , p.  21-24, Hauck 1995 , pagg.  3-22 e Sparsø, Furber 2001 , pagg.  25
  66. [PDF] (en) Rajit Manohar e Alain J. Martin , circuiti Quasi-delay-insensitive sono Turing-complete ,17 novembre 1995( leggi online )
  67. [PDF] (en) Alain J. Martin , The Limitations to Delay Insensitivity in Asynchronous Circuits ,gennaio 1990, 20  p. ( leggi online ), citato in Sparsø, Furber 2001 , p.  25 e Hauck 1995 , p.  13
  68. [PDF] (en) Kees van Berkel , Attenzione la forcella isochronic ,Gennaio 1991( leggi online )Pubblicato sulla rivista Integration, il VLSI Journal , volume 13, nel giugno 1992
  69. Vivet 2001 , p.  23-24 e Hauck 1995 , pagg.  21-22; per ulteriori spiegazioni, vedere l'articolo (in) "  Integrazione 3D: una rivoluzione nel design  " sulle tecnologie del mondo reale
  70. Hauck 1995 , p.  3-10
  71. Hauck 1995 , p.  10-11
  72. Vivet 2001 , p.  25-26
  73. Sparsø, Furber 2001 , p.  123, Vivet 2001 , p.  43-53
  74. Dinh-Duc 2003 , p.  35-37
  75. Sparsø, Furber 2001 , p.  86-114, Vivet 2001 , pagg.  27-28 e Hauck 1995 , pagg.  22-28
  76. Dinh-Duc , p.  25-39
  77. Dinh-Duc , p.  30-31
  78. Dinh-Duc , p.  31-33
  79. Dinh-Duc , p.  37-39
  80. [PDF] (in) Robert M. Fuhrer , Steven M. Nowick Michael Theobald , Niraj K. Jha , Bill Lin e Luis Plana , MINIMALIST: An Environment for the Synthesis, Verification and Testability of Burst-Mode Asynchronous machines ,26 giugno 1999( leggi online )
  81. Dinh-Duc , p.  35-37
  82. Dinh-Duc , p.  29-30
  83. Dinh-Duc , p.  33-35
  84. [PDF] (in) Karl M. Fant e Scott A. Brandt , NULL Convention Logic ™ , Theseus Logic Inc.1997( leggi online )
  85. Dinh-Duc 2003 , p.  26
  86. Vivet 2001 presenta un metodo di progettazione che utilizza una traduzione da CHP a VHDL
  87. Dinh Duc-2003 , pag.  26-27
  88. Rezzag 2004 , p.  30
  89. [PDF] (in) Raj Kamal , Digital Principles and Design: Capitolo 18 Lezione 1: Fundamental Mode Sequential Circuits ,2006( leggi online )
  90. Kishinevsky, Lavagno, Vanbekbergen 1995 , p.  29
  91. [PDF] (en) Steven M. Burns , analisi delle prestazioni e l'ottimizzazione di circuiti asincroni ,1991( leggi in linea ) , p.  49-55
  92. (in) Bernard Cole, "  Will Self-Timed Asynchronous Logic Design Rescue CPU?  " ,24 agosto 2002
  93. Davis e Nowick 1997 , p.  2
  94. Hauck 1995 , p.  2
  95. Vivet 2001 , p.  104-106
  96. [PDF] (en) Charlie Brej , Asynchronous Early Output and Early Acknowledge Dual-Rail Protocolli ,Ottobre 2002( leggi online )Tesi presentata nel 2002 in vista del conseguimento di un dottorato presso l' Università di Manchester e [PDF] (en) Charlie Brej , Early Output Logic and Anti-Tokens ,Settembre 2005( leggi online )Tesi presentata nel 2005 in vista del conseguimento di un dottorato presso l' Università di Manchester
  97. Dinh-Duc 2003 , p.  64
  98. [PDF] (en) S. Kaja Mohideen and J. Rajapaul Perinbam , Asynchronous Micropipeline Using an Effective Double Edge Trigerred D Flipflop ,Ottobre 2005( leggi online )
  99. Sparsø, Furber 2001 , p.  120
  100. Vivet 2001 , p.  70 e Dinh-Duc 2003 , p.  65-68
  101. Dinh Duc-2003 , pag.  65-66
  102. Dinh-Duc 2003 , p.  66-67
  103. Dinh Duc-2003 , pag.  67-68
  104. Vivet 2001 , p.  70
  105. [PDF] Marc Renaudin , circuiti asincroni e consumo ,20 novembre 2003( leggi online )
  106. [PDF] (in) Ivan E. Sutherland e Jon K. Lexau , Designing Fast Asynchronous Circuits ( leggi online )

Vedi anche

Bibliografia

  • [PDF] Pascal Vivet , Una metodologia per la progettazione di circuiti integrati quasi insensibili ai ritardi: applicazione allo studio e alla produzione di un processore RISC asincrono a 16 bit ,21 giugno 2001( leggi online )Tesi presentata nel 2001 in vista del conseguimento del dottorato presso l' IPG
  • [PDF] Anh-Vu Dinh-Duc , Sintesi automatica di circuiti asincroni QDI ,14 marzo 2003( leggi online )Tesi presentata nel 2003 in vista del conseguimento del dottorato presso l' IPG
  • [PDF] Amine Rezzag , Sintesi logica di circuiti asincroni micropipeline ,13 dicembre 2004( leggi online )Tesi presentata nel 2004 in vista dell'ottenimento del dottorato dall'IPG
  • [PDF] (en) Michael Kishinevsky , Luciano Lavagno e Peter Vanbekbergen , The Systematic Design of Asynchronous Circuits ,1995( leggi online )
  • [PDF] (en) Scott Hauck , "  Asynchronous Design Methodologies: An Overview  " , Atti dell'IEEE , vol.  83, n o  1,Gennaio 1995, p.  69-93 ( leggi online [ archivio di14 gennaio 2011] , visitato il 10 febbraio 2012 )
  • [PDF] (en) Al Davis e Steven M. Nowick , An Introduction to Asynchronous Circuit Design ,19 settembre 1997( leggi online )Nell'introduzione al documento, gli autori affermano che: "L'intenzione di questa monografia è di presentare sia un'introduzione al campo della progettazione di circuiti digitali asincroni sia una panoramica dello stato dell'arte nel 1997".
  • [PDF] (en) Jens Sparsø ( dir. ) And Steve Furber ( dir. ), Principles of asynchronous circuit design - A systems overview , Kluwer Academic Publishers,2001, 337  p. ( leggi online [ archivio di26 aprile 2012] )I capitoli da 1 a 8, che sono spesso citati, sono anche pubblicati indipendentemente: [PDF] (en) Jens Sparsø , Asynchronous circuit design: A tutorial ,2006( leggi online )
  • [PDF] (en) K. Shojaee e M. Gholipour , Studio comparativo dei metodi di progettazione di condotte asincrone ,26 gennaio 2006( leggi online )Simulazione delle prestazioni di varie pipeline asincrone, pubblicata su IEICE Electronics Express , volume 3, nell'aprile 2006