DE3785624T2 - Digitaler signalprozessor mit dividierfunktion. - Google Patents
Digitaler signalprozessor mit dividierfunktion.Info
- Publication number
- DE3785624T2 DE3785624T2 DE8787307564T DE3785624T DE3785624T2 DE 3785624 T2 DE3785624 T2 DE 3785624T2 DE 8787307564 T DE8787307564 T DE 8787307564T DE 3785624 T DE3785624 T DE 3785624T DE 3785624 T2 DE3785624 T2 DE 3785624T2
- Authority
- DE
- Germany
- Prior art keywords
- signal
- significant bit
- accumulator
- digital
- acc1
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 102100039164 Acetyl-CoA carboxylase 1 Human genes 0.000 description 18
- 101710190443 Acetyl-CoA carboxylase 1 Proteins 0.000 description 18
- 230000000295 complement effect Effects 0.000 description 3
- 102100021641 Acetyl-CoA carboxylase 2 Human genes 0.000 description 1
- 101000677540 Homo sapiens Acetyl-CoA carboxylase 2 Proteins 0.000 description 1
- 101000894929 Homo sapiens Bcl-2-related protein A1 Proteins 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5352—Non-restoring division not covered by G06F7/5375
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
- Die Erfindung bezieht sich auf einen digitalen Signalprozessor und insbesondere auf einen digitalen Signalprozessor, bei dem die Division eines positiven N-Bit-Dividenten durch einen positiven Divisor in N+1 Prozessorzyklen ausgeführt werden kann.
- Digitale Signalprozessoren unter Verwendung eine Mikrocomputers wurden entwickelt, um eine Vielzahl von Aufgaben wirkungsvoller durchzuführen, als dies allgemein unter Verwendung eines Universalrechners erreicht werden kann. Eine übliche Divisionstechnik, die bei derartigen digitalen Signalprozessoren verwendet wird, verwendet einen Divisions-Algorithmus mit der Basis 2 ohne Bildung eines positiven Restes. Eine derartige bekannte Operation verwendet die in Tabelle I gezeigte Folge, wobei die Ergebnisse jedes Verarbeitungsschrittes wiederholt in zwei Akkumulatoren gespeichert werden, um den abschließenden Quotienten und den Rest abzuleiten.
- In Schritt 1 der Tabelle I wird ein Akkumulator ACC1, der schließlich den Rest R enthält, auf 0 initialisiert. Ein Akkumulator ACC0, der schließlich den Quotienten Q enthält, wird mit dem Dividenden d geladen.
- In Schritt 2a wird der Rest R zunächst überprüft, um festzustellen, ob er kleiner als 0 ist. Die dann vorhandenen R- und Q-Werte in den Akkumulatoren ACC1 bzw. ACC0 werden dann beide verdoppelt und das höchstbewertete Bit q des Dividenden d, der derzeit in dem Akkumulator ACC0 gespeichert ist, wird zum Rest R hinzuaddiert. Dann wird in Abhängigkeit von dem Ergebnis der Überprüfung des Restes R der Divisor D entweder zu dem dann geltenden Wert des Restes R addiert oder von diesem subtrahiert, um einen neuen Wert für den Rest abzuleiten, der erneut im Akkumulator ACC1 gespeichert wird.
- Wenn der derzeitige Wert des Restes R negativ ist, so bleibt im Schritt 2b der Quotient Q in dem Akkumulator ACC0 der gleiche. Wenn andererseits der Wert von R größer oder gleich 0 ist, so wird der Wert des Quotienten Q in dem Akkumulator ACC0 um 1 erhöht.
- Sobald der Schritt 2 n-mal wiederholt wurde (wobei n gleich der Anzahl der Binärbits in dem Dividenden d ist), so wird der Schritt 3 einmal ausgeführt, um den Rest R auf einen positiven Wert zurückzusetzen, wenn der derzeitige Wert in dem Akkumulator ACC1 negativ ist.
- Wie dies gut bekannt ist, können die Werte von R und Q im Schritt 2a dadurch verdoppelt werden, daß sie um eine Position in den Registern ACC1 und ACC0 verschoben werden. Es ist zu erkennen, daß es erforderlich ist, den Wert von R zweimal während jeder Iteration der Dividieroperation zu überprüfen, um einerseits festzustellen, ob D zu R addiert oder von diesem subtrahiert werden sollte, wie dies im Schritt 2a angegeben ist, und um dann festzustellen, ob der Quotient Q gleich bleiben sollte oder um eins erhöht werden sollte, wie dies im Schritt 2b angegeben ist. Unter Verwendung dieser üblichen Technik muß daher der Rest R zweimal während jedes Schrittes des Dividiervorganges überprüft werden. Weil es erforderlich ist, den Wert von R während jeder Iteration des Schrittes 2 zweimal zu überprüfen, ist die Anzahl der Befehlszyklen im wesentlichen gleich dem doppelten der Anzahl von Binärbits in dem Dividenden d. Der Schritt 3 ist erforderlich, um den Rest auf einen positiven Wert zurückzusetzen, sofern das Ergebnis in dem Akkumulator ACC2 negativ ist, nachdem der Schritt 2 n-mal wiederholt wurde.
- Es wurde festgestellt, daß durch die Verwendung eines Akkumulators, eines Schieberegisters und geeignetes Festlegen der Befehlszyklen, die von einer aufgeteilten Aritmethik-Logik-Einheit ausgeführt werden, ein Dividieralgorithmus verwendet werden kann, der N+1 Befehlszyklen aufweist, worin N gleich der Anzahl der Binärbits in dem Dividenden ist.
- Entsprechend wird gemäß der vorliegenden Erfindung ein digitaler Signalprozessor zur Division eines digitalen Dividendensignals durch ein digitales Divisorsignal zur Gewinnung eines digitalen Quotientensignals und eines digitalen Restsignals geschaffen, wie er im Anspruch 1 beansprucht ist.
- Eine beispielhafte Ausführungsform der Erfindung wird im folgenden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
- Fig. 1 ein Blockschaltbild eines digitalen Signalprozessors ist, der den Divisionsalgorithmus der vorliegenden Erfindung ausführen kann, und
- Fig. 2 ein Flußdiagramm des Divisionsalgorithmus ist, der in dem in Fig. 1 gezeigten digitalen Signalprozessor gerätemäßig ausgeführt werden kann.
- Bei der Division einer Binärzahl ist die Quotientenziffer, die sich aus jedem Prozessorzyklus ergibt, entweder eine '1' oder eine '0'. Diese kann durch Subtrahieren des Divisors von dem Rest und Betrachtung des Vorzeichens des Ergebnisses bestimmt werden. Wenn die Ziffer negativ ist, so muß der Divisor zurückaddiert werden, um den Rest wieder herzustellen, und das Quotientenbit wird auf '0' gesetzt. Wenn die Quotientenziffer null oder positiv ist, so wird der neue Rest zum Ergebnis der Subtraktion, und das Quotientenbit wird auf '1' gesetzt. Wie in jeder handschriftlichen Division wird dann eine Ziffer nach jedem Schritt herabgezogen. Als Ergebnis hiervon müssen N derartige Schritte für die Division eines positiven binären N- Bit-Dividenden ausgeführt werden. Das Herabziehen einer binären Ziffer verdoppelt im Ergebnis den Rest und addiert eine neue Ziffer zu diesem. Dies kann dadurch erreicht werden, daß der Rest um eine Position in einem Register verschoben und die heruntergezogene Ziffer in die niedrigst bewertete Position gebracht wird. Wenn sich beim Subtrahieren des Divisors von dem Rest ein negativer Wert ergibt, so muß der Divisor zurückaddiert werden, um den Rest wieder herzustellen, weil damit festgestellt wurde, daß der derzeitige Wert des Restes kleiner als der Divisor war.
- Wie dies in der Erläuterung des Standes der Technik anhand der Tabelle I erläutert wurde, erfordert jeder Verarbeitungszyklus der Division zwei aufeinanderfolgende Überprüfungen des Wertes des Restes R. Die zweite Überprüfung wurde durch die Verwendung eines modifizierten Divisionsalgorithmus mit einem modifizierten digitalen Signalprozessor zur Ausführung dieser Funktion beseitigt. Dies wird besser anhand der Tabelle II verständlich, die den Divisionsalgorithmus der vorliegenden Erfindung zeigt.
- Bei diesem Divisionsalgorithmus wird der Akkumulator ACC1, der schließlich den Rest R enthält, auf 0 initialisiert, während der Akkumulator ACC0, der schließlich den Quotienten Q enthält, auf den Wert des Dividenden D initialisiert wird.
- Im Schritt 2 der Tabelle II wird dann eine Überprüfung durchgeführt, um festzustellen, ob der derzeitige Wert von R in dem Akkumulator ACC1 kleiner als 0 ist, und zwar dadurch, ob überprüft wird, ob sein negatives Vorzeichenbit gesetzt ist. Als nächstes werden die derzeitigen Werte des Restes R und des Quotienten Q verdoppelt, und das höchstbewertete Bit (MSB), das in dem Akkumulator ACC0 gespeichert ist, wird zu dem von ACC1 hinzuaddiert. Dies wird sehr einfach in einer einzigen Operation dadurch erreicht, daß das gesamte Signal von dem Ausgang des Akkumulators ACC um eine Bitposition verschoben wird, während es in das Register SR eintritt. Der Wert des Divisors D wird dann zu dem des Restes R hinzuaddiert und das Ergebnis erneut im Akkumulator ACC0 gespeichert, während der Wert des Quotienten Q um 1 vergrößert wird. Anderenfalls wird nach Verdoppeln und Addieren des höchstbewerteten Bits (MSB) der Wert des Divisors D von dem des Restes R subtrahiert, während der Quotient Q unverändert bleibt. Der Schritt wird N-mal wiederholt, was gleich der Anzahl von Bits in dem Dividenden d ist.
- Im Schritt 3 wird, wenn der Rest R negativ ist, der Wert des Divisors D zum Rest hinzuaddiert, um den Rest auf eine positive ganze Zahl zurückzubringen. Weiterhin wird zur Erzielung des richtigen Wertes des Quotienten Q dessen derzeitiger Wert erneut in dem Akkumulator ACC1 verdoppelt und dann durch Wiederholen des Schrittes 2 um 1 vergrößert. Dies führt zu dem komplementären Wert, der leicht invertiert werden kann, um den richtigen Ausgangswert abzuleiten. Im Schritt 3 ist, wenn der Rest R nicht negativ ist, der derzeitige Wert des Restes R richtig. Der Wert des Quotienten Q wird durch Wiederholen des Schrittes 2 und durch Invertieren des Ergebnisses gewonnen. Als Ergebnis hiervon kann die Division eines binären N-Bit-Dividenden in N+1 Operationszyklen im Gegensatz zu 2N+1 Zyklen für den in Tabelle 1 definierten Divisionsalgorithmus vervollständigt werden. Dies wird durch die Verwendung eines modifizierten digitalen Signalprozessors der in Fig. 1 gezeigten Art erzielt, wenn dieser so programmiert ist, daß er die Flußdiagrammfolge gemäß Fig. 2 verwendet.
- Wie dies aus den Figuren 1 und 2 zu erkennen ist, schließt der digitale Signalprozessor eine Arithmetikeinheit 5 ein, bei der ein digitales 16-Bit-Dividendensignal d über Eingangsdaten, die über eine Sammelschiene 11 empfangen werden, in ein XR-Register geladen wird. Das Divisorsignal D wird dann in ein YR-Register 12 geladen, und zwar ebenfalls über von der Sammelschiene 11 empfangene Daten. Das Dividendensignal d ist weiterhin mit einem N-Zykluszähler 13 gekoppelt, in dem die Anzahl der signifikanten Bits des 16-Bit-Wortes zu Anfang bestimmt wird. Das Dividendensignal d von dem XR-Register 10 wird über einen Multiplexer 14 zu dem niedrigstbewerteten Bitabschnitt SR0 eines 32-Bit-Schieberegisters 15 überführt. Der höchstbewertete Bitabschnitt SR1 des Schieberegister 15 wird gleichzeitig auf 0 initialisiert. Dieses gesamte Binärsignal wird dann von den SR0- und SR1-Abschnitten des Registers 15 über eine Arithmetik-Logik-Einheit (ALU) 20 und über eine 32-Bit-Sammelschiene auf die ACC0- bzw. ACC1-Abschnitte eines Akkumulators 21 überführt, um den Initialisierungsschritt 1 der Tabelle II zu vervollständigen. Diese Folge ist im Schritt 1 des Flußdiagramms nach Fig. 2 gezeigt.
- Die ALU 20 ist aus zwei üblichen unabhängig steuerbaren 16-Bit- Einheiten gebildet, von denen eine den höchstbewerteten (MSB-) Bitabschnitt bildet, während die andere den niedrigstbewerteten (LSB-) Bitabschnitt bildet. Die höchstbewerteten und niedrigstbewerteten Abschnitte der ALU 20 können selektiv miteinander verknüpft oder verkettet werden, um zwei 16-Bit-Operationen oder eine 32-Bit-Operation auszuführen, wobei der Akkumulator ACC0 die niedrigstbewerteten Bits hält, während der Akkumulator ACC1 die höchstbewerteten Bits des binären Ergebnissignals hält.
- Während das Signal von dem Schieberegister 15 zum Akkumulator 21 überführt wird, prüft die Arithmetik-Logik-Einheit 20, ob das negative Vorzeichenbit des Akkumulators gesetzt ist, was somit eine negative Zahl anzeigt. Diese anfängliche Überprüfung führt selbstverständlich immer zur Antwort 'falsch', weil der Akkumulator ACC1 auf 0 initialisiert wurde. Unabhängig von dem Ergebwird das gesamte Signal von dem Akkumulator 21 dem Eingang des Schieberegisters 15 zugeführt und dann verdoppelt, indem es um eine Bitposition in Richtung auf das höchstbewertete Bit-Ende des Registers 15 verschoben wird. Während dieser Stufe sind die niedrigst- und höchstbewerteten Bitabschnitte SR0 und SR1 des Registers 15 miteinander verkettet oder verknüpft. Dies führt automatisch dazu, daß das höchstbewertete Bit des Dividenden D in dem Schieberegister SR0 zu dem derzeitigen Wert des Restes R in dem Schieberegister SR1 hinzuaddiert wird.
- Wie dies im Schritt 2 des Flußdiagramms in Fig. 2 gezeigt ist, wird, wenn die Überprüfung 'falsch' ergibt, das Binärsignal in dem SR0-Abschnitt des Registers 15 dann (über die Arithmetik- Logik-Einheit 20) zum ACC0-Abschnitt des Akkumulators 21 übertragen, während der Divisor D von dem YR-Register 12 von dem Binärsignal in dem höchstbewerteten Bitabschnitt des Registers 15 (in der Einheit 20) subtrahiert wird, wobei das Ergebnis in dem Akkumulator ACC1 gespeichert wird.
- Jedesmal dann, wenn die Überprüfung im Schritt 2 der Tabelle II ergibt, daß das in dem Akkumlator gespeicherte Ergebnis negativ ist, so daß sich ein Prüfergebnis 'wahr' ergibt, so wird nach dem Verdoppeln des Wertes in dem Schieberegister 15 der derzeitige Wert des Quotienten Q in dem Schieberegister SR0 um 1 erhöht, während der Divisor D von dem Register YR zum derzeitigen Wert des Restes R hinzuaddiert wird. Dieser letztere Schritt bringt den Rest auf eine positive ganze Zahl zurück.
- Die Zählung des N-Zählers 13 wird dann um 1 verringert, und es wird eine Überprüfung durchgeführt, um festzustellen, ob die verbleibende Zählung gleich 0 ist. Das Ergebnis wird an die Steuer- und Zeitsteuereinheit 6 übertragen, die die Recheneinheit 5 steuert. Diese Überprüfung stellt sicher, daß der Schritt 2 des Divisionsalgorithimus N+1-mal wiederholt wird, wobei N gleich der Anzahl der binären Bits in dem Dividenden d ist. Eine zweite Überprüfung wird dann durchgeführt, um festzustellen, ob die verbleibende Zählung gleich 0 ist. Wenn dies nicht der Fall ist, so wird der Schritt 2 der Tabelle II wiederholt. Nach N Wiederholungen dieses Schrittes tritt der Algorithmus in den Schritt 3 ein.
- Im Schritt 3 wird gemäß Fig. 2 der derzeitige Wert des Restes R in dem Akkumulator ACC1 erneut überprüft, um festzustellen, ob er negativ ist. Wenn die Überprüfung des Restes das Ergebnis 'falsch' ergibt, so wird der Wert in dem Schieberegister 15 direkt zum Akkumulator 21 übertragen, um auf diese Weise den abschießenden Wert des Restes R am Ausgang des Akkumulators ACC1 abzuleiten. Wenn andererseits die Überprüfung das Ergebnis 'wahr' ergibt, was anzeigt, daß der derzeitige Wert des Restes R negativ ist, so wird der Divisor D erneut zum Rest R hinzuaddiert, um ihn auf einen positiven Wert zurückzusetzen und um den endgültigen Wert des Restes R abzuleiten. Der Schritt 2 wird dann einmal mehr wiederholt, um den komplementierten Wert des Quotienten Q am Ausgang des Akkumulators ACC0 zu gewinnen. Der richtige Wert des Quotienten Q kann dann durch Invertieren des Ausganges des Akkumulators ACC0 gewonnen werden. Es sei bemerkt, daß die Teile des Schrittes 2, die den Akkumulator ACC1 betreffen, während dieses abschließenden Schrittes nicht ausgeführt werden müssen, weil der Rest 'R' bereits bestimmt wurde. Die Wiederholung des vollständigen Schrittes vereinfacht jedoch den Gesamtalgorithmus.
- Es ist wichtig, festzustellen, daß bei diesem Divisionsalgorithmus die Anzahl der Verarbeitungsschritte im wesentlichen halbiert wird, und zwar aufgrund von zwei funktionellen Unterschieden. Die ALU ist in zwei selektiv miteinander verknüpfte oder verkettete unabhängig steuerbare Abschnitte aufgeteilt, so daß die Werte selektiv verarbeitet werden können, um eine dieser Forderungen zu erfüllen. Um diesen Vorteil voll ausznutzen, wird das Komplement des Quotienten Q in dem Akkumulator ACC0 gespeichert. Auf diese Weise führen beide Hälften der ALU 20 gleichzeitig einen Addier- (+D, +1) oder einen Subtrahier- (-D, -0) Schritt aus. Der tatsächliche Wert des Quotienten Q kann ebenfalls sehr einfach am Ausgang des Akkumulators ACC0 dadurch gewonnen werden, daß das Komplement seines Wertes bei Vervollständigung des Divisionsalgorithmus gebildet wird. Bei vielen Speicherregistern stehen beide Werte direkt von dem Register zur Verfügung.
- Wenn das negative Vorzeichenbit des Akkumulators gesetzt ist (was anzeigt, daß eine negative Zahl in diesem gespeichert ist), so führt die ALU 20 die folgenden Schritte aus: ACC0 = SRO + 1 und ACC1 = SR1 + YR. Wenn andererseits das negative Vorzeichenbit nicht gesetzt ist, so führt die ALU 20 die Schritte ACC0 = SR0 und ACC1 = SRI - YR aus, wie dies im Schritt 2 nach Fig. 2 gezeigt ist. Es ist die wiederholte Anwendung des Schrittes 2, die es ermöglicht, daß die Anzahl der Zyklen, die zur Vervollständigung der Divisionsoperation benötigt werden, im wesentlichen halbiert wird. TABELLE I (STAND DER TECHNIK) OPERATIONEN Initialisiere: Wiederhole n-mal: wenn R< 0: sonst: TABELLE II OPERATIONEN Initialisiere: Wiederhole N-mal: wenn R< 0: sonst: einmal Q = (nicht)
- worin:
- d = DIVIDEND n BITS
- D = DIVISOR m BITS
- R = REST n BITS
- Q = QUOTIENT n BITS
- q = QUOTIENT MSB
Claims (1)
1. Digitaler Signalprozessor zur Division eines digitalen
Dividendensignals (d) durch ein digitales Divisorsignal (D)
zur Gewinnung eines digitalen Quotientensignals (Q) und eines
digitalen Restes (R), wobei der Prozessor folgende Teile umfaßt
eine Arithmetik-Logik-Einheit (alu) (20) mit selektiv
verketteten, unabhängig steuerbaren höchst- (MSB-) und
niedrigst- (LSB-) bewerteten Bitabschnitten mit ersten bzw.
zweiten Eingängen und ersten bzw. zweiten Ausgängen,
einen Akkumulator (acc) (21) mit höchst- (msb-) (ACC1-)
und niedrigst (lsb-) (ACC0-) bewerteten Bitabschnitten mit
jeweiligen Eingängen, die mit den ersten und zweiten Ausgängen
der Arithmetik-Logik-Einheit verbunden sind,
ein Schieberegister (Sr) (15) mit höchst- (SR1-) und
niedrigst (SR0-) bewerteten Bitabschnitten mit jeweiligen
Eingängen, die mit den höchst- (ACC1-) bzw. niedrigst- (ACC0-)
bewerteten Bitabschnitten des Akkumulators verbunden sind, mit
einem zusätzlichen Signaleingang und mit einem Ausgang, der mit
dem zweiten Eingang der Arithmetik-Logik-Einheit (20) verbunden
ist, wobei der digitale Signalprozessor weiterhin
Steuereinrichtungen (6) zur Steuerung der Division des
Dividendensignales in den folgenden Schritten einschließt:
(a) Laden des Dividendensignals in den
niedrigstbewerteten Bitabschnitt (ACC0) des Akkumulators (21) über den
zusätzlichen Signaleingang, das Schieberegister und die Arithmetik-
Logik-Einheit, und Initialisieren des höchstbewerteten
Bitabschnittes (ACC1) des Akkumulators auf Null,
(b) Überprüfen in der Arithmetik-Logik-Einheit (20), ob
der derzeitige Wert des Digitalsignals von dem höchstbewerteten
Bitabschnitt (ACC1) des Akkumulators (21) negativ ist,
(c) Verschieben des Signals von den höchstbewerteten
und niedrigstbewerteten Bitabschnitten des Akkumulators (21) als
ein verkettetes Signal in das Schieberegister (15), um dessen
Wert zu verdoppeln,
(d) in Abhängigkeit von einem negativen höchstbewerteten
Signal in dem Akkumulator, Steuern der höchst- und
niedrigstbewerteten Bitabschnitte der Arithmetik-Logik-Einheit derart,
daß gleichzeitig in dem höchstbewerteten Bitabschnitt der
Arithmetik-Logik-Einheit (20) der Wert des Divisorsignals (D)
zu dem derzeitigen Wert des Signals von dem höchstbewerteten
Bitabschnitt (SR1) des Schieberegisters (15) addiert und das
resultierende Signal in dem höchstbewerteten Bitabschnitt (ACC1)
des Akkumulators (21) gespeichert wird, während
(e) in dem niedrigstbewerteten Bitabschnitt der
Arithmetik-Logik-Einheit (20) der Wert des Signals von dem
niedrigstbewerteten Bitabschnitt (SR0) des Schieberegisters (15)
um eins vergrößert wird und das resultierende Signal in dem
niedrigstbewerteten Bitabschnitt (ACC0) des Akkumulators (21)
gespeichert wird,
(f) in Abhängigkeit von einem nicht negativen
höchstbewerteten Signal in dem Akkumulator, Steuern der höchst- und
niedrigstbewerteten Bitabschnitte der Arithmetik-Logik-Einheit
zur gleichzeitigen Überführung des Inhaltes des
niedrigstbewerteten Bitabschnittes (SR0) des Schieberegisters (15) zum
niedrigstbewerteten Bitabschnitt (ACC0) des Akkumulators (21),
während in dem höchstbewerteten Bitabschnitt der Arithmetik-
Logik-Einheit (20) der Wert des Divisorsignals von dem
derzeitigen Wert des Signals am Ausgang des höchstbewerteten
Bitabschnitts (SR1) des Schieberegisters (15) subtrahiert und das
resultierende Signal in dem höchstbewerteten Bitabschnitt (ACC1)
des Akkumulators (21) gespeichert wird,
(g) in Abhängigkeit von einem N-Zyklus-Zähler (13),
Wiederholen der Schritte (b) - (f) N-mal, worin N gleich der
Anzahl der Bits des Dividendensignals ist, dann
(h) Wiederholen des Schrittes (b),
(j) in Abhängigkeit von einem negativen höchstbewerteten
Bitsignal in dem Akkumulator, Wiederholen der Schritte (d), (c),
(d) und (e) aufeinanderfolgend zur Ableitung des digitalen
Restsignals (R) von dem höchstbewerteten Bitabschnitt (ACC1) und
des invertierten digitalen Quotientensignals (Q) von dem
niedrigstbewerteten Bitabschnitt (ACC0) des Akkumulators (21),
und
(k) in Abhängigkeitvon einem nicht negativen
höchstbewerteten Bitsignal in dem Akkumulator, Ableiten des digitalen
Restsignals (R) von dem höchstbewerteten Bitabschnitt (ACC1) des
Akkumulators (21), und Wiederholen des Schrittes (c) zur
Ableitung des invertierten digitalen Quotientensignals (Q) aus
dem niedrigstbewerteten Bitabschnitt (ACC0) des Akkumulators
(21).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000517133A CA1252213A (en) | 1986-08-28 | 1986-08-28 | Digital signal processor with divide function |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3785624D1 DE3785624D1 (de) | 1993-06-03 |
DE3785624T2 true DE3785624T2 (de) | 1993-08-05 |
Family
ID=4133827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8787307564T Expired - Fee Related DE3785624T2 (de) | 1986-08-28 | 1987-08-26 | Digitaler signalprozessor mit dividierfunktion. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4761758A (de) |
EP (1) | EP0258051B1 (de) |
JP (1) | JP2579321B2 (de) |
CA (1) | CA1252213A (de) |
DE (1) | DE3785624T2 (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4878190A (en) * | 1988-01-29 | 1989-10-31 | Texas Instruments Incorporated | Floating point/integer processor with divide and square root functions |
JPH02194430A (ja) * | 1989-01-24 | 1990-08-01 | Oki Electric Ind Co Ltd | 除算器 |
FR2658932A1 (fr) * | 1990-02-23 | 1991-08-30 | Koninkl Philips Electronics Nv | Procede de codage selon la methode dite rsa, par un microcontroleur et dispositif utilisant ce procede. |
GB2296350B (en) * | 1994-12-21 | 1999-10-06 | Advanced Risc Mach Ltd | Data processing divider |
US6125380A (en) * | 1998-04-13 | 2000-09-26 | Winbond Electronics Corporation | Dividing method |
US7230550B1 (en) * | 2006-05-16 | 2007-06-12 | Motorola, Inc. | Low-complexity bit-robust method and system for combining codewords to form a single codeword |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3293418A (en) * | 1964-07-08 | 1966-12-20 | Control Data Corp | High speed divider |
DE1774289A1 (de) * | 1968-05-17 | 1971-09-09 | Elektronische Rechenmasch Ind | Verfahren und Vorrichtung zur binaeren Division |
US4238833A (en) * | 1979-03-28 | 1980-12-09 | Monolithic Memories, Inc. | High-speed digital bus-organized multiplier/divider system |
US4320464A (en) * | 1980-05-05 | 1982-03-16 | Control Data Corporation | Binary divider with carry-save adders |
EP0042452B1 (de) * | 1980-06-24 | 1984-03-14 | International Business Machines Corporation | Signalprozessorrechneranordnung und Verfahren zum Betrieb der Anordnung |
JPS6054070A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 演算装置 |
JPS60134343A (ja) * | 1983-12-22 | 1985-07-17 | Hitachi Ltd | 除算方式 |
JPS60247736A (ja) * | 1984-05-24 | 1985-12-07 | Matsushita Electric Ind Co Ltd | 除算回路 |
-
1986
- 1986-08-28 CA CA000517133A patent/CA1252213A/en not_active Expired
- 1986-09-02 US US06/902,988 patent/US4761758A/en not_active Expired - Lifetime
-
1987
- 1987-08-25 JP JP62209411A patent/JP2579321B2/ja not_active Expired - Lifetime
- 1987-08-26 EP EP87307564A patent/EP0258051B1/de not_active Expired - Lifetime
- 1987-08-26 DE DE8787307564T patent/DE3785624T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0258051A2 (de) | 1988-03-02 |
DE3785624D1 (de) | 1993-06-03 |
EP0258051A3 (en) | 1990-09-19 |
EP0258051B1 (de) | 1993-04-28 |
JPS6362035A (ja) | 1988-03-18 |
US4761758A (en) | 1988-08-02 |
JP2579321B2 (ja) | 1997-02-05 |
CA1252213A (en) | 1989-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2139731C2 (de) | Anordnung zur Code-Umsetzung | |
DE2502910C2 (de) | Informations-Sortiereinrichtung | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE2524749C2 (de) | Digitale Filteranordnung | |
DE3700323C2 (de) | ||
DE2902496A1 (de) | Digitale datenmultiplikationsanordnung | |
DE1197650B (de) | Parallel-Addierer | |
DE2440389A1 (de) | Vorrichtung zum verschieben von digitalen informationen in datenverarbeitungsgeraeten | |
DE3701599C2 (de) | ||
DE3852576T2 (de) | Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen. | |
DE3785624T2 (de) | Digitaler signalprozessor mit dividierfunktion. | |
DE2830334C2 (de) | ||
DE2310553C2 (de) | Vorrichtung zur Durchführung von Operationen an zwei binären Operanden unter Befehl eines Mikroprogramms | |
DE2612750A1 (de) | Multipliziereinrichtung | |
DE68927398T2 (de) | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen | |
DE3303269C2 (de) | ||
DE3440680C2 (de) | ||
DE3447729A1 (de) | Verfahren und vorrichtung zur dezimal-multiplikation | |
DE2732008B2 (de) | Einrichtung zur Reduzierung von Fibonacci-p-Codes auf die Minimalform | |
DE3340362C2 (de) | ||
DE69225352T2 (de) | Bitdatenverschiebungsbetragsdetektor | |
DE68923100T2 (de) | Formatwandlerschaltung für Digitaldaten. | |
DE69616942T2 (de) | Bit-suche durch 8, 16 oder 32 bit-operanden mit einem 32 bit-datenpfad | |
DE3302013C2 (de) | ||
DE1549461C3 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |