DE2952072A1 - Einrichtung zur verarbeitung binaer codierter dezimalzahlen - Google Patents

Einrichtung zur verarbeitung binaer codierter dezimalzahlen

Info

Publication number
DE2952072A1
DE2952072A1 DE19792952072 DE2952072A DE2952072A1 DE 2952072 A1 DE2952072 A1 DE 2952072A1 DE 19792952072 DE19792952072 DE 19792952072 DE 2952072 A DE2952072 A DE 2952072A DE 2952072 A1 DE2952072 A1 DE 2952072A1
Authority
DE
Germany
Prior art keywords
result
register
binary
arithmetic unit
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19792952072
Other languages
English (en)
Other versions
DE2952072C2 (de
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 Inc
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 DE2952072A1 publication Critical patent/DE2952072A1/de
Application granted granted Critical
Publication of DE2952072C2 publication Critical patent/DE2952072C2/de
Expired 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/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/494Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/492Indexing scheme relating to groups G06F7/492 - G06F7/496
    • G06F2207/4921Single digit adding or subtracting

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)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

-4-
DIe Erfindung befaflt sich mit der Verarbeitung binär codierter Dezimalzahlen und insbesondere mit einem hierfür geeigneten Rechenwerk.
Bei der Ausführung arithmetischer Operationen in einer Datenverarbeitungsanlage können die zu verarbeitenden Operanden in Binärform oder in binär codierter Dezimalform vorliegen. Beispielsweise wird die Zahl 13 in Binärform als 11014hingegen in binär codierter Dezimalform als OOO1 0011 geschrieben. In der binär codierten Dezimalschreibweise wird die geringstwertige Ziffer der Zahl 13, d.h.die Ziffer 3 mit den rechtsstehenden vier Bits wiedergegeben, während die höchstwertige Ziffer der Zahl 13, d.h. in diesem Falle die Ziffer 1 in Form der linksstehenden Gruppe von vier Bits "0" und "1" dargestellt ist. Um den Aufwand für eine solche DV-Anlage möglichst gering zu halten, weist diese vielfach nur ein einziges Rechenwerk für derartige Operanden auf. Wird ein binäres Rechenwerk benutzt, so erfolgt die Verarbeitung binärer Operanden in herkömmlicher Weise. Müssen jedoch von einem solchen Rechenwerk binär codierte Dezimalzahlen verarbeitet werden, so muß das vom Rechenwerk erzeugte Ergebnis anschließend korrigiert werden. Dies ist im Stand der Technik mit Hilfe einer an sich bekannten Uberschuss-ö-Korrekturtechnik erreicht worden. Eine Anwendung dieser XS6-Korrektur wird später anhand von Figur 6 erläutert. Wie sich zeigt, erfordert die XS6-Korrektur eine Logikschaltung für einen Operanden wenn eine bedingte Additionsoperation stattfindet, sowie eine zweite an den Ausgang des binären Rechenwerks angeschlossene Logik, wenn eine bedingte Subtraktionsoperation vorgenommen werden soll. Dies bedeutet einen beträchtlichen Aufwand. Derartige Logikschaltungen nehmen außerdem zusätzlichen Platz in Anspruch, den man in dem Bestreben den Prozessor auf einer einzigen Leiterplatte unterzubringen, möglichst einsparen möchte.
Aufgabe der Erfindung ist es deshalb#eine vereinfachte Einrich-
030029/0694
tung zur Durchführung arithmetischer Operationen mit zwei in binär codierter Dezimalform vorliegenden Opperanden zu schaffen, wenn zur Durchführung der arithmetischen Operationen ein rein binäres Rechenwerk Anwendung findet.
Diese Aufgabe wird gelöst durch die im Anspruch 1 gekennzeichnete Erfindung. Das Rechenwerk verarbeitet in binärer Form sowohl den in binär codierter Dezimalform vorliegenden ersten Operanden als auch den in gleicher Form vorliegenden zweiten Operanden. Es wird zunächst festgestellt, ob vom Rechenwerk eine Addition oder Subtraktion vorzunehmen ist, und außerdem ob das Ergebnis der arithmetischen Operation des Rechenwerks zu einem übertrag führt. Eine Korrekturlogik spricht auf das Ergebnis des binären Rechenwerks sowie auf die Art der Operation und das Vorhandensein oder Fehlen eines Übertrags an. Hiervon abhängig wird das korrigierte Ergebnis in binärer codierter Dezimalform erzeugt.
Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Die Erfindung wird nachfolgend anhand eines in der Zeichnung dargestellten Ausführungsbeispieles erläutert. Dabei zeigt:
Fig. 1 den Systemaufbau einer DV-Anlage; Fig. 2 das Ablaufdiagramm der Betriebszustände im Prozessor 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 die herkömmliche Verwendung zweier getrennter XS-6 Logikschaltungen für Addition und Subtraktion;
Fig. 7 in entsprechender Darstellung vereinfacht die Korrekturlogik gemäß der Erfindung;
030029/0694
Fig. 8 das ausführliche Blockschaltbild hiervon;
Fig. 9 eine Darstellung der Arbeitsweise der dezimalen Korrekturlogik
030029/0694
In Fig. 1 dient der Befehlsprozessor CIP 13 (commercial instruction processor) der Erweiterung der Zentraleinheit CPU 11» insbesondere ihrer Kapazität an Befehlsgruppen 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 Frei zustand sein, um
030029/0694
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 ist,und der Befehlsprozessor geht in den Ladezustand 206 über. In diesem Zustand bleibt er solange, bis alle zugehörige Befehlsinfon&ation 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 umfaß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 verarbeitung zum Befehlsprozessor gesandten ClP-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
030029/0694
Etikett werden von der Zentraleinheit verarbeitet und hierbei erzeugte Information, beispielsweise der Operandentyp und die Speicheradresse werden zur Weiterverarbeitung zum Befehlsprozessor gesandt? Zentraleinheit 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; fiii) 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 oder 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 inInformationsaustausch 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,
030029/0694
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 wartet bis zur Beendigung des letzten kommerziellen Befehls. Sobald dies geschehen ist, bestimmt sie, ob sich hieraus eine Abfanganforderung ergibt. Ist dies der FaIl1 gibt die Zentraleinheit der Abfanganforderung 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-Abfanganforderung oder, sofern keine Abfanganforderung ansteht und ein CIP-Befehl zur Verarbeitung vorhanden ist, geht die Zentraleinheit wie folgt vor: Sie schaltet ihren Programmzähler 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 Befehlebestand des Befehlsprozessors CIP 13 werden snychron von der Zentraleinheit CPU 11 und vom Befehlsprozessor CIP 13 verarbeitet.
030029/0694
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 ebenfalls 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übertzagungswege sowie den Busbetrieb.
Eine Operandenregisterdateien sowie das Rechenwerk umfassende Einheit RALU 12 enthält in erster Linie zwei Registerdateien, ein Rechenwerk (ALU) sowie die zugehörigen Multiplexer und Steuerregister. In derGerä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 (Zcnenauswahl), 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 ALU,bestehend aus zwei 4-Bit-Bausteinen, einen Vörwärtsübertragungsbaustein und einem Eingabe/Ausgabe-Flip-Flop kam folgende Operationen zwischen den linken (1) und rechten (2) Ausgängen ausführen: Binäre Addition, binäre
030029/0694
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, Luschen 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 korrekte 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 oder Dezimalbetrieb arbeitet. Die RALU-Steuereinheit besteht aus drei Registern, nämlich einem Registerdatei-1-Adressregister RF1A, einem Registerdatei-2-Adressregister RF2A und einem Rechenwerk-BetriebsartSteuerregister ALMR. Diese Register steuern zusammen mit verschiedenen Mikrobefehlen alle Vorgänge innerhalb der Geräteeinheit RALU 12. Neben den beschriebenen Registern und Steuereinrichtungen sind zwei weitere Register vorhanden, welche als RALU-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 CPUI1 kommen, beispielsweise Aufgabenworte, Datendeskriptcren, effektive Adressen usw. Die Steuerdatei enthält ferner mehrere
030029/0694
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 Buaadressregister 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 Multiplexeingangssignal für die unteren 8 Bit's 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 Busadressregistera und des 8-Bit-Schieberegisters MSR 22. Hierbei handelt es sichun.ein
8-Bit-üniversalschieberegister, 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 Außerdem kann das Bit B 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 «in 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 Eingangsfunktiooscoderegister 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
030029/0694
ORIGINAL INSPECTED
Inhalt des Funktionscoderegisters 28 und führt den angegebenen Befehl durch. Das Eingangsadressbankregister INAD 30 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 annehmen.
Das Analysenregister AR34 ist ein 16-Bit-Register und wird in erster Linie zur Steuerung von Mikroprogrammverzweigungen Onaskierte Verzweigungen) benutzt sowie zur Steuerung der Codier/ Decodierlogik für das Uberlochbyte. 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 Mikroprogramm 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 Verzweigungeoperationen ausführen. Einige dieser Bits werden auch zur
030029/0694
Steuerung bestimmter Hardware-Funktionen im Befehlsprozessor 13 genutzt.
Beim ROS-Datenregister RD 36 handelt es sich um ein 52-Bit-Speicherregister für die Speicherung des Steuerspeicherausgangssignals (eines Firmwarewortes)im laufenden Firmwarezyklus. Das Mikroprograram-RückJcehradressadressregJster SRA 40 ist ein 11-Bit-Register und wird vom Ausgangssignal der Folgeadresslogik N£G geladen. Es dient der Speicherung der Mikroprogrammrückkehiadresse 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 adressieien. 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 6-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 Uberlochbyte umfaßt zwei Speicherbausteine in Form programmierbarer Festwertspeicher ρROM mit 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 Vor-
030029/0694
zeichen des codierten Bits anzeigt. Das Ausgangssignal der Decodier/kodierlogik für das Uberlochbyte ist auch auf beiden Hälften des internen Bus 14 verfügbar.
Die ClP-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-Folgeadressenfeldes, 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 Erzeugung 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
030029/0694
COPY
bestimmter anderer Zustände erfolgen soll. Sie stellt eine Verzweigung zu zwei, vier acht oder sechzehn Speicherplatzen 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, üb 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 erhalt 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-Rejistern einschlieBlich 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 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 Busantwort logik 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:
030029/0694
COPY 1
Operandenregisterdateien/ Rechenwerk-Eingangsmultiplexer und Verriegelungsschaltungen, Rechenwerk, XSö-Korrekturlogik, Rechenwerk-Ausgangsmultiplexer, RALU-Steuerlogik, verschiedene RALU-Register. Jede der Operandenregisterdateien ' RF1 70 und RF2 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-Adressregister RF1A 74 bzw. RF2A 76 geliefert. Die Bits 0 bis 3 jedes Adressregisters liefern die Adresse des SpeicherplatzssLnnerhalb 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 wird vom ALMR-Register 92 gesteuert. Die ALU-Eingangsverriegelungsschaltungen, die A-Verriegelungsschaltung 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.
030029/0694
Der Zähler CPRC βθ für das laufende Produkt ist ein dezimaler 4-Bit-Auf/Abwärtszähler und wird in erster Linie bei dezimalen Multiplications- und Divisionsoperarationen eingesetzt. Da^ Multiplikatorregister MIER 94 ist ein binärer 4-Bit Auf/AbwärtszShler und dient gleichen Zwecken. Bein Rechenwerk-Betriebsartsteuerregister ALMR 72 handelt es sich ue ein 6-Bit-Steuerregister. Das Adressregister RFIA 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 Ubertragungs-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 χ 8 Bit PROM-Baustein sowie die zugehörige Steuerlogik für die Korrektur der drei huherwertigen Bits am Ziffernausgang des Rechenwerks. Die XS6-Korrektur wird durchgeführt, sofern: (1) das Rechenwerk im dezimalen Additionsbetrieb arbeitet und ein dezimaler übertrag festgestellt wird oder'»Ziffernausgang des Rechenwerks 100 größer
030029/0694
ORIGINAL INSPECTED
als 9 ist, sowie (2) wenn das Rechenwerk im dezimalen Subtxaktionsbetrieb 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 Rechenwerkausgangsinultiplexer 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 Deζima!betrieb 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-Ubertragungs-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
030029/0694
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 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 für das laufende Produkt ausgewählte Ziffer '-den auf der linken Seite des Rechenwerks angeordneten Verriegelungsschaltungen 90 zugeführt wird. Das Register RFTA 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.
030029/0694
Die sowohl Opperandenregisterdateien als auch das Rechenwerk umfassende Einheit RALUl2 enthält wie Figur 5 zeigt auch die XS6-Korrekturlogik 102. Eine solche XS6-Korrekturtechnik wird in DV-Anlagen benutzt, wenn man mit einem binären Rechenwerk binär codierte Dezimalzahlen arithmetisch verarbeiten will. Man kompensiert hiermit die Verwendung einer binären Register- und Recheneinheit RALU12. Eine Erläuterung des Systems binär codierter Dezimalzahlen und der Binärzahlen findet sich im Buch "Digital Computer Design Fundamentals" von Yaohan Chu, McGraw-Hill Book Company, Inc., 1962. Beispielsweise ergibt die Addition der Zahlen 8 und 5, die sich sowohl in binärer Schreibweise als auch in binär codierter Dezimalform als 1000 bzw. 0101 darstellen, das Ergebnis 13, welches in binärer Form gleich 1101, hingegen in binär codierter Dezimalform gleich 0001 0011 ist, wobei der erste bzw. linke Block die Dezimalziffer 1 in der Zahl 13 und der zweite oder rechte Block die Dezimalziffer 3 in der Dezimalzahl 13 darstellt.
Bei bekannten Anlagen wurde die erforderliche Korrektur mit Hilfe der überschuss-6-Korrekturlogik XS6 durchgeführt, welche in Abhängigkeit von verschiedenen Prüfbedingungen aktiviert wird. Hierzu gehört die Frage, ob während der arithmetischen Operation ein Übertrag stattgefunden hat und ob eine Addition oder Subtraktion erfolgt. Bei den bekannten Anlagen wird die XS6-Korrektur dadurch bewerkstelligt, daß man zu einem der Operanden den Betrag sechs hinzuzählt und gesteuert durch den Übertrag und die Art der Operation den Wert 6 vom Ergebnis subtrahiert. Figur 6 zeigt schematisch die bekannte XS6-Korrektur. Der erste Operand OP1 im Register 300 ist direkt an den Eingang des binären Rechenwerks 306 angeschlossen. Der andere Operand 0P2 im Register 302 ist an den Eingang der bedingten 6-Additionslogik 304 angeschlossen. In Abhängigkeit von den obengenannten Bedingungen wird die Logik 304 aktiviert, so daß am anderen Eingang des Rechenwerks 306 der zweite Operand OP2 um den Betrag sechs erhöht eingeht. Das vom binären Rechenwerk 306 erzeugte Ergebnis gelangt zur bedingten 6-Subtrahierlogik
030029/0694
welche in Abhängigkeit der erwähnten Prüfbedingungen aktiviert wird und im Block 310 das korrigierte Ergebnis liefert in Form einer binär codierten Dezimalzahl BCD. Die beiden Logikschaltungen 304 und 308,von denen jede 3 oder mehr elektronische Schaltkreise aufweist, stellt einen beträchtlichen Aufwand dar.
Die Einrichtung gemäß der Erfindung benutzt zwar auch die XS6-Korrekturtechnik, jedoch mit einem wesentlich geringeren Schaltungsaufwand. Dieser ist im Prinzip vereinfacht in Figur 7 und im einzelnen in Figur 8 wiedergegeben. Beide Operanden RF1 Im Block 350 und RF2 im Block 352 gelangen unmittelbar zum binären Rechenwerk 354, d.h. zur Register-und Recheneinheit RALU12. Das Rechenwerk 354 umfaßt gemäß Figur 8 Zonen- und Ziffernsektionen von jeweils vier Bit Speicherbreite . Bei Anwendung der Erfindung werden nur die Operandeneingänge des Ziffernbereichs benutzt. Der Ausgang der Zonensektion wird zur Erzeugung eines binären Ubertragssignals verwendet, und allgemein findet der Zonenbereich nur für Binärzahlen und nicht für die einzelnen Ziffern der binär codierten Dezimalzahlen aus den Operanden RF1 und RF2 Verwendung. Die Bedingungs-Addierlogik 304 gemäß Figur 6 entfällt. Ein Teil des Ziffernbereichsausgangs des Rechenwerks 354 ist an die Dezimalkorrekturlogik 356 angeschlossen, die einen einzigen Speicherbaustein bzw. einen programmierbaren Festwertspeicher PROM oder einen Festwertspeicher ROM aufweisen kann. Die Logikschaltung 356 wird an ihren Eingängen 358 und 360 gesteuert, die ihrerseits den Operationscode bzw. den Ubertragzustand angeben. Vom korrigierten binär codierten Dezimalergebnis 362 kommen 3 Bits vom Ausgang der Logikschaltung 356 und 1 Bit vom Rechenwerk 354. Die Zusammensetzung und damit der Inhalt des Speichers 356 ergibt sich aus Figur 9. Figur 8 beschreibt jene Teile der Schaltungsanordnung gemäß Figur 7, die sich mit dem Übertrageingang 360 und dem Operationseingang 358 der Logikschaltung 356 befassen. Durch Verwendung zweier ODER-Gatter 459 und 361 werden im Binärbetrieb sowohl der Ubertrageingang als auch der Operationseingang der Logikschaltung 356 aktiviert. Ist ein
030029/0694
binär codierter Dezimalübertrag, kurz gesagt ein BCD-Übertrag vorhanden, so wird über das ODER-Gatter 361 der Übertrageingang 360 aktiviert. Findet eine dezimale Subtraktion statt, so wird über das ODER-Gatter 359 der Eingang 358 aktiviert.
Zwei Beispiele für die Arbeitsweise der XS6-Korrektur werden nachfolgend erläutert, nämlich (1) die Addition 8+5 und (2) die Subtraktion 8-5. Die binär codierte Dezimaldarstellung (BCD) für 8 ist 1000 und für 5 ist 0101. Die binäre Addition von 1000 und 0101 ergibt die Binärzahl 1101 bzw. den Dezimalwert 13. Um das Ergebnis als BCD-Zahl zu erhalten, addiert man zunächst einmal ohne Bedingung den Wert 6 zu einem der Operanden beispielsweise zu 0101. Der Binärwert von 6 ist 0110 und dies addiert zu 0101 («5) ergibt 1011. Die Zahl BCD 1011 wird dann zu 1000 addiert und ergibt 0011 mit einem übertrag. Da ein übertrag vorhanden ist, ist keine weitere arithmetische Operation nötig und das BCD-Ergebnis ist «0001 0011, d.h. der übertrag (die linken 4 Bits) und das Ergebnis ohne den übertrag (die rechten 4 Bits). Wäre kein übertrag gewesen, so würde der Betrag 6 vom Endergebnis subtrahiert worden sein, indem man das Zweierkomplement von 6 addiert hätte. Beispielsweise ergebe 5+3 keinen übertrag nach der Addition 5+3+6.Als Antwort auf diese Addition würde 6 subtrahiert werden und ergäbe 10OO («8) mit einem übertrag der nicht benutzt würde.
Subtrahiert man 5 von 8 so wird bei keiner der Zahlen ein Wert 6 addiert. Vielmehr wird das Ergebnis hinsichtlich des Vorhandenseins eines Übertrags überprüft. In diesem Beispiel wäre das Ergebnis 00011 mit einem übertragner unmittelbar das Ergebnis 00J1 (»3) angibt, ohne dass der übertrag im Ergebnis verwendet wird. Ist andererseits kein übertrag vorhanden, so müßte der Wert 6 vom Ergebnis der Subtraktion abgezogen werden. Beispieleweise beim Subtrahieren 5-8, d.h. Abziehen des Betrages von 15 mit einem Borgbetrag 10 ergäbe sich 1101 ohne übertrag. Dann würde der Betrag 6 vom Ergebnis 1101 subtrahiert indem man das Zweierkomplement von 6, d.h. 1010 addiert und damit das Ergebnis 0111 (*7) erhält ohne den übertrag zu benutzen.
030029/0694
_25_ 29S2Ü72
Beim Addieren wird also ein Wert 6 bedingungslos zu einem der Operanden addiert, während beim Subtrahieren eine solche bedingungslose Addition des Wertes 6 nicht stattfindet. Das Hinzufügen des Wertes 6 hängt also nur von der Art der auszuführenden Operation ab. Ein Wert 6 wird entweder vom Ergebnis einer solchen anfänglichen Addition der beiden Operanden und der zusätzlichen Addition des Wertes 6 subtrahiert oder er wird vom Ergebnis der Subtraktion der beiden Operanden subtrahiert, je nachdem ob im Ergebnis ein übertrag vorhanden ist oder nicht. Ist ein übertrag gegeben, so hat man das gewünschte Ergebnis in BCD-Form erreicht. Liegt hingegen kein übertrag vor, so erfolgt die Subtraktion.des Wertes 6 unabhängig von der Art der Operation, d.h. sowohl bei Addition als auch bei Subtraktion.
Wie oben bereits erwähnt wurde, erfordert die XS6-Korrektur gemäß dem Stand der Technik eine erhebliche Anzahl von Operationen und zugehöriger Logikschaltungen. Gemäß der Erfindung wird das Ergebnis durch Verwendung eines Speichers erzielt, der durch Anzeiger adressiert wird, die die Art der Operation, das Vorhandensein eines Übertrags, sowie einen Teil des Ergebnisses der durch das binäre Rechenwerk 354 vorgenommen Addition anzeigen.
Figur 9 zeigt den Aufbau des als Korrekturlogik benutzten Speichers 356. Er mag 32 Speicherplätze aufweisen, welche über 32 unterschiedliche Eingangsadressen adressierbar sind. Abhängig vom adressierten Speicherplatz wird ein unterschiedliches Ausgangssignal erzeugt. Die Eingangsadressen in der linken Spalte und zugehörige Bemerkungen in der mittleren Spalte angegeben. Der tatsächliche Speicherinhalt der Logikschaltung 356 ist in der rechten Spalte wiedergegeben, welche das Ausgangssignal zeigt, wenn ein entsprechender Speicherplatz adressiert wird. Das Ausgangssignal der Logikschaltung 356 enthält das korrigierte BCD-Übertragausgangssignal, sowie die drei höchstwertigen Bits 0,1 und 2. Das geringstwertlge Bit wird unmittelbar vom binären Rechenwerk 354 übernommen. Das Ausgangssignal kann auch weitere Parameter enthalten, beispielweise einen Anzeiger ob die Ziffer kleiner als 2 ist. Dies ist in Figur 9 in der am weitesten rechts
030029/0694
dargestellten Spalte wiedergegeben. Auch andere Anzeiger können vorhanden sein, für die bis zu drei Leitungen in Figur 8 dargestellt sind, üblicherweise stehen in jedem Speicherplatz wenigstens 8 Bits zur Verfügung, so daß der vorhandene Speicherraum die Anfügung weitere Parameter zuläßt.
Jeder dieser Speicherplätze wird mit Hilfe einer Eingangsadresse bestehend aus 5 Bits adressiert. Hiervon werden 3 (ALU 0-2) für die höchstwertigen Bits vom Ausgang des binären Rechenwerks 354 geliefert. Eines der anderen Eingangssignale der Eingangsadresse zeigt die Operationsart an, wobei ein Wert "0" eine Subtraktion meldet. Das andere Eingangssignal gibt an, ob vom Rechenwerk 354 ein BCD-Binärübertrag geliefert wurde.
Die Bemerkungen in der mittleren Spalte erklären beispielsweise hinsichtlich der ersten 8 Speicherplätze, daß es sich um eine Addition ohne Übertrag handelt und für die letzten 8 Speicherplätze, daß eine dezimale Subtraktion mit übertrag oder eine binäre Operation erfolgt ist. Für die Speicherplätze 11 bis 19 ergibt sich kein zulässiges Ausgangssignal. Diese Speicherplätze brauchen deshalb nicht benutzt zu werden. Werden sie benutzt, so können sie derart gesetzt werden, daß sie alle auf "1" oder "0" stehen. Andere Bemerkungen zeigen beispielsweise hinsichtlich des Speicherplatzes 1 an, daß der Ausgang je nach dem Binärwert des vom binären Rechenwerk 354 empfangenen geringstwertigen Bits entweder auf "O" oder "1" ist.
030029/0694
Leerseite

Claims (1)

  1. 2952U72
    HONEYWELL INFORMATION SYSTEMS INC. 21. Dezember 1979
    Smith Street 5101679 Ge
    WaItham, Mass. USA HR/umw
    Einrichtung zur Verarbeitung binär codierter Dezimalzahlen
    Patentansprüche:
    Einrichtung zur Durchführung artihmetischer Operationen mit binär codierten Dezimalzahlen gekennzeich netdurch
    a) ein binäres Rechenwerk zur binären arithmetischen Verarbeitung eines ersten und eines zweiten jeweils in binär codierter Dezimalform vorliegenden Operanden zu einem Ergebnis;
    b) eine erste Vorrichtung zum Feststellen ob vom Rechenwerk eine Addier - oder Subtrahieroperation durchzuführen ist;
    c) eine zweite Vorrichtung zum Feststellen, ob das Ergebnis einen übertrag erzeugt hat;
    d) eine auf das Ergebnis sowie die Ausgangssignale der ersten und zweiten Feststellvorrichtungen ansprechende Korrekturlogik, welche aus dem vom Rechenwerk gelieferten Ergebnis als korrigiertes Ergebnis einen Wert in binär codierter Dezimalform ableitet
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Korrekturlogik mehrere Speicherplätze umfaßt und in jedem ein korrigiertes Ergebnis abgelegt 1st.
    030029/0694
    ORIGINAL INSPECTED
    3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß ferner eine Einrichtung zum Koppeln des Ergebnisses sowie der Ausgangssignale der ersten und zweiten Feststellvorrichtungen an den Adressenspeicherplatz der Korrekturlogik vorgesehen ist.
    4. Einrichtung nach Anspruch 3, mit einer Adressiereinrichtung für die Speicherplätze, wobei in jedem Speicherplatz ein vorgegebenes korrigiertes Ergebnis abgelegt ist, ge kennzeichnet durch eine auf die Adressiereinrichtung ansprechende Abrufeinrichtung für den Inhalt des jeweils adressierten Speicherplatzes, wobei das im adressierten Speicherplatz befindliche vorgegebene korrigierte Ergebnis einen Wert in binär codierter Dezimalform enthält.
    5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß nur ein Teil des vom Rechenwerk erzeugten Ergebnisses zum Adressieren des Speichers verwendet wird.
    6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß das vom Rechenwerk erzeugte Ergebnis vier Informationsbits umfaßt, von den, eines das geringstwertige ist und daß die Koppelvorrichtung jedes der vier Bits mit Ausnahme des geringstwertigen ankoppelt.
    7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet , daß das geringstwertige Bit des Rechenwerkergebnisses unmittelbar zur Erzeugung des korrigierten Ergebnisses dient.
    8. Einrichtung nach einem der Ansprüche 3-7, dadurch gekennzeichnet, daß die Speicherplätze weitere
    030029/0694
    -3-dem korrigierten Ergebnis zugehörige Anzeiger aufnehmen.
    9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die weiteren Anzeiger einen enthalten, welcher angibt ob das Ergebnis gleich, größer oder kleiner als eine vorgegebene Zahl ist.
    10. Einrichtung nach einem der Ansprüche 3-9,- gekenn zeichnet durch
    e) eine Vorrrichtung zur Anzeige ob die Einrichtung im Binärbetrieb arbeitet; und
    f) eine auf die Anzeigevorrichtung ansprechende Baueinheit in der Korrekturlogik, welche ein Ergebnis von der Korrekturlogik liefert.
    030029/0694
DE2952072A 1979-01-03 1979-12-22 Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen Expired DE2952072C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/000,735 US4245328A (en) 1979-01-03 1979-01-03 Binary coded decimal correction apparatus for use in an arithmetic unit of a data processing unit

Publications (2)

Publication Number Publication Date
DE2952072A1 true DE2952072A1 (de) 1980-07-17
DE2952072C2 DE2952072C2 (de) 1986-09-04

Family

ID=21692791

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2952072A Expired DE2952072C2 (de) 1979-01-03 1979-12-22 Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen

Country Status (7)

Country Link
US (1) US4245328A (de)
JP (1) JPS5917457B2 (de)
AU (1) AU531028B2 (de)
CA (1) CA1137229A (de)
DE (1) DE2952072C2 (de)
FR (1) FR2445983B1 (de)
GB (1) GB2039108B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0044450B1 (de) * 1980-07-10 1985-11-13 International Computers Limited Digitale Addierschaltung
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4604695A (en) * 1983-09-30 1986-08-05 Honeywell Information Systems Inc. Nibble and word addressable memory arrangement
US4707799A (en) * 1984-01-30 1987-11-17 Kabushiki Kaisha Toshiba Bit sliced decimal adding/subtracting unit for multi-digit decimal addition and subtraction
US5007010A (en) * 1985-01-31 1991-04-09 Unisys Corp. (Formerly Burroughs Corp.) Fast BCD/binary adder
JPS62500474A (ja) * 1985-01-31 1987-02-26 バロ−ス・コ−ポレ−シヨン 高速bcd/バイナリ加算器
US7477171B2 (en) * 2007-03-27 2009-01-13 Intel Corporation Binary-to-BCD conversion
US8539015B2 (en) * 2008-08-01 2013-09-17 Hewlett-Packard Development Company, L.P. Performing a binary coded decimal (BCD) calculation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3935438A (en) * 1973-10-20 1976-01-27 Vereinigte Flugtechnische Werke-Fokker Gmbh. Decimal adder
DE2626432A1 (de) * 1975-06-17 1977-01-13 Ibm Arithmetische einheit fuer automatische rechengeraete

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL236117A (de) * 1958-02-14
GB913605A (en) * 1959-03-24 1962-12-19 Developments Ltd Comp Improvements in or relating to electronic calculating apparatus
JPS549009B1 (de) * 1971-02-17 1979-04-20
GB1375588A (de) * 1971-02-22 1974-11-27
US3749899A (en) * 1972-06-15 1973-07-31 Hewlett Packard Co Binary/bcd arithmetic logic unit
US3958112A (en) * 1975-05-09 1976-05-18 Honeywell Information Systems, Inc. Current mode binary/bcd arithmetic array
US4001567A (en) * 1975-07-21 1977-01-04 National Semiconductor Corporation Bdc corrected adder
US4125867A (en) * 1976-10-27 1978-11-14 Texas Instruments Incorporated Electronic calculator or microprocessor having a hexadecimal/binary coded decimal arithmetic unit
JPS5520533A (en) * 1978-07-28 1980-02-14 Nec Corp Decimal correction circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3935438A (en) * 1973-10-20 1976-01-27 Vereinigte Flugtechnische Werke-Fokker Gmbh. Decimal adder
DE2626432A1 (de) * 1975-06-17 1977-01-13 Ibm Arithmetische einheit fuer automatische rechengeraete

Also Published As

Publication number Publication date
FR2445983B1 (fr) 1987-03-27
GB2039108A (en) 1980-07-30
FR2445983A1 (fr) 1980-08-01
CA1137229A (en) 1982-12-07
DE2952072C2 (de) 1986-09-04
GB2039108B (en) 1983-09-01
US4245328A (en) 1981-01-13
AU531028B2 (en) 1983-08-04
AU5419979A (en) 1980-07-10
JPS5592944A (en) 1980-07-14
JPS5917457B2 (ja) 1984-04-21

Similar Documents

Publication Publication Date Title
DE2846495C2 (de) Zentraleinheit
DE3424962C2 (de)
DE2712224C2 (de) Datenverarbeitungsanlage
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2714805A1 (de) Datenverarbeitungssystem
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE4334294C1 (de) Prozessor für Zeichenketten variabler Länge
DE2421130C2 (de)
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE2830334C2 (de)
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE3434777C2 (de)
DE2365778A1 (de) Rechner
DE1955797A1 (de) Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE2846520C2 (de)
DE3485786T2 (de) Inter-element-verarbeitungsgeraet in einem hochleistungsfaehigen parallelen vektorverarbeitungsgeraet.
DE2846521C2 (de)
DE3000107C2 (de)
DE1424746A1 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 7/50

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

8339 Ceased/non-payment of the annual fee