DE2952229A1 - Verfahren und einrichtung zur multiplikation von dezimalzahlen in einer dv-anlage - Google Patents

Verfahren und einrichtung zur multiplikation von dezimalzahlen in einer dv-anlage

Info

Publication number
DE2952229A1
DE2952229A1 DE19792952229 DE2952229A DE2952229A1 DE 2952229 A1 DE2952229 A1 DE 2952229A1 DE 19792952229 DE19792952229 DE 19792952229 DE 2952229 A DE2952229 A DE 2952229A DE 2952229 A1 DE2952229 A1 DE 2952229A1
Authority
DE
Germany
Prior art keywords
value
register
digit
multiplier
complement
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.)
Withdrawn
Application number
DE19792952229
Other languages
English (en)
Inventor
Virendra S Negi
Arthur Peters
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2952229A1 publication Critical patent/DE2952229A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/4915Multiplying; Dividing

Landscapes

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

Description

  • Die Erfindung befaßt sich mit der arithmetischen Multiplikation
  • von Zahlen in einer DV-Anlage. Ublicherweise wird in kleineren Binärrechnern ein Dezimalprodukt dadurch erzeugt, daß man den Multiplikanden wiederholt zu einem Teilprodukt addiert. Jede Ziffer des Multiplikators setzt eine Reihe von Additionsvorgängen in Gang, deren Anzahl der Größe der Multiplikatorziffer ist. Dieser Vorgang wird solange wiederholt, bis alle Multiplikatorziffern verarbeitet sind. Die hierfür benötige Zeit ist unmittelbar der Su»Sme der signifikanten Multiplikatorziffern proportional. Für einen durchschnittlichen Multiplikationsvorgang ist die mittlere Größe einer Dezimalziffer gleich 4,5, d.h. die Multiplikationszeit entspricht dem 4,5-fachen der Anzahl der signifikanten Multiplikatorziffern. Da Mültiplikations-Operationen in DV-Anlagen ziemlich bedeutende Zeitperioden in Anspruch nehmen, ist eine Verringerung der für eine Multiplikation erforderlichen Zeit von Vorteil.
  • Aufgabe der Erfindung ist es folglich, ein DV-System und ein Verfahren zu finden, in dem die Multiplikation von Zahlen zeitlich verkürzt werden kann.
  • Diese Aufgabe wird gelöst durch das im Anspruch 1 gekennzeichnete Verfahren. Ist die ausgewählte Ziffer also kleiner oder gleich dem ausgewählten Wert, beispielsweise 5, so bleibt es beim eingangs geschilderten bekannten Verfahren.Istdieausgewählte Ziffer hingegen größer als dieser Wert, so erfolgt die Summation nicht mit der Ziffer selbst, sondern mit deren Komplement, indem diese Komplemente voneinander subtrahiert werden und anschließend zum Subtraktionsergebnis erneut das Komplement gebildet wird und das Multiplikationsergebnis darstellt. Vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens sowie einer hierzu geeigneten Geräteeinheit in einer DV-Anlage sind in den Unteransprüchen gekennzeichnet.
  • Die Erfindung wird nachfolgend anhand eines in der Zeichnung dargestellten Ausführungsbeispiels erläutert. Dabei zeigt: Fig. 1 den Systemaufbau einer DV-Anlage; Fig. 2 das Ablaufdiagramm der Betriebszustände im Pro-.
  • zessor einer solchen DV-Anlage; Fig. 3 das Blockschaltbild des Prozessors; Fig. 4 eine Darstellung des Inhalts eines Registers des Prozessors; Fig. 5 das Blockschaltbild des Rechenwerks; Fig. 6 das Flußdiagramm bei der Durchführung des erfindungsgemäßen Verfahrens zur Multiplikation zweier Zahlen; und Fig. 7 das Blockschaltbild der Multiplikationslogik.
  • In Fig. 1 dient der Befehlsprozessor CIP 13 (commercial instruction processor) der Erweiterung der Zentraleinheit CPU 11, insbesondere ihrer Kapazität an Befehlsgr#ppen durch Verwendung einer wirkungsvollen Gruppe herkömmlicher Befehle. Diese Befehle gestatten es, der Zentraleinheit 11 über den Befehlsprozessor 13 dezimale und alphanumerische Daten zu verarbeiten, wobei folgende Befehlsarten auftreten: Dezimal, Alphanumerisch, Datenumwandlung und Aufbereitung. Der Nachrichtenaustausch zwischen dem Befehlsprozessor 13 und der Zentraleinheit 11 sowie dem Hauptspeicher 17 erfolgt über eine gemeinsame Systemsammelschiene, genannt Bus 19. Der Befehlsprozessor 13 arbeitet als Zusatz zur Zentraleinheit und empfängt Befehle und Operanden als Ubertragungsinformationen von der Zentraleinheit und/oder dem Speicher. Der Befehlsprozessor verarbeitet die Befehle,wie sie von der Zentraleinheit 11 über den Bus 19 ausgesandt werden.
  • Die Zentraleinheit erhält diese Befehle vom Hauptspeicher und prüft jeden abgerufenen Befehl, ob es sich um einen kommerziellen Befehl handelt. Der Empfang eines jeden kommerziellen Befehls durch den Befehlsprozessor tritt üblicherweise gleichzeitig an der Zentraleinheit auf, da die Zentraleinheit jeden Befehl vom Speicher abzieht und decodiert. Die Befehlsverarbeitung durch den Befehlsprozessor 13 verläuft jedoch asynchron zum Betrieb der Zentraleinheit 11. Ist kein Befehlsprozessorsystemvorhanden, so führt jeder Versuch zur Ausübung eines kommerziellen Befehls dazu, daß die Zentraleinheit einen speziellen Abfangzustand annimmt.
  • Der Befehlsprozessor 13 empfängt über den Bus 19 Informationen von der Zentraleinheit 11 und vom Hauptspeicher 17 und verarbeitet diese Informationen in logischer Folge. Diese besteht aus drei CIP-Betriebszuständen: Frei, Laden, Belegt und Abfangzustand.
  • Wie Fig. 2 zeigt, fängt der Befehlsprozessor 13 im Block 200 an und bleibt im Freizustand gemäß Block 202,solange er keine Informationen verarbeitet und muß auch im Freizustand sein, um einen Befehl, z.B. einen CIP-Befehl oder einen Ein/Ausgabebefehl von der Zentraleinheit aufzunehmen. Beim Eingang eines Befehls gemäß Block 204 wird im Block 205 festgestellt, ob der Befehl zulässig istlund der Befehlsprozessor geht in den Ladezustand 206 über. In diesem Zustand bleibt er solange, bis alle zugehörige Befehlsinformation empfangen ist. Ist dies im Block 208 abgeschlossen, so geht der Befehlsprozessor 13 in den Belegtzustand gemäß Block 210 über und verarbeitet die Information.
  • Jeder weitere Versuch der Zentraleinheit mit dem Befehlsprozessor Informationen auszutauschen, wird von diesem zurückgewiesen, solange er im Belegtzustand ist und wird erst dann möglich, wenn er erneut den Freizustand annimmt. Die CIP-Verarbeitung urnfaßt Informationsübertragungsaktivitäten mit dem Hauptspeicher 17, wenn die notwendigen Operanden abgerufen werden. Der Befehlsprozessor geht in den Abfangzustand gemäß Block 212 nur dann über, wenn spezielle unzulässige Ereignisse auftreten (Block 214), wie beispielsweise die Feststellung einer unzulässigen Länge des Operanden oder eines Befehls außer der Reihe. Er kehrt zum Freizustand zurück, sobald gemäß Block 216 die Operation abgeschlossen ist.
  • Alle zugehörigen Befehlsübertragungen zum Befehlsprozessor werden gemeinsam von der Zentraleinheit und vom Befehlsprozessor erledigt. Sie werden decodiert und von der Zentraleinheit zusammen mit allen zur Ausführung der Befehle erforderlichen Informationen zum Befehlsprozessor übertragen. Sobald die Informationsübertragung beendet ist, fahren die Zentraleinheit und der Befehlsprozessor mit der Ausführung ihrer entsprechenden Befehle fort.
  • Jeder CIP-Befehl enthält ein Befehlswort von 16 Bit, an welches sich unmittelbar bis zu sechs zusätzliche beschreibende Worte von ebenfalls 16 Bit Länge anschließen, welche als Datendeskriptoren und Etiketten bezeichnet werden. Das Befehlswort enthält den zur uerarbeitung zum Befehlsprozessor gesandten CIP-Operationscode.
  • Die Datendeskriptoren beschreiben den Typ des Operanden, den Umfang und den Speicherplatz;das Etikett liefert die Adresse eines fernen Datendeskriptors. Sowohl der Datendeskriptor als auch das Etikett werden von der Zentraleinheit verarbeitet und hierbei erzeugte Information, beispielsweise der Operandentyp und die Speicheradresse werden zur Weiterverarbeitung zum Befehlsprozessor gesandtDieentraleinheit analysiert den Operationscode in jedem Befehl. Stellt sie einen CIP-Befehl fest, d.h. befindet sich der Befehlsprozessor im Freizustand, so sendet die Zentraleinheit den Befehlsoperationscode und die zugehörige Information in folgender Weise aus: (i) Die Zentraleinheit sendet den Operationscode, d.h. das erste Wort des kommerziellen Befehls an den Befehlsprozessor. Dieser geht in den Ladezustand über, sobald er den Operationscode annimmt; (ii) die Zentraleinheit ruft den ersten Datendeskriptor ab und fragt die Adressensilbe ab, um die wirksame Adresse zu erzeugen; (iii) die Zentraleinheit gibt die folgende Information ab: Die aus 24 Bit bestehende effektive Byte-Adresse des ersten Operanden, gegebenenfalls den Inhalt des entsprechenden Datenregisters der Zentraleinheit und den Datendeskriptor des ersten Operanden derart auf den neuesten Stand gebracht, daß sie die Lage eines Bytes (8 Bits) oder eines Halb-Bytes (4 Bits) innerhalb eines Wortes wiedergibt.
  • Sind weitere, beispielsweise ein zweiter oser ein dritter Operand vorhanden, so führt die Zentraleinheit die entsprechenden Vorgänge der Schritte ii und iii aus.
  • Zu diesem Zeitpunkt wird der Befehlsprozessor 13 mit aller für die Ausführung kommerzieller Befehle erforderlichen Information geladen und geht in den Belegtzustand über, um den Befehl auszuführen.Falls notwendig, tritt der Befehlsprozessor 13 unmittelbar inlnformationsaustausch mit dem Hauptspeicher 17, um die zugehörigen Operanden zu erhalten. Der Befehlsprozessor 13 hat jedoch niemals direkten Zugriff zu den Registern der Zentraleinheit 11. Er verwendet nur Informationen, die ihm von der Zentraleinheit zugesandt wurde Somit werden keine CPU-Register vom Befehlsprozessor geändert und die Zentraleinheit arbeitet solange den nächsten und jeden folgenden CPU-Befehl ab, bis einer der folgenden Zustände auftritt: (i) der Befehlsprozessor setzt die Zentraleinheit über einen Abfangvektor (TV) davon in Kenntnis, daß während der Ausführung des laufenden kommerziellen Befehls ein unzulässiges Ereignis aufgetreten ist; oder (ii) von der Zentraleinheit wird ein internes oder externes Unterbrechungssignal festgestellt.
  • Liegt ein solches Unterbrechungssignal vor, so bestimmt die Zentraleinheit, ob der letzte kommerzielle Befehl vom Befehlsprozessor ausgeführt wurde. Die Zentraleinheit waitet bis zur Beendigung des letzten kommerziellen Befehls. Sobald dies geschehen ist, bestimmt sie, ob sich hieraus eine Abfanganforderung ergibt. Ist dies der Fall,gibt die Zentraleinheit der Ablanganforderung Vortritt, ehe sie eine Unterbrechung durchführt. Hierdurch wird eine typische Operation zur Speicherinhaltssicherung und Wiedereinspeicherung ausgelöst, um alle entsprechenden CPU und CIP Zustandsinformationen zu speichern. Bei Abschluß der CPU-Operation für die Erledigung einer CIP-Abfanganforderullg oder, sofern keine Abfanganforderung ansteht und ein CIP-Befehl zur Verarbeitung vorhanden ist, geht die Zentraleinheit wie folgt vor: Sie scheltet ihren Programmzähier fort, bis zu dem kommerziellen Befehl, den sie in Gang zu setzen versuchte. Die Zentraleinheit 11 verzögert den Versuch der Verarbeitung des kommerziellen Befehls solange, bis der laufende Unterbrechungsvorgang abgewickelt ist.
  • Sie beachtet und bedient die von einem Außengerät verursachte Unterbrechung.
  • Wenn der Befehlsprozessor 13 einen Befehl abarbeitet, können alle CPU-Register einschließlich derjenigen, die vom laufenden kommerziellen Befehl angesprochen sind, durch ein Programm über CPU-Befehle geändert werden. Die Software braucht jedoch den Operanden für einen kommerziellen Befehl solange nicht zu ändern, bis der Befehlsprozessor diesen Befehl durchführt. Andernfalls würden unbestimmte Ergebnisse erzielt werden. Verzweigungsbefehle im Befehlsbestand des Befehlsprozessors CIP 13 werden snychron von der Zentraleinheit CPU 11 und vom Befehlsprozessor CIP 13 verarbeitet.
  • Die drei vom Befehlsprozessor verarbeiteten Datenarten sind alphanumerische Daten, binäre Daten und Dezimaldaten. Jeder Datentyp ist in Gruppen von Binärinformationen eingeteilt. Per Definition hat diese Einheit acht Bits ( ein Byte), wenn alphanumerische und binäre Datenzeichen anstehen. Wenn dezimale Datenzeichen vorliegen, hat die Einheit vier Bits (Halb-Byte) für paketierte Dezimaldaten und acht Bits (ein Byte) für Reihendezimaldaten.
  • Eine einzige Präzisionsbinärzahl besteht ebentalls aus zwei Einheiten (2 Bytes) und eine Doppelpräzisionsbinäreinheit besteht aus vier Einheiten (4 Bytes).
  • Fig. 3 zeigt das wesentliche Blockschaltbild des Befehlsprozessors 13 mit allen bedeutsamen Datenübertragungswegen zwischen den Registern des Prozessors. Der Steuerspeicher 10 besteht aus mehreren Speicherplätzen und zwar jeweils einem für jedes Steuerspeicher-oder Firmware-Wort. Diese Firmwareworte steuern direkt oder indirekt die Prozessorfolgen, Datenübertiagungswege sowie den Busbetrieb.
  • Eine Operandenregisterdateien sowie das Rechenwerk umfassende vinheit RALU 12 enthält in erster Linie zwei Registerdateien, ein Rechenwerk (ALU) sowie die zugehörigen Multiplexer und Steuerregister. In dereräteeinheit RALU 12 befinden sich Operandenregisterdateien RF1 und RF2, von denen jede 16 Speicherplätze f)ür jeweils 16 Bit aufweist, die als Pufferspeicher für im Rechenwerk ALU zu verarbeitende Operanden dienen. Die ALU-Eingangsmultiplexer und Verriegelungsschaltungen umfassen drei 2:1-Multiplexer (Zonenauswahl) , zwei 4:4 Multiplexer (Ziffernauswahl) sowie zwei 8 Bit Verriegelungsschaltungen (Byteverriegelung).
  • Diese Multiplexer und Verriegelungsschaltungen werden für die Übertragung von Daten aus den Operandenregisterdateien an das Rechenwerk benutzt. Daten können auch vom Zähler für das laufende Produkt an die linke Seite des Rechenwerks oder von der Operandenregisterdatei 2 an das Multiplikationsregister übertragen werden.
  • Das 8 Bit-Rechenwerk #LU,bestehend aus zwei 4-Bit-Bausteinen, einem Vörwärtsübertragungsbaustein und einem Eingabe/Ausgabe-Flip-Flopkamfolgende Operationen zwischen den linken (1) und rechten (2) Ausgängen ausführen: Binäre Addition, binäre Subtraktion des Eingangssignals 1 vom Eingangssignal 2, binäre Subtraktion des Eingangssignals 2 vom Eingangssignal 1, logische ODER-Verknüpfung, logische UND-Verknüpfung, Exklusiv-ODER-Verknüpfung, Setzen des Rechenwerkausgangs auf FF, Löschen des Rechenwerkausgangs auf 00. Die Einheit RALU 12 wird später anhand von Fig. 5 im einzelnen erläutert.
  • Die Uberschuß-6-Korrekturlogik XS6 der Einheit RALU 12 wird jedesmal aktiviert, wenn das Rechenwerk im Dezimalbetrieb arbeitet und dient dazu, das binäre Ausgangssignal des Addierers in die kcrrekte Dezimalziffer umzuwandeln und dabei den Ubertragausgang für Folgeoperationen zu modifizieren. Die XS6-Korrektur wird mit Hilfe eines 32-Bit mal 8-Bit programmierbaren Festwertspeichers PROM durchgeführt, welcher die korrigierten drei Bits hoher Wertigkeit der Ziffer codiert und den korrigierten Übertrag erzeugt. Am Ausgang des PROM-Bausteins ist für andere Steuerzwecke Funktionssignal für Ziffern kleiner als Zwei vorhanden.
  • Der Ausgangsmultiplexer des Rechenwerks wird dazu benutzt, entweder die oberen vier Bits des Addiererausgangssignals oder die korrekten Dezimalzonenbits der internen Sammelschiene, genannt Bus 14, zuzuführen und zwar abhängig davon, ob das Rechenwerk im Binärbetrieb der Dezimalbetrieb arbeitet. Die RALU-Steuereinheit besteht aus drei Registern, nämlich einem Registerdatei-1-Adressregister RF1A, einem Reoi sterdatei-2 -Adressregister RF2A und einem Rechenwerk-Betriebsartsteuerregister ALMR. Diese Register steuern zusammen mit verschiedenen Mikröbefehlen alle Vorgänge innerhalb der Geräteeinheit RALU 12. Neben den beschriebenen Registern und Steuereinrichtungen sind zwei weitere Register vorhanden, welche als RÄLU-Register eingeordnet sind. Dies sind der Zähler CPRC für das laufende Produkt sowie das Multiplikatorregister MIER.
  • Die Steuerdatei 16, auch als Registerdatei C (RFC) bezeichnet, ist ein 24-Bit Speicher mit wahlfreiem Zugriff (RAM) mit 16 Speicherplätzen und wird hauptsächlich benutzt, um alle befehlsbezogenen Informationen zu speichern,die von der Zentraleinheit CPU11 kommen, beispielsweise Aufgabenworte, Datendeskriptcren, effektive Adressen usw. Die Steuerdatei enthält ferner mehrere Wortspeicherplätze, welche durch die Firmware des Befehlsprozessors CIP benutzt werden. Die Steuerdatei 16 empfängt die Bits 0 bis 7 entweder vom internen BUS 14 oder über den Multiplexer 21 mit ODER-Logik vom Bus-Adressregister MAR 18. Das Busadressregister 18 ist ein 24-Bit-Adressregister und dient hauptsächlich der Adressierung des Systembus 19. Es besteht aus einem 8-Bit-Multiplexerregister mit zwei Eingängen am unteren Ende sowie einer 16-Bit-Fortschalt/Rückschalteinrichtung am oberen Ende. Das Nultiplexeingangssignal für die unteren 8 Bits kommt entweder von der Steuerdatei 16 oder vom Ausgang des Adressaddierers 20.
  • Letzterer ist ein 8-Bit-Zweierkomplement-Addierer und wird in erster Linie zum Fortschalten oder Rückschalten des Inhalts im Busadressregister 18 eingesetzt. Die Eingangssignale zum Adressaddierer 20 sind die geringwertigen 8 Bits des Busadressregisters und des 8-Bit-Schieberegisters MSR 22. Hierbei handelt essichinein 8-Bit-Universalschieberegister, welches vom internen Bus 14 geladen wird und seinen Inhalt um 1 Bit nach links oder rechts verschieben kann, d.h. eine Offenend-Verschiebung mit Nullergänzung. Das Schieberegister arbeitet als Eingang des Adressaddierers 20 zum Fortschalten oder Zurückschalten des Busadressregisters 18.
  • Außerdem kann das Bit s des Schieberegisters 22 in das Rechenwerk-Eintrag-Flip-Flop geladen werden, welches sich während der Ausführung von Umwandlungsbefehlen als nützlich erweist.
  • Das Busausgangsdatenregister OUR 24 ist ein 16-Bit-Datenregister und wird zur Datenübertragung auf die Datenleitungen des Bus 19 benutzt. Es wird vom internen Bus 14 entweder mit dem unteren oder dem oberen Byte oder dem gesamten 16-Bit-Wort geladen. Beim Buseingangsdatenregister INR 26 handelt es sich um ein 16-Bit-Datenregister, welches Daten von den Datenleitungen des Bus 19 empfängt. Der Inhalt dieses Datenregisters kann in den internen Bus 14 umgeladen werden.
  • Das Eingangsfunktionscoderegister BFCR 28 stellt sich als 6-Bit-Register dar, welches der Speicherung des Funktionscodes dient, wenn der Befehlsprozessor vom Bus 19 irgendwelche Eingangs- oder Ausgangsbefehl annimmt. Anschließend prüft die Firmware den Inhalt des Funktionscoderegisters 28 und führt den angegebenen Befehl durch. Das Eingangsadressbankregister INAD 3G ist ein 8-Bit-Register für die Speicherung der höherwertigen 8 Speicheradressbits, die über die Adressleitungen des Bus 19 ankommen. Sie enthalten die Speichermoduladresse und werden von der Zentraleinheit 11 als Ergebnis eines sogenannten IOLD-Befehls oder eines Ausgangs-Funktionscodes für Effektivadressen übertragen.
  • Die niederwertigen 16 Bits der Speicheradresse werden über die Datenleitungen des Bus 19 empfangen und in das INR-Register 26 eingegeben und bilden die geforderte 24-Bit-Hauptspeicheradresse.
  • Das CIP-Anzeigeregister 32 ist als 8-Bit-Speicherregister ausgebildet, in dem jedes Bit einzeln gesetzt oder rückgestellt werden kann. Die Bit-Konfiguration des Anzeigeregisters ist in Fig 4 dargestellt. Die TRP- und TRP-Leitungs-Anzeiger werden vom Befehlsprozessor nur für interne Verarbeitung benutzt und sind für die Software unsichtbar. Der TRP-Leitungsanzeiger (CIP-Abfangleitung) informiert die Zentraleinheit 11 über einen bestehenden CIP-Abfangzustand und wird über das externe Abfangsignal über den Bus 19 übertragen. Ist der TRP-Anzeiger gesetzt, so kann der Befehlsprozessor nur Eingangsbefehle von der Zentraleinheit CPU 11 annehmen.
  • Das Analysenregister AR34 ist ein 16-Bit-Register und wird in erster Linie zur Steuerung von Mikroprogrammverzweigungen tnaskierte Verzweigungen) benutzt sowie zur Steuerung der Codier/ Decodierlogik für das Überlochbyte. Dieses Register wird vom internen Bus 14 mit dem gesamten 16-Bitwort geladen. Das mikroprogrammierbare Schaltregister MPSR 36 stellt sich als 8 Bitregister dar, indem durch Steuerung über Mikroprocramm jedes Bit einzelnen gesetzt oder rückgestellt werden kann. Jedes Bit im Register 36 wird als Anzeiger zur Erleichterung der Mikroprogrammierung benutzt, d.h. die Firmware kann jedes der Registerbits prüfen und in Abhängigkeit vom Prüfergebnis Verzweigungs-Operationen ausführen. Einige dieser Bits werden auch zur Steuerung bestimmter Hardware-Funktionen im Befehlsprozessor 13 genutzt.
  • Beim ROS-Datenregister RD 38 handelt es sich um ein 52-Bit-Speicherregister für die Speicherung des Steuerspeicherausgangssignals (eines Firmwarewortes)im laufenden Firmwarezyklus. Das Mikroprogramm-Rückkehradressadressregzter SRA 40 ist ein 11-Bit-Register und wird vom Ausgangssignal der Folgeadresslogik NAG 42 geladen. Es dient der Speicherung der Mikroprogrammrückkehradresse beim Ausführen einer Firmware-Subroutine. Der Registerdatei-C-Adressmultiplexer/selektor RFCA 31 ist ein 4-Bit-2:1-Selektor und kann einen der 16 Speicherplätze innerhalb der Registerdatei C16, d.h. innerhalb der Steuerdatei adressieren.
  • Der Selektor 31 wählt eine Kombination des Funktionscoderegisters 28 sowie entweder den Zähler (1)46 oder bestimmte Bits des ROS-Datenregisters 38 an. Die CIP-Zähler 44 enthalten drei 8-Bit-Auf/Ab-Zähler 46, 48 und 50, welche als Zähler 1(CTR1),Zähler 2 (CTR 2) und Zähler 3(CTR 3) bezeichnet sind. Diese Zähler werden über den internen Bus 14 geladen und entladen. Der Inhalt jedes Zählers steht für Prüfung- und Verzweigungsoperationen zur Verfügung.
  • Die Decodier/Codierlogik 52 für das Überlochbyte umfaßt zwei Speicherbausteine in Form programmierbarer Festwertspeicher PROM trit 512 Speicherplätzen für je 4 Bit. Sie werden zum Decodieren und Codieren des Inhalts des Analysenregisters AR34 eingesetzt.
  • Das decodierte Byte wird von den Bits 1 bis 7 des Analysenregisters erhalten und den codierten Ziffernanfang erhält man von den Bits 4 bis 7 des Analysenregisters. Die Decodier/Codieroperation wird durch Verwendung der Bit 1 bis 7 des Analysenregisters benutzt, um hierdurch einen speziellen PROM-Speicherplatz zu adressieren. Der Inhalt dieses Speicherplatzes wird codiert, um entweder (1) die decodierte Ziffer, ihr Vorzeichen und ihre Wertigkeit oder (2) das codierte Überlochbyte zu prüfen.
  • Bit 4 des Schaltregisters 36 bestimmt, ob eine Decodier oder eine Codieroperation ausgeführt wird, während Bit 1 das Vorzeichen des codierten Bits anzeigt. Das Ausgangssignal der Decodier/odierlogik für das Überlochbyte ist auch auf beiden Hälften des internen Bus 14 verfügbar.
  • Die CIP-Prüflogik 54 wählt einen der 32 möglichen Firmware-Prüfzustände als Eingangssignal für die Folgeadressenlogik 42 aus. Der zutreffende oder falsche Zustand der geprüften Funktion steuert Bit 50 des Steuerspeicher-Folgeadresenfeldes, d.h. er setzt das Bit 50 oder stellt es zurück, je nach dem Zustand der überprüften Funktion. Die Folgeadressenlogik NAG 42 im Befehlsprozessor 13 benutzt eine der folgenden fünf Methoden zur Erbeugung der nächsten, also folgenden Firmwareadresse: Direkte Adressierung, Prüfen und Verzweigen, maskierte Verzweigung, Hauptverzweigung oder Rückkehr über Subroutine. Die direkte Adressierung wird benutzt, wenn eine bedingungslose Verzweigung zum nächstfolgenden Steuerspeicherplatz ausgeführt wird. Hierfür werden die Bits 41 bis 51 des Steuerspeicherworts zur Bildung der Folgeadresse verwandt. Diese Bits enthalten das Folgeadressenfeld, welches unmittelbar jeden der vorhandenen Steuerspeicherplätze adressieren kann. Eine Prüf- und Verzweigungsoperation wird durchgeführt, wenn eine Zweiweg-Bedingungsverzweigung bei erfolgreicher Prüfbedingung innerhalb einer Firmwareseite durchgeführt wird. Eine Firmwareseite ist ein Segment mit 128 Speicherplätzen innerhalb des Steuerspeichers. Hierbei werden die Steuerspeicherbits 41 bis 44 und 50 zur Auswahl des Prüfzustands herangezogen. Je nach Zustand der überprüften Funktion wird eine Verzweigung zu einem der beiden Speicherplätze eingeleitet. Die Verzweigungsoperation gemäß diesem Verfahren ist von der Art Modulo 2, d.h. die beiden möglichen Verzweigungsadressen liegen zwei Speicherplätze auseinander. Die Modulo 2-Adresse wird wie wie folgt entwickelt: (1) Ist die Testbedingung erfüllt, so wird Bit 9 der Adresse auf "1" gesetzt, oder (2) ist die Testbedingung nicht erfüllt, so wird Bit 9 der Adresse auf "0" gesetzt.
  • Eine maskierte Verzweigung wird normalerweise benutzt, wenn eine Verzweigung für den Inhalt des Analysenregisters AR 34 oder bestimmter anderer Zustände erfolgen soll. Sie stellt eine Verzweigung zu zwei, vier acht oder sechzehn Speicherplätzen innerhalb der gleichen Firmwareseite dar. Eine Hauptverzweigung wird für die Verzweigung innerhalb einer Firmwareseite (128 Worte) angewandt. Eine CPU/CIP-Schnittstellenroutine verwendet diese Methode, um die erforderliche 16-Wegverzweigung für den Inhalt des Funktionscoderegisters 28 zu erreichen (INB-Hauptverzweigung und EOP-Hauptverzweigung. Die Rückkehr über eine Subroutine erfolgt dann, wenn die Firmware nach Durchführung einer Firmware-Subroutine zum nächsten ungeradezahligen oder geradzahligen Steuerspeicherplatz zurückgebracht werden soll. Die Rückkehradresse erhält man vom Rückkehradressregister RSRA 40. Sie muß in diesem Register 40 gespeichert werden, ehe die betreffende Subroutine ausgeführt wird.
  • Der interne Bus 14 ist für 16 Bits eingerichtet und dient in erster Linie der Datenübertragung zwischen CIP-Re;istern einschließlich von Speicherplätzen innerhalb der Registerdateien.
  • Er empfängt, wie Fig. 2 zeigt, Daten von verschiedenen Quellen.
  • Ausgangssignale des internen Bus 14 werden verschiedenen Registern innerhalb des Befehlsprozessors 13 zugeleitet. Die Paritätsprüflogik 56 liegt zwischen dem Bus 19 und dem internen Bus 14 und prüft die Parität der ankommenden Daten. Die Paritätserzeugerlogik 58 andererseits wird zur Erzeugung des richtigen Paritätsbits für die Übertragung über den Bus 19 verwandt. Die Busanforderungslogik 60 und die Busantwortlogik 62 dienen der Aktivierung des Befehlsprozessors 13,um Zugriff zum Bus 19 zu erlangen bzw.
  • auf Anforderungen nach Zugriff zum Befehlsprozessor zu antworten.
  • Die Logikschaltungen 60 und 62 sind in der US-PS 39 93 981 beschrieben.
  • Fig. 5 zeigt das Blockschaltbild der Geräteeinheit RALU 12 mit den hauptsächlichen Datenübertragungswegen und Steuerleitungen.
  • Letztere sind als gestrichelte Linien dargestellt. Die Beschreibung der Geräteeinheit 12 ist in sieben Bereiche unterteilt: Operandenregisterdateien, Rechenwerk-Eingangsmultiplexer und Verriegelungsschaltungen, Rechenwerk, XS6-Korrekturlogik, Rechenwerk-Ausgangsmultiplexer, RALU-Steuerlogik, verschiedene RALU-Register. Jede der Operandenregisterdateien RF1 70 und RF2 72 besteh aus vier RAM-Speicherbausteinen und wird zur vorübergehenden Speicherung der CIP-Operanden benutzt. Die Adressen für jede der Registerdateien werden durch zwei 6-Bit-iressregister RF1A 74 bzw. RF2A 76 geliefert. Die Bits 0 bis 3 jedes Pdressregisters liefern die Adresse des Speicherplatzesinnerhalb der zugehörigen Registerdatei, während die geringwertigen Bits für die Byte- und Ziffernauswahl am Ausgang der Registerdatei sorgen.
  • Beide Adressregister können durch Ziffern, Bytes oder Worte um jeweils einen, zwei oder vier Schritte vor-und zurückgeschaltet werden. Das Ausgangssignal jeder Registerdatei wird den Eingängen zweier Multiplexer zugeleitet, welche zwischen Zonen-und Zifferninformation unterscheiden. Diese Auswahl erfolgt anhand der Bits 4 und 5 des zugeordneten Adressregisters. Bit 4 wählt aus, ob die Bits 0 bis 3 oder 8 bis 11 der Registerdatei zum Ausgang des 2:2-Multiplexers 78 oder 80 geleitet werden, während das Bit 5 die Registerdateibits auswählt, welche die zum Ausgang des 4:1-Multiplexers 82 bzw. 84 zu leitende Ziffer enthalten.
  • Die verschiedenen Register und Multiplexer sind über verschiedene Steuerleitungen 71, 73, 75 und 77 miteinander verbunden. Ein dritter 2:1-Multiplexer 86 dient der Auswahl ob der Inhalt des Zählers CPRC 88 für das laufende Produkt oder die Ziffer vom Register RF1 der A-Verriegelungsschaltung 90 zugeleitet wird.
  • Dieser Multiplexer wirdvom ALMR-Register 92 gesteuert. Die ALU-Eingangsverriegelungsschaltungen, die A-Verriegelungsschaltung 90 und die B-Verriegelungsschaltung 106, erhalten sowohl Zonen-als auch Zifferninformation von den Rechenwerkeingangsmultiplexern und verriegeln während der Schreiboperationen die Daten in den Registerdateien. Die Ausgangssignale der Verriegelungsschaltungen liefern die Zonen- und Zifferninformation an die linke bzw. die rechte Seite des Rechenwerkes.
  • Der Zähler CPRC 88 für das laufende Produkt ist ein dezimaler 4-Bit-Auf/Abwärtszähler und wird in erster Linie bei dezimalen Multiplikations- und Divisionsoperarationen eingesetzt. Das Multiplikatorregister MIER 94 ist ein binärer 4-Bit Auf/Abwärtszähler und dient gleichen Zwecken. Beim Rechenwerk-Betriebsartsteuerregister ALMR 72 handelt es sich um ein 6-Bit-Steuerregister. Das Adressregister RF1A 74 für die Registerdatei 1 stellt sich als 6-Bit-Adressregister dar und hat zwei Funktionen: (1) es liefert Adressen für die Registerdatei 1 (70) und (2) steuert zwei der drei Rechenwerkeingangsmultiplexer, die der Registerdatei 1 zugeordnet sind. Das Registerdatei-2-Adressregister RF2A 76 ist ebenfalls ein 6-BitAdressregister und übt inBezug auf die Registerdatei 3 (72) die entsprechenden Funktionen aus. Alle Operationen des Rechenwerks ALU 100 werden entweder dezimal oder binär ausgeführt. Dezimalbetrieb erfolgt bei der Verarbeitung von Dezimalzifferinformationen, während Binärbetrieb für die Verarbeitung von Bytes (Alpha) dient. Beide Betriebsarten steuern außerdem die Über-6-Korrekturlogik 102 (XS6) sowie die Eingänge des Übertragungs-Flip-Flops. Bei Dezimalbetrieb wird dieses Flip-Flop mit dem Übertrag aus den vier Bits niedriger Wertigkeit des Rechenwerks geladen, während es bei Binärbetrieb den Übertrag der acht Bits des Rechenwerks für nachfolgende arithmetische Operationen aufnimmt. Das Laden des Übertrag-Flip-Flops erfolgt, gesteuert durch ein Mikroprogramm, sobald ein Übertrag für nachfolgende Operationen weitergegeben werden muß. Außerdem kann das Übertrag-Flip-Flop vom MSR-Register geladen werden sowie von einem Mikroprogramm gesteuert, gesetzt oder zurückgestellt werden.
  • Die XS6-Korrekturlogik 102 enthält einen 32-Bit x 8 Bit PROM-Baustein sowie die zugehörige Steuerlogik für die Korrektur der drei höherwertigen Bits am Ziffernausgang des Rechenwerks. Die XS6-Korrektur wird durchgeführt, sofern: (1) das Rechenwerk im dezimalen Additionsbetrieb arbeitet und ein dezimaler Übertrag festgestellt wirdoderfiffernausgang des Rechenwerks 100 größer als 9 ist, sowie (2) wenn das Rechenwerk im dezimalen Subtza>#ionsbetrieb arbeitet und ein Borgbetrag erforderlich ist, d.h. ein Übertrag vom Ziffernteil des Addierers fehlt. Der PROM-Baustein hat fünf Adressleitungen, drei hiervon sind für die drei Bits höherer Ordnung vom Ziffernausgang des Rechenwerks bestimmt, während die anderen beiden Adressleitungen die Art der ausgeführten Operation anzeigen, d.h. Addier-Korrektur Subtrahier-Korrektur oder keine Korrektur. Der codierte Inhalt des PROM-Bausteins besteht aus den drei korrigierten Bits höherer Ordnung der Ziffer, dem korrigierten Dezimalübertrag und dem Zustand "Ziffer kleiner als 2".
  • Der Rechenwerkausgangsmultiplexer 104 wählt zwischen oberen vier Bits des Addiererausgangssignals und den korrigierten Dezimalzonenbits aus und liefert diese an den internen Bus. Die Konfiguration der Zonenbits für den Dezimalbetrieb hängt davon ab, ob ASCII-oder EBCDIC-Daten verwendet werden. Wenn ASCII-Daten verarbeitet werden, erhalten die Zonenbits den Wert 3, während bei der Verarbeitung von EBCDIC-Daten die Zonenbits einen Wert F haben.
  • Die Register- und Rechenwerksteuerung 12 besteht aus Registern RF1A 74, RF2A 76 und ALMR 92 sowie verschiedenen Mikrobefehlen.
  • Außerdem wird das Rechenwerk-Übertragungs-Flip-Flop durch ein Mikroprogramm gesteuert. Es kann je nach Bedarf durch entsprechende Mikrobefehle gelöscht oder vorgesetzt werden und läßt sich laden von: (1) dem 4-Bit-Digialübertrag für Dezimaloperationen, (2) dem 8-Bit-Binärübertrag für Binäroperationen, oder (3) durch das Bit 0 des MSR-Registers 22, während der Durchführung eines Umwandlungsbefehls. Das alle Rechenwerkoperationen steuernde ALMR-Register 92 wird mit den Steuerspeicherbits 2 bis 7 geladen. Bit 0 gibt an, ob das Rechenwerk im Dezimal-oder im Binärbetrieb arbeitet, d.h. ob der Austrag des Rechenwerks mit Bit 4 (digitaler Übertrag) oder mit Bit 0 (binärer Übertrag) erfolgt. Bit 0 steuert weiterhin sowohl die Rechenwerkkorrektur XS6 für Dezimaloperationen sowie den Rechenwerkausgangsmultiplexer 104. Dieser bestimmt, ob die höherrangigen vier Bits des Rechenwerks oder die Zonenbits dem internen Bus zugeleitet werden. Die Bits 1, 2 und 3 dienen der Operationssteuerung innerhalb des Rechenwerks. Bit 4 bestimmt, ob die Zonenbits auf einen Wert 3 oder F gesetzt werden und zwar auf den Wert 3 für ASCII-Daten und auf den Wert F für EDCDIC-Daten. Bit 5 gibt an, ob die aus der Registerdatei 1 oder dem Inhalt des Zählers 88 für das laufende Produkt ausgewählte Ziffer den auf der linken Seite des Rechenwerks angeordneten Verriegelungsschaltungen 90 zugeführt wird. Das Register RF1A liefert die Adresse und steuert die Registerdatei sowie die zugehörigen Rechenwerk-Eingangsmultiplexer. Das Register RF2A hat die gleiche Aufgabe in Bezug auf die Registerdatei 2.
  • Die Steuerdatei 16 ist in zwei Bereiche unterteilt, nämlich die obere Sektion mit den Bits 0 bis 7 und die untere Sektion mit den Bits 8 bis 23. Jede Sektion kann wie folgt geladen werden: Die niedrige Sektion vom internen Bus (Bits 0 bis 15), die obere vom internen Bus (Bits 0 bis 7), die untere vom internen Bus (Bits 0 bis 15) und die obere vom Busadressregister 18 (Bits 0 bis 7). Den die obigen Operationen durchführenden Funktionen ist eine Adresse zugeordnet, welche der in den Speicherplatz RFC 16 geladenen entspricht. Diese Adresse stammt entweder vom Funk tionscoderegister 28 oder vom Steuerspeicher 10. Damit steht die RFC-Adresse in unmittelbarem Zusammenhang zur Art der von der Zentraleinheit übertragenen Daten bzw. zum angezeigten Funktionscode.
  • Nach der vorangehenden Beschreibung des Aufbaus der DV-Anlage wird nachfolgend anhand des Flußdiagramms gemäß Fig. 6 sowie des Blockschaltbildes nach Fig. 7 ihre Anwendung zur Durchführung des erfindungsgemäßen Multiplikationsverfahrens erläutert. Der Eintritt in das Flußdiagramm gemäß Fig. 6 erfolgt aus einer 16-Weg-Operationscodeverzweigung in die Blöcke 200 und 201. Die erste Routine DD1 analysiert den Wortbeschreibungsoperanden 1 im Block 202. Diese Routine prüft die Länge des Operanden um festzustellen, ob er gleich oder größer als Null ist. Ist er Null, so tritt ein Abfangzustand IS wegen unzulässiger Eigenschaft ein. R4 ist ein Platz in der Steuerdatei 16 (RFC) und dient zum Sicherstellen der Länge des Operanden 1 (MAND), der aus dem Datendeskriptor herausgezogen wurde. Die DD1-Analyse endet mit einer Zweiwegverzweigung der Datenartspezifikation des Datendeskriptors 1, je nachdem ob der Operand ein gepacktes Format oder ein ungepacktes Format hat. Gepackte Dezimaldaten sind im BCD-Code mit 4 Bits pro Ziffer formatiert. Ungepackte Dezimaldaten sind in 8 Bits per Ziffer gepackt,bestehend aus einer 4-Bitzone und einem 4-Bit-Ziffernanteil. Die gepackte 8-Bit-Information ist für die Ausgabe auf einem Schnelldrucker formatiert.
  • Sie dient der Unterscheidung zwischen Alpha zahlen und Sonderzeichen. Das gepackte Format wird im Rechner als rein numerische Information benutzt, wo sich das Problem der Unterscheidung zwischen Aplhazeichen und numerischen Zeichen nicht stellt. Hierdurch wird Speicherplatz gespart.
  • Ist der Operand 1 gepackt, so läuft die Routine 204 an. Hier wird der gesamte Operand aus dem Speicher ausgelesen und in die Registerdatei 1 innerhalb des Befehlsprozessors CIP 13 eingegeben.
  • Auch wird die Adresse der höchstwertigen Ziffer im Register RF1 im Gebrauchsspeicherplatz ULO des Registers RFC sichergestellt.
  • Nachdem der gesamte Operand 1 in das Register RF1 eingegeben ist, fängt die Routine 208 an. Hier wird das Vorzeichen des Operanden analysiert und decodiert, und eine Aufzeichnung des Vorzeichens wird im Register MPSR 36 im Speicherplatz 0 festgehalten. Außer der Aufzeichnung des Vorzeichens wird die Adresse der höchstwertigen Ziffer des Operanden 1 im Gebrauchsspeicherplatz 1 des Registers RFC16 festgehalten. Die Länge des Operanden 1, d.h.
  • seine Länge ohne das Vorzeichen, wird im Speicherplatz R4 des Registers RFC niedergelegt. Das Vorzeichen des Operanden 1 wird hinsichtlich Richtigkeit überprüft und wenn ein falscher Vorzeichencode auftritt, beginnt ein Abfangvorgang wegen unzulässiger Codierung; die Befehlsausführung endet an diesem Punkt, Enthält der Operand 1 nur ein Vorzeichen, d.h. wenn seine Länge gleich 1 ist und ist der Operand mit einem Vorzeichen versehen, so entsteht ein Abfangpunkt wegen unzulässiger Spezifikation und der Befehl endet. Enthält der Operand Daten und ist sein Vorzeichen ordnungsgemäß, so beginnt die Routine 210, welche den Deskriptor des Operanden 2 analysiert. Operand 2 ist der Multiplikator.
  • Ist der Operand 1 gepackt, so fängt Routine 206 an und der gepackte Operand wird aus dem Speicher ausgelesen, aus dem ungepackten in ein gepacktes Format umgewandelt und im Register RF1 sichergestellt. Die 8-Bit-Darstellung wird also in eine 4-Bit-Darstellung in der Registerdatei 1 umgewandelt und die Zoneninformation entfernt. Ähnlich wie im Fall des gepackten Formats wird die Adresse der höchstwertigen Ziffer des Operanden 1 im Gebrauchsspeicherplatz 0 der Steuerdatei RFC 16 abgelegt. Die Routine 206 geht in die Routine 212 über und analysiert das Vorzeichen des Operanden 1. Es handelt sich um gepackte Vorzeichen. Es gibt zwei unterschiedliche Formate, nämlich ein Vorzeichen mit acht getrennten Bits und ein Überloch-Vorzeichen in der gepackten Information. Das Vorzeichen wird auf Richtigkeit geprüft. Ist es unzulässig, d.h. wenn der Vorzeichencode unzulässige Zeichen enthält, so ergibt sich ein Abfangzustand wegen unzulässiger Codierung und der Befehl endet. Besteht der Operand 1 nur aus einem Vorzeichen ohne Daten, so erfolgt ebenfalls ein Abfangen wegen unzulässiger Spezifikation und eine Beendigung des Befehls. Ist keiner dieser Zustände gegeben, so geht die Routine 212 in die Routine 210 über und analysiert den Deskriptor des Operanden 2 (MIER). Zur Analyse des Datendeskriptors DD2 des Operanden 2 wird in der Routine 210 zunächst geprüft, ob die angegebene Adresse einen Direktoperanden angibt. Ist dies der Fall, so wird die Operation abgefangen wegen unzulässiger Spezifikation und die Befehlsverarbeitung endet an dieser Stelle. Ein Direktoperand ist ein solcher, der im Befehlswort enthalten ist und ist als Operand 2 für einen dezimalen Multiplikationsbefehl unzulässig. Der Operand 2 wird ferner darauf überprüft, ob seine Länge größer als Null istund ob er ein Datenzeichen enthält, d.h.ob er nicht etwa nur aus einem Vorzeichen besteht. Die DD2-Analysenroutine entnimmt die Länge des Operanden 2 aus dem Datendeskriptor DD2 und stellt sie im Gebrauchsspeicherplatz R5 der Registersteuerdatei RFC16 sicher. Während der l)D2-Analyse wird die Adresse der geringstwertigen Ziffer des Operanden 2 im Speicher gebildet als Vorbereitung für den Zugriff zum Operanden im Speicher und zwar sofern der Operand gepackt ist. Ist der Operand 2 hingegen ungepackt, so würde dieselbe Adresse für das geringstwertige Byte des Operanden 2 berechnet. Ist die Länge des Operanden 2 größer als Null und bezeichnet der Datendeskriptor DD2 keine direkte Operandenadresse IMO, so verzweigt die DD2-Analyse für den Datentyp des Operanden 2,der gepackt oder ungepackt sein kann. Sofern der Operand 2 gepackt ist, geht die Firmware-Routine 210 in die Routine 214 über und wenn er ungepackt ist, in die Routine 216. In beiden Routinen wird das Vorzeichen des Operanden 2 analysiert und auf Gültigkeit sowie zulässige Codierung überprüft.
  • Die Operation wird wegen unzulässiger Codierung abgefangen und der Befehl beendet, falls sich das Zeichen als ungültig erweist.
  • Besteht der Operand nur aus einem Vorzeichen, so wird auch dieser Zustand festgestellt und der Befehl beendet. Anschließend wird die Länge des Operanden abzüglich des Vorzeichens bestimmt und im Gebrauchs- oder Dienstspeicherplatz BUL der Registersteuerdatei abgelegt. Die der geringstwertigen Ziffer oder dem geringstwertigen Byte des Operanden 2 entsprechende Adresse im Register RF2 wird im Dienstspeicherplatz WL1 der Datei 16 sichergestellt. Beide Firmware-Routinen 214 und 216 gehen in die Firmware-Routine 218 über. Der Unterschied zwischen den Routine 214 und 216 besteht darin, daß der Umfang des Zeichens für gepackte Operanden nur 4 Bit beträgt, während der Umfang des Zeichens für ungepackte Operanden ein 8-Bit-Zeichen ist und daß zwei Formate von Zonenzeichen bestehen.
  • Die Firmware-Routine 218 tastet den Operanden 1, d.h. den Multiplikanden vom höchstwertigen zum geringstwertigen Ende ab, um eine Kette höchstwertiger Nullstellen zu ermitteln. Die Operation hört auf, sobald ein Zeichen ungleich Null gefunden ist.
  • Für jedes gefundene 0-Zeichen wird die Länge des Operanden verringert. Die Anzahl der gefunden Nulls#llen am höchstwertigen Ende verringert die Länge des Operanden auf eine signifikante Länge und diese signifikante Länge des Operanden wird im Speicherplatz R4 der Registersteuerdatei 16 abgelegt. Die Firmware-Routine 218 prüft schließlich die reduzierte signifikante Länge des Multiplikanden. Ist diese gleich Null und ist folglich das Produkt gleich Null so geht die Routine zum Produktblock 224 (Punkt B) über. Weder der Block 224 noch der Block 222 sind Operationsblöcke. Sie sind lediglich Anschlüsse oder Anzeiger im Flußdiagramm.
  • Findet die Firmware-Routine 218 beim Abtasten des Multiplikanden auf Nullstellen, daß der Multiplikand nicht gleich Null ist, so geht sie in die Firmware-Routine 220 über. Hier wird eine ähnliche Abtastung des Operanden 2, d.h. des Multiplikators vorgenommen, wiederum vom höchstwertigen Ende zum geringstwertigen Ende. Für jede am höchstwertigen Ende des Operanden 2 in einer Reihe gefundene Nullstelle wird die Länge des Operanden um 1 verringert. Die verringerte oder signifikante Länge des Operanden 2 wird im Speicher CTR1 46 festgehalten und die Adresse des geringstwertigen Multiplikatorzeichens im Dienstspeicherplatz WL1 der Registersteuerdatei RFC16. Die Firmware-Routine 220 prüft die Länge des Multiplikators, um festzustellen, ob diese gleich Null ist. Ist dies der Fall, so gilt dies auch für das Produkt und die Routine 220 geht in die Routine 224 über. Ist der Multiplikator hingegen nicht gleich Null, d.h. wenn bei der Abtastung einige signifikante von Null verschiedene Zeichen gefunden werden, so geht die Routine 220 in die Routine 222 (Punkt A) über und beginnt mit der Berechnung des Produkts.
  • Am Anfang der Produktberechnung steht die Firmware-Routine 226.
  • Dieser Vorzyklus wird nur einmal während jedes Multiplikationsbefehls durchgeführt. Mit ihm wird die Länge des Produkts berechnet, indem man die signifikanten Längen von Multiplikator und Multiplikand addiert. Eine andere Funktion des Vorzyklus ist die sicherstellung der Produktlänge für spätere Verwendung. Die nächste Funktion besteht im Löschen des Registerbereichs RF2 auf Null, in welchem das Produkt entsteht. Das anfängliche Teilprodukt ist gleich Null. Die Länge des Produkts wird ebenfalls in der Registerdatei C gespeichert. Dieser Vorzyklus geht in die Firmware-Routine 228 über, welche den Vorzyklus für jedes Multiplikatorzeichen darstellt. Zu Beginn der Bildung jedes Teilprodukts wird dieser Zyklus angelaufen.
  • Die Vorzyklusroutine für das Multiplikatorzeichen überprüft jedes der Multiplikatorzeichen. Zunächst wird festgestellt, ob es sich um ein gültiges Zeichen handelt. Ist das Multiplikatorzeichen größer als 9, so erfolgt ein Abfangen wegen unzulässiger Codierung und der Befehl endet. Anschließend wird das Multiplikatorzeichen auf Null überprüft. Ist das Multiplikatorzeichen gleich Null, so ist auch das Teilprodukt gleich Null. Ist dies der Fall und war der vorangehende Zyklus ein Additionszyklus, d.h. lag kein Übertrag von einem vorangehenden Zyklus vor, so geht der Zeichenvorzyklus über in die Routine 234, welche die Fertigstellung des Teilprodukts darstellt. Ist das Multiplikatorzeichen nicht größer als 9 und auch nicht gleich Null, so wird wird geprüft, ob es größer als 5 ist. Ist gleich oder kleiner als 5, so setzt der Multiplikatorzeichen-Vorzyklus eine Additionsoperation in Gang und der echte Wert des Multiplikators wird in den Multiplikatorzähler,nämlich das Multiplikatorregister MIER 94 eingegeben. Ist hingegen das Multiplikatorzeichen größer als 5, so wird das Rechenwerk auf eine Subtraktion eingestellt und das Zehnerkomplement des Multiplikatorzeichens wird in das Multiplikatorregister 94 eingespeichert.
  • Ist das gegenwärtige Multiplikatorzeichen gleich oder kleiner 5 und fand im vorangehenden Zyklus eine Subtraktionsoperation statt, so wird das laufende Multiplikatorzeichen um 1 erhöht.
  • Wenn beispielsweise der Multiplikator den Wert 39 hat, so könnte die 9 minus einmal eine Addition des Multiplikanden zum Teilprodukt bewirken und da es sich um eine Subtraktionsoperation handelt, würde die 3 auf 4 erhöht, um 40 minus 1 darzustellen.
  • Die Vorzyklusroutine 228 für das Multiplikatorregisterzeichen geht jeweils in die Produktberechnungsroutine 230 über.
  • Diese addiert oder subtrahiert den Multiplikanden einmal zum Teilprodukt.Dies geschieht jeweils mit einer Ziffer und die Teilproduktberechnungsroutine wird so oft wiederholt, bis alle Ziffern des Multiplikanden verarbeitet sind. Diese Wiederholung wird durch die Linie 231 angedeutet. Zusätzlich zur Addition einer Multiplikandenziffer (MAND) zum Teilprodukt ist die Berechnungsroutine die Adresse für das nächste oder nachfolgend signifikante Teilproduktzeichen und das Multiplikandenzeichen; und das Ergebnis der laufenden Addition wird in ein Register übertragen, um als Übertrag für die nächste Operation zu dienen.
  • Die Multiplikationsroutine bleibt iterativ in der Produktberechnungsroutine, bis die wichtigste Ziffer'des Multiplikanden zum Teilprodukt addiert ist. Dann geht die Produktberechnungsroutine in die Firmware-Routine 232 über.
  • Diese Routine 232 fängt an, nachdem das höchstwertige Multiplikandenzeichen verarbeitet ist und ein durch die höchstwertige Multiplikandenziffer erzeugter Übertrag wird zum Teilprodukt addiert. Außerdem wird das Multiplikatorzeichen im MIER-Register um 1 zurückgeschaltet und überprüft, ob das Multiplikandenzeichen größer als 9 ist. Ist dies der Fall, so wird die Routine abgefangen und der Befehl ist beendet. Die Routine 232 schließt mit der Überprüfung des zurückgeschalteten Wertes des Multiplikators, um festzustellen, ob er auf Null zurückgeschaltet ist. Ist dies nicht der Fall, so sind zusätzliche Additionen des Multiplikanden zum Multiplikator erforderlich und die Produktberechnungsroutine 230 läuft erneut an. Ist das Multiplikatorzeichen auf Null zurürkgeschaltet, so ist diese Teilprodukt fertig und die Routine 232 geht in die Firmware-Routine 234 über, wo Operationen für ein fertiges Teilprodukt durchgeführt werden.
  • Der Teilprodukt-Fertigstellungszyklus 234 prüft, ob irgendein Übergang von einem Subtrahier- zu einem Addierzyklus stattgefunden hat. Wenn ein vorangehender Zyklus e# Subtrahierzyklus war und der laufende Zyklus addiert hat, so ist der wichtigste Teil des Teilprodukts von Neunen in Nullen umgeändert worden, weil es nun in positiver Form dasteht. Ist ein anderer Übergang durchgeführt worden, d.h. war der vorangehende Zyklus ein Addierzyklus und der laufende Zyklus ein Subtrahierzyklus, so ist das Teilprodukt nunmehr negativ und der nicht berechnete Teil des Teilprodukts muß mit Neunen aufgefüllt werden. Die Teilprodukt-Vervollständigungsroutin# 234 prüft als letztes die Länge des Multiplikators. Ist dieser auf Null zurückgeschaltet, zeigt sie an, daß keine weiteren Multiplikatorzeichen verarbeitet werden müssen. Ist der Multiplikatorlängenzähler nicht auf Null zurückgestellt, d.h. ist die Multiplikator0#inge größer als Null, so bedeutet dies daß weitere Multiplikatorzeichen verarbeitet werden müssen. In diesem Fall geht die Firmware-Routine 234 in die Firmware-Routine 228 über, mit der das Produkt für ein weiteres Multiplikatorzeichen gebildet wird. Wenn das laufende Multiplikatorzeichen das höchstwertige verarbeitete Zeichen ist, d.h. der Multipllkatorlängenzähler auf Null zurückgeschaltet ist, geht die Firmware-Routine 234 in die Routine 236 über, welche prüft, ob das höchstwertige Multiplikatorzeichen größer als 5 war.
  • Ist der höchstwertige Multiplikator größer als 5, so handelt es sich beim vorangehenden Produktzyklus um eine Subtrahierroutine und das Ergebnis steht in komplementärer Form dar. In diesem Fall wird zum Ergebnis das Komplement gebildet, indem das Multiplikatorzeichen auf 1 gesetzt wird und die Multiplikatorzeichenvorzyklusroutine erneut in Gang gesetzt wird. Auf diese Weise wird 10n mal der Multplikand zum Teilprodukt addiert, um dieses von der Komplementärform in die echte Form umzuwandeln. Ist das höchstwertige Multiplikatorzeichen gleich oder kleiner als 5, so läuft im Punkt B der Produktberechnungs-Nachzyklus 238 an, der auch dann in Gang gesetzt wurde, wenn der Multiplikator oder der Multiplikand gleich Null ist. Der Zyklus wurde dann von der Abtastroutine gemäß Block 224 angelaufen. Zweck dieses Nachzyklus ist das Setzen der Anzeiger,um den Procrammierer vom Ergebnis der Multiplikationsoperation zu informieren und das Produkt auf seine Umspeicherung vom zeitweisen Speicherplatz im Register RF2 in den Hauptspeicher vorzubereiten.
  • Die Operation im Produktberechnungs-Naczyklus bestimmt das Vorzeichen des Operanden entsprechend den Regeln der Algebra und entsprechend dem Vorzeichen der Operanden 1 und 2. Das Vorzeichen des Produkts ist positiv, wenn beide Operanden positives Vorzeichen haben und es ist negativ, wenn die Operanden unterschiedliches Vorzeichen haben. Sobald der Wert des Vorzeichens bestimmt ist, d.h. entweder Plus oder Minus,so wird das Vorzeichen dem Produkt hinzugeführt, je nachdem ob das Produkt gepackt oder ungepackt vorliegt. Nach Bestimmung des Vorzeichens werden die Zustandscode-Bits gesetzt. Diese Bits werden größer als oder kleiner als bezeichnet und entsprechend codiert, je nachdem ob das Produkt Null, negativ oder positiv ist. Ist das Produkt negativ und beschreibt der Datendeskriptor des Operanden 2 den Operanden 2 als vorzeichenlosen Operanden, so wird der Vorzeichenfehlerindikator gesetzt. Der Produktberechnungsnachzyklus 238 prüft das Produkt auf Überlauf, d.h. es prüft die Länge des Produkts gegenüber der vom Programmiererer vorgesehenen Länge zur Porduktspeicherung. Ist das Produkt zu lang und paßt nicht in den Operanden 2, so besteht ein Überlauf und der entsprechende Anzeiger wird gesetzt. Sobald dieser festgestellt wird, wird eine Überlaufabfangmaskierung überprüft. Sobald diese das Abfangen ermöglicht, geschieht dies und als Ergebnis wird das Produkt nicht im Speicher gespeichert und der Befehl beendet. Hört der Befehl nicht über einen Überlaufabfangvorgang auf, so endet er entweder durch Einlauf in den Speicherzyklus 240 bzw. 244 für gepackte oder ungepackte Ergebnisse.
  • Damit ist das Flußdiagramm im Block 244 beendet.
  • Fig. 7 zeigt den Logikaufbau der Geräteinheit zur Durchtührung des Verfahrens gemäß der Erfindung. Der Multiplikatorzeichenvorzyklus 228 (Fig. 6) beginnt mit dem Auffinden des Multiplikatorzeichens in der Operandenregisterdatei RF2 72. Der Multiplikator wird aus dem Speicher ausgelesen und zwar jeweils ein Wort, beginnend vom geringstwertigen Ende zum höchstwertigen Ende. Beim Lesen jedes Wortes wird dieses in die Registerdatei RF2 und zwar an den Speicherplatz F gebracht,und das laufende Multiplikatorzeichen wird durch Setzen des Registers RF2A 76 angewählt, welches auf eine der vier Ziffdern im Speicherplatz F des Registers RF2 hinweist. Der Multiplikatorzeichenvorzyklus 228 beginnt mit dem Zugriff bzw. dem Auffinden des entsprechenden Multiplikatorzeichens in der Registerdatei RF2 72, indem er das Register RF2A 76 zu Hilfe nimmt. Die ausgewählte Ziffer wird als Eingangssignal an den Multiplikator-PROM-Baustein 318 gegeben.
  • Dieser Baustein stellt fest, ob die Ziffer größer als Neun und ob sie größer als Fünf ist. Der Baustein 318 liefert als Ausgangssignal entweder den echten Wert der Multiplikatorziffer oder ihr Komplement. Diese Signale stehen als Eingangssignale für das Multiplikatorregister 94 zur Verfügung.
  • Nachdem die Ziffer in dieses Register eingegeben ist, wird die an das Multiplikatorregister angeschlossene Nullstellen-Decodierung 324 ihr Signal an die Folgeadressen-Erzeugungslogik 42 geben, um die Auswahl des nächsten Firmware-Wortes zu ermöglichen. Der gesamte Operand wird in die Registerdatei 1 eingegeben und der Multiplikator vom Speicher in die Registerdatei Wort fürfür WortWigeefordert übertragen. Außerdem enthält die Registerdatei 2 neben den laufenden vier Zeichen des Multiplikators auch die Produkte. Der Produktbereich innerhalb der Registerdatei RF2 wird anfänglich auf Null gestellt.
  • Die Multiplikation geht Zeichen für Zeichen weiter. Die Register RF2A und RF1A sind Zähler, welche zum Adressieren der Registerdateien RF2 bzw. RF1 dienen, welche das zu verarbeitende Zeichen auswählen. Wegen der iterativen Art des Multiplikationsprozesses werden Dienstspeicherplätze benötigt, um den Startplatz für den Multiplikanden und den Startplatz des Teilprodukts festzulegen.
  • Der Multiplikand wird immer vom geringstwertigen Ende zum höchstwertigen Ende abgearbeitet und zwar schrittweise jeweils einmal für jeden Wert des Multiplikators. Folglich enthält der Dienstspeicherplatz 1 300 in der Registerdatei RFC16 die Adresse des geringstwertigen Endes des Multiplikanden. Dieses wird in das Adressregister RF1A der Registerdatei 1 übertragen, um das gerinostwertige Ende des Mtlltiplikanden am Beginn des Produktberechnungszyklus aufzufinden. Das Teilprodukt wird ebenfalls vom geringstwertigen Ende her zum höchstwertigen Ende hin abgearbeitet, jedoch wird für jedes Multiplikatorzeichen der Speicherplatz des geringstwertigen Endes eines Teilprodukts geändert. Der Dienstspeicherplatz 2 332 in der Registersteuerdatei 16 enthält die geringstwertige Adresse des Teilprodukts, welche bei jeder Teil produktberechnung um einen Schritt verringert wird. Der Inhalt des Dientspeicherplatz 2 wird bei jedem Anfang eines Teilproduktzyklus in das Adressregister RF2A übertragen, um das geringstwertige Zeichen des Teilprodukts aufzufinden und auszuwählen.
  • Außerdem erfolgt Zeichen für Zeichen Zugriff zum Multiplikator in der Operandenregisterdatei RF2 72. Folglich wird ein Dienstspeicherplatz in der Registersteuerdatei 16 benötigt, um die Adresse für das nächste zu verarbeitende Multiplikatorzeichen festzuhalten.
  • Dieser Speicherplatz ULO 328 wird am Ende jedes Multiplikatorzeichens einmal fortgeschaltet und nach der Verarbeitung von vier Multiplikatorzeichen zurückgesetzt. Dann muß ein neues Wort aus dem Speicher ausgelesen werden und der Speicherplatz ULO 328 erneut in Gang gesetzt werden.
  • Wie erwähnt, besteht die Aufgabe des Multiplikator-PROM-Bausteins 318 darin, hinsichtlich des laufenden Wertes des Multiplikatorzeichens festzustellen, ob der Mrqltiplikator größer als 9 ist und ob er größer als 5 ist. Hiervon hängt es ab, ob entweder die echten die komplementären Eingangssignale dem Multiplikatorregister 94 zugeführt werden. Die Ausgangssignale des Bausteins 318 gelangen zur Erzeugerlogik 42 für die Folgeadresse, wo auf Grund des Wertes des Multiplikatorzeichens eine Entscheidung gefällt wird. Der Datenausgang des Bausteins PROM 318 ist entweder echt, wenn der Wert des Multiplikatorzeichens gleich oder kleiner als 5 ist oder er wird als Zehnerkomplement dargestellt, wenn das gerade bearbeitete Multiplikatorzeichen größer als 5 ist. Das Ausgangssignal dieses Bausteins 318 wird zu Beginn jedes Teilprodukt-Berechnungszyklus in das Multiplikatorregister 94 geladen.
  • Der Inhalt des Multiplikatorregisters wird mit Hilfe des Decodierers 324 auf Null decodiert und das Ergebnis dieser Decodieung steht der Folgeadressen-Erzeugungslogik als Verzweigungszustand für die Steueroperation der Firmware zur Verfügung, wenn das Multiplikatorzeichen auf Null zurückaeschaltet ist und damit anzeigt, daß das Teilprodukt vollständig ist.
  • Die Berechnung des Produkts erfolgt in einem 4-Bit-Dezimaladdierer 316, dessen Eingangssignalevon den Registerdateien RF1 und RF2 kommen. Die Datei RF1 enthält das Multiplikandenzeichen und das Register RF2 das Teilproduktzeichen. Diese beiden Zeichen werden im Addierers316 addiert und die sich hieraus ergebene Summe in den Teilprodukt-Speicherbereich des Registers RF2 eingespeichert.
  • Während jedes Zyklus der Produktberechnungsroutine wird der Überlauf der anstehenden Addition im Register 306 sichergestellt. um im nächsten Additionszyklus als Übertrag zu dienen. Beim Auslesen jedes Multiplikandenzeichens aus der Registerdatei RF1 70 wird es auf Gültigkeit überprüft. Es wird hierzu vom Decoder 308 decodiert und wenn sein Wert größer als 9 ist wird eine Aufzeichnung im Kumulator 309 bewirkt, der alle Zeichen größer als 9 festhält, um sie am Ende des Berechnungszyklus bereitzuhalten.
  • Der Produktberechnungszyklus schaltet den Inhalt der Adressregister RF1A und RF2A schrittweise zurück, um die nächsten zu verarbeitenden Zeichen anzuwählen und verringert außerdem die Länge des Multiplikanden im Zähler 3 (50). Die Produktberechnungsroutine prüft den Zähler 3, um festzustellen, wenn die höchstwertige Multiplikandenziffer verarbeitet ist. Die Routine 232, genannt die Multiplikanden-Vervollständigungsroutine, prüft den Zeichenkumulator 309, um festzustellen, ob irgendeines der Multiplikandenzeichen unzulässig ist. Wird ein solches unzuläsiges Zeichen festgestellt, so beginnt eine Abfangroutine und der Befehl wird beendet. Die Multiplikandenvervollständigungsroutine schaltet außerdem das Multiplikatorregister 94 zurück und prüft, ob sein Inhalt auf Null zurückgeschaltet ist. Ist dies der Fall, so bedeutet dies, daß ein Teilprodukt gebildet ist. Ist der Inhalt des Multiplikatorregister 94 hingegen noch nicht gleich Null, so heißt dies, daß das laufende Teilprodukt noch nicht vollständig ist und die Produktberechnungsroutine 230 läuft erneut an. Sobald die Vervollständigungsroutine feststellt, daß das Multiplikatorregister 94 auf Null zurückgeschaltet und damit das Teilprodukt vollständig ist, läuft die Teilprodukt-Vervollständigungsroutine 234 an. Sie prüft die beiden Bits im Schaltregister 36, denen die Zustände laufend und "vorherig" zugeordnet sind. Diese Bits zeigen an, ob der laufende Zyklus ein Addier- oder ein Subtrahierzyklus und geben gleichen Information hinsichtlich des vorangehenden Zyklus. Die Routine 234 führt auf Grund dieser Bits eine Vierwegverzweigung durch. In zwei der vier Fälle muß das Teilprodukt modifiziert werden. Hat ein Ubergang von einem Addierzyklus zu einem Subtrahierzyklus stattgefunden oder ist ein Übergang von einem Subtrahierzyklus zu einem Addierzyklus erfolgt, so muß der noch nicht verarbeitete Teil des Produkts mit Nullen oder Neunen aufgefüllt werden, je nachdem in welcher Richtung der übergang erfolgt ist. Die Routine 234 aktiviert das Testen des Multiplikatorlängenzählers im Zähler 2 (48) um festzustellen, ob weitere Multiplikatorzeichen verarbeitet werden müssen. Der Multiplikatorlängenzähler wird bei jeder Verarbeitung eines Multiplikatorzeichens um einen Schritt zurückgestellt.
  • Erreicht der Zähler 2 (48) den Wert Null, so geht die Teilproduktvervollständigungsroutine 234 in die Ergebnisvervollständigungsroutine 236 über. Anderfalls, d.h. wenn der Zähler 2 nicht auf Null zurückgestellt ist, steuert die Routine 234 erneut den Multiplikatorvorzyklus an, um die Berechnung des nächsten Teilprodukts in Gang zu setzen. Die Ergebnisvervollständigungsroutine 236 prüft die Bits im Schaltregister 36 entsprechend dem laufenden Zyklus, ob eine Additions- oder Subtraktionsoperation durchgeführt wurde. Wurde addiert, so geht die Routine 236 in den Produktberechnungsnachzyklus über. Wurde hingegen eine Subtraktion durchgeführt, so addiert die Ergebnisvervollständigungsroutine zum Multiplikator den Wert 1 und läuft erneut den Multiplikatorzeichen-Vorzyklus an, um das Komplement zum negatin+1 ven Ergebnis zu bilden, indem zu ihm 10 1 mal der Multiplikant hinzuaddiert wird.

Claims (10)

  1. Verfahren und Einrichtung zur Multiplikation von Dezirnalzahlen in einer DV-Anlage Patentansprüche: Verfahren zur Multiplikation einer ersten mit einer zweiten Zahl mittels einer DV-Anlage, g e k e n n z e i c h n e t d u r c h folgende Schritte: a) Es wird festgestellt, ob der Wert einer ausgewählten Ziffer der ersten Zahl größer ist als ein vorgewählter Wert; b) sofern der Wert der ausgewählten Ziffer nicht größer als der vorgewählte Wert ist, wird eine vorgegebene Ziffer der zweiten Zahl so oft zueinander addiert, wie es dem Wert der ausgewählten Ziffer entspricht; c) ist der Wert der ausgewählten Ziffer hingegen größer als der vorgewählte Wert, so schließen sich an die Feststellung folgende Schritte an: cl) Es wird das Komplement zur ausgewählten Ziffer erzeugt; c2) der Wert der vorgegebenen Ziffer wird so oft von einem vorgegebenen Wert subtrahiert, wie es dem Komplement der ausgewählten Ziffer entspricht; c3) es wird das Komplement zum Ergebnis der genannten SubtIaktion gebildet.
  2. 2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n -z e i c h n e t, daß der vorgewählte Wert (gemäß a) gleich Fünf ist.
  3. 3. Verfahren nach Anspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t, daß die Verfahrensschritte a, b und c so oft wiederholt werden, wie Ziffern in der ersten und zweiten Zahl vorhanden sind.
  4. 4. Verfahren nach einem der Ansprüche 1 bis 3, d a d u r c h g e k e n n z e i c h n e t, daß der vorgegebene Wert (gemäß c2) gleich Null ist.
  5. 5. Verfahren nach einem der AnsprUche 1 bis 4, d a d u r c h g e k e n n z e i c h n e t, daß die erste Zahl der Multiplikator und die zweite Zahl der Multiplikand ist.
  6. 6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem das Ergebnis der Schritte a bis c ein Teilprodukt ist, g e k e n n -z e i c h n e t d u r c h folgende weiteren Schritte: d) die Schritte (a bis c) werden so oft wiederholt wie die erste Zahl Ziffern hat, wodurch weitere Teilprodukte entstehen; e) das Teilprodukt und die weiteren Teilprodukte werden addiert und ergeben das Multiplikationsergetnis.
  7. 7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die zweite Zahl eine Ziffer geringster Wertigkeit aufweist, d a d u r c h g e k e n n z e i c h n e t, daß die erste der vorgegebenen Ziffern der zweiten Zahl die Ziffer geringster Wertigkeit ist.
  8. 8. Verfahren nach einem der Ansprüche 1 bis 9, d a d u r c h g e k e n n z e i c h n e t, daß das Komplement zur ausgewählten Ziffer ihr Zehnerkomplement ist.
  9. 9. DV-Anlage mit einer Geräteeinheit zur Durchführung des Verfahrens nach Anspruch 2, g e k e n n z e i c h n e t durch a) einen Vergleicher, der feststellt ob der Wert der ausgewählten Ziffer größer als Fünf ist; b) einen hieran angeschlossenen Addierer, der, wenn der Wert nicht größer als Fünf ist, eine vorgegebene Ziffer der zweiten Zahl sooft zueinander addiert, wie es dem Wert der ausgewählten Ziffer entspricht; c) eine erste Aktivierungseinrichtung, welche, wenn der Wert größer als Fünf ist, folgende Einrichtungen aktiviert: cl) Eine Anordnung zur Erzeugung des Zehnerkomplements der ausgewählten Ziffer; c2) einen Subtrahierer, der den Wert der vorgegebenen Ziffer sooft von einem xorgegebenen Wert subtrahiert, wie es dem genannten Zehnerkomplement der ausgewählten Ziffer entspricht; c3) eine Anordnung zum Erzeugen des Somplements des Subtraktionsergebnisses; d) eine zweite Aktivierungseinrichtung, welche die Geräteeinheit wiederholt solange aktiviert, bis die erste und die zweite Zahl miteinander multipliziert sind.
  10. 10. DV-Anlage nach Anspruch9,bei der das Ergebnis des Addierers (gemäß 6) oder der ersten Aktivierungseinrichtung (gemäß c) ein Teilprodukt ist und das Ergebnis der zweiten Aktivierungseinrichtung (gemäß d) weitere Teilprodukte sind, g e k e n n z e i c h n e t d u r c h einen weiteren Addierer für das Addieren des Teilprodukts und der weiteren Teilprodukte zum Endresultat der Multiplikation.
DE19792952229 1979-01-03 1979-12-22 Verfahren und einrichtung zur multiplikation von dezimalzahlen in einer dv-anlage Withdrawn DE2952229A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US84379A 1979-01-03 1979-01-03

Publications (1)

Publication Number Publication Date
DE2952229A1 true DE2952229A1 (de) 1980-07-17

Family

ID=21693242

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792952229 Withdrawn DE2952229A1 (de) 1979-01-03 1979-12-22 Verfahren und einrichtung zur multiplikation von dezimalzahlen in einer dv-anlage

Country Status (3)

Country Link
JP (1) JPS5592946A (de)
AU (1) AU5420079A (de)
DE (1) DE2952229A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3424078A1 (de) * 1983-07-01 1985-01-10 Hitachi, Ltd., Tokio/Tokyo Dezimalmultiplikations-einrichtung

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3424078A1 (de) * 1983-07-01 1985-01-10 Hitachi, Ltd., Tokio/Tokyo Dezimalmultiplikations-einrichtung

Also Published As

Publication number Publication date
JPS5592946A (en) 1980-07-14
AU5420079A (en) 1980-07-10

Similar Documents

Publication Publication Date Title
DE2846495C2 (de) Zentraleinheit
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE2521289C2 (de) Datenverarbeitungsanordnung mit Datenfeld-Hilfsprozessor
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE2724125C2 (de)
DE3424962C2 (de)
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3851746T2 (de) Sprungvorhersage.
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2714805A1 (de) Datenverarbeitungssystem
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2316296A1 (de) Durch mikroprogramme steuerbare verarbeitungseinrichtung
DE2459956A1 (de) Prozessor und diesen verwendendes peripheres verarbeitungssystem
DE1285220B (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE2421130C2 (de)
DE2855722A1 (de) Einrichtung zur berechnung von produktsummen
CH644461A5 (de) Digitale multipliziereinrichtung.
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE2830334C2 (de)

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee