-
Die Erfindung betrifft eine Einrichtung
und ein Verfahren zur bidirektionalen Übergabe von Daten zwischen
einer ersten und einer zweiten Recheneinheit.
-
In der digitalen Schaltungstechnik
wird zur Datenübergabe
zwischen zwei Rechen- oder Funktionseinheiten eine Schnittstelle
eingesetzt. Eine Schnittstelle umfaßt üblicherweise einen Mikroprozessor,
welcher als Adreß-Generator
dient und ein Programm zum Auslesen eines Speicherbereichs z.B.
der ersten Recheneinheit in einen Datenzwischenspeicher der Schnittstelle
und ein Programm zum Schreiben der zwischengespeicherten Daten in einen
Speicherbereich der zweiten Recheneinheit ausführt. Mit parallelen Schnittstellen
können
höhere Datenübertragungsraten
als mit seriellen Schnittstellen erreicht werden.
-
Wesentlich höhere Datenübertragungsgeschwindigkeiten
als mit einer herkömmlichen
Schnittstelle lassen sich mit einem DMA(Direct Memory Access-)Kanal
erreichen. Bei einem DMA-Kanal wird statt des Mikroprozessors ein
Zähler
als Adreß-Generator
eingesetzt. Zur Initialisierung wird das Adreßregister mit der Startadresse
des auszulesenden Speicherbereichs geladen und dem Byte-Zählregister
wird die Anzahl der zu übertragenden
Bytes mitgeteilt. Im Steuerregister des DMA-Kanals wird festgelegt,
ob die Adressen aufwärts
oder abwärts
gezählt
werden sollen und ob der Speicher, auf den zugegriffen wird, beschrieben
oder ausgelesen werden soll. Die Datenübertragung kann blockweise
durchgeführt
werden und erfolgt ohne Abarbeitung eines Programms auf der Basis
des Zähltakts.
Zur Übertragung
eines Datenworts von dem ersten Speicherbereich in den zweiten Speicherbereich
werden zwei Zähltakte
(ein Zähltakt
für das
Auslesen eines Datenworts aus dem ersten Spei cherbereich in den
Zwischenspeicher der Schnittstelle und ein Zähltakt für das Schreiben des zwischengespeicherten
Datenworts in den zweiten Speicherbereich) benötigt.
-
Wenn die eine Recheneinheit eine
bestimmte Rechenroutine erst starten kann, wenn von der anderen
Recheneinheit ein bestimmtes Zwischenergebnis vorliegt, und andersherum,
ist neben dem Gesichtspunkt der maximalen Datenübertragungsrate der Schnittstelle
auch der Gesichtspunkt einer möglichst
reibungslosen gegenseitigen Ablaufsteuerung der Recheneinheiten
zu beachten. Auch zu diesem Zweck wird üblicherweise ein Mikroprozessor
eingesetzt, der unter Abarbeitung eines geeigneten Programms die
Recheneinheiten aktiviert bzw. in einen Halte-Zustand versetzt.
-
In der deutschen Offenlegungsschrift
DE 34 24 587 A1 ist
eine Schaltungsanordnung zur Steuerung der bidirektionalen Datenübertragung
zwischen einer Recheneinheit und über Ein-/Ausgabeeinheiten angeschlossenen Übertragungsleitungen
beschrieben. Die Schaltungsanordnung umfaßt einen ersten Zwischenspeicher,
welcher einer Eingabeeinheit zugeordnet ist, sowie einen zweiten
Zwischenspeicher, über
welchen der Datentransport einer Ausgabeeinheit abgewickelt wird.
Jedem der Zwischenspeicher ist eine programmierbare Schwellenlogikeinheit
zugeordnet.
-
In der deutschen Patentschrift
DE 31 49678 C2 ist
eine Anordnung zur Zwischenspeicherung von zwischen zwei Funktionseinheiten
in beiden Richtungen zu übertragenden
Informationen in einem Pufferspeicher beschrieben. Der Pufferspeicher
wird von einer nach dem FIFO-Prinzip arbeitenden Warteschlangensteuerung
in der Weise verwaltet, daß bis zur
Belegung sämtlicher
Speichereinheiten des Pufferspeichers jeweils eine freie Speichereinheit
einer übergeordneten Übertragungssteuerung
für die
Entgegennahme von Aufträgen
zum Informationsaustausch zugriffsbereit zur Verfügung steht.
Dies wird durch ein spezielles Steuersignal angezeigt.
-
Der Erfindung liegt die Aufgabe zugrunde, eine
Einrichtung und ein Verfahren zur bidirektionalen Übergabe
von Daten zwischen einer ersten und einer zweiten Recheneinheit
anzugeben, die bzw. das einen schnellen bidirektionalen Datentransfer zwischen
und eine flexible und verzögerungsarme Ablaufkoordinierung
von zwei Recheneinheiten ermöglicht.
-
Zur Lösung der Aufgabenstellung sind
die Merkmale der unabhängigen
Ansprüche
vorgesehen.
-
Demnach ist zum einen durch die Verwendung
eines DMA-Kanals für
einen schnellstmöglichen
Datentransfer zwischen den beiden Recheneinheiten gesorgt. Zum anderen
ermöglichen
die beiden Steuerinformationsspeicher auf einfache Weise eine effiziente
und zeitsparende gegenseitige Prozeßsteuerung der beiden Recheneinheiten,
und zwar dadurch, daß die
Zugriffe beider Recheneinheiten auf die Eingabe- und Ausgabe-Speicher
in Abhängigkeit von
dem Inhalt der Eingabe- und Ausgabe-Steuerinformationsspeicher koordiniert
werden. Dabei umfaßt die
Steuerinformation für
den Eingabe-Speicher für jeden
Speicherblock des Eingabe-Speichers eine binäre Steuerinformation, und die
Steuerinformation für
den Ausgabe-Speicher umfaßt
für jeden Speicherblock
des Ausgabespeichers eine binäre Steuerinformation.
-
Dadurch, daß der Schreibzugriff der ersten Recheneinheit
und der Lesezugriff der zweiten Recheneinheit auf den Eingabe- Speicher in Abhängigkeit
von in dem Eingabe-Steuerinformationsspeicher abgelegter
Steuerinformation geregelt wird, läßt sich sowohl verhindern,
daß ein
Speicherblock des Eingabe-Speichers von der ersten Recheneinheit
mit neuen Daten überschrieben
wird, bevor er von der zweiten Recheneinheit ausgelesen wurde, als
auch, daß ein
Speicherblock des Eingabe-Speichers von der zweiten Recheneinheit
zum zweiten Mal ausgelesen wird, ohne daß zwischenzeitlich von der
ersten Recheneinheit stammende neue Daten in diesem Speicherblock
abgespeichert wurden. Durch die Eliminierung dieser beiden Fälle (Überschreiben
ungelesener Daten und wiederholtes Auslesen identischer Daten) wird
ein reibungsloser Ablauf des Datentransports von der ersten Recheneinheit
zu der zweiten Recheneinheit sichergestellt.
-
Die Prozeßsteuerung in entgegengesetzter Datentransferrichtung
erfolgt analog auf der Basis der in dem Ausgabe-Steuerinformationsspeicher
abgelegten Steuerinformation. Durch die erfindungsgemäße Maßnahme kann
verhindert werden, daß zur Ausgabe
in einem Speicherblock des Ausgabe-Speichers abgelegte Daten vor
der Weitergabe an die erste Recheneinheit ungelesen überschrieben
werden und daß die
erste Recheneinheit wiederholt Speicherblöcke des Ausgabe-Speichers liest,
bei denen sich der Dateninhalt nicht geändert hat.
-
Im Ergebnis wird eine schnelle und
datenverlustfreie Kommunikation zwischen den beiden Recheneinheiten
erreicht, selbst dann, wenn in einer oder beiden Recheneinheiten
unvorhersehbare Schwankungen der Datenverarbeitungsgeschwindigkeit
auftreten.
-
Vorzugsweise erfolgt die Steuerung
des Schreibzugriffs der ersten Recheneinheit derart, daß ein Speicherblock
des Eingabe-Speichers nur dann beschrieben werden kann, wenn sich
die binäre Steuerinformation
zu diesem Speicherblock in einem ersten Zustand (z.B. 0) befindet.
Nach dem Schreiben der Daten in den Speicherblock des Eingabe-Speichers
wird die zuge hörige
binäre
Steuerinformation in den zweiten Zustand (z.B. 1) gesetzt. Vorzugsweise
ist ein Lesezugriff der zweiten Recheneinheit auf einen Speicherblock
des Eingabe-Speichers nur erlaubt, sofern die binäre Steuerinformation
zu diesem Speicherblock in dem zweiten Zustand (1) vorliegt.
-
Die Schreib- und Lesezugriffe auf
den Ausgabe-Speicher können
durch Setzen bzw. Rücksetzen
der binären
Steuerinformationen in dem Ausgabe-Steuerinformationsspeicher in
analoger Weise geregelt werden.
-
Eine besonders bevorzugte Ausgestaltung der
Erfindung kennzeichnet sich dadurch, daß die erste Recheneinheit ein
digitaler Signalprozessor (DSP) und die zweite Recheneinheit eine
Hardware-Logikschaltung sind. Ein solcher Aufbau ermöglicht die
Auslagerung von zeitaufwendigen Berechnungsprozeduren aus dem programmgesteuerten
Datenverarbeitungsablauf des Signalprozessors in die vergleichsweise
schnellere Hardware-Logikschaltung. Dabei schafft die erfindungsgemäße Datenübergabeeinrichtung
die Voraussetzung für
ein reibungsloses Zusammenwirken dieser beiden Recheneinheiten.
-
Mit besonderem Vorteil kommt die
erfindungsgemäße Datenübergabeeinrichtung
in einem solcherart aufgebauten Turbo-Decodierer eines Mobilfunkempfängers zum
Einsatz. Erst durch die Ermöglichung
eines schnellen Datenaustausches sowie einer gegenseitigen Ablaufsteuerung
zwischen dem DSP und der Hardware-Logikschaltung wird eine Decodierung
von Turbo-Codes im Bereich des Mobilfunks realisierbar.
-
Die Erfindung wird nachfolgend anhand
eines Ausführungsbeispiels
und Varianten desselben unter Bezugnahme auf die Zeichnung erläutert; in dieser
zeigt:
-
1 ein
Blockschaltbild eines Ausführungsbeispiels
der erfindungsgemäßen Datenübergabeeinrichtung;
-
2A eine
schematische Darstellung eines in Speicherblöcke unterteilten Eingabe-Speichers und
eines zugehörigen
Steuerinformationsspeichers;
-
2B eine
schematische Darstellung eines in Speicherblöcke unterteilten Ausgabe-Speichers und
eines zugehörigen
Ausgabe-Steuerinformationsspeichers;
-
3 eine
schematische Blockschaltbild-Darstellung eines Turbo-Decodierers
für einen Mobilfunkempfänger, in
welchem zwei erfindungsgemäße Datenübergabeeinrichtungen
zwischen einem digitalen Signalprozessor und einer Hardware-Schaltung
eingesetzt sind;
-
4A eine
schematische Darstellung eines Beispiels für eine Speicherbelegung des
Eingabe-Steuerinformationsspeichers;
-
4B eine
schematische Darstellung eines Beispiels einer Speicherbelegung
des Ausgabe-Steuerinformationsspeichers;
-
4C eine
schematische Darstellung eines weiteren Beispiels einer Speicherbelegung
des Eingabe-Steuerinformationsspeichers zur Erläuterung von Speicherzugriffsabläufen; und
-
4D eine
schematische Darstellung eines weiteren Beispiels für eine Speicherbelegung
des Ausgabe-Informationsspeichers zur Erläuterung von Speicherzugriffsabläufen.
-
Nach 1 umfaßt eine
Einrichtung zur bidirektionalen Übergabe
von Daten zwischen einer ersten Recheneinheit RE1 und einer zweiten,
mit einem Eingabe-Speicher ES und einem Ausgabe-Speicher AS gekoppelten
Recheneinheit RE2 einen DMA-Kanal DMA_KAN und eine Schnittstelle
IF.
-
Die erste und die zweite Recheneinheit
RE1, RE2, der bidirektionale DMA-Kanal DMA_KAN und die Eingabe-
und Ausgabe-Speicher
ES, AS können in
bekannter Weise ausgeführt
sein. Beispielsweise kann es sich bei der ersten Recheneinheit RE1
um einen mit Firmware betriebenen DSP und bei der zweiten Recheneinheit
RE2 um eine schnelle, "festverdrahtete" Logikschaltung handeln.
-
Der DMA-Kanal DMA_KAN umfaßt eine Steuerung
ST, einen Datenwort-Zähler
CNT und ein Adreß-Register
A_REG. Die Eingabe- und
Ausgabe-Speicher ES und AS weisen jeweils einen Dateneingang DE
und einen Datenausgang DA auf und sind in üblicher Weise mit einer Adreß-Ansteuerung AA
ausgestattet.
-
Die Schnittstelle IF umfaßt einen
Adreß-Decoder
AD_ES für
den Eingabe-Speicher, einen Adreß-Decoder AD_AS für den Ausgabe-Speicher sowie Zwischenspeicher
ZS_E und ZS_A für
die beiden Datentransferrichtungen von RE1 zu RE2 bzw. von RE2 zu
RE1. Ferner umfaßt
die Schnittstelle IF einen dem Eingabe-Speicher ES zugeordneten
Eingabe-Steuerinformationsspeicher C_ES und einen dem Ausgabe-Speicher
AS zugeordneten Ausgabe-Steuerinformationsspeicher C_AS.
-
2A zeigt
in schematischer Weise den organisatorischen Aufbau des Eingabe-Speichers
ES und des zugehörigen
Eingabe-Steuerinformationsspeichers
C ES. Der Eingabe-Speicher ES ist beispielsweise in 10 Speicherblöcke sub_1,
sub_2, .., sub_10 unterteilt. Jeder Speicherblock umfaßt beispielsweise
16 Datenworte einer Wortbreite von 10 Bit.
-
Der Eingabe-Steuerinformationsspeicher C_ES
ist ein Register, das eine der Anzahl der Speicherblöcke in dem
Eingabe-Speicher ES entsprechende Anzahl von Binärinformation speichern kann.
In dem dargestellten Beispiel ist der Eingabe-Steuerinformationsspeicher
C_ES somit ein 10-Bit-Register. Die Bits des Registers sind in 2A mit dem Bezugszeichen e_si_1, e_si_2,
.., e_si_10 bezeichnet.
-
Der Aufbau des Ausgabe-Speichers
AS (siehe 2B) entspricht in bezug
auf die blockweise Partitionierung dem Aufbau des Eingabe-Speichers ES.
Demzufolge weist der Ausgabe-Speicher
AS ebenfalls beispielsweise 10 Speicherblöcke sub_1, sub_2, .., sub_10
auf.
-
Der Ausgabe-Steuerinformationsspeicher C_AS
ist im dargestellten Beispiel ein 10-Bit-Register der Bits e_so_1,
e_so_2, .., e_so_10.
-
Die Speicherblockgröße des Eingabe-Speichers
ES (z.B. 16 × 10
Bit) und die Speicherblockgröße des Ausgabe-Speichers
AS (z.B. 16 × 12
Bit) können
unterschiedlich sein. Darüber
hinaus können
die beiden Speicher auch eine unterschiedliche Anzahl an Speicherblöcken enthalten.
-
Die Funktionsweise der erfindungsgemäßen Datenübertragungseinrichtung
ist wie folgt:
Zunächst
wird die Datenübertragung
von der ersten Recheneinheit RE1 zu der zweiten Recheneinheit RE2
(Eingabeprozedur) beschrieben. Sobald eine Eingabe-Steuerleitung
EL von der ersten Recheneinheit RE1 aktiviert wird, kann der DMA-Kanal DMA_KAN über die
Datenleitung DL1, den Zwischenspeicher ZS_E und die Datenleitung
DL2 Daten in den Eingabe-Speicher ES schreiben. Hierzu wird der
DMA-Steuerung ST die Zählrichtung
und die Anfangsadresse im Eingabe-Speicher ES mitgeteilt. Der Zähler CNT
generiert dann die Zieladressen (in ES) für die abzuspeichernden Daten.
Da die Daten blockweise übertragen
werden, entsprechen die Zieladressen den Adressen eines oder mehrerer Speicherblöcke sub_1,
sub_2, .., sub_10 in dem Eingabe-Speicher ES.
-
Die Zieladressen der zu beschreibenden Speicherblöcke werden
dem Adreß-Decoder
AD ES über
eine Adressleitung AL1 mitgeteilt. Dieser steht mit dem Eingabe-Steuerinformationsspeicher
C ES in Verbindung.
-
Beispielsweise sollen die Speicherblöcke sub_5,
sub_6 und sub_7 mit neuen Daten überschrieben
werden. Der Adreß-Decoder
AD ES oder eine andere zu diesem Zweck in der Schnittstelle IF vorgesehene
Funktionseinheit überprüft, ob die
entsprechenden Bits e_si_5, e_si_6 und e_si_7 jeweils den Wert 0
oder 1 aufweisen. Weisen sämtliche
Bits den Wert 0 auf, werden die genannten Speicherblöcke mit
den neuen Daten überschrieben
und die diesen Speicherblöcken
zugeordneten Bits e_si_5, e_si_6 und e_si_7 im Eingabe-Steuerinformationsspeicher
C_ES auf den Wert 1 gesetzt. Andernfalls, d.h. sofern nur eines
der den zu beschreibenden Speicherblöcken zugeordneten Bits e_si_5
oder e_si_6 oder e_si_7 den Wert 1 aufweist, sind zwei Abläufe möglich: Entweder
wird die Datenübertragung
(unabhängig
von dem Wert des ersten Bits e_si_5) z.B. durch Deaktivierung einer DMA-Schreibaufforderung
REQ_W gar nicht erst aufgenommen, d.h. keiner der Speicherblöcke sub_5, sub_6
und sub_7 wird beschrieben. Die betrachteten Speicherblöcke sub_5,
sub_6, sub_7 werden dann erst zu einem späteren Zeitpunkt, wenn die genannte Bedingung
erfüllt
ist, überschrieben.
Die zweite, hier bevorzugte Möglichkeit
besteht darin, daß,
sofern das erste Bit e_si_5 den Wert 0 aufweist, der Schreibzugriff
zunächst
durch Beschreiben des Speicherblocks sub_5 begonnen und erst mit
Erreichen des ersten Speicherblockes, dessen Bit im Eingabe-Steuerinformationsspeicher
C_ES den Wert 1 aufweist, abgebrochen wird.
-
Das Auslesen des Eingabe-Speichers
ES durch die zweite Recheneinheit RE2 wird ebenfalls blockweise
durchgeführt.
Zu diesem Zweck überprüft die zweite
Recheneinheit RE2 mit in nicht näher
dargestellten Mitteln ebenfalls den Wert derjenigen Bits des Eingabe-Steuerinformationsspeichers
C_ES, die den auszulesenden Speicherblöcken zugeordnet sind. Sofern sämtliche
Bits den Wert 1 aufweisen, werden der oder die Speicherblöcke über den
Datenausgang DA des Eingabe-Speichers ES ausgelesen. Wenn nur ein
einem der auszulesenden Speicherblöcke zugeordnetes Bit des Eingabe-Steuerinformationsspeichers
C_ES den Wert 0 aufweist, wird die Leseprozedur entweder gar nicht
erst aufgenommen oder bei Erreichen des Speicherblocks, dessen Bit den
Wert 0 hat, abgebrochen. Da keine neuen Daten bereitstehen, wird
die zweite Recheneinheit RE2 danach automatisch oder z.B. über eine
Steuerleitung W01 in einen Wartezustand versetzt.
-
Wenn (nach einem erneuten Schreibzugriff des
DMA-Kanals DMA_KAN) ein erstes oder sämtliche den auszulesenden Speicherblöcken zugeordneten
Bits des Eingabe-Steuerinformationsspeichers C_ES den Wert 1 aufweisen,
wird der Wartezustand aufgehoben und die zugehörigen Speicherblöcke des
Eingabe-Speichers
ES werden von RE2 über den
Datenausgang DA ausgelesen.
-
Unmittelbar nach dem Auslesen eines
jeden Speicherblocks sub_1, sub_2, .., sub_10 des Eingabe-Speichers
ES wird das zugehörige
Bit e_si_1, e_si_2, .., e_si_10 des Eingabe-Steuerinformationsspeicher C ES auf
den Wert 0 zurückgesetzt.
Der zugehörige
Speicherblock sub_1, sub_2, .., sub_10 ist damit wieder für das Einschreiben
von Daten der ersten Recheneinheit RE1 freigegeben.
-
Die Datenübergabe in entgegengesetzter Richtung
erfolgt in analoger Weise. Z.B. über
eine Ausgabe-Steuerleitung AL teilt die erste Recheneinheit RE1
dem DMA-Kanal DMA_KAN eine Lese-Aufforderung
betreffend einen oder mehrere Speicherblöcke (z.B. sub_5, sub_6, sub_7)
des Ausgabe-Speichers AS mit. Der DMA-Kanal DMA_KAN erzeugt in der
bereits beschriebenen Weise die entsprechenden Datenwort- bzw. Speicherblock-Adressen.
Diese werden dem Adreß-Decoder
AD_AS für den
Ausgabe-Speicher AS über
eine Adressleitung AL2 mitgeteilt. Der Adreß-Decoder AD_AS oder eine andere
Einheit in der Schnittstelle IF über prüft, ob die zugehörigen Bits
des Ausgabe-Steuerinformationsspeichers C_AS (nämlich e_so_5, e_so_6, e_so_7, siehe 2B) den Wert 1 aufweisen. Ist dies der
Fall, wird der DMA-Kanal DMA_KAN z.B. über Aktivierung einer DMA-Leseaufforderung
REQ_R aktiviert und die Daten der genannten Speicherblöcke werden über eine
Datenleitung DL3, den Zwischenspeicher ZS_A und eine Datenleitung
DL4 ausgelesen. Nach Auslesen eines jeden Speicherblocks wird das
dem Speicherblock zugeordnete Bit in dem Ausgabe-Steuerinformationsspeicher
C_AS auf den Wert 0 zurückgesetzt.
-
Sofern eines der den auszulesenden Speicherblöcken sub_5,
sub_6, sub_7 zugeordneten Register-Bits e_so_5, e_so_6, e-so-7 den
Wert 0 aufweist, wird (gemäß einer
der beiden bereits in Hinblick auf die Eingabe-Prozedur beschriebenen
Möglichkeiten)
entweder nur dieser Speicherblock oder es werden sämtliche
von der Lese-Aufforderung betroffenen Speicherblöcke nicht ausgelesen. Die Recheneinheit
RE1 wird dann selbsttätig
oder z.B. über eine
Leitung W02 in einen Wartezustand versetzt, bis das entsprechende
Bit den Wert 1 aufweist, d.h. der zugehörige Speicherblock und damit
ggf. auch folgende Speicherblöcke
ausgelesen werden können.
-
Um das Überschreiben von noch nicht
ausgelesenen Speicherblöcken
sub_1, sub_2, .., sub_10 des Ausgabe-Speichers AS durch die zweite
Recheneinheit RE2 auszuschließen,
kann jeder Speicherblock des Ausgabe-Speichers AS nur dann beschrieben
werden, wenn das zugehörige
Bit des Ausgabe-Steuerinformationsspeichers C_AS den Wert 0 aufweist.
Sobald ein Speicherblock sub_1, sub_2, .., sub_10 des Ausgabe-Speichers
AS mit neuen Daten beschrieben ist, wird das zugehörige Bit des
Ausgabe-Steuerinformationsspeichers C_AS auf den Wert 1 gesetzt.
Der Speicherblock ist nun für
einen Auslese-Zugriff freigegeben.
-
3 zeigt
ein Anwendungsbeispiel einer erfindungsgemäßen Datenübergabeeinrichtung in einem
Turbo-Decodierer TDEC eines Mobilfunkempfängers. Der Turbo-Decodierer
TDEC hat die Aufgabe, ein senderseitig mit einem Turbo-Code fehlerschutzcodiertes
und über
einen gestörten
Kanal (Luftschnittstelle) übertragenes
Funksignal zu decodieren. Funktionselemente des Turbo-Decodierers TDEC,
die den in 1 dargestellten
Elementen entsprechen, sind teilweise mit den gleichen Bezugszeichen
wie in 1 versehen.
-
Die Erzeugung eines Turbo-Codes und
Algorithmen für
dessen Decodierung sind bekannt und beispielsweise in dem Buch "Analyse
und Entwurf digitaler Mobilfunksysteme" von P. Jung, Stuttgart, B.G.
Teubner, 1997, auf den Seiten 343 bis 368 beschrieben. Auf sie wird
im folgenden nicht näher
eingegangen. Generell kann jedoch gesagt werden, daß die Decodierung
eines Turbo-Codes im Vergleich zu einem herkömmlichen Code einen ausgesprochen hohen
Rechenaufwand erfordert und in einem Mobilfunkempfänger mit
begrenzten Energieresourcen aus diesem Grunde bisher nicht realisierbar
war.
-
Der in 3 dargestellte
Turbo-Decodierer TDEC umfaßt
einen MAP-(Maximum a-Posteriori-)Decodierer MAP_DEC, welcher ein
Symbolschätzer
ist, und mit dem Eingabe-Speicher ES und dem Ausgabe-Speicher AS
ausgerüstet
ist. Der MAP-Decodierer MAP_DEC entspricht der Recheneinheit RE2
in 1. Anstelle des MAP-Decodierers MAP_DEC
kann z.B. auch ein Viterbi-Decodierer vorgesehen sein.
-
Der MAP-Decodierer MAP_DEC ist über einen
bidirektionalen Bus DB mit der Schnittstelle IF verbunden. Die Schnittstelle
IF steht über
zwei programmierbare DMA-Kanäle
DMA_KAN1 und DMA_KAN2 mit einem DSP (entspricht der ersten Recheneinheit
RE1) in Datenaustauschverbindung. Jeder der beiden DMA-Kanäle DMA_KAN1
und DMA_KAN2 ist wie der in 1 dargestellte DMA-Kanal aufgebaut,
jedoch nur für
eine Datentransferrichtung ausgelegt. Der Datenaustausch zwischen
dem DSP und den DMA-Kanälen DMA_KAN1/2
wird über
eine interne DSP-Schnittstelle IFD und Datenleitungen DD bewerkstelligt. Adreß- und Steuer- Daten werden über ein
in 3 mit den Bezugszeichen
DA und SL gekennzeichnetes Bussystem zwischen den DMA-Kanälen DMA_KAN1/2
und dem DSP ausgetauscht. Der DSP hat ferner über die interne Schnittstelle
IFD Zugriff auf einen Speicher APR_RAM, in welchem temporär Daten
abgelegt werden, die über
die beiden DMA-Kanäle
DMA_KAN1/2 zwischen dem DSP und dem MAP-Decodierer MAP_DEC ausgetauscht
werden.
-
Die Arbeitsweise des Turbo-Decodierers TDEC
ist folgendermaßen.
Der DSP nimmt ein von dem Mobilfunkempfänger detektiertes und demoduliertes
Datensignal D in Form einer endlichen Folge aus Datensymbolen (z.B.
Bits) entgegen. Die Datensymbolfolge D enthält die zu decodierenden Nutzdaten
und Redundanzdaten, die bei der senderseitigen Turbo-Codierung den
Nutzdaten hinzugefügt
wurden. Die Aufgabe des Turbo-Decodierers TDEC besteht darin, die
senderseitig codierte Nutzinformation mit möglichst hoher Erfolgsquote
(d.h. geringer Bit-Fehlerrate) zu rekonstruieren. Zu diesem Zweck werden
im wesentlichen drei Datenverarbeitungsschritte benötigt, nämlich eine
statistische Aufbereitung der Daten (zur Berücksichtigung der erlittenen Funkübertragungs-Kanalstörungen),
eine Ver- und Entschachtelung der Daten und einen Berechnungsschritt
für die
(nährungsweise)
Schätzung
der Werte der einzelnen Datensymbole (Symbolschätzung).
-
Die genannten Schritte müssen mehrfach wiederholt
ausgeführt
werden, um zuverlässige Schätzwerte
für die
zu ermittelnden Datensymbole zu bestimmen. Die Verfeinerung der
Schätzwerte
erfolgt im Rahmen des Iterationsprozesses. Eine Iterationsschleife
umfaßt:
- – eine
erste Symbolschätzung
auf der Basis eines ersten Teils von Redundanzdaten (in MAP_DEC)
- – eine
Verschachtelung der erzeugten ersten Schätzdaten (im DSP)
- – eine
statistische Aufbereitung der verschachtelten Daten (im DSP)
- – eine
zweite Symbolschätzung
der statistisch aufbereiteten Daten mit einem zweiten Teil von Redundanzinformation
(in MAP_DEC)
- – eine
Entschachtelung der erzeugten zweiten Schätzdaten (in DSP), und
- – eine
statistische Aufbereitung der entschachtelten Daten (in DSP).
-
Die beim Durchlaufen einer Iterationsschleife erzeugten
entschachtelten zweiten Schätzdaten
werden bei dem folgenden Iterationsdurchlauf als Rückkoppel-Information
verwendet und beim ersten Symbolschätzschritt berücksichtigt.
-
Nach einer vorgegebenen Anzahl von
Iterationsdurchläufen
(beispielsweise 5) werden die zweiten Schätzdaten als Ausgabesignal U
von dem DSP ausgegeben. Das erläuterte
Iterationsverfahren ist bekannt und z.B. in dem genannten Buch von
P. Jung beschrieben.
-
Gemäß der vorhergehenden Beschreibung müssen bei
der hier vorgeschlagenen Aufteilung der Berechnungsschritte auf
den DSP und den MAP-Decodierer MAP_DEC innerhalb einer Iterationsschleife vier
Datenübergaben
zwischen dem DSP und dem MAP-Decodierer
MAP_DEC erfolgen. Der Datentransfer vom DSP zu dem MAP-Decodierer MAP_DEC
wird über
den ersten DMA-Kanal DMA_KAN1 abgewickelt und der Datentransfer
vom MAP-Decodierer MAP_DEC zu dem DSP wird über den zweiten DMA-Kanal DMA_KAN2
abgewickelt.
-
4A zeigt
eine mögliche
Belegung des Eingabe-Steuerinformationsspeichers C_ES bezüglich des
DMA-Kanals DMA_KAN1 während
der iterativen Turbo-Decodierung. Die den im Registerbereich Y liegenden
Steuerinformationsbits zugeordneten Speicherblöcke des Eingabe-Speichers ES
wurden von dem DMA-Kanal DMA_KAN1 mit neuen Daten (vom DSP) beschrieben
und zur Prozessierung für den
MAP-Decodierer MAP_DEC bereitgestellt. Die den in den Registerbereichen
X liegenden Steuerinformations- Bits
zugeordneten Speicherblöcke
des Eingabe-Speichers ES sind von dem MAP-Decodierer MAP_DEC entweder
bereits ausgelesen worden oder von dem DMA-Kanal DMA_KAN1 noch nicht
beschrieben worden.
-
4B zeigt
eine mögliche
Belegung des Ausgabe-Steuerinformationsspeichers C_AS im Zusammenhang
mit dem Datentransfer über
den DMA-Kanal DMA_KAN1. Die den Steuerinformationsbits in den Registerbereichen
Y zugeordneten Speicherblöcke
des Ausgabe-Speichers AS sind Ausgabewerte des MAP-Decodierers MAP_DEC,
die zum Abruf über
den DMA-Kanal DMA_KAN2 bereitstehen. Speicherblöcke des Ausgabe-Speichers AS, die
den Steuerinformationsbits im Registerbereich X zugeordnet sind,
wurden entweder bereits von dem DMA-Kanal DMA_KAN2 ausgelesen oder
wurden von dem MAP-Decodierer MAP_DEC noch nicht berechnet und in
den Ausgabe-Speicher AS geschrieben.
-
Die 4C und 4D zeigen weitere Beispiele für die Belegung
der Eingabe- und Ausgabe-Steuerinformationsspeicher für einen
der DMA-Kanäle DMA_KAN1/2
zur Erläuterung
von Speicherzugriffsabläufen
im Falle der Verwendung von zyklischen Eingabe- und Ausgabe-Speichern
ES, AS. Bei zyklischen Speichern erfolgen Lese- und Schreib-Zugriffe
immer in aufsteigender oder abfallender Speicherblock-Reihenfolge,
wobei in Richtung aufsteigender Speicherblöcke nach Erreichen des letzten
Speicherblocks sub_10 automatisch der Speicherblock sub_1 als nächster Speicherblock
gelesen bzw. beschrieben wird und in Richtung abfallender Speicherblöcke nach
Erreichen des ersten Speicherblocks sub_1 automatisch der Speicherblock
sub_10 als nächster
Speicherblock beschrieben bzw. ausgelesen wird. Die in dem Turbo-Decodierer
TDEC eingesetzten Eingabe- und Ausgabe-Speicher ES, AS sind vorzugsweise
solche zyklischen Speicher, da im Rahmen der Symbolschätzungen
Vorwärtsrekursions- und Rückwärtsrekursionsläufe über mehrere
benachbarte Datenblöcke
zur Berechnung von Vorwärts-
und Rückwärtsrekursions-Metrikwerten durchzuführen sind.
-
Gemäß 4C (Eingabe-Steuerinformationsspeicher
C_ES) sind die Speicherblöcke
sub_1 und sub_7 bis sub_10 zur Abarbeitung in dem MAP-Decodierer
MAP_DEC bereit. Dabei soll sich eine Vorwärtsrekursion stets nur über einen
einzigen, nämlich
den i-ten Speicherblock erstrecken, während sich eine Rückwärtsrekursion
ausgehend von dem i + 4-ten Speicherblock zurücklaufend bis auf den i-ten Speicherblock,
d.h. über
5 Speicherblöcke,
erstrecken soll.
-
Z.B. wird bei einer ersten Vorwärtsrekursion auf
den dem Registerbereich YV zugeordneten Speicherblockbereich (d.h.
den Speicherblock sub_7) zugegriffen. Da e_si_7 den Wert 1 hat,
ist der Zugriff erfolgreich. Bei der anschließenden Rückwärtsrekursion sind die Speicherblöcke sub_1, sub_10,
sub_9, sub_8 und sub_7 betroffen. Da sämtliche zugehörigen Steuerinformationsbits
den Wert 1 aufweisen, ist auch der Zugriff im Rahmen der Rückwärtsrekursion
erfolgreich.
-
Im nächsten Rekursionsschritt (nicht
dargestellt) soll bei der Vorwärtsrekursion
auf den Speicherblock sub_8 und bei der Rückwärtsrekursion auf die Speicherblöcke sub_2,
sub_1, sub_10, sub_9 und sub_8 des Eingabe-Speichers ES zugegriffen
werden. Während
der Zugriff bei der Vorwärtsrekursion
erfolgreich ist (da e_si_8 = 1), ist der Zugriff im Rahmen der Rückwärtsrekursion
nicht erfolgreich, da e_si_2 = 0.
-
Folglich kann diese Rückwärtsrekursion nicht
durchgeführt
werden und der MAP-Decodierer MAP_DEC wird solange in einen Wartezustand
versetzt, bis das Steuerinformationsbit e_si_2 auf den Wert 1 gesetzt
wird.
-
Bei dem vorstehend beschriebenen
Beispiel müssen
die einzelnen Speicherblöcke
sub_1, sub_2, .., sub_10 aufgrund der Durchführung von Vorwärts- und
Rückwärtsrekursionen
mehrfach auslesbar sein. Demzufolge werden die Eingabe-Steuerinformationsbits
e_si_1, e_si_2, .., e_si_10 nicht bereits nach dem erstmaligen Auslesen
des jeweiligen Speicherblocks, son dern erst nach Abarbeitung sämtlicher Vorwärts- und
Rückwärtsrekursionen
einer Metrikwerte-Berechnungsroutine auf den Wert 0 zurückgesetzt.
-
Das in 4D gezeigte
Beispiel einer Speicherbelegung des Ausgabe-Steuerinformationsspeichers
C_ES macht deutlich, daß der
Schreib-Zugriff des MAP-Decodierers auf den Ausgabe-Speicher AS nicht
mehr als 9 Speicherblöcke
Vorsprung vor dem Auslese-Prozeß durch
den DMA-Kanal DMA_KAN2 haben darf. Der Speicherblock sub_8 sei der
nächste
Speicherblock, der von dem DMA-Kanal DMA_KAN2 ausgelesen werden
soll (was wegen e_so_8 = 1 möglich
ist). Solange dies nicht geschehen ist, kann der MAP-Decodierer MAP_DEC
zwar noch den Speicherblock sub_7, nicht jedoch den (noch ungelesenen)
Speicherblock sub_8 mit neuen Daten beschreiben. Das heißt, daß der MAP-Decodierer MAP_DEC
nach dem Beschreiben des Speicherblocks sub_7 in den Wartezustand versetzt
wird.
-
Bei der in 4D dargestellten
Speicherbelegung können
die dem Registerbereich YV zugeordneten 9 Speicherblöcke sub_8
bis sub_10 sowie sub_1 bis sub_6 von dem DMA-Kanal DMA_KAN2 ausgelesen
werden.
-
In entsprechender Weise ist bezüglich des Eingabe-Speichers
ES sicherzustellen, daß das
Einschreiben von Daten über
den DMA-Kanal DMA_KAN1 mit einem Vorsprung von maximal 9 Speicherblöcken vor
dem Auslesen der Speicherblöcke
durch den MAP-Decodierer MAP_DEC erfolgt.