-
STAND DER TECHNIK
-
1. Gebiet der Offenbarung
-
Die vorliegende Offenbarung betrifft das Koordinieren von Operationen von Chips mehrerer integrierter Schaltkreise (IC) in einer elektronischen Vorrichtung.
-
2. Beschreibung des Standes der Technik
-
Elektronische Vorrichtungen können mehrere Systeme auf Chips (SOCs) zum Kommunizieren mit anderen Vorrichtungen unter Verwendung verschiedener Kommunikationsprotokolle einschließen. Da die Größe eines Kommunikationssystems in einer elektronischen Vorrichtung kleiner wird, während die Funktionalität des Kommunikationssystems zunimmt, werden mehr SOCs in die elektronische Vorrichtung integriert oder zu jedem SOC werden mehr Subsysteme hinzugefügt. Diese SOCs können mit einem Host (z. B. einem Zentralprozessor oder einem Anwendungsprozessor) über einen dedizierten Kommunikationspfad (z. B. Peripheriekomponenten-Interconnect Express (PCIe)) kommunizieren, um Daten zu übertragen.
-
Infolge des Integrierens mehrerer Kommunikationssysteme und anderer Subsysteme in die elektronische Vorrichtung können verschiedene Probleme oder Komplikationen auftreten. Diese Probleme oder Komplikationen schließen Konflikte und Einschränkungen ein, die durch das Verwenden eines gemeinsam genutzten Kommunikationskanals, wie eines Multidrop-Busses, zwischen den SOCs und den Subsystemen entstehen.
-
KURZDARSTELLUNG
-
Ausführungsformen beziehen sich auf eine elektronische Vorrichtung, die eine Billboard-Schaltung einschließt, die Kontextinformationen auf einer integrierten Schaltung speichert. Die Kontextinformationen geben einen Betriebszustand der integrierten Schaltung an. Die Kontextinformationen können zum Speichern in der Billboard-Schaltung zu einem ersten Zeitpunkt von der integrierten Schaltung über einen Multidrop-Bus an die Billboard-Schaltung gesendet werden. Die Kontextinformationen können zu einem zweiten Zeitpunkt, der später als der erste Zeitpunkt ist, nach dem Erfassen eines Ereignisses abgerufen und von der Billboard-Schaltung an eine andere integrierte Schaltung gesendet werden. Die andere integrierte Schaltung kann ihren Betrieb als Reaktion auf das Empfangen der Kontextinformationen ändern.
-
Figurenliste
-
- Figur (FIG.) 1 ist ein Übersichtsdiagramm einer elektronischen Vorrichtung gemäß einer Ausführungsform.
- 2 ist ein Blockdiagramm, das Komponenten der elektronischen Vorrichtung mit mehreren Systemen gemäß einer Ausführungsform veranschaulicht.
- 3 ist ein Blockdiagramm, das eine Koexistenz-Hub-Vorrichtung gemäß einer Ausführungsform veranschaulicht.
- 4A ist ein Blockdiagramm eines Dispatchers in der Koexistenz-Hub-Vorrichtung von 3 gemäß einer Ausführungsform.
- 4B ist ein Blockdiagramm eines Billboard in der Koexistenz-Hub-Vorrichtung gemäß einer Ausführungsform.
- 5 ist ein Blockdiagramm eines SOC, das mit dem Billboard kommuniziert, gemäß einer Ausführungsform.
- 6 ist ein Blockdiagramm eines Anwendungsprozessors und Systems in einer elektronischen Vorrichtung gemäß einer Ausführungsform.
- 7 ist ein Flussdiagramm, das den Prozess zum Betreiben des Billboard gemäß einer Ausführungsform veranschaulicht.
-
Die Figuren zeigen und die detaillierte Beschreibung beschreibt verschiedene nicht einschränkende Ausführungsformen nur zum Zwecke der Veranschaulichung.
-
DETAILLIERTE BESCHREIBUNG
-
Es wird nun ausführlich auf Ausführungsformen Bezug genommen, von denen Beispiele in den beigefügten Zeichnungen veranschaulicht sind. In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details aufgeführt, um für ein umfassendes Verständnis der verschiedenen beschriebenen Ausführungsformen zu sorgen. Die beschriebenen Ausführungsformen können jedoch ohne diese spezifischen Details ausgeführt werden. In anderen Fällen wurden hinlänglich bekannte Verfahren, Vorgehensweisen, Komponenten, Schaltungen und Netzwerke nicht im Detail beschrieben, um Gesichtspunkte der Ausführungsformen nicht unnötig zu verschleiern.
-
Ausführungsformen beziehen sich auf eine Billboard-Schaltung, die Kontextinformationen speichert, die von verschiedenen Komponentenschaltungen in einer elektronischen Vorrichtung empfangen werden. Die Kontextinformationen geben einen Betriebszustand der entsprechenden Komponentenschaltung, des entsprechenden Systems oder der entsprechenden gemeinsam genutzten Ressourcen an. Die gespeicherten Kontextinformationen können von einer oder mehreren Komponentenschaltungen abgerufen werden, wenn Ereignisse (z. B. Einschalten einer Komponentenschaltung) erfasst werden. Durch Verwenden der Billboard-Schaltung kann eine Komponentenschaltung Änderungen des Betriebszustands anderer Komponentenschaltungen erfassen und ihre Operationen selbst dann konfigurieren oder aktualisieren, wenn die Änderungen aufgetreten sind, während die Komponentenschaltung im Ruhezustand oder deaktiviert war. Die Billboard-Schaltung kann das Aktualisieren der Kontextinformationen durch die Komponentenschaltung überwachen und eine Benachrichtigung an andere Komponentenschaltungen initiieren, wenn bestimmte Einträge der Kontextinformationen aktualisiert werden.
-
Beispielhafte elektronische Vorrichtung
-
Es werden Ausführungsformen von elektronischen Vorrichtungen, von Benutzerschnittstellen für solche Vorrichtungen und zugehörige Verfahren zur Verwendung solcher Vorrichtungen beschrieben. In einigen Ausführungsformen handelt es sich bei der Vorrichtung um eine tragbare Kommunikationsvorrichtung, wie ein Mobiltelefon, das auch andere Funktionen umfasst, wie etwa die eines persönlichen digitalen Assistenten (Personal Digital Assistant, PDA) und/oder Funktionen zur Wiedergabe von Musik. Beispielhafte Ausführungsformen von tragbaren Multifunktionsvorrichtungen schließen, ohne Einschränkung, die iPhoneⓇ-, iPod Touch®-, Apple Watch®- und iPad®-Vorrichtungen von Apple Inc. in Cupertino, Kalifornien, ein. Optional werden auch andere tragbare elektronische Vorrichtungen wie Wearables, Laptops oder Tablet-Computer verwendet. In einigen Ausführungsformen ist die Vorrichtung keine tragbare Kommunikationsvorrichtung, sondern ein Desktop-Computer oder eine andere Computervorrichtung, die nicht für die tragbare Verwendung ausgelegt ist. In einigen Ausführungsformen kann die offenbarte elektronische Vorrichtung eine berührungsempfindliche Oberfläche umfassen (z. B. eine Touchscreen-Anzeige und/oder ein Touchpad). Eine beispielhafte elektronische Vorrichtung, die nachstehend in Verbindung mit 1 beschrieben wird (z. B. Vorrichtung 100) kann eine berührungsempfindliche Oberfläche zum Empfangen von Benutzereingaben enthalten. Die elektronische Vorrichtung kann auch eine oder mehrere andere physikalische Benutzerschnittstellenvorrichtungen, wie eine physikalische Tastatur, eine Maus und/oder einen Joystick, einschließen.
-
Figur (FIG.) 1 ist ein Hochpegeldiagramm einer elektronischen Vorrichtung 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Vorrichtung 100 kann eine oder mehrere physische Tasten, wie eine „Home“- oder Menütaste 104, einschließen. Die Menütaste 104 wird zum Beispiel verwendet, um zu einer beliebigen Anwendung aus einer Reihe von Anwendungen zu navigieren, die auf der Vorrichtung 100 ausgeführt werden. In einigen Ausführungsformen schließt die Menütaste 104 einen Fingerabdrucksensor ein, der einen Fingerabdruck auf der Menütaste 104 identifiziert. Der Fingerabdrucksensor kann verwendet werden, um zu bestimmen, ob ein Finger auf der Menütaste 104 über einen Fingerabdruck verfügt, der mit einem für das Entsperren der Vorrichtung 100 gespeicherten Fingerabdruck übereinstimmt. Alternativ dazu ist in einigen Ausführungsformen die Menütaste 104 als Softkey in einer grafischen Benutzerschnittstelle (GUI) implementiert, die auf einem Touchscreen angezeigt wird.
-
In einigen Ausführungsformen umfasst die Vorrichtung 100 den Touchscreen 150, die Menütaste 104, die Drucktaste 106 zum Ein-/Ausschalten und zum Sperren der Vorrichtung, die Lautstärkeregelungstasten 108, den SIM (Subscriber Identity Module)-Kartenschlitz 110, den Kopfhöreranschluss 112 und einen externen Anschluss 124 zum Docking/Aufladen. Die Drucktaste 106 kann verwendet werden, um die Vorrichtung ein- und auszuschalten, indem die Taste gedrückt wird und die Taste für ein vordefiniertes Zeitintervall im gedrückten Zustand gehalten wird; um die Vorrichtung zu sperren, indem die Taste gedrückt und die Taste losgelassen wird, bevor das vordefinierte Zeitintervall verstrichen ist; und/oder um die Vorrichtung zu entriegeln oder einen Entriegelungsprozess zu initiieren. In einer alternativen Ausführungsform akzeptiert die Vorrichtung 100 auch verbale Eingaben zur Aktivierung oder Deaktivierung einiger Funktionen über das Mikrofon 113. Die Vorrichtung 100 schließt verschiedene Komponenten ein, einschließlich, aber nicht beschränkt auf einen Speicher (der ein oder mehrere computerlesbare Speichermedien enthalten kann), eine Speichersteuerung, eine oder mehrere zentrale Verarbeitungseinheiten (CPUs), eine Peripherieschnittstelle, eine HF-Schaltung, eine Audioschaltung, einen Lautsprecher 111, ein Mikrofon 113, ein Eingabe/Ausgabe- bzw. E/A-Subsystem und andere Eingabe- oder Steuervorrichtungen. Die Vorrichtung 100 kann einen oder mehrere Bildsensoren 164, einen oder mehrere Näherungssensoren 166 und einen oder mehrere Beschleunigungsmesser 168 einschließen. Die Vorrichtung 100 kann mehr als einen Typ von Bildsensoren 164 einschließen. Jeder Typ kann mehr als einen Bildsensor 164 einschließen. Zum Beispiel kann ein Typ von Bildsensoren 164 Kameras sein und ein anderer Typ von Bildsensoren 164 kann Infrarotsensoren sein, die zur Gesichtserkennung verwendet werden können. Zusätzlich oder alternativ können die Bildsensoren 164 einer unterschiedlichen Linsenkonfiguration zugeordnet sein. Zum Beispiel kann die Vorrichtung 100 rückseitige Bildsensoren - einen mit einem Weitwinkelobjektiv und einen anderen mit einer Telefotolinse - einschließen. Die Vorrichtung 100 kann Komponenten einschließen, die nicht in 1 gezeigt sind, wie einen Umgebungslichtsensor, einen Punktprojektor und einen Flutstrahler.
-
Die Vorrichtung 100 ist nur ein Beispiel einer elektronischen Vorrichtung und die Vorrichtung 100 kann mehr oder weniger Komponenten als vorstehend aufgeführt aufweisen, von denen einige zu einer Komponente kombiniert sein können oder eine andere Konfiguration oder Anordnung aufweisen können. Die verschiedenen Komponenten der oben aufgeführten Vorrichtung 100 sind in Hardware, Software, Firmware oder einer Kombination davon ausgeführt, einschließlich einer oder mehrerer signalverarbeitender und/oder anwendungsspezifischer integrierter Schaltungen (ASICs). Während die Komponenten in 1 als im Allgemeinen auf derselben Seite wie der Touchscreen 150 angeordnet gezeigt sind, können sich auch eine oder mehrere Komponenten auf einer gegenüberliegenden Seite der Vorrichtung 100 befinden. Zum Beispiel kann die Vorderseite der Vorrichtung 100 einen Infrarotbildsensor 164 zur Gesichtserkennung und einen anderen Bildsensor 164 als die vordere Kamera der Vorrichtung 100 einschließen. Die Rückseite der Vorrichtung 100 kann auch zusätzliche Bildsensoren 164 als die hinteren Kameras der Vorrichtung 100 einschließen.
-
Beispiel für ein Kommunikationssystem in elektronischer Vorrichtung
-
2 ist ein Blockdiagramm, das Komponenten der elektronischen Vorrichtung 100 gemäß einer Ausführungsform veranschaulicht. Die elektronische Vorrichtung 100 kann neben anderen Komponenten einen Anwendungsprozessor 208 (hierin auch als „ein Zentralprozessor“ bezeichnet), Systeme 210A bis 210C (hierin zusammen als „Systeme 210“ bezeichnet), einen Multidrop-Bus 220 und Fabrics 222A bis 222N einschließen. Die elektronische Vorrichtung 100 kann andere Komponenten einschließen, die nicht in 2 veranschaulicht sind, wie eine Leistungsregelschaltung und Funkkomponenten (z. B. Leistungsverstärker).
-
Jedes der Systeme 210 führt unterschiedliche Funktionen in der elektronischen Vorrichtung 100 durch. Zum Beispiel führt das System 210A die Funktion des Anzeigens von Bildern auf dem Touchscreen 150 durch, führt das System 210B führt die Funktion des Bestimmens einer Position der elektronischen Vorrichtung 100 durch und führt das System 210C die Funktion des Kommunizierens mit externen Vorrichtungen durch. Jedes der Systeme 210 kann eine mehrere Komponentenschaltungen in Form von SOCs (z. B. integrierten Schaltungen) einschließen. Die elektronische Vorrichtung 100 kann zusätzliche Komponenten (z. B. Benutzerschnittstellen) einschließen, die in 2 nicht veranschaulicht sind. Die Systeme 210 können direkt mit dem Multidrop-Bus 220 verbunden sein (z. B. wie als Systeme 210B, 210C veranschaulicht) oder indirekt über eine andere Komponente an den Multidrop-Bus 220 gekoppelt sein (z. B. wie als System 210A veranschaulicht, das mit dem Multidrop-Bus 220 über den Anwendungsprozessor 208 kommuniziert).
-
Der Anwendungsprozessor 208 ist eine Verarbeitungsschaltung in der elektronischen Vorrichtung 100 zum Ausführen verschiedener Operationen. Der Anwendungsprozessor 208 kann einen oder mehrere Verarbeitungskerne zum Ausführen verschiedener Softwareprogramme sowie dedizierte Hardwareschaltungen zum Durchführen spezieller Funktionen wie Bildverarbeitung, Durchführen von Sicherheitsoperationen, Durchführen von Maschinenlernoperationen und Verarbeiten von Audiosignalen einschließen. Der Anwendungsprozessor 208 kann auch Operationen ausführen, um die Operationen anderer Komponenten in der elektronischen Vorrichtung 100, einschließlich der Koexistenz-Hub-Vorrichtung 212 und der SOCs 234, zu koordinieren. Der Anwendungsprozessor 208 kann in mehreren Leistungsmodi arbeiten, einschließlich eines Niedrigleistungsmodus, wobei der Anwendungsprozessor 208 die meisten seiner Komponenten abschaltet, um den Stromverbrauch zu sparen, und einen Hochleistungsmodus, bei dem die meisten seiner Komponenten aktiv sind. Der Anwendungsprozessor 208 kann auch eine oder mehrere Kommunikationskomponenten (z. B. Mobilfunkmodem) einschließen, die auch als separater SOC ausgeführt sein können. In einer oder mehreren Ausführungsformen leitet der Anwendungsprozessor 208 im Niedrigleistungsmodus Daten zwischen Komponenten weiter, die über den Multidrop-Bus 220 verbunden sind. Zu diesem Zweck kann der Anwendungsprozessor 208 (i) ein Signal von einer Vorrichtung (z. B. den SOCs 234, den Sensorvorrichtungen 216 und der Koexistenz-Hub-Vorrichtung 212) über den Multidrop-Bus 220 empfangen, (ii) das empfangene Signal gemäß einer vorgegebenen Regel modifizieren oder kopieren und (iii) das modifizierte Signal an eine andere Vorrichtung (z. B. die SOCs 234, die Sensorvorrichtungen 216 und die Koexistenz-Hub-Vorrichtung 212) über den Multidrop-Bus 220 senden, um den SOCs 234 ein effektives Kommunizieren zu ermöglichen.
-
Ein beispielhaftes System 210C ist in 2 als eine Koexistenz-Hub-Vorrichtung 212 (hierin auch als „eine Koexistenz-Hub-Vorrichtung“ bezeichnet) und SOCs 234A bis 234N (hierin zusammen als „SOCs 234“ bezeichnet) einschließend veranschaulicht. Die SOCs 234 und die Koexistenz-Hub-Vorrichtung 212 können über den Multidrop-Bus 220 kommunizieren.
-
Die Koexistenz-Hub-Vorrichtung 212 ist eine Schaltung oder eine Kombination aus Schaltung und Software, die die Operationen des Systems 210C (einschließlich z. B. der Koexistenz-Hub-Vorrichtung 212 und der SOCs 234) und zugehöriger Komponenten in der elektronischen Vorrichtung 100 koordiniert. Zu diesem Zweck speichert die Koexistenz-Hub-Vorrichtung 212 eine Operationsrichtlinie zum Definieren und/oder Koordinieren der Operationen des Kommunikationssystems und der zugehörigen Komponenten, und führt sie aus. Die Operationsrichtlinie kann zum Beispiel Echtzeitoperationen von Komponenten in dem System 210C basierend auf Faktoren, wie Operationsbedingungen des Systems 210C, der Zeitdauer, während der ein Kommunikationssubsystem in einem Wartezustand blieb, der Leistungsaufnahme jedes Kommunikationssubsystems und Bedingungen von Kanälen, die durch Kommunikationssubsysteme verwendet werden, bestimmen. Basierend auf der Operationsrichtlinie führt die Koexistenz-Hub-Vorrichtung 212 Operationen im Voraus durch, um zu aktivierende oder zu deaktivierende Kommunikationssubsysteme einzurichten oder vorzubereiten, sodass die Aktivierung oder Deaktivierung Kommunikationssubsysteme ohne Fehler erfolgt. In einer oder mehreren Ausführungsformen schließt die Koexistenz-Hub-Vorrichtung 212 ein oder mehrere Subsysteme ein, die Kommunikationsoperationen über verschiedene physische Schnittstellen durchführen. Durch ein lokales Durchführen solcher Koexistenzoperationen an dem System 210C kann der Anwendungsprozessor 208 trotz Aktivitäten in dem System 210C länger im Niedrigleistungsmodus betrieben werden, und außerdem werden die Ressourcen des Anwendungsprozessors 208 während seines Hochleistungsmodus freigegeben. Die Details der Koexistenz-Hub-Vorrichtung 212 sind nachstehend unter Bezugnahme auf 3 bis 4B ausführlich beschrieben.
-
Im Beispiel, in dem das System 210C für das Kommunizieren mit externen Vorrichtungen zuständig ist, kann jeder der SOCs 234 eine Schaltung, allein oder in Verbindung mit Software oder Firmware, sein, die Operationen zum Kommunizieren mit einem/einer oder mehreren externen Netzwerken oder Vorrichtungen unter Verwendung von Kommunikationsprotokollen oder Sicherheitsprotokollen durchführt. Jede von den SOCs 234 und der Koexistenz-Hub-Vorrichtung 212 kann verschiedene Kommunikationsprotokolle verarbeiten und/oder ist verschiedenen Drahtlosbändern zugeordnet. Zum Beispiel kann der SOC 234A eine Verarbeitung für eine Kommunikation mit großer Reichweite (z. B. eine Mobilfunkkommunikation) durchführen, während der SOC 234B oder die Koexistenz-Hub-Vorrichtung 212 Kommunikation mit kurzer Reichweite (z. B. Bluetooth-Kommunikation) abwickelt. Ein weiteres Beispiel ist das gemeinsame Nutzen einer Schaltungskomponente einer niedrigeren Ebene 250 (z. B. eines Leistungsverstärkers) von verschiedenen SOCs 234. Die Operationen der SOCs 234 (z. B. unter Verwendung eines Kommunikationsprotokolls, eines Drahtlosbandes oder eines Leistungsverstärkers) werden mindestens teilweise von der Koexistenz-Hub-Vorrichtung 212 gesteuert. Ein Beispiel für den SOC 234B ist nachstehend unter Bezugnahme auf 5 ausführlich beschrieben.
-
Fabrics 222 sind Kommunikationskanäle, die es Komponenten im Kommunikationssystem ermöglichen, mit dem Anwendungsprozessor 208 zu kommunizieren. Eines oder mehrere der Fabrics 222 können als Punkt-zu-Punkt-Verbindungen wie Peripheral Component Interconnect Express (PCIe), I2C oder Serial Peripheral Interface (SPI) ausgeführt sein. Wie in 2 veranschaulicht, kommunizieren der SOC 234A, die Koexistenz-Hub-Vorrichtung 212 und die SOCs 234B bis 234N mit dem Anwendungsprozessor 208 über die entsprechenden Fabrics 222A bis 222N. Eines oder mehrere der Fabrics 222 können im Vergleich zu dem Multidrop-Bus 220 eine hohe Bandbreite und geringe Latenz aufweisen. Die in 2 veranschaulichten Fabrics 222 können ein physisch getrennter Kommunikationskanal oder ein oder mehrere gemeinsam genutzte physische Kanäle mit mehreren logischen Unterkanälen sein.
-
Der Multidrop-Bus 220 ist ein Kommunikationskanal, der es mehreren Komponenten desselben Systems oder verschiedener Systeme ermöglicht, über eine gemeinsam genutzte Verbindung zu kommunizieren. Der Multidrop-Bus 220 kann hauptsächlich verwendet werden, um verschiedene Nachrichten, einschließlich, ohne darauf beschränkt zu sein, Datenpaketen, Zeitsteuerungspaketen und Koexistenznachrichten zwischen Komponenten im Kommunikationssystem, zu übertragen. Die hierin beschriebenen Datenpakete beziehen sich auf Nachrichten, die Daten zur Verarbeitung durch Vorrichtungen einschließen, oder Systeme, die über den Multidrop-Bus 220 kommunizieren, wie die SOCs 234 und die Koexistenz-Hub-Vorrichtung 212. Die hierin beschriebenen Zeitsteuerungspakete beziehen sich auf Nachrichten, die Zeiten angeben, zu denen periodische Ereignisse an einer der SOCs 234 oder der Koexistenz-Hub-Vorrichtung 212 auftreten. Die Koexistenznachrichten beziehen sich auf Meldungen zum Koordinieren von Operationen zwischen den SOCs 234 und der Koexistenz-Hub-Vorrichtung 212 oder zwischen Subsystemen auf einem Paar SOCs 234, die eine gemeinsame Komponente (z. B. eine Leistungsverwaltungseinheit (PMU), einen Leistungsverstärker (PA) oder einen rauscharmen Verstärker (LNA) gemeinsam nutzen können. Diese Koexistenznachrichten können verwendet werden, um es zwei Kommunikationssubsystemen mit in Konflikt stehenden Betriebsanforderungen zu ermöglichen, mit einem akzeptablen Leistungsniveau zu arbeiten, während die in Konflikt stehende Situation aktiv ist. Einige der Koexistenznachrichten können Kontextinformationen oder Programmierinformationen für eine Komponente (z. B. einen PA und einen LNA) einschließen, die von Systemen gemeinsam genutzt werden, um die Kompatibilität zwischen den Systemen zu ermöglichen. In einer oder mehreren Ausführungsformen wird die System Power Management Interface (SPMI) verwendet, um den Multidrop-Bus 220 auszuführen. Andere serielle Busschnittstellen, wie 12C, können anstelle der SPMI verwendet werden, um den Multidrop-Bus 220 auszuführen. Obwohl in 2 nur ein einziger Multidrop-Bus 220 veranschaulicht ist, können zwei oder mehr Multidrop-Busse verwendet werden.
-
Eines oder mehrere der Systeme 210 können einen Universaleingang/-ausgang (GPIO) einschließen, der SOCs im System verbindet, um die Kontextinformationen bereitzustellen, die einen Multidrop-Bus 220 oder ein Fabric 222, die aufgrund von Problemen, wie einem niedrigen Leistungspegel, nicht betreibbar sind, angeben. Wenn zum Beispiel die Koexistenz-Hub-Vorrichtung 212 erfasst, dass der Multidrop-Bus 220 nicht arbeitet, kann die Koexistenz-Hub-Vorrichtung 212 die Kontextinformationen über einen GPIO 242 an das SOC 234A senden, um ein solches Ereignis anzugeben. Obwohl in 2 nur ein einzelner GPIO 242 veranschaulicht ist, können mehr GPIOs zwischen der Koexistenz-Hub-Vorrichtung 212 und anderen SOCs 234B bis 234N oder sogar mit anderen Systemen (z. B. dem System 210B) bereitgestellt werden.
-
In einer oder mehreren Ausführungsformen kann ein System (z. B. das System 210C) gemeinsam genutzte Ressourcen, wie gemeinsam genutzte Komponenten (z. B. die Komponente 250), einschließen. Die gemeinsam genutzte Komponente 250 kann zum Beispiel eine Schaltungskomponente einer niedrigeren Ebene, wie ein Leistungsverstärker, sein. Die gemeinsam genutzte Komponente 250 kann zum Beispiel durch verschiedene SOCs 234 in einer zeitgemultiplexten Weise gemeinsam genutzt werden. Kontextinformationen, die sich auf die Operation oder das gemeinsame Nutzen einer solchen gemeinsam genutzten Komponente 250 beziehen, können in der Koexistenz-Hub-Vorrichtung 212 und/oder den SOCs 234B gespeichert sein. In einem anderen Beispiel kann die gemeinsam genutzte Komponente 250 andere Multiplex-Schemata (z. B. Frequenzmultiplexen) verwenden, um zu ermöglichen, dass mehrere SOCs ihre Operationen gleichzeitig durchführen.
-
Obwohl in 2 nicht veranschaulicht, kann die Koexistenz-Hub-Vorrichtung 212 auch die Operationen oder den Zugang zu einer oder mehreren Antennen (nicht gezeigt) steuern, die dem Kommunikationssystem zugeordnet sind.
-
Beispielhafte Architektur der Koexistenz-Hub-Vorrichtung
-
3 ist ein Blockdiagramm, das die Koexistenz-Hub-Vorrichtung 212 gemäß einer Ausführungsform veranschaulicht. Die Koexistenz-Hub-Vorrichtung 212 koordiniert Operationen von Komponenten in dem System 210C. Die Koexistenz-Hub-Vorrichtung 212 kann auch Operationen verarbeiten, die sich von durch die SOCs 234 durchgeführten Operationen unterscheiden oder teilweise mit solchen überlappen. Im Folgenden wird die Koexistenz-Hub-Vorrichtung 212 hauptsächlich unter Bezugnahme auf das System 210C beschrieben, das eine Kommunikation mit externen Vorrichtungen durchführt. Dies ist jedoch lediglich ein Beispiel, und das System 210C kann anderen Multi-SOC-Systemen, wie einer Anzeigevorrichtung, einer Leistungsverwaltungsschaltung und dem System Global Positioning System (GPS), zugeordnet sein.
-
Um ihre Operationen durchzuführen, kann die Koexistenz-Hub-Vorrichtung 212 neben anderen Komponenten einen Prozessor 304, eine Koexistenzsteuerschaltung 314, eine Fabric-Schnittstelle 310, eine Multidrop-Schnittstelle 340, Kommunikationssubsysteme 336A bis 336Z (zusammen als „Kommunikationssubsysteme 336“ bezeichnet), eine GPIO-Schnittstelle 390 und ein internes Fabric 342 einschließen. Die Koexistenz-Hub-Vorrichtung 212 kann zusätzliche Komponenten einschließen, die nicht in 3 veranschaulicht sind, oder kann Komponenten weglassen, die in 3 veranschaulicht sind (z. B. eines oder mehrere der Kommunikationssubsysteme 336).
-
Der Prozessor 304 ist eine Schaltung, allein oder in Verbindung mit Software oder Firmware, die den Gesamtbetrieb der Koexistenz-Hub-Vorrichtung 212 sowie das Koordinieren von Operationen anderer SOCs 234 unter Verwendung von Koexistenznachrichten steuert. Der Prozessor 304 kann einen Speicher zum Speichern der Operationsrichtlinie 352 zum Steuern der Operationen einschließen. Die Operationsrichtlinie 352 kann vom Anwendungsprozessor 208 über das Fabric 222B, die Fabric-Schnittstelle 310 und das interne Fabric 342 empfangen werden. Nach dem Empfangen der Operationsrichtlinie 352 kann der Prozessor 304 die Operationsrichtlinie 352 decodieren und andere Komponenten in der Koexistenz-Hub-Vorrichtung 212 (z. B. die Koexistenzsteuerschaltung 314) programmieren, falls zutreffend, um die Operationsrichtlinie 352 durchzusetzen. Zusätzliche Informationen in Bezug auf die Operationsrichtlinie 352 können auch vom Anwendungsprozessor 208 empfangen werden. Derartige Zusätzliche können auf dem Prozessor 304 gespeichert oder verarbeitet werden, um zu beeinflussen, wie die Operationsrichtlinie 352 implementiert wird. Darüber hinaus kann der Prozessor 304 einen für andere SOCs 234 relevanten Abschnitt der Operationsrichtlinie 352 über den Multidrop-Bus 220 senden, um die SOCs 234 zum Arbeiten gemäß der Operationsrichtlinie 352 zu programmieren. Der Prozessor 304 kann Koexistenzentscheidungen gemäß der Operationsrichtlinie 352 treffen, indem er Koexistenznachrichten (z. B. Kontextinformationen oder -anforderungen), die über die Schnittstelle 340 von den SOCs 234 und den Kommunikationssubsystemen 336 empfangen werden, analysiert. Der Prozessor 304 kann Zustände 354 (z. B. Kontextinformationen) der Kommunikationssubsysteme 336 in der Koexistenz-Hub-Vorrichtung 212 und den anderen SOCs 234 speichern. Zu den aktuellen Zuständen 354 können zum Beispiel durch die SOCs 234 und die Koexistenz-Hub-Vorrichtung 212 verwendete Hochfrequenzbänder/-kanäle (HF-Bänder/-Kanäle), Übertragungsleistung von Funksignalen, gehören. Derartige Informationen können auch an den Anwendungsprozessor 208 oder andere SOCs 234 gesendet werden, um eine Echtzeitanpassung von Operationen in anderen SOCs 234 zu ermöglichen. Der Prozessor 304 kann einige Koordinationsoperationen (z. B. Koordination für Kommunikationssubsysteme 336) an den Arbiter 322 delegieren.
-
Die hierin beschriebene Operationsrichtlinie bezieht sich auf Szenarien von Operationskombinationen im Kommunikationssystem, die problematisch sein können, oder Kombinationen von Komponenten, bei denen Probleme beim Zusammenwirken bestehen, sowie auf einen Satz von Regeln, die die durch die SOCs 234 und die Koexistenz-Hub-Vorrichtung 212 durchzuführenden Operationen, um solche problematischen Szenarien zu beheben oder zu bewältigen, definieren. In einigen Ausführungsformen kann die Operationsrichtlinie Firmware-Code einschließen und eine dynamische Antwort ermöglichen, um einen ausgeglichenen Betrieb zwischen mehreren Kommunikationssubsystemen beizubehalten.
-
Jedes der Kommunikationssubsysteme 336 schließt eine Schaltung zum Verarbeiten von Signalen ein, die von entsprechenden Schnittstellen 308A bis 308Z der physikalischen Schicht (zusammen als „Schnittstellen der physikalischen Schicht 308“ bezeichnet) außerhalb der Koexistenz-Hub-Vorrichtung 212 empfangen werden, oder zum Senden an diese. Solche Schaltungen können die lokalen Prozessoren 378A bis 378Z (zusammen als „lokale Prozessoren 378“ bezeichnet) einschließen, die eine oder mehrere der folgenden Operationen ausführen: (i) Ausführen von Befehlen, die bestimmten Kommunikationsprotokollen zugeordnet sind, (ii) Verarbeiten von empfangenen Eingangskommunikationssignalen gemäß einem entsprechenden Protokoll zum Decodieren der Eingangsfunksignale und Antworten durch Codieren bestimmter Antworten innerhalb erforderlicher Zeitbudgets auf der HF-Verbindung, (iii) Steuern eines zugehörigen Hochfrequenzpfads (HF-Pfads), um eine Übertragungsleistung anzupassen oder eine Verstärkungssteuerung zu empfangen, und (iv) Konfigurieren, Deaktivieren oder Aktivieren von Komponenten in dem Kommunikationssubsystem 336 basierend auf der Operationsrichtlinie. Alle lokalen Prozessoren 378 oder mindestens eine Teilmenge dieser lokalen Prozessoren 378 können (z. B. durch den Anwendungsprozessor 208 oder automatisch) initialisiert werden, wenn die Koexistenz-Hub-Vorrichtung 212 initialisiert ist. Unter anderem werden die lokalen Prozessoren 378 mit einem Abschnitt der Operationsrichtlinie programmiert, der für die Operationen ihrer Kommunikationssubsysteme 336 relevant ist. Die Operationsrichtlinie, die auf einen lokalen Prozessor 378 eines Kommunikationssubsystems 336 heruntergeladen wird, kann definieren, wie das Kommunikationssubsystem 336 arbeiten sollte (z. B. die Datenrate des Kommunikationssubsystems, Einschalten oder Ausschalten von Komponenten in dem Kommunikationssubsystem 336 und Ändern der Anzahl aktiver Sender). Alternativ kann der relevante Abschnitt der Operationsrichtlinie sequenziell heruntergeladen und direkt durch den Anwendungsprozessor 208 durch das Fabric 222B oder den Prozessor 304 programmiert werden, wenn jedes der Kommunikationssubsysteme 336 eingeschaltet ist. Eines oder mehrere der Kommunikationssubsysteme 336 können mit Schnittstellen der physikalischen Schicht (z. B. HF-Vorrichtungen) z. B. über die Hochfrequenz-Frontendsteuerschnittstelle (Radio Frequency Front-End Control Interface, RFFE) kommunizieren.
-
In einigen Ausführungsformen können die Schnittstellen der physikalischen Schicht 308 zu einem reduzierten Satz zusammengeführt werden, in dem ein lokaler Prozessor 378 mehr als ein Kommunikationsprotokoll unterstützt oder im Lauf der Zeit zwischen verschiedenen Kommunikationsprotokollen umschaltet. Der lokale Prozessor 387 kann einen festen Satz von Funkstrecken steuern, oder unter Umständen werden nur Frontendschalter, LNAs oder PAs durch die Schnittstellen 308 der physikalischen Schicht gesteuert.
-
Die Schnittstelle 340 ist eine Schaltung oder Kombinationen einer Schaltungen und von Software zur Kommunikation mit dem Multidrop-Bus 220. In einer oder mehreren Ausführungsformen schließt die Schnittstelle 340 Schaltungskomponenten zum Verarbeiten von Daten in ausgehende Pakete zum Senden über den Multidrop-Bus 220 und Entpacken von eingehenden Paketen, die von dem Multidrop-Bus 220 empfangen werden, in Daten zum Verarbeiten in einer Koexistenz-Hub-Vorrichtung ein. Die Schnittstelle 340 ist über die Verbindung 328 mit dem Prozessor 304 und der Koexistenzsteuerschaltung 314 verbunden.
-
Die Fabric-Schnittstelle 310 ist eine Schaltung oder eine Kombination einer Schaltung und von Software, um es der Koexistenz-Hub-Vorrichtung 212 zu ermöglichen, mit dem Anwendungsprozessor 208 über das Fabric 222B zu kommunizieren. Die Fabric-Schnittstelle 310 wird hierin auch als interner Kommunikationskanal bezeichnet. In einer oder mehreren Ausführungsformen führt die Fabric-Schnittstelle 310 Operationen wie Puffern, Segmentieren/Kombinieren von Daten, Serialisieren/Deserialisieren und Verpacken/Entpacken von Daten zur Kommunikation über einen Punkt-zu-Punkt-Kommunikationskanal (z. B. PCIe) durch. Wie in 3 veranschaulicht, ist die Fabric-Schnittstelle 310 mit dem internen Fabric 342 verbunden, um die Kommunikation von Komponenten in der Koexistenz-Hub-Vorrichtung 212 mit dem Anwendungsprozessor 208 zu ermöglichen.
-
Die Koexistenzsteuerschaltung 314 ist eine Schaltung, allein oder in Verbindung mit Software, die Koexistenznachrichten verarbeitet, die über den Multidrop-Bus 220 übertragen werden. Die Koexistenzsteuerschaltung 314 wird durch den Prozessor 304 dazu programmiert, die Operationsrichtlinie 352 durch Treffen von Echtzeitentscheidungen über Koexistenzereignisse durchzusetzen, eingehende Koexistenznachrichten an relevante Kommunikationssubsystemen 336 zu verteilen, die koexistente Echtzeitnachrichten unter den Kommunikationssubsystemen 336 zu teilen und ausgehende Koexistenznachrichten an andere SOCs 234 zu senden. Das hierin beschriebene Koexistenzereignis bezieht sich auf eine Bedingung oder einen Vorgang, die/der durch die Operationsrichtlinie definiert wird, die das Koordinieren von Operationen in Komponenten der elektronischen Vorrichtung 100 veranlassen würde.
-
Insbesondere kann die Koexistenzsteuerschaltung 314 neben anderen Komponenten den Dispatcher 312, den Speicher 316, den Arbiter 322 und das Billboard 326 einschließen. Der Dispatcher 312 ist eine programmierbare Schaltung oder eine Schaltung in Kombination mit Software oder Firmware zum Filtern und Senden von Nachrichten für jedes Kommunikationssubsystem 336 an den Speicher 316. Die Details des Dispatchers 312 und seiner Funktionen werden nachstehend unter Bezugnahme auf 4A beschrieben.
-
Der Speicher 316 weist mehrere Puffer 318A bis 318Z auf (zusammen als „Puffer 318“ bezeichnet), wobei jeder Puffer jedem der Kommunikationssubsysteme 336 entspricht. Jeder der Puffer 318 empfängt und speichert eingehende Nachrichten (die von Komponenten außerhalb der Koexistenz-Hub-Vorrichtung 212 über den Multidrop-Bus 220 empfangen wurden), die für ein entsprechendes Kommunikationssubsystem 336 relevant sind. Die in einem Puffer 318 gespeicherten eingehenden koexistenten Nachrichten können basierend auf der Priorität (z. B. zeitkritische Daten haben höhere Priorität gegenüber zeitunkritischen Daten) über ein internes Fabric 342 an ein entsprechendes Kommunikationssubsystem 336 gesendet werden (wie durch Pfeil 372 angegeben). Wenn ein oder mehrere Kommunikationssubsysteme 336 inaktiv sind, speichern die Puffer 318 die Nachrichten, bis die Kommunikationssysteme 336 eingeschaltet sind und zum Empfang der Nachrichten verfügbar werden. In einer oder mehreren Ausführungsformen können verschiedene Puffer 318 unterschiedlichen Prioritäten zugeordnet sein. Wenn ein Puffer, dem hohe Priorität zugewiesen ist, mit einer Nachricht gefüllt wird, kann ein Kommunikationssystem 336 in Dienst gehen, um sicherzustellen, dass die Nachricht rechtzeitig abgewickelt wird. Jeder der Puffer 318 speichert auch ausgehende Nachrichten 348 (die von einem entsprechenden Kommunikationssubsystem 336 über das interne Fabric 342 empfangen werden). Die ausgehenden Nachrichten werden von dem Dispatcher 312 abgerufen und über den Multidrop-Bus 220 an Komponenten außerhalb der Koexistenz-Hub-Vorrichtung 212 gesendet, auch basierend auf Priorität (z. B. haben zeitkritische Daten gegenüber zeitunkritischen Daten höhere Priorität).
-
Der Speicher 316 schließt auch den gemeinsam genutzten Speicherabschnitt 320 ein, auf den von dem Arbiter 322, um eine in Konflikt stehende Verwendung von Ressourcen zu beheben, und von verschiedenen lokalen Prozessoren 378, um zeitkritische Nachrichten unter den Kommunikationssubsystemen 336 auszutauschen, zugegriffen werden kann. Die Kommunikationssubsysteme 336 können ihre Aufgaben zusammen mit Anforderungen von anderen SOCs 234 an Speicherwarteschlangen senden, die von dem Arbiter 322 bedient werden sollen.
-
Das Billboard 326 ist eine Schaltung, allein oder in Verbindung mit Software oder Firmware, die Kontextinformationen von (I) anderen SOCs im selben System (z. B. den SOCs 234A bis 234N), (ii) SOCs in anderen Systemen (z. B. den Systemen 210A, 210B) und/oder (iii) den Subsystemen 336 innerhalb der Koexistenz-Hub-Vorrichtung 212 speichert. Die Kontextinformationen von anderen Systemen oder SOCs in dem System 210C werden über den Multidrop-Bus 220 unter Verwendung der Schnittstelle 340 und der Verbindung 328 empfangen. Die empfangenen Kontextinformationen werden von dem Sender 312 empfangen, der, wie zutreffend, Kontextinformationen an das Billboard 326 sendet. Die Kontextinformationen 346 werden von den Kommunikationssubsystemen 336 empfangen und für den Zugriff in dem Billboard 326 gespeichert. Zusätzlich zu Kontextinformationen kann das Billboard 326 auch eine Teilmenge von Datenpaketen speichern, die über den Multidrop-Bus 220 übertragen werden. Solche Datenpakete können anderen SOCs verfügbar gemacht werden, das zum Beispiel in einem Ruhezustand war und nicht in der Lage war, Datenpakete zu empfangen, während die Datenpakete durch ein Quell-SOC übertragen wurden.
-
Die gespeicherten Kontextinformationen können dann verwendet werden, um eine oder mehrere Operationen an der Koexistenz-Hub-Vorrichtung 212 oder anderen SOCs, die später die gespeicherten Kontextinformationen empfangen, auszulösen. Das Billboard 326 ermöglicht es externen Systemen (z. B. den Systemen 210A und 210B), SOCs in dem System 210C und/oder Komponenten (z. B. den Kommunikationssubsystemen 336) in der Koexistenz-Hub-Vorrichtung 212, den Betriebszustand anderer Systeme, SOCs oder Komponenten durch Zugreifen auf die Kontextinformationen in dem Billboard 326 genau zu bestimmen. Die Kontextinformationen können von der Koexistenz-Hub-Vorrichtung 212 an externe Systeme, SOCs im gleichen System 210C und/oder Komponenten direkt über den Multidrop-Bus 220 oder den GPIO 242 gesendet werden. Alternativ können die Kontextinformationen an einen ersten Empfänger (z. B. ein System, ein SOC und/oder eine Komponente) gesendet, am ersten Empfänger verarbeitet (z. B. gefiltert oder umgewandelt) werden und dann die verarbeitete Version der Kontextinformationen an einen zweiten Empfänger (z. B. ein anderes System, ein anderes SOC und/oder eine andere Komponente) gesendet werden. Selbst wenn eine Teilmenge oder alle anderen externen Systeme, SOCs oder Kommunikationssubsysteme ausgeschaltet und nicht verfügbar sind, um die Kontextinformationen bereitzustellen, werden aktuelle Kontextinformationen gespeichert und sind für den Abruf und Zugriff durch andere Systeme, andere SOCs oder Komponenten der Koexistenz-Hub-Vorrichtung 212 verfügbar. Eine beispielhafte Struktur und Funktionen des Billboards 326 werden nachstehend unter Bezugnahme auf 4B ausführlich beschrieben. Das Billboard kann auch verwendet werden, um den aktuellen Zustand eines anderen SoC an das Empfänger-SoC unabhängig von einem Funkruhezustand des Empfängers zu übermitteln. Dadurch können externe Systeme das Ruhesystem eines kritischen Zustands aktualisieren.
-
Der Arbiter 322 ist eine Schaltung, allein oder in Verbindung mit Software oder Firmware, die Entscheidungen über Echtzeit-Koordination von Operationen von Kommunikationssubsystemen 336 trifft und die Entscheidungen an die Kommunikationssubsysteme 336 über das interne Fabrics 342 und den Speicher 316 sendet.
-
Solche Entscheidungen können das Auflösen von konkurrierendem Bedarf nach gemeinsamen Ressourcen durch mehrere Kommunikationssubsysteme 336 oder Anforderungen nach inkompatiblen Ressourcen durch unterschiedliche Kommunikationssubsystemen 336 einschließen. Der Arbiter 322 trifft die Entscheidungen in Echtzeit, die für einen kürzeren Zeitraum als die am Prozessor 304 vorgenommenen Entscheidungen wirksam bleiben können, um die Operationsrichtlinie 352 zu implementieren. Darüber hinaus kann der Arbiter 322 Anforderungen nach Verwendung von Ressourcen durch externe Kommunikationssubsysteme auflösen, die mit den lokalen Kommunikationssubsystemen 336 um die Verwendung derselben Ressource konkurrieren. Zu diesem Zweck kann der Arbiter 322 auf aktuelle Zustände 354 der Kommunikationssubsysteme 336 und die anderen SOCs 234 zugreifen, die im Prozessor 304 gespeichert sind, sowie Informationen über die Priorität der verschiedenen konkurrierenden Operationen nutzen. Der Algorithmus zum Auflösen der Ressourcenkonflikte beim Arbiter 322 kann basierend auf der vom Prozessor 304 ausgeführten Operationsrichtlinie 352 angepasst werden. Der Arbiter 322 kann durch den Prozessor 304 oder den Anwendungsprozessor 208 programmiert werden. Die vom Arbiter 322 getroffene Entscheidung kann das Steuern von RFFE-Transaktionen einschließen, die den Kommunikationssubsystemen 336 zugeordnet sind, zum Beispiel um die Einstellungen einer externen HF-Vorrichtung zu ändern. Eine solche Operation kann das Austasten einer Leistungsverstärkerübertragung des entsprechenden Kommunikationssubsystems 336 einschließen. Da die Echtzeitentscheidungen über das gemeinsam genutzte interne Fabric 342 gesendet werden, kann ein Kommunikationssubsystem (z. B. das Kommunikationssubsystem 336A) die für ein anderes Kommunikationssubsystem (z. B. das Kommunikationssubsystem 336B) bestimmten Entscheidungen empfangen und seine Operationen entsprechend anpassen. Der Arbiter 322 kann den Prozessor 323 einschließen, um den Gesamtbetrieb des Arbiters 322 zu steuern.
-
In einer oder mehreren Ausführungsformen bestimmt der Prozessor 304 eine Koordinierungsoperation von größerem Umfang basierend auf seiner Operationsrichtlinie 352 und konfiguriert Komponenten der Koexistenzsteuerschaltung 314, Kommunikationssubsysteme 336 und möglicherweise SOCs 234, um die Operationsrichtlinie 352 durchzusetzen. Der Arbiter 322 koordiniert andererseits Echtzeitkoexistenzoperationen in kleinerem Umfang, die mit der Koordinierungsoperation von größerem Umfang konsistent sind, wie durch die Operationsrichtlinie 352 definiert.
-
Die GPIO-Schnittstelle 390 ist eine Schaltung, die es anderen SOCs (z. B. dem SOC 234A) ermöglicht, mit Komponenten der Koexistenz-Hub-Vorrichtung 212 über den GPIO 242 zu kommunizieren.
-
Die in 3 veranschaulichten Komponenten der Koexistenz-Hub-Vorrichtung 212 sind lediglich veranschaulichend. Die Koexistenz-Hub-Vorrichtung 212 kann weniger Komponenten (z. B. nicht den Speicher 316 oder den separaten Prozessor 304) einschließen oder zusätzliche Komponenten (z. B. einen Universaleingang/-ausgang), die in 3 nicht veranschaulicht sind, einschließen.
-
Beispielhafte Architektur des Dispatchers
-
4A ist ein Blockdiagramm des Dispatchers 312 in der Koexistenz-Hub-Vorrichtung von 3 gemäß einer Ausführungsform. Der Dispatcher 312 ist eine Schaltung oder eine Kombination aus Schaltung, Software und/oder Firmware zum Verarbeiten von Nachrichten. Der Dispatcher 312 bestimmt, wann ausgehende Nachrichten von den Kommunikationssubsystemen 336 an den Prozessor 304 oder die SOCs 234 gesendet werden sollten, und wenn der Zeitpunkt erreicht ist, leitet die ausgehenden Nachrichten an die Schnittstelle 340 zum Senden über den Multidrop-Bus 220 weiter. Die Zeitpunkte zum Senden der ausgehenden Nachrichten werden basierend auf der Priorität der ausgehenden Nachrichten, darauf, ob andere Nachrichten in dem Speicher 316 zum Senden über den Multidrop-Bus 220 bleiben, und darauf, wann eine Arbitrierung zum Verwenden des Multidrop-Busses 220 zum Übertragen von Daten erfolgreich ist, bestimmt. Der Dispatcher 312 empfängt auch Nachrichten von den SOCs 234 über den Multidrop-Bus 220 und leitet sie an die Kommunikationssubsysteme 336 über das interne Fabric 342 weiter.
-
Der Dispatcher 312 kann unter anderen Komponenten den Prozessor 436, den Interrupt-Manager 428, den Zeitstempler 440 und den Nachrichtenfilter 432 einschließen. Einer oder mehrere vom Interrupt-Manager 428, Zeitstempler 440 und Nachrichtenfilter 432 können als Firmware der vom Prozessor 436 ausgeführten Software ausgeführt sein. Außerdem können dem Dispatcher 312 zusätzliche Komponenten hinzugefügt werden.
-
Der Prozessor 436 ist eine Schaltung, die verschiedene Operationen in dem Dispatcher 312 durchführen kann, wie (i) Verwalten von konkurrierenden Ressourcen innerhalb jedes Kommunikationssubsystems 336, (ii) Steuern externer HF-Steuerblöcke außerhalb der Koexistenz-Hub-Vorrichtung 212, (iii) Unterstützen der Funktionen und Operationen des Arbiters 322 und (iv) Koordinieren des Meldens der Ergebnisse von dem Arbiter 322 an Komponenten auf dem Multidrop-Bus 220. Der Prozessor 436 kann ein Teil des Prozessors 304 sein oder er kann ein eigenständiger Prozessor sein. Der Prozessor 436 kann auch die Operationen anderer Komponenten in dem Dispatcher 312 im Laufe der Zeit oder in Abhängigkeit von den Aktivitäten in der elektronischen Vorrichtung 110 aktualisieren.
-
Der Nachrichtenfilter 432 ist Hardware, Software, Firmware oder eine Kombination davon, die eingehende Nachrichten 422 von dem Multidrop-Bus 220 über die Schnittstelle 340 empfängt, eingehende Nachrichten 422 auf Relevanz für das Billboard 326 und die Kommunikationssubsysteme 336 filtert und die gefilterten eingehenden Nachrichten 454 an entsprechende Puffer 318 und/oder einen gemeinsam genutzten Abschnitt 320 des Speichers 316 und die Kontextinformationen 346 an das Billboard 326 sendet. Der Nachrichtenfilter 432 kann auch die eingehenden Nachrichten 454 an Puffer umleiten, die anderen Kommunikationssubsystemen 336 als einem Standardkommunikationssubsystem 336 zugeordnet sind, um sicherzustellen, dass die aktiven Kommunikationssubsysteme 336 alle relevanten eingehenden Nachrichten empfangen. Durch Konfigurieren des Nachrichtenfilters 432 kann ein Kommunikationssubsystem (z. B. 336A) auch eine eingehende empfangen, die für ein anderes Kommunikationssubsystem (z. B. 336B) bestimmt ist, und eine solche eingehende Nachricht für seinen Betrieb berücksichtigen. Wenn eine eingehende Nachricht einen Interrupt einschließt, sendet der Nachrichtenfilter 432 die entsprechende Koexistenznachricht 442 an den Interrupt-Manager 428.
-
Der Interrupt-Manager 428 ist Hardware, Software, Firmware oder eine Kombination davon, die Interrupts verwaltet. Wenn der Interrupt-Manager 428 die Koexistenznachricht 442 empfängt, die einen Interrupt einschließt, extrahiert der Interrupt-Manager 428 den Interrupt und sendet ein Unterbrechungssignal 414 an das entsprechende Kommunikationssubsystem 336. Das Unterbrechungssignal 414 kann bewirken, dass das entsprechende Kommunikationssubsystem 336 abgeschaltet wird, eine Teilmenge seiner Komponenten heruntergefahren wird, das Aufwecken aus einem ausgeschalteten Zustand erfolgt oder der Echtzeitzustand von Komponenten auf dem Multidrop-Bus 220 (z. B. SOCs 234) angezeigt wird. Diese Interrupt-Signale beinhalten unter Umständen nur einen einfachen Decodierer und keinen Mikroprozessor, wodurch es möglich ist, dass kostengünstige Komponenten Interrupt-Signale zum Kommunizieren einer einfachen Nachricht über den Multidrop-Bus 220 senden. Eine der Eigenschaften der Interrupt-Signale besteht darin, dass sie „hängen“, was bedeutet, dass, selbst wenn ein SOC (z. B. das SOC 234B) im Ruhezustand oder deaktiviert ist, wenn eine Koexistenz-Hub-Vorrichtung 212 ein Interrupt-Signal sendet, das SOC (z. B. das SOC 234B) auf das Interrupt-Signal antwortet, nachdem das SOC (z. B. das SOC 234B) zu einem späteren Zeitpunkt in einen Bereitschaftszustand wechselt. Diese Interrupt-Signale können auch dazu dienen, zu gewährleisten, dass ein externes SOC (z. B. das SOC 234B) abrupt in einen inaktiven/Ruhezustand wechseln kann, ohne dass andere Komponenten (z. B. das SOC 234A) lange genug in einem Bereitschaftszustand bleiben müssen, um Handshake-Operationen mit dem SOC (z. B. dem SOC 234B) abzuschließen. Durch Verwendung von immer aktivierten Unterbrechungssignalen kann die Belastung der ursprünglichen Nachrichtenquelle reduziert werden.
-
Der Nachrichtenfilter 432 kann auch das Unterbrechungssignal 450 von den Kommunikationssubsystemen 336 empfangen. Wenn das Interrupt-Signal 450 für die SOCs 234 bestimmt ist, sendet der Nachrichtenfilter 432 den Interrupt 450 als eine ausgehende Koexistenznachricht 418 an die Schnittstelle 340 zum Senden über den Multidrop-Bus 220. Ein Unterbrechungssignal zwischen den Kommunikationssubsystemen 336 wird über das interne Fabric 342 ohne Eingriff der Koexistenzsteuerschaltung 314 übertragen.
-
Der Zeitstempler 440 ist eine Schaltung, die die Zeit für eingehende und ausgehende Nachrichten auf dem Multidrop-Bus 220 verfolgt.
-
Beispielhafte Billboard-Architektur
-
4B ist ein Blockdiagramm, das das Billboard 326 gemäß einer Ausführungsform veranschaulicht. Das Billboard 326 kann neben anderen Komponenten die Sicherheitsprüfschaltung 462, die Statusprüfschaltung 464, die Speicherzugriffsschaltung 466, die Benachrichtigungsschaltung 480 und den Speicher 468 einschließen. Das Billboard 326 kann zusätzliche Komponenten oder weniger Komponenten als 4B einschließen. Zum Beispiel können die Sicherheitsprüfschaltung 462 und/oder die Statusprüfschaltung 464 weggelassen werden.
-
Die Sicherheitsprüfschaltung 362 ist Hardware oder eine Kombination aus Hardware und Software, die bestimmt, ob ein SOC oder eine Vorrichtung, die das Schreiben von Kontextinformationen anfordert, oder ein SOC oder eine Vorrichtung, die das Lesen der gespeicherten Kontextinformationen anfordert, für den Zugriff auf den Speicher 468 autorisiert ist. Zu diesem Zweck kann die Sicherheitsprüfschaltung 362 bestimmen, dass die Vorrichtungsadresse und der Sicherheitscode, die in der Schreib-/Leseanforderung vom SOC oder von der Vorrichtung enthalten sind, mit entsprechenden Einträgen in dem Speicher 468 übereinstimmen. Wenn die Vorrichtungsadresse und der Sicherheitscode übereinstimmen, ermöglicht die Sicherheitsprüfschaltung 362 es der Speicherzugriffsschaltung 466, Kontextinformationen in den oder aus dem Speicher 468 zu lesen oder zu schreiben.
-
Die Statusprüfschaltung 464 ist Hardware oder eine Kombination aus Hardware und Software, die bestimmt, ob ein SOC oder eine Vorrichtung im externen System (z. B. dem System 210A, 210B) oder innerhalb desselben Systems (z. B. des Systems 210C) aktuell aktiv oder inaktiv ist. Die Statusprüfschaltung 464 kann periodische Heartbeat-Nachrichten vom SOC oder von der Vorrichtung empfangen und Operationen, wie Aktualisieren und/oder Sperren der Kontextinformationen des entsprechenden SOC oder der entsprechenden Vorrichtung, die in dem Speicher 468 gespeichert sind, durchführen. Die Statusprüfschaltung 464 kann auch einen Mechanismus implementieren, um sicherzustellen, dass die in dem Speicher 468 gespeicherten Kontextinformationen die neuesten sind. Das Billboard kann auch Mechanismen unterstützen, um Kommunikationssysteme innerhalb des SoC auf eine Aktualisierung hinzuweisen.
-
Die Speicherzugriffsschaltung 466 ist Hardware oder eine Kombination aus Hardware oder Software, die das Lesen oder Schreiben der Kontextinformationen von dem oder in den Speicher 468 ermöglicht. In einer oder mehreren Ausführungsformen führt die Speicherzugriffsschaltung 466 die Operationen des Schreibens oder Lesens der Kontextdaten durch, wenn die Sicherheitsprüfschaltung 462 die Lese- oder Schreiboperation autorisiert.
-
Die Benachrichtigungsschaltung 480 ist Hardware oder eine Kombination aus Hardware oder Software, die Aktualisierungen in den Kontextinformationen in dem Speicher 468 verfolgt und eine Benachrichtigung an die Kommunikationssubsysteme 336, die SOCs 234 oder das System 210B sendet. Zu diesem Zweck können Benachrichtigungsanforderungen von den Kommunikationssubsystemen 336, den SOCs 234 und/oder dem System 210B für bestimmte Ereignisse oder Bedingungen in der Benachrichtigungsschaltung 480 registriert werden. Die Benachrichtigungsschaltung 480 überwacht Änderungen an Einträgen oder Feldern in dem Speicher 468. Wenn die Änderungen an Einträgen oder Feldern in dem Speicher 468 den bestimmten Ereignissen oder Bedingungen entsprechen, sendet die Benachrichtigungsschaltung 480 Benachrichtigungs- oder Kontextinformationen an die registrierten Kommunikationssubsysteme 336, die registrierten SOCs 234 oder das registrierte System 210B über den Multidrop-Bus 220, das Fabric 222B oder den GPIO 242.
-
In einer oder mehreren Ausführungsformen kann die Benachrichtigungsschaltung 480 die Kontextinformationen in dem Speicher 468 aktualisieren oder verarbeiten, bevor sie sie an die Kommunikationssubsysteme 336, die SOCs 234 oder das System 210B sendet. Die Benachrichtigungs- oder Kontextinformationen, die an die registrierten Kommunikationssubsysteme 336, die registrierten SOCs 234 oder das registrierte System 210B gesendet werden, können an den Kommunikationssubsystemen 336, den SOCs 234 oder dem System 210B verarbeitet und an andere Subsysteme, SOCs oder Systeme gesendet werden.
-
Der Speicher 468 speichert die Kontextinformationen, die von SOCs und/oder Vorrichtungen empfangen werden, in verschiedenen Systemen 210. Die Kontextinformationen für einen SOC oder eine Vorrichtung in einem System (z. B. dem System 210B) können für den Zugriff durch andere SOCs oder Vorrichtungen in anderen Systemen (z. B. dem System 210A) auf Anforderung verfügbar sein. Wenn daher ein SOC oder eine Vorrichtung in den anderen Systemen (z. B. dem System 210A) in einen Ruhemodus versetzt und dann aktiv wird, kann das SOC oder die Vorrichtung in dem anderen System (z. B. dem System 210A) auf den Speicher 468 zugreifen, um die Kontextinformationen anderer SOCs oder Vorrichtungen in dem System (z. B. dem System 210B) zu empfangen, die sich geändert haben können, während sich das SOC oder die Vorrichtung des Systems (z. B. des Systems 210A) in einem Ruhemodus befand. In ähnlicher Weise kann das SOC im selben System (z. B. dem SOC 234A) die Kontextinformationen eines anderen SOC (z. B. des SOC 234B) empfangen, die sich geändert haben können, während das SOC (z. B. das SOC 234A) in einem Ruhemodus war.
-
Der Speicher 468 kann auch eine Teilmenge von Datenpaketen 492 speichern, die über den Multidrop-Bus 220 übermittelt werden. Auf diese Datenpakete 492 kann durch die SOCs 234 oder andere Komponenten der Koexistenz-Hub-Vorrichtung 212 zugegriffen werden, und sie können von diesen abgerufen werden. In einigen Fällen ersetzt ein neues Datenpaket ein entsprechendes nicht mehr aktuelles Datenpaket, während in anderen Fällen sowohl alte als auch neue Datenpakete zum späteren Abruf in dem Speicher 468 gehalten werden.
-
Die in dem Speicher 468 gespeicherten Kontextinformationen können anderen Datenfeldern zugeordnet sein, einschließlich, ohne darauf beschränkt zu sein, Vorrichtungsadresse, Zeitstempel und Sicherheitscode. Die Vorrichtungsadresse bezieht sich auf eine physische oder logische Adresse des SOC oder der Vorrichtung, die den Kontextinformationen zugeordnet ist. Der Zeitstempel gibt den Zeitpunkt, zu dem die Kontextinformationen vom entsprechenden SOC oder von der entsprechenden Vorrichtung gesendet wurden, oder den Zeitpunkt, zu dem die Kontextinformationen an der Koexistenz-Hub-Vorrichtung 212 empfangen wurden, an. Der Sicherheitscode gibt Daten zum Authentifizieren, ob die Lese- oder Schreibanforderung der Kontextinformationen, an und kann durch die Sicherheitsprüfschaltung 462 verwendet werden, um die an dem Billboard 326 empfangene Lese- oder Schreibanforderung zu genehmigen oder abzulehnen.
-
In dem Beispiel von 4B speichert der Speicher 468 die Kontextinformationen einer Anzeigevorrichtung in seinem ersten Eintrag. Die Anzeigevorrichtung verwendet eine Vorrichtungsadresse von 0100 bis 0110, und ihre neuesten Kontextinformationen werden zum Zeitpunkt 11:53:21 empfangen. Der Eintrag schließt einen Sicherheitscode von XYZ ein, und die Kontextinformationen geben an, dass die Anzeigevorrichtung ein aktiver Bereitschaftszustand ist und bei der Aktualisierungsrate von 60 Hz und der Anzeigeauflösung B arbeitet. Der zweite Eintrag gibt an, dass sich die Kontextinformationen auf ein Näherungssensormodul beziehen. Die Kontextinformationen wurden zum Zeitpunkt 11:52:26 empfangen, sind einem Sicherheitscode von AYB zugeordnet und geben an, dass der Sensor eingeschaltet ist und mit seinem lokalen Takt betrieben wird, der mit der Geschwindigkeit X läuft. Der letzte Eintrag des Speichers 468 bezieht sich auf ein Leistungssteuermodul, das aktuell in einem Niedrigleistungsmodus arbeitet. Die vorstehend unter Bezugnahme auf 4B erläuterten Einträge, Vorrichtungen und Kontextinformationen sind lediglich veranschaulichend. Der Speicher 468 kann die Kontextinformationen in verschiedenen anderen Formaten speichern und verschiedene andere Informationen einschließen.
-
Beispielhafte Architektur von SOC
-
5 ist ein Blockdiagramm des SOC 234B gemäß einer Ausführungsform. Obwohl das SOC 234B in 5 als ein Beispiel veranschaulicht ist, können andere SOCs 234A und 234C bis 234N dieselbe oder eine ähnliche Architektur wie das SOC 234B aufweisen. Das SOC 234B kann Nachrichten, einschließlich der Kontextinformationen, an die Koexistenz-Hub-Vorrichtung 212 oder andere SOCs senden und/oder Nachrichten, einschließlich Kontextinformationen anderer SOCs, von der Koexistenz-Hub-Vorrichtung 212 oder anderen SOCs über den Multidrop-Bus 220 empfangen.
-
In dem Beispiel, in dem das System 210C ein Kommunikationssystem ist, kann das SOC 234B ein oder mehrere Kommunikationsprotokolle unter Verwendung seiner Kommunikationssubsysteme 536A, 536B (zusammen als „Kommunikationssubsysteme 536“ bezeichnet) ausführen. Obwohl in 5 nur zwei Kommunikationssubsysteme 536A, 536B veranschaulicht sind, können mehr als zwei Kommunikationssubsysteme oder nur ein einzelnes Kommunikationssubsystem in dem SOC 234B enthalten sein. Jedes der Kommunikationssubsysteme 536A, 536B kann verschiedenen Kommunikationsprotokollen zugeordnet sein, oder beide können dem gleichen Kommunikationsprotokoll zugeordnet sein. Die Kommunikationssysteme 536 sind im Wesentlichen identisch mit den Kommunikationssubsystemen 336 der Koexistenz-Hub-Vorrichtung 212, außer dass Nachrichten, die den Kommunikationssubsystemen 536 zugeordnet sind, von dem Prozessor 512 anstelle der Koexistenzsteuerschaltung 314 verarbeitet werden. Die Kommunikationssubsysteme 536 können die Kontextinformationen über den Multidrop-Bus 220 an die Koexistenz-Hub-Vorrichtung 212 senden, um koordinierte Operationen mit anderen Systemen, SOCs und/oder der Koexistenz-Hub-Vorrichtung 212 zu ermöglichen. Eingehende Nachrichten an das SOC 234B werden lokal von dem Prozessor 512 verarbeitet und an entsprechende Kommunikationssubsysteme 536 gesendet. Auf andere detaillierte Erläuterungen zu Kommunikationssubsystemen 536 wird hier der Kürze halber verzichtet.
-
Zusätzlich zu den Kommunikationssubsystemen 536 kann das SOC 234B ferner neben anderen Komponenten die Fabric-Schnittstelle 502, die Busschnittstelle 504, den Prozessors 512 und einen internen Bus 540 zum Verbinden dieser Komponenten einschließen. Das SOC 234B kann weitere Komponenten, wie einen Speicher, zum Puffern von eingehenden oder ausgehenden Nachrichten einschließen.
-
Die Busschnittstelle 504 ist eine Schaltung, allein oder in Verbindung mit Software oder Hardware, die es Komponenten des SOC 234B ermöglicht, mit der Koexistenz-Hub-Vorrichtung 212 und anderen SOCs über den Multidrop-Bus 220 zu kommunizieren. Die Busschnittstelle 540 kann dieselbe Funktion durchführen und die Struktur wie die Schnittstelle 340 aufweisen, die vorstehend unter Bezugnahme auf 4B beschrieben ist.
-
Die Fabric-Schnittstelle 502 ist eine Schaltung, allein oder in Verbindung mit Software oder Hardware, die es Komponenten des SOC 234B ermöglicht, mit dem Anwendungsprozessor 208 über das Fabric 222C zu kommunizieren. Die Kommunikation der Fabric-Schnittstelle 502 ist in der Lage, Daten mit höherer Geschwindigkeit und höherer Bandbreite als die Kommunikation über die Busschnittstelle 504 zu übertragen.
-
Der Prozessor 512 verwaltet den Gesamtbetrieb des SOC 234B. Der Prozessor 512 kann neben anderen Komponenten einen Interrupt-Manager 516, einen Nachrichtenfilter 518 und einen Kontextprozessor 522 als Software- oder Hardwarekomponenten einschließen. Die Funktionen und Operationen des Interrupt-Managers 516 und des Nachrichtenfilters 518 sind im Wesentlichen gleich denen des Interrupt-Managers 428 und des Nachrichtenfilters 432, weshalb die detaillierte Erläuterung dieser Komponenten hier der Kürze halber weggelassen wird.
-
Der Kontextprozessor 522 bestimmt den aktuellen Betriebszustand des SOC 234B und erzeugt Kontextinformationen, die dem SOC 234B entsprechen. Kontextinformationen des SOC 234B können zum Beispiel den Betriebsmodus des SOC 234B (z. B. Ruhemodus im Vergleich zu Aktivmodus), die Kommunikationsfrequenz der Kommunikationssubsysteme 536A, 536B, und ob beliebige ihrer Komponenten deaktiviert sind oder ihre Operationen eingeschränkt sind, um Koexistenzprobleme zu verhindern, einschließen. In einer oder mehreren Ausführungsformen empfängt der Kontextprozessor 522 auch die Kontextinformationen anderer SOCs 234 oder anderer Systeme (z. B. der Systeme 210A, 210B) und aktualisiert die Operation des SOC 234B. Wenn zum Beispiel die empfangenen Kontextinformationen angeben, dass ein anderes SOC (z. B. das SOC 234C) Funkoperationen unter Verwendung eines Frequenzbands durchführt, kann das SOC 234B ein anderes Frequenzband auswählen, das das andere SOC nicht stört. Alternativ, wenn die Kontextinformationen angeben, dass ein anderes SOC einen gemeinsam genutzten PA verwendet, kann das SOC 234B warten, bis das andere SOC den gemeinsam genutzten PA freigibt.
-
In einer oder mehreren Ausführungsformen kann der Kontextprozessor 522 auch die Kontextinformationen von dem Billboard 326 anfordern, wenn die Operation des SOC 234B geändert wird. Das heißt, bevor die Operation des SOC 234B geändert wird, fordert der Kontextprozessor 522 die Kontextinformationen von dem Billboard 326 an, empfängt die Kontextinformationen von dem Billboard 326 und bestätigt, ob der geänderte Betrieb Koexistenzprobleme verursachen würde. Wenn die Änderung Koexistenzprobleme verursacht, kann der Kontextprozessor 522 Aktionen durchführen, um die Koexistenzprobleme zu verhindern, oder warten, bis das Koexistenzproblem nicht mehr vorhanden ist. Zu diesem Zweck kann sich der Kontextprozessor 522 bei der Benachrichtigungsschaltung 480 registrieren, um Kontextinformationen zu empfangen, wenn die Koexistenz nicht mehr vorhanden ist. Die Aktionen, die durchgeführt werden können, um die Koexistenzprobleme zu verhindern, können unter anderem ein Senden eines Befehls an ein anderes Subsystem, ein anderes SOC oder ein anderes System, um die Operationen zu ändern, und Senden einer Anforderung an die Koexistenz-Hub-Vorrichtung 212, um Aktionen zum Beheben der Koexistenzprobleme durchzuführen, einschließen.
-
Die Komponenten und die Architektur des SOC 234B sind lediglich veranschaulichend. In anderen Ausführungsformen kann das SOC 234B nur ein Kommunikationssubsystem oder mehr als zwei Kommunikationssubsysteme einschließen. Darüber hinaus kann das SOC 234B andere Komponenten einschließen, die in 5 nicht veranschaulicht sind.
-
In einer oder mehreren Ausführungsformen schließt das SOC 234B auch sein eigenes Billboard 524 ein. Das Billboard 524 kann im Wesentlichen das gleiche wie das Billboard 326 in der Koexistenz-Hub-Vorrichtung 212 sein. Das Billboard 524 kann die gleichen Kontextinformationen wie das Billboard 326 speichern. Alternativ kann das Billboard 524 Kontextinformationen speichern, die sich von dem Billboard 326 unterscheiden. Zum Beispiel kann das Billboard 524 Kontextinformationen speichern, die nur für das Kommunikationssubsystem 536A, 536B und/oder für Ressourcen außerhalb des SOC 234B relevant sind, auf die durch die Kommunikationssubsysteme 536A, 536B zugegriffen wird. Die externen Ressourcen können durch andere SOCs 234 oder die Koexistenz-Hub-Vorrichtung 212 gemeinsam genutzt werden. Die gleichen Kontextinformationen, die in dem Billboard 326 und dem Billboard 524 gespeichert sind, können basierend auf einem Votierungsmechanismus oder einem anderen vorbestimmten Konfliktlösungsschema synchronisiert oder aktualisiert werden. Das Billboard 524 kann die gleiche oder eine ähnliche Struktur wie das Billboard 326, das vorstehend unter Bezugnahme auf 4B beschrieben wurde, aufweisen.
-
Obwohl die Struktur und die Funktionen des SOC 234B vorstehend unter Bezugnahme auf 5 erläutert werden, können andere SOCs in dem System 210C oder andere Systeme 210A, 210B im Wesentlichen die gleiche Struktur und die gleichen Funktionen.
-
Beispielhafter Anwendungsprozessor mit Billboard
-
6 ist ein Blockdiagramm, das einen Anwendungsprozessor 608 und Systeme 630A bis 630C (hierin zusammen als „Systeme 630“ bezeichnet) in einer elektronischen Vorrichtung gemäß einer Ausführungsform veranschaulicht. In der Ausführungsform von 6 ist das Billboard 610 in dem Anwendungsprozessor 608 anstelle der Koexistenz-Hub-Vorrichtung 212 des Systems 210C implementiert. Obwohl 6 die Systeme 630 als direkt mit dem Anwendungsprozessor 608 verbunden veranschaulicht, können eines oder mehrere der Systeme 630 indirekt mit dem Anwendungsprozessor 608 kommunizieren. Darüber hinaus kann eine Teilmenge der Systeme 630 mit dem Anwendungsprozessor 608 über einen Typ von Bus (z. B. PCIe) kommunizieren, während andere Systeme über einen anderen Typ von Bus (z. B. SPMI) kommunizieren. In einer oder mehreren Ausführungsformen bleibt das Billboard 610 des Anwendungsprozessors 608 selbst dann eingeschaltet, wenn sich die Versorgungsleistung verschlechtert.
-
Die Struktur und die Funktionen des Billboard 610 sind im Wesentlichen die gleichen wie die des oben unter Bezugnahme auf 4B erläuterten Billboard 326, mit der Ausnahme, dass das Billboard 610 in den Anwendungsprozessor 608 eingeschlossen ist und nicht Teil einer Koexistenzsteuerschaltung ist. In einer oder mehreren Ausführungsformen sendet der Anwendungsprozessor 608 Interrupts, wenn Kontextinformationen, die in dem Billboard 610 gespeichert sind, aktualisiert werden, sodass die Systeme 620 geeignete Aktionen durchführen können. Der Anwendungsprozessor 608 kann bewirken, dass einige Komponenten in den Systemen 620 in einen Bereitschaftszustand wechseln, wenn bestimmte Kontextinformationen in dem Billboard 610 aktualisiert werden.
-
Der Anwendungsprozessor 608 kann verschiedene Komponenten einschließen, die in 6 nicht veranschaulicht sind, wie eine Kommunikationsschnittstelle zum Kommunizieren mit den Systemen 630, Verarbeitungskernen und einem Speicher. Diese Komponenten sind in 6 nicht veranschaulicht, um ein Verschleiern der Ausführungsformen zu vermeiden.
-
In anderen Ausführungsformen kann das Billboard auch in einer/einem Frontend-Steuervorrichtung/-Subsystem sein, die/das nur eine Anzahl von lokalen Funkvorrichtungen steuern kann.
-
Beispielhafter Prozess zum Betreiben eines Synchronisationsgenerators
-
7 ist ein Flussdiagramm, das den Prozess zum Betreiben des Billboard gemäß einer Ausführungsform veranschaulicht. Ein Billboard empfängt 702 zu einem ersten Zeitpunkt Kontextinformationen von einem ersten SOC (z. B. dem SOC 234B) durch einen Multidrop-Bus. Ein Speicher im Billboard wird dann gemäß den empfangenen Kontextinformationen des ersten SOC aktualisiert 710.
-
Die Koexistenz-Hub-Vorrichtung erfasst 714 ein Ereignis in einem zweiten SOC (z. B. dem SOC 234C). Eine solche Erfassung kann durch eine über den Multidrop-Bus empfangene Nachricht, die zum Beispiel angibt, dass das zweite SOC aus einem Ruhemodus aktiviert wurde, oder eine Nachricht, einschließlich einer Anforderung von Kontextinformationen vom zweiten SOC, erfolgen.
-
Als Reaktion darauf werden die Kontextinformationen des ersten SOC zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt durch das Billboard abgerufen und an das zweite SOC gesendet 718. Basierend auf den Kontextinformationen kann das zweite SOC seine Operationen oder Operationen anderer SOCs steuern oder anpassen. Alternativ kann das zweite SOC auch eine Benachrichtigung vom ersten SOC empfangen, dass das erste SOC seine Kontextinformationen im Billboard aktualisiert hat. Wenn zum Beispiel die am zweiten SOC empfangenen Kontextinformationen angeben, dass der Betrieb des ersten SOC, wie durch die Kontextinformationen angegeben, Konflikte verursachen kann (z. B. eine Interferenz der Kommunikationsfrequenz), kann das zweite SOC einen Befehl an das erste SOC senden, um den Betrieb des ersten SOC anzupassen oder seinen eigenen Betrieb anzupassen, um die Konflikte zu vermeiden. Als weiteres Beispiel kann das zweite SOC vom ersten SOC anfordern, die Steuerung einer gemeinsam genutzten Ressource freizugeben. Als Reaktion darauf senden das erste SOC eine Antwort an das zweite SOC, wenn die gemeinsam genutzte Ressource freigegeben und für das zweite SOC verfügbar gemacht wird. Wenn das erste SOC die Antwort in Bezug auf die gemeinsam genutzte Ressource weiterhin verwendet, kann die Koexistenz-Hub-Vorrichtung 212 eingreifen und die Verwendung der gemeinsam genutzten Ressource zwischen dem ersten SOC und dem zweiten SOC koordinieren.
-
Obwohl in 7 nicht veranschaulicht, können weitere Prozesse zum Bestimmen, ob das erste SOC oder das zweite SOC autorisiert sind, die Kontextinformationen zu aktualisieren oder zu senden, vor dem Aktualisieren 710 des Speichers oder dem Senden 718 der Kontextinformationen durchgeführt werden. Außerdem kann ein zusätzlicher Prozess zum Senden der Kontextinformationen oder der Benachrichtigung nach einer Erfassung von Aktualisierungen in den Kontextinformationen durch das Billboard durchgeführt werden.
-
Obwohl bestimmte Ausführungsformen und Anwendungen veranschaulicht und beschrieben wurden, versteht sich, dass die Erfindung nicht auf die genaue Konstruktion und die genauen Komponenten beschränkt ist, die hierin offenbart sind, und dass verschiedene Modifikationen, Änderungen und Variationen, die für Fachleute offensichtlich sein werden, in der Anordnung, dem Betrieb und den Details des hierin offenbarten Verfahrens und der Vorrichtung vorgenommen werden können, ohne vom Geist und Schutzumfang der vorliegenden Offenbarung abzuweichen.