Dynamische Logik (digitale Elektronik) – Wikipedia

before-content-x4

Im Design integrierter Schaltkreise dynamische Logik (oder manchmal getaktete Logik) ist eine Entwurfsmethode in kombinatorischen Logikschaltungen, insbesondere solchen, die in der MOS-Technologie implementiert sind. Es unterscheidet sich von der sogenannten statischen Logik durch die Nutzung der temporären Speicherung von Informationen in Streu- und Gate-Kapazitäten.[1] Es war in den 1970er Jahren beliebt und erlebte in jüngster Zeit eine Wiederbelebung des Designs digitaler Hochgeschwindigkeitselektronik, insbesondere von Computer-CPUs. Dynamische Logikschaltungen sind normalerweise schneller als statische Gegenstücke und benötigen weniger Oberfläche, sind jedoch schwieriger zu entwerfen. Dynamische Logik hat eine höhere Umschaltrate[clarification needed] als statische Logik[2] Die umgeschalteten kapazitiven Lasten sind jedoch kleiner[3] Daher kann der Gesamtstromverbrauch der dynamischen Logik in Abhängigkeit von verschiedenen Kompromissen höher oder niedriger sein. Wenn auf eine bestimmte Logikfamilie Bezug genommen wird, reicht normalerweise das dynamische Adjektiv aus, um die Entwurfsmethodik zu unterscheiden, z dynamisches CMOS[4] oder dynamisches SOI Design.[2]

Dynamische Logik unterscheidet sich von der sogenannten statische Logik in dieser Dynamik verwendet die Logik ein Taktsignal bei der Implementierung von kombinatorischen Logikschaltungen. Die übliche Verwendung eines Taktsignals besteht darin, Übergänge in sequentiellen Logikschaltungen zu synchronisieren. Für die meisten Implementierungen der kombinatorischen Logik wird nicht einmal ein Taktsignal benötigt.

Die statische / dynamische Terminologie, die verwendet wird, um sich auf kombinatorische Schaltkreise zu beziehen, sollte nicht mit der Art und Weise verwechselt werden, wie dieselben Adjektive zur Unterscheidung von Speichergeräten verwendet werden, z. B. statisches RAM von dynamischem RAM.[5]

Terminologie[edit]

Im Kontext des Logikdesigns der Begriff dynamische Logik wird im Vergleich zu häufiger verwendet getaktete Logik, wie es die Unterscheidung zwischen dieser Art von Design und deutlich macht statische Logik. Um die Sache zusätzlich zu verwirren, getaktete Logik wird manchmal als Synonym für sequentielle Logik verwendet. Diese Verwendung ist nicht standardisiert und sollte vermieden werden.

Statische versus dynamische Logik[edit]

Der größte Unterschied zwischen statischer und dynamischer Logik besteht darin, dass in der dynamischen Logik ein Taktsignal zur Bewertung der kombinatorischen Logik verwendet wird. Um jedoch die Bedeutung dieser Unterscheidung wirklich zu verstehen, benötigt der Leser einige Hintergrundinformationen zur statischen Logik.

In den meisten Arten von Logikdesign bezeichnet statische LogikEs gibt zu jeder Zeit einen Mechanismus, um den Ausgang entweder hoch oder niedrig zu treiben. In vielen gängigen Logikstilen wie TTL und herkömmlichem CMOS kann dieses Prinzip als Aussage umformuliert werden, dass zwischen dem Ausgang und entweder der Versorgungsspannung oder der Masse immer ein niederohmiger Gleichstrompfad besteht. Als Nebenbemerkung gibt es in dieser Definition natürlich eine Ausnahme bei hochohmigen Ausgängen, wie z. B. einem Drei-Zustands-Puffer; Selbst in diesen Fällen soll die Schaltung jedoch in einem größeren System verwendet werden, in dem ein Mechanismus den Ausgang ansteuert, und sie unterscheiden sich nicht von der statischen Logik.

Im Gegensatz dazu in dynamische LogikEs gibt nicht immer einen Mechanismus, der den Ausgang hoch oder niedrig treibt. In der gängigsten Version dieses Konzepts wird der Ausgang während bestimmter Teile des Taktzyklus hoch oder niedrig angesteuert. Während der Zeitintervalle, in denen der Ausgang nicht aktiv angesteuert wird, bewirkt die Streukapazität, dass er einen Pegel innerhalb eines Toleranzbereichs des angesteuerten Pegels beibehält.

Die dynamische Logik erfordert eine minimale Taktrate, die schnell genug ist, dass der Ausgangszustand jedes dynamischen Gatters verwendet oder aktualisiert wird, bevor die Ladung in der Ausgangskapazität so weit ausläuft, dass sich der digitale Zustand des Ausgangs während des Teils des Taktzyklus ändert Der Ausgang wird nicht aktiv angesteuert.

Die statische Logik hat keine minimale Taktrate – der Takt kann auf unbestimmte Zeit angehalten werden. Es mag den Anschein haben, dass es nicht besonders nützlich ist, längere Zeit nichts zu tun, aber es führt zu drei Vorteilen:

  • Die Möglichkeit, ein System jederzeit anzuhalten, erleichtert das Debuggen und Testen erheblich und ermöglicht Techniken wie Einzelschritte.
  • Wenn ein System mit extrem niedrigen Taktraten betrieben werden kann, kann die Elektronik mit geringem Stromverbrauch mit einer bestimmten Batterie länger betrieben werden.
  • Ein vollständig statisches System kann sofort genau dort fortgesetzt werden, wo es aufgehört hat. Eine Person muss nicht warten, bis das System hochgefahren oder fortgesetzt wird.[6]

Die Möglichkeit, ein System jederzeit für eine beliebige Dauer anzuhalten, kann auch verwendet werden, um die CPU mit einem asynchronen Ereignis zu synchronisieren. (Es gibt zwar andere Mechanismen, um dies zu tun, wie z. B. Interrupts, Abrufschleifen, Eingangsstifte im Leerlauf des Prozessors [like RDY on the 6502]oder Prozessor-Buszyklus-Erweiterungsmechanismen wie WAIT-Eingänge, die Hardware zum Gate des Takts auf eine statische Kern-CPU verwenden, sind einfacher, zeitlich präziser, verwenden keinen Programmcodespeicher und verbrauchen während des Wartens fast keinen Strom in der CPU . In einem grundlegenden Entwurf würde die CPU, um mit dem Warten zu beginnen, in ein Register schreiben, um ein binäres Latch-Bit zu setzen, das mit dem Prozessortakt UND- oder ODER-verknüpft wird, wodurch der Prozessor gestoppt wird. Ein Signal von einem Peripheriegerät würde diesen Latch zurücksetzen und den CPU-Betrieb wieder aufnehmen. [The hardware logic must gate the latch control inputs as necessary to ensure that a latch output transition does not cause the clock signal level to instantaneously change and cause a clock pulse, either high or low, that is shorter than normal.])

Insbesondere, obwohl viele gängige CPUs dynamische Logik verwenden,[citation needed] In Weltraumsatelliten können aufgrund ihrer höheren Strahlungshärte nur statische Kerne verwendet werden – CPUs mit vollständig statischer Technologie.[7]

Dynamische Logik kann bei ordnungsgemäßem Entwurf doppelt so schnell sein wie statische Logik. Es werden nur die schnelleren N Transistoren verwendet, die die Optimierung der Transistorgröße verbessern. Statische Logik ist langsamer, weil sie die doppelte kapazitive Belastung und höhere Schwellenwerte aufweist und langsame P-Transistoren für die Logik verwendet. Dynamische Logik kann schwieriger zu bearbeiten sein, ist jedoch möglicherweise die einzige Wahl, wenn eine höhere Verarbeitungsgeschwindigkeit erforderlich ist. Die meiste Elektronik läuft heutzutage mit über 2 GHz[when?] erfordern die Verwendung dynamischer Logik, obwohl einige Hersteller wie Intel Chips mit vollständig statischer Logik entwickelt haben, um den Stromverbrauch zu senken.[8] Beachten Sie, dass die Reduzierung des Stromverbrauchs nicht nur die Laufzeit mit begrenzten Stromquellen wie Batterien oder Solaranlagen (wie in Raumfahrzeugen) verlängert, sondern auch die Anforderungen an das thermische Design reduziert und die Größe der benötigten Kühlkörper, Lüfter usw. verringert wiederum reduziert Systemgewicht und Kosten.

Im Allgemeinen erhöht die dynamische Logik die Anzahl der Transistoren, die zu einem bestimmten Zeitpunkt schalten, erheblich, was den Stromverbrauch gegenüber statischen CMOS erhöht.[8] Es gibt verschiedene Energiespartechniken, die in einem auf dynamischer Logik basierenden System implementiert werden können. Darüber hinaus kann jede Schiene eine beliebige Anzahl von Bits übertragen, und es gibt keine Stromverschwendung. Energiesparendes Clock-Gating und asynchrone Techniken sind in der dynamischen Logik viel natürlicher.

Beispiel für statische Logik[edit]

Betrachten Sie als Beispiel die statische Logikimplementierung eines CMOS-NAND-Gatters:

CMOS NAND.svg

Diese Schaltung implementiert die Logikfunktion

Wenn EIN und B. beide hoch sind, wird der Ausgang niedrig gezogen. Wenn auch nicht EIN oder B. niedrig sind, wird der Ausgang hoch gezogen. Zu jeder Zeit wird der Ausgang entweder niedrig oder hoch gezogen.

Beispiel für dynamische Logik[edit]

Betrachten Sie nun eine dynamische Logikimplementierung derselben Logikfunktion:

Dlnand.svg

Die dynamische Logikschaltung benötigt zwei Phasen. Die erste Phase, wenn Uhr ist niedrig, heißt das Einrichtungsphase oder der Vorladephase und die zweite Phase, wenn Uhr ist hoch, heißt das Bewertungsphase. In der Setup-Phase wird der Ausgang bedingungslos hoch angesteuert (unabhängig von den Werten der Eingänge EIN und B.). Der Kondensator, der die Lastkapazität dieses Gates darstellt, wird aufgeladen. Da der Transistor unten ausgeschaltet ist, kann der Ausgang während dieser Phase nicht niedrig angesteuert werden.

Während der Bewertungsphase, Uhr ist hoch. Wenn EIN und B. Sind auch hoch, wird der Ausgang niedrig gezogen. Ansonsten bleibt der Ausgang hoch (aufgrund der Lastkapazität).

Die dynamische Logik weist einige potenzielle Probleme auf, die die statische Logik nicht aufweist. Wenn beispielsweise die Taktrate zu langsam ist, fällt der Ausgang zu schnell ab, um von Nutzen zu sein. Außerdem ist der Ausgang nur für einen Teil jedes Taktzyklus gültig, sodass das daran angeschlossene Gerät ihn während der Gültigkeitszeit synchron abtasten muss.

Auch wenn beides EIN und B. hoch sind, so dass der Ausgang niedrig ist, pumpt die Schaltung für jeden Taktzyklus eine Kondensatorladung von Vdd nach Masse, indem sie zuerst den Kondensator in jedem Taktzyklus lädt und dann entlädt. Dies macht die Schaltung (deren Ausgang an eine hohe Impedanz angeschlossen ist) weniger effizient als die statische Version (die theoretisch keinen Strom fließen lassen sollte, außer durch den Ausgang), und wenn die EIN und B. Die Eingänge sind konstant und beide hoch. Das dynamische NAND-Gatter verbraucht Strom proportional zur Taktrate, solange es ordnungsgemäß funktioniert. Die Verlustleistung kann minimiert werden, indem die Lastkapazität niedrig gehalten wird. Dies verringert jedoch wiederum die maximale Zykluszeit und erfordert eine höhere minimale Taktfrequenz. Die höhere Frequenz erhöht dann den Stromverbrauch um die gerade erwähnte Beziehung. Daher ist es unmöglich, den Leerlaufstromverbrauch (wenn beide Eingänge hoch sind) unter einen bestimmten Grenzwert zu senken, der sich aus einem Gleichgewicht zwischen Taktrate und Lastkapazität ergibt.

Eine beliebte Implementierung ist die Domino-Logik.

Siehe auch[edit]

Verweise[edit]

Allgemeine Hinweise

  • Sung-Mo Kang; Yusuf Leblebici (2003). Digitale integrierte CMOS-Schaltkreise: Analyse und Design (3. Aufl.). McGraw-Hill. ISBN 978-0-07-246053-7. Kapitel 9, “Dynamische Logikschaltungen” (Kapitel 7 in der 2. Ausgabe)
  • R. Jacob Baker (2010). CMOS: Schaltungsdesign, Layout und Simulation (3. Aufl.). Wiley-IEEE. ISBN 978-0-470-88132-3. Kapitel 14, “Dynamische Logikgatter”
  • Andrew Marshall; Sreedhar Natarajan (2002). SOI-Design: analoge, Speicher- und digitale Techniken. Springer. ISBN 978-0-7923-7640-8. Kapitel 7, “Dynamisches SOI-Design”

Externe Links[edit]


after-content-x4