WO2002100055A1 - Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk - Google Patents

Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk Download PDF

Info

Publication number
WO2002100055A1
WO2002100055A1 PCT/DE2002/002063 DE0202063W WO02100055A1 WO 2002100055 A1 WO2002100055 A1 WO 2002100055A1 DE 0202063 W DE0202063 W DE 0202063W WO 02100055 A1 WO02100055 A1 WO 02100055A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
dsp
processor
ram2
Prior art date
Application number
PCT/DE2002/002063
Other languages
English (en)
French (fr)
Inventor
Burkhard Becker
Original Assignee
Infineon Technologies 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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Priority to EP02748568A priority Critical patent/EP1393514B1/de
Priority to DE50207939T priority patent/DE50207939D1/de
Publication of WO2002100055A1 publication Critical patent/WO2002100055A1/de
Priority to US10/730,619 priority patent/US8006066B2/en

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/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L25/03178Arrangements involving sequence estimation techniques
    • H04L25/03184Details concerning the metric
    • H04L25/03197Details concerning the metric methods of calculation involving metrics

Definitions

  • the invention relates to a method and a circuit for transmitting data between a processor and a hardware arithmetic unit, in particular a Viterbi hardware arithmetic unit.
  • the Viterbi algorithm is a recursion procedure, the calculation processes of which are repeated step by step. to fetch. Especially with high data rates, when using higher-level modulation methods, when using a long channel memory for equalization or when using small code rates for channel coding and in many other situations, processing the Viterbi algorithm can be very computationally demanding.
  • the simplest way to implement the Viterbi algorithm is to have it executed by a suitably programmed processor alone.
  • this solution has the disadvantage that powerful and thus expensive processors are required, whose computing power is in the order of magnitude of at least 400 MIPS (million instructions per second).
  • processors have a high power consumption, which is why they are practically unusable in mobile phones due to the limited energy resources there.
  • a circuit for a Viterbi decoder with low power consumption is described in EP 0 899 887 A2.
  • the circuit consists of arithmetic units and memories for the temporary storage of intermediate results calculated in the arithmetic units. There is no indication in the document of how this circuit interacts with a DSP (digital signal processor) or is programmed by it.
  • DSP digital signal processor
  • the invention is based on the object of specifying a method for transmitting data between a digital processor and a hardware arithmetic unit, in particular a Viterbi hardware arithmetic unit, which can be used advantageously with a view to the requirements mentioned. Furthermore, the invention aims to provide a circuit arrangement or interface with these properties for the data exchange between a processor and a hardware arithmetic unit.
  • the invention is based on a hardware arithmetic unit to which at least one table memory is assigned, with data of several data types (for example in the case of a Viterbi arithmetic unit receiving symbols, channel coefficients, soft output values, trace-back data symbols etc.) in the Table storage should be saved.
  • the processor's write and / or read access to the table memory comprises the steps of selecting a base address, which is dependent on the data type of the data to be transmitted, and accessing the table memory by starting from the selected base address by the for the Write and / or read access used address of the table memory is calculated with each access according to a predetermined arithmetic calculation in hardware.
  • the assignment of base addresses to data types ensures that the table memory is partitioned in such a way that data of different data types are stored in different memory subareas.
  • the memory subarea reserved for the corresponding data type is addressed by selecting its base address. Since the addressing takes place in the subsequent memory accesses by calculating the addresses in hardware, this can be carried out quickly and without any computational effort for the processor.
  • the invention relates to the transfer of data between the digital processor and the hardware arithmetic unit, but not to the internal accesses of the hardware arithmetic unit to the table memory.
  • the interaction between the hardware arithmetic unit and the table memory i.e. the access control of the hardware arithmetic unit to the table memory
  • the arithmetic calculation rule for calculating the addresses of the table memory is preferably an incrementing or decrementing rule.
  • the table memory is operated in each of the memory subareas in the manner of a shift register or FIFO, in contrast to a conventional shift register not the data being shifted here, but the address which acts as a pointer to the fixed data being counted.
  • the base addresses assigned to the different data types are preferably stored in a base address register. sets, the selection of a base address is carried out by setting a selection bit assigned to this base address via the processor. The address pointer thus automatically jumps to the preset base address as soon as the processor sets the corresponding selection bit. In this case, the processor also does not have to generate base addresses.
  • the base addresses are predefined unchangeable or hard-wired in hardware.
  • the table memory is thus available in a predefined configuration.
  • An alternative embodiment variant of the method according to the invention is characterized in that the base addresses can be programmed by the digital processor.
  • the processor has the possibility of flexible programming of the hardware support comprising the hardware arithmetic unit and the table memory, which can be advantageous in particular when using different mobile radio standards or modulation methods.
  • Another advantageous measure of the method according to the invention is characterized by the selection of a packing mode, which causes a plurality of data words output by the processor for write access to be combined to form a "packed" storage data word for the table memory, and / or by the selection of an unpacking mode, which causes a memory data word read from the table memory with a read access to be broken down into several data words before being input into the processor.
  • a packing mode which causes a plurality of data words output by the processor for write access to be combined to form a "packed" storage data word for the table memory
  • an unpacking mode which causes a memory data word read from the table memory with a read access to be broken down into several data words before being input into the processor.
  • the unpacking mode allows "packed" memory data words to be separated again into the original data words, so that the processor (which has a predefined input word width) can process the data words.
  • the data words can in turn be packed or unpacked without the involvement of the processor.
  • the arithmetic unit is a Viterbi hardware arithmetic unit (e.g. for channel decoding or for equalization).
  • a circuit arrangement according to the invention for the transmission of data of several data types between the processor and the hardware arithmetic unit provides an input and / or output memory which the processor accesses for the data input / output with a predetermined address.
  • the measures already described in connection with the method according to the invention are used by means of a base address storage means (which in particular is arranged outside the processor). tes base address register) and a hardware address calculation circuit, which is in particular a counting means, generates the access address for the table memory without the involvement of the processor.
  • the data word in the input and / or output memory is then stored in the table memory under this address.
  • the method enables a high data rate because the processor can access the input and / or output memory without waiting cycles, ie in the system cycle.
  • an advantageous embodiment variant of the circuit arrangement according to the invention is characterized by a configuration memory in which information about the number of data that are written to or read from the memory subareas assigned to the respective base addresses and / or information about the block size of data blocks and / or information about the decoding rate and / or information about the convolution polynomials used in the channel coding are stored.
  • This configuration data informs the hardware arithmetic unit of the assignment and use of the data which are written by the digital processor into the memory subareas assigned to the respective base addresses or which are written by the digital one Processor can be read from the memory subareas assigned to the respective base addresses.
  • FIG. 1 shows a circuit for performing Viterbi calculations in the form of function blocks, to explain the general structure of such a circuit
  • FIG. 2 shows a schematic circuit diagram of a circuit arrangement according to the invention
  • FIG. 3 is a block diagram showing the architecture of an equalizer and channel decoder circuit using a circuit arrangement according to the invention
  • Fig. 4 is a schematic representation of a memory partition for the equalizer and channel decoder circuit shown in Fig. 3;
  • FIG. 5 shows a schematic representation of a variant of the circuit arrangement according to the invention to explain the packing of data words or the unpacking of memory data words.
  • FIG. 1 shows the general structure of a Viterbi calculation unit consisting of a unit for calculating transition metrics BMU (Branch Metric Unit), a unit for
  • a Viterbi calculation unit of the structure shown is used both in equalizers (data detectors) and in channel decoders. The general functioning of Viterbi calculation units is known and is only briefly explained here:
  • the Viterbi calculation is based on the idea of using a recursive method to determine a shortest path through a state diagram (so-called trellis diagram) in which the states of a shift register are plotted over time.
  • the shift register represents the channel memory, while in the case of channel decoding, the shift register of the channel encoder is considered.
  • one data unit (for the equalizer: one data symbol; for the encoder: one bit) is inserted into the corresponding shift register, thereby changing the state of the shift register.
  • Time increments are considered as possible reception values.
  • the probability for the occurrence of these data units as received values is determined time by time using the Viterbi recursion.
  • the unit BMU calculates transition probabilities for each possible transition in the (channel encoder or equalizer) trellis diagram, which are referred to as transition metric values. The calculation of these transition metric values is based on the information currently available to the receiver, i.e. in the case of equalization on the received data symbols and the channel parameters determined by a channel estimator, and in the case of channel decoding on the soft output values output by the equalizer.
  • the transition metric values calculated in the unit BMU for calculating the transition metrics are supplied to the ACS unit via the data connection 2.
  • the transition metric values are added to the respective state metrics of the previous states (so-called "ADD” operation), and the sums obtained in this way are compared (so-called "COMPARE” operation).
  • the ACS step is carried out cyclically within each time step, as is indicated by the loop 3 in FIG. 1.
  • the ACS operation is processed for a specific group of previous states and target states, which is referred to as the "butterfly".
  • the SMU unit carries out a trace-back operation to determine a data bit (channel decoding) or data symbol (equalization) that is a certain number of time steps away.
  • the trace-back operation is based on the fact that the individual paths converge in the backward direction in time in the trellis diagram, that is to say that data bits / data symbols which were determined for a transition which was carried out earlier are more secure for surviving paths (whether a Path survived or not, it only turns out after a certain number of further time steps have been processed).
  • the unit SMU outputs 5 decoded data bits via the data connection.
  • 5 soft output values and hard output values are provided via the data connection.
  • FIG. 2 illustrates the structure of an interface according to the invention and the sequence of data transfer between a digital signal processor DSP and a Viterbi arithmetic unit RW using an example.
  • the Viterbi arithmetic unit RW designed in the form of hard-wired hardware is connected via a bidirectional data connection DV to the data input / output of a table memory SP. Furthermore, the data input / output of the table memory SP is connected to the data input / output of an input / output memory I / 0_M via a further data connection DV1.
  • the input / output memory I / 0_M is assigned to the DSP and can be addressed by the DSP via a predefined address.
  • the word width of the input / output memory I / 0_M corresponds to the word width of the DSP, e.g. 16 bit.
  • the table memory SP also has a fixed word width, which can be, for example, identical to the word width of the input / output memory I / 0_M.
  • the address decoder of the table memory SP is controlled by a counter C.
  • the counter C has a set input E1, via which the count value can be set.
  • Counter C is clocked with the system clock CLK.
  • the set input El of the counter C is connected to the output of a base address register AR.
  • Several base addresses BA0, BAI, .., BAn are stored in the base address register AR.
  • a control line SL with a word length n + 1 is provided to control the base address register AR.
  • the DSP Via the control line SL, the DSP is able to selectively set one of the ones stored in the base address register AR by setting a respective selection bit B0, Bl, ..., Bn in a control register CO Select n + 1 basic addresses BAO, BAI, .., BAn and thus forward them to the set input El of the counter C.
  • the base addresses BAO, BAI, .., BAn are predefined addresses of the table memory SP, which specify a functional partitioning of the memory subarea of the table memory SP into different subareas TO, Tl, .., Tn.
  • the base addresses BAO, BAI, ..., BAn are either fixed by hardwiring or can be programmed directly by the DSP and thus changed if the table memory SP can be configured flexibly.
  • the Viterbi arithmetic unit RW carries out the calculation of the transition metrics, the ACS operations and the trace-back operations.
  • the following data types must be transferred between the DSP and the Viterbi processor RW before or after a calculation run by the Viterbi processor RW.
  • Receive symbols X k (k denotes the time step) channel coefficients h 0 , .., h m ; or products of the channel coefficients and the values of the symbol alphabet; or partial sums of such products (m denotes the length of the channel memory)
  • Output data of the Viterbi arithmetic unit RW - Hard-output values (ie the trace-back values) soft-output values
  • the input data values are loaded from the DSP into the table memory SP.
  • a partial memory area is used for each data type.
  • the reception symbols X k are first written into the memory subarea TO.
  • the DSP notifies the base address register AR by setting the corresponding selection bit BO that the data type "receive data symbols" is to be transmitted.
  • the base address BAO is assigned to this data type. Setting the corresponding selection bit BO causes the address pointer to jump to the position Z0 shown in FIG. 2.
  • the system clock CLK is applied to the clock input of the counter C and at the same time the receive symbols X k are conveyed in the system clock by the DSP into the input / output memory I / /_M.
  • the reception symbols X k are written into the input / output memory without waiting states when using the same, predetermined address of the input / output memory I / 0_M.
  • the address calculation by the counter C is therefore activated only when the DSP accesses the input / output memory I / 0_M.
  • the data word temporarily stored in the input / output memory I / 0_M is written into the table memory SP via the data connection DV1 at the selected address. If no packing mode is selected (for example, this can be the case with the identical word width of the table memory SP and the data word), exactly one data word is stored in each system clock cycle CLK.
  • the partitioning of the table memory SP specifies the maximum number of data words of each data type to be stored in one calculation run.
  • the system switches to the next data type by the DSP via the control line SL selects the next base address, eg BAI, by setting the appropriate selection bit.
  • the address pointer then jumps to the position ZI (ie the lowest address in the memory sub-area T1) and the data transfer from the DSP to the table memory SP is continued in the same way for the second data type.
  • the Viterbi arithmetic unit RW begins processing the corresponding arithmetic operations.
  • the arithmetic logic unit RW is implemented in sequential logic and therefore enables the arithmetic steps to be carried out quickly and in an energy-saving manner.
  • data required for the calculation are continuously called up from the individual memory subareas and result data are written into further memory subareas (e.g. T2 to Tn) of the table memory SP provided for this purpose. These access steps are not time-critical since they are carried out in parallel with the processing of arithmetic steps in the arithmetic unit RW.
  • the Viterbi arithmetic unit RW changes to a waiting state in which the result data must be read out of the table memory SP as quickly as possible by the DSP.
  • the reading out of data from the table memory SP takes place in the same way as the writing of data into the table memory SP.
  • the DSP only accesses the input / output memory I / 0_M and is redirected to the memory data word defined in the table memory SP by the base address and the number of accesses that have already taken place.
  • the change in the memory subareas is in turn accomplished by selecting a different base address selection bit.
  • the input / output memory I / 0_M can be a processor-internal so-called user-defined register ("user-defined register"). It is important that the DSP can access this register without waiting states and with a fixed address.
  • FIG. 3 shows the architecture of a receiver circuit with an equalizer and a channel decoder, which uses a digital signal processor DSP and a hardware support for the equalization and decoding which is connected to the DSP via an interface according to the invention.
  • the DSP is through one or more configuration registers
  • the first arithmetic unit RW1 is used for equalization of the received data signal
  • the second arithmetic unit RW2 performs channel decoding.
  • the arithmetic logic units RW1 and RW2 can equalize or decode channels, e.g. according to the GSM (Global System for Mobile Communications) standard as well as the EDGE (Enhanced Data Services for GSM Evolution) standard.
  • the first arithmetic unit RW1 is connected to a first volatile data connection DL1 with a first volatile data memory RAM1 and via a second bidirectional data connection DL2 to a second volatile data memory RAM2.
  • Corresponding third and fourth bidirectional data connections DL3 and DL4 are provided between the second arithmetic unit RW2 and the first data memory RAM1 and the second arithmetic unit RW2 and the second data memory RAM2.
  • Both arithmetic units RW1 and RW2 can also access two volatile data memories RAMW1 and RAMW2.
  • data memories RAMW1 and RAMW2 stored result values that arise during equalization and / or channel decoding in the calculating units RW1 and RW2.
  • the DSP can access all of the aforementioned data memories RAM1, RAM2, RAMW1, RAMW2 via data buses DB1, DB2, DB3 and DB4, which are connected to a central data bus DB.
  • Each data memory RAM1, RAM2, RAMW1, RAMW2 therefore corresponds to the table memory SP shown in FIG. 2; the data buses DB1, DB2, DB3 and DB4 are each comparable to the data connection DV1 in FIG. 2.
  • the DSP is accessed via two separate input / output memories I / 0_DEC and I / 0_EQ. These two memories correspond to the input / output memory designated by the reference symbol I / OJM in FIG. 2.
  • the input / output memory I / 0_DEC is used for access by the DSP during a channel decoding process, while the input / output memory I / 0_EQ is used for access by the DSP during an equalization process.
  • the input / output memory I / 0_EQ is used for access by the DSP during an equalization process.
  • all hardware memory subareas for the applications Viterbi decoder and Viterbi equalizer are written and read.
  • the control register CO can be arranged as part of the configuration register CONFIG in the external memory area of the DSP.
  • the base address register AR assigned to the control register CO is also located in the external memory area of the DSP and has been omitted in FIG. 3.
  • the control of the data memories RAM1, RAM2, RAMW1 and RAMW2 via associated counters C corresponds to the illustration in FIG. 2 and is likewise omitted in FIG. 3.
  • RAMW2 using the (hard-wired or via the DSP program mable) base address register AR can be partitioned into the following memory subareas:
  • RAM1 (32 bit word length): T0_RAM1 receive data symbols x k (complex value)
  • RAM2 (16 bit word length): T0_RAM2 trace-back values from decoder T1_RAM2 soft input values for decoder T2_RAM2 soft output values from equalizer T3 RAM2 hard output values from equalizer
  • RAMWl data memory (32-bit word length):
  • Data memory RAMW2 (32 bit word length): T0_RAMW2 metrics for target states, decoder T1_RAMW2 metrics for target states, equalizers T2__RAMW2 paths to target states, equalizers
  • the temporary values stored in the data memories RAMW1 and RAMW2 can also be addressed by the DSP. This allows a process run to be interrupted (decoding and / or equalization) by another process and the interrupted process run to continue after the interrupting process has ended.
  • the configuration register CONFIG can contain further configuration information. mations for the configuration of the hardware calculators RWl and RW2 included. For example, this includes configuration information
  • the hardware arithmetic units RW1 or RW2 are given information about the processing or use of the data written in the memory subareas.
  • Such information about the use of the data written by the DSP in the memory subareas relates to e.g. the size of the memory subarea T1_RAM2 for the soft input values for the decoder,
  • the size of the memory sub-area T2_RAM2 for the soft output values from the equalizer - The size of the memory subarea T3_RAM2 for the hard output values from the equalizer, etc.
  • the configuration data written in the configuration memory CONFIG not only relate to the write process (i.e. the transmission of data from the DSP to the hardware arithmetic units RW1, RW2), but also the memory subareas provided for performing the DSP read access are supported accordingly.
  • the DSP uses the configuration data written in the configuration register CONFIG e.g. the amount of intermediate results to be read by the DSP during a reading process and possibly further configuration information which relate to the processing in the DSP of the data calculated in the hardware arithmetic units RW1, RW2 and stored in the respective memory subareas.
  • Another aspect of the invention takes into account that the data types to be transmitted can have different word widths and a real or complex value range (in the latter case two data words are required for one size), i.e. are generally encoded with a different number of bits.
  • packing the data to be transmitted e.g. one, two or three data words
  • Packing also supports multiple access on the part of the hardware arithmetic units, e.g. the real and imaginary parts of received data symbols or also of state metric values for neighboring states can be stored within a memory data word of the data memory.
  • the selection of a packing or unpacking mode by the DSP can be done in a similar way to the selection of the base addresses by setting corresponding selection bits PC0, PCI, etc. a pack configuration memory PC, see FIG. 5.
  • a 16-bit multiplexer MUX16 for writing and a 16-bit demultiplexer DMUX16 for reading are arranged with a word width of 32 bits.
  • the multiplexer MUX16 and also the demultiplexer DMUX16 are each provided with a buffer for a 16-bit data word in order to combine or, when writing, two 16-bit data words successively output by the DSP to form a 32-bit memory data word to split a 32-bit memory data word into two 16-bit data words to be processed sequentially by the DSP.
  • Corresponding multiplexers and demultiplexers MUX8 and DMUX8 with buffers for an 8-bit data word section are arranged in the data bus DB2 to the 16-bit data memory RAM2.
  • the packing mode here means that two 16-bit data words output by the DSP, each of which only uses 8 bits (eg soft input / output values), are combined to form a 16-bit memory data word.
  • the counter clock of counter C When a packing mode is set, the counter clock of counter C must be adjusted accordingly and slowed down compared to the system clock CLK.
  • the setting of the pack or Unpacking modes not only depend on the word widths of the transmitted data words or the word widths of the memory, but can also be caused by the design and configuration of the Viterbi arithmetic unit RW.
  • the code rate can vary depending on the service selected.
  • the DSP hardware interface described in the present example is only an example for data connections 1 and 5 and e.g. can also be provided in the data connections 2, 4.
  • Trace-back values are calculated in the processor DSP, while a hardware arithmetic unit is used only for the execution of the ACS operations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

Bei einem Verfahren zur Übertragung von Daten mehrerer Datentypen zwischen einem digitalen Prozessor und einem Hardware-Rechenwerk, welchem wenigstens ein Tabellenspeicher zugeordnet ist, wird zunächst eine Basisadresse des Tabellenspeichers, welche abhängig von dem Datentyp der zu übertragenden Daten ist, angewählt. Danach erfolgt ein Lese- und/oder Schreibzugriff auf den Tabellenspeicher, indem ausgehend von der angewählten Basisadresse die für den Lese-/Schreibzugriff verwendete Adresse des Tabellenspeichers bei jedem Zugriff nach einer arithmetischen Rechenvorschrift berechnet wird.

Description

Beschreibung
Verfahren und Schaltungsanordnung zur Übertragung von Daten zwischen einem Prozessor und einem Hardware-Rechenwerk
Die Erfindung betrifft ein Verfahren und eine Schaltung zur Übertragung von Daten zwischen einem Prozessor und einem einem Hardware-Rechenwerk, insbesondere Viterbi-Hardware- Rechenwerk.
In vielen Situationen der digitalen Datenübertragung müssen Daten bidirektional zwischen einem Prozessor und einer den Prozessor unterstützenden Hardware-Schaltung ausgetauscht werden. Dabei sind nicht selten die folgenden Gesichtspunkte von Bedeutung: Der vom Prozessor gesteuerte Datentransfer zwischen dem Prozessor und der Hardware-Schaltung darf auch bei hohen Datenraten keinen signifikanten Anteil (im Prozentbereich) an der verfügbaren Prozessorleistung in Anspruch nehmen. Darüber hinaus ist häufig eine schnelle Datenübertragung gefordert. Ein weiterer wichtiger Gesichtspunkt ist oftmals darin sehen, dass die Datenübertragung möglichst kompatibel mit unterschiedlichen Datenstrukturen (z.B. unterschiedliche Datentypen, Wortbreiten usw.) sein soll. Ferner werden für die Datenübertragung universelle Verfahren benötigt, d.h. Verfah- ren, welche auch für unterschiedliche konstruktive Ausführungen von Hardware-Schaltungen verwendbar sein sollen. Schließlich soll der Hardware-Aufwand zur Realisierung eines diesen Anforderungen gerecht werdenden Verfahrens gering gehalten werden.
Ein wichtiges Anwendungsgebiet, bei welchem sämtliche genannten Anforderungen zum Tragen kommen, ist der Bereich des Mobilfunks. In Mobilfunkempfängern werden sowohl zur Entzerrung der empfangenen Signale als auch zur Kanaldekodierung Berech- nungsverfahren eingesetzt, die auf dem Viterbi-Algorithmus beruhen. Der Viterbi-Algorithmus ist ein Rekursionsverfahren, dessen Rechenabläufe sich Zeitschritt für Zeitschritt wieder- holen. Insbesondere bei hohen Datenraten, bei Verwendung höherstufiger Modulationsverfahren, bei Zugrundelegung eines langen Kanalgedächtnisses bei der Entzerrung oder auch bei der Verwendung kleiner Koderaten bei der Kanalkodierung und in vielen anderen Situationen kann die Abarbeitung des Viterbi-Algorithmus sehr rechenaufwändig werden.
Die systemtechnisch einfachste Möglichkeit zur Durchführung des Viterbi-Algorithmus besteht darin, diesen allein von ei- nem geeignet programmierten Prozessor ausführen zu lassen. Bei dieser Lösung ist jedoch nachteilig, dass leistungsstarke und somit teure Prozessoren benötigt werden, deren Rechenleistung in der Größenordnung von mindestens 400 MIPS (Million Instructions per Second) liegt. Hinzu kommt, dass solche Pro- zessoren einen hohen Stromverbrauch haben, weshalb sie in Mobiltelefonen aufgrund der dort beschränkten Energieressourcen praktisch nicht einsetzbar sind.
Es ist daher bereits vorgeschlagen worden, den Prozessor durch Hinzufügen einer Viterbi-Hardware-Schaltung zu entlasten. Insbesondere ist bereits bekannt, die rechenaufwändigen ACS- (Add- Compare-Select) -Operationen von einer derartigen Viterbi- Hardware-Schaltung durchführen zu lassen, d.h. aus dem Prozessor "auszulagern" . Solche Hardware-Schaltungen werden in der Literatur häufig als Hardware-Unterstützungen (hardware Supports) oder Hardware-Beschleuniger (hardware accelerators) bezeichnet.
In dem Buch "Halbleiterschaltungstechnik", von U. Tietze und Ch. Schenk, 10 Auflage, 1993, Springer Verlag, Berlin, ist auf den Seiten 284 und 285, Kapitel 11.2.2, der Betrieb eines RAMs als Schieberegister beschrieben. Dabei wird die Zugriffsadresse des Schieberegisters durch einen Zähler erzeugt.
In der Schrift EP 0 899 887 A2 ist ein Schaltkreis für einen Viterbi-Dekodierer mit geringer Leistungsaufnahme beschrieben. Der Schaltkreis besteht aus Arithmetik-Einheiten und Speichern zur Zwischenspeicherung von in den Arithmetik-Einheiten berechneten Zwischenergebnissen. Der Schrift sind keine Hinweise darauf zu entnehmen, wie dieser Schaltkreis mit einem DSP (digitaler Signalprozessor) zusammenwirkt bzw. von diesem pro- grammiert wird.
Eine weitere Arithmetik-Einheit zur Durchführung einer Viterbi-Decodierung ist in der Schrift EP 0 590 597 A2 beschrieben. Von der Arithmetik-Einheit berechnete Zwischenergebnisse ver- schiedener Datentypen werden in dafür vorgesehenen Zwischenspeichern abgelegt. Dieser Schrift ist nichts in Bezug auf die Übertragung von Daten zwischen der Viterbi-Einheit und dem DSP zu entnehmen.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Übertragung von Daten zwischen einem digitalen Prozessor und einem Hardware-Rechenwerk, insbesondere Viterbi-Hardware- Rechenwerk, anzugeben, welches mit Blick auf die genannten Anforderungen mit Vorteil einsetzbar ist. Ferner zielt die Er- findung darauf ab, eine Schaltungsanordnung oder Schnittstelle mit diesen Eigenschaften für den Datenaustausch zwischen einem Prozessor und einem Hardware-Rechenwerk bereitzustellen.
Die der Erfindung zugrunde liegende Aufgabenstellung wird durch die Merkmale der unabhängigen Ansprüche gelöst.
Demnach geht die Erfindung von einem Hardware-Rechenwerk aus, welchem wenigstens ein Tabellenspeicher zugeordnet ist, wobei Daten mehrerer Datentypen (z.B. im Falle eines Viterbi- Rechenwerks Empfangssymbole, Kanalkoeffizienten, Soft-Output- Werte, Trace-Back-Datensymbole usw.) in dem Tabellenspeicher gespeichert werden sollen. Der Schreib- und/oder Lesezugriff des Prozessors auf den Tabellenspeicher umfasst dabei die Schritte der Anwahl einer Basisadresse, welche abhängig von dem Datentyp der zu übertragenden Daten ist, und des Zugrei- fens auf den Tabellenspeicher, indem ausgehend von der angewählten Basisadresse die für den Schreib- und/oder Lesezugriff verwendete Adresse des Tabellenspeichers bei jedem Zugriff nach einer vorgegebenen arithmetischen Rechenvorschrift in Hardware berechnet wird.
Durch die Zuordnung von Basisadressen zu Datentypen wird erreicht, dass der Tabellenspeicher so partitioniert wird, dass Daten unterschiedlicher Datentypen in unterschiedlichen Speicherteilbereichen abgelegt werden. Bei einem Zugriff des digitalen Prozessors auf den Tabellenspeicher wird der für den entsprechenden Datentyp reservierte Speicherteilbereich über die Anwahl seiner Basisadresse adressiert . Da bei den anschließenden Speicherzugriffen die Adressierung über die Berechnung der Adressen in Hardware erfolgt, ist diese schnell und ohne Rechenaufwand für den Prozessor auszuführen.
Es wird darauf hingewiesen, dass die Erfindung die Übertragung von Daten zwischen dem digitalen Prozessor und dem Hardware- Rechenwerk, nicht jedoch die internen Zugriffe des Hardware- Rechenwerks auf den Tabellenspeicher betrifft. Das Zusammen- wirken zwischen dem Hardware-Rechenwerk und dem Tabellenspeicher (d.h. die Zugriffssteuerung des Hardware-Rechenwerks auf den Tabellenspeicher) ist abhängig von der Implementierung bzw. dem durch die Implementierung vorgegebenen Algorithmus des Hardware-Rechenwerks und ist für die Erfindung nicht von Bedeutung.
Vorzugsweise ist die arithmetische Rechenvorschrift zur Berechnung der Adressen des Tabellenspeichers eine Inkrementie- rungs- bzw. Dekrementierungsvorschrift . Der Tabellenspeicher wird in diesem Fall in jedem der Speicherteilbereiche in Art eines Schieberegisters oder FIFOs betrieben, wobei im Unterschied zu einem üblichen Schieberegister hier nicht die Daten geschoben, sondern die Adresse, die als Zeiger auf die feststehenden Daten wirkt, durchgezählt wird.
Vorzugsweise sind die den unterschiedlichen Datentypen zugeordneten Basisadressen in einem Basisadressenregister abge- legt, wobei die Anwahl einer Basisadresse durch Setzen eines dieser Basisadresse zugeordneten Auswahlbits über den Prozessor erfolgt. Somit springt der Adressenzeiger automatisch auf die voreingestellte Basisadresse, sobald der Prozessor das entsprechende Auswahlbit setzt. In diesem Fall entfällt für den Prozessor auch der Aufwand für die Erzeugung von Basisadressen.
Nach einer ersten bevorzugten Verfahrensvariante sind die Ba- sisadressen unveränderbar bzw. fest verdrahtet in Hardware vorgegeben. Damit liegt der Tabellenspeicher in fest vorgegebener Konfiguration vor.
Eine alternative Ausführungsvariante des erfindungsgemäßen Verfahrens kennzeichnet sich dadurch, dass die Basisadressen von dem digitalen Prozessor programmierbar sind. In diesem Fall ist die Möglichkeit einer flexiblen Programmierung der das Hardware-Rechenwerk und den Tabellenspeicher umfassenden Hardware-Unterstützung durch den Prozessor gegeben, was insbe- sondere bei der Verwendung unterschiedlicher Mobilfunkstandards oder Modulationsverfahren von Vorteil sein kann.
Im Falle einer flexiblen Programmierbarkeit der Hardware- Unterstützung durch den digitalen Prozessor ist vorzugsweise vorgesehen, dass eine Information betreffend die Anzahl der Daten, die in die den jeweiligen Basisadressen (BA0, BAI, ..., BAn) zugeordneten Speicherteilbereiche (T1_RAM1, ..., T0_RAM2, ..., T0_RAMW1, ..., T0_RAMW2) geschrieben oder aus diesen gelesen werden und/oder und/oder eine Information über die Blockgröße von Datenblöcken und/oder eine Information über die Dekodierrate und/oder eine Information über die bei der Kanalkodierung verwendeten Faltungspolynome von dem digitalen Prozessor programmierbar sind. Auf diese Weise kann das Hardware-Rechenwerk davon unterrichtet werden, wie die von dem Prozessor in den Tabellenspeicher geschriebenen Daten zu verwenden oder zu prozessieren sind. Eine weitere vorteilhaft Maßnahme des erfindungsgemäßen Verfahrens kennzeichnet sich durch die Wahl eines Packungsmodus, welcher bewirkt, dass mehrere von dem Prozessor ausgegebene Datenwörter für einen Schreibzugriff zu einem "gepackten" Speicherdatenwort für den Tabellenspeicher zusammengefasst werden, und/oder durch die Wahl eines Entpackungsmodus, welcher bewirkt, dass ein mit einem Lesezugriff aus dem Tabellenspeicher gelesenes Speicherdatenwort vor der Eingabe in den Prozessor in mehrere Datenwörter zerlegt wird. Auf diese Weise kann eine Anpassung der Wortbreite des spezifischen Datentyps an die vorgegebene Wortbreite des Tabellenspeichers erreicht werden, d.h. z.B. können bei einem Datentyp kleinerer Wortbreite mehrere Wörter pro Speicheradresse im Tabellenspeicher untergebracht werden. Damit wird einerseits eine bessere Spei- cherplatznutzung ermöglicht und es wird andererseits - sofern gewünscht - ein Vielfachzugriff seitens der Hardware-Schaltung auf mehrere Datenwörter unterstützt. Der Entpackungsmodus erlaubt, "gepackte" Speicherdatenwörter wieder in die ursprünglichen Datenwörter aufzutrennen, so dass der Prozessor (welcher eine fest vorgegebene Eingangs-Wortbreite aufweist) die Datenwörter verarbeiten kann. Das Packen bzw. Entpacken der Datenwörter kann wiederum ohne Beteiligung des Prozessors erfolgen.
Ein wichtiger Anwendungsbereich der vorliegenden Erfindung kennzeichnet sich dadurch, dass es sich bei dem Rechenwerk um ein Viterbi-Hardware-Rechenwerk (z.B. für die Kanaldekodierung oder für die Entzerrung) handelt.
Eine erfindungsgemäße Schaltungsanordnung zur Übertragung von Daten mehrerer Datentypen zwischen dem Prozessor und dem Hardware-Rechenwerk sieht einen Eingabe- und/oder Ausgabespeicher vor, auf welchen der Prozessor für die Dateneingabe/-ausgäbe mit vorgegebener Adresse zugreift. Durch die bereits im Zusam- menhang mit dem erfindungsgemäßen Verfahren beschriebenen Maßnahmen werden mittels eines Basisadressen-Speichermittels (welches insbesondere ein außerhalb des Prozessors angeordne- tes Basisadressenregister ist) und einer Hardware-Adressenberechnungsschaltung, welche insbesondere ein Zählmittel ist, ohne Beteiligung des Prozessors die Zugriffsadresse für den Tabellenspeicher generiert. Das in dem Eingabe- und/oder Ausgabespeicher befindliche Datenwort wird dann unter dieser Adresse im Tabellenspeicher abgespeichert. Das Verfahren ermöglicht eine hohe Datenrate, da der Prozessor auf den Eingabe- und/oder Ausgabespeieher ohne Wartezyklen, d.h. im Systemtakt, zugreifen kann.
Es wird darauf hingewiesen, dass über den Eingabe- und/oder Ausgabespeicher mit lediglich einer einzigen festen Adresse sämtliche Hardware-Speicherteilbereiche beschrieben oder gelesen werden können, ohne dass hierfür eine Vielzahl von inter- nen Adressen im Prozessor berechnet werden müssen. Sofern zwei Hardware-Rechenwerke (eines für die Entzerrung und eines für die Kanaldekodierung) vorgesehen sind, sind vorzugsweise zwei Eingabe- und/oder Ausgabespeicher vorhanden, d.h. für die Zugriffe des Prozessors auf die gesamte Entzerrer- und Dekodie- rer-Hardware werden nur zwei dem Prozessor bekannte feste ° Adressen benötigt.
Im Falle der flexiblen Programmierung der Hardware kennzeichnet sich eine vorteilhafte Ausführungsvariante der erfindungs- gemäßen Schaltungsanordnung durch einen Konfigurations- speicher, in welchem eine Information über die Anzahl der Daten, die in die den jeweiligen Basisadressen zugeordneten Speicherteilbereiche geschrieben oder aus diesen gelesen werden und/oder eine Information über die Blockgröße von Daten- blocken und/oder eine Information über die Dekodierrate und/oder eine Information über die bei der Kanalkodierung verwendeten Faltungspolynome gespeichert sind. Durch diese Konfigurationsdaten wird dem Hardware-Rechenwerk die Zuordnung und Verwendung der Daten mitgeteilt, die von dem digitalen Prozes- sor in die den jeweiligen Basisadressen zugeordneten Speicherteilbereiche geschriebenen werden bzw. die von dem digitalen Prozessor aus den den jeweiligen Basisadressen zugeordneten Speicherteilbereiche gelesen werden.
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeich- nung anhand von Beispielen aus dem Bereich der Mobilfunktechnik näher erläutert; in dieser zeigt:
Fig. 1 eine Schaltung zur Durchführung von Viterbi-Berechnungen in Form von Funktionsblδcken, zur Erläuterung des generellen Aufbaus einer solchen Schaltung;
Fig. 2 ein schematisches Schaltbild einer erfindungsgemäßen Scha11ungsanordnung;
Fig. 3 ein Blockschaltbild, welches die Architektur einer Entzerrer- und Kanaldekodierer-Schaltung zeigt, welche eine erfindungsgemäße Schaltungsanordung einsetzt;
Fig. 4 eine schematische Darstellung einer Speicherpartition für die in Fig. 3 dargestellte Entzerrer- und Kanaldekodierer-Schaltung; und
Fig. 5 eine schematische Darstellung einer Variante der erfindungsgemäßen Schaltungsanordnung zur Erläuterung des Packens von Datenwörtern bzw. Entpackens von Speicherdatenwörtern.
Fig. 1 zeigt den generellen Aufbau einer Viterbi-Berechnungs- einheit bestehend aus einer Einheit zur Berechnung von Über- gangsmetriken BMU (Branch Metric Unit) , einer Einheit zur
Durchführung von ACS-Operationen, ACS, und einer Einheit zur Durchführung von Trace-Back-Operationen bezüglich der ermittelten Pfade SMU (Survivor Memory Unit) . Eine Viterbi-Berechnungseinheit der gezeigten Struktur wird sowohl in Entzerrern (Datendetektoren) als auch in Kanaldekodierern eingesetzt. Die generelle Funktionsweise von Viterbi-Berechnungseinheiten ist bekannt und wird hier lediglich kurz erläutert:
Allgemein liegt der Viterbi-Berechnung die Idee zugrunde, durch ein rekursives Verfahren einen kürzesten Weg durch ein Zustandsdiagramm (sogenanntes Trellis-Diagramm) zu ermitteln, in welchem die Zustände eines Schieberegisters über der Zeit aufgetragen sind. Im Falle der Entzerrung repräsentiert das Schieberegister das Kanalgedächtnis, während im Falle der Kanaldekodierung das Schieberegister des Kanalkodierers betrachtet wird. In beiden Fällen wird pro Zeitschritt eine Dateneinheit (beim Entzerrer: ein Datensymbol; beim Kodierer: ein Bit) in das entsprechende Schieberegister eingeschoben und dadurch der Zustand des Schieberegisters verändert. Die Werte der Da- teneinheiten, die dem jeweiligen Schieberegister in jedem
Zeitschritt zugeführt werden, kommen als mögliche Empfangswerte in Frage. Die Wahrscheinlichkeit für das Auftreten dieser Dateneinheiten als Empfangswerte wird mittels der Viterbi- Rekursion Zeitschritt für Zeitschritt bestimmt . Dabei berech- net die Einheit BMU für jeden möglichen Übergang im (Kanal- kodierer- bzw. Entzerrer-)Trellis-Diagramm Übergangswahrscheinlichkeiten, die als Übergangsmetrikwerte bezeichnet werden. Die Berechnung dieser Übergangsmetrikwerte beruht auf der dem Empfänger aktuell zur Verfügung stehenden Information, d.h. im Falle der Entzerrung auf den empfangenen Datensymbolen und den von einem Kanalschätzer ermittelten Kanalparametern, und im Falle der Kanaldekodierung auf den von dem Entzerrer ausgegebenen Soft-Output-Werten.
Die in der Einheit BMU zur Berechnung der Übergangsmetriken berechneten Übergangsmetrikwerte werden über die Datenverbindung 2 der ACS-Einheit zugeführt. In der ACS-Einheit werden die Übergangsmetrikwerte den jeweiligen Zustandsmetriken der Vorgänger-Zustände hinzuaddiert (sogenannte "ADD" -Operation) , und es werden die auf diese Weise erhaltenen Summen verglichen (sogenannte "COMPARE"-Operation) . Derjenige Übergang, dessen Summe aus Übergangsmetrikwert und Metrik des Vorgänger-Zu- Stands minimal ist, wird ausgewählt (sogenannte "SELECT" -Operation) und bildet die Verlängerung des in den Vorgänger-Zu- stand mündenden Pfades in den Zielzustand. Diese drei Operationen werden als ACS-Operationen bezeichnet und von der ACS- Einheit ausgeführt.
Sowohl bei der Viterbi-Entzerrung als auch bei der Viterbi- Dekodierung wird der ACS-Schritt innerhalb jedes Zeitschrittes zyklisch ausgeführt, wie dies durch die Schleife 3 in Fig. 1 angedeutet ist. Bei jedem Zyklus wird die ACS-Operation für eine bestimmte Gruppe von Vorgänger-Zuständen und Zielzuständen abgearbeitet, welche als "Butterfly" bezeichnet wird.
Nachdem für einen bestimmten Zeitschritt im Trellis-Diagramm sämtliche Metriken bestimmt sind, werden die zugehörigen Zu- standsübergänge der Einheit SMU über die Datenverbindung 4 mitgeteilt. Die Einheit SMU führt eine Trace-Back-Operation zur Ermittlung eines um eine bestimmte Anzahl von Zeitschritten zurückliegenden Datenbits (Kanaldekodierung) bzw. Daten- symbols (Entzerrung) durch. Der Trace-Back-Operation liegt zugrunde, dass im Trellis-Diagramm die einzelnen Pfade in zeitlicher Rückwärtsrichtung konvergieren, d.h., dass Datenbits/Datensymbole, die für einen länger zurückliegenden Übergang ermittelt wurden, für überlebende Pfade eine höhere Si- cherheit aufweisen (ob ein Pfad überlebt oder nicht, stellt sich eben erst nach Abarbeitung einer bestimmten Anzahl weiterer Zeitschritte heraus) .
Im Falle der Kanaldekodierung gibt die Einheit SMU über die Datenverbindung 5 dekodierte Datenbits aus. Im Falle der Entzerrung werden über die Datenverbindung 5 Soft-Output-Werte und Hard-Output-Werte bereitgestellt.
Die anhand Fig. 1 erläuterten Rechenschritte werden teilweise in Hardware und teilweise von einem Prozessor mittels Software (Firmware) ausgeführt. Dies macht Schnittstellen zwischen der Hardware und dem Prozessor erforderlich. Je nach konstruktiver Auslegung und Anforderungen können Schnittstellen bei sämtlichen der in Fig. 1 dargestellten Datenverbindungen 1, 2, 3, 4, 5 und darüber hinaus auch an anderer Stelle bestehen.
Fig. 2 verdeutlicht anhand eines Beispiels den Aufbau einer erfindungsgemäßen Schnittstelle sowie den Ablauf einer Datenübergabe zwischen einem digitalen Signalprozessor DSP und einem Viterbi-Rechenwerk RW.
Das in Form von festverdrahteter Hardware ausgeführte Viterbi- Rechenwerk RW steht über eine bidirektionale Datenverbindung DV mit dem Dateneingang/Ausgang eines Tabellenspeichers SP in Verbindung. Ferner steht der Dateneingang/Ausgang des Tabellenspeichers SP über eine weitere Datenverbindung DV1 mit dem Dateneingang/Ausgang eines Eingabe/Ausgabespeichers I/0_M in Datenaustauschverbindung. Der Eingabe/Ausgabespeicher l/0_M ist dem DSP zugeordnet und von diesem über eine fest vorgegebene Adresse ansprechbar. Die Wortbreite des Eingabe/Ausgabespeichers I/0_M entspricht der Wortbreite des DSP, z.B. 16 Bit.
Der Tabellenspeicher SP weist ebenfalls eine feste Wortbreite auf, die beispielsweise identisch mit der Wortbreite des Eingabe/Ausgabespeichers l/0_M sein kann. Der Adressdekoder des Tabellenspeichers SP wird über einen Zähler C angesteuert. Der Zähler C weist einen Setzeingang El auf, über welchen der Zählwert eingestellt werden kann. Die Taktung des Zählers C erfolgt mit dem Systemtakt CLK.
Der Setzeingang El des Zählers C ist mit dem Ausgang eines Basisadressenregisters AR verbunden. In dem Basisadressenregister AR sind mehrere Basisadressen BA0, BAI, .., BAn abgelegt. Zur Ansteuerung des Basisadressenregisters AR ist eine Steuerleitung SL mit einer Wortbreite n+1 vorgesehen. Über die Steu- erleitung SL ist es dem DSP möglich, durch Setzen eines jeweiligen Auswahlbits B0, Bl, ..., Bn eines Steuerregisters CO gezielt eine der in dem Basisadressenregister AR abgespeicherten n+1 Basisadressen BAO, BAI, .., BAn anzuwählen und damit dem Setzeingang El des Zählers C zuzuleiten. Die Basisadressen BAO, BAI, .., BAn sind vordefinierte Adressen des Tabellenspeichers SP, welche eine funktionale Partitionierung des Speicherteilbereichs des Tabellenspeichers SP in verschiedene Teilbereiche TO, Tl, .., Tn vorgeben.
Die Basisadressen BAO, BAI, ..., BAn sind entweder durch Festverdrahtung fest vorgegeben oder können bei flexibler Konfigu- rierbarkeit des Tabellenspeichers SP direkt von dem DSP programmiert und dadurch geändert werden.
Im Folgenden wird die Wirkungsweise der erläuterten Schnittstelle für das Beispiel eines Viterbi-Entzerrers erläutert. Dabei soll (ebenfalls lediglich zu Erlauterungszwecken) die Schnittstelle zwischen dem DSP und dem Viterbi-Rechenwerk RW bei den Datenverbindungen 1, 5 angeordnet sein.
In diesem Fall führt das Viterbi-Rechenwerk RW die Berechnung der Übergangsmetriken, der ACS-Operationen und der Trace-Back- Operationen aus. Die folgenden Datentypen müssen vor bzw. nach einem Rechenlauf des Viterbi-Rechenwerks RW zwischen dem DSP und dem Viterbi-Rechenwerk RW übertragen werden.
1. Eingabedaten für das Viterbi-Rechenwerk RW:
EmpfangsSymbole Xk (k bezeichnet den Zeitschritt) Kanalkoeffizienten h0, .., hm; oder Produkte der Kanalkoeffizienten und der Werte des Symbolalphabets; oder Teilsummen solcher Produkte (m bezeichnet die Länge des Kanalge- dächtnisses)
Initialisierungswerte für Zustandsmetriken und Zustandsvek- toren
2. Ausgabedaten des Viterbi-Rechenwerks RW: - Hard-Output-Werte (d.h. die Trace-Back-Werte) Soft-Output-Werte In einem ersten Schritt werden die Eingabe-Datenwerte von dem DSP in den Tabellenspeicher SP geladen. Für jeden Datentyp wird ein Speicherteilbereich verwendet. Zum Beispiel werden zunächst die Empfangssymbole Xk in den Speicherteilbereich TO geschrieben. Zu diesem Zweck teilt der DSP dem Basisadressenregister AR durch Setzen des entsprechenden Auswahlbits BO mit, dass der Datentyp "Empfangsdatensymbole" übertragen werden soll . Diesem Datentyp ist die Basisadresse BAO zugeordnet . Das Setzen des entsprechenden Auswahlbits BO bewirkt, dass der Adressenzeiger auf die in Fig. 2 dargestellte Position Z0 springt .
In einem nächsten Befehlsschritt wird der Systemtakt CLK an den Takteingang des Zählers C angelegt und gleichzeitig die EmpfangsSymbole Xk im Systemtakt von dem DSP in den Eingabe/Ausgabespeicher l/θ_M befördert. Das Schreiben der Empfangssymbole Xk in den Eingabe/Ausgabespeicher erfolgt ohne Wartezustände bei Verwendung der stets gleichen, vorgegebenen Adresse des Eingabe/Ausgabespeichers l/0_M.
Die Adressenberechnung durch den Zähler C wird also allein bei einem Zugriff des DSP auf den Eingabe/Ausgabespeicher I/0_M aktiviert .
Das in den Eingabe/Ausgabespeicher I/0_M zwischengespeicherte Datenwort wird über die Datenverbindung DV1 unter der angewählten Adresse in den Tabellenspeicher SP geschrieben. Sofern kein Packungsmodus gewählt wird (beispielsweise kann dies bei identischer Wortbreite des Tabellenspeichers SP und des Daten- worts der Fall sein) , wird in jedem Systemtakt CLK genau ein Datenwort abgespeichert .
Durch die Partitionierung des Tabellenspeichers SP ist die Maximalanzahl der in einem Rechenlauf abzuspeichernden Datenwör- ter jedes Datentyps vorgegeben. Nach Abspeicherung der Empfangssymbole X in dem Tabellenspeicher SP wird zu dem nächsten Datentyp gewechselt, indem der DSP über die Steuerleitung SL durch Setzen des entsprechenden Auswahlbits die nächste Basisadresse, z.B. BAI, anwählt. Der Adressenzeiger springt daraufhin auf die Position ZI (d.h. die unterste Adresse in dem Speicherteilbereich Tl) und die Datenübertragung vom DSP in den Tabellenspeicher SP wird für den zweiten Datentyp in gleicher Weise fortgeführt.
Sobald sämtliche, für einen Rechenlauf des Viterbi-Rechenwerks RW benötigten Datenwörter in den Tabellenspeicher SP eingetra- gen sind, d.h. dieser fertig "aufgeladen" ist, beginnt das Viterbi-Rechenwerk RW mit der Abarbeitung der entsprechenden Rechenoperationen. Das Rechenwerk RW ist in sequentieller Logik realisiert und ermöglicht daher eine schnelle und energiesparende Durchführung der Rechenschritte. Während des Rechenlaufs werden ständig für die Rechnung benötigte Daten aus den einzelnen Speicherteilbereichen abgerufen und Ergebnisdaten in hierfür vorgesehene, weitere Speicherteilbereiche (z.B. T2 bis Tn) des Tabellenspeichers SP geschrieben. Diese Zugriffsschritte sind nicht zeitkritisch, da sie parallel mit der Ab- arbeitung von Rechenschritten im Rechenwerk RW vorgenommen werden.
Nach Beendigung des sich vorzugsweise über eine Vielzahl von Zeitschritten k erstreckenden Rechenlaufs sind sämtliche Ein- gabedaten prozessiert und die entsprechenden Ausgabedaten
(Hard-Output-Werte und Soft-Output-Werte) in den Tabellenspeicher SP geschrieben. Das Viterbi-Rechenwerk RW geht in einen Wartezustand über, in welchem die Ergebnisdaten schnellstmöglich von dem DSP aus dem Tabellenspeicher SP ausgelesen werden müssen. Das Auslesen von Daten aus dem Tabellenspeicher SP erfolgt in gleicher Weise wie das Schreiben von Daten in den Tabellenspeicher SP. Der Zugriff des DSP erfolgt allein auf den Eingabe/Ausgabespeicher l/0_M und wird auf das durch die Basisadresse und die Anzahl der bereits erfolgten Zugriffe defi- nierte Speicherdatenwort im Tabellenspeicher SP umgeleitet. Der Wechsel der Speicherteilbereiche wird wiederum durch An- wahl eines anderen Basisadressen-Auswahlbits bewerkstelligt.
Der Eingabe/Ausgabespeicher I/0_M kann ein Prozessor-internes sogenanntes benutzerdefiniertes Register ("user-defined regi- ster") sein. Wichtig ist, dass der Zugriff des DSP auf dieses Register ohne Wartezustände und mit fester Adresse erfolgen kann.
Fig. 3 zeigt die Architektur einer Empfängerschaltung mit einem Entzerrer und einem Kanaldekodierer, welche einen digitalen Signalprozessor DSP und eine mit dem DSP über eine erfindungsgemäße Schnittstelle in Verbindung stehende Hardware- Unterstützung für die Entzerrung und die Dekodierung einsetzt. Der DSP ist über ein oder mehrere Konfigurationsregister
CONFIG mit zwei Viterbi-Rechenwerken RWl und RW2 verbunden. Das erste Rechenwerk RWl dient der Entzerrung des empfangenen Datensignals, das zweite Rechenwerk RW2 führt eine Kanaldekodierung durch. Die Rechenwerke RWl und RW2 können eine Entzer- rung bzw. Kanaldekodierung sowohl z.B. gemäß dem GSM- (Global System for Mobile Communications-) Standard als auch gemäß dem EDGE- (Enhanced Data Services for GSM Evolution-) Standard ausführen.
Das erste Rechenwerk RWl steht über eine erste bidirektionale Datenverbindung DL1 mit einem ersten flüchtigen Datenspeicher RAM1 und über eine zweite bidirektionale Datenverbindung DL2 mit einem zweiten flüchtigen Datenspeicher RAM2 in Datenaustauschverbindung. Entsprechende dritte und vierte bidirektio- nale Datenverbindungen DL3 und DL4 sind zwischen dem zweiten Rechenwerk RW2 und dem ersten Datenspeicher RAM1 sowie dem zweiten Rechenwerk RW2 und dem zweiten Datenspeicher RAM2 vorgesehen.
Beide Rechenwerke RWl und RW2 können ferner auf zwei flüchtige Datenspeicher RAMW1 und RAMW2 zugreifen. Wie noch näher erläutert wird, werden in den Datenspeichern RAMW1 und RAMW2 Zwi- schenergebniswerte abgelegt, die bei der Entzerrung und/oder der Kanaldekodierung in den Rechenwerken RWl und RW2 anfallen.
Der DSP kann auf sämtliche der genannten Datenspeicher RAM1, RAM2, RAMW1, RAMW2 über Datenbusse DB1, DB2, DB3 bzw. DB4, welche mit einem zentralen Datenbus DB in Verbindung stehen, zugreifen. Jeder Datenspeicher RAMl, RAM2, RAMW1, RAMW2 entspricht daher dem in Fig. 2 gezeigten Tabellenspeicher SP, die Datenbusse DB1, DB2, DB3 bzw. DB4 sind jeweils mit der Daten- Verbindung DVl in Fig. 2 vergleichbar. Der Zugriff des DSP erfolgt über zwei getrennte Eingabe/Ausgabespeicher I/0_DEC und l/0_EQ. Diese beiden Speicher entsprechen dem in Fig. 2 mit dem Bezugszeichen I/OJM bezeichneten Eingabe/Ausgabespeicher. Für den Zugriff des DSP während eines Kanaldekodiervorgangs wird der Eingabe/Ausgabespeicher I/0_DEC eingesetzt, während für den Zugriff des DSP während eines Entzerrungsvorgangs der Eingabe/Ausgabespeicher l/0_EQ eingesetzt wird. Auf diese Weise ist es möglich, mit einem Prozessor gleichzeitig eine Hard- ware-unterstützte Entzerrung und eine Hardware-unterstützte Kanaldekodierung zu bewerkstelligen. Ferner werden mit lediglich zwei Adressen (nämlich für den Eingabe/Ausgabespeicher l/0_DEC und für den Eingabe/Ausgabespeicher I/0_EQ) sämtliche Hardware-Speicherteilbereiche für die Anwendungen Viterbi- Decoder und Viterbi-Entzerrer beschrieben und gelesen.
Das Steuerregister CO kann als Teil des Konfigurationsregisters CONFIG im externen Speicherbereich des DSP angeordnet sein. Das dem Steuerregister CO zugeordnete Basisadressenregister AR ist ebenfalls im externen Speicherbereich des DSP lo- kalisiert und wurde in Fig. 3 weggelassen. Die Ansteuerung der Datenspeicher RAMl, RAM2, RAMW1 und RAMW2 über zugehörige Zähler C entspricht der Darstellung in Fig. 2 und ist in Fig. 3 ebenfalls weggelassen.
Nach Fig. 4 können die Datenspeicher RAMl, RAM2, RAMW1 und
RAMW2 mittels des (festverdrahteten oder über den DSP program- mierbaren) Basisadressenregisters AR in folgende Speicherteilbereiche partitioniert sein:
RAMl (32 Bit Wortbreite) : T0_RAM1 Empfangsdatensymbole xk (komplexwertig)
T1_RAM1 Kanalkoeffizienten (komplexwertig) oder Produkte/Teilsummen für Übergangsmetrikwerte
RAM2 (16 Bit Wortbreite) : T0_RAM2 Trace-Back-Werte vom Dekodierer T1_RAM2 Soft-Input-Werte für Dekodierer T2_RAM2 Soft-Output-Werte vom Entzerrer T3 RAM2 Hard-Output-Werte vom Entzerrer
Datenspeicher RAMWl (32 Bit Wortbreite) :
T0_RAMW1 Metriken der Vorgängerzustände, Dekodierer T1_RAMW1 Metriken der Vorgängerzustände, Entzerrer T2_RAMW1 Pfade zu Vorgängerzuständen, Entzerrer T3_RAMW1 Übergangsmetrikwerte für vorausgegangenen Zeit- schritt, Entzerrer
Datenspeicher RAMW2 (32 Bit Wortbreite) : T0_RAMW2 Metriken für Zielzustände, Dekodierer T1_RAMW2 Metriken für Zielzustände, Entzerrer T2__RAMW2 Pfade zu Zielzuständen, Entzerrer
T3_RAMW2 Übergangsmetrikwerte zum aktuellen Zeitschritt, Entzerrer
Es wird deutlich, dass, wie bereits erwähnt, auch die in den Datenspeichern RAMWl und RAMW2 abgelegten temporären Werte von dem DSP adressierbar sind. Dies erlaubt die Unterbrechung eines Rechenlaufs (Dekodierung und/oder Entzerrung) durch einen anderen Prozess und die Fortführung des unterbrochenen Rechenlaufs nach Beendigung des unterbrechenden Prozesses.
Neben dem Steuerregister CO zur Anwahl der Basisadressen kann das Konfigurationsregister CONFIG weitere Konfigurationsinfor- mationen für die Konfigurierung der Hardware-Rechenwerke RWl und RW2 enthalten. Z.B. umfassen diese Konfigurationsinformationen
- eine Information über die Blockgröße für das Rechenwerk RW2 (Viterbi-Dekodierer) ,
- eine Information über die Dekodierrate für das Rechenwerk RW2,
- eine Information über die verwendeten Faltungspolynome für das Rechenwerk RW2, - eine Information über die Größe der zu entzerrenden Teilsegmente von Empfangsdatensymbolen k für das Rechenwerk RWl, etc.
Mittels der Konfigurationsinformationen werden den Hardware- Rechenwerken RWl bzw. RW2 Angaben über die Prozessierung bzw. Verwendung der in die Speicherteilbereiche geschriebenen Daten mitgeteilt. Derartige Informationen über die Verwendung der vom DSP in die Speicherteilbereiche geschriebenen Daten betreffen z.B. - die Größe des Speicherteilbereichs T1_RAM2 für die Soft- Input-Werte für den Dekodierer,
- die Größe des Speicherteilbereichs T0_RAM2 für die Trace- Back-Werte vom Dekodierer, die von dem DSP gelesen werden,
- die Zuordnung von Speicherplätzen im Speicherteilbereich T1_RAM2 für die Soft-Input-Werte für den Dekodierer: Es können zwei oder drei oder vier Soft-Input-Werte pro Zeiteinheit auftreten,
- die Zuordnung von Speicherplätzen im Speicherteilbereich T0_RAM2 für die von dem Dekodierer berechneten Trace-Back- Werte: Es können sechzehn (GSM) oder vierundsechzig (EDGE) Zustände pro Zeiteinheit zu berücksichtigen sein,
- die Verwendung der in dem Speicherteilbereich T1_RAM1 gespeicherten Kanalkoeffizienten sowie gegebenenfalls Produkte/Teilsummen von Kanalkoeffizienten durch das Hardware- Rechenwerk RWl,
- die Größe des Speicherteilbereichs T2_RAM2 für die Soft- Output-Werte von dem Entzerrer, - die Größe des Speicherteilbereichs T3_RAM2 für die Hard- Output-Werte von dem Entzerrer, etc..
Die in den Konfigurationsspeicher CONFIG geschriebenen Konfi- gurationsdaten betreffen nicht nur den Schreibvorgang (d.h. die Übermittlung von Daten von dem DSP zu den Hardware-Rechenwerken RWl, RW2) , sondern es werden auch die zur Durchführung des DSP-Lesezugriffs vorgesehenen Speicherteilbereiche entsprechend unterstützt. Dabei definiert der DSP über die in das Konfigurationsregister CONFIG geschriebenen Konfigurationsdaten z.B. die Menge der von dem DSP bei einem Lesevorgang zu lesenden Zwischenergebnisse und gegebenenfalls weitere Konfi- gurationsinformatonen, welche die Verarbeitung der in den Hardware-Rechenwerken RWl, RW2 berechneten und in den jeweili- gen Speicherteilbereichen abgelegten Daten im DSP betreffen.
Ein weiterer Aspekt der Erfindung berücksichtigt, dass die zu übertragenden Datentypen unterschiedliche Wortbreiten und einen reellen oder komplexwertigen Wertebereich (im letztgenann- ten Fall sind für eine Größe zwei Datenwörter erforderlich) aufweisen können, d.h. allgemein mit einer unterschiedlichen Anzahl von Bits kodiert sind. Auf der anderen Seite sollen vorteilhafterweise kostengünstige Standard-Speicher einer fest vorgegebenen Wortbreite eines Speicherdatenwortes eingesetzt werden. Um eine möglichst gute Speicherplatzausnutzung zu erreichen, besteht die Möglichkeit zum Packen der zu übertragenden Daten (z.B. ein, zwei oder drei Datenwörter) in eine durch den Datenspeicher vorgegebene Wortbreite. Das Packen unterstützt ferner einen Mehrfach-Zugriff seitens der Hardware- Rechenwerke, z.B. können die Real- und Imaginärteile von Empfangsdatensymbolen oder auch von Zustandsmetrikwerten für benachbarte Zustände innerhalb eines Speicherdatenwortes des Datenspeichers abgelegt werden.
Die Auswahl eines Packungs- oder Entpackungsmodus durch den DSP kann in ähnlicher Weise wie die Anwahl der Basisadressen über das Setzen entsprechender Auswahlbits PC0, PCI, usw. in einem Packungs-Konfigurationsspeicher PC erfolgen, siehe Fig. 5. Zu diesem Zweck ist im Bereich der Datenbusse DB1-4 (bzw. Datenverbindung DVl) zwischen dem Eingabe/Ausgabespeicher I/0_DEC bzw. I/0__EQ und den Datenspeichern RAMl, RAMWl, RAMW2 mit einer Wortbreite von 32 Bit ein 16-Bit-Multiplexer MUX16 für das Schreiben und ein 16-Bit-Demultiplexer DMUX16 für das Lesen angeordnet. Der Multiplexer MUX16 sowie auch der Demul- tiplexer DMUX16 sind jeweils mit einem Zwischenspeicher für ein 16-Bit-Datenwort versehen, um beim Schreiben zwei nachein- ander von dem DSP ausgegebene 16-Bit-Datenwörter zu einem 32- Bit-Speicherdatenwort zusammenzufassen, bzw. um ein 32-Bit- Speicherdatenwort in zwei vom DSP sequentiell zu verarbeitende 16-Bit-Datenwörter zu zerlegen. Entsprechende Multiplexer und Demultiplexer MUX8 und DMUX8 mit Zwischenspeichern für ein 8- Bit Datenwortabschnitt sind in dem Datenbus DB2 zum 16-Bit- Datenspeicher RAM2 angeordnet. Der Packungsmodus bewirkt hier, dass zwei vom DSP ausgegebene 16-Bit-Datenwörter, die jeweils nur 8 Bits ausnutzen (z.B. Soft-Input/Output-Werte) , zu einem 16-Bit Speieherdatenwort kombiniert werden.
Bei Setzen eines Packungsmodus muss der Zähltakt des Zähler C entsprechend angepaßt und gegenüber dem Systemtakt CLK verlangsamt werden.
Es wird darauf hingewiesen, dass die Einstellung der Packungsbzw. Entpackungsmodi nicht allein von den Wortbreiten der übertragenen Datenwörter bzw. den Wortbreiten der Speicher abhängt, sondern auch durch die Auslegung und Konfiguration des Viterbi-Rechenwerkes RW bedingt sein kann. Beispielsweise ist die Anzahl der Eingangsdatenwörter (Soft-Input-Werte) eines Dekodierers zur Durchführung einer Viterbi-Rekursion abhängig von der senderseitig gewählten Koderate (genauer werden bei einer Koderate R = 1/k eine Anzahl von k Soft-Input-Werten pro Zeitschritt im Dekodierer benötigt) . Die Koderate kann in Abhängigkeit von dem gewählten Dienst variabel sein. Durch eine entsprechende, Koderaten-abhängige Packungsvorschrift kann erreicht werden, dass das Hardware-Rechenwerk RW2 für die Ka- naldekodierung pro Zeitschritt auch bei unterschiedlichen Koderaten lediglich einmal auf den entsprechenden Speicherteilbereich zugreifen muss. Das Vorsehen einer Packungs- bzw. Ent- packungsmöglichkeit von Datenwörtern erhöht somit in erheblichem Maße die Flexibilität des erfindungsgemäßen Datenübertragungsverfahrens, insbesondere auch im Hinblick auf die Entzer- rung/Kanaldekodierung von Datensignalen unterschiedlicher Mobilfunkstandards (beispielsweise GSM und EDGE) mit derselben Hardware RWl, RW2.
Schließlich wird darauf hingewiesen, dass die im vorliegenden Beispiel beschriebene DSP-Hardware-Schnittstelle bei den Datenverbindungen 1 und 5 lediglich ein Beispiel darstellt und z.B. auch in den Datenverbindungen 2, 4 vorgesehen sein kann. In diesem Fall werden die Übergangsmetrikwerte sowie die
Trace-Back-Werte in dem Prozessor DSP berechnet, während nur für die Durchführung der ACS-Operationen ein Hardware-Rechenwerk eingesetzt wird.
Sämtliche beschriebenen Ausführungsbeispiele sind kombinierbar und ihnen ist gemeinsam, dass stets eine rechenaufwandsarme und schnelle Übertragung von Daten zwischen einem digitalen Prozessor und einer Hardware-Unterstützung für den Prozessor erreicht wird.

Claims

Patentansprüche
1. Verfahren zur Übertragung von Daten mehrerer Datentypen zwischen einem digitalen Prozessor (DSP) und einem Hardware- Rechenwerk (RW; RWl, RW2) , wobei dem Hardware-Rechenwerk (RW; RWl, RW2) wenigstens ein Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) zugeordnet ist, aus welchem es während eines Rechenlaufs benötigte Daten bezieht und/oder in welches es während eines Rechenlaufs berechnete Daten ablegt, und wobei ein Schreib- und/oder Lesezugriff des Prozessors (DSP) auf den Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) die Schritte umfasst:
(a) Anwahl einer Basisadresse (BAO, BAI, .., BAn) des Tabellenspeichers (SP; RAMl, RAM2 , RAMWl, RAMW2), welche abhängig von dem Datentyp der zu übertragenden Daten ist;
(b) Zugreifen des digitalen Prozessors (DSP) auf den Tabellenspeicher (SP; RAMl, RAM2 , RAMWl, RAMW2) , indem ausgehend von der angewählten Basisadresse (BAO, BAI, .., BAn) die für den Schreib- und/oder Lesezugriff verwendete Adresse des Ta- bellenspeichers (SP; RAMl, RAM2, RAMWl, RAMW2) bei jedem Zugriff nach einer vorgegebenen arithmetischen Rechenvorschrift in Hardware berechnet wird.
2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t,
- dass die den unterschiedlichen Datentypen zugeordneten Basisadressen (BAO, BAI, .., BAn) in einem Basisadressenregister (AR) abgelegt sind, und
- dass die Anwahl einer Basisadresse (BAO, BAI, .., BAn) durch Setzen eines dieser Basisadresse (BAO, BAI, .., BAn) zugeordneten Auswahlbits über den Prozessor (DSP) erfolgt.
3. Verfahren nach Anspruch 1 oder 2 , d a d u r c h g e k e n n z e i c h n e t, - dass die arithmetische Rechenvorschrift zur Berechnung der Adressen des Tabellenspeichers (SP) eine Inkrementierungs- bzw. Dekrementierungsvorschrift ist.
4. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass die Basisadressen (BAO, BAI, ..., BAn) unveränderbar in Hardware vorgegeben sind.
5. Verfahren nach einem der Ansprüche 1 bis 3, d a d u r c h g e k e n n z e i c h n e t, dass die Basisadressen (BAO, BAI, ..., BAn) von dem digitalen Prozessor (DSP) programmierbar sind.
6. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass eine Information betreffend die Anzahl der Daten, die in die den jeweiligen Basisadressen (BAO, BAI, ..., BAn) zugeordneten Speicherteilbereiche (T1_RAM1, ..., T0_RAM2, ..., T0_RAMW1, ..., T0_RAMW2) geschrieben oder aus diesen gelesen werden und/oder eine Information über die Blockgröße von Datenblöcken und/oder eine Information über die Dekodierrate und/oder eine Information über die verwendeten Faltungspolynome von dem digitalen Prozessor (DSP) programmierbar sind.
7. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass es sich bei einem ersten Datentyp um für ein Dekodierer- Hardware-Rechenwerk (RW; RW2) bestimmte Soft-Input-Werte für die Kanaldekodierung handelt, und dass von dem digitalen Prozessor (DSP) programmierbar ist, wie viele Soft-Input-Werte pro Zeiteinheit in dem dem ersten Datentyp zugeordneten Speicherteilbereich (T1_RAM2) abspeicherbar sind.
8. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass es sich bei einem zweiten Datentyp um von einem Dekodierer-Hardware-Rechenwerk (RW; RW2) berechnete Trace-Back-Werte handelt, und dass von dem digitalen Prozessor (DSP) programmierbar ist, wie viele Zustände die Trace-Back-Werte umfassen sollen.
9. Verfahren nach einem der vorhergehenden Ansprüche, g e k e n n z e i c h n e t durch den weiteren Schritt :
- Wahl eines Packungsmodus, welcher bewirkt, dass mehrere von dem Prozessor (DSP) ausgegebene Datenwörter für einen Speicherzugriff gemäß Schritt (b) zu einem Speicherdatenwort für den Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) zu- sammengefasst werden, und/oder
- Wahl eines Entpackungsmodus, welcher bewirkt, dass ein mit einem Speicherzugriff gemäß Schritt (b) aus dem Tabellenspeicher (SP; RAMl, RAM2 , RAMWl, RAMW2) gelesenes Spei- cherdatenwort vor der Eingabe in den Prozessor (DSP) in mehrere Datenwörter zerlegt wird.
10. Schaltungsanordnung zur Übertragung von Daten mehrerer Datentypen zwischen einem Prozessor (DSP) und einem Hardware- Rechenwerk (RW; RWl, RW2) , wobei dem Hardware-Rechenwerk (RW; RWl, RW2) wenigstens ein Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) zugeordnet ist, aus welchem es während eines Rechenlaufs benötigte Daten bezieht und/oder in welches es während eines Rechenlaufs berechnete Daten ablegt, mit - einem Eingabe- und/oder Ausgabespeicher (I/0_M; I/0_DEC, I/0_EQ) vorgegebener Adresse, auf welchen der Prozessor (DSP) für die Dateneingabe/-ausgäbe mit der vorgegebenen Adresse zugreift,
- einem Basisadressen-Speichermittel (AR) , in welchem zu je- dem Datentyp eine Basisadressen (BAO, BAI, .., BAn) für den
Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) gespeichert ist, und
- einer Hardware-Adressenberechnungsschaltung (C) , welche ausgehend von einer Basisadresse (BAO, BAI, .., BAn) durch Anwenden einer arithmetischen Rechenvorschrift eine aktuelle Adresse für den Zugriff des digitalen Prozessors (DSP) auf den Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) in Hardware erzeugt .
11. Schaltungsanordnung nach Anspruch 10, d a du r c h g e k e n n z e i c h n e t,
- dass das Basisadressen-Speichermittel ein externes Basisadressenregister (AR) ist, welches derart aufgebaut ist, dass die Anwahl einer Basisadresse (BAO, BAI, .., BAn) durch Setzen eines dieser Basisadresse zugeordneten Aus- wahlbits (BO, Bl, ..., Bn) seitens des Prozessors (DSP) erfolgt.
12. Schaltungsanordnung nach Anspruch 10 oder 11, d a d u r c h g e k e n n z e i c h n e t, dass das Basisadressen-Speichermittel (AR) ein Festwertspeicher ist.
13. Schaltungsanordnung nach Anspruch 10 oder 11, d a d u r c h g e k e n n z e i c h n e t, dass das Basisadressen-Speichermittel (AR) ein wiederbe- schreibbarer Speicher ist, welcher von dem digitalen Prozessor (DSP) programmierbar ist.
14. Schaltungsanordnung nach Anspruch 10 bis 13, g e k e n n z e i c h n e t d u r c h einen Konfigurationsspeicher (CONFIG) , in welchem eine Information über die Anzahl der Daten, die in die den jeweiligen Basisadressen (BAO, BAI, ..., BAn) zugeordneten Speicherteilbereiche (T1_RAM1, ... , T0_RAM2, ... , T0_RAMW1, T0_RAMW2) geschrieben oder aus diesen gelesen werden und/oder eine Information über die Blockgröße von Datenblöcken und/oder eine Information über die Dekodierrate und/oder eine Information über die verwendeten Faltungspolynome gespeichert sind.
15. Schaltungsanordnung nach Anspruch 10 bis 14, d a d u r c h g e k e n n z e i c h n e t, - dass die Schaltungsanordnung ein Multiplexer- und Zwischenspeichermittel (MUX16, MUX8) aufweist, mittels welchem mehrere von dem Prozessor (DSP) ausgegebene Datenwörter zu einem zur Speicherung unter einer Adresse im Tabellenspeicher (SP; RAMl, RAM2 , RAMWl, RAMW2) vorgesehenen Speicherdatenwort zusammengefügt werden.
16. Schaltungsanordnung nach Anspruch 10 bis 15, d a d u r c h g e k e n n z e i c h n e t, - dass die Schaltungsanordnung ein Demultiplexer- und Zwischenspeichermittel (DMUX16, DMUX8) aufweist, mittels welchem ein aus dem Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) ausgelesenes Speicherdatenwort vor der Eingabe in den Prozessor (DSP) in mehrere Datenwörter zerlegt wird.
17. Schaltungsanordnung nach Anspruch 10 bis 16, d a d u r c h g e k e n n z e i c h n e t,
- dass der Tabellenspeicher (SP; RAMl, RAM2, RAMWl, RAMW2) eine vorgegebene Speicherwortbreite aufweist.
18. Schaltungsanordnung nach Anspruch 10 bis 17, d a d u r c h g e k e n n z e i c h n e t,
- dass es sich bei dem Hardware-Rechenwerk (RW; RWl, RW2) um ein Viterbi-Hardware-Rechenwerk handelt.
19. Schaltungsanordnung nach Anspruch 10 bis 18 d a d u r c h g e k e n n z e i c h n e t, - dass der Prozessor (DSP) mit zwei Hardware-Rechenwerken (RWl, RW2) in Datenübertragungsverbindung steht, wobei das eine Hardware-Rechenwerk ein Entzerrer-Hardware-Rechenwerk (RWl) und das andere Hardware-Rechenwerk ein Dekodierer- Hardware-Rechenwerk (RW2) ist.
PCT/DE2002/002063 2001-06-06 2002-06-06 Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk WO2002100055A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP02748568A EP1393514B1 (de) 2001-06-06 2002-06-06 Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk
DE50207939T DE50207939D1 (de) 2001-06-06 2002-06-06 Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk
US10/730,619 US8006066B2 (en) 2001-06-06 2003-12-08 Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10127348.7 2001-06-06
DE10127348A DE10127348A1 (de) 2001-06-06 2001-06-06 Verfahren und Schaltungsanordnung zur Übertragung von Daten zwischen einem Prozessor und einem Hardware-Rechenwerk

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/730,619 Continuation US8006066B2 (en) 2001-06-06 2003-12-08 Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit

Publications (1)

Publication Number Publication Date
WO2002100055A1 true WO2002100055A1 (de) 2002-12-12

Family

ID=7687312

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2002/002063 WO2002100055A1 (de) 2001-06-06 2002-06-06 Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk

Country Status (4)

Country Link
US (1) US8006066B2 (de)
EP (1) EP1393514B1 (de)
DE (2) DE10127348A1 (de)
WO (1) WO2002100055A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7643549B2 (en) * 2004-09-28 2010-01-05 Broadcom Corporation Wireless device having a hardware accelerator to support equalization processing
US20110090773A1 (en) * 2009-10-16 2011-04-21 Chih-Ching Yu Apparatus for generating viterbi-processed data using an input signal obtained from reading an optical disc
US8432780B1 (en) * 2012-05-10 2013-04-30 Mediatek Inc. Viterbi decoding apparatus using level information generator supporting different hardware configurations to generate level information to Viterbi decoder and related method thereof
US10388362B1 (en) * 2018-05-08 2019-08-20 Micron Technology, Inc. Half-width, double pumped data path

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537445A (en) * 1993-11-16 1996-07-16 At&T Corp. Variable length tracebacks
US5539780A (en) * 1993-10-28 1996-07-23 Motorola, Inc. Computationally efficient data decoder and method used therein
US5905757A (en) * 1996-10-04 1999-05-18 Motorola, Inc. Filter co-processor
US6195782B1 (en) * 1998-05-28 2001-02-27 Advanced Micro Devices, Inc. MLSE implementation using a general purpose DSP and shared hardware for a GSM application

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3833888A (en) * 1973-02-05 1974-09-03 Honeywell Inf Systems General purpose digital processor for terminal devices
DE2944757C2 (de) * 1979-11-06 1986-01-16 Bruno M. Einsiedeln Hess Programmierbare Prozeßsteuerung
US5311523A (en) * 1988-12-08 1994-05-10 Kabushiki Kaisha Toshiba Carrier phase synchronous type maximum likelihood decoder
US5150471A (en) * 1989-04-20 1992-09-22 Ncr Corporation Method and apparatus for offset register address accessing
AU652896B2 (en) * 1992-09-29 1994-09-08 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus
JP3277856B2 (ja) * 1997-08-29 2002-04-22 日本電気株式会社 ビタビデコーダ
US6310891B1 (en) * 1997-12-18 2001-10-30 Alcatel Usa Sourcing, L.P. Method of scheduling time division multiplex (TDM) cells in a synchronous optical network (SONET) frame
JP3132456B2 (ja) * 1998-03-05 2001-02-05 日本電気株式会社 階層的画像符号化方式、及び階層的画像復号方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539780A (en) * 1993-10-28 1996-07-23 Motorola, Inc. Computationally efficient data decoder and method used therein
US5537445A (en) * 1993-11-16 1996-07-16 At&T Corp. Variable length tracebacks
US5905757A (en) * 1996-10-04 1999-05-18 Motorola, Inc. Filter co-processor
US6195782B1 (en) * 1998-05-28 2001-02-27 Advanced Micro Devices, Inc. MLSE implementation using a general purpose DSP and shared hardware for a GSM application

Also Published As

Publication number Publication date
DE50207939D1 (de) 2006-10-05
DE10127348A1 (de) 2002-12-19
EP1393514A1 (de) 2004-03-03
US8006066B2 (en) 2011-08-23
EP1393514B1 (de) 2006-08-23
US20040143722A1 (en) 2004-07-22

Similar Documents

Publication Publication Date Title
DE69827915T2 (de) Verarbeitungsverfahren und -vorrichtung
DE60028906T2 (de) Viterbi Dekoder
US5432804A (en) Digital processor and viterbi decoder having shared memory
DE60117831T2 (de) Modul zur erzeugung von decoderschaltungen für faltungscodes, zugehöriges verfahren und schaltung
DE2816913A1 (de) Decoder fuer konvolutinal codierte daten
WO2003071689A2 (de) Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler
DE69425313T2 (de) Viterbi-Entzerrer mit Rechenleistungsparendem Trace-Back-Verfahren
EP0488456A2 (de) Maximalwahrscheinlichkeitsempfänger
DE69602932T2 (de) Multitor ram zur anwendung in einem viterbidecoder
DE102008047165A1 (de) Halbleitervorrichtung mit basierend auf einem gespeicherten Bit und einem nächsten Bit leitendem Schalter
DE69434249T2 (de) Digitaler Signalprozessor mit Coprozessor zur Viterbi Decodierung
US20080148018A1 (en) Shift Processing Unit
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE69030073T2 (de) Dekodierungsverfahren mit hoher Datenrate für die Signalverarbeitung in kodierten Kanälen
EP1393514A1 (de) Verfahren und schaltungsanordnung zur übertragung von daten zwischen einem prozessor und einem hardware-rechenwerk
DE60101745T2 (de) Viterbi dekodierung mit pfadmetrikaktualisierung durchgeführt in einheiten von bitscheiben
DE10010238C2 (de) Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer
DE3854181T2 (de) System zur datenübertragung.
DE60008388T2 (de) Speicher ausführung von register-exchange traceback für gigabit ethernet sender-empfänger
EP1223679B1 (de) Berechnung und Zuweisung von Übergangsmetrikwerten für einen Viterbi-Dekodierer
CN106452461A (zh) 一种通过矢量处理器实现viterbi解码的方法
DE69026363T2 (de) Multipositionsverschieber mit Paritätsbitgenerator
DE60117705T2 (de) Viterbi-Decodierungsprozessor
DE69706639T2 (de) Datenprozessor und Verfahren zur Datenverarbeitung
DE69914241T2 (de) Addier- Vergleichs- Auswahl- Schaltung für einen Viterbi Dekodierer

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2002748568

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10730619

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2002748568

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

WWG Wipo information: grant in national office

Ref document number: 2002748568

Country of ref document: EP