-
Die vorliegende Erfindung bezieht
sich auf eine Logikschaltung mit einer Pipeline-Struktur, die unter Verwendung von Logikzellen
aufgebaut ist, insbesondere bezieht sie sich auf ein Verfahren zum
Anheben der Geschwindigkeit eines Logikbetriebs und zum Absenken
des Leistungsverbrauchs.
-
Eine "Datenweg-Pipeline" ist der Bereich, der die Prozessoren
und die Pipeline-Register
in einem Verarbeitungsblock eines Mikroprozessors aufweist. Um Operationen
mit einer hohen Arbeitsfrequenz zu realisieren, ist es allgemeine
Praxis, die Prozessoren in der Zeitrichtung zu unterteilen und Pipeline-Register
zwischen den unterteilten Prozessoren einzufügen. Ein Betrieb wird über mehrere
Zyklen ausgeführt,
wobei jedoch ein neuer Betrieb in jedem Zyklus begonnen werden kann,
so dass auch Betriebsergebnisse bei jedem Zyklus erhalten werden
können.
Wenn folglich die Arbeitsfrequenz um das Zweifache verbessert wird,
verdoppelt sich auch die Menge an Operationen, die in einer bestimmten Zeit
möglich
sind. Auf diese Weise ist die Datenweg-Pipeline-Struktur ein breit
verwendetes Verfahren, um die Arbeitsgeschwindigkeit zu verbessern und
um die Menge an Operationen zu steigern.
-
1A bis 1C zeigen den Aufbau einer
allgemeinen Datenweg-Pipeline. Wie hier gezeigt ist, wird eine Erläuterung
dadurch angegeben, dass als Beispiel eine Operation hergenommen
wird, um eine kumulative Summe von absoluten Differenzwerten von
Daten a1 bis a4 und b1 bis b4 herauszufinden.
-
1A zeigt
den Fall, bei dem der Betrieb durch einen einstufigen Konfigurationsprozessor
realisiert wird. Hier wird angenommen, dass der Prozessor einen
erforderlichen Betrieb in einer Zeit Top ausführt. Wenn
der Betrieb aktuell ausgeführt
wird, gibt es eine Zeit Tcq, bis jedes Pipeline-Register
gültige Daten
synchron zu einem Taktsignal (allgemein als "gültige
Verzögerung" bezeichnet) ausgibt,
und eine Zeit Tst, die für ein Pipeline-Register erforderlich
ist, Daten zu holen (allgemein als "Setup-Zeit" bezeichnet). Die Betriebsperiode T1
wird daher zu: T1 = Top + Tcq +
Tst.
-
Wie in 1B gezeigt
ist, wird, wenn angenommen wird, dass der Betriebsprozess in exakt
die Hälfte
in der Zeitrichtung unterteilt werden könnte, die Verzögerungszeit
eines Prozessors am häufigsten Top/2. Jedoch sind Tcq und
Tst der Pipeline-Register, die einge fügt sind,
insoweit konstant, wenn die gleichen Register verwendet werden,
so dass die Betriebsperiode T2 wird: T2 = Top/2
+ Tcq, + Tst.
-
Ähnlich
wird, wie in 1C gezeigt
ist, wenn ein vierstufiger Aufbau verwendet wird, die Betriebsperiode
T4 zu: T4 = Top/4 + Tcq +
Tst.
-
Wenn man die Probleme zusammenfasst, die
durch die Erfindung gelöst
werden sollen, ist die herkömmliche
Logikschaltung mit einer Pipeline-Struktur immer durch eine Verzögerung (Tcq + Tst), die durch
die Register hervorgerufen wird, beeinträchtigt. Aus diesem Grund kann,
sogar wenn die Anzahl von Stufen der Pipeline vergrößert wird,
eine messbare Verbesserung der Arbeitsfrequenzen nicht erhalten
werden. Bei diesem Beispiel wurde außerdem angenommen, dass, wenn
die Prozessoren unterteilt werden, der Prozess exakt halbiert wurde,
wobei jedoch manchmal eine derartige geschickte Unterteilung nicht
möglich
ist und eine Seite, die eine erforderliche Betriebszeit hat, die
länger
als Top/2 erforderte, auftritt. In diesem
Fall besteht ein Nachteil darin, dass die Arbeitsperiode weiter
vergrößert wird.
-
Da außerdem Pipeline-Register in
bezug auf alle Daten an den Öffnungsbereichen,
welche durch die Teilung gebildet sind, eingefügt werden, bestehen Schwierigkeiten
dahingehend, dass die Größe der Schaltung
vergrößert wird,
das Hardware-Übermaß groß ist und
eine Vergrößerung des
Leistungsverbrauchs unvermeidbar ist.
-
Die US-A 5 708 374 offenbart eine
Logikschaltung mit einer Pipeline-Struktur. Aus dem Dokument Partovi
H et al: "A Regenerative
Push-Pull Differential Logic Family", Proceedings of the Spring Computer
Society International Conference. (Compcon) US, Los Alamitos, IEEE
COMP. SOC. PRESS, 28. Februar 1994, Seite 280–285 ist eine Logikzelle bekannt,
welche eine logische Baumschaltung aufweist, die mehrere Schaltelemente
hat, die zwischen einem Ausgangsknotenpunkt und einem Referenzpotential
geschaltet sind, wobei das Schaltelement am nächsten zum Referenzpotential
angeordnet ist, welches durch ein Signal gesteuert wird, welches
am frühesten
unter den mehreren Eingangssignalen ankommt, und das Schaltelement,
welches am nächsten
zum Ausgangsknotenpunkt angeordnet ist, durch ein Signal gesteuert
wird, welches am spätesten
unter den mehreren Eingangssignalen ankommt, und eine Ausgangsschaltung,
welche mit dem Ausgangsknotenpunkt verbunden ist und das Signal
des Ausgangsknotenpunkts gemäß dem Signal
ausgibt, welches am spätesten
unter den mehreren Eingangssignalen ankommt.
-
Eine Aufgabe der vorliegenden Erfindung besteht
darin, eine Logikschaltung unter Verwendung einer Logikzelle bereitzustellen,
mit der man in der Lage ist, einen Hochgeschwindigkeits-Logikbetrieb mit
einem geringen Hardware-Übermaß zu realisieren
und ein Pipeline-Register zu verwenden und wobei man in der Lage
ist, den Leistungsverbrauch abzusenken.
-
Erfindungsgemäß wird eine Logikschaltung bereitgestellt,
welche aufweist:
ein Eingangsregister, welches mehrere Eingangssignale
hält;
eine
Logikbetriebsschaltung, welche mehrere Logikzellen aufweist, wobei
jede ein Signal empfängt,
welches durch das Eingangsregister gehalten wird, die einen vorher
festgelegten Logikbetrieb durchführt und
Betriebsergebnisse an die nächste
Logikzelle ausgibt;
ein Ausgangsregister, welches das Ausgangssignal einer
letzten Logikzelle hält
und ausgibt; und
eine Rücksetzschaltung,
welche das Eingangsregister zurücksetzt,
wenn das Ausgangssignal einer Monitorverwendungs-Logikzelle, welches
unter den mehreren Logikzellen ausgewählt wird, in einem vorher festgelegten
Zustand ist gemäß dem Ausgangssignal
der Monitorverwendungs-Logikzelle;
wobei die Logikzelle aufweist:
eine
Logikbaumschaltung, die mehrere Schaltelemente hat, die zwischen
einem Ausgangssignalknotenpunkt und einem Referenzpotential geschaltet sind,
wobei das Schaltelement, das am nächsten zum Referenzpotential
ist, durch ein Signal gesteuert wird, welches am frühesten unter
den mehreren Eingangssignalen ankommt, und das Schaltelement, welches
am nächsten
zum Ausgangssignalknotenpunkt angeordnet ist, durch ein Signal gesteuert
wird, welches am letzten unter den mehreren Eingangssignalen ankommt,
und
eine Ausgangsschaltung, die mit dem Ausgangssignalknotenpunkt
geschaltet ist und das Signal des Ausgangssignalsknotenpunkts gemäß dem Signal ausgibt,
welches am letzten unter den mehreren Eingangssignalen ankommt.
-
Vorzugsweise ist die Logikbaumschaltung durch
Shannon-Erweiterung der mehreren Eingangssignale in der Reihenfolge
von der letzten Ankunft gebildet.
-
Vorzugsweise hat die Ausgangsschaltung eine
Latchschaltung, um den Signalpegel des Ausgangsknotenpunkts zu halten.
-
Vorzugsweise setzt das Eingangsregister
jedes Eingangssignal in ein Signalpaar um und jedes Signalpaar zumindest
nimmt drei Logikzustände
eines logischen Zustandes 0 (0, 1), eines logisches Zustandes 1
(1, 0) und eines Leerzustandes (0, 0) an.
-
Vorzugsweise gibt, wenn das Eingangssignal,
welches am letzten ankommt, den Leerzustand annimmt, die Ausgangsschaltung
jeder Logikzelle außer
der letzten Logikzelle ein Signal aus, welches den Leerzustand zeigt.
-
Wenn insbesondere das Ausgangssignal
der Monitor-Verwendungs-Logikzelle einen Zustand annimmt, welcher
anders ist als der Leerzustand, setzt die Rücksetzschaltung das Eingangsregister
zurück.
-
Vorzugsweise werden, wenn das Eingangsregister
zurückgesetzt
wird, alle Ausgangssignale bei Signalen gehalten, welche den Leerzustand
zeigen.
-
Das heißt, gemäß der vorliegenden Erfindung
wird ein Logikschaltung bereitgestellt, um einen vorher festgelegten
Logikbetrieb gemäß den mehreren
Eingangssignalen durchzuführen,
welche eine Logikbetriebsschaltung aufweist, die durch mehrere Logikzellen,
die in Serie geschaltet sind, konfiguriert ist. Jedes Eingangssignal
wird in ein Zweidrahtsignal umgesetzt, d.h., in 2 Datenbits, und
Logikcodes, welche zumindest drei Logikzustände von Logik 0, Logik 1 und
dem Leerzustand zeigen, sind durch diese Zweidrahtsignale gebildet.
Jede Logikzelle ist durch eine Logikbaumschaltung gebildet, welche
durch Shannon-Erweiterung der Eingangssignale gebildet ist, in der
Reihenfolge der letzten Ankunft und durch eine Ausgangsschaltung.
-
In der Logikbetriebsschaltung, welche
die mehreren Logikzellen aufweist, wird eine vorher festgelegte
Logikzelle, welche in der Mitte existiert, als Monitorverwendungs-Logikzelle ausgewählt. Wenn das
Ausgangssignal der bezogenen Monitorverwendungs-Logikzelle zu einem
Code wird, der anders ist als der Leer-Code ((0, 1) oder (1, 0)
wird unten als gültiger
Logikcode bezeichnet), werden alle Ausgangssignale des Eingangsregisters
auf den Leercode durch die Reset-Schaltung umgeschaltet. Dieser
Leercode wird zur Ausgangsseite durch die Logikzellen verbreitet.
Wenn das Ausgangssignal der Monitorverwendungs-Logikzelle zum Leercode
wird, wird das Rücksetzen
des Eingangsregisters gelöst, wodurch
das Eingangssignal in einen Zweidrahtcode synchron mit dem Taktsignal
umgesetzt wird und zu jeder Logikzelle geliefert wird. Vorher festgelegte
logische Operationen werden gemäß diesen
Eingangscodes ausgeführt.
Wenn das Ausgangssignal der Monitorverwendungs-Logikzelle zu einem
gültigen
Logikcode wird, wird das Eingangsregister zurückgesetzt und ein Leercode
wird wiederum zu jeder Logikzelle geliefert und an die Ausgangsseite
verbreitet.
-
In der Logikschaltung, welche auf
diese Art und Weise ausgebildet ist, kann ein Pipelinebetrieb realisiert
werden, ohne Pipeline-Register zwischen den mehreren Logikzellen
bereitzustellen, ein Vergrößerung des
Schaltungsaufwands kann unterdrückt
werden, das Hardware-Übermaß kann vermieden
werden, und es kann eine Anhebung der Geschwindigkeit des Betriebs
und eine Reduktion des Leistungsverbrauchs realisiert werden.
-
Diese und weitere Aufgaben und Merkmale der
vorliegenden Erfindung werden aus der folgenden Beschreibung von
bevorzugten Ausführungsformen
deutlicher, welche in bezug auf die beigefügten Zeichnungen angegeben
wird, in denen:
-
1A bis 1C Blockdiagramme von Beispielen
des Aufbaus einer herkömmlichen
Logikbetriebsschaltung mit Pipeline-Struktur sind;
-
2 ein
Schaltungsdiagramm einer Ausführungsform
einer Logikzelle ist, mit der eine Logikschaltung gemäß der vorliegenden
Erfindung konfiguriert wird;
-
3A bis 3C Schaltungsdiagramme einer logischen
Baumschaltung sind, welche bei der Logikzelle verwendet wird;
-
4A und 4B ein Schaltungsdiagramm
eines Beispiels der Konfiguration einer Ausgabeschaltung, welche
bei der Logikzelle verwendet wird, und eine Logiktabelle sind;
-
5A und 5B ein Schaltungsdiagramm
eines Beispiels eines anderen Ausbaus der Ausgabeschaltung, welche
bei der Logikzelle verwendet wird, und eine Logiktabelle sind;
-
6A und 6B Ansichten sind, um zu
erläutern,
wie eine logische Baumschaltung nach dem Stand der Technik zu bilden
ist;
-
7A und 7B Ansichten sind, um zu
erläutern,
wie eine logische Baumschaltung nach dem Stand der Technik zu bilden
ist;
-
8A bis 8C eine nichtgeeignete Logikschaltung
zeigen, welche durch ein Verfahren nach dem Stand der Technik gebildet
wird;
-
9A und 9B eine nichtgeeignete Logikschaltung
zeigen, welche durch das Verfahren nach dem Stand der Technik gebildet
wird;
-
10A bis 10C Ansichten der Prozedur sind,
um eine logische Baumschaltung herzuleiten, welche für die Logikschaltung
nach der vorliegenden Erfindung geeignet ist;
-
11A bis 11D Ansichten der Prozedur sind,
um eine logische Baumschaltung herzuleiten, welche für die Logikschaltung
nach der vorliegenden Erfindung geeignet ist;
-
12A bis 12C Ansichten des Prozesses sind,
um eine logische Baumschaltung für
andere Logikfunktionen zu bilden;
-
13A bis 13D Ansichten des Verfahrens sind,
um eine logische Baumschaltung für
andere Logikfunktionen zu bilden;
-
14A und 14B Schaltungsdiagramme von
Konfigurationen von Ausgabeschaltungen sind, bei denen ein Latch
nicht verwendet wird;
-
15A und 15B Schaltungsdiagramme anderer
Beispiele von Ausgabeschaltungen sind, bei denen kein Latch verwendet
wird;
-
16A und 16B Schaltungsdiagramme von
Konfigurationen von Ausgabeschaltungen sind, bei denen ein Latch
verwendet wird;
-
17 ein
Schaltungsdiagramm eines anderen Beispiels einer Ausgabeschaltung
ist, bei denen ein Latch verwendet wird;
-
18A und 18B Ansichten eines Beispiels der
Konfiguration einer Latchschaltung, bei der ein Eingangsregister
verwendet wird, und deren Betrieb sind;
-
19A und 19B Ansichten eines Beispiels einer
Flipflop-Schaltung sind, bei denen ein Eingangsregister verwendet
wird;
-
20A ein
Schwingungsformdiagramm ist, welches den Betrieb des Flipflops unter
Verwendung des Eingangsregisters zeigt;
-
21 ein
Schaltungsdiagramm eines Beispiels einer Logikschaltung ist, welche
durch die Logikzellen konfiguriert ist, die bei der vorliegenden
Erfindung verwendet werden;
-
22 ein
Schwingungsformdiagramm ist, welches den Betrieb der in 21 gezeigten Logikschaltung
zeigt;
-
23 ein
Schaltungsdiagramm einer Ausführungsform
der Betriebsschaltung nach der vorliegenden Erfindung ist; und
-
24 ein
Schwingungsformdiagramm ist, welches den Betrieb der Betriebsschaltung
nach der vorliegenden Erfindung zeigt.
-
Bei einer Logikschaltung nach der
vorliegenden Erfindung wird ein Codesystem verwendet, welches als
Zweidraht-Zweiphasen-Typus bezeichnet wird. Bei diesem Codesystem
wird ein Bit eines Logikcodes durch zwei gepaarte Signalleitungen
dargestellt. In der folgenden Erläuterung wird in diesem Codesystem
ein Bit eines Codes "a" durch einen Zweidraht-Zweiphasen-Code
a# = (a, ^a) bezeichnet. Wenn zwei Signalleitungen nicht unterschieden
werden, jedoch zusammen ausgedrückt
werden, werden sie einfach durch a# bezeichnet. Der Potentialzustand
der beiden Signalleitungen wird als (a, ^a) =(0, 1), (1, 0) oder
(0, 0) ausgedrückt.
-
Die Codes werden grob in "gültige Logikcodes" und einen "nichtgültigen Logikcode" klassifiziert. Die
gültigen
Logikcodes umfassen die Logik "0" und die logische "1" und sind definiert als (a, ^a) = (0, 1),
(1, 0). Wenn sie nicht unterschieden werden, werden sie unten einfach
als "Logikcode" bezeichnet.
-
Der ungültige Code ist definiert durch
(a, ^a) = (0, 0). Dieser Code dient zum Unterscheiden und zum Interpunktieren
von Logikcodes, die nacheinander der Reihe nach flie ßen. Dies
entspricht einem sogenannten "Leer"-Zeichen, und wird
anschließend einfachheitshalber
als "Leercode" bezeichnet.
-
Bei der Codeübertragung treten ein Logikcode
und der Leercode abwechselnd nacheinander der Reihe nach auf. Aus
diesem Grund wird dies als Zweiphasentypus bezeichnet. Ein Symbol "^" einer logischen Verneinung erlaubt
ursprünglich
keinen Zustand, beispielsweise (a = ^a = 0) (Unvereinbarkeit). Dies
wird jedoch hier nicht als logischer Widerspruch verstanden, sondern
als ein Zustand, der in der Mitte der Übertragung eines Codes erscheint.
-
Die Logikschaltung nach der vorliegenden Erfindung
besitzt eine Pipeline-Struktur, welche durch Logikzellen aufgebaut
ist. Außerdem
ist die Logikschaltung nach der vorliegenden Erfindung unter der
Annahme aufgebaut, dass die Reihenfolge der Ankunft von Signalen,
die zu einer bestimmten Logikzelle geliefert werden, schon bekannt
ist. Diese Annahme ist zur Einrichtung der Logikschaltung nach der
vorliegenden Erfindung wichtig. Hier muss lediglich die Reihenfolge
der Ankunft von Signalen, die zur Logikzelle geliefert werden, schon
bekannt sein und nicht der Zeitunterschied der Ankunftszeiten oder
die Mengen, beispielsweise der Maximalwert oder der Minimalwert.
Außerdem
ist der wichtigste Faktor in der Reihenfolge der Ankunft der, dass
das Signal, welches am letzten ankommt, bekannt ist. Die Reihenfolge
der Ankunft ist für
Signale außer
diesem nicht so wichtig.
-
Bei dem Logikaufbau wurde das Konzept des "kritischen Wegs", welches den Verbreitungsweg des
Signals, welches am letzten ankommt, zeigt, allgemein im Stand der
Technik betrachtet. Außerdem kann
die Beziehung der Reihenfolge der Ankunft von der Anzahl von Logikzellen
im aktuellen Logikaufbau geschätzt
werden, der Länge
der Zwischenverbindungen usw., und variiert nicht besonders in Bezug auf
eine Änderung
der Temperatur oder dgl. Folglich ist diese Annahme bei dem aktuellen
Aufbau einer Logikschaltung nicht unrealistisch.
-
Aufau der Logikschaltung
-
2 ist
ein Schaltungsdiagramm des allgemeinen Aufbaus einer Logikzelle,
die einen Teil einer Logikschaltung nach der vorliegenden Erfindung
aufweist. Wie gezeigt ist, ist eine Logikzelle 100 durch eine
Ausgangsschaltung 110, die mit einer Vorladungsschaltung
und einem Ausgangspuffer usw. versehen ist, und durch eine logische
Baumschaltung 120 konfiguriert, welche durch nMOS-Transistoren konfiguriert
ist.
-
Hier ist die Reihenfolge der Ankunft
der Eingangssignale, die zu einer Logikzelle geliefert werden, definiert
als a1#, a2#, . . ., ω# von der
frühesten Ankunft
an. Unter diesen ist das Signal, welches am letzten ankommt, ω#. Bei der
logischen Baumschaltung 120, welche durch nMOS-Transistoren
aufgebaut ist, ist die Schaltung so aufgebaut, dass, um so früher die
Reihenfolge der Ankunft des Signals ist, desto näher die Position zum Referenzpotential
(Erde) ist, der nMOS-Transistor, der daran angeschaltet ist, angeordnet
ist. Der nMOS-Transistor, der mit dem Signal ω# verbunden ist, ist im obersten
Bereich der logischen Baumschaltung 120 angeordnet (Position, die
am nächsten
der Ausgabeschaltung 110 ist). Außerdem wird das Signal ω# auch zur
Ausgabeschaltung 110 geliefert und hat die Funktion, den
Betrieb der Ausgabeschaltung 110 umzuschalten.
-
3A bis 3C sind Schaltungsdiagramme, die
das Konzept der logischen Baumschaltung, die bei der vorliegenden
Erfindung verwendet wird, zeigen. Die wichtigste Tatsache ist hier,
dass es niemals einen Weg gibt, der zur Masse reicht, wenn das Signal ω# der Leercode
ist. Bei dem Logikbaum, der in 3B gezeigt
ist, wenn a = b = 1 oder a = b = 0, wird ein Weg zur Masse unabhängig vom
Zustand von ω# gebildet.
Eine solche logische Baumstruktur wird bei der vorliegenden Erfindung
nicht zugelassen. Wenn dieser logische Weg existiert, sind zwei
nMOS-Transistoren auf diesem Weg vorgesehen, um die Struktur zum
logischen Baum wie in 3C zu
rekonfigurieren.
-
4A und 4B und 5A und 5B zeigen zwei
Beispiele der Ausgangsschaltung, welche bei der vorliegenden Erfindung
verwendet werden. Hier sind die Signale ω und ^ω, die zur Ausgangsschaltung 110 geliefert
werden, Signale, die die letzte Reihenfolge der Ankunft unter den
mehreren Signalen α1,
^α1, α2, ^α2, . . . ω, ^ω, welche
zur logischen Baumschaltung 120 geliefert werden, haben.
Bei einer Ausgabeschaltung 110a, welche in 4A gezeigt ist, wechselt, wenn sich das
Signal ω#
von einem Logikcode zu dem Leercode ändert, ein Ausgangssignal (X,
^X) auf den Leercode (0, 0). Im Gegensatz dazu behält in einer
Ausgangsschaltung 110b, welche in 5A gezeigt ist, wenn sich das Signal ω# von einem
Logikcode zum Leercode ändert, das
Ausgangssignal (X, ^X) den Zustand unmittelbar davor bei. Anschließend werden,
wenn diese nicht unterschieden sind, diese Einfachheitshalber als "Ausgangsschaltung" bezeichnet. Wenn
das Frühere angezeigt
wird, wird dies als "Nicht-Latch-Ausgangsschaltung" bezeichnet, während, wenn
das Letztere angezeigt wird, wird dies als "Latch-Ausgangsschaltung" bezeichnet.
-
Verfahren zum Bilden eines
Logikbaums
-
Wie oben ausgeführt muss bei der Logikbaumschaltung 120,
welche einen Teil der Logikzelle 100 aufweist, die bei
der vorliegenden Erfindung verwendet wird, wenn das letzte Eingangssignal ω# der Leercode
ist, ein Weg von der Ausgangsschaltung zur Masse nicht gebildet
werden. Aus diesem Grund ist es bei der vorliegenden Erfindung notwendig,
die Logikbaumschaltung 120 zu konfigurieren, um diesen
Zustand zu erfüllen.
Anschließend
wird das Verfahren erläutert,
um die Logikbaumschaltung 120, welche bei der vorliegenden
Erfindung verwendet wird, zu bilden.
-
6A und 6B und 7A und 7B sind
Schaltungsdiagramme, um das Verfahren zu erläutern, um eine Logikbaumschaltung
nach dem Stand der Technik zu bilden. Hier ist ein Verfahren zum
Bilden eines nMOS-Transistor-Logikbaums, der bei einem herkömmlichen
Differenzkaskaden-Spannungsschaltungs-Logikverfahren (DCVS) oder
einem Kaskadenspannungs-Schaltungslogikverfahren (CVSL) usw. verwendet
wird, gezeigt. Diese Konfigurationsverfahren einer logischen Baumschaltung
sind in IEEE Journal of Solid-state Circuits, Band sc-21, Nr. 6,
Seite 1082–1087,
Dezember 1986 usw. offenbart.
-
Hier ist als Beispiel ein Verfahren
zum Bilden einer logischen Baumschaltung, um eine Logikfunktion,
beispielsweise f = a + b + c herauszufinden, gezeigt.
-
Hier wird zunächst, wie in 6A gezeigt ist, eine binäre Baumerweiterung
bezüglich
f ausgeführt. Es
sei angemerkt, dass das Verfahren, welches hier verwendet wird,
auch als BDD-Erweiterung oder Shannon-Erweiterung bezeichnet wird.
Die Reihenfolge der Variablen in diesem Zeitpunkt kann irgendeine
Reihenfolge im Fall von DCVS sein. Wenn die Reihenfolge der Ankunft
vorher bekannt ist, hat jedoch ein Logikbaum, der erweitert ist,
in der Reihenfolge von der frühesten
Ankunft her bessere elektrische Charakteristiken.
-
Die Bereiche, die anteilig bei dem
erhaltenen binären
Baum aufgeteilt werden können,
sind anteilig, um einen reduzierten binären Baum zu bilden (6B). Wenn ein variabler
Knotenpunkt durch ein Auswahlorgan ersetzt wird, welches zwei nMOS-Transistoren
aufweist, wird die Logikbaumschaltung, welche in 7A gezeigt ist, erhalten.
-
Wenn die Wurzel der Logikbaumschaltung (Endpunkt
f von 7A) mit Masse
(Erde) verbunden wird und außerdem
ein 0-Endpunkt des Logikbaums als Ausgangsknotenpunkt f und ein
1-Endpunkt des Logikbaums als negativer Logikausgangsknotenpunkt
^f definiert wird, wird die Logikbaumschaltung von 7B erhalten.
-
Bei dem Verfahren nach dem Stand
der Technik zum Bilden des Logikbaums gibt es einen Fall, wo ein
Logikbaum, der für
die vorliegende Erfindung nicht geeignet ist, gebildet wird. Ein
Beispiel davon ist in 8A bis 8C und 9A und 9B gezeigt. In
diesem Fall ist ein Logikbaum, um eine Logikfunktion, beispielsweise
f = a b+b c+c·d
erweitert. 8A bis 8C und 9A zeigen Schritte, einen Logikbaum durch
das Verfahren nach dem Stand der Technik zu erweitern. Der in 9A gezeigte Logikbaum kann einen
Entladeweg, der von den Ausgangsknotenpunkten f und ^f gebildet
ist, mit der Masse aufweisen, ohne von einem Signal c# abhängig zu
sein, so dass dieser ein Logikbaum ist, der für die vorliegende Erfindung
ungeeignet ist. Um folglich den Entladeweg zu blockieren, ist es
notwendig, weitere nMOS-Transistoren hinzuzufügen, wie in 9B gezeigt ist.
-
Auf diese Weise gibt es bei der herkömmlichen
Prozedur zum Erweitern eines Logikbaums Fälle, wo die Anzahl der nMOS-Transistoren,
welche mit dem Signal verbunden sind, welches am letzten ankommt,
groß wird
und die Belastung groß wird.
Dies wird zu einem Fall, wo die Logikoperationsgeschwindigkeit der
Logikschaltung abgesenkt wird, was üblicherweise vermieden werden
muss.
-
Anschließend wird die Prozedur erläutert, um
einen Logikbaum herzuleiten, der für die Logikschaltung nach der
vorliegenden Erfindung geeignet ist. 10A bis 10C und 11A bis 11D zeigen
ein Beispiel einer Erweiterung eines Logikbaums nach der vorliegenden
Erfindung. Hier ist die Prozedur zum Erweitern eines Logikbaums,
um die Logikfunktion f = a + b + c ähnlich der, die oben beschrieben wurde,
herauszufinden, gezeigt.
-
Zunächst wird, wie in 10A gezeigt ist, der Binärbaum in
der Reihenfolge von der letzten Ankunft eines Signals erweitert.
Der reduzierte Binärbaum
wird so herausgefunden, wie in 10B gezeigt
ist.
-
Anschließend wird der logische 0-Endpunkt von 10B durch den 1-Endpunkt
ersetzt, und der logische 1-Endpunkt wird durch den 0-Endpunkt ersetzt,
um die logische Baumschaltung ^f zu bilden, die in 10C gezeigt ist. Außerdem wird, wie in 10A gezeigt ist, der logische
Endpunkt 1 von der logischen Baumschaltung f entfernt. Ähnlich wird,
wie in 11B gezeigt ist,
der logische Endpunkt 1 von der logischen Baumschaltung ^f entfernt.
-
In der logischen Baumschaltung ^f
wird die 0 und 1 in 10C umgeschaltet,
so dass die Ergebnisse von 11A und 11B natürlich unterschiedlich sind.
-
Die Strukturen, die anteilig verwendet
werden können,
werden herausgefunden mit Blick von den logischen Endpunkten in 11A und 11B und werden anteilig verwendet. Als
Ergebnis wird die logische Baumschaltung, welche die Struktur hat,
die in 11C gezeigt ist,
erhalten. Danach wird jeder variable Knoten, der zwei Zweige hat,
durch ein Auswahlorgan ersetzt, welches aus zwei nMOS-Transistoren
besteht, und jeder variable Knotenpunkt, der einen Zweig hat, wird
durch einen Schalter eines nMOS-Transistors ersetzt. Weiter ist
der logische Endpunkt 0 geerdet. Wenn der Punkt f und der Punkt ^f
der Wurzel der Logikbaumschaltung als Ausgangsknotenpunkte der logischen
Baumschaltung wie sie sind definiert sind, wie in 11D gezeigt ist, wird eine logische Baumschaltung,
welche für
die logische Schaltung nach der vorliegenden Erfindung geeignet
ist, erhalten.
-
Der wichtige Punkt bei der Prozedur
zur Bildung der logischen Baumschaltung, die oben erläutert wurde,
ist der, dass die Erweiterung zunächst für das Signal, welches am Letzten
ankommt, durchgeführt
wird. Wenn der Baum auf diese Art und Weise erweitert wird, wird,
wenn der Binärbaum
reduziert wird, der Knotenpunkt des Signals, welches am letzten
ankommt, nicht gelöscht.
Dann wird irgendein Entladungsweg, der die Masse erreicht, immer über den
Schalter für
das Signal laufen, welches am letzten ankommt.
-
Auf die gleiche Weise wie die oben
erläuterte Prozedur
ist der Prozess, eine logische Baumschaltung für die Logikfunktion (f = a
b+b c+c a) zu bilden, in l2A bis 12C und 13A bis 13D gezeigt.
-
Bei dieser Logikfunktion werden,
wie oben erläutert,
besondere nMOS-Transistoren bei dem Verfahren des Standes der Technik
erforderlich. Sechs nMOS-Transistoren werden zur Last für das letzte
Signal c#. Gemäß dem Verfahren
zum Bilden der vorliegenden Erfindung beträgt, wie in 13D gezeigt ist, die Anzahl der Transistoren,
die zur Last werden, für
das Signal c# vier. Im Vergleich zu dem Verfahren nach dem Stand
der Technik wird die Anzahl der Transistoren für das letzte Signal vermindert, und
es wird ein Effekt, die Last des Signals zu reduzieren, erzielt.
-
Ausführungsform der Ausgangsschaltung
-
Wie in 2 gezeigt
ist, ist die Logikzelle 100, die einen Teil der Logikschaltung
nach der vorliegenden Erfindung aufweist, durch die Ausgangschaltung 110 und
die Logikbaumschaltung 120 konfiguriert. Die Spezifikationen
der Nicht-Latch- und Latch-Ausgangsschaltungen sind in 4A und 4B und in 5A und
in 5B gezeigt.
-
Anschließend wird der konkrete Schaltungsaufbau
für die
Nicht-Latch- und Latch- Ausgangsschaltung
erläutert.
-
14A und 14B und 15A und 15B sind Schaltungsdiagramme,
welche Beispiele des Ausbaus einer Nicht-Latch-Ausgangsschaltung
zeigen. Wie in 14A gezeigt
ist, besteht die Nicht-Latch-Ausgangsschaltung 110a1 aus
einem pMOS-Transistor P1, P2, P3 und P4 und Invertierern INV1 und
INV2. Die Transistoren P1 und P2 sind zwischen einer Versorgungsleitung
einer Versorgungsspannung VDD und internen
Anschlüssen
T1 und T2 geschaltet. Ein Gate des Transistors P1 ist mit einem Drain
des Transistors P2 verbunden, und das Gate des Transistors P2 ist
mit dem Drain des Transistors P1 verbunden. Die Transistoren P3
und P4 sind seriell zwischen den internen Anschlüssen T1 und T2 geschaltet,
und Signale ω und
^ω werden
zu den Gates der Transistoren P3 bzw. P4 geliefert. Die Eingangsanschlüsse der
Invertierer INV1 und INV2 sind mit den internen Anschlüssen T1
bzw. T2 verbunden.
-
Außerdem sind die internen Anschlüsse T1 und
T2 mit den Anschlüssen
f und ^f der Logikbaumschaltung verbunden.
-
Bei der Nicht-Latch-Ausgangsschaltung 110a1,
welche auf diese Weise aufgebaut ist, werden, wenn das Signal (ω, ^ω) = (0,
0), d.h., ω#
der Leercode ist, beide Transistoren P3 und P4 leitend. 14B zeigt eine äquivalente
Schaltung der Ausgangsschaltung 110a1 in diesem Fall. Wie
gezeigt zeigen die Transistoren P1 und P2 eine Diodenverbindung,
die internen Anschlüsse
T1 und T2 werden durch die Versorgungsspannung VDD geladen
und nehmen den hohen Pegel an, und daher werden die beiden Ausgangsanschlüsse der
Invertierer INV1 und INV den niedrigen Pegel annehmen. In diesem Zeitpunkt
ist nämlich
das Ausgangssignal der Ausgangsschaltung der Leercode, d.h., (X,
^X) = (0, 0).
-
Wenn ω# ein Code ist, der anders
ist als der Leercode, wird entweder das Signal ω oder das Signal ^ω zum hohen
Pegel, und ein Entladungsweg zur Masse wird in einem der internen
Anschlüsse
T1 und T2 gemäß dem Eingangssignal
gebildet, welches zur Logikbaumschaltung geliefert wird und auf
dem Massepotential gehalten wird. Die Potentiale der Anschlüsse T1 und
T2 werden durch die Latchschaltung vorübergehend gespeichert, die
durch die Transistoren P1 und P2 konfiguriert ist. Wenn nämlich das
Eingangssignal ω#
der Leercode (0, 0) ist, werden die internen Anschlüsse T1 und
T2 durch die Versorgungsspannung VDD geladen,
während,
wenn das Eingangssignal ω#
zum Logikcode wechselt, der anders ist als der Leercode (0, 0),
wird in der Ausgangsschaltung 110a1 der Pegel des Ausgangssignals
(X, ^X) gemäß dem Eingangssignal
gehalten.
-
15A und 15B sind Schaltungsdiagramme,
die andere konkrete Beispiele der Nicht-Latch-Ausgangsschaltung
zeigen. 15A ist ein
Schaltungsdiagramm, welches die Konfiguration einer Ausgangsschaltung 110a2 zeigt.
Wie gezeigt ist die Ausgangsschaltung 110a2 durch die pMOS-Transistoren
P1 und P2 aufgebaut, die die Latschschaltung bilden, und außerdem durch
die pMOS-Transistoren P3 bis P6 und die Invertierer INV1 und INV2.
-
Wie gezeigt sind die Transistoren
P3 und P4 seriell zwischen der Versorgungsleitung der Versorgungsspannung
VDD und dem internen Anschluss T1 geschaltet
und besitzen Gates, die mit den Signalen ω und ^ω geliefert werden. Die Transistoren
P5 und P6 sind seriell zwischen der Versorgungsleitung und der Versorgungsspannung
VDD und dem internen Anschluss T2 geschaltet
und besitzen Gates, die mit den Signalen ω und ^ω beliefert werden.
-
Wenn das Signal ω# = (0, 0), d.h., wenn das Signal ω# der Leercode
ist, werden alle Transistoren P3 bis P6 leitend, und die internen
Anschlüsse
T1 und T2 werden durch Versorgungsspannung VDD geladen
und auf dem hohen Pegel gehalten. In diesem Zeitpunkt wird das Ausgangssignal
(X, ^X) gleich (0, 0). Wenn das Signal ω# ein Code ist, der anders ist als
die Leercode, werden die Pegel der internen Anschlüsse T1 und
T2 gemäß dem Signal
gesetzt, welches zur Logikbaumschaltung geliefert wird und durch
die Latchschaltung, welche die Transistoren P1 und P2 aufweisen,
vorübergehend
gespeichert.
-
Eine Nicht-Latch-Ausgangsschaltung 110a3, welche
in 15B gezeigt ist,
wird durch weiteres Hinzufügen
von nMOS-Transistoren N1, N2, N3 und N4 zur Ausgangsschaltung 110a2 erhalten,
die in 15A gezeigt ist.
Die Transistoren P1 und N1 und P2 und N2 bilden CMOS-Invertierer.
Die Eingänge und
die Ausgänge
dieser Invertierer sind miteinander verbunden, wodurch eine Latchschaltung
konfiguriert ist.
-
Die Nicht-Latch-Ausgangsschaltung 110a3 arbeitet
fast in der gleichen Art und Weise wie die Nicht-Latch-Ausgangsschaltung 110a2.
-
16A und 16B und 17 sind Schaltungsdiagramme, welche Beispiele
des Aufbaus einer Latch-Ausgangsschaltung zeigen. 16A und 16B zeigen
die Schaltungskonfigurationen der Latch-Ausgangsschaltungen 110b1 und 110b2,
und 17 zeigt den Schaltungsaufbau
einer Latch-Ausgangsschaltung 110b3. Wie in 16A und 16B und in 17 gezeigt
ist, ersetzen diese Latch-Ausgangsschaltungen die Invertierer INV1
und INV2 der Nicht-Latch-Ausgangsschaltungen, die in 14A und 14B und in 15A und 15B gezeigt sind, durch einen
RS-Flipflop, der NAND-Gates NG1 und NG2 aufweist.
-
Anschließend werden der Aufbau und
die Arbeitsweise der Latch-Ausgangsschaltung 110b1 mit Hilfe
von 16A erläutert. Die
Latch-Ausgangsschaltung 110b1 wird durch die pMOS-Transistoren P1,
P2, P3 und P4 und die NAND-Gates NG1 und NG2 gebildet. Die Anschaltung
der Transistoren P1 bis P4 ist im Wesentlichen die gleiche wie die
bei der Nicht-Latch-Ausgangsschaltung 110a1, welche in 14A gezeigt ist. Die NAND-Gates
NG1 und NG2 bilden den RS-Flipflop. Ein Eingangsanschluss des NAND-Gates
NG1 ist mit dem internen Anschluss T1 verbunden, und der andere
Eingangsanschluss ist mit dem Ausgangsanschluss des NAND-Gates NG2 verbunden,
während
ein Eingangsanschluss des NAND-Gates NG2 mit den internen Anschluss
T2 verbunden ist und der andere Eingangsanschluss mit dem Ausgangsanschluss
des NAND-Gates NG1 verbunden ist.
-
Die Latchschaltung ist durch den
RS-Flipflop gebildet, die die NAND-Gates NG1 und NG2 umfasst. Wenn
das Eingangssignal ω#
der Leercode (0, 0) ist, werden beide internen Anschlüsse T1 und
T2 auf dem hohen Pegel gehalten, wodurch das RS-Flipflop zum Haltemodus
wird und die Ausgangssignale (X, ^X der NOR-Gates NR1 und NR2 in
Zuständen
unmittelbar davor gehalten werden.
-
Die Latch-Ausgangsschaltungen 110b2 und 110b3 ,
welche in 16B und 17 gezeigt sind, führen im
Wesentlichen den gleichen Betrieb durch wie den bei der Latch-Aus gangsschaltung 110b1,
die in 16A gezeigt ist.
Wenn das Eingangssignal der Leercode (0, 0) ist, wird das Ausgangssignal
unmittelbar vor diesem durch die Latchschaltung gehalten, welche
die NAND-Gates NG1 und NG2 aufweist.
-
Latchschaltung, Flipflop-Schaltung
-
Anschließend werden die Konfigurationen und
die Arbeitsweise der Eingangsverwendungs-Latchschaltung erläutert, um
die Arbeitsdaten an die Logikzelle und die Flipflop-Schaltung bei der vorliegenden
Erfindung zu liefern.
-
Wie oben erläutert sind die Eingangsregister mit
dem Anfang der Logikschaltung verbunden. Diese Eingangsregister
setzen die Eingangsdaten D in den Zweidraht-Zweiphasen-Code um und
liefern diesen an die Logikzellen, die die Logikschaltung bilden.
-
18A zeigt
ein Beispiel des Aufbaus der Eingangsregisterverwendungs-Latchschaltung,
während 18B die Arbeitsweise dieser
Latchschaltung zeigt.
-
Wie gezeigt besteht die Latchschaltung
aus Invertierern INV1, INV2, INV3, pMOS-Transistoren P1 bis P4 und
nMOS-Transistoren N1 bis N6.
-
Die Transistoren P1, N1 und P2, N2
bilden die CMOS-Invertierer, die Eingangsanschlüsse und die Ausgangsanschlüsse dieser
Invertierer sind miteinander verbunden, wodurch die Latchschaltung
gebildet ist. Der Eingangsanschluss des Invertierers INV1 ist mit
einem Verbindungspunkt (Knoten) T1 der Drains der Transistoren P1
und N1 verbunden, und der Eingangsanschluss des Invertierers INV2
ist mit einem Verbindungspunkt T2 der Drains der Transistoren P2
und N2 verbunden.
-
Die Transistoren P3 und P4 sind zwischen der
Versorgungsleitung der Versorgungsspannung VDD und
den Knotenpunkten T1 und T2 geschaltet und besitzen Gates, welche
mit Haltesignalen HLD beliefert werden.
-
Die Source des Transistors N1 und
der Drain des Transistors N3 sind mit einem Knotenpunkt N3 verbunden,
während
die Source des Transistors N2 und der Drain des Transistors N4 mit
einem Knotenpunkt T4 verbunden sind. Ein Signal gemäß den Daten
D wird zum Gate des Transistors N4 geliefert, und ein invertiertes
Logiksignal davon wird zum Gate des Transistors N4 geliefert.
-
Der Transistor N5 ist zwischen den
Knotenpunkten T3 und T4 geschaltet und besitzt ein Gate, welches
mit der Versorgungsleitung der Versorgungsspannung VDD verbunden
ist.
-
Die Sourcen der Transistoren N3 und
N4 sind gemeinsam mit dem Drain des Transistors N6 verbunden, die
Source des Transistors N6 ist geerdet, und das Haltesignal HLD wird
zum Gate geliefert.
-
18B zeigt
die Arbeitsweise der in 18A gezeigten
Latchschaltung. Wenn das Haltesignal HLD gleich 0 ist, werden die
Transistoren P3 und P4 in der Latchschaltung leitend, und die Knotenpunkte
T1 und T2 werden auf die Versorgungsspannung VDD unabhängig von
dem Wert der Eingangsdaten D geladen und auf dem hohen Pegel gehalten, wodurch
das Ausgangssignal (X, ^X) der Latchschaltung gleich (0, 0) wird.
Wenn das Haltesignal HLD gleich 0 ist, wird nämlich der Leercode von der
Latchschaltung ausgegeben.
-
Wenn danach das Haltesignal HLD sich
von 0 auf 1 ändert,
werden gemäß den Eingangsdaten
D das Ausgangssignal (X, ^X) gesetzt. Wenn das Haltesignal HLD gleich
1 ist, werden die Transistoren P3 und P4 in der Latchschaltung nichtleitend,
und der Transistor N6 wird leitend. Gemäß den Eingangsdaten D wird
einer der Transistoren N3 und N4 leitend, und die anderen werden
nichtleitend. Wenn beispielsweise die Eingangsdaten D = 1, wird
der Transistor N3 leitend, und der Transistor N4 wird nichtleitend.
Ein Entladungsweg wird vom Knotenpunkt T1 über die Transistoren N1, N3
und N6 gebildet, wodurch dessen Potential auf den niedrigen Pegel
abgesenkt wird, und der Knotenpunkt T1 wird auf den niedrigen Pegel
gehalten und der Knotenpunkt T2 wird auf dem hohen Pegel durch die
Latchschaltung gehalten, welche die Transistoren P1 und P2 und N1 und
N2 aufweisen. Damit wird das Ausgangssignal (X, ^X) auf (1, 0) gehalten.
-
Wenn umgekehrt die Eingangsdaten
D = 0, wird, wenn das Haltesignal HLD sich von 0 auf 1 ändert, das
Ausgangssignal (X, ^X) = (0, 1) gehalten.
-
Wenn dann das Haltesignal HLD gleich
1 ist, wird der Transistor N6 im leitenden Zustand unverändert gehalten,
wodurch die Zustände
der Knotenpunkte T1 und T2 durch die Latchschaltung gehalten werden,
die die Transistoren P1, P2 und N1, N2 aufweisen. Das Signal X#
wird, wenn das Haltesignal HLD von 0 auf 1 umgeschaltet wird, gehalten.
-
Ein Beispiel des Eingangsregisters-Verwendungs-Flipflops
ist in 19A und 19B gezeigt. Wie in 19A gezeigt ist, besteht
das Flipflop 200 aus einer Haltesignal-Erzeugungsschaltung 210 und
einer Latchschaltung 220. Die Latchschaltung 220 wird durch
die Latchschaltung, die in 18A gezeigt
ist, gebildet. Die Haltesignal-Erzeugungsschaltung 210 wird
durch ein D-Flipflop gebildet, erzeugt das Haltesignal HLD mit einem
Zeitablauf eines Taktsignals CK gemäß dem Eingangs-Reset-Signal
RST und liefert dieses zur Latchschaltung 220.
-
19B zeigt
die Logikwerte des Reset-Signals RST, des Taktsignals CK und des
Haltesignals HLD, welches durch die Haltesignal-Erzeugungsschaltung 210 erzeugt
wird. Wenn das Reset-Signal RST gleich 0 ist, wird unabhängig vom
Taktsignal CK das Haltesignal HLD auf 0 gehalten. Wenn das Reset-Signal
gleich 1 ist, wird bei der ansteigenden Flanke des Taktsignals CK
das Haltesignal HLD von 0 auf 1 umgeschaltet. In dem anderen Fall
wird das Haltesignal HLD unverändert
gehalten.
-
20 ist
ein Schwingungsformdiagramm, welches die Arbeitsweise des in 19A gezeigten Flipflops
zeigt. Wie gezeigt ist wird, wenn das Reset-Signal RST sich von
1 auf 0 ändert,
d.h., gemäß der abfallenden
Flanke des Reset-Signals RST das Haltesignal HLD auf 0 umgeschaltet,
und das Ausgangssignal (X, ^X) wird zum Leercode (0, 0).
-
Wenn anschließend das Reset-Signal RST gleich
1 ist, wird das Haltesignal HLD von 0 auf 1 bei der ansteigenden
Flanke des Taktsignals CK umgeschaltet. Damit wird in der Latchschaltung 220 das Ausgangssignal
(X, ^X) auf entweder (0, 1) oder (1, 0) gemäß den Eingangsdaten D gehalten.
-
Durch das Eingangsregister-Verwendungs-Flipflop 200 werden
die synchronen Eingangsdaten D einer Phase in Daten des Zweidraht-Zweiphasen-Typus
umgesetzt, die zur Logikschaltung nach der vorliegenden Erfindung
synchron mit dem Taktsignal CK geliefert werden können.
-
Prinzip der Arbeitsweise
der Logikschaltung nach der vorliegenden Erfindung
-
Nachstehend wird das Prinzip der
Arbeitsweise der Logikschaltung nach der vorliegenden Erfindung
mit Hilfe von 21 und 22 erläutert.
-
21 zeigt
ein Beispiel der Logikschaltung, welche durch Nicht-Latch-Logikzellen
B, C und D aufgebaut ist. 22 ist
ein Schwingungsformdiagramm, welches die Schwingungsform des Signals zeigt,
wenn diese Logikschaltung den Betrieb ausführt.
-
Bei der herkömmlichen Logikschaltung muss das
Ausgangssignal einer bestimmten Logikzelle bleiben, bis das Ausgangssignal
der Logikzelle am Anschlussende entschieden ist. In der Logikschaltung,
welche unter Verwendung von Logikzellen nach der vorliegenden Erfindung
aufgebaut ist, tritt jedoch, wenn das Ausgangssignal der Logikzelle
der Nachbarschaft entschieden ist, sogar wenn das Ausgangssignal
der bestimmten Logikzelle gelöscht wird,
ein logischer fehlerhafter Betrieb nicht auf. Anschließend wird
in dies weiter ausführlich
mit Hilfe von 21 erläutert.
-
Beispielsweise werden in 21 das früheste Signal αA# und das
letzte Signal ωA#
zur einer Logikzelle B geliefert. Es sei angemerkt, dass, obwohl dies
nicht dargestellt ist, eines oder mehrere Signale zur Logikzelle
B zwischen den Signalen αA#
und ωA#
geliefert werden.
-
ωA#,
welches in einem bestimmten Zeitpunkt geliefert wird, hält den ersten
Logikcode A1. Unabhängig
von der Tatsache, dass das Ausgangssignal ωD# am Anschlussende noch nicht
entschieden wurde, wird dieses zum Leercode in der Mitte verschoben,
und es werden neue Daten A2 ständig geliefert.
-
Die Logikzelle B führt eine
logische Auswertung (Logikbetrieb) durch, wenn das Eingangssignal ωA# zum Logikcode
A1 wird und gibt den Logikcode B1 mit ωB# aus. Sogar wenn ein Signal αA# oder dgl. anders
als ωA#
sich zum Leercode in der Mitte verschiebt, wird das Ausgangssignal ωB# der Logikzelle B
gehalten.
-
Die Logikzelle C führt eine
logische Auswertung durch, wenn das Ausgangssignal ωB# der Ausgangszelle
B zu einem Logikcode B1 wird und gibt einen Logikcode C1 als ωC# aus.
Wenn dieser empfangen wird, kann die Logikzelle D die logische Auswertung
beginnen.
-
Hier wird der Logikcode auf ωA# zum Leercode
verschoben. Wenn eine gewisse Zeit verstrichen ist, hält, sogar
in dem Augenblick, wenn das Ausgangssignal ωB# der Logikzelle B auf den
Leercode verschoben wird, das Eingangssignal ωC# der Logikzelle D den Logikcode.
Die Logikzelle D führt die
Logikauswertung während
dieser Zeit durch, und als Ergebnis der Auswertung entscheidet sie
das Ausgangssignal ωD#.
Dieses Betriebsergebnis ωD# wird
zur späteren
Stufe übertragen.
-
Wie oben erläutert wird während der
Zeit, von der, wenn das Eingangssignal ωA# der Logikzelle B auf den
Logikcode A1 verschoben wird, wenn das Ausgangssignal der Logikzelle
C zum Durchführen
des Logikbetriebs unter Verwendung des Ausgangssignals ωB# der bezogenen
Zelle als das Eingangssignal auf einen Logikcode verschoben wird, d.h.,
im Zeitpunkt der "Betriebsgrenze", die in 22 gezeigt wird, wenn der
Logikcode A1 beibehalten wird, das Betriebsergebnis der Reihe nach
verbreitet, und neue Operationen können der Reihe nach begonnen
werden, nachdem der Leercode eingefügt ist.
-
Der Zeitpunkt, von dem das Eingangssignal ωA# der Logikzelle
B zum Leercode wird, wenn das Ausgangssignal ωC# der Logikzelle C zum Leercode wird,
wird als "Leergrenze" definiert. Dieser
Zeitpunkt ist im Wesentlichen gleich dem der Betriebsgrenze. Die
Summe der Betriebsgrenze und der Leergrenze als "Betriebsschwellenwert" definiert. Dies
bedeutet die minimale Betriebszeit der Zelle (Logikzelle B).
-
Der Grund dafür, warum es ausreichend ist, lediglich
die Ausbreitung eines Signals ω*#
zu betrachten, welches zu jeder Logikzelle geliefert wird (beispielsweise ωA#, welches
zur Logikzelle B geliefert wird, ωB# , welches zur Logikzelle
C geliefert wird, und ωC#,
welches zur Logikzelle D geliefert wird) auf diese Art und Weise
besteht darin, dass diese Signale ω*# Signale sind, die am Letzten
in den Logikzellen ankommen.
-
Bei der obigen Erläuterung
wurde angenommen, dass die Betriebsschwellenwerte der Logikzellen
gleich sind. In Wirklichkeit sind die Betriebsschwellenwerte der
Logikzellen leicht verschieden gemäß der Größe der Logikbauschaltungen
in den Logikzellen. Folglich wird der maximale Betriebsschwellenwert
unter den mehreren Logikzellen, die eine Betriebsschaltung bilden,
als Betriebsschwellenwert der gesamten Betriebsschaltung definiert.
-
23 zeigt
eine Ausführungsform
der Betriebsschaltung der vorliegenden Erfindung. Die Betriebsschaltung
nach der vorliegenden Ausführungsform
wird durch ein Eingangsregister 250, eine Logikzellenmatrix 300 und
ein Ausgangsregister 350 gebildet.
-
Das Eingangsregister 250 ist
unter Verwendung von mehreren Flipflops 200, welche in 19A gezeigt sind, gebildet.
Diese Flipflops setzen die Bits der Eingangsdaten D in die Zweidraht-Zweiphasen-Daten
um, die in der Logikbetriebszelle der vorliegenden Erfindung verwendet
werden, und liefern diese an die vorher festgelegten Logikzellen,
die die Logikzellenmatrix 300 bilden.
-
Die Logikzellenmatrix 300 ist
eine Logikbetriebsschaltung, die durch mehrere Logikzellen gebildet
ist. Jede Logikzelle besteht aus der Ausgangsschaltung und der Logikbaumschaltung,
wie in 2 gezeigt ist.
Hier wird eine Logikzelle, die aus einer Latch-Ausgangsschaltung
und einer Logikbaumschaltung besteht, als Latch-Logikzelle bezeichnet, während eine
Logikzelle, welche durch eine Nicht-Latch-Ausgangsschaltung und
eine Logikbaumschaltung aufgebaut ist, als eine Nicht-Latch-Logikzelle
bezeichnet wird. Unter den Logikzellen, die die Logikzellenmatrix 300 bilden, sind
die Anfangs- und Zwischenlogikzellen durch Nicht-Latch-Logikzellen
ausgebildet, und die letzte Logikzelle besteht aus einer Latch-Logikzelle. Zwischen
den Logikzellen ist kein Pipeline-Register vorgesehen.
-
Das Ausgaberegister 350 besteht
aus einem herkömmlichen
Flipflop hält
die Betriebsergebnisse der Logikzellenmatrix 300 und gibt
diese nach außen hin
aus.
-
Die Betriebsschaltung nach der vorliegenden Erfindung,
welche den obigen Aufbau hat, erfordert kein Pipeline-Register,
welches für
die herkömmliche Datenweg-Pipeline
wesentlich ist, zwischen Logikzellen, welche die Logikzellenmatrix 300 bilden,
so dass ein Hochgeschwindigkeits-Logikbetrieb realisiert werden
kann.
-
Wie oben erläutert hat die Betriebsschaltung nach
der vorliegenden Erfindung eine einzigartige Betriebsschwellenwertzeit.
Damit die Betriebsschaltung mit einer hohen Geschwindigkeit für eine Zeit
in der Nähe
arbeiten kann, ist ein Mechanismus, um alle Eingangssignale der
Betriebsschaltung in Leercodes umzuschalten, wenn die Grenzzeit
verstrichen ist, notwendig. Eine Realisierung besteht in einer frühen Beendigungsmonitorzelle
(an schließend
einfachheitshalber als Monitorzelle bezeichnet) S, die in 23 gezeigt ist, und aus
einem 2-Eingangs-NOR-Gate NR, welches damit verbunden ist.
-
Die Monitorzelle S wählt die
Logikzelle aus, die eine Verzögerung
einer Zeit hat, die im Wesentlichen gleich der Betriebszeitgrenze
der Logikbetriebsschaltung ist (Logikzellenmatrix 300),
die per se vorher von den Logikzellen der Logikzellenmatrix 300 geschätzt wurde.
Unabhängig
von der Tatsache wird bestimmt, dass die Zelle per se den maximalen
Betriebsschwellenwert der Logikzellenmatrix 300 vorschreibt.
Zusammen mit der ansteigenden Flanke des Taktsignals CK werden die
Daten, die zur Logikzellenmatrix 300 geliefert werden,
vom Leercode auf den Logikcode umgeschaltet, und der Betrieb wird begonnen.
Die Logikzellen beginnen ihren Betrieb nacheinander von der Seite
am nächsten
dem Eingangssignal, und die Logikcodes werden der Reihe nach ausgegeben.
Wenn die Betriebsgrenzzeit der Logikzellenmatrix 300 per
se verstrichen ist, gibt es viele Logikzellen, die Ausgangssignale
haben, welche vom Leercode auf einen Logikcode verschoben werden.
Es wird eine derartige Logikzelle geeignet ausgewählt und
als Monitorzelle S definiert.
-
Anschließend wird der Betrieb der Monitorzelle
S und des NOR-Gates NR erläutert.
-
Wenn zunächst das Ausgangssignal der
Monitorzelle S der Leercode ist, ist das Ausgangssignal des NOR-Gates
NR die logische 1. Nach dem Start des Betriebs wird, wenn das Ausgangssignal
der Monitorzelle S sich vom Leercode auf den Logikcode verschiebt,
das Ausgangssignal des NOR-Gates NR von 1 auf 0 geändert. Das
Ausgangssignal des NOR-Gates
NR (als frühes
Beendigungsmonitorsignal C bezeichnet) wird zu den Flipflops, welche
das Eingangsregister bilden, als Reset-Signal RST des Eingangsregisters 250 geliefert,
wodurch das Eingangsregister 250 gemäß damit zurückgesetzt wird und alle Eingangssignale
der Logikzellenmatrix 300 zu Leercodes werden.
-
Die Leercodes, welche vom Eingangsregister 250 ausgegeben
werden, werden der Reihe nach in der Logikzellenmatrix 300 verbreitet.
Wenn das Ausgangssignal der Monitorzelle S auf den Leercode umgeschaltet
wird, wird das Ausgangssignal des NOR-Gates NR von 0 auf 1 umgeschaltet,
und das Reset-Signal des Eingangsregisters 250 wird gelöst. Dann
wird bei der nächsten
ansteigenden Flanke des Taktsignals CK jedes Bit der Eingangsdaten
D in das Eingangsregister 250 geholt, in einen Zweidraht-Zweiphasen-Code
umgesetzt und zur Logikzellenmatrix 300 geliefert.
-
Wie oben beschrieben löscht die
Logikzellenmatrix 300 per se den Inhalt des Eingangsregisters
durch die Monitorzellen S und fügt
den Leercode ein. Aus diesem Grund kann, wenn das Auswahlverfahren
der Monitorzelle geeignet ist, der erforderliche Minimalbetriebs- Grenzzeitpegel und
die Betriebsschwellenwertzeit erhalten werden. In Wirklichkeit gibt
es Zeitverzögerungen
des NOR-Gates NR und der Flipflops, die das Eingangsregister 250 bilden, wodurch
es geeignet ist, wenn eine Logikzelle, welche eine Verzögerungszeit
hat, die ein wenig kürzer ist
als die Betriebsgrenzzeit, als Monitorzelle S ausgewählt wird.
-
Wie in 23 gezeigt
ist, ist kein Pipeline-Register in die Logikzellenmatrix 300 eingefügt. Die
Logikzellenmatrix 300 kann jedoch einen Pipelinebetrieb ähnlich dem
einer Betriebsschaltung realisieren, die die herkömmliche
Datenweg-Pipeline-Struktur hat, und sie kann einen Logikbetrieb realisieren,
der bezüglich
der Geschwindigkeit höher ist
als der herkömmliche. 24 ist ein Schwingungsformdiagramm,
welches den Betrieb der Logikschaltung, welche in 23 gezeigt ist, zeigt. Danach wird der
Betrieb der Logikschaltung nach der vorliegenden Erfindung mit Hilfe
von 23 und 24 ausführlich erläutert.
-
Zunächst werden Blockschaltungs-Eingangsdaten
D, welche aus der übliche
Einzelphasen-Synchronisationslogik bestehen, synchron mit den Taktsignal
CK geliefert. Das Eingangsregister 250 setzt diese Eingangsdaten
D in Zweidraht-Zweiphasen-Daten um und holt neue Daten für jeden
Takt synchron mit dem Taktsignal CK. Wenn ein Ausgangssignal G des
Eingangsregisters vom Leercode auf einen Logikcode synchron mit
dem Taktsignal CK umgeschaltet wird, wird der vorher festgelegte
Logikbetrieb in der Logikzellenmatrix 300 begonnen.
-
Wenn das Ausgangssignal der Monitorzellen S,
welche in der Mitte der Logikzellenmatrix 300 ausgewählt wird,
vom Leercode auf einen Logikcode geändert wird, wird das Ausgangssignal
der bezogenen Monitorzelle S ebenfalls vom Leercode auf den Logikcode
geändert.
In diesem Zeitpunkt fällt
das frühe Beendigungsermittlungssignal
C ab und das Eingangsregister 250 wird zurückgesetzt.
Als Ergebnis wird das Eingangssignal der Logikzellenmatrix 300 zum
Leercode, und die Matrix ist für
einen neuen Betrieb vorbereitet.
-
Wie in 24 gezeigt
ist, werden die Eingangsdaten D in einer Reihenfolge D1, D2, D3,
. . . synchron
mit der ansteigenden Flanke des Taktsignals CK geliefert. Die Eingangsdaten
werden zur Logikzellenmatrix 300 in einer Reihenfolge G1,
G2, G3, . . .
synchron mit dem Taktsignal CK geliefert. Wenn die Daten, die zur
Logikzellenmatrix 300 geliefert werden, durch die Logikzellen
verbreitet werden und das Eingangssignal der Monitorzelle C sich
vom Leercode auf einen Logikcode verschiebt, fällt das Ausgangsdaten-Frühbeendigungs-Ermittlungssignal C
des NOR-Gates NR ab, das Eingangsregister wird gemäß damit
zurückgesetzt
und alle Eingangssignale zur Logikzellenmatrix 300 werden
zum Leercode. Wenn der Leercode in der Logikzellenmatrix 300 verbreitet
wird und das Eingangssignal der Monitorzelle S zum Leercode wird,
wird das Ausgangssignal des NOR-Gates NR zu 1, und der Reset des
Eingangsregisters wird gelöst,
so dass die nächsten
Eingangsdaten über
das Eingangsregister bei der nächsten ansteigenden
Flanke des Taktsignals CK zur Logikzellenmatrix 300 geliefert
werden.
-
Wie in 24 gezeigt
ist, sind alle Ausgangsschwingungsformen der Logikzellen bezüglich der
Schwingungsform des Ausgangssignals der Monitorzelle S ähnlich.
Diese werden nämlich
zu Schwingungsformen, die eine Breite haben, welche den Betriebsschwellenwert
erfüllen.
Aus diesem Grund können
die Betriebsdaten nacheinander ausgebreitet werden und erreichen
schließlich
die letzte Stufe.
-
In dem Beispiel der Schwingungsformen,
die in 24 gezeigt sind,
wird ein Betriebsergebnis Z1 der Daten D1, die durch einen ersten
Takt geholt werden, vom Ausgangsregister nach einem Ablauf von 3 Takten
geholt. Diese Betriebsschaltung führt nämlich einen Betrieb durch,
wobei eine Zeit hergenommen wird, welche länger ist als ein Zyklus eines
Taktes (die Zeit vom Anstieg von G1 bis zum Anstieg von X1 ist die
Zeit, um einen Betrieb in 24 auszuführen). Durch
das charakteristische Merkmal der Logikzelle nach der vorliegenden
Erfindung ist die Betriebsverarbeitung einer sogenannten Pipeline-Struktur,
die einen neuen Betrieb für
jeden Takt beginnt und das Betriebsergebnis für jeden Takt ausgibt, möglich. Aus diesem
Grund kann eine Hochgeschwindigkeits-Betriebsverarbeitung realisiert
werden. Außerdem
ist es nicht notwendig, ein Pipeline-Register in der Logikzellenmatrix 300 vorzusehen,
wodurch die Einschränkung
der Betriebsgeschwindigkeit durch die Pipeline-Register beseitigt
wird, und ein höherer
Geschwindigkeitslogikbetrieb als der der Betriebsschaltung der herkömmlichen
Pipeline-Struktur realisiert werden kann.
-
Wenn man die Wirkungen der Erfindung
zusammenfasst, die oben erläutert
wurde, kann gemäß der Logikschaltung
nach der vorliegenden Erfindung der Betrieb einer Datenweg-Pipeline
realisiert werden, ohne die herkömmlichen
Pipeline-Register zwischen Logikzellen einzufügen. Aus diesem Grund kann
die Verzögerungszeit
aufgrund der Pipeline-Register und der Hardware-Überschuss, welche die Probleme
bei der herkömmlichen
Pipeline-Struktur-Betriebsschaltung
waren, beseitigt werden, und es kann eine Vereinfachung der Schaltung
und eine Vergrößerung der
Betriebsgeschwindigkeit realisiert werden.
-
Bei der Betriebsschaltung nach der
vorliegenden Erfindung wird der Betriebsschwellenwert gleich dem
Wert von zwei Logikzellen der Betriebszeit. Aus diesem Grund kann
die Betriebsfrequenz extrem hoch gemacht werden. Wenn gewünscht wird,
eine Betriebsfrequenz zu realisieren, die gleich der ist, wie die
bei einer herkömmlichen
statischen CMOS-Logik, muss ein Pipeline-Register in Intervallen
von einem bis zwei Logikschaltungen eingefügt werden. In diesem Fall wird
eine Hälfte
oder mehr der Periode durch die Ver zögerungszeit der Pipeline-Register
verbraucht, wodurch zusätzlich
zur Grenze bei der Verbesserung der Betriebsgeschwindigkeit, die Größe der Schaltung
groß wird
und die Schaltung vom Standpunkt der Anzahl von Gates und des Leistungsverbrauchs
inpraktikabel wird. Daher gibt einen Vorteil durch die Betriebsschaltung
nach der vorliegenden Erfindung, dass alle diese Probleme gelöst werden
können
und eine Betriebsschaltung mit einer hohen Geschwindigkeit und einem
niedrigen Leistungsverbrauch realisiert werden kann.