DE2952072C2 - Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen - Google Patents

Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen

Info

Publication number
DE2952072C2
DE2952072C2 DE2952072A DE2952072A DE2952072C2 DE 2952072 C2 DE2952072 C2 DE 2952072C2 DE 2952072 A DE2952072 A DE 2952072A DE 2952072 A DE2952072 A DE 2952072A DE 2952072 C2 DE2952072 C2 DE 2952072C2
Authority
DE
Germany
Prior art keywords
register
binary
bits
bit
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2952072A
Other languages
English (en)
Other versions
DE2952072A1 (de
Inventor
Virendra S. Pepperell Mass. Negi
Arthur Sudbury Mass. 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 Inc
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 Inc filed Critical Honeywell Information Systems Inc
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

dadurch gekennzeichnet, daß die Korrekturlogik (356) mehrere, jeweils eine binär codierte Dezimalzahl aufnehmende Speicherplätze enthält und der Inhi-'.t eines dieser Speicherplätze als korrigiertes Ergebnis ausgegeben wird, sobald die Korrekturlogik eine Adresse dieses Speicherplatzes empfängt, welche das Ergebnir der arithmetischen Operation sowie das genannte erste und das zweite Signa! umfaßt (F i g. 8).
2. Rechenschaltung nach Anspruch 1, dadurch gekennzeichnet, daß das geringstwertige Bit des Ergebnisses der arithmetischen Operation unmittelbar zur Erzeugung des korrigierten Ergebnisses dient, während die übrigen Bits dem Adressenspeicherplatz der Korrekturlogik (356) zugeführt sind.
3. Rechenschaltung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Speicherplätze der Korrekturlogik (356) weitere dem korrigierten Ergebnis zugehörige Anzeiger aufnehmen, von denen einer angibt ob das Ergebnis gleich, größer oder kleiner als eine vorgegebene Zahl ist.
Die Erfindung befaßt sich mit einer Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen.
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 in Binärform als 1101, hingegen in binär codierter Dezimalform als 0001 0011 geschrieben. In der binär codierten Dezimalschreibweise wird die geringstwertige Ziffer der Zahl 13, das heißt die Ziffer 3 mit den rechtsstehenden vier Bits wiedergegeben, während die höchstwertige Ziffer der Zahl 13, das heißt 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 (DE-OS 26 26 432) mit Hilfe
einer an sich bekannten Überschuß-ö-Korrekturtechnik erreicht worden. Eine Anwendung dieser XS6-Korrektur wird später anhand von Fig.6 erläutert Wie sich zeigt, erfordert die XS6-Korrektur eine Logikschaltung für einen Operanden w;nn 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.
Aus der US-PS 39 35 438 ist ein mehrstufiger Dezimaladdierer bekannt, bei dem jede Stufe drei jeweils vierstufige Binäraddierer aufweist Der eine dient als Eingangsempfänger für eine Eingangs-BCD-Stelle, einer als Hauptaddiener und einer zur Ausgangskorrektur. Unter bestimmten Bedingungen addiert der Ausgangsaddierer einen Wert 10. Diese Addition wird durch das vom Hauptaddierer in einer bestimmten Stufe erzeugte Übertragungsbit gesteuert und hängt außerdem vom Vorzeichen des Gesamtergebnisses ab.
Aufgabe der Erfindung ist es deshalb, eine vereinfachte Einrichtung zur Durchführung arithmetischer Operationen mit zwei in binär codierter Dezimalform vorliegenden Operanden zu schaffen, wenn zur Durchführung der arithmetischen Operationen ein rein binäres Rechenwerk Anwendung findet.
Diese Aufgabe wird gelöst durcb die im Anspruch 1 gekennzeichnete Erfindung. Das Recnenwerk 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
5Λ 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ührungsbeispiels erläutert Dabei zeigt
F i g. 1 den Systemaufbau einer DV-Anlage;
F i g. 2 das Ablaufdiagramm der Betriebszustände im Prozessor einer solchen DV-Anlage;
F i g. 3 das Blockschaltbild des Prozessors;
Fig.4 eine Darstellung des Inhalts eines Registers des Prozessors;
F i g. 5 das Blockschaltbild des Rechenwerks;
F i g. 6 die herkömmliche Verwendung zweier getrennter XS-6 Logikschaltungen für Addition und Subtraktion;
F i g. 7 in entsprechender Darstellung vereinfacht die
Korrekturlogik gemäß der Erfindung;
F i g. 8 das ausführliche Blockschaltbild hiervon;
F i g. 9 eine Darstellung der Arbeitsweise der dezimalen Korrekturlogik
In F i g. 1 dient der Befehlsprozessor CIP13 (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 Systemsammeischiene, genannt Bus 19. Der Befehlsprozessor 13 arbeitet als Zusatz zur Zentraleinheit und empfängt Befehle und Operanden als Übertragungsinformationen von der Zentraleinheit und/oder dem Speicher. Der Befehlsprozessor verarbeitet die Befehle, wie sie von der Zentraleinheit 11 über den Bus 19 ausgesandi werden. Die Zentraleinheit erhält diese Befehle vom Hauptsf-sicher 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 Befehlsprozessorsystem vorhanden, 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 ,.n und bleibt im Freizustand gemäß Block 202, solange er keine Informationen verarbeitet und muß auch im Freizustand sein, um einen Befehl, zum Beispiel 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, tnd der Befehlsprozessor geht in den Ladezustand 206 über. In diesem Zustand bleibt er so lange, bis alle zugehörige Befehlsinformation empfangen ist Ist dies im Block 208 abgeschlossen, so geht der E^fehlsprozessor 13 in den Belegtzustand gemäß Bleck 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 Abfangszustand 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 Inforniationsü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 Etikett werden von der Zentraleinheit verarbeitet und hierbei erzeugte Information, beispielsweise der Operandentyp und die Speicheradresse werden zur Weiterverarbeitung zum Befehlsprozessor gesandt Die Zentraleinheit analysiert den Operationscode in jedem BefehL Stellt sie einen ClP-ßciehl fest das heißt 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, das heißt 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 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 Befthlsproztssor 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 in Informationsaustausch 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 werHen keine CPU-Register vom Beiehlsprozessor 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
OZ K)/I
Zentraleinheit wartet bis zur Beendigung des letzten kommerziellen Befehls. Sobald dies geschehen ist, bestimmt sie, ob sich hieraus eine Abfanganforderung ergibt. 1st dies der Fall, 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 ClP Zustandsinformationen zu speichern. Bei Abschluß der CPU-Operation für die Erledigung einer CIP-Abfanganforderung oder, sofern keine Abfanganforderung ansteht und ein Cl P-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 Befehisprozessor 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 biiisrc Datenzeichen anstehen. Wenn uczinmic 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).
F i g. 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übertragungswege 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 der Geräteeinheit RALU 12 befinden sich Operandenregisterdateien RFl und RF2, von denen jede 16 Speicherplätze für jeweils 16 Bits 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 Verriegelungsschakungen 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, einem Vorwärts-Übertragungsbaustein und einem Eingabe/Ausgabe-Flip-Flop kann folgende 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 Überschuß-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 Obertragausgang 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 Wertig-
keit 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 korreken 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-Adreßregister RFlA, einem Registerdatei-2-Adreßregister RF2A und einem Rechenwerk-Betriebsartsteuerregister ALMR. Diese Register steuern zusammen mit verschiedenen Mikrobefehlen alie Vorgänge innerhalb der Geräteeinheit RALU IZ Neben den beschriebenen Registern und Steuereinrichtungen sind zwei weitere Register vorhanden, welche als RALU-Register eingeordnet sind. Dies sind der Zäher 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 (RA M) mi116 Speicherplätzen und wird hauptsächlich benutzt, um alle befehlsbezogenen Informationen zu speichern, die von der Zentraleinheit CPU 11 kommen, beispielsweise Aufgabeworte, Datendeskriptoren, effektive Adressen usw. Die Steuerdatei enthält f «ner 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-Adreßregister MAR 18. Das Busadreßregister 18 ist ein 24-Bit-Adreßregister 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 Bits kommt entweder von der Steuerdatei 16 oder vom Ausgang des Adreßaddierers 20. Letzterer ist ein 8-Bit-Zweierkomplement-Addierer und wird in erster Linie zum Fortschaiten oder Rückschallen des Inhalts im Busadreßregister 18 eingesetzt Die Eingangssignale zum Adreßaddierer 20 sind die geringwertigen 8 Bits des Busadreßregisters und des 8-Bit-
Schieberegisters MSR 22. Hierbei handelt es sich um ein 8-Bit-Universalschieberegister, welches vom internen Bus 14 geladen wird und seinen Inhalt um 1 Bit nach links oder rechts verschieben kann, das heißt eine Offenend-Verschiebung mit Nullergänzung. Das Schieberegister arbeitet als Eingang des Adreßaddierers 20 zum .Fortschalten oder Zurückschalten des Busadreßregisters 18. Außerdem kann das Bit 0 des Schieberegisters 22 's. 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 Datenregisiers kann in den iniernen 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 irgenwelche Eingangs- oder Ausgangsbefehle annimmt. Anschließend prüft die Firmware den Inhalt des Funktionscoderegisters 28 und führt den angegebenen Befehl durch. Das Eingangsadreßbankregister INAD 30 ist ein 8-Bit-Register für die Speicherung der höherwertigen 8-Speicheradreßbits, die über die Adreßleitungen 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 geforderten 24-Bits-Hauptspeicheradresse.
Das C! P-Anzeigeregister 32 ist als 8-Bit-Speicherrcgister ausgebildet, in dem jedes Bit einzeln gesetzt oder rückgestellt werden kann. Die Bit-Konfiguration des Anzeigeregisters ist in F i g. 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-Abfangszustand 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 AR 34 ist ein 16-Bit-Register und wird in erster Linie zur Steuerung von Mikroprogrammverzweigungen (maskierte 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 Mikroprogramm jedes Bit einzeln gesetzt oder rückgestellt werden kann. Jedes Bit im Register 36 wird als Anzeiger zur Erleichterung der Mikroprogrammierung benutzt, das heißt die Firmware kann jedes der Registerbits prüfen und in Abhängigkeit vom Prüfergebnis Verzweigungsoperationen 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ückkehradreßregister SRA 40 ist ein 11-Bit-Register und wird vom Ausgangssignal der Folgeadreßlogik NAG 42 geladen. Es dient der Speicherung der Mikroprogrammrückkehradresse beim Ausführen einer Firmware-Subroutine. Der Registerdatei-C-Adreßmultiplexer/selektor RFCA 31 ist ein 4-Bit-2 :1-Selektor und kann einen der 16 Speicherplätze innerhalb der Registerdatei C 16, das heißt innerhalb der Steuerdatei adressieren. Der Selektor 31 wählt eine Kombination des Funktionscoderegisters 28 sowie entweder den Zähler (I) 46 oder bestimmte Bits des ROS-Datenregisters 38 an. Die CIP-Zähler 44 enthalten drei 8-Bit-Auf/Ab-Zähler46,48und50,welchealsZähler1(CTR l),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/Codieriogik 52 für das Überlochbyte umfaßt zwei Speicherbausteine in Form programmierbarer Festwertspeicher PROM mit 512 Speicherplätzen für je 4 Bit. Sie werden zum Decodieren und Codieren des Inhalts des Analysenregisters AR 34 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 das 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/Codierlogik für das Über'ochbyte ist auch auf beiden Käifen 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 FoI geadressenlogik 42 aus. Der zutreffende oder falsche Zustand der geprüften Funktion steuert Bit 50 des Steuerspeicher-Folgeadressenfeldes, das heißt 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
so 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, das heißt die beiden möglichen Verzweigungsadressen liegen zwei Speicherplätze auseinander. Die Modulo-2-Adresse wird wie folgt entwickelt: (1) 1st 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/OP-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 ungeradezahügen oder geradzahligen Steuerspeicherplatz zurückgebracht werden soll. Die Rückkehradresse erhält man vom Rückkehradreßregister 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-Registern einschließlich von Speicherplätzen innerhalb der Registerdateien. Er empfängt, wie F i g. 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 Busantworilogik 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 RFl 70 und RF2 72 besteht 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-Adreßregister RFlA 74 bzw. RF2A 76 geliefert Die Bits 0 bis 3 jedes Adreßregisters liefern die Adresse des Speicherplatzes innerhalb der zugehörigen Registerdatei, während die geringwertigen Bits für die Byte- und Ziffernauswahl am Ausgang der Registerdatei sorgen. Beide Adreßregister 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 es zweier Multiplexer zugeleitet, welche zwischen Zonen- und Zifferninformation unterscheiden. Diese Auswahl erfolgt anhand der Bits 4 und 5 des zugeordneten
Adreßregisters. Bit 4 wählt aus, ob die Bits 0 bis 3 oder 8 bis 11 der Reg'sterdatei zum Ausgang des 2 ^-Multiplexers 78 oder 80 geleitet werden, während das Bit 5 die Registerda'eibits auswählt, welche die zum Ausgang des 4 : !-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 RFl der A-Verriegelungsschaltung 90 zugeleitet wird. Dieser Multiplexer wird vom ALMR-Register 92 gesteuert. Die ALU-Eingangsverriegelungsschaltungen, die A-Verriegelungsschaltung 90 und die B-Verriegelungsschalung 106, erhalten sowohl Zonen- als auch Zifferninformation von den Rechenwerkeingangsmultipiexern 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 ALM R 72 handelt es sich um ein 6-Bit-Steuerregister. Das Adreßregister RFlA 74 für die Registerdatei 1 stellt sich als 6-Bit-Adreßregister 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-Adreßregister RF2A 76 ist ebenfalls ein 6-Bit-Adreßregister und übt in bezug auf die Registerdatei 3 (72) die entsprechenden Funktionen aus. Aüe Operationen des Rechenwerks ALu iOO 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-KorrekturIogik 102 enthält einen 32-Bitx8-Bit-PROM-Baustein sowie die zugehörige Steuerlogik für die Korrektur der drei höherwertigen Bits am Ziffernausgang der Rechenwerks. Die XS6-Korrektur wird durchgeführt, sofern: (1) das Rechenwerk im dezimalen Additionsbetrieb arbeitet und ein dezimaler Übertrag festgestellt wird oder der Ziffernausgang des Rechenwerks 100 größer als 9 ist sowie (2) wenn das Rechenwerk im dezimalen Subtraktionsbetrieb arbeitet und ein Borgbetrag erforderlich ist, das heißt ein übertrag vom Ziffemteii des Addierers fehit. Der PROM-Baustein hat fünf Adreßleitungen, drei hiervon sind für die drei Bits höherer Ordnung vom Ziffern-
ausging des Rechenwerks bestimmt, während die anderen beiden Adreßleitungen die Art der ausgeführten Operation anzeigen, das heißt Addier-Korrektur, Subtrahier-Koirektur 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 Fhaben.
Die Register- und Rechenwerksteuerung 12 besteht au; Registern RFlA 74, RF2A 76 und ALMR 92 sowie verschiedenen Mikrobefehlen. Außerdem wird däS Rcchenwerk-Übertragungs-Fiip-Fiop durch ein Mikroprogramm gesteuert. Es kann je nach Bedarf durch entsprechende Mikrobefehle gelöscht oder vorgesetzt werden und iäßn 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 ar., ob das Rechenwerk im Dezimal- oder im Binärbetrieb arbeitet, das heißt 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 in- *ern°n ^11E zi|(Telö'*°* wör^°r* D'S Bits 1 1^ 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 RFlA 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 Busadreßregister 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 Funktionscoderegister 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.
Die sowohl Operandenregisterdateien als auch das Rechenwerk umfassende Einheit RALU 12 enthält wie F i g. 5 zeigt auch die XS6-Korrekturlogik 102. Eine solehe 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 RALU 12. Eine Erläuterung des Systems binär codierter Dezir>alzahlen und der Binärzahlen findet sich im Buch »Digital Computer Design Fundamentals« von Yaohan Chu, McGraw-Hill Book Company, Inc., 1962. Beispielsweise ergibt die Ad-
to dition 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 (DE-OS 26 26 432) wurde die erforderliche Korrektur mit Hilfe der Überschuß-6-Körrekiuriogik XS6 durchgeführt, weiche in Abhängigkeit von verschiedenen Prüfbedingungen aktiviert wird. Hiemi 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 Fig.6 zeigt schematisch die bekannte XS6-Korrektur. Der erste Operand OPl im Register 300 ist direkt an den Eingang des binären Rechenwerks 306 angeschlossen. Der andere Operand OP2 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 ein-
gebnis gelangt zur bedingten 6-Subtrahierlogik 308 welehe 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 nach der Erfindung benutzt zwar auch die XS6-Korrekturtechnik, jedoch mit einem wesentlich geringeren Schaltungsaufwand. Dieser ist im Prinzip vereinfacht in F i g. 7 und im einzelnen in F i g. 8 wiedergegeben. Beide Operanden RFl im Block 350 und RF2 im Block 352 gelangen unmittelbar zum binären Addier-/Subtrahierwerk 354, das heißt zur Registerund Recheneinheit RALU 12. Das Rechenwerk 354 umfaßt gemäß F i g. 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 Übertragssignals 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 RFl und RF2 Verwendung. Die Bedingungs-Addierlogik 304 gemäß Fig.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 Korrekturlogik 356 wird an ihren Eingän-
gen 358 und 360 gesteuert, die ihrerseits den Operationscode bzw. den Übertragungzustand !»ngeben. Vom korrigierten binär codierten Dezimalergebnis 362 kommen 3 Bits vom Ausgang der Korrekturlogik 356 und 1 Bit vom Rechenwerk 354. Die Zusammensetzung und damit der Inhalt des Speichers 356 ergibt sich aus F i g. 9. F i g. 8 beschreibt jene Teile der Schaltungsanordnung gemäß F i g. 7, die sich mit dem Obertrageingang 360 und dem Operationseingang 358 der Korrekturlogik 356 befassen. Durch Verwendung zweier ODER-Gatter 459 und 361 werden im Binärbetrieb sowohl der Obertrageingang als auch der Operationseingang der Korrekturlogik 356 aktiviert. Ist ein binär codierter Dezimalübertrag, kurz gesagt ein BCD-Oberti-ag vorhanden, so wird Ober 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 «000 und für 5 ist 0101. Die binäre Addition von 1000 und 0101 ergibt die Binärzahl 1101 bzw. den Dezimalwert 53. 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, das heißt der Übertrag (die linken 4 Bits) und das Ergebnis ohne den Obertrag (die rechten 4 Bits). Wäre kein Obertrag 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 Obertrag nach der Addition 5 + 3 + 6. Als An-iwort auf diese Addition würde 6 subtrahiert werden und ergäbe 1000 (=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 Übertrag, der unmittelbar das Ergbnis 0011 (= 3) angibt, ohne daß der Übertrag im Ergebnis verwendet wird. Ist andererseits kein Übertrag vorhanden, so müßte der Wert 6 vom Ergebnis der Subtrakion abgezogen werden. Beispielsweise beim Subtrahieren 5—8, das heißt 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, das heißt 1010 addiert und damit das Ergebnis 0111 (= 7) erhält, ohne den Übertrag zu benutzen.
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 de Operation, das heißt sowohl bei Addition als auch b« Subtrakiion.
Wie oben bereits erwähnt wurde, erfordert di XS6-Korrektur gemäß dem Stand der Technik eine ei hebliche Anzahl von Operationen und zugehöriger Lo gikschaltungen. Bei der Erfindung wird das Ergebni durch Verwendung eines Speichers erzielt der durc Anzeiger adressiert wird, die die Art der Operation, da
ίο Vorhandensein eines Übertrags, sowie einen Teil de Ergbnisses der durch das binäre Rechenwerk 354 vorge nommenen Addition anzeigen.
F i g. 9 zeigt den Aufbau des als Korrekturlogik 351 benutzten Speichers. Er mag 32 Speicherplätze aufwei sen, welche über 32 unterschiedliche Eingangsadresse adressierbar sind. Abhängig vom adressierten Speicher platz wird ein unterschiedliches Ausgangssignal er zeugt Die Eingangsadressen sind in der linken Spalt) und zugehörige Bemerkungen in der mittleren Spalt!
angegeben. Der tatsächliche Speicherinhalt der Korrek turiogik 356 ist in der rechten Spalte wiedergegeben weiche das Ausgangssignal zeigt, wenn ein entsprechen der Speicherplatz adressiert wird. Das Ausgangssigna der Korrekturlogik 356 enthält das korrigierte BCD
Übertragausgangssignal, sowie die drei höchstwertigei Bits 0,1 und 2. Das geringstwertige Bit wird unmittelba vom binären Rechenwerk 354 übernommen. Das Aus gangssignal kann auch weitere Parameter enthalten beispielsweise einen Anzeiger ob die Ziffer kleiner als ist Dies ist in F i g. 9 in der am weitesten rechts darge stellten Spalte wiedergegeben. Auch andere Anzeigei können vorhanden sein, für die bis zu drei Leitungen i F?g. 8 dargestellt sind. Üblicherweise stehen in jeder Speicherplatz wenigstens 8 Bits zur Verfügung, so dal der vorhandene Speicherraum die Anfügung weiter Parameter zuläßt
Jeder dieser Speicherplätze wird mit Hilfe einer Ein gangsadresse bestehend aus 5 Bits adressiert Hiervoi werden 3 (ALU 0—2) für die höchstwertigen Bits von Ausgang des binären Rechenwerks 354 geliefert Eines der anderen Eingangssignale der Eingangsadresse zeigi 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 wur de.
Die Bemerkungen in der mittleren Spalte erkläre beispielsweise hinsichtlich der ersten 8 Speicherplatz daß es sich um eine Addition ohne Übertrag handelt um für die letzten 8 Speicherplätze, daß eine dezimale Sub
so traktion mit Übertrag oder eine binäre Operation er folgt ist. Für die Speicherplätze 11 bis 19 ergibt sich keir zulässiges Ausgangssignal. Diese Speicherplätze brau chen deshalb nicht benutzt zu werden. Werden sie be nutzt, so können sie derart gesetzt werden, daß sie alle auf »1« oder »0« stehen. Andere Bemerkungen zeigei beispielsweise hinsichtlich des Speicherplatzes 1 an, dal der Ausgang je nach dem Binärwert des vom binärei Rechenwerk 354 empfangenen geringstwertigen Bit: entweder auf »0« oder »1«ist.
Hierzu 6 Blatt Zeichnungen

Claims (1)

Patentansprüche:
1. Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen mit
a) einem binären Addier-/Subtrahierwerk (354) zur binären arithmetischen Verarbeitung eines ersten (RFl) und eines zweiten (RF2) jeweils in binär codierter Dezimalform vorliegenden Operanden zu einem Ergebnis;
b) einer ersten Vorrichtung (359,358), welche ein die Art (Addieren oder Subtrahieren) der durchzuführenden Operation anzeigendes erstes Signal liefert;
c) einer an das Addier-/Subtrahierwerk (354) angeschlossenen zweiten Vorrichtung (361, 360), weiche ein zweites Signal liefert, sofern die arithmetische Verarbeitung einen Übertrag erzeugt hat; sowie
d) einer sowohl auf das Ergebnis der arithmetischen Verarbeitung der beiden Operanden im Addier-/Subtrahierwerk (354) als auch auf die genannten ersten und zweiten Signale ansprechenden Korrekturlogik (356) zur Erzeugung eines korrigierten Ergebnisses in binär codierter Dezimalform,
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 DE2952072A1 (de) 1980-07-17
DE2952072C2 true 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
JPS62500474A (ja) * 1985-01-31 1987-02-26 バロ−ス・コ−ポレ−シヨン 高速bcd/バイナリ加算器
US5007010A (en) * 1985-01-31 1991-04-09 Unisys Corp. (Formerly Burroughs Corp.) Fast BCD/binary adder
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

Family Cites Families (11)

* 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
DE2352686B2 (de) * 1973-10-20 1978-05-11 Vereinigte Flugtechnische Werke- Fokker Gmbh, 2800 Bremen Dezimaler Parallel-Addierer/Substrahierer
US3958112A (en) * 1975-05-09 1976-05-18 Honeywell Information Systems, Inc. Current mode binary/bcd arithmetic array
US4001570A (en) * 1975-06-17 1977-01-04 International Business Machines Corporation Arithmetic unit for a digital data processor
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2846495C2 (de) Zentraleinheit
DE2724125C2 (de)
DE3424962C2 (de)
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE2712224A1 (de) Datenverarbeitungsanlage
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2714805A1 (de) Datenverarbeitungssystem
DE1813916A1 (de) Elektronische Datenverarbeitungsanlage
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE2421130C2 (de)
DE4334294C1 (de) Prozessor für Zeichenketten variabler Länge
CH644461A5 (de) Digitale multipliziereinrichtung.
DE2855722A1 (de) Einrichtung zur berechnung von produktsummen
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE1197650B (de) Parallel-Addierer
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE2830334C2 (de)
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE2906685A1 (de) Instruktionsdecodierer
DE2365778A1 (de) Rechner
DE2846520C2 (de)
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE2846521C2 (de)

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