-
Die Erfindung betrifft eine Addier-Subtrahier-Schaltung für Dezimalzahlen,
insbesondere für binär dezimalkodierte Dezimalzahlen in Byte-Darstellung mit serieller
Verarbeitung der Dezimalziffernstellen und paralleler Verarbeitung der Bitstellen
in einer Dezimalstelle in mehreren Takten mit anschließender Dezimalkorrektur und
Bildung eines Paritätsbits für das aus einem neugebildeten Endsummenhalbbyte und
einem unveränderten Halbbyte neuentstandene Ergebnisbyte: Es ist bekannt, daß sich
der Aufwand; der zur Realisierung einer Schaltfunktion nötig ist, oft verringern
läßt, wenn man die Anzahl hintereinandergeschalteter Stufen vergrößert. Beispielsweise
gibt es Paralleladdierwerke, die in einer Addierstufe Summe und Übertrag für jede
Binärstelle getrennt ermitteln und daraus in weiteren Stufen den Übertrag abbauen.
Gerade der Übertrag bedingt in einem Eintakt-Addierwerk ein kompliziertes und logisches
Netzwerk, da er von sämtlichen Binärstellen beider Summanden abhängt. Die Mehrtaktaddition
besitzt den Nachteil der längeren Operationsdauer. Wenn zur Ermittlung des Verknüpfungsergebnisses
zwei Taktzeiten nötig sind, dann können in bekannten Rechenwerken zwei Operationen
einander nur in Abstand von zwei Taktzeiten folgen. Um die ungünstige Zeitbilanz
bekannter mehrstufiger bzw. mehrtaktiger Addier-Subtrahier-Werke zu verbessern,
wird in der deutschen Patentschrift 1184125 ein Rechenwerk vorgeschlagen, in dem
in- zwei Stufen das Verknüpfungsergebnis nach einer mit Hilfe von Steuerleitungen
auswahlbaren Rechen-Werksfunktion gebildet wird, dessen Zeitbilanz jedoch im wesentlichen
die Merkmale eines einstufigen Rechenwerkes aufweist. Das wird erreicht, in dem
die Steuerleitungen nur die Funktion der zweiten Schaltstufe beeinflussen, während
in der ersten Schaltstufe Hilfsgrößen erzeugt werden, aus denen sich sämtliche verfügbaren
Funktionen der zweiten Schaltstufe ableiten lassen. Die Hilfsgröße wird dann jeweils
abhängig von einer Teilgruppe von Binärstellen mit der Eingangsgröße gebildet, wobei
eine Teilgruppe vorzugsweise aus ein oder zwei Binärstellen besteht. Eine solche
Rechenwerkstruktur erlaubt es zwar, daß Operandengruppen einander mit nur einer
Taktzeit Abstand folgen können, sie erlaubt es jedoch nicht, daß die Bitstellen
der Operanden parallel zur gleichzeitigen Bildung von Halbsummen und Endüberträgen
in einer Dezimalstelle verknüpft werden. Weiterhin verwendet eine Recheneinrichtung
gemäß der deutschen Patentschrift 1084 497 ein logisches Schaltelement, das die
Unvereinbarkeit unter einer größeren Anzahl von Binärsignalen ausdrücken kann. Die
Recheneinheit gemäß dieser Patentschrift ist dadurch charakterisiert, daß die Eingangssignale
und die aus dem logischen Schaltelement stammenden Signale in einer größeren Anzahl
von Binärsignalspeichern gespeichert und über mit Verknüpfungsgliedern versehene
Leitungswege selektiv aus den Speichern durch das logische Schaltelement geschleust
werden, wobei eine Auswahlschaltung zum aufeinanderfolgenden Öffnen und Schließen
ausgewählter Kombinationen dieser Wege vorgesehen ist, so däß mit den Eingangssignalen
unterschiedlich logische Verknüpfungen durchgeführt werden können. Die logischen
Verknüpfungen in der Recheneinheit lassen sich dabei durch eine geeignete Auswahl
von Operationen eines einzigen logischen Schaltelements darstellen. Die Operationen
werden dabei durch ein. geeignetes Unterprogranun gesteuert, das die Eingabe und
Abnahme von Werten aus einer Serie von Ziffernspeichern regelt, die mit den Eingängen
und dem Ausgang des Schaltelements verbunden sind. Außerdem ist in der belgischen
Patentschrift 662153 eine arithmetisch-logische Einheit beschrieben, die dadurch
charakterisiert ist, daß zur wählweisen Ausführung arithmetischer und logischer
Operationen wenigstens ein Teil der Und-; Oder-Schaltungen und Inverter bei mehr
als einer der Operationen in Betrieb ist und daß ein Teil der Und-Schaltungen je
nach der Art der auszuführenden Operation durch die Zuführung und Kombinationen
von Steuersignalen an jeweils einem. ihrer Eingänge betriebsbereit gemacht wird.
Obwohl sich dieses Rechenwerk insbesondere zur Verarbeitung von Dezimalziffern in
Byte-Darstellung eignet, ist diese Schaltungsanordnung für die Verwendung in preisgünstigen
Rechengeräten aus Aufwandsgründen zwar geeignet, jedoch ist der Zeitbedarf für eine
Rechenoperation zu groß. Außerdem besteht ein wesentlicher Nachteil der beschriebenen
Schaltungen darin, daß bei der Ausführung von logischen und arithmetischen Operationen
Fehler auftreten können, die nicht erkannt werden und somit zum fehlerhaften Betrieb
von Datenverarbeitungsanlagen führen. Um diesen Nachteil zu beseitigen, wurde auch
schon der Vorschlag gemacht, sogenannte fehlerkorrigierende bzw. fehlererkennende
Codes zu verwenden oder in Schaltkreise, die arithmetische bzw. logische Grundoperationen
ausführen, sogenanute redundante Schaltkreise einzufügen.
-
Die vorliegende Erfindung bezieht sich auf eine Verbesserung solcher
Schaltungen, die logische und arithmetische Grundoperationen mit durch Bytes dargestellte
Informationen ausführen und mit redundanten Schaltkreisen zur Verringerung der Fehlerhäufigkeit
ausgestattet sind.
-
Der Erfindung liegt deshalb die Aufgabe zugrunde, eine Schaltungsanordnung
mit redundanten Schaltkreisen zur Verarbeitung von Bytes mit zugehörigem Paritätsbit
zu schaffen, die jedoch nur zur Verknüpfung von Halbbytes ausgestattet ist; wobei
die redundanten Schaltkreise zur Berechnung der Paritätsbits herangezogen werden
und wobei trotz der Serienverarbeitung der Ziffern die Summen- und Übertragungssignale
gleichzeitig erzeugt werden.
-
Die erfindungsgemäße Lösung der Aufgabe besteht darin, daß die Ziffern
darstellenden Halbbytes der in zwei Registern stehenden Bytes nach der Paritätsprüfung
ausgewählt und getrennt werden, wobei die zu verknüpfenden Halbbytes gleichzeitig
einem seriell arbeitenden Halbaddierer, der bei Summen- oder Differenzbildung die
Halbsummen bzw. Differenzen und Überträge parallel bildet und einem gleichartig
aufgebauten zweiten redundanten Halbaddierer zugeführt werden, daß die Aussage des
redundanten Halbaddierers in einem nachgeschalteten weiteren Netzwerk mit dem unverarbeiteten
Halbbyte zum Paritätsbit für das neu entstehende Byte verknüpft wird und daß gleichzeitig
die Aussagen des anderen seriellen Halbaddierers in einem nachgeschalteten Addierwerk
zum Endergebnis, dem Ergebnis-Halbbyte, verknüpft werden, das zusammen mit dem nichtverarbeiteten
Halbbyte und dem neuen Paritätsbit in bekannter Weise zum neuen Byte in einer nachgeschalteten
speichernden Schaltung
verknüpft wird, deren Ausgang finit dem
Eingang des einen Registers zur Weiterverarbeitung des gebildeten Bytes verbunden
ist. Diese Lösung weist den Vorteil auf, daß die Operanden nicht mit dem; Komplementwert
vorliegen müssen, und daß trotzdem eine sehr hohe Fehlergenauigkeit beim arithmetischen
oder logischen Verknüpfen, erreicht wird. Das Vorhandensein und die Bildung des
Komplementwertes ist technisch aufwendig; hingegen ist die parallele Bildung von
Paritätsbits und Summenhalb-Bytes in zwei fast gleichartig aufgebauten Serienhalbaddierern
technisch einfach realisierbar und schnell. Auch die Fehlergenauigkeit liegt 4öher,
da die Bildung der Paritätsbits und Summenbits in getrennten Netzwerken während
des Verknüpfungsvorganges erfolgt.
-
Weiterbildungen der Erfindung sind in den; Unteransprüchen gekennzeichnet.
-Ausführungsbeispiele der Eründung werden nachstehend an Hand der F i g. 1 bis 9
näher erläutert. Es bedeutet F i g. 1 ein Blockschaltbild eines Ausführungsbeispiels,
F i g. 2 eine logische Verknüpfungsschaltung zur Erzeugung von Halbsummen, F i g.
3, 4, 5 und 6 Schaltungsanordnungen zur Erzeugung von Überträgen, F i g: 7 eine
Schaltungsanordnung zur Verknüpfung der Überträge und der Halbsummen zur.. Endergebnis,
F i g. 8 eine Schaltungsanordnung zur Erzeugung des Paritätsbits aus den Aussagen
der- redundanten Verknüpfungsnetzwerke, F i g. 9 ein Verknüpfungsnetzwerk zur Bildung
des neuen Ergebnis-Bytes.
-
Die in F i g. 1 gezeigte Anordnung führt Dezimaloperationen ziffernweise
oder iterative hexadezimale Operationen aus (eine I-Texadezirnalzifler besteht aus
vier Bits mit Dezimalwerten von 0 bis 15). Irr einem ersten Umlauf kann dabei ein
Byte aus dem B-Register und ein zweites Byte aus dem A=Register ausgewählt werden,
und zwar wird eine ,Ziffer des A-Registers aus dem A-Register-Byte ausgewählt und
den in. F i g. 2 bis 6 dargestellten, logischen Verknüpfungs- und Übertragungsschaltungen
zugeführt. Ebenso wird ein Byte aus dem B-Register ausgewählt, und die Hälfte des
Bytes wird als B-Eingangsziffer denselben Schaltungen wie die A-Ziffer zugeführt;
die andere Hälfte wird als C-Ziffer den Paritätsgeneratorschaltungen und den Geradeaus-Überkreuz-Schaltungen
(F i g: B und 9) zugeleitet. Sowohl beim A- als auch beim B-Register findet eine
Paritätsprüfung am Ausgang mittels einer Paritäts-Prüfschaltung 20 statt, und jedes
dieser Register sendet ein ausgewähltes Byte zu einer Geradeausüberkreuz-Einrichtung
22 bzw, 24. Es kann also jede Hälfte des ausgewählten A-Register-Bytes und jede
Hälfte des ausgewählten B-Register-Bytes den arithmetischen und logischen Schalturigen
zugeführt werden, während die andere Hälfte des ausgewählten B-Register-Bytes einfach
mitgeführt wird, um das auf Parität geprüfte Byte zu ergänzen; wenn das Resultat
der ausgewählten, Ziffern (Byte-Hälften) errechnet worden ist. Das Resultatbyte;
das am Ausgang der in F' i g. 9 gezeigten Geradeaus-überkreuz-Schaltung erscheint,
ist vollständig -einschließlich eines neuen Paritätsbits, welches Änderungen in
der Hälfte des ausgewählten B-Register-Bytes als Ergebnis arithmetischer oder logischer
Operationen aufweist. Diese' Byte wird über eine Eingabetorsehal= tung 26 wieder
in das B-Register zurückübertragen.. Die Schaltung von F i g. 1, führt also die
allgemeine Operation aus, indem sie A mit B verknüpft und. das Resultat in das B-Registex
einführt, Die in F i g. 1 gezeigte Schaltung ist imstande, die niedrigstellige Hälfte
des A-Register-Bytes zu nehmen, indem es die Geradeaus-überkreuz-Schaltung 24 veranläßta
das Byte geradeaus (unverändert weiterzuleiten, wie es bezüglich der A-Ziffer in
F i g. 1 dargestellt ist, und im folgenden Umlauf die Ziffern innerhalb des Bytes
umzustellen, wie es bezüglich der Ziffern C und B in F i g. 1 gezeigt ist; dasselbe
trifft auf den Ausgang des B-Registers zu.
-
Aus dem Blockdiagramm des Ausführungsbeispiels: der Erfindung unten
in F i g. 1 geht hervor, daß die arithmetische und logische Schaltung aus zwei Hälften
besteht; die eine Hälfte umfaßt den logischen Verknüpfungsgenerator und den Übertragungsgenerator,
der Signale zur Endaddierschaltung mit Dezimalkorrektur schickt, und die andere
Hälfte erzeugt redundante logische und -Übertragungssignale zur Weiterleitung an
den Päritätsgenerator. Die Erzeugung dieser zusätzlichen oder redundanten logischen
und übertragsfunktionen ist nicht unbedingt nötig, aber nützlich zur Erzeugung eines
selbstständigen Paritätsbits, denn eine Prüfung der Parität am Ausgang der arithmetischen
und logischen Schaltungen zeigt; ob irgendwo eine Schaltung versagt hat. Falls man
bei einem gegebenen Rechner auf die Prüfung der Schaltungsanordnung verzichten will;
kann die Paritätsbildung auch mit den gleichen logischen übertragungssehaltungen
erreicht werden, welche Eingangssignale zur Endaddierschaltung senden.
-
Entsprechend der Schaltung des logischen Verknüpfungsgenerators
-in F i g. 2 wird eine Oder-Schaltung 305 durch eine beliebige von vier Und-Schaltungen
301 bis 304 betätigt und erzeugt ein logisches Bit für Bit 3; ebenso sind Und-Schaltungen
und Oder-Schaltungen für jedes der Bits 2, 1 und 0 vorgesehen, so daß jedes der
entsprechenden Paare von A- und B-Bits logisch verknüpft werden kann. Die Bestimmung
der logischen Funktion, die am Ausgang der Oder--Schaltung 305 (und der eutsprechenden
Oder-Schaltungen für die anderen Bits) erzeugt werden soll; erfolgt durch Steuersignale
aus dem übrigen Teil des Datenverarbeitungssystenms über Leitungen LCJI bis LC4.
Bei Erregung der Leitung LC
1 weist die Oder-Schaltung 305 nur dann ein Ausgangssignal
auf, wenn das Bit 3 sowohl der, Aals auch der B-Ziffer eine Null ist;: bei Erregung
der Steuerleitung LC2 erzeugt die Oder-Schaltung 305 ein Ausgangssignal, falls das
Bit 3 der A-Ziffer eine Null und das Bit 3 der B-Ziffer eine Eins ist; bei Erregung
der Steuerleitung LC3 leitet eine Und-Schaltung 303 ein Signal durch die Oder.-Sehaltung
305 weiter; wenn A 3 eine Eins und B 3 eine Null ist; und die Und-Schaltung 304
bewirkt die Erzeugung eines Ausgangssignals, wenn, beide Ziffern eine Eins in der
Bitstelle 3 aufweisen und das Steuersignal LC4 vorliegt. Es können also die Aussagen
der vier Kombinationen 00, 01, 10 und 11 gebildet werden. Außerdem ist es möglich,
die Effekte der verschiedenen Und-Schaltungen 301 bis 304 (und der entsprechenden
Und-Schaltungen für die anderen Bits) so zu.kombinieren, daß man mehr als die darin
vorgesehenen
vier Funktionen erhält; gemäß der nachstehenden Tabelle sind sechzehn verschiedene
Kombinationen möglich, In der Tabelle bedeutet ein Strich über einem Buchstaben
das logische »Nicht«. #I ist also gleich »nicht A« und stellt das Komplement von
A dar oder eine Null in der A-Position.
Aufstellung logischer Verknüpfungen. |
Ergebnis |
für das |
LC-Signale Verknüpfung Beispiel: |
A = 1010 |
B = 1001 |
1234 |
0000 lauter Nullen 0000 |
(ohne Beachtung) |
0001 A B 1000 |
0010 A $ 0010 |
0011 A B (ohne Beachtung) 1010 |
0100 Ä B 0001 |
0101 B A (ohne Beachtung) 1001 |
0110 A V B (Exklusives ODER) 0011 |
(A B) |
0111 A V B 1011 |
1000 Ä B 0100 |
1001 A = B (Identität) (;1 V B) 1100 |
1010 BA (ohne Beachtung) - 0110 |
1011 A V D 1110 |
1100 ÄB (ohne Beachtung) 0101 |
1101 5IV B 1101 |
1110 Ä V li 0111 |
1111 lauter Einsen 1111 |
(ohne Bedeutung) |
Die LC-Signale steuern also alle vier Bitstellen sowohl des logischen Verknüpfungsgenerators
als auch des redundanten logischen Verknüpfungsgenerators (der unten in F i g. 2
gezeigt ist). Die unten in F i g. 2 angedeuteten redundanten logischen Bits werden
ebenso erzeugt und dienen lediglich dem Zweck, durch selbständig erzeugte Paritätsbits
eine Prüfung der Operation der gesamten Schaltungsanordnung zu ermöglichen; diese
Funktion kann nach Belieben weggelassen werden, indem man die oben in F i g. 2 gezeigten
logischen Bits für die Bildung des Paritätsbits in F i g. 8 verwendet. Die logischen
Schaltungen bilden Halbsummen während der Rechenoperationen, und zwar wird eine
LC-Steuerkonfiguration 0110 ausgewählt, um die Ausführung der exklusiven Oder-Funktion
zu veranlassen, und LC =1001 wählt Ä V
B für Komplementaddieroperationen
aus.
-
Übertragsvorausschauschältungen sind in F i g. 3 bis 6 dargestellt.
Ein übertrag aus einem Umlauf wird darin gespeichert; um bei der Behandlung der
den - arithmetischen und logischen Schaltungen in einem späteren Umlauf zugeführten
Ziffern verwendet zu werden.
-
Gemäß F i g. 3 werden die Eingangsbits A und B, die Ausgangssignale
der logischen Schaltung von F i g. 2 und Steuersignale, welche angegeben, ob eine
reguläre oder komplementäre Addition ausgeführt werden soll, mehreren Und-Schaltungen
401 bis 403, 405 bis 409 zugeführt. Diese Und-Schaltungen veranlassen zugeordnete
Oder-Schaltungen 404, 410 zur Erzeugung von Signalen, welche Überträge aus einem
Bit zum nächsten Bit darstellen, entsprechend der Konfiguration von Eingangsbits
in den niedrigen Stellen. Zum Beispiel erfolgt ein übertrag von Bit 3 zu Bit 2 während
einer regulären Addieroperation, falls in beiden Ziffern A und B das Bit 3 eine
Eins ist, und zwar wird dies durch die Und-Schaltung 402 bewirkt. Ebenso veranlaßt
die Und-Schaltung 403 einen übertrag zum Bit 2 während einer Komplementaddition
(Subtraktion A von B), wenn A 3 eine Null und B 3 eine Eins ist. Falls bei der Addition
eine Halbsumme für Bit 3 vorliegt, wie es durch das logische Bit 3 angedeutet wird;
erfolgt ein übertrag zum Bit 2, falls ein gespeicherter übertrag als Ergebnis der
Verarbeitung eines früheren Ziffernpaares in einem früheren Umlauf vorliegt. Mit
anderen Worten: ein übertrag zum Bit 3 wird weitergeleitet, falls Bit 3 eine Halbsumme
aufweist, oder falls beide Bits in Bit 3 vorhanden sind; dies wird durch eine Und-Schaltung
401 veranlaßt. Den Und-Schaltungen 401, 402 und 403 entsprechen die Und-Schaltungen
405, 406 und 408 in bezug auf Bit 1. Der einzige Unterschied bei diesen Und-Schaltungen
besteht darin, daß die Und-Schaltung 405 auf das logische Bit 2 und das logische
Bit 3 sowie den gespeicherten Übertrag anspricht. Außerdem spricht die Und-Schaltung
407 auf eine Halbsumme in Bit 2 an, wenn A 3 und B 3 beide Einsen sind usw.
-
F i g. 4 zeigt eine ähnliche Gruppe von Und-Schaltungen, die eine
Oder-Schaltung so betätigen, --daß diese ein einen übertrag in das Bit 0 (das höchststellige
Bit der Zier) darstellendes Signal erzeugt, wenn verschiedene Bedingungen bestehen.
Während einer regulären Addition erzeugt eine Und-Schaltung beim Vorliegen von
A 1 und B 1 das Signal; falls eine Halbsumme in Bit 1 vorliegt und
die Bits A 2 und B3 beide vorhanden sind, wird ein übertrag aus Bit 2 durch Bit
1 hindurch weitergeleitet und bildet so einen übertrag in das Bit 0, wie es eine
Und-Schaltung 412 vorsieht. Ebenso wird bei Vorliegen einer Halbsumme in beiden
Bits 1 und 2 und bei gleichzeitigem Vorliegen der Bits A 3 und B 3 durch eine Und-Schaltung
413 ein Übertrag in das Bit 0 veranlaßt. Entsprechende Resultate betreffen Komplementadditionen,
wobei die Und-Schaltungen 414 bis 416 den Und-Schaltungen 411 bis 413 entsprechen.
abgesehen .davon, daß das A-Bit in jedem Falle fehlen muß, da eine Komplementaddition
eine Operation »B minus A« ist. Außerdem bewirkt eine Und-Schaltung 417 einen Übertrag
in das Bit 0, falls ein übertrag in die Ziffer aus dem gespeicherten Übertrag und
eine Halbsumme in jedem der drei niedrigstelligen Bits der Ziffer vorliegen.
-
Die in F i g. 3 und 4 gezeigten Anordnungen erzeugen also Überträge
in die verschiedenen Bits der Ziffer, und zwar wird jeder übertrag bei der entsprechenden
Kombination aus einem gespeicherten Übertrag und den niedrigstelligen Bits der Zier
gebildet.
-
F i g. 5 zeigt in einfacher Weise, daß bei Verwendung einer redundanten
Logikfür die Bildung eines selbständigen Paritätsbits alle in F i g. 3 und 4 gezeigten
Schaltungen
mehrfach vorhanden sein müssen, damit redundante Überträge erzeugt werden, die bei
der Päritätsbildungsfunktion brauchbar sind.
-
F i g: 6 zeigt die Schaltungsanordnung, welche erkennt, wenn ein Übertrag
aus der Ziffer vorliegt; dieser Übertrag wird dann im folgenden Umlauf unter entsprechenden
Bedingungen verwendet. Gemäß F i g: 6 wird ein Übertrag aus Bit 0 durch eine Und-Schaltung
503 während einer regulären Addition bewirkt, falls die Ziffern A 0 und
B 0 beide Eins sind; dies ist .ein normaler Übertrag aus Bit 0. Ebenso bewirkt
die Und-Schaltung 502 einen Übertrag bei einer Komplementaddition, wenn B 0 .eine
Eins und A 0 eine Null ist. Falls die Schaltung von F i g. 4. einen Übertrag in
das Bit 0 veranlaßt und falls die Schaltung von F i g. 2 eine Halbsumme für Bit
0 erzeugt, veranlaßt eine Und-Schaltung 501 die Oder-Schaltung 504, einen Übertrag
aus Bit O zu erzeugen. Die Schaltungen von F i g. 3 bis 6 sprechen also in üblicher
Weise gemäß den bekannten Prinzipien der binären Arithmetik an; um Überträge für
die Ziffer zu erzeugen. Die erzeugten Überträge werden in bistabilen Schaltungsanordnungen
bis zur Verknüpfung zur Endsumme zwischengespeichert. Die Erzeugung der redundanten
Verknüpfungsgrößen wird genauso, wie soeben beschrieben, durchgeführt.
-
Die Endsumme wird in einer Endaddierstufe (F i g. 7) gebildet. Dort
werden die logischen Ausgangsbits (die gleich den Halbsummen einer Addier-Operation
sind) und Überträge in Bits hinein, welche aus dem gespeicherten Übertrag für :das
niedrigstellige Bit und aus einem Übertrag in Bitsignale, die in F i g. 3 und 4
für die drei hochstelligen Bits erzeugt werden, bestehen, in exklusiver Oder-Form
verknüpft, so daß Endsummen gemäß den bekannten Regeln der binären Addition entstehen.
Wenn also eine Halbsumme, für Bit 3aber kein gespeicherter Übertrag vorliegt, leitet
eine Und-Schaltung 601 ein Signal, durch eine Oder-Schaltung 603, die daraufhin
ein »binäre Summe 3«-Signal erzeugt. Wenn dagegen keine Halbsumme für Bit 3; aber
ein gespeicherter Übertrag vorhanden ist, veränlaßt die Und-Schaltung 602: die Oder-Schaltung
603, ein Signal »binäre Summe 3« zu erzeugen. Unter jeder anderen Bedingung, d.
h. wenn, entweder beide oder keins der Signale vorliegen, kann keine der Und-Schaltungen
601, 602 tätig werden, um ein Summensignal zu erzeugen. Die Schaltungen 601 bis
603 bilden. also eine exklusive Oder-Schaltung zur Bildung der binären Summe. Die
logischen Eingangsbits,, die F i g. 7 zugeführt werden, bilden die Halbsumme, denn
im . Addierer sind die logischen. Verknüpfungsglieder (wobei die LC-Signale für
die Exklusiv-Oder-Schaltung so angeordnet sind, daß Halbsummen gebildet werden)
zusammen mit den Übertragsschaltungen, deren Ausgangssignale in F i ,g. 7 in der
dargestellten. Form kombiniert werden; verwendet:.
-
Bei der dezimalen Addition kann es sein; daß' die aus der Endaddierstufe
kommende Summe korrigiert werden muß; wie es in der Technik bekannt ist. Es gibt
viele bekannte Möglichkeiten zur Ausführung der Dezimalkorrektur; und deshalb wird
hier nicht näher darauf eingegangen: Änderungen in der Bitstruktur, die durch die
;Rechenoperationen im Addierer bedingt sind, machen `die logische Paritätsvoraussage
schwierig. Nicht nur ;Überträge, die innerhalb der zu addierenden Bytes Erzeugt
werden; sondern, auch Überträge aus einer früheren Addition können radikale Änderungen
in der Zahl der Bits in der Summe zur Folge haben: Daher müssen Überträge bei der
Paritätsvoraussage berücksichtigt werden. Die Geschwindigkeitserfordernisse sind
jedoch so hoch, daß- die Paritätsvoraussage logisch parallel und fast zur gleichen
Zeit wie die Summe erzeugt werden muß. Außerdem sollten die Eingangssignale für
die Paritätsvoraussage durch eine andere Schaltung als diejenige erzeugt werden,
die die Resultate. an sich erzeugt, da ein fehlerhaftes Resultat zu einer ebenfalls
falschen (und daher unbrauchbaren) Parität führt. Aus diesen Gründen sollte die
Paritätsvoraussageschaltung ihre eigenen logischen Verknüpfungs- und Übertragserzeügungsschaltungen
aufweisen, wie sie oben beschrieben sind, wobei es sich um Duplikate der logischen
und übertragserzeugungsschaltungen für den eigentlichen Addierer handelt. Die Bereitstellung
doppelter Schaltungen ist erforderlich, wenn die Arbeit der Schaltungen geprüft
werden soll, denn wenn der Paritätsteil die logischen Verknüpfungs- und Übertragserzeugungsschaltungen
des logischen Teils (des Addierers) mitbenutzt, könnte ein Fehler sich selbst kompensieren
und unbeanstandet durch die Paritätsprüfungen hindurchgehen.
-
Die Paritätsvoraussage wird erreicht durch logische Prozesse aus entsprechenden
Kombinationen von A-und B-Eingangswerten, logisch verknüpften Ausgangswerten und
redundanter Übertragslogik: In F i g. 8 erzeugt eine pyramidenförmige Paritätsschaltungsanordnung
den eigentlichen neuen Paritätswert, der das Resultat zurück zum B-Register begleiten
soll. Das B-Register dient zum Speichern des aus neun Bits bestehenden neuen Resultats.
Sie bestehen aus vier Resultatbits, den vier unbenutzten C-Bits und dem neuen (P-Bit)
Paritätsbit. Die weitere Verarbeitung des neuen Resultats hängt vom restlichen Teil
des Systems (F i g. 1) und der jeweiligen Operation ab.
-
Nur in Rechenoperationen ist die Ausgangsparität gleich der Summe
der Parität eines Eingangsbytes; die in exklusiver Oder-Form mif der Parität des
anderen Eingangsbytes verknüpft ist und die in exklusiver Oder-Form mit der Parität
der Überträge verknüpft ist, welche tatsächlich in einer die beiden Eingangsbytes
betreffenden Rechenoperation auftreten. Bei logischen Operationen wird ein anderer
Algorithmus verwendet, und zwar wird der Ausgangswert der redundanten logischen
Verknüpfungsschaltung (F i g. 2 unten) verwendet, um die Parität dieser Ausgangswerte
in einer Haupt-Exklusiv-Oder-Schaltung zu erzeugen: Eine besondere logische Verknüpfungsschaltung
als die zur Bildung der tatsächlichen Datenantwort verwendete ist nötig, um redundante
Schaltungen zu haben; falls eine logische Verknüpfungsschaltung ausfällt, darf die
Parität nicht mit den Resultaten übereinstimmen. Die Paritätsübertragsschaltungen
sind redundant aus demselben Grunde, da die logische Verknüpfungsschaltung eine
redundante Schaltung ist.
-
Aus F i g: 5 können während einer logischen Operation keine Ausgangssignale
vorliegen, weil aus der letzten Addition kein Übertrag übriggeblieben ist (da die
Maschine rückgestellt worden ist). Außerdem ist die Parität der Eingangsbits tatsächlich
gleich dem Ausgangswert der logischen Verknüpfungsschaltung im Laufe von Rechenoperationen.
Daher können die logischen Bits, die übertragsfaktoren (einschließlich
der
Dezimalkorrektur und der unbenutzten vier C-Bits) alle zusammen in einer großen
Exklusiv-Oder-Pyramidenschaltung durchgeschaltet werden. Dies wird in F i g. 8 dargestellt.
-
Während der Addition kann die endgültige Parität durch die reguläre
oder komplementäre Beschaffenheit der Byteverarbeitungsoperation beeinflußt werden.
Die Schaltung nach F i g. 8 spricht auf ein Signal »Parität umkehren« an, das einen
Umwandlungsfaktor für eine von zwei: speziellen Paritätssituationen einführt: dezimale
reguläre 12 und dezimale komplementäre 1.0. Die BCD-Konfiguration 8, 4, -2 ist gleich
der Dezimalzahl 12 und hat in einer dezimalen regulären Operation eine dezimale
und einen Ausgangsübertrag zum Resultat und verändert die Parität. Die Kombination
8, 4, 2 (dezimale 10 oder 11) in einer Dezimalkomplementöperation verändert ebenfalls
die Parität.
-
Eine umgekehrte Paritätsfunktion wird durch eine Oder-Schaltung auf
Veranlassung einer von zwei Und-Schaltungen erzeugt, die auf die reguläre Dezimalzahl
12 bzw. die Dezimalkomplementzahl 10 ansprechen. Die Parität aller Eingangsbits,
ein aufgesparter übertrag und die Paritätsumkehrfunktionen werden also alle in einer
Exklusiv-Oder-Pyramidenschaltung, wie sie F i g. 8 zeigt, berücksichtigt bei der
Erzeugung eines neuen Paritätsbits, das die Parität der tatsächlichen Operationen
wiederspiegelt. Dieses Paritätsbit wird über die Geradeaus-überkreuz-Schaltung unverändert
weitergeleitet, um in dem paritätsgeprüften Byte zur Verfügung zu stehen, welches
aus der Geradeaus-überkreuz-Schaltung zum B-Register als vollständiges Byte mit
richtiger Parität übertragen wird. Falls zwei Ziffern eines auf Parität geprüften
Bytes des B-Registers tatsächlich verarbeitet werden (zuerst die rechte und dann
die linke Ziffer oder umgekehrt), wird das Paritätsbit in einem gegebenen auf Parität
geprüften Byte.zweimal verändert, und zwar je einmal in zwei aufeinanderfolgenden
Schritten. Weiter könnte bei den oben aufgeführten Beispielen 1 und 2, falls eine
Rekomplementierung nötig ist, das Paritätsbit zwei weitere Male in einem beliebigen
Byte verändert werden. Ein Paritätsbit könnte also in einer normalen Rechenoperation
bis zu viermal verändert werden oder in einer logischen Operation bis zu zweimal.
-
Wie schon beschrieben, wird erfindungsgemäß eine vier Bits verarbeitende
arithmetische und logische Einheit für einen mehr Bits umfassenden Datenfluß verfügbar
gemacht; und zwar verwendet sie in dem hier gegebenen Beispiel ein aus achtBits
bestehendes, auf Parität geprüftes Byte. Um nun ein Feld (z. B. die gesamte Einstellung
des B-Registers) in einer arithmetischen oder logischen Operation mit veränderlicher
Feldlänge zu durchlaufen, ist es nötig, jede der Ziffern des B-Registers nacheinander
den arithmetischen und logischen Schaltungen zuzuführen. Um z. B. von rechts nach
links aufeinanderfolgende Ziffern des B-Registers zu durchlaufen, um Rechenoperationen
von der niedrigsten bis zur höchsten Stelle auszuführen, ist es nötig, das am weitesten
rechts stehende Byte des B-Registers zu entnehmen und die rechte Ziffer darin als
B-Ziffer zu verarbeiten und dann das gesamte Byte mit korrigierter Parität erneut
im B-Register zu speichern; darauf folgt dann eine zweite Auswahl des am weitesten
rechts stehenden Bytes, wobei aber dessen linke Ziffer als B-Ziffer genommen und
einer Rechenoperation unterzogen und dann das ganze Byte mit einem neuen Paritätsbit
wieder im niedrigstelligen Byte des B-Registers gespeichert wird. Dieser Vorgang
wird viermal wiederholt für insgesamt acht Ziffern in einer gegebenen Operation,
an der das ganze B-Register beteiligt ist. Um aus einem Byte zuerst die rechte und
.dann die linke Ziffer zu nehmen, ist es nötig, die Stellungen dieser Ziffern zu
vertauschen, und zwar sowohl bei der Entnahme der Ziffer aus dem B-Register und
ihrer Weiterleitung zur ALU-Einheit als auch beim Durchgang des Ausgangswertes der
ALU-Einheit durch die Geradeaus-überkreuz-Schaltung zur Rückübertragung in das B-Register.
Die in F i g. 1 unten gezeigte Geradeaus-überkreuz-Schaltung ist ein Beispiel für
eine Datenfiußsteuerung, die imstande ist, diese Funktion auszuführen, sie ist in
F i g. 9 im einzelnen veranschaulicht. Die Bits 0 bis 3 der C-Ziffer (das unbenutzte
halbe Byte in F i g. 1) und des ALU-Aus-Weites werden den Oder-Schaltungen zugeführt;
die sich auf die Bits 0 bis 7 eines :ganzen Bytes beziehen. Falls das Resultat der
arithmetischen und logischen Verknüpfung dem B-Register als die niedrigstellige
(oder rechte) Ziffer des Bytes zugeführt werden soll, -würde ein »Geradeaus«-Signal
von den Steuerungen in F i g. 1 geliefert und dadurch eine Und-Schaltung 1310 veranlaßt,
ein ALU-Aus-Bit :durch die Oder-Schaltung 1303 zu leiten, das so ein Bit 7 eines
paritätsgeprüften Bytes bilden würde, welches zum B-Register zurückübertragen werden
muß. Wenn dagegen der Ausgangswert der ALU-Einheit als hochstellige (oder linke)
Ziffer eines Bytes im B-Register zurückzuübertragen ist, liefern die Steuerungen
von F i g. 1 ein »»Überkreuz«-Signal und veranlassen dadurch eine Und-Schaltung
1302, das Bit 3 der unbenutzten C-Ziffer durch die Oder-Schaltung 1303 als Bit 7
des zum B-Register zurückzuübertragenden paritätsgeprüften Bytes zu leiten. Ebenso
werden alle vier Bits der ALU-Einheit und der C-Ziffer zwei Und-Schaltungen zugeführt;
von denen eine auf »überkreuz<« und die andere auf »Geradeaus« anspricht, so
daß die ALU-Ziffer als Bits 4 bis 7 und die C-Ziffer als Bits 0 bis 3 zugeführt
werden, wenn das »Geradeaus«-Signal vorliegt, und die ALU-Ziffer als Bits 0 bis
3 und die C-Ziffer als Bits 4 bis 7 zugeführt werden, wenn ein »überkreuz«-Signal
vorliegt. Es können auch andere Torsteilerungsanordnungen getroffen werden; die
Schaltung von F i g. 9 dient nur als Beispiel für eine sehr einfache Methode zur
Umsetzung der Datenftußsteuerung gemäß der Erfindung in die Praxis.
-
Die Erfindung ist so angeordnet, daß sie arithmetische und logische
Operationen in bezug auf mehrere aufeinanderfolgende Ziffern gestattet; dabei sind
die Ziffern Teile von paritätsgeprüften Bytes und werden aus den Bytes so ausgewählt,
daß es möglich ist, jede Ziffer in einem Byte zu erreichen. Ganz gleich, welche
Ziffer verwendet wird und wie oft sie die arithmetischen und logischen Schaltungen
durchläuft (z. B. zur Rekomplementierung), die Parität des gesamten Bytes wird bei
jeder Operation der arithmetischen und logischen Schaltung korrigiert. I Die nicht
benutzte Ziffer eines paritätsgeprüften Bytes dient zur Vorhersage der Parität des
Bytes, die ` benötigt wird, um die Änderungen in der in den arithmetischen und logischen
Schaltungen benutzten Ziffer wiederzugeben, und sonst wieder in dem Byte' gespeichert
wird; damit .ein vollständiges Byte ins B-Register zurückgesendet wird. Geradeaus-über
kreuz-Schaltungen
(gesteuerte Datenflußtore) sollen die Auswahl einer der beiden Ziffern eines Bytes
sowohl am Eingang als auch am Ausgang der ALU-Einheit ermöglichen. .
-
Der arithmetische und logische Teil, enthält mehrere Erfindungsmerkmale.
Eines davon ist .die Tatsacke, daß -die arithmetische und logische Schaltung keine
vollständige Addierereinheit enthält, sondern "die logischen Schaltungen für die
Bildung von Halbsummen während der Rechenoperationen .benutzt. Alle Schaltungen
sind so berechnet, daß sie mit hoher Geschwindigkeit arbeiten, und die verwendeten
übertragsvorausschauschaltungen ermöglichen das Erreichen einer Endsumme einschließlich
der übertragsauswirkungen darauf in minimaler Zeit. Ein weiteres Wahlmerkmal ist
die Verwendung redundanter logischer Schaltungen, um das Prüfen des Betriebs der
arithmetischen und logischen Schaltungen mittels des darin enthaltenen Paritätsbits
zu ermöglichen; die redundanten logischen Schaltungen schalten die Möglichkeit aus,
daß Fehler ihre eigene Auswirkung verbergen könnten. Eine Dezimalkorrektur steht
für dezimale Rechenoperationen zur Verfügung, sonst geben die Operationen hexadezimale
Paritätssummen wieder. Falls es sich um logische Operationen handelt, wird die »Binäre
Op«-Leitung verwendet, und die Endaddierstufe in F i g. 7 läßt alle ihr zugeführten
logischen Bits durch, da keinerlei Überträge in diese Bits erfolgen, und die Und-Schaltungen,
die sich auf einen Nicht-Übertrag in ein Bit beziehen, lassen jedes erscheinende
logische Bit durch. Diese logischen Bits erscheinen daher in der binären Summe.
Während der logischen Operationen entstehen keine Überträge, weil während dieser
Zeit den Schaltungen von F i g. 3, 4 und 5 keine Reguläraddier- oder Komplementaddier-Eingangssignale
zugeführt werden.