DE3701599A1 - Vielfunktions-arithmetisch-logische-schaltung - Google Patents
Vielfunktions-arithmetisch-logische-schaltungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow 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 (A ≠ B)
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.
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)
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)
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)
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)
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 |
-
1986
- 1986-01-30 US US06/824,053 patent/US4815021A/en not_active Expired - Fee Related
-
1987
- 1987-01-21 DE DE19873701599 patent/DE3701599A1/de active Granted
- 1987-01-21 FR FR8700635A patent/FR2593620A1/fr not_active Withdrawn
- 1987-01-26 GB GB8701631A patent/GB2186105B/en not_active Expired
- 1987-01-28 JP JP62016339A patent/JPS62197823A/ja active Granted
Patent Citations (4)
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)
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)
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 |