DE2952072C2 - Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen - Google Patents
Rechenschaltung zum Addieren oder Subtrahieren binär codierter DezimalzahlenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/492—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
- G06F7/493—Computations 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/494—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/492—Indexing scheme relating to groups G06F7/492 - G06F7/496
- G06F2207/4921—Single 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
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. 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;
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
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.
Claims (1)
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,
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)
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)
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 |
-
1979
- 1979-01-03 US US06/000,735 patent/US4245328A/en not_active Expired - Lifetime
- 1979-11-13 CA CA000339770A patent/CA1137229A/en not_active Expired
- 1979-12-22 DE DE2952072A patent/DE2952072C2/de not_active Expired
- 1979-12-27 AU AU54199/79A patent/AU531028B2/en not_active Ceased
- 1979-12-27 FR FR7931831A patent/FR2445983B1/fr not_active Expired
- 1979-12-28 JP JP54173934A patent/JPS5917457B2/ja not_active Expired
- 1979-12-31 GB GB7944625A patent/GB2039108B/en not_active Expired
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 |