DE2952072A1 - Einrichtung zur verarbeitung binaer codierter dezimalzahlen - Google Patents
Einrichtung zur verarbeitung binaer codierter dezimalzahlenInfo
- Publication number
- DE2952072A1 DE2952072A1 DE19792952072 DE2952072A DE2952072A1 DE 2952072 A1 DE2952072 A1 DE 2952072A1 DE 19792952072 DE19792952072 DE 19792952072 DE 2952072 A DE2952072 A DE 2952072A DE 2952072 A1 DE2952072 A1 DE 2952072A1
- Authority
- DE
- Germany
- Prior art keywords
- result
- register
- binary
- arithmetic unit
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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
-4-
DIe Erfindung befaflt sich mit der Verarbeitung binär codierter
Dezimalzahlen und insbesondere mit einem hierfür geeigneten Rechenwerk.
Bei der Ausführung arithmetischer Operationen in einer Datenverarbeitungsanlage
können die zu verarbeitenden Operanden in Binärform oder in binär codierter Dezimalform vorliegen.
Beispielsweise wird die Zahl 13 in Binärform als 11014hingegen
in binär codierter Dezimalform als OOO1 0011 geschrieben. In
der binär codierten Dezimalschreibweise wird die geringstwertige Ziffer der Zahl 13, d.h.die Ziffer 3 mit den rechtsstehenden
vier Bits wiedergegeben, während die höchstwertige Ziffer der Zahl 13, d.h. in diesem Falle die Ziffer 1 in Form
der linksstehenden Gruppe von vier Bits "0" und "1" dargestellt ist. Um den Aufwand für eine solche DV-Anlage möglichst
gering zu halten, weist diese vielfach nur ein einziges Rechenwerk für derartige Operanden auf. Wird ein binäres Rechenwerk
benutzt, so erfolgt die Verarbeitung binärer Operanden in herkömmlicher Weise. Müssen jedoch von einem solchen Rechenwerk
binär codierte Dezimalzahlen verarbeitet werden, so muß das vom Rechenwerk erzeugte Ergebnis anschließend korrigiert werden.
Dies ist im Stand der Technik mit Hilfe einer an sich bekannten Uberschuss-ö-Korrekturtechnik erreicht worden. Eine Anwendung
dieser XS6-Korrektur wird später anhand von Figur 6 erläutert. Wie sich zeigt, erfordert die XS6-Korrektur eine Logikschaltung
für einen Operanden wenn eine bedingte Additionsoperation stattfindet, sowie eine zweite an den Ausgang des binären Rechenwerks
angeschlossene Logik, wenn eine bedingte Subtraktionsoperation vorgenommen werden soll. Dies bedeutet einen beträchtlichen Aufwand.
Derartige Logikschaltungen nehmen außerdem zusätzlichen Platz in Anspruch, den man in dem Bestreben den Prozessor auf
einer einzigen Leiterplatte unterzubringen, möglichst einsparen möchte.
Aufgabe der Erfindung ist es deshalb#eine vereinfachte Einrich-
030029/0694
tung zur Durchführung arithmetischer Operationen mit zwei in
binär codierter Dezimalform vorliegenden Opperanden zu schaffen, wenn zur Durchführung der arithmetischen Operationen ein rein
binäres Rechenwerk Anwendung findet.
Diese Aufgabe wird gelöst durch die im Anspruch 1 gekennzeichnete Erfindung. Das Rechenwerk verarbeitet in binärer Form
sowohl den in binär codierter Dezimalform vorliegenden ersten Operanden als auch den in gleicher Form vorliegenden zweiten
Operanden. Es wird zunächst festgestellt, ob vom Rechenwerk eine Addition oder Subtraktion vorzunehmen ist, und außerdem
ob das Ergebnis der arithmetischen Operation des Rechenwerks
zu einem übertrag führt. Eine Korrekturlogik spricht auf das Ergebnis des binären Rechenwerks sowie auf die Art der Operation
und das Vorhandensein oder Fehlen eines Übertrags an. Hiervon abhängig wird das korrigierte Ergebnis in binärer codierter
Dezimalform erzeugt.
Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Die Erfindung wird nachfolgend anhand eines in der Zeichnung dargestellten Ausführungsbeispieles erläutert. Dabei zeigt:
Fig. 1 den Systemaufbau einer DV-Anlage; Fig. 2 das Ablaufdiagramm der Betriebszustände im
Prozessor einer solchen DV-Anlage;
Fig. 3 das Blockschaltbild des Prozessors;
Fig. 4 eine Darstellung des Inhalts eines Registers des Prozessors;
Fig. 5 das Blockschaltbild des Rechenwerks;
Fig. 6 die herkömmliche Verwendung zweier getrennter XS-6 Logikschaltungen für Addition und Subtraktion;
Fig. 7 in entsprechender Darstellung vereinfacht die Korrekturlogik gemäß der Erfindung;
030029/0694
Fig. 8 das ausführliche Blockschaltbild hiervon;
Fig. 9 eine Darstellung der Arbeitsweise der dezimalen Korrekturlogik
030029/0694
In Fig. 1 dient der Befehlsprozessor CIP 13 (commercial instruction processor) der Erweiterung der Zentraleinheit CPU 11»
insbesondere ihrer Kapazität an Befehlsgruppen durch Verwendung einer wirkungsvollen Gruppe herkömmlicher Befehle. Diese
Befehle gestatten es, der Zentraleinheit 11 über den Befehlsprozessor 13 dezimale und alphanumerische Daten zu verarbeiten,
wobei folgende Befehlsarten auftreten: Dezimal, Alphanumerisch, Datenumwandlung und Aufbereitung. Der Nachrichtenaustausch zwischen dem Befehlsprozessor 13 und der Zentraleinheit 11 sowie
dem Hauptspeicher 17 erfolgt über eine gemeinsame Systemsammelschiene, genannt Bus 19. Der Befehlsprozessor 13 arbeitet als
Zusatz zur Zentraleinheit und empfängt Befehle und Operanden als Ubertragungsinformationen von der Zentraleinheit und/oder dem
Speicher. Der Befehlsprozessor verarbeitet die Befehle,wie sie von der Zentraleinheit 11 über den Bus 19 ausgesandt werden.
Die Zentraleinheit erhält diese Befehle vom Hauptspeicher und prüft jeden abgerufenen Befehl, ob es sich um einen kommerziellen
Befehl handelt. Der Empfang eines jeden kommerziellen Befehls durch den Befehlsprozessor tritt üblicherweise gleichzeitig an
der Zentraleinheit auf, da die Zentraleinheit jeden Befehl vom Speicher abzieht und decodiert. Die Befehlsverarbeitung durch den
Befehlsprozessor 13 verläuft jedoch asynchron zum Betrieb der Zentraleinheit 11. Ist kein Befehlsprozessorsystemvorhanden, so
führt jeder Versuch zur Ausübung eines kommerziellen Befehls dazu, daß die Zentraleinheit einen speziellen Abfangzustand annimmt.
Der Befehlsprozessor 13 empfängt über den Bus 19 Informationen
von der Zentraleinheit 11 und vom Hauptspeicher 17 und verarbeitet diese Informationen in logischer Folge. Diese besteht aus
drei CIP-Betriebszuständen: Frei, Laden, Belegt und Abfangzustand.
Wie Fig. 2 zeigt, fängt der Befehlsprozessor 13 im Block 200 an
und bleibt im Freizustand gemäß Block 202,solange er keine Informationen verarbeitet und muß auch im Frei zustand sein, um
030029/0694
einen Befehl, z.B. einen CIP-Befehl oder einen Ein/Ausgabebefehl
von der Zentraleinheit aufzunehmen. Beim Eingang eines
Befehls gemäß Block 204 wird im Block 205 festgestellt, ob der Befehl zulässig ist,und der Befehlsprozessor geht in den Ladezustand
206 über. In diesem Zustand bleibt er solange, bis alle zugehörige Befehlsinfon&ation empfangen ist. Ist dies im Block
208 abgeschlossen, so geht der Befehlsprozessor 13 in den Belegtzustand gemäß Block 210 über und verarbeitet die Information.
Jeder weitere Versuch der Zentraleinheit mit'.dem Befehlsprozessor
Informationen auszutauschen, wird von diesem zurückgewiesen, solange er im Belegtzustand ist und wird erst dann möglich, wenn er
erneut den Freizustand annimmt. Die CIP-Verarbeitung umfaßt Informationsübertragungsaktivitäten
mit dem Hauptspeicher 17, wenn die notwendigen Operanden abgerufen werden. Der Befehlsprozessor
geht in den Abfangzustand gemäß Block 212 nur dann über, wenn spezielle unzulässige Ereignisse auftreten (Block 214), wie beispielsweise
die Feststellung einer unzulässigen Länge des Operanden oder eines Befehls außer der Reihe. Er kehrt zum Freizustand
zurück, sobald gemäß Block 216 die Operation abgeschlossen ist.
Alle zugehörigen Befehlsübertragungen zum Befehlsprozessor werden gemeinsam von der Zentraleinheit und vom Befehlsprozessor erledigt.
Sie werden decodiert und von der Zentraleinheit zusammen mit allen zur Ausführung der Befehle erforderlichen Informationen
zum Befehlsprozessor übertragen. Sobald die Informationsübertragung beendet ist, fahren die Zentraleinheit und der Befehlsprozessor
mit der Ausführung ihrer entsprechenden Befehle fort. Jeder CIP-Befehl enthält ein Befehlswort von 16 Bit, an welches
sich unmittelbar bis zu sechs zusätzliche beschreibende Worte von ebenfalls 16 Bit Länge anschließen, welche als Datendeskriptoren
und Etiketten bezeichnet werden. Das Befehlswort enthält den zur verarbeitung zum Befehlsprozessor gesandten ClP-Operationscode.
Die Datendeskriptoren beschreiben den Typ des Operanden, den Umfang und den Speicherplatz;das Etikett liefert die Adresse eines
fernen Datendeskriptors. Sowohl der Datendeskriptor als auch das
030029/0694
Etikett werden von der Zentraleinheit verarbeitet und hierbei erzeugte Information, beispielsweise der Operandentyp und die
Speicheradresse werden zur Weiterverarbeitung zum Befehlsprozessor gesandt? Zentraleinheit analysiert den Operationscode
in jedem Befehl. Stellt sie einen CIP-Befehl fest, d.h. befindet sich der Befehlsprozessor im Freizustand, so sendet die
Zentraleinheit den Befehlsoperationscode und die zugehörige Information in folgender Weise aus:
(i) Die Zentraleinheit sendet den Operationscode, d.h. das erste
Wort des kommerziellen Befehls an den Befehlsprozessor. Dieser geht in den Ladezustand über, sobald er den Operationscode annimmt ;
(ii) die Zentraleinheit ruft den ersten Datendeskriptor ab und
fragt die Adressensilbe ab, um die wirksame Adresse zu erzeugen; fiii) die Zentraleinheit gibt die folgende Information ab: Die
aus 24 Bit bestehende effektive Byte-Adresse des ersten Operanden, gegebenenfalls den Inhalt des entsprechenden Datenregisters der
Zentraleinheit und den Datendeskriptor des ersten Operanden derart auf den neuesten Stand gebracht, daß sie die Lage eines Bytes
(8 Bits) oder eines Halb-Bytes (4 Bits) innerhalb eines Wortes wiedergibt.
Sind weitere, beispielsweise ein zweiter oder ein dritter Operand
vorhanden, so führt die Zentraleinheit die entsprechenden Vorgänge der Schritte ii und iii aus.
Zu diesem Zeitpunkt wird der Befehlsprozessor 13 mit aller für die Ausführung kommerzieller Befehle erforderlichen Information
geladen und geht in den Belegtzustand über, um den Befehl auszuführen. Falls notwendig, tritt der Befehlsprozessor 13 unmittelbar inInformationsaustausch mit dem Hauptspeicher 17, um die
zugehörigen Operanden zu erhalten. Der Befehlsprozessor 13 hat jedoch niemals direkten Zugriff zu den Registern der Zentraleinheit 11. Er verwendet nur Informationen, die ihm von der
Zentraleinheit zugesandt wurde Somit werden keine CPU-Register vom Befehlsprozessor geändert,und die Zentraleinheit
arbeitet solange den nächsten und jeden folgenden CPU-Befehl ab,
030029/0694
bis einer der folgenden Zustünde auftritt: (i) der Befehlsprozessor setzt die Zentraleinheit über einen Abfangvektor (TV)
davon in Kenntnis, daß während der Ausführung des laufenden kommerziellen Befehls ein unzulässiges Ereignis aufgetreten ist;
oder (ii) von der Zentraleinheit wird ein internes oder externes Unterbrechungssignal festgestellt.
Liegt ein solches Unterbrechungssignal vor, so bestimmt die Zentraleinheit, ob der letzte kommerzielle Befehl vom Befehlsprozessor ausgeführt wurde. Die Zentraleinheit wartet bis zur Beendigung des letzten kommerziellen Befehls. Sobald dies geschehen ist,
bestimmt sie, ob sich hieraus eine Abfanganforderung ergibt. Ist dies der FaIl1 gibt die Zentraleinheit der Abfanganforderung Vortritt, ehe sie eine Unterbrechung durchführt. Hierdurch wird eine
typische Operation zur Speicherinhaltssicherung und Wiedereinspeicherung ausgelöst, um alle entsprechenden CPU und CIP Zustandsinformationen zu speichern. Bei Abschluß der CPU-Operation für
die Erledigung einer CIP-Abfanganforderung oder, sofern keine
Abfanganforderung ansteht und ein CIP-Befehl zur Verarbeitung
vorhanden ist, geht die Zentraleinheit wie folgt vor: Sie schaltet ihren Programmzähler fort, bis zu dem kommerziellen Befehl,
den sie in Gang zu setzen versuchte. Die Zentraleinheit 11 verzögert den Versuch der Verarbeitung des kommerziellen Befehls
solange, bis der laufende Unterbrechungsvorgang abgewickelt ist. Sie beachtet und bedient die von einem Außengerät verursachte
Unterbrechung.
Wenn der Befehlsprozessor 13 einen Befehl abarbeitet, können alle
CPU-Register einschließlich derjenigen,die vom laufenden kommerziellen Befehl angesprochen sind, durch ein Programm über CPU-Befehle geändert werden. Die Software braucht jedoch den Operanden
für einen kommerziellen Befehl solange nicht zu ändern, bis der Befehlsprozessor diesen Befehl durchführt. Andernfalls würden
unbestimmte Ergebnisse erzielt werden. Verzweigungsbefehle im Befehlebestand des Befehlsprozessors CIP 13 werden snychron von
der Zentraleinheit CPU 11 und vom Befehlsprozessor CIP 13 verarbeitet.
030029/0694
Die drei vom Befehlsprozessor verarbeiteten Datenarten sind alphanumerische Daten, binäre Daten und Dezimaldaten. Jeder Datentyp
ist in Gruppen von Binärinformationen eingeteilt. Per Definition hat diese Einheit acht Bits ( ein Byte), wenn alphanumerische
und binäre Datenzeichen anstehen. Wenn dezimale Datenzeichen vorliegen, hat die Einheit vier Bits (Halb-Byte) für paketierte
Dezimaldaten und acht Bits (ein Byte) für Reihendezimaldaten. Eine einzige Präzisionsbinärzahl besteht ebenfalls aus zwei Einheiten (2 Bytes) und eine Doppelpräzisionsbinäreinheit besteht
aus vier Einheiten (4 Bytes).
Fig. 3 zeigt das wesentliche Blockschaltbild des Befehlsprozessors
13 mit allen bedeutsamen Datenübertragungswegen zwischen den Registern des Prozessors. Der Steuerspeicher 10 besteht aus mehreren Speicherplätzen und zwar jeweils einem für jedes Steuerspeicher-oder Firmware-Wort. Diese Firmwareworte steuern direkt oder
indirekt die Prozessorfolgen, Datenübertzagungswege sowie den Busbetrieb.
Eine Operandenregisterdateien sowie das Rechenwerk umfassende Einheit RALU 12 enthält in erster Linie zwei Registerdateien, ein
Rechenwerk (ALU) sowie die zugehörigen Multiplexer und Steuerregister. In derGeräteeinheit RALU 12 befinden sich Operandenregisterdateien RF1 und RF2, von denen jede 16 Speicherplätze
für jeweils 16 Bit aufweist, die als Pufferspeicher für im Rechenwerk ALU zu verarbeitende Operanden dienen. Die ALU-Eingangsmultiplexer und Verriegelungsschaltungen umfassen drei 2:1-Multiplexer (Zcnenauswahl), zwei 4:4 Multiplexer (Ziffernauswahl)
sowie zwei 8 Bit Verriegelungsschaltungen (Byteverriegelung). Diese Multiplexer und Verriegelungsschaltungen werden für die
Übertragung von Daten aus den Operandenregisterdateien an das Rechenwerk benutzt. Daten können auch vom Zähler für das laufende
Produkt an die linke Seite des Rechenwerks oder von der Operandenregisterdatei 2 an das Multiplikationsregister Übertragen werden.
Das 8 Bit-Rechenwerk ALU,bestehend aus zwei 4-Bit-Bausteinen,
einen Vörwärtsübertragungsbaustein und einem Eingabe/Ausgabe-Flip-Flop kam folgende Operationen zwischen den linken (1) und
rechten (2) Ausgängen ausführen: Binäre Addition, binäre
030029/0694
Subtraktion des Eingangssignals 1 vom Eingangssignal 2, binäre
Subtraktion des Eingangssignals 2 vom Eingangssignal 1, logische ODER-Verknüpfung, logische UND-Verknüpfung, Exklusiv-ODER-Verknüpfung, Setzen des Rechenwerkausgangs auf FF, Luschen des
Rechenwerkausgangs auf 00. Die Einheit RALU 12 wird später anhand von Fig. 5 im einzelnen erläutert.
Die Uberschuß-6-Korrekturlogik XS6 der Einheit RALU 12 wird
jedesmal aktiviert, wenn das Rechenwerk im Dezimalbetrieb arbeitet und dient dazu, das binäre Ausgangssignal des Addierers in
die korrekte Dezimalziffer umzuwandeln und dabei den Ubertragausgang für Folgeoperationen zu modifizieren. Die XS6-Korrektur
wird mit Hilfe eines 32-Bit mal 8-Bit programmierbaren Festwertspeichers PROM durchgeführt, welcher die korrigierten drei Bits
hoher Wertigkeit der Ziffer codiert und den korrigierten übertrag erzeugt. Am Ausgang des PROM-Bausteins ist für andere Steuerzwecke Funktionssignal für Ziffern kleiner als Zwei vorhanden.
Der Ausgangsmultiplexer des Rechenwerks wird dazu benutzt, entweder die oberen vier Bits des Addiererausgangssignals oder die
korrekten Dezimalzonenbits der internen Sammelschiene, genannt
Bus 14, zuzuführen und zwar abhängig davon, ob das Rechenwerk im Binärbetrieb oder Dezimalbetrieb arbeitet. Die RALU-Steuereinheit
besteht aus drei Registern, nämlich einem Registerdatei-1-Adressregister RF1A, einem Registerdatei-2-Adressregister RF2A und
einem Rechenwerk-BetriebsartSteuerregister ALMR. Diese Register
steuern zusammen mit verschiedenen Mikrobefehlen alle Vorgänge innerhalb der Geräteeinheit RALU 12. Neben den beschriebenen Registern und Steuereinrichtungen sind zwei weitere Register vorhanden, welche als RALU-Register eingeordnet sind. Dies sind der
Zähler CPRC für das laufende Produkt sowie das Multiplikatorregister MIER.
Die Steuerdatei 16, auch als Registerdatei C (RFC) bezeichnet,
ist ein 24-Bit Speicher mit wahlfreiem Zugriff (RAM) mit 16
Speicherplätzen und wird hauptsächlich benutzt, um alle befehlsbezogenen Informationen zu speichern,die von der Zentraleinheit
CPUI1 kommen, beispielsweise Aufgabenworte, Datendeskriptcren,
effektive Adressen usw. Die Steuerdatei enthält ferner mehrere
030029/0694
WortSpeicherplätze, welche durch die Firmware des Befehlsprozessors CIP benutzt werden. Die Steuerdatei 16 empfängt die
Bits 0 bis 7 entweder vom internen BUS 14 oder über den Multiplexer 21 mit ODER-Logik vom Bus-Adressregister MAR 18. Das Buaadressregister 18 ist ein 24-Bit-Adressregister und dient hauptsächlich der Adressierung des Systembus 19. Es besteht aus einem
8-Bit-Multiplexerregister mit zwei Eingängen am unteren Ende sowie
einer 16-Bit-Fortschalt/Rückschalteinrichtung am oberen Ende. Das
Multiplexeingangssignal für die unteren 8 Bit's kommt entweder von
der Steuerdatei 16 oder vom Ausgang des Adressaddierers 20. Letzterer ist ein 8-Bit-Zweierkomplement-Addierer und wird in
erster Linie zum Fortschalten oder Rückschalten des Inhalts im
Busadressregister 18 eingesetzt. Die Eingangssignale zum Adressaddierer 20 sind die geringwertigen 8 Bits des Busadressregistera
und des 8-Bit-Schieberegisters MSR 22. Hierbei handelt es sichun.ein
8-Bit-üniversalschieberegister, welches vom internen Bus 14 geladen wird und seinen Inhalt um 1 Bit nach links oder rechts
verschieben kann, d.h. eine Offenend-Verschiebung mit Nullergänzung. Das Schieberegister arbeitet als Eingang des Adressaddierers
20 zum Fortschalten oder Zurückschalten des Busadressregisters Außerdem kann das Bit B des Schieberegisters 22 in das Rechenwerk-Eintrag-Flip-Flop geladen werden, welches sich während der
Ausführung von Umwandlungsbefehlen als nützlich erweist.
Das Busausgangsdatenregister OUR 24 ist ein 16-Bit-Datenregister
und wird zur Datenübertragung auf die Datenleitungen des Bus 19 benutzt. Es wird vom internen Bus 14 entweder mit dem unteren
oder dem oberen Byte oder dem gesamten 16-Bit-Wort geladen. Beim
Buseingangsdatenregister INR 26 handelt es sich um «in 16-Bit-Datenregister, welches Daten von den Datenleitungen des Bus 19
empfängt. Der Inhalt dieses Datenregisters kann in den internen Bus 14 umgeladen werden.
Das Eingangsfunktiooscoderegister BFCR 28 stellt sich als 6-Bit-Register dar, welches der Speicherung des Funktionscodes dient«
wenn der Befehlsprozessor vom Bus 19 irgendwelche Eingangs- oder Ausgangsbefehl annimmt. Anschließend prüft die Firmware den
030029/0694
Inhalt des Funktionscoderegisters 28 und führt den angegebenen Befehl durch. Das Eingangsadressbankregister INAD 30 ist ein 8-Bit-Register für die Speicherung der höherwertigen 8 Speicheradressbits, die über die Adressleitungen des Bus 19 ankommen. Sie
enthalten die Speichermoduladresse und werden von der Zentraleinheit 11 als Ergebnis eines sogenannten IOLD-Befehls oder
eines Ausgangs-Funktionscodes für Effektivadressen übertragen.
Die niederwertigen 16 Bits der Speicheradresse werden über die Datenleitungen des Bus 19 empfangen und in das INR-Register 26
eingegeben und bilden die geforderte 24-Bit-Hauptspeicheradresse.
Das CIP-Anzeigeregister 32 ist als 8-Bit-Speicherregister ausgebildet, in dem jedes Bit einzeln gesetzt oder rückgestellt werden
kann. Die Bit-Konfiguration des Anzeigeregisters ist in Fig. 4 dargestellt. Die TRP- und TRP-Leitungs-Anzeiger werden vom Befehlsprozessor nur für interne Verarbeitung benutzt und sind für
die Software unsichtbar. Der TRP-Leitungsanzeiger (CIP-Abfangleitung) informiert die Zentraleinheit 11 über einen bestehenden
CIP-Abfangzustand und wird über das externe Abfangsignal über den Bus 19 übertragen. Ist der TRP-Anzeiger gesetzt, so kann der
Befehlsprozessor nur Eingangsbefehle von der Zentraleinheit CPU annehmen.
Das Analysenregister AR34 ist ein 16-Bit-Register und wird in
erster Linie zur Steuerung von Mikroprogrammverzweigungen Onaskierte Verzweigungen) benutzt sowie zur Steuerung der Codier/
Decodierlogik für das Uberlochbyte. Dieses Register wird vom internen Bus 14 mit dem gesamten 16-Bitwort geladen. Das mikroprogrammierbare Schaltregister MPSR 36 stellt sich als 8 Bitregister dar, indem durch Steuerung über Mikroprogramm jedes Bit
einzelnen gesetzt oder rückgestellt werden kann. Jedes Bit im Register 36 wird als Anzeiger zur Erleichterung der Mikroprogrammierung benutzt, d.h. die Firmware kann jedes der Registerbits prüfen und in Abhängigkeit vom Prüfergebnis Verzweigungeoperationen ausführen. Einige dieser Bits werden auch zur
030029/0694
Steuerung bestimmter Hardware-Funktionen im Befehlsprozessor 13
genutzt.
Beim ROS-Datenregister RD 36 handelt es sich um ein 52-Bit-Speicherregister für die Speicherung des Steuerspeicherausgangssignals (eines Firmwarewortes)im laufenden Firmwarezyklus. Das
Mikroprograram-RückJcehradressadressregJster SRA 40 ist ein 11-Bit-Register und wird vom Ausgangssignal der Folgeadresslogik N£G
geladen. Es dient der Speicherung der Mikroprogrammrückkehiadresse beim Ausführen einer Firmware-Subroutine. Der Registerdatei-C-Adressmultiplexer/selektor RFCA 31 ist ein 4-Bit-2:1-Selektor und kann einen der 16 Speicherplätze innerhalb der
Registerdatei C16, d.h. innerhalb der Steuerdatei adressieien.
Der Selektor 31 wählt eine Kombination des Funktionscoderegisters 28 sowie entweder den Zähler (1)46 oder bestimmte Bits des ROS-Datenregisters 38 an. Die CIP-Zähler 44 enthalten drei 6-Bit-Auf/Ab-Zähler 46, 48 und 50, welche als Zähler 1(CTR1),Zähler 2
(CTR 2) und Zähler 3(CTR 3) bezeichnet sind. Diese Zähler werden über den internen Bus 14 geladen und entladen. Der Inhalt jedes
Zählers steht für Prüfung- und Verzweigungsoperationen zur Verfügung.
Die Decodier/Codierlogik 52 für das Uberlochbyte umfaßt zwei
Speicherbausteine in Form programmierbarer Festwertspeicher ρROM
mit 512 Speicherplätzen für je 4 Bit. Sie werden zum Decodieren
und Codieren des Inhalts des Analysenregisters AR34 eingesetzt. Das decodierte Byte wird von den Bits 1 bis 7 des Analysenregisters erhalten und den codierten Ziffernanfang erhält man
von den Bits 4 bis 7 des Analysenregisters. Die Decodier/Codieroperation wird durch Verwendung der Bit 1 bis 7 des Analysenregisters benutzt, um hierdurch einen speziellen PROM-Speicherplatz zu adressieren. Der Inhalt dieses Speicherplatzes wird
codiert, um entweder (1) die decodierte Ziffer, ihr Vorzeichen und ihre Wertigkeit oder (2) das codierte Überlochbyte zu prüfen.
Bit 4 des Schaltregisters 36 bestimmt, ob eine Decodier oder eine Codieroperation ausgeführt wird, während Bit 1 das Vor-
030029/0694
zeichen des codierten Bits anzeigt. Das Ausgangssignal der Decodier/kodierlogik für das Uberlochbyte ist auch auf beiden
Hälften des internen Bus 14 verfügbar.
Die ClP-Prüflogik 54 wählt einen der 32 möglichen Firmware-Prüfzustände
als Eingangssignal für die Folgeadressenlogik 42 aus. Der zutreffende oder falsche Zustand der geprüften Funktion
steuert Bit 50 des Steuerspeicher-Folgeadressenfeldes, d.h. er setzt das Bit 50 oder stellt es zurück, je nach dem Zustand der
überprüften Funktion. Die Folgeadressenlogik NAG 42 im Befehlsprozessor 13 benutzt eine der folgenden fünf Methoden zur Erzeugung
der nächsten, also folgenden Firmwareadresse: Direkte Adressierung, Prüfen und Verzweigen, maskierte Verzweigung,
Hauptverzweigung oder Rückkehr über Subroutine. Die direkte Adressierung wird benutzt, wenn eine bedingungslose Verzweigung
zum nächstfolgenden Steuerspeicherplatz ausgeführt wird. Hierfür werden die Bits 41 bis 51 des Steuerspeicherworts zur Bildung
der Folgeadresse verwandt. Diese Bits enthalten das Folgeadressenfeld, welches unmittelbar jeden der vorhandenen Steuerspeicherplätze
adressieren kann. Eine Prüf- und Verzweigungsoperation wird durchgeführt, wenn eine Zweiweg-Bedingungsverzweigung bei
erfolgreicher Prüfbedingung innerhalb einer Firmwareseite durchgeführt wird. Eine Firmwareseite ist ein Segment mit 128 Speicherplätzen innerhalb des Steuerspeichers. Hierbei werden die
Steuerspeicherbits 41 bis 44 und 50 zur Auswahl des Prüfzustands herangezogen. Je nach Zustand der überprüften Funktion wird eine
Verzweigung zu einem der beiden Speicherplätze eingeleitet. Die Verzweigungsoperation gemäß diesem Verfahren ist von der Art
Modulo 2, d.h. die beiden möglichen Verzweigungsadressen liegen zwei Speicherplätze auseinander. Die Modulo 2-Adresse wird wie
wie folgt entwickelt: (1) Ist die Testbedingung erfüllt, so wird Bit 9 der Adresse auf "1" gesetzt, oder (2) ist die Testbedingung
nicht erfüllt, so wird Bit 9 der Adresse auf "0" gesetzt. Eine maskierte Verzweigung wird normalerweise benutzt, wenn eine
Verzweigung für den Inhalt des Analysenregisters AR 34 oder
030029/0694
COPY
bestimmter anderer Zustände erfolgen soll. Sie stellt eine Verzweigung
zu zwei, vier acht oder sechzehn Speicherplatzen innerhalb der gleichen Firmwareseite dar. Eine Hauptverzweigung wird
für die Verzweigung innerhalb einer Firmwareseite (128 Worte) angewandt. Eine CPU/CIP-Schnittstellenroutine verwendet diese
Methode, üb die erforderliche 16-Wegverzweigung für den Inhalt
des Funktionscoderegisters 28 zu erreichen (INB-Hauptverzweigung
und EOP-Hauptverzweigung. Die Rückkehr über eine Subroutine erfolgt
dann, wenn die Firmware nach Durchführung einer Firmware-Subroutine
zum nächsten ungeradezahligen oder geradzahligen Steuerspeicherplatz zurückgebracht werden soll. Die Rückkehradresse
erhalt man vom Rückkehradressregister RSRA 40. Sie muß in diesem Register 40 gespeichert werden, ehe die betreffende
Subroutine ausgeführt wird.
Der interne Bus 14 ist für 16 Bits eingerichtet und dient in erster Linie der Datenübertragung zwischen CIP-Rejistern einschlieBlich
von Speicherplätzen innerhalb der Registerdateien. Er empfängt, wie Fig. 2 zeigt, Daten von verschiedenen Quellen.
Ausgangssignale des internen Bus 14 werden verschiedenen Registern innerhalb des Befehlsprozessors 13 zugeleitet. Die Paritätsprüflogik
56 liegt zwischen dem Bus 19 und dem internen Bus und prüft die Parität der ankommenden Daten. Die Paritätserzeugerlogik
58 andererseits wird zur Erzeugung des richtigen Paritätsbits für die Übertragung über den Bus 19 verwandt. Die Busanforderungslogik
60 und die Busantwort logik 62 dienen der Aktivierung des Befehlsprozessors 13,um Zugriff zum Bus 19 zu erlangen bzw.
auf Anforderungen nach Zugriff zum Befehlsprozessor zu antworten. Die Logikschaltungen 60 und 62 sind in der US-PS 39 93 981 beschrieben.
Fig. 5 zeigt das Blockschaltbild der Geräteeinheit RALU 12 mit den hauptsächlichen Datenübertragungswegen und Steuerleitungen.
Letztere sind als gestrichelte Linien dargestellt. Die Beschreibung der Geräteeinheit 12 ist in sieben Bereiche unterteilt:
030029/0694
COPY 1
Operandenregisterdateien/ Rechenwerk-Eingangsmultiplexer und
Verriegelungsschaltungen, Rechenwerk, XSö-Korrekturlogik, Rechenwerk-Ausgangsmultiplexer,
RALU-Steuerlogik, verschiedene RALU-Register. Jede der Operandenregisterdateien ' RF1 70 und RF2
besteh aus vier RAM-Speicherbausteinen und wird zur vorübergehenden Speicherung der CIP-Operanden benutzt. Die Adressen für
jede der Registerdateien werden durch zwei 6-Bit-Adressregister RF1A 74 bzw. RF2A 76 geliefert. Die Bits 0 bis 3 jedes Adressregisters
liefern die Adresse des SpeicherplatzssLnnerhalb der
zugehörigen Registerdatei, während die geringwertigen Bits für die Byte- und Ziffernauswahl am Ausgang der Registerdatei sorgen.
Beide Adressregister können durch Ziffern, Bytes oder Worte um jeweils einen, zwei oder vier Schritte vor-und zurückgeschaltet
werden. Das Ausgangssignal jeder Registerdatei wird den Eingängen zweier Multiplexer zugeleitet, welche zwischen Zonen-und Zifferninformation
unterscheiden. Diese Auswahl erfolgt anhand der Bits 4 und 5 des zugeordneten Adressregisters. Bit 4 wählt aus, ob
die Bits 0 bis 3 oder 8 bis 11 der Registerdatei zum Ausgang des 2;2-Multiplexers 78 oder 80 geleitet werden, während das Bit 5
die Registerdateibits auswählt, welche die zum Ausgang des 4:1-Multiplexers 82 bzw. 84 zu leitende Ziffer enthalten.
Die verschiedenen Register und Multiplexer sind über verschiedene Steuerleitungen 71, 73, 75 und 77 miteinander verbunden. Ein
dritter 2:1-Multiplexer 86 dient der Auswahl ob der Inhalt des Zählers CPRC 88 für das laufende Produkt oder die Ziffer vom
Register RF1 der A-Verriegelungsschaltung 90 zugeleitet wird.
Dieser Multiplexer wird vom ALMR-Register 92 gesteuert. Die ALU-Eingangsverriegelungsschaltungen,
die A-Verriegelungsschaltung und die B-Verriegelungsschaltung 106, erhalten sowohl Zonen-als
auch Zifferninformation von den Rechenwerkeingangsmultiplexern
und verriegeln während der Schreiboperationen die Daten in den Registerdateien. Die Ausgangssignale der Verriegelungsschaltungen
liefern die Zonen- und Zifferninformation an die linke bzw. die rechte Seite des Rechenwerkes.
030029/0694
Der Zähler CPRC βθ für das laufende Produkt ist ein dezimaler
4-Bit-Auf/Abwärtszähler und wird in erster Linie bei dezimalen
Multiplications- und Divisionsoperarationen eingesetzt. Da^
Multiplikatorregister MIER 94 ist ein binärer 4-Bit Auf/AbwärtszShler und dient gleichen Zwecken. Bein Rechenwerk-Betriebsartsteuerregister ALMR 72 handelt es sich ue ein 6-Bit-Steuerregister. Das Adressregister RFIA 74 für die Registerdatei 1
stellt sich als 6-Bit-Adressregister dar und hat zwei Funktionen: (1) es liefert Adressen für die Registerdatei 1 (70) und (2)
steuert zwei der drei Rechenwerkeingangsmultiplexer, die der Registerdatei 1 zugeordnet sind. Das Registerdatei-2-Adressregister RF2A 76 ist ebenfalls ein 6-BitAdressregister und übt
inBezug auf die Registerdatei 3 (72) die entsprechenden Funktionen aus. Alle Operationen des Rechenwerks ALU 100 werden entweder dezimal oder binär ausgeführt. Dezimalbetrieb erfolgt bei
der Verarbeitung von Dezimalzifferinformationen, während Binärbetrieb für die Verarbeitung von Bytes (Alpha) dient. Beide Betriebsarten steuern außerdem die über-6-Korrekturlogik 102 (XS6)
sowie die Eingänge des Ubertragungs-Flip-Flops. Bei Dezimalbetrieb wird dieses Flip-Flop mit dem übertrag aus den vier Bits
niedriger Wertigkeit des Rechenwerks geladen, während es bei Binärbetrieb den Übertrag der acht Bits des Rechenwerks für nachfolgende arithmetische Operationen aufnimmt. Das Laden des Übertrag-Flip-Flops erfolgt,gesteuert durch ein Mikroprogramm, sobald
ein Übertrag für nachfolgende Operationen weitergegeben werden muß. Außerdem kann das Übertrag-Flip-Flop vom MSR-Register geladen werden sowie von einem Mikroprogramm gesteuert, gesetzt
oder zurückgestellt werden.
Die XS6-Korrekturlogik 102 enthält einen 32-Bit χ 8 Bit PROM-Baustein sowie die zugehörige Steuerlogik für die Korrektur der
drei huherwertigen Bits am Ziffernausgang des Rechenwerks. Die XS6-Korrektur wird durchgeführt, sofern: (1) das Rechenwerk im
dezimalen Additionsbetrieb arbeitet und ein dezimaler übertrag festgestellt wird oder'»Ziffernausgang des Rechenwerks 100 größer
030029/0694
ORIGINAL INSPECTED
als 9 ist, sowie (2) wenn das Rechenwerk im dezimalen Subtxaktionsbetrieb arbeitet und ein Borgbetrag erforderlich ist, d.h. ein
übertrag vom Ziffernteil des Addierers fehlt. Der PROM-Baustein hat fünf Adressleitungen, drei hiervon sind für die drei Bits
höherer Ordnung vom Ziffernausgang des Rechenwerks bestimmt,
während die anderen beiden Adressleitungen die Art der ausgeführten Operation anzeigen, d.h. Addier-Korrektur. Subtrahier-Korrektur oder keine Korrektur. Der codierte Inhalt des PROM-Bausteins besteht aus den drei korrigierten Bits höherer Ordnung
der Ziffer, dem korrigierten Dezimalübertrag und dem Zustand "Ziffer kleiner als 2".
Der Rechenwerkausgangsinultiplexer 104 wählt zwischen oberen vier
Bits des Addiererausgangssignals und den korrigierten Dezimalzonenbits aus und liefert diese an den internen Bus. Die Konfiguration der Zonenbits für den Deζima!betrieb hängt davon ab, ob
ASCII-oder EBCDIC-Daten verwendet werden. Wenn ASCII-Daten verarbeitet werden, erhalten die Zonenbits den Wert 3, während bei
der Verarbeitung von EBCDIC-Daten die Zonenbits einen Wert F haben.
Die Register- und Rechenwerksteuerung 12 besteht aus Registern RF1A 74, RF2A 76 und ALMR 92 sowie verschiedenen Mikrobefehlen.
Außerdem wird das Rechenwerk-Ubertragungs-Flip-Flop durch ein
Mikroprogramm gesteuert. Es kann je nach Bedarf durch entsprechende Mikrobefehle gelöscht oder vorgesetzt werden und läßt
sich laden von: (1) dem 4-Bit-DigialÜbertrag für Dezimaloperationen, (2) dem 8-Bit-Binärübertrag für Binäroperationen, oder
(3) durch das Bit 0 des MSR-Registers 22, während der Durchführung eines Umwandlungsbefehls. Das alle Rechenwerkoperationen
steuernde ALMR-Register 92 wird mit den Steuerspeicherbits 2 bis 7 geladen. Bit 0 gibt an, ob das Rechenwerk im Dezimal-oder
im Binärbetrieb arbeitet, d.h. ob der Austrag des Rechenwerks mit Bit 4 (digitaler übertrag) oder mit Bit 0 (binärer Übertrag)
erfolgt. Bit 0 steuert weiterhin sowohl die Rechenwerkkorrektur
030029/0694
XS6 für Dezimaloperationen sowie den Rechenwerkausgangsmultiplexer 104. Dieser bestimmt, ob die höherrangigen vier Bits
des Rechenwerks oder die Zonenbits dem internen Bus zugeleitet werden. Die Bits 1, 2 und 3 dienen der Operationssteuerung
innerhalb des Rechenwerks. Bit 4 bestimmt, ob die Zonenbits auf einen Wert 3 oder F gesetzt werden, und zwar auf den Wert
für ASCII-Daten und auf den Wert F für EDCDIC-Daten. Bit 5 gibt
an, ob die aus der Registerdatei 1 oder dem Inhalt des Zählers
für das laufende Produkt ausgewählte Ziffer '-den auf der linken Seite des Rechenwerks angeordneten Verriegelungsschaltungen 90
zugeführt wird. Das Register RFTA liefert die Adresse und steuert die Registerdatei sowie die zugehörigen Rechenwerk-Eingangsmultiplexer. Das Register RF2A hat die gleiche Aufgabe in Bezug
auf die Registerdatei 2.
Die Steuerdatei 16 ist in zwei Bereiche unterteilt, nämlich die
obere Sektion mit den Bits 0 bis 7 und die untere Sektion mit den Bits 8 bis 23. Jede Sektion kann wie folgt geladen werden:
Die niedrige Sektion vom internen Bus (Bits 0 bis 15), die obere vom internen Bus (Bits 0 bis 7), die untere vom internen Bus
(Bits 0 bis 15) und die obere vom Busadressregister 18 (Bits 0 bis 7). Den die obigen Operationen durchführenden Funktionen ist
eine Adresse zugeordnet, welche der in den Speicherplatz RFC 16 geladenen entspricht. Diese Adresse stammt entweder vom Funk'
tionscoderegister 28 oder vom Steuerspeicher 10. Damit steht die RFC-Adresse in unmittelbarem Zusammenhang zur Art der von der
Zentraleinheit übertragenen Daten bzw. zum angezeigten Funktionscode.
030029/0694
Die sowohl Opperandenregisterdateien als auch das Rechenwerk umfassende Einheit RALUl2 enthält wie Figur 5 zeigt auch die
XS6-Korrekturlogik 102. Eine solche XS6-Korrekturtechnik wird in DV-Anlagen benutzt, wenn man mit einem binären Rechenwerk
binär codierte Dezimalzahlen arithmetisch verarbeiten will. Man kompensiert hiermit die Verwendung einer binären Register- und
Recheneinheit RALU12. Eine Erläuterung des Systems binär codierter
Dezimalzahlen und der Binärzahlen findet sich im Buch "Digital Computer Design Fundamentals" von Yaohan Chu, McGraw-Hill Book
Company, Inc., 1962. Beispielsweise ergibt die Addition der Zahlen 8 und 5, die sich sowohl in binärer Schreibweise als
auch in binär codierter Dezimalform als 1000 bzw. 0101 darstellen, das Ergebnis 13, welches in binärer Form gleich 1101,
hingegen in binär codierter Dezimalform gleich 0001 0011 ist,
wobei der erste bzw. linke Block die Dezimalziffer 1 in der Zahl 13 und der zweite oder rechte Block die Dezimalziffer 3
in der Dezimalzahl 13 darstellt.
Bei bekannten Anlagen wurde die erforderliche Korrektur mit Hilfe der überschuss-6-Korrekturlogik XS6 durchgeführt, welche
in Abhängigkeit von verschiedenen Prüfbedingungen aktiviert wird.
Hierzu gehört die Frage, ob während der arithmetischen Operation ein Übertrag stattgefunden hat und ob eine Addition oder Subtraktion
erfolgt. Bei den bekannten Anlagen wird die XS6-Korrektur dadurch bewerkstelligt, daß man zu einem der Operanden
den Betrag sechs hinzuzählt und gesteuert durch den Übertrag und die Art der Operation den Wert 6 vom Ergebnis subtrahiert.
Figur 6 zeigt schematisch die bekannte XS6-Korrektur. Der erste Operand OP1 im Register 300 ist direkt an den Eingang des binären
Rechenwerks 306 angeschlossen. Der andere Operand 0P2 im Register 302 ist an den Eingang der bedingten 6-Additionslogik
304 angeschlossen. In Abhängigkeit von den obengenannten Bedingungen wird die Logik 304 aktiviert, so daß am anderen
Eingang des Rechenwerks 306 der zweite Operand OP2 um den Betrag sechs erhöht eingeht. Das vom binären Rechenwerk 306
erzeugte Ergebnis gelangt zur bedingten 6-Subtrahierlogik
030029/0694
welche in Abhängigkeit der erwähnten Prüfbedingungen aktiviert
wird und im Block 310 das korrigierte Ergebnis liefert in Form einer binär codierten Dezimalzahl BCD. Die beiden Logikschaltungen 304 und 308,von denen jede 3 oder mehr elektronische
Schaltkreise aufweist, stellt einen beträchtlichen Aufwand dar.
Die Einrichtung gemäß der Erfindung benutzt zwar auch die XS6-Korrekturtechnik, jedoch mit einem wesentlich geringeren Schaltungsaufwand. Dieser ist im Prinzip vereinfacht in Figur 7 und
im einzelnen in Figur 8 wiedergegeben. Beide Operanden RF1 Im Block 350 und RF2 im Block 352 gelangen unmittelbar zum
binären Rechenwerk 354, d.h. zur Register-und Recheneinheit
RALU12. Das Rechenwerk 354 umfaßt gemäß Figur 8 Zonen- und Ziffernsektionen von jeweils vier Bit Speicherbreite . Bei Anwendung der Erfindung werden nur die Operandeneingänge des
Ziffernbereichs benutzt. Der Ausgang der Zonensektion wird zur Erzeugung eines binären Ubertragssignals verwendet, und allgemein findet der Zonenbereich nur für Binärzahlen und nicht
für die einzelnen Ziffern der binär codierten Dezimalzahlen aus den Operanden RF1 und RF2 Verwendung. Die Bedingungs-Addierlogik 304 gemäß Figur 6 entfällt. Ein Teil des Ziffernbereichsausgangs des Rechenwerks 354 ist an die Dezimalkorrekturlogik
356 angeschlossen, die einen einzigen Speicherbaustein bzw. einen programmierbaren Festwertspeicher PROM oder einen Festwertspeicher ROM aufweisen kann. Die Logikschaltung 356 wird an
ihren Eingängen 358 und 360 gesteuert, die ihrerseits den Operationscode bzw. den Ubertragzustand angeben. Vom korrigierten
binär codierten Dezimalergebnis 362 kommen 3 Bits vom Ausgang der Logikschaltung 356 und 1 Bit vom Rechenwerk 354. Die Zusammensetzung und damit der Inhalt des Speichers 356 ergibt
sich aus Figur 9. Figur 8 beschreibt jene Teile der Schaltungsanordnung gemäß Figur 7, die sich mit dem Übertrageingang
360 und dem Operationseingang 358 der Logikschaltung 356 befassen. Durch Verwendung zweier ODER-Gatter 459 und 361 werden
im Binärbetrieb sowohl der Ubertrageingang als auch der Operationseingang der Logikschaltung 356 aktiviert. Ist ein
030029/0694
binär codierter Dezimalübertrag, kurz gesagt ein BCD-Übertrag
vorhanden, so wird über das ODER-Gatter 361 der Übertrageingang
360 aktiviert. Findet eine dezimale Subtraktion statt, so wird über das ODER-Gatter 359 der Eingang 358 aktiviert.
Zwei Beispiele für die Arbeitsweise der XS6-Korrektur werden
nachfolgend erläutert, nämlich (1) die Addition 8+5 und (2) die Subtraktion 8-5. Die binär codierte Dezimaldarstellung (BCD)
für 8 ist 1000 und für 5 ist 0101. Die binäre Addition von 1000 und 0101 ergibt die Binärzahl 1101 bzw. den Dezimalwert
13. Um das Ergebnis als BCD-Zahl zu erhalten, addiert man zunächst einmal ohne Bedingung den Wert 6 zu einem der Operanden
beispielsweise zu 0101. Der Binärwert von 6 ist 0110 und dies addiert zu 0101 («5) ergibt 1011. Die Zahl BCD 1011 wird dann
zu 1000 addiert und ergibt 0011 mit einem übertrag. Da ein
übertrag vorhanden ist, ist keine weitere arithmetische Operation nötig und das BCD-Ergebnis ist «0001 0011, d.h. der übertrag (die linken 4 Bits) und das Ergebnis ohne den übertrag
(die rechten 4 Bits). Wäre kein übertrag gewesen, so würde der Betrag 6 vom Endergebnis subtrahiert worden sein, indem man
das Zweierkomplement von 6 addiert hätte. Beispielsweise ergebe 5+3 keinen übertrag nach der Addition 5+3+6.Als Antwort
auf diese Addition würde 6 subtrahiert werden und ergäbe 10OO («8) mit einem übertrag der nicht benutzt würde.
Subtrahiert man 5 von 8 so wird bei keiner der Zahlen ein Wert 6 addiert. Vielmehr wird das Ergebnis hinsichtlich des Vorhandenseins eines Übertrags überprüft. In diesem Beispiel wäre das
Ergebnis 00011 mit einem übertragner unmittelbar das Ergebnis
00J1 (»3) angibt, ohne dass der übertrag im Ergebnis verwendet
wird. Ist andererseits kein übertrag vorhanden, so müßte der Wert 6 vom Ergebnis der Subtraktion abgezogen werden. Beispieleweise beim Subtrahieren 5-8, d.h. Abziehen des Betrages von
15 mit einem Borgbetrag 10 ergäbe sich 1101 ohne übertrag.
Dann würde der Betrag 6 vom Ergebnis 1101 subtrahiert indem man das Zweierkomplement von 6, d.h. 1010 addiert und damit das Ergebnis 0111 (*7) erhält ohne den übertrag zu benutzen.
030029/0694
_25_ 29S2Ü72
Beim Addieren wird also ein Wert 6 bedingungslos zu einem der
Operanden addiert, während beim Subtrahieren eine solche bedingungslose Addition des Wertes 6 nicht stattfindet. Das Hinzufügen des
Wertes 6 hängt also nur von der Art der auszuführenden Operation ab. Ein Wert 6 wird entweder vom Ergebnis einer solchen anfänglichen Addition der beiden Operanden und der zusätzlichen
Addition des Wertes 6 subtrahiert oder er wird vom Ergebnis der Subtraktion der beiden Operanden subtrahiert, je nachdem ob
im Ergebnis ein übertrag vorhanden ist oder nicht. Ist ein übertrag gegeben, so hat man das gewünschte Ergebnis in BCD-Form
erreicht. Liegt hingegen kein übertrag vor, so erfolgt die Subtraktion.des Wertes 6 unabhängig von der Art der Operation, d.h.
sowohl bei Addition als auch bei Subtraktion.
Wie oben bereits erwähnt wurde, erfordert die XS6-Korrektur
gemäß dem Stand der Technik eine erhebliche Anzahl von Operationen und zugehöriger Logikschaltungen. Gemäß der Erfindung wird
das Ergebnis durch Verwendung eines Speichers erzielt, der durch Anzeiger adressiert wird, die die Art der Operation, das Vorhandensein eines Übertrags, sowie einen Teil des Ergebnisses der durch
das binäre Rechenwerk 354 vorgenommen Addition anzeigen.
Figur 9 zeigt den Aufbau des als Korrekturlogik benutzten Speichers 356. Er mag 32 Speicherplätze aufweisen, welche über 32
unterschiedliche Eingangsadressen adressierbar sind. Abhängig vom adressierten Speicherplatz wird ein unterschiedliches Ausgangssignal erzeugt. Die Eingangsadressen in der linken Spalte und
zugehörige Bemerkungen in der mittleren Spalte angegeben. Der tatsächliche Speicherinhalt der Logikschaltung 356 ist in der
rechten Spalte wiedergegeben, welche das Ausgangssignal zeigt, wenn ein entsprechender Speicherplatz adressiert wird. Das Ausgangssignal der Logikschaltung 356 enthält das korrigierte
BCD-Übertragausgangssignal, sowie die drei höchstwertigen Bits
0,1 und 2. Das geringstwertlge Bit wird unmittelbar vom binären
Rechenwerk 354 übernommen. Das Ausgangssignal kann auch weitere Parameter enthalten, beispielweise einen Anzeiger ob die Ziffer
kleiner als 2 ist. Dies ist in Figur 9 in der am weitesten rechts
030029/0694
dargestellten Spalte wiedergegeben. Auch andere Anzeiger können
vorhanden sein, für die bis zu drei Leitungen in Figur 8 dargestellt sind, üblicherweise stehen in jedem Speicherplatz
wenigstens 8 Bits zur Verfügung, so daß der vorhandene Speicherraum die Anfügung weitere Parameter zuläßt.
Jeder dieser Speicherplätze wird mit Hilfe einer Eingangsadresse bestehend aus 5 Bits adressiert. Hiervon werden 3
(ALU 0-2) für die höchstwertigen Bits vom Ausgang des binären Rechenwerks 354 geliefert. Eines der anderen Eingangssignale
der Eingangsadresse zeigt die Operationsart an, wobei ein Wert "0" eine Subtraktion meldet. Das andere Eingangssignal gibt
an, ob vom Rechenwerk 354 ein BCD-Binärübertrag geliefert wurde.
Die Bemerkungen in der mittleren Spalte erklären beispielsweise
hinsichtlich der ersten 8 Speicherplätze, daß es sich um eine Addition ohne Übertrag handelt und für die letzten 8 Speicherplätze, daß eine dezimale Subtraktion mit übertrag oder eine
binäre Operation erfolgt ist. Für die Speicherplätze 11 bis 19
ergibt sich kein zulässiges Ausgangssignal. Diese Speicherplätze brauchen deshalb nicht benutzt zu werden. Werden sie benutzt,
so können sie derart gesetzt werden, daß sie alle auf "1" oder "0" stehen. Andere Bemerkungen zeigen beispielsweise hinsichtlich des Speicherplatzes 1 an, daß der Ausgang je nach dem
Binärwert des vom binären Rechenwerk 354 empfangenen geringstwertigen Bits entweder auf "O" oder "1" ist.
030029/0694
Leerseite
Claims (1)
- 2952U72HONEYWELL INFORMATION SYSTEMS INC. 21. Dezember 1979Smith Street 5101679 GeWaItham, Mass. USA HR/umwEinrichtung zur Verarbeitung binär codierter DezimalzahlenPatentansprüche:Einrichtung zur Durchführung artihmetischer Operationen mit binär codierten Dezimalzahlen gekennzeich netdurcha) ein binäres Rechenwerk zur binären arithmetischen Verarbeitung eines ersten und eines zweiten jeweils in binär codierter Dezimalform vorliegenden Operanden zu einem Ergebnis;b) eine erste Vorrichtung zum Feststellen ob vom Rechenwerk eine Addier - oder Subtrahieroperation durchzuführen ist;c) eine zweite Vorrichtung zum Feststellen, ob das Ergebnis einen übertrag erzeugt hat;d) eine auf das Ergebnis sowie die Ausgangssignale der ersten und zweiten Feststellvorrichtungen ansprechende Korrekturlogik, welche aus dem vom Rechenwerk gelieferten Ergebnis als korrigiertes Ergebnis einen Wert in binär codierter Dezimalform ableitetEinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Korrekturlogik mehrere Speicherplätze umfaßt und in jedem ein korrigiertes Ergebnis abgelegt 1st.030029/0694ORIGINAL INSPECTED3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß ferner eine Einrichtung zum Koppeln des Ergebnisses sowie der Ausgangssignale der ersten und zweiten Feststellvorrichtungen an den Adressenspeicherplatz der Korrekturlogik vorgesehen ist.4. Einrichtung nach Anspruch 3, mit einer Adressiereinrichtung für die Speicherplätze, wobei in jedem Speicherplatz ein vorgegebenes korrigiertes Ergebnis abgelegt ist, ge kennzeichnet durch eine auf die Adressiereinrichtung ansprechende Abrufeinrichtung für den Inhalt des jeweils adressierten Speicherplatzes, wobei das im adressierten Speicherplatz befindliche vorgegebene korrigierte Ergebnis einen Wert in binär codierter Dezimalform enthält.5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß nur ein Teil des vom Rechenwerk erzeugten Ergebnisses zum Adressieren des Speichers verwendet wird.6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß das vom Rechenwerk erzeugte Ergebnis vier Informationsbits umfaßt, von den, eines das geringstwertige ist und daß die Koppelvorrichtung jedes der vier Bits mit Ausnahme des geringstwertigen ankoppelt.7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet , daß das geringstwertige Bit des Rechenwerkergebnisses unmittelbar zur Erzeugung des korrigierten Ergebnisses dient.8. Einrichtung nach einem der Ansprüche 3-7, dadurch gekennzeichnet, daß die Speicherplätze weitere030029/0694-3-dem korrigierten Ergebnis zugehörige Anzeiger aufnehmen.9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die weiteren Anzeiger einen enthalten, welcher angibt ob das Ergebnis gleich, größer oder kleiner als eine vorgegebene Zahl ist.10. Einrichtung nach einem der Ansprüche 3-9,- gekenn zeichnet durche) eine Vorrrichtung zur Anzeige ob die Einrichtung im Binärbetrieb arbeitet; undf) eine auf die Anzeigevorrichtung ansprechende Baueinheit in der Korrekturlogik, welche ein Ergebnis von der Korrekturlogik liefert.030029/0694
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/000,735 US4245328A (en) | 1979-01-03 | 1979-01-03 | Binary coded decimal correction apparatus for use in an arithmetic unit of a data processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2952072A1 true DE2952072A1 (de) | 1980-07-17 |
DE2952072C2 DE2952072C2 (de) | 1986-09-04 |
Family
ID=21692791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2952072A Expired DE2952072C2 (de) | 1979-01-03 | 1979-12-22 | Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen |
Country Status (7)
Country | Link |
---|---|
US (1) | US4245328A (de) |
JP (1) | JPS5917457B2 (de) |
AU (1) | AU531028B2 (de) |
CA (1) | CA1137229A (de) |
DE (1) | DE2952072C2 (de) |
FR (1) | FR2445983B1 (de) |
GB (1) | GB2039108B (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0044450B1 (de) * | 1980-07-10 | 1985-11-13 | International Computers Limited | Digitale Addierschaltung |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
US4604695A (en) * | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
US4707799A (en) * | 1984-01-30 | 1987-11-17 | Kabushiki Kaisha Toshiba | Bit sliced decimal adding/subtracting unit for multi-digit decimal addition and subtraction |
US5007010A (en) * | 1985-01-31 | 1991-04-09 | Unisys Corp. (Formerly Burroughs Corp.) | Fast BCD/binary adder |
JPS62500474A (ja) * | 1985-01-31 | 1987-02-26 | バロ−ス・コ−ポレ−シヨン | 高速bcd/バイナリ加算器 |
US7477171B2 (en) * | 2007-03-27 | 2009-01-13 | Intel Corporation | Binary-to-BCD conversion |
US8539015B2 (en) * | 2008-08-01 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Performing a binary coded decimal (BCD) calculation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3935438A (en) * | 1973-10-20 | 1976-01-27 | Vereinigte Flugtechnische Werke-Fokker Gmbh. | Decimal adder |
DE2626432A1 (de) * | 1975-06-17 | 1977-01-13 | Ibm | Arithmetische einheit fuer automatische rechengeraete |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL236117A (de) * | 1958-02-14 | |||
GB913605A (en) * | 1959-03-24 | 1962-12-19 | Developments Ltd Comp | Improvements in or relating to electronic calculating apparatus |
JPS549009B1 (de) * | 1971-02-17 | 1979-04-20 | ||
GB1375588A (de) * | 1971-02-22 | 1974-11-27 | ||
US3749899A (en) * | 1972-06-15 | 1973-07-31 | Hewlett Packard Co | Binary/bcd arithmetic logic unit |
US3958112A (en) * | 1975-05-09 | 1976-05-18 | Honeywell Information Systems, Inc. | Current mode binary/bcd arithmetic array |
US4001567A (en) * | 1975-07-21 | 1977-01-04 | National Semiconductor Corporation | Bdc corrected adder |
US4125867A (en) * | 1976-10-27 | 1978-11-14 | Texas Instruments Incorporated | Electronic calculator or microprocessor having a hexadecimal/binary coded decimal arithmetic unit |
JPS5520533A (en) * | 1978-07-28 | 1980-02-14 | Nec Corp | Decimal correction circuit |
-
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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3935438A (en) * | 1973-10-20 | 1976-01-27 | Vereinigte Flugtechnische Werke-Fokker Gmbh. | Decimal adder |
DE2626432A1 (de) * | 1975-06-17 | 1977-01-13 | Ibm | Arithmetische einheit fuer automatische rechengeraete |
Also Published As
Publication number | Publication date |
---|---|
FR2445983B1 (fr) | 1987-03-27 |
GB2039108A (en) | 1980-07-30 |
FR2445983A1 (fr) | 1980-08-01 |
CA1137229A (en) | 1982-12-07 |
DE2952072C2 (de) | 1986-09-04 |
GB2039108B (en) | 1983-09-01 |
US4245328A (en) | 1981-01-13 |
AU531028B2 (en) | 1983-08-04 |
AU5419979A (en) | 1980-07-10 |
JPS5592944A (en) | 1980-07-14 |
JPS5917457B2 (ja) | 1984-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2846495C2 (de) | Zentraleinheit | |
DE3424962C2 (de) | ||
DE2712224C2 (de) | Datenverarbeitungsanlage | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE3686828T2 (de) | Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. | |
DE2311220A1 (de) | Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung | |
DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
DE1162111B (de) | Gleitkomma-Recheneinrichtung | |
DE4334294C1 (de) | Prozessor für Zeichenketten variabler Länge | |
DE2421130C2 (de) | ||
DE2952072C2 (de) | Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen | |
DE2830334C2 (de) | ||
DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE3434777C2 (de) | ||
DE2365778A1 (de) | Rechner | |
DE1955797A1 (de) | Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer | |
DE1549449A1 (de) | Einrichtung zur Verarbeitung von Gleitkommazahlen | |
DE2846520C2 (de) | ||
DE3485786T2 (de) | Inter-element-verarbeitungsgeraet in einem hochleistungsfaehigen parallelen vektorverarbeitungsgeraet. | |
DE2846521C2 (de) | ||
DE3000107C2 (de) | ||
DE1424746A1 (de) | Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 7/50 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
8339 | Ceased/non-payment of the annual fee |