-
ALLGEMEINER STAND DER TECHNIK
-
Diese Offenbarung betrifft allgemein das Gebiet der Taktregelung und insbesondere Systeme und Verfahren zum Synchronisieren von Taktsignalen zwischen Computergeräten, die über ein Computernetz verbunden sind.
-
Für Geräte, die über ein Netz verbunden sind, ist eine präzise Zeitsynchronisation schwer zu erreichen. Mit Mechanismen wie dem IEEE 802.1 AS/D5.0-Standard mit dem Titel „Timing and Synchronisation for Time-Sensitive Application in Bridged Local Area Networks", der am 6. Februar 2009 veröffentlicht wurde, können die Standardnetzelemente eines solches Systems eine präzise Zeitsynchronisation aufrechterhalten. Die Synchronisation zwischen unterschiedlichen Netzen und anderen Verbindungstechnologien kann indes nur über Softwaremechanismen erfolgen. Da die präzise Zeitregelung von Software-Prozessen auf den meisten CPU-Architekturen nicht unterstützt wird und da die Software-Kommunikation über Peripheral Component Interconnect Express (PCIe) Transaktionsschichtpakete (Transaction Layer Packet – TLP) verwendet, die Warteschlangenverzögerungen und anderen nichtdeterministischen Verzögerungen (zumindest aus der Perspektive der Software) unterworfen sind, ist es nicht möglich, die Latenzzeiten der Kommunikation zwischen den Komponenten zu regeln. Dies führt zu einer beträchtlichen Verringerung der Genauigkeit bis zu einem Punkt, an dem einige Anwendungen nicht mit annehmbaren Qualitätsniveaus unterstützt werden können (z. B. Mehrkanalaudio), und es ist offensichtlich eine spezifische Systemprogrammausstattung erforderlich, die weniger wünschenswert ist als eine Hardware-Lösung.
-
Was benötigt wird, ist ein Hardware-Mechanismus, der es ermöglicht, Geräte, die über eine PCIe- oder eine PCIe-abgeleitete Architektur verbunden sind (wie beispielsweise DMI (Direct Media Interface – direkte Medienschnittstelle), zeitlich zu synchronisieren.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein schematisches Blockdiagramm, das ein System veranschaulicht, das in der Lage ist, PCIe-Pakete gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung zu verwenden.
-
2 veranschaulicht schematisch eine beispielhafte Ausführungsform gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
-
3 ist ein schematisches Blockdiagramm, das die Struktur eines PCIe-Pakets gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung veranschaulicht.
-
4 veranschaulicht einen abgewandelten Rahmenbildungsmechanismus, der für die Codierung der ersten und zweiten Generation (2.5 und 5 GT/s mit 8b/10b-Codierung) gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung verwendet wird.
-
5 veranschaulicht einen abgewandelten Rahmenbildungsmechanismus, der für die Codierung der dritten Generation (8 GT/s mit 128b/130b-Codierung) gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung verwendet wird.
-
6 veranschaulicht ein Protokoll für den Austausch von Nachrichten, das das Ausklammern von Kommunikationsverzögerungen gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung ermöglicht.
-
7 ist ein Softwarekonfigurationsmechanismus, der unter Verwendung einer PCIe Enhanced Capability Structure gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung ausgeführt ist.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung sind ähnliche Komponenten mit denselben Bezugszeichen gekennzeichnet, und zwar unabhängig davon, ob sie in unterschiedlichen Ausführungsformen gezeigt sind. Zur deutlichen und prägnanten Veranschaulichung von (einer) Ausführungsform/en der vorliegenden Erfindung sind die Zeichnungen nicht notwendigerweise maßstabsgetreu und bestimmte Merkmale können in einer etwas schematischen Form gezeigt sein. Merkmale, die in Bezug auf eine Ausführungsform beschrieben und/oder veranschaulicht werden, können auf dieselbe oder eine ähnliche Weise in einer oder mehreren anderen Ausführungsformen und/oder zusammen mit oder anstatt der Merkmale der anderen Ausführungsformen verwendet werden.
-
Gemäß mehreren Ausführungsformen dieser Offenbarung wird ein Verfahren offenbart, das das Senden einer ersten Nachricht an einem ersten Zeitpunkt von einem Master-Gerät an ein Zielgerät, um die Zeit zwischen dem Master-Gerät und dem über ein Netz eingerichteten Ziel-Gerät zu synchronisieren, wobei das Zielgerät über eine PCIe-Verbindung mit dem Master-Gerät kommuniziert, wobei die erste Nachricht einen Nachrichtenindikator umfasst; und das Empfangen einer Antwortnachricht von dem Zielgerät an das Master-Gerät an einem nachfolgenden Zeitpunkt umfasst, wobei die Antwortnachricht den Nachrichtenindikator umfasst.
-
Gemäß mehreren Ausführungsformen dieser Offenbarung wird ein Computerprogrammprodukt offenbart, das ein durch einen Computer verwendbares Medium umfasst, das einen darin enthaltenen maschinenlesbaren Programcode aufweist, wobei der maschinenlesbare Programmcode angepasst ist, um ausgeführt zu werden, um ein Verfahren zu implementieren, das das Anhängen eines Kopfs an ein Transaktionsschichtprotokoll-Layoutpaket an einem Master-Gerät zum Synchronisieren der Zeit zwischen dem Master-Gerät und einem über ein Netz eingerichteten Zielgerät, wobei der Kopf eingerichtet ist, um das Paket als ein Zeitsynchronisationspaket zu kennzeichnen; und das Senden des Pakets mit dem angehängten Kopf von einem Master-Gerät an ein Zielgerät zum Synchronisieren der Zeit zwischen dem Master- und dem Zielgerät umfasst.
-
Gemäß mehreren Ausführungsformen dieser Offenbarung wird ein System offenbart, das eine Steuereinheit, die konfiguriert ist, um an einem Master-Gerät eine geänderte Rahmenbildung an einen Kopf eines Transaktionsschichtprotokoll-Layoutpakets anzuwenden, wobei der Kopf eingerichtet ist, um das Paket als ein Zeitsynchronisationspaket zu kennzeichnen; einen Sender, der konfiguriert ist, um das Paket mit der geänderten Rahmenbildung vorn Master-Gerät an ein Zielgerät zu senden, um die Zeit zwischen dem Master-Gerät und dem Zielgerät zu synchronisieren, und einen Empfänger umfasst, der konfiguriert ist, um das gesendete Paket zu empfangen.
-
Diese und andere Merkmale und Eigenschaften sowie die Betriebsverfahren und Funktionen der zugehörigen Strukturelemente und die Kombination von Teilen und Einsparungen bei der Herstellung gehen aus der Betrachtung der folgenden Beschreibung und der angefügten Ansprüche in Bezug auf die beiliegenden Zeichnungen hervor, die alle einen Teil dieser Patentschrift bilden, wobei gleiche Bezugszeichen entsprechende Teile in den verschiedenen Figuren bezeichnen. Es versteht sich jedoch ausdrücklich, dass die Zeichnungen lediglich zum Zweck der Veranschaulichung und Beschreibung bereitgestellt werden und mit ihnen keine Definition der Beschränkungen der Ansprüche beabsichtigt wird. Wie in der Beschreibung und in den Ansprüchen verwendet, umfassen die Formen von „ein”, „eine”, „der”, „die” und „das” im Singular Verweise im Plural, es sei denn, dies ist durch den Zusammenhang eindeutig anders bestimmt.
-
Nun in Bezug auf die verschiedenen Gesichtspunkte der Offenbarung verwenden die meisten modernen Rechengeräte Eingangs-/Ausgangs(E/A)-Adapter und Busse, die irgendeine Version oder Implementierung des Peripheral-Component-Interconnect-Standards verwenden, der ursprünglich durch Intel in den 1990er-Jahren geschaffen wurde. Der Peripheral Component Interconnect (PCI) Standard spezifiziert einen Computerbus für das Anschließen von Peripheriegeräten an eine Computer-Hauptplatine. PCI Express oder PCIe ist eine Implementierung des PCI-Computerbus, die bestehende PCI-Programmierkonzepte verwendet aber in der der Computerbus auf einem vollständig unterschiedlichen und viel schnelleren seriellen Kommunikationsprotokoll der physikalischen Schicht gründet. Die physikalische Schicht besteht nicht aus einem bidirektionalen Bus, der von mehreren Geräten gemeinsam benutzt werden kann, sondern aus einzelnen unidirektionalen Verbindungen, die mit genau zwei Geräten verbunden sind.
-
Obgleich Abschnitte der vorliegenden Erörterung zum Zweck der Veranschaulichung PCIe-Kommunikationen oder Geräte betreffen, können Ausführungsformen der Erfindung mit anderen Typen von Kommunikationen oder Geräten verwendet werden, zum Beispiel mit Kommunikationen oder Geräten, die die Übertragung von paketierten Daten über serielle Hochgeschwindigkeitsverbindungen nutzen, Kommunikationen oder Geräte, die flussregelungsbasiertes Verbindungsmanagement nutzen, Kommunikationen oder Geräte, die guthabenbasierte Flussregelung nutzen, Kommunikationen oder Geräte, die eine rein serielle Schnittstelle nutzen, Kommunikationen oder Geräte, die ein Split-Transaktionsprotokoll nutzen, das mit zugeordneten Paketen implementiert ist, Kommunikationen oder Geräte, die Pakete für eine verbesserte oder optimale Paketübertragung priorisieren, Kommunikationen oder Geräte, die skalierbare Verbindungen nutzen, die eine oder mehrere Lanes (z. B. Punkt-zu-Punkt-Verbindungen) aufweisen, Kommunikationen oder Geräte, die eine serielle Hochgeschwindigkeitsverbindung nutzen, Kommunikationen oder Geräte, die eine Differenzierung unterschiedlicher Verkehrstypen nutzen, Kommunikationen oder Geräte, die einen höchst zuverlässigen Datenübertragungsmechanismus nutzen (z. B. unter Verwendung von Laufnummern und/oder End-to-end Cyclic Redundancy Check (ECRC)), Kommunikationen oder Geräte, die eine Sicherungsschicht nutzen, um die Integrität der übertragenen Daten zu erreichen, Kommunikationen oder Geräte, die eine physikalische Schicht von zwei differentiell gesteuerten Paaren von Niederspannungssignalen (z. B. ein Sendepaar und ein Empfangspaar) nutzen, Kommunikationen oder Geräte, die eine Verbindungsinitialisierung nutzen, die die Aushandlung von Lane-Breiten und Betriebsfrequenzen einschließt, Kommunikationen oder Geräte, die nur dann das Senden eines Datenpakets erlauben, wenn bekannt ist, dass der Empfangspuffer zum Empfangen des Pakets auf der Empfangsseite verfügbar ist, Kommunikationen oder Geräte, die Anforderungspakete und/oder Antwortpakete nutzen, Kommunikationen oder Geräte, die Message Space und/oder Message Signaled Interrupt (MSI) und/oder In-Band-Nachrichten nutzen, Kommunikationen oder Geräte, die einen Software-Schicht-Konfigurationsraum nutzen, Kommunikationen oder Geräte, die einen Maximum Payload Size (MPS) Parameter nutzen, oder dergleichen.
-
1 veranschaulicht schematisch ein Blockdiagramm eines Systems 100, das in der Lage ist, PCIe-Pakete zu nutzen, die einen geänderten Rahmenbildungsmechanismus gemäß einigen veranschaulichenden Ausführungsformen der Erfindung aufweisen. Das System 100 kann zum Beispiel ein Rechengerät, ein/en Computer, ein/en Personal Computer (PC), ein/en Servercomputer, ein Client-Server-System, ein/en Mobilcomputer, ein/en tragbarer/tragbaren Computer, ein Laptop, ein Notebook, ein/en Tablet-Computer, ein Netz aus mehreren zusammengeschalteten Geräten oder dergleichen sein oder umfassen.
-
Das System 100 kann zum Beispiel einen Prozessor 111, eine Eingabeeinheit 112, eine Ausgabeeinheit 113, eine RAM/ROM-Einheit 114, eine Speichereinheit 115, eine Kommunikationseinheit 116 und eine Grafikkarte 117 umfassen. Das System 100 kann wahlweise andere zweckmäßige Hardware-Komponenten und/oder Software-Komponenten umfassen.
-
Der Prozessor 111 kann zum Beispiel eine Zentraleinheit (Central Processing Unit – CPU), einen digitalen Signalprozessor (DSP), einen Mikroprozessor, einen Host-Prozessor, eine Steuereinheit, mehrere Prozessoren oder Steuereinheiten, einen Chip, einen Mikrochip, eine oder mehrere Schaltkreise, Schaltungen, eine Logikeinheit, einen integrierten Schaltkreis (Integrated Circuit – IC), einen anwendungsspezifischen integrierten Schaltkreis (Application-Specific IC (ASIC)) oder irgendeine/n andere/n zweckmäßige/n Mehrzweck- oder spezifischen Prozessor oder Steuereinheit umfassen. Der Prozessor 111 kann Befehle, zum Beispiel von einem Betriebssystem (Operating System – OS) 171 des Systems 100 oder von einer oder mehreren Softwareanwendungen 172 ausführen.
-
Die Eingabeeinheit 112 kann zum Beispiel eine Tastatur, ein Tastenfeld, eine Maus, ein Touchpad, einen Eingabestift, ein Mikrofon oder ein anderes zweckmäßiges Zeigegerät oder Eingabegerät umfassen. Die Ausgabeeinheit 113 kann zum Beispiel eine/n Kathodenstrahlröhrenmonitor oder -anzeigeeinheit, eine/n Flüssigkristallmonitor oder -anzeigeeinheit (LCD), einen Bildschirm, einen Monitor, einen Lautsprecher oder ein/e andere/s zweckmäßiges Anzeigeeinheit oder Ausgabegerät umfassen. Die Grafikkarte 117 kann zum Beispiel eine/n Grafik- oder Videoprozessor, -adapter, -steuereinheit oder -beschleuniger umfassen.
-
Die RAM/ROM-Einheit 114 kann zum Beispiel einen Direktzugriffspeicher (Random Access Memory – RAM), einen Festwertspeicher (Read Only Memory – ROM), einen dynamischen Direktzugriffsspeicher (DRAM), einen synchronen dynamischen Direktzugriffspeicher (SD-RAM), einen Flash-Speicher, einen flüchtigen Speicher, einen nichtflüchtigen Speicher, einen Cache-Speicher, einen Puffer, eine Kurzzeitspeichereinheit, eine Langzeitspeichereinheit oder andere zweckmäßige RAM/ROM-Einheiten oder Speichereinheiten umfassen. Die Speichereinheit 115 kann zum Beispiel ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-Laufwerk (Compact Disk), ein CD-ROM-Laufwerk, ein DVD-Laufwerk (Digital Versatile Disk) oder andere zweckmäßige wechselbare oder nicht wechselbare Speichereinheiten umfassen. Die RAM/ROM-Einheit 114 und/oder Speichereinheit 115 kann zum Beispiel Daten speichern, die durch das System 100 verarbeitet werden.
-
Die Kommunikationseinheit 116 kann zum Beispiel eine drahtgebundene oder drahtlose Netzschnittstellenkarte (Network Interface Card – NIC), ein drahtgebundenes oder drahtloses Modem, ein drahtgebundener oder drahtloser Empfänger und/oder Sender, ein/e drahtgebundenen oder drahtlose/n Sender-Empfänger und/oder Sende-/Empfangseinrichtung, eine Hochfrequenz(HF)-Kommunikationseinheit oder -sende-/Empfangseinrichtung oder andere Einheiten umfassen, die in der Lage sind, Signale, Blöcke, Rahmen, Sendeströme, Pakete, Nachrichten und/oder Daten zu senden und/oder zu empfangen. Die Kommunikationseinheit 116 kann wahlweise zum Beispiel eine oder mehrere Antennen, z. B. eine Dipolantenne, eine Monopolantenne, eine Rundstrahlantenne, eine endgespeiste Antenne, eine zirkularpolarisierte Antenne, eine Microstrip-Antenne, eine Diversity-Antenne oder dergleichen umfassen oder damit verbunden sein.
-
In einigen Ausführungsformen können die Komponenten des Systems 100 zum Beispiel in einem/einer gemeinsamen Gehäuse, Verpackung oder dergleichen eingeschlossen sein und unter Verwendung von einer oder mehreren drahtgebundenen oder drahtlosen Verbindungen zusammengeschaltet oder betriebsfähig verbunden sein. In anderen Ausführungsformen können Komponenten des Systems 100 zum Beispiel über mehrere oder separate Geräte verteilt sein, unter Verwendung einer/eines Client/Server-Konfiguration oder -systems ausgeführt sein, unter Verwendung von Fernzugriffsverfahren kommunizieren oder dergleichen.
-
Das System 100 kann ferner eine PCIe-Host-Brücke 120 umfassen, die in der Lage ist, sich unter mehreren Komponenten des Systems 100, z. B. unter mehreren PCIe-Geräten oder PCIe-Endpunkten zu verbinden. Die PCIe-Host-Brücke 120 kann eine Speicherbrücke 121 oder eine andere Speichersteuereinheit umfassen, mit der die RAM/ROM-Einheit 114 und/oder die Grafikkarte 117 verbunden sein kann. Die PCIe-Host-Brücke 120 kann ferner eine Eingangs-/Ausgangsbrücke (E/A) 122 umfassen, mit der die Eingabeeinheit 112, die Ausgabeeinheit 113, die Speichereinheit 115, die Kommunikationseinheit 116 und eines oder mehrere USB-Geräte (universeller serieller Bus) 118 verbunden werden können.
-
Das System 100 kann ferner einen PCIe-Schalter 125 umfassen, der in der Lage ist, sich unter mehreren PCIe-Geräten oder PCIe-Endpunkten zu verbinden. In einigen Ausführungsformen kann der PCIe-Schalter 125 als eine separate oder selbständige Einheit oder Komponente ausgeführt sein; in anderen Ausführungsformen kann der PCIe-Schalter 125 integriert, eingebettet oder auf eine andere Weise unter Verwendung der PCIe-Host-Brücke 120 oder einer anderen zweckmäßigen Komponente ausgeführt sein.
-
Die Topologie oder Architektur von 1 wird zu veranschaulichenden Zwecken gezeigt und Ausführungsformen der Erfindung können in Verbindung mit anderen zweckmäßigen Topologien oder Architekturen verwendet werden. Zum Beispiel wird die Speicherbrücke 121 in einigen Ausführungsformen als eine Speichersteuereinheit ausgeführt und ist in der PCIe-Host-Brücke 120 enthalten oder eingebettet. In einigen Ausführungsformen werden eine Northbridge oder eine Southbridge verwendet und sie umfassen wahlweise die PCIe-Host-Brücke 120 und/oder eine ähnliche PCIe-Hostkomponente. In einigen Ausführungsformen sind die Speicherbrücke 121 und die PCIe-Host-Brücke 120 (und wahlweise der Prozessor 111) unter Verwendung eines einzigen oder gemeinsamen integrierten Schaltkreises oder unter Verwendung mehrerer integrierter Schaltkreise ausgeführt. Es können auch andere zweckmäßige Topologien oder Architekturen verwendet werden.
-
Die PCIe-Host-Brücke 120 und/oder der PCIe-Schalter 125 können sich unter mehreren PCIe-Geräten oder Endpunkten, zum Beispiel den Endpunkten 141 bis 145, zusammenschalten. Einige PCIe-Geräte oder Endpunkte (z. B. die PCIe-Endpunkte 141 und 142) sind direkt über die PCIe-Host-Brücke 120 verbunden; wohingegen andere PCIe-Endpunkte (z. B. die PCIe-Endpunkte 143 bis 145) indirekt unter Verwendung des PCIe-Schalters 125 verbunden sind. Einige Ausführungsformen erlauben oder ermöglichen Kommunikationen, die PCIe-Pakete nutzen, die einen geänderten Rahmenbildungsmechanismus aufweisen, nur zwischen (oder unter) PCIe-Geräten oder Endpunkten, die direkt über die PCIe-Host-Brücke 120 verbunden sind (nämlich nur zwischen den Endpunkten 141 und 142); und erlauben oder ermöglichen keine Kommunikationen, die PCIe-Pakete nutzen, die einen geänderten Rahmenbildungsmechanismus aufweisen, zwischen (oder unter) PCIe-Geräten oder Endpunkten, die indirekt verbunden sind oder nicht direkt über die PCIe-Host-Brücke 120 verbunden sind oder indirekt über den PCIe-Schalter 125 verbunden sind (nämlich unter den Endpunkten 143 bis 145 oder zwischen dem Endpunkt 141 und den Endpunkten 143 bis 145 oder zwischen dem Endpunkt 142 und den Endpunkten 143 bis 145).
-
Die PCIe-Host-Brücke 120 und/oder der PCIe-Schalter 125 können sich unter mehreren PCIe-Endpunkten oder PCIe-Geräten, zum Beispiel den Endpunkten 141 bis 145, zusammenschalten. Zu veranschaulichenden Zwecken kann der PCIe-Endpunkt 141 Daten über die Ports 151, 152 an die Speicherbrücke 121 senden; dementsprechend wird der Endpunkt 141 hier als „Sendeendpunkt” oder „Sendegerät” bezeichnet, wohingegen die Speicherbrücke 121 als „Empfangsendpunkt” oder „Empfangsgerät” bezeichnet wird. Andere Komponenten können als ein Sendegerät und/oder ein Empfangsgerät betrieben werden. Zum Beispiel kann der Prozessor 111 ein Sendegerät sein und die RAM/ROM-Einheit 114 kann ein Empfangsgerät sein; das USB-Gerät 118 kann ein Sendegerät sein und die Speichereinheit 115 kann ein Empfangsgerät sein; die Speicherbrücke 121 kann als ein Empfangsgerät (z. B. gegenüber einem/einer ersten Endpunkt oder Komponente) betrieben werden und/oder als ein Sendegerät (z. B. gegenüber einem/einer zweiten Endpunkt oder Komponente) betrieben werden; oder dergleichen. In einigen Ausführungsformen kann das Empfangsgerät Daten oder Steuerdaten an das Sendegerät zurücksenden oder umgekehrt; zum Beispiel kann die Kommunikation zwischen dem Sendegerät und dem Empfangsgerät unilateral oder bilateral sein.
-
2 veranschaulicht schematisch eine beispielhafte Ausführungsform gemäß einem Gesichtspunkt der vorliegenden Offenbarung. Die Offenbarung kann auf ein breites Spektrum von Anwendungen angewandt werden, von der Synchronisierung von mehreren Audiokanälen in einem Audio-Video-System, allgemein bei 200 gezeigt, bis hin zu industriellen Anwendungen bei Anlagen und Maschinen und Testinstrumentenausrüstung. Das Notebook 205, das Komponenten, wie eine CPU, einen Chipsatz, hochauflösendes Audio (z. B. Azalia von Intel), drahtgebundenes Gigabit-Ethernet umfasst, ist mit den vorderen Lautsprechern 210 und dem Subwoofer 215 verbunden. Das Notebook 205 ist über die Verbindung 225 (z. B. PCIe, DMI) mit einem drahtlosen Zugangspunkt 220 (z. B. WiFi, drahtloses Ethernet) verbunden. Die hinteren Lautsprecher 230 stehen über den drahtlosen Zugangspunkt 220 mit dem Notebook 205 in Verbindung. Die Netze können mit anderen Vernetzungs- oder Verbindungstechnologien/Mechanismen, wie beispielsweise USB (universeller serieller Bus), Bluetooth, anderen PAN (Personal Area Network), hochauflösendem (High Definition – HD) Audio usw. ersetzt werden, wie ersichtlich.
-
In Systemen wie dem von 2 ist eine präzise Zeitsynchronisation (Genauigkeit Mikrosekunde) erforderlich, um für den Hörer die richtigen Phasenbeziehungen zwischen dem von den vorderen Lautsprechern 210 und den hinteren Lautsprechern 230 erzeugten Klang aufrechtzuerhalten. In herkömmlichen Systemen kann dies nicht bewerkstelligt werden, da kein präziser Mechanismus zur Regelung der „Darstellungszeit” für die vorderen Lautsprecher 210 und die hinteren Lautsprecher 230 vorhanden ist. Da die Latenzzeit durch die WiFi-Verbindung relativ lang ist, ist es erforderlich, die Signale, die für die vorderen Lautsprecher 210 dargestellt werden, zu puffern und zu verzögern. Da die WiFi-Latenzzeit nicht präzise geregelt wird, können jedoch ohne präzise synchronisierte lokale Takte auf herkömmliche Weise bestenfalls die erwartete Latenzzeit angenähert werden und die Signale des vorderen Lautsprechers entsprechend verzögert werden. Mit präzise synchronisierten lokalen Takten können die Audiodaten eine „Darstellungszeit” angeben, die durch die Lautsprecher eingehalten wird, wodurch es möglich wird, die Daten selbst lediglich mit losen Bedingungen zu puffern, die erforderlich sind, um Pufferunter-/überlaufzustände zu vermeiden.
-
3 veranschaulicht schematisch die Struktur eines PCIe-Pakets 310, das einen Nachrichtenvermittlungsmechanismus umfasst, der gemeinsam mit einem geänderten Rahmenbildungsmechanismus für den Austausch von Zeitabtastungsinformationen gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung verwendet wird. Obgleich Abschnitte der vorliegenden Erörterung zum Beispiel eine PCIe-TLP-Struktur betreffen, die eine 64-Bit-Adressierung nutzt, sind die Ausführungsformen der Offenbarung nicht in dieser Hinsicht beschränkt und können in Verbindung mit anderen PCIe-TLP-Strukturen, zum Beispiel Strukturen, die eine 32-Bit-Adressierung nutzen, oder anderen zweckmäßigen Strukturen oder Größen verwendet werden.
-
Das Paket 310 ist eine Struktur mit vier Doppelwörtern, das einen Kopfabschnitt 320, einen Datenabschnitt 330 und einen Übersichtsabschnitt (nicht gezeigt) umfasst. Die Begriffe „Doppelwort” oder „D-Wort” oder „DW” können, so wie sie hier verwendet werden, zum Beispiel eine Dateneinheit umfassen, die eine Größe von vier Bytes aufweist. Die erste Zeile 311 gibt den Byteversatz (zum Beispiel +0, +1, +2 und +3) an; und die zweite Zeile 312 gibt die Bitzahl (zum Beispiel acht Bits, die von 0 bis 7 nummeriert sind) an. Der Kopf 320 umfasst Felder mit Steuerinformationen (die zum Beispiel ein Formatfeld, ein Typenfeld, ein Längenfeld, ein ID-Feld, ein Tag-Feld und dergleichen umfassen), die acht Bytes belegen, wie in den Zeilen 313 und 314 angegeben. Die Zeile 315 ist eine 64-Bit-Adresse, die reserviert ist. Die Zeilen 313 bis 315 entsprechen dem Kopfabschnitt 320 des Pakets 310.
-
Der Datenabschnitt 330 von TLP 310 wird verwendet, um Nutzdaten zu tragen, wo anwendbar. Einige TLP können einen Nutzdatenabschnitt 330 umfassen, wohingegen andere TLP keinen Nutzdatenabschnitt 330 umfassen können. Der Datenabschnitt 330 kann eines oder mehrere bestimmte Bits oder Flags oder Felder des Kopfs 330 umfassen, zum Beispiel können M Bit oder das Flag 332 und/oder das reservierte Feld 333 verwendet werden, um anzugeben, ob die Nachricht durch den Time Master auf einer bestimmten Verbindung gesendet wird oder durch den Time Target. Das TNumber-Feld 334 kann verwendet werden, um die laufende Nummer dieser Messung anzugeben, die durch den Empfänger verwendet wird, um Zeitstempel zu korrelieren. Das TimeSampleNS-Feld 335 kann verwendet werden, um einen abgetasteten Zeitwert in Nanosekunden anzugeben, zum Beispiel für die Messung TNumber-1 (mod 256). Das TimeDiffNS-Feld 336 kann verwendet werden, um einen Zeitdifferenzwert in Nanosekunden anzugeben, zum Beispiel für die Messung TNumber-1 (mod 256).
-
Der Übersichtsabschnitt (nicht gezeigt) umfasst eine wahlfreie TLP-Übersicht, die an das TLP angehängt werden kann. In einigen Gesichtspunkten umfasst das Paket 310 zusätzliche wesentliche Daten oder Nicht-ECEC-Daten, die im Raum, der einer TLP-Übersicht entspricht, gespeichert sind und/oder getragen werden. Der zusätzliche Raum in der Übersicht speichert keine ECRC-Informationen und speichert stattdessen andere oder alternative Informationen, zum Beispiel anwendungsspezifische oder Nicht-ECRC-Daten.
-
In einigen Gesichtspunkten umfasst der Kopf des TLP 310 ein oder mehrere Anzeigebits oder Flags oder Felder, um das Vorhandensein einer TLP-Übersicht anzuzeigen, die anwendungsspezifische Daten oder Nicht-ECRC-Daten aufweist. Zum Beispiel kann ein TLP-Übersichtanzeigebit (TD) 399 das Vorhandensein einer Übersicht anzeigen. Eine oder mehrere bestimmte Bits oder Flags oder Felder des Kopfs 320, zum Beispiel das reservierte Bit 397 und/oder das reservierte Feld 398, können verwendet werden, um anzuzeigen, dass die Übersicht anwendungsspezifische Daten oder Nicht-ECRC-Daten umfasst, um anzuzeigen, dass die Übersicht keine ECRC-Informationen umfasst, um anzuzeigen, dass die ECRC-Überprüfung zu ignorieren ist, und/oder, um anzuzeigen, dass wesentliche Daten oder Nicht-ECRC-Daten von dem Raum, der der TLP-Übersicht entspricht, oder von einem vordefinierten Abschnitt dieses Raums (z. B. durch das Empfangsgerät) zu lesen oder zu erfassen sind.
-
4 veranschaulicht einen geänderten Rahmenbildungsmechanismus, der für die Codierung der ersten und zweiten Generation (2.5 und 5 GT/s mit 8b/10b-Codierung) gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung verwendet wird. Die Struktur eines PCIe-Pakets umfasst einen geänderten Rahmenbildungs-Nachrichtenvermittlungsmechanismus zum Austauschen von Zeitabtastungsinformationen. Ein TLP mit nicht geänderter Rahmenbildung ist oben gezeigt und das Time Sync TLP mit geänderter Rahmenbildung ist unten gezeigt. Der Abschnitt mit der Bezeichnung „TLP-Nachricht” für das Time Sync TLP ist in 3 gezeigt. Die Felder Seq[11:0] und LCRC[31:0] sind die Laufnummer und verbinden den durch die Datensicherungsschicht hinzugefügten CRC. Ein Unterschied ist die Verwendung des STS-Startsymbols anstatt des STP-Rahmenbildungssymbols.
-
5 veranschaulicht einen geänderten Rahmenbildungsmechanismus, der für Codierung der dritten Generation (8 GT/s mit 128b/130b-Codierung) gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung verwendet wird. 5 ist analog zu 4, außer, dass in 5 im Gegensatz zur Codierung der ersten und zweiten Generation, wie in 4 gezeigt, die dritte Generation gezeigt wird. Das Zeitsynchronisationstransportschicht-Protokollpaket 500 umfasst den Kopf 501, der eingerichtet ist, um das Paket 500 als ein Paket zu kennzeichnen, das Zeitsynchronisationsinformationen enthält. Das Feld 502 umfasst Len[10:0], was auf die Länge des Gesamtpakets verweist. Zum Beispiel kann die Länge als vier Byte Doppelwörter (DW) dargestellt werden. Das Feld 504 umfasst Seq[11:0], was die Laufnummer des TLP ist. Das Feld 503 umfasst Check[4:0], was die Datenintegrität für die Len-, Check- und Seq-Felder bereitstellt. Anstatt eines Rahmenbildungssymbols STS, wie in 4 gezeigt, kennzeichnet das Vierbit-Feld 501 am Anfang den Typ eines Pakets, derart, dass ein normales TLP von einer Time-Sync-Nachricht als die physikalische Schicht unterschieden werden kann. Das Feld 505 mit der Bezeichnung „TLP-Nachricht” ist wieder das Paket, das in 3 gezeigt ist. Es sei erwähnt, dass 4 und 5 nicht maßstabsgetreu sind.
-
6 ist ein Protokoll für den Austausch der geänderten Nachrichten, das gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung das Ausklammern von Kommunikationsverzögerungen ermöglicht. Zum Zeitpunkt t1n sendet das Master-Gerät eine Time-Sync-Nachricht an ein Zielgerät. Das Zielgerät empfängt die Nachricht zum Zeitpunkt t2n. Die TimeSync-Nachricht umfasst M Bit oder das auf gleich 1 eingestellte Flag 332, das auf gleich n eingestellte TNumber-Feld 134, das auf gleich t1n-1 eingestellte TimeSamplesNS-Feld 135 und das auf t4n-1 – t1n-1 eingestellte TimeDiffNS-Feld 136. Zum Beispiel wäre das Format der TimeSync-Nachricht TimeSync (M: = 1, TNumber: = n, TimeSampleNS: = t1n-1, TimeDiffNS: = (t4n-1 – t1n-1)). Das Master-Gerät pflegt den TNumber-Zähler und setzt TNumber++ in jeder TimeSync-Nachricht. Das Master-Gerät stellt auch M: = 1 ein und behält t1 und t4. Als Reaktion sendet das Zielgerät die TimeSync-Nachricht zum Zeitpunkt t3n und das Master-Gerät empfängt die TimeSync-Nachricht zum Zeitpunkt t4n. Die durch das Zielgerät zum Zeitpunkt t3n gesendete TimeSync-Nachricht umfasst TimeSync (M: = 0, TNumber: = n, TimeSampleNS: = <Undefined>, TimeDiffNS: = <Undefined>). Das Zielgerät antwortet auf jede empfangene TimeSync-Nachricht, behält die empfangene TNumber und gibt sie als Reaktion wieder und stellt M: = 0 ein. Die Zeitwerte spiegeln tatsächliche Sende/Empfangszeitpunkte für erfolgreiche TLP-Übertragungen wider. Die Werte, die ausgeschiedenen TLPs zugehörig sind, müssen verworfen werden.
-
Zum Zeitpunkt t1n+1 sendet das Master-Gerät eine TimeSync-Nachricht an ein Zielgerät. Das Zielgerät empfängt die Nachricht zum Zeitpunkt t2n+1. Zum Beispiel wäre das Format der TimeSync-Nachricht TimeSync (M: = 1, TNumber: = n + 1 mod 256, TimeSampleNS: = t1n, TimeDiffNS: = (t4n + t1n)). Als Reaktion sendet das Zielgerät die TimeSync-Nachricht zum Zeitpunkt t3n+1 und das Master-Gerät empfängt die TimeSync-Nachricht zum Zeitpunkt t4n +1. Die durch das Zielgerät zum Zeitpunkt t3n+1 gesendete TimeSync-Nachricht umfasst TimeSync (M: = 0, TNumber: = n + 1 mod 256, TimeSampleNS: = <Undefined>, Time-DiffNS: = <Undefined>).
-
Besondere Symbole, die als K-Codes bezeichnet werden und die in den Betriebsarten PCIe 2.5 GT/s und 5 GT/s verwendet werden, sind in Tabelle 1 gezeigt. Wie in der Tabelle gezeigt, wird ein neuer K-Code, K28.6, mit den Versionen 2.5 GT/s und 5 GT/s von PCIe für Start of Time Sync Messages TLPs verwendet. Tabelle 1
Codierung | Symbol | Name | Beschreibung |
K28.5 | COM | Comma | Verwendung für Lane- und Verbindungsinitialisierung und -verwaltung |
K27.7 | STP | Start TLP | Markiert den Beginn eines Transaction-Layer-Pakets |
K28.2 | SDP | Start DLLP | Markiert den Beginn eines Data-Link-Layer-Pakets |
K29.7 | End | End | Markiert das Ende eines Transaction-Layer-Pakets oder eines Data-Link-Layer-Pakets |
K30.7 | EDB | EnD Bad | Markiert das Ende eines annullierten TLP |
K23.7 | PAD | Pad | Verwendung bei der Rahmenbildung und bei der Aushandlung der Verbindungsbreite und der Lane-Ordnung |
K28.0 | SKP | Skip | Verwendung zum Ausgleichen unterschiedlicher Bitraten für zwei kommunizierende Ports |
K28.1 | FTS | Fast Training Sequence | Verwendung in einer geordneten Menge zum Verlassen von L0s zu L0 |
K28.3 | IDL | Idle | Verwendung im Electrical Idle Ordered Set (EIOS) |
K28.4 | | | Reserviert |
K28.6 | STS | Start Time Sync TLP | Start Time Sync TLP |
K28.7 | EIE | Electrical Idle Exit | Reserviert in 2.5 GT/s Verwendung im Electrical Idle Exit Ordered Set (EIEOS) und Sendung vor dem Senden der FTS bei Geschwindigkeiten, die sich von 2.5 GT/s unterscheiden |
-
7 ist ein Softwarekonfigurationsmechanismus, der unter Verwendung einer PCIe Enhanced Capability Structure gemäß mehreren Gesichtspunkten der vorliegenden Offenbarung implementiert ist. Der Mechanismus, allgemein bei 700 gezeigt, umfasst den PCIe Express Capability Header 605. Das TS[1:0]-Feld 710 ist ein Nur-Lese-Feld und stellt die Zeitsynchronisierungsfähigkeit des Geräts bereit. Wenn das Gerät in der Lage ist, ein Grand-Master-Gerät zu sein, wird TS 710 auf 11 eingestellt. Wenn das Gerät in der Lage ist, ein Master-Gerät zu sein, wird TS 710 auf 1× eingestellt. Wenn das Gerät nur in der Lage ist, ein Zielgerät zu sein, wird TS 710 auf 00 eingestellt. Ein Grand-Master ist ein Gerät, das ausgewählt wird, um die Quelle zu sein, von der alle anderen zugehörigen Master-Geräte ihre Zeitwerte ableiten.
-
Das MT[1:0]-Feld 715 ist ein Lese-/Schreib-Feld und kann in Abhängigkeit von der zugewiesenen Funktionalität des Geräts eingestellt werden. Wenn das Gerät ein Grand-Master sein soll, wird MT auf 11 eingestellt. MT 715 kann für einen Root Complex standardmäßig auf Grand-Master eingestellt werden. Die Einstellung 10 von MT 715 ist zur zukünftigen Verwendung und Bestimmung reserviert. Wenn das Gerät ein Master-Gerät ist, wird MT 715 auf 01 eingestellt, was der Standard für nachgeschaltete Ports ist. Wenn das Gerät ein Zielgerät ist, wird MT 715 auf 00 eingestellt, was der Standard für vorgeschaltete Ports ist.
-
Das Time[47:0]-Feld 720 ist eine Abtastung des Zeittakts des Geräts. Das Feld ist für alle Geräte außer einem Grand-Master-Gerät ein Nur-Lese-Feld. Wenn das Gerät ein Grand-Master-Gerät ist, ist das Feld ein Lese-/Schreib-Feld für Software und kann auch durch Hardware unter Verwendung von implementationsspezifischen Mechanismen eingestellt werden. Das Schreiben von Bytes ist (in irgendeiner Reihenfolge) nur erlaubt, wenn der Wert „Disabled” ist, und der Grand-Master-Takt beginnt, wenn der Wert „Enabled” ist, ab der geschriebenen Zeit, zu zählen.
-
Das Frq[7:0]-Feld 725 ist für eine Frequenz des Sendens von Nachrichten bestimmt und ist ein Lese-/Schreib-Feld. Das Feld wird nur für Grand-Master- und Master-Geräte implementiert und ist für Nur-Zielgeräte fest. Das Feld 725 ist kodiert um einen Bereich von einmal pro 10 s bis 100 kHz zu umfassen.
-
Das Feld 730 ist ein Freigabe/Sperrbit. Das Bit 730 ermöglicht es Master- und Grand-Master-Geräten, Zeitsynchronisierungsnachrichten zu senden und bewirkt, dass Zielgeräte auf empfangene Nachrichten antworten. Für ein Grand-Master-Gerät ist es möglich, durch Hardware einen Mechanismus zu implementieren, der die Genauigkeit weiter erhöht, indem die Aktivierung des Grand-Master-Geräts mit irgendeiner implementationsspezifischen Referenz synchronisiert wird, die der Einstellung des Freigabebits durch Software folgt.
-
Obgleich die vorhergehende Offenbarung eine momentan als nützlich betrachtete Auswahl von Ausführungsformen erörtert, versteht es sich, dass solche Einzelheiten nur für diesen Zweck bestimmt sind und dass die beigefügten Ansprüche nicht auf die offenbarten Ausführungsformen beschränkt sind, sondern im Gegenteil beabsichtigt wird, Abwandlungen und gleichwertige Einrichtungen abzudecken, die innerhalb des Gedankens und Umfangs der beigefügten Ansprüche liegen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- IEEE 802.1 AS/D5.0-Standard mit dem Titel „Timing and Synchronisation for Time-Sensitive Application in Bridged Local Area Networks”, der am 6. Februar 2009 [0002]