
Dynamische Logik (auch getaktete Logik genannt ) ist eine Entwurfsmethode für kombinatorische Logikschaltungen , insbesondere solche, die in Metall-Oxid-Halbleiter-Technologie (MOS) realisiert werden . Sie unterscheidet sich von der sogenannten statischen Logik durch die temporäre Speicherung von Informationen in Streu- und Gate -Kapazitäten . [ 1 ] Sie war in den 1970er Jahren populär und erlebt in jüngster Zeit eine Renaissance im Design von Hochgeschwindigkeitselektronik , insbesondere von Zentralprozessoren (CPUs). Dynamische Logikschaltungen sind in der Regel schneller als ihre statischen Pendants und benötigen weniger Fläche, sind aber schwieriger zu entwerfen. Dynamische Logik weist eine höhere durchschnittliche Spannungsänderungsrate als statische Logik auf, [ 2 ] jedoch sind die kapazitiven Lasten, die geschaltet werden, kleiner [ 3 ]. Daher kann der Gesamtstromverbrauch dynamischer Logik je nach verschiedenen Kompromissen höher oder niedriger sein. Bei der Bezeichnung einer bestimmten Logikfamilie genügt in der Regel das Adjektiv „dynamisch“, um die Entwurfsmethode zu kennzeichnen, z. B. dynamisches CMOS [ 4 ] oder dynamisches SOI- Design. [ 2 ]
Neben der dynamischen Zustandsspeicherung mittels Spannungen an Kondensatoren unterscheidet sich dynamische Logik von statischer Logik dadurch, dass sie bei der Implementierung kombinatorischer Logik ein Taktsignal verwendet . Üblicherweise dient ein Taktsignal der Synchronisierung von Übergängen in sequenziellen Logikschaltungen . Für die meisten Implementierungen kombinatorischer Logik ist ein Taktsignal jedoch nicht erforderlich. Die Bezeichnungen „statisch“ und „dynamisch“ für kombinatorische Schaltungen sind analog zur Verwendung von Adjektiven zur Unterscheidung von Speichermedien, z. B. statischem RAM und dynamischem RAM . Dynamisches RAM speichert Zustände dynamisch als Spannungen an Kondensatoren, die periodisch aktualisiert werden müssen. Es gibt jedoch auch Unterschiede in der Verwendung: In einem System mit dynamischer Logik und statischer Speicherung kann der Takt in der entsprechenden Phase angehalten werden. [ 5 ]
Statische versus dynamische Logik
Der größte Unterschied zwischen statischer und dynamischer Logik besteht darin, dass bei dynamischer Logik ein Taktsignal zur Auswertung kombinatorischer Logik verwendet wird . Bei den meisten Logikschaltungen, die als statische Logik bezeichnet werden , gibt es stets einen Mechanismus, der den Ausgang auf High oder Low setzt. Bei vielen gängigen Logikstilen wie TTL und traditionellem CMOS lässt sich dieses Prinzip so formulieren, dass immer ein niederohmiger Gleichstrompfad zwischen dem Ausgang und entweder der Versorgungsspannung oder Masse existiert . Eine Ausnahme bilden natürlich hochohmige Ausgänge , wie beispielsweise Tri-State-Puffer . Doch auch in diesen Fällen ist die Schaltung für den Einsatz in einem größeren System vorgesehen, in dem ein Mechanismus den Ausgang steuert, und sie gelten daher nicht als von statischer Logik verschieden.
Im Gegensatz dazu gibt es in der dynamischen Logik nicht immer einen Mechanismus, der den Ausgang auf High oder Low setzt. In der gebräuchlichsten Variante dieses Konzepts wird der Ausgang während bestimmter Abschnitte des Taktzyklus auf High oder Low geschaltet. In den Zeitintervallen, in denen der Ausgang nicht aktiv angesteuert wird, sorgt die Streukapazität dafür, dass er einen Pegel innerhalb eines bestimmten Toleranzbereichs um den angesteuerten Pegel beibehält.
Dynamische Logik erfordert eine minimale Taktfrequenz, die hoch genug ist, damit der Ausgangszustand jedes dynamischen Gatters verwendet oder aufgefrischt wird, bevor die Ladung in der Ausgangskapazität so weit abläuft, dass sich der digitale Zustand des Ausgangs ändert, und zwar während des Teils des Taktzyklus, in dem der Ausgang nicht aktiv angesteuert wird.
Statische Logik hat keine minimale Taktfrequenz – der Takt kann unbegrenzt angehalten werden. Auch wenn es zunächst nicht besonders sinnvoll erscheinen mag, lange Zeit nichts zu tun, ergeben sich daraus drei Vorteile:
- Die Möglichkeit, ein System jederzeit anzuhalten, erleichtert das Debuggen und Testen erheblich und ermöglicht Techniken wie das Einzelschritt-Debuggen .
- Die Möglichkeit, ein System mit extrem niedrigen Taktraten zu betreiben, ermöglicht es, dass stromsparende Elektronik mit einer gegebenen Batterie länger läuft.
- Ein vollständig statisches System kann sofort genau dort weitermachen, wo es unterbrochen wurde; man muss nicht warten, bis das System hochgefahren oder wieder in Betrieb genommen wurde. [ 6 ]
Die Möglichkeit, ein System jederzeit und beliebig lange anzuhalten, kann auch zur Synchronisierung der CPU mit einem asynchronen Ereignis genutzt werden. Zwar gibt es hierfür andere Mechanismen wie Interrupts, Polling-Schleifen, Leerlauf-Eingänge des Prozessors (z. B. RDY beim 6502 ) oder Mechanismen zur Verlängerung des Prozessorbuszyklus wie WAIT-Eingänge, doch die hardwareseitige Taktsteuerung einer statischen Kern-CPU ist einfacher, zeitlich präziser, benötigt keinen Programmspeicher und verbraucht während des Wartens nahezu keinen Strom. In einem einfachen Design schreibt die CPU zum Starten des Wartevorgangs in ein Register, um ein Bit eines Binär-Latches zu setzen. Dieses Bit wird dann mit dem Prozessortakt per UND- oder ODER-Verknüpfung verknüpft, wodurch der Prozessor angehalten wird. Ein Signal von einem Peripheriegerät setzt diesen Latch zurück und setzt den CPU-Betrieb fort. Die Hardwarelogik muss die Latch-Steuereingänge bedarfsgerecht steuern, um zu verhindern, dass ein Latch-Ausgangsflankenwechsel den Taktsignalpegel abrupt ändert und einen kürzeren Taktimpuls (High oder Low) als üblich verursacht.
Insbesondere sind, obwohl viele gängige CPUs dynamische Logik verwenden, aufgrund ihrer höheren Strahlungsbeständigkeit nur statische Kerne – CPUs, die mit vollständig statischer Technologie entwickelt wurden – in Weltraumsatelliten einsetzbar . [ 7 ]
Bei korrekter Auslegung kann dynamische Logik mehr als doppelt so schnell sein wie statische Logik. Sie verwendet ausschließlich die schnelleren NMOS-Transistoren , was die Optimierung der Transistorgröße verbessert. Statische Logik ist langsamer, da sie die doppelte kapazitive Last und höhere Schwellenwerte aufweist und langsame PMOS-Transistoren für die Logik verwendet. Die Arbeit mit dynamischer Logik kann schwieriger sein, ist aber unter Umständen die einzige Option, wenn eine höhere Verarbeitungsgeschwindigkeit erforderlich ist. Die meisten Elektronikgeräte, die heutzutage mit über 2 GHz arbeiten, benötigen dynamische Logik, obwohl einige Hersteller wie Intel Chips mit vollständig statischer Logik entwickelt haben, um den Stromverbrauch zu reduzieren. [ 8 ] Die Reduzierung des Stromverbrauchs verlängert nicht nur die Laufzeit bei begrenzten Energiequellen wie Batterien oder Solaranlagen (wie in Raumfahrzeugen), sondern verringert auch die Anforderungen an das Wärmemanagement. Dadurch können die benötigten Kühlkörper, Lüfter usw. kleiner ausfallen, was wiederum das Systemgewicht und die Kosten senkt.
Im Allgemeinen erhöht dynamische Logik die Anzahl der gleichzeitig schaltenden Transistoren erheblich, was den Stromverbrauch im Vergleich zu statischer CMOS-Technologie steigert. [ 8 ] In Systemen mit dynamischer Logik lassen sich verschiedene Energiespartechniken implementieren. Zudem kann jede Schiene eine beliebige Anzahl von Bits übertragen, und es treten keine energieverschwendenden Störungen auf. Energiesparende Taktgatterung und asynchrone Techniken sind in dynamischer Logik deutlich natürlicher anwendbar.
Beispiel für statische Logik
Betrachten wir beispielsweise die statische Logikimplementierung eines CMOS-NAND-Gatters:

Diese Schaltung implementiert die Logikfunktion
Sind A und B beide auf hohem Pegel, wird der Ausgang auf niedriges Pegel gezogen. Sind entweder A oder B auf niedrigem Pegel, wird der Ausgang auf hohes Pegel gezogen. Der Ausgang ist stets entweder auf niedriges oder auf hohes Pegel.
Beispiel für dynamische Logik
Betrachten wir nun eine dynamische Logikimplementierung derselben Logikfunktion:

Die dynamische Logikschaltung benötigt zwei Phasen. Die erste Phase, in der der Taktpegel niedrig ist, wird Setup- oder Vorladephase genannt , die zweite Phase, in der der Taktpegel hoch ist, Auswertungsphase . In der Setup-Phase wird der Ausgang bedingungslos auf High gesetzt (unabhängig von den Werten der Eingänge A und B ). Der Kondensator , der die Lastkapazität dieses Gatters repräsentiert, wird geladen. Da der Transistor am unteren Ende gesperrt ist, kann der Ausgang während dieser Phase nicht auf Low gesetzt werden.
Während der Auswertungsphase ist Clock auf High-Pegel. Wenn A und B ebenfalls auf High-Pegel sind, wird der Ausgang auf Low-Pegel gezogen. Andernfalls bleibt der Ausgang auf High-Pegel (aufgrund der Lastkapazität).
Dynamische Logik weist einige potenzielle Probleme auf, die bei statischer Logik nicht auftreten. Beispielsweise klingt das Ausgangssignal bei zu niedriger Taktfrequenz zu schnell ab, um noch nutzbar zu sein. Zudem ist das Ausgangssignal nur für einen Teil jedes Taktzyklus gültig, weshalb das angeschlossene Gerät es synchron abtasten muss, sobald es gültig ist.
Wenn sowohl A als auch B auf hohem Pegel sind und der Ausgang somit niedrig ist, entlädt die Schaltung in jedem Taktzyklus einen Kondensator von Vdd nach Masse, indem sie ihn zunächst lädt und dann wieder entlädt. Dadurch ist die Schaltung (deren Ausgang an eine hohe Impedanz angeschlossen ist) weniger effizient als die statische Version (die theoretisch keinen Stromfluss außer durch den Ausgang zulassen sollte). Sind die Eingänge A und B konstant auf hohem Pegel, verbraucht das dynamische NAND-Gatter – sofern es korrekt funktioniert – Leistung proportional zur Taktfrequenz . Die Verlustleistung lässt sich durch eine geringe Lastkapazität minimieren. Dies wiederum reduziert die maximale Zykluszeit und erfordert eine höhere minimale Taktfrequenz. Die höhere Frequenz erhöht dann den Stromverbrauch gemäß der genannten Beziehung. Daher ist es unmöglich, den Stromverbrauch im Leerlauf (wenn beide Eingänge auf hohem Pegel sind) unter einen bestimmten Grenzwert zu senken, der sich aus dem Gleichgewicht zwischen Taktfrequenz und Lastkapazität ergibt.
Eine gängige Implementierungsmethode ist die Domino-Logik .
Siehe auch
Referenzen
- ^ Lars Wanhammar (1999). DSP integrierte Schaltungen . Academic Press. S. 37. ISBN 978-0-12-734530-7Die
- ^ a b Andrew Marshall; Sreedhar Natarajan (2002). SOI design: analog, memory and digital techniques . Springer. S. 125. ISBN 978-0-7923-7640-8Die
- ^ A. Albert Raj, T. Latha (21. Oktober 2008). VLSI-Design . PHI Learning Pvt. Ltd., S. 167. ISBN 978-81-203-3431-1Die
- ^ Bruce Jacob; Spencer Ng; David Wang (2007). Speichersysteme: Cache, DRAM, Festplatte . Morgan Kaufmann. S. 270. ISBN 978-0-12-379751-3Die
- ^ David Harris (2001). Skew-tolerant circuit design . Morgan Kaufmann. S. 38. ISBN 978-1-55860-636-4Die
- ^ Richard Murray. "PocketBook II Hardware" .
- ^ Gülzow, Peter. „Ohne RISC kein Spaß!“ . AMSAT-DL . Übersetzt von Moe, Don. Archiviert vom Original am 13. April 2013 . Abgerufen am 15. September 2021 .
- ^ a b „The Dark Knight: Intel's Core i7“ . Archiviert vom Original am 30. Januar 2009.
Allgemeine Hinweise
- Sung-Mo Kang; Yusuf Leblebici (2003). CMOS digitale integrierte Schaltungen: Analyse und Design (3. Aufl.). McGraw-Hill. ISBN 978-0-07-246053-7DieKapitel 9, „Dynamische Logikschaltungen“ (Kapitel 7 in der 2. Auflage)
- R. Jacob Baker (2010). CMOS: Schaltungsdesign, Layout und Simulation (3. Aufl.). Wiley-IEEE. ISBN 978-0-470-88132-3DieKapitel 14, „Dynamische Logikgatter“
- Andrew Marshall; Sreedhar Natarajan (2002). SOI-Design: Analoge, Speicher- und digitale Techniken . Springer. ISBN 978-0-7923-7640-8DieKapitel 7, „Dynamisches SOI-Design“
Externe Links
- Einführung in das CMOS-VLSI-Design – Vorlesung 9: Schaltungsfamilien – Vorlesungsnotizen von David Harris zu diesem Thema.