Asynchronní obvod - Asynchronous circuit

V digitální elektronice , jako asynchronní obvod , clockless nebo samostatně načasovaný obvodu, je sekvenční digitální logický obvod , který není řízen hodinovým obvodem nebo globální hodinového signálu . Místo toho často používá signály, které indikují dokončení pokynů a operací, určené jednoduchými protokoly pro přenos dat . Tento typ obvodu je v kontrastu se synchronními obvody , ve kterých jsou změny hodnot signálu v obvodu spouštěny opakujícími se impulsy nazývanými hodinový signál. Většina digitálních zařízení dnes používá synchronní obvody. Asynchronní obvody však mají potenciál být rychlejší a mohou mít také výhody v nižší spotřebě energie, nižším elektromagnetickém rušení a lepší modularitě ve velkých systémech. Asynchronní obvody jsou aktivní oblastí výzkumu v oblasti návrhu digitální logiky .

Synchronní vs asynchronní logika

Digitální logické obvody lze rozdělit na kombinační logiku , ve které jsou výstupní signály závislé pouze na aktuálních vstupních signálech, a sekvenční logiku , ve které výstup závisí jak na proudovém vstupu, tak na minulých vstupech. Jinými slovy, sekvenční logika je kombinační logika s pamětí . Prakticky všechna praktická digitální zařízení vyžadují sekvenční logiku. Sekvenční logiku lze rozdělit na dva typy, synchronní logiku a asynchronní logiku.

  • V synchronních logických obvodech generuje elektronický oscilátor opakující se sérii stejně rozložených impulsů nazývaných hodinový signál . Hodinový signál je aplikován na všechny paměťové prvky v obvodu, nazývané klopné obvody . Výstup klopných obvodů se mění pouze při spuštění okrajem hodinového impulsu, takže změny logických signálů v celém obvodu začínají současně, v pravidelných intervalech synchronizovaných hodinami. Výstup všech paměťových prvků v obvodu se nazývá stav obvodu. Stav synchronního obvodu se mění pouze na hodinovém impulsu. Změny signálu vyžadují určitý čas k šíření přes kombinační logické brány obvodu. Tomu se říká zpoždění šíření . Perioda hodinového signálu je dostatečně dlouhá, takže výstup všech logických bran má čas usadit se na stabilní hodnoty před dalším hodinovým impulzem. Dokud je tato podmínka splněna, synchronní obvody budou fungovat stabilně, takže se snadno navrhují.
Nevýhodou synchronních obvodů však je, že mohou být pomalé. Maximální možná taktovací rychlost je určena logickou cestou s nejdelším zpožděním šíření, která se nazývá kritická cesta . Logické cesty, které rychle dokončí své operace, jsou tedy většinu času nečinné. Dalším problémem je, že široce distribuovaný hodinový signál vyžaduje hodně energie a musí běžet bez ohledu na to, zda obvod přijímá vstupy nebo ne.
  • V asynchronních obvodech není hodinový signál a stav obvodu se změní, jakmile se změní vstupy. Protože asynchronní obvody nemusí čekat na hodinový impuls, aby zahájily zpracování vstupů, mohou být rychlejší než synchronní obvody a jejich rychlost je teoreticky omezena pouze zpožděním šíření logických bran. Asynchronní obvody jsou však obtížněji navrženy a podléhají problémům, které se v synchronních obvodech nenacházejí. Důvodem je, že výsledný stav asynchronního obvodu může být citlivý na relativní časy příjezdu vstupů na branách. Pokud přechody na dvou vstupech dorazí téměř ve stejnou dobu, obvod se může dostat do špatného stavu v závislosti na mírných rozdílech v zpoždění šíření bran. Tomu se říká závodní podmínky . V synchronních obvodech je tento problém méně závažný, protože ke konfliktním podmínkám může dojít pouze kvůli vstupům mimo synchronní systém, nazývaným asynchronní vstupy . Ačkoli byly postaveny některé plně asynchronní digitální systémy (viz níže), dnes se asynchronní obvody obvykle používají v několika kritických částech jinak synchronních systémů, kde je rychlost na špičkové úrovni, například v obvodech zpracování signálu.

Teoretické základy

Původní teorii asynchronních obvodů vytvořil David E. Muller v polovině 50. let minulého století. Tato teorie byla představena později ve známé knize „Přepínací teorie“ od Raymonda Millera.

Termín asynchronní logika se používá k popisu různých stylů návrhu, které používají různé předpoklady o vlastnostech obvodu. Ty se liší od svazkového modelu zpoždění -který používá "konvenční" prvky pro zpracování dat s dokončením indikovaným lokálně generovaným modelem zpoždění-až po návrh necitlivý na zpoždění- kde lze umístit libovolná zpoždění prostřednictvím obvodových prvků. Druhý styl má tendenci poskytovat obvody, které jsou větší než implementace svazkových dat, ale které jsou necitlivé na rozložení a parametrické variace, a jsou tedy „správné od návrhu“.

Asynchronní logika je logika potřebná pro návrh asynchronních digitálních systémů. Tyto funkce fungují bez hodinového signálu, a proto nelze spoléhat na to, že v každém daném čase budou mít jednotlivé logické prvky diskrétní stav true/false. Booleovská logika (se dvěma hodnotami) je k tomu nedostatečná, a proto jsou nutná rozšíření. Karl Fant vyvinul toto teoretické zpracování ve své práci Logicky determinovaný design v roce 2005, který používal logiku se čtyřmi hodnotami, přičemž doplňkovými hodnotami byly nulové a střední hodnoty. Tato architektura je důležitá, protože je necitlivá na kvazi zpoždění . Scott Smith a Jia Di vyvinuli variantu Fant's Null Convention Logic s ultra nízkou spotřebou, která obsahuje víceprahový CMOS . Tato variace se označuje jako Multi-threshold Null Convention Logic (MTNCL), nebo alternativně Sleep Convention Logic (SCL). Vadim Vasyukevich vyvinul jiný přístup založený na nové logické operaci, kterou nazval venjunction . To bere v úvahu nejen aktuální hodnotu prvku, ale také jeho historii.

Petriho sítě jsou atraktivní a výkonný model pro úvahy o asynchronních obvodech (viz Petriho síť: Následné modely souběžnosti ). Zvláště užitečný typ interpretovaných Petriho sítí, nazývaný Signal Transition Graphs (STG), navrhli nezávisle v roce 1985 Leonid Rosenblum a Alex Yakovlev a Tam-Anh Chu. Od té doby byly STG rozsáhle studovány v teorii a praxi, což vedlo k vývoji populárních softwarových nástrojů pro analýzu a syntézu asynchronních řídicích obvodů, jako jsou Petrify a Workcraft.

V návaznosti na Petriho sítě byly vyvinuty další modely souběžnosti, které dokážou modelovat asynchronní obvody včetně hercova modelu a procesních kalkulů .

Výhody

Asynchronní obvody prokázaly řadu výhod, včetně obvodů necitlivých na kvazi zpoždění (QDI) (obecně uznávaných jako „nejčistší“ forma asynchronní logiky, která si zachovává výpočetní univerzálnost) a méně čistých forem asynchronních obvodů, které používají časová omezení pro vyšší výkon a nižší plochu a výkon:

  • Robustní manipulace metastabilitě z arbitrů .
  • Vyšší výkonové funkční jednotky, které poskytují spíše dokončení v průměrném případě (tj. Závislé na datech) než dokončení v nejhorším případě. Mezi příklady patří spekulativní dokončení, které bylo použito pro navrhování doplňků paralelních předpon rychleji než synchronní, a vysoce výkonný sčítač s plovoucí desetinnou čárkou s dvojitou přesností, který překonává přední synchronní návrhy.
  • Předčasné dokončení okruhu, když je známo, že vstupy, které ještě nedorazily, jsou irelevantní.
  • Nižší spotřeba energie, protože žádný tranzistor nikdy nepřechází, pokud neprovádí užitečné výpočty. Společnost Epson oznámila o 70% nižší spotřebu energie ve srovnání se synchronním designem. Lze také odebrat ovladače hodin, což může výrazně snížit spotřebu energie. Při použití určitých kódování však mohou asynchronní obvody vyžadovat větší plochu, což může mít za následek zvýšenou spotřebu energie, pokud má podkladový proces špatné vlastnosti úniku (například hluboké submikrometrické procesy používané před zavedením dielektrika s vysokým κ ).
  • „Elastická“ potrubí , která dosahují vysokého výkonu při elegantním zpracování proměnných vstupních a výstupních rychlostí a nesouladu zpoždění fáze potrubí.
  • Osvobození od stále se zhoršujících potíží s distribucí hodinového signálu s vysokým ventilátorem a citlivým na časování.
  • Lepší modularita a skladatelnost.
  • Je požadováno mnohem méně předpokladů o výrobním postupu (většina předpokladů jsou předpoklady načasování).
  • Rychlost obvodu se přizpůsobuje měnícím se teplotním a napěťovým podmínkám, místo aby byla uzamčena na rychlost nařízenou předpoklady nejhoršího případu.
  • Odolnost vůči variabilitě tranzistorů na tranzistory ve výrobním procesu, což je jeden z nejzávažnějších problémů, kterým čelí polovodičový průmysl při smršťování zápustek.
  • Méně závažné elektromagnetické rušení (EMI). Synchronní obvody vytvářejí velké množství EMI ve frekvenčním pásmu na (nebo velmi blízko) jejich hodinové frekvenci a jejích harmonických; asynchronní obvody generují EMI vzory, které jsou mnohem rovnoměrněji rozloženy po celém spektru.
  • V asynchronních obvodech eliminuje místní signalizace potřebu globální synchronizace, která ve srovnání se synchronními využívá některé potenciální výhody. Ukázali potenciální specifikace při nízké spotřebě energie, opakovaném použití designu, zlepšené odolnosti proti šumu a elektromagnetické kompatibilitě. Asynchronní obvody jsou tolerantnější ke změnám procesu a kolísání vnějšího napětí.
  • Méně namáhání distribuční sítě. Synchronní obvody mají tendenci odebírat velké množství proudu přímo na okraji hodin a krátce poté. Počet přepínajících se uzlů (a odtud množství odebíraného proudu) rychle klesá po hodinové hraně a dosahuje nuly těsně před další hodinovou hranou. V asynchronním obvodu nejsou spínací časy uzlů tímto způsobem korelovány, takže odběr proudu má tendenci být rovnoměrnější a méně nárazový.

Nevýhody

  • Plošná režie způsobená zvýšením počtu obvodových prvků (tranzistorů). V některých případech může asynchronní návrh vyžadovat až zdvojnásobení prostředků synchronního návrhu kvůli přidání obvodů detekce dokončení a návrhů pro testovací obvody.
  • V porovnání se synchronním designem je v tomto stylu vyškoleno méně lidí.
  • Synchronní návrhy jsou ze své podstaty snazší testovat a ladit než asynchronní návrhy. Tuto pozici však zpochybňuje Fant, který tvrdí, že zjevná jednoduchost synchronní logiky je artefaktem matematických modelů používaných běžnými přístupy návrhu.
  • Hodinová brána v běžnějších synchronních provedeních je aproximací asynchronního ideálu a v některých případech může její jednoduchost převážit nad výhodami plně asynchronního návrhu.
  • V architekturách, které vyžadují úplnost vstupu (složitější datová cesta), lze snížit výkon (rychlost) asynchronních obvodů.
  • Nedostatek vyhrazených asynchronních komerčních nástrojů EDA zaměřených na design .

Sdělení

Existuje několik způsobů, jak vytvořit asynchronní komunikační kanály, které lze klasifikovat podle jejich protokolu a kódování dat.

Protokoly

Existují dvě široce používané rodiny protokolů, které se liší způsobem kódování komunikace:

  • dvoufázové handshake ( aka dvoufázový protokol, kódování bez návratu k nule (NRZ) nebo signalizace přechodu): Komunikace je reprezentována jakýmkoli drátovým přechodem; přechody z 0 na 1 a z 1 do 0 se považují za komunikaci.
  • čtyřfázové handshake (aka čtyřfázový protokol nebo kódování Return-to-Zero (RZ)): Komunikace je reprezentována drátovým přechodem následovaným resetem; sekvence přechodu z 0 na 1 a zpět na 0 se počítá jako jedna komunikace.
Ilustrace dvou a čtyřfázových potřesení rukou. Nahoru: Odesílatel a příjemce komunikují pomocí jednoduchých požadavků a potvrzovacích signálů. Odesílatel řídí řádek požadavku a příjemce řídí linku potvrzení. Uprostřed: Časový diagram dvou, dvoufázových komunikací. Dole: Časový diagram jedné, čtyřfázové komunikace.

Navzdory zapojení více přechodů na komunikaci jsou obvody implementující čtyřfázové protokoly obvykle rychlejší a jednodušší než dvoufázové protokoly, protože signální linky se na konci každé komunikace vrátí do původního stavu. U dvoufázových protokolů by implementace obvodů musely interně ukládat stav signálního vedení.

Tyto základní rozdíly neberou v úvahu širokou škálu protokolů. Tyto protokoly mohou kódovat pouze požadavky a potvrzení nebo také kódovat data, což vede k populárnímu vícevodičovému kódování dat. Bylo navrženo mnoho dalších, méně obvyklých protokolů, včetně použití jediného drátu pro požadavek a potvrzení, použití několika významných napětí, použití pouze pulzů nebo vyvažovacích časování za účelem odstranění západek.

Kódování dat

V asynchronních obvodech existují dvě široce používaná kódování dat: kódování sdružených dat a kódování na více kolejích

Dalším běžným způsobem kódování dat je použití více vodičů ke kódování jedné číslice: hodnota je určena vodičem, na kterém k události dojde. Tím se zabrání některým předpokladům zpoždění nezbytným pro kódování balíčkových dat, protože požadavek a data již nejsou oddělena.

Kódování sdružených dat

Kódování přiložených dat používá jeden vodič na bit dat s požadavkem a potvrzovacím signálem; toto je stejné kódování používané v synchronních obvodech bez omezení, že k přechodům dochází na hraně hodin. Požadavek a potvrzení jsou odeslány na samostatných vodičích s jedním z výše uvedených protokolů. Tyto obvody obvykle předpokládají model ohraničeného zpoždění s dokončovacími signály zpožděnými dostatečně dlouho na to, aby mohly proběhnout výpočty.

Za provozu odesílatel signalizuje dostupnost a platnost dat požadavkem. Přijímač pak indikuje dokončení potvrzením, což znamená, že je schopen zpracovat nové požadavky. To znamená, že požadavek je spojen s daty, odtud název "bundled-data".

Obvody sdružených dat jsou často označovány jako mikropotrubí , ať už používají dvoufázový nebo čtyřfázový protokol, i když byl termín původně zaveden pro dvoufázová sdružená data.

4fázová komunikace v balíku dat. Nahoru: Odesílatel a příjemce jsou spojeni datovými linkami, linkou požadavku a linkou potvrzení. Dole: Časový diagram sdružené datové komunikace. Pokud je řádek požadavku nízký, data se považují za neplatná a mohou se kdykoli změnit.

Kódování více kolejnic

Kódování více kolejnic používá více vodičů bez vzájemného vztahu mezi bity a dráty a samostatného potvrzovacího signálu. Dostupnost dat je indikována samotnými přechody na jednom nebo více datových vodičích (v závislosti na typu vícekolejového kódování) místo s požadavkovým signálem jako v kódování sdružených dat. To poskytuje tu výhodu, že datová komunikace není citlivá na zpoždění. Dvě běžná kódování více kolejnic jsou jedna a dvě kolejnice. Jednorázové (neboli 1 z n) kódování představuje číslo v základně n s komunikací na jednom z n vodičů. Kódování dvou kolejnic používá páry vodičů k reprezentaci každého bitu dat, odtud název „dual-rail“; jeden vodič v páru představuje bitovou hodnotu 0 a druhý představuje bitovou hodnotu 1. Například dvoubitové kódované dvoubitové číslo s dvojitou kolejnicí bude reprezentováno dvěma páry vodičů pro celkem čtyři dráty. Během datové komunikace probíhá komunikace na jednom z každého páru vodičů pro indikaci datových bitů. V obecném případě kódování m n představuje data jako m slova báze n.

Schéma komunikace na dvou kolejích a komunikace 1 ze 4. Nahoru: Odesílatel a příjemce jsou spojeni datovými linkami a potvrzovací linkou. Uprostřed: Časový diagram odesílatele sdělující hodnoty 0, 1, 2 a poté 3 přijímači s kódováním 1 ze 4. Dole: Časový diagram odesílatele, který s přijímačem sděluje stejné hodnoty pomocí dvoukolejového kódování. Pro tuto konkrétní velikost dat je kódování dual rail stejné jako kódování 2x1-of-2.

Kódování na dvou kolejích se čtyřfázovým protokolem je nejběžnější a nazývá se také třístavové kódování , protože má dva platné stavy (10 a 01, po přechodu) a stav resetování (00). Dalším běžným kódováním, které vede k jednodušší implementaci než jednofázové dvoufázové dvoukolejnice, je čtyřstavové kódování nebo dvouúrovňové kódování na úrovni a používá datový bit a paritní bit k dosažení dvoufázového protokol.

Asynchronní CPU

Asynchronní CPU jsou jedním z několika nápadů na radikálně se měnící design CPU .

Na rozdíl od konvenčního procesoru nemá hodinový procesor (asynchronní CPU) žádné centrální hodiny pro koordinaci postupu dat potrubím. Místo toho jsou fáze CPU koordinovány pomocí logických zařízení nazývaných „ovládání potrubí“ nebo „sekvencery FIFO“. V zásadě řadič potrubí taktuje další fázi logiky, když je stávající fáze dokončena. Tímto způsobem jsou centrální hodiny zbytečné. Ve skutečnosti může být ještě snazší implementovat vysoce výkonná zařízení v asynchronní, na rozdíl od taktované logiky:

  • součásti mohou běžet na asynchronním CPU různými rychlostmi; všechny hlavní součásti taktovaného CPU musí zůstat synchronizovány s centrálními hodinami;
  • tradiční CPU nemůže „jet rychleji“, než je očekávaný výkon nejhoršího případu nejpomalejšího stupně/instrukce/komponenty. Když asynchronní procesor dokončí operaci rychleji, než se očekávalo, další fáze může okamžitě začít zpracovávat výsledky, místo aby čekala na synchronizaci s centrálními hodinami. Operace může skončit rychleji než obvykle kvůli atributům zpracovávaných dat (např. Násobení může být velmi rychlé při násobení 0 nebo 1, dokonce i když běží kód vytvořený naivním kompilátorem) nebo kvůli přítomnosti vyššího napětí nebo nastavení rychlosti sběrnice nebo nižší okolní teplota, než je „normální“ nebo očekávaná.

Zastánci asynchronní logiky věří, že tyto možnosti budou mít tyto výhody:

  • nižší ztrátový výkon pro danou výkonnostní úroveň a
  • nejvyšší možné rychlosti provedení.

Největší nevýhodou CPU bez hodin je, že většina nástrojů pro návrh CPU předpokládá taktovaný CPU (tj. Synchronní obvod ). Mnoho nástrojů „vynucuje postupy synchronního návrhu“. Vytvoření CPU bez hodin (návrh asynchronního obvodu) zahrnuje úpravu návrhových nástrojů tak, aby zvládaly logiku bez hodin, a provedení dalších testů, aby se zajistilo, že se návrh vyhne metastabilním problémům. Skupina, která navrhla AMULET , například vyvinula nástroj nazvaný LARD, který se má vypořádat se složitým designem AMULET3.

Navzdory obtížnosti bylo vytvořeno mnoho asynchronních procesorů, včetně:

  • ORDVAC a (stejné) ILLIAC I (1951)
  • Johnniac (1953)
  • WEIZAC (1955)
  • Kyjev (1958). Sovětský stroj využívající programovací jazyk s ukazateli mnohem dříve, než přišli do jazyka PL/1.

  • ILLIAC II (1962)
  • Victoria University of Manchester postavený Atlas (1964)
  • Sálové počítače ICL 1906A a 1906S, součást řady 1900 a prodávány od roku 1964 společností ICL více než deset let
  • Polské počítače KAR-65 a K-202 (1965 a 1970 v uvedeném pořadí)
  • Honeywell CPU 6180 (1972) a řady 60 úrovně 68 (1981), na němž Multics běžel asynchronně
  • Sovětské mikroprocesorové moduly bitových řezů (pozdní 1970) vyráběné jako К587, К588 a К1883 (U83x ve východním Německu)
  • Asynchronní mikroprocesor Caltech, první asynchronní mikroprocesor na světě (1988);
  • ARM -implementing Amulet (1993 a 2000);
  • asynchronní implementace MIPS R3000, nazvaná MiniMIPS (1998);
  • několik verzí procesoru XAP experimentovalo s různými asynchronními styly návrhu: sdružený datový XAP, 1 ze 4 XAP a 1 z 2 (dual-rail) XAP (2003?);
  • procesor kompatibilní s ARM (2003?) navržený ZC Yu, SB Furber a LA Plana; „navrženo speciálně k prozkoumání výhod asynchronního návrhu pro aplikace citlivé na zabezpečení“;
  • procesor „Asynchronous Architecture na bázi sítě“ (2005), který vykonává podmnožinu sady instrukcí architektury MIPS ;
  • procesor ARM996HS (2006) od společnosti Handshake Solutions
  • procesor HT80C51 (2007?) od společnosti Handshake Solutions
  • vícejádrový procesor SEAforth (2008) od Charlese H. Moora .
  • vícejádrový procesor GA144 (2010) od Charlese H. Moora .
  • TAM16: 16bitové asynchronní mikrokontrolérové ​​jádro IP (Tiempo)
  • asynchronní DLX jádro Aspida Asynchronní open-source procesor DLX (ASPIDA) byl úspěšně implementován ve verzích ASIC i FPGA.

ILLIAC II byl první úplně asynchronní rychlosti nezávislá provedení procesor všech dob; v té době to byl nejvýkonnější počítač.

Přenosové moduly registru DEC PDP-16 (asi 1973) umožnily experimentátorovi konstruovat asynchronní 16bitové prvky zpracování. Zpoždění pro každý modul bylo opraveno a vycházelo z nejhoršího načasování modulu.

Caltech Asynchronní Mikroprocesor (1988) byl první asynchronní mikroprocesor (1988). Společnost Caltech navrhla a vyrobila první plně nezávislý procesor Quasi Delay Insensitive na světě . Během demonstrací vědci načetli jednoduchý program, který běžel v těsné smyčce a po každé instrukci pulzoval jeden z výstupních řádků. Tato výstupní linka byla připojena k osciloskopu. Když byl na čip položen šálek horké kávy, tepová frekvence (efektivní „taktovací frekvence“) se přirozeně zpomalila, aby se přizpůsobila zhoršujícímu se výkonu zahřátých tranzistorů. Když byl na čip nalit tekutý dusík , rychlost instrukce se zvýšila bez dalšího zásahu. Navíc při nižších teplotách bylo možné bezpečně zvýšit napětí dodávané na čip, což také zlepšilo rychlost instrukcí - opět bez další konfigurace.

V roce 2004 vyrobila společnost Epson první ohebný mikroprocesor na světě s názvem ACT11, 8bitový asynchronní čip. Synchronní flexibilní procesory jsou pomalejší, protože ohýbání materiálu, na kterém je čip vyroben, způsobuje divoké a nepředvídatelné variace zpoždění různých tranzistorů, u nichž je třeba všude předpokládat nejhorší scénáře a vše musí být taktováno rychlostí nejhoršího případu. Procesor je určen pro použití v čipových kartách , jejichž čipy jsou v současné době omezeny velikostí na dostatečně malé, aby mohly zůstat dokonale tuhé.

V roce 2014 společnost IBM oznámila čip vyvinutý ve společnosti SyNAPSE, který běží asynchronně a má jeden z nejvyšších počtů tranzistorů ze všech dosud vyrobených čipů. Čip IBM spotřebuje v benchmarcích rozpoznávání vzorů řádově méně energie než tradiční výpočetní systémy.

Viz také

Reference

Další čtení