Logika dynamiczna (elektronika cyfrowa)

W projektowaniu układów scalonych logika dynamiczna (lub czasami logika taktowana ) to metodologia projektowania kombinacyjnych obwodów logicznych , zwłaszcza tych realizowanych w technologii metal-tlenek-półprzewodnik (MOS). Różni się od tak zwanej logiki statycznej tym, że wykorzystuje czasowe przechowywanie informacji w pojemnościach błądzących i bramkowych . Był popularny w latach 70. XX wieku, a ostatnio odrodził się w projektowaniu szybkiej elektroniki cyfrowej , w szczególności jednostek centralnych (CPU). Dynamiczne obwody logiczne są zwykle szybsze niż statyczne odpowiedniki i wymagają mniejszej powierzchni, ale są trudniejsze do zaprojektowania. Logika dynamiczna ma wyższą średnią szybkość zmian napięcia niż logika statyczna, ale przenoszone obciążenia pojemnościowe są mniejsze, więc ogólny pobór mocy w logice dynamicznej może być wyższy lub niższy w zależności od różnych kompromisów. W odniesieniu do konkretnej rodziny logiki przymiotnik dynamiczny zwykle wystarcza do rozróżnienia metodyki projektowania, np. dynamiczny CMOS lub dynamiczny SOI . projekt

Oprócz wykorzystania dynamicznego przechowywania stanu za pomocą napięć na pojemnościach, logika dynamiczna różni się od tak zwanej logiki statycznej tym, że logika dynamiczna wykorzystuje sygnał zegarowy w swojej implementacji logiki kombinacyjnej. Typowym zastosowaniem sygnału zegarowego jest synchronizacja przejść w sekwencyjnych obwodach logicznych. W przypadku większości implementacji logiki kombinacyjnej sygnał zegarowy nie jest nawet potrzebny. Terminologia statyczna/dynamiczna używana w odniesieniu do obwodów kombinatorycznych jest związana z użyciem tych samych przymiotników, które służą do rozróżniania urządzeń pamięci, np. statyczna pamięć RAM od dynamicznej pamięci RAM , ponieważ dynamiczna pamięć RAM przechowuje stan dynamicznie jako napięcia na pojemnościach, które muszą być okresowo odświeżane . Ale są też różnice w użytkowaniu; zegar można zatrzymać w odpowiedniej fazie w systemie z logiką dynamiczną i pamięcią statyczną.

Logika statyczna a dynamiczna

Największa różnica między logiką statyczną a dynamiczną polega na tym, że w logice dynamicznej do oceny logiki kombinacyjnej używany jest sygnał zegarowy . W większości typów projektów logicznych, zwanych logiką statyczną , zawsze istnieje jakiś mechanizm sterujący wyjściem w stanie wysokim lub niskim. W wielu popularnych stylach logicznych, takich jak TTL i tradycyjny CMOS , zasadę tę można przeformułować jako stwierdzenie, że zawsze istnieje ścieżka prądu stałego o niskiej impedancji między wyjściem a napięciem zasilania lub masą . Na marginesie, istnieje oczywiście wyjątek w tej definicji w przypadku wyjść o wysokiej impedancji , takich jak bufor trójstanowy ; jednak nawet w tych przypadkach obwód jest przeznaczony do użytku w większym systemie, w którym jakiś mechanizm będzie sterował wyjściem i nie kwalifikują się one jako odrębne od logiki statycznej.

W przeciwieństwie do tego, w logice dynamicznej nie zawsze istnieje mechanizm napędzający wyjście wysokie lub niskie. W najpowszechniejszej wersji tej koncepcji moc wyjściowa jest utrzymywana w stanie wysokim lub niskim w różnych częściach cyklu zegara. W przedziałach czasowych, gdy wyjście nie jest aktywnie napędzane, pojemność błądząca powoduje, że utrzymuje on poziom w pewnym zakresie tolerancji poziomu napędzanego.

Logika dynamiczna wymaga minimalnej częstotliwości taktowania wystarczająco dużej, aby stan wyjściowy każdej bramki dynamicznej był używany lub odświeżany, zanim ładunek w pojemności wyjściowej wycieknie na tyle, aby spowodować zmianę stanu cyfrowego wyjścia podczas części cyklu zegara, który wyjście nie jest aktywnie sterowane.

Logika statyczna nie ma minimalnej częstotliwości zegara — zegar można zatrzymywać w nieskończoność. Chociaż może się wydawać, że nic nie robienie przez długi czas nie jest szczególnie przydatne, ma ono trzy zalety:

  • możliwość wstrzymania systemu w dowolnym momencie znacznie ułatwia debugowanie i testowanie, umożliwiając stosowanie technik takich jak wykonywanie pojedynczych kroków .
  • możliwość uruchamiania systemu przy bardzo niskich częstotliwościach zegara pozwala elektronice o niskim poborze mocy działać dłużej na danej baterii.
  • w pełni statyczny system może natychmiast wznowić działanie dokładnie tam, gdzie został przerwany; osoba nie musi czekać na uruchomienie lub wznowienie systemu.

Możliwość wstrzymania systemu w dowolnym momencie na dowolny czas może być również wykorzystana do zsynchronizowania procesora ze zdarzeniem asynchronicznym. Chociaż istnieją inne mechanizmy, aby to zrobić, takie jak przerwania, pętle odpytywania, piny wejściowe procesora w stanie bezczynności (na przykład RDY w 6502 ) lub mechanizmy wydłużania cyklu magistrali procesora, takie jak wejścia WAIT, wykorzystujące sprzęt do bramkowania zegara do stanu statycznego -core CPU jest prostszy, bardziej precyzyjny czasowo, nie wykorzystuje pamięci kodu programu i prawie nie zużywa mocy procesora podczas oczekiwania. W podstawowym projekcie, aby rozpocząć oczekiwanie, procesor zapisywałby do rejestru, aby ustawić binarny bit zatrzasku, który byłby poddawany operacji AND lub OR z zegarem procesora, zatrzymując procesor. Sygnał z urządzenia peryferyjnego zresetowałby ten zatrzask, wznawiając działanie procesora. Logika sprzętowa musi bramkować wejścia sterujące zatrzaskiem w razie potrzeby, aby zapewnić, że zmiana wyjścia zatrzasku nie spowoduje natychmiastowej zmiany poziomu sygnału zegara i nie spowoduje impulsu zegara, wysokiego lub niskiego, który jest krótszy niż normalnie.

W szczególności, chociaż wiele popularnych procesorów wykorzystuje logikę dynamiczną, [ potrzebne źródło ] tylko rdzenie statyczne — procesory zaprojektowane w pełni statycznie — nadają się do użytku w satelitach kosmicznych ze względu na ich wyższą twardość radiacyjną . [ potrzebne lepsze źródło ]

Prawidłowo zaprojektowana logika dynamiczna może być ponad dwukrotnie szybsza niż logika statyczna. Wykorzystuje tylko szybsze tranzystory N , co poprawia optymalizację rozmiaru tranzystora. Logika statyczna jest wolniejsza, ponieważ ma dwa razy większe obciążenie pojemnościowe , wyższe progi i wykorzystuje powolne tranzystory P do logiki. Praca z logiką dynamiczną może być trudniejsza, ale może być jedynym wyborem, gdy potrzebna jest zwiększona szybkość przetwarzania. Większość elektroniki pracującej obecnie z częstotliwością powyżej 2 GHz [ kiedy? ] wymagają dynamicznej logiki, chociaż niektórzy producenci, tacy jak Intel, zaprojektowali chipy wykorzystujące całkowicie statyczną logikę, aby zmniejszyć zużycie energii. Należy pamiętać, że zmniejszenie zużycia energii nie tylko wydłuża czas pracy przy ograniczonych źródłach zasilania, takich jak baterie lub panele słoneczne (jak w statkach kosmicznych), ale także zmniejsza wymagania projektowe termiczne, zmniejszając rozmiar potrzebnych radiatorów, wentylatorów itp., co w obrót zmniejsza wagę i koszt systemu.

Ogólnie rzecz biorąc, logika dynamiczna znacznie zwiększa liczbę przełączanych w danym momencie tranzystorów, co zwiększa zużycie energii w porównaniu ze statycznymi CMOS. Istnieje kilka technik oszczędzania energii , które można wdrożyć w systemie opartym na logice dynamicznej. Ponadto każda szyna może przenosić dowolną liczbę bitów i nie ma zakłóceń powodujących marnowanie energii. Energooszczędne bramkowanie zegara i techniki asynchroniczne są znacznie bardziej naturalne w logice dynamicznej.

Przykład logiki statycznej

Jako przykład rozważ implementację logiki statycznej bramki CMOS NAND:

CMOS NAND.svg

Ten obwód realizuje funkcję logiczną

Jeśli zarówno A , jak i B są w stanie wysokim, wyjście zostanie obniżone. Jeśli A lub B są w stanie niskim, wyjście zostanie podciągnięte w stan wysoki. Przez cały czas wyjście jest pobierane w stanie niskim lub wysokim.

Przykład logiki dynamicznej

Rozważmy teraz dynamiczną implementację logiczną tej samej funkcji logicznej:

Dlnand.svg

Dynamiczny obwód logiczny wymaga dwóch faz. Pierwsza faza, gdy zegar jest niski, nazywana jest fazą konfiguracji lub fazą wstępnego ładowania , a druga faza, gdy zegar jest wysoki, nazywana jest fazą oceny . W fazie konfiguracji wyjście jest bezwarunkowo sterowane w stan wysoki (niezależnie od wartości wejść A i B ). Kondensator który reprezentuje pojemność obciążenia tej bramki, zostaje naładowany. Ponieważ tranzystor na dole jest wyłączony, nie jest możliwe, aby wyjście było niskie podczas tej fazy.

Podczas fazy oceny zegar jest wysoki. Jeśli A i B są również wysokie, wyjście zostanie obniżone. W przeciwnym razie wyjście pozostaje wysokie (z powodu pojemności obciążenia).

Logika dynamiczna ma kilka potencjalnych problemów, których nie ma logika statyczna. Na przykład, jeśli prędkość zegara jest zbyt niska, wyjście będzie zanikać zbyt szybko, aby było użyteczne. Ponadto wyjście jest ważne tylko przez część każdego cyklu zegara, więc podłączone do niego urządzenie musi próbkować je synchronicznie, gdy jest ważne.

Ponadto, gdy zarówno A , jak i B są w stanie wysokim, tak że wyjście jest niskie, obwód będzie pompował jeden ładunek kondensatora z Vdd do masy na każdy cykl zegara, najpierw ładując, a następnie rozładowując kondensator w każdym cyklu zegara. To sprawia, że ​​obwód (z wyjściem podłączonym do wysokiej impedancji) jest mniej wydajny niż wersja statyczna (która teoretycznie nie powinna przepuszczać żadnego prądu poza wyjściem), a gdy wejścia A i B są stałe i oba wysokie, dynamiczna bramka NAND zużywa energię proporcjonalnie do taktowania , o ile działa poprawnie. Straty mocy można zminimalizować, utrzymując niską pojemność obciążenia. To z kolei skraca maksymalny czas cyklu, wymagając wyższej minimalnej częstotliwości zegara; wyższa częstotliwość zwiększa wówczas zużycie energii o wspomnianą zależność. Dlatego niemożliwe jest zmniejszenie poboru mocy w stanie bezczynności (gdy oba wejścia są wysokie) poniżej pewnej granicy wynikającej z równowagi między szybkością zegara a pojemnością obciążenia.

Popularną implementacją jest logika domina .

Zobacz też

Ogólne odniesienia

  •   Sung-Mo Kang; Yusuf Leblebici (2003). Cyfrowe układy scalone CMOS: analiza i projektowanie (wyd. 3). McGraw-Hill. ISBN 978-0-07-246053-7 . Rozdział 9, „Dynamiczne układy logiczne” (rozdział 7 w wydaniu 2)
  •   R. Jacob Baker (2010). CMOS: projektowanie obwodów, układ i symulacja (wyd. 3). Wiley-IEEE. ISBN 978-0-470-88132-3 . Rozdział 14, „Dynamiczne bramki logiczne”
  •   Andrzeja Marshalla; Sreedhar Natarajan (2002). Projektowanie SOI: techniki analogowe, pamięciowe i cyfrowe . Skoczek. ISBN 978-0-7923-7640-8 . Rozdział 7, „Dynamiczne projektowanie SOI”

Linki zewnętrzne