-
Die vorliegende Erfindung bezieht sich auf ein
Parallelcomputersystem, bei dem ein SIMD-Verfahren verwendet
wird, das durch einen Controller und eine Vielzahl von
Prozessorelementen gebildet wird, die in einer
Gitterkonfiguration miteinander verbunden sind.
-
Parallelcomputersysteme finden besonders auf dem Gebiet
der CAD (rechnergestützte Konstruktion), die zur
Konstruktion von LSI- (hochintegrierten) -Schaltungen eine
Hochgeschwindigkeitsberechnung erfordert, breite Verwendung.
Demzufolge ist es notwendig, Verfahren zu verbessern, damit
diese Prozessorelemente gemäß Erfordernissen von
LSI-Schaltungen mit hoher Dichte und hoher Geschwindigkeit effektiver
arbeiten.
-
Auf der Grundlage der Verbindungskonfiguration zwischen
den Prozessorelementen und dem Controller gibt es zwei Typen
von Parallelcomputern. Ein Verfahren wird als MIMD-
(Mehrfachanweisungsstrom-Mehrfachdatenstrom) -Verfahren
bezeichnet und wird durch eine Vielzahl von Prozessorelementen und
Controllern gebildet. Bei diesem Verfahren ist jedes der
Prozessorelemente jeweils mit einem entsprechenden
Controller verbunden. Demzufolge ist es erforderlich, dieselbe
Anzahl von Controllern vorzusehen, wie Prozessoren vorhanden
sind. Es ist jedoch schwierig, ein großes
Parallelcomputersystem zu bilden, bei dem dieses Verfahren verwendet wird,
da gemäß der Anzahl von Prozessoren, die von zig bis zu
mehreren hundert Prozessoren reichen kann, eine große Anzahl
von Controllern erforderlich ist.
-
Das andere Verfahren wird als SIMD-
(Einzelanweisungsstrom-Mehrfachdatenstrom) -Verfahren bezeichnet und wird
durch eine Vielzahl von Prozessorelementen und einen
Controller gebildet. Bei diesem Verfahren ist der Controller
mit allen Prozessorelementen parallel verbunden. Demzufolge
ist es möglich, einen großen Parallelcomputer mit einer
großen Anzahl von Prozessorelementen, zum Beispiel
Zigtausenden Prozessoren, zu bilden.
-
Bei dem letzteren Verfahren nutzt eine
"Verbindungsmaschine" von der Thinking Machines Corporation das SIMD-
Verfahren. Dieses System wird durch Zigtausende
Prozessorelemente gebildet.
-
Bei dem Parallelcomputer des SIMD-Typs gibt es jedoch
einige Probleme.
-
Ein erstes Problem tritt bei der Synchronisation aller
Prozessorelemente auf. Im allgemeinen werden zum Lösen
dieses Problems zwei Gegenmaßnahmen ergriffen. Bei einem
Verfahren werden Daten zum Erhalten einer Synchronisation
zwischen Prozessorelementen über eine Übertragungsleitung
ausgetauscht. Jedoch ist es erforderlich, daß alle
Prozessorelemente völlig verbunden sind, um dieses Verfahren
effektiv anzuwenden. Bei dem anderen Verfahren wird ein
besonderes Signal zum Erhalten einer Synchronisation von
jedem Prozessorelement ausgegeben. Dann wird eine
"verdrahtete ODER" -Logik bei allen Synchronisationssignalen
ausgeführt, und die resultierenden Daten von dem
verdrahteten ODER werden zu allen Prozessorelementen zurückgeführt.
Bei dem Verfahren der verdrahteten ODER-Logik ist jedoch die
Anzahl von Prozessorelementen begrenzt, da bei der
verdrahteten ODER-Logikoperation eine große Verzögerung
auftritt.
-
Ein zweites Problem ergibt sich bei der Reihenfolge der
Prioritätsverwendung der Busleitung. Wenn die Anzahl von
Prozessorelementen von einigen tausend bis zu Zigtausenden
reicht, ist es erforderlich, die Prioritätsreihenfolge der
Verwendung der Busleitung zu bestimmen.
-
Ein drittes Problem tritt bei der Extraktion von
wesentlichen Daten von wesentlichen Prozessorelementen auf.
Die wesentlichen Daten sind zum Beispiel Maximaldaten oder
Minimaldaten.
-
Angesichts der obigen Probleme wird ein
Parallelcomputersystem gemäß der vorliegenden Erfindung vorgesehen.
-
Ausführungsformen der vorliegenden Erfindung können ein
Parallelcomputersystem vorsehen, bei dem ein SIMD-Verfahren
verwendet wird, das eine Datenverarbeitung mit hoher
Effektivität und ein hohes Lastverteilungsvermögen ermöglicht.
-
Gemäß der Erfindung ist ein Parallelcomputersystem
vorgesehen, bei dem ein SIMD-Verfahren verwendet wird, das
durch einen Controller und eine Vielzahl von
Prozessorelementen gebildet wird, bei dem jedes der Prozessorelemente
eine Speichereinheit hat, um zu verarbeitende Daten zu
speichern, der Controller die Operation der
Prozessorelemente steuert und das Parallelcomputersystem Daten auf der
Grundlage eines Berechnungssteuersignals verarbeitet, das
von dem Controller übertragen wurde, dadurch gekennzeichnet,
daß das Parallelcomputersystem umfaßt: eine
Datensammeleinheit, die zwischen den Prozessorelementen und dem Controller
verbunden ist, zum Empfangen von Daten, die von den
Prozessorelementen ausgegeben wurden, Ausführen einer
vorbestimmten Berechnung und Ausgeben von berechneten Daten an den
Controller; und eine Berechnungssteuereinheit, die zwischen
der Datensammeleinheit und dem Controller verbunden ist, zum
Übertragen des Berechnungssteuersignals von dem Controller
zu der Datensammeleinheit, um das Ausführen der
vorbestimmten Berechnung in der Datensammeleinheit zu ermöglichen.
-
Als Beispiel wird Bezug auf die beiliegenden
Zeichnungen genommen, in denen:-
-
Fig. 1 ein Basisblockdiagramm eines Typs von
Parallelcomputersystems ist, der die Erfindung verkörpert;
-
Fig. 2 eine Ausführungsform eines in Fig. 1
gezeigten Parallelcomputersystems ist;
-
Fig. 3 ein schematischer Block eines in Fig. 1 und
2 gezeigten Prozessorelements ist;
-
Fig. 4 ein schematisches Blockdiagramm einer in
Fig. 1 gezeigten Erfassungslogikeinheit GLU ist;
-
Fig. 5 eine Tabelle zum Erläutern verschiedener,
in Fig. 4 gezeigter Steuersignale ist;
-
Fig. 6 ein Beispiel einer in Fig. 1 gezeigten
Erfassungslogikeinheit zeigt;
-
Fig. 7 ein Signalzeitlagendiagramm zum Erläutern
der Operation der in Fig. 6 gezeigten Schaltung ist;
-
Fig. 8 ein eingehendes Blockdiagramm einer in Fig.
4 gezeigten Erfassungslogikeinheit ist; und
-
Fig. 9 ein eingehendes Blockdiagramm der in Fig. 4
gezeigten MAX/MIN/ADD-Berechnungsschaltung ist.
-
Figur 1 ist ein Basisblockdiagramm eines Typs von
Parallelcomputersystem, der die Erfindung verkörpert. In
Fig. 1 bezeichnet Bezugszeichen 10 einen Controller, 11
einen Steuerspeicher zum Speichern eines Mikrokodes, der
Ausgangssteuersignale enthält, und 12 ein
Globaldatenregister zum Ausführen einer Eingabe-/Ausgabeoperation der
verarbeiteten oder zu verarbeitenden Daten. Der
Steuerspeicher 11 und das Globaldatenregister 12 sind in dem
Controller 10 vorgesehen. Bezugszeichen 13 bezeichnet eine
Datensammelschaltung zum Sammeln von Ausgangsdaten von
Prozessorelementen (PE) 14. 15A bis 15D bezeichnen
Steuerregister CR, die eine Berechnungssteuerschaltung bilden und
unter Verwendung eines Pipelineverfahrens miteinander
verbunden sind, zum Anwenden verschiedener
Berechnungssteuersignale auf die Sammelschaltung 13. 16A bis 16D
bezeichnen Erfassungslogikeinheiten (GLU), die die
Sammelschaltung 13 bilden und jeweils durch eine Baumkonfiguration
gebildet sind. Bezugszeichen 17 bezeichnet eine
Signalleitung für das Berechnungssteuersignal für die GLU, 18 eine
Signalleitung zum Steuern von Prozessorelementen und 19 eine
Datenleitung zum Rundsenden von globalen Daten.
-
Jedes der Prozessorelemente umfaßt ein Datenregister
zum Speichern der zu verarbeitenden Daten und eine
Arithmetik-Logik-Einheit ALU, wie in Fig. 3 gezeigt. Die
Arithmetik-Logik-Einheit ALU berechnet die Daten, die in dem
Register gespeichert sind, als Reaktion auf die Anweisung,
die von dem Controller 10 durch die Signalleitung 18
übertragen wurde.
-
Jede Erfassungslogikeinheit GLU 16A bis 16D sammelt die
Ausgabedaten, die von den Prozessorelementen übertragen
wurden. Die Erfassungslogikeinheiten 16A bis 16D sind in der
Form einer Baumkonfiguration mit mehreren Stufen verbunden.
Das heißt, in Fig. 1 bilden die Einheiten 16A die erste
Stufe, bilden die Einheiten 16B die zweite Stufe und bildet
die Einheit 16D die letzte Stufe. Die Ausgaben der
Prozessorelemente 14 werden den Erfassungslogikeinheiten 16A
eingegeben. Die resultierenden Berechnungsdaten, die in den
GLU's 16A erhalten werden, werden an die GLU'2 16B
ausgegeben. Ahnlich werden die resultierenden Daten, die in den
GLU's 16B erhalten werden, an die nächste Stufe ausgegeben.
-
Die letzte Stufe 16D erfaßt alle resultierenden Daten, die
in den vorherigen Stufen erhalten wurden, und die Daten, die
in der letzten Stufe 16D berechnet werden, werden an das
Globaldatenregister 12 in dem Controller 10 ausgegeben.
-
Alle Berechnungssteuerregister CR 15A bis 15D sind
unter Verwendung des Pipelineverfahrens miteinander seriell
verbunden. Die Anzahl von Registern ist gleich der Anzahl
von Stufen in der Erfassungslogikeinheit GLU. In diesem Fall
wird die Berechnung in jeder Stufe als Reaktion auf die
Berechnungssteuersignale, zum Beispiel auf ein
"ADD"-Berechnungssignal, ausgeführt, die durch die Signalleitung 17
übertragen werden. Das heißt, wenn das Berechnungssignal
"ADD" der ersten Stufe 16A eingegeben wird, wird bezüglich
der Daten, die von den Prozessorelementen ausgegeben wurden,
die Berechnung durchgeführt, die durch das Berechnungssignal
vorgeschlagen wurde. Dieses Berechnungssignal wird als
Reaktion auf das Taktsignal von dem Controller 10 zu der
nächsten Stufe übertragen, und in der zweiten Stufe 16B wird
dieselbe Berechnung ausgeführt, die durch das
Berechnungssignal vorgeschlagen wurde. Die obige Berechnung wird unter
Verwendung des Pipelineverfahrens ausgeführt. Das heißt,
wenn das erste Berechnungssignal "ADD" der ersten Stufe
eingegeben ist, wird das nächste Berechnungssignal, zum
Beispiel "MAX", der ersten Stufe eingegeben.
-
Die Synchronisation aller Prozessorelemente wird gemäß
einem Synchronisationssignal von dem Controller 10
ausgeführt. Der Controller 10 sendet das Synchronisationssignal
über die Steuerleitung 18 an alle Prozessorelemente, um den
Wert "1" auszugeben, wenn jedes Prozessorelement die
vorbestimmte Verarbeitung vollendet. Zur gleichen Zeit wird das
Signal "UND" über die Steuerleitung 17 zu dem Steuerregister
15A übertragen.
-
Wenn das Berechnungssignal "UND" in dem Register 15A
gesetzt ist, führt die GLU 16A der ersten Stufe eine "UND"-
Berechnung bezüglich der gesamten Ausgabe von dem
Prozessorelement als Reaktion auf den ersten Takt aus. Dieselbe
"UND"-Berechnung wird in der GLU 16B der nächsten Stufe als
Reaktion auf den nächsten Takt ausgeführt. Wenn dieselbe
"UND"-Berechnung in der GLU 16D der letzten Stufe als
Reaktion auf den Takt ausgeführt wird und die resultierenden
Daten den Wert "1" haben, kann der Controller 10 erkennen,
daß alle Prozessorelemente den Wert "1" ausgeben.
-
Das wesentliche Prozessorelement mit den wesentlichen
Daten wird wie folgt extrahiert. Im voraus wird jedem
Prozessorelement eine eigene Prozessornummer zugeordnet.
Erstens befiehlt der Controller 10 dem wesentlichen
Prozessorelement, die eigene Nummer auszugeben. Zweitens befiehlt
der Controller 10 einem anderen Prozessorelement, ein
geeignetes Signal auszugeben, zum Beispiel den Wert "11---1"
oder "00---0". Der Controller 10 sendet dann das
Steuersignal
"MAX" oder "MIN" an das Steuerregister 15A.
Dementsprechend kann das wesentliche Prozessorelement als Reaktion
auf "MAX" oder "MIN" der Nummer in der Sammelschaltung 13
ausgewählt werden. In diesem Fall kann ein nächstes
wesentliches Prozessorelement von den verbleibenden
Prozessorelementen auf dieselbe Weise wie oben ausgewählt werden, das
erste wesentliche Prozessorelement ausgenommen. Demzufolge
ist es möglich, diese Schaltung zu verwenden, um die
Prioritätsreihenfolge der Verwendung einer Busleitung auszuwählen.
-
Figur 2 zeigt eine besondere Ausführungsform des in
Fig. 1 gezeigten Systems. Dieselben Bezugszeichen wie die
obigen bezeichnen dieselben Komponenten. In Fig. 2
bezeichnet Bezugszeichen 20 ein Prozessor-Array, dessen Elemente in
einer Gitterkonfiguration miteinander verbunden sind. Das
Prozessor-Array und die Sammelschaltung werden, wie oben
erläutert, durch die Steuersignale von dem Controller 10
gesteuert. Der Steuerspeicher 11 in dem Controller 10 umfaßt
eine Vielzahl von Steuerformaten 1 bis n.
-
Der Controller 10 umfaßt ferner einen Ablaufsteuerer
21, der den Ablauf zum Auslesen der Steuerinformationen aus
dem Steuerspeicher 11 bestimmt. Das Globaldatenregister 12
ist ein Register zum Halten der Daten, die gemeinsam an alle
Prozessorelemente gesendet werden, und um die Ausgabedaten
von der Sammelschaltung 13 zu empfangen.
-
Figur 3 ist ein schematischer Block eines
Prozessorelements. In Fig. 3 bezeichnet Bezugszeichen 30 ein
Datenregister zum Halten der zu verarbeitenden Daten. 31
bezeichnet eine Arithmetik-Logik-Einheit ALU zum Berechnen der
Daten, die in dem Register 30 gespeichert sind. Das
Prozessorelement 14 wird durch dasselbe Steuersignal gesteuert,
das von dem Controller 10 übertragen wird. Dieses
Steuersignal enthält eine Adresse des Datenregisters 30 und einen
Operationskode für die Arithmetik-Logik-Einheit 31. Das
Prozessorelement 14 umfaßt ferner vier Ports, d. h., einen
Ostport (E), Westport (W), Nordport (N) und Südport (S), zum
Kommunizieren zwischen benachbarten Prozessorelementen. Das
Prozessorelement 14 umfaßt ferner einen Eingangsanschluß GT
zum Eingeben der Daten von dem Globaldatenregister 12 und
einen Sammelanschluß CT zum Ausgeben der Daten.
-
Das Prozessorelement 14 ist ein Ein-Bit-Typ, und die
Eingabe-/Ausgabeoperation für das Datenregister 30 wird im
wesentlichen für jedes Bit ausgeführt. Daten, die größer als
ein Bit sind, werden ab dem höchstwertigen Bit (MSB) oder
dem niedrigstwertigen Bit (LSB) für jedes Bit verarbeitet.
-
Figur 4 ist ein schematisches Blockdiagramm einer
Erfassungslogikeinheit GLU. Jede der
Erfassungslogikeinheiten GLU 16A bis 16D umfaßt eine ODER-Berechnungsschaltung
40, eine UND-Berechnungsschaltung 41, eine MAX/MIN/ADD-
Berechnungsschaltung 42 und eine Selektorschaltung SEL 43.
Das Signal GLI sind Daten, die der GLU 16 eingegeben werden,
und sind durch 32 Bits gebildet. Dies bedeutet, daß eine GLU
16 maximal 32 Bits in der Eingangsseite verarbeiten kann.
Das Signal GLO sind resultierende Daten und wird durch ein
Bit gebildet.
-
Arten von Berechnungssteuersignalen, die der GLU 16 von
den Steuerregistern 15A bis 15D eingegeben werden, sind wie
folgt. Diese Steuersignale sind in einer Tabelle in Fig. 5
gezeigt.
XGOPS (2 Bits)
-
Dies ist ein Operationskode für die GLU 16. Wenn dieses
Signal den Wert "00" hat, wird die UND-Berechnung
ausgeführt, wenn es "01" ist, wird die ODER-Berechnung
ausgeführt, wenn es "10" ist, wird die "MIN"- oder
"MAX"-Berechnung ausgeführt, und wenn es "11" ist, wird die "ADD"-
Berechnung ausgeführt.
XGCR (1 Bit)
-
Dies ist ein Übertragssteuersignal für eine
Übertragslöschoperation bei der "ADD"-Berechnung.
GLSTS (2 Bits)
-
Dies ist ein Schaltsignal zum Schalten der Anzahl von
Bits des Eingangssignals für die GLU. Das heißt, die Anzahl
von Bits des Eingangssignals, zum Beispiel 32 Bits, 16 Bits,
8 Bits oder 4 Bits, kann durch dieses Schaltsignal gewählt
werden.
GMAXS (1 Bit)
-
Dies ist ein Anweisungssignal, um entweder eine "MIN"-
oder "MAX"-Berechnung auszuwählen, wenn der Operationsbefehl
XGOPS den Wert "10" hat.
GNOPS (1 Bit)
-
Dies ist ein Anweisungssignal, um das Eingangssignal
auf "0" zu zwingen. Wenn dieses Bit "0" ist, werden die
Eingangsdaten GLI ungültig.
-
Figur 6 zeigt ein Beispiel einer Erfassungslogikeinheit
GLU. Wie aus der Zeichnung ersichtlich ist, wird die erste
Stufe durch vier GLU's 16-1 bis 16-4 gebildet, und die
zweite Stufe (letzte Stufe) wird durch eine GLU 16-5
gebildet. Da jede GLU 32 Bits in der Eingangsseite verarbeiten
kann, kann diese Schaltung bis zu 128 Bits in der
Eingangsseite verarbeiten.
-
Der Operationskode XGOPS und das Übertragssteuersignal XGCR
werden in den Registern 15-1 und 15-2 verwendet, um die
Erläuterung zu vereinfachen. Demzufolge führt die GLU die
Berechnung gemäß dem obigen Operationskode und dem
Übertragssteuersignal aus. Ferner bezeichnen Bezugszeichen 50
bis 58 Register für die Pipelinesteuerung. OP-1 bezeichnet
ein Signal, das in dem Register 15-1 gesetzt ist, und OP-2
ein Signal, das in dem Register 15-2 gesetzt ist. Ferner
bezeichnet D1 Daten, die in den Registern 50 bis 53 gesetzt
sind, D2 Daten, die in den Registern 54 bis 57 gesetzt sind,
und D3 Daten, die in dem Register 58 gesetzt sind.
-
Figur 7 ist ein Signalzeitlagendiagramm zum Erläutern
der Operation der in Fig. 6 gezeigten Schaltung. In Fig. 7
bezeichnen B0 bis B3 zu verarbeitende Vier-Bit-Daten, B0 ist
ein niedrigstwertiges Bit (LSB), und B3 ist ein
höchstwertiges Bit (MSB). Bei der "ADD"-Operation werden diese
Bits den Registern 50 bis 53 von dem LSB bis zum MSB Bit für
Bit als Reaktion auf ein Taktsignal CLK seguentiell
eingegeben. Synchron mit den Daten wird der Operationskode "ADD"
für Addition in dem Register 15-1 gesetzt. Das
Übertragssteuersignal XGCR wird der GLU eingegeben, um das
Übertragslöschen mit dem Wert "0" im ersten Takt anzuzeigen und um im
nächsten Takt die normale Berechnung mit dem Wert "1"
anzuzeigen.
-
Die GLU 16-1 bis 16-4 der ersten Stufe führt eine
Additionsberechnung für 32 Bits bezüglich des Bits B0 (LSB)
gemäß dem Befehl OP-1 als Reaktion auf den ersten Takt aus.
Die erste Stufe 16-1 bis 16-4 führt als nächstes eine
Additionsberechnung von 32 Bits bezüglich des Bits B1 als
Reaktion auf den nächsten Takt aus. Bei dieser
Additionsberechnung wird für die resultierenden Daten des Bits B0 die
Übertragsoperation berücksichtigt. Diese Berechnungen werden
bis zum Bit B3 fortgesetzt.
-
Die resultierenden Daten, die durch die GLU 16-1 bis
16-4 erhalten werden, werden in dem Register 54 bis 57
gesetzt. In diesem Fall wird der Befehl OP-1 bei jedem Takt
zu dem OP-2 bewegt.
-
Die letzte Stufe GLU 16-5 führt die Additionsberechnung
für vier Eingangssignale als Reaktion auf den Befehl OP-2
aus. Die resultierenden Daten werden an das Register 58
ausgegeben. Da die Sammelschaltung durch zwei Stufen
gebildet ist, führt die GLU 16-5 nach einer Verzögerung von einem
Takt dieselbe Operation wie jene der GLU 16-1 bis 16-4 aus.
-
Die Berechnung wird, wie oben erläutert, unter
Verwendung des Pipelineverfahrens ausgeführt. Hinsichtlich der
Berechnung von "MAX" und "MIN" kann dieselbe Berechnung wie
oben erwähnt mit einer optionalen Bitlänge ausgeführt
werden. In diesem Fall werden die Bits von dem MSB bis zu
dem LSB eingegeben.
-
Figur 8 ist ein eingehendes Blockdiagramm einer in Fig.
4 gezeigten Erfassungslogikeinheit. In Fig. 8 bezeichnet A1
eine UND-Schaltung, bezeichnen N1 bis N5 NOR-Schaltungen,
bezeichnen NA-1 bis NA-5 NAND-Schaltungen, bezeichnen S1 bis
S5 Selektoren und bezeichnen MA00 bis MA40 MAX/MIN/ADD-
Berechnungsschaltungen. Die UND-Schaltung A1 setzt die
Eingangsdaten GLI alle auf Null, wenn das Steuersignal GNOPS
den Wert "O" hat. Die NOR-Schaltungen N1 bis N4 und die
NAND-Schaltung führen die ODER-Berechnung gemäß der Anzahl
von Eingangsstufen bezüglich der Eingangsdaten GLI aus. Die
NAND-Schaltungen NA2 bis NA5 und die NOR-Schaltung N5 führen
die UND-Berechnung bezüglich der Eingangsdaten GLI aus. Die
MAX/MIN/ADD-Berechnungsschaltungen MA00 bis MA40 führen die
Maximums-/Minimums-/Additionsberechnung aus. Die Selektoren
S1 bis S4 selektieren die Ausgabe gemäß dem Operationskode
XGOPS. Der Selektor S5 führt die Selektion gemäß der Nummer
der Eingangsstufe aus.
-
Figur 9 ist ein eingehendes Blockdiagramm der
MAX/MIN/ADD-Berechnungsschaltung. In Fig. 9 bezeichnen A10
bis A16 UND-Schaltungen, N10 bis N12 NOR-Schaltungen, NTO
bis NT6 NICHT-Schaltungen, 01 bis 02 ODER-Schaltungen, R0
bis R1 Register, S10 bis S11 Selektoren und 90 einen
Volladdierer mit drei Eingängen.
-
Diese Schaltung führt eine
Maximums-/Minimums-Berechnung für 2 Eingaben aus. DM0 und DM1 sind die
Eingangssignale, die jeweils ein Bit haben, um einen
Maximal-/Minimalwert zu erhalten. DA0 und DA1 sind die Eingangssignale
mit jeweils einem Bit für die Addition. XM sind
resultierende Daten für eine Maximums-/Minimums-Berechnung, und XA sind
resultierende Daten zur Addition. In der ersten Stufe MA00
bis MA15 ist DM0 gleich DA0 bzw. DM1 gleich DA1.
-
Die Operation der Addition "ADD" wird unten eingehend
erläutert. Die Additionsdaten werden dem DA0 und DA1 von dem
LSB-Bit an bei jedem Bit eingegeben. Bei dem ersten Bit
wird, da das Signal XGCR den Wert "0" hat, der Übertrag
gelöscht, so daß der Übertrag CARRY-0 "0" wird. Der Addierer
90 führt die Addition hinsichtlich des DA0 und DA1 aus, und
die resultierenden Daten XA werden von ihm ausgegeben. Wenn
bei der Addition kein Übertrag ausgeführt wird, wird das
Ausgangssignal CARRYOUT "0". Wenn ein Übertrag ausgeführt
wird, wird das Ausgangssignal CARRYOUT "1". Das Signal
CARRYOUT wird in dem Register R0 zur Verwendung bei der
Addition bei dem nächsten Takt durch den Selektor S10
gehalten. Bei dem nächsten Bit von dem LSB an wird der
Inhalt des Registers R0 als Übertrag CARRY-0 verwendet und
zu dem DA0 und DA1 addiert.
-
Die Operation zum Erhalten des maximalen Wertes wird
unten eingehend erläutert. Wenn der maximale Wert erhalten
wird, hat das Signal GMAXS den Wert "0", werden die
Eingangsdaten dem DM0 und DM1 bei jedem Bit von dem MSB-Bit an
eingegeben. Bei dem ersten Bit ist das Signal XGCR "0", und
die Ausgaben der UND-Schaltung A10 und All sind "0", so daß
die Ausgabe der NOR-Schaltung N12 "1" wird und die Ausgaben
der UND-Schaltungen A14, A15 und der ODER-Schaltung 01 "0"
werden. Demzufolge wird das Selektionssignal in dem Selektor
S11 "10", so daß als maximale Ausgabe XM die Ausgabe der
ODER-Schaltung 02 bei der ODER-Logikoperation zwischen dem
DM0 und DM1 selektiert wird. In den Registern R0 und R1
wird, wenn eines von DM0 und DM1 vorher "1" wird, der Wert
"1" auf der entsprechenden Seite gesetzt. Das heißt, wenn
DM0 "1" ist und DM1 "0" ist, wird der Wert "1" in dem
Register R0 gesetzt. Wenn im Gegensatz DM0 "0" ist und DM1
"1" ist, wird der Wert "1" in dem Register R1 gesetzt.
-
Wenn der Wert "1" einem der Register R0 und R1
eingegeben wird, wird die Ausgabe der NOR-Schaltung N12 von dem
nächsten Takt "0". Ferner wird die Ausgabe der
ODER-Schaltung
01 "1", wenn das Register R0 "1" ist, und wird "0",
wenn das Register R1 "1" ist. Nach der obigen Selektion gibt
demzufolge der Selektor 11 entweder den Wert des DM0 oder
des DM1 aus, in dem der Wert "1" vorher detektiert wurde.
-
Die Operation zum Erhalten des minimalen Wertes wird
unten eingehend erläutert. Wenn der minimale Wert erhalten
wird, hat das Signal GMAXS den Wert "1". Die Operation ist
dieselbe wie jene für das Maximum. Wenn die Ausgabe der NOR-
Schaltung N12 den Wert "1" hat, ist das Selektionssignal für
den Selektor S11 "11", und die Ausgabe der UND-Schaltung A16
wird selektiert. Wenn eines von DM0 und DM1 "1" wird, wird
eines der Register R0 und R1 "1", und das Selektionssignal
für den Selektor S11 wird "00" oder "01". Nach der obigen
Selektion wird der minimale Wert entweder in DM0 oder DM1
selektiert.