-
Die Erfindung betrifft elektronische Systeme. Insbesondere betrifft die Erfindung Systeme und Verfahren zur Verarbeitung von Ablaufverfolgungsinformationen.
-
Ablaufverfolgungsinformationen (engl. trace information) können für die Entwicklung, Konformität, Interoperabilität und Einsatzerprobung von elektronischen Systemen benötigt werden. Systeme und Verfahren zur Verarbeitung von Ablaufverfolgungsinformationen müssen ständig verbessert werden. Es kann insbesondere wünschenswert sein, die Qualität und Effizienz solcher Systeme und Verfahren zu verbessern.
-
Aspekte der Offenbarung werden beispielhaft anhand der folgenden ausführlichen Beschreibung von Ausführungsformen in Verbindung mit den angehängten Zeichnungsfiguren besser ersichtlich. Es zeigen:
-
1 ein schematisches Blockdiagramm eines Systems 100 gemäß der Offenbarung;
-
2 ein schematisches Blockdiagramm eines Systems 200 gemäß der Offenbarung;
-
3 ein schematisches Blockdiagramm eines Systems 300 gemäß der Offenbarung;
-
4 ein Nachrichtenformat 400;
-
5 ein Nachrichtenformat 500;
-
6 ein Nachrichtenformat 600;
-
7 ein schematisches Blockdiagramm eines Systems 700 gemäß der Offenbarung;
-
8 ein schematisches Blockdiagramm eines Systems 800 gemäß der Offenbarung;
-
9 ein schematisches Blockdiagramm eines Systems 900 gemäß der Offenbarung;
-
10 ein schematisches Blockdiagramm einer Schnittstelle 1000;
-
11 ein schematisches Blockdiagramm eines Systems 1100 gemäß der Offenbarung;
-
12a und 12b Nachrichtenformate;
-
13 ein schematisches Blockdiagramm eines Verfahrens 1300 gemäß der Offenbarung; und
-
14 ein schematisches Blockdiagramm eines Verfahrens 1400 gemäß der Offenbarung.
-
In der folgenden ausführlichen Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, welche einen Teil davon bilden und in welchen zu Veranschaulichungszwecken Ausführungsformen dargestellt werden, in welchen die Erfindung in die Praxis umgesetzt werden kann. Es versteht sich von selbst, dass andere Ausführungsformen verwendet und strukturelle oder logische Änderungen vorgenommen werden können, ohne vom Konzept der vorliegenden Offenbarung abzuweichen. Die folgende ausführliche Beschreibung ist daher nicht in einem einschränkenden Sinne aufzufassen, und das Konzept der vorliegenden Erfindung wird durch die angehängten Ansprüche definiert.
-
Es versteht sich von selbst, dass die Merkmale der verschiedenen Ausführungsbeispiele, die hierin beschrieben werden, miteinander kombiniert werden können, sofern nicht eigens anders angegeben. Ferner bezeichnen gleiche Bezugszeichen entsprechende ähnliche Teile.
-
Wie in dieser Spezifikation verwendet, sollen die Begriffe „gekoppelt“ und/oder „verbunden“ im Allgemeinen nicht bedeuten, dass die Elemente direkt miteinander gekoppelt oder verbunden sein müssen. Es können zwischengeschaltete Elemente zwischen den „gekoppelten“ oder „verbundenen“ Elementen vorgesehen sein. Obwohl jedoch nicht auf diese Bedeutung beschränkt, können die Begriffe „gekoppelt“ und/oder „verbunden“ auch so verstanden werden, dass sie optional eine Implementierung offenbaren, in der die Elemente ohne zwischengeschaltete Elemente, die zwischen den „gekoppelten“ oder „verbundenen“ Elementen vorgesehen sind, direkt miteinander gekoppelt oder verbunden sind. Ferner sollen insofern, als die Begriffe „aufweisen“, „haben“, „mit“ oder andere Varianten davon entweder in der ausführlichen Beschreibung oder den Ansprüchen verwendet werden, diese Begriffe in einer ähnlichen Weise einschließend sein wie der Begriff „umfassend“. Außerdem bezieht sich der Begriff „beispielhaft“ eher nur auf ein Beispiel als auf das Beste oder Optimale.
-
1 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 100 gemäß der Offenbarung. Das System 100 enthält eine integrierte Schaltung 1 mit einer Komponente 2 und einer Einheit 3. Die Komponente 2 ist so konfiguriert, dass sie eine Ablaufverfolgungsinformation (engl. trace information) generiert. Die Einheit 3 ist in einer Ausführungsform in Hardware implementiert und so konfiguriert, dass sie eine Zeitinformation in Abhängigkeit von einer Zeit des Generierens der Ablaufverfolgungsinformationen generiert. Außerdem ist die Einheit 3 so konfiguriert, dass sie eine Datenfolge generiert, welche die Ablaufverfolgungsinformation und die Zeitinformation umfasst. Detailliertere beispielhafte Blockdiagramme von ähnlichen Systemen werden im Folgenden bereitgestellt.
-
2 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 200 gemäß der Offenbarung. Das System 200 umfasst eine integrierte Schaltung 1 mit einer Komponente 2 und einer Einheit 3. Die Komponente 2 ist so konfiguriert, dass sie eine Ablaufverfolgungsinformation generiert. Die Einheit 3 ist in einer Ausführungsform in Hardware implementiert und so konfiguriert, dass sie eine formatierte Datenfolge basierend auf einem Datenformat eines Protokolls generiert, wobei die formatierte Datenfolge die Ablaufverfolgungsinformation umfasst. Detailliertere beispielhafte Blockdiagramme von ähnlichen Systemen werden im Folgenden bereitgestellt.
-
3 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 300 gemäß der Offenbarung. Das System 300 umfasst eine integrierte Schaltung 1, wobei die Grenzen der Schaltung durch eine Linie L angezeigt sind, so dass in einer Ausführungsform alle Komponenten, die innerhalb der Linie L angeordnet sind, einen Teil der integrierten Schaltung 1 bilden. Es versteht sich von selbst, dass der Begriff „integrierte Schaltung“ den Begriffen „integrierter Schaltungschip“, „Chip“, „Mikrochip“ usw. ähnlich sein und durch einen davon ersetzt werden kann. Die integrierte Schaltung 1 ist von einem beliebigen Typ, zum Beispiel eine integrierte Basisbandschaltung, eine integrierte Hochfrequenzschaltung, ein Chip zur Verwendung in einem Kraftfahrzeug (engl. automotive chip), ein Sensorchip, ein Mikroprozessor usw. Die integrierte Schaltung 1 kann durch eine beliebige Technologie hergestellt und zum Beispiel als integrierte Logikschaltungen, integrierte Analogschaltungen, integrierte Mischsignalschaltungen, Speicherschaltungen, integrierte passive Bauelemente usw., konzipiert sein und/oder solche umfassen.
-
Die integrierte Schaltung 1 kann eine oder mehr Softwarekomponenten (nicht dargestellt) umfassen. Jede der Softwarekomponenten kann als Ablaufverfolgungsquelle (engl. trace source) (oder -Master) fungieren, d. h. so konfiguriert sein, dass sie eine Ablaufverfolgungsinformation generiert (siehe Pfeile „Software-Ablaufverfolgungsquellen“). In ähnlicher Weise kann die integrierte Schaltung 1 ferner eine oder mehr Hardwarekomponenten (nicht dargestellt) umfassen, wobei jede der Hardwarekomponenten so konfiguriert sein kann, dass sie eine Ablaufverfolgungsinformation generiert (siehe Pfeile „Hardware-Ablaufverfolgungsquellen“). Eine Ablaufverfolgungsinformation, die durch eine der Software- oder Hardwarekomponenten generiert wird, kann Informationen über einen Zustand der jeweiligen Komponente, zum Beispiel Informationen über eine Taktfrequenz, einen Strom, eine Spannung, eine Temperatur usw. enthalten. Außerdem können die Ablaufverfolgungsinformationen Informationen über einen Prozess enthalten, der durch die jeweilige Komponente ausgeführt wird.
-
Die integrierte Schaltung 1 kann einen Arbiter 4 (oder Ablaufverfolgungs-Arbiter (engl. trace arbiter) oder Ablaufverfolgungs-Backbone) mit einem oder mehr Eingängen und Ausgängen enthalten. Die Eingänge des Arbiters 4 können mit den Software- und Hardwarekomponenten gekoppelt und so konfiguriert sein, dass sie die Ablaufverfolgungsinformationen dieser Komponenten empfangen. Ein erster und ein zweiter Ausgang des Arbiters 4 können mit einem ersten Ablaufverfolgungsmodul 5a bzw. einem zweiten Ablaufverfolgungsmodul 5b gekoppelt sein. Außerdem kann ein dritter Ausgang des Arbiters 4 mit einer Ablaufverfolgungseinheit 6 gekoppelt sein. Jedes der Ablaufverfolgungsmodule 5a und 5b kann mit einer Schnittstelle, zum Beispiel einer Parallel-Ablaufverfolgungsschnittstelle (PTI – Parallel Trace Interface), gekoppelt sein, die eine Verbindung zu einer externen Komponente, insbesondere einem Ablaufverfolgungs-Tool, bereitstellt. Die Ablaufverfolgungseinheit 6 kann eine Formatiereinheit 6a, einen Pufferspeicher 6b und eine Einheit 6c für Speicherdirektzugriff (DMA – Direct Memory Access) enthalten.
-
Die Ablaufverfolgungseinheit 6 kann mit einem Bussystem 7 gekoppelt sein, das mit einer Speichersteuerung 8 verbunden sein kann. Die integrierte Schaltung 1 kann über einen Ausgang der Speichersteuerung 8 mit einem externen Speicher 9, zum Beispiel einem Ringpuffer, gekoppelt sein. Es versteht sich von selbst, dass der Speicher 9 alternativ auf der integrierten Schaltung 1 angeordnet sein kann. Ein Ausgang des Speichers 9 kann über einen Eingang der Speichersteuerung 8 mit der integrierten Schaltung 1 gekoppelt sein. Ein Ausgang der Speichersteuerung 8 kann mit einem Eingang des Bussystems 7 gekoppelt sein, während ein Ausgang des Bussystems 7 mit einem oder mehreren Ausgabeports (oder -schnittstellen) 10 gekoppelt sein kann. Zum Beispiel können die Schnittstellen 10 Vorläuferports (engl. legacy ports) entsprechen oder solche enthalten. In 3 sind verschiedene beispielhafte Schnittstellen angezeigt, nämlich UART (Universal Asynchronous Receiver Transmitter), SPI (Serial Peripheral Interface), MIPI (Mobile Industry Processor Interface), synchrone Hochgeschwindigkeitsschnittstelle (HSI – High Speed Synchronous Interface), eine Schnittstelle zu einer SD(Secure Digital)-Card, einem universellen seriellen Bus (USB – Universal Serial Bus), HSIC (High Speed Inter-Chip), USB HS (USB High Speed) usw.
-
Während eines Betriebs des Systems 300 empfängt der Arbiter 4 Ablaufverfolgungsinformationen von aktiven Software- und/oder Hardwarekomponenten. Für jede empfangene Ablaufverfolgungsinformation einer Komponente kann der Arbiter 4 in Abhängigkeit von einer Zeit des Generierens der Ablaufverfolgungsinformation eine Zeitinformation generieren. Außerdem kann der Arbiter 4 so konfiguriert sein, dass er eine Datenfolge generiert, welche die empfangene Ablaufverfolgungsinformation und die Zeitinformation umfasst. Zum Beispiel kann die Zeitinformation die Zeit anzeigen, zu der die Datenfolge generiert wird. Die Zeitinformation kann auf einer Systemzeit der integrierten Schaltung 1 basieren oder einer Taktzählung eines Taktgebers entsprechen, wobei die Taktzählung beginnt, wenn die integrierte Schaltung 1 (und infolgedessen der Arbiter 4) eingeschaltet wird. Es kann natürlich möglich sein, die Systemzeit durch die Kenntnis der Taktzählung zu bestimmen.
-
4 veranschaulicht ein beispielhaftes Nachrichtenformat 400, das einer Datenfolge entsprechen kann, die durch den Arbiter 4 generiert wird. Im Folgenden kann das Nachrichtenformat 400 auch als „Systemablaufverfolgungsnachricht“ (engl. System Trace Message) bezeichnet werden. Die Systemablaufverfolgungsnachricht 400 kann ein Datenfeld 11 enthalten, das eine Größe von 4 Bytes aufweisen, d. h. einem D32-Datenwort entsprechen kann. Das Datenfeld 11 kann die Zeitinformation umfassen, und es kann ein Datenfeld 12 folgen, das Nutzdaten einer ablaufverfolgungsquellenspezifischen Nachricht, d.h. die Ablaufverfolgungsinformation, umfasst. Das Datenfeld 12 kann z. B. durch eine beliebige Kombination von D8-, D16-, D32- und D64-Datenwörtern gebildet und in zwei Teile 12a und 12b unterteilt sein. Der erste Teil 12a kann der Ablaufverfolgungsinformation entsprechen oder diese enthalten, während der zweite Teil 12b einem Zeitstempel, zum Beispiel einem Zeitstempel nach einem MIPI-Standard, entsprechen oder solch einen enthalten kann. Der Zeitstempel kann ein 8-Bit-, 16-Bit-, 32-Bit- oder 64-Bit-Datenwort (die als D8TS, D16TS, D32TS, D64TS bezeichnet werden können) sein und verwendet werden, um das Ende der Systemablaufverfolgungsnachricht 400 anzuzeigen.
-
Zurück zu 3 kann der Arbiter 4 Ablaufverfolgungsinformationen von einer oder mehreren Komponenten empfangen und Datenfolgen, d. h. Systemablaufverfolgungsnachrichten, gemäß 4 generieren. Insbesondere kann der Arbiter 4 einen gemultiplexten Datenstrom generieren, der eine oder mehrere Systemablaufverfolgungsnachrichten enthält, wobei der gemultiplexte Datenstrom an das erste Ablaufverfolgungsmodul 5a und/oder das zweite Ablaufverfolgungsmodul 5b und/oder die Ablaufverfolgungseinheit 6 ausgegeben wird. Jedes der Ablaufverfolgungsmodule 5a und 5b kann die empfangenen Datenfolgen basierend auf einem Systemablaufverfolgungsprotokoll, zum Beispiel einem MIPl-Systemablaufverfolgungsprotokoll (STP – System Trace Protocol), konvertieren und die formatierten Daten zu einer Schnittstelle (siehe PTI1, PTI2) weiterleiten. Die Formatiereinheit 6a kann die Systemablaufverfolgungsnachricht empfangen und basierend auf einem Datenformat eines Protokolls (oder Kommunikationsprotokolls) formatierte Datenfolgen generieren. Das Protokoll kann ein byteorientiertes nachrichtenbasiertes Container-Protokoll sein, das zwei Schichten unterstützt, die als „Transportschicht“ (engl. transport layer) und „Datenverbindungsschicht“ (engl. data link layer) bezeichnet werden können. Das Protokoll kann die Möglichkeit bereitstellen, Ablaufverfolgungsdaten von verschiedenen Quellen zu einem einzigen Datenstrom zu multiplexen und zu verschachteln.
-
Die „Transportschicht“ des Protokolls kann auf einem beispielhaften Nachrichtenformat 500 basieren, das in 5 dargestellt ist und als „Systemablaufverfolgungsprotokoll“(engl. System Trace Protocol, STP)-Nachricht bezeichnet werden kann. Die STP-Nachricht 500 kann eine veränderliche Größe aufweisen und eine oder mehr Systemablaufverfolgungsnachrichten kapseln. Es versteht sich von selbst, dass die STP-Nachricht 500 nicht darauf beschränkt ist, vollständige Systemablaufverfolgungsnachrichten zu umfassen, sondern auch ein oder mehr Fragmente von solchen Nachrichten enthalten kann. Die STP-Nachricht 500 kann Datenfelder 13 bis 17 umfassen, wie in 5 dargestellt. Es versteht sich von selbst, dass die STP-Nachricht modifiziert werden kann, indem zum Beispiel eines oder mehrere der Datenfelder 13 bis 17 verworfen und/oder zusätzliche Datenfelder hinzugefügt werden.
-
Das Datenfeld 13 (siehe MID) kann eine Größe von 1 Byte aufweisen und als „Master-ID“ bezeichnet werden. Es kann so konfiguriert sein, dass es die Quelle einer Ablaufverfolgungsinformation, d.h. die Kennung eines Masters, identifiziert. Bei Ablaufverfolgungsquellen kann es sich entweder um Software, die auf einem Kern (oder Prozessorkern) ausgeführt wird (z. B. Protokollstapel, 3G Firmware, DSP Firmware), oder Hardware (z. B. Prozessor-Ablaufverfolgung, DigRF, Rake-Empfänger, Signalüberwachung usw.) handeln. Es ist zu erwähnen, dass das Datenfeld 13 insbesondere durch den Arbiter 4, aber auch durch die Formatiereinheit 6a, generiert werden kann.
-
Das Datenfeld 14 (siehe MSN – Message Sequence Number) kann eine Größe von 1 Byte aufweisen und als „Nachrichtenfolgenummer“ (engl. Message Sequence Number) bezeichnet werden. Es kann ein Nachrichtenzähler modulo 256, der für jeden Master getrennt (d. h. unabhängig von einem verwendeten Kanal) verwaltet werden kann, sein und für jede neue STP-Nachricht mit der gleichen MID inkrementiert werden. Das Datenfeld 14 kann zum Detektieren einer verlorengegangenen Ablaufverfolgungsnachricht auf einer STP-Ebene verwendet und insbesondere durch die Formatiereinheit 6a generiert werden.
-
Das Datenfeld 15 (siehe CID – Channel-ID) kann eine Größe von 1 Byte aufweisen und als „Kanal-ID“ bezeichnet werden. Es kann nur durch Software-Ablaufverfolgungsquellen verwendet werden und die Aufgabe identifizieren, die eine Ablaufverfolgungsinformation erzeugte. Für Hardwareablaufverfolgungen wird das Datenfeld 15 daher nicht verwendet. Das Vorhandensein des Datenfeldes 15 hängt vom Datenfeld 13 (MID) ab, d. h. nur Ablaufverfolgungsquellen, die Kanalüberlappung unterstützen, enthalten das CID-Feld. Es ist zu erwähnen, dass das Datenfeld 15 insbesondere durch den Arbiter 4, aber auch durch die Formatiereinheit 6a generiert werden kann.
-
Das Datenfeld 16 (siehe DATA) kann eine beliebige Größe aufweisen und verkettete Rohdaten von Systemablaufverfolgungsnachrichten enthalten. Hierbei können 16-/32-/64-Bit-Datenwörter in Little Endian, d. h. mit dem niedrigstwertigen Byte zuerst, gespeichert werden. Die Länge des Datenfeldes 16 kann variabel und nicht ausdrücklich angezeigt sein, da sie durch die Gesamtlänge der STP-Nachricht 500 implizit gegeben ist.
-
Das Datenfeld 17 (siehe FLG – Flag) kann eine Größe von 1 Byte aufweisen und verschiedene Flags enthalten. Insbesondere kann das Datenfeld 17 durch die Formatiereinheit 6a generiert werden. Zum Beispiel kann ein Bit an Position 7 des Datenfeldes 17 als „Indikator des ersten Fragments“ (engl. First Fragment Indicator) bezeichnet werden, wobei ein Bitwert von „0“ den Inhalt der STP-Nachricht 500 als ein nachfolgendes Fragment einer Systemablaufverfolgungsnachricht einer höheren Schicht identifiziert. Ein Bitwert von „1“ kann den Inhalt der STP-Nachricht 500 als den Beginn einer Systemablaufverfolgungsnachricht einer höheren Schicht kennzeichnen, so dass dieses erste Fragment als ein Synchronisationspunkt verwendet werden kann.
-
Ein Bit an Position 6 des Datenfeldes 17 kann als „Indikator des letzten Fragments“ bezeichnet werden, wobei ein Bitwert von „0“ anzeigt, dass eine Systemablaufverfolgungsnachricht noch nicht vollständig ist und andere Fragmente folgen werden. Ein Bitwert von „1“ kann das Ende einer Systemablaufverfolgungsnachricht einer höheren Schicht kennzeichnen, d. h. er kann anzeigen, dass die Nachricht vollständig ist und z. B. decodiert werden kann. Infolgedessen kann eine flexible Nachrichtenfragmentierung möglich sein, da Ablaufverfolgungsinformationen, die durch eine Komponente (oder einen Master) bereitgestellt werden, an jeder Position unterbrochen werden können. Außerdem kann eine mögliche Fragmentierung Nachrichtenpufferung auf der integrierten Schaltung 1 vermeiden.
-
Ein Bit an Position 5 des Datenfeldes 17 kann als „Überlaufnachricht-Indikator“ (engl. Overflow Message Indicator) bezeichnet werden, wobei ein Bitwert von „0“ anzeigt, ob die STP-Nachricht 500 Daten einer Systemablaufverfolgungsnachricht einer höheren Schicht enthält. Ein Bitwert von „1“ kann anzeigen, dass die STP-Nachricht 500 eine interne Überlaufnachricht umfasst, die nur durch Hardware-Master unterstützt werden kann. Demnach kann eine Signalisierung von internen Datenüberläufen bereitgestellt werden, zum Beispiel für den Fall, dass die generierte Datenrate höher als eine durch eine physikalische Ablaufverfolgungsschnittstelle bereitgestellte ist.
-
Ein Bit an Position 4 des Datenfeldes 17 kann als „Master-Typ“ bezeichnet werden, wobei ein Bitwert von „0“ anzeigt, dass die STP-Nachricht 500 von einem Software-Master stammt, d. h. das optionale CID-Feld ist vorhanden und interne Überlaufnachrichten werden nicht unterstützt. Ein Bitwert von „1“ kann anzeigen, dass die STP-Nachricht 500 von einem Hardware-Master stammt, d. h. das optionale CID-Feld fehlt und interne Überlaufnachrichten werden unterstützt.
-
Bits an Position 3, 2, 1 und 0 des Datenfeldes 17 können zur zukünftigen Verwendung reserviert werden und daher insbesondere einen Bitwert von „0“ aufweisen.
-
Die „Datenverbindungsschicht“ des Protokolls kann auf einem beispielhaften Nachrichtenformat 600 basieren, das in 6 dargestellt ist und als „Rahmen“ (engl. frame) bezeichnet werden kann. Das Nachrichtenformat 600 kann zum Kapseln einer STP-Nachricht 500 verwendet werden und Datenfelder 18 bis 21 enthalten, wie in 6 angezeigt. Es versteht sich von selbst, dass das Nachrichtenformat 600 modifiziert werden kann, indem zum Beispiel eines oder mehrere der Datenfelder 18 bis 21 verworfen und/oder zusätzliche Datenfelder hinzugefügt werden.
-
Das Datenfeld 18 (siehe Flag) kann einem Beginn-Flag mit einer Größe von z. B. 8 Bits entsprechen und zum Anzeigen des Beginns des Rahmens 600 konfiguriert sein. Die 8 Bits können einer vorbestimmten Bitfolge, zum Beispiel [01111110], d. h. 0x7E in einer hexadezimalen Schreibweise, entsprechen.
-
Das Datenfeld 19 (siehe STP-Nachricht (Byte-gestopft)) kann eine beliebige Größe aufweisen und eine STP-Nachricht sowie zusätzliche Stopfbits oder Stopfbytes enthalten, um die Größe des Rahmens 600 an eine erforderliche Größe oder Bitrate anzupassen. Insbesondere kann daher der Protokoll-Overhead auf der Datensicherungsschicht zwar vom tatsächlichen Inhalt des Rahmens 600 abhängen, aber mindestens 5 Bytes pro Rahmen entsprechen.
-
Das Datenfeld 20 (siehe FCS – Frame Check Sequence (32 Bit)) kann als „Rahmenprüffolge“ bezeichnet werden und eine Größe von z. B. 32 Bits aufweisen. Die FCS kann eine Fehlerprüfnummer umfassen, um Integritätsschutz bereitzustellen, d. h. die Möglichkeit zur Verfolgung von Übertragungsfehlern bereitzustellen. Eine Komponente, die den Rahmen 600 empfängt, kann die FCS verwenden, um zu überprüfen, ob das empfangene Datenpaket fehlerfrei ist oder nicht. Auf diese Weise können Fehler bei der Übertragung von Ablaufverfolgungsdaten innerhalb und außerhalb der integrierten Schaltung 1 detektiert werden.
-
Das Datenfeld 21 (siehe Flag) kann einem Ende-Flag mit einer Größe von z. B. 8 Bits entsprechen und zum Anzeigen des Endes des Rahmens 600 konfiguriert sein. Die 8 Bits können einer vorbestimmten Bitfolge, zum Beispiel [01111110], d. h. 0x7E in einer hexadezimalen Schreibweise, entsprechen.
-
Zurück zu 3 kann die Formatiereinheit 6a Daten, die vom Arbiter 4 empfangen werden, gemäß dem beschriebenen Protokoll formatieren und die formatierten Daten an den Speicherpuffer 6b ausgeben. Die formatierten Daten können über den Pufferspeicher 6b, die DMA-Einheit 6c, das Bussystem 7 und die Speichersteuerung 8 an den Speicher 9 übertragen werden. Es ist zu erwähnen, dass eine Speicherung der Ablaufverfolgungsdaten im Speicher 9 insbesondere dank des Formatierens der Ablaufverfolgungsinformationen gemäß dem beschriebenen Protokoll möglich wurde. Die formatierten Daten können aus dem Speicher 9 ausgelesen und über die Speichersteuerung 8 und das Bussystem 7 zu einem oder mehreren der Ausgabeports 10 übertragen werden.
-
Externe Komponenten (nicht dargestellt), die mit den Schnittstellen 10 gekoppelt sind, können auf die formatierten Ablaufverfolgungsdaten zugreifen und die Prüfsummen überprüfen (siehe Datenfeld 20 in 6). Formatierte Ablaufverfolgungsdaten, die infolge von Übertragungsfehlern beschädigt wurden, können verworfen werden. Durch die Kenntnis der Informationen, die durch das Protokoll bereitgestellt werden, kann eine externe Komponente empfangene formatierte Datenfolgen oder Fragmente davon wieder zusammensetzen. Außerdem können fehlende Fragmente auf der Basis des Datenfelds 14 (siehe 5) detektiert werden. Aufgrund der Zeitinformationen, die durch den Arbiter 4 für jede Ablaufverfolgungsinformation, die von einer aktiven Komponente kommt, bereitgestellt wurden, kann eine globale Übersicht über die aktiven Komponenten der integrierten Schaltung 1 und ihre Operationen für eine bestimmte Zeit oder ein bestimmtes Zeitintervall möglich sein.
-
7 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 700 gemäß der Offenbarung. Das System 700 ähnelt dem System 300 von 3. Kommentare, die in Verbindung mit 3 gemacht wurden, können daher auch für 7 gelten.
-
Das System 700 enthält eine integrierte Schaltung 1 mit mehreren Hardware- und/oder Softwarekomponenten 22, die Ablaufverfolgungsinformationen bereitstellen können. Zum Beispiel können die Komponenten 22 eine DigRF-Schnittstelle, eine Signalüberwachungssoftware oder -hardware, ein BasisbandHostprozessor oder eine Energieverwaltungseinheit (PMU – Power Management Unit) usw. sein. Ablaufverfolgungsdaten, die durch die Komponenten 22 bereitgestellt werden, können durch einen Arbiter 4 und eine Ablaufverfolgungseinheit 6 verarbeitet werden. Außerdem können die Ablaufverfolgungsdaten an ein Ablaufverfolgungsmodul 5 übertragen werden, das mit einem oder beiden der Ablaufverfolgungsmodule 5a und 5b von 3 identifiziert werden kann. Daten, die durch das Ablaufverfolgungsmodul 5 ausgegeben werden, können über einen externen Pufferspeicher 24 an ein externes Ablaufverfolgungs-Tool 25 weitergeleitet werden.
-
Die formatierten Daten, die durch die Ablaufverfolgungseinheit 6 ausgegeben werden, können an eine oder mehrere Komponenten der integrierten Schaltung 1 übertragen werden, so dass die Daten direkt auf der integrierten Schaltung 1 ausgewertet werden können. Zum Beispiel können die Daten an einen Prozessor 23, z. B. einen Basisbandprozessor, übertragen werden, der die formatierten Daten verarbeiten und/oder analysieren und/oder die formatierten Daten zu einem Ausgabeport 10 weiterleiten kann. Es ist zu erwähnen, dass auf die Daten, die an der Schnittstelle 10 ausgegeben werden, auch durch das Ablaufverfolgungs-Tool 25 zugegriffen werden kann.
-
8 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 800 gemäß der Offenbarung. Das System 800 ähnelt den zuvor beschriebenen Systemen, so dass die vorherigen Kommentare auch für Komponenten des Systems 800 gelten können.
-
Das System 800 umfasst einen Chip mit integrierten Schaltungschip 1 mit Komponenten 22a, 22b, 22c, die zum Generieren von Ablaufverfolgungsinformationen konfiguriert sind. Jede der Komponenten 22a, 22b, 22c kann mit einem oder mehreren Eingabeports 27 eines Arbiters 4 gekoppelt sein, wobei jeder Eingabeport 27 einen Puffer(oder FIFO)-Speicher (nicht dargestellt) enthalten kann. Zum Beispiel kann die Komponente 22a Ablaufverfolgungsinformationen nur an einen Eingabeport 27 bereitstellen, während die Komponente 22b Ablaufverfolgungsinformationen an zwei Eingabeports 27 liefern kann. Die Komponente 22c kann einen Arbiter 29 enthalten, der so konfiguriert ist, dass er Ablaufverfolgungsinformationen von mehr als einer Komponente (nicht dargestellt) der Komponente 22c empfängt. Der Arbiter 29 kann so konfiguriert sein, dass er empfangene Ablaufverfolgungsinformationen zu einem einzigen Datenstrom verarbeitet und multiplext, der zu einem Eingabeport 27 des Arbiters 4 weitergeleitet werden kann.
-
Die an den Eingabeports 27 empfangenen Ablaufverfolgungsinformationen können durch den Arbiter 4 in einer Weise verarbeitet werden, die oben bereits beschrieben wurde. Der Arbiter 4 kann einen oder mehr, z. B. drei, Ausgabeports 28 enthalten, die mit einem ersten Ablaufverfolgungsmodul 5a, einem zweiten Ablaufverfolgungsmodul 5b bzw. einer Ablaufverfolgungseinheit 6 gekoppelt sein können. Ein Betrieb der Ablaufverfolgungsmodule 5a, 5b und der Ablaufverfolgungseinheit 6 wurde bereits in Verbindung mit 3 beschrieben. Die Ablaufverfolgungseinheit 6 kann mit einem Bussystem 7 gekoppelt sein, was die Möglichkeit bietet, dass eine externe Komponente (nicht dargestellt), auf die formatierten Ablaufverfolgungsdaten zugreift. Jedes der Ablaufverfolgungsmodule 5a, 5b kann mit einer Schnittstelle 26 gekoppelt sein, die Daten, die durch die Ablaufverfolgungsmodule 5a, 5b verarbeitet wurden, an eine externe Komponente (nicht dargestellt), zum Beispiel an ein externes Ablaufverfolgungs-Tool, liefern kann.
-
9 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 900 gemäß der Offenbarung. Das System 900 enthält eine integrierte Schaltung 1 und kann über eine DigRF-Schnittstelle 30 mit einer Hochfrequenzeinheit 32 gekoppelt sein. Infolgedessen kann die integrierte Schaltung 1 insbesondere einem Basisbandchip entsprechen oder solch einen enthalten. Die integrierte Schaltung 1 kann verschiedene Komponenten 4, 5, 6, 10 und 23 enthalten, die oben bereits zuvor beschrieben wurden. Ein Ablaufverfolgungsmodul 5 kann mit einem externen Ablaufverfolgungs-Tool 25 gekoppelt sein, während ein Ausgabeport 10 mit einem Personalcomputer 33 gekoppelt sein kann. Außerdem kann das Ablaufverfolgungs-Tool 25 mit dem Computer (PC) 33 gekoppelt sein, so dass Ablaufverfolgungsdaten zwischen diesen Komponenten ausgetauscht werden können. Die integrierte Schaltung 1 kann eine DigRF-Schnittstelle 30a enthalten, die so konfiguriert ist, dass sie Ablaufverfolgungsinformationen von der Hochfrequenzeinheit 32 empfängt und diese Informationen an einen Arbiter 4 weiterleitet. Es ist zu erwähnen, dass eine detailliertere Darstellung einer Schnittstelle zwischen dem Arbiter 4 und der DigRF-Schnittstelle 30 in 10 veranschaulicht ist.
-
Die DigRF-Schnittstelle 30 kann so konfiguriert sein, dass sie Daten zwischen der Hochfrequenzeinheit 32 und einer Komponente 31 der integrierten Schaltung 1 austauscht, die z. B. zum Durchführen einer 2G/3G-Datenverarbeitung konfiguriert sein kann. Zum Beispiel können die ausgetauschten Daten Nutzdaten (d. h. TX-Daten, RX-Daten) und/oder Steuerdaten und/oder Daten für eine Zeitsteuerung (Taktgebung) von Komponenten der integrierten Schaltung 1 und der Hochfrequenzeinheit 32 beinhalten. Es ist zu erwähnen, dass eine Verarbeitung von DigRF-Daten durch die Komponente 31 von einer Verarbeitung von Ablaufverfolgungsdaten durch den Arbiter 4 getrennt ist. Das heißt, ein Betrieb der Komponente 31 wird durch einen Betrieb des Arbiters 4 nicht beeinflusst.
-
Die Hochfrequenzeinheit 32 kann eine DigRF-Schnittstelle 30b umfassen, die mit ihrem Gegenstück 30a der integrierten Schaltung 1 gekoppelt ist. Die DigRF-Schnittstelle 30b ist mit Komponenten der Hochfrequenzeinheit 32 gekoppelt, nämlich mit Verarbeitungskernen 36, die Daten z. B. für eine 2G/3G-Datenverarbeitung (siehe Komponente 31) bereitstellen, und mit einem Ablaufverfolgungsmodul 35, das Ablaufverfolgungsinformationen bereitstellt. Die Ablaufverfolgungsdaten können Informationen über Prozesse, die durch Komponenten der Hochfrequenzeinheit 32 ausgeführt werden, und/oder Zustände dieser Komponenten beinhalten.
-
10 veranschaulicht ein beispielhaftes Blockdiagramm einer Schnittstelle 1000, wie sie zwischen der DigRF-Schnittstelle 30 und dem Arbiter 4 von 9 angeordnet sein kann. Die Schnittstelle 1000 kann eine Taktgeneratoreinheit (CGU – clock generator unit) 37 enthalten, die so konfiguriert ist, dass sie einen Takt von z. B. 124,8 MHz bereitstellt, um Komponenten der Schnittstelle 1000 zu takten. Die Schnittstelle kann ferner eine Schnittstelle 38, die auf einem MPHY-Standard basieren kann, und eine Protokollmaschine (engl. protocol engine) 39 umfassen. Die Schnittstelle 38 und die Protokollmaschine 39 können einen Teil einer DigRF-Schnittstelle bilden, die verfolgt (engl. traced) werden soll. Es versteht sich von selbst, dass die DigRF-Schnittstelle weitere Komponenten enthalten kann, die der Einfachheit halber nicht dargestellt sind. Die Schnittstelle 1000 kann ferner eine Einheit 40, die zum Verarbeiten von Daten konfiguriert ist, die durch die Protokollmaschine 39 bereitgestellt werden, sowie einen Ablaufverfolgungsport 41 enthalten.
-
Während eines Betriebs der Schnittstelle 1000 können Daten zwischen einer Basisbandeinheit (siehe z. B. der integrierten Schaltung 1 von 9) und einer Hochfrequenzeinheit (siehe z. B. der Einheit 32 von 9) über eine DigRF-Schnittstelle übertragen werden. RX-Daten, die von der Hochfrequenzeinheit (siehe RxLane1, RxLane2) empfangen werden, können durch die Protokollmaschine 39 (siehe Deframer 42) verarbeitet und an die Basisbandeinheit (siehe vertikale Pfeile mit der Bezeichnung „RX-Pfad“) gesendet werden. In ähnlicher Weise können TX-Daten, die von der Basisbandeinheit (siehe vertikale Pfeile mit der Bezeichnung „TX-Pfad“) empfangen wurden, durch die Protokollmaschine (siehe Rahmenbildner (engl. framer) 43) verarbeitet und an die Hochfrequenzeinheit (siehe TXLane) gesendet werden. Zurück zu 9 kann die beschriebene Übertragung von RX-Daten und TX-Daten einem Datenaustausch zwischen der 2G/3G-Datenverarbeitungskomponente 31 und den Verarbeitungskernen 36 entsprechen.
-
Die Einheit 40 kann ein erstes Filter 44 umfassen, das zum Extrahieren von Ablaufverfolgungsinformationen aus den RX-Daten konfiguriert ist. Außerdem kann ein Multiplexer 46 hinter dem ersten Filter 44 angeordnet sein, um Datenströme zu multiplexen, die durch das erste Filter 44 ausgegeben werden, um einen einzigen gemultiplexten Datenstrom zu generieren, der zum Ablaufverfolgungsport 41 weitergeleitet werden kann. Die gemultiplexten Daten können von einem DigRF-Datenformat in ein Datenformat konvertiert werden, das durch den Arbiter 4 unterstützt wird. Wenn eine Übertragung von RX-Daten vom Multiplexer 46 zum Ablaufverfolgungsport 41 gestartet wird, kann durch Aktivieren einer Signalleitung Rx_first der Beginn einer Nachricht signalisiert werden. Demnach kann der Rx_first-Indikator zum Abtasten eines Zeitstempels, d. h. zum Generieren einer Zeitinformation in Abhängigkeit von der Zeit des Generierens der jeweiligen RX-Daten, verwendet werden. Jeder gültige Datenabtastwert kann durch Umschalten einer Signalleitung Rx_vld_toggle signalisiert werden. Jedes Mal, wenn dieses Signal umgeschaltet wird, können Daten auf der gleichen Flanke eines Takts digRF_clk (siehe Taktgeneratoreinheit 37) abgetastet werden. Das Ende einer RX-Nachricht kann durch ein aktives Rx_Last-Signal angezeigt werden. Der konvertierte Datenstrom kann in einem dedizierten Pufferspeicher, z. B. einem FIFO-Speicher, gespeichert und durch den Arbiter 4 zu seinen Ausgabeports weitergeleitet werden.
-
Die Einheit 40 kann ein zweites Filter 45 umfassen, das zum Extrahieren von Ablaufverfolgungsinformationen aus den TX-Daten konfiguriert ist. Außerdem kann eine Einheit 47 hinter dem zweiten Filter 45 angeordnet sein. Die Einheit 47 kann einen Arbiter, der so konfiguriert ist, dass er Datenrahmen vom DLC-Typ, CLC-Typ und TAS-Nachrichten gemäß ihrer Priorität ordnet, sowie einen Multiplexer umfassen, der so konfiguriert ist, dass er Datenströme zu einem einzigen Datenstrom multiplext. Die gemultiplexten Daten können von einem DigRF-Datenformat in ein Datenformat konvertiert werden, das durch den Arbiter 4 unterstützt wird. Wenn eine Übertragung von TX-Daten von der Einheit 47 zum Ablaufverfolgungsport 41 gestartet wird, kann durch Aktivieren einer Signalleitung Tx_first der Beginn einer Nachricht signalisiert werden. Demnach kann der Tx_first-Indikator zum Abtasten eines Zeitstempels, d. h. zum Generieren einer Zeitinformation in Abhängigkeit von der Zeit des Generierens der jeweiligen TX-Daten, verwendet werden. Jeder gültige Datenabtastwert kann durch Umschalten einer Signalleitung Tx_vld_toggle signalisiert werden. Jedes Mal, wenn dieses Signal umgeschaltet wird, müssen Daten auf der gleichen Flanke eines Takts digRF_clk (siehe Taktgeneratoreinheit 37) abgetastet werden. Das Ende einer TX-Nachricht kann durch ein aktives Rx_Last-Signal angezeigt werden. Der konvertierte Datenstrom kann in einem dedizierten Pufferspeicher, z. B. einem FIFO-Speicher, gespeichert und durch den Arbiter 4 zu seinen Ausgabeports weitergeleitet werden.
-
11 veranschaulicht ein beispielhaftes Blockdiagramm eines Systems 1100 gemäß der Offenbarung. Das System 1100 kann eine integrierte Schaltung 1 und eine Energieverwaltungseinheit (PMU) 48 umfassen, die über zwei Datenverbindungen 49 und 50 gekoppelt sein können. Die erste Datenverbindung 49 kann eine Schnittstelle 51, die auf der integrierten Schaltung 1 angeordnet ist, mit einer Schnittstelle 52 koppeln, die auf der PMU 48 angeordnet ist, so dass es für einen Prozessor 23 möglich sein kann, eine oder mehr Komponenten der PMU 48 zu steuern. Die zweite Datenverbindung 50 kann eine Schnittstelle 54, die auf der integrierten Schaltung 1 angeordnet ist, mit einer Schnittstelle 55 koppeln, die auf der PMU 48 angeordnet ist, so dass es möglich sein kann, Ablaufverfolgungsinformationen zwischen diesen Komponenten auszutauschen. Es ist zu erwähnen, dass die Schnittstellen 54 und 55 einem dedizierten Anschlussstift (oder Pin), der an den Rändern der integrierten Schaltung 1 bzw. der PMU 48 angeordnet ist, entsprechen oder einen solchen enthalten kann.
-
Während eines Betriebs des Systems 1100 kann ein Ereignis auf der PMU 48 (siehe „Ereignisablaufverfolgung“ 56), zum Beispiel ein Stromereignis, wie beispielsweise eine Pulsweitenmodulations(PWM)-Umschaltung, eine Pulsfrequenzmodulations(PFM)-Umschaltung, ein Aktivieren oder ein Deaktivieren eines oder mehrerer Bereiche oder eine Signalüberwachung, verfolgt werden. Eine Ablaufverfolgungsinformation, die vom Ereignis abhängt, kann zur Schnittstelle 55 übertragen werden. Die PMU 48 kann einen seriellen Datenstrom generieren, der die Ablaufverfolgungsinformationen enthält, die in ein Ablaufverfolgungsformat umformatiert werden können, das von dem Arbiter 4 benötigt wird. Der Datenstrom kann in einem FIFO-Speicher (nicht dargestellt) gespeichert werden, der zwischen der Schnittstelle 54 und dem Arbiter 4 angeordnet sein kann. Der Datenstrom, der die Ablaufverfolgungsinformationen umfasst, kann an den Arbiter 4 übertragen und gemäß Arbeitsschritten, die in Verbindung mit vorherigen Figuren beschrieben wurden, verarbeitet werden. Es ist zu erwähnen, dass der Datenstrom, der die Ablaufverfolgungsinformationen enthält, auch an eine Signalüberwachungseinheit 57 übertragen werden kann.
-
12a veranschaulicht ein Nachrichtenformat, wie es seriell zwischen der PMU 48 und dem Arbiter 4 übertragen werden kann. Der Beginn und das Ende des Nachrichtenformats (siehe „Nachricht“) sind durch eine ansteigende Flanke bzw. eine abfallende Flanke angezeigt. Die Nachricht kann mehrere Rahmen (siehe „Rahmen“) umfassen, die eine Länge von einer vorbestimmten Anzahl von Taktzählungen (siehe „CLK“) aufweisen können. Der resultierende Datenstrom (siehe „Daten“) kann eine oder mehr Datenfolgen 58 enthalten, die jeweils einen Nutzdatenteil 59 mit einer Länge von z. B. 32 Bits und ein Paritätsbit 60 enthalten können, das in der PMU 48 während des Generierens der Datenfolge generiert werden kann. Das Paritätsbit 60 kann zum Beispiel einen Wert von „1“ bei einer geradzahligen Menge von hohen Datenbits aufweisen. Es ist zu erwähnen, dass zwei aufeinander folgende Datenfolgen 58 durch ein Intervall 61 getrennt sein können.
-
12b veranschaulicht ein Nachrichtenformat, wie es durch den Arbiter 4 generiert werden kann. Das Nachrichtenformat kann eine Zeitinformation (siehe ST_Arbiter_Timestamp) mit einer Größe von z. B. 32 Bits enthalten, die am Beginn der Nachricht angeordnet sein kann. Auf die Zeitinformation kann eine beliebige Anzahl von N Datenwörtern folgen, die jeweils eine Größe von z. B. 32 Bits aufweisen können. Die Datenwörter können Ablaufverfolgungsinformationen (siehe „Nutzdaten“) enthalten.
-
Zurück zu 11 können Ablaufverfolgungsinformationen, die gemäß dem Datenformat von 12b formatiert werden sollen, von der PMU 48 an den Arbiter 4 übertragen werden. Da das Datenformat von 12b so konfiguriert ist, dass es eine Anzahl von N 32-Bit-Datenwörtern enthält, kann es für den Arbiter 4 möglich sein, eine Ablaufverfolgungsinformation mit einer Größe von N mal 32 Bits zu verarbeiten und zu generieren. Diese Ablaufverfolgungsinformation kann durch eine Komponente analysiert werden, die mit dem Arbiter 4 gekoppelt ist. In ähnlicher Weise können Ablaufverfolgungsinformationen mit einer Größe von 4 Bits (siehe Datenverbindung 50) an die Überwachungseinheit 57 übertragen werden. Es ist zu erwähnen, dass es, da die Anzahl N von Datenwörtern nicht durch eine Obergrenze begrenzt ist, für den Arbiter 4 möglich sein kann, eine Ablaufverfolgungsinformation (mit einer Größe von N mal 32 Bits) zu generieren, die im Vergleich zu einer Ablaufverfolgungsinformation (mit einer Größe von 4 Bits), die an die Überwachungseinheit 57 übertragen wird, komplizierter sein kann.
-
13 veranschaulicht ein beispielhaftes Blockdiagramm eines Verfahrens 1300 gemäß der Offenbarung. Das Blockdiagramm kann in Verbindung mit dem System 100 von 1 gelesen werden, ist aber nicht darauf beschränkt. Zum Beispiel kann das Blockdiagramm auch in Verbindung mit jedem der Systeme gelesen werden, die in 3, 7 und 8 dargestellt sind. In einem Verfahrensschritt 62 wird eine Ablaufverfolgungsinformation durch eine Komponente einer integrierten Schaltung (siehe Komponente 2 von 1) generiert. In einem Verfahrensschritt 63 wird eine Zeitinformation durch eine Einheit der integrierten Schaltung (siehe Einheit 3 von 1) generiert, wobei die Zeitinformation von einer Zeit des Generierens der Ablaufverfolgungsinformation abhängt. Die Einheit der integrierten Schaltung ist in Hardware implementiert. In einem Verfahrensschritt 64 wird durch die Einheit (siehe Einheit 3 von 1) eine Datenfolge generiert, wobei die Datenfolge die Ablaufverfolgungsinformation und die Zeitinformation enthält.
-
14 veranschaulicht ein beispielhaftes Blockdiagramm eines Verfahrens 1400 gemäß der Offenbarung. Das Blockdiagramm kann in Verbindung mit dem System 200 von 2 gelesen werden, ist aber nicht darauf beschränkt. Zum Beispiel kann das Blockdiagramm auch in Verbindung mit jedem der Systeme gelesen werden, die in 3, 7 und 8 dargestellt sind. In einem Verfahrensschritt 65 wird eine Ablaufverfolgungsinformation durch eine Komponente einer integrierten Schaltung (siehe Komponente 2 von 2) generiert. In einem Verfahrensschritt 66 wird eine formatierte Datenfolge auf der Basis eines Datenformats eines Protokolls generiert. Die formatierte Datenfolge enthält die Ablaufverfolgungsinformation und wird durch eine Einheit der integrierten Schaltung (siehe Einheit 3 von 2) generiert, wobei die Einheit in Hardware implementiert ist.
-
Es versteht sich von selbst, dass jedes der Verfahren 1300 und 1400 durch Hinzufügen weiterer Verfahrensschritte modifiziert werden kann. Insbesondere können zusätzliche Verfahrensschritte beliebigen der Arbeitsschritte, die durch die zuvor beschriebenen Komponenten ausgeführt werden, entsprechen oder solche enthalten.
-
Obwohl die Erfindung in Bezug auf eine oder mehrere Implementierungen veranschaulicht und beschrieben wurde, können Abänderungen und/oder Modifikationen an den veranschaulichten Beispielen vorgenommen werden, ohne vom Gedanken und Konzept der angehängten Ansprüche abzuweichen. Es ist insbesondere hinsichtlich der verschiedenen Funktionen, die durch die zuvor beschriebenen Komponenten oder Strukturen (z. B. Anordnungen, Bauelemente, Schaltungen, Systeme usw.) ausgeführt werden, beabsichtigt, dass die Begriffe (einschließlich einer Bezugnahme auf „Mittel“), die zur Beschreibung solcher Komponenten verwendet werden, sofern nichts anderes angegeben, einer beliebigen Komponente oder Struktur entsprechen, welche die spezifizierte Funktion der beschriebenen Komponente ausführt (d. h. welche funktionell gleichwertig ist), auch wenn sie mit der offenbarten Struktur, welche die Funktion in den hierin veranschaulichten beispielhaften Implementierungen der Erfindung ausführt, strukturell nicht gleichwertig ist.