DE19504864C2 - Rechenwerk zum Ausführen einer Division - Google Patents
Rechenwerk zum Ausführen einer DivisionInfo
- Publication number
- DE19504864C2 DE19504864C2 DE19504864A DE19504864A DE19504864C2 DE 19504864 C2 DE19504864 C2 DE 19504864C2 DE 19504864 A DE19504864 A DE 19504864A DE 19504864 A DE19504864 A DE 19504864A DE 19504864 C2 DE19504864 C2 DE 19504864C2
- Authority
- DE
- Germany
- Prior art keywords
- data
- result
- bit
- register
- storage device
- 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
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)
- Error Detection And Correction (AREA)
Description
Die Erfindung betrifft ein in einem Digitalsignalprozes
sor zum Ausführen einer Division enthaltenes Rechenwerk nach
dem Oberbegriff des Patentanspruchs 1.
In letzter Zeit wurden im Verlauf des zu beobachtenden
Trends, Digitalsysteme auf dem Gebiet der mobilen Kommunika
tion einzuführen, der Digitalsignalprozessoren (nachstehend
einfach DSP genannt) als beispielsweise in ein tragbares Tele
fon einbaubare Prozessoren herausgestellt.
Bei der vorstehend erwähnten digitalen Mobilkommunika
tionstechnik wird bei Einsatz des DSP im Hinblick auf eine Be
triebszeitverlängerung einer einzusetzenden Batterie ein ge
ringer Leistungsverbrauch und eine Verbesserung beim Daten
durchlauf während der Ausführung eines komplizierten Anwen
dungsprogramms, beispielsweise einer Stimmcodierung benötigt.
Daneben ist auch eine Kostenverminderung des DSP erforderlich.
Im DSP wird eine Division manchmal unter Verwendung eines
Divisionsalgorithmusses ohne Restbildung ausgeführt (vgl. bei
spielsweise "DSP 56116 Digital Signal Processor User's Manual"
von Motorola Inc., 1990). Ein Beispiel eines Rechenwerks nach
dem Stand der Technik zum Dividieren aus einer festgelegten
Mehrzahl von Bits oder n Bits bestehender Daten durch aus n
Bits bestehende Daten gemäß des Divisionsalgorithmusses ohne
Restbildung wird nachstehend unter Bezugnahme auf ein in Fig.
5 dargestelltes schematisches Blockdiagramm erläutert.
In Fig. 5 wird in einem eine Länge von n Bits aufweisen
den Register 101 ein Divisor gehalten. In den oberen n Bits
eines eine Länge von 2 n Bits aufweisenden Registers 102 wird
"0" gehalten und in den unteren n Bits dieses Registers wird
ein Dividend gehalten. Eine Schiebeeinrichtung 103 verschiebt
die Daten vom Register 102 um ein Bit nach links. In der
Schiebeeinrichtung 103 wird an die Stelle des niedrigststehen
den Bits anfänglich "0" eingesetzt und nachfolgend wird dort
ein einen invertierten Wert eines ein positives oder ein nega
tives Vorzeichen eines Berechnungsergebnisses anzeigendes Si
gnal eingesetzt, die oberen n Bits werden einer nachstehend zu
beschreibenden Rechen- und Logikschaltung 104 zugeführt und
die unteren n Bits werden an die unteren Bits des Registers
102 übergeben. Die eine Bitlänge von n aufweisende Rechen- und
Logikschaltung 104 ist mit dem Register 101 und der Schiebe
einrichtung 103 verbunden und führt in Übereinstimmung mit
einem ein positives oder ein negatives Vorzeichen anzeigenden
Signal vom Register 102 eine Addition oder eine Subtraktion
aus und übergibt das Ergebnis der Berechnung an die oberen n
Bits des Registers 102.
Das wie vorstehend erläutert aufgebaute Rechenwerk und
dessen Betriebsweise zur Ausführung einer Division wird nach
stehend im einzelnen erläutert.
Zunächst bestimmt die Rechen- und Logikschaltung 104 ob
die im Register 102 gehaltenen Daten positiv oder negativ
sind. Wenn die Daten positiv sind, bedeutet das, daß ein Divi
sor subtrahiert werden kann. Wenn die Daten negativ sind, hat
eine Operation, bei der die Daten um ein Bit nach links ver
schoben werden und der Divisor addiert wird, dieselbe Berech
nung zum Ergebnis wie eine für die um ein Bit nach links ver
schobenen Daten ausgeführte Subtraktion. Demgemäß werden die
vom Register 102 gehaltenen Daten mittels der Schiebeeinrich
tung 103 um ein Bit nach links verschoben. Nach der Verschie
bung im anfänglichen Schritt wird das niedrigststehende Bit
der Schiebeeinrichtung 103 mit "0" belegt und in einem nach
folgenden Schritt wird dafür ein invertierter Wert eines ein
positives Vorzeichen oder ein negatives Vorzeichen eines Be
rechnungsergebnisses anzeigenden Signals eingesetzt. Als Er
gebnis der Verschiebung entsprechen die oberen n Bits einem
Rest eines oberen Zifferbereichs eines Dividenden und sie wer
den an die Rechen- und Logikschaltung 104 übergeben. Als Er
gebnis der Verschiebung entsprechen die unteren n Bits einem
unteren Zifferbereich des Dividenden und einer einen bis zu
diesem Schritt erhaltenen Quotienten anzeigenden Zahl und sie
werden an das Register 102 übergeben. Als nächstes wird der
Wert des Registers 101 und eine Ausgabe der Schiebeeinrichtung
103 mittels der Rechen- und Logikschaltung 104 addiert, wenn
der anfänglich bestimmte Wert des Registers 102 negativ ist.
Wenn der bestimmte Wert des Registers 102 nicht negativ ist,
wird der Wert des Registers 101 mittels der Rechen- und Logik
schaltung 104 von der Ausgabe der Schiebeeinrichtung 103 sub
trahiert und das Ergebnis wird in das Register 102 abgelegt.
Danach wird das Vorzeichen der Daten im Register 102 erneut
bestimmt. Die vorstehend beschriebene Operation wird (n-1)-mal
wiederholt und letztlich wird bestimmt, ob der im Register 102
gehaltene Wert positiv oder negativ ist. Wenn der Wert negativ
ist, wird an die Stelle des niedrigststehenden Bits des Regi
sters 102 "0" eingesetzt und wenn er nicht negativ ist, wird
"1" eingesetzt. Als Ergebnis wird ein Quotient in den unteren
n Bits des Registers 102 abgelegt.
Bei dem Beispiel eines Rechenwerks nach dem Stand der
Technik ist es jedoch erforderlich, daß die Schiebeeinrichtung
103 eine Bitlänge von 2 n aufweist und ein sich von der Schie
beeinrichtung 103 zum Register 102 erstreckender Pfad wird be
nötigt, wodurch das Hardware-Format erhöht wird.
Ferner wird von einem Signal, das anzeigt ob positive
oder negative Daten im Register 102 gehalten werden, gesteu
ert, ob von der Rechen- und Logikschaltung eine Addition oder
eine Subtraktion auszuführen ist, wodurch der Steuerbetrieb
erschwert wird. Zur Verwirklichung dieser erschwerten Steuer
operation wird eine großformatige Hardware benötigt. Die groß
formatige Hardware erhöht die Kosten des DSP und besitzt viele
Betriebsbereiche, wodurch das Problem entsteht, daß der Lei
stungsverbrauch erhöht wird.
Ferner sind aus der US 5,097,435 und der EP 0 379 998 A2
Rechenwerke zum Ausführen einer Division bekannt, bei denen
das Ergebnis der Division in ein ausschließlich zu diesem
Zweck dienendes Schieberegister sequentiell eingelesen wird.
Das Ziel dieser Erfindung ist die Beseitigung der vorste
hend beschriebenen Probleme im Stand der Technik und eine Auf
gabe der Erfindung besteht in der Schaffung eines Rechenwerks,
mit dem eine Division auf Grundlage eines Divisionsalgorith
musses ohne Restbildung mit einer kleinformatigen Hardware
ausführbar ist, wodurch die Kosten und der Leistungsverbrauch
verringert werden können. Das Rechenwerk kann daneben auch
noch eine Viterbi-Decodierverarbeitung wirksam ausführen, was
eine Verarbeitung zum Decodieren eines Fehlerkorrekturcodes
ist.
Diese Aufgabe wird durch ein Rechenwerk zum Ausführen
einer Division gemäß Patentanspruch 1 gelöst. Vorteilhafte
Ausführungsformen der Erfindung sind in den abhängigen Patent
ansprüchen angegeben.
Erfindungsgemäß kann die herkömmliche, eine Bitlänge von
2 n aufweisende Schiebeeinrichtung durch die eine Bitlänge von
n aufweisende Schiebeeinrichtung und das eine Bitlänge von n
aufweisende Schieberegister ersetzt werden, weil das Schiebe
register sequentiell positive und negative Vorzeichen darstel
lende Daten der von der Recheneinrichtung ausgegebenen Daten
speichert und ein Signal im höchststehenden Bit an der Stelle
des niedrigststehenden Bits der Schiebeeinrichtung einsetzt.
Dadurch kann das Format der Schiebeeinrichtung herabgesetzt
werden und der sich von der Schiebeeinrichtung zur ersten
Speichereinrichtung erstreckende Pfad wird überflüssig.
Wenn in der zweiten Speichereinrichtung oder der dritten
Speichereinrichtung ein Divisor gespeichert ist, wird ein
Zweierkomplement des Divisors in der anderen Speichereinrich
tung abgelegt und die Wähleinrichtung spricht auf ein ein po
sitives Vorzeichen oder ein negatives Vorzeichen eines Berech
nungsergebnisses anzeigendes Signal an zum Auswählen der anzu
legenden Daten, so daß die Recheneinrichtung immer eine Addi
tion ausführen kann. Das ermöglicht, daß mit der Rechenein
richtung immer dieselbe Operation ausgeführt werden kann, wo
durch der Steuerbetrieb vereinfacht wird.
Nachstehend wird die Erfindung unter Bezugnahme auf
die Zeichnung, auf die hinsichtlich aller in der Beschreibung
nicht näher erwähnten Einzelheiten an dieser Stelle ausdrück
lich verwiesen wird, erläutert. In der Zeichnung zeigt:
Fig. 1 ein ein Rechenwerk gemäß einer ersten Ausführungsform
der Erfindung darstellendes, schematisches Blockdia
gramm,
Fig. 2 ein ein Rechenwerk gemäß einer zweiten Ausführungsform
der Erfindung darstellendes, schematisches Blockdia
gramm,
Fig. 3 ein ein Rechenwerk gemäß einer dritten Ausführungsform
der Erfindung darstellendes, schematisches Blockdia
gramm,
Fig. 4 ein Zustandsübergangspfade in einer Faltungscodier
einrichtung zum Einsatz bei einer Viterbi-Decodierung
darstellendes Diagramm,
Fig. 5 ein ein Rechenwerk nach dem Stand der Technik darstel
lendes, schematisches Blockdiagramm und
Fig. 6 ein ein Rechenwerk zum Einsatz bei einer Viterbi-
Decodierung nach dem Stand der Technik darstellendes,
schematisches Blockdiagramm.
Eine erste Ausführungsform der Erfindung wird nachste
hend unter Bezugnahme auf Fig. 1 der begleitenden Zeichnung
erläutert.
Bezugnehmend auf das ein Rechenwerk gemäß einer ersten
Ausführungsform der Erfindung darstellende schematische Block
diagramm nach Fig. 1 wird in einem eine Bitlänge von n aufwei
senden und mit einer Rechen- und Logikschaltung 4 verbundenen
Register 1 ein Divisor gehalten. In einem eine Bitlänge von n
aufweisenden Register 2, das einerseits zum Empfangen einer
Ausgabe der Rechen- und Logikschaltung 4 mit dieser und ande
rerseits mit einer Schiebeeinrichtung 3 verbunden ist, wird
anfänglich "0" gehalten. Die Schiebeeinrichtung 3 verschiebt
Daten des Registers 2 um ein Bit nach links und setzt Daten
aus der n-ten Stufe eines Schieberegisters 5 an die Stelle des
niedrigststehenden Bits. Die eine Bitlänge von n aufweisende
Rechen- und Logikschaltung 4 führt eine Addition aus, wenn die
im Register 2 abgelegten Daten negativ sind, aber führt eine
Subtraktion aus, wenn sie nicht negativ sind und legt das
Ergebnis der Berechnung in das Register ab. Die Rechen- und
Logikschaltung 4 übergibt daneben auch noch ein ein positives
oder ein negatives Vorzeichen eines Berechnungsergebnisses
anzeigendes Signal an das Schieberegister 5. Das n-stufige
Schieberegister 5 empfängt das ein positives oder ein
negatives Vorzeichen eines Berechnungsergebnisses anzeigende
und von der Rechen- und Logikschaltung 4 ausgegebene Signal
und ist an der n-ten Stufe mit der Schiebeeinrichtung 3
verbunden zum Einsetzen von Daten an die Stelle des
niedrigststehenden Bits, wenn die Schiebeeinrichtung 3 eine
Verschiebung um ein Bit nach links ausführt. Das Schiebe
register 5 ist am Anfang mit einem Dividenden belegt.
Nachstehend wird die von dem Rechenwerk mit dem vor
stehend erläuterten Aufbau ausgeführte Divisionsoperation im
einzelnen beschrieben.
Wie vorstehend beschrieben ist anfänglich ein Divisior
im Register 1 und ein Dividend im Schieberegister 5 gespei
chert. Im Register 2 ist anfänglich ein Wert "0" gespeichert.
- 1. Zunächst wenn die Schiebeeinrichtung 3 vom Re gister 2 übergebene Daten um ein Bit nach links verschiebt, empfängt sie an der Stelle des niedrigststehenden Bits einen Wert des höchststehenden Bits des Schieberegisters 5. Beim Anfangsschritt ist ein Wert "0" im Register 2 gespeichert, die Schiebeeinrichtung 3 verschiebt diese Daten um ein Bit nach links und der Wert des höchststehenden Bits des Schiebe registers 5 wird an die Stelle des niedrigststehenden Bits der Schiebeeinrichtung 3 gesetzt und folglich ist der Inhalt des Schieberegisters 3 mit Sicherheit nicht negativ.
- 2. Als nächstes wird ein Wert des Registers 1 mittels der Rechen- und Logikschaltung 4 von einer Ausgabe der Schie beeinrichtung 3 subtrahiert.
- 3. Wenn das Ergebnis der unter Punkt (2) angegebenen Berechnung nicht negativ ist, anzeigend daß bei dieser Stufe ein Rest größer ist als der Divisior, wird als nächstes "1", nämlich ein invertierter Wert eines Vorzeichenbits, an das Schieberegister 5 übergeben und die Daten werden um ein Bit verschoben. Andererseits, wenn das Ergebnis der im Schritt (2) ausgeführten Berechnung negativ ist, anzeigend, daß der Rest kleiner ist als der Divisor, und das Ergebnis negativ wird, wird "0", nämlich ein invertierter Wert des Vorzeichenbits an das Schieberegister 5 übergeben und dann werden die Daten um ein Bit nach links verschoben. Eine Ausgabe der Rechen- und Logikschaltung 4 wird im Register 2 abgelegt.
- 4. Als nächstes verschiebt die Schiebeeinrichtung (3) die vom Register 2 übergebenen Daten um ein Bit nach links und danach wird ein Wert des höchststehenden Bits des Schieberegi sters 5 an die Stelle des niedrigststehenden Bits der Schiebe einrichtung 3 gesetzt.
- 5. Wenn ein Ergebnis einer vorhergehenden Berechnung nicht negativ ist, wird als nächstes mit der Rechen- und Lo gikschaltung 4 eine Subtraktion des Wertes des Registers 1 von einer Ausgabe der Schiebeeinrichtung 3 ausgeführt. Anderer seits, wenn ein Ergebnis einer vorhergehenden Berechnung nega tiv ist, wird von der Rechen- und Logikschaltung 4 eine Addi tion des Wertes des Registers 1 und einer Ausgabe der Schiebe einrichtung 3 ausgeführt. Die Berechnungsergebnisse werden im Register 2 abgelegt.
- 6. Wenn das Ergebnis einer Berechnung im oben an gegebenen Schritt (5) nicht negativ ist, wird als nächstes "1", d. h. ein inverter Wert eines Vorzeichenbits, in das Schieberegister 5 eingesetzt und dann werden die Daten um ein Bit verschoben. Andererseits, wenn das Ergebnis der Berechnung im Schritt (5) negativ ist, wird "0", d. h. ein invertierter Wert eines Vorzeichenbits in das Schieberegister 5 eingesetzt und dann werden die zusammengesetzten Daten um ein Bit ver schoben.
- 7. Die in den vorstehend beschriebenen Schritten (4), (5) und (6) ausgeführten Operationen werden (n - 2)-mal wieder holt.
- 8. Schließlich bestimmt die Rechen- und Logikschal tung 4, ob der Wert im Register 2 positiv ist oder negativ. Wenn er negativ ist, wird "0" an der Stelle niedrigststehenden Bits des Registers 2 eingesetzt, aber wenn er nicht negativ ist, wird dort "1" eingesetzt.
Auf diese Weise wird eine Division ausgeführt und ein
Quotient wird in das Schieberegister 5 abgelegt.
Während im Stand der Technik eine Schiebeeinrichtung
mit einer Bitlänge, die dem Doppelten der Bitlänge der einen
Divisor oder einen Dividenden darstellenden Daten entspricht,
benötigt wird, reicht es bei dieser Ausführungsform aus, daß
die Bitlänge der Schiebeeinrichtung 3 gleich der Bitlänge der
einen Divisor oder einen Dividenden darstellenden Daten ist
und daneben wird der direkte Pfad zwischen der Schiebe
einrichtung 3 und dem Register 2 überflüssig.
Eine zweite Ausführungsform der Erfindung wird nach
stehend unter Bezugnahme auf Fig. 2 der begleitenden Zeichnung
beschrieben.
Bezugnehmend auf das ein Rechenwerk gemäß der zweiten
Ausführungsform der Erfindung darstellende, schematische
Blockdiagramm umfaßt diese Ausführungsform zusätzlich die Be
reitstellung eines Multiplexers 7, mit dem in Übereinstimmung
mit einem Ergebnis der Entscheidung, ob der Wert im Register 2
positiv ist oder negativ, eine Ausgabe des Registers 1 oder
eine Ausgabe des Registers 6 gewählt wird, wie in Fig. 2
dargestellt.
Bei der vorstehend beschriebenen ersten Ausführungs
form wird bestimmt, ob das Ergebnis einer vorhergehenden Be
rechnung positiv ist oder negativ, und die Rechen- und Logik
schaltung 4 führt in Übereinstimmung mit dem Ergebnis dieser
Bestimmung eine Addition oder eine Subtraktion aus. Bei dieser
Ausführungsform wird jedoch anfänglich ein Divisor im Register
1 und ein Zweierkomplement des Divisors im Register 6 gespei
chert. Dann wird der Multiplexer 7 zum Ausführen einer Wahl
abhängig davon, ob das Ergebnis einer vorhergehenden Berech
nung positiv ist oder negativ, so gesteuert, daß die Rechen-
und Logikschaltung 4 immer eine Additon ausführen kann.
Die übrigen Bestandteile sind denjenigen der vorste
hend beschriebenen ersten Ausführungsform gleich und mit glei
chen Bezugszeichen bezeichnete Bestandteile werden nicht näher
beschrieben.
Mit dem vorstehend angegebenen Aufbau arbeitet diese
Ausführungsform teilweise anders als die erste Ausführungsform,
wie nachstehend beschrieben wird.
Insbesondere, wenn ein Ergebnis der vorhergehenden Be
rechnung negativ ist, wählt im vorstehend angegebenen Schritt
(5) der Multiplexer 7 das den Divisor haltende Register 1 zum
Übergeben des im Register 1 gespeicherten Wertes, der danach
mit der Rechen- und Logikschaltung 4 zu einer Ausgabe der
Schiebeeinrichtung 3 addiert wird. Andererseits, wenn ein Er
gebnis der vorhergehenden Berechnung nicht negativ ist, wählt
der Multiplexer 7 im vorstehend erläuterten Schritt (5) das
das Zweierkomplement des Divisors haltende Register 6 zum
Übergeben eines im Register 6 gespeicherten Wertes, der danach
mit der Rechen- und Logikschaltung 4 zu einer Ausgabe der
Schiebeeinrichtung 3 addiert wird (das entspricht einer Sub
traktion von der Ausgabe der Schiebeeinrichtung 3).
Bei dieser Ausführungsform führt die Rechen- und Lo
gikschaltung 4 bei einer Divisionsoperation immer Additionen
aber keine Subtraktionen aus und daher kann ihre Hardware ver
einfacht werden.
Wie vorstehend beschrieben, kann erfindungsgemäß die
Größe der Schiebeeinrichtung verringert werden und der sich
von der Schiebeeinrichtung zum Register erstreckende, direkte
Pfad wird überflüssig. Demgemäß kann eine Division mit einer
kleinformatigen Hardware bewirkt werden, wodurch sicherge
stellt werden kann, daß das Format des Operationsteils mini
miert und der Leistungsverbrauch verringert wird.
Zusätzlich kann die Steuerschaltung dadurch verein
facht werden, daß die Rechen- und Logikschaltung zum Ausführen
einer Division lediglich Additionen ausführen muß.
Eine dritte Ausführungsform der Erfindung wird nach
stehend unter Bezugnahme auf die begleitende Zeichnung erläu
tert.
Fig. 3 ist ein ein Rechenwerk gemäß einer dritten Aus
führungsform der Erfindung darstellendes, schematisches Block
diagramm.
Wie in Fig. 3 dargestellt, umfaßt diese Ausfüh
rungsform zusätzlich die Bereitstellung eines Registers 31 und
zweier Speicher. Mit anderen Worten, diese Ausführungsform
unterscheidet sich von der vorstehend beschriebenen zweiten
Ausführungsform dahingehend, daß Speicher, von denen zwei üb
licherweise für die DPS bereitgestellte Arten von Daten
gleichzeitig gelesen werden können, und drei oder mehr Regi
ster für allgemeine Zwecke eingesetzt werden.
In Verbindung mit dem vorstehend angegebenen Aufbau
wird zunächst der Viterbi-Algorithmus für die Fehlerkorrektur
verarbeitung beschrieben.
In dem zur Realisierung einer Stimmcodiervorrichtung
für eine digitale Mobilkommunikation geeigneten DSP muß die
Fehlerkorrekturverarbeitung zusätzlich zu der Stimmcodierver
arbeitung durchgeführt werden. Einige Fehlerkorrekturverfahren
benutzen eine Viterbi-Decodierung.
Der Viterbi-Algorithmus wird zum Verwirklichen einer
Decodierung einer gefaltenen Codierung durch Wiederholen ein
facher Verarbeitungen wie etwa Additionen, Vergleichen und
Wählen, mit einer maximalen Wahrscheinlichkeit angesetzt. Bei
der Viterbi-Decodierung wird jedesmal, wenn codierte Daten
(Empfangsserien), die einem Bit von Informationsbits ent
sprechen, erhalten werden, eine kummulierte Menge verblei
bender Pfade, die zu dieser Zeit zu jedem Zustand gehören
(nachstehend Pfadmaß genannt) berechnet und aktualisiert.
Fig. 4 zeigt eine Phase, in der sich zu einem
bestimmten Zeitpunkt jeweils zwei einem Zustandsübergang
anzeigende Pfade von vorhergehenden Zuständen Sm bzw. S
(m+2)k-2 zu Zuständen S2m (m ist eine positive ganze Zahl)
und S2m+1 erstrecken in einer Faltungscodiereinrichtung mit
einer Zwangslänge K. Mit A2m oder B2m werden Hammingabstände
zwischen Ausgangssymbolen und Empfangsserien jedes beim Zu
stand S2m endenden Pfades bezeichnet (nachstehend als Ver
zweigungsmaß bezeichnet). Mit C2m+1 oder D2m+1 wird ein Pfad
maß jedes beim Zustand S2m+1 endenden Pfades bezeichnet. Die
Pfadauswahl wird wie folgt ausgeführt.
Vorab berechnete Werte einzelner Verzweigungsmaße und
Werte von Pfadmaßen der zu einem vorhergehenden Zeitpunkt
verbleibenden Pfade werden jeweils addiert zum Berechnen eines
Gesamtmaßes jedes Pfades. Pfadmaße der beiden beim Zustand S2m
endender Pfade werden miteinander verglichen und ein Pfad,
dessen Gesamthammingentfernungen kleiner sind, bleibt bestehen
und der andere wird aufgegeben. Daher müssen bei der
Decodierung einer Faltungscodierung auf Grundlage des Viterbi-
Algorithmusses Additions-, Vergleichs- und Wahloperationen und
Pfadmaße für 2k-1 Zustände in jeder Zeitfolge gespeichert
werden in Verbindung mit einer Addition von Verzweigungsmaßen
und Pfadmaßen von bis zu einem vorhergehenden Zeitpunkt
verbleibenden Angaben, einem Vergleich von Ergebnissen der
Additionen und einer Wahl eines optimalen Pfades.
Ein Beispiel eines Rechenwerks zum Ausführen einer Vi
terbi-Decodierung nach dem Stand der Technik wird nachstehend
unter Bezugnahme auf das in Fig. 6 dargestellte, schematische
Blockdiagramm beschrieben.
In Fig. 6 speichert ein Speicher 201 Befehlswörter ei
nes Prozessors sowie ein Maß (kummulative Menge) von zu jedem
Zustand gehörigen Pfaden, eine Tabelle von Werten von Verzwei
gungsmaßen, die einzelne Pfade für einen Wert codierter Daten
(Empfangsserie), die einem Bit der Informationsbits entspre
chen, annehmen und ein Ergebnis einer Wahl eines verbleibenden
Pfades, der zu jedem Zustand bei der Viterbi-Decodierung ge
hört. Eine Datenleitung 202 ist zur Teilnahme an der Übergabe
von Daten und an der Speicherung von Berechnungsergebnissen
mit dem Speicher 201 verbunden, eine Rechen- und Logikschal
tung 203 führt Rechen- und Logikoperationen aus, Halteschal
tungen 204 und 205 dienen zur Zwischenspeicherung von
linksseitigen bzw. rechtsseitigen Eingabewerten für die
Rechen- und Logikschaltung 203 und Register 206 und 207 dienen
zur Zwischenspeicherung von Berechnungsergebnissen.
In dem Rechenwerk mit dem vorstehend angegebenen Auf
bau werden die Operationen zum Aktualisieren der zum Zustand
S2m in Fig. 4 gehörigen Pfadmaße und die Operationen zum Spei
chern eines Pfadwahlsignals unter Anwendung von Additions-,
Vergleichs- und Wahloperationen der Viterbi-Decodierung für
eine Empfangsserie gemäß den folgenden sechs Schritten ausge
führt.
Ein Wert eines zum in Fig. 4 dargestellten Zustand Sm
gehörigen Pfadmaßes wird vom Speicher 201 über die Datenlei
tung 202 zur Halteschaltung 204 übertragen und auf ähnliche
Weise wird ein Wert eines Verzweigungsmaßes A2m über die Da
tenleitung 202 vom Speicher 201 zur Halteschaltung 205 über
tragen. Die Rechen- und Logikschaltung 203 addiert den Inhalt
der Halteschaltung 204 zum Inhalt der Halteschaltung 205 und
das Ergebnis der Addition wird im Register 206 abgelegt.
Ein Wert eines zum Zustand S(m+2)k-2 gehörigen Pfad
maßes wird über die Datenleitung 202 vom Speicher 201 zur
Halteschaltung 204 übertragen und auf ähnliche Weise wird ein
Wert eines Verzweigungsmaßes B2m über die Datenleitung 202 vom
Speicher 201 zur Halteschaltung 205 übertragen. Die Rechen-
und Logikschaltung 203 addiert den Inhalt der Halteschaltung
204 zum Inhalt der Halteschaltung 205 und das Ergebnis der
Addition wird im Register 207 abgelegt.
Der Inhalt des Registers 206 wird zur Halteschaltung
204 übertragen und der Inhalt des Registers 207 wird zur Hal
teschaltung 205 übertragen. Der in der Halteschaltung 204 ge
speicherte Inhalt und derjenige, der in der Halteschaltung 205
gespeichert ist, werden mittels der Rechen- und Logikschaltung
203 voneinander subtrahiert. Das Ergebnis der Subtraktion wird
nicht in den Speicher abgelegt.
Eine Steuereinrichtung (nicht dargestellt) bestimmt
das Vorzeichen des im vorstehend angegebenen Schritt (3) er
haltenen Subtraktionsergebnisses und führt eine Programmsteue
rung (Verzweigung) in den folgenden Schritten (5) und (6) aus.
Wenn als Ergebnis der Bestimmung im vorstehend angege
benen Schritt (4) herausgefunden wurde, daß das im vorstehend
angegebenen Schritt (3) erhaltene Subtraktionsergebnis negativ
ist, wird der Inhalt des Registers 206 in den Speicher 201 ab
gelegt. Wenn das im Schritt (3) erhaltene Subtraktionsergebnis
positiv ist, wird der Inhalt des Registers 207 in den Speicher
201 abgelegt.
Wenn als Ergebnis der Bestimmung im Schritt (4) her
ausgefunden wurde, daß das im Schritt (3) erhaltene Subtrakti
onsergebnis negativ ist, wird ein Wert "0" in den Speicher 201
abgelegt. Wenn das im Schritt (3) erhaltene Subtraktions
ergebnis positiv ist, wird ein Wert "1" in den Speicher 201
abgelegt.
Zum Aktualisieren der Pfadmaße aller Zustände werden
die vorstehend angegebenen sechs Schritte (2k-1)-mal wie
derholt.
Daher werden im Rechenwerk nach dem Stand der Technik
die Addition und der Vergleich bei der Viterbi-Decodierung in
der Rechen- und Logikschaltung 203 ausgeführt und die Pro
grammsteuerung wird zur Ausführung der Viterbi-Decodierverar
beitung in Abhängigkeit von einem Vergleichsergebnis bewirkt.
Eine zum Ausführen der Viterbi-Decodierung und der
Division dienende dritte Ausführungsform der Erfindung wird
nachstehend unter Bezugnahme auf die begleitende Zeichnung er
läutert. Fig. 3 ist ein ein Rechenwerk gemäß der dritten Aus
führungsform der Erfindung darstellendes Blockdiagramm.
In Fig. 3 speichert ein erster Speicher 21 eine kummu
lierte Menge (Pfadmaß) bei der Viterbi-Decodierung zu jedem
Zustand gehöriger verbleibender Pfade und ein Ergebnis einer
Wahl zu jedem Pfad gehöriger verbleibender Pfade (Pfad
wahlsignal), ein zweier Speicher 22 speichert vorab eine
Tabelle mit Werten von Hammingabständen (Verzweigungsmaßen)
die die einzelnen Pfade für einen Wert dem Informationsbit
eins entsprechender codierter Daten (Empfangsserie) annehmen,
eine Datenleitung 23 ist mit den Speichern 21 und 22, einem
linksseitigen Eingang 25a einer Rechen- und Logikschaltung 25,
einem Register 26, einem Schieberegister 29 und einem
Multiplexer 30 verbunden zum Übergeben von Daten an den
linksseitigen Eingang 25a der Rechen- und Logikschaltung 25
oder das Schieberegister 29, und eine Datenleitung 24 ist mit
den Speichern 21 und 22, einem Register 27, einem Register 31
und einer Schiebeeinrichtung 32 verbunden zum Übergeben von
Daten an den Eingang der Schiebeeinrichtung 32.
Die Rechen- und Logikschaltung 25 stellt eine Rechen
einrichtung zum Ausführen von Rechen- und Logikoperationen für
an die Datenleitungen 23 und 24 übergebene Daten dar und jedes
der Register 26 und 27 dient als Zwischenspeicher für ein mit
der Rechen- und Logikschaltung 25 erhaltenes Berechnungs
ergebnis. Mit 28 ist das höchststehende Bit eines Berech
nungsergebnisses bezeichnet, das für ein einem Pfadwahlsignal
oder einem Quotienten für jedes Bit bei der Division ent
sprechendes Vorzeichenbit steht. Das Schieberegister 29 spei
chert das Vorzeichenbit 28 während der Viterbi-Decodierung
oder einen Dividenden während der Ausführung der Division auf
Grundlage des Divisionsalgorithmusses ohne Restbildung, der
Multiplexer 30 dient als Wahleinrichtung zum Wählen des Re
gisters 26, wenn das Vorzeichenbit 28 einen Wert "0" annimmt
bzw. des Registers 27 wenn das Vorzeichenbit 28 einen Wert "1"
annimmt und zum Anlegen einer Ausgabe an die Datenleitung 23,
das Register 31 dient während der Ausführung der Division als
Zwischenspeicher für einen Divisior oder ein mit der Rechen-
und Logikschaltung 25 erhaltenes Berechnungsergebnis und die
Schiebeeinrichtung 32 empfängt Daten von der Datenleitung 24
und ist wahlweise zum Verschieben der Daten um ein Bit nach
links oder als Datendurchgang betreibbar, um dadurch eine an
den rechtsseitigen Eingang 25b der Rechen- und Logikschaltung
25 angelegte Ausgabe zu übergeben. Während der Verschiebung um
ein Bit nach links verschiebt die Schiebeeinrichtung 32 Daten
auf der Datenleitung 24 um ein Bit nach links und setzt Daten
in der n-ten Stufe des Schieberegisters 29 an die Stelle des
niedrigststehenden Bits der Schiebeeinrichtung 32 ein.
Bei dieser Ausführungsform beträgt die festgelegte An
zahl von Bits der Speicher 21 und 22, der Datenleitungen 23
und 24, der Register 26, 27 und 31 und des Schieberegisters 29
n.
Das wie vorstehend angegeben aufgebaute Rechenwerk ar
beitet während der Viterbi-Decodierung oder der Division auf
Grundlage eines Divisionsalgorithmusses ohne Restbildung, wie
nachstehend unter Bezugnahme auf die Fig. 3 und 4 erläutert
wird.
Als erstes wird der Betrieb bei der Viterbi-Decodie
rung beschrieben.
Additions-, Vergleichs- und Wahloperationen zum Be
rechnen und Aktualisieren einer kummulierten Menge (Pfadmaß)
in Fig. 4 dargestellter, zu einem Zeitpunkt zum Zustand S2m
gehöriger verbleibender Pfade und eine Operation zum Speichern
eines Pfadwahlsignals wird anhand von vier Schritten beschrie
ben, und zwar (1) einem ersten Additionsschritt für Pfadmaße
und Verzweigungsmaße für beim Zustand S2m endende Pfade, (2)
ein zweiter Additionsschritt für beim Zustand S2m endende
Pfade, (3) ein Schritt des Vergleichens eines Ergebnisses der
ersten Addition mit einem Ergebnis der zweiten Additon und (4)
ein Schritt des Übertragens eines Ergebnisses des Vergleichs
an die Speicher. Die vorstehend angeführten vier Schritte
werden wiederholt ausgeführt durch einzelnes Aktualisieren des
Wertes m. Eine kummulierte Menge beim Zustand S2m+1 endender,
verbleibender Pfade wird auf ähnliche Weise berechnet.
Ein Wert Mm eines zum in Fig. 4 dargestellten Zustand
S2m gehörigen Pfadmaßes wird aus dem Speicher 21 gelesen und
über die Datenleitung 23 an den linksseitigen Eingang 25a der
Rechen- und Logikschaltung 25 angelegt. Zur gleichen Zeit wird
ein Wert A2m eines einem Wert einer Empfangsserie entsprechen
den Verzeigungsmaßes aus dem Speicher 22 ausgelesen und über
die Datenleitung 24 und die Schiebeeinrichtung 32 an den
rechtsseitigen Eingang 25b der Rechen- und Logikschaltung 25
angelegt. Zu dieser Zeit arbeitet die Schiebeeinrichtung 32
nicht und läßt die Daten einfach dadurch passieren. Die Re
chen- und Logikschaltung 24 addiert die am rechtsseitigen Ein
gang 25b empfangenen Daten zu den am linksseitigen Eingang 25a
empfangenen Daten und legt das Ergebnis der Addition im Regi
ster 26 ab.
Ein Wert M(m+2)k-2 eines zum Zustand S(m+2)k-2 gehö
rigen Pfadmaßes wird aus dem Speicher 21 gelesen und über die
Datenleitung 23 an den linksseitigen Eingang 25a der Rechen-
und Logikschaltung 25 angelegt. Gleichzeitig wird ein Wert B2m
eines einem Wert einer Empfangsserie entsprechenden Verzwei
gungsmaßes aus dem Speicher 22 gelesen und über die Datenlei
tung 24 und die Schiebeeinrichtung 32 an den rechtsseitigen
Eingang 25b der Rechen- und Logikschaltung 25 angelegt. Zu
dieser Zeit arbeitet die Schiebeeinrichtung 32 nicht und läßt
die Daten einfach dadurch passieren. Die Rechen- und Logik
schaltung 25 addiert die am rechtsseitigen Eingang 25b empfan
genen Daten zu den am linksseitigen Eingang 25a empfangenen
Daten und legt das Ergebnis der Addition im Register 27 ab.
Die als Ergebnis der ersten Addition im Register 26
abgelegten Daten werden ausgelesen und über die Datenleitung
23 an den linksseitigen Eingang 25a der Rechen- und Logik
schaltung 25 angelegt. Gleichzeitig werden die als Ergebnis
der zweiten Additon im Register 27 abgelegten Daten ausgelesen
und über die Datenleitung 24 und die Schiebeeinrichtung 32 an
den rechtsseitigen Eingang 25b der Rechen- und Logikschaltung
25 angelegt. Zu dieser Zeit arbeitet die Schiebeeinrichtung
nicht und läßt die Daten einfach dadurch passieren. Die Re
chen- und Logikschaltung 25 subtrahiert die am linksseitigen
Eingang 25a anliegenden Daten von den am rechtsseitigen Ein
gang 25b anliegenden Daten und legt ein als Pfadwahlsignal
dienendes Vorzeichenbit 28 des Subtraktionsergebnisses im
Schieberegister 29 ab. Gleichzeitig wird das Pfadwahlsignal an
den Multiplexer 30 angelegt.
Vom Multiplexer 30 wird das Register 26 oder das Regi
ster 27 gewählt zur Bereitstellung eines Pfadmaßes eines ver
bleibenden Pfades, das dann über die Datenleitung 23 im Spei
cher 21 abgelegt wird.
Wie vorstehend beschrieben können durch (2k-1)-faches
Wiederholen der vorstehend beschriebenen vier Schritte durch
einzelnes Erhöhen des Wertes m ausgehend von O Pfadmaße von zu
einer bestimmten Zeit zu 2k-1 Zuständen gehörenden, verblei
benden Pfaden berechnet und aktualisiert werden. Jedesmal,
wenn die vier Schritte n-mal wiederholt wurden, wird der Wert
des Schieberegisters 29 über die Datenleitung 23 im Speicher
21 abgelegt.
Gemäß dieser Ausführungsform kann ein aus Additions-,
Vergleichs- und Wahloperation bestehender Zyklus, der im Stand
der Technik mittels sechs Schritten ausgeführt wird, mit den
vorstehend beschriebenen vier Schritten ausgeführt werden.
Zusätzlich kann das im Stand der Technik an der Stelle
eines Wortes des Speichers abgelegte, aus einem Bit beste
hende Pfadwahlsignal unter Verwendung einer kleineren
Speicherwortanzahl, welche lediglich 1/n im Vergleich zu
derjenigen im Stand der Technik beträgt, abgelegt werden,
durch Ablegen des Pfadwahlsignals zu einem Zeitpunkt, zu dem n
Bits im Schieberegister 29 abgelegt sind.
Darüber hinaus sind die Rechen- und Logikschaltung 25
und die Register 26 und 27 welche Bestandteile dieser Ausfüh
rungsform bilden und bei der Viterbi-Decodierung zum Addieren,
Vergleichen und Auswählen eingesetzt werden, üblicherweise oh
nehin zum Zweck numerischer Berechnungen in einem Digitalsi
gnalprozessor o. dgl. vorgesehen und daher kann das Rechenwerk
vorteilhafterweise durch Hinzufügen von nur einer geringen
Menge Hardware, einschließlich dem Schieberegister 29 und dem
Multiplexer 30, verwirklicht werden.
Nachstehend wird die Operation der Division auf Grund
lage eines Divisionsalgorithmusses ohne Restbildung beschrie
ben.
Zunächst wird ein Divisor im Register 26 abgelegt und
ein Zweierkomplement des Divisors wird im Register 27 abge
legt. Im Register 31 wird anfänglich ein Wert "0" abgelegt und
im Schieberegister 29 wird ein Dividend abgelegt. Sowohl für
den Dividenden als auch für den Divisior ist nur eine positive
Zahl zugelassen. Die Division wird dann wie folgt bewirkt.
- 1. Die Daten im Register 31 werden über die Datenlei tung 24 an die Schiebeeinrichtung 32 angelegt. Die Schiebeein richtung 32 verschiebt die angelegten Daten um ein Bit nach links und setzt einen Wert des höchststehenden Bits des Schie beregisters 29 an die Stelle des niedrigststehenden Bits der Schiebeeinrichtung 32.
- 2. Mit dem anfänglich mit einem Wert "0" belegten Re gister 31 wird zum Einsetzen des höchststehenden Bits des Schieberegisters 29 an die Stelle des niedrigststehenden Bits eine Verschiebung nach links um ein Bit bewirkt und daher nimmt das Register 31 auf jeden Fall einen nicht negativen Wert an. Dann wird mittels der Rechen- und Logikschaltung 25 ein Wert des das Zweierkomplement des Dividenden haltenden Registers und eine Ausgabe der Schiebeeinrichtung 32 addiert (m. a. W., eine Subtraktion des Divisiors wird bewirkt).
- 3. Wenn das Ergebnis der im vorstehend angegebenen Schritt (2) ausgeführten Berechnung nicht negativ ist, emp fängt das Schieberegister 29 einen Wert "1", d. h. einen inver tierten Wert des Vorzeichenbits 28, um es zu verschieben. Wenn das Ergebnis der im vorstehend angegebenen Schritt (2) ausge führten Berechnung negativ ist, empfängt das Schieberegister 29 einen Wert "0", d. h. einen invertierten Wert des Vorzei chenbits 28, um es zu verschieben.
- 4. Die Daten im Register 31 werden über die Datenlei tung 24 an die Schiebeeinrichtung 32 übergeben. Die Schiebe einrichtung 32 verschiebt die übergebenen Daten um ein Bit nach links und setzt den Wert des höchststehenden Bits des Schieberegisters 29 an die Stelle des niedrigststehenden Bits der Schiebeeinrichtung 32.
- 5. Wenn das Ergebnis der vorstehend erläuterten Ope ration nicht negativ ist, werden ein Wert des das Zweierkom plement des Divisors haltenden Registers 27 und eine Ausgabe der Schiebeeinrichtung 32 mittels der Rechen- und Logikschal tung 25 addiert (das entspricht einer Subtraktion des Divi siors). Wenn das Ergebnis einer vorhergehenden Operation nega tiv ist, wird ein Wert des den Divisor haltenden Registers 26 mittels der Rechen- und Logikschaltung 25 zur Ausgabe der Schiebeeinrichtung 32 addiert (das entspricht einer Addition des Divisors). Zu dieser Zeit liest der Multiplexer 30 selek tiv entweder das Register 27 oder das Register 26 aus. Das Er gebnis der Addition wird im Register 31 abgelegt.
- 6. Wenn das Ergebnis der Berechnung im vorstehend an gegebenen Schritt (5) nicht negativ ist empfängt das Schiebe register 29 einen Wert "1", d. h. den invertierten Wert des Vorzeichenbits 28, um es zu verschieben. Wenn das Ergebnis der im vorstehenden beschriebenen Schritte (5) ausgeführten Be rechnung negativ ist, empfängt das Schieberegister 29 einen Wert "0", d. h. den invertierten Wert des Vorzeichenbits 28, um es zu verschieben.
- 7. Die vorstehend angegebenen Schritte (4), (5) und (6) werden (n-2)mal wiederholt.
- 8. Schließlich wird bestimmt, ob der Inhalt des Regi sters 31 ein positives oder ein negatives Vorzeichen hat und wenn er negativ ist, wird an die Stelle des niedrigststehenden Bits des Registers 31 ein Wert "0" gesetzt, während ein Wert "1" gesetzt wird, wenn es nicht negativ ist.
Auf diese Weise kann eine Division ausgeführt und ein
Quotient im Schieberegister 29 abgelegt werden.
Während im Stand der Technik eine Schiebeeinrichtung
mit einer Bitlänge, die dem zweifachen der Bitlänge der für
den Divisor oder Dividenden benötigten Daten entspricht,
benötigt wird, genügt es, daß die Bitlänge der Schie
beeinrichtung 32 derjenigen der für den Divisor oder Di
videnden benötigten Daten gleicht und daneben ist ein sich von
der Schiebeeinrichtung 32 zum Register erstreckender direkter
Pfad überflüssig. Ferner kann die Hardware vereinfacht werden,
weil die Rechen- und Logikschaltung 25 lediglich Additionen
durchführen muß.
Darüber hinaus sind die Rechen- und Logikschaltung 25,
die Register 26, 27 und 31 und die Schiebeeinrichtung 32, die
Bestandteile dieser Ausführungsform bilden und während der
Ausführung der Division eingesetzt werden, üblicherweise ohne
hin zum Zweck numerischer Berechnungen in einem Digitalsignal
prozessor o. dgl. vorgesehen und daher kann das Rechenwerk auf
vorteilhafte Weise durch Hinzufügen von lediglich einer gerin
gen Hardwaremenge, einschließlich dem Schieberegister 29 und
dem Multiplexer 30 verwirklicht werden, und daneben kann eine
wirksame Verwendung der Betriebsschaltung auf vorteilhafte
Weise sichergestellt werden, weil die aus dem Schieberegister
29 und dem Multiplexer 30 bestehende Hardware für die Division
und die vorstehend beschriebene Viterbi-Decodierung gleich
sein kann.
Bei dieser Ausführungsform wird während der Ausführung
der Division in Abhängigkeit vom Vorzeichenbit 28 zwischen den
zu lesenden Registern 26 und 27 geschaltet, aber anstelle des
Schaltens zwischen den zu lesenden Registern 26 und 27, kann
der Betrieb der Rechen- und Logikschaltung in Abhängigkeit vom
Vorzeichenbit 28 geschaltet werden. In diesem Fall wird eine
Addition ausgeführt, wenn das Ergebnis einer vorhergehenden
Berechnung negativ ist, während eine Subtraktion ausgeführt
wird, wenn es positiv ist und der die Wahleinrichtung bildende
Multiplexer 30 wird lediglich während der Viterbi-Decodierung
eingesetzt. Eine Bestimmung, ob die in der Rechen- und
Logikschaltung 25 auszuführende Berechnung eine Addition oder
eine Subtraktion ist, kann später ausgeführt werden als die
Steuerung der Register 26 und 27, so daß beide ausgelesen
werden. Durch Ausnutzung dieses Umstandes kann die Betriebs
geschwindigkeit erhöht werden.
Bei dieser Ausführungsform wird der Multiplexer 30 zum
auf das Vorzeichenbit 28 ansprechenden Umschalten zwischen den
zu lesenden Registern 26 und 27 benutzt. Aber anstelle einer
Auswahl mittels des Multiplexers 30 kann zwischen den zu le
senden Registern 26 und 27 mittels einer Steuerung eines Lese
wahlsignals für die Register 26 und 27 umgeschaltet werden,
wenn die Register 26 und 27 eine Blockanordnung besitzen. In
diesem Fall ist der Multiplexer 30 überflüssig und daher kann
die Hardwaremenge weiter verringert werden, was zu einer Ko
stenverringerung und einer Herabsetzung des Leistungsver
brauchs beiträgt.
Erfindungsgemäß kann zusätzlich zu den vorstehend an
gegebenen Wirkungen das Format der Schiebeeinrichtung verrin
gert werden und der direkte Pfad zwischen der Schiebeeinrich
tung und dem Register wird bei einer Division überflüssig. Da
neben kann die Ausführung einer Division mit einer klein
formatigen Hardware zulassend die Steuerschaltung vereinfacht
werden. Dadurch kann die Größe der Operationskomponente ver
ringert werden und der Leistungsverbrauch kann herabgesetzt
werden. Weil die Division und die Viterbi-Decodierung mit der
selben Hardware ausgeführt werden können, kann daneben eine
effiziente Ausnutzung der Operationsschaltung sichergestellt
werden.
Claims (4)
1. Rechenwerk zum Ausführen einer Division mit:
einer zum Verarbeiten von Daten mit einer festgelegten Mehrzahl von Bits oder n Bits betreibbaren Recheneinrichtung (4; 25), die zur Ausführung einer Subtraktion betreibbar ist,
einer ersten n-Bit-Speichereinrichtung (2; 31) zur Zwischenspeicherung von von der Recheneinrichtung (4; 35) übergebenen Daten,
einer zweiten n-Bit-Speichereinrichtung (1; 26) zum Übergeben von Berechnungsdaten an die Recheneinrichtung (4; 35),
einem n-stufigen Schieberegister (5; 29) zum sequenti ellen Speichern von ein positives oder ein negatives Vorzei chen von Ergebnissen der von der Recheneinrichtung (4; 35) ausgeführten Berechnungen anzeigenden Signalen und
einer Schiebeeinrichtung (3; 32), mit der die Daten der ersten Speichereinrichtung (2; 31) um ein Bit nach links verschiebbar sind, zur Bereitstellung einer Ausgabe, die da nach an die Recheneinrichtung (4; 35) übergeben wird, dadurch gekennzeichnet, daß
die Recheneinrichtung (4; 25) ansprechend auf ein ein positives Vorzeichen eines Ergebnisses einer vorhergehenden Berechnung anzeigendes Signal in der zweiten Speichereinrich tung (1; 26) abgelegte Daten von in der Schiebeeinrichtung (3; 32) abgelegten Daten subtrahiert und ansprechend auf ein ein negatives Vorzeichen eines Ergebnisses einer vorhergehenden Berechnung anzeigendes Signal zum Addieren der in der zweiten Speichereinrichtung (1; 26) abgelegten Daten zu in der Schie beeinrichtung (3; 32) abgelegten Daten betreibbar ist, wobei
nach Verschieben der in der ersten Speichereinrichtung (2; 31) zwischengespeicherten Daten Daten des höchststehenden Bits des Schieberegisters (5; 29) in die Stelle des niedrigststehenden Bits der Schiebeeinrichtung (3; 32) ein setzbar sind.
einer zum Verarbeiten von Daten mit einer festgelegten Mehrzahl von Bits oder n Bits betreibbaren Recheneinrichtung (4; 25), die zur Ausführung einer Subtraktion betreibbar ist,
einer ersten n-Bit-Speichereinrichtung (2; 31) zur Zwischenspeicherung von von der Recheneinrichtung (4; 35) übergebenen Daten,
einer zweiten n-Bit-Speichereinrichtung (1; 26) zum Übergeben von Berechnungsdaten an die Recheneinrichtung (4; 35),
einem n-stufigen Schieberegister (5; 29) zum sequenti ellen Speichern von ein positives oder ein negatives Vorzei chen von Ergebnissen der von der Recheneinrichtung (4; 35) ausgeführten Berechnungen anzeigenden Signalen und
einer Schiebeeinrichtung (3; 32), mit der die Daten der ersten Speichereinrichtung (2; 31) um ein Bit nach links verschiebbar sind, zur Bereitstellung einer Ausgabe, die da nach an die Recheneinrichtung (4; 35) übergeben wird, dadurch gekennzeichnet, daß
die Recheneinrichtung (4; 25) ansprechend auf ein ein positives Vorzeichen eines Ergebnisses einer vorhergehenden Berechnung anzeigendes Signal in der zweiten Speichereinrich tung (1; 26) abgelegte Daten von in der Schiebeeinrichtung (3; 32) abgelegten Daten subtrahiert und ansprechend auf ein ein negatives Vorzeichen eines Ergebnisses einer vorhergehenden Berechnung anzeigendes Signal zum Addieren der in der zweiten Speichereinrichtung (1; 26) abgelegten Daten zu in der Schie beeinrichtung (3; 32) abgelegten Daten betreibbar ist, wobei
nach Verschieben der in der ersten Speichereinrichtung (2; 31) zwischengespeicherten Daten Daten des höchststehenden Bits des Schieberegisters (5; 29) in die Stelle des niedrigststehenden Bits der Schiebeeinrichtung (3; 32) ein setzbar sind.
2. Rechenwerk nach Anspruch 1, dadurch gekennzeichnet,
daß
die Recheneinrichtung (4; 35) eine dritte Speicherein richtung (6; 27) zum Speichern von Berechnungsdaten zum Aus führen der Subtraktion sowie
eine auf ein ein positives oder ein negatives Vorzei chen eines Ergebnisses einer von der Recheneinrichtung (4; 35) ausgeführten Berechnung anzeigendes Signal ansprechende Wähl einrichtung (7; 30) zum Wählen von Daten aus entweder der zweiten Speichereinrichtung (1; 26) oder der dritten Speicher einrichtung (6; 27) aufweist und zum Addieren der so gewählten Daten zu den in der Schiebeeinrichtung (3; 32) abgelegten Da ten betreibbar ist.
die Recheneinrichtung (4; 35) eine dritte Speicherein richtung (6; 27) zum Speichern von Berechnungsdaten zum Aus führen der Subtraktion sowie
eine auf ein ein positives oder ein negatives Vorzei chen eines Ergebnisses einer von der Recheneinrichtung (4; 35) ausgeführten Berechnung anzeigendes Signal ansprechende Wähl einrichtung (7; 30) zum Wählen von Daten aus entweder der zweiten Speichereinrichtung (1; 26) oder der dritten Speicher einrichtung (6; 27) aufweist und zum Addieren der so gewählten Daten zu den in der Schiebeeinrichtung (3; 32) abgelegten Da ten betreibbar ist.
3. Rechenwerk nach Anspruch 2, bei dem die zweite
Speichereinrichtung (1) und/oder die dritte Speichereinrich
tung (6) Register sind und/oder die Wähleinrichtung (7) ein
Multiplexer ist.
4. Rechenwerk nach Anspruch 2 oder 3, gekennzeichnet
durch:
einen ersten Speicher (21) zum Speichern einer kummu lierten Datenmenge aus einer festgelegten Mehrzahl von Bits oder aus n Bits oder von Daten zum Auswählen verbleibender Pfade und
einen zweiten Speicher (22) zum Speichern von aus n Bits bestehenden, einen von jedem Pfad in Übereinstimmung mit einem Wert einer Empfangsserie angenommenen Hammingabstand an zeigenden Daten, wobei
die Recheneinrichtung (25) zum Ausführen einer ersten Addition einer kummulierten Menge zu einem zu einem Pfad gehö renden Hamming-Abstand, einer zweiten Addition einer kummu lierten Menge zu einem zu einem anderen Pfad gehörigen Ham mingabstand und zum Ausführen einer Subtraktion zwischen dem Ergebnis der ersten Addition und dem Ergebnis der zweiten Addition während einer Viterbi-Decodierung und zum Ausführen einer Addition einer festgelegten Mehrzahl von Bits oder von n Bits während einer Division auf Grundlage eines Divisions-Al gorithmusses ohne Restbildung betreibbar ist,
die zweite Speichereinrichtung (26) und die dritte Speichereinrichtung (27) zur Zwischenspeicherung von Ergebnis sen der von der Recheneinrichtung ausgeführten Berechnungen betreibbar sind,
die erste Speichereinrichtung (31) zum Zwischenspei chern von während der Division auf Grundlage eines Divisions algorithmus ohne Restbildung von der Recheneinrichtung (25) ausgegebenen Daten betreibbar ist,
das Schieberegister (29) zum Zwischenspeichern von aus n Bits bestehenden Daten zur Auswahl von Pfaden, die als Er gebnis einer Subtraktion zwischen dem Ergebnis der ersten Addition und dem Ergebnis der zweiten Addition mittels der Re cheneinrichtung (25) erhalten, und während der Viterbi-Deco dierung in der zweiten Speichereinrichtung (26) und der drit ten Speichereinrichtung (27) abgelegt werden und zum sequenti ellen Speichern von ein positives oder ein negatives Vorzei chen von Ergebnissen der von der Recheneinrichtung (25) wäh rend der Division auf Grundlage eines Divisionsalgorithmusses ohne Restbildung ausgeführten Berechnungen anzeigenden Signa len betreibbar ist,
die Wähleinrichtung (30) zum Wählen des ersten Additionsergebnisses oder des zweiten Additionsergebnisses in Übereinstimmung mit dem Vorzeichen der Wähldaten und zum Über geben einer neuen kummulierten Menge an den ersten Speicher (21) während der Viterbi-Decodierung betreibbar ist und
die Schiebeeinrichtung (32) zum Durchlassen von Daten zur Recheneinrichtung (25) während der Viterbi-Decodierung und zum Verschieben der Daten der ersten Speichereinrichtung (31) um ein Bit nach links und zum Einsetzen der Daten des höchst stehenden Bits des Schieberegisters (29) an die Stelle des niedrigststehenden Bits zur Bereitstellung einer Ausgabe, die danach während der Division auf Grundlage eines Divisionsalgo rithmusses ohne Restbildung an die Recheneinrichtung übergeben wird, betreibbar ist.
einen ersten Speicher (21) zum Speichern einer kummu lierten Datenmenge aus einer festgelegten Mehrzahl von Bits oder aus n Bits oder von Daten zum Auswählen verbleibender Pfade und
einen zweiten Speicher (22) zum Speichern von aus n Bits bestehenden, einen von jedem Pfad in Übereinstimmung mit einem Wert einer Empfangsserie angenommenen Hammingabstand an zeigenden Daten, wobei
die Recheneinrichtung (25) zum Ausführen einer ersten Addition einer kummulierten Menge zu einem zu einem Pfad gehö renden Hamming-Abstand, einer zweiten Addition einer kummu lierten Menge zu einem zu einem anderen Pfad gehörigen Ham mingabstand und zum Ausführen einer Subtraktion zwischen dem Ergebnis der ersten Addition und dem Ergebnis der zweiten Addition während einer Viterbi-Decodierung und zum Ausführen einer Addition einer festgelegten Mehrzahl von Bits oder von n Bits während einer Division auf Grundlage eines Divisions-Al gorithmusses ohne Restbildung betreibbar ist,
die zweite Speichereinrichtung (26) und die dritte Speichereinrichtung (27) zur Zwischenspeicherung von Ergebnis sen der von der Recheneinrichtung ausgeführten Berechnungen betreibbar sind,
die erste Speichereinrichtung (31) zum Zwischenspei chern von während der Division auf Grundlage eines Divisions algorithmus ohne Restbildung von der Recheneinrichtung (25) ausgegebenen Daten betreibbar ist,
das Schieberegister (29) zum Zwischenspeichern von aus n Bits bestehenden Daten zur Auswahl von Pfaden, die als Er gebnis einer Subtraktion zwischen dem Ergebnis der ersten Addition und dem Ergebnis der zweiten Addition mittels der Re cheneinrichtung (25) erhalten, und während der Viterbi-Deco dierung in der zweiten Speichereinrichtung (26) und der drit ten Speichereinrichtung (27) abgelegt werden und zum sequenti ellen Speichern von ein positives oder ein negatives Vorzei chen von Ergebnissen der von der Recheneinrichtung (25) wäh rend der Division auf Grundlage eines Divisionsalgorithmusses ohne Restbildung ausgeführten Berechnungen anzeigenden Signa len betreibbar ist,
die Wähleinrichtung (30) zum Wählen des ersten Additionsergebnisses oder des zweiten Additionsergebnisses in Übereinstimmung mit dem Vorzeichen der Wähldaten und zum Über geben einer neuen kummulierten Menge an den ersten Speicher (21) während der Viterbi-Decodierung betreibbar ist und
die Schiebeeinrichtung (32) zum Durchlassen von Daten zur Recheneinrichtung (25) während der Viterbi-Decodierung und zum Verschieben der Daten der ersten Speichereinrichtung (31) um ein Bit nach links und zum Einsetzen der Daten des höchst stehenden Bits des Schieberegisters (29) an die Stelle des niedrigststehenden Bits zur Bereitstellung einer Ausgabe, die danach während der Division auf Grundlage eines Divisionsalgo rithmusses ohne Restbildung an die Recheneinrichtung übergeben wird, betreibbar ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6017184A JPH07225673A (ja) | 1994-02-14 | 1994-02-14 | 演算装置 |
JP06265394A JP3250363B2 (ja) | 1993-05-20 | 1994-03-31 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19504864A1 DE19504864A1 (de) | 1995-08-24 |
DE19504864C2 true DE19504864C2 (de) | 1999-10-14 |
Family
ID=26353668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19504864A Expired - Fee Related DE19504864C2 (de) | 1994-02-14 | 1995-02-14 | Rechenwerk zum Ausführen einer Division |
Country Status (3)
Country | Link |
---|---|
US (1) | US5517439A (de) |
DE (1) | DE19504864C2 (de) |
GB (1) | GB2286471B (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946223A (en) * | 1995-12-08 | 1999-08-31 | Matsushita Electric Industrial Co. Ltd. | Subtraction/shift-type dividing device producing a 2-bit partial quotient in each cycle |
GB2341950B (en) * | 1998-06-10 | 2003-03-12 | Lsi Logic Corp | Digital processing |
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
TW514822B (en) * | 1999-05-06 | 2002-12-21 | Ind Tech Res Inst | Low power consumption mathematic apparatus and method |
JP2001034472A (ja) * | 1999-07-16 | 2001-02-09 | Mitsubishi Electric Corp | データ処理装置および除算、剰余算アルゴリズム |
US6318156B1 (en) * | 1999-10-28 | 2001-11-20 | Micro Motion, Inc. | Multiphase flow measurement system |
US20060155788A1 (en) * | 2000-03-09 | 2006-07-13 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060173847A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143180A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US20060143253A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143249A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US7844579B2 (en) * | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20050015608A1 (en) * | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US20060143199A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143237A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20030088757A1 (en) * | 2001-05-02 | 2003-05-08 | Joshua Lindner | Efficient high performance data operation element for use in a reconfigurable logic environment |
US7237000B2 (en) * | 2001-08-16 | 2007-06-26 | Texas Instruments Incorporated | Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly |
US7403966B2 (en) * | 2003-12-08 | 2008-07-22 | Freescale Semiconductor, Inc. | Hardware for performing an arithmetic function |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0379998A2 (de) * | 1989-01-24 | 1990-08-01 | Oki Electric Industry Co., Ltd. | Dividierer zur hochgeschwindigen Ausführung einer arithmetischen Operation |
US5097435A (en) * | 1988-12-24 | 1992-03-17 | Kabushiki Kaisha Toshiba | High speed dividing apparatus |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4065666A (en) * | 1976-10-15 | 1977-12-27 | Rca Corporation | Multiply-divide unit |
US4238833A (en) * | 1979-03-28 | 1980-12-09 | Monolithic Memories, Inc. | High-speed digital bus-organized multiplier/divider system |
US4405992A (en) * | 1981-04-23 | 1983-09-20 | Data General Corporation | Arithmetic unit for use in data processing systems |
JPS62285137A (ja) * | 1986-06-04 | 1987-12-11 | Hitachi Ltd | デイジタル信号処理プロセツサ |
JPS63245518A (ja) * | 1987-03-31 | 1988-10-12 | Toshiba Corp | 除算演算装置 |
US4872214A (en) * | 1988-04-01 | 1989-10-03 | Digital Equipment Corporation | Method and apparatus for high performance division |
DE68927398T2 (de) * | 1988-08-29 | 1997-05-28 | Nippon Electric Co | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen |
JP2520484B2 (ja) * | 1988-08-29 | 1996-07-31 | 日本電気株式会社 | 除算回路 |
US5131081A (en) * | 1989-03-23 | 1992-07-14 | North American Philips Corp., Signetics Div. | System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers |
US5317736A (en) * | 1989-07-07 | 1994-05-31 | Bowen Frederic W | System for managing information using codes and coded objects |
US5283900A (en) * | 1989-10-02 | 1994-02-01 | Spectron Microsystems, Inc. | Real-time operating system and virtual digital signal processor for the control of a digital signal processor |
US5016210A (en) * | 1989-11-15 | 1991-05-14 | United Technologies Corporation | Binary division of signed operands |
US5317531A (en) * | 1992-04-02 | 1994-05-31 | Intel Corporation | Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division |
GB2268604A (en) * | 1992-07-02 | 1994-01-12 | Motorola Inc | Integer divider. |
US5339413A (en) * | 1992-08-21 | 1994-08-16 | International Business Machines Corporation | Data stream protocol for multimedia data streaming data processing system |
-
1995
- 1995-02-02 US US08/382,576 patent/US5517439A/en not_active Expired - Lifetime
- 1995-02-07 GB GB9502358A patent/GB2286471B/en not_active Expired - Fee Related
- 1995-02-14 DE DE19504864A patent/DE19504864C2/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5097435A (en) * | 1988-12-24 | 1992-03-17 | Kabushiki Kaisha Toshiba | High speed dividing apparatus |
EP0379998A2 (de) * | 1989-01-24 | 1990-08-01 | Oki Electric Industry Co., Ltd. | Dividierer zur hochgeschwindigen Ausführung einer arithmetischen Operation |
Also Published As
Publication number | Publication date |
---|---|
GB2286471A (en) | 1995-08-16 |
US5517439A (en) | 1996-05-14 |
GB9502358D0 (en) | 1995-03-29 |
GB2286471B (en) | 1998-10-28 |
DE19504864A1 (de) | 1995-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19504864C2 (de) | Rechenwerk zum Ausführen einer Division | |
DE3424962C2 (de) | ||
DE69827915T2 (de) | Verarbeitungsverfahren und -vorrichtung | |
DE19839627B4 (de) | Digitaler Signalprozessor | |
DE3882772T2 (de) | Vektorprozessor angepasst zum Sortieren von Vektordaten. | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE60018038T2 (de) | Gray-code-zähler mit einem binären inkrementierer und verfahren zu dessen betrieb | |
DE2338469A1 (de) | Programmierbares digitales datenverarbeitungsgeraet | |
DE2949375A1 (de) | Gleitkommaprozessor | |
DE69834781T2 (de) | Viterbi-Dekoder mit geringem Leistungsverbrauch | |
DE3036747A1 (de) | Binaere multiplikationszellenschaltung | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE2902496A1 (de) | Digitale datenmultiplikationsanordnung | |
DE2221693B2 (de) | Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen | |
DE2739525C2 (de) | Rechner | |
DE68927398T2 (de) | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen | |
DE4409834A1 (de) | Multiplizierschaltung und Divisionsschaltung | |
DE3447634C2 (de) | ||
DE2603791B2 (de) | Verfahren und schaltungsanordnungen zur deltamodulationsuebertragung | |
EP0265555B1 (de) | Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen | |
DE2425574A1 (de) | Adressierung von zeichen in einem wortorientierten system eines rechenautomaten | |
DE69838028T2 (de) | Linearvektorrechnung | |
DE19847245C2 (de) | Kombinierte Addierer- und Logik-Einheit | |
DE2952689C2 (de) | ||
EP1393514B1 (de) | Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: PANASONIC CORP., KADOMA, OSAKA, JP |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20140902 |