Dlaczego obwody w pełni asynchroniczne nie są bardziej rozpowszechnione? [Zamknięte]

19

Z mojego zrozumienia, większość współczesnych procesorów konsumenckich opiera się na logice synchronicznej. Niektóre aplikacje o dużej prędkości (przetwarzanie sygnałów itp.) Używają logiki ansync dla większej prędkości.

Jednak na dzisiejszym rynku szybkość w produktach konsumenckich jest jednym z głównych punktów sprzedaży (patrz AMD vs. Intel). Czy rozwój bardziej skomplikowanej litografii jest szybszy niż przyjęcie w pełni asynchronicznej logiki? A może logika ansynchroniczna jest zbyt skomplikowana / niepraktyczna dla aplikacji VLSI?

Corsair64
źródło
4
Myślę, że bardzo trudno jest zaprogramować je w sposób proceduralny.
mehmet.ali.anil
16
Obecne architektury są hybrydowe. Bloki synchroniczne są ze sobą połączone w sposób asynchroniczny. I tak, logika asynchroniczna jest znacznie bardziej skomplikowana.
Eugene Sh.
5
Ponieważ nie mamy jeszcze dobrych narzędzi do asynchronicznego zamykania czasu.
Oldfart
2
Systemy stają się coraz bardziej asynchroniczne. Na współczesnych procesorach rzeczy takie jak pamięć RAM, pamięć podręczna i rdzenie procesora działają z niezależnymi zegarami. Nowe procesory Intel HEDT posuwają się o krok dalej i pozwalają każdemu z wielu rdzeni w układach działać z niezależnymi od siebie zegarami oraz z pamięci RAM, pamięci podręcznej i zewnętrznych magistrali itp.
J ...
1
Trzeba pamiętać, że zegary synchroniczne wprowadzają ustandaryzowane bicie serca dla systemu, podczas gdy jeśli używasz czysto asynchronicznego projektu, w przeciwnym razie trywialne różnice czasowe, takie jak opóźnienie propagacji, mogą wymagać wyrównania za pomocą innych środków. Stosunkowo czyste jest również implementowanie czystych funkcji w projektach asynchronicznych, ale funkcje stanowe (lub trudniejsze operacje, takie jak pierwiastek kwadratowy) mogą się skomplikować. Sygnały trasowania mogą być również trudne (brak autobusów, możesz utknąć łącząc wszystko ze wszystkim).
jrh

Odpowiedzi:

45

Spędziłem kilka lat w startupie komercjalizującym technologię projektowania asynchronicznego, więc znam powody:

  • asynchronizacja nie jest z natury szybsza. Opóźnienie ścieżki najgorszego przypadku pozostaje takie samo. Po prostu czasami możesz skorzystać z szybszego wykonywania ścieżki.

  • async ma również narzut związany z wykrywaniem zakończenia.

  • Narzędzia do projektowania. To jest naprawdę duże: tak naprawdę nie ma pełnego asynchronicznego „przepływu” narzędzi dostępnych w tej samej jakości co projektowanie synchroniczne.

  • Trening. Będziesz musiał skutecznie przekwalifikować wszystkich projektantów na nowy paradygmat i narzędzia.

  • Ryzyko i konserwatyzm. Tak duża część branży „produkuje coś podobnego do ostatniego, ale nieco innego”. Ma to bardzo dużą szansę na działanie. Firmy znacznie niechętnie budują coś zupełnie innego, ponieważ ma znacznie większą szansę na całkowity odpis kosztujący dziesiątki milionów dolarów.

pjc50
źródło
Może to być z natury tańsze, ale wolniejsze.
Tony Stewart Sunnyskyguy EE75
3
Pamiętam, jak kiedyś o tym pomyślałem, a także zdałem sobie sprawę: zsynchronizowany układ jest trywialnie podkręcony (dla baterii / temp / itp.), Podczas gdy układ asynchroniczny jest prawdopodobnie mniej?
Mooing Duck
Pod względem narzędzi projektowania / paradygmatu logika synchroniczna jest w stanie całkowicie ignorować usterki na wyjściu logiki kombinatorycznej i wymaga tylko, aby sygnały zegarowe były wolne od usterki. Również obwody asynchroniczne częściej wymagają dodania dodatkowego opóźnienia dla niektórych sygnałów, aby mieć pewność, że gotowy sygnał nie dotrze do następnego bloku przed nadejściem danych itp. W obwodach synchronicznych rzadko jest potrzebne sztuczne opóźnienie. Jednym z niewielu przypadków, które przychodzą mi do głowy, jest spełnienie wymagań dotyczących czasu oczekiwania, które często można spełnić przez naturalne opóźnienie. Również niektóre sytuacje w domenie krzyżowej mogą wymagać opóźnienia.
Kevin Cathcart
Pomyślałbym, że w wielu sytuacjach użycie dwufazowego nie nakładającego się zegara może zaoferować wiele korzyści w stosunku do jednego zegara. Podczas korzystania z pojedynczego zegara wszelkie impulsy rozruchowe mogą powodować przeskakiwanie szyn przez system, ale w przypadku korzystania z dwufazowego zegara generowanego przez podawanie sygnału zegarowego przez dwa komparatory, impulsy rozruchowe na fazie zegarowej byłyby nieszkodliwe, gdyby były poprzedzone lub poprzedzone impuls zegarowy o prawidłowej długości bez impulsu pośredniego na przeciwnej fazie zegara.
supercat
3
@MooingDuck To zależy od paradygmatu logiki. Pracowałem nad logiką Null Convention Logic, która działałaby tak szybko, jak pozwalałyby na to warunki (proces, napięcie, temperatura). Nie musisz go podkręcać z powodu tych warunków, zrobi to automatycznie .
W5VO
3

Projektowanie asynchronicznych układów scalonych jest bardzo kuszące. Inne odpowiedzi już zawierają wiele powodów, by przemyśleć to dwukrotnie. Oto jeszcze jeden:

Rozwój układu scalonego nie jest zakończony projektem. Weryfikacja i test są równie ważne. Nie tylko narzędzia do projektowania są bardzo zaawansowane dla obwodów synchronicznych, ale to samo dotyczy narzędzi do symulacji i sprzętu testowego.

Weryfikacja

Nie wystarczy, aby obwody działały w warunkach laboratoryjnych. Muszą być solidne w odniesieniu do zakresu napięcia roboczego (V), zakresu temperatury roboczej (T) i zmian wynikających z procesu produkcyjnego (P). W przypadku logiki synchronicznej można to zagwarantować za pomocą statycznej analizy czasowej. Obwód jest podzielony na wszystkie ścieżki czasowe, od flip-flop do flip-flop. Czasy konfiguracji i wstrzymania są sprawdzane dla każdej ścieżki czasu oraz dla różnych kombinacji P, T i V. Te kombinacje PTV są tak zwanymi narożnikami symulacji.

Podobną weryfikację można przeprowadzić dla obwodów asynchronicznych, ale jest to o wiele trudniejsze i znacznie mniej obsługiwane przez narzędzia projektowe. Ogranicza również projektanta do konstrukcji asynchronicznych, które można zweryfikować. Nie ma wiarygodnej weryfikacji dla dowolnych obwodów asynchronicznych.

Test

Podobne trudności występują przy testowaniu sprzętu. Testowanie logiki synchronicznej jest w pełni obsługiwane przez testowanie standardów i sprzętu. Testowanie obwodów asynchronicznych jest nie tylko bardziej skomplikowane, ale z powodu braku abstrakcji czasowej nie wystarczy nawet udowodnić, że obwód będzie działał na wszystkich rogach PTV. Obwód może ulec awarii z powodu warunków wyścigowych przy niektórych kombinacjach PTV, które nie są objęte zakrętami.

streszczenie

Projektanci układów scalonych nie zrezygnowali z paradygmatu asynchronicznego, ale logika asynchroniczna ma poważne wady podczas weryfikacji i walidacji. W kontekście przemysłowym asynchroniczne projektowanie układów scalonych musi być ograniczone do konstrukcji, które można udowodnić do pracy w całym obszarze parametrów zmienności procesu, a także w zakresach roboczych temperatury i napięcia.

Tak zwana „lokalnie synchroniczna globalnie asynchroniczna” konstrukcja jest jednym ze sposobów uzyskania większych korzyści i mniej wad obu paradygmatów czasowych.

bagno
źródło
0

Asynchroniczne liczniki binarne są prostsze, ponieważ używają tylko 1 komórki pamięci lub przerzutnika T na podział przez dwa. Dlatego stare płyty CD oraz 74HC4020 i 4040 oferują tanio wiele stopni binarnych. Opóźnienie podpory na każdym etapie oznacza, że ​​nie można go używać bez warunków wyścigu lub usterki z bramkowaniem dekodowania adresów binarnych, chyba że opóźnienie podpory jest mniejsze niż 1/2 wejściowego cyklu zegarowego przy użyciu zbocznika końcowego do zatrzaśnięcia wyniku. Opóźnienie wyjściowe jest następnie mnożone przez N stopni.

Synchroniczne liczniki binarne używają dodatkowej komórki pamięci do D FF, aby opóźnić, ale minimalizują wartość opóźnienia do 1 dla dowolnej długości liczników, dzięki czemu zajmuje więcej miejsca.

Dlatego wszystkie procesory wykorzystują uzupełniające się zegary, aby zoptymalizować oczekiwane opóźnienie odczytu / zapisu adresu i pamięci, aby zmaksymalizować thruput, ale nie przekraczać czasu opóźnienia prop, konfiguracji i wstrzymania.

Pamięć wykorzystuje teraz wiele faz, takich jak DDR, 3DR, 4DR, 5DR, szczególnie w przypadku pamięci graficznej, ale zegary procesora pracują znacznie szybciej niż szybkość RAM pojedynczego cyklu, dzięki czemu opóźnienia adresów odczytu i zapisu mogą być odmierzane przez jedno lub wiele lub połowę superklock (np. 100 MHz xN) oznaczony ułamkiem T lub liczbami całkowitymi dla każdego parametru. Te opóźnienia prop rosną wraz z temp. Dla CMOS i zmniejszaj przy wyższym napięciu Vram, które, jeśli odpowiednio schłodzone, może zmniejszyć opóźnienie lub inny wzrost Pd i wzrost temperatury i pogorszyć (wolniej). Tak więc chłodzenie, V, f, T mają krytyczne znaczenie dla optymalnego opóźnienia, niezależnie od tego, czy jest używane do operacji asynchronicznych, czy synchronicznych.

Tony Stewart Sunnyskyguy EE75
źródło
-1

Wczesne projekty logiczne były asynchroniczne. Często były one również mieszane z obwodami analogowymi. Jednak w miarę upływu czasu projekty stały się bardziej skomplikowane, co wymagało większej liczby inżynierów do pracy nad jednym projektem. Diagramy czasowe asynchronizacji. logika może być kłopotliwa, gdy istnieje wiele stanów. Teraz dodaj zespół inżynierów próbujących połączyć różne bloki logiki razem, ale czasy między nimi nie są dobrze dopasowane. Projekty stają się kruche na zmiany w nieprzewidziany sposób.

Wprowadź projekt logiki synchronicznej. Teraz wszystkie przepływy stanu są dostosowane do sygnału zegarowego, który pozwala na bardzo dokładne zdefiniowanie interfejsów i bardziej odporny na zmiany projektowe. Tak, może użyć więcej bram, ale jest (zwykle) stabilny z założenia; w przeciwieństwie do stabilnego, o ile nikt go nie dotyka!

Aaron
źródło
1
Istnieją również asynchroniczne metodologie projektowania, które gwarantują „poprawność zgodną z projektem” i „dobrze zdefiniowane interfejsy”. Różnią się one po prostu od uproszczeń przyjętych dla projektów synchronicznych.
Edgar Brown