DE2830334C2 - - Google Patents
Info
- Publication number
- DE2830334C2 DE2830334C2 DE2830334A DE2830334A DE2830334C2 DE 2830334 C2 DE2830334 C2 DE 2830334C2 DE 2830334 A DE2830334 A DE 2830334A DE 2830334 A DE2830334 A DE 2830334A DE 2830334 C2 DE2830334 C2 DE 2830334C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- partial
- memory
- multiplicand
- register
- 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
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/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
-
- 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
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3832—Less usual number representations
- G06F2207/384—Octal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3832—Less usual number representations
- G06F2207/3844—Hexadecimal
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Description
Die vorliegende Erfindung bezieht sich auf eine digitale
Einrichtung zum Multiplizieren nach dem Gattungsbegriff
des Patentanspruches 1.
Derartige Einrichtungen sind aus "Electronic Letters",
Volume 11, No. 18, 4. September 1975, S. 426 bis 428 und
aus "Elektronik", 1973, Heft 11, Band 22, Seite 395 bis
398 bekannt. Dort werden Multiplikationstabellen in
Festwertspeichern abgespeichert, d. h. es wird das Produkt
bzw. Teilvielfache ausgewählter Zahlen des Multiplikanden
und Multiplikators abgespeichert. Ein Festwertspeicher
kann hierbei benutzt werden, da die gespeicherten
Teilvielfachen jeder Kombination von Multiplikand und
Multiplikator gemeinsam sind.
Ferner ist es aus der DE-AS 11 81 459 bekannt,
Teilvielfache des gesamten Multiplikanden als eine
Funktion von ausgewählten Multiplikatorzahlen während
jedes Schrittes der Multiplikation zu erzeugen.
Der Verwendung eines Festwertspeichers liegt immer das
Konzept der abgespeicherten Multiplikationstabelle
zugrunde. Da jeder Multiplikand unterschiedlich ist, ist
es daher nicht möglich, alle Teilvielfachen der verschiedenen
möglichen Multiplikanden abzuspeichern. Statt
dessen wird der Festwertspeicher benutzt, um
Multiplikationstabellen abzuspeichern, in denen nur die
Produkte ausgewählter Zahlen eines Multiplikators und
eines Multiplikanden abgespeichert sind.
Ausgehend von diesen bekannten Einrichtungen ist es die
Aufgabe der vorliegenden Erfindung, eine Einrichtung zur
digitalen Multiplikation anzugeben, die während der
Ausführung einer Multiplikation alle Teilvielfache eines
Multiplikanden zu erhalten gestattet, wobei die
Multiplikation mit hoher Geschwindigkeit und niedrigen
Kosten verwirklicht werden kann. Die Lösung dieser
Aufgabe gelingt gemäß den kennzeichnenden Merkmalen des
Patentanspruches 1. Vorteilhafte Ausgestaltungen der
erfindungsgemäßen Einrichtung sind den Unteransprüchen
entnehmbar.
Bei der vorliegenden Erfindung werden Teilvielfache des
gesamten Multiplikanden als eine Funktion von
ausgewählten Multiplikatorzahlen vor der Ausführung der
Multiplikation
erzeugt, und es werden die Teilvielfache
in einem Speicher gespeichert, aus dem sie während jedes
Schrittes der Multiplikation wieder aufgesucht werden
können. Die vorliegende Erfindung sieht die Abspeicherung
von im voraus erzeugten Teilvielfachen in einem
adressierbaren Speicher vor, wobei die Teilvielfache
an Speicherplätzen gespeichert sind, deren Adressen
durch die Multiplikator-Zahlengruppe vorgegeben sind,
die die Teilvielfachen erzeugt hat. Während der verschiedenen
Schritte bei der Ausführung der
Multiplikation wird die während dieser Schritte
erzeugte besondere Gruppe von Multiplikatorzahlen als
Adresse für den adressierbaren Speicher benutzt, um
das Teilvielfache aufzusuchen und zu dem Teilprodukt
zu addieren.
Anhand eines in den Figuren der beiliegenden Zeichnung dargestellten
Ausführungsbeispieles sei die Erfindung im folgenden
näher beschrieben. Es zeigt:
Fig. 1 ein Blockdiagramm eines Systems, das die erfindungsgemäße
Einrichtung verwendet,
Fig. 2 ein Blockdiagramm eines Gleitkommaprozessors gemäß
Fig. 1, der die erfindungsgemäße Einrichtung enthält,
Fig. 3 ein Blockdiagramm der erfindungsgemäßen Einrichtung,
Fig. 4 in Blockform den Mikroprozessorchip, wie er beim
Aufbau des bevorzugten erfindungsgemäßen Ausführungsbeispiels
verwendet wird,
Fig. 5 den Mikroprozessorchip gemäß Fig. 4 in näheren
Einzelheiten und die Einrichtung gemäß Fig. 3,
Fig. 6 die Zuteilung des Registerspeicherplatzes für die
Mikroprozessorchips gemäß Fig. 3,
Fig. 7 das Format der Mikrobefehlsworte, die in den Steuerspeicherabschnitten
gemäß Fig. 2 enthalten sind,
Fig. 8 bis 10 die durch die Einrichtung gemäß Fig. 2 während
der Ausführung einer Multiplikation erzeugten und
gespeicherten Werte,
Fig. 11 ein im Zusammenhang mit den Fig. 8 bis 10 verwendetes
Flußdiagramm zur Erläuterung der Wirkungsweise
der vorliegenden Erfindung.
In Fig. 1 ist ein System dargestellt, das die erfindungsgemäße
Einrichtung verwendet. Eine Hauptsammelschiene 10 verbindet einen
Hauptspeicher 30, eine Zentraleinheit 20, einen Gleitkomma-Befehlsprozessor
40 (SIP) und verschiedene periphere Steuerungen, wie
beispielsweise die Steuerung 50, die den Betrieb einer Anzahl
peripherer Geräte 52 steuert. Irgendeines der an die Sammelschiene
10 angeschlossenen Geräte kann den Hauptspeicher 30 oder irgendeine
andere an die Sammelschiene angeschlossene Einheit adressieren.
Die Sammelschiene 10 umfaßt eine Anzahl von Steuerleitungen,
Adreßleitungen und Datenleitungen für die Übertragung
von Befehlen und Daten. Zwecks weiterer Information bezüglich
der Wirkungsweise des Systems gemäß Fig. 1 sei auf die US-PS
39 93 981 verwiesen.
Fig. 2 zeigt in Blockdiagrammform die Hauptabschnitte des Gleitkomma-
Befehlsprozessors SIP 40, die zu der vorliegenden Erfindung
gehören. Es ist erkennbar, daß der Gleitkomma-Befehlsprozessor
SIP 40 einen Sammelschienen-Steuerabschnitt 40-2, einen Registerabschnitt
40-4, einen Steuerspeicherabschnitt 40-6, einen Verschiebelogik-
Schaltkreisabschnitt 40-7 und einen Mikroprozessorabschnitt
40-8 aufweist.
Der Abschnitt 40-2 umfaßt Sammelschienen-Anforderungslogikschaltkreise
und Sammelschienen-Antwortlogikschaltkreise des Blockes
40-20 und des Blockes 40-22. Diese Schaltkreise befähigen den
Befehlsprozessor SIP-40 zum Nachrichtenaustausch über die Sammelschiene
10 unter der Steuerung des Abschnittes 40-6.
Der Abschnitt 40-4 umfaßt mehrere Register 40-40 bis 40-48, die
in der dargestellten Weise miteinander verbunden sind. Vier dieser
Register 40-40, 40-42, 40-44 und 40-48 liefern Eingangssignale
an Testlogikschaltkreise eines Blockes 40-66 des Abschnittes
40-6. Das Register 40-40 ist ein 6 Bit-Register, das einen Funktionscode
speichert, der an die Adreßleitungen der Sammelschiene
10 während eines Eingabe- oder Ausgabe-Sammelschienen-Operationszyklus
angelegt wird. Danach prüft der Befehlsprozessor SIP 40
unter Mikroprogrammsteuerung den Inhalt des Registers 40-40 durch
die Testlogikschaltkreise 40-66 und bearbeitet die vorgegebene
Anweisung. Die ausgewählten Mikroprogrammroutinen legen fest,
welche Information zu übertragen ist, und sie steuern die Übertragung
dieser Information zwischen der Sammelschiene 10 und den
verschiedenen Registern, Sammelschienen und Abschnitten des Befehlsprozessors
SIP 40. Das Adreßregister 40-42 ist ein 22 Bit-
Register, das normalerweise für die Speicherung einer Hauptspeicher-
Operandenadresse benutzt wird, die über die Adreßleitungen
der Sammelschiene 10 empfangen wird, wenn der Befehlsprozessor
SIP 40 eine Ausgabeanweisung von der Zentraleinheit
CPU 20 annimmt. Wie hier erläutert, wird das Adreßregister 40-42
während einer Multiplizieroperation als Zähler benutzt. Dies
bedeutet, daß bestimmte Bitpositionen erhöht werden und unter
Mikroprogrammsteuerung auf spezifische Zählstände geprüft werden.
Das nächste Register 40-44 (task-register) ist ein 12 Bit-
Register, das benutzt wird, um ein erstes Wort eines über die
Datenleitungen der Sammelschiene 10 empfangenen Gleitkommabefehls
zu speichern, wenn der Befehlsprozessor SIP 40 eine Ausgabeanweisung
von der Zentraleinheit CPU 20 annimmt. Der Prozessor
SIP 40 decodiert unter Mikroprogrammsteuerung das erste Befehlswort
über die in dem Block 40-64 für die Erzeugung der nächsten
Adresse enthaltenen Schaltkreise und erzeugt die Startadresse
der für die Verarbeitung dieses Befehls erforderlichen Mikroprogrammroutine.
Ferner werden bestimmte Bits dieses Registers
benutzt, um festzulegen, welches Gleitkomma-Akkumulatorregister
zu benutzen ist. Beispielsweise legen die Bitpositionen 2 und 3
eine Verwendung des Gleitkomma-Akkumulatorregisters als eine
A-Operandenquelle/Resultatempfänger für den laufenden Befehl fest.
Die Bitpositionen 14 und 15 des Task-Registers legen das Gleitkomma-
Akkumulatorregister fest, das als B-Operand (effektive
Adresse) für den laufenden Befehl verwendet wird.
Das Modusregister 40-48 ist ein 8 Bit-Register, das die von der
Zentraleinheit
CPU 20 erhaltene Information speichert. Die Information
wird anfänglich von den Datenleitungen der Sammelschiene
10 empfangen und in das Sammelschienen-Datenregister 1 40-46
geladen. Danach wird der Inhalt des Registers 40-46 über die Abschnitte
40-8 und 40-7 übertragen und in das Register 40-48 geladen.
Die Information wird benutzt, um die Bearbeitung jener
Mikrobefehlsfolgen zu steuern, die auf die Operandenlängen oder
auf Abrundungs/Abtrennungs-Verfahren der Operation ansprechen.
Da dies nicht zum Verständnis der vorliegenden Erfindung gehört,
sei dieses Register nicht weiter erläutert.
Die mit BD 1 und BD 2 bezeichneten Sammelschienen-Datenregister
40-46 und 40-47 sind 16 Bit-Register, die benutzt werden, um
über die Datenleitungen der Sammelschiene 10 empfangene Information
zu speichern. Das Register 40-46 nimmt normalerweise
Daten auf, die sich aus einer Einzelwortoperation ergeben
(z. B. Befehlswort von der Zentraleinheit CPU 20), während das
Register 40-47 normalerweise Daten aufnimmt, die sich aus Doppelwortoperationen
ergeben (zweites Wort einer doppelten ganzen
Zahl von der Zentraleinheit CPU 20).
Der Steuerabschnitt 40-6 umfaßt einen Steuerspeicher 40-60, der
aus 1024 Festwert-Speicherplätzen (ROS) aufgebaut ist, wobei
jeder Speicherplatz 64 Bit aufweist. Ein internes ROS-Register
40-62 dient der Speicherung eines Mikrobefehlswortes, das während
eines Operationszyklus aus dem Steuerspeicher 40-60 ausgelesen
wird. Subanweisungs-Erzeugungsschaltkreise 40-63 decodieren und
verteilen die Steuersignale an die verschiedenen Teile des Befehlsprozessors
SIP 40. Der Steuerabschnitt 40-6 weist ferner
Erzeugungsschaltkreise 40-64 für die nächste Adresse sowie Testlogikschaltkreise
40-66 auf. Wie hier erläutert, erzeugen die
Schaltkreise 40-64 normalerweise die Adresse des nächsten Speicherplatzes
in Funktion eines Nächst-Adressenfeldes des Mikrobefehlswortes
und in Funktion von Ausgangssignalen der Testlogikschaltkreise
40-66. Dies bedeutet, daß die Testlogikschaltkreise
40-66 eine von 64 möglichen Testbedingungen basierend auf der
Codierung eines anderen Feldes des Mikrobefehlswortes auswählen.
Die im Zusammenhang mit dem Nächst-Adressenfeld erzeugten Ausgangssignale
werden benutzt, um die nächste Adresse zu bilden.
Ferner erzeugen die Schaltkreise 40-64 die nächste Adresse für
den Start-Speicherplatz des Mikroprogramms zur Verarbeitung des
Befehls durch Decodierung des in dem Task-Register 40-44 gespeicherten
Befehlswortes. Für die Zwecke der vorliegenden Erfindung
können die Testlogikschaltkreise 40-66 und die Adressenerzeugungsschaltkreise
40-64 einen herkömmlichen Aufbau aufweisen.
Beispielsweise können sie einen Aufbau gemäß der US-PS 39 09 800
besitzen.
Die verschiedenen erwähnten Felder sind in dem Format des Mikrobefehlswortes
gemäß Fig. 7 dargestellt. Unter kurzer Bezugnahme
auf diese Figur ist ersichtlich, daß jedes Mikrobefehlswort 19
unterschiedliche Felder aufweist, die mit DA bis CK bezeichnet
sind. Diese Felder werden wie folgt benutzt:
1. Das Direktadressenfeld (DA-Feld) umfaßt die Bits 0-3
des Mikrobefehlswortes. Dieses Feld liefert eine direkte
Adresse, die benutzt wird, um einen der 16 Akkumulatoren
innerhalb des Gleitkommaspeichers auszuwählen.
2. Das A-Auswahlfeld (AS-Feld) umfaßt die Bits 4 und 5 des
Mikrobefehlswortes, und es wird benutzt, um auszuwählen,
welcher der vier Eingänge der A-Adressenmultiplexerschaltkreise
40-840 auszuwählen ist.
3. Das B-Auswahlfeld (BS-Feld) umfaßt die Bits 6 und 7 des
Mikrobefehlswortes und wird benutzt, um auszuwählen,
welcher der vier Eingänge für die B-Adressenmultiplexerschaltkreise
40-842 zu verwenden ist.
4. Das Exponentenquellenfeld (ES-Feld) umfaßt die Bits
9-11 des Mikrobefehlswortes und steuert die Additions-
Eingangsmultiplexer für die Bits 56 bis 63 des Fließkommawortes
(z. B. den Exponententeil des Wortes). Daher
legt das ES-Feld die Operandenquelle für die A- und
B-Eingänge der jeder Exponentenziffer zugeordneten Addiereinheit
fest.
5. Das Mantissenquellenfeld (MS-Feld) umfaßt die Bits 13 bis
15 des Mikrobefehlswortes und steuert die Additions-
Eingangsmultiplexer für die Bits 0 bis 55 des Fließkommawortes
(z. B. den Mantissenteil des Wortes). Das MS-Feld
bestimmt daher die Operandenquelle für die A- und B-Eingänge
der einer jeden Mantissenziffer zugeordneten Addiereinheit.
6. Das externe Sammelschienenfunktionsfeld (BF-Feld)
umfaßt die Bits 16 bis 19 des Mikrobefehlswortes und
wird benutzt, um verschiedene Prozessoroperationen zu
steuern, die der externen Sammelschiene (Schnittstelle)
zugeordnet sind.
7. Das Verschiebesteuerfeld (SC-Feld) umfaßt die Bits
21 bis 23 des Mikrobefehlswortes und wird benutzt, um
die Art der durch die Multiziffer-Verschiebeschaltkreise
ausgeführten Operationen zu steuern.
8. Das Exponentenfunktionsfeld (EF-Feld) umfaßt die Bits
25 bis 27 des Mikrobefehlswortes. Diese drei Bits liefern
die Steuerung für alle Operationen innerhalb der arithmetischen
Logikeinheit, die jeder Exponentenziffer zugeordnet
ist (z. B. die Bits 56-63 des Fließkommawortes).
9. Das Mantissenfunktionsfeld (MF-Feld) umfaßt die Bits
29-31 des Mikrobefehlswortes. Diese drei Bits erzeugen
die Steuerung für alle Operationen innerhalb der arithmetischen
Logikeinheit, die jeder Mantissenziffer zugeordnet
sind (z. B. die Bits 0-55 des Fließkommawortes).
10. Das Testbedingungsfeld (TC-Feld) umfaßt die Bits 32-35
des Mikrobefehlswortes. Dieses Feld wird zusammen mit
einem Verzweigungsmarkierungsfeld (BM-Feld) benutzt, um
die spezifische Testfunktion auszuwählen, die bei der
Erzeugung der nächsten Steuerspeicheradresse benutzt wird.
11. Das Verzweigungsmaskierungsfeld (BM-Feld) umfaßt die
Bits 36-39 des Mikrobefehlswortes. Wie erwähnt, wird
dieses Feld zusammen mit dem TC-Feld benutzt, um die
spezifische Testfunktion auszuwählen, die bei der Erzeugung
der nächsten Adresse benutzt wird.
12. Das Exponentenbestimmungsfeld (ED-Feld) umfaßt die Bits
41-42 des Mikrobefehlswortes. Dieses Feld steuert die drei
Gruppen von Multiplexern, die dem Exponententeil des Fließkommawortes
(z. B. den Bits 56-63) zugeordnet sind, und
steuert dadurch alle Datenbewegungen und Verschiebeoperationen
innerhalb der Recheneinheit ALU des Mikroprozessors
(Exponentenziffern).
13. Das Mantissenbestimmungsfeld (MD-Feld) umfaßt die Bits 45-47
des Mikrobefehlswortes. Dieses Feld steuert die drei Gruppen
von Multiplexern, die dem Mantissenteil des Fließkommawortes
(z. B. den Bits 0-55) zugeordnet sind, wodurch alle Datenbewegungen
und Verschiebeoperationen innerhalb der Recheneinheit
ALU des Mikroprozessors gesteuert werden (Mantissenziffern).
14. Das Allgemeinzweckfeld (GP-Feld) umfaßt die Bits 48-53 des
Mikrobefehlswortes. Das GP-Feld wird benutzt, um entweder
Konstanten oder SIP-Subanweisungen zu erzeugen, was von dem
Zustand des Bits 48 abhängt (z. B. Bit 48="1" - Erzeugung
von Subanweisungen, Bit 48="0" - Erzeugung von Konstanten).
15. Das Nächstadressenfeld (NA-Feld) umfaßt die Bits 54-63 des
Mikrobefehlswortes und definiert die nächste Folgeadresse.
16. Das Matrixsteuerfeld (MC-Feld) umfaßt die Bits 8 und 12 des
Mikrobefehlswortes. Diese Bits legen die Verschiebequelle
(Verschiebezählstand) für den Matrix-Verschiebeschaltkreis
fest.
17. Das Teilfeld (SP-Feld) umfaßt das Bit 20 des Mikrobefehlswortes,
wobei dessen Verwendung nicht zu der vorliegenden Erfindung
gehört.
18. Das Übertragsfeld (CI-Feld) umfaßt die Bits 24 und 28 des
Mikrobefehlswortes. Diese Bits liefern die Übertragseingänge
für den Exponenten- und Mantissenteil des Fließkommawortes.
19. Das Taktsteuerfeld (CK-Feld) umfaßt die Bits 40 und 44 des
Mikrobefehlswortes und gibt die Steuerspeicher-Zykluszeit vor.
Dieser Abschnitt umfaßt eine Mikroprozessoreinheit 40-80 und
A- und B-Adressenmultiplexerschaltkreise des Blockes 40-84
sowie eine Anzahl von Übertragserzeugungsschaltkreisen des
Blockes 40-82. Der Abschnitt 40-80 besteht aus 16 LSI-Mikroprozessorchips,
die in Fig. 3 mit 40-800 bis 40-832 bezeichnet
sind. In einem bevorzugten Ausführungsbeispiel entsprechen die
Chips dem Typ 2901 der Firma Advanced Micro Devices Inc. Jeder
solcher in Fig. 4 in Blockform dargestellter Chip verarbeitet
4 Bit. Sechzehn solche Chips sind gemäß Fig. 3 miteinander verbunden,
um eine 64 Bit-Mikroprozessoreinheit zu bilden. Wie
hier erläutert, speichern und verarbeiten die ersten 14 Chips
entsprechend den Bits 0-55 Mantissenwerte einer Fließkommazahl,
während die nächsten zwei Chips den Exponentenwert der Fließkommazahl
speichern und verarbeiten. Die gesamten 16 Chips
werden benutzt, um Teilvielfache in der noch zu erläuternden
Weise zu erzeugen und zu speichern.
Gemäß Fig. 2 ist der Mikroprozessorabschnitt 40-80 horizontal
in eine Anzahl von RAM-Verschiebe- und Multiplexerabschnitte,
Q-Verschiebe und Q-Registerabschnitte, Gleitkommaspeicherabschnitte,
Auswahlabschnitte, arithmetische Logikabschnitte (ALU)
und Ausgangsmultiplexerabschnitte unterteilt. Fig. 5 zeigt in
näheren Einzelheiten die Abschnitte eines jeden Chips. Zusätzlich
umfassen die RAM-Verschiebe- und Multiplexerabschnitte
zwei 64 Bit-Multiplexerschaltkreise, die sowohl für Verschiebeoperationen
als auch für normale Datenübertragung benutzt werden.
Das heißt, daß diese Schaltkreise eine direkte Datenübertragung
oder eine von links nach rechts - Datenverschiebung vor dem
Laden in die Speicherabschnitte erzeugen.
Gemäß Fig. 3 sind Verschiebeverbindungen zwischen den die
Mantissenwerte speichernden Chips gemäß der vorliegenden Erfindung
in einer vorbestimmten Weise angeordnet. Das heißt, daß
der Q 3-Verschiebeausgang eines jeden Chips mit dem Q 0-Eingang
eines jeden dritten Chips verbunden ist. Zum Beispiel ist der
Ausgang Q 3 des Chips 1 mit dem Eingang Q 0 des Chips 4 verbunden.
Dies ermöglicht die Rechtsverschiebung von 8 Bitpositionen
(2 hexadezimale Ziffern) innerhalb eines einzigen Verschiebezyklus.
Die Verschiebeverbindungen zwischen den die Exponentenwerte
speichernden Chips sind in einer ähnlichen Weise angeordnet.
Der Q-Verschiebe- und Q-Registerabschnitt umfaßt einen 64 Bit-
Multiplexerschaltkreis und ein 64 Bit-Q-Register für die Speicherung
der Bits des Multiplikators. Der 64 Bit-Multiplexer gestattet
eine direkte Übertragung oder eine Verschiebung von links
nach rechts der Multiplikatorbits vor dem Laden in das Q-Register.
Die Gleitkommaspeicherabschnitte enthalten 16 Speicherplätze mit
64 Bit, wobei auf zwei getrennte Speicherplätze der 16 Speicherplätze
gleichzeitig zugegriffen werden kann, um sowohl einen
A- als auch einen B-Operanden zu liefern. Wie noch erläutert
wird, werden die Speicherplätze durch die A- und B-Adressenmultiplexerschaltkreise
des Blockes 40-84 adressiert. Die Speicherplätze
1, 2 und 3 dienen als Gleitkommaakkumulatoren SA 1, SA 2
und SA 3, während die verbleibenden Speicherplätze für die temporäre
Speicherung benutzt werden. Die Zuteilung eines jeden Speicherplatzes
erfolgt gemäß Fig. 6. Der Akkumulator SA 1 wird mit
dem Multiplikanden geladen, während der Akkumulator SA 2 mit dem
Multiplakator durch Befehle in herkömmlicher Weise geladen wird.
Die Datenbits der ersten beiden Worte (32 Bits) eines 4 Wort-
Operanden, der über die Datenleitungen der Sammelscheine 10
durch die Zentraleinheit CPU 10 zugeführt wird, werden in die
Sammelschienen-Datenregister 40-46 und 40-47 geladen. Der Dateninhalt
der ersten beiden Worte dieser Register, der an eine
Eingangssammelschiene angelegt wird, wird durch die Verschiebelogikschaltkreise
40-70 des Abschnittes 40-7 ohne Verschiebung
übertragen und an die Ausgangssammelschiene angelegt. Von dort
werden die ersten beiden Worte durch die arithmetische Logikeinheit
geschoben und in einem der Akkumulatorspeicherplätze des
Gleitkommaspeicherabschnitts gespeichert.
Die nächsten beiden Worte des von der Zentraleinheit CPU 10
empfangenen 4 Wort-Operanden werden zu den Verschiebelogikschaltkreisen
40-70 übertragen und um 32 Bitpositionen durch den Verschiebeabschnitt
40-7 verschoben. Die zweiten beiden Worte werden
danach durch die arithmetische Logikeinheit durchgeschoben und in
dem gleichen Akkumulatorspeicherplatz gespeichert. Das Modusregister
40-48 ist in bestimmten Bitpositionen auf vorbestimmte Zustände
gesetzt, um dem Befehlsprozessor SIP 40 die Länge des gespeicherten
Operanden anzuzeigen (z. B., daß der spezielle Akkumulatorspeicherplatz
einen 4 Wort-Operanden gespeichert hat).
Gemäß Fig. 6 dient der Speicherplatz, dem die Adresse 016 zugeordnet
ist, anfänglich als temporärer Akkumulator und speichert
als solcher den 56 Bit-Mantissenwert und den 8 Bit-Exponentenwert
des Multiplikators während der Teilvielfachen-Erzeugung. Der Exponentenwert
ist normalerweise in Exzeß 64-Form dargestellt und
besitzt einen Bereich von +6310 bis -6410. Bei der Ausführung
binärer arithmetischer Operationen mit Operanden kann der Befehlsprozessor
SIP 40 bei diesen Operationen als eine hexadezimale
Recheneinheit angesehen werden.
Die Zugehörigkeit zwischen Exponentenwerten in Exzeß 64-Form und
in Binärform läßt sich durch folgende Tabelle darstellen:
Es sei darauf verwiesen, daß durch die Exzeß 64-Form das Erfordernis
für ein Exponentenvorzeichen eliminiert wird. Da jedoch
die Multiplikator- und Multiplikandenexponenten zusammen addiert
werden können, was zu einem resultierenden Produktexponenten von
Exzeß 128 führt, wird es erforderlich, den Wert 6410 von dem
Multiplikator-Exponentenwert zu subtrahieren.
Gemäß Fig. 6 ist ersichtlich, daß die mit den Adressen 116 und
316 versehenen Speicherplätze als Gleitkommaakkumulatoren SA 1,
SA 2 und SA 3 dienen. Die mit den Adressen 016, 416, 516, 616 und
716 versehenen Speicherplätze dienen als Arbeitsakkumulatoren
und gehören nicht zu der vorliegenden Erfindung. Die mit den Adressen
816 bis f 16 bezeichneten Speicherplätze speichern Teilvielfache
der Multiplikandenmantisse. Insbesondere speichert
der mit der Adresse 816 bezeichnete Speicherplatz als Teilvielfach
das 0-fache (x 0) der Mantisse bzw. 56 Binärwerte mit dem
Wert "0".
Der mit der Adresse 916 bezeichnete Speicherplatz speichert ein
Teilvielfach mit einem Wert, das dem 1-fachen des Multiplikanden
(Mantisse) entspricht. Wie hier erläutert, werden jedoch die
Teilvielfachen von den 56 Bit-Multiplikandenwerten erzeugt, die
in 64 Bit-Registern gespeichert sind, wobei die 8 Bit-Positionen
des Exponenten nicht benutzt werden. Dies liefert eine erhöhte
Genauigkeit und eliminiert zusätzliche Verschiebeoperationen.
Dies bedeutet, daß bei einer Speicherung des 56 Bit-Multiplikanden
in dem 64 Bit-Registerspeicherplatz die beiden zusätzlichen
Ziffernpositionen tatsächlich den Wert eines solchen Multiplikanden
um 100 erniedrigen. Das Teilvielfach 1 entspricht somit
einem Wert des 0,01-fachen des Multiplikanden, was in Fig. 6 angezeigt
ist. Der durch die Adresse 916 bezeichnete Speicherplatz
speichert somit den Mantissenwert des Multiplikanden verschoben
um zwei hexadezimale Ziffern (8 Bit) nach rechts.
Der durch die Adresse a 16 bezeichnete Speicherplatz speichert
ein Teilvielfaches mit einem Wert entsprechend dem 10-fachen der
Multiplikandenmantisse. Bei einer Speicherung in dem festgelegten
64 Bit-Speicherplatz besitzt jedoch dieses Teilvielfache
einen Wert entsprechend dem 0,10-fachen des Multiplikanden, was
in Fig. 6 angezeigt ist. Anders ausgedrückt speichert der durch
die Adresse a 16 bezeichnete Speicherplatz den Mantissenwert des
Multiplikanden verschoben um eine hexadezimale Ziffer (4 Bit)
nach rechts. Der durch die Adresse b 16 bezeichnete Speicherplatz
speichert ein Teilvielfaches mit einem Wert entsprechend dem
11-fachen der Multiplikandenmantisse. Bei einer Speicherung in
dem festgelegten 64 Bit-Speicherplatz besitzt dieses Teilvielfache
einen Wert entsprechend dem 0,11-fachen des Multiplikanden,
was in Fig. 6 gezeigt ist. Dieser Speicherplatz speichert somit
ein Teilvielfaches mit einem Wert entsprechend der Summe der Teilvielfachen
an den durch die Adressen 916 und a 16 festgelegten
Speicherplätzen.
Der durch die Adresse c 16 festgelegte Speicherplatz speichert
ein Teilvielfaches mit einem Wert entsprechend dem 100-fachen
der Multiplikandenmantisse. Bei einer Speicherung in dem festgelegten
64 Bit-Speicherplatz besitzt dieses Teilvielfache einen
Wert entsprechend dem 1,00-fachen des Multiplikanden. Dieser
Speicherplatz speichert somit ein Teilvielfaches entsprechend
der Multiplikandenmantisse. Der nächste durch die Adresse d 16
festgelegte Speicherplatz speichert ein Teilvielfaches mit einem
Wert entsprechend dem 101-fachen des Multiplikanden. Bei einer
Speicherung in dem festgelegten 64 Bit-Speicherplatz besitzt
dieses Teilvielfache einen Wert gemäß dem 1,01-fachen des Multiplikanden.
Dieser Speicherplatz speichert somit ein Teilvielfaches
mit einem Wert entsprechend der Summe der Teilvielfachen
an den durch die Adressen 916 und c 16 festgelegten Speicherplätzen.
Gemäß Fig. 6 speichert der durch die Adresse e 16 festgelegte
nächste Speicherplatz ein Teilvielfaches mit einem Wert entsprechend
dem 110-fachen der Multiplikandenmantisse. Bei einer
Speicherung in dem festgelegten 64 Bit-Speicherplatz besitzt
dieses Teilfache einen Wert entsprechend dem 1,10-fachen des
Multiplikanden. Dieser Speicherplatz speichert somit ein Teilvielfaches
mit einem Wert entsprechend der Summe der Teilvielfachen
an den durch die Adressen c 16 und a 16 festgelegten Speicherplätzen.
Der letzte durch die Adresse f 16 festgelegte Speicherplatz
speichert ein Teilvielfaches mit einem Wert entsprechend
dem 111-fachen der Multiplikandenmantisse. Bei einer Speicherung
in dem festgelegten 64 Bit-Speicherplatz besitzt dieses
Teilvielfache einen Wert entsprechend dem 1,11-fachen des Multiplikanden.
Dieser Speicherplatz speichert somit ein Teilvielfaches
mit einem Wert entsprechend der Summe der Teilvielfachen
an den durch die Adressen 916 und e 16 festgelegten Speicherplätzen.
Die signifikanteste Bitposition der Adressen 816 bis f 16 wird
auf den Binärwert "1" gesetzt, um die Adressierung der oberen
8 Speicherplätze zu ermöglichen, wobei das Setzen in herkömmlicher
Weise erfolgt und nicht zu der vorliegenden Erfindung gehört.
Die drei niedrigrangigen Adreßbits werden jedoch dem Multiplikator
entnommen und den A- und B-Adressenmultiplexerschaltkreisen
des Adressenabschnittes 40-9 gemäß Fig. 2 zugeführt.
Die Auswahlabschnitte umfassen zwei 64 Bit-Verriegelungen,
16 Paare von 2 zu 1-Dateneingangsmultiplexern und 16 3 zu 1-Dateneingangsmultiplexern.
Die Dateneingangsmultiplexer gestatten die
Zuführung von Datensignalen zu den arithmetischen Logikeinheiten
von der Ausgangssammelschiene über Eingangsanschlüsse D 0 bis D 3,
die beiden Verriegelungen und das Q-Register. Die beiden Verriegelungen
speichern die aus den Gleitkommaspeicherabschnitten
ausgelesenen Datensignale, um sicherzustellen, daß ausreichend
Zeit für die Ausführung paralleler Operationen während der Lese-
und Ausgabeoperationen verfügbar ist.
Die ALU-Abschnitte führen alle normalen arithmetischen und
logischen Operationen aus. Diese Operationen umfassen die Übertragserzeugung,
den Überlauf, das Ergebnisvorzeichen, und die
Feststellung des Binärwertes "0" in allen Positionen sowie die
1er-Komplement- und die 2er-Komplementbildung. Wie erläutert,
sind die Eingangs-Bitsignale I 3 bis I 15 des Steuerspeichers 40-60
codiert, um festzulegen, welche Operation aus den möglichen drei
binären arithmetischen Operationen und fünf logischen Operationen
auszuführen ist. Gemäß Fig. 3 bilden die Signale der Übertragserzeugungs-
(G)- und Übertragsfortpflanzungsanschlüsse eines jeden
der Chipabschnitte zusammen mit den Übertragserzeugungs-Chipschaltkreisen
40-82 a bis 40-82 g des Blockes 40-82 Vorgriffsschaltkreise,
welche festlegen, wann die dem Übertragseingang
(CN) zugeführten Signale durch die verschiedenen Chipabschnitte
fortzupflanzen sind. Im Hinblick auf die vorliegende Erfindung
können die Vorgriffsschaltkreise des Blockes 40-82 einen herkömmlichen
Aufbau aufweisen und beispielsweise aus dem integrierten
Schaltkreis gemäß dem Typ SN74S182 bestehen.
Die Ausgangs-Multiplexerabschnitte umfassen einen 64 Bit-Multiplexer.
Dieser Multiplexer nimmt entweder Daten direkt von den
Gleitkommaabschnitten über eine der Verriegelungen oder von der
arithmetischen Logikeinheit ALU auf. Der Multiplexer liefert
Ausgangssignale an die Eingangssammelschiene zur Verteilung an
die verschiedenen Abschnitte des Befehlsprozessors SIP 40. Der
letzte Abschnitt 40-84 umfaßt gemäß Fig. 3 einen A-Adressenmultiplexerschaltkreis
40-840 und einen B-Adressenmultiplexerschaltkreis
40-842. Diese Schaltkreise liefern A-Auswahladressen mit
4 Bit und B-Auswahladressen mit 4 Bit, die den Eingangsanschlüssen
A 0-A 4 und B 0-B 4 eines jeden der Chipabschnitte gemäß Fig. 3
zugeführt werden. Die A-Auswahladresse ruft das Auslesen des
64 Bitinhalts eines ausgewählten Speicherplatzes hervor, der als
ein A-Operandeneingang der Recheneinheit ALU zur Verwendung oder
zur Verteilung als Ausgangssignal zugeführt wird.
Vier Gruppen von Eingangssignalen, die dem A-Adressenmultiplexerschaltkreis
40-840 zugeführt werden, umfassen Bits 0-3
des Steuerspeichers 40-60, Multiplikatorsignale MLTSS 010-MLTSS 210,
Bitsignale 2 und 3 von dem Task-Register 40-44 und Bitsignale
14 und 15 von dem Task-Register 40-44. Die Steuerbits 4 und 5
geben aufgrund ihrer Codierung vor, welcher der vier Gruppen von
Eingängen bei der Erzeugung der A-Auswahladreßsignale, die den
Eingängen A 0-A 3 zugeführt werden, zu benutzen sind. Die Steuerspeicherbits
0-3 adressieren durch ihre Codierung direkt einen
der 16 Gleitkommaspeicherplätze.
Die Signale MLTSS 010-MLTSS 210 entsprechen den Signalen, die von
den Bitpositionen 47, 51 und 55 des Q-Registers den Verschiebe-
Ausgangsanschlüssen der Chipabschnitte 12, 13 und 14 in Fig. 3
zugeführt werden. Diese Bitpositionen speichern die drei signifikantesten
Bits dreier aufeinanderfolgender Multiplikatorziffern,
die verwendet werden, um das geeignete Teilvielfache aus den Gleitkommaspeicherplätzen mit den Adressen 8-f gemäß der vorliegenden
Erfindung auszuwählen. Das Signal MLTSS 010 entspricht dem signifikantesten
Bit der drei Teilvielfach-Auswahlbits (100er-Position).
Das Signal MLTSS 110 entspricht dem nächst signifikantesten Bit
der drei Teilvielfach-Auswahlbits (10er-Position) und das Signal
MLTSS 210 entspricht dem am wenigsten signifikanten Bit der drei
Teilvielfach-Auswahlbits (1er-Position).
Die Bits 2 und 3 des Task-Registers werden benutzt, um einen
der drei Gleitkomma-Akkumulatorspeicherplätze mit den Adressen
1 bis 3 zu adressieren, wobei diese Speicherplätze benutzt werden,
um den A-Operanden oder Ergebnisdaten zu speichern. Die Bits
14 und 15 des Task-Registers werden benutzt, um einen anderen
der drei Gleitkomma-Akkumulatorspeicherplätze zu adressieren,
wobei diese Speicherplätze benutzt werden, um B-Operanden-Ursprungsdaten
zu speichern.
Die B-Auswahladresse veranlaßt das Auslesen des 64 Bit-Inhalts
des ausgewählten Speicherplatzes und das Anlegen als B-Operand
für die Benutzung durch die arithmetische Logikeinheit ALU oder
für die Ausgabe als ein Ausgangssignal. Die vier Gruppen von an
den B-Adressenmultiplexerschaltkreis 40-482 angelegten Eingangssignalen
umfassen Steuerspeicherbits 6 und 7, Steuerspeicherbits
60 bis 63, Task-Register-Bitsignale 2 und 3 und Task-Register-
Bitsignale 14 und 15. Die letzten zwei Gruppen von Eingangssignalen
führen die gleichen Operationen aus, wie sie zuvor im Hinblick
auf den A-Adressenmultiplexerschaltkreis 40-480 aufgezeigt
wurden. Die Steuerspeicherbits 6 und 7 geben durch ihre Codierung
vor, welche Gruppe von Eingangssignalen bei der Erzeugung der
B-Auswahladreßsignale, die an die Eingänge B 0-B 3 angelegt werden,
zu benutzen ist. Die Steuerspeicherbits 60-63 adressieren aufgrund
ihrer Codierung irgendeinen der 16 Gleitkommaspeicherplätze.
Dieser Abschnitt wird benutzt, um entweder den Exponenten- oder
Mantissenteil einer Fließkommazahl vor oder während der Bearbeitung
eines Gleitkommabefehls zu verschieben. Wie aus Fig. 3 erkennbar,
umfaßt dieser Abschnitt vier 16×16-Mehrziffer-Verschiebematrixchips
40-70 a bis 40-70 b und Logikschaltkreise des Blockes
40-72. Die Verschiebeschaltkreise können im Hinblick auf die vorliegende
Erfindung als herkömmlich angesehen werden. Beispielsweise
können sie gemäß der US-PS 38 18 203 ausgebildet sein.
Die Dateneingangsleitungen I 0 bis I 15 der Verschiebematrixchips
40-70 a bis 40-70 d sind an die Eingabesammelschiene für die Aufnahme
von Datenbits (Exponent- oder Mantissenteil) der zu verschiebenden
Zahl angeschlossen. Die spezielle Art der auszuführenden
Operation (z. B. Verschiebung, arithmetische Rechtsrotierung)
ist durch die Codierung der Steuerspeicherbits 21 bis 23
festgelegt, die den Funktions-Eingangsanschlüssen S 0-S 1 und R 0-R 1
der Matrixverschiebechips 40-70 a bis 40-70 d zugeführt werden.
Gemäß Fig. 3 weist jeder Matrixverschiebechip eine Gruppe von
Verschiebe-Eingangsanschlüssen D 0-D 3 auf, die die Verschiebung
der Bits von den Daten-Eingabeleitungen I 0-I 15 zu einer
Gruppe von Daten-Ausgabeleitungen O 0 -O 15 (z. B. von der Eingangssammelschiene
zu der Ausgangssammelschiene) steuern. Es sei
beispielsweise angenommen, daß die Steuerspeicherbits 21 bis 23
aufgrund ihrer Codierung den Wert 110 aufweisen (Rechtsverschiebung)
und der Verschiebewert aufgrund seiner Codierung den Wert 0001
(Einzelzahlverschiebung) aufweist. Bei diesen Bedingungen wird
das an den Eingangsanschluß I 0 angelegte Bit (z. B. das Bit 0)
um eine Bitposition verschoben und an dem Ausgabeanschluß O 1 ausgegeben.
Da jedoch der Ausgabeanschluß O 1 dem Ausgangssammelschienenbit
4 entspricht, wird das Bit 0 um vier Bits oder eine
hexadezimale Zahl verschoben, wie dies durch den Verschiebe-
Codewert von 0001 (siehe Fig. 5) gefordert wird.
Die Schaltkreise des Blockes 40-72 erzeugen die codierten Verschiebewerte.
Während solche Schaltkreise Multiplexerchips herkömmlicher
Bauart für die Auswahl von Signalen von anderen Signalquellen
aufweisen, sind der Einfachheit halber nur die Konstanten-
Generatorschaltkreise 40-720 dargestellt. Die die Signale
liefernden anderen Signalquellen können beispielsweise durch
Detektorschaltkreise zum Feststellen anfänglicher Binärwerte "0"
für Standardisierungsoperationen, durch Detektorschaltkreise
zum Feststellen der Exponentendifferenz usw. vorgegeben sein.
Die Schaltkreise 40-72 umfassen einen Festwertspeicher (ROM)-
Funktionen/Konstanten-Generatorschaltkreis 40-720, der für die
vereinfachte Erläuterung direkt an die Verschiebeschaltkreise
angeschlossen ist.
Signale des Steuerspeichers 40-60 werden den Eingangsschaltkreisen
des ROM-Schaltkreises 40-720 zugeführt. Der Schaltkreis
40-720 kann einen herkömmlichen Aufbau aufweisen und erzeugt eine
Konstante entsprechend einem Verschiebezählstand, die festlegt,
wie viele Ziffernverschiebungen (Mantissenziffern) durch die
Verschiebeeinrichtung 40-70 auszuführen sind. Der ROM-Schaltkreis
40-720 kann daher als Wandler angesehen werden, der die an seine
Eingangsschaltkreise angelegten Signale in Verschiebezählstände
umwandelt. Der aus dem Schaltkreis 40-720 herausgelesene Verschiebezählstand
wird den Anschlüssen D 0-D 0 der Verschiebematritzen
40-70 a bis 40-70 d zugeführt.
Der beim Aufbau der Mikroprozessorabschnitte gemäß den Fig. 2
und 3 benutzte Chip sei nunmehr anhand der Fig. 4 und 5 in näheren
Einzelheiten erläutert. Gemäß Fig. 4 ist ersichtlich, daß
jeder Chip 38 Stiftanschlüsse aufweist, die Anschlüsse OE und CP
für die Aufnahme einer Freigabespannung und eines Taktsignales
umfassen. Die mit D 0-D 3 bezeichneten Stiftanschlüsse empfangen
Datensignale von der Ausgangssammelschiene. Die Stiftanschlüsse
P und G legen Ausgangssignale an eine der Stufen der Übertrags-
Vorgriffsschaltkreise an. Der Übertrags-Eingangs-Stiftanschluß
CN erhält ein Eingangssignal von den erwähnten Vorgriffsschaltkreisen
zugeführt. Ein Übertrags-Ausgangs-Stiftanschluß CN + e
wird nicht benutzt.
Der Verschiebeausgangs/Verschiebeeingangs-Stiftanschluß RF 0 erhält
ein Eingangssignal von dem Verschiebeausgangs/Verschiebeeingangs-
Stiftanschluß RF ₃ eines vorausgehenden Chips zugeführt.
Der Q-Verschiebeausgang/Verschiebeeingang-Stiftanschluß Q 0 erhält
ein Eingangssignal von dem Q-Verschiebeausgang/Verschiebeeingang-
Stiftanschluß Q 3 eines vorhergehenden Chips zugeführt.
Der Überlauf-Stiftanschluß OVF, der Funktion-Signalnull-Stiftanschluß
F = 0 und der Ausgangs-Stiftanschluß F 0 für das signifikanteste
Bit liefern zusätzliche Hinweise, die für die vorliegende
Erfindung ohne Bedeutung sind.
Die Stiftanschlüsse Y 0-Y 3 liefern Ausgangssignale an die Verschiebematrixchips während die Stiftanschlüsse I 0-I 8 Steuersignale
zugeführt erhalten, die durch die Steuerpeicher-Mikrobefehlsfelder
MS, MF und MD bzw. ES, EF und ED für die Mantissenziffer
bzw. Exponentenziffer entsprechend erzeugt werden. Die
Stiftanschlüsse A 0-A 3 und B 0-B 3 werden wie zuvor erwähnt mit
den A-Auswahl- und B-Auswahl-Adreßsignalen der Schaltkreise des
Blockes 40-84 beaufschlagt.
Gemäß Fig. 5 ist erkennbar, daß jeder Chip, wie er durch den
Chip 2 dargestellt ist, einen 16×4 Bit-Wort-Speicher 40-918 mit
wahlfreiem Zugriff und eine arithmetische Hochgeschwindigkeits-
Logikeinheit 40-902 aufweist. Unter der Steuerung der 4 Bit-
Adresse, die an die Stiftanschlüsse A 0-A 3 angelegt wird, wird
der Inhalt irgendeiner der 16 Wort-Speicherplätze zu einer Gruppe
von A-Anschlüssen ausgelesen. In gleicher Weise wird unter der
Steuerung der 4 Bit-Adresse, die an die Stiftanschlüsse B 0-B 3 angelegt
wird, der Inhalt irgendeiner der gleichen 16 Wort-Speicherplätze
an einer Gruppe von B-Anschlüssen ausgelesen.
Bei Freigabe durch ein an den Eingang RAMEN durch die ALU-
Bestimmungsdecodierschaltkreise des Blockes 40-926 angelegtes
Signal werden neue Datensignale, die über einen Multiplexerschaltkreis
40-920 mit drei Eingängen angelegt werden, in den
durch die B-Auswahladreßsignale definierten Wortspeicherplatz
eingeschrieben. Die Eingänge des Multiplexerschaltkreises 40-920
sind so verbunden, daß sie eine Rechtsverschiebung der Signale
an den Ausgangsklemmen F 0-F 3 der Recheneinheit ALU 40-902 um
eine Bitposition, oder eine Linksverschiebung dieser Signale um
eine Bitposition bzw. überhaupt keine Verschiebung unter der
Steuerung der Schaltkreise des Blockes 40-916 vor dem Einschreiben
in den festgelegten Speicherplatz gestatten.
Die A-Ausgangsanschlüsse und B-Ausgangsanschlüsse sind mit der
Gruppe von A-Verriegelungen und der Gruppe von B-Verriegelungen
entsprechend verbunden. Diese Verriegelungen speichern die dorthin
übertragenen Signale während des Intervalles, während dem
das dem Takteingang CP zugeführte Signal den Binärwert "0" aufweist.
Dies unterdrückt die Möglichkeit irgendwelcher Wettbewerbszustände,
die während des Intervalls auftreten könnten,
wenn neue Daten in dem Speicher RAM-918 einzuschreiben sind.
Die arithmetische Logikeinheit ALU, die durch die an die Stiftanschlüsse
I 3-I 5 angelegten und durch die Schaltkreise des
Blockes 40-906 decodierten Signale vorbereitet wird, ist in der
Lage, irgendeine der drei binären arithmetischen oder der fünf
logischen Operationen mit den beiden 4 Bit-Eingangssignalen auszuführen,
die an die R-Operanden und S-Operanden-Eingangsanschlüsse
angelegt werden. Den R-Operanden-Eingangsanschlüssen
werden Signale direkt von den Stiftanschlüssen D 0-D 3 oder
von den A-Verriegelungen 40-916 über einen Multiplexerschaltkreis
40-908 mit zwei Eingängen zugeführt.
Den S-Operanden-Eingangsanschlüssen werden Signale von den A-
Verriegelungen 40-916, den B-Verriegelungen 40-914 oder von dem
Q-Register 40-922 über einen Multiplexerschaltkreis 40-910 mit
drei Eingängen zugeführt. Die Multiplexer 40-908 und 40-910
werden durch die an die Stiftanschlüsse I 0-I 2 angelegten Signale
gesteuert, die durch die Operanden- Decodierschaltkreise des
Blockes 40-912 decodiert werden. Die Stiftanschlüsse D 0-D 3 werden
benutzt, um Datensignale in die Arbeitsregister des Chips zu
laden und den Inhalt der RAM-Speicherplätze zu modifizieren. Das
Q-Register 40-922 ist ein 4 Bit-Register, das - wie zuvor erwähnt -
benutzt wird, um den Multiplikator während der Multiplikation
zu speichern.
Die an den Anschlüssen F 0-F 3 vorliegenden ALU-Ausgangssignale
werden einem Eingang eines Ausgangsmultiplexerschaltkreises
40-904 mit zwei Eingängen, einem Eingang des Eingangsmultiplexerschaltkreises
40-920 mit drei Eingängen und einem Eingang des
Multiplexerschaltkreises 40-924 mit drei Eingängen, dem das
Q-Register 40-922 zugeordnet ist, zugeführt. Die tatsächliche
Bestimmung (z. B. Datenausgabe an den Stiftanschlüssen Y 0-Y 3,
Eingabe in den RAM 40-918 oder das Q-Register 40-922) wird aufgrund
der an die Stiftanschlüsse I 6-I 8 angelegten Signale ausgewählt,
die durch die Schaltkreise des Blockes 40-926 decodiert
werden.
Der Multiplexerschaltkreis 40-904 wird benutzt, um an dem A-Anschluß
des RAM 40-918 ausgelesenen Signale bzw. Signale an
den Ausgangsanschlüssen F 0-F 4 der Logikeinheit ALU 40-902 auszuwählen. Die Auswahl erfolgt unter Steuerung der an die Stiftanschlüsse
I 6-I 8 angelegten Signale. Wie zuvor erwähnt, liefert
der Multiplexerschaltkreis 40-920 Eingangssignale von drei Quellen,
die die Logikeinheit ALU 40-902 umfassen.
Hierdurch kann der Ausgangswert der arithmetischen Logikeinheit
ALU unverschoben gespeichert werden, um eine Position nach rechts
verschoben werden (Multiplikation mit 2) oder um eine Position
nach links verschoben werden (Division durch 2). Es sei darauf
verwiesen, daß die Verschiebeschaltkreise die Stiftanschlüsse
RF 0 und RF 3 umfassen, die an die Puffer-Treiberschaltkreise 40-934
und 40-936 entsprechend angeschlossen sind. Im Linksverschiebemodus
wird der Treiberschaltkreis 40-934 betätigt und der RF 0-
Multiplexereingang freigegeben. Im Rechtsverschiebemodus wird
der Treiberschaltkreis 40-936 betätigt und der RF 3-Multiplexereingang
freigegeben. Im Nichtverschiebemodus werden sowohl die
Treiberschaltkreise 40-934 als auch 40-936 nicht betätigt und
die erwähnten Multiplexereingänge werden nicht ausgewählt. Die
Auswahl der Operationen schreitet unter der Steuerung der an die
Stiftanschlüsse I 6-I 8 angelegten Signale fort.
In ähnlicher Weise ist das Q-Register 40-922 ebenfalls an den
Multiplexerschaltkreis 40-924 mit drei Eingängen angeschlossen,
der ebenfalls Verschiebeschaltkreise enthält. Dies gestattet
die Speicherung der ALU-Ausgangssignale im unverschobenen Zustand,
im um eine Bitposition nach rechts verschobenen Zustand
(Multiplikation mit 2) oder im um eine Bitposition nach links
verschobenen Zustand (Division durch 2). Die Verschiebeschaltkreise
umfassen Stiftanschlüsse Q 0 und Q 3, die an die Puffer-
Treiberschaltkreise 40-932 und 40-930 entsprechend angeschlossen
sind. Im Linksverschiebemodus wird der Pufferschaltkreis 40-932
betätigt und der Q 0-Multiplexereingang freigegeben. Im Rechtsverschiebemodus
wird der Pufferschaltkreis 40-930 betätigt und
der Q 3 Multiplexereingang freigegeben. Im Nichtverschiebemodus
werden beide Pufferschaltkreise 40-932 und 40-930 nicht betätigt
und die erwähnten Multiplexereingänge werden nicht ausgewählt.
Erneut erfolgen die Verschiebeoperationen unter der Steuerung
der an die Stiftanschlüsse I 6-I 8 angelegten Signale. Datensignale
werden in das Q-Register 40-922 unter der Steuerung der an den
Takteingang-Stiftanschluß CP angelegten Signale gesteuert.
Fig. 5 veranschaulicht ferner die Art und Weise, in der die
Ausgangs-Stiftanschlüsse Y 0-Y 3 des Chips 2 mit verschiedenen
Eingangsanschlüssen eines jeden der Mehrpositions-Verschiebeschaltkreischips
40-70 a bis 40-70 d über die Eingangssammelschiene
verbunden sind. Ferner zeigt Fig. 5 die Verschiebeschaltkreis-
Stiftverbindungen von der Ausgangssammelschiene zu den Dateneingangs-
Stiftverbindungen D 0-D 3 des Chips 2.
Anhand der Fig. 1-7, den beispielhaften Werten gemäß den Fig.
8-10 und dem Flußdiagramm gemäß Fig. 11 sei im folgenden die
Wirkungsweise der vorliegenden Erfindung beschrieben. Vor der
Erläuterung eines Beispiels ist es von Vorteil, die Art und
Weise der Ausführung einer Fließkommamultiplikation kurz zu
erläutern. Wie zuvor erwähnt, weisen alle Zahlen in binärer
Fließkommadarstellung eine Mantisse auf, die kleiner als eins
ist und einen Exponenten auf, der den Teil der Zahl darstellt,
welcher ihre Größe anzeigt. Wie zuvor erwähnt, erstreckt sich
in dem vorliegenden System der Bereich der Exponenten von +63₁₀
bis -64₁₀.
Für Zahlen größer als eins wird die binäre Kommastelle nach
links bewegt (z. B. Division durch 2) bis sich die am weitesten
links befindliche binäre 1 rechts von der binären Kommastelle
befindet. Für Zahlen, die bereits Bruchteile darstellen, wird
die binäre Kommastelle nach rechts bewegt (z. B. Multiplikation
mit 2) bis die erste binäre 1 angetroffen wird. In solchen
Fällen sind alle Zahlen Bruchteile größer oder gleich einhalb
aber kleiner als 1 und werden als "normiert" bezeichnet.
Im vorliegenden System wird angenommen, daß die zu multiplizierenden
Zahlen in normierter Form vorliegen. Die Art und
Weise der Normierung (z. B. Vornormierung oder Nachnormierung)
kann als herkömmlich angesehen werden und gehört nicht zum Verständnis
der vorliegenden Erfindung. Zur weiteren Erläuterung
der Normierung sei auf das Kapitel 15 des Buches "The Logic of
Computer Arithmetic" von Ivan Flores, erschienen bei Prentice
Hall Inc., Copyright 1963, verwiesen.
Es sei angenommen, daß die Zentraleinheit CPU 20 einen Gleitkommabefehl
an den Befehlsprozessor SIP 40 überträgt, der durch
seine Codierung eine Multiplikation vorgibt. Aufgrund des in
das Task-Register 40-44 geladenen Befehls, führt der Prozessor
SIP 40 jene Operationen aus, wie sie zum Abruf und zur Speicherung
normierter Multiplikanden- und Multiplikatorwerte erforderlich
sind.
Es sei in dem Beispiel angenommen, daß der Multiplikandenwert
in hexadezimaler Form gemäß Fig. 8 anfänglich in dem 64 Bit-
Akkumulatorspeicherplatz SA 1 des Gleitkommaspeichers gespeichert
ist, während der Multiplikatorwert in hexadezimaler Form gemäß
Fig. 8 anfänglich in dem Akkumulatorspeicherplatz SA 2 gespeichert
ist. Das Laden der Gleitkommaakkumulatoren SA 1 und SA 2 erfolgt
in bekannter Weise, wie zuvor erwähnt wurde.
Bei dem hier gegebenen Beispiel stellen sich die Werte des Multiplikanden und des Multiplikators gemäß Fig. 8 folgendermaßen
dar:
Andere Speicherplätze entsprechend den Adressen 8-F speichern in
hexadezimaler Form die Werte von Teilvielfachen, die in der zu
erläuternden Weise von dem Multiplikanden erzeugt werden und während
der Bearbeitungsphase der Multiplikationsoperation benutzt
werden. Alle Werte liegen in normierter Form vor.
Fig. 9 veranschaulicht die Werte von Teilprodukten und von Endprodukten,
die in dem temporären Akkumulatorspeicherplatz des
Gleitkommaspeicherplatzes während der Multiplikationsoperation
gespeichert sind. Fig. 10 veranschaulicht die Multiplikator- und
Teilvielfach-Ziffernwerte, die während der Multiplikationsoperation
in dem Q-Registerabschnitt gespeichert sind. Dieses Register
speichert ferner die Exponentenwerte und wird bei derartigen Berechnungen
benutzt. Wie erläutert, wird das Q-Register bei der
Erzeugung von Teilvielfachen benutzt.
Es sei nunmehr auf das Flußdiagramm gemäß Fig. 11 Bezug genommen.
In dieser Figur sind schematisch die während der verschiedenen
Zyklen der Operation ausgeführten Operationen dargestellt. Die
verschiedenen benutzten Abkürzungen und ihre Bedeutungen sind
folgende:
1. S= sign;
2. M= Mantisse;
3. X= Exponent;
4. T= temporäres Register mit der
Adresse 0;
5. B I= Eingangssammelschiene;
6. BO= Ausgangssammelschiene;
7. (A)= Inhalt des durch die Adressse
in der Klammer festgelegten
Speicherplatzes.
Während die Übertragungen von Vorzeichen- und Exponentenwerten
in dem Flußdiagramm gemäß Fig. 11 dargestellt sind, werden sie
wegen der einfacheren Erläuterung der Wirkungsweise des bevorzugten
Ausführungsbeispieles der vorliegenden Erfindung nicht
beschrieben. Darüber hinaus sei darauf verwiesen, daß während der
Erzeugung der verschiedenen Teilvielfachen die Vorzeichen- und
Exponentenwerte den Binärwert "0" aufweisen. Ferner seien die
verschiedenen ALU-, Q-Registerabschnitte usw. kollektiv als ALU,
Q-Register usw. zwecks einfacher Erläuterung bezeichnet.
Gemäß dem Flußdiagramm in Fig. 11 ist ersichtlich, daß der Mikroprozessorabschnitt
40-8 des Befehlsprozessors SIP 40 unter Mikroprogrammsteuerung
die Operationen während eines Operationszyklus
ausführt, der mit $ SML-SA bezeichnet ist. Dies bedeutet, daß
der 56-Bit-Mantissenteil des in dem temporären Akkumulator SA 1
gespeicherten Multiplikanden durch die A-Adressenmultiplexerschaltkreise
40-480 gemäß Fig. 3 aufgrund des DA-Feldes (0001)
eines ersten in das Register 40-62 gemäß Fig. 2 ausgelesenen
Mikrobefehlswortes adressiert wird. Gleichzeitig hiermit wird
der durch die Adresse C (z. B. 1100) festgelegte Speicherplatz
von dem B-Adressenmultiplexerschaltkreis 40-482 aufgrund des
NA-Feldes des gleichen Mikrobefehlswortes adressiert.
Der Multiplikanden-Mantissenteil wird von dem Speicherplatz mit
der Adresse 0001 in die A-Verriegelung (z. B. Verriegelung 40-916
gemäß Fig. 5) ausgelesen. Von dort aus wird er durch die Multiplexerschaltkreise
mit zwei Eingängen und die Recheneinheit
ALU übertragen und an einen Eingang des Multiplexers mit drei
Eingängen angelegt. Danach wird der Mantissenteil in den Speicherplatz
mit der Adresse 1100 (siehe Fig. 5) eingeschrieben.
Während dieser Schreiboperation werden die Bitoperationen 56-63
des Speicherplatzes mit der Adresse 1100 auf den Binärwert "0"
gesetzt. Hierdurch wird ein Teilvielfaches mit einem Wert entsprechend
dem 1,00-fachen der Multiplikandenmantisse (z. B. der
56 Bit-Multiplikand wird mit 100 multipliziert) in dem 64 Bit-
Speicherplatz mit der Adresse C (siehe Fig. 8) abgelegt.
Gemäß Fig. 11 wird während des nächsten durch $ SMC-SA-LLN
festgelegten Operationszyklus der Mantissenteil des Multiplikators
im Speicherplatz SA 2 gemäß Fig. 8 zu dem temporären
Akkumulatorspeicherplatz mit der Adresse 0 übertragen. Zusätzlich
wird der Wert von 64₁₀ von dem Exponenten des Multiplikators
subtrahiert und das Ergebnis in dem temporären Akkumulatorspeicherplatz
gespeichert. Wie zuvor erwähnt, stellt die Subtraktion
des Wertes von 64₁₀ von dem Exponenten sicher, daß sich
der Exponent des Produktes in einer Exzeß 64-Form befindet.
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld
eine Adresse von 0010 an die A-Adressenmultiplexerschaltkreise
40-480, während das NA-Feld eine Adresse von 0000 an die B-Adressenmultiplexerschaltkreise
40-482 anlegt. Hierdurch werden
die Multiplikatormantissen- und Exponentenwerte aus dem Akkumulator
SA 1 in die A-Verriegelungen ausgelesen. Von dort werden
diese Werte über den Multiplexer mit zwei Eingängen in die
arithmetische Logikeinheit ALU übertragen.
Der Wert von 64₁₀ wird unter Mikroprogrammsteuerung von dem
Exponentenwert subtrahiert. Die Multiplikatormantisse und die
modifizierten Exponentenwerte werden von der Einheit ALU über
die Multiplexerschaltkreise mit drei Eingängen zu dem Gleitkommaspeicher
übertragen und in den temporären Akkumulatorspeicherplatz
eingeschrieben. Dies bedeutet, daß der Multiplikator-
Mantissenwert in den Bitpositionen 0-53 gespeichert ist und
daß das Resultat der Exponentensubtraktion in den Bitpositionen
54-63 des temporären Akkumulatorspeicherplatzes gespeichert ist.
Die Art und Weise der Ausführung der zuvor erwähnten Subtraktion
kann als bekannt vorausgesetzt werden. Da derartige Operationen
nicht zum Verständnis der vorliegenden Erfindung gehören, sei
hier nicht weiter darauf eingegangen.
Auf die vorstehenden Operationen folgt ein $ SML-TG-Operationszyklus,
wobei der Inhalt des Speicherplatzes mit der Adresse C
um zwei Ziffernpositionen (z. B. 8 Bit) nach rechts verschoben wird,
um ein Teilvielfaches entsprechend dem 0,01-fachen des Multiplikanden
zu erzeugen (der 56 Bit-Multiplikand wird mit 1 multipliziert),
wobei das Teilvielfache temporär an dem Speicherplatz
mit der Adresse e gespeichert wird. Dieser Wert wird bei der
Erzeugung der restlichen Teilvielfach-Werte verwendet.
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld eine
Adresse von 1100 an die A-Multiplexerschaltkreise 40-480, während
das NA-Feld eine Adresse von 1110 an die B-Adressenmultiplexerschaltkreise
40-482 anlegt. Hierdurch wird der Inhalt der Adresse
C (das 1,00-fache der Multiplikandenmantisse) in die A-Verriegelungen
über die Multiplexerschaltkreise mit zwei Eingängen
40-908 ausgelesen und über die Logikeinheit ALU 40-902 und den
Ausgangsmultiplexer 40-904 in die Verschiebeschaltkreise 40-70 a
bis 40-70 d gemäß Fig. 5 eingegeben.
Unter der Steuerung des Verschiebesteuerfeldes SC des Mikrobefehlswortes
werden die über die Eingangssammelschiene BI angelegten
Mantissen- und Exponentensignale 8 Bitpositionen nach
rechts verschoben (festgelegt durch den Konstantengenerator) und
an die Ausgangssammelschiene B 0 angelegt. Danach werden die verschobenen
Mantissen- und Exponentensignale über den Multiplexerschaltkreis
40-908, die Logikeinheit ALU 40-902 und den Multiplexer
40-920 übertragen und unter der Adresse e eingeschrieben.
Durch die vorstehende Maßnahme ergibt sich der Binärwert "0" in
den Bitpositionen 0-7 der Chips 40-802 und 40-804 und hinsichtlich
der in den Bitpositionen 8-31 der Chips 40-806-40-816
gemäß Fig. 3 gespeicherten Multiplikandenmantisse. Zu diesem
Zeitpunkt wird unter der Adresse e der Wert entsprechend dem
0,01-fachen der Multiplikandenmantisse (das 1-fache des Multiplikanden
für eine 56 Bit-Mantisse) gespeichert.
Gemäß Fig. 11 beginnt der Mikroprozessorabschnitt 40-8 des Befehlsprozessors
SIP 40 als nächstes mit einem $ SML-TG-1 Operationszyklus.
Während dieses Zyklus werden Signale entsprechend
dem Inhalt der Adresse c (1,00-fache der Multiplikandenmantisse)
um eine Ziffer nach rechts rotiert und unter der Adresse f gespeichert.
Hierdurch wird der Wert entsprechend dem 0,10-fachen
der Multiplikandenmantisse unter der Adresse f abgelegt. Aufgrund
eines weiteren Mikrobefehlswortes legt das DA-Feld eine
Adresse von 1100 an die A-Multiplexerschaltkreise 40-480 an,
während das NA-Feld eine Adresse von 1111 an die B-Adressenmultiplexerschaltkreise
40-482 anlegt. Hierdurch wird der Inhalt
unter der Adresse c in die Verschiebeschaltkreise 40-70 a bis
40-70 d gemäß Fig. 5 ausgelesen. Unter der Steuerung des SC-
Feldes werden die Mantissen- und Exponentensignale um 4 Bitpositionen
nach rechts verschoben und unter der Adresse e eingeschrieben.
Die Übertragung erfolgt in der gleichen Weise, wie
dies bei dem Zyklus $ SML-TG der Fall war.
Gemäß Fig. 11 tritt der Befehlsprozessor SIP 40 in einen $
SML-TG-2 Operationszyklus ein, in welchem der Mikroprozessorabschnitt
40-8 Signale entsprechend dem Inhalt unter der Adresse
e in die Abschnitte des Q-Registers 40-922 überträgt.
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld
eine Adresse von 1110 an die A-Adressenmultiplexerschaltkreise
40-480. Hierdurch wird der Inhalt unter der Adresse e in die
A-Verriegelungen ausgelesen. Danach wird dieser Inhalt unter
Mikroprogrammsteuerung (z. B. durch die an die Stiftanschlüsse
I 0-I 8 angelegten Signale) über die Multiplexerschaltkreise
40-908, die Logikeinheit ALU 40-902 und den Q-Multiplexer 40-924
in das Q-Register 40-922 übertragen. Hierdurch wird der Wert
entsprechend dem 0,01-fachen der Multiplikandenmantisse in dem
Q-Register abgelegt.
Während des nächsten Zyklus $ SML-TG 3 addiert der Mikroprozessorabschnitt
40-8 des Befehlsprozessors SIP 40 unter Mikroprogrammsteuerung
den Inhalt des Q-Registers zu dem Inhalt unter
der Adresse f und speichert das Ergebnis unter der Adresse b.
Hierdurch wird die Erzeugung des Teilvielfachen vervollständigt,
dessen Wert dem 0,11-fachen der Multiplikandenmantisse gemäß
Fig. 8 entspricht.
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld eine
Adresse von 1111 an die A-Adressenmultiplexerschaltkreise 40-480
an, während das NA-Feld eine Adresse von 1011 an die B-Adressenmultiplexerschaltkreise
40-482 anlegt. Hierdurch werden Signale
entsprechend dem Inhalt unter der Adresse f in die A-Verriegelungen
ausgelesen. Danach überträgt der Mikroprozessorabschnitt
40-8 unter Mikroprogrammsteuerung diese Signale über die Multiplexer
mit zwei Eingängen und legt diese an den R-Operandeneingangsanschluß
der arithmetischen Logikeinheit ALU an. Gleichzeitig
werden Signale entsprechend dem Inhalt des Q-Registers
über die Multiplexerschaltkreise mit drei Eingängen an den S-
Operandeneingangsanschluß der arithmetischen Logikeinheit ALU
angelegt. Die Logikeinheit ALU addiert unter Mikroprogrammsteuerung
die Operandensignale, und das Ergebnis wird über die Multiplexerschaltkreise
mit drei Eingängen übertragen und unter der
Adresse b eingeschrieben. Hierdurch wird der Wert entsprechend
dem 0,11-fachen der Multiplikandenmantisse unter der Adresse b
abgelegt, wie aus Fig. 8 ersichtlich.
Gemäß Fig. 11 tritt der Befehlsprozessor SIP 40 in einen Operationszyklus
$ SML-TG 4 ein, wobei der Mikroprozessorabschnitt
40-8 Signale entsprechend dem Inhalt unter der Adresse e zu der
Adresse 9 überträgt. Hierdurch wird die Erzeugung des Teilvielfachen
mit einem Wert entsprechend dem 0,01-fachen der Multiplikandenmantisse
(das 1-fache einer 56 Bit-Mantisse) vervollständigt.
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld eine
Adresse von 1110 an die A-Adressenmultiplexerschaltkreise 40-480
an, während das NA-Feld eine Adresse von 1001 an die B-Adressenmultiplexerschaltkreise
40-482 anlegt. Über die zuvor beschriebenen
Datenwege überträgt der Mikroprozessorabschnitt 40-8 die
Signale entsprechend dem Inhalt unter der Adresse e zu der Adresse
9. Hierdurch wird der Wert entsprechend dem 0,01-fachen
der Multiplikandenmantisse unter der Adresse 9 gemäß Fig. 8 abgelegt.
Als nächstes tritt der Befehlsprozessor SIP 40 in einen Operationszyklus
$ SML-TG 5 ein, in welchem der Mikroprozessorabschnitt
40-8 Signale entsprechend dem Inhalt unter der Adresse f
zu der Adresse a überträgt. Dies vervollständigt die Erzeugung
des Teilvielfachen mit einem Wert entsprechend dem 0,10-fachen
der Multiplikandenmantisse (d. h., das 10-fache einer 56 Bit-
Mantisse).
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld
eine Adresse von 1111 an die A-Adressenmultiplexerschaltkreise
40-480 an, während das NA-Feld eine Adresse von 1010 an die B-
Adressenmultiplexerschaltkreise 40-482 anlegt. Durch die zuvor
beschriebenen Datenwege überträgt die Mikroprozessorabschnitt
40-8 die Signale entsprechend dem Inhalt unter der Adresse f zu
der Adresse a. Hierdurch wird der Wert entsprechend dem 0,10-fachen
der Multiplikandenmantisse gemäß Fig. 8 unter der Adresse
a abgelegt.
Auf den vorstehenden Zyklus folgt der Operationszyklus $ SML-TG 6.
Während dieses Zyklus addiert der Mikroprozessorabschnitt
40-8 den Inhalt des Registers a zu dem Inhalt an der Adresse c
und speichert das Ergebnis unter der Adresse d. Dies vervollständigt
die Erzeugung des Teilvielfachen mit einem Wert entsprechend
dem 1,01-fachen der Multiplikandenmantisse (d. h., das
1,01-fache einer 56 Bit-Mantisse).
Aufgrund eines weiteren Mikrobefehlswortes legt das DA-Feld
eine Adresse von 1100 an die A-Adressenmultiplexerschaltkreise
40-480 an, während das NA-Feld eine Adresse von 1101 an die B-
Adressenmultiplexerschaltkreise 40-482 anlegt. Wie zuvor beschrieben,
addiert die arithmetische Logikeinheit ALU des Mikroprozessorabschnittes
40-8 unter Mikroprogrammsteuerung die Signale
entsprechend dem Inhalt unter der Adresse c, der an die R-
Operandeneingangsanschlüsse angelegt wird, zu den Signalen entsprechend
dem Inhalt des Q-Registers, der an die S-Operandeneingangsanschlüsse
angelegt wird. Danach wird das Ergebnis an
der Adresse b eingeschrieben. Hierdurch wird der Wert entsprechend
dem 1,01-fachen der Multiplikandenmantisse an der Adresse
d abgelegt, was dem in Fig. 8 gezeigten Wert entspricht.
Gemäß Fig. 11 führt der Mikroprozessorabschnitt 40-8 als nächstes
den Operationszyklyus $ SML-TG 7 aus. Während dieses Zyklus wird
der Inhalt unter der Adresse d zu dem Inhalt unter der Adresse f
addiert und das Ergebnis wird an der Adresse f eingeschrieben.
Dies vervollständigt die Erzeugung des Teilvielfachen mit einem
Wert entsprechend dem 1,11-fachen der Multiplikandenmantisse
(d. h., das 111-fache einer 56Bit-Mantisse).
Aufgrund eines nächsten Mikrobefehlswortes legt das DA-Feld
eine Adresse von 1101 an die A-Adressenmultiplexerschaltkreise
40-480 an, während das NA-Feld eine Adresse von 1111 an die B-
Adressenmultiplexerschaltkreise 40-482 anlegt. Wie zuvor erwähnt,
ruft das vorstehende Mikrobefehlswort eine Addition der
Signale entsprechend dem Inhalt der Adresse c zu den Signalen
entsprechend dem Inhalt unter der Adresse f hervor, wobei diese
Signale an die Operandeneingänge der arithmetischen Logikeinheit
ALU angelegt werden. Danach wird das Ergebnis unter der
Adresse f eingeschrieben. Hierdurch wird der Wert entsprechend
dem 1,11-fachen der Multiplikandenmantisse an der Adresse f abgelegt,
was in Fig. 8 dargestellt ist.
Der Mikroprozessorabschnitt 40-8 tritt als nächstes in einen
Operationszyklus $ SML-TG 8 ein, während welchem er den Inhalt
des Q-Registers von dem Inhalt unter der Adresse f subtrahiert
und das Ergebnis unter der Adresse e abspeichert. Dies vervollständigt
die Erzeugung des Teilvielfachen mit einem Wert entsprechend
dem 1,10-fachen der Multiplikandenmantisse (d. h. das
110-fache einer 56 Bit-Mantisse), wodurch die Erzeugungsphase
des Teilvielfachen bei der Multiplikation beendet wird.
Aufgrund eines nächsten Mikrobefehlswortes legt das DA-Feld eine
Adresse von 1111 an die A-Adressenmultiplexerschaltkreise 40-480,
während das NA-Feld eine Adresse von 1110 an die B-Adressenmultiplexerschaltkreise
40-482 anlegt. Unter Mikroprogrammsteuerung
wird die arithmetische Logikeinheit ALU in die Lage versetzt,
den an den S-Operandeneingangsanschluß angelegten Inhalt des
Q-Registers von dem unter der Adresse f ausgelesenen und an den
R-Operandeneingangsanschluß angelegten Inhalt zu subtrahieren.
Danach wird das Ergebnis unter der Adresse e eingeschrieben.
Hierdurch wird der Wert entsprechend dem 1,10-fachen der Multiplikandenmantisse
unter der Adresse e abgelegt, wie dies aus
Fig. 8 ersichtlich ist.
Der Befehlsprozessor SIP 40 beginnt mit der Bearbeitungsphase
der Multiplikation durch Eintritt in einen Operationszyklus $
SML-PP-MPLI. Während dieses Zyklus überträgt der Mikroprozessorabschnitt
40-8 entsprechend dem Inhalt des temporären
Akkumulators zu dem Q-Register.
Aufgrund eines nächsten Mikrobefehlswortes legt das DA-Feld eine
Adresse von 0000 an die A-Adressenmultiplexerschaltkreise 40-480.
Unter Mikroprogrammsteuerung werden Signale entsprechend dem
anfänglichen Inhalt des temporären Akkumulators über die Logikeinheit
ALU und den Q-Multiplexerschaltkreis mit drei Eingängen
in das Q-Register übertragen. Hierdurch wird die Multiplikatormantisse
und der berechnete Exponent in dem Q-Register abgelegt.
Diese Werte sind in Fig. 10 für den Zyklus $ SML-PP-MPLI dargestellt,
und sie entsprechen den Werten, wie sie gemäß Fig. 9
während des Zyklus $ SML-SA-LLN gespeichert sind.
Als nächstes tritt der Befehlsprozessor SIP 40 in einen Operationszyklus
$ SML-LMT-L ein, in welchem der Mikroprozessorabschnitt
40-8 die Bitpositionen der Mantisse im temporären Akkumulator
auf den Binärwert "0" setzt und die Multiplikatormantisse
im Q-Register um eine Bitposition nach rechts verschiebt. Hierdurch
wird der Inhalt des temporären Akkumulators zur Vorbereitung
auf die Speicherung von Teilprodukten gelöscht und der Inhalt
des Q-Registers um eine Bitposition nach rechts verschoben.
Weiterhin wird hierdurch der Inhalt der Bitpositionen 47, 51
und 55 des Q-Registers, die einer ersten Multiplikatorzahl entsprechen,
an die A-Adressenmultiplexerschaltkreise 40-480 angelegt.
Aufgrund eines nächsten Mikrobefehlswortes legt das DA-Feld eine
Adresse von 0000 an die B-Adressenmultiplexerschaltkreise 40-482 an.
Der Mikroprozessorabschnitt 40-8 überträgt unter Mikroprogrammsteuerung
den Inhalt des temporären Akkumulators zu den B-Verriegelungen
und über den nachgeschalteten Multiplexerschaltkreis
mit drei Eingängen zu dem S-Operandeneingang der Logikeinheit
ALU. Danach wird unter Mikroprogrammsteuerung der Inhalt auf
den Binärwert "0" gesetzt und über den Multiplexerschaltkreis
mit drei Eingängen übertragen und in den temporären Akkumulator
zurückgeschrieben. Fig. 9 veranschaulicht den Inhalt des temporären
Akkumulators, der einen Mantissenwert von Null und einen
erzeugten Multiplikatorexponenten nach Beendigung des Operationszyklus
$ SML-LMLT-L aufweist.
Die in dem Q-Register gespeicherte Multiplikatormantisse wird
zusätzlich unter Mikroprogrammsteuerung dem Q-Multiplexerschaltkreis
mit drei Eingängen zugeführt, der den Inhalt um eine Bitposition
nach rechts verschiebt, worauf das Resultat in das Q-Register
zurückgeladen wird.
Gemäß Fig. 3 wird der resultierende Inhalt der Bitpositionen
47, 51 und 55 des Q-Registers den drei Eingangsanschlüssen der
A-Adressenmultiplexerschaltkreise 40-480 zugeführt und der vierte
Eingangsanschluß wird auf den Binärwert "1" durch das Bit 0 des
Mikrobefehlswortes gesetzt. Der verschobene Inhalt des Q-Registers
und der Wert der Teilvielfach-Zahl, die an die A-Adressenmultiplexerschaltkreise
40-480 angelegt wird, ist in Fig. 10 dargestellt.
Der ausgewählte Multiplikator-Zahlenwert von 1000 ruft
das Auslesen des 0-fach-Multiplikanten unter der entsprechenden
Adresse 1000 hervor. Zusätzlich werden die Bitpositionen 20-22
des Adreßregisters 40-42 auf den Binärwert "0" gesetzt. Wie zuvor
erwähnt, wird dieses Register 40-42 benutzt, um eine Anzahl
von Operationszyklen zu zählen, was einen Austritt nach Beendigung
bestimmter Operationen ermöglicht.
Gemäß Fig. 11 tritt der Befehlsprozessor SIP 40 als nächstes in
einen Operationszyklus $ SML-EL 5 M ein. In diesem Zyklus überträgt
der Mikroprozessorabschnitt 40-8 das um eine Bitposition
nach rechts verschobene Teilvielfache in den temporären Akkumulator.
Ferner verschiebt dieser Zyklus den Exponenten in dem
temporären Akkumulator sowie den Inhalt des Q-Registers um eine
Bitposition nach rechts und erhöht den Adreßzählerinhalt um eins.
Während dieses Zyklus wird unter Mikroprogrammsteuerung das aus
den A-Verriegelungen ausgelesene, ausgewählte Teilvielfache über
den Multiplexerschaltkreis mit zwei Eingängen dem R-Operandeneingang
zugeführt, während der Inhalt mit dem Binärwert "0" des temporären
Akkumulators dem S-Operandeneingang zugeführt wird, wie
dies durch das DA-Feld eines weiteren Mikrobefehlswortes festgelegt
ist. Die arithmetische Logikeinheit ALU wird durch das
Mikrobefehlswort in die Lage versetzt, den Wert des Teilvielfachen
("0") zu dem Wert des Teilproduktes ("0") zu addieren. Das
sich ergebende Teilprodukt wird dem Multiplexerschaltkreis mit
drei Eingängen übertragen. Vor dem Einschreiben in den temporären
Akkumulator wird der Inhalt des Teilproduktes durch den Multiplexerschaltkreis
40-920 um eine Bitposition nach rechts verschoben.
Gleichzeitig hiermit verschiebt der Mikroprozessorabschnitt 40-8
unter Mikroprogrammsteuerung den Inhalt des Q-Registers zur Auswahl
des nächsten Teilvielfachen um eine Bitposition nach rechts.
Die Verschiebung des Inhalts des Q-Registers erfolgt erneut über
die Q-Multiplexerschaltkreis mit drei Eingängen. Die Bitpositionen
47, 51 und 55 des Q-Registers legen im so verschobenen Zustand
den Wert von 000 an die drei Eingangsanschlüsse des A-Adressenmultiplexerschaltkreises 40-480 an, während der vierte Eingangsanschluß
erneut auf den Binärwert "1" gesetzt wird (siehe Fig. 10).
Der ausgewählte Teilvielfach-Zahlenwert 1000 ruft erneut das Auslesen
des 0-fachen des Multiplikanden-Teilvielfachen unter der
entsprechenden Adresse 1000 hervor.
Der Inhalt des Registers 40-42 wird zusätzlich unter Mikroprogrammsteuerung
um 1 erhöht. Hierdurch werden die Bitpositionen
21 und 22 auf den Binärwert "1" bzw. "0" gesetzt. Während nachfolgender
Operationszyklen wird der in dem temporären Akkumulator
gespeicherte Exponentwert herausgeschoben. Da die Verarbeitung von
Exponenten für das Verständnis der vorliegenden Erfindung nicht
erforderlich ist, müssen derartige Verschiebeoperationen nicht
weiter erläutert werden.
Gemäß Fig. 11 tritt der Befehlsprozessor SIP 40 sodann in einen
Operationszyklus $ SML-L 5 M ein. Während dieses Zyklus addiert
der Mikroprozessorabschnitt 40-8 das ausgewählte Teilvielfache
zu dem Teilprodukt in dem temporären Akkumulator und legt die
Summe, verschoben um eine Bitposition nach rechts, in dem temporären
Akkumulator ab. Ferner wird der Inhalt des Q-Registers um
eine Bitposition nach rechts verschoben, der Inhalt des Adreßzählers
um 1 erhöht und ein Wert von 02 an den Konstantengeneratorchip
40-720 gemäß Fig. 3 zur Auswahl eines geeigneten
Verschiebezählstandes angelegt, wobei dieser Verschiebezählstand
den Verschiebeschaltkreisen 40-70 a bis 40-70 d während des nächsten
Zyklus $ SML-L 5 M-LF zugeführt wird.
Es ist aus Fig. 11 erkennbar, daß der Zyklus $ SML-L 5 M wiederholt
wird, bis die Adreßzähler-Bitpositionen AD 21 und 22 einen
Zählstand von drei speichern, worauf in den Zyklus $ SML-L 5 M-LF
eingetreten wird.
Betrachtet man vorstehenden Sachverhalt in näheren Einzelheiten,
so ist aus den Fig. 8 und 10 erkennbar, daß der ausgewählte Zahlenwert
des Teilvielfachen von 1000 erneut das Auslesen des 0-fachen
des Multiplikanden-Teilfachen unter der entsprechenden
Adresse von 1000 in die A-Verriegelungen hervorruft. Von dort
werden die Teilvielfachen-Signale dem R-Operandeneingang der
Logikeinheit ALU zugeführt. Während dieses Zyklus wird unter
Steuerung durch das DA-Feld eines weiteren Mikrobefehlswortes der
Inhalt des Teilproduktes des temporären Akkumulators in die B-
Verriegelungen ausgelesen und dem S-Operandeneingang der Logikeinheit
ALU zugeführt. Die arithmetische Logikeinheit ALU addiert
die Teilvielfachwerte ("0"), zu den Teilproduktwerten ("0"), und
das Ergebnis wird zu dem Multiplexerschaltkreis mit drei Eingängen
übertragen. Vor dem Einschreiben in den temporären Akkumulator
wird das Ergebnis um eine Bitposition durch den Multiplexerschaltkreis
nach rechts verschoben und unter der Adresse
0000 eingeschrieben.
Der Inhalt des Q-Registers wird unter Mikroprogrammsteuerung um
eine Bitposition durch den Multiplexerschaltkreis mit drei Eingängen
zwecks Auswahl den nächsten Teilvielfachen nach rechts
verschoben. Nach der Verschiebung legen die Bitpositionen 47,
51 und 55 des Q-Registers den Wert von 000 gemäß Fig. 10 an die
A-Adressenmultiplexerschaltkreise 40-480 an. Ferner wird der
Adreßzähler um 1 erhöht.
Gemäß Fig. 10 wird der Zyklus $ SML 5 M mit dem gleichen Ergebnis
(Teilvielfachwert von "0" und Teilproduktwert von "0") wiederholt.
Diese Werte sind in Fig. 10 dargestellt. Am Ende dieses
Zyklus speichert der Adreßzähler einen Zählstand von 3, worauf
der Befehlsprozessor SIP 40 mit dem Zyklus $ SML-L 5 M-LF beginnt.
Gemäß Fig. 11 verschiebt während dieses Zyklus der Befehlsprozessor
SIP 40 unter Mikroprogrammsteuerung den Inhalt des temporären
Akkumulators um zwei Ziffern (8 Bitpositionen) nach rechts und
speichert den verschobenen Inhalt zurück in den temporären Akkumulator.
Gemäß Fig. 9 weist der Teilprodukt-Mantissenwert des
temporären Akkumulators noch in allen Stellen den Binärwert "0
auf, während der Exponentenwert heraus verschoben worden ist und
12 Multiplikatorbits verarbeitet worden sind.
Während des Zyklus $ SML-L 5 M-LF wird die Konstante, die eine aus
dem ROM-Chipgenerator 40-720 ausgelesene 8 Bit-Verschiebung festlegt,
an die Eingangsanschlüsse D 0-D 3 eines jeden der Verschiebeschaltkreise
40-70 a bis 40-70 d angelegt. Unter der Steuerung eines
weiteren Mikrobefehlswortes wird der ausgelesene Inhalt des Teilproduktes
in die A-Verriegelungen ausgelesen und über die Logikeinheit
ALU an die Eingangsanschlüsse I 0-I 15 eines jeden der Verschiebeschaltkreise 40-70 a bis 40-70 d angelegt, die diesen Inhalt
um zwei Ziffern nach rechts verschieben. Das an den Ausgangsanschlüssen
00-015 eines jeden der Verschiebeschaltkreise 40-70 a
bis 40-70 d auftretende Resultat wird über den Multiplexerschaltkreis
mit zwei Eingängen, die arithmetische Logikeinheit ALU und
den Multiplexerschaltkreis mit drei Eingängen übertragen und in
den temporären Akkumulator eingeschrieben.
Gemäß Fig. 11 ist ersichtlich, daß der Befehlsprozessor SIP 40
mit einem Operationszyklus $ SML-L 4 M beginnt. Für eine vereinfachte
Erläuterung ist dieser Zyklus ebenso wie die Zyklen $
SML-L 4 M, $ SML-L 4 M, $ SML-L 4 M-LF, $ SML-L 3 M, $ SML-L 3 M-LF, $
SML-L 2 M, $ SML-L 2 M-LF und $ SML-L 1 M in Fig. 11 als getrennter
Zyklus dargestellt. Diese Zyklen wiederholen jedoch lediglich
die im Zusammenhang mit den Zyklen $ SML-L 5 M und $ SML-L 5 M-LF
beschriebenen Operationen. Es sei daher darauf verwiesen, daß
die gleiche Folge durch einen Zählstand verwirklicht werden kann,
der vorgibt, wievielmal jeder der beiden Zyklen zu wiederholen
ist.
Hinsichtlich des vorliegenden Beispiels sei den Fig. 9 und 10
entnommen, daß die Zyklen $ SML-L 4 M, $ SML-L 4 M-LF, $ SML-L 3 M
und $ SML-L 3 M-LF Resultate erzeugen, die mit jenen identisch
sind, welche während der Zyklen $ SML-L 5 M und $ SML-L 5 M-LF
erzeugt werden. Eine weitere Erörterung dieser Zyklen ist daher
nicht erforderlich.
Während des ersten Zyklus $ SML-L 2 M legen die Bitpositionen
47, 51 und 55 des Q-Registers den Wert 010 gemäß Fig. 10 an die
A-Adressenmultiplexerschaltkreise 40-480 an. Der ausgewählte Teilvielfach
Zahlenwert von 1010 ruft das Auslesen des 0,10-fachen
des Multiplikanden-Teilvielfachen unter der Adresse 1010 hervor,
wobei dieses Teilvielfache den Wert gemäß Fig. 8 besitzt. Das
ausgewählte Teilvielfache wird in die A-Verriegelungen eingelesen
und über den Multiplexerschaltkreis mit zwei Eingängen dem
S-Operandeneingang der Logikeinheit ALU zugeführt. Der "0"-
Inhalt des Teilproduktes des temporären Akkumulators wird in
die B-Verriegelungen ausgelesen und über den Multiplexerschaltkreis
mit drei Eingängen dem R-Operandeneingang der Logikeinheit
ALU zugeführt.
Unter der Steuerung eines weiteren Mikrobefehlswortes addiert
die arithmetische Logikeinheit ALU das ausgewählte Teilvielfache
zu dem "0"-Teilprodukt, verschiebt die Summe durch den Multiplexerschaltkreis
mit drei Eingängen um eine Bitposition nach
rechts und speichert den resultierenden Wert gemäß Fig. 9 in dem
temporären Akkumulator. Erneut wird der Inhalt des Q-Registers
zwecks Auswahl des nächsten Teilvielfachen um eine Bitposition
nach rechts verschoben, und der Adressenzähler wird um 1 erhöht,
worauf er die Werte gemäß Fig. 10 erzeugt.
Während des nächsten Zyklus $ SML-L 2 M legen die Bitpositionen
47, 51 und 55 des Q-Registers den Wert 100 an die A-Adressenmultiplexerschaltkreise
40-480 an. Der ausgewählte Teilvielfach-
Zahlenwert von 1100 ruft das Auslesen des 1,00-fachen des Multiplikanden-
Teilvielfachen unter der Adresse 1100 in die A-Verriegelungen
hervor, worauf dieser Wert über den Multiplexerschaltkreis
mit zwei Eingängen dem R-Operandeneingang der arithmetischen
Logikeinheit ALU zugeführt wird. Gleichzeitig wird der Teilproduktinhalt
des temporären Akkumulators in die B-Verriegelungen
ausgelesen und über den Multiplexerschaltkreis mit drei Eingängen
dem S-Operandeneingang der Logikeinheit ALU zugeführt. Der Inhalt
des Teilvielfachen unter der Adresse 1100 wird unter Mikroprogrammsteuerung
zu dem Inhalt des Teilproduktes addiert, und das
Ergebnis wird durch den Multiplexerschaltkreis mit drei Eingängen
um eine Bitposition nach rechts verschoben und in dem temporären
Akkumulator gespeichert. Der gespeicherte Wert ist in Fig. 9 dargestellt.
Erneut wird der Inhalt des Q-Registers um eine Bitposition
zwecks Auswahl des nächsten Teilvielfachen nach rechts
verschoben, und der Inhalt des Adreßzählers wird um 1 erhöht.
Die sich ergebenden Werte sind in Fig. 10 dargestellt.
Während des nächsten Zyklus $ SML-L 2 M wird das 0-fache des
Multiplikanden-Teilvielfachen durch die ausgewählte Teilvielfachziffer
1000 ausgewählt. Dies führt zu einer Verschiebung
des Teilproduktes um eine Bitposition nach rechts und zur Speicherung
in dem temporären Akkumulator gemäß Fig. 9. Erneut wird
der Inhalt des Q-Registers um eine Bitposition nach rechts verschoben,
und es wird der Inhalt des Adreßzählers um 1 erhöht.
Die sich ergebenden Werte sind in Fig. 10 dargestellt.
Während des letzten Zyklus $ SML-L 2 M wird das 1,10-fache des
Multiplikanden-Teilvielfachen durch die ausgewählte Teilvielfachziffer
1110 ausgewählt. Dieses Teilvielfache wird in der zuvor
beschriebenen Weise zu dem Teilprodukt des temporären Akkumulators
addiert, und es wird die Summe um eine Bitposition nach
rechts verschoben und in dem temporären Akkumulator abgelegt.
Das Ergebnis ist in Fig. 9 dargestellt. Erneut wird der Inhalt
des Q-Registers um eine Bitposition nach rechts verschoben, und
der Inhalt des Adreßzählers wird um 1 auf einen Zählstand von 3
erhöht, wie dies in Fig. 10 dargestellt ist. Während dieses Zyklus
wird ein Ziffernwert von 02 dem Konstantengeneratorchip 40-720
zugeführt.
Gemäß Fig. 11 beginnt nun der Befehlsprozessor SIP 40 mit einem
Operationszyklus $ SML-L 2 M-LF, wobei er den Inhalt des temporären
Akkumulators um eine Anzahl von Bitpositionen nach rechts
verschiebt, die durch die aus dem Generatorchip 40-720 ausgelesene
Konstante festgelegt ist. Diese Konstante legt erneut
eine 8 Bit-Verschiebung fest. Der Adreßzähler wird zusätzlich
um 1 erhöht.
Aufgrund eines weiteren Mikrobefehlswortes wird das Teilprodukt
des temporären Akkumulators in die B-Verriegelungen ausgelesen
und über den Multiplexerschaltkreis mit drei Eingängen, die Logikeinheit
ALU, und den Ausgangs-Multiplexerschaltkreis den Eingangsanschlüssen
I 0-I 15 der Mehrziffer-Verschiebeschaltkreise
40-70 a bis 40-70 d zugeführt. Das an den Ausgangsanschlüssen O 0-
O 15 der Verschiebeschaltkreise 40-70 a bis 40-70 d auftretende verschobene
Teilprodukt wird über den Multiplexerschaltkreis mit
zwei Eingängen, die Logikeinheit ALU und den Multiplexerschaltkreis
mit drei Eingängen dem temporären Akkumulator zugeführt.
Das Teilproduktergebnis ist in Fig. 9 dargestellt. Ferner wird
unter Mikroprogrammsteuerung der Inhalt des Adreßzählers um 1
erhöht.
In gleicher Weise führt der Befehlsprozessor SIP 40 als nächstes
eine Reihe von $ SML-L 1 M-Zyklen aus, wobei der Mikroprozessorabschnitt
40-8 unter Mikroprogrammsteuerung die durch die Werte
1010, 1001, 1010 und 1010 ausgewählten Teilvielfachen gemäß
Fig. 10 addiert. Insbesondere ruft während eines ersten $ SML-L 1 M-Zyklus der ausgewählte Teilvielfach-Zahlenwert von 1010 die
Addition des 0,10-fachen des unter der Adresse 1010 gespeicherten
Multiplikanden-Teilvielfachen zu dem in dem temporären Akkumulator
gespeicherten Teilprodukt hervor. Die Summe wird um eine
Bitposition nach rechts verschoben und das in Fig. 9 dargestellte
Resultat wird in den t 07439 00070 552 001000280000000200012000285910732800040 0002002830334 00004 07320emporären Akkumulator zurückgeführt. Der
Inhalt des Q-Registers wird um eine Bitposition nach rechts verschoben,
und der Inhalt des Adreßzählers wird um 1 erhöht, wodurch
die Werte gemäß Fig. 10 erzeugt werden.
Während des zweiten $ SML-L 1 M-Zyklus ruft der ausgewählte Teilvielfach-
Zahlenwert von 1001 die Addition des 0,01-fachen des
Multiplikanden-Teilvielfachen zu dem in dem temporären Akkumulator
gespeicherten Teilprodukt hervor. Das resultierende Teilprodukt
und der Inhalt des Q-Registers werden um 1 Bitposition
nach rechts verschoben, und der Inhalt des Adreßzählers wird
um 1 erhöht, wodurch die Werte gemäß den Fig. 9 und 10 erzeugt
werden. Während des letzten $ SML-L 1 M-Zyklus ruft der ausgewählte
Teilvielfach-Zahlenwert von 1010 die Addition des 0,10-fachen
des Multiplikanden-Teilvielfachen zu dem in dem temporären
Akkumulator gespeicherten Teilprodukt hervor, worauf sich
nach einer Rechtsverschiebng um eine Bitposition die in Fig. 9
gezeigten Werte ergeben. Der Inhalt des Q-Registers wird erneut
um eine Bitposition nach rechts verschoben, und der Inhalt des
Adreßzählers wird um 1 erhöht, wodurch die Werte gemäß Fig. 10
erzeugt werden.
Gemäß Fig. 11 beginnt der Befehlsprozessor SIP 40 als nächstes
mit einem Operationszyklus $ SML-L 1 M-S 4, wobei das letzte Teilvielfache,
das durch einen anderen Zahlenwert von 1010 ausgewählt
wurde, zu dem in dem temporären Akkumulator gespeicherten
Teilprodukt addiert wird und wobei das Ergebnis um eine Bitposition
nach rechts verschoben und in dem temporären Akkumulator
gespeichert wird. Hierdurch wird die Bearbeitung der gesamten
56 Bits der Multiplikatormantisse vervollständigt. Es sei darauf
verwiesen, daß 60 Bits tatsächlich verarbeitet werden. Während
der letzten vier Zyklen weist jedoch eines der drei Bits (das
am wenigsten signifikante Bit) den Binärwert "0" auf, was sich
aus der Verschiebung der Binärwerte "0" in das Q-Register ergibt.
Es ist ersichtlich, daß der temporäre Akkumulator das endgültige
Ergebnis der Multiplikation speichert, wie dieses in Fig. 9 angezeigt
ist.
Der nächste Zyklus ist ein $ SML-PL-RND-Zyklus, während welchem
der Befehlsprozessor SIP 40 Signale entsprechend dem Mantissenwert
zu dem Funktionsregister 40-40 überträgt, um die Werte der
Bits 4-7 zu testen. Unter der Annahme, daß diese Bits nicht den
Wert "0" aufweisen, tritt der Befehlsprozessor SIP 40 in einen
$ SML-PL-RND-Zyklus ein. Während dieses Zyklus liest der Mikroprozessorabschnitt
40-8 den Inhalt des endgültigen Produkts aus
dem temporären Akkumulator aus, verschiebt diesen um eine Ziffer
(4 Bitpositionen) und speichert das Ergebnis in dem Akkumulator
SA 1, wie in Fig. 8 angezeigt. Der Akkumulator SA 1 speichert
somit nunmehr den Wert 50B 23B 31EB 0000 FO. Die Auslese- und Verschiebeoperationen werden unter Mikroprogrammsteuerung in der
zuvor beschriebenen Weise ausgeführt.
Dem obengenannten Zyklus folgt ein $ SML-ADX-Zyklus, in welchem
der Mikroprozessorabschnitt 40-8 den Exponentenwert im Q-Register
zu dem Exponentenwert des in dem Akkumulator SA 1 gespeicherten
Multiplikanden addiert und das Ergebnis in dem Akkumulator SA 1
ablegt. Der tatsächliche Exponentenwert weist eine Länge von
7 Bit auf und besetzt die Bitpositionen 56 bis 62. Ein Binärwert
"0" wird jedoch in der Bitposition 63 eingefügt.
Die Werte und Ergebnisse sind folgende:
Es ist festzustellen, daß die drei Additionen der oben dargestellten
Exponenten einander entsprechen. Die Addition des Q-
Register-Exponentenwertes von 00100100 zu dem SA 1-Exponentenwert
von 11001100 liefert das Ergebnis 11110000 bzw. F 0, welches als
endgültiges Produkt in dem temporären Akkumulator gemäß Fig. 8
gespeichert wird.
Es sei darauf verwiesen, daß diese Exponentenadditionen ebenso
wie die vorhergehenden Berechnungen als herkömmlich ausgeführt
angesehen werden können, wobei die 64 Bitpositionen des Q-Registers
und die Speicherplätze des temporären Akkumulators benutzt werden.
Die zuvor beschriebenen Exponentenoperationen ebenso wie die
Teilvielfach-Operationen werden in ähnlicher Weise ausgeführt.
Als nächstes tritt der Befehlsprozessor SIP 40 in einen Zyklus
$ YOURMOVE ein, bei welchem er der Zentraleinheit CPU 20
signalisiert, daß er die Multiplikation beendet hat.
Aus vorstehendem wird erkennbar, daß die Einrichtung gemäß der
vorliegenden Erfindung in der Lage ist, eine Multiplikation
schnell auszuführen. Durch Verwendung des am wenigsten signifikanten
Bits der am wenigsten signifikanten drei aufeinanderfolgenden
hexadezimalen Ziffern ist die Anordnung gemäß der vorliegenden
Erfindung in der Lage, den Aufwand und die Anzahl der
Verschiebeoperationen auf ein Minimum zu reduzieren. Dies bedeutet,
daß nur eine Verschiebung von einem Bit der Multiplikatorziffern
erforderlich ist, um ein nächstes Teilvielfaches
auszuwählen.
Während die vorliegende Erfindung anhand der Verarbeitung von
drei Bits auf einmal veranschaulicht worden ist, liegt es auf
der Hand, daß die vorliegende Erfindung auch Anwendung finden
kann, wenn eine größere Anzahl von Bits auf einmal verarbeitet
wird. Die Anzahl der Bits hängt von dem Betrag der zur Verfügung
stehenden Speicherplätze ab. Beispielsweise erfordert eine Verarbeitung
von vier Bits auf einmal 16 Teilvielfach-Adressen,
während bei n Bits 2 n Teilvielfach-Adressen erforderlich sind.
Es sei darauf verwiesen, daß die bei der Zuteilung der Bitpositionen
des Chips bei dem bevorzugten Ausführungsbeispiel der
vorliegenden Erfindung benutzte Übereinkunft eine solche ist, bei
der die signifikanteste Bitposition mit 0 bezeichnet ist (Q 0, F 0),
während die am wenigsten signifikante Bitposition mit 3 bezeichnet
ist (Q 3, F 3). Die Hersteller von Mikroprozessorchips können
bei der Beschreibung ihrer Chips verschiedene Konventionen benutzen,
was zu einer Änderung der spezifischen Stiftverbindungen
beim Zusammenbau des bevorzugten Ausführungsbeispieles führt.
Beispielsweise benutzt der Chip-Hersteller, Advanced Micro
Devices Inc., eine Konvention, die der in dem bevorzugten Ausführungsbeispiel
beschriebenen Konvention entgegengesetzt ist.
Die Stiftanschlüsse Q 0, Q 3 und F 0, F 3 müßten somit ausgetauscht
werden, wenn derartige Chips in dem vorliegenden Ausführungsbeispiel
verwendet werden.
Claims (3)
1. Digitale Einrichtung zum Multiplizieren eines
Multiplikanden durch Auswahl von Teilvielfachen des
Multiplikanden in Übereinstimmung mit den Bits eines
Multiplikators, dadurch gekennzeichnet,
daß mehrere hintereinandergeschaltete an sich bekannte
Multibit-Mikroprozessor-Chips (40-800 bis 40-832)
verwendet werden, wobei jeder Chip (40-800; . . .;
40-832) eine arithmetische Logikeinheit (ALU, 40-902),
einen Speicher mit wahlfreiem Zugriff (RAM; 40-918)
und einen Schieberegisterabschnitt (SR, 40-70 a bis
40-70 a) aufweist und wobei die arithmetische
Logikeinheit der Addition zweier Digitalzahlen dient,
von denen wenigstens eine dem Speicher mit wahlfreiem
Zugriff entnommen wird und die sich ergebende Digitalzahl
in dem Schieberegisterabschnitt abgelegt wird,
daß die Bitzellen des Schieberegisterabschnittes an
entsprechende Ausgangsanschlüsse (Y 0, Y 1, Y 2, Y 3) des
Chips (40-800; . . .; 40-832) und die Adreßleitungen des
Speichers mit wahlfreiem Zugriff an entsprechende
Eingangsanschlüsse (A 0, A 1, A 2, A 3) des Chips angeschlossen
sind, wobei vor der Ausführung einer jeden
Multiplikation Multiplikator- und Multiplikandenbits
in dem Speicher mit wahlfreiem Zugriff (RAM; 40-918)
gespeichert werden und eine Gruppe von Teilvielfachen
des Multiplikanden durch den Chip (40-800; . . .;
40-832) erzeugt und in dem Speicher (RAM) gespeichert
wird, so daß jedes Teilvielfache das Produkt eines
bestimmten Wertes einer ausgewählten Gruppe von
Multiplikatoren und Multiplikanden darstellt und diese
Gruppe von Teilvielfachen der Anzahl unterschiedlicher
Zahlenkombinationen in dieser Gruppe entspricht, wobei
jedes Teilvielfache an einem Speicherplatz in dem
Speicher gespeichert ist, dessen Addresse dem speziellen
Wert der Multiplikatorzahlengruppe entspricht,
daß die Verschiebeausgänge (Q 0, Q 3) der Chips (40-800;
. . .; 40-832) in Reihe hintereinandergeschaltet sind,
um die serielle Verschiebung des Multiplikanden durch
die Chips zu ermöglichen, und daß ein Teilvielfache-
Auswahlschaltkreis (40-480) an Verschiebeausgänge
(Q 3) einer ausgewählten Gruppe von Chips
(40-800; . . .) angeschlossen ist, um Signale
entsprechend der Gruppe von Zahlen des Multiplikators
zugeführt zu erhalten, die den Eingangsanschlüssen
(A 0-A 3) des Speichers (RAM) mit wahlfreiem Zugriff zu
dessen Adressierung zugeführt werden, um eine
entsprechende Folge von Teilvielfachen zu liefern,
wenn der Multiplikator durch die Chips (40-800 bis
Fig. 40-832) geschoben wird.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß der Speicher mit
wahlfreiem Zugriff (RAM; 40-918) ferner in einem
vorbestimmten Speicherplatz (Adresse 0000) das
Multiplikations-Teilprodukt speichert, wobei die
arithmetische Logikeinheit (ALU; 40-902) zwei Gruppen
von Eingangsklemmen (RS) aufweist, denen die Signale
zur Addition zugeführt werden, die durch das
Teilvielfache und das Teilprodukt in dem Speicher mit
wahlfreiem Zugriff vorgegeben sind.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß eine Gruppe von Ausgangsklemmen
(F 0 . . . F 3) selektiv an die Schreibeingänge
des Speichers mit wahlfreiem Zugriff (RAM; 40-918)
derart angeschlossen ist, daß nach einer Addition des
Teilproduktes aus dem Speicher mit wahlfreiem Zugriff
zu dem Teilvielfachen das neue Teilprodukt in den
gleichen Speicherplatz (Adresse 0000) des Speichers
mit wahlfreiem Zugriff eingeschrieben wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/815,891 US4130879A (en) | 1977-07-15 | 1977-07-15 | Apparatus for performing floating point arithmetic operations using submultiple storage |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2830334A1 DE2830334A1 (de) | 1979-01-25 |
DE2830334C2 true DE2830334C2 (de) | 1988-02-25 |
Family
ID=25219114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782830334 Granted DE2830334A1 (de) | 1977-07-15 | 1978-07-10 | Multipliziereinrichtung |
Country Status (7)
Country | Link |
---|---|
US (1) | US4130879A (de) |
JP (1) | JPS5829538B2 (de) |
AU (1) | AU515091B2 (de) |
CA (1) | CA1097818A (de) |
DE (1) | DE2830334A1 (de) |
FR (1) | FR2397677A1 (de) |
GB (1) | GB2001189B (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US4276607A (en) * | 1979-04-09 | 1981-06-30 | Sperry Rand Corporation | Multiplier circuit which detects and skips over trailing zeros |
US4295202A (en) * | 1979-11-09 | 1981-10-13 | Honeywell Information Systems Inc. | Hexadecimal digit shifter output control by a programmable read only memory |
JPS5776634A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Digital signal processor |
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" |
US4594679A (en) * | 1983-07-21 | 1986-06-10 | International Business Machines Corporation | High speed hardware multiplier for fixed floating point operands |
DE3335424A1 (de) * | 1983-09-29 | 1985-04-18 | Siemens AG, 1000 Berlin und 8000 München | Multiplikationswerk und verfahren zu dessen betrieb |
FR2552903A1 (fr) * | 1983-10-03 | 1985-04-05 | Moulin Andre | Multiplieur |
NL8304186A (nl) * | 1983-12-06 | 1985-07-01 | Philips Nv | Geintegreerde processor voor het verwerken van woordsgewijze ontvangbare informatie. |
WO1986002181A1 (en) * | 1984-09-28 | 1986-04-10 | Motorola, Inc. | A digital signal processor for single cycle multiply/accumulation |
JPS61213927A (ja) * | 1985-03-18 | 1986-09-22 | Hitachi Ltd | 浮動小数点演算処理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL225593A (de) * | 1957-03-07 | |||
US3372269A (en) * | 1961-06-30 | 1968-03-05 | Ibm | Multiplier for simultaneously generating partial products of various bits of the multiplier |
US3730425A (en) * | 1971-05-03 | 1973-05-01 | Honeywell Inf Systems | Binary two{40 s complement multiplier processing two multiplier bits per cycle |
US3871578A (en) * | 1972-10-10 | 1975-03-18 | Digital Equipment Corp | Data processing system for multiplying and intergerizing floating point numbers |
US4041292A (en) * | 1975-12-22 | 1977-08-09 | Honeywell Information Systems Inc. | High speed binary multiplication system employing a plurality of multiple generator circuits |
-
1977
- 1977-07-15 US US05/815,891 patent/US4130879A/en not_active Expired - Lifetime
-
1978
- 1978-04-10 CA CA300,810A patent/CA1097818A/en not_active Expired
- 1978-05-12 JP JP53056481A patent/JPS5829538B2/ja not_active Expired
- 1978-06-28 AU AU37562/78A patent/AU515091B2/en not_active Expired
- 1978-07-10 DE DE19782830334 patent/DE2830334A1/de active Granted
- 1978-07-12 FR FR7820915A patent/FR2397677A1/fr active Granted
- 1978-07-14 GB GB7829875A patent/GB2001189B/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
GB2001189B (en) | 1982-07-07 |
FR2397677B1 (de) | 1984-07-20 |
GB2001189A (en) | 1979-01-24 |
US4130879A (en) | 1978-12-19 |
CA1097818A (en) | 1981-03-17 |
FR2397677A1 (fr) | 1979-02-09 |
JPS5421141A (en) | 1979-02-17 |
AU515091B2 (en) | 1981-03-12 |
AU3756278A (en) | 1980-01-03 |
DE2830334A1 (de) | 1979-01-25 |
JPS5829538B2 (ja) | 1983-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2900324C2 (de) | ||
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
EP0079471B1 (de) | Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit | |
DE2724125C2 (de) | ||
DE2846117C2 (de) | Datenprozessor | |
DE1934365C3 (de) | Umschaltanordnung für eine Multiprogramm-Datenverarbeitungsanlage | |
DE3751540T2 (de) | Verfahren und Vorrichtung zur Datenverarbeitung. | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE2830334C2 (de) | ||
DE2902496A1 (de) | Digitale datenmultiplikationsanordnung | |
DE1162111B (de) | Gleitkomma-Recheneinrichtung | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2746505A1 (de) | Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme | |
DE1197650B (de) | Parallel-Addierer | |
DE102007056104A1 (de) | Verfahren und Vorrichtung zur Multiplikation von Binäroperanden | |
DE69629646T2 (de) | Verfahren zur durchführung einer "rotate through carry" operatiion | |
DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor | |
DE2952072C2 (de) | Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen | |
DE68923100T2 (de) | Formatwandlerschaltung für Digitaldaten. | |
DE2365778A1 (de) | Rechner | |
DE1184122B (de) | Addiervorrichtung | |
DE3785624T2 (de) | Digitaler signalprozessor mit dividierfunktion. | |
DE1549449A1 (de) | Einrichtung zur Verarbeitung von Gleitkommazahlen | |
DE3485786T2 (de) | Inter-element-verarbeitungsgeraet in einem hochleistungsfaehigen parallelen vektorverarbeitungsgeraet. | |
DE2501985A1 (de) | Mit gleitkomma arbeitender rechenmechanismus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8127 | New person/name/address of the applicant |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |