DE3701599A1 - Vielfunktions-arithmetisch-logische-schaltung - Google Patents

Vielfunktions-arithmetisch-logische-schaltung

Info

Publication number
DE3701599A1
DE3701599A1 DE19873701599 DE3701599A DE3701599A1 DE 3701599 A1 DE3701599 A1 DE 3701599A1 DE 19873701599 DE19873701599 DE 19873701599 DE 3701599 A DE3701599 A DE 3701599A DE 3701599 A1 DE3701599 A1 DE 3701599A1
Authority
DE
Germany
Prior art keywords
circuit
input
adder
output
shift
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.)
Granted
Application number
DE19873701599
Other languages
English (en)
Other versions
DE3701599C2 (de
Inventor
Walter Robert Steiner
Paul Andrew Simonic
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.)
STAR TECHNOLOGIES, INC., STERLING, VA., US
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of DE3701599A1 publication Critical patent/DE3701599A1/de
Application granted granted Critical
Publication of DE3701599C2 publication Critical patent/DE3701599C2/de
Granted 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • 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
    • 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/386Special constructional features
    • G06F2207/3884Pipelining
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Image Generation (AREA)

Description

Die Erfindung bezieht sich auf elektronische Rechenschaltungen und betrifft insbesondere eine Vielfunktions-Arithmetische-Logische Schaltung mit einer Vergleichs- und Zahlenumformschaltungsanordnung.
In vielen schnellen elektronischen Systemen, wie beispielsweise Graphikverarbeitungssystemen, muß eine große Anzahl von mathematischen Berechnungen ausgeführt werden. Für schnelle elektronische Systeme ist die Zeit bei der Ausführung solcher Berechnungen wesentlich. Es ist deshalb erwünscht, eine zweckbestimmte Schaltung zur Verfügung zu haben, die solche mathematischen Funktionen mit einer sehr hohen Geschwindigkeit ausführen kann. Im Bereich der Graphik ist es besonders erwünscht, eine solche Schaltung zu haben, die Berechnungen an Gleitpunkt- (Fließkomma)zahlen, Festpunktzahlen (Festkommazahlen) und logischen Daten ausführen kann. Es ist außerdem erwünscht, Gleitpunktzahlen in Festpunktzahlen umformen zu können, und umgekehrt. Es ist weiter erwünscht, in der Lage zu sein, die Werte von zwei Zahlen zu vergleichen, und in der Lage zu sein, Änderungen im Wert einer Kette von solchen Vergleichen verfolgen zu können, um feststellen zu können, ob ein Objekt in einer Graphikumgebung angezeigt werden soll. Im Stand der Technik sind einige dieser Funktionen durch eine zweckbestimmte integrierte Schaltung ausgeführt worden. Eine typische Schaltung ist die WTL 1033 Arithmetisch- Logische-Einheit der Weitek Corporation. Die bekannten integrierten Logikschaltungen sind jedoch für die Verwendung in einem Graphikverarbeitungssystem nicht optimiert und enthalten viele erwünschte Funktionen nicht.
Es ist demgemäß Aufgabe der Erfindung, eine schnelle Arithmetisch- Logische-Schaltung mit Pipeline-Architektur zu schaffen, die eine Zahlenumformunterschaltung, eine Zahlenvergleichsunterschaltung und eine Sichtbarkeitslogikunterschaltung hat und insbesondere in einem Graphikprozessor von Nutzen ist.
Die Erfindung wird im Zusammenhang mit einer integrierten Schaltung beschrieben, die in der Lage ist, die Berechnungen in 300 ns auszuführen, mit einer Durchsatzzeit von 100 ns bei einer Taktfrequenz von 10 MHz.
Ein Ausführungsbeispiel der Erfindung wird im folgenden unter Bezugnahme auf die Zeichnungen näher beschrieben. Es zeigen
Fig. 1a und 1b Gesamtblockschaltbilder der Vielfunktions- Arithmetisch-Logischen-Schaltung,
Fig. 2 ein vereinfachtes Blockschaltbild der Umformunterschaltung nach der Erfindung,
Fig. 3 ein vereinfachtes Blockschaltbild der Vergleichsunterschaltung nach der Erfindung, und
Fig. 4 ein vereinfachtes Blockschaltbild der Sichtbarkeitslogikunterschaltung nach der Erfindung.
Die Erfindung umfaßt in ihrer bevorzugten Ausführungsform eine einzelne integrierte Schaltung, die vier miteinander in Beziehung stehende Abschnitte hat. Dabei handelt es sich um einen Eingangsabschnitt, einen Arithmetisch-Logische-Einheit("ALU")- Abschnitt, einen Verschiebungsabschnitt und einen Ausgangsabschnitt.
Der Eingangsabschnitt empfängt 83 Eingangssignale, die Daten- und Steuersignale umfassen. Achtundvierzig Eingangssignalleitungen werden benutzt, um die Eingangsdaten der Schaltung zu empfangen, entweder 32 Bits auf einmal oder 16 Bits auf einmal auf zeitmultiplexierte Weise. Alle Eingangssignale werden in einem Eingangsregister während derselben Taktperiode vorübergehend gespeichert.
Der ALU-Abschnitt der Schaltung ist um eine 32-Bit-Festpunkt- ALU-Unterschaltung zentriert. Die Eingangsdaten der Vielfunktionsschaltung treten in die ALU-Unterschaltung immer als der "A"-Eingangswert ein. Ein "B"-Eingangswert, der durch die ALU- Unterschaltung benutzt wird, wird aus einem von vier internen Registern mittels eines löschbaren Multiplexers ausgewählt. In jedes dieser vier internen Register sowie in ein Maskierregister kann von dem ALU-Unterschaltungsausgang her eingeschrieben werden. Das Maskierregister kann benutzt werden, um gewisse Bits in dem Ausgangssignal der ALU-Unterschaltung zu löschen.
Weiter ist in dem ALU-Abschnitt eine Vergleichsunterschaltung enthalten, die den Vergleich der "A"- und der "B"-Werte gestattet, eine Sichtbarkeitslogikunterschaltung, die benutzt wird, um festzustellen, ob ein Objekt für Graphikzwecke sichtbar ist, und eine Umformunterschaltung, die benutzt wird, um Zahlen aus einer Zweierkomplement-Festpunktzahlendarstellung in die vorgeschlagene IEEE-32-Bit-Gleitpunktzahlendarstellung umzuformen, und umgekehrt.
Der Verschiebungsabschnitt der Vielfunktionsschaltung empfängt Eingangssignale aus einem Register, das sich an den ALU-Abschnitt anschließt (nicht zu verwechseln mit den vier internen Registern, die den "B"-Eingangswert wählen, oder mit dem Maskierregister). Das Eingangssignal an der Verschiebungsschaltung aus dem ALU-Abschnitt kann wahlweise nach links oder nach rechts verschoben werden, was durch eine Verschiebungscodegruppe bestimmt wird, die durch den Benutzer als ein Eingangssignal an der Vielfunktionsschaltung gesetzt werden kann oder aus dem Umformabschnitt gewonnen wird, wenn die Zahlendarstellungen umgeformt werden.
Das Ausgangssignal des Verschiebungsabschnitts wird in einen Multiplexer und in ein Flagregister eingegeben, dessen Ausgangssignal auch an den Multiplexer angelegt wird. Das Flagregister gestattet, das Ausgangssignal des Verschiebungsabschnitts zu speichern und mit anderen Ausgangssignalen zu verknüpfen, um Daten zu verdichten oder Flag-Wörter zu erzeugen. Der Multiplexer wählt, ob die Flagregisterdaten oder das Verschiebungsabschnittausgangssignal an den Ausgangsabschnitt angelegt werden kann.
Die letzte Stufe der Vielfunktionsschaltung mit Pipeline-Architektur ist das Ausgangsregister. Fünfunddreißig von den 36 Ausgängen der Vielfunktionsschaltung gehen von diesem Register aus (ein Sichtbar-Flag-Signal VIS verläßt eine Registergruppe früher).
Die Vielfunktionsschaltung kann mit logischen Daten sowie mit Zahlen arbeiten, die in Fest- oder Gleitpunktzahlendarstellungen dargeboten werden. Wenn die Gleitpunktzahlen manipuliert werden, benutzt die vorliegende Erfindung das vorgeschlagene IEEE-Standardgleitpunktformat, das aus 23 Bits der Mantisse, 8 Bits des Exponenten und einem Vorzeichenbit Sign besteht. In diesem Format wird ein Binärpunkt so aufgefaßt, daß er zwischen den Bitpositionen 22 und 23 vorhanden ist. Eine Gleitpunktzahl wird gemäß einer der folgenden Möglichkeiten dargestellt:
  • 1. Wenn der Exponent ungleich null ist, gilt: Zahl = [(-1)(sign) *2(exponent-127)*(1.data)]
  • 2. Wenn der Exponent null ist, aber die Daten ungleich null sind (was eine denormalisierte Zahl angibt), gilt: Zahl = [(-1)(sign) *2(-127) *(0.data)]
  • 3. Wenn sowohl der Exponent als auch die Daten null sind, gilt: Zahl = 0.0
  • 4. Wenn der Exponent FF16 und die Mantisse null ist, gilt: Die Zahl wird betrachtet als: (+ oder -) unendlich.
  • 5. Wenn die Zahl FF16 ist und die Mantisse ungleich null ist, gilt: Die Zahl wird betrachtet als: keine Zahl.
Zur Vereinfachung der Schaltungsanordnung nach der Erfindung wird eine denormaliiserte Zahl auf null gebracht, und jede Zahl mit einem Exponenten von FF16 wird auf (+ oder -) unendlich gebracht, je nach dem Vorzeichenbit.
Für Festpunktzahlen sind die Daten in Zweierkomplementformat. Ein Binärpunkt kann als irgendwo in einer Festpunktzahl vorhanden angenommen werden. Für die mathematischen Funktionen werden jedoch die "A"- und "B"-Eingangswerte so aufgefaßt, daß sie dieselben Binärpunktplätze haben. Es sind Vorkehrungen getroffen, um den Binärpunktplatz während Umformungen aus einem Zahlenformat in ein anderes zu manipulieren.
Die Vielfunktionsschaltung zeigt Festpunktüberlauf und -unterlauf an. Für das Auftreten des Festpunktüberlaufs gibt es zwei Möglichkeiten. Ein Ausgangssignal (ALUOFLW) aus der Vielfunktionsschaltung zeigt an, ob ein Überlauf durch eine Addierfunktion in der ALU-Unterschaltung verursacht wurde. Die andere Quelle für einen Überlauf von Festpunktdaten ist die Verschiebungsunterschaltung. Wenn die Verschiebungsunterschaltung eine Festpunktzahl nach links verschiebt und nichts als Nullen zurückläßt, ist ein Überlauf aufgetreten. Die Schaltung zeigt diesen Überlauf weder an noch werden die Daten verändert.
Ein Festpunktdatenunterlauf tritt auf, wenn die Verschiebungsunterschaltung sämtliche Datenbits hinausschiebt, die von dem Vorzeichenbit verschieden sind. Die Vielfunktionsschaltung löscht in diesem Fall die Daten und das Vorzeichen. Festpunktunterlauf und -überlauf können in der Verschiebungsunterschaltung auch während Zahlenumformungen auftreten und werden auf dieselbe Weise behandelt.
Die Fig. 1a und 1b zeigen ein Blockschaltbild der gesamten Vielfunktions-Arithmetisch-Logischen-Schaltung nach der Erfindung. In der bevorzugten Ausführungsform der Schaltung nach der Erfindung wird eine Extraschaltungsanordnung zur Bequemlichkeit des Endbenutzers hinzugefügt. Das Vorhandensein dieser Schaltungsanordnung sollte nicht als Beschränkung der grundlegenden Erfindung aufgefaßt werden.
Die bevorzugte Ausführungsform der Vielfunktionsschaltung nach der Erfindung hat 83 Eingangssignalleitungen und 36 Ausgangssignalleitungen. Die Eingangssignalleitungen umfassen einen 32-Bit-Bus für Eingangsdaten sowie einen zeitmultiplexierten 16-Bit-Bus für Eingangsdaten. Ein Multiplexerwählsignal MLTPX bestimmt, welcher der beiden Eingangsbusse gewählt wird.
Ein 8-Bit-Eingangsbus SCALE ist ebenfalls vorgesehen, dessen Eingangssignal benutzt wird, um den Verschiebungsabschnitt zu steuern. Außerdem bestimmt bei einer Umformung einer Festpunktzahl in eine Gleitpunktzahl das Eingangssignal SCALE den Exponenten des erzeugten Ausgangssignals. Für die Umformung einer Gleitpunktzahl in eine Festpunktzahl wird das Eingangssignal SCALE als Basis benutzt, um die Positionierung des Binärpunkts richtig und in einem gewünschten Bereich vorzunehmen.
Die Eingangssteuersignale beinhalten die folgenden: WRITE -- Drei Signale sind vorgesehen, um eines von fünf internen Registern festzulegen, in das der ALU-Unterhaltungsabschnitt Daten einschreiben wird.
READ -- Zwei Signalleitungen sind vorgesehen, um zu wählen, welches von vier internen Registern ausgewählt wird, um Daten an den "B"-Eingang der ALU-Unterschaltung abzugeben.
TESTSEL -- Drei Signalleitungen bestimmen, welche von sechs Sichtbarkeitstests in der Sichtbarkeitslogikunterschaltung auszuführen sind.
FLOAT -- Das Signal FLOAT wird benutzt, um Gleitpunktzahlenoperationen anzuzeigen.
COMPARE -- Das Signal COMPARE aktiviert die Vergleichsbetriebsart. Der "A"-Eingangswert wird mit einer Zahl verglichen, die in einem von vier internen Registern der Schaltung gespeichert ist. Wenn die Vergleichsoperation Übereinstimmung ergibt, wird ein Wert in einem internen Register (das von dem bei dem Vergleich benutzten internen Register verschieden sein kann) durch die erste Pipeline-Stufe der Vielfunktionsschaltung geleitet. Wenn die Vergleichsoperation keine Übereinstimmung ergibt, wird der "A"-Eingangswert durch die erste Pipeline-Stufe geleitet.
FNSEL -- Vier Signale werden in Verbindung mit den Signalen FLOAT und COMPARE benutzt, um zu wählen, welche Funktion die Vielfunktions-Arithmetsch-Logische-Schaltung ausführt. Diese sechs Signale werden in verschiedenen Kombinationen decodiert, um verschiedene Schaltungsanordnungen nach Belieben des Endbenutzers freizugeben.a
ENFLV -- Dieses Signal gibt den "Voll sichtbar"-Test der Sichtbarkeitslogikunterschaltung frei. Es wird zusammen mit dem Signal ENVIS benutzt, um festzulegen, welcher Test an besonderen Eingangsdaten ausgeführt wird.
ENVIS -- Dieses Signal gibt den "sichtbar"-Test der Sichtbarkeitslogikunterschaltung frei und wird in Verbindung mit dem Signal ENFLV benutzt.
SELVIS -- Dieses Signal wählt das "Voll sichtbar"-Flag als Eingangssignal für die Verschiebungsunterschaltung aus.
BYPMSK -- Dieses Umgehungssignal wird benutzt, um das Maskierregister zu aktivieren oder zu inaktivieren, dessen Inhalt benutzt werden kann, um Bits wegzumaskieren, die die ALU-Unterschaltung verlassen. Dieses Signal hat in der Vergleichsbetriebsart oder beim Auswählen der Sichtbarkeitstests keine Auswirkung.
SELFLG -- Dieses Signal wählt das Flag-Wort als das Ausgangssignal der Vielfunktions-Arithmetisch-Logischen-Schaltung aus. Das Verschiebungsabschnittausgangssignal wird mit dem Inhalt des Flagwortregisters ODER-verknüpft, bevor die Inhalte aus der Vielfunktionsschaltung abgegeben werden.
LDFLGW -- Dieses Signal lädt das Flagwortregister mit den Ergebnissen der vorhandenen Flagwortinhalte logisch ODER-verknüpft mit dem Ausgangssignal der Verschiebungsunterschaltung.
RESET -- Dieses Signal löscht das Flagwortregister und setzt das Ausgangssignal der Sichtbarkeitslogikunterschaltung als "sichtbar" und "voll sichtbar".
HOLd -- Dieses Signal hält Daten und Steuersignale in dem Eingangsregister für den nächsten Taktzyklus fest, wobei alle neuen Eingangssignale außer Betracht gelassen werden.
Der Ausgang der Vielfunktionsschaltung umfaßt einen 32 Bit breiten Bus, der die erzeugte Ausgangszahl oder die erzeugten Daten führt. Weitere Ausgangssignale sind folgende Signale:
ALUOFLW -- Das ist ein Überlaufsignal aus dem ALU-Abschnitt, das nur bedeutsam ist, wenn eine Festpunktzahl in der ALU addiert oder subtrahiert wird.
ALUSIGN -- Das ist das Vorzeichen der Daten, die in dem ALU- Abschnitt tatsächlich verblieben sind, bevor irgendeine andere Verarbeitung der Daten sie verändert haben kann.
CMTRUE -- Dieses Signal zeigt an, daß eine Vergleichsoperation (COMPARE-Operation), die in dem ALU-Abschnitt ausgeführt wurde, Übereinstimmung erbracht hat.
VIS -- Dieses Signal zeigt, daß eine Serie von Vergleichstests gezeigt hat, daß die Eingangsdaten, wenn ein Graphikobjekt dargestellt wird, so sind, daß das Objekt innerhalb des Graphikraums sichtbar ist, der durch den Benutzer gewählt worden ist. Dieses Signal verläßt die Schaltung erst nach zwei Taktverzögerungen statt nach drei Taktverzögerungen (was der Fall bei allen anderen Ausgangssignalen der Vielfunktionsschaltung ist).
Die Fig. 1a und 1b zeigen die Gesamtarchitektur der Vielfunktions- Arithmetisch-Logischen-Schaltung nach der Erfindung. Daten können entweder mit sechzehn Bits gleichzeitig über einen Satz von Signalleitungen, der mit "FIX" bezeichnet ist, oder mit zweiunddreißig Bits gleichzeitig über einen Satz von Signalleitungen, der mit "FLOAT" bezeichnet ist, eingegeben werden. In dem erstgenannten Fall werden während der ersten Taktperiode sechzehn Datenbits in ein Latch (oder Speicherglied) 1 eingeblendet, und während der nächsten Taktperiode wird ein zweiter Satz von sechzehn Bits zusammen mit den sechzehn zuvor in dem Latch 1 gespeicherten Bits über einen 32-Bit-Multiplexer 2 in ein Eingangsregister 3 eingegeben. In letzterem Fall werden alle zweiunddreißig Bits direkt in das Eingangsregister 3 über den Multiplexer 2 eingegeben. Die Eingänge an dem Multiplexer 2 werden durch das Signal MLTPX gewählt. Sämtliche anderen Steuereingangssignale an der Vielfunktionsschaltung werden ebenfalls in dem Eingangsregister 3 vorübergehend gespeichert.
Das Eingangsregister 3 kann durch das Signal HOLD gesperrt werden, nachdem das Signal HOLD bei einem früheren Taktzyklus zuerst durch das Eingangsregister 3 hindurchgegangen ist.
Der ALU-Abschnitt hat einen einfachen Blockaufbau, der ihm gestattet, folgende Funktionen in der bevorzugten Ausführungsform auszuführen (wobei LOGISCH logische Daten, FIXED Festpunktdaten und FLOAT Gleitpunktdaten bedeutet):
DatentypFunktion
LOGISCHSET (setzen) LOGISCHRESET (rücksetzen) LOGISCHA LOGISCHB LOGISCHA AND B (A UND B) LOGISCHA OR B (A ODER B) LOGISCHA XOR B (A EXKLUSIV-ODER B) LOGISCHNOT (A) (NICHT A) FIXEDA FIXED-A FIXEDABS(A) FIXEDB FIXEDA + B FIXED-A + B FIXEDA FIX-FLT FIXEDA GT B (A ≦λτ B) FIXEDA LE B (A B) FIXEDA GE B (A B FIXEDA LT B (A ≦ωτ B) FIXEDA EQ B (A = B) FIXEDA NE B (AB) FLOATA FLOATB FLOATABS(A) FLOATABS(B) FLOATA FLT-FIX FLOATA GT B FLOATA LE B FLOATA GE B FLOATA LT B FLOATA EQ B FLOATA NE B FLOAT-A GT B FLOAT-A LE B FLOAT-A GE B FLOAT-A LT B FLOAT-A EQ B FLOAT-A NE B
Weitere Funktionen könnten mit der beschriebenen ALU-Architektur ausgeführt werden, indem die Zahl der Funktionswahlsteuersignalleitungen vergrößert wird.
Die gesamte ALU-Unterschaltung des ALU-Abschnitts besteht aus sechs Teilen plus fünf internen Registern. Von diesen sechs Teilen sind vier Multiplexer. Gemäß der Darstellung in Fig. 1 werden die Eingangsdaten aus dem Eingangsregister 3 an einen setzbaren/löschbaren Selektionsmultiplexer 4 angelegt, der seinerseits mit einem Parallelübertragsaddierer 5 verbunden ist. Der Selektionsmultiplexer 4, der mit den decodierten Funktionswählsignalen FNSEL verbunden ist, legt fest, ob die in den Addierer 5 eingegebenen Daten unverändert gelassen werden, invertiert werden, alle auf null gesetzt werden oder alle auf eins gesetzt werden. Das Ausgangssignal des Selektionsmultiplexers 4 wird dann an den Addierer 5 angelegt. Der Addierer 5 erzeugt vier natürliche Ausgangssignale, welche die Summe (SUM) der beiden Eingangszahlen A und B umfassen, die logische EXKLUSIV-ODER-Operation (XOR) an den beiden Eingangssignalen, die logische ODER- Operation (OR) an den beiden Eingangssignalen und die logische UND-Operation (AND) an den beiden Eingangssignalen. Solche Parallelübertragsaddierer sind Stand der Technik. Diese vier Ausgangssignale werden an einen 4 : 1-Multiplexer 9 angelegt, der durch die Funktionswählsignale FNSEL gesteuert wird. Das Ausgangssignal des 4 : 1-Multiplexers 9 wird an eine Bedingte- Maskierung-Schaltung 10 angelegt, die das Ausgangssignal des Multiplexers 9 mit den Inhalten eines Maskierregisters 11 logisch UND-verknüpft, sofern nicht die Umgehe- Maskierung-Betriebsart durch das Signal BYPMSK gewählt ist. Wenn die Umgehe-Maskierung-Betriebsart gewählt ist, wird das Ausgangssignal des Multiplexers 9 einfach durch die Bedingte- Maskierung-Schaltung 10 hindurch zu einem 3 : 1-Multiplexer 12 geleitet. Die anderen Eingangssignale an dem 3 : 1-Multiplexer 12 sind die ursprünglichen Eingangsdaten der Vielfunktionsschaltung und das Ausgangssignal eines von vier internen Registern in einer internen Registergruppe 14. Das Ausgangssignal des 3 : 1-Multiplexers 12 wird an ein Zwischenregister 13, an eine Gruppe von vier internen Registern (bezeichnet mit W, X, Y und Z), die die Registergruppe 14 bildet, und an das Maskierregister 11 angelegt. Die Register W, X, Y und Z werden benutzt, um Zwischenwerte zu speichern, wogegen das Maskierregister 11 benutzt wird, um ein Maskierdatenmuster zu speichern. Die Signale WRITE legen fest, welches von den Registern in der Registergruppe 14 und dem Maskierregister 11 das Ausgangssignal aus dem Multiplexer 12 speichern wird. Die Ausgangssignale der Registergruppe 14 werden an einen löschbaren 4 : 1-Multiplexer 15 angelegt, dessen Ausgangssignal durch die Signale READ gewählt wird. Das Ausgangssignal des Multiplexers 15 wird an den "B"- Eingang der Addierschaltung 5 und den "C"-Eingang des 3 : 1- Multiplexers 12 angelegt.
Mit der oben beschriebenen Konfiguration können Daten in die Vielfunktionsschaltung eingegeben werden, durch die ALU-Unterschaltung verarbeitet werden und entweder in dem Maskierregister 11 oder in der Registergruppe 14 gespeichert werden. In diesem letzteren Fall kann jedes Register in der Registergruppe 15 als der "B"-Eingang der Addierschaltung 5 benutzt werden. Die gezeigte Schaltung kann somit Addition, Subtraktion und logische Operationen an Eingangsdaten oder an zwischengespeicherten Daten ausführen.
Die Daten, die in dem Zwischenregister 13 gespeichert sind, werden an eine Verschiebungswählschaltung 16 angelegt, die zwei Funktionen erfüllt. Die erste Funktion ist eine Klemmfunktion, die eine Gleitpunktzahl auf null klemmt, wenn der Exponent der Zahl null ist, und eine Gleitpunktzahl auf (+ oder -) unendlich klemmt, wenn der Exponent gleich FF16 ist. Die Verschiebungswählschaltung 16 erzeugt außerdem Füllbits hoher Ordnung für eine Gleitpunktzahl, um die Mantisse (die nur dreiundzwanzig Bits lang ist) auf volle zweiunddreißig Bits aufzufüllen. Die Füllbits sind gleich "Null", wenn die Eingangsleitpunktzahl positiv ist, und gleich "Eins", wenn die Eingangszahl negativ ist. Festpunktzahlen und logische Daten werden durch die Verschiebungswählschaltung 16 ungeändert hindurchgeleitet.
Das Ausgangssignal der Verschiebungswählschaltung 16 wird an eine Links/Rechts-Verschiebungsschaltung 17 angelegt. Das Ausmaß einer Verschiebung, die durch die Verschiebungsschaltung 17 ausgeführt wird, wird durch eine Fünf-Bit-Verschiebungscodegruppe SHCD gesteuert, wogegen die Richtung der Verschiebung durch ein Verschiebungsvorzeichensignal SHSGN gesteuert wird. Darüber hinaus wird ein Signal FILL in Verbindung mit Festpunktdaten benutzt, um entweder eine Null oder eine Eins als Füllbit anzuzeigen, wenn eine Verschiebung erfolgt.
Das Ausgangssignal der Verschiebungsschaltung 17 wird an ein Flagregister 18 und an einen 3 : 1-Multiplexer 19 angelegt. Das Ausgangssignal des Flagregisters 18 wird an einen weiteren Eingang des 3 : 1- Multiplexers 19 angelegt. Das dritte Eingangssignal an dem 3 : 1-Multiplexer 19 umfaßt das Exponentensignal EXP aus der Umformunterschaltung (die unten mit Bezug auf Fig. 2 beschrieben ist), das Vorzeichenbit aus dem Ausgang der Verschiebungssschaltung 17 und die Bits 8 bis 30 aus dem Ausgang der Verschiebungsschaltung 17. Die letztgenannte Konfiguration gestattet die Umformung von Festpunktzahlen in Gleitpunktzahlen, wobei eine Verschiebung in der Verschiebungsschaltung 17 an den Bits ausgeführt wird, die schließlich die Mantisse der Ausgangsgleitpunktzahl bilden werden, wogegen der Exponent der Ausgangsgleitpunktzahl in der Umformunterschaltung berechnet wird.
Das Ausgangssignal des 3 : 1-Multiplexers 19 wird an ein Ausgangsregister 20 angelegt, welches außerdem ein ALU-Überlaufsignal ALUOFLW und ein ALU-Vorzeichensignal ALUSIGN empfängt und vorübergehend speichert.
Das Flagregister 18 wird durch ein Rücksetzsignal RESET und durch ein Laden-Flagwortsignal LDFLGW gesteuert, welches das Löschen des Flagregisters 18 oder das Laden des Flagregisters mit dem Ausgangssignal der Verschiebungsschaltung 17 gestattet. Mehrfachladungen des Flagwortregisters bewirken, daß frühere Inhalte des Flagwortregisters mit jedem neuen Ausgangssignal der Verschiebungsschaltung 17 logisch ODER-verknüpft werden. Das Ausgangssignal des Flagregisters 18 kann somit benutzt werden, um Daten zu speichern und zu verknüpfen, um Daten zu verdichten oder Flagwörter für die Verwendung außerhalb der Vielfunktionsschaltung zu erzeugen.
Teil des ALU-Abschnitts und des Verschiebungsabschnitts ist eine Umformerschaltung 6 a, 6 b, die ausführlicher in Fig. 2 gezeigt ist. Diese Schaltung hat zwei Pipeline-Abschnitte. Der erste Abschnitt formt eine Zahl aus einer Festpunktdarstellung in eine Gleitpunktdarstellung um. Der zweite Abschnitt formt eine Zahl aus der Gleitpunktdarstellung in die Festpunktdarstellung um.
Zum Umformen einer Zahl aus der Festpunktdarstellung in die Gleitpunktdarstellung ist eine Exponenteneingabe als Startpunkt erforderlich. Dieser Exponent wird dann verkleinert, um führende Nullen in der Festpunktzahl zu berücksichtigen. Die umzuformende Festpunktzahl wird zuerst an den Addierer 5 angelegt, der in Fig. 1a gezeigt ist, und in das Format einer mit Vorzeichen versehenen Größe in der Addierschaltung umgeformt. Das erfolgt, indem das Zweierkomplement der Eingangszahl genommen wird, wenn sie negativ ist. Die sich ergebende Größe mit Vorzeichen wird dann von dem Ausgang des Addierers 5 aus an eine Prioritätscodiererschaltung 30 abgegeben, die in Fig. 2 gezeigt ist. Diese Schaltung, die Stand der Technik ist, bestimmt die Anzahl der führenden Nullen in der Eingangszahl. Das Ausgangssignal des Prioritätscodierers 30 ist eine Festpunktverschiebungscodegruppe SCB, die in dem Zwischenregister 13 zusammen mit dem Ausgangssignal der ALU-Unterschaltung (welches die Zweierkomplementform der Eingangszahl umfaßt) vorübergehend gespeichert wird. Das Eingangssignal SCALE wird als Ausgangsexponent benutzt und ebenfalls in dem Zwischenregister als Skalierverschiebungscodegruppe SCC gespeichert. Die Bits 5 und 6 des Eingangssignals SCALE werden ODER-verknüpft, um ein Löschsignal CLRC zu bilden, das benutzt werden kann, um die Verschiebungsschaltung 17 zu löschen. Die Festpunktverschiebungscodegruppe SCB und die Skalierverschiebungscodegruppe SCC aus dem Zwischenregister 13 werden an eine Subtrahierschaltung 31 angelegt, deren Ausgangssignal CLRB ist, das benutzt werden kann, um die Verschiebungsschaltung 17 zu löschen, und ein neues Exponentensignal EXP, welches an den 3 : 1-Multiplexer 19 angelegt wird, der in Fig. 1b gezeigt ist. Die Festpunktverschiebungscodegruppe SCB und die Skalierverschiebungscodegruppe SCC werden außerdem direkt an einen Verschiebscodegruppenwählmultiplexer 34 angelegt. Die Ausgangssignale des Wählmultiplexers 34 werden an die Verschiebungsschaltung 17 als Steuersignale angelegt. Der Wählmultiplexer 34 wird durch drei Signale gesteuert, die aus den Funktionswählsignalen FNSEL und FLOAT abgeleitet werden und bestimmen, welches Verschiebungscodegruppeneingangssignal an dem Wählmultiplexer 34 an die Verschiebungsschaltung 17 angelegt wird.
In der Festpunkt/Gleitpunkt-Umformbetriebsart bewirkt die Festpunktverschiebungscodegruppe SCB, die in dem Zwischenregister 13 gespeichert ist, daß die Verschiebungsschaltung 17 alle führenden Nullen aus der Mantisse entfernt. Der Exponent EXP, der berechnet wird, indem das Verschiebungscodegruppenausgangssignal aus dem Zwischenregister 13 genommen und von dem Eingangssignal SCALE mittels der Subtraktionsschaltung 31 subtrahiert wird, wird mit dem Ausgangssignal der Verschiebungsschaltung 17 in dem 3 : 1-Multiplexer 19 verknüpft, um die richtige Gleitpunktzahl zu bilden.
Gemäß Fig. 2 wird zum Umwandeln einer Zahl aus der Gleitpunktdarstellung in die Festpunktdarstellung das Eingangssignal SCALE benutzt, um den Binärpunkt des sich ergebenden Ausgangssignals auszurichten. Die Umformung verlangt, daß die Mantisse der Gleitpunktzahl in dem Addierer 5 in die Zweierkomplementform gebracht (auf dieselbe Weise wie das Zweierkomplement für Umformungen aus der Festpunkt- in die Gleitpunktdarstellung genommen wird) und in dem Zwischenregister 13 vorübergehend gespeichert wird.
Gleichzeitig werden die Bits 23 bis 30 der Eingangszahl von dem Eingangssignal SCALE in einer Subtraktionsschaltung 32 subtrahiert, um die erzeugt Festpunktzahl auf einen gewünschten Bereich zu skalieren. Das Ausgangssignal der Subtraktionsschaltung 32 ist eine Zweierkomplementzahl, die in eine aus Größe und Vorzeichen bestehenden Zahl durch eine Komplementschaltung 33 umgeformt wird (welche einfach das Zweierkomplement der Eingangszahl nimmt, wenn sie negativ ist). Das sich ergebende Ausgangssignal ist eine Gleitpunktverschiebungscodegruppe SCA. Wenn die Größe der Differenz größer als einunddreißig ist oder wenn der aus der Subtraktionsschaltung 32 eingegebene Exponent null ist, wird ein Löschsignal CLRA erzeugt, das benutzt werden kann, um die Verschiebungsschaltung 17 zu löschen. Der Wählmultiplexer 34 legt dann die Gleitpunktverschiebungscodegruppe SCA an die Verschiebungsschaltung 17 an, und die Verschiebungswählschaltung 16 legt die Bitpositionen null bis zweiundzwanzig der Zweierkomplementform der Eingangszahl an die Verschiebungsschaltung 17 an. Die acht höchstwertigen Bits am Eingang der Verschiebungsschaltung 17 werden durch die Verschiebungswählschaltung 16 auf denselben Wert wie das Vorzeichen der Eingangszahl gesetzt. Die Bitposition 23 wird auf den Wert des "verborgenen" Bits, das in dem IEEE-32-Bit-Gleitpunktzahlendarstellungsformat vorkommt, gesetzt. Das erfolgt dadurch, daß diese Bitposition zu "Eins" gemacht wird, wenn die Eingangszahl positiv war, und zu "Null", wenn die Eingangszahl negativ war (sofern nicht alle Mantissenbits null sind, in welchem Fall die Zahl des verborgenen Bits auf "Eins" gesetzt wird, ungeachtet des Vorzeichens der Eingangszahl). Das Eingangssignal an der Verschiebungsschaltung 17 wird um die Größe der Gleitpunktverschiebungscodegruppe SCA verschoben, wodurch die Umformung abgeschlossen wird. Durch Einstellen des Eingangssignals SCALE kann der Benutzer einen vorgesehenen Binärpunkt irgendwo in der Ausgangszahl "positionieren". Wenn die Vielfunktions-Arithmetisch-Logische-Schaltung nicht in die Umformbetriebsart versetzt worden ist, kann das Eingangssignal SCALE direkt die Verschiebungsschaltung 17 steuern, indem sie die Skalierverschiebungscodegruppe SCC an dem Eingang des Wählmulitplexers 34 auswählt. Das Eingangssignal SCALE wird in ein Format aus Größe und Vorzeichen gebracht. Eine Verschiebungscodegruppe SCC, die größer als "31" ist, veranlaßt die Verschiebungsschaltung 17, ihr Eingangssignal vollständig hinauszuschieben, wodurch die Verschiebungsschaltung effektiv gelöscht wird. Ein negatives Eingangssignal SCALE verschiebt eine Zahl nach links, ein positives Eingangssignal SCALE verschiebt eine Zahl nach recht. Für eine Linksverschiebung sind die neuen Bits, die rechts von der Eingangszahl eingeschoben werden, immer Nullen. Wenn das Ausgangssignal der Vielfunktionsschaltung ein Festpunktergebnis sein wird (resultierend aus irgendeiner Festpunktfunktion oder einer Gleitpunkt/Festpunkt-Umformung), wird das Vorzeichen bei Linksverschiebungen bewahrt und bei Rechtsverschiebungen ausgedehnt. Wenn das Ausgangssignal als logische Daten betrachtet wird, wird das höchstwertige Bit bei Linksverschiebungen frei hinausgeschoben, und Nullen werden bei Rechtsverschiebungen eingeschoben.
Außerdem ist in dem ALU-Abschnitt eine Vergleichsunterschaltung 7 enthalten. Die Schaltung gestattet, Zahlen zu vergleichen und zu sortieren und wird außerdem in Verbindung mit einer Sichtbarkeitsunterschaltung 8 benutzt (die unten in Verbindung mit Fig. 4 beschrieben ist). Die VERGLEICH-Funktion gibt ein Signal CMTRUE aus der Schaltung nach der Erfindung sowie ein Datenwort auf der Basis des Ergebnisses des gewählten Tests ab. Wenn beispielsweise die ALU-Funktion "FIX A GT B" wahr ("true") ist, wird das Vergleichsschaltungsausgangssignal CMTRUE auf eine logische "1" gesetzt, und das "B"- Eingangssignal an dem Addierer 5 wird aus der Vielfunktions- Arithmetisch-Logischen-Schaltung abgegeben. Wenn das Ergebnis falsch ("false") wäre, würde das Signal CMTRUE auf eine logische "0" gesetzt, und das "A"-Eingangssignal würde aus der Vielfunktionsschaltung abgegeben. Zum Sortieren von Zahlen würde diese Funktion dann viele Male laufen, wobei das Ergebnis in einem der Register der Registergruppe 14 ständig gespeichert würde. Am Ende des Tests würde das kleinste Datenwort der Zahlen, die sortiert werden, in der Registergruppe 14 gespeichert sein. Bei Bedarf können die Eingangssteuersignale der Vielfunktionsschaltung so eingestellt werden, daß eine Zahl, die in irgendeinem der Register der Registergruppe 14 gespeichert ist, in Abhängigkeit von den Ergebnissen des Vergleichs zwischen den "A"- und "B"-Eingangssignalen abgegeben wird.
Fig. 3 zeigt ein vereinfachtes Schaltbild der Vergleichsunterschaltung. Es sind auch Vorkehrungen getroffen, daß sowohl Festpunktzahlen als auch Gleitpunktzahlen verglichen werden können. Für Festpunktdaten nutzt die Schaltung die Tatsache aus, daß das Zweierkomplementzahlensystem kontinuierlich ist und deshalb nur das "A"-Eingangssignal von dem "B"-Eingangssignal in der ALU-Schaltung 5 subtrahiert zu werden braucht. Wenn das Ergebnis negativ ist, muß A größer als B sein. Wenn das Ergebnis null ist, ist A gleich B. Wenn keines dieser Ergebnisse auftritt, dann ist A kleiner als B. Eines der Ausgangssignale der Addierschaltung 5 ist ein Signal EQ, welches anzeigt, daß die beiden Eingangszahlen gleich waren (was ermittelt werden kann, indem die beiden Eingangszahlen miteinander logisch EXKLUSIV-ODER-verknüpft werden). Ein weiteres Ausgangssignal, ZERO, der Addierschaltung 5 zeigt an, ob eine Eingangszahl als gleich null zu betrachten ist (d. h. dessen Exponent gleich null ist), was ermittelt werden kann, indem die Exponenten der beiden Eingangszahlen logisch ODER-verknüpft werden. Diese beiden Signale werden in die Vergleichsunterschaltung 7 eingegeben.
Zum Vergleichen von Festpunktdaten empfängt ein Abschnitt der in Fig. 3 gezeigten Schaltung das Gleich-Signal EQ mittels eines ODER-Gatters 40.
Wenn EQ eine "Eins" ist, dann ist das Ausgangssignal EQUAL des ODER-Gatters 40 eine "Eins", was anzeigt, daß die miteinander verglichenen Zahlen gleich sind. Wenn das Eingangssignal "A" größer als das Eingangssignal "B" ist, ist das Ausgangssignal eines UND-Gatters 41 eine "Eins", was anzeigt, daß das Vorzeichen SR des Ergebnisses von "B - A" negativ ist. (Das andere Eingangssignal an dem UND-Gatter 41 ist immer eine "Eins", wenn Nichtgleitpunktzahlen verglichen werden, was durch das Signal FLOAT gesteuert wird).
Zwei Steuersignale, SEL1 und SEL2 (gewonnen aus dem Vergleichssignal COMPARE, dem Signal FLOAT und den Funktionswählsignalen FNSEL) steuern in Verbindung mit zwei UND-Gattern 50, 51 das Hindurchleiten des Gleich-Signals EQUAL und des "Größer als"-Signals GT durch ein ODER-Gatter 52. Wenn nur das Signal SEL1 aktiv ist, dann stellt die Schaltung fest, ob "A" größer als "B" ist. Wenn nur das Signal SEL2 aktiv ist, stellt die Schaltung fest, ob "A" gleich "B" ist. Wenn beide Signale aktiv sind, zeigt das Ausgangssignal des ODER-Gatters 52 an, ob "A" größer als oder gleich "B" ist. Das Ausgangssignal des ODER-Gatters 52 wird durch ein EXKLUSIV- NOR-Gatter 53 und ein EXKLUSIV-ODER-Gatter 54 hindurchgeleitet. Ein drittes Steuersignal, INV, erzeugt das Ergebnis der gewählten Funktion, CMTRUE, sowie den Kehrwert der gewählten Funktion. Die übrigen logischen Vergleichsfunktionen (A kleiner als oder gleich B, A ungleich B, und A kleiner als B) werden erzeugt, indem das Steuersignal INV benutzt wird, da diese Funktionen das Komplement der anderen drei Funktionen sind, die durch die Schaltung erzeugt werden, und zwar gesteuert durch die Signale SEL1 und SEL2.
Für Gleitpunktzahlen ist das Zahlensystem nicht bitweise kontinuierlich. Deshalb ist das einfache Überprüfen des Vorzeichens der Differenz, SR, nicht ausreichend. Wenn Gleitpunktzahlen verglichen werden (was durch das Signal FLOAT angezeigt wird) verknüpfen deshalb die UND-Gatter 41, 42 und 43 das Vorzeichen des Restes (SR), das Vorzeichen des "A"-Eingangssignals (SAN), das Vorzeichen des "B"-Eingangssignals (SBN) und das ZERO-Signal (FZ), um festzustellen, ob "A" größer als "B" ist. Weiter, wenn die Exponenten der beiden Zahlen beide null sind, werden die Zahlen als gleich betrachtet, was durch das Eingangssignal FZ an dem ODER-Gatter 40 angezeigt wird. Der übrige Teil der Schaltung funktioniert auf dieselbe Weise wie wenn Festpunktzahlen verglichen werden.
Außerdem ist in dem ALU-Abschnitt eine Sichtbarkeitslogikunterschaltung 8 enthalten, die ausführlich in Fig. 4 gezeigt ist. Bei der Anwendung in der Grafik bezieht sich "Sichtbarkeit" auf die Annahme, daß ein Sichtfeld durch sechs begrenzende Ebenen definiert ist (nahe, fern, links, rechts, oben, unten), wobei sich der Ursprung des kartesischen Koordinatensystems innerhalb des begrenzten Bereiches (typisch in der Mitte) befindet. Ein Grafikbild wird typisch aus einem Satz von Polygonen konstruiert. Ein Polygon kann als durch einen Satz von Zahlen definiert angesehen werden. In der Grafikumgebung müssen, um zu testen, ob ein Polygon innerhalb eines gewählten Sichtfeldes ist, sämtliche Punkte, die das Polygon definieren, getestet werden, um festzustellen, ob sie grösser oder kleiner als die sechs Ebenen sind, die das Sichtfeld festlegen. In der vorliegenden Ausführungsform werden die Punkte eines Polygons in bezug auf alle sechs Ebenen in einer gewählten Reihenfolge einzeln getestet. Als Ergebnis dieses Tests kann ein Polygon in drei Kategorien fallen: voll sichtbar (d. h. sämtliche Punkte des Polygons sind innerhalb des Sichtfeldes), nicht voll sichtbar (wenigstens einige der Punkte des Polygons liegen außerhalb des Sichtfeldes), und unsichtbar (sämtliche Punkte des Polygons liegen außerhalb des Sichtfeldes).
Die Schaltung nach Fig. 4 führt diese Tests aus. Für den Sichtbarkeitstest wird der auszuführende besondere Test mittels der Signalleitungen TESTSEL eingestellt, die mit einem Decodierer 60 verbunden sind. Der Decodiererausgang wählt einen von sechs D-Flipflops 61, die jeweils am Anfang auf eine logische "Eins" gesetzt worden sind, aus, dessen Eingangssignal sein eigenes Ausgangssignal umfaßt, das über ein UND-Gatter 62 angelegt wird, und dessen anderes Eingangssignal das Ausgangssignal CMTRUE der Vergleichsunterschaltung 7 (gezeigt in Fig. 3) ist. Tatsächlich verfolgt bei jedem Test ein Flipflop 61 jede Änderung bei dem Vergleichstest und speichert sie. Eine Zahl, die einen Punkt in dem Polygon darstellt, wird somit in der Vergleichsunterschaltung 7 mit einer zweiten Zahl verglichen, die die geeignete Koordinate einer begrenzenden Ebene darstellt. Der Polygonpunkt wird in bezug auf jede Begrenzungsebene sequentiell getestet (sechs Tests), und, wenn das Signal CMTRUE für die besondere begrenzende Ebene "falsch" ist, wird das Ausgangssignal des zugeordneten Flipflops 61 auf einer logischen "Null" verriegelt (mittels der Rückkopplung über dessen UND-Gatter 62), was anzeigt, daß der getestete Polygonpunkt innnerhalb der Testebene (und daher möglicherweise sichtbar) ist. Die Testergebnisse von allen sechs Flipflops 61 werden an ODER-Gatter 63 angelegt, dessen Ausgangssignal an ein NAND-Gatter 64 angelegt wird. Wenn sämtliche sechs Flipflops 61 auf eine logische Null umschalten, dann ist ein Teil des Polygons innerhalb des Sichtfeldes, was durch das Signal VIS angezeigt wird. Das Signal VIS wird in dem Zwischenregister 13 vorübergehend gespeichert und von der Vielfunktionsschaltung in dem nächsten Taktzyklus abgegeben.
Der letzte Teil der Sichtbarkeitslogikunterschaltung ist ein weiteres D- Flipflop 65, dessen Ausgangssignal am Anfang auf eine logische "Null" gesetzt wird. Dieses Flipflop 65 wird immer dann freigegeben, wenn einer der sechs Begrenzungsebenentests ausgeführt wird. Das Ausgangssignal des Voll-sichtbar-Flipflops 65 wird gesetzt und in einem logischen "Eins"-Zustand verriegelt, wenn eines der Signale CMTRUE "wahr" ist (was anzeigt, daß wenigstens ein Punkt des Polygons außerhalb des Sichtfeldes ist). Das Ausgangssignal des Voll-sichtbar-Flipflops 65 wird ebenfalls an das NAND-Gatter 64 und außerdem an einen Inverter 66 angelegt, dessen Ausgangssignal ein Voll-sichtbar-Signal FVIS ist. Solange das Ausgangssignal des Voll-sichtbar-Flipflops 65 eine logische Null ist, wird das Objekt als "Voll sichtbar" und "sichtbar" betrachtet.
Durch geeignete Verwendung der Testergebnissignale und FVIS kann jedes Polygon daraufhin getestet werden, ob es voll sichtbar, nicht voll sichtbar oder unsichtbar ist.
Die Erfindung ist zwar unter Bezugnahme auf eine bevorzugte Ausführungsform beschrieben worden, sie beschränkt sich jedoch nicht darauf. Verschiedene Modifizierungen der bevorzugten Ausführungsform sowie weitere Ausführungsformen der Erfindung ergeben sich für den Fachmann anhand dieser Beschreibung. Beispielsweise könnte die grundlegende Schaltung nach der Erfindung leicht an eine Architektur angepaßt werden, bei welcher es sich um keine Pipeline-Architektur handelt.

Claims (27)

1. Vielfunktions-Arithmetisch-Logische-Schaltung mit einem modularen Arithmetisch-Logischen-Abschnitt, gekennzeichnet durch:
  • a) eine Addierschaltung (5) zum Ausführen von Operationen an der Eingangszahl und an einer vorher gespeicherten Zahl und zum Generieren und Ausgeben der Summe, der logischen ODER-Verknüpfung, der logischen UND-Verknüpfung und der logischen EXKLUSIV-ODER-Verknüpfung derselben;
  • b) einen Addiererselektionsmultiplexer (9), der mit der Addierschaltung (5) verbunden ist, zum wahlweisen Ausgeben eines der Addiererausgangssignale; und
  • c) eine Mehrregister- und Selektoreinrichtung (14, 15), die mit dem Addiererselektionsmultiplexer (9) und mit dem Addierer (5) verbunden ist, zum vorübergehenden Speichern wenigstens einer Ausgangszahl des Addiererselektionsmultiplexers (9) und zum wahlweisen Anlegen einer gespeicherten Ausgangszahl an die Addierschaltung (5).
2. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 1, gekennzeichnet durch einen Eingangsmultiplexer (4), der mit der Addierschaltung (5) verbunden ist, zum wahlweisen Abgeben der Eingangszahl oder der Umkehrung der Eingangszahl an die Addierschaltung (5).
3. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 1 oder 2, gekennzeichnet durch eine Bedingte-Maskierung- Schaltung (10), die mit dem Addiererselektionsmultiplexer (9) und mit der Mehrregister- und Selektoreinrichtung (14, 15) verbunden ist, zum wahlweisen logischen UND-Verknüpfen und zum Abgeben des Ausgangssignals des Addiererselektionsmultiplexers (9) und einer Zahl aus der Mehrregister- und Selektoreinrichtung (14, 15).
4. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Mehrregister- und Selektoreinrichtung (14, 15) eine Registergruppe (14) und einen Multiplexer (15) aufweist.
5. Vielfunktions-Arithmetisch-Logische-Schaltung mit einem modularen Arithmetisch-Logischen-Abschnitt, gekennzeichnet durch:
  • a) einen Eingangsmultiplexer (4) zum wahlweisen Abgeben einer Eingangszahl oder des Kehrwerts der Eingangszahl;
  • b) eine Addierschaltung (5) zum Ausführen von Operationen an der Eingangszahl und an einer zuvor gespeicherten Zahl und zum Erzeugen und Abgeben der Summe, der logischen ODER-Verknüpfung, der logischen UND-Verknüpfung und der logischen EXKLUSIV-ODER-Verknüpfung derselben;
  • c) einen Addiererselektionsmultiplexer (9), der mit der Addierschaltung (5) verbunden ist, zum wahlweisen Abgeben eines der Addiererausgangssignale;
  • d) eine Mehrregister- und Selektoreinrichtung (14, 15), die mit dem Addiererselektionsmultiplexer (9) und mit dem Addierer (5) verbunden ist, zum vorübergehenden Speichern wenigstens einer Ausgangszahl des Addiererselektionsmultiplexers (9) und zum wahlweisen Anlegen einer gespeicherten Ausgangszahl an die Addierschaltung (5); und
  • e) eine Bedingte-Maskierung-Schaltung (10), die mit dem Addiererselektionsmultiplexer (9) und mit der Mehrregister- und Selektoreinrichtung (14, 15) verbunden ist, zum wahlweisen logischen UND-Verknüpfen und Abgeben des Ausgangssignals des Addiererselektionsmultiplexers (9) und einer Zahl aus der Mehrregister- und Selektoreinrichtung (14, 15).
6. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 5, gekennzeichnet durch eine Festpunktzahl- und Gleitpunktzahlvergleichsschaltung (7), die mit der Addierschaltung (5) verbunden ist, wobei die Addierschaltung (5) Signale erzeugt und abgibt, die die Vorzeichen der beiden in die Addierschaltung (5) eingegebenen Zahlen anzeigen, das Vorzeichen der Differenz der beiden Zahlen und die Gleichheit der beiden Zahlen, und wobei die Vergleichsschaltung (7) wahlweise ein Signal abgibt, das die Gleichheit der beiden Zahlen, ob eine Zahl größer als die andere Zahl ist, oder beides, anzeigt.
7. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 6, dadurch gekennzeichnet, daß die Vergleichsschaltung (7) weiter den Kehrwert der gewählten Ausgangsfunktion angibt.
8. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 5 bis 7, gekennzeichnet durch eine Sichtbarkeitsschaltung (8), die mit der Vergleichsschaltung (7) verbunden ist, zum sequentiellen Testen einer Reihe von Vergleichsschaltungsausgangssignalen und zum Anzeigen einer Änderung in dem Ausgangssignal bei irgendeinem Vergleich der Reihe von Vergleichen und einer Änderung in dem Ausgangssignal bei sämtlichen Vergleichen.
9. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 8, dadurch gekennzeichnet, daß der Teil der Sichtbarkeitsschaltung (8) zum Testen und Anzeigen einer Änderung in dem Ausgangssignal von irgendeinem Vergleich der Reihe von Vergleichen ein Speicherglied aufweist.
10. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 8, dadurch gekennzeichnet, daß der Teil der Sichbarkeitsschaltung zum Testen und Anzeigen einer Änderung in dem Ausgangssignal bei sämtlichen Vergleichen mehrere Speicherglieder aufweist, eines für jeden Vergleich in der getesteten Reihe, wobei die Ausgänge der Speicherglieder mit einem ODER-Gatter verbunden sind.
11. Vielfunktions-Arithmetisch-Logische-Schaltung mit Pipeline-Architektur, gekennzeichnet durch:
  • a) eine Eingangspipelinestufe (3) zum Empfangen und vorübergehenden Speichern einer Eingangszahl und von Steuerbefehlen;
  • b) einen modularen arithmetisch-logischen Abschnitt mit:
    • 1) einer Addierschaltung (5), die mit dem Eingangsabschnitt (3) verbunden ist, zum Ausführen von Operationen an der Eingangszahl und an einer früher gespeicherten Zahl und zum Erzeugen und Abgeben der Summe, der logischen ODER-Verknüpfung, der logischen UND-Verknüpfung und der logischen EXKLUSIV-ODER- Verknüpfung derselben;
    • 2) einem Addiererselektionsmultiplexer (9), der mit der Addierschaltung (5) verbunden ist, zum wahlweisen Abgeben eines der Addiererausgangssignale;
    • 3) einer Mehrregister- und Selektoreinrichtung (14, 15), die mit dem Addiererselektionsmultiplexer (9) und mit dem Addierer (5) verbunden ist, zum vorübergehenden Speichern wenigstens einer Ausgangszahl des Addiererselektionsmultiplexers (9) und zum wahlweisen Anlegen einer gespeicherten Ausgangszahl an die Addierschaltung (5); und
  • c) eine Ausgangspipelinestufe (13), die mit dem modularen Arithmetisch-Logischen-Abschnitt verbunden ist, zum Empfangen und vorübergehenden Speichern des Ausgangssignals dieses Abschnitts.
12. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 11, gekennzeichnet durch einen Eingangsmultiplexer (4), der mit der Eingangsstufe und der Addierschaltung (5) verbunden und zwischen diese geschaltet ist, zum wahlweisen Abgeben der Eingangszahl oder des Kehrwerts der Eingangszahl an die Addierschaltung (5).
13. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 11 oder 12, gekennzeichnet durch eine Bedingte- Maskierung-Schaltung (10), die mit dem Addiererselektionsmultiplexer (9) und mit der Mehrregister- und Selektoreinrichtung (14, 15) verbunden ist, zum wahlweise logischen UND-Verknüpfen und Abgeben des Ausgangssignals des Addiererselektionsmultiplexers (9) und einer Zahl aus der Mehrregister- und Selektoreinrichtung (14, 15).
14. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, daß die Mehrregister- und Selektoreinrichtung (14, 15) eine Registergruppe (14) und einen Multiplexer (15) aufweist.
15. Vielfunktions-Arithmetisch-Logische-Schaltung mit Pipeline- Architektur, gekennzeichnet durch:
  • a) eine Eingangspipelinestufe (3, 4) zum Empfangen und vorübergehenden Speichern einer Eingangszahl und von Steuerbefehlen;
  • b) einen modularen Arithmetisch-Logischen-Abschnitt mit:
    • 1) einer Addierschaltung (5), die mit dem Eingangsabschnitt (3, 4) verbunden ist, zum Ausführen von Operationen an der Eingangszahl und an einer früher gespeicherten Zahl und zum Erzeugen und Abgeben der Summe, der logischen ODER-Verknüpfung, der logischen UND-Verknüpfung und der logischen EXKLUSIV- ODER-Verknüpfung derselben;
    • 2) einem Addiererselektionsmultiplexer (9), der mit der Addierschaltung (5) verbunden ist, zum wahlweisen Abgeben eines der Addiererausgangssignale;
    • 3) einer Mehrregister- und Selektoreinrichtung (14, 15) die mit dem Addiererselektionsmultiplexer (9) und mit dem Addierer (5) verbunden ist, zum vorübergehenden Speichern wenigstens einer Ausgangszahl des Addiererselektionsmultiplexers (9) und zum wahlweisen Anlegen einer gespeicherten Ausgangszahl an die Addierschaltung (5);
    • c) eine Zwischenpipelinestufe (13), die mit dem modularen Arithmetisch-Logischen-Abschnitt verbunden ist, zum Empfangen und vorübergehenden Speichern des Ausgangssignals dieses Abschnitts;
    • d) einen Verschiebungsschaltungsabschnitt (16-19), der mit dem Ausgang der Zwischenpipelinestufe (13) verbunden ist, zum wahlweisen Verschieben des Ausgangssignals des Arithmetisch-Logischen-Abschnitts; und
    • e) eine Ausgangspipelinestufe (20), die mit dem Verschiebungsschaltungsabschnitt (16-19) verbunden ist, zum Empfangen und vorübergehenden Speichern des Ausgangssignals dieses Abschnitts.
16. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 15, dadurch gekennzeichnet, daß der Verschiebungsschaltungsabschnitt (16-19) weiter eine Verschiebungswählschaltung (16) enthält zum Leiten von ausgewählten Bits einer Gleitpunktzahl zu ausgewählten Eingängen einer Verschiebungsschaltung (17).
17. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 16, dadurch gekennzeichnet, daß der Verschiebungsschaltungsabschnitt (16-19) weiter enthält:
  • a) ein Flagregister (18), das mit der Verschiebungsschaltung (17) verbunden ist, zum kumulativen logischen ODER-Verknüpfen des Ausgangssignals der Verschiebungsschaltung (17); und
  • b) einen Ausgangsmultiplexer (19), der mit der Verschiebungsschaltung (17) und mit dem Flagregister (18) verbunden ist, zum Auswählen und Abgeben eines der Ausgangssignale derselben.
18. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 15 bis 17, gekennzeichnet durch eine Zahlenumformschaltungsanordnung (30-34) zum Umformen von Gleitpunktzahlen in Festpunktzahlen, gekennzeichnet durch:
  • a) eine Subtraktionsschaltung (32), die mit den Exponentenbits einer Eingangsgleitpunktzahl und mit einem gewählten Skaliereingangssignal verbunden ist, zum Bestimmen der Differenz zwischen dem Exponent und dem Skaliereingangssignal; und
  • b) eine Bedingte-Zweierkomplement-Umformschaltung (33), die mit dem Ausgang der Subtraktionsschaltung (32) und mit der Zwischenpipelinestufe (13) verbunden ist, zum Umformen einer negativen Differenz in Zweierkomplementform, um dadurch eine Verschiebungscodegruppe zu erzeugen;
  • c) wobei die Verschiebungscodegruppe an die Verschiebungsschaltung (17) angelegt wird, um die Richtung und das Ausmaß der Verschiebung der Eingangsgleitpunktzahl zu steuern, wodurch die gewünschte Festpunktzahl erzeugt wird.
19. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 15 bis 17, gekennzeichnet durch eine Zahlenumformschaltungsanordnung zum Umformen von Festpunktzahlen in Gleitpunktzahlen, gekennzeichnet durch:
  • a) eine Prioritätscodiererschaltung, die mit dem Ausgang der Addierschaltung (5) und mit der Zwischenpipelinestufe (13) verbunden ist, zum Bestimmen der Zahl der führenden Nullen in einer Eingangsfestpunktzahl, wodurch eine Verschiebungscodegruppe erzeugt wird; und
  • b) eine Subtraktionsschaltung, an der die Verschiebungscodegruppe und ein gewähltes Skaliereingangssignal anliegen, zum Bestimmen der Differenz zwischen der Verschiebungscodegruppe und dem Skaliereingangssignal, wobei diese Differenz einen Exponenten für die umgeformte Zahl umfaßt;
  • c) wobei die Verschiebungscodegruppe an der Verschiebungsschaltung (17) anliegt, um die Richtung und das Ausmaß der Verschiebung der Eingangsfestpunktzahl zu steuern, und wobei der erzeugte Exponent und die verschobene Eingangszahl miteinander verknüpft werden, um die gewünschte Gleitpunktzahl zu bilden.
20. Vielfunktions-Arithmetisch-Logische-Schaltung mit Pipeline- Architektur, gekennzeichnet durch:
  • a) eine Eingangspipelinestufe (3) zum Empfangen und vorübergehenden Speichern einer Eingangszahl und von Steuerbefehlen;
  • b) einen modularen Arithmetisch-Logischen-Abschnitt mit:
    • 1) einem Eingangsmultiplexer (4), der mit der Eingangsstufe (3) verbunden ist, zum wahlweisen Abgeben der Eingangszahl oder des Kehrwerts der Eingangszahl;
    • 2) einer Addierschaltung (5), die mit dem Eingangsmultiplexer (4) verbunden ist, zum Ausführen von Operationen an der Eingangszahl und an einer früher gespeicherten Zahl und zum Erzeugen und Abgeben der Summe, der logischen ODER-Verknüpfung, der logischen UND-Verknüpfung und der logischen EXKLUSIV-ODER-Verknüpfung derselben;
    • 3) einem Addiererselektionsmultiplexer (9), der mit der Addierschaltung (5) verbunden ist, zum wahlweisen Abgeben eines der Addiererausgangssignale;
    • 4) einer Mehrregister- und Selektoreinrichtung (14, 15), die mit dem Addiererselektionsmultiplexer (9) und mit dem Addierer (5) verbunden ist, zum vorübergehenden Speichern wenigstens einer Ausgangszahl des Addiererselektionsmultiplexers (9) und zum wahlweisen Anlegen einer gespeicherten Ausgangszahl an die Addierschaltung (5);
    • 5) einer Bedingte-Maskierung-Schaltung (10), die mit dem Addiererselektionsmultiplexer (9) und mit der Mehrregister- und Selektoreinrichtung (14, 15) verbunden ist, zum wahlweisen logischen UND-Verknüpfen und zum Abgeben des Ausgangssignals des Addiererselektionsmultiplexers (9) und einer Zahl aus der Mehrregister- und Selektoreinrichtung (14, 15);
  • c) eine Zwischenpipelinestufe (13), die mit dem modularen Arithmetisch-Logischen-Abschnitt verbunden ist, zum Empfangen und vorübergehenden Speichern des Ausgangssignals dieses Abschnitts;
  • d) einen Verschiebungsschaltungsabschnitt (30-34), der mit dem Ausgang der Zwischenpipelinestufe (13) verbunden ist, zum wahlweisen Verschieben des Ausgangssignals des Arithmetisch-Logischen-Abschnitts, mit:
    • 1) einer Verschiebungswählschaltung (16) zum Leiten von ausgewählten Bits einer Gleitpunktzahl zu gewählten Eingängen einer Verschiebungsschaltung (17);
    • 2) einem Flagregister (18), das mit der Verschiebungsschaltung (17) verbunden ist, zum kumulativen logischen ODER-Verknüpfen des Ausgangssignals der Verschiebungsschaltung (17); und
    • 3) einem Ausgangsmultiplexer (19), der mit der Verschiebungsschaltung (17) und mit dem Flagregister (18) verbunden ist, zum Auswählen und Abgeben eines der Ausgangssignale derselben; und
  • e) eine Ausgangspipelinestufe (20), die mit dem Verschiebungsschaltungsabschnitt (30-34) verbunden ist, zum Empfangen und zum vorübergehenden Speichern des Ausgangssignals dieses Abschnitts.
21. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 20, gekennzeichnet durch eine Festpunktzahl- und Gleitpunktzahlvergleichsschaltung (7), die mit der Addierschaltung (5) verbunden ist, wobei die Addierschaltung (5) Signale erzeugt und abgibt, die die Vorzeichen der beiden Zahleneingaben in die Addierschaltung (5), das Vorzeichen der Differenz der beiden Zahlen und die Gleichheit der beiden Zahlen angeben, und wobei die Vergleichsschaltung (7) wahlweise ein Signal abgibt, das die Gleichheit der beiden Zahlen, ob eine Zahl größer als die andere Zahl ist, oder beides, anzeigt.
22. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 21, dadurch gekennzeichnet, daß die Vergleichsschaltung (7) weiter den Kehrwert der ausgewählten Ausgangsfunktion anzeigt.
23. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 20 bis 22, gekennzeichnet durch eine Sichtbarkeitsschaltung (8), die mit der Vergleichsschaltung (7) verbunden ist, zum sequentiellen Testen einer Reihe von Vergleichsschaltungausgangssignalen und zum Anzeigen einer Änderung in dem Ausgangssignal von irgendeinem der Reihe von Vergleichen und einer Änderung in dem Ausgangssignal von sämtlichen Vergleichen.
24. Vielfunktions-Arithmetische-Logische-Schaltung nach Anspruch 23, dadurch gekennzeichnet, daß der Teil der Sichtbarkeitsschaltung (8) zum Testen und Anzeigen einer Änderung in dem Ausgangssignal von irgendeinem der Reihe von Vergleichen ein Speicherglied aufweist.
25. Vielfunktions-Arithmetisch-Logische-Schaltung nach Anspruch 23, dadurch gekennzeichnet, daß der Teil der Sichtbarkeitsschaltung (8) zum Testen und Anzeigen einer Änderung in dem Ausgangssignal von sämtlichen Vergleichen mehrere Speicherglieder aufweist, eines für jeden Vergleich in der getesteten Folge, wobei die Ausgänge der Speicherglieder mit einem ODER-Gatter verbunden sind.
26. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 20 bis 25, gekennzeichnet durch eine Zahlenumformschaltungsanordnung (30-34) zum Umformen von Gleitpunktzahlen in Festpunktzahlen, gekennzeichnet durch:
  • a) eine Subtraktionsschaltung (32), die mit den Exponentenbits einer Eingangsgleitpunktzahl und mit einem gewählten Skaliereingangssignal verbunden ist, zum Bestimmen der Differenz zwischen dem Exponenten und dem Skaliereingangssignal; und
  • b) eine Bedingte-Zweierkomplement-Umformschaltung (33), die mit dem Ausgang der Subtraktionsschaltung (32) und mit der Zwischenpipelinestufe (13) verbunden ist, zum Umformen einer negativen Differenz in Zweierkomplementform, wodurch eine Verschiebungscodegruppe erzeugt wird;
  • c) wobei die Verschiebungscodegruppe an die Verschiebungsschaltung (17) angelegt wird, um die Richtung und das Ausmaß der Verschiebung der Eingangsgleitpunktzahl zu steuern und dadurch die gewünschte Festpunktzahl zu erzeugen.
27. Vielfunktions-Arithmetisch-Logische-Schaltung nach einem der Ansprüche 20 bis 26, gekennzeichnet durch eine Zahlenumformschaltungsanordnung zum Formen von Festpunktzahlen in Gleitpunktzahlen, gekennzeichnet durch:
  • a) eine Prioritätscodierschaltung, die mit dem Ausgang der Addierschaltung (5) und mit der Zwischenpipelinestufe (13) verbunden ist, zum Bestimmen der Zahl der führenden Nullen in einer Eingangsfestpunktzahl, um dadurch eine Verschiebungscodegruppe zu erzeugen; und
  • b) eine Subtraktionsschaltung, die mit der Verschiebungscodegruppe und mit einem gewählten Skaliereingangssignal verbunden ist, zum Bestimmen der Differenz zwischen der Verschiebungscodegruppe und dem Skaliereingangssignal, wobei diese Differenz einen Exponenten für die umgeformte Zahl umfaßt;
  • c) wobei die Verschiebungscodegruppe an die Verschiebungsschaltung (17) angelegt wird, um die Richtung und das Ausmaß der Verschiebung der Eingangsfestpunktzahl zu steuern, und wobei der erzeugte Exponent und die verschobene Eingangszahl in dem Ausgangsmultiplexer miteinander verknüpft werden, um die gewünschte Gleitpunktzahl zu bilden.
DE19873701599 1986-01-30 1987-01-21 Vielfunktions-arithmetisch-logische-schaltung Granted DE3701599A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/824,053 US4815021A (en) 1986-01-30 1986-01-30 Multifunction arithmetic logic unit circuit

Publications (2)

Publication Number Publication Date
DE3701599A1 true DE3701599A1 (de) 1987-08-06
DE3701599C2 DE3701599C2 (de) 1992-01-16

Family

ID=25240489

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873701599 Granted DE3701599A1 (de) 1986-01-30 1987-01-21 Vielfunktions-arithmetisch-logische-schaltung

Country Status (5)

Country Link
US (1) US4815021A (de)
JP (1) JPS62197823A (de)
DE (1) DE3701599A1 (de)
FR (1) FR2593620A1 (de)
GB (1) GB2186105B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3936334A1 (de) * 1989-10-30 1991-05-02 Siemens Ag Datentransfer-verfahren
CN1098434C (zh) * 1997-08-21 2003-01-08 速睦喜股份有限公司 用于5端口电磁阀阀体的3端口电磁阀

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
US5038309A (en) * 1989-09-15 1991-08-06 Sun Microsystems, Inc. Number conversion apparatus
JPH04290122A (ja) * 1991-03-19 1992-10-14 Fujitsu Ltd 数値表現変換装置
US5420815A (en) * 1991-10-29 1995-05-30 Advanced Micro Devices, Inc. Digital multiplication and accumulation system
DE69418646T2 (de) * 1993-06-04 2000-06-29 Sun Microsystems, Inc. Gleitkommaprozessor für einen hochleistungsfähigen dreidimensionalen Graphikbeschleuniger
EP0638859B1 (de) * 1993-08-09 1999-09-29 Siemens Aktiengesellschaft Signalverarbeitungseinrichtung
US7043511B1 (en) * 2002-08-30 2006-05-09 Lattice Semiconductor Corporation Performing conditional operations in a programmable logic device
US8667045B1 (en) * 2011-05-11 2014-03-04 Altera Corporation Generalized parallel counter structures in logic devices
US9043290B2 (en) 2013-01-14 2015-05-26 International Business Machines Corporation Rewriting relational expressions for different type systems
US9916130B2 (en) 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
GB2560766B (en) * 2017-03-24 2019-04-03 Imagination Tech Ltd Floating point to fixed point conversion
US20230061618A1 (en) * 2021-08-31 2023-03-02 Intel Corporation Bfloat16 square root and/or reciprocal square root instructions
US20230068781A1 (en) * 2021-08-31 2023-03-02 Intel Corporation Bfloat16 scale and/or reduce instructions
EP4318227A1 (de) * 2022-08-03 2024-02-07 Intel Corporation 8-bit-gleitkomma-quadratwurzel- und/oder reziprokquadratwurzel-anweisungen

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1549478B1 (de) * 1966-09-13 1970-08-27 Ibm Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
US4225934A (en) * 1971-08-31 1980-09-30 Texas Instruments Incorporated Multifunctional arithmetic and logic unit in semiconductor integrated circuit
US4323981A (en) * 1977-10-21 1982-04-06 Tokyo Shibaura Denki Kabushiki Kaisha Central processing unit with improved ALU circuit control

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
JPS57196355A (en) * 1981-05-27 1982-12-02 Toshiba Corp Data processor
US4417314A (en) * 1981-07-14 1983-11-22 Rockwell International Corporation Parallel operating mode arithmetic logic unit apparatus
US4475237A (en) * 1981-11-27 1984-10-02 Tektronix, Inc. Programmable range recognizer for a logic analyzer
US4454589A (en) * 1982-03-12 1984-06-12 The Unite States of America as represented by the Secretary of the Air Force Programmable arithmetic logic unit
JPS59149539A (ja) * 1983-01-28 1984-08-27 Toshiba Corp 固定小数点−浮動小数点変換装置
US4524345A (en) * 1983-02-14 1985-06-18 Prime Computer, Inc. Serial comparison flag detector

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1549478B1 (de) * 1966-09-13 1970-08-27 Ibm Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
US4225934A (en) * 1971-08-31 1980-09-30 Texas Instruments Incorporated Multifunctional arithmetic and logic unit in semiconductor integrated circuit
US4225934B1 (en) * 1971-08-31 1998-01-20 Texas Instruments Inc Multifunctional arithmetic and logic unit in semiconductor integrated circuit
US4323981A (en) * 1977-10-21 1982-04-06 Tokyo Shibaura Denki Kabushiki Kaisha Central processing unit with improved ALU circuit control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
David J. Kuck, The Structure of Computers amd Comuptation, Vol. 1, 1978, John Wiley & Sons, S. 40-42, 245-248, 255-259 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3936334A1 (de) * 1989-10-30 1991-05-02 Siemens Ag Datentransfer-verfahren
CN1098434C (zh) * 1997-08-21 2003-01-08 速睦喜股份有限公司 用于5端口电磁阀阀体的3端口电磁阀

Also Published As

Publication number Publication date
JPH0544686B2 (de) 1993-07-07
GB2186105B (en) 1989-10-25
GB8701631D0 (en) 1987-03-04
US4815021A (en) 1989-03-21
DE3701599C2 (de) 1992-01-16
GB2186105A (en) 1987-08-05
JPS62197823A (ja) 1987-09-01
FR2593620A1 (fr) 1987-07-31

Similar Documents

Publication Publication Date Title
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE3701599A1 (de) Vielfunktions-arithmetisch-logische-schaltung
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE69131458T2 (de) Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen
DE3306084C2 (de)
DE69811877T2 (de) ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert.
DE2900324A1 (de) Mikroprogrammierbare arithmetische fliesskommaeinheit
DE69225654T2 (de) Wandler fuer numerische ausdruecke und ihn benuetzender vektorprozessor
DE3700323C2 (de)
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE69722859T2 (de) Formatumwandlung von Datenwörtern graphischer Bilder
DE2421130C2 (de)
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
DE69808362T2 (de) Multiplizierverfahren und Multiplizierschaltung
DE19618120B4 (de) Parallelverarbeitungs-Divisionsschaltung
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE68927398T2 (de) Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen
DE2310553A1 (de) Vorrichtung zur durchfuehrung arithmetischer und logischer operationen
DE69030169T2 (de) Hochleistungsaddierer mit Carry-Vorhersage
DE69230520T2 (de) Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal
DE69225638T2 (de) Abrundungsschaltung in einem Gleitkommamultiplizierer
DE69423073T2 (de) Schaltung und Verfahren zur Verschiebung und Abrundung
DE69327421T2 (de) Anordnung und Verfahren zum parallelisierten Grössenvergleich von digitalen Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: STAR TECHNOLOGIES, INC., STERLING, VA., US

8128 New person/name/address of the agent

Representative=s name: REINHARD, H., DIPL.-CHEM. DR.RER.NAT. SKUHRA, U.,

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee