DE2949375C2 - Datenbussystem für eine Datenverabeitungsanlage mit einer Gleitkommaeinheit in Pipeline-Struktur - Google Patents
Datenbussystem für eine Datenverabeitungsanlage mit einer Gleitkommaeinheit in Pipeline-StrukturInfo
- Publication number
- DE2949375C2 DE2949375C2 DE2949375A DE2949375A DE2949375C2 DE 2949375 C2 DE2949375 C2 DE 2949375C2 DE 2949375 A DE2949375 A DE 2949375A DE 2949375 A DE2949375 A DE 2949375A DE 2949375 C2 DE2949375 C2 DE 2949375C2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- fpu
- 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.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
- Die Erfindung betrifft ein Datenbussystem für eine Datenverarbeitungsanlage mit einer Gleitkommaeinheit (FPU) in Pipeline-Struktur, einer Zentraleinheit (CPU) und einem Hauptspeicher, die durch Datenwege miteinander verbunden sind, wobei die Gleitkommaeinheit eine Mantisseneinheit zur Verarbeitung der Mantissen von Daten zur Erzeugung eines Mantissenergebnisses und eine Exponent/Vorzeichen-Einheit zur Verarbeitung von einem vom Mantissenteil verschiedenen Teil der Daten zur Erzeugung eines Exponent/- Vorzeichen-Ergebnisses aufweist, und mit einer Steuereinrichtung für die Gleitkommaeinheit, der Mantissenzustandssignale durch die Mantisseneinheit und Exponent/Vorzeichen- Zustandssignale durch die Exponent/Vorzeichen-Einheit zugeführt werden, und die Steuersignale an diese Einheiten liefert, wobei die Verarbeitung der Mantissenteile und Exponenteile der Daten im wesentlichen gleichzeitig erfolgt.
- Derartige Systeme sind bekannt. So zeigt die DE-AS 15 49 478 ein derartiges System, bei dem ein einziger Ausgabebus und zwei getrennte Eingabebusse zur Eingabe der Mantisse und von Exponent und Vorzeichen in die Gleitkommaeinheit vorgesehen sind. Die DE-OS 29 00 324 zeigt einen einzigen Bus, der sowohl für die Eingabe als auch für die Ausgabe dient. Der Artikel "Large Scale Integration", fourth EUROMICRO symposium on microprocessing and microprogramming, October 1978-Munich, NORTH-HOLLAND, 1978, Seiten 56 bis 64, zeigt nicht die Anordnung der Busse, der Text deutet jedoch darauf hin, daß sowohl für die Mantisse als auch für Exponent und Vorzeichen getrennte Eingabebusse vorgesehen sind.
- Der Fachmann geht davon aus, daß eine schnellstmögliche Verarbeitung von Daten durch die Gleitkommaeinheit dann möglich ist, wenn die Mantissen und der Exponent gleichzeitig in die Gleitkommaeinheit gebracht werden, also über einen entsprechend breiten Bus oder, wie man diesen breiten Bus auch auffassen könnte, über einen Bus für die Mantisse und einen anderen Bus für den Exponenten. Derartige getrennte Busse sind jedoch mit den übrigen Einrichtungen der Datenverarbeitungsanlage schwer verträglich. So ist die Zusammenarbeit zwischen der Zentraleinheit und dem Hauptspeicher dann am Einfachsten zu verwirklichen, wenn ein einziger Adreß/Daten-Bus für den Zugang von der Zentraleinheit zum Hauptspeicher vorgesehen ist. Auf diesem einzigen Speicher-Eingangs-Bus werden die Adressen und Daten von der Zentraleinheit zum Hauptspeicher sequentiell transportiert. Ein einziger Ausgabebus vom Speicher zur Zentraleinheit reicht aus, weil die Leseadressen von der Zentraleinheit zum Hauptspeicher über den Speicher-Eingangs-Bus gebracht werden. Demgegenüber umfaßt eine einzige Datenübertragung zur Gleitkommaeinheit die Übertragung der Information mehrerer Speicherworte (Mantisse und Exponent). Beim Stand der Technik ergibt sich dabei durch die Mehrzahl der zu der Gleitkommaeinheit hin- und von dieser wegführenden Busse ein komplizierter Aufbau.
- Der Erfindung liegt ausgehend von dem eingangs genannten Datenbussystem, bei dem die mit der Gleichkommaeinheit verbundene Busstruktur von der zwischen dem Hauptspeicher und der Zentraleinheit angeordneten Busstruktur abweicht, die Aufgabe zugrunde, unter Beibehaltung einer hohen Arbeitsgeschwindigkeit der Gleitkommaeinheit den Aufbau des Systems zu vereinfachen.
- Diese Aufgabe wird dadurch gelöst, daß die Datenwege zwischen der Zentraleinheit, dem Hauptspeicher und der Gleitkommaeinheit durch jeweils einen einzigen Speichereingangs-Bus (MEMIN-Bus) und einen einzigen Speicherausgangs- Bus (MEMOUT-Bus) gebildet sind, wobei die Anzahl der Bits eines Gleitkommaworts größer ist als die Kapazität dieser Datenwege, und daß ein Gleitkommawort in die Gleitkommaeinheit (FPU) und aus der Gleitkommaeinheit in mehrere aufeinanderfolgende, jeweils bitparallel übertragene Abschnitte zerlegt über den jeweiligen Speicherbus transportierbar ist.
- Vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen zu entnehmen.
- Die zu und von der Gleitkommaeinheit (FPU) führenden Busse müssen nur die Kapazität des zwischen der Zentraleinheit und dem Hauptspeicher verlaufenden Busses haben. Weil eine Operation der Gleitkommaeinheit normalerweise mehrere Taktzyklen zur Ausführung benötigt, bewirkt die zusätzliche Verzögerung infolge der sequentiellen Übertragung des Gleitkommawortes keinen erheblichen Anstieg der zur Ausführung einer Gleitkommaoperation benötigten Zeit, obwohl die einzelnen Bestandteile eines Gleitkommaworts nicht gleichzeitig in die Gleitkommaeinrichtung gebracht werden.
- Weitere Vorteile der Erfindung liegen unter anderem in der einfachen Schnittstelle zwischen der Zentraleinheit oder dem Speicher und der Gleitkommaeinheit.Die Erfindung vereinfacht auch die Datenübertragungen zwischen der Zentraleinheit, dem Speicher und der Gleitkommaeinheit. So kann im Gegensatz zum Stand der Technik die Gleitkommaeinheit eine gemeinsame Verbindungsstelle (Schnittstelle) sowohl mit der Zentraleinheit als auch dem Speicher haben, und Daten können zwischen beliebigen zwei Komponenten der Datenverarbeitungsanlage (Zentraleinheit, Speicher, Gleitkommaeinheit) gleich leicht übertragen werden. Das Ergebnis ist somit ein System mit größerer Flexibilität.
- Gemäß einem weiteren Merkmal weist die Steuerarchitektur eine Microprogrammsteuerstruktur zum Erzeugen von Sätzen von Microprogrammsteuersignalen auf und eine Pipeline-Registerstruktur zur Unterstützung bei der schnellen Übertragung der Microsteuerprogrammsignale zu einer Steuerstelle zum Steuern der Tätigkeit der FPU.
- Es ist daher vorteilhaft, die vorliegende Erfindung innerhalb einer Datenverarbeitungsanlage zu verwenden, um diese zu befähigen, hohe Geschwindigkeiten und Wirkungsgrade bei der Behandlung von Daten erreichen.
- 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 simmultan durchgeführt werden, um einen höheren Gesamtwirkungsgrad der Operation zu erhalten.
- Weitere Vorteile der vorliegenden Erfindung werden anhand der Zeichnung in bevorzugten Ausführungsbeispielen beschrieben.
- Fig. 1A ist ein Blockschaltbild einer DVA mit einem Datenbussystem, mit dem die Gleitkommaeinheit FPU arbeitet;
- Fig. 1B ist eine Darstellung des Speichers der Fig. 1A, mit dem die FPU verkehrt;
- Fig. 2A ist ein Blockschaltbild der FPU, das die Verbindungen mit dem Blockschaltbild der Fig. 1 zeigt;
- Fig. 2B ist eine schematische Darstellung der Schnittstellenschaltung von Fig. 2A;
- Fig. 2C ist eine schematische Darstellung, die die Fließrichtung von Taktsignalen und bestimmten grundlegenden Verbindungssignalen zwischen der Stromversorgung, der FPU und der CPU zeigt;
- Fig. 3 zeigt ein genaueres Blockschaltbild der in Fig. 2A gezeigten Steuerung;
- Fig. 4 ist ein genaueres Blockschaltbild der in Fig. 2A gezeigten Exponent/Vorzeichen-Einheit;
- Fig. 5 ist ein genaueres Blockschaltbild der in Fig. 2A gezeigten Mantisseneinheit;
- Fig. 6 ist eine schematische Darstellung des Busausgabeformats des Steuerspeichers ROM 419;
- Fig. 7 ist ein Blockschaltbild des Arbeitsregisters 468, das in einer Stapelspeicherkonfiguration gezeigt ist;
- Fig. 8 ist eine schematische Darstellung eines Gleitkommaworts, wie es im Speicher 313 gespeichert würde, und in der Gleitkommaeinheit FPU dargestellt würde;
- Fig. 9 ist eine schematische Darstellung der 64-Überschußschreibweise, die bei der Behandlung durch die Exponentenfunktion verwendet wird;
- Fig. 10 ist eine schematische Darstellung eines nicht-normierten und des entsprechenden normierten Gleitkommaworts;
- Fig. 11 ist eine schematische Darstellung der das Arbeitsregister 468 bildenden Schaltung;
- Fig. 12 ist ein Blockschaltbild der Hexadezimal- Verschiebeeinrichtung 470;
- Fig. 13A und B ist eine schematische Darstellung der Schaltung innerhalb der Hexadezimal-Verschiebeeinrichtung 470; und
- 14A und B ist ein Zeitdiagramm, das verschiedene Taktsignale 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. 1A enthält ein als Speicher 311 bezeichneter Hauptspeicher eines Rechners 310 einen oder mehr Unterspeicher 313. Der Ausgang des Speichers 311 ist durch einen MEMOUT-Bus 318 mit Eingängen eines MEMOUT-Registers 340 in einer Zentraleinheit (CPU) 314 und eines Speichers 330 in einem PFP ( Bereitstellprozessor) 312 und mit einer FPU (Gleitkommaeinheit) in Fig. 2A (unten beschrieben) verbunden. Der MEMOUT- Bus 318 ist auch mit einer Fehlerkorrekturlogik (ERCC) 319 in der Zentraleinheit 314 verbunden. Der Ausgang eines MEMOUT-Registers 340 ist mit einem ALUIN-Bus 324 verbunden, und der Ausgang des PFP-Speichers 330 ist mit einem PFP-Bus 322 verbunden. Der PFP-Bus 322 ist mit dem ALUIN-Bus 324 über einen Transfer-Bus 348, einen Bus "kurze effektive Adresse" (EFA) 350 und ein Befehlsregister (IR) 346 verbunden. Der PFP-Bus 322 ist mit Eingängen einer Mikrobefehl-Logik 342 und einer Speicher-Zuordnungs- und -Schutz-Schaltung (MAP) 354 verbunden. Der Ausgang der Mikrobefehl-Logik 342 ist über ein Mikrobefehlregister (µRI) 344 mit einem Eingang einer arithmetischen und logischen Einheit (ALU) 356 und dem ALUIN-Bus 324 verbunden. Der ALUIN-Bus 324 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 354. Der ALUOUT-Bus 326 ist mit dem 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 364 und eines Registers 332 "Befehlszähler für den vom FPF abgerufenen Befehl (PCF)" verbunden. Der Ausgang des CPUPC-Registers 364 ist verbunden mit dem ALUIN-Bus 324, einem Eingang einer PFP-Bereit(PFPRDY)-Logik 334, und mit dem Leseadresseneingang des PFP-Speichers 330. Der Ausgang eines PFPPCF-Registers 332 ist mit einem anderen Eingang der PFPRDY-Logik 334 und mit dem Schreibadresseneingang des PFP-Speichers 330 verbunden. Der ALUOUT-Bus 326 ist mit einem Eingang eines MEMIN-Registers 362 über einen Bus 326 a verbunden, mit einem "Hoher Stellenwert Adresse" (HIADR)-Bus 328 durch einen Bus 326 b, und mit einem Eingang eines Registers 336 "Befehlszähler für den vom PFP angeforderten Befehl (PCR)". Die Ausgänge des MAP 354 sind mit dem ALUIN-Bus 324 und dem HIADR-Bus 328 verbunden. Der HIADR-Bus 328 ist mit dem ALUIN-Bus 324 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 490 in Fig. 2A (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 314 und den PFP 312 eingeschaltet. Ein Daten-E/A-Bus 368 ist mit 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 (UART) 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 Fig. 2A 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 Adressierung des Speichers 311 oder eine kartierte (MAPped) Adressierung verwendet. Beim direkten Adressieren werden die logischen Adreßbits 6-15 dem MEMIN-Register 362 durch den Bus 326 a zugeführt, die logischen Adreßbits 0-5 und die Bits 16-19 werden durch den Bus 326 b und den HIADR-Bus 328 hindurchgeliefert. Wenn eine Kartierung (MAPping) verwendet wird, werden die logischen Adreßbits 6-15 dem MEMIN-Register 362 von dem ALUOUT- Bus 326 und dem Bus 326 a zugeführt. Die logischen Adreßbits 1-5 werden von der ALU 356 der MAP 354 zugeführt. Die MAP 354 übersetzt die logischen Adreßbits 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 314 und dem Speicher 311 betrachtet. Der PFP 312 führt eine Befehlsvorausschau für die CPU 314 durch, indem er eine Folge von Befehlen vor dem augenblicklich durch die CPU 314 in Ausführung befindlichen Befehl aus dem Speicher 310 abruft und speichert. Die CPU 314 verfolgt das gerade ausgeführte Programm durch Speicherung eines Teils der logischen Adresse des gerade in der Ausführung befindlichen Befehls in dem CPUPC-Register 364; diese Zahl wird als CPU-Befehlszählerstand (CPUPC) bezeichnet. Der anfängliche Befehlszählerstand einer Befehlsfolge wird in das CPUPC-Register 364 von der ALU 356 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 364 geladen. Die echte Adresse des ersten Befehls der Befehlsfolge wird in das PFPPCR-Register 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 Adressen sind, wird die echte Adresse von der ALU 356 durch den Bus 326 c geliefert. Wenn die MAP 354 arbeitet, werden die Bits 6-15 durch den Bus 326 c und die kartierten Bits 1-5 und 6-19 durch den HIADR-Bus 328 hindurch von der MAP 354 her geladen. Zur gleichen Zeit werden die niedrigstwertigen Bits 12-15 der echten Adresse in das PFPPC 332 als PFPPCF geladen. Daher repräsentiert der Befehlszählerstand (CPUPC) die anfängliche 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 314 oder E/A-Geräten 316 benötigt wird, die 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 PFPPC 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 314 eingeschriebenen Adressen und gibt eine Warnung ab, falls die CPU 314 in die durch den PFP 312 angeforderten Befehlsadressen schreibt.
- Die Übertragung von Wörtern vom PFP-Speicher 330 zur CPU 314 wird durch das CPUPC-Register 364 und die PFPRDY- Logik 334 gesteuert. Die im CPUPC-Register 364 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 342 und das Befehlsregister 346 zur Benutzung verfügbar, wenn es vom Programm verlangt wird. Der PFPRDY 334 vergleicht PFPPCF-Schreibadressen mit CPUPC-Leseadressen und zeigt der CPU 314 an, ob der PFP 312 den von der CPU 314 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 348 gestattet es, daß Wörter auf dem PFP-Bus 322 direkt zur ALU 356 durch den ALUIN-Bus 324 ü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 324 als eine kurze effektive Adresse übertragen werden, d. h. zum Erzeugen einer Speicheradresse, die mit einer z. Zt. bekanntne Speicheradresse in Beziehung steht. Das Register 352 gestattet es, daß das Ausgangssignal der ALU 356 auf dem ALUOUT-Bus 326 auf den PFP-Bus 322 übertragen wird, beispielsweise als Eingangssignal für die Mikrobefehl-Logik 342, das Befehlsregister 346 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 für die ALU 356 angeordnet werden. Der Transferbus 366 gestattet es, daß eine Adresse auf dem HIADR-Bus 328 auf den ALUIN-Bus 324 ü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 370 und 372 gestatten es, daß Daten zwischen dem ALUIN-Bus 324 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 324 oder dem ALUOUT-Bus 326 und einem externen Gerät, das am E/A-ASCII-Bus 374 angeschlossen ist. Der Konsolen-ROM 358 ist ein Interface- Gerä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 324 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 490 steuernde Befehle gespeichert werden.
- In Fig. 1B ist ein Blockschaltbild eines Unterspeichers 313 gezeigt. Die Organisation des Unterspeichers 313 weist vier identische Speichermodule 512, 514, 516 und 518 auf. Die Module 514, 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 518 anhand des Moduls 512 disktuiert. Daten- und Adreß-Busse werden 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 524, ein Zeilenandreß-Speicher-Flipflop (latch) 526, ein Spaltenadreß-Speicher-Flipflop 528 und Speicher-Treiberschaltungen 532 auf. Jede Speicherbank 520 und 522 mag 21 Speicherelemente aufweisen. Jedes Element kann ein Speicher mit wahlfreiem Zugriff (RAM) mit einer Länge von 16 K (16384 Wörter) und einer Breite von 1 Bit sein, der intern eine Anordnung mit 128 Zeilen mal 128 Spalten aufweist. Die 21 Speicherelemente sind daher in der Lage, 16 K 21-Bit-Wörter zu speichern. Der MEMIN-Bus 320 führt von der CPU, dem PFP, und der FPU zu Eingängen einer Pufferschaltung 534, 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.
- Ein Leiterplatten-, Modul- und Bank-Auswahlbus (BMS-Bus 539) ist zwischen den MI-Bus 535 und Eingänge einer Speicher- Logik 538 eingeschaltet. Ein Zeilenadreß(RA)-Bus 527 und ein Spaltenadreß(CA)-Bus 529 verlaufen vom MI-Bus 535 zu Eingängen der Zeilenadreß-Speicher-Flipflops 526 bzw. der Spaltenadreß-Speicher-Flipflops 528 der Module 512 bis 518. Die Ausgänge der Speicher-Flipflops 526 und 528 werden als Adreß-Bus (ADR)-Bus 530 zu Eingängen der Treiberschaltungen 532 geführt. Ein Adressen- Auffrisch-Bus 531 (REFADR-Bus) von der Speicherlogik 538 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 (MUX) 540 verbunden. Ein Multiplexerausgang-(MO)-Bus 541 ist mit Eingängen von Ausgaberegistern 542 bis 548 verbunden. Registerausgangs-(RO)- Busse 543 bis 549 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 MOENB (aus Gründen der Deutlichkeit der Darstellung nicht gezeigt) ist vom Ausgang der Bustreiberschaltung 550 zu einem Eingang, beispielsweise der CPU 314, geführt.
- Der Steuer- und Takt(CC)-Bus 321 ist zwischen die 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 558 ist mit Eingängen der Zeitgebergeneratoren 524 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 540, der Ausgaberegister 542 bis 548 und der Bustreiberschaltung 550 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.
- Adreßmultiplexer(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 der Fig. 2A sein, weil die FPU mit dem übrigen Datenverarbeitungssystem über die Busse MEMIN/MEMOUT des Hauptspeichers verbunden ist. Es wird nun auf Fig. 2A Bezug genommen.
- Der MEMOUT-Bus 318 ist eine Verlängerung des MEMOUT- Busses 318 der Fig. 1B. Der MEMIN-Bus 320 ist eine Verlängerung des MEMIN-Busses 320 der Fig. 1B. Ein MEMOUT-Erweiterungsbus 402 verbindet den MEMOUT-Bus 318 mit einem Mantissenblock 408. In gleicher Weise verbindet ein MEMIN-Erweiterungsbus 406 den MEMIN-Bus 320 mit dem Mantissenblock 408. Innerhalb des Mantissenblocks 408 ist ein FPAC 408 a 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 400, der auch in Fig. 1A als ein vom Befehlsregister 346 Befehle erhaltender Bus gezeigt ist. Die Steuerung 409 ist über einen Ausgang 401 mit dem Mantissenblock 408 verbunden, wie in Fig. 2A 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 200 a 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 200 a zurückübertragen werden. Ein Bus 400 a liefert Eingangssignale für den Schnittstellenblock 200 von einem in Fig. 1A gezeigten Mikrobefehlsregister (µIR) 344, und ein Bus 400 b liefert Ausgangssignale vom Schnittstellenblock 200 zur Mikrobefehllogik 342, die wiederum in Fig. 1A gezeigt ist. Der Schnittstellenblock 200 leitet auch Taktsignale aus den dargestellten Takteingangssignalen ab, die von der Stromversorgung 300 in Fig. 1A geliefert werden. Eine weitere Beschreibung dieser Taktsignale folgt später.
- Die Ausgangssignale des Mantissenblocks 408 werden über einen Hexadezimal-Null-Bus 407 und einen Arbeitsregisterbus 404 zu der Exponent/Vorzeichen-Schaltung 410 geliefert. Das Ausgangssignal der Exponent/Vorzeichen-Schaltung 410 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 410 a 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. 2A gezeigt ist.
- Es wird weiterhin auf Fig. 2A Bezug genommen. Während des Betriebs werden Dateneingangssignale von dem MEMIN- Bus 320 oder dem MEMOUT-Bus 318 zur Gleitkommaeinheit 490 über die Mantissenschaltung 408 geliefert, und spezielle über das im Mantissenblock 408 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 408 a gespeichert sind, über den Arbeitsregister-Bus 404 ebenfalls in der Exponent/ Vorzeichen-Schaltung 410 und speziell in den ausgewählten Registern des FPAC 410 a gespeichert. Dieses Laden von bestimmten Registern und Akkumulatoren sowohl in der Mantissenschaltung 408 als auch der Exponent/ Vorzeichen-Schaltung 410 hängt ab von einem speziellen Befehl, der mittels der Steuerung 409 von dem Befehlsbus 400 abgeleitet wird und durch Ausgänge 401 und 405 geleitet wird.
- Der nächste folgende Makrobefehl wird durch den Befehlsbus 400 aus dem Befehlsregister 346 der Fig. 1A empfangen. Dieser nächste Befehl wird zeitweilig in einem in Fig. 2A nicht gezeigten Befehlsregister gespeichert, das innerhalb der Steuerung 409 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 401 und 405 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 409 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 geliefert und innerhalb der FPU gespeichert, bis es bei der gesamten Rechenoperation für weiter folgende Befehle vom Befehlsregister 346 von Fig. 1A 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 Disukussion zunächst auf die CPU/ FPU-Schnittstellen-Steuer- und Takt-Schaltung 200 gerichtet. In diesem Zusammenhang wird auf Fig. 2C 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. Die 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), FPSKIP 1 und FPSKIP 2.
- PCPU 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 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 ist ein Signal, das von der CPU in zwei Fällen abgegben 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, Gleitkommabefehl) wird durch die CPU erzeugt, um der FPU zu melden, daß auf dem Befehlsbus 400 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 Gleitkommabefehl beendet ist, oder es bewirkt dieses Signal, 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. FPSKP 1 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. FPSKP 2 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. 2C sind die vier Signale MEMCLK, 40 CLK, 20 CLK und 10 CLK noch nicht diskutiert. MEMCLK ist ein Taktsignal, das dieselbe Frequenz wie 10 CLK hat, nämlich 10 MHz, aber es ist dies ein Tatsignal, das durch den Speicher je nach den Anforderungen 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 100-ns-Zeitintervallen auftreten können. Die Taktsignale 40 CLK, 20 CLK und 10 CLK sind einfache Taktsignale von 40 MHz, 20 MHz bzw. 10 MHz. Diese Taktsignale werden offenbar von der Stromversorgung 300 direkt zur FPU 490 geliefert.
- Als nächstes wird auf Fig. 2B 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 und Inverter. Jene Signale, die oben anhand der Fig. 2C nicht besprochen wurden, werden in Verbindung mit dieser Schaltung besprochen.
- WRITEPCU 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, daß 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 10 CLK auf und fällt 75 ns nach der ansteigenden Flanke von 10 CLK. T 100, T 200, T 300 sind interne Zeitgebersignale, die verwendet werden, um anzuzeigen, daß 100, 200 bzw. 300 ns verstrichen sind, seit 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. F 10 CLK und F 20 CLK sind zwei Taktsignale, die identisch mit 10 CLK bzw. 20 CLK sind; diese Signale werden in der Gleitkommaeinheit intern verwendet. TRAP ist ein durch die Gleitkommaeinheit erzeugtes Signal zur Anzeige, das 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.
- CREN ist ein Signal, das verwendet wird, um die Registeraktivierung zu löschen. 150 EN ist ein von der Schnittstelle ausgegebenes Signal zur Anzeige, daß 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 irgendwelche Startadressen in das Startadressenregister zu laden. CRE ist ein zum Erzeugen des 150-ns-Invertalls 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 Leerlaufzustandsadresse 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. 2A, nämlich des Steuerblocks 409, des Mantissenblocks 408, und des Exponent/Vorzeichen-Blocks 410. Es wird nun auf Fig. 3 Bezug genommen, in der die die Steuerfunktion bildende Architektur gezeigt ist. Der Befehlsbus 400 liefert ein Eingangssignal an den übrigen Teil der Steuerschaltung mittels eines Gleitkommabefehlsregisters 411, um sowohl eine Adressendecodier-ROM 412 als auch ein Register 428 "Quellen- und Ziel- Akkumulatoren" zu starten. (In den Fig. 3, 4 und 5 ist bei allen Busverbindungen die jeweilige Bitkapazität durch die Zahl bezeichnet, die bei einer einen Teil des Busses schneidende Linie steht. Beispielsweise überträgt der das Register 428 und den Logikblock 429 verbindende Bus 434 vier Bits.) Das Ausgangssignal des Decodier-ROM 412 wird einem Startadressenregister 413 über einen 8-Bit-But zugeführt. Das Ausgangssignal des Startadressenregisters 413 wird über eine Startadressenbus 414 zu einem Mikroprogrammadressenwähler 415 als dessen eines Eingangssignal geliefert. Ein zweites Eingangssignal des Mikroprogrammadressenwählers 415 wird von einem N-fach-Zweig-Steuer-ROM 422 über einen N-fach- Zweig-Adreßbus 423 erhalten. Die Steuer-ROMs 422 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 Fig. 3 aufgelistet). Das Ausgangssignal des Mikroprogrammadressenwählers 415 wird über einen Bus 417 und einen Bus 418 zu Steuerspeicher-ROMs 419 geliefert.
- Im linken unteren Teil dieses Schaltbilds liefert ein Quellen- und Ziel-Akumulatoren-Register 428 über einen oben erwähnten Bus 434 ein Ausgangssignal an eine FPAC-Adressen-Wähllogik 429. Ein zweites Eingangssignal dieser Logik wird von einem Mikroprogrammdatenbus 420 abgeleitet und von ausgewählten Bits innerhalb dieses Busses; (gemäß der Darstellung im rechten oberen Teil der Zeichnung enthält der Bus 420 72 Bits, von denen 8 Bits von der FPAC-Adressenwähllogik 429 verwendet werden). Das Ausgangssignal der Logik 429 wird über einen FPAC-Wählbus 435 zu einem Pipeline-Register 401 und 405 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 430 geliefert; (wiederum werden diese Signale unmittelbar anschließend an die Beschreibung der Verbindungen der Fig. 3 angegeben). Das Ausgangssignal des Prüfmultiplexers 430 ist ein Eingangssignal mit einem einzelnen Bit für einen Adressenauswahllogikblock 431, der ein Register und einen Multiplexer aufweist. Andere Eingangssignale für diesen Logikblock werden mittels "Wahr-" und "Falsch"-Busleitungen vom Mikroprogrammdatenbus 420 abgeleitet, wobei diese Wahr- und Falsch-Busleitungen jeweils vier Informationsbits aufweisen. Das Ausgangssignal der Adressenauswahllogik 431 wird über einen 4-Bit-Steueradressenauswähl- Bus 432 zu einem Mikroprogramm-Sequenzerzeuger ( Sequenzer) 425 geliefert. Schließlich wird das Ausgangssignal des Sequenzerzeugers 425 über einen 3-Bit-Steueradreßauswähl-Bus 424 zum Mikroprogrammadressenwähler 415 geliefert. Der Wähler 415 und der Sequenzer 425 bilden in Kombination eine Mikroprogramm-Kontroller- Einrichtung.
- Das Pipeline-Register 401 und 405 empfängt ein Eingangssignal mit 72 Bit vom Mikoprogrammdatenbus 420 und ein Eingangssignal mit 40 Bit von einem wahlfreien Zustands- Kontroller 427 (random starte controller). Die Ausgänge des Pipeline-Registers liefern Eingangssignale an einen Exponent/ Mantissen-Quellen-Zeit-Adressenbus 436 und zu einem Zweigadressenbus 416, der das dritte Eingangssignal für den Mikroprogrammadressenwähler 415 liefert.
- Dieser Absatz enthält Definitionen von verschiedenen Signalen, die am Eingang der N-fach-Zweig-Steuer-ROMs 422 in Fig. 3 erscheinen: OUR (außerhalb des Bereichs) ist 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; SGNR (Ergebnis-Vorzeichen) ist ein Signal, das das Vorzeichen der Zweier-Quellen- und -Ziel-Exponenten vergleicht; AOS (Addition oder Subtraktion) ist ein Signal, das anzeigt, daß die augenblickliche Operation eine Addition oder Substration ist; D 8 ist ein Signal, das das höchstwertige Bit des Mantissenworts anzeigt; EAO ist ein Signal, das das Vorzeichenbit des Zielakkumulators 428 repräsentiert; FT 0, FT 1, FT 2 und FT 3 sind Signale, die Gleitkommaübertragungen zum Hauptspeicher repräsentieren, wobei Null anzeigen soll, daß die Inhalte des ersten Gleitkommaakumulators ü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 408 a 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 Zusammenhang mit Fig. 10 noch mehr gesagt).
- In diesem Absatz ist eine Definition der Signale gegeben, die am Eingang des Prüfmultiplexeres 430 erscheinen.
- FCO (Fraction Carry OUT) ist ein Signal, das einen Austrag 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; D 8, 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; EN 4 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 FT 3 (Gleitübertragung 3) 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 Fig. 4 und 5 fortgefahren wird, mag es instruktiv sein, an dieser Stelle eine Beschreibung der Arbeitsweise der Mikroprogramm-Kontroller-Einrichtung (Wähler 415 und Sequenzer 425) einzufügen, die in Fig. 3 gezeigt und oben beschrieben sind. Diese beiden Komponenten sind als Teile 74S253 bzw. AMD2911 im Handel erhältlich. Für diese Beschreibung der Arbeitsweise wird auf Tabelle 1 Bezug genommen. Gleitkommaeinheit, Mikroadreß-Auswahl
- Die Terminologie der Tabelle 1 ist folgendermaßen definiert:
- 1) STK 0 ist die Speicherstelle, die von dem Stapelzeiger adressiert ist, der im Sequenzer 425 angeordnet ist;
- 2) X = nicht beachten (den Inhalt von STK 0, und nicht beachten, welcher Wert er zu dieser Zeit hat);
- 3) M-PC = im Sequenzer 425 angeordneter Mikroprogrammzähler;
- 4) ADDR = Mikroprogrammadresse auf dem Bus 418;
- 5) J = Inhalt von STKO 0;
- 6) K = Inhalt von STK 1 (STK 0 ist die erste Stelle, STK 1 ist die zweite, usw.);
- 7) N = augenblicklicher Wert des Mikroprogrammzählers im Sequenzer 425;
- 8) SA = Startadresse im Register 413;
- 9) BA = Zweigadresse im Zweigadressenbus 416;
- 10) N-WAY = die Mikroprogrammadresse wird eine von 255 möglichen Adressen auf dem Bus 423 sein, die durch Maschinenprüfbedingungen bestimmt werden;
- 11) EXEC. = Ausführungszyklus des laufenden Mikrobefehls;
- 12) FETCH = das Abrufen der nächsten Mikroprogrammadresse während des Ausführungszyklus des laufenden Befehls;
- 13) POPJ = Pop-Sprung;
- 14) PUSHJ = Push-Sprung; und
- 15) PCONT = push continue.
- Tabelle faßt die Tätigkeit des Adressenwählers 415 und des Sequenzers 425 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 MS 0 bis MS 3 auf dem Bus 432 gesteuert wird.
- In Tabelle 1 bedeutet PCONT: Speichere (Push) den Mikrobefehlszählerstand "oben" in den Stapelregistern STK 0 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 (STK 0) wird seinen augenblicklichen Inhalt (J) unverändert enthalten, und die Adresse wird der laufende Mikrobefehlszählerstand M-PC (N) sein. Beim Abrufen des nächsten Befehls während dieser PCONT-Ausführung wird M-PC um 1 inkrementiert (N + 1), und STK 0 wird M-PC plus eins empfangen.
- Der CONT-Zyklus ist der Continue-Zyklus ( Fortsetzungszyklus), dabei ist die Mikroadresse der gegenwärtige Wert von M-PC. Es tritt keine Änderung in STK 0 ein. Beim gleichzeitigen Fetch-Zyklus (Abrufzyklus) wird N + 1 in das M-PC geladen. Die hauptsächliche Verwendung ist die Ausführung von aufeinanderfolgenden Befehlen durch den Mikrocode.
- POPJ ist der nächste Zyklus, in dem die Inhalte von STK 1 die Inhalte von STK 0 werden. Während seiner gleichzeitigen Fetch-Operation wird M-PC die früheren Inhalte von STK 0 enthalten, die als J + 1 bezeichnet sind, und STK 0 wird die früheren Inhalte von STK 1 enthalten.
- LOOP ist der nächste Befehlszyklus oder Zustand, und er wird die Inhalte von STK 0 zum Mikroadreßbus liefern. Diese Adresse wird ständig dem Mikroprogrammadreßbus, der im Block 415 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 413 dem im Block 415 angeordneten Mikroprogrammadreßbus angeboten. Der M-PC (Mikroprogrammzähler, Mikrobefehlzähler) wird beim Fetch-Vorgang des nächsten Befehls die Startadresse +1 enthalten. STK 0 wird "nicht zu beachtende" Daten enthalten, die nicht verwendet werden.
- PUSHJ wird verwendet, um in ein Unterprogramm einzutreten, und dann eine Rückkehrverbindung zum oberen Ende von STK 0 zu liefern. Der laufende Mikrobefehlszählerstand plus eins wird in den STK 0 (mit Push) geschoben, und die laufende Mikroadresse wird durch den Zweigadreß(BA)-Bus 416 dem Mikroprogrammadreßwähler 415 zugeführt.
- Ein N-WAY(N-fach)-Adreßbus 423 liefert die laufende Adresse auf dem Mikroprogrammadreßbus; und dem 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 BA + 1 (Zweigadresse plus eins) erhalten.
- Nachdem somit die allgemeine Verbindung der Komponenten innerhalb des Steuerungsblockschaltbilds der Gleitkommaeinheit und die Wirkungsweise der Mikroadressenauswahlschaltung der Gleitkommaeinheit beschrieben sind, wird als nächstes auf den Exponent/Vorzeichen-Teil des Blockdiagramms der Gleitkommaeinheit, Fig. 4, Bezug genommen. In der linken oberen Ecke von Fig. 4 empfängt ein Exponent/Vorzeichen-Datenmultiplexer 437 drei Eingangssignale von drei Bussen, dem Bus 404 e vom Arbeitsregister (Fig. 5, wird später besprochen), dem Exponenten-Funktin-Bus 449, und dem Exponenten-Multiplexer-Bus 447. Das Ausgangssignal von Exponent/ Vorzeichen des Datenmultiplexers 437 wird über einen 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-Adreßbus 440 gewonnen. Eine Vorzeichensteuerung 441 empfängt ein Eingangssignal vom Vorzeichenspeicherblock 439 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 444 zu einer Exponent-ALU 448 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 446 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 457 (Fig. 5, wird später besprochen) abgeleitet wird, liefert ein Eingangssignal an einen Hexadezimal-Verschiebungs- Prioritätscodierer 453, dessen Ausgangssignal über einen Bus 454 zum Hexadezimal-Verschiebungs-Code-Eingangs-Bus 403 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 Blocks stammen vom Mantissen-Quellen/Ziel-Adreß-Bus 458 und vom Arbeitsregister-Bus 404. Die Ausgangssignale des Mikroprozessor-Slice 457 werden über den Hexadezimal-Null- Bus 407 zurück zur Fig. 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, 461, 462 und 463. Diese Eingangssignale werden über Busse 459 a, 459 b, 459c bzw. 459 d geliefert. Andere Eingangssignale für diese Multiplexer werden vom Arbeitsregister-Bus 404 a bzw. von Eingangsbusse 404 b, 404 c und 404 d 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 474 a abgeleitet. Eingangssignale für diesen Multiplexer werden vom MEMIN-Bu 320 und MEMOUT-Bus 318 abgeleitet, die wiederum ihre Eingangssignale von einem MEMIN-Bustreiber 472 bzw. einem MEMOUT-Bustreiber 473 ableiten. Der MEMIN-Bustreiber 472 leitet seine Eingangssignale von Bussen 474 b und 472 d ab, dies gilt auch für den MEMOUT-Bustreiber 473. Die Ausgangssignale der Multiplexer 460, 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 Ausgangssignal des Arbeitsregisters 468 wird auf dem Bus 472 d geliefert und liefert die Arbeitsregisterbits 8 bis 15, die Eingangssignale für den MEMIN-Treiber 472 bzw. den MEMOUT-Treiber 473.
- Schließlich wird ein Ausgangssignal der Hexadezimal-Verschiebeeinrichtung 470 auf einen Hexadezimal-Verschiebeeinrichtung-Ausgabe-Bus 471 geleitet, der zurück zum Arbeitsregister 468 verbunden ist. Die Schaltung der Fig. 3, 4 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 zu sein, eine Besprechung der Fig. 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 420 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 457 zugeführt wird. Die Gruppe MANTISSA ALU FUNCTION hat drei Bits, die die ALU- Funktion innerhalb des Mikroprozessor-Slice-Blocks 457 steuern. Die Gruppe MANTISSA ALU SOURCE hat drei Bits und steuert die Quellen-ALU für den Mikroprozessor-Slice-Block 457. Die nächste Gruppe MANTISSA ALU DESTINATION verwendet der Bits zum Steuern des Zielakkumulators innerhalb des Mikroprozessor-Slice-Blocks 457.Die Gruppe MANTISSA ADRESS SOURCE verwendet drei Bits zum Steuern des Quellenakkumulators im Mikroprozessor-Slice-Block 457. EXPONENT ADRESS SOURCE enthält drei Bits, die die Adreßquelle 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 MICROADDRESS 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 Exponent/Multiplexer-Block 445 (Fig. 4) benutzten Konstanten verwendet. Das WORKING REGISTER CONTROL-Feld 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 430 (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 würden. Die nächste Gruppe RANDOM FIELD, weist sechs Bits auf, die eine RANDOM-Steuerung oder wahlfreie Steuerung liefern, die in der ganzen FPU decodiert werden muß, und weiterhin aktiviert sie 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. 1A) enthaltene Wörter sind. Ein Block 804 ist der größte Teil des in der Gleitkommaeinheit enthaltenen Gleitkommaworts und entspricht den Wörtern 800 bis 803 gemäß der Darstellung. Die verschiedene Blöcke verbindenden Pfeile zeigen, wie Wörter im Speicher zum geeigneten FPAC übertragen werden, damit sie durch die Gleitkommaprozessor bei der Durchführung seiner verschiedenen Rechnungen verwendet werden können. Zusätzliche Bits 64 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ätzlichen Plätze verfügbar, falls das Gleitkommatwort zusätzlich Platz für die Behandlung benötigt, und hierdurch geht die zusätzliche Genauigkeit oder Präzision bei einer 4-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 410 a des Abschnitts Exponent/Vorzeichen (Fig. 2A) empfangen werden. Dieses Byte wird in dem durch die Befehlsregister-Bits 3 und 4 ausgewählten Zielakkumulator enthalten sein. Das niedrigwertige Byte des Worts 800 und der Wörter 801, 802 und 803 wird im Mantissenblock 408 (Fig. 2A) 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 800 bis 803, die in einen der FPACs in der Fig. 2A in einer besonderen Weise gebracht werden, so daß das Wort 800 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 408 oder 410 a enthalten.
- Als nächstes wird anhand der Fig. 9 eine Diskussion der "64-Überschuß-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 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, 64 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-64. Um jedoch die Zahl genau zu charakterisieren, ist das Vorzeichen des Exponenten äußerst wichtig. Wenn man das Vorzeichen des Exponenten beibehalten würde, würden die Stellen nicht wirkungsvoll verwendet. Es wird das Schema der 64-Überschuß-Darstellung verwendet, um sich die Forderung zu ersparen, das Vorzeichen des Exponenten während der Rechnungen mitzuführen. Im wesentlichen wird der Wert 64 zum Absolutwert im Exponenten addiert und in der folgenden Weise interpretiert. Wenn in Fig. 9 der Exponent den Wert 64 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 -64 interpretiert. Wie in Fig. 9 gezeigt ist, sind negative Exponenten Werte, die größer oder gleich Null und kleiner als 64 sind. Positive Exponenten sind 64 bis 127.
- In Fig. 10 ist ein normalisiertes und ein unnormalisiertes Gleitkommawort gezeigt. Beim unnormalisierten Wort ist der Exponent gleich 71 - 64 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 64 unter Verwendung von normalen Binärumsetzungstechniken.
- Im Gegensatz dazu ist im normalisierten Wort der Exponent gleich 68 - 64 oder 4. 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 verwendet, 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 unnormalisierte Zahl, die durch 3/65536 × 167 repräsentiert wird, anfänglich in den PFAC 408 a oder 410 a 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/215 + 1/216, oder 2/216 + 1/216, oder 3/216, und 2H16 ist gleich 65536. Die Normalisierung erfolgt, wenn das führende Hexadezimalzeichen ein von Null verschiedener Wert ist, wie die normalisierte Darstellung in Fig. 10 zeigt. Weil das erste von Null verschiedene Hexadezimalzeichen drei Plätze nach links bewegt wird, wird der Exponent in seinem Wert um drei verringert, daher ist der Exponent nun gleich 68 -64 = 4. Die Mantisse ist nun gleich 1/23 + 1/24, also 3/16. Der wichtige Punkt ist, daß 3/16 × 164, das ist der Wert der normalisierten Zahl, genau gleich ist 3/65536 × 167; dies kann durch einfache Rechnung überprüft werden.
- 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 Fig. 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 sie 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 Gleitkommafehlerzustand 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 ein Befehl, der den augenblicklichen Inhalt der Gleitkommaeinheit in einen 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 zuü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;
- 4. FPU ist mit der Verarbeitung eines früheren Befehls 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) diskutiert.
- Es wird, wie oben vermerkt, auf die Fig. 3 bis 5 und 7 Bezug genommen und angenommen, daß ein Rechnerbefehl einen Gleitkommabefehl enthält, zuerst den FPAC Null zu laden ( Fig. 5: 475 und Fig. 4: 439; die FPACs der Fig. 2A sind in diesen Blöcken angeordnet). Für die erste Operandenzahl, beispielsweise 1/16 × 105, 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 den Startadressenbus 414 und den Wähler 415 zum Steuerspeicheradreßbus 418 gebracht. Dies ist eine Startadresse oder ein Vektor, der den Steuerspeicher-ROMs 419 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 Zeitdiagram 14. Die Operanden werden in diesem Fall auf dem MEMIN-Bus 320 vorhanden sein, und sie werden durch den FPU-MEM-Bus-Multiplexer 470 und über den Bus 474 a , den Multiplexer 463 und den Bus 467 zum Arbeitsregister 468 geführt.
- In Fig. 7 ist das Arbeitsregister 468 in einer Stapelspeicherkonfiguration gezeigt, die die Wirkungsweise besser zeigt. Daher werden unter Bezugnahme auf Fig. 7 die Daten auf dem Bus 467 in die Bits 48 bis 63 des Arbeitsregisters geladen. Das zweite Wort des 4-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 404 d und den Multiplexer 462 zum Bus 466 geführt wird, wo es in das Arbeitsregister 468 b geladen wird. Dann wird das dritte Wort wieder durch die oben erwähnten Datenwege in den Arbeitsregisterblock 468 a geladen, und das zweite Wort wird dann in das Arbeitsregister 468 b geführt und geladen, wobei sich das erste Wort nun im Arbeitsregister 468 c befindet. Und schließlich erscheint das vierte und letzte Wort auf dem Bus 467 und wird in das Arbeitsregister 468 a geladen, während das dritte Wort sich nun im Arbeitsregister 468 b befindet, das zweite Wort im Arbeitsregister 468 c, und das hochwertige Byte des ersten Worts im Arbeitsregister 439 b und das niedrigwertige Byte im Arbeitsregister 468 d. (Zur Erläuterung kann man sich wegen einer bildlichen Darstellung der vier Operanden im Hauptspeicher und das resultierende Gleitkommawert 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 439 der Fig. 4 gespeichert. Der Mantissenteil ist in 457 gespeichert, und der Exponent/Vorzeichen- Teil ist in 439 gespeichert. Diese Beschreibung umfaßt das Laden eines Operanden für die Addier-Operation.
- Damit die Gleitkommaeinheit 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 beschrieben 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. 10 gezeigten normalisierten Operanden gleich ist, nämlich 3/16 × 164.
- Nachdem die beiden Operanden somit geladen worden sind, bezieht sich die nächste Beschreibung auf die Addition der beiden Operanden in der Gleitkommaeinheit. Die Gleitkommaeinheit besteht aus einem Exponenten-Vergleich und einer Mantissenaddition. Die Exponenten der beiden Operanden werden verglichen, indem mit ihnen eine Subtraktion im Exponent-ALU-Block 448 durchgeführt wird. Das Ergebnis dieses Vergleichs wird auf dem Bus 449 angeboten, der die innerhalb des ROM 450 enthaltene Absolutwertsuchtabelle adressiert. Der ROM 450 liefert ein Hexadezimal-Schiebe-Code-Ausgangssignal, das durch den Bus 403 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 Verschiebung 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 457 angeordneten Zielmantisse addiert, und das Ergebnis der Addition wird in die Mantisse des Zielakkumulators geschrieben werden, der ebenfalls im Block 457 angeordnet ist. (Das Slice 457 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 430 (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-ROMs 422 durchgeführt. Die zwei Operanden werden dem Exponent- ALU-Block 448 angeboten und werden subtrahiert. Das Ergebnis der Subtraktion erzeugt fünf Zustandsvariable:
- OOR (out of range, außerhalb des Bereichs); ECO (exponent carry out, Exponentaustrag); 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-Zweig- ROM 422 zur Addition und Subtraktion zugeführt, was dazu führt, daß eine Adresse über den Mikroprogrammadressenwähler 415 dem Steuerspeicheradreßbus 418 zugeführt wird. die N-fach-Zweig-Adressen-ROMs 422 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 gesprochen wurde. Das Ergebnis dieses Vergleichs wird durch das ROM 450 (Absolutwertsuchtabelle) geprüft, was zu einem Hexadezimal- Verschiebungscode führt. Bei diesem Beispiel ist der Hexadezimalverschiebecode 1, und das Mantissenwort im Arbeitsregister 468 wird um ein Hexadezimalzeichen nach rechts verschoben werden, wobei die Bits auf der rechten Seite des Arbeitsregisters herausgeschoben werden und in die für das Schutzzeichen vorgesehene Speicherkapazität des Arbeitsregisters, Fig. 7, hineingeschoben werden. Nach dieser Verschiebung sind die Mantissen beider Operanden aneinander angepaßt und bereit für die Addition. In diesem Beispiel werden deswegen, weil die Vorzeichen gleich sind, die Mantissen tatsächlich zueinander addiert. Die Addition erfolgt im Mikroprozessor-Slice 457. Der auf dem Bus 404 angeordnete Quellenoperand, der einem Eingang des Slice 457 angeboten wird, wird zu 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 Slices 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.
- Derselbe Befehl wird nun für einen Zustand geprüft, wo ein Gleitkomma-TRAP von einem früheren Befehl gesetzt ist.
- Beim Empfangen eines Additionsbefehls wird die Gleitkommaeinheit über den Startadressendecodier-ROM 412 und das Startadressenregister 413 an eine gerade Stelle im innerhalb des Steuerspeicher-ROMs-Block 419 enthaltenen Mikrocode springen. (Normalerweise werden ausführbare Adressen eine ungerade Adresse enthalten; gerade Adressen ergeben sich aus der Tatsache, daß TRAP von einem früheren Befehl gesetzt worden ist.) Falls die Falle (TRAP) gesetzt ist, wird der gegenwärtige Befehl nicht ausgeführt, und der TRAP wird initiiert, unter Überwachung durch die CPU, die die geeigneten Maßnahmen trifft, um die Ursache des TRAP 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 413 ausgegeben, und der Mikroprogrammadreßwähler 415 wird den Startadressenbus wählen, der wiederum die obengenannte Adresse auf den Steuerspeicheradreßbus 418 geben wird. Dies führt dazu, daß das Ausgangssignal der Steuerspeicher-ROMs 419 tatsächlich NOOP (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 einer konstanten Adresse aus, die im Startadressenregister 413 enthalten ist. In diesem speziellen Fall, wo sie eine Leerlaufadresse ist, weist die Startadresse überall Einsen 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 Vergeich der Exponenten für einen Additions- oder Subtraktionsbefehl in dem N-fach-Zweig-ROMs 422 durchgeführt. Dieser Vergleich besteht aus einem Vorzeichenvergleich, einer Außerhalb- des-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 422 angeboten und führen im Ergebnis zu einem von acht Vektoren für die passenden Mikrocode-Operationen für diesen speziellen Satz von Operanden.
- 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 400 befinden und wird in den Gleitkommabefehlsregisterblock 411 geladen. Dieser Befehl wiederum wird zum Startadressendecodierer-ROM 412 gesendet, und der resultierende Startadressenvektor wird in das Startadressenregister 413geladen. Weil der Mikrocode auf den Startadressenbus nicht ansprechend wird, wird die Startadresse gehalten, bis sie benötigt wird. Bei der Ausgabe eines neuen Gleitkommabefehls wird die Gleitkommaeinheit nach einem Gleitkomma- "besetzt"-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 414 ansprechen und sofort mit der Verarbeitung des laufenden Befehls beginnen, der früher in das Startadressenregister 413 geladen worden war. Die Startadresse wird über den Startadressenbus 414 durch den Mikroprogramm- Wähler-Block 415 zum Steuerspeicheradreßbus 418 geleitet. Die Steuerspeicher-ROMs 419 werden auf die Adresse hin als Ausgangssignal die geeignete Steuersequenz an das Pipeline-Register 401 und 405 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. Zu Exponentenaddition werden unter Hinweis auf den Exponent/Vorzeichen-Speicher 439 der Fig. 4 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 443, und den Exponent-Quellen- Bus 444, der durch den Exponent-Multiplexer 445 und den Exponent-Multiplexer-Bus 447 zur Exponent-ALU 448 geleitet wird. Das Ergebnis dieser arithmetischen Manipulation wird auf den Exponent-Funktion-Bus 449 gegeben, der durch den Exponent-Daten-Wähler-Multiplexer 437 zum Exponent/Vorzeichen- Datenbus 438 geführt wird, und in den Exponent-Ziel-Akkumulator innerhalb des Blockes 439 geschrieben.
- Die nächste mit den Exponenten auszuführende Operation besteht darin, den Überschuß von 64 herauszusubtrahieren, der sich aus der Addition der beiden Komponenten ergeben hat, die beide einen Überschuß 64 enthielten. Dies wird dadurch erreicht, daß der Wert 64 auf den Konstanten-Bus 446 gegeben wird, wonach er durch den Exponenten-Multiplexer 445 zum Exponenten-Multiplexer-Bus 447 geführt wird. Dies liefert eines der Eingangssignale der Exponent-ALU 448, in Verbindung mit dem anderen bereits beschriebenen Eingangssignal, das über den Exponent-Ziel-Bus 443 ankommt. Diese beiden Exponenten-Operanden werden innerhalb der Exponent-ALU 448 subtrahiert, was zum korrigierten Exponenten in der 64-Überschuß-Schreibweise führt. Dieses Ergebnis wird durch den Exponenten-Bus 449 über den Exponenten-Daten-Wähler-Multiplexer 437 zum Exponent/ Vorzeichen-Daten-Bus 438 geleitet und wird in den Exponent-Ziel-Akkumulator innerhalb des Blocks 439 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 457 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 457 enthalten sind, in der üblichen binären Arbeitsweise multipliziert, und das Endergebnis wird im Arbeitsregister 468 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, so wie es ist, und es wird im Block 457, dem Mikroprozessor-Slice der Fig. 5, gespeichert. Auf dieser Operationsstufe 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.
- 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.
- 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 Gleitkommaakkumulatoren 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. Diese Operation wird ohne Rücksicht auf den Zustand des TRAP abgeschlossen, und die Gleitkommaakumulatoren und alle Gleitkommazustände werden auf den neuesten Stand gebracht, in dem 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.
- 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. 2A enthalten ist. Beim Abschluß des früheren Befehls wird der Speicher- Gleitkommabefehl in der folgenden Weise ausgeführt werden.
- Die FPAC-Mantisse wird durch den Mantissen-Funktion-Bus 459 geladen, wie oben beschrieben wurde, der über die Arbeitsregister-Eingang-Multiplexer 460 bis 463 zum Arbeitsregister 468 geführt ist. Der Exponenten- und Vorzeichen-Teil wird in das im Block 439 angeordnete Exponent-Quellen-Arbeitsregister geladen. Das Ausgangssignal dieser Register ist durch den Exponent-Quellen-Bus 474 b mit den MEMIN-Bustreibern 472 und 473 und mit 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 473 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 472 abgeleitete Signale, die auf den MEMIN-Bus 320 gegeben werden, zum Hauptspeicher 311 der Fig. 1A geleitet; die Eingangssignale des MEMOUT-Treibers 473 werden über den MEMOUT- Bus 318, der in Fig. 1A gezeigt ist, geleitet und in der CPU 314 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 Zustand Nr. 5 abgeschlossen.
- 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 Fig. 3 von Interesse. Den im Register 428 enthaltenen Quellen- und Zielakkumulatoren werden die Befehlsregister-Bits 1 bis 4 auf dem Bus 433 zugeführt. Die FPAC-Adressenauswahl-Logik wählt zwischen den durch ein 4-Bit-Feld innerhalb des Befehlsregisters oder ein 4-Bit-Feld, das im Mikrocode enthalten ist, oder das innerhalb der Steuerspeicher-ROMs 419 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 4 wählen wird, wobei sie diese auf FPAC-Auswahlbus gibt und die Bits zum Pipeline- Register 401 und 405 sendet. Diese Befehlsregister-Bits werden zum Exponent/Mantissen-Quellen- und Ziel-Adreß- Bus 440, Fig. 4, geleitet und in den Exponent- und Vorzeichen-Speicher-Block 439 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 457, Fig. 5, enthalten. Exponent und Vorzeichen des FPAC sind im Block 439, Fig. 4, angeordnet. Hiermit ist die vorliegende Beschreibung der Wirkungsweise der FPU bei einem FPAC-Adressen- Auswahl-Zustand abgeschlossen.
- Eine detaillierte schematische Schaltung des Arbeitsregisters ist 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 "A" angezeigt ist; und in ähnlicher Weise soll das Schieberegister in der letzten Zeile der zweiten Spalte dem Schieberegister in der ersten Zeile der dritten Spalte unmittelbar vorhergehen, wie durch gestrichelte Pfeile "B" angezeigt ist. Es gibt folgende Eingangssignale und Ausgangssignale des Arbeitsregisters: Die Signale D 8 bis D 67 repräsentieren die 60 Ausgangssignale des Arbeitsregisters. Die Signale M 8 bis M 67 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 HD 0 bis HD 14 sind die Hexadezimalzeichen 0 bis 14; diese beziehen sich auf die Eingangssignale des Rechtsschiebekanals jedes Arbeitsregisters, und sie werden von der Hexadezimal-Verschiebe-Logik abgeleitet. Als nächstes werden die Signale DBS 0 und DBS 1 verwendet, um die Hexadezimalzeichen 0 bis 7 des Arbeitsregisters zu steuern, und Signale DAS 0 und DAS 1 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 des Arbeitsregisters.
- Als nächstes wird auf die Fig. 12, 13A und 13B 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. HD 0 bis HD 14 sind die Hexadezimalzeichen in der Mantisse. Die Signale S 0 bis S 3 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- Verschiebeeinrichtung. MSELS 0 und MSELS 1 sind ein Multiplexerauswahlsignal S 0 und ein Multiplexerauswahlsignal S 1; dies sind variable Signale mit einer gemeinsamen Aktivierung, und sie werden entweder durch Linksverschieben (SL) oder Rechtsverschieben (SR) ausgewählt. Die Signale D 11, 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 Fig. 11, 12, 13A und 13B die detaillierte Arbeitsweise des Arbeitsregisters und die Architektur der Hexadezimal-Verschiebeeinrichtung dargelegt.
- Jede Komponente des Arbeitsregisters 468 ist ein Schieberegister, und alle Schieberegister sind untereinander identisch, wie bereits festgestellt wurde. Es folgen die Eingangssignal 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 14 bezeichnet werden. Diese Hexadezimalzeichen können Daten von dem passenden 4-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 DA 0, DA 1, DBS 0 und DBS 1 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 1304 gebildet wird; der linksschiebende Teil der Verschiebeeinrichtung wird durch die Blöcke 1302, 1303 und 1305 gebildet. Die passende Schiebefunktion 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-Verschiebeeinrichtungen enthält. Diese Hexadezimal-Verschiebeeinrichtung kann angesehen werden als 32-Auf-1-Multiplexer, der Ausgangssignale jedes hochwertigen Hexadezimalzeichens zum Rechtsschiebe- Eingangskanal jedes Hexadezimalzeichens leiten kann.
- In Fig. 12, 13A und 13B verwendet der Block 1301 eine einzelne Verschiebeeinrichtung; im Bauteil 1302 werden drei Verschiebeeinrichtungen verwendet; im Bauteil 1303 werden zwei Verschiebeeinrichtungen verwendet. Im Bauteil 1304 werden vier Verschiebeeinrichtungen verwendet; und im Bauteil 1305 werden vier weitere Verschiebeeinrichtungen verwendet, insgesamt also 14 Verschiebeeinrichtungen. 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 468 abgeleitet wird. Der Ausgangsbus 1307 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 S 0 und S 1 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, S 0 und SELS 1 beide 0 sind, würden die Daten am Y 0-Ausgang die Eingangsdaten D 11 bei I 0 sein. Wenn SELS 1 und S 0 niedrig bzw. hoch wären, würden die Eingangsdaten des Eingangs I-1 am Ausgang Y 0 erscheinen. Wenn dieses Eingangssignal S 0 niedrig wäre und S 1 hoch, würde das am Y 0-Ausgang erscheinende Ausgangssignal das Eingangss gnal am Eingang I-2 sein. Unter der Annahme, daß das Eingangswählsignal S 0 und das Wählsignal S 1 niedrig sind, würde beispielsweise das Ausgangssignal Y 0 das am Eingang I 1 vorhandene Eingangssignal sein. Wenn die Wählsignale S 0, S 1 hoch bzw. niedrig sind, würde das Ausgangssignal am Y 0-Kanal das am I 1-Kanal vorhandene Eingangssignal sein. Wenn das Eingangswählsignal S 0 und S 1 niedrig bzw. hoch ist, würde das Ausgangssignal auf dem Y 0-Kanal das auf dem I 2-Eingangskanal vorhandene Eingangssignal sein. Wenn die Eingangswählsignale S 0 und S 1 beide hoch sind, wird das Ausgangssignal am Y 0-Kanal das am I-3-Eingangskanal vorhandene Eingangssignal sein.
- Fig. 14A 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 F 40-Takt, F 20-Takt, F 10-Takt, "F 10 und F 20"-Takt, und ein Signal PORT EN. Diese Anordnung von Taktsignalen soll allen vier Formaten zugeordnet sein.
- Für das Format A sind die Signale FMEM CLK, FPMEM, MEMIN, MEMOUT, 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 ADDRESS 1 auf dem MEMIN-Signal. In Verbindung hiermit gibt die CPU auch das Signal FPMEM zur selben Zeit aus. Dieses Signal meldet der FPU, daß 400 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 FPULCK wird bei T = 100 unterbrochen (ist niedrig), und es bleibt niedrig; FPUCLK wird durch das im Zeitraum zwischen 400 und 500 ns auftretende Signal CLR PAUSE in den Zyklus hinein gestartet. Ungefähr 100 ns nach dem Auftreten von CLR PAUSE wird FPULCK einen Übergang von einem niedrigen zu einem hohen Wert haben. Dieser Übergang tritt zum Zeitpunkt T = 500 ns im Speicheraufrufzyklus auf. Zu dieser Zeit wird das erste Datenwort aus dem Speicher in das Arbeitsregister der Gleitkommaeinheit getaktetes 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 die CPU die Adresse des zweiten Worts (ADDRESS 2) auf dem MEMIN-Bus aus. Bei T = 400 gibt die CPU die dritte Adresse (ADDRESS 3) auf dem MEMIN-Bus aus. Bei T = 600 gibt die CPU die vierte Adresse (ADDRESS 4) auf dem MEMIN-Bus aus. Diese vier Adressen entsprechen 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 werden, wird auf Fig. 8 verwiesen.
- Mit anderen Worten wird das Signal FPULCK 75 ns später einen hohen Wert annehmen als das Signal PAUSE im Zeitraum zwischen 400 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. 1B) ausgegeben werden. Wie bei den Zeitdiagrammen angegeben ist, wird VALID DATA 1-4 für jedes der vier vom Speicher in die FPU geladenen Datenwörter 400 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. 1100 ns.
- Als nächstes wird im Format B ein Schreibzyklus von der FPU zum Speicher mit doppelter Genauigkeit beschrieben. Bei T = 0 beim Start des Speicheraufrufzyklus wird die CPU die Adresse, in die die Daten eingeschrieben werden müssen, auf dem MEMIN-Bus zum Speicher liefern. Ebenfalls zu dieser Zeit wird die CPU das Signal FPMEM an die FPU liefern. Dieses Signal meldet der FPU, daß 100 ns nach dem Empfang von FPMEM die FPU das erste in die von der CPU gelieferte Adresse einzuschreibende Wort auf den MEMIN-Bus bringen soll. Diese Zyklen werden drei weitere Male wiederholt, so daß alle vier 16-Bit-Wörter der Gleitkommaeinheit in aufeinanderfolgende Stellen im Speicher geschrieben werden. Die Wiederholung des Signals auf dem MEMIN-Bus, das als VALID ADDR 1 gezeigt ist, wird durch die CPU erzeugt und geht zum Speicher. Das mit VALID DATA 1 bezeichnete Signal wird von der FPU erzeugt und wird von der FPU zum geeigneten Zeitpunkt auf den MEMBUS gebracht, aber geht zum Speicher. Zusammengefaßt liefert die CPU die Adresse für die in den Speicher einzuschreibenden Daten und die FPU liefert die Daten, die an diese Speicherstelle 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, das dem Gleitkommaprozessor die Tatsache meldet, daß er Daten auf dem MEMOUT-Bus eine bestimmte Anzahl von Speicherzyklen nach dem Empfang dieses Signals und des Signals MEMSTART liefern soll. Die CPU wird auch das Signal INHSEL (Inhibit Select, Blockieren Auswahl) ausgegeben, das den Speicher daran hindert, Daten auf dem MEMOUT-Bus für diesen speziellen Speicheraufrufbefehl zu liefern. Beim Empfang des Signals VALID FPCPU wird die FPU Speicherzyklustaktimpulse zählen und wird Daten auf dem MEMOUT-Bus vom Zeitpunkt T = 400 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 Arbeitsregister 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 = 400 bis 500 ns des Speicheraufrufzyklus gebracht werden; und die CPU speichert diese Daten bei T = 500 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 nachdem 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.
- Es versteht sich, daß in der gesamten Patentanmeldung der Balken oberhalb bestimmter Signale die übliche Bedeutung einer Inversion hat; d. h. das Signal ≙ 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.
- 4. 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 für 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 MEMIN- 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.
- 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.
Claims (19)
1. Datenbussystem für eine Datenverarbeitungsanlage mit einer Gleitkommaeinheit (FPU) in Pipeline-Struktur, einer Zentraleinheit (CPU) und einem Hauptspeicher, die durch Datenwege miteinander verbunden sind, wobei die Gleitkommaeinheit eine Mantisseneinheit (408) zur Verarbeitung der Mantissen von Daten zur Erzeugung eines Mantissenergebnisses und eine Exponent/ Vorzeichen-Einheit (410) zur Verarbeitung von einem vom Mantissenteil verschiedenen Teil der Daten zur Erzeugung eines Exponent/ Vorzeichen-Ergebnisses aufweist, und mit einer Steuereinrichtung für die Gleitkommaeinheit, der Mantissenzustandssignale durch die Mantisseneinheit und Exponent/Vorzeichen-Zustandssignale durch die Exponent/Vorzeichen-Einheit zugeführt werden, und die Steuersignale an diese Einheiten liefert, wobei die Verarbeitung der Mantissenteile und Exponententeile der Daten im wesentlichen gleichzeitig erfolgt, dadurch gekennzeichnet, daß die Datenwege zwischen der Zentraleinheit (314), dem Hauptspeicher (311) und der Gleitkommaeinheit (FPU) durch jeweils einen einzigen Speichereingangsbus (MEMIN-Bus; 320) und einen einzigen Speicherausgangsbus (MEMOUT-Bus; 318) gebildet sind, wobei die Anzahl der Bits eines Gleitkommaworts größer ist als die Kapazität dieser Datenwege, und daß ein Gleitkommawort in die Gleitkommaeinheit (FPU) und aus der Gleitkommaeinheit in mehrere aufeinanderfolgende, jeweils bitparallel übertragene Abschnitte zerlegt über den jeweiligen Speicherbus (320; 318) transportierbar ist.
2. Datenbussystem nach Anspruch 1, dadurch gekennzeichnet, daß eine Einrichtung (CPU; 314) zum Erzeugen eines Befehls/Zeitgeber-Signals FPMEM und eines Taktsignals MEMCLK vorgesehen ist, und daß die Gleitkommaeinheit (FPU) aufweist:
Eine auf die Signale FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkommaeinheit (FPU) bestimmte Daten aus dem Hauptspeicher (311) auf dem MEMOUT-Bus (318) empfangen soll und zum Erzeugen von anderen Zeitgebersignalen zum Bestimmen, wann das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis durch den Hauptspeicher (311) auf dem MEMIN-Bus (320) empfangen werden soll.
Eine auf die Signale FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkommaeinheit (FPU) bestimmte Daten aus dem Hauptspeicher (311) auf dem MEMOUT-Bus (318) empfangen soll und zum Erzeugen von anderen Zeitgebersignalen zum Bestimmen, wann das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis durch den Hauptspeicher (311) auf dem MEMIN-Bus (320) empfangen werden soll.
3. Datenbussystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß eine Einrichtung (CPU; 314) zum Erzeugen von Befehls/Zeitgeber-Signalen FPCPU, MEMSTART und FPMEM und eines Taktsignals MEMCLK vorgesehen ist, und daß die Gleitkommaeinheit (FPU) aufweist:
Eine auf die Signale FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkommaeinheit (FPU) auf dem MEMOUT-Bus (318) empfangen soll und ein auf die Signale PFCPU, MEMSTART und MEMCLK ansprechende Einrichtung zum Erzeugen von anderen Zeitgebersignalen, um zu bestimmen, wann die CPU (314) das Mantissenergebnis und das Exponent/Vorzeichen- Ergebnis auf dem MEMOUT-Bus (318) empfangen soll.
Eine auf die Signale FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkommaeinheit (FPU) auf dem MEMOUT-Bus (318) empfangen soll und ein auf die Signale PFCPU, MEMSTART und MEMCLK ansprechende Einrichtung zum Erzeugen von anderen Zeitgebersignalen, um zu bestimmen, wann die CPU (314) das Mantissenergebnis und das Exponent/Vorzeichen- Ergebnis auf dem MEMOUT-Bus (318) empfangen soll.
4. Datenbussystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine Einrichtung (CPU; 314) zum Erzeugen von Befehls/Zeitgeber-Signale EPCPU, MEMSTART und EPMEM und eines Taktsignals MEMCLK vorgesehen ist und daß die Gleitkommaeinheit (FPU) aufweist:
Eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von den Signalen FPCPU, MEMCLK und MEMSTART zum Bestimmen, wann die Gleitkommaeinheit (FPU) empfangen soll und um andere Zeitgebersignale in Abhängigkeit von den Signalen FPMEM und MEMCLK zu erzeugen zum Bestimmen, wann der Hauptspeicher (311) das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis von der Gleitkommaeinheit (FPU) auf dem MEMIN-Bus (320) empfangen soll.
Eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von den Signalen FPCPU, MEMCLK und MEMSTART zum Bestimmen, wann die Gleitkommaeinheit (FPU) empfangen soll und um andere Zeitgebersignale in Abhängigkeit von den Signalen FPMEM und MEMCLK zu erzeugen zum Bestimmen, wann der Hauptspeicher (311) das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis von der Gleitkommaeinheit (FPU) auf dem MEMIN-Bus (320) empfangen soll.
5. Datenbussystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß eine Einrichtung (CPU; 314) zum Erzeugen von Befehls/Zeitgeber-Signalen FPCPU und MEMSTART und eines Taktsignals MEMCLK vorgesehen ist, dadurch gekennzeichnet, daß eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von den Signalen FPCPU, MEMCLK und MEMSTART vorgesehen ist, um zu bestimmen, wann bestimmte in der CPU ( 314) gespeicherte Daten von der Gleitkommaeinheit (FPU) auf dem MEMIN-Bus (320) empfangen werden sollen, und um andere Zeitgebersignale zu erzeugen zum Bestimmen, wann die CPU (314) das Mantis- senergebnis und das Exponent/Vorzeichen-Ergebnis von der Gleitkommaeinheit (FPU) auf dem MEMOUT-Bus (318) empfangen soll.
6. Datenbussystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Mantisseneinheit (408) aufweist:
Eine Einrichtung zum Empfangen der Daten von den Datenwegen über (MEMIN-Bus; 320) und zum Senden des Mantissenergebnisses zu den Datenwegen (über MEMOUT-Bus; 318);
ein Arbeitsregister (468) zum zeitweisen Speichern der Mantissenteile der Daten;
einen Multiplexer (460-463) zum Kombinieren der verarbeiteten Mantissenteile mit den von der Empfangseinrichtung gelieferten Daten und zum Liefern der kombinierten Daten in das Arbeitsregister (468); und
eine Hexadezimal-Verschiebeeinrichtung (470) zum Empfangen der Mantissenteile der Daten aus dem Arbeitsregister (468) und zum Empfangen eines Verschiebesignals aus der Exponent/Vorzeichen-Einheit (410), um die Mantissenteile im Arbeitsregister (468) neu anzuordnen.
Eine Einrichtung zum Empfangen der Daten von den Datenwegen über (MEMIN-Bus; 320) und zum Senden des Mantissenergebnisses zu den Datenwegen (über MEMOUT-Bus; 318);
ein Arbeitsregister (468) zum zeitweisen Speichern der Mantissenteile der Daten;
einen Multiplexer (460-463) zum Kombinieren der verarbeiteten Mantissenteile mit den von der Empfangseinrichtung gelieferten Daten und zum Liefern der kombinierten Daten in das Arbeitsregister (468); und
eine Hexadezimal-Verschiebeeinrichtung (470) zum Empfangen der Mantissenteile der Daten aus dem Arbeitsregister (468) und zum Empfangen eines Verschiebesignals aus der Exponent/Vorzeichen-Einheit (410), um die Mantissenteile im Arbeitsregister (468) neu anzuordnen.
7. Datenbussystem nach Anspruch 6, 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 (470) eine Einrichtung zum Ersetzen jedes der Zeichen durch jedes andere Zeichen aufweist.
8. Datenbussystem nach Anspruch 7, dadurch gekennzeichnet, daß die Mantissenteile als Mehrzahl von Hexadezimalzeichen mit jeweils vier Bit gruppiert sind.
9. Datenbussystem nach Anspruch 8, dadurch gekennzeichnet, daß die Hexadezimal-Verschiebeeinrichtung (470) eine Einrichtung zum Empfangen des niedrigstwertigen Bits der vier Bits jedes Zeichens aus dem Arbeitsregister (468) aufweist, und eine Einrichtung, um das niedrigstwertige Bit in die höchstwertige Bitposition eines anderen Zeichens zu leiten.
10. Datenbussystem nach Anspruch 9, dadurch gekennzeichnet, daß die Taktsignale einen FPU-Takt 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 in die Position des höchstwertigen Bits durch Vergrößerung der Frequenz des Arbeitsregistertaktes RCLK gegenüber dem FPU-Takt FPULK vorgesehen ist.
11. Datenbussystem nach Anspruch 10, dadurch gekennzeichnet, daß die Frequenz vom Arbeitsregistertakt RCLK das Vierfache der Frequenz vom FPU-Takt FPUCLK beträgt.
12. Datenbussystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung (409) für die Gleitkommaeinheit (FPU) eine Einrichtung zum Empfangen von Zustandssignalen aufweist und in Abhängigkeit von der Tätigkeit der Befehlseinrichtung und den Zustandssignalen FPU-Steuersignale zur Steuerung der FPU liefert; daß die Mantisseneinheit (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 ( 409) aufweist, eine Einrichtung zum Liefern des Beitrags der Mantisseneinrichtung zu den Zustandssignalen zur Steuereinrichtung (409), und daß sie in Abhängigkeit von den bestimmten FPU-Steuersignalen Mantissenteile der Daten in einer ersten vorbestimmten Weise verarbeitet; und
daß die Exponent/Vorzeichen-Einrichtung (410) eine Einrichtung zum Empfangen von anderen EPU-Steuersignalen aus der Steuereinrichtung (409) aufweist, eine Einrichtung zum Liefern des Beitrags der Exponent/- Vorzeichen-Einrichtung zu den Zustandssignalen zur Steuereinrichtung, daß die Exponent/ Vorzeichen-Einheit (410) in Abhängigkeit von den anderen FPU-Steuersignalen andere aus der Mantisseneinrichtung empfangene Teile als die Mantissenteile in einer zweiten vorbestimmten Weise gleichzeitig mit der Tätigkeit der Mantisseneinheit (408) verarbeitet;
so daß die gleichzeitige Tätigkeit der Exponent/- Vorzeichen-Einheit (410) und der Mantisseneinheit (408) unter Steuerung der Steuereinrichtung (409) die Gleitkommarechnungen innerhalb der Datenverarbeitungsanlage liefert.
daß die Exponent/Vorzeichen-Einrichtung (410) eine Einrichtung zum Empfangen von anderen EPU-Steuersignalen aus der Steuereinrichtung (409) aufweist, eine Einrichtung zum Liefern des Beitrags der Exponent/- Vorzeichen-Einrichtung zu den Zustandssignalen zur Steuereinrichtung, daß die Exponent/ Vorzeichen-Einheit (410) in Abhängigkeit von den anderen FPU-Steuersignalen andere aus der Mantisseneinrichtung empfangene Teile als die Mantissenteile in einer zweiten vorbestimmten Weise gleichzeitig mit der Tätigkeit der Mantisseneinheit (408) verarbeitet;
so daß die gleichzeitige Tätigkeit der Exponent/- Vorzeichen-Einheit (410) und der Mantisseneinheit (408) unter Steuerung der Steuereinrichtung (409) die Gleitkommarechnungen innerhalb der Datenverarbeitungsanlage liefert.
13. Datenbussystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung (409) aufweist:
Eine Mikroprogrammsteuereinrichtung mit einer Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 415) zum Kombinieren eines Befehls sowohl mit einem Beitrag der Mantisseneinheit (408), als auch des Beitrags der Exponent/Vorzeichen-Einheit (410), um einen Satz von mikroprogramierten Steuersignalen entsprechend jeder Operation der Mikroprogramm-Sequenzer- und -Adreßwähl-Einrichtung (425, 415) zu erzeugen; und
ein Pipeline-Register (für 401 bis 405) zum Einrichten einer laufenden Steuerposition und einer nächsten folgenden Steuerposition, um
Eine Mikroprogrammsteuereinrichtung mit einer Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 415) zum Kombinieren eines Befehls sowohl mit einem Beitrag der Mantisseneinheit (408), als auch des Beitrags der Exponent/Vorzeichen-Einheit (410), um einen Satz von mikroprogramierten Steuersignalen entsprechend jeder Operation der Mikroprogramm-Sequenzer- und -Adreßwähl-Einrichtung (425, 415) zu erzeugen; und
ein Pipeline-Register (für 401 bis 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 vom mikroprogrammierten Steuersignalen als FPU-Steuersignale zu speichern, um
2. in die nächste nachfolgende Steuerposition diesen Satz von mikroprogrammierten Steuersignalen zu laden, und um
3. den Satz von mikroprogrammierten Steuersignalen zur laufenden Steuerposition beim Auftreten der allernächsten nachfolgenden Operation der Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 415) zu übertragen.
14. Datenbussystem nach Anspruch 13, 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 Adreßwähl-Einrichtung (425 bzw. 415) ergibt, um eine erste vorbestimmte Gruppe des Satzes von mikroprogrammierten Steuersignalen zum Pipeline-Register (für 401 bzw. 405) zu liefern.
Einen Steuerspeicher-ROM (419) mit einer Einrichtung zum Empfangen eines Eingangsadressensignals, das sich aus einer Tätigkeit der Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 415) ergibt, um eine erste vorbestimmte Gruppe des Satzes von mikroprogrammierten Steuersignalen zum Pipeline-Register (für 401 bzw. 405) zu liefern.
15. Datenbussystem nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß die Mikroprogramm-Steuereinrichtung aufweist:
Einen Random-Zustands-Kontroller (427) mit einer Einrichtung zum Empfangen sowohl
Einen Random-Zustands-Kontroller (427) mit einer Einrichtung zum Empfangen sowohl
1. eines Random- Zustands-Signals von der Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 425) und
2. einer zweiten vorbestimmten Gruppe des Satzes von mikroprogrammierten Steuersignalen von dem Steuerspeicher-ROM (419), um decodierte Random-Zustands-Steuersignale mindestens zum Pipeline-Register (für 401 bis 406) zu liefern.
16. Datenbussystem nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenz- und Adreßwähl-Einrichtung (425 bzw. 415) aufweist:
Eine Adressenauswahllogik (431) mit einer Einrichtung zum Empfangen von sowohl
Eine Adressenauswahllogik (431) mit einer Einrichtung zum Empfangen von sowohl
1. eines Teils des Beitrags der Mantisseneinrichtung ( 408) und eines Teils des Beitrags der Exponenteneinheit (410) zu den Zustandssignalen und
2. eine dritte vorbestimmte Gruppe des Satzes der mikroprogrammierten Steuersignale, um die Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 415) bei der Auswahl des nächsten nachfolgenden Eingangsadressensignals zu steuern.
17. Datenbussystem nach Anspruch 16, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenz- und Adreßwähl-Einrichtung (425 bzw. 415) 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 (419) geleitet wird,
b) zum Random-Zustands-Controller (427) geleitet wird, und
c) zurück zum Mikroprogramm-Sequenzer (425) geführt wird.
18. Datenbussystem nach Anspruch 17, dadurch gekennzeichnet, daß der Mikrorprogramm-Sequenzer (425) außerdem ein zweites Signal erzeugt, daß die Mikroprogramm-Sequenzer- und Adreßwähl-Einrichtung (425 bzw. 415) aufweist:
Einen Mikroprogramm-Wähler (415), der anspricht auf
Einen Mikroprogramm-Wähler (415), der anspricht auf
1. das zweite Signal,
2. einen anderen Teil des Beitrags der Mantisseneinheit (408) und einen anderen Teil des Beitrags der Exponenten-Einheit (410) zu den Zustandssiganlen,
3. die erste Darstellung des Befehls, und
4. bestimmte FPU-Steuersignale von der laufenden Steuerposition im Pipeline-Register (für 401 bis 405), um ein Mikroprogramm-Wählersignal zu erzeugen, das empfangen werden soll durch
a) den Steuerspeicher-ROM (419),
b) den Random-Zustands-Kontroller (427) und
c) den Mikroprogramm-Sequenzer (425);
und daß die Gleitkommaeinheit (FPU) eine Einrichtung zum Verhindern der gleichzeitigen Erzeugung des ersten Signals und des Mikroprogramm-Wählersignals aufweist.
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 DE2949375A1 (de) | 1980-06-19 |
| DE2949375C2 true DE2949375C2 (de) | 1987-03-19 |
Family
ID=25513938
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE2949375A Expired DE2949375C2 (de) | 1978-12-11 | 1979-12-07 | Datenbussystem für eine Datenverabeitungsanlage mit einer Gleitkommaeinheit in Pipeline-Struktur |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US4229801A (de) |
| JP (1) | JPS5582351A (de) |
| AU (1) | AU538983B2 (de) |
| CA (1) | CA1123110A (de) |
| DE (1) | DE2949375C2 (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 | 弘之 河▲崎▼ | 演算処理装置及び電子計算機 |
| CN101211255B (zh) | 1994-12-02 | 2012-07-04 | 英特尔公司 | 对复合操作数进行压缩操作的处理器、设备和计算系统 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| US5940859A (en) | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
| 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 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3551665A (en) * | 1966-09-13 | 1970-12-29 | Ibm | Floating point binary adder utilizing completely sequential hardware |
| 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 |
| US3871578A (en) * | 1972-10-10 | 1975-03-18 | Digital Equipment Corp | Data processing system for multiplying and intergerizing floating point numbers |
| CA1013861A (en) * | 1972-10-10 | 1977-07-12 | Adrianus J. Van De Goor | Special instruction processor |
| 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 |
| US4161784A (en) * | 1978-01-05 | 1979-07-17 | Honeywell Information Systems, Inc. | Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands |
-
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 DE2949375A patent/DE2949375C2/de not_active Expired
- 1979-12-10 NL NL7908893A patent/NL7908893A/nl not_active Application Discontinuation
- 1979-12-10 FR FR7930652A patent/FR2447061B1/fr not_active Expired
- 1979-12-11 JP JP15984779A patent/JPS5582351A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| GB2038049B (en) | 1983-07-20 |
| DE2949375A1 (de) | 1980-06-19 |
| CA1123110A (en) | 1982-05-04 |
| FR2447061B1 (fr) | 1986-02-21 |
| US4229801A (en) | 1980-10-21 |
| AU538983B2 (en) | 1984-09-06 |
| AU5223579A (en) | 1980-07-10 |
| FR2447061A1 (fr) | 1980-08-14 |
| JPH0128409B2 (de) | 1989-06-02 |
| NL7908893A (nl) | 1980-06-13 |
| GB2038049A (en) | 1980-07-16 |
| JPS5582351A (en) | 1980-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2949375C2 (de) | Datenbussystem für eine Datenverabeitungsanlage mit einer Gleitkommaeinheit in Pipeline-Struktur | |
| DE3486457T2 (de) | Integrierter Einchip-Prozessor für die Verarbeitung von digitalen Signalen entweder in einem schnellen oder einem langsamen Betrieb | |
| DE3587439T2 (de) | Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher. | |
| DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
| DE69430838T2 (de) | Schaltung und Verfahren zur parallelen Verschiebung und Addition | |
| DE19735348B4 (de) | Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben | |
| DE1813916C3 (de) | Elektronische Datenverarbeitungsanlage | |
| DE69033568T2 (de) | Preisgünstiger Hochleistungsmikroprozessor | |
| DE68927911T2 (de) | Datenverarbeitungssystem | |
| DE3587591T2 (de) | Mikroprozessor für Forth-ähnliche Sprache. | |
| DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
| DE3789345T2 (de) | Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen. | |
| DE3486399T2 (de) | Zentrale Verarbeitungseinheit mit der Fähigkeit, Befehle mit variablen Längen zu unterstützen. | |
| DE3424962C2 (de) | ||
| DE3685913T2 (de) | Vektorenverarbeitung. | |
| DE2948668A1 (de) | Puffereinheit | |
| DE3851746T2 (de) | Sprungvorhersage. | |
| DE2714805A1 (de) | Datenverarbeitungssystem | |
| DE102013111605A1 (de) | Reduzierung des Leistungsverbrauchs in einer fusionierten Multiplizier-Addier-(FMA)-Einheit in Reaktion auf Eingangsdatenwerte | |
| DE2835095A1 (de) | Gekoppeltes, mikroprogrammiertes prozessorsystem | |
| EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
| DE3709675C2 (de) | ||
| DE2332971C2 (de) | Mikroprogrammsteuereinrichtung | |
| DE3485771T2 (de) | Leistungsfaehiger paralleler vektorprozessor. | |
| DE3688806T2 (de) | Instruktionsprozessor. |
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 |