DE69327421T2 - Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen Daten - Google Patents
Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen DatenInfo
- Publication number
- DE69327421T2 DE69327421T2 DE69327421T DE69327421T DE69327421T2 DE 69327421 T2 DE69327421 T2 DE 69327421T2 DE 69327421 T DE69327421 T DE 69327421T DE 69327421 T DE69327421 T DE 69327421T DE 69327421 T2 DE69327421 T2 DE 69327421T2
- Authority
- DE
- Germany
- Prior art keywords
- comparator
- value
- bit
- input
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 13
- 230000006870 function Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000001934 delay Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Manipulation Of Pulses (AREA)
- Logic Circuits (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein integrierte Schaltungen, und speziell eine Wertkomparatorschaltung.
- Diese Anmeldung ist bezogen auf die europäische Patentanmeldung, die unter der Nr. EP-A-0 564 137 veröffentlicht wurde. Diese Anmeldung ist auch auf die europäische Patentanmeldung bezogen, die unter der Nr. EP-A-0 568 373 veröffentlicht wurde, und gleichzeitig mit dieser Anmeldung eingereicht wurde.
- Wertkomparatorschaltungen werden verwendet, wenn es notwendig ist, die Beziehung zwischen den Werten zweier Zahlen zu bestimmen - ob eins Zahl hinsichtlich des Wertes gleich, kleiner als, oder größer als eine andere Zahl ist. Derartige Schaltungen finden in der Elektronikindustrie eine große Vielfalt von Anwendungen. Beispielsweise werden Wertkomparatoren zusammen mit Subtrahierern verwendet, um für FIFO (First In First Out bzw. Durchlauf-) Speicher eine Hochgeschwindigkeitsflaglogik bereitzustellen. Wertkomparatorschaltungen werden auch in Rechenwerken (ALUs bzw. Arithmetic Logic Units) verwendet, die in Personalcomputern (PCs) und in anderen Computern zu finden sind, und von Mikroprozessoren, zur Ausführung bestimmter Befehle.
- Im Stand der Technik sind serielle Wertkomparatoren eine übliche Ausgestaltung für Komparatorschaltungen. Sie weisen eine Anzahl einzelner Bitkomparatoren auf, die zusammen auf serielle Weise den Wert einer Zahl in Bezug auf eine andere Zahl bestimmen. Als erstes werden die Bits niedrigster Wertigkeit (LSBs bzw. Least Significant Bits) der zwei Zahlen verglichen, bevor die nächsten Bits, die LSB+1, verglichen werden. Dieser Vorgang wird auf serielle Weise fortgesetzt, bis die Bits höchster Wertigkeit (MSBs bzw. Most Significant Bits) verglichen wurden. Der serielle Vorgang kann ziemlich aufwendig sein; beim Vergleich zweier 16-Bit Wörter fallen mindestens 16 Gatterverzögerungen an.
- Die einzelnen Bitkomparatoren, die einen seriellen Wertkomparator bilden, haben vier Eingaben: zwei Eingaben, die von den zwei Bits bestimmt werden, die verglichen werden sollen, eine Eingabe von der Vergleichsausgabe des vorhergehenden Wertkomparators, und eine Eingabe, die gleich dem ersten Bit der zwei Bits ist, die verglichen werden sollen. Die Vergleichsausgabe eines Bitkomparators wird dem darauffolgenden Bitkomparator eingegeben, und spiegelt wieder, ob der Wert eines Bits gleich, kleiner als, oder größer als der Wert des anderen Bits ist. Wenn die zwei verglichenen Bits gleich sind, wird die Vergleichseingabe als die Vergleichsausgabe durch den Bitkomparator durchgegeben. Wenn jedoch die zwei Bits hinsichtlich des Werts ungleich sind, wird die Eingabe, die gleich dem ersten Bit der zwei Bits, die verglichen werden als die Vergleichsausgabe durchgegeben. Dieser Vergleichsvorgang beginnt mit dem Komparator für das Bit niedrigster Wertigkeit (LSB), und wird fortgesetzt, bis der Komparator für das Bit höchster Wertigkeit (MSB) seinen Vergleichsbetrieb beendet. Der Bitkomparator mit unterschiedlichen Bits der höchsten Ordnung bestimmt den Zustand der Vergleichsendausgabe.
- Die mit den seriellen Wertkomparatoren einhergehenden Gatterverzögerungen können einen ungünstigen Effekt auf die Gesamtsystemleistung haben. Bei FIFO (First In First Out) Speicheranwendungen wird ein Wertkomparator oft zusammen mit einer Subtrahierschaltung verwendet, um eine FIFO Flaglogik bereitzustellen. Ein FIFO Flag zeigt dem Anwender an, wie voll der FIFO ist. Flaglogikoperationen, die von dem Komparator und dem Subtrahierer abhängen, müssen schnell ausgeführt werden. Wenn der Wertkomparator langsam ist, hat er eine ungünstige Wirkung darauf, wie schnell Flaglogikoperationen durchgeführt werden können, und die Gesamtleistung des FIFO leidet. Ein grundsätzlicher Weg, die Geschwindigkeit zu erhöhen, mit der FIFO Logikoperationen durchgeführt werden, ist es, die mit den seriellen Wertkomparatoren einhergehenden Laufzeit- und Gatterverzögerungen zu minimieren. Es wäre wünschenswert, dies unter Verwendung aktueller Wertkomparatorkonstruktionen zu erreichen.
- Ein zur Verwendung bei einem FIFO Speicher geeigneter Wertkomparator wird modifiziert, um die Werte zweier Größen schneller zu vergleichen. Die Bitkomparatoren werden in zwei Gruppen unterteilt, die parallel zueinander Vergleichsausgabesignale erzeugen, dabei die Wertkomparatorgesamtverzögerung verringern, und so zu einem schnelleren Betrieb führen. Diese Vergleichsausgabesignale werden einem Steuerelement zugeführt, welches bestimmt, welchem Ausgabesignal ein Durchgang als Vergleichsendausgabesignal ermöglicht wird.
- Die Entgegenhaltung FR-A-1603654 des Standes der Technik offenbart einen Wertkomparator, der mehrere Bitkomparatoren aufweist, die in Komparatorgruppen unterteilt sind, die ein Gruppenausgabesignal erzeugen. Jeder Komparator vergleicht den Wert eines ersten Bits und eines zweiten Bits, und ein Steuerschaltkreis hat Eingänge, die mit den Ausgängen der Komparatorgruppen verbunden sind, um eine Komparatorausgabe zu liefern. Bei dieser Entgegenhaltung sind die Komparatoren als Addierer ausgebildet, die eine Übertragsausgabe aufweisen. Von jeder Gruppe wird eine Übertragsausgabe geliefert. Es wird eine weitere Gruppenausgabe geliefert, indem die Ausgänge der Addierer zusammengeschaltet werden. Ein Logikschaltkreis stellt eine Einzelausgabe von dem Komparator bereit.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Wertkomparator zur Verfügung gestellt, mit:
- Mehreren Bitkomparatoren (52-58), die in Komparatorgruppen (50-80) unterteilt sind, die ein Gruppenausgabesignal (59, 69, 79, 8a) erzeugen, wobei jeder Komparator den Wert eines ersten Bits und eines zweiten Bits vergleicht; und
- einem Steuerschaltkreis (90) mit Eingängen, die mit den Ausgängen der Komparatorgruppen verbunden sind, zum Liefern einer Komparatorausgabe (100), dadurch gekennzeichnet, daß der Steuerschaltkreis Logikeingaben hat, die durch Boolesche Operationen an den von den Bitkomparatoren zu vergleichenden Bits bestimmt werden, um den Steuerschaltkreis so zu betreiben, daß eines der Gruppenausgabesignale als die Komparatorausgabe gewählt wird, wobei die Komparatorgruppen und der Steuerschaltkreis ihre jeweiligen Funktionen gleichzeitig ausführen.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Vergleichen des Werts einer ersten Werteingabe und einer zweiten Werteingabe zur Verfügung gestellt, mit den Schritten:
- Vergleichen des Werts einer ersten Werteingabe und einer zweiten Werteingabe, indem Bitkomparatoren zu Komparatorgruppen gruppiert werden, die Gruppenvergleichsausgaben erzeugen, die einer Steuerschaltung zugeführt werden; und
- Bereitstellen eines Vergleichsausgabe-Endsignals von der Steuerschaltung, dadurch gekennzeichnet, daß an der ersten und der zweiten Werteingabe Boolesche Logikoperationen durchgeführt werden, wobei das Vergleichsausgabe- Endsignal aus einer der Gruppenvergleichsausgaben ausgewählt wird, und wobei der Vergleichsschritt und der Bereitstellschritt gleichzeitig ausgeführt werden.
- Die neuen Merkmale, die als für die Erfindung charakteristisch angesehen werden, sind in den beigefügten Ansprüchen definiert. Die Erfindung selbst jedoch, sowie eine bevorzugte Verwendungsweise, und ihre weiteren Ziele und Vorteile werden am besten verstanden, indem auf die fol gende detaillierte Beschreibung eines veranschaulichenden Ausführungsbeispieles Bezug genommen wird, wenn sie zusammen mit der begleitenden Zeichnung gelesen wird, bei welcher:
- Fig. 1 ein Blockdiagramm einer FIFO Flagerzeugungsschaltung gemäß dem Stand der Technik ist;
- Fig. 2 ein schematisches Diagramm eines seriellen Wertkomparators ist, der im Stand der Technik verwendet wird;
- Fig. 3 ein schematisches Diagramm eines parallelen Wertkomparators gemäß der vorliegenden Erfindung ist;
- Fig. 4 ein schematisches Diagramm eines Dreizustandsgatters gemäß der vorliegenden Erfindung ist.
- Ein FIFO ist ein Durchlaufspeicher, der typischerweise bei Anwendungen zwischen Maschinen verwendet wird, die Daten mit verschiedenen Geschwindigkeitsraten verwenden: beispielsweise zwischen einem Computer und einem Drucker. Der FIFO Speicher gibt unter Verwendung eines Flags seinen Status aus. Bei FIFO Speicherschaltungen werden häufig Komparatoren zusammen mit Subtrahierern verwendet, um FIFO Flags zu erzeugen. Die Flagausgaben zeigen beispielsweise an, daß der FIFO voll, halb voll, oder leer ist. Um den Status des FIFOs zu bestimmen, ist es notwendig, zu verfolgen, wieviele Bits in das FIFO geschrieben wurden, und wieviele Bits aus dem FIFO gelesen wurden. Auch ist es notwendig, die Beziehung zwischen den Werten von zwei Zahlen, und ob der Wert einer Zahl gleich, kleiner als oder größer als der Wert der anderen Zahl ist, zu wissen. Das Vergleichen des Werts dieser Zahlen wird erreicht, indem eine Wertkomparatorschaltung im FIFO verwendet wird.
- Bezogen auf Fig. 1 ist ein Blockdiagramm einer FIFO Flagerzeugungsschaltung gemäß dem Stand der Technik gezeigt. Die FIFO Flag weist einen Zählerblock 10, einen Subtrahierblock 12, einen Komparatorblock 14, und einen Entstörblock 16 auf. Ein Schreibtakt 18, ein Lesetakt 20, ein Schreibrücksetztakt 22 und ein Leserücksetztakt 24 stellen Eingabesignale sowohl zu dem Zählerblock 10 als auch zu dem Entstörblock 16 dar. Der Zählerblock 10 empfängt diese Eingabesignale, und erzeugt einen Schreibzählstand 26 und einen Lesezählstand 28, die dem Subtrahierblock 12 eingegeben werden, der wiederum ein Differenzsignal 30 ausgibt. Dieses Differenzsignal 30 und ein Programmwert 32 werden in den Komparatorblock 14 eingegeben, der sie vergleicht, um ein Ausgabevergleichssignal 34 zu erzeugen. Wie im Stand der Technik bekannt ist, wird der Programmwert 32 auf verschiedene Werte festgesetzt, in Abhängigkeit von der Art eines zu erzeugenden Flagsignals 36, wie z. B. leer, halb voll oder voll. Schließlich werden das Vergleichssignal 34 sowie der Schreibtakt 18, der Lesetakt 20, der Schreibrücksetztakt 22, und der Leserücksetztakt 24 in den Entstörblock 16 eingegeben, der das Flagausgabesignal 36 erzeugt.
- Fig. 2 zeigt ein schematisches Diagramm eines seriellen Wertkomparators 20, der im Stand der Technik verwendet wird. Der Wertkomparator 20 hat die Aufgabe, die Beziehung zwischen den Werten zweier Zahlen zu bestimmen. Der Wertkomparator 20 weist mehrere Bitkomparatoren 22, 24, 26 und 28 auf, die den Relativwertstand der zwei verglichenen Zahlen bestimmen. Die Anzahl der benötigten Bitkomparatoren ist eine Funktion der Anzahl von Bits in den zwei Zahlen, die verglichen werden. Jeder Bitkomparator vergleicht ein Bit von beiden Zahlen bei einer bestimmten Bitstelle. Beispielsweise wird der Wertstand des ersten zu vergleichenden Bits 40 mit demjenigen des zweiten Bits 42 verglichen, um zu bestimmen, ob es gleich, kleiner als, oder größer als das zweite Bit 42 ist. Jeder Bitkomparator hat vier Eingaben. Die zwei zu vergleichenden Bits 40 und 42 werden in ein exklusives ODER Gatter 44 eingegeben, dessen Ausgabe eine Eingabe 36 zu den Bitkomparatoren 22, 24, 26 und 28 darstellt; das Signal 36 wird invertiert, um eine Eingabe 38 zu liefern. Die Eingabe 38, die einfach das Inverse der Eingabe 36 ist, könnte auf einfache Weise intern im Bitkomparator erzeugt wer den; in diesem Fall würde es kein Eingabesignal darstellen. Weitere Eingaben zu den Bitkomparatoren sind die Ausgabe des vorhergehenden Bitkomparators 30, und eine Eingabe 34, das erste Bit der zwei Bits, die verglichen werden. Die Eingabe 34 ist von dem in Fig. 1 gezeigten Programmwert 32 verschieden. Fig. 2 zeigt zwei Binärzahlen, die verglichen werden, wohingegen Fig. 1 eine Binärzahl zeigt, die mit einem festen Wert, dargestellt durch den Programmwert 32, verglichen wird.
- Die Bitkomparatoren von Fig. 2 ermitteln den Relativwert der zwei Zahlen, die verglichen werden. Wenn der Wert der Bits 40 und 42 identisch ist, ist eine Vergleichsausgabe 32 gleich der Vergleichseingabe 30. Wenn jedoch der Wert von 40 und 42 verschieden ist, wird die Vergleichsausgabe 32 gemäß der folgenden Gestaltungsregel bestimmt: Wenn das Eingabebit 40 größer als das Eingabebit 42 ist, ist die Vergleichsausgabe 32 gleich 1. Umgekehrt ist, wenn das Eingabebit 40 kleiner als das Eingabebit 42 ist, die Vergleichsausgabe gleich 0. Die Biteingaben 40 und 42 gehen durch ein exklusives ODER Gatter hindurch. Deswegen ist, wenn das Bit 40 und das Bit 42 gleich sind, die Eingabe 36 gleich 0, und die Eingabe 38, die invertiert ist, gleich 1. Wenn jedoch der Wert des Bits 40 und des Bits 42 verschieden ist, ist die Eingabe 36 gleich 1 und die Eingabe 38 ist gleich 0. Die Wahrheitstabelle unten zeigt die Vergleichsausgabe 32 in Bezug auf die Eingaben 36 und 38. Tabelle I.
- Diese Tabelle zeigt, daß dann, wenn die beiden zu vergleichenden Bits, 40 und 42, verschieden sind, die Vergleichseingabe 34 als die Vergleichsausgabe 32 ausgegeben wird. Umgekehrt wird, wenn der Wert der Bits 40 und 42 gleich ist, die Vergleichseingabe von dem vorhergehenden Bitkomparator 30 als die Vergleichsausgabe 32 ausgegeben. Die Vergleichseingabe 30 des Anfangsbitkomparators 22 ist auf einen festen Wert festgelegt, der V oder wie in Fig. 2 gezeigt, Erde sein kann. Somit wird, wenn die Eingabebits 40 und 42 gleich sind, ein niedriger Pegel zu der Vergleichsausgabe 32 durchgegeben. Infolgedessen empfängt der Bitkomparator 24 ein niedriges Eingabesignal 30, und die Vergleichsausgabe 32 wird wieder 0 sein, wenn die Eingabebits 40 und 42 des Bitkomparators 24 den gleichen Wert haben, so daß die eingegebene Vergleichseingabe ausgegeben wird. Dieser Vorgang beginnt mit dem Komparator für das Bit niedrigster Wertigkeit (LSB) 22, und wird seriell fortgesetzt, bis der Komparator für das Bit höchster Wertigkeit (MSB) 28 seine Vergleichsoperation beendet hat. Erst wenn die Werte der Bits höchster Wertigkeit verglichen wurden, wird eine Vergleichsendausgabe 32 erzeugt. Der Bitkomparator höchster Ordnung, bei dem die Bits unterschiedlich sind, bestimmt den Zustand der Vergleichsendausgabe 32 des Bitkomparators 28.
- Fig. 2 zeigt, daß 16 Bitkomparatoren benötigt werden, um Zahlen mit 16 Bits zu vergleichen. Da der Vorgang seriell ist, kann es ziemlich zeitaufwendig sein, auf die Vergleichsendausgabe zu warten. Für einen Vergleich von 16 Bit müssen mindestens 16 Gatterverzögerungen anfallen, bevor ein Vergleichsendausgabesignal erscheint. Dies trifft auf Szenarien zu, bei denen sich im schlimmsten Fall nur die Bits niedrigster Wertigkeit unterscheiden, oder bei denen alle 16 Bits, die verglichen werden, im Wert gleich sind. Es ist wünschenswert, den seriellen Vergleichsvorgang zu beschleunigen, da viele Komparatoranwendungen einen Hochgeschwindigkeitsbetrieb erfordern.
- Fig. 3 zeigt ein schematisches Diagramm eines parallelen Wertkomparators gemäß der vorliegenden Erfindung. Bitkomparatoren haben die gleichen Eingaben und die gleiche Ausgabe wie in Fig. 2 gezeigt. Jedoch unterscheidet sich die vorliegende Erfindung dadurch, daß die Bitkomparatoren in Gruppen unterteilt sind, die unabhängig voneinander parallel arbeiten. Bezogen auf Fig. 3 sind die Bitkomparatoren in Komparatorgruppen 50, 60, 70 und 80 unterteilt. Die Eingaben und Ausgaben jedes Bitkomparators sind gleich denjenigen, die in Fig. 2 gezeigt sind. Eine Eingabe 36 wird dadurch bestimmt, daß zwei zu vergleichende Bits durch ein exklusives ODER Gatter hindurch gehen, und eine Eingabe 38 ist das Inverse der Eingabe 36. Die Eingabe 38 ist das Inverse der Eingabe 36, und könnte deshalb auch intern im Bitkomparator erzeugt werden, und braucht überhaupt keine Eingabe darstellen. Eine Eingabe 34 ist gleich dem ersten Bit der zwei Bits, die verglichen werden. Eine Vergleichsausgabe 32 hängt, wie in Fig. 2, von dem Relativwert der zwei Bits ab, die verglichen werden.
- Die oben für Fig. 2 gezeigte Wahrheitstabelle gilt auch für Fig. 3. Wenn das Eingabebit 36 logisch hoch ist, sind die beiden verglichenen Bits in Bezug zueinander verschieden, und die Eingabe 34 wird als die Vergleichsausgabe 32 ausgegeben. Wenn jedoch das Eingabebit 36 logisch niedrig ist, haben die beiden verglichenen Bits relativ zueinander den gleichen Wert, und es wird einfach eine Vergleichseingabe 30 als die Vergleichsausgabe 32 ausgegeben. Als Beispiel wird, wenn alle vier Bitkomparatoren 52, 54, 56 und 58 der Komparatorgruppe 50 Bits vergleichen, die gleich sind, die logisch niedrige Vergleichseingabe 30 des Anfangsbitkomparators 52 durch die darauffolgenden Bitkomparatoren 54, 56 und 58 hindurch gehen, bis sie eine Vergleichsausgabe 59 der Komparatorgruppe ist. Hier stellt das logisch niedrige Vergleichsausgabesignal 59 eine Eingabe zu einem Steuerelement 90 dar. Stets ist, wie bei diesem Beispiel, der Ausgabevergleichswert 59 der Komparatorgruppe 50 gleich der Ver gleichsausgabe 32 des Bitkomparators höchster Ordnung mit Bitunterschied.
- Bei einem Beispiel mit 16 Bit vergleicht die Komparatorgruppe 50 den Wert der vier Bits niedrigster Wertigkeit (LSB) der zwei Zahlen. Die Komparatorgruppen 60 und 70 vergleichen jeweils den Wert der Bits 5-8 und 9-12, während die Komparatorgruppe 50 den Wert der Bits höchster Wertigkeit (MSB), 13-16, vergleicht. Der Vergleich dieser Bits findet innerhalb der Komparatorgruppen auf serielle Weise statt, wobei die Komparatorgruppen 50, 60, 70 und 80 parallel zueinander arbeiten. Deswegen findet der Vergleich aller 16 Bits in der gleichen Zeit statt, wie sie zum Vergleich von 4 Bits in dem seriellen Wertkomparator von Fig. 2 benötigt wird. Selbstverständlich bedeutet dies eine Leistungsverbesserung für jedes System, das einen parallelen Wertkomparator verwendet. Ein Fachmann für Wertkomparatoren wird erkennen, daß das Aufteilen der Bitkomparatoren in Vierergruppen nur einer von vielen Wegen ist, die Bitkomparatoren zu gruppieren.
- Die Vergleichsausgabesignale 59, 69, 79 und 89 jeder Komparatorgruppe stellen Eingaben zu dem Steuerelement 90 dar. Nur eines dieser Vergleichsausgabesignale wird, ausgewählt von dem Steuerelement 90, durch das Steuerelement durchgegeben, um eine Vergleichsendausgabe 100 zu sein. Das Steuerelement 90 weist mehrere Übertragungsgatter 92, 94, 96 und 98 auf, die jeweils einer der Komparatorgruppen 50, 60, 70 und 80 entsprechen. Jedes Übertragungsgatter hat als Eingaben die Vergleichseingabe der entsprechenden Komparatorgruppe, und eine Logikeingabe, die durch boolesche Gleichungen bestimmt wird. Das Übertragungsgatter 92 hat die Vergleichsausgabe 59 der Komparatorgruppe 50, und eine Logikeingabe 93 als Eingaben. Die Logikeingaben 93, 95, 97 und 99 stellen sicher, daß nur die Vergleichsausgabe der Komparatorgruppe mit wertunterschiedlichen Bits der höchsten Ordnung von dem Steuerelement 90 als die Vergleichsendausgabe 100 ausgegeben wird. Wenn keines der Bits verschieden ist, wird die Vergleich sausgabe 59 der Komparatorgruppe niedrigster Ordnung 50 durch das Steuerelement 90 als die Vergleichsendausgabe 100 durchgegeben.
- Die Logikeingaben 93, 95, 97 und 99 werden durch die folgende Gleichung bestimmt: SN = XN + XN-1 + + XN-2 + XN-3, wobei XN das Ergebnis einer exklusiven ODER Operation auf die zwei zu vergleichenden Bits ist. Insbesondere sind die Logikeingaben wie folgt:
- Eingabe 99 = S&sub1;&sub6; = X&sub1;&sub6; + X&sub1;&sub5; + X&sub1;&sub4; + X&sub1;&sub3;
- Eingabe 97 = S&sub1;&sub2; * &sub1;&sub6; = (X&sub1;&sub2; + X&sub1;&sub1; + X&sub1;&sub0; + X&sub9;) * &sub1;&sub6;
- Eingabe 95 = S&sub8; * &sub1;&sub2; * &sub1;&sub6; = (X&sub8; + X&sub7; + X&sub6; + X&sub5;) * &sub1;&sub2; * &sub1;&sub6;
- Eingabe 93 = &sub8; * &sub1;&sub2; * &sub1;&sub6;
- Wenn eine der Logikeingaben 93, 95, 97 oder 99 hoch ist, wird das entsprechende Übertragungsgatter eingeschaltet, und läßt zu, daß die entsprechende Komparatorgruppenvergleichsausgabe 59, 69, 79 oder 89 durch das Übertragungsgatter hindurchgeht. Wenn jedoch die Logikeingabe niedrig ist, wird das entsprechende Übertragungsgatter ausgeschaltet, und läßt nicht zu, daß das entsprechende Vergleichsausgabesignal durch das Übertragungsgatter hindurch geht. Diese Gleichungen garantieren, daß die Vergleichsausgabe der Komparatorgruppe mit einem Bitunterschied bei der höchsten Ordnung als die Vergleichsendausgabe 100 ausgegeben wird. Beispielsweise stellen, wenn zwei Binärzahlen beim Bit 14 und auch beim Bit 2 verschiedene Werte haben, die Logikeingaben sicher, daß die Vergleichsausgabe 89 der Komparatorgruppe 80 als die Vergleichsendausgabe 100 ausgegeben wird, da das Bit 14 eine höhere Wertigkeit als das Bit 2 hat. Die Logikeingaben 93, 95, 97 und 99 werden zur gleichen Zeit bestimmt, zu der die Komparatorgruppen 50, 60, 70 und 80 Wertvergleichsoperationen durchführen. Dieser parallele Betrieb läßt zu, daß die richtige Vergleichsausgabe 59, 69, 79 oder 89 vom Steuerelement 90 ausgewählt wird, und als die Endvergleichsausgabe 100 ausgegeben wird, sofort nachdem die Komparatorgruppen die Vergleichsoperationen beendet haben. Das Steuerelement 90 führt zu keiner zusätzlichen Verzögerung bei der parallelen Wertkomparatorvergleichszeit, da das Steuerelement 90 seine Operationen beendet, bevor oder gleichzeitig dazu, daß die Gruppenvergleichsausgaben 59, 69, 79 und 89 dazu bereitstehen, durch das Steuerelement 90 durchgegeben zu werden.
- Die vorliegende Erfindung würde so, wie sie in Fig. 3 beschrieben ist, zu fünf Gatterverzögerungen führen: eine Gatterverzögerung bei jedem seriell in einer Komparatorgruppe arbeitenden Wertkomparator, wie zum Beispiel die Bitkomparatoren 52, 54, 56 und 58 in der Komparatorgruppe 50, und eine Gatterverzögerung beim Steuerelement 90. Die Erfindung benötigt keine Pufferung, da die Bitkomparatoren in Vierergruppen aufgeteilt sind. Dies ist eine deutliche Verbesserung gegenüber dem seriellen Wertkomparator, der in Fig. 2 gezeigt ist, welcher zumindest 16 Gatterverzögerungen führt, eine bei jedem Bitkomparator. Beim 16 Bit-Beispiel wird eine Pufferung benötigt, um eine Signalabschwächung zu vermeiden, die bei einem Durchlaufen von 16 seriell verbundenen Bitkomparatoren auftreten würde. Die Gatterverzögerung ist sogar noch größer, wenn bei dem seriellen Wertkomparator eine Pufferung verwendet wird. Wenn nach jedem vierten Bitkomparator ein Inverter angeordnet wäre, würde dies zu vier zusätzlichen Gatterverzögerungen führen, so daß insgesamt 20 Gatterverzögerungen auftreten würden.
- Ein alternatives Ausführungsbeispiel der Erfindung, welches ein Dreizustandsgatter anstelle eines Übertragungsgatters verwendet, ist in Fig. 4 gezeigt. Fig. 4 zeigt ein Dreizustandsgatter 110 mit drei Eingaben EINGABE, LOGIKEINGABE und . Die EINGABE ist das Vergleichsausgabesignal von der entsprechenden Komparatorgruppe, und ist analog zu den in Fig. 3 gezeigten Grup penvergleichsausgaben 59, 69, 79 und 89. Die LOGIKEINGABE ist analog zu den Logikeingaben 93, 95, 97 und 99 von Fig. 3; die LOGIKEINGABE wird durch die gleichen SN- Gleichungen bestimmt, wie oben dargestellt. Die -ist einfach das Inverse der LOGIKEINGABE. Ein AUSGABE Signal wird vom Zustand des LOGIKEINGABE Signals bestimmt. Wenn die LOGIKEINGABE logisch hoch ist, ist die logisch niedrig, und das LOGIKEINGABE Signal wird als die AUSGABE durchgegeben. Wenn die LOGIKEINGABE logisch niedrig ist, ist die logisch hoch, und das Dreizustandsgatter 110 ist folglich in einem Zustand hoher Impedanz und schließt, wobei nicht zugelassen wird, daß etwas hindurchgeht.
- Vier Dreizustandsgatter 110 würden den Platz der vier in Fig. 3 gezeigten Übertragungsgatter einnehmen, und würden innerhalb der gleichen Stufe sowohl Multiplexen als auch Puffern. Die Ausgaben dieser vier Durchgangsgatter würden zu einer einzigen Endvergleichsausgabe 100 zusammengeschlossen. In diesem Fall wäre immer noch kein Puffern bei dem in Fig. 3 gezeigten parallelen 16 Bit Wertkomparator notwendig.
- Der parallele Wertkomparator wurde in Bezug auf eine FIFO Flag Erzeugungsschaltung beschrieben. Der Wertkomparator kann auch bei einer Vielzahl weiterer Anwendungen verwendet werden, wie bei Rechenwerken (ALUs) von Computern, bei denen es notwendig ist, den Wert einer Zahl relativ zu demjenigen einer zweiten Zahl zu bestimmen.
Claims (26)
1. Wertkomparator mit:
mehreren Bitkomparatoren (52-58), die in
Komparatorgruppen (50-80) unterteilt sind, die ein
Gruppenausgabesignal (59, 69, 79, 89) erzeugen, wobei jeder Komparator
den Wert eines ersten Bits und eines zweiten Bits
vergleicht; und
einem Steuerschaltkreis (90) mit Eingängen, die mit
den Ausgängen der Komparatorgruppen verbunden sind, zum
Liefern einer Komparatorausgabe (100), dadurch
gekennzeichnet, daß der Steuerschaltkreis Logikeingaben hat,
die durch Boolesche Operationen an den von den
Bitkomparatoren zu vergleichenden Bits bestimmt werden, um den
Steuerschaltkreis so zu betreiben, daß eines der
Gruppenausgabesignale als die Komparatorausgabe gewählt wird,
wobei die Komparatorgruppen und der Steuerschaltkreis
ihre jeweiligen Funktionen gleichzeitig ausführen.
2. Wertkomparator gemäß Anspruch 1, bei welchem jede
Komparatorgruppe unabhängig von jeder anderen
Komparatorgruppe ist.
3. Komparatorgruppe gemäß Anspruch 2, bei welcher die
Komparatorgruppen mehrere Bits gleichzeitig vergleichen.
4. Wertkomparator gemäß Anspruch 1, bei welchem jeder
Bitkomparator eine Vergleichsausgabe erzeugt, die dem
darauffolgenden Bitkomparator eingegeben wird.
5. Wertkomparator gemäß Anspruch 4, bei welchem der
Anfangsbitkomparator der Komparatorgruppe als
Vergleichs
eingabe ein Signal hat, das auf einen vorbestimmten Pegel
eingestellt ist.
6. Wertkomparator gemäß Anspruch 4, bei welchem jeder
Bitkomparator eine erste Werteingabe, eine zweite
Werteingabe, und eine dritte Werteingabe hat.
7. Wertkomparator gemäß Anspruch 6, bei welchem die erste
Werteingabe ein Einbitwert ist, der bestimmt wird, indem
das erste Bit und das zweite Bit, die verglichen werden
sollen, logisch verknüpft werden.
8. Wertkomparator gemäß Anspruch 7, bei welchem die
zweite Werteingabe gleich dem Wert des ersten Bits ist, das
verglichen werden soll.
9. Wertkomparator gemäß Anspruch 7, bei welchem das erste
Bit und das zweite Bit, die verglichen werden sollen,
jeweils ein FIFO-Lesezählstand, und ein FIFO-
Schreibzählstand sind.
10. Wertkomparator gemäß Anspruch 6, bei welchem die
dritte Werteingabe das Vergleichsausgabesignal ist, das
von einem vorhergehenden Bitkomparator erzeugt wird.
11. Wertkomparator gemäß Anspruch 1, bei welchem das
Steuerelement bestimmt, welche Komparatorgruppe die Bits
höchster Ordnung enthält, die nicht übereinstimmen.
12. Komparator gemäß Anspruch 11, bei welchem das
Steuerelement mehrere Gatter aufweist, die jeweils einer
Komparatorgruppe entsprechen.
13. Komparator gemäß Anspruch 12, bei welchem das
Steuerelement mehrere Übertragungsgatter aufweist, die
jeweils einer Komparatorgruppe entsprechen.
14. Komparator gemäß Anspruch 12, bei welchem das
Steuerelement mehrere Dreizustandsgatter aufweist, die
jeweils einer Komparatorgruppe entsprechen.
15. Komparator gemäß Anspruch 12, bei welchem das Gatter
eine erste und eine zweite Werteingabe empfängt, die
bestimmt, ob das Gatter zuläßt, daß die erste Werteingabe
von dem Gatter ausgegeben wird.
16. Komparator gemäß Anspruch 15, bei welchem die erste
Werteingabe die Ausgabe von der entsprechenden
Komparatorgruppe ist.
17. Komparator gemäß Anspruch 16, bei welchem die zweite
Werteingabe davon bestimmt wird, ob die Bits, die in der
momentanen Komparatorgruppe oder den Komparatorgruppen
höherer Ordnung verglichen werden, übereinstimmen.
18. Komparator gemäß Anspruch 15, bei welchem das Gatter
nicht zulassen kann, daß die erste Werteingabe aus dem
Gatter ausgegeben wird.
19. Komparator gemäß Anspruch 15, bei welchem nur eines
der mehreren Gatter zulassen kann, daß die erste
Werteingabe des Gatters aus dem Gatter ausgegeben wird.
20. Komparator gemäß Anspruch 12, bei welchem es vier
Komparatorgruppen gibt, die jeweils vier Bitkomparatoren
aufweisen.
21. Komparator gemäß Anspruch 20, bei welchem jede der
vier Komparatorgruppen einem der Gatter für eine
sechszehn-Bit FIFO-Flag-Erzeugungschaltung entspricht.
22. Verfahren zum Vergleichen des Werts einer ersten
Werteingabe und einer zweiten Werteingabe, mit den
Schritten:
Vergleichen des Werts einer ersten Werteingabe und
einer zweiten Werteingabe, indem Bitkomparatoren (52-
58) zu Komparatorgruppen (50-80) gruppiert werden, die
Gruppenvergleichsausgaben (59, 69, 79, 89) erzeugen, die
einer Steuerschaltung (90) zugeführt werden; und
Bereitstellen eines Vergleichsausgabe-Endsignals
(100) von der Steuerschaltung, dadurch gekennzeichnet,
daß an der ersten und der zweiten Werteingabe Boolesche
Logikoperationen durchgeführt werden, wobei das
Vergleichsausgabe-Endsignal aus einer der
Gruppenvergleichsausgaben ausgewählt wird, und wobei der
Vergleichsschritt und der Bereitstellschritt gleichzeitig
ausgeführt werden.
23. Verfahren gemäß Anspruch 22, bei welchem die
Komparatorgruppen, die parallel und unabhängig voneinander
betrieben werden, Vergleichsausgaben erzeugen, die einem
Steuerelement eingegeben werden.
24. Verfahren gemäß Anspruch 22, bei welchem das
Steuerelement nur eine der Vergleichsausgaben auswählt, die als
ein Vergleichsausgabe-Endsignal von dem Steuerelement
ausgegeben werden soll.
25. Verfahren gemäß Anspruch 22, bei welchem die
Komparatorgruppen und das Steuerelement unabhängig und parallel
zueinander betrieben werden.
26. Verfahren gemäß Anspruch 22, bei welchem der
Wertvergleich zwischen der ersten Werteingabe und der zweiten
Werteingabe zum Erzeugen eines Flagsignal nutzbar ist,
das für ein FIFO geeignet ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/876,959 US5357235A (en) | 1992-04-30 | 1992-04-30 | Parallelized magnitude comparator |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69327421D1 DE69327421D1 (de) | 2000-02-03 |
DE69327421T2 true DE69327421T2 (de) | 2000-05-11 |
Family
ID=25368945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69327421T Expired - Fee Related DE69327421T2 (de) | 1992-04-30 | 1993-04-29 | Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen Daten |
Country Status (4)
Country | Link |
---|---|
US (1) | US5357235A (de) |
EP (1) | EP0568373B1 (de) |
JP (1) | JP3509894B2 (de) |
DE (1) | DE69327421T2 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5400007A (en) * | 1992-04-30 | 1995-03-21 | Sgs-Thomson Microelectronics, Inc. | Multiple level parallel magnitude comparator |
US5623519A (en) * | 1993-12-06 | 1997-04-22 | Motorola, Inc. | Apparatus for comparing the weight of a binary word to a number |
US5587674A (en) * | 1994-12-30 | 1996-12-24 | Sgs-Thomson Microelectronics, Inc. | Comparator with built-in hysteresis |
KR100218279B1 (ko) * | 1996-11-15 | 1999-09-01 | 윤종용 | 비교기 |
GB0026121D0 (en) * | 2000-10-25 | 2000-12-13 | Lsi Logic Europ Ltd | Apparatus and method for detecting a predetermined pattern of bits in a bitstream |
US7149938B1 (en) * | 2001-12-07 | 2006-12-12 | Applied Micro Circuits Corporation | Non-causal channel equalization |
US6928026B2 (en) * | 2002-03-19 | 2005-08-09 | Broadcom Corporation | Synchronous global controller for enhanced pipelining |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1603654A (de) * | 1968-12-26 | 1971-05-10 | ||
US3938087A (en) * | 1974-05-31 | 1976-02-10 | Honeywell Information Systems, Inc. | High speed binary comparator |
EP0098692A3 (de) * | 1982-07-01 | 1986-04-16 | Hewlett-Packard Company | Einrichtung zur Addition von ersten und zweiten binären Operanden |
US4891788A (en) * | 1988-05-09 | 1990-01-02 | Kreifels Gerard A | FIFO with almost full/almost empty flag |
US4935719A (en) * | 1989-03-31 | 1990-06-19 | Sgs-Thomson Microelectronics, Inc. | Comparator circuitry |
US4974241A (en) * | 1989-03-31 | 1990-11-27 | Sgs-Thomson Microelectronics, Inc. | Counter employing exclusive NOR gate and latches in combination |
-
1992
- 1992-04-30 US US07/876,959 patent/US5357235A/en not_active Expired - Lifetime
-
1993
- 1993-04-29 DE DE69327421T patent/DE69327421T2/de not_active Expired - Fee Related
- 1993-04-29 EP EP93303369A patent/EP0568373B1/de not_active Expired - Lifetime
- 1993-04-30 JP JP10427093A patent/JP3509894B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5357235A (en) | 1994-10-18 |
EP0568373A2 (de) | 1993-11-03 |
JP3509894B2 (ja) | 2004-03-22 |
EP0568373A3 (de) | 1994-01-12 |
JPH0644043A (ja) | 1994-02-18 |
EP0568373B1 (de) | 1999-12-29 |
DE69327421D1 (de) | 2000-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10085322B4 (de) | Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form | |
DE68927121T2 (de) | Absolutwertberechnende Schaltung mit einem einzigen Addierer | |
DE69326793T2 (de) | Parallelisierter Grössevergleicher zum Vergleichen einer Binärzahl mit einer bestimmten Zahl | |
DE68920560T2 (de) | Restprüfungsvorrichtung zur Fehlerkennung in Additions-, Substraktions-, Multiplikations-, Divisions- und Quadratwurzel-Operationen. | |
DE2421130C2 (de) | ||
DE2623986A1 (de) | Parallelrechenwerk | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE3609250C2 (de) | ||
DE2758130C2 (de) | Binärer und dezimaler Hochgeschwindigkeitsaddierer | |
DE3689356T2 (de) | Verfahren und Schaltung zum Generieren von binären Signalen und modifizierter Bitfolge. | |
DE69129889T2 (de) | Pipelineschaltung und Verfahren zum Vergleich der relativen Differenz zwischen zwei asynchronen Zeigern und einem programmierbaren Wert | |
DE69327421T2 (de) | Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen Daten | |
DE69424327T2 (de) | Paralleler Grössenvergleicher mit mehrfachen Ebenen | |
DE19618120B4 (de) | Parallelverarbeitungs-Divisionsschaltung | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE3852196T2 (de) | Gruppenbezogenes Adressierungssystem. | |
DE68927488T2 (de) | Binäre Übertragvorgriffsschaltung | |
DE68927398T2 (de) | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen | |
DE19741915A1 (de) | Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen | |
DE69521464T2 (de) | Paralleler Prozessor | |
DE69332817T2 (de) | Verfahren und Gerät zum automatischen Entwurf logischer Schaltung und Multiplikator | |
DE69329761T2 (de) | Differenzflaggeschaltung mit verschobenem Zähler | |
DE69118392T2 (de) | Adressengenerator für einen ringpuffer | |
DE69327886T2 (de) | Parallelisierte Differenzflaggenlogik | |
DE69230520T2 (de) | Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |