Hva er en asynkron krets?
En asynkron krets er et nettverk av stort sett uavhengige komponenter som videresender data når operasjonen deres er fullført. Dette i motsetning til en synkron krets der elementene blir pollet for data som svar på et globalt tidssignal. I en asynkron krets bestemmer dataoverføringsprotokoller når og hvordan data blir utvekslet. I stedet for regelmessig polling av hver komponent, overføres data når komponenten selv signaliserer at den er klar.
De fleste elektroniske kretsimplementeringer bruker synkron design. Dette er en enklere modell der alle komponentene fungerer innenfor samme tidsramme. I en asynkron krets fungerer komponentene uavhengig av hvilken som helst tidsramme. I stedet for en diskret tid pålagt globalt, bruker komponentene håndtrykk og overføringsprotokoller. Disse utfører nødvendig synkronisering, dataoverføring og operasjonssekvensering.
Det er flere overføringsprotokoller som brukes i asynkrone kretsløp. Alt inkluderer håndtrykk, som sikrer at når en komponent er klar til å overføre data til en nabo, er naboen fritt til å motta dem og videreføre den. Siden komponentene fungerer uten henvisning til en felles tidsramme, kan operasjoner bli fullført av sekvens. Overføringsprotokollen koder dataene som er produsert på en slik måte at de kan settes sammen i riktig rekkefølge.
Noen tidlige datamaskiner benyttet asynkron design. Illinois Integrator and Automatic Computer, eller ILLIAC I, utviklet av University of Illinois i 1951, var et slikt design. Rask fremgang i integrert kretsteknologi krevde en mer grunnleggende design som var kompatibel med de tilgjengelige ressursene. Synkron design med en systemklokke ble den foretrukne tilnærmingen.
Asynkron kretsdesign har flere potensielle fordeler. Kraftforbruket vil være langt mindre med eliminering av tidskretsen, og det er ikke nødvendig å krafttransistorer som ikke er i bruk. Driftshastighet vil bli bestemt av faktiske forsinkelser mellom komponentene. I synkron design pålegges hastigheten for å imøtekomme det svakeste elementet. En krets designet for å operere under asynkron logikk vil typisk bli mindre påvirket av de små variasjonene i komponentdeler på grunn av produksjonsprosessen.
Ulempene med design av asynkron krets stammer hovedsakelig av kompleksiteten. Antall elementer som er nødvendige, kan være mye større enn det som kreves for en synkron krets. Det er få CAD-verktøy (Computer Assisted Design) laget for asynkron kretsdesign. Disse kretsløpene er også langt vanskeligere å feilsøke og feilsøke enn konvensjonelle design. Den ekstra maskinvarekostnaden og vanskeligheter med implementering kan oppveie gevinster i strømforbruk og effektivitet.