In
Mobilfunkstandards der dritten Generation wird ein weiter Bereich
von unterschiedlichen Datenraten unterstützt. Im UMTS-(Universal Mobile
Telecommunications System-)Standard sind im WCDMA/FDD-(Wideband-Code
Division Multiple Access/Frequency Division Duplex-)Betrieb beispielsweise
Datenraten zwischen 10 kBit/s und 2 MBit/s definiert.In
Third generation mobile radio standards will be a wide area
supported by different data rates. In UMTS (Universal Mobile
Telecommunications System) standard are in WCDMA / FDD (Wideband Code
Division Multiple Access / Frequency Division Duplex) operation, for example
Data rates between 10 kbit / s and 2 Mbit / s defined.
Der
Empfänger
und damit sämtliche
Hardware-Einheiten innerhalb desselben müssen für die maximale Datenrate (2
MBit/s) ausgelegt sein. Hierfür
sind die Hardware-Einheiten im Empfänger zumeist parallel aufgebaut,
um, bezogen auf den Verarbeitungstakt, die maximale Datenrate bewältigen zu können.Of the
receiver
and therefore all
Hardware units within it must be set for the maximum data rate (2
Mbps). Therefor
the hardware units in the receiver are usually set up in parallel,
in order to be able to cope with the maximum data rate, based on the processing cycle.
Da
Datenraten innerhalb einer bestehenden Verbindung geändert werden
können,
ist eine hohe Dynamik bezüglich
der Auslastung der parallelisierten Hardware-Einheiten vorhanden.
Nicht benötigte Hardware-Einheiten
können
unabhängig
voneinander abgeschaltet, d.h. von der Taktversorgung getrennt werden.
Die Steuerung der Hardware-Einheiten wird durch eine oder mehrere
FSM (Finite State Machines) durchgeführt. Die Anpassung der unterschiedlichen
Datenraten an die maximale Verarbeitungsgeschwindigkeit erfolgt
dabei mit Hilfe von Handshake-Mechanismen.There
Data rates can be changed within an existing connection
can,
is a high dynamic regarding
the utilization of the parallelized hardware units.
Unnecessary hardware units
can
independently
disconnected from each other, i. be disconnected from the clock supply.
The control of the hardware units is by one or more
FSM (Finite State Machines) performed. The adaptation of the different
Data rates to the maximum processing speed
doing so with the help of handshake mechanisms.
Die
vorstehenden Ausführungen
verdeutlichen, dass das Architektur-Konzept eines Funkempfängers, insbesondere
Mobilfunkempfängers,
im Bezug auf die Auslegung und Anordnung seiner Hardware-Einheiten
sowie die Steuerung derselben einen bestimmenden Einfluss auf die
optimale Verwendung von Hardware-Ressourcen
(Chipfläche)
und den Leistungsverbrauch hat. Darüber hinaus wird bei dem Entwurf
einer Architektur der Hardware-Einheiten ein möglichst hohes Maß an Modularität und Skalierbarkeit
angestrebt. Ein modulares Konzept und eine ho he Skalierbarkeit der
Architektur erhöhen
die Design-Sicherheit,
erniedrigen die Entwicklungskosten beim Entwurf der Schaltung und
erleichtern die Erweiterbarkeit und zukünftige Fortentwickung der Schaltung.The
above
clarify that the architecture concept of a radio receiver, in particular
Mobile radio receiver,
in terms of the design and arrangement of its hardware units
and the control of the same a determining influence on the
optimal use of hardware resources
(Chip area)
and has the power consumption. In addition, in the design
architecture of the hardware units the highest possible degree of modularity and scalability
sought. A modular concept and a high degree of scalability
Increase architecture
the design security,
lower the development costs when designing the circuit and
facilitate the extensibility and future development of the circuit.
In
der Schrift WO 00/25437 ist ein RAKE-Empfänger beschrieben, der eine
Pipeline-Architektur mit mehreren Pipeline-Stufen aufweist, in denen einzelne Signalverarbeitungsschritte
bzw. Rechenschritte wie am Fließband
abgearbeitet werden. Zwischen den einzelnen Pipeline-Stufen sind
Register zur Datenpufferung vorhanden. Die einzelnen Pipeline-Stufen
werden durch FSM gesteuert und lokal mit den erforderlichen Funktionsparametern
versorgt.In
the document WO 00/25437 a RAKE receiver is described which a
Includes pipeline architecture with multiple pipeline stages, in which individual signal processing steps
or computing steps as on the assembly line
be processed. Between each pipeline stages are
Register for data buffering available. The individual pipeline stages
are controlled by FSM and locally with the required function parameters
provided.
Der
Erfindung liegt die Aufgabe zugrunde, einen Hardwareabschnitt in
einer Funkstation anzugeben, dessen Aufbau und Strukturierung die
oben angegebenen Auslegungskriterien möglichst gut erfüllen soll.
Insbesondere soll ein universeller und leicht erweiterbarer Hardwareabschnitt
mit hohem Leistungsoptimierungspotential bei variierenden Datenraten
geschaffen werden.Of the
Invention is based on the object, a hardware section in
specify a radio station whose structure and structuring the
above interpretation criteria should meet as well as possible.
In particular, a universal and easily expandable hardware section
with high performance optimization potential at varying data rates
be created.
Die
der Erfindung zugrunde liegende Aufgabenstellung wird durch die
Merkmale des Anspruchs 1 gelöst.The
The invention is based task by the
Characteristics of claim 1 solved.
Demnach
weist ein erfindungsgemäßer Hardwareabschnitt
zur Signalverarbeitung in einem Funkempfänger eine erste Pipeline-Struktur
auf, die eine Sequenz von mehreren alternierend angeordneten Funktionsblöcken und
getakteten ersten Registern zur Verarbeitung von Daten umfasst,
welche der ersten Pipeline-Struktur an einem Eingang derselben zugeführt werden.
Ferner umfasst der Hardwareabschnitt eine zweite Pipeline-Struktur, die eine
Sequenz von parallel zu den ersten Registern angeordneten und synchron
zu den ersten Registern getakteten zweiten Registern aufweist, welche
zur Weiterleitung von Funktionsparametern für die Funktionsblöcke dient.
Durch Verbindungen zwischen der zweiten Pipeline-Struktur und Funk tionsblöcken (jedoch
nicht notwendigerweise sämtlichen
Funktionsblöcken)
der ersten Pipeline-Struktur können
zumindest einige der Funktionsblöcke
jeweilige Funktionsparameter aus der zweiten Pipeline-Struktur beziehen.
Darüber
hinaus umfasst der Hardwareabschnitt ein Mittel zum Erzeugen von
Register-Taktsignalen für
die Paare korrespondierender erster und zweiter Register.Therefore
has an inventive hardware section
for signal processing in a radio receiver, a first pipeline structure
auf, which is a sequence of several alternately arranged function blocks and
comprises clocked first registers for processing data,
which are fed to the first pipeline structure at an input thereof.
Furthermore, the hardware section comprises a second pipeline structure comprising a
Sequence of parallel to the first registers arranged and synchronous
to the first registers clocked second registers, which
is used to forward function parameters for the function blocks.
By connections between the second pipeline structure and function blocks (however
not necessarily all
Function blocks)
the first pipeline structure
at least some of the functional blocks
Obtain respective function parameters from the second pipeline structure.
About that
In addition, the hardware portion includes means for generating
Register clock signals for
the pairs of corresponding first and second registers.
Die
erste Pipeline-Struktur ermöglicht
eine Datenflussorientierte Verarbeitung der eingangsseitig zugeführten Daten
in den einzelnen Funktionsblöcken.
Die Funktionsblöcke
(welche durch einzelne Hardware-Module realisiert sind) führen zumindest teilweise
eine durch Funktionsparameter gesteuerte Datenverarbeitung durch.
Die zweite Pipeline-Struktur dient der Bereitstellung dieser Funktionsparameter
für die
Funktionsblöcke
der ersten Pipeline-Struktur. Durch die synchrone Taktung der Register-Paare in
der ersten und zweiten Pipeline-Struktur wird erreicht, dass die
benötigten
Funktionsparameter "datenbegleitend", d.h. im gleichen
Takt wie die Daten, durch die zweite Pipeline-Struktur hindurch
geschoben werden. Dadurch wird ein einfaches und einheitliches Steuerungskonzept
für die
Datenprozessierung und die zeitrichtige Bereitstellung von Funktionsparametern
geschaffen.The
first pipeline structure allows
a data flow-oriented processing of the input-side supplied data
in the individual function blocks.
The functional blocks
(which are realized by individual hardware modules) lead at least partially
a data processing controlled by function parameters.
The second pipeline structure serves to provide these function parameters
for the
function blocks
the first pipeline structure. Due to the synchronous timing of the register pairs in
the first and second pipeline structure is achieved that the
required
Function parameter "data accompanying", i. in the same
Clock like the data, through the second pipeline structure
be pushed. This will be a simple and consistent control concept
for the
Data processing and the timely provision of functional parameters
created.
Ein
besonderer Vorteil dieses Hardwareabschnitts besteht darin, dass
er optimal auf die Verlustleistungs-Optimierung beim Auftreten variierender Datenraten
zugeschnitten ist. Tritt eine Erniedrigung der Datenrate auf, ermöglicht der
erfindungsgemäße Hardwareabschnitt,
die Register-Taktsignale mit einer geringeren mittleren Frequenz
als zuvor zu erzeugen. Dadurch wird erreicht, dass Schaltvorgänge nur
bei tatsächlich
benötigten
Datenmanipulationen stattfinden, wodurch der Leistungsverbrauch
minimiert wird.A particular advantage of this hardware In short, it is optimally tailored to power loss optimization when varying data rates occur. When the data rate decreases, the hardware portion of the present invention allows the register clock signals to be generated at a lower average frequency than before. This ensures that switching takes place only when data manipulation is actually required, which minimizes power consumption.
Vorzugsweise
umfasst der Hardwareabschnitt eine Sequenzer-Schaltung, die sowohl der ersten Pipeline-Struktur
als auch der zweiten Pipeline-Struktur vorgeschaltet ist, zur Bereit stellung
der Daten für
die erste Pipeline-Struktur und der Funktionsparameter für die zweite
Pipeline-Struktur. D.h., dass sowohl die erste Pipeline-Struktur
als auch die zweite Pipeline-Struktur nur an ihren jeweiligen Eingängen mit
den jeweiligen Größen (Daten-
bzw. Funktionsparametern) gespeist werden. Insbesondere werden die
Funktionsparameter nicht über
lokale FSM an den jeweiligen Funktionsblöcken bereitgestellt. Dadurch
wird die Modularität
und Design-Sicherheit des erfindungsgemäßen Hardwareabschnitts gefördert.Preferably
For example, the hardware section includes a sequencer circuit that is both the first pipeline structure
preceded by the second pipeline structure, ready for deployment
the data for
the first pipeline structure and the function parameter for the second
Pipeline structure. That is, both the first pipeline structure
as well as the second pipeline structure only at their respective inputs
the respective sizes (data
or functional parameters) are fed. In particular, the
Function parameter not over
provided local FSM at the respective function blocks. Thereby
becomes the modularity
and design security of the hardware portion of the invention promoted.
Eine
weitere vorteilhafte Weiterbildung des erfindungsgemäßen Hardwareabschnitts
kennzeichnet sich dadurch, dass das Mittel zum Erzeugen der Register-Taktsignale
ein Systemtakt-Erzeugungsmittel
zur Erzeugung eines Systemtaktes und eine dritte Pipeline-Struktur,
bestehend aus parallel zu den Register-Paaren angeordneten Stufen,
zum jeweiligen Abschalten der Taktversorgung der Register-Paare
in Abhängigkeit
von einem Steuersignal umfasst, das der dritten Pipeline-Struktur
an ihrem Eingang zugeleitet wird. In der dritten Pipeline-Struktur wird somit ebenfalls
datenbegleitend das am Eingang der dritten Pipeline-Struktur eingegebene
Steuersignal geführt,
welches für
jedes Registerstufen-Paar den Systemtakt lokal durchschaltet oder
ausblendet.A
further advantageous development of the hardware section according to the invention
characterized in that the means for generating the register clock signals
a system clock generating means
for generating a system clock and a third pipeline structure,
consisting of steps arranged parallel to the register pairs,
for respectively switching off the clock supply of the register pairs
dependent on
from a control signal, that of the third pipeline structure
is forwarded at its entrance. In the third pipeline structure will thus also
during data input at the input of the third pipeline structure
Control signal guided,
which for
each register stage pair turns on the system clock locally or
fades.
Eine
weitere vorteilhafte Ausgestaltung der Erfindung kennzeichnet sich
dadurch, dass die Sequenzer-Schaltung ausgelegt ist, die Pipeline-Strukturen
im Zeitmultiplex zu betreiben. In diesem Fall wird die (physikalisch
nur einmal in Hardware realisierte) erste Pipeline-Struktur zur
Verarbeitung mehrerer paralleler Datenströme eingesetzt, wobei der Verarbeitungstakt
entsprechend erhöht
werden muss. Die Taktabschaltung der Register-Paare erfolgt nun
einerseits zur Datenratenanpassung und andererseits zum Ausblenden
des jeweiligen Datenstroms, wenn er nicht benötigt wird.A
further advantageous embodiment of the invention is characterized
in that the sequencer circuit is designed, the pipeline structures
operate in time multiplex. In this case, the (physically
only once realized in hardware) first pipeline structure for
Processing multiple parallel data streams used, where the processing clock
increased accordingly
must become. The clock switching off of the register pairs now takes place
on the one hand for data rate adjustment and on the other hand for hiding
the respective data stream when it is not needed.
Der
erfindungsgemäße Hardwareabschnitt kann
praktisch in allen Datenfluss-orientierten, in Hardware prozessierten
Algo rithmen angewandt werden. Gemäß einem bevorzugten Anwendungsbeispiel
der Erfindung kann ein Scrambling- oder Channelization-Code-Generator
in einem Funkempfänger
einen erfindungsgemäßen Hardwareabschnitt umfassen.
Ein weiterer bevorzugter Anwendungsfall betrifft einen RAKE-Empfänger in
einem Funkempfänger,
welcher einen erfindungsgemäßen Hardwareabschnitt
umfasst.Of the
inventive hardware section can
Virtually all data flow-oriented, hardware-processed
Algo rithmen be applied. According to a preferred application example
The invention may be a scrambling or channelization code generator
in a radio receiver
comprise a hardware section according to the invention.
Another preferred application relates to a RAKE receiver in
a radio receiver,
which is a hardware section according to the invention
includes.
Vorteilhafte
Ausgestaltungen und Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben. advantageous
Embodiments and developments of the invention are specified in the subclaims.
Die
Erfindung wird nachfolgend anhand von Beispielen unter Bezugnahme
auf die Zeichnung näher
erläutert;
in dieser zeigt:The
Invention will now be described by way of example with reference to FIG
closer to the drawing
explains;
in this shows:
1 eine
schematische Darstellung eines erfindungsgemäßen Hardwareabschnitts in Hardware-Einheiten
zur Bearbeitung von Datenfluss-orientierten Algorithmen in einem
Funkempfänger; 1 a schematic representation of a hardware section according to the invention in hardware units for processing data flow-oriented algorithms in a radio receiver;
2 eine
Darstellung des zeitlichen Zusammenhangs der Bearbeitung von vier
unabhängigen
Datenströmen
im Zeitmultiplex-Betrieb von dem in 1 gezeigten
Hardwareabschnitt; 2 a representation of the temporal relationship of the processing of four independent data streams in the time division operation of the in 1 shown hardware section;
3 ein
Blockschaltbild eines RAKE-Empfängers
umfassend einen in 1 gezeigten Hardwareabschnitt; 3 a block diagram of a RAKE receiver comprising an in 1 shown hardware section;
4 eine
Darstellung der zeitlichen Abfolge der Berechnungsschritte der einzelnen
Hardware-Elemente des in 3 gezeigten Rake-Fingers; und 4 a representation of the temporal sequence of the calculation steps of the individual hardware elements of in 3 shown rake finger; and
5 ein
Schaltbild eines Scrambling-Code- und Channelization-Code-Generators
umfassend einen in 1 dargestellten Hardwareabschnitt. 5 a schematic diagram of a scrambling code and channelization code generator comprising an in 1 shown hardware section.
1 zeigt
das erfindungsgemäße Architektur-Konzept
für einen
Funkempfänger,
insbesondere Mobilfunkempfänger.
Eine erste Pipeline, die im Folgenden als Daten-Pipeline bezeichnet
wird, besteht aus einer sequentiellen Anordnung von Funktionsblöcken F1,
F2, F3, F4. Zwischen den Funktionsblöcken F1, F2, F3, F4 sind jeweils
Register R1, R2, R3 angeordnet. Der in Datenflussrichtung hinterste Funktionsblock
F4 ist von einem weiteren Register R4 gefolgt. 1 shows the inventive architecture concept for a radio receiver, in particular mobile radio receiver. A first pipeline, referred to below as a data pipeline, consists of a sequential arrangement of function blocks F1, F2, F3, F4. Between the function blocks F1, F2, F3, F4 each register R1, R2, R3 are arranged. The function block F4 which is behind in the data flow direction has been followed by another register R4.
Parallel
zu der Daten-Pipeline erstreckt sich eine zweite Pipeline, die im
Folgenden als Steuerungs-Pipeline bezeichnet wird. Die Steuerungs-Pipeline
besteht aus einer sequentiellen Anordnung von Registern R1', R2', R3', R4'.Parallel
to the data pipeline, a second pipeline extending in the
Hereafter referred to as a control pipeline. The control pipeline
consists of a sequential arrangement of registers R1 ', R2', R3 ', R4'.
Korrespondierende
Register R1, R1' bzw. R2,
R2' bzw. R3, R3' sowie R4, R4' der Daten-Pipeline
und der Steuerungs-Pipeline werden mit einem gemeinsamen Taktsignal
T1 bzw. T2 bzw. T3 bzw. T4 getaktet. Jedes Taktsignal T1, T2, T3,
T4 wird von einer Takt-Abschaltzelle C1, C2, C3, C4 bereitgestellt. Jede
Takt-Abschaltzelle C1, C2, C3, C4 erhält an einem ersten Eingang
einen Systemtakt clk und an einem zweiten Eingang ein Enable-Signal
ena1, ena2, ena3, ena4. Das Enable-Signal ena1, ena2, ena3, ena4
gibt an, ob ein Taktpuls des Systemtakts clk auf die Taktleitung
T1, T2, T3, T4 durchgeschaltet oder von der betreffenden Takt-Abschaltzelle
C1, C2, C3, C4 ausgeblendet werden soll. Dabei wird das für die eingangsseitige
Takt-Abschaltzelle
C1 vorgesehene Enable-Signal ena1 als Eingabegröße zur Verfügung gestellt, während die
weiteren Enable-Signale
ena2, ena3, ena4 für
die Takt-Abschaltzellen C2, C3, C4 jeweils an den Ausgängen einer
Kaskade bestehend aus Flip-Flops
DF1, DF2, DF3 abgegriffen werden. Ein viertes Flip-Flop DF4 erzeugt
ein Enable-Signal ena5 für
ein Rechenmodul (nicht dargestellt), das der in 1 dargestellten
Architektur nachgeschaltet ist. Die Dateneingänge D der Flip-Flops DF1, DF2,
DF3, DF4 werden von den Enable-Signalen ena1 (externe Eingabegröße), ena2
(erzeugt von DF1), ena3 (erzeugt von DF2) und ena4 (erzeugt von
DF3) gespeist.Corresponding registers R1, R1 'or R2, R2' or R3, R3 'and R4, R4' of the data pipe line and the control pipeline are clocked with a common clock signal T1 and T2 or T3 and T4. Each clock signal T1, T2, T3, T4 is provided by a clock shutdown cell C1, C2, C3, C4. Each clock turn-off cell C1, C2, C3, C4 receives a system clock clk at a first input and an enable signal ena1, ena2, ena3, ena4 at a second input. The enable signal ena1, ena2, ena3, ena4 indicates whether a clock pulse of the system clock clk is to be switched through to the clock line T1, T2, T3, T4 or hidden by the relevant clock shutdown cell C1, C2, C3, C4. In this case, provided for the input-side clock-Abschaltzelle C1 enable signal ena1 is provided as input size, while the other enable signals ena2, ena3, ena4 for the clock-off cells C2, C3, C4 respectively at the outputs of a cascade consisting of Flip-flops DF1, DF2, DF3 are tapped. A fourth flip-flop DF4 generates an enable signal ena5 for a computing module (not shown), which is the one in 1 shown downstream architecture. The data inputs D of the flip-flops DF1, DF2, DF3, DF4 are fed by the enable signals ena1 (external input size), ena2 (generated by DF1), ena3 (generated by DF2) and ena4 (generated by DF3).
Die
durch die Takt-Abschaltzellen C1, C2, C3 und C4 sowie die Flip-Flops
DF1, DF2, DF3, DF4 aufgebaute gemeinsame Taktversorgung für die Daten-Pipeline
und die Steuerungs-Pipeline ist selber als eine Pipeline-Struktur
realisiert. Sie gibt den Verarbeitungstakt in der Daten-Pipeline
und in der Steuerungs-Pipeline vor. Durch die Taktversorgungs-Pipeline
werden sämtliche
Schaltvorgänge
in der Daten-Pipeline und der Steuerungs-Pipeline gesteuert.The
by the clock turn-off cells C1, C2, C3 and C4 as well as the flip-flops
DF1, DF2, DF3, DF4 designed common data pipeline clock supply
and the control pipeline itself is a pipeline structure
realized. It returns the processing clock in the data pipeline
and in the control pipeline. Through the clock supply pipeline
be all
switching operations
controlled in the data pipeline and the control pipeline.
Sämtliche
Pipelines (Daten-Pipeline, Steuerungs-Pipeline und Taktversorgungs-Pipeline)
werden nur an ihren Eingängen
gespeist. In sämtlichen Pipelines
erfolgt der Informationsfluss (Daten, Funktionsparameter, Enable-Signale)
nur in einer Richtung.All
Pipelines (data pipeline, control pipeline and clock supply pipeline)
are only at their entrances
fed. In all pipelines
the information flow takes place (data, function parameters, enable signals)
only in one direction.
Die
Versorgung der drei Pipelines kann beispielsweise durch einen einzigen
Schaltkreis SQ (Sequenzer) vorgenommen werden.The
Supply of the three pipelines can, for example, by a single
Circuit SQ (sequencer) are made.
Die
Funktionsweise der in 1 dargestellten Architektur
ist wie folgt. Ausgehend von einer geforderten maximalen Datenrate
wird ein Signalverarbeitungsalgorithmus, den es in der in 1 dargestellten
Architektur abzuarbeiten gilt, in sequentielle Teile gegliedert,
die Subfunktionen des Gesamtalgorithmus sind. Diese Subfunktionen
werden in den aneinander gereihten Funktionsblöcken F1, F2, F3, F4 in Hardware
implementiert. Algorithmisch kann die in 1 dargestellte
Daten-Pipeline also durch einen Gesamtalgorithmus beschrieben werden,
welcher sich in einzelne Funktionen F1(·), F2(·), F3(·) und F4(·) aufgliedert, die sequentiell
abzuarbeiten sind, z.B. gemäß:
F1
(x,a,b) → Reg → F2 (F1,a,c) → Reg → F3 (F2,d) → Reg → F4 (F3,a,e)The functioning of in 1 The architecture shown is as follows. Starting from a required maximum data rate, a signal processing algorithm, which can be found in the in 1 architecture is processed, divided into sequential parts, which are sub-functions of the overall algorithm. These subfunctions are implemented in the sequenced function blocks F1, F2, F3, F4 in hardware. Algorithmically, the in 1 Thus, the data pipeline represented by an overall algorithm, which is broken down into individual functions F1 (·), F2 (·), F3 (·) and F4 (·), which are to be processed sequentially, for example according to:
F1 (x, a, b) → Reg → F2 (F1, a, c) → Reg → F3 (F2, d) → Reg → F4 (F3, a, e)
Dabei
bezeichnet die Variable x Eingangsdaten für die erste Funktion F1(·) und
a, b, c, d, e bezeichnen Parameter der Funktionen F1(·) , F2(·), F3(·), F4(·), die
in der 1 in Form von Funktionsparametern den jeweiligen
Funktionsblöcken
F1, F2, F3, F4 zur Verfügung
gestellt werden. Reg bezeichnet die Abspeicherung eines Funktionswertes
in einem Register, namentlich in den Registern R1, R2 und R3.In this case, the variable x denotes input data for the first function F1 (·) and a, b, c, d, e denote parameters of the functions F1 (·), F2 (·), F3 (·), F4 (·), which in of the 1 in the form of functional parameters to the respective function blocks F1, F2, F3, F4 are made available. Reg refers to the storage of a function value in a register, namely in the registers R1, R2 and R3.
Jede
Funktion F1(·),
F2(·),
F3(·),
F4(·)
wird von dem zugeordneten Funktionsblock F1, F2, F3, F4 innerhalb
eines Systemtaktes oder einer konstanten, für jeden der Funktionsblöcke F1,
F2, F3, F4 identischen Anzahl von Systemtakten ausgeführt. Nach
jedem Register R1, R2, R3, R4 steht das Funktionsergebnis der Subfunktion
mit jedem Verarbeitungstakt (ein Systemtakt oder eine konstante
Anzahl von Systemtakten) zur Verfügung. Die Anzahl der Register
(hier 4 Stück)
bestimmt die Latenz des ersten fertig berechneten Datenwerts am
Ausgang der Daten-Pipeline. Mit jedem Verarbeitungstakt wird am Ausgang
der Daten-Pipeline ein weiterer berechneter Datenwert ausgegeben.
Der maximale Datendurchsatz wird mit dem Systemtakt als Verarbeitungstakt, d.h.
ohne „clock-gating" durch die Takt-Abschaltzellen
C1, C2, C3, C4 erreicht.each
Function F1 (·),
F2 (·)
F3 (·)
F4 (·)
is from the associated function block F1, F2, F3, F4 within
a system clock or a constant, for each of the function blocks F1,
F2, F3, F4 executed identical number of system clocks. To
Each register R1, R2, R3, R4 is the function result of the subfunction
with each processing clock (a system clock or a constant
Number of system clocks). The number of registers
(here 4 pieces)
determines the latency of the first calculated data value on
Output of the data pipeline. With each processing cycle is at the output
the data pipeline outputs another calculated data value.
The maximum data throughput is calculated with the system clock as the processing clock, i.
without "clock gating" by the clock shutdown cells
C1, C2, C3, C4 reached.
In
der Steuerungs-Pipeline werden die erforderlichen Parameter a, b,
c, d, e geführt.
Jeder Funktionsblock F1, F2, F3, F4 verwendet diejenigen Parameter
aus der Steuerungs-Pipeline, die er benötigt. D.h., der Funktionsblock
F1 bezieht in dem oben angegebenen Beispiel die Parameter a, b,
der Funktionsblock F2 bezieht die Parameter a, c, der Funktionsblock
F3 bezieht den Parameter d und der Funktionsblock F4 bezieht die
Parameter a, e. Die Parameter werden nur bis zu demjenigen Funktionsblock F1,
F2, F3, F4 weitergeleitet, in dem sie für die Bearbeitung verwendet
werden. D.h., die Parameter b, c und d werden in dem oben angegebenen
Beispiel lediglich bis zu den Funktionsblöcke F1, F2 bzw. F3 weitergeleitet.
Aufgrund der Gleichtaktung der Register-Paare R1, R1' bzw. R2, R2' bzw. R3, R3' bzw. R4, R4' wird eine datenbegleitende
Weiterleitung der Funktionsparameter gewährleistet.In
the control pipeline become the required parameters a, b,
c, d, e led.
Each function block F1, F2, F3, F4 uses those parameters
from the control pipeline he needs. That is, the functional block
In the example given above, F1 refers to the parameters a, b,
the function block F2 relates the parameters a, c, the function block
F3 obtains the parameter d and the function block F4 obtains the
Parameters a, e. The parameters are only up to that function block F1,
F2, F3, F4, where it is used for processing
become. That is, the parameters b, c and d are in the above
Example only forwarded to the function blocks F1, F2 or F3.
Due to the common-timing of the register pairs R1, R1 'or R2, R2' or R3, R3 'or R4, R4' is a data-accompanying
Forwarding of the function parameters guaranteed.
Die 1 verdeutlicht
die Modularität
der erfindungsgemäßen Architektur.
Das zur Abarbeitung der Subfunktion F3(·) vorgesehene Modul ist in 1 durch
eine strichpunktierte Linie umrandet.The 1 illustrates the modularity of the architecture of the invention. The module provided for processing the subfunction F3 (·) is in 1 surrounded by a dash-dotted line.
Die
Anpassung an eine niedrigere Datenrate erfolgt über das in die Taktversorgungs-Pipeline
eingegebene Takt-Steuersignal, welches gleichzeitig das Enable-Signal
ena1 für
die erste Takt-Abschaltzelle C1 darstellt. Bei einer niedrigeren
Datenrate wird dieses Takt-Steuersignal nicht bei jedem Systemtakt,
sondern nur bei einer beliebigen konstanten Anzahl von Systemtakten
aktiviert. Das von der Schaltung SQ ausgegebene Takt-Steuersignal
wird in Form der Enable-Signale ena1, ena2, ena3 und ena4 durch
die Taktversorgungs-Pipeline geführt.
Da dieses Signal ena1, ena2, ena3, ena4 dieselbe Verzögerung pro
Pipeline-Stufe hat, wirkt es ebenfalls datenbegleitend. Durch die
Steuerung der Takt-Abschaltzellen C1, C2, C3, C4 durch die Enable-Signale ena1,
ena2, ena3, ena4 wird erreicht, dass Schaltvorgänge in sämtlichen Pipelines nur mit
der durch die benötigte
Datenrate vorgesehenen Frequenz stattfinden, wodurch der Leistungsverbrauch
in sämtlichen Pipelines
minimiert wird. Allein die Leitung 1 für den Systemtakt clk zur Ansteuerung
der Flip-Flops DF1, DF2, DF3, DF4 ist immer (auch bei reduzierter
Datenrate) aktiv.Adapting to a lower data rate is done via the input into the clock supply pipeline clock control signal, which simultaneously represents the enable signal ena1 for the first clock Abschaltzelle C1. At a lower data rate, this clock control signal is not activated at every system clock, but only at any constant number of system clocks. The clock control signal output by the circuit SQ is passed through the clock supply pipeline in the form of enable signals ena1, ena2, ena3 and ena4. Since this signal ena1, ena2, ena3, ena4 has the same delay per pipeline stage, it also has a data-accompanying effect. By controlling the clock-off cells C1, C2, C3, C4 by the enable signals ena1, ena2, ena3, ena4 it is achieved that switching operations in all pipelines take place only at the frequency provided by the required data rate, whereby the power consumption in all Pipelines is minimized. Alone the line 1 for the system clock clk to control the flip-flops DF1, DF2, DF3, DF4 is always active (even at a reduced data rate).
Die
in 1 dargestellte Architektur kann im Zeitmultiplex-Betrieb eingesetzt
werden. In diesem Fall wird die oben angegebene Gleichung auf mehrere
parallele Datenströme
(Datenkanäle)
angewandt. Der Zeitmultiplex-Betrieb erfordert eine entsprechende
Erhöhung
des Systemtakts im Vergleich zu dem Fall ohne Zeitmultiplex-Betrieb.
Der Vorteil besteht darin, dass trotz der Parallelverarbeitung von
mehreren Datenkanälen
die gesamte Architektur physikalisch nur einmal in Hardware realisiert
sein muss. Die lokale Taktabschaltung der Funktionsstufen erfolgt nun
einerseits zur Datenratenanpassung und andererseits zur Ausblendung
eines Datenkanals, wenn dieser nicht benötigt wird. Die Steuerung erfolgt
weiterhin nach dem oben genannten Prinzip, nämlich durch den Sequenzer-Schaltkreis SQ an
den Eingängen
der jeweiligen Pipelines.In the 1 shown architecture can be used in time-division multiplex operation. In this case, the equation given above is applied to several parallel data streams (data channels). Time-divisional operation requires a corresponding increase in the system clock compared to the case without time-division multiplexing. The advantage is that despite the parallel processing of multiple data channels, the entire architecture must be physically implemented only once in hardware. The local clock shutdown of the function levels is now on the one hand for data rate adjustment and on the other hand to hide a data channel when it is not needed. The control continues to take place according to the above-mentioned principle, namely by the sequencer circuit SQ at the inputs of the respective pipelines.
2 zeigt
die zeitliche Bearbeitung von vier unabhängigen Datenströmen (data
channel 1, data channel 2, data channel 3, data channel 4) im Zeitmultiplex-Betrieb.
Dargestellt ist, zu welchem Zeitpunkt t die Daten-Pipeline an dem
Ausgang der Sequenzer-Schaltung SQ, an dem Register R1, an dem Register
R2, an dem Register R3 und an dem Register R4 Daten aus welchem
Datenkanal bearbeitet. Der Multiplex-Betrieb erfolgt in der zeitlichen
Abfolge data channel 1 → data
channel 2 → data
channel 3 → data
channnel 4. Ein am Ausgang der Sequenzer-Schaltung SQ in die Daten-Pipeline eingegebenes
Datum des Datenkanals 4 wird jeweils mit einer Zeitverzögerung von
einem Systemtakt in jeder Stufe der Daten-Pipeline prozessiert und
liegt als Ergebniswert im Register R4 am Ausgang der Daten-Pipeline nach vier
Systemtakten vor. Die 2 veranschaulicht den Fall einer
maximalen Datenrate, bei welcher die Daten- und Funktionsparameter-Pipelines
in jedem Systemtakt (clock) getaktet werden. Bei einer Erniedrigung
der Datenrate ist die 2 weiterhin gültig, bezieht
sich jedoch nicht auf den Systemtakt sondern auf den von der Taktversorgungs-Pipeline bestimmten
kleineren mittleren Verarbeitungstakt. 2 shows the time processing of four independent data streams (data channel 1, data channel 2, data channel 3, data channel 4) in time-division multiplex operation. It is shown at which time t the data pipeline at the output of the sequencer circuit SQ, at the register R1, at the register R2, at the register R3 and at the register R4 processes data from which data channel. The multiplex operation takes place in the time sequence data channel 1 → data channel 2 → data channel 3 → data channel 4. A date of the data channel entered at the output of the sequencer circuit SQ into the data pipeline 4 is each processed with a time delay of one system clock in each stage of the data pipeline and is present as the result value in register R4 at the output of the data pipeline after four system clocks. The 2 illustrates the case of a maximum data rate at which the data and function parameter pipelines are clocked in each system clock. When the data rate is lowered, the 2 still valid, but does not refer to the system clock but to the smaller average processing clock determined by the clock supply pipeline.
Sofern
ein Datenkanal (data channel) nicht mehr benötigt wird, kann die Taktversorgung
in diesem Zeitraum vollständig
abgeschaltet werden. Die vollständige
Abschaltung wird dadurch bewirkt, dass in dem Zeitschlitz, der dem
betreffenden Kanalanfang am Ausgang der Schaltung SQ zugeordnet
ist, das Takt-Steuerungssignal (entspricht dem Enable-Signal ena1)
deaktiviert wird. Die Pipeline-Struktur wird dadurch anschaulich
gesprochen in 1 von links nach rechts (d.h.
Funktionsblock für
Funktionsblock) im Verarbeitungstakt abgeschaltet und nach Ablauf
der Zeitschlitzdauer für
den nicht benötigten Datenkanal
von links nach rechts (d.h. Funktionsblock für Funktionsblock) im Verarbeitungstakt
wieder eingeschaltet. Zu keinem Zeitpunkt wird irgendein nicht benötigtes Re gister
getaktet, d.h. es tritt kein einziger unnützer (energieverbrauchender) Schaltvorgang
auf.If a data channel is no longer needed, the clock supply can be completely switched off during this period. The complete shutdown is effected in that in the time slot, which is assigned to the relevant channel start at the output of the circuit SQ, the clock control signal (corresponding to the enable signal ena1) is deactivated. The pipeline structure is thus clearly spoken in 1 switched off from left to right (ie function block for function block) in the processing cycle and switched on again after the time slot duration for the unneeded data channel from left to right (ie function block for function block) in the processing cycle. At no time is any unneeded register clocked, ie, there is not a single useless (power consuming) switching operation.
3 zeigt
ein vereinfachtes Schaltbild eines Rake-Empfängers
einer Mobilstation. 3 shows a simplified circuit diagram of a rake receiver of a mobile station.
Die
Struktur umfasst einen digitalen Signalprozessor DSP, der über einen
Bus B mit Parameterspeichern SP1, SP2, SP3 in Verbindung steht,
einen Eingabespeicher RAKE_RAM mit einem Adressgenerator A_GEN,
einen Rake-Finger RF bestehend aus den Funktionsblöcken P/S-Wandler 2,
TVI (Time Variant Interpolator) 3, Entspreizstufe 4,
und Integrate&Dump 5 sowie
der parallel geführten
Steuerungs-Pipeline Ctrl Pipe 9, eine Steuerung CON mit einem
Chip-Zähler
CNT für
den Rake-Finger RF, einen Rake-Controller RAKE_CON, einen Code-Generator
CG für
Scrambling- und Channelization-Codes, und einen Early/Late-Korrelator EL. Die
Steuerungs-Pipeline Ctrl Pipe 9 umfasst hier auch die Taktversorgungs-Pipeline
gemäß 1 Die
Funktionsweise der angesprochenen Einheiten in einem Rake-Empfänger ist
weitgehend bekannt. Der Eingabespeicher RAKE_RAM nimmt Abtastwerte
entgegen, die von einem Analog-Digital-Umsetzer
(nicht dargestellt) durch Quantisieren eines analogen Empfangssignals über eine
Eingangs-Datenverbindung 10 erhalten werden. Bei dem analogen
Empfangssignal handelt es sich um das in den Zwischenfrequenzbereich
oder das Basisband heruntergemischte Antennensignal.The structure comprises a digital signal processor DSP, which communicates via a bus B with parameter memories SP1, SP2, SP3, an input memory RAKE_RAM with an address generator A_GEN, a rake finger RF consisting of the function blocks P / S converter 2 , TVI (Time Variant Interpolator) 3 , Despreading stage 4 , and Integrate & Dump 5 and the parallel control pipeline Ctrl Pipe 9 , a controller CON with a chip counter CNT for the rake finger RF, a rake controller RAKE_CON, a code generator CG for scrambling and channelization codes, and an early / late correlator EL. The control pipeline Ctrl Pipe 9 here also includes the clock supply pipeline according to 1 The functioning of the addressed units in a rake receiver is widely known. The input memory RAKE_RAM accepts samples received from an analog-to-digital converter (not shown) by quantizing an analog receive signal over an input data link 10 to be obtained. The analog received signal is the antenna signal mixed down into the intermediate frequency band or the baseband.
Die
Abtastwerte werden in dem Eingabespeicher RAKE_RAM in zeitlicher
Abfolge gespeichert. In dem hier beschriebenen Beispiel wird mit
einer 2-fachen Überabtastung
bezogen auf den Chip-Zeittakt gearbeitet, so dass in dem Eingabespeicher
RAKE_RAM Halb-Chips der Inphase-(I-)Komponente und der Quadratur-(Q-)Komponenten
abgelegt sind.The samples are stored in the input memory RAKE_RAM in chronological order. In the example described here, a 2-fold oversampling based on the chip clock is used, so that in the input memory RAKE_RAM half-chips of Inpha Se (I) component and the quadrature (Q) components are stored.
Die
Chip-Zeitdauer ist in CDMA-Systemen durch den jeweiligen Standard
definiert und beträgt im
hier betrachteten UMTS-Standard
0,26 μs.The
Chip time is in CDMA systems by the respective standard
defined and amounts to
here considered UMTS standard
0.26 μs.
Die
erfindungsgemäße Architektur
wird durch die Steuerung CON (entspricht der in 1 dargestellten
Sequenzer-Schaltung SQ) und dem Rake-Finger RF repräsentiert.
Die anderen Blöcke des
Schaltbildes sind für
die Funktionalität
der Schaltung erforderlich, aber nicht für das erfindungsgemäße Konzept
relevant. Die Arbeitsweise dieser im Stand der Technik auch bereits
bekannten Blöcke wird
daher nur kurz beschrieben:
Das Funktionsprinzip eines Rake-Empfängers beruht bekanntlich
darauf, Empfangssignalversionen, welche aufgrund der Mehrwege-Ausbreitung über unterschiedliche
Ausbreitungswege am Empfänger
empfangen wurden, getrennt (d.h. Ausbreitungsweg für Ausbreitungsweg)
auszuwerten und dann zeitrichtig zu überlagern. Grundvoraussetzung
für die
getrennte Auswertung der Abtastwerte ist eine Delay-Schätzung, mit
welcher die Verzögerungszeiten
(Delays) der verschiedenen Ausbreitungswege eines Signals gemessen
werden. Die Verzögerungszeiten
werden in dem hier dargestellten Rake-Empfänger zweistufig geschätzt und
ausgeglichen. Zunächst
erfolgt mittels einer nicht dargestellten Einheit eine Grob-Schätzung der
Mehrwegeverzögerung
im Abtastzeitraster, d.h. mit einer durch die Abtastrate (z.B. doppelte
Chiprate) begrenzten Genauigkeit. Diese Schätzung wird in ständiger Wiederholung
durchgeführt
und die entsprechenden Grob-Verzögerungszeiten
werden in dem Speicher SP1 abgelegt und der Steuerung CON über die
Datenverbindung 12 mitgeteilt.The inventive architecture is controlled by the controller CON (corresponds to the in 1 represented sequencer circuit SQ) and the rake finger RF represents. The other blocks of the schematic are required for the functionality of the circuit, but not relevant to the inventive concept. The mode of operation of these already known in the prior art blocks is therefore described only briefly:
The principle of operation of a rake receiver is known to be based on receiving signal versions, which were received due to the multipath propagation over different propagation paths at the receiver, separated (ie propagation path for propagation path) evaluated and then superimposed time correct. The basic prerequisite for the separate evaluation of the samples is a delay estimation with which the delay times (delays) of the different propagation paths of a signal are measured. The delay times are estimated and balanced in two stages in the rake receiver shown here. First, by means of a unit, not shown, a coarse estimation of the multipath delay in the sampling time frame, ie with an accuracy limited by the sampling rate (eg double the chip rate). This estimation is performed in continuous repetition and the corresponding coarse delay times are stored in the memory SP1 and the controller CON via the data link 12 communicated.
Ferner
legt der DSP in dem Speicher SP1 Konfigurationsparameter ab, welche
angeben, wie viele und welche Rake-Finger (im Zeitmultiplex-Betrieb)
aktiv sein sollen, und welcher Rake-Finger welchem Ausbreitungsweg zugeordnet
ist. Diese Konfigurationsparameter für den Rake-Finger RF werden von
der Steuerung CON ebenfalls über
die Datenverbindung 12 bezogen.Further, the DSP stores in the memory SP1 configuration parameters indicating how many and which rake fingers are to be active (in time multiplexed operation) and which rake finger is assigned to which propagation path. These configuration parameters for the rake finger RF are also provided by the controller CON via the data connection 12 based.
Eine
Aufgabe der Steuerung CON besteht darin, mittels der über die
Datenverbindung 12 erhaltenen Grob-Verzögerungszeiten ein Steuersignal
zu generieren, das über
die Datenverbindung 13 dem Adressgenerator A_GEN des Eingabespeichers RAKE_RAM
zugeleitet wird und angibt, in welchen Speicherbereichen diejenigen
Abtastwerte abgespeichert sind, die auf dasselbe ausgesendete Signal
zurückgehen,
jedoch aufgrund der Mehrwegeverzögerung
zu unterschiedlichen Zeitpunkten am Empfänger erhalten wurden (und deshalb
in dem Eingabespeicher RAKE_RAM auch in unterschiedlichen Speicherbereichen
abgelegt sind). Der Eingabespeicher RAKE_RAM stellt für jeden
(gemultiplexten) Rake-Finger RF also das Finger-spezifische Verzögerungsglied
zur (Grob-)Kompensation der Mehrwege-Verzögerung dar.One task of the controller CON is by means of the data connection 12 obtained coarse delay times to generate a control signal via the data connection 13 the address generator A_GEN of the input memory RAKE_RAM is supplied and indicates in which memory areas those samples are stored, which go back to the same emitted signal, but due to the multipath delay at different times were obtained at the receiver (and therefore are stored in the input memory RAKE_RAM in different memory areas ). The input memory RAKE_RAM thus represents for each (multiplexed) rake finger RF the finger-specific delay element for (coarse) compensation of the multipath delay.
Die
Fein-Kompensation der Mehrwege-Verzögerung erfolgt im Normalbetrieb
mittels des Early-/Late-Korrelators EL und dem Interpolator TVI 3. Die
hier noch zu kompensierenden Zeitfehler sind kleiner als die Abtastzeitdauer
und können
deshalb als Abtastzeitfehler betrachtet werden. Ein Abtastzeitfehler
tritt auf, weil der optimale Abtastzeitpunkt (der Zeitpunkt der
maximalen Energie jedes erhaltenen Chips) bei der Abtastung nicht
bekannt ist. Der Early-/Late-Korrelator EL ist über eine Datenverbindung 14 mit
der Daten-Pipeline des Rake-Fingers
RF verbunden und greift die in der Stufe P/S-Wandler 2 parallel-zu-seriell
umgesetzten Abtastwerte ab. Die Abtastwerte werden gegebenenfalls
nach einer Ratenanpassung in einer Stufe DPA (Data Pipe Adaption)
dem Early-/Late-Korrelator EL zugeleitet. Der Early-/Late-Korrelator
EL umfasst gemäß üblicher Bauweise
eine eingangsseitige E/L-Entspreizstufe 6, eine im Signalweg
hinter der E/L-Entspreizstufe 6 angeordnete E/L-Integrate&Dump-Einheit 7 und
eine E/L-Schätz-
und Steuerstufe B. Am Ausgang der E/L-Schätz- und Steuerstufe 8 wird
ein Abtastzeitfehler μ ausgegeben,
welcher über
eine Datenverbindung 15 dem Bus 8 und über eine
Datenverbindung 16 dem Interpolator TVI des Rake-Fingers
RF zugeleitet wird. Der Ab tastzeitfehler μ gibt den Zeitfehler der Abtastung
an, welcher kleiner als die Abtastzeitdauer ist. Anschaulich gesprochen
wird der Zeitfehler in dem Early-/Late-Korrelator EL dadurch ermittelt, dass
die Energien der frühen
Abtastwerte und der späten
Abtastwerte jeweils über
eine Symbolzeitdauer in der Einheit E/L-Integrate&Dump 7 summiert werden
(d.h. bei einem Spreizfaktor sf wird jeweils eine Summe aus sf Werten
gebildet) und in der E/L-Schätz-
und Steuerstufe 8 miteinander verglichen werden. Ist beispielsweise
die Energie in den frühen
Abtastwerten größer als
in den späten
Abtastwerten, wird ein Zeitfehler μ berechnet, welcher den optimalen
Abtastwert näher
an den frühen
Abtastwert als an den späten
Abtastwert legt.The fine compensation of the multipath delay takes place in normal operation by means of the early / late correlator EL and the interpolator TVI 3 , The time errors to be compensated here are smaller than the sampling time duration and can therefore be regarded as sampling time errors. A sampling time error occurs because the optimum sampling time (the maximum energy time of each chip received) is not known in the sampling. The early / late correlator EL is via a data connection 14 connected to the data pipeline of the rake finger RF and attacks the in-stage P / S converter 2 parallel-to-serial converted samples. The samples are optionally fed to the early / late correlator EL after rate matching in a DPA (Data Pipe Adaptation) stage. The early / late correlator EL comprises, according to the conventional design, an input E / L despreading stage 6 , one in the signal path behind the E / L despreading stage 6 arranged E / L integrates & dump unit 7 and an E / L estimation and control stage B. At the output of the E / L estimation and control stage 8th a sampling time error μ is output, which via a data connection 15 the bus 8th and via a data connection 16 is fed to the interpolator TVI of the rake finger RF. The sample time error μ indicates the time error of the sampling which is smaller than the sampling period. Illustratively speaking, the time error in the early / late correlator EL is determined by taking the energies of the early samples and the late samples each over a symbol period in the unit E / L Integrate & Dump 7 are summed (ie, a sum of sf values is formed for a spreading factor sf) and in the E / L estimation and control stage 8th compared with each other. For example, if the energy in the early samples is greater than in the late samples, a time error μ is calculated which places the optimal sample closer to the early sample than to the late sample.
Der
Interpolator TVI berechnet durch eine Interpolation der erhaltenen
Abtastwerte neue Abtastwerte an den durch den Abtastzeitfehler μ bestimmten
optimalen Abtastzeitpunkten.Of the
Interpolator TVI calculated by an interpolation of the obtained
Samples new samples at the one determined by the sampling time error μ
optimal sampling times.
Durch
den E/L-Korrelator EL und den Interpolator TVI 3 wird somit
der Abtastzeitfehler nachträglich
aus dem bereits quantisierten Signal heraus gerechnet. Hinter dem
Interpolator TVI 3 liegen die Abtastwerte jedes Ausbreitungsweges
eines über den
Kanal übertragenen
Signals in vollständiger
Synchronität
vor. (Sofern kein Zeitmultiplex-Betrieb vorgesehen ist und infolgedessen
mehrere physikalische Rake-Finger RF gemäß der in 3 dargestellten
Anordnung vorhanden sein müssen,
sind die Abtastwerte der einzelnen Ausbreitungswege hinter den Interpolatoren
TVI 3 verschiedener Rake-Finger tatsächlich völlig zeitsynchron; beim Zeitmultiplex-Betrieb,
bei welchem mit einem wesentlich höheren Verarbeitungstakt als
dem Chip-Zeittakt gearbeitet wird, bezieht sich die Synchronität der Abtastwerte
aus den unterschiedlichen Ausbreitungswegen auf den jeweiligen Zeitmultiplex-Zyklus.
D.h., werden z.B. innerhalb eines Zeitmultiplex-Zyklus der Reihe
nach 29 virtuelle Rake-Finger von dem einen physikalisch vorhandenen
Rake-Finger RF prozessiert, erfolgt die Prozessierung der virtuellen
Rake-Finger im Zeitmultiplex-Betrieb zwar zeitlich sequentiell,
betrifft jedoch jeweils zeitsynchrone Abtastwerte für jeden
virtuellen Rake-Finger).Through the E / L correlator EL and the interpolator TVI 3 Thus, the sampling time error is subsequently calculated from the already quantized signal out. Behind the interpolator TVI 3 For example, the samples of each propagation path of a signal transmitted over the channel are in complete synchronism. (Provided that no time-division multiplex operation is provided and as a result, a plurality of physical rake fingers RF according to the in 3 dargestell th Arrangement must be present, the samples of the individual propagation paths are behind the interpolators TVI 3 different rake fingers actually completely time-synchronized; in time-divisional mode, which operates on a much higher processing clock than the chip clock, the synchronicity of the samples from the different propagation paths relates to the respective time-division multiplex cycle. In other words, if, for example, 29 virtual rake fingers are processed in sequence within a time division multiplex cycle by the one physically present rake finger RF, the processing of the virtual rake fingers in time division multiplexing takes place sequentially but relates to time-synchronous sampling values for each every virtual rake finger).
Der
Code-Generator CG ist über
eine Datenverbindung 17 mit dem Speicher SP2 zur Speicherung
der Konfigurationsparameter für
den Scrambling-Code und den Channelization-Code verbunden. Wie im
Folgenden noch näher
erläutert,
werden diese beiden Spreizcodes getrennt erzeugt, miteinander multipliziert
und das Produkt aus Channelization- und Scrambling-Code in der Entspreizstufe 4 des
Rake-Fingers RF zeitrichtig mit den Abtastwerten multipliziert.The code generator CG is over a data connection 17 connected to the memory SP2 for storing the configuration parameters for the scrambling code and the channelization code. As explained in more detail below, these two spreading codes are generated separately, multiplied together and the product of channelization and scrambling code in the despreading 4 of the rake finger RF timely multiplied by the samples.
Der
durch die Entspreizstufe 4 realisierte Funktionsblock der
Daten-Pipeline 2, 3, 4, 5 nimmt somit
eine gewisse Sonderrolle ein. Er wird (wie alle Funktionsblöcke) von
der Steuerungs-Pipeline gesteuert und hat im Unterschied zu den
anderen Funktionsblöcken
einen zweiten Dateneingang, über
welchen er die Code-Bits von dem Code-Generator CG bezieht. Diese
Daten-Pipeline-Kreuzung wird mittels des Pufferspeichers BF realisiert.
Aus funktioneller Sicht muss der Code-Generator CG die erforderlichen
Code-Bits bei einem über 4 Chipzeitdauern
laufenden Zeitmultiplex-Zyklus 4 Chips im voraus berechnen.
Die Synchronisierung der Code-Generierung mit dem Rake-Finger-Prozessing
erfolgt über die
Datenverbindung 22 durch den Rake-Controller RAKE_CON.
Mit dem Pufferspeicher BF ist eine beliebige Zuordnung der erzeugten
Codes zu den virtuellen Rake-Fingern möglich. Diese Zuordnung wird durch
Funktionsparameter vorgegeben, die über die Datenverbindung 24 von
der Steuerungs-Pipeline 9 bezogen werden. Die jeweils benötigten Spreizcode-Bits
werden dann über
die Datenverbindung 25 der Entspreizstufe 4 zugeleitet.The through the despreading 4 realized functional block of data pipeline 2 . 3 . 4 . 5 thus takes on a certain special role. It is controlled (like all functional blocks) by the control pipeline and, unlike the other functional blocks, has a second data input over which it obtains the code bits from the code generator CG. This data pipeline crossing is realized by means of the buffer memory BF. From a functional point of view, the code generator CG must pass the required code bits over one 4 Chip time running time division multiplex cycle 4 Calculate chips in advance. The synchronization of the code generation with the rake finger processing takes place via the data connection 22 through the rake controller RAKE_CON. With the buffer memory BF, any assignment of the generated codes to the virtual rake fingers is possible. This assignment is specified by function parameters that are transmitted via the data connection 24 from the control pipeline 9 be obtained. The respectively required spreading code bits are then transmitted via the data connection 25 the despreading stage 4 fed.
Die
in der Steuerungs-Pipeline 9 übermittelten Parameter für die Steuerung
der Entspreizstufe 4 des Rake-Fingers RF werden über die
Datenverbindung 18 der E/L-Entspreizstufe 6 des
Early-/Late-Korrelators EL zugeleitet. Ferner erhält die E/L- Entspreizstufe 6 des
Early-/Late-Korrelators EL über
die Datenverbindung 23 den aktuellen Spreizcode.The in the control pipeline 9 transmitted parameters for the control of the despreading 4 of the rake finger RF are over the data connection 18 the E / L despreading stage 6 fed to the early / late correlator EL. Further, the E / L despreading stage is obtained 6 the early / late correlator EL via the data connection 23 the current spreading code.
Der
im Signalpfad hinterste Funktionsblock (Integrate&Dump-Einheit 5)
des Rake-Fingers RF wird ebenfalls über Funktionsparameter in der
Steuerungs-Pipeline 9 gesteuert. Über die Datenverbindung 19 werden
diese Funktionsparameter der E/L-Integrate&Dump-Einheit des
Early-/Late-Korrelators EL zugeleitet.The function block behind in the signal path (Integrate & Dump unit 5 ) of the rake finger RF is also via function parameters in the control pipeline 9 controlled. About the data connection 19 These function parameters are fed to the E / L Integrate & Dump unit of the early / late correlator EL.
Am
Ausgang der Integrate&Dump-Einheit 5 des
Rake-Fingers RF stehen die aus den einzelnen Chips gebildeten Symbole
der I- und Q-Signalkomponenten
bereit. Diese werden zur weiteren Verarbeitung über eine Datenverbindung 20 an
weitere Hardware-Module des Rake-Empfängers weitergereicht. Dabei
kann vorgesehen sein, dass diese weiteren Hardware-Module ebenfalls
nach dem erfindungsgemäßen Prinzip
arbeiten, d.h. mit einer Daten-Pipeline und einer Steuerungs-Pipeline
ausgestattet sind. Dieser Fall ist in 3 dargestellt.
Am Ausgang der Steuerungs-Pipeline 9 vorhandene Funktionsparameter
werden über
die Datenverbindung 21 einer Steuerung CON_PER für eine nachfolgende
Verarbeitungseinheit ("Peripherie") PER zugeleitet.
Die nachfolgende Verarbeitungseinheit PER ist ebenfalls in Form
der in 1 dargestellten erfindungsgemäßen Doppel-Pipeline-Struktur
aufgebaut. Die Steuerung CON_PER übernimmt die Aufgabe der Sequencer-Schaltung
SQ für
die Verarbeitungseinheit PER.At the output of the Integrate & Dump unit 5 of the rake finger RF, the symbols of the I and Q signal components formed from the individual chips are ready. These are for further processing via a data connection 20 passed on to other hardware modules of the Rake receiver. It can be provided that these other hardware modules also work according to the principle of the invention, ie are equipped with a data pipeline and a control pipeline. This case is in 3 shown. At the output of the control pipeline 9 existing function parameters are via the data connection 21 a controller CON_PER for a subsequent processing unit ("periphery") PER supplied. The subsequent processing unit PER is also in the form of in 1 constructed according to the invention double-pipeline structure. The controller CON_PER takes over the task of the sequencer circuit SQ for the processing unit PER.
Die
Steuerung CON_PER steht über
eine Datenverbindung 11 mit einem Speicher SP4 in Verbindung,
welcher seinerseits über
den Bus B mit dem DSP verbunden ist. Über die Datenverbindung 11 bezieht
die Steuerung CON_PER zusätzliche
Funktionsparameter, die in dem Speicher SP4 bereitgehalten und für die weitere
Datenverarbeitung in der Verarbeitungseinheit PER benötigt werden.
Die benötigten
zusätzlichen
Funktionsparameter, mit welchen die Steuerungs-Pipeline in der Verarbeitungseinheit PER
angereichert wird, können über Funktionsparameter von
der vorausgehenden Einheit (Rake-Finger RF) referenziert werden.
Wie später
noch näher
erläutert
wird, bezeichnet beispielsweise einer der über die Datenverbindung 21 übergebenen
Funktionsparameter die Fingernummer des virtuellen Rake-Fingers. Die Fingernummer
referenziert dann die benötigten,
diesem Finger zugeordneten Funktionsparameter für die Verarbeitungseinheit
PER.The controller CON_PER is connected via a data connection 11 with a memory SP4 in connection, which in turn is connected via the bus B to the DSP. About the data connection 11 the controller CON_PER obtains additional function parameters that are kept in the memory SP4 and needed for further data processing in the processing unit PER. The required additional function parameters with which the control pipeline is enriched in the processing unit PER can be referenced via function parameters from the preceding unit (rake-finger RF). As will be explained in more detail later, for example, one of the designated over the data connection 21 Function parameters passed the finger number of the virtual rake finger. The finger number then references the required function parameters assigned to this finger for the processing unit PER.
Die
Steuerung CON_PER wirkt somit als Entkopplungsstufe zwischen zwei
sequentiell angeordneten Doppel-Pipeline-Strukturen. Eine solche Entkopplungsstufe
hinter der Integrate&Dump-Einheit 5 ist
vorteilhaft, da im weiteren Signalweg die Datenverarbeitung im Symboltakt
(und nicht mehr im Chiptakt) erfolgt. Es wäre daher unter dem Gesichtspunkt
des Leistungsverbrauchs ungünstig,
die Steuerungsparameter in der Verarbeitungseinheit PER weiterhin
im Chiptakt zu prozessieren.The controller CON_PER thus acts as a decoupling stage between two sequentially arranged double-pipeline structures. Such a decoupling stage behind the Integrate & Dump unit 5 is advantageous because in the further signal path, the data processing takes place in the symbol clock (and no longer in the chip clock). It would therefore be unfavorable from the point of view of power consumption to continue to process the control parameters in the processing unit PER in chip clock.
4 zeigt
den zeitlichen Ablauf der Prozessierung der Abtastwerte in dem zeitgemultiplexten Rake-Finger
RF. Mit dem Bezugszeichen 50 ist der Systemtakt clk von
z.B. 124,8 MHz angegeben, welcher bei maximaler Datenrate gleichzeitig
den Verarbeitungstakt im Rake-Finger RF realisiert. Ein Zeitmultiplex-Zyklus
umfasst beispielsweise 4 Chips der Zeitdauer 0,26 μs. In diesem
Fall stehen in jedem Zeitmultiplex-Zyklus 130 Systemtakte für die Verarbeitung
von 4 Chips pro (virtuellem) Rake-Finger RF zur Verfügung. Im
vorliegenden Beispiel werden 29 virtuelle Rake-Finger im Zeitmultiplex-Betrieb eingesetzt.
Da 4 (Anzahl der Chips) * 29 (Anzahl der virtuellen Rake-Finger)
kleiner als 130 ist, können
diese 29 virtuellen Rake-Finger bei einem Systemtakt von 124,8 MHz "gleichzeitig" betrieben werden. 4 shows the timing of the processing of the samples in the time multiplexed rake finger RF. With the reference number 50 For example, the system clock clk of, for example, 124.8 MHz is specified, which simultaneously realizes the processing clock in the rake finger RF at maximum data rate. A time-division multiplex cycle comprises, for example, 4 chips of the duration 0.26 μs. In this case, there are system clocks available for processing 4 chips per (virtual) rake finger RF in each time division multiplex cycle 130. In the present example, 29 virtual rake fingers are used in time-division multiplex mode. Since 4 (number of chips) * 29 (number of virtual rake fingers) is smaller than 130, these 29 virtual rake fingers can be "simultaneously" operated at a system clock of 124.8 MHz.
Die
Bezugszeichen 60.1, 60.2 und 60.3 bezeichnen
die Steuersignale finger_enable_i, finger_nr_i bzw. RAKE_RAM_adr_o
für den
Eingabespeicher RAKE_RAM. während
der High-Zeitdauer des Steuersignals 60.1 wird der Eingabe-Speicher RAKE_RAM
gele sen. Das Steuersignal 60.2 gibt die Nummer des Fingers
finger_nr_i = 1, 2, ..., 29 an, für welchen die ausgelesenen
Abtastwerte bestimmt sind. Die zugehörigen Leseadressen sind durch
das Adress-Signal 60.3 veranschaulicht. Es wird deutlich, dass über 2 Systemtakte
zunächst
auf 2 Adressen (Adressen A11, A12)
für den
ersten virtuellen Rake-Finger finger_nr_i = 1 zugegriffen wird.
In den darauf folgenden 2 Systemtakten findet kein Speicherzugriff statt.
Anschließend
werden für
den zweiten virtuellen Rake-Finger finger_nr_i = 2 wiederum Halb-Chips unter
zwei Adressen A21, A22,
ausgelesen, usw.The reference numerals 60.1 . 60.2 and 60.3 denote the control signals finger_enable_i, finger_nr_i and RAKE_RAM_adr_o for the input memory RAKE_RAM. during the high-time period of the control signal 60.1 the input memory RAKE_RAM is read. The control signal 60.2 indicates the number of the finger finger_nr_i = 1, 2, ..., 29 for which the readout samples are determined. The associated read addresses are by the address signal 60.3 illustrated. It becomes clear that over 2 system clocks first 2 addresses (addresses A 11 , A 12 ) for the first virtual Rake finger finger_nr_i = 1 are accessed. There is no memory access in the following 2 system clocks. Subsequently, for the second virtual rake finger finger_nr_i = 2 again half-chips are read out at two addresses A 21 , A 22 , etc.
Eine
Besonderheit der hier verwendeten Architektur des Speichers RAKE_RAM
besteht darin, dass mit der ersten Adressierung (A11 bzw.
A21 bzw. A31) jeweils
8 Halb-Chips ausgelesen werden, während mit der zweiten Adressierung
A12 bzw. A22 bzw. A32 jeweils nur ein einziger Halb-Chip ausgelesen wird.
Die Aufgabe des P/S-Wandlers 2 besteht darin, diese Besonderheit
des Auslesevorgangs zu kompensieren. Der P/S-Wandler 2 wird
einen Systemtakt später
als der Speicher RAKE_PAM über
die Steuerungs-Pipeline 9 aktiviert. Dies ist durch das
Aktivierungssignal finger_enable_i 70.1 veranschaulicht. Der
P/S-Wandler 2 ist
während
seiner Aktivzeitdauer die ersten 4 Systemtakte für den ersten Rake-Finger finger_nr_i
= 1 tätig,
die zweiten 4 Systemtakte für den
zweiten Rake-Finger finger_nr_i = 2 tätig, usw., siehe das Steuersignal 70.2.A special feature of the architecture of the memory RAKE_RAM used here is that with the first addressing (A 11 or A 21 or A 31 ) each 8 half-chips are read, while with the second addressing A 12 and A 22 and A 32 only a single half-chip is read out. The task of the P / S converter 2 is to compensate for this peculiarity of the readout process. The P / S converter 2 will cycle one system clock later than the RAKE_PAM memory over the control pipeline 9 activated. This is due to the activation signal finger_enable_i 70.1 illustrated. The P / S converter 2 During its active period of time, the first 4 system clocks for the first rake finger finger_nr_i = 1 are active, the second 4 system clocks for the second rake finger finger_nr_i = 2 operate, etc., see the control signal 70.2 ,
Die
Signale 70.3 und 70.4 repräsentieren den Eingangs- bzw.
den Ausgangsdatenstrom der Abtastwerte des P/S-Wandlers 2.
D11 bezeichnet 8 Halb-Chips h0, h1, h2,
..., h7, welche bei der Adressierung A11 aus
dem Speicher RAKE_RAM für
den ersten Rake-Finger (finger_nr_i = 1) ausgelesen wurden. D12 bezeichnet den neunten Halb-Chip h8, welcher
für den
ersten Rake-Finger
durch die Adressierung A12 aus dem Speicher
RAKE_RAM ausgelesen wurde. Ausgangsseitig werden pro Systemtakt
mit einer Zeitverzögerung
von einem Systemtakt jeweils 3 Halb-Chips ausgegeben. Dabei bezeichnet H11 die 3 Halb-Chips h0, h1 , h2
, H12 bezeichnet die 3 Halb-Chips h2, h3,
h4, H13 bezeichnet die 3 Halb-Chips h4,
h5, h6 und H14 bezeichnet die 3 Halb-Chips
h6, h7, h8.The signals 70.3 and 70.4 represent the input and output data streams of the samples of the P / S converter 2 , D 11 designates 8 half chips h0, h1, h2,..., H7, which were read out from the memory RAKE_RAM for the first rake finger (finger_nr_i = 1) during the addressing A 11 . D 12 denotes the ninth half-chip h8 which has been read out of the memory RAKE_RAM for the first rake finger by the addressing A 12 . On the output side, 3 half-chips are output for each system clock with a time delay of one system clock. H 11 denotes the 3 Half-chips h0, h1, h2, H 12 denotes the 3 half-chips h2, h3, h4, H 13 denotes the 3 half-chips h4, h5, h6 and H 14 denotes the 3 half-chips h6, h7, h8 ,
Die
von dem P/S-Wandler 2 ausgegebenen Abtastwerte (Halb-Chips) werden in
dem Interpolator TVI 3 zur Berechnung interpolierter Datenwerte
umgerechnet. Aus 3 Halb-Chips H11 bzw.
H12 bzw. H13 bzw.
H14 wird mittels einer Interpolation unter
Berücksichtigung
des Abtastzeitfehlers μ jeweils
ein interpolierter Chip C11 bzw. C12 bzw. C13 bzw.
C14 berechnet. Der Interpolator TVI 3 erniedrigt
die Sample-Rate somit um den Faktor 2. Der auf der Basis
von 3 Halb-Chips H11 bzw. H12 bzw.
H13 bzw. H14 berechnete Chip-Wert
C11 bzw. C12 bzw.
C13 bzw. C14 wird
einen Systemtakt später
ausgegeben, siehe den Vergleich der eingangsseitig erhaltenen Abtastwerte 70.4 (jeweils
3 Halb-Chips) mit den ausgangsseitig berechneten Abtastwerten im
Ausgangsdatenstrom 70.5 (jeweils ein interpolierter Chip).The from the P / S converter 2 output samples (half-chips) are in the interpolator TVI 3 converted to calculate interpolated data values. Out 3 Half chips H 11 or H 12 or H 13 or H 14 is calculated by means of an interpolation taking into account the sampling time error μ respectively an interpolated chip C 11 or C 12 or C 13 and C 14 . The interpolator TVI 3 thus reduces the sample rate by the factor 2 , The on the basis of 3/2 chips H 11 and H 12 and H 13 and H 14 calculated chip value C 11 or C 12 or C 13 and C 14 is outputted one clock cycle later, see Comparative the samples obtained on the input side 70.4 (each 3 half-chips) with the output calculated values in the output data stream 70.5 (one interpolated chip each).
Die
obige Beschreibung gilt analog für
die weiteren Rake-Finger,
finger_nr_i = 2, 3, ..., mit Anfangs-Indizes 2, 3,The above description applies analogously to the other rake fingers, finger_nr_i = 2, 3,..., With initial indices 2 . 3 .
Die
Entspreizstufe 4 wird wiederum einen Systemtakt später als
der Interpolator TVI 3 aktiviert, siehe das Aktivierungssignal
finger_enable_i 80.1. In 4 Systemtakten werden jeweils
4 interpolierte Chips für
jeweils einen der Rake-Finger finger_nr_i = 1, 2, ..., 29 prozessiert,
siehe das Steuerungssignal 80.2. Die interpolierten Chips 70.5 bilden
die Eingabedaten für
die Entspreizstufe 4. Die entspreizten (d.h. mit einem
jeweiligen Spreizcode-Bit multiplizierten) Chips werden einen Systemtakt
verzögert
am Ausgang der Entspreizstufe 4 ausgegeben, wie dies durch
den Ausgabe-Datenstrom 80.3 veranschaulicht ist.The despreading stage 4 again becomes a system clock later than the TVI interpolator 3 activated, see the activation signal finger_enable_i 80.1 , In 4 system clocks, 4 interpolated chips are processed for each of the rake fingers finger_nr_i = 1, 2, ..., 29, see the control signal 80.2 , The interpolated chips 70.5 form the input data for the despreading stage 4 , The despread (ie multiplied by a respective spreading code bit) chips are delayed one system clock at the output of the despreading stage 4 output as indicated by the output data stream 80.3 is illustrated.
Die
Intergrate&Dump-Einheit 5 nimmt
eingangsseitig diesen Ausgabe-Datenstrom 80.3 der Entspreizstufe 4 entgegen
und integriert (bei sf = 4) jeweils 4 entspreizte Chip-Werte auf.The Intergrate & Dump unit 5 takes this output data stream on the input side 80.3 the despreading stage 4 opposite and integrated (at sf = 4) in each case 4 despread chip values.
Ein
Systemtakt nach dem Erhalt der letzten entspreizten Chips C14, C24 ... usw.
wird das auf diese Weise gewonnene Symbol S1,
S2, ... usw. ausgegeben, siehe den Ausgabe-Datenstrom 80.4 des
Funktionsblockes Integrate&Dump 5.
Die Datenrate ist dabei um den Spreizfaktor sf erniedrigt.A system clock after receiving the last despread chips C 14 , C 24 ..., etc., is output the thus obtained symbol S 1 , S 2 , ..., etc., see the output data stream 80.4 of the function block Integrate & Dump 5 , The data rate is reduced by the spreading factor sf.
Bei
der vorstehenden Beschreibung wurde eine Entspreizung mit einem
bestimmten ausgewählten
Code (Code4) betrachtet. Für
einen anderen Rake-Finger RF, der mit einem anderen Code (Code1) betrieben
wird, erfolgt die Prozessierung der Daten in der Entspreizstufe 4 und
der Integrate&Dump-Einheit 5 analog.In the above description, despreading with a certain selected code (Code4) was considered. For another rake finger RF, with a different code (Code1) is operated, the data is processed in the despreading step 4 and the Integrate & Dump unit 5 analogous.
Zusammenfassend
ist festzustellen, dass jeder virtuelle Rake-Finger RF 4 Systemtakte aktiv ist und über Enable-Signale 60.1, 70.1 bzw. 80.1 Funktionsblock-individuell
aktiviert bzw. deaktiviert werden kann. Die Enable-Signale 70.1, 80.1 entsprechen
dabei den Enable-Signalen ena1 und ena3, die Enable-Signale ena2
und ena4 sind in 4 nicht dargestellt.In summary, it should be noted that every virtual rake-finger RF 4 system clocks is active and has enable signals 60.1 . 70.1 respectively. 80.1 Function block-individually can be activated or deactivated. The enable signals 70.1 . 80.1 correspond to the enable signals ena1 and ena3, the enable signals ena2 and ena4 are in 4 not shown.
Die
Anzahl der aktiven Finger richtet sich nach der Anzahl der zu demodulierenden
Ausbreitungspfade. In 4 werden lediglich 3 Ausbreitungspfade
demoduliert. Die Datenrate der Daten-Pipeline wird einerseits über den
Spreizfaktor sf und andererseits über die Anzahl der aktiven
Rake-Finger eingestellt. Aufgrund des kleinsten Spreizfaktors (bei
UMTS FDD: sf = 4) wird am Ausgang der Daten-Pipeline ein neues Datum
(Symbol) in 4 Systemtakten (Zeitmultiplex-Schema) ausgegeben.The number of active fingers depends on the number of propagation paths to be demodulated. In 4 only 3 propagation paths are demodulated. The data rate of the data pipeline is set, on the one hand, via the spreading factor sf and, on the other hand, via the number of active rake fingers. Due to the smallest spreading factor (with UMTS FDD: sf = 4), a new date (symbol) is output at the output of the data pipeline in 4 system clocks (time-division multiplexing scheme).
Neben
dem Enable-Signal 70.1 (entspricht ena1) können unter
anderem die folgenden weiteren Funktionsparameter durch die Steuerungs-Pipeline 9 übertragen
werden:
- – Generator
ID: Eine Angabe desjenigen Einzel-Code-Generators ECG1, ..., ECG47
(siehe 5), welcher die aktuellen Spreizcode-Bits erzeugt
und gespeichert bereit hält;
dieser Funktionsparameter wird bis zur Entspreizstufe 4 geleitet und
steht außerdem über die
Datenverbindung 18, 24 dem Pufferspeicher BF zur
Verfügung.
- – Zeitfehler μ: Es kann
ein Betriebsmodus vorgesehen sein, in welchem der Zeitfehler μ temporär nicht
von dem Early-/Late-Korrelator EL sondern direkt von dem DSP bereitgestellt
wird. Bei diesem Betriebsmodus wird der Zeitfehler μ über die Steuerungs-Pipeline 9 dem
Interpolator TVI 3 zugeleitet.
Next to the enable signal 70.1 (equivalent to ena1) may include the following additional functional parameters through the control pipeline 9 be transmitted: - - Generator ID: An indication of the single code generator ECG1, ..., ECG47 (see 5 ) which generates and stores stored the current spreading code bits; this function parameter is up to the despreading stage 4 and is also on the data connection 18 . 24 the buffer BF available.
- Time error μ: An operating mode can be provided in which the time error μ is temporarily not provided by the early / late correlator EL but directly by the DSP. In this mode of operation, the time error μ is via the control pipeline 9 the interpolator TVI 3 fed.
Der
Funktionsblock P/S-Wandler 2 kann autonom sein, d.h. lediglich – wie jeder
Funktionsblock – durch
das zugehörige
Enable-Signal ena1 gemäß dem erfindungsgemäßen Prinzip
des „clock-gatings" angesteuert werden.
Ferner wird darauf hingewiesen, dass weitere Funktionsparameter,
wie beispielsweise Betriebsmodi-Signale und dergleichen, über die
Steuerungs-Pipeline 9 übertragen
werden können.The function block P / S converter 2 may be autonomous, ie merely - like any functional block - be driven by the associated enable signal ena1 according to the inventive principle of "clock-gating." It is further noted that other functional parameters, such as operating mode signals and the like, over the control pipeline 9 can be transmitted.
5 zeigt
ein zweites Anwendungsbeispiel der erfindungsgemäßen Hardware-Architektur in
einem Funkempfänger.
Dargestellt ist eine Code-Generatorsteuerung CON', welche die Quelle für zwei Daten-Pipelines
und eine gemeinsame Steuerungs-Pipeline ist, die zur Erzeugung eines
Scrambling-Codes und eines Channelization-Codes benötigt werden.
Die Daten-Pipeline
für den
Channelization-Code-Generator besteht aus drei Funktionsblöcken , nämlich einer
Multiplex-Taktschema-Anspassungstufe
("2 clock to 4 clock
scheure conversion") 100,
einem Channelization-Code-Generator 101 und einer Pipeline-Tiefenanpassungsstufe
("pipe depth adaption") 102. Für den Scrambling-Code-Generator besteht
die Daten-Pipeline aus den Funktionsblöcken "ROM address calculation" 103, "Scrambling Code ROM
X" 104 – "Scrambling Code ROM
Y" 105 und "Scrambling Generator
Seed value calculation" 106.
Die Steuerungs-Pipeline "ctrl
Pipe" ist mit dem Bezugszeichen 110 bezeichnet
und umfasst, wie in dem in 3 dargestellten
Beispiel, die Taktversorgungs-Pipeline. 5 shows a second application example of the hardware architecture according to the invention in a radio receiver. Shown is a code generator controller CON ', which is the source for two data pipelines and a common control pipeline needed to generate a scrambling code and a channelization code. The data pipeline for the channelization code generator consists of three functional blocks, namely a "2 clock to 4 clock scheure conversion" multiplex clock scheme matching stage. 100 , a channelization code generator 101 and a pipe depth adaptation stage 102 , For the scrambling code generator, the data pipeline consists of the function blocks "ROM address calculation" 103 , "Scrambling Code ROM X" 104 - "Scrambling Code ROM Y" 105 and "scrambling generator seed value calculation" 106. The control pipeline "ctrl pipe" is designated by the reference numeral 110 and includes, as in the in 3 illustrated example, the clock supply pipeline.
Die
beiden Daten-Pipelines 100, 101, 102 bzw. 103, 104/105, 106 sind
im Prinzip unabhängig voneinander,
werden aber von der gemeinsamen Steuerungs-Pipeline 110 angesteuert.
Die Funktionen in den aufeinander folgenden Funktionsblöcken 100, 101, 102 bzw. 103, 104/105, 106 werden
jeweils in einem Verarbeitungstakt (entspricht bei maximaler Rate
dem Systemtakt von 124,8 MHz) abgearbeitet, wodurch sich aufgrund
der Pipeline-Tiefe eine Latenz von 3 Verarbeitungstakten ergibt.The two data pipelines 100 . 101 . 102 respectively. 103 . 104 / 105 . 106 are basically independent of each other, but are from the common control pipeline 110 driven. The functions in the successive function blocks 100 . 101 . 102 respectively. 103 . 104 / 105 . 106 are each processed in a processing cycle (corresponds to the system clock of 124.8 MHz at maximum rate), resulting in a latency of 3 processing cycles due to the pipeline depth.
An
den in der erfindungsgemäßen Pipeline-Architektur
aufgebauten ersten Abschnitt CG1 des Code-Generators CG schließt sich
ein zweiter Abschnitt CG2 an. Der zweite Schaltungsabschnitt CG2
umfasst beispielsweise 47 Einzel-Code-Generatoren ECG1, ..., ECG47.
Jeder Einzel-Code-Generator ECG1, ..., ECG47 weist eingangsseitig
einen Scrambling-Code-Bit-Generator
SCBG auf. Dem Scrambling-Code-Bit-Generator SCBG werden die Ausgangssignale 111 der
Daten-Pipeline zur Erzeugung eines Scrambling-Codes und der Ausgang
der Steuerungs-Pipeline 110 zugeleitet.The first section CG1 of the code generator CG, which is constructed in the pipeline architecture according to the invention, is adjoined by a second section CG2. The second circuit section CG2 includes, for example, 47 single-code generators ECG1, ..., ECG47. Each individual code generator ECG1, ..., ECG47 has on the input side a scrambling code bit generator SCBG. The scrambling code bit generator SCBG becomes the output signals 111 the data pipeline for generating a scrambling code and the output of the control pipeline 110 fed.
Scrambling-Code-Bit-Generatoren
SCBG sind im Stand der Technik bekannt. Es handelt sich um rückgekoppelte
Schieberegister, welche eine feste, durch den Standard vorgegebene
Funktionsbeschaltung aufweisen. Der Scrambling-Code-Generator für den UMTS-Standard
ist in "3 GPP: Spreading and
Modulation (FDD)",
3rd Generation Partnership Project TS 25.213
V4.2.0 (2001-12), in Kap. 5.2.2, beschrieben. Demnach umfasst der
Scrambling-Code-Bit-Generator im UMTS-Standard zwei rückgekoppelte
Schieberegister, wobei die feste Funktionsbeschaltung des ersten
Schieberegisters durch das Polynom f1(x)
= 1 + x7 + x18 und
die Funktionsbeschaltung des zweiten Schieberegisters durch das
Polynom f2(x) = 1 + x5 +
x7 + x10 + x18 bestimmt sind. Zum Verständnis der
in 5 dargestellten Schaltung ist es lediglich erforderlich
zu wissen, dass ein bestimmter Scrambling-Code dadurch erzeugt wird,
dass beide Schieberegister des Scrambling-Code-Bit-Generators SCBG
mit einer zuvor in der Daten-Pipeline 103, 104/105, 106 berechne ten
bestimmten Anfangsbelegung initialisiert werden. Diese Anfangsbelegungen
werden als X Seed und Y Seed bezeichnet. Zu ihrer Erzeugung werden
die zugehörigen
Code-Nummern von der Code-Generator-Steuerung CON' ausgegeben, in dem
Funktionsblock 103 werden entsprechende Adressen zum Lesen
von charakteristischen Parametern für die X und Y Seeds berechnet,
die Parameter werden aus den Funktionsblöcken (ROM-Speichern) 104, 105 ausgelesen,
und aus den Parametern werden in dem Funktionsblock 106 die
entsprechenden X und Y Seeds berechnet und über die Datenverbindung 111 in
die beiden Schieberegister des jeweiligen Scrambling-Code-Bit-Generators
SCBG geschrieben. Damit ist der Scrambling-Code-Bit-Generator SCBG
initialisiert. Die Erzeugung der eigentlichen Code-Bits erfolgt durch
ein gemeinsames Takten der beiden rückgekoppelten Schieberegister
eines Scrambling-Code-Bit-Generators SCBG und eine Verknüpfung der Ausgänge der
beiden Schieberegister in der in dem oben angegebenen Standard vorgegebenen
Weise. Am Ausgang 112 des Scrambling-Code-Bit-Generators
SCBG werden die Bits des in dem jeweiligen Einzel-Code-Generator
ECG1, ..., ECG47 erzeugten Scrambling-Codes ausgegeben. Nicht benötigte Scrambling-Code-Bit-Generatoren
SCBG werden über
das am Ausgang der Steuerung-Pipeline 110 zur Verfügung stehende
Enable-Signal deaktiviert.Scrambling code bit generators SCBG are known in the art. These are feedback shift registers which have a fixed function circuit predetermined by the standard. The scrambling code generator for the UMTS standard in "3GPP: Spreading and Modulation (FDD)," 3rd Generation Partnership Project TS 25.213 V4.2.0 (2001-12), in Chap. 5.2.2, described. Accordingly, the UMTS standard scrambling code bit generator comprises two feedback shift registers, the fixed function circuit of the first shift register being defined by the polynomial f 1 (x) = 1 + x 7 + x 18 and the function shift of the second shift register by the polynomial f 2 (x) = 1 + x 5 + x 7 + x 10 + x 18 are determined. To understand the in 5 It is only necessary to know that a particular scrambling code is generated by having both shift registers of the scrambling code bit generator SCBG with one previously in the data pipeline 103 . 104 / 105 . 106 be calculated initialized certain initial occupancy. These initial assignments are referred to as X Seed and Y Seed. For their generation, the associated code numbers are output from the code generator controller CON ', in the function block 103 corresponding addresses for reading characteristic parameters for the X and Y seeds are calculated, the parameters are calculated from the function blocks (ROM memories) 104 . 105 read out, and from the parameters are in the function block 106 the corresponding X and Y seeds are calculated and sent via the data connection 111 written in the two shift registers of the respective scrambling code bit generator SCBG. This initializes the scrambling code bit generator SCBG. The actual code bits are generated by jointly clocking the two feedback shift registers of a scrambling code bit generator SCBG and linking the outputs of the two shift registers in the manner specified in the above-indicated standard. At the exit 112 of the scrambling code bit generator SCBG, the bits of the scrambling code generated in the respective single code generator ECG1, ..., ECG47 are output. Unnecessary scrambling code bit generators SCBG are beyond the output of the control pipeline 110 available enable signal disabled.
Die
einzelnen Bits des Channelization-Codes werden bereits in dem Funktionsblock 101 des ersten
Abschnitts CG1 des Code-Generators
CG erzeugt. Der Funktionsblock 101 umfasst dabei zwei Channelization-Code-Generatoren.
Jeder Channelization-Code-Generator
arbeitet im 4-Takt-Schema, d.h. er erzeugt immer genau 4 aufeinander
folgende Bits eines Channelization-Codes. Als Information benötigt jeder
Channelization-Code-Generator
die Nummer des Channelization-Codes, den Spreizfaktor des Channelization-Codes
und den zeitlichen Offset, d.h. eine Angabe, welche 4 Chips des
bis zu 256 Chips umfassenden Codes aktuell erzeugt werden sollen.
Diese Informationen liegen am Eingang der Multiplex-Taktschema-Anpassungsstufe 100 im 2-Takt-Schema
vor, da alle zwei Systemtakte einer der bei den Channelization-Code-Generatoren
im Funktionsblock 101 neu gestartet wird. Die Aufgabe der
Multiplex-Taktschema-Anpassungsstufe 100 besteht darin,
diese im 2-Takt-Schema erhaltenen Informationen (Channelization-Code-Nummer,
Spreizfaktor, zeitlicher Offset) jeweils über vier Systemtakte stabil
zu halten, damit sie für
die Ansteuerung der beiden Channelization-Code-Generatoren im Funktionsblock 101 geeignet
ist.The individual bits of the channelization code are already in the function block 101 of the first section CG1 of the code generator CG. The function block 101 includes two channelization code generators. Each channelization code generator operates on the 4-clock scheme, ie it always generates exactly 4 consecutive bits of a channelization code. As information, each channelization code generator requires the number of the channelization code, the spreading factor of the channelization code and the time offset, ie an indication of which 4 chips of the up to 256 chip code are currently to be generated. This information is at the input of the multiplex clock scheme adaptation stage 100 in the 2-clock scheme, since every two system clocks is one of the channelization code generators in the function block 101 is restarted. The task of the multiplex clock scheme adaptation stage 100 consists of keeping these information (channelization code number, spreading factor, time offset), obtained in the 2-cycle scheme, stable over four system clocks in each case so that they can be used to drive the two channelization code generators in the function block 101 suitable is.
Die
Pipeline-Tiefenanpassungsstufe 102 ist eine reine Verzögerungsstufe,
d.h. sie wird lediglich dafür
benötigt,
um die Datensynchronität
zwischen den beiden Daten-Pipelines 100, 101, 102 bzw. 103, 104/105, 106 sicherzustelle.
Die am Ausgang des Funktionsblockes 102 über eine
Datenverbindung 113 ausgegebenen Bits des Channelization-Codes werden
in dem Multiplizierer MUL mit den über die Datenverbindung 112 erhaltenen
Bits des erzeugten Scrambling-Codes multipliziert. Dabei werden
in jedem Einzel-Code-Generator ECG1, ..., ECG47 jeweils 4 komplexwertige
Bits (d.h. eigentlich 8 Bits) des erzeugten (komplexwertigen) Scrambling-Codes mit
den (aufgrund der Stufe 102 richtigen) 4 Bits des über die
Datenverbindung 113 erhaltenen (reellwertigen) Channelization-Codes
in dem Multiplizierer MUL multipliziert und als 4 Bit Sequenz des
gesuchten Spreizcodes an einen ersten Multiplexer MUX1 ausgegeben.
In einem Zeitmultiplex-Zyklus (130 Systemtakte einer Frequenz
von 128,4 MHz) werden sämtliche 47 Einzel-Code-Generatoren ECG1,
..., ECG47 der Reihe nach betrieben, wobei jeden zweiten Systemtakt
der nächste
Einzel-Code-Generator gestartet wird. Für jeden Einzel-Code-Generator ECG1,
..., ECG47 stehen dann vier Systemtakte für die Prozessierung zur Verfügung. Die
4 komplexwertigen Spreizcode-Bits werden mittels des ersten Multiplexers
MUX1 wechselweise in einen ersten 4-Bit-Speicherbereich BF1 (für komplexwertige
Bits) des Pufferspeichers BF und in einen zweiten 4-Bit-Speicherbereich
BF2 (für
komplexwertige Bits) des Pufferspeichers BF geschrieben. Gleichzeitig
erfolgt über
einen zweiten Multiplexer MUX2, der am Ausgang des Pufferspeichers
BF angeordnet ist, ein ebenfalls wechselweiser Zugriff auf denjenigen Spei cherbereich
BF1, BF2, der eingangsseitig aktuell nicht beschrieben wird. Die
komplementäre
Steuerung der beiden Multiplexer MUX1 und MUX2 erfolgt über eine
Steuerleitung 114, die von der Steuerung RAKE_CON Zeitmultiplex-Zyklus
für Zeitmultiplex-Zyklus
(d.h. alle 4 Chip-Takte) umgeschaltet wird.The pipeline depth adjustment level 102 is a pure delay stage, ie it is only needed to synchronize the data between the two data pipelines 100 . 101 . 102 respectively. 103 . 104 / 105 . 106 sicherzustelle. The at the output of the function block 102 via a data connection 113 output bits of the channelization code are in the multiplier MUL with the over the data connection 112 received bits of the generated scrambling code multiplied. In this case, in each individual code generator ECG1, ..., ECG47 each 4 complex-valued bits (ie actually 8 bits) of the generated (complex-valued) scrambling code with the (due to the stage 102 right) 4 bits of the data connection 113 obtained (real-valued) channelization codes multiplied in the multiplier MUL and output as a 4-bit sequence of the searched spreading code to a first multiplexer MUX1. In a time multiplex cycle ( 130 System clocks of a frequency of 128.4 MHz) are all 47 Single-code generators ECG1, ..., ECG47 operated in sequence, with every second system clock, the next single-code generator is started. For each individual code generator ECG1, ..., ECG47, four system clocks are available for processing. The 4 complex-value spreading-code bits are alternately written by means of the first multiplexer MUX1 into a first 4-bit memory area BF1 (for complex-valued bits) of the buffer memory BF and into a second 4-bit memory area BF2 (for complex-valued bits) of the buffer memory BF. At the same time via a second multiplexer MUX2, which is arranged at the output of the buffer BF, a likewise alternate access to those memory area BF1, BF2, the input side is currently not described. The complementary control of the two multiplexers MUX1 and MUX2 via a control line 114 which is toggled by the RAKE_CON Time Division Multiplexing Cycle (ie, every 4 chip clocks).
Ein
weiterer Multiplexer MUX3 nimmt sämtliche 47 komplexwertige
4-Bit-Code-Abschnitte, die von den Einzel-Code-Generatoren ECG1, ..., ECG47 im Multiplex-Betrieb
geliefert werden, entgegen und leitet in Abhängigkeit von dem über die
Datenverbindung 24 bezogenen Funktionsparameter den gerade benötigten Code-Abschnitt über die
Datenverbindung 25 der Entspreizstufe 4 im Rake-Finger
RF zu.Another multiplexer MUX3 takes all 47 Complex-valued 4-bit code sections, which are supplied by the single-code generators ECG1, ..., ECG47 in the multiplex mode, and depending on the over the data connection 24 related function parameters the currently required code section via the data connection 25 the despreading stage 4 in the rake finger RF too.
Die
Code-Generator-Steuerung CON',
welche die Sequenzer-Schaltung
SQ der in 5 dargestellten Architektur
bildet, steht mit einem ersten Parameterspeicher S_RAM, in welchem
Parameter für die
Erzeugung der Scrambling-Codes abgelegt sind, und einem zweiten
Parameterspeicher C_RAM, in welchem Parameter für die Erzeugung des Channelization-Codes
abgelegt sind, in Verbindung. Diese Parameter sind die Parameter
für die
Ansteuerung der jeweiligen Daten-Pipeline (d.h. mit den Parametern
aus dem Parameterspeicher C_RAM werden die Funktionsblöcke 100, 101 und 102 angesteuert,
während
mit den Parametern aus dem Parameterspeicher S_RAM die Funktionsblöcke 103, 104/105 und 106 angesteuert
werden). Die Parameterspeicher S_RAM und C_RAM entsprechen in der 3 dem Parameter-Speicher SP2.The code generator controller CON ', which the sequencer circuit SQ of in 5 illustrated architecture, is connected to a first parameter memory S_RAM, in which are stored parameters for the generation of the scrambling codes, and a second parameter memory C_RAM, in which parameters are stored for the generation of the channelization code. These parameters are the parameters for controlling the respective data pipeline (ie the parameters from the parameter memory C_RAM become the function blocks 100 . 101 and 102 controlled, while with the parameters from the Parameterpei S_RAM the function blocks 103 . 104 / 105 and 106 be controlled). The parameter memories S_RAM and C_RAM correspond in the 3 the parameter memory SP2.
Über die
gemeinsame Steuerungs-Pipeline 110 können beispielsweise die folgenden
Funktionsparameter übertragen
werden: Für
die Pipeline 103, 104/105, 106:
- – Scrambling-Code-Nummer
- – Scrambling-Code-Timing,
für die Pipeline 100, 101, 102: - – Channelization-Code-Nummer
- – Spreizfaktor
- – zeitlicher
Offset (Channelization-Code Timing).
About the common control pipeline 110 For example, the following function parameters can be transferred: For the pipeline 103 . 104 / 105 . 106 : - - Scrambling code number
- - Scrambling code timing,
for the pipeline 100 . 101 . 102 : - - Channelization code number
- - Spreading factor
- - Time offset (channelization code timing).
Ferner
umfasst die Steuerungs-Pipeline 110, wie in 1 dargestellt,
die Taktversorgung-Pipeline und erzeugt somit die Funktionsblock-spezifischen Enable-Signale
ena1, ena2, .... Da, wie bereits erwähnt, infolge des hier gewählten Zeitmultiplex-Betriebs
alle 2 Systemtakte ein anderer Channelization- und/oder Scrambling-Code
in dem Code-Generator CG erzeugt wird, können sich die jeweiligen Enable-Signale
ena1, ena2, ... bei diesem Ausführungsbeispiel
nur alle 2 Systemtakte ändern.
Wenn beispielsweise ein bestimmter Scrambing-Code Generator nicht konfiguriert zu
werden braucht, so wird der Funktionsblock 103 für die Adressberechnung
der Scrambling-Code-Initialisierungswerte (Seeds) während der
2 Systemtakte, die für
die Erzeugung dieses Scrambling-Codes in der Zeitmultiplex-Prozessierung
vorgesehen sind, deaktiviert.Further, the control pipeline includes 110 , as in 1 shown, the clock supply pipeline and thus generates the function block-specific enable signals ena1, ena2, .... Since, as already mentioned, due to the time-division multiplex operation selected here, every 2 system clocks, a different channelization and / or scrambling code is generated in the code generator CG, the respective enable signals ena1, ena2, ... change in this embodiment only every 2 system clocks. For example, if a particular scrambing code generator does not need to be configured, the function block becomes 103 for the address calculation of the scrambling code initialization values (seeds) during the 2 system clocks which are provided for the generation of this scrambling code in the time-division multiplexing processing.