DE69333460T2 - Arithmetisches Gerät - Google Patents

Arithmetisches Gerät Download PDF

Info

Publication number
DE69333460T2
DE69333460T2 DE69333460T DE69333460T DE69333460T2 DE 69333460 T2 DE69333460 T2 DE 69333460T2 DE 69333460 T DE69333460 T DE 69333460T DE 69333460 T DE69333460 T DE 69333460T DE 69333460 T2 DE69333460 T2 DE 69333460T2
Authority
DE
Germany
Prior art keywords
arithmetic
register
data
adder
latch circuit
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
DE69333460T
Other languages
English (en)
Other versions
DE69333460D1 (de
Inventor
Nobuo Asano
Mitsuru Uesugi
Toshihiro Ishikawa
Minoru Okamoto
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 Holdings 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 JP25956392A external-priority patent/JP3191442B2/ja
Priority claimed from JP14494893A external-priority patent/JPH0722969A/ja
Priority claimed from JP19109293A external-priority patent/JPH0746145A/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69333460D1 publication Critical patent/DE69333460D1/de
Publication of DE69333460T2 publication Critical patent/DE69333460T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3961Arrangements of methods for branch or transition metric calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die Erfindung betrüfft eine Arithmetikvorrichtung, die in einen Digitalsignal-Verarbeitungsprozessor eingebaut ist und geeignet ist, zur Fehlerkorrektur eine Viterbi-Decodierung von faltungscodierten Daten durchzuführen.
  • Beschreibung der verwandten Technik
  • In den vergangenen Jahren wurde der Digitalsignal-Verarbeitungsprozessor (nachfolgend als DSP abgekürzt) sehr verbreitet als ein Prozessor verwendet, der zum Einbau in Geräte wie beispielsweise Mobiltelefone Verwendung fand, und zwar gemäß einem Trend zur Digitalisierung auf dem Gebiet des Mobilfunks. Bei der Datenübermittlung in Mobilfunkschaltungen werden häufig Bitfehler erzeugt, und es muss eine Fehlerkorrekturverarbeitung ausgeführt werden. Eines der Fehlerkorrekturverfahren verwendet eine Viterbi-Decodierung für Faltungscode und der DSP wird manchmal für die Fehlerkorrekturverarbeitung verwendet.
  • Die Viterbi-Decodierung dient zur Durchführung einer Maximum-Likelihood-Decodierung eines Faltungscodes durch Wiederholung von einfachen Verarbeitungsschritten von Addition, Vergleich und Auswahl, sowie durch eine Zurückverfolgungsoperation zur abschließenden Decodierung der Daten. Beim Viterbi-Decodieren werden zu jedem Zeitpunkt, bei dem codierte Daten (Empfangsdatenreihen), welche einem einzigen Bit von Informationsbits entsprechen, erhalten werden, Zwischensignal-Abstände (Maße) von Pfaden berechnet, die zu diesem Zeitpunkt zu einzelnen Zuständen gehören, um Bestand habende Pfade zu bestimmen.
  • Bei einem Faltungsdecoder, welcher eine Zwangslänge von k aufweist, erstrecken sich zwei Pfade, die repräsentativ sind für Zustandsübergänge in einen Zustand S2n (wobei n eine positive ganze Zahl ist) zu einem gewissen Zeitpunkt, ausgehend von einem Zustand Sn und einem Zustand (Gleichung 1) zu einem um eins davor liegenden Zeitpunkt, wie dargestellt in 1. Sn+2 (k–1) (1)
  • Ein Pfadmaß a ist die Summe eines Zwischensignal-Abstandes (Verzweigungsmaß) zwischen einem Ausgangssymbol jedes Pfades, der in den Zustand S2n gelangt, und den Empfangsdatenreihen, sowie eines Pfadmaßes, welches die Gesamtsumme von Verzweigungsmaßen von Bestand habenden Pfaden angibt, die bis zum Zustand Sn zu dem um eins davor liegenden Zeitpunkt übrig bleiben. In ähnlicher Weise ist ein Pfadmaß b die Summe des Abstandes (Verzweigungsmaß) zwischen dem Ausgangssymbol jedes Pfades, der in den Zustand S2n kommt, und den Empfangsdatenreihen, sowie eines Pfadmaßes, welches die Gesamtheit von Verzweigungsmaßen von Bestand habenden Pfaden angibt, die bis zum Zustand (Gleichung 1) zu dem um eins davor liegenden Zeitpunkt übrig bleiben. Die Pfadmaße a und b, welche in den Zustand S2n gelangen, werden verglichen, um einen von diesen, welcher kleiner ist als der andere, als Bestand habenden Pfad auszuwählen. Jeder der Verfahrensschritte, und zwar Pfadmaßbestimmungsaddition, Pfadmaßvergleich und Pfadauswahl, wird für 2k–1 Zustände zu jedem Zeitpunkt ausgeführt. Weiter muss eine 'Vergangenheitsbeschreibung' des Betreffs, welcher Pfad bei der Pfadauswahl gewählt wurde, in Form eines Pfadauswahlsignals PS [Si], (i = 0 ⁓ {2k–1–1)} hinterlassen werden. Wenn ein Suffix eines Zustands zu dem um eins davor liegenden Zeitpunkt, welchem ein gewählter Pfad zugehörig ist, kleiner ist als Suffixe des anderen Zustands zu dem um eins davor liegenden Zeitpunkt, gilt PS [Si] = 0, wenn es jedoch nicht kleiner ist, gilt PS [Si] = 1. Beim abschließenden Decodieren mittels der Zurückver folgungsoperation werden Bestand habende Pfade auf Basis des gewählten Signals zurückverfolgt, um ein Decodieren von Daten durchzuführen.
  • Der dem Zustand S2n (mit n = positive ganze Zahl ist) zugehörige Pfad zu dem gewissen Zeitpunkt wird bis zum Zustand Sn oder dem Zustand (Gleichung 1) zu dem um eins davor liegenden Zeitpunkt basierend auf dem Wahlsignal PS [S2n] zurückverfolgt, wie in 2 dargestellt.
  • Allgemein kann ein Zustand zu dem um eins davor liegenden Zeitpunkt auf Basis eines Zustands Si und einem Pfadauswahlsignal PS[Si] gemäß Gleichung 2 ausgedrückt werden. Sj,j = ½ + PS [Si]·2(k–1) (2)
  • Falls ein Faltungscode mit Endbits verwendet wird, kann die Pfadauswahl als decodierte Daten bestimmt werden.
  • 3 ist ein Blockdiagramm, welches eine Arithmetikvorrichtung zeigt, die in ein herkömmliches DSP zur Viterbi-Decodierung eingebaut ist.
  • In 3 speichert ein Datenspeicher 1 Pfadmaße, Pfadauswahlsignale und decodierte Daten. Ein Barrelshifter 3 verschiebt aus dem Datenspeicher 1 ausgelesene Daten. Ein erster Bus 6 ist mit dem Datenspeicher 1 verbunden, um ein Zuführen von Daten und ein Speichern der Operationsergebnisse zu bewirken. Ein erstes Register 7 enthält die Anzahl der Schiebebits (eine Verschiebebit-Nummer), um welche der Barrelshifter 3 die Daten verschiebt. Eine Arithmetik- und Logikeinheit (nachfolgend als ALOU oder ALU) 8 bezeichnet, führt arithmetische und logische Operationen durch. Eine erste Latch-Schaltung 9 speichert vorübergehend einen Wert des linken Eingangs der ALOU 8. Eine zweite Latch-Schaltung 10 speichert vorübergehend einen Wert des rechten Eingangs der ALOU 8. Eine Mehrzahl von zweiten Registern 11 und 12 speichern vorübergehend Operationsergebnisse. Eine zweiter Bus 13 führt eine Datenzufuhr vom Register 11 oder 12 durch. Die Anzahl der Verschiebebits für den Barrelshifter 3 ist durch das Zweierkomplementsystem dargestellt und eine Verschiebung nach rechts wird ausgeführt, wenn die Verschiebebit-Nummer positiv ist, jedoch wird eine Verschiebung nach links ausgeführt, wenn diese negativ ist.
  • In der wie obenstehend aufgebauten Arithmetikvorrichtung wird, wenn codierte Daten, welche einer Faltungscodierung unterzogen wurden und in einem Endbit enden, einer Viterbi-Decodierung unterzogen werden, eine Zurückverfolgungsoperation ausgeführt, wie nachstehend beschrieben wird. Die Bedingungen dafür sind derart, dass die Zwangslänge eines Faltungscodes k beträgt, die Anzahl der Bits einer codierten Information n beträgt, und sowohl der Datenspeicher 1 als auch der erste Bus 6, der zweite Bus 13, die erste Latch-Schaltung 9, die zweite Latch-Schaltung 10, die ALOU 8 und die zweiten Register 11 und 12 eine Bitbreite von 2k– 1 aufweisen. Weiter sind Pfadauswahlsignale PSt [Si], (t=0 ⁓ {(n–1)}+k–1)}, i=0⁓{2k–1–1}) in ein einziges Wort in Form eines Pfadspeichers (Gleichung 3) gepackt und im Datenspeicher in Form von PM[t], (t=0 ⁓ {(n–1)+(k–1)}) gespeichert. PM[t] = {PSt [S2 (k–1)–1], PSt [S2 (k–1)–2],..., PSt[St], PSt[S0] ...(3)
  • Decodierte Daten Y[i], (i=0 ⁓ {n–1}) sind im Datenspeicher in einer Einheit von einem einzigen Wort für ein einziges Bit gespeichert.
  • Die Zurückverfolgungsoperation ist in Schritte unterteilt, welche nachstehend erläutert werden.
  • (1) Ein fester Wert [0] wird in der zweiten Latch-Schaltung 10 gespeichert. Die ALOU 8 speichert den Wert der zweiten Latch-Schaltung 10 unverändert im zweiten Register 11.
  • Somit ist "Die Operation beginnt beim Zustand 0" erfüllt.
  • In den folgenden Schritten (2) bis (10) wird i heruntergezählt von {(n–1) + (k–1)} bis (k–1), um die Operationen n Mal zu wiederholen.
  • (2) Der Wert des zweiten Registers 11 wird über den zweiten Bus 13 in der ersten Latch-Schaltung 9 gespeichert. Die ALU bestimmt ein Zweierkomplement des Wertes der ersten Latch-Schaltung 9 und speichert es im zweiten Register 12.
  • (3) Der Wert des zweiten Registers 12 wird über den ersten Bus 6 im ersten Register 7 gespeichert.
  • Somit ist erfüllt: "Dieser Wert ist eine Verschiebebit-Nummer zur Auswahl des nächsten Pfadauswahlsignals."
  • (4) Ein Pfadspeicher PM(i) wird aus dem Datenspeicher 1 ausgelesen, mittels des Barrelshifters 3 um eine durch das erste Register 7 bezeichnete Verschiebebit-Nummer verschoben und in der zweiten Latch-Schaltung 10 gespeichert. Die ALOU 8 speichert den Wert der zweiten Latch-Schaltung 10 unverändert im zweiten Register 12.
  • Somit ist erfüllt: "Ein zu wählendes Pfadauswahlsignal ist auf das niedrigstwertige Bit (LSB) gelegt."
  • (5) Der Wert des zweiten Registers 12 wird in der ersten Latch-Schaltung 9 über den zweiten Bus 13 gespeichert und ein fester Wert [1] wird in der zweiten Latch-Schaltung 10 gespeichert. In der ALOU 8 werden die Werte der ersten und zweiten Latch-Schaltungen 9 und 10 einer UND-Verknüpfung unterzogen und das sich daraus ergebende Produkt wird im zweiten Register 12 gespeichert.
  • Somit ist "Lediglich das LBS wird extrahiert" erfüllt.
  • (6) Der Wert des zweiten Registers 12 wird als decodierte Daten Y[i–(k–1)] im Datenspeicher gespeichert.
  • Somit ist "Das LSB sind die decodierten Daten" erfüllt.
  • (7) Ein fester Wert [k] wird im ersten Register 7 gespeichert.
  • (8) Der Wert des Registers 12 wird über den zweiten Bus 13 in der ersten Latch-Schaltung 9 gespeichert, und eine Ausgangsgröße, welche durch Verschieben des Wertes des Registers 12 erhalten wird, wird über den ersten Bus 6 zum Barrelshifter 3 gesendet und mittels des Barrelshifters um eine durch das erste Register 7 bezeichnete Verschiebebit-Nummer verschoben, und wird in der zweiten Latch-Schaltung 10 gespeichert. In der ALOU 8 werden die Werte der ersten und der zweiten Latch-Schaltung 9 und 10 einer ODER-Verknüpfung unterzogen und die sich ergebende Summe wird im zweiten Register 12 gespeichert.
  • (9) Ein fester Wert [–1] wird im ersten Register 7 gespeichert.
  • (10) Eine Ausgabegröße, die durch Verschieben des Wertes des zweiten Registers 12 mittels des Barrelshifters 3 um eine durch das erste Register 7 bezeichnete Verschiebebit-Nummer erhalten wird, wird in der zweiten Latch-Schaltung 10 gespeichert. Die ALOU 8 speichert den Wert der zweiten Latch-Schaltung 10 unverändert im Register 12.
  • Somit ist erfüllt: "Der Zustand zu dem um eins davor liegenden Zeitpunkt wird durch die Schritte (6) bis (10) berechnet".
  • Bei der obigen herkömmlichen Arithmetikvorrichtung kann, indem Operationen unter Verwendung des Barrelshifters 3 und der ALOU 8 in Kombination in dieser Weise ausgeführt werden, die Zurückverfolgungsoperation beim Viterbi-Decodieren des n-Bit Informationsbits mittels (9n+1) Schritten erzielt werden.
  • Wenn die Operationsbitbreite geringer ist als die Anzahl der Zustände 2k–1 oder der herkömmliche Code nicht im Endbit endet sondern in kontinuierlicher Weise verwendet wird, kann eine Zurückverfolgungsoperation ebenso in ähnlicher Weise ausgeführt werden.
  • Bei der obigen herkömmlichen Arithmetikvorrichtung werden jedoch viele Operationsschritte benötigt, um den Zustand zu dem um eins davor liegenden Zeitpunkt zu bestimmen, und decodierte Daten werden in einer Einheit von je einem Wort für je ein Bit gespeichert, was das Problem mit sich bringt, dass die Kapazität des Datenspeichers erhöht wird.
  • Eine Arithmetikvorrichtung, welche einen Speicher zum Speichern von Daten, einen Barrelshifter zum Verschieben von Daten, ein Schieberegister zur Durchführung einer Datenspeicherung im Speicher und eine Datenkonvertiereinheit beinhaltet, ist aus US-A-4 979 175 bekannt. In der bekannten Vorrichtung wird das Ausgangssignal des Barrelshifters dem Adresseingang des Speichers zugeführt. Eine Serien-Parallel-Umsetzerschaltung empfängt Ausgangssignale von einer Addier-Komparator-Wahlschaltung und ist zum Schreiben von Daten in den Speicher geeignet.
  • US-A-4 939 684 offenbart einen vereinfachten Prozessor für Digitalfilteranwendungen, welche zwei Barrelshifter beinhalten, die Verschiebeanweisungen von einem Programmspeicher empfangen.
  • INHALT DER ERFINDUNG
  • Die Erfindung beabsichtigt, die herkömmlichen Probleme zu lösen, und es ist ein Ziel der Erfindung, eine hervorragende Arithmetikvorrichtung bereitzustellen, wel che Operationen mittels einer verminderten Anzahl von Operationsschritten sowie unter Verwendung eines Datenspeichers geringerer Kapazität durchführen kann.
  • Gemäß der Erfindung wird das zuvor erwähnte Ziel durch eine Arithmetikvorrichtung nach Anspruch 1 erzielt. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen 2 bis 6 beansprucht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Zustandsübergangsdiagramm (Trellis-Diagramm), welches Pfade eines Zustandsübergangs bei einem Faltungscodierer bei einem Viterbi-Decodieren darstellt.
  • 2 ist ein Zustandsübergangsdiagramm (Trellis-Diagramm), welches die Zurückverfolgung von Pfaden bei einer Zurückverfolgungsoperation bei einem Viterbi-Decodieren darstellt.
  • 3 ist ein Blockdiagramm, welches eine Konfiguration einer herkömmlichen Arithmetikvorrichtung für ein Viterbi-Decodieren darstellt.
  • 4 Ist ein Blockdiagramm, welches eine Konfiguration einer Arithmetikvorrichtung für ein Viterbi-Decodieren darstellt.
  • 5 ist ein Blockdiagramm, welches eine weitere Konfiguration einer Arithmetikvorrichtung für ein Viterbi-Decodieren darstellt.
  • 6 ist ein Blockdiagramm, welches eine noch eine weitere Konfiguration einer Arithmetikvorrichtung für ein Viterbi-Decodieren darstellt.
  • 7 ist ein Blockdiagramm, welches eine weitere Konfiguration einer Arithmetikvorrichtung darstellt.
  • 8 ist ein Diagramm, welches ein Beispiel einer Bereichszuweisung bei Datenspeichern zeigt, um die Operation der Arithmetikvorrichtung von 7 zu erläutern.
  • 9 ist ein Zustandsübergangsdiagramm, welches in Verbindung mit allen Zuständen den Übergang von dem Zustand zu einem um eins davor liegenden Zeitpunkt zu dem Zustand des aktuellen Zeitpunktes darstellt, um die Funktionsweise der Arithmetikvorrichtung von 7 zu erläutern.
  • 10 ist ein Blockdiagramm, welches eine Konfiguration einer Arithmetikvorrichtung gemäß der Erfindung darstellt, wohingegen die in den 4 bis 7 dargestellten Konfigurationen nicht durch die Erfindung abgedeckt sind.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 4 ist ein Blockdiagramm, welches eine Konfiguration einer Arithmetikvorrichtung für ein Viterbi-Decodieren gemäß einer Ausführungsform der Erfindung darstellt.
  • Bezug nehmend auf 4 speichert ein Datenspeicher 1 Pfadmaße, Pfadauswahlsignale und decodierte Daten. Ein Bus 2 ist mit dem Datenspeicher 1 verbunden, um ein Zuführen von Daten und ein Speichern von Operationsergebnissen zu bewirken. Ein Barrelshifter 3 verschiebt aus dem Datenspeicher 1 ausgelesene Daten. Ein Schieberegister 4 kann eine Verschiebe-Eingangsgröße eines spezifizierten Bits einer Ausgangsgröße des Barrelshifters 3 empfangen und führt über den Bus 2 ein Laden von Daten aus dem Datenspeicher 1 durch oder speichert Daten im Datenspeicher 1. Eine Invertierschaltung 5 invertiert einen bezeichneten Registerwert des Schieberegisters 4, um eine Verschiebebit-Nummer zu erzeugen, die an den Barrelshifter 3 angelegt wird. Die Verschiebebit-Nummer des Barrelshifters 3 ist durch das Zweierkomplementsystem dargestellt, und eine Verschiebung nach rechts wird ausgeführt, wenn die Verschiebebit-Nummer positiv ist, jedoch wird eine Verschiebung nach links ausgeführt, wenn diese negativ ist. Im Schieberegister 4 liegt das höchstwertige Bit (MSB) auf der Verschiebe-Eingangsseite.
  • In der wie zuvor beschrieben aufgebauten Arithmetikvorrichtung wird, wenn codierte Daten, welche einer Faltungscodierung unterzogen wurden und in einem Endbit enden, einer Viterbi-Decodierung unterzogen wird, eine Zurückverfolgungsoperation ausgeführt, wie nachstehend beschrieben wird. Die Bedingungen dafür sind derart, dass die Zwangslänge eines Faltungscodes k beträgt, die Anzahl der Bits einer codierten Information n beträgt, und sowohl der Datenspeicher 1 als auch der Bus 2 als auch das Schieberegister 4 eine Bitbreite von 2k–1 Bit aufweisen. Das MSB einer Ausgabegröße des Barrelshifters 3 wird als Verschiebe-Eingangsgröße dem Schieberegister 4 zugeführt, und die Invertierschaltung 5 invertiert die oberen (k–1) Bits des Schieberegisters 4 und addiert das MSB, welches 0 (Null) beträgt, zu ihren (k–1) Ausgabebits, um k Bits zu erzeugen, welche als Verschiebebit-Nummer für den Barrelshifter 3 verwendet werden. Weiter sind Pfadauswahlsignale PSt[Si], (t=0 {(n–1)}+k–1)}, i=0 ⁓ {2k–1–1}) in ein einziges Wort in Form eines Pfadspeichers (Gleichung 3) gepackt und im Datenspeicher 1 in Form von PM[t], (t=0 ⁓ {(n-1)+(k–1)}) gespeichert.
  • Decodierte Daten Y[i], (i=0 ⁓ {n–1}) sind in eine aus einem einzigen Wort bestehenden Einheit von 2k–1 Bits gepackt und im Datenspeicher 1 gespeichert.
  • Die Zurückverfolgungsoperation ist in Schritte unterteilt, welche nachstehend erläutert werden.
  • (1) Ein fester Wert [0] wird im Schieberegister 4 gespeichert. Somit ist "Die Operation beginnt beim Zustand 0" erfüllt.
  • In den folgenden Schritten (2) und (3) wird i heruntergezählt von {(n–1) + (k–1)} auf (k–1), um die Operationen n Mal zu wiederholen.
  • (2) Ein Pfadspeicher PM[i] wird aus dem Datenspeicher 1 ausgelesen, mittels des Barrelshifters 3 um eine Verschiebebit-Nummer verschoben, die durch die Ausgangsgröße der k Bits der Invertierschaltung 5 bezeichnet ist, und das MSB der Aus gabegröße des Barrelshifters 3 wird als Verschiebe-Eingangsgröße dem Schieberegister 4 zugeführt.
  • Somit ist erfüllt: "Ein zu wählendes Pfadauswahlsignal wird auf das MSB gelegt" und "Die oberen (k–1) Bits nach der Verschiebe-Eingangsgröße geben den Zustand zu dem um eins davor liegenden Zeitpunkt an" und "Gleichzeitig liefert die Invertierung der oberen (k–1) Bits die Basis für die Bit-Verschiebeanzahl für die Auswahl des nächsten Auswahlsignals".
  • (3) Jedes Mal, wenn 2k–1 Bits decodiert wurden, werden die Inhalte des Schieberegisters 4 im Datenspeicher gespeichert.
  • Somit ist erfüllt: "Beim gewählten Pfadauswahlsignal handelt es sich um die decodierten Daten."
  • Wie oben beschrieben kann in Übereinstimmung mit der vorliegenden Ausführungsform die Auswahl des Pfadauswahlsignals und die Berechnung des Zustands zu dem um eins davor liegenden Zeitpunkt in Schritt (2) ausgeführt werden und daher kann die Zurückverfolgungsoperation beim Viterbi-Decodieren eines n-Bit-Informationsbit mittels {n+(n/2k–1)+1} Schritten erzielt werden.
  • 5 und 6 sind Blockdiagramme, welche Konfigurationen der Arithmetikvorrichtung gemäß weiteren Ausführungsformen der Erfindung darstellen. In den 5 und 6 wurde der in 4 dargestellten Konfiguration ein erstes Register 7, eine ALOU 8, eine erste Latch-Schaltung 9, eine zweite Latch-Schaltung 10, zweite Register 11 und 12 und ein zweiter Bus 13 hinzugefügt, welche erforderlich sind, um außer der Zurückverfolgungsoperation beim Viterbi-Decodieren weitere Verarbeitungen durchzuführen.
  • Wenn die Operationsbitbreite kleiner ist als die Anzahl der Zustände 2k–1 oder der Faltungscode nicht im Endbit endet, sondern in kontinuierlicher Weise verwendet wird, kann eine Zurückverfolgungsoperation ebenfalls in ähnlicher Weise ausgeführt werden.
  • 7 ist ein Blockdiagramm, welches eine Konfiguration einer Arithmetikvorrichtung gemäß noch einer weiteren Ausführungsform der Erfindung zeigt. Bezug nehmend auf 1 speichern erste und zweite Datenspeicher 21 und 22 Pfadmaße und Pfadwahlsignale, Busse 23 und 24 sind mit den Datenspeichern 21 bzw. 22 gekoppelt, um ein Zuführen von Daten und ein Speichern von Operationsergebnissen durchzuführen, ein Multiplexer 25 führt eine Auswahl zwischen einem Zuführen vom Bus 24 und einem Zuführen von später noch beschriebenen Registern durch, eine Latch-Schaltung 26 speichert vorübergehend einen Wert in den rechtsseitigen Eingang einer ALOU 30, eine Latch-Schaltung 27 speichert vorübergehend einen Wert in den linksseitigen Eingang der ALOU 30, eine Latch-Schaltung 28 speichert vorübergehend einen Wert in den rechtsseitigen Eingang einer Addiereinrichtung 31, und eine Latch-Schaltung 29 speichert vorübergehend einen Wert in den linksseitigen Eingang der Addiereinrichtung 31. Die ALOU 30 führt eine Arithmetik- und Logikoperation für die Inhalte der Latch-Schaltungen 26 und 27 durch und die Addiereinrichtung 31 führt eine Addition für die Inhalte der Latch-Schaltungen 28 und 29 durch. Eine Mehrzahl von Registern 32, 33, 34 und 35 speichert vorübergehend ein Operationsergebnis der ALOU 30 und der Addiereinrichtung 31, Multiplexer 36 und 37 führen eine Auswahl unter den Ausgangsgrößen der Register 32 bis 35 durch, ein erstes Register 38 speichert vorübergehend ein Operationsergebnis der ALOU 30, ein zweites Register 39 speichert vorübergehend ein Operationsergebnis des Addierers 31, ein Multiplexer 40 führt eine Auswahl zwischen Ausgangsgrößen der Register 38 und 39 durch, ein Größenkomparator 41 vergleicht die Größe der Ausgangsgrößen der ALOU 30 und der Addiereinrichtung 31 und erzeugt ein Vergleichsergebnis des Wertes 0, wenn die Ausgangsgröße der ALOU 30 kleiner oder gleich groß wie die der Addiereinrichtung 31 ist, jedoch ein Vergleichsergebnis des Wertes 1, wenn die Ausgangsgröße der Addiereinrichtung 31 kleiner ist, wobei das Vergleichsergebnis des Größenkomparators 41 für ein Pfadwahlsignal 42 repräsentativ ist, ein Schieberegister 43 empfängt das Pfadwahlsignal 42 als Verschiebe eingangsgröße, Pointer-Schaltungen 44, 45 und 46 zeigen Leseadressen oder Speicheradressen der Datenspeicher 21 und 22 an, ein Multiplexer 47 führt eine Auswahl unter Pointer-Ausgangsgrößen durch und eine Verzögerungseinheit 48 verzögert das Auswahlsignal 42 um einen einzigen Schritt.
  • Bei der wie zuvor beschrieben aufgebauten Arithmetikvorrichtung wird, wenn zu einem gewissen Zeitpunkt die Anzahl der Zustände 2k–1 beträgt, die Operation der ACS-Berechnung wie nachstehend beschrieben ausgeführt. Zur einfachen Erläuterung sei angenommen, dass N = 2 und k = 3. In jedem der Datenspeicher 21 und 22 ist ein Bereich zum Speichern von Pfadmaßen P'[i], (i=0⁓3) einzelner Zustände zu einem um eins davor liegenden Zeitpunkt, ein Bereich zum Speichern der Pfadmaße P[i], (i=0⁓3) der zum aktuellen Zeitpunkt erhaltenen einzelnen Zustände und ein Bereich zum Speichern von Pfadwahlsignalen PS[i], (i=0⁓3) vorgesehen. 8 ist ein Diagramm, das ein Beispiel einer Bereichszuweisung in den Datenspeichern 21 und 22 darstellt. Als Anfangswerte legt die Pointer-Schaltung 44 Leseadressen (P'[0], P'[2]) fest, die Pointer-Schaltung 45 legt Speicheradressen (P[0], P[2]) fest und die Pointer-Schaltung 46 legt Pfadwahlsignal-Speicheradressen fest. 9 zeigt das Verhalten beim Übergang von einem um eins davor liegenden Zeitpunkt zum Zustand des aktuellen Zeitpunktes, in Verbindung mit allen Zuständen. In 9 wird bei jedem Übergangspfad von dem Zustand des vorhergehenden Zeitpunktes zu dem Zustand des aktuellen Zeitpunktes ein Beispiel eines für die Faltungscodiereinrichtung inhärenten Ausgabesymbols beschrieben. Das Ergebnis der Berechnung des Abstandes zwischen dem Empfangssignal und jedem Ausgabesymbol ist ein Verzweigungsmaß und die Verzweigungsmaße für das gleiche Ausgabesymbol sind zueinander gleich. Daher ist eine Berechnung von 22 Arten von Ausgabesymbolen, 00, 01, 10 und 11 ausreichend, und die 22 Arten der bereits berechneten Verzweigungsmaße sind in den Registern 32, 33, 34 und 35 gespeichert.
  • Die Operationsskizze der ACS-Berechnung im Fall von 22 Zuständen zu einem gewissen Zeitpunkt ist wie nachstehend beschrieben in Schritte unterteilt.
  • ACS-Berechnung des Zustands S(0)
  • (1) Pfadmaße P'[0] und P'[2] werden aus den Datenspeichern 21 und 22 bei durch die Pointer-Schaltung 44 bezeichneten Adressen ausgelesen und in den Latch-Schaltungen 26 bzw. 29 gespeichert. Die Inhalte des Registers 32 werden in der Latch-Schaltung 27 gespeichert und die Inhalte des Registers 35, das mit dem Register 32 gepaart ist, werden in der Latch-Schaltung 28 gespeichert. Die ALOU 30 addiert die Inhalte der Latch-Schaltung 26 und die Inhalte der Latch-Schaltung 27 und speichert das Additionsergebnis im Register 38 und führt es dabei auch dem einen Eingang des Größenkomparators 41 zu. Andererseits addiert der Addierer 31 die Inhalte der Latch-Schaltung 28 und die Inhalte der Latch-Schaltung 29 und speichert das Additionsergebnis im Register 39 und führt es dabei auch dem anderen Eingang des Größenkomparators 41 zu. Der Größenkomparator 41 vergleicht die Größe der Ausgangsgrößen der ALOU 30 und des Addierers 31, um ein Pfadwahlsignal 42 zu erzeugen. Das Pfadwahlsignal 42 wird im Schieberegister 43 und in der Verzögerungseinheit 48 gespeichert. Bei diesem Zustand ist erfüllt: "Die Summe von P'[0] und ein Verzweigungsmaß für das Ausgabesymbol 00 wurde bestimmt, die Summe von P'[2] und ein Verzweigungsmaß für das Ausgabesymbol 11 wurde bestimmt, und der Vergleich und die Auswahl von Pfadmaßen und das Speichern eines Pfadwahlsignals wurden durchgeführt."
  • (2) Die Inhalte der Register 38 und 39, die durch die Ausgangsgröße der Verzögerungsschaltung 48 gewählt werden, werden im Datenspeicher 21 bei einer durch die Pointer-Schaltung 45 bezeichneten Adresse gespeichert.
  • ASC-Berechnung des Zustands S[1]
  • (3) Die Inhalte des Registers 35 werden in der Latch-Schaltung 27 gespeichert und die Inhalte des Registers 32, das mit dem Register 35 gepaart ist, werden in der Latch-Schaltung 28 gespeichert. Die ALOU 30 addiert die Inhalte, welche mittels Schritt (1) bereits in der Latch-Schaltung 26 gespeichert wurden, und die Inhalte der Latch-Schaltung 27 und speichert das Additionsergebnis im Register 38 und führt es dabei auch dem einen Eingang des Größenkomparators 41 zu. Andererseits addiert der Addierer 31 die Inhalte, welche mittels Schritt (1) bereits in der Latch-Schaltung 29 gespeichert wurden, zu den Inhalten der Latch-Schaltung 28 und speichert das Additionsergebnis im Register 39 und führt es dabei auch dem anderen Eingang des Größenkomparators 41 zu. Der Größenkomparator 41 vergleicht die Größe der Ausgangsgrößen der ALOU 30 und des Addierers 31, um ein Pfadwahlsignal 42 zu erzeugen. Das Pfadwahlsignal 42 wird im Schieberegister 43 und in der Verzögerungseinheit 48 gespeichert. Bei diesem Zustand ist erfüllt: "Die Summe von P'[0] und ein Verzweigungsmaß für das Ausgabesymbol 11 wurde bestimmt, die Summe von P'[0] und ein Verzweigungsmaß für das Ausgabesymbol 00 wurde bestimmt, und der Vergleich und die Auswahl von Pfadmaßen und das Speichern eines Pfadwahlsignals wurden durchgeführt."
  • (4) Nachdem das Hochzählen der Pointer-Schaltung 45 erfolgt ist, werden die Inhalte der Register 38 oder 39, die durch die Ausgangsgröße der Verzögerungseinheit 48 gewählt wurden, im Datenspeicher 21 bei einer durch die Pointer-Schaltung 45 bezeichneten Adresse gespeichert.
  • (5) Die Inhalte der Pointer-Schaltung 45 werden wieder in die Speicheradressen (P[0], P[2]) geschrieben.
  • ASC-Berechnung des Zustands S(2)
  • (6) Nach dem Hochzählen der Pointer-Schaltung 44 werden die Pfadmaße P'[1] und P'[3] aus den Datenspeichern 21 und 22 bei durch die Pointer-Schaltung 44 bezeichneten Adressen ausgelesen und in den Latch-Schaltungen 26 bzw. 29 gespeichert. Die Inhalte des Registers 33 werden in der Latch-Schaltung 27 gespeichert und die Inhalte des Registers 34, das mit dem Register 33 gepaart ist, werden in der Latch-Schaltung 28 gespeichert. Die ALOU 30 addiert die Inhalte der Latch-Schaltung 26 und die Inhalte der Latch-Schaltung 27 und speichert das Additionser gebnis im Register 38, und führt es dabei auch dem einen Eingang des Größenkomparators 41 zu. Andererseits addiert der Addierer 31 die Inhalte der Latch-Schaltung 28 und die Inhalte der Latch-Schaltung 29 und speichert das Additionsergebnis im Register 39, und führt es dabei auch dem anderen Eingang des Größenkomparators 41 zu. Der Größenkomparator 41 vergleicht die Größe der Ausgangsgrößen der ALOU 30 und des Addierers 31, um ein Pfadwahlsignal 42 zu erzeugen. Das Pfadwahlsignal 42 wird im Schieberegister 43 und in der Verzögerungseinheit 48 gespeichert. Bei diesem Zustand ist erfüllt: "Die Summe von P'[1] und ein Verzweigungsmaß für das Ausgabesymbol 01 wurde bestimmt, die Summe von P'[3] und ein Verzweigungsmaß für das Ausgabesymbol 01 wurde bestimmt, und der Vergleich und die Auswahl von Pfadmaßen und das Speichern eines Pfadwahlsignals wurden durchgeführt."
  • (7) Die Inhalte der Register 38 und 39, die durch die Ausgangsgröße der Verzögerungsschaltung 48 gewählt werden, werden im Datenspeicher 22 bei einer durch die Pointer-Schaltung 45 bezeichneten Adresse gespeichert.
  • ACS-Berechnung des Zustands S[3]
  • (8) Die Inhalte des Registers 34 werden in der Latch-Schaltung 27 gespeichert und die Inhalte des Registers 33, das mit dem Register 34 gepaart ist, werden in der Latch-Schaltung 28 gespeichert. Die ALOU 30 addiert die Inhalte, welche mittels Schritt (6) bereits in der Latch-Schaltung 26 gespeichert wurden, zu den Inhalten der Latch-Schaltung 27 und speichert das Additionsergebnis im Register 38 und führt es dabei auch dem einen Eingang des Größenkomparators 41 zu. Andererseits addiert der Addierer 31 die Inhalte, welche mittels Schritt (6) bereits in der Latch-Schaltung 28 gespeichert wurden, zu den Inhalten der Latch-Schaltung 29 und speichert das Additionsergebnis im Register 39 und führt es dabei auch dem anderen Eingang des Größenkomparators 41 zu. Der Größenkomparator 41 vergleicht die Größe der Ausgangsgrößen der ALOU 30 und des Addierers 31, um ein Pfadwahlsignal 42 zu erzeugen. Das Pfadwahlsignal 42 wird im Schieberegister 43 und in der Verzöge rungseinheit 48 gespeichert. Bei diesem Zustand ist erfüllt: "Die Summe von P'[1] und ein Verzweigungsmaß für das Ausgabesymbol 10 wurde bestimmt, die Summe von P'[3] und ein Verzweigungsmaß für das Ausgabesymbol 01 wurde bestimmt, und der Vergleich und die Auswahl von Pfadmaßen und das Speichern eines Pfadwahlsignals wurden durchgeführt."
  • (9) Nachdem das Hochzählen der Pointer-Schaltung 45 erfolgt ist, werden die Inhalte der Register 38 oder 39, die durch die Ausgangsgröße der Verzögerungseinheit 48 gewählt wurden, im Datenspeicher 22 bei einer durch die Pointer-Schaltung 45 bezeichneten Adresse gespeichert.
  • (10) Die Inhalte des Schieberegisters 43 werden im Datenspeicher 21 bei einer durch die Pointer-Schaltung 46 bezeichneten Adresse gespeichert. Bei diesem Zustand sind "Pfadwahlsignale für zu einem Zeitpunkt auftretende einzelne Zustände in einer Ein-Wort-Einheit gepackt und gespeichert".
  • Auf diese Weise kann in der Arithmetikvorrichtung der vorliegenden Ausführungsform eine ASC-Berechnung bei 22 Zuständen zu einem gewissen Zeitpunkt für N = 2 und k = 3 mittels einer Schrittanzahl in der Größenordnung von 10 erzielt werden, im Gegensatz dazu ist diese bei den herkömmlichen Schritten in der Größenordnung von 37. Allgemein kann eine ACS-Berechnung bei 2k–1 Zuständen zu einem gewissen Zeitpunkt für N = N und k = k mittels einer Schrittanzahl in der Größenordnung von (2 * 2k–1 + 1) erzielt werden, im Gegensatz dazu liegt diese bei den herkömmlichen Schritten in der Größenordnung von (9 * 2k–1 + 1). Wenn jedoch N groß ist oder die Anzahl der Register begrenzt ist, muss eine geringfügige Erhöhung bei der Anzahl der Schritte veranschlagt werden.
  • Eine Arithmetikvorrichtung gemäß noch einer weiteren Ausführungsform der Erfindung wird nachfolgend mit Bezug auf 10 beschrieben.
  • 10 ist ein Blockdiagramm, welches eine Konfiguration der Arithmetikvorrichtung der Erfindung zeigt. Die in 10 gezeigte Arithmetikvorrichtung weist auf: Datenspeicher 51 und 52 zum Speichern von Empfangssignalen und -maßen, Busleitungen 53 und 54, die mit den Datenspeichern 51 und 52 verbunden sind, um ein Zufuhren von Daten und ein Speichern der Operationsergebnisse durchzuführen, und einen Multiplexer 55 zur Durchführung einer Auswahl zwischen Eingangsgrößen von der Busleitung 54 und einen Multiplexer 66. Die Arithmetikvorrichtung beinhaltet weiter eine Latch-Schaltung 56 zum vorübergehenden Speichern eines Wertes in den rechtsseitigen Eingang einer Arithmetik- und Logik-Operationseinheit (ALOU) 60, eine Latch-Schaltung 57 zum vorübergehenden Speichern eines Wertes in den linksseitigen Eingang der ALOU 60, eine Latch-Schaltung 58 zum vorübergehenden Speichern eines Wertes in den rechtsseitigen Eingang eines Addierers 61 und eine Latch-Schaltung 59 zum vorübergehenden Speichern eines Wertes in den linksseitigen Eingang des Addierers 61. Ebenfalls sind in der Arithmetikvorrichtung vorgesehen: Register 62, 63, 64 und 65 zum vorübergehenden Speichern von Operationsergebnissen, ein Multiplexer 66, von der Art des Multiplexers 67, zur Durchführung einer Auswahl zwischen Ausgangsgrößen der Register 62, 63, 64 und 65, und eine Pointer-Schaltung 68, welche Leseadressen oder Speicheradressen der Datenspeicher 51 und 52 angibt.
  • Die Funktionsweise der vorliegenden, wie zuvor beschrieben aufgebauten Ausführungsform wird nachfolgend beschrieben.
  • Es wird hier eine Operation zur Bestimmung von 2N Arten von Verzweigungsmaßen zu einem gewissen Zeitpunkt beschrieben. Maße d(R, 0) für Werte von Empfangssignalen, oder, wenn sich die Skalierung realisierbar ist, für alle Werte, die ein Empfangssignal R annehmen kann, sind vorab festgelegt und als Tabelle im Datenspeicher 51 gespeichert. Maße d(R, 1) für alle Werte, die ein Empfangssignal R annehmen kann, sind vorab festgelegt und als Tabelle im Datenspeicher 52 gespeichert. In den Datenspeichern 51 und 52 wird d(R,0) und d(R,1) bei der gleichen Adresse gespeichert. Im Datenspeicher 51 gespeicherte Empfangssignale werden als Adressen zum Aufsuchen der Tabelle verwendet. Wenn die ALOU 60 und der Addierer 61 gleichzeitig verwendet werden, werden die Register 62 und 65 paarweise verwendet, und die Register 63 und 64 werden paarweise verwendet.
  • Die Funktionsweise zur Bestimmung der Verzweigungsmaße wird nachfolgend für N = 2 in der Reihenfolge der Verarbeitungen skizziert.
  • (1) Ein Empfangssignal Ro wird aus dem Datenspeicher 51 ausgelesen und in der Lese-Pointer-Schaltung 68 gespeichert.
  • (2) Ein Maß d(Ro, 0) wird aus dem Datenspeicher 51 bei einer durch den Pointer-Schaltung 68 bezeichneten Adresse ausgelesen und in der Latch-Schaltung 56 gespeichert. Die Inhalte der Latch-Schaltung 56 durchlaufen die ALOU 60 und werden von dieser im Register 62 gespeichert. Andererseits wird ein Maß d(Ro, 1) aus dem Datenspeicher 52 bei einer durch den Pointer-Schaltung 68 bezeichneten Adresse ausgelesen und in der Latch-Schaltung 59 gespeichert. Die Inhalte der Latch-Schaltung 59 durchlaufen den Addierer 61 und werden von diesem im Register 65 gespeichert.
  • (3) Dieselben Inhalte der Latch-Schaltung 56 wie die mittels der zuvor beschriebenen Verarbeitung (2) gespeicherten Inhalte durchlaufen die ALOU 60, und diese Inhalte werden von dieser im Register 63 gespeichert. Andererseits durchlaufen dieselben Inhalte der Latch-Schaltung 59 wie die mittels der zuvor beschriebenen Verarbeitung (2) gespeicherten Inhalte der Addierer 61, und diese Inhalte werden von diesem im Register 64 gespeichert.
  • (4) Ein Empfangssignal R1 vom Datenspeicher 51 wird in der Lese-Pointer-Schaltung 68 gespeichert.
  • (5) Ein Maß d(R1, 0) wird aus dem Datenspeicher 51 bei einer durch die Pointer-Schaltung 68 bezeichneten Adresse ausgelesen und in der Latch-Schaltung 56 gespeichert. Die Inhalte des Registers 62 werden in der Latch-Schaltung 57 gespeichert. Die ALOU 60 addiert die Inhalte der Latch-Schaltung 56 und die Inhalte der Latch-Schaltung 57 und speichert das Additionsergebnis im Register 62: Andererseits wird ein Maß d(R1, 1) wird aus dem Datenspeicher 52 bei einer durch die Pointer-Schaltung 68 bezeichneten Adresse ausgelesen und in der Latch-Schaltung 59 gespeichert. Die Inhalte der Registers 65 werden in der Latch-Schaltung 58 gespeichert. Der Addierer 61 addiert die Inhalte der Latch-Schaltung 58 und die Inhalte der Latch-Schaltung 59 und speichert das Additionsergebnis im Register 65.
  • Demgemäß wird der Abstand zwischen RoR1 und 00 bei dem Register 62 bestimmt, und der Abstand zwischen RoR1 und 11 bei dem Register 65 bestimmt.
  • (6) Die Inhalte des Registers 64 werden in der Latch-Schaltung 57 gespeichert. Die ALOU 60 addiert dieselben Inhalte der Latch-Schaltung 56 wie die mittels der obigen Verarbeitung (5) gespeicherten Inhalte zu den Inhalten der Latch-Schaltung 57 und speichert das Additionsergebnis im Register 64. Andererseits werden die Inhalte des Registers 63 werden in der Latch-Schaltung 58 gespeichert. Der Addierer 61 addiert dieselben Inhalte der Latch-Schaltung 59 wie die mittels der obigen Verarbeitung (5) gespeicherten Inhalte zu den Inhalten der Latch-Schaltung 58 und speichert das Additionsergebnis im Register 63. Demgemäß wird der Abstand zwischen RoR1 und 01 beim Register 63 bestimmt, und der Abstand zwischen RoR1 und 10 wird beim Register 64 bestimmt.
  • Wie zuvor beschrieben kann gemäß der vorliegenden Ausführungsform die Verarbeitung der Bestimmung von 22 Arten von Verzweigungsmaßen für N = 2 mittels einer Schrittanzahl in der Größenordnung von 6 erzielt werden. Allgemein können 2N Arten von Verzweigungsmaßen für N = N mittels N(2N/2+1) Schritten bestimmt werden. Wenn jedoch N groß ist oder die Registeranzahl begrenzt ist, muss eine geringfügige Erhöhung der Anzahl der Verarbeitungsschritte veranschlagt werden. Wenn das Vorsehen von Tabellen nicht praktikabel ist, müssen Maße d(R, 0) und d(R, 1) auf Basis eines jeden Empfangssignals bestimmt werden, was zu einer ent sprechenden Zunahme der Schrittanzahl führt. Und zwar ist die Schrittanzahl vergleichbar mit der Anzahl der herkömmlichen Schritte.
  • Wie zuvor beschrieben können bei der Arithmetikvorrichtung der vorliegenden Ausführungsform eine durch die ALOU erfolgende Addition und eine durch die Addiereinrichtung erfolgende Addition gleichzeitig ausgeführt werden, und somit kann eine Berechnung der zwei Verzweigungsmaße gleichzeitig erfolgen. In diesem Fall ist der Datenspeicher zweigeteilt, jedoch ist die Größe des Datenspeichers nicht erhöht, und die Anzahl der Operationsschritte für eine Durchführung einer Verzweigungsmaßberechnung kann vorteilhaft verringert werden.

Claims (6)

  1. Arithmetikvorrichtung zur Beschleunigung einer Viterbi-Decodierverarbeitung, dadurch gekennzeichnet, dass sie aufweist: zwei Datenspeicher (51, 52), deren Adressen jeweils von einem gemeinsamen Zeiger (68) bezeichnet werden; eine Arithmetik- und Logik-Operationseinrichtung (60); eine Addiereinrichtung (61) zur gleichzeitigen Durchführung einer Additionsoperation unabhängig von der Arithmetik- und Logik-Operationseinrichtung; und eine Mehrzahl von Speichereinrichtungen (62 bis 65), die paarweise verwendet werden, wenn die Arithmetik- und Logik-Operationseinrichtung und die Addiereinrichtung Verarbeitungen gleichzeitig ausführen, wobei die Inhalte der zwei Datenspeicher (51, 52) jeweils bei von demselben Zeiger (68) bezeichneten Adressen ausgelesen werden und dem einen Eingang sowohl der Arithmetik- und Logik-Operationseinrichtung (60) als auch der Addiereinrichtung (61) zugeführt werden und die Inhalte der paarweisen Speichereinrichtungen (62, 65; 63, 64) dem anderen Eingang sowohl der Arithmetik- und Logik-Operationseinrichtung als auch der Addiereinrichtung zugeführt werden, um zu bewirken, dass die Arithmetik- und Logik-Operationseinrichtung und die Addiereinrichtung Additionen durchführen, und die Operationsergebnisse der Arithmetik- und Logik-Operationseinrichtung und der Addiereinrichtung wiederum in der paarweisen Speichereinrichtung (62, 65; 63, 64) gespeichert werden.
  2. Arithmetikvorrichtung zur Beschleunigung einer Viterbi-Decodierverarbeitung nach Anspruch 1, dadurch gekennzeichnet, dass sie weiter aufweist: einen Größen-Komparator (41), welcher die Größe der Ausgangsgrößen der Arithmetik- und Logik-Operationseinrichtung und der Addiereinrichtung vergleicht; ein Schiftregister (43), welches ein Vergleichsergebnis des Größen-Komparators vergleicht; und ein erstes und ein zweites Register (38, 39), die geeignet sind, Operationsergebnisse der Arithmetik- und Logik-Operationseinrichtung und der Addiereinrichtung vorübergehend zu speichern, wobei sie durch das Vergleichsergebnis des Größen-Komparators gewählt werden.
  3. Arithmetikvorrichtung zur Beschleunigung einer Viterbi-Decodierverarbeitung nach Anspruch 2, dadurch gekennzeichnet, dass sie weiter aufweist: einen Barrelschifter (3), welcher aus dem Datenspeicher (51 oder 52) ausgelesene Daten verschiebt; und eine Datenkonvertiereinheit (5) zum Konvertieren einer spezifizierten Registerausgangsgröße vom Schiftregister (43).
  4. Arithmetikvorrichtung zur Beschleunigung einer Viterbi-Decodierverarbeitung nach Anspruch 3, dadurch gekennzeichnet, dass die Datenkonvertiereinheit (5) einen Inverter beinhaltet.
  5. Arithmetikvorrichtung zur Beschleunigung einer Viterbi-Decodierverarbeitung nach Anspruch 2, dadurch gekennzeichnet, dass sie weiter aufweist: einen Barrelschifter (3) zum Verschieben von aus der Arithmetik- und Logik-Operationseinrichtung (8) ausgelesenen Daten; und eine Datenkonvertiereinheit (5) zum Konvertieren einer spezifizierten Registerausgangsgröße vom Schiftregister (43).
  6. Arithmetikvorrichtung zur Beschleunigung einer Viterbi-Decodierverarbeitung nach Anspruch 5, dadurch gekennzeichnet, dass die Datenkonvertiereinheit (5) einen Inverter beinhaltet.
DE69333460T 1992-09-29 1993-09-28 Arithmetisches Gerät Expired - Fee Related DE69333460T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP25956392A JP3191442B2 (ja) 1992-09-29 1992-09-29 ビタビ復号用演算装置
JP25956392 1992-09-29
JP14494893 1993-06-16
JP14494893A JPH0722969A (ja) 1993-06-16 1993-06-16 演算装置
JP19109293 1993-08-02
JP19109293A JPH0746145A (ja) 1993-08-02 1993-08-02 演算装置

Publications (2)

Publication Number Publication Date
DE69333460D1 DE69333460D1 (de) 2004-04-22
DE69333460T2 true DE69333460T2 (de) 2005-02-03

Family

ID=27318908

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69333460T Expired - Fee Related DE69333460T2 (de) 1992-09-29 1993-09-28 Arithmetisches Gerät
DE69331568T Expired - Fee Related DE69331568T2 (de) 1992-09-29 1993-09-28 Arithmetisches Gerät

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69331568T Expired - Fee Related DE69331568T2 (de) 1992-09-29 1993-09-28 Arithmetisches Gerät

Country Status (5)

Country Link
US (1) US5715470A (de)
EP (2) EP1049001B1 (de)
CN (2) CN1049778C (de)
AU (1) AU652896B2 (de)
DE (2) DE69333460T2 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970097A (en) * 1996-10-15 1999-10-19 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus for use in Viterbi decoding
DE19647156A1 (de) * 1996-11-14 1998-05-20 Siemens Ag Mehrstufige Multiplexeranordnung
DE19647157A1 (de) * 1996-11-14 1998-05-28 Siemens Ag Mehrstufige Multiplexeranordnung
TW374885B (en) * 1997-06-06 1999-11-21 Matsushita Electric Ind Co Ltd The arithmetic unit
JP3338374B2 (ja) * 1997-06-30 2002-10-28 松下電器産業株式会社 演算処理方法および装置
US6309581B1 (en) 1998-02-13 2001-10-30 Milwaukee School Of Engineering Method of making a three dimensional object
US6641897B2 (en) 1998-02-13 2003-11-04 The Milwaukee School Of Engineering Three dimensional object
US6496920B1 (en) * 1998-03-18 2002-12-17 Qiuzhen Zou Digital signal processor having multiple access registers
US6573936B2 (en) * 1998-08-17 2003-06-03 Intel Corporation Method and apparatus for providing a single-instruction multiple data digital camera system that integrates on-chip sensing and parallel processing
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US7031407B1 (en) * 1998-09-28 2006-04-18 Ceva D.S.P. Ltd. Apparatus and method for decoding and trace back of convolution codes using the viterbi decoding algorithm
FR2789247B1 (fr) * 1999-01-28 2004-10-15 St Microelectronics Sa Circuit electronique modulaire a synchronisation amelioree
US6623687B1 (en) 1999-08-06 2003-09-23 Milwaukee School Of Engineering Process of making a three-dimensional object
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US20060143253A1 (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
US8959582B2 (en) 2000-03-09 2015-02-17 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
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143199A1 (en) * 2000-03-09 2006-06-29 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
US8230482B2 (en) 2000-03-09 2012-07-24 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
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 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
DE10127348A1 (de) * 2001-06-06 2002-12-19 Infineon Technologies Ag Verfahren und Schaltungsanordnung zur Übertragung von Daten zwischen einem Prozessor und einem Hardware-Rechenwerk
WO2002003637A1 (de) 2000-07-03 2002-01-10 Infineon Technologies Ag Viterbi-entzerrer mittels verschiedener hardware-datenpfaden für acs und übertr agungsmetriken operationen
JP3532884B2 (ja) * 2001-05-18 2004-05-31 松下電器産業株式会社 ビタビ復号器
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US7467178B2 (en) * 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6975679B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US20030005269A1 (en) * 2001-06-01 2003-01-02 Conner Joshua M. Multi-precision barrel shifting
US6934728B2 (en) * 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6937084B2 (en) * 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US6848074B2 (en) * 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
AUPR679201A0 (en) * 2001-08-03 2001-08-30 Lucent Technologies Inc. Path metric normalization of add-compare-select processing
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
JP2005045727A (ja) * 2003-07-25 2005-02-17 Matsushita Electric Ind Co Ltd ビタビ復号器
US7188302B2 (en) * 2004-04-14 2007-03-06 Realtek Semiconductor Corp. Parallel decision-feedback decoder and method for joint equalizing and decoding of incoming data stream
US7231586B2 (en) * 2004-07-21 2007-06-12 Freescale Semiconductor, Inc. Multi-rate viterbi decoder
CN101192833B (zh) * 2006-11-28 2011-12-07 华为技术有限公司 一种低密度校验码ldpc并行编码的装置及方法
US10057587B2 (en) * 2015-01-31 2018-08-21 Qualcomm Incorporated Coding escape pixels for palette mode coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488252A (en) * 1982-02-22 1984-12-11 Raytheon Company Floating point addition architecture
US4639887A (en) * 1984-02-24 1987-01-27 The United States Of America As Represented By The United States Department Of Energy Bifurcated method and apparatus for floating point addition with decreased latency time
US4622877A (en) * 1985-06-11 1986-11-18 The Board Of Trustees Of The Leland Stanford Junior University Independently controlled wavetable-modification instrument and method for generating musical sound
JPS648438A (en) * 1987-06-30 1989-01-12 Mitsubishi Electric Corp Data processor
EP0344347B1 (de) * 1988-06-02 1993-12-29 Deutsche ITT Industries GmbH Einrichtung zur digitalen Signalverarbeitung
US4979175A (en) * 1988-07-05 1990-12-18 Motorola, Inc. State metric memory arrangement for a viterbi decoder
JP2917577B2 (ja) * 1991-05-30 1999-07-12 松下電器産業株式会社 演算装置

Also Published As

Publication number Publication date
EP0590597A2 (de) 1994-04-06
US5715470A (en) 1998-02-03
DE69333460D1 (de) 2004-04-22
CN1237046A (zh) 1999-12-01
AU652896B2 (en) 1994-09-08
EP1049001B1 (de) 2004-03-17
EP0590597A3 (en) 1995-10-18
EP0590597B1 (de) 2002-02-13
EP1049001A1 (de) 2000-11-02
DE69331568D1 (de) 2002-03-21
CN1086618A (zh) 1994-05-11
CN1049778C (zh) 2000-02-23
DE69331568T2 (de) 2002-10-24
AU4759893A (en) 1994-04-14

Similar Documents

Publication Publication Date Title
DE69333460T2 (de) Arithmetisches Gerät
DE60028906T2 (de) Viterbi Dekoder
DE69929652T2 (de) Datenfehlerkorrektursystem
DE69827915T2 (de) Verarbeitungsverfahren und -vorrichtung
DE69925151T2 (de) Effiziente normalisierung vom trelliszustandsmetrischem wert
DE4230521A1 (de) Viterbi-decodiereinrichtung
EP0306713B1 (de) Verfahren und Anordnung zur Aufbereitung von Daten
DE2515038A1 (de) Synchronisationsschaltung fuer einen viterbi-dekodierer
DE19937506A1 (de) ACS-Einheit für einen Viterbi-Decodierer
DE4437984A1 (de) Übertragungssystem mit Soft-Output-Dekodierung
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE60003858T2 (de) Viterbi Dekodierer mit Pfadmetrik-Normalisierungseinheit
DE10010238C2 (de) Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer
DE2900586A1 (de) Anordnung zum decodieren von codewoertern variabler laenge
DE19542131B4 (de) Viterbi-Decoder
DE3144563A1 (de) Anordnung zum sortieren von datenwoertern nach den werten der jeweils zugeordneten attributzahlen
DE60101745T2 (de) Viterbi dekodierung mit pfadmetrikaktualisierung durchgeführt in einheiten von bitscheiben
EP0769853B1 (de) Logischer Block für einen Viterbi-Decoder
DE3752367T2 (de) Fehlerkorrekturgerät
DE60118716T2 (de) Log-MAP Dekodierung
EP1223679B1 (de) Berechnung und Zuweisung von Übergangsmetrikwerten für einen Viterbi-Dekodierer
EP1393514B1 (de) Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk
DE3805169C2 (de)
DE3718632C1 (de) Verfahren zur Dekodierung von Daten
DE2906578C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee