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
Application number
DE2830334A
Other languages
English (en)
Other versions
DE2830334A1 (de
Inventor
David E. Chelmsford Mass. Us Cushing
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2830334A1 publication Critical patent/DE2830334A1/de
Application granted granted Critical
Publication of DE2830334C2 publication Critical patent/DE2830334C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3832Less usual number representations
    • G06F2207/384Octal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3832Less usual number representations
    • G06F2207/3844Hexadecimal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3896Bit slicing

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.
Sammelschienen-Steuerabschnitt 40-2
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.
Registerabschnitt 40-4
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).
Steuerabschnitt 40-6 und Mikrobefehlsformat
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.
Mikroprozessorabschnitt 40-8
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.
Verschiebelogik-Schaltkreisabschnitt 40-7
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.
Mikroprozessorchip
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.
Beschreibung der Wirkungsweise
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.
DE19782830334 1977-07-15 1978-07-10 Multipliziereinrichtung Granted DE2830334A1 (de)

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)

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

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

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