DE112017004897T5 - Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition - Google Patents

Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition Download PDF

Info

Publication number
DE112017004897T5
DE112017004897T5 DE112017004897.4T DE112017004897T DE112017004897T5 DE 112017004897 T5 DE112017004897 T5 DE 112017004897T5 DE 112017004897 T DE112017004897 T DE 112017004897T DE 112017004897 T5 DE112017004897 T5 DE 112017004897T5
Authority
DE
Germany
Prior art keywords
write
write access
machine
logic
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017004897.4T
Other languages
English (en)
Inventor
Mark A. Schmisseur
Raj K. Ramanujan
Filip Schmole
David M. Lee
Ishwar AGARWAL
David J. Harriman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112017004897T5 publication Critical patent/DE112017004897T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Aspekte der Offenbarung betrafen Systeme, Verfahren und Vorrichtungen, die einen Anwendungsprozessor enthalten. Der Anwendungsprozessor enthält eine Schnittstellenlogik, die eine Schnittstelle mit einem Kommunikationsmodul unter Verwendung einer bidirektionalen Interconnect-Verbindung bildet, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll konform ist. Die Schnittstellenlogik dient zum Empfangen eines Datenpakets über die Verbindung, wobei das Datenpaket einen Header und Nutzdaten umfasst; zum Bestimmen eines Hinweisbits, das in dem Header des Datenpakets gesetzt ist; zum Bestimmen eines Steuer-Tag-Werts im Datenpaket-Header auf der Grundlage des gesetzten Hinweisbits; und zum Senden der Nutzdaten an nichtflüchtigen Speicher auf der Grundlage des im Header gesetzten Steuer-Tags.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht die Priorität der ordentlichen (nonprovisional) US-Patentanmeldung Nr. 15/280,730 , eingereicht am 29. September 2016, mit dem Titel „SCHREIB-SEMANTIK FÜR PERSISTENTEN SPEICHER AUF PCIE MIT VORHANDENER TLP-DEFINITION“, die hier vollständig unter Bezugnahme eingeschlossen ist.
  • GEBIET DER ERFINDUNG
  • Diese Offenbarung betrifft ein Rechensystem und insbesondere (aber nicht ausschließlich) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition.
  • HINTERGRUND
  • Systemspeicher kann unter Verwendung von flüchtigem Speicher (z. B. DRAM) implementiert werden, wobei davon ausgegangen wird, dass Daten nach Unterbrechen der Stromversorgung verloren gehen. Ein wichtiger Teil der Semantik zum Schreiben in persistenten Speicher ist die Fähigkeit, dass der Quelle der Schreibdaten bekannt ist, wann die Daten persistent und vor einem Verlust der Stromversorgung geschützt sind. Bei einer E/A-Vorrichtung beinhaltet die Weitergabe dieser Information die Kommunikation über PCIe. Derzeit existiert kein Standardmodell dafür, wie eine E/A-Vorrichtung mit einem Ziel-Untersystem kommuniziert, um eine Garantie zu erhalten, dass Schreibdaten persistent sind.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Blockschaltbilds für ein Rechensystem, das einen Mehrkernprozessor enthält.
    • 2 ist eine schematische Darstellung eines beispielhaften Rechensystems gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 3 ist eine schematische Darstellung eines PCIe-Headers mit einem beispielhaften Steuer-Tag-Feld 302 gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4A ist eine schematische Darstellung von Schreibzugriffen auf Speicher gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4B ist eine schematische Darstellung von Schreibzugriffen auf Speicher gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5 ist ein Ablaufdiagramm eines Verfahrens zum Schreiben in nichtflüchtigen Speicher gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 6 veranschaulicht eine Ausführungsform eines Rechensystems, das eine Interconnect-Architektur gemäß Ausführungsformen der vorliegenden Offenbarung enthält.
    • 7 veranschaulicht eine Ausführungsform einer Interconnect-Architektur, die einen Schichtstapel gemäß Ausführungsformen der vorliegenden Offenbarung enthält.
    • 8 veranschaulicht eine Ausführungsform einer Anforderung oder eines Pakets, die bzw. das in einer Interconnect-Architektur gemäß Ausführungsformen der vorliegenden Offenbarung erzeugt oder empfangen werden soll.
    • 9 veranschaulicht eine Ausführungsform eines Sende- und Empfangspaars für eine Interconnect-Architektur gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 10 veranschaulicht eine weitere Ausführungsform eines Blockschaltbilds für ein Rechensystem, das einen Prozessor gemäß Ausführungsformen der vorliegenden Offenbarung enthält.
    • 11 veranschaulicht eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessorsockel gemäß Ausführungsformen der vorliegenden Offenbarung enthält.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung sind zahlreiche spezifische Einzelheiten besprochen, wie Beispiele für spezifische Arten von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische Architektur- und Mikroarchitektureinzelheiten, spezifische Registerkonfigurationen, spezifische Befehlstypen, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessor-Pipeline-Stufen und -Betrieb usw., um ein umfassendes Verständnis der vorliegenden Erfindung zu ermöglichen. Für den Fachmann ist es jedoch offensichtlich, dass diese spezifischen Einzelheiten nicht genutzt werden müssen, um die vorliegende Erfindung umzusetzen. In anderen Fällen sind wohlbekannte Komponenten oder Verfahren, wie spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltkreise/- code für beschriebene Algorithmen, spezifischer Firmware-Code, spezifischer Interconnect-Betrieb, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -werkstoffe, spezifische Compiler-Umsetzungsformen, der spezifische Ausdruck von Algorithmen in Code, spezifische Techniken/Logik zum Herunterfahren und Gating und andere spezifische Betriebseinzelheiten von Rechensystemen nicht ausführlich beschrieben, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
  • Die folgenden Ausführungsformen können zwar unter Bezugnahme auf Energieeinsparung und Energieeffizienz in bestimmten integrierten Schaltkreisen beschrieben werden, wie in Rechenplattformen oder Mikroprozessoren, allerdings sind andere Ausführungsformen für andere Arten von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können für andere Arten von Schaltkreisen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von einer höheren Energieeffizienz und Energieeinsparung profitieren können. Die offenbarten Ausführungsformen sind beispielsweise nicht auf Desktop-Rechensysteme oder Ultrabooks™ beschränkt. Sie können auch in anderen Vorrichtungen verwendet werden, wie handgehaltenen Vorrichtungen, Tablets, anderen dünnen Notebooks, System-auf-Chip(SoC)-Vorrichtungen und eingebetteten Anwendungen. Zu einigen Beispielen für handgehaltene Vorrichtungen gehören Mobiltelefone, Internetprotokollvorrichtungen, digitale Kameras, persönlichen digitalen Assistenten (PDA) und handgehaltene PC. Zu eingebetteten Anwendungen gehören üblicherweise ein Mikro-Controller, ein digitaler Signalprozessor (DSP), ein System-auf-Chip, Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, Weitverkehrsnetzwerk(WAN)-Switches oder ein beliebiges anderes System, das die nachstehend gelehrten Funktionen und Vorgänge durchführen kann. Darüber hinaus sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physikalische Rechenvorrichtungen beschränkt, sondern können auch Softwareoptimierungen in Bezug auf Energieeinsparung und -effizienz betreffen. Wie aus der folgenden Beschreibung sofort ersichtlich wird, sind die Ausführungsformen von hier beschriebenen Verfahren, Vorrichtungen und Systemen (ob unter Bezugnahme auf Hardware, Firmware, Software oder einer Kombination davon) entscheidend für eine Zukunft mit „grüner Technologie“ unter angemessener Berücksichtigung von Leistungsaspekten.
  • Mit der Entwicklung von Rechensystemen werden die Komponenten darin komplexer. Infolgedessen nimmt auch die Interconnect-Architektur zum Koppeln von und Kommunizieren zwischen den Komponenten an Komplexität zu, um sicherzustellen, dass Anforderungen an die Bandbreite für einen optimalen Komponentenbetrieb erfüllt werden. Weiterhin verlangen unterschiedliche Marktsegmente unterschiedliche Aspekte für Interconnect-Architekturen, um die Marktbedürfnisse zu erfüllen. Beispielsweise erfordern Server eine höhere Leistung, während das mobile Ökosystem gelegentlich Abstriche bei der Gesamtleistung machen kann, um Strom zu sparen. Dennoch ist einziger Zweck der meisten Fabrics, höchstmögliche Leistung bei maximaler Energieeinsparung bereitzustellen. Nachstehend ist eine Anzahl an Interconnects besprochen, die potenziell von Aspekten der hier beschriebenen Erfindung profitieren kann.
  • Unter Bezugnahme auf 1 ist eine Ausführungsform eines Blockschaltbilds für ein Rechensystem dargestellt, das einen Mehrkernprozessor enthält. Der Prozessor 100 enthält einen beliebigen Prozessor oder eine beliebige Verarbeitungsvorrichtung, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen handgehaltenen Prozessor, einen Anwendungsprozessor, einen Co-Prozessor, ein System-auf-Chip (SOC) oder eine andere Vorrichtung zum Ausführen von Code. In einer Ausführungsform enthält der Prozessor 100 mindestens zwei Kerne - Kern 101 und 102, die asymmetrische Kerne oder symmetrische Kerne (die veranschaulichte Ausführungsform) enthalten können. Allerdings kann der Prozessor 100 eine beliebige Anzahl an Verarbeitungselementen enthalten, die symmetrisch oder unsymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik, um einen Software-Thread zu unterstützen. Zu Beispielen für Hardware-Verarbeitungselemente gehören: eine Thread-Einheit, ein Thread-Slot, ein Thread, eine Prozesseinheit, ein Kontext, eine Kontexteinheit, ein Logikprozessor, ein Hardware-Thread, ein Kern und/oder ein beliebiges anderes Element, das einen Zustand für einen Prozessor halten kann, wie einen Ausführungszustand oder Architekturzustand. Mit anderen Worten betrifft ein Verarbeitungselement in einer Ausführungsform eine beliebige Hardware, die unabhängig mit einem Code assoziiert werden kann, wie einem Code für einen Software-Thread, ein Betriebssystem, eine Anwendung, oder einem anderen Code. Ein physikalischer Prozessor (oder Prozessorsockel) betrifft üblicherweise einen integrierten Schaltkreis, der möglicherweise eine beliebige Anzahl an anderen Verarbeitungselementen, wie Kernen oder Hardware-Threads enthält.
  • Ein Kern betrifft häufig Logik, die sich auf einem integrierten Schaltkreis befindet und fähig ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand mit mindestens einigen dedizierten Ausführungsressourcen assoziiert ist. Im Gegensatz zu Kernen betrifft ein Hardware-Thread eine beliebige Logik, die sich auf einem integrierten Schaltkreis befindet, der fähig ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen Architekturzustände gemeinsamen Zugriff auf Ausführungsressourcen haben. Wie ersichtlich ist, überlappt die Grenze zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere für einen Architekturzustand dediziert sind. Häufig werden jedoch ein Kern und ein Hardware-Thread von einem Betriebssystem als individuelle Logikprozessoren betrachtet, wobei das Betriebssystem dazu fähig ist, Vorgänge auf jedem Logikprozessor einzeln zu planen.
  • Der physikalische Prozessor 100, wie in 1 veranschaulicht, enthält zwei Kerne - Kern 101 und 102. Hier werden der Kern 101 und 102 als symmetrische Kerne betrachtet, d. h. Kerne mit der gleichen Konfiguration, den gleichen Funktionseinheiten und/oder der gleichen Logik. In einer weiteren Ausführungsform enthält der Kern 101 einen Out-of-Order-Prozessorkern, während der Kern 102 einen In-Order-Prozessorkern enthält. Die Kerne 101 und 102 können jedoch einzeln aus einem beliebigen Kerntyp ausgewählt werden, wie einem systemeigenen Kern, einem softwareverwalteten Kern, einem Kern, der zum Ausführen einer systemeigenen Befehlssatzarchitektur (ISA) angepasst ist, einem Kern, der zum Ausführen einer übersetzten Befehlssatzarchitektur (ISA) angepasst ist, einem codesignten Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h. asymmetrische Kerne) kann eine Form der Übersetzung, wie eine binäre Übersetzung, eingesetzt werden, um Code auf einem oder beiden Kernen zu planen oder auszuführen. Um die Besprechung weiterzuführen, werden die Funktionseinheiten, die im Kern 101 veranschaulicht sind, nachstehend ausführlicher besprochen, da die Einheiten in der dargestellten Ausführungsform im Kern 102 auf eine ähnliche Weise arbeiten.
  • Wie dargestellt, enthält der Kern 101 zwei Hardware-Threads 101a und 101b, die auch als Hardware-Thread-Slots 101a und 101b bezeichnet werden können. Deshalb sehen Softwareeinheiten, wie ein Betriebssystem, in einer Ausführungsform den Prozessor 100 möglicherweise als vier separate Prozessoren, d. h. vier logische Prozessoren oder Verarbeitungselemente, die fähig sind, vier Software-Threads gleichzeitig auszuführen. Wie oben angesprochen, ist ein erster Thread mit den Architekturzustandsregistern 101a assoziiert, ein zweiter Thread ist mit den Architekturzustandsregistern 101b assoziiert, ein dritter Thread kann mit den Architekturzustandsregistern 102a assoziiert sein und ein vierter Thread kann mit den Architekturzustandsregistern 102b assoziiert sein. Hier kann, wie oben beschrieben, jedes der Architekturzustandsregister (101a, 101b, 102a und 102b) als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten bezeichnet werden. Wie veranschaulicht, sind die Architekturzustandsregister 101a in den Architekturzustandsregistern 101b reproduziert, sodass individuelle Architekturzustände/Kontexte für den logischen Prozessor 101a und den logischen Prozessor 101b gespeichert werden können. Im Kern 101 können andere kleinere Ressourcen, wie Befehlszeiger und Umbenennungslogik, im Zuordner- und Umbenennungsblock 130 auch für die Threads 101a und 101b reproduziert werden. Einige Ressourcen, wie Umordnungspuffer in einer Umordnungs-/Stilllegungseinheit 135, ILTB 120, Lade-/Speicherpuffer und Warteschlangen, können durch Partitionierung gemeinsam genutzt werden. Andere Ressourcen, wie interne Register für allgemeine Zwecke, Register auf Seitentabellenbasis, Datenzwischenspeicher auf niedriger Ebene und Daten-TLB 115, Ausführungseinheit(en) 140 und Teile der Out-of-Order-Einheit 135 sind möglicherweise vollständig gemeinsam genutzt.
  • Der Prozessor 100 enthält oft andere Ressourcen, die vollständig gemeinsam genutzt, durch Partitionierung gemeinsam genutzt oder durch/für Verarbeitungselemente dediziert sein können. In 1 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden Logikeinheiten/Ressourcen eines Prozessors veranschaulicht. Es ist zu beachten, dass ein Prozessor eine beliebige dieser Funktionseinheiten enthalten oder weglassen kann, sowie beliebige andere Funktionseinheiten, Logik oder Firmware enthalten kann, die nicht dargestellt sind. Wie veranschaulicht, enthält der Kern 101 einen vereinfachten, repräsentativen Out-of-Order (OOO) - Prozessorkern. In anderen Ausführungsformen kann jedoch ein In-Order-Prozessor eingesetzt werden. Der 000-Kern enthält einen Zweig-Zielpuffer 120, um Zweige vorherzusagen, die auszuführen/zu nehmen sind, und einen Befehlsübersetzungspuffer (I-TLB) 120, um Adressübersetzungseinträge für Befehle zu speichern.
  • Der Kern 101 enthält ferner ein Decodiermodul 125, das an die Abrufeinheit 120 gekoppelt ist, um abgerufene Elemente zu decodieren. Abruflogik enthält in einer Ausführungsform individuelle Ablaufsteuerungen, die mit den Thread-Slots 101a bzw. 101b assoziiert sind. Üblicherweise ist der Kern 101 mit einer ersten ISA assoziiert, die Befehle definiert/angibt, die auf dem Prozessor 100 ausführbar sind. Häufig enthalten Maschinencodebefehle, die Teil der ersten ISA sind, einen Abschnitt der Befehle (als ein Opcode bezeichnet), der auf einen durchzuführenden Befehl oder einen solchen Vorgang verweist/diese(n) angibt. Die Decodierlogik 125 enthält Schaltungen, die diese Befehle aus ihren Opcodes erkennt und die decodierten Befehle in der Pipeline zur Verarbeitung weiterleitet, wie durch die erste ISA definiert. Wie nachstehend ausführlicher besprochen, enthalten die Decoder 125 in einer Ausführungsform Logik, die zum Erkennen spezifischer Befehle, wie Transaktionsbefehle, ausgebildet oder angepasst ist. Als Ergebnis der Erkennung durch die Decoder 125 ergreift die Architektur oder der Kern 101 spezifische, vordefinierte Maßnahmen, um Aufgaben durchzuführen, die mit dem jeweiligen Befehl assoziiert sind. Es ist wichtig zu beachten, dass eine beliebige der hier beschriebenen Aufgaben, Blöcke, Vorgänge und Verfahren als Reaktion auf einen einzigen oder mehrere Befehle durchgeführt werden kann; von denen einige neue oder alte Befehle sein können. Es ist zu beachten, dass die Decodierer 126 in einer Ausführungsform die gleiche ISA (oder eine Teilmenge davon) erkennen. Alternativ erkennen die Decodierer 126 in einer heterogenen Kernumgebung eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine andere ISA).
  • In einem Beispiel enthält der Zuordner- und Umbenennungsblock 130 eine Zuordnereinheit, um Ressourcen zu reservieren, wie Registerdateien zum Speichern der Ergebnisse einer Befehlsverarbeitung. Die Threads 101a und 101b sind jedoch möglicherweise zu einer Out-of-Order-Ausführung fähig, wobei der Zuordner- und Umbenennungsblock 130 auch andere Ressourcen reserviert, wie Umordnungspuffer zum Nachverfolgen von Befehlsergebnissen. Die Einheit 130 kann auch einen Registerumbenenner enthalten, um Programm-/Befehlsverweisregister auf andere, Register intern im Prozessor 100 umzubenennen. Die Umordnungs-/Stilllegungseinheit 135 enthält Komponenten, wie die oben erwähnten Umordnungspuffer, Ladepuffer und Speicherpuffer, um eine Out-of-Order-Ausführung und eine spätere In-Order-Stilllegung von Befehlen zu unterstützen, die nicht in Reihenfolge ausgeführt werden.
  • In einer Ausführungsform enthält der Block 140 mit Planungs- und Ausführungseinheit(en) eine Planungseinheit, um Befehle/Vorgänge auf Ausführungseinheiten zu planen. Ein Gleitkommabefehl ist beispielsweise an einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkommaausführungseinheit aufweist. Registerdateien, die mit diesen Ausführungseinheiten assoziiert sind, sind ebenfalls enthalten, um die Ergebnisse der Informationsbefehlsverarbeitung zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datenzwischenspeicher auf niedriger Ebene und ein Datenübersetzungspuffer (D-TLB) 150 sind an die Ausführungseinheit(en) 140 gekoppelt. Der Datenzwischenspeicher hat vor kurzem verwendete/bearbeitete Elemente zu speichern, wie Datenoperanden, die möglicherweise in Arbeitsspeicherkohärenzzuständen gehalten werden. Der D-TLB hat neue Adressübersetzungen von virtuellen/linearen zu physikalischen zu speichern. Als spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um einen physikalischen Arbeitsspeicher in eine Vielzahl von virtuellen Seiten aufzuteilen.
  • Hier nutzen die Kerne 101 und 102 gemeinsam den Zugriff auf einen Zwischenspeicher auf höherer Ebene oder noch höher, wie einen Zwischenspeicher auf zweiter Ebene, der mit der chipinternen Schnittstelle 110 assoziiert ist. Es ist zu beachten, dass der Begriff auf höherer Ebene oder noch höher sich erhöhende oder weiter weg von der Ausführungseinheit bzw. den Ausführungseinheiten befindende Zwischenspeicherebenen bezeichnet. In einer Ausführungsform ist ein Zwischenspeicher auf höherer Ebene ein Datenzwischenspeicher auf letzter Ebene - der letzte Zwischenspeicher in der Arbeitsspeicherhierarchie auf dem Prozessor 100 - wie ein Datenzwischenspeicher auf zweiter oder dritter Ebene. Ein Zwischenspeicher auf höherer Ebene ist jedoch nicht darauf beschränkt, da er mit einem Befehlszwischenspeicher assoziiert sein kann oder einen solchen enthalten kann. Ein Ablaufverfolgungszwischenspeicher - eine Art von Befehlszwischenspeicher - kann stattdessen nach dem Decodierer 125 gekoppelt sein, um vor Kurzem decodierte Ablaufverfolgungen zu speichern. Hier bezeichnet ein Befehl möglicherweise einen Makrobefehl (d. h. einen allgemeinen Befehl, der von den Decodierern erkannt wird), der in eine Anzahl an Mikrobefehlen (Mikrovorgängen) decodiert werden kann.
  • In der gezeigten Konfiguration enthält der Prozessor 100 auch ein chipinternes Schnittstellenmodul 110. Historisch wurde ein Arbeitsspeicher-Controller, der nachstehend ausführlicher beschrieben ist, in ein Rechensystem extern zum Prozessor 100 aufgenommen. In diesem Szenario hat die chipinterne Schnittstelle 11 mit Vorrichtungen extern zum Prozessor 100, wie einem Systemspeicher 175, einem Chipsatz (der oft einen Speicher-Controller-Hub zum Anbinden an den Speicher 175 und einen E/A-Controller-Hub zum Anbinden an Peripherievorrichtungen enthält), einem Speicher-Controller-Hub, einer Northbridge oder einem anderen integrierten Schaltkreis zu kommunizieren. Und in diesem Szenario kann der Bus 105 einen beliebigen bekannten Interconnect, wie einen Mehrpunktbus, einen Punkt-zu-Punkt-Interconnect, einen seriellen Interconnect, einen parallelen Bus, einen kohärenten (z. B. mit Zwischenspeicher kohärenten) Bus, eine geschichtete Protokollarchitektur, einen differenziellen Bus und einen GTL-Bus enthalten.
  • Der Speicher 175 kann für den Prozessor 100 reserviert sein oder gemeinsam mit anderen Vorrichtungen in einem System genutzt werden. Zu üblichen Beispielen von Arten des Speichers 175 gehören DRAM, SRAM, nichtflüchtiger Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass die Vorrichtung 180 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, der bzw. die an einen Speicher-Controller-Hub gekoppelt ist, einen Datenspeicher, der an einen E/A-Controller-Hub gekoppelt ist, einen drahtlosen Transceiver, eine Flash-Vorrichtung, einen Audio-Controller, einen Netzwerk-Controller oder eine andere bekannte Vorrichtung enthalten kann.
  • Seit Kurzem kann jedoch jede dieser Vorrichtungen auf dem Prozessor 100 eingebunden sein, da mehr Logik und Vorrichtungen auf einem einzigen Chip, wie einem SOC, integriert werden. In einer Ausführungsform befindet sich zum Beispiel ein Speicher-Controller-Hub auf dem gleichen Paket und/oder Chip mit dem Prozessor 100. Hier enthält ein Abschnitt des Kerns (ein kerninterner Abschnitt) 110 eine oder mehrere Controller zum Koppeln an andere Vorrichtungen wie dem Speicher 175 oder einer Grafikvorrichtung 180. Die Konfiguration, die einen Interconnect und Controller zum Koppeln mit solchen Vorrichtungen enthält, wird oft als kernintern (oder kernlose Konfiguration) bezeichnet. Als ein Beispiel enthält die chipinterne Schnittstelle 110 einen Ring-Interconnect zur chipinternen Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 105 zur chipexternen Kommunikation. In der SOC-Umgebung können sogar noch mehr Vorrichtungen, wie die Netzwerkschnittstelle, Coprozessoren, der Speicher 175, der Grafikprozessor 180 und eine beliebige andere bekannte Computervorrichtung/Schnittstelle auf einem einzigen Chip oder integrierten Schaltkreis integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Energieverbrauch bereitzustellen.
  • In einer Ausführungsform ist der Prozessor 100 fähig, einen Compiler-, Optimierungs- und/oder Übersetzungscode 177 auszuführen, um Anwendungscode 176 zu kompilieren, übersetzen und/oder optimieren, um die hierin beschriebene Vorrichtung und die hierin beschriebenen Verfahren zu unterstützen oder an diese zu koppeln. Ein Compiler enthält oft ein Programm oder einen Satz von Programmen, um Quelltext/-code in Zieltext/-code zu übersetzen. Üblicherweise erfolgt eine Kompilierung von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen und Durchgängen, um Code in einer Programmiersprache auf hoher Ebene in Code in einer Maschinen- oder Assemblersprache auf niedriger Ebene umzuwandeln. Es können jedoch auch Compiler mit einem einzigen Durchgang für eine einfache Kompilierung eingesetzt werden. Ein Compiler kann beliebige bekannte Kompiliertechniken einsetzen und beliebige bekannte Compilervorgänge durchführen, wie lexikalische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.
  • Größere Compiler enthalten oft mehrere Phasen, aber am häufigsten sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) einem Front-End, d. h. im Allgemeinen dort, wo eine syntaktische Verarbeitung, eine semantische Verarbeitung und einige Transformations-/Optimierungsvorgänge stattfinden können, und (2) einem Back-End, d. h. im Allgemeinen dort, wo eine Analyse, Transformationen, Optimierungen und eine Codeerzeugung stattfindet. Einige Compiler beziehen sich auf eine Mitte, die ein Verschwimmen der Grenze zwischen einem Front-End und einem Back-End eines Compilers illustriert. Als Ergebnis kann eine Bezugnahme auf eine Einfügung, Assoziation, Erzeugung oder einen anderen Vorgang eines Compilers in beliebigen der vorgenannten Phasen oder Durchgänge stattfinden, sowie in beliebigen anderen bekannten Phasen oder Durchgängen eines Compilers. Als veranschaulichendes Beispiel fügt ein Compiler möglicherweise Vorgänge, Aufrufe, Funktionen usw. in einer oder mehreren Kompilierphasen ein, wie eine Einfügung von Aufrufen/Vorgängen in einer Front-EndPhase der Kompilierung und nachfolgenden Transformation der Aufrufe/Vorgänge in Code auf niedrigerer Ebene während einer Transformationsphase. Es ist anzumerken, dass während einer dynamischen Kompilierung der Compilercode oder dynamische Optimierungscode solche Vorgänge/Aufrufe einfügen kann sowie den Code zur Ausführung während der Laufzeit optimieren kann. Als spezifisches veranschaulichendes Beispiel kann Binärcode (bereits kompilierter Code) dynamisch während der Laufzeit optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon enthalten.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie ein binärer Übersetzer, Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Deshalb kann eine Bezugnahme auf eine Ausführung von Code, Anwendungscode, Programmcode oder einer anderen Softwareumgebung Folgendes bezeichnen: (1) eine entweder dynamische oder statische Ausführung eines Compilerprogramms bzw. von Compilerprogrammen, eines Optimierungscodeoptimierers oder eines Übersetzers, um Programmcode zu kompilieren, um Softwarestrukturen zu pflegen, um andere Vorgänge durchzuführen, um Code zu optimieren oder um Code zu übersetzen; (2) eine Ausführung von Hauptprogrammcode, der Vorgänge/Aufrufe wie Anwendungscode enthält, die optimiert/kompiliert wurden; (3) eine Ausführung von anderem Programmcode, wie Bibliotheken, der mit dem Hauptprogrammcode assoziiert ist, um Softwarestrukturen zu pflegen, um andere softwarebezogene Vorgänge auszuführen oder um Code zu optimieren; oder (4) eine Kombination davon.
  • Mit der Integration von Lösungen für nichtflüchtige Hochleistungs-Speicher (NVM) in Systeme und neuen NVM-Technologien, die NVM für Systemspeicher ermöglichen, ist es wünschenswert, dass E/A-Quellen Zugriff auf den nichtflüchtigen Speicher haben. Diese Offenbarung beschreibt eine Eingangs-/Ausgangsvorrichtung (E/A-Vorrichtung), die mit einem Ziel-Untersystem kommunizieren kann, um festzustellen, ob Schreibdaten persistent sind.
  • Diese Offenbarung nutzt dabei existierende PCIe-Header-Felder, um Transaktionen zu kommunizieren, die von einem Root-Komplex oder einer Ziel-Peer-Vorrichtung decodiert werden sollen, um die Garantien für persistenten Speicher zu erfüllen. Die Garantie gibt an, dass Schreibvorgänge in persistenten Speicher erst dann abgeschlossen sind, wenn die geschriebenen Daten vor einem Stromausfall des Systems sicher sind. Mit der speziellen Verwendung von PCIe-Header-Feldern kann eine E/A-Vorrichtung über PCIe verzögerte Schreibtransaktionen zum Schreiben von Daten in nichtflüchtigen Speicher (NVM) innerhalb des Root-Komplexes nutzen und daran eine Transaktion anschließen, die die Bestätigungen der Persistenz der Schreibdaten abschließt.
  • Ein Root-Komplex kann Speicheradressenbereiche festlegen, die NVM zum Ziel haben; dies kann jedoch zu einer Einschränkung der Flexibilität und Skalierbarkeit einer Anzahl von Speicherbereichen führen, die während des Betriebs eines Systems dynamisch zugewiesen oder freigegeben werden können. Die Verwendung von Speicheradressenbereichen als einzigen Weg, Vorgänge mit NVM oder flüchtigem Speicher zu assoziieren, kann auch unerwünschte Leistungsverluste verursachen.
  • Diese Offenbarung ermöglicht individuelle Schreibtransaktionen in eine beliebige Adresse, die von dem Root-Komplex (oder einem anderen PCIe-E/A-Port, Speicher-Controller, CPU-Agenten usw.) als ein Schreiben in persistenten Speicher verarbeitet werden soll, um so Flexibilität und Leistung zu verbessern. Die zu decodierenden Adressenbereiche unterliegen keinen Einschränkungen. Die hier beschriebenen Systeme, Verfahren und Vorrichtungen können in Verbindung mit Hinweisen für Schreibdaten verwendet werden, die optional zwischengespeichert oder deren Ordnung in Bezug auf vorherige Schreibzugänge gelockert werden sollen.
  • 2 ist eine schematische Darstellung eines beispielhaften Rechensystems 200 gemäß Ausführungsformen der vorliegenden Offenbarung. Das Rechensystem 200 kann dem in 6 gezeigten ähnlich sein. In 2 ist eine Netzwerkvorrichtung 210 über ein Netzwerk 212 in Kommunikation mit einem Rechensystem 202. Die Netzwerkvorrichtung 210 kann Datenpakete über das Netzwerk 212 senden und empfangen. Das Rechensystem 202 kann ebenfalls Pakete über das Netzwerk 212 senden und empfangen. Das Rechensystem 202 kann beispielsweise Pakete von der Netzwerkvorrichtung 210 über einen Netzwerkschnittstellen-Controller (NIC) 204 empfangen. Der NIC 204 kann beispielsweise ein direkter Fern-Speicherzugriff(RDMA)-NIC (RNIC) sein. Pakete, die Schreibanforderungen für einen Speicher 208 enthalten, können von einer CPU 206 verarbeitet werden, um auf den nichtflüchtigen Speicher 208 zuzugreifen und einen flüchtigen Speicher 209 und/oder einen Cache-Speicher 207 zu umgehen.
  • Der NIC 204 kann mit einer CPU 206 über eine PCIe-Verbindung 216 verbunden sein. Von dem NIC 204 empfangene Pakete können mit den PCIe-Protokollen kompatibel sein. Die CPU 206 kann Datenpakete handhaben, die Daten enthalten, die in flüchtigen Speicher geschrieben werden sollen, und kann Datenpakete mit Daten handhaben, die in persistenten oder nichtflüchtigen Speicher geschrieben werden sollen. Ein mit der CPU 206 assoziierter Root-Komplex 218 kann beispielsweise zur Unterscheidung von Paketen mit Schreibdaten für nichtflüchtigen Speicher und Paketen mit Schreibdaten für den flüchtigen Speicher 207 konfiguriert sein. Der Root-Komplex 218 kann eine Funktion für Transaktionsschichtpaket(TLP)-Verarbeitungshinweise (TPH) verwenden, die ein Steuer-Tag (ST) im Paket-Header zum Bestimmen enthält, dass die Paketdaten in dem nichtflüchtigen Speicher 208 gespeichert werden und in einigen Fällen den Cache-Speicher 207 umgehen sollen.
  • Mit dieser Funktion kann die Netzwerkvorrichtung 210 als Initiator der Schreibbefehle ein Zugriffsmodell mit Kenntnis darüber ausführen, wann Schreibdaten garantiert persistent sind. Um die Garantie zu vervollständigen, muss der Initiator zwei Vorgänge abschließen:
    1. 1. Schreiben von Daten in den Root-Komplex 218 mit, das eine Anzeige für persistenten Speicher enthält; und
    2. 2. Durchführen eines leerenden Lesevorgangs am Root-Komplex, wenn eine Garantie für zurückliegende Schreibabschlüsse erforderlich ist (d. h., um eine Garantie zu erhalten, dass Schreibtransaktionen in nichtflüchtigem Speicher durchgeführt wurden).
  • 3 ist eine schematische Darstellung eines PCIe-Headers 300 mit einem beispielhaften Steuer-Tag-Feld 302 gemäß Ausführungsformen der vorliegenden Offenbarung. Die PCIe-Spezifikationen legt eine erweiterte Funktion zum Bereitstellen von zusätzlichen Routing-Anzeigen für den Root-Komplex fest. Die Funktion TLP-Verarbeitungshinweis (TPH) enthält ein Steuer-Tag(ST)-Feld 302 zum Leiten von Schreibdaten-Routing (z. B. zu nichtflüchtigem Speicher). Das TH-Bit 304 des Headers ist auf 1 gesetzt, um anzuzeigen, dass der Header TPH-fähig ist. In 3 sind diese Felder innerhalb eines beispielhaften PCIe-Schreib-Headers hervorgehoben.
  • TLP-Verarbeitungshinweise können die Speicherlatenz durch Assoziieren eines Pakets mit einem bestimmten Prozessor-Cache verbessern (was möglicherweise eine gewisse Ähnlichkeit mit Prozessoraffinität hat). Das TH-Bit 304 des Headers 300 zeigt an, dass Hinweise vorhanden sind (z. B. zeigt ein auf 1 gesetztes TH-Bit 304 an, dass der Header TPH-fähig ist). Der Hinweis ist in den letzten 2 Bits des Adressfelds enthalten, die früher reserviert waren. Die 2 Hinweisbits zeigen häufigen Lese-/Schreibzugriff auf Daten an:
    • i. 00: bidirektional: sowohl von Host als auch von Vorrichtung
    • ii. 01: Anforderer: von Vorrichtung
    • iii. 10: Ziel (Vervollständiger): von Host
    • iv. 11: Ziel mit Priorität: von Host mit hoher zeitlicher Lokalität (unter größtmöglicher Verwendung des lokalen Caches)
  • Steuer-Tag(ST)-Bits 302 sind systemspezifische Werte, die eine Verarbeitungsressource anzeigen, die ausdrücklich das Ziel eines Anforderers ist. Bei verzögerten Schreibvorgängen wird das 8-Bit-Tag-Feld als ST-Feld 302 umgewandelt.
  • Die PCIe-Vorrichtung verwendet einen vereinbarten ST-Wert, den der Root-Komplex für Schreibvorgänge in persistenten Speicher decodieren wird. Dieser Wert kann ein vorbestimmter fester Wert sein, wie FFh, oder könnte ein programmierter Wert sein. Der Vorrichtungstreiber kann an der Plattform anfragen, ob die TPH-Funktion unterstützt wird und welcher ST-Wert für ein PM-Decodieren verwendet wird. Der Vorrichtungstreiber kann dann Schreibvorgänge in PM der E/A-Vorrichtung ermöglichen und den ST-Wert zur Verwendung mit einem beliebigen Schreibvorgang in persistenten Speicher programmieren.
  • In einigen Ausführungsformen kann ein erweitertes Steuer-Tag im Header verwendet werden (z. B. ein Steuer-Tag, das für ein 16-Bit-ST zusätzlich 8 Bits enthält). Der Header kann ein zusätzliches DWORD in einem TLP enthalten (z. B. ein TLP-Präfix), das 8 zusätzliche ST-Feld-Bits enthalten kann.
  • 4A ist eine schematische Darstellung 400 von Schreibzugriffen auf Speicher gemäß Ausführungsformen der vorliegenden Offenbarung. 4A veranschaulicht die Sequenz, der eine E/A-Vorrichtung 402 zum Schreiben in persistenten Speicher 408 und Empfangen einer Persistenzgarantie folgen würde. In dem in 4A gezeigten Beispiel kann die E/A-Vorrichtung 402 eine Serie von Schreibvorgängen 412-416 senden, die für den persistenten Speicher 408 gedacht ist, wie durch entsprechend gesetzte Header-Felder (TH=1 und ST=FF) angezeigt. Es ist zu beachten, dass Hinweise zum Zwischenspeichern und zu einer gelockerten Ordnung ebenfalls gesetzt werden können und nicht gezeigt sind.
  • Sobald eine Schreibtransaktion von dem PCI-Root-Port 404 empfangen wurde und im Root-Komplex 404 ist, werden die Header-Bits der Pakete vom Root-Port 404 decodiert und der Schreibvorgang wird zum Speicher-Controller (MC) 406 gesendet. Die Schreibvorgänge 412-416 können geordnet oder ungeordnet in dem nichtflüchtigen Speicher 408 platziert werden, ohne von der Offenbarung abzuweichen. Nach Ausgabe der Schreibvorgänge sendet die E/A-Vorrichtung 402 eine Leseanforderung, die ein leerendes Lesen durchführt. Der PCIe-Root-Port 404 verarbeitet den Lesevorgang 418 erst dann, wenn alle vorhergehenden Schreibvorgänge abgeschlossen sind. Da die Schreibvorgänge 412-416 in den NVM 408 vorgenommen wurden, sind die Schreibvorgänge 412-416 erst dann abgeschlossen, wenn sie persistent sind. Der Leseabschluss 420 wird vom Root-Port 404 zurückgegeben, nachdem die vorherigen Schreibvorgänge abgeschlossen sind, und die E/A-Vorrichtung 402 hat jetzt die Garantie, dass die vorherigen Schreibvorgänge jetzt persistent sind. Der Leseabschluss 420 kann als Garantie der Schreibabschlüsse in persistenten Speicher betrachtet werden.
  • 4B ist eine schematische Darstellung 450 von Schreibtransaktionen in Speicher gemäß Ausführungsformen der vorliegenden Offenbarung. In 4B können die am Root-Port 404 ankommenden Daten vor dem Speichern in dem nichtflüchtigen Speicher 408 zwischengespeichert werden. In Ausführungsformen können die Datenpaket-Header einen Zwischenspeicherhinweis enthalten. Der PCIe-Root-Komplex 404 kann den Zwischenspeicherhinweis verarbeiten und das Nutzdatenpaket vor dem Speichern in dem nichtflüchtigen Speicher 408 im Cache-Speicher 410 speichern.
  • Das leerende Lesen 418 kann vom PCIe-Root-Komplex 404 auf ähnliche Weise wie vorstehend beschrieben verarbeitet werden. Der Leseabschluss 424 kann vom Cache-Speicher 410 verarbeitet werden, nachdem der PCIe-Root-Komplex 404 Schreibabschlüsse 422 vom Speicher-Controller 406 erhalten hat. Der Leseabschluss 424 kann als Garantie der Schreibabschlüsse in persistenten Speicher betrachtet werden.
  • 5 ist ein Ablaufdiagramm eines Verfahrens 500 zum Schreiben in nichtflüchtigen Speicher gemäß Ausführungsformen der vorliegenden Offenbarung. Ein oder mehrere Datenpakete können an einem mit PCIe kompatiblen Port einer CPU von einem Initiator einer Datenpaket-Schreibanforderung über eine Datenverbindung empfangen werden, die mit einem PCIe-Protokoll (502) kompatibel ist (z. B. kann das Datenpaket über einen Netzwerkschnittstellen-Controller zu einem Port geleitet werden). Jedes Datenpaket kann eine Schreibanforderung für nichtflüchtigen Speicher enthalten. Der Port kann ein Root-Port sein. Der Port kann einen Header des Datenpakets decodieren, um das Vorhandensein eines im Daten-Header (504) gesetzten Hinweisbits zu erkennen. Beispielsweise kann der Port festlegen, dass das TH-Bit im Datenpaket gesetzt ist. Auf der Grundlage der Bestimmung, dass das TH-Bit gesetzt ist, kann der Port einen Steuer-Tag-Wert zum Leiten von Schreibzugriff zum nichtflüchtigen Speicher (506) bestimmen. Der Port kann einen Schreibzugriff auf nichtflüchtigen Speicher auf der Grundlage des Werts des Steuer-Tags im Datenpaket-Header (508) ausführen. In einigen Ausführungsformen kann der Port die Daten für die Schreibanforderung (516) optional zwischenspeichern. Der Port kann einen Schreibabschluss von einem Speicher-Controller für jeden der Schreibzugriffe empfangen, die vom Initiator (510) angefordert wurden. Der Port kann eine Leseanforderung vom Initiator empfangen, die der Port als leerendes Lesen (512) interpretieren kann. Der Port kann auf der Grundlage des Empfangens eines Schreibabschlusses für alle Schreibzugriffabschlüsse (514) einen Leseabschluss an den Initiator senden. Der Port kann das Senden einer Leseabschlussnachricht verzögern, bis jede Schreibanforderung des Initiators abgeschlossen ist.
  • Unter Bezugnahme auf 6 ist eine Ausführungsform einer Fabric veranschaulicht, die aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz von Komponenten miteinander verbinden. Das System 600 enthält einen Prozessor 605 und einen Systemspeicher 610, der mit einem Controller-Hub 615 gekoppelt ist. Der Prozessor 605 enthält ein beliebiges Verarbeitungselement, wie einen Mikroprozessor, einen Host-Prozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Der Prozessor 605 ist über einen Front-Side-Bus (FSB) 606 mit dem Controller-Hub 615 gekoppelt. In einer Ausführungsform ist der FSB 606 ein serielles Punkt-zu-Punkt-Interconnect, wie nachstehend beschrieben. In einer anderen Ausführungsform enthält die Verbindung 606 eine serielle differentielle Interconnect-Architektur, die mit verschiedenen Interconnect-Standards konform ist.
  • Der Systemspeicher 610 enthält eine beliebige Speichervorrichtung ein, wie einen Direktzugriffsspeicher (RAM), einen nichtflüchtigen (NV) Speicher oder einen anderen Speicher, auf den Vorrichtungen im System 600 zugreifen können. Der Systemspeicher 610 ist über die Speicherschnittstelle 616 mit dem Controller-Hub 615 gekoppelt. Zu Beispielen für eine Speicherschnittstelle gehören eine Double-Data Rate(DDR)-Speicherschnittstelle, eine Zweikanal-DDR-Speicherschnittstelle und eine dynamische RAM(DRAM)-Speicherschnittstelle.
  • In einer Ausführungsform ist der Controller-Hub 615 ein Root-Hub, Root-Komplex oder Root-Controller in einer Peripheral-Component-Interconnect-Express(PCIe oder PCIE)-Interconnect-Hierarchie. Der Controller 615 kann ein Registerbit zum Definieren einer Anzahl von doppelten ACK DLLP zum Senden nach erfolgreichem Empfang einer PTM-Anforderungsnachricht setzen. Das Registerbit kann dynamisch auf der Grundlage von Verbindungsqualität und/oder Verarbeitungsaufwand geändert werden. Beispielsweise kann die Anzahl an doppelten ACK DLLP bei einer Verbindung mit hoher Qualität, die durch eine geringe Inzidenz von ACK-DLLP-Beschädigungen gekennzeichnet ist (oder durch andere Qualitätseigenschaften gekennzeichnet ist), verringert sein. Bei schlechten Verbindungsqualitäten können die doppelten ACK DLLP erhöht sein.
  • Zu Beispielen für den Controller-Hub 615 gehören ein Chipsatz, ein Speicher-Controller-Hub (MCH), eine Northbridge, ein Interconnect-Controller-Hub (ICH), eine Southbridge und ein Root-Controller/Hub. Oft bezieht sich der Begriff Chipsatz auf zwei physikalisch getrennte Controller-Hubs, z. B. einen Speicher-Controller-Hub (MCH), der mit einem Interconnect-Controller-Hub (ICH) gekoppelt ist. Es ist zu beachten, dass gegenwärtige Systeme oft den im Prozessor 605 integrierten MCH enthalten, während der Controller 615 mit E/A-Vorrichtungen in einer ähnlichen Weise zu kommunizieren hat, wie dies nachfolgend beschrieben ist. In einigen Ausführungsformen wird das Peer-to-Peer-Routing optional durch den Root-Komplex 615 unterstützt.
  • Hier ist der Controller-Hub 615 über eine serielle Verbindung 619 mit einem Switch/Bridge 620 gekoppelt. Eingabe/Ausgabe-Module 617 und 621, die auch als Schnittstellen/Ports 617 und 621 bezeichnet werden können, enthalten/implementieren einen Schichtprotokollstapel, um Kommunikation zwischen dem Controller-Hub 615 und dem Switch 620 bereitzustellen. In einer Ausführungsform können mehrere Vorrichtungen mit dem Switch 620 gekoppelt sein.
  • Der Switch/Bridge 620 kann Pakete/Nachrichten von einer Vorrichtung 625 stromaufwärts, d. h. eine Hierarchie nach oben in Richtung von einem Root-Komplex, zum Controller-Hub 615 und stromabwärts, d. h. eine Hierarchie nach unten weg von einem Root-Controller, vom Prozessor 605 oder Systemspeicher 610 zur Vorrichtung 625 leiten. Der Switch 620 wird in einer Ausführungsform als eine logische Baugruppe von mehreren virtuellen PCI-zu-PCI-Bridge-Vorrichtungen bezeichnet. Die Vorrichtung 625 enthält eine beliebige interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, wie eine E/A-Vorrichtung, einen Netzwerkschnittstellen-Controller (NIC), eine Erweiterungskarte, einen Audioprozessor, einen Netzprozessor, eine Festplatte, eine Speichervorrichtung, ein CD/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine Universal Serial Bus(USB)-Vorrichtung, einen Scanner und andere Eingabe-/Ausgabevorrichtungen. Vorrichtungen können in PCIe-Kontexten als ein Endpunkt bezeichnet werden. Obwohl dies nicht speziell gezeigt ist, kann eine Vorrichtung 625 eine PCIe-zu-PCI/PCI-X-Bridge enthalten, um Legacy- oder andere Versionen von PCI-Vorrichtungen zu unterstützen. Endpunkt-Vorrichtungen sind bei PCIe häufig als Legacy-, PCIe- oder Root-Komplex-integrierte Endpunkte eingestuft.
  • Außerdem ist ein Grafikbeschleuniger 630 über eine serielle Verbindung 632 mit dem Controller-Hub 615 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 630 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch 620 und dementsprechend die E/A-Vorrichtung 625 wird dann mit dem ICH gekoppelt. E/O-Module 631 und 618 haben auch einen Schichtprotokollstapel zu implementieren, um zwischen dem Grafikbeschleuniger 630 und dem Controller-Hub 615 zu kommunizieren. Ähnlich der obigen MCH-Erörterung kann ein Grafik-Controller oder der Grafikbeschleuniger 630 selbst im Prozessor 605 integriert sein.
  • Mit Bezug auf 7 wird eine Ausführungsform eines Schichtprotokollstapels veranschaulicht. Der Schichtprotokollstapel 700 enthält eine beliebige Form eines Kommunikationsschichtstapels, wie einen Quick-Path-Interconnect(QPI)-Stapel, einen PCIe-Stapel, einen High-Performance-Computing-Interconnect(HPI)-Stapel der nächsten Generation oder einen anderen Schichtstapel. Die unmittelbar nachstehende Erörterung in Bezug auf 6-11 betrifft zwar einen PCIe-Stapel, dieselben Konzepte können aber auch für andere Interconnect-Stapel gelten. In einer Ausführungsform ist einer Protokollstapel 700 ein PCIe-Protokollstapel, der eine Transaktionsschicht 705, eine Verbindungsschicht 710 und eine physikalische Schicht 720 enthält. Eine Schnittstelle, wie die Schnittstellen 617, 618, 621, 622, 626 und 631 in 6, können als Kommunikationsprotokollstapel 700 repräsentiert werden. Die Repräsentation als ein Kommunikationsprotokollstapel kann auch als ein Modul oder eine Schnittstelle bezeichnet werden, die einen Protokollstapel implementiert/enthält.
  • PCI Express verwendet für die Kommunikation von Informationen zwischen Komponenten Pakete. Pakete werden in der Transaktionsschicht 705 und/oder der Datenverbindungsschicht 710 ausgebildet werden, um die Informationen von der sendenden Komponente zur empfangenden Komponente zu übertragen. Wenn die gesendeten Pakete durch die anderen Schichten laufen, werden sie um zusätzliche Informationen erweitert, die zum Handhaben der Pakete in diesen Schichten notwendig sind. Auf der Empfangsseite findet der umgekehrte Prozess statt und Pakete werden von ihrer Repräsentation der physikalischen Schicht 720 in die Repräsentation der Datenverbindungsschicht 710 und schließlich (für Transaktionsschichtpakete) in die Form, die von der Transaktionsschicht 705 der Empfangsvorrichtung verarbeitet werden kann, umgewandelt.
  • Transaktionsschicht
  • In einer Ausführungsform hat die Transaktionsschicht 705 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Interconnect-Architektur bereitzustellen, wie der Datenverbindungsschicht 710 und der physikalischen Schicht 720. In dieser Hinsicht ist eine primäre Zuständigkeit der Transaktionsschicht 705 die Assemblierung und Disassemblierung von Paketen (d. h. Transaktionsschichtpaketen oder TLP). Die Transaktionsschicht 705 verwaltet typischerweise die kreditbasierte Flusssteuerung für TLP. PCIe implementiert geteilte Transaktionen, d. h. Transaktionen mit einer Anforderung und Antwort, die durch zeitlich geteilt sind, wodurch ermöglicht wird, dass eine Verbindung anderen Verkehr überträgt, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Zusätzlich verwendet PCIe eine kreditbasierte Flusssteuerung. Bei diesem Schema bietet eine Vorrichtung einen anfänglichen Kreditbetrag für jeden der Empfangspuffer in der Transaktionsschicht 705 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie ein Controller-Hub 115 in 1, zählt die Anzahl an Krediten, die von jedem TLP verbraucht werden. Eine Transaktion kann gesendet werden, falls die Transaktion ein Kreditlimit nicht überschreitet. Beim Empfang einer Antwort wird ein Kreditbetrag wiederhergestellt. Ein Vorteil eines Kreditschemas ist, dass eine Latenz von Kreditrückführungen die Leistung nicht beeinträchtigt, vorausgesetzt, dass das Kreditlimit nicht erreicht wird.
  • In einer Ausführungsform enthalten vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherraumtransaktionen enthalten eine oder mehrere von Leseanforderungen und Schreibanforderungen, um Daten zu/aus einem speicherabgebildeten Ort zu senden. In einer Ausführungsform sind Speicherraumtransaktionen fähig, zwei verschiedene Adressformate zu verwenden, z. B. ein kurzes Adressformat, wie eine 32-Bit-Adresse, oder ein langes Adressformat, wie eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf einen Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen für den Konfigurationsraum enthalten Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) werden definiert, um eine Inband-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher assembliert die Transaktionsschicht 705 in einer Ausführungsform Paket-Header/Nutzinformationen 706. Das Format für aktuelle Paket-Header/Nutzinformationen ist in der PCIe-Spezifikation auf der PCIe-Spezifikationen-Website zu finden.
  • Mit kurzem Bezug auf 8 wird eine Ausführungsform eines PCIe-Transaktionsdeskriptors veranschaulicht. In einer Ausführungsform ist ein Transaktionsdeskriptor 800 ein Mechanismus zum Übertragen von Transaktionsinformationen. In dieser Hinsicht unterstützt der Transaktionsdeskriptor 800 die Identifikation von Transaktionen in einem System. Zu anderen potentiellen Verwendungen gehören Verfolgungsmodifikationen von Standardtransaktionsordnungen und die Assoziation einer Transaktion mit Kanälen.
  • Der Transaktionsdeskriptor 800 enthält ein globales Identifikatorfeld 802, ein Attributfeld 804 und ein Kanalidentifikatorfeld 806. Im veranschaulichten Beispiel ist das globale Identifikatorfeld 802 so dargestellt, dass es ein lokales Transaktionsidentifikatorfeld 808 und ein Quellenidentifikatorfeld 810 umfasst. In einer Ausführungsform ist der globale Transaktionsidentifikator 802 für alle anstehenden Anforderungen einzigartig.
  • Gemäß einer Implementierung ist das lokale Transaktionsidentifikatorfeld 808 ein Feld, das von einem anfordernden Agenten generiert wird, und es ist für alle anstehenden Anforderungen einzigartig, die für diesen anfordernden Agenten eine Erfüllung erfordern. Ferner identifiziert in diesem Beispiel der Quellenidentifikator 810 eindeutig den Anfordereragenten innerhalb einer PCIe-Hierarchie. Dementsprechend stellt das lokale Transaktionsidentifikatorfeld 808 zusammen mit dem Quellen-ID 810 eine globale Identifikation einer Transaktion innerhalb einer Hierarchiedomäne bereit.
  • Ein Attributfeld 804 spezifiziert Charakteristiken und Beziehungen der Transaktion. In dieser Hinsicht wird das Attributfeld 804 potentiell verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der Standardhandhabung von Transaktionen gestatten. In einer Ausführungsform enthält das Attributfeld 804 ein Prioritätsfeld 812, ein reserviertes Feld 814, ein Ordnungsfeld 816 und ein „No-Snoop“-Feld 818. Hier kann das Prioritätsunterfeld 812 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuordnen. Das reservierte Attributfeld 814 ist für die Zukunft oder für eine verkäuferdefinierte Verwendung reserviert. Unter Verwendung des reservierten Attributfelds können mögliche Verwendungsmodelle, die Prioritäts- oder Sicherheitsattribute verwenden, implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 816 verwendet, um optionale, den Typ der Ordnung übermittelnde Informationen liefern, die Standardordnungsregeln modifizieren können. Gemäß einer beispielhaften Implementierung bezeichnet ein Ordnungsattribut „0“, dass Standardordnungsregeln anzuwenden sind, während ein Ordnungsattribut „1“ eine gelockerte Ordnung bezeichnet, wobei Schreibvorgänge andere Schreibvorgänge in der gleichen Richtung passieren können und Leseabschlüsse Schreibvorgänge in der gleichen Richtung passieren können. Das „Snoop“-Attributfeld 818 wird zur Bestimmung genutzt, ob Transaktionen „durchsucht“ (snooped) werden. Wie gezeigt, identifiziert das Kanal-ID-Feld 806 einen Kanal, mit dem eine Transaktion assoziiert ist.
  • Verbindungsschicht
  • Unter erneuter Bezugnahme auf 7 fungiert die Verbindungsschicht 710, auch als Datenverbindungsschicht 710 bezeichnet, als Zwischenstufe zwischen der Transaktionsschicht 705 und der physikalischen Schicht 720. In einer Ausführungsform ist eine Aufgabe der Datenverbindungsschicht 710, einen zuverlässigen Mechanismus zum Austausch von Transaktionsschichtpaketen (TLP) zwischen zwei Komponenten auf einer Verbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 710 akzeptiert von der Transaktionsschicht 705 assemblierte TLP, wendet den Paketsequenzidentifikator 711, d. h. eine Identifikationsnummer oder Paketnummer, an, berechnet und wendet einen Fehlerdetektionscode, d. h. CRC 712, an und schickt die modifizierten TLP an die physikalische Schicht 720 zur Übertragung über eine physikalische Einrichtung an eine externe Vorrichtung.
  • Physikalische Schicht
  • In einer Ausführungsform enthält die physikalische Schicht 720 einen logischen Unterblock 721 und einen elektrischen Unterblock 722, um ein Paket physikalisch an eine externe Vorrichtung zu senden. Hier ist der logische Unterblock 721 für die „digitalen“ Funktionen der physikalischen Schicht 721 zuständig. In dieser Hinsicht enthält der logische Unterblock einen Sendeabschnitt zum Vorbereiten ausgehender Informationen für die Sendung von dem physikalischen Unterblock 722 und einen Empfangsabschnitt zum Identifizieren und Vorbereiten empfangener Informationen, bevor sie an die Verbindungsschicht 710 weitergeleitet werden.
  • Der physikalische Block 722 enthält einen Sender und einen Empfänger. Der Sender wird vom logischen Unterblock 721 mit Symbolen versorgt, die der Sender serialisiert und an eine externe Vorrichtung weitersendet. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung versorgt und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und dem logischen Unterblock 721 zugeführt. In einer Ausführungsform wird ein 8b/10b-Sendecode eingesetzt, bei dem Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Rahmen 723 einzurahmen. Zusätzlich stellt der Empfänger in einem Beispiel auch einen Symboltakt bereit, der aus dem eingehenden seriellen Strom gewonnen wird.
  • Obwohl die Transaktionsschicht 705, die Verbindungsschicht 710 und die physikalische Schicht 720, wie oben angegeben, unter Bezugnahme auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erörtert werden, ist ein Schichtprotokollstapel nicht darauf beschränkt. Tatsächlich kann ein beliebiges geschichtetes Protokoll enthalten/implementiert sein. Als Beispiel enthält ein Port/eine Schnittstelle, der bzw. die als Schichtprotokoll repräsentiert ist: (1) eine erste Schicht zum Assemblieren von Paketen, d. h. eine Transaktionsschicht, eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht, und eine dritte Schicht zum Senden der Pakete, d. h. eine physikalische Schicht. Als spezifisches Beispiel wird ein Common Standard Interface(CSI)-Schichtprotokoll genutzt.
  • Als Nächstes wird unter Bezugnahme auf 9 eine Ausführungsform für eine serielle PCIe-Punkt-zu-Punkt-Fabric veranschaulicht. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindung veranschaulicht wird, ist eine serielle Punkt-zu-Punkt-Verbindung nicht darauf beschränkt, da sie einen beliebigen Übertragungspfad zum Senden serieller Daten enthält. In der gezeigten Ausführungsform enthält eine PCIe-Basisverbindung zwei differentiell angesteuerte Niederspannungs-Signalpaare: ein Sendepaar 906/911 und ein Empfangspaar 912/907. Dementsprechend enthält eine Vorrichtung 905 Sendelogik 906 zum Senden von Daten an eine Vorrichtung 910 und Empfangslogik 907 zum Empfangen von Daten von der Vorrichtung 910. Mit anderen Worten sind zwei sendende Pfade, d. h. Pfade 916 und 917, und zwei empfangende Pfade, d. h. Pfade 918 und 919, in einer PCIe-Verbindung enthalten.
  • Ein Übertragungspfad bezieht sich auf einen beliebigen Pfad zum Senden von Daten, wie eine Sendeleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, wie der Vorrichtung 905 und der Vorrichtung 910, wird als Verbindung bezeichnet, wie eine Verbindung 415. Eine Verbindung kann eine Bahn unterstützen - wobei jede Bahn einen Satz differentieller Signalpaare repräsentiert (ein Paar zum Senden, ein Paar zum Empfangen). Um die Bandbreite zu skalieren, kann eine Datenverbindung mehrere Bahnen vereinen, die mit xN bezeichnet sind, wobei N eine beliebige unterstützte Verbindungsbreite ist, wie 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein differentielles Paar bezieht sich auf zwei Sendepfade, wie die Leitungen 416 und 417, zum Senden von differentiellen Signalen. Als Beispiel, wenn die Leitung 416 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h. eine ansteigende Flanke, steuert die Leitung 417 von einem hohen Logikpegel auf einen niedrigen Logikpegel, d. h. eine abfallende Flanke. Differentielle Signale zeigen potentiell bessere elektrische Charakteristiken, wie bessere Signalintegrität, d. h. Querkopplung, Spannungs-Überschwingen/-Unterschwingen, Nachschwingen usw. Dies ermöglicht ein besseres Zeitfenster, was schnellere Sendefrequenzen ermöglicht.
  • Es ist zu beachten, dass die oben beschriebenen Vorrichtungen, Verfahren und Systeme in einer beliebigen elektronischen Vorrichtung oder einem beliebigen solchen System, wie oben erwähnt, implementiert werden können. Die nachstehenden Figuren stellen als spezifische Veranschaulichungen beispielhafte Systeme bereit, um die Erfindung wie hier beschrieben zu nutzen. Bei der nachstehenden ausführlicheren Beschreibung der Systeme wird eine Reihe von unterschiedlichen Verbindungen aus der Erörterung oben offenbart, beschrieben und wiederaufgenommen. Und wie ohne Weiteres offensichtlich ist, können die vorstehend beschriebenen Fortschritte für eine beliebige dieser Verbindungen, Fabrics oder Architekturen angewandt werden.
  • In 10 veranschaulicht ein Blockschaltbild eines beispielhaften Computersystems, das mit einem Prozessor gebildet ist, der Ausführungseinheiten zum Ausführen eines Befehls enthält, wobei eine oder mehrere der Interconnect eine oder mehrere Merkmale implementieren, gemäß einer Ausführungsform der vorliegenden Erfindung. Das System 1000 enthält eine Komponente, wie einen Prozessor 1002, zum Nutzen von Ausführungseinheiten, die Logik zum Durchführen von Algorithmen für Prozessdaten gemäß der vorliegenden Erfindung enthalten, wie in der hier beschriebenen Ausführungsform. Das System 1000 ist für Verarbeitungssysteme repräsentativ, die auf dem Mikroprozessor PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ und/oder StrongARM™ basieren, die von Intel Corporation aus Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PC, die andere Mikroprozessoren aufweisen, Engineering-Workstations, Set-Top-Boxen und dergleichen) benutzt werden können. In einer Ausführungsform kann das Mustersystem 1000 eine Version des Betriebssystems WINDOWS™ ausführen, das von Microsoft Corporation aus Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (beispielsweise UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen benutzt werden können. Somit sind die Ausführungsformen der vorliegenden Erfindung nicht auf eine bestimmte Kombination von Hardwareschaltung und Software beschränkt.
  • Ausführungsformen sind nicht auf Computersysteme beschränkt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Vorrichtungen, wie handgehaltene Vorrichtungen und eingebettete Anwendungen, verwendet werden. Zu einigen Beispielen für handgehaltene Vorrichtungen gehören Mobiltelefone, Internetprotokollvorrichtungen, digitale Kameras, persönlichen digitalen Assistenten (PDA) und handgehaltene PC. Zu eingebetteten Anwendungen können ein Mikrocontroller, ein digitaler Signalprozessor (DSP), ein System-auf-Chip, Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, Weitverkehrsnetzwerk(WAN)-Switches oder ein beliebiges anderes System, das einen oder mehrere Befehle gemäß mindestens einer Ausführungsform durchführen kann, gehören.
  • In der veranschaulichten Ausführungsform enthält der Prozessor 1002 eine oder mehrere Ausführungseinheiten 1008 zum Implementieren eines Algorithmus, um mindestens einen Befehl auszuführen. Eine Ausführungsform kann im Zusammenhang mit einem Einprozessor-Desktop- oder -Serversystem beschrieben werden, alternative Ausführungsformen können jedoch in ein Mehrprozessorsystem eingebunden werden. Das System 1000 ist ein Beispiel einer Hub-Architektur des Systems. Das Computersystem 1000 enthält einen Prozessor 1002 zum Verarbeiten von Datensignalen. Der Prozessor 1002 enthält als ein veranschaulichendes Beispiel einen Mikroprozessor mit komplexem Befehlssatz (CISC), einen Mikroprozessor mit reduziertem Befehlssatz (RISC), einen Mikroprozessor mit sehr langem Befehlswort (VLIW), ein Prozessor, der eine Kombination von Befehlssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie einen Digitalsignalprozessor. Der Prozessor 1002 ist mit einem Prozessorbus 1010 gekoppelt, der Datensignale zwischen dem Prozessor 1002 und anderen Komponenten im System 1000 sendet. Die Elemente des Systems 1000 (z. B. ein Grafikbeschleuniger 1012, ein Speicher-Controller-Hub 1016, ein Speicher 1020, ein E/A-Controller-Hub 1024, ein drahtloser Transceiver 1026, ein Flash-BIOS 1028, ein Netzwerk-Controller 1034, ein Audio-Controller 1036, ein serieller Erweiterungsport 1038, ein E/A-Controller 1040 usw.) führen ihre herkömmlichen Funktionen aus, die dem Fachmann wohlbekannt sind.
  • In einer Ausführungsform enthält der Prozessor 1002 einen internen Level-1(L1)-Cache-Speicher 1004. Abhängig von der Architektur kann der Prozessor 1002 einen einzelnen internen Cache oder mehrere Ebenen von internem Cache aufweisen. Andere Ausführungsformen können in Abhängigkeit von der jeweiligen Implementierung und dem Bedarf eine Kombination von internen und externen Cache-Speichern enthalten. Eine Registerdatei 1006 hat verschiedene Datentypen in verschiedenen Registern zu speichern, die ganzzahlige Register, Gleitkommaregister, Vektorregister, Bankregister, Schattenregister, Checkpoint-Register, Statusregister und Befehlszeigerregister umfassen.
  • Die Ausführungseinheit 1008 mit Logik zum Durchführen der ganzzahligen und Gleitkommaoperationen residiert auch im Prozessor 1002. In einer Ausführungsform umfasst der Prozessor 1002 einen Mikrocode(µcode)-ROM, um einen Mikrocode zu speichern, der beim Ausführen Algorithmen für bestimmte Makroinstruktionen durchzuführen oder komplexe Szenarien zu handhaben hat. Hier ist der Mikrocode potentiell aktualisierbar, um Logikfehler/- fehlerbehebungen für den Prozessor 1002 zu handhaben. In einer Ausführungsform umfasst die Ausführungseinheit 1008 Logik, um einen gepackten Befehlssatz 1009 zu handhaben. Durch Einschließen des gepackten Befehlssatzes 1009 in den Befehlssatz eines Universalprozessors 1002 zusammen mit assoziierten Schaltungen, um die Befehle auszuführen, können die von vielen Multimedia-Anwendungen verwendeten Operationen unter Verwendung gepackter Daten in einem Universal-Prozessor 1002 durchgeführt werden. So können viele Multimedia-Anwendungen durch die Verwendung der vollen Breite eines Datenbusses eines Prozessors zur Vornahme von Operationen mit gepackten Daten beschleunigt und effizienter ausgeführt werden. Dadurch kann potentiell die Notwendigkeit entfallen, kleinere Einheiten von Daten quer über den Datenbus des Prozessors transferieren zu müssen, um eine oder mehrere Operationen mit jeweils einem Datenelement nacheinander durchzuführen.
  • Alternative Ausführungsformen einer Ausführungseinheit 1008 können auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSP und anderen Typen von Logikschaltungen verwendet werden. Das System 1000 enthält einen Speicher 1020. Der Speicher 1020 enthält eine dynamische Direktzugriffsspeicher(DRAM)-Vorrichtung, eine statische Direktzugriffsspeicher(SRAM)-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung. Der Speicher 1020 speichert Befehle und/oder Daten, welche durch Datensignale repräsentiert werden, die vom Prozessor 1002 auszuführen sind.
  • Es ist zu beachten, dass ein beliebiges der vorstehend genannten Merkmale oder Aspekte der Erfindung in einer oder mehreren der in 10 veranschaulichten Interconnects genutzt werden kann. Beispielsweise implementiert ein nicht gezeigtes On-Die-Interconnect (ODI) zum Koppeln von internen Einheiten des Prozessors 1002 einen oder mehrere Aspekte der oben beschriebenen Erfindung. Oder die Erfindung ist mit einem Prozessorbus 1010 (z. B. Intel Quick Path Interconnect (QPI) oder einem anderen bekannten Hochleistungsrechner-Interconnect), einem Speicherpfad mit hoher Bandbreite 1018 zum Speicher 1020, einer Punkt-zu-Punkt-Verbindung zum Grafikbeschleuniger 1012 (z. B. einer mit Peripheral Component Interconnect express (PCIe) kompatiblen Fabric), einem Controller-Hub-Interconnect 1022 und einem E/A- oder anderen Interconnect (z. B. USB, PCI, PCIe) zum Koppeln der anderen veranschaulichten Komponenten assoziiert. Zu einigen Beispielen derartiger Komponenten gehören der Audio-Controller 1036, der Firmware-Hub (Flash-BIOS) 1028, der drahtlose Transceiver 1026, der Datenspeicher 1024, der Legacy-I/O-Controller 1010 mit Benutzereingabe- und Tastaturschnittstellen 1042, ein serieller Erweiterungsport 1038, wie ein Universal Serial Bus (USB), und ein Netzwerk-Controller 1034. Die Datenspeichervorrichtung 1024 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • Jetzt bezugnehmend auf 11 ist ein Blockschaltbild eines Systems 1100 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 11 gezeigt, ist das Mehrprozessorsystem 1100 ein Punkt-zu-Punkt-Interconnect-System und enthält einen ersten Prozessor 1170 und einen zweiten Prozessor 1180, die über ein Punkt-zu-Punkt-Interconnect 1150 gekoppelt sind. Jeder der Prozessoren 1170 und 1180 kann eine Version eines Prozessors sein. In einer Ausführungsform sind 1152 und 1154 Teil einer seriellen, kohärenten Punkt-zu-Punkt-Interconnect-Fabric, wie Intels Quick-Path-Interconnect(QPI)-Architektur. Im Ergebnis kann die Erfindung in der QPI-Architektur implementiert werden.
  • Obwohl nur mit zwei Prozessoren 1170, 1180 gezeigt, ist es offensichtlich, dass der Umfang der vorliegenden Erfindung nicht darauf beschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Die Prozessoren 1170 und 1180 sind so gezeigt, dass sie integrierte Speichersteuereinheiten 1172 bzw. 1182 enthalten. Der Prozessor 1170 enthält auch als Teil seiner Bus-Controller-Einheiten Punkt-zu-Punkt(P-P)-Schnittstellen 1176 und 1178; ähnlich enthält der zweite Prozessor 1180 P-P-Schnittstellen 1186 und 1188. Die Prozessoren 1170, 1180 können Informationen über die Punkt-zu-Punkt(P-P)-Schnittstelle 1150 unter Verwendung von P-P-Schnittstellenschaltkreisen 1178, 1188 austauschen. Wie in 11 gezeigt, koppeln IMC 1172 und 1182 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1132 und einem Speicher 1134, die Abschnitte eines Hauptspeichers sein können, der lokal an die jeweiligen Prozessoren angeschlossen ist.
  • Die Prozessoren 1170, 1180 jeweils Informationen über individuelle P-P-Schnittstellen 1152, 1154 mit einem Chipsatz 1190 unter Verwendung von Punkt-zu-Punkt-Schnittstelle-Schaltkreisen 1176, 1194, 1186, 1198 austauschen. Der Chipsatz 1190 tauscht auch Informationen mit einem Hochleistungs-Grafikschaltkreis 1138 über einen Schnittstellenschaltkreis 1192 entlang eines Hochleistungs-Grafik-Interconnects 1139 aus.
  • Ein gemeinsam genutzter Cache (nicht gezeigt) kann in jedem Prozessor oder außerhalb beider Prozessoren enthalten sein, jedoch verbunden mit den Prozessoren über ein P-P-Interconnect, sodass lokale Cache-Informationen eines oder beider der Prozessoren im gemeinsam genutzten Cache gespeichert werden können, falls ein Prozessor in einen Modus mit niedriger Energie versetzt wird.
  • Der Chipsatz 1190 kann mit einem ersten Bus 1116 über eine Schnittstelle 1196 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1116 ein peripherer Komponentenverbindungsbus (PCI) oder ein Bus, wie etwa ein PCI-Express-Bus oder ein anderer E/A-Verbindungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Erfindung nicht darauf beschränkt ist.
  • Wie in 11 gezeigt, sind verschiedene E/A-Vorrichtungen 1114 zusammen mit einer Bus-Bridge 1118, die den ersten Bus 1116 mit einem zweiten Bus 1120 koppelt, mit dem ersten Bus 1116 gekoppelt. In einer Ausführungsform umfasst der zweite Bus 1120 einen Low-Pin-Count(LPC)-Bus. Verschiedene Vorrichtungen sind mit dem zweiten Bus 1120 gekoppelt, zu denen in einer Ausführungsform beispielsweise eine Tastatur und/oder Maus 1122, Kommunikationsvorrichtungen 1127 und eine Speichereinheit 1128, wie ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, gehören, die häufig Befehle/Code und Daten 1130 enthalten. Ferner ist ein Audio-E/A 1124 gezeigt, der mit dem zweiten Bus 1120 gekoppelt ist. Es ist zu beachten, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Zwischenverbindungsarchitekturen variieren. Beispielsweise kann ein System anstelle der Punkt-zu-Punkt-Architektur von 11 einen Multi-Drop-Bus oder eine andere derartige Architektur implementieren.
  • In verschiedenen Ausführungsformen ist der Massenspeicher des Systems durch ein SSD allein oder als Platte, optisches oder anderes Laufwerk mit einem SSD-Cache implementiert. In einigen Ausführungsformen ist der Massenspeicher als SSD oder HDD zusammen mit einem Restore(RST)-Cachemodul implementiert. In verschiedenen Implementierungen bietet das HDD eine Speicherung zwischen 320 GB und 4 Terabytes (TB) und darüber, während der RST-Cache mit einem SSD mit einer Kapazität von 24 GB bis 256 GB implementiert ist. Es ist zu beachten, dass ein solcher SSD-Cache als Single Level-Cache(SLC)- oder Multi-Level-Cache(MLC)-Option konfiguriert sein kann, um ein geeignetes Niveau an Ansprechverhalten vorzusehen. In einer Option mit nur SSD kann das Modul an verschiedenen Orten aufgenommen sein, wie in einem mSATA- oder NGFF-Steckplatz. Als Beispiel hat ein SSD eine Kapazität im Bereich von 120 GB bis 1 TB.
  • Das Anzeigefeld kann in mehreren Modi arbeiten. In einem ersten Modus kann das Anzeigefeld in einem transparenten Zustand eingerichtet sein, in dem das Anzeigefeld für sichtbares Licht transparent ist. In verschiedenen Ausführungsformen kann der Großteil des Anzeigefelds eine Anzeige sein, ausgenommen ein Rahmen rund um die Peripherie. Wenn das System in einem Notebook-Modus betrieben wird und das Anzeigefeld in einem transparenten Zustand betrieben wird, kann ein Benutzer Informationen sehen, die auf dem Anzeigefeld präsentiert werden, während er auch Objekte hinter der Anzeige sehen kann. Zusätzlich können auf dem Anzeigefeld angezeigte Informationen von einem Benutzer gesehen werden, der hinter der Anzeige positioniert ist. Oder der Betriebszustand des Anzeigefelds kann ein opaker Zustand sein, in dem sichtbares Licht nicht durch das Anzeigefeld gesendet wird.
  • In einem Tablet-Modus ist das System zusammengefaltet, sodass die hintere Anzeigefläche des Anzeigefelds in einer Position ruht, in der sie nach außen zu einem Benutzer zeigt, wenn die Bodenfläche des Basisfelds auf einer Fläche ruht oder vom Benutzer gehalten wird. Im Tablet-Betriebsmodus nimmt die hintere Anzeigefläche die Rolle einer Anzeige und Benutzerschnittstelle wahr, da diese Fläche eine Berührungsbildschirmfunktionalität aufweisen kann und andere bekannte Funktionen einer herkömmlichen Berührungsbildschirmvorrichtung, wie einer Tablet-Vorrichtung, durchführen kann. Zu diesem Zweck kann das Anzeigefeld eine Transparenzanpassungsschicht enthalten, die zwischen einer Berührungsbildschirmschicht und einer vorderen Anzeigefläche angeordnet ist. In einigen Ausführungsformen kann die Transparenzanpassungsschicht eine elektrochromatische Schicht (EC), eine LCD-Schicht oder eine Kombination einer EC- und LCD-Schicht sein.
  • In verschiedenen Ausführungsformen kann die Anzeige verschiedene Größen aufweisen, z. B. einen 11,6''- oder einen 13,3''-Bildschirm, und kann ein 16:9 Seitenverhältnis und wenigstens 300 Nits Helligkeit aufweisen. Die Anzeige kann auch eine Full-High-Definition(HD)-Auflösung (wenigstens 1920x1080 p) aufweisen, mit einem eingebetteten Anzeigeport (eDP) kompatibel sein und ein Energiesparfeld mit Panel Self Refresh sein.
  • Hinsichtlich der Berühungsbildschirmfähigkeiten kann das System ein Anzeige-Multitouch-Feld vorsehen, das eine Multitouch-Kapazität aufweist und wenigstens 5-Finger-fähig ist. Und in einigen Ausführungsformen kann die Anzeige 10-Finger-fähig sein. In einer Ausführungsform ist der Berühungsbildschirm innerhalb eines schadens- und kratzbeständigen Glases und einer Beschichtung aufgenommen (z. B. Gorilla Glass™ oder Gorilla Glass 2™) für niedrige Reibung, um ein „Einbrennen eines Fingers“ und „Überspringen eines Fingers“ zu reduzieren. Um ein verstärktes Berührungsgefühl und Ansprechverhalten bereitzustellen, hat das Berührungsfeld in einigen Implementierungen eine Multitouch-Funktionalität, wie weniger als 2 Rahmen (30 Hz) pro statische Ansicht während des Ziehens mit dem 2-Finger-Zoom, und eine Einzelberührungsfunktionalität von weniger als 1 cm pro Rahmen (30 Hz) mit 200 ms (Verzögerung Finger zu Zeiger). In einigen Implementierungen unterstützt die Anzeige ein Rand-zu-Rand-Glas mit einem minimalen Bildschirmrahmen, der auch mit der Feldfläche bündig ist, und begrenzter E/A-Interferenz bei der Verwendung von Multitouch.
  • Unter Verwendung der verschiedenen Inertial- und Umgebungssensoren, die in einer Plattform vorliegen, können viele verschiedene Anwendungsfälle realisiert werden. Diese Anwendungsfälle ermöglichen hochentwickelte Rechenoperationen, einschließlich Perceptual Computing, und gestatten auch Verbesserungen hinsichtlich der Energieverwaltung/Batterielebensdauer, Sicherheit und des Systemansprechverhaltens.
  • Beispielsweise werden in Bezug auf Themen der Energieverwaltung/Batterielebensdauer, wenigstens teilweise auf der Basis von Informationen vom Umgebungslichtsensor, die Umgebungslichtbedingungen an einem Ort der Plattform bestimmt und die Intensität der Anzeige wird dementsprechend gesteuert. So wird beim Betrieb der Anzeige verbrauchter Strom unter bestimmten Lichtbedingungen reduziert.
  • Hinsichtlich Sicherheitsoperationen kann auf der Basis von Kontextinformationen, die von den Sensoren erhalten werden können, wie Ortsinformationen, bestimmt werden, ob ein Benutzer berechtigt ist, auf bestimmte sichere Dokumente zuzugreifen. Beispielsweise kann einem Benutzer gestattet werden, auf ein derartiges Dokument an einem Arbeitsplatz oder zu Hause zuzugreifen. Der Benutzer wird jedoch daran gehindert, auf solche Dokumente zuzugreifen, wenn die Plattform an einem öffentlichen Ort vorliegt. Diese Bestimmung basiert in einer Ausführungsform auf Ortsinformationen, die z. B. über einen GPS-Sensor oder eine Kameraerkennung von landschaftlichen Merkmalen bestimmt werden. Andere Sicherheitsoperationen können das Vorsehen einer Paarung von Vorrichtungen innerhalb eines engen Bereichs zueinander umfassen, z. B. eine tragbare Plattform, wie hier beschrieben, und ein Desktop-Computer eines Benutzers, Mobiltelefon, usw. Eine bestimmte gemeinsame Nutzung wird in einigen Implementierungen über eine Nahfeldkommunikation realisiert, wenn diese Vorrichtungen so gepaart sind. Wenn die Vorrichtungen jedoch einen bestimmten Bereich überschreiten, kann eine solche gemeinsame Nutzung gesperrt werden. Wenn eine Plattform und ein Smartphone gepaart werden, wie hier beschrieben, kann ferner ein Alarm so konfiguriert werden, dass er ausgelöst wird, wenn sich die Vorrichtungen um mehr als einen vorherbestimmten Abstand voneinander an einem öffentlichen Ort bewegen. Wenn diese gepaarten Vorrichtungen im Gegensatz dazu an einem sicheren Ort sind, z. B. einem Arbeitsplatz oder zu Hause, können die Vorrichtungen diese vorherbestimmte Grenze überschreiten, ohne dass ein solcher Alarm ausgelöst wird.
  • Auch das Ansprechverhalten kann unter Verwendung der Sensorinformationen verbessert werden. Selbst wenn eine Plattform beispielsweise in einem Energiesparzustand ist, kann es weiterhin ermöglicht werden, dass die Sensoren bei einer relativ niedrigen Frequenz laufen. Demgemäß werden jegliche Änderungen eines Orts der Plattform bestimmt, z. B. wie durch Inertialsensoren, GPS-Sensoren, usw. Wenn keine solchen Änderungen registriert wurden, tritt eine schnellere Verbindung mit einem vorherigen drahtlosen Knoten, wie einem Wi-Fi™-Zugriffspunkt oder einem ähnlichen drahtlosen Enabler auf, da in diesem Fall keine Notwendigkeit besteht, nach verfügbaren Drahtlosnetzressourcen zu scannen. So wird ein höheres Niveau eines Ansprechverhaltens beim Aufwachen aus einem Energiesparzustand erzielt.
  • Es ist offensichtlich, dass viele andere Anwendungsfälle unter Verwendung von Sensorinformationen ermöglicht werden können, die über die integrierten Sensoren innerhalb einer Plattform erhalten werden können, wie hier beschrieben, und die vorstehenden Beispiele sind nur zu Veranschaulichungszwecken genannt. Unter Verwendung eines hier beschriebenen Systems kann ein Perceptual Computing System das Hinzufügen alternativer Eingabemodalitäten, einschließlich einer Gestenerkennung, gestatten und dem System ermöglichen, Benutzeroperationen und -absichten zu erfassen.
  • In einigen Ausführungsformen kann ein oder können mehrere Infrarot- oder andere Wärmeerfassungselemente oder ein beliebiges anderes Element zum Erfassen der Gegenwart oder Bewegung eines Benutzers vorliegen. Solche Erfassungselemente können mehrere verschiedene Elemente umfassen, die zusammenarbeiten, in Sequenz arbeiten oder beides. Beispielsweise gehören zu Erfassungselementen Elemente, die ein initiales Erfassen, wie Licht oder Schallaussendung, gefolgt vom Erfassen zur Gestendetektion beispielsweise durch eine Ultraschall-Laufzeit-Kamera oder eine Muster-Lichtkamera vorsehen.
  • In einigen Ausführungsformen umfasst das System auch einen Lichtgenerator, um eine beleuchtete Linie zu erzeugen. In einigen Ausführungsformen stellt diese Linie einen visuellen Hinweis bezüglich einer virtuellen Grenze, nämlich eines imaginären oder virtuellen Orts im Raum bereit, wo eine Aktion des Benutzers, die virtuelle Grenze oder Ebene zu überschreiten oder zu durchbrechen, als Absicht interpretiert wird, das Rechensystem zu benutzen. In einigen Ausführungsformen kann die beleuchtete Linie die Farbe verändern, während das Rechensystem in verschiedene Zustände in Bezug auf den Benutzer übergeht. Die beleuchtete Linie kann verwendet werden, um dem Benutzer einen visuellen Hinweis auf eine virtuelle Grenze im Raum zu geben, und kann vom System verwendet werden, um Übergänge im Zustand des Computers in Bezug auf den Benutzer zu bestimmen, einschließlich der Bestimmung, wenn der Benutzer wünscht, den Computer zu benutzen.
  • In einigen Ausführungsformen erfasst der Computer die Benutzerposition und arbeitet, um die Bewegung einer Hand des Benutzers durch die virtuelle Grenze als Geste zu interpretieren, die eine Absicht des Benutzers anzeigt, den Computer zu benutzen. In einigen Ausführungsformen kann sich, wenn der Benutzer die virtuelle Linie oder Ebene überschreitet, das vom Lichtgenerator generierte Licht ändern, wodurch ein visuelles Feedback gegeben wird, dass der Benutzer in einen Bereich zum Vorsehen von Gesten eingetreten ist, um eine Eingabe in den Computer vorzunehmen.
  • Anzeigebildschirme können visuelle Anzeigen von Zustandsübergängen des Rechensystems in Bezug auf einen Benutzer bereitstellen. In einigen Ausführungsformen ist ein erster Bildschirm in einem ersten Zustand vorgesehen, in dem die Gegenwart eines Benutzers vom System erfasst wird, wie durch die Verwendung eines oder mehrerer der Erfassungselemente.
  • In einigen Implementierungen arbeitet das System, um die Benutzeridentität zu erfassen, wie durch eine Gesichtserkennung. Hier kann der Übergang zu einem zweiten Bildschirm in einem zweiten Zustand vorgesehen sein, in dem das Rechensystem die Benutzeridentität erkannt hat, wobei dieser zweite Bildschirm ein visuelles Feedback für den Benutzer bereitstellt, dass der Benutzer in einen neuen Zustand übergegangen ist. Der Übergang zu einem dritten Bildschirm kann in einem dritten Zustand auftreten, in dem der Benutzer die Erkennung des Benutzers bestätigt hat.
  • In einigen Ausführungsformen kann das Rechensystem einen Übergangsmechanismus verwenden, um einen Ort einer virtuellen Grenze eines Benutzer zu bestimmen, wobei der Ort der virtuellen Grenze mit dem Benutzer und Kontext variieren kann. Das Rechensystem kann ein Licht generieren, wie eine beleuchtete Linie, um die virtuelle Grenze zur Benutzung des Systems anzuzeigen. In einigen Ausführungsformen kann das Rechensystem in einem Wartezustand sein, und das Licht kann in einer ersten Farbe erzeugt werden. Das Rechensystem kann detektieren, ob der Benutzer die virtuelle Grenze überschritten hat, wie durch das Erfassen der Gegenwart und Bewegung des Benutzers unter Verwendung von Erfassungselementen.
  • Falls detektiert wurde, dass der Benutzer die virtuelle Grenze überschritten hat (z. B. dass die Hände des Benutzers näher am Rechensystem sind als die virtuelle Grenzlinie), kann das Rechensystem in einigen Ausführungsformen in einen Zustand zum Empfangen von Gesteneingaben vom Benutzer übergehen, wobei ein Mechanismus zum Anzeigen des Übergangs das Licht umfassen kann, das die virtuelle Grenze zeigt, indem sie sich zu einer zweiten Farbe ändert.
  • In einigen Ausführungsformen kann das Rechensystem dann bestimmen, ob die Gestenbewegung detektiert ist. Wenn die Gestenbewegung detektiert ist, kann das Rechensystem mit einem Gestenerkennungsprozess fortfahren, der die Verwendung von Daten aus einer Gestendatenbibliothek umfassen kann, die im Speicher der Rechenvorrichtung residieren kann oder auf die auf andere Weise von der Rechenvorrichtung zugegriffen werden kann.
  • Falls eine Geste des Benutzers erkannt wird, kann das Rechensystem eine Funktion als Reaktion auf die Eingabe vornehmen und zurückspringen, um zusätzliche Gesten zu empfangen, falls der Benutzer innerhalb der virtuellen Grenze ist. Falls die Geste nicht erkannt wird, kann das Rechensystem in einigen Ausführungsformen in einen Fehlerzustand übergehen, wobei ein Mechanismus zum Anzeigen des Fehlerzustands das Licht umfassen kann, das die virtuelle Grenze zeigt, indem sie sich zu einer dritten Farbe ändert, wobei das System zurückspringt, um zusätzliche Gesten zu empfangen, falls der Benutzer innerhalb der virtuellen Grenze ist, um das Rechensystem zu benutzen.
  • Wie vorstehend erwähnt, kann das System in anderen Ausführungsformen als konvertibles Tablet-System konfiguriert sein, das in mindestens zwei verschiedenen Modi verwendet werden kann, einem Tablet-Modus und einem Notebook-Modus. Das konvertible System kann zwei Felder aufweisen, nämlich ein Anzeigefeld und ein Basisfeld, sodass die beiden Felder im Tablet-Modus in einem Stapel eines über dem anderen angeordnet sind. Im Tablet-Modus ist das Anzeigefeld nach außen gewandt und kann eine Berührungsbildschirmfunktionalität vorsehen, wie sie bei herkömmlichen Tablets zu finden ist. Im Notebook-Modus können die beiden Felder in einer offenen Muschelschalenkonfiguration angeordnet sein.
  • In verschiedenen Ausführungsformen kann das Akzelerometer ein 3-Achsen-Akzelerometer mit Datenraten von mindestens 50 Hz sein. Ein Gyroskop kann auch enthalten sein, das ein 3-Achsen-Gyroskop sein kann. Zusätzlich kann ein e-Kompass/Magnetometer vorhanden sein. Es kann oder können auch ein oder mehrere Näherungssensoren vorgesehen sein (z. B. für eine offene Klappe, um zu erfassen, wenn eine Person in der Nähe des Systems ist (oder nicht), und zum Anpassen von Strom/Leistung, um die Lebensdauer der Batterie zu verlängern). Bei einigen Betriebssystemen (OS) kann eine Sensor-Fusion-Funktion, die das Akzelerometer, das Gyroskop und den Kompass enthält, bessere Merkmale bereitstellen. Zusätzlich kann über einen Sensorknoten mit einem Echtzeittakt (RTC) ein Aufwachen aus dem Sensormechanismus realisiert werden, um einen Sensoreingang zu empfangen, wenn ein Rest des Systems in einem Energiesparzustand ist.
  • In einigen Ausführungsformen kann ein interner Klappe-/Anzeige-offen-Schalter oder -Sensor anzeigen, wenn die Abdeckung geschlossen/offen ist, und kann verwendet werden, um das System in einen Connected-Standby-Zustand zu versetzen oder um automatisch aus dem Connected-Standby-Zustand aufzuwachen. Andere Systemsensoren können ACPI-Sensoren für einen internen Prozessor, Speicher und zur Hauttemperaturüberwachung umfassen, um Änderungen an Prozessor- und Systembetriebszuständen auf der Basis erfasster Parameter zu ermöglichen.
  • In einer Ausführungsform kann das OS ein Microsoft® Windows® 8 OS sein, das Connected-Standby implementiert (hier auch als Win8 CS bezeichnet). Windows 8 Connected Standby oder ein anderes OS mit einem ähnlichen Zustand kann über eine Plattform, wie hier beschrieben, einen sehr niedrigen Leerlaufstrom vorsehen, um zu ermöglichen, dass Anwendungen bei sehr niedrigem Stromverbrauch verbunden bleiben, z. B. mit einem Ort auf Cloud-Basis. Die Plattform kann 3 Stromzustände unterstützen, nämlich Bildschirm ein (normal), Connected Standby (als Vorgabe im Zustand „aus“) und Abschalten (Null Watt Energieverbrauch). So ist die Plattform im Connected-Standby-Zustand logisch ein (bei minimalen Leistungspegeln), auch wenn der Bildschirm aus ist. In einer derartigen Plattform kann die Stromverwaltung für Anwendungen transparent gemacht und eine konstante Konnektivität aufrechterhalten werden, teilweise aufgrund der Entlastungstechnologie, um zu ermöglichen, dass die mit dem wenigsten Strom versorgte Komponente eine Operation durchführt.
  • In einer bestimmten Implementierung enthalten Peripherie-Ports möglicherweise einen High-Definition-Media-Interface(HDMI)-Anschluss (mit unterschiedlichen möglichen Formfaktoren, etwa Full Size, Mini oder Mikro); einen oder mehrere USB-Ports, wie externe Full-Size-Ports gemäß der Universal-Serial-Bus-Spezifikation in Revision 3.0 (November 2008), von denen mindestens einer zum Aufladen von USB-Vorrichtungen (wie Smartphones) mit Strom versorgt wird, wenn das System im Connected-Standby-Zustand und an ein Wechselstromnetz angeschlossen ist. Darüber hinaus können ein oder mehrere Thunderbolt™-Ports bereitgestellt sein. Weitere Ports können einen von außen zugänglichen Kartenleser enthalten, etwa einen Full-Size-SD-XC-Kartenleser und/oder einen SIM-Kartenleser für ein WWAN (z. B. einen 8-Pin-Kartenleser) . Für den Ton kann eine 3,5-mm-Buchse mit Stereoton und Mikrofonfähigkeit (z. B. Kombinationsfunktionalität) mit Unterstützung für die Buchsendetektion vorhanden sein (z. B. nur Kopfhörerunterstützung unter Verwendung eines Mikrofons in der Klappe oder eines Kopfhörers mit Mikrofon im Kabel). In einigen Ausführungsformen kann diese Buchse entweder die Funktion eines Stereokopfhörereingangs oder die Funktion eines Stereomikrofoneingangs haben. Außerdem kann eine Netzanschlussbuchse zur Kopplung an ein externes Wechselstrom-Netzteil vorgesehen sein.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind für Fachleute zahlreiche Modifikationen und Variationen davon ersichtlich. Die beiliegenden Ansprüche sollen alle derartigen Modifikationen und Variationen abdecken, die in den Grundgedanken und Umfang der vorliegenden Erfindung fallen.
  • Eine Ausbildung kann durch verschiedene Stufen gehen, von der Erzeugung zur Simulation zur Herstellung. Eine Ausbildung repräsentierende Daten können die Ausbildung in verschiedener Weise repräsentieren. Zuerst, wie es bei Simulationen nützlich ist, kann die Hardware unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionellen Beschreibungssprache repräsentiert werden. Zusätzlich kann ein Modell auf Schaltungsebene mit Logik und/oder Transistorgattern in einigen Stufen des Ausbildungsprozesses erzeugt werden. Ferner erreichen die meisten Ausbildungen in einer Stufe eine Ebene von Daten, welche die physikalische Platzierung verschiedener Vorrichtungen in das Hardware-Modell repräsentieren. In dem Fall, wo herkömmliche Halbleiter-Herstellungstechniken verwendet werden, können die das Hardware-Modell repräsentierenden Daten jene Daten sein, die das Vorliegen oder Fehlen verschiedener Merkmale auf verschiedenen Maskenschichten für Masken spezifizieren, die zur Erzeugung des integrierten Schaltkreises verwendet werden. In einer beliebigen Repräsentation der Ausbildung können die Daten in einer beliebigen Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein magnetischer oder optischer Speicher, wie eine Platte, kann das maschinenlesbare Medium sein, um Informationen zu speichern, die über optische oder elektrische Wellen gesendet werden, welche moduliert oder auf andere Weise generiert werden, um solche Informationen zu senden. Wenn eine elektrische Trägerwelle gesendet wird, die den Code oder die Ausbildung anzeigt oder trägt, in dem Ausmaß, dass ein Kopieren, Puffern oder eine erneute Übertragung des elektrischen Signals vorgenommen wird, wird eine neue Kopie gemacht. So kann ein Kommunikationsanbieter oder ein Netzanbieter auf einem greifbaren, maschinenlesbaren Medium, zumindest temporär, einen Artikel speichern, wie in einer Trägerwelle codierte Informationen, die Techniken von Ausführungsformen der vorliegenden Erfindung verkörpern.
  • Ein Modul, wie hier verwendet, bezieht sich auf eine beliebige Kombination von Hardware, Software und/oder Firmware. Als Beispiel umfasst ein Modul Hardware, wie einen Mikrocontroller, assoziiert mit einem nicht-transitorischen Medium, um einen Code zu speichern, der zum Ausführen durch den Mikrocontroller angepasst ist. Daher bezieht sich eine Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch konfiguriert ist, den Code, der auf einem nicht-transitorischen Medium zu halten ist, zu erkennen und/oder auszuführen. Ferner bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls auf das nicht-transitorische Medium, das den Code umfasst, der spezifisch zum Ausführen durch den Mikrocontroller angepasst ist, um vorherbestimmte Operationen vorzunehmen. Wie daraus geschlossen werden kann, kann sich in noch einer weiteren Ausführungsform der Ausdruck Modul (in diesem Beispiel) auf die Kombination des Mikrocontrollers und des nicht-transitorischen Mediums beziehen. Oft können Modulgrenzen, die als getrennt veranschaulicht werden, üblicherweise variieren und einander potentiell überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder Kombinationen davon gemeinsam nutzen, wobei bestimmte unabhängige Hardware, Software oder Firmware potentiell beibehalten wird. In einer Ausführungsform umfasst die Verwendung des Ausdrucks Logik Hardware, wie Transistoren, Register, oder andere Hardware, wie programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „konfiguriert, um“ bezieht sich in einer Ausführungsform auf das Anordnen, Zusammensetzen, Herstellen, Anbieten zum Verkauf, Einführen und/oder Ausbilden einer Vorrichtung, Hardware, Logik oder eines Elements, um eine bezeichnete oder bestimmte Aufgabe vorzunehmen. In diesem Beispiel ist eine Vorrichtung oder ein Element davon, die bzw. das nicht arbeitet, weiterhin „konfiguriert“, eine bezeichnete Aufgabe vorzunehmen, wenn sie bzw. es bezeichnet, gekoppelt und/oder gegenseitig verbunden ist, um die genannte bezeichnete Aufgabe vorzunehmen. Als rein veranschaulichendes Beispiel kann ein Logik-Gatter eine 0 oder eine 1 während der Operation bereitstellen. Aber ein Logik-Gatter, das „konfiguriert“ ist, ein Freigabesignal für einen Takt zu liefern, umfasst nicht jedes potentielle Logik-Gatter, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logik-Gatter eines, das auf eine Weise gekoppelt ist, damit während der Operation der Ausgang 1 oder 0 den Takt freizugeben hat. Es ist wiederum zu beachten, dass die Verwendung des Ausdrucks „konfiguriert“ keine Operation erfordert, sondern stattdessen das Augenmerk auf dem latenten Zustand einer Vorrichtung, Hardware und/oder eines Elements liegt, wobei in dem latenten Zustand die Vorrichtung, Hardware und/oder das Element ausgebildet ist, eine bestimmte Aufgabe vorzunehmen, wenn die Vorrichtung, Hardware und/oder das Element in Betrieb sind.
  • Ferner bezieht sich die Verwendung der Ausdrücke „fähig zu“ und „betreibbar, um“ in einer Ausführungsform auf eine Vorrichtung, Logik, Hardware und/oder ein Element, die bzw. das so ausgebildet sind, dass sie/es die Verwendung der Vorrichtung, Logik, Hardware und/oder des Elements in einer spezifischen Weise ermöglicht. Es ist wie vorstehend zu beachten, dass sich in einer Ausführungsform die Verwendung von „fähig zu“ und „betreibbar, um“ auf den latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, Logik, Hardware und/oder das Element nicht arbeitet, aber so ausgebildet ist, dass die Verwendung einer Vorrichtung in einer spezifizierten Weise ermöglicht wird.
  • Ein Wert umfasst, wie hier verwendet, eine beliebige bekannte Darstellung einer Zahl, eines Zustands, eines Logiszustands oder eines binären Logikzustands. Oft wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1 und 0 bezeichnet, was einfach binäre Logikzustände repräsentiert. Beispielsweise bezieht sich 1 auf einen hohen Logikpegel und 0 bezieht sich auf einen niederen Logikpegel. In einer Ausführungsform kann eine Speicherzelle, wie ein Transistor oder eine Flash-Zelle, fähig sein, einen einzelnen Logikwert oder mehrere Logikwerte zu halten. Es wurden jedoch andere Darstellungen von Werten in Computersystemen verwendet. Beispielsweise kann die Dezimalzahl Zehn auch als binärer Wert von 1010 und ein hexadezimaler Buchstabe A repräsentiert werden. Daher umfasst ein Wert eine beliebige Darstellung von Informationen, die in einem Computersystem gehalten werden können.
  • Außerdem können Zustände durch Werte oder Teile von Werten repräsentiert werden. Als Beispiel kann ein erster Wert, wie eine logische Eins, einen Vorgabe- oder Initialzustand repräsentieren, während ein zweiter Wert, wie eine logische Null, einen Nicht-Vorgabezustand repräsentieren kann. Zusätzlich beziehen sich die Ausdrücke Rücksetzen und Setzen in einer Ausführungsform jeweils auf einen Vorgabe- und einen aktualisierten Wert oder Zustand. Beispielsweise umfasst ein Vorgabewert potentiell einen hohen Logikzustand, d. h. Rücksetzen, während ein aktualisierter Wert potentiell einen niedrigen Logikwert umfasst, d. h. Setzen. Es ist zu beachten, dass eine beliebige Kombination von Werten verwendet werden kann, um eine beliebige Anzahl von Zuständen zu repräsentieren.
  • Die oben angegebenen Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code können über Befehle oder Code implementiert werden, die auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind, welche durch ein Verarbeitungselement ausgeführt werden können. Ein nicht-transitorisches maschinenzugängliches/-lesbares Medium umfasst einen beliebigen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder sendet), die von einer Maschine, wie einem Computer oder elektronischen System, gelesen werden kann. Beispielsweise enthält ein nicht-transitorisches maschinenzugängliches Medium einen Direktzugriffsspeicher (RAM), wie einen statischen RAM (SRAM) oder dynamischen RAM (DRAM), ROM, ein magnetisches oder optisches Speichermedium, Flash-Speichervorrichtungen, elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; andere Formen von Speichervorrichtungen zum Halten von Informationen, die von transitorischen (ausgebreiteten) Signalen empfangen werden (z. B. Trägerwellen, Infrarot-Signalen, Digitalsignalen) usw., die von den nicht-transitorischen Medien zu unterscheiden sind, welche Informationen davon empfangen können.
  • Befehle, die zur Programmierung von Logik zum Durchführen von erfindungsgemäßen Ausführungsformen verwendet werden, können innerhalb eines Speichers im System gespeichert werden, wie eines DRAM, Cache, Flash-Speichers oder eines anderen Speichers. Ferner können die Befehle über ein Netzwerk oder mittels anderer computerlesbarer Medien verbreitet werden. So kann ein maschinenlesbares Medium einen beliebigen Mechanismus zum Speichern oder Senden von Informationen in einer Form umfassen, die von einer Maschine (z. B. einem Computer) gelesen werden kann, ist jedoch nicht beschränkt auf: Disketten, optische Platten, Compact Disc Nur-Lese-Speicher (CD-ROM) und magnetooptische Platten, Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen greifbaren, maschinenlesbaren Speicher, der beim Senden von Informationen über das Internet über elektrische, optische, akustische oder andere Formen ausgebreiteter Signale (z. B. Trägerwellen, Infrarot-Signale, Digitalsignale) verwendet wird. Demgemäß umfasst das computerlesbare Medium einen beliebigen Typ eines greifbaren maschinenlesbaren Mediums, das zum Speichern oder Senden elektronischer Instruktionen oder Informationen in einer Form geeignet ist, die von einer Maschine (z. B. einem Computer) gelesen werden kann.
  • Die folgenden Beispiele beziehen sich auf Ausführungsformen gemäß dieser Beschreibung. Eine oder mehrere Ausführungsformen kann oder können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, Hardware- und/oder Software-basierte Logik und ein Verfahren bereitstellen, um einen Steuer-Tag-Wert in einem Datenpaket-Header zum Speichern von Nutzdaten in nichtflüchtigem Speicher zu interpretieren.
  • Beispiel 1 ist eine Vorrichtung, umfassend einen Anwendungsprozessor, der eine Schnittstellenlogik enthält, die eine Schnittstelle mit einem Kommunikationsmodul unter Verwendung einer bidirektionalen Interconnect-Verbindung bildet, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll konform ist. Die Schnittstellenlogik ist zum Empfangen eines Datenpakets über die Verbindung konfiguriert, wobei das Datenpaket einen Header und Nutzdaten umfasst; zum Bestimmen eines Hinweisbits, das in dem Header des Datenpakets gesetzt ist; zum Bestimmen eines Steuer-Tag-Werts im Datenpaket-Header auf der Grundlage des gesetzten Hinweisbits; und zum Senden der Nutzdaten an nichtflüchtigen Speicher auf der Grundlage des im Header gesetzten Steuer-Tags.
  • Beispiel 2 kann den Gegenstand von Beispiel 1 enthalten und auch Speicher-Controller-Logik zum Senden einer Schreibabschlussnachricht an die Schnittstellenlogik enthalten; wobei es weiterhin Schnittstellenlogik zum Empfangen des Schreibabschlusses für den Schreibzugriff auf nichtflüchtigen Speicher von der Speicher-Controller-Logik; zum Empfangen einer Leseabschlussanforderung für den Schreibzugriff; zum Senden eines Leseabschlusses nach Empfangen jedes Schreibabschlusses von der Speicher-Controller-Logik umfasst.
  • Beispiel 3 kann den Gegenstand von Beispiel 2 enthalten und kann auch Schnittstellenlogik zum Verzögern der Reaktion auf die Leseabschlussnachricht enthalten, bis alle vorigen Schreibabschlüsse von der Schnittstellenlogik empfangen wurden.
  • Beispiel 4 kann den Gegenstand von Beispiel 2 enthalten und kann auch Schnittstellenlogik zum Empfangen einer Vielzahl von Schreibzugriffsanforderungen enthalten; wobei es weiterhin Speicher-Controller-Logik zum Durchführen der Vielzahl von Schreibzugriffsanforderungen und zum Senden einer Vielzahl von Schreibzugriffsabschlussnachrichten an die Schnittstellenlogik umfasst.
  • Beispiel 5 kann den Gegenstand von Beispiel 1-4 enthalten, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweis-Bit umfasst.
  • Beispiel 6 kann den Gegenstand von Beispiel 1-5 enthalten und auch Speicher-Controller-Logik zum Identifizieren eines Zwischenspeicherhinweises aus dem Paket-Header und zum Zwischenspeichern der Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher enthalten.
  • Beispiel 7 kann den Gegenstand von Beispiel 1-6 enthalten und auch eine Schnittstellenlogik zum Decodieren des Steuer-Tag-Werts enthalten, um zu bestimmen, dass die Nutzdaten in den nichtflüchtigen Speicher geschrieben werden sollen.
  • Beispiel 8 kann den Gegenstand von Beispiel 1-7 enthalten, wobei die Schnittstellenlogik PCIe-Root-Port-Logik umfasst.
  • Beispiel 9 ist ein Verfahren, das das Empfangen eines oder mehrerer Datenpakete, wobei jedes Datenpaket einen ein Hinweisbit und ein Steuer-Tag-Bit umfassenden Datenpaket-Header und Nutzdaten umfasst; das Bestimmen, dass das Hinweisbit gesetzt ist; das Bestimmen eines Steuer-Tag-Werts auf der Grundlage des Bestimmens, dass das Hinweisbit gesetzt ist; das Interpretieren des Steuer-Tag-Werts zum Schreiben der Nutzdaten in nichtflüchtigen Speicher und das Senden der Nutzdaten an den nichtflüchtigen Speicher auf der Grundlage des Steuer-Tag-Werts enthält.
  • Beispiel 10 kann den Gegenstand von Beispiel 9 enthalten, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweisbit umfasst.
  • Beispiel 11 kann den Gegenstand von Beispiel 9-10 enthalten und kann auch das Empfangen einer Anforderung zum Abschluss eines leerenden Lesens für den Schreibzugriff und das Senden eines Leseabschlusses nach Empfangen eines Schreibabschlusses für jeden Schreibzugriff auf den nichtflüchtigen Speicher enthalten.
  • Beispiel 12 kann den Gegenstand von Beispiel 11 enthalten und kann auch das Verzögern des Sendens des Leseabschlusses bis nach dem Empfang einer Schreibzugriffsabschlussnachricht für jeden vorigen Schreibzugriff auf nichtflüchtigen Speicher enthalten.
  • Beispiel 13 kann den Gegenstand von Beispiel 9-12 enthalten und kann auch das Identifizieren eines Zwischenspeicherhinweises aus dem Paket-Header und das Zwischenspeichern der Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher enthalten.
  • Beispiel 14 kann den Gegenstand von Beispiel 9-13 enthalten und kann auch das Decodieren des Steuer-Tag-Werts zum Bestimmen enthalten, dass der Schreibzugriff in dem einen oder den mehreren Datenpaketen ein Schreibzugriff auf nichtflüchtigen Speicher ist.
  • Beispiel 15 kann den Gegenstand von Beispiel 9-14 enthalten, wobei die Datenpakete über eine Verbindung empfangen werden, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll kompatibel ist.
  • Beispiel 16 kann den Gegenstand von Beispiel 9-15 enthalten und kann auch das Identifizieren eines Ordnungshinweises aus dem Paket-Header zum Ordnen der Schreibabschlüsse in nichtflüchtigen Speicher und das Ausführen der Schreibabschlüsse in einer Ordnung enthalten, die sich von der Ordnung der empfangenen Datenpakete unterscheidet.
  • Beispiel 17 ist mindestens ein maschinenzugängliches Speichermedium mit darin gespeichertem Code, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine ein oder mehrere Datenpakete empfängt, wobei jedes Datenpaket einen ein Hinweisbit und ein Steuer-Tag-Bit umfassenden Datenpaket-Header umfasst; bestimmt, dass das Hinweisbit gesetzt ist; einen Steuer-Tag-Wert bestimmt; das Gesetztsein des Hinweisbits und den Steuer-Tag-Wert als eine Schreibanforderung in nichtflüchtigen Speicher interpretiert und einen Schreibzugriff auf den nichtflüchtigen Speicher auf der Grundlage des Steuer-Tag-Werts ausführt.
  • Beispiel 18 kann den Gegenstand von Beispiel 17 enthalten, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweisbit umfasst.
  • Beispiel 19 kann den Gegenstand von Beispiel 17-18 enthalten, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine eine Anforderung zum Abschluss eines leerenden Lesens für den Schreibzugriff empfängt und nach Empfangen eines Schreibabschlusses für jeden Schreibzugriff auf den nichtflüchtigen Speicher einen Leseabschluss sendet.
  • Beispiel 20 kann den Gegenstand von Beispiel 17-19 enthalten, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine das Senden des Leseabschlusses bis nach dem Empfang einer Schreibzugriffsabschlussnachricht für jeden vorigen Schreibzugriff auf nichtflüchtigen Speicher verzögert.
  • Beispiel 21 kann den Gegenstand von Beispiel 17-19 enthalten, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine einen Zwischenspeicherhinweis aus einem Paket-Header identifiziert und die Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher zwischenspeichert.
  • Beispiel 22 kann den Gegenstand von Beispiel 17-19 enthalten, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine den Steuer-Tag-Wert zum Bestimmen decodiert, dass der Schreibzugriff in dem einen oder den mehreren Datenpaketen ein Schreibzugriff auf nichtflüchtigen Speicher ist.
  • Beispiel 23 kann den Gegenstand von Beispiel 17-19 enthalten, wobei die Datenpakete über eine Verbindung empfangen werden, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll kompatibel ist.
  • Beispiel 24 kann den Gegenstand von Beispiel 17-19 enthalten, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine einen Ordnungshinweis aus dem Paket-Header zum Ordnen der Schreibabschlüsse in nichtflüchtigen Speicher identifiziert und die Schreibzugriffe in einer Ordnung ausführt, die sich von der Ordnung der empfangenen Datenpakete unterscheidet.
  • Beispiel 25 ist ein System, umfassend einen Schnittstellen-Controller zum Empfangen eines Pakets von einer Eingabe/Ausgabe-Vorrichtung, eine Zentraleinheit, umfassend Root-Komplex-Logik, wobei die Root-Komplex-Logik ein Datenpaket über die Verbindung empfängt, ein in einem Header des Datenpakets gesetztes Hinweisbit bestimmt, einen Steuer-Tag-Wert im Datenpaket-Header bestimmt und den Schreibzugriff auf nichtflüchtige Speicher und Daten von dem Datenpaket an einen Speicher-Controller sendet.
  • Beispiel 26 kann den Gegenstand von Beispiel 25 und auch Speicher-Controller-Logik zum Senden einer Schreibabschlussnachricht an die Schnittstellenlogik enthalten. Beispiel 26 kann auch Schnittstellenlogik zum Empfangen des Schreibabschlusses für den Schreibzugriff auf nichtflüchtigen Speicher von der Speicher-Controller-Logik; zum Empfangen einer Leseabschlussanforderung für den Schreibzugriff; zum Senden eines Leseabschlusses nach Empfangen jedes Schreibabschlusses von der Speicher-Controller-Logik enthalten.
  • Beispiel 27 kann den Gegenstand von Beispiel 26 enthalten und kann auch Schnittstellenlogik zum Verzögern der Reaktion auf die Leseabschlussnachricht enthalten, bis alle Schreibabschlüsse von der Schnittstellenlogik empfangen wurden.
  • Beispiel 28 kann den Gegenstand von Beispiel 27 enthalten und kann auch Schnittstellenlogik zum Empfangen einer Vielzahl von Schreibzugriffsanforderungen enthalten. Das Beispiel kann auch Speicher-Controller-Logik zum Durchführen der Vielzahl von Schreibzugriffsanforderungen und zum Senden einer Vielzahl von Schreibzugriffsabschlussnachrichten an die Schnittstellenlogik enthalten.
  • Beispiel 29 kann den Gegenstand von Beispiel 25-28 enthalten, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweis-Bit umfasst.
  • Beispiel 30 kann den Gegenstand von Beispiel 25-29 enthalten und kann auch Speicher-Controller-Logik zum Identifizieren eines Zwischenspeicherhinweises aus dem Paket-Header und zum Zwischenspeichern der Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher enthalten.
  • Beispiel 31 kann den Gegenstand von Beispiel 25-30 enthalten und kann auch eine Schnittstellenlogik zum Decodieren des Steuer-Tag-Werts enthalten, um zu bestimmen, dass der Schreibzugriff ein Schreibzugriff auf nichtflüchtigen Speicher ist.
  • Beispiel 32 kann den Gegenstand von Beispiel 25-31 enthalten, wobei die Schnittstellenlogik PCIe-Root-Port-Logik umfasst.
  • Beispiel 33 kann den Gegenstand von Beispiel 1 enthalten und weiterhin Schnittstellenlogik zum Verstärken eines ausgehenden Paket-Headers eines Pakets mit einem Steuer-Tag-Wert enthalten, das identifiziert, dass das Paket eine Schreibtransaktion für nichtflüchtigen Speicher enthält.
  • Beispiel 34 kann den Gegenstand von Beispiel 9 enthalten und kann auch das Verstärken eines ausgehenden Paket-Headers eines Pakets mit einem Steuer-Tag-Wert enthalten, das identifiziert, dass das Paket eine Schreibtransaktion für nichtflüchtigen Speicher enthält.
  • Verweise in dieser Beschreibung auf „eine Ausführungsform“ bedeuten durchweg, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Kennzeichen, das bzw. die in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer erfindungsgemäßen Ausführungsform enthalten ist. Somit bezieht sich das Erscheinen des Ausdrucks „in eine Ausführungsform“ an verschiedenen Stellen der gesamten Beschreibung nicht zwangsläufig auf dieselbe Ausführungsform. Ferner können die bestimmten Merkmale, Strukturen oder Kennzeichen auf passende Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorstehenden Beschreibung ist eine ausführliche Beschreibung mit Bezug auf spezifische Ausführungsbeispiele gegeben worden. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Geist und Umfang der Erfindung, wie in den beigefügten Ansprüchen dargelegt, abzuweichen. Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden Sinn und nicht einschränkenden Sinn zu betrachten. Weiterhin bezieht sich die vorstehende Verwendung von Ausführungsform und anderer beispielhafter Sprache nicht zwangsläufig auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern kann sich ebenso auf unterschiedliche und individuelle Ausführungsformen wie auch potentiell auf die gleiche Ausführungsform beziehen.
  • 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 Patentliteratur
    • US 15280730 [0001]

Claims (25)

  1. Vorrichtung, umfassend: einen Anwendungsprozessor, umfassend: eine Schnittstellenlogik, die eine Schnittstelle mit einem Kommunikationsmodul unter Verwendung einer bidirektionalen Interconnect-Verbindung bildet, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll konform ist, wobei die Schnittstellenlogik clientzum Empfangen eines Datenpakets über die Verbindung, wobei das Datenpaket einen Header und Nutzdaten umfasst; Bestimmen eines Hinweisbits, das in dem Header des Datenpakets gesetzt ist; Bestimmen eines Steuer-Tag-Werts im Datenpaket-Header auf der Grundlage des gesetzten Hinweisbits; und Senden der Nutzdaten an nichtflüchtigen Speicher auf der Grundlage des im Header gesetzten Steuer-Tags.
  2. Vorrichtung nach Anspruch 1, weiterhin umfassend Speicher-Controller-Logik zum: Senden einer Schreibabschlussnachricht an die Schnittstellenlogik; und weiterhin umfassend Schnittstellenlogik zum: Empfangen des Schreibabschlusses für den Schreibzugriff auf nichtflüchtigen Speicher von der Speicher-Controller-Logik; Empfangen einer Leseabschlussanforderung für den Schreibzugriff; Senden eines Leseabschlusses nach Empfangen jedes Schreibabschlusses von der Speicher-Controller-Logik.
  3. Vorrichtung nach Anspruch 2, weiterhin umfassend Schnittstellenlogik zum Verzögern der Reaktion auf die Leseabschlussnachricht, bis alle vorigen Schreibabschlüsse von der Schnittstellenlogik empfangen wurden.
  4. Vorrichtung nach Anspruch 2, weiterhin umfassend Schnittstellenlogik zum: Empfangen einer Vielzahl von Schreibzugriffsanforderungen; und weiterhin umfassend Speicher-Controller-Logik zum: Durchführen der Vielzahl von Schreibzugriffsanforderungen; und Senden einer Vielzahl von Schreibzugriffsabschlussnachrichten an die Schnittstellenlogik.
  5. Vorrichtung nach Anspruch 1, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweisbit umfasst.
  6. Vorrichtung nach Anspruch 1, weiterhin umfassend Speicher-Controller-Logik zum: Identifizieren eines Zwischenspeicherhinweises aus dem Paket-Header; und Zwischenspeichern der Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher.
  7. Vorrichtung nach Anspruch 1, weiterhin umfassend Schnittstellenlogik zum Decodieren des Steuer-Tag-Werts, um zu bestimmen, dass der Schreibzugriff ein Schreibzugriff auf nichtflüchtigen Speicher ist.
  8. Vorrichtung nach Anspruch 1, wobei die Schnittstellenlogik PCIe-Root-Port-Logik umfasst.
  9. Verfahren, umfassend: Empfangen eines oder mehrerer Datenpakete, wobei jedes Datenpaket einen ein Hinweisbit und ein Steuer-Tag-Bit umfassenden Datenpaket-Header und Nutzdaten umfasst; Bestimmen, dass das Hinweisbit gesetzt ist; Bestimmen eines Steuer-Tag-Werts auf der Grundlage des Bestimmens, dass das Hinweisbit gesetzt ist; Interpretieren des Steuer-Tag-Werts zum Schreiben der Nutzdaten in nichtflüchtigen Speicher; und Senden der Nutzdaten an den nichtflüchtigen Speicher auf der Grundlage des Steuer-Tag-Werts.
  10. Verfahren nach Anspruch 9, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweisbit umfasst.
  11. Verfahren nach Anspruch 9, weiterhin umfassend: Empfangen einer Anforderung zum Abschluss eines leerenden Lesens für den Schreibzugriff; und Senden eines Leseabschlusses nach Empfangen eines Schreibabschlusses für jeden Schreibzugriff auf den nichtflüchtigen Speicher.
  12. Verfahren nach Anspruch 11, weiterhin umfassend das Verzögern des Sendens des Leseabschlusses bis nach dem Empfang einer Schreibzugriffsabschlussnachricht für jeden vorigen Schreibzugriff auf nichtflüchtigen Speicher.
  13. Verfahren nach Anspruch 9, weiterhin umfassend: Identifizieren eines Zwischenspeicherhinweises aus dem Paket-Header; und Zwischenspeichern der Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher.
  14. Verfahren nach Anspruch 9, weiterhin umfassend das Decodieren des Steuer-Tag-Werts zum Bestimmen, dass der Schreibzugriff in dem einen oder den mehreren Datenpaketen ein Schreibzugriff auf nichtflüchtigen Speicher ist.
  15. Verfahren nach Anspruch 9, wobei die Datenpakete über eine Verbindung empfangen werden, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll kompatibel ist.
  16. Verfahren nach Anspruch 9, weiterhin umfassend: Identifizieren eines Ordnungshinweises aus dem Paket-Header zum Ordnen der Schreibabschlüsse in nichtflüchtigen Speicher; und Ausführen der Schreibabschlüsse in einer Ordnung, die sich von der Ordnung der empfangenen Datenpakete unterscheidet.
  17. Mindestens ein maschinenzugängliches Speichermedium mit darin gespeichertem Code, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine ein oder mehrere Datenpakete empfängt, wobei jedes Datenpaket einen ein Hinweisbit und ein Steuer-Tag-Bit umfassenden Datenpaket-Header und umfasst; bestimmt, dass das Hinweisbit gesetzt ist; einen Steuer-Tag-Wert bestimmt; das Gesetztsein des Hinweisbits und den Steuer-Tag-Wert als eine Schreibanforderung in nichtflüchtigen Speicher interpretiert; und einen Schreibzugriff auf den nichtflüchtigen Speicher auf der Grundlage des Steuer-Tag-Werts ausführt.
  18. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei das Hinweisbit ein Transaktionsschichtpaket-Verarbeitungshinweisbit umfasst.
  19. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine eine Anforderung zum Abschluss eines leerenden Lesens für den Schreibzugriff empfängt; und nach Empfangen eines Schreibabschlusses für jeden Schreibzugriff auf den nichtflüchtigen Speicher einen Leseabschluss sendet.
  20. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine das Senden des Leseabschlusses bis nach dem Empfang einer Schreibzugriffsabschlussnachricht für jeden vorigen Schreibzugriff auf nichtflüchtigen Speicher verzögert.
  21. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine einen Zwischenspeicherhinweis aus einem Paket-Header identifiziert; und die Schreibanforderung vor dem Durchführen des Schreibzugriffs auf den nichtflüchtigen Speicher zwischenspeichert.
  22. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine den Steuer-Tag-Wert zum Bestimmen decodiert, dass der Schreibzugriff in dem einen oder den mehreren Datenpaketen ein Schreibzugriff auf nichtflüchtigen Speicher ist.
  23. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei die Datenpakete über eine Verbindung empfangen werden, die mit einem Peripheral-Component-Interconnect-Express(PCIe)-Protokoll kompatibel ist.
  24. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 17, wobei der Code beim Ausführen auf einer Maschine bewirkt, dass die Maschine einen Ordnungshinweis im Paket-Header zum Ordnen der Schreibabschlüsse in nichtflüchtigen Speicher identifiziert; und die Schreibzugriffe in einer Ordnung ausführt, die sich von der Ordnung der empfangenen Datenpakete unterscheidet.
  25. System, umfassend: einen Schnittstellen-Controller zum Empfangen eines Pakets von einer Eingabe/AusgabeVorrichtung; eine Zentraleinheit, umfassend Root-Komplex-Logik, wobei die Root-Komplex-Logik: ein Datenpaket über die Verbindung empfängt; ein in einem Header des Datenpakets gesetztes Hinweisbit bestimmt; einen Steuer-Tag-Wert im Datenpaket-Header bestimmt; und den Schreibzugriff auf nichtflüchtige Speicher und Daten von dem Datenpaket an einen Speicher-Controller sendet; und Speicher-Controller-Logik zum Ausführen eines Schreibzugriffs auf nichtflüchtigen Speicher.
DE112017004897.4T 2016-09-29 2017-09-18 Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition Pending DE112017004897T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/280,730 US11216396B2 (en) 2016-09-29 2016-09-29 Persistent memory write semantics on PCIe with existing TLP definition
US15/280,730 2016-09-29
PCT/US2017/051947 WO2018063832A1 (en) 2016-09-29 2017-09-18 Persistent memory write semantics on pcie with existing tlp definition

Publications (1)

Publication Number Publication Date
DE112017004897T5 true DE112017004897T5 (de) 2019-06-13

Family

ID=61687921

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017004897.4T Pending DE112017004897T5 (de) 2016-09-29 2017-09-18 Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition

Country Status (4)

Country Link
US (1) US11216396B2 (de)
CN (1) CN109643299B (de)
DE (1) DE112017004897T5 (de)
WO (1) WO2018063832A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628791B (zh) * 2018-05-07 2020-05-19 北京智芯微电子科技有限公司 基于pcie接口的高速安全芯片
US10866895B2 (en) 2018-12-18 2020-12-15 Advanced Micro Devices, Inc. Steering tag support in virtualized environments
US11775470B2 (en) * 2019-11-20 2023-10-03 Intel Corporation Transaction layer packet format
US20210311871A1 (en) * 2020-04-06 2021-10-07 Samsung Electronics Co., Ltd. System and method for aggregating server memory
US20200327041A1 (en) * 2020-06-25 2020-10-15 Gilad Shayevitz Closed chassis debugging through tunneling
US11669473B2 (en) * 2020-06-26 2023-06-06 Advanced Micro Devices, Inc. Allreduce enhanced direct memory access functionality
JP2022105928A (ja) * 2021-01-05 2022-07-15 住友電気工業株式会社 光トランシーバおよび光トランシーバの制御方法
US11762785B2 (en) * 2021-05-03 2023-09-19 Mellanox Technologies, Ltd. Peripheral component interconnect attributes shared using address bits
CN118175166A (zh) * 2022-12-09 2024-06-11 华为技术有限公司 一种有线串行总线数据传输方法、系统及相关装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US20100306442A1 (en) * 2009-06-02 2010-12-02 International Business Machines Corporation Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network
US8266383B1 (en) * 2009-09-28 2012-09-11 Nvidia Corporation Cache miss processing using a defer/replay mechanism
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US20110276744A1 (en) 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9083769B2 (en) * 2011-09-14 2015-07-14 Barco N.V. Electronic tool and methods for meetings
CN103988183B (zh) * 2011-12-20 2017-06-13 英特尔公司 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
US20130173834A1 (en) * 2011-12-30 2013-07-04 Advanced Micro Devices, Inc. Methods and apparatus for injecting pci express traffic into host cache memory using a bit mask in the transaction layer steering tag
DE112013000601T5 (de) * 2012-01-17 2014-12-18 Intel Corporation Techniken für die Befehlsbestätigung für den Zugriff auf ein Speichergerät durch einen entfernten Client
US20130346655A1 (en) * 2012-06-22 2013-12-26 Advanced Micro Devices, Inc. Bus agent capable of supporting extended atomic operations and method therefor
CA2838836C (en) * 2012-10-27 2018-05-01 Huawei Technologies Co., Ltd. Method, device, system and storage medium for implementing packet transmission in pcie switching network
US9081606B2 (en) 2012-11-13 2015-07-14 International Business Machines Corporation Asynchronous persistent stores for transactions
CN103117929B (zh) * 2013-01-31 2015-12-23 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统
US9424219B2 (en) * 2013-03-12 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge
US9547594B2 (en) * 2013-03-15 2017-01-17 Intel Corporation Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage
US10489158B2 (en) 2014-09-26 2019-11-26 Intel Corporation Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores
US9747245B2 (en) * 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
US20180279429A1 (en) * 2015-09-17 2018-09-27 Innosys, Inc. Solid State Lighting Systems
US20180088978A1 (en) * 2016-09-29 2018-03-29 Intel Corporation Techniques for Input/Output Access to Memory or Storage by a Virtual Machine or Container
JP7159208B2 (ja) * 2017-05-08 2022-10-24 マシモ・コーポレイション ドングルを使用することによって医療システムをネットワークコントローラとペアリングするためのシステム
US11465631B2 (en) * 2017-12-08 2022-10-11 Tesla, Inc. Personalization system and method for a vehicle based on spatial locations of occupants' body portions
US11614986B2 (en) * 2018-08-07 2023-03-28 Marvell Asia Pte Ltd Non-volatile memory switch with host isolation

Also Published As

Publication number Publication date
CN109643299B (zh) 2023-08-04
CN109643299A (zh) 2019-04-16
US11216396B2 (en) 2022-01-04
WO2018063832A1 (en) 2018-04-05
US20180089115A1 (en) 2018-03-29

Similar Documents

Publication Publication Date Title
DE112017004897T5 (de) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition
DE102019009207B3 (de) Vorrichtungen, verfahren und nichttransitorisches computerlesbares speichermedien für dvsec für eine effiziente peripheriegeräteverwaltung
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
NL2029511B1 (en) Source ordering in device interconnects
DE112013002069B4 (de) Hohes Leistungsverbindungskohärenz-Protokoll
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE112016004332T5 (de) Verfahren, vorrichtungen und systeme zum taktversatzausgleich von datenverbindungaufteilungen
DE102019132213A1 (de) Adressenübersetzung für skalierbare verlinkte Vorrichtungen
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE112013007724T5 (de) Gemeinsame Benutzung von Speicher und I/O-Diensten zwischen Knoten
DE112018002466T5 (de) Umgehung der entzerrung bei niedrigeren datenraten
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE102018006797A1 (de) Kohärente Speichereinrichtungen über PCIe
CN105718390A (zh) 共享存储器链路中的低功率进入
US10437616B2 (en) Method, apparatus, system for optimized work submission to an accelerator work queue
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102019109858A1 (de) Breiten- und Frequenzumsetzung mit PHY-Schicht-Vorrichtungen
DE112017001148T5 (de) Abflachende portalbrücke .
DE102020130536A1 (de) Adaptiver Eintritt in und adaptives Verlassen von Niedrigenergiezuständen

Legal Events

Date Code Title Description
R012 Request for examination validly filed