DE112013002069T5 - Hohes Leistungsverbindungskohärenz-Protokoll - Google Patents

Hohes Leistungsverbindungskohärenz-Protokoll Download PDF

Info

Publication number
DE112013002069T5
DE112013002069T5 DE112013002069.6T DE112013002069T DE112013002069T5 DE 112013002069 T5 DE112013002069 T5 DE 112013002069T5 DE 112013002069 T DE112013002069 T DE 112013002069T DE 112013002069 T5 DE112013002069 T5 DE 112013002069T5
Authority
DE
Germany
Prior art keywords
agent
request
memory
state
data
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.)
Granted
Application number
DE112013002069.6T
Other languages
English (en)
Other versions
DE112013002069B4 (de
Inventor
Robert G. Blankenship
Bahaa Fahim
Yen-Cheng Liu
Vedaraman Geetha
Jeff Willey
Robert Beers
Herbert H. Hum
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 DE112013002069T5 publication Critical patent/DE112013002069T5/de
Application granted granted Critical
Publication of DE112013002069B4 publication Critical patent/DE112013002069B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/1689Synchronisation and timing concerns
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • 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
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • 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
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/622State-only directory, i.e. not recording identity of sharing or owning nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Eine Bitte wird erhalten, der ist, in einem ersten Agenten Verweise anzubringen und um eine besondere Linie des Gedächtnisses zu bitten, in einem exklusiven Zustand verstocken zu werden. Eine Schnüffelei-Bitte wird beabsichtigt für einen oder mehr andere Agenten gesandt. Eine Schnüffelei-Antwort wird erhalten, der in einem zweiten Agenten, die Schnüffelei-Antwort Verweise anbringen soll, um einen writeback zum Gedächtnis einer modifizierten Linie des geheimen Lagers einzuschließen, die der besonderen Linie des Gedächtnisses entsprechen soll. Ein ganzer wird gesandt, um an den ersten Agenten gerichtet zu werden, worin das ganze Daten der besonderen Linie des auf den writeback beruhenden Gedächtnisses einschließen soll.

Description

  • FELD
  • Die gegenwärtige Enthüllung bezieht sich im Allgemeinen auf das Feld der Computerentwicklung, und mehr spezifisch zur Softwareentwicklung, die Koordination von gegenseitig-abhängigen gezwungenen Systemen einschließt.
  • HINTERGRUND
  • Fortschritte in der Halbleiter-Verarbeitung und Logikdesign haben eine Zunahme im Betrag der Logik erlaubt, die auf Geräten des integrierten Schaltkreises anwesend sein kann. Als eine Folgeerscheinung haben sich Computersystem-Konfigurationen von einzelnen oder vielfachen integrierten Schaltkreisen in einem System zu vielfachen Kernen, vielfachen Hardware-Fäden, und vielfacher logischer Verarbeiter-Gegenwart auf individuellen integrierten Schaltkreisen, sowie anderen innerhalb solcher Verarbeiter integrierten Schnittstellen entwickelt. Ein Verarbeiter oder integrierter Schaltkreis umfassen typisch einen einzelnen physischen Verarbeiter sterben, wo der Verarbeiter stirbt, kann jede Zahl von Kernen, Hardware-Fäden, logischen Verarbeitern, Schnittstellen, Gedächtnis, Kontrolleur-Mittelpunkten usw einschließen.
  • Infolge der größeren Fähigkeit, mehr in einer Prozession gehende Macht in kleineren Paketen anzupassen, haben kleinere Rechengeräte in der Volkstümlichkeit zugenommen. Smartphones, Blöcke, ultradünne Notizbücher, und andere Benutzerausrüstung sind exponential gewachsen. Jedoch sind diese kleineren Geräte auf Servern sowohl für die Datenlagerung als auch Komplex vertrauensvoll, der bearbeitet, der den Form-Faktor überschreitet. Folglich hat die Nachfrage auf dem Hochleistungsrechenmarkt (d. h. Server-Raum) auch zugenommen. Zum Beispiel, in modernen Servern, gibt es typisch nicht nur einen einzelnen Verarbeiter mit vielfachen Kernen, sondern auch vielfache physische Verarbeiter (kennzeichnete auch als vielfache Steckdosen), die Rechenmacht zu vergrößern. Aber wie die in einer Prozession gehende Macht zusammen mit der Zahl von Geräten in einem Rechensystem wächst, wird die Kommunikation zwischen Steckdosen und anderen Geräten kritischer.
  • Tatsächlich sind Verbindungen von traditionelleren Multifall-Bussen gewachsen, die in erster Linie elektrische Kommunikationen zu vollen geblasenen Verbindungsarchitekturen behandelten, die schnelle Kommunikation erleichtern. Leider, als die Nachfrage nach zukünftigen Verarbeitern, um sich an sogar höheren Raten zu verzehren, die entsprechen, wird Nachfrage auf den Fähigkeiten zu vorhandenen Verbindungsarchitekturen gelegt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • illustriert ein vereinfachtes Blockdiagramm eines Systems einschließlich einer Serienverbindung des Punkts-zu-Punkt, um Eingabe/Ausgabe-Geräte in einem Computersystem in Übereinstimmung mit einer Verkörperung zu verbinden;
  • illustriert ein vereinfachtes Blockdiagramm eines layered Protokoll-Stapels in Übereinstimmung mit einer Verkörperung;
  • illustriert eine Verkörperung eines Transaktionsdeskriptors.
  • illustriert eine Verkörperung einer Serienverbindung des Punkts-zu-Punkt.
  • illustriert Verkörperungen der potenziellen Hohen Leistungsverbindung (HPI) System-Konfigurationen.
  • illustriert eine Verkörperung eines layered mit HPI vereinigten Protokoll-Stapels.
  • illustriert ein Flussschema des Beispiel-Kohärenz-Protokoll-Konfliktmanagements.
  • illustriert ein Flussschema eines anderen Beispiel-Kohärenz-Protokoll-Konfliktmanagements.
  • illustriert ein Flussschema eines anderen Beispiel-Kohärenz-Protokoll-Konfliktmanagements.
  • illustriert ein Flussschema einer Beispiel-Schnüffelei-Antwort mit writeback zum Gedächtnis.
  • illustriert ein Flussschema eines anderen Beispiels einer Schnüffelei-Antwort mit writeback zum Gedächtnis.
  • illustriert ein Flussschema eines Beispiels writeback Stoß-Operation.
  • illustriert ein Flussschema eines Beispiels writeback zum Gedächtnis.
  • illustriert ein Flussschema einer Beispiel-Speicherkontrolleur-Erröten-Operation.
  • 1517 illustrieren Darstellungen von Beispiel-Protokoll-Zustandtischen.
  • illustriert eine Darstellung eines von Protokoll-Zustandtischen nistenden Beispiels.
  • illustriert eine Darstellung des Gebrauches von einer Reihe von Protokoll-Zustandtischen durch ein Beispiel, das Motor prüft.
  • illustriert eine Darstellung des Gebrauches von einer Reihe von Protokoll-Zustandtischen durch ein Beispiel, das Motor prüft.
  • illustriert eine Verkörperung eines Blockdiagramms für ein Rechensystem einschließlich eines Multikernverarbeiters.
  • Wie Kennziffern und Benennungen in den verschiedenen Zeichnungen zeigen wie Elemente an.
  • Detaillierte Beschreibung
  • In der folgenden Beschreibung werden zahlreiche spezifische Details hervor, wie Beispiele von spezifischen Typen von Verarbeitern und System-Konfigurationen, spezifischen Hardware-Strukturen, spezifischen architektonischen und architektonischen Mikrodetails, spezifischen Register-Konfigurationen, spezifischen Instruktionstypen, spezifischen System-Bestandteilen, spezifischen Verarbeiter-Rohrleitungsstufen, spezifischen Verbindungsschichten, spezifischen Konfigurationen des Pakets/Transaktion, spezifischen Transaktionsnamen, spezifischem Protokoll-Austausch, spezifische Verbindung widths, spezifische Erfüllungen, und Operation usw. gesetzt, um ein gründliches Verstehen der gegenwärtigen Erfindung zur Verfügung zu stellen. Das kann jedoch zu einem erfahrenem in der Kunst offenbar sein, dass diese spezifischen Details nicht notwendigerweise verwendet zu werden brauchen, um den Gegenstand der gegenwärtigen Enthüllung zu üben. In anderen Beispielen gut ist das Detaillieren von bekannten Bestandteilen oder Methoden, wie spezifische und alternative Verarbeiter-Architekturen, spezifische Logikstromkreise/Code für beschriebene Algorithmen, spezifischen Firmware-Code, auf niedriger Stufe Verbindungsoperation, spezifische Logikkonfigurationen, spezifische Produktionstechniken und Materialien, spezifische Bearbeiter-Erfüllungen, spezifischer Ausdruck von Algorithmen im Code, spezifische Macht unten und gating Techniken/Logik und andere spezifische betriebliche Details des Computersystems vermieden worden, um unnötigerweise zu vermeiden, die gegenwärtige Enthüllung zu verdunkeln.
  • Obwohl die folgenden Verkörperungen bezüglich der Energiebewahrung, Energieleistungsfähigkeit beschrieben werden können, Leistungsfähigkeit, und so weiter in spezifischen integrierten Schaltkreisen, wie in Rechenplattformen oder Mikroprozessoren bearbeitend, sind andere Verkörperungen auf andere Typen von integrierten Schaltkreisen und Logikgeräten anwendbar. Ähnliche Techniken und Lehren von Verkörperungen beschrieben können hierin auf andere Typen von Stromkreisen oder Halbleiterbauelementen angewandt werden, die auch aus solchen Eigenschaften einen Nutzen ziehen können. Zum Beispiel, werden die bekanntgegebenen Verkörperungen auf das Server-Computersystem, Tischcomputersysteme, Laptops, ultrabuch; nicht beschränkt, aber können auch in anderen Geräten, wie tragbare Geräte, smartphones, Blöcke, andere dünne Notizbücher, Systeme auf einem Span (SOC) Geräte, und eingebettete Anwendungen verwendet werden. Einige Beispiele von tragbaren Geräten schließen Autotelefone, Internetprotokoll-Geräte, Digitalkameras, persönliche Digitalhelfer (PDAs), und tragbare PCs ein. Hier können ähnliche Techniken für eine Hochleistungsverbindung angewandt werden, um Leistung zu vergrößern (oder sogar Macht) in einer niedrigen Macht-Verbindung zu sparen. Eingebettete Anwendungen schließen typisch einen Mikrokontrolleur, ein Digitalsignalverarbeiter (DSP), ein System auf einem Span ein, vernetzen Computer (NetPC), Satz-Spitzenkästen, vernetzen Mittelpunkte, breites Bereichsnetz (BLASSE) Schalter, oder jedes andere System, das die Funktionen und Operationen unterrichtet unten durchführen kann. Außerdem werden der Apparat, Methoden, und Systeme beschrieben hierin auf physische Rechengeräte nicht beschränkt, aber können sich auch auf Softwareoptimierungen für die Energiebewahrung und Leistungsfähigkeit beziehen. Als sogleich offenbar in der Beschreibung unten, die Verkörperungen von Methoden, Apparat werden kann, und Systeme beschrieben hierin (ob in der Verweisung auf die Hardware, firmware, Software, oder eine Kombination davon) lebenswichtig für eine 'grüne Technologie' mit Leistungsrücksichten erwogene Zukunft betrachtet werden können.
  • Wie Rechensysteme vorwärts gehen, werden die Bestandteile darin komplizierter. Die Verbindungsarchitektur, um sich zu paaren und zwischen den Bestandteilen zu kommunizieren, hat auch in der Kompliziertheit zugenommen, um sicherzustellen, dass Bandbreite-Nachfrage für die optimale Teiloperation befriedigt wird. Außerdem fordern verschiedene Marktsegmente verschiedene Aspekte von Verbindungsarchitekturen, um dem jeweiligen Markt anzupassen. Zum Beispiel, verlangen Server höhere Leistung, während das bewegliche Ökosystem manchmal im Stande ist, gesamte Leistung für Macht-Ersparnisse zu opfern. Und doch ist es ein einzigartiger Zweck von den meisten Stoffen, höchstmögliche Leistung mit dem maximalen Macht-Sparen zu versorgen. Weiter kann eine Vielfalt von verschiedenen Verbindungen aus Gegenstand beschrieben hierin potenziell einen Nutzen ziehen. Zum Beispiel, kann die Peripherische Teilverbindung (PCI) Schnellzug (PCIe) Verbindungsstoff-Architektur und QuickPath-Verbindung (QPI) Stoff-Architektur, unter anderen Beispielen, gemäß einem oder mehr Grundsätzen beschrieben hierin unter anderen Beispielen potenziell verbessert werden.
  • illustriert eine Verkörperung eines aus Verbindungen des Punkts-zu-Punkt zusammengesetzten Stoffs, die miteinander verbunden werden, eine Reihe von Bestandteilen wird illustriert. System 100 schließt Verarbeiter 105 und System-Gedächtnis 110 verbunden mit dem Kontrolleur-Mittelpunkt 115 ein. Verarbeiter 105 kann jedes in einer Prozession gehende Element, wie ein Mikroprozessor, ein Gastgeber-Verarbeiter, ein eingebetteter Verarbeiter, ein Coprozessor, oder anderer Verarbeiter einschließen. Verarbeiter 105 wird mit dem Kontrolleur-Mittelpunkt 115 durch den Vorderseite-Bus (FSB) 106 verbunden. In einer Verkörperung ist FSB 106 eine Serienverbindung des Punkts-zu-Punkt, wie beschrieben, unten. In einer anderen Verkörperung, verbinden Sie sich 106 schließt eine Reihe, Differenzialverbindungsarchitektur ein, die mit dem verschiedenen Verbindungsstandard entgegenkommend ist.
  • System-Gedächtnis 110 schließt jedes Speichergerät, wie zufälliges Zugriffsgedächtnis (RAM), unvergängliches (NV) Gedächtnis, oder anderes Gedächtnis zugänglich durch Geräte im System 100 ein. System-Gedächtnis 110 wird mit dem Kontrolleur-Mittelpunkt 115 durch die Speicherschnittstelle 116 verbunden. Beispiele einer Speicherschnittstelle schließen eine Rate der doppelten Daten (DDR) Speicherschnittstelle, ein Doppelkanal DDR Speicherschnittstelle, und ein dynamischer RAM (SCHLUCK) Speicherschnittstelle ein.
  • In einer Verkörperung kann Kontrolleur-Mittelpunkt 115 einen Wurzelmittelpunkt einschließen, Komplex einwurzeln lassen, oder Kontrolleur, wie in einer PCIe Verbindungshierarchie einwurzeln lassen. Beispiele des Kontrolleur-Mittelpunkts 115 schließen einen chipset, ein Speicherkontrolleur-Mittelpunkt (MCH), ein northbridge, ein Verbindungskontrolleur-Mittelpunkt (ICH) ein southbridge, und ein Wurzelkontrolleur/Mittelpunkt ein. Häufig bezieht sich die Frist chipset auf zwei physisch getrennte Kontrolleur-Mittelpunkte, z. B, ein Speicherkontrolleur-Mittelpunkt (MCH) verbunden mit einem Verbindungskontrolleur-Mittelpunkt (ICH). Bemerken Sie, dass gegenwärtige Systeme häufig den MCH integriert mit dem Verarbeiter 105 einschließen, während Kontrolleur 115 mit Eingabe/Ausgabe-Geräten auf eine ähnliche Weise, wie beschrieben, unten kommunizieren soll. In einigen Verkörperungen wird die Routenplanung der Gleichen-Gleichem durch den Wurzelkomplex 115 fakultativ unterstützt.
  • Hier wird Kontrolleur-Mittelpunkt 115 verbunden, um 120 durch die Serienverbindung 119 umzuschalten zu/überbrücken. Module des Eingangs/Produktion 117 und 121, der auch Schnittstellen/Häfen 117 und 121 genannt werden kann, können einen layered Protokoll-Stapel einschließen/durchführen, um Kommunikation zwischen dem Kontrolleur-Mittelpunkt 115 zur Verfügung zu stellen und 120 umzuschalten. In einer Verkörperung sind vielfache Geräte dazu fähig, verbunden zu werden, um 120 umzuschalten.
  • Schalten Sie 120 Weg-Pakete/Nachrichten vom Gerät 125 stromaufwärts, d. h. eine Hierarchie zu einem Wurzelkomplex, zum Kontrolleur-Mittelpunkt 115 und stromabwärts, d. h. unten eine Hierarchie weg von einem Wurzelkontrolleur, vom Verarbeiter 105 oder System-Gedächtnis 110 zum Gerät 125 um/überbrücken Sie. Schalten Sie 120, in einer Verkörperung, wird einen logischen Zusammenbau von vielfachen virtuellen PCI-To-PCI-Brücke-Geräten genannt. Gerät 125 schließt jedes innere oder äußerliche Gerät oder Bestandteil ein, der mit einem elektronischen System, wie ein Eingabe/Ausgabe-Gerät, ein Netzschnittstelle-Kontrolleur (Netzinformationszentrum), eine Zusatzfunktionskarte, ein Audioverarbeiter, ein Netzverarbeiter, eine Festplatte, ein Speichergerät, ein ROM der CD/DVD, ein Monitor, ein Drucker, eine Maus, eine Tastatur, ein Router, ein tragbares Speichergerät, ein Firewire Gerät, ein Universaler Serienbus (USB) Gerät, ein Scanner, und andere Geräte des Eingangs/Produktion zu verbinden ist. Häufig in der PCIe Mundart, wie Gerät, wird einen Endpunkt genannt. Obwohl nicht spezifisch gezeigt Gerät 125 eine Brücke (z. B, ein PCIe zur PCI/PCI-X-Brücke) einschließen kann, um Vermächtnis oder andere Versionen von Geräten oder durch solche Geräte unterstützten Verbindungsstoffen zu unterstützen.
  • Graphikgaspedal 130 kann auch mit dem Kontrolleur-Mittelpunkt 115 durch die Serienverbindung 132 verbunden werden. In einer Verkörperung wird Graphikgaspedal 130 mit einem MCH verbunden, der mit einem ICH verbunden wird. Schalten Sie 120, und entsprechend Eingabe/Ausgabe-Gerät 125 um, wird dann mit dem ICH verbunden. Eingabe/Ausgabe-Module 131 und 118 sollen auch einen layered Protokoll-Stapel durchführen und vereinigten Logik, um zwischen dem Graphikgaspedal 130 und Kontrolleur-Mittelpunkt 115 zu kommunizieren. Ähnlich der MCH Diskussion oben können ein Graphikkontrolleur oder das Graphikgaspedal 130 sich selbst in den Verarbeiter 105 integriert werden.
  • Sich zuwendend, wird eine Verkörperung eines layered Protokoll-Stapels illustriert. Layered-Protokoll schobert 200 auf kann, jede Form eines layered Nachrichtenstapels, wie ein QPI-Stapel, ein PCIe-Stapel, eine folgende Generation hohe Leistung einschließen, die Verbindung (HPI) Stapel, oder anderer Layered-Stapel schätzt. In einer Verkörperung kann Protokoll-Stapel 200 Transaktionsschicht 205, Verbindungsschicht 210, und physische Schicht 220 einschließen. Eine Schnittstelle, wie Schnittstellen 117, 118, 121, 122, 126, und 131 in der , kann als Nachrichtenprotokoll-Stapel 200 vertreten werden. Die Darstellung als ein Nachrichtenprotokoll-Stapel kann auch ein Modul genannt werden oder Einführen/Umfassen ein Protokoll-Stapel verbinden.
  • Pakete können verwendet werden, um Information zwischen Bestandteilen mitzuteilen. Pakete können in der Transaktionsschicht 205 und Datenverbindungsschicht 210 gebildet werden, um die Information vom Sendebestandteil bis den Empfang-Bestandteil zu tragen. Wie die übersandten Pakete durch die anderen Schichten fließen, werden sie mit der Zusatzinformation erweitert, die verwendet wird, um Pakete an jenen Schichten zu behandeln. An der Empfang-Seite kommt der Rückprozess vor, und Pakete werden von ihrer Physischen Schicht 220 Darstellung zur Datenverbindungsschicht 210 Darstellung und schließlich (für Transaktionsschicht-Pakete) zur Form umgestaltet, die durch die Transaktionsschicht 205 des Empfang-Geräts bearbeitet werden kann.
  • In einer Verkörperung kann Transaktionsschicht 205 eine Schnittstelle zwischen einem in einer Prozession gehenden Kern eines Geräts und der Verbindungsarchitektur, wie Datenverbindungsschicht 210 und Physische Schicht 220 zur Verfügung stellen. In dieser Beziehung kann eine primäre Verantwortung der Transaktionsschicht 205 den Zusammenbau und Zerlegung von Paketen (d. h., Transaktionsschicht-Paketen, oder TLPs) einschließen. Die Übersetzungsschicht 205 kann auch kredit-gegründete Fluss-Kontrolle für TLPs führen. In einigen Erfüllungen können Spalt-Transaktionen, d. h., Transaktionen mit der Bitte und Antwort getrennt durch die Zeit verwertet werden, eine Verbindung erlaubend, anderen Verkehr zu tragen, während das Zielgerät Daten für die Antwort unter anderen Beispielen sammelt.
  • Kredit-gegründete Fluss-Kontrolle kann verwendet werden, um virtuelle Kanäle und Netze zu begreifen, die den Verbindungsstoff verwerten. In einem Beispiel kann ein Gerät einen anfänglichen Betrag von Autorenangaben für jeden der erhalten Puffer in der Transaktionsschicht 205 ankündigen. Ein Außengerät am entgegengesetzten Ende der Verbindung, wie Kontrolleur-Mittelpunkt 115 in der , kann die Zahl von durch jeden TIP verbrauchten Autorenangaben aufzählen. Eine Transaktion kann übersandt werden, wenn die Transaktion eine Kreditgrenze nicht überschreitet. Auf den Empfang einer Antwort wird ein Betrag des Kredits wiederhergestellt. Ein Beispiel eines Vorteils solch eines Kreditschemas ist, dass die Latenz der Kreditrückkehr Leistung nicht betrifft, vorausgesetzt, dass auf die Kreditgrenze unter anderen potenziellen Vorteilen nicht gestoßen wird.
  • In einer Verkörperung können vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Adressraum des Eingangs/Produktion, und einen Nachrichtenadressraum einschließen. Speicherraumtransaktionen schließen ein oder mehr von gelesenen Bitten ein und schreiben Bitten, Daten einer von Gedächtnis kartographisch dargestellten Position zu übertragen. In einer Verkörperung sind Speicherraumtransaktionen dazu fähig, zwei verschiedene Adressformate, z. B, ein kurzes Adressformat, wie eine 32-Bit-Adresse, oder ein langes Adressformat wie 64-Bit-Adresse zu verwenden. Konfigurationsraumtransaktionen können verwendet werden, um auf Konfigurationsraum von verschiedenen mit der Verbindung verbundenen Geräten zuzugreifen. Transaktionen zum Konfigurationsraum können gelesene Bitten einschließen und Bitten schreiben. Nachrichtenraumtransaktionen (oder, einfach Nachrichten) können auch zur Unterstützung inbändigen Kommunikation zwischen Verbindungsagenten definiert werden. Deshalb, in einer Beispiel-Verkörperung, kann Transaktionsschicht 205 Paket-Kopfball/Nutzlast 206 sammeln.
  • Schnell sich auf die beziehend, wird eine Beispiel-Verkörperung eines Transaktionsschicht-Paket-Deskriptors illustriert. In einer Verkörperung kann Transaktionsdeskriptor 300 ein Mechanismus sein, um Transaktionsinformation zu tragen. In dieser Beziehung, Transaktionsdeskriptor 300 Unterstützungsidentifizierung von Transaktionen in einem System. Anderer potenzieller Gebrauch schließt Verfolgen-Modifizierungen der Verzug-Transaktionseinrichtung und Vereinigung der Transaktion mit Kanälen ein. Zum Beispiel, kann Transaktionsdeskriptor 300 globales Bestimmungskennzeichnen 302, Attribut-Feld 304 und Kanalbestimmungskennzeichnen 306 einschließen. Im illustrierten Beispiel wird globales Bestimmungskennzeichnen 302 gezeichnet, lokales Transaktionsbestimmungskennzeichnen 308 und Quellbestimmungskennzeichnen 310 umfassend. In einer Verkörperung ist globaler Transaktionsbezeichner 302 für alle hervorragenden Bitten einzigartig.
  • Gemäß einer Erfüllung ist lokales Transaktionsbestimmungskennzeichnen 308 ein Feld erzeugt von einem Frage-Agenten, und kann für alle hervorragenden Bitten einzigartig sein, die eine Vollziehung für diesen Frage-Agenten verlangen. Außerdem, in diesem Beispiel, identifiziert Quellbezeichner 310 einzigartig den requestor Agenten innerhalb einer Verbindungshierarchie. Entsprechend, zusammen mit dem Quellpersonalausweis 310, lokaler Transaktionsbezeichner stellt 308 Feld globale Identifizierung einer Transaktion innerhalb eines Hierarchie-Gebiets zur Verfügung.
  • Attribut-Feld 304 gibt Eigenschaften und Beziehungen der Transaktion an. In dieser Beziehung wird Attribut-Feld 304 potenziell verwendet, um Zusatzinformation zur Verfügung zu stellen, die Modifizierung des Verzug-Berührens von Transaktionen erlaubt. In einer Verkörperung schließt Attribut-Feld 304 Vorzugsfeld 312 ein, bestellte Feld 314 vor, Feld 316, und Feld ohne Schnüffelei 318 bestellend. Hier kann Vorzugssubfeld 312 von einem Initiatoren modifiziert werden, um einen Vorrang der Transaktion zuzuteilen. Vorbestelltes Attribut-Feld 314 wird vorbestellt für die Zukunft, oder von Verkäufer definierten Gebrauch verlassen. Mögliche Gebrauch-Modelle, die Vorrang oder Sicherheitsattribute verwenden, können durchgeführt werden, das vorbestellte Attribut-Feld verwendend.
  • In diesem Beispiel, Attribut-Feld 316 bestellend, wird verwendet, um fakultative Information zu liefern, die den Typ der Einrichtung befördert, die Verzug modifizieren kann, der Regeln bestellt. Gemäß einer Beispiel-Erfüllung zeigt ein Einrichtungsattribut '0' Verzug an, der befiehlt, dass Regeln sind zu gelten, worin ein Einrichtungsattribut '1' die entspannte Einrichtung anzeigt, worin schreibt, kann gehen schreibt in derselben Richtung, und Vollziehungen lesen, kann gehen schreibt in derselben Richtung. Schnüffelei-Attribut-Feld 318 wird verwertet, um zu bestimmen, ob Transaktionen herumgeschnüffelt werden. Wie gezeigt, identifiziert Kanalpersonalausweis-Feld 306 einen Kanal, mit dem eine Transaktion vereinigt wird.
  • In die Diskussion der zurückkehrend, kann eine Verbindungsschicht 210, auch gekennzeichnet als Datenverbindungsschicht 210, als eine Zwischenbühne zwischen der Transaktionsschicht 205 und der physischen Schicht 220 handeln. In einer Verkörperung verbindet sich eine Verantwortung der Daten Schicht 210 stellt einen zuverlässigen Mechanismus zur Verfügung, um Transaktionsschicht-Pakete (TLPS) zwischen zwei Bestandteilen auf einer Verbindung auszutauschen. Eine Seite der Datenverbindungsschicht 210 akzeptiert TLPs gesammelt durch die Transaktionsschicht 205, wendet Paket-Folge-Bezeichner 211, d. h. eine Kennnummer oder Paket-Zahl an, berechnet und wendet einen Fehlerentdeckungscode an, d. h. CRC 212, und legt den modifizierten TLPs der Physischen Schicht 220 für die Übertragung über eine ärztliche Untersuchung zu einem Außengerät vor.
  • In einem Beispiel schließt physische Schicht 220 logischen U-Boot-Block 221 und elektrischen Subblock 222 ein, um ein Paket einem Außengerät physisch zu übersenden. Hier ist logischer Subblock 221 für die 'Digital'-Funktionen der Physischen Schicht 221 verantwortlich. In dieser Beziehung kann der logische Subblock eine übersenden Abteilung einschließen, um weggehende Information auf die Übertragung durch den physischen Subblock 222, und eine Empfänger-Abteilung vorzubereiten, um zu identifizieren und erhaltene Information vor dem Übergang davon zur Verbindungsschicht 210 vorzubereiten.
  • Physical Block 222 enthält einen Sender und einen Empfänger. Der Sender wird von logischen Unterblöcken 221 mit den Symbole versorgt, die von dem Sender serialisiert wird und übermittelt auf das externe Gerät. Der Empfänger wird mit den serialisierten Symbolen von einem externen Gerät versorgt und weiter wandelt die Empfangssignale in Bitstreams. Der Bitstream wird deserialisiert und wird zu den logischen Unterblöcken 221 versorgt. In einer beispielen Ausführungsform, wird nur einen 8b/10b Übertragungscode verwndet, wobei Zehn-Bitsymbole werden gesendet/empfangen. Hier, spezial Symbole werden benutzt, um das Datenpaket mit den Rahmen 223 zu rahmen. In einer Beispiel, der Empfänger bietet auch die Symbol Clock, die wird von die ankommende serielle Stream abgejagt.
  • Wie oben Aufgeführt, zwar werden Transaktionsschicht 205, Link Layer 210 und physikal Layer 220 im Bezug auf spezifisch Ausführungsform des Protokollstacks (wie ein PCIe Protokollstack) diskutiert, aber der überlagerte Protokollstack ist nicht so begrenzt. Tatsächlich irgendein überlagerte Protokollstack kann hier enthaltet/durchgeführt oder übergenommen. Als Beispiel, ein Port oder ein Interface, das wie ein überlagerte Protokollstack presentiert wird, kann enthalten: ein erste Layer, um die Pakete zu montieren, d. h ein Transaktionsschicht, ein zweite Layer, um die Pakete zusammenzupressen, d. h. ein Link Layer und ein dritte Layer, um die Pakete zu übermitteln, d. h Physikal Layer. Als eine spezifische Beispiel, ein hochleistungsfähige verbindene überlagerte Protokoll verwendet, wie hier diskutiert wird.
  • Bezüglich zu dem Bild 4, ein Beispiel Ausführungsform der seriellen Punkte zu Punkte Gewebe illustriert. Ein seriellen Punkte zu Punkte Link kann Überragungsweg enthalten, um seriellen Daten zu übermitteln. Im gezeigt Ausführungsform, ein Link kann enthalten: zwei Niederspannung, unterschiedliche angetriebene Signal paare, also ein übermittelte Paar 406/411 und ein erhaltene Paar 412/407. Entsprechend, das Gerät 405 enthält Übertragungslogic 406, um die Daten zum Gerät 410 zu übermitteln und enthalten Logic 407, um die Daten vom Gerät 410 zu erhalten. In anderen Wörter, zwei Übertragungswege d. h Wege 416 und 417 und zwei Erhaltendewege d. h Wege 418 und 419, werden in einigen Umsetzung von Linken enthalten.
  • Ein Übertragungsweg beziehen auf irgendein Weg die daten zu übermitteln, zum Beispiel Übertragungslinie, eine Kupferlinie, eine Optischelinie, ein drahtlose kommunikationskanal, ein infrarote kommunikationslink oder andere Kommunikationswege. Eine Verbindung zwischen zwei Geräte, z. B. zwischen 405 und 410 Geräte, sind als ein Link bezeichnet, z. B. der Link 415. Ein Link kann ein Weg unterstützen – jeder Weg zeigen eine Reihe der unetrschiedlischen signalen Paaren (ein Paar der Übertragung und ein Paar der Empfang). Um die Brandbreit zu skalieren, ein Link kann einige Wege ansammeln bezeichnet als xN, wobei N ist irgendeine Untergestützte Link, wie 1, 2, 4, 8, 12, 16, 32, 64, oder weiter.
  • Ein unterschiedliche Paar bezeichnet als zwei Übertragungswege, z. B. Linie 416 und 417, um unterschiedliche Signale zu übermitteln. Als ein beispeil, wenn eine Linie 416 aus einer Niederspannungs Niveau schaltet, d. h ein erhöhende Flanke, Linie 417 von hohe bis niedrige Niveau geführt, d. h. fallenden Flanke. Unterschiedliche Signalle können potenziel demonstrieren besser elektrische Geräte, z. B. bessere Signalle Integrität, d. h Überkopplung, Unterschwingung oder Überschwingung der Spannung, klingeln, und andere vorteile. Dieses berücksichtigen besser Zeit Fenster, die schneller Übertragung ermöglichen.
  • In einer Ausführungform, ein neue Hohe Leistunge Verbinder (HPI) wird anbietet. HPI kann eine neue Generation Cache Kohärent Link basierte verbindet enhalten. Als Beispiel, HPI can in hohe Leistungfähige EDV Plattform, wie z. B. Arbeitsplätze oder Server, weden in Systems enthalten, wo PCIe oder andere verbindete Protokoll werden typisch benutzt, um die prozessoren, Beschleuniger, I/O Geräte zu verbinden. Jedoch, HPI ist nicht so begrenzt. HPI wird in irgendein System oder Plattform verwendet. Weiter die individuelle Ideen entwickelt kann zu dieser Verbinderen und Plattformen z. B. PCIe, MIPI, QPI, usw gelten
  • Um mehrerer Geräte zu unterstützen, HPI kann einer Befehlssatzarchitektur umfassen (ISA) Agnostiker (dh HPI ist in der Lage, in mehreren unterschiedlichen Geräten durchgeführt werden). In einem anderen Szenario kann HPI auch genutzt werden, um hohe Leistungsfähige/O-Geräte zu verbinden, und nicht nur Prozessoren oder Beschleuniger. Zum Beispiel kann ein Hochleistungs PCIe-Gerät zu HPI durch eine entsprechende Übersetzung Brücke gekoppelt werden (dh HPI auf PCIe). Darüber hinaus können die Verbindungen von vielen HPI HPI-basierte Geräte, wie beispielsweise Prozessoren, auf verschiedene Weise (zum Beispiel Sterne, Ringe, Gitter, etc.) verwendet werden. Bild 5 lautet beispielsweise Implementierungen von mehreren potentiellen Multi-Sockel-Konfigurationen. Ein Zwei-Sockel-Konfiguration 505, wie dargestellt, kann zwei HPI Links enthalten; In anderen Implementierungen kann eine HPI Link verwendet werden. Für größere Topologien kann jede Konfiguration so lange wie ein Bezeichner (ID) verwendet wird und es gibt eine Form des virtuellen Weg, unter anderen zusätzlichen oder Ersatzfunktionen verwendet werden. Wie in einem Beispeil gezeignet ist, ein vier Buchsenkonfiguration 510 hat eine HPI Verbindung von jedem Prozessor zu einem anderen. Aber im acht Socket-Implementierung in der Konfiguration 515 gezeigt, nicht jeder Buchse ist direkt miteinander durch eine Verbindung HPI Link. Allerdings, wenn ein virtueller Weg oder Kanal zwischen den Prozessoren vorhanden ist, wird die Konfiguration unterstützt. Eine Reihe von unterstützten Prozessoren umfasst 2–32 in einer nativen Domäne. Höhere Anzahl von Prozessoren kann durch die Verwendung von mehreren Domänen oder andere Verbindungen zwischen den Knoten-Controller, unter anderen Beispielen erreicht werden.
  • Die HPI-Architektur enthält eine Definition einer überlagerte Protokollarchitektur, einschließlich in einigen Beispielen Protokollschichten (kohärente, nicht-kohärenten und gegebenenfalls anderen Speicher basierte Protokolle), eine Routing-Schicht, eine Verbindungsschicht und eine physikalische Schicht, die zugehörigen I/O-Logik. Darüber hinaus kann HPI weitere Verbesserungen an Power Manager (wie Stromsteuereinheiten (PKE)), Design for Test-und Debug (DFT), Fehlerbehandlung, Register, Sicherheit, unter anderen Beispielen zusammen. Bild 6 zeigt eine Ausführungsform eines beispiel HPI überlagerte Protokollstapel. In einigen Implementierungen kann wenigstens einige der Schichten im Bild 6 kann optional sein. Jede Layer beschäftigt sich mit seinem eigenen Niveau der Granularität oder Quanteninformations (der Protokollschicht 605a, b mit Paketen 630, Verbindungsschicht 610a, b mit huscht 635, und der physikalischen Schicht 605a, b mit Phits 640). Beachten Sie, dass ein Paket, in einigen Ausführungsformen können Teil Flits, eine einzige Flit enthalten oder mehreren Flits auf der Implementierung.
  • Als ein erstes Beispiel, eine Breite eines phit 640 umfasst eine 1:1 Abbildung von Link-Breite an Bits (beispielsweise 20-Bit-Verbindungsbreite umfasst eine phit von 20 Bit, etc.). Flitzt kann eine größere Größe, wie 184, 192, oder 200 Bit. Beachten Sie, dass, wenn phit 640 20 Bit breit ist und die Größe der Flit 635 184 Bits ist, dann dauert es eine Bruchzahl von Phits 640 ein Flit 635 zu senden (zB 9,2 Phits 20 zu übertragenden Bits eine 184-Bit-Flit 635 oder 9,6 bei 20 Bits zu übertragen eine 192-Bit-huschen, unter anderen Beispielen). Beachten Sie, dass Breiten der Grundverbindung in der physikalischen Layer variieren können. Zum Beispiel kann die Anzahl der Fahrspuren je Fahrtrichtung 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 usw. umfassen In einer Ausführungsform Verbindungsschicht 610a, in der Lage ist, b Einbetten mehrere Stücke unterschiedlicher Transaktionen in einem Flit und einen oder mehrere Header (zB 1, 2, 3, 4) innerhalb des Flit eingebettet werden. In einem Beispiel spaltet HPI die Header in entsprechende Schlitze, um mehrere Nachrichten in dem Flit für verschiedene Knoten bestimmt aktivieren.
  • Physical Layer 605a, b, in einer Ausführungsform kann für die schnelle Übertragung von Informationen auf dem physikalischen Medium (elektrisch oder optisch usw.) verantwortlich. Die physikalische Verbindung kann Punkt-zu-Punkt zwischen zwei Schichtinstanzen, wie Schicht 605a und 605b sein. Die Verbindungsschicht 610a, b abstrahieren kann die physikalische Schicht 605a, b aus den oberen Schichten und bietet die Möglichkeit, Daten zuverlässig zu übertragen (wie auch Anfragen) und verwalten Flusskontrolle zwischen zwei direkt verbundenen Einheiten. Der Link Layer kann auch für die Virtualisierung der physischen Kanal in mehrere virtuelle Kanäle und Nachrichtenklassen zuständig sein. Die Protokollschicht 620a, b beruht auf der Sicherungsschicht 610a, b, um Protokoll-Nachrichten in die entsprechenden Meldeklassen und virtuelle Kanäle vor der Übergabe an die physikalische Schicht 605a, b für die Übertragung über die physikalischen Verbindungen abzubilden. Link-Layer-610a, b kann mehrere Nachrichten, wie eine Anfrage, Snoop, Reaktion, Rückschreiben, nicht-kohärente Daten, unter anderen Beispielen unterstützen.
  • Die Psysikal Layer 605a, b (oder PHY) der HPI kann über der elektrischen Layer (dh elektrische Leiter, die zwei Komponenten) und unterhalb der Link Layer 610a, b ausgeführt werden, wie im Bild 6 gezeigt. Die psysikal Layer und die entsprechende Logik kann für jedes Mittel befinden und verbindet die Link Layer auf beiden Agenten (A und B) zueinander (zB Vorrichtungen auf beiden Seiten einer Verbindung) getrennt. Die lokalen und entfernten elektrischen Schichten werden durch physische Medien verbunden (zB Drähte, Leitungen, optische, etc.). Die physikal Layer 605a, b, in einer Ausführungsform hat zwei Hauptphasen, die Initialisierung und den Betrieb. Während der Initialisierung ist die Verbindung der Link Layer undurchlässig und Signalisierung kann eine Kombination von Zeitzuständen und Handshake-Ereignisse betreffen. Während des Betriebs ist die Verbindung transparent zu Link Layer und Signalisierung erfolgt bei einer Geschwindigkeit, wobei alle Bahnen zusammen als eine einzige Link arbeiten. Während der Betriebsphase, transportieren der physikal Layer Flitzen von Agent A bis Agent B und von Agent B bis Agent A. Die Verbindung wird auch als Link bezeichnet und abstrahiert einige physikalische Aspekte, einschließlich Medien, Breite und Geschwindigkeit aus den Verbindungsschichten beim Austausch huscht und Steuerung / Status der aktuellen Konfiguration (zB Breite) mit der Verbindungsschicht. Die Initialisierungsphase enthält kleinere Phasen zB Polling, Konfiguration. Die Betriebsphase umfasst auch kleinere Phasen (zB Link Power Management-Staaten).
  • In einer Ausführungsform, Verbindungsschicht 610a, b kann implementiert werden, um zuverlässige Datenübertragung zwischen zwei Protokoll oder routing Entitäten zu bieten. Der Link-Layer kann abstrakte physikalische Schicht 605a, b von der Protokollebene 620a, b, und können verantwortlich für die Flusskontrolle zwischen zwei Protokoll-Agenten (A, B) und Dienstleistungen virtuellen Kanal auf der Protokollebene (Nachrichtenklassen) und Routing-Schicht (virtuelle Netzwerke). Die Schnittstelle zwischen der Protokollebene 620a, b und der Sicherungsschicht 610a, b kann in der Regel auf Paketebene. In einer Ausführungsform, die kleinste Einheit der Transfer auf der Sicherungsschicht wird als bezeichnet eine Flit die eine angegebene Anzahl von Bits, z. B. 192 Bit oder einige andere Konfession. Die Verbindungsschicht 610ab beruht auf dem Physical Layer 605a, b der Physical Layer zentrieren 605a, b Einheit Umladen (Phit) in der Sicherungsschicht 610a, b Einheit der Übertragung (Flit). Darüber hinaus, die Link-Layer 610a, b kann logisch in zwei Teile, einen Sender und Empfänger aufgeteilt werden. Ein Sender/Empfänger-Paar auf eine Entität möglicherweise zu einem Empfänger/Sender-paar auf eine andere Entität verbunden. Flusssteuerung wird oft auf eine Flit und einer Paket-Basis durchgeführt. Fehlererkennung und Korrektur erfolgt auch potenziell auf Basis Level flitzen.
  • In einer Ausführungsform, Routing Schicht 615a, b kann eine flexible und verteilte Methode HPI Arbeitsplanbuchungen aus einer Quelle zu einem Ziel zukommen lassen. Das System ist flexibel, da die routing-Algorithmen für mehrere Topologien durch programmierbare routing-Tabellen auf jedem Router angegeben werden können, (die Programmierung in einer Ausführungsform erfolgt durch Firmware, Software oder eine Kombination davon). Die routing-Funktionalität kann verteilt werden; Das routing kann durch eine Reihe von Arbeitsgänge, mit jedem routing Schritt definiert wird, durch eine Suche nach einer Tabelle auf entweder die Quelle, Fortgeschrittene, oder Ziel Router erfolgen. Die Suche auf eine Quelle kann verwendet werden, um ein HPI-Paket in der HPI-Stoff zu injizieren. Die Suche auf einen Zwischenrouter kann verwendet werden, ein HPI-Paket aus einer input-Port an eine Ausgangs-Port weiterleiten. Die Suche auf ein Ziel-Port kann den Ziel-HPI-Protokoll-Agent als Ziel verwendet werden. Beachten Sie, dass die Routing-Schicht, in einigen Implementierungen seit den Routingtabellen dünn sein kann, und somit die routing-Algorithmen nicht speziell-Spezifikation definiert sind. Dies ermöglicht Flexibilität und eine Vielzahl von Einsatzmöglichkeiten, einschließlich flexible Plattform architektonische Topologien von der Systemimplementierung definiert werden. Die Routing-Schicht 615a, setzt b auf der Sicherungsschicht 610a, b für die Bereitstellung der Einsatz von bis zu drei (oder mehr) virtuelle Netzwerke (VNs) – bei einem Beispiel, zwei Deadlock-freie VNs, VNO und VN1 mit mehreren Nachrichtenklassen in jedes virtuelle Netzwerk definiert. Ein gemeinsames Adaptives virtuelles Netz (VNA) kann in der Link-Ebene definiert werden, aber diese adaptive Netzwerk kann nicht direkt im routing-Konzepte, ausgesetzt werden, da jede Nachrichtenklasse und virtuelles Netzwerk kann dedizierte Ressourcen und garantiert Fortschritt, neben anderen Funktionen und Beispiele.
  • In einer Ausführungsform zählen HPI eine Kohärenz Protokollschicht 620a, b, Agenten, die Zwischenspeicherung von Zeilen mit Daten aus dem Speicher zu unterstützen. Vermittler wollen Cache-Speicherdaten kann das Kohärenz-Protokoll verwenden, um die Zeile von Daten in den Cache geladen zu lesen. Vermittler wollen eine Reihe von Daten im Cache zu ändern kann das Kohärenz-Protokoll verwenden, um Besitz der Linie zu erwerben, bevor Sie die Daten ändern. Nach dem Ändern einer Zeile, kann ein Agent Protokollanforderungen im Cache zu halten, bis es entweder die Zeile wieder in den Speicher schreibt oder die Zeile in einer Antwort auf eine externe Anforderung enthält folgen. Schließlich kann ein Agent externe Anforderungen eine Linie in seinem Cache ungültig erfüllen. Das Protokoll sorgt Kohärenz der Daten durch diktieren die Regeln, die alle Cache Agenten folgen können. Darüber hinaus Mittel für Agenten ohne Caches zusammenhängend lesen und Schreiben von Speicherdaten.
  • Zwei Bedingungen können geltend gemacht werden, um Transaktionen, die mit dem HPI-Kohärenz-Protokoll unterstützen. Erstens kann das Protokoll Datenkonsistenz, beispielsweise auf einer Basis pro Adresse unter Daten in Agenten-Caches und zwischen diesen Daten und die Daten im Arbeitsspeicher beibehalten. Informell, Datenkonsistenz steht für jede gültige Zeile der Daten in ein Agent-Cache für eine aktuelle Zahl der Daten und in eine Kohärenz Protokollpaket übertragenen Daten können den aktuelle Wert der Daten darstellen, an die Zeit, die sie gesendet wurde. Wenn keine gültige Kopie der Daten im Cache oder in Übersetzung vorhanden ist, kann das Protokoll stellen Sie sicher, dass der aktuelle Wert der Daten im Arbeitsspeicher befindet. Zweitens kann das Protokoll wohldefinierten Engagement Punkte für Anforderungen stellen. Engagement Punkte für Lesevorgänge können darauf hinweisen, wenn die Daten verwendet werden kann; und schreibt sie möglicherweise anzugeben, wenn die geschriebenen Daten weltweit beobachtbaren ist und durch nachfolgende Lesevorgänge geladen werden. Das Protokoll kann diese Verpflichtung-Punkte für zwischengespeichert werden und speicherbar (UC) Anforderungen im zusammenhängenden Speicherbereich unterstützen.
  • Das HPI-Kohärenz-Protokoll kann auch den Fortschritt der Kohärenz Anforderungen von einem Agenten an eine Adresse in den zusammenhängenden Speicherplatz sorgen. Sicherlich können Transaktionen schließlich zufrieden und zog für ordnungsgemäße Systembetrieb. Das HPI-Kohärenz-Protokoll, haben einige Verkörperungen, keine Ahnung ”Wiederholen” zum Auflösen von Ressourcenkonflikten Zuweisung. So, das Protokoll selbst kann definiert werden, um keine zirkuläre Abhängigkeiten enthalten, und Implementierungen können in ihren Entwürfen Abhängigkeiten nicht einzuführen, die zu Deadlocks führen können kümmern. Darüber hinaus kann das Protokoll darauf hinweisen, wo die Entwürfe zu fairen Zugang zu Ressourcen zu leisten imstande sind.
  • Logisch, das HPI-Kohärenz-Protokoll in einer Ausführungsform, zählen drei Elemente: Kohärenz(oder Zwischenspeichern)-Agents, home-Agents und der HPI interconnect Stoff verbinden die Agenten. Kohärenz und home Agents können zusammenarbeiten, um die Datenkonsistenz zu erreichen durch den Austausch von Nachrichten über die Verbindung. Die Verbindungsschicht 610a, b und die zugehörige Beschreibung bieten die Details der Interconnect-Stoff darunter wie es hält sich an das Kohärenz-Protokoll-Anforderungen, hierin diskutiert. (Es sei darauf hingewiesen, dass die Einteilung in Kohärenz und home Agents aus Gründen der Übersichtlichkeit ist. Eine Design kann enthalten mehrere Agenten beider Typen in einen Sockel oder sogar Agenten Verhaltensweisen zu einer einzigen Design-Einheit, unter anderen Beispielen kombinieren.)
  • In einem Beispiel können Heimagenten gestaltet werden, physische Erinnerung zu schützen. Jeder Heimagent ist verantwortlich für ein Gebiet des zusammenhängenden Speicherplatzes. Gebiete nicht-überlappen, in, dass eine einzelne Adresse von einem Heimagenten geschützt wird. Zusammen bedecken die Heimagentgebiete in einem System den zusammenhängenden Speicherplatz. Zum Beispiel kann jede Adresse von wenigstens einem Heimagenten geschützt werden. Daher in einer Verkörperung, kann jede Adresse in eines HPI Systems dem zusammenhängenden Speicherplatz zu genau einem Heimagenten aufzeichnen.
  • Hausagenten im HPI Kohärenz-Protokoll, in einer Verkörperung, können dafür verantwortlich sein, Bitten zum zusammenhängenden Speicherraum zu bedienen. Für gelesen (Rd) Bitten können Hausagenten Schnüffeleien (Snp) erzeugen, ihre Antworten bearbeiten, eine Datenantwort senden, und eine Vollziehungsantwort senden. Für die Aufhebung (Inv) bittet, Hausagenten können notwendige Schnüffeleien erzeugen, ihre Antworten bearbeiten, und eine Vollziehungsantwort senden. Dafür schreiben Bitten, Hausagenten können die Daten auswendig lernen und eine Vollziehungs antwort senden.
  • Hausagenten können Schnüffeleien im HPI Kohärenz-Protokoll zur Verfügung stellen und Schnüffelei-Antworten von Kohärenz-Agenten bearbeiten. Hausagenten können auch vorwärts Bitten bearbeiten, die eine spezielle Schnüffelei-Antwort von Kohärenz-Agenten für die Konfliktentschlossenheit sind. Wenn ein Hausagent eine Vorwärts bitte erhält, kann es eine Vorwärtsantwort auf den Kohärenz-Agenten senden, der die Vorwärts bitte erzeugte (d. h., der Agent, der eine widerstreitende Schnüffelei-Bitte entdeckte). Kohärenz-Agenten können die Einrichtung dieser Vorwärtsantworten und Vollziehungsantworten vom Hausagenten verwenden, um Konflikte aufzulösen.
  • Ein Verständlichkeitsagent darf unterstützte Verständlichkeitsprotokollbitten ausgeben. Bitten dürfen zu einer Adresse im zusammenhängenden Speicherplatz ausgegeben werden. Daten haben für Vorlesungsbitten (Rd) außer RdCur darf sein gleichmäßig empfangen. Daten für RdCur Bitten dürften gleichmäßig gewesen sein, als das Datenpaket erzeugt wurde (obwohl es veraltet während Lieferung) geworden sein dürfte. Stellen Sie 1 Schau eine vorbildliche, nicht-ausführliche Liste des Potentials unterstützte Bitten zurück: TABELLE 1
    Name Semantik Cachestatus
    Rdcode fordern Sie ein Cachezeile F oder S-Zustand an. F oder S
    RdDaten fordern Sie eine Cachezeile E, F oder S Zustand an. F oder S
    RdMiger fordern Sie eine Cachezeile M, E, F oder S Zustand an. M und (F oder S)
    RdInv fordern Sie eine Cachezeile E Zustand an. Wennzeilezuvorim M-Zustandzwischengespeicherwurde, Geschrieben die zieleSpeichervor E Datengeliefert E
    RdInvOwn fordern Sie ein Cachezeile M oder E-Zustand an. M
    RdCur fordern Sie ein CachezeilespeicherbarSchnappschuss.
    InvItoE Fordern Sie den exklusiven Besitz an eine Cachezeile ohne Datenempfangt an. M oder E
    InvItoM Fordern Sie den exklusiven Besitz an eine Cachezeile ohne Datenempfangt und Rückschreiben bald darauf ausführen an. M oder E
    InvXtoI Aus allen Caches spüleneine Cachezeile und erlischt die zeile in seinem Cache vor dieser Anforderung ausgegeben.
    WbMtoI Schreiben Sie eine Cachezeile in M Zustand zurück in den Speicher und die zeile im Cache ungültig. M
    WbMtoS Schreiben Sie eine Cachezeile M Zustand zurück in den Speicher und Übergangzu S-Zustand M oder S
    WbMtoE Schreiben Sie eine Cachezeile in M Zustand zurück in den Speicher und Übergangzu E Zustand M oder E
    WbMtoIPtl Schreiben Sie eine Cachezeile in M Zustand zurück in den Speichernach eine Byt e-Enable-Maske, und Übergang zu I-Zustand M
    WbMtoEPtl Schreiben Sie eine Cachezeile in M Zustand zurück in den Speichernach eine Byt e-Enable-Maske und übergehen Sie ziele E Zustand, und deaktivieren Sie die ziele im Cache. M oder E
    EvctCIn Mitteilung an die home-Agent, dass ein Cache in E Status Zeile wurde im Cachefürungültigerklärt. E
    WbPushMtoI SchickenSieeine ziele in M zustandhome Agent und die Linie im Cache für ungültigerklären; Home-Agent kann entweder die Zeile in Speicher zurückschreiben oderschicken Sie es an einen lokalen Cache-Agent mit M Zustand. M
    WbFlush Fordern SiespulenUmsetzungspezifischer Adressen in derSpeicherhierarchie schreibt an. Keine Daten ist mit der Anforderung gesendet.
  • HPI kann einen Kohärenz-Protokoll unter Nutzung der Grundsätze das MESI-Protokoll unterstützen. Jeder Cachezeile kann mit einem oder mehreren unterstützten Zuständegekennzeichnet warden. Ein ”M” oder ”Modified” Zustand kann auf die Cache Zeilenwert von diesem Wertgeändert wurde, in den Hauptspeicher hinweisen. Eine Linie in den M Zustand ist nur in besonderen und der entsprechenden Cache-Agenten kann die geändertenDaten zurück in den Speicher zu einem bestimmten Zeitpunkt in der Zukunftbeispielsweise schreiben bevor es ermöglicht jede andere Lesen des Maing (nichtmehr gültig) Speicherzustands verpflichtet werden. Ein Rückschreiben kann die Strecke von den M-Zustand in den E-Zustand wechseln. ”E” oder ”Exklusiv” Zustand kann angeben, dass die Cache-Line nur im aktuellen Cache vorhanden ist, sondern, dass der Wert im Hauptspeicher entspricht. DieCachezeile in E-Zustand kann der Übergang zur S-Zustand jederzeit alsReaktion auf eine Leseanforderung oder schriftlich an die Linie in den M-Status geändert werden. Die ”S” oder ”Shared” Zustand kann zeigt, dass die Cachezeile in anderen Caches der Maschine gespeichert werden kann und einen Wert hat, der der Hauptspeicher entspricht. Die Linie (geänderte an den Staat) verworfen werden kann zu jeder Zeit. Das ”Ich” oder ”Invalid” zustand kann bedeuten, dass eine Cachezeile ungültig oderunbenutzt ist. Anderen Staates können auch in unterstützte HPI, wie ein ”F” oder ”Forward” Freigabezustand, der angibt, dass der freigegebenen Zeilenwert ananderen Caches weitergeleitet werden, die auch die Zeile, unter anderen Beispielenzu teilen.
  • Tabelle 2 beispielhafte Informationen enthalten, die in einigen Kohärenz-Protokollnachrichten eingefügt werden kann, einschließlich Snoop, Lese- undSchreibanforderungen, unter anderen Beispielen: TABELLE 2
    Feld Nutzung
    cmd Nachricht-Befehl (oder Name oder Opcode)
    addr Adresse einer kohärenten Cache-Linie.
    destNID Knoten ID (NID) Ziel (Home oder Kohärenz) Agent.
    reqNID NID Kohärenz Agent anzufordern
    peerNID NID der Kohärenz-Agent, der die (vordere-Anforderungsnachricht) gesendet.
    reqTIDI ID der Ressource zugewiesen vom anfordernden Agent für dieTransaktion, auch bekannt als RTID (oder Transaktions-ID anfordern).
    HomeTID ID der Ressource von den home-Agent zum Verarbeiten derAnforderung, auch bekannt als HTID (oder Startseite Transaktions-ID) zugeordnet.
    data Eine Cachezeile Daten.
    mask Byte-Maske, um die Daten zu qualifizieren.
  • Snoop-Nachrichten können von home Agents generiert und auf KohärenzAgenten gerichtet werden. Ein virtuellen Kanal von Snoop (SNP) eignet sich für Schnüffler und in einer Ausführungsform sind die nur Nachrichten, die denvirtuellen SNP-Kanal verwenden. Schnüffler zählen der anfordernden Agent NIDund RTID, die er für die Anforderung zugeordnet, für den Fall, dass Snoop direktan den anfordernden Agent gesendeten Daten führt. Snoops, können in einer Ausführungsform, die von den home-Agent zumVerarbeiten der Anforderung zugeordneten HTID auch. Verarbeitung SnoopKohärenz-Agent kann die HTID die Snoop-Antwort enthalten, die es zurück anden home-Agent sendet. Schnüffler können in einige Instanz den home-AgentNID sind nicht da es enthalten Adresse, die der gezielten Kohärenz-Agent führtabgeleitet werden bei seiner Antwort zu senden. Fanout-Schnüffler (die mit”SnpF” Präfix) kein Ziel NID enthalten, da die Routing-Ebene fürdie Generierung der entsprechenden Snoop-Nachrichten an alle Peers in der Fan out-Region zuständig ist. Ein Snoop Kanalnachrichten beispielhaft aufgeführtist Tabelle 3: TABELLE 3:
    Befehl Semantik Feld
    SnpCode Snoop, Daten in F oder S-Zustand zu erhalten. cmd, addr, destNID reqNID, reqTID, homeTID
    SnpData Snoop, Daten in E, F oder S-Zustand zu erhalten.
    SnpMigr Snoop, Daten in M, E, F oder S-Zustand zu erhalten.
    Snpinv Snoop, Peercache Spülung jede M-Kopie in den Speicher zu entkräften.
    SnpInvOwn Snoop, Daten in M oder E Zustand zu erhalten.
    SnpCur Snoop einen speicherbar Snapshot einer Cache-Linie zu erhalten.
    SnpFCode Snoop, Daten in F oder S-Zustand zu erhalten; Routing Schicht, Verteilung an alle Fanout-Peers zu behandeln cmd, addr, reqNID, reqTID, homeTID
    SnpFData Snoop, Daten in E, F oder S-Zustand zu erhalten; Routing Schicht, Verteilung analle Fanout-Peers zu behandeln
    SnpFMigr Snoop, Daten in M, E, F oder S-Zustand zu erhalte n; Routing Schicht, Verteilungan alle Fanout-Peers zu behandeln
    SnpFInvown Snoop, Daten in M oder E Zustand zu erhalten; Routing Schicht, Verteilung analle Fanout-Peers zu behandeln.
    SnpFIvn Snoop, Peercache Spülung jede M-Kopie in den Speicher zu entkräften; RoutingSchicht, Verteilung an alle Fanout-Peers zu behandeln.
    SnpCur Snoop einen speicherbar Snapshot einer Cache-Li nie zu erhalten; Routing Schicht, Verteilung an alle Fanout-Peers zu behandeln.
  • HPI unterstützen mogen auch nicht Snoop-Anforderungen, die sie an eineAdresse, z. B. als inkohärente Anforderungen implementiert ausstellen können. Beispiele für solche Anfragen kann ein nicht Snoop lesen auf Anfrage eineschreibgeschützte Linie Form Speicher, nicht-Snoop zu schreiben eine Zeile zumSpeicher und das Schreiben einer Zeile in den Speicher nach einer Maske, unteranderen möglichen Beispielen.
  • Bei einem Beispiel, können vier allgemeine Arten von Antwortnachrichten in dasHPI-Kohärenz-Protokoll definiert werden: Daten, Fertigstellung, Snoop undvorwärts. Bestimmte Datennachrichten können einen zusätzlichen Abschluss-Hinweis tragen und bestimmte Snoop-Antworten können Daten tragen. Antwortnachrichten dürfen den virtuellen RSPKanal und der Kommunikation Stoffkann korrekte Nachrichtenübermittlung Reihenfolge geordneten AbschlussAntworten und weiterleiten Antworten beibehalten.
  • Tabelle 4 enthält eine Liste der zumindest einige potenzielle Antwortnachrichten, die anhand eines Beispiels HPI-Kohärenz-Protokoll unterstützt: TABELLE 4
    Name Semantik Feld
    Data M Data M Zustandist. cmd, destNID, reqTID, data
    Data E Data E Zustandist.
    Data F Data F Zustandist.
    Data SI Daten in S Zustand oder speicherbar ”Snapshot”.
    Data M Mit einer geordneten Abschluss-Antwort Data ist in M Zustand
    Data E Daten ist E Zustand mit einer geordneten Abschluss-Antwort.
    Data F Daten ist F mit einer geordneten Abschluss-Antwort.
    Data SI Daten in S Zustand oder speicherbar ”Snapshot”, mit einergeordneten Ab schluss-Antwort.
    CmpU Vollzugsmeldung ohne Bestellung Anforderungen. cmd, destNID, reqTID
    CmpO Vollzugsmeldung mit forward Antworten bestellt werden.
    RspI Cache ist im I Zustand. cmd, destNID, homeTID
    RspS Cache ist in S-Zustand.
    RspFwd Kopie der Cachezeile schickte man ersuchenden Agent, Cache-Zustand nichtgeändert haben.
    RspFwdI Kopie des Cachezeile war ersuchenden Agenten geschickt Cache Übergänge zugeben.
    RspFwdS Kopie des Cachezeile war ersuchenden Agenten, Cache Übergänge S Zu stand geschickt.
    RspIWb Geänderte Zeile implizit geschrieben wird zurück in den Speicher, Cache wurdeumgestellt, I Zustand. cmd, destNID, homeTID, data
    RspSWb Geänderte Zeile wird implizit geschrieben zurück in den Speicher, Cache in SZustand übergegangen war.
    RspFwdI Wb Geänderte Zeile implizit geschrieben wird zurück in den Speicher, Kopie derCachezeile an ersuchenden Agent gesendet wurde, Cache wurde umgestellt, 1 Zustand.
    RspFwdSWb Geänderte Zeile wird implizit geschrieben zurück in den Speicher, Kopie derCachezeile wurde geschickt, um ersuchenden Agent Cache in S Zustandübergegangen war.
    RspCnfIt Peer hat eine ausstehende Anforderung an derselben Adresse, eine geordneteforward Antwort anfordert, und eine Ressource für die Forward reservierthat. cmd, destNID, homeTID, peerNID
  • Beispielsweise können Daten Antworten einen anfordernden Kohärenz-Agent Ziel. Home-Agent kann die Daten-Antworten senden. Ein Kohärenz-Agent kann nurDaten Antworten nicht mit einen geordneten Abschluss Hinweis senden. Darüberhinaus möglicherweise Kohärenz Agenten auf das Senden von Daten Antwortennur aufgrund der Verarbeitung einer Anforderung Snoop beschränkt. KombinierteDaten und Fertigstellung Antworten können immer des Typs bestellt -Abschlussund können durch die Kommunikation-Stoff bestellten mit vorwarts Antwortengehalte n werden.
  • Das HPI-Kohärenz-Protokoll können verwendet werden, die allgemeineungeordnete Vollzugsmeldung und Kohärenz-spezifische bestelltenAbschlussmeldung. Home-Agent kann Abschluss Antworten auf kohärenteAnforderungen senden und Fertigstellung Antworten können in der Regel für eineKohärenz-Agent bestimmt sein. Die geordneten Abschluss-Antwort kann derKommunikation-Stoff mit forward Antworten bestellten gehalten werden.
  • Snoop Antworten können per Kohärenz Agents, insbesondere alsReaktion auf die Bearbeitung einer Anfrage Snoop und den home-Agent dieSnoop-Anforderung behandelnden als Ziel. Die DestNID ist meist ein home-Agent (bestimmt von der Adresse in der Snoop-Anforderung) und die enthalteneTID für den home-Agent-Ressource zugewiesen, um die Anforderung zuverarbeiten. Snoop Antworten mit ”Wb” im Befehl sind für implizite Rückschreibenvon veränderter Cache Linien, und sie tragen die Cachedaten. (ImpliziteRückschreiben zählen diejenigen, die ein Kohärenz-Agent auf einem anderenAgenten Wunsch stellt während die andere Anforderungen explizit von derKohärenz-Agent mithilfe ihrer Anfrage-Ressourcen erfolgen.)
  • Kohärenz Agenten erzeugt eine forward-Anfrage bei einem Snoop-Anfrage-Konflikte mit eine ausstehende Anforderung. Weiterleiten von Anforderungenzielen auf den home-Agent, der Snoop, generiert, die von der Adresse in der Snoop-Anforderung bestimmt wird. So ist die DestNID eines home-Agent. Dieforward-Anforderung kann auch die TID für den home-Agent-Ressourcezugewiesen, um die ursprüngliche Anforderung und die NID der Kohärenz-Agentgeneriert die forward-Anforderung verarbeiten.
  • Das HPI-Kohärenz-Protokoll unterstützt eine forward Antwort, FwdCnfItO. Home-Agenten können eine forward Antwort für jede forward Anforderungempfangen und der Kohärenz-Agent vom PeerNID Gebiet der forward-Anforderung senden. Forward Antworten tragen die Cache-Line-Adresse, alsoder Kohärenz-Agent die Nachricht die forward Ressource zuordnen kann, die esreserviert. Forward Response-Nachricht kann der anfordernden Agent NID tragenaber in einigen Fällen ist nicht der anfordernde Agent TID. Wenn ein Kohärenz-Agent zur Unterstützung von Cache zu Cache-Übertragungen für forward Antworten will, es erspart der anfordernden Agent TID beim Verarbeiten von Snoop und forward Infoanfrage. Um Konfliktlösung zu unterstützen, kann der Kommunikation-Stoff beibehalten Sortierung zwischen der forward-Antwort undalle bestellten Fertigstellungen gesendet, bevor es an den gleichen Ziel-Kohärenz-Agent.
  • In einigen Systemen sind home-Agent Ressourcen vorbelegt, da ”RTIDs ”Ressourcen in der home-Agents stellen und die Zwischenspeicherung Agents RTIDs aus dem System konfigurierten Pools beim Generieren von Neuanfragen Kohärenz zuordnen. Solche Regelungen können die Anzahl der aktiven Anforderungen beschränken müssen bestimmten Zwischenspeichern Agent kannein home-Agent auf die Anzahl der RTIDs ergangen ist, vom System effektivschneiden Startseite Ressourcen statisch unter Zwischenspeichern von Agenten. Solche Systeme können ineffizienten Ressourcenverteilung und richtig Dimensionierung eines home-Agents um Anfrage Durchsatz zu unterstützen, kannunpraktisch für große Systeme, neben anderen möglichen Problemen werden. Solche Regelungen können beispielsweise RTID Pool-Verwaltung auf die Zwischenspeicherung Agenten erzwingen. Darüber hinaus kann in einigenSystemen ein caching-Agent nicht die RTID wiederverwenden bis der home-Agent die Transaktion vollständig verarbeitet hat. Warten, bis ein home-Agentalle Verarbeitungsschritte schließt, kann jedoch unnötig ZwischenspeichernAgenten drosseln. Darüber hinaus können bestimmte fließt in das Protokollumfassen Zwischenspeichern Agenten festzuhalten RTIDs über den home-AgentVersion Benachrichtigung weiter drosseln ihre Leistung, unter anderefragen.
  • Home-Agents können ihre Ressourcen zuzuordnen, wie Anfragen von Cache-Agenten kommen dürfen. In solchen Fällen kann home-Agent-Ressource-Management von Kohärenz Agent Logik getrennt gehalten werden. In einigenlmplementierungen kann Zuhause Ressource Management und Kohärenz AgentLogik zumindest teilweise vermischte. In einigen Fällen können Kohärenz-Agentshaben mehr ausstehende Anforderungen an ein home-Agent als home-Agentgleichzeitig verarbeiten kann. Beispielsweise können HPI-Anforderungen an dieSchlange in der Kommunikation-Stoff. Vermeiden von Deadlocks verursachtdurch den home-Agent blockiert eingehende Anfragen, bis Ressourcen verfügbarsind, kann darüber hinaus das HPI-Kohärenz-Protokoll konfiguriert werden, umsicherzustellen, dass andere Nachrichten Fortschritterzielen, um blockierteAnforderungen zu gewährleisten, dass die aktive Transaktionen Abschlusserreichen können.
  • Bei einem Beispiel kann Ressourcen-Management unterstützt werden, dadurch, dass einen Agent empfangen einer Anforderung Ressourcen zuweisen, verarbeitet der Agent senden, dass die jeweiligen Ressourcenallokation für alleAntworten auf die Anfrage der HTID Anforderung die Ressource darstellen kann, die ein home-Agent für eine bestimmte Anforderung enthalten einige Protokoll-Nachrichten reserviert. HTID (zusammenmit RNID/RTID) in Snoop-Anforderungen und forward Antworten kann verwendet werden, um Antwortenzu einem home-Agent sowie die Weiterleitung von Daten an einen anforderndenAgent, unter anderen Beispielen zu unterstützen. Darüber hinaus kann HPIunterstützen die Möglichkeit eines Agenten, eine geordnete vollständige (CmpO) früh, d. h. senden, bevor Sie der home-Agent ist fertig derAnforderungsverarbeitung, wenn festgestellt wird, sicher für einen anforderndenAgent seiner RTID Ressource wiederverwenden. Allgemeine Handhabung vonSnoops mit ähnlichen RNID/RTID kann auch durch das Protokoll definiert werden.
  • Bei einem illustrativen Beispiel wenn eine bestimmte Anforderung Tracker Staatbeschäftigt, ist ein Verzeichnis-Staat lässt sich ermitteln, wann der home-Agenteine Antwort senden kann. Beispielsweise kann ein ungültiges Verzeichnis-Staaterlauben eine Antwort gesendet werden, mit Ausnahme von RdCur Anfragen gibt an, sie für die Anforderungzugeordnet. Home-Agent kann auch in Zukunft weitere standard alle Peer-Agenten snooped wurdehaben und alle ihre Antworten gesammelt, vor eine Antwort gesendet werden kann. Der exklusiven Verzeichnis-Zustand kann vorschreiben, dass der Besitzer snoopedwerden, und alle Antworten gesammelt, bevor eine Antwort gesendet wird, oderwenn der anfordernde Agent der Besitzer ist dann eine Antwort sofort gesendetwerden kann. Der Shared-Verzeichnis-Staat kann angeben, dass eineanspruchsbrechenden-Anforderung (z. B. RdInv* oder Inv*) alle Peer-Agentensnooped und versammeltensich alle Snoop Antworten. Wenn eine besti mteAnforderung Tracker-Status Rückschreiben gepuffert (WbBuffered) ist, kann derhome-Agent eine Daten-Antwort senden. Wenn die Anforderung Tracker-Statusist DataSent (Hinweis auf der home-Agent bereits eine Daten-Antwort gesendethat) oder DataXfrd (Hinweis auf, dass ein Peer eine Kopie der Zeile übertragen), kann der home-Agent die Abschluss-Antwort senden.
  • In Fällen wie den beschriebenen oben ein home-Agent kann Daten senden und Fertigstellung Antworten bevor alle Antworten snoop gesammelt haben. Die HPI-Schnittstelle ermöglicht diese ”frühen” Antworten. Beim frühen Daten und Fertigstellungen zu senden, kann der home-Agent alle ausstehenden SnoopAntworten sammeln, vor der Freigabe der Ressourcen, die sie für die Anforderungzugeordnet. Home-Agent kann auch in Zukunft weitere standard-Anforderungenan die gleiche Adresse blockieren, bis alle Snoop Antworten gesammelt wordensind, dann die Ressource freigegeben. Ein home-Agent senden eine Antwortnachricht aus einem Zustand gebucht oder WbBuffered kann eineUnteraktion-Tabelle verwenden (z. B. in einer Reihe von Protokoll-Tabellen, diemit der formalen Spezifikation des HPI-Kohärenz-Protokolls enthalten) für dieNachricht zu senden, und verwenden Sie eine Sub-Aktion-Tabelle für denVerzeichnis-Staat, unter anderen Beispielen zu aktualisieren. In einigen Fällenkann eine frühzeitige Fertigstellung ohne vorab-Zuordnung von einem home-Knotens erfolgen.
  • In einer verkörperungHPI-Kohärenz-Protokoll kann ausgelassenwerden, die Verwendung von entweder oder beide vorab zugewiesene Startseite Ressourcenund Kanälen Wunch bestellt. Solche Implementierungen können bestimmteNachrichten auf der HPI RSP-Kommunikationskanal bestellt werden. Beispielsweise speziell ”geordneten Abschluss” und ”vorwarts-Antwort”-Nachrichten, kann bereitgestellt werden, können, die aus den home-Agent an derKohärenz-Agent gesendet werden. Home-Agents können eine geordnete Abwicklung senden (CmpO oder Data_*_CmpO) für alle koharentLesen- und entwertung Anfragen (wie auch andere Anforderungen, z. B. eine NonSnpRd Anfragen, die nicht in Cache-Kohärenz-Konflikten beteiligt sind).
  • Home Agents können senden Sie uns Antworten (FwdCnfItO) Kohärenz Agenten, Send Forward Zugriffe (RspCnfIt) zur Anzeige eines Konflikts. Eine gewisse Kohärenz Agent kann eine Anforderung wenn sie hat eine hervorragende Lese- oder Sperrung verlangen und stellt eine eingehende snoop Anforderung an den gleichen cache line wie die Anforderung. Wenn die Kohärenz Agent erhält den Vorwärts-reaktion, es prüft den aktuellen Status der ausstehenden Anforderungen zu bestimmen, wie die ursprünglichen snoop. Der Home Agent kann die nach vorn Antwort auf bestellt werden mit einem kompletten (z. b. CmpO oder Data_*_CmpO). Die Kohärenz Agent nutzen können Informationen in den snoop zur Unterstützung der Kohärenz Agent bei der Bearbeitung einer Antwort übermitteln. Beispiel: Ein forward Antwort enthält möglicherweise nicht alle ”Typ” Informationen und keine RTID. Die Art der Reaktion nach vorne abgeleitet werden kann aus Informationen, die sich aus dem vorstehenden snoop(s). Darüber hinaus ist eine Kohärenz Agent blockiert werden können herausragende snoop Zugriffe wenn alle von der ”Vorwärts” warten auf uns antworten. In einigen Implementierungen, jede Kohärenz Agent kann so gestaltet werden, daß sie zu mindestens einem Vorwärts-Ressource.
  • In einigen Implementierungen kann Gewebe Kommunikationsanforderungen auf die Routing-Schicht. In einer Ausführungsform hat das HPI-Kohärenz-Protokolleine Kommunikation-Stoff-Anforderung, die spezifisch auf die Routing-Ebene ist. Das Kohärenz-Protokoll kann von der routing Schicht eine Fanout Snoop (SnpF *Opcodes – Snoop (SNP) Kanalnachrichten”) in die entsprechenden Snoops allerdie Anforderung von Gleichaltrigen in der Fanout-Satz von Kohärenz Agentenkonvertieren abhängen. Das Fanout-Set ist eines Konfigurationsparameters dieRouting-Ebene, die von der Protokollebene geteilt wird. In dieser Kohärenz-Protokoll-Spezifikation wird als Home-Agent-Konfigurations parameter beschrieben.
  • In einigen Implementierungen oben kann das HPI-Kohärenz Protokoll nutzt vierder virtuellen Kanäle: REQ, WB, SNP und RSP. Die virtuelle Kanäle könnenverwendet werden, zur Entspannung Abhängigkeit Zyklen und vermeiden vonDeadlocks. In einer Ausführungsform kann jede Nachricht ohne Vervielfältigungauf allen virtuellen Kanälen und Sortierreihenfolgen-Anforderungenerfüllt auf denvirtuellen RSP-Kanal geliefert werden.
  • In einigen Implementierungen kann der Kommunikation-Stoff um zu bewahren, eine Reihenfolge von bestimmten Abschluss-Mitteilungen und der FwdCnfItOkonfiguriert werden. Die Abschluss-Nachrichten sind die CmpO-Nachricht undalle Daten-Nachrichten mit CmpO befestigt (Data_*_CmpO). Gemeinsam sind alldiese Nachrichten der ”geordneten Abschluss Antworten.” Die konzeptionelle Anforderungen zwischen geordneten Abschluss Antworten und die FwdCnfItONachricht ist, dass eine FwdCnfItO nicht ”eine geordnete Abwicklung gelangt”. Genauer gesagt, tritt Wenn ein home-Agent eine geordnete Beendigung-Antwort sendet, gefolgt von einer FwdCnfItO-Meldung und beide Nachrichtensind für die gleiche Kohärenz-Agent bestimmt, dann der Kommunikation-Stoffdie geordneten Abschluss Antwort bevor die FwdCnfItO, unter anderenmöglichen Beispielen.
  • Sollte es geschätzt,
    dass während einige Beispiele für den Protokoll-Ablauf hierinangegeben werden., die beschriebenen Beispiele sollen lediglich ein intuitivesGefühl für das Protokoll und nicht unbedingt decken alle möglichen Szenarien undVerhaltensweisen, die das Protokoll ausstellen kann.
  • Ein Konflikt kann auftreten, wenn die Anforderungen an die gleiche Adresse Cache-Line von mehr als einem Kohärenz Agent etwa zur gleichen Zeit erfolgen. Als ein konkretes Beispiel kann ein Konflikt auftreten, wenn eine Snoop für eineKohärenz-Agent Standardanforderung an einen Peer-Kohärenz-Agent mit eineausstehende Anforderung an die gleiche Adresse ankommt. Da jede Snoop ineinem Konflikt enden kann, kann eine einzelne Anforderung mehrere Konfliktehaben. Lösung von Konflikten können eine koordinierte Anstrengung zwischenden home-Agent, die Kohärenz-Agents und der Kommunikation-Stoff sein. Jedoch liegt die Hauptverantwortung bei der Kohärenz-Agenten erkennenwidersprüchlicher Snoops.
  • In einer Ausführungsform können home-Agents, Kohärenz Agents undKommunikation Stoff konfiguriert werden helfen, Konflikte erfolgreich zu lösen. Z. B. home-Agents herausragende Schnüffler für nur eine Anforderung pro Adressein einer Zeit, möglicherweise so, dass für eine bestimmte Adresse, ein home-Agent herausragende Schnüffler für nur eine Anforderung haben kann. Dies kanndazu dienen, Racebedingungen Wettkampfsituation, zwei Anfragen Konflikt miteinander nicht ausschließen. Es kann auch sicherstellen, dass ein Kohärenz-Agentnicht ein weiteres Snoop an die gleiche Adresse angezeigt wird, nachdem es einen Konflikt erkannt hat, aber noch nicht behoben.
  • In einem anderen Beispiel es wenn ein Kohärenz-Agent eine Snoop mit einemAdressenzuordnung eine aktive Standardanforderung verarbeitet kann eineforward Ressource reserviert und sendet eine forward-Anforderung an denhome-Agent. Ein Kohärenz-Agent mit einer hervorragenden standard-Anforderung, die eine Snoop an die gleiche Adresse erhält können reagiert miteiner RspCnfIt Snoop Antwort. Diese Reaktion kann eine forward-Anforderung anden home-Agent. Da die Nachricht eine Anforderung ist vor dem Senden derKohärenz-Agent können Sie ein Hilfsmittel, um die Antwort zu behandeln, die derhome-Agent schickt verteilen. (Das Kohärenz-Protokoll ermöglicht das Blockierenwidersprüchliche Snoops, wenn der Kohärenz-Agent aus forward Mitteln, ineinigen Fällen ausgeführt wurde.) Der Kohärenz-Agent möglicherweiseinformationen zu widersprüchlichen Snoop verwenden, wenn die forwardAntwort Verarbeitung speichern. Nach der Feststellung eines Konflikts und bis zurVerarbeitung der forward Antwort kann ein Kohärenz-Agent nicht sehen, eine weitere Snoop an die gleiche Adresse gewährleistet werden.
  • In einigen Beispielen zeichnet es wenn ein home-Agent eine vorwarts Anforderungerhält nicht die Snoop-Antwort auf. Stattdessen kann der home-Agent eine vorwarts Antwort an den widersprüchlichen Kohärenz-Agent senden. Eineforward-Anfrage (RspCnfIt), bei einem Beispiel, sieht aus wie eine Snoop-Antwort, aber der home-Agent behandelt es nicht als eine. Es zeichnet nicht auf dieNachricht als Antwort Snoop, aber stattdessen einen vorwärts. Insbesondere fürjede forward Anforderung (RspCnfIt) ein home-Agent empfängt, sendet er eineforward Antwort (FwdCnfItO) an den anfordernden Kohärenz-Agent.
  • Der HPI-Kommunikation-Stoff bestellt vorwarts Antworten und Abschlüssezwischen den home-Agent und der gezielten Kohärenz-Agent bestellt. DasGewebe kann damit dienen, um einen frühen Konflikt von einem späten Konfliktan der widersprüchlichen Kohärenz-Agent zu unterscheiden. Aus Sicht derSystemebene tritt ein früher Konflikt, wenn eine Snoop stößt auf eineAnforderung, die der home-Agent noch nicht verarbeitet hat, und ein späterKonflikt tritt auf, wenn ein Snoop eine Anforderung trifft, die der home-Agentbereits verarbeitet wurde. Aus Sicht eines home-Agent ist ein früher Konflikt beieinem Snoop für die derzeit aktive Anforderung eine Anforderung, die der home-Agent noch nicht empfangen oder mit der Verarbeitung begonnen hat und einspäter Konflikt stößt Snoop eine Anforderung, die bereits verarbeitet wurde. Mitanderen Worten, ist ein später Konflikt mit einer Anfrage an der home-Agentbereits eine Abschluss-Antwort gesendet hat. So, wenn ein home-Agent eine forward Anforderung für einen späten Konflikt erhält, es wird bereits dieAbschluss als Reaktion auf die widersprüchliche Agent ausstehende Anforderunggesendet haben. Mit der Bestellung der forward Antworten und geordnetenAbschluss Antworten zwischen home-Agent und der Kohärenz-Agent, kann derKohärenz-Agent bestimmen, ob der Konflikt früh oder spät von denVerarbeitungsstatus der seine widersprüchlichen Forderung war.
  • Wenn ein Kohärenz-Agent eine vorwärts-Antwort empfängt, verwendet er Zustand seine widersprüchlichen Forderung um zu bestimmen, ob der Konfliktfrüh oder spät war und wann man original Snoop zu verarbeiten. Aufgrund derMitteilung Stoff Reihenfolge Anforderung gibt den Status der widersprüchlichenAnforderung, ob der Konflikt früh oder spät war. Wenn der Anforderungszustand, dass die Fertigstellung eingegangen ist anzeigt, dann war es ein spät Konflikt, ansonsten war es eine frühe Konflikt. Alternativ wenn der Anforderungszustand, dassdie Anforderung für seinen Treffer noch wartet anzeigt, dann war es einefrühe Konflikt, war ansonsten es ein spät Konflikt. Der Typ des Konflikts bestimmt, wann Snoop verarbeiten: aus einer Kohärenz-Agent Sicht bedeutet ein früherKonflikt Snoop ist für eine Anforderung verarbeitet werden, bevor der Agentwidersprüchlichen Anforderung und ein später Konflikt bedeutet Snoop ist füreine Anforderung nach der Agent widersprüchlichen Anforderung verarbeitetwerden. Da die Bestellung, für einen frühen Konflikt verarbeitet der Kohärenz-Agent sofort ursprüngliche Snoop; und für einen späten Konflikt der Kohärenz-Agent wartet, bis die widersprüchliche Anforderung hat seine Daten (gelesen)und seinen Prozessor Gelegenheit auf die fertige Anfrage hatte vor derVerarbeitung Snoop zu handeln.
  • Wenn widersprüchliche Snoop verarbeitet wird, generiert der Kohärenz-Agent eine Snoop-Antwort für den home-Agentschließlich aufzeichnen. Alle Konflikte mit Rückschreiben Anfragen können späten Konflikte werden. Einspäter Konflikt aus Sicht der Kohärenz-Agent ist, wenn der Agent Anforderungbevor die Snoop Anforderung verarbeitet wird. Nach dieser Definition können alleKonflikte mit Rückschreiben Anfragen als spät Konflikte behandelt werden, weilRückschreiben zuerst verarbeitet wird. Andernfalls könnten Datenkonsistenz undKohärenz verletzt werden, würde der home-Agent die Anforderung zuverarbeiten, bevor Rückschreiben Speicher verpflichtet. Da alle Konflikte mitRückschreiben späten Konflikte gelten, können Kohärenz Agenten konfiguriertwerden, um widersprüchliche Snoops zu blockieren, bis eine herausragendeRückschreiben-Anforderung abgeschlossen ist. Rückschreiben können darüberhinaus auch die Verarbeitung von Weiterleitungen blockieren. Blockieren vorwärts durch eine aktive Rückschreiben kann auch als Voraussetzung für dieUnterstützung von speicherbar-Shops, unter anderen Beispielen Protokoll umgesetzt werden.
  • Wenn ein Kohärenz-Agent eine Anfrage um seinen Cache zu spähen, erhält, kann der Agent zunächst prüfen, ob die Kohärenz-Protokoll es erlauben wird, dann kann der Agent die Snoop verarbeiten und eine Antwort entwickeln. Eine oder mehrere Standtabellen kann definiert werden innerhalb eines Satzes von Standtabellen, der die Protokoll-Spezifikation festgelegt werden. Eine oder mehrere Standtabellen kann festlegen, wenn ein Kohärenz-Agent eine Snoop verarbeiten kann, ob der Agent den Cache spähen kann oder statt eine Anfrage für einen vorderen Konflikt generieren. In einem Beispiel gibt es zwei Bedingungen, bei denen ein Kohärenz-Agent eine Snoop verarbeitet. Die erste Bedingung ist, wenn die Kohärenz-Agent eine REQ (Rd* oder Inv*) Anforderung auf der Snoop-Adresse, sowie eine verfügbare vordere Ressource hat. In diesem Fall, muss der Kohärenz-Agent eine vordere Anfrage (RspCnfIt) generieren. Die zweite Bedingung ist, wenn der Kohärenz-Agent nicht eine Wb* oder EvctCIn Anfrage an den Snoop-Adresse hat. Eine Standtabelle definiert, wie ein Kohärenz-Agent den Snoop in solchen jeweiligen Bedingungen verarbeitet. In einem Beispiel, unter anderen Bedingungen, der Kohärenz-Agent kann die Snoop blockieren, bis entweder eine vordere Ressource verfügbar wird (erste Bedingung) oder die Blockierung Wb* oder EvctCIn seine CmpU Reaktion erhält (zweite Bedingung). Bitte beachten, dass NonSnp* Anfragen die Snoop Verarbeitung nicht beeinträchtigt werden und bei der Bestimmung, wie die Snoop Einträge zu verarbeiten oder zu blockieren, ein Kohärenz-Agent kann NonSnp* ignorieren.
  • Bei der Generierung einer vorderen Anfrage, kann ein Kohärenz-Agent eine Ressource für eine vordere Reaktion reservieren. Die HPI-Kohärenz-Protokoll, in einem Beispiel, erfordert nicht eine Mindestanzahl von vorderer Ressourcen (über mindestens eine) und erlaubt der Kohärenz-Agent Snoops zu blockieren, wenn es keine verfügbare vordere Ressourcen gibt.
  • Wie ein Kohärenz-Agent ein Snoop in seinem Cache verarbeitet, abhängig von der Art von Snoop und dem aktuellen Cache-Zustand. Es kann mehere zulässige Reaktionen geben, für eine gegebene Art von Snoop und seinem Zustand. Zum Beispiel kann ein Kohärenz-Agent mit einer total abgewanderten Linie, die eine nicht-widersprüchliche SnpMigr erhält (oder eine vordere Reaktion nach einer SnpMigr verarbeitet) eine der folgenden Möglichkeiten haben: Downgrade auf S, sendet implizite Zurückschreiben an Zuhause und Data_F an Anforderer; Downgrade auf S, sendet implizite Zurückschreiben an Zuhause; Downgrade auf I, sendet Data_M an Anforderer; Downgrade auf I, sendet implizite Zurückschreiben an Zuhause und Data_E an Anforderer; Downgrade auf I, sendet implizite Zurückschreiben an Zuhause; unter potenziellen Beipielen.
  • Die HPI-Kohärenz-Protokoll ermöglicht Kohärenz-Agent, um die modifizierten Linien mit partiellen Masken in seinem Cache zu speichern. Jedoch können alle Zeilen für M Kopien eine volle oder leere Maske erforderlich. Die HPI-Kohärenzprotokoll in einem Beispiel, kann impliziten Zurückschreiben von partiellen Linien beschränken. Ein Kohärenz-Agent, die aufgrund einer Snoop-Anfrage (oder vordere Reaktion) eine partielle M-Linie zu entfernen will, zunächst eine explizite Zückschreiben einführt und dann Snoop (oder vordere) blockiert, bis die explizite Zückschreiben abgeschlossen ist.
  • Bei der Aufbewahrung von Informationen für vordere Reaktionen: Die HPI-Kohärenz-Protokoll, die in einer Ausführungsform ist, ermöglicht ein Kohärenz-Agent, die Informationen vorderer Reaktionen getrennt von ausgehenden Anforderungspuffer (ORB) zu speichern. Die Trennung der Informationen erlaubt das ORB, ORB Ressourcen auszulösen und RTID, wenn alle Reaktionen gesammelt werden, unabhängig von der Eintragung in einem Konflikt. Standstabellen können verwendet werden, um festzulegen, welche Informationen für die vordere Reaktionen zu speichern und unter welchen Bedingungen sie sind.
  • Vordere Reaktionen in der HPI-Kohärenz-Protokoll können die Adresse, die angeforderte Agents NID, und Haus TID, enthalten. Sie enthälten nicht die origenelle Snoop-Art oder die RTID. Eine Kohärenz-Agent kann die vordere Art und die RTID speichern, wenn er sie mit der vorderen Reaktionen verwenden wird, und er kann die Adresse verwenden, um die ankommenden vordere Reaktionen mit den richtigen vorderen Eingaben anzupassen (und um das Haus NID zu generieren). Die Speicherung der vorderen Arten kann optional sein. Wenn es keine Art gespeichert ist, der Kohärenz-Agent kann eine vordere Reaktion als FwdInv Art behandeln. Ebenso bei der Speicherung des RTID, es kann optopnal sein und werden nur dann auftreten, wenn der Kohärenz-Agent eine Cache-zu-Cache-Transfers bei der Verarbeitung von vorderen Reaktionen unterstüzt.
  • Wie oben erwähnt, der Kohärenz-Agent kann eine vordere Anfrage erzeugen, wenn eine Snoop-Anfrage mit einer hervorragenden Anfrage ein Konflikt hat. Vordere Anfragen richten den Home-Agent an, der die Snoop erzeugt, die von der Adresse in dem Snoop-Anfrage bestimmt werden. So kann die destNID einen Home-Agent identifizieren. Die vordere Anfrage kann auch die TID für das Home-Agent-Ressource zugeordnet, um die ursprüngliche Anforderung und die NID des Kohärenz-Agent der die vorderen Anfrage zu bearbeiten.
  • In einer Ausführungsform, ein Kohärenz-Agent kann die Anfrage für Züruckschreiben wegen Datenkonsistenz blockieren. Der Kohären-Agent kann auch die Anfrage für Züruckschreiben verwenden, um (Uncacheable-UC)-Daten vor der Verarbeitung ein vordere zu verpflichten und kann damit der Kohärenz-Agent partielle Cache-Linien statt die Protokoll-Unterstützung ein implizit partielles Züruckschreiben für vordere erlauben. In der Tat, in einer Ausführungsform kann ein Kohärenz-Agent erlaubt sein, um modifizierten Linien mit partiellen Masken in seinem Cache zu speichern (obwohl M-Kopien eine volle oder leere Maske enthalten).
  • In einem Beispiel, die frühzeitige Konflikte kann durch eine vordere Reaktion einen hervorragenden Standard Anfrage, bevor sie keine Antwort erhalten hat, gelöst werden. Ein entsprechender Protokollstandstabelle kann spezifizieren, in einem Beispiel, dass eine vordere Reaktion solange die Standardanforderungseintrag noch in dem ReqSent Zustand ist, verarbeitet werden kann. Spätere Konflikte können durch eine ankommende vordere Reaktion, nachdem die ausstehende Anforderung seine vollenden Antwort erhalten hat, gelöst werden. Wenn dies geschieht entweder die Anfrage abgeschlossen weden, (bereits seine Daten erhalten oder eineInv* Anfrage war) oder in seinem RcvdCmp Zustand eingetragen. Wenn die Anfrage wartet noch immer auf seine Daten, dann muss der Kohärenz-Agent die Vordere blockieren, bis die Daten empfangen (und gebraucht) ist. Wenn der Konflikt von Rd* oder *Inv Anfrage beendet ist, dann kann die vordere Reaktion verarbeitet werden, solange der Kohärenz-Agent kein explizit Züruckschreiben der Cache-Linie eingeleitet. Es kann zulässig sein, für ein Kohärenz-Agent ein explizites Züruckschreiben einzuführen, während es eine vordere Reaktion (oder Snoop Anfrage) an die gleiche Adresse hat, so dass die partiellen Linien (zB Snoop Anträge auf partiell modifizierten Linien”) oder uncacheable richtig begangen werden in den Speicher.
  • In 7, ein erstes Beispiel ist mit einem Beispiel von Konfliktschema veranschaulicht. Eine erste Cache (oder Kohärenz) Agent 705 kann eine Lese-Anforderung für eine bestimmte Datenlinien an den Hausagent 710 sendet, was zu einer Lese Speicher 715 resultiert. Kurz nach der Leseanforderung von Cache-Agent 70, macht ein anderer Cache-Agent 720 einen Antrag auf Eigentum (RFO) in der gleichen Linie. Aber der Hausagent 710 hat die Data_S_CmpO an den ersten Cache-Agent 705 vor Erhalt der RFO von Cache-Agent 720 gesendet. Die RFO in einem Snoop (SnpFO) ist zu führen, die an den Cache-Agent 705 (wie auch andere Cache-Agenten) gesendet werden, wobei die snoop von dem ersten Cache-Agent 705 vor Erhalt der vollständigen Data_S_CmpO erhalten. Der Cache-Agent 705, beim Empfang der Snoop SnPO kann einen möglichen Konflikt mit der Linie des Speicher in der Originalleseanforderung identifizieren und kann dem Hausagent 710 der Konflikt durch die Reaktion auf die SnPO mit einer vorderen Reaktion für Konfliktmeldung mitteilen (RspCnfIt). Der HausAgent 710 kann auf die vordere Reaktion von RspCnfIt durch Senden einer vordere Reaktion (FwdCnfItO) reagieren. Der Cache-Agent 705 kann die teilenden vollständigen Daten Data_S_CmpO und der Übergang von einem I-Zustand in S-Zustand erhalten. Die vordere Reaktion FwdCnfItO kann dann von dem Cache-Agent 705 und Cache-Agent 705 empfangen werden, um festzustellen, wie der vordere Reaktion FwdClfItO basierend auf der Snoop SnpFO, die das Senden der vorderen Reaktion RspCnfIt, reagiert. In diesem Beispiel, kann der Cache-Agent 705 ein Protokoll Standtabelle konsultieren, zum Beispiel, um eine Reaktion auf die Vorwärtsantwortnachricht FwdClfItO zu bestimmen. In dem speziellen Beispiel der 7, der Cache-Agent 705 kann zu einem F-Zustand werden und sendet die S-Kopie der Daten, die er aus dem Home Agent 710 erhalten hat, in der Data_S_CmpO an den zweiten Cache-Agent 720 in einem Data_F meldet. Der erste Cache-Agent 705 sendet auch eine Reaktionnachricht RspFwdS an den HausAgent 710, um den Heimatagent 710 zu benachrichtigen, dass der erste Cache-Agent hat seine Kopie der Daten mit der zweiten Cache-Agenten geteilt.
  • In einem anderen illustrativen Beispiel, in dem vereinfachten Flussdiagramm gezeigt wird. 8, der erste Cache-Agent 705 kann einen Antrag auf Eigentums (RFO) einer bestimmten Linie des Speichers an den Hausagent 710 senden. Kurz danach, ein zweiter Cache-Agent kann eine RdInvOwn an den Hausagent 710 als Antrag für die gleich Linie im Speichern in einem M-Zustand, senden. Im Zusammenhang mit der RFO Nachricht von dem ersten Cache-Agent 705 kann der Hausagent 710 einen Snoop (SnpFO) auf den zweiten Cache-Agent 720, der der zweite Cache-Agent 720 kann als ein potentieller Konflikt mit der Linie in dem Speicher unterliegen, sowohl identifizieren, die RFO und RdInvOwn Anfragen senden. Daher ist der zweite Cache-Agent 720 kann eine vordere Anfrage RspCnfIt an den Hausagent 720 senden. Der zweite Hausagent 720 bestimmt eine Reaktion an die vordere Reaktionen aufgrund die Informationen, die in dem Original Snoop enthalten. In diesem Beispiel, antwortet der zweite Cache-Agent 720 mit einem Snoop Reaktion RspI, die darauf hinweist, dass der zweite Cache-Agent 720 in einem I-Zustand ist. Der Hausgent 710 empfängt die Snoop Reaktion RspI und bestimmt, dass es angemessen ist, um die Daten vollständig exklusiv (Data_E_CmpO) an den ersten Cache-Agent 705, der den erste Cache-Agent in einem E-Zustand veranlläst, zu senden. Mit der vollständigen Sendung, kann der Hausagent 710 beginnen dann auf der zweite Cache-Agents Anfrage RdInvOw, zu antworten, beginnend mit einem Snoop-Anforderung SnpinvO der ersten Cache-Agent 705. Der erste Cache-Agenten 705 identifiziert, dass die Snoop-Ergebnisse in einem Antrag der zweite Cache-Agent 720 eine exklusive M-Zustand Kopie der Linie zu erhalten. Folglich sind die Übergänge des ersten Cache-Agent 705 zu den M-Zustand, um seine Kopie der Linie als eine M-Stand-Kopie (mit Data_M Nachricht) an den zweiten Cache-Agent 720. Zusätzlich, der erste Cache-Agent 705 sendet auch eine Antwortnachricht RspFwdI, um anzuzeigen, dass die Kopie der Linie in den zweite Cache-Agent 720 gesendet wurde und dass der erste Cache-Agent hat zu einem I-Zustand gewechselt (mit bis Eigentum an der Kopie an die zweite Cache-Agent 720 angegeben).
  • Wendet man sich nun auf das Beispiel der 9, ist ein weiteres vereinfachtes Flussdiagramm dargestellt. In diesem Beispiel, ein Cache-Agent 720 versucht ein exklusives Eigentum an einem uncacheable (UC) Linie ohne Empfangen von Daten (zB durch eine InvItoE Nachricht) zu erfragen. Eine erste Cache-Agenten 705 sendet eine konkurrierende Nachricht (RdInv) für die Cache-Linie in E-Zustand. Die HPI-Kohärenz-Protokoll kann festlegen, dass, wenn die angeforderte Linie zuvor in M-Zustand zwischengespeichert wurde, die Linie in dem Speicher geschrieben wird, bevor E-Datenin Reaktion auf die RdInv des ersten Cache-Agent 705 geliefert wird. Der Hausagent 710 liefert werden eine komplette (CMPO) an die InvItoE Anfrage und sendet eine snoop (SnpInv) an Cache-Agent 720 auf Basis der RdInv Anfrage. Wenn der Cache-Agent 720 empfängt die Snoop vor der Vollständiung, der Cache-Agent 720 kann identifizieren, dass die Snoop bezieht sich auf die gleiche Cache-Linie als exklusiven gehörigen Anfrage und geben einen Konflikt durch eine vordere Anfragen RspCnfIt. Wie in den vorgehenden Beispielen, der Hausatagent 710 kann konfiguriert werden, um die vordere Anfrage mit einem Forward-Reaktion (FwdCnfItO) zu reagieren. Mehrere zulässigen Antworten kann der vorderen Reaktionen zugelassen werden. Zum Beispiel kann der Cache-Agent 720 ein explizites Züruckschreiben (zB WbMtoI) einführen und die Snoop-(oder vordere) blockiert, bis das explizite Züruckschreiben abgeschlossen ist (zB CmpU), wie im Beispiel der 9 dargestellt ist. Der Cache-Agent kann dann die Snoop REaktion (RspI) fertigen. Der Hausagent 710 kann dann die Anfrage RdInv des ersten Cache-Agent 705 verarbeiten und gibt eine komplette Data_E_CmpO, unter anderen Beispielen.
  • In den Beispielen, wie das Beispiel vo 9, wo ein Cache-Agent einen Snooper erhält, wenn der Agent eine hervorragende Lese oder Ungültigmachungsanforderung an die gleiche Adresse hat und eine partielle modifizierte Linie (oft als ”begraben-M” bezeichnet) zwischengespeichert hat, die HPI-Kohärenz-Protokoll, in einer Implementierung ermöglicht dem Agenten, entweder 1) durchführen eine explizite Züruckschreiben (teilweise) von der Linie, während der Blockierung der snoop oder 2) senden vordere Anfrage (RspCnfIt) an den Hausagent. Wenn (1) so gewählt wird, verarbeitet der Agent die Snoop nach Empfang des vollständigen Züruckschreiben. Wenn (2) gewählt wird, ist es möglich, dass der Agent vordere Reaktion (FwdCnfItO) erhaltet, während seine hervorragende Lese oder Ungültigmachungsanforderung immer noch auf Antworten wartet und der Agent hat immer noch eine partielle modifizierte Zeile. Wenn das der Fall ist, kann das Protokoll der Agent erlaubt, um den Vordere zu blockieren, während der Durchführung eines expliziten Züruckschreiben (teilweise) von der Linie. Während des Züruckschreiben garantiert das Protokoll des Agent keine Reaktionen für die hervorragende Lese oder Ungültig Anfrage erhalten wird. Der oben beschriebene Mechanismus (so dass Kohärenz-Agenten explizite Züruckschreiben erlauben und Snoops blockieren und nach vorne, auch wenn der Agent hat einen hervorragenden Lese oder ungültige Anfrage) wird auch verwendet, um sicherzustellen, teilweise oder UC Schreibvorgänge werden in den Speicher geschrieben, bevor der Schriftsteller erwirbt globale Beobachtbarkeit.
  • Kohärenz-Agenten verwenden ein Zwei-Schritt-Verfahren für das partielle/UC Schreiben. Zunächst, prüfen sie, wenn sie das Eigentum an der Cachelinie haben und eine Ownership (Ungültigkeitserklärung) Anfrage im Protokoll senden, wenn sie es nicht haben. Zweitens führen sie den Schreib. Im ersten Schritt, wenn sie eine Eigentums Anfrage durchgeführt wird, ist es möglich, dass der Antrag wird mit Anfragen anderer Agenten für die Linie in Konflikt, das bedeutet, das ser Agent könnte eine Snoop empfangen, während das Eigentum Anfrage herausragend ist. Pro-Kohärenz-Protokoll Anforderungen, wird der Agent eine zukunfts Anforderung für die widerstreitenden Snoop erteilen. Während der Wartezeit für den vordere Reaktion, kann der Agent den Besitz Antrag fertigen, die das Eigentum an der Linie, um den Agenten gewährt und ermöglicht den Agenten, um das Züruckschreiben für den Teil/UC Schreib erhalten. Während dies geschieht, kann der Agent die vordere Reaktionen erhalten, die sie verpflichtet, auch zu verarbeiten. Der Kohärenz-Agent darf nicht die beiden Aktivitäten kombinieren. Der Kohärenz-Agent, statt separat der Teil/UC Schreibdaten von der Verarbeitung des vordere züruckschreiben, führen Sie zuerst das Rückschreiben. Zum Beispiel, ein Cache-Agent kann ein Züruckschreiben Anfrage verwenden, um UC-Daten vor der Verarbeitung vorwärts begehen und partielle Cache-Linie züruckschreiben, unter anderem Beispiele und Funktionen.
  • In einer Ausführungsform, kann die HPI-Kohärenz-Protokoll eine Ungültigkeitserklärung (RdInv) und akzeptierende Anfrage Exklusiv-Zustandsdaten unterstützen. Semantik uncacheable (UC) liest die Spülung von geänderten Daten in dem Speicher. Einige Architekturen ermöglichen jedoch die Weiterleitung M-Daten auf ungültigen Lesen, die den anfordernden Agenten gezwungen, die Leitung zu reinigen, wenn es M-Daten empfangen werden. Die RdInv Strom vereinfacht und erlaubt keine E Daten weitergeleitet werden sollen. Zum Beispiel, wie im Beispiel der 10 dargestellt ist, das Verzeichnis Zustand ein Hausagent 710 kann anzeigen, dass es keine Agenten (zB 705, 710) eine Kopie der Linie haben. In solchen Fällen, kann der Hausagent 710 die Daten und die Fertigstellung Antwort(en) sofort senden. HPI ermöglicht die gleiche, wenn die effektive Verzeichnis Zustand zeigt keine Beaufsichtigender können eine Kopie der Leitung haben.
  • Wie im Beispiel der 10 dargestellt ist, in einigen Implementierungen kann ein Agent zu einem Snoop mit einer RspIWb Nachricht antworten, die anzeigt, dass der Cache-Agent (zB 705) ist in (oder hat übergegangen wird) ein I-Zustand, während die Beantragung eines Schreib in den Speicher. Ein RspIWb setzt die effektive Verzeichnisstand zu ungültig und ermöglicht eine Hausagent 710, um eine Reaktion ohne Snooping alle Kollegen schicken. In dem Beispiel der 10, eine zweite Cache-Agenten 720 sendet RdInv Anfrage, während der Hausagent-Verzeichnis ist in einem unbekannten Zustand. In der Reaktion, der Hausatagent 710 zunächst schnäpt nur den ersten Cache-Agent 705. In diesem Beispiel Cache-Agent 705 hat eine modifizierte Kopie der Linie und reagiert mit einem impliziten Züruckschreiben (zB RspIWb). Wenn Home die RspIWb Nachricht erhält, es kann festgestellen, dass es keinen anderen Agent könnte eine Kopie der Linie haben und weiter feststellt, dass Cache-Agent 705 seinen Cache durch die RspIWb ungültig erklärt hat. In der Reaktion, kann das Hausagent 710 das Verzeichnisstand ungültig setzen. Weil das Verzeichnisstand ungültig ist, der Hausagent 710 wartet, bis die Speicherschreib 715 abgeschlossen ist und dann die Daten und abgeschlossene Antwort (en) (zB Data_E_CmpO) senden und die Ressource, für die Anforderung von Cache-Agenten 720 geben. In diesem Beispiel, der Hausagent kann den Cache-Snooping anderer Agenten im System überspringen. Zwar in solchen Beispielen ein Hausagent (zB 710) kann Daten senden und eine Vervollständigung der Reaktion vor der Aufnahme aller Snoop-Reaktionen (zB aufgrund der Identifizierung einer M-Kopie auf Agent 705) senden, wie in dem dargestellten Beispiel veranschaulicht 11 (mit Cache-Agent 1105).
  • In den Beispielen der 10 und 11, wenn der zweite Cache-Agent 720 die Data_E_CmpO Antwort vom Hausagent 710 empfängt, der Cache-Agent 720 kann die Daten in seinem Cache laden, setzen sie in den Cache-Zustand zu E, und lassen die Ressource RTID es für die Anforderung zugeordnet. Nach dem Loslassen der RTID kann Cache-Agent 720 ist für eine neue Anforderung wiederverwenden. In der Zwischenzeit kann der Hausagent 710 für Snoop Reaktionen auf die Anfrage ursprünglich mit dem RTID warten. Snoop Reaktionen können die Anforderung RTID und die anfordernden Agents NID enthalten. So, weil Cache-Agent 720 könnte die RTID für eine neue Anfrage an die gleiche oder eine andere Hausgent wiederverwenden, und das Hausagent konnte Snoops für die neue Anfrage generiert, dass die gleiche ”einzigartigen ”Transaktions-ID wird in Snoops den gleichen Kohärenz-Agent existieren. Aus einer Perspektive Kohärenz dieser Doppel Transaktions-ID (TID) ist dennoch akzeptabel sein, weil snoops für die ursprüngliche Anfrage ein I-Zustand finden wird.
  • Ein Hausagent kann eine Snoop generieren, wenn der Anfrage Tracker ist Warten, Besetzt oder DataXfrd, das bedeutet, entweder der ausagent noch nich eine Daten Reaktion sendet, oder eine Snoop Reaktion einige Beaufsichtigender die Daten an den anfordernden Agenten übermittelte. Ein Hausagent kann auch Snoop Feld anfragen, um die Anfrage zu überprüfen, um sicherzustellen, dass es noch nicht zu einem Beaufsichtigender einen Snoop gesendet wurde. Beim Senden eines Snoop kann ein hausagent Beaufsichtigender (oder alle Fanout Beaufsichtigende) zu Snoop hinzufügen (Senden einer zweiten Snoop zu verhindern) und verfolgen hervorragende Snoop Reaktionen.
  • Bei einiger Realisierungen der HPI, wie oben erwähnt, können Snoopsverzweigung unterstützen. Zusätzlich wird in einigen Beispielen, HPI kann eine explizite Snoopsverzweigung Verfahren, SnpF, für Snoopsverzweigung von der Routing-Schicht, unterstützen. Ein HPI Hausagent (zB 710) kann SnpF nutzen, um einen einzigen Snoopsverzweigung-Anforderung (zB mit einem einzigen Befehl und Botschaft), und in der Reaktion, kann der Routing-Schicht Snoops allen Beaufsichtiger-Agenten, die in der jeweiligen Verzweigungskegel basierend sind, auf der SnpF Anfrage generieren. Der Hausagent kann demnach die Snoop Reaktion von jeder Agentsabteilung erwarten. Während andere Snoop Nachrichten einen Zielknoten-ID enthalten können, Verzweigungssnoop kann ein Ziel NID weglassen, weil der Routing-Schicht für die Erzeugung der entsprechenden Snoop Nachrichten an alle Beaufsichtigers in der Verzweigungsregion verantwortlich ist.
  • Da die Routing-Schicht unmittelbar unterhalb der Protokollschicht ist, bei einiger Realisierungen sind Anforderungen für Kommunikationsstruktur auf der Routing-Schicht. In einer Ausführungsform kann die HPI-Kohärenz-Protokoll eine Anforderung für Kommunikationsstruktur haben, die spezifisch für die Routing-Schicht ist. Zum Beispiel, die Kohärenz-Protokoll kann auf die Routing-Schicht abhängig sein, um eine Verzweigungssnoop (SnpF* opcodes – Snoop (SNP) Kanal-Nachrichten) in die entsprechenden Snoops für alle die anfordenden Beaufsichtiger in der Verzweigungsset von Cache-Agenten zu konvertieren. Der Verzweigungsset ist ein Konfigurationsparameter der Routing-Schicht, die durch die Protokollschicht oder einen Hausagent Konfigurationsparameter geteilt wird.
  • In einigen Realisierungen, kann ein Hausagent ein Verzweigungssnoop für eine aktive standard Reaktion senden. Die HPI-Routing-Schicht kann die Verzweigungssnoop Anfrage des Hausagent in regelmäßigen Snoops zu jedem des Beaufsichtiger, der durch die Routing-Schicht in der Verzweigungskegel definiert ist, konvertieren. Die HPI-Kohärenzprotokoll Hausgent wird bewusst, welche Kohärenz-Agenten, die durch die Routing-Schicht-Verzweigung bedeckt sind, die über eine HAFan out Agent Konfigurations parameter, der derjeweiligen Cache-Agenten der Verzweigungskegel nach Adresse enthaltet. Der Routing-Schicht kann die Verzweigungssnoop SnpF empfangen und wandelt es in ein Snoop für jeden enthaltenden Cache-Agent in der Verzweigungskegel (mit Ausnahme des anfordernden Agenten). In einer Realisierung kann die Routing-Schicht die Verzweigungsnoop in der entsprechenden nicht-Verzweigungssnoops (mit entsprechenden nicht-Verzweigung Opcodes, wie in Tabelle 3), unter anderen Beispielen, konvertieren.
  • Ähnlich wie regelmäßige Snoops, ein Hausagent kann auf das Senden eines Verzweigunssnoops begrenzen, nur bevor es einen Abschluss als Reaktion auf eine Anfrage von Kohärenz-Protokoll durch einen Cache-Agent sendet. Es kann auch zusätzliche Bedingungen für die Verzweigungsnoops platziert werden. Als Beispiele, ein Hausagent kann eine Verzweigungssnoop senden, wenn sie nicht einer der Beaufsichtiger in der Verzweigungskegel spioniert. Mit anderen Worten, ein Hausagent kann nicht eine Verzweigungssnoop einföhren, in einiger Realisierungen, wenn der Verzweigungskegel leer ist oder wenn der anfordernde Cache-Agent der einzige Agent in der Verzweigungskegel ist, unter anderen Beispielen.
  • In einer Ausführungsform, HPI kann ein explizites Züruckschreiben mit Cache-Push Hinweis (WbPushMtoI) unterstützen. Im Allgemeinen wird in einigen Beispielen, die modifizierten Daten entweder explizit Schreiben in den Speicher züruck, oder die geänderten Daten in Reaktion auf einen Snoop-Reaktion übertragen werden. Die Übertragung der modifizierten Daten in Verbindung mit einer Snoop-Reaktion kann als ein ”Pull” transfer definieren. In einiger Realisierungen kann ein ”Push”-Mechanismus unterstützt werden, wodurch ein Cache-Agent mit der modifizierten Daten direkt an einen anderen Cache-Agent zum Speichern in dem Cache des Zielagenten sendet (zusammen mit dem modifizierten Cache-Zustand).
  • In einer Ausführungsform, ein Cache-Agent kann modifierten Daten züruckschreiben mit einem Hinweis an den Hausagent, dass es die modifizierten Daten in einem ”lokalen” Cache drücken könnte, die Daten in M-Zustand im lokalen Cache zu sperichern, ohn die Daten in den Speicher zu schreiben. In einer Realisierung, ein Hausagent 710 kann eine WbPushMtoI Nachricht von einem Cache-Agenten 705 empfangen und den Hinweis identifizieren, dass ein anderer Cache-Agent (zB 720) nutzen will oder vor einem Eigentum an einer bestimmten Linie in der naheren Zukunft wünscht, wie in dem Beispiel 12. Gezeigt wird. Der Hausagent 710 kann die WbPushMtoI Nachricht verarbeiten und die effektive Andeutung akzeptieren und die zurückgeschrieben Daten an den andere Cache-Agent 720 ohne das Schreiben der Daten in den Speicher 715 drücken, wodurch der andere Cache-Agent 720 bis zu einer M-Zustand hervorrufen. In einiger Realisierungen, der Hausagent 710 kann alternativ WbPushMtoI Nachricht verarbeiten und entscheidet sich, um die Daten wieder in den Speicher schreiben, wie in einer WbMtoI Anfrage (wie in 13 illustriert) und die züruckgeschriebenen Daten nicht direkt in einem anderen Cache-Agent 720 drücken.
  • In einem Beispiel von Realisierung, ein Hausagent (zB 710) kann eine WbPushMtoI Nachricht verarbeiten, indem der Tracker Zustand WbBuffered, der anzeigen kann, dass der Hausagent die Daten noch nicht verarbeitet, checken. In einigen Fällen, ein ”push” der Daten kann bei dem Hausagent bestimmt wird, dass der Heimatagent nicht bereits ist, die Bearbeitung einer Standardanforderung an die gleiche Adresse zu konditionieren. In einigen Realisierung, die Schub kann weiter von dem Hausagent bestimmt wird, dass der gezielte Cache-Agent (zB 720, im Beispiel 12) werden ”local” konditioniert. Wenn der gezielte Cache-Agent nicht von dem Hausagent Verzeichnis bedeckt wird, dann der Hausagent kann die Daten in den Cache des Ziel Cache-Agent übertragen und das Verzeichnis ungültig aktualisieren. Wenn der gezielte Cache-Agent von dem Verzeichnis abgedeckt wird, dann dürfte die Datenübertragung in den Cache des Cache-Agenten nur gelassen werden, wenn der gezielte Cache-Agent nicht über eine aktive InvXtoI verfügt, und wenn über den Hausagent das Verzeichnis in Exclusive mit dem gezielten Cache-Agenten als Eigentümer aktualisieren. Andere Bedingungen werden (zB in einer entsprechenden Protokoll-Zustandstabelle) für ein Hausagent bei der Bestimmung definiert, ob der Hinweis auf die Mitteilung WbPushMtoI annehmen und die Daten auf einen gezielten Cache-Agent drängen oder statt die Verarbeitung WbPushMtoI Nachricht als WbMtoI einer Antrag mit dem Schreiben der ersten Daten in den Speicher, unter anderen möglichen Beispielen.
  • In einigen Reralisierungen, HPI kann eine InvItoM Nachricht unterstützen, um ein Verzeichnis-Cache eines Hausagent vorzubelegen, wie ein I/O-Verzeichnis-Cache (IODC). Ein InvItoM kann ein exklusives Eigentum einer Cache-Linie anfragen, ohne den Empfang von Daten, während sie eine Absicht der Durchführung eines Züruckschreiben danach bald verlangen. Ein erforderlicher Cache-Zustand kann ein M-Zustand, und E-Zustand, oder auch beide sein. Ein Hausagent kann eine InvItoM Nachricht verarbeiten, um eine Ressource für das Züruckschreiben durch die InvItoM Nachricht vorzubelegen (einschließlich der InvItoM Opcode).
  • In einiger Realisierungen, kann ein Opcode durch HPI-Kohärenz-Protokoll bereitgestellt werden, um einen Speicherstrom der Speichersteuerung mit einem oder mehreren intergierten Hausagenten, auszulösen. Zum Beispiel, ein Opcode, WbFlush, kann zu einem persistenten Speicherstrom definiert werden. Wie im Beispiel, der 14, ein Gast (zB 1405) kann eine WbFlush Nachricht an einen bestimmten Speichercontroller 1410 senden. In einigen Fällen kann die WbFlush eine bestimmte Adresse bestimmen und der Befehl von WbFlush auf den spezifische Speicher-Controller durch die gezielten Adresse geschickt werden kann. In einem anderen Beispiel kann ein WbFlush Nachricht an mehreren Speichersteuerungen übertragen werden. In einem Beispiel kann die t als Folge gesendet werden als ein persistenten Begehen in einem CPU. Jede jeweilige Speichersteuerung (beispielsweise 1410) empfängt ein WbFlush Befehl, sie kann die Nachricht verarbeiten, um alle anhängigen Schreiben in der Speichersteuerung zu einem persistenten Speichergerät (oder Speicherlokation) durch die Speichersteuerung zu steuern. Der Zweck der Befehl könnte sein, um alle bisherigen Schreibvorgänge auf persistenten Speicher zu begehen. Zum Beispiel kann ein WbFlush Befehl in Verbindung mit einem Stromausfall-Management-Steuerung oder Verfahren, ausgelöst werden, um so sicherzustellen, dass die Schreibvorgänge im nicht flüchtigen Speicher gelöscht werden und im Falle eines Stromausfalls des Systems bewahrt werden. Ferner ist, wie in dem Beispiel der 14, bei dem Abspritzen (oder Einleiten der Abspritzen) alle anhängigen Schreibvorgänge in Speicher (zB 1415), die Speichersteuerung 1410 kann zu dem anfordernden Gast (oder Agenten) (zB 1405) mit einem Abschluss reagieren. Die Fertigstellung soll nicht an den Gast gesendet werden, bis die Speichersteuerung versichert hat, dass die Daten in dem persistenten Speicher machen müssen. Die WbFlush Nachricht oder entsprechenden Abschluss kann als Kontrollstelle für andere Prozesse und Steuerung abhängig oder den Antrieb des schwebenden Screiben in dem Speicher, unter anderer Verwendung und Beispiele.
  • Einige traditionellen Architekturen können für Data_M erfordern und entsprechende vervollständig separat gesendet werden. HPI verlängert, um die Kohärenz-Agenten die Annahme einer kombinierten Data_M_CmpO unterstützt werden. Ferner kann Hausagent konfigurieren, um eine kombinierte Data_M_CmpO Nachricht über Pufferung des impliziten Züruckschreiben-Daten zu erzeugen. Tatsächlich kann in einigen Realisierungen, ein Agent mit Logik, die Cache-und Hausagents Verhaltensweisen kombiniert, so daß, wenn der Agent eine Anforderung empfängt und M-Daten in seinem Cache findet, kann direkt die Data_M_CmpO erzeugen. In solchen Fällen kann die Data_M_CmpO Reaktion erzeugen, ohne ein RspIWb oder Pufferzüruckschreibedaten, unter anderen Beispielen.
  • In einem anderen Beispiel, wie in dem Beispiel Protokollzustandstabelle 1500 15 dargestellt, eine Standsmaschine (von einer lesbaren Standmaschine Tabelle verkörpert (zB 1500)) kann eine Vielzahl von möglichen Antwortnachrichten ein Hausagent senden, wenn der standard Anfrage desTracker-Eintrag als in Besetzt oder WbBuffered Zustand definiert wird. Wie in Tabelle 1500 gezeigt, in einem Beispiel, ein Hausagent kann nicht erlauben, eine CMPO Abschlussmeldung zu einer Anfrage um Rd* zu lesen, sendet, das effektiv bedeutet, dass ein Hausagent, eine Reaktion bevor oder mit einem Abschluss sendet. In Fällen, in denen eine Daten_X Reaktion kann an den Hausagents Reaktion nachricht gesendet werden soll, kann der Hausgent die Daten-Reaktion mit einem Abschluss kombinieren und statt diese zu senden.
  • Der Zustand der Daten Reaktion kann zum ungültigen Rwaktionen und RdCur fixiert werden. Für RdMigr und RDDATA, nicht-geteilten Zustandverzeichnis können die E-Daten Sendung erlauben. Für RdMigr, RDDATA und RdCode, kann ein geteilten Zustandverzeichnis die Prüfung beinhalten, wenn alle Beaufsichtiger, die F Zustand abgehört wurden. Wenn sie waren, können die Daten mit F Zustand gesendet werden; Andernfalls können die Daten in S-Zustand gesendet werden, in dem Fall wenn ein losrissenden Beaufsichtiger eine F-Kopie hat, unter anderen möglichen Beispiele. Ferner kann ein Hausagent ein Data_M oder Data_M_CmpO Reaktion senden, in einigen Realisierungen nur wenn es die Daten aus einer RspIWb snoop Reaktion puffert. Wenn ein Hausagent RspIWb Daten puffert, kann er die Daten in dem Tracker-Eintrag speichern und den Eintragzustand zu einem WbBuffered ändert. Bitte beachten, dass, wenn ein Hausagent die Daten RspIWb puffert statt es in dem Speicher zu schreiben, sendet er eine Data_M oder Data_M_CmpO Reaktion in diesem Beispiel.
  • In einer Ausführungsform, wie oben erwähnt, HPI-Kohärenz-Protokoll kann eine F Zustand, der einen Cache-Agent die F-Zustand bei der Weiterleitung der gegebenen Daten, unterstützen. In einigen Systemen oder Instanzen, die F (vordere) Cache-Zustand kann weiterleitbare sein. Wenn ein Cache eine Linie im F-Zustand hält und einen Snoop erhält, die eine Übertragung die geteilten Daten ermöglicht, der Cache kann die Daten übermitteln, und wenn es das tut, es kann die F Zustand mit den Daten senden und in seinem Cache Zustand S (oder I) vorübergehen. In einigen Umständen ist es wünschenswert, dass der Cache den Zustand F bei der Übermittlung der Daten anstelle haltet, in diesem Fall er wird an S-Zustand mit den übermittelten Daten senden.
  • In einem Beispiel kann die Fähigkeit eines Cache-Agent zu halten oder ein F Zustand auf einem gemeinsam genutzten Übertragung zu übergeben kann kontrollierbar sein. In einem Beispiel, ein Konfigurationsparameter, pro Kohärenz-Agent kann anzeigen, ob ein Kohärenz-Agent übertragen wird, oder an einem F-Zustand halten. Unabhängig von der Parametereinstellung, die Kohärenz-Agent kann die gleiche Snoop Reaktion (zB RspFwdS) verwenden. Im zusätzlichen Fällen von einem Agent mit der Linie E Zustand, wenn der Snoop eintrifft, kann der Cache-Agent den Cache-Zustand in F übergehen, wenn die Weiterleitung der S-Daten und das Senden der RspFwdS Reaktion (wenn der Parameter auf F Zustand zu halten). In zusätzlichen Fällen mit einem Agent, der die Linie in M (voll) Zustand hat, wenn der Snoop kommt, der Cache-Agent kann seine Cache-Zustand zu F degradieren bei der Weiterleitung der S-Daten, Zurückschreiben die Daten in dem Speicher, und das Senden der RspFwdSWb Reaktion (wenn der Parameter auf F Zustand halten). Ferner kann ein Kohärenz-Agent mit F Zustand, der eine ”geteilten” Snoop erhält oder weiterleitet, kann nach Snoop F Zustand halten, während das Senden S-Zustand an den anfordernden Agenten. In anderen Fällen kann die Konfigurationsparameter umgeschaltet werden, damit der Zustand F zu einer Verlagerung der gemeinsamen Daten und der Übergang zu einer S (oder I) Zustand überführt werden, unter anderen Beispielen. Tatsächlich, wie in dem Beispiel Zustandstabelle 1600 16 gezeigt wird, kann ein Cache-Agent in F Zustand in einer Vielzahl von Möglichkeiten reagieren, darunter ist ein SnpMigr/FwdMigr, F, F, RspFwdS, Data_s, unter anderen Beispielen.
  • Wie oben erwähnt, in einigen Reaktionen, die Zustandsübergänge von einer Cache-Linie und Agents können unter Verwendung einer Zustandsmaschine gesteuert werden. In einer Realisierung kann die Zustandsmaschine durch einen Satz oder eine Bibliothek von Zustandstabellen durchgeföhrt werden, damit detailliert allen verschiedenen Kombinationen von Befehlen, Attribute vorherigen Zustände detailliert definiert werden, und andere Bedingungen, die beeinflussen können, wie die Zustandsübergänge statttfinden, sowie die Arten von Nachrichten, Datenoperationen, Masken, usw., die mit dem Zustandsübergang zugeordnet werden kann (wie in den speziellen Beispielen der 15 und 16 dargestellt wird). Jeder Zustandtabelle kann auf eine bestimmte Aktion oder Kategorie von Handlungen oder Zustände entsprechen. Der Satz von Tabellen kann mehrere Tabellen, wobei jede Tabelle, die einer bestimmten Aktion oder subaktion zuständig sein. Der Satz von Tabellen kann eine formale Spezifikation eines Protokolls verkörpern, wie beispielsweise die Kohärenzprotokoll oder einem anderen Protokoll (bei einem Stapelschichten) HPI.
  • Zustandstabellen können für Menschen Daten lesbar sein, wie zB Tabellenstrukturen, die leicht interpretiert werden können, modifiziert und entwickelt durch einen menschlichen Benutzer, der eine Interaktion mit der Zustandtabelle-Struktur hat, unter Verwendung eines Endpunkts Computervorrichtung. Andere Benutzer können die Statustabelle verwenden, um Zustandsübergänge leicht zu interpretieren, innerhalb der Kohärenzprotokoll (oder jedes andere Protokoll von HPI). Ferner kann Zustandstabellen auch maschinenlesbaren und parsable Strukturen, die von einem Computer gelesen werden kann und interpretiert werden kann, wie die Zustände die nach einem bestimmten Protokoll-Spezifikation übergehen.
  • 17 zeigt eine vereinfachte Darstellung einer verallgemeinerten Zustandstabelle für eine Aktion ”Aktion A”. Eine Protokollzustandstabelle 1700, in einem Beispiel, kann Spalten enthalten (beispielsweise 1705) in Bezug auf aktuelle Zustände (oder den Zuständen, von dem ein Übergang gemacht werden soll), und andere Spalten (beispielsweise 1710) in Bezug auf nachfolgende Zustände (oder der Staaten, die sind überführt werden). Spalten in den aktuellen Stand Spalten können verschiedene Eigenschaften des Zustand reagieren, wie Befehle in einer Reaktionnachricht empfangen, Snoop Nachricht oder andere Nachricht, einer Cache-Linie Zustand, ausgehende Anfrage Puffer (ORB) Zustand, Kredite oder Ressourcen zur anwenden/reserven, ob die Cache-Linie wird teilweise modifiziert, eine Weiterleitungsbedingung, und so weiter. Jede Zeile in der Tabelle 1700 kann auf eine Reihe von Bedingungen festgestellt für eine Cache-Linie in einem bestimmten Zustand entsprechen. Ferner sind die Linie in der Zeile innerhalb der nächsten Zustandspalten (zB 1710) kann den nächsten Zustand aktuellen und die Bedingungen des nächsten Zustand, der in der Basis der in den Zeilenzellen in den spezifizierten Zustandspalten in einem aktuellen Zustandspalten eingegeben werden. (zB 1705). Der nächste Zustand Spalten (zB 1710) kann auf die Verhältnisse in den nächsten Zustand, wie die Nachrichten, die gesendet werden sollen, korrespondieren (beispielsweise mit einem entsprechenden Home node (HNID), anfordernden node (RNID), Beaufsichtiger-node, usw.), der nächste Cache-Linie Zustand, vorderer Zustand, und so weiter.
  • In einer Ausführungsform kann Protokollzustandstabellen die überspannde Zeile verwenden, um anzuzeigen, dass mehrere Verhaltensweisen für eine bestimmte Reihe von aktuellen Zustand ebenfalls zuständig sind. Zum Beispiel wird in dem Beispiel der 17, wenn der Befehl cmd1 die erste Bedingung falsch ist, ist die Cache-Linie in einem zweiten Zustand, und wenn eine zweite Bedingung auch falsch ist, mehrere potenzielle nächste Zustand Bedingungen (durch Reihen 1715 angegeben) sind möglich und können ebenso zulässig sein, die jeweils mit einer jeweiligen Zeile angezeigt. In anderen Worten, kann eine beliebige von solchen gleich zulässige Übergänge auf der Grundlage der entsprechenden aktuellen Zustandsbedingungen ausgelöst werden. In einigen Realisierungen können zusätzliche Agent wählen, welche von mehreren nächsten Zustand wählen, unter anderen beispielsweise Realisierungen. In einem anschaulichen Beispiel, ein aktueller Zustand von einer Zustandtabelle entsprechend an einen Hausagent, es kann Reaktionen von mehrerer Bedingungen (oder Eingang und Zustand Schutz) enthalten, einschließlich aller gültigen Verhaltensweisen für einen Kohärenz-Agent durchzuführen, wenn der Agent eine Voll M-Linie in seinem Cache besitzt und eine SnpMigr auf den gleichen Cache-Zeile verarbeitet. Die Tabellenzeile kann auf fünf verschiedene reagieren und ebendo zulässi, nächsten Verhaltenweise von dem Kohärenz-Agent kann in einer Reaktion auf die aktuellen Zustandsbedingungen, unter anderen Beispielen erfolgen.
  • In anderen Systemen kann eine Vorspannung Bit in Protokollzustandstabellen enthalten, in denen mehreren potenziellen nächsten Zuständen oder Bedingungen für einen bestimmten aktuellen Stand möglich sind, in QPI, zum Beispiel ein ”Vorspannung”-Bit wird in den Tabellen als Mechanismus, um unter inbegriffen Verhaltensweisen zu wählen. Solche Vorspannung-Bits können in erster Linie bei der Validierung der Protokollzustandsmaschine verwendet werden, aber solche Vorspannung-Bits führen zusätzliche Komplexität und, in einigen Fällen, es gibt unbekannte Verwirrung mit dem Nutzen der Vorspannung-Bit. In mancher Hinsicht kann eine Vorspannung-Bit nicht mehr als ein Artefakt einer Validierung Übung sein. In einem Beispiel der HPI durch Protokolltabellen, die mit Zeilen verwenden, die möglicherweise über mehrere Zeilen können, Vorspannung-Bits und andere Funktionen können ausgeschlossen werden. In solchen Fällen kann HPI Protokolltabellen explizite nicht-Determinismus zu betonen.
  • Mit Bezug auf dem Beispiel der 18, in einer Ausführungsform, Protokoll-Tabellen können durch einer verschachtelten Tabelle auf ein anderes Untertabelle in den Spalten ”nächsten Zustand” sich beziehen, und die verschachtelte Tabelle kann zusätzliche oder feinere Wachn festlegen, welche Zeilen (Verhalten) erlaubt sind. Wie in 18, kann eine beispielweise Protokoll Statustabelle 1700 kann ein eingebettetes Referenz 1805 zu einem anderen Tisch in der Gruppe von Tabelle, die eine Protokoll-Spezifikation verkörpert, 1800 enthalten wie eine Zustandstabelle, die zu einer Teilaktion oder Verhalten im Zusammenhang in der nächsten Zustand enthalten sind, für bestimmte Zeilen der Tabelle 1700. Mehrere Tabellen (zB, 1700, 1810) kann eine verschachtelte Tabelle (zB 1800) sich beziehen. Als Beispiel kann ein Agent der Verarbeitung einkommenden Reaktionen zu Protokoll Reaktion eine Aktionstabelle (zB, 1700, 1810) und eine Teilaktion Tabelle 1800 respondieren. Hier eine Aktionstabelle 1700 besteht aus einem nächsten Zustand mit einer veransachtelte Subaktion Tabelle unter einer oder mehrerer andere Protokoll-Tabellen. Diese Art der Verschachtelung kann über Kohärenzprotokoll und Protokollschicht Zustandstabellen gelten, kann aber auch für alle bekannten oder künftig Protokollantwort/Tabellen angewendet werden.
  • In einem Beispiel kann ein Agent von Protokoll-Tabellen (oder eine andere aufgebaute parsable Struktur aus den Protokoll-Tabellen) machen und kann eine bestimmte Zustandtabelle entsprechend einer bestimmten Aktion oder Veranstaltung identifizieren. Ferner kann der Agent die Zeile, die dem Cache-Zeile behandelt oder durch den Agent gezielt und identifiziert, identifizieren, aus der Tabelle, die nächste Zustandinformationen für die Cache-Linie. Diese Bestimmung kann die Identifizierung einer Bezugnahme auf eine verschachteltenTabelle einer Subaktion umfassen. Dementsprechend kann der Agent die entsprechende Struktur der verlinkten verschachtelte Tabelle identifizieren und weitere Referenz die verschachtelte Tabelle, um die Zustandsübergang zu bestimmen.
  • In einem bestimmten Beispiel kann eine kollektive Gruppe von Protokolltabellen und für alle möglichen Zustandsübergänge in einem Protokoll definieren. Ferner kann jeder Tisch eine Reihe von Übergängen, die eine Reihe von Verhaltensweisen im Protokoll angeben (zB einen Tisch deckt alle Verhaltensweisen in Snooping und Aktualisierung Cache-Zustand beteiligt, einer deckt alle Verhaltensweisen, neue Anfragen erzeugen, usw.). Wenn ein Agent mit einem Verhalten durchführt, ein Ereignis verarbeitet oder prüft, ob eine andere Aktion der Agent ergriffen werden sollte, der bestimmten Zustandtabelle für diesen bestimmten Verhalten in der Gruppe der Zustandstabellen zu identifizieren. Der Agent kann dann erkennen den aktuellen Zustand des Systems und der Verweis auf die ausgewählte Statustabelle, um die Zeile oder eine Gruppe von Zeilen mit de, anpassenden aktuellen Zustand identifizieren, falls vorhanden. Wenn keine Zeilen übereinstimmt, kann der Agent, in einigen Fällen, jede Handlung für den gegebenen aktuellen Zustand unterlassen und auf eine andere Veranstaltung/Verhalten warten, bevor er den Zustand ändern. Ferner kann in einigen Fällen, wie oben eingeführt, wenn mehr als eine Zeile des identifizierten Systemzustand übereinstimmt, der Agent kann eine von ihnen auswählen, um durchzuführen, als auch wie gleichermaßen zulässig angesehen werden. Ferner wird in dem Fall der Verschachtelung, wenn eine Zeile bezieht sich auf eine verschachtelte Tabelle, kann der Agent die geschachtelte Tabelle zugreifen und die identifizierten aktuellen Zustand des Systems für erlaubten Zeilen in der geschachtelten Tabelle suchen.
  • In einigen Beispielen, beim Durchgang alle primären und verschachtelten Tabellen, um eine Reaktion auf eine bestimmte identifizierte System (oder Protokoll) Zustand zu bestimmen, der Agent kann bewirken, daß die entsprechenden Maßnahmen durchgeführt werden und der Zustand des Systems in Übereinstimmung mit der Änderung der ”nächsten Zustände ”in den entsprechenden Zustandstabellen bezeichnet.
  • In einigen Fällen kann es möglich sein, daß mehr als eine Zustandstabelle betrifft oder umfasst eine Reihe von Verhaltensweisen. Als ein illustratives Beispiel, zwei Tabellen für die Bearbeitung Snoops vorgesehen sind, die erste für den Fall, wenn es eine aktive widersprüchliche Anforderung gibt, wobei die zweite Tabelle, wenn es nicht war. Dementsprechend wird in einigen Realisierunge, ein Agent mehreren Tabellen prüfen, um zu bestimmen, welche Tabelle inklusive Zeilen relevant für die besonderen Bedingungen ist und Zuständen durch den Agenten identifiziert. Ferner kann in einigen Fällen, ein Agent zwei unabhängige bzw Getrennte Ereignisse gleichzeitig auftreten, wie beispielsweisem, bei dem ein Hausagent eine Snoop-Reaktion empfängt und eine neue Anforderung zur gleichen Zeit zu erfordern. In Fällen, in denen mehrere Veranstaltungen verarbeitet werden, ein Agent kann identifizieren und mehrere entsprechende Tabellen gleichzeitig zu verwenden, wie die Ereignisse verarbeitet werden.
  • Es wird nun auf die 19 und 20, vereinfachte Blockdiagramme 1900 2000 sind dargestell mit Beispielen von einem Test oder Validierungsumgebung für die Verwendung bei der Validierung von mindestens einem Teil eines Protokolls gezeigt. Zum Beispiel wird in dem Beispiel der 19, einen Testmotor 1900 vorgesehen ist, um eine Zustandsmaschine eines Protokolls zu überprüfen. In einem Beispiel kann Testmotor 1900 beinhalten oder auf Prinzipien einer Murphi Werkzeug oder einem anderen enumerativen (explizite Zustand) Model-Checker basiert, unter anderen Beispielen. Zum Beispiel können andere Spezifikationssprachen in der lieu von Murphi verwenden, die einschließlich mit einem anderen Beispiel, TLA + oder einer anderen geeigneten Sprache oder Format verwendet werden. In traditionellen Systemen, der Zustand von Modell Checket durch menschliche Entwickler aufgebaut wurde, die versuchen, Zustandsmaschinen zu übersetzen (zB von Begleitzustandstabellen, etc.) in einer Reihe von Anforderungen, die dann verwendet werden, um einen Checker in der Lage zu generieren und überprüfen. Dies ist nicht nur eine typisch arbeits und ressourcenintensiver Prozess, aber es führt auch zu den menschlichen Fehler wie die Zustände und Zustandsübergänge von einem Zustand Tabelle, die durch menschliche Benutzer transkribiert und interpretiert werden.
  • In eine Implementierung kann ein Testmodul 1900 eine Reihe von Statustabellen (z. B. 1905) automatisch aus der Gruppe der Statustabellen einsetzen, generieren Ressourcen Modell Verhalten des Agenten in einer Testumgebung. Beispielsweise kann ein Testmodul 1900 im Beispiel von als Funktionalität-Engine für die Modellierung einer Cache-Agenten oder andere Agenten die Statustabellen 1905 nutzen (z. B. 1910), um verschiedene Übergänge zu überprüfen, durch die Simulation von Anforderungen und Antworten verwendet werden kann (z. B. 1912) mit anderen realen oder simulierten Agenten, einschließlich eines home-Agents 1915. Ebenso wie in dem Beispiel von dargestellt, Testmodul 1900 kann Statustabellen 1905 nutzen, Anfragen und Antworten zu simulieren (z. B. 1918) von einem home-Agent (z. B. 1920) und Schnittstelle mit anderen realen oder simulierten Agenten (z. B. 1925) weiter überprüfen und Auflisten von Staaten des Protokolls. Als Beispiel, kann Testmodul 1900 model Agent und real oder modellierte Protokollmeldungen, z. B. HPI-Kohärenz-Protokollnachrichten, und Verweis Zustand Tabellen 1905 (oder eine andere analysierbarem Struktur generiert von Statustabellen 1905) empfangen kann automatisch eine entsprechende Reaktion erzeugen, führen Sie entsprechende Zustandsübergänge und So weiter, auf der Grundlage von die Statustabellen 1905.
  • In einer bestimmten Implementierung kann Statustabellen ein Testmodul oder andere Software oder Hardware-basierten Dienstprogramm verwendet werden (z. B., 1905) zum Generieren von Code zu fahren und reagieren auf Designs nutzen, die ein bestimmtes Protokoll zu beschäftigen, z. B. HPI-Kohärenz-Protokoll. In diesem speziellen Beispiel Statustabellen können als Eingabe für das Testmodul durch Tabellen verwendet werden oder enthalten Pseudocode zusammen mit Murphi Zuordnungen für Tabellenwerte und Pseudocode Elemente in entsprechende Murphi Herrschaft und Verfahren-Format. Das Testmodul kann, für die weitere Murphi Code Typdefinitionen und unterstützenden Funktionen generiert verwendet werden. Der Murphi Regel, Verfahren, Typ und Support-Code kann verwendet werden, um ein Murphi Modell erzeugen. Das Modell Murphi kann übersetzt werden, beispielsweise mithilfe eines Konverters, C++ oder anderen Klassendefinition. Tatsächlich kann jeder geeignete Programmiersprache genutzt werden. Unterklassen der Modellklasse können weitere erzeugt werden und diese Module wie eine simulierte oder Testbench Version eines Agenten beschäftigt Verhalten verwendet werden und der Protokoll-Spezifikation in die Statustabellen verkörpert ausgerichtet. Darüber hinaus kann eine interne API generierten oder sonst, sofern die Nachricht Generation und Nachrichtenempfang ausgerichtet ist, wie in der Protokoll-Statustabellen definiert. Beispielsweise kann eine Nachricht-Generation API an Link-Pakettypen und Nachrichtenempfang gebunden werden und kann einzelne Schnittstelle Buchstabe vereinheitlicht werden. In diesem Beispiel kann eine gesamte formale Protokollspezifikation in eine C++ (oder andere objektorientierte Programmiersprache) umgewandelt werden Klasse. Vererbung kann verwendet werden, zum Abfangen von Nachrichten generiert und Instanzen der Unterklasse können als funktionelle Testbench-Agents erstellt werden. In der Regel formale Spezifikation Tabellen können verwendet werden, als eine Funktionalität-Engine für eine Validierung oder Testtool Umgebung anstatt Entwickler separat erstellen ihre eigenen Tools basierend auf ihre Interpretation der Spezifikation.
  • HPI können in eine Vielzahl von EDV-Geräten und Systemen integriert, einschließlich Mainframes, Serversysteme, PCs, mobilen Computern (z. B. Tabletten, Smartphones, persönliche digitale Systeme, etc.), smart Appliances, Gaming oder Unterhaltung Konsolen und set-Top-Boxen, unter anderen Beispielen. Zum Beispiel wird unter Bezugnahme auf , Verkörperung der ein Blockdiagramm für ein EDV-System einschließlich einen Mehrkern-Prozessor dargestellt. Prozessor 2100 umfasst alle Prozessoren oder Verarbeitung Gerät, z. B. ein Mikroprozessor, ein embedded-Prozessor, einem digitalen Signalprozessor (DSP), einen Netzwerkprozessor, ein handheld-Prozessor, ein Anwendungsprozessor, ein Co-Prozessor, ein System auf einem Chip (SOC), oder ein anderes Gerät zum Ausführen von Code. Prozessor 2100, in einer Ausführungsform enthält mindestens zwei Kerne – Kern 2101 und 2102, die asymmetrische Kerne oder symmetrische Kerne (illustrierte Verkörperung) enthalten kann. Prozessor 2100 kann jedoch eine beliebige Anzahl Verarbeitung Elemente enthalten, die symmetrischen oder asymmetrischen möglicherweise.
  • In einer Ausführungsform bezieht sich eine Verarbeitung-Element an der Hardware oder Logik zur Unterstützung von eines Software-Threads. Beispiele für Hardware die Verarbeitung der Elemente sind: eine Thread-Einheit, einen Thread-Steckplatz, einen Thread, eine Prozess-Einheit, einen Kontext, eine Kontext-Einheit, einen logischen Prozessor, ein Hardwarethread, einen Kern bzw. keinem anderen Element, die der Betrieb eines Staates für einen Prozessor, z. B. Ausführungszustand oder architektonische Zustand geeignet ist. Mit anderen Worten, bezeichnet ein Element Verarbeitung in einer Ausführungsform, jede Hardware, die Lage, selbständig mit Code, z. B. ein Software-Thread, Betriebssystem, Anwendung oder anderen Code in Verbindung gebracht. Einen physischen Prozessor (oder Prozessor-Sockel) bezeichnet in der Regel eine integrierte Schaltung, die potentiell beliebig viele andere Elemente Verarbeitung wie Kerne oder Hardwarethreads umfasst.
  • Ein Kern bezieht sich häufig auf Logik befindet sich auf einem integrierten Schaltkreis aufrechterhalten, architektonischen unabhängigen Staat, worin jeweils unabhängig verwaltet, dass architektonische Zustand zumindest einige spezielle Ausführung-Ressourcen zugeordnet ist. Im Gegensatz zu Kernen bezeichnet ein Hardwarethread in der Regel keine Logik befindet sich auf einem integrierten Schaltkreis aufrechterhalten, architektonischen unabhängigen Staat, worin die unabhängig voneinander gepflegten architektonischen Staaten Zugriff auf Ausführung Ressourcen teilen. Wie gesehen werden kann wenn bestimmte Ressourcen freigegeben werden und andere sich einem architektonischen Zustand widmen, überschneidet sich die Grenze zwischen der Nomenklatur der ein Hardware-Thread und Kern. Noch werden häufig, einen Kern und eine Hardware-Thread von einem Betriebssystem als einzelne logische Prozessoren gesehen wo das Betriebssystem Operationen für jeden logischen Prozessor individuell planen kann.
  • Wie in dargestellt, Physischer Prozessor 2100 enthält zwei Kerne – Kern 2101 und 2102. Hier sind Core 2101 und 2102 symmetrische Kerne, d. h. die Kerne mit dem gleichen Konfigurationen, die Funktionseinheiten bzw. die Logik betrachtet. In einer weiteren Ausführungsform beinhaltet Core 2101 eine Out-of-Order-Prozessorkern, während Kern 2102 ein Prozessorkern in Reihenfolge enthält. Kerne 2101 und 2102 können jedoch individuell bei jeder Art von Kern, z. B. einen einheitlichen Kern, einen Kern der Software verwaltet, einen Kern, angepasst an einen native Instruction Set Architecture (ISA) ausgeführt, eine Core angepasst, um eine übersetzte Instruction Set Architecture (ISA) ausgeführt, einen gemeinsam gestalteten Kern, oder andere bekannte Core ausgewählt werden. In einer Umgebung mit heterogenen Kern (d. h. asymmetrische Kerne) kann irgendeiner Form der sie für die Anforderungzugeordnet. Home-Agent kann auch in Zukunft weitere standard auf einer oder beiden Kerne. Noch werden um die Diskussion weiter, die funktionalen Einheiten, die im Kern 2101 illustriert ausführlich weiter unten beschrieben, da die Einheiten im Kern 2102 in ähnlicher Weise in der dargestellten Ausführungsform tätig sind.
  • Wie dargestellt, Kern 2101 beinhaltet zwei Hardware threads, 2101a und 2101b, die auch als Hardware bezeichnet werden kann Thread Slot Machines, 2101a und 2101b. Daher anzeigen Softwareeinheiten, wie ein Betriebssystem in einer Ausführungsform potenziell Prozessor 2100 als vier separaten Prozessoren, d. h. vier logische Prozessoren oder Verarbeitung Elemente vier Software-Threads gleichzeitig ausführen. Wie oben angedeutet, ist ein erster Thread verknüpft mit Architektur Staat registriert 2101a, ein zweiter Thread ist verbunden mit Architektur Staat registriert 2101b, ein Dritter Thread kann verbunden werden mit Architektur Staat registriert 2102a, und ein vierter Thread kann verbunden werden mit Architektur Staat registriert 2102b. Hier kann jeder der Architektur-Status-Register (2101a, 2101b, 2102a und 2102b) werden als bezeichnet Verarbeitung Elemente, Thread-Steckplätze oder Thread-Einheiten, wie oben beschrieben. Wie dargestellt, Architektur-Status-Register 2101a repliziert werden in der Architektur Zustand registriert 2101b, so dass individuelle Architektur Staaten/Kontexte für logische 2101a und logischen Prozessor 2101b gespeichert werden können. Im Kern 2101, andere kleineren Ressourcen, wie z. B. Anweisung Zeiger und Logik in der Zuweisung und Renamer Block 2130 umbenennen können auch repliziert werden für Fäden, 2101a und 2101b. Einige Ressourcen, wie z. B. neu anordnen Puffer in neu ordnen/Ruhestand Einheit 2135, ILTB 2120, Load/Store-Puffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, z. B. Allzweck-internen Register Seitentabelle base Register, Low-Level-Daten-Cache und Daten-TLB 2151, Ausführung Stck 2140 und Teile des Out-of-Order-Einheit-2135 werden möglicherweise vollständig freigegeben.
  • Prozessor 2100 umfasst oft andere Ressourcen, die vollständig geteilt, geteilt durch Partitionierung, oder von/auf die Verarbeitung von Elementen gewidmet. zeigt eine Verkörperung eines rein beispielhaft Prozessors mit illustrativen logische Einheiten/Ressourcen eines Prozessors. Beachten Sie, dass ein Prozessor kann einschließen, oder weglassen, eines dieser funktionalen Einheiten, sowie enthalten andere bekannte Funktionseinheiten, Logik oder Firmware nicht dargestellt. Wie dargestellt, beinhaltet Core 2101 eine vereinfachte, repräsentativen Out-of-Order (OOO) Prozessorkern. Aber ein Auftragsbearbeiter in verschiedenen Verkörperungen eingesetzt werden kann. Der OOO-Kern umfasst einen Zweig Zielpuffer 2120 vorherzusagen Zweige ausgeführt/getroffen werden und einen Unterricht-Übersetzung-Puffer (I-TLB) 2120 Übersetzung Adresseinträge Anweisungen speichern.
  • Kern 2101 weitere umfasst decodieren Modul 2125 gekoppelt um Einheit 2120 zum Dekodieren von abgerufenen Elemente zu holen. FETCH-Logik, in einer Ausführungsform, umfasst einzelne Sequenzer Thread zugeordnete 2101a, 2101b, bzw. slots. In der Regel ist Kern 2101 eine erste ISA, gibt definiert/Prozessor 2100 ausführbare Anweisungen zugeordnet. Oft sie für die sie für die Anforderungzugeordnet. Home-Agent kann auch in Zukunft weitere standard umfasst Schaltung, die erkennt diese Weisungen ihrer Opcodes und übergibt die decodierten Anweisungen in der Pipeline für die Verarbeitung gemäß der ersten ISA Wie im Detail unten Decoder 2125, in einer Ausführungsform, erläutert beispielsweise Logik entwickelt oder angepasst, um genauere Anweisungen, z. B. Transaktions-Anweisung zu erkennen. Durch die Anerkennung von Decodern 2125 Architektur oder Kern 2101 nimmt bestimmte, vordefinierte Aktionen um Aufgaben im Zusammenhang mit der entsprechenden Anweisung auszuführen. Es ist wichtig zu beachten, dass die Aufgaben, Blöcke, Operationen und Methoden, die hier beschriebenen in Reaktion auf eine einzelne oder mehrere Anweisungen durchgeführt werden kann; von denen einige möglicherweise neue oder alte Anweisungen. Beachten Sie, dass Decoder 2126, in einer Ausführungsform, die gleichen ISA (oder eine Teilmenge davon) erkennen. In einer Umgebung mit heterogenen Kern erkennen Decoder 2126 alternativ eine zweite ISA (eine Teilmenge der ersten ISA) oder eine unterschiedliche ISA.
  • Bei einem Beispiel beinhaltet die Zuweisung und Renamer Block 2130 eine Zuweisung um Ressourcen, z. B. Register Dateien zum Speichern von Anweisung Verarbeitungsergebnisse zu reservieren. Jedoch Fäden 2101a und 2101b sind potenziell in der Out-of-Order-Ausführung, wo Zuweisung und Renamer Block 2130 behält sich vor, andere Ressourcen, z. B. Nachbestellungen Puffer, Anweisung Ergebnisse zu verfolgen. Einheit 2130 kann auch eine Register-Renamer zum Programm/Anleitung-Referenz-Register zu den anderen Registern internen Prozessor 2100 umbenennen enthalten. Nachbestellungen/Ruhestand Einheit 2135 enthält Komponenten, wie z. B. die Nachbestellungen Puffer oben erwähnt, Puffer zu laden und Speichern von Puffer, um Out-of-Order Ausführung zu unterstützen und später in Reihenfolge Ausscheiden von Anweisungen Out-of-Order ausgeführt.
  • Planer und Ausführung Stck Block 2140, in einer Ausführungsform beinhaltet eine Scheduler-Einheit um Anweisungen/Operation auf Ausführungseinheiten zu planen. Zum Beispiel eine Gleitkommazahl Punkt Unterricht soll einen Port für eine Ausführungseinheit, die ein verfügbar unverankerten Punkt-Ausführungseinheit hat. Die Ausführungseinheiten zugeordnete Register-Dateien sind ebenfalls enthalten, zum Speichern von Informationen Anweisung Verarbeitungsergebnisse. Beispielhafte Ausführungseinheiten umfassen eine Gleitkommazahl doppelter Genauigkeit zeigen Ausführungseinheit ein Ganzzahl-Ausführungseinheit, ein Sprung-Ausführungseinheit, eine Ladeeinheit Ausführung, ein Speicher-Ausführungseinheit und anderen bekannten Ausführungseinheiten.
  • Untere Ebene-Daten-Cache und Übersetzung Datenpuffer (D-TLB) 2150 sind zur Ausführung Stck 2140 gekoppelt. Der Datencache ist vor kurzem verwendet/operiert Elemente, z. B. Daten Operanden, die potenziell in Kohärenz Speicherzustände gehalten werden gespeichert. D-TLB besteht darin, den letzten virtuellen/linear ins körperliche Adresse speichern. Als ein konkretes Beispiel enthalten ein Prozessor eine Tabellenstruktur Seite um physischen Speichers in eine Vielzahl von virtuellen Seiten aufteilen.
  • Hier, Kerne 2101 und 2102 Anteil auf höherer Ebene oder weitere dezentrales Cache, z. B. einer zweiten Ebene Cache auf dem Chip Schnittstelle 2110 zugeordnet. Beachten Sie, dass auf höherer Ebene oder weiter-Out auf Cache-Level zu erhöhen, oder immer weiter Weg von der Ausführung Stck verweist. In einer Ausführungsform, übergeordneten Cache ist ein Cache aus den Daten der letzten – letzter Cache in der Speicherhierarchie auf Prozessor 2100 – wie einen zweiten oder dritten Ebene Datencache. Höhere Level Cache ist jedoch nicht so begrenzt, wie es zugeordnet werden kann oder einen Instruction-Cache enthalten. Ein Trace-Cache – eine Art von Instruction-Cache – stattdessen nach Decoder 2125 vor kurzem speichern Spuren decodiert gekoppelt werden kann. Hier bezieht sich eine Anweisung möglicherweise auf eine Makroanweisung (d. h. eine allgemeine Anweisung von den Decodern erkannt), die in eine Anzahl von Mikro-Anweisungen (Mikro-Operationen) dekodieren kann.
  • In der abgebildeten Konfiguration beinhaltet 2100-Prozessor auch auf dem Chip-Schnittstellenmodul 2110. Historisch gesehen ist ein Speicher-Controller, die im folgenden näher beschrieben wird, in ein Computersystem externen Prozessor 2100 aufgenommen worden. In diesem Szenario ist auf dem Chip-Schnittstelle 2110 mit Geräten außerhalb Prozessor 2100, z. B. Systemspeicher 2175, einen Chipsatz (oft auch ein Speicher-Controller-Hub zum Herstellen einer Verbindung mit Speicher 2175 und ein i/o-Controller-Hub zu Peripheriegeräten), ein Speicher-Controller-Hub, einer Northbridge oder andere integrierte Schaltung zu kommunizieren. Und in diesem Szenario kann Bus 2105 ein bekanntes Interconnects, wie Multi-Drop Bus, einen Punkt zu Punkt-Verbindung, eine serielle Verbindung, ein paralleler Bus, eine kohärente enthalten (z. B. Cache-Kohärenz) Bus, eine überlappende Protokollarchitektur und einen differenziellen Bus ein GTL-Bus.
  • Speicher 2175 kann gewidmet sein Prozessor 2100 oder gemeinsam mit anderen Geräten in einem System. Häufige Beispiele für Speichertypen 2175 DRAM, SRAM, nicht-flüchtigen Speicher (NV-Speicher) und andere bekannte Speichergeräte. Hinweis: dieses Gerät 2180 ein Grafik-Beschleuniger, Prozessor oder Karte gekoppelt mit einem Speicher-Controller-Hub, Datenspeicherung, gekoppelt an ein i/o-Controller-Hub, einem wireless-Transceiver, einem Flashlaufwerk, ein audio-Controller, eine Netzwerk-Controller oder andere bekannte Gerät enthalten kann.
  • Vor kurzem jedoch, kann wie mehr Logik und Geräte auf einen einzelnen Würfel, wie SOC, einbezogen werden jedes dieser Geräte auf Prozessor 2100 aufgenommen werden. Zum Beispiel in einer Ausführungsform ist ein Memory-Controller-Hub auf dem gleichen Paket und/oder sterben mit Prozessor 2100. Hier, ein Teil des Kerns (eine auf Kern-Teil) 2110 enthält eine oder mehrere Controller zur Anbindung mit anderen Geräten wie z. B. Arbeitsspeicher 2175 oder eine Grafikeinheit 2180. Die Konfiguration einschließlich einer Interconnect und Controller zur Anbindung mit einer derartigen Vorrichtung wird oft bezeichnet als auf Kern (oder un-Core Konfiguration). Als ein Beispiel, auf dem Chip-Schnittstelle 2110 umfasst ein Ring interconnect für on-Chip Kommunikation und ein High-Speed serielle Punkt-zu-link 2105 für off-Chip-Kommunikation. Doch, in der Umgebung von SOC auch weitere Geräte, z. B. die Netzwerkschnittstelle, Co-Prozessoren, Speicher 2175, Grafikprozessor 2180, und alle anderen bekannten Geräte/Computerschnittstelle kann auf einem einzigen sterben oder integrierte Schaltung zu kleinem Formfaktor mit hoher Funktionalität und niedrigen Stromverbrauch integriert werden.
  • In einer Ausführungsform kann Prozessor 2100 ausführt eine Compiler, Optimierung und/oder Übersetzer Code 2177 kompilieren, übersetzen bzw. Anwendungscode 2176 zur Unterstützung der Apparate und hierin oder in Schnittstelle damit beschriebenen Methoden zu optimieren. Ein Compiler enthält oft ein Programm oder eine Sammlung von Programmen zum Zielcode Text/Text/Quellcode übersetzen. In der Regel der Programmanwendung/Code mit einem Compiler erfolgt in mehreren Phasen und übergibt Stücklistenebene Maschine oder Assembler-Ebene Programmcode Sprache umzuwandeln. Single-Pass-Compiler können doch noch für einfache Zusammenstellung genutzt werden. Ein Compiler kann alle bekannten Zusammenstellung-Techniken nutzen und alle bekannten Compiler Operationen, wie lexikalische Analyse, Vorverarbeitung, Analyse, semantische Analyse, Codegenerierung, Code-Transformation und Code-Optimierung.
  • Größere Compiler enthalten oft mehrere Phasen, aber meistens diese Phasen sind enthalten in zwei allgemeine Phasen: (1) ein Front-End, d. h. in der Regel syntaktische Verarbeitung, semantische Verarbeitung und einige Transformation/Optimierung können beschließen Ort und (2) ein Back-End, d. h. in der Regel wo Analyse, Transformationen, Optimierungen und Code Generation findet statt. Einige Compiler beziehen sich auf eine Mitte, die veranschaulicht, die Verwischung der Abgrenzung zwischen ein Front-End- und Back-End eines Compilers. Infolgedessen auf die Einfügung, Vereinigung, Generation, oder andere Operation eines Compilers in eines der oben genannten Phasen oder Abos, sowie alle anderen bekannten Phasen oder Bahnen eines Compilers stattfinden kann. Als illustrative Beispiel fügt ein Compiler möglicherweise Operationen, Anrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung z. B. Einfügen von Aufrufe/Operationen in einer Front-End-Phase der Kompilierung und dann die Umwandlung der Anrufe/Operationen in Low-Level-Code in einer Transformationsphase. Beachten Sie, dass bei der dynamischen Kompilierung, Compiler oder dynamische Optimierung Code kann solche Operationen/Aufrufe einfügen, sowie optimieren Sie den Code für die Ausführung während der Laufzeit. Als ein konkretes illustrativen Beispiel kann Binärcode (bereits kompilierten Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode die dynamische Optimierung-Code, der binäre Code oder eine Kombination davon enthalten.
  • Ähnlich wie bei einem Compiler, Übersetzer, z. B. eine binäre Übersetzer übersetzt Code entweder statisch oder dynamisch zu optimieren bzw. Code zu übersetzen. Daher auf die Ausführung von Code, Anwendungscode, Programmcode, oder andere Software-Umgebung steht für: (1) Ausführung eines Compilers Programme, Code-Optimierung Optimierung oder Übersetzer entweder dynamisch oder statisch, kompilieren Sie Programmcode, um Softwarestrukturen, um andere Operationen, um Code zu optimieren, oder Code; zu übersetzen zu erhalten (2) Ausführung der wichtigsten Programm-Code einschließlich Operationen/Anrufe, z. B. Anwendungscode, der optimiert/zusammengestellt hat; (3) Ausführung von anderen Programmcode, wie z. B. Bibliotheken, verbunden mit dem Hauptprogramm-Code weiterhin Softwarestrukturen, um andere Software auszuführen damit zusammenhängende Tätigkeiten, oder zur Optimierung von Code; oder (4) eine Mischung aus beidem.
  • Während die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Verkörperungen beschrieben wurde, werden diese fachkundige zahlreiche Modifikationen und Variationen daraus zu schätzen wissen. Es ist vorgesehen, dass die angefügten Ansprüche als in der wahren Geist und Umfang dieser vorliegende Erfindung fallen solche Modifikationen und Variationen abdecken.
  • Eine Design kann durch verschiedene Phasen, von der Erstellung bis zur Simulation zur Fertigung gehen. Daten, die eine Design können das Design in verschiedener Weise darstellen. Erstens kann sich wie in Simulationen sinnvoll ist, die Hardware zum vertreten sein mit einer Hardware-Beschreibungssprache oder anderssprachigen Funktionsbeschreibung. Darüber hinaus kann ein Level Schaltung-Modell mit Logik und/oder Transistor-Gates in einigen Phasen des Design-Prozesses hergestellt werden. Darüber hinaus erreichen die meisten Designs, irgendwann ein Maß an Daten, die die physische Speicherung verschiedener Geräte in der Hardware-Modell darstellen. In dem Fall, wo konventionelle Halbleiter Fertigungstechniken verwendet werden, möglicherweise die Daten, die das Hardware-Modell der Daten vom Vorhandensein oder Fehlen von Funktionen auf verschiedenen Ebenenmasken für Masken verwendet, um die integrierte Schaltung erzeugen. In einer Darstellung des Designs können die Daten in irgendeiner Form eines Mediums maschinenlesbar gespeichert werden. Eine Erinnerung oder einen magnetischen oder optischen Speicher beispielsweise einen Datenträger möglicherweise das maschinenlesbar Medium zum Speichern von Informationen über optische übertragen oder elektrische Welle moduliert oder auf andere Weise generiert, um diese Informationen zu übermitteln. Wenn eine elektrische Trägerwelle, die angibt, oder tragen den Code oder Entwurf übertragen wird, die Pufferung, kopieren, oder erneute Übertragung des elektrischen Signals erfolgt, wird eine neue Kopie gemacht. So kann eine Kommunikation-Anbieter oder einem Netzwerkanbieter auf einem greifbaren, maschinenlesbaren Medium zumindest vorübergehend einen Artikel, wie kodiert eine Trägerwelle Informationen speichern mit Techniken der Verkörperungen der vorliegenden Erfindung.
  • Ein Modul im Rahmen dieser Vereinbarung bezieht sich auf eine beliebige Kombination aus Hardware, Software und Firmware. Als Beispiel, ein Modul umfasst Hardware, wie ein Mikro-Controller, verbunden mit einem nicht vergänglich Medium zum Speichern von Code angepasst, um von den Mikro-Controller ausgeführt werden. Verweis auf ein Modul, in einer Ausführungsform, bezieht sich deshalb auf die Hardware, die speziell konfiguriert ist, zu erkennen und/oder führen Sie den Code auf einem nicht vergänglich Medium stattfinden. Darüber hinaus in einer weiteren Ausführungsform, Einsatz eines Moduls bezieht sich auf das nicht vergänglich Medium einschließlich des Codes, die speziell vom Mikrocontroller vorgegebenen Operationen ausgeführt werden. Und wie abgeleitet werden kann, in noch einer weiteren Ausführungsform, das Laufzeit-Modul (in diesem Beispiel) steht für die Kombination von den Mikrocontroller und das Medium, nicht vergänglich. Oft Modul Grenzen, die häufig als getrennt dargestellt werden, variieren und potenziell überlappen. Beispielsweise können eine erste und eine zweite Modul Hardware, Software, Firmware oder eine Kombination davon, teilen Beibehaltung aller potenziell einige unabhängige Hardware-, Software- oder Firmware. Verwenden Sie in einer Ausführungsform den Begriff Logik Hardware, wie z. B. Transistoren, Register oder sonstige Hardware, wie programmierbare Logik umfasst.
  • Verwendung des Ausdrucks ”konfiguriert,' in einer Ausführungsform, bezieht sich auf Anordnung, Zusammenstellung, Produktion, anbieten, verkaufen, importieren und/oder entwerfen ein Apparat, Hardware, Logik oder Element einer benannten oder festgestellten Aufgabe. In diesem Beispiel ein Gerät oder ein Element davon, die nicht in Betrieb ist ist immer noch ”so konfiguriert, dass' eine bestimmte Aufgabe ausführen ist es ausgelegt, gekoppelt, und/oder miteinander ausführen sagte festgelegten Aufgabe. Als rein illustrativen Beispiel können eine logische Schaltung während des Betriebs eine 0 oder 1. Aber eine Logik-Gate'so konfiguriert, dass' bieten ein Enable-Signal zu einem Takt schließt nicht jede mögliche logische Schaltung, die eine 1 oder 0 liefern können. Ist vielmehr die logische Schaltung gekoppelt in irgendeiner Weise, die während des Betriebs die Ausgabe 1 oder 0 ist es, die Uhr zu ermöglichen. Beachten Sie nochmals, dass die Verwendung des Begriffs 'Konfiguration' Betrieb nicht erforderlich, sondern stattdessen auf den latenten Zustand der einen Apparat, Hardware und/oder Element, konzentrieren, wo in die latente Angabe den Apparat, Hardware, oder Element wurde entwickelt, um eine bestimmte Aufgabe ausführen, wenn die Geräte, Hardware und/oder Element arbeitet.
  • Darüber hinaus nutzen Sie die Phrasen ',' 'fähig, von /' und oder 'bedienbar,' in einer Ausführungsform, bezieht sich auf einige Apparate, Logik, Hardware, und/oder Element entwickelt, so aktivieren Sie die Verwendung der Apparate, Logik, Hardware und/oder Element in einer angegebenen Weise. Beachten Sie, wie oben, bei der Nutzung zu, fähig oder bedienbar, in einer Ausführungsform, in den latenten Zustand ein Apparat, Logik, Hardware und/oder Element verweist, wo der Apparat, Logik, Hardware und/oder Element ist nicht betriebsbereit, aber soll in einer Weise Verwendung einer Vorrichtung in einer angegebenen Weise ermöglichen.
  • Ein Wert enthält, im Rahmen dieser Vereinbarung, jede bekannte Darstellung eine Zahl, einen Zustand, einen logischen Zustand oder eine binäre logische Zustand. Oft die Verwendung von Logikpegeln, Logik-Werte oder Wahrheitswerte nennt man auch als 1 und 0, die einfach binären Logik Zustände darstellt. Beispielsweise eine 1 bezieht sich auf eine hohe Logikpegel und 0 bezieht sich auf eine niedrige Logikpegel. In einer Ausführungsform kann eine Speicherzelle, z. B. ein Transistor oder flash Zelle, halten einen einzelnen logischen Wert oder mehrere logische Werte können. Jedoch wurden andere Darstellungen der Werte in Computersystemen eingesetzt. Zum Beispiel kann die Dezimalzahl 10 auch als binäre Wert 2110 und eine hexadezimale Buchstaben a dargestellt werden Daher beinhaltet ein Wert jede Darstellung von Informationen fähig gehalten in einem Computersystem.
  • Darüber hinaus können Staaten durch Werte oder Teile von Werten dargestellt werden. Als Beispiel Ausgangszustand, wohingegen der zweite Wert, wie eine logische Null, kann einen Staat nicht der Standardkonfiguration darstellen oder ein erster Wert, wie eine logische kann einen Standard darstellen. Darüber hinaus beziehen sich die Begriffe zurücksetzen und festgelegt, in einer Ausführungsform, einer Standard und einer aktualisierten Wert und jedem Staat. Beispielsweise einen Standardwert enthält möglicherweise ein hoher Wahrheitswert, d. h. zurücksetzen, während ein aktualisierter Wert potentiell niedrigen logischen Wert enthält, d. h. Set. Beachten Sie, dass jede Kombination von Werten genutzt werden kann, um eine beliebige Anzahl von Staaten darstellen.
  • Die Verkörperungen der Methoden, Hardware, Software, Firmware oder Code, die oben genannten können durchgeführt werden, über Anweisungen oder Code auf eine Maschine zugänglich, Maschine lesbar, Computer zugänglich oder Computer lesbaren Datenträger die ausführbare sind durch eine Verarbeitung Element gespeichert. Eine nicht vorübergehende Maschine-zugänglich/lesbaren Datenträger enthält keinen Mechanismus, der bereitstellt (d. h. speichert bzw. überträgt) Informationen in einer Form, die von einer Maschine wie einen Computer oder ein elektronisches System gelesen werden. Beispielsweise enthält ein nicht vorübergehende Maschine-zugängliches Medium random access memory (RAM), z. B. Statisches RAM (SRAM) oder dynamisches RAM (DRAM); ROM; magnetische oder optische Speichermedien; Flash-Speichergeräte; elektrische Speicher-Devices; optische Speichermedien; akustische Speichergeräte; andere Form von Speicher-Devices für die Abhaltung von vergänglichen erhaltenen Informationen (weitergegeben) Signale (z. B. Carrier Wellen, Infrarot-Signale, digitale Signale); etc., die sollen von den nicht-transitorische Medien unterschieden werden, die dort von Informationen erhalten kann.
  • Anweisungen zum Programmlogik auszuführenden Verkörperungen der Erfindung können innerhalb eines Memory in das System, wie DRAM, Cache, flash-Speicher oder anderen Speicher gespeichert werden. Darüber hinaus können die Anweisungen über ein Netzwerk oder über andere Computer-lesbaren Medien verteilt werden. So ein maschinenlesbarer Medium kann keinen Mechanismus für die Speicherung oder Übertragung von Informationen in einer lesbaren Form von einer Maschine (z. B. Computer) unter anderem ist nicht beschränkt auf floppy-Disketten, optische Datenträger, CD, Read – Only Memory (CD-ROMs) und Magneto-optische Datenträger, Read – Only Memory (Rom), Random Access Memory (RAM), Erasable Programmable Read-Only Memory (EPROM), elektrisch Erasable Programmable Read-Only-Speicher (EEPROM), magnetische oder optische Karten, flash-Speicher oder eine greifbare, maschinenlesbaren Speicher verwendet bei der Übertragung von Informationen über das Internet durch elektrische, optische, akustische oder andere Formen der übertragene Signale (z. B. Carrier Wellen, Infrarot-Signale, digitale Signale, etc.). Dementsprechend enthält der Computer-lesbaren Datenträger jeder Art von greifbaren maschinenlesbaren Medium geeignet für Speicherung oder Übertragung von elektronischen Anweisungen oder Informationen in einer lesbaren Form von einer Maschine (z. B. Computer).
  • Die folgenden Beispiele beziehen sich auf Verkörperungen gemäß dieser Spezifikation. Eine oder mehrere Verkörperungen vorsehen, ein Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage erhalten, die auf einen ersten Agent zu verweisen und eine bestimmte Leitung des Speichers in einem exklusiven Zustand zwischengespeichert werden an senden eine Snoop-Anforderung bestimmt für ein oder mehrere andere Agenten, Snoop beantwortet, das einen Kundendienstmitarbeiter verweisen, die Snoop-Reaktion auf ein Rückschreiben in Erinnerung an eine modifizierte Cachezeile gehören, ist die bestimmte Linie des Speichers entsprechen, und der erste Agent, worin das komplette besteht darin, Daten der besonderen Linie Speicher eine komplette richten schicken, basierend auf Rückschreiben.
  • Bei mindestens einem Beispiel wird die modifizierte Cachezeile in bestimmten Zeile Speicher geschrieben.
  • Bei mindestens einem Beispiel wird festgestellt, dass der Cache der zweite Agent eine modifizierte Cachezeile besteht. Das komplette kann vor dem Empfang von Antworten auf alle entsprechend der Anforderung aus der erste Agent basierend auf Feststellung, dass der Cache der zweite Agent eine modifizierte Cachezeile ist Snoop-Anforderungen gesendet werden.
  • Bei mindestens einem Beispiel, die Snoop-Anfrage umfasst eine Snoop Antrag ungültig. Snoop ungültig Anfrage kann es sein, den Cache des empfangenden andere Agent, die bestimmten Zeile oder Speicher entspricht ungültig. Snoop ungültig Anfrage erkennen die besondere Linie Speicher und einen Befehl in der Anfrage vom ersten Agenten enthalten.
  • Bei mindestens einem Beispiel kann ein Verzeichnis-Zustand überführt werden, um anzugeben, dass die bestimmten Speicher mit einem exklusiven Zustand verbunden ist.
  • Eine oder mehrere Verkörperungen können bieten einen Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage zu empfangen, die eine Anforderung für eine bestimmte Cachezeile in einem exklusiven Status senden und empfangen von Daten aus dem Speicher gemäss der bestimmten Cache, wobei bestimmten Daten Daten geschrieben-zurück in den Speicher von einem anderen Agenten nach Anfrage umfasst.
  • Bei mindestens einem Beispiel ist die besondere Cachezeile in einem ungültigen Zustand vor dem Request.
  • Bei mindestens einem Beispiel ist der exklusive Zustand einer E-Staat darauf hinweist, dass eine Kopie der Daten in die bestimmten Cachezeile den Speicher entspricht und eine exklusive Abschrift ist.
  • Bei mindestens einem Beispiel werden die bestimmten Daten in bestimmten Cachezeile kopiert. Die besondere Cachezeile kann in einen exklusiven Status basierend auf bestimmten Daten empfangen überführt werden.
  • Bei mindestens einem Beispiel enthält die Daten geschrieben-zurück in den Speicher von einem anderen Agenten Daten in Reaktion auf eine Snoop entspricht der Anforderung für die bestimmten Cachezeile in einem exklusiven Zustand zurückgegeben.
  • Bei mindestens einem Beispiel Snoop gehört zu einer Pluralität von Snoops und bestimmten Daten vor Antworten, die für die einzelnen Anforderungen Snoop zurückgegeben wird empfangen werden.
  • Eine oder mehrere Verkörperungen vorsehen, ein Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage zu empfangen, die eine explizite Rückschreiben-Anforderung empfangen, worin die explizite Rückschreiben-Anforderung ist eine modifizierte Cachezeile entsprechen, die zu einer bestimmten Zeile Speicher entsprechen, und die explizite Rückschreiben-Anforderung enthalten einen Hinweis darauf, dass ein weiterer Cache ist die besondere Leitung des Speichers an, bestimmen, ob Daten über die modifizierte Cachezeile in den anderen Cache vor dem Schreiben der Daten über die modifizierte Cachezeile in bestimmten Zeile Speicher schieben, und senden Sie eine vollständige, um die explizite Rückschreiben-Anforderung zu entsprechen.
  • Bei mindestens einem Beispiel soll bestimmen nicht, drücken Sie die Daten dazu führen, dass die Daten der die modifizierte Cachezeile in bestimmten Zeile Speicher geschrieben werden.
  • Bei mindestens einem Beispiel sind die Daten über die modifizierte Cachezeile nicht zu dem anderen Cache abgelegt werden.
  • Bei mindestens einem Beispiel kann ein Verzeichnis Staat gemäss der bestimmten Speicher aus einem exklusiven Staat zu einem ungültigen Zustand überführt werden.
  • Bei mindestens einem Beispiel soll bestimmen die Daten dazu führen, dass die Daten der die modifizierte Cachezeile an eine erste entspricht den anderen Cache Cache-Agent gesendet werden, zum Schreiben der Daten die modifizierte Cachezeile in eine entsprechende Cachezeile des anderen Cache geschrieben werden.
  • Bei mindestens einem Beispiel ist ein Verzeichnis gemäss der bestimmten Speicher für den Übergang in einen Zustand hinweist anderen Cache eine exklusive Kopie der besonderen Linie Speicher verfügt.
  • Bei mindestens einem Beispiel, die explizite Rückschreiben-Anforderung besteht aus einer einzigen Kohärenz-Protokoll-Anforderung aus verschiedenen, kurz Cache-Agent, die modifizierte Cachezeile entspricht.
  • Bei mindestens einem Beispiel die Daten bestimmen, ob deranderen Cache einen lokale Und Cache.
  • Bei mindestens einem Beispiel umfasst bestimmen die Daten bestimmen, ob esanderen ausstehenden Anforderungen für die Zeile des Speichers gibt.
  • Eine oder mehrere Verkörperungen vorsehen, ein Apparat, ein System, einemaschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, umeine Anfrage zu empfangen, die eine explizite Rückschreiben-Anforderung an einhome-Agent zu senden, worin die explizite zurückschreiben-Anforderung ist einemodifizierte Cachezeile entsprechen, die zu einer bestimmten Zeile Speicherentsprechen soll, ist die explizite Rückschreiben-Anforderung enthalten einenHinweis darauf, dass ein weiterer Cache die besondere Leitung an Speicherund einen Abschluss von der home agent für die explizite Rückschreiben-Anforderung empfangen ist.
  • In mindestens ein Beispiel ist die geändert Cachezeile für den Übergang voneinem veränderten Zustand zu einem ungültigen Zustand nach, das Senden derforderung explizite zurückschreiben an.
  • Bei mindestens einem Beispiel soll die explizite Rückschreiben Anforderung dazu führen, dass Daten über die modifizierte Cachezeile in anderen Cache geschriebenwerden, ohne die bestimmte Linie Speicher geschrieben wird.
  • In mindestens ein Beispiel besteht die explizite Rückschreiben-Anforderung eineeinzigen Kohärenz Protokoll-Anforderung.
  • Bei mindestens einem Beispiel wird die explizite zurückschreibenAnfrage um denanderen Cache zu identifizieren. Ein Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbarMedium und eine Methode, um eine Anfrage erhalten, das eine MeldungRückschreiben bündig, eine Reihe von ausstehende Schreibvorgänge von derSpeicherController zu einem bestimmten dauerhaften Speicher zu identifizierenund schreiben alle ausstehend schreibt in den bestimmten Speicher, die auf derGrundlage der zurückschreiben-bündig-Nachricht vorsehen eine oder mehrere Verkörperungen.
  • Bei mindestens einem Beispiel umfasst die zurückschreiben bündig Nachricht eineKohärenz-Protokoll-Nachricht.
  • Bei mindestens einem Beispiel das zurückschreiben flush Nachricht eine Cache-Agent generiert.
  • Bei mindestens einem Beispiel umfasst die Reihe ausstehende Schreibvorgängealle ausstehende Schreibvorgänge des Speicher-Controllers.
  • Der Apparat der Anspruch 40, worin das zurückschreiben flush Nachricht den Speicher-Controller identifizieren soll.
  • Bei mindestens einem Beispiel ist die zurückschreiben bündig Nachricht eineSpeicheradresse entspricht den besonderen Speicher zu identifizieren. Bei mindestens einem Beispiel entspricht die zurückschreiben bündig Nachricht einemacht Fehler-Management-Aktivität.
  • Eine oder mehrere Verkörperungen können bieten einen Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage zu empfangen, das kennzeichnen eine bestimmte Zeile einesCaches in einem vorwart Zustand, erhalten eine forderungan. Die die bestimmteLinie des Caches entspricht vorwarts bestimmen, ob den vorwarts zustand im Anschluss aneiner Antwort auf die Anfrage zu behalten, und auf die Anfrage antworten.
  • Bei mindestens einem Beispiel zählt auch das ermitteln ob den forward Zustandbeibehalten bestimmen den Wert eines Konfigurationsparameters für die Agenten, wobei ein Wert des Konfigurationsparameters identifiziert, ob vorwarst auf Vorrat zu speichernden ist.
  • Bei mindestens Beispiel kann der Wert des Konfigurationsparameters geändert werden.
  • Bestimmen, ob den forward Zustand beibehalten kanneinschließen bestimmen, den vorwärts Staat im Anschluss an der Antwort zubehalten. Festlegung, ob den vorwarts Zustand bei behalten einschließen kann. Bestimmung für den Übergang vom vorderen Staat nach der Antwort. Bei mindestens einem Beispiel der forward Zustand für den Übergang vomforward Zustand in einen gemeinsamen Zustand ist. Bei mindestens einem Beispielist der vorwarts Zustand für den Übergang aus der vorwarts Zustand in dieungültigen Zustand.
  • In mindestens ein Beispiel besteht die Anforderung eine Snoop. Auf dieAnforderung reagiert zählen Weitergabe der Daten an einen anderen Mitarbeiteraus der bestimmten Linie des Cache. Eine oder mehrere Verkörperungen vorsehen, dass ein Apparat, ein System, einemaschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, umeine Anfrage erhalten, die ist es, einen Agenten einschließlich Protokoll SchichtLogik zum Generieren einer Fanout Anforderung und routing Schicht Logik umeine Vielzahl von Agenten zu identifizieren um eine Snoop laut Fanout Snooperhalten snoop, und Snoop Anfragen an jeder der mehreren Agenten senden.
  • Bei mindestens einem Beispiel wird die Pluralität des Agenten aus einemKonfigurationsparameter Identifizierung jeder Agent in einem entsprechendenFanouot Kegel identifiziert. Die Konfigurationsparameter soll bei mindestens einem Beispiel jeder Agent vonAdresse zu identifizieren.
  • Bei mindestens einem Beispiel kann bestimmt werden, ob eine Fanout-Snoopverwendet werden kann, um einen oder mehrere Agents snoop.
  • Bei mindestens einem Beispiel der Agent ist ein home-Agent und die Snoop-Anfragen können jede umfassen eine Snoop um Cache-Daten in jedem einenforward oder freigegebenen Status zu erhalten.
  • Bei mindestens einem Beispiel fordert Snoop umfassen jeweils eine SnoopZwischenspeichern von Daten in jedem veränderten, exklusive, nachvorn oderfreigegebenen Zustand zu erhalten.
  • Bei mindestens einem Beispiel umfassen die Snoop-Anfragen eine Snoop umCache-Daten in je dem veränderten oder exklusive Zustand zu erhalten.
  • Bei mindestens einem Beispiel fordert Snoop umfassen jeweils eine Snoop in denCache des jeweiligen Agenten, wobei Daten in geänderten Zustand in denSpeicher geschrieben werden soll.
  • Bei mindestens einem Beispiel können für eine oder mehrere AnforderungenSnoop Snoop Antworten empfangen werden.
  • Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine lesen Invalidate-Anforderung einleiten, die ist exklusiverKohärenz Zustandsdaten zu akzeptieren.
  • Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ein Invalidate initiieren den exklusiven Besitz eine Cachezeileohne Daten empfangen und mit Angabe der Zurückschreiben der Cachezeileanfordern soll.
  • Bei mindestens einem Beispiel ist das Zurückschreiben der Cachezeile in einemnahe Zeitrahmen. Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht einen Flush zu dauerhaften Speicher verursachen eineZurückschreiben bündig Anforderung initiieren soll.
  • Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine einzelne Fanout Snoop Anforderung einleiten, die eineSnoop-Anfrage zu generierenden an Peer-Agente n innerhalb eines Kegels Fanoutauslösen soll.
  • Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine explizite Rückschreiben-Anforderung mit Cache-PushHinweis für ein home-Agent starten, dass eine referenzierte Cachezeile in einemlokalen Cache geschoben werden kann, ohne die Daten in den Speicherschreiben.
  • Bei mindestens einem Beispiel kann die Cachezeile in M Zustand gespeichertwerden. Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokol Istapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist ein Forward gemeinsamgenutzter Daten, initiieren undgleichzeitig einen forward Staat die freigegebenen Daten zugeordnet werden sollen.
  • Verweis in dieser Spezifikation auf ”ein Inbegriff' oder ”Verkörperung” bedeutet, dass eine bestimmte Funktion, Struktur oder Merkmal beschrieben im Zusammenhang mit der Verkörperung in mindestens einer Ausführungsform dervorliegenden Erfindung enthalten ist. Also die Erscheinungen der Sätze ”in einerAusführungsform” oder ”Verkörperung” an verschiedenen Orten in dieserSpezifikation sind nicht unbedingt alle die sich auf die gleichen Verkörperung. Außerdem sind die Besonderheiten, die Strukturen oder die Merkmale ingeeigneter Weise in einem oder mehreren Verkörperungen kombinierbar.
  • In der vorstehenden-Spezifikation ist eine detaillierte Beschreibung mit Bezug aufspezifische vorbildliche Verkörperungen gegeben worden. Es wird jedochoffensichtlich sein, dass verschiedene Anpassungen und Änderungen darinvorgenommen werden können, ohne die breiteren Geist und den Umfang derErfindung gemäß der beigefügten Ansprüche ab. Die Spezifikation undZeichnungen, dementsprechend in einem anschaulichen Sinn statt in engerenSinne anzusehen sind. Außerdemdie vorstehenden Verwendung der Verkörperung und andere exemplarisch Sprache bezieht sich nicht unbedingt diegleichen Verkörperung oder das gleiche Beispiel, aber steht für verschiedene undunterschiedliche Verkörperungen, sowie möglicherweise die gleichenVerkörperung.

Claims (73)

  1. Ein Apparat schließend ein: Ein besonderer Agent einschließlich Protokollsschichtlogik zu: Empfangen Sie eine Bitte, die ist, darauf einen ersten Agenten zu verweisen, und eine besondere Linie der Erinnerung zu erbitten, in einem ausschließenden Staat aufgenommen in den Cachespeicher zu werden; schickt eine Schnüfflerbitte beabsichtigt für eine oder mehr andere Agenten; empfängt eine Schnüfflererwiderung, die ist, darauf einen zweiten Agenten zu verweisen, die Schnüfflerantwort auf schließt einen writeback zu Erinnerung einer modifizierten Cachespeicherslinie ein, die ist, der besonderen Linie der Erinnerung zu entsprechen; Und schickt ein vollständiges, zum ersten Agenten angeredet zu werden, worin das vollständige ist, Daten der besonderen Linie von auf Erinnerung basiert auf dem writeback einzuschließen.
  2. Der Apparat von Anspruch 1, worin ist die Protokollschichtlogik weiter zu verursachen, dass die modifizierte Cachespeicherlinie an die besondere Linie der Erinnerung geschrieben wird.
  3. Der Apparat von Anspruch 1, worin ist die Protokollschichtlogik weiter zu bestimmen, dass die Cachespeicherlinie des zweiten Agenten eine modifizierte Cachespeicherlinie ist.
  4. Der Apparat von Anspruch 3, worin ist das vollständige, vor Annahmeantworten auf alle Schnüfflerbitten geschickt zu werden, die der Bitte vom ersten auf Agenten, entsprechen, der basiert sind auf Bestimmen, dass die Cachespeicherlinie des zweiten Agenten eine modifizierte Cachespeicherlinie ist.
  5. Der Apparat von Anspruch 1, worin schließt die Schnüfflerbitte einen Schnüffler entkräftet Bitte ein.
  6. Der Apparat von Anspruch 5, worin entkräftet der Schnüffler Bitte ist, der Cachespeicher vom zu entkräften, dem anderen Agenten empfängt, der der besonderen Linie oder die Erinnerung entspricht.
  7. der Apparat der Anspruch 5, wobei Snoop ungültig Anfrage ist zu identifizieren, die bestimmte Linie Speicher und einen Befehl in der Anfrage vom ersten Agenten enthalten.
  8. das Gerät von Anspruch 1, wobei die Protokoll-Ebene-Logik weiter nach Übergang ein Verzeichnis-Zustand ist an, dass die bestimmten Speicher mit einem exklusiven Zustand verbunden ist.
  9. ein Gerät bestehend aus: ein Agent einschließlich Protokoll Schicht Logik: Senden Sie eine Anfrage für ein bestimmtes Cachezeile in einem exklusiven Zustand; und empfangen von Daten aus dem Speicher gemäss der bestimmten Cache, wobei bestimmten Daten Daten geschrieben-zurück in den Speicher von einem anderen Agenten nach Anfrage umfasst.
  10. der Apparat von Anspruch 9, wobei die besonderen cache Line ist in einem ungültigen Zustand vor dem Request.
  11. der Apparat der Anspruch 9, wobei der exklusive Zustand ein E-Zustand ist, dass eine Kopie der Daten in die bestimmten Cachezeile den Speicher entspricht und ist einexklusive Kopie.
  12. der Apparat der Anspruch 9, wobei die Protokoll-Ebene-Logik weiter Kopie der bestimmten Daten an die bestimmten Cachezeile liegt.
  13. der Apparat der Anspruch 12, worin die Logik des Protokoll-Ebene weiter Übergang die besondere Cachezeile in einen exklusiven Status basierend liegt auf bestimmten Daten empfangen.
  14. der Apparat der Anspruch 9, wobei die Daten geschrieben-zurück in den Speicher von einem anderen Agenten enthält Daten, die in Reaktion auf eine Snoop entspricht zurückgegeben die Antrag auf die bestimmten Cachezeile in einem exklusiven Zustand.
  15. Der Apparat von Anspruch 14, worin ist der Schnüffler eine einer Mehrheit von Schnüfflern und die besonderen Daten sind, vor Erwiderungen empfangen zu werden, zurückgekehrt für jeden der Schnüfflersbitten zu werden.
  16. Eine Methode schließend ein: Empfangen einer Bitte von einem ersten Agenten, eine besondere Linie der Erinnerung in einem ausschließenden Staat zu aufnehmen in den Cachespeicher; schickend einen oder mehr anderen Agenten eine Schnüfflerbitte; empfangend eine Schnüfflererwiderung von einem zweiten Agenten, die Schnüfflerantwort auf einschließt einen writeback zu Erinnerung einer modifizierten Cachespeicherslinie des zweiten Agenten, den der besonderen Linie der Erinnerung entspricht; und schickend dem ersten Agenten ein vollständiges, worin das Vollenden Sie ist, Daten der besonderen Linie von auf Erinnerung basiert auf dem writeback einzuschließen.
  17. Die Methode von Anspruch 16, schließend weiter schickend einem Speichersteuergerät eine Bitte ein, der besonderen Linie die modifizierte Cachespeicherlinie der Erinnerung zu schreiben.
  18. Die Methode von Anspruch 16, schließend weiter Bestimmen ein, dass die Cachespeicherlinie des zweiten Agenten eine modifizierte Cachespeicherlinie ist.
  19. Die Methode von Anspruch 16, worin ist das vollständige, vor Annahmeantworten auf alle Schnüfflerbitten geschickt zu werden, entsprechend der Bitte vom ersten Agenten.
  20. Die Methode von Anspruch 16, schließend weiter sich anpassend ein Verzeichnisstaat ein anzuzeigen, dass die besondere Linie der Erinnerung mit einem ausschließenden Staat verbunden ist.
  21. Ein System schließend ein: Ein Speichersteuergerät eines besonderen Speicherorts; ein Heimagent, der dem besonderen Speicherort entspricht; und ein erster Cachespeicheragent einer ersten Vorrichtung; worin der Heimagent ist zu: Empfangen Sie eine Bitte, die ist, darauf einen ersten Agenten zu verweisen, und eine besondere Linie der Erinnerung zu erbitten, in einem ausschließenden Staat aufgenommen in den Cachespeicher zu werden; schickt eine Schnüfflerbitte beabsichtigt für eine oder mehr andere Agenten; empfängt eine Schnüfflererwiderung, die ist, darauf einen zweiten Agenten zu verweisen, die Schnüfflerantwort auf schließt einen writeback zu Erinnerung einer modifizierten Cachespeicherslinie ein, die ist, der besonderen Linie der Erinnerung zu entsprechen; Und schickt ein vollständiges, zum ersten Agenten angeredet zu werden, worin das vollständige ist, Daten der besonderen Linie von auf Erinnerung basiert auf dem writeback einzuschließen.
  22. Das System von Anspruch 21, schließend weiter den zweiten Cache speicher agenten zu ein: Empfangen Sie die Schnüfflerbitte; identifiziert, von der Schnüfflerbitte, die Bitte vom ersten Cache speicher agenten, die besondere Linie des besonderen Speicherorts in einem ausschließenden Staat zu aufnehmen in den Cachespeicher; schickt die Schnüfflerantwort auf den Heimagenten.
  23. Das System von Anspruch 21, worin ist der erste Cachespeicheragent zu: Schicken Sie dem Heimagenten die Bitte; und empfangen Sie das vollständige; schreibt die Daten der besonderen Linie der Erinnerung in eine Korrespondieren cache speicherlinie; und passen Sie sich die Korrespondieren cache speicherlinie zu einem ausschließenden Staat an.
  24. Das System von Anspruch 21, worin ist die Bfitte vom ersten Cache speicher agenten, eine Verständlichkeitsprotokollbitte einzuschließen.
  25. Das System von Anspruch 21, worin ist das vollständige, vor Annahmeantworten auf alle Schnüfflerbitten geschickt zu werden, entsprechend der Bitte vom ersten Cache speicher agenten.
  26. Ein Apparat schließend ein: Ein Agent einschließlich Protokollsschichtlogik zu: Empfangen Sie eine explizite writeback Bitte, worin der explizit writeback Bitte ist, einer modifizierten Cachespeicherlinie zu entsprechen, die ist, einer besonderen Linie der Erinnerung zu entsprechen, und der explizit writeback Bitte ist, eine Andeutung einzuschließen, anzuzeigen, dass ein anderer Cachespeicher ist, die besondere Linie der Erinnerung zu erbitten; bestimmt ob Daten der modifizierten Cachespeicherslinie zum anderen Cachespeicher vor Schreiben der Daten von zu stoßen Die modifizierte Cachespeicherlinie zur besonderen Linie der Erinnerung; und schickt ein vollständiges, der expliziten writeback Bitte zu entsprechen.
  27. Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten nicht zu stoßen, die Daten der modifizierten Linie des geheimen Lagers veranlassen soll, zur besonderen Linie des Gedächtnisses geschrieben zu werden.
  28. Der Apparat des Anspruchs 27, worin die Daten der modifizierten Linie des geheimen Lagers zum anderen geheimen Lager nicht gestoßen werden sollen.
  29. Der Apparat des Anspruchs 27, worin die Protokoll-Schicht-Logik weiterer Übergang ein Verzeichniszustand entsprechend der besonderen Linie des Gedächtnisses von einem exklusiven Zustand bis einen ungültigen Zustand ist.
  30. Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten zu stoßen, die Daten der modifizierten Linie des geheimen Lagers veranlassen soll, einem ersten Agenten des geheimen Lagers entsprechend dem anderen geheimen Lager gesandt zu werden, um die Daten der modifizierten Linie des geheimen Lagers zu schreiben, die zu einer entsprechenden Linie des geheimen Lagers des anderen geheimen Lagers zu schreiben ist.
  31. Der Apparat des Anspruchs 30, worin die Protokoll-Schicht-Logik weiterer Übergang ein Verzeichniszustand entsprechend der besonderen Linie des Gedächtnisses zu einem Zustand ist, der anzeigt, dass das andere geheime Lager eine exklusive Kopie der besonderen Linie des Gedächtnisses hat.
  32. Der Apparat des Anspruchs 30, worin die ausführliche Writeback-Bitte eine einzelne Kohärenz-Protokoll-Bitte von einem verschiedenen, zweiten Agenten des geheimen Lagers entsprechend der modifizierten Linie des geheimen Lagers umfasst.
  33. Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten zu stoßen, die Bestimmung umfasst, ob das andere geheime Lager ein lokales geheimes Lager ist.
  34. Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten zu stoßen, die Bestimmung umfasst, ob es andere hervorragende Bitten um die besondere Linie des Gedächtnisses gibt.
  35. Ein Geräteenthalten: ein Agent einschließlich der Protokoll-Schicht-Logik dazu: senden Sie eine ausführliche Writeback-Bitte an einen Hausagenten, worin die ausführliche Writeback-Bitte ist, einer modifizierten Linie des geheimen Lagers zu entsprechen, die einer besonderen Linie des Gedächtnisses entsprechen soll, ist die ausführliche Writeback-Bitte, einen Hinweis einzuschließen, um anzuzeigen, dass ein anderes geheimes Lager um die besondere Linie des Gedächtnisses bitten soll; und erhalten Sie eine Vollziehung vom Hausagenten für die ausführliche Writeback-Bitte.
  36. Der Apparat des Anspruchs 35, worin die Protokoll-Schicht-Logik weiter ist, um die modifizierte Linie des geheimen Lagers von einem modifizierten Zustand bis einen ungültigen Zustand im Anschluss an das Senden der ausführlichen Writeback-Bitte zu wechseln.
  37. Der Apparat des Anspruchs 35, worin die ausführliche Writeback-Bitte ist, Daten der modifizierten Linie des geheimen Lagers zu veranlassen, zum anderen geheimen Lager geschrieben zu werden, ohne zur besonderen Linie des Gedächtnisses geschrieben zu werden.
  38. Der Apparat des Anspruchs 37, worin die ausführliche Writeback-Bitte eine einzelne Kohärenz-Protokoll-Bitte umfasst.
  39. Der Apparat des Anspruchs 35, worin die ausführliche Writeback-Bitte ist, das andere geheime Lager zu identifizieren.
  40. Ein Geräteenthalten: ein Speicherkontrolleur muss: erhalten Sie eine Writeback-Erröten-Nachricht; identifizieren Sie sich eine Reihe während dessen schreibt vom Speicherkontrolleur zu einem besonderen beharrlichen Gedächtnis; und schreiben Sie, dass der ganze Satz während dessen dem besonderen auf die Writeback-Erröten-Nachricht beruhenden Gedächtnis schreibt.
  41. Der Apparat des Anspruchs 40, worin die Writeback-Erröten-Nachricht eine Kohärenz-Protokoll-Nachricht umfasst.
  42. Der Apparat des Anspruchs 41, worin die writeback von einem Agenten des geheimen Lagers erzeugte Nachricht spülen.
  43. Der Apparat des Anspruchs 40, worin der Satz während dessen schreibt, umfasst alle während dessen schreiben vom Speicherkontrolleur.
  44. Der Apparat des Anspruchs 40, worin die Writeback-Erröten-Nachricht den Speicherkontrolleur identifizieren soll.
  45. Der Apparat des Anspruchs 44, worin die Writeback-Erröten-Nachricht eine Speicheradresse entsprechend dem besonderen Gedächtnis identifizieren soll.
  46. Der Apparat des Anspruchs 40, worin die Writeback-Erröten-Nachricht einer Stromausfall-Verwaltungstätigkeit entspricht.
  47. Ein Geräteenthalten: ein Agent einschließlich der Protokoll-Schicht-Logik dem: identifizieren Sie das eine besondere Linie eines geheimen Lagers ist in einem Vorwärtszustand; erhalten Sie eine Bitte, die der besonderen Linie des geheimen Lagers entspricht; bestimmen Sie, den Vorwärtszustand im Anschluss an eine Antwort auf die Bitte ob zu behalten; und antworten Sie auf die Bitte.
  48. Der Apparat des Anspruchs 47, worin die Bestimmung, den Vorwärtszustand ob zu behalten, die Bestimmung eines Werts eines Konfigurationsparameters für den Agenten einschließt, worin sich ein Wert des Konfigurationsparameters identifiziert, ungeachtet dessen ob der Vorwärtszustand behalten werden soll.
  49. Der Apparat des Anspruchs 48, worin die Protokoll-Schicht-Logik weiter ist, um den Wert des Konfigurationsparameters zu ändern.
  50. Der Apparat des Anspruchs 47, worin die Bestimmung, den Vorwärtszustand ob zu behalten, die Bestimmung umfasst, den Vorwärtszustand im Anschluss an die Antwort zu behalten.
  51. Der Apparat des Anspruchs 47, worin die Bestimmung, den Vorwärtszustand ob zu behalten, die Bestimmung zum Übergang vom Vorwärtszustand im Anschluss an die Antwort umfasst.
  52. Der Apparat des Anspruchs 51, worin der Vorwärtszustand vom Vorwärtszustand bis einen geteilten Zustand wechseln soll.
  53. Der Apparat des Anspruchs 51, worin der Vorwärtszustand vom Vorwärtszustand bis den ungültigen Zustand wechseln soll.
  54. Der Apparat des Anspruchs 47, worin die Bitte eine Schnüffelei umfasst.
  55. Der Apparat des Anspruchs 47, worin die Reaktion auf die Bitte Versanddaten von der besonderen Linie des geheimen Lagers einem anderen Agenten umfasst.
  56. Ein Geräteenthalten. ein Agent einschließlich dessen: Protokoll-Schicht-Logik dem: erzeugen Sie eine fanout Schnüffelei-Bitte; und die Routenplanung der Schicht-Logik dem: identifizieren Sie eine Mehrzahl von Agenten, um eine Schnüffelei gemäß der fanout Schnüffelei-Bitte zu erhalten; und senden Sie Schnüffelei-Bitten an jede der Mehrzahl von Agenten.
  57. The apparatus of Claim 56, wherein the routing layer logic is to identify the plurality of agents from a configuration parameter identifying each agent in a corresponding fanouot cone.
  58. Der Apparat des Anspruchs 56, worin die wühlende Schicht-Logik die Mehrzahl von Agenten von einem Konfigurationsparameter identifizieren soll, der jeden Agenten in einem Entsprechen fanouot Kegel identifiziert.
  59. Der Apparat des Anspruchs 56, worin die wühlende Schicht-Logik die Mehrzahl von Agenten von einem Konfigurationsparameter identifizieren soll, der jeden Agenten in einem Entsprechen fanouot Kegel identifiziert.
  60. Der Apparat des Anspruchs 56, worin der Agent ein Hausagent ist.
  61. Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei, um Daten des geheimen Lagers in irgendjemandem eines fortgeschrittenen oder geteilten Zustands zu erhalten.
  62. Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei, um Daten des geheimen Lagers in irgendjemandem eines modifizierten, exklusiv zu erhalten, oder geteilten Zustands nachschicken.
  63. Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei, um Daten des geheimen Lagers in irgendjemandem eines modifizierten oder exklusiven Zustands zu erhalten.
  64. Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei zum geheimen Lager des jeweiligen Agenten, worin Daten im modifizierten Zustand zum Gedächtnis gespült werden sollen.
  65. Der Apparat des Anspruchs 56, worin die Protokoll-Schicht-Logik weiter ist, um Schnüffelei-Antworten für ein oder mehr von den Schnüffelei-Bitten zu erhalten.
  66. Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht einen gelesenen beginnen soll, macht Bitte ungültig, die ist, exklusive Kohärenz-Zustanddaten zu akzeptieren.
  67. Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht beginnen soll ungültig zu machen, der um exklusives Eigentumsrecht einer Linie des geheimen Lagers bitten soll, ohne Daten und mit einer Anzeige zu erhalten, die Linie des geheimen Lagers zurückzuschreiben.
  68. Der Apparat des Anspruchs 67, worin zurückschreibend die Linie des geheimen Lagers innerhalb eines nahen Zeitrahmens ist.
  69. Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht eine zurückschreiben Erröten-Bitte beginnen soll, die ist, ein Erröten von Daten zum beharrlichen Gedächtnis zu verursachen.
  70. Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht eine einzelne fanout Schnüffelei-Bitte beginnen soll, die ist, eine Schnüffelei-Bitte zu veranlassen, erzeugt zu werden, um Agenten innerhalb eines fanout Kegels zu spähen.
  71. Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht eine ausführliche Writeback-Bitte mit dem Hinweis des geheimes-Lager-Stoßes einem Hausagenten beginnen soll, dass eine Verweise angebrachte Linie des geheimen Lagers zu einem lokalen geheimen Lager gestoßen werden kann, ohne die Daten dem Gedächtnis zu schreiben.
  72. Der Apparat des Anspruchs 71, worin die Linie des geheimen Lagers in der M Zustand versorgen kann.
  73. Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht einen fortgeschrittenen von geteilten Daten beginnen soll, indem sie einen Vorwärtszustand aufrechterhält, mit den geteilten Daten zu vereinigend.
DE112013002069.6T 2012-10-22 2013-03-15 Hohes Leistungsverbindungskohärenz-Protokoll Active DE112013002069B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261717091P 2012-10-22 2012-10-22
US61/717,091 2012-10-22
PCT/US2013/032651 WO2014065875A1 (en) 2012-10-22 2013-03-15 High performance interconnect coherence protocol

Publications (2)

Publication Number Publication Date
DE112013002069T5 true DE112013002069T5 (de) 2015-01-08
DE112013002069B4 DE112013002069B4 (de) 2022-12-01

Family

ID=50485278

Family Applications (14)

Application Number Title Priority Date Filing Date
DE112013007751.5T Active DE112013007751B3 (de) 2012-10-22 2013-03-15 Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013005090.0T Pending DE112013005090T5 (de) 2012-10-22 2013-03-15 Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE112013005093.5T Pending DE112013005093T5 (de) 2012-10-22 2013-03-15 Hochleistungszusammenschaltungsbitübertragungsschicht
DE112013003723.8T Active DE112013003723B4 (de) 2012-10-22 2013-03-15 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013004105.7T Pending DE112013004105T5 (de) 2012-10-22 2013-03-15 Kohärenzprotokolltabellen
DE112013002069.6T Active DE112013002069B4 (de) 2012-10-22 2013-03-15 Hohes Leistungsverbindungskohärenz-Protokoll
DE112013005086.2T Pending DE112013005086T5 (de) 2012-10-22 2013-03-15 Kohärenzprotokoll für Hochleistungszwischenverbindung
DE112013004094.8T Active DE112013004094B4 (de) 2012-10-22 2013-03-15 Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013005104.4T Pending DE112013005104T5 (de) 2012-10-22 2013-03-27 Hochleistungsverdrahtungs-Bitübertragungsschicht
DE201311002880 Pending DE112013002880T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikslische Kopplungsstrukturschicht
DE112013007752.3T Active DE112013007752B3 (de) 2012-10-22 2013-03-27 Hochleistungsverdrahtungs-Bitübertragungsschicht
DE112013002090.4T Pending DE112013002090T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013001360.6T Active DE112013001360B4 (de) 2012-10-22 2013-03-28 Vorrichtung, verfahren und system zum bereitstellen einer kopplungsstruktur-linkschicht
DE112013007767.1T Active DE112013007767B3 (de) 2012-10-22 2013-03-28 Vorrichtung und system zur verbesserten nutzung von datenverbindungen

Family Applications Before (5)

Application Number Title Priority Date Filing Date
DE112013007751.5T Active DE112013007751B3 (de) 2012-10-22 2013-03-15 Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013005090.0T Pending DE112013005090T5 (de) 2012-10-22 2013-03-15 Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE112013005093.5T Pending DE112013005093T5 (de) 2012-10-22 2013-03-15 Hochleistungszusammenschaltungsbitübertragungsschicht
DE112013003723.8T Active DE112013003723B4 (de) 2012-10-22 2013-03-15 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013004105.7T Pending DE112013004105T5 (de) 2012-10-22 2013-03-15 Kohärenzprotokolltabellen

Family Applications After (8)

Application Number Title Priority Date Filing Date
DE112013005086.2T Pending DE112013005086T5 (de) 2012-10-22 2013-03-15 Kohärenzprotokoll für Hochleistungszwischenverbindung
DE112013004094.8T Active DE112013004094B4 (de) 2012-10-22 2013-03-15 Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013005104.4T Pending DE112013005104T5 (de) 2012-10-22 2013-03-27 Hochleistungsverdrahtungs-Bitübertragungsschicht
DE201311002880 Pending DE112013002880T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikslische Kopplungsstrukturschicht
DE112013007752.3T Active DE112013007752B3 (de) 2012-10-22 2013-03-27 Hochleistungsverdrahtungs-Bitübertragungsschicht
DE112013002090.4T Pending DE112013002090T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013001360.6T Active DE112013001360B4 (de) 2012-10-22 2013-03-28 Vorrichtung, verfahren und system zum bereitstellen einer kopplungsstruktur-linkschicht
DE112013007767.1T Active DE112013007767B3 (de) 2012-10-22 2013-03-28 Vorrichtung und system zur verbesserten nutzung von datenverbindungen

Country Status (9)

Country Link
US (20) US9418035B2 (de)
EP (2) EP3410304B1 (de)
JP (2) JP6139689B2 (de)
KR (27) KR101686359B1 (de)
CN (26) CN104335196B (de)
BR (1) BR112015006432A2 (de)
DE (14) DE112013007751B3 (de)
RU (2) RU2599971C2 (de)
WO (11) WO2014065873A1 (de)

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105967A1 (en) * 2012-01-13 2013-07-18 Intel Corporation Efficient peer-to-peer communication support in soc fabrics
US8943255B2 (en) * 2012-05-29 2015-01-27 Lsi Corporation Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices
US9355058B2 (en) 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
DE112013007751B3 (de) 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US9367474B2 (en) * 2013-06-12 2016-06-14 Apple Inc. Translating cache hints
US20150006962A1 (en) * 2013-06-27 2015-01-01 Robert C. Swanson Memory dump without error containment loss
CN104579605B (zh) * 2013-10-23 2018-04-10 华为技术有限公司 一种数据传输方法及装置
US9306863B2 (en) * 2013-12-06 2016-04-05 Intel Corporation Link transfer, bit error detection and link retry using flit bundles asynchronous to link fabric packets
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム
RU2645288C2 (ru) 2013-12-26 2018-02-19 Интел Корпорейшн Усовершенствование интерфейса pci express
EP3828717B1 (de) * 2013-12-26 2024-07-03 INTEL Corporation Multichip-paketverbindung
US9594719B2 (en) 2014-02-03 2017-03-14 Valens Semiconductor Ltd. Seamless addition of high bandwidth lanes
US9628382B2 (en) 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
CN105095147B (zh) * 2014-05-21 2018-03-13 华为技术有限公司 片上网络的Flit传输方法及装置
RU2608881C2 (ru) 2014-05-28 2017-01-25 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для управления турборежимом
US9747048B2 (en) 2014-06-02 2017-08-29 Micron Technology, Inc. Systems and methods for packing data in a scalable memory system protocol
US9619214B2 (en) 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
US9571465B1 (en) * 2014-09-18 2017-02-14 Amazon Technologies, Inc. Security verification by message interception and modification
US9904645B2 (en) * 2014-10-31 2018-02-27 Texas Instruments Incorporated Multicore bus architecture with non-blocking high performance transaction credit system
US9665505B2 (en) 2014-11-14 2017-05-30 Cavium, Inc. Managing buffered communication between sockets
US9870328B2 (en) * 2014-11-14 2018-01-16 Cavium, Inc. Managing buffered communication between cores
US9778315B2 (en) * 2014-11-14 2017-10-03 Cavium, Inc. Testbench builder, system, device and method having agent loopback functionality
US20160173398A1 (en) * 2014-12-12 2016-06-16 Intel Corporation Method, Apparatus And System For Encoding Command Information In a Packet-Based Network
US9921768B2 (en) * 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US9444551B2 (en) * 2014-12-19 2016-09-13 Intel Corporation High performance optical repeater
US9740646B2 (en) * 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US9632862B2 (en) * 2014-12-20 2017-04-25 Intel Corporation Error handling in transactional buffered memory
US10025746B2 (en) * 2014-12-20 2018-07-17 Intel Corporation High performance interconnect
US9785556B2 (en) * 2014-12-23 2017-10-10 Intel Corporation Cross-die interface snoop or global observation message ordering
US20160188519A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Method, apparatus, system for embedded stream lanes in a high-performance interconnect
CN104536929A (zh) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 一种物理层初始化方法及客户端
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link
US20160285624A1 (en) * 2015-03-26 2016-09-29 Intel Corporation Pseudorandom bit sequences in an interconnect
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US10282315B2 (en) 2015-03-27 2019-05-07 Cavium, Llc Software assisted hardware configuration for software defined network system-on-chip
US9639276B2 (en) * 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
US9720838B2 (en) 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9760515B2 (en) 2015-04-06 2017-09-12 Qualcomm Incorporated Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY)
US10417128B2 (en) 2015-05-06 2019-09-17 Oracle International Corporation Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches
US20160353357A1 (en) * 2015-05-27 2016-12-01 Qualcomm Incorporated Methods and systems for multiplexed communication in dense wireless environments
WO2016197345A1 (zh) * 2015-06-10 2016-12-15 华为技术有限公司 一种信号传输方法、控制器和信号传输***
US9697145B2 (en) * 2015-06-12 2017-07-04 Apple Inc. Memory interface system
US20160371222A1 (en) * 2015-06-22 2016-12-22 Qualcomm Incorporated COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER
US10089275B2 (en) 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
KR102485999B1 (ko) * 2015-07-01 2023-01-06 삼성전자주식회사 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
US9692589B2 (en) * 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
WO2017017562A1 (en) * 2015-07-30 2017-02-02 Valens Semiconductor Ltd. Seamless addition of high bandwidth lanes
JP6674085B2 (ja) * 2015-08-12 2020-04-01 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9990291B2 (en) * 2015-09-24 2018-06-05 Qualcomm Incorporated Avoiding deadlocks in processor-based systems employing retry and in-order-response non-retry bus coherency protocols
CN112612731A (zh) * 2015-09-26 2021-04-06 英特尔公司 多芯片封装链路错误检测
US9720439B2 (en) 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
WO2017052665A1 (en) * 2015-09-26 2017-03-30 Intel Corporation In-band margin probing on an operational interconnect
US20200244397A1 (en) * 2015-09-26 2020-07-30 Intel Corporation Stream identifier lane protection
DE112015006953T5 (de) * 2015-09-26 2018-06-14 Intel Corporation Training einer gültigen lane
GB2543745B (en) * 2015-10-15 2018-07-04 Advanced Risc Mach Ltd An apparatus and method for operating a virtually indexed physically tagged cache
US10698847B2 (en) 2016-03-01 2020-06-30 Qorvo Us, Inc. One wire bus to RFFE translation system
US10128964B2 (en) 2016-03-10 2018-11-13 Qualcomm Incorporated Multiphase preamble data sequences for receiver calibration and mode data signaling
US9779028B1 (en) 2016-04-01 2017-10-03 Cavium, Inc. Managing translation invalidation
CN105933286B (zh) * 2016-04-05 2019-08-02 浪潮电子信息产业股份有限公司 一种验证协议的方法及装置
RU2643620C2 (ru) * 2016-05-11 2018-02-02 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Способ планирования задач предобработки данных Интернета Вещей для систем анализа
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
US11144691B2 (en) * 2016-06-02 2021-10-12 Siemens Industry Software Inc. Virtual Ethernet mutable port group transactor
TWI613547B (zh) * 2016-06-16 2018-02-01 新漢股份有限公司 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法
US10103837B2 (en) * 2016-06-23 2018-10-16 Advanced Micro Devices, Inc. Asynchronous feedback training
US10484361B2 (en) * 2016-06-30 2019-11-19 Intel Corporation Systems, methods, and apparatuses for implementing a virtual device observation and debug network for high speed serial IOS
US10303605B2 (en) * 2016-07-20 2019-05-28 Intel Corporation Increasing invalid to modified protocol occurrences in a computing system
US10929059B2 (en) 2016-07-26 2021-02-23 MemRay Corporation Resistance switching memory-based accelerator
US10379904B2 (en) * 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
RU2016137176A (ru) * 2016-09-16 2018-03-19 Оракл Интернэйшнл Корпорейшн Связывание преобразованного исходного кода с первоначальным исходным кодом с помощью метаданных
US10255181B2 (en) * 2016-09-19 2019-04-09 Qualcomm Incorporated Dynamic input/output coherency
US10936045B2 (en) 2016-09-26 2021-03-02 Hewlett-Packard Development Company, L.P. Update memory management information to boot an electronic device from a reduced power mode
US10846258B2 (en) * 2016-09-30 2020-11-24 Intel Corporation Voltage modulated control lane
US10152446B2 (en) * 2016-10-01 2018-12-11 Intel Corporation Link-physical layer interface adapter
CN108121842B (zh) * 2016-11-30 2021-04-27 深圳市中兴微电子技术有限公司 多处理器***芯片的低功耗工作方式的验证方法和装置
CN106527576A (zh) * 2016-12-01 2017-03-22 郑州云海信息技术有限公司 一种pcie设备的时钟分离设计方法和***
CN108170370B (zh) 2016-12-07 2021-01-26 慧荣科技股份有限公司 数据储存装置与数据传输速率控制方法
TWI610179B (zh) * 2016-12-07 2018-01-01 慧榮科技股份有限公司 主機裝置與資料傳輸速率控制方法
TWI633777B (zh) * 2016-12-13 2018-08-21 威盛電子股份有限公司 傳輸介面晶片以及其測試方法
KR20180071598A (ko) 2016-12-20 2018-06-28 주식회사 포스코 중장비 위치 추적 시스템
KR101946135B1 (ko) * 2017-01-11 2019-02-08 울산과학기술원 비휘발성 메모리를 이용하는 데이터베이스 관리 시스템 및 방법
US11159636B2 (en) * 2017-02-08 2021-10-26 Arm Limited Forwarding responses to snoop requests
US11182315B2 (en) * 2017-02-10 2021-11-23 Intel Corporation Apparatuses, methods, and systems for hardware control of processor performance levels
US10572434B2 (en) 2017-02-27 2020-02-25 International Business Machines Corporation Intelligent certificate discovery in physical and virtualized networks
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
CN107491407B (zh) * 2017-07-03 2019-07-12 西安空间无线电技术研究所 基于fpga内serdes的自适应高速传输***
US11030126B2 (en) * 2017-07-14 2021-06-08 Intel Corporation Techniques for managing access to hardware accelerator memory
US11249808B2 (en) * 2017-08-22 2022-02-15 Intel Corporation Connecting accelerator resources using a switch
CN107678854A (zh) * 2017-08-31 2018-02-09 郑州云海信息技术有限公司 一种解决计算机缓存一致性冲突的方法
US10474611B2 (en) 2017-09-19 2019-11-12 International Business Machines Corporation Aligning received bad data indicators (BDIS) with received data on a cross-chip link
CN107589698B (zh) * 2017-09-20 2021-05-25 友达光电股份有限公司 应用于物联网中的感测装置及控制方法
US20190095273A1 (en) * 2017-09-27 2019-03-28 Qualcomm Incorporated Parity bits location on i3c multilane bus
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
WO2019100238A1 (zh) * 2017-11-22 2019-05-31 深圳市大疆创新科技有限公司 一种断链恢复的方法及飞行器
CN107894963B (zh) * 2017-11-27 2021-07-27 上海兆芯集成电路有限公司 用于***单芯片的通信控制器与通信方法
US10466911B2 (en) * 2017-12-18 2019-11-05 Western Digital Technologies, Inc. Method using logical based addressing for latency reduction
US10853212B2 (en) * 2018-01-08 2020-12-01 Intel Corporation Cross-talk generation in a multi-lane link during lane testing
EP3721565A4 (de) 2018-01-10 2021-01-27 Lumeova, Inc Verfahren, vorrichtungen und system für drahtloskommunikationskanal-fso
US20190227971A1 (en) * 2018-01-23 2019-07-25 Qualcomm Incorporated Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
US20190294777A1 (en) * 2018-03-26 2019-09-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for managing access to host computing devices by external devices
US10534881B2 (en) * 2018-04-10 2020-01-14 Advanced Micro Devices, Inc. Method of debugging a processor
US20190042455A1 (en) * 2018-05-04 2019-02-07 Intel Corporation Globally addressable memory for devices linked to hosts
CN108563510B (zh) * 2018-05-04 2021-07-13 湖南大学 面向e级计算的体系结构感知优化方法
US20190356412A1 (en) * 2018-05-16 2019-11-21 Qualcomm Incorporated Fast termination of multilane double data rate transactions
CN108762747B (zh) * 2018-05-30 2022-02-18 郑州云海信息技术有限公司 数据处理方法以及计算机设备
WO2019237130A1 (en) * 2018-06-04 2019-12-12 Lightfleet Corporation Routing and control protocol for high-performance interconnect fabrics
CN110609866B (zh) * 2018-06-15 2023-08-11 伊姆西Ip控股有限责任公司 用于协商事务的方法、设备和计算机程序产品
US10693589B2 (en) * 2018-06-18 2020-06-23 Huawei Technologies Co., Ltd. Serdes with jitter injection self stress mechanism
US11301160B2 (en) * 2018-06-20 2022-04-12 Genesys Telecommunications Laboratories, Inc. System and method for a replication protocol in a real-time statistical engine
CN109144943A (zh) * 2018-06-26 2019-01-04 深圳市安信智控科技有限公司 基于高速串行通道互连的计算芯片与存储器芯片组合***
GB2575294B8 (en) * 2018-07-04 2022-07-20 Graphcore Ltd Host Proxy On Gateway
US10841355B2 (en) * 2018-07-13 2020-11-17 Apple Inc. Methods and apparatus for streaming media conversion with reduced buffering memories
US10541841B1 (en) * 2018-09-13 2020-01-21 Advanced Micro Devices, Inc. Hardware transmit equalization for high speed
CN109558122B (zh) * 2018-11-29 2022-08-19 湖南国科微电子股份有限公司 一种提升物理层兼容性的***与方法
TWI706257B (zh) 2018-12-13 2020-10-01 新唐科技股份有限公司 匯流排系統
US10761939B1 (en) * 2018-12-13 2020-09-01 Amazon Technologies, Inc. Powering-down or rebooting a device in a system fabric
US10771189B2 (en) * 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
KR102165860B1 (ko) 2018-12-31 2020-10-14 성균관대학교산학협력단 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치
US10599601B1 (en) * 2019-01-16 2020-03-24 Qorvo Us, Inc. Single-wire bus (SuBUS) slave circuit and related apparatus
US11099991B2 (en) 2019-01-24 2021-08-24 Vmware, Inc. Programming interfaces for accurate dirty data tracking
US11068400B2 (en) * 2019-01-24 2021-07-20 Vmware, Inc. Failure-atomic logging for persistent memory systems with cache-coherent FPGAs
WO2020160477A1 (en) 2019-01-31 2020-08-06 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
US11940483B2 (en) 2019-01-31 2024-03-26 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
US10713209B2 (en) 2019-02-08 2020-07-14 Intel Corporation Recalibration of PHY circuitry for the PCI Express (PIPE) interface based on using a message bus interface
US10802966B2 (en) * 2019-02-14 2020-10-13 International Business Machines Corporation Simultaneous, non-atomic request processing within an SMP environment broadcast scope for multiply-requested data elements using real-time parallelization
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11099905B2 (en) 2019-02-26 2021-08-24 International Business Machines Corporation Efficient remote resource allocation within an SMP broadcast scope maintaining fairness between operation types
US11249837B2 (en) * 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US20220147614A1 (en) * 2019-03-05 2022-05-12 Siemens Industry Software Inc. Machine learning-based anomaly detections for embedded software applications
CN109947551B (zh) * 2019-03-19 2021-04-23 中南大学 一种多轮次任务分配方法、边缘计算***及其存储介质
US11055221B2 (en) * 2019-03-22 2021-07-06 Samsung Electronics Co., Ltd. Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
EP3723345A1 (de) 2019-04-10 2020-10-14 ABB Schweiz AG Aggregationsserver und verfahren zur weiterleitung von knotendaten
IT201900005822A1 (it) * 2019-04-15 2020-10-15 Phoenix Ict S R L S Adattore di periferiche general purpose per computer
US11119958B2 (en) 2019-04-18 2021-09-14 Qorvo Us, Inc. Hybrid bus apparatus
US11226924B2 (en) 2019-04-24 2022-01-18 Qorvo Us, Inc. Single-wire bus apparatus supporting slave-initiated operation in a master circuit
CN110138761B (zh) * 2019-05-09 2021-10-15 豪威触控与显示科技(深圳)有限公司 基于mipi协议的设备间通信方法及设备拓扑结构
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
JP7259537B2 (ja) * 2019-05-16 2023-04-18 オムロン株式会社 情報処理装置
US10802967B1 (en) * 2019-06-28 2020-10-13 Intel Corporation Partial write management in a multi-tiled compute engine
US11144469B2 (en) * 2019-07-02 2021-10-12 Microsoft Technology Licensing, Llc Per-tenant incremental outward distributed proactive caching
US11444829B2 (en) * 2019-09-09 2022-09-13 Intel Corporation Link layer communication by multiple link layer encodings for computer buses
US11271860B1 (en) * 2019-11-15 2022-03-08 Xilinx, Inc. Compressed tag coherency messaging
CN114651426B (zh) * 2019-11-20 2023-08-18 三菱电机株式会社 光通信装置及通信***
RU2738955C1 (ru) * 2019-11-27 2020-12-21 Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) Способ трёхкратного резервирования межсоединений
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
US10983942B1 (en) 2019-12-11 2021-04-20 Qorvo Us, Inc. Multi-master hybrid bus apparatus
US11132321B2 (en) 2020-02-26 2021-09-28 Quanta Computer Inc. Method and system for automatic bifurcation of PCIe in BIOS
WO2021174223A1 (en) * 2020-02-28 2021-09-02 Riera Michael F C2mpi: a hardware-agnostic message passing interface for heterogeneous computing systems
US11115176B1 (en) * 2020-03-04 2021-09-07 Qualcomm Incorporated System and method for adjusting clock-data timing in a multi-lane data communication link
US11126585B1 (en) 2020-03-09 2021-09-21 Western Digital Technologies, Inc. Data storage device with improved interface transmitter training
US11886312B2 (en) 2020-04-07 2024-01-30 Intel Corporation Characterizing error correlation based on error logging for computer buses
CN111400232B (zh) * 2020-04-10 2024-01-16 芯启源(上海)半导体科技有限公司 一种基于数据位宽展开的scramble与descramble硬件实现方法
US11288225B2 (en) 2020-04-14 2022-03-29 Western Digital Technologies, Inc. Adapting transmitter training behavior based upon assumed identity of training partner
US11309013B2 (en) 2020-04-29 2022-04-19 Samsung Electronics Co., Ltd. Memory device for reducing resources used for training
US11513981B2 (en) * 2020-04-29 2022-11-29 Dell Products L.P. PCIe link management without sideband signals
LU101767B1 (en) * 2020-05-05 2021-11-05 Microsoft Technology Licensing Llc Recording a memory value trace for use with a separate cache coherency protocol trace
US11586446B1 (en) * 2020-05-20 2023-02-21 Marvell Asia Pte Ltd System and methods for hardware-based PCIe link up based on post silicon characterization
US11263137B2 (en) * 2020-05-27 2022-03-01 Arm Limited Core-to-core cache stashing and target discovery
CN116134475A (zh) * 2020-05-29 2023-05-16 奈特力斯股份有限公司 计算机存储器扩展设备及其操作方法
US20210013999A1 (en) * 2020-06-04 2021-01-14 Intel Corporation Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses
WO2021247766A1 (en) * 2020-06-05 2021-12-09 William David Schwaderer Shapeshift data encryption methods and systems
KR102254337B1 (ko) * 2020-06-22 2021-05-21 한양대학교 산학협력단 Dc-밸런싱을 고려한 pam4 5b3q 코딩 방법 및 장치
US11362939B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Flow control for a multiple flow control unit interface
US11580044B2 (en) * 2020-08-31 2023-02-14 Micron Technology, Inc. Network credit return mechanisms
US11588745B2 (en) 2020-08-31 2023-02-21 Micron Technology, Inc. Early credit return for credit-based flow control
CN112134859B (zh) * 2020-09-09 2021-07-06 上海沈德医疗器械科技有限公司 一种基于arm架构的聚焦超声治疗设备控制方法
DE102021121105A1 (de) * 2020-09-28 2022-03-31 Samsung Electronics Co., Ltd. Intelligente ablagespeichervorrichtung
TWI783293B (zh) * 2020-11-09 2022-11-11 瑞昱半導體股份有限公司 訊號傳輸裝置識別方法與訊號處理系統
US11409677B2 (en) 2020-11-11 2022-08-09 Qorvo Us, Inc. Bus slave circuit and related single-wire bus apparatus
US11489695B2 (en) 2020-11-24 2022-11-01 Qorvo Us, Inc. Full-duplex communications over a single-wire bus
KR20230108337A (ko) 2020-11-24 2023-07-18 텍트로닉스 인코포레이티드 고속 입력/출력 마진 테스팅을 위한 시스템, 방법 및 디바이스
CN112579479B (zh) * 2020-12-07 2022-07-08 成都海光微电子技术有限公司 在维护缓存一致性时维护事务次序的处理器及其方法
US20220182098A1 (en) * 2020-12-09 2022-06-09 Texas Instruments Incorporated Low power digital modes for duty-cycled integrated transceivers
US11636037B2 (en) 2020-12-21 2023-04-25 Nxp Usa, Inc. Methods and apparatuses involving radar system data paths
CN112953556A (zh) * 2021-02-05 2021-06-11 南京大学 基于斐波那契数列的抗串扰互联的编解码器及编码方法
CN112631989A (zh) * 2021-03-08 2021-04-09 南京蓝洋智能科技有限公司 一种小芯片间、芯片间、小芯片与芯片间的数据传输方法
US11431649B1 (en) * 2021-03-26 2022-08-30 Arm Limited Interconnect resource allocation
CN113019479A (zh) * 2021-03-31 2021-06-25 中国人民解放军空军军医大学 一种用于模拟井下工作环境的试验箱
IT202100008723A1 (it) 2021-04-08 2022-10-08 Phoenix ICT Sistema per la gestione in sicurezza dei documenti digitali
US20220327074A1 (en) * 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
KR102518317B1 (ko) * 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same
KR102668564B1 (ko) 2021-06-01 2024-05-24 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
TWI773395B (zh) * 2021-06-22 2022-08-01 慧榮科技股份有限公司 記憶體控制器與連結識別方法
CN113971143B (zh) * 2021-10-22 2023-12-05 展讯半导体(成都)有限公司 一种内存控制器、物联网芯片及电子设备
US11755494B2 (en) * 2021-10-29 2023-09-12 Advanced Micro Devices, Inc. Cache line coherence state downgrade
US11706048B1 (en) 2021-12-16 2023-07-18 Qorvo Us, Inc. Multi-protocol bus circuit
CN114510268B (zh) * 2021-12-24 2022-09-20 中国人民解放军战略支援部队航天工程大学 一种基于gpu实现下变频中单精度浮点数累积误差控制方法
US20220342840A1 (en) * 2021-12-30 2022-10-27 Intel Corporation Die-to-die interconnect
US20220327084A1 (en) * 2021-12-30 2022-10-13 Intel Corporation Die-to-die interconnect protocol layer
US11907132B2 (en) 2022-03-23 2024-02-20 International Business Machines Corporation Final cache directory state indication
US11726660B1 (en) * 2022-04-15 2023-08-15 Dell Products L.P. Techniques for flexible physical drive expansion using a loop back connection
US12038853B2 (en) 2022-04-22 2024-07-16 Western Digital Technologies, Inc. Reducing link up time in PCIe systems
CN114942814B (zh) * 2022-06-01 2023-07-11 咪咕视讯科技有限公司 页面组件的聚焦方法、***、终端设备及介质
US11880686B2 (en) * 2022-06-16 2024-01-23 Ampere Computing Llc Devices transferring cache lines, including metadata on external links
CN115099356A (zh) * 2022-07-11 2022-09-23 大连理工大学 工业不平衡数据分类方法、装置、电子设备及存储介质
CN115238619B (zh) * 2022-09-20 2023-06-27 北京数字光芯集成电路设计有限公司 数字芯片的子模块后仿真方法和***
US11914473B1 (en) * 2022-10-20 2024-02-27 Micron Technology, Inc. Data recovery using ordered data requests

Family Cites Families (271)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4191941A (en) 1978-04-03 1980-03-04 Rca Corporation Switch matrix for data transfers
US4716523A (en) 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
NZ232223A (en) * 1989-01-27 1993-03-26 British Telecomm Alternate burst communication for cordless phones re-established after channel failure
US4959833A (en) * 1989-03-08 1990-09-25 Ics Electronics Corporation Data transmission method and bus extender
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
WO1992006436A2 (en) * 1990-10-03 1992-04-16 Thinking Machines Corporation Parallel computer system
US5222062A (en) 1991-10-03 1993-06-22 Compaq Computer Corporation Expandable communication system with automatic data concentrator detection
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
EP0600626A1 (de) * 1992-11-13 1994-06-08 Cyrix Corporation Kohärenz eines Nachschreibcachespeicher in einem für Durchschreibcachespeicher bestimmten System
US5325360A (en) 1992-12-09 1994-06-28 National Semiconductor Corporation Controllable PCM state machine user interface
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5432775A (en) 1993-12-03 1995-07-11 Advanced Micro Devices, Inc. Auto negotiation system for a communications network
US5551005A (en) * 1994-02-25 1996-08-27 Intel Corporation Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
US5572703A (en) * 1994-03-01 1996-11-05 Intel Corporation Method and apparatus for snoop stretching using signals that convey snoop results
US5383143A (en) 1994-03-30 1995-01-17 Motorola, Inc. Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation
EP0706138A1 (de) * 1994-10-03 1996-04-10 International Business Machines Corporation Abwechselnde Datengültigkeitssteuerungssignale für Hochgeschwindigkeitsdatenübertragung
EP0707269A1 (de) * 1994-10-11 1996-04-17 International Business Machines Corporation Cachespeicherkohärenznetzwerk für Multiprozessor-Datenverarbeitungssystem
EP0735480B1 (de) * 1995-03-31 2003-06-04 Sun Microsystems, Inc. Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
DE69616402T2 (de) 1995-03-31 2002-07-18 Sun Microsystems, Inc. Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
US5898826A (en) * 1995-11-22 1999-04-27 Intel Corporation Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
CN1179043A (zh) * 1996-09-20 1998-04-15 摩托罗拉公司 Tdm/tdma***中离散可变的时隙宽度
US5991819A (en) * 1996-12-03 1999-11-23 Intel Corporation Dual-ported memory controller which maintains cache coherency using a memory line status table
US6249520B1 (en) * 1997-10-24 2001-06-19 Compaq Computer Corporation High-performance non-blocking switch with multiple channel ordering constraints
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US5987056A (en) * 1997-11-13 1999-11-16 Lsi Logic Corporation PN sequence hopping method and system
US6163608A (en) * 1998-01-09 2000-12-19 Ericsson Inc. Methods and apparatus for providing comfort noise in communications systems
US6141733A (en) * 1998-02-17 2000-10-31 International Business Machines Corporation Cache coherency protocol with independent implementation of optimized cache operations
US6334172B1 (en) * 1998-02-17 2001-12-25 International Business Machines Corporation Cache coherency protocol with tagged state for modified values
US6345339B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US7471075B2 (en) 1998-04-17 2008-12-30 Unique Technologies, Llc Multi-test Arc fault circuit interrupter tester
DE69813551T2 (de) * 1998-09-30 2004-02-12 Alcatel Verfahren und Einrichtung für den Übergang eines niedrigen Leistungszustandes zu einem hohen Leistungszustand in einem Kommunikationssystem
GB2342823B (en) * 1998-10-16 2000-11-29 Marconi Comm Ltd Communication system
US6526481B1 (en) * 1998-12-17 2003-02-25 Massachusetts Institute Of Technology Adaptive cache coherence protocols
US6393529B1 (en) * 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write
US6556634B1 (en) * 1999-02-10 2003-04-29 Ericsson, Inc. Maximum likelihood rake receiver for use in a code division, multiple access wireless communication system
US6185250B1 (en) * 1999-03-10 2001-02-06 Lucent Technologies Inc. Training of level learning modems
EP1232614A2 (de) 1999-05-28 2002-08-21 Basic Resources, Inc. Drahtloses netzwerk mit knoten-zu-knoten datenbenachrichtigung
US6487621B1 (en) * 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
KR100566289B1 (ko) * 1999-09-03 2006-03-30 삼성전자주식회사 데이타 링크 맵을 이용한 브이5.2 계층 2의 비활성화 제어 방법 및 장치
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US6754185B1 (en) * 1999-09-27 2004-06-22 Koninklijke Philips Electronics N.V. Multi link layer to single physical layer interface in a node of a data communication system
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6763034B1 (en) * 1999-10-01 2004-07-13 Stmicroelectronics, Ltd. Connection ports for interconnecting modules in an integrated circuit
US6320406B1 (en) 1999-10-04 2001-11-20 Texas Instruments Incorporated Methods and apparatus for a terminated fail-safe circuit
US6665832B1 (en) * 2000-03-31 2003-12-16 Qualcomm, Incorporated Slotted mode decoder state metric initialization
US6865231B1 (en) * 2000-06-20 2005-03-08 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated crossed differential pair correction
US6961347B1 (en) * 2000-06-20 2005-11-01 Hewlett-Packard Development Company, L.P. High-speed interconnection link having automated lane reordering
US7124252B1 (en) * 2000-08-21 2006-10-17 Intel Corporation Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
US6668335B1 (en) 2000-08-31 2003-12-23 Hewlett-Packard Company, L.P. System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths
US6892319B2 (en) 2000-09-08 2005-05-10 Hewlett-Packard Development Company, L.P. Method for verifying abstract memory models of shared memory multiprocessors
US7327754B2 (en) 2000-09-28 2008-02-05 Teridian Semiconductor, Corp. Apparatus and method for freezing the states of a receiver during silent line state operation of a network device
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) * 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
EP1211837A1 (de) * 2000-12-04 2002-06-05 Telefonaktiebolaget Lm Ericsson Ungleicher Fehlerschutz in ein Paketübertragungssystem
EP1217613A1 (de) * 2000-12-19 2002-06-26 Koninklijke Philips Electronics N.V. Wiederherstellung von schlechten oder fehlenden Rahmen in zellularer Telefonie
US6859864B2 (en) * 2000-12-29 2005-02-22 Intel Corporation Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US20020161975A1 (en) * 2001-02-23 2002-10-31 Zilavy Daniel V. Cache to cache copying of clean data
US7231500B2 (en) * 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US6987947B2 (en) 2001-10-30 2006-01-17 Unwired Technology Llc Multiple channel wireless communication system
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US20030093632A1 (en) * 2001-11-12 2003-05-15 Intel Corporation Method and apparatus for sideband read return header in memory interconnect
US7227845B2 (en) * 2001-12-11 2007-06-05 Motorola, Inc. Method and apparatus for enabling a communication resource reset
US7117311B1 (en) * 2001-12-19 2006-10-03 Intel Corporation Hot plug cache coherent interface method and apparatus
US7030737B2 (en) 2002-03-01 2006-04-18 Hewlett-Packard Development Company, L.P. Apparatus, system, and method for indicating a level of network activity
US7200186B2 (en) * 2002-03-14 2007-04-03 Intel Corporation Methods and apparatus for reducing power usage of a transmitter and receiver coupled via a differential serial data link
US7334047B1 (en) * 2002-03-18 2008-02-19 Cisco Technology, Inc. Method and system for selective link state advertisement blocking over a data network area
US7653790B2 (en) * 2002-05-13 2010-01-26 Glasco David B Methods and apparatus for responding to a request cluster
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
US6973545B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. System with a directory based coherency protocol and split ownership and access right coherence mechanism
US20040028074A1 (en) * 2002-07-26 2004-02-12 Gary Huff Physical layer device with line state encoding
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7720135B2 (en) * 2002-11-07 2010-05-18 Intel Corporation System, method and device for autonegotiation
US7505486B2 (en) * 2002-11-19 2009-03-17 Hewlett-Packard Development Company, L.P. Degradable network data path transmission scheme
US7203853B2 (en) * 2002-11-22 2007-04-10 Intel Corporation Apparatus and method for low latency power management on a serial data link
US20040174570A1 (en) 2002-12-02 2004-09-09 Plunkett Richard Thomas Variable size dither matrix usage
US6892283B2 (en) * 2002-12-05 2005-05-10 International Business Machines Corporation High speed memory cloner with extended cache coherency protocols and responses
US7525989B2 (en) * 2002-12-16 2009-04-28 Intel Corporation System, method and device for time slot status messaging among SONET nodes
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US7047475B2 (en) * 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
US7535836B2 (en) * 2003-02-12 2009-05-19 Broadcom Corporation Method and system to provide word-level flow control using spare link bandwidth
GB2399722A (en) * 2003-03-21 2004-09-22 Sony Uk Ltd Data communication synchronisation
US7464307B2 (en) * 2003-03-25 2008-12-09 Intel Corporation High performance serial bus testing methodology
US7136953B1 (en) 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7426597B1 (en) * 2003-05-07 2008-09-16 Nvidia Corporation Apparatus, system, and method for bus link width optimization of a graphics system
US7792118B2 (en) * 2003-06-19 2010-09-07 Polytechnic University Switch module memory structure and per-destination queue flow control for use in a switch
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US20050027876A1 (en) * 2003-07-29 2005-02-03 Toshitomo Umei Data transmission method, data transmission system, and data transmission apparatus
CN1320464C (zh) * 2003-10-23 2007-06-06 英特尔公司 用于维持共享高速缓存一致性的方法和设备
US7146284B2 (en) * 2003-11-07 2006-12-05 Texas Instruments Incorporated Method of testing phase lock loop status during a Serializer/Deserializer internal loopback built-in self-test
EP2242231A1 (de) * 2003-11-12 2010-10-20 Qualcomm Incorporated Hochgeschwindigkeits-Datenschnittstelle mit verbesserter Verbindungssteuerung
US8090857B2 (en) * 2003-11-24 2012-01-03 Qualcomm Atheros, Inc. Medium access control layer that encapsulates data from a plurality of received data units into a plurality of independently transmittable blocks
US7440468B2 (en) * 2003-12-11 2008-10-21 International Business Machines Corporation Queue management of a global link control byte in an input/output subsystem
US8009563B2 (en) * 2003-12-19 2011-08-30 Broadcom Corporation Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation
US7631118B2 (en) * 2003-12-31 2009-12-08 Intel Corporation Lane to lane deskewing via non-data symbol processing for a serial point to point link
JP4005974B2 (ja) * 2004-01-09 2007-11-14 株式会社東芝 通信装置、通信方法、および通信システム
US7856534B2 (en) * 2004-01-15 2010-12-21 Hewlett-Packard Development Company, L.P. Transaction references for requests in a multi-processor network
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US20050172091A1 (en) * 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
CN101895504A (zh) * 2004-04-30 2010-11-24 夏普株式会社 无线通信***
US20060041696A1 (en) 2004-05-21 2006-02-23 Naveen Cherukuri Methods and apparatuses for the physical layer initialization of a link-based system interconnect
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US7313712B2 (en) 2004-05-21 2007-12-25 Intel Corporation Link power saving state
US7219220B2 (en) * 2004-05-21 2007-05-15 Intel Corporation Methods and apparatuses for resetting the physical layers of two agents interconnected through a link-based interconnection
CN1700639A (zh) * 2004-05-21 2005-11-23 华为技术有限公司 导出和导入无线局域网鉴别与保密基础结构证书信息方法
US8046488B2 (en) * 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US20060041715A1 (en) 2004-05-28 2006-02-23 Chrysos George Z Multiprocessor chip having bidirectional ring interconnect
US7467358B2 (en) * 2004-06-03 2008-12-16 Gwangju Institute Of Science And Technology Asynchronous switch based on butterfly fat-tree for network on chip application
US7295618B2 (en) * 2004-06-16 2007-11-13 International Business Machines Corporation Automatic adaptive equalization method and system for high-speed serial transmission link
US7436836B2 (en) * 2004-06-30 2008-10-14 Cisco Technology, Inc. Method and apparatus for detecting support for a protocol defining supplemental headers
US8161429B1 (en) * 2004-08-20 2012-04-17 Altera Corporation Methods and apparatus for initializing serial links
KR100579053B1 (ko) 2004-08-26 2006-05-12 삼성전자주식회사 스마트 카드와 메모리 카드간의 멀티 인터페이스 방법 및멀티 인터페이스 카드
US20060047862A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7191255B2 (en) * 2004-10-27 2007-03-13 Intel Corporation Transaction layer link down handling for PCI express
CN100384118C (zh) * 2004-11-03 2008-04-23 上海贝尔阿尔卡特股份有限公司 处理通用成帧规程帧的方法和装置
US7738484B2 (en) * 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US7761719B2 (en) * 2005-03-28 2010-07-20 Akros Silicon Inc. Ethernet module
JP4791530B2 (ja) * 2005-04-13 2011-10-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子デバイス及びフロー制御方法
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7564904B2 (en) 2005-05-03 2009-07-21 Texas Instruments Incorporated Apparatus for and method of detection of powered devices over a network
US7539801B2 (en) * 2005-05-27 2009-05-26 Ati Technologies Ulc Computing device with flexibly configurable expansion slots, and method of operation
US7694060B2 (en) * 2005-06-17 2010-04-06 Intel Corporation Systems with variable link widths based on estimated activity levels
US7620694B2 (en) * 2005-09-27 2009-11-17 Intel Corporation Early issue of transaction ID
US7633877B2 (en) 2005-11-18 2009-12-15 Intel Corporation Method and apparatus for meeting compliance for debugging and testing a multi-speed, point-to-point link
US20070239922A1 (en) * 2005-12-09 2007-10-11 Horigan John W Technique for link reconfiguration
US7924708B2 (en) * 2005-12-13 2011-04-12 Intel Corporation Method and apparatus for flow control initialization
US7606981B2 (en) * 2005-12-19 2009-10-20 Intel Corporation System and method for reducing store latency
CN1996782B (zh) * 2005-12-26 2010-05-05 中兴通讯股份有限公司 一种空域自适应链路的天线选择指示方法
US7430628B2 (en) * 2006-01-10 2008-09-30 Kabushiki Kaisha Toshiba System and method for optimized allocation of shared processing resources
US7512741B1 (en) * 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging protocol
US7543115B1 (en) * 2006-01-11 2009-06-02 Intel Corporation Two-hop source snoop based cache coherence protocol
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US9390015B2 (en) * 2006-03-16 2016-07-12 International Business Machines Corporation Method for performing cacheline polling utilizing a store and reserve instruction
US7783959B2 (en) * 2006-03-23 2010-08-24 Intel Corporation Apparatus and method for reduced power consumption communications over a physical interconnect
US7681093B2 (en) * 2006-03-31 2010-03-16 Intel Corporation Redundant acknowledgment in loopback entry
US7743129B2 (en) 2006-05-01 2010-06-22 International Business Machines Corporation Methods and arrangements to detect a failure in a communication network
US20070260615A1 (en) * 2006-05-08 2007-11-08 Eran Shen Media with Pluggable Codec
US7721050B2 (en) * 2006-06-30 2010-05-18 Intel Corporation Re-snoop for conflict resolution in a cache coherency protocol
US7536515B2 (en) * 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements in a cache coherency protocol
US7506108B2 (en) * 2006-06-30 2009-03-17 Intel Corporation Requester-generated forward for late conflicts in a cache coherency protocol
WO2008018004A2 (en) * 2006-08-08 2008-02-14 Koninklijke Philips Electronics N.V. Electronic device and method for synchronizing a communication
US7965758B2 (en) * 2006-09-15 2011-06-21 Itron, Inc. Cell isolation through quasi-orthogonal sequences in a frequency hopping network
US7600080B1 (en) * 2006-09-22 2009-10-06 Intel Corporation Avoiding deadlocks in a multiprocessor system
GB2443465A (en) * 2006-11-06 2008-05-07 Fujitsu Ltd Communication systems
US9734086B2 (en) * 2006-12-06 2017-08-15 Sandisk Technologies Llc Apparatus, system, and method for a device shared between multiple independent hosts
KR101514630B1 (ko) 2007-01-15 2015-04-23 코닌클리케 필립스 엔.브이. Ofdm 시스템을 위해 첨두 전력 대 평균 전력 비율(papr)이 낮은 2진수 프리엠블 시퀀스를 생성하는 방법
DE102007007136B3 (de) 2007-02-09 2008-08-28 Siemens Ag Radelektronik und Verfahren zum Betreiben einer Radelektronik
US8428175B2 (en) * 2007-03-09 2013-04-23 Qualcomm Incorporated Quadrature modulation rotating training sequence
US7978635B2 (en) 2007-03-21 2011-07-12 Qualcomm Incorporated H-ARQ acknowledgment detection validation by re-decoding
EP1973254B1 (de) * 2007-03-22 2009-07-15 Research In Motion Limited Vorrichtung und Verfahren zur verbesserten Maskierung von Rahmenverlusten
EP2156595A1 (de) * 2007-05-08 2010-02-24 InterDigital Technology Corporation Verfahren und vorrichtung zur bereitstellung eines angehängten positivbestätigungs- bzw. negativbestätigungs-feldindikators und eines polling-indikators
US7827357B2 (en) * 2007-07-31 2010-11-02 Intel Corporation Providing an inclusive shared cache among multiple core-cache clusters
US7899111B2 (en) * 2007-08-07 2011-03-01 Intel Corporation Link interface technique including data indicator symbols
CA2632031A1 (en) * 2007-09-05 2009-03-05 Faisal Dada Aligning data on parallel transmission lines
US20090125363A1 (en) * 2007-10-22 2009-05-14 Nokia Siemens Networks Oy Method, apparatus and computer program for employing a frame structure in wireless communication
EP2063581A1 (de) * 2007-11-20 2009-05-27 STMicroelectronics (Grenoble) SAS Übertragung eines Datenstroms zwischen zwei elektronischen Geräten mittels eines Netzwerk-on-chip
US8392663B2 (en) * 2007-12-12 2013-03-05 Mips Technologies, Inc. Coherent instruction cache utilizing cache-op execution resources
US8179901B2 (en) 2008-02-11 2012-05-15 Vitesse Semiconductor Corporation System and method for squelching a recovered clock in an ethernet network
EP2248230B1 (de) 2008-02-29 2014-04-16 Hewlett-Packard Development Company, L.P. Modulares system und einfahrbare baugruppe für elektronische einrichtungen
DE102008012979A1 (de) * 2008-03-06 2009-09-10 Gip Ag Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken
US7492807B1 (en) 2008-04-07 2009-02-17 International Business Machines Corporation Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods
JP5108975B2 (ja) * 2008-04-28 2012-12-26 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 仮想割り込みモードインターフェース及び割り込みモードを仮想化するための方法
US8762652B2 (en) * 2008-04-30 2014-06-24 Freescale Semiconductor, Inc. Cache coherency protocol in a data processing system
CN101599811B (zh) * 2008-06-02 2011-04-06 华为技术有限公司 一种数据处理装置,通信设备以及数据处理方法
US7769048B2 (en) * 2008-06-25 2010-08-03 Intel Corporation Link and lane level packetization scheme of encoding in serial links
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8205045B2 (en) * 2008-07-07 2012-06-19 Intel Corporation Satisfying memory ordering requirements between partial writes and non-snoop accesses
US8250311B2 (en) * 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
CN101325461B (zh) * 2008-07-25 2011-04-27 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
CA2736470A1 (en) * 2008-09-08 2010-03-11 Samsung Electronics Co., Ltd. Sub-channel acquisition in a digital television receiver designed to receive mobile/handheld signals
CA2736768A1 (en) * 2008-09-10 2010-03-18 Commlabs, Inc. Wide area positioning system
US8917209B2 (en) * 2009-09-10 2014-12-23 Nextnav, Llc Coding in a wide area positioning system (WAPS)
US8265071B2 (en) * 2008-09-11 2012-09-11 Juniper Networks, Inc. Methods and apparatus related to a flexible data center security architecture
CN101430664B (zh) * 2008-09-12 2010-07-28 中国科学院计算技术研究所 一种多处理器***及Cache一致性消息传输方法
EP2173066B1 (de) 2008-10-01 2012-05-16 STMicroelectronics Srl Verfahren zum Austauschen von Informationen in einem Network-on-Chip-Kommunikationsnetzwerk, entsprechendes Network-on-Chip-Kommunikationsnetzwerk und Computerprogrammprodukt
WO2010096122A1 (en) * 2008-10-29 2010-08-26 Adapteva Incorporated Mesh network
KR100988809B1 (ko) * 2008-11-06 2010-10-20 주식회사 하이닉스반도체 반도체 메모리 장치 및 출력인에이블 신호 생성 방법
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
CN101437033B (zh) * 2008-12-16 2012-07-11 杭州华三通信技术有限公司 一种支持可变速率的方法和网络设备
US8189504B2 (en) * 2008-12-17 2012-05-29 Viasat, Inc. Physical layer header structure for decoding and synchronization
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US8026726B2 (en) * 2009-01-23 2011-09-27 Silicon Image, Inc. Fault testing for interconnections
KR101598094B1 (ko) * 2009-02-02 2016-02-26 엘지전자 주식회사 송/수신 시스템 및 데이터 처리 방법
KR20100092353A (ko) * 2009-02-12 2010-08-20 엘지전자 주식회사 트래픽 암호화 키 관리방법 및 장치
WO2010096969A1 (zh) * 2009-02-27 2010-09-02 华为技术有限公司 无源光网络中发送上行传送帧的方法及设备
KR101133256B1 (ko) 2009-02-27 2012-04-09 한국과학기술원 시그니처 정보를 이용한 물리계층에서의 타임스탬프 처리장치 및 그 방법
US20100228922A1 (en) 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines
US8401400B2 (en) * 2009-03-10 2013-03-19 Tyco Electronics Subsea Communications Llc Detection of data in signals with data pattern dependent signal distortion
CN101854331A (zh) * 2009-04-02 2010-10-06 天际微芯(北京)科技有限公司 训练序列结构及训练方法
US8335911B2 (en) * 2009-05-21 2012-12-18 Oracle America, Inc. Dynamic allocation of resources in a threaded, heterogeneous processor
US9690625B2 (en) * 2009-06-16 2017-06-27 Oracle America, Inc. System and method for out-of-order resource allocation and deallocation in a threaded machine
US8199759B2 (en) 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
CN101561794B (zh) * 2009-06-05 2012-07-04 威盛电子股份有限公司 通用串行总线装置
US8239704B2 (en) * 2009-06-12 2012-08-07 Cray Inc. Global clock via embedded spanning tree
WO2010147264A1 (en) * 2009-06-16 2010-12-23 Lg Electronics Inc. Method of exchanging messages and transmitting and receiving devices
US8782347B2 (en) * 2009-06-26 2014-07-15 Intel Corporation Controllably exiting an unknown state of a cache coherency directory
US20100332877A1 (en) 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US8831666B2 (en) * 2009-06-30 2014-09-09 Intel Corporation Link power savings with state retention
CN101695193A (zh) * 2009-09-27 2010-04-14 上海华为技术有限公司 一种下行数据发送和下行数据接收的方法和装置
US8799586B2 (en) 2009-09-30 2014-08-05 Intel Corporation Memory mirroring and migration at home agent
US8327228B2 (en) * 2009-09-30 2012-12-04 Intel Corporation Home agent data and memory management
US8819305B2 (en) * 2009-11-16 2014-08-26 Intel Corporation Directly providing data messages to a protocol layer
US8621128B2 (en) * 2009-12-04 2013-12-31 St-Ericsson Sa Methods and systems for reliable link startup
US9100809B2 (en) * 2009-12-21 2015-08-04 Julia Olincy Olincy Automatic response option mobile system for responding to incoming texts or calls or both
US8301813B2 (en) * 2009-12-24 2012-10-30 Ati Technologies Ulc Method and device for disabling a higher version of a computer bus and interconnection protocol for interoperability with a device compliant to a lower version of the computer bus and interconnection protocol
US20120227045A1 (en) 2009-12-26 2012-09-06 Knauth Laura A Method, apparatus, and system for speculative execution event counter checkpointing and restoring
US8804960B2 (en) * 2010-02-22 2014-08-12 International Business Machines Corporation Implementing known scrambling relationship among multiple serial links
US8868846B2 (en) * 2010-03-19 2014-10-21 Netapp, Inc. Method and system for maintaining data coherency across a network
US8473567B2 (en) * 2010-03-29 2013-06-25 Intel Corporation Generating a packet including multiple operation codes
US8514885B2 (en) * 2010-03-30 2013-08-20 International Business Machines Corporation Using variable length packets to embed extra network control information
US8539260B2 (en) * 2010-04-05 2013-09-17 Intel Corporation Method, apparatus, and system for enabling platform power states
CN101867401B (zh) * 2010-05-04 2013-11-20 西安交通大学 一种遮挡躲避的60GHz多天线***及其信号处理方法
CN102238623B (zh) * 2010-05-06 2014-04-09 中兴通讯股份有限公司 加快无线链路控制窗口状态应答的方法及基站子***
JP2011248814A (ja) * 2010-05-31 2011-12-08 Nec Corp PCIExpressリンクエラー検出及び自動復旧機能を備えたデバイス
US9448938B2 (en) * 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
CN101867452B (zh) 2010-06-10 2013-07-17 国网电力科学研究院 一种电力专用串行实时总线的通信方法
KR101323055B1 (ko) * 2010-06-17 2013-10-29 엘지디스플레이 주식회사 내부 디스플레이 포트 인터페이스 테스트 방법 및 장치
CN102315917B (zh) * 2010-07-06 2014-12-17 瑞昱半导体股份有限公司 一种用于信号传输的省电方法及装置
CN102377608B (zh) * 2010-08-12 2014-07-09 盛科网络(苏州)有限公司 物理层故障模拟***及方法
US8656115B2 (en) * 2010-08-20 2014-02-18 Intel Corporation Extending a cache coherency snoop broadcast protocol with directory information
WO2012038546A1 (en) 2010-09-23 2012-03-29 St-Ericsson Sa Multi-lane data transmission de-skew
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US9104793B2 (en) * 2010-09-24 2015-08-11 Intel Corporation Method and system of adapting communication links to link conditions on a platform
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
US8805196B2 (en) * 2010-09-30 2014-08-12 Teradyne, Inc. Electro-optical communications link
JP5597104B2 (ja) * 2010-11-16 2014-10-01 キヤノン株式会社 データ転送装置及びその制御方法
CN102142987B (zh) * 2010-12-09 2014-01-08 浪潮(北京)电子信息产业有限公司 一种高速串行总线设备及其传输数据的方法
JP2012146041A (ja) * 2011-01-11 2012-08-02 Hitachi Ltd 計算機装置及び信号伝送方法
JP2012155650A (ja) * 2011-01-28 2012-08-16 Toshiba Corp ルータ及びメニーコアシステム
EP2482196B1 (de) * 2011-01-31 2016-06-29 Canon Kabushiki Kaisha Bildverarbeitungsvorrichtung, Druckvorrichtung und Steuerverfahren in einer Bildverarbeitungsvorrichtung
US8924672B2 (en) * 2011-02-08 2014-12-30 Infineon Technologies Ag Device with processing unit and information storage
US8756378B2 (en) * 2011-02-17 2014-06-17 Oracle International Corporation Broadcast protocol for a network of caches
US8824489B1 (en) * 2011-04-26 2014-09-02 Marvell International Ltd. Physical layer (PHY) devices for use in automotive and industrial applications
US9189424B2 (en) 2011-05-31 2015-11-17 Hewlett-Packard Development Company, L.P. External cache operation based on clean castout messages
US8868955B2 (en) 2011-07-01 2014-10-21 Intel Corporation Enhanced interconnect link width modulation for power savings
US8788890B2 (en) * 2011-08-05 2014-07-22 Apple Inc. Devices and methods for bit error rate monitoring of intra-panel data link
US8514889B2 (en) * 2011-08-26 2013-08-20 Sonics, Inc. Use of common data format to facilitate link width conversion in a router with flexible link widths
US9208110B2 (en) * 2011-11-29 2015-12-08 Intel Corporation Raw memory transaction support
US9442879B2 (en) * 2011-12-07 2016-09-13 Intel Corporation Multiple transaction data flow control unit for high-speed interconnect
CN103188059A (zh) 2011-12-28 2013-07-03 华为技术有限公司 快速通道互联***中数据包重传方法、装置和***
CN102571571A (zh) * 2011-12-28 2012-07-11 南京邮电大学 一种应用于时延容忍网络的多层次有效路由方法
CN102594745B (zh) * 2011-12-29 2015-02-04 东南大学 单载波频域均衡***中的同步方法及其实现电路
US8892269B2 (en) 2012-03-30 2014-11-18 Intel Corporation Power down and quick start of thermal sensor
CN102685128B (zh) * 2012-05-09 2015-09-30 东南大学 一种基于状态机的协议构造方法
US9122810B2 (en) 2012-05-18 2015-09-01 Dell Products, Lp System and method for providing input/output functionality to a processing node
US8856573B2 (en) * 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US9280504B2 (en) 2012-08-24 2016-03-08 Intel Corporation Methods and apparatus for sharing a network interface controller
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US8996757B2 (en) * 2012-09-29 2015-03-31 Intel Corporation Method and apparatus to generate platform correctable TX-RX
US8935578B2 (en) 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
US9003091B2 (en) 2012-10-18 2015-04-07 Hewlett-Packard Development Company, L.P. Flow control for a Serial Peripheral Interface bus
US9280507B2 (en) * 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
DE112013007751B3 (de) 2012-10-22 2023-01-12 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US9600431B2 (en) * 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
JP6080984B2 (ja) 2013-02-28 2017-02-15 インテル・コーポレーション 異なる相互接続プロトコルのための一つの相互接続プロトコルの列挙および/または設定機構の活用
US9436244B2 (en) * 2013-03-15 2016-09-06 Intel Corporation Adaptive control loop protection for fast and robust recovery from low-power states in high speed serial I/O applications
EP3828717B1 (de) * 2013-12-26 2024-07-03 INTEL Corporation Multichip-paketverbindung
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link

Also Published As

Publication number Publication date
US20140215112A1 (en) 2014-07-31
KR101700545B1 (ko) 2017-01-26
KR101815178B1 (ko) 2018-01-04
CN106681938B (zh) 2020-08-18
KR101696124B1 (ko) 2017-01-12
WO2014065876A1 (en) 2014-05-01
DE112013003723T5 (de) 2015-04-16
DE112013007751B3 (de) 2023-01-12
KR20140137398A (ko) 2014-12-02
RU2579140C1 (ru) 2016-03-27
CN106815151B (zh) 2021-04-20
CN104969206B (zh) 2017-12-26
US20200356502A1 (en) 2020-11-12
WO2014065881A1 (en) 2014-05-01
CN106681938A (zh) 2017-05-17
DE112013004094B4 (de) 2018-03-29
CN108228495B (zh) 2021-05-25
CN104335196A (zh) 2015-02-04
KR20170081728A (ko) 2017-07-12
KR101861452B1 (ko) 2018-05-25
KR20160144510A (ko) 2016-12-16
US11269793B2 (en) 2022-03-08
DE112013007767B3 (de) 2023-04-20
KR20170081730A (ko) 2017-07-12
US20170097907A1 (en) 2017-04-06
DE112013005104T5 (de) 2015-07-02
KR20150047550A (ko) 2015-05-04
WO2014065873A1 (en) 2014-05-01
US20180203811A1 (en) 2018-07-19
US20150067207A1 (en) 2015-03-05
DE112013005086T5 (de) 2015-09-03
CN104995614A (zh) 2015-10-21
KR20150059721A (ko) 2015-06-02
RU2014145179A (ru) 2016-05-27
KR101861312B1 (ko) 2018-05-28
CN104737142A (zh) 2015-06-24
KR101695340B1 (ko) 2017-01-11
KR101912074B1 (ko) 2018-10-25
US9753885B2 (en) 2017-09-05
US10380046B2 (en) 2019-08-13
KR101686359B1 (ko) 2016-12-13
CN107968756A (zh) 2018-04-27
WO2014065879A1 (en) 2014-05-01
CN107102960A (zh) 2017-08-29
KR20180018853A (ko) 2018-02-21
CN104391816B (zh) 2018-11-09
DE112013004094T5 (de) 2015-07-23
EP2909728A1 (de) 2015-08-26
CN104769570B (zh) 2018-05-15
JP2017188909A (ja) 2017-10-12
KR101599852B1 (ko) 2016-03-07
US9916266B2 (en) 2018-03-13
US20140112339A1 (en) 2014-04-24
US10248591B2 (en) 2019-04-02
US20140201463A1 (en) 2014-07-17
KR101686360B1 (ko) 2016-12-13
JP6423040B2 (ja) 2018-11-14
DE112013001360T5 (de) 2014-11-27
US9892086B2 (en) 2018-02-13
CN108055214B (zh) 2021-04-13
WO2014065882A1 (en) 2014-05-01
EP3410304B1 (de) 2021-09-22
CN104487958A (zh) 2015-04-01
JP6139689B2 (ja) 2017-05-31
CN107045479B (zh) 2020-09-01
KR101815173B1 (ko) 2018-01-30
US11741030B2 (en) 2023-08-29
CN106815151A (zh) 2017-06-09
CN104380269A (zh) 2015-02-25
CN107015924A (zh) 2017-08-04
CN107015924B (zh) 2020-10-30
DE112013004105T5 (de) 2015-04-30
KR20150003363A (ko) 2015-01-08
CN104737147B (zh) 2018-11-06
KR20170042379A (ko) 2017-04-18
KR20150063044A (ko) 2015-06-08
CN107045479A (zh) 2017-08-15
KR20150047551A (ko) 2015-05-04
KR20170012581A (ko) 2017-02-02
KR20150077398A (ko) 2015-07-07
KR20180049192A (ko) 2018-05-10
WO2014065878A1 (en) 2014-05-01
CN104536933B (zh) 2018-02-13
WO2014065880A1 (en) 2014-05-01
DE112013001360B4 (de) 2023-03-23
KR101905055B1 (ko) 2018-10-08
KR20150077397A (ko) 2015-07-07
US20170109315A1 (en) 2017-04-20
CN104737142B (zh) 2018-03-23
CN104737147A (zh) 2015-06-24
CN104303166B (zh) 2018-01-09
CN104969207A (zh) 2015-10-07
DE112013007752B3 (de) 2023-04-27
CN108614783B (zh) 2022-11-18
CN107102960B (zh) 2021-07-09
US20170109286A1 (en) 2017-04-20
CN104995614B (zh) 2018-04-06
CN111737167A (zh) 2020-10-02
US20180143937A1 (en) 2018-05-24
CN108132892B (zh) 2022-02-11
CN104756097B (zh) 2018-05-15
US20220114122A1 (en) 2022-04-14
EP2909728A4 (de) 2016-06-22
DE112013005090T5 (de) 2015-07-02
US10216661B2 (en) 2019-02-26
US9418035B2 (en) 2016-08-16
CN108132892A (zh) 2018-06-08
US9378171B2 (en) 2016-06-28
KR20170007523A (ko) 2017-01-18
US20190391939A1 (en) 2019-12-26
KR101642086B1 (ko) 2016-07-22
KR20170005897A (ko) 2017-01-16
CN104769570A (zh) 2015-07-08
CN107968756B (zh) 2021-10-01
JP2016506548A (ja) 2016-03-03
KR101681509B1 (ko) 2016-12-01
CN108055214A (zh) 2018-05-18
KR101847943B1 (ko) 2018-04-11
US20150081984A1 (en) 2015-03-19
KR20160145197A (ko) 2016-12-19
KR20150047552A (ko) 2015-05-04
CN106776364B (zh) 2020-07-17
US20140215437A1 (en) 2014-07-31
US20150261711A1 (en) 2015-09-17
US20240012772A1 (en) 2024-01-11
DE112013002090T5 (de) 2015-01-15
KR20160150653A (ko) 2016-12-30
CN108614783A (zh) 2018-10-02
CN104536933A (zh) 2015-04-22
WO2014065883A1 (en) 2014-05-01
KR101754890B1 (ko) 2017-07-06
DE112013005093T5 (de) 2015-10-22
BR112015006432A2 (pt) 2017-07-04
DE112013002069B4 (de) 2022-12-01
KR101828756B1 (ko) 2018-02-12
CN104391816A (zh) 2015-03-04
KR101615908B1 (ko) 2016-04-27
KR101985120B1 (ko) 2019-05-31
CN104487958B (zh) 2018-05-22
DE112013003723B4 (de) 2018-09-13
KR20140141616A (ko) 2014-12-10
CN107092565B (zh) 2021-03-12
US20190347226A1 (en) 2019-11-14
WO2014065884A1 (en) 2014-05-01
KR101755005B1 (ko) 2017-07-06
WO2014065876A9 (en) 2015-02-26
KR20150052102A (ko) 2015-05-13
CN104969206A (zh) 2015-10-07
KR101815180B1 (ko) 2018-01-04
CN104335196B (zh) 2017-10-13
US9626321B2 (en) 2017-04-18
CN106776364A (zh) 2017-05-31
EP3410304A1 (de) 2018-12-05
CN104303166A (zh) 2015-01-21
KR101691756B1 (ko) 2016-12-30
CN104380269B (zh) 2018-01-30
WO2014065877A1 (en) 2014-05-01
US20180095927A1 (en) 2018-04-05
RU2599971C2 (ru) 2016-10-20
KR20160089541A (ko) 2016-07-27
CN108228495A (zh) 2018-06-29
KR20170007865A (ko) 2017-01-20
KR101700261B1 (ko) 2017-01-26
CN104756097A (zh) 2015-07-01
KR101598746B1 (ko) 2016-02-29
US20210117350A1 (en) 2021-04-22
WO2014065873A8 (en) 2014-07-10
KR101831550B1 (ko) 2018-02-22
KR20150070107A (ko) 2015-06-24
US20170083476A1 (en) 2017-03-23
CN107092565A (zh) 2017-08-25
KR20150059775A (ko) 2015-06-02
US10909055B2 (en) 2021-02-02
WO2014065875A1 (en) 2014-05-01
US10204064B2 (en) 2019-02-12
KR20160046928A (ko) 2016-04-29
KR101772037B1 (ko) 2017-08-28
DE112013002880T5 (de) 2015-03-05
CN111737167B (zh) 2024-05-28
KR101689998B1 (ko) 2016-12-26

Similar Documents

Publication Publication Date Title
DE112013002069B4 (de) Hohes Leistungsverbindungskohärenz-Protokoll
DE112013001361B4 (de) System auf einem Chip, Verfahren, maschinenlesbares Medium und System für die Bereitstellung einer Snoop-Filterung zugeordnet mit einem Datenpuffer
DE102018006756A1 (de) Beschleuniger-Fabric
DE112006002237B4 (de) Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE112016007566T5 (de) Systeme, Verfahren und Vorrichtungen zur heterogenen Berechnung
DE102018003221A1 (de) Unterstützung gelernter Sprungprädiktoren
DE112017001825T5 (de) Prozessoren, verfahren, systeme und instruktionen zum atomischen speichern von daten, die breiter als eine nativ unterstützte datenbreite sind, in einem speicher
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102018006797A1 (de) Kohärente Speichereinrichtungen über PCIe
DE102013200503A1 (de) Virtualisierungs-Support zum Speichern und Wiederherstellen von Zuständen einer Sprungvorhersage-Logik
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE112016004303T5 (de) Hardware-Vorhersageelement mit geringem Verwaltungsaufwand zur Verringerung der Leistungsumkehr für Kern-zu-Kern-Datenübertragungsoptimierungsbefehle
DE112017001148T5 (de) Abflachende portalbrücke .
DE112013007732T5 (de) PCI-Express-Erweiterungen
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112017004897T5 (de) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112016006065T5 (de) Spekulative nummerierung von adressräumen für bus-einrichtungsfunktionen
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112014006490T5 (de) Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle
DE102018005039A1 (de) System und verfahren für pro-agent-steuerung und - dienstqualität gemeinsam genutzter ressourcen in chip-mehrprozessor-plattformen
US10628314B2 (en) Dual clusters of fully connected integrated circuit multiprocessors with shared high-level cache

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013000000

Ipc: G06F0012080000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013000000

Ipc: G06F0012080000

Effective date: 20150123

R130 Divisional application to

Ref document number: 112013007845

Country of ref document: DE

Ref document number: 112013007764

Country of ref document: DE

R016 Response to examination communication
R130 Divisional application to

Ref document number: 112013007845

Country of ref document: DE

Ref document number: 112013007764

Country of ref document: DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final