DE112013003191T5 - Bestimmen von Steuerbits von Butterfly-Netzwerken für paralleles Turbo-Decodieren - Google Patents

Bestimmen von Steuerbits von Butterfly-Netzwerken für paralleles Turbo-Decodieren Download PDF

Info

Publication number
DE112013003191T5
DE112013003191T5 DE112013003191.4T DE112013003191T DE112013003191T5 DE 112013003191 T5 DE112013003191 T5 DE 112013003191T5 DE 112013003191 T DE112013003191 T DE 112013003191T DE 112013003191 T5 DE112013003191 T5 DE 112013003191T5
Authority
DE
Germany
Prior art keywords
access
bus
butterfly network
order
linear
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112013003191.4T
Other languages
English (en)
Inventor
Esko Juhani Nieminen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE112013003191T5 publication Critical patent/DE112013003191T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • H03M13/2987Particular arrangement of the component decoders using more component decoders than component codes, e.g. pipelined turbo iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6533GPP HSDPA, e.g. HS-SCCH or DS-DSCH related
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65583GPP2
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

Steuerbits für Schalter eines Butterfly-Netzwerks werden direkt iterativ für jede aufeinanderfolgende funktionale Spalte von Schaltern zum Routen von Datenwerten parallel gemäß einem Mehrfachzugriffsschema durch das Butterfly-Netzwerk zu Speicherplätzen gelöst. Eine Speicherplatzadresse und ein angehängter Busindex, der in das Butterfly-Netzwerk führt, werden erzeugt. Ein Linearordnungsbusindex und eine physikalische Adresse werden für einen Schalter mit einem ungelösten Steuerbit bestimmt. Die gelösten Steuerbits werden angewendet, um Steuerbits einer nächsten funktionalen Spalte mit einer linearen Ordnung und verschachtelten Ordnung durch Starten von dem Busindex und der physikalischen Adresse zu lösen. Die lineare Ordnung wird durch einen reduzierten Turbo-De-Interleaver zu der verschachtelten Ordnung bewegt, und die verschachtelte Ordnung wird durch einen reduzierten Turbointerleaver zu der linearen Ordnung bewegt, bis eine Sequenz von Steuerbits bezüglich des Startbusindex und der physikalischen Startadresse gelöst wird.

Description

  • 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 46 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 aj(k) aufzuweisen, die definiert sind durch:
    (a0(k), a1(k), a2(k) a3(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(a0(k)), T(a1(k)), T(a2(k)), und T(a3(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 aj(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(aj(k)) = am(n) und anschließendem Ersetzen von T(aj(k)) durch (n,m) und ak(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(a3(1)) = T(19 – 2·1) = T(17) = 1 und 1 = a1(0). Daher werden der Wert T(a3(1)) = 1 = a1(0) und der Wert a3(1) = 17 durch (0,1) und (1,3) bzw. R(1,3) = (0,1) ersetzt. Wenn diese Substitution alle 20 (logische) Adressen T(aj(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/2y-1 und für m = 0, 1, 2, ..., 2y-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 (kaddr1, kbus1) = R(R–1(kaddr1, kbus1)) = R(kaddr2, kbus2) mit (kaddr2, kbus2) = R–1(kaddr1, kbus1) 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(kaddr3, kbus3) = (kaddr4, kbus4). 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 2y 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.
  • Figure DE112013003191T5_0002
  • Figure DE112013003191T5_0003
  • 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.
  • Figure DE112013003191T5_0004
  • Figure DE112013003191T5_0005
  • 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 b0 bis b3 von 2A gezeigt wobei erklärende Texte in Fettdruck enthalten sind:
    Figure DE112013003191T5_0006
    Figure DE112013003191T5_0007
  • 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.
  • Figure DE112013003191T5_0008
  • Figure DE112013003191T5_0009
  • Figure DE112013003191T5_0010
  • 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.

Claims (24)

  1. Verfahren, mit: direktem 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 Turbo-Interleaver, bis eine Sequenz von Steuerbits bezüglich des Startbusindex j und der physikalischen Startadresse k gelöst wurde.
  2. Verfahren gemäß Anspruch 1, mit: Eintreten in das Butterfly-Netzwerk eines Zugriffs mit linearer Ordnung entlang eines Busses eines Index b und mit einer physikalischen Adresse c; und in dem ein direktes Lösen des Steuerbits eines Schalters aufweist: für jeden von 2y Datenwerten, die von oder zu einem von 2y-Speicherplätzen parallel zu lesen oder zu schreiben sind, wobei y eine nicht negative Ganzzahl ist, funktionale Spalte für funktionale Spalte für Schalter des Butterfly-Netzwerks von y Spalten, Lösen eines Steuerbits des Zugriffs mit linearer Ordnung des Schalters auf einer Route von dem b-ten Bus für den Zugriff mit linearer Ordnung zu einem der 2y Speicherplätze mit der physikalischen Adresse c für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte; und Beziehen eines Austrittsbusindex von dem Butterfly-Netzwerk entsprechend einem anderen Eingangsanschluss des Schalters und des b-ten Busses.
  3. Verfahren gemäß Anspruch 2, mit: Eintreten in das Butterfly-Netzwerk eines Zugriffs mit verschachtelter Ordnung entlang eines Busses eines Index m und mit einer physikalischen Adresse n, und in dem ein direktes Lösen des Steuerbits eines Schalters aufweist: funktionale Spalte für funktionale Spalte für Schalter des Butterfly-Netzwerks von y-Spalten, Lösen eines Steuerbits eines Zugriffs mit verschachtelter Ordnung des Schalters auf einer Route von dem m-ten Bus für den Zugriff mit verschachtelter Ordnung zu einem der 2y Speicherplätze mit der physikalischen Adresse n für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte; und Beziehen eines Austrittsbusindex von dem Butterfly-Netzwerk entsprechend einem anderen Eingangsanschluss des Schalters und des m-ten Busses.
  4. Verfahren gemäß Anspruch 3, in dem ein Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks, um die Datenwerte zu Routen, eine Ausgabe an eine Speicheradresseinheit eines Turbodecoders aufweist: die physikalischen Adressen für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte und für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte; ein erster Satz von Steuerbits, die alle die gelösten Steuerbits eines Zugriffs mit linearer Ordnung bj;k für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte aufweist; und ein zweiter Satz von Steuerbits, der alle der gelösten Steuerbits des Zugriffs mit verschachtelter Ordnung βj;k für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte aufweist.
  5. Verfahren gemäß Anspruch 4, mit Weiterleiten der physikalischen Adressen für den Zugriff mit verschachtelter Ordnung an den Turbodecoder durch Permutieren von verschachtelten physikalischen Adressvektoren durch das Butterfly-Netzwerk mit entsprechenden der gelösten Steuerbits des Zugriffs mit verschachtelter Ordnung βj;k.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, in dem ein direktes Lösen der Steuerbits aufweist: für einen Eintrittsbus des Butterfly-Netzwerks, Zuweisen eines Steuerbits eines Schalters eines k1-ten Zugriffs mit linearer Ordnung und Berechnen eines Austrittsbusindex kexit;1 für den Schalter; Beziehen eines nächsten Eintrittsbusses des Butterfly-Netzwerks für den Zugriff mit verschachtelter Ordnung durch Einstellen von (k2; kbus;2) = R–1(k1, kexit;1) und Zuweisen eines nächsten Steuerbits eines Schalters, in dem eine Adresse k2 dem k2-ten Zugriff mit verschachtelter Ordnung entspricht, wobei Busindex kbus;2 einen Zugriffsbus zu dem Butterfly-Netzwerk identifiziert; Beziehen eines nächsten Austrittsbusindex kexit;2 für den Schalter; Bestimmen einer nächsten anschließenden Adresse eines nächsten Bus mit linearer Zugriffsordnung durch Einstellen von (k3; kbus;3) = R(k2, kexit;2); und iteratives Wiederholen der vorhergehenden Schritte bis zum Zurückkehren zu dem Startbus und der physikalischen Startadresse, anschließend (k3, kbus;3) = (k,j), funktionale Spalte für funktionale Spalte, für alle Schalter des Butterfly-Netzwerks.
  7. Verfahren gemäß einem der Ansprüche 2 bis 6, in dem ein Beziehen des Austrittsbusindex aufweist: Anwenden einiger der gelösten Steuerbits für vorhergehende funktionale Spalten des Butterfly-Netzwerks, um den Austrittsbusindex zu dem Schalter entlang eines Teils des Butterfly-Netzwerks zu berechnen.
  8. Verfahren gemäß einem der Ansprüche 1 bis 7, in dem das Mehrfachzugriffsschema dadurch gekennzeichnet ist, dass dieses Adressfunktionen aj(k) für j = 0, 1, 2, ..., 2y-1 und für k = 0, 1, 2, ..., N/2y-1 aufweist, wobei N eine Länge eines Turbointerleavers ist; und ein Erzeugen für jeden der Datenwerte einer Adresse von einem der Speicherplätze mit einem angehängten Busindex aufweist: für den Zugriff mit linearer Ordnung, Austauschen jeder Vektorkomponente aj(k) von Parallel-Linearordnungsmehrfachzugriffsvektoren mit neuen Parallel-Linearordnungszugriffsvektoren, in denen jede Komponente eine Adresse k von einem der Datenwerte und einen Busindex j, der einen Linearordnungszugriffs-Eingangsbus zu dem Butterfly-Netzwerk identifiziert, aufweist; und für den Zugriff mit verschachtelter Ordnung, Ersetzen jeder Vektorkomponente T(aj(k)) von Parallel-Verschalteltordnungszugriffsvektoren mit neuen Parallel-Verschalteltordnungszugriffsvektoren, in denen jede Komponente eine Adresse nk,j von einem der Datenwerte und einen Busindex mk,j der einen Verschachteltordnungzugriffseingangsbus zu dem Butterfly-Netzwerk angibt, aufweist, und die Adresse nk,j sowie der Busindex mk,j sich auf die Vektorkomponente T(aj(k)) durch die Gleichung T(aj(k)) = amk,j(nk,j) beziehen.
  9. Vorrichtung zum Steuern eines Turbodecoders, 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.
  10. Vorrichtung gemäß Anspruch 9, in der das Verarbeitungssystem konfiguriert ist, um die Vorrichtung zu bewirken, in das Butterfly-Netzwerk eines Zugriffs mit linearer Ordnung entlang eines Busses eines Index b und mit einer physikalischen Adresse c einzutreten; und in dem ein direktes Lösen des Steuerbits eines Schalters aufweist: für jeden von 2y Datenwerten, die von oder zu einem von 2y Speicherplätzen parallel zu lesen oder zu schreiben sind, wobei y eine nicht negative Ganzzahl ist, funktionale Spalte für funktionale Spalte für Schalter des Butterfly-Netzwerks von y Spalten, lösen eines Steuerbits eines Zugriffs mit linearer Ordnung des Schalters auf einer Route von dem b-ten Bus für den Zugriff mit linearer Ordnung zu einen der 2y Speicherplätze mit der physikalischen Adresse c für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte; und Erhalten eines Austrittsbusindex von dem Butterfly-Netzwerk entsprechend einem anderen Eingangsanschluss des Schalters und des b-ten Busses.
  11. Vorrichtung gemäß Anspruch 10, in der das Verarbeitungssystem konfiguriert ist, um die Vorrichtung zu Bewirken, in das Butterfly-Netzwerk eines Zugriffs mit verschachtelter Ordnung entlang eines Busses eines Index m und mit einer physikalischen Adresse n einzutreten; und in der ein direktes Lösen der Steuerbits eines Schalters aufweist: funktionale Spalte für funktionale Spalte für Schalter des Butterfly-Netzwerks von y-Spalten, Lösen eines Steuerbits eines Zugriffs mit verschachtelter Ordnung des Schalters auf einer Route des m-ten Busses für den Zugriff mit verschachtelter Ordnung zu einem der 2y Speicherplätze mit der physikalischen Adresse n für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte; und Erhalten eines Austrittsbusindex von dem Butterfly-Netzwerk entsprechend einem anderen Eingangsanschluss des Schalters und des m-ten Busses.
  12. Vorrichtung gemäß Anspruch 11, in der ein Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks, um die Datenwerte zu routen, eine Ausgabe an eine Speicheradresseinheit eines Turbodecoders aufweist: die physikalische Adresse für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte und für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte; einen ersten Satz von Steuerbits, die alle der gelösten Steuerbits des Zugriffs mit linearer Ordnung bj;k für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte aufweist, und einen zweiten Satz von Steuerbits, der alle der gelösten Steuerbits des Zugriffs mit verschachtelter Ordnung βj;k für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte aufweist.
  13. Vorrichtung gemäß Anspruch 12, in der das Verarbeitungssystem konfiguriert ist, um die Vorrichtung zu bewirken, um die physikalische Adresse für den Zugriff mit verschachtelter Ordnung zu dem Turbodecoder durch Permutieren von verschachtelten physikalischen Adressvektoren durch das Butterfly-Netzwerk mit entsprechenden der gelösten Steuerbits des Zugriffs mit verschachtelter Ordnung βj;k weiterzuleiten.
  14. Vorrichtung gemäß einem der Ansprüche 9 bis 13, in der ein direktes Lösen der Steuerbits aufweist: für einen Eintrittsbus des Butterfly-Netzwerks, Zuweisen eines Steuerbits eines Schalters eines k1-ten Zugriff mit linearer Ordnung und Berechnen eines Austrittsbusindex kexit;1 für den Schalter; Beziehen eines nächsten Eintrittsbusses des Butterfly-Netzwerks für den Zugriff mit verschachtelter Ordnung durch Einstellen von (k2; kbus;2) = R–1(k1, kexit;1) und Zuweisen eines nächsten Steuerbits eines Schalters, in der die Adresse k2 dem k2-ten Zugriff mit verschachtelter Ordnung entspricht, wobei Busindex kbus;2 einen Eintrittsbus zu dem Butterfly-Netzwerk identifiziert; Beziehen eines nächsten Austrittsbusindex kexit;2 für den Schalter; Bestimmen einer nächsten anschließenden Adresse eines nächsten Bus mit linearer Zugriffsordnung durch Einstellen von (k3; kbus;3) = R(k2, kexit;2); und iteratives Wiederholen der vorhergehenden Schritte bis zum Zurückkehren zu dem Startbus und der physikalischen Startadresse, anschließend (k3, kbus;3) = (k,j), funktionale Spalte für funktionale Spalte, für alle Schalter des Butterfly-Netzwerks.
  15. Vorrichtung gemäß einem der Ansprüche 10 bis 14, in der das Verarbeitungssystem konfiguriert ist, um den Austrittsbusindex durch Anwenden von einigen der gelösten Steuerbits für vorhergehende funktionale Spalten des Butterfly-Netzwerks zu erhalten, um den Austrittsbusindex zu dem Schalter entlang eines Teils des Butterfly-Netzwerks zu berechnen.
  16. Vorrichtung gemäß einem der Ansprüche 9 bis 15, in der das Mehrfachzugriffsschema dadurch gekennzeichnet ist, dass dieses Adressfunktionen aj(k) für j = 0, 1, 2, ..., 2y-1 und für k = 0, 1, 2, ..., N/2y-1 aufweist, wobei N eine Länge eines Turbointerleavers ist; und ein Erzeugen für jeden der Datenwerte einer Adresse für einen der Speicherplätze mit einem angehängten Busindex aufweist: für den Zugriff mit linearer Ordnung, Austauschen jeder Vektorkomponente aj(k) von Parallel-Linearordnungsmehrfachzugriffsvektoren mit neuen Parallel-Linearordnungszugriffsvektoren, in denen jede Komponente eine Adresse k von einem der Datenwerte und einen Busindex j, der einen Linearordnungszugriffs-Eingangsbus zu dem Butterfly-Netzwerk identifiziert, aufweist; und für den Zugriff mit verschachtelter Ordnung, Ersetzen jeder Vektorkomponente T(aj(k)) von Parallel-Verschalteltordnungszugriffsvektoren mit neuen Parallel-Verschalteltordnungszugriffsvektoren, in denen jede Komponente eine Adresse nk,j von einem der Datenwerte und einen Busindex mk,j, der einen Verschachteltordnungzugriffseingangsbus zu dem Butterfly-Netzwerk angibt, aufweist, und die Adresse nk,j sowie der Busindex mk,j sich auf die Vektorkomponente T(aj(k)) durch die Gleichung T(aj(k)) = amk,j(nk,j) beziehen
  17. Computerprogramm mit einem Satz von Anweisungen, die, wenn diese an einem Turbodecoder ausgeführt werden, den Turbodecoder bewirken, um die Schritte auszuführen: 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.
  18. Computerprogramm gemäß Anspruch 17, wobei die Schritte aufweisen: Eintreten in das Butterfly-Netzwerk eines Zugriffs mit linearer Ordnung entlang eines Busse eines Index b und mit einer physikalischen Adresse c und in dem ein direktes Lösen der Steuerbits eines Schalters aufweist: für jeden von 2y Datenwerten, die von oder zu einem von 2y Speicherplätzen parallel zu lesen oder zu schreiben sind, wobei y eine nicht negative Ganzzahl ist, funktionale Spalte für funktionale Spalte für Schalter des Butterfly-Netzwerks von y Spalten, Lösen eines Steuerbits eines Zugriffs mit linearer Ordnung des Schalters auf einer Route von dem b-ten Bus für den Zugriff mit linearer Ordnung zu einem der 2y Speicherplätze mit der physikalischen Adresse c für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte; und Erhalten eines Austrittsbusindex von dem Butterfly-Netzwerk entsprechend einem anderen Eingangsanschluss des Schalters und des b-ten Busses.
  19. Computerprogramm gemäß Anspruch 18, wobei die Schritte aufweisen: Eintreten in das Butterfly-Netzwerk eines Zugriffs mit verschachtelter Ordnung entlang eines Busses eines Index m und mit einer physikalischen Adresse n, und in denen ein direktes Lösen des Steuerbits eines Schalters aufweist: funktionale Spalte für funktionale Spalte für Schalter des Butterfly-Netzwerks von y Spalten, Lösen eines Steuerbits eines Zugriffs mit verschachtelter Ordnung der Schalter auf einer Route von dem m-ten Bus für den Zugriff mit verschachtelter Ordnung zu einem der 2y Speicherplätze mit der physikalischen Adresse n für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte; und Erhalten eines Austrittsbusindex von dem Butterfly-Netzwerk entsprechend einem anderen Eingangsanschluss des Schalters und des m-ten Busses.
  20. Computerprogramm gemäß Anspruch 19, in dem ein Anwenden der gelösten Steuerbits an den Schaltern des Butterfly-Netzwerks, um die Datenwerte zu routen, eine Ausgabe an eine Speicheradresseinheit eines Turbodecoders aufweist: die physikalischen Adressen für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte und für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte; einen ersten Satz von Steuerbits, die alle der gelösten Steuerbits des Zugriffs mit linearer Ordnung bj;k für den parallelen Zugriff mit linearer Ordnung der 2y Datenwerte aufweist; und einen zweiten Satz von Steuerbits, der alle der gelösten Steuerbits des Zugriffs mit verschachtelter Ordnung βj;k für den parallelen Zugriff mit verschachtelter Ordnung der 2y Datenwerte aufweist.
  21. Computerprogramm gemäß Anspruch 20, wobei die Schritte ein Weiterleiten der physikalischen Adressen für den Zugriff mit verschachtelter Ordnung zu dem Turbodecoder durch Permutieren von verschachtelten physikalischen Adressvektoren durch das Butterfly-Netzwerk mit entsprechenden der gelösten Steuerbits des Zugriffs mit verschachtelter Ordnung βj;k aufweist.
  22. Computerprogramm gemäß einem der Ansprüche 17 bis 21, in dem ein direktes Lösen der Steuerbits aufweist: für einen Eintrittsbus des Butterfly-Netzwerks, Zuweisen eines Steuerbits eines Schalters eines k1-ten Zugriffs mit linearer Ordnung und Berechnen eines Austrittsbusindex kexit;1 für den Schalter; Beziehen eines nächsten Eintrittsbusses des Butterfly-Netzwerks für den Zugriff mit verschachtelter Ordnung durch Einstellen von (k2; kbus;2) = R–1(k1, kexit;1) und Zuweisen eines nächsten Steuerbits eines Schalters, in dem eine Adresse k2 dem k2-ten Zugriff mit verschachtelter Ordnung entspricht, wobei Busindex kbus;2 einen Zugriffsbus zu dem Butterfly-Netzwerk identifiziert; Beziehen eines nächsten Austrittsbusindex kexit;2 für den Schalter; Bestimmen einer nächsten anschließenden Adresse eines nächsten Bus mit linearer Zugriffsordnung durch Einstellen von (k3; kbus;3) = R(k2, kexit;2); und iteratives Wiederholen der vorhergehenden Schritte bis zum Zurückkehren zu dem Startbus und der physikalischen Startadresse, anschließend (k3, kbus;3) = (k,j), funktionale Spalte für funktionale Spalte, für alle Schalter des Butterfly-Netzwerks.
  23. Computerprogramm gemäß einem der Ansprüche 18 bis 22, in dem ein Beziehen des Austrittsbusindex aufweist: Anwenden von einigen der gelösten Steuerbits für vorhergehende funktionale Spalten des Butterfly-Netzwerks, um den Austrittsbusindex zu dem Schalter entlang eines Teils des Butterfly-Netzwerks zu berechnen.
  24. Computerprogramm gemäß einem der Ansprüche 17 bis 23, in dem das Mehrfachzugriffsschema dadurch gekennzeichnet ist, dass dieses Adressfunktionen aj(k) für j = 0, 1, 2, ..., 2y-1 und für k = 0, 1, 2, ..., N/2y-1 aufweist, wobei N eine Länge eines Turbointerleavers ist; und ein Erzeugen für jeden der Datenwerte einer Adresse von einem der Speicherplätze mit einem angehängten Busindex aufweist: für den Zugriff mit linearer Ordnung, Austauschen jeder Vektorkomponente aj(k) von Parallel-Linearordnungsmehrfachzugriffsvektoren mit neuen Parallel-Linearordnungszugriffsvektoren, in denen jede Komponente eine Adresse k von einem der Datenwerte und einen Busindex j, der einen Linearordnungszugriffs-Eingangsbus zu dem Butterfly-Netzwerk identifiziert, aufweist; und für den Zugriff mit verschachtelter Ordnung, Ersetzen jeder Vektorkomponente T(aj(k)) von Parallel-Verschalteltordnungszugriffsvektoren mit neuen Parallel-Verschalteltordnungszugriffsvektoren, in denen jede Komponente eine Adresse nk,j von einem der Datenwerte und einen Busindex mk,j, der einen Verschachteltordnungzugriffseingangsbus zu dem Butterfly-Netzwerk angibt, aufweist, und die Adresse nk,j sowie der Busindex mk,j sich auf die Vektorkomponente T(aj(k)) durch die Gleichung T(aj(k)) = amk,j(nk,j) beziehen.
DE112013003191.4T 2012-06-29 2013-06-27 Bestimmen von Steuerbits von Butterfly-Netzwerken für paralleles Turbo-Decodieren Withdrawn DE112013003191T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1211610.9 2012-06-29
GB1211610.9A GB2492249B (en) 2012-06-29 2012-06-29 Method, apparatus and computer program for solving control bits of butterfly networks
US13/676,375 2012-11-14
US13/676,375 US8446813B1 (en) 2012-06-29 2012-11-14 Method, apparatus and computer program for solving control bits of butterfly networks
PCT/IB2013/055279 WO2014002043A1 (en) 2012-06-29 2013-06-27 Determining control bits of butterfly networks for parallel turbo decoding

Publications (1)

Publication Number Publication Date
DE112013003191T5 true DE112013003191T5 (de) 2015-03-19

Family

ID=46721661

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013003191.4T Withdrawn DE112013003191T5 (de) 2012-06-29 2013-06-27 Bestimmen von Steuerbits von Butterfly-Netzwerken für paralleles Turbo-Decodieren

Country Status (6)

Country Link
US (1) US8446813B1 (de)
CN (1) CN104584441A (de)
DE (1) DE112013003191T5 (de)
GB (1) GB2492249B (de)
HK (1) HK1206497A1 (de)
WO (1) WO2014002043A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432180B2 (en) * 2011-06-03 2016-08-30 Harris Corporation Method and system for a programmable parallel computation and data manipulation accelerator
CN111181575B (zh) * 2019-12-19 2021-09-14 西南大学 一种基于反向蝶形计算的Turbo码译码器及处理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05505709A (ja) * 1990-03-05 1993-08-19 マサチユセツツ・インスチチユート・オブ・テクノロジー メツセージ経路指定のための拡大及び/又は分散論理クラスターを有する交換網
US6618371B1 (en) * 1999-06-08 2003-09-09 Cisco Technology, Inc. Butterfly network with switches set for two node disjoint paths and method for forming the paths
US20030002474A1 (en) * 2001-03-21 2003-01-02 Thomas Alexander Multi-stream merge network for data width conversion and multiplexing
US20020141427A1 (en) * 2001-03-29 2002-10-03 Mcalpine Gary L. Method and apparatus for a traffic optimizing multi-stage switch fabric network
US8051239B2 (en) * 2007-06-04 2011-11-01 Nokia Corporation Multiple access for parallel turbo decoder
TWI343190B (en) * 2007-12-21 2011-06-01 Univ Nat Chiao Tung Method and apparatus of multi-stage network for iterative decoding
US8090896B2 (en) * 2008-07-03 2012-01-03 Nokia Corporation Address generation for multiple access of memory
US7839310B2 (en) * 2009-02-19 2010-11-23 Nokia Corporation Extended turbo interleavers for parallel turbo decoding

Also Published As

Publication number Publication date
HK1206497A1 (en) 2016-01-08
GB2492249B (en) 2013-11-06
GB201211610D0 (en) 2012-08-15
GB2492249A (en) 2012-12-26
WO2014002043A1 (en) 2014-01-03
US8446813B1 (en) 2013-05-21
CN104584441A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
DE102009044555B4 (de) Verfahren und Vorrichtung zum Durchführen einer CRC-Prüfung
DE60129643T2 (de) Verfahren und Gerät für die Ermittlung vom längsten Prefixzusammenbringen in einem Kommunikationsnetz
DE3910739C2 (de)
DE10030407B4 (de) Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem
DE60020637T2 (de) Ratenanpassung und Kanalverschachtelung für ein Kommunikationssystem
DE69634155T2 (de) Erfassung einer Konfidenz und eines Rahmen-Qualitäts-Signals in einem "soft decision"-Faltungs-Dekoder
DE112011101995T5 (de) Verfahren und Vorrichtung für eine Parallelverarbeitung in einem Gigabit-LDPC-Decodierer
DE69907011T2 (de) Verallgemeinerter faltungsver- und -entschachteler
DE60108892T2 (de) Modul, vorrichtung und verfahren zum hochbitratigen dekodieren eines verketteten codes
DE102015104418A1 (de) Umordnen einer Strahlformungsmatrix
EP0306713A2 (de) Verfahren und Anordnung zur Aufbereitung von Daten
DE4408163A1 (de) Verfahren zum Übertragen von Daten
DE112010003445B4 (de) Verfahren und System zur Erkennung der Rahmengrenze eines in der Vorwärtsfehlerkorrekturschicht im Ethernet empfangenen Datenstroms
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE112013003191T5 (de) Bestimmen von Steuerbits von Butterfly-Netzwerken für paralleles Turbo-Decodieren
DE112004003070B4 (de) Kartierungs- und Entkartierungs-Techniken für eine Vorwärtsfehlerkorrektur
DE60319557T2 (de) Verfahren zur Verminderung der Anzahl der Bits pro Softbit
DE60311997T2 (de) Verfahren zur ersten Verschachtelung für einen Sender mit zwei Verschachtelern
EP1269633B1 (de) Optimierter turbo-decodierer
DE69920779T2 (de) Fehlerschutzverfahren und -vorrichtung
DE69908629T2 (de) Hybrid verschachteler für turbo-kodierer
DE60118716T2 (de) Log-MAP Dekodierung
WO1989003574A1 (en) Digital adaptive transform coding process
DE102020133279A1 (de) Verfahren und schaltung zur steigerung des durchsatzes von rekursiven systemen
DE1944963A1 (de) Stoerungsgesichertes UEbertragungssystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: TBK, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee