Risposta breve: i manager vogliono una PROVA semplice, testabile, prima di impegnarsi in milioni (o più) di dollari per un progetto. Strumenti attuali, semplicemente non danno risposte asincrone a quelle risposte.
I microcomputer e i microcontrollori utilizzano in genere uno schema di clock per assicurare il controllo della temporizzazione. Tutti gli angoli del processo devono mantenere i tempi attraverso tutti gli effetti di tensione, temperatura, processo, ecc. Sulle velocità di propagazione del segnale. Ci sono no porte logiche correnti cambiano istantaneamente: ciascuna porta commuta in funzione della tensione viene fornita, l'azionamento ottiene, il carico guida, e le dimensioni dei dispositivi che vengono utilizzati per rendere, (e, naturalmente, il nodo di processo (dimensione del dispositivo) in cui è realizzato e quanto velocemente quel processo sta effettivamente eseguendo --- QUESTO passa attraverso il fab). Per arrivare alla commutazione "istantanea", dovresti usare la logica quantistica e questo presuppone che i dispositivi quantistici possano passare all'istante; (Non sono sicuro).
La logica con clock fa PROVARE che i tempi sull'intero processore funzionano attraverso la tensione, la temperatura e le variabili di elaborazione previste. Ci sono molti strumenti software disponibili che aiutano a misurare questo timing, e il processo netto è chiamato "chiusura del timing". L'orologio può (e, nella mia esperienza, non ) prendere da qualche parte tra 1/3 a 1/2 della potenza utilizzata in un microprocessore.
Quindi, perché non un design asincrono? Esistono pochi, se non nessuno, strumenti di chiusura dei tempi per supportare questo stile di progettazione. Esistono pochi, se non nessuno, strumenti automatici di localizzazione e percorso in grado di gestire e gestire un grande progetto asincrono. Se non altro, i gestori NON approvano nulla che non abbia una PROVA semplice, generata da computer, di funzionalità.
Il commento secondo cui il design asincrono richiede "una tonnellata di" segnali di sincronizzazione, che richiedevano "molti più transistor", ignora i costi di routing e sincronizzazione di un clock globale e il costo di tutti i flip-flop richiesti dal sistema di clock. I progetti asincroni sono (o dovrebbero essere) più piccoli e più veloci delle loro controparti con clock. (Uno prende semplicemente il percorso del segnale ONE più lento e lo utilizza per inviare un segnale "pronto" alla logica precedente).
La logica asincrona è più veloce, perché non deve mai aspettare un orologio che doveva essere esteso per un altro blocco da qualche altra parte. Ciò è particolarmente vero nelle funzioni da registro a logica da registrare. La logica asincrona non presenta più problemi di "impostazione" e "blocco", poiché solo le strutture (registri) finali hanno tali problemi, al contrario di un insieme di logica pipeline con flip-flop intervallati nello spazio che la propagazione della logica ritarda al clock confini.
Si può fare? Certamente, anche su un miliardo di progetti di transistor. È più difficile? Sì, ma solo perché PROVARE che funziona su un intero chip (o anche sul sistema), è molto più coinvolto. Ottenere i tempi sulla carta è ragionevolmente diretto per ogni blocco o sottosistema. Ottenere il controllo della temporizzazione in un sistema di percorso e percorso automatizzato è molto più difficile, poiché gli strumenti NON sono impostati per gestire il potenziale più ampio insieme di vincoli di temporizzazione.
I microcontrollori hanno anche un insieme potenzialmente ampio di altri blocchi che si interfacciano a segnali esterni (relativamente) lenti, aggiunti a tutta la complessità di un microprocessore. Ciò rende i tempi un po 'più coinvolti, ma non molto.
Il raggiungimento di un meccanismo di "blocco" del "primo arrivato" è un problema di progettazione del circuito, e ci sono modi noti per affrontarlo. Le condizioni di gara sono un segno di 1). cattiva pratica di progettazione; o 2). segnali esterni che entrano nel processore. Il clocking in realtà introduce una condizione di competizione segnale-orologio che è correlata alle violazioni di "impostazione" e "blocco".
Personalmente, non capisco come un progetto asincrono possa entrare in una situazione di stallo o in qualsiasi altra condizione di gara. Questa potrebbe essere la mia limitazione, ma a meno che non accada quando i dati entrano nel processore, non dovrebbe MAI essere possibile in un sistema logico ben progettato, e anche allora, poiché può accadere quando i segnali entrano, si progetta di gestirlo.
(Spero che aiuti).
Detto questo, se hai i soldi ...