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
Application number
DE8787307564T
Other languages
English (en)
Other versions
DE3785624D1 (de
Inventor
Andrew Gustav Deczky
Stephen George Rayment
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nortel Networks Ltd
Original Assignee
Northern Telecom Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northern Telecom Ltd filed Critical Northern Telecom Ltd
Publication of DE3785624D1 publication Critical patent/DE3785624D1/de
Application granted granted Critical
Publication of DE3785624T2 publication Critical patent/DE3785624T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5352Non-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.
  • Darlegung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Beschreibung der bevorzugten Ausführungsform
  • 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).
DE8787307564T 1986-08-28 1987-08-26 Digitaler signalprozessor mit dividierfunktion. Expired - Fee Related DE3785624T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 除算回路

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