DE2501985A1 - Mit gleitkomma arbeitender rechenmechanismus - Google Patents

Mit gleitkomma arbeitender rechenmechanismus

Info

Publication number
DE2501985A1
DE2501985A1 DE19752501985 DE2501985A DE2501985A1 DE 2501985 A1 DE2501985 A1 DE 2501985A1 DE 19752501985 DE19752501985 DE 19752501985 DE 2501985 A DE2501985 A DE 2501985A DE 2501985 A1 DE2501985 A1 DE 2501985A1
Authority
DE
Germany
Prior art keywords
register
floating point
bit
exponent
mantissa
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.)
Pending
Application number
DE19752501985
Other languages
English (en)
Inventor
Richard Thomas Mcandrew
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.)
EMC Corp
Original Assignee
Data General Corp
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 Data General Corp filed Critical Data General Corp
Publication of DE2501985A1 publication Critical patent/DE2501985A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Description

DIPL.-1NG. KLAUS NEUBECKER
PatentanA alt
4 Düsseldorf 1 · Schadowplatz 9
Düsseldorf, 17. Jan. 1975
435,383
74209
Data General Corporation
Southboro, Mass. 01772,. V. St. A.
'Mit Gleitkomma arbeitender Rechenmechanismus
.Die Erfindung bezieht sich auf arithmetische Operationen, wie sie in Verbindung mit der Datenverarbeitung durchgeführtwerden insbesondere die Handhabung von Gleitkommaoperationen.
Auf dem Gebiet der Datenverarbeitung spielen Kostengesichtspunkte bei der Auslegung und Entwicklung konkurrenzfähiger Verarbeitungseinheiten eine wesentliche Rolle. Gleitkomma-Verarbeitungseinheiten werden, wenngleich sie sich stark eingebürgert haben, sehr komplex, wenn sie für die Verwendung für große Dezimalbereiche und erhöhte Genauigkeit in Verbindung mit Minicomputern und größeren Computern ausgelegt werden. Somit können sich verbesserte Verfahren und ein vereinfachter Aufbau, die für ein großes Maß an Flexibilität und gute Genauigkeifcswerte sorgen, als äußerst wertvoll erweisen.
Eine der Operationen bekannter mit Gleitkomma arbeitender Rechenmechanismen nach dem Stand der Technik, die die Wirksamkeit solcher Einheiten nachteilig beeinflussen, besteht in der Modifizierung eines der beiden Operanden dahingehend, daS ihre Exponenten für arithmetische Additions- oder Subtraktionsoperationen
509830/0729
Telefon (Ö2H) 32 O8 58 Telegramme Custopat
gleich sind. Ein Gleitkomma-Operand enthält ein Vorzeichen des Operanden, einen mit Vorzeichen versehenen Exponenten oder eine solche Charakteristik sowie eine Mantisse oder einen Bruchteil. Eine weitere Operation dient zur Modifizierung eines der beiden Operanden zur Normalisierung von Mantissenwerten. Die Normalisierung erfordert, daß die höchstwertige Mantissenziffer von Null abweicht. Das gewährleistet eine maximale Genauigkeit bei Mehrfach-Arithmetikoperationen. Eine Möglichkeit, solche Operationen auszuführen, besteht darin, die Mantisse jeweils um eine Ziffer weiterzubewegen und dabei die Exponentenwerte daraufhin zu überprüfen, ob sie gleich sind. Ein optimales Verfahren für eine solche Operation würde jedoch sein, unmittelbar zu Beginn zu bestimmen, wieviel Verschiebung notwendig ist, und den Gleichstellungs- oder Angleichvorgang in bequemer Weise in einer einzigen Operation mit einem minimalen Hardwareaufwand durchzuführen.
Das gleiche Verfahren wäre für die Normalisierung der Mantisse wünschenswert, beispielsweise einer durch Prüfung der höchstwertigen Mantissenziffern durch geeignete Exponentenverringerungs- und Mantissenverschiebungsoperationen als Ergebnis erhaltenen Mantisse.
Aufgabe vorliegender Erfindung ist die Schaffung einer einfachen, leistungsfähigen und genauen Gleitkomma-Verarbeitungseinheit, die zu verbesserten Verfahren und einer verbesserten Anordnung zur Handhabung von Exponenten- und Mantissendaten im Hinblick auf arithmetische Operationen und/oder Normalisierung führt. Dabei soll es möglich sein in Verbindung mit der oben angegebenen Datenweg-Konfiguration über eine gute Zugänglichkeit zu verfügen, um so Operandeninformation in jede von zwei Gruppen Gleitkomma-Akkumulatoren abbilden zu können und so ein Maximum an Vielseitigkeit und Zugriff zu Information im Gleitkommasystem zu ermöglichen.
Zur Lösung dieser Aufgabe ist ein mit Gleitkomma arbeitender Rechenmechanismus mit einer Anordnung zum Verschieben erster bzw.
509830/0 7 29
zweiter Operanden mit ersten und zweiten Mantissen- sowie Exponentenwerten zur Durchführung arithmetischer und logischer Operationen, einer Einrichtung zur Bildung eines Skalen- oder Maßstäbsfaktors zur Festlegung der Forderungen hinsichtlich einer Operandenverschiebung sowie einer an eine erste und zweite Registereinrichtung angeschlossenen und zur Aufnahme des Operanden geeigneten arithmetische Logikeinrichtung, erfindungsgemäß gekennzeichnet durch eine auf den Maßstabsfaktor ansprechende hexadezimale Skaliereinrichtung zur Verschiebung von Operanden in hexadezimalem Format; die Tatsache, daß jede der Registereinrichtungen eine Gruppe mit 4-Bit-Registern aufweist, wobei korrespondierende 4-Bit-Register für die erste und zweite Registereinrichtung jeweils an eine Gruppe Eingangsleitungen der hexadezimalen Skaliereinrichtung angeschlossen sind, um in einer ersten Richtung aus einer ausgewählten Registereinrichtung ausgeschrieben zu werden; eine Schalteinrichtung zur selektiven Verbindung eines aus der Gruppe der 4-Bit-Register mit der Gruppe Eingangsleitungen der hexadezimalen Skaliereinrichtung; sowie dadurch, daß die hexadezimale Skaliereinrichtung einen Ausgang hat, der zu einem Eingang des 4-Bit-Registers zurückgeführt ist und auf den Maßstabsfaktor anspricht, um eine Gruppe 4-Bit-Register in der ersten Richtung seriell zu laden und damit einen ausgewählten Operanden zu verschieben.
Es wird erfindungsgemäß eine hexadezimale Skalieroperation als integraler Bestandteil der Datenweg-Zwischenverbindung eingearbeitet, wobei Skalier-Kodierwerte selektiv zur wirksamen Verschiebung der Mantisse für eine vereinfachte Mantxssenangleichung über die Datenweg-Konfiguration sorgen. Eine Möglichkeit der Bereitstellung der Skalier-Kodierwerte besteht in der Übernahme des absoluten Werts der Differenz zwischen den beiden Exponenten. Die Normalisierung erfolgt in ähnlicher Weise in einem einzigen Schritt, um die Mantisse so auszurichten, daß die höchstwertige Ziffer von Null abweicht.
Nach der Erfindung kann ein Datenträger mit gemeinsamer Sammelleitung zur Erzielung einer maximalen Flexibilität des vorbe-
50983Ü/Ü729
schriebenen Skalier-Verschiebungsverfahrens vorgesehen werden,· um die Möglichkeit der Anwendung der Skalier-Codewerte zur Normalisierung und zur Gleichsetzung bei der Durchführung der arithmetischen Operationen zu zentralisieren und zu vereinfachen. Eine weitere Möglichkeit der Erfindung besteht in der Schaffung eines eine gemeinsame Sammelleitung aufweisenden Datenträgers des Skalierausgangs zur Abgabe geeigneter skalierter Operandenanteile sowohl an die Eingänge der Mantissen-Arithmetiklogikeinheit als auch der Exponenten-Arithmetiklogikeinheit, außerdem ein Operanden-Gleitkomma-Zwischenregister . Eine Exponenten-Arithmetiklogik gestattet eine rasche Berechnung des absoluten Werts der Differenz zwischen zwei Exponenten und zeigt den größeren der beiden Exponenten an, um die Mantisse anzugeben, die entsprechend der Differenz des absoluten Werts verschoben werden muß.
Weitere erfindungswesentliche Merkmale ergeben sich aus den Unteransprüchen.
Die Erfindung wird nachstehend anhand von Ausführungsbeispielen in Verbindung mit der zugehörigen Zeichnung erläutert. In der Zeichnung zeigen:
Fig. 1 schematisch ein Blockschaltbild einer bevorzugten Ausführungsform des Aufbaus der Gleitkomma-Verarbeitungseinheit nach der Erfindung;
Fig. 2 weiter ins einzelne gehend in Form eines Blockschaltbilds den Aufbau der Eingangswähleinheit 28 sowie des hexadezimalen Skalierers 27 in Verbindung mit den A-, B- und MQ-Registern;
Fig. 2A weiter ins einzelne gehend in Blockschaltbildform die Mantissen-Arithmetiklogikeinheit- und A- sowie B-Registerverbindungen;
Fig. 3 weiter ins einzelne gehend in Blockschaltbildform die Exponential-Arithmetiklogikeinheit der Fig. 1;
50983 0/0729
Fig. 4-8
Diagramme der jeweils beschriebenen Betriebszustände des Rechenmechanismus;
Fig. 9-16
Flußdiagramme, die den Datenfluß während der Zeitabschnitte der mit Fig. 4-8 wiedergegebenen Betriebszustände veranschaulichen; und
Fig. 17 in Binärform das Format zweier in Verbindung mit der Operation der Fig.1,2 und 3 untersuchten Operanden für die richtige Verschiebung der Daten zur Ausführung von Arithmetik- und/oder Normalisier-Operationen*
Im einzelnen zeigt Fig. 1 ein Blockschaltbild, das allgemein den Aufbau der Gleitkomma-Logik erkennen läßt? wie sie ein Merkmal der vorliegenden Erfindung darstellt. Es ist darauf hinzuweisen, daß die wiedergegebene spezielle Ausführung von der * Speichersammelleitung und der Speicher-Adressen-Sammelleitung eines Computersystems aus arbeitet* dem es im Gegensatz zu der 1/0-Sammelleitung zugeordnet ist, obwohl eine Operation mit der letztgenannten Sammelleitung ebenfalls unter Anwendung des erfindungsgemäßen Prinzips durchgeführt worden ist. Befehle für die Gleitkommaeinheit von der zentralen Verarbeitungseinheit -(CPU-central processing unit) werden über die Speichersammelleitung ausgeführt, um für eine wirksame und parallele Verarbeitung zu sorgen.
Wie der nachfolgenden Beschreibung der Erfindung entnehmbar, besteht die Möglichkeit, arithmetische Operationen rasch und bequem in einem großen Zahlenbereich mit einem hohen Maß an Präzision durchzuführen. Berechnungen können entweder mit einfacher oder doppelter Genauigkeit erfolgen. Bei Einfachgenauigkeit werden sechs bis sieben kennzeichnende (signifikante) Dezimalziffern geliefert, während bei doppelter Genauigkeit dreizehn
509830/0729
bis fünfzehn kennzeichnende Dezimalziffern geliefert werden. Der Dezimalbereich einer Gleitkommazahl ist bei der vorliegenden Erfin-
-79
dung für jeden Genauigkeitsgrad etwa 5,4 χ 10 bis 7,2 χ 10
Es sei ferner darauf hingewiesen, daß die nachstehende Untersuchung sich mit Zahlen befaßt, die von dem Gleitkomma-Prozessor auf der Basis 16 verarbeitet werden, was als "hexadezimale" (oder einfach als "hex") Zahlendarstellung bekannt ist. Jede Gruppe mit vier Binärziffern wird zu einer einzigen Ziffer auf der Basis von 16 zusammengedrängt oder reduziert. Die einzelne Ziffer wird in Form arabischer Zahlen zwischen Null und Neun für die 4-binären Ziffernwerte Null bis Neun und mit alphabetischen Bezeichnungen A bis F für die 4-binären Ziffernwerte Zehn bis Fünfzehn ausgedrückt. Beispielsweise würden die drei 4-binären Ziffernwerte 1011 1001
1111 als B9F., bezeichnet.
I ο
Fig. 1 zeigt einen Gleitkomma-Befehlszwischenspeicher 11, der zwischen die Speichersammeileitung und ein Gleitkomma-Befehlsregister 12 geschaltet ist. Das Gleitkomma-Befehlsregister 12 ermöglicht eine vorübergehende Speicherung eines neuen Gleitkomma-Befehls, wenn man davon ausgeht, daß gerade ein vorhergehender Gleitkomma-Befehl ausgeführt wird. Zur gleichen Zeit, zu der der Befehl in das Befehlsregister der CPÜ eingegeben bzw. geladen wird, wird er automatisch in den Gleitkomma-Befehlszeichenspeicher 11 geladen? unter der Annahme, daß der Befehl eine Gleitkomma-Eingabe ist. Er wird dann unmittelbar in das Gleitkomma-Befehlsregister 12 weitergeleitet, natürlich nur dann, wenn dort nicht gerade ein vorhergehender Gleitkomma-Befehl ausgeführt wird, wobei der Befehl in dem Befehlszwischenspeicher bleibt, bis der letzte Befehl abgeschlossen worden ist.
Die verschiedenen Zustandsbedingungen des Befehls in dem Gleitkomma-Befehlsregister 12 werden in eine Dekodiersteuer- und Zeitgeberlogik 13 eingegeben, um die verschiedenen Signale für die herkömmlichen Exponentensteuer-Lesespeicher (ROM - read-only
509830/0729
memories) und Mantissensteuer-Lesespeicher zu liefern, wie sie in Verbindung mit Gleitkomma-Verarbeitungslogik sowie der notwendigen Zeitgeberlogik eingesetzt werden, um für die richtige Sequenz der Signale zu sorgen.
Eine Zustandsregxstersteuerung 39 erfaßt den Gleitkommafehler, ζ.. B. Exponentenunter lauf oder -überlauf, Teilung durch Null, Mantissenüberlauf etc*, während irgendeiner Gleitkomma^Operation. Diese Fehlerinformation wird in dem Teil 38 des Zustandsregisters 39 gesetzt. Der Adressenzwischenspeicher 35 wird fortlaufend mit einer Adresse gespeist, wenn die CPU Information von einer bestimmten Speichersteile anfordert. Wenn diese Information ein Gleitkomma-Befehl ist, dann wird die letzte Adresse des Zwischenspeichers, die die Adresse des Gleitkomma-Befehls ist, dort gehalten. Wenn in dem Teil 38 keine Fehler gesetzt oder festgehalten werden, dann werden die Adressenzwischenspeicher-Daten über einen Multiplexer 36 in dem Teil 37 des Zustandsregisters 39 gesetzt. Wenn in dem Teil 38 ein Fehler festgehalten wird, werden die Daten im -Teil 37 nicht mehr durch weitere Daten im Adressenzwischenspeicher geändert. Das würde bedeuten, daß der Teil 37 die Adresse des Gleitkomma-Befehls enthält, der den Gleitkommafehler verursacht hat. Der zweite Weg oder Kanal von der Speichersammelleitung über den Multiplexer zum Zustandsregister dient zur Auslösung des Zustandsregisters für Vielbenutzer-Umgebungsverhältnisse. ,
Ein Gleitkomma-Ladebefehl, wie er unten dargestellt ist, beinhaltet im Bestimmungsfeld des ALC-Befehls selbst, in welchen Gleitkomma-Akkumulator ein Operand eingespeist oder geladen werden soll. Die Stelle im Speicher des Gleitkommas des Operanden wird durch den CPU-Akkumulator festgelegt (d. h., wo sich das höchstwertige Wort befindet), ebenso wie die Frage, ob einfache oder doppelte Präzision erzielt werden muß.
50983 0/0 7 29
Bestimmungs- Operationsfeld \ Code
Ausgangs -y
feld
10 10 0 0
4.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,
^—
zeigt ALC-Gleitkomma-Befehl an
Nachdem das Operandenwort von der Speicherstelle geholt worden ist, spricht - wenn das Auslesen der Speicheradresse anzeigt, daß Gleitkomma-Daten (FPDA) an der Speichersammelleitung zur Verfügung stehen - eine Ladewähleinheit 21 wie eine Multiplexereinheit auf das FPDA-Signal an. Während der erste Wortoperand über den Multiplexer eingegeben wird, wird die Adresse durch die CPU «» vergrößert, und das nächste Wort des Operanden wird vom Speicher erhalten, bis zwei bis vier Wörter in das MQ-Register 22 eingegeben worden sind, je nachdem, ob mit einfacher oder doppelter Präzision gearbeitet wird. Wie ersichtlich, enthält das Register 22 vier 16-Bit-Parallelregister, von denen Teile als EB (Exponentenspeicher - exponent buffer) und MQ (Multiplikator-Quotientenregister - multiplier quotient register) bezeichnet sind. Das vielseitige Register 22 dient auch als Eingangs-/Ausgangsspeicher, wie das weiter unten noch ersichtlich wird. Die Wörter werden parallel in das Register 22 eingespeist, wobei jedes mit dem Zugang jedes neuen Wortoperanden aufwärts bewegt wird. Geht man von einer Einspeisung oder einem Laden mit doppelter Präzision aus, so sind die EB- und MQ-Teile der Register am Ende von vier Sequenzen alle mit dem Operanden beladen. Die Formate für die gespeicherten Gleitpunkt-Operanden sind nachstehend wiedergegeben, wobei Tabellen I und II für einfache Genauigkeit (zwei Wörter) bzw. doppelte Genauigkeit (vier Wörter) repräsentativ sind.
509830/0729
_ Q „
Tabelle I
Wort 1 Wort 2
S Exponent Mantisse
Stelle X
0123456789 10 11 12 13 14 15
Mantisse
X + 1
Tabelle II
Wort 1 Wort 2
S Exponent Mantisse
Stelle X
01 2 3 456789 10 11 12 13 14 15
Mantisse
X + 1
Wort 3
Mantisse
X + 2
Wort 4
Mantisse
Wie gezeigt, enthält EB das Vorzeichen-Bit Null und den Expönentenwert des Operanden, wenn vorhanden. Das Vorzeichen-Bit gibt das Vorzeichen der Gleitkommazahl wieder, wobei für den Fall, daß das Bit Null ist, die Zahl größer als oder gleich Null .ist, während für den Fall, daß das Bit Eins ist, die Zahl kleiner als Null ist. Der Exponent ist die Potenz, in die 16 erhoben werden muß, um den richtigen Wert für die Zahl zu ergeben. Der Mantissenteil einer Gleitpunktzahl ist stets um einen positiven Bruchteil größer als oder gleich einem Sechzehntel und kleiner als Eins. Sofern notwendig, werden die Ergebnisse arithmetischer Operationen normalisiert, um dieser Forderung zu genügen.
Nachdem das MQ-Register 22 mit dem Operanden geladen worden ist, hat der Prozessor seine letzte übertragung abgeschlossen, so daß er weiterarbeiten und den nächsten Befehl heranholen kann. Dies
509830/07 29
wird als eine "ParallelVerarbeitungs-Betriebsart" bezeichnet, da der Prozessor nicht langer für einen Zwischenvorgang benötigt wird und andere Befehle parallel zu dem Gleitkommaprozessor verarbeiten kann. Der nächste Befehl kann jedoch ein anderer Gleitkoitunabefehl sein, der dann in den Gleitkommabefehl-Zwischenspeicher eingegeben würde, während der laufende Gleitkommabefehl ausgeführt wird.
Anhand der unterschiedlichen Felder des Befehls im Gleitkomma-Befehlsregister 12 wird nun mittels der Dekodiersteuer- und Zeitgeberlogik 13 bestimmt, ob der Operand mittels des Hexadezimal-Skalierers (Hex-Skalierers) 27 in das A-Register 23 oder aber das B-Register 24 eingegeben werden muß. Beide Register A und B umfassen 56 Bits für den Mantissenteil des Operanden. Der 8-Bit-Vorzeichen- und Exponententeil des Operanden wird über den Hex-Skalierer 27 und die Hex-Skalierer-Sammelleitung in einen exponentiellen Akkumulator in der Exponentenlogik 26 geleitet, wie das noch weiter ins einzelne gehend erläutert wird. Dieser Datenkanal umfaßt den Hex-Skalierer 27, zu dem über eine Eingangswähleinheit 28 Zugriff genommen wird* die von einem geeigneten Multiplexer gebildet ist, der selektiv Signale in Abhängigkeit von der Dekodiersteuer- und Zeitgeberlogik 13 entweder vom A-Register 23 und dem Exponenten-Akkumulator (EA) s dem B-Register 24 und dem Exponenten-Zwischenspeicher (EB), dem MQ-Register -22 und dem Exponenten-Zwischenspeicher (EB) oder aber nur dem (L)MQ-Registerteil des MQ-Registers 22 weiterleitet«
Der Hex-Skalierer 27 ist aus 8-Bit-Skalierern wie etwa Signetics 8243 aufgebaut, die in Abhängigkeit von einem vorgewählten Binärcode einer Eingangssteuerleitung Verschiebungen nach rechts oder links bewirken, um die Zahl der Bitstellen in der richtigen Weise zu verschieben, wobei diese Stellenverschiebung am Ausgang des Hex-Skalierers 27 wiedergegeben wird. Im speziellen Ausführungsbeispiel sind die acht 8-Bit-Skalierer so miteinander gekoppelt, daß sie auf Hexadezimalbasis O bis 15 hexadezimale Ziffern nach rechts oder links skalieren, so daß für eine freie Verschiebung
509830/072 9
25 0198 B
einer hexadezimalen Eingangsziffer in beiden Richtungen gesorgt wird. Vorzüge einer Skaliereinheit, wie sie hier erwähnt wird, gegenüber einem Schieberegister sind eine raschere Arbeitsgeschwindigkeit und eine weniger komplexe Logik. Wenn beispielsweise eine Einheit der hier beschriebenen Art mit einem 16-Bit-Wort verwendet wird, kann eine Verschiebung zwischen einer und vierzehn Stellen in etwa 80 ns einschließlich Fortpflanzungsverzögerung oder einem Taktimpuls bewirkt werden. In einem Schieberegister wird für jede einzelne Stellenverschiebung ein voller Taktimpuls und eine Fortpflanzungs-Verzögerungsperiode benötigt.
Da, wie zuvor erwähnt, nur 14 hexadezimale Ziffern vorhanden sind, kann eine ganze hexadezimale Ziffer von einer beliebigen Stelle im Register 22 zu einer anderen Stelle im Register 22 verschoben · werden. Der Grund dafür ist darin zu sehen, daß das Hex-Skalier-Ausgangssignal über einen Inverter-Treiber 27' und die Hex-Skalier-Sammelleitung zum Register 22 zurückgeleitet wird.
Wenn der binäre Skalier-Code sich in einem Nullzustand befindet, was den normalen Fall für das Eingeben eines ersten Operanden in die A-Registerstelle darstellen würde, so braucht der Hex-Skalierer 27 keine Verschiebungen vorzunehmen, und er ist durch Unterlassen auf dem Null-Maßstab. Das Mantissenausgangssignal des Hex-Skalierers 27 wird dann unmittelbar über die Hex-Skalierer-Sammelleitung in das A-Register 23 verschoben, während die Daten des Exponenten-Zwischenspeichers (EB) in einen Exponenten-Akkumulator (EA) in der Exponentiallogik 26 eingegeben werden.
Die Mantisse wird zunächst in das A-Register 23 eingegeben, um zu gewährleisten, daß die Mantisse nicht nur Nullen aufweist, weil sonst das Bedürfnis besteht, das gesamte Register zu loschen, einschließlich dem Exponententeil, wenn der gesamte Wert des Operanden Null ist.
Das A-Register 23 und der Exponential-Akkumulator EA sind über die Eingangswähleinheit 28 durch geeignete DekodierSteuersignale so angeschlossen, daß Abbildungen (Kopien) der darin befindlichen
50983ü/0729
Daten jeweils in den Quellen-Akkumulator FPACS 29 und den Bestimmungsakkumulator FPACD 31 übertragen werden, die zusammen vier
Gleitpunkt-Akkumulatoren aufweisen. FACD wird so geschrieben, daß es nach seinem Auslesen nach links in A, EA verschoben werden
kann. In gleicher Weise kann FPACS nach dem Auslesen nach rechts
in jedes Register verschoben werden, wobei der Exponent gleichzeitig entweder in EA oder EB verschoben wird. Durch Abbilden
(Kopieren) der A-Register-Daten und der Daten des Exponential-Akkumulators sowohl in dem Quellen- als auch dem Bestimmungs-Akkumulator können Akkumulator-zu-Akkumulator-Operationen sehr
rasch ausgeführt werden. Wenn beispielsweise ein Operand in das
B-Register 24 und ein Operand in das A-Register 23 übertragen
werden soll, so kann von dem Bestimmungsakkumulator 31 über einen Inverter-Treiber 32 eine Linksverschiebung in das A-Register 23
vorgenommen werden, und gleichzeitig kann über den Inverter-Treiber 27" eine Rechtsverschiebung von dem Quellen-Akkumulator 29 in das B-Register 24 erfolgen. Mit anderen Worten, beide Operanden
können durch originales Kopieren der Eingänge zu den Quellen- und Bestimmungsakkumulatoren im gleichen Zeitabschnitt in beide Register eingegeben werden.
Eine Mantissen-ALU (Arithmetiklogikeinheit) ist sowohl an das A-Register 23 als auch das B-Register 24 angeschlossen, um durch
den Gleitkommabefehl vorgegebene arithmetische Operationen durchzuführen. Der Ausgang der ALU ist an die beiden A- und B-Register zurückgeführt, so daß das Ergebnis einer arithmetischen Operation je nach Bestimmung durch die Steuerlogik in eins der beiden Register eingegeben werden kann. Der 56-Bit-Ausgang der ALU wird
vor dem Eintritt in das Α-Register um ein Bit nach links verschoben, vor seinem Eintritt in das B-Register dagegen um ein Bit
nach rechts verschoben. Das ergibt ein sehr schnelles Multiplikations-/Divisionsschema ohne Verwendung von Multiplexern, die einen zusätzlichen Zeit- und Kostenaufwand bedingen.
Eine Sammelleitung führt von der Mantissen-ALU 33 zu einem Schiebekodierer 34. Jedes ALU-Element hat einen 4-Bit-Ausgang (d. h. eine
• 509830/0 7 29
Hex-Ziffer), so daß von jeder Ziffer ein Anzeige-Bit gewonnen wird, das nichts weiter ist als eine logische UND-Verknüpfung der vier Ausgangsbits. Dies wird zur Prüfung des Ergebnisses in einem der beiden Register A bzw. B auf an erster Stelle stehende hexadezimale Null-Ziffern ausgewertet, ferner, um diese Größe zu kodieren und Register A oder B nach links zu verschieben, bis keine hexadezimale Null-Ziffer mehr an erster Stelle steht, um so Präzision von Operation zu Operation zu gewährleisten. Nimmt man an, daß das Ergebnis, das im A-Register eintrifft, normalisiert werden soll, so wird das Komplement des A-Registers bzw. Ä" automatisch in die UND-Gatter eingegeben. In jedem UND-Gatter mit "hohem" Ausgang würde angezeigt, daß die überprüfte spezielle hexadezimale Ziffer Null ist, da alle ausgegebenen Eins-Werte ein Komplement aller Nullen sind. Diese spezielle Anzeige der Leitung zum Schiebekodierer 34 wird dann gesetzt. Die Anzeigen sind mit einem den Schiebekodierer 34 bildenden Prioritätskodierer verbunden, beispielsweise einem 9318-Prioritätskodierer mit der einzigen Funktion, einen Binärcode für die höchste enthaltene Priorität anzuzeigen, um so alle Anzeigen in eine Binärgröße umzuwandeln. Die Binärgröße zeigt an, wie viele hexadezimale Ziffern nach links verschoben werden müssen, um die Zahl zu normalisieren. Dieser Ausgang des Schxebekodierers 34 ist als Skalier-Code bestimmt, der - wie gezeigt - in den Hex-Skalierer zurückgeführt ist. Der binäre Skalier-Code-Eingang des Hex-Skalierers 27 sorgt dann automatisch für eine Linksverschiebung des A- oder B-Registers, um das Mantissen-ALU-Ergebnis zu normalisieren.
Wie zuvor erwähnt, liefert der Schiebekodierer auch eine Anzeige, wenn das überprüfte Register einen Nullwert hat, in welchem Fall der Prioritätskodierer eine maximale Binärgröße wiedergibt. Die Anzeige, daß die Mantisse Null ist/ stellt eine wertvolle Information dar, weil, wenn die Resultierende der Mantissen-ALU Null oder der erste in das A-Register eingegebene Operand Null ist, die gesamte Antwort Null ist und gelöscht werden sollte.
509830/0729
Nachdem so eine allgemeine Erläuterung des Gesamtaufbaus des Gleitkomma-Rechenmechanismus nach der Erfindung gegeben wurde, können der Hex-Skalierer 27 und die Eingangswähleinheit 28 näher in Verbindung mit Fig. 2 beschrieben werden, in der die drei Arbeitsregister mit dem A-Register 23, B-Register 24 und dem MQ-Register 22 teilweise wiedergegeben sind, um ihren Aufbau zusammen mit der Eingangswähleinheit 28 und dem Hex-Skalierer 27 zu veranschaulichen, so daß ein Hex-Skalierer-Datenkanal mit der Hex-Skalierer-Sammelleitung gebildet wird. Für jedes der Register 22, 23 und 24 ist gezeigt, wie es aus 4-Bit-Universal-Schieberegistern 22', 23' bzw. 24" aufgebaut ist. Somit ist jedes Register 22, 23 und 24 in der Lage, entweder eine Links- oder eine Rechtsverschiebung, eine Paralleleingabe oder einen Haltevorgang auszuführen. Bei dieser speziellen Ausführung ist jedes Register in vier Bits unterteilt, um eine der 14 hexadezimalen Ziffern wiederzugeben.
Betrachtet man beispielsweise das Al-Register, so erkennt man, daß es einen 4-Bit-Ausgang, nämlich AO, A1, A2 und A3 hat, wobei das höchstwertige Bit der hexadezimalen Ziffer AO und das niedrigstwertige Bit A3 ist. Von diesem Register A1 oder seinen entsprechenden Registern B1 oder MQ1 wird das niedrigstwertige Bit, nämlich entweder A3, B3 oder MQ3, zu einem Multiplexer einer Reihe Multiplexer 28' geführt, die von der Dekodiersteuerlogik gesteuert werden, um so entweder die A-, B- oder MQ-Register-Ausgangsleitung für die Verbindung mit dem Eingang des Hex-Skalierers auszuwählen. Der Ausgang des Hex-Skalierers 27 wird durch den Inverter 27' invertiert und über die Rechtsverschiebungs-Eingangsleitung des zugeordneten Registers mit jedem der zugeordneten 4-Bit-Register A, B oder MQ verbunden.
Wie erwähnt, ist der Hex-Skalierer aus Hex-Skaliererteilen aufgebaut, die je nach Ihrer Verdrahtung eine Verschiebung in einer der beiden Richtungen gestatten und um einen durch einen Skaliercodeeingang bestimmten Betrag verschieben können. Der Ausgang der Hex-Skaliererteile ist als offener Kollektor geschaltet, so daß verschiedene weitere Ausgänge mit derselben Sammelleitung
509830/0 7 28
verbunden werden können. Der Ausgang des Multiplexers '28' ist außerdem mit FPACS 29 und FPACD 31 verbunden. Der Ausgang von FPACD 29 ist außerdem mit dem Ausgang des Hex-Skalierers 27 verbunden, so daß die Hex-Skalierer-Sammelleitung entweder ein FPACS 29-Ausgangssignal oder das Hex-Skalierer 27-Ausgangssignal führen kann, je nach der Auswahl durch die Dekodiersteuer-Hardware, was wiederum von dem bestimmten Zeitpunkt in einem Befehl abhängt. Der Hex-Skalierer ist mit einer Eingangssteuerung versehen, die ein 4-Bit-Skaliercode ist, um eine Verschiebung von einer der Stellen zwischen O und 15 zusammen mit einem Anzeige-Eingang zu ermöglichen und so eine Skalierverschiebung nach rechts oder links festzulegen.
Bei der überprüfung des Verschiebevorgangs des Hex-Skalierers beim Verschieben von Daten von einem Register in ein anderes, skaliert oder nicht skaliert, wird eine erste Annahme getroffen, daß der Skaliercode-Eingang Null ist, so daß keine Datenverschiebung bewirkt wird. Für diesen Fall sei ferner angenommen, daß Daten von dem MQ-Register in das A-Register verschoben werden sollen. Es braucht nur ein Registerblock, nämlich A1, B1 und MQ1, betrachtet zu werden, da für A2, B2 und MQ2 etc. bis zu A13, B13 und MQ13 der Betriebsablauf identisch ist. Die Steuerung des Multiplexers 28' für A1, B1 und MQ1 ist so, daß nur das MQ1-Register über den Multiplexer 28' auf die HS0-Leitung gemultiplext wird. Da der Skaliercode-Eingang zum Hex-Skalierer 27 Null ist, gelangen die Daten der Leitung HS0 zu der Hex-Skalierer-Ausgangsleitung SH0 der Hex-Skalier-Sammelleitung , um dann durch den Inverter 27· invertiert zu werden und zu dem RechtsSchiebeeingang der einzelnen Register MQ1, B1 und A1 zurückzukehren. Wenn nun das MQ-Register und das A-Register so gesteuert werden, daß sie für jeden Taktimpuls eine Verschiebung um ein Bit nach rechts vornehmen, so ist das MQ-Bit jetzt beim ersten Taktimpuls in die A0-Lage verschoben worden. Das Bit in der Lage MQ2 befindet sich jetzt in der Lage MQ3, um dann durch einen folgenden Taktimpuls in eine Lage A0 verschoben zu werden, so daß das zuvor in dieser Lage oder an dieser Stelle gewesene Bit in die Lage A1 verschoben wird. Mit
509830/0729
vier Taktimpulsen ist somit die gesamte hexadezimale Ziffer in MQ1 nach A1 verschoben worden. Da dies in allen entsprechenden MQ- und A-Registern gleichzeitig erfolgt, erfolgt eine Registerverschiebung von MQ nach A dementsprechend in vier Taktimpulsperioden.
Es sei nun ein Zustand angenommen, bei dem die Information skaliert werden soll, wenn sich ein Operand im Α-Register befindet, und bei dem der Operand um eine hexadezimale Ziffer nach rechts verschoben werden soll. Der Skaliercode der Hex-Skalierer-Codesammelleitung wird jetzt Eins, und es wird ein Eingangssignal zur Skalierung nach rechts bestimmt, um das Ausgangssignal für die Hex-Skalierer-Sammelleitung um eine Ziffer nach rechts zu verschieben, so daß die Daten auf HS0 jetzt auf das Hex-Skalierer-SH1-Ausgangsniveau gelangen. Die Steuerung der Multiplexer 28* wird so gewählt, daß die Daten des Α-Registers in den Hex-Skalierer 27 gelangen, der infolge des Skaliercodes die HS0-Leitung mit der SH1-Ausgangsleitung verbindet, um eine Verschiebung einer hexadezimalen Ziffer nach rechts zu veranlassen. Für das gesamte Register gelangen auf HS1 eintreffende Daten zu SH2, auf HS2 eintreffende Daten zu SH3 etc. Da sich auf der SH0-Leitung durch Unterlassung keine Daten befinden, ist die Information der Leitung SH0 Null. Es läßt sich leicht für den gesamten Datenkanal sehen, daß in vier Taktperioden die alten Daten im A1-Register in das A2-Register usf. durch das gesamte Register bewegt werden. Somit wird eine hexadezimale Verschiebung in vier Taktperioden durchgeführt.
Naturgemäß kann man mittels desselben Mechanismus nach links skalieren. Dieser Mechanismus wird sehr vorteilhaft für Gleitkomma-Operationen wie Addition und Subtraktion, wo die Mantissen rasch ausgerichtet werden sollen, so daß ihre Exponenten vor Addition der Mantissen gleich sind. Das Maß der Abweichung zwischen zwei Exponenten ist nicht von Bedeutung, da der hexadezimale Skalierer hier in nur vier Taktimpulsen für eine Kompensation sorgt, indem €er richtige Wert auf der Skaliercode-Sammelleitung an den
509830/07 2 9
Eingang des Hex-Skalierers 27 gegeben wird. Die Mantisse wird dann nach rechts verschoben und am Ende der vier Taktperioden ausgerichtet, so daß ihre Exponenten gleich sind.
Der Hex-Skalierer 27 dient auch zur Normalisierung des resultierenden Operanden. Normalisierung zeigt an, daß die erste und höchstwertige hexadezimale Ziffer, d. h. A1, B1 oder MQ1, von Null abweicht. Wenn daher am Ende einer arithmetischen Operation gefunden wird, wie viele als Anfangsziffern stehende hexadezimale Nullen für die höchstwertigen Stellen vorhanden sind, so kann diese Information in binärcodierter Form auf der Skaliercode-Sammelleitung an den Hex-Skalierer 27 gegeben werden und die erforderliche Verschiebung nach links erzwingen, um so in nur vier Taktimpulsen für eine Normalisierung zu sorgen. Das entspricht einer beträchtlichen Zeitersparnis, wenn die Normalisierung über mehr als eine hexadezimale Ziffer erforderlich ist.
Ein weiterer Gesichtspunkt ist die Flexibilität der Speicherung der Information in Form hexadezimaler Ziffern, was weniger Speicherraum und daher weniger Platz auf der Schaltplatte erfordert und im übrigen eine wirtschaftlichere Speicherung der Information ermöglicht. Die Hex-Skalier-Sammelleitung ist an beide FPACS- und FPACD-Zwischenspeicher mit kleiner Kapazität (scratchpad memories) angeschlossen, die an sich die in dem Gleitkomma-Prozessor verwendeten Akkumulatoren sind. Die FPACS-Einheit ist mit der Hex-Skalier-Sammelleitung durch eine ODER-Verknüpfung verbunden, und daher ist die Einstellzeit, wenn keine Information vom Speicher benötigt wird und die Operation von Akkumulator zu Akkumulator erfolgt, derart, daß der Operand von FPACS einfach durch Deaktivierung des Skalierers 27 und Aktivierung des FPACS-Akkumulators durch die Steuerungschaltung geholt werden und in ein spezielles Register A, B oder MQ verschoben werden kann, indem einfach das spezielle Register nach rechts verschoben wird.
B09830/0729
Mit Fig. 2A ist ein detailliertes Schaltbild weiterer Verbindungen zwischen der Mantissen-ALU 33 und den A- bzw. B-Registern 23, 24 gezeigt. Wie dargestellt, sind die S0 bis S55-Ausgangsleitungen der 14 die Mantissen-ALU 33 bildenden 4-Bit-Register 33' in unterschiedlicher Weise fest verdrahtet. Speziell werden die Eingänge der korrespondierenden Register 23* des A-Registers 23 um eine Bit-Stelle nach links verschoben, während die Eingänge der korrespondierenden Register 24' des B-Registers 24 um eine Bit-Stelle nach rechts verschoben werden. In dem letztgenannten Register wird ein QUO-Bit in die leere erste höchstwertige Bit-Stelle gesetzt, die den übertrag (CRY-carry) bei Multiplikations-Operationen mit sich bringen würden, wie sie durch eine herkömmliche Quotienten(QUO)-Logik erhalten werden. In dem erstgenannten Register wird durch Erweiterung des B14-Registers 24' eine zusätzliche Bit-Stelle für das Ai4-Register 23' geschaffen, um dem Ai4-Register ein niedrigstwertiges Bit für arithmetische Operationen zuzuführen. Diese- festverdrahteten Verbindungen sorgen für optimale Multiplikations-ZDivisionsgeschwindigkeit, da keine Zeit für das Verschieben verlorengeht, wie es für die Multiplikation und Division erforderlich ist, außerdem die Kosten verringert werden. Additions- und Subtraktionsvorgänge werden nicht betroffen, da in diesen Fällen das Ergebnis im B-Register 24 durch Zurückführen des Ergebnisses an das A-Register 23 kompensiert wird.
Fig. 3 zeigt ein detailliertes Blockschaltbild der Exponentiallogik 26 der Fig. 1, wie sie eingesetzt wird, um eine ggf. vorhandene Differenz zwischen den Exponenten der zwei Gleitkomma-Zahlen für arithmetische Operationen wie Addition und Subtraktion zu wählen, so daß die Exponenten vor Addition der beiden Mantissen gleichgemacht werden können.
Man erkennt, daß, um dies zu erreichen, bei Ungleichheit der Exponenten eine der Mantissen in geeigneter Weise um eine vorgewählte Zahl hexadezimaler Ziffern verschoben werden muß, so daß die Exponenten gleich werden.
509830/0729
Fig. 3 zeigt eine Exponenten-ALU 41 mit einem von einem Exponenten- Akkumulator (EA) 42 abgenommenen Eingang, der nicht mehr als eine Erweiterung des A-Registers 23 ist, so daß acht Bits einschließlich der Vorzeichen- und Exponenten-Daten abgegeben werden. Ähnlich den Rechts- und Links-Verschiebungs-Eingängen zu dem A-Register 23 wird der Exponenten-Akkumulator 42 mit einem Rechts-Verschiebungs-Eingang vom FPACS-Akkumulator 29 über den Inverter 27" und die Hex-Skalier-Sammelleitung sowie einem Links-Verschiebungs-Eingang vom FPACD-Akkumulator 31 über den Inverter 32 versorgt. Der zweite Eingang der Exponenten-ALU 41 ist an die EM-Sammelleitung über den Multiplexer 25 angeschlossen. Beide Eingangssignale der Exponenten-ALU liegen außerdem an einer Zweier-Komplement-Wandler-Exponenten-ALU 43. Die Ausgänge" der Exponenten-ALU 41 und ihrer Zweier-Komplement-Wandler-ALU werden an einen auf die Steuerlogik ansprechenden Multiplexer geliefert.
Das Ausgangssignal der Exponenten-ALU (Arithmetik-Logikeinheit/ arithmetic logic unit) 41 wird außerdem an einen Exponentenwählmultiplexer zurückgeführt, der auch mit der EM-Sammelleitung verbunden ist, so daß im einen Fall der resultierende Exponent einer ALU-Operation parallel in den Exponenten-Akkumulator 42 geladen werden kann. In einem zweiten Fall wird der Exponentenwert auf der EM-Sammelleitung in den Exponenten-Akkumulator 42 geladen, wenn der EB-Exponentenwert in einer Additions- oder Subtraktions-Operation größer ist. Eine herkömmliche Vorzeichen-Steuereinheit 46 dient zur geeigneten Behandlung des Mantissen-Vorzeichen-Bits, das das erste Bit im Exponenten-Akkumulator 42 ist.
Wie in der allgemeinen Beschreibung oben angegeben, erfolgen in dem Gleitkomma-Verarbeitungsmechanismus nach der Erfindung die Gleitkomma-Operationen durch eine Änderung verschiedener Zustände des Mechanismus bzw. der Maschine, wie sie durch einen Zustands-Lesespeicher-Code gesteuert werden, der innerhalb eines
509830/0 7 29
Befehls etwa als Mikrobefehl erzeugt wird, um der Dekodier-Steuer- und Zustandslogik anzugeben, welcher Zustand als nächstes verwirklicht werden soll. Diese Zustandscodes können durch eine Vierziffern-Binärzahl für jeden Zustand repräsentiert werden, wie das in den Maschinenzustands-Fig. 4 bis 8 angegeben
ist. Jeder Maschinenzustand gibt eine Ausführung einer Reihe
von Mikrobefehlen bzw. Mikroinstruktionen wieder.
Fig. 4 zeigt einen Additions- und Subtraktionszustand, bei dem eine Speicher-Operation ausgeführt wird, um Daten für den Fall zu übertragen, daß einer der Operanden im Speicher ist. Nachdem der zweite Operand vom MQ-Register in das entsprechende A- oder B-Register eingegeben worden ist, befinden sich beide Operanden im Ausgangszustand. Die nächste Zustands-ALU 41 wird mit einem Signal gespeist, indem eine Exponenten-ALU-Arithmetik-Operation festgelegt wird, die nach Durchführung eine folgende Zustands-ALU 33 mit einem Signal speist, so daß eine Mantissen-ALU-Operation gefordert wird. Wenn jedoch einer der Operanden zu weit
außerhalb des Bereiches (d. h. die Exponentendifferenz ist größer als die Mantissenkapazität) des zweiten Operanden liegt, so wird dadurch praktisch der zweite Operand zu Null, und der nächste verwirklichte Zustand entspricht einem Schreibvorgang.
Als Folge der Mantissen-ALU-33-Operation können drei Zustände
erzeugt werden, je nachdem, ob die Ergebnisse gleiche Operanden-Vorzeichen-Bits und einen Mantissenübertrag, gleiche Operanden-Vorzeichen-Bits und keinen übertrag oder keine gleichen Operanden-Vorzeichen-Bits enthalten. Im ersten Fall, in dem die Vorzeichen-Bits gleich sind und einen Mantissenübertrag haben, ist ein Verschiebungszustand notwendig, so daß das Ergebnis um eine hexadezimale Ziffer nach rechts verschoben werden kann, um den Exponenten in der erforderlichen Weise zu korrigieren, worauf
ein Schreibvorgang ausgeführt wird. Im zweiten Fall, in dem die Vorzeichen gleich sind und kein Mantissenübertrag vorliegt,
kann ein Schreibvorgang unmittelbar durch die Mantissen-ALU-SS-Operation bewirkt werden, da das Ergebnis normalisiert wird.
50983 0/0729
Hinsichtlich der dritten Möglichkeit, bei der die Vorzeichen, nicht gleich sind wie beispielsweise bei der Subtraktion, wird der Normalisierungszustand und sodann ein Schreibzustand angefordert, in dem der Ergebnis-Operand sowohl in FPACD als auch FPACS geschrieben wird.
Fig. 5 zeigt Maschinenzustände für eine Gleitkomma-Multiplikations-Operation, wobei wiederum, wenn beide Operanden im Akkumulator der Gleitkomma-Einheit sind, eine Lade-Operation verlangt wird. Wenn jedoch nur einer der Operanden im Speicher ist, wird wiederum zunächst eine Speicher-Operation ausgeführt, um die Daten in die Gleitkomma-Einheit zu überführen, und am Ende dieses Vorgangs wird eine Lade-Operation gefordert, um die Register in dem Gleitkomma-Akkumulator einzustellen. Im Anschluß an die Lade-Operation wird eine arithmetische ALU-41-Operation verlangt, um eine Exponenten-Addition und den Beginn der Mantissen-Multiplikation auszuführen, an deren Ende eine Mantissen-ALU-SS-Arithmetik-Operation angegeben wird, um die verbleibende Mantissen-Multiplikation durchzuführen, die einen SHCT (Verschiebungszähler - shift counter) umfaßt, der anzeigt, wie lange dieser Zustand die Mantissen-Multiplikations-Operation fortsetzen soll. Nach Abschluß wird eine Normalisierungs-Operation verlangt, um das Ergebnis zu normalisieren, worauf ein Schreibvorgang ausgeführt wird, bei dem eine Nullprüfung erfolgt, und der Ergebnis-Operand wird sowohl in FPACD als auch FPACS eingeschrieben.
Fig. 6 zeigt die Maschinenzustände für eine Divisions-Operation, bei der wiederum, wenn beide Operanden in den Gleitkomma-Akkumulatoren sind, eine Lade-Operation unmittelbar gefordert wird; wenn jedoch einer der Operanden im Speicher ist, wird zunächst eine Speicher-Operation ausgeführt, bei der Daten in den Gleitkomma-Mechanismus überführt werden, worauf eine Beladungs-Operation bewirkt wird. Auf die Lade-Operation folgt eine Exponenten-ALU-41-Arithmetik-Operation, von der eine von drei
509830/0729
möglichen Operationen als Signal weitergegeben werden kann, um verschiedene Operationen zu bewirken. Die erste erfolgt durch Schaffung eines "Ausgeführt"- oder "Leerlauf"-Zustands, wenn der Teiler Null ist. Der zweite Zustand verlangt eine Verschiebung falls der Dividend größer als oder gleich dem Divisor ist, da bei der Operation der vorliegenden Gleitkomma-Einheit der resultierende Quotient kleiner als eine ganze Zahl sein muß, In diesem Fall wird der Dividend um eine hexadezimale Ziffer nach rechts verschoben und der Exponent um Eins erhöht. Im dritten Fall, wenn der Dividend nicht größer als der Divisor ist, werden die Exponenten subtrahiert, und der erste Teilzyklus wird begonnen. Sodann wird der Mantissen-ALU-SS-Arithmetikzustand verlangt, um die verbleibenden Mantissen-Teilzyklen auszuführen, bei denen ein SHCT-Signal (shift counter) anzeigt, wie lange der gegenwärtige Zustand andauern soll. Nachdem ein vollständiger Teilvorgang ausgeführt worden ist, zeigt ein SHCT-Signal an, daß ein Verschiebungs-Zustand verwirklicht werden muß, um den in dem MQ-Register befindlichen Quotienten in das Α-Register zu verschieben und zu bestimmen,■ob das Ergebnis Null ist. Anschließend an eine Verschiebe-Operation wird ein Schreibvorgang ausgeführt.
Fig. 7 zeigt die Maschinenzustände für eine Lade-Operation vom Speicher zu den Gleitkomma-Akkumulatoren, wobei zunächst eine Speicher-Operation ausgeführt wird, bei der Daten in das Gleitkomma-Register 22 übertragen werden. Sodann wird eine Lade- -Operation ausgeführt, um das Α-Register zu laden, das, seinerseits einen Schreibvorgang in den Gleitkomma-Akkumulatoren FPACS und FPACD auslöst, worauf ein "Leerlauf"-Zustand folgt.
Fig. 8 zeigt den Maschinenzustand für eine Speicher-Operation von dem Gleitpunkt-Quellen-Akkumulator zur Speicher-Sammelleitung, wo zunächst eine Last-Operation erfolgt, bei der Daten vom FPACS-Akkumulator an das Register 22 übertragen werden. Sodann wird eine Speicher-Operation bewirkt, um die Daten im
509830/0729
Register 22 auf die Speicher-Sammelleitung auszuschreiben, wonach ein "Leerlauf"-Zustand besteht.
Fig. 9 bis 16 zeigen Flußdiagramme für jeden der mit Fig. 4 bis 8 veranschaulichten Maschinenzustände, wobei diese die zeitlichen Zustände wiedergeben, wie sie für die einzelnen Maschinenzustand zutreffen. Es sei darauf hingewiesen, daß bei den Hex-Skalierer durchlaufenden Operationen vier Taktimpulse oder Zeitperioden auftreten, wie das oben erläutert wurde, da je Periode vier Gruppen von 16 Bits getaktet werden, nämlich ein Bit der hexadezimalen Ziffer für jede Taktperiode. Im übrigen sprechen die Flußdiagramme für sich selbst.
Was die Arbeitsweise angeht, so sei angenommen, daß ein Computer-Befehl einen Gleitkomma-Befehl enthält, daß zunächst FPAC0 mit einem ersten Operanden, beispielsweise 1/16 χ 16 , geladen werden soll. In diesem Fall würde das Register 22, wenn es im Hinblick auf einfache Präzision geladen ist, einen Binärzustand haben, wie ihn Fig. 17a wiedergibt. Das erste Bit entspricht dem Vorzeichen-Bit des Operanden und das zweite Bit entspricht dem Vorzeichen des Exponenten, wobei diese Vorzeichen im vorliegenden Fall beide positiv, jedoch als Null bzw. Eins festgelegt sind. Der Operand wird über die Eingangs-Wähleinheit 28 und den Hex-Skalierer 27 in der zuvor beschriebenen Weise in das A-Register 23 übertragen, dessen Eingang zur Mantissen-ALU 33 abgefragt wird, um zu bestimmen, ob die Mantisse durchweg, aus Nullen besteht. Wenn nicht, wird die Mantisse in das A-Register zurückgeschoben und dann über die Eingangs-Wähleinheit 28 geleitet, um in FPACS 29 bzw. FPACD 31 abgebildet zu werden. Wenn die Mantisse Null ist, würde der Exponent gelöscht und dann in FPACS 29 und FPACD 31 geschrieben.
Nachdem jetzt ein Operand geladen worden ist, besteht eine Wahl bezüglich der nächsten Operation, je nach derReihenfolge der Codes. Es sei angenommen, daß der nächste Befehl einen Zusatzspeicher zu dem FPACD0-Akkumulator anzeigt, wo der zweite
509830/0729
Operand sich in der durch den CPU-Akkumulator bezeichneten Speicher-Nullstelle befindet. Es sei ferner angenommen, daß der zweite Operand im Speicher der mit Fig. 17b wiedergegebene Wert ist, der 3/16 χ 16 entsprechen würde. In diesem Fall zeigt das FPDA-Signal an, wann der zweite Operand sich auf der Speicher-Sammelleitung befindet und über die Lade-Wähleinheit 21 vom Register 22 angenommen wird.
An dieser Stelle wird die Mantisse des zweiten Operanden über die Eingangs-Wähleinheit 28 direkt durch den Hex-Skalierer 27 in das B-Register 24 geleitet, und der Exponent EB wird über den Multiplexer 25 der EM-Sammelleitung an die Exponenten-ALU 41 geleitet; gleichzeitig wird die Mantisse des ersten Operanden in das A-Register 33 und der Exponent von FPACD 31 in den EA-Akkumulator 42 geladen.
Gleitkomma-Addition besteht aus einem Exponentenvergleich und einer Mantissen-Addition. Die Exponenten der beiden Operanden werden durch Ausführung einer Subtraktion verglichen. Für die vorliegenden Beispiele wird der einen Exponentenwert 5 aufweisende zweite Operand von einem einen Exponentenwert 4 aufweisenden Operanden abgezogen, so daß als Ergebnis Eins erhalten wird, und der Absolutwert der erhaltenen Differenz wird über den Multiplexer 44 an die Skaliercode-Sammelleitung weitergegeben, um den Hex-Skalierer zu steuern. Es sei andererseits angenommen, daß die größere Exponentenzahl nicht EA sondern EB ist. In diesem Fall wird die arithmetische Operation in dem Zweierkomponenten-Konverter 43 ausgeführt, und die Übertragsbezeichnung wirkt auf die Exponenten-Wähleinheit 45 so ein, daß der EB-Exponent im Anschluß an die arithmetische Operation in den EA-Akkumulator 42 geladen wird.
Da im vorliegenden Beispiel EA größer als EB ist, verlangt der Hex-Skalierer eine Verschiebung der B-Registermantisse um eine hexadezimale Ziffer nach rechts, so daß die mit Fig. 17c wieder-
509830/07 2 9
gegebene Konfiguration erhalten wird, über das rechte Ende der Mantisse hinaus verschobene Bits sind verloren und nehmen an der Addition keinen Anteil.
Nach dem Ausgleich werden die Vorzeichen der beiden Operanden in der Vorzeichen-Steuereinheit 46 untersucht, und die Mantissen werden entsprechend den Regeln der Algebra addiert. Die A- und B-Register werden addiert, um das mit Fig. 17d wiedergegebene Ergebnis im Register A zu liefern. Zu diesem Zeitpunkt wird der A-Register-Ausgang durch den Verschiebungscodierer abgefragt, um die Notwendigkeit einer Normalisierung zu bestimmen, insbesondere, wie viele bedeutsame hexadezimale Nullen vorhanden sind. Sind es keine, wie in diesem Fall, so ist keine Normalisierung notwendig, und die Decodiersteuer- und Zeitgeberlogik 13 verlangt ein Schreiben der A-Register 23-Daten sowie der EA-Daten über die Eingangs-Wähleinheit 28 in den FPACS-Akkumulator 29 und den FPACD-Akkumulator 31. Wenn es jedoch notwendig ist, das Ergebnis im Α-Register mit dem Schiebecodierer 34 zu normalisieren, wird die Zahl hexadezimaler Ziffern an den Hex-Skalierer 27 über die Skaliercode-Sammelleitung weitergegeben, wo eine entsprechende Normalisierung mittels eines speziellen Linksverschiebungsdaten-A-Registers erfolgt und gleichzeitig der Exponent im EA-Akkumulator in der erforderlichen Weise verkleinert wird, indem der gleiche Skaliercode-Sammelleitungswert über den Multiplexer 25 an die Exponenten-ALU 4,1 geleitet wird, die den Wert des Skaliercodes von EA subtrahiert und das Ergebnis über 45 an EA zurückführt. Wenn die Ergebnisdaten in den Speicher geschrieben werden sollen, so erfolgt dies durch Weiterführung der Ergebnisdaten vom FPACS-Akkumulator 29 über den Inverter 27' in das Register 22 und sodann mit Hilfe eines FPDA-Impulses über den Wandler 30 zur Speicher-Sammelschiene und in die gewünschte Speicherstelle. ■
Wie anhand Fig. 2 verständlich, wird, wenn ein Multiplizieroder Teilbefehl verlangt wird, der Ausgang der Exponenten-ALU 41 über die Exponenten-Wähleinheit 45 als das Ergebnis der
50 9830/0729
arithmetischen Operation in den EA-Akkumulator zurückgeleitet.
Bei einer Multiplikations-Operation werden die Mantissen der beiden Operanden miteinander multipliziert, um ein Mantissen-Zwischenergebnis zu erhalten. Die Exponenten der beiden Zahlen EA und EB werden miteinander addiert. Das Ergebnis der Exponentenbehandlung wird der Exponent des Zwischenergebnisses. Das Vorzeichen des Zwischenergebnisses wird aus dem Vorzeichen-Bit der beiden Operanden nach den Regeln der Algebra bestimmt. Wenn die Exponentenverarbeitung entweder einen über- oder aber einen Unterlauf erzeugt, so wird das Ergebnis bis zum Abschluß festgehalten, bei dem der Statüs-Teil 38 durch das Zustandsregister 39 gesetzt wird.
Bei einer Divisions-Operation, wenn der Operand in FPACD durch einen Quellen-Operanden dividiert werden soll, werden die beiden Mantissen verglichen, und wenn die FPACD-Mantisse größer als oder gleich der Quellen-Operanden-Mantisse ist, wird die FPACD-Mantisse um eine hexadezimale Ziffer nach rechts verschoben, außerdem ihr Exponent um Eins vergrößert. Der Vorgang dauert an, bis die FPACD-Mantisse kleiner als die Quellen-Operanden-Mantisse ist. Die FPACD-Mantisse wird dann durch die Quellen-Operanden-Mantisse dividiert, um zu dem Quotienten-Zwischenergebnis zu gelangen. Der Quellen-Operanden-Exponent wird von dem FPACD-Exponenten subtrahiert, wobei das Ergebnis der Exponent des Zwischenergebnisses wird.
Die Erfindung stellt somit einen Gleitpunkt-Rechenmechanismus mit gesonderten arithmetischen Einheiten für die Exponenten- und Mantissenteile der Operanden zur Verfügung, wobei die Mantissen-ALU einen hexadezimalen Skalierer enthält, der durch einen Skaliercode gesteuert ist, um einen entsprechenden 56-Bit-Mantissenwert in vier Taktimpulsen zu verschieben. Die A- und B-Registereingänge der Mantissen-ALU weisen jeweils 14 4-Bit-Register auf, deren dem niedrigstwertigen Bit entspre-
50 983 0/0729
chende Stelle über mehrere Multiplexer an den Hex-Skalierer-Eingang angeschlossen ist, dessen äquivalenter Ausgang zum Laden in dieselben entsprechenden 4-Bit-Register zurückgeführt ist. Die Multiplexer sind außerdem so angeschlossen, daß sie Operanden/Ergebnisse in den A- und B-Registern und dem Gleitkomma-Zwischenspeicher selektiv in zwei Gleitkomma-Akkumulatoren laden, um die Weitergabe der Daten zu vereinfachen und zu beschleunigen. Es läßt sich auch eine Normalisierung erzielen, indem ein Skaliercode erzeugt wird, der auf der Zahl der höchstwertigen hexadezimalen Ziffern beruht, die bis zur Erfassung einer von NuII abweichenden hexadezimalen Ziffer bestimmt werden. Die Exponenten-ALU sorgt für die Erzeugung eines Absolutwerts der algebraischen Differenz zweier Exponenten als Skaliercode für die Angleichung des ersten und zweiten Operanden aneinander. Außerdem ist für festverdrahtete Verbindungen zwischen dem Mantissen-ALU-Ausgang und den A- und B-Registern gesorgt, um die Verschiebung der Ergebnisse für arithmetische Operationen zu beschleunigen.
Patentansprüche;
509830/0729

Claims (14)

  1. Patentansprüche :
    Mit Gleitkomma arbeitender Rechenmechanismus mit einer Anordnung zum Verschieben erster bzw. zweiter Operanden mit ersten und zweiten Mantissen- sowie Exponentenwerten zur Durchführung arithmetischer und logischer Operationen, einer Einrichtung zur Bildung eines Skalen- oder Maßstabsfaktors zur Festlegung der Forderungen hinsichtlich einer Operandenverschiebung sowie einer an eine erste und zweite Registereinrichtung angeschlossenen und zur Aufnahme des Operanden geeigneten arithmetische Logikeinrichtung, gekennzeichnet durch einen auf den Maßstabsfaktor ansprechenden Skalierer zur Verschiebung von Operanden in hexadezimalem Format; die Tatsache, daß jede der Registereinrichtungen eine Gruppe mit 4-Bit-Registern aufweist, wobei korrespondierende 4-Bit-Register für die erste und zweite Registereinrichtung jeweils an eine Gruppe Eingangsleitungen des hexadezimalen Skalierers angeschlossen sind, um in einer ersten Richtung aus einer ausgewählten Registereinrichtung ausgeschrieben zu werden; eine Schalteinrichtung zur selektiven Verbindung eines aus der Gruppe der 4-Bit-Register mit der Gruppe Eingangsleitungen der hexadezimalen Skaliereinrichtung; sowie dadurch, daß die hexadezimale Skaliereinrichtung einen Ausgang hat, der zu einem Eingang des 4-Bit-Registers zurückgeführt ist und auf den Maßstabsfaktor anspricht, um eine Gruppe 4-Bit-Register in der ersten Richtung seriell zu laden und damit einen ausgewählten Operanden zu verschieben.
  2. 2. Mit Gleitkomma arbeitender Mechanismus nach Anspruch 1, dadurch gekennzeichnet, daß die erste und zweite Registereinrichtung jeweils vierzehn eine Skalierung von 56-Bit-Operanden-Mantissen in vier Taktimpulsen ermöglichende 4-Bit-Register aufweisen.
    509830/0729
  3. 3. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch 1, dadurch gekennzeichnet, daß die arithmetische Logik-einrichtung einen in Festverdrahtung an den Eingang einer der beiden ersten und zweiten Registereinrichtungen angeschlossenen Ausgang zur Abgabe einer resultierenden Verschiebung einer Bit-Stelle nach rechts aufweist.
  4. 4. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch
    3, dadurch gekennzeichnet, daß der Ausgang der arithmetischen Logikeinrichtung in Festverdrahtung an den Eingang der anderen der beiden ersten und zweiten Registereinrichtungen zur Abgabe einer resultierenden Verschiebung um eine Bit-Stelle nach links angeschlossen ist.
  5. 5. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch
    4, gekennzeichnet durch eine Einrichtung zur Kopplung eines Übertragausgangs der arithmetischen Logikeinrichtung an die durch Verschiebung der resultierenden einen Bit-Stelle nach rechts .freigewordene Bit-Stelle aufweist.
  6. 6. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch
    5, gekennzeichnet durch eine Einrichtung zur Erweiterung der verbleibenden anderen Registereinrichtung durch Schaffung einer zusätzlichen 1-Bit-Stelle und Verbindung der Bit-Stelle mit einer letzten Bit-Stelle der anderen der beiden ersten und zweiten Registereinrichtungen.
  7. 7. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch 1, dadurch gekennzeichnet, daß die arithmetische Logikeinrichtung einen an die erste und zweite Registereinrichtung angeschlossenen Ausgang hat.
  8. 8. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch 1, gekennzeichnet durch eine dritte Registereinrichtung mit einer zum parallelen Laden von einer Speicher-Sammelschiene aus angeschlossenen Gruppe 4-Bit-Register sowie
    509830/0729
    dadurch, daß die Schalteinrichtung die niedrigstwertigen Stellen der 4-Bit-Register der dritten Registereinrichtung selektiv an die hexadezimale Skaliereinrichtung anschließt und der Ausgang des hexadezimalen Skalierers außerdem so angeschlossen ist, daß die dritte Registereinrichtung selektiv beladen wird.
  9. 9. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch 1, gekennzeichnet durch eine an die Schalteinrichtung angeschlossene erste und zweite Akkumulatoreinrichtung sowie dadurch, daß die erste Akkumulatoreinrichtung zum selektiven Laden eines der beiden ersten und zweiten Register in serieller Form in einer Richtung an den Ausgang der hexadezimalen Skaliereinrichtung und die zweite Akkumulatoreinrichtung zum seriellen Laden in einer zu der einen Richtung entgegengesetzten anderen Richtung an die erste Registereinrichtung angeschlossen ist.
  10. 10. Mit Gleitkomma arbeitender Mechanismus nach Anspruch 1 oder 8, dadurch gekennzeichnet, daß die Einrichtung zur Bildung eines Maßstabsfaktors eine Schiebe-Codiereinrichtung aufweist, die an den Ausgang der arithmetischen Logikeinrichtung angeschlossen ist, um bedeutsame Ziffern des Inhalts in einem ausgewählten der beiden ersten und zweiten Register zu zählen, bis die erste von Null abweichende bedeutsame Ziffer erfaßt worden ist, wobei die Zählung einen Maßstabsfaktor zur Normalisierung eines Operanden erzeugt.
  11. 11. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch 10, dadurch gekennzeichnet, daß die Einrichtung zur Bildung eines Maßstabsfaktors zur Subtraktion und Addition von Operanden ferner eine auf die ersten und zweiten Exponentenwerte ansprechende zweite arithmetische Logikeinheit aufweist, um den Absolutwert deren algebraischer Differenz zu bilden und so den Maßstabsfaktor zur Angleichung des ersten und zweiten Operanden zu erzeugen.
    509830/0729
  12. 12. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch
    11, dadurch gekennzeichnet, daß die zweite arithmetische Logikeinheit ferner einen auf den größeren der beiden Exponentenwerte ansprechenden Steuersignalausgang abgibt, um die Schalteinrichtung so zu steuern, daß sie den Inhalt des Registers auswählt, das die dem größeren Exponentenwert entsprechende Mantisse hat.
  13. 13. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch
    12, dadurch gekennzeichnet, daß die zweite arithmetische Logikeinrichtung eine zum seriellen Laden in einer ersten Richtung von der Skaliereinrichtung und zum seriellen Laden in einer ersten Richtung von der ersten Akkumulator-einrichtung angeschlossene vierte Registereinrichtung aufweist, die selektiv an die Schalteinrichtung angeschlossen ist, so daß ihr Inhalt mit dem Inhalt der ersten Registereinrichtung weitergeleitet wird, sowie dadurch, daß die dritte Registereinrichtung einen ersten und zweiten Teil aufweist, die jeweils die Exponenten- und Mantissenwerte eines geladenen Operanden enthalten.
  14. 14. Mit Gleitkomma arbeitender Rechenmechanismus nach Anspruch 9, dadurch gekennzeichnet, daß die dritte Registereinrichtung selektiv an die Speicher-Sammelschiene angeschlossen ist, um ihren Inhalt darauf auszuschreiben.
    KN/jn/sg/hs 3
    509830/0 7 29
    Leerseite
DE19752501985 1974-01-21 1975-01-18 Mit gleitkomma arbeitender rechenmechanismus Pending DE2501985A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US43538374A 1974-01-21 1974-01-21

Publications (1)

Publication Number Publication Date
DE2501985A1 true DE2501985A1 (de) 1975-07-24

Family

ID=23728162

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752501985 Pending DE2501985A1 (de) 1974-01-21 1975-01-18 Mit gleitkomma arbeitender rechenmechanismus

Country Status (5)

Country Link
JP (1) JPS50108847A (de)
CA (1) CA1015065A (de)
DE (1) DE2501985A1 (de)
FR (1) FR2258666B3 (de)
GB (1) GB1475471A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2900324A1 (de) * 1978-01-05 1979-07-19 Honeywell Inf Systems Mikroprogrammierbare arithmetische fliesskommaeinheit

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3429927B2 (ja) * 1995-10-16 2003-07-28 三菱電機株式会社 浮動小数点演算装置の正規化回路装置
WO1998006029A1 (en) * 1996-08-07 1998-02-12 Valery Yakovlevich Gorshtein Apparatus and methods for execution of computer instructions
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2900324A1 (de) * 1978-01-05 1979-07-19 Honeywell Inf Systems Mikroprogrammierbare arithmetische fliesskommaeinheit

Also Published As

Publication number Publication date
FR2258666A1 (de) 1975-08-18
JPS50108847A (de) 1975-08-27
CA1015065A (en) 1977-08-02
GB1475471A (en) 1977-06-01
FR2258666B3 (de) 1977-10-21

Similar Documents

Publication Publication Date Title
EP0079471B1 (de) Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit
DE2724125C2 (de)
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE2712224A1 (de) Datenverarbeitungsanlage
CH644461A5 (de) Digitale multipliziereinrichtung.
DE1549480A1 (de) Datenverarbeitungsanlage
DE2222197C3 (de) Anordnung zum Auf- bzw. Abrunden von Binärzahlen
DE1197650B (de) Parallel-Addierer
DE1549508B2 (de) Anordnung zur uebertragsberechnung mit kurzer signallaufzeit
DE2424756C3 (de) Elektronischer Rechner
DE2830334C2 (de)
DE3303269C2 (de)
DE3440680C2 (de)
DE2364865A1 (de) Erweitertes speicheradressenbildungssystem eines digitalen rechnersystems
DE2310553A1 (de) Vorrichtung zur durchfuehrung arithmetischer und logischer operationen
DE3340362C2 (de)
DE2245284A1 (de) Datenverarbeitungsanlage
DE2501985A1 (de) Mit gleitkomma arbeitender rechenmechanismus
DE2523755A1 (de) Divisionsverarbeitungssystem mit 2n-facher genauigkeit
DE1184122B (de) Addiervorrichtung
DE1222290B (de) Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE1549461C3 (de)