DE2949375A1 - Gleitkommaprozessor - Google Patents

Gleitkommaprozessor

Info

Publication number
DE2949375A1
DE2949375A1 DE19792949375 DE2949375A DE2949375A1 DE 2949375 A1 DE2949375 A1 DE 2949375A1 DE 19792949375 DE19792949375 DE 19792949375 DE 2949375 A DE2949375 A DE 2949375A DE 2949375 A1 DE2949375 A1 DE 2949375A1
Authority
DE
Germany
Prior art keywords
bus
floating point
signals
mantissa
exponent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19792949375
Other languages
English (en)
Other versions
DE2949375C2 (de
Inventor
David Lyman Whipple
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
Data General Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data General Corp filed Critical Data General Corp
Publication of DE2949375A1 publication Critical patent/DE2949375A1/de
Application granted granted Critical
Publication of DE2949375C2 publication Critical patent/DE2949375C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Description

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

Claims (1)

  1. Pate ntansprt'che
    Gleitkommaeinheit (FPU) vom Durchführen von Gleitkommarechnungen innerhalb eines Datenverarbeitungssystems, dadurch gekennzeichnet, daß eine Steuereinrichtung (409) zum Liefern von Steuersignalen für die Gleitkommr-einheit vorgesehen ist, daß eine Mantisseneinrichtung (408) vorgesehen ist, die Mantissenzustandssignale fiir die Steuereinrichtung liefert, die in Abhängigkeit von Steuersignalen die Mantisse von Daten in einer ersten vorbestimmten Weise verarbeitet und ein Mrntissenergebnis liefert; und eine Exponent/Vorzeichen-Einrichtung (410), die Exponent/ Vorzeichen-Zustandssignale an die Steuereinrichtung liefert, die in Abhängigkeit von anderen Steuersignalen einen vom Mantissenteil verschiedenen Teil der Daten in einer zweiten vorbestimmten Weise gleichzeitig mit der Tätigkeit der Mnntisseneinrichtung verarbeitet und ein Exponent/Vorzeichen-Ergebnis liefert.
    Glcitkommaeinheit nach Anspruch 1, dadurch gekennzeichnet, daß das Datonvorarbeitungssystcm eine Zentraleinheit (CPU)Oi^) zum Verarbeiten der Daten und einen Hauptspeicher ("* 1 ~) aufweist, und daß die Gleitkommaeinheit aufweist:
    030025/0752
    ORIGINAL INSPECTED
    Eine Einrichtung zum Verbinden der Gleitkommaeinheit, der CPU und des Hauptspeichers mit Datenwegen; und eine Einrichtung zum Zuführen von Taktsignalen und Befehl/Zeitgeber-Signalen, die von der CPU abgeleitet sind, zu der Steuereinrichtung.
    Gleitkommaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß ein Befehls/Zeitgcber-Signal FPMEM und ein Taktsignal MEMCLK vorgesehen ist, und daß die Gleitkommaeinheit aufweist:
    Eine auf FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkommaeinheit bestimmte Daten aus dem Hauptspeicher auf dem MEMOUT-Bus empfangen soll und zum Erzeugen von anderen Zeitgebersignalen zum Bestimmen, wann das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis durch den Hauptspeicher auf dem MEMIN-Bus empfangen werden soll.
    Gleitkommaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß Befehl/Zeitgeber-Signale FPCPU, MEMSTART und FPMEM vorgesehen sind, daß ein Taktsignal MEMCLK vorgesehen ist, und daß die Gleitkommaeinheit aufweist:
    030025/0752
    Eine auf FPMEM und MEMCLK ansprechende Einrichtung zum Erzeugen von Zeitgebersignalen zum Bestimmen, wann die Gleitkomrnaeinheit bestimmte Daten aus dem Hauptspeicher auf dem MEMOUT-Bus empfangen soll und eine auf PFCPU, MEMSTART und MEMCLK ansprechende Einrichtung zum Erzeugen von anderen Zcitgebersignalen , um zu bestimmen, wann die CPU das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis auf dem MEHOUT-Bus empfangen soll.
    Gleitkommaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß Defehl/Zeitgeber-Signale FPCPU, MEMSTART und FPHEM vorgesehen sind, daß ein Taktsignal MEHCLK vorgesehen ist und daß die Gleitkommaeinheit aufweist: Eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von FPCPU, MEMCLK und MEMSTART zum Bestimmen, wann die Gleitkommaeinheit in der CPU gespeicherte Daten auf dem MEMTN-Bus empfangen soll und um andere Zeitgebersignale in Abhängigkeit von FPMEM und MEMCLK zu erzeugen zum Bestimmen, wann der Hauptspeicher das Mantissenergebnis und das Exponent/ Vorzeichen-Ergebnis von der Gleitkommaeinheit auf dem MEMIN-Bus empfangen soll.
    Gleitkomrnaeinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Verbindungseinrichtung einen MEMIN-Bus und einen MEMOUT-Bus aufweist, daß Befehls/Zeitgeber-Signale FPCPU und MEMSTART vorgesehen sind, und daß das Taktsignal MEMCLK aufweist, dadurch gekennzeichnet , daß
    03C025/0752
    eine Einrichtung zum Erzeugen von Zeitgebersignalen in Abhängigkeit von FPCPÜ, NEMCLK und MEMSTART vorgesehen ist, um zu bestimmen, wann bestimmte in der CPU gespeicherte Daten von der Gleitkoramaeinheit auf dem MEMIH-Bus empfangen werden sollen, und um andere Zeitgebersignale zu erzeugen zum Bestimmen, wann die CPU das Mantissenergebnis und das Exponent/Vorzeichen-Ergebnis von der Gleitkommaeinheit auf dem MEMOUT-Bus empfangen soll.
    7. Gleitkommaeinheit nach einem der vorhergehenden Anspräche, dadurch gekennzeichnet, daß die Zeitgebersignale· und die anderen Zeitgebersignale die Signale PAUSE, CLR PAUSE, T100, T200, T300 und EN 1 und Funktionen von diesen aufweisen.
    8. Gleitkommaeinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Mantisseneinrichtung aufweist:
    Eine Einrichtung zum Empfangen der Daten von den Datenwegen und zum Senden des Mantissenergebnisses zu den Datenwegen;
    ein Arbeitsregister (468) zum zeitweiligen Speichern der Mantissenteile der Daten;
    einen Mikroprozessor-Slice (457) zum Empfangen der Mantissenteile aus dem Arbeitsregister und zum Verarbeiten der Mantissenteile;
    einen Multiplexer (460-46?) zum Kombinieren der verarbeiteten Mantissenteile mit den von der Empfangseinrichtung gelieferten Daten und zum Liefern der kombinierten Daten in das Arbeitsregister; und
    030025/0752
    eine Hexadezimal-Verschiebeeinrichtung (470) zum Empfangen der Mantissenteile der Daten aus dem Arbeitsregister und zum Empfangen eines Verschiebesignals aus der Exponent/Vorzeichen-Einrichtung, um die Mantissenteile im Arbeitsregister neu anzuordnen.
    9. Gleitkommaeinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Mantissenteile als Mehrzahl von Hexadezimalzeichen mit jeweils vier Bit gruppiert sind, daß die Hexadezimal-Verschiebeeinrichtung (H70) eine Einrichtung aufweist, um jedes Hexadezimalzeichen mit jedem anderen Hexadezimalzeichen auszutauschen.
    10. Gleitkoraraaeinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Hexadezimal-Verschiebeeinrichtung (^70) eine Einrichtung zum Empfangen des niedrigstwertigen Bits der vier Bits jede3 Zeichens aus dem Arbeitsregister (H6B) aufweist, und eine Einrichtung, um das niedrigstwertige Bit in die höchstwertige Bitposition eines anderen Zeichens zu leiten.
    11. Gleitkommaeinheit nach Anspruch 10, dadurch gekennzeichnet, daß die Taktsignale das Signal FPUCLK und einen Arbeitsregistertakt RCLK aufweisen, und daß eine Einrichtung zum Erhöhen der Arbeitsgeschwindigkeit der Einrichtung zum Empfangen des niedrigstwertigen Bits und der Einrichtung zum Leiten des niedrigstwertigen Bits an die Position des höchstwertigen Bits durch Vergrößern des RCLK gegenüber FPUCLK vorgesehen ist.
    030025/0752
    12. Gleitkommaeinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Mantissenteile in Form einer Mehrzahl von Zeichen mit einer vorbestimmten Anzahl von Bit pro Zeichen gruppiert sind, daß die Hexadezimal-Verschiebeeinrichtung eine Einrichtung zum Ersetzen jedes der Zeichen durch jedes andere Zeichen aufweist .
    13. Gleitkommaeinheit nach Anspruch 11, dadurch gekennzeichnet, daß die Frequenz von RCLK das vierfache der Frequenz von FPUCLK beträgt.
    14. Gleitkommaeinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung (409) eine Einrichtung zum Empfangen von Zustandssignalen aufweist und in Abhängigkeit von der Tätigkeit der Befehlseinrichtung und den Zusignalen FPU-Steuersignale zur Steuerung der FPU liefert;
    daß die üantisseneinrichtung (408) zwischen einen Eingangsbus und einen Ausgangsbus eingeschaltet ist, daß sie eine Einrichtung zum Leiten bestimmter Daten zwischen den Bussen aufweist, daß sie eine Einrichtung zum Empfangen bestimmter FPU-Steuersignale von der Steuereinrichtung aufweist, eine Einrichtung zum Liefern des Beitrags der Mantisseneinrichtung zu den Zustandssignalen zur Steuereinrichtung, und daß sie in Abhängigkeit von den bestimmten FPU-Steuersignalen Mantissenteile der Dnten in einer ersten vorbestimmten V/eise verarbeitet; und
    030025/0752
    daß die Exponent/Vorzeichen-Einrichtung (410) eine Einrichtung zum Empfangen von anderen FPU-Steuersignalen aus der Steuereinrichtung aufweist, eine Einrichtung zum Liefern des Beitrags der Exponent/Vorzeichen-Einrichtung zu den Zustandssignalen zur Steuereinrichtung, daß die Exponent/Vorzeichen-Einrichtung in Abhängigkeit von den anderen FPU-Steucrsignalen andere aus der Mantisseneinrichtung empfangene Teile als die Mantissenteile in einer zweiten vorbestimmten Weise gleichzeitig mit der Tätigkeit der Mantisseneinrichtung verarbeitet;
    so daß die gleichzeitige Tätigkeit der Exponent/Vorzeichen-Einrichtung und der Mantisseneinrichtung unter Steuerung der Steuereinrichtung die Gleitkommarechnungen innerhalb des Datenverarbeitungssystems liefert.
    15. Gleitkommaeinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung aufweist:
    Eine Mikroprogrammsteuereinrichtung mit einer Mikroprogramm-Sequenzer- und Adresswahl-Einrichtung (415, 425) zum Kombinieren einer ersten Darstellung eines Befehls sowohl mit einer zweiten Darstellung des Beitrags der Mantisseneinrichtung zu den Zustandssignalen als auch einer dritten Darstellung des Beitrags der Exponent/Vorzeichen-Einrichtung zu den Zustandssignalen, um einen Satz von mikroprogrammierten Steuersignalen entsprechend jeder Operation der Mikroprogramm- Sequenzer- und Adressurihl-Einrichtung zu erzeugen ; und
    030025/0752
    J*
    ein Pipeline-Register (401, 405) zum Einrichten einer laufenden Steuerposition und einer nächsten folgenden Steuerposition, um 1. in der laufenden Steuerposition den nächsten am frühesten erzeugten Satz von mikroprogramraierten Steuersignalen als FPU-Stcuersignale zu speichern, um 2. in die nächste nachfolgende Steuerposition diesen Satz von mikroprogrammierten Steuersignalen zu laden, und um 3. den Satz von mikroproprammierten Steuersignalen zur laufenden Steuerposition beim Auftreten der allernächsten nachfolgenden Operation der Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung zu übertragen.
    16. Gleitkommaeinheit nach Anspruch 15, dadurch gekennzeichnet , daß die Mikroprogramm-Steuereinrichtung aufweist:
    Einen Steuerspeicher-ROM (419) mit einer Einrichtung zum Empfangen eines Eingangsadressensignals, das sich aus einer Tätigkeit der Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung ergibt, um eine erste vorbestimmte Gruppe des Satzes von mikroprogrammierten Steuersignalen zum Pipeline-Register (401, 405) zu liefern.
    17. Gleitkommaneinheit nach Anspruch 15 oder 16, dadurch gekennzeichnet, daß die Mikroprogramm-Steuereinrichtung aufweist:
    Einen Random-Zustands-Kontroller (427) mit einer Einrichtung zum Empfangen sowohl 1. eines Random-Zustands-Signals von der Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung und 2. einer zweiten vorbe-
    030025/0752
    stimmten Gruppe des Satzes von mikroprogrammierten Steuersignalen von dem Steuerspeicher-ROM (419), um decodierte Random-Zustands-Steuersignale mindestens zum Pipeline-Register (401, 405) zu liefern.
    18. Gleitkommaeinheit nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenz- und Adresswähl-Einrichtung aufweist: Eine Adressenauswahllogik (431) mit einer Einrichtung zum Empfangen von sowohl 1. eines Teils der zweiten Darstellung des Beitrags der Mantisseneinrichtung und eines Teils der dritten Darstellung des Beitrags der Exponenteneinrichtung zu den Zustandssignalen und 2. eine dritte vorbestimmte Gruppe des Satzes der mikroprogrammierten Steuersignale, um die Mikroprogramm-Sequenzer- und Adresswähl-Einrichtung bei der Auswahl des nächsten nachfolgenden Eingangsadressensignals zu steuern.
    19. Gleitkommaeinheit nach Anspruch 18, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenzer-und Adresswähl-Einrichtung einen Mikroprogramm-Sequenzer(425) aufweist, der in Abhängigkeit von der steuernden Tätigkeit der Adressenauswahllogik erzeugt: 1. ein erstes Signal, das a)zum Steuerspeicher-ROM geleitet wird, b) zum Random-Zustands-Controller geleitet wird, und c) zurück zum Mikroprogramm-Sequenzer geführt wird, und 2. ein zweites Signal.
    030025/0752
    20. Gleitkommaeinheit nach Anspruch 19, dadurch gekennzeichnet, daß die Mikroprogramm-Sequenzer-und Adresswähl-Einrichtung aufweist:
    Einen Mikroprogramm-Wähler, der anspricht auf 1. das zweite Signal, 2. einen anderen Teil der zweiten Darstellung des Beitrags der Mantisseneinrichtung und einen anderen Teil der dritten Darstellung des Beitrags der Exponenten-Einrichtung zu den Zustandssignalen, 3. die erste Darstellung des Befehls, und 4. bestimmte FPU-Steuersignale von der laufenden Steuerposition im Pipeline-Register, um ein Mikroprograram-Wählersignal zu erzeugen, das empfangen werden soll durch a) den Steuerspeicher-ROM, b) den Random-Zustands-Kontroller, und c) den Mikroprogramm-Sequenzer; und
    daß die Gleitkoiamaeinrichtung eine Einrichtung zum Verhindern der gleichzeitigen Erzeugung des ersten Signals und des Hikroprogramra-Wahlersignals aufweist.
    030025/0752
DE19792949375 1978-12-11 1979-12-07 Gleitkommaprozessor Granted DE2949375A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/968,227 US4229801A (en) 1978-12-11 1978-12-11 Floating point processor having concurrent exponent/mantissa operation

Publications (2)

Publication Number Publication Date
DE2949375A1 true DE2949375A1 (de) 1980-06-19
DE2949375C2 DE2949375C2 (de) 1987-03-19

Family

ID=25513938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792949375 Granted DE2949375A1 (de) 1978-12-11 1979-12-07 Gleitkommaprozessor

Country Status (8)

Country Link
US (1) US4229801A (de)
JP (1) JPS5582351A (de)
AU (1) AU538983B2 (de)
CA (1) CA1123110A (de)
DE (1) DE2949375A1 (de)
FR (1) FR2447061B1 (de)
GB (1) GB2038049B (de)
NL (1) NL7908893A (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
US4464716A (en) * 1981-05-22 1984-08-07 Data General Corporation Digital data processing system using unique formatting techniques for performing arithmetic ALU operations
US4468748A (en) * 1981-06-11 1984-08-28 Data General Corporation Floating point computation unit having means for rounding the floating point computation result
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system
JPS59188740A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd フロ−テイング加算器
US4750110A (en) * 1983-04-18 1988-06-07 Motorola, Inc. Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US4943940A (en) * 1984-09-27 1990-07-24 Advanced Micro Devices, Inc. Floating point add/subtract and multiplying assemblies sharing common normalization, rounding and exponential apparatus
US4758974A (en) * 1985-01-29 1988-07-19 American Telephone And Telegraph Company, At&T Bell Laboratories Most significant digit location
JPH07104771B2 (ja) * 1985-05-10 1995-11-13 株式会社日立製作所 計算機
US5070475A (en) * 1985-11-14 1991-12-03 Data General Corporation Floating point unit interface
US4763294A (en) * 1985-12-19 1988-08-09 Wang Laboratories, Inc. Method and apparatus for floating point operations
US4858166A (en) * 1986-09-19 1989-08-15 Performance Semiconductor Corporation Method and structure for performing floating point comparison
US4884231A (en) * 1986-09-26 1989-11-28 Performance Semiconductor Corporation Microprocessor system with extended arithmetic logic unit
US4890253A (en) * 1988-12-28 1989-12-26 International Business Machines Corporation Predetermination of result conditions of decimal operations
US4999803A (en) * 1989-06-29 1991-03-12 Digital Equipment Corporation Floating point arithmetic system and method
US5253349A (en) * 1991-01-30 1993-10-12 International Business Machines Corporation Decreasing processing time for type 1 dyadic instructions
US5195052A (en) * 1991-12-13 1993-03-16 International Business Machines Corporation Circuit and method for performing integer power operations
JP3421933B2 (ja) * 1994-10-31 2003-06-30 弘之 河▲崎▼ 演算処理装置及び電子計算機
CN100412786C (zh) 1994-12-02 2008-08-20 英特尔公司 可以对复合操作数进行压缩操作的微处理器
US5687340A (en) * 1995-05-16 1997-11-11 Hewlett-Packard Company Reduced area floating point processor control logic utilizing a decoder between a control unit and the FPU
US5857096A (en) * 1995-12-19 1999-01-05 Intel Corporation Microarchitecture for implementing an instruction to clear the tags of a stack reference register file
US5701508A (en) * 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US6792523B1 (en) 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5940859A (en) * 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US5852726A (en) * 1995-12-19 1998-12-22 Intel Corporation Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner
US5835748A (en) * 1995-12-19 1998-11-10 Intel Corporation Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file
JP2000068834A (ja) 1998-08-20 2000-03-03 Hiroyuki Kawasaki 信号変換方法及び信号変換器
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1549478B1 (de) * 1966-09-13 1970-08-27 Ibm Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
DE2900324A1 (de) * 1978-01-05 1979-07-19 Honeywell Inf Systems Mikroprogrammierbare arithmetische fliesskommaeinheit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3557357A (en) * 1967-07-14 1971-01-19 Gen Electric Data processing system having time-shared storage means
US3697734A (en) * 1970-07-28 1972-10-10 Singer Co Digital computer utilizing a plurality of parallel asynchronous arithmetic units
CA1013861A (en) * 1972-10-10 1977-07-12 Adrianus J. Van De Goor Special instruction processor
US3871578A (en) * 1972-10-10 1975-03-18 Digital Equipment Corp Data processing system for multiplying and intergerizing floating point numbers
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4128876A (en) * 1977-04-28 1978-12-05 International Business Machines Corporation Synchronous microcode generated interface for system of microcoded data processors
US4130879A (en) * 1977-07-15 1978-12-19 Honeywell Information Systems Inc. Apparatus for performing floating point arithmetic operations using submultiple storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1549478B1 (de) * 1966-09-13 1970-08-27 Ibm Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
DE2900324A1 (de) * 1978-01-05 1979-07-19 Honeywell Inf Systems Mikroprogrammierbare arithmetische fliesskommaeinheit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Large Scale Integration", fourth EUROMICRO synposium on microprocessing ond microprogramming, Oct. 1978-Munich, North-Holland, Sn. 56 bis 64 *

Also Published As

Publication number Publication date
US4229801A (en) 1980-10-21
NL7908893A (nl) 1980-06-13
AU5223579A (en) 1980-07-10
GB2038049B (en) 1983-07-20
FR2447061A1 (fr) 1980-08-14
FR2447061B1 (fr) 1986-02-21
AU538983B2 (en) 1984-09-06
GB2038049A (en) 1980-07-16
JPH0128409B2 (de) 1989-06-02
JPS5582351A (en) 1980-06-21
DE2949375C2 (de) 1987-03-19
CA1123110A (en) 1982-05-04

Similar Documents

Publication Publication Date Title
DE2949375A1 (de) Gleitkommaprozessor
DE19735348B4 (de) Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben
DE19735350B4 (de) Vektorprozessor zum Ausführen paralleler Operationen und Verfahren hierfür
DE69233361T2 (de) Ein-Chip-Mikrocomputer
DE2948668A1 (de) Puffereinheit
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE3424962C2 (de)
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE102013111605A1 (de) Reduzierung des Leistungsverbrauchs in einer fusionierten Multiplizier-Addier-(FMA)-Einheit in Reaktion auf Eingangsdatenwerte
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE102014003790A1 (de) Parallelvorrichtung für hochkomprimierte Hochgeschwindigkeits-LZ77-Tokenisierung und Huffman-Codierung für Deflate-Komprimierung
DE112013003743T5 (de) Beschleunigte spurübergreifende Vektorreduzierungsbefehle
DE2837852A1 (de) Mikroprogrammierbarer rechner mit parallel arbeitenden prozessoren
DE3709675C2 (de)
DE102018124919A1 (de) Skalierbare speicheroptimierte Hardware für Matrix-Solve
DE112013003741T5 (de) Systeme, Vorrichtungen und Verfahren zum Durchführen einer Konfliktdetektion unf einer Übertragung von Inhalten eines Registers an Datenelementpositionen eines anderen Registers
DE102018125805A1 (de) Systeme, verfahren, und vorrichtungen für skalarproduktoperationen
DE102018132521A1 (de) Vorrichtung und verfahren zur verflachung und reduktion von schleifen in einer single instruction, multiple data- (simd-) pipeline
CH644461A5 (de) Digitale multipliziereinrichtung.
DE2830334C2 (de)
DE19735349B4 (de) Vektorprozessor und Verfahren zu dessen Betrieb
DE60027395T2 (de) Befehlsschleifenspuffer
DE69930893T2 (de) Digitaler Signalprozessor für Daten mit grosser Bitlänge

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee