DE19504864C2 - Rechenwerk zum Ausführen einer Division - Google Patents

Rechenwerk zum Ausführen einer Division

Info

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
Application number
DE19504864A
Other languages
English (en)
Other versions
DE19504864A1 (de
Inventor
Hidetoshi Suzuki
Toshihiro Ishikawa
Yukihiro Fujimoto
Noriaki Minamida
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co 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
Priority claimed from JP6017184A external-priority patent/JPH07225673A/ja
Priority claimed from JP06265394A external-priority patent/JP3250363B2/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE19504864A1 publication Critical patent/DE19504864A1/de
Application granted granted Critical
Publication of DE19504864C2 publication Critical patent/DE19504864C2/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)
  • 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.
(Ausführungsform 1)
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.
(Ausführungsform 2)
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ß.
(Ausführungsform 3)
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.
(1) Erster Additionsschritt eines Pfadmaßes und eines Verzweigungsmaßes
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.
(2) Zweiter Additionsschritt eines Pfadmaßes und eines Verzeigungsmaßes
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.
(3) Subtraktions (Größenvergleichs) Schritt für die beiden Additionsergebnisse
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.
(4) Bestimmungs (Wahl) Schritt für das Vorzeichen des Subtraktionsergebnisses
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.
(5) Schritt des Speicherns (Aktualisierens des Pfadma­ ßes) wenn bestimmt wurde, daß das Subtraktionsergebnis klein ist
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.
(6) Speicherschritt für das Datenleitungswahlsignal
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.
(1) Erster Additionsschritt für Pfadmaße und Verzwei­ gungsmaße für beim Zustand S2m endende Pfade
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.
(2) Zweiter Additionsschritt für Pfadmaße und Verzwei­ gungsmaße für beim Zustand S2m endende Pfade
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.
(3) Schritt des Vergleichens des Ergebnisses der ersten Addition mit dem Ergebnis der zweiten Addition
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.
(4) Schritt des Übertragens des Vergleichsergebnisses an die Speicher
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.
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.
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.
DE19504864A 1994-02-14 1995-02-14 Rechenwerk zum Ausführen einer Division Expired - Fee Related DE19504864C2 (de)

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)

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

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

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

Patent Citations (2)

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