-
FELD
-
Die vorliegende Offenbarung bezieht sich allgemein auf die Dekodierung von Polarcodes und insbesondere auf ein Verfahren und ein System zur Identifizierung und Dekodierung von Reed-Muller-Codes in Polarcodes.
-
HINTERGRUND
-
Polarcodes sind kapazitätserhaltende Codes, die vom 3rd Generation Partnership Project (3GPP) als Fehlerkorrekturcode auf Steuerkanälen der 5th Generation New Radio (5G NR) ausgewählt wurden. Polarcodes teilen den Kanal in gute Bit-Kanäle und schlechte Bit-Kanäle auf.
-
Polarcodes werden klassischerweise mit einem Decoder für sukzessives Abziehen (SCD) (SCD = successive cancellation decoder) dekodiert, der eine Rechenkomplexität in der Größenordnung von (N log N) für einen Code der Länge N aufweist, wobei N eine ganze Zahl ist. Die serielle Natur eines SCD führt jedoch auch zu einer großen Dekodier-Latenzzeit von (N log N). Die SCD-Dekodier-Latenzzeit kann unter Verwendung der mehrdimensionalen polaren Dekodierung, bei der die Multiplizitäten jedes Knotens eines Dekodierungsbaums parallel decodiert werden, auf 2N — 2 reduziert werden. Eine bessere Dekodierungsleistung kann durch Listendekodierung von Polarcodes erreicht werden. Die Listendekodierung eines Polarcodes weist jedoch eine Rechenkomplexität in der Größenordnung von O(LN log N) für eine Listengröße von L auf, die ein L-fache Steigerung gegenüber der Dekodierung durch sukzessives Abziehen eines Polarcodes darstellt.
-
Die SCL-Dekodierung (SCL = successive cancellation list, Liste-basiertes sukzessives Abziehen) von Polarcodes leidet aufgrund ihres sukzessiven Dekodierungscharakters unter einer hohen Latenzzeit. Die vereinfachte SCL-Dekodierung (Simplified SCL, SSCL) kann den Durchsatz der SCL-Dekodierung verbessern, indem bestimmte konstituierende Codes der polaren Kodierungsstruktur ausgenutzt werden. Die identifizierten konstituierenden Codes enthalten Rate-0-Codes, Rate-1-Codes, Wiederholungs (REP)-Codes und Einzelparitäts-Prüfcodes (SPC = single-parity check codes).
-
ZUSAMMENFASSUNG
-
Nach einer Ausführungsform ist ein Verfahren zum Dekodieren eines Polarcodes vorgesehen. Es wird ein SSCL-Dekodierungsbaum für den Polarcode erzeugt. Der SSCL-Dekodierungsbaum enthält eine Vielzahl von Knoten. Ein oder mehrere Knoten aus der Vielzahl von Knoten werden als Knoten identifiziert, die Reed-Muller-Codes zum Dekodieren verwenden. Die Dekodierung der empfangenen Log-Likelihood-Ratios (LLRs) wird unter Verwendung von Reed-Muller-Codes an dem einen oder mehreren Knoten durchgeführt. Harte Entscheidungswerte werden von dem einen oder den mehreren Knoten ausgegeben.
-
Nach einer Ausführungsform ist eine Nutzergerät (UE) vorgesehen, das einen Prozessor und ein nicht temporäres computerlesbares Speichermedium zur Speicherung von Anweisungen enthält. Wenn die Befehle ausgeführt werden, veranlassen sie den Prozessor, einen SSCL-Dekodierungsbaum für einen Polarcode zu erzeugen. Der SSCL-Dekodierungsbaum umfasst eine Vielzahl von Knoten. Die Anweisungen veranlassen den Prozessor auch, einen oder mehrere Knoten aus der Vielzahl von Knoten zu identifizieren, die Reed-Muller-Codes zur Dekodierung verwenden. Die Anweisungen veranlassen den Prozessor ferner, die Dekodierung der empfangenen LLRs unter Verwendung von Reed-Muller-Codes an dem einen oder den mehreren Knoten durchzuführen und harte Entscheidungswerte von dem einen oder den mehreren Knoten auszugeben.
-
Figurenliste
-
Die vorstehenden und andere Aspekte, Merkmale und Vorteile bestimmter Ausführungsformen der vorliegenden Offenbarung werden aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen deutlicher hervorgehen, in der
- 1 ist ein Diagramm, das einen SCL-Dekodierungsbaum für einen Polarcode veranschaulicht;
- 2 ist ein Diagramm, das einen SSCL-Dekodierungsbaum für einen Polarcode veranschaulicht;
- 3 ist ein Diagramm, das einen SSCL-Dekodierungsbaum mit neuen speziellen Knoten (SNs) nach einer Ausführungsform veranschaulicht;
- 4 ist ein Ablaufdiagramm, das ein Verfahren zum Dekodieren eines Polarcodes nach einer Ausführungsform veranschaulicht;
- 5 ist ein Ablaufdiagramm, das ein Verfahren zum Dekodieren von SNs eines SSCL-Dekodierungsbaums nach einer Ausführungsform veranschaulicht; und
- 6 ist ein Blockdiagramm einer elektronischen Vorrichtung in einer Netzwerkumgebung nach einer Ausführungsform.
-
DETAILLIERTE BESCHREIBUNG
-
Im Folgenden werden Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die beigefügten Zeichnungen ausführlich beschrieben. Es ist zu beachten, dass die gleichen Elemente durch die gleichen Referenznummern bezeichnet werden, obwohl sie in verschiedenen Zeichnungen gezeigt werden. In der folgenden Beschreibung werden spezifische Details wie detaillierte Konfigurationen und Komponenten lediglich angegeben, um das Gesamtverständnis der Ausführungsformen der vorliegenden Offenbarung zu unterstützen. Daher sollte es für den Fachmann offensichtlich sein, dass verschiedene Änderungen und Modifikationen an den hier beschriebenen Ausführungsformen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Darüber hinaus wird aus Gründen der Klarheit und Prägnanz auf Beschreibungen bekannter Funktionen und Konstruktionen verzichtet. Die nachstehend beschriebenen Begriffe sind Begriffe, die unter Berücksichtigung der Funktionen in der vorliegenden Offenbarung definiert sind und je nach Benutzer, Absichten der Benutzer oder Gepflogenheiten unterschiedlich sein können. Daher sollten die Definitionen der Begriffe auf der Grundlage der Inhalte dieser gesamten Spezifikation festgelegt werden.
-
Die vorliegende Offenbarung kann verschiedene Modifikationen und verschiedene Ausführungsformen aufweisen, von denen nachstehend unter Bezugnahme auf die beigefügten Zeichnungen Ausführungsformen ausführlich beschrieben werden. Es sollte jedoch verstanden werden, dass die vorliegende Offenbarung nicht auf die Ausführungsformen beschränkt ist, sondern alle Modifikationen, Äquivalente und Alternativen im Rahmen der vorliegenden Offenbarung umfasst.
-
Obwohl die Begriffe, die eine Ordnungszahl wie erste, zweite usw. enthalten, zur Beschreibung verschiedener Elemente verwendet werden können, werden die Strukturelemente durch die Begriffe nicht eingeschränkt. Die Begriffe werden nur verwendet, um ein Element von einem anderen Element zu unterscheiden. Ein erstes Strukturelement kann beispielsweise als zweites Strukturelement bezeichnet werden, ohne vom Anwendungsbereich der vorliegenden Offenbarung abzuweichen. In ähnlicher Weise kann das zweite Strukturelement auch als das erste Strukturelement bezeichnet werden. In der hier verwendeten Form schließt der Begriff „und/oder“ alle Kombinationen von einem oder mehreren verbundenen Elementen ein.
-
Die hier verwendeten Begriffe dienen lediglich dazu, verschiedene Ausführungsformen der vorliegenden Offenbarung zu beschreiben, sind aber nicht dazu gedacht, die vorliegende Offenbarung einzuschränken. Singularformen sollen auch Pluralformen einschließen, es sei denn, aus dem Kontext geht eindeutig etwas anderes hervor. In der vorliegenden Offenbarung ist zu verstehen, dass die Begriffe „enthalten“ oder „aufweisen“ die Existenz eines oder mehrerer Merkmale, einer oder mehrerer Zahlen, eines oder mehrerer Schritte, einer oder mehrerer Operationen, eines oder mehrerer Strukturelemente, eines oder mehrerer Teile oder einer Kombination davon anzeigen und die Existenz oder Wahrscheinlichkeit der Hinzufügung eines oder mehrerer anderer Merkmale, einer oder mehrerer Zahlen, eines oder mehrerer Schritte, einer oder mehrerer Operationen, eines oder mehrerer Strukturelemente, eines oder mehrerer Teile oder einer Kombination davon nicht ausschließen.
-
Sofern nicht anders definiert, weisen alle hier verwendeten Begriffe die gleiche Bedeutung auf, wie sie ein Fachmann auf einem Fachgebiet versteht, zu dem die vorliegende Offenbarung gehört. Begriffe, wie sie in einem allgemein gebräuchlichen Wörterbuch definiert sind, sind so auszulegen, dass sie die gleichen Bedeutungen aufweisen wie die kontextuellen Bedeutungen auf dem betreffenden Fachgebiet, und sind nicht so auszulegen, dass sie ideale oder übermäßig formale Bedeutungen aufweisen, es sei denn, sie sind in der vorliegenden Offenbarung klar definiert.
-
Die elektronische Vorrichtung nach einer Ausführungsform kann eine von verschiedenen Arten von elektronischen Vorrichtungen sein. Bei den elektronischen Vorrichtungen kann es sich zum Beispiel um eine tragbare Kommunikationsvorrichtung (z. B. ein Smartphone), einen Computer, eine tragbare Multimediavorrichtung, eine tragbare medizinische Vorrichtung, eine Kamera, eine am Körper tragbare Vorrichtung oder eine Haushaltsvorrichtung handeln. Nach einer Ausführungsform der Offenbarung ist eine elektronische Vorrichtung nicht auf die vorstehend beschriebenen Vorrichtungen beschränkt.
-
Die in der vorliegenden Offenbarung verwendeten Begriffe sollen die vorliegende Offenbarung nicht einschränken, sondern sollen verschiedene Änderungen, Äquivalente oder Ersatz für eine entsprechende Ausführungsform enthalten. In Bezug auf die Beschreibungen der beigefügten Zeichnungen können ähnliche Referenzzahlen verwendet werden, um auf ähnliche oder verwandte Elemente zu verweisen. Eine singuläre Form eines Substantivs, das einem Gegenstand entspricht, kann einen oder mehrere der Gegenstände einschließen, es sei denn, aus dem relevanten Kontext geht eindeutig etwas anderes hervor. In der hier verwendeten Form kann jeder der hier verwendeten Ausdrücke wie „A oder B“, „mindestens eines der Elemente A und B“, „mindestens eines der Elemente A oder B“, „A, B oder C“, „mindestens eines der Elemente A, B und C“ und „mindestens eines der Elemente A, B oder C“ alle möglichen Kombinationen der Gegenstände einschließen, die zusammen in einem entsprechenden der Ausdrücke aufgeführt sind. In der hier verwendeten Form können Begriffe wie „1.“, „2.“, „erster“ und „zweiter“ verwendet werden, um eine entsprechende Komponente von einer anderen Komponente zu unterscheiden, sie sind jedoch nicht dazu gedacht, die Komponenten in anderen Aspekten (z. B. Wichtigkeit oder Reihenfolge) einzuschränken. Es ist beabsichtigt, dass wenn ein Element (z. B. ein erstes Element) mit oder ohne den Begriff „wirk-,, oder „kommunikativ“, als „gekoppelt mit“, „gekoppelt an“ oder „verbunden mit“ einem anderen Element (z.B. einem zweiten Element) bezeichnet wird, dies anzeigt, dass das Element mit dem anderen Element direkt (z. B. verdrahtet), drahtlos oder über ein drittes Element gekoppelt sein kann.
-
Wie hier verwendet, kann der Begriff „Modul“ eine in Hardware, Software oder Firmware implementierte Einheit enthalten und austauschbar mit anderen Begriffen wie z. B. „Logik“, „logischer Block“, „Teil“ und „Schaltung“ verwendet werden. Ein Modul kann eine einzelne integrale Komponente oder eine minimale Einheit oder ein Teil davon sein, die bzw. der geeignet ist, eine oder mehrere Funktionen auszuführen. Nach einer Ausführungsform kann ein Modul z. B. in Form einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert sein.
-
Das vorliegende System und Verfahren ist auf die Identifizierung von konstituierenden Codes in einem SSCL-Dekodierungsbaum eines Polarcodes ausgerichtet, der zur Familie der Reed-Muller-Codes gehört. Dekodierungsschemata, die die symmetrische Struktur der Reed-Muller-Codes nutzen, können an diesen Knotenpunkten eingesetzt werden. Insbesondere wird die Reed-Muller-Dekodierung in die SSCL-Dekodierung von Polarcodes integriert oder angewendet, wodurch die Dekodierlatenz verbessert und verringert wird, ohne dass ein Verlust an Blockfehlerratenleistung in Kauf genommen werden muss.
-
Dabei können die Begriffe Knoten und Code austauschbar verwendet werden. Die Maximum-Likelihood (ML)-Dekodierung von Reed-Muller-Codes kann, wie im Folgenden näher beschrieben, effizient unter Verwendung eines Hadamard-Decoders durchgeführt werden.
-
1 ist ein Diagramm, das einen SCL-Dekodierungsbaum für einen Polarcode veranschaulicht. Konkret veranschaulicht 1 einen SCL-Dekodierungsbaum für einen Polarcode der Länge 16. Jeder Knoten 102 des Baumes ist mit einem konstituierenden Code verbunden. LLR-Vektoren für die Codebits werden von den Eltern-Knoten zu den Kind-Knoten geliefert, während die harten Entscheidungswerte der Codebits von den Kind-Knoten zurück zu den Eltern-Knoten geliefert werden. Weiße Knoten 104 stellen eingefrorene Bits des Polarcodes der Länge 16 dar, während schwarze Knoten 106 Informationsbits des Polarcodes der Länge 16 darstellen. Schattierte Knoten stellen Knoten dar, die im Dekodierungsbaum durchlaufen werden, um die eingefrorenen Bits und die Informationsbits zu bestimmen.
-
2 ist ein Diagramm, das einen SSCL-Dekodierungsbaum für einen Polarcode veranschaulicht. Konkret veranschaulicht 2 einen SSCL-Dekodierungsbaum für einen Polarcode der gleichen Länge 16 von 1. Jeder Knoten 202 des Baumes ist mit einem konstituierenden Code verbunden. Es werden vier Typen von SNs identifiziert: ein Rate-0-Knoten 204, der einen Rate-0-Code verwendet; ein Rate-1-Knoten 206, der einen Rate-1-Code verwendet; ein SPC-Knoten 208, der einen SCP-Code verwendet; und ein REP-Knoten 210, der einen REP-Code verwendet. Schattierte Knoten werden durchlaufen, und Knoten 212, die durch gestrichelte Linien dargestellt sind, werden nicht durchlaufen, da sie Kinder von SNs sind. Daher kann die Dekodier-Latenzzeit des SSCL-Decoders deutlich geringer als die des SCL-Decoders aus 1 sein.
-
3 ist ein Diagramm, das einen SSCL-Dekodierungsbaum mit neuen SNs nach einer Ausführungsform veranschaulicht. Konkret veranschaulicht 3 einen SSCL-Dekodierungsbaum für denselben Polarcode der Länge 16 von 1 und 2. Jeder Knoten des Baumes ist mit einem konstituierenden Code verbunden. Ein Reed-Muller-Untercode (Sub-RM) -Knoten 304 und ein Reed-Muller (RM)-Knoten 306 sind als Kind-Knoten eines Eltern-Knotens 302 identifiziert. Sobald die Dekodierung den Sub-RM-Knoten 304 erreicht, übernimmt ein Hadamard-Decoder die Dekodierungsaufgabe und gibt einen Satz von Werten für harte Entscheidungen an den Eltern-Knoten 302 aus. Die harten Entscheidungswerte werden dann zur Berechnung der LLRs für den RM-Knoten 306 verwendet. Der Hadamard-Decoder wird erneut eingesetzt, um die Dekodierung des RM-Knotens 306 durchzuführen. Der SSCL-Decoder von 3 unterscheidet sich vom SSCL-Decoder von 2 dadurch, dass in 3 der Hadamard-Decoder anstelle der SSCL-Dekodierung zur Verarbeitung jedes RM-Knotens und Sub-RM-Knotens verwendet wird.
-
Ähnlich wie in 2 werden Knoten 308, die mit gestrichelten Linien dargestellt sind, nicht durchlaufen, da sie Kinder von SNs sind, und daher kann die Dekodier-Latenzzeit des SSCL-Decoders deutlich geringer als die des SCL-Decoders aus 1 und des SSCL-Decoders aus 2 sein.
-
Nach einer Ausführungsform werden der Sub-RM-Knoten 304 und der RM-Knoten 306 zu den Typen von SNs hinzugefügt, die im SSCL-Dekodierungsbaum verwendet werden. Ein SSCL-Dekodierungsbaum kann also Rate-0-Knoten, Rate-1-Knoten, SPC-Knoten, REP-Knoten, Sub-RM-Knoten und/oder RM-Knoten enthalten.
-
Codewörter in Erster-Ordnung-Reed-Muller-Codes sind Auswertungen von Polynomen in F
2 [Z
1, ..., Z
m], die einen Grad von höchstens einem, d. h. jedem Codewort c ∈ RM(m, 1) kann als Polynom in der nachstehend in Gleichung (1) angegebenen Form dargestellt werden.
wobei
der Informationsvektor ist, und das Codewort c die Bewertung dieses Polynoms bei jedem
ist. Das erste Bit des Codeworts c ist zum Beispiel die Bewertung des Polynoms bei
während das letzte Bit des Codeworts c die Bewertung des Polynoms bei
ist. Jedes Bit des Codeworts c kann durch die binären Vektoren in
d. h. c(z) entspricht dem Bit des Codeworts c das der Bewertung des Polynoms bei z gleich ist.
-
Die ML-Dekodierung eines Reed-Muller-Codes ist, wie nachstehend in Gleichung (2) angegeben, dargestellt.
-
Da
bestimmt das vorliegende System
um nachstehende Gleichung (3) zu maximieren.
-
Für einen binären Vektor
ist L(u), wie in Gleichung (4) angegeben, definiert.
i ist die Hadamard-Transformation des Vektors
die in 0 (N log N), wobei N = 2
m, effizient berechnet werden kann.
-
Da
erreicht wird, kann u* = (u
1*, ..., u
m*) bestimmt werden, was |L(u)| maximiert. Wenn L(u*) > 0, ist die Ausgabe des Decoders (u
0* = 0, u
1*, ..., u
m*). Andernfalls ist die Ausgabe des Decoders (u
0* = 1, u
1*, ..., u
m*).
-
Um die wahrscheinlichsten L Kandidaten zu finden, kann eine Reihe von L Vektoren
mit einem Maximum |L(u)| bestimmt werden, und das erste Bit jedes Kandidaten kann, wie vorstehend beschrieben (d. h. in Abhängigkeit von dem Vorzeichen von L(u*)), dekodiert werden.
-
Der Hadamard-Decoder liefert Wahrscheinlichkeitsmetriken für jedes Codewort im Erster-Ordnung-Reed-Muller-Codebuch. Somit kann die Ausgabe des Hadamard-Decoders zur Dekodierung jedes Untercodes des Codebuchs verwendet werden. Nehmen wir zum Beispiel einen Erster-Ordnung-Reed-Muller-Code, der das in Gleichung (5) dargestellte Muster aus Informationen und eingefrorenen Bits aufweist.
-
Angenommen, der Decoder stößt auf einen Knoten mit dem in Gleichung (6) gezeigten Muster von Informationen und eingefrorenen Bits:
-
Dies würde einem Untercode des Reed-Muller-Codes der Länge 8 entsprechen. Daher kann die Hadamard-Transformation zur Bestimmung der Wahrscheinlichkeitsmetriken jedes Reed-Muller-Codeworts angewendet werden. Anstatt alle Metriken zu berücksichtigen, kann die Teilmenge, die dem Untercode des Reed-Muller-Codes entspricht, in Betracht gezogen werden.
-
Erster-Ordnung-Reed-Muller-Codes werden zusammen mit ihren Untercodes im Dekodierungsbaum der Polarcodes identifiziert, und der Hadamard-Decoder wird an diesen Knotenpunkten angewendet. Die Komplexität des Hadamard-Decoders ist 0(N log N), wobei N die Codeblocklänge ist. Die Verwendung des Hadamard-Decoders ist effizienter als das Durchqueren des Teilbaums dieser Knoten.
-
Erster-Ordnung-Reed-Muller-Codes und ihre Untercodes kommen bei der Dekodierung von 5G-NR-Polarcodes, zusätzlich zu Rate-0-Codes, Rate-1-Codes, SPC-Codes und REP-Codes, häufig als konstituierende Codes vor. Für die meisten Aggregationsebenen und Abwärtsstrecken-Steuerinformationen (DCI)-Größen (DCI = downlink control information) kommen im Dekodierungsbaum mehrere Erster-Ordnung-Reed-Muller-Knoten mit verschiedenen Knotengrößen bis zu einer Knotengröße von 64 vor. In ähnlicher Weise werden auch Knoten identifiziert, die den Untercodes von Erster-Ordnung-Reed-Muller-Codes entsprechen.
-
In einem 5G-NR-Polarcode für eine Aggregationsebene von 4 und einer DCI-Größe von 100 Bit existieren 2 Erster-Ordnung-Reed-Muller-Knoten mit einer Länge von 8, 1 mit einer Länge von 16 und 1 mit einer Länge von 32. Zusätzlich gibt es im 5G-NR-Polarcode 1 Untercode eines Reed-Muller-Codes der Länge 8, 1 der Länge 16 und 3 der Länge 32.
-
4 ist ein Ablaufdiagramm, das ein Verfahren zum Dekodieren eines Polarcodes nach einer Ausführungsform veranschaulicht. Bei 402 wird ein SSCL-Dekodierungsbaum für den Polarcode erzeugt. Der SSCL-Dekodierungsbaum enthält eine Vielzahl von Knoten. Jeder Knoten ist mit einem konstituierenden Code verbunden. Der SSCL-Dekodierungsbaum bestimmt eingefrorene Bits und Informationsbits des Polarcodes. Bei 404 werden ein oder mehrere Knoten aus der Vielzahl von Knoten als Knoten identifiziert, die Reed-Muller-Codes zur Dekodierung verwenden. Die Reed-Muller-Codes können Erster-Ordnung-Reed-Muller-Codes und Untercodes von Reed-Muller-Codes enthalten. Mindestens ein Knoten aus der Vielzahl der Knoten kann auch als Knoten identifiziert werden, der Rate-0-, Rate-1-, SPC- oder REP-Codes zum Dekodieren verwendet.
-
Bei 406 wird die Dekodierung der empfangenen LLRs unter Verwendung von Reed-Muller-Codes an einem oder mehreren Knoten durchgeführt. Die ML-Dekodierung wird mit einem Hadamard-Decoder durchgeführt. Bei 408 werden harte Entscheidungswerte von einem oder mehreren Knoten ausgegeben. Die Werte für harte Entscheidungen werden an einen Eltern-Knoten des einen oder der mehreren Knoten ausgegeben, und Kind-Knoten des einen oder der mehreren Knoten werden in der SSCL-Dekodierungsstruktur nicht durchlaufen.
-
Unter Bezugnahme auf 5 veranschaulicht ein Ablaufdiagramm ein Verfahren zum Dekodieren eines SSCL-Dekodierungsbaums in SNs nach einer Ausführungsform. Bei 502 wird ein erster Knoten als Knoten identifiziert, der Untercodes von Reed-Muller-Codes verwendet. Bei 504 wird ein zweiter Knoten als Knoten identifiziert, der Erster-Ordnung-Reed-Muller-Codes verwendet. Bei 506 wird die ML-Dekodierung der ersten LLRs am ersten Knoten unter Verwendung eines Hadamard-Decoders durchgeführt. Bei 508 werden die ersten harten Entscheidungswerte vom ersten Knoten an einen Eltern-Knoten ausgegeben. Bei 510 werden zweite LLRs am zweiten Knoten vom Eltern-Knoten auf der Grundlage der ersten harten Entscheidungswerte vom Eltern-Knoten empfangen. Bei 512 wird die ML-Dekodierung der zweiten LLRs am zweiten Knoten unter Verwendung des Hadamard-Decoders durchgeführt. Bei 514 werden die Werte für die zweite harte Entscheidung vom zweiten Knoten an den Eltern-Knoten ausgegeben.
-
6 ist ein Blockdiagramm einer elektronischen Vorrichtung in einer Netzwerkumgebung nach einer Ausführungsform. Unter Bezugnahme auf 6 kann eine elektronische Vorrichtung 601 in einer Netzwerkumgebung 600 mit einer elektronischen Vorrichtung 602 über ein erstes Netzwerk 698 (z. B. ein Drahtlos-Kommunikationsnetzwerk mit kurzer Reichweite), oder mit einer elektronischen Vorrichtung 604 oder einem Server 608 über ein zweites Netzwerk 699 (z. B. ein Drahtlos-Kommunikationsnetzwerk mit großer Reichweite) kommunizieren. Die elektronische Vorrichtung 601 kann mit der elektronischen Vorrichtung 604 über den Server 608 kommunizieren. Die elektronische Vorrichtung 601 kann einen Prozessor 620, einen Speicher 630, eine Eingabevorrichtung 650, eine Tonausgabevorrichtung 655, eine Anzeigevorrichtung 660, ein Audiomodul 670, ein Sensormodul 676, eine Schnittstelle 677, ein Haptikmodul 679, ein Kameramodul 680, ein Leistungsverwaltungsmodul 688, eine Batterie 689, ein Kommunikationsmodul 690, ein Teilnehmer-Identifikationsmodul (SIM) 696 oder ein Antennenmodul 697 enthalten. In einer Ausführungsform kann mindestens eine (z. B. die Anzeigevorrichtung 660 oder das Kameramodul 680) der Komponenten bei der elektronischen Vorrichtung 601 weggelassen werden, oder es können eine oder mehrere andere Komponenten zu der elektronischen Vorrichtung 601 hinzugefügt werden. Einige der Komponenten können als eine einzige integrierte Schaltung (IC) implementiert werden. Das Sensormodul 676 (z. B. ein Fingerabdrucksensor, ein Iris-Sensor oder ein Beleuchtungsstärkesensor) kann zum Beispiel in der Anzeigevorrichtung 660 (z. B. einer Anzeige) eingebettet sein.
-
Der Prozessor 620 kann z. B. Software (z. B. ein Programm 640) ausführen, um mindestens eine andere Komponente (z. B. eine Hardware- oder Softwarekomponente) der mit dem Prozessor 620 gekoppelten elektronischen Vorrichtung 601 zu steuern, und kann verschiedene Datenverarbeitungen oder Berechnungen durchführen. Zumindest als Teil der Datenverarbeitung oder Berechnungen kann der Prozessor 620 einen von einer anderen Komponente (z. B. dem Sensormodul 676 oder dem Kommunikationsmodul 690) empfangenen Befehl oder empfangene Daten in den flüchtigen Speicher 632 laden, den im flüchtigen Speicher 632 gespeicherten Befehl oder die Daten verarbeiten und die resultierenden Daten im nichtflüchtigen Speicher 634 speichern. Der Prozessor 620 kann einen Hauptprozessor 621 (z. B. eine zentrale Verarbeitungseinheit (CPU) oder einen Anwendungsprozessor (AP)) und einen Hilfsprozessor 623 (z. B. eine Graphikverarbeitungseinheit (GPU), einen Bildsignalprozessor (ISP), einen Sensor-Hub-Prozessor oder einen Kommunikationsprozessor (CP)) enthalten, der unabhängig vom Hauptprozessor 621 oder in Verbindung mit diesem betrieben werden kann. Zusätzlich oder alternativ kann der Hilfsprozessor 623 so angepasst werden, dass er weniger Leistung als der Hauptprozessor 621 aufnimmt oder eine bestimmte Funktion ausführt. Der Hilfsprozessor 623 kann separat vom Hauptprozessor 621 oder als Teil davon implementiert werden.
-
Der Hilfsprozessor 623 kann zumindest einige der Funktionen oder Zustände steuern, die sich auf mindestens eine Komponente (z. B. die Anzeigevorrichtung 660, das Sensormodul 676 oder das Kommunikationsmodul 690) unter den Komponenten der elektronischen Vorrichtung 601 beziehen, und zwar anstelle des Hauptprozessors 621, während sich der Hauptprozessor 621 in einem inaktiven Zustand (z. B. Ruhezustand) befindet, oder zusammen mit dem Hauptprozessor 621, während sich der Hauptprozessor 621 in einem aktiven Zustand (z. B. Ausführen einer Anwendung) befindet. Der Hilfsprozessor 623 (z. B. ein Bildsignalprozessor oder ein Kommunikationsprozessor) kann als Teil einer anderen Komponente (z. B. des Kameramoduls 680 oder des Kommunikationsmoduls 690) implementiert werden, die funktionell mit dem Hilfsprozessor 623 verbunden ist.
-
Der Speicher 630 kann verschiedene Daten speichern, die von mindestens einer Komponente (z. B. dem Prozessor 620 oder dem Sensormodul 676) der elektronischen Vorrichtung 601 verwendet werden. Die verschiedenen Daten können z. B. Software (z. B. das Programm 640) und Eingabedaten oder Ausgabedaten für einen damit verbundenen Befehl enthalten. Der Speicher 630 kann den flüchtigen Speicher 632 oder den nichtflüchtigen Speicher 634 enthalten.
-
Das Programm 640 kann als Software im Speicher 630 abgelegt werden und kann z. B. ein Betriebssystem (OS) 642, eine Middleware 644 oder eine Anwendung 646 enthalten.
-
Die Eingabevorrichtung 650 kann einen Befehl oder Daten, die von einer anderen Komponente (z. B. dem Prozessor 620) der elektronischen Vorrichtung 601 verwendet werden sollen, von außerhalb (z. B. von einem Benutzer) der elektronischen Vorrichtung 601 empfangen. Die Eingabevorrichtung 650 kann z. B. ein Mikrofon, eine Maus oder eine Tastatur enthalten.
-
Die Tonausgabevorrichtung 655 kann Tonsignale nach Außerhalb der elektronischen Vorrichtung 601 ausgeben. Die Tonausgabevorrichtung 655 kann z. B. einen Lautsprecher oder einen Empfänger enthalten. Der Lautsprecher kann für allgemeine Zwecke verwendet werden, z. B. für die Wiedergabe von Multimedia oder Aufnahmen, und der Empfänger kann zum Empfang eines eingehenden Anrufs verwendet werden. Der Empfänger kann vom Lautsprecher getrennt oder als Teil davon ausgeführt sein.
-
Die Anzeigevorrichtung 660 kann visuell Informationen nach Außerhalb der elektronischen Vorrichtung 601 (z. B. an einen Benutzer) liefern. Die Anzeigevorrichtung 660 kann z. B. eine Anzeige, eine Hologrammvorrichtung oder einen Projektor und eine Steuerschaltung zur Steuerung einer entsprechenden von einer Anzeige, einer Hologrammvorrichtung und einem Projektor enthalten. Die Anzeigevorrichtung 660 kann eine Berührungsschaltung enthalten, die so ausgelegt ist, um eine Berührung zu erkennen, oder eine Sensorschaltung (z. B. einen Drucksensor), der ausgelegt ist, um die Intensität der durch die Berührung entstehenden Kraft zu messen.
-
Das Audiomodul 670 kann einen Ton in ein elektrisches Signal umwandeln und umgekehrt. Das Audiomodul 670 kann den Ton über die Eingabevorrichtung 650 erhalten oder den Ton über die Tonausgabevorrichtung 655 oder einen Kopfhörer einer externen elektronischen Vorrichtung 602, die direkt (z. B. verkabelt) oder drahtlos mit der elektronischen Vorrichtung 601 gekoppelt ist, ausgeben.
-
Das Sensormodul 676 kann einen Betriebszustand (z. B. Leistung oder Temperatur) der elektronischen Vorrichtung 601 oder einen Umgebungszustand (z. B. den Zustand eines Benutzers) außerhalb der elektronischen Vorrichtung 601 erkennen und dann ein elektrisches Signal oder einen Datenwert erzeugen, der dem erfassten Zustand entspricht. Das Sensormodul 676 kann z. B. einen Gestensensor, einen Gyrosensor, einen Luftdrucksensor, einen Magnetsensor, einen Beschleunigungssensor, einen Griffsensor, einen Näherungssensor, einen Farbsensor, einen Infrarot (IR)-Sensor, einen biometrischen Sensor, einen Temperatursensor, einen Feuchtigkeitssensor oder einen Beleuchtungsstärkesensor enthalten.
-
Die Schnittstelle 677 kann ein oder mehrere spezifizierte Protokolle unterstützen, die verwendet werden, damit die elektronische Vorrichtung 601 direkt (z. B. verdrahtet) oder drahtlos mit der externen elektronischen Vorrichtung 602 gekoppelt werden kann. Die Schnittstelle 677 kann z. B. eine hochauflösende Multimediaschnittstelle (HDMI), eine Universal Serial Bus (USB)-Schnittstelle, eine sichere digitale (SD)-Kartenschnittstelle oder eine Audioschnittstelle enthalten.
-
Eine Anschlussklemme 678 kann einen Stecker enthalten, über den die elektronische Vorrichtung 601 physisch mit der externen elektronischen Vorrichtung 602 verbunden werden kann. Die Anschlussklemme 678 kann z. B. einen HDMI-Anschluss, einen USB-Anschluss, einen SD-Karten-Anschluss oder einen Audioanschluss (z. B. einen Kopfhöreranschluss) enthalten.
-
Das Haptikmodul 679 kann ein elektrisches Signal in einen mechanischen Reiz (z. B. eine Vibration oder eine Bewegung) oder in einen elektrischen Reiz umwandeln, der von einem Benutzer über die taktile oder kinästhetische Empfindung erkannt werden kann. Das Haptikmodul 679 kann z. B. einen Motor, ein piezoelektrisches Element oder einen elektrischen Stimulator enthalten.
-
Das Kameramodul 680 kann ein Standbild oder bewegte Bilder aufnehmen. Das Kameramodul 680 kann ein oder mehrere Objektive, Bildsensoren, Bildsignalprozessoren oder Blitzvorrichtungen enthalten.
-
Das Leistungsverwaltungsmodul 688 kann die Stromversorgung der elektronischen Vorrichtung 601 verwalten. Das Leistungsverwaltungsmodul 688 kann zumindest als Teil z. B. einer Leistungsverwaltungsmodul-Integrierte-Schaltung (PMIC) implementiert werden.
-
Die Batterie 689 kann mindestens eine Komponente der elektronischen Vorrichtung 601 mit Leistung versorgen. Die Batterie 689 kann z. B. eine Primärzelle, die nicht wiederaufladbar ist, eine Sekundärzelle, die wiederaufladbar ist, oder eine Brennstoffzelle enthalten.
-
Das Kommunikationsmodul 690 kann das Einrichten eines direkten (z. B. verdrahteten) Kommunikationskanals oder eines drahtlosen Kommunikationskanals zwischen der elektronischen Vorrichtung 601 und der externen elektronischen Vorrichtung (z. B. der elektronischen Vorrichtung 602, der elektronischen Vorrichtung 604 oder dem Server 608) und das Durchführen der Kommunikation über den eingerichteten Kommunikationskanal unterstützen. Das Kommunikationsmodul 690 kann einen oder mehrere Kommunikationsprozessoren enthalten, die unabhängig vom Prozessor 620 (z. B. dem AP) betrieben werden können und eine direkte (z. B. drahtgebundene) Kommunikation oder eine Drahtlos-Kommunikation unterstützen. Das Kommunikationsmodul 690 kann ein Drahtlos-Kommunikationsmodul 692 (z. B. ein zellulares Kommunikationsmodul, ein Drahtlos-Kommunikationsmodul mit kurzer Reichweite oder ein GNSS-Kommunikationsmodul (Global Navigation Satellite System)) oder ein drahtgebundenes Kommunikationsmodul 694 (z. B. ein LAN-Kommunikationsmodul (Local Area Network) oder ein PLC-Kommunikationsmodul (Power Line Communication)) enthalten. Ein entsprechendes dieser Kommunikationsmodule kann mit der externen elektronischen Vorrichtung über das erste Netzwerk 698 (z. B. ein Kommunikationsnetzwerk mit kurzer Reichweite, wie Bluetooth™, WiFi-Direkt (WiFi = wireless-fidelity) oder einen Standard der Infrared Data Association (IrDA)) oder das zweite Netzwerk 699 (z. B. ein Kommunikationsnetzwerk mit großer Reichweite, wie ein zellulares Netzwerk, das Internet oder ein Computernetzwerk (z. B. LAN oder Wide Area Network (WAN)) kommunizieren. Diese verschiedenen Arten von Kommunikationsmodulen können als eine einzige Komponente (z. B. ein einzelner IC) oder als mehrere voneinander getrennte Komponenten (z. B. mehrere ICs) implementiert werden. Das Drahtlos-Kommunikationsmodul 692 kann die elektronische Vorrichtung 601 in einem Kommunikationsnetz, wie z. B. dem ersten Netz 698 oder dem zweiten Netz 699, unter Verwendung von Teilnehmerinformationen (z. B. die im Teilnehmeridentifikationsmodul 696 gespeicherte internationale mobile Teilnehmeridentität (IMSI)), identifizieren und authentifizieren.
-
Das Antennenmodul 697 kann ein Signal oder eine Leistung nach oder von außerhalb der elektronischen Vorrichtung 601 (z. B. von der externen elektronischen Vorrichtung) senden oder empfangen. Das Antennenmodul 697 kann eine oder mehrere Antennen enthalten, von denen mindestens eine Antenne, die für ein im Kommunikationsnetz verwendetes Kommunikationsschema geeignet ist, wie das erste Netz 698 oder das zweite Netz 699, z. B. durch das Kommunikationsmodul 690 (z. B. das Drahtlos-Kommunikationsmodul 692) ausgewählt werden kann. Das Signal oder die Leistung kann dann zwischen dem Kommunikationsmodul 690 und der externen elektronischen Vorrichtung über die gewählte mindestens eine Antenne gesendet oder empfangen werden.
-
Zumindest einige der vorstehend beschriebenen Komponenten können miteinander gekoppelt sein und Signale (z. B. Befehle oder Daten) zwischen ihnen über ein interperipheres Kommunikationsschema (z. B. einen Bus, einen GPIO (GPIO = General Purpose Input und Output, Allgemeinzweck-Eingang-/Ausgang) eine serielle Peripherieschnittstelle (SPI) oder eine MIPI (MIPI = Mobile Industry Processor Interface) austauschen.
-
Befehle oder Daten können zwischen der elektronischen Vorrichtung 601 und der externen elektronischen Vorrichtung 604 über den mit dem zweiten Netzwerk 699 gekoppelten Server 608 übertragen oder empfangen werden. Jede der elektronischen Vorrichtungen 602 und 604 kann eine Vorrichtung desselben Typs oder eines anderen Typs als die elektronische Vorrichtung 601 sein. Alle oder einige der auf der elektronischen Vorrichtung 601 auszuführenden Operationen können auf einem oder mehreren der externen elektronischen Vorrichtungen 602, 604 oder 608 ausgeführt werden. Wenn die elektronische Vorrichtung 601 beispielsweise eine Funktion oder einen Dienst automatisch oder als Antwort auf eine Anfrage eines Benutzers oder einer anderen Vorrichtung durchführen soll, kann die elektronische Vorrichtung 601 anstelle oder zusätzlich zur Ausführung der Funktion oder des Dienstes die eine oder die mehreren externen elektronischen Vorrichtungen auffordern, zumindest einen Teil der Funktion oder des Dienstes auszuführen. Die externe(n) elektronische(n) Vorrichtung(e), die die Anforderung empfängt (empfangen), kann (können) zumindest einen Teil der angeforderten Funktion oder des Dienstes oder eine zusätzliche Funktion oder einen zusätzlichen Dienst im Zusammenhang mit der Anforderung durchführen und das Ergebnis der Durchführung zu der elektronischen Vorrichtung 601 übertragen. Die elektronische Vorrichtung 601 kann das Ergebnis, mit oder ohne weitere Verarbeitung des Ergebnisses, zumindest als Teil einer Antwort auf die Anfrage bereitstellen. Zu diesem Zweck kann z. B. eine Cloud-Computing-, Distributed-Computing- oder eine Client-Server-Computing-Technologie verwendet werden.
-
Eine Ausführungsform kann als Software (z. B. das Programm 640) implementiert sein, die einen oder mehrere Anweisungen enthält, die auf einem Speichermedium (z. B. internen Speicher 636 oder externen Speicher 638) gespeichert sind, das von einer Maschine (z. B. der elektronischen Vorrichtung 601) gelesen werden kann. So kann z. B. ein Prozessor der elektronischen Vorrichtung 601 mindestens einen der einen oder der mehreren auf dem Speichermedium gespeicherten Anweisungen aufrufen und diese mit oder ohne Verwendung einer oder mehrerer anderer Komponenten unter der Steuerung des Prozessors ausführen. Somit kann eine Maschine so betrieben werden, dass sie mindestens eine Funktion entsprechend der mindestens einen aufgerufenen Anweisung ausführt. Die eine oder die mehreren Anweisungen können einen von einem Compiler erzeugten Code oder einen von einem Interpreter ausführbaren Code enthalten. Ein maschinenlesbares Speichermedium kann in Form eines nicht flüchtigen Speichermediums vorgesehen werden. Der Begriff „nicht flüchtig“ weist daraufhin, dass das Speichermedium eine materielle Vorrichtung ist und kein Signal (z. B. eine elektromagnetische Welle) enthält, aber dieser Begriff unterscheidet nicht zwischen der semipermanenten Speicherung von Daten auf dem Speichermedium und der temporären Speicherung der Daten auf dem Speichermedium.
-
Nach einer Ausführungsform kann ein Verfahren der Offenbarung in einem Computerprogrammprodukt enthalten sein und vorgesehen werden. Das Computerprogrammprodukt kann als ein Produkt zwischen einem Verkäufer und einem Käufer gehandelt werden. Das Computerprogrammprodukt kann in Form eines maschinenlesbaren Speichermediums (z. B. eines Compact-Disc-Lesespeichers (CD-ROM)) vertrieben werden, oder es kann online über einen Anwendungsspeicher (z. B. Play Store™) oder direkt zwischen zwei Benutzervorrichtungen (z. B. Smartphones) vertrieben (z. B. heruntergeladen oder hochgeladen) werden. Beim Online-Vertrieb kann zumindest ein Teil des Computerprogrammprodukts temporär erzeugt oder zumindest temporär auf dem maschinenlesbaren Speichermedium, z. B. im Speicher des Servers des Herstellers, auf einem Server des Anwendungsspeichers oder auf einem Relay-Server, gespeichert werden.
-
Nach einer Ausführungsform kann jede Komponente (z. B. ein Modul oder ein Programm) der vorstehend beschriebenen Komponenten eine einzelne Entität oder mehrere Entitäten enthalten. Eine oder mehrere der vorstehend beschriebenen Komponenten können weggelassen werden, oder es können eine oder mehrere andere Komponenten hinzugefügt werden. Alternativ oder zusätzlich können mehrere Komponenten (z. B. Module oder Programme) in eine einzige Komponente integriert werden. In diesem Fall kann die integrierte Komponente immer noch eine oder mehrere Funktionen jeder der Vielzahl von Komponenten in gleicher oder ähnlicher Weise erfüllen, wie sie von einer entsprechenden der Vielzahl von Komponenten vor der Integration erfüllt werden. Durch das Modul, das Programm oder eine andere Komponente durchgeführte Operationen können sequentiell, parallel, wiederholt oder heuristisch durchgeführt werden, oder eine oder mehrere der Operationen können in einer anderen Reihenfolge ausgeführt oder weggelassen werden, oder es können eine oder mehrere andere Operationen hinzugefügt werden.
-
Obwohl bestimmte Ausführungsformen der vorliegenden Offenbarung in der detaillierten Beschreibung der vorliegenden Offenbarung beschrieben wurden, kann die vorliegende Offenbarung in verschiedenen Formen modifiziert werden, ohne vom Anwendungsbereich der vorliegenden Offenbarung abzuweichen. Daher soll der Umfang der vorliegenden Offenbarung nicht nur auf der Grundlage der beschriebenen Ausführungsformen, sondern vielmehr auf der Grundlage der beigefügten Ansprüche und deren Äquivalente bestimmt werden.