DE2949375A1 - Gleitkommaprozessor - Google Patents
GleitkommaprozessorInfo
- Publication number
- DE2949375A1 DE2949375A1 DE19792949375 DE2949375A DE2949375A1 DE 2949375 A1 DE2949375 A1 DE 2949375A1 DE 19792949375 DE19792949375 DE 19792949375 DE 2949375 A DE2949375 A DE 2949375A DE 2949375 A1 DE2949375 A1 DE 2949375A1
- Authority
- DE
- Germany
- Prior art keywords
- bus
- floating point
- signals
- mantissa
- exponent
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Description
AnmelderIn: Stuttgart, d. 6. Dez. 1979
Data General Corporation P 3785 R/Bn
Weetboro,. Massachusetts 01581
V.St.A·
V.St.A·
Vertreter;
KohleΓ-Schwindling-Spath
Hohentwieletr. /+1
7000 Stuttgart - 1
GIe itkommapro ze ssor
Die Erfindung bezieht sich im allgemeinen auf datenverarbeitende
Systeme, und mehr im einzelnen auf eine Gleitkommaeinheit
zum Durchführen von Gleitkommarechnungen innerhalb des datenverarbeitenden Systems.
Die Erfindung steht mit der älteren Patentanmeldung P 29 hfh, 1+19.7 der Anmelderin in Zusammenhang. Der gesamte
Inhalt dieser älteren Anmeldung wird durch diese Bezugnahme zum Inhalt der vorliegenden Anmeldung gemacht.
Die Darstellung von Zahlen in Datenverarbeitungssystemen, besondere von gebrochenen Zahlen, erfordert bei der
030025/0752
Schreibweise die Einführung eines Dezimalkommas, Als eine Möglichkeit können datenverarbeitende Systeme
die Festkommadarstellung verwenden, bei der das Dezimalkomma unmittelbar rechts neben der niedrigstwertigen
Stelle angeordnet wird oder unmittelbar rechts von dem Vorzeichenbit vor dem ersten Informationsbit.
Eine weitere Möglichkeit wird "Gleitkommaschreibweise"
genannt, bei der die Zahl durch ein Vorzeichen, einen Exponenten und eine Mantisse dargestellt wird. Diese
Technik ist in vielen Schriften dargestellt, ein Beispiel ist "Computer Architecture", Caxton C. Foster,
Van Nostrand Rheinhold Company, New York, New York, Seite 16 ff..
Gleitkommaeinheiten neigen dazu, relativ komplex zu werden, wenn sie für große Bereiche von Dezimalzahlen
und für erhöhte Genauigkeit entworfen werden. Eine Technik, die eine relativ gute Flexibilität und gute
Genauigkeit ergibt, wobei sie von einer gewissen Vereinfachung der üblicherweise verwendeten Gleitkommaarchitektur
Gebrauch macht, ist im canadischen Patent 1 105 065, das auf die Anmelderin der vorliegenden Anmeldung
übertragen worden ist, beschrieben. Diese Architektur ist so konstruiert, daß ein erster und
zweiter Operant zur Durchführung arithmetischer Operationen verschoben wird, wobei die Operanden eine erste
bzw. zweite Mantisse und einen ersten bzw. zweiten Exponenten aufweisen. Es ist eine arithmetische Logik
und eine Registeranordnung zum Erzeugen eines vorher ausgewählten Skalenfaktors vorgesehen, um die Anforderungen
an die Verschiebung der Operanden zu kennzeichnen. Skalierer sind so angeschlossen, daß sie die
030025/0752
Register selektiv seriell in einer ersten Richtung laden und einen eingegebenen Operanden in Abhängigkeit von dem
vorher ausgewählten Skalenfaktor skalieren. Es ist eine Schaltanordnung verwendet, die das Register wahlweise mit
dem Skalierer verbindet, um aus dem ausgewählten Register in der ersten Richtung auszuschreiben.
Eine andere Technik, die eine Verbesserung der Arbeitsgeschwindigkeit bei Mantissenmultiplikationstechniken
ergibt, wird durch Ausführung der Operation bei vier Bits der der Multiplikatormantisse gleichzeitig
erhalten, im Gegensatz zur Verwendung einer Technik mit einer Mantissenmultiplikation mit einem einzigen Bit;
diese Technik wird in der US-Patentanmeldung Az.: 871 616, angemeldet 23. Januar 1978, mit dem Titel
"Floating Point Data Processing System", Erfinder Edward Rasala, die auf die Anmelderin übertragen worden
ist, beschrieben. Bei dieser früheren Anmeldung wird die Multiplikation mit einer Mantisse mit vier Bit in
Hexadezimalschreibweise ausgeführt, wobei geeignet zwischengeschaltete Schiebeeinheiten, arithmetische
Logikeinheiten und Register verwendet werden. Entsprechend dieser älteren Anmeldung ist die Gesamtoperation
wirkungsmäßig eine "PipelindMDperation, bei
der ein Arbeitsregister ständig ein Partialprodukt und ein Endregister ständig eine Partialsumme enthält, die
in eine zweite arithmetische Logikeinheit zurückgeführt
wird, um für einen kontinuierlichen Rechenvorgang zu sorgen. Das Gesamtprodukt in einem Endregister wird
zum datenverarbeitenden System mittels eines internen Mantissenbusses zum Datenbus geliefert, der die Datenübertragung
zwischen dem Datenverarbeitungssystem und der Gleitkommaeinheit bewirkt.
Θ30025/0752
Während die in dem oben genannten Patent und der US-Patentanmeldung
beschriebenen Systeme die Möglichkeit einer raschen und bequemen Ausführung von arithmetischen Operationen
in einem großen Zahlenbereich mit verhältnismäßig hoher Genauigkeit und Geschwindigkeit haben, kann
die gesamte Arbeit des Gleitkommaprozessors, der eine Architektur für eine Mantissenrechenfunktion und eine
Exponent/Vorzeichen-Rechenfunktion und eine Steuerung für diese beiden anderen Funktionen verwendet, noch verbessert
werden· Die vorliegende Erfindung schafft diese Verbesserung der Operationsgeschwindigkeit und Leistunpfähigkeit
durch Verwendung von Techniken, die die gleichzeitige Ausführung sowohl der Mantissen- als auch
der Exponentenfunktionen unter Steuerung durch eine einmalige Steuerarchitektur gestatten.
Daher wird die ständige Forderung oder das Problem, die Zeit für spezielle Rechnungen und für die gesamte Verarbeitung
bei einem Gleitkommaprozessor zu verringern, durch die Konstruktion oder die Lösung gemäß der vorliegenden
Erfindung, die im Folgenden in Einzelheiten beschrieben wird, gelöst.
Die vorliegende Erfindung bezieht sich auf eine Gleitkommaeinheit (floating point unit, FPU) zur Durchführung
von Gleitkommarechnungen innerhalb eines datenverarbeitenden Systems· Die Gleitkommaeinheit weist eine Mantissenarchitektur
auf, eine Exponent/Vorzeichen-Architektur, und eine Steuerarchitektur zum Steuern der
Tätigkeiten der Mantissenarchitektur und der Exponent/ Vorzeichen-Architektur· Die Mantissenarchitektur behandelt
die MantissenteJLe bestimmter Daten in einer ersten
030025/0752
vorbestimmten Weise, und die Exponent/Vorzeichen-Architektur behandelt andere von der Mantissenarchitektur
empfangene Daten in einer zweiten vorbestimmten Weise. Die Steuerarchitektur gestattet die gleichzeitige Tätigkeit
der Exponent/Vorzeichen-Architektur und der Mantissenarchitektur·
Gemäß einem weiteren Merkmal der vorliegenden Erfindung weist die Steuerarchitektur eine Mikroprogrammsteuerstruktur
zum Erzeugen von Sätzen von Mikroprogrammsteuersignalen auf und eine Pipeline-Registerstruktur zur Unterstützung
bei der schnellen übertragung der Mikrosteuerprograramsignale
zu einer Steuerstelle zum Steuern der Tätigkeit der FPU.
Es ist daher vorteilhaft, die vorliegende Erfindung innerhalb eines Datenverarbeitungssystems zu verwenden, um
dieses System zu befähigen, höhe Geschwindigkeiten und Wirkungsgrade bei der Behandlung von Daten zu erreichen.
Es ist daher ein Vorteil der vorliegenden Erfindung, daß sie ein verbessertes Datenverarbeitungssystem schafft.
Ein weiterer Vorteil der Erfindung besteht in der Schaffung einer verbesserten Gleitkommaeinheit zur Benutzung
innerhalb eines Datenverarbeitungssystems·
Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, daß sie einen verbesserten Gleitkommaprozessor
schafft, in dem die Behandlung und die Steuerung der Mantissenfunktion und der Exponent/Vorzeichen-Funktion
gleichzeitig oder simultan durchgeführt werden, um einen
030025/0752
höheren Gesamtwirkungsgrad der Operation zu erhalten»
Weitere Merkmale und Vorteile der vorliegenden Erfindung werden anhand der Zeichnung in bevorzugten Ausführungsbeispielen beschrieben»
Fig. 1 A ist ein Blockschaltbild eines Datenverarbeitungssystems, mit dem der Gleitkommaprozessor
arbeitet;
Fig. 1 B ist eine Darstellung des Speichers der Fig. 1 A,
mit dem die FPU verkehrt;
Fig. 2 A ist ein Blockschaltbild der FPU, das die Verbindungen mit der Struktur der Fig. 1 zeigt;
Fig. 2 B ist eine schematische Darstellung der Schnittstellenschaltung
von Fig. 2 A;
Fig, 2 C ist eine schematische Darstellung, die die
Fließrichtung von Taktsignalen un3 bestimm*-
ten grundlegenden Verbindungssignalen zwischen der Stromversorgung, der FPU und der CPU zeigt;
Fig. 3 zeigt ein genaueres Blockschaltbild der in Fig. 2 A gezeigten Steuerarchitektur;
Fig. h ist ein genaueres Blockschaltbild der in Fig»
2 A gezeigten Exponent/Vorzeichen-Architektur;
Fig. 5 ist ein genaueres Blockschaltbild der in Fig. 2 A gezeigten Mantissenarchitektur;
030025/0752
Fig. 6 ist eine schematische Darstellung des Busausgabeformats des Steuerspeichers ROM ^19;
Fig. 7 ist ein Blockschaltbild des Arbeitsregisters MS8, das in einer Stapelspeicherkonfiguration
gezeigt ist;
Fig. ö ist eine schematische Darstellung eines Gleitkommaworts,
wie es im Speicher 3V5 gespeichert würde, und in der Gleitkommaeinheit i+90 dargestellt
würde;
Fig. 9 ist eine schematische Darstellung der 6i+-tlberschußschreibweise,
die bei der Behandlung durch die Sxponentenfunktion verwendet wiri;
Fig. 10 ist eine schematische Darstellung eines nicht-normierten und des entsprechenden normierten
Gleitkommaworts;
Fig. 11 ist eine schematische Darstellung der das
Arbeitsregister /+68 bildenden Schaltung;
Fig. 12 ist ein Blockschaltbild der Hexadezimal-Verschiebeeinrichtung
/+70;
Fig. 13 A
und B ist eine schematische Darstellung der Schaltung innerhalb der Hexadezimal-Verschiebeeinrichtung
/|70; und
Fig. Hf A
und B ist ein Zeitdiagramm, das verschiedene Takt-
030025/0752
signale und Verbindungssignale zeigt, die durch das Datenverarbeitungssystem und die
in diesem enthaltene FPU verwendet werden.
Zunächst wird eine kurze ins einzelne gehende Beschreibung des gesamten Datenverarbeitungssystems gegeben, in dem
die vorliegende Erfindung verwendet wird. In Fig. 1 A enthält ein Speicher 311 eines Rechners 310 einen oder
mehr Unterspeicher 313. Der Ausgang des Speichers ist durch einen MEMOUT-Bus 318 mit Eingängen eines
MEMOUT-Registers 3kO in einer Zentraleinheit (CPU) 31 if
und eines Speichers 330 in einem PFP (Bereitstellprozessor) 312 und mit einer FPU (Gleitkommaeinheit) 1+90
in Fig· 2 A (unten beschrieben) verbunden. Der MEMOUT-Bus
318 ist auch mit einer Fehlerkorrekturlogik (ERCC)
319 in der Zentraleinheit 31^ verbunden. Der Ausgang
eines MEMOUT-Registers 3/+O ist mit einem ALUIN-Bus 321+
verbunden, und der Ausgang des PFP-Speichers 330 ist mit einem PFP-Bus 322. verbunden. Der PFP-Bus 322 ist mit
dem ALUIN-Bus 32*+ über einen Transfer-Bus 3*$» einen
Bus "kurze effektive Adresse" (EFA) 350 und ein Befehlsregister
(IR) 3^+6 verbunden. Der PFP-Bus 322 ist mit
Eingängen einer Mikrobefehl-Logik 3l\2 und einer
Speicher-Zuordnungs- und -Schutz-Schaltung (MAP) 35*+
verbunden. Der Ausgang der Mikrobefehl-Logik 3*f2 ist
über ein Mikrobefehlregister (^iIR) 3kk mit einem Eingang
einer arithmetischen und logischen Einheit (ALU) 356 und dem ALUIN-Bus 3Zk verbunden. Der ALUIN-Bus
ist mit einem anderen Eingang der ALU 356 verbunden. Ein erster Ausgang der ALU 356 ist mit dem ALUOUT-Bus
326 verbunden, und ein zweiter Ausgang mit einem
Eingang des MAP 35h· Der ALUOUT-Bus 326 ist mit dem
030025/0752
ALUIN-Bus 324 durch einen SWAP-Bus 360 und ein Konsolen-ROM
358 verbunden, und mit dem PFP-Bus 322 über ein Register 352. Der ALUOUT-Bus 326 ist mit Eingängen eines
CPU-Befehlszähler- (CPUPC)-Registers 36*+ und eines Registers
332 "Befehlszähler für den vom FPF abgerufenen Befehl (PCF)" verbunden. Der Ausgang des CPUPC-Registers
36if ist verbunden mit dem ALUIN-Bus 32*+, einem Eingang
einer PFP-Bereit(PFPRDY)-Logik 331+1 und mit dem Leseadresseneingang
des PFP-Speichers 330β Der Ausgang eines
PFPPCF-Registers 332 ist mit einem anderen Eingang der
PFPRDY-Logik 33/+ und mit dem Schreibadresseneingang des
PFP-Speichers 330 verbunden. Der ALUOUT-Bus 326 ist mit einem Eingang eines MEMIN-Registers 362 über einen Bus
326a verbunden, mit einem "Hoher Stellenwert Adresse" (HIADR)-Bus 328 durch einen Bus 326b, und mit einem
Eingang eines Registers 336 "Befehlszähler für den vom PFP angeforderten Befehl (PCR)". Die Ausgänge des MAP
35h sind mit dem ALUIN-Bus 321+ und dem HIADR-Bus 328
verbunden. Der HIADR-Bus 328 ist mit dem ALUIN-Bus 321+ durch einen Transfer-Bus 366 verbunden. Der HIADR-Bus
328 ist mit Eingängen des MEMIN-Registers 362 und des PFPPCR-Registers 336 verbunden. Die Ausgänge des
MEMIN-Registers 362 und des PFPPCR-Registers 336 sind mit dem MEMIN-Bus 320 verbunden, der mit dem Eingang
des Speichers 311 und mit der FPU 1+90 in Fig. 2 A (unten beschrieben) verbunden ist. Der Ausgang des
PFPPCR-Registers 336 ist mit einem Eingang einer "Schreiben Laufender Block"-Logik (WCB) 338 verbunden, und der
MEMIN-Bus 320 ist mit einem anderen Eingang des
WCB 338 verbunden· Ein Takt- und Steuer-Bus (CC) 321
ist zwischen den Speicher 311» die CPU 31^ und den PFP 312 eingeschaltet. Ein Daten-E/A-Bus 368 ist mit
030025/0752
mit ALUIN-Bus 324 durch einen Bus 370 verbunden, und mit
dem ALUOUT-Bus 326 über einen Bus 372. Ein E/A-ASCII-Kanal
374 ist mit dem ALUIN-Bus 324 und dem ALUOUT-Bus
326 durch einen Universellen-Asynchronen-Empfänger/Sender (UAIiT) 376 verbunden.
Die CPU 314 hat direkten Zugriff zum Speicher 311, um
Befehle und Daten in den Speicher 311 einzuschreiben
oder aus ihm auszulesen. Die FPU 490 von Fig. 2 A hat
unter bestimmten unten beschriebenen Bedingungen ebenfalls einen direkten Zugriff zum Speicher 311· Die
CPU 314 hat auch einen indirekten Zugriff zum Speicher
311 durch den PFP 312, der die vor dem gerade durch
die CPU 314 in Ausführung befindlichen Befehl
liegenden Befehle abruft und speichert.
Zunächst wird der direkte Zugriff zwischen der CPU 314
und dem Speicher 311 betrachtet. Das Ausgangssignal des Speichers 311 wird direkt dem ALUIN-Bus 324 und der
ALU 356 durch das MEMOUT-Register 340 zugeführt. In ähnlicher Weise hat die ALU 356 direkten Zugriff zum
Eingang des Speichers 310, um direkt Daten oder Befehle durch den ALUOUT-Bus 326 und das MEMIN-Register 362 einzugeben
oder anzufordern. Datenwörter werden dem MEMIN-Register 362 direkt von dem ALUOUT-Bus 326 zugeführt,
jedoch hängt die Lieferung von Adressen an den Speicher 310 davon ab, ob der Benutzer eine direkte
Adresaerung des Speichern 311 oder eine kartierte (MAPped)
Adressierung verwendet. Beim direkten Adressieren werden die logischen Adressbits 6-15 dem MEMIN-Register 362
durch den Bus 326a zugeführt; die logischen Adressbits 0-5 und die Bits 16-19 werden durch den Bus 326b
und den HIADR-Bus 328 hindurchgeliefert. Wenn eine
030025/0752
Kartierung (MAPping) verwendet wird, werden die logischen Adressbits 6-15 dem MEMIN-Register 362 von dem ALUOUT-Bus
326 und dem Bus 326a zugeführt. Die logischen Adressbits
1 - 5 v/erden von der ALU 356 der MAP 55k zugeführt.
Die MAP 35^ übersetzt die logischen Adressbits 1 - 5 in
entsprechende Bits 0-5 und 16 - 19 der echten Adresse und liefert diese Bits durch den HIADR-Bus 328 an das
MEMIN-Register 362.
Es wird nun der indirekte Zugriff zwischen der CPU 31k
und dem Speicher 311 betrachtet. Der PFP 312 führt eine
Befehlsvorausschau für die CPU 51^t durch, indem er eine
Folge von Befehlen vor dem augenblicklich durch die CPU 31k in Ausführung befindlichen Befehl aus dem Speicher
abruft und speichert. Die CPU 31 ^f verfolgt das gerade
ausgeführte Programm durch Speicherung eines Teils der logischen Adresse des gerade in der Ausführung befindlichen
Befehls in dem CPUPC-Regi.stnr %1±; diese Zahl
wird als CPU-Befehlszählerstand (CPUPC) bezeichnet. Der anfängliche Befehlszählerstand einer Befehlsfolge wird
in das CPUPC-Register 36^ von der ALU j>56 durch den
ALUOUT-Bus 326 geladen. Der Befehlszählerstand wird dann jedes Mal, wenn ein Befehl ausgeführt ist, um
1 inkrementiert, falls Befehle aus dem Speicher 311
aufeinanderfolgend abgerufen werden müssen. Falls der laufende Befehl einen Sprung oder eine ähnliche Operation
erfordert, wird ein neuer Befehlszählerstand in das CPUPC-Register 3&Ί geladen. Die echte Adresse des ersten
Befehls der Befehlsfolge wird in das PFPPCR-Rogister
336 als Wert PFPPCR geladen. Wie beim Laden der Adressen in das MEMIN-Register 362 können die echten
Adressen direkt oder kartiert sein. Wenn sie direkte
030025/07 5 2
Adressen sind, wird die echte Adresse von der ALU durch den Bus 326c geliefert. Wenn die MAP 35*f arbeitet,
werden die Bits 6-15 durch den Bus 326c und die kartierten Bits 1 - 5 und 6 - 19 durch den HIADR-Bus
hindurch von der MAP 354 her geladen· Zur gleichen Zeit
werden die niedrigstwertigen Bits 12-15 der echten Adresse in das PFPPCF 332 als PFPPCF geladen. Daher
repräsentiert der Befehlszählerstand (CPUPC) die anfängiiche
logische Adresse der Folge oder Sequenz, während PFPPCR und PFPPCF die anfängliche echte Adresse
repräsentieren·
Danach kann bei jedem verfügbaren Speicherzugriffzyklus, der nicht für andere Zwecke, beispielsweise von
der CPU 31^ oder E/A-Geräten 316 benötigt wird, ctie
echte Adresse PFPPCR im PFPPCR-Register 336 auf den MEMIN-Bus 320 gegeben werden, um den entsprechenden
gespeicherten Befehl aus dem Speicher 311 zu lesen. Ein
durch PFPPCR angefordertes Wort, das auf dem MEMOUT-Bus 318 erscheint, wird im PFP-Speicher 330 unter
einer durch PFPPCF bestimmten Adresse gespeichert. PFPPCR und PFPPCR werden immer dann inkrementiert,
wenn ein Wort aus dem Speicher 311 gelesen wird. Das
PFPPCR-Register 336 erzeugt hierdurch und verfolgt angeforderte Adressen; das PFPPCR-Register 332 verfolgt
abgerufene Adressen und wählt die Speicheradressen im PFP-Speicher 330. Das WCB 338 vergleicht die durch
PFPPCR angeforderten Adressen mit durch die CPU 31 If eingeschriebenen Adressen und gibt eine Warnung ab,
falls die CPU 3H in die durch den PFP 312 angeforderten
Befehlsadressen schreibt.
030025/0752
Die Übertragung von Wörtern vom PFP-Speicher 330 zur CPU
31 it wird durch das CPUPC-Register 36/+ und die PFPRDY-Logik
334. gesteuert. Der im CPUPC-Register 36/+ gespeicherte
Befehlszählerstand (CPUPC) wird als Leseadresse zum PFP-Speicher 330 geliefert. Dadurch werden Befehle im
PFP-Speicher 330 auf den PFP-Bus 322 übertragen und sind für die Mikrobefehl-Logik 3^2 und das Befehlsregister 3*+6
zur Benutzung verfügbar, wenn es vom Programm verlangt wird. Der PFPRDY 33*+ vergleicht PFPPCF-Schreibadressen
mit CPUPC-Leseadressen und zeigt der CPU 31'+ an, ob der
PFP 312 den von der CPU 31/+ angeforderten nächsten Befehl
hat.
Es werden nun andere Merkmale der CPU 314 besprochen. Die
ERCC-Logik 319 überwacht alle Datenwörter oder Befehlswörter, die in den Speicher 311 eingeschrieben oder aus
ihm ausgelesen werden. Die ERCC-Logik 319 erzeugt Fehlerkorrekturbits der durch den MEMIN-Bus 320 in den
Speicher 311 geschriebenen Wörter. Wenn ein einen Fehler
enthaltendes ausgelesenes Wort auf dem MEMOUT-Bus 318 erscheint, verhindert die ERCC-Logik 319 eine Ausgabe
des Speichers 311 und erzeugt ein korrigiertes Wort. Die ERCC-Logik 319 bringt das korrigierte Wort
auf den MEMOUT-Bus 318 anstatt des fehlerhaften Worts. Ein Transfer-Bus 3/+8 gestattet es, daß Wörter auf dem
PFP-Bus 322 direkt zur ALU 356 durch den ALUIN-Bus 32/+
übertragen werden. Der Bus "Kurze Effektive Adresse" 350 gestattet es, daß die acht niedrigstwertigen Bits
des Worts auf dem PFP-Bus 322 zum ALUIN-Bus 32/+ als
eine kurze effektive Adresse übertragen werden, d.h. zum Erzeugen einer Speicheradresse, die mit einer z.Zt.
bekannten Speicheradresse in Beziehung steht. Das
030025/0752
29A937S
Register 352 gestattet es, daß das Ausgangssignal der ALU 356 auf dem ALUOUT-Bus 326 auf den PFP-Bus 32.2. übertragen
wird, beispielsweise als Eingangssignal für die Mikrobefehl-Logik 3if2, das Befehlsregister 3^6 oder den
MAP 354. Der SWAP-Bus 360 gestattet es, daß Bytes auf
dem ALUOUT-Bus 326 umgekehrt werden und auf dem ALUIN-Bus 324 als ein Eingangssignal fur die ALU 356 angeordnet
werden· Der Transferbus 366 gestattet es, daß eine
Adresse auf dem HIADR-Bus 328 auf den ALUIN-Bus 32/+
übertragen wird.
Es wird nun auf die E/A-Geräte 316 und den Konsolen-ROM 358 Bezug genommen. Der E/A-Datenkanal 368 und die E/A-Busse
37O und 372 gestatten es, daß Daten zwischen dem
ALUIN-Bus 321f oder ALUOUT-Bus 326 und einem externen Gerät
übertragen werden. In ähnlicher Weise gestattet der UART 376 eine Übertragung von Daten und Befehlen
zwischen dem ALUIN-Bus 32*t oder dem ALUOUT-Bus 326 und
einem externen Gerät, das am E/A-ASCII-Bus 37h angeschlossen
ist. Der Konsolen-ROM 358 1st ein Interface-Gßrät,
das es gestattet, daß irgendein externes Gerät mit beispielsweise einer ASCII-Schnittstelle als
Rechner-Konsole arbeitet. Externe ASCII-Zeichen werden durch den UART 376 empfangen, in einen binären Code umgesetzt
und auf den ALUIN-Bus 52.1+ gebracht. Sie werden
unter Verwendung der ALU 356 verarbeitet und erscheinen auf dem ALUOUT-Bus 326 als Konsolen-ROM(358)-Adressen.
Die Adressen auf dem ALUOUT-Bus 326 werden dann durch
den Konsolen-ROM 358 in Befehle in Maschinensprache
übersetzt.
Als nächstes wird eine kurze detaillierte Beschreibung des Speichers 313 gegeben, in dem die FPU /+90 steuernde
030025/0752
Befehle gespeichert werden.
In Fig. 1 B ist ein Blockschaltbild eines Unterspeichers
313 gezeigt. Die Organisation des Unterspeichers 31?
weist vier identische Speichermodule 512, 51^f, 516 und
518 auf. Die Module 51/+, 516 und 518 sind als Skelett ohne
die im Modul 12 gezeigten Einzelheiten aus Gründen der Klarheit der Darstellung gezeigt. Es wird daher die
Struktur und Arbeitsweise der Module 512 bis 5Io anhand
des Moduls 512 diskutiert. Daten- und Adress-Busse v/erden
durch parallele Linien angezeigt, und Steuerbusse durch einzelne ausgezogene Linien.
Jeder Modul weist zwei identische Bänke 520, 522 mit wahlfreiem Zugriff (RAM) auf, einen Zeitgebergenerator 52/+,
ein Zeilenadress-Speicher-Flipflop (latch) 526, ein Spaltenadress-Speicher-Flipflop 528 und Speicher-Treiberschaltungen
532 auf. Jede Speicherbank 520 oder 522 mag 21 Speicherelemente aufweisen. Jedes Element kann
ein Speicher mit wahlfreiem Zugriff (RAM) mit einer Länge von 16 K (1638/+ Wörter) und einer Breite von 1 Bit sein,
der intern eine Anordnung mit 128 Zeilen mal 126' Spalten aufweist. Die 21 Speicherelemente sind daher in der
Lage, 10 K 21-Bit-Wörter zu speichern. Der MEMIN-ßus 320
führt von der CPU, dem PFP, und der FPU zu Eingängen einer Pufferschaltung 53Ί>
die entsprechende Ausgangssignale an einen "Speichereingang"-(MI)-Bus 535 liefert.
21 Leitungen des MI-Busses 535 sind mit Eingängen eines
Daten-Speicher-Flipflops 536 verbunden, und ein "Daten-Eingang"-
(DI)-BuS 537 ist direkt mit den Daten-Eingängen der Bänke 520 und 522 der Module 512 bis 518 verbunden.
Sin Leiterplatten-, Modul- und Bank-Auswahlbus (BMS -Bus 539 )
030025/0752
ist zwischen den MI-Bus 535 und Eingänge einer Speicher-Logik
538 eingeschaltet. Ein Zeilenadress(RA)-Bus 527
und ein Spaltenadress(CA)-Bus 529 verlaufen vom MI-Bus
535 zu Eingängen der Zeilenadress-Speicher-Flipflops 526 bzw. der Spaltenadress-Speicher-Flipflops 528 der
Module 512 bis 518. Die Ausgänge der Speicher-Flipflops
526 und 528 werden als Adress-Bus (ADR)-Bus 530 zu Eingängen der Treiberschaltungen 532 geführt. Ein Adressen-Auf
frisch-Bus 531 (REFADR-Bus) von der Speicherlogik steht mit anderen Eingängen der Treiberschaltungen 532
der Module 512 bis 518 in Verbindung. Feldadressen (A)-Busse 533 sind mit den Treiberschaltungen 532 zum
Adressieren der Eingänge der Bänke 520 und 522 verbunden.
Die Datenausgänge der Bänke 520 und 522 jedes Speicher-Moduls sind durch verdrahtete ODER-Funktionen beschaltet,
um Datenausgangs-(DO)-Busse DOA-Bus 513 bis DOD-Bus 519
der entsprechenden Module 512 bis 518 zu schaffen. Der
DOA-Bus 513 bis DOD-Bus 519 sind mit Eingängen eines
Ausgangsmultiplexers (MTJX) 5^0 verbunden. Ein Multiplexerausgang-(MO)-Bus
5^1 ist mit Eingängen von Auagaberegistern
5*f2 bis 5^8 verbunden. Registerausgangs-(RO)-Busse
5^3 bis 5^9 sind mit verdrahteten ODER-Funktionen
versehen, um einen Ausgabe-(O)-BuS 551, der zum Eingang
einer Bustreiberschaltung 550 führt, zu bilden. Der Ausgang der Bustreiberschaltung 550 ist mit dem MEMOUT-Bus
318 verbunden. Eine Steuerleitung M0ENB(aus Gründen
der Deutlichkeit der Darstellung nicht gezeigt) ist vom Ausgang der Bustreiberschaltung 550 zu einem Eingang,
beispielsweise der CPU 31 if, geführt.
Der Steuer- und Takt(CC)-Bus 321 ist zwischen die
030025/0752
Speicher-Logik 538, den Puffer 534, die CPU 314 und
den PFP 312 geschaltet. Die Speicherlogik 538 und die
Zeitgebergeneratoren 524 der Module 512 bis 518 sind
untereinander durch einen Speichersteuer(CTL)-Bus 555 verbunden· Ein Auffrischsteuer(REF)-Bus 557 von der
Logik 538 ist mit Eingängen der Zeitgebergeneratoren 52/+ und der Speicher-Treiberschaltungen 532 der Module
512 bis 518 verbunden.
Ein Ausgabesteuer(OUTCNTL)-Bus 559 von der Speicherlogik
538 ist mit Eingängen des Ausgabemultiplexers 5V), der Ausgaberegister 542 bis 548 und der Bustreiberschaltung
55O verbunden. Obwohl aus Gründen der Deutlichkeit
der Darstellung nicht gezeigt, verläuft eine Steuerleitung DATAINLATCH von der Speicherlogik 538
zu einem Eingang des Daten-Speicher-Flipflop 536, und eine Steuerleitung MEMWRITE ist von der Pufferschaltung
534 zu Eingängen der Speicher-Flipflops 526 und 528 geführt.
Eine Steuerleitung MEMSTART vom Puffer 534 ist mit einem Eingang der Speicherlogik 538 verbunden.
Adressmultiplexer(MUX)-Busse 561 sind mit Eingängen der
Speicherflipflops 526 und 528 der Module 512 bis 518 verbunden.
Modul-Steuer-(MEM)-Busse 563 sind über die
Speicher-Treiberschaltungen 532 mit Eingängen der Bänke 520 und 522 der Module 512 bis 518 verbunden.
Die vorhergehende Beschreibung des Hauptspeichers dieses Datenverarbeitungssystems soll ein nützlicher Hintergrund
zum Verständnis der Funktion der FPU 490 der Fig. 2 A
sein, weil die FPU 490 mit dem übrigen Datenverarbeitungssystem über die Busse MEMIN/MEMOUT des Hauptspeichers
verbunden ist. Es wird nun auf Fig. 2 A Bezug genommen.
030025/0752
Der MEMOUT-Bus 318 ist eine Verlängerung des MEMOUT-Busses
318 der Fig. 1 B. Der MEMIN-Bus 320 ist eine Verlängerung des MEMIN-Busses 320 der Fig. 1 B. Ein
MEMOUT-Erweiterungsbus 402 verbindet den MEMOUT-Bus 318
mit einem Mantissenblock 4O8. In gleicher Weise verbindet ein MEMIN-Erweiterungsbus /+06 den MEMIN-Bus 320 mit
dem Mantissenblock 408. Innerhalb des Mantissenblocks
408 ist ein FPAC 408a gezeigt, der aus acht getrennten
Registern besteht, von denen vier für den Benutzer zugängliche Mehrzweckregister sind und die anderen vier
interne Register zum zeitweiligen Speichern. Auf diesen Akkumulatorblock oder diese Anordnung wird später mehr
im einzelnen Bezug genommen.
Eine Steuerung 409 empfängt Befehle von einem Befehlsbus /+00, der auch in Fig. 1 A als ein vom Befehlsregister
34b Befehle erhaltender Bus gezeigt ist. Die Steuerung
409 ist über einen Ausgang 401 mit dem Mantissenblock
verbunden, wie in Fig. 2 A gezeigt ist. Ein zweiter Ausgang der Steuerung 409 ist mit einem Bus 405 zu einem
Block "Exponent/Vorzeichen" 410 verbunden.
Ein Schnittstellenblock 200 liefert über einen Bus 200a ein Eingangssignal an die Steuerung 409. Dieser Bus ist
in zwei Richtungen wirkend dargestellt, um zu zeigen, daß die Steuersignale in den Schnittstellenblock 200
durch denselben Bus 200a zurückübertragen werden. Ein Bus 400a liefert Eingangssignale für den Schnittstellenblock
200 von einem in Fig. 1 A gezeigten Mikrobefehlsregister (UlR) 344, und ein Bus 400b liefert Ausgangssignale
vom Schnittstellenblock 200 zur Mikrobefehllogik 342, die wiederum in Fig. 1 A gezeigt ist. Der
030025/0752
Schnittstellenblock 200 leitet auch Taktsignale aus den dargestellten Takteingangssignalen ab, die von der
Stromversorgung 300 in Fig. 1 A geliefert werden. Eine weitere Beschreibung dieser Taktsignale folgt später.
Die Ausgangssignale des Mantissenblocks 4Ο8 werden über
einen Hexadezimal-Null-Bus 407 und einen Arbeitsregisterbus
404 zu der Exponent/Vorzeichen-SchäLtung 410 geliefert<
Das Ausgangssignal der Exponent/Vorzeichen-Schaltung wird über einen Hexadezimal-Verschiebungs-Code-Eingangs-Bus
403 zur Mantissenschaltung 408 geliefert. Die Exponent/Vorzeichen-Schaltung 410 weist auch eine Bank
von Akkumulatoren mit der Bezeichnung FPAC 410a auf, wobei wiederum vier der acht getrennten Register für
den Benutzer zugängliche Mehrzweckregister sind und die anderen vier interne Register für eine zeitweilige
Speicherung sind. Zustandseingangssignale der Steuerung 409 werden von der Mantissenschaltung 408 und der
Exponent/Vorzeichen-Schaltung 410 abgeleitet, wie in Fig. 2 A gezeigt ist.
Es wird weiterhin auf Fig. 2 A Bezug genommen. Während des Betriebs werden Dateneingangssignale von dem MEMIN-Bus
420 oder dem MEMOUT-Bus 318 zur Gleitkommaeinheit
490 über die Mantissenschaltung 408 geliefert, und
speziell über das im Mantissenblock 403 enthaltene
Arbeitsregister (in dieser Figur nicht dargestellt). Das Arbeitsregister 468 (das in Fig. 5 gezeigt ist und
das im Zusammenhang mit Fig. 5 näher besprochen wird) ist über den Arbeitsregister-Bus 404 mit dem Exponent/
Vorzeichen-Bus 410 verbunden, und daher werden Daten, die innerhalb des Mantissenblocks 408 und innerhalb bestimmter
Register des FPAC 408a gespeichert sind, über
030025/0752
den Arbeitsregister-Bus /+0/+ ebenfalls in der Exponent/
Vorzeichen-Schaltung JfIO und speziell in den ausgewählten
Registern des FPAC /+1Oa gespeichert. Dieses Laden von bestimmten Registern und Akkumulatoren sowohl in der
Mantissenschaltung /+08 als auch der Exponent/Vorzeichen-Schaltung i+10 hängt ab von einem speziellen
Befehl, der mittels der Steuerung /+09 von dem Befehlsbus /+00 abgeleitet wird und durch Ausgänge /+01 und /+05
geleitet wird.
Der nächste folgende Makrobefehl wird durch den Befehlsbus /+00 aus dem Befehlsregister 3*f6 der Fig. 1 A
empfangen. Dieser nächste Befehl wird zeitweilig in einem in Fig. 2 A nicht gezeigten Befehlsregister gespeichert,
das innerhalb der Steuerung /+09 enthalten ist. Dieser Befehl wird decodiert, was dazu führt, daß eine Startadresse
zugeführt wird, um einen Mikroprogrammsteuerspeicher (in dieser Figur nicht dargestellt) innerhalb
der Steuerung 409 zu adressieren. Die Ausgangssignale
dieses Steuerspeichers, über den später noch mehr gesagt wird, sind Steuersignale, die über die Ausgänge
/+01 und /+05 zur Mantissenschaltung bzw. Exponent/ Vorzeichen-Schaltung geleitet werden. Die Tätigkeit
der Mantissenschaltung wird durch Steuersignale gesteuert, und gleichzeitig wird die Tätigkeit der
Exponent/Vorzeichen-Schaltung durch andere Steuersignale gesteuert, die alle von dem Steuerspeicher
innerhalb der Steuerung i+09 geliefert werden. Diese
Operationen oder Tätigkeiten können eine Addition, Subtraktion, Multiplikation, Division, oder andere
benötigte Operationen sein. Danach wird ein Ergebnis als Gleitkommazahl giiefert und innerhalb der FPU
030025/0752
gespeichert, bis es bei der gesamten Rechenoperation für weiter folgende Befehle vom Befehlsregister 3**6
von Fig. 1 A verwendet wird.
Oben wurde eine kurze Beschreibung der Verbindungen und Arbeitsweise der Gleitkommaeinheit in Form einer allgemeinen
Funktionsbeschreibung gegeben. Bevor Ausführungsformen der Steuerung, der Mantissenschaltung und der
Exponent/Vorzeichen-Schaltung genauer beschrieben werden, wird die Diskussion zunächst auf die CPU/FPU-Schnittstellen-Steuer-
und Takt-Schaltung 200 gerichtet. In diesem Zusammenhang wird auf Fig. 2 C hingewiesen, wo
zwischen der Stromversorgung, der FPU, und der CPU verlaufende Signale, die ihrer Natur nach ein Takt oder
für die Verbindung grundlegend sind, gezeigt sind. Di?
Steuerungsschnittstelle zwischen der CPU und der FPU besteht aus acht Steuersignalen, wobei vier von der CPU
stammen und durch die FPU empfangen werden, und vier von der FPU stammen und von der CPU empfangen werden.
Die vier von der CPU stammenden Signale sind: FPUCPU, FPMEM, FPABORT, FPINST. Die anderen von der FPU zur
CPU gesendeten Signale sind: FPTB (Floating Point Trap or Busy, Gleitkomma Falle oder Belegt), FPB (Floating
Point Busy, Gleitkomma Belegt), FPSKIP1 und FPSKIP2.
FPCPU wird benutzt, um der FPU zu melden, daß Daten gerade
im Begriff sind, entweder in die FPU eingeschrieben zu werden oder aus ihr ausgelesen zu werden; dieses
Signal veranlaßt eine Zeitgeberschaltung mit dem Zählen von Speichertaktzyklen zu beginnen, um festzustellen,
wann FPU-Daten auf den MEMOUT-Bus gebracht werden müssen oder wann Daten auf dem MEMOUT-Bus empfangen
030025/0752
werden müssen· FPMEM ist ein Signal, das der FPU meldet,
daß sie entweder Daten aus dem Speicher auslesen wird oder Daten in den Speicher einschreiben wird; bei der
Ausgabe des Signals FPMEM wird die Zeitgeberschaltung oder der Zeitgebergenerator wiederum die richtige Anzahl
von MEM-Taktimpulsen zählen, um zu bestimmen, wann die FPU entweder
Daten vom MEMOUT-Bus empfängt, die zum FPU-Bus übertragen werden, oder wann sie Daten von der FPU zum
MEMIN-Bus überträgt, die in den Speicher geschrieben werden sollen· FPABORT 1st ein Signal, das von der CPU
in zwei Fällen abgegeben wird: 1, falls dem Speicher ein
unzulässiger Speicheraufruf zugeführt wurde oder 2· um die Ausführung des laufenden gerade im Gang befindlichen
Gleitkommabefehls zu stoppen, PFINST(Floating Point Instruction, GMÜsmnatefehl) wird durch die CPU erzeugt,
um der FPU zu melden, daß auf dem Befehlsbus i+00 befindliche Daten jetzt gültigen Daten sind und von der
FPU abgefragt werden sollten, um die Startadresse des gerade ausgegebenen Befehls festzustellen·
Die folgenden Signale werden durch die FPU zur CPU gesendet und werden von der CPU verwendet, um den Zustand
der Gleitkommaeinheit zu überwachen» FPTB wird von der CPU nach dem Ausgeben eines Gleitkommabefehls abgefragt,
um die CPU auf die Tatsache hinzuweisen, daß der Befehl möglicherweise ein zweiter Befehl ist und
daß die FPU die Ausführung eines früheren Befehls noch nicht abgeschlossen hat, FPB ist ein Signal, das
entweder bewirkt, daß die CPU die Ausführung eines weiteren Codes stoppt, bis das Belegtsignal in dem
gerade in der Ausführung befindlichen früheren Gleltkommabefehl
beendet ist, oder es bewirkt dieses Signal,
030025/0752
falls das Gleitkomma nicht belegt ist und die Gleitkommafalle gesetzt ist, daß die CPU auf die Betätigung der
Falle der Gleitkommaeinheit hin ihre Tätigkeit verzögert, um den'beim letzten Gleitkommabefehl aufgetretenen Fehler
zu beseitigen; der gegenwärtige Gleitkommabefehl wird,
nicht ausgeführt, bis diese Falle gelöst- ist. FPSKP1 ist
ein Signal, das den Zustand des Gleitkommastatusregisters anzeigt, und kann die Auswahl jeder von fünfzehn Testbedingungen
bewirken, die die Inhalte des Gleitkommastatusregisters und zahlreiche Kombinationen davon
prüfen. FPSKP2 ist ein von der FPU ausgegebenes Signal, um der CPU anzuzeigen, daß die Ausführung eines weiteren
Codes angehalten wird, bis die FPU anzeigt, daß weitere Daten angenommen werden können.
Von Fig. 2 C sind die vier Signale MEMCLK, /+OCLK, 20CLK
und 1OCLK noch nicht diskutiert. MEMCLK ist ein Taktsignal,
das dieselbe Frequenz wie 1OCLK hat, nämlich 10 MHz, aber es ist dies ein Taktsignal, das durch den
Speicher je nach den Anfcrderungen ausgeschaltet oder eingeschaltet
werden kann. MEMCLK liefert die passende Zeitgabe für die MEMIN- und MEMOUT-Bussignale, so daß
Ereignisse auf diesen Bussen in Übereinstimmung mit 100ns-Zeitintervallen auftreten können. Die Taktsignale
/+OCLK, 20CLK und 10CLK sind einfach Taktsignale von
40 MHz, 20 MHz bzw. 10 MHz. Diese Taktsignale werden
offenbar von der Stromversorgung 300 direkt zur FPU /+90
geliefert.
Als nächstes wird auf Fig. 2 B Bezug genommen, in der die detaillierte Schaltung der Schnittstelle 200 gezeigt
ist. Wie erwähnt, benutzt das Ausführungsbeispiel der Schaltung übliche Flipflops, Verknüpfungsglieder
030025/0752
und Inverter. Jene Signale, die oben anhand der Fig. 2 C
nicht besprochen wurden, werden in Verbindung mit dieser Schaltung besprochen.
WHITECPU ist ein von der Gleitkommaeinheit erzeugtes Signal,
um der Schnittstelle anzuzeigen, daß beim nächsten Zyklus Daten zur oder von der CPU geschrieben werden.
VALID FPCCPU ist ein von FPCPU und MEMSTART abgeleitetes Signal, das anzeigt, daß die Zeit passend ist, um das
Zählen von SpeichertaktZyklen zu beginnen zur Bestimmung, wann Signale abgegeben werden oder auf Signale auf verschiedenen
MEM-Bussen geantwortet werden muß. WRITE MEM ist ein durch die FPU erzeugtes Signal zur Anzeige, das
Daten von der FPU zum Speicher geschrieben werden müssen· FMEMCLK ist identisch mit dem oben beschriebenen MEMCLK,
mit der Ausnahme, daß dieses Signal intern durch die Gleitkommaeinheit verwendet wird. MEMSTART ist ein durch
die CPU ausgegebenes Signal zur Anzeige, dass der Speicher nun die Ausführung der gegenwärtigen Anforderung,
die möglicherweise schwebt, beginnen sollte. CLRPAUSE (Clear Pause) ist ein dem Taktgenerator der FPU zugeführtes
Signal, damit dieser beginnt, den FPU-Takt 100 ns nach der Ausführung dieses Signals laufen zu
lassen· IRESET ist ein internes Rücksetzsignal, das den Zustand der Gleitkommaeinheit zurücksetzt. PORT EN
(Port Enable, Tor Aktivierung) ist ein Zeitgebersignal, das verwendet wird, um 50 ns-Impulse zu
erzeugen und tritt 25 ns nach der ansteigenden Flanke von lOCLK auf und fällt 75 ns nach der
ansteigenden Flanke von 10CLK. TIOO, T200, T300 sind
interne Zeitgebersignale, die verwendet werden, um anzuzeigen, daß 100, 200 bzw. 300 ns verstrichen sind, seit
030025/0752
das Signal FPMEM oder VALIDFPCPU empfangen worden ist.
Es wird nun mit der Diskussion dieser Signale fortgefahren. I/O CYCLE ist ein von der FPU erzeugtes Signal, das den
FPU-Takt anhält, bis ein Signal CLR PAUSE ausgegeben wird. F10 CLK und F20 CLK sind zwei Taktsignale, die identisch
mit 1OCLK bzw. 20CLK sind; diese Signale werden in der Gleitkommaeinheit intern verwendet. TRAP ist ein durch die
Gleitkommaeinheit erzeugtes Signal zur Anzeige, dass ein Fehler bei der Ausführung eines früheren Gleitkommabefehls
aufgetreten ist, BUSY ist ein Signal innerhalb der Gleitkommaeinheit, das anzeigt, daß die Gleitkommaeinheit
augenblicklich einen Gleitkommabefehl ausführt. FPI ist ein von FPINST abgeleitetes Signal, und es wird durch
die Schnittstellenschaltung verwendet, um anzuzeigen, daß ein gegenwärtiger oder laufender Gleitkommabefehl
von der CPU ausgegeben worden ist, der 150 ns dauern
wird (dieses Signal wird von FPINST abgeleitet, das während einer unbestimmten Zeit andauern kann, aber
das Signal FPI hat nur eine Dauer von 150 ns). RESTART
ist ein von der FPU ausgegebenes Signal, das im wesentlichen die FPU in den Leerlaufzustand zurücksetzt, in dem
sie auf einen weiteren Gleitkommabefehl wartet; dieses Signal wird als Ergebnis von FPABORT ausgegeben. RE ist
ein von der Schnittstelle ausgegebenes Signal, um den Startadressendecodier-ROM zu aktivieren. CLRINST
(CLEAR Instruction) ist ein von der Schnittstellenschaltung ausgegebenes Signal, um die laufende Adresse
im Startadressenregister zu überschreiben. WRE (Write Register Enable, Schreibregisteraktivierung) ist ein
Signal, das anzeigt, daß ein echter Befehl, der gerade durch das Startadressendecodier-ROM decodiert wird, in
das Startadressenregister geladen werden sollte.
Q30025/0752
CREN ist ein Signal, das verwendet wird, um die Registeraktivierung
zu löschen. 150 EN ist ein von der Schnittstelle
ausgegebenes Signal zur Anzeige, dass der FPU-Takt nun mit 150-ns-Intervallen läuft, und daß die Gleitkommaeinheit
belegt ist, und daß es daher nicht der geeignete Zeitpunkt ist, um irgendweich:· Startadressen in
das Startadressenregister zu laden. CRE ist ein zum Erzeugen des 150-ns-Intervalls von FPI verwendetes Signal.
CMD (Command, Kommando) ist ein Signal, das anzeigt, daß gerade ein laufender Gleitkommabefehl von der CPU ausgegeben
wird. CLRCMD (CLEAR Command, Löschen Kommando) ist ein Signal, das das laufende Kommando im Kommandoregister
löscht und auch die Startadresse durch die Leerlaufzustandadresse ersetzt. STATE ist eines der Signale,
das CLRCMD zusammen mit IRESET erzeugt.
Nachdem somit die Schnittstellenschaltung im einzelnen beschrieben ist, einschließlich der der Tätigkeit der
Schnittstellenschaltung zugeordneten Signale, wenden wir uns nun zur detaillierten Beschreibung und Arbeitsweise
der wesentlichen Funktionsblöcke von Fig. 2 A, nämlich des Steuerblocks 4091 des Mantissenblocks 408,
und des Exponent/Vorzeichen-Blocks 410. Es wird nun
auf Fig. 3 Bezug gaiommen, in der die die Steuerfunktion
bildende Architektur gezeigt ist. Der Befehlsbus /+00
liefert ein Eingangssignal an den übrigen Teil der Steuerschaltung mittels eines Gleitkommabefehlsregisters
411» um sowohl einen Adressendecodier-ROM 412
als auch ein Register 428 "Quellen- und Ziel-Akkumulatoren"
zu starten. (In den Fign. 3» 4 und 5 ist
bei allen Busverbindungen die jeweilige Bitkapazität durch die Zahl bezeichnet, die bieiner einen Teil des
030025/0752
Busses schneidenden Linie steht. Beispielsweise überträgt der das Register L\2.'6 und den Logikblock /+29 verbindende
Bus i\3ly vier Bits.) Das Ausgangssignal des Decodier-ROM
if 12 wird einem Startadressenregister /j13 über einen
8~Bit-Bus zugeführt. Das Ausgangssignal des Startadressenregisters /+13 wird über einen Startadressenbus
ί+Ί /+. zu einem Mikroprogrammadressenwähler /+15 als dessen
eines Eingangssignal geliefert. Ein zweites Eingangssignal des Mikroprogrammadressenwählers /+15 wird von
einem N-fach-Zweig-Steuer-ROM i+22 über einen N-fach-Zweig-Airessbus
4^3 erhalten. Die Steuer-ROMs /|22
empfangen 15 Prüfbedingungssignale von verschiedenen
Abfragestellen oder Prüfstellen innerhalb der Gleitkommaeinheit; (diese 15 Prüfbedingungssignale sind
unten unmittelbar nach dieser Beschreibung der Verbindungen der Figur 3 aufgelistet). Das Ausgangssignal des
Milcroprogrammadressenwahlers /f1 5 wird über einen Bus Z+17 und einen Bus if 18 zu Steuerteicher-ROMs /+19 geliefert,
Im linken unteren Teil dieses Schaltbilds liefert ein Quollen- und Ziel-Akkumulatoren-Register 428 über
einen oben erwähntet Bus Z+3/+ ein Ausgangssignal an eine
FPAC-Adressen-Wähllogik /+29· Ein zweites Eingangssignal dieser Logik wird von einem Mikroprogrammdatenbus Z+20
abgeleitet und von ausgewählten Bits innerhalb dieses Busses; (gemäß der Darstellung im rechten oberen Teil
der Zeichnung enthält der Bus /+20 ?2 Bits, von denen 8 Bits von der FPAC-Adressenwähllogik Z+29 verwendet werden).
Das Ausgangssignal der Logik ^29 wird über einen
FPAC-Wählbus Zf35 zu einem Pipeline-Register Zf01 und i+05
geliefert. Im linken unteren Teil der Fig. 3 werden zusätzliche Prüfbedingungen, die ebenfalls von verschiedenen
Abfragepunkten innerhalb der Gleitkommaeinheit abgeleitet sind, zu einem Prüfmultiplexer l\50 geliefert;
Q30 025/0752
(wiederum werden diese Signale unmittelbar anschließend an die Beschreibung der Verbindungen der Fig. 3 angegeben)·
Das Ausgangssignal des Prüfmultiplexers if30 ist ein Eingangssignal
mit einem einzelnen Bit für einen Adressenauswahllogikblock
i+31 , der ein Register und einen Multiplexer aufweist. Andere Eingangssignale für diesen Logikblock
werden mittels "Wahr-11 und "Falsch-"Busleitungen
vom Mikroprogrammdatenbus if20 abgeleitet, wobei diese Wahr- und Falsch-Busleitungen jeweils vier Informationsbits aufweisen· Das Ausgangssignal der Adressenauswahllogik
if31 wird über einen if-Bit-Steueradressenauswähl-Bus /j32 zu einem Mikroprogramm-Sequenzerzeuger (Sequenzer)
if25 geliefert. Schließlich wird das Ausgangssignal
des Sequenzerzeugers if25 über einen 3-Bit-^teueradressauswähl-Bus
if2if zum Mikroprogrammadressenwähler Z+l5 geliefert. Der Wähler if 15 und der Sequenar if25
bilden in Kombination eine Mikroprogramm-Kontroller-Einrichtung.
Das Pipeline-Register ifO1 und ifO5 empfängt ein Eingangssignal
mit 72 Bit vom Mikroprogrammdatenbus /+20 und ein Eingangssignal mit ifO Bit von einem wahlfreien Zustands-Kontroller
if27 (random starte controller). Die Ausgänge
des Pipeline-Registers liefern Eingangssignale an einen Exponent/Mantissen-Quellen- Ziel-Adressenbus
if36 und zu einem Zweigadressenbus if 16, der das dritte
Eingangssignal für den Mikroprogrammadressenwähler if 15
liefert.
Dieser Absatz enthält Definitionen von verschiedenen Signalen, die am Eingang der N-fach-Zweig-Steuer-ROMs if22
in Fig. 3 erscheinen: OUR (ausserhalb des Bereichs) ist
030025/0752
ein Signal, das anzeigt, daß während einer Verschiebeoperation
es erforderlich ist, eine Verschiebung um mehr als 15 Hexadezimalzeichen vorzunehmen; ECO (Exponent
Carry-Out) ist ein Signal, das einen Austrag aus der Exponent-ALU heraus repräsentiert; EZ (Exponent Null) ist
ein Signal, das anzeigt, daß die Zweierexponenten-Quellen-
und -Ziel-Akkumulatoren den gleichen Wert haben; SGNB (Ergebnis-Vorzeichen) ist ein Signal, das das Vorzeichen
der Zwier-Quellen- und -Ziel-Exponenten vergleicht
f AOS (Addition oder Subtraktion) ist ein Signal, das anzeigt, daß die augenblickliche Operation eine
Addition oder Subtraktion ist; D8 ist ein Signal, das das höchstwertige Bit des Mantissenworts anzeigt;
EAO ist ein Signal, das das Vorzeichenbit des Zielakkumulators i+28 repräsentiert; FTO, FT1 , FT2 und FT3 sind
Signale, die Gleitkommaübertragungen zum Hauptspeicher repräsentieren, wobei Null anzeigen soll, daß die Inhalte
des ersten Gleitkommaakkumulators übertragen worden sind, und "3" anzeigen soll, daß die Inhalte des
vierten Gleitkommaakkumulators übertragen worden sind ; FZ (Bruch Null) ist ein Signal, das anzeigt, daß der
Mantissenteil von FPAC i<O8a Null ist; MUL ist ein Signal,
das anzeigt, daß der augenblicklich durch die FPU ausgeführte Befehl ein Mehrfachbefehl ist{ SING ist ein
Signal, das anzeigt, daß eine einzelne Präzisionsoperation z.Zt. durch die FPU ausgeführt wird; und
SCALE ist ein Signal, das anzeigt, daß das Mantissenwort nicht normalisiert ist und daß daher eine Normalisierung
erforderlich ist (bezüglich der Normalisierung wird später im Zusammaiiang mit Fig. 10 noch mohr gesagt).
In diesem Absatz ist eine Definition der Signale gegeben, die am Eingang des Prüf multiplexers if30 erscheinen.
030025/0752
29A9375 kl·
FCO (Fraction Carry OUT) ist ein Signal, das einen Auetrag
aus dem Mantissenteil des FPAC heraus repräsentiert; FZ (Bruch Null), wie oben, ist ein Signal, das anzeigt, daß der
Mantissenteil des FPAC nur Nullen enthält; DONE ist ein Signal, das anzeigt, daß eine Multiplikation oder Division
abgeschlossen ist; D8, wie oben, ist ein Signal, das das höchstwertige Bit In der Mantisse repräsentiert; EAO, wie
oben angegeben, ist ein Signal, das das Vorzeichen des Ziel-FPAC
repräsentiert, und es wird zum Prüfen dieses Vorzeichens verwendet; ENl* ist ein Signal, das die Genauigkeit des Befehls
repräsentiert, d.h. ob der gegenwärtige Befehl ein Befehl mit doppelter Genauigkeit oder einfacher Genauigkeit
ist; und FT3 (Gleitübertragung3) ist ein Signal, das anzeigt, daß die Inhalte des vierten Gleitkommaakkumulators
zum Speicher übertragen worden sind.
Bevor mit dem Rest der Beschreibung der Architektur der Figuren h und 5 fortgefahren wird, mag es instruktiv
sein, an dieser Stelle eine Beschreibung der Arbeitsweise der Mikroprogramra-Kontroller-Einrichtung (Wähler ^l5 und
Sequenzer J^25) einzufügen, die in Fig. 3 gezeigt und oben
beschrieben sind. Diese beiden Komponenten sind als Teile 7^253 bzw, AMD2911 im Handel erhältlich. Für diese Beschreibung
der Arbeitsweise wird auf Tabelle 1 Bezug genommen.
&30025/0752
Zustand | MS 0-3 | M-PC | N | STKO | ADDR | Bemerkung | Hauptsächl.Verw. |
oder | Push Mikro- | Für Schleife auf | |||||
Zyklus | 0001 | N + l | J | N | bef.Zähler | konstanter Adresse | |
PCONT | zum STKO | bei Multiplikation/ | |||||
EXEC. | N | N+l | Fortfahren | Division | |||
Fortfahren | Nächsten Befehl | ||||||
FETCH | 0011 | N+l | J | N | keine Ände | des Segments | |
CONT | rung im Sta | ausführen | |||||
EXEC. | N | J | pelspeicher | ||||
Sprung zur | Liefert Rückkehr | ||||||
FETCH | 0100 | J+1 | J | J | Adresse im | verbindung vom | |
POPJ | STKO | Unterprogramm | |||||
EXEC. | J+1 | K | Pop Stapeisp. | ||||
Schleife auf | Schleife bis | ||||||
FETCH | 0111 | J+2 | J | J | STKO. Keine | externe Prüfung | |
LOOP | Änderung im | wahr wird | |||||
EXEC. | N | J | Stapeisp. | ||||
Sprung zur | Vektor zum Start | ||||||
FETCH | 1100 | SA+1 | J | SA | Startadresse | des Befehls- | |
SA | Mikrocode | ||||||
EXEC. | N | X | |||||
Sprung zur | Eintritt in Unter | ||||||
FETCH | 1101 | BA+1 | J | BA | Zweigadresse | programm. Push | |
PUSHJ | Rückkehradresse | ||||||
EXEC. | M | N+l | Push Stapelsp. | zum STKO | |||
Sprung zur N- | Auswahl von einer | ||||||
FETCH | 1110 | NWAY+1 | J | N-WAY | WAY-Zweigadr. | aus 255 Adressen | |
NWAY | aufgrund von Mehr | ||||||
EXEC. | J | ____ | fachprüfbedingungen | ||||
Keine Änderung | |||||||
FETCH | N | im Stapeisp. | |||||
Sprung zur | Eine von zwei mög | ||||||
1111 | BA+1 | J | BA | Zweigadresse | lichen Adressen in | ||
JUMP | einem Zweig | ||||||
EXEC. | J | Keine Änderung | |||||
im Stapeisp. | |||||||
FETCH | |||||||
030025/0752
Die Terminologie der Tabelle 1 ist folgendermaßen definiert:
1) STKO ist die Speicherstelle, die von dem Stapelzeiger adressiert ist, der im Sequenzer 425 angeordnet ist;
2) X = nicht boachtan (den Inhalt von STKO, und nicht
beachten, welchen Wert er zu dieser Zeit hat);
3) M-PC = im Sequencer 425 angeordneter Mikroprogramrazähler;
4) AJ)I)R = Mikroprogrammadresse auf dem Bus 418;
5) J = Inhalt von STKO;
6) K = Inhalt von STK1 (STKO ist die erste Stelle, STK1 ist die zweite, usw.);
7) N = augenblicklicher Wert des Mikroprogrammzahlers
im Sequenzer 425;
8) SA = Startadresse im Register 41 i;
y) BA = Zweigadresse im Zweigadressenbus i+16;
10) N-WAY = die Mikroprogrammadresse wird eine von 255
möglichen Adressen auf dem Bus 423 sein, die durch Maschinenprüfbedingungen bestimmt werden;
11) EXi'lC. = Ausführungszyklus des laufenden Mikrobefehls;
030025/0752
12) FETCH = das Abrufen der nächsten Mikroprogrammadresse während des Ausführungszyklus des laufenden Befehls;
13) POPJ = Pop-Sprung;
H) PUSHJ = Push-Sprung; und
15) PCONT = push continue.
15) PCONT = push continue.
Tabelle faßt die Tätigkeit des Adressenwählers if 15 und des
Sequenzers if25 zusammen· Kurz gesagt kann der Mikroprogramm-Kontroller
angesehen werden als zwei Multiplexer mit vier Eingängen, die dazu verwendet werden, fünf mögliche
Mikrobefehladressenquellen auszuwählen. Der erste Multiplexer wählt den Mikroprogrammzähler oder das Stapelregister
aus. Der zweite wählt entweder die Startadresse, die N-fach-Zweig-Adresse oder die Sprungadresse als Quelle
der nächsten Mikrobefehlsadresse. Gemeinsam bilden diese einen enggekoppelten Mikroadressen-Auswahl-Mechanismus, der
durch die Multiplexer-Auswahl-Bits MSO bis MS3 auf dem Bus
lf32 gesteuert wird.
In Tabelle 1 bedeutet PCONT: Speichere (Push) den Mikrobefehlszählerstand "oben11 in den Stapelregistern
STKO, und fahre mit dem nächsten Mikrobefehl fort. Während
der Ausführung des PCONT-Zyklus wird der Mikrobefehlszähler (M-PC) die laufende Mikrobefehlszähleradresse (die
durch N angezeigt wird) enthalten; das obere Ende des Stapelspeichers (STKO) wird seinen augenblicklichen Inhalt
(J) unverändert athalten, und die Adresse wird der laufendfe
MikrobefehlsZählerstand M-PC (N) sein.Beim Abrufen dee nächsten
Befehls während dieser PCONT-Ausführung wird M-PC um 1
inkrementiert (N + 1), und STKO wird M-PC plus eins empfangen.
030025/0752
Der CONT-Zyklus ist der Continue-Zyklus (Fortsetzun??-
zyklus), dabei ist die Mikroadresse der gegenwärtige Wert von M-PC. Es tritt keine Änderung in STKO ein. Beim
gleichzeitigen Fetch-Zyklus (Abrufzyklus) wird
N + 1 in das M-PC geladen. Die hauptsächliche Verwendung ist die Ausführung von aufeinandafolgendeη Befehlen
durch den Mikrocode.
POPJ ist der nächste Zyklus, in dem die Inhalte von STK1 die Inhalte von STKO werden. Wärend seiner gleichzeitigen
Fetch-Operation wird M-PC die früheren Inhalte von STKO enthalten, die als J + 1 bezeichnet sind, und STKO
wird die früheren Inhalte von STK1 enthalten.
LOOP ist der nächste Befehlszyklus oder Zustand, und er
wird die Inhalte von STKO zum Mikroadressbus liefern. Diese Adresse wird ständig dem Mikroprogrammadressbus, der
im Block ^15 angeordnet ist, angeboten werden, bis eine
externe Prüfbedingung wahr wird. Dieser Zustand wird
hauptsächlich beim Multiplizieren/Dividieren verwendet, wo eine solche auf Mantissen angewendete Operation bis
zu ihrem Ende eine vorbestimmte Anzahl von Taktzyklen erfordert.
SA (Startadresse) wird vom Register ^I3 dem im Block if15
angeordneten Mikroprogrammadressbus angeboten. Der M-PC (Mikroprogrammzähler, Mikrobefehlszähler) wird beim
Fetch-Vorgang des nächsten Befehls die Startadresse + 1 enthalten· STKO wird "nicht zu beachtende" Daten enthalten,
die nicht verwendet werden.
030025/0752
PUSHJ wird verwendet, um in ein Unterprogramm einzutreten, und dann eine Rückkehrverbindung zum oberen Ende von STKO
zu liefern. Der laufende Mikrobefehlszählerstand plus eins wird in den STKO (mit Push) geschoben, und die laufende
Mikroadresse wird durch den Zweigadress(BA)-Bus ifi6 dem
Mikroprogrammadresswähler i+15 zugeführt.
Ein N-WAY(N-fach)-Adressbus 1+23 liefert die laufende
Adresse auf dem Mikroprogrammadressbus; und beim Fetch (Abrufen) des nächsten Befehls wird M-PC die N-Way-Adresse
plus eins enthalten.
Schließlich wird JUMP verwendet, um zu einer absoluten Adresse im Mikrocode zu springen, in erster Linie während
einer Zweiwege-Prüfbedingung, wo JUMP eine der Zweigadressen ist. M-PC wird während des Fetch des nächsten
Befehls 4A + 1 (Zweigadresse plus eine) erhalten.
Nachdem somit die allgemeine Verbindung der Komponenten innerhalb des Steuerungsblockschaltbilds der Gleitkommaeinheit
und die Wirkungsweise der Mikroadressauswahlschaltung der Gleitkommaeinheit beschrieben sind, wird
als nächstes auf den Exponent/Vorzeichen-Teil des Blockdiagramms der Gleitkommaeinheit, Fig. ^,Bezug genommen.
In der linken oberen Ecke von Fig. ^ empfängt ein Exponent/Vorzeichen-Datenmultiplexer WbI drei
Eingangssignale von drei Bussen, dem Bus i+O^e vom
Arbeitsregister (Fig. 5, wird später besprochen), dem Exponenten-Funktion-Bus Mf9, und dem Exponenten-Multiplexer-Bus
i\Wt'· Das Ausgangssignal von Exponent/Vorzeichen
des Datenmultiplexers WbI wrd über einen
030025/0752
Exponent/Vorzeichen-Datenbus 438 zu einem Exponent/Vorzeichen-Speicher-RAM
439 geliefert. Ein zweites Eingangssignal für diesen RAM wird über einen Exponent-Quellen/
Ziel-Adressbus 44Ο gewonnen. Eine Vorzeichensteuerung 44I empfängt ein Eingangssignal vom Vorzeichenspeicherblock
und liefert wiederum ein Ausgangssignal an diesen. Zwei Ausgangssignale des Exponent/Vorzeichen-Speicherblocks 439
werden über einen Exponent-Ziel-Bus 443 und einen Exponent-Quellen-Bus
4M+ zu einer Exponent-ALU 4*+8 bzw, einem
Exponent-Multiplexer 445 geliefert. Das Ausgangssignal des Exponent-Multiplexers 445 liefert ein zweites Eingangssignal
an die Exponent-ALU 448 über den Exponent-Multiplexer-Bus
447· Ein zweites Eingangssignal des Exponent-Multiplexers 445 wird von einem Bus 4*+6 abgeleitet, der Konstanten vom
Mikroprogrammdatenbus ableitet. Das Ausgangssignal der Exponent-ALU 448 wird über den Exponent-Funktion-Bus 449,
wie oben erwähnt, zurück zum Multiplexer 437 geliefert und ebenfalls zu einem ROM 450 "Absolutwert-Suchtabelle". Der
Hexadezimal-Null-Bus 407, der vom Mikroprozessor-Slice
(Fig. 5, wird später besprochen) abgeleitet wird, liefert ein Eingangssignal an einen Hexadezimal-Verschiebungs-Prioritätscodierer
4531 dessen Auagangssignal über einen
Bus 45') zum Hexadezimal-Verschiebungs-Code-Eingangs-Bus
geliefert wird. Andere Eingangssignale des Hexadezimal-Verschiebungs-Code-Eingangs-Busses
403 werden über einen Bus 451 von der Suchtabelle 450 und über einen Bus 452
vom Mikroprogrammdatenbus abgeleitet.
Im linken oberen Teil des Mantissen-Block-Schaltbilds der Fig. 5 liefert eine Parallelübertrags-Logik 455 ein Eingangssignal
auf einem Bus 456 zum Mikroprozessor-Slice-Block 457· Andere Eingangssignale dieses Blocke stammen
vom Mantissen-Quellßn/Ziel-Adress-Bus 458 und vom
030025/0752
Arbeitsregister-Bus 404. Die Ausgangssignale des Mikroprozessor-Slice
457 werden über den Hexadezimal-Null-Bus
407 zurück zur Figur 4 und, wie oben beschrieben, zum Prioritäts-Hexadezimal-Verschiebungs-Codierer 453
geleitet. Das andere Ausgangssignal des Mikroprozessor-Slice 457 wird über einen Mantissen-Funktion-Bus 459 zu
vier Multiplexern geliefert: Es sind dies die Arbeitsregistereingangsmultiplexer
460, 46I, 462 und 463· Diese Eingangssignale werden über Busse 459a, 459b, 459c bzw.
459d geliefert. Andere Eingangssignale für diese Multiplexer werden vom Arbeitsregister-Bus 404a bzw. von
Eingangsbusse 404b, 404c und 404d abgeleitet. Das andere
Eingangssignal für den Multiplexer 463 wird nicht vom Arbeitsregister-Bus abgeleitet, sondern es wird von
MEMBUS über einen FPU-MEMBUS-Multiplexer 474 und seinen
Bus 474a abgeleitet. Eingangssignale für diesen Multiplexer werden vom MEMIN-Bus 320 und MEMOUT-Bus 318 abgeleitet,
die wiederum ihre Eingangesignale von einem MEMIN-Bustreiber 472 bzw. einem MEMOUT-Bustreiber 473
ableiten. Der MEMIN-Bustreiber 472 leitet seine Eingangesignale
von Bussen 474b und 472d ab, dies gilt auch für den MEMOUT-Bustreiber 473· Die Ausgagssignale der Multiplexer
46O, 461, 462 und 463 werden über parallele Eingangsdatenbusse
464, 465, 466 bzw. 467 zum Arbeitsregister 468 geliefert. Das Ausgangssignal des Arbeitsregisters 468 wird, wie oben beschrieben, sowohl zum
Mikroprozessor-Slice 457 geliefert, als auch über einen Hexadezimal-Verschiebungs-Eingabe-Bus 469 zu einer
Hexadezimal-Verschiebeeinrichtung 470. Die Hexadezimal-Verschiebeeinrichtung
470 empfängt ein zweites Eingangssignal von einem Hexadezimal-Verschiebeeinrichtung-Code-Eingangs-Bus
403 (von Fig. 4). Ein anderes
030025/0752
Ausgangssignal des Arbeitsregisters 1+68 wird auf dem Bus
geliefert und liefert die Arbeitsregisterbits 8 bis 15»
die Eingangssignale für den MEMIN-Treiber /+72 bzw. den
MEMOUT-Treiber i+73.
Schließlich wird ein Ausgangssignal der Hexadezimal-Verschiebeeinrichtung
/+70 auf einen Hexadezimal-Verschiebeeinrichtung-Ausgabe-Bus 1+71 geleitet, der zurück zum Arbeitsregister
/+68 verbunden ist. Die Schaltung der Fign. 3, k und 5 einschließlich der Decodier-ROMs der Adressenregister,
Adressenwähler, Mikroprogramm-Sequenzer, Zweig-Steuer-ROMs, Multiplexer, Steuerspeicher-ROMs, ALUs, ROM-Suchtabellen,
Hexadezimal-Verschiebeeinrichtungs-Codierer, des Mikroprozessor-Slice und anderer Register und Schiebeeinrichtungen
sind alle übliche elektronische Bauteile in integrierter Schaltungstechnik, die im Handel frei erhältlich
sind.
Vor der Beschreibung der Arbeitsweise der Gleitkommaeinheit im einzelnen mag es hilfreich ain, eine Besprechung
der Figuren 6 bis 10 zu geben, die gewisse Merkmale der vorliegenden Erfindung und bei der vorliegenden Erfindung
verwendete Merkmale zeigen. Daher wird als nächstes das Datenbusausgabeformat des Mikroprogramm-Datenbusses 1+20
gemäß der Darstellung der Fig. 6 erläutert. Dieses Ausgabeformat besteht aus 19 Steuersignalgruppen, wobei die
erste MANTISSA CARRY-IN ist, der ein Bit zugeordnet ist; diese bestimmt den Eintrag, der dem Mantissen-Mikroprozessor-Slice-Block
1+57 zugeführt wird. Die Gruppe MANTISSA ALU FUNCTION hat drei Bits, die die ALU-Funktion
innerhalb des Mikroprozessor-Slice-Blocks 1+57 steuern. Die Gruppe MANTISSA ALU SOURCE hat drei Bits und
030025/0752
steuert die Quellen-ALU für den Mikroprozessor-Sliee-Block
457. Die nächste Gruppe MANTISSA ALU DESTINATION verwendet drei Bits zum Steuern des Zielakkuraulators innerhalb des
Mikroprozessor-Slice-Blocks 457. Die Gruppe MANTISSA
ADDRESS SOURCE verwendet drei Bits zum Steuern des Quellenakkumulators im Mikroprozessor-Slice-Block 457. EXPONENT
ADDRESS SOURCE enthält drei Bits, die die Adressquelle im Exponent/Vorzeichen-Speicherblock 439 (Fig. 4) steuern·
FPAC REGISTER SELECT verwendet zwölf Bits als die mikroprogrammierte
Quellen- und Zieladresse, die vom Mikrocode abgeleitet wird. Die nächste Gruppe, EXPONENT ALU
FUNCTION, weist drei Bits zum Steuern der ALU im Exponent-ALU-Block 448 (Fig. 4) auf. Die nächste Gruppe, SIGN
CONTROL FIELD,enthält zwei Bits, die den Vorzeichen-Steuerblock
441 steuern. Die Gruppe EXPONENT REGISTER CONTROL FIELD enthält vier Bits zum Steuern des Exponent/
Vorzeichen-Speicherblocks 439. CLOCK SELECT FIELD enthält zwei Bits, die den Gleitkommatakt steuern. Die nächste
Gruppe, STATE FIELD, enthält ein Bit, das für die folgenden Vorgänge verantwortlich ist: Es steuert den Belegtzustand
der Gleitkommaeinheit; es lädt die augenblicklichen Quellen- und Zielbits des Befehlsregisters, die durch die
Befehlsregisterbits 1 bis 4 gebildet werden; und es löscht das Startadressenregister während des Abrufens der
Startadresse. Die nächste Gruppe, TRUE MICROADDRESS SELECT, ist ein Feld, das von vier Bits gebildet wird und verwendet
wird, um die Bits MSO bis 3 auszuwählen, wenn die Prüfbedingung wahr ist. Im Gegensatz dazu ist FALSE
MICROADRESS SELECT ein Feld, das durch vier Bits gebildet
wird und benutzt wird, um die falsche Adresse auszuwählen, und es wird weiterhin als eine Generation von verschiedenen
von dem Expone^t/Multiplexer-Block 445 (Fig. 4) benutzten
030025/0752
29A9375
Konstanten verwendet. Das WORKING REGISTER CONTROL-FeId
weist zwei Bits auf und steuert das Arbeitsregister, damit dieses entweder nach links verschiebt, nach rechts verschiebt,
die Daten hält oder parallel lädt. Die nächste Gruppe, TEST CONDITION SELECT, ist ein Feld, das drei
Bits aufweist, die die augenblicklich im Block /+30 (Fig.3)
abgefragte Prüfbedingung auswählen. LITERAL FIELD weist neun Bits auf und steuert entweder die Zweigadresse oder
verschiedene Decodier-ROMs, die wiederum eine RANDOM-Steuerung
oder wahlfreie Steuerung der ganzen FPU liefern wurden. Die nächste Gruppe, RANDOM FIELD, weist sechs Bits
auf, die eine RANDOM-Steuerung oder wahlfreie Steuerung
liefern, die in der ganzen FPU de codiert v/erden muli, und weiterhin aktiviert cie RANDOM-Steuer-Decodierer. Schließlich
weist STATE CONTROL FIELD vier Bits auf und steuert die restlichen Zustände innerhalb der ganzen FPU.
Die Besprechung der Fig. 7 wird zunächst übergangen und
auf Fig. 8 Bezug genommen. Fig. 8 zeigt ein Gleitkommawort, wobei Blöcke 800, 801, 802 und 803 im Hauptspeicher
313 (Fig. 1 A) enthaltene Wörter sind. Ein Block 80if ist
der größte Teil des in der Gleitkommaeinheit enthaltenen Gleitkommaworts und entspricht den Wörtern 800 bis 805
gemäß der Darstellung. Die verschiedene Blöcke verbindenden Pfeile zeigen, wie Wörter im Speicher zum geeigneten
FPAC übertragen werden, damit sie durch den Gieitkommaprozessor
bei der Durchführung seiner verschiedenen Rechnungen verwendet werden können. Zusätzliche Bits Gk
bis 67, die in Fig. 8 mit dem Bezugszeichen 805 versehen sind, repräsentieren vier Bits, die als ein Schutzzeichen
verwendet werden. Im wesentlichen sind diese zusätzlich en Plätze verfügbar, falls das Gleitkommawort zusätzlich
Platz für die Behandlung benötigt,und hierdurch geht die
030025/0752
zusätzliche Genauigkeit oder Präzision bei einer ^-Bit-Verschiebung
nach rechts nicht verloren. Das hochwertige Byte des Blocks 800 wird dann, wenn es zur Gleitkommaeinheit
übertragen wird, in der für den Benutzer zugänglichen Gruppe von Registern der Register- Datei ^1Oa des Abschnitts
Exponent/Vorzeichen (Fig. 2 A) empfangai werden. Dieses Byte wird in dem durch die Befehlsregister-Bits 3
und k ausgewählten Zielakkumulator enthalten sein. Das niedrigwertige Byte des Worts 800 und der Wörter 801, 802
und 803 wird im Mantissenblock ifO8 (Fig. 2 A) gespeichert
werden und wird innerhalb eines der FPAC-Register enthalten sein, die als für den Benutzer zugängliche Mehrzweckregister
bezeichnet sind. Zusammengefaßt zeigt Fig. 8 vier im Hauptspeicher gespeicherte Wörter 8OO bis 803, die gemeinsam
in einen der FPACs in der Fig. 2 A in einer besonderen Weise gebracht werden, so daß das Wort 8OO verwendet
wird als das Vorzeichen plus Exponent plus das hochwertige Byte der Mantisse, und die anderen drei Wörter
werden in den FPAC in jene Speicherplätze eingefügt, die der zusätzlichen Mantisseninformation entsprechen;
das Schutzeichen 805 und die Bits des Exponenten und
der Mantisse sind insgesamt 68 Bit lang und sie sind alle innerhalb eines der Module der FPAC-Datei ^08 oder
i+10a enthalten.
Als nächstes wird anhand der Fig. 9 eine Diskussion der "6if-Uberschuß-Schreibweise" gegeben. Bekanntlich sind
die Mantissen eines Gleitkommaprozessors Brüche, und der der Mantisse zugeordnete Exponent ist entweder positiv
oder negativ in Abhängigkeit davon, ob das Gleitkommawort (die Mantisse und der Exponent zusammengenommen) als
größer oder kleiner als Null angenommen wird. Auf diese
030025/0752
Weise können große Zahlen und kleine Zahlen wirkungsvoll dargestellt werden· Beispielsweise ist unter Bezugnahme
auf Fig. 9, wo die Mantisse bekanntlich in der Lage ist, Gh Binärbits (in 16 Hexadezimal-Zeichen) zu verwenden,
die größte Zahl eine Zahl ,bei der die Mantisse in allen ihren
Stellen die Ziffer 1 enthält, multipliziert mit 1663; im
Gegensatz hierzu ist die kleinste ausdrückbare Zahl eine Zahl, bei der die Mantisse überall mit Ausnahme der
letzten Stelle eine Null enthält, und die letzte Stelle enthält eine 1, multipliziert mit 10""^. Um jedoch die
Zahl genau zu charakterisieren, ist das Vorzeichen des Exponenten äußerst widtig. Wenn man das Vorzeichen des
Exponenten beibehalten würde, wurden die Stellen nicht wirkungsvoll verwendet. Es wird das Schema
der 6if-Uberschuß-Darstellung verwendet, um sich die Forderung
zu ersparen, das Vorzeichen des Exponenten wärend der Rechnungen mitzuführen· Im wesentlichen wird der Wert
Gk zum Absolutwert im Exponenten addiert und in der folgenden
Weise interpretiert. Wenn in Fig, 9 der Exponent den Wert 6*t enthält, wird dies als Null interpretiert.
Wenn der Exponent den Wert 127 enthält, wird dies als 63 interpretiert. Wenn der Exponent eine Null enthält,
wird dies als -Gl\ interpretiert. Wie in Fig, 9 gezeigt
ist, sind negative Exponenten Werte, die größer oder gleich Null und kleiner als Gk sind. Positive Exponenten
sind Gk bis 127,
In Fig. 10 ist ein normalisiertes und ein unnormalisiertes
Gleitkommawort gezeigt. Beim unnormalisierten Wort ist der Exponent gleich 71 - Gk oder gleich 7· Die drei Einsen
an der rechten Seite des Exponentenworts sind gleich 7» und die Eins in der zweiten Stelle von links ist gleich Gk
unter Verwendung von normalen Binärumsetzungstechniken·
030025/0752
Im Gegensatz dazu ist im normalisierten Wort der Exponent
gleich 68 - 64 oder i+. Es ist jedoch der wesentliche Punkt
dieser Figur nicht, besonders die Exponentenwerte zu beleuchten, sondern die Unterschiede zwischen einem normalisierten
und einem unnormalisierten Wort wie folgt zu erklären:
Die Normalisierung wird verv/endet, um die Genauigkeit der in einer begrenzten Anzahl von Hexadezimalzeichen (jede
gezeigte Gruppe von vier Binärbits ist ein einzelnes Hexadezimalzeichen)
dargestellten Gleitkommazahl in der Gleitkommaeinheit zu erhöhen. In der Fig. 10 wird eine unnormali-
sierte Zahl, die durch 3/65536x16 repräsentiert wird, anfänglich
in den PFAC ijO8a oder /f10a geladen. Es wird auf
führende Hexadezimal-Nullen geprüft und festgestellt, daß es in diesem speziellen Fall drei davon gibt. Mit anderen
Worten, den ersten drei Hexadezimalzeichen sind zwölf Nullen zugeordnet, plus zwei weitere Nullen, bevor das
erste von Null verschiedene Binärzeichen auftritt, und dies kann betrachtet werden als gleich mit 1/2 + 1/2 ,
oder 2/216 + I/216, oder 3/2Ί°, und 216 ist gleich
65536. Die Normalisierung erfolgt, wenn das führende Hexadezimalzeichen ein von Null verschiedaer Wert ist,
wie die normalisierte Darstellung in Fig. 10 zeigt. Weil das erste von Null ""erschiedene Hexadezimalzeichen drei
Plätze nach links bewegt wird, wird der Exponent in seinem Wert um drei verringert, daher ist der Exponent
nun gleich 6Ö — 6^+ = ^. Die Mantisse ist nun gleich 1/2-3 +
1/2^, also 3/16. Der wichtige Punkt ist, dab 3/I6 χ I6^f,
das ist der Wert der normalisierten Zahl, genau gleich ist 3/65536 χ 16 ; dies kann durch einfache Rechnung
überprüft v/erden.
030025/0752
Die Normalisierung wird so definiert, daß das hochwertige Hexadezimalzeichen eine von Null verschiedene Zahl enthält,
oder mit anderen Worten, die Normalisierung ist derjenige Zustand, wo mindestens ein von Null verschiedenes
Bit im höchstwertigen Hexadezimalzeichen enthalten ist. Der Zweck der Normalisierung besteht darin, die Kapazität der
Mantisse im FPAC zu vergrößern, um eine größere Genauigkeit dadurch zu erreichen, daß die Mantisse mehr Bits
aufnehmen kann»
Für den Betrieb wird auf die Figuren 3, 4, 5 und 7 gemeinsam
Bezug genommen, um die Arbeitsweise der FPU am besten zu beschreiben· Es versteht sich, daß die FPU eine große
Anzahl von Operationen ausführen kann, und in der Tat kann mehr als 60 solche Operationen ausführen einschließlich
der Addition, der Subtraktion, der Multiplikation, der Division, der Push-Operation und der Pop-Operation·
Um die Arbeitsweise der FPU zu erläutern, werden diese sechs Operationen ausführlich beschrieben, wobei in der
Darstellung typische Zahlen in der unmittelbar nach der folgenden Definition einiger Ausdrücke gegebenen Beschreibung
verwendet werden:
TRAP - ein Gleitkomma-TRAP (Falle) ist ein Signal, das
einen Gleitkommafehlersustand anzeigt, der beispielsweise daher rühren kann, daß die Gleitkommaeinheit versucht,
nichtverarbeitbare Daten zu behandeln, z.B. eine Division durch Null, usw.;
PUSH FLOATING POINT STATE - ist dies ist ein Befehl, der den augenblicklichen Inhalt der Gleitkommaeinheit in einen
030025/0752
18-Wort-Block in einem speziell reservierten Teil des Hauptspeichers, der manchmal als Benutzer-Stapelregister
bezeichnet wird, rettet;
POP FLOATING POINT STATE - dies ist ein Befehl, der erlaubt, den oben erwähnten 18-Wort-Block vom Stapelregister
des Benutzers zurück in die Gleitkommaeinheit zu schreiben; und
VECTOR - der Ausdruck Vektor ist ähnlich dem Ausdruck Adresse, aber Vektor enthält eine zusätzliche Qualität
oder Dimension insofern, als er eine spezielle Mikrocodestelle
adressiert, wogegen eine Adresse normalerweise sich nur anwenden ließe, um die nächste nachfolgende Stelle
in einer Serie von Mikrocode-Adressen auszuwählen.
Als Beispiel sind fünf mögliche Betriebszustände der Gleitkommaeinheit,
die die Art beeinflussen, in der die Maschinenausrüstung oder Hardware auf einen Eingabebefehl
hin arbeitet:
1· die FPU ist nicht von einem früheren Befehl belegt und
ein FPU-Befehl wird empfangen, TRAP ist nicht gesetzt ;
2« die FPU ist nicht von einem früheren Befehl belegt und
ein FPU-Befehl wird empfangen, TRAP ist gesetzt;
3· FPU ist mit der Verarbeitung eines früheren Befehls beschäftigt
und ein weiterer FPU-Befehl wird empfangen, TRAP ist nicht gesetzt;
k· FPU ist mit der Verarbeitung eines früheren Befehls
030025/0752
beschäftigt, und ein weiterer FPU-Befehl wird empfangen, TRAP ist gesetzt; und
5, Speicher-FPAC-Befehl, TRAP ist nicht gesetzt.
Mit dem Zustand oder der Bedingung Nr. 1 wird eine Addition/Subtraktion diskutiert werden; für den Zustand
Nr. 2 wird ein Push-Gleitkomma-Vorgang (push floating point) beschrieben werden; in Verbindung mit der Bedingung
oder dem Zustand Nr. 3 wird eine Multiplikation/Division erläutert; für die Bedingung oder den Zustand Nr. 4 wird
eine Pop-Gleitkomma-Operation (pop floating point) beschrieben und für den Zustand Nr. 5» in dem die FPU mit
der Verarbeitung eines früheren Befehls beschäftigt ist, wird ein Speicher-FPAC-Befehl (store FPAC instruction)
diskifcLert.
Zustand Nr. 1
Es wird, wie oben vermerkt, auf die Figuren 3 bis 5 und Bezug genommen und angenommen, daß ein Rechnerbefehl einen
Gleitkommabefehl enthält, zuerst den FPAC Null zu laden, (Fig. 5:475 und Fig· 4:^39; die FPACs der Fig. 2 A sind
in diesen Blöcken angeordnet^ Für die erste Operandenzahl, beispielsweise 1/16 x 10^, ist das erste Bit das
Vorzeichenbit des Operanden, und das zweite Bit ist das Vorzeichen des Exponenten, welche beide in diesem Beispiel
positiv sind. Sie sind jedoch mit Null bzw. Eins bezeichnet» Für dieses Beispiel wird der Befehl über den
Befehlsbus 400 empfangen und mit dem Startadressendecodier-ROM
412 decodiert. Das Ergebnis dieser Decodieroperation
wird in das Startadressenregister 413 geladen, und über
030025/0752
den Startadressenbus i+l/f und den Wähler i+15 zum Steuerspeicheradressbus
418 gebracht. Dies ist eine Startadresse
oder ein Vektor, der den Steuerspeicher-ROMs if19
angeboten wird, der wiederum geeignete Steuersignale liefert, die erforderlich sind, um vier Operanden vom
Hauptspeicher in die Gleitkommaeinheit zu laden mehr über diese Ladeoperation in Verbindung mit dem
folgenden Zeitdiagramm Ii+). Die Operanden v/erden in diesem
Fall auf dem MEMIN-Bus 320 vorhanden sein, und sie
v/erden durch den FPU-MEM-Bus-Multiplexer ^70 und über
den Bus 47^a, den Multiplexer ^63 und den Bus 467 zum
Arbeitsregister i+68 geführt.
In Fig. 7 ist das ArbeLbsregister 468 in einer Stapelspeicherkonfiguration
gezeigt, die die Wirkungsweise besser zeigt. Daher v/erden unter Bezugnahme auf Fig. 7
die Daten auf dem Bus i+67 in die Bits 48 bis 63 des
Arbeitsregisters geladen. Das zv/eite Wort des Zf-Wort-Blocks wird durch dieselben Datenwege, wie oben beschrieben,
geführt und in die Bits 48 bis 63 des Arbeitsregisters geladen, während das erste Wort durch den Bus
ifOifd und den Multiplexer if62 zum Bus 466 geführt wird,
wo es in das Arbeitsregister Zf68b geladen wird. Dann wird das dritte Wort wieder durch die oben erwähnten
Datenwege in den Arbeitsregisterblock l\68a geladen, und
das zweite Wort wird dann in das Arbeitsregister 468b
geführt und geladen, wobei sich das erste Wort nun im Arbeitsregister 468c befindet. Und schließlich erscheint
das vierte und letzte Wort auf dem Bus /f6?
und wird in das Arbeitsregister 468a geladen, während
das dritte Wort sich nun im Arbeitsregister 468b befindet,
das zweite Wort im Arbeitsregister i+68c, und
030025/0752
das hochwertige Byte des ersten Worts im Arbeitsregister 439b und das niedrigwert ige Byte im Arbeitsregister 468d.
(Zur Erläuterung kann man sich wegen einer bildlichen Darstellung der vier Operanden im Hauptspeicher und das
resultierende Gleitkommawort wieder auf Fig. 8 beziehen·) Diese Beschreibung schließt die Beschreibung des Ladens
des Arbeitsregisters für einen Ladebefehl ab. Zu diesem Zeitpunkt sind die Daten im Arbeitsregister in dem angegebenen
FPAC im Block 457 der Fig. 5 und im angegebenen
FPAC im Block if39 der Fig. 4 gespeichert. Der Mantissenteil
ist in 457 gespeichert, und der Exponent/Vorzeichen-Teil ist in 439 gespeichert. Diese Beschreibung umfaßt
das Leiden eines Operanden für die Addier-Operation.
Damit die Gloitkommaeinheit eine Addition ausführen kann, ist natürlich das Laden des zweiten Operanden erforderlich,
aber weil das Laden des zweiten Operanden fast identisch mit dem Laden des ersten ist, das soeben boschrieben
wurde, wird zur Beschleunigung der Beschreibung der Arbeitsweise angenommen, daß der zweite
Operand in die ihm zugeordneten FPACs geladen worden war, wie dies nötig ist. Für die Zwecke der Erläuterung
ist der zweite Operand so gewählt, daß er dem in Fig.IO gezeigten normalisierten Operanden gleich ist, nämlich
3/16 χ 162*.
Nachdem die beiden Operanden somit geladen worden sind, bezieht sich die nächste Beschreibung auf die Addition
der beiden Operanden in der Gleitkommaeinheit· Die Gleitkommaaddition besteht aus einem Exponenten-Vergleich
und einer Mantissenaddition. Die Exponenten der beiden Operanden werden verglichen, indem mit ilren
030025/0752
eine Subtraktion im Exponent-ALU-Block i+ifö durchgeführt
wird. Das Ergebnis dieses Vergleichs wird auf dem Bus angeboten, der die innerhalb des ROM i\5Q enthaltene Absolutwertsuchtabelle
adressiert. Der ROM 4^0 liefert ein
Hexadezimal-Schiebe-Code-AuGgaigesignal, das durch den
Bus Lß~j> der Hexadezimal-Schiebeeinrichtung 470 zugeführt
wird. Bei diesem Beispiel ist der Hexadezimal-Schiebe-Code gleich 1 und wird den Inhalt des Arbeitsregisters
um ein Hexadezimalzeichen nach rechts schieben. Die Vorschiebung um genau ein Hexadezimalzeichen wird bedingt
durch eine Differenz vom Wert 1 zwischen den Exponenten der zwei Operanden. Dieser verschobene Wert wird zu der
im Mikroprozessor-Slice 1+57 angeordneten Zielmantisse
addiert, und das Ergebnis der Addition wird in die Mantisse des Ziclakkumulators geschrieben v/erden, der
ebenfalls im Block l\57 angeordnet ist. (Das Slice l\^7
bei der bevorzugten Ausführungsform ist das von der Firma Advanced Micro Devices gelieferte im Handel erhältliche
Teil Nr. Am 2901 A.)
An diesem Punkt der Operation wird mittels des Prüfmultiplexers /f30 (Fig. 3) eine Prüfung durchgeführt. Falls
ein Überlauf aus der Addition der zwei Operanden resultierte, muß eine Normalisation stattfinden. In diesem
Beispiel jedoch fand kein überlauf statt, und daher sind Mantisse und Exponent des Ergebnisses richtig.
Bei diesem bevorzugten Ausführungsbeispiel wird der Exponentenvergleich mittels der N-fach-Zweig-liOMs l\2.Z
durchgeführt. Die zwei Operanden werden dem Exponent-ALU-Block
ψ+8 angeboten und werden subtrahiert. Das
Ergebnis der Subtraktion erzeugt fünf Zustandsvariable:
030025/0752
bo
0OR (out of range, außerhalb des Bereichs); ECO (exponent carry out, Exponent austrag); EZ (exponent zero,
Exponent Null), dies bedeutet, daß die Quellen- und Zielakkumulatoren gleich sind; SGNR (sign of the result, Vorzeichen
des Ergebnisses) vergleicht die Vorzeichen des Quellen- und Zielakkumulators; und AOS (add or subtract,
Addition oder Subtraktion), der z»Zt. ausgeführte Zyklus
ist ein Additions- oder Subtraktionszyklus·
Die restlichen Zustandsvariablen werden dem N-fach-Zwoig-ROM L\2-2 zur Addition und Subtraktion zugeführt, was dazu
führt, daß eine Adresse über den Mikroprogrammadressenv/ahler i+15 dem Steuerspeicheradressbus ifl3 zugeführt wird.
Die M-fach-Zweig-Adressen-ROMs 1+2.Ξ. verringern effektiv
die früheren Vergleichsfunktionen auf einen einzigen Zyklus,
In diesem speziellen Beispiel sind die Exponenten nicht gleich, und der Exponent des Zielakkumulators ist größer
als der Exponent des Quellenakkumulators· Dies führt dazu, daß eine Anpassung für die Exponent-Quellenmantisse erforderlich
ist· Diese Mantisse ist früher in das Mantissen-Arbeitsregister geladen worden, wie oben besprochen wurde·
Das Ergebnis dieses Vergleichs wird durch das ROM ^50
(Absolutwertsuchtabelle) geprüft, was zu einem Hexadezimal-Verschiebungscode
führt. Bei diesem Beispiel ist der Hexadezimalvcrschiebecode 1, und das Mantissenwort im
Arbeitsregister i|-68 wird um ein Hexadezimalzcichen nach rechts verschoben werden, wobei die Bits auf der
rechten Seite des Arbeitsregisters herausgeschoben v/erden und in die für das Schutzzeichen vorgesehene Speicherkapazität
des Arbeitsregisters, Fig· 7, hineingeschoben > v/erden· Nach dieser Verschiebung sind die Mantissen bäder
030025/0752
Operanden aneinander angepaßt und bereit für die Addition.
In diesem Beispiel werden deswegen, v/eil die Vorzeichen gleich sind, die Hantiosen tatsächlich zueinander addiert.
Die Addition erfolgt im Mikroprozessor-Slice 457. Der auf
dem Bus 40 4 angeordnete Quellenoperand, der einem eingang
des Slice 457 angeboten wird, wird su dem Zieloperanden
innerhalb des Slice 457 addiert. Das Ergebnis dieser Addition wird intern auf einen Mantissenüberlauf geprüft.
In diesem Falle ist kein Mantissenüberlauf aufgetreten, und das Ergebnis dieser Addition wird in dem Zielmantissen-FPAC
innerhalb des Slice 457 angeordnet. Der Zielexponent wird der Exponent der Lösung sein, und dieser Exponent wird
in die Ziel-Exponentenschaltung geschrieben, die innerhalb des Exponent/Vorzeichen-Speicherblocks 439 in Fig. 4 angeordnet
ist (dieser Block ist als Teil-Nr. 74s194 im Handel
erhältlich). Die Vorzeichen in den Zielakkumulatoren sind auch das Vorzeichen der Lösung, und es wird gleichfalls
in den Ziel-FPAC innerhalb des Blocks 439 geschrieben. Die
Quellen- und Ziel-FPAC-Adressen werden von den Befehlsregisterbits
1 bis 4 abgeleitet. Diese laufen durch die FPAC-Auswahllogik 429 (Fig. 3), den FPAC-Auswahlbus 435,
und werden als Adressen den Exponenten- und Mantissen-Blöcken 439 und 457 angeboten. Diese Bits geben die
Quellen- und ZielaKkumulatoren an, die bei der obigen
Beschreibung eines Additionsvorgangs diskutiert wurden. Die obigen Ausführungen schließen die gegenwärtige Diskussion
des Additionsvorgangs in der FPU ab.
Zustand Nr.
2.
Derselbe Befehl wird nun für einen Zustand geprüft, v/o
ein Gleitkomma-TRAP von einem früheren Befehl gesetzt ist.
030025/0752
Beim Empfangen eines Additionabefehls wird die Gleitkommaeinheit
über den Startadressendecodier-ROM l\\Z und das
Startadressenregister ^I 3 an eine gerade Stelle im innerhalb
des Steuerspeicher-ROMa-Block i+19 enthaltenen Mikrocode;
springen, (normalerweise werden ausführbare Adressen
eine ungerade Adresse enthalten; gerade Adressen ergeben sich aus der Tatsache, daß TKAP von einem frühren Befehl
gesetzt worden ist.) Falls die Falle (TKAP) gesetzt ist, wird der gegenwärtige Befehl nicht ausgeführt, und der
TKAP wird initiiert, unter Überwachung durch die CPU, die die geeigneten Maßnahmen trifft, um die Ursache des
TKAP und alle vorzunehmenden notwendigen Korrekturen festzustellen. Die Startadresse wird aus dem Startadressenregister
herausgenommen, und dieses Register wird durch die Leerlaufadresse überschrieben. Die Gleitkommaeinheit
befindet sich mit dieser Leerlaufadresse nun in einer Schleife und wartet auf einen neuen Gleitkommabefehl,
Die Ausführung dieser Schleife wird darin bestehen, daß eine Startadresse nur Einsen enthält.
Diese Adresse wird auf den Startadressenbus i\Y$ ausgegeben,
und der Mikroprogrammadresswähler 415 wird den
Startadressenbus wählen, der wiederum die obengenannte Adresse auf den Steuerspeicheradrossbus l\Y6 geben wird.
Dies führt dazu, daß das Ausgangssignal der Steuerspeichcr-RÜMs
419 tatsächlich HOOP (No Operation, Leerbefehl)-Befehle
beim Durchlaufen der Schleife mit der Adresse des Startadressenbusses ausführt.
Mit anderen Worten führt die FPU eine Schleife mit eher
konstanten Adresse aus, die im Startadressenregister
enthalten ist. In diesem spezieilen Fall, wo sie eine Leerlaufadresse ist, weist die Startadresse überall Einsen
030025/0752
auf. Dies beschreibt den Zustand, in dem die FPU arbeitet,
indem sie versucht, eine Addition auszuführen, wo die Falle von einem früheren Befehl gesetzt ist, wo die
Additionsoperation nicht abgeschlossen wird, aber wo die FPU den Befehl nicht beachtet und in Erwartung eines
neuen Befehls Schleifen ausführt.
Wie oben festgestellt wurde, wird der Vergleich der Exponenten für einen Additions- oder Subtraktionsbefehl
in dem N-fach-Zweig-ROMs 1*22 durchgeführt. Dieser Vergleich
besteht aus einem Vorzeichenvergleich, einer Außerhalbdes-Bereichs-Bedingung,
dem Vorzeichen des Ergebnisses des Vergleichs, und ob diese zwei Operanden gleich sind.
Diese vier Bedingungen werden dem Block N-fach-Zweig-Steuer-ROMs
^22 angeboten und führen im Ergebnis zu einem
von acht Vektoren für die passenden Mikrocode-Operationen für diesen speziellen Satz von Operanden.
Zustand Nr. 3
Für diesen Zustand oder diese Bedingung wird eine Multiplikation betrachtet. Dieses Beispiel verwendet dieselben
beispielhaften Operanden, die bei der obigen Diskussion verwendet wurden, und es wird weiter angenommen, daß diese
Operanden wie früher beschrieben, geladen worden sind» Die Gleitkommaeinheit ist mit der Verarbeitung eines früheren
Befehls beschäftigt, und ein weiterer Gleitkommabefehl wird
empfangen. Der neue Gleitkommabefehl wird sich auf dem Befehlsbus AOO befinden und wird in den Gleitkommabefehlsregisterblock
Zf11 geladen. Dieser Befehl wiederum wird zum
Startadressendecodier-ROM if 12 gesendet, und der resultierende
Startadressenvektor wird in das Startadressenregister \\\3
030025/0752
geladen. Weil der Mikrocode auf den Startadressenbus nicht
ansprechend wird, wird die "!tartadresse gehalten, bis sie
benötigt wird. Bei der Ausgabe eines neuen Gleitkommabefehls wird die Gleitkommaeinheit nach einem Gleitkomma-"besetzf'-Signal
abgefragt werden. In diesem speziellen Fall ist die FPU besetzt oder beschäftigt, und das Gleitkomma-Besetzt-Signal
wird zur CPU gesendet werden und stoppt somit die CPU an der Ausführung irgendeines weiteren
Codes. Sobald die FPU den früheren Befehl beendet, wird sie das Signal "besetzt" löschen, wodurch der CPU
gestattet wird, mit der Ausführung des Codes fortzufahren. Die FPU wird dann auf die Signale auf dem Startadressenbus
i+1i| ansprechen und sofort mit der Verarbeitung des laufenden
Befehls beginnen, der früher in das Startadressenregister /f 13 geladen worden war. Die Startadresse wird
über den Startadressenbus /+1h durch den Mikroprogramm-Wähler-Block
/+15 zum Steuerspeicheradressbus /+18 geleitet.
Die Steuerspeicher-KOMs if 19 werden auf die Adresse hin
als Ausgangssignal die geeignete Steuersequenz an das Pipeline-Register /+01 und /+05 liefern.
Für diesen betrachteten Multiplikationsbefehl werden laufende Operationen mit Exponent/Vorzeichen und Mantisse
ausgeführt· Die Exponenten werden addiert und die Vorzeichen verglichen, während zur selben Zeit die Mantissen multipliziert
werden. Zur Exponentenaddition werden unter Hinweis auf den Exponent/Vorzeichen-Speicher /+39 der Fig. /+
die Quellen- und Ziel-Werte der Exponenten addiert und in den Exponenten-Ziel-Akkumulator geschrieben. Der
Quellenexponent und der Zielexponent werden addiert durch den Exponent-Ziel-Bus /+/+3, und den Exponent-Quellen-Bus
Wf» der durch den Exponent-Multiplexer /+/+5 und den
Exponent-Multiplexer-Bus /+/+? zur Exponent-ALU /+/+8 geleitet
030025/0752
wird. Das Ergebnis dieser arithmetischen Manipulation wird
auf den Exponent-Funktion-Bus ifif9 gegeben, der durch den
Exponent-Daten-Wähler-Multiplexer 1+37 zum Exponent/Vorzeichen-Datenbus
1+38 geführt wird, und in den Exponent-Ziel-Akkumulator
innerhalb des Blocks 1+39 geschrieben.
Die nächste mit den Exponenten auszuführende Operation besteht darin, den Überschuß von 6*f herauszusubtrahieren,
der sich aus der Addition der beiden Komponenten ergeben hat, die beide einen Überschuß Gk enthielten. Dies wird
dadurch erreicht, daß der Wert Gi+ auf den Konstanten-Bus
1+1+6 gegeben wird, wonach er durch den Exponenten-Multiplexer
l+k5 zum Exponenten-Multiplexer-Bus 1+1+7 geführt wird.
Dies liefert eines der Eingangssignale der Exponent-ALU /f 1|Sv in Verbindung mit dem anderen bereits beschrlßbaien
Eingangssignal, das über den Exponent-Ziel-Bus l+k3 ankommt.
Diese beiden Exponenten-Operanden werden innerhalb der Exponent-ALU 1+1$ subtrahiert, was zum korrigierten
Exponenten in der 6it-überschuß-Schreibweise führt.
Dieses Ergebnis wird durch den Exponenten-Bus 1+1+9 über
den Exponenten-Daten-Wähler-Multiplexer 1+37 zum Exponent/
Vorzeichen-Daten-Bus 1+3& geleitet und wird in den
Exponent-Ziel-Akkumulator innerhalb des Blocks 1+39 geschrieben.
Dies schließt die Besprechung oder Beschreibung der Operation mit den zwei Exponenten-Operanden für eine
beispielhafte Multiplikation ab.
Für die innerhalb des Blocks 1+57 der Fig. 5 enthaltenen
Mantissen wird das Partialprodukt anfänglich auf Null gesetzt, und danach werden der Multiplikand und der
Multiplikator des Partialprodukts, die innerhalb des Slice-Blocks i+57 enthalten sind, in der üblichen binären
03 0 025/0752
Arbeitsweise multipliziert, und das Endergebnis wird im Arbeitsregister /f68 gespeichert, wobei es über den Mantissen-Funktion-Bus
459 und durch die Arbeitsregister-Eingabe-Multiplexer
460 bis 463 geleitet wird. Dieses
Produkt ist nun im Arbeitsregister enthalten, und es wird durch die N-fach-Zweig-Steuer-ROMs, die in Fig· 3 dargestellt
sind, und den Block 422 auf eine führende Hexadezimal-Null,
Null, oder auf eine normalisierte Mantissendarstellung geprüft. Unter der Annahme, daß das
Produkt nicht Null ist, und daß es keine Normalisierung erfordert, was bei den Operanden, die wir besprochen
haben, der Fall wäre, ist das Ergebnis richtig, sojurie es
ist, und es wird im Block 457, dem Mikroprozessor-Slice
der Fig. 5, gespeichert. Auf dieser Operationsstvfe sind
die zwei Gleitkommazahlen miteinander multipliziert, der sich ergebende Exponent und das sich ergebende Vorzeichen
sind in dem Exponenten- und Vorzeichen-Speicherblock 439 enthalten, und das bezeichnete Exponentenziel
und der Mantissenteil des Produkts sind im Mikroprozessor-Slice 457 in Fig. 5 enthalten. Damit ist die
vorliegende Beschreibung der Arbeitsweise der FPU entsprechend dem Zustand 3 abgeschlossen.
Zustand Nr. 4
Beim Zustand Nr. 4 ist die FPU mit der Verarbeitung eines früheren Befehls beschäftigt, und ein weiterer FPU-Befehl
wird empfangen. Dieser FPU-Befehl ist für die Zwecke der Erläuterung ein "Pop"-Gleitkommabefehl.
Es ist auch der TRAP vom früheren Befehl gesetzt, der für die Zwecke der Erläuterung ein Multiplizierbefehl
war. Für die Zwecke der Erläuterung wird angenommen, daß der frühere Befehl zu einem Fehler führte, damit sich
der gesetzte Zustand des TRAP ergibt.
030025/0752
Der Pop-Gleitkommabefehl wird die Tatsache, daß der TRAP
gesetzt worden ist, nicht beachten und den Pop-Befehl vollenden, was dazu führt, daß die Gleitkoramaäfcumulatoren und
die Gleitkommazustandsregister mit 18-Bit-Wörtern gefüllt
werden, die in einem besonderen Teil des Hauptspeichers enthalten sind, der für diesen Gleitkommazustand reserviert
ist, Die.se Operation wird ohne Rücksicht auf den Zustand des TRAP abgeschlossen, und die Gleitkommaakkumulatoren
und alle Gleitkommazustände werden auf den neuesten Stand gebracht, injdem sie die Pop-Gleitkommabefehle
wiederspiegeln· Die Tätigkeit der FPU in Übereinstimmung mit einem Pop-Befehl ist äquivalent zur
Ausführung von vier aufeinanderfolgenden Ladevorgängen, die im Detail oben unter der Bedingung oder dem Zustand
Nr« 1 beschrieben worden sind, der sich mit dem Laden von Gleitkommabefehlen befaßt.
Zustand Nr, 5
Der Zustand oder die Bedingung Nr, 5 ist ein Speicher-FPAC-Befehl,
TRAP ist nicht gesetzt. Die FPU wird mit der Verarbeitung von früheren Befehlen beschäftigt sein,
und der empfangene FPU-Befehl wird ein Speicher-FPAC-Befehl
sein· Beim Erscheinen des Speicher-FPAC-Befehls überwacht die CPU den Gleitkomma-"belegt"-Zustand und
findet, daß die FPU belegt oder beschäftigt ist. Es wird eine weitere Verarbeitung der CPU-Befehle verzögert,
bis die Gleitkommaeinheit den früheren Befehl beendet. Diese überwachung erfolgt in der CPU/FPU-Schnittstellensteuerung,
die in Fig· 2 A enthalten ist. Beim Abschluß des früheren Befehls wird der Speicher-Gleitkommabefehl
in der folgenden Weise ausgeführt werden·
030025/0752
29A9375
Die FPAC-Mantisse wird durch den Mantissen-Funktion-Bus /+59
geladen, wie oben beschrieben wurde, der über die Arbeitsregist er-Eingang-Multiplexer /+60 bis i+63 zum Arbeitsregister
lf68 geführt ist. Der Exponenten- und Vorzeichen-Teil wird
in das im Block /+39 angeordnete Exponent-Quellen-Arbeitsregister geladen· Das Ausgangssignal dieser Register ist
durch den Exponent-Quellen-Bus /+7^-b mit den MEMIN-Bustreibern
k?2. und V? 3 unc* m^ dem MEMIN-Bus 320 verbunden.
Diese Ausgangssignale werden zu geeigneten Zeiten, die durch von der CPU/FPU-Schnittstellensteuerung her
empfangene Signale gesteuert werden, aktiviert. Diese selben Busse gehen auch zu den MEMOUT-Treibern, und wenn
es zweckmäßig ist, wird der MEMOUT-Bus durch die im Block
/+73 der Fig· 5 angeordneten MEMOUT-Bustreiber aktiviert.
Die dem MEMIN-Bus 320 angebotenen Signale werden in den Speicher geschrieben; die dem MEMOUT-Bus 318 angebotenen
Signale werden durch die CPU empfangen, (Mit anderen Worten werden mittels des MEMIN-Bustreibers /+72 abgeleitete Signale,
die auf den MEMIN-Bus 320 gegeben werden, zum Hauptspeicher 311 der Fig, 1 A geleitet; die Eingangssignale des MEMOUT-Treibers k7J>
werden über den MEMOUT-Bus 318, der in Fig· 1 A gezeigt ist, geleitet und in der
CPU 31h gespeichert·)
Dieser Verkehr zwischen der FPU und der CPU im Speicher ist es, der es gestattet, daß die von der FPU ausgeführte
Arbeit von anderen Teilen des Datenverarbeitungssystems benutzt werden kann· Obwohl das Verhältnis der internen
FPU-Operationen zu diesem Speicher-FPAC-Befehl nicht mit Sicherheit angegeben werden kann, soll es genügen zu sagen,
daß der Speicher-FPAC-Befehl nicht der üblicherweise von der FPU ausgeführte Befehl ist. Hiermit ist die vorliegende
Beschreibung der Arbeitsweise der FPU entsprechend dem Zuiand Nr, 5 abgescHossen.
030025/0752
Es wird nun eine abschließende interessante Funktion beschrieben, die sich nicht notwendigerweise auf die
von der FPU ausgeführten normalen Manipulationen bezieht ,und dies ist die Auswahlfunktion für die Quellen-
und Ziel-Akkumulatoren· Für diese Diskussion ist der untere Teil der Figur 3 von Interesse. Den im Register
U,2& enthaltenen Quellen- und Zielakkumulatoren werden
die Befehlsregister-Bits 1 bis l\ auf dem Bus i+33 zugeführt.
Die FPAC-Adressenauswahl-Logik wählt zwischen
den durch ein if-Bit-Feld innerhalb des Befehlsregisters
oder ein ^-Bit-Feld, das im Mikrocode enthalten ist,
oder das innerhalb der Steuerspeicher-ROMs if19 enthalten
ist, bezeichneten Quellen- und Ziel-Akkumulatoren. Für die Zwecke der Erläuterung wird auf den früher erwähnten
Fall der Multiplikation zurückgegriffen, wobei die Auswahllogik in jenem Beispiel der Multiplikation die Befehlsregister-Bits
1 bis l\ wählen wird, wobei sie diese
auf FPAC-Auswahlbus gibt und die Bits zum Pipeline-Register ifO1 und ifO5 sendet. Diese Befehlsregister-Bits
werden zum Exponent/Mantissen-Quellen- und Ziel-Adress-Bus VfO| Fig· ki geleitet und in den Exponent- und
Vorzeichen-Speicher-Block if39 geleitet. Die Antwort auf
diese Quellen- und Ziel-Adressen wird die für die spezielle beschriebene Operation interessierenden FPACs
angeben. Die FPAC-Mantisse ist im Block Zf57, Fig. 5, enthalt
en | Exponent und Vorzeichen des FPAC sind im Block ^39 f
Fig. if, angeordnet. Hiermit ist die vorliegende Beschreibung
der Wirkungsweise der FPU bei einem FPAC-Adressen-Ausw'ähl-Zustand
abgeschlossen.
Fig. 11, 12 und T3
Sine detaillierte schematische Schaltung des Arbeitsregisters
030025/0752
ict in Fig. 11 gezeigt. Wie man sehen kann, sind übliche
Schieberegister in integrierter Schaltungstechnik einer Ausführungsform mit vier Bit verwendet. In Fig. 11 ist
das Layout der Schieberegister in einem Format mit drei Spalten und fünf Zeilen angegeben. Das Schieberegister
in der letzten Zeile der ersten Spalte soll dem Schieberegister in der ersten Zeile der zweiten Spalte unmittelbar
vorhergehen, wie durch gestrichelte Pfeile 11A" angezeigt
ist4 und in ahnlicher Weise soll das Schieberegister
in der letzten Zeile der zweien Spalte dem Schieberegister in der ersten Zeile der dritten Spalte unmittelbar vorhergehen,
wie durch gestrichelte Pfeile "B" angezeigt ist. Es gibt folgende Eingangssignal^ uml '\usgangssignale des
Arbeitsregisters: Die Signale DÖ bis D67 repräsentieren die 60 Auagangssignale des Arbeitsregisters. Die "ignale
Mo bis M67 repräsentieren die parallelen Ladeeingangssignale des Arbeitsregisters· RCLK ist der Takt des
Arbeitsregisters, der mit der Frequenz des FPU-Takts (oder FPUCLK) läuft und in bestimmten speziellen Fällen
mit der vierfachen Frequenz des FPU CLOCK (FPU-Takt) läuft. Andere Signale HDO bis HDI4 sind die Hexadezimalzeichen
O bis 14; diese beziehen sich auf die Eingangssignale des Rechtsschiebekanals jedes Arbeitsregisters,
und sie v/erden von der Hexadezimal-Verschiebe-Logik abgeleitet.
Als nächstes werden die Signale DBSO und DBS1 verwendet,
um die Hexadezimalzeichen O bis 7 des Arbeltsregisters
zu steuern, und Signale DASO und DASl steuern die Hexadezimalzeichen 8 bis 15 des Arbeitsregisters.
Diese Signale werden verwendet, um das Arbeitsregister in die Betriebsarten Linksschieben, Rechtsschieben,
Parallelladen, und Halten zu steuern. Das Signal CDL löscht die Zeichen 6 bis 14 dos Arbeitsregisters.
030025/0752
2943375
Als nächstes wird auf die Figuren 12, 1.3 A und 13 B Bezug
genommen, in denen die Architektur und eine detaillierte
Schaltung der Hexadezimal-Verschiebeeinrichtung 470 gezeigt ist. Wiederum wird die detaillierte Schaltung durch
übliche Bauteile in integrierter Schaltungstechnik gebildet,
die auf dem Markt frei im Handel erhältlich sind. Die der Schaltung zugeordneten Signale sind die folgenden.
HDO bis HDUf sind die Hexadezimalzeichen in der Mantisse. Die Signale SO bis S3 sind die durch den Hexadezimal-Verschiebungs-Code-Eingangsbus
403 erzeugten Skalencodesignale; diese Signale lenken die Skalierungsfunktion
der Hexadezimal-Verschiebeeinrichtung, Ein Signal SL aktiviert den nach links schiebenden Teil der Hexadezimal-Verschiebeeinrichtung;
SR (Rechtsverschiebung) aktiviert den nach rechts schiebenden Abschnitt der Hexadezimal-Verschlebeeinrichtung.
MSELSO und MSELS1 sind ein Multiplexerauswahlsignal
SO und ein Multiplexerauswahlsignal S1; dies sind variable Signale mit einer gemeinsamen Aktivierung,
und sie werden entweder durch Linksverschieben (SL) oder Rechtsverschieben (SR) ausgewählt. Die Signale DII,
15,19,23,27,31,35,39,43,47,51,55,59,63 und 67 sind jeweils das höchstwertige Bit jedes Hexadezimalzeichens der Mantisse«
Es wird nun unter Bezugnahme auf die Figuren 11, 12, I3 A
und 13 B die detaillierte Arbeltsweise des Arbeitsregisters und die Architektur der Hexadezimal-Verschiebeeinrichtung
dargelegt.
Jede Komponente des Arbeitsregisters 468 ist ein Schieberegister, und alle Schfeberegister sind untereinander identisch,
wie bereits festgestellt wurde. Es folgen die
Q30025/0752
Eingangssignale und Ausgangssignale dieser Schieberegister, Jedes Schieberegister enthält vier Bits der Gleitkommamantisse«
Jeweils vier Bits bilden ein einzelnes Hexadezimalzeichen, und sie könnten als Hexadezimalzeichen Null bis
1/+ bezeichnet werden. Diese Hexadezimalzeichen können Daten
von dem passenden Zf-Bit-Mikroprozessor-Slice empfangen
und können ebenfalls durch den Rechtsschiebeeingangskanal geeignet skalierte Daten empfangen, die als Hexadezimalzeichen
0-15 bezeichnet sind. Ihre Funktionen werden durch Signale DAO, DAl, DBSO und DBS1 gesteuert, und es
sind dies die Funktionen Linksverschieben, Rechtsverschieben, Parallelladen, bzw. Halten, Der Linksschiebeeingabekanal
ist mit dem nächsten niedrigerwertigen Bit des nächsten niedrigerwertigen Hexadezimalzeichens verbunden.
In Fig, 12 gibt es fünf grundlegende Blöcke in der Hexadezimal-Verschiebeeinrichtung,
Es gibt eine Rechtsschiebefunktion, die durch die Blöcke 1301, 1302 und 130/f gebildet
wird; der linksschiebende Teil der Verschiebeeinrichtung wird durch die Blöcke 1302, I303 und I305 gebildet.
Die passende Sdiebefunktion aktiviert entweder eine Kombination
Linksschieben oder Rechtsschieben von logischen und direkten Signalen auf einem Eingabebus 1306, der das
niedrigstwertige Bit jedes Hexadezimalzeichens für die passenden Hexadezimal-Verechiebeeinrichtungen enthält.
Diese Hexadezimal-Verschiebeeinrichtung kann angesehen werden als ein 32-Auf-1-Multiplexer, der Ausgangssignale
jedes hochwertigen Hexadesimalzeichens zum Rechtsschiebe-Eingangskanal
jedes Hexadezimalzeichens leiten kann.
In Fig. 12, 13 A und 13 B verwendet der Block I3OI eine
einzelne Verschiebeeinrichtung; im Bauteil 1302 werden
030025/0752
drei Verschiebeeinrichtungen verwendet; im Bauteil 1303
werden zwei Verschiebeeinrichtungen verwertet. Im Bauteil 1304 werden vier Verschiebeeinrichtungen verwendet; und
im Bauteil 1305 werden vier weitere Verschxebeeinrichtungen
verwendet, insgesamt also 14 Verschiebeeinrichtung^ Diese
Verschiebeeinrichtungen werden durch die Firma Advanced Micro Devices hergestellt, sie sind im Handel unter der
Bezeichnung AM25S10 erhältlich. Jedes dieser Bauelemente
hat die Fähigkeit, vier Datenbits entweder um 0,1,2 oder 3 Plätze zu verschieben» Die Eingangssignale für diese
Gruppe von fünf Bauelementblöcken werden auf dem Bus 1306 von den niedrigstwertigen Bits jedes Hexadezimalzeichens
0 bis 15 abgeleitet. Dieser Bus 1306 ist im wesentlichen dasselbe wie der Hexadezimal-Verschiebeeinrichtung-Eingangsbus
469, der vom Arbeitsregister /f68 abgeleitet wird.
Der Ausgan^shus 130? ist im wesentlichen äquivalent dem
Hexadezimal-Verschiebeeinrichtung-Ausgangsbus 471, der
in Fig. 5 gezeigt ist.
Im folgenden wird die Arbeitsweise des Blocks 1301 im
einzelnen beschrieben. Jeder Ausgang des Blocks 1301 ist funktionell äquivalent einem Multiplexer mit vier Eingängen,
dessen Eingänge so angeschlossen sind, daß der als SO und SI bezeichnete Auswahlcode 1-Bit-Verschiebungen
des eingegebenen Datenworts erzeugen kann. Diese Verschiebungen können entweder 0, 1,2 oder 3 Plätze bei
Wörtern jeder Länge betragen. Die Wortlänge in diesem speziellen Fall beträgt 16 Bit. Wenn beispielsweise die
Signale SEL, SO, und SELS1 beide 0 sind, würden die Daten
am YO-Ausgang die Eingangsdaten D11 bei IO sein. Wenn SELSI
und SO niedrig bzw. hoch wären, wurden die Eingangsdaten des
030025/0752
Eingang 1-1 am Ausgang YO erscheinen. Wenn dieses Eingangssignal
SO niedrig wäre und S1 hoch, würde das am Y0-Ausgang
erscheinende Ausgangssignal das Eingangssignal am Eingang 1-2 sein· Unter der Annahme, daß das Eingangswählsignal
SO und das Wählsignal SI niedrig sind, würde beispielsweise das Ausgangssignal YO das am Eingang 11
vorhandene Eingangssignal sein. Wenn die Wählsignale SO, S1 hoch bzw« niedrig sind, würde das Ausgangssignal am
YO-Kanal das am Π-Kanal vorhandene Eingangssignal sein.
Wenn das Eingangswählsignal SO und S1 niedrig bzw. hoch
ist, würde das Ausgangssignal auf dem YO-Kanal das auf dem 12-Eingangskanal vorhandene Eingangssignal sein· Wenn
die Eingangswählsignale SO und Sl beide hoch sind, wird das Ausgangssignal am YO-Kanal das am I-3-Eingangskanal
vorhandene Eingangssignal sein·
Fig· lif A und B zeigt Zeitgeberwellenformen, die den verschiedenen
oben beschriebenen Signalen dieser Anmeldung zugeordnet sind. Das Zeitgeberdiagramm ist in vier Eingabe/
Ausgabe-Zeitgeber-Zustände oder -Formate aufgeteilt, um zu zeigen, wie die Signale zwischen dem FPU-Speicher,
und zwischen der FPU und der CPU geleitet werden· Das Format A ist bezeichnet als Lesezyklus mit doppelter Genauigkeit
vom Speicher zur FPU, B ist bezeichnet als Schreibzyklus doppelter Genauigkeit von der FPU zum Speicher, Das
Format C trägt den Titel übertragung von der FPU zur CPU, Und das Format D trägt den Titel übertragung von
der CPU zur FPU, Diese Gruppe von Wellenformen enthält auch einen FZfO-Takt, F20-Takt, FlO-Takt, "FlO und F20"-Takt,
und ein Signal PORT EN· Diese Anordnung von Taktsignalen
030025/0752
soll allen vier Formaten zugeordnet sein.
Für das Format A sind die Signale FMEM CLK, FPMEM, MEMIN,
MEMOUT1 PAUSE, CLR PAUSE und FPU CLK. Die Zeitgabe für
den Lesezyklus vom Speicher zur FPU mit doppelter Genauigkeit beginnt folgendermaßen. Bei Start der mit Speicheraufruf
bezeichneten Zeitskala auf dem Zeitdiagramm gibt die CPU die Adresse des ersten aus dem Speicher zu
lesenden Worts auf dem MEMIN-Bus aus. Dies wird dargestellt
als ADDRESS1 auf dem MEMLN-Signal. In Verbindung hiermit
gibt die CPU auch das Signal FPMEM zur selben Zeit aus. Dieses Signal meldet der FPU, daß /jOO ns später Daten auf
dem MEMOUT-Bus verfügbar sein werden und daß die FPU diese Daten in ihr Arbeitsregister eintakten sollte. Das Signal
FPUCLK wird bei T = 100 unterbrochen (ist niedrig),und es bleibt niedrig; FPUCLK wird durch das im Zeitraum
zwischen ^tOO und 500 ns auftretende Signal CLR PAUSE
in den Zyklus hinein gestartet. Ungefähr 100 ns nach dem Auftreten von CLR PAUSE wird FPUCLK einen übergang von
einem niedrigen zu einem hohen Wert haben. Dieser übergang tritt zum Zeitpunkt T = 500 ns in Speicherauf ruf zyklus
auf· Zu dieser Zeit wird das erste Datenwort aus dem Speicher
in das Arbeiteregister der Gleitkommaeinheit getakte
werden· Diese Zyklen werden mit dem zweiten, dritten und vierten Wort wiederholt, das zum Zeitpunkt 700, 900 bzw,
1100 ns kommt«
Bei T = 200 gibt dieCPU die Adresse des zweiten Worts
(ADDRESS 2) auf dem MEMIN-Bus aus. Bei T = i±00 gibt die CPU die dritte Adresse (ADDRESS 3) auf dem MEMIN-Bus aus.
Bei T = 600 gibt die CPU die vierte Adresse (ADDRESS l\)
auf dem MEMIN-Bus aus. Diese vier Adressen entsprechen
030025/0752
den vier aufeinanderfolgenden Speicherplätzen im Speicher, von denen die Wörter gelesen werden· Wegen
einer bildlichen Darstellung dieser Wörter, wie sie in das Arbeitsregister geladen v/erden, wird auf Fig, 8 verwiesen·
Mit anderen Worten wird das Signal FPUCLK 75 ns später
einen hohen Wert annehmen als das Signal PAUSE im Zeitraum zwischen JjOO und 500 ns einen hohen Wert annimmt.
In diesem speziellen Fall läuft nun der FPU-Takt mit einer Zykluszeit von 200 ns, wobei er die entsprechenden
Daten 200 ns später eintaktet als das erste Datenwort eingetaktet worden ist. Man beachte, daß MEMCLK in
Schritten von 100 ns verzögert oder niedriggehalten werden kann durch die Signale MEMWAIT und MEMSORRY,
die durch die Hauptspeicher (vgl. Fig· I B) ausgegeben
werden· Wie bei den Zeitdiagrammen angegeben ist, wird
VALID DATA λ - h für jedes der vier vom Speicher in die
FPU geladenen Datenwörter l\00 ns nach dem Aussenden der
Adresse auf dem MEMIN-Bus erscheinen· Man beachte, daß
die Daten in das Arbeitsregister der Gleitkommaeinheit mit der ansteigenden Flanke von FPU CLK getaktet werden.
Diese Flanken erscheinen bei T = 500, 700, 900 bzw· 1100ns,
030025/0752
Als nächstes wird in Fornnt p. "in Schreibzyklus von der FPU
zum Speicher mit doppelter Genauigkeit beschrieben. Rpi T=O
beim Start des Speicheraufrufsyklus wird die CPU die Adresse,
in die die Daten eingeschrieben v/erden missen, auf dem fiEMIN-Bus zum Speicher liefern. Ebenfalls zu dieser Zeit
wird die CPU das Signal FPHEM an die FPU liefern. Diesen Signal meldet dtr FPU, daß 100 ns nach dem Empfing von FPHEM
die FPU das erste in die von der CPU gelieferte Adresse einzuschreibende Wort auf den HEMIN-Bus bringen soll. Diese
Zyklen werden drei weitere Haie wiederholt, so daß alle vier
16-Bit-Wörter Aor Glcitkommacinheit in aufeinanderfolgende
Stellen im Speicher geschrieben werden. Die Wiederholung des Signals auf dem HEHIN-Eus , das als VALID ADDR1 gezeigt ist,
wird durch die CPU erzeugt und geht zum Speicher. Das mit VALID DATA1 bezeichnete Signal wird von der FPU erzeugt und
wird von der FPU zum geeigneten Zeitpunkt idif den HEMBUS
gebracht, aber geht zum Speicher. Zusammengefasst liefert die CPU die Adresse fi'ir die in den Speicher einzuschreibenden
Daten und die FPII liefert die Daten, die an dit:Se
Speicherstellc geschrieben werden sollen.
Anhand des Formats C, das übertragung von der FPU zur· CPU
betitelt ist, wird die '!bertragung von Daten von der FPU zur
CPU beschrieben. Die CPU wird das Signal FPCPU ausgeben, d:s
dem Gleitkommaprozessor die Tatsache meldet , daß er Daten auf dem MEM&UT-Dus eine bestimmte Anzahl von Speichcrzyklen
nach dem Empfang dieses Signals und des Signals HEMSTAPT liefern soll. Die CPU wird auch das Signal IfJHSEL (Innibit
Select, Blockieren Auswahl) ausgegeben, das den Speicher1
daran hindert, Daten auf dem HEIlfiUT-Dus fur diesen speziel-
030025/0752
len Speicheraufrufbefehl zu liefen. Beim Empfang des Signals
VALID FPCPU wird die FPU Speicherzyklustaktimpulse zählen
und wird Daten auf dem MEMOUT-Bus vom Zeitpunkt T=IOO bis
500 liefern. Diese Daten werden durch das Signal FP DRIVE B auf den MEMOUT-Bus gebracht. Das Signal FPU CLK wird im
niedrigen Zustand gehalten, bis diese Daten zur CPU geliefert worden sind, zu welcher Zeit FPU CLK wieder zu laufen
beginnt. Mit anderen Worten werden Daten, beispielsweise vom Arbeitsregister, geliefert. Die Daten werden in das Arbeitaregister
geladen, und der FPU-Takt wird bis zum Empfang eines Signals VALID FPCPCU eingefroren. Beim Empfang dieses
Signals werden drei MEM-Takte abgewartet, bis diese Daten, die sich im Arbeitsregister befinden, auf den MEMOUT-Bus in
der Zeit von T=UOO bis 500 ns des Speicheraufrufzyklus gebracht werden; und die CPU speichert diese Daten bei Ts500
ns.
Schließlich wird unter Bezugnahme auf die Folge Format D, die übertragung von der CPU zur FPU zeigt, das diese Datenübertragung
erläuternde Zeitdiagramm beschrieben. Die Daten werden von der CPU zur FPU geschrieben. Der FPU-Takt wird in
seinem niedrigen Zustand mit dem Zyklus vor dem Beginn des Start des Speicheraufrufbefehls eingefroren. Die CPU wird
das Signal FPCPU aussenden, um der FPU zu melden, daß demnächst
Daten ankommen. Dies im Zusammenhang mit MEMSTART erzeugt das Signal VALID FPCPU, und 100 ns nach dem Empfang
dieses Signals taktet die FPU die Daten vom MEMIN-Bus in ihr
Arbeitsregister, wie gezeigt. In diesem speziellen Fall gibt die CPU das Signal INHSEL an den Speicher ab, um zu verhindern,
daß diese Daten zum Speicher geschrieben werden.
030025/0752
29Λ9375
Es versteht sich, daß in der gesamten Patentanmeldung der Balken oberhalb bestimmter Signale die übliche Bedeutung
einer Inversion hat; d.h., das Signal A ist das invertierte Signal A.
Zur Fig. 14A und 14B wird noch folgendes bemerkt:
1. MEMCLK kann in 100-ns-Schritten im niedrigen Zustand
gehalten werden durch
A) MEMWAIT
B) MEMSORRY.
2. Für einfache Genauigkeit werden zwei Wörter übertragen.
3. Für doppelte Genauigkeit werden vier Wörter übertragen.
^. Alle Zeiten sind in Nanosekunden angegeben.
Aus der Beschreibung des Zeitdiagramms und aus der übrigen Beschreibung dieser Anmeldung sollte deutlich werden, daß
die CPU und FPU mit dem Hauptspeicher in einer solchen Weise zusammenarbeiten, die es gestattet, daß die FPU fur die CPU
"transparent" im Sinne des Datenverarbeitungsbetriebs erscheint. Die CPU liefert Signale zu dem Hauptspeicher und
empfängt Signale vom Hauptspeicher auf dem MEMIN- und MEMOUT-Bus; die FPU, die auch zwischen den HEMIN- und
MEMOUT-Bus eingeschaltet ist, verkehrt mit dem Speicher und
mit der CPU derart, daß die Arbeit der CPU nicht gestört oder behindert wird.
030025/0752
Die Erfindung kann in anderen speziellen Ausführungsformen ohne Abweichung vom Geist und den wesentlichen Eigenschaften
der Erfindung verwirklicht sein. Daher sollen die vorliegenden Ausführungsformen in jeder Hinsicht als Erläuterung,
nicht jedoch als Beschränkung aufgefasst werden.
Der beschriebene erfindungsgemäße Gleitkommaprozessor oder die Gleitkommaeinheit (FPU) weist die Fähigkeit auf, sich
auf Exponent/Vorzeichen beziehende Rechnungen gleichzeitig mit sich auf die Mantisse beziehenden Rechnungen auszuführen.
Die Arbeitsweise der FPU im Zusammenhang eines digitalen Mehrzweckrechnersystems wurde gezeigt. Die FPU hat
Funktionsblöcke für Steuerung, Mantisse und Exponent/Vorzeichen, die einmalige bauliche Anordnungen und Verbindungen
untereinander aufweisen, und sie haben auch eine Schnittstellenstruktur zum Zuführen von System-Steuer- und Taktsignalen
zum Steuerungsblock. Die Tätigkeit der FPU wird zeitlich in einer besonderen Weise so gesteuert, daß ihre Tätigkeit
für die CPU transparent ist oder deren Tätigkeit nicht beeinträchtigt, wenn die FPU mit dem Hauptspeicher oder der
CPU in Übertragungsverbindung steht.
030025/0752
Claims (1)
- Pate ntansprt'cheGleitkommaeinheit (FPU) vom Durchführen von Gleitkommarechnungen innerhalb eines Datenverarbeitungssystems, dadurch gekennzeichnet, daß eine Steuereinrichtung (409) zum Liefern von Steuersignalen für die Gleitkommr-einheit vorgesehen ist, daß eine Mantisseneinrichtung (408) vorgesehen ist, die Mantissenzustandssignale fiir die Steuereinrichtung liefert, die in Abhängigkeit von Steuersignalen die Mantisse von Daten in einer ersten vorbestimmten Weise verarbeitet und ein Mrntissenergebnis liefert; und eine Exponent/Vorzeichen-Einrichtung (410), die Exponent/ Vorzeichen-Zustandssignale an die Steuereinrichtung liefert, die in Abhängigkeit von anderen Steuersignalen einen vom Mantissenteil verschiedenen Teil der Daten in einer zweiten vorbestimmten Weise gleichzeitig mit der Tätigkeit der Mnntisseneinrichtung verarbeitet und ein Exponent/Vorzeichen-Ergebnis liefert.Glcitkommaeinheit nach Anspruch 1, dadurch gekennzeichnet, daß das Datonvorarbeitungssystcm eine Zentraleinheit (CPU)Oi^) zum Verarbeiten der Daten und einen Hauptspeicher ("* 1 ~) aufweist, und daß die Gleitkommaeinheit aufweist:030025/0752ORIGINAL INSPECTEDEine Einrichtung zum Verbinden der Gleitkommaeinheit, der CPU und des Hauptspeichers mit Datenwegen; und eine Einrichtung zum Zuführen von Taktsignalen und Befehl/Zeitgeber-Signalen, die von der CPU abgeleitet sind, zu der Steuereinrichtung.Gleitkommaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß ein Befehls/Zeitgcber-Signal FPMEM und ein Taktsignal MEMCLK vorgesehen ist, und daß die Gleitkommaeinheit aufweist:Eine auf FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkommaeinheit bestimmte Daten aus dem Hauptspeicher auf dem MEMOUT-Bus empfangen soll und zum Erzeugen von anderen Zeitgebersignalen zum Bestimmen, wann das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis durch den Hauptspeicher auf dem MEMIN-Bus empfangen werden soll.Gleitkommaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß Befehl/Zeitgeber-Signale FPCPU, MEMSTART und FPMEM vorgesehen sind, daß ein Taktsignal MEMCLK vorgesehen ist, und daß die Gleitkommaeinheit aufweist:030025/0752Eine auf FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkomrnaeinheit bestimmte Daten aus dem Hauptspeicher auf dem MEMOUT-Bus empfangen soll und eine auf PFCPU, MEMSTART und MEMCLK ansprechende Einrichtung zum Erzeugen von anderen Zcitgebersignalen , um zu bestimmen, wann die CPU das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis auf dem MEHOUT-Bus empfangen soll.Gleitkommaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß Defehl/Zeitgeber-Signale FPCPU, MEMSTART und FPHEM vorgesehen sind, daß ein Taktsignal MEHCLK vorgesehen ist und daß die Gleitkommaeinheit aufweist: Eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von FPCPU, MEMCLK und MEMSTART zum Bestimmen, wann die Gleitkommaeinheit in der CPU gespeicherte Daten auf dem MEMTN-Bus empfangen soll und um andere Zeitgebersignale in Abhängigkeit von FPMEM und MEMCLK zu erzeugen zum Bestimmen, wann der Hauptspeicher das Mantissenergebnis und das Exponent/ Vorzeichen-Ergebnis von der Gleitkommaeinheit auf dem MEMIN-Bus empfangen soll.Gleitkomrnaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß Befehls/Zeitgeber-Signale FPCPU und MEMSTART vorgesehen sind, und daß das Taktsignal MEMCLK aufweist, dadurch gekennzeichnet , daß03C025/0752eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von FPCPÜ, NEMCLK und MEMSTART vorgesehen ist, um zu bestimmen, wann bestimmte in der CPU gespeicherte Daten von der Gleitkoramaeinheit auf dem MEMIH-Bus empfangen werden sollen, und um andere Zeitgebersignale zu erzeugen zum Bestimmen, wann die CPU das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis von der Gleitkommaeinheit auf dem MEMOUT-Bus empfangen soll.7. Gleitkommaeinheit nach einem der vorhergehenden Anspräche, dadurch gekennzeichnet, daß die Zeitgebersignale· und die anderen Zeitgebersignale die Signale PAUSE, CLR PAUSE, T100, T200, T300 und EN 1 und Funktionen von diesen aufweisen.8. Gleitkommaeinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Mantisseneinrichtung aufweist:Eine Einrichtung zum Empfangen der Daten von den Datenwegen und zum Senden des Mantissenergebnisses zu den Datenwegen;ein Arbeitsregister (468) zum zeitweiligen Speichern der Mantissenteile der Daten;einen Mikroprozessor-Slice (457) zum Empfangen der Mantissenteile aus dem Arbeitsregister und zum Verarbeiten der Mantissenteile;einen Multiplexer (460-46?) zum Kombinieren der verarbeiteten Mantissenteile mit den von der Empfangseinrichtung gelieferten Daten und zum Liefern der kombinierten Daten in das Arbeitsregister; und030025/0752eine Hexadezimal-Verschiebeeinrichtung (470) zum Empfangen der Mantissenteile der Daten aus dem Arbeitsregister und zum Empfangen eines Verschiebesignals aus der Exponent/Vorzeichen-Einrichtung, um die Mantissenteile im Arbeitsregister neu anzuordnen.9. Gleitkommaeinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Mantissenteile als Mehrzahl von Hexadezimalzeichen mit jeweils vier Bit gruppiert sind, daß die Hexadezimal-Verschiebeeinrichtung (H70) eine Einrichtung aufweist, um jedes Hexadezimalzeichen mit jedem anderen Hexadezimalzeichen auszutauschen.10. Gleitkoraraaeinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Hexadezimal-Verschiebeeinrichtung (^70) eine Einrichtung zum Empfangen des niedrigstwertigen Bits der vier Bits jede3 Zeichens aus dem Arbeitsregister (H6B) aufweist, und eine Einrichtung, um das niedrigstwertige Bit in die höchstwertige Bitposition eines anderen Zeichens zu leiten.11. Gleitkommaeinheit nach Anspruch 10, dadurch gekennzeichnet, daß die Taktsignale das Signal FPUCLK und einen Arbeitsregistertakt RCLK aufweisen, und daß eine Einrichtung zum Erhöhen der Arbeitsgeschwindigkeit der Einrichtung zum Empfangen des niedrigstwertigen Bits und der Einrichtung zum Leiten des niedrigstwertigen Bits an die Position des höchstwertigen Bits durch Vergrößern des RCLK gegenüber FPUCLK vorgesehen ist.030025/075212. Gleitkommaeinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Mantissenteile in Form einer Mehrzahl von Zeichen mit einer vorbestimmten Anzahl von Bit pro Zeichen gruppiert sind, daß die Hexadezimal-Verschiebeeinrichtung eine Einrichtung zum Ersetzen jedes der Zeichen durch jedes andere Zeichen aufweist .13. Gleitkommaeinheit nach Anspruch 11, dadurch gekennzeichnet, daß die Frequenz von RCLK das vierfache der Frequenz von FPUCLK beträgt.14. Gleitkommaeinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung (409) eine Einrichtung zum Empfangen von Zustandssignalen aufweist und in Abhängigkeit von der Tätigkeit der Befehlseinrichtung und den Zusignalen FPU-Steuersignale zur Steuerung der FPU liefert;daß die üantisseneinrichtung (408) zwischen einen Eingangsbus und einen Ausgangsbus eingeschaltet ist, daß sie eine Einrichtung zum Leiten bestimmter Daten zwischen den Bussen aufweist, daß sie eine Einrichtung zum Empfangen bestimmter FPU-Steuersignale von der Steuereinrichtung aufweist, eine Einrichtung zum Liefern des Beitrags der Mantisseneinrichtung zu den Zustandssignalen zur Steuereinrichtung, und daß sie in Abhängigkeit von den bestimmten FPU-Steuersignalen Mantissenteile der Dnten in einer ersten vorbestimmten V/eise verarbeitet; und030025/0752daß die Exponent/Vorzeichen-Einrichtung (410) eine Einrichtung zum Empfangen von anderen FPU-Steuersignalen aus der Steuereinrichtung aufweist, eine Einrichtung zum Liefern des Beitrags der Exponent/Vorzeichen-Einrichtung zu den Zustandssignalen zur Steuereinrichtung, daß die Exponent/Vorzeichen-Einrichtung in Abhängigkeit von den anderen FPU-Steucrsignalen andere aus der Mantisseneinrichtung empfangene Teile als die Mantissenteile in einer zweiten vorbestimmten Weise gleichzeitig mit der Tätigkeit der Mantisseneinrichtung verarbeitet;so daß die gleichzeitige Tätigkeit der Exponent/Vorzeichen-Einrichtung und der Mantisseneinrichtung unter Steuerung der Steuereinrichtung die Gleitkommarechnungen innerhalb des Datenverarbeitungssystems liefert.15. Gleitkommaeinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung aufweist:Eine Mikroprogrammsteuereinrichtung mit einer Mikroprogramm-Sequenzer- und Adresswahl-Einrichtung (415, 425) zum Kombinieren einer ersten Darstellung eines Befehls sowohl mit einer zweiten Darstellung des Beitrags der Mantisseneinrichtung zu den Zustandssignalen als auch einer dritten Darstellung des Beitrags der Exponent/Vorzeichen-Einrichtung zu den Zustandssignalen, um einen Satz von mikroprogrammierten Steuersignalen entsprechend jeder Operation der Mikroprogramm- Sequenzer- und Adressurihl-Einrichtung zu erzeugen ; und030025/0752J*ein Pipeline-Register (401, 405) zum Einrichten einer laufenden Steuerposition und einer nächsten folgenden Steuerposition, um 1. in der laufenden Steuerposition den nächsten am frühesten erzeugten Satz von mikroprogramraierten Steuersignalen als FPU-Stcuersignale zu speichern, um 2. in die nächste nachfolgende Steuerposition diesen Satz von mikroprogrammierten Steuersignalen zu laden, und um 3. den Satz von mikroproprammierten Steuersignalen zur laufenden Steuerposition beim Auftreten der allernächsten nachfolgenden Operation der Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung zu übertragen.16. Gleitkommaeinheit nach Anspruch 15, dadurch gekennzeichnet , daß die Mikroprogramm-Steuereinrichtung aufweist:Einen Steuerspeicher-ROM (419) mit einer Einrichtung zum Empfangen eines Eingangsadressensignals, das sich aus einer Tätigkeit der Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung ergibt, um eine erste vorbestimmte Gruppe des Satzes von mikroprogrammierten Steuersignalen zum Pipeline-Register (401, 405) zu liefern.17. Gleitkommaneinheit nach Anspruch 15 oder 16, dadurch gekennzeichnet, daß die Mikroprogramm-Steuereinrichtung aufweist:Einen Random-Zustands-Kontroller (427) mit einer Einrichtung zum Empfangen sowohl 1. eines Random-Zustands-Signals von der Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung und 2. einer zweiten vorbe-030025/0752stimmten Gruppe des Satzes von mikroprogrammierten Steuersignalen von dem Steuerspeicher-ROM (419), um decodierte Random-Zustands-Steuersignale mindestens zum Pipeline-Register (401, 405) zu liefern.18. Gleitkommaeinheit nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenz- und Adresswähl-Einrichtung aufweist: Eine Adressenauswahllogik (431) mit einer Einrichtung zum Empfangen von sowohl 1. eines Teils der zweiten Darstellung des Beitrags der Mantisseneinrichtung und eines Teils der dritten Darstellung des Beitrags der Exponenteneinrichtung zu den Zustandssignalen und 2. eine dritte vorbestimmte Gruppe des Satzes der mikroprogrammierten Steuersignale, um die Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung bei der Auswahl des nächsten nachfolgenden Eingangsadressensignals zu steuern.19. Gleitkommaeinheit nach Anspruch 18, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenzer-und Adresswähl-Einrichtung einen Mikroprogramm-Sequenzer(425) aufweist, der in Abhängigkeit von der steuernden Tätigkeit der Adressenauswahllogik erzeugt: 1. ein erstes Signal, das a)zum Steuerspeicher-ROM geleitet wird, b) zum Random-Zustands-Controller geleitet wird, und c) zurück zum Mikroprogramm-Sequenzer geführt wird, und 2. ein zweites Signal.030025/075220. Gleitkommaeinheit nach Anspruch 19, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenzer-und Adresswähl-Einrichtung aufweist:Einen Mikroprogramm-Wähler, der anspricht auf 1. das zweite Signal, 2. einen anderen Teil der zweiten Darstellung des Beitrags der Mantisseneinrichtung und einen anderen Teil der dritten Darstellung des Beitrags der Exponenten-Einrichtung zu den Zustandssignalen, 3. die erste Darstellung des Befehls, und 4. bestimmte FPU-Steuersignale von der laufenden Steuerposition im Pipeline-Register, um ein Mikroprograram-Wählersignal zu erzeugen, das empfangen werden soll durch a) den Steuerspeicher-ROM, b) den Random-Zustands-Kontroller, und c) den Mikroprogramm-Sequenzer; unddaß die Gleitkoiamaeinrichtung eine Einrichtung zum Verhindern der gleichzeitigen Erzeugung des ersten Signals und des Hikroprogramra-Wahlersignals aufweist.030025/0752
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/968,227 US4229801A (en) | 1978-12-11 | 1978-12-11 | Floating point processor having concurrent exponent/mantissa operation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2949375A1 true DE2949375A1 (de) | 1980-06-19 |
DE2949375C2 DE2949375C2 (de) | 1987-03-19 |
Family
ID=25513938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19792949375 Granted DE2949375A1 (de) | 1978-12-11 | 1979-12-07 | Gleitkommaprozessor |
Country Status (8)
Country | Link |
---|---|
US (1) | US4229801A (de) |
JP (1) | JPS5582351A (de) |
AU (1) | AU538983B2 (de) |
CA (1) | CA1123110A (de) |
DE (1) | DE2949375A1 (de) |
FR (1) | FR2447061B1 (de) |
GB (1) | GB2038049B (de) |
NL (1) | NL7908893A (de) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5776634A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Digital signal processor |
US4464716A (en) * | 1981-05-22 | 1984-08-07 | Data General Corporation | Digital data processing system using unique formatting techniques for performing arithmetic ALU operations |
US4468748A (en) * | 1981-06-11 | 1984-08-28 | Data General Corporation | Floating point computation unit having means for rounding the floating point computation result |
US4509116A (en) * | 1982-04-21 | 1985-04-02 | Digital Equipment Corporation | Special instruction processing unit for data processing system |
JPS59188740A (ja) * | 1983-04-11 | 1984-10-26 | Hitachi Ltd | フロ−テイング加算器 |
US4750110A (en) * | 1983-04-18 | 1988-06-07 | Motorola, Inc. | Method and apparatus for executing an instruction contingent upon a condition present in another data processor |
US4943940A (en) * | 1984-09-27 | 1990-07-24 | Advanced Micro Devices, Inc. | Floating point add/subtract and multiplying assemblies sharing common normalization, rounding and exponential apparatus |
US4758974A (en) * | 1985-01-29 | 1988-07-19 | American Telephone And Telegraph Company, At&T Bell Laboratories | Most significant digit location |
JPH07104771B2 (ja) * | 1985-05-10 | 1995-11-13 | 株式会社日立製作所 | 計算機 |
US5070475A (en) * | 1985-11-14 | 1991-12-03 | Data General Corporation | Floating point unit interface |
US4763294A (en) * | 1985-12-19 | 1988-08-09 | Wang Laboratories, Inc. | Method and apparatus for floating point operations |
US4858166A (en) * | 1986-09-19 | 1989-08-15 | Performance Semiconductor Corporation | Method and structure for performing floating point comparison |
US4884231A (en) * | 1986-09-26 | 1989-11-28 | Performance Semiconductor Corporation | Microprocessor system with extended arithmetic logic unit |
US4890253A (en) * | 1988-12-28 | 1989-12-26 | International Business Machines Corporation | Predetermination of result conditions of decimal operations |
US4999803A (en) * | 1989-06-29 | 1991-03-12 | Digital Equipment Corporation | Floating point arithmetic system and method |
US5253349A (en) * | 1991-01-30 | 1993-10-12 | International Business Machines Corporation | Decreasing processing time for type 1 dyadic instructions |
US5195052A (en) * | 1991-12-13 | 1993-03-16 | International Business Machines Corporation | Circuit and method for performing integer power operations |
JP3421933B2 (ja) * | 1994-10-31 | 2003-06-30 | 弘之 河▲崎▼ | 演算処理装置及び電子計算機 |
CN100412786C (zh) | 1994-12-02 | 2008-08-20 | 英特尔公司 | 可以对复合操作数进行压缩操作的微处理器 |
US5687340A (en) * | 1995-05-16 | 1997-11-11 | Hewlett-Packard Company | Reduced area floating point processor control logic utilizing a decoder between a control unit and the FPU |
US5857096A (en) * | 1995-12-19 | 1999-01-05 | Intel Corporation | Microarchitecture for implementing an instruction to clear the tags of a stack reference register file |
US5701508A (en) * | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
US6792523B1 (en) | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
US5940859A (en) * | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
US5852726A (en) * | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
US5835748A (en) * | 1995-12-19 | 1998-11-10 | Intel Corporation | Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file |
JP2000068834A (ja) | 1998-08-20 | 2000-03-03 | Hiroyuki Kawasaki | 信号変換方法及び信号変換器 |
US7254696B2 (en) * | 2002-12-12 | 2007-08-07 | Alacritech, Inc. | Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1549478B1 (de) * | 1966-09-13 | 1970-08-27 | Ibm | Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden |
DE2900324A1 (de) * | 1978-01-05 | 1979-07-19 | Honeywell Inf Systems | Mikroprogrammierbare arithmetische fliesskommaeinheit |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3557357A (en) * | 1967-07-14 | 1971-01-19 | Gen Electric | Data processing system having time-shared storage means |
US3697734A (en) * | 1970-07-28 | 1972-10-10 | Singer Co | Digital computer utilizing a plurality of parallel asynchronous arithmetic units |
CA1013861A (en) * | 1972-10-10 | 1977-07-12 | Adrianus J. Van De Goor | Special instruction processor |
US3871578A (en) * | 1972-10-10 | 1975-03-18 | Digital Equipment Corp | Data processing system for multiplying and intergerizing floating point numbers |
US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
US4128876A (en) * | 1977-04-28 | 1978-12-05 | International Business Machines Corporation | Synchronous microcode generated interface for system of microcoded data processors |
US4130879A (en) * | 1977-07-15 | 1978-12-19 | Honeywell Information Systems Inc. | Apparatus for performing floating point arithmetic operations using submultiple storage |
-
1978
- 1978-12-11 US US05/968,227 patent/US4229801A/en not_active Expired - Lifetime
-
1979
- 1979-10-26 AU AU52235/79A patent/AU538983B2/en not_active Ceased
- 1979-10-31 GB GB7937727A patent/GB2038049B/en not_active Expired
- 1979-11-28 CA CA340,790A patent/CA1123110A/en not_active Expired
- 1979-12-07 DE DE19792949375 patent/DE2949375A1/de active Granted
- 1979-12-10 FR FR7930652A patent/FR2447061B1/fr not_active Expired
- 1979-12-10 NL NL7908893A patent/NL7908893A/nl not_active Application Discontinuation
- 1979-12-11 JP JP15984779A patent/JPS5582351A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1549478B1 (de) * | 1966-09-13 | 1970-08-27 | Ibm | Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden |
DE2900324A1 (de) * | 1978-01-05 | 1979-07-19 | Honeywell Inf Systems | Mikroprogrammierbare arithmetische fliesskommaeinheit |
Non-Patent Citations (1)
Title |
---|
"Large Scale Integration", fourth EUROMICRO synposium on microprocessing ond microprogramming, Oct. 1978-Munich, North-Holland, Sn. 56 bis 64 * |
Also Published As
Publication number | Publication date |
---|---|
US4229801A (en) | 1980-10-21 |
NL7908893A (nl) | 1980-06-13 |
AU5223579A (en) | 1980-07-10 |
GB2038049B (en) | 1983-07-20 |
FR2447061A1 (fr) | 1980-08-14 |
FR2447061B1 (fr) | 1986-02-21 |
AU538983B2 (en) | 1984-09-06 |
GB2038049A (en) | 1980-07-16 |
JPH0128409B2 (de) | 1989-06-02 |
JPS5582351A (en) | 1980-06-21 |
DE2949375C2 (de) | 1987-03-19 |
CA1123110A (en) | 1982-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2949375A1 (de) | Gleitkommaprozessor | |
DE19735348B4 (de) | Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben | |
DE19735350B4 (de) | Vektorprozessor zum Ausführen paralleler Operationen und Verfahren hierfür | |
DE69233361T2 (de) | Ein-Chip-Mikrocomputer | |
DE2948668A1 (de) | Puffereinheit | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE3424962C2 (de) | ||
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
DE102013111605A1 (de) | Reduzierung des Leistungsverbrauchs in einer fusionierten Multiplizier-Addier-(FMA)-Einheit in Reaktion auf Eingangsdatenwerte | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE102014003790A1 (de) | Parallelvorrichtung für hochkomprimierte Hochgeschwindigkeits-LZ77-Tokenisierung und Huffman-Codierung für Deflate-Komprimierung | |
DE112013003743T5 (de) | Beschleunigte spurübergreifende Vektorreduzierungsbefehle | |
DE2837852A1 (de) | Mikroprogrammierbarer rechner mit parallel arbeitenden prozessoren | |
DE3709675C2 (de) | ||
DE102018124919A1 (de) | Skalierbare speicheroptimierte Hardware für Matrix-Solve | |
DE112013003741T5 (de) | Systeme, Vorrichtungen und Verfahren zum Durchführen einer Konfliktdetektion unf einer Übertragung von Inhalten eines Registers an Datenelementpositionen eines anderen Registers | |
DE102018125805A1 (de) | Systeme, verfahren, und vorrichtungen für skalarproduktoperationen | |
DE102018132521A1 (de) | Vorrichtung und verfahren zur verflachung und reduktion von schleifen in einer single instruction, multiple data- (simd-) pipeline | |
CH644461A5 (de) | Digitale multipliziereinrichtung. | |
DE2830334C2 (de) | ||
DE19735349B4 (de) | Vektorprozessor und Verfahren zu dessen Betrieb | |
DE60027395T2 (de) | Befehlsschleifenspuffer | |
DE69930893T2 (de) | Digitaler Signalprozessor für Daten mit grosser Bitlänge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |