-
Querverweis auf verwandte Anmeldungen
-
Diese Anmeldung beansprucht die Priorität unter 35 USC § 119 (a) und 37 CFR § 1.55 der britischen Patentanmeldung Nr. 1211610.9, eingereicht am 29. Juni 2012, wobei der gesamte Inhalt davon hierin durch Bezugnahme aufgenommen ist.
-
Diese Anmeldung beansprucht auch die Priorität der US-Patentanmeldung Nr. 13/676,375, eingereicht am 14. November 2012, wobei der gesamte Inhalt davon hierin durch Bezugnahme aufgenommen ist.
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft ein Verfahren, eine Vorrichtung und ein Computerprogramm zum Lösen von Steuerbits von Schmetterlings- bzw. Butterfly-Netzenweken. Die beispielhaften und nicht einschränkenden Ausführungsformen dieser Erfindung beziehen sich allgemein auf drahtlose Kommunikationssysteme, Verfahren, Vorrichtungen und Computerprogramme, und spezifische Beispiele betreffen Steuerbits zum Schalten, oder Butterfly-Netzwerke, die die Auswahl der Speicherplätze für Turbodecodierungszwecke steuern.
-
Hintergrund
-
Eine Vorwärtsfehlerkorrektur ist bei modernen drahtlosen Kommunikationen ganz alltäglich. Decoder von Kanalcodes, wie sie beispielsweise in einem Modem oder einer anderen Hardwarekomponente vorhanden sein können, verwenden parallel verarbeitende Turbodecoder zum Dekodieren von Turbocodes von Hochgeschwindigkeitsbenutzerdaten, um Datenraten über 40 Mbps im 3 G-WCDMA (Wideband Code Division Multiple Access) Standard zu erreichen, was manchmal als HSDPA (High Speed Downlink Packet Access) bezeichnet wird. Viele andere Funkzugangstechnologien erfordern ebenso eine Turbo-Codierung von Benutzerdaten.
-
Solche hohen Benutzerdatenraten in HSDPA und andere Technologien erfordern, dass ein Turbo-Decoder Daten parallel verarbeitet, üblicherweise vier oder acht weichen Datenbits auf einmal. Um dies zu tun, muss man parallel Zugriffskonflikte lösen, weil ein Turbodecoder weiche Datenbits in zwei unterschiedlichen Reihenfolgen verarbeitet, nämlich eine aufsteigende Reihenfolge und eine verschachtelte Reihenfolge. Butterfly-Netzwerke sind eine gut bekannte Technologie zum Routen von weichen Datenbits zwischen einem Decoderkern und acht (oder vier) Speichern (Speicherplätzen). Eine Referenz des Standes der Technik durch die Erfinder der vorliegenden Erfindung, die Butterfly-Netzwerke für Turbodekodierungszwecke detailliert beschreibt, ist die
US-B-8051239 mit dem Titel Mehrfachzugriff für parallele Turbo-Decoder (Multiple Access for Parallel Turbo-Decoder).
-
Sehr allgemein ausgedrückt, offenbart die
US-B-8051239 eine Lösung einer gegebenen Mehrfachzugriffsfunktion, und die Steuerbits, welche die einzelnen Switches bzw. Schalter des Butterfly-Netzwerks steuern, können aus dieser Mehrfachzugriffsfunktion gelöst werden. Die ursprünglichen Speicherraumadressen werden zusammen mit einem gewünschten Parallelzugriffsschema verwendet. Seit Konzeption der Erfindung in der
US-B-8051239 hat der Erfinder festgestellt, dass diese Technik verbessert werden kann, wie im Folgenden ausgeführt ist.
-
Zusammenfassung
-
Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Verfahren bereitgestellt, das aufweist: direktes Lösen von Steuerbits für ein Butterfly-Netzwerk von Schaltern iterativ für jede aufeinanderfolgende funktionale Spalte der Schalter, um Datenwerte parallel gemäß einem Mehrfachzugriffsschema durch das Butterfly-Netzwerk von Schaltern zu einer Vielzahl von Speicherplätzen zu Routen, durch:
für jeden der Datenwerte, Erzeugen einer Adresse von einem der Speicherplätze mit einem angehängten Busindex, der in das Butterfly-Netzwerk von Schaltern führt, basierend auf dem Mehrfachzugriffsschema;
Erfassen eines Schalters in einer funktionalen Spalte des Butterfly-Netzwerks mit einem Zugriff mit linearer Ordnung mit einem ungelösten Steuerbit;
Bestimmen eines Busindex j und einer physikalischen Adresse k für den Schalter im Eingang des Butterfly-Netzwerks bei einem Zugriff mit linearer Ordnung;
Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks um Steuerbits zu einer nächsten funktionalen Spalte des Butterfly-Netzwerks von Schaltern bei einem Zugriff mit linearer Ordnung und bei einem Zugriff mit verschachtelter Ordnung durch Starten von dem Busindex j und der physikalischen Adresse k zu lösen; und
Bewegen, von dem Butterfly-Netzwerk von Schaltern in der linearen Ordnung zu dem Butterfly-Netzwerk von Schaltern in der verschachtelten Ordnung durch einen reduzierten Turbo-De-Interleaver und von dem Butterfly-Netzwerk von Schaltern in der verschachtelten Ordnung zu dem Butterfly-Netzwerk von Schaltern in der linearen Ordnung durch einen reduzierten Turbointerleaver, bis eine Sequenz von Steuerbits bezüglich des Startbusindex j und der physikalischen Startadresse k gelöst wurde.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Steuern eines Turbodecoders bereitgestellt, wobei die Vorrichtung ein Verarbeitungssystem aufweist, das konfiguriert ist, um die Vorrichtung zu bewirken, direkt Steuerbits für ein Butterfly-Netzwerk von Schaltern iterativ für jede aufeinanderfolgende funktionale Spalte der Schalter zu lösen, um Datenwerte parallel gemäß einem Mehrfachzugriffsschema durch das Butterfly-Netzwerk von Schaltern zu einer Vielzahl von Speicherplätzen zu routen, durch:
für jeden der Datenwerte, Erzeugen einer Adresse von einem der Speicherplätze mit einem angehängten Busindex, der in das Butterfly-Netzwerk von Schaltern führt, basierend auf dem Mehrfachzugriffsschema;
Erfassen eines Schalters in einer funktionalen Spalte des Butterfly-Netzwerks bei einem Zugriff mit linearer Ordnung mit einem ungelösten Steuerbit;
Bestimmen eines Busindex j und einer physikalischen Adresse k für den Schalter in einem Eingang des Butterfly-Netzwerks bei einem Zugriff mit linearer Ordnung;
Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks, um Steuerbits zu einer nächsten funktionalen Spalte des Butterfly-Netzwerks von Schaltern bei einem Zugriff mit linearer Ordnung und bei einem Zugriff mit verschachtelter Ordnung durch Starten von dem Busindex j und der physikalischen Adresse k zu lösen; und
Bewegen, von dem Butterfly-Netzwerk von Schaltern in der linearen Ordnung zu dem Butterfly-Netzwerk von Schaltern in der verschachtelten Ordnung durch einen reduzierten Turbo-De-Interleaver, und von dem Butterfly-Netzwerk von Schaltern in der verschachtelten Ordnung zu dem Butterfly-Netzwerk von Schaltern in der linearen Ordnung durch einen reduzierten Turbointerleaver, bis eine Sequenz von Steuerbits bezüglich des Startbusindex j und der physikalischen Startadresse k gelöst wurden.
-
Gemäß einem dritten Aspekt der vorliegenden Erfindung ist ein Computerprogramm bereitgestellt, das einen Satz von Instruktionen aufweist, der, wenn dieser an einem Turbodecoder ausgeführt wird, bewirkt, dass der Turbodecoder die Schritte ausführt: direktes Lösen von Steuerbits für ein Butterfly-Netzwerk von Schaltern iterativ für jede aufeinanderfolgende funktionale Spalte der Schalter, um Datenwerte parallel gemäß einem Mehrfachzugriffsschema durch das Butterfly-Netzwerk von Schaltern zu einer Vielzahl von Speicherplätzen zu routen, durch:
für jeden der Datenwerte, Erzeugen einer Adresse von einem der Speicherplätze mit einem angehängten Busindex, der in das Butterfly-Netzwerk von Schaltern führt, basierend auf dem Mehrfachzugriffsschema;
Erfassen eines Schalters in einer funktionalen Spalte des Butterfly-Netzwerks bei einem Zugriff mit linearer Ordnung mit einem ungelösten Steuerbit;
Bestimmen eines Busindex j und einer physikalischen Adresse k für den Schalter bei einem Eingang des Butterfly-Netzwerks bei einem Zugriff mit linearer Ordnung;
Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks, um Steuerbits zu einer nächsten funktionalen Spalte des Butterfly-Netzwerks von Schaltern bei einem Zugriff mit linearer Ordnung und bei einem Zugriff mit verschachtelter Ordnung durch Starten von dem Busindex j und der physikalischen Adresse k zu lösen; und
Bewegen, von dem Butterfly-Netzwerk von Schaltern in der linearen Ordnung zu dem Butterfly-Netzwerk von Schaltern in der verschachtelten Ordnung durch einen reduzierten Turbo-De-Interleaver, und von dem Butterfly-Netzwerk von Schaltern in der verschachtelten Ordnung zu dem Butterfly-Netzwerk von Schaltern in der linearen Ordnung durch einen reduzierten Turbointerleaver, bis eine Sequenz von Steuerbits bezüglich des Startbusindex j und der physikalischen Startadresse k gelöst wurden.
-
Das vorstehend beschriebene Verarbeitungssystem kann mindestens einen Prozessor und mindestens einen Speicher, der ein Computerprogramm speichert, umfassen, wobei die mindestens eine Speicher mit dem Computerprogramm bezüglich des wenigstens einen Prozessors konfiguriert ist, um die Vorrichtung zu betreiben, wie oben beschrieben.
-
Es kann ein computerlesbaren Speicher oder ein nicht-transitorisches computerlesbares Speichermedium, die zugreifbar ein Computerprogramm wie oben beschrieben speichern, vorgesehen sein.
-
In einer weiteren beispielhaften Ausführungsform der Erfindung gibt es eine Vorrichtung, umfassend eine Berechnungseinrichtung und eine Lösungseinrichtung. Die Berechnungseinrichtung dient zum Anhängen von Businformationen an Speicheradressen, die identifizieren, welcher aus einer Vielzahl von Bussen die entsprechenden Speicheradressen trägt. Die Lösungseinrichtung dient zum iterativen Zugriff auf Speicherplätze des mindestens einen Speichers unter Verwendung der Speicheradressen mit den angehängten Businformationen, wobei einzelne der Speicheradressen eindeutig einen der Speicherplätze identifizieren. Zusammen fungieren die Berechnungseinrichtung und die Lösungseinrichtung, um direkt Steuerbits für ein Butterfly-Netzwerk von Schaltern iterativ für jede aufeinanderfolgende Funktionssäule der Schalter zu lösen, so dass Datenwerte parallel entsprechend einem Mehrfachzugriffsschema durch das Butterfly-Netzwerk von Schaltern zu einer Vielzahl von Speicherplätzen auf die vorstehend genannte Weise, die in den Ausführungen des ersten bis dritten Ausführungsbeispiels näher erläutert ist, geroutet werden. In einer Implementierung der vierten Ausführungsform ist die Berechnungseinrichtung und die Lösungseinrichtung ein oder mehrere Prozessoren, wie sie auf einem Computerchip oder Chips ausgestaltet sein können, und einen Programmcode ausführen.
-
In den nachstehenden spezifischen Beispielen, die eine Verwendung dieser Lehren für eine Turbocodierung zeigen, sind erste Steuerbits von einzelnen Schaltern eines Butterfly-Netzwerks unter Verwendung der Speicheradressen mit den angehängten Businformationen gelöst, und sobald diese Steuerbits eingesetzt werden, um die Schalter im Butterfly-Netzwerk einzustellen, kann auf die Speicherplätze zugegriffen werden.
-
Weitere Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung bevorzugter Ausführungsformen der Erfindung ersichtlich, die lediglich beispielhaft sind, und wobei Bezug auf die beigefügten Zeichnungen genommen wird.
-
Kurze Beschreibung der Zeichnungen
-
Die 1A und 1B zeigen schematisch Details eines einzelnen Schalters eines Butterfly-Netzwerks, wobei der Steuerbit auf verschiedene Werte eingestellt ist;
-
2A zeigt schematisch ein Beispiel eines Butterfly-Netzwerks von zwölf Schaltern, die angeordnet sind, um einen 8-Tupel-Parallelzugriff von acht Speicherplätzen für eine Turbodecodierung gemäß einer beispielhaften Ausführungsform dieser Lehren ermöglichen;
-
2B ist ähnlich 2A, zeigt jedoch ein Butterfly-Netzwerk von nur vier Schaltern, und ist relevant für spezifischere Ausführungsbeispiele dieser Lehre, die hierin dargestellt sind;
-
3A zeigt ein schematisches Verfahrensdiagramm, das ein Beispiel der Übertragung eines gegebenen Turboverschachtlers bzw. -interleavers zu einem reduzierten Interleaver zeigt, sowie einen reduzierten Interleaver auf eine allgemeinen Weise, der ein durch beispielhafte Ausführungsformen dieser Lehren gelöstes Problem darstellt;
-
3B zeigt ein schematisches Verfahrensdiagramm, das einen breiten Überblick darüber veranschaulicht, wie Beispiele von Ausführungsbeispielen dieser Lehren das in 3A dargestellte allgemeine Problem lösen;
-
3C zeigt ein schematisches Verfahrensdiagramm, das ein Beispiel darüber veranschaulicht, wie ein reduzierter Interleaver, wie in den 3A–B gezeigt ist, auf physikalische Adressen abgebildet wird, dass eine physikalische Adresseinheit (z. B. ein physikalischer Turbointerleaver) eines Turbodecoders, wie jener in 2A, diese gemäß diesen Lehren verwenden kann;
-
Die 4 bis 6 zeigen schematisch zwei, vier beziehungsweise acht Knoten zwischen einem reduzierten Turbointerleaver und dessen Inversen, und veranschaulichen spezifische Beispiele dafür, wie Steuerknoten für ein Butterfly-Netzwerk gemäß Ausführungsbeispielen dieser Lehren gelöst werden;
-
Die 7 bis 9 zeigen schematisch ein Beispiel eines Butterfly-Netzwerkes, das Steuerbits entsprechend den zwei, vier und acht Knoten, die in den jeweiligen 4–6 gezeigt sind, gemäß Ausführungsbeispielen dieser Lehren gelöst hat;
-
10 zeigt eine Logikablaufdarstellung, die die Perspektive einer Funkvorrichtung veranschaulicht, wie beispielsweise ein Benutzerendgerät oder eine Basisstation, die Operation eines Beispiels für ein Verfahren, und ein Ergebnis der Ausführung von Computerprogrammanweisungen, die auf einem computerlesbaren Speicher ausgestaltet sind, in Übereinstimmung mit einem Ausführungsbeispiel dieser Erfindung; und
-
11 zeigt eine schematische Blockdarstellung eines Beispiels einer Basisstation mit einem höheren Netzknoten/MME, einem Gateway und einem Sensorsystem, die beispielhafte elektronische Vorrichtungen zur Verwendung bei der Durchführung der Ausführungsbeispiele dieser Erfindung sind.
-
Detaillierte Beschreibung
-
Der Erfinder hat festgestellt, dass es eine leistungsfähigere Technologie als jene gemäß der
US-B-8051239 gibt. In diesen Lehren werden die Steuerbits für die Einstellung der Schalter bzw. Switches in einem Butterfly-Netzwerk durch Verwenden der physikalischen Speicheradressen und ebenso von Indizes oder Informationen darüber, welcher Bus ein gegebenes Datenwort für diese bestimmte Speicheradresse trägt, gelöst. Hinzufügen zu den Daten (den Speicheradressen), die durch das Schaltnetzwerk (Butterfly-Netzwerk) verlaufen, von Informationen, die angeben, welcher Bus die Daten trägt, hat breite Anwendungen jenseits lediglich der Turbocodierung, und kann in der Regel in einer beliebigen mathematischen Operation verwendet werden, die iterativ auf Speicherplätze über ein Schaltnetzwerk zugreift. Somit sind die folgenden Beispiele im Kontext der Turbodecodieroperationen nicht einschränkend. Spezifisch für die Turbodecodieroperationen sind weitere Einzelheiten bezüglich der Lösung von Steuerbits, die einzelnen Schalter des Schalt-/Butterfly-Netzwerks steuern.
-
1A und 1B veranschaulichen einen beispielhafte Schalter bzw. Switch 100 eines Butterfly-Netzwerks, wobei dessen beide Eingänge aufgrund verschiedener Steuerbitwerte, die in den 1A und 1B angewendet werden, unterschiedlich mit den beiden Ausgängen gekoppelt sind. Der Schalter 100 ist vom Typ Doppel-Pol doppelt umlegend, und wird mindestens durch ein einzelnes Bit gesteuert; 1A veranschaulicht Pol-Verschaltungen eines nullwertigen Steuerbits, und 1B zeigt Pol-Verschaltungen eines einwertigen Steuerbits. Insbesondere ist der Schalter 100 ist ein intern verdrahteter zweipoliger Umschalter, um Verbindungen zwischen den Eingangspolen und den Ausgangspole umzukehren. Dieser verfügt über zwei Paare von Polen, die dieser entweder direkt durch oder überkreuzt verbindet. In der ersten Schaltposition von 1A sind die Eingänge 1 und 2 funktionell mit entsprechenden Ausgängen 1 und 2 gekoppelt, wie durch gerade Verbindungen dargestellt ist. In der entgegengesetzten zweiten Schaltposition von 1B sind die Eingänge 1 und 2 funktionell mit jeweiligen Ausgängen 2 und 1 verbunden, wie gekreuzte Verbindungen veranschaulichen. Ein Eingang kann über einem und nur einem Ausgang zu einem gegebenen Zeitpunkt für irgendeinen gegebenen Schalters 100 liegen. In Butterfly-Netzwerken ist jeder Schalter richtungslos; Daten können von den Polen auf der linken Seite (als Eingänge bezeichnet) zu den Pole auf der rechten Seite (als Ausgänge bezeichnet), wie durch die Pfeile in den 1A–B angegeben ist, verlaufen; oder Daten können von den rechtsseitigen Polen zu den linksseitigen Polen verlaufen.
-
Andere Implementierungen eines Butterfly-Netzwerk können dreipolige doppelt umlegende, oder allgemeiner x-polig doppelt umlegende Schalter sein, die jeweils noch durch einen einzigen Steuerbit gesteuert werden, wenn die Doppelschaltstellung des Schalters gesteuert wird. Für Implementierungen mit Multi-Umschaltern gibt es ein Minimum von y Steuerbits pro Schalter, wobei die Anzahl der Umlegungen 2y oder weniger beträgt (x und y sind positive ganze Zahlen). Einige Vermittlungs- bzw. Schaltnetzwerke können sogar eine Mischung von Schaltern mit unterschiedlichen Anzahlen von Polen und/oder Umlegungen einsetzen. Zur Vereinfachung dieser Beschreibung besteht das beispielhafte, jedoch nicht einschränkende Butterfly-Netzwerk aus zwölf Doppel-Pol doppelt umlegenden Schalter, die jeweils durch ein einzelnes Bit gesteuert werden.
-
Wie vorstehend erwähnt wurde, löst die
US-B-8051239 eine gegebene Mehrfachzugriffsfunktion, und dadurch können die Steuerbits für die Butterfly-Netzwerkschalter gelöst werden. Die Turbodecodierungs-Implementierungen dieser Lehren gehen einen anderen Weg, nämlich direktes Lösen von Steuerbits von Butterfly-Netzwerke sowohl für die lineare (ansteigende) als auch die verschachtelte Zugriffsreihenfolgen bzw -ordnungen sowie ein bestimmtes Ausmaß der Parallelverarbeitung/parallelen Zugriffe, ohne die so genannten Mehrfachzugriff-Funktionen. Dies kann als ein erster Teil der Ausführungsformen der Erfindung werden betrachtet werden, wohingegen ein zweiter Teil ein Ersetzen der ursprünglichen Mehrfachzugriffsverfahren mit neuen betrifft, die eine schnellere und einfachere Auflösung der Steuerbits für den ersten Teil im Vergleich zu den in der
US-B-8051239 gezeigten Technologien ermöglicht. Die neuen Mehrfachzugriffsschemen können verwendet werden, um neue effiziente Darstellungen für Turbointerleaver abzuleiten. Dieser zweite Teil weist eine Vielzahl von Anwendungen jenseits der Turbocodierung auf.
-
Im Hinblick auf die Lösung der Steuerbits in dem ersten Teil, wird das Beispiel des Butterfly-Netzwerks von 2A betrachtet, in dem die parallele 8-Tupel-Zugriffsfähigkeit des Turbodecoders 202 durch die acht Busse 203, die als 0-7 indexiert sind, erlangt wird. Dieser Turbodecoder 202 verwendet das dargestellte 8-Tupel-Butterfly-Netzwerkwerk 204, zum Routen von Daten über die acht Busse 0-7 zwischen dem Decoder 202 und den acht Speichern 206, die als RAM0–RAM7 identifiziert sind. In dem 8-Tupel-Butterfly-Netzwerk 204 sind zwölf Schalter, die als b0 bis b11 identifiziert sind, die jeweils funktional identisch mit dem in den 1A–B gezeigten Schalter 100 sind. Um die 12 Steuerbits für diese zwölf Schalter lösen, gibt es einen Algorithmus, der diese seriell Spalte für Spalte löst:
- • ein erster Schritt ist, die vier Bits b0–b3 in der linken Spalte 204a zu lösen
- • ein zweiter Schritt ist, die vier Steuerbits b4–b7 in der mittleren Spalte 204b zu lösen
- • ein dritter Schritt ist, die restlichen vier Bits b3–b11 in der rechten Spalte 204c zu lösen.
dere dem Erfinder bekannte Lösungen beschäftigen sich nicht direkt mit Steuerbits eines Butterfly-Netzwerks, aber wenden das Konzept der Mehrfachzugriff-Funktionen an. Diese anderen Lösungen lösen zuerst eine Mehrfachzugriffsfunktion und lösen die Steuerbits erst hinterher, wie vorstehend gemäß der US-B-8051239 angemerkt ist. Der vorstehend zusammengefasste und nachstehend detailliert dargelegte Lösungsalgorithmus vereinfacht den Steuerbitauflösungsprozess ganz erheblich.
-
Obwohl diese Beschreibung in Bezug auf Spalten von Schaltern erfolgt, muss in der Praxis ein Halbleiterchip, der ein Butterfly-Netzwerk verkörpert, nicht die verschiedenen Schalter in geordneten physikalischen Spalten aufweisen, wie 2A zeigt. Die funktionale Beziehung zwischen den verschiedenen Schaltern ist eher eine Steuerung als die physikalische Anordnung relativ zueinander. Funktionell ausgedrückt, besteht die linke Spalte 204a bezüglich 2A aus allen Schaltern mit Eingängen, die keine direkte Verbindung mit den Ausgängen der anderen Schalter des Butterfly-Netzwerk aufweisen, die rechte Spalte 204c bezüglich 2a besteht aus allen Schaltern mit Ausgängen, die keine direkte Verbindung mit den Eingängen der anderen Schalter des Butterfly-Netzwerks aufweisen, und die mittlere Spalte 204b bezüglich 2A besteht aus allen Schaltern, die direkt mit Schaltern verbunden sind, die in der linken Spalte liegen, und mit Schaltern, die in der rechten Spalte liegen. ”Direkt verbunden” bedeutet, dass es keine dazwischen liegenden Schalter gibt. Wie hier verwendet, bezieht sich der Begriff ”funktionelle Spalten von Schaltern” auf die vorstehende direkte Vernetzung zwischen Schaltern, unabhängig davon, wie solche Schalter physikalisch in einem Halbleiterchip oder einem anderen Implementierungsmedium angeordnet werden.
-
Das Prinzip dieser Beispiele kann selbstverständlich auf eine beliebige ganzzahlige Anzahl von y (funktionellen) Spalten von Schaltern übertragen werden. Verwenden der Variablen x zum Indexieren von 1 bis y; ist Spalte x = 1 die obere linke Spalte, und Spalte x = y ist die obere rechte Spalte, während eine beliebige dazwischen liegende x-te Spalte aus allen Schaltern besteht, deren Eingänge direkt mit den Ausgängen der Schalter in der (x – 1)-ten Spalte verbunden sind, und deren Ausgänge auch direkt mit den Eingängen der Schalter in der (x + 1)-ten Spalte verbunden sind. Für eine Datenverschiebung in der entgegengesetzten Richtung von rechts nach links (siehe 2A), ist die vorstehende Nomenklatur umgekehrt, so dass links rechts ist und umgekehrt, und so, dass der Eingang ein Ausgang ist und umgekehrt.
-
Ein Butterfly-Netzwerk von y Spalten von 2y-1 Schaltern weist 2y Eingangsanschlusse bzw. Pins, 2y Ausgangsanschlüsse bzw. Pins, sowie y·2y-1 Schalter mit einem y·2y-1-bit Breitensteuersignal, ein Steuerbit pro Schalter, auf. Ein 2y-Tupel-Butterfly-Netzwerk ist dazu fähig, gleichzeitig 2y Datenbusse zu permutieren. Eine Gesamtanzahl von möglichen Permutationen ist 2z mit z = y·2y-1.
-
3A zeigt ein Prozessablaufdiagramm in ausreichend allgemeiner Form, um ein Problem darzustellen, das die nachstehenden Ausführungsbeispiele lösen, und zwar, wie eine Übertragung an einen vorgegebenen Turbointerleaver, wie dieser in einem Turbodecoder 202 vorhanden sein kann, zu einem reduzieren Interleaver 310 und zu einem reduzierten De-Interleaver 312 erfolgt. Wenn zusätzliche Speicherplätze zum Verarbeiten der Daten notwendig sind, kann der Turbointerleaver erweitert werden 302. Ungeachtet dessen wird ein Mehrfachzugriffsschema 304 angewendet, um an Block 306 einen reduzierten Interleaver 310 und einen reduzierten De-Interleaver 312 zu produzieren, die den Parallelzugriff sowie den verschachtelten Zugriff mit diesem Mehrfachzugriffsschema reflektieren, das angewendet wird, um die Daten in den verschiedenen Speicherplätzen 206 neu zu ordnen. 3B zeigt wie dieses Mehrfachzugriffsschema gemäß diesen lehren arbeitet.
-
Der reduzierte Interleaver 310 und der reduzierte De-Interleaver 312 können separate Speicher von denen des Turbodecoders 202 selbst sein, und in diesem Fall kann ein Ausführungsbeispiel der Erfindung für den parallelen und den verschachtelten Zugriff implementiert werden, auch bevor der Turbodecoder eingeschaltet wird. Bei einer praktischeren Implementierung, wo diese lehren an Speicherplätzen 206 des reduzierten Interleavers 310 und des reduzierten De-Interleavers 312 arbeiten, die separat von denen des bedienten Turbodecoders 202 sind, decodiert der Turbodecoder 202 Daten, auf die zuvor gemäß diesen leeren zugegriffen wurde, und der reduzierte Interleaver 310 oder der reduzierte De-Interleaver 312 bearbeiten ein nächstes Zugriffsproblem (angenommen das der nächste Turbointerleaver unterschiedlich ist).
-
Nun, wobei der reduzierte Interleaver 310 und der reduzierte De-Interleaver 312 von 3A als die Startpunkte des in 3B gezeigten Prozesses eingestellt sind, veranschaulicht Block 314, dass das Mehrfachzugriffsschema durch lösen, Spalte für Spalte, von Steuerbits des Butterfly-Netzwerks 204 arbeitet (2A). Ein Satz von Steuerbits setzt die Daten in einen Mehrfachzugriff bei ansteigender Reihenfolge bzw. Ordnung (oder allgemeiner linearer Ordnung) 320, und ein unterschiedlicher Satz von Steuerbits setzt die Daten in einen Mehrfachzugriff bei verschachtelter Ordnung 322.
-
3C zeigt eine Prozessdarstellung, die ein Beispiel veranschaulicht, wie der reduzierte Interleaver 310 an der physikalischen Adresseinheit des Turbodecoders abgebildet ist. Die physikalische Adresseinheit bildet typischer Weise einen Teil des gesamten Turbodecoders, jedoch sind andere separate Implementierungen möglich. In Block 330 werden die Busindices von dem reduzierten Interleaver 310 entfernt, wobei die zu der Adresseinheit 202B (3C) des Turbodecoders 202 zusendenden physikalischen Adressen verbleiben. Die Steuerbits für die ansteigende Ordnung 320 und für die verschachtelte Ordnung 322 werden ebenso an die Turbodecoderadresseinheit 202A gesendet wobei diese an den Butterfly-Netzwerk 204 angewendet werden, umso die richtigen Datenwerte in der richtigen Reihenfolge bzw. Ordnung in den Turbodecoder 202 zurück zu lesen.
-
Eine exemplarische Implementierung zum Beziehen der Spalte-für-Spalte-Steuerbits ist nachstehend weiterhin detailliert ausgeführt. Sobald diese Bits bezogen werden, werden diese zu den entsprechenden Schaltern des Butterfly-Netzwerks 204 geltend gemacht, um auf die Daten in den Speicherplätzen 206 in der ansteigenden und in der verschachtelten Ordnung bzw. Reihenfolge, wie in 2A gezeigt ist, zuzugreifen. Dafür wird ein Turbointerleaver 300 (3A) verwendet, der nachstehend als T bezeichnet ist, ein inverser Turbointerleaver verwendet, der nachstehen durch T–1 bezeichnet ist, sowie ein Mehrfachzugriffsschema verwendet. Eine Länge des Turbointerleavers T ist mit N bezeichnet. Das Mehrfachszugriffsschema beschreibt vereinfacht, welche Datenwerte Simultan in einer ansteigenden (linearen) Reihenfolge bzw. Ordnung und in einer verschachtelten Reihenfolge bzw. Ordnung zugegriffen/gelesen werden. Dieses Mehrfachzugriffsschema ist in einem Datenpfad vor Anwenden des Butterfly-Netzwerks 204 zum Routen von Datenwerten zwischen dem Turbodecoder 202 und dem 23 = 8 RAM-Speichern 206 (mit einer Anzahl von Speicher 2y, wobei y eine Ganzzahl ist) gültig, d. h., an dem Punkt 203 in 2A in Front des 8-Tupel-Butterfly-Netzwerks 204. Wenn die 8 Busse 203, die in das Butterfly-Netzwerk 204 führen, einen Index mit der ganzzahligen Variablen j aufweisen, wobei j = 0, 1, ..., 7, dann ist jeder j-te Bus mit einer Adressfunktion aj(k), wobei k = 0, 1, ..., N/8-1 verknüpft; wobei die Adressfunktionen aj(k) Figuren von dem Satz {0, 1, 2, ..., N/8-1} zu dem logischen Adressplatz {0, 1, 2, N-1} des RAM 206 sind, und disjunte Figur aufweisen: ai(k) ≠ aj(k) für i ≠ j, i, j = 0, 1, 2, ..., 7, und für k = 0, 1, 2, ..., N/8-1.
-
Der 8-Tupel-Zugriff bei ansteigender Ordnung ist folglich ein Vektor von Datenwerten mit (logischen) Adressen:
a0(k), a1(k), a2(k), a3(k), a4(k), a5(k), a6(k), a7(k) für k = 0, 1, 2, ..., N/8-1.
-
Der entsprechende 8-Tupel-Zugriff bei verschachtelter Ordnung ist ein Vektor von Datenwerten mit (logischen) Adressen in dem RAM 206:
T(a0(k)), T(a1(k)), T(a2(k)), T(a3(k)), T(a4(k)), T(a5(k)), T(a6(k)), T(a7(k)) für k = 0, 1, 2, ..., N/8-1.
-
Der Grund, warum zwei unterschiedliche 8-Tupel-Zugriffe benötigt sind, ergibt sich aus der Struktur von Turbocodes: Datenbits werden zweifach kodiert, einmal in der ansteigenden Ordnung und anschließend ein weiteres Mal in der verschachtelten Ordnung. Daher muss ein Turbodecoder 202 Softdatenwerte in diesen beiden unterschiedlichen Ordnungen verarbeiten.
-
Nun kommt der zweite Teil in dem ein gegebenes Mehrfachzugriffsschema durch ein anderes ersetzt wird, so dass das Ergebnis einen praktischen und effizienten Algorithmus zum lösen von Steuerbits bereit stellt. Jede Speicherplatzadressfunktion für die RAM-Speicherplätze 206 erfüllt die einheitliche Beziehung:
aj(k) entspricht (k,j) für j = 0, 1, 2, ..., 7 und k = 0, 1, 2, ..., N/8-1.
-
Die (logischen) Adressvektoren für einen 8-Tupel-Zugriff bei ansteigender Ordnung (für die RAM-Speicherplätze 206):
[a0(k), a1(k), a2(k), a3(k), a4(k), a5(k), a6(k), a7(k)] für k = 0, 1, 2, ..., N/8-1
werden durch die Adressvektoren ersetzt:
[(k,0), (k,1), (k,2), (k,3), (k,4), (k,5), (k,6), (k,7)] für k = 0, 1, 2, N/8-1.
-
Die Komponenten dieser neuen Vektoren für den 8-Tupel-Zugriff bei ansteigender Ordnung weisen jeweils zwei Teile auf, eine physikalische Adresse k von an dieser physikalischen Adresse (RAM 0 bis RAM 7 in 2A) gespeicherten Datenwerten sowie ein Busindex j, wobei j = 0, 1, 2, ..., 7, der an dem Punkt 203 gültig ist. Auf diese Weise kann der 8-Tupel-Parallelzugriff bei ansteigender Ordnung an jedem Bus die gleiche physikalische Adresse aufweisen, unabhängig des ursprünglichen 8-Tupel-Zugriffsschema bei ansteigender Ordnung, das die Mehrfachzugriffsfunktion des Standes der Technik verwendet hat.
-
Auf eine gleiche Weise erfüllen die Komponenten Adressfunktionen eines verschachtelten Zugriffsschemas die beiden einheitlichen Beziehungen:
T(aj(k)) = amk;j(nk,j) für einige mk;j und nk;j;
und
amk;j;(nk;j) entsprich (nk;j, mk;j) für j = 0, 1, 2, ..., 7 und k = 0; 1, 2, ..., N/8-1-
-
Diese beiden Beziehungen implezieren zusammen, dass die 8-Tupel-Adressvektoren der verschachtelten Ordnung für die RAM-Speicherplätze 206 ersetzt werden können durch:
[(nk;0, mk;0), (nk;1, mk;1), (nk;2, mk;2), (nk;3, mk;3),
(nk;4, mk;4), (nk;5, mk;5), (nk;6, mk;6), (nk;7, mk;7)]
für k = 0, 1, 2, ..., N/8-1. Diese Ersetzung führt zu einem neuen Turbointerleaver, der dazu fähig ist, physikalische Adressen des RAM 206, Busstruktur und ein gegebenes Mehrfachzugriffschema gleichzeitig an den Punkt 203 zu berücksichtigen. Der neue Turbointerleaver wird nachstehend ein reduzierter Turbointerleaver 310 genannt, und ist durch R bezeichnet. Dessen inverser Interleaver 312 ist du R–1 bezeichnet. Der reduzierte Turbointerleaver R und dessen inverser Interleaver R–1 sind definiert durch:
R(k,j) = (nk;j, mk;j)
und
R–1 (nk;j, mk;j) = (k,j)
für k = 0, 1, 2, ..., N/8-1 und für j = 0, 1, 2, ..., 7, und wobei (nk;j, mk;j) wie in dem unmittelbar vorstehenden Absatz bestimmt wird.
-
Jedes nk;j ist eine Adresse zu einem der acht RAM-Speicher 206, die in 2A gezeigt sind, und mk;j zeigt einen Index eines Busses 203, der links von 2A gezeigt ist. Aktuelle Werte für jedes (nk;j, mk;j) können ohne Weiteres aus der vorstehenden Beziehung T(aj(k)) = amk;j(nk;j) berechnet werden, da in praktischen Fällen die Adressfunktionen aj(k) bekannt sind.
-
Um zu veranschaulichen, wie ein reduzierter Turbointerleaver
310 und ein reduzierter inverser Turbointerleaver
312 von einem Turbointerleaver
300 (
3A) und einem Mehrfachzugriffsschema
304 erhalten werden kann, ist die Anzahl von RAM-Speichern ausgewählt, und gleich vier zu sein, wie insbesondere in
2B gezeigt ist, und die Länge eines Turbointerleavers ist eingestellt, um N = 20 zu sein. In diesem Fall sind die Längen der vier RAMs 5, weil 20/4 = 5. Der Turbointerleaver
300 (
3A) und der inverse Turbointerleaver sind jeweils in der nachstehenden Tabelle 1 in der zweiten und dritten Spalte gezeigt.
i | T(i) | T1(i) |
0 | 7 | 11 |
1 | 13 | 17 |
2 | 16 | 5 |
3 | 10 | 13 |
4 | 19 | 6 |
5 | 2 | 19 |
6 | 4 | 12 |
7 | 8 | 0 |
8 | 11 | 7 |
9 | 14 | 14 |
10 | 18 | 3 |
11 | 0 | 8 |
12 | 6 | 15 |
13 | 3 | 1 |
14 | 9 | 9 |
15 | 12 | 16 |
16 | 15 | 2 |
17 | 1 | 18 |
18 | 17 | 10 |
19 | 5 | 4 |
Tabelle 1
-
In diesem speziellen Fall ist das Mehrfachzugriffsschema
304 ausgewählt, um vier Adressenfunktionen a
j(k) aufzuweisen, die definiert sind durch:
(a
0(k), a
1(k), a
2(k) a
3(k)) = (2·k, 2·k + 1, 18 – 2·k, 19 – 2·k)
für k = 0, 1, 2, 3 und 4. Dieses Mehrfachzugriffsschema erzeugt logische Adressen zu den vier RAMs in der ansteigenden Reihenfolge bzw. Ordnung, wie in Tabelle 2 gezeigt ist:
k | a0(k) | a1(k) | a2(k) | a3(k) |
0 | 0 | 1 | 18 | 19 |
1 | 2 | 3 | 16 | 17 |
2 | 4 | 5 | 14 | 15 |
3 | 6 | 7 | 12 | 13 |
4 | 8 | 9 | 10 | 11 |
Tabelle 2
-
Der entsprechende 4-Tupel-Zugriff verschachtelter Ordnung erzeugt logische Adressen zu den vier RAMs durch T(a
0(k)), T(a
1(k)), T(a
2(k)), und T(a
3(k)), wie in Tabelle 3 dargestellt ist:
k | T(a0(k)) | T(a1(k)) | T(a2(k)) | T(a3(k)) |
0 | 7 | 13 | 17 | 5 |
1 | 16 | 10 | 15 | 1 |
2 | 19 | 2 | 9 | 12 |
3 | 4 | 8 | 6 | 3 |
4 | 11 | 14 | 18 | 0 |
Tabelle 3
-
Das (reduzierte) 4-Tupel-Zugriffsschema ansteigender Ordnung wird vom ursprünglichen 4-Tupel-Zugriffsschema aufsteigender Reihenfolge durch ersetzen von a
j(k) mit (k,j) erhalten. Dann besteht jede Adresse aus einer physikalischen Adresse und einen Busindex, wie in der nachstehenden Tabelle 4 gezeigt ist:
k | (k,0) | (k,1) | (k,2)) | (k,3) |
0 | (0,0) | (0,1) | (0,2) | (0,3) |
1 | (1,0) | (1,1) | (1,2) | (1,3) |
2 | (2,0) | (2,1) | (2,2) | (2,3) |
3 | (3,0) | (3,1) | (3,2) | (3,3) |
4 | (4,0) | (4,1) | (4,2) | (4,3) |
Tabelle 4
-
Der reduzierte Turbointerleaver R
310 wird aus dem 4-Tupel-Zugriffsschema verschachtelter Ordnung durch die Beziehung T(a
j(k)) = a
m(n) und anschließendem Ersetzen von T(a
j(k)) durch (n,m) und a
k(k) durch (k,j) abgeleitet. Die 2-teilige Adresse (n,m) ist der Wert R (k,j) des reduzierten Turbointerleavers R bei (k,j). Beispielsweise gilt T(a
3(1)) = T(19 – 2·1) = T(17) = 1 und 1 = a
1(0). Daher werden der Wert T(a
3(1)) = 1 = a
1(0) und der Wert a
3(1) = 17 durch (0,1) und (1,3) bzw. R(1,3) = (0,1) ersetzt. Wenn diese Substitution alle 20 (logische) Adressen T(a
j(k)) wiederholt wird, wird der folgende reduzierte Turbointerleaver in Tabelle 5 erhalten:
k | R(k,0) | R(k,1) | R(k,2) | R(k,3) |
0 | (3,1) | (3,3) | (1,3) | (2,1) |
1 | ( 1,2 ) | (4,2) | (2,3) | (0,1) |
2 | (0,3) | (1,0) | (4,1) | (3,2) |
3 | (2,0) | (4,0) | (3,0) | (1,1) |
4 | (4,3) | ( 2 , 2 ) | (0,2) | (0,0) |
Tabelle 5
-
Der reduzierte inverse Turbointerleaver R
–1 312 wird von dem reduzierten Turbointerleaver R durch die Beziehung abgeleitet: wenn R(i,j) = (n,m), dann R
–1(n,m) = (i,j). Insbesondere, wenn R(1,3) = (0,1), dann R
–1(0,1) = (1,3). In diesem Fall weist der reduzierte inverse Turbointerleaver R
–1 2-diemsionale Elemente auf, wie in der nachstehenden Tabelle 6 gezeigt ist:
k | R–1(k,0) | R–1(k,1) | R–1(k,2) | R–1(k,3) |
0 | (4,3) | (1,3) | (4,2) | (2,0) |
1 | (2,1) | (3,3) | (1,0) | (0,2) |
2 | (3,0) | (0,3) | (4,1) | (1,2) |
3 | (3,2) | (0,0) | (2,3) | (0,1) |
4 | (3,1) | (2,2) | (1,1) | (4,0) |
Tabelle 6
-
Trotzdem kann man nicht 2-teilige Adressen der Tabelle 4 und der Tabelle 5 für einen Zugriff auf die vier RAMs verwenden. Steuerbits eines in 2B gezeigten 4-Tupel-Butterfly-Netzwerks zum Routen von Daten und Adressen sind noch nicht bekannt. Diese werden benötigt, um durch das 4-Tupel-Butterfly-Netzwerk zu navigieren.
-
Der ursprüngliche Turbointerleaver T und dessen Inverserinterleaver T
–1 erfüllen die beiden Gleichungen: T(T
–1(j)) = j und T
–1T(j)) = j für j = 0, 1, 2, ..., N-1. Der reduzierte Turbointerleaver R und der reduzierte inverse Turbointerleaver R
–1 erfüllen gleichermaßen zwei Gleichungen: R(R
–1(n,m)) = (n,m) und R
–1(R(n,m)) = (n,m) für n = 0, 1, 2, ..., N/2
y-1 und für m = 0, 1, 2, ..., 2
y-1. Wie in dem Fall des ursprünglichen Turbointerleavers und des de-Interleavers in
US-B-8051239 , Spalte 6, Zeilen 17–27, können der reduzierte Turbointerleaver und der reduzierte De-Interleaver verwendet werden, um sich zwischen einem Adressplatz linearer Ordnung und einem Adressplatz verschachtelter Ordnung vor und zurück zu bewegen, nun mit einer (reduzierten) Regel zum Bewegen von einem Adressplatz linearer Ordnung zu einem Adressplatz verschachtelter Ordnung, die sich aus (k
addr1, k
bus1) = R(R
–1(k
addr1, k
bus1)) = R(k
addr2, k
bus2) mit (k
addr2, k
bus2) = R
–1(k
addr1, k
bus1) ergibt. Daraus ergibt sich, dass der reduzierte De-Interleaver die Regel zum Bewegen von einem Adressplatz linearer Ordnung zu einem Adressplatz verschachtelter Ordnung bestimmt. Eine (reduzierte) Regel zum Bewegen von einem Adressplatz verschachtelter Ordnung zu einem Adressplatz linearer Ordnung ist R(k
addr3, k
bus3) = (k
addr4, k
bus4). Mit anderen Worten bestimmt der reduzierte Interleaver die Regel zum Bewegen von einem Adressplatz verschachtelter Ordnung zu einem Adressplatz linearer Ordnung. Die Verwendung eines reduzierten Interleavers und eines reduzierten de-Interleavers vereinfacht ein Vor- und Zurückbewegen zwischen den beiden Adressspeichern, weil ein Mehrfachzugriffsschema und eine Busstruktur eines Butterfly-Netzwerks in dem zwei-teiligen Adressformat wie vorstehend erläutert berücksichtigt werden.
-
Der vorstehende Ansatz reduziert alle Mehrfachzugriffsschemen auf ein einzelnes Zugriffsschema: eine Adresse zu einem RAM-Speicher 206 weist zwei Komponenten auf, und zwar eine Komponente, die eine tatsächliche (physikalische) Adresse eines RAM-Speicherplatzes 206 (RAM 0 bis RAM 7) angibt, und eine zweite, die einen Index eines Busses 203 angibt. Eine Darstellung von RAM-Speicherplatzadressen auf diese zweiteilige Weise mit einem reduzierten Turbointerleaver ist nützlich, wenn Steuerbits eines Butterfly-Netzwerkes 204 für Turbocodes gelöst werden. Jeder j-te Bus in 203 identifiziert die in 2A gezeigten physikalischen Adressplätze als RAM 0 bis RAM 7. Die physikalischen Adressplätze können nicht an den Speicherplätzen 206 (RAM 0 bis RAM 7) angewendet werden, ohne dessen zwölf Steuerbits b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, und b11 des Butterfly-Netzwerks 204 zu wissen. Jedoch können die physikalischen Adressplätze mit Busindizes in 203 verwendet werden, um Steuerbits zu lösen und Routingpfade durch das Butterfly-Netzwerk 204 zu finden. Die physikalischen Adressplätze des RAM 206 können mit dem Turbodecoder 202 nur verwendet werden, wenn die Steuerbits des Butterfly-Netzwerks 204 für beide Zugriffsordnungen bekannt sind. Wie vorstehend angemerkt findet dies eine verbreitetere Anwendung für beliebige iterative Algorithmen, die Daten von diskreten Speicherplätzen 206 speichern und/oder abrufen, auf die durch eine beliebige von mehreren möglichen Bussen zugegriffen werden.
-
Sobald 12-bitbreite Steuersignale 320, 322 für sowohl den 8-Tupel-Zugriff bei ansteigender Ordnung als auch dem 8-Tupel-Zugriff bei verschachtelter Ordnung verfügbar sind, können Busindizes von den zweiteiligen RAM-Adressen entfernt werden. Die 12-bitbreiten Steuersignale des Butterfly-Netzwerks für den 8-Tupel-Zugriff bei ansteigender Ordnung werden durch die Bitvektoren (b0;k, b1;k, b2;k, b3;k, b4;k, b5;k, b6;k, b7;k, b8;k, b9;k, b10;k, b11;k) angegeben. Der vollständige 8-Tupel-Zugriff bei ansteigender Ordnung ist folglich ein Vektor von Datenwerten mit physikalischen Adressvektoren für den RAM 206.
(k, k, k, k, k, k, k, k)
und mit Butterfly-Netzwerk-Steuerbits
(b0;k, b1;k, b2;k, b3;k, b4;k, b5;k, b6;k, b7;k, b8;k, b9;k, b10;k, b11;k) für k = 0, 1, 2, ..., N/8-1.
-
Steuerbitvektoren des Butterfly-Netzwerks zu dem 8-Tupel-Zugriff bei verschachtelter Ordnung sind durch (β0;k, β1;k, β2;k, β3;k, β4;k, β5;k, β6;k, β7;k, β8;k, β9;k, β10;k, β11;k) bezeichnet. Der vollständige 8-Tupel-Zugriff bei verschachtelter Ordnung ist ein Vektor von Datenwerten mit physikalischen Adressvektoren in dem RAM 206
(nk;0, nk;1, nk;2, nk;3, nk;4, nk;5, nk;6, nk;7)
und mit Butterfly-Netzwerk-Steuerbits
(β0;k, β1;k, β2;k, β3;k, β4;k, β5;k, β6;k, β7;k, β8;k, β9;k, β10;k, β11;k)
für k = 0, 1, 2, ..., N/8-1 und wobei nk;j wie vorstehend beschrieben sind. Die 8-Tupel-physikalischen Adressvektoren (nk;0, nk;1, nk;2, nk;3, nk;4, nk;5, nk;6, nk;7) in dem RAM 206 sollten durch ein 8-Tupel-Butterfly-Netzwerk von links nach rechts in 2A permutiert werden. Permutierte 8-Tupel-physikalische Adressvektoren können wiederholt verwendet werden, wenn diese als permutiert gespeichert werden.
-
Als ein allgemeines Prinzip wird das 8-Tupel-Spiegelzugriffsschema (ansteigende und verschachtelte Zugriffe) bereits kommerziell verwendet. Als solches beziehen sich die nachstehenden Computer-Programm-Implementierungen auf einen solchen 8-Tupel-Spiegelzugriff, obwohl diese ohne Weiteres bei einem Spiegelzugriff eines beliebigen 2y-Tupels angewendet werden können, wobei y eine beliebige positive Ganzzahl ist. In diesen Beispielen bestehen die zu den 8-RAM-Adressplätzen 206 zu schreibenden acht Datenwerte aus einem Paar von vier Datenwerten, sodass zwei Sätze der vier Werte bezüglich des Mittelpunkts N/2 eines Datenrahmens symmetrisch verwendet werden. Mit anderen Worten sind für k = 0, 1, 2, ..., N/8-1 die RAM-Adressfunktionen:
aj(k) = 4·k + j, für j = 0, 1, 2 und 3;
und
aj(k) = N – 4·k + j – 8, für j = 4, 5, 6 und 7.
-
Diese sind Turbocodes, dessen Turbointerleaver möglicherweise nicht Längen aufweisen, die ganzzahlige mehrfache eines Grades von 2
y eines Mehrfachzugriffschemas sind. Die Turbocodes können durch Hinzufügen von extra vordefinierten Softbits in Codewörter und extra Adressen zu Turbointerleavern erweitert werden. Die Technologien sind detailliert in der
US-B-7839310 dargestellt. Dabei wird ein reduzierter Turbointerleaver von dem erweiterten Turbointerleaver wie vorstehend erläutert hergeleitet.
-
Der Ansatz des direkten Lösens von Steuerbits von Butterfly-Netzwerken kann den Vorteil von reduzierten Mehrfachzugriffsschemen und gleichzeitig reduzierten Turbointerleavern verwenden. Dabei stellen die beiden Teile von Ausführungsbeispielen der vorstehend genannten Erfindung maximale Vorteile zum Implementieren von Turbodecodern mit parallelem Datenzugriff bereit. Dabei veranschaulicht eine exemplarische Beschreibung, wie 8-Tupel-Butterfly-Netzwerke einhergehend mit diesen Lehren verwendet werden.
-
Zwölf Steuerbits von 8-Tupel-Butterfly-Netzwerken werden durch Anwachsen einer Größe von Butterfly-Netzwerken gelöst. Die Größen sind 2, 4 und 8 im Sinne von Eingangs- und Ausgangsbussen (oder Eingangs/Ausgangs-Anschlüssen). Butterfly-Netzwerke weisen eine hierarchische Struktur auf, sodass ein Butterfly-Netzwerk der nächsten Größe durch zwei Butterfly-Netzwerke einer gegenwärtigen Größe hergestellt werden kann. 8 veranschaulicht, wie zwei 4-Tupel-Butterfly-Netzwerke Subnetzwerke eines 8-Tupel-Butterfly-Netzwerks sind. 2-Tupel-Butterfly-Netzwerke (ebenso als Doppelpol-doppelt umlegende Schalter oder Wechselschalter bekannt) sind strukturelle Basisblocks von Butterfly-Netzwerken.
-
Ein (reduziertes) paralleles Zugriffsschema und ein (reduzierter) Turbointerleaver bestimmen ein Set von Graphen von Knoten. Ein Knoten eines Graphs ist ein 2-, 4- oder 8-Tupel-Netzwerk in Abhängigkeit in welchen Spalten von 2A sich vier zu lösende Steuerbits befinden. Eine Anzahl von Knoten in einem Graphen kann die Werte von 2 bis N einnehmen, wobei N ein Länge eines reduzierten (wenn notwendig erweiterten) Turbointerleavers ist, und geradzahlig ist. Eine Summe von Knoten in Graphen ist gleichgroß N. Eine Anzahl von Graphen kann von 1 bis N/2 variieren. Graphen sind disjunkte geschlossene Schleifen (oder Ringe) von Knoten. Der Algorithmus zum Lösen von Steuerbits verarbeitet Graphen einen nach dem anderen durch Suchen nach einem Eintrittsknoten zu jedem Graphen. Ein Verarbeiten von Graphen beginnt mit Graphen eines 2-Tupel-Butterfly-Netzwerks (in linken Spalten 204a von 2A) als nächstes werden Graphen von 4-Tupel-Butterfly-Netzwerken bearbeitet (mittlere Spalten 204b von 2A), und letztendlich Graphen von 8-Tupel-Butterfly-Netzwerken (rechte Spalten 204c von 2A). Eine Größe von Knoten ist auf eine nächste Größe angestiegen, wenn alles Graphen der gegenwärtigen Größe verarbeitet wurden.
-
4 veranschaulicht einen Graphen von zwei Knoten. Die zwei Knoten sind durch einen reduzierten Turbointerleaver und dessen Inversen (ebenso als De-Interleaver bezeichnet) verbunden. Im Allgemeinen gehören die Hälfte der Knoten zu Zugriffsknoten ansteigender Ordnung, und die andere Hälfte zu Zugriffsknoten verschachtelter Ordnung. An jedem Knoten wird ein Steuerbit gelöst. Ein Verarbeiten der Zugriffsknoten ansteigender Ordnung löst Steuerbits für einen Zugriff bei ansteigender Ordnung, und die der Zugriffsknoten verschachtelter Ordnung löst Steuerbits für einen Zugriff bei verschachtelter Ordnung. Die Verarbeitung zum Lösen von Bits weist Bits zu den beiden Knotentypen wiederum einer nach dem anderen entlang eines Graphs zu, bis der Prozess zum Lösen von Bits zu einem Startknoten zurückkehrt.
-
5 veranschaulicht einen Graphen von vier Knoten, und 6 zeigt einen Graphen von acht Knoten. Durchgezogene Pfeile bedeuten, dass der Prozess zum Lösen von Bits einen reduzierten De-Interleaver R–1 verwenden, um sich zu einem nächsten Knoten in einem Graphen zu bewegen. Gestrichelte Pfeile bedeuten, dass der Prozess zum Lösen von Bits einen reduzierten Interleaver R anwenden, um zu einem nächsten Knoten in einem Graphen zu gelangen. Knoten befinden sich nicht an aufeinanderfolgenden Speicheradressen sondern an zufälligen Adressen, die durch einen reduzierten Turbointerleaver und ein Parallelzugriffsschema bestimmt werden. Anzahlen in Knoten veranschaulichen eine Verarbeitungsordnung von Knoten.
-
Der Prozess zum Lösen von 12 Steuerbits eines 8-Tupel-Butterfly-Netzwerks in diesem Beispiel beginnt mit einem Lösen von vier am wenigsten signifikanten Bits b0, b1, b2 und b3 in linken Spalten von in 2A–B und 7 gezeigten Butterfly-Netzwerken. Dies ist äquivalent zum Lösen von 2-dimensionalen Zugriffskonflikten. Vier Buchführungsbits pro Spalte werden verwendet, um sicherzustellen, dass jedes Sub-2-Tupel-Butterly-Netzwerk nur einmal verarbeitet wird. Der Prozess zum Lösen der vier am wenigsten signifikanten Bits weist zwei Basisfunktionen auf, und zwar Erfassen von freien Graphen und Verarbeiten von erfassten Graphen einer nach dem anderen. Eintrittsknoten zu Graphen werden nach Knoten mit ansteigender Ordnung durchsucht. Jeder Knoten ansteigender Ordnung eines Graphen kann ein Eintrittsknoten sein. Vier buchhalterische Bits pro linke Spalte zeigen, wenn eine linke Spalte einen Eintrittsknoten zu einem Graphen aufweist. Eine Anzahl von Eintrittsknoten pro linke Spalte kann für 8-Tupel-Butterfly-Netzwerke 0, 1, 2, 3 oder 4 betragen; 7. Wenn vier Buchhaltungsbits angeben, dass kein Eintrittsknoten zu einem Graphen vorliegt, wird anschließend eine linke Spalte eines nächsten 8-Tupel-Butterfly-Netzwerks herangezogen, um eine Überprüfung durchzuführen. Wenn ein Graph von unzugewiesenen Knoten erfasst wird, startet der Prozess zum Lösen von Bits ein Zuweisen von Werten zu Steuerbits in linken Spalten. 7 zeigt, wie der Prozess zum Lösen von Bits an den Bus 3 in ein 2-Tupel-Butterfly-Netzwerk eintritt (links-nach-rechts-Pfeile). Der Bit b1 ist auf 1 eingestellt, um eine Querverbindung beizubehalten. Der Prozess zum Lösen von Bits tritt von dem 2-Tupel-Butterfly-Netzwerk an den Bus 2 aus (rechts-nach-links-Pfeile). Gleichzeitig wird das Buchhaltungsbit dieses Knotens auf 1 gesetzt, um eine Doppelverarbeitung des Knotens zu verhindern. Der Prozess zum Lösen von Bits streicht über einen Graphen, bis dieser an dem Startknoten ankommt, wie in 4, 5 und 6 gezeigt ist.
-
Ein Lösen von vier Bits b4, b5, b6 und b7 in mittleren Spalten von 8-Tupel-Butterfly-Netzwerken erfolgt gleichermaßen des Lösens von vier Bits b0, b1, b2 und b3 in linken Spalten. In diesem Schritt sind Knoten eines Graphen 4-Tupel-Butterfly-Netzwerke, wie in 8 gezeigt ist. Dieser Schritt ist äquivalent zum Lösen von 4-dimensionalen Zugriffskonflikten. Vier Bits in linken Spalten müssen bekannt sein, bevor Werte zu vier Bits in mittleren Spalten zugewiesen werden, wie in 8 gezeigt ist. Der Prozess zum Lösen von Bits tritt in 8-Tupel-Butterfly-Netzwerken an einem der Busse in linken Spalten gleichzeitig ein. Beispielsweise tritt der Prozess entlang des Busses 7 in das 8-Tupel-Butterfly-Netzwerk in 8 ein. Der Index eines 2-Tupel-Butterfly-Netzwerks in mittleren Spalten, dessen Steuerbit zuzuweisen ist, ist bekannt. Daher kann der Prozess zum Lösen von Bits direkt von einem Eintrittsbus zu dem 2-Tupel-Butterfly-Netzwerk in mittleren Spalten springen, ohne Steuerbits in linken Spalten zu verwenden. Links-nach-rechts-Pfeile in 8 veranschaulichen diesen Schritt für zwei Eintrittsbusse 1 und 7. Nichtsdestotrotz kann jeweils einer der beiden aktiv sein. Der Busindex eines Eintrittsbusses bestimmt, wie ein Bit für ein 2-Tupel-Butterfly-Netzwerk in mittleren Spalten einzustellen ist. Nach Einstellen des Bits in mittleren Spalten kehrt der Prozess zum Lösen von Bits von dem mittleren Spalten-2-Tupel-Butterfly-Netzwerk zu einem anderen Bus in linken Spalten entlang eines Pfads, der mit einem Anschlusspaar des mittleren Spalten-2-Tuple-Butterfly-Netzwerks verbunden ist, zurück. In dieser Phase ist ein Steuerbit in linken Spalten notwendig, um sich durch ein 2-Tupel-Butterfly-Netzwerk in linken Spalten zu bewegen. Zwei rechts-nach-links-Pfeile in 8 veranschaulichen diese Aktion.
-
Beispielsweise ist der Index eines mittlere Spalten-2-Tupel-Butterfly-Netzwerks Zwei und der Prozess zum Lösen von Bits tritt in ein 8-Tupel-Butterfly-Netzwerk an dem Bus 7 in linken Spalten in 8 ein. Das mittlere Spalten-2-Tupel-Butterfly-Netzwerk Nummer zwei weist das Steuerbit b6 auf. Das Bit b6 ist auf 1 eingestellt, weil das zweite am wenigsten signifikante Bit des Eintrittsbusindex 1 ist (7DEC = 111BIN). Anschließend tritt der Prozess zum Lösen von Bits von dem mittlere Spalten-Butterfly-Netzwerk an dem durch den rechts-nach-links-Pfeil angezeigten Pfad über das 4-Tupel-Unter-Butterfly-Netzwerk wie in 8 aus. Der Austrittsbusindex beträgt Vier und diese Busnummer ist notwendig, um eine nächste Adresse zum Zugreifen auf den reduzierten De-Interleaver zu erhalten.
-
Ein Lösen von 8-dimensionalen Zugriffskonflikten unterscheidet sich von einem Lösen von 2- und 4-dimensionalen Zugriffskonflikten durch größere Butterfly-Netzwerke. An diesem Punkt sind acht am wenigsten signifikante Steuerbits von 8-Tupel-Butterfly-Netzwerken bekannt, und verbleibende vier am meisten signifikante Bits werden gelöst. Die vier Bits befinden sich in rechten Spalten von 8-Tupel-Butterfly-Netzwerken; 9. Die Verarbeitung zum Lösen von Bits such nach Indizes von 2-Tupel-Butterfly-Netzwerken, deren Steuerbits nicht in rechten Spalten zugewiesen sind; 9. Sobald ein solcher Eintrittsindex erfasst wird, startet der Prozess zum Lösen von Bits ein Durchlaufen durch einen Graphen von Knoten durch Zuweisen von Werten zu Steuerbits, die an diesem bestimmten Bitindex sitzen. Der Bitindex ist für alle 8-Tupel-Butterfly-Netzwerke, die zu demselben Graphen gehörten, gleich. Gleichermaßen tritt beim Lösen von Steuerbits in mittleren Spalten der Prozess zum Lösen in ein 8-Tupel-Butterfly-Netzwerk an einem von Bussen in linken Spalten ein, beispielsweise an Bus sechs in 9, und tritt aus dem 8-Tupel-Butterfly-Netzwerk an einem anderen Bus in linken Spalten aus, dem Bus null in 9. Ein Eintrittsbus und ein Austrittsbus können sich nicht in der gleichen Hälfte eines 8-Tupel-Butterfly-Netzwerks befinden. Mit anderen Worten gilt, dass wenn ein Eintrittsbus einen Indexwert in 0, 1, 2, und 3 aufweist, dann weist ein Austrittbusindex einen von 4, 5, 6 und 7 auf und umgekehrt.
-
Der Prozess zum Lösen von Bits tritt in einen Knoten an Bus sechs in 9 ein. Das 2-Tupel-Butterfly-Netzwerk, dessen Steuerbit zugewiesen werden soll, weist den Index in der rechten Spalte in 9 auf. Das entsprechende Steuerbit ist b9. Der Prozess zum Lösen von Bits stellt das Bit b9 = 1 ein, weil das 3. Bit des Eintrittsbusindex 1 ist (6DEC = 111BIN). Die Steuerbits b3 und b7 in dem roten Pfeilpfad in 9 sind nicht benötigt, weil der Index des 2-Tupel-Butterfly-Netzwerks der Steuerbits b9 bekannt ist: dieser ist 1. Ein Index eines Austrittsbusses in dem grünen Pfeilpfad in 9 ist unbekannt. Der Index eines Austrittsbusses kann aus den Steuerbits b9 = 1, b5 = 0, b0 = 1 sowie dem Eintrittsbusindex 6 berechnet werden. In diesem Fall ist der Austrittsbusindex 0, wie 9 veranschaulicht. Anschließend wendet der Prozess zum Lösen von Bits den Austrittsbusindex an dem De-Interleaver an, um einen Zugriffsknoten verschachtelter Ordnung zu bewegen. Der Prozess zum Lösen von Bits hat alle Knoten eines Graphen bearbeitet, wenn wiederum zu dem Startknoten zurückgekehrt wird.
-
Ein Lösen von Steuerbits in mittleren und rechten Spalten involviert ebenso ein Erfassen von Eintrittsknoten zu Graphen, die nicht durchlaufen wurden. Buchhaltungsbits von mittleren (und linken) Spalten werden aktualisiert, wenn Werte für Bits in Knoten ansteigender Ordnung zugewiesen werden, um zu verhindern, dass Knoten mehrere Male verarbeitet werden. Es ist ausreichend, jedes Bit einmal einzustellen, um alle Bits zu lösen.
-
Ein reduzierter Turbointerleaver und De-Interleaver können angewendet werden, um sich effizient zwischen Knoten ansteigender und verschachtelter Ordnung zu bewegen, wie in 4, 5 und 6 gezeigt ist. Es sei angenommen, dass ein erfasster Eintrittsknoten eine Adresse k1 mit einem Busindex kBus;1 in dem reduzierten Adressformat aufweist. Anschließend wird ein Steuerbit des k1-ten Butterfly-Netzwerks mit Zugriff bei ansteigender Ordnung zugewiesen, und ein Austrittsbusindex kexit;1 wird wie vorstehend erläutert und in 8, 9 und 10 veranschaulicht für den Eintrittsknoten berechnet. Die Adresse eines nächsten Zugriffsknotens verschachtelter Ordnung (oder Butterfly-Netzwerk) wird erhalten durch:
(k2; kBus;2) = R–1 (k1, kexit;1).
-
Die Adresse k2 entspricht dem k2-ten Butterfly-Netzwerk mit verschachtelter Ordnung. Der Busindex kBus;2 identifiziert einen Eintrittsbus zu dem k2-ten Butterfly-Netzwerk. Das fragliche Bit wird zugewiesen und ein nächster Austrittsbusindex kexit;2 wird wie vorstehend erhalten. Die Adresse eines nächsten Knotens ansteigender Ordnung wird bestimmt durch:
(k3; kBus;3) = R(k2, kexit;2).
-
Der Busindex kBus;3 zeigt einen Eintrittsbusindex zu dem k3-ten Butterfly-Netzwerk bei ansteigender Ordnung. Wiederum wird ein Steuerbit eines Butterfly-Netzwerks gelöst und ein nächster Austrittsbusindex berechnet. Diese Operationen werden wiederholt, bis die Zugriffsadresse bei ansteigender Ordnung kn gleich der Eintrittsknotenadresse k1 ist, und der Busindex kBus;n zu dem gleichen 2-Tupel-Butterfly-Netzwerk zeigt wie der Eintrittsknotenbusindex kBus;1.
-
3B zeigt die Schritte auf hoher Ebene des Lösens von Steuerbits eines Butterfly-Netzwerks durch einen reduzierten Interleaver 310 und einen reduzierten De-Interleaver 312. Um den Lösungsprozess detailliert zu veranschaulichen, wird das gleiche Mehrfachschema zu vier RAMs wie in 2B wie in Tabelle 1 und der vorstehenden bezüglichen Diskussion berücksichtigt. Der reduzierte Turbointerleaver R ist wie in Tabelle 5 und der reduzierte Turbointerleaver R–1 wie in Tabelle 6. Die vier RAMs benötigen ein 4-Tupel-Butterfly-Netzwerk zum Routen von Datenwerten zu und von den vier RAMs. Jeder Zugriff auf vier parallele Datenwerte benötigt vier Bits zum Steuern des 4-Tupel-Butterfly-Netzwerks zum Routen der Daten. Fünf 4-Bit-Vektoren (b0;k; b1;k; b2;k; b3;k), k = 0, 1, 2, 3, 4, sind Steuerbits des Mehrfachzugriffs bei ansteigender Ordnung, und andere fünf 4-Bit-Vektoren (β0;k, β1;k; β2;k; β3;k), k = 0, 1, 2, 3, 4, sind Steuerbits des Mehrfachszugriffs bei verschachtelter Ordnung. Das 4-Tupel-Butterfly-Netzwerk weist zwei Spalten von 2-Tupel-Butterfly-Netzwerken auf. Beide Spalten bestehen aus zwei 2-Tupel-Butterfly-Netzwerken. Dort sind zwei Buchhaltungsbits pro Spalte ausreichend, um sicherzustellen, dass jedes Steuerbit nur einmal gelöst wird. Die Buchhaltungsbits sind durch 2-Bit-Vektoren (c0;k; c1;k) für k = 0, 1, 2, 3 und 4 bezeichnet. Die Ausgangswerte der Buchhaltungsbits werden als 0 (Null) angenommen.
-
Es wird ein exemplarischer Algorithmus in Form eines Pseudocodes bezüglich eines Lösens 314 von zwei am wenigsten signifikanten Steuerbits von 4-Tupel-Butterfly-Netzwerk diskutiert. Fragliche Bits steuern linke Spalten von 4-Tupel-Butterly-Netzwerken in 2B. die beiden äußersten Zählschleifen sind zum Erfassen von Eintrittsknoten zu freien Graphen verantwortlich, das heißt 2-Tupel-Butterfly-Netzwerke von ersten Spalten, deren Steuerbits nicht gelöst sind. Die Do-While-Schleife läuft durch Knoten eines Graphen durch Zuweisen von Werten zu Steuerbits des Zugriffs bei ansteigender Ordnung und des Zugriffs bei verschachtelter Ordnung bei Durchläufen. In diesem bestimmten Fall, weil der reduzierte Interleaver R 310 wie in Tabelle 5 ist, und dessen Inverse R–1 312 wie in Tabelle 6 ist, gibt es nur einen Graphen von 20 Knoten. Daher erfassten die beiden äußersten For-Schleifen nur einen Eintrittsknoten eines Graphen von Knoten.
-
-
-
Tabelle 7 zeigt Schritt-für-Schritt Werte von Variablen des Pseudo-Codes, wenn dieser mit R
310, wie in Tabelle 5, und R
–1 312, wie in Tabelle 6, ausgeführt wird. Gerade nummerierte Reihen stellen Werte von Variablen für den Zugriff bei ansteigender Ordnung dar, und ungerade nummerierte Reihen stellt Werte von Variablen für den Zugriff bei verschachtelter Ordnung dar. Die Buchhaltungsbits sind in den gerade nummerierten Reihen auf 1 eingestellt, und diese sind in Tabelle 7 nicht gezeigt.
Zähler | In-Adresse (k, kbus) | Zugewiesenes Steuerbit | Nächste In-Adresse (k, kbus) von R oder R–1 an (k, kexit) |
0 | (0,0) | b0;0 = 0 | (1,3) = R–1(0,1) |
1 | (1,3) | β1;1 = 0 | (2,3) = R(1,2) |
2 | (2,3) | b1;2 = 1 | (4,1) = R–1(2,2) |
3 | (4,1) | β0;4 = 0 | (4,3) = R(4,0) |
4 | (4,3) | b1;4 = 1 | (1,1) = R–1(4,2) |
5 | (1,1) | β0;1 = 0 | (1,2) = R(1,0) |
6 | (1,2) | b1;1 – 0 | (0,2) – R–1(1,3) |
7 | (0,2) | β1;0 = 1 | (2,1) = R(0,3) |
8 | (2,1) | b0;2 – 1 | (3,0) – R–1(2,0) |
9 | (3,0) | β0;3 = 1 | (4,0) = R(3,1) |
10 | (4,0) | b0;4 = 0 | (2,2) = R–1(4,1) |
11 | (2,2) | β1;2 = 1 | (3,2) = R(2,3) |
12 | (3,2) | b1;3 = 0 | (0,1) = R–1(3,3) |
13 | (0,1) | β0;0 – 0 | (3,1) – R(0,0) |
14 | (3,1) | b0;3 = 1 | (3,2) = R–1(3,0) |
15 | (3,2) | β1;3 = 1 | (1,1) = R(3,3) |
16 | (1,1) | b0;1 – 1 | (2,1) – R–1(1,0) |
17 | (2,1) | β0;2 = 0 | (0,3) = R(2,0) |
18 | (0,3) | b1;0 – 1 | (4,2) – R–1(0,2) |
19 | (4,2) | β1;4 = 1 | (0,0) = R(4,3) |
Tabelle 7
-
Zwei am wenigsten signifikante Steuerbits aus vier pro Zugriff wurden gelöst. Werte der beiden signifikantesten Steuerbits pro Zugang sind noch unbekannt. Aktuelle Werte von Steuerbits
320,
322 des 4-Tupel-Zugriffs bei ansteigender Reihenfolge bzw. Ordnung und des 4-Tupel-Zugriffs bei verschachtelter Reihenfolge bzw. Ordnung sind in Tabelle 8 aufgeführt.
k | Bits ansteigender Ordnung | Bits verschachtelter Ordnung |
b0,k | b1,k | b2,k | b3,k | β0,k | β1,k | β2,k | β3,k |
0 | 0 | 1 | | - | 0 | 1 | - | - |
1 | 1 | 0 | - | - | 0 | 0 | - | - |
2 | 1 | 1 | | - | 0 | 1 | - | - |
3 | 1 | 0 | | - | 1 | 1 | - | - |
4 | 0 | 1 | | - | 0 | 1 | - | - |
Tabelle 8
-
Ein weiterer beispielhafter Algorithmus in Form eines Pseudocodes wird im Hinblick auf das Lösen 314 von zwei signifikantesten Steuerbits des 4-Tupel-Butterfly-Netzwerks diskutiert. Diese Bits befinden sich in rechten Spalten des 4-Tupel-Butterfiy-Netzwerks in 2B. Ein Lösen von Bits in zweiten Spalten unterscheidet sich von einem Lösen von Bits in ersten Spalten. Der Algorithmus nutzt Bits in ersten Spalten bei einem Lösen von Bits in zweiten Spalten. Werte der Austrittsbusindex kexit werden aus dem 2-ten wenigsten signifikanten Bit des Busindex kbus berechnet. Die Anfangswerte der Buchhaltungsbits werden angenommen, 0 (Null) zu sein.
-
-
-
Durch Verwenden des reduzierten Turbointerleavers R
310 von Tabelle 5, dessen Inversen
312 von Tabelle 6, sowie Steuerbits von ersten Spalten
320,
322 aus Tabelle 8, um in dem Pseudocode-Algorithmus eingegeben zu werden, der in dem ersten beispielhaften Algorithmus vorstehend vor Tabelle 7 vorgestellt wurde, erhält man Schritt für Schritt Werte von Variablen des Algorithmus, wie in Tabelle 9 und Tabelle 10 gezeigt ist. In diesem Fall erfassen die beiden äußersten For-Schleifen zwei Eintrittsknoten zu Graphen von Knoten. Beide Graphen weisen zehn Knoten auf. Tabelle 9 zeigt Werte von Variablen des Algorithmus bei einem Lösen von Steuerbits des oberen 2-Tupel-Butterfly-Netzwerks in zweiten Spalten.
Zähler | In-Adresse (k, kbus) | Zugewiesenes Steuerbit | Nächste In-Adresse (k, kbus) von R oder R–1 an (k, kexit) |
0 | (0,0) | b2;0 = 0 | (2,0) = R–1(0,3) |
1 | (2,0) | β2;2 = 1 | (3,2) = R(2,3) |
2 | (3,2) | b2;3 = 1 | (0,0) = R–1(3,1) |
3 | (0,0) | β2;0 = 1 | (2,1) = R(0,3) |
4 | (2,1) | b2;2 = 0 | (1,2) = R–1(2,3) |
5 | (1,2) | β2;1 = 0 | (1,2) = R(1,0) |
6 | (1,2) | b2;1 = 1 | (3,3) = R–1(1,1) |
7 | (3,3) | β2;3 = 0 | (4,0) = R(3,1) |
8 | (4,0) | b2;4 = 0 | (4,0) = R–1(4,3) |
9 | (4,0) | β2;4 = 1 | (0,0) = R(4,3) |
Tabelle 9
-
Tabelle 10 zeigt Werte von Variablen des Algorithmus bei einer Lösung von Steuerbits des unteren 2-Tupel-Butterfly-Netzwerks in zweiten Spalten.
Zähler | In-Adresse (k, kbus) | Zugewiesenes Steuerbit | Nächste In-Adresse (k, kbus) von R oder R–1 an (k, kexit) |
10 | (0,1) | b3;0 = 0 | (4,2) = R–1(0,2) |
11 | (4,2) | β3;4 = 0 | (2,2) = R(4,1) |
12 | (2,2) | b3;2 = 1 | (3,0) = R–1(2,0) |
13 | (3,0) | β3,3 – 1 | (3,0) – R(3,2) |
14 | (3,0) | b3,3 – 0 | (0,1) – R–1(3,3) |
15 | (0,1) | β3;0 = 1 | (1,3) = R(0,2) |
16 | (1,3) | b3,1 = 1 | (2,1) = R–1(1,0) |
17 | (2,1) | β3;2 = 1 | (4,1) = R(2,2) |
18 | (4,1) | b3;4 = 1 | (1,1) = R–1(4,2) |
19 | (1,1) | β3;1 – 1 | (0,1) – (1,3) |
Tabelle 10
-
Somit wurden 4 Bit große Steuersignale der ansteigenden Ordnung und verschachtelten Zugriffsordnung für das 4-Tupel-Butterfly-Netzwerk zum Routen von Datenwerten zu und von den vier RAMs gelöst. Die Steuerbits sind in Tabelle 11 Zugriff für Zugriff für k = 0, 1, 2, 3 und 4 aufgeführt.
k | Bitsansteigender Ordnung | Bits verschachtelter Ordnung |
b0,k | b1,k | b2,k | b3,k | β0,k | β1,k | β2,k | β3,k |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
2 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
3 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
4 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
Tabelle 11
-
3C zeigt auf allgemeiner Ebene, wie man aus Steuersignalen
320,
322 des Zugriffs bei ansteigender Ordnung und der verschachtelten Ordnung, sowie von den 2-teiligen RAM-Adressen eines reduzierten Interleavers
310, einen Adressengenerator
202B produziert wird, der verwendet werden kann, um auf RAMs über ein entsprechendes Butterfly-Netzwerk zugreifen zu können. Im Fall des 4-Tupel Butterfly-Netzwerks sind die physikalischen Adressen bei Zugriff bei ansteigender Ordnung Vektoren (k, k, k, k) auf jeweiligen Bussen 0, 1, 2, 3, für k = 0, 1, 2, 3 und 4. Tabelle 12 veranschaulicht physikalische Adressen und Steuerbits des Zugriffs bei aufsteigender Ordnung für das 4-Tupel Butterfly-Netzwerk.
k | Physikalische Adresse ansteigender Ordnung | Steuerbits ansteigender Ordnung |
bus0 | bus1 | bus2 | bus3 | b0,k | b1,k | b2,k | b3,k |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
2 | 2 | 2 | 2 | 2 | 1 | 1 | 0 | 1 |
3 | 3 | 3 | 3 | 3 | 1 | 0 | 1 | 0 |
4 | 3 | 3 | 3 | 3 | 0 | 1 | 0 | 0 |
Tabelle 12
-
Physikalische Adressen bei verschachtelter Ordnung können von einem reduzierten Turbointerleaver durch Entfernen von Busindizes aus 2-teiligen RAM-Adressen abgeleitet werden. Physikalische Adressen und Steuerbits der physikalischen Adressen bei verschachtelter Ordnung des 4-Tupel-Butterfly-Netzwerks sind in Tabelle 13 aufgeführt. Der reduzierte Interleaver ist Tabelle 5 entnommen, und Busindizes werden weggelassen.
k | Physikalische Adress verschachtelter Ordnu | Steuerbits verschachtelter Ordnung |
bus0 | bus1 | bus2 | bus3 | β0,k | β1,k | β2,k | β3,k |
0 | 3 | 3 | 1 | 2 | 0 | 1 | 1 | 1 |
1 | 1 | 4 | 2 | 0 | 0 | 0 | 0 | 1 |
2 | 0 | 1 | 4 | 3 | 0 | 1 | 1 | 1 |
3 | 2 | 4 | 3 | 1 | 1 | 1 | 0 | 1 |
4 | 4 | 2 | 0 | 0 | 0 | 1 | 1 | 0 |
Tabelle 13
-
In diesem bestimmten Beispiel weisen Tabelle 12 und Tabelle 13 Zugriffsinformationen auf, die eine physikalische Adresse Einheit 202B eines Turbodecoders für den Zugriff auf die vier RAMs über das 4-Tupel-Butterfly-Netzwerk anwendet. Die Interleaver-Ordnungs physikalischen Adressvektoren in Tabelle 13 werden durch ein 4-Tupel-Butterfly-Netzwerk wie in 2B vor dem Zugriff auf die Speicher RAM0, RAM1, RAM2 und RAM3 permutiert. Zum Beispiel weist der physikalische Adressvektor (1, 4, 2, 0) des 2-ten verschachtelten Zugriffs (k = 1) die Steuerbits (0, 0, 0, 1) für das 4-Tupel-Butterfly-Netzwerk auf. Der physikalische verschachtelte Adressvektor (1, 4, 2, 0) wird dem Butterfly-Netzwerk von links nach rechts zugeführt. Dann entsteht ein permutierter physikalischer Adressvektor (1, 0, 2, 4), dessen Komponenten angewandt werden, um auf RAM0, RAM1, RAM2 bzw. RAM3 zuzugreifen.
-
Nachstehend ist ein beispielhaftes ANSI-C-Computerprogramm zum direkten Lösen von Steuerbits von Butterfly-Netzwerken sowohl für die lineare (ansteigende) und die verschachtelte Zugriffsordnung und dem oben erwähnten 8-Tupel Parallelzugriff gezeigt. Während dies nur Steuerbits für die erste/linke Spalte der 2A löst (in dem nachstehenden Algorithmus sind b0 bis b3 die Steuerbits, die an den selben bx Schaltern von 2A angewendet werden), wobei der nachstehende Computerprogrammcode leicht ebenfalls auf die anderen Spalten erweitert werden kann.
-
Unmittelbar unterhalb ist ein beispielhafter ANSI-C-Code für ein Lösen von Steuerbits b
0 bis b
3 von
2A gezeigt wobei erklärende Texte in Fettdruck enthalten sind:
-
Unmittelbar unterhalb befindet sich ein beispielhaftes ANSI-C-Programm, das zeigt, wie ein sich gegenwärtig in kommerziellen Gebrauch befindliches Mehrfachzugriffsschema in ein vereinheitlichtes Mehrfachzugriffsschema für ein 8-Tupel-Butterfly-Netzwerk abgebildet werden kann.
-
-
-
-
Ein technischer Effekt von bestimmten Ausführungsbeispielen dieser Lehren (der erste Teil, Lösen der Steuerbits) ist, dass weniger Speicherplätze zum Turbodekodieren benötigt werden, als in früheren Lösungen. Beispielsweise werden bei dem 8-Tupel-Parallelzugriff die Mehrfachzugriffsfunktion 3 Bits pro Wert, und es gibt zwei Sätze von Werten, einen für ein Zugriffsschema bei ansteigender Ordnung und einen anderen für ein Zugriffsschema bei verschachtelter Ordnung, sodass eine Gesamtanzahl von benötigten Bits 3·N·2 = 6·N Bits ist (N ist die Länge des Turbointerleavers). Ausführungsbeispiele dieser Lehren benötigen nur zwölf Steuerbits pro 8-Tupel, denn es gibt zwei solcher Sätze von Steuerbits, plus vier Bits pro 8-Tupel, zum Buchhalten, was Gesamt 12·(N/8)·2 + 4·N/8 = 3N + N/2 = 3,5·N Bits ergibt. Darüber hinaus sind die gelösten Steuerbits fertig für eine Verwendung in exemplarischen Ausführungsformen dieser Lehren, wohingegen frühere Lösungen mehrfach Zugriffsfunktionswerte zu Steuerbits als ein separater Schritt abbilden müssen. Ein technischer Effekt von bestimmten Ausführungsbeispielen dieser Lehren (der zweite Teil, Ersetzen der ursprünglichen Mehrfachzugriffsschemen mit physikalischen Speicheradressen kombiniert mit Busidentifizieren) ermöglicht schnellere Algorithmen zum Lösen von Steuerbits von Butterfly-Netzwerken als gegenwärtige Verfahren. Indizes der Busse sind dann als ein Teil der physikalischen Speicheradresse verfügbar, und müssen nicht als ein separater Schritt berechnet werden.
-
Nun werden detailliert mit Bezugnahme auf 10 weitere bestimmte exemplarische Ausführungsformen aus der Perspektive einer elektronischen Vorrichtung, wie etwa beispielsweise ein mobiles Endgerät, eine Basisstation, oder eine oder mehrere Komponenten davon (Modem, Prozessor in Kombination mit einem Softwareprogramm, das greifbar in einem Speicher gespeichert ist, etc.), die einen Turbodecoder verwenden, beschrieben.
-
10 ist ein Logik-Ablaufdiagramm, das berücksichtigt werden könnte, um die Operation eines Beispiels eines Verfahrens sowie eines Ergebnisses eines Ausführens eines Computerprogramms, das in einem computerlesbaren Speicher gespeichert ist, zu veranschaulichen, sowie eine spezifische Weise, auf die Komponenten einer elektronischen Vorrichtung konfiguriert sind, um eine Operation dieser elektronischen Vorrichtung zu bewirken. Die verschiedenen in 10 gezeigten Blöcke können ebenso als eine Vielzahl von gekoppelten Logikschaltungselementen betrachtet werden, die aufgebaut sind, um die zugewiesenen Funktion(en) auszuführen, oder ein spezifisches Ergebnis von Strings eines Computerprogrammcodes, der in einem Speicher gespeichert ist.
-
Solche Blöcke und die Funktionen, die diese repräsentieren, sind nicht einschränkende Beispiele, und können in verschiedenen Komponenten angewendet werden, wie etwa integrierte Schaltungschips und Module, und die exemplarischen Ausführungsformen dieser Erfindung können in einer Vorrichtung realisiert werden, die als eine integrierte Schaltung verkörpert ist. Die integrierte Schaltung oder Schaltungen können eine Verschaltung (sowie möglicherweise eine Firmware) zum Verkörpern zumindest einem oder mehreren eines Datenprozessors oder Datenprozessoren, eines digitalen Signalprozessors oder Prozessoren, Basisbandschaltung und Funkfrequenzschaltung, die konfigurierbar sind, um gemäß den exemplarischen Ausführungsformen dieser Erfindung zu arbeiten, aufweisen.
-
10 beginnt in Block 1002, der zusammenfasst, dass ein direktes Lösen von Steuerbits für ein Butterfly-Netzwerk von Schaltern, iterativ für jede aufeinanderfolgende funktionale Spalte der Schalter, um Datenwerte parallel gemäß einem Mehrfachzugriffsschema durch das Butterfly-Netzwerk von Schaltern zu einer Vielzahl von Speicherplätzen zu routen; aufweist:
für jeden der Datenwerte, Erzeugen einer Adresse von einem der Speicherplätze mit einem angehängten Busindex, der in das Butterfly-Netzwerk von Schaltern führt, basierend auf dem Mehrfachzugriffsschema; und
Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks, um Steuerbits einer nächsten funktionalen Spalte des Butterfly-Netzwerks von Schaltern bei einem Zugriff linearer Ordnung und bei einem Zugriff verschachtelter Ordnung durch Starten von dem Busindex j und der physikalischen Adresse k zu lösen.
-
Ein Mehrfachzugriffsschema bestimmt, wie eine logische Adresse durch einen Busindex und eine physikalische Adresse zu ersetzen ist. Wenn beispielsweise j = ai(k)j befindet sich in {0, 1, 2, ..., N-1}, i befindet sich in {0, 1, 2, ..., 2y-1}, und k befindet sich in {0, 1, 2, ..., N/2y-1}, dann wird j durch (k,i) ersetzt, wobei k eine physikalische Adresse ist, und i ein Busindex ist.
-
Block 1004 stellt einen zusätzlichen Schritt weiterhin zu Block 1002 bereit. Insbesondere, nach Erfassen eines Schalters in einer funktionalen Spalte des Butterfly-Netzwerks bei einem Zugriff bei linearer Ordnung mit einem ungelösten Steuerbit (dies gibt eine iterative äußere Schleife zum Suchen nach unbehandelten Schaltern an), während ein Startbusindex j und eine physikalische Startadresse k für den erfassten Schalter für den Zugriff bei linearer Ordnung berechnet. Andere Busindizes und physikalische Adressen für den Zugriff bei linearer Ordnung werden von einem reduzierten Turbointerleaver bei Busindizes und physikalischen Adressen eines Busindex und einer Adresse einer verschachtelten Zugriffsordnung erhalten. Dann werden Steuerbits durch Durchlaufen von Schleifen durch eine Sequenz von Schaltern in der gleichen funktionalen Spalte des Butterfly-Netzwerks in unterschiedlichen Parallelzugriffen gelöst, bis zum Zurückkehren zu dem Startbus und der physikalischen Startadresse. Block 1004 gibt weitere Details an, wie die Steuerbits direkt gelöst werden; und zwar wird für jeden von 2y Datenwerten, die von und zu einem von 2y Speicherplätzen parallel zu lesen oder zu schreiben sind (y ist eine nicht negative Ganzzahl), wird funktionale Spalte für funktionale Spalte der Schalter des Butterfly-Netzwerks ein Steuerbit eines Schalters für den Zugriff bei linearer Ordnung auf einer Route von einem Bus eines Index für den Zugriff bei linearer Ordnung zu einem der 2y Speicherplätzen mit einer physikalischen Adresse für den parallelen Zugriff bei linearer Ordnung der 2y Datenwerte gelöst.
-
Block 1006 stellt zusätzliche Details für die verschachtelte Ordnung bereit. Ein Busindex nk,j und eine physikalische Adresse mk,j für den Zugriff bei verschachtelter Ordnung werden von einem reduzierten De-Interleaver bei einem Busindex und einer physikalischen Adresse eines Zugriffs bei linearer Ordnung erhalten. Und für diesen Zugriff bei verschachtelter Ordnung weist ein direktes Lösen der Steuerbits zusätzlich auf, funktionale Spalte für funktionale Spalte für Spalte des Butterfly-Netzwerks, Lösen eines Steuerbits eines Zugriffs bei verschachtelter Ordnung βj;k eines Schalters auf einer Route oder eines Pfads von dem Bus des Busindex für den Zugriff bei verschachtelter Ordnung zu einem der 2y Speicherplätze mit der physikalischen Adresse für den parallelen Zugriff bei verschachtelter Ordnung der 2y Datenwerte. Ein Lösen von einem dieser Schaltsteuerbits bezüglich des Busses ist beispielhaft in den 7 bis 9 und diesbezüglichen Beschreibung gezeigt.
-
Nicht insbesondere in 10 gezeigt, umfasst ein Anwenden der gelösten Steuerbits wie gesagt in Block 1002 ein Ausgeben an eine Speicheradresseinheit des reduzierten Turbointerleavers:
der physikalischen Adressen für den parallelen Zugriff bei linearer Ordnung der 2y Datenwerte und für den parallelen Zugriff bei verschachtelter Ordnung der 2y Datenwerte;
einen ersten Satz von Steuerbits, der alle der gelösten Steuerbits eines Zugriffs bei linearer Ordnung bj;k für den parallelen Zugriff bei linearer Ordnung bei 2y Datenwerte aufweist; und
einen zweiten Satz von Steuerbits der alle der gelösten Steuerbits eines Zugriffs bei verschachtelter Ordnung βj;k für den parallelen Zugriff bei verschachtelter Ordnung der 2y Datenwerte aufweist.
-
Ein weiterer Weg zum Charakterisieren des Schritts von Block 1002 des direkten Lösens des Steuerbits ist:
für einen Eintrittsschalter des Butterfly-Netzwerks, Zuweisen eins Steuerbits eines k1-ten Zugriffs bei linearer Ordnung und Berechnen eines Austrittsbusindex kexit;1 für den Eintrittsschalter;
Beziehen eines nächsten Eintrittsschalters des Butterfly-Netzwerks für den Zugriff bei verschachtelter Ordnung durch Einstellen von (k2; kbus;2) = R–1 (k1, kexit;1) und Zuweisen eines nächsten Steuerbits, in dem die Adresse k2 dem k2-ten Zugriff bei verschachtelter Ordnung entspricht, wobei kbus;2 einen Eintrittsbus für das Butterfly-Netzwerk identifiziert;
Beziehen eines nächsten Austrittsbusindex kexit;2 für den nächsten Eintrittsschalter;
Bestimmen einer nächsten anschließenden Adresse eines nächsten anschließenden Linearzugriffsordnungsschalters durch Einstellen von (k3; kbus;3) = R (k2, kexit;2);
und iteratives Wiederholen der vorhergehenden Schritte, funktionale Spalte für funktionale Spalte, für alle Schalter des Butterfly-Netzwerks.
-
Ein weiterer Weg zum Charakterisieren des Erzeugungsschrittes in Block 1002 ist:
für den Zugriff bei linearer Ordnung, Ersetzen von Parallel-Linearordnungszugriffsvektoren mit neuen Parallel-Linearordnungszugriffsvektoren, die jeweils eine Adresse k von einem der Datenwerte und einen Busindex j, der einen Linearordnungszugriffseingangsbus zu dem Butterfly-Netzwerk identifiziert, aufweist; und
für den Zugriff bei verschachtelter Ordnung, Ersetzen von Parallel-Verschachteltordnungszugriffsvektoren mit neuen Parallel-Verschachteltordnungszugriffsvektoren, die jeweils eine Adresse nk,j von einem der Datenwerte und einen Busindex nk,j, der einen Verschachteltordnungszugriffseingangsbus zu dem Butterfly-Netzwerk identifiziert, aufweist.
-
Nun wird Bezug auf 11 genommen, zum Veranschaulichen einer vereinfachten Blockdarstellung von Beispielen von verschiedenen elektronischen Geräten und Vorrichtungen, die für einen Gebrauch des Praktizierens der exemplarischen Ausführungsformen dieser Erfindung geeignet sind. Diese sind nicht einschränkend, sondern werden als beispielhafte Vorrichtungen betrachtet, die diese Lehren vorteilhaft verwenden können. In 11 ist ein Drahtlosnetzwerk (Basisstation/Zugriffsknoten 22 und Mobilitätsverwaltungseinheit MME 24) für eine Kommunikation über eine Drahtlosverbindung 21 mit einer Vorrichtung 20, wie etwa einem Nutzergerät, mobilem Endgerät oder anderen mobilen drahtlosen Funkvorrichtung eingerichtet. Die Mobilitätsverwaltungseinheit 24 kann eine Kollektivität mit weiteren Netzwerken bereitstellen, die beispielsweise ein öffentliches geschaltetes Telefonnetzwerk PSTN und/oder ein Datenkommunikationsnetzwerk/Internet über die S11-Schnittstelle, und ist kommunikativ mit anderen (nicht gezeigten) MMEs gekoppelt.
-
Die mobile drahtlose Funkvorrichtung oder UE 20 umfasst eine Verarbeitungseinrichtung, wie etwa zumindest einen Digitalprozessor (DP) 20A, eine Speichereinrichtung, wie etwa mindestens einen computerlesbaren Speicher (MEM) 20B, der mindestens ein Computerprogramm (PROG) 20C speichert, eine Kommunikationseinrichtung, wie etwa einen Sender TX 20D und einen Empfänger RX 20E für bidirektionale drahtlose Kommunikationen mit der Basisstation 22 über eine oder mehrere Antennen 20F.
-
Der drahtlose Zugangsknoten/Basisstation 22 umfasst ebenso eine Verarbeitungseinrichtung, wie etwa mindestens einen Digitalprozessor (DP) 22A, eine Speichereinrichtung, wie etwa mindestens einen computerlesbaren Speicher (MEM) 22B, der mindestens ein Computerprogramm (PROG) 22C speichert, und eine Kommunikationseinrichtung, wie etwa einen Sender TX 22D und einen Empfänger RX 22E für bidirektionale drahtlose Kommunikationen mit der mobilen drahtlosen Funkvorrichtung 20 über eine oder mehrere Antennen 22F. Es gibt ebenso einen Daten- und/oder Steuerpfad S1, der die Basisstation 22 mit der Mobilitätsverwaltungseinheit 24 koppelt.
-
Für jede der mobilen drahtlosen Funkvorrichtungen 20 und die Basisstation 22 ist ein Turbodecoderzugriffsalgorithmus 20G/22G zum Lösen der Steuerbits eines Butterfly-Netzwerks Spalte für Spalte und zum Anhängen von Businformationen an Speicheradressplätze gezeigt, wie vorstehend beispielhaft dargelegt wurde. Die nachstehend detailliert beschriebene MME 24 kann ebenso eine gleiche Funktionalität aufweisen.
-
Gleichermaßen umfasst die Mobilitätsverwaltungseinheit 24 eine Verwaltungseinheit, wie etwa mindestens einen Digitalprozessor (DP) 24A, eine Speichereinrichtung, wie etwa mindestens einen computerlesbaren Speicher (MEM) 24B, der mindestens ein Computerprogramm (PROG) 24C speichert, und eine Kommunikationseinrichtung, wie etwa ein Modem 24D für bidirektionale Kommunikationen mit der Basisstation 22 und mit sich außerhalb befindlichen Netzwerken (über eine Systemarchitekturevolution SAE-Gateway oder ähnlich) über die Schnittstelle S11. Während nicht insbesondere für die mobile drahtlose Funkvorrichtung 20 oder Basisstation 22 veranschaulicht ist, wird von diesen Vorrichtungen ebenso angenommen, als Teil derer drahtlosen Kommunikationseinrichtung ein Modem aufzuweisen, das an einem RF-Frontendchip innerhalb dieser Vorrichtungen 20, 22 eingebaut sein kann, und ebenso den TX 20D/22D und den RX 20E/22E trägt.
-
Als mindestens eines der PROGs 22C in der Basistation 22 und/oder innerhalb der mobilen drahtlosen Funkvorrichtung 20 und/oder der MME 24 wird angenommen, Programminstruktionen zu umfassen, die, wenn diese durch den zugewiesenen DP 22A/20A/24A ausgeführt werden, die Vorrichtung ermöglichen, um gemäß den exemplarischen Ausführungsformen dieser Erfindung, die vorstehend detailliert beschrieben wurden, zu arbeiten. Diesbezüglich können die exemplarischen Ausführungsformen diese Erfindung zumindest teilweise durch den MEM 22B/20B/24B gespeicherten Computersoftware bestehen, die durch den DP 22A/20A/24A der Basisstation 22/mobilen drahtlosen Funkvorrichtung 20/MME 24 ausführbar ist oder durch Hardware, oder durch eine Kombination von greifbar gespeicherter Software und Hardware (und greifbar gespeicherter Firmware) implementiert sein. Elektronische Vorrichtungen, die diese Aspekte der Erfindung implementieren, müssen nicht die gesamte Basisstation 22 oder mobile drahtlose Funkvorrichtung 20 oder MME 24 sein, sondern exemplarische Ausführungsformen können durch eine oder mehrere Komponenten von diesen, wie etwa die vorstehend beschriebene greifbar gespeicherte Software, Hardware, Firmware und DP, oder ein System auf einem Chip SOC oder eine anwendungsspezifische integrierte Schaltung ASIC, oder ein digitaler Signalprozessor DSP implementiert sein.
-
Verschiedene Ausführungsbeispiele der computerlesbaren MEMs 20B/22B/24B umfassen beliebige Datenspeichertechnologietypen, die für die lokale technische Ausstattung geeignet sind, umfassend, jedoch nicht einschränkend, halbleiterbasierte Speichervorrichtungen, magnetische Speichervorrichtungen und Systeme, optische Speichervorrichtungen und Systeme, Festsspeicher, entfernbare Speicher, Diskettenspeicher, Flashspeicher, DRAM, SRAM, EEPROM, und dergleichen. Verschiedene Ausführungsbeispiele der DPs 20A/22A/24A umfassend, sind jedoch nicht beschränkt auf, allgemeine Anwendungscomputer, Spezialanwendungscomputer, Mikroprozessoren, digitale Signalprozessoren (DSPs) und Mehrkernprozessoren.
-
Die vorstehenden Ausführungsbeispiele sollten als veranschaulichende Beispiele der Erfindung verstanden sein. Weitere Ausführungsbeispiele der Erfindung sind vorstellbar. Es sollte verstanden sein, dass ein beliebiges Merkmal, das in Bezug auf ein beliebiges Ausführungsbeispiel beschrieben wurde, allein oder in Kombination mit anderen beschriebenen Merkmalen verwendet werden kann, und kann ebenso in Kombination mit einem oder mehreren Merkmalen von beliebigen anderen der Ausführungsbeispiele oder eine beliebige Kombination von beliebigen anderen der Ausführungsbeispiele verwendet werden. Darüber hinaus können vorstehend nicht beschriebene Äquivalente und Modifikationen ebenso angewendet werden, ohne von dem Umfang der Erfindung abzuweichen, der in den anhängenden Patentansprüchen definiert ist.