DE2724125C2 - - Google Patents
Info
- Publication number
- DE2724125C2 DE2724125C2 DE2724125A DE2724125A DE2724125C2 DE 2724125 C2 DE2724125 C2 DE 2724125C2 DE 2724125 A DE2724125 A DE 2724125A DE 2724125 A DE2724125 A DE 2724125A DE 2724125 C2 DE2724125 C2 DE 2724125C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- register
- multiplier
- adder
- processing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000015654 memory Effects 0.000 claims description 91
- 239000000872 buffer Substances 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 47
- 238000003860 storage Methods 0.000 claims description 16
- OZFAFGSSMRRTDW-UHFFFAOYSA-N (2,4-dichlorophenyl) benzenesulfonate Chemical compound ClC1=CC(Cl)=CC=C1OS(=O)(=O)C1=CC=CC=C1 OZFAFGSSMRRTDW-UHFFFAOYSA-N 0.000 claims description 14
- 239000012591 Dulbecco’s Phosphate Buffered Saline Substances 0.000 claims description 14
- 230000008878 coupling Effects 0.000 claims description 12
- 238000010168 coupling process Methods 0.000 claims description 12
- 238000005859 coupling reaction Methods 0.000 claims description 12
- 230000036961 partial effect Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 230000002441 reversible effect Effects 0.000 claims description 3
- 239000007853 buffer solution Substances 0.000 claims 1
- 238000001514 detection method Methods 0.000 claims 1
- 238000012432 intermediate storage Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 230000000295 complement effect Effects 0.000 description 9
- 208000037516 chromosome inversion disease Diseases 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 2
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101000802895 Dendroaspis angusticeps Fasciculin-1 Proteins 0.000 description 1
- 101000802894 Dendroaspis angusticeps Fasciculin-2 Proteins 0.000 description 1
- 101000573451 Homo sapiens Msx2-interacting protein Proteins 0.000 description 1
- 102100026285 Msx2-interacting protein Human genes 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5306—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
- G06F7/5312—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- 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
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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
- 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/3896—Bit slicing
-
- 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/49936—Normalisation mentioned as feature only
-
- 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/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Description
Die vorliegende Erfindung betrifft ein Gleitkomma-Datenverarbeitungsgerät
nach dem Oberbegriff des Patentanspruchs 1.
Die Durchführung langer Rechenoperationen, wie z. B. schneller
Fourier-Transformationen oder Laplace-Transformationen
ist wegen der großen Anzahl von sich wiederholenden sequentiellen
Rechenvorgängen zeitaufwendig und teuer. Rechner,
welche Rechenoperationen parallel abarbeiten, sind beispielsweise
aus der US-PS 37 71 141 bekannt. Wegen der großen
Anzahl von Eingangsverbindungen zu den Prozessor-Registern ist
ein derartiger Rechner jedoch auf konventionellen Schaltungsplatinen
schaltungstechnisch schwierig realisierbar. Darüber
hinaus ist zur Festlegung eines Befehlsatzes ein übergeordneter
Operationscode erforderlich, wobei viele Befehle nicht
gleichzeitig ausgenutzt werden können. Schließlich ist für
Gleitkomma-Rechenoperationen eine umfangreiche Programmierung
erforderlich, wodurch die Gesamt-Rechnergeschwindigkeit verringert
wird.
Aus der DE-AS 19 34 441 ist bereits ein Rechenwerk für einen
Digitalrechner bekannt, das ebenfalls ein Gleitkomma-Addierwerk,
ein Gleitkomma-Multiplizierwerk sowie mehrere Verbindungsbusse
der gattungsgemäßen Art aufweist. Ein solches
Rechenwerk stellt eine kombinierte Multiplikations- und Additions-
Leitungsnetzstruktur dar, welche intern bis zu einem
gewissen Grade zur Durchführung entweder einer Multiplikation
oder einer Addition gestaltet werden kann. Das Rechenwerk ist
jedoch nicht so ausgelegt, daß mehrere Gleitkomma-Rechenoperationen
gleichzeitig nebeneinander ausgeführt werden können.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein
Datenverarbeitungsgerät der in Rede stehenden Art anzugeben,
mit dem eine Vielzahl von Gleitkomma-Rechenoperationen gleichzeitig
untereinander störungsfrei und schnell abgearbeitet
werden können.
Diese Aufgabe wird bei einem Gleitkomma-Datenverarbeitungsgerät
der eingangs genannten Art erfindungsgemäß durch die
Merkmale des kennzeichnenden Teils des Patentanspruchs 1
gelöst.
Weiterbildungen der Erfindung sind Gegenstand von Unteransprüchen.
Die Erfindung wird im folgenden anhand von in den Figuren der
Zeichnung dargestellten Ausführungsbeispielen näher erläutert.
Es zeigt:
Fig. 1 ein Blockschaltbild eines erfindungsgemäßen Datenverarbeitungsgerätes;
Fig. 2 eine detailliertere Darstellung eines Teils des
Blockschaltbildes nach Fig. 1;
Fig. 3 ein Blockschaltbild eines Gleitkomma-Addierwerkes;
Fig. 4 ein Blockschaltbild eines Gleitkomma-Multiplizierwerks;
Fig. 5 einen Teil des Blockschaltbildes nach Fig. 4;
Fig. 6 ein Blockschaltbild von Verbindungsbussen des Datenverarbeitungsgerätes;
Fig. 7 ein Blockschaltbild einer Adreßschaltung zum Ansteuern
der Verbindungsbusse nach Fig. 6;
Fig. 8 ein Blockschaltbild einer arithmetischen Adreßschaltung;
Fig. 9 ein Blockschaltbild einer Programmier-
Adreßschaltung; und
Fig. 10 einen Befehlssatz des erfindungsgemäßen Datenverarbeitungsgeräts.
Fig. 1
zeigt als Blockschaltbild den allgemeinen Aufbau eines
Datenverarbeitungsgeräts gemäß der Erfindung.
Aufgrund einer noch genauer zu beschreibenden
Verbindungsbus-Struktur
ist ein hoher Grad von parallelen Rechenoperationen
möglich.
Damit ist ein störungsfreier Simultanbetrieb möglich.
Das Datenverarbeitungsgerät weist eine Schnittstelle 10 zum Austausch
von Information zwischen einem Hauptrechner 12 und
der Verbindungsbus-Struktur auf.
Das Datenverarbeitungsgerät weist weiter einen Programmspeicher
14 und
zum sequentiellen Einspeisen von Befehlen in einem Befehlsregister
16 auf. Das Datenverarbeitungsgerät weist ferner
einen Tabellenspeicher 18 in Form eines Festwertspeichers
(ROM) zum Abspeichern von tabellarischer
Information auf.
Dabei kann es sich
z. B. um Sinus- und Kosinus-Funktionen handeln.
Der Tabellenspeicher 18 wird von einer
Tabellenspeicher-Adresse TMA adressiert, um
Information in ein Ausgangsregister TM einzugeben.
Der Tabellenspeicher
kann ein Speicher mit wahlfreiem Zugriff (RAM) sein.
Das Datenverarbeitungsgerät weist ferner einen zweiteiligen Datenspeicher
in Form eines X-
Speicherregisters 20 und eines Y-Speicherregisters 22 auf. Sie werden gemeinsam
durch eine Adresse DPA gesteuert.
Innerhalb dieser Gruppe von Speicherregistern
erfolgt eine weitere Adressierung
durch einen Lese-Index und einen Schreib-Index.
Die Speicherregister arbeiten als
Akkumulatoren und besitzen kurze
Zugriffszeiten.
Der Hauptspeicher des Datenverarbeitungsgeräts wird durch ein
Speicherregister 24 mit beispielsweise 64 K Speicherplätzen,
ein Speichereingangsregister
MI und ein Speicherausgangsregister MD gebildet. Die Adressierung
erfolgt durch eine Adresse MA
mit direktem Speicherzugriff DMA zwischen dem
Speicherregister und der Schnittstelle 10.
Das Datenverarbeitungsgerät weist ein Adreßregister 26
parallel zu den
Speicherregistern auf.
Ausgänge 28 und 30 sind an eine
arithmetische Adreßeinheit 32 bzw. eine Bit-Umkehrschaltung
35 gekoppelt. Diese miteinander gekoppelten Komponenten sind für
schnelle Rechenoperationen wie
schnelle Fourier-Transformationen geeignet.
Das Verbindungsbussystem führt einem zwei Eingänge A 1 und A 2
und einen Ausgangsbus FA aufweisenden Gleitkomma-Addierwerk
34 Eingangssignale zu und erhält von diesem Ausgangssignale.
Dieses Addierwerk weist
ein Exponenten- und ein Mantissenteil auf. Es ist
eine zweistufige Schaltung, in der in zwei
Taktperioden eine komplette Gleitkomma-Addition durchgeführt
wird, wobei aber während jeder Taktperiode ein Ausgangssignal
einer vollständigen parallelen Addition erzeugt wird.
Ferner weist das Datenverarbeitungsgerät ein dreistufiges,
Eingänge M 1 und M 2 aufweisendes Gleitkomma-Multiplizierwerk
36 mit einem Ausgangsbus
FM auf. Das Multiplizierwerk weist ebenfalls
einen Exponenten- und einen Mantissenteil auf. Eine
vollständige Multiplikation wird in drei Taktperioden
durchgeführt, wobei
das Ausgangssignal einer vollständigen
parallelen Multiplikation während jeder Taktperiode
abgegeben wird. Weiterhin
sind Adreßschaltungen
38, 40, 42 für
Adressen
DPA, MA und TMA vorgesehen.
Im Blockschaltbild nach Fig. 1 sind Eingänge und Ausgänge
durch Buchstabenkombinationen gekennzeichnet.
So kann der Eingang M 1 des Multiplizierwerks
ein Signal FM vom Ausgang des Multiplizierwerks,
ein Eingangssignal TM vom Tabellenspeicher oder
Eingangssignale DPX oder DPY der zugehörigen Speicherregister
aufnehmen. Die Eingangssignale werden
während der gleichen Taktperiode aufgenommen,
um mehrere gleichzeitigen Rechen- oder
Speicheroperationen auszuführen. Die Haupt-Taktperiode des
Datenverarbeitungsgeräts beträgt 167 Nanosekunden, d. h.
während einer Mikrosekunde werden ungefähr 6 Taktperioden
abgearbeitet.
Fig. 2 zeigt eine vollständigere Anordnung
von Verbindungsbussen.
Sie sind mit FA, FM, A 1 BS, A 2 BS
M 1 BS, M 2 BS und DPBS bezeichnet.
Der Verbindungsbus DPBS
ist ein konventioneller Bus, der
seriell betreibbar ist, die Speicherregister 18, 20, 22 und 24
verbindet. Die anderen Verbindungsbusse verbinden jeweils
einzelne Einheiten und
dienen zusammen mit dem Verbindungsbus DPBS
zur gleichzeitigen Ausführung mehrerer Rechenoperationen.
Die Verbindungsbusse sind symmetrisch und
verbinden primär die Eingänge
und Ausgänge des Gleitkomma-Addierwerks 34
und des Gleitkomma-Multiplizierwerks 36. Die Ausgangssignale
der Verbindungsbusse FA und FM werden iterativ
in den Eingang des Addierwerks und
den Eingang des Multiplizierwerks eingegeben, wodurch
Rechenoperationen, wie z. B.
Produktbildung durch Aufaddierung ohne
Akkumulatorregister möglich sind.
Die Verbindungsbusse FA und FM liegen direkt an den Eingängen des
Addierwerks, des Multiplizierwerks, sowie der Speicherregister.
Die Eingangssignale für das Gleitkomma-Addierwerk und das
Gleitkomma-Multiplizierwerk werden über die Verbindungsbusse
A 1 BS, A 2 BS, M 1 BS und M 2 BS zusammengefaßt.
Die Zeitsteuerung ist für diese Eingangssignale
weniger kritisch. Der Verbindungsbus
A 1 BS nimmt aus dem Tabellenspeicher 18 und
aus den Speicherregistern 20, 22 Eingangssignale auf, während
der Verbindungsbus A 2 BS, Eingangssignale
aus den Speicherregistern 20, 22, 24
aufnimmt. Der Verbindungsbus M 1 BS
nimmt Eingangssignale von dem Tabellenspeicher 18
und den Speicherregistern 20, 22 auf, während der Verbindungsbus M 2 BS
Eingangssignale aus den
Speicherregistern 20, 22, 24 aufnimmt. Diese
symmetrische Anordnung der Verbindungsbusse hat
für schnelle Rechenoperationen als äußerst effektiv erwiesen.
Der Verbindungsbus
DPBS, über nicht dargestellte Schaltungen, ist mit einem Ein-/Ausgabebus des Hauptrechners
verbunden.
Für einen Befehl können den Eingängen A 1,
A 2,
M 1 und M 2 jeweils vier
Eingangssignale störungsfrei gleichzeitig zugeführt
werden. Aufgrund des Verbindungsbus-Aufbaus
kann die Schaltung ohne Schwierigkeiten auf mehrere von
Platinen verteilt werden.
Für einen Verbindungsbus
mit einem einzigen Ausgang und mehreren Eingängen wird ein
Multiplexer zweckmäßig an den Eingängen
vorgesehen, so daß dann mehrere Verbindungen am Ausgang nicht
erforderlich sind. Dann sind Eingangssignalquellen einfacher
auf mehrere Platinen zu verteilen.
Fig. 3 zeigt ein vollständiges Gleitkomma-Addierwerk.
Das Datenverarbeitungsgerät
arbeitet auf der Basis negativer Logik,
wobei negative Zahlen in der Form des
Zweier-Komplement dargestellt werden. Eine Gleitkomma-Zahl
umfaßt 28 Bits für die Mantisse und 10 Bits für den Exponenten,
insgesamt also 38 Bits. Gemäß Fig. 3
nimmt eine Addierstufe in Form eines Exponenten-Multiplexers 44 (A 1 E) Exponenten von den
Verbindungsbussen FM und A 1 BS Eingängen
A und B, während eine Addierstufe in Form eines Exponenten-Multiplexen 46 (A 2 E)
an ihren Eingängen A und B Eingangssignale
von den Verbindungsbussen FA und A 2 BS, aufnimmt. Entsprechend
nimmt eine Addierstufe in Form eines Mantissen-Registers 48 (A 1) und eine Addierstufe in Form eines Mantissen-
Registers 50 (A 2) Mantissen-Eingangssignale
von den zugehörigen Verbindungsbussen, wie das in Fig. 2
dargestellt ist.
Um eine Gleitkomma-Addition durchzuführen,
werden die Exponenten miteinander verglichen, um festzustellen,
welcher der größere ist, und ein positiver
Differenzbetrag der Exponenten erzeugt. Die Exponenten
werden in beiden Richtungen voneinander abgezogen,
um Zeit-Parameter zu erhalten. Die dem größeren Exponeten
zugehörige Mantisse wird arithmetischen
Recheneinheiten zugeführt, während die dem kleineren Exponenten
zugehörige Mantisse zunächst in die zugehörige Stelle
geschoben wird, bevor Rechenoperationen durchgeführt werden.
Gemäß Fig. 3, werden die Exponenten
von den Addierstufen 44 und 46 zunächst den Addierstufen 52
und 54 zugeführt, wobei nicht komplementäre und komplementäre
Ausgangssignale für Addierstufen in Form einer ALU 56 und 58
erzeugt werden, wobei die ALU 56 die Werte A 1 und A 2 abzieht,
während die ALU 58 A 2 und A 1 abzieht. Wenn der
A 2-Exponent größer als der A 1-Exponent ist, dann wird auf einer
Leitung 60 ein Signal erzeugt, wobei eine Addierstufe in Form eines Multiplexers 62 dann
das Ausgangssignal der Addierstufe
50 auswählt. Wenn der A 2-
Exponent nicht größer wie der A 1-Exponent ist, dann wählt
die Addierstufe 62 das Ausgangssignal der Addierstufe 48 aus.
Eine Addierstufe in Form eines Multiplexers 64 führt die den
kleineren Exponent zugehörige Mantisse einer Addierstufe in Form einer nach rechts
verschiebenden Stufe 66 zu.
Je nachdem, ob der Exponent von A 1 oder A 2 größer ist, wird
auf einer Leitung 68 der Addierstufe 58 ein Ausgangssignal für eine
Addierstufe in Form eines Multiplexers 70 erzeugt, der
die positive Differenz zwischen den beiden Exponenten auswählt.
Dadurch führt die Addierstufe 70 der Addierstufe 66 den richtigen Differenzbetrag
von seinem Eingang A oder B
über eine Leitung 72 zu.
Die Addierstufe 66 schiebt dann ihr Eingangssignal um die
Stellenzahl, die dem Differenzbetrag zwischen den Exponenten
entspricht, nach rechts. Das Ausgangssignal der Addierstufe
66 wird als zweites Eingangssignal einer Addierstufe in Form einer ALU 74 zugeführt.
Die Leitung 68 wird auch über eine Addierstufe in Form eines Inverters 76 einer Addierstufe in Form eines Multiplexers
78 zugeführt, um den größeren Exponenten auszuwählen.
Dieser Exponent wird dann mit einer Addierstufe 80 gekoppelt,
wobei eine positive 5 addiert wird, um die nachfolgende
Normalisierungslogik zu stützen, wobei die Normalisierung
mittels einer Verschiebung in einer vorgegebenen Richtung
erreicht wird. Der Exponent +5 wird dann in einem Zwischenspeicher
abgespeichert.
Die Addierstufe 74 führt die erwünschte logische oder
arithmetische Rechenoperation mit der von der Addierstufe
62 abgegebenen Mantisse und mit der von der Addierstufe 66
geschobenen Mantisse aus. Die Eingangssignale, die mit FAS 0,
FAS 1 und FAS 2 bezeichnet sind, beinhalten in kodierter Form
die Art der durch die Addierstufe 74 durchzuführenden Rechenoperation
um B zu A zu addieren. B von A abzuziehen, A von B abzuziehen
oder eine logische "Und"- oder eine logische "Oder"-Funktion.
Das Ausgangssignal der ALU wird dann in einem Zwischenspeicher
84 abgespeichert.
Der Exponent und die Mantisse sind
in
den Zwischenspeichern 82 und 84 gespeichert, wobei das Ergebnis
als eine nicht normalisierte Gleitkomma-Summe erscheint.
Die soweit beschriebene Rechnung der Gleitkomma-Addition
wird während einer Taktperiode durchgeführt und die Teilergebnisse
werden abgespeichert und in der nächsten Taktperiode
wieder verwendet. Nachdem die Ergebnisse in den Zwischenspeichern 82
und 84 abgespeichert sind, kann die oben beschriebene Schaltung
dazu verwendet werden, um eine nachfolgende Rechnung
einer Gleitkomma-Addition während der nächsten Taktperiode
durchzuführen. Es ist zu erkennen, daß der Teil des Gleitkomma-
Addierwerks oberhalb der gestrichelten Linien, also
über den Zwischenspeichern 82 und 84 der ersten Stufe des Gleitkomma-
Addierwerks entspricht, während der Teil der Schaltung,
der unterhalb der gestrichelten Linien angeordnet ist, der
zweiten Stufe entspricht.
Komplementäre und nicht komplementäre Ausgänge des Zwischenspeichers 84
sind mit einer Addierstufe in Form eines Multiplexers 86 gekoppelt und werden durch ein Vorzeichen-
Bit vom Zwischenspeicher 84 auf eine
später beschriebene Art gesteuert. Das Ausgangssignal der
Addierstufe 86 wird einer Addierstufe in Form eines Prioritätscodierers 88 zugeführt.
Diese Addierstufe 88 bestimmt das erste empfangene Signal mit niedrigem Pegel,
um ein Ausgangssignal zu erzeugen, das der
Anzahl der Signale mit hohem Pegel entspricht, bevor ein
Signal mit niedrigem Pegel ankommt. Diese Zahl zeigt an, wie
weit eine nicht normalisierte Mantisse verschoben werden
muß, um die erste Null zu schieben, bis MSB minus eins
niedrigpegelig ist, wobei MSB das höchstwertige
Bit bezeichnet. Das Ausgangssignal der
Addierstufe 88 wird einer Addierstufe in Form einer nach links verschobener Stufe 90 zugeführt, die
auch ein nicht komplementiertes Ausgangssignal des Zwischenspeichers
84 erhält, um das Ausgangssignal um die notwendige Anzahl
von Stellen nach links zu schieben, um dieses zu normalisieren.
Beim Schieben die Differenz der
fünf Stellen, die durch die Addierstufe 80 zugefügt wurde, mit
in Betracht gezogen wird. Das Ausgangssignal der
Addierstufe 90 wird einer Addierstufe in Form einer rundenden ALU 92 zugeführt.
Das Ausgangssignal der Addierstufe 88 wird einer Addierstufe in Form
einer ALU 94 zugeführt. Diese erhält auch das Ausgangssignal
des Zwischenspeichers 82 und zieht das Ausgangssignal der
Addierstufe 88 davon ab, d. h. die Anzahl der Stellen,
um die die Mantisse nach links verschoben ist. Der Exponent
kann dabei korrigiert werden. Das nach links Schieben und
die Korrektur des Exponenten werden als normalisieren bezeichnet.
Das Vorzeichen-Bit vom Zwischenspeicher 84 wird der Addierstufe
86 zugeführt, um für den Fall, daß die Zahl im Zwischenspeicher 84
in Form des Zweier-Komplements vorliegt, den Betrieb
der Addierstufe 88 sicher zustellen. Da die Addierstufe 88
nur in der Lage ist, ein
Signal mit niedrigem Pegel zu erkennen, wählt die Addierstufe 86, wenn ein Vorzeichen-
Bit auf einer Leitung 96 gesetzt ist, dann die komplementären
oder -Ausgangssignale des Zwischenspeichers 84 aus, um sie der
Addierstufe 88 zuzuführen.
Das Ausgangssignal der Addierstufe 90 wird der
rundenden Addierstufe 92 zugeführt, wie dies zuvor bereits angedeutet
wurde. Wenn der Rest der Rechnung, damit sind jene
Bits gemeint, die stellenmäßig hinter jenen Bits liegen,
die das Gerät verarbeiten kann, größer als das 0,5fache des geringstwertigen Bit
LSB ist, dann rundet die Addierstufe 92 oder erhöht sie
das geringstwertige Bit in der Mantisse, das
um eins zu niedrig ist. Wenn der Rest kleiner oder gleich
0,5 ist, dann findet keine Rundung statt. Diese Methode
der Rundung tendiert dazu, Fehler zu erzeugen, die gegen
Null gehen. Wenn die Rundung einen Übertrag für das
höchstwertige Bit erzeugt, dann wird das Ergebnis
um eine Stelle nach rechts geschoben und der Übertrag
wird über eine Leitung 98 in die Addierstufe 94 geführt, um
zu dem Exponenten eine Eins zu addieren.
Die Normalisierung und Rundung findet in der Stufe 2 des
Addierwerks statt, während weitere Eingangssignale der Stufe 1
des Addierwerks zugeführt werden.
Es kann dabei während jeder Taktperiode ein Addierwerk-
Ausgangssignal erzeugt werden. Dadurch wird die Geschwindigkeit
des Betriebs des parallel arbeitenden Datenverarbeitungsgeräts
bei der Erzeugung einer Gleitkomma-Rechenoperation
erhöht.
Fig. 4 zeigt das Gleitkomma-Multiplizierwerk gemäß den Fig.
1 und 2. Eine Multiplizierstufe in Form eines Exponentenregisters 100 (M 1) ist an einen FM- und
einenM 1 BS-Exponenten-Verbindungsbus mit Eingängen A und B
angeschlossen, während eine Multiplizierstufe in Form eines Exponenten-Registers 102 (M 2) an
einen FA- und einen M 2 BS-Exponenten-Verbindungsbus an Eingängen
A und B angeschlossen ist. Ähnlich erhalten eine Multiplizierstufe in Form eines
Registers 104 (M 1) und eine Multiplizierstufe in Form eines Mantissen-
Registers 106 (M 2) zugehörige
Mantisseneingangssignale von den zugehörigen Verbindungsbussen,
wie das in Fig. 2 gezeigt ist. Die
Multiplizierstufe 104 ist dafür vorgesehen, den Multiplikanden der Mantisse
aufzunehmen, während die Multiplizierstufe 106 dazu vorgesehen ist,
den Multiplikator der Mantisse aufzunehmen.
Der Ausgang der Multiplizierstufe 100 wird einer addierenden Multiplizierstufe 108 als
erstes Eingangssignal zugeführt. Ein zweites Eingangssignal
erhält die Multiplizierstufe 108 von der Multiplizierstufe 102. Die Multiplizierstufe
108 addiert die zwei Exponenten zum Zweck der Multiplikation
und addiert auch eine Eins als Differenz, die zu einem
späteren Zeitpunkt zum Zwecke der Normalisierung durch
Verschieben in einer Richtung wieder kompensiert wird.
Darüber hinaus wird das höchstwertige Bit der Multiplizierstufe
102 mittels einer Multiplizierstufe eines Inverters 110 invertiert und der
Multiplizierstufe 108 zugeführt, um den Wert 512 von
dem M 2-Eingangssignal abzuziehen. Die Exponenten werden in
binärer Form dargestellt. Der Exponent
ist eine Zahl mit 10 Bits, die im Zweier-Komponent dargestellt
ist. Das höchstwertige Bit oder das Vorzeichen
Bit ist invertiert, um die 512
hinzuzuaddieren. Der Inverter 110 kompensiert eine Differenz
in Höhe von 512 des einen Exponenten, so daß
die zwei Exponenten addiert werden können und dabei eine
Summe erzeugt wird, welche nur eine hinzuaddierte Differenz
von 512 aufweist. Diese Elemente vervollständigen die
Stufe 1.
Das Ausgangssignal der Multiplizierstufe 108 ist mit einem Multiplizier-Zwischenspeicher 112
gekoppelt. Dieser stellt den Exponenten-Teil von
Stufe 2 des Gleitkamma-Multiplizierwerkes
dar. So werden, während ein Ergebnis einer vorgegebenen
Multiplikation im Multiplizier-Zwischenspeicher 112 abgespeichert wird,
weitere Eingangssignale während der nachfolgenden Taktperiode
den Multiplizierstufen 100 und 102 zugeführt. Während
der nachfolgenden Taktperiode wird die Information
aus dem Multiplizier-Zwischenspeicher 112 in einem Multiplizier-Zwischenspeicher 113 abgespeichert. Dieser
bildet einen Teil der dritten Stufe des Multiplizierwerks
und sieht einen Ausgang für eine addierende Multiplizierstufe 114
vor. Diese dient für die Durchführung einer
nachfolgend beschriebenen Normalisierungsfunktion. Der
Exponenten-Ausgang des Multiplzierwerks ist mit der Bezugsziffer
116 bezeichnet.
Ein Ausgangssignal einer Multiplizierstufe in Form eines Registers 114 wird
den Multiplizierstufen 118 und 120 in dem Mantissenteil
des Multiplizierwerks zugeführt, während ein Ausgang der
Multiplizierstufe 106 einem zweiten Eingang der Multiplizierstufen
118 und 120 zugeführt wird. Diese Multiplizierstufen,
die genauer in Verbindung mit Fig. 5 beschrieben
werden, sind jeweils in zwei Teile geteilt, so
daß ein Teil einer Multiplikation während der nachfolgenden
Taktperiode durchgeführt wird. So wird die Durchführung
einer Multiplikation der Multiplizierstufe 118 in einem
Stufenteil 118 a vervollständigt, während die Durchführung
einer Multiplikation der Multiplizierstufe 120 in einem
Stufenteil 120 a vervollständigt wird, um eine
Mantissen-Rechnung durchzuführen. Zwischenergebnisse
werden in Multiplizier-Zwischenspeichern 122 und 124 abgespeichert. Diese
bilden einen Teil der Stufe 2 des Gleitkomma-
Multiplizierwerks, damit weitere Eingangssignale über die
Multiplizierstufen 104 und 106 während der nachfolgenden Taktperiode
in Stufe 1 des Multiplizierwerks eingebracht werden können.
Das Mantissenteil des Multiplizierwerks ist auch zwischen
rechts und links in Abschnitte aufgeteilt. Die Abschnitte
sind mit FMULA und FMULB bezeichnet, wobei
der FMULA-Abschnitt die Stufen 118, 122 und 118 a und der
FMULB-Abschnitt die Stufen 120, 124 und 120 a aufweist. Die Abschnitte
FMULA und FMULB multiplizieren 14 Bits des Multiplikators
mit 28 Bits des Multiplikanten. Die nachfolgende
Multiplikanten-Mantrisse wird von der Multiplizierstufe 104 für
die Multiplizierstufen 118 und 120 abgeleitet. Auch
die Multiplizierstufe 118 erhält 14 Bits von dem Multiplikator,
die verschieden von den Multiplikator-Bits sind,
welche der Multiplizierstufe 120 zugeführt wurden. Die
Multiplizierstufen erhalten alternierende Paare von Eingangs-
Bits; so erhält die Stufe 120 die Multiplikator-Bits
0, 1, 4, 5, 8, 9 usw., während die Stufe 118 die Multiplikator-
Bits 2, 3, 6, 7, 10, 11 usw. erhält, wobei diese Ziffern
die zugehörige Bit-Stelle des Multiplikanten angeben.
Die Teilergebnisse, die mit PPA und PPB bezeichnet sind,
und von den zugehörigen Multiplizierstufen 118 a und 120 b erhalten
werden, werden in einer addierenden Multiplizierstufe 126 addiert, um
den Mantissenteil des Produktes, das mit dem Multiplizier-Zwischenspeicher 128 gekoppelt
ist, zu erhalten. Die Multiplizierstufe 126 vervollständigt
den Mantissenteil der Stufe 2 des Multiplizierwerks,
während der Zwischenspeicher 128 eine Element der dritten
Stufe bildet.
Man kann damit rechnen, daß die Multiplikation der Mantissen
ein Produkt mit einer größeren Anzahl von Bits erzeugt, als
in dem Multiplikator oder in dem Multiplikanten vorhanden
waren. Die Bits niederer Ordnung werden evtl. ausgeschieden,
aber in Bezug darauf betrachtet, ob Überträge die Bits
höherer Ordnung berühren können und in Bezug auf die vorangegangen
Betrachtungen über Rundung. Die Multiplikation
innerhalb der Multiplikationsstufen 118 und 120 ist hinsichtlich der Bits
niedrigerer Ordnung, d. h.
Bits mit gegenüber den 28 Bits des beibehaltenen Mantissen-
Produkts niederer Ordnung. Die Teilergebnisse
niederer Ordnung werden Eingängen A und B einer Multiplizierstufe
in Form einer ALU 130 zugeführt, wobei die Eingangssignale addiert werden
und in dem Fall, daß die Summe der Teilprodukte der Multiplizierstufen
118 und 120 einen Überzug erzeugt, wird solch ein Übertrag
C auf einen Multiplizier-Zwischenspeicher 132 in Stufe 2 des Multiplizierwerk-Mantissenteils
gekoppelt. Die Übertragsinformation wird dann über
Verbindungen 134 der Multiplizierstufe 126 zugeführt, wobei der
Übertrag zu der in diesem erzeugten Summe der Teilprodukte
von Ziffern höherer Ordnung hinzuaddiert wird.
Darüber hinaus wird in der Multiplizierstufe 130 eine Voruntersuchung
für die Rundung durchgeführt, um zu bestimmen, ob die Bits,
die ausgeschieden werden, größer als das 0,5fache der geringstwertigen Bits sind.
In diesem Fall wird auch ein Rundungskennzeichen im Zwischenspeicher
132 abgespeichert und über ein "Oder"-Gatter 136 zusammen mit
der aus der Multiplizierstufe 126 erhaltenen Information der Bits
niederer Ordnung an einem Multiplizier-Zwischenspeicher 128 gekoppelt.
Ein nach links verschiebende Multiplizierstufe 138 schiebt das Ausgangssignal des Zwischenspeichers
128, um die erste "Null" so lange zu schieben, bis MSB-1 Null
ist. Die Anzahl der Schiebevorgänge wird der Multiplizierstufe 114
zugeführt, um den Exponenten zu korrigieren. Das Ausgangssignal
der Multiplizierstufe 138 wird einer Multiplizierstufe in Form einer ALU 114
zugeführt und, falls der Rest der Rechnung nach dem Schieben
größer als 0,5 ist, rundet diese oder erhöht das beibehaltende
geringstwertige Bit in der Mantisse um Eins.
Wenn der Rest kleiner oder gleich 0,5 ist, findet
keine Rundung statt. Für den Fall, daß die Rundung stattfindet,
kann ein Übertragsignal C für die Multiplizierstufe 114 geliefert
werden, um den Exponenten weiter zu korriergieren.
Wie zuvor beschrieben, werden während jeder Taktperiode
das Ergebnis der Exponenten-Multiplikation der Multiplizierstufe
116 und das Ergebnis der Mantissen-Multiplikation an einem
Ausgang 142 erzeugt, obwohl drei Taktperioden benötigt werden,
um eine vorgegebene Multiplikation durchzuführen. Dies
erhöht
die Betriebsgeschwindigkeit des parallel arbeitenden Datenverarbeitungsgeräts
bei der Erzeugung einer Gleitkomma-
Rechnung. Die Anordnung von Zwischenspeichern für das Halten
vorangegangenen Zwischenergebnisse erleichtert
auch die Zeitsteuerung und die Bedienung des Datenverarbeitungsgeräts.
Eine Multiplizierstufenkombination wird genauer in Fig. 5
dargestellt. Dies ist so zu verstehen,
daß sie entweder der Multiplizierstufen-Kombination 118-118 A
oder der Multiplizierstufen-Kombination 120-120 A nach Fig. 4 entspricht. Ein
oberer Teil 144 entspricht entweder der Multiplizierstufe
118 oder 120 in Stufe 1 des Multipliziererwerkes, während
ein unterer Teil 146 entweder der Multiplizierstufe 118 A oder
120 A in Stufe 2 des Multiplizierwerkes entspricht. Die Eingabe-Multiplizierstufe
104 für den Multiplikanten entspricht der Multiplizierstufe 104
in Fig. 4 und die Eingabe-Multiplizierstufe 106 für den Multiplikator
entspricht der Multiplizierstufe 106 in Fig. 4. Die Multiplizierstufen-
Kombination wird aus einer Vielzahl von Halbleiter-Chips 148 gebildet,
wobei jeder Halbleiter-Chip vier Bit des Multiplikanten
mit zwei Bit des Multiplikators entsprechend dem
Booth′schen Algorithmus im Zweier-Komplement digital multipliziert.
Das höchstwertige Bit der Multiplizierstufe
104 kann so betrachtet werden, daß es an ihrer linksseitigen Ausgangsleitung
anliegt, während das
höchstwertige Bit der Multiplizierstufe 106 so betrachtet
werden kann, daß es an ihrer rechtsseitigen
Ausgangsleitung liegt. Ein geeigneter Halbleiter-
Chip ist der Typ Am25S05 der Fa. Advanced Micro
Devices, Inc., Sunnyvale, California.
Jedes der Chips erhält vier Bits des Multiplikanten-Eingangssignals
über eine Leitung 150 und zwei Bits des Multiplikator-
Eingangssignals über eine Leitung 152. Mit Ausnahme
der Chips in der obersten Reihe ist auch ein Spalten-
Eingangssignal 154 mit jedem Chip gekoppelt. Ferner ist
mit jedem Chip ein Übertrag-Eingangssignal 158 von dem
Chip niederer Ordnung in der gleichen oder vorangegangenen
Zeile her gekoppelt, wenn sich der Chip nicht
in der obersten Zeile befindet, in welcher, wie
bekannt, der Übertrag von der
Multiplizier-Eingangsstufe kommt. Jeder Chip
sieht auch ein Summen-Ausgangssignal 156 als Spalten-
Eingang für den nächst niederen Chip vor und ein Übertrags-
Ausgangssignal 160 für den Chip nächst höherer
Ordnung, in einer gleichen oder nachfolgenden Zeile.
Jede Zeile wird mit sieben Chips gegenüber
den Chips in der vorhergehenden Zeile um eine Spaltenstellung
nach links geschoben, wobei jede nachfolgende
Zeile als Eingangssignale ein Paar von Multiplikator-Bits
höherer Ordnung erhält.
Die Multiplikation wird in einem Bereich 164, wo der obere Teil
144 der Multiplizierstufen-Kombination abgeschlossen ist, unterbrochen
und die Teilergebnisse werden zur zeitlichen Zwischenspeicherung
einem Zwischenspeicher- und Addierwerk 162 zugeführt.
Dies entspricht den Zwischenspeichern 122
oder 124 in Fig. 4, die das Ausgangssignal des oberen Teils
ebenso wie die Multiplizierstufe 130 und der Zwischenspeicher 132 erhält, wobei jedoch
die Multiplizierstufe 130 zusätzliche Eingangssignale
von dem vorherigen Teil erhält. Die diagonale
Unterbrechung im oberen Teil im Bereich 164 wird durch die benötigte
Laufzeit der Multiplizierer-Chips im
oberen Teil 144 bestimmt, so daß die benötigten
Signale durch alle Chips und Verbindungen im Teil 144
gelangen können und stabile Ausgangssignale für das Zwischenspeicher-
und Addierwerk 162 während einer vorgegebenen Taktperiode von
167 Nanosekunden entstehen. Geht man von dem ersten
Chip in der oberen rechten Ecke aus,
so sind maximal 7 Chips auf einem beliebigen Weg von
Übertrags- und Summen-Wegen zwischen oberen entfernten Chip
und einem beliebigen, von dem oberen entfernten Chip
entlang der Unterbrechung im Bereich 164 vorgesehen.
Als Eingangssignal für das Zwischenspeicher- und Addierwerk 162 sind die Spalten-
Summen und Teilsummen, wie sie im oberen Teil 144
berechnet sind, wie auch der vollständige Multiplikant und
die sechs Bits höherer Ordnung des Multiplikators, die mit
der Bezugsziffer 168 gekennzeichnet sind, vorgesehen.
Diese Zwischenwerte werden zwischengespeichert und über Leitungen 166
dem unteren Teil 146 zugeführt,
wo die Multiplikation während der nachfolgenden Taktperiode
vollendet wird und währenddessen andere Werte von
Multiplikanten und Multiplikator dem oberen Teil 144 zugeführt
werden. So wird während jeder Taktperiode ein
Multiplikations-Ergebnis abgegeben, obwohl eine Multiplikation zu ihrer Beendigung
mehrere Taktperioden benötigt.
Das erfindungsgemäße Datenverarbeitungsgerät ist insbesondere bei der Ausführung
einer digitalen Zweier-Komplement Gleitkomma-Multiplikation
in einer kurzen Zeitperiode günstig, ohne daß dabei
eine übermäßige komplexe Schaltung
benötigt wird.
Fig. 6 zeigt das Speicherregister 20 und das Speicherregister 22
in einer genauern Darstellung. Sie
weist einen Multiplexer 170 bzw. 170′ auf, um zwischen den
mit DPBS, FM und FA bezeichneten Verbindungsbussen auszuwählen.
Das Ausgangssignal des Multiplexers ist mit
einem Eingangsregister 172, 172′ gekoppelt, das wiederum
einem Kellerspeicherregister 174 bzw. 174′ oder
direkt einem Ausgangsregister 176 bzw. 176′ ein Ausgangssignal zuführt. Die Kellerspeicherregister
174, 174′, die durch
eine Adresse 178, 178′ angesteuert werden, führen
auch den Ausgangsregistern 176, 176′ Signale zu. Der
Inhalt der Ausgangsregister 176 und 176′ steht als
Eingangssignal für Multiplexer 180, 182, 184, 186 und
188 zur Verfügung, die diesbezüglich an Verbindungsbusse
M 1 BS, M 2 BS, A 1 BS, A 2 BS und DPBS angeschlossen sind.
Die durch schnelle Zugriff- und Abruf-Zeiten gekennzeichneten
Kellerspeicherregister werden in ersten Linie als Akkumulatoren
verwendet. Sie verhalten sich wie ein aus
Akkumulatoren gebildeter Block, wobei jeder der Blöcke 174
und 174′ eine Reihe von 32 Registern aufweist. Die
verhalten sich wie Akkumulatoren in der Art, daß
während einer Taktperiode mit einem Befehl die Information
eingeschrieben wird und mit dem nächsten Befehl
während der nächsten Taktperiode die Information
wieder gelesen werden kann. Ohne Schwierigkeiten kann mit
einem Befehl Information aus dem Kellerspeicherregister ein- und
ausgelesen werden, wobei das so zu verstehen ist, daß der
herausgelesene Wert der zuvor abgespeicherte, für den nächsten
Befehl vorgesehene Wert ist. Diese Flexibilität erhöht
die Geschwindigkeit von gleichzeitigen Rechnungen. Die zwei
Häften des Kellerspeicherregisters, d. h. das X-Kellerspeicherregister und das
Y-Kellerspeicherregister können gleichzeitig und unabhängig voneinander
verwendet werden.
Wie später aus dem Befehlssatz zu sehen ist, wird ein
Register des Kellerspeicherregisters mittels dreier Adressen-Bits angewählt
(vgl. Fig. 10). Zusätzlich wird eine Basis-Adresse
verwendet. Diese mit DPA bezeichnete Adresse wird in der
fünf Bit langen Adreßschaltung 38 abgespeichert (vgl. Fig. 7).
Die Adresse DPA kann mit einem beliebigen Befehl erhöht oder erniedrigt
werden, aber die Drei-Bit-Adresse, XR, YR, XW, oder
AW (die X- und Y-Schreib- und Leseindizes) werden
zum Ausführung eines beliebigen Befehls dem Wert der Adresse DPA
hinzuaddiert. So wählt die Adresse DPA eine Serie von acht Registern
sowohl in dem X- als auch an dem Y- Kellerspeicherregister
aus. Durch Erhöhen oder Erniedrigen der Adresse DPA kann alternativ
jedes Register als Kellerspeicherregister benützt werden.
Die Zeitsteuerung von Schreib-Indizes oder Adressen wird
mit Rücksicht auf die Lese-Indizes oder Adressen gewählt.
Das Einschreiben in ein Speicherregister wird genau am Ende
eines Befehls vorgenommen, während das Laden in einen
Eingangsspeicher 172 oder 172′ unter Verwendung eines schnellen
Registers mit einem schmalen (Zeit-) Fenster vorgenommen wird.
Die Information wird nicht wirklich in das spezifizierte
Kellerspeicherregister innerhalb des Blocks 178 oder 178′ eingeschrieben,
bis die zweite Hälfte des nächsten Befehls
vorliegt. Falls der Programmierer wünscht, die gerade eingeschriebene
Information wieder herauszulesen, werden die Eingangsregister
172 oder 172′ direkt mit dem Ausgangsregister 176 oder
176′ verbunden und über den geeigneten Multiplexer zu dem
gewünschten Zielort geleitet. Das Lesen wird während der
ersten Häfte eines Befehls oder einer Taktperiode ausgeführt.
Ein Teil einer Adreß-Logik für diesen Zweck
ist in Fig. 7 dargestellt.
Gemäß Fig. 7 bilden Zwischenspeicher 192,
194, 196, 198 einen Teil des Befehlsregisters 16
(vgl. Fig. 1 und 2). Die Zwischenspeicher 196 und 198 erhalten direkt
Teile XW und YW des Befehls, während die Zwischenspeicher 192 und
194 die Signale XR und YR über Additionsanordnungen 200 und 202
erhalten. Adreßschaltung 38 wird über einen
Multiplexer 204 entweder mit einer Anfangsadresse (vom Adreßregister
26, Fig. 8) geladen oder wird erneut mit der vorherigen
Adresse DPA über den Ausgang einer Additionsanordnung 206 geladen, wobei
die vorherige Adresse DPA entsprechend der an einem Eingang 208 vorliegenden
Befehlen erhöht oder erniedrigt werden kann.
Die laufende Adresse DPA wird am Ausgang des Multiplexers
204 vorgesehen und dem A-Eingang der Additionsanordnungen 200 und 202
zugeführt, so daß sie zu XR und YR, wie zuvor angezeigt,
addiert werden kann. Das Ausgangssignal des Zwischenspeichers 192
wird direkt einem Eingang des während des ersten Teiles
der Taktperiode dem X-Zwischenspeicher die Adresse 178 zuführenden
Multiplexers zugeführt. Ähnlich wird der Ausgang des Puffers
194 als Eingangssignal für den Multiplexer 212 verwendet, um
die Adresse dem Y-Kellerspeicherregister zuzuführen. Die XW und YW
Schreib-Informationen werden jedoch über Zwischenspeicher 196 und 198
mit Additionsanordnungen 214 und 216 entsprechend gekoppelt, wobei
XW und YW zu der Adresse DPA hinzuaddiert werden und dann die Ausgangssignale
Zwischenspeichern 218 und 220 zugeführt
werden. Das Einfügen von zusätzlichen Zwischenspeichern in den
XW und YW-Wegen verzögert das Anlegen der Schreibadressen,
die dann während der nächsten Hälfte der nächsten Taktperiode
angelegt werden. Koinzidenz feststellende Koinzidenzstufen
222 und 224 untersuchen, ob für das gleiche Register,
während der nächsten Taktperiode nach einem Schreibbefehl
ein Lesebefehl vorliegt. Im Fall einer Übereinstimmung
wird der Ausgang eines Kellerspeicherregisters 174 oder 174′
gesperrt und der Inhalt eines Eingagnsregisters 172 wird in das
Ausgangsregister 176 geschoben.
Fig. 8 zeigt im einzelnen die Art der Adressierung
im erfindungsgemäßen Datenverarbeitungsgerät.
Die Adressierung erfolgt parallel
zum Rechenvorgang
so daß Steuerfunktionen schnell durchführbar sind.
Die Adressen
werden in der Adreßschaltung 42 oder
40 gespeichert. Da das
Ausgangssignal einem Speicherregister
zugeführt wird, bestimmt es, auf was im
nächsten Speicherzyklus zugegriffen wird.
Es kann beispielsweise der Inhalt eines ausgewählten Registers
der 16 Adreßregister 26 in einem Befehl erhöht oder erniedrigt
werden, wobei das Ausgangssignal
mit der arithmetischen Adreßeinheit 32 A zur Addition einer
festen Zahl oder zur Subtraktion einer festen Zahl gekoppelt
ist. Die Ergebnisse werden über eine Schiebestufe 32 B einer Bit-Umkehrschaltung
35 A, 35 B mit
dem mit SPFN bezeichneten Verbindungsbus gekoppelt und einem
einzelnen "Ziel" Register innerhalb des Adreßregisters 26
zugeführt.
Alternativ kann eine Rechenoperation mit dem Inhalt von
"Quellen"-Registern innerhalb des Adreßregisters 26 durchgeführt
werden, indem ein mit S bezeichnetes Ausgangssignal
einem A-Eingang eines Multiplexers 226 zugeführt wird und von
dort einem B-Eingang der eine Stufe einer arithmetischen Adreßeinheit 32 A, 32 B bildenden ALU 32 A zugeführt wird, während ein
"Ziel"-Ausgangssignal des Adreßregisters in die ALU 32 A
eingegeben wird. Die ALU 32 A führt dann eine Operation
mit ganzzahliger Information der "Quelle" und des
"Ziels" durch und das Ergebnis wird einem Ziel-Register
über den Verbindungsbus PSFN zugeführt. Der Registerinhalt
des Adressregisters kann ausgelesen, zu einer Größe addiert
und mit gleichem Befehl wieder
eingeschrieben werden. Rechenoperationen
sind dabei ganzzahlige Rechenoperationen
mit einem Umfang von 16 Bit.
Die Register innerhalb des S-Weges werden auch häufig
als Zähler verwendet, um den Fortgang eines besonderen
Algorithmus zu überwachen, wobei ein Ausgangssignal getestet
werden kann, ob etwa eine bestimmte Anzahl von Operationen
bereits durchgeführt wurde.
Die Adressierung ist bei
schnellen Fourier-Transformationen
nützlich. In solch einem Fall wird eine
Grundadresse (sie zeigt den Datenanfang an) zu einem Betrag,
dessen Bits umgekehrt wurden, hinzuaddiert
und das Ergebnis wird in eine bestimmte
Speicheradresse dynamisch geladen. Solch eine
Operation kann während eines Befehls
durchgeführt werden. Bei einer Version des Algorithmus
der schnellen Fourier-Transformation greift die Adresse
auf die Daten des Hautspeichers in umgekehrter Bitfolge
zu, wobei im Hautspeicher die Daten in ursprünglicher Form verbleiben.
Die Bitumkehr erfolgt in einer Bit-Umkehrstufe 35 A
der Bitumkehrschaltung 35 A, 35 B.
Die Bit-Umkehrstufe 35 A erhält
ein Ausgangssignal S von einem "Quellen"-
Register und dreht dieses Signal Bit für Bit um. Die
Stufe weist kreuzförmige Verbindungen auf, so daß
das höchstwertige Bit zum geringstwertigen
Bit, das geringstwertige
Bit zum höchstwertigen Bit wird usw., um eine
komplette Umkehr in der Stellenfolge zu erzeugen.
Das Ausgangssignal der Bit-Umkehrstufe wird dann
der Schiebestufe 35 B zugeführt, so daß
die Bit-Umkehr im Endeffekt in Bezug auf eine vorgegebene
Stelle durchgeführt werden kann. Das Ausgangssignal der
Stufe 35 B wird einem B-Eingang
des Multiplexers 226 zugeführt, so daß ein
umgekehrtes oder nicht umgekehrtes Eingangssignal für einen
B-Eingang der ALU 32 A ausgewählt werden kann. Die
dann von dem Speicher zugeführten Daten werden im Endeffekt
gemäß Adressierung wieder geordnet.
Das Ausgangssignal der ALU 32 A kann auch mittels der Schiebestufe
32 B geschoben werden, und an
den Eingang des Multiplexers 228 wie auch mit dem SPEN-
Verbindungsbus gekoppelt werden.
Der Multiplexer 228 wählt entweder das Eingangssignal
als informationsquelle der Speicheradresse oder alternativ
ein Eingangssignal vom Verbindungsbus DPBS. Am Anfang
kann Information dem Adreßregister 26 über den Verbindungsbus
DPBS zugeführt werden.
Der Programm-Adreßlogik ist in Fig. 9 dargestellt
und ermöglicht die Durchführung von Adressierungen
parallel
zu Programmverzweigungen.
Der Programmspeicher 14 kann über
den DPBS-Verbindungsbus geladen werden und umgekehrt
seine gespeicherten Befehle dem Befehlsregister
16 zuführen.
Das Befehlsregister steuert z. B. die Eingangssignale
des Addierwerks, des Multiplizierwerks, des
Datenspeichers und des Speicherregisters, um ausgewählte Datenwege
in Übereinstimmung mit dem Befehl auszuwählen.
Individuelle Leitungen vom Befehlsregister etwa zu den
verschiedenen Multiplexern sind in den
Zeichnungen aus Übersichtlichkeitsgründen weggelassen.
Die Durchführung
des Befehlssatzes ist zu verstehen
nach Fig. 10.
Der Programmspeicher 14 wird über
eine Leitung 230 von einem Multiplexer
232 adressiert. Zusätzlich ist der Ausgang des Multiplexers
über eine Additionsstufe 234 mit einem Zwischenspeicher 236, über eine
Addierstufe 237 mit einem Zwischenspeicher 240 und über eine Eins
addierende Additionsstufe 242 mit einem Zwischenspeicher 244 gekoppelt,
wobei die Ausgangssignale der Zwischenspeicher dem Multiplexer
232 als getrennte Eingangssignale zugeführt werden.
Ferner ist das Ausgangssignal des Multiplexers direkt mit
einem Zwischenspeicher 246 verbunden, der dem Multiplexer 232 ein weiteres Eingangssignal
zuführt.
Vorbestimmte Teile von ausgewählten Adressen des Programmspeichers
14 sind mit den Additionsstufen 234 und 237
gekoppelt, wobei deren Werte zu der Programmadresse
hinzuaddiert werden. Ein weiteres Ausgangssignal des Programmspeichers
wird direkt dem Zwischenspeicher 238 zugeführt, dessen
Ausgangssignal ein zusätzliches Eingangsignal für den
Multiplexer 232 bildet. Ein weiterer Eingang 248 des Multiplexers
232
wird von der Schnittstelle 10 zugeführt.
Während jedes Befehlszyklus erzeugt die in Fig. 9
dargestellte Schaltung
Befehlsadressen, um sie dem Programmspeicher
14 zuzuführen. Der normale Ablauf von Ereignissen
geschieht dadurch, daß die Befehle im Programmspeicher
14 nacheinander abgefragt werden und die Befehle aufeinanderfolgend
dem Befehlsregister 16 zugeführt werden.
Die momentane Programmadresse wird
der Additionsstufe 242 und dem
Zwischenspeicher 244 zugeführt. Dessen Inhalt wird dann
durch den Multiplexer 232 ausgewählt, um dem Progammspeicher während
der nächsten Taktperiode als nächste Adresse
zugeführt zu werden. Die dargestellte
Schaltung erlaubt jedoch die Ausführung von bedingten
Programmverzweigungen und Sprüngen ohne Zeitverlust, da
die Programm-Verzweigungsadresse oder die Sprungadresse auch
erzeugt wird und während eines Befehlszyklus zwischengespeichert
wird, um sie ggf. durch den Multiplexer 232 anzuwählen.
Eine Programmverzweigung
eines momentanen Befehls (Bits 27-31 in Fig. 10) wird
beispielsweise der momentanen Adresse in der Additionsstufe 238
hinzuaddiert und das Ergebnis im Zwischenspeicher 240 abgespeichert,
falls die Verzweigungsbedingung zutrifft. Falls die Bedingung
zutrifft, erhält das Befehlsregister 16 ein
(nicht gezeigtes) Eingangssignal von der Schaltung, deren
Ausgang geprüft wurde. Das Eingangssignal bewirkt, daß der
Zwischenspeicher 250 einen Code abspeichert. Der Code bewirkt, daß
der Multiplexer 232 das Ausgangssignal des Zwischenspeichers 240
als die nächste Adresse für den Programmspeicher
auswählt.
Die niederen 12 Bits des momentanen Befehls (Bits
52-63 in Fig. 10) werden als Eingangssignale für den Zwischenspeicher
238 vorgesehen und als ein Eingangssignal der
Additionstufe 234 in Verbindung mit der momentanen Programm-
Adresse zugeführt. Wenn der momentane Befehl einen unbedingten
Sprung beinhaltet, dann führt das Befehlsregister
16 dem Zwischenspeicher 250 einen Code zu. Der Code bedingt,
daß der Multiplexer 232 das Ausgangssignal des Zwischenspeichers
238 als nächste Programmadresse wählt. Wenn der
Befehl einen bedingten Sprung enthält, dann führt das
Befehlsregister 16 dem Zwischenspeicher 250 einen Code zu, der
den Ausgang des Zwischenspeichers 236 als Programmadresse
anwählt. Diese Programmadresse besteht aus der
Summe der vorangegangenen Programmadresse und der
12 Bits niederer Ordnung des momentanen Befehls aus dem
Programmspeicher 14. Der Zwischenspeicher 246 erhält die
momentane Programmadresse und hält sie für eine
mögliche Auswahl durch den Multiplexer 232 bereit. Die
Wiederwahl der gleichen Adresse wird für die Fehlersuche
verwendet.
Die parallele Erzeugung von
Adressen erhöht
die Geschwindigkeit des Datenverarbeitungsgerätes.
Der Parallelbetrieb kann periodisch
fortgesetzt werden, ohne daß eine Entscheidung über
eine Programmverzweigung abgewartet werden muß.
Fig. 10 zeigt den Satz von 64 Bits, der zur Programmierung
des dargestellten Datenverarbeitungsgeräts verwendet wird.
Dieser umfassende Befehlssatz erleichtert schnelle Berechnungen,
indem er die Anweisungen während jedes Zyklus
des Datenverarbeitungsgeräts ausführt.
Das Addierwerk und das Multiplizierwerk
sind so ausgebildet,
daß die Ergebnisse einer vorgegebenen Multiplikation,
Addition oder ähnliche arithmetischen Rechenoperation
zur Fertigstellung mehr als eine Taktperiode
benötig, die Ergebnisse aber
während jeder Taktperiode verfügbar sind.
Fig. 10 zeigt den zum Laden in den Programmspeicher
passenden Befehlssatz, der aus 6 Gruppen besteht: der
Adreßregister-Gruppe, der Addierer-Gruppe, der Verzweigungs-Gruppe,
der Speicherregister-Gruppe, der Multiplizierer-Gruppe und der
Speichergruppe. Das mit Null bezeichnete Bit, das am
höchstwertige Bit des Befehlssatzes oder auch
das Null-Bit ist durch das Bezugszeichen B gekennzeichnet,
und gibt die Bit-Umkehrschaltung 35 frei.
Die Bezeichnung SOP steht für Adreßregister-Betrieb und steuert
das Adreßregister, um dessen ALU zur Durchführung einer arithmetischen
Rechenoperation wie einer Addition oder Subtraktion
zu bringen oder um eine einzelne Rechenoperation, wie eine
Erhöhung oder eine Erniedrigung eines Ziel-Registers durchzuführen.
SPS zeigt normalerweise die im Adreßregister ausgewählte
Adresse des Quellenregisters an, während SPD normalerweise
das vom Adreßregister ausgewählte Ziel-Register beinhaltet;
für den Fall eines einzelnen Rechen-Befehls wird das SPS-
Feld dazu benützt, die erwünschte Rechenoperation im
einzelnen zu kennzeichnen. SH steht für den Verschiebungs-
Wert, der der Schiebestufe 32 B zuzuführen ist.
Falls SOP Eins ist, d. h. 001, dann ist die Bedeutung der
SPS- und SPD-Felder als Spezial-Rechenoperation (SPEC ODER)
neu definiert. Zu den Spezial-Rechenoperationen gehört
auch ein Abruf für einen Sprung, auf welchem die Programmadreßlogik
nach Fig. 9 reagiert und wobei Bits
niederer Ordnung im Befehl, der mit "Wert"
bezeichnet ist, in diesem Fall die Anzahl der Plätze
für einen unbedingten oder bedingten Sprung angeben. SPEC
ODER können auch solche Rechenoperationen, wie das Laden
des Adreßregisters von der spezifizierten Quelle oder das Einschreiben
von Information in dem Programmspeicher
abrufen. Selbstverständlich können andere spezielle
erwünschte Rechenoperationen auch gesteuert werden.
Das Addierer-Gruppen-Feld weist den Gleitkomma-Addierbefehl
FADD auf, die eine Gleitkomma-Addition, eine
Gleitkomma-Substraktion oder eine logische
Rechenoperation mit Gleitkomma, wie eine UND-, bzw eine ODER-Äquivalenzfunktion
steuern kann. A 1 und A 2 bezeichnen die erwünschten Addierereingänge
unter den im Blockschaltbild in Fig. 1 dargestellten
Möglichkeiten.
Im FADD-Feld sind
die Bits 17 bis 22 als eine mit I/O bezeichnete
Eingangs-Ausgangsgruppe spezifiziert. Die
Eingangs-Ausgangsgruppe wird dann als ein Satz von Eingangs-
Ausgangsbefehlen verwendet und die gleiche Gruppe wird
verwendet, um z. B. einen Stop-Vorgang zu steuern.
Die Verzweigungsgruppe weist eine Verzweigungsbedingung in
den Bits 23 bis 26 und eine Verzweigungsanordnung in den
Bits 27 bis 31 auf. Die Verzweigungsbedingung kann einen
Wert oder ein Ausgangssignal zum Testen auswählen, um z. B.
das Ausgangssignal des Adreßregisters oder das Ausgangssignal
des Gleitkomma-Addierwerks oder den Wert des Verbindungsbus
oder eine Bedingung der Ein/Ausgabe-Gruppe zu testen.
Z. B. kann ein Sprung von der Bedingung abhängig gemacht
werden, daß das Ausgangssignal des Adreßregisters
auf dem Verbindungsbus SPFN Null ist. Alternativ kann die
Verzweigungsanordnung als "unbedingt" bezeichnet werden.
Die Anordnung, die eine Vorwärtsverschiebung bis zu 15
Stellen oder eine Rückwärtsverschiebung bis zu 16 Plätzen
aufweisen kann, ist als ein Eingangssignal für Additionsstufe
237 in Fig. 9 ausgebildet.
In der Speicherregister-Gruppe wählen DPX
und DPY unter den möglichen Eingangssignalen für
das X- und das Y-Speicherregister aus, wie das in Fig.
1 angedeutet ist. Ähnlich weist der Befehl DPBS Bits 36
bis 38 auf, die spezifizieren, daß der Eingang auf dem DPBS-
Verbindungsbus vorbereitet
wird, wie das in Fig. 2 dargestellt ist. Die Speicherregistergruppe
weist auch die Indizes XR, YR, XW und YW zum Lesen und Schreiben
der Speicherregister auf, die speziell dem Befehlsregister
auf die in Fig. 7 dargestellte Art zugeführt werden. Die Multiplizierergruppe
weist einen Gleitkomma-Multiplizierbefehl auf,
der mit FM bezeichnet ist und spezifiziert, ob
eine Gleitkomma-Multiplikationsrechnung vorgenommen
werden muß oder nicht, während M 1 und M 2 die mit ihnen zu
verkoppelnden Multiplikanden- und den Multiplikatoreingänge
gemäß Fig. 1 zur Multiplikation
auswählen.
In der Speichergruppe bezeichnet M 1 das Eingangssignal,
das dem Datenspeicher zugeführt wird, d. h. das Hauptspeichereingangssignal
für das Register M 1 unter den
möglichen Eingangssignalen, wie dies Fig. 1 zeigt, während
MA, DPA und TMA dementsprechend die Quelle für eine Adresse
zur Adreßschaltung 40, der Adreßschaltung
38 und der Adreßschaltung 42 aufweisen.
MA, DPA und TMA des Befehlssatzes können weiter spezifizieren,
ob die entsprechenden Adreßschaltungsinhalte
zu erhöhen oder zu erniedrigen sind.
Die umfassende Ausgestaltung des Befehlssatzes mit grundlegenden
voneinander unabhängigen Feldern zeigt, daß
eine Anzahl von im wesentlichen voneinander unabhängigen
Rechenvorgängen gleichzeitig ohne gegenseitige Beeinflussung
ausgeführt werden kann, wobei Zwischenergebnisse verfügbar sind,
um im nächsten Befehl und der nachfolgenden
Taktperiode mit diesen Zwischenergebnissen weiterzurechnen.
Die parallelen Wege gemäß Fig. 1 und 2
können unabhängig voneinander und ohne Störung bei der Ausführung
einer Gleitkomma-Rechenoperation benützt werden.
Die Verkopplung zwischen den Grundelementen des Datenverarbeitungsgeräts
kann dynamisch schnell geändert werden.
Claims (22)
1. Gleitkomma-Datenverarbeitungsgerät mit
mehreren Speicherregistern (20, 22, 24),
einem Gleitkomma-Addierwerk (34), das mit einem Paar von
Eingangssignalen arithmetischen Operationen
durchführt und einen Mantissenteil sowie einen
Exponententeil aufweist,
einem Gleitkomma-Multiplizierwerk (36), das zur
Multiplikation eines Paars von Eingangssignalen
dient und einen Mantissenteil sowie einen
Exponententeil aufweist, und mit
mehreren Verbindungsbussen (FA, FM, A 1 BS oder
A 2 BS, M 1 BS oder M 2 BS),
dadurch gekennzeichnet, daß
das Addierwerk (34) und das Multiplizierwerk (36)
voneinander unabhängig sind und die Verbindungsbusse
(FA, FM, A 1 BS oder A 2 BS, M 1 BS oder M 2 BS) wenigstens
vier getrennte gleichzeitig betriebsfähige Busse
umfassen, nämlich
einen ersten Eingangs/Mehrfachausgangs-Bus (FA), der an den Addierwerkausgang angekoppelt ist, um das Addierwerk-Ausgangssignal selektiv als Eingangssignal auf Speicherregister (20, 22, 24), das Multiplizierwerk (36) und das Addierwerk (34) zu koppeln,
einen zweiten Eingangs/Mehrfachausgangs-Bus (FM), der an den Multiplizierwerkausgang angekoppelt ist, um das Multiplizierwerk-Ausgangssignal selektiv als Eingangssignal auf die Speicherregister (20, 22, 24), das Multiplizierwerk (36) und das Addierwerk (34) zu koppeln,
einen dritten Mehrfacheingangs/Einausgangs-Bus (A 1 BS oder A 2 BS), der zur Ansteuerung an einen Eingang des Addierwerks (34) angekoppelt ist und Speicherregister-Ausgangssignale selektiv als Eingangssignale aufnimmt,
einen vierten Mehrfacheingangs/Einausgangs-Bus (M 1 BS oder M 2 BS), der zur Ansteuerung an einen Eingang des Multiplizierwerks (36) angekoppelt ist und Speicherregister-Ausgangssignale selektiv als Eingangssignale aufnimmt.
einen ersten Eingangs/Mehrfachausgangs-Bus (FA), der an den Addierwerkausgang angekoppelt ist, um das Addierwerk-Ausgangssignal selektiv als Eingangssignal auf Speicherregister (20, 22, 24), das Multiplizierwerk (36) und das Addierwerk (34) zu koppeln,
einen zweiten Eingangs/Mehrfachausgangs-Bus (FM), der an den Multiplizierwerkausgang angekoppelt ist, um das Multiplizierwerk-Ausgangssignal selektiv als Eingangssignal auf die Speicherregister (20, 22, 24), das Multiplizierwerk (36) und das Addierwerk (34) zu koppeln,
einen dritten Mehrfacheingangs/Einausgangs-Bus (A 1 BS oder A 2 BS), der zur Ansteuerung an einen Eingang des Addierwerks (34) angekoppelt ist und Speicherregister-Ausgangssignale selektiv als Eingangssignale aufnimmt,
einen vierten Mehrfacheingangs/Einausgangs-Bus (M 1 BS oder M 2 BS), der zur Ansteuerung an einen Eingang des Multiplizierwerks (36) angekoppelt ist und Speicherregister-Ausgangssignale selektiv als Eingangssignale aufnimmt.
2. Datenverarbeitungsgerät nach Anspruch 1,
dadurch gekennzeichnet, daß
das Gleitkomma-Addierwerk (34) Addier-Stufen (44, 46, . . . 78,
80 bzw. 86, 88, . . . 92, 94) mit zwischengeschalteten
Addier-Zwischenspeichern (82, 84) enthält, um einen ersten
Teil einer arithmetischen Gleitkomma-Operation während
einer ersten Taktperiode und einen verbleibenden
Teil der gleichen arithmetischen Gleitkomma-Operation
während einer nachfolgenden Taktperiode mit
Zwischenspeicherung der in der ersten Taktperiode
enthaltenen Teilergebnisse in den
Addier-Zwischenspeichern (82, 84) durchführbar zu machen,
und das Gleitkomma-Multiplizierwerk (36) Multiplizier-Stufen (100,
102, . . . 108, 118, 120, 130 bzw. 114 bzw. 118 A, 120 A,
126, 136 bzw. 138, 140) mit zwischengeschalteten
Multiplizier-Zwischenspeichern (112, 113, 122, 124, 128, 132)
enthält, um einen ersten Teil einer Gleitkomma-
Multiplikation während einer ersten Taktperiode und
einen verbleibenden Teil der Multiplikation während
einer nachfolgenden Taktperiode mit
Zwischenspeichern der in der ersten Taktperiode
erhaltenen Teilergebnisse in den Multiplizier-
Zwischenspeichern
(112, 113, 122, 124, 128, 132) durchführbar zu
machen.
3. Datenverarbeitungsgerät nach Anspruch 1 oder 2,
dadurch gekennzeichnet,
daß die selektive Kopplung zur
Änderung der Auswahl von Eingangssignalen für die
Speicherregister (20, 22, 24), das Addierwerk (24)
und das Multiplizierwerk (36) während einer
gegebenen Taktperiode auf gleichzeitig angebotene
Befehle anspricht.
4. Datenverarbeitungsgerät nach einem der Ansprüche 1
bis 3, dadurch gekennzeichnet, daß
wenigstens eines der Speicherregister (20, 22, 24)
als Datenpuffer (beispielsweise 20) mit mehreren
wählbaren Akkumulatorregistern ausgebildet ist.
5. Datenverarbeitungsgerät nach einem der Ansprüche 1
bis 4, gekennzeichnet durch einen
Datenpuffer-Bus (DPBS), eine Ankopplung ausgewählter
Ausgangssignale des wenigstens einen
Speicherregisters (beispielsweise 20) an den
Datenpuffer-Bus (DPBS) und durch eine Ankopplung
des Datenpuffer-Bus (DPBS) an ausgewählte Eingänge
des wenigstens einen Speicherregisters
(beispielsweise 20).
6. Datenverarbeitungsgerät nach einem der Ansprüche 1
bis 5, dadurch gekennzeichnet, daß in
das wenigstens eine als Datenpuffer mit ausgewählbaren
Akkumulatorregistern ausgebildete Speicherregister
(beispielsweise 20) während einer Taktperiode
Information einschreibbar und während der nächsten
Taktperiode aus diesem auslesbar ist.
7. Datenverarbeitungsgerät nach einem der Ansprüche 1
bis 6, bei dem das Addierwerk (34) und das
Multiplizierwerk (36) eine arithmetische Anordnung
bilden und die Speicherrgister (20, 22, 24) Daten
für die arithmetische Anordnung liefern,
dadurch gekennzeichnet, daß
die Speicherregister (20, 22, 24) einen Datenpuffer
(beispielsweise 20) mit folgenden Komponenten
aufweisen:
ein Eingangsregister (172), ein Ausgangsregister (176), mehrere Kellerspeicherregister (174) sowie eine Adreßanordnung (38, 200, 214) zur individuellen Adressierung der Kellerspeicherregister (174) für das Einschreiben und Auslesen von Information mit einem ersten Adreßregister (38) zur Speicherung einer Datenpuffer-Basisadresse und einer Additionsanordnung (200, 214) zur Addition der Basisadresse zu einer Index- bzw. Relativadresse zur Auswahl einer durch die Datenpuffer-Adresse bezeichneten Gruppe von Kellerspeicherregistern (174), wobei eine Anordnung (204, 206) zur Änderung der Datenpuffer-Adresse im ersten Adreßregister (38) vorgesehen ist, das Eingangsregister (172) zum Einschreiben von Information an ein adressiertes Kellerspeicherregister (174) ankoppelbar ist, das Ausgangsregister (76) zur Auslesung von Information normalerweise an ein adressiertes Kellerspeicherregister (174) ankoppelbar ist und wobei das Ausgangsregister (176) selektiv koppelbar ist, um Information aus dem Eingangsregister (172) auszulesen, wenn nach dem Einschreiben von Information die gleich Information zum Auslesen adressiert wird.
ein Eingangsregister (172), ein Ausgangsregister (176), mehrere Kellerspeicherregister (174) sowie eine Adreßanordnung (38, 200, 214) zur individuellen Adressierung der Kellerspeicherregister (174) für das Einschreiben und Auslesen von Information mit einem ersten Adreßregister (38) zur Speicherung einer Datenpuffer-Basisadresse und einer Additionsanordnung (200, 214) zur Addition der Basisadresse zu einer Index- bzw. Relativadresse zur Auswahl einer durch die Datenpuffer-Adresse bezeichneten Gruppe von Kellerspeicherregistern (174), wobei eine Anordnung (204, 206) zur Änderung der Datenpuffer-Adresse im ersten Adreßregister (38) vorgesehen ist, das Eingangsregister (172) zum Einschreiben von Information an ein adressiertes Kellerspeicherregister (174) ankoppelbar ist, das Ausgangsregister (76) zur Auslesung von Information normalerweise an ein adressiertes Kellerspeicherregister (174) ankoppelbar ist und wobei das Ausgangsregister (176) selektiv koppelbar ist, um Information aus dem Eingangsregister (172) auszulesen, wenn nach dem Einschreiben von Information die gleich Information zum Auslesen adressiert wird.
8. Datenverarbeitungsgerät nach Anspruch 7,
dadurch gekennzeichnet, daß
die Adressierung eines Kellerspeicherregisters (174)
zur Auslesung nach der Adressierung des gleichen
Kellerspeicherregisters zum Einschreiben von
Information erfaßbar ist, und daß die selektive
Kopplung des Ausgangsregisters (176) auf die
Erfassung der Informationsauslesung aus dem
Eingangsregister (172) anspricht.
9. Datenverarbeitungsgerät nach einem der Ansprüche 7 oder 8,
dadurch gekennzeichnet, daß
die selektive Kopplung des Ausgangsregisters (176)
auf die Informationsadressierung zur Auslösung im
nächsten Taktzyklus nach dem Einschreiben der
gleichen Information anspricht, um daraufhin das
Ausgangsregister (176) an das Eingangsregister (172)
zu koppeln.
10. Datenverarbeitungsgerät nach einem der Ansprüche 7
bis 9, dadurch gekennzeichnet, daß
die normale Kopplung des Ausgangsregisters (176) zur
Informationsauslesung zeitlich auf einen ersten Teil
einer Taktperiode bezogen ist und daß die Kopplung
des Eingangsregisters (172) zeitlich auf einen
zweiten Teil der gleichen Taktperiode bezogen ist.
11. Datenverarbeitungsgerät nach einem der Ansprüche 7
bis 10, dadurch gekennzeichnet, daß
die Anordnung (204, 206) zur Änderung der
Datenpuffer-Adresse im ersten Adreßregister (38) zur
alternativen Inkrementierung oder Dekrementierung
der Datenpuffer-Adresse dient.
12. Datenverarbeitungsgerät nach einem der Ansprüche 7
bis 11, dadurch gekennzeichnet, daß
die Additionsanordnung (200, 214) zur Addition der
Basisadresse zu einer Indexadresse eine erste Stufe
(214) zur Addition der Basisadresse zu einer
Schreib-Indexadresse enthält, welche zur Auswahl eines
Registers (174), in das Information eingeschrieben
werden soll, verwendet wird, und eine zweite Stufe
(200) zur Addition der Basisadresse zu einer
Lese-Indexadresse zur Auswahl eines Registers (174),
aus dem Information ausgelesen werden soll,
aufweist.
13. Datenverarbeitungsgerät nach Anspruch 12,
gekennzeichnet durch eine
Anordnung (218) zur Verzögerung des
Additionsausgangssignals der ersten Stufe (214) bis
zum nächsten Taktzyklus zur Adressierung eines
Kellerspeicherregisters (174).
14. Datenverarbeitungsgerät nach einem der Ansprüche 7
bis 13, gekennzeichnet durch mehrere
zweite Kellerspeicherregister (174′) und eine
Adreßordnung (38, 202, 216) zur individuellen
Adressierung der zweiten Kellerspeicherregister
(174′) mit einer Additionsanordnung (202, 216) zur
Addition der Basisadresse des ersten Adreßregisters
(38) zu einer Index- bzw. Relativadresse für die
Auswahl einer durch die gleiche Datenpuffer-Adresse
bezeichneten Gruppe von zweiten
Kellerspeicherregistern (174′).
15. Datenverarbeitungsgerät nach einem der Ansprüche 7
bis 14, gekennzeichnet durch einen
Multiplexer (170) zur Kopplung eines Eingangssignals
auf das Eingangsregister (172) und einen weiteren
Multiplexer (180, 182, . . . 186, 188) zur Aufnahme
eines Ausgangssignals des Ausgangsregisters (176).
16. Datenverarbeitungsgerät mit einem Programmspeicher
(14) für die Programmierung der Arithmetikanordnung
(34, 36) für die Verarbeitung von Daten aus den
Speicherregistern (20, 22, 24) nach einem der
Ansprüche 7 bis 15, gekennzeichnet
durch eine arithmetische Adreßschaltung (26, 32, 35,
38, 40, 42) mit einer Vielzahl von Adreßregistern (26),
einer arithmetischen Adreßeinheit (32) zur
Durchführung von arithmetischen Operationen mit
Adreßinformation aus den Adreuß-Registern (26) und einer
Bit-Umkehrschaltung (35 A) zwischen den Adreßregistern
(26) und der arithmetischen Adreßeinheit (32), wobei
die Bit-Umkehrschaltung (35 A) die Bit in wenigstens
einem Teil der Adreßinformation so umkehrt, daß das
höchstwertige Bit dieses Teils als geringstwertiges
Bit und das geringstwertige Bit dieses Teils als
höchstwertiges Bit geliefert wird, wobei eine
Schiebeanordnung zum Verschieben der
in den Bit umgekehrten Information dient, derart,
daß relativ zu einem gegebenen Punkt ein in den Bits
umgekehrter Adreßteil realisiert wird und wobei eine
Adreßregisteranordnung (38, 40, 42) zur Adressierung
der Speicherregister (20, 22, 24) das Ausgangssignal
der Adreßeinheit (32) aufnimmt.
17. Datenverarbeitungsgerät nach Anspruch 16,
dadurch gekennzeichnet, daß
das Ausgangssignal der Adreßeinheit (32)
selektiv auf eines der Speicherregister (20, 22, 24)
koppelbar ist.
18. Datenverarbeitungsgerät nach einem der Ansprüche 16
bis 17, dadurch gekennzeichnet, daß
die arithmetische Adreßeinheit (32) parallel zur
Arithmetikanordnung (34, 36) arbeitet.
19. Datenverarbeitungsgerät nach einem der Ansprüche 1 bis 18,
bei dem in dem einen Mantissenteil und einen Exponententeil
aufweisenden Gleitkomma-Addierwerk (34) Exponenten substrahiert
werden, um wenigstens eine Mantisse als Funktion der
Differenz zwischen den Exponenten zu verschieben und bei dem
in dem einen Mantissenteil und einen Exponententeil enthaltenden
Gleitkomma-Multiplizierwerk (36) im Exponententeil Exponenten
addiert und im Mantissenteil Mantissen multipliziert
werden,
gekennzeichnet durch Mittel zur Änderung der
Kopplung des Addierwerkes (34), des Multiplizierwerkes (36)
und der Speicherregister (20, 22, 24) für jede Taktperiode
als Funktion eines Befehlssatzes derart, daß ein Informationsaustausch
in einer Stufe des Addierwerkes (34), einer Stufe
des Multiplizierwerkes (36) und den Speicherregistern (20, 22,
24) über die Verbindungsbusse gleichzeitig erfolgt.
20. Datenverarbeitungsgerät nach einem der Ansprüche 1
bis 19, dadurch gekennzeichnet, daß
das Addierwerk (34) einen ersten Teil zur
Durchführung von arithmetischen Operationen und
einen zweiten Teil zur Normierung des Ergebnisses
aufweist.
21. Datenverarbeitungsgerät nach einem der Ansprüche 19
bis 20, dadurch gekennzeichnet, daß
das Gleitkomma-Multiplizierwerk (36) einen ersten Teil
zur Durchführung der Exponentenaddition und eines
ersten Teils der Mantissenmultiplikation, einen
zweiten Teil zur Durchführung des verbleibenden
Teils der Mantissenmultiplikation und einen dritten
Teil zur Normierung der Ergebnisse aufweist, daß der
ersten und der zweiten Teil eine Folge von
Multiplizierelementen enthalten, die jeweils ein
Teilprodukt, eine Summe und einen Übertrag erzeugen
sowie in Zeilen und Spalten miteinander verbunden
sind, um eine vervollständigte Multiplikation
wenigstens von Teilen des Multiplikanden und der
Multiplizier-Mantissen zu realisieren und daß die
Folge von Multiplizierelementen zwischen dem ersten
und zweiten Teil zur Zwischenspeicherung von
Teilergebnissen durch die Zwischenspeicher (112,
113, 122, 124, 128, 132) unterbrochen ist und daß
die Gesamtzahl von Multiplizierelementen, welche
Summen- und Übergangskombinationen zwischen dem
Beginn der Folge und dem Ende der ersten Stufe
führen, vorgegebn ist.
22. Datenverarbeitungsgerät nach einem der Ansprüche 19
bis 21, dadurch gekennzeichnet, daß
die Kopplung des Addierwerkes (34) des
Multiplizierwerkes (36) und der Speicherregister
(20, 22, 24) für jede Taktperiode als Funktion des
Befehlssatzes derart erfolgt, daß die Operation des
Addierwerkes (34) und des Multiplizierwerkes (36) sowie der
Informationsaustausch zwischen den Speicherregistern
über die Verbindungsbusse (FA, FM, A 1 BS oder A 2 BS,
M 1 BS, M 2 BS) gleichzeitig erfolgt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/702,148 US4075704A (en) | 1976-07-02 | 1976-07-02 | Floating point data processor for high speech operation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2724125A1 DE2724125A1 (de) | 1978-01-12 |
DE2724125C2 true DE2724125C2 (de) | 1989-07-06 |
Family
ID=24820039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19772724125 Granted DE2724125A1 (de) | 1976-07-02 | 1977-05-27 | Gleitkomma-datenverarbeitungsgeraet |
Country Status (6)
Country | Link |
---|---|
US (1) | US4075704A (de) |
JP (1) | JPS6044696B2 (de) |
CA (1) | CA1096048A (de) |
DE (1) | DE2724125A1 (de) |
FR (1) | FR2357001A1 (de) |
GB (3) | GB1575214A (de) |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4446533A (en) * | 1978-09-07 | 1984-05-01 | National Research Development Corporation | Stored program digital data processor |
US4217657A (en) * | 1978-10-18 | 1980-08-12 | Honeywell Inc. | Floating point arithmetic control |
US4413326A (en) * | 1978-10-18 | 1983-11-01 | Honeywell Inc. | Floating point division control |
US4229801A (en) * | 1978-12-11 | 1980-10-21 | Data General Corporation | Floating point processor having concurrent exponent/mantissa operation |
US4282582A (en) * | 1979-06-04 | 1981-08-04 | Sperry Rand Corporation | Floating point processor architecture which performs subtraction with reduced number of guard bits |
JPS5621242A (en) * | 1979-07-28 | 1981-02-27 | Fujitsu Ltd | Pipeline control method for computer operation |
US4308589A (en) * | 1979-11-08 | 1981-12-29 | Honeywell Information Systems Inc. | Apparatus for performing the scientific add instruction |
US4334284A (en) * | 1979-12-31 | 1982-06-08 | Sperry Corporation | Multiplier decoding using parallel MQ register |
JPS6057090B2 (ja) * | 1980-09-19 | 1985-12-13 | 株式会社日立製作所 | データ記憶装置およびそれを用いた処理装置 |
JPS5776634A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Digital signal processor |
US4484300A (en) * | 1980-12-24 | 1984-11-20 | Honeywell Information Systems Inc. | Data processor having units carry and tens carry apparatus supporting a decimal multiply operation |
DE3144015A1 (de) * | 1981-11-05 | 1983-05-26 | Ulrich Prof. Dr. 7500 Karlsruhe Kulisch | "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit" |
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
JPS58146969A (ja) * | 1982-02-26 | 1983-09-01 | Toshiba Corp | インデツクス限定連続演算ベクトルプロセツサ |
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 |
JPS58181165A (ja) * | 1982-04-16 | 1983-10-22 | Hitachi Ltd | ベクトル演算プロセツサ |
JPS59188740A (ja) * | 1983-04-11 | 1984-10-26 | Hitachi Ltd | フロ−テイング加算器 |
US4574348A (en) * | 1983-06-01 | 1986-03-04 | The Boeing Company | High speed digital signal processor architecture |
US4800486A (en) * | 1983-09-29 | 1989-01-24 | Tandem Computers Incorporated | Multiple data patch CPU architecture |
EP0333306B1 (de) * | 1983-12-27 | 1997-10-15 | Koninklijke Philips Electronics N.V. | Integrierter Einchip-Prozessor für die Verarbeitung von digitalen Signalen entweder in einem schnellen oder einem langsamen Betrieb |
NL8304442A (nl) * | 1983-12-27 | 1985-07-16 | Koninkl Philips Electronics Nv | Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking. |
US4766564A (en) * | 1984-08-13 | 1988-08-23 | International Business Machines Corporation | Dual putaway/bypass busses for multiple arithmetic units |
US4943940A (en) * | 1984-09-27 | 1990-07-24 | Advanced Micro Devices, Inc. | Floating point add/subtract and multiplying assemblies sharing common normalization, rounding and exponential apparatus |
US4683547A (en) * | 1984-10-25 | 1987-07-28 | International Business Machines Corporation | Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance |
US4862346A (en) * | 1985-07-02 | 1989-08-29 | Vlsi Technology, Inc. | Index for a register file with update of addresses using simultaneously received current, change, test, and reload addresses |
US4800516A (en) * | 1986-10-31 | 1989-01-24 | Amdahl Corporation | High speed floating-point unit |
US4920477A (en) * | 1987-04-20 | 1990-04-24 | Multiflow Computer, Inc. | Virtual address table look aside buffer miss recovery method and apparatus |
US5307506A (en) * | 1987-04-20 | 1994-04-26 | Digital Equipment Corporation | High bandwidth multiple computer bus apparatus |
US4864527A (en) * | 1987-08-24 | 1989-09-05 | Victor Peng | Apparatus and method for using a single carry chain for leading one detection and for "sticky" bit calculation |
US4862407A (en) * | 1987-10-05 | 1989-08-29 | Motorola, Inc. | Digital signal processing apparatus |
FR2623641A1 (fr) * | 1987-11-24 | 1989-05-26 | Thomson Csf | Machine multiprocesseurs pour l'execution de traitements numeriques paralleles |
JPH01204138A (ja) * | 1988-02-09 | 1989-08-16 | Nec Corp | 演算回路 |
JP2695178B2 (ja) * | 1988-03-11 | 1997-12-24 | 富士通株式会社 | 演算回路 |
US4901267A (en) * | 1988-03-14 | 1990-02-13 | Weitek Corporation | Floating point circuit with configurable number of multiplier cycles and variable divide cycle ratio |
JPH0776911B2 (ja) * | 1988-03-23 | 1995-08-16 | 松下電器産業株式会社 | 浮動小数点演算装置 |
US4943941A (en) * | 1989-01-13 | 1990-07-24 | Bolt Beranek And Newman Inc. | Floating point processor employing counter controlled shifting |
US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US4999802A (en) * | 1989-01-13 | 1991-03-12 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
US5212662A (en) * | 1989-01-13 | 1993-05-18 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
US5204828A (en) * | 1989-02-10 | 1993-04-20 | Intel Corporation | Bus apparatus having hold registers for parallel processing in a microprocessor |
EP0410778A3 (en) * | 1989-07-28 | 1992-12-02 | Texas Instruments Incorporated | Graphics processor having a floating point coprocessor |
US5544337A (en) * | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5822601A (en) * | 1989-12-29 | 1998-10-13 | Packard Bell Nec | Apparatus to allow a CPU to control the relocation of code blocks for other CPUs |
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US5053631A (en) * | 1990-04-02 | 1991-10-01 | Advanced Micro Devices, Inc. | Pipelined floating point processing unit |
US5058048A (en) * | 1990-04-02 | 1991-10-15 | Advanced Micro Devices, Inc. | Normalizing pipelined floating point processing unit |
US5128888A (en) * | 1990-04-02 | 1992-07-07 | Advanced Micro Devices, Inc. | Arithmetic unit having multiple accumulators |
US5128891A (en) * | 1990-04-02 | 1992-07-07 | Advanced Micro Devices, Inc. | High speed divider with square root capability |
US5598547A (en) * | 1990-06-11 | 1997-01-28 | Cray Research, Inc. | Vector processor having functional unit paths of differing pipeline lengths |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
US5880983A (en) * | 1996-03-25 | 1999-03-09 | International Business Machines Corporation | Floating point split multiply/add system which has infinite precision |
GB2317248B (en) * | 1996-09-02 | 2001-08-15 | Siemens Plc | Floating point number data processing means |
US5963460A (en) * | 1996-12-17 | 1999-10-05 | Metaflow Technologies, Inc. | Apparatus for computing transcendental functions quickly |
US6044392A (en) * | 1997-08-04 | 2000-03-28 | Motorola, Inc. | Method and apparatus for performing rounding in a data processor |
US6044460A (en) * | 1998-01-16 | 2000-03-28 | Lsi Logic Corporation | System and method for PC-relative address generation in a microprocessor with a pipeline architecture |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6263424B1 (en) * | 1998-08-03 | 2001-07-17 | Rise Technology Company | Execution of data dependent arithmetic instructions in multi-pipeline processors |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
FR2820523B1 (fr) * | 2001-02-08 | 2003-05-16 | St Microelectronics Sa | Microprocesseur comportant une instruction d'inversion des bits d'un mot binaire |
US20030235298A1 (en) * | 2002-06-25 | 2003-12-25 | Bedros Hanounik | Shifting an encryption key in either a first or second direction via a uni-directional shifting unit |
US6973551B1 (en) * | 2002-12-30 | 2005-12-06 | Emc Corporation | Data storage system having atomic memory operation |
US8522253B1 (en) | 2005-03-31 | 2013-08-27 | Guillermo Rozas | Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches |
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
CN107368285B (zh) | 2006-11-14 | 2020-10-09 | 英特尔公司 | 多线程架构 |
US10228949B2 (en) | 2010-09-17 | 2019-03-12 | Intel Corporation | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
JP5382383B2 (ja) * | 2011-03-24 | 2014-01-08 | 日本電気株式会社 | データベース処理装置、データベース処理方法、プログラム及びデータベースのデータ構造 |
CN103547993B (zh) | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
CN108108188B (zh) | 2011-03-25 | 2022-06-28 | 英特尔公司 | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 |
US9842005B2 (en) | 2011-03-25 | 2017-12-12 | Intel Corporation | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN107729267B (zh) | 2011-05-20 | 2022-01-25 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
TWI548994B (zh) | 2011-05-20 | 2016-09-11 | 軟體機器公司 | 以複數個引擎支援指令序列的執行之互連結構 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US9430410B2 (en) | 2012-07-30 | 2016-08-30 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load accesses of a cache in a single cycle |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
CN105210040B (zh) | 2013-03-15 | 2019-04-02 | 英特尔公司 | 用于执行分组成块的多线程指令的方法 |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
EP2972836B1 (de) | 2013-03-15 | 2022-11-09 | Intel Corporation | Verfahren zur emulierung einer zentralisierten gast-flag-architektur mithilfe einer nativen verteilten flag-architektur |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
JP6351033B2 (ja) * | 2014-06-10 | 2018-07-04 | 本田技研工業株式会社 | 浮動小数点演算装置、プログラム、及び演算装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3477063A (en) * | 1967-10-26 | 1969-11-04 | Ibm | Controller for data processing system |
CA926016A (en) * | 1968-07-09 | 1973-05-08 | J. Watson William | Pipelined high speed arithmetic unit |
US3701976A (en) * | 1970-07-13 | 1972-10-31 | Bell Telephone Labor Inc | Floating point arithmetic unit for a parallel processing computer |
US3697734A (en) * | 1970-07-28 | 1972-10-10 | Singer Co | Digital computer utilizing a plurality of parallel asynchronous arithmetic units |
US3771141A (en) * | 1971-11-08 | 1973-11-06 | Culler Harrison Inc | Data processor with parallel operations per instruction |
US3731284A (en) * | 1971-12-27 | 1973-05-01 | Bell Telephone Labor Inc | Method and apparatus for reordering data |
US3812470A (en) * | 1972-07-31 | 1974-05-21 | Westinghouse Electric Corp | Programmable digital signal processor |
US3871578A (en) * | 1972-10-10 | 1975-03-18 | Digital Equipment Corp | Data processing system for multiplying and intergerizing floating point numbers |
IT991096B (it) * | 1973-07-10 | 1975-07-30 | Honeywell Inf Systems | Calcolatore elettronico con reti funzionali indipendenti per l esecuzione simultanea di opera zioni diverse sugli stessi dati |
-
1976
- 1976-07-02 US US05/702,148 patent/US4075704A/en not_active Expired - Lifetime
-
1977
- 1977-02-23 GB GB37538/78A patent/GB1575214A/en not_active Expired
- 1977-02-23 GB GB25669/79A patent/GB1575215A/en not_active Expired
- 1977-02-23 GB GB7739/77A patent/GB1575213A/en not_active Expired
- 1977-03-08 CA CA273,438A patent/CA1096048A/en not_active Expired
- 1977-03-31 FR FR7709721A patent/FR2357001A1/fr active Granted
- 1977-05-27 DE DE19772724125 patent/DE2724125A1/de active Granted
- 1977-06-06 JP JP52065869A patent/JPS6044696B2/ja not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CA1096048A (en) | 1981-02-17 |
JPS6044696B2 (ja) | 1985-10-04 |
GB1575215A (en) | 1980-09-17 |
GB1575214A (en) | 1980-09-17 |
FR2357001B1 (de) | 1982-08-13 |
JPS535543A (en) | 1978-01-19 |
US4075704A (en) | 1978-02-21 |
FR2357001A1 (fr) | 1978-01-27 |
DE2724125A1 (de) | 1978-01-12 |
GB1575213A (en) | 1980-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2724125C2 (de) | ||
DE3424962C2 (de) | ||
DE3049437C2 (de) | Matrixanordnung einer Vielzahl von Verarbeitungselementen | |
DE4035405C2 (de) | ||
DE2753062C2 (de) | Einrichtung zur wiederholten Durchführung von Programmschleifen | |
DE3486457T2 (de) | Integrierter Einchip-Prozessor für die Verarbeitung von digitalen Signalen entweder in einem schnellen oder einem langsamen Betrieb | |
DE3586603T2 (de) | Datenprozessor fuer interpretierende und kompilierte sprache. | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE1942005B2 (de) | Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten | |
DE1178623B (de) | Programmgesteuerte datenverarbeitende Maschine | |
DE2457612A1 (de) | Mikroprogrammier-steuersystem | |
DE2803425A1 (de) | Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken | |
CH644461A5 (de) | Digitale multipliziereinrichtung. | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE2421130C2 (de) | ||
DE1197650B (de) | Parallel-Addierer | |
DE3507584C2 (de) | ||
DE2221693B2 (de) | Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen | |
DE69500410T2 (de) | Arithmetische und logische Rechnungseinrichtung und Steuerungsverfahren | |
DE2830334C2 (de) | ||
DE2310553A1 (de) | Vorrichtung zur durchfuehrung arithmetischer und logischer operationen | |
EP0265555B1 (de) | Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen | |
DE19628039B4 (de) | Speicheradressen-Steuerschaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |