DE19742958A1 - Co-processor for signal decoding for e.g. mobile telephone - Google Patents

Co-processor for signal decoding for e.g. mobile telephone

Info

Publication number
DE19742958A1
DE19742958A1 DE1997142958 DE19742958A DE19742958A1 DE 19742958 A1 DE19742958 A1 DE 19742958A1 DE 1997142958 DE1997142958 DE 1997142958 DE 19742958 A DE19742958 A DE 19742958A DE 19742958 A1 DE19742958 A1 DE 19742958A1
Authority
DE
Germany
Prior art keywords
coprocessor
metric
metrics
main processor
branch
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.)
Withdrawn
Application number
DE1997142958
Other languages
German (de)
Inventor
Andre Dipl Ing Bonnardot
Gerhard Dipl Phys Eichiner
Jan Dipl Ing Meyer
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.)
Qualcomm Inc
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE1997142958 priority Critical patent/DE19742958A1/en
Publication of DE19742958A1 publication Critical patent/DE19742958A1/en
Withdrawn 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
    • 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/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Abstract

The co-processor (10) provides the auxiliary functions for a Viterbi decoding method using a metric calculator (20), which has an input value read in for each trellis step, for calculating several branch metrics, e.g. upper and lower branches, with a memory (24) holding condition metrics, e.g. old and new metrics. A path selection device (22) calculates new metrics and output values (TRAN, MAXU, MAXL) using the calculated branch metrics and the stored condition metrics, with the new condition metrics stored in the memory.

Description

Die Erfindung betrifft einen Koprozessor sowie eine Signal­ verarbeitungseinrichtung. Insbesondere ist die Erfindung zur Verwendung bei der Dekodierung von Signalen nach dem Viterbi- Verfahren oder verwandten Verfahren geeignet. Die Erfindung kann beispielsweise bei einem mobilen Telefon, insbesondere einem Telefon nach dem GSM-Standard (GSM = Global System for Mobile Communications) eingesetzt werden.The invention relates to a coprocessor and a signal processing device. In particular, the invention is for Use when decoding signals according to the Viterbi Appropriate method or related method. The invention can for example in a mobile phone, in particular a telephone according to the GSM standard (GSM = Global System for Mobile Communications) can be used.

Zur Übertragung digitaler Daten über einen gestörten Kanal werden häufig redundante Kodierverfahren eingesetzt, um Über­ tragungsfehler möglichst weitgehend korrigieren zu können. Bei einem derartigen Verfahren, das gemäß dem GSM-Standard für Mobiltelefone eingesetzt wird, ist eine konvolutorische Kodierung der gesendeten Daten vorgesehen. Bei einer konvo­ lutorischen Kodierung wird jedes zu sendende Datenbit nach einem vorgegebenen Schema mit früher gesendeten Datenbits verknüpft. Im Sender ist dazu üblicherweise ein Schieberegi­ ster mit einer geeigneten Verknüpfungseinrichtung vorgesehen.For the transmission of digital data over a disturbed channel redundant coding methods are often used to over to be able to correct as far as possible wearing errors. In such a method that according to the GSM standard used for mobile phones is a convolutive Coding of the sent data is provided. In a convoy Each data bit to be sent is followed by educational coding a predetermined scheme with data bits sent earlier connected. There is usually a shift control in the transmitter ster provided with a suitable linking device.

Die empfangenen Daten werden mittels eines Viterbi-Verfahrens mit wahrscheinlichkeitsbehafteten Entscheidungen (soft deci­ sions) dekodiert. Ein solches Verfahren ist in dem Artikel "The Viterbi Algorithm" von G. David Forney, Jr., erschienen in Proceedings of the IEEE, März 1973, Seiten 268-278, be­ schrieben. Bei diesem Verfahren dient ein sogenannter Trellis als logisches Gliederungsmittel. Ein Trellis stellt einen "aufgerollten" Ablauf der Zustände und Übergänge im Sender dar. Jeder Trellisschritt entspricht einem gesendeten Bit.The received data are processed using a Viterbi method with probability-based decisions (soft deci sions) decoded. Such a procedure is in the article "The Viterbi Algorithm" by G. David Forney, Jr. in Proceedings of the IEEE, March 1973, pages 268-278, be wrote. A so-called trellis is used in this process as a logical structure. A trellis represents you "rolled up" sequence of states and transitions in the transmitter Each trellis step corresponds to a bit sent.

Fig. 6 zeigt beispielhaft einen derartigen Trellisschritt in einem System mit vier Zuständen s = 0, 1, 2, 3. Den vier al­ ten Zuständen ist je ein als Metrik bezeichneter Wahrschein­ lichkeitswert old_metric(s) zugeordnet. Dieser Wert gibt die Wahrscheinlichkeit dafür an, daß durch einen bei dem bisheri­ gen Ablauf des Viterbi-Verfahrens bestimmten Pfad der alte Zustand s erreicht wurde. Fig. 6 shows an example of such a trellis step in a system having four states s = 0, 1, 2, 3. The four al th states is assigned to each of a designated as a metric plausibility lichkeitswert old_metric (s). This value indicates the probability that the old state s has been reached by a path determined in the previous Viterbi procedure.

In dem in Fig. 6 dargestellten i-ten Trellisschritt wird ein empfangenes Bit ausgewertet. Dazu werden für jeden neuen Zustand s die Werte upper_branch(s) und lower_branch(s) be­ stimmt, die die aufgrund der Empfangsdaten berechnete Wahr­ scheinlichkeit bezeichnen, ob das empfangene Bit einen "0"- Übergang oder einen "1"-Übergang im Sender repräsentiert. Diese beiden Möglichkeiten sind in Fig. 6 durch Pfeile veran­ schaulicht, wobei die durchgezogenen Pfeile einen oberen Zweig (entsprechend einem "0"-Übergang im Sender) und die gestrichelten Pfeile einen unteren Zweig (entsprechend einem "1"-Übergang) kennzeichnen. Um nun für jeden neuen Zustand eine neue Metrik new_metric(s) zu berechnen, wird die jeweils wahrscheinlichste Verlängerung der bisher bestimmten Pfade ermittelt. Beispielsweise wird für den neuen Zustand 1 die folgende Formel ausgewertet:
A received bit is evaluated in the i-th trellis step shown in FIG . For this purpose, the values upper_branch (s) and lower_branch (s) are determined for each new state s, which designate the probability calculated on the basis of the received data, whether the received bit is a "0" transition or a "1" transition in the transmitter represents. These two possibilities are illustrated by arrows in FIG. 6, the solid arrows indicating an upper branch (corresponding to a "0" transition in the transmitter) and the dashed arrows indicating a lower branch (corresponding to a "1" transition). In order to calculate a new metric new_metric (s) for each new state, the most probable extension of the previously determined paths is determined. For example, the following formula is evaluated for the new state 1:

new_metric(1) = max((old_metric(2) + upper_branch(1)),
(old_metric(3) + lower_branch(1))).
new_metric (1) = max ((old_metric (2) + upper_branch (1)),
(old_metric (3) + lower_branch (1))).

Das "+"-Zeichen bezeichnet hier eine Operation zum Aufsum­ mieren von Wahrscheinlichkeiten. Wenn die Wahrscheinlichkei­ ten durch negative Logarithmen repräsentiert werden, ist diese Operation die gewöhnliche Addition.The "+" sign here denotes an operation to inflate probabilities. If the probability represented by negative logarithms this operation the ordinary addition.

Für zukünftige Trellisschritte wird für jeden neuen Zustand nur ein einziger Pfad berücksichtigt, nämlich derjenige, der als wahrscheinlicher beurteilt wurde. Alle anderen Pfade wer­ den verworfen. Da nach dem GSM-Standard ein gesendeter Daten­ block immer im Zustand 0 des Senders enden muß, kann nach dem Empfang eines Datenblocks der aufgrund der empfangenen Infor­ mationen wahrscheinlichste Pfad ermittelt werden. Der gesamte bisher beschriebene Vorgang wird als Kanaldekodierung (channel decoding) bezeichnet. For future trellis steps, every new state takes only one path into account, namely the one that was judged to be more likely. All other paths who the discarded. As a data sent according to the GSM standard block must always end in state 0 of the transmitter Receive a data block based on the information received most likely path. The whole The process described so far is called channel decoding (channel decoding).  

Eine Situation, die der konvolutorischen Kodierung mit einem Schieberegister und einer Verknüpfungseinrichtung vergleich­ bar ist, liegt auch bei der Funkübertragung der Sendesignale vor. Durch Reflexionen der gesendeten Signale entstehen un­ terschiedlich lange Übertragungsstrecken zwischen dem Sender und dem Empfänger, die in der Antenne des Empfängers zusam­ menlaufen. Die Mehrwegausbreitung verursachen Kanalverzerrun­ gen, die von einem Entzerrer (equalizer) im Empfänger rück­ gängig gemacht werden sollen. Da die Mehrwegausbreitung in ihrer physikalischen Wirkung in etwa einer konvolutorischen Kodierung entspricht, wird auch für das Entzerren ein Verfah­ ren verwendet, das dem Viterbi-Verfahren für die Kanaldeko­ dierung sehr ähnlich ist und deshalb im folgenden ebenfalls als Viterbi-Verfahren bezeichnet werden soll. Im Unterschied zu dem oben beschriebenen Verfahren wird hierbei in jedem Trellisschritt die höchste Metrik aller "1"-Transitionen und die höchste Metrik aller "0"-Transitionen berechnet, um das in diesem Schritt wahrscheinlichste empfangene Bit zu ermit­ teln.A situation that is associated with the convolutive coding Shift register and a logic device compare bar is also in the radio transmission of the transmission signals in front. Reflections of the transmitted signals result in un Different long transmission distances between the transmitter and the receiver, which together in the antenna of the receiver men walking. The multipath propagation cause channel distortion gene returned by an equalizer in the receiver should be made common. Since the multipath spread in their physical effect is roughly a convolutive one Corresponds to coding, a procedure is also used for equalization ren used, the Viterbi process for sewer decoration dation is very similar and therefore also in the following should be referred to as the Viterbi process. The difference the method described above is used in each Trellis step the highest metric of all "1" transitions and calculates the highest metric of all "0" transitions to that most likely received bits in this step teln.

Die für die beiden Ausprägungen des Viterbi-Verfahrens erfor­ derlichen Berechnungen sind relativ aufwendig, da sie in Echtzeit durchgeführt werden müssen. Wenn ein programmge­ steuerter Prozessor zum Ausführen des Verfahrens vorgesehen ist, muß dieser leistungsfähig und schnell getaktet sein. Dies ist aufwendig und insbesondere in Funktelefonen proble­ matisch, weil hier viele weitere Prozesse in Echtzeit aus­ geführt werden müssen und weil mit der Leistungsfähigkeit eines Prozessors im allgemeinen auch sein Stromverbrauch zu­ nimmt. Dedizierte Hardwareschaltungen für das Viterbi-Ver­ fahren sind dagegen meist wenig flexibel und können nur ent­ weder die Entzerrung oder die Kanaldekodierung ausführen. Daher wird eine relativ große Chipfläche benötigt.Required for the two versions of the Viterbi process Such calculations are relatively complex since they are in Must be done in real time. If a program controlled processor provided for executing the method is, this must be efficient and clocked quickly. This is complex and particularly problematic in radio telephones Matic, because many other processes run out in real time must be managed and because of the performance a processor in general also increases its power consumption takes. Dedicated hardware circuits for the Viterbi-Ver Driving, however, are usually not very flexible and can only ent do neither equalization nor channel decoding. A relatively large chip area is therefore required.

Die Erfindung hat demgemäß die Aufgabe, die genannten Pro­ bleme zu lösen und Mittel bereitzustellen, die es erlauben, ein Viterbi-Verfahren mit hinreichendem Durchsatz bei gerin­ ger Prozessorbelastung und mit relativ geringem Hardware­ aufwand durchzuführen.The invention accordingly has the task of the mentioned Pro solve problems and provide funds that allow  a Viterbi process with sufficient throughput at gerin low processor load and with relatively little hardware effort to perform.

Erfindungsgemäß wird diese Aufgabe durch einen Koprozessor mit den Merkmalen des Anspruchs 1 sowie durch eine Signalver­ arbeitungseinrichtung mit den Merkmalen des Anspruchs 11 ge­ löst.According to the invention, this task is performed by a coprocessor with the features of claim 1 and by a Signalver working device with the features of claim 11 ge solves.

Die Erfindung geht von der Grundidee aus, das Viterbi-Verfah­ ren geeignet aufzuteilen, so daß sich oft wiederholte Berech­ nungen in einen dedizierten Koprozessor auslagern lassen. Überraschenderweise ist dies auf eine Weise möglich, die bei sehr geringem Kommunikationsaufwand zwischen dem Koprozessor und einem Hauptprozessor einen hohen Auslagerungsgrad der er­ forderlichen Berechnungen zuläßt. Die erfindungsgemäße Lösung beruht darauf, den Trellisschritt als Schnittstelle zwischen dem Koprozessor und dem Hauptprozessor oder einer sonstigen Steuereinrichtung vorzusehen. Bei jedem Trellisschritt werden zumindest einige Ein- und Ausgangswerte über diese Schnitt­ stelle ausgetauscht. Die vom Koprozessor berechneten Zweig­ metriken werden jedoch in einer Speichereinrichtung des Ko­ prozessors gehalten und von Trellisschritt zu Trellisschritt aktualisiert.The invention is based on the basic idea, the Viterbi process Ren to divide appropriately, so that often repeated calculations outsourced to a dedicated coprocessor. Surprisingly, this is possible in a way that very little communication effort between the coprocessor and a main processor with a high degree of swapping allow necessary calculations. The solution according to the invention relies on the trellis step as the interface between the coprocessor and the main processor or another To provide control device. With every trellis step at least some input and output values over this cut job exchanged. The branch calculated by the coprocessor However, metrics are stored in a storage device of the Ko processor held and from trellis step to trellis step updated.

Durch die Erfindung können auf den Koprozessor sehr viele sich wiederholende Verfahrensschritte ausgelagert werden, so daß der Hauptprozessor für andere Aufgaben entlastet wird und generell kein so leistungsfähiger Hauptprozessor verwendet werden muß. Die ausgelagerten Verfahrensschritte sind zwar sehr zahlreich, aber jeweils nicht sonderlich komplex. Es handelt sich im wesentlichen um Additionen, Vergleiche und Zuweisungen. Der Koprozessor benötigt daher nur eine geringe Chipfläche. Weil der Koprozessor nicht das vollständige Vi­ terbi-Verfahren ausführt, ist er flexibel und läßt sich in einer Vielzahl unterschiedlicher Betriebsmodi verwenden. The invention enables a large number of coprocessors repetitive process steps are outsourced, so that the main processor is relieved of other tasks and generally no such powerful main processor used must become. The outsourced process steps are true very numerous, but not particularly complex in each case. It are essentially additions, comparisons and Assignments. The coprocessor therefore only needs a small amount Chip area. Because the coprocessor does not have the complete Vi executes the terbi process, it is flexible and can be integrated into use a variety of different operating modes.  

Bevorzugt bearbeitet der Koprozessor jeden einzelnen Trellis­ schritt selbständig, d. h. nach einem Startsignal des Haupt­ prozessors ohne weitere Interaktion mit dem Hauptprozessor. Die durch den Koprozessor übernommenen Berechnungen können dann parallel zu Prozessen im Hauptprozessor ablaufen.The coprocessor preferably processes each individual trellis step independently, d. H. after a start signal from the main processor without further interaction with the main processor. The calculations carried out by the coprocessor can then run parallel to processes in the main processor.

Die vom Koprozessor berechneten Ausgangswerte sind bevorzugt Transitionswerte und/oder Maximalmetrikwerte und/oder andere Werte, die für die weitere Signalverarbeitung von Interesse sind. Als Maximalmetrikwerte sollen hier Werte bezeichnet werden, die einer maximalen Wahrscheinlichkeit entsprechen. Je nach der Repräsentation der Wahrscheinlichkeiten (zum Bei­ spiel als positiver oder negativer Logarithmus) können solche Werte durch eine Maximumbildung oder durch eine Minimumbil­ dung oder durch andere Operationen berechnet werden.The output values calculated by the coprocessor are preferred Transition values and / or maximum metric values and / or others Values of interest for further signal processing are. Values are referred to here as maximum metric values that correspond to a maximum probability. Depending on the representation of the probabilities (for the game as positive or negative logarithm) can be Values by maximum formation or by a minimum bil calculation or by other operations.

Bevorzugt ist der Koprozessor sowohl zur Entzerrung als auch zur Kanaldekodierung verwendbar. Dies erlaubt einen besonders flexiblen Einsatz des Koprozessors. Bei der Entzerrung werden in bevorzugten Ausführungsformen Sollwerte zur Berechnung der Zweigmetriken verwendet.The coprocessor is preferred both for equalization and can be used for channel decoding. This allows one particularly flexible use of the coprocessor. When equalizing in preferred embodiments, setpoints for calculating the Branch metrics used.

Zum Speichern der Zustandsmetriken weist der Koprozessor vor­ zugsweise eine Speichereinrichtung mit mehreren Speicherbän­ ken auf, wobei in bevorzugten Ausführungsformen ein paral­ leler Zugriff oder ein paralleler lesender Zugriff auf minde­ stens zwei dieser Speicherbänke vorgesehen ist. Dadurch wird die Verarbeitungsgeschwindigkeit gesteigert.The coprocessor provides for storing the state metrics preferably a memory device with several memory banks ken, in preferred embodiments a paral Read access or parallel read access to minde At least two of these memory banks are provided. This will the processing speed increased.

In bevorzugten Ausführungsformen ist der Koprozessor als festverdrahtete Hardwareschaltung und der Hauptprozessor als programmierbarer Prozessor ausgebildet. Dies erlaubt eine ho­ he Verarbeitungsgeschwindigkeit des Koprozessors bei gleich­ zeitig flexibler Ansteuerung und flexibler Vor- und Nachbear­ beitung der Daten durch den Hauptprozessor. Der Koprozessor und der Hauptprozessor kommunizieren in bevorzugten Ausfüh­ rungsformen vorwiegend oder hauptsächlich über Eingangs- und/oder Ausgangsregister, die auch während der Verarbeitung eines Trellisschritts von dem Hauptprozessor zumindest teil­ weise lesbar und/oder beschreibbar sind.In preferred embodiments, the coprocessor is as hard-wired hardware circuit and the main processor as programmable processor. This allows a ho he processing speed of the coprocessor at the same early flexible control and flexible pre- and post-processing Processing of the data by the main processor. The coprocessor and the main processor communicate in preferred embodiment forms predominantly or mainly via input  and / or output registers, which are also during processing part of a trellis step from the main processor are legible and / or writable.

Weitere bevorzugte Ausführungsformen der Erfindung sind Ge­ genstand der Unteransprüche.Further preferred embodiments of the invention are Ge subject of the subclaims.

Ein von den Erfindern gegenwärtig bevorzugtes Ausführungs­ beispiel der Erfindung und mehrere Ausführungsalternativen werden nun unter Hinweis auf die Zeichnungen genauer be­ schrieben. Es stellen dar:An embodiment currently preferred by the inventors example of the invention and several alternative embodiments will now be more precise with reference to the drawings wrote. They represent:

Fig. 1 ein Blockschaltbild einiger Komponenten einer Signal­ verarbeitungseinrichtung, Fig. 1 is a block diagram of some components of a processing device signal,

Fig. 2 einen Datenflußplan der in einem Koprozessor auftre­ tenden Datenströme, Fig. 2 shows a data flow of the occurring defects in a coprocessor Tenden data streams,

Fig. 3 ein Flußdiagramm der Verarbeitung eines Trellisschritts in einer Pfadwahleinrichtung, Fig. 3 is a flowchart of processing of a Trellisschritts in a path selection device,

Fig. 4 ein Zustandsdiagramm der Verarbeitung eines Trellis­ schritts durch den Koprozessor, Fig. 4 is a state diagram of the processing of a trellis step by the coprocessor,

Fig. 5a bis Fig. 5c Signalkurven der Kommunikation zwischen einem Hauptprozessor und dem Koprozessor, und FIGS. 5a to Fig. 5c waveforms of the communication between a main processor and the coprocessor, and

Fig. 6 eine beispielhafte Darstellung eines Trellisschritts. Fig. 6 is an exemplary illustration of a Trellisschritts.

Die in Fig. 1 ausschnitthaft gezeigte Signalverarbeitungsein­ richtung ist als integrierte Schaltung zur Verwendung in ei­ nem GSM-Mobiltelefon ausgebildet. Ein Koprozessor 10 und ein als Hauptprozessor 12 dienender digitaler Signalprozessor sind über einen Bus 14 miteinander verbunden. An den Bus 14, der ein Breite von beispielsweise 16 Bit aufweist, sind ferner Komponenten wie eine Speichereinrichtung 16, eine Ein-/Ausgabeeinrichtung 18 und andere Baugruppen, zum Bei­ spiel Zeitgeber, angeschlossen. Mit Ausnahme des Koprozessors 10 sind die in diesem Absatz aufgeführten Komponenten der Signalverarbeitungseinrichtung an sich bekannt.The signal processing device shown in detail in FIG. 1 is designed as an integrated circuit for use in a GSM mobile phone. A coprocessor 10 and a digital signal processor serving as the main processor 12 are connected to one another via a bus 14 . Components such as a memory device 16 , an input / output device 18 and other modules, for example timers, are also connected to the bus 14 , which has a width of 16 bits, for example. With the exception of the coprocessor 10 , the components of the signal processing device listed in this paragraph are known per se.

Der Koprozessor 10 weist, wie dies in Fig. 2 veranschaulicht ist, eine Metrikberechnungseinrichtung 20, eine Pfadwahlein­ richtung 22 und eine Speichereinrichtung 24 auf. Die Spei­ chereinrichtung 24 ist ihrerseits in vier Speicherbänke 26a bis 26d unterteilt, von denen jede 32 Speicherworte zu je 16 Bit aufweist. Die Pfadwahleinrichtung 22 ist über je ein Lei­ tungsbündel mit den vier Speicherbänken 26a bis 26d verbun­ den, so daß ein paralleler Zugriff auf die Speichereinrich­ tung 24 möglich ist. Bei dem hier beschriebenen Ausführungs­ beispiel werden in einem einzigen Takt je zwei Speicherbänke gelesen und eine Speicherbank beschrieben. Dies entspricht einem parallelen Zugriff auf drei Speicherbänke oder einem parallelen lesenden Zugriff auf zwei Speicherbänke.The coprocessor 10 , as illustrated in FIG. 2, has a metric calculation device 20 , a path selection device 22 and a storage device 24 . The storage device 24 is in turn divided into four memory banks 26 a to 26 d, each of which has 32 memory words of 16 bits each. The path selection device 22 is connected via a line bundle with the four memory banks 26 a to 26 d, so that parallel access to the memory device 24 is possible. In the embodiment described here, two memory banks are read and one memory bank is written in a single cycle. This corresponds to parallel access to three memory banks or parallel read access to two memory banks.

Die in Fig. 2 gezeigten Pfeile repräsentieren Datenflüsse zwi­ schen den Elementen des Koprozessors 10 beziehungsweise vom und zum Hauptprozessor 12. In dem hier beschriebenen Ausfüh­ rungsbeispiel erfolgt die Kommunikation zwischen dem Kopro­ zessor 10 und dem Hauptprozessor 12 über Register des Kopro­ zessors 10, auf die der Hauptprozessor 12 über den Bus 14 zu­ greift. Dabei werden auf dem Bus 14 die Adresse des anzuspre­ chenden Registers, eine Schreib-/Lese-Indikation und die ein­ zuschreibenden bzw. ausgelesenen Daten übertragen. Innerhalb des Koprozessors 10 sind dagegen Leitungsbündel zum Datenaus­ tausch zwischen der Metrikberechnungseinrichtung 20, der Pfadwahleinrichtung 22 und der Speichereinrichtung 24 vorge­ sehen. In Ausführungsalternativen können die in Fig. 2 gezeig­ ten Datenflüsse durch andere Hardwarestrukturen übertragen werden.The arrows shown in FIG. 2 represent data flows between the elements of the coprocessor 10 or from and to the main processor 12 . In the exemplary embodiment described here, communication takes place between the coprocessor 10 and the main processor 12 via registers of the coprocessor 10 , which the main processor 12 accesses via the bus 14 . The address of the register to be addressed, a read / write indication and the data to be written or read out are transmitted on the bus 14 . In contrast, within the coprocessor 10 line bundles for data exchange between the metric calculation device 20 , the path selection device 22 and the storage device 24 are provided. In alternative embodiments, the data flows shown in FIG. 2 can be transmitted through other hardware structures.

Die Register des Koprozessors 10 dienen sowohl zur Kommuni­ kation mit dem Hauptprozessor 12 als auch zum Bereithalten von Werten, die während des Berechnungsablaufs im Koprozessor 10 benötigt werden. In dem hier beschriebenen Ausführungsbei­ spiel sind die Register je 16 Bit breit. Es sind ein Steuer­ register, ein Statusregister, neun Eingangsregister INP(0 : 8), vier Transitionsregister zum Speichern von maximal 64 Tran­ sitionsbits TRAN(0 : 63) und zwei Register zum Speichern zweier Maximalmetrikwerte MAXU und MAXL vorgesehen. In Ausführungs­ alternativen können andere Datenwerte gespeichert und zwi­ schen dem Koprozessor 10 und dem Hauptprozessor 12 ausge­ tauscht werden. Beispielsweise können zusätzlich zu den Tran­ sitionsbits TRAN(0 : 63) Vertrauenswerte für die einzelnen Transitionen ausgegeben werden.The registers of the coprocessor 10 are used both for communication with the main processor 12 and for holding values that are required in the coprocessor 10 during the calculation process. In the exemplary embodiment described here, the registers are each 16 bits wide. A control register, a status register, nine input registers INP (0: 8), four transition registers for storing a maximum of 64 transition bits TRAN (0: 63) and two registers for storing two maximum metric values MAXU and MAXL are provided. In alternative embodiments, other data values can be stored and exchanged between the coprocessor 10 and the main processor 12 . For example, in addition to the transition bits TRAN (0: 63), trust values can be output for the individual transitions.

Das Statusregister speichert die Steuerwerte VTCEQ, VTCSTATE und VTCRATE. Diese Steuerwerte werden vom Signalprozessor 12 durch ein Beschreiben des Statusregisters eingestellt, um die Arbeit des Koprozessors 10 den aktuellen Erfordernissen anzu­ passen. Der Steuerwert VTCEQ bestimmt, ob der Koprozessor zum Entzerren oder für die Kanaldekodierung arbeiten soll. Die Steuerwerte VTCSTATE und VTCRATE geben im Kanaldekodiermodus die Anzahl der Trelliszustände beziehungsweise die Datenrate (Verhältnis von über den Kanal übertragenen Bits zu eigent­ lichen Datenbits) an. Der Koprozessor 10 unterstützt in dem hier beschriebenen Ausführungsbeispiel 16 und 64 Zustände so­ wie Datenraten von 1/2, 1/3 und 1/6. In Ausführungsalternati­ ven sind andere Steuerwerte und andere Zustandszahlen und Da­ tenraten möglich.The status register stores the control values VTCEQ, VTCSTATE and VTCRATE. These control values are set by the signal processor 12 by writing to the status register in order to adapt the work of the coprocessor 10 to the current requirements. The control value VTCEQ determines whether the coprocessor should work for equalization or for channel decoding. The control values VTCSTATE and VTCRATE indicate the number of trellis states or the data rate (ratio of bits transmitted via the channel to actual data bits) in the channel decoding mode. In the exemplary embodiment described here, the coprocessor 10 supports 16 and 64 states such as data rates of 1/2, 1/3 and 1/6. Other control values and other status numbers and data rates are possible in alternative embodiments.

Im Entzerrmodus, der stets auf einem Trellis mit 16 Zuständen basiert, werden zur Vorbereitung der Verarbeitung eines Da­ tenblocks von dem Hauptprozessor 12 insgesamt acht Sollwerte erzeugt und in die Eingangsregister INP1 bis INP8 geschrie­ ben. Diese Sollwerte werden aus einer abgeschätzten Kanal­ impulsantwort für die Funkübertragungsstrecke abgeleitet und entsprechen einem erwarteten Ausgangssignal einer Empfänger­ baugruppe des Mobiltelefons für jedes gesendete Bit in jedem Zustand. Weil in jedem der 16 Zustände entweder eine "0" oder eine "1" gesendet werden kann, können theoretisch 32 Sollwer­ te auftreten, von denen jedoch aus Symmetriegründen nur acht berechnet werden müssen.In the equalization mode, which is always based on a trellis with 16 states, a total of eight setpoints are generated by the main processor 12 in preparation for the processing of a data block and are written into the input registers INP1 to INP8. These setpoints are derived from an estimated channel impulse response for the radio transmission link and correspond to an expected output signal of a receiver module of the mobile phone for each bit sent in every state. Because either a "0" or a "1" can be sent in each of the 16 states, theoretically 32 setpoints can occur, but only eight have to be calculated for reasons of symmetry.

Für jeden Trellisschritt (also jedes empfangene Bit) schreibt der Hauptprozessor 12 nun einen weiteren Eingangswert mit ei­ ner Breite von 10 Bit in das Eingangsregister INP0. Dieser Eingangswert entspricht dem tatsächlich vom Mobiltelefon emp­ fangenen Wert, der von einem Analog-/Digitalwandler digitali­ siert und von einer Vorverarbeitungseinrichtung geeignet vor­ verarbeitet wurde. Nach einem Anstoß durch den Hauptprozessor 12 berechnet der Koprozessor 10 nun selbständig 32 Zweigme­ triken, und zwar für jeden der 16 Zustände s eine Zweigmetrik upper_branch(s), die die Wahrscheinlichkeit einer "0"-Transi­ tion im Sender angibt, und eine Zweigmetrik lower_branch(s), die die Wahrscheinlichkeit einer "1"-Transition im Sender an­ gibt. Diese Berechnung ist durch die folgenden Tabellen definiert:
For each trellis step (ie each bit received), the main processor 12 now writes a further input value with a width of 10 bits into the input register INP0. This input value corresponds to the value actually received by the mobile phone, which was digitized by an analog / digital converter and suitably processed by a preprocessing device. After being triggered by the main processor 12 , the coprocessor 10 now automatically calculates 32 branch metrics, namely a branch metric upper_branch (s) for each of the 16 states s, which indicates the probability of a “0” transition in the transmitter, and a branch metric lower_branch (s) indicating the probability of a "1" transition in the transmitter. This calculation is defined by the following tables:

Beispielsweise ergibt sich also die Zweigmetrik upper_branch für den Zustand 12 als Summe der Eingangsregister INP8 und INP0. Es gelten die folgenden Symmetrien:
For example, the branch metric upper_branch for state 12 is the sum of the input registers INP8 and INP0. The following symmetries apply:

upper_branch(s) = -upper_branch(s+8)
lower_branch(s) = -lower_branch(s+8).
upper_branch (s) = -upper_branch (s + 8)
lower_branch (s) = -lower_branch (s + 8).

Im Kanaldekodiermodus, der hier am Beispiel von 16 Zuständen und der Datenrate 1/2 betrachtet werden soll, dienen als Ein­ gangswerte für jeden Trellisschritt zwei Distanzwerte, die vom Hauptprozessor 10 auf der Basis von Bitwahrscheinlich­ keitswerten berechnet wurden. Die Bitwahrscheinlichkeitswerte ergeben sich ihrerseits aus den Ausgabewerten des Entzerr­ verfahrens.In Kanaldekodiermodus, which will be considered here at the example of 16-state, and the data rate 1/2, serve as a transition values for each trellis step two distance values which were calculated keitswerten from the main processor 10 on the basis of Bitwahrscheinlich. The bit probability values in turn result from the output values of the equalization method.

Der Hauptprozessor 10 schreibt in jedem Trellisschritt die beiden Distanzwerte in die Eingangsregister INP0 und INP1. Weitere Eingangsregister zum Speichern von Sollwerten werden bei der Kanaldekodierung nicht benötigt. Aus den beiden Ein­ gangswerten berechnet der Koprozessor 12 für jeden Zustand eine obere und eine untere Zweigmetrik gemäß den folgenden Tabellen:
The main processor 10 writes the two distance values in the input registers INP0 and INP1 in each trellis step. Additional input registers for storing setpoints are not required for channel decoding. From the two input values, the coprocessor 12 calculates an upper and a lower branch metric for each state in accordance with the following tables:

Bei dieser Berechnung gelten die oben aufgeführten Symmetrien und zusätzlich:
For this calculation, the symmetries listed above apply and in addition:

upper_branch(s) = -lower_branch(s). upper_branch (s) = -lower_branch (s).  

Bei 64 Zuständen werden auf ähnliche Weise 128 Zweigmetriken berechnet. Falls die Datenrate 1/3 oder 1/6 beträgt, werden vier Eingangswerte benötigt, die in die Eingangsregister INP0 bis INP3 geschrieben werden.Similarly, with 64 states, 128 branch metrics become calculated. If the data rate is 1/3 or 1/6, four input values are required which are in the input register INP0 until INP3 are written.

Die Pfadwahleinrichtung 22 enthält die erforderlichen Hard­ wareschaltungen, um für jeden Trellisschritt die in Fig. 3 in Form eines Flußdiagramms gezeigten Berechnungen durchzufüh­ ren. Bei diesen Berechnungen werden die oberen und unteren Zweigmetriken von der Metrikberechnungseinrichtung 20 verar­ beitet, um neue Zustandsmetriken zu berechnen. Die Zustands­ metriken werden verglichen, und der wahrscheinlichste Pfad für jeden Zustand wird ausgewählt. Dabei gibt die Pfadwahl­ einrichtung 22 erstens die berechneten Transitionen und zwei­ tens die maximalen Wahrscheinlichkeiten für den oberen und unteren Zweig aus, indem sie diese Ausgabewerte in die Tran­ sitionsregister beziehungsweise in die Register zum Speichern der Maximalmetrikwerte schreibt. Der Hauptprozessor 12 kann auf diese Register zugreifen.The path selector 22 includes the hardware circuitry necessary to perform the calculations shown in FIG. 3 in the form of a flow chart for each trellis step. In these calculations, the upper and lower branch metrics are processed by the metric calculator 20 to calculate new state metrics. The state metrics are compared and the most likely path for each state is selected. The path selection device 22 firstly outputs the calculated transitions and secondly the maximum probabilities for the upper and lower branches by writing these output values into the transition registers or into the registers for storing the maximum metric values. The main processor 12 can access these registers.

In dem hier beschriebenen Ausführungsbeispiel ist die Pfad­ wahleinrichtung 22 als fest verdrahtete Hardwareschaltung ausgeführt. Die in dem Flußdiagramm von Fig. 3 gezeigte Schleife ist dabei zum Beispiel als Zähler implementiert, und für die arithmetischen Operationen sind entsprechende arith­ metische Einheiten vorgesehen.In the exemplary embodiment described here, the path selection device 22 is designed as a hard-wired hardware circuit. The loop shown in the flowchart of FIG. 3 is implemented as a counter, for example, and corresponding arithmetic units are provided for the arithmetic operations.

Die alten und neuen Zustandsmetriken werden in den vier Spei­ cherbänken 26a bis 26d der Speichereinrichtung gespeichert. Die Speicherbänke 26a und 26c enthalten nur die Metriken ge­ rader Zustände, und die Speicherbänke 26b und 26d enthalten die Metriken ungerader Zustände. In jedem Trellisschritt wer­ den alte Metriken gelesen und neue Metriken geschrieben. Da­ bei wechseln sich die Speicherbankpaare 26a, 26b einerseits und 26c, 26d andererseits hinsichtlich ihrer Rollen als Spei­ cher für alte und neue Metriken ab. Wenn beispielsweise in einem Trellisschritt alte Metriken von dem Speicherbankpaar 26a, 26b gelesen und neue Metriken in das Speicherbankpaar 26c, 26d geschrieben werden, so sind die Rollen in dem fol­ genden Trellisschritt vertauscht und die alten Metriken wer­ den von dem Speicherbankpaar 26c, 26d gelesen und als bear­ beitete neue Metriken in das Speicherbankpaar 26a, 26b ge­ schrieben. Da sich der Speicherinhalt zwischen aufeinander­ folgenden Trellisschritten nicht ändert, sind durch dieses Verfahren die neuen Metriken jedes Trellisschritts im näch­ sten Trellisschritt als alte Metriken verfügbar.The old and new state metrics are stored in the four memory banks 26 a to 26 d of the memory device. The memory banks 26 a and 26 c contain only the metrics of even states, and the memory banks 26 b and 26 d contain the metrics of odd states. In each trellis step, the old metrics are read and new metrics are written. Since the memory bank pairs 26 a, 26 b on the one hand and 26c, 26d on the other hand alternate with regard to their roles as storers for old and new metrics. If, for example, old metrics are read from the memory bank pair 26 a, 26 b in a trellis step and new metrics are written into the memory bank pair 26 c, 26 d, then the roles in the following trellis step are reversed and the old metrics are from the memory bank pair 26 c, 26 d read and written as processed new metrics in the memory bank pair 26 a, 26 b ge. Since the memory content does not change between successive trellis steps, this method makes the new metrics of each trellis step available as old metrics in the next trellis step.

Die Zuordnung der Speicherbankpaare 26a, 26b und 26c, 26d als Speicher für alte beziehungsweise neue Metriken wird durch ein Steuersignal VTCEVEN bestimmt, das von der Pfadwahlein­ richtung 22 erzeugt wird und dessen Wert im Steuerregister zum Auslesen durch den Hauptprozessor 12 verfügbar ist. In jedem Trellisschritt wechselt dieses Steuersignal seinen Signalzustand (siehe Fig. 5c), wodurch sich die Rollen der Speicherbankpaare 26a, 26b und 2Ec, 26d vertauschen. Dadurch ist sichergestellt, daß die Pfadwahleinrichtung 22 immer auf die korrekten Speicherbankpaare zugreift, um die alten Me­ trikwerte auszulesen und die neuen Metrikwerte einzuschrei­ ben.The assignment of the memory bank pairs 26 a, 26 b and 26 c, 26 d as memory for old or new metrics is determined by a control signal VTCEVEN, which is generated by the path selection device 22 and whose value is available in the control register for reading by the main processor 12 . In each trellis step, this control signal changes its signal state (see FIG. 5c), as a result of which the roles of the memory bank pairs 26 a, 26 b and 2 Ec, 26 d are interchanged. This ensures that the path selection device 22 always accesses the correct memory bank pairs in order to read out the old metric values and to write in the new metric values.

Der in Fig. 3 gezeigte Ablauf für einen Trellisschritt beginnt in Block 28 mit der Initialisierung der Maximalmetrikwerte MAXU und MAXL sowie des Zustandszählers. In Block 30, der aus zwei parallel ausgeführten Speicherzugriffen 32 und 34 be­ steht, werden die Metrik upper_metric für den um den neuen oberen Zweig verlängerten wahrscheinlichsten Pfad und die Metrik lower_metric für den um den neuen unteren Zweig ver­ längerten wahrscheinlichsten Pfad berechnet. Wegen der Struk­ tur der Transitionen im Trellis erfolgen die beiden Speicher­ zugriffe 32 und 34 immer auf die alten Metriken eines geraden und eines ungeraden Zustands, so daß stets parallel auf zwei unterschiedliche Speicherbänke (je nach dem Zustand des Steu­ ersignals VTCEVEN entweder auf die Speicherbänke 26a, 26b oder auf die Speicherbänke 26c, 26d) zugegriffen werden kann. The sequence for a trellis step shown in FIG. 3 begins in block 28 with the initialization of the maximum metric values MAXU and MAXL and the state counter. In block 30 , which consists of two memory accesses 32 and 34 executed in parallel, the metric upper_metric for the most likely path extended by the new upper branch and the metric lower_metric for the most probable path extended by the new lower branch are calculated. Due to the structure of the transitions in the trellis, the two memory accesses 32 and 34 always take place on the old metrics of an even and an odd state, so that always two parallel memory banks (depending on the state of the control signal VTCEVEN either on the memory banks 26th a, 26 b or the memory banks 26 c, 26 d) can be accessed.

In Block 36 erfolgt zunächst ein Vergleich der berechneten Metriken upper_metric und lower_metric (Vergleich 38). Die größere Metrik, die der wahrscheinlicheren Verlängerung des bisherigen Pfades entspricht, wird ausgewählt und als neue Metrik für den aktuellen Zustand gespeichert (Speicherzugriff 40 bzw. 44). Ferner wird das Transitionsbit TRAN je nach der für die Pfadverlängerung ausgewählten Transition gesetzt (Zu­ weisungen 42 bzw. 46). Das Speichern der neuen Metrik new_metric beim Speicherzugriff 40 bzw. 44 erfolgt je nach dem Zustand des Steuersignals VTCEVEN in das für die neue Metrik vorgesehene Speicherbankpaar 26a, 26b bzw. 26c, 26d.In block 36 , the calculated metrics upper_metric and lower_metric are first compared (comparison 38). The larger metric that corresponds to the more likely extension of the previous path is selected and saved as a new metric for the current state (memory access 40 or 44 ). Furthermore, the transition bit TRAN is set depending on the transition selected for the path extension (assignments 42 and 46 ). The new metric new_metric is stored in the memory access 40 or 44 , depending on the state of the control signal VTCEVEN, in the memory bank pair 26 a, 26 b or 26 c, 26 d provided for the new metric.

Um für den Entzerrmodus die größte Wahrscheinlichkeit für eine Pfadverlängerung mit einer oberen bzw. einer unteren Transition in einem gesamten Trellisschritt zu bestimmen, wird in Abfrage 48 die berechnete untere Metrik lower_metric mit dem Maximalmetrikwert MAXL der bisher betrachteten Zu­ stände des Trellisschritts verglichen. Ist für den gegenwär­ tigen Zustand eine größere Wahrscheinlichkeit ermittelt wor­ den, wird der Maximalmetrikwert MAXL durch die Zuweisung 50 entsprechend heraufgesetzt. Analog erfolgt auch die Maximum­ bildung für die obere Transition mit der oberen Metrik upper_metric und dem Maximalmetrikwert MAXU in Abfrage 52 und Zuweisung 54. Die Maximalmetrikwerte MAXU und MAXL als Aus­ gangswerte des Koprozessors 10 sind nur im Entzerrmodus er­ forderlich; in dem hier beschriebenen Ausführungsbeispiel werden sie jedoch in allen Modi berechnet.In order to determine the greatest probability of a path extension with an upper or a lower transition in an entire trellis step for the equalization mode, the calculated lower metric lower_metric is compared in query 48 with the maximum metric value MAXL of the states of the trellis step considered previously. If a greater probability has been determined for the current state, the maximum metric value MAXL is increased accordingly by the assignment 50 . Analogously, the maximum formation for the upper transition takes place with the upper metric upper_metric and the maximum metric value MAXU in query 52 and assignment 54 . The maximum metric values MAXU and MAXL as output values of the coprocessor 10 are only required in the equalization mode; in the exemplary embodiment described here, however, they are calculated in all modes.

Schließlich wird der Zustandszähler inkrementiert (Schritt 56) und das Verfahren mit dem nächsten Zustand fortgesetzt, sofern nicht die maximale Zustandsnummer STATE erreicht ist (Abfrage 58). Der Wert STATE beträgt, je nach dem Steuerwert VTCSTATE, entweder 63 (bei 64 Zuständen) oder 15 (bei 16 Zu­ ständen). Finally, the status counter is incremented (step 56 ) and the method is continued with the next status, unless the maximum status number STATE has been reached (query 58 ). The STATE value is, depending on the control value VTCSTATE, either 63 (with 64 states) or 15 (with 16 states).

Der in Fig. 3 in sequentieller Form dargestellte Ablauf kann in beliebig parallelisierter oder ineinander verzahnter Form in Hardware implementiert werden. In dem hier beschriebenen Ausführungsbeispiel ist eine dreistufige Pipelinestruktur vorgesehen. In der ersten Stufe werden die Zweigmetriken und die alten Zustandsmetriken eingelesen. In der zweiten Stufe findet die Addition, der Vergleich und die Auswahl statt, und in der dritten Stufe werden die Berechnungsergebnisse ausge­ geben. Da die lesenden Speicherzugriffe 32 und 34 also in ei­ ner anderen Pipelinestufe als der schreibende Speicherzugriff 40 bzw. 44 stattfinden, werden auch diese beiden Zugriffs­ arten parallel ausgeführt. Insgesamt finden daher (bei ge­ füllter Pipeline) in jedem Taktzyklus drei Speicherzugriffe statt, wobei sich die lesenden Speicherzugriffe 32 und 34 auf einen bereits begonnenen, späteren Durchlauf der in Fig. 3 gezeigten Schleife und der schreibende Speicherzugriff 40 bzw. 44 auf einen noch nicht abgeschlossenen, früheren Schleifendurchlauf beziehen. Wegen dieser Pipelineverarbei­ tung werden zur Berechnung eines Trellisschritts mit 16 Zu­ ständen nur 20 Taktzyklen und zur Berechnung eines Trellis­ schritts mit 64 Zuständen nur 68 Taktzyklen benötigt.The sequence shown in Fig. 3 in sequential form can be implemented in hardware in any parallelized or interlocking form. In the exemplary embodiment described here, a three-stage pipeline structure is provided. In the first stage, the branch metrics and the old state metrics are read. In the second stage, the addition, comparison and selection take place, and in the third stage the calculation results are output. Since the reading memory accesses 32 and 34 take place in a pipeline stage other than the writing memory access 40 or 44 , these two access types are also carried out in parallel. Overall, therefore (with the pipeline filled) three memory accesses take place in each clock cycle, the read memory accesses 32 and 34 relating to an already started, later run of the loop shown in FIG. 3 and the write memory access 40 and 44 to one not yet complete completed, previous loop pass. Because of this pipeline processing, only 20 clock cycles are required to calculate a trellis step with 16 states and only 68 clock cycles to calculate a trellis step with 64 states.

Bei dem beschriebenen Ausführungsbeispiel werden die internen Register für die Metriken upper_metric und lower_metric hin­ sichtlich ihres Wertebereiches überwacht. Ein Überlauf dieser Register wird erkannt und als Fehlerbit VTCOVERF im Steuer­ register angezeigt. Die dazu erforderlichen Schritte sind aus Gründen der Übersichtlichkeit in Fig. 3 nicht dargestellt.In the exemplary embodiment described, the internal registers for the metrics upper_metric and lower_metric are monitored with regard to their value range. An overflow of these registers is recognized and displayed as error bit VTCOVERF in the control register. The steps required for this are not shown in FIG. 3 for reasons of clarity.

Das Zustandsdiagramm von Fig. 4 stellt eine sehr abstrahierte Sicht auf den in Fig. 3 gezeigten Ablauf sowie auf die Berech­ nung der Zweigmetriken durch die Metrikberechnungseinrichtung 20 dar. Nach einem Übergang 60, der durch ein geeignetes Rücksetzsignal vom Hauptprozessor 12 ausgelöst wird, befindet sich der Koprozessor 10 in einem Ruhezustand IDLE. Die Ver­ arbeitung wird vom Hauptprozessor 12 angestoßen, indem dieser ein Steuerbit VCTACT im Steuerregister des Koprozessors 10 setzt (Übergang 62). Der Koprozessor 10 wird dadurch gemäß Block 28 von Fig. 3 initialisiert und in einen Arbeitszustand ACTIVE versetzt.The state diagram of FIG. 4 represents a very abstract view of the sequence shown in FIG. 3 and of the calculation of the branch metrics by the metric calculation device 20. After a transition 60 , which is triggered by a suitable reset signal from the main processor 12 , there is the coprocessor 10 in an idle state IDLE. The processing is initiated by the main processor 12 by setting a control bit VCTACT in the control register of the coprocessor 10 (transition 62 ). The coprocessor 10 is thereby initialized in accordance with block 28 of FIG. 3 and put into an ACTIVE working state.

In dem Arbeitszustand ACTIVE entspricht jeder Schleifendurch­ lauf von Fig. 3 einem Übergang 64 in Fig. 4. Der jeweils aktu­ elle Zustand wird taktgesteuert hochgezählt, bis alle Zustän­ de bearbeitet sind. Ist dies der Fall (Abfrage 58 in Fig. 3), so setzt der Koprozessor 10 das Steuerbit VCTACT zurück, um das Ende der Bearbeitung des Trellisschritts anzuzeigen. Der Koprozessor 10 geht in den Ruhezustand IDLE über (Übergang 66). Um die Verarbeitung des nächsten Trellisschritts durch den Koprozessor 10 anzustoßen, setzt der Hauptprozessor 12 erneut das Steuerbit VCTACT im Steuerregister des Koprozes­ sors 10. Die hat wiederum den Übergang 62 zum Arbeitszustand ACTIVE zur Folge. Bei diesem Übergang wird das Steuersignal VTCEVEN vom Koprozessor 10 invertiert, um die Speicherbank­ paare umzuschalten.In the working state ACTIVE each loop 3 corresponds to running of Fig. A transition 64 in Fig. 4. The respective refreshes elle state is counted clock-controlled, are processed until all competent de. If this is the case (query 58 in FIG. 3), the coprocessor 10 resets the control bit VCTACT in order to indicate the end of the processing of the trellis step. The coprocessor 10 changes to the idle state IDLE (transition 66 ). In order to trigger the processing of the next trellis step by the coprocessor 10 , the main processor 12 again sets the control bit VCTACT in the control register of the coprocessor 10 . This in turn results in the transition 62 to the ACTIVE working state. During this transition, the control signal VTCEVEN is inverted by the coprocessor 10 in order to switch the memory bank pairs.

Allgemein gilt, daß der Hauptprozessor 12 alle Register des Koprozessors 10 sowie alle Speicherzellen der Speicherein­ richtung 24 lesen und beschreiben kann, solange sich der Koprozessor 10 im Ruhezustand IDLE befindet. Wenn der Kopro­ zessor 10 aktiv ist (Arbeitszustand ACTIVE), kann der Haupt­ prozessor 12 die ersten vier Eingangsregister INP0 bis INP3 beschreiben und die vier Transitionsregister sowie die zwei Register zum Speichern der Maximalmetrikwerte MAXU und MAXL lesen, ohne damit den laufenden Berechnungsablauf zu stören. Damit lassen sich Eingaben für den nächsten Trellisschritt und Ausgaben des letzten Trellisschritts während einer lau­ fenden Berechnung des Koprozessors 10 ein- bzw. auslesen. Diese Funktionalität wird durch eine geeignete Zwischenspei­ cherung der zur Berechnung des aktuellen Trellisschritts er­ forderlichen Werte sowie der Berechnungsergebnisse des ak­ tuellen Trellisschritts erreicht. In general, the main processor 12 can read and write all the registers of the coprocessor 10 and all memory cells of the storage device 24 as long as the coprocessor 10 is in the idle state IDLE. When the coprocessor 10 is active (working state ACTIVE), the main processor 12 can write the first four input registers INP0 to INP3 and read the four transition registers and the two registers for storing the maximum metric values MAXU and MAXL without disturbing the ongoing calculation process. This allows inputs for the next trellis step and outputs of the last trellis step to be read in and out during a running calculation of the coprocessor 10 . This functionality is achieved by a suitable intermediate storage of the values required for the calculation of the current trellis step as well as the calculation results of the current trellis step.

Fig. 5a bis Fig. 5c veranschaulichen das Zusammenspiel zwischen dem Hauptprozessor 12 und dem Koprozessor 10. Hierbei wird der Beginn der Bearbeitung eines Datenblocks gezeigt, und zwar in Fig. 5a der Werteverlauf des Steuerbits VCTACT, in Fig. 5b der Ruhe- oder Arbeitszustand des Koprozessors 10 und in Fig. 5c der Werteverlauf des Steuersignals VCTEVEN. FIGS. 5a to Fig. 5c illustrate the interaction between the main processor 12 and the coprocessor 10 degrees. The beginning of the processing of a data block is shown here, namely in FIG. 5a the value profile of the control bit VCTACT, in FIG. 5b the idle or working state of the coprocessor 10 and in FIG. 5c the value profile of the control signal VCTEVEN.

Vor dem Zeitpunkt t1 bereitet der Hauptprozessor 12 die Bearbeitung eines Datenblocks vor. Er initialisiert zunächst die Speichereinrichtung 24 mit geeigneten anfänglichen Zu­ standsmetriken und schreibt dann die gewünschten Konfigura­ tionsdaten in das Statusregister des Koprozessors 10. Falls der Entzerrmodus des Koprozessors 10 gewählt wurde, schreibt der Hauptprozessor 12 ferner acht vorab berechnete Sollwerte in die Eingangsregister INP1 bis INP8.Before time t 1 , main processor 12 prepares the processing of a data block. It first initializes the memory device 24 with suitable initial status metrics and then writes the desired configuration data into the status register of the coprocessor 10 . If the equalization mode of the coprocessor 10 was selected, the main processor 12 also writes eight pre-calculated setpoints in the input registers INP1 to INP8.

Zur Bearbeitung des ersten Bits des Datenblocks lädt der Hauptprozessor 12 nun entsprechende Werte in das Eingangs­ register INP0 und, je nach dem Betriebsmodus, gegebenenfalls in weitere Eingangsregister. Der Koprozessor 10 wird nun durch Setzen des Steuerbits VCTACT zum Zeitpunkt t1 gestartet und berechnet selbständig einen Trellisschritt. Diese Berech­ nung ist zum Zeitpunkt t2 abgeschlossen. Im Intervall zwi­ schen den Zeitpunkten t1 und t2 schreibt der Hauptprozessor 10 bereits die für den nächsten Trellisschritt erforderlichen Eingangswerte in das Eingangsregister INP0 und gegebenenfalls in die weiteren Eingangsregister INP1 bis INP3.To process the first bit of the data block, the main processor 12 now loads corresponding values into the input register INP0 and, depending on the operating mode, possibly into further input registers. The coprocessor 10 is now started by setting the control bit VCTACT at the time t 1 and independently calculates a trellis step. This calculation is completed at time t 2 . In the interval between the times t 1 and t 2 , the main processor 10 already writes the input values required for the next trellis step into the input register INP0 and, if appropriate, into the further input registers INP1 to INP3.

Der Abschluß der Berechnungen wird dem Hauptprozessor 12 zum Zeitpunkt t2 dadurch signalisiert, daß der Koprozessor 10 das Steuerbit VCTACT zurücksetzt. Da die zur Berechnung des zwei­ ten Trellisschritts erforderlichen Eingangswerte bereits in den Eingangsregistern des Koprozessors 10 vorliegen, kann der Koprozessor 10 sofort durch Setzen des Steuerbits VCTACT wie­ der gestartet werden (Zeitpunkt t3). The completion of the calculations is signaled to the main processor 12 at time t 2 in that the coprocessor 10 resets the control bit VCTACT. Since the input values required to calculate the second trellis step already exist in the input registers of the coprocessor 10 , the coprocessor 10 can be started again immediately by setting the control bit VCTACT (time t 3 ).

Während der Berechnung des zweiten Trellisschritt s im Inter­ vall zwischen den Zeitpunkten t3 und t4 liest der Hauptpro­ zessor 12 zunächst die benötigten Ausgangswerte aus den vier Transitionsregistern sowie den zwei Registern zum Speichern der Maximalmetrikwerte MAXU und MAXL. Die in diesen Ausgangs­ registern gespeicherten Werte des ersten Trellisschritts wer­ den während der laufenden Berechnung des zweiten Schritt s nicht überschrieben. Der Hauptprozessor 12 kann nun die aus­ gelesenen Werte nachbearbeiten, um beispielsweise bei der Entzerrung aus den Maximalmetrikwerten MAXU und MAXL durch eine Subtraktion und eine Skalierung einen Wert für das wahr­ scheinlich empfangene Datenbit und eine Zuverlässigkeits­ angabe zu ermitteln. Im Kanaldekodiermodus speichert der Pro­ zessor die Transitionsbits ab, um nach dem Abschluß der Bear­ beitung des Datenblocks den wahrscheinlichsten Pfad im Trel­ lis rückverfolgen zu können.During the calculation of the second trellis step s in the interval between the times t 3 and t 4 , the main processor 12 first reads the required output values from the four transition registers and the two registers for storing the maximum metric values MAXU and MAXL. The values of the first trellis step stored in these output registers are not overwritten during the ongoing calculation of the second step. The main processor 12 can now postprocess the read values, for example to determine a value for the data bit likely received and a reliability indication in the equalization from the maximum metric values MAXU and MAXL by subtraction and scaling. In channel decoding mode, the processor stores the transition bits in order to be able to trace the most likely path in the trelis after the processing of the data block has been completed.

Noch vor dem Zeitpunkt t4, also während der Berechnung des zweiten Trellisschritts, schreibt der Hauptprozessor 12, wie bereits geschildert, die für den dritten Trellisschritt be­ nötigten Eingangsdaten in die Eingangsregister des Kopro­ zessors 10 ein. Damit ist während der Ruhephase nach dem Zeitpunkt t4 keine Kommunikation zwischen dem Hauptprozessor 12 und dem Koprozessor 10 erforderlich, so daß diese Ruhe­ phase (Zeitintervall t4 bis t5) sehr kurz gehalten werden kann. Der Koprozessor 10 wird also bei dem geschilderten Ablauf nahezu ständig in dem Arbeitszustand ACTIVE gehalten und damit sehr gut genutzt. Zu Test- oder Diagnosezwecken kann jedoch der Inhalt der Speichereinrichtung 24 durch den Hauptprozessor 12 während der Ruhephasen des Koprozessors 10 (Ruhezustand IDLE) ausgelesen werden. Even before the time t 4 , ie during the calculation of the second trellis step, the main processor 12 , as already described, writes the input data required for the third trellis step into the input register of the coprocessor 10 . This means that no communication between the main processor 12 and the coprocessor 10 is required during the rest phase after the time t 4 , so that this rest phase (time interval t 4 to t 5 ) can be kept very short. The coprocessor 10 is therefore kept almost constantly in the ACTIVE working state during the described sequence and is therefore used very well. For test or diagnostic purposes, however, the content of the memory device 24 can be read out by the main processor 12 during the idle phases of the coprocessor 10 (idle state IDLE).

BezugszeichenlisteReference list

1010th

Koprozessor
Coprocessor

1212th

Hauptprozessor
Main processor

1414

Bus
bus

1616

Speichereinrichtung
Storage device

1818th

Ein-/Ausgabeeinrichtung
Input / output device

2020th

Metrikberechnungseinrichtung
Metric calculator

2222

Pfadwahleinrichtung
Path selector

2424th

Speichereinrichtung
Storage device

2626

a Speicherbank
a memory bank

2626

b Speicherbank
b memory bank

2626

c Speicherbank
c memory bank

2626

d Speicherbank
d memory bank

28-5828-58

diverse Berechnungsschritte bei der Verarbeitung eines Trellisschritts
Various calculation steps when processing a trellis step

60-6660-66

Übergänge
Transitions

Claims (15)

1. Koprozessor (10) zum Bereitstellen von Hilfsfunktionen für ein Viterbi-Dekodierungsverfahren, mit:
  • - einer Metrikberechnungseinrichtung (20), die dazu einge­ richtet ist, für jeden einzelnen Trellisschritt mindestens einen Eingangswert (INP) einzulesen und in Abhängigkeit von dem mindestens einen Eingangswert (INP) mehrere Zweigmetriken (upper_branch, lower_branch) zu berechnen,
  • - einer Speichereinrichtung (24) zum Speichern von Zu­ standsmetriken (old_metric, new_metric), und
  • - einer Pfadwahleinrichtung (22), die dazu eingerichtet ist, für jeden einzelnen Trellisschritt in Abhängigkeit von den von der Metrikberechnungseinrichtung (20) berechneten Zweigmetriken (upper_branch, lower_branch) und den in der Speichereinrichtung gespeicherten Zustandsmetriken (old_metric) neue Zustandsmetriken (new_metric) sowie Aus­ gangswerte (TRAN, MAXU, MAXL) zu berechnen, die neuen Zu­ standsmetriken (new_metric) in die Speichereinrichtung (24) einzuschreiben und die Ausgangswerte (TRAN, MAXU, MAXL) aus­ zugeben oder zur Ausgabe bereitzustellen.
1. coprocessor ( 10 ) for providing auxiliary functions for a Viterbi decoding method, with:
  • a metric calculation device ( 20 ) which is set up to read in at least one input value (INP) for each individual trellis step and to calculate a plurality of branch metrics (upper_branch, lower_branch) depending on the at least one input value (INP),
  • - A storage device ( 24 ) for storing status metrics (old_metric, new_metric), and
  • - a path selecting means (22) which is adapted (upper_branch, lower_branch) for each trellis step as a function of the calculated by the metric calculating means (20) branch metrics and the data stored in the storage device state metrics (old_metric) new state metrics (new_metric) and from to calculate initial values (TRAN, MAXU, MAXL), to write the new state metrics (new_metric) into the memory device ( 24 ) and to output the output values (TRAN, MAXU, MAXL) or to make them available for output.
2. Koprozessor nach Anspruch 1, dadurch gekennzeichnet, daß der Koprozessor (10) aus dem mindestens einen Eingangs­ wert (INP) selbständig die Ausgangswerte (TRAN, MAXU, MAXL) berechnet.2. Coprocessor according to claim 1, characterized in that the coprocessor ( 10 ) independently calculates the output values (TRAN, MAXU, MAXL) from the at least one input value (INP). 3. Koprozessor nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die Ausgangswerte Transitionswerte (TRAN) und/oder Maxi­ malmetrikwerte (MAXU, MAXL) sind.3. coprocessor according to claim 1 or claim 2, characterized, that the output values transition values (TRAN) and / or Maxi metric values (MAXU, MAXL) are. 4. Koprozessor nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Koprozessor (10) dazu eingerichtet ist, wahlweise in einem Entzerrmodus oder in einem Kanaldekodiermodus zu ar­ beiten.4. Coprocessor according to one of claims 1 to 3, characterized in that the coprocessor ( 10 ) is set up to work either in an equalization mode or in a channel decoding mode. 5. Koprozessor nach Anspruch 4, dadurch gekennzeichnet, daß der Koprozessor (10) dazu eingerichtet ist, Sollwerte (INP) zu speichern und diese Sollwerte (INP) in dem Entzerr­ modus bei der Berechnung der Zweigmetriken (upper_branch, lower_branch) jedes Trellisschritts heranzuziehen.5. coprocessor according to claim 4, characterized in that the coprocessor ( 10 ) is set up to store setpoints (INP) and to use these setpoints (INP) in the equalization mode when calculating the branch metrics (upper_branch, lower_branch) of each trellis step. 6. Koprozessor nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Speichereinrichtung (24) in mehrere Speicherbänke (26a-26d) unterteilt ist, und daß die in der Speicherein­ richtung (24) gespeicherten Zustandsmetriken (old_metric, new_metric) auf zumindest zwei dieser Speicherbänke (26a-26d) verteilt sind.6. Coprocessor according to one of claims 1 to 5, characterized in that the memory device ( 24 ) is divided into a plurality of memory banks ( 26 a- 26 d), and that the state metrics (old_metric, new_metric) stored in the memory device ( 24 ) are distributed over at least two of these memory banks ( 26 a- 26 d). 7. Koprozessor nach Anspruch 6, dadurch gekennzeichnet, daß die Pfadwahleinrichtung (22) dazu eingerichtet ist, auf zumindest zwei Speicherbänke (26a-26d) der Speichereinrich­ tung (24) parallel zuzugreifen.7. coprocessor according to claim 6, characterized in that the path selection device ( 22 ) is set up to access at least two memory banks ( 26 a- 26 d) of the memory device ( 24 ) in parallel. 8. Koprozessor nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß der Koprozessor (10) als festverdrahtete Hardwareschal­ tung ausgebildet ist.8. coprocessor according to one of claims 1 to 7, characterized in that the coprocessor ( 10 ) is designed as a hard-wired hardware circuit. 9. Koprozessor nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Koprozessor (10) dazu eingerichtet ist, den minde­ stens einen Eingangswert (INP) von einem Hauptprozessor (12) zu lesen und die Ausgangswerte (TRAN, MAXU, MAXL) an den Hauptprozessor (12) auszugeben oder zur Ausgabe an den Hauptprozessor (12) bereitzustellen. 9. Coprocessor according to one of claims 1 to 8, characterized in that the coprocessor ( 10 ) is set up to read the at least one input value (INP) from a main processor ( 12 ) and the output values (TRAN, MAXU, MAXL) to output to the main processor ( 12 ) or to provide for output to the main processor ( 12 ). 10. Koprozessor nach Anspruch 9, dadurch gekennzeichnet, daß der Koprozessor (10) Eingangsregister für die Eingangs­ werte (INP) und Ausgangsregister für die Ausgangswerte (TRAN, MAXU, MAXL) aufweist, und daß diese Register während der Ver­ arbeitung eines Trellisschritts von dem Hauptprozessor (12) zumindest teilweise lesbar und/oder beschreibbar sind.10. Coprocessor according to claim 9, characterized in that the coprocessor ( 10 ) has input registers for the input values (INP) and output registers for the output values (TRAN, MAXU, MAXL), and that these registers during the processing of a trellis step by the Main processor ( 12 ) are at least partially readable and / or writable. 11. Signalverarbeitungseinrichtung mit einem Hauptprozessor (12) und einem mit diesem verbundenen Koprozessor (10), dadurch gekennzeichnet, daß der Koprozessor (10) die Merkmale des Anspruchs 9 oder 10 aufweist.11. Signal processing device with a main processor ( 12 ) and a coprocessor ( 10 ) connected thereto, characterized in that the coprocessor ( 10 ) has the features of claim 9 or 10. 12. Signalverarbeitungseinrichtung nach Anspruch 11, dadurch gekennzeichnet, daß der Hauptprozessor (12) ein programmierbarer, digitaler Signalprozessor ist.12. Signal processing device according to claim 11, characterized in that the main processor ( 12 ) is a programmable, digital signal processor. 13. Signalverarbeitungseinrichtung nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß der Koprozessor (10) dazu eingerichtet ist, einen einzel­ nen Trellisschritt parallel zu in dem Hauptprozessor (12) ab­ laufenden Prozessen zu berechnen.13. Signal processing device according to claim 11 or 12, characterized in that the coprocessor ( 10 ) is set up to calculate a single NEN trellis step parallel to in the main processor ( 12 ) from running processes. 14. Signalverarbeitungseinrichtung nach Anspruch 13, dadurch gekennzeichnet, daß der Hauptprozessor (12) dazu eingerichtet ist, vor jedem Trellisschritt den mindestens einen Eingangswert (INP) zum Koprozessor (10) zu übertragen, dann die Berechnung des Trel­ lisschritts im Koprozessor (10) anzustoßen, und schließlich die Ausgangswerte (TRAN, MAXU, MAXL) zumindest teilweise aus dem Koprozessor (10) auszulesen.14. Signal processing device according to claim 13, characterized in that the main processor ( 12 ) is set up to transmit the at least one input value (INP) to the coprocessor ( 10 ) before each trellis step, then to initiate the calculation of the trelis step in the coprocessor ( 10 ) , and finally read the output values (TRAN, MAXU, MAXL) at least partially from the coprocessor ( 10 ). 15. Signalverarbeitungseinrichtung nach Anspruch 14, dadurch gekennzeichnet, daß die Übertragung des mindestens einen Eingangswerts (INP) zum Koprozessor (10) während der Berechnung des vorhergehen­ den Trellisschritts durch den Koprozessor (10) erfolgt, und daß das zumindest teilweise Auslesen der Ausgangswerte (TRAN, MAXU, MAXL) aus dem Koprozessor (10) während der Berechnung des nachfolgenden Trellisschritts durch den Koprozessor (10) erfolgt.15. Signal processing device according to claim 14, characterized in that the transmission of the at least one input value (INP) to the coprocessor ( 10 ) takes place during the calculation of the previous trellis step by the coprocessor ( 10 ), and that the at least partial reading of the output values (TRAN , MAXU, MAXL) from the coprocessor ( 10 ) during the calculation of the subsequent trellis step by the coprocessor ( 10 ).
DE1997142958 1997-09-29 1997-09-29 Co-processor for signal decoding for e.g. mobile telephone Withdrawn DE19742958A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1997142958 DE19742958A1 (en) 1997-09-29 1997-09-29 Co-processor for signal decoding for e.g. mobile telephone

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1997142958 DE19742958A1 (en) 1997-09-29 1997-09-29 Co-processor for signal decoding for e.g. mobile telephone

Publications (1)

Publication Number Publication Date
DE19742958A1 true DE19742958A1 (en) 1999-04-29

Family

ID=7843988

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1997142958 Withdrawn DE19742958A1 (en) 1997-09-29 1997-09-29 Co-processor for signal decoding for e.g. mobile telephone

Country Status (1)

Country Link
DE (1) DE19742958A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10064102A1 (en) * 2000-12-21 2002-07-25 Infineon Technologies Ag Architecture for DSP, equalizers and channel decoders
WO2002060071A2 (en) * 2001-01-23 2002-08-01 Infineon Technologies Ag Viterbi decoder

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10064102A1 (en) * 2000-12-21 2002-07-25 Infineon Technologies Ag Architecture for DSP, equalizers and channel decoders
WO2002060071A2 (en) * 2001-01-23 2002-08-01 Infineon Technologies Ag Viterbi decoder
DE10102928A1 (en) * 2001-01-23 2002-08-14 Infineon Technologies Ag Viterbi decoder
WO2002060071A3 (en) * 2001-01-23 2003-04-17 Infineon Technologies Ag Viterbi decoder
DE10102928B4 (en) * 2001-01-23 2004-03-04 Infineon Technologies Ag Viterbi decoder and method for decoding
US7336735B2 (en) 2001-01-23 2008-02-26 Infineon Technologies Ag Viterbi decoder

Similar Documents

Publication Publication Date Title
DE1815078C3 (en) Electronic data processing system
DE2063197A1 (en) Arrangement for the numerical control of machine tools
DE19654846A1 (en) Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
DE2853239A1 (en) DATA BUFFER MEMORY OF TYPE FIRST-IN, FIRST-OUT WITH VARIABLE INPUT AND FIXED OUTPUT
DE2212873B2 (en) STORAGE DEVICE CONSTRUCTED FROM SLIDING REGISTERS AND PROCEDURE FOR OPERATING THE STORAGE DEVICE
DE2515038A1 (en) SYNCHRONIZATION CIRCUIT FOR A VITERBI DECODER
DE2854782C2 (en) Data processing system and method for replacing a block of data in high-speed storage
DE60221515T2 (en) STORAGE SYSTEM FOR GRINDING ACCESSORIES AS WISH
DE19742958A1 (en) Co-processor for signal decoding for e.g. mobile telephone
DE19542131A1 (en) VLSI Viterbi decoder with branch metric unit
DE2459476C3 (en)
DE1193279B (en) Electron number calculator with stored program
EP0485022B1 (en) Circuit for removing stuff bits
DE2610428A1 (en) ARRANGEMENT FOR THE CONTROL OF THE INTERMEDIATE STORAGE OF BETWEEN TWO FUNCTIONAL UNITS TO BE TRANSFERRED IN A BUFFER MEMORY
DE2459476B2 (en) CIRCUIT ARRANGEMENT FOR NON-CYCLIC DATA PERMUTATIONS
DE2146108A1 (en) Synchronous buffer arrangement
DE69914241T2 (en) Add, compare, select circuit for a Viterbi decoder
DE1549638B1 (en) Device for examining two vector sequences
EP0392636B1 (en) Integrated circuit
DE1424926B1 (en) Method for multiplying binary numbers in several operation steps
DE69827819T2 (en) A MULTIFUNCTIONAL ARITHMETIC DEVICE WITH ADDED VALUES
DE10064102A1 (en) Architecture for DSP, equalizers and channel decoders
DE1944058A1 (en) Circuit for counting pulses
DE3603320C2 (en)
DE2516681A1 (en) Remote control system with central and further stations - can have additional station evaluating signal exchange between central and further stations

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: BENQ MOBILE GMBH & CO. OHG, 81667 MUENCHEN, DE

8127 New person/name/address of the applicant

Owner name: PALM, INC. (N.D.GES. D. STAATES DELAWARE), SUN, US

8128 New person/name/address of the agent

Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, 80538 MUENCHEN

8139 Disposal/non-payment of the annual fee
8170 Reinstatement of the former position
8170 Reinstatement of the former position
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, US

R081 Change of applicant/patentee

Owner name: QUALCOMM INCORPORATED, SAN DIEGO, US

Free format text: FORMER OWNER: PALM, INC. (N.D.GES. D. STAATES DELAWARE), SUNNYVALE, CALIF., US

Effective date: 20110406

R082 Change of representative

Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE

R081 Change of applicant/patentee

Owner name: QUALCOMM INCORPORATED, SAN DIEGO, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

Effective date: 20140307

Owner name: QUALCOMM INCORPORATED, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, US

Effective date: 20140307

R082 Change of representative

Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE

Effective date: 20140307

Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE

Effective date: 20140307

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: 20150401