DE102011056132B4 - Verfahren und Vorrichtung zum Decodieren von Daten - Google Patents

Verfahren und Vorrichtung zum Decodieren von Daten Download PDF

Info

Publication number
DE102011056132B4
DE102011056132B4 DE201110056132 DE102011056132A DE102011056132B4 DE 102011056132 B4 DE102011056132 B4 DE 102011056132B4 DE 201110056132 DE201110056132 DE 201110056132 DE 102011056132 A DE102011056132 A DE 102011056132A DE 102011056132 B4 DE102011056132 B4 DE 102011056132B4
Authority
DE
Germany
Prior art keywords
power mode
decoder
turbo decoder
decoding
power
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.)
Expired - Fee Related
Application number
DE201110056132
Other languages
English (en)
Other versions
DE102011056132A1 (de
Inventor
Erick Amador
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.)
Intel Deutschland GmbH
Original Assignee
Intel Mobile Communications GmbH
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 Intel Mobile Communications GmbH filed Critical Intel Mobile Communications GmbH
Publication of DE102011056132A1 publication Critical patent/DE102011056132A1/de
Application granted granted Critical
Publication of DE102011056132B4 publication Critical patent/DE102011056132B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Ein Verfahren enthält das Vorhersagen einer Arbeitslast, die zum Decodieren eines Codeblocks unter Verwendung eines Turbodecodierers benötigt wird sowie das Auswählen eines Leistungsmodus des Turbodecodierers, wobei die Auswahl des Leistungsmodus in Abhängigkeit von der Vorhersage der Arbeitslast erfolgt.

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Decodieren von Daten. Insbesondere betrifft die Erfindung die Reduzierung des Energieverbrauchs einer solchen Vorrichtung.
  • Decodierer können ein iteratives Decodierschema zum Decodieren von Datenblöcken implementieren, die durch einen Forward Error Correction (FEC) Code codiert wurden. Der durchschnittliche Stromverbrauch eines Decodierers steigt mit der Anzahl der Iterationen, die erforderlich sind, um einen Datenblock in Richtung einer akzeptablen Anzahl von Fehlern zu konvergieren.
  • Die Druckschrift US 2007/0113149 A1 offenbart einen an eine Energiesparschleife gekoppelten iterativen Decodierer. Basierend auf einer von dem iterativen Decodierer ausgegebenen Iterationsanzahl und einem Schwellenwert gibt die Energiesparschleife eine maximale Anzahl von Iterationen aus, die von dem iterativen Decodierer auszuführen sind.
  • Es ist deshalb eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und eine verbesserte Vorrichtung zum Decodieren von Daten bereitzustellen. Insbesondere kann es als eine Aufgabe der vorliegenden Erfindung angesehen werden, den Energieverbrauch einer solchen Vorrichtung zu reduzieren. Diese Aufgabe wird durch die Merkmale der unabhängigen Patentansprüche gelöst. Vorteilhafte Weiterbildungen sind Gegenstand von Unteransprüchen.
  • Die beiliegenden Zeichnungen sind aufgenommen worden, um das Verständnis der Ausführungsformen zu vertiefen, und sind in diese Beschreibung integriert und bilden einen Teil von ihr.
  • Die Zeichnungen veranschaulichen Ausführungsformen und dienen zusammen mit der Beschreibung der Erläuterung der Prinzipien der Ausführungsformen. Der Fachmann wird weitere Ausführungsformen und viele der beabsichtigten Vorteile der Ausführungsformen zu würdigen wissen, wenn er sie anhand der folgenden detaillierten Beschreibung besser versteht.
  • 1 veranschaulicht schematisch einen Turbocodierer 100.
  • 2 veranschaulicht schematisch einen Turbodecodierer 200.
  • 3 veranschaulicht schematisch das Leistungsverhalten eines Decodierers, der in zwei verschiedenen Leistungsmodi arbeitet.
  • 4 veranschaulicht schematisch eine Vorrichtung 400 als eine beispielhafte Ausführungsform.
  • 5 veranschaulicht schematisch eine Vorrichtung 500 als eine weitere beispielhafte Ausführungsform.
  • 6 veranschaulicht schematisch eine Vorrichtung 600 als eine weitere beispielhafte Ausführungsform.
  • 7 veranschaulicht schematisch ein Verfahren 700 als eine beispielhafte Ausführungsform.
  • 8 veranschaulicht schematisch ein Verfahren 800 als eine weitere beispielhafte Ausführungsform.
  • 9 veranschaulicht schematisch ein Flussdiagramm 900 eines Verfahrens als eine weitere beispielhafte Ausführungsform.
  • 10 veranschaulicht schematisch eine Schätzung einer Arbeitslast mittels einer linearen Näherung.
  • 11 veranschaulicht schematisch eine Konvergenzmetrik (engl. convergence metric).
  • Die 12A und 12B veranschaulichen schematisch durchschnittliche halbe Iterationen und kritische Iterationen, die gegen das Verhältnis von Energie pro Bit zur Rauschleistungsspektraldichte aufgetragen sind.
  • 13A und 13B veranschaulichen schematisch durchschnittliche Energieeinsparungen, die gegen das Verhältnis von Energie pro Bit zur Rauschleistungsspektraldichte aufgetragen sind.
  • 14A und 14B veranschaulichen schematisch Fehlerkorrekturleistungen, die gegen das Verhältnis von Energie pro Bit zur Rauschleistungsspektraldichte aufgetragen sind.
  • Im Folgenden werden Ausführungsformen anhand der Zeichnungen beschrieben, in denen durchgehend gleiche Bezugszahlen allgemein für gleiche Elemente verwendet werden. In der folgenden Beschreibung werden zu Erklärungszwecken zahlreiche konkrete Details dargelegt, um ein gründliches Verständnis eines oder mehrerer Aspekte der Ausführungsformen zu ermöglichen. Allerdings kann der Fachmann unter Umständen erkennen, dass ein oder mehrere Aspekte der Ausführungsformen auch mit weniger als den angegebenen Details ausgeführt werden können. Die folgende Beschreibung ist darum nicht in einem einschränkenden Sinn zu verstehen.
  • Die verschiedenen Aspekte, die hier zusammengefasst wurden, können in verschiedenen Formen ausgeführt sein. Die folgende Beschreibung zeigt veranschaulichend verschiedene Kombinationen und Konfigurationen, in denen die Aspekte ausgeführt werden können. Es versteht sich, dass die beschriebenen Aspekte und/oder Ausführungsformen lediglich Beispiele sind und dass weitere Aspekte und/oder Ausführungsformen verwendet und strukturelle und funktionale Modifizierungen vorgenommen werden können, ohne vom Konzept der vorliegenden Offenbarung abzuweichen.
  • Darüber hinaus kann, obgleich ein bestimmtes Merkmal oder ein bestimmter Aspekt einer Ausführungsform möglicherweise mit Bezug auf nur eine von mehreren Implementierungen offenbart ist, dieses Merkmal oder dieser Aspekt mit einem oder mehreren weiteren Merkmalen oder Aspekten der anderen Implementierungen kombiniert werden, so wie es für eine bestimmte oder konkrete Anwendung gewünscht wird oder vorteilhaft ist. Des Weiteren ist beabsichtigt, insofern die Wörter „enthalten”, „haben”, „mit” oder andere Varianten davon in der detaillierten Beschreibung oder in den Ansprüchen verwendet werden, dass diese Wörter in einer ähnlichen Weise inkludierend sind, wie es das Wort „umfassen” impliziert. Außerdem meint das Wort „beispielhaft” lediglich ein Beispiel und nicht die beste oder optimale Form.
  • Im Folgenden wird auf Turbocodes eingegangen, die für verschiedene Drahtloskommunikationssysteme entwickelt wurden. Turbocodierung kann dafür verwendet werden, Fehler im Fall einer Kommunikation über einen Additive White Gaussian Noise(AWGN)-Kanal und einen Rayleigh-Fadingkanal zu korrigieren. Zum Beispiel können die Drahtloskommunikationssysteme, die mit Turbocodes arbeiten, auf dem Universal Mobile Telecommunications System(UMTS)-Standard, zum Beispiel High Speed Downlink Packet Access (HSDPA) oder High Speed Uplink Packet Access (HSUPA), und Long Term Evolution (LTE) basieren. Die im vorliegenden Text beschriebenen Verfahren und Vorrichtungen können somit in Geräten von Drahtloskommunikationssystemen, insbesondere in Empfängern und Sender-Empfängern, verwendet werden. Zum Beispiel können die Verfahren und Vorrichtungen in Basisstationen und Mobilstationen verwendet werden. Eine beispielhafte Ausführungsform eines Turbocodierers und eines Turbodecodierers ist in den 1 bzw. 2 beschrieben.
  • 1 veranschaulicht schematisch einen Turbocodierer 100, der zum Beispiel auf dem UMTS-3GPP-Standard basieren kann und zwei rekursive systematische Faltungs-Codierer 1 und 2 enthält, die auch als Recursive Systematic Convolutional(RSC)-Codierer bezeichnet werden können. In diesem Fall wird der systematische Ausgang des zweiten RSC-Codierers 2, welcher das Eingangssignal des RSC-Codierers 2 durchschleift, nicht verwendet und ist darum nicht gezeigt. Der erste RSC-Codierer 1 empfängt eine Eingangsbitsequenz xs(k) in einer direkten Weise, während ein Verschachteler (engl. interleaver) 3 auf einer Eingangsseite des zweiten RSC-Codierers 2 vorgeschaltet ist und eine blockweise Verschachtelung der Eingangsbitsequenz xs(k) ausführt. Jeder RSC-Codierer 1 und 2 verwendet ein Schieberegister mit Rückkopplung zum Generieren redundanter Informationselemente xp1(k) bzw. xp2(k). Die resultierende codierte Datensequenz wird durch Verknüpfen zweier Code-Komponenten erzeugt, wobei die erste Code-Komponente die systematischen Informationen xs(k) und die redundanten Informationen xp1(k) des ersten RSC-Codierers 1 enthält und die zweite Code-Komponente die redundanten Informationen xp2(k) des zweiten RSC-Codierers 2 enthält. Die Code-Komponenten werden mit Hilfe eines (nicht dargestellten) Multiplexers verknüpft, der die einzelnen Bitströme xs(k), xp1(k) und xp2(k) in einer geeigneten Weise zusammensetzt, um eine resultierende Datensequenz zu bilden. In der Regel wird ein (nicht dargestellter) Punktierer, der einen Teil der redundanten Informationen xp1(k) und xp2(k) in der codierten Datensequenz ausblendet, bereitgestellt, um eine höhere Code-Rate RC als 1/3 zu erzeugen, zum Beispiel eine Code-Rate von RC = 1/2, d. h. zwei Bits der codierten Datensequenz sind einem Bit der Eingangssequenz xs(k) zugeordnet.
  • 2 veranschaulicht einen Turbodecodierer 200, wie er in einem Mobilfunkempfänger verwendet werden kann. Ähnlich dem Turbocodierer 100 von 1 verwendet der Turbodecodierer 200 zwei Decodiererelemente 4 und 5 zum Verarbeiten der beiden Code-Komponenten. Zum Beispiel können die Decodierer 4 und 5 als Soft-In-Soft-Out(SISO)-Decodierer ausgeführt sein. Die Eingangs- und Ausgangssignale von SISO-Decodierers entsprechen nicht Binärentscheidungssignalen, sondern sind digitale Signale mit einer entsprechenden Amplitudenauflösung. SISO-Decodierer können unter Verwendung des Maximum A-Posteriori(MAP)-Algorithmus oder des Soft Output Viterbi Algorithmus (SOVA) arbeiten. Die Eingangs- und Ausgangsvariablen können insbesondere Variablen sein, die auf einer Log-Likelihood Ratio(LLR)-Darstellung basieren. Eine LLR-Variable ist eine Wahrscheinlichkeitsaussage und ist als der Logarithmus des Verhältnisses zwischen der Wahrscheinlichkeit einer logischen 0 und der Wahrscheinlichkeit einer logischen 1 definiert (alternativ wird die LLR-Variable auch häufig als der Logarithmus des Verhältnisses zwischen der Wahrscheinlichkeit einer logischen 1 und der Wahrscheinlichkeit einer logischen 0 definiert). LLR-Werte mit positiven mathematischen Vorzeichen bieten die Möglichkeit, das Vorhandensein einer logischen 0 zu schlussfolgern, während LLR-Werte mit negativen mathematischen Vorzeichen das Vorhandensein einer logischen 1 bezeichnen. Die Größenordnung des LLR-Wertes bezeichnet in diesem Fall die Zuverlässigkeit der Hypothese einer logischen 1 oder einer logischen 0. Je größer der Betrag des LLR-Werts, desto zuverlässiger die Hypothese einer logischen 1 oder einer logischen 0.
  • Der Turbodecodierer 200 empfängt drei Sequenzen Ls(k), Lp1(k) und Lp2(k) von LLR-Werten, die den übertragenen Sequenzelementen xs(k), xp1(k) und xp2(k) entsprechen. Die Bits xs(k) und die Sequenz Ls(k) können als systematische Bits bzw. systematische LLR-Werte bezeichnet werden. Auf der Grundlage der empfangenen LLR-Sequenzen Ls(k) und Lp1(k) oder Lp2(k) sowie der a-priori-LLR-Werte La1(k) und La2(k), die während des letzten Decodierelements erzeugt werden, erzeugt jedes der Decodiererelemente 4 und 5 zwei Ausgangssignale: LLR-Werte Lo1(k) und Lo2(k) sogenannter a-posteriori-Informationen und LLR-Werte Le1(k) und Le2(k) sogenannter extrinsischer Informationen. Die a-posteriori-LLR-Werte Lo1(k) bzw. L02(k) entsprechen in diesem Fall der uncodierten Datensequenz xs(k) (siehe 1), wobei das mathematische Vorzeichen der a-posteriori-Werte Lo1(k) oder L02(k) dafür verwendet werden kann, die binäre Datensequenz xs(k) zu schlussfolgern. Dieses Verfahren kann durch den Ausdruck „harte Entscheidung” beschrieben werden. Die a-posteriori-LLR-Werte Lo1(k) und L02(k) können als weiche Ausgabewerte des jeweiligen Decodiererelements 4 oder 5 bezeichnet werden. Die extrinsischen Informationen Le1(k) oder Le2(k) entsprechen zusätzlichen Informationen, die während des jeweiligen Decodierelements erhalten werden, und können während des anschließenden Decodierelements als a-priori-Informationen La2(k) bzw. La1(k) verwendet werden. Außerdem beschreiben die extrinsischen Informationen Le1(k) bzw. Le2(k) die Konvergenz des Decodierprozesses.
  • Die folgende Beziehung gilt für die a-posteriori-Informationen Lo1(k) und Lo2(k) Lo1(k) = Ls(k) + La1(k) + Le1(k) (1) Lo2(k) = Ls(k) + La2(k) + Le2(k). (2)
  • Da ein Verschachteler 3 (siehe 1) in dem Turbocodierer 100 vorhanden ist, werden zwei Entschachteler 6 und 7 sowie zwei Verschachteler 8 und 9 in einem durch den Decodierer 200 ausgeführten Turbodecodierprozess verwendet.
  • Die Turbodecodierung wird iterativ ausgeführt. In diesem Fall werden die extrinsischen Werte Le2(k) des Decodiererelements 5 während einer Iteration i zu dem SISO-Decodiererelement 4 als a-priori-Werte La1(k) für die anschließende Iteration i + 1 zurückgekoppelt. Der Begriff „halbe Iteration” kann hier einem einzelnen Decodierelement (bzw. einer Teildecodierung) entsprechen. Am Beginn des Decodierprozesses werden die a-priori-Werte La1(k) auf 0 gesetzt, da eine gleiche Wahrscheinlichkeit des Übertragens einer logischen 0 oder einer logischen 1 besteht. Während der letzten Iteration werden die a-posteriori-Werte Lo2(k) des zweiten Decodiererelements 5 mit Hilfe des Entschachtelers 7 in die ursprünglich übertragene Bitsequenz eingefügt, was die LLR-Werte L'o2(k) zur Folge hat. Eine harte Entscheidung auf der Grundlage dieser Werte L'o2(k) führt zu der uncodierten Übertragungsend-Datensequenz xs(k) (siehe 1).
  • Unter dem Vorbehalt, dass der Decodierprozess noch nicht konvergiert hat, nimmt die Zuverlässigkeit der a-posteriori-Informationen Lo1(k) und Lo2(k) in der Regel in jeder Iteration zu. Das heißt, die Größenordnung der LLR-Werte Lo1(k) und Lo2(k) wird größer. Wenn der Decodierprozess bereits konvergiert hat, so führen weitere Iterationen, zum Beispiel bei Verwendung einer festen vorgegebenen Anzahl von Iterationen zum Decodieren, lediglich zu einem zusätzlichen Rechenaufwand ohne Erhöhung der Decodierzuverlässigkeit. Wenn ein Decodierprozess bereits konvergiert hat, so werden des Weiteren in der Regel keine Veränderungen bei den harten Entscheidungen während anschließender Iterationen festgestellt.
  • Der Decodierprozess kann abgebrochen werden, wenn eine bestimmte Abbruchbedingung oder ein bestimmtes Stoppkriterium erfüllt ist. Eine Abbruchbedingung kann auf Überprüfungsinformationen gestützt werden, die während des Decodierprozesses erhalten werden; das heißt, in der Regel auf die a-posteriori-Informationen Lo1(k) bzw. Lo2(k), die extrinsischen Informationen Le1(k) bzw. Le2(k) oder die a-priori-Informationen La1(k) bzw. La2(k), wobei diese Informationselemente auch als Decodierparameter bezeichnet werden. Die Abbruchkriterien können in zwei Arten untergliedert werden: sogenannte „auf harte Entscheidungen gestützte (engl. hard-decision-based) Abbruchkriterien” und sogenannte „auf weiche Entscheidungen gestützte (engl. soft-decision-based) Abbruchkriterien”.
  • 3 veranschaulicht schematisch das Leistungsverhalten eines iterativen Decodierers, insbesondere eines Turbodecodierers, der in zwei verschiedenen Leistungsmodi arbeitet. Hierbei ist die erforderliche Leistung während der Decodieraufgabe gegen die Zeit aufgetragen. Eine erste Kurve A veranschaulicht das Decodieren eines Codeblocks mittels des Decodierers in einem Leistungsmodus einer Leistung P1, während eine zweite Kurve B das Decodieren desselben Codeblocks mittels des Decodierers in einem Leistungsmodus einer Leistung P2 veranschaulicht. Der Wert der Leistung P2 ist kleiner als der Wert der Leistung P1, so dass die Leistungsmodi der Leistungen P1 und P2 als Hochleistungsmodus bzw. Niedrigleistungsmodus bezeichnet werden können. Beim Betrieb im Hochleistungsmodus ist das Decodieren zu einem Zeitpunkt t1 vollendet. Wenn andererseits der Niedrigleistungsmodus verwendet wird, so ist das Decodieren zu einem späteren Zeitpunkt t2 vollendet. Gewöhnlich arbeitet ein iterativer Decodierer in einem höheren Leistungsmodus, so dass eine Decodieraufgabe vor einer Zeitablauffrist vollendet ist. In 3 kann der Zeitpunkt t2 einer solchen zuvor festgelegten Zeitablauffrist zum Vollenden der Decodieraufgabe entsprechen. Da ein im Hochleistungsmodus arbeitender Decodierer somit die Decodieraufgabe vor der Zeitablauffrist vollendet, kann die Differenz zwischen den Zeitpunkten t2 und t1 als Leerlaufzeit (engl. slack) bezeichnet werden, weil der Decodierer während der Zeit zwischen der Vollendung der Decodieraufgabe und der Zeitablauffrist leer laufen kann.
  • Die Flächen unter den Kurven A und B bezeichnen die Gesamtenergie, die erforderlich ist, um den Decodierprozess mittels des einen oder des anderen Leistungsmodus zu vollenden. In Abhängigkeit von der Beziehung zwischen der Leistung und kennzeichnenden Variablen des verwendeten Decodierers brauchen die Flächen unter den zwei Kurven A und B nicht unbedingt übereinzustimmen. Zum Beispiel kann die Leistung von einer Spannung und/oder einer Frequenz abhängen, die für den Betrieb des Decodierers erforderlich sind. Wenn man davon ausgeht, dass sich die Leistung P proportional zu einer Frequenz f verhält (d. h. P ~ f) und proportional zum Quadrat einer Spannung V verhält (d. h. P ~ V2), so kann die Fläche unter der Kurve B kleiner sein als die Fläche unter der Kurve A. Somit kann für diesen Fall Energie gespart werden, indem der Decodierer wenigstens teilweise im Niedrigleistungsmodus betrieben wird.
  • 4 veranschaulicht schematisch eine Vorrichtung 400 als eine beispielhafte Ausführungsform. Die Vorrichtung 400 enthält einen Turbodecodierer 10, eine erste Einheit 11 zum Vorhersagen einer Arbeitslast, die zum Decodieren eines Codeblocks mittels des Turbodecodierers 10 benötigt wird, und eine zweite Einheit 12 zum Auswählen eines Leistungsmodus des Turbodecodierers 10. Die Auswahl des Leistungsmodus hängt von der Vorhersage der Arbeitslast ab. Es versteht sich, dass die Vorrichtung 400 weitere Komponenten enthalten kann, die in 4 aus Gründen der Einfachheit nicht veranschaulicht sind. Zum Beispiel kann der Turbodecodierer 10 eine oder mehrere Komponenten enthalten, die bereits in Verbindung mit 2 beschrieben wurden. Des Weiteren können die erste Einheit 11 und die zweite Einheit 12 ebenfalls weitere Komponenten enthalten. Zum Beispiel kann die erste Einheit 11 einen digitalen Signalprozessor zum Ausführen von Berechnungen enthalten, die zum Vorhersagen der Arbeitslast erforderlich sind. Ein Verfahren zum Betreiben der Vorrichtung 400 ist in 7 veranschaulicht.
  • Der durch die zweite Einheit 12 ausgewählte Leistungsmodus des Decodierers 10 kann eine Leistung haben, die kleiner als die Leistung des Leistungsmodus ist, der vor dem ausgewählten Leistungsmodus verwendet wurde. Wie bereits in Verbindung mit 3 beschrieben, kann die Auswahl des Leistungsmodus den Gesamtenergieverbrauch der Vorrichtung 400 reduzieren, der für die Durchführung einer Decodieraufgabe erforderlich ist. Insbesondere kann die Verwendung mehrerer Leistungsmodi zur Erreichung hoher Energieeinsparungen für den Fall von Codeblocks führen, die relativ schnell, das heißt lange vor einer Zeitablauffrist, eine Konvergenz erreichen.
  • 5 veranschaulicht schematisch eine Vorrichtung 500 als eine weitere beispielhafte Ausführungsform. Die Vorrichtung 500 enthält die Komponenten 10, 11 und 12, die den Komponenten von 4 ähneln und die gleichen Bezugszahlen tragen. Die Vorrichtung 500 enthält des Weiteren eine dritte Einheit 13, um zu detektieren, ob das Decodieren einen Konvergenzzustand erreicht hat. Es ist zu beachten, dass der Begriff „Konvergenzzustand” in Verbindung mit 9 näher erläutert wird. Auch hier versteht es sich, dass die Vorrichtung 500 weitere Komponenten enthalten kann, die aus Gründen der Einfachheit nicht veranschaulicht sind. Ähnlich der Vorrichtung 400 kann die Auswahl eines Leistungsmodus des Turbodecodierers 10 zu einer Verringerung der Gesamtenergie führen, die zur Vollendung einer Decodieraufgabe erforderlich ist. Ein Verfahren zum Betreiben der Vorrichtung 500 ist in 8 veranschaulicht.
  • 6 veranschaulicht schematisch eine Vorrichtung 600 als eine weitere beispielhafte Ausführungsform. Die Vorrichtung 600 enthält einen iterativen Decodierer 10, zum Beispiel einen Turbodecodierer, der einen Eingang zum Empfangen von codierten Daten, zum Beispiel Kanaldaten, und einen Ausgang zum Ausgeben codierter Daten sowie einen Energieverwalter (engl. power manager) 14 enthält. Der Energieverwalter 14 enthält eine Arbeitslastvorhersageeinheit 11 zum Vorhersagen einer Arbeitslast, die für den Decodierer 10 erforderlich wird, um einen Codeblock zu decodieren, der an seinem Eingang empfangen wird, und eine Einheit 13, die dafür konfiguriert ist zu detektieren, ob ein Decodiervorgang einen Konvergenzzustand erreicht hat. Insbesondere kann die Arbeitslastvorhersageeinheit 11, gemäß einer Ausführungsform, einen Differenzierer erster Ordnung enthalten, der dafür konfiguriert ist, eine Arbeitslastvorhersage auf der Grundlage einer linearen Näherung unter Verwendung zweier Entscheidungsmetrik-Werte (engl. decision metric values) zu generieren. Des Weiteren kann die Einheit 13 dafür konfiguriert sein, eine Entscheidung zu treffen, in welchem Leistungsmodus der Decodierer 10 während einer anschließenden Iteration arbeiten wird, wobei eine solche Entscheidung auf der Grundlage eines Steuergesetzes getroffen wird. Ein Beispiel für ein solches Steuergesetz wird aus dem Flussdiagramm von 9 erkennbar. Der Decodierer 10 ist dafür konfiguriert, Werte einer Entscheidungsmetrik in die Arbeitslastvorhersageeinheit 11 einzuspeisen. Hierbei kann der Wert der Entscheidungsmetrik einer Anzahl von Änderungen „harter Entscheidungen” entsprechen. In anderen Ausführungsformen hingegen kann der Wert der Entscheidungsmetrik auf andere Weise definiert werden, zum Beispiel als eine Anzahl von Änderungen „weicher Entscheidungen”. Die Einheit 13 ist dafür konfiguriert, ein Halt-(oder Stopp)-Signal an den Decodierer 10 auszugeben, um das Decodieren eines Codeblocks abzubrechen. Zum Beispiel wird das Halt-Signal von der Einheit 13 zu dem Decodierer 10 übertragen, wenn ein Stoppkriterium detektiert wird.
  • Die Vorrichtung 600 enthält des Weiteren eine Dynamic Voltage and Frequency Scaling(DVFS)-Einheit 12, die dafür konfiguriert ist, eine Spannung und eine Frequenz zu justieren, die für den Betrieb des Decodierers 10 benötigt werden. In 6 sind entsprechende Steuerungssignale, die in den Decodierer 10 eingespeist werden, durch Pfeile angedeutet (siehe „Spannung”, „Frequenz”). Der Energieverwalter 14 und insbesondere die Einheit 13 ist mit der DVFS-Einheit 12 verbunden, um ein Signal bereitzustellen, das Informationen darüber enthält, welcher Leistungsmodus des Decodierers 10 durch die DVFS-Einheit 12 zu wählen ist. Es ist zu beachten, dass eine Justierung der Spannung und Frequenz einer Justierung des Leistungsmodus des Decodierers 10 entspricht. Insbesondere kann der Leistungsmodus mit Hilfe von auf dem Chip integrierten Schaltreglern geändert werden, die eine Reaktionszeit in der Größenordnung von mehreren zehn Nanosekunden haben können. Ein Verfahren zum Betreiben der Vorrichtung 600 wird in Verbindung mit 9 beschrieben.
  • 7 veranschaulicht schematisch ein Verfahren 700 als eine beispielhafte Ausführungsform. Das Verfahren 700 enthält zwei Schritte 30, 32 und kann zum Beispiel in Verbindung mit der Vorrichtung 400 von 4 gelesen werden. In einem ersten Schritt 30 wird eine Arbeitslast vorhergesagt, die zum Decodieren eines Codeblocks unter Verwendung eines Turbodecodierers 10 benötigt wird. Wie in 4 dargestellt, kann die Vorhersage durch die erste Einheit 11 ausgeführt werden. In einem zweiten Schritt 32 wird ein Leistungsmodus des Turbodecodierers 10 ausgewählt, wobei die Auswahl in Abhängigkeit von der Vorhersage der Arbeitslast erfolgt. Wie in 4 dargestellt, kann die Auswahl durch die zweite Einheit 12 getroffen werden. Es ist zu beachten, dass das Verfahren 700 auch im Kontext einer Vorrichtung gelesen werden kann, bei der der Turbodecodierer 10 durch einen beliebigen iterativen Decodierer ersetzt sein kann.
  • 8 veranschaulicht schematisch ein Verfahren 800 als eine weitere beispielhafte Ausführungsform. Das Verfahren 800 enthält fünf Schritte und kann zum Beispiel in Verbindung mit der in 5 gezeigten Vorrichtung 500 gelesen werden. In einem ersten Schritt 40 wird ein Codeblock unter Verwendung eines Turbodecodierers 10 in einem ersten Leistungsmodus decodiert. In einem zweiten Schritt 42 wird detektiert, ob das Decodieren einen Konvergenzzustand erreicht hat (siehe 5, dritte Einheit 13). In einem dritten Schritt 44 wird eine Arbeitslast vorhergesagt, die zum Decodieren des Codeblocks benötigt wird (siehe 5, erste Einheit 11). In einem vierten Schritt 46 wird ein zweiter Leistungsmodus des Turbodecodierers 10 ausgewählt, wobei die Auswahl des Leistungsmodus in Abhängigkeit von der Vorhersage der Arbeitslast getroffen wird. Die Leistung des zweiten Leistungsmodus ist in einer Ausführungsform kleiner als die Leistung des ersten Leistungsmodus. In der Vorrichtung 500 von 5 kann die Auswahl durch die zweite Einheit 12 getroffen werden. In einem fünften Schritt 48 wird der Turbodecodierer 10 in dem ausgewählten Leistungsmodus betrieben.
  • Im Folgenden wird angenommen, dass es sich bei einem iterativen Decodierer, insbesondere einem Turbodecodierer, um ein Complementary Metal Oxide Semiconductor(CMOS)-Bauelement mit Energieverwaltung handelt. Der Decodierer ist dafür konfiguriert, in n Leistungsmodi zu arbeiten, die durch folgende Menge definiert werden können: P = {P0, P1, ... Pn-1}. (3)
  • Die Leistung der n Leistungsmodi kann ausgedrückt werden als Pk = Pk sw + Pk sc + Pk leak (4) oder Pk = EswCLVk 2fk + ISCVk + IleakVk, (5) wobei die Variable Pk sw einer Leistung entspricht, die für einen Schaltvorgang benötigt wird. Der Schaltvorgang kann dem Laden und Entladen einer Lastkapazität CL der Vorrichtung mit einem Schaltfaktor Esw entsprechen. Die Variable Pk sc entspricht einer Leistung infolge eines Kurzschlussstromes, wenn ein N-type Metal Oxide Semiconductor(NMOS)-Abschnitt und ein P-type Metal Oxide Semiconductor(PMOS)-Abschnitt der Vorrichtung geschaltet werden. Außerdem entspricht die Variable Pk leak einer Leistung infolge eines Leckstromes Ileak, d. h. eines Vorschwellwertes zuzüglich eines Sperrvorspannstromes am Übergang, der ein technologieabhängiger Parameter ist. Die Variablen Vk und fk entsprechen einer Spannung bzw. einer Frequenz des entsprechenden Leistungsmodus.
  • Zum Beispiel kann der Leistungsmodus P0 der Leistungsmodus sein, in dem der Decodierer die meiste Leistung verbraucht, während die anschließenden Leistungsmodi, d. h. die Modi P1, P2 usw., jeweils weniger Leistung verbrauchen als der vorangegangene. Unter der Annahme, dass der Decodierer eine Anzahl von I Iterationen ausführen muss, um einen Codeblock zu decodieren, bevor eine Zeitablauffrist d erreicht wird, kann die Gesamtenergie minimiert werden, indem eine geeignete Teilmenge P' von Leistungsmodi (d. h. P' ⊆ P) gefunden wird, in denen der Decodierer betrieben wird. Unter der weiteren Annahme, dass in der Zeit tk eine Iteration k durch einen Leistungsmodus Pk ausgeführt wird, kann eine optimale Teilmenge P' von Leistungsmodi, welche die Gesamtenergie minimieren, bestimmt werden, indem der Minimumwert
    Figure DE102011056132B4_0002
    gefunden wird, wobei Pk ∊ P'. Die Beschränkung des Codeblocks, der decodiert wird, bevor die Zeitablauffrist d erreicht wird, kann ausgedrückt werden als
    Figure DE102011056132B4_0003
  • 9 veranschaulicht schematisch ein Flussdiagramm 900, das ein Verfahren darstellt, das verwendet werden kann, um eine geeignete Teilmenge P' von Leistungsmodi zu finden. Das Verfahren kann in Verbindung mit der Vorrichtung 600 von 6 gelesen werden. Das Verfahren kann bei einem Schritt 60 beginnen, bei dem ein iterativer Decodierer 10, zum Beispiel ein Turbodecodierer, in einem Hochleistungsmodus arbeitet. Bei dem Satz P der verfügbaren Leistungsmodi (siehe oben) kann der Hochleistungsmodus dem Leistungsmodus P0 entsprechen. In einem nächsten Schritt 62 wird getestet, ob ein Codeblock, der in den Decodierer 10 eingespeist wurde, einen Konvergenzzustand erreicht hat. Wie in 6 dargestellt, kann der Konvergenztest durch die Einheit 13 ausgeführt werden. Zum Ausführen dieses Tests kann die Anzahl der Änderungen „harter Entscheidungen” des Decodierers 10 verwendet werden. Wenn die Anzahl der Änderungen „harter Entscheidungen” für eine zuvor festgelegte Anzahl aufeinanderfolgender Iterationen abnimmt, so kann angenommen werden, dass der Decodierprozess in einen Konvergenzzustand eingetreten ist. Das heißt, es wird angenommen, dass die Anzahl von Änderungen „harter Entscheidungen” während anschließender Iterationen weiter abnimmt, d. h. dass die Anzahl von Änderungen „harter Entscheidungen” ein gleichbleibend (monotones) abnehmendes Verhalten aufweist. Zum Beispiel kann die zuvor festgelegte Anzahl aufeinanderfolgender Iterationen so gewählt werden, dass sie einen Wert von zwei, drei, vier usw. hat. Es ist zu beachten, dass die Anzahl von Änderungen „harter Entscheidungen” auch als Entscheidungsmetrik oder Konvergenzmetrik bezeichnet werden kann. Es ist des Weiteren zu beachten, dass, in Abhängigkeit von der Art des verwendeten Decodierers 10, während des Decodierprozesses auch andere Arten von Entscheidungsparametern verwendet werden können.
  • Wenn kein Konvergenzzustand detektiert wird, so fährt das Verfahren mit einem Schritt 64 fort, in dem detektiert wird, ob ein Stoppkriterium erfüllt ist oder nicht. Zum Beispiel wird das Stoppkriterium detektiert, wenn eine vollständige Konvergenz des Codeblocks für die Iteration nach der momentanen Iteration vorhergesagt wird. Eine vollständige Konvergenz des Codeblocks kann angenommen werden, wenn die Anzahl von Änderungen „harter Entscheidungen”, d. h. der Wert der Entscheidungsmetrik, einen zuvor festgelegten Wert erreicht hat, zum Beispiel einen Wert von null. Natürlich kann eine vollständige Konvergenz des Codeblocks in Abhängigkeit von der Art des verwendeten Decodierers unterschiedlich definiert werden. Wenn das Stoppkriterium detektiert wird, so wird das Decodieren des Codeblocks in einem Schritt 66 abgebrochen. Anderenfalls setzt der Decodierer 10 den Decodierprozess in dem Hochleistungsmodus von Schritt 60 fort.
  • Wenn ein Konvergenzzustand detektiert wird, so fährt das Verfahren mit einem Schritt 68 fort, in dem eine Arbeitslast vorhergesagt wird, die durch den Decodierer 10 zum Decodieren des Codeblocks benötigt wird. Zum Beispiel kann die Arbeitslast berechnet werden, wenn die Anzahl der Gesamtiterationen, die für das Decodieren benötigt werden, bekannt ist. Die Gesamtzahl der Decodier-Iterationen I kann geschätzt werden, wenn die zwei neuesten Werte εn und εn+1 des Entscheidungsparameters für die Iterationen n und n + 1 bekannt sind:
    Figure DE102011056132B4_0004
  • Gleichung (8) entspricht einer linearen Näherung der Iterationsanzahl I und somit der entsprechenden Arbeitslast. Diese Näherung wird aus 10 deutlich.
  • In 10 sind Werte einer Entscheidungsmetrik gegen eine Anzahl von Iterationen oder halben Iterationen aufgetragen. Zwei Entscheidungsmetrik-Werte εn und εn+1 für Iterationen (oder halbe Iterationen) n und n + 1 sind bekannt und durch eine durchgezogene Linie verbunden. Die Linie schneidet die Iterationsachse bei der Gesamtzahl von Decodier-Iterationen I.
  • Unter Bezugnahme auf Schritt 68 von 9 wird zuerst die Arbeitslast für den niedrigsten Leistungsmodus einer gegebenen Menge P verfügbarer Leistungsmodi des Decodierers 10 vorhergesagt. Dann wird vorhergesagt, ob der Decodierer 10, wenn er im niedrigsten Leistungsmodus betrieben wird, das Decodieren vor einer zuvor festgelegten Zeitablauffrist vollenden würde, d. h. ob eine vollständige Konvergenz des Codeblocks erreicht wird. Wenn ein Vollenden der Decodieraufgabe vorhergesagt wird, so wird in einem nächsten Schritt 70 der niedrigste Leistungsmodus ausgewählt. Wenn vorhergesagt wird, dass der Decodierer 10 die Decodieraufgabe nicht vor der Zeitablauffrist vollenden wird, so wird die Arbeitslast für den Leistungsmodus mit dem nächsthöheren Leistungswert vorhergesagt. Die Arbeitslastvorhersage wird wiederholt, bis ein Leistungsmodus bestimmt wird, der das Decodieren des Codeblocks vor der Zeitablauffrist vollendet.
  • In Schritt 70 wird der in Schritt 68 bestimmte Leistungsmodus ausgewählt. Wie in 6 dargestellt, kann ein Signal durch die Einheit 13 an die DVFS-Einheit 12 ausgegeben werden, dergestalt, dass eine Spannung und eine Frequenz des Decodierers 10 so justiert werden, dass der ausgewählte Leistungsmodus erhalten wird. In einem nächsten Schritt 72 wird detektiert, ob ein Stoppkriterium erfüllt ist. Das Stoppkriterium von Schritt 72 kann gegebenenfalls dem Stoppkriterium entsprechen, das bereits in Verbindung mit Schritt 64 beschrieben wurde. Wenn das Stoppkriterium detektiert wird, so wird die Decodieraufgabe in Schritt 66 abgebrochen. Anderenfalls wird Schritt 68 erneut ausgeführt. Oder anders ausgedrückt: Die Schleife, welche die Schritte 68, 70 und 72 enthält, wird wiederholt, bis das Stoppkriterium von Schritt 72 detektiert wird. Alternativ kann das Decodieren des Codeblocks auch abgebrochen werden, wenn die Zeitablauffrist erreicht wurde. Es ist zu beachten, dass die Schleife und ihre Schritte in jeder Iteration oder jeder halben Iteration des Decodierprozesses wiederholt werden können.
  • In 11 sind Werte einer Entscheidungsmetrik gegen eine Anzahl von halben Iterationen aufgetragen. Genauer gesagt, ist die Parameter-Größenordnung für sechzehn halbe Iterationen veranschaulicht. Eine durchgezogene Linie entspricht einer ausgewählten Entscheidungsmetrik, während mehrere gestrichelte Linien Vorhersagen auf der Grundlage linearer Näherungen gemäß 10 veranschaulichen. Die veranschaulichte Entscheidungsmetrik betrifft das Decodieren eines Codeblocks der Länge 6144 (Bits) mit Hilfe eines Turbodecodierers auf der Grundlage der 3GPP-LTE-Norm. Eine Code-Rate von 2 / 3 wird über einen AWGN-Kanal unter Verwendung einer Quadrature Phase Shift Keying(QPSK)-Modulation bei einem Verhältnis von Energie pro Bit zur Rauschleistungsspektraldichte, d. h. einem Signal-Rausch-Verhältnis (SNR, Signal to Noise Ratio) pro Bit, von
    Figure DE102011056132B4_0005
    verwendet. Die Generierung der ausgewählten Metrik, d. h. die durchgezogene Linie von 11, wird im Folgenden erläutert.
  • Am Beginn des Decodierprozesses arbeitet der Decodierer in einem ersten Leistungsmodus, zum Beispiel dem höchsten verfügbaren Leistungsmodus. In 11 wird dieser Leistungsmodus bis zur dritten halben Iteration verwendet, wobei der Wert der Entscheidungsmetrik von einem Wert von etwa 815 auf einen Wert von etwa 630 abnimmt. Bei der dritten halben Iteration wird eine Arbeitslast vorhergesagt, wie es bereits in Verbindung mit Schritt 68 von 9 beschrieben wurde. Wenn ein geeigneter Leistungsmodus bestimmt wurde, so wird die nächste halbe Iteration in 11 ausgeführt, wobei der Decodierer in einem Leistungsmodus arbeitet, der auf der Basis der vorhergesagten Arbeitslast ausgewählt wurde. Während dieses nächsten halben Iterationsschrittes verkleinert sich die Entscheidungsmetrik weiter, wie anhand der durchgezogenen Linie zwischen der dritten und vierten Iteration zu erkennen ist. Der Decodierprozess wird fortgesetzt, bis eine vollständige Konvergenz des Codeblocks hergestellt wurde, d. h. bis der Wert der Entscheidungsmetrik einen Wert von Null erreicht. Es ist zu beachten, dass jede gestrichelte Linie in 11 durch eine lineare Näherung generiert wird, die im Kontext einer Arbeitslastvorhersage ausgeführt wird. Die verwendete lineare Näherung kann der Näherung von 10 entsprechen. Das heißt, jede gestrichelte Linie in 11 kann mit der durchgezogenen Linie von 10 identifiziert werden.
  • In den 12A und 12B ist eine durchschnittliche Anzahl von halben Iterationen gegen das SNR pro Bit für den Fall der Turbodecodierung eines Codeblocks unter Verwendung eines Verfahrens, wie es zum Beispiel in Verbindung mit den 7, 8 und 9 beschrieben wurde, und der Decodierung eines Codeblocks unter Verwendung eines Hard Decision Aided(HDA)-Kriteriums aufgetragen. Hierbei beziehen sich die 12A und 12B auf das Decodieren eines Codeblocks der Länge 6144 bzw. 1280. Des Weiteren entspricht das Simulationsszenario demjenigen, das bereits in Verbindung mit 11 beschrieben wurde.
  • Im Folgenden können die Verfahren der 7, 8 und 9 auch als Dynamic Power Management (DPM) bezeichnet werden. In den 12A und 12B sind die Kurven, die sich auf die durchschnittliche Anzahl von halben Iterationen beziehen, darum mit „DPM” und „kein DPM” bezeichnet. Außerdem ist die Anzahl der kritischen Iterationen gegen das SNR pro Bit aufgetragen (siehe „kritische halbe Iterationen”), wobei die Anzahl der kritischen Iterationen als die Anzahl von halben Iterationen definiert werden kann, die benötigt werden, damit die Decodieraufgabe in einen Konvergenzzustand eintritt. In den 12A und 12B wird angenommen, dass in einen Konvergenzzustand eingetreten wird, wenn drei aufeinanderfolgende abnehmende Abtastungen der Entscheidungsmetrik detektiert werden.
  • In den 13A und 13B sind Prozentwerte von Energieeinsparungen gegen das SNR pro Bit für den Fall der Turbodecodierung eines Codeblocks unter Verwendung eines DPM-Verfahrens aufgetragen, wie es zum Beispiel in Verbindung mit den 7, 8 und 9 beschrieben wurde (siehe „DPM”). Hier wird ein Turbodecodierer angenommen, der dafür konfiguriert ist, in einem Hochleistungsmodus (V = 1,2 V, f = 266 MHz) und einem Niedrigleistungsmodus (V = 0,9 V, f = 160 MHz) zu arbeiten. Außerdem sind Energieeinsparungen für den Fall einer Offline-Energiemanagement-Vorschrift veranschaulicht (siehe „Offline-Genie”), d. h. eine Technik, bei der der Decodieraufwand, das heißt die benötigte Gesamtzahl von halben Iterationen, im Voraus bekannt ist, so dass es möglich ist, einen entsprechenden Leistungsmodus des Decodierers gleich zu Beginn einer Decodieraufgabe auszuwählen. Es ist zu beachten, dass die Offline-Energiemanagement-Vorschrift eine obere Grenze des DPM-Verfahrens darstellt. Gewöhnlich kann eine Offline-Energiemanagement-Vorschrift nicht realisiert werden, da die benötigten Informationen zum Vorhersagen der Gesamtzahl von halben Iterationen am Anfang einer Decodieraufgabe nicht bekannt ist. Die Prozentwerte der Energieeinsparungen in den 13A und 13B beziehen sich auf die Gesamtenergiewerte eines Turbodecodierers, der lediglich im Hochleistungsmodus arbeitet.
  • 13A und 13B beziehen sich auf das Decodieren eines Codeblocks der Länge 6144 bzw. 1280. Für den Fall eines Codeblocks der Länge 6144 ist der benötigte Decodieraufwand bei niedrigen Werten für das SNR pro Bit hoch. Die Offline-Vorschrift sowie die Online-Vorschrift erbringen Ergebnisse, die bei einem Wert von 0,8 dB für das SNR pro Bit beginnen. Für den Fall eines Codeblocks der Länge 1280 ist der Decodieraufwand geringer, und beide Techniken erbringen Energieeinsparungen bei niedrigen SNR-pro-Bit-Werten. In beiden Fällen gibt es bei hohen SNR-pro-Bit-Werten mehrere Möglichkeiten für Energieeinsparungen, weil der Decodieraufwand abnimmt und darum keine Leerlaufzeit (siehe 3) für das Umschalten in niedrigere Leistungsmodi mehr anfällt. Es ist zu beachten, dass die Energieeinsparungen eine Funktion der Leistungsmodus-Eigenschaften sind und von der verfügbaren Technologie abhängen.
  • Wie bereits in Verbindung mit dem Flussdiagramm von 9 beschrieben wurde, kann ein Stoppkriterium angewendet werden, um eine Decodieraufgabe abzubrechen. Ein Stoppkriterium kann fälschlicherweise erfüllt sein, wenn eine Konvergenz detektiert wird, obgleich eine Konvergenz in Wahrheit gar nicht existiert. Eine solche falsche Entscheidung kann als falscher Alarm bezeichnet werden und kann zu einer Einbuße bei der Fehlerkorrekturleistung führen. In den 14A und 14B sind die Bitfehlerrate (BER, Bit Error Rate) und die Framefehlerrate (FER, Frame Error Rate) gegen das SNR pro Bit für den Fall der Turbodecodierung eines Codeblocks unter Verwendung eines DPM-Verfahrens (siehe „DPM”) und der Decodierung eines Codeblocks unter Verwendung eines HDA-Kriteriums (siehe „kein DPM”) aufgetragen. Die 14A und 14B beziehen sich auf das Decodieren eines Codeblocks der Länge 6144 und bzw. 1280. Wie aus den 13A und 13B zu erkennen ist, lassen sich Energieeinsparungen bis zu 54% erreichen. Außerdem zeigen die 14A und 14B, dass durch Nutzung der Vorhersagen zum Decodieren und durch das Verwenden eines DPM-Verfahrens die Energieeffizienz des Systems mit lediglich einer geringen Auswirkung auf die Fehlerkorrekturleistung verbessert werden kann.

Claims (25)

  1. Verfahren, umfassend: Vorhersagen einer Arbeitslast, die zum Decodieren eines Codeblocks unter Verwendung eines Turbodecodierers benötigt wird; und Auswählen eines Leistungsmodus des Turbodecodierers aus zumindest einem ersten Leistungsmodus des Turbodecodierers und einem zweiten Leistungsmodus des Turbodecodierers, wobei die Auswahl des Leistungsmodus von der Vorhersage der Arbeitslast abhängt, wobei der erste Leistungsmodus des Turbodecodierers eine erste Energie festlegt, die zum Vervollständigen einer durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, und der zweite Leistungsmodus des Turbodecodierers eine zweite Energie festlegt, die zum Vervollständigen der durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, wobei sich die erste Energie von der zweiten Energie unterscheidet.
  2. Verfahren nach Anspruch 1, ferner umfassend: Detektieren, ob das Decodieren einen Konvergenzzustand erreicht hat.
  3. Verfahren nach Anspruch 2, wobei das Vorhersagen der Arbeitslast ausgeführt wird, wenn der Konvergenzzustand detektiert wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Decodieren ein iteratives Decodieren ist und das Vorhersagen der Arbeitslast während jeder Iteration oder halben Iteration des Decodierens ausgeführt wird.
  5. Verfahren nach Anspruch 2 oder 3, wobei das Decodieren ein iteratives Decodieren ist und der Konvergenzzustand detektiert wird, wenn ein Wert einer Entscheidungsmetrik um mindestens eine zuvor festgelegte Anzahl aufeinanderfolgender Iterationen des Decodierens abnimmt.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Vorhersagen der Arbeitslast auf einer linearen Näherung basiert.
  7. Verfahren nach Anspruch 6, wobei die lineare Näherung von zwei Werten einer Entscheidungsmetrik abhängt.
  8. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Anhalten des Decodierens, wenn ein Stoppkriterium detektiert wird.
  9. Verfahren nach Anspruch 8, wobei das Decodieren ein iteratives Decodieren ist und das Stoppkriterium während einer Iteration oder einer halben Iteration detektiert wird, wenn eine vollständige Konvergenz des Codeblocks für die anschließende Iteration oder halbe Iteration vorhergesagt wird.
  10. Verfahren nach Anspruch 8, wobei das Decodieren ein iteratives Decodieren ist und das Stoppkriterium detektiert wird, wenn ein Wert einer Entscheidungsmetrik einen zuvor festgelegten Wert erreicht hat.
  11. Verfahren nach Anspruch 10, wobei ein Wert der Entscheidungsmetrik einer Anzahl von Änderungen harter Entscheidungen entspricht.
  12. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Betreiben des Turbodecodierers in einem ersten Leistungsmodus, bevor ein Konvergenzzustand des Decodiervorgangs detektiert wurde, wobei eine Leistung des ersten Leistungsmodus größer ist als eine Leistung des ausgewählten Leistungsmodus; und Betreiben des Turbodecodierers in dem ausgewählten Leistungsmodus.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Leistungsmodus so ausgewählt wird, dass der Codeblock vor einer zuvor festgelegten Zeit vollständig konvergiert.
  14. Vorrichtung, umfassend: einen Turbodecodierer; eine erste Einheit, die dazu ausgelegt ist, eine Arbeitslast vorherzusagen, die zum Decodieren eines Codeblocks unter Verwendung des Turbodecodierers benötigt wird; und eine zweite Einheit, die dazu ausgelegt ist, einen Leistungsmodus des Turbodecodierers aus zumindest einem ersten Leistungsmodus des Turbodecodierers und einem zweiten Leistungsmodus des Turbodecodierers auszuwählen, wobei die Auswahl des Leistungsmodus von der Vorhersage der Arbeitslast abhängt, wobei der erste Leistungsmodus des Turbodecodierers eine erste Energie festlegt, die zum Vervollständigen einer durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, und der zweite Leistungsmodus des Turbodecodierers eine zweite Energie festlegt, die zum Vervollständigen der durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, wobei sich die erste Energie von der zweiten Energie unterscheidet.
  15. Vorrichtung nach Anspruch 14, wobei der Turbodecodierer dazu ausgelegt ist, auf der Grundlage einer justierbaren Spannung und einer justierbaren Frequenz zu arbeiten.
  16. Vorrichtung nach Anspruch 14 oder 15, ferner umfassend: eine dritte Einheit, die dazu ausgelegt ist zu detektieren, ob das Decodieren des Turbodecodierers einen Konvergenzzustand erreicht hat.
  17. Vorrichtung nach Anspruch 16, wobei die erste Einheit dazu ausgelegt ist, die Arbeitslast vorherzusagen, wenn der Konvergenzzustand detektiert wird.
  18. Vorrichtung nach einem der Ansprüche 14 bis 17, wobei der Turbodecodierer ein iterativer Decodierer ist und die erste Einheit dazu ausgelegt ist, die Arbeitslast während jeder Iteration oder halben Iteration des Decodierens vorherzusagen.
  19. Vorrichtung nach Anspruch 16 oder 17, wobei der Turbodecodierer ein iterativer Decodierer ist und der Konvergenzzustand detektiert wird, wenn ein Wert einer Entscheidungsmetrik um mindestens eine zuvor festgelegte Anzahl aufeinanderfolgender Iterationen oder halber Iterationen des Decodierens abnimmt.
  20. Vorrichtung nach einem der Ansprüche 14 bis 19, wobei die erste Einheit dazu ausgelegt ist, die Arbeitslast auf der Basis einer linearen Näherung vorherzusagen, wobei die lineare Näherung von zwei Werten einer Entscheidungsmetrik abhängt.
  21. Vorrichtung nach Anspruch 16, wobei die dritte Einheit dazu ausgelegt ist, eine vollständige Konvergenz des Codeblocks zu detektieren, wenn ein Wert einer Entscheidungsmetrik einen zuvor festgelegten Wert erreicht hat.
  22. Vorrichtung nach Anspruch 21, wobei ein Wert der Entscheidungsmetrik einer Anzahl von Änderungen harter Entscheidungen entspricht.
  23. Verfahren, umfassend: Decodieren eines Codeblocks unter Verwendung eines Turbodecodierers in einem ersten Leistungsmodus, wobei der erste Leistungsmodus des Turbodecodierers eine erste Energie festlegt, die zum Vervollständigen einer durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird; Detektieren, ob das Decodieren einen Konvergenzzustand erreicht hat; Vorhersagen einer Arbeitslast, die zum Decodieren des Codeblocks benötigt wird; Auswählen eines zweiten Leistungsmodus des Turbodecodierers, wobei die Auswahl des zweiten Leistungsmodus von der Vorhersage der Arbeitslast abhängt, wobei der zweite Leistungsmodus des Turbodecodierers eine zweite Energie festlegt, die zum Vervollständigen der durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, wobei sich die erste Energie von der zweiten Energie unterscheidet, wobei die Leistung des zweiten Leistungsmodus kleiner ist als die Leistung des ersten Leistungsmodus; und Betreiben des Turbodecodierers in dem zweiten Leistungsmodus.
  24. Vorrichtung, umfassend: einen Turbodecodierer, der dazu ausgelegt ist, in einem ersten Leistungsmodus des Turbodecodierers und einem zweiten Leistungsmodus des Turbodecodierers zu arbeiten; eine erste Einheit, die dazu ausgelegt ist, eine Arbeitslast vorherzusagen, die zum Decodieren eines Codeblocks unter Verwendung des Turbodecodierers benötigt wird; eine zweite Einheit, die dazu ausgelegt ist, einen Leistungsmodus des Turbodecodierers aus dem ersten Leistungsmodus und dem zweiten Leistungsmodus auszuwählen, wobei die Auswahl des Leistungsmodus von der Vorhersage der Arbeitslast abhängt, wobei der erste Leistungsmodus des Turbodecodierers eine erste Energie festlegt, die zum Vervollständigen einer durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, und der zweite Leistungsmodus des Turbodecodierers eine zweite Energie festlegt, die zum Vervollständigen der durch den Turbodecodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, wobei sich die erste Energie von der zweiten Energie unterscheidet; und eine dritte Einheit, die dazu ausgelegt ist zu detektieren, ob das Decodieren einen Konvergenzzustand erreicht hat.
  25. Verfahren, umfassend: Vorhersagen einer Arbeitslast, die zum Decodieren eines Codeblocks unter Verwendung eines iterativen Decodierers benötigt wird; und Auswählen eines Leistungsmodus des iterativen Decodierers aus zumindest einem ersten Leistungsmodus des iterativen Decodierers und einem zweiten Leistungsmodus des iterativen Decodierers, wobei das Auswählen des Leistungsmodus von der Vorhersage der Arbeitslast abhängt, wobei der erste Leistungsmodus des iterativen Decodierers eine erste Energie festlegt, die zum Vervollständigen einer durch den iterativen Decodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, und der zweite Leistungsmodus des iterativen Decodierers eine zweite Energie festlegt, die zum Vervollständigen der durch den iterativen Decodierer durchgeführten Anzahl von Decodieriterationen benötigt wird, wobei sich die erste Energie von der zweiten Energie unterscheidet.
DE201110056132 2010-12-07 2011-12-07 Verfahren und Vorrichtung zum Decodieren von Daten Expired - Fee Related DE102011056132B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/961,645 2010-12-07
US12/961,645 US8909949B2 (en) 2010-12-07 2010-12-07 Method and device for decoding data

Publications (2)

Publication Number Publication Date
DE102011056132A1 DE102011056132A1 (de) 2012-06-14
DE102011056132B4 true DE102011056132B4 (de) 2014-05-15

Family

ID=46144768

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201110056132 Expired - Fee Related DE102011056132B4 (de) 2010-12-07 2011-12-07 Verfahren und Vorrichtung zum Decodieren von Daten

Country Status (2)

Country Link
US (1) US8909949B2 (de)
DE (1) DE102011056132B4 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130205146A1 (en) * 2012-02-08 2013-08-08 Lsi Corporation Systems and Methods for Power Governance in a Data Processing Circuit
US10567008B2 (en) * 2015-07-02 2020-02-18 Apple Inc. Stopping criteria for turbo decoder
US10171110B1 (en) * 2017-07-03 2019-01-01 Seagate Technology Llc Sequential power transitioning of multiple data decoders

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113149A1 (en) * 2005-10-26 2007-05-17 Broadcom Corporation Power savings technique for iterative decoding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4606076A (en) * 1985-01-07 1986-08-12 Motorola, Inc. Communication receiver system having a voltage converter with an operating frequency below the receiver IF

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113149A1 (en) * 2005-10-26 2007-05-17 Broadcom Corporation Power savings technique for iterative decoding

Also Published As

Publication number Publication date
DE102011056132A1 (de) 2012-06-14
US8909949B2 (en) 2014-12-09
US20120144211A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
DE60113053T2 (de) Vor-Dekoder für Turbodekoder, zur Rückgewinnung von punktierten Paritätssymbolen, sowie ein Verfahren zur Rückgewinnung eines Turbokodes
DE19736625C1 (de) Verfahren zur Datenübertragung auf Übertragungskanälen in einem digitalen Übertragungssystem
DE60001988T2 (de) Turbo Dekodierung mit variabler Anzahl von Iterationen
DE19736653C1 (de) Verfahren und Einrichtung zur Abschätzung der Dienstqualität auf Übertragungskanälen in einem digitalen Übertragungssystem
DE102012100945A1 (de) Iterativer Decodierer
EP1005733B1 (de) Verfahren zur paketübertragung mit einem arq-protokoll auf übertragungskanälen in einem digitalen übertragungssystem
DE3910739C2 (de)
DE60316616T2 (de) Verfahren und system zur berechnung der bitfehlerrate eines empfangenen signals
DE602004001548T2 (de) Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem
DE60211413T2 (de) Verfahren und Vorrichtung zur Optimierung der Größe von codierten Datenblöcken
DE102005010006A1 (de) Verfahren und Vorrichtung zum Terminieren einer iterativen Turbo-Dekodierung
DE19736626C1 (de) Verfahren zur Datenübertragung in einem digitalen Übertragungssystem bei paketvermitteltem Dienst
DE102015110602A1 (de) Verfahren und Vorrichtung zum iterativen Decodieren einer Datentransferstruktur
DE60035269T2 (de) Verfahren und apparat zur bestimmung von kanalbedingungen in drahtlosen kommunikationssystemen
DE102011056132B4 (de) Verfahren und Vorrichtung zum Decodieren von Daten
DE112010003449T9 (de) Iterative Decodierung von Signalen, die über einen verrauschten Kanal empfangen werden, unter Verwendung von Vorwärts- und Rückwärts-Rekursionen mit einer Hochfahrinitialisierung
EP1249958B1 (de) Verfahren und Vorrichtung zur adaptiven Turbo Dekodierung mehrerer Funkkanäle unter Bestimmung eines CRC am Ende jeder Iteration
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE69908820T2 (de) Verfahren und system zur schnellen maximale-a-posteriori-dekodierung
DE60312906T2 (de) Turbo-dekodierung mit iterativer schätzung von kanalparametern
DE102015115281B4 (de) Dekodierer und Verfahren zum Dekodieren
DE19717546A1 (de) Verfahren und Vorrichtung zur Decodierung bei einem CDMA-Übertragungssystem zum Demodulieren eines Empfangssignals, das in serieller Codeverkettung vorliegt
EP2332301B1 (de) Verfahren und einrichtung zur quantisierung von likelihood-quotienten
DE4327777C1 (de) Verfahren und System zum Übertragen von Signalen
DE112011102578T5 (de) Verfahren zur Beendigung der Iteration bei einem iterativen Turbo-Dekodierer und iterativer Turbo-Dekodierer

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20150217

R081 Change of applicant/patentee

Owner name: INTEL DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: PATENTANWAELTE LAMBSDORFF & LANGE, DE

Representative=s name: LAMBSDORFF & LANGE PATENTANWAELTE PARTNERSCHAF, DE

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