[go: up one dir, main page]

DE69132129T2 - In der Grundzahl 4 arbeitende Übertragvorgriffsbäume - Google Patents

In der Grundzahl 4 arbeitende Übertragvorgriffsbäume

Info

Publication number
DE69132129T2
DE69132129T2 DE69132129T DE69132129T DE69132129T2 DE 69132129 T2 DE69132129 T2 DE 69132129T2 DE 69132129 T DE69132129 T DE 69132129T DE 69132129 T DE69132129 T DE 69132129T DE 69132129 T2 DE69132129 T2 DE 69132129T2
Authority
DE
Germany
Prior art keywords
level
carry
tree
subcircuits
block
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
Application number
DE69132129T
Other languages
English (en)
Other versions
DE69132129D1 (de
Inventor
Thomas W. Lynch
Steven D. Mcintyre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE69132129D1 publication Critical patent/DE69132129D1/de
Publication of DE69132129T2 publication Critical patent/DE69132129T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/508Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using carry look-ahead circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/49Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Catching Or Destruction (AREA)
  • Logic Circuits (AREA)
  • Breeding Of Plants And Reproduction By Means Of Culturing (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf eine verbesserte Carry-Lookahead- Technik z. B. für den Einsatz in einem Addierer.
  • Verwandte Erfindungen sind in unseren mitanhängigen Erfindungen, die unter EP 450 752, EP 450 751 und EP 450 754 veröffentlicht und mit der vorliegenden Anmeldung eingereicht worden sind, beschrieben.
  • Bei der Binärstellenwertaddition werden zwei in dem Binärstellenwertcode dargestellte Operanden zum Erzeugen eines ebenfalls im Binärstellenwertcode dargestellten Ergebnisses addiert. Jeder Operand und das Ergebnis stellen ein Array von Bits dar. Im Binärwertcode bestimmt die Position eines Bits in dem Array seine Zweierpotenz; somit gilt Wert = Summe (Bit · 2^pos). Das Bit mit der geringsten Gewichtung bei der Bestimmung des Werts einer Darstellung wird als niederwertigstes Bit oder LSB bezeichnet. Ähnlich wird das Bit mit der größten Gewichtung als höchstwertiges Bit oder MSB bezeichnet. Andere Zahlensysteme weisen bessere Additionseigenschaften auf, werfen aber andere Probleme auf, somit verwendet praktisch jeder handelsübliche Computer heute den Binärstellenwertcode.
  • Bei einem manuellen Additionsverfahren wird die Summe für die LSB-Position gebildet, breitet sich ein Übertrag möglicherweise in die nächste Bitposition aus und wird der Prozess für nachfolgende Bitpositionen wiederholt, bis jedes Bit im Ergebnis berechnet worden ist. Dieses Verfahren ist Fachleuten auf dem Gebiet als "Ripple-Übertrags"addition, wie in Fig. 1 dargestellt, bekannt. Die Ripple-Übertragsaddition ist aufgrund ihrer seriellen Natur inhärent langsam.
  • Die Addition ist auf herkömmliche Weise durch Anwendung einer der folgenden Techniken, die in CMOS VLSI Design, Addison-Wesley, von 1985 beschrieben sind, beschleunigt worden: Carry-Lookahead, Manchester Carry-Lookahead, Binär-Carry-Lookahead-Bäume and Übertragsselektionsaddition. Eine weitere Technik, wie in Sth Annual Symposium on Theoretical Aspects of Computer Science, STACS von 1988 beschrieben, ist die Condition-Sum-Addition. Eine weitere Technik bezieht sich auf den Mehrausgangs-Domino-Logikaddierer, der in Solid-State Circuits Conference Digest of Technical Papers von 1988 beschrieben ist.
  • Jeder dieser Addierer, mit Ausnahme des Übertragsselektions- und des Conditional-Sum-Addierers, basiert auf den Konzepten von Übertragsausbreitung, Übertragsgenerierung und Carry-Kill (siehe Fig. 2), die Fachleuten auf dem Gebiet bekannt sind. Ein Übertrag wird als sich durch eine Bitposition "ausbreitend" bezeichnet, wenn einem Übertrag in die Summieroperation für eine vorgegebene Bitposition ein Übertrag aus der vorgegebenen Bitposition in die nächsthöhere Position folgt, wohingegen das Summieren für die vorgegebene Bitposition keinen Übertrag für die nächsthöhere Position erzeugt, wenn kein Übertrag eingegeben wird. Ein Übertrag wird als von einer vorgegebenen Bitposition "generiert" bezeichnet, wenn das Summieren für die vorgegebene Position einen von einem Übertrag aus einer vorhergehenden Position unabhängigen Übertrag für die nächsthöhere Position erzeugt. Ein Übertrag wird als in einer Bitposition "gekillt" bezeichnet, wenn sich ein Übertrag nicht durch das Bit ausbreitet. Wie Fachleuten auf dem Gebiet bekannt und in Fig. 2 dargestellt ist, können die Ausbreitungs- und Generiersignale ohne tatsächliche Durchführung der Summierung detektiert werden.
  • Eine Gruppierung benachbarter Summenfunktionen, benachbarter Ausbreitungsfunktionen oder benachbarter Generierfunktionen kann als "Block" bezeichnet werden, ein Beispiel dafür ist in Fig. 1 gezeigt. Die Terme Ausbreiten, Generieren und Kill können auf die Blocks angewandt werden. Ein Übertrag wird als sich durch einen vorgegebenen Block ausbreitend bezeichnet, wenn einem Übertrag in die LSB-Summierung des vorgegebenen Blocks ein Übertrag aus der MSB- Summierung eines vorgegebenen Blocks in die nächsthöhere Position folgt. Ein Block wird als einen Übertrag generierend bezeichnet, wenn die MSB-Summierung des Blocks einen von den Überträgen in das LSB des Blocks unabhängigen Übertrag in die nächsthöhere Position erzeugt. Es ist Fachleuten auf dem Gebiet bekannt, dass ein Block nur dann eine Generierung durchführen kann, wenn eine vorgegebene Bitposition in dem Block eine Generierung durchführt und sich sämtliche Bits zwischen dem vorgegebenen Bit und dem MSB des Blocks ausbreiten; wie in der in CMOS VLSI, Addison Wesley, von 1985 beschriebenen Manchester-Übertragskette.
  • Digital Computer Arithmetic von J. J. F. Cavanagh, Seite 107-117, McGraw-Hill (1984) gibt einen Überblick über die Carry-Lookahead-Addierertheorie. Der CLA beschleunigt die Berechnung der Überträge durch Anwendung einer redundanten Logik. Ein Block ist für eine vorgegebene Bitposition derart definiert, dass das LSB des Blocks dem LSB der Addierung entspricht und das MSB des Blocks der vorgegebenen Bitposition entspricht. Somit gibt es so viele Blöcke wie Bitpositionen in dem Ergebnis minus 1, wie in Fig. 3 dargestellt. Es wird ein zusätzlicher Block benötigt, wenn ein Übertrag in die nächsthöhere Position erforderlich ist. Jeder Block hat nur die Eingangsoperanden und den Übertrag in die Addierung als Eingangssignale und einen Übertrag als Ausgangssignal. Theoretisch kann eine beliebige einzelne Logikfunktion in zwei Gatterverzögerungen durchgeführt werden, so dass die Zeit zum Erzeugen einer Summe in einem Carry-Lookahead- Addierer theoretisch eine konstante Vier-Gatterverzögerung ist; die endliche Verstärkung von Realgattern beschränkt jedoch die Größe der Last, die ein beliebiges Gatter in einer vorgegebenen Zeitspanne aktivieren kann, so dass weitere Gatterverzögerungen hinzugefügt werden müssen. Ferner ist die Anzahl von Übertragsblöcken, die aktiviert werden können, und somit die Anzahl von Bits, die das Ergebnis aufweisen kann, ebenfalls eingeschränkt, da die Eingangsoperanden selbst von Gattern aktiviert werden. Der Carry-Lookahead-Addierer wird bei Ergebnisgrößen, die über einige wenige Bits hinausgehen, relativ langsam. Die Leistung der Carry-Lookahead-Addierer zeigt, dass die Belastung von Realgattern die Addierzeit bestimmt, nicht die theoretische Anzahl von Gatterverzögerungen. Ein von Ling erfundener Addierer, der im IBM-Journal of Research and Development, May 1981 vorgestellt worden ist, reduziert die Last vom Ausgang im Ausbreitungs- und Generierzustand um einen Gattereingang pro Bit und pro Block. Obwohl dieses Verfahren das Lastproblem teilweise löst, bleibt der CLA- Addierer für Addierungen von mehr als einigen Bits relativ ineffizient.
  • Der Manchester-Carry-Lookahead-Addierer aus Fig. 4 beschleunigt die Addition dadurch, dass er es Überträgen ermöglicht, sich ausbreitende Blöcke zu überspringen. Zum Anwenden dieses Verfahrens wird eine Addierung derart in eine Reihe von Blöcken eingeschaltet, dass keine Übertragsausbreitungslogik dupliziert wird. Dann werden sämtliche Bitausbreitungen für einen vorgegebenen Block zwecks Feststellung, ob sich der vorgegebene Block ausbreitet, durch logisches UND verknüpft. Wenn sich der Block ausbreitet, wird ein Bypass eingeschaltet, der Überträge in das LSB des Blocks direkt zum Ausgang des MSB des Blocks leitet. Dieses Verfahren funktioniert gut bei Addierern mit bestimmten Größen in CMOS; die Leistung ist jedoch immer noch linear mit der Größe des Addierers verbunden. Bei Bemühungen, dieses Problem zu lösen, wurden mehrere Überspringungsebenen hinzugefügt, wie in IEEE Transactions on Computers, Volume 36, erläutert. Bei Addierern mit mehr als 32 Bits kann sich dieses Verfahren der Geschwindigkeit eines Binär-Lookahead-Addierers nur annähern; es ist aus theoretischen und praktischen Gründen wesentlich langsamer als das des in der vorliegenden Anmeldung vorgestellten Addierers.
  • Der Binärbaum ist eine besondere graphische Darstellung von Knoten und Verbindungslinien, ähnlich einem Familienstammbaum. Der eine Knoten am oberen Ende hat keine Vorgänger, er wird als "Wurzel"knoten bezeichnet. Jeder Knoten im Baum hat ein oder zwei "Kinder", mit Ausnahme der "Blatt"knoten, die keine Kinder haben (entsprechend der jüngsten Generation). Schaltungen mit speziellen Eigenschaften können mit Gattern als Knoten ausgebildet sein. Im Jahr 1980 wurde gezeigt, dass ein '6-Operator definiert werden konnte, der eine Implementierung von Überträgen in einem Addierer in einen Binärbaum ermöglicht (CMOS VLSI Design). Der Binär-Lookahead-Baum konnte jedoch nur Überträge für Bitpositionen der Zweierpoteflz (d. h. 2,4,8, ...) bereitstellen, sodass ein "invertierter" Baum zum Ableiten der Zwischenüberträge verwendet werden musste, was zu einem zusätzlichem Aufwand führte.
  • Der Binär-Lookahead-Übertragsbaum aus Fig. 5 weist mit der Logbase 2 verbundene Gatterverzögerungen der Addierlänge plus einen zusätzlichen Aufwand auf. Wie im Fall des Carry-Lookahead-Addierers verhindert die Schaltungslast die Realisierung der Gatterverzögerungen der Logbase 2 für große Bäume, d. h. Bäume für Addierungen von mehr als 8 Bits. Ferner wissen Fachleute auf dem Gebiet, dass der Baum bei großem Addieraufwand groß und ineffizient wird. Der in IEEE Solid-State Circuits Conference Digest of Technical Paper von 1988 beschriebene MODL-Gatteraddierer stellt einen Versuch zum Lösen dieses Problems dar und ermöglicht für größere Addierungen eine Logbase 2 · lineare Leistung (weniger als Logbase 2).
  • Ein Übertragsselektionsaddierer aus Fig. 6 basiert auf dem Prinzip der Partionierung des Addierers in drei Blöcke. Der erste Block addiert die untere Hälfte der beiden Operanden. Der zweite Block addiert die obere Hälfte der Operanden, wobei von einem Übertrag von dem ersten Block Null ausgegangen wird. Der dritte Block addiert die obere Hälfte der Operanden, wobei von einem Übertrag aus dem ersten Block Eins ausgegangen wird. Wenn der Übertrag vom ersten Block berechnet wird, wird dieser zum Aufnehmen der korrekten oberen Hälfte des Ergebnisses durch Selektion der Summe aus dem Block Zwei oder der Summe aus Block Drei über einen Zwei-zu-Eins-Multiplexer verwendet. Wenn Übertragsselektionsaddierer in Reihe geschaltet sind, weisen sie eine linear Leistung in Bezug auf die Anzahl von Abschnitten plus die Addierzeit des ersten Abschnitts auf. Bei großen Addierern ist dieser Addierertyp relativ langsam, aber klein.
  • Der Conditional-sum-Addierer ist ein rekursiv angewandter Übertragsselektionsaddierer. Ein Addierer wird in eine Vielzahl von redundanten Blöcken Zwei eingeschaltet, dann wird ein Satz aufgenommen, so dass nur die Hälfte der möglichen Summen verbleiben. Der Prozess der Halbierung der möglichen Summen wird in Mehrfachstufen fortgeführt, bis nur das Ergebnis übrigbleibt. Der Addierer weist eine Logbase 2-Leistung auf, er ist sogar größer als der BLC-Addierer. Da die Summierung gemeinsam mit den Überträgen in jeder Stufe berechnet wird, wird die Summierlogik unnötigerweise viele Male reproduziert. Ferner wird dieser Addierer aufgrund des Summieraufwands langsamer als der BLC-Addierer.
  • Da Addierer das Herz vieler Digitalschaltungen sind und sie in großem Umfang zu der erforderlichen Taktzeit von RISC-Mikroprozessoren beitragen, besteht Bedarf an schnelleren Addierern.
  • - Ein Carry-Lookahead-Addierer auf der Basis herkömmlicher Block-Carry-Lookahead-Techniken ist in "Proceedings, 7t" Symposium on Computer Arithmetic, 4- 6 Juni '85, Illinois, S. 9-15" beschrieben.
  • Ein Binäraddierer, der eine spezifische Konfiguration der Lookahead-Übertragsebenen zum Reduzieren der Anzahl von für die Übertragsfunktion erforderlichen Logikebenen verwendet, ist in IBM Technical Disclosure, Vol. 7, Nr. 11, April 1965 "Binary Adder with Quaternary Lookahead" von R. M. Wade beschrieben.
  • In IEEE 1988 Custom Integrated Circuit Conference May 1988, Seite 1751 bis 1756 wird über einen dynamisch rekonfigurierbaren 32-Bit Hochgeschwindigkeits-CMOS-Addierer berichtet. Der Addierer verwendet eine 32-Bit-Carry- Lookahead-Schaltung auf der Basis einer Mehrfachausgangs-Domino-Logik (MODL). Die MODL-4/8-Bitgruppen-Generier- und Ausbreitungsblöcke liefern Signale zu einem Gruppenübertragsblock mit einem 3-Bit-Mehrfachübertragsgenerator.
  • Im US-Patent 4,905,180 wird ein aus mehreren 4-Bit-Slice-Blöcken gefertigter partionierter Carry-Lookahead-Addierer beschrieben. Diese Blöcke sind derart organisiert, dass sie Gruppenausbreitungssignale generieren und jeder Block eine Übertragsleitung mit einem zwischen den Eingangs- und Ausgangsanschlüssen des Blocks angeschlossenen Einzeltransistor aufweist; es ist ferner eine Übertragsleitung mit vom Gruppenausbreitungssignal gesteuerten Transistoren vorgesehen. Die generelle Konfiguration ähnelt der des Manchester-Carry-Lookahead-Addierers aus Fig. 4.
  • Erfindungsgemäß ist eine Carry-Lookahead-Baum-Logikschaltung vorgesehen, die folgendes aufweist: eine Carry-Lookahead-Baum-Logikschaltung zum Einsatz in einem Zweioperanden-Addierer mit: mehreren Baumknoten bestehend aus Teilschaltungen; wobei jede Teilschaltung acht Eingangsanschlüsse, zwei Ausgangsanschlüsse und eine interne Logikschaltung mit einem Übertragskettenteil aufweist; wobei die Teilschaltungen derart geschaltet sind, dass sie einen Baum mit drei Ebenen mit vierzehn Teilschaltungen der ersten Ebene und vier Teilschaltungen der zweiten Ebene aufweisen; jede Teilschaltung der ersten Ebene derart betreibbar ist, dass sie Blockausbreitungs- und -generierterme für Vierbit- Generier- und Vierbit-Ausbreitungs-Eingangspositionen der Operanden an ihren Eingangsanschlüssen erzeugt; drei der Teilschaltungen der zweiten Ebene derart geschaltet sind, dass sie von vier Teilschaltungen der ersten Ebene erzeugte Blockausbreitungs- und -generierterme empfangen und daraus Blockausbrei tungs- und -generierterme erzeugen; und wobei die vierte Teilschaltung der zweiten Ebene derart geschaltet ist, dass sie von zwei Teilschaltungen der ersten Ebene erzeugte Blockausbreitungs- und -generierterme empfängt, und dass sich zwei Teilschaltungen auf der dritten Ebene des Baums befinden, wobei eine Teilschaltung der dritten Ebene derart geschaltet ist, dass sie von den vier Teilschaltungen der zweiten Ebene erzeugte Blockausbreitungs- und -generierterme empfängt und daraus Blockausbreitungs- und -generierterme erzeugt; die andere Teilschaltung der dritten Ebene derart geschaltet ist, dass sie Blockausbreitungs- und -generierterme von zwei Teilschaltungen der zweiten Ebene empfängt und ferner diese Signale als Ausgangssignal zum Erhalt von Übertragssignalen zur Verfügung stellt; und wodurch die andere Teilschaltung der dritten Ebene Informationen über Zwischenüberträge auf 8-Bit-Grenzen des Baums liefert.
  • Bei einer bevorzugten Ausführungsform ist der Baum ein Radix-4-Carry-Lookahead-Baum und weist die interne Logikschaltung in jeder Teilschaltung ferner einen NAND-Gatterteil bestehend aus einer Kette von Gattern auf, die zum Durchführen eines logischen NAND an Ausbreitungseingängen entlang der Gatterkette gekoppelt sind.
  • Entsprechend wird eine relativ kleine Schaltung zum Durchführen einer relativ großen Addierung innerhalb einer kurzen Zeitspanne beschrieben.
  • Die Schaltung kann auf einfache und praktische Weise skaliert werden und verliert bei dieser Skalierung nur wenig an Geschwindigkeit.
  • Die beigefügten Zeichnungen zeigen beispielhaft:
  • Fig. 1-6 verschiedene dem Stand der Technik entsprechende Konfigurationen;
  • Fig. 7 ein Blockschaltbild eines Computersystems mit einem Prozessor, in dem ein erfindungsgemäßer Lookahead-Baum eingebaut sein kann;
  • Fig. 8 ein Blockschaltbild des Prozessors aus Fig. 7;
  • Fig. 9 ein detaillierteres Blockschaltbild des Prozessors aus Fig. 8;
  • Fig. 10 ein Blockschaltbild einer Gleitkommaeinheit;
  • Fig. 11A eine schematische Darstellung eines Radix-Vier-Carry-Lookahead- Baums;
  • Fig. 11B eine schematische Darstellung eines erfindungsgemäßen Radix-Vier- Carry-Lookahead-Baums, wobei der Baum auf dem Baum aus Fig. 11A basiert, jedoch eine redundante Zelle aufweist;
  • Fig. 12 eine schematische Darstellung einer modifizierten Übertragskette zum Einsatz in dem Baum aus Fig. 11B;
  • Fig. 13 eine schematische Darstellung einer Modifizierung für eine Übertragszelle für den Übertrag aus einer vorhergehenden Position zum Einsatz in dem Baum aus Fig. 11B; und
  • Fig. 14 eine schematische Darstellung eines Manchester-Übertragskettenblocks zum Einsatz in dem Baum aus Fig. 11B.
  • Fig. 7 zeigt ein vereinfachtes Systemdiagramm eines Computersystems mit einem Prozessor 2. Der Sinn des Diagramms sowie mehrerer folgender Diagramme ist die Darstellung einer Umgebung, in der ein erfindungsgemäßer Carry-Lookahead-Baum eingebaut sein kann.
  • Der Prozessor 2 greift mittels dreier nicht im Multiplexerbetrieb arbeitender Busse auf externe Instruktionen und Daten zu. Der Kanal umfasst einen 32-Bit-Bus 4 für Instruktionsübertragungen, einen zweiten 32-Bit-Bus 5 für Datenübertragungen und einen dritten Adressenbus 8 für Zugriff sowohl auf Instruktionen als auch Daten. Der Adressenbus 8 weist eine Pipeline-Konfiguration auf, so dass er vor Abschluss einer Instruktions- oder Datenübertragung freigegeben werden kann. Dies ermöglicht einen nachfolgenden Zugriff vor Abschluss des ersten und ferner die gleichzeitige Ausführung von zwei Zugriffen durch den Prozessor 2.
  • Das in Fig. 7 dargestellte Gesamtsystem kann ferner ein Instruktions-ROM 10 und einen Instruktionsspeicher 12 aufweisen, die beide operativ zwischen dem Adressenbus 8 und dem Instruktionsbus 4 geschaltet sind. Außerdem sind ein Datenspeicher 14 und eine Datenübertragungssteuereinrichtung 16 gezeigt, die operativ zwischen dem Adressenbus 8 und dem Datenbus 6 geschaltet sind. Ferner ist die Datenübertragungssteuereinrichtung 16 ebenfalls operativ verbunden, so dass Signale zu einem Systembus 18 gesandt und von diesem empfangen werden.
  • Fig. 8 zeigt ein Datenflussdiagramm des Prozessors 2, das den Prozessor 2 genauer erläutert.
  • Der Prozessor 2 implementiert eine vierstufige Pipeline zur Instruktionsausführung, wobei es sich bei den vier Stufen um "Abrufen", "Dekodieren", "Ausführen" und "Rückschreiben" handelt. Die Instruktionsabrufeinheit 20 des Prozessors 2 ruft Instruktionen ab und liefert Instruktionen an andere Funktionseinheiten. Die Einheit 20 enthält einen Instruktionsvorabrufpuffer, einen Verzweigungs-Target- Cache-Speicher und eine Programmzähleinheit. Diese Teileinheiten werden nachstehend mit Bezug auf Fig. 9 beschrieben. Sämtliche Komponenten der Instruktionsabrufeinheit 20 arbeiten in der Abrufphase der Prozessor-Pipeline.
  • Der Prozessor 2 weist ferner eine Ausführungseinheit 22 auf. Die Ausführungseinheit 22 umfasst eine Registerdatei, eine Adresseneinheit eine Arithmetik-/ Logikeinheit, eine Feldverschiebeeinheit, einen Priorisierer und eine Gleitkommaverarbeitungseinheit. Diese Teileinheiten werden wie die Teileinheiten der Instruktionsabrufeinheit 20 nachstehend mit Bezug auf Fig. 9 beschrieben. Die Registerdatei und die Adresseneinheit arbeiten in der Dekodierphase der Pipeline. Die Arithmetik-/Logikeinheit, die Feldverschiebeeinheit und der Priorisierer arbeiten in der Ausführungsphase der Pipeline. Die Registerdatei arbeitet in der Rückschreibphase.
  • Ferner zeigt Fig. 2, dass der Prozessor 2 eine Speicherverwaltungseinheit 24 aufweist. Die Speicherverwaltungseinheit 24 führt Adressenübersetzungs- und Speicherschutzfunktionen für sämtliche Verzweigungen, Lasten und Speicher aus. Die Einheit 24 arbeitet in der Ausführungsphase der Pipeline, so dass die von ihr erzeugte reelle Adresse zu Beginn der Rückschreibphase zur Verfügung steht.
  • Das Zusammenschalten der Einheiten 20, 22 und 24 im Prozessor 2 sowie ihre Interfaces zu den Systembussen ist ebenfalls in Fig. 8 dargestellt.
  • Fig. 9 zeigt eine weitere schematische Darstellung von Details bezüglich der Teilkomponenten des Prozessors 2. Wie oben gesagt, weist die Instruktionsabrufeinheit 20 einen Instruktionsvorabrufpuffer 26, einen Verzweigungs-Target-Cache- Speicher 28 und eine Programmzähleinheit 30 auf. Wie oben ferner gesagt, umfasst die Speicherverwaltungseinheit 24 eine Vorrichtung 32 zum Durchführen von Adressenübersetzungs- und Speicherschutzfunktionen für sämtliche Verzweigungen, Lasten und Speicher. Und schließlich weist die Ausführungseinheit 22 eine Registerdatei 24, eine Adresseneinheit 36, eine Arithmetik-/Logikeinheit 38, eine Feldverschiebeeinheit (mit Bezugszeichen 38 bezeichnet), einen Priorisierer (ebenfalls mit Bezugszeichen 38 bezeichnet) und eine Gleitkommaverarbeitungseinheit 40 auf. Obwohl verschiedene andere Elemente (z. B. Spezialregister 42) und Zusammenschaltdetails in Fig. 9 dargestellt sind, sind weitere Details bezüglich sämtlicher Einheiten mit Ausnahme der Gleitkommaeinheit 40 und anderer operativ mit dieser verbundener Elemente hier nicht beschrieben, da diese nur peripher mit der Erfindung in Zusammenhang stehen und das Diagramm allein für Fachleute auf dem Gebiet zum Verständnis des Prozessors 2 ausreicht.
  • Mehrere interessante Aspekte der Gleitkommaeinheit 40 sind in Fig. 9 dargestellt. Unter Berücksichtigung der Tatsache, dass die Gleitkommaeinheit 40 Operanden A und B manipuliert, kommen diese Operanden A und B über Busse 44 bzw. 46 von der Registerdatei 34. Ergebnisse der von der Gleitkommaeinheit 40 durchgeführten Manipulationen, z. B. Berechnungen, werden über den Ergebnisbus 48 in die Registerdatei geschrieben. Ferner werden Instruktionen für die Operation der Gleitkommaeinheit 40 über den Prozessorinstruktionsbus 50 an die Registerdatei übermittelt.
  • Fig. 10 zeigt verschiedene Teilkomponenten einer als Pipeline ausgeführten Gleitkommaverarbeitungseinheit gemäß der vorliegenden Erfindung.
  • Die oben mit Bezug auf Fig. 9 beschriebenen Interface-Stellen sind in dieser Figur in ähnlicher Weise dargestellt und bezeichnet, d. h. Operanden von der Registerdatei werden über die A- und B-Busse 44,46 der Gleitkommaeinheit zugeführt, die Ergebnisse verlassen die Gleitkommaeinheit über den Ergebnisbus 48 und Instruktionen werden über den Instruktions- oder I-Bus 50 an die Gleitkommaeinheit übermittelt. Insbesondere zeigt Fig. 10, dass A-Bus, B-Bus und Ergebnisbus operativ mit einer Interface-Einheit 52 innerhalb der Gleitkommaeinheit verbunden sind, wohingegen der I-Bus operativ mit einer ebenfalls in der Gleitkommaeinheit vorgesehenen Steuereinrichtung 54 verbunden ist.
  • Es ist bekannt, dass bei Eingabe von zu verarbeitenden Zahlen, d. h. Operanden A und B, in eine Gleitkommaeinheit, wie die Gleitkommaeinheit 40, die Gleitkommaeinheit die gewünschten (oder angewiesenen) arithmetischen Operationen durchführt und das Ergebnis auf einem Ergebnisbus, wie dem Ergebnisbus 48, ausgibt. Gleitkommaeinheiten, wie die Gleitkommaeinheit 40, können sowohl Gleitkomma- als auch ganze Zahlen verarbeiten. Verschiedene Gleitkommaformate können unterstützt werden, wie das 32-Bit- (einfache Genauigkeit) und 64- Bit-Format (doppelte Genauigkeit). Ferner kann die Gleitkommaeinheit 40 die Konversion von ganzen Zahlen in Gleitkommazahlen und umgekehrt verarbeiten. Jeder der oben genannten Aspekte hinsichtlich der Gleitkommaeinheit 40 wird ferner in den oben erwähnten verwandten Fällen, auf die hier Bezug genommen wird, behandelt.
  • Ferner ist für Fachleute auf dem Gebiet die Funktion und Operation der meisten dargestellten Teilkomponenten von Gleitkommaeinheiten anhand von Fig. 10 ersichtlich. Diese Teilkomponenten, die in einer im wesentlichen konventionellen individuellen Weise arbeiten und daher an dieser Stelle nicht detailliert beschrieben werden, umfassen einen Vordetektor 56, einen Denormalisierer 58, eine Multifunktionseinheit 60, einen Renormalisierer 62, einen Multiplizierer 64, einen Teilproduktsummierer 66, einen Dividierer 68, einer Runder 70 und einen Akkumulator/Akkumulatoren 72. Es gibt jedoch einige sehr wichtige Aspekte bezüglich dieser Teilkomponenten und deren Zusammenwirken, und diese sind ausführlich in den verwandten Fällen, auf die der Leser dringend verwiesen wird, beschrieben.
  • Fig. 11A zeigt eine schematische Darstellung eines erfindungsgemäßen Radix- Vier-Lookahead-Baums. Dieser Radix-Vier-Lookahead-Baum ist, wie in der verwandten Anmeldung Nr. 91301348.8 beschrieben, in einen Addierer einbaubar und ferner in Elementen, wie dem Dividierer 68, dem Multiplizierer 64 und der Multifunktionseinheit 60 der in Fig. 10 dargestellten Gleitkommaeinheit eingebaut. Es versteht sich von selbst, dass dieser Radix-Vier-Lookahead-Baum sowie der oben genannte Addierer auch an vielen anderen Stellen eingesetzt werden kann.
  • Der in Fig. 11A dargestellte Baum weist drei verschiedene Arten von Blöcken auf. Diese drei verschiedenen Arten von Blöcken sind ein modifizierter Übertragskettenblock, eine Modifizierung für den Übertrag aus einer vorhergehenden Position in den Übertragskettenblock und ein Manchester-Übertragskettenblock. Jeder dieser drei unterschiedlichen Blöcke wird nachstehend beschrieben.
  • Fig. 11A und Fig. 11B zeigen, dass diese drei unterschiedlichen Arten von Blöcken in drei Ebenen angeordnet sind. Die erste Ebene weist fünfzehn modifizierte Übertragskettenblöcke 74-102 und einen sechzehnten Block auf, der eine Modifizierung für den Übertrag aus einer vorhergehenden Position in den Übertragskettenblock 104 ist. Diese zweite Ebene umfasst vier Manchester-Übertragskettenknoten 106-112 und die dritte Ebene (insbesondere in Fig. 11B dargestellt) zwei Manchester-Übertragskettenknoten 114,116 (von denen einer, nämlich der mit Bezugszeichen 116 bezeichnete, eine "redundante Zelle" ist, die nachstehend beschrieben wird) (es sei darauf hingewiesen, dass die redundante Zelle in. Fig. 11A nicht dargestellt ist).
  • Fig. 12, 13 und 14 zeigen, das eine Manchester-Übertragskette, Block 110, Ausbreitungs- und Generiersignale von vier Kinderknoten oder von den Ausbreitungs-/Generiereingängen empfängt und die Blockgenerier- und Blockausbreitungssignale erzeugt. Eine modifizierte Übertragskette, Block 74, hat eine ähnliche Funktion mit weniger Transistoren. Die modifizierte Übertragskette, Block 104, führt eine ähnlich Funktion aus, wobei ein Übertrag aus einer vorhergehenden Position berücksichtigt wird.
  • Fig. 11A zeigt, dass jeder auf Ebene Eins dargestellte Knoten: 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102 und 104 Blockausbreitungen und -generierungen für vier Eingangspositionen erzeugen. Jeder der Knoten auf Ebene Zwei: 106, 108, 110 und 112 erzeugt Blockausbreitungen und -generierungen von vier Blöcken der Ebene Eins. Somit liefert Ebene Zwei Informationen über 4 · 4- oder 16-Bit-Blöcke. Block 114 auf Ebene Drei liefert Blockinformationen über vier der Blöcke auf Ebene Zwei oder 4x(4 · 4) oder 64 Bits. Fachleute auf dem Gebiet erkennen, dass diese Schaltung Überträge ohne große interne Belastung in Logbase 4-Verzögerungen aufnimmt.
  • Fachleute auf dem Gebiet seien darauf hingewiesen, dass die in Fig. 11B dargestellte Schaltung auf einem Radix-Vier-Lookahead-Baum basiert. Der Basis- Radix-Vier-Carry-Lookahead-Baum aus Fig. 11B liefert Überträge bei Bit 0 (Cin), 4, 8, 16, 32, 48 und 56. Übertrag 8 steht über eine herkömmliche Vorrichtung von Block 112 zur Verfügung. Überträge 24, 32 und 40 können, wie nachstehend beschrieben, durch Hinzufügen einer redundanten Zelle erhalten werden. Überträge 32, 48 und 56 können von Block 114 erhalten werden. Jede der Übertragsausgangsstellen ist in Fig. 11B eindeutig dargestellt. Natürlich können bestimmte Überträge an mehr als einer Stelle vom Baum abgezogen werden, z. B. kann CLA 32 sowohl von 118 als auch von 112 abgezogen werden. Es stehen Überträge an sämtlichen 8-Bit-Grenzen zur Verfügung, was zu einem idealen Übertragsvorhersageblock für, jedoch nicht beschränkt auf, den Hochgeschwindigkeits-Radix-Addierer mit gemischter Basis von Lynch, et al., Anmeldung Nr. 91301348.8 führt, auf die der Leser dringend verwiesen wird.
  • Zum Berechnen von Zwischenüberträgen kann immer eine redundante Zelle, z. B. Block 116, hinzugefügt werden. Eine solche Zelle ist vom restlichen Baum versetzt angeordnet, so dass die Zwischenübertragswerte vervollständigt werden können. In Fig. 11B wird Block 116 zum Beenden der Überträge 24 und 40 verwendet. Es sei darauf hingewiesen, dass der Einsatz der redundanten Zelle zu keiner Hinzufügung von Gatterverzögerungen führt.
  • Bei einer anderen Variante können sämtliche Blöcke auf der ersten Logikebene aus dem in Fig. 11A und 11B dargestellten Baum gelöscht und die Ausbreitungen und Generierungen direkt auf die zweite Ebene gesandt werden. Diese neue Konfiguration kann jeden anderen Übertrag für eine 16-Bit-Addierung in zwei Gatterverzögerungen erzeugen. Das Hinzufügen weiterer redundanter Zellen kann dem Auffinden sämtlicher Überträge ohne Erhöhung der Anzahl von Gatterverzögerungen dienen.
  • Ein wichtiger Aspekt der vorliegenden Erfindung bezieht sich auf den Manchester- Übertragskettenblock, z. B. Block 110 aus Fig. 14. Bei dem Basis-Baumknoten handelt es sich im wesentlichen um das Zusammenfügen zweier unterschiedlicher Schaltungen, wie Fachleuten auf dem Gebiet jetzt klar sein dürfte. Die linke Seite ist die Manchester-Übertragskette und die rechte Seite eine NAND-Gatterkette.
  • Erfindungsgemäß können spezielle Carry-Lookahead-Bäume eine beliebige Radix aufweisen. Fachleute auf dem Gebiet erkennen, dass die in diesem Patent beschriebenen Prinzipien immer nach anwendbar sind. Als weiteres Beispiel kann ein Achter-Baum dadurch konfiguriert werden, dass jeder Knoten 8 Kinder haben kann. Die in dem vorliegenden Patent beschriebenen Prinzipien sind auch dann anwendbar. Ein Dreier-Baum hat eine Logbase 3-Leistung, während ein Achter- Baum eine Logbase 8-Leistung hat. Natürlich erzeugt der Logbase 8-Baum einen sehr kleinen Satz von Überträgen und hat sehr große Baumknoten.
  • Es sei ferner darauf hingewiesen, dass bei einer erfindungsgemäßen Schaltung fundamentale Übertragsketten in einem Baum mit hoher Radix angeordnet sind.
  • Diese Schaltung stellt im wesentlichen eine Verbesserung gegenüber binären Carry-Lookahead-Schaltungen dar. Der Grund dafür, dass die Schaltung eine Verbesserung darstellt, besteht darin, dass sie eine Hochradixtechnik enthält, die bessere Last- und Geschwindigkeitscharakteristiken aufweist als binäre Carry- Lookahead-Schaltungen. Die erfindungsgemäße Schaltung hat eine Logbase- Radix von N Gatterverzögerungen, wobei N eine Größe für die Addition und die Radix ein Vielfaches des Baums ist. Ferner verwendet eine erfindungsgemäße Schaltung nur drei einfache Teilblöcke. Außerdem stellt die Schaltung aufgrund des einfachen Auffindens von Zwischenüberträgen eine Verbesserung dar.
  • Fachleute auf dem Gebiet erkennen, dass die in Fig. 11A und 11B dargestellten Schaltungen auf einfache Weise für Carry-Lookaheads mit anderen Größen als Vier bis zur iten Potenz beschnitten werden können, wobei i gleich 1, 2, 3, ... ist. Ungeachtet der Tatsache, dass eine solche Skalierung erfolgt, sollte die in Fig. 11A und 11B dargestellte Schaltung beim Skalieren nur wenig an Geschwindigkeit verlieren. Ein 64-Bit-Carry-Lookahead sollte z. B. drei Gatterverzögerungen benötigen, wohingegen ein 256-Bit-Carry-Lookahead nur vier Gatterverzögerungen benötigen würde.
  • Fachleute auf dem Gebiet erkennen jetzt, dass die vorliegende Erfindung eine Verbesserung gegenüber binären Carry-Lookahead-Schaltungen darstellt. Die erfindungsgemäße Schaltung löst das Problem der Durchführung einer umfangreichen Addierung in einer kurzen Zeitspanne mittels einer relativ kleinen elektronischen Schaltung. Die erfindungsgemäße Schaltung ist schneller und relativ kleiner als frühere Schaltungen. Sie hat eine Logbase 4 von N Gatterverzögerungen, wobei N die Größe für die Addition ist, während drei einfache Teilblöcke verwendet werden. Weitere wichtige Aspekte der vorliegenden Erfindung sind bereits beschrieben worden.
  • Fachleute auf dem Gebiet erkennen, dass zahlreiche Modifikationen und Änderungen neben den oben genannten an den hier beschriebenen Konstruktionstechniken durchgeführt werden können, ohne dass dadurch vom Konzept der vorliegenden Erfindung abgewichen wird. Entsprechend sei darauf hingewiesen, dass im Rahmen der folgenden Patentansprüche die vorliegende Erfindung anders als hier beschrieben angewendet werden kann.

Claims (4)

1. Logikschaltung vom Typ Carry-Lookahead-Baum für einen Zweioperanden- Addierer mit:
mehreren Baumknoten bestehend aus Teilschaltungen (78-116), dadurch gekennzeichnet, dass jede Teilschaltung acht Eingangsanschlüsse, zwei Ausgangsanschlüsse und eine interne Logikschaltung mit einem Übertragskettenteil aufweist; wobei die Teilschaltungen derart geschaltet sind, dass sie einen Baum mit drei Ebenen mit vierzehn Teilschaltungen (78- 104) der ersten Ebene und vier Teilschaltungen (106-112) der zweiten Ebene aufweisen; jede Teilschaltung der ersten Ebene derart betreibbar ist, dass sie Blockausbreitungs- und -generierterme für Vierbit-Generier- und Vierbit-Ausbreitungs-Eingangspositionen der Operanden an ihren Eingangsanschlüssen erzeugt; drei der Teilschaltungen der zweiten Ebene (108-112) derart geschaltet sind, dass sie von vier Teilschaltungen der ersten Ebene erzeugte Blockausbreitungs- und -generierterme empfangen und daraus Blockausbreitungs- und -generierterme erzeugen; und wobei die vierte Teilschaltung der zweiten Ebene (106) derart geschaltet ist, dass sie von zwei Teilschaltungen (78, 80) der ersten Ebene erzeugte Blockausbreitungs- und -generierterme empfängt, und dass sich zwei Teilschaltungen (114, 116) auf der dritten Ebene des Baums befinden, wobei eine Teilschaltung (114) der dritten Ebene derart geschaltet ist, dass sie von den vier Teilschaltungen (106-112) der zweiten Ebene erzeugte Blockausbreitungs- und -generierterme empfängt und daraus Blockausbreitungs- und -generierterme erzeugt; die andere Teilschaltung (116) der dritten Ebene derart geschaltet ist, dass sie Blockausbreitungs- und -generierterme von zwei Teilschaltungen (108, 110) der zweiten Ebene empfängt und ferner diese Signale als Ausgangssignal zum Erhalt von Übertragssignalen zur Verfügung stellt;
und wodurch die andere Teilschaltung (116) der dritten Ebene Informationen über Zwischenüberträge auf 8-Bit-Grenzen des Baums liefert.
2. Schaltung nach Anspruch 1, bei der der Baum ein Radix-4-Carry-Lookahead-Baum ist.
3. Schaltung nach Anspruch 1 oder 2, bei der die interne Logikschaltung einen NAND-Gatterteil bestehend aus einer Kette von Gattern aufweist, die zum Durchführen eines logischen NAND an Ausbreitungseingängen entlang der Gatterkette gekoppelt sind.
4. Schaltung nach Anspruch 2, bei der die andere Teilschaltung (116) auf der dritten Ebene Ausbreitungs- und Generiersignale von zwei Teilschaltungen (110,112) der zweiten Ebene empfängt, wobei sie nur von einer (110) auch Übertragsinformationen empfängt.
DE69132129T 1990-04-02 1991-02-20 In der Grundzahl 4 arbeitende Übertragvorgriffsbäume Expired - Fee Related DE69132129T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/503,822 US5095458A (en) 1990-04-02 1990-04-02 Radix 4 carry lookahead tree and redundant cell therefor

Publications (2)

Publication Number Publication Date
DE69132129D1 DE69132129D1 (de) 2000-05-31
DE69132129T2 true DE69132129T2 (de) 2000-12-21

Family

ID=24003660

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69132129T Expired - Fee Related DE69132129T2 (de) 1990-04-02 1991-02-20 In der Grundzahl 4 arbeitende Übertragvorgriffsbäume

Country Status (5)

Country Link
US (1) US5095458A (de)
EP (1) EP0450755B1 (de)
JP (1) JPH0773019A (de)
AT (1) ATE192245T1 (de)
DE (1) DE69132129T2 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479356A (en) * 1990-10-18 1995-12-26 Hewlett-Packard Company Computer-aided method of designing a carry-lookahead adder
US5355473A (en) * 1991-06-20 1994-10-11 Lawrence Au Indexed record locating and counting mechanism
KR940007926B1 (ko) * 1992-05-20 1994-08-29 삼성전자 주식회사 가산기
US5270955A (en) * 1992-07-31 1993-12-14 Texas Instruments Incorporated Method of detecting arithmetic or logical computation result
EP0590251A2 (de) * 1992-09-22 1994-04-06 Motorola, Inc. Hochgeschwindigkeitsaddierer
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices, Inc. Superskalarmikroprozessoren
US5495579A (en) * 1994-03-25 1996-02-27 Bull Hn Information Systems Inc. Central processor with duplicate basic processing units employing multiplexed cache store control signals to reduce inter-unit conductor count
US5689693A (en) * 1994-04-26 1997-11-18 Advanced Micro Devices, Inc. Range finding circuit for selecting a consecutive sequence of reorder buffer entries using circular carry lookahead
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
US5619441A (en) * 1994-10-14 1997-04-08 International Business Machines Corporation High speed dynamic binary incrementer
US5646875A (en) * 1995-02-27 1997-07-08 International Business Machines Corporation Denormalization system and method of operation
US5668984A (en) * 1995-02-27 1997-09-16 International Business Machines Corporation Variable stage load path and method of operation
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US5835747A (en) * 1996-01-26 1998-11-10 Advanced Micro Devices, Inc. Hierarchical scan logic for out-of-order load/store execution control
US5754812A (en) * 1995-10-06 1998-05-19 Advanced Micro Devices, Inc. Out-of-order load/store execution control
US6038657A (en) * 1995-10-06 2000-03-14 Advanced Micro Devices, Inc. Scan chains for out-of-order load/store execution control
US5944777A (en) * 1997-05-05 1999-08-31 Intel Corporation Method and apparatus for generating carries in an adder circuit
US8396824B2 (en) * 1998-05-28 2013-03-12 Qps Tech. Limited Liability Company Automatic data categorization with optimally spaced semantic seed terms
US7711672B2 (en) * 1998-05-28 2010-05-04 Lawrence Au Semantic network methods to disambiguate natural language meaning
US20070294229A1 (en) * 1998-05-28 2007-12-20 Q-Phrase Llc Chat conversation methods traversing a provisional scaffold of meanings
US6438572B1 (en) 1998-09-21 2002-08-20 Rn2R, L.L.C. Adder having reduced number of internal layers and method of operation thereof
US6496846B1 (en) * 1999-07-13 2002-12-17 Hewlett-Packard Company Conditional carry encoding for carry select adder
US6523049B1 (en) 1999-12-21 2003-02-18 International Business Machines Corporation Circuit and method for determining greater than or equal to three out of sixty-six
US6259275B1 (en) 2000-05-01 2001-07-10 Rn2R, L.L.C. Logic gate having reduced power dissipation and method of operation thereof
US7007059B1 (en) * 2001-07-30 2006-02-28 Cypress Semiconductor Corporation Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization
US7062499B2 (en) * 2002-01-08 2006-06-13 Intel Corporation Enhanced multiway radix tree and related methods
US6591286B1 (en) * 2002-01-18 2003-07-08 Neomagic Corp. Pipelined carry-lookahead generation for a fast incrementer
KR100714316B1 (ko) * 2004-10-22 2007-05-02 광주과학기술원 혼합형 가산기
CN101606152A (zh) * 2006-10-03 2009-12-16 Qps技术有限责任公司 通过分类而自动匹配主体到客户的内容的机制
US7904499B2 (en) * 2007-04-16 2011-03-08 Sony Computer Entertainment Inc. Methods and apparatus for carry generation in a binary look ahead system
US10171105B2 (en) * 2016-08-25 2019-01-01 International Business Machines Corporation Carry-less population count

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4163211A (en) * 1978-04-17 1979-07-31 Fujitsu Limited Tree-type combinatorial logic circuit
US4660165A (en) * 1984-04-03 1987-04-21 Trw Inc. Pyramid carry adder circuit
DE3763872D1 (de) * 1986-03-05 1990-08-30 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens.
JPH01250137A (ja) * 1987-12-17 1989-10-05 Mitsubishi Electric Corp 加算回路
US4858168A (en) * 1988-02-16 1989-08-15 American Telephone And Telegraph Company Carry look-ahead technique having a reduced number of logic levels
US4899305A (en) * 1988-06-15 1990-02-06 National Semiconductor Corp. Manchester carry adder circuit
US4956802A (en) * 1988-12-14 1990-09-11 Sun Microsystems, Inc. Method and apparatus for a parallel carry generation adder
US4905180A (en) * 1988-12-16 1990-02-27 Intel Corporation MOS adder with minimum pass gates in carry line

Also Published As

Publication number Publication date
US5095458A (en) 1992-03-10
JPH0773019A (ja) 1995-03-17
EP0450755A3 (en) 1993-01-27
DE69132129D1 (de) 2000-05-31
ATE192245T1 (de) 2000-05-15
EP0450755B1 (de) 2000-04-26
EP0450755A2 (de) 1991-10-09

Similar Documents

Publication Publication Date Title
DE69132129T2 (de) In der Grundzahl 4 arbeitende Übertragvorgriffsbäume
DE69327996T2 (de) Verfahren zur Feststellung eines nullwertigen Ergebnisses als Folge einer arithmetischen oder logischen Berechnung und Schaltung hierfür
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
DE19581638C2 (de) Rechenvorrichtung mit einem Mikroprozessor, einem neuralen Netz-Koprozessor und einer DMA-Steuervorrichtung
DE69030128T2 (de) Signalprozessor
DE69115344T2 (de) Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher
DE2554652C3 (de) Modulare Signalverarbeitungseinrichtung
DE2724125C2 (de)
DE60210494T2 (de) Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE3882487T2 (de) Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.
DE3854701T2 (de) Methode und Vorrichtung zum Verändern von Mikrobefehlen mit einer Makrobefehlspipeline.
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE1934365A1 (de) Automatische Programmschaltung bei Computern mit Multiprogrammierung
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
EP0825540B1 (de) Prozessor mit Pipelining-Aufbau
DE69434806T2 (de) Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
CH644461A5 (de) Digitale multipliziereinrichtung.
DE69326793T2 (de) Parallelisierter Grössevergleicher zum Vergleichen einer Binärzahl mit einer bestimmten Zahl
DE4430195B4 (de) Verfahren zur Auswertung von Booleschen Ausdrücken
DE69629646T2 (de) Verfahren zur durchführung einer "rotate through carry" operatiion
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee