DE1774554A1 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE1774554A1
DE1774554A1 DE19681774554 DE1774554A DE1774554A1 DE 1774554 A1 DE1774554 A1 DE 1774554A1 DE 19681774554 DE19681774554 DE 19681774554 DE 1774554 A DE1774554 A DE 1774554A DE 1774554 A1 DE1774554 A1 DE 1774554A1
Authority
DE
Germany
Prior art keywords
register
adder
exponent
arithmetic unit
multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE19681774554
Other languages
English (en)
Inventor
Porter Marion Gene
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.)
General Electric Co
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of DE1774554A1 publication Critical patent/DE1774554A1/de
Pending legal-status Critical Current

Links

Classifications

    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Description

5590 GEIiERAI ELECTRIC COMPANY, Scheneetady, N.Y. USA
Datenverarbeitungsanlage
Die Erfindung betrifft eine Datenverarbeitungsanlage mit einem Speicher, einer Datenverarbeitungseinheit, die mit dem Speicher zur Aufnahme von Informationsposten aus dem Speicher oder zur Abgabe von Informationsposten in den Speicher in Verbindung steht, und mit einem Rechenwerk, das mit der Datenverarbeitungseinheit zur Ausführung arithmetischer Operationen mit ihm zugeführten Informationsposten in Verbindung steht, wobei das Rechenwerk Modifiziervorrichtungen zur algebraischen Modifizierung des Wertes eines ihm zugeführten Informationspostens sowie eine Zwischenspeichervorrichtung enthält, die in der Lage ist, einen Informationsposten zu speichern und die mit den Modifiziervorrichtungen in Verbindung steht.
Datenverarbeitungsanlagen, die Rechenoperationen ausführen, enthalten normalerweise ein Rechenwerk, das außerdem eine Verknüpfungsvorrichtung, z.B. einen Addierer, zur arithmetischen Verknüpfung zweier oder mehrer Informationsposten oder Operandenwörter enthält. Bei einer binär arbeitenden Anlage enthalten diese Operandenwörter eine Reihe von binären Ziffern (Bits), die irgendeine Informationseinheit darstellen, z.B. eine numerische Größe. Außerdem gehören zum Rechenwerk in der Hegel mindestens zwei Zwischenspeicher oder Register, die die zu verarbeitenden Operandenwörter speichern, und ferner gehört dazu ein Schaltwerk, über das die den Inhalt dieser Register darstellenden Signale wählbar zur Verknüpfungsvorrichtung durohgeschaltet werden.
Ein Rechenwerk enthält normalerweise auch einen sogenannten
10-9884/1438- BADORiGiNAL
t TW 5 5.4
Steuerzähler. Der Steuerzahler ist ein Register, das eine Zahl speichert, die der Anzahl von Vorgängen entspricht, die bei der Ausführung eines speziellen Befehls ständig wiederkehren. So enthält der Steuerzähler beispielsweise bei einer Schiebeoperation die Anzahl der Plätze, um die der Inhalt eines Registers verschoben werden soll. Jedesmal, wenn der Schieberegisterinhalt verschoben wird, wird der SteuerZählerinhalt um die Anzahl der Schiebeschritte verändert, und zwar derart, daß,^ wenn der Steuerzählerinhalt einen vorbestimmten Wert erreicht, normalerweise 0, die Schiebeoperation beendet ist. Als weiteres Beispiel seien Multiplikations- und Divisionsbefehle angeführt. Hierbei wird der Steuerzählerinhalt normalerweise bei jeder Addition oder Subtraktion, die einer Multiplikations- oder Divisionsoperation entspricht, derart verändert, daß, wenn der Inhalt des Zählers einen vorbestimmten Wert erreicht, die gesamte Multiplikations- und Divisionsoperation beendet ist.
Üblicherweise wird ein getrenntes Register als Steuerzähler verwendet und für das Eingeben von Zahlen in diesen Zähler und dessen Inhaltsmodifikation gesorgt. Dies hat zur Folge, daß zusätzliche Bauteile erforderlich sind, nicht nur für das Register selbst, sondern auch für die logische Schaltung (Schaltwerk), die zum Durchschalten von Datensignaien über die diesen Inhalt modifizierende Vorrichtung in den üteuerzahler und zum Durchschalten von Signalen erforderlich ist, die den Inhalt des Steuerzählers darstellen.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Datenverarbeitungsanlage zu schaffen, die zwar dieselben Operationen wie uekannte Anlagen ausführen kann, aber weniger Bauteile enthält.
Gemäß der Erfindung wird diese Aufgabe dadurch gelöst, daß das Rechenwerk ferner eine Zeitaufteilungsvorrichtung zur zeitlichen Aufteilung eines Teils der Zwisohenspeichervorrichtung
109884/U38
BAD ORIGINAL
im Zeitmultiplexverfahren enthält und daß dieser Teil einen Teil eines Informationsposten während einer ersten Zeitspanne der Ausführung eines Befehls und ferner eine Zahl (einen Zählerstand) speichert, die (der) die Anzahl sich während einer zweiten Zeitspanne der Befehlsausführung wiederholender Operationen wiedergibt.
D.h. gemäß der Erfindung wird ein Teil der Zwischenspeichervorrichtung oder Register, der bereits in der Anlage vorhanden ist, zur Speicherung eines der Operandenwörter und als Steuerzähler verwendet, und zwar nach dem sogenannten Zeitmultiplexverfahren, so daß dieser Teil mehrfach ausgenützt wird. Dabei kann der im Zeitmultiplexbetrieb arbeitende Teil des Registers während einer ersten Zeitspanne den Exponententeil eines Operandenwortes enthalten. Wenn alle Exponentenrechnungen beendet sind, wird dieser Teil des Registers nicht mehr zur Speicherung des Exponenten benötigt. Deshalb wird dieser Teil des Registers während einer zweiten Zeitspanne bei der Befehlsoperation als Steuerzähler verwendet, wobei die seinen Inhalt darstellenden Signale durch denselben Teil der Verknüpfungsvorrichtung hindurchgeschaltet werden, der für Exponentenrechnungen verwendet wird, um die bei der Operation erforderliche Erhöhung oder Verringerung des Zählerstandes zu bewirken. Daraus sieht man, daß durch Verwendung ein und desselben Teils eines bereits vorhandenen Registers im Zeitmultiplexbetrieb kein getrenntes oder zusätzliches Steuerzählerregister mit zugehöriger Schaltlogik erforderlich ist.
Die Erfindung und ihre Weiterbildungen werden nun anhand der Abbildungen eines Ausführungsbeispiels näher beschrieben.
Fig. 1 ist ein Blockschaltbild der größeren Teile einer typischen Datenverarbeitungsanlage,
Fig. 2 ist ein Blockschaltbild eines erfindungsgemäßen Rechenwerks und die
10988 A/U38
Fig. 3» 4 und 5 sind Blockschaltbilder, in denen die Bauteile des Rechenwerks nach Fig. 2, das erfindungsgemäß mit einem im Zeitmultiplexbetrieb arbeitenden Register versehen ist, ausführlicher dargestellt sind.
109884/U3 8
Von der gesamten Anlage, der Weiterleitung der Daten, Ausführung von Befehlen, Auswahl und Erzeugung von Signalen ist nur soviel gezeigt, wie es zum Verständnis der Erfindung erforderlich ist. Übliche Bauelemente oder solche, die keine unmittelbare Beziehung zur Erfindung haben, sind weggelassen. Die einzelnen Bauelemente' und Signale sind zum besseren Verständnis der Erfindung mit willkürlichen Codes bezeichnet. Im allgemeinen-werden Register und Flipflops mit großen Buchstaben bezeichnet, an die zur Bezeichnung von Stufen oder Taktintervallen irgendeiner vorbestimmten Stufe Dezimalzahlen angefügt sind. Teilweise sind auch nur schaltalgebraische Gleichungen angegeben, da deren gerätetechnische Verwirklichung für den Fachmann keine Schwierigkeit bedeutet.
Die Erzeugung einer Anzahl von Signalen, die gewöhnlich in hechenanlagen auftreten, wird nicht beschrieben. Sie können zum Beispiel zusammen mit Taktsignalen nach den Regeln der Schaltalgebra in an sich bekannter Weise erzeugt werden. Die willkürliche Bezeichnung dieser Signale durch Buchstaben und Zahlen wurde zur Vermeidung von Verwechslungen und der wiederholung des Wortes "Steuerung" verwendet.
109884/U38
Die Datenverarbeitungsanlage nach Fig. 1 enthält ein Speicherwerk. 10, Eingabe/Ausgabe-Peripheriegeräte 11, ein Gleitpunkt-Rechenwerk 16 und eine Datenverarbeitungseinheit 12. Die Datenverarbeitungseinheit 12 enthält einen Eingabe/Ausgabe-Steuerteil 13, einen Datenverarbeitungseinheitsteuerteil T4 und einen Reohenteil 15. Die Datenverarbeitunseinheit 12 wird hier nicht näher beschrieben, da dies nicht zum Verständnis der Erfindung eines Zeitmultiplex-Registers im Gleitpunkt-Rechenwerk erforderlich ist. Die verschiedene Einheiten verbindenden Leitungen stellen symbolisch den Informationsfluß zwischen den Einheiten dar, z.B. digitale Daten, die alphabetische Zeichen oder numerische G-rößen, digitale Befehls signale oder ähnliches repräsentieren.
Pig. 2 ist ein größeres Blockschaltbild, das die funktionsblöcke einer Steuerlogik, Register und Datenflußwege im Gleitpunkt-Rechenwerk 16 nach Fig. 1 zeigt. Über Leitungen ΙΙΟΌ-ΙΙ23 und IIL0-LL4 (Fig. 2) werden Informationsposten aus der Datenverarbeitungseinheit 12 ins Gleitpunkt-Rechenwerk 16 übertragen. Diese Informationsposten werden in ein B-Register 20 über B-Register-Übertragungsschaltglieder 18 übertragen. Das B-Register ist ein 48-Bit-Zwischenspeicherregister, das mehrere an sich bekannte Funktionen ausführt.
Während der Befehlsausführung werden Informationen wählbar aus dem B-Register in den Addierer 28, ins A-Register 26 und in eine Algorithmusausführungssteuerlogik 30 übertragen. Während dieser Zeit erhält das B-Register auch Informationen vom Addierer und aus dem Α-Register. Die Bitstellen 59—46 des B-Registers 20 sind "zeitlich aufgeteilt", d.h. werden im Zeitmultiplexbetrieb verwendet. Während eines Teils der Zeit dienen diese Stellen zur Speicherung des Exponenteils eines 48-Bit-Gleitpunktwortes, während sie zu anderen Zeiten als Steuerzähler 22 dienen. Dies ist deshalb möglicij, weil bei allen FestPunktrechenoperationen nur die Bits 00-23 des B-Registers
109884/1438
- τ-
verwendet werden, d.h. die Pestpunktzahlen in absoluter binärer Form verarbeitet werden und keinen Exponenten haben. Obwohl alle 48-Bit-Gleitpunktoperanden einen Exponenten haben und Exponentenrechnungen erfordern, so daß sie die Bitstellen 39-46 des B-Registers benötigen, sind diese Rechnungen doch beendet, bevor bei der Befehlsausführung der Steuerzähler 22 benötigt wird. Dieses Verfahren der zeitlichen Aufteilung des Steuerzählers, d.h. der Zeitmultiplexbetrieb des Steuerzählers wird noch ausführlicher bei dem Gleitpunktmultiplikationsbefehl PMP beschrieben. Der Steuerzähler 22 kann in Abhängigkeit von dem ausgeführten Befehl um veränderliche Zahlen weitergeschaltet werden (erhöht werden) oder auf eine Zahl gesetzt werden, die der Anzahl von Bitstellen entspricht, um die während der Ausführung von Gleitpunkt-Schiebebefehlen verschoben werden soll. Der Steuerzähler 22 wird auch bei Multiplikations- und Divisionsbefehlen zur Steuerung der Anzahl überprüfter Bits und der Anzahl erzeugter Quotientenbits verwendet.
Der Addierer 28 ist 47 Bit lang und besteht aus zwei Teilen. Im ersten Teil (Bits 00-58) enthalten die Bitstellen 00-37 die Mantisse des Gleitpunktwortes, und die Bitstellen 38 enthalten das Vorzeichen der Mantisse. Der zweite Teil, die Bitstellen 39-46, enthält den Gleitpunktwortexponenten. Beide Teile des Addierers sind Volladdierer, die Eingangesignale aus dem B-Register 20, dem Α-Register und einem Q-Register 32 erhalten und während der Ausführung von Gleitpunktbefehlen Additionsoperationen für Mantissen- und Exponentenrechnungen ausführen. Die Ergebnisse dieser Rechnungen werden wählbar in das A-Register oder das B-Register übertragen.
Das Α-Register ist ein 48-Bit-Akkumulator. Im Α-Register wird die Mantisse eines Gleitpunktwortes in den Stellen 00-38 dargestellt, wobei das Bit 38 das Vorzeichenbit ist. Der Exponent · wird durch die Bits 39-47 dargestellt, wobei das Bit 47 das
1 098 84/U38 bad
Vorzeichenbit des Exponenten ist. Wenn der Inhalt des A-Re- ! gisters 26 Null ist, wird dies durch eine A-Register-Nulllogik 36 festgestellt, indem diese ein Signal AZR erzeugt, das der Datenverarbeitunseinheit 12 (Fig. 1) zugeführt wird.
Wenn das Gleitpunkt-Rechenwerk 16 im Gleitpunktbetrieb arbeitet, wird das Vorzeichenbit 38 über eine Leitung ARS und eine Logik 34, die A-Register-Vorzeichenlogik (siehe Fig. 5), in die Datenverarbeitungseinheit 12 übertragen. Wenn das Gleitpunkt-Rechenwerk im Festpunktbetrieb arbeitet, wird das Bit 23 über die A-Register-Vorzeichenlogik 34 aus dem Α-Register in die Datenverarbeitungseinheit übertragen. Das Α-Register gibt ferner während der Ausführung von Rechenoperationen Ausgangssignale an den Steuerzähler 22 und das Q-Register 32 ab.
Das Q-Register 32 ist ein 39-Bit-Akkumulator, wobei das Bit 38 ein Vorzeichenbit ist. Während der Ausführung bestimmter Befehle bestimmt das Vorzeichenbit 38 des Q-Registers zusammen mit dem Vorzeichenbit 38 des Α-Registers das Endgültige Vorzeichen einer Zahl. Die Ausgangesignale d.es Q-Registers 32 werden bei Linksverschiebeoperationen dem Addierer 28 und dem A-Register 26 zugeführt.
Wie schon gesagt, wird eines der Ausgangssignale des B-Registers 20 ins I-Register 24 übertragen. Das I-Register ist ein 7-Bit-Befehlsregister, das den Operationscode oder einen Teil des Operationscodes, desjenigen Befehls speichert, der gerade vom Gleitpunkt-Rechenwerk ausgeführt wird. Der I-Registerinhalt wird einer Befehlsdekodierlogik 40 zugeführt, die den Operationscode des Befehlswortes dekodiert, um den Betrieb des Gleitpunkt-Rechenwerks während der Ausführung des Befehls zu steuern.
109884/U38
Die Algorithmusausführungssteuerlogik 30 erhält ihre Eingangssignale vom Steuerzähler 22 des B-Registers 20 und verwendet diese zur Erzeugung von Steuersignalen, die das Gleitpunktrechenwerk 16 bei der Auslösung der Algorithmusausführung und der !Feststellung des Endes einer Algorithmusausführung überwachen.
Eine weitere logik, die Steuerzustandslogik 42, gibt Signale ab an eine und erhält unter anderem Signale von einer Gruppe von Flipflops, die zusammen Zustandsindikatoren 44 genannt werden. Die Steuerzustandslogik 42 gibt ein Signal fPB an die Datenverarbeitungseinheit 12 ab und erhält Signale ITS, I/DS und SPPB von der Datenverarbeitungseinheit 12. Die Steuerzustandslogik 42 enthält Logik und Flipflops, zur Steuerung der inneren Ausführung verschiedener Befehle in dem Gleitpunkt-Rechenwerk 16.
Die Zustandsindikatoren 44 (Fig. 2) sind mehrere Flipflops, die Steuersignale von der Steuerzustandslogik 42 erhalten. Zu den ZustandsindiJcatoren 44 gehört ein FUNR-Flipflop 46 (unnormalized mode flipflop), daa gesetzt ist, wenn das Gleitpunkt-Rechenwerk 16 im xiichtnormaliaierten Betrieb arbeitet. Wenn das FUNR-Flipflop 46 zurückgesetzt ist (d.h. seinen Normalzustand einnimmt), normalisiert das Gleitpunkt-Rechenwerk 16 Zahlen vor der Ausführung eines Befehls. Wenn das Gleitpunkt-Rechenwerk Gleitpunktzahlen verarbeitet, wird die Mantisse als gebrochen angesehen, d.h. das Binärkomma wird stets als links vom Bit liegend angesehen, wenn die Zahl im A-Register 26 erscheint. Positive und negative Zahlen werden dadurch normalisiert, daß die Mantisse solange nach links verschoben wird, bis das Bit in der höchsten Stelle (Bit 37) im Α-Register eine binäre 1 ist. Bei jeder linksverschiebung um eine Stelle wird vom Exponenten im Α-Register eine 1 subtrahiert.
Ein zweites Flipflop, das FDPR-Flipflop 48 (double precision
109884/U38
- ίο -
mode flip-flop), wird gesetzt, wenn das Rechenwerk 16 im Doppelpräzisionsbetrieb arbeitet. In diesem Betrieb hat das Rechenwerk 16 die Fähigkeit, Doppelpräzisionsgleitpunktrechnungen auszuführen. Eine ausführlichere Beschreibung dieses Betriebs ist für das Verständnis der Erfindung nicht erforderlich.
Überlaufzustände werden durch das Setzen eines FOFH-Flipflop 50 (over-flow hold flip-flop) durch das Α-Register angezeigt. Ein Überlaufzustand tritt auf, wenn der resultierende Exponent größer als +255 (dezimal) wird.
Unterlaufzuatände werden von einem FUFH-Flipflop 52 (under-flow hold flip-flop) angezeigt, das von einem Α-Register—Unterlauf gesetzt wird. Ein Unterlaufzustand tritt auf, wenn der resultierende Exponent kleiner als -255 (dezimal) wird. Wenn ein Unterlauf auftritt, werden in die Bitstellen 00-38 des A-Registera binäre Nullen gesetzt, und der A-Register-Exponent wird auf den größten negativen Exponenten (-255 dezimal) eingestellt. D.h. in das Exponentenfeld des Α-Registers werden nur Einsen gesetzt.
Wenn bei der Ausführung eines Divisions-Befehls ein Versuch gemacht wird, durch 0 zu dividieren, wird ein FDCH-FIipflop (divide check hold flip-flop) gesetzt. Dieses Flipflop wird zur Erzeugung eines Signals RQT verwendet, das später noch beschrieben wird.
Die Statorindikatoren 44 enthalten ferner ein FTEP-Flipflop (trap mode flip-flop), das während der Ausführung eines Befehls gesetzt wird, der Grleitpunktoperation genannt wird. Durch das Setzen dieses Flipflop wird daa Rechenwerk 16 in* einen "Fangbetriebazustand" gebracht. Wenn daa FTRP-Flipflop 56 gesetzt ist und ein Überlauf, -Unterlauf oder ein Dividiercheck (eine
109884/U38
• - 11 - ■
Dividierhemmung) auftritt, wird ein Signal RQT (Fig. 2) erzeugt, das eine Programmunterbrechung durch das Rechenwerk verlangt.
Ein weiteres Flipflop, das FIX-FIipflop 58 (fixed point mode flip-flop) wird dazu verwendet, das Rechenwerk 16 in den Gleitpunktbetrieb zu bringen. Wenn dieses Flipflop 58 gesetzt ist, arbeitet das Rechenwerk 16 im Festpunktbetrieb, wodurch es bestimmt, daß alle vom Rechenwerk 16 zu verarbeitenden Datenwörter 24 Bits lang sind. Wenn sich diese Zahl im A-Register befindet, befindet sie sich in den Bitstellen 00-25, wobei die Bitstelle 23 das Vorzeichenbit enthält. Wenn das FFIX-Flipflop gesetzt ist, wird das Signal FIX der Datenverarbeitungseinheit 12 zugeführt. Dieses Flipflop 58 wird durch die Ausführung eines Gleitpunkt-Operationsbefehls oder eines Festpunktspeicherbefehls gesetzt. Durch die Ausführung eines Gleitpunktspeicherbefehls oder des erwähnten Gleitpunktoperationsbefehls kann es wieder zurückgesetzt werden.
Der Zustand der sieben Flipflops FUNR 46, FDPR 48, FOFH 50, FUFH 52, ü'DCH 54, FTRP 56 und FFIX 58 wird wänrend der Ausführung eines Gleitpunktbefehls der A-Register-Übertragungslogik 38 und von dort über die Leitungen DL00-DL23 in die Datenverarbeitungseinheit 12 übertragen. Diese Flipflops übertragen auch Zustandsbedingungen in das Gleitpunkt-Rechenwerk 16 für verschiedene Steuerzwecke. Die beiden letzten Flipflops FGRE 60 und FLES 62, die in den Zustandsindikatoren 44 gezeigt sind, werden während der Ausführung des Gleitpunktvergleichsbefehls verwendet.
Eine Logik, die als Durchgeschalteter-Takt-Verstärker 64 (Gated Clock Amplifiers) bezeichnet wird, gibt mehrere durchgeschaltete Ausgangssignale an verschiedene Teile des Rechenwerks 16 zur Steuerung der Verschiebung von Informationen zwischen den Registern ab, die verschiedene Steuerzustände darstellen, die .ϊ/ährend der Verschiebung von Informationen innerhalb der Register
109884/1438
BADORiGSMAL
erforderlich sind. Der Aufbau der internen Logik dürfte sich aus der folgenden Beschreibung ergeben. Die- Verstärker 64 geben das Signal RUN an die Datenverarbeitungseinheit 12 ab und erhalten ,von dieser das Signal GCLK (gated clock). Dieses Signal wird zum Durchschalten der Ausgangssignale der Verstärker 64 zum Rechenwerk 16 und zur Bildung von Signalen verwendet, die einem Taktzähler 66 zugeführt werden. Der Taktzähler 66 liefert den Grundtakt in der Steuerzustandslogik 42, und zwar während der Ausführung von Befehlen im Rechenwerk 16. Die Ausgangssignale des Zählers 66 werden zum Durchschalten der verschiedenen Daten und Steuersignale in Register und zugehörige Logik, während der Ausführung von Befehlen verwendet.
109884/U38
Der Taktzähler 66 liefert den Grundtakt während der Steuerzustände im Rechenwerk 16.und "besteht hauptsächlich aus sech3 Plipflops mit den jeweiligen Ausgangssignalen F0CO-FIC5. Der Taktzähler 66 ist als Ringzähler aufgebaut. Aufgrund einer entsprechend aufgebauten Eingangssignaldurchschaltlogik ist er jedoch zusätzlich in der Lage, von jedem Zustand der Ausgangssignale auf den Zustand des Ausgangssignals PTCO und von den Ausgangszuständen PTC2 oder PT03 auf den Ausgangszustand PTC1 zurückzukehren. Der Taktzähler 66 kann auch in den Zustand PTC1 verklinkt sein, und zwar bei der Ausführung von Schiebefunktionen in den Steuerzuständen PADJ, PAEG und PPHR. Jedesmal wenn ein neuer Steuerzustand beginnt, wird der Taktzähler 66 auf seinen Ausgangssignalzustand PTGO gesetzt. Alle Takt-zählerflipflops werden durch die Kombination des Signals GCLK mit einem Preigabesignal, das bei einer Operation gebildet wird, die in den verschiedenen Steuerzuständen ausgeführt wird, gesetzt oder zurückgesetzt. So hat jedes der Ausgangssignale PTC0-PTC5 eine Grunddauer, die gleich der Periodendauer des Signals GCLK ist. Im vorliegenden Beispiel beträgt die Periodendauer 350 Nanosekünden. Eine Ausnahme von dieser allgemeinen Regel bildet der Pail, daß der Taktzähler 66 während der Ausführung von Schiebeoperationen im Zustand PT01 verklinkt ist.
Während der" Ausführung von Befehlen durch das Rechenwerk 16 wird der Taktzähler 66 entweder der Reihe nach oder nicht der Reihe nach auf die einzelnen Ausgangszustände PTC0-PTC5 weitergeschaltet, wobei diese Reihenfolge von dem Befehl, der gerade ausgeführt wird, und dem Steuerzustand, in dem sich das Rechenwerk 16 während der Ausführung eines Befehls befindet, bestimmt wird. Während das Rechenwerk 16 Befehle ausführt, finden in jedem Steuerzustand mit jedem Takt PTCO (PTC0-PTC5), der während dieses Steuerzustands auftritt, verschiedene Operationen statt. Eine ausführlichere Beschreibung dieses Teils der Anlage ist zum Verständnis der Erfindung nicht erforderlich.
10988A/U38
177A554
Die Algorithmusausführungssteuerlogik 30 liefert Signale, die die rechtzeitige Übertragung von Informationen während der Ausführung von Befehlen aus den verschiedenen Registern in den Addierer 28 steuern. Die Logik 30 enthält mehrere Flipflops und zugehörige Logik und erhält Eingangssignale von der Steuerzustandslogij£ 42, d«r Befehlsdekodierlogik 40, dem Taktzähler 66, dem B-Register 26, dem Addierer 28 und den Verstärkern 64. Me Signale werden in der Algorithmusausführungssteuerlogik 30 dekodiert und zum Setzen und Rücksetzen darin befindlicher Flipflops, die in den Zeichnungen nicht im einzelnen gezeigt sind, verwendet. Der spezielle Aufbau der Logik 30 ergibt sich für den Fachmann aus der folgenden Beschreibung.
Das Rechenwerk 16 wird von der Datenverarbeitungseinheit 12 gesteuert und ist in der Lage, mit der Datenverarbeitungseinheit 12 parallel zu arbeiten. D.h. während das Rechenwerk 16 einen Befehl ausführt, erhält die Datenverarbeitungseinheit 12 den nächsten Befehl aus dem Speicher und modifiziert die Adresse des Adressteils des Befehlswortes. Die Betriebsweise dieser Einheiten ist etwa folgende: Die Datenvera.rbeitungseinh.eit 12 erhält ein Gleitpunkt-Befehlswort aus der Speichereinheit 10. Wenn eine Adressenmodifikation erforderlich ist, wird diese von der Datenverarbeitungseinheit ausgeführt. Falle eine Adressenmodifikation vorgeschrieben ist, erhält die Datenverarbeitungseinheit 12 einen oder mehrere Operanden (je nach dem Befehl) aus dem Speicher 10. Unmittelbar nach Erhalt des ersten Datenwortes beginnt das Rechenwerk 16 mit der Ausführung des Befehls, wobei die Operation im Falle eines Befehls, bei der eine Algorithmusoperation der Exponentiairechnung vorkommt, mit dem Exponenten ausgeführt wird. Wenn das Rechenwerk den Befehl dekodiert und dabei feststellt, daß er keine zwei Datenwörter erfordert, beendet es eofort die Befehlsausführung, und gleichzeitig erhält die Datenverarbeitungseinheit 12 den nächsten Befehl aus dem Speicher 10, während das Rechenwerk 16 seinen Befehl ausführt. Wenn bei der Dekodierung festgestellt wird,
109884/U38
_ 15 -
daß der Befehl zwei Datenwörter erfordert, geht das Rechenwerk 16 nach der Exponentenreehenoperation solange in einen Wartezyklus über, bis die Datenverarbeitungseinheit 12 das zweite Datenwort in das Rechenwerk 16 überträgt. Bei Erhalt des zweiten Datenwortes setzt das Rechenwerk 16 die Befehlsausführung fort. Die Datenverarbeitungseinheit 12 erhält sofort den nächsten Befehl aus der Speichereinheit und führt irgendeine vorgeschriebene Adressenmodifikation mit der ersten Adresse aus, Wenn die Datenverarbeitungseinheit 12 den Befehl aus dem Speicher geholt und erforderlichenfalls die Adresse modifiziert hat, prüft die Datenverarbeitungseinheit 12, ob das Rechenwerk 16 noch den vorhergehenden Befehl ausführt, und wenn dies der Pail ist, wartet die Datenverarbeitungseinheit 12. Das Rechenwerk führt also einen Befehl parallel mit dem Aufsuchen eines Befehls und der Adressenmodifikation durch die Datenverarbeitungseinheit 12 aus.
Die internen Operationen im Rechenwerk 16 werden von den verschiedenen AusgangsSignalen der Steuerzustandslogik 42 gesteuert. Im einzelnen enthält die Steuerzustandslogik 42 zehn Flipflops, deren Zustände verschiedene interne Steuersignale für das Rechenwerk 16 bestimmen.
Gleitpunktzahlen
Die Verwendung von Gleitpunktzahlen ist bei der Ausführung von solchen Rjchenoperationen vorteilhaft, bei denen von vornherein klar ist, daß die Größenordnung der Zahlen entweder verhältnismäßig groß oder unvorhersehbar ist, oder bei denen eine Untersuchung der Größenordnung der Zahlen, die bei der Rechnung auftreten, ebenso viel Arbeit verursachen würde, wie die Rechnung selbst. Wenn dieser Fall in einer Datenverarbeitungsanlage auftritt, die mit Festpunktzahleη arbeitet, ist es häufig schwierig für den Programmierer, ständig für die richtige
1098 8A/U38
177A554
Platzierung des Binärkoinmas (das dem Dezimalkomma im Dezimalsystem entspricht) zu sorgen. Dieses Problem wird dadurch "beseitigt, daß man eine Logik zur Ausführung von Rechenoperationen mit der Gleitpunkt-Zahlenschreibweise, bei der die Gleitpunktzahl durch zwei Teile dargestellt wird, nämlich dem Exponenten und der Mantisse, kombiniert.
Der Exponent stellt die Größenordnung der Zahl und die Mantisse die genaue Größe der Zahl in der vom ersten Teil (dem Exponenten) bestimmten Größenordnung dar. Die beiden Ausdrücke, Ex-
ponent und Mantisse, werden wegen ihrer Ähnlichkeit mit Logarithmen verwendet.
In dem erfindungsgemäßen Rechenwerk 16 sind alle Zahlen in Binärform dargestellt. Da der Exponent einer Gleitpunktzahl die Größenordnung, d.h. die Potenz der Basis, und die Mantisse die Zahl innerhalb der Größenordnung angibt, läßt sich eine Gleit-
E
punkt-Binärzahl als M · 2 schreiben. In diesem Ausdruck ist M eine vorzeichenbehaftete Mantisse - die 2 ist die Wurzel der Binärzahl, die im Exponenten dargestellt werden soll - und E ein vorzeichenbehafteter Exponent.
Dem Exponenten und der Mantisse ist jeweils ein eigenes Vorzeichenbit zugeordnet, wobei eine binäre 0 einen positiven und eine binäre 1 einen negativen Wert darstellt. Es sei darauf hingewiesen, daß das Binärkomma zwischen dem Vorzeichen der Mantisse und der höchsten Bitstelle der Mantisse (zwischen den Bits 27 und 38) gedacht werden muß, wodurch die Mantisse M also stets als eine gebrochene Binärzahl dargestellt wird, * deren Wert kleiner als 1 ist.
Eine Gleitpunktzahl läßt sich mit der größten Genauigkeit darstellen, wenn der gebrochene Teil (die Mantisse) der Zahl normalisiert wird. Eine Gleitpunktzahl wird dann als normalisiert angesehen, wenn in der höchsten Stelle der Mantisse eine binäre
10988A/U38
BAD ORIGINAL
ί steht. Dagegen wird sie als nicht normalisiert angesehen, wenn an dieser Stelle eine 0 steht. So ist "beispielsweise die Binärzahl (,100) eine normalisierte Zahl, wogegen die Zahl (,001) eine unnormalisierte Zahl ist. IJm eine Zahl zu normieren, wird die Mantisse solange nach links verschoben, bis in der höchsten Stelle eine 1 erscheint. Um beispielsweise die Binärzahl (,001) zu normalisieren, wird die Zahl um zwei Stellen nach links verschoben, so daß die Zahl (,100) entsteht, und der Exponententeil der Zahl wird entsprechend der folgenden Beschreibung eingestellt.
Im binären Zahlensystem steigen die negativen Potenzen von 2 auf der rechten Seite des Kommas von links nach rechts an, so daß die Stellen auf der rechten Seite des Binärkommas von links nach rechts fortschreitend die folgenden Stellenwertigkeiten haben: 1/2 (2~1), 1/4 (2~2), 1/8 (2~3) usw. Man sieht also, daß eine Linksverschiebung der Mantisse um eine Stelle gleichbedeutend mit einer Multiplikation der Zahl mit 2 ist und daß die Mantisse einer normalisierten Zahl einen Bruchteil größer oder gleich 1/2, aber kleiner als 1 ist.
E Man sieht auch aus der Gleitpunkt-Zahlenschreibweise M . 2 , daß der Bruchteil (die Mantisse) der Zahl nicht unter Einhaltung des Wertes der Zahl normalisiert werden kann, ohne daß der Exponent entsprechend eingestellt wird, für jede binäre 0, die während der Normalisierung nach links aus der Mantisse herausgeschoben wird, muß also vom Exponenten eine binäre 1 subtrahiert werden, um den wahren Wert der gesamten Zahl beizubehalten« Um beispielsweise die in der Gleitpunktsehreibweise (auch Eadixschreibweiae genannt) dargestellte Binärzahl 10,01 (» 2 · t/4 = 4. . 1/4 κ 1) zu normalisieren, wird die rechts vom Punkt stehende Mantisse um ein Bit nach links verschoben und von dem links vom Punkt stehenden Exponenten eine 1 subtrahiert. Nach dieser Normalisierung lautet die Zahl 01.10 (= 21 · 1/2 =1). Der Wert der Zahl hat eich also nicht
109884/1438
geändert. Es sei noch darauf hingewiesen,, daß der Betrag des Exponenten (E) links vom Punkt von niedrigeren zu höheren Potenzen von 2 ansteigt. D.h. von rechts nach links beim Punkt beginnend lauten die Exponenten (E) 1, 2,, 4 usw.,
Im folgenden soll anhand der Rechenoperation "Sleitpnnktmultiplikation" (PMP) ausführlicher beschrieben werden, wie der Steuerzähler 22 zeitlich aufgeteilt wird, d.h. nach dem Zeitmultiplexverfahren arbeitet. Zuvor soll jedoch kurz die Art des im erfindungsgemäßen Gleitpunkt-Rechenwerk 16 verwendeten Multiplikationsalgorithmus erlä'utert werden. Der Eulti·* plikationsalgorithmus basiert auf dem Prinzip einer Folgemultiplikation. Diesem liegt die Erkenntnis zugrunde, daß, wenn der Multiplikator eine Folge von binären Einsen enthält, nicht mit jedem Bit das Teilprodukt gebildet zu werden braucht.
Dieses Multiplikationsverfahren beruht auf den drei folgenden Erkenntnissen; 1) Lautet die Binärzahl 0OtGQtGO,.- dann ist dies
5 2
gleich 2 + 2 . Man sieht also, daß zur Bildung des Produkts
(0010010O)-N lediglich die Summe 25 . N + 22 · I gebildet zu werden braucht.
2) Die Binärzahl 0011111 kann geschrieben werden als 2^ - 2 , d.h. 0100000 - 1 = 0011111. Aus diesem zweiten Beispiel sieht man, daß, wenn ein Multiplikator eine derartige Folge von Eineen enthält, nicht mit jeder 1 das Teilprodukt gebildet, sondern lediglich vom entsprechenden Wert (2 ) des Multiplikanden ein entsprechender Wert (2 ) subtrahiert zu werden braucht. ·
3) Die Binärzahl 0011011 läßt sieh in der Form. 25 - £2 - 2° schreiben, da dies gleich 0011111 - 2 ist. Jene ZaM enthält also eine !alge von Eingen mit einer *$ingp.&(&lba&i}l$iß* Ό.. Eine eingeschlossene 0 ist gleichbedeutend mit der &aib tratet ion einer entsprechenden, Potenz von 2, Diese .tiegel gill*,. βόψχϊι. für mehr als eine eingeschlossene 0. Wenn beispielsweise eine Folge von Einsen von den Stellen A bis D in den Stellen B rand C
109884/1438
-. ί9 -
Nullen enthält, dann läßt sie sich in der Form 213+1 _ 2° - 2B - 2A schreiben.
Wenn-man diese drei Feststellungen kombiniert, ist es möglich, jede Binärzahl in Potenzen von 2 darzustellen, wobei das Bestreben dahingeht, eine möglichst kleine Anzahl von Potenzen von 2 in der Zahlendarstellung zu erhalten. Dies wird in dem folgenden Beispiel gezeigt:
15 11 5 x 3 11 χ 9 1 χ O + 1 8 7 .6 5 4 3 1 O
O 1 1 0 + 1 1. O O 1 O O 1 1 1
= 21 2 12 _ 2 26 "St-
CVI
Man sieht, daß bei der Auswahl der geeigneten Zweierpotenzen zur Verkürzung der Multiplikation verschiedene Probleme auftreten können. Das Hauptproblem besteht darin, zu bestimmen, wann der Multiplikand zum Teilprodukt addiert, wann der Multiplikand vom Teilprodukt subtrahiert werden muß und wann das Teilprodukt lediglich verschoben zu werden braucht. Bei dem folgenden Beispiel werden über die einzelnen Bitstellen Zeichen gesetzt, statt die Potenzen von 2 explizit anzugeben, wobei ein Pluszeichen über einer Bitstelle des Multiplikators anzeigt, daß der Multiplikand zu dem Teilprodukt aus dieser Stelle addiert werden sollte, ein Minuszeichen über einer Bitstelle eine Subtraktion von dieser Stelle anzeigt und ein P über einer Bitstelle anzeigt, daß lediglich eine Verschiebung vorgenommen zu werden braucht. Bei Verwendung dieser Schreibweise erhält deren Multiplikator nach obigem Beispiel folgende Form:
0 110 1110 0 10 0 1111
109884/Ü38
Wenn der Multiplikator bei der Ausführung dieses Multiplikationsalgorithmus von der niedrigsten zur höchsten Stelle nach rechts verschoben wird, muß jedes Bit daraufhin überprüft werden, ob zu addieren, zu subtrahieren, oder zu verschieben ist. Obige Feststellung läßt sich in Ausdrücken des zuvor erwähnten Prinzips der Folgen von Einsen wie folgt zusammenfassen: Zwei oder mehrere benachbarte Einsen bilden eine Folge wird immer als T interpretiert. Eine 0 links von der 1 in der höchsten Stelle in einer Folge wird als 0 interpretiert, z.B. wie bei
P+PPPP-der Binärzahl 0011111.
Die Folge von Nullen kann getrennte Nullen enthalten, d.h.
jede Null kann von Einsen flankiert sein. Diese Nullen werden
_ P+PP-P-P-interpretiert als 0, z.B. 001101011. Getrennte Einsen können
ebenfalls vorliegen. Diese sind dann von Nullen flankiert und
+ PP+P+PP
werden als 1 interpretiert, z.B. 0010100. An diesen Beispielen sieht man, daß, wenn man von rechts nach links geht und einer Folge von Einsen begegnet, eine Subtraktion stattfinden muß und eine Subtraktion nur innerhalb einer Folge von Einsen stattfinden kann. Beim, Verlassen einer Folge von Nullen findet eine Addition statt, und nur außerhalb einer Folge von Nullen können Additionen stattfinden. Schließlich sieht man, daß, wenn man von rechts nach links geht, eine Folge von Einsen nicht eher eingeleitet wird, als bis zwei aufeinanderfolgende Einsen auftreten, und eine Folge von Einsen hör^iiicht eher auf, als bis mindestens zwei aufeinanderfolgende Nullen auftreten.
Eine ausführlichere Beschreibung dieses Multiplikationsverfahrens findet sich in dem Buch "The Logik of Computer Arithmetic" von Ivan Flores, Prentics-Hall, 1963·
Nach diesen Vorbemerkungen soll nun die Ausführung des Befehls FMP (Floating Multiply) beschrieben werden, Unterder Annahme, daß der Befehl FMP aufgetreten ist. In diesem Zeitpunkt wird
109884/1438
der Befehl MiP von der Befehlsdekodierlogik 40 dekodiert, und der Multiplikator befindet sich im A-Register.
Das erste Operandenwort in der Dabenverarbeitungseinheit wird ins B-Register übertragen. Dann wird der Multiplikator aus dem Mantissenteil des Α-Registers ins Q-Register übertragen, und zwar aus den Bits 00-37 in die Bits 00-37, und die A-Register-Mantissenfeldbits 00-37 werden durch Übertragung des Addiererinhalts in das Α-Register zurückgesetzt, wobei alle Addierereingänge gesperrt werden. Das Produktmantissenvorzeichen wird errechnet und in der Q-Register-Vorzeichenbitstelle 38 gespeichert, und zwar durch Setzen von Q38 auf eine binäre 1, wenn das A-Register-Mantissenbit 38 nicht gleich dem B-Register-Mantissenbit 38 ist. Das Bit Q38 wird zurückgesetzt, wenn A38 gleich B38 ist. Auch B38 und A38 werden zurückgesetzt und der Taktzähler 66 wird auf I1TCI gesetzt. Nach Beendigung dieser Operationen wird der Taktzähler 66 von i"T01 auf FTC3 weitergeschaltet. Der Steuerzähler 22 wird dann zur Vorbereitung auf die Anfangssteuerzahl von +38, die vom Signal FP38 in die Exponentenaddiererstufe 39-46 gesetzt werden soll, zurückgesetzt.
Es sei darauf hingewiesen, daß während der Zeitspanne vor der Steuerung die Exponentenrechnungen, wie unten beschrieben, stattfanden. Diese Exponentenrechnungen werden in dem Augenblick beendet, indem der Steuerzähler 22 zurückgesetzt wird.
Während der Ausführung des Befehls PMP werden die Exponentenrechnungen im wesentlichen nach folgendem Verfahren ausgeführt. Der Inhalt eines aufgerufenen Speicherplatzes wird ins Exponentenfeld (Stelle 39-46) des A-Registers 26 übertragen, während der Inhalt der Informationspostenleitungen II00-II23, die in diesem Augenblick ein Datenwort enthalten, über die B-Register-Übertragungsglieder 18, die von der Kombination der Signale fiVDWI , I/DS und ITS durchgeschaltet werden, v\rie es in Jj1Ig, 3 gezeigt ist, ins B-Register 20 übertragen wird.
BAU ORiGiNAL 109884/1438 "■ .._
Gleichzeitig wird das Signal FESX (Fig. 4) freigegeben, wodurch der Exponenteil des Addierers, die Stufen EA39-EÄ46, für die Exponentenrechnung vorbereitet werden. Das Signal FESX wird jeweils dem einen Eingang von acht UND-Gliedern 178 zu- ■ geführt, die alle zwei Eingänge haben. Der zweite Eingang aller UND-Glieder 178 ist jeweils mit einer der Bitstellen A39-A46 dee Α-Registers verbunden. Das Ausgangssignal jedes der UND-Glieder 178 wird jeweils dem Y-Eingang der Addiererstufen EA39-EA46 zugeführt. In diesem Augenblick wird das Signal FFDW gesperrt und das Signal FEXP freigegeben, wodurch das Rechenwerk 16 in den Exponenterechnungssteuerzustand gebracht wird. Die resultierende Summe dieser Eingangssignale bildet die Ausgangssignale derselben Addiererstufen und wird dem A-Register über die Leitungen ES391-ES461 und das UHD-Glied 160 zugeführt. Diese Eingangssignale des Α-Registers stellen die Summe der beiden Exponenten dar und werden in die Exponentenbitstelle 39-46 des Α-Registers gesetzt. Wenn die Summe der Exponenten in den Registern A und B größer als 255 ist und wenn das Vorzeichen des ursprünglichen Α-Exponenten positiv (eine binäre O) war, wird in der Algorithmusausführungssteuerlogik 30 kurzzeitig ein Überlaufzustand gespeichert. Dieser Überlaufzustand wird von der Algorithmusausführungsteuerlogik 30 dadurch festgestellt, daß es überprüft, ob die Bitstelle 47 im A-Register eine binäre 0 und ob auf der Leitung EC46 (Fig. 4) eine binäre 1 erscheint. In ähnlicher Weise speichert die Logik 30, wenn die Summe der Exponenten in den Registern A und B größer als 255 und das Vorzeichen des ursprünglichen Exponenten im Α-Register negativ (eine binäre 1) war, kurzzeitig einen Unterlaufzustand. Danach wird das Signal FESX gesperrt, der Taktzähler FTC2 gelöscht und der Taktzähler 66 auf den Ausgangszustand FTG3 gesetzt. Das Rechenwerk 16 führt jetzt die organisatorischen Aufgaben des letzten Befehls in an sich "bekannter Weise aus, wobei der Steuerzuetand FEHD ausgelöst wird, so daß sich das Rechenwerk 16 in dem zur Aufnahme des nächsten Befehls geeigneten Zustand befindet.
109884/1438 "BAD
Wenn, dagegen die Vorzeichenbits der Exponenten in den Registern A und B nicht gleich sind, wird das Signal PGEE ausgelöst, so daß zwangsläufig der Stufe EA59 des Addierers (Fig. 4) ein Übertrag (eine binäre 1) zugeführt wird. Das Einerkomplement der Steuerzählerbits 39-46 wird, wie es in Fig. 3 gezeigt ist, dadurch gebildet, daß das Signal CBE ausgelöst wird, und den Komplementsteuerzählergliedern 124 in an sich bekannter Weise zugeführt wird, um das Zweierkomplement des Exponenten im B-Register zu bilden. Durch diese Komplementbildung wird als Exponentenrechnung der Exponent im B-Register vom Exponenten im Α-Register subtrahiert. Aus Fig. 4 sieht man, daß, da die Exponentenbits im Α-Register an den jeweiligen Eingängen Y des Exponententeils des Addierers 28 infolge der Anwesenheit des Signals FESX anstehen und der Exponent im B-Register dem Addierer 28 ungehindert zugeführt wird, der B-Exponent sofort vom Α-Exponenten subtrahiert wird. Am Ende dieser Operation wird der Taktzählerzustand FTGO geloscht und der Taktzähler 66 in den Zustand Fi1C 1 gesetzt. Dann prüft aas Rechenwerk 16, ob die Exponentenübertragleitung EX46 (Fig. 4) eine binäre 0 enthält. Gegebenenfalls ist dies ein Anzeichen dafür, daß der A-Register-Exponent gleich oder größer als der B-Register-Exponent war und daß die wahre Größe des Ergebnisses an den Summenausgängen S der Addiererstufen ansteht. Deshalb ist keine Korrektur des resultierenden Exponenten erforderlich, so daß der Taktzählerzustand FTC1 gelöscht und der Taktzähler 66 auf den Ausgangszustand FTC2 gesetzt wird.
Das Ergebnis der Subtraktion wird dann aus dem Addierer 28 über die Leitungen ES391-ES461 und das UND-Glied 160 in die Bitstellen 39-46 des A-Registera übertragen. Die Signale FCRE und FESX werden gesperrt und der Zuetand des Taktzählers 66 wird auf FTC3 geändert. Jetzt läuft die Befehlsausführung in der oben beschriebenen leise weiter.
Eine weitere Erläuterung des Befehle "Addiere zum Exponenten"
1098847U38
ORIGINAL
(ADE) wird für das Verständnis der Erfindung nicht für erforderlich gehalten. Die Operation ADE wurde beschrieben, um zu erläutern, wie der Steuerzählerteil 22 des B-Registers normalerweise zur Ausführung arithmetischer Operationen, verwendet wird, und um die folgende Beschreibung der Wirkungsweise des Steuerzählers 22 bei der Steuerung des Rechenwerks 16 zur Ausführung einer Multiplikationsoperation zu erklären. Es sei darauf hingewiesen, daß nur typische Befehle, wie "Addiere zum Exponenten" und "Gleitpunktmultiplikation" ausführlich beschrieben sind. EvS hätten auch andere Operationen zur Erläuterung beschrieben werden können.
Der Taktzähler wird dann von FTC4 auf FTO5 weitergeschaltet, und der Zustand FTC5 wird gelöscht. Bei Erhalt des zweiten Datensignals wird das zweite Datenwort aus den Informationspostenleitungen II00-II23 in die Bitstellen 00-23 des B-Registers übertragen. Die Mantissen der Register A und Q werden jeweils um zwei Bits nach rechts verschoben, wobei der Inhalt des Α-Registers in an sich bekannter Weise durch den Addierer 28 geschoben wird, und in die beiden freigewordenen Bitstellen des Α-Registers werden binäre Nullen gesetzt. Die beiden niedrigsten Bitstellen des Multiplikators werden dann in die Q-Register-Verlängerungsbitstellen QXQ und QX1 geschoben.
Es ist wichtig, an dieser Stelle darauf hinzuweisen,, ,daß in die Bitstellen 36 und 37 des Q-Registers ebenfalls „binäre Nullen gesetzt werden. Das Setzen dieser beiden Nullen in die Bitstellen 36, und 37, die zwischen der höchsten Multiplikatorbitstelle und der niedrigsten Teilprodukt-Bitstelle bleiben, erfolgt in diesem Augenblick, um ein Heraustreten aus einer Folge von Einsen zu erzwingen, wenn solche bei Beendigung dee Multiplikationsalgorithmus in den höheren Bitstellen des Multiplikators vorhanden sind. Außerdem wird dann +38 in den Steuerzähler 22 gesetzt, und zwar durch Übertragen des Exponentehteils des Addierers 28 in den Steuerzähler 2.2, in dem das. freigogebene
10988A/U38
BAD ORIGINAL
(zu eins gemachte) Signal FP3b den Eingangsstufen EA40. und-EA41 zugeführte wird. Das Signal FEXP wird jetzt zurückgesetzt, das Signal FALG gesetzt, und der Taktzähler 66 wird auf den Ausgangszustand FTGO gesetzt.
Vvenri die Algorithmusausführungsteuerlogik 30 feststellt, daß die niedrigste Stelle (QXO) des Multiplikators im Q-Register eine 0 enthält, wird der Inhalt des Steuerzählers 22 (Fig. 3) komplementiert, indem der Inhalt des Steuerzählers 2 2 über die Komplementsteuerzähler-Verknüpfungsglieder 124 und dann zurück in den Steuerzähler 22 geleitet wird. Der Steuerzähler enthält dann das Einerkomplement der Anzahl der Multiplikator-Dits, die //ährend der Ausführung des Multiplizieralgorithmus geprüft werden müssen. Es sei auch darauf hingewiesen, daß während der Ausführung des wlultiplikationsalgorithmus die in die beiden Verlängerungsbitstellen des Q-Registers geschobenen Bits, d.h. die Bits QX1 und QXO den auszulösenden Vorgang bestimmen. Die Logik j50 überwacht dabei ständig die Zustände diüü'jr Deiden Stufen, um diese Bestimmung auszuführen. Der Steuerzähler 22 vird in diesem Augenblick nicht komplementiert, wenn die niedrigste Multiplikatorbitsteile (QXO) im gesetzten Zuotu.aci ist, und der Inhalt des Steuerzählers 22, der jetzt + 3ö betx*äjt, zwingt die Logik 30 zur Audfünrung eines Vorgangs, der vom augenulicklxchen Inhalt der Q-Verlängarungsbitstellen abhängt. Außerdem wird der Multiplikator, der sich im Q-Register befindet, auf lauter binäre Einsen zurückgesetzt, wenn der jetzt im B-Register (den Bitstellen 00-37) befindliche Multiplikand Null ist. (Die3 geschieht, weil da3 Produkt 0 i3t, wenn der Multiplikand 0 ist.) Wenn der Taktzähler 66 auf den Ausgangszustand FTC1 gesetzt ist, prüft das Rechenwerk 16, ob der Inhalt des Steuerzählers 22 gleich 38 ist. Bejahendenfalls ist dies ein Zeichen dafür, daß der Steuerzähler 22 nicht komplementiert wurde und daß die niedrigste Bitstelle QXO des Multiplikators gesetzt war. Dann wird eine Addition oder Subtraktion ausgelöst, die vom Inhalt der Q-Verlangerungsbitsteilen
109884/1438
QXO und QX1 abhängt. Das Signal FBSX wird hier zur Eingabe der Ausgangssignale des B-Registers in den Mantissenteil des Addierers freigegeben (d.h. zu 1 gemacht). Wenn QX1 gesetzt ist, sind die Bits in den ersten beiden niedrigen-Multiplikator-··- bitstellen QX1 und QXO binäre Einsen, was besagt, daß eine Folge von Einsen begonnen hat. Deshalb werden die. B-Register—Maiiti-ssen--bits 00-38 komplementiert und der Anfangsübertrag FC1RM in den Mantissenteil des Addierers durchgeBcnaltet.: Diese Zustände "' " bewirken den ersten Schritt bei der Ausführung des Multiplikationsalgorithmus, bei dem es aich um eine Subtraktion des~ Multi- J' plikanden vom Inhalt des Α-Registers handelt, der in diesem ·-■'-'"; Augenblick 0 ist. Wenn sich dagegen das Bit QX1 nicht im ge- : ' ; setzten Zustand befindet, wird der Multiplikand (B-Register- ·: Mantisse) nicht komplementiert, so daß die niedrigste'Stelle '*"'■ QXO des Multiplikators eine abgesonderte Eins enthält. Wenn - * * also das Signal I1BSX auftritt bzw. freigegeben wird, ist der erste Schritt in dieser Situation eine Addition des Multiplikanden zum Inhalt der A-Register-Bitstellen 00-23. Nach- Beendigung dieser Operation werden die 3-Register-SteuerzähIuf-22-Bits 39-46 über die Verknüpfungsglieder 124 (Fig. 3) korn- plementiert und der Taktzähler 66 auf den Ausgangszustand FTG1' gesetzt. '
Das Rechenwerk 16 prüft jetzt, ob QX1 gesetzt ist, wobei die Logik 30 feststellt, ob das Bit QX1 (das Bit der zweitniedrigsten Multiplikatorstelle ) eine binäre 1 ist. Wenn QX1 eine binäre 1 ist, stellt die Logik 30 die Tatsache fest, daß sich eine Folge von Einsen im Multiplikator befindet, und speichert diese Tatsache, durch Freigabe eines Signales STG (string detector signal = Folgedetektorsignal).
Das Rechenwerk prüft jetzt, ob G gleich 0 ist (d.h. Steuer-" zähler 22 = 0). Wenn nicht, ist dies ein Anzeichen dafür, daß alle 38 Multiplikatorbits nicht überprüft worden sind, so daß die Logik 30 untersucht, ob alle 38 Multiplikatorbits richtig
109884/U38
BAD ORIGINAL
behandelt wurden und ob eine Überrerschiebung um 1 aufgetreten
Wenn die Logik 30 feststellt, daß QXO nicht gesetzt ist (also eine binäre 0 darstellt), ist diea ein Zeichen dafür, daß das Rechenwerk 16 keine Folge von Einsen bearbeitet und eine separate 1 im Multiplikator überschoben worden ist. Deshalb wird der Inhalt der Register A und Q um eine Bitstelle nach links verschoben, wodurch der Multiplikator im Q-Register und das Teilprodukt im Α-Register in die richtigen Stellen gebracht f wird. Die Addition des Multiplikanden zum Teilprodukt wird durch Durchschalten der Ausgangssignale des B-Registers in den Addierer, und zwar durch Freigabe (Einschalten) des Signals PBSX, Freigabe des Signals FAC1 und Setzen einer binären 1 in die Bitstelle QXO durchgeschaltet. Der Exponententeil der Ausgangssignale des Addierers, der Stufen EA39-EA46, wird ins B-Register zurückübertragen, wodurch die vorherige Steuerzahl-Erhöhung um 2 und eine Verringerung um 1 durch Freigabe des Signals FGRE und gleichzeitiges Sperren des Signals FIN2 ausgelöst wird. Das Einerkomplement des Steuerzählers plua der Exponenteneingangssignale des Addierers geben jetzt das in QXO gesetzte Multiplikatorbit wieder. Das Weiterschalten des Steuerzählers 22 ist weiter unten ausführlicher beschrieben.
Nun zu den Fig. 3, 4 und 5. Der Inhalt des Steuerzählers 22 (B-Register-Bitstellen 39-46) wird von einem Signal OBE (Complement B Exponent) komplementiert, das aus den, Verstärkern 64 nach Fig. 2 kommt. Wie in Fig. 3 gezeigt ist, schaltet das Signal CBü; den Inhalt der Bit stellen 39-46 des B-Registere in eine Logik, die als Komplemensteuerzähler-Verknüpfungeglieder 124 bezeichnet wird und an ihrem Ausgang das Einerkomplement ihrer. Eingangssignale abgibt. Diese dem Steuerzahler 22 zugeftihrten Ausgangssignale stellen also das Einerkomplement (fee ursprünglichen Inhalts des Steuerzählers 22 dar, d.h. das Einerkomplement der Anzahl von Verschiebungen oder Operationen, die bei der Ausführung
109884/1438
-2B-
des Befehls ausgeführt werden müssen. An dieser btelle muß erwähnt werden, daß der Steuerzahler 22 bei dieser Ausführung nur weiter (d.h. vorwärts oder aufwärts) geschaltet werden kann, rDurch die Komplementierung des bteuerzählerinhalts ist deshalb die Anzahl der Verschiebungen oder Operationen, die ausgeführt werden sollen, gleich der Zahl, die verbleibt, bevor der Zähler 22 seine höchste Zahl (lauter Einsen) enthält. Die inversen Ausgänge der Ausgangsstufen des Steuerzählers 22 geben also die Anzahl der auszuführenden Verschiebungen oder Operationen an. So wird also der Steuerzähler bei einem Verschiebebefehl mit jeder Verschiebung der Mantisse solange um die Anzahl der Verschiebungen weitergeschaltet, bis er seine Maximalzahl erreicht, in welchem Augenblick die Ausführung des Befehls beendet ist.
Wie bereits bei der Beschreibung von Fig. 2 erwähnt wurde, gibt der Steuerzähler 22 an die Logik 30 Signale ab. Die Logik 30 dekodiert den Inhalt des Steuerzählers 22, um die Rechenoperation zu steuern. D.h. die Logik 30 überwacht den Zähler und prüft, ob er seine Maximalzahl erreicht hat, bzw. ob auf der inversen Seite seiner Ausgänge binäre Nullen erscheinen.
Wie in den Fig. 3 und 4 gezeigt i3t, erfolgt das Weiterschalten des Steuerzählers 22 dadurch, daß sein Inhalt (die Bits 39-4 6 des B-Registers 20) den X-Eingängen des Exponententeils des Addierers 26 (ΕΑ39-ΉΑ46) und'gleichzeitig dem Eingang Z der Stufe EA39 des Addierers das Signal FCRE zugeführt wird. Durch diese Zuführung des Signals FCfiE wird der augenblickliche Inhalt des Steuerzählers um 1 erhöht (und sein wahrer Betrag um 1 verringert), während die Summenausgangssignale der Stufen EA39-EA46 des Addierers dem Steuerzähler 22 über die Leitungen ES391-ES461 und über ein UND-Glied 13ö (Fig. 3) zugeführt werden, das von einem Signal SCX durchgeschaltet wird, das die Verstärker 64 abgeben. Diese Weiterschalt- oder Erhöhungs-
109884/1438
BAD ORSGSNAL
operation findet gleichzeitig mit der Ausführung einer Additionsoder Schiebeoperation und der Speicherung eines Überlaufzustands statt. Die Weitersehaltoperation wird mit jeder Operation des Befehls solange wiederholt, bis der Inhalt des Steuerzählers seinen Maximalwert erreicht. Wenn dies der Fall ist, ist die Ausführung des Rechenbefehls beendet. Dann wird das Signal E1END freigegeben, während die Signale PGRE und JJ1ADJ gesperrt werden. Mit dem Setzen des Signals FwND ist die Befehlsausführung im wesentlichen beendet.
Der Rest des Gleitiuultiplikationsbefehle wird in an sich bekannter Weise ausgeführt, nur daß die Stellen 39-46 des B-Registers als Steuerzähler für das Rechenwerk 16 verwendet werden. I1Ur den Fachmann sollte aus obiger Beschreibung klar sein, wie dor Rest des GleitmultipliKationsbefehls ausgeführt wird. Eine tiuaführliche Beschreibung wird daher zum Verständnis der Erfindung nicht erforderlich gehalten. Die obige Beschreibung zeigt, v/ie der Steuerzähler 22 zeiblich aufgeteilt wird, so daß er sowohl für Exponentenrechnungen als auch zur Steuerung verschiedener Operationen des Rechenwerks 16 verwendet werden kann, üiin Extrd.zah.ier zur Ausführung der Steueropjrationen ist daher riicnfc mehr erforderlich, so daß der Gerätetechnische Aufwand verringert und die Logik besser ausgenutzt wird.
Die Erfindung wurde anhand von Blockschaltbildern und deren ' WirKungawüise beschrieben. Der Fachmann weiß jedoch, da,ß die Logik und Verdrahtung der Bausteine die in Form von Blöcken und deren Wirkungsweise dargestellt ist, durch verschiedene an sich beKurmte logische Schaltungsanordnungen verwirklicht weruen kann.
1098.84/143 8

Claims (7)

P_a_t_e_n_t_a_n_s_jo_r_ü_G_.h_e
1. Datenverarbeitungsanlage mit einem Speicher, einer Datenverarbeitungseinheit, die mit dem Speicher zur Aufnahme von Informationsposten aus dem Speicher oder zur Abgabe von Informationsposten in den Speicher in Verbindung steht, und mit einem Rechenwerk, das-mit der Datenverarbeitungseinheit zur Ausführung arithmetischer Operationen mit ihm zugeführten Informatiorisposten in Verbindung steht, wobei das Rechenwerk Modifiziervorrichtungen zur algebraischen Modifizierung des Wertes eines ihm zügefahrten Informationspostens sowie eine Zwischenspeichervorrichtung enthält, die in der Lage ist, einen Iriformationsposten zu speichern, und die mit den Modifiziervorrichtungen in Verbindung steht, dadurch gekenriz e i c h,n e t , daß das Rechenwerk (16) ferner eine Zeitaufteilungsvorrichtung (Fig. 3, 4 und 5) zur zeitlichen Aufteilung eines Teils (22) der Zwischenspeichervorrichtung (20) im Zeitmultiplexverfahren enthält und daß dieser Teil (22) einen Teil eines Informationspostens während einer ersten Zeitspanne der Ausführung eines Befehls und ferner eine Zahl (einen Zählerstand) speichert, die (der) die Anzahl, sich während einer zweiten Zeitspanne der Befehlsausführung wiederholender Operationen wiedergibt.
2. Anlage nach Anspruch 1, bei der das Rechenwerk einen Addierer und die Zwischenspeichervorrichtung ein mit dem Addierer in Verbindung stehendes erstes Register enthält, d a d u r c h ge kennzeichne t , daß die Zeitaufteilungsvorrichtung (Fig. 3, 4, 5) eine erste Überfcragungsvorrichtung (839^EHo, Pig. 3 und 4) enthält, die den [nhu.lt dieses Teils (22) des erst.eη Registers (20) darstellende Signale zusammen mit einem Signal (FGRKI, Fig. 4), d.us andere d i ;;i tule : Daten darr, tollt, in den Addierer (28) überträft, um den. Inhalt jenes Teils (22) des erston Registers (20) zu modifizieren.
109884/U38
BAD
3. Anluve nach Anspruch .2, oei der das Rechenwerk ferner ein z-veites Register enthält, das mit dein Addierer in Verbindung üteht, dadurch gekennzeichnet, daß die Zeituufteilungsvorrichtung eine zweite Übertragungsvorrichtung (ES391-ES461; 138; 160 und 15B) enthält, die den modifizierten Inhalt dieses Teils (22), der an den Ausgängen (S oder S) des Addierers (28) erscheint, während der ersten Zeitspanne der Befehlsausführung in das zweite Register (26) und während der zweiten Zeitspanne der Befenlsausführung in diesen Teil (22) des ersten Registers (20) überträgt.
4. Anlage nach Anspruch 1 oder 3, d a durch gekennzeichnet ,daß jene Zahl während der zweiten Zeitspanne der Befehlsausführung verändert wird, wenn der Inhalt dieses Teils (22) zusammen mit anderen digitalen Datensignalen in den Addierer (2b) übertragen wird, und daß der modifizierte Inhalt die Anzahl der sich wiedernolenden Operationen darstellt.
5. Anlage nach Anspruch 2, dadurch gekennzeichnet , daß das andere digitale Daten darstellende Signal (FCRE1, Pig. 4) während der zweiten Zeitspanne der Befejiisciusführung ein Signal ist, d=a.s zur Erhöhung der Zahl in diesem Teil (22) um die Größe 1 eine Dinare 1 darstellt.
6. Anlage nach Anspruch 2, dadurch gekennzeich — η et , daß die Zeitaufteilungsvorrichtung ferner eine Kompleiüentiervorrichtung (124) zur .Komplementierung des Inhalts dieses Teils (22) des ersten Registers (20) enthält.
7. Anlage nach Anspruch 6, dadurch gekennzeichnet, daß das Rechenwerk (16) ferner eine Steuervorrichtung (30) zur Erzeugung von Signalen (üCLKj CBE) enthält, die bewirken, daß die Komplementiervorrichtung (124) den Inhalt des Teils (22) vor der Modifikation dieses Inhalts modifiziert und daß das die anderen digitalen Daten darstellende Signal
.10.9884/U38
.-·./.;./, , BAD ORiGiNAL
- 52 -
(PCRE1, Fig. 4) .während der zweiten Zeitspanne der Befehlsausführung eine binäre 1 darstellt und die Zahl in jenem Teil
(22) dadurch um 1 erhöht.
BAD ORIGINAL 109884/U38 ——-
DE19681774554 1967-07-14 1968-07-13 Datenverarbeitungsanlage Pending DE1774554A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US65349167A 1967-07-14 1967-07-14

Publications (1)

Publication Number Publication Date
DE1774554A1 true DE1774554A1 (de) 1972-01-20

Family

ID=24621095

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19681774554 Pending DE1774554A1 (de) 1967-07-14 1968-07-13 Datenverarbeitungsanlage

Country Status (4)

Country Link
US (1) US3557357A (de)
DE (1) DE1774554A1 (de)
FR (1) FR1599722A (de)
GB (1) GB1230647A (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4150434A (en) * 1976-05-08 1979-04-17 Tokyo Shibaura Electric Co., Ltd. Matrix arithmetic apparatus
US4229801A (en) * 1978-12-11 1980-10-21 Data General Corporation Floating point processor having concurrent exponent/mantissa operation
US4292667A (en) * 1979-06-27 1981-09-29 Burroughs Corporation Microprocessor system facilitating repetition of instructions
US4361658A (en) * 1980-04-03 1982-11-30 Exxon Research And Engineering Co. Process for polymeric gelation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3037701A (en) * 1956-11-21 1962-06-05 Ibm Floating decimal point arithmetic control means for calculator
US3070304A (en) * 1957-04-12 1962-12-25 Thompson Ramo Wooldridge Inc Arithmetic unit for digital control systems
US3166669A (en) * 1960-06-28 1965-01-19 Ibm Core matrix coded decimal parallel adder utilizing propagated carries
NL276236A (de) * 1961-03-24
US3372382A (en) * 1965-08-16 1968-03-05 Rca Corp Data processing apparatus

Also Published As

Publication number Publication date
FR1599722A (de) 1970-07-20
US3557357A (en) 1971-01-19
GB1230647A (de) 1971-05-05

Similar Documents

Publication Publication Date Title
DE3144015C2 (de)
DE2353258C2 (de) Datenverarbeitungsanlage
DE2704842C2 (de) Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE1181460B (de) Elektronische Zifferrechenmaschine
DE2753062A1 (de) Einrichtung zur durchfuehrung programmierter befehle
DE10124351B4 (de) Verfahren und Vorrichtung zum Verarbeiten zweier Datenoperanden in einem Prozessor
DE1549476A1 (de) Anordnung zur Ausfuehrung von Divisionen
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE1499206B2 (de) Rechenanlage
DE3802025C1 (de)
DE1549508B2 (de) Anordnung zur uebertragsberechnung mit kurzer signallaufzeit
DE2034841B2 (de) Matrixanordnung für Digital Rechenanlage
DE1774554A1 (de) Datenverarbeitungsanlage
DE1524114B2 (de) Adreßrecheneinrichtung fur eine Datenverarbeitungsanlage
DE1193279B (de) Elektronen-Ziffernrechner mit eingespeichertem Programm
DE1184122B (de) Addiervorrichtung
DE3104256C2 (de)
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE1549446A1 (de) Digitalrechner
DE1549395A1 (de) Elektronischer Rechner
DE2501985A1 (de) Mit gleitkomma arbeitender rechenmechanismus
DE1499236A1 (de) Datenauswerter
DE1774555A1 (de) Verfahren zum Dividieren einer digitalen Groesse durch eine andere und ein Rechenwerk zur Ausfuehrung des Verfahrens
DE1934441B2 (de) Befehlswerkgesteuertes rechenwerk fuer einen digitalrechner