-
Die
vorliegende Erfindung betrifft eine Parallelverarbeitungs-Divisionsschaltung
nach dem Anspruch 1.
-
Aus
der
US 5,097,435 ist
eine Divisionsschaltung zur Durchführung einer Division bekannt, bei
der eine subtraktive Operation wiederholt durchgeführt wird,
wenn ein Dividend und ein Divisor mit gleichem Vorzeichen ermittelt
werden und bei der eine additive Operation wiederholt ausgeführt wird, wenn
ermittelt wurde, dass der Dividend und der Divisor ein unterschiedliches
Vorzeichen aufweisen. Wenn das höchstwertige
Bit eines Quotienten berechnet wird, und zwar in Form einer negativen
Zahl und bei Vorzeichengleichheit von Dividend und Divisor, und
wenn das höchstwertige
Bit des Quotienten als negative Zahl berechnet wird, und zwar bei
Ungleichzeit des Vorzeichens des Dividenden und des Divisors, wird
ein Überlauf
zu einem Zeitpunkt wiederholt, bei welchem das andere Quotientenbit
mit dem höchstwertigen
Bit des Quotienten koinzidiert, um dieses während eines Abschnitts der
Operationsverarbeitung zu detektieren.
-
Aus
der
GB 2 172 718 A ist
ein Divisionssystem bekannt, um Reihen von Divisionsberechnungen durchzuführen. Das
Divisionssystem enthält
eine Kaskadenschaltung von Subtraktionsstufen, in welchen eine Binärteilung
schrittweise ausgeführt
wird. In jeder Stufe wird ein Divisor von einem Dividenden subtrahiert,
welcher der gleiche Dividend sein kann, wie von der früheren Stufe
oder vorhergehenden Stufe, wenn die Subtraktion der früheren oder
vorhergehenden Stufe zu einem Borgübertrag führt oder wenn das Ergebnis
aus der früheren
oder vorhergehenden Subtraktionsstufe zu keinem Borgübertrag
geführt hat.
Die "Borg"- und "Nicht-Borg"-Ergebnisse von jeder
Stufe werden mit dem ursprünglichen
Dividenden/Divisor-Eingang zur ersten Stufe in Korrelation gebracht
und repräsentieren
den erforderlichen Quotienten für
das jeweilige Dividenden/Divisor-Paar, wobei der Wert von "0" für
ein "Nicht-Borgen" und der Wert von "1" für
ein "Borgen" genommen wird. An
jeder Stufe wird der Divisor und auch der Dividend relativ um eine
Stelle verschoben, und zwar in entgegengesetztem Sinn.
-
Im
Allgemeinen verwenden Rechenmaschinen für das Durchführen einer
Addition, Subtraktion, Multiplikation und Division eine Software,
da – obwohl
eine Hardware bzw. Festverdrahtung schneller ist als eine Software
bzw. Programmsteuerung – der Aufbau
einer festverdrahteten Rechenmaschine sehr kompliziert und schwierig
ist. Eine digitale Schaltung zum Durchführen einer Division ist insbesondere dann
kompliziert aufgebaut, wenn der Quotient einen Wert kleiner eins
aufweist.
-
Der
Erfindung liegt daher die Aufgabe zu Grunde, eine einfache parallelverarbeitende
Schaltung zum Durchführen
einer Division zu schaffen, welche nur aus einer Festverdrahtung
besteht, bei der der Quotient kleiner eins ist, d.h. der Dividend
ist kleiner als der Divisor.
-
Diese
Aufgabe wird erfindungsgemäß durch die
im Anspruch 1 aufgeführten
Merkmale gelöst.
Besonders vorteilhafte Ausgestaltungen und Weiterbildungen der erfindungsgemäßen Parallelverarbeitungs-Divisionsschaltung
ergeben sich aus den Unteransprüchen.
-
Die
erfindungsgemäße parallelverarbeitende Divisionsschaltung
empfängt
Daten für
den Dividenden, Daten für
den Divisor, die größer als
die Daten für
den Dividenden sind, ein Startsignal und ein Resetsignal, wobei
der Quotient als Ergebnis ausgegeben wird.
-
Die
Schaltung besitzt eine Zeitsteuerschaltung, die das Startsignal
und ein Taktsignal empfängt und
gibt ein Zeitsteuersignal aus, welches den Zeitpunkt zum Ausgeben
von Ausgabedaten steuert.
-
Ein
Datenregister empfängt
die Divisordaten und gibt Divisorspeicherdaten, die zu den Divisordaten
invertiert und mit dem Taktsignal synchronisiert sind, gemäß dem Startsignal
aus.
-
Eine
Datenauswahlschaltung empfängt
die Daten für
die Dividenden, das Startsignal sowie das Taktsignal und wählt Daten
aus, die den Daten für
die Dividenden entsprechen oder bereits existierende ausgewählte Daten,
die gemäß dem Startsignal
um ein Bit nach links verschoben wurden, oder um ein Bit nach links
verschobene Daten, bei denen von den bereits existierenden ausgewählten Daten
die divisorgespeicherten Daten subtrahiert wurden, wobei anschließend die
ausgewählten
Daten und die Steuerdaten ausgegeben werden.
-
Ein
Subtrahierer empfängt
die Divisorspeicherdaten und die ausgewählten Daten, er führt eine Subtraktion
durch und gibt Subtraktionsausgabedaten aus, wobei ein Ausgabeübertrag,
welcher einen aufgetretenen Überlauf
anzeigt, als Ergebnis der Subtraktion ausgegeben wird.
-
Eine
Steuersignal-Erzeugungsschaltung empfängt das Zeitsteuersignal, die
Steuerdaten sowie den Ausgabeübertrag,
und gibt ein Auswahlsteuersignal mit einem hohen logischen Wert
ab, wenn das Zeitsteuersignal einen hohen logischen Wert aufweist,
und wenn entweder die Steuerdaten oder der Ausgabeübertrag
einen hohen logischen Wert besitzt.
-
Eine
Ausgabedaten-Erzeugungsschaltung empfängt das Zeitsteuersignal, wobei
das ausgewählte
Steuersignal mit dem Taktsignal gemäß dem Zeitsteuersignal synchronisiert
und das ausgewählte Steuersignal
gespeichert wird, während
die Daten durch Verschieben des ausgewählten Steuersignals um ein
Bit nach links ausgegeben werden.
-
Die
Erfindung wird nachstehend anhand von Ausführungsbeispielen unter Bezugnahme
auf die Zeichnung näher
beschrieben.
-
1 zeigt
ein Blockschaltbild, welches ein bevorzugtes erfindungsgemäßes Ausführungsbeispiel
der Parallelverarbeitungs-Divisionsschaltung darstellt.
-
2 zeigt
ein Blockschaltbild, welche eine Zeitsteuerschaltung 100 der
Parallelverarbeitungs-Divisionsschaltung darstellt, wie sie im erfindungsgemäßen Ausführungsbeispiel
gemäß 1 verwendet
wird.
-
3 zeigt
eine Zwischenspeicherschaltung der Parallelverarbeitungs-Divisionsschaltung,
wie sie im erfindungsgemäßen Ausführungsbeispiel
gemäß 1 verwendet
wird.
-
4 zeigt
ein Datenregister der Parallelverarbeitungs-Divisionsschaltung,
wie sie im erfindungsgemäßen Ausführungsbeispiel
gemäß 1 verwendet
wird.
-
5 zeigt
eine Datenauswahlschaltung der Parallelverarbeitungs-Divisionsschaltung,
wie sie im erfindungsgemäßen Ausführungsbeispiel
gemäß 1 verwendet
wird.
-
Die 6A und 6B bilden
gemeinsam eine Schaltung, die eine Ausgabedaten-Erzeugungsschaltung
der Parallelverarbeitungs-Divisionsschaltung zeigt, wie sie im erfindungsgemäßen Ausführungsbeispiel
gemäß 1 verwendet
wird.
-
7 zeigt
ein Schaubild, welches die Arbeitszeitabläufe der Parallelverarbeitungs-Divisionsschaltung
darstellt, wie sie im erfindungsgemäßen Ausführungsbeispiel gemäß 1 verwendet
werden.
-
Die 1 zeigt
ein Blockschaltbild, welches eine erfindungsgemäße Parallelverarbeitungs-Divisionsschaltung darstellt.
Gemäß 1 besitzt
eine bevorzugte Parallelverarbeitungs-Divisionsschaltung eine Zeitsteuerschaltung 100,
welche ein Rücksetzsignal
RSB, ein Startsignal S und ein Taktsignal CK empfängt. Die
Zeitsteuerschaltung 100 gibt ein Zeitsteuersignal TL zum
Einstellen eines Zeitpunkts zur Ausgabe von Daten als Ergebnis der
Division aus.
-
Ein
Datenregister 200 empfängt
Divisordaten BDAT<8:0>, das Startsignal S
und das Taktsignal CK, und gibt die Divisorspeicherdaten REG<8:0>, welche mit dem Taktsignal
CK gemäß dem Startsignal
S synchronisiert sind und die invertierten Divisordaten BDAT<8:0> darstellen, ab.
-
Eine
Datenauswahlschaltung 300 empfängt Dividendendaten ADAT<8:0>, Subtraktionsausgabedaten
S<8:0>, das Startsignal S
und das Taktsignal CK, und wählt
Daten aus, die gleich den Dividendendaten ADAT<8:0> oder
den vorher existierenden Subtraktionsausgabedaten, die gemäß dem Startsignal
S um ein Bit nach links geschoben wurden, sind, und gibt Auswahldaten
ACC<8:0> und Steuerdaten ACC<9> aus.
-
Ein
Subtrahierer 400 empfängt
die Divisorspeicherdaten REG<8:0> vom Datenregister 200 und
die Auswahldaten ACC<8:0> von der Datenauswahlschaltung 300,
um die Subtraktion durchzuführen
und die Subtraktionsausgabedaten S<8:0> und den Ausgabeübertrag
S<9> auszugeben.
-
Eine
Steuersignal-Erzeugungsschaltung 500 empfängt ein
Zeitsteuersignal TL, die Steuerdaten ACC<9> von
der Datenauswahlschaltung 300 und den Ausgabeübertrag
S<9> vom Subtrahierer 400. Die
Schaltung gibt ein Auswahlsteuersignal SC mit einem hohen logischen
Wert aus, wenn das Zeitsteuersignal TL einen hohen logischen Wert
aufweist und die Steuerdaten ACC<9> oder der Ausgabeübertrag S<9> einen hohen logischen
Wert besitzen.
-
Eine
Ausgabedaten-Erzeugungsschaltung 600 empfängt das
Zeitsteuersignal TL, das Auswahlsteuersignal SC sowie das Taktsignal
CK, wobei sie mit dem Taktsignal CK gemäß dem Zeitsteuersignal TL synchronisiert
ist und das Auswahlsteuersignal SC speichert, um es um ein Bit nach
links zu verschieben und die Ausgabedaten QUO<8:0> auszugeben.
-
Die 2 zeigt
ein Blockschaltbild, die eine Zeitsteuerschaltung 100 der
erfindungsgemäßen Parallelverarbeitungs-Divisionsschaltung
darstellt. Gemäß 2 besitzt
die Zeitsteuerschaltung 100 einen Abwärtszähler 110 mit dem gemäß einem
Taktsignal CK inkremental abwärts
gezählt
wird.
-
Eine
Erfassungsvorrichtung 120 gibt ein erstes Rücksetzsignal
FR aus, wenn ein Wert erfaßt wird,
bei dem das Ausgangssignal des Abwärtszählers 110 einen bestimmten
Wert erreicht.
-
Eine
Zwischenspeicherschaltung 130 empfängt ein Rücksetzsignal RSB, ein Startsignal
S und das erste Rücksetzsignal
FR. Diese Zwischenspeicherschaltung 130 ist derart eingestellt,
daß sie
einen niedrigen logischen Wert ausgibt, wenn das Rücksetzsignal
RSB oder das erste Rücksetzsignal
FR aktiv ist, während
es einen hohen logischen Wert ausgibt, wenn das Startsignal S aktiv
ist.
-
Ein
F1ipFlop empfängt
das Ausgangssignal des Zwischenspeichers 130 sowie das
Taktsignal CK und gibt ein Zeitsteuersignal TL synchron mit dem Taktsignal
CK aus.
-
Das
Zeitsteuersignal TL ist mit dem Rücksetzzweig RB des Abwärtszählers 110 verbunden und
bewirkt das Rücksetzen
des Abwärtszählers 110,
wenn das Zeitsteuersignal TL einen niederen logischen Wert aufweist.
-
Die
Erfassungsvorrichtung 120 kann aus einer NAND-Schaltung bestehen.
Da die Divisordaten in der erfindungs gemäßen Parallelverarbeitungs-Divisionsschaltung,
wie sie in 1 dargestellt ist, neun Bits
aufweisen, erfaßt
die Detektorvorrichtung 120 die Ausgabewerte des Abwärtszählers 110 und gibt
einen niederen logischen Wert dann ab, wenn der Ausgabewert gleich
dem Dezimalwert 10 entspricht.
-
Wie
in 3 dargestellt, besitzt die Zwischenspeicherschaltung 130 ein
erstes NOR-Gatter 131 mit einem ersten, zweiten und einem
dritten Eingang sowie ein zweites NOR-Gatter 132 mit einem ersten
und zweiten Eingang. Der erste Eingang des ersten NOR-Gatters 131 ist
mit einer Signalleitung verbunden, an dem das invertierte Rücksetzsignal RSB
anliegt. Der zweite Eingang des ersten NOR-Gatters 131 ist
mit dem ersten Rücksetzsignal FR
verbunden. Der dritte Eingang des ersten NOR-Gatters 131 ist
mit dem Ausgang des zweiten NOR-Gatters 132 verbunden.
Der erste Eingang des zweiten NOR-Gatters 132 ist mit dem
Ausgang des ersten NOR-Gatters 131 verbunden, während der zweite
Eingang des zweiten NOR-Gatters 132 ein Startsignal S empfängt.
-
Die 4 zeigt
ein Datenregister der erfindungsgemäßen Parallelverarbeitungs-Divisionsschaltung.
Das Datenregister 200 besitzt einen Invertierer 240 zum
Empfangen einiger Datenbits der Divisordaten BDAT<8:0> und eines Startsignals,
wobei er diese invertiert und anschließend ausgibt. Jedes Register 210, 220, 230 besitzt
eine Divisordatenlogik 250, eine Taktsignalleitung CK,
eine Eingangsleitung D, eine Rücksetzleitung
R, einen ersten Ausgang Q und ein FlipFlop mit einem zweiten Ausgang
QB, der zum ersten Ausgang Q invertiert ist.
-
Die
Divisordatenlogik 250 besitzt erste und zweite AND-Gatter 251 und 252 sowie
ein drittes NOR-Gatter 253 mit ersten und zweiten Eingängen. Der
erste Eingang des ersten AND-Gatters 251 ist mit dem Startsignal
S, und der zweite Eingang des ersten AND-Gatters 251 ist
mit einem Bit der Divisordaten BDAT<8:0> verbunden.
Der erste Eingang des zweiten AND-Gatters 252 ist mit dem
Ausgang des Invertierers 240 verbunden, während der
zweite Eingang des zweiten AND-Gatters 252 an den zweiten Ausgang
des FlipFlops 260 angeschlossen ist. Der erste Eingang
des dritten NOR-Gatters 253 ist mit dem Ausgang des ersten
AND-Gatters 251 verbunden, während der zweite Eingang des
dritten NOR-Gatters 253 mit dem Ausgang des zweiten AND-Gatters 252 verbunden
ist.
-
Die 5 zeigt
eine Datenauswahlschaltung 300 der erfindungsgemäßen Parallelverarbeitungs-Divisionsschaltung.
Die Datenauswahlschaltung 300 besitzt eine Auswahlsteuersignal-Erzeugungsschaltung 340,
die ein Startsignal S sowie ein Auswahlsteuersignal SC empfängt und
ein zweites Steuersignal SP ausgibt.
-
Verschiedene
Auswahlregister 310, 320 und 330 sind
derart vorgesehen, daß immer
ein Auswahlregister mehr vorhanden ist als die Anzahl der Bits der
Dividendendaten ADAT<8:0>. Die Auswahlregister
geben Auswahldaten ACC<8:0> und Steuerdaten ACC<9> aus.
-
Die
Auswahlsteuersignal-Erzeugungsschaltung 340 besitzt erste
und zweite Invertierer 341 und 342 sowie dritte
und vierte AND-Gatter 343 und 344. Der erste Invertierer 341 empfängt das
Startsignal S und gibt das invertierte Startsignal aus. Der zweite
Invertierer 342 empfängt
das Auswahlsteuersignal SC, invertiert es und gibt ein Schiebesteuersignal
SH aus. Das dritte AND-Gatter 343 führt eine logische UND-Operation
zwischen den Ausgangssignalen des ersten und zweiten Invertierers
durch und gibt ein erstes Steuersignal SHF aus. Das vierte AND-Gatter 344 führt die
logische UND-Operation zwischen den Ausgangssignalen des ersten
Invertierers 341 und dem Auswahlsteuersignal SC durch und
gibt ein zweites Steuersignal SP aus.
-
Jedes
Auswahlregister 310, 320 und 330 besitzt
eine Dividendendatenlogik 310a, 320a und 330a sowie
ein FlipFlop 310b, 320b und 330b mit
seinem Takteingang C, einem Eingang D, einem Rücksetzeingang R und einem Ausgang
Q. Der Takteingang C und der Rücksetzeingang
R sind entsprechend mit dem Taktsignal CK und dem Rücksetzsignal
RSB verbunden.
-
Der
Eingang D des entsprechenden FlipFlops 310a, 320a und 330a ist
mit einem entsprechenden Ausgang der Dividendenlogik 310a, 320a und 330a verbunden.
Der Ausgang Q eines jeweiligen FlipFlops ist mit einer nachfolgenden
Dividendendatenlogik verbunden.
-
Die
geteilte Datenlogik 310a besteht aus einem AND-Gatter,
das eine logische UND-Operation zwischen dem Startsignal und dem
niederwertigsten Datenbit ADAT<0> durchführt.
-
Die
letzte geteilte Datenlogik 330a besitzt ein erstes NAND-Gatter 331 zum
Empfangen des Ausgangssignals Q des vorhergehenden FlipFlops und eines
ersten Steuersignals SHF und führt
eine logische NAND-Operation zwischen diesen beiden Signalen durch.
Die anderen Dividendendaten-Logikschaltungen besitzen jeweils ein
NAND-Gatter 321, das das Ausgangssignal D des vorhergehenden
FlipFlops sowie ein erstes Steuersignal SHF empfängt und auf der Grundlage dieser
beiden Signale eine logische NAND-Operation durchführt. Ein
AND-Gatter 322 empfängt
ein Bit der Subtraktionsausgabedaten S<0> bis
S<7>, allerdings nicht
das höchstwertige
Bit S<8>, vom Subtrahierer 400 sowie
ein zweites Steuersignal SP und führt eine logische UND-Operation mittels
dieser beiden Signale durch.
-
Ein
weiteres AND-Gatter 323 empfängt das Startsignal S und ein
Bit der Dividendendaten ADAT<1> bis ADAT<8>, allerdings nicht
das niederwertigste Bit ADAT<0>, und führt auf
der Grundlage dieser beiden Signale eine logische UND-Operation durch.
Ein NOR-Gatter 324 empfängt
die Ausgangssi gnale der AND-Gatter 322 und 323 und
führt auf
der Grundlage dieser Signale eine logische NOR-Operation durch.
Ein NAND-Gatter 325 empfängt das Ausgangssignal des
NAND-Gatters 321 und des NOR-Gatters 324 und führt eine
logische NAND-Operation auf der Grundlage dieser beiden Signale
durch.
-
Die 6A und 6B zeigen
ein Ausführungsbeispiel
einer Ausgabedaten-Erzeugungsschaltung 600, wie sie im
erfindungsgemäßen Ausführungsbeispiel
gemäß 1 verwendet
wird. Die Ausgabedaten-Erzeugungsschaltung 600 besitzt
einen Invertierer 601, der ein Zeitsteuersignal TL empfängt, dieses
invertiert und ein invertiertes Zeitsteuersignal ITL ausgibt.
-
Die
Ausgabedaten-Erzeugungsschaltung 600 besitzt darüber hinaus
mehrere Ausgabedaten-Register 610–690, die jeweils
Ausgabedaten-Logikschaltungen 610a–690a und F1ipFlops 610b–690b aufweisen
mit je einem Takteingang C, einem Eingang D, einem Rücksetzeingang
R und einem Ausgang Q.
-
Die
Ausgänge
Q der F1ipFlops bilden die Ausgabedaten QUO<8:0>.
Der Eingang D eines jeweiligen F1ipFlops ist mit der entsprechenden
Ausgabedaten-Logik 610a–690a verbunden. Der
Rücksetzeingang
R und der Takteingang C sind jeweils mit dem Rücksetzsignal RSB und dem Taktsignal
CK verbunden.
-
Die
Ausgabedaten-Logik 610a des ersten Ausgabedaten-Registers 610 besitzt
ein AND-Gatter 611, welches das Auswahlsteuersignal SC
und das Zeitsteuersignal TL als Eingangssignale empfängt und
eine logische UND-Operation auf der Grundlage dieser beiden Eingangssignale
durchführt.
-
Die
Ausgabedaten-Logik 610a besitzt ferner ein AND-Gatter 612,
welches das invertierte Zeitsteuersignal ITL und das Ausgangssignal
des F1ipFlops 610b – QUO<2> – als Eingangssignale empfängt und
auf der Grundlage dieser beiden Signale eine logische UND-Operation
durchführt.
Ein NOR-Gatter 613 empfängt die
Ausgangssignale der AND-Gatter 611 und 612 und
führt auf
der Grundlage dieser beiden Signale eine logische NOR-Operation durch.
-
Die
jeweiligen Ausgabedaten-Logikschaltungen 620a–690a der
weiteren Ausgabedaten-Register 620–690 sind mit der
Ausgabedaten-Logik 610a des ersten Ausgabedaten-Registers 610 identisch,
mit Ausnahme, daß das
Ausgangssignal des F1ipFlops der Ausgabedaten-Logik, welche das
benachbarte untere Bit bearbeitet, das Eingangssignal für die AND-Gatter 621–691 anstelle
des Auswahlsteuersignals SC bildet.
-
In
einer Zeitsteuerschaltung 100 der Parallelverarbeitungs-Divisionsschaltung,
wie sie in 2 dargestellt ist, besitzt ein
Rücksetzsignal
RSB einen niederen logischen Wert zum Auffrischen während der
Anfangsphase, so daß das
Ausgangssignal einer Zwischenspeicherschaltung 130 einen
niedrigen logischen Wert ausgeben kann, während ein Zeitsteuersignal,
welches das Ausgangssignal eines F1ipFlops 140 darstellt,
einen niederen logischen Wert ausgeben kann und ein Abwärtszähler 110 rückgesetzt werden
kann und eine 0 am Ausgang ausgibt.
-
Besitzt
das Rücksetzsignal
RSB einen hohen logischen Wert und wird während einer Periode eines Taktsignals
CK ein Startsignal S mit einem hohen logischen Wert eingegeben,
so besitzt das Ausgangssignal der Zwischenspeicherschaltung 130 einen
hohen logischen Wert, während
das Zeitsteuersignal TL mit einem Taktsignal CK synchronisiert wird und
einen hohen logischen Wert ausgibt, wodurch der Abwärtszähler 110 mit
dem Zählen
beginnt.
-
Wenn
der Ausgang des Abwärtszählers 110 den
Dezimalwert 10 ausgibt, wechselt die Erfassungsvorrichtung 120 von
einem hohen logischen Wert zu einem niederen logischen Wert, so
daß die Zwischenspeicherschaltung 130 ein
Ausgangssignal mit einem niederen logischen Wert abgibt, das FlipFlop 140 mit
dem Taktsignal CK synchronisiert ein Ausgangssignal mit niederem
logischen Wert ausgibt und der Abwärtszähler 110 zurückgesetzt
wird. Das bedeutet, daß das
Zeitsteuersignal TL einen hohen logischen Wert gemäß dem Startsignal
S ausgibt und mit dem Taktsignal CK synchronisiert ist, nachdem
es einen hohen logischen Wert besitzt, und einen niederen logischen
Wert ausgibt.
-
Während das
vorherstehend beschriebene Zeitsteuersignal TL einen hohen logischen
Wert aufweist, empfängt
die Parallelverarbeitungs-Divisionsschaltung Dividendendaten ADA<8:0> und Divisordaten BAT<8:0> und gibt Ausgabedaten
QUO<8:0> aus, die das Ergebnis
der Division darstellen.
-
Im
Datenregister 200 werden, wie in 4 dargestellt,
alle Divisorspeicherdaten REG<8:0> zurückgesetzt,
wenn ein Rücksetzsignal
RSB einen niederen Wert aufweist. Wenn das Rücksetzsignal RSB und das Startsignal
einen hohen Wert aufweisen, so empfängt jedes der Register 210, 220 und 230 die
divisorgespeicherten Daten REG<8:0>, invertiert sie, wobei
es mit dem Taktsignal synchronisiert ist, und gibt die in den jeweiligen
Registern 210, 220 und 230 gespeicherten
Ausgabedaten aus, wenn das Startsignal S einen niederen logischen Wert
aufweist. Das bedeutet, daß in
der Parallelverarbeitungs-Divisionsschaltung jedes Register mit
einem Taktsignal CK synchronisiert ist und Divisordaten BAT<8:0> empfängt, wenn
ein Startsignal S aufgrund von Divisordaten BAT<8:0> aktiv
ist, welche den Beginn der Division ausdrücken, wobei die divisorgespeicherten
Daten REG<8:0>, welche die invertierten
Daten der Divisordaten BAT<8:0> darstellen, so lange
ausgegeben werden, bis die Ausgabedaten der Division ausgegeben
werden.
-
In
einer Datenauswahlschaltung gemäß 5 besitzen
alle ersten und zweiten Steuersignale SHF und SP, welche die Ausgangssignale
der Auswahlsteuersignal-Erzeugungs schaltung 340 darstellen,
einen niederen logischen Wert, wenn ein Startsignal einen hohen
logischen Wert aufweist, so daß jede
Dividendendaten-Logik 310a und 320a Dividendendaten
ADA<8:0> auswählen kann,
eine Dividendendaten-Logik 330 des höchstwertigen Bits unter der
Dividendendaten-Logik 310a und 320a einen niederen
logischen Wert ausgeben kann, Auswahldaten ACC<8:0> als
Ausgangssignale der verschiedenen FlipFlops 310b und 320b mit
einem Taktsignal CK synchronisiert werden können und das Signal ADA<8:0> ausgeben, und ein
Steuerdatum ACC<9> als Ausgangssignal
des letzten FlipFlops 330b einen niederen logischen Wert
ausgeben kann.
-
Wenn
das Startsignal S einen niederen logischen Wert besitzt und ein
Auswahlsteuersignal SC auf einem hohen logischen Wert liegt, gibt
das zweite Auswahlsignal SP einen hohen logischen Wert und das erste
Steuersignal SHF einen niederen logischen Wert aus. Dies erlaubt,
daß die
Dividendendaten-Logik 310a des niederwertigsten Bit einen
niederen logischen Wert aufweisen kann, daß die Dividendendaten-Logik 320a und 320b der
weiteren Bits ein Subtraktionsausgabedatum S<8:0> auswählen kann, wobei
ein ausgewähltes
Datum ACC<8:1> und ein Steuerdatum
ACC<9> als Ausgangssignal
der verschiedenen FlipFlops 320b und 330b mit
dem Taktsignal CK synchronisiert werden kann und Subtraktionsausgabedaten
S<8:0> ausgegeben werden,
und ein Auswahldatum ACC<0> als Ausgangssignal
eines Auswahlregisters 310 mit dem niederwertigsten Bit
einen niederen logischen Wert ausgibt.
-
Wenn
das Startsignal S einen niederen logischen Wert besitzt und das
Auswahlsteuersignal SC einen niederen logischen Wert aufweist, so
gibt das erste Steuersignal SHF, welches eines der Ausgangssignale
der Auswahlsteuersignal-Erzeugungsschaltung 340 ist,
einen hohen logischen Wert aus. Das zweite Steuersignal SP gibt
einen hohen logischen Wert aus, so daß die Dividendendaten-Logik 310a des
niederwertigsten Bits einen niederen logischen Wert aufweisen kann,
daß die
Dividendendaten-Logik 320a und 330a der ande ren
Bits das Ausgangssignal des FlipFlops des vorhergehenden Zweiges
auswählen
kann, wobei ein Auswahldatum ACC<0> des niederwertigsten
Bits mit dem Taktsignal CK synchronisiert werden kann und einen
niederen logischen Wert ausgibt, und ein Auswahldatum ACC<8:1> und ein Steuerdatum
ACC<9> als die weiteren Bits
mit dem Taktsignal CK synchronisiert werden kann, wobei die in den
verschiedenen FlipFlops 310b und 320b gespeicherten
Daten um ein Bit nach links geschoben und anschließend ausgegeben
werden.
-
Wie
in 1 dargestellt, empfängt ein Subtrahierer 400 ein
Eingangs-Übertragsbit
mit einem hohen logischen Wert, Auswahldaten ACC<8:0> und Divisorspeicherdaten
REG<8:0>, wobei jedes Bit addiert
und ein Ausgabe-Übertragsbit
S<9> ausgegeben wird, welches
angibt, ob ein Überlauf
erzeugt wurde oder nicht. Da, wie vorherstehend beschrieben, die
Divisorspeicherdaten REG<8:0> Daten darstellen,
welche die invertierten Daten der Divisordaten BAT<8:0> sind, gibt der Subtrahierer 400 ein
Ausgangssignal ab, bei dem die Divisordaten BAT<8:0> von
den Auswahldaten ACC<8:0> subtrahiert worden
sind. Das bedeutet, daß der
Subtrahierer 400 die Funktion durchführt: "Auswahldaten ACC<8:0> – Divisordaten
BAT<8:0>".
-
Wie
in 1 dargestellt, empfängt eine Steuersignal-Erzeugungsschaltung 500 ein
Auswahldatum ACC<9>, einen Ausgabeübertrag
S<9> und ein Zeitsteuersignal
TL und gibt ein Auswahlsteuersignal SC mit einem hohen logischen
Wert aus, wenn ein Zeitsteuersignal TL einen hohen logischen Wert aufweist
und wenn das Auswahldatum ACC<9> oder der Ausgabeübertrag
S<9> einen hohen logischen Wert
besitzen, während
sie ein Auswahlsteuersignal SC mit einem niederen logischen Wert
in allen anderen Fällen
ausgibt.
-
In
der Ausgabedaten-Erzeugungsschaltung 600 wählt, wie
in 6 dargestellt, die erste Ausgabedaten-Logik 610a ein
Auswahlsteuersignal SC aus und gibt dieses ab, wenn das Zeitsteuersignal
TL auf "high" liegt. Die weiteren
Ausgabedaten-Logikschaltungen 620a–690a wählen entsprechend
die im benachbarten F1ipFlop des nächst tieferen Bits gespeicherten
Daten aus und geben diese ab. Die FlipFlops 610b–690b empfangen
die Ausgangssignale der Ausgabedaten-Logikschaltungen 610a–690a,
wobei sie mit einem Taktsignal CK synchronisiert sind und ein Ausgabedatum
QUO<8:0> ausgeben. Das bedeutet,
daß zum
Zeitpunkt, an dem das Steuersignal TL "high" ist,
das Auswahlsteuersignal SC empfangen wird, mit dem Taktsignal CK
synchronisiert wird und nacheinander um jeweils ein Bit nach links
verschoben wird. Der Schiebebefehl lautet wie folgt: ein Datum des
Auswahlsteuersignals SC wird im dritten Bit QUO<2> der
Ausgabedaten QUO<8:0> gespeichert, anschließend synchronisiert
mit dem Taktsignal CK und schließlich jeweils um ein Bit zum
Bit der nächsthöheren Position
nach links geschoben, so daß nach
der Verschiebung zum höchstwertigen
Bit QUO<8> der Ausgabedaten QUO<8:0> das Datum zum niederwertigsten
Bit QUO<0> und dann zum zweiten
Bit QUO<1> verschoben werden
kann.
-
Demzufolge
repräsentieren
in der erfindungsgemäßen Parallelverarbeitungs-Divisionsschaltung
gemäß 1 die
Ausgabedaten QUO<7:0> die Ausgabe, wenn
Dividendendaten ADA<8:0> durch Divisordaten
BAT<8:0> geteilt werden und
das höchstwertige
Bit QUO<8> der Ausgabedaten QUO<8:0> weggeworfen wird,
wodurch sich ein Fehler von ca. +1,5% bis –1,5% ergibt.
-
Die 7 zeigt
ein Schaubild, welches die Arbeitszeitabläufe der erfindungsgemäßen Parallelverarbeitungs-Divisionsschaltung
darstellt. Im dargestellten Beispiel besitzen die Dividendendaten ADA<8:0> den Dezimalwert 78
(Hexadezimalwert 04E) und die Divisordaten BAT<8:0> den
Dezimalwert 112 (Hexadezimalwert 070). In der nachfolgenden Beschreibung
werden alle Daten bzw. Werte hexadezimal aus-gedrückt.
-
Als
erstes legt das Resetsignal RSB zum Auffrischen bzw. Rücksetzen
der F1ipFlops und der Zwischenspeicherschaltungen einen niederen
logischen Wert an. Während
der Auffrischperiode geben das Zeitsteuersignal TL der Zeitsteuerschaltung 100 und
das Auswahlsteuersignal SC der Steuersignal-Erzeugungsschaltung 500 niedere
logische Werte aus. Die vom Datenregister 200 ausgegebenen
Divisorspeicherdaten REG<8:0>, die von der Datenauswahlschaltung 300 ausgegebenen
Auswahldaten S<8:0>, die vom Steuerdatum
ACC<9> und dem Subtrahierer 400 ausgegebenen
Subtraktionsausgabedaten S<8:0>, die von der Ausgabedaten-Erzeugungsschaltung 600 ausgegebenen
Ausgabedaten QUO<8:0>, und der Ausgabeübertrag
S<9> werden alle zurückgesetzt.
-
Nach
dieser Auffrischperiode legt das Rücksetzsignal RSB einen hohen
logischen Wert an.
-
Das
Startsignal S empfängt
die Dividendendaten ADA<8:0> sowie die Divisordaten
BAT<8:0> und zeigt den Beginn
des Empfangs dieser Daten an. Eine Zwischenspeicherschaltung 130 der
Zeitsteuerschaltung 100 besitzt einen hohen logischen Wert, wobei
das Zeitsteuersignal TL mit dem Taktsignal CK synchronisiert ist
und einen hohen logischen Wert aufweist. Ein Abwärtszähler 110 wird mit
dem nächsten
Taktsignal CK synchronisiert und beginnt zu zählen. Wenn das Ausgangssignal
des Abwärtszählers 110 den
Dezimalwert 10 erreicht, schaltet eine Erfassungsvorrichtung 120 von
einem hohen logischen Wert auf einen niederen logischen Wert um,
wodurch die Zwischenspeicherschaltung 130 zurückgesetzt wird,
das Zeitsteuersignal TL einen niederen logischen Wert ausgibt und
das Ausgangssignal DCO des Abwärtszählers 110 rückgesetzt
wird. Wenn die Dividendendaten und die Divisordaten jeweils N-Datenbits
aufweisen, so sollte das Zeitsteuersignal TL derart ausgestaltet
sein, daß es
einen hohen logischen Wert während
N-2 Taktzyklen beibehalten kann. Wenn also die Dividendendaten und
die Divisordaten jeweils 9 Bits an Informationen aufweisen, so behält das Zeitsteu ersignal
TL einen hohen logischen Wert während
sieben Taktzyklen bei.
-
Die
vom Datenregister 200 ausgegebenen Divisorspeicherdaten
REG<8:0> werden mit dem Taktsignal
CK synchronisiert, wenn das Startsignal S "high" ist,
und gibt so lange 18F aus (invertierter Wert von 010), bis die Ausgabedaten
QUO<8:0> als Ergebnis der Division
durch Zwischenspeichern des Datums, 18F, ausgegeben ist, wenn das
Startsignal "low" ist.
-
Wenn
das Startsignal S "high" ist, werden die Auswahldaten
ACC<8:0> mit dem ersten Takt
CK synchronisiert und Dividendendaten ADA<8:0> (04E) werden
ausgewählt,
während
das Steuerdatum ACC<9> einen niederen logischen
Wert aufweist. Der Subtrahierer 400 addiert 04E mit den
vorherstehend genannten Auswahldaten ACC<8:0> (18F)
als die Divisorspeicherdaten REG<8:0>, wobei ein hoher logischer
Wert den Eingangsübertrag
des Subtrahierers 400 darstellt.
-
Das
bedeutet, daß der
Subtrahierer 400 den Wert 010 als Divisordaten BAT<8:0> von 04E als Auswahldaten
ACC<8:0> subtrahiert. Demzufolge sind
die Subtraktionsausgabedaten S<8:0> des Subtrahierers 400 1DF
und der Ausgabeübertrag
S<9> besitzt einen niederen
logischen Wert. Das Auswahlsteuersignal SC, welches das Ausgangssignal
einer Steuersignal-Erzeugungsschaltung 500 darstellt, gibt entsprechend
den vorherstehend genannten Steuerdaten ACC<9> einen
niederen logischen Wert aus, während
der Ausgabeübertrag
S<9> einen niederen logischen
Wert und das Zeitsteuersignal TL einen hohen logischen Wert besitzt.
Die von der Ausgabedaten-Erzeugungsschaltung 600 ausgegebenen
Ausgabedaten QUO<8:0> geben den Ausgabewert
000 als gleichen Wert zu den vorhergehenden Daten aus.
-
Ein
von der Datenauswahlschaltung 300 ausgegebenes Auswahldatum
ACC<8:1> und ein Steuerdatum
ACC<9> werden mit dem zweiten
Taktsignal gemäß einem
Auswahlsteuersignal mit dem vorherstehend genannten niederen logischen
Wert synchronisiert, wobei ein um ein Bit nach links geschobenes
Datum ausgegeben wird. Das niederwertigste Bit ACC<0> der ausgewählten Daten ACC<8:0> gibt einen niederen
logischen Wert aus. Das bedeutet, daß die Auswahldaten ACC<8:0> den Wert 09C ausgeben
und das Steuerdatum ACC<9> einen niederen logischen
Wert ausgibt. Die Subtraktionsausgabedaten S<8:0> des
Subtrahierers 400 besitzen den Wert 02C, wobei der Ausgabeübertrag von
eins einen hohen logischen Wert aufweist. Das Steuerdatum ACC<9> besitzt einen niederen
logischen Wert, während
der Ausgabeübertrag
S<9> einen hohen logischen
Wert aufweist und das Zeitsteuersignal TL einen niederen logischen
Wert besitzt, so daß das
Auswahlsteuersignal SC einen hohen logischen Wert ausgibt und die
Ausgabedaten QUO<8:0> synchronisiert mit
dem dritten Taktsignal sind und den Datenwert 004 ausgeben.
-
Gemäß dem Auswahlsteuersignal
SC mit seinem vorherstehend genannten hohen logischen Wert, werden
die Auswahldaten ACC<8:1> sowie das Steuerdatum
ACC<9> mit dem dritten Taktsignal CK
synchronisiert, der Wert 02C ausgewählt, wobei das niederwertigste
Bit ACC<0> aus den Auswahldaten
einen niederen logischen Wert besitzt. Das bedeutet, daß die Auswahldaten
ACC<8:0> den Wert 058 besitzen
und das Auswahldatum ACC<9> einen niederen logischen
Wert aufweist. Die Subtraktionsausgabedaten S<8:0> besitzen
den Wert 1E8, während
der Ausgabeübertrag
S<9> einen niederen logischen
Wert aufweist. Das vorherstehend genannte Steuerdatum ACC<9> und der Ausgabeübertrag S<9> besitzen entsprechende
niedere logische Werte, wobei auch das Zeitsteuersignal TL einen
niederen logischen Wert aufweist, so daß das Auswahlsteuersignal SC
einen niederen logischen Wert ausgibt und die Ausgabedaten QUO<8:0> mit dem vierten Taktsignal
CK synchronisiert sind und einen Datenwert 008 ausgeben.
-
Gemäß dem vorherstehend
beschriebenen Verfahren werden die von der Datenauswahlschaltung 300 ausgegebenen
Auswahldaten ACC<8:0> mit dem vierten Taktsignal
CK synchronisiert, wobei ein Datenwert von 0B0 ausgegeben wird und
das Steuerdatum ACC<9> einen niederen logischen
Wert ausgibt. Die Subtraktionsausgabedaten S<8:0> des Subtrahierers 400 besitzen
den Wert 040, während der
Ausgabeübertrag
S<9> einen hohen logischen Wert
aufweist. Das vorherstehend beschriebene Steuerdatum ACC<9> und der Ausgabeübertrag S<9> besitzen einen hohen
logischen Wert, so daß das
Auswahlsteuersignal SC einen hohen logischen Wert ausgibt und die
Ausgabedaten QUO<8:0> mit dem fünften Taktsignal
CK synchronisiert sind und einen Datenwert von 014 ausgeben.
-
Die
von der Datenauswahlschaltung 300 ausgegebenen Auswahldaten
ACC<8:0> werden mit dem fünften Taktsignal
CK synchronisiert und geben einen Datenwert von 080 aus, während das
Steuerdatum ACC<9> einen niederen logischen
Wert ausgibt. Die Subtraktionsausgabedaten S<8:0> des Subtrahierers 400 besitzen
den Wert 010, während der
Ausgabeübertrag
S<9> einen hohen logischen Wert
aufweist. Das Steuerdatum ACC<9> besitzt einen niederen
logischen Wert, während
der Ausgabeübertrag
S<9> einen hohen logischen
Wert besitzt, so daß das
Auswahlsteuersignal SC einen hohen logischen Wert ausgibt und die
Ausgabedaten QUO<8:0> zum Ausgeben eines
Datenwerts von 02C mit dem sechsten Taktsignal CK synchronisiert sind.
-
Die
von der Datenauswahlschaltung 300 ausgegebenen Auswahldaten
ACC<8:0> werden mit dem sechsten
Taktsignal CK synchronisiert, wobei ein Datenwert von 020 ausgegeben
wird und das Steuerdatum ACC<9> einen niederen logischen
Wert ausgibt. Die Subtraktionsausgabedaten S<8:0> des Subtrahierers 400 besitzen
den Wert 1B0 und der Ausgabeübertrag
S<9> weist einen niederen
logischen Wert auf, so daß das
Auswahlsteuersignal SC einen niederen logischen Wert ausgibt und
die Ausgabedaten QUO<8:0> zum Ausgeben eines
Datenwerts von 058 mit dem siebten Taktsignal CK synchronisiert
werden.
-
Die
von der Datenauswahlschaltung 300 ausgegebenen Auswahldaten
ACC<8:0> werden mit dem siebten
Taktsignal CK synchronisiert, wobei ein Datenwert von 040 ausgegeben
wird und das Steuerdatum ACC<9> einen niederen logischen
Wert ausgibt. Die Subtraktionsausgabedaten S<8:0> des Subtrahierers 400 besitzen
den Wert 1D0, und der Ausgabeübertrag
S<9> besitzt einen niederen
logischen Wert, so daß das
Auswahlsteuersignal SC einen niederen logischen Wert ausgibt und
die Ausgabedaten QUO<8:0> zum Ausgeben eines
Datenwerts von 0B0 mit dem achten Taktsignal CK synchronisiert werden.
-
Die
von der Datenauswahlschaltung 300 ausgegebenen Auswahldaten
ACC<8:0> werden mit dem achten
Taktsignal CK synchronisiert, wobei ein Datenwert von 080 ausgegeben
wird und das Steuerdatum ACC<9> einen niederen logischen
Wert ausgibt. Die Subtraktionsausgabedaten S<8:0> des Subtrahierers 400 besitzen
den Wert 010, wobei der Ausgabeübertrag
S<9> einen hohen logischen
Wert aufweist und das vorherstehend genannte Zeitsteuersignal TL
einen niederen logischen Wert besitzt, so daß das Auswahlsteuersignal SC
einen niederen logischen Wert ausgibt.
-
Dadurch
wird der Datenwert 0B0 als Ausgabedaten QUO<8:0> erzeugt,
die mit dem achten Taktsignal CK synchronisiert erzeugt werden,
wobei ihre binäre
Form den Wert 010110000 besitzt. Zu diesem Zeitpunkt wird das höchstwertige
Bit abgeschnitten bzw. weggeworfen, wodurch der Wert 10110000 übrig bleibt,
der in dezimaler Schreibweise als 1·1/2 + 1·1/8 + 1·1/16 = 0,6875 ausgedrückt werden
kann. Da gemäß dem vorherstehend
beschriebenen Beispiel die Dividendendaten ADA<8:0> den
Dezimalwert 76 besitzen und die Divisordaten BAT<8:0> den Dezimalwert
112 aufweisen, beträgt
das Ergebnis der Division 76/112 = 0,6785.
-
Demzufolge
kann eine vereinfachte Schaltung aufgebaut werden, mit der eine
Division durchgeführt
werden kann, die lediglich einen Fehler von ±1,5% im Vergleich zum tatsächlichen
Ergebnis aufweist.
-
Es
versteht sich von selbst, daß verschiedene
weitere Änderungen
und Modifikationen vom Fachmann durchgeführt werden können, ohne
vom Umfang und von den Grundzügen
dieser Erfindung abzuweichen.
-
Eine
Parallelverarbeitungs-Divisionsschaltung empfängt Dividendendaten, Divisordaten,
die größer als
die Dividendendaten sind, ein Startsignal sowie ein Resetsignal
und gibt den Quotienten aus. Die Schaltung besitzt eine Zeitsteuerschaltung,
welche die Arbeitsabläufe
steuert. Ein Datenregister empfängt
die Divisordaten und gibt Divisorspeicherdaten aus, die die invertierten
Divisordaten darstellen und synchron mit dem Taktsignal gemäß dem Startsignal
sind. Eine Datenauswahlschaltung empfängt die Dividendendaten, das
Startsignal und das Taktsignal, und wählt ein Datum aus, welches
ein Dividendendatum oder ein existierendes ausgewähltes, gemäß dem Startsignal
um ein Bit nach links geschobenes Datum ist, oder Daten, die verschobene
Daten darstellen, wobei die Divisorspeicherdaten von den existierenden
Auswahldaten subtrahiert werden, um ein Bit nach links verschoben
werden und anschließend
Auswahldaten und Steuerdaten ausgegeben werden. Ein Subtrahierer
empfängt
die Divisorspeicherdaten und die Auswahldaten und gibt die Subtraktionsausgabedaten
sowie einen Ausgabeübertrag,
welcher einen Überlauf
im Ergebnis der Subtraktion anzeigt, aus. Eine Steuersignal-Erzeugungsschaltung
empfängt
das Zeitsteuersignal, die Steuerdaten und den Ausgabeübertrag
und gibt ein Auswahlsteuersignal mit einem hohen logischen Wert aus,
wenn das Zeitsteuersignal einen hohen logischen Wert aufweist und
wenn entweder das Steuerdatum oder der Ausgabeübertrag einen hohen logischen
Wert aufweist. Eine Ausgabedaten-Erzeugungsschaltung empfängt das
Zeitsteuersi gnal, das Auswahlsteuersignal und ist gemäß dem Zeitsteuersignal
mit dem Taktsignal synchronisiert, wobei das Auswahlsteuersignal
gespeichert wird und durch Verschiebung des Auswahlsteuersignals
um ein Bit nach links Daten ausgegeben werden.