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
Application number
DE2724125A
Other languages
English (en)
Other versions
DE2724125A1 (de
Inventor
George Patrick Beaverton Oreg. Us O'leary
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FLOATING POINT SYSTEMS Inc BEAVERTON OREG US
Original Assignee
FLOATING POINT SYSTEMS Inc BEAVERTON OREG US
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FLOATING POINT SYSTEMS Inc BEAVERTON OREG US filed Critical FLOATING POINT SYSTEMS Inc BEAVERTON OREG US
Publication of DE2724125A1 publication Critical patent/DE2724125A1/de
Application granted granted Critical
Publication of DE2724125C2 publication Critical patent/DE2724125C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • G06F7/5312Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3896Bit slicing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

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.
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.
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.
DE19772724125 1976-07-02 1977-05-27 Gleitkomma-datenverarbeitungsgeraet Granted DE2724125A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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