DE112013002069B4 - Hohes Leistungsverbindungskohärenz-Protokoll - Google Patents

Hohes Leistungsverbindungskohärenz-Protokoll Download PDF

Info

Publication number
DE112013002069B4
DE112013002069B4 DE112013002069.6T DE112013002069T DE112013002069B4 DE 112013002069 B4 DE112013002069 B4 DE 112013002069B4 DE 112013002069 T DE112013002069 T DE 112013002069T DE 112013002069 B4 DE112013002069 B4 DE 112013002069B4
Authority
DE
Germany
Prior art keywords
agent
request
snoop
cache
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112013002069.6T
Other languages
English (en)
Other versions
DE112013002069T5 (de
Inventor
Robert G. Blankenship
Bahaa Fahim
Robert Beers
Yen-Cheng Liu
Vedaraman Geetha
Herbert H. Hum
Jeff Willey
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
    • 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
    • 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/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 Vorrichtung, die Folgendes umfasst:einen bestimmten Agenten mit Protokollschichtlogik zum:Empfangen einer Anforderung, die auf einen ersten Agenten (705) verweist, und Anfordern einer bestimmten Speicherzeile, die in einem exklusiven Zustand zwischengespeichert werden soll;Empfangen von einem zweiten Agenten (720) einer Anforderung auf Inhaberschaft für dieselbe Speicherzeile;Senden einer Snoop-Anforderung, die für einen oder mehrere andere Agenten (720) bestimmt ist;Senden einer Erledigung auf die Anforderung auf Inhaberschaft an den zweiten Agenten (720);Empfangen einer Konflikt-Nachricht vom zweiten Agenten (720);Senden einer Antwort auf die Konflikt-Nachricht;Empfangen einer expliziten Rückschreibung vom zweiten Agenten (720);Empfangen einer Snoop-Antwort, die auf den zweiten Agenten (720) verweist, wobei die Snoop-Antwort eine Rückschreibung einer modifizierten Cache-Zeile in den Speicher enthält, die der bestimmten Speicherzeile entspricht; undSenden einer an den ersten Agenten (710) adressierten Erledigung, wobei die Erledigung Daten der bestimmten Speicherzeile auf der Grundlage der Rückschreibung umfassen soll.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft im Allgemeinen das Gebiet der Computerentwicklung und insbesondere Softwareentwicklung, welche die Koordination von sich gegenseitig bedingenden beschränkten Systemen einbezieht.
  • HINTERGRUND
  • Fortschritte bei Halbleiterverarbeitung und Logikdesign führten zu einer Zunahme der Menge an Logik, die bei Geräten mit integrierten Schaltungen vorhanden sein kann. Als Folge haben sich Konfigurationen von Computersystemen von einer einzelnen oder von mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Threads und mehreren logischen Prozessoren, die bei individuellen integrierten Schaltungen vorhanden sind, sowie zu anderen Schnittstellen, die innerhalb von solchen Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise eine einzelne physikalische Prozessor-Chiplage, wobei die Prozessor-Chiplage jegliche Anzahl an Kernen, Hardware-Threads oder logischen Prozessoren, Schnittstellen, Speicher, Controller-Hubs usw. einschließen kann.
  • Infolge der erhöhten Fähigkeit, mehr Rechenleistung in kleineren Paketen unterzubringen, haben kleinere Computergeräte an Popularität zugenommen. Smartphones, Tablets, ultraflache Notebooks und andere Teilnehmerendgeräte haben exponentiell zugenommen. Diese kleineren Geräte sind jedoch sowohl für Datenspeicherung als auch für komplexe Verarbeitung, die den Formfaktor überschreitet, von Servern abhängig. Daher hat die Nachfrage auf dem Hochleistungsrechnermarkt (d. h., Serverspeicherplatz) ebenfalls zugenommen. Zum Beispiel gibt es in modernen Servern normalerweise nicht nur einen einzelnen Prozessor mit mehreren Kernen, sondern auch mehrere physische Prozessoren (die auch als Mehrfachsockel bezeichnet werden), um die Rechenleistung zu erhöhen. Aber während die Rechenleistung zusammen mit der Anzahl an Geräten in einem Computersystem zunimmt, wird die Kommunikation zwischen Sockeln und anderen Bauelementen kritischer.
  • Tatsächlich sind Kopplungsstrukturen von traditionelleren Mehrpunktverbindungsbussen, die hauptsächlich elektrische Kommunikationen behandeln, zu voll ausgereiften Kopplungsstruktur-Architekturen gewachsen, die eine schnelle Kommunikation erleichtern. Unglücklicherweise werden die entsprechenden Anforderungen den Fähigkeiten von vorhandenen Kopplungsstruktur-Architekturen zugeordnet, während die Nachfrage nach zukünftigen Prozessoren mit noch höheren Verbrauchsraten zunimmt.
  • US 5 644 753 A beschreibt ein Multiprozessor Computersystem mit Datenprozessoren und einem an einen Systemcontroller gekoppelten Hauptspeicher. Jeder Datenprozessor hat einen Cache Speicher. Jeder Cache Speicher hat einen Cache Controller mit zwei Ports zum Empfang von Zugangsanforderungen. Es wird eine Systemarchitektur beschrieben, die zur Aufrechterhaltung der Cachekohärenz verwendet wird.
  • US 5 524 234 A beschreibt ein Rückschreibe-Kohärenzsystem, um Rückschreibe-Cachen in einem x86 Prozessor zu implementieren, der in einem Multi-Master-Computersystem installiert ist, das ein Rückschreibeprotokoll zur Aufrechterhaltung der Kohärenz zwischen einem internen Cache und einem Hauptspeicher während DMA Operationen nicht unterstützt.
  • Die Erfindung ist definiert im neuen Hauptanspruch sowie in den neben geordneten Ansprüchen. Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen beschrieben.
  • Figurenliste
    • 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.
    • 15-17 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 Märktsegmente 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 PCle 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 TLP 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 bestehend, 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 PCle 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 PCle 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. PCle, 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 PCle). 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 605 a, 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 610a b 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, VN0 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
    Rd Daten 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)
    Rdlnv fordern Sie eine Cachezeile E Zustand an.Wennzeilezuvorim M-Zustandzwischengespeicherwurde, Geschrieben die zieleSpeichervor E Datengeliefert E
    RdlnvOwn 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
    InvXtol Aus allen Caches spüleneine Cachezeile und erlischt die zeile in seinem Cache vor dieser Anforderung ausgegeben.
    WbMtol 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 Übergan gzu E Zustand M oder E
    WbMtolPtl Schreiben Sie eine Cachezeile in M Zustand zurück in den Speichernach eine Byte-Enable-Maske, und Übergang zu I-Zustand M
    WbMtoEPtl Schreiben Sie eine Cachezeile in M Zustand zurück in den Speichernach eine Byte-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
    WbPushMto I 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 Anforder ung 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-Protokollnachric hten eingefügt werden kann, einschließlich Snoop, Lese- undSchreibanforderungen, unter ande ren 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.
    reqTID ID der Ressource zugewiesen vom anfordernden Agent für dieTransaktion, auch be kannt als RTID (oder Transaktions-ID anfordern).
    HomeTID ID der Ressource von den home-Agent zum Verarbeiten derAnforderung, auch bek annt 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 erhalte n.
    Snplnv Snoop, Peercache Spülung jede M-Kopie in den Speicher zu entkräften.
    SnplnvOwn Snoop, Daten in M oder E Zustand zu erhalten.
    SnpCur Snoop einen speicherbar Snapshot einer Cache-Li nie zu erhalten.
    SnpFCode Snoop, Daten in F oder S-Zustand zu erhalten; Ro uting 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 a nalle 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
    SnpFlnvown Snoop, Daten in M oder E Zustand zu erhalten; Ro uting Schicht, Verteilung analle Fanout-Peers zu behandeln.
    SnpFlvn Snoop, Peercache Spülung jede M-Kopie in den Speicher zu entkräften; RoutingSchicht, Verteil ung 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 mögen 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 qeordneten 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.
    Rspl Cache ist im I Zustand. cmd, destNID, homeTID
    RspS Cache ist in S-Zustand.
    RspFwd Kopie der Cachezeile schickte man ersuchenden Agent, Cache-Zustand n ichtqeändert haben.
    RspFwdl 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.
    RsplWb Geänderte Zeile implizit geschrieben wird zurück in den Speicher, Cache wurdeumqestellt, I Zustand. cmd,destNID, homeTID,data
    RspSWb Geänderte Zeile wird implizit geschrieben zurück in den Speicher, Cache in SZustand übergegangen war.
    RspFwdl Wb Geänderte Zeile implizit geschrieben wird zurück in den Speicher, Kopie derCachezeile an ersuchenden Agent gesendet wurd e, Cache wurde umgestellt, I Zustand.
    RspFwdS Wb Geänderte Zeile wird implizit geschrieben zurück in den Speicher, Kopie derCachezeile wurde geschickt, um ersuchenden Ag ent Cache in S Zustandübergegangen war.
    RspCnflt Peer hat eine ausstehende Anforderung an derselben Adresse, eine geor dneteforward Antwort anfordert, und eine Ressource für die Forward reser vierthat. 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 Age nten auf das Senden von Daten Antwortennur aufgrund der Verarbeitung einer Anforderung Sn oop beschränkt. KombinierteDaten und Fertigstellung Antworten können immer des Typs bestellt -Abschlussund können durch die Kommunikation-Stoff bestellten mit vorwärts 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, FwdCnfltO.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 HPlunterstü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. Rdlnv * 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 (FwdCnfltO) Kohärenz Agenten, Send Forward Zugriffe (RspCnflt) 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önnenv erwendet werden, zur Entspannung Abhängigkeit Zyklen und vermeiden vonDeadlocks. In einer Ausführungsform kann jede Nachricht ohne Vervielfältigungauf allen virtuellen Kanälen und Sort ierreihenfolgen-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 FwdCnfltOkonfiguriert 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 FwdCnfltONachricht ist, dass eine FwdCnfltO nicht „eine geordnete Abwicklung gelangt“. Genauer gesagt, tritt Wenn ein home-Agent eine geordnete Beendigung-Antwort sendet, gefolgt von einer FwdCnfltO-Meldung und beide Nachrichtensind für die gleiche Kohärenz-Agent bestimmt, dann der Kommunikation-Stoffdie geordneten Abschluss Antwort bevor die FwdCnfltO, unter anderenmöglichen Beispielen.
  • Sollte es geschätzt, dass während einige Beispiele für den Protokoll-Ablauf hierinangegeben werden., die beschrieb enen 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 RspCnflt 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öglicherweiselnformationen 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 vorwärts Anforderungerhält nicht die Snoop-Antwort auf. Stattdessen kann der home-Agent eine vorwärts Antwort an den widersprüchlichen Kohärenz-Agent senden. Eineforward-Anfrage (RspCnflt), 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 (RspCnflt) ein home-Agent empfängt, sendet er eineforward Antwort (FwdCnfltO) an den anfordernden Kohärenz-Agent.
  • Der HPI-Kommunikation-Stoff bestellt vorwärts 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 a nzeigt, 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 (RspCnflt) generieren. Die zweite Bedingung ist, wenn der Kohärenz-Agent nicht eine Wb * oder EvctCln 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 EvctCln 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 Fwdlnv 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 Zurückschreiben 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 Zurückschreiben 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 einelnv * 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 Zurückschreiben der Cache-Linie eingeleitet. Es kann zulässig sein, für ein Kohärenz-Agent ein explizites Zurückschreiben 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 (RspCnflt). Der HausAgent 710 kann auf die vordere Reaktion von RspCnflt durch Senden einer vordere Reaktion (FwdCnfltO) 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 FwdCnfltO kann dann von dem Cache-Agent 705 und Cache-Agent 705 empfangen werden, um festzustellen, wie der vordere Reaktion FwdClfltO basierend auf der Snoop SnpFO, die das Senden der vorderen Reaktion RspCnflt, reagiert. In diesem Beispiel, kann der Cache-Agent 705 ein Protokoll Standtabelle konsultieren, zum Beispiel, um eine Reaktion auf die Vorwärtsantwortnachricht FwdClfltO 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 RdlnvOwn 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 RdlnvOwn Anfragen senden. Daher ist der zweite Cache-Agent 720 kann eine vordere Anfrage RspCnflt 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 Rspl, die darauf hinweist, dass der zweite Cache-Agent 720 in einem I-Zustand ist. Der Hausgent 710 empfängt die Snoop Reaktion Rspl 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 RdlnvOw, zu antworten, beginnend mit einem Snoop-Anforderung SnplnvO 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 RspFwdl, 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 InvltoE Nachricht) zu erfragen. Eine erste Cache-Agenten 705 sendet eine konkurrierende Nachricht (Rdlnv) 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 Rdlnv des ersten Cache-Agent 705 geliefert wird. Der Hausagent 710 liefert werden eine komplette (CMPO) an die InvItoE Anfrage und sendet eine snoop (Snplnv) an Cache-Agent 720 auf Basis der Rdlnv 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 RspCnflt. Wie in den vorgehenden Beispielen, der Hausatagent 710 kann konfiguriert werden, um die vordere Anfrage mit einem Forward-Reaktion (FwdCnfltO) zu reagieren. Mehrere zulässigen Antworten kann der vorderen Reaktionen zugelassen werden. Zum Beispiel kann der Cache-Agent 720 ein explizites Züruckschreiben (zB WbMtol) einführen und die Snoop-(oder vordere) blockiert, bis das explizite Zurückschreiben abgeschlossen ist (zB CmpU), wie im Beispiel der 9 dargestellt ist. Der Cache-Agent kann dann die Snoop REaktion (Rspl) fertigen. Der Hausagent 710 kann dann die Anfrage Rdlnv 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 Zurückschreiben (teilweise) von der Linie, während der Blockierung der snoop oder 2) senden vordere Anfrage (RspCnflt) an den Hausagent. Wenn (1) so gewählt wird, verarbeitet der Agent die Snoop nach Empfang des vollständigen Zurückschreiben. Wenn (2) gewählt wird, ist es möglich, dass der Agent vordere Reaktion (FwdCnfltO) 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 Zurückschreiben (teilweise) von der Linie. Während des Zurückschreiben 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 Zurückschreiben 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 Zurückschreiben 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 zurückschreiben, führen Sie zuerst das Rückschreiben. Zum Beispiel, ein Cache-Agent kann ein Zurückschreiben Anfrage verwenden, um UC-Daten vor der Verarbeitung vorwärts begehen und partielle Cache-Linie zurückschreiben, unter anderem Beispiele und Funktionen.
  • In einer Ausführungsform, kann die HPI-Kohärenz-Protokoll eine Ungültigkeitserklärung (Rdlnv) 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 Rdlnv 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 RsplWb 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 RsplWb 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 Rdlnv 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 Zurückschreiben (zB RspIWb). Wenn Home die RsplWb 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 RsplWb 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 der jeweiligen 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 Zurückschreiben mit Cache-Push Hinweis (WbPushMtol) unterstützen. Im Allgemeinen wird in einigen Beispielen, die modifizierten Daten entweder explizit Schreiben in den Speicher zurück, 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 zurückschreiben 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 WbPushMtol 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 WbPushMtol 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 WbPushMtol Nachricht verarbeiten und entscheidet sich, um die Daten wieder in den Speicher schreiben, wie in einer WbMtol 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 WbPushMtol 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 InvXtol 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 WbPushMtol annehmen und die Daten auf einen gezielten Cache-Agent drängen oder statt die Verarbeitung WbPushMtol Nachricht als WbMtol 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 Zurückschreiben 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 Zurückschreiben 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 Protokollzustandstabelle1500 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 RsplWb snoop Reaktion puffert.Wenn ein Hausagent RsplWb 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 RsplWb 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ücks chreiben 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 Fehl er-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 vorwärts bestimmen, ob den vorwärts 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 vorwärts 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 vorwärts Zustand für den Übergang aus der vorwärts 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 einemKonfigurationsp arameter Identifizierung jeder Agent in einem entsprechendenFanouot Kegel identifiziert.
  • Die Konfigurationsparameter soll bei mindestens einem Beispiel jeder Agent vonAdresse zu ide ntifizieren.
  • 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 SnoopZwischenspei chern 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 werd en soll.
  • Bei mindestens einem Beispiel können für eine oder mehrere AnforderungenSnoop Snoop Antw orten empfangen werden.
  • Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine lesen Inv alidate-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 gemeinsa mgenutzter Daten, initiieren undgleichzeitig einen forward Staat die freigegebenen Daten zugeo rdnet werden sollen.

Claims (25)

  1. Eine Vorrichtung, die Folgendes umfasst: einen bestimmten Agenten mit Protokollschichtlogik zum: Empfangen einer Anforderung, die auf einen ersten Agenten (705) verweist, und Anfordern einer bestimmten Speicherzeile, die in einem exklusiven Zustand zwischengespeichert werden soll; Empfangen von einem zweiten Agenten (720) einer Anforderung auf Inhaberschaft für dieselbe Speicherzeile; Senden einer Snoop-Anforderung, die für einen oder mehrere andere Agenten (720) bestimmt ist; Senden einer Erledigung auf die Anforderung auf Inhaberschaft an den zweiten Agenten (720); Empfangen einer Konflikt-Nachricht vom zweiten Agenten (720); Senden einer Antwort auf die Konflikt-Nachricht; Empfangen einer expliziten Rückschreibung vom zweiten Agenten (720); Empfangen einer Snoop-Antwort, die auf den zweiten Agenten (720) verweist, wobei die Snoop-Antwort eine Rückschreibung einer modifizierten Cache-Zeile in den Speicher enthält, die der bestimmten Speicherzeile entspricht; und Senden einer an den ersten Agenten (710) adressierten Erledigung, wobei die Erledigung Daten der bestimmten Speicherzeile auf der Grundlage der Rückschreibung umfassen soll.
  2. Vorrichtung nach Anspruch 1, wobei die Logik der Protokollschicht ferner dazu dient, die modifizierte Cache-Zeile in die bestimmte Speicherzeile zu schreiben.
  3. Vorrichtung nach Anspruch 1, wobei die Logik der Protokollschicht ferner dazu dient, zu bestimmen, dass die Cache-Zeile des zweiten Agenten (720) eine modifizierte Cache-Zeile ist.
  4. Vorrichtung nach Anspruch 3, wobei die Erledigung vor dem Empfang von Antworten auf alle Snoop-Anforderungen, die der Anforderung des ersten Agenten entsprechen, basierend auf der Feststellung, dass die Cache-Zeile des zweiten Agenten (720) eine modifizierte Cache-Zeile ist, zu senden ist.
  5. Vorrichtung nach Anspruch 1, wobei die Snoop-Anforderung eine Snoop-Invalidierungsanforderung umfasst.
  6. Vorrichtung nach Anspruch 5, wobei die Snoop-Invalidierungsanforderung darin besteht, die Cache-Zeile des empfangenden anderen Agenten (720), die der bestimmten Zeile oder dem Speicher entspricht, zu invalidieren.
  7. Vorrichtung nach Anspruch 5, wobei die Snoop-Invalidierungsanforderung dazu dient, die bestimmte Speicherzeile und einen in der Anforderung des ersten Agenten (710) enthaltenen Befehl zu identifizieren.
  8. Vorrichtung nach Anspruch 1, wobei die Logik der Protokollschicht ferner dazu dient, einen direkten Zustand zu ändern, um anzuzeigen, dass die bestimmte Speicherleitung mit einem exklusiven Zustand verbunden ist,
  9. Eine Vorrichtung, die Folgendes umfasst: einen Agenten (705) mit Protokollschichtlogik zum: Senden einer Anforderung auf Inhaberschaft, für eine bestimmte Cache-Zeile in einem exklusiven Zustand; Empfangen einer Erledigung auf die Anforderung auf Inhaberschaft; Empfangen von Daten aus dem Speicher, die der bestimmten Cache-Zeile entsprechen, wobei die bestimmten Daten Daten umfassen, die von einem anderen Agenten (720) nach der Anforderung in den Speicher zurückgeschrieben wurden; Senden einer Konflikt-Nachricht; Empfangen einer Antwort auf die Konflikt-Nachricht, und Senden einer expliziten Rückschreibung.
  10. Vorrichtung nach Anspruch 9, wobei die bestimmte Cache-Zeile vor der Anforderung in einem ungültigen Zustand ist.
  11. Vorrichtung nach Anspruch 9, wobei der exklusive Zustand ein E-Zustand ist, der anzeigt, dass eine Kopie der Daten in der bestimmten Cache-Zeile mit dem Speicher übereinstimmt und eine exklusive Kopie ist.
  12. Vorrichtung nach Anspruch 9, wobei die Logik der Protokollschicht ferner dazu dient, die bestimmten Daten in die bestimmte Cache-Zeile zu kopieren.
  13. Vorrichtung nach Anspruch 12, wobei die Logik der Protokollschicht ferner dazu dient, die bestimmte Cache-Zeile auf der Grundlage des Empfangs der bestimmten Daten in einen exklusiven Zustand zu überführen.
  14. Vorrichtung nach Anspruch 9, wobei die Daten, die von einem anderen Agenten (720) in den Speicher zurückgeschrieben werden, Daten umfassen, die als Reaktion auf einen Snoop zurückgegeben werden, der der Anforderung nach der bestimmten Cache-Zeile in einem exklusiven Zustand entspricht.
  15. Vorrichtung nach Anspruch 14, wobei der Snoop einer aus einer Vielzahl von Snoops ist und die bestimmten Daten zu empfangen sind, bevor Antworten für jede der Snoop-Anforderungen zurückgegeben werden.
  16. Verfahren, umfassend: Empfangen einer Anforderung von einem ersten Agenten (710), eine bestimmte Speicherzeile in einem exklusiven Zustand zu cachen; Empfangen von einem zweiten Agenten (720) einer Anforderung auf Inhaberschaft für dieselbe Speicherzeile; Senden einer Snoop-Anforderung an einen oder mehrere andere Agenten; Senden einer Erledigung auf die Anforderung auf Inhaberschaft an den zweiten Agenten (720); Empfangen einer Konflikt-Nachricht vom zweiten Agenten (720); Senden einer Antwort auf den Konflikt-Nachricht; Empfangen einer expliziten Rückschreibung vom zweiten Agenten (720); Empfangen einer Snoop-Antwort von dem zweiten Agenten (720), wobei die Snoop-Antwort ein Zurückschreiben einer modifizierten Cache-Zeile des zweiten Agenten (720), die der bestimmten Speicherzeile entspricht, in den Speicher umfasst; Senden einer Erledigung an den ersten Agenten, wobei die Erledigung Daten der bestimmten Speicherzeile basierend auf der Rückschreibung enthalten soll.
  17. Verfahren nach Anspruch 16, ferner umfassend das Senden einer Anforderung an einen Speicher-Controller zum Schreiben der modifizierten Cache-Zeile in die bestimmte Speicherzeile.
  18. Verfahren nach Anspruch 16, ferner umfassend das Bestimmen, dass die Cache-Zeile des zweiten Agenten (720) eine modifizierte Cache-Zeile ist.
  19. Verfahren nach Anspruch 16, wobei das vollständige Senden vor dem Empfang von Antworten auf alle Snoop-Anforderungen erfolgt, die der Anforderung des ersten Agenten (710) entsprechen.
  20. Verfahren nach Anspruch 16, ferner umfassend den Übergang eines Verzeichniszustands, um anzuzeigen, dass die bestimmte Speicherzeile mit einem exklusiven Zustand verbunden ist.
  21. Ein System, das folgendes umfasst: eine Speichersteuerung für einen bestimmten Speicherplatz; einen Home-Agenten (705), der der bestimmten Speicherstelle entspricht; und einen ersten Cache-Agenten (710) einer ersten Vorrichtung; wobei der Home-Agent (705) die Aufgabe hat: eine Anforderung zu empfangen, die auf den ersten Cache-Agenten (710) verweisen soll, und eine bestimmte Speicherzeile anzufordern, die in einem exklusiven Zustand zwischengespeichert werden soll; von einem zweiten Agenten (720) eine Anforderung auf Inhaberschaft für dieselbe Speicherzeile zu empfangen; eine Snoop-Anforderung zu senden, die für einen oder mehrere andere Agenten bestimmt ist; eine Erledigung auf die Anforderung auf Inhaberschaft an den zweiten Agenten (720) zu senden; eine Konflikt-Nachricht vom zweiten Agenten (720) zu empfangen; eine Antwort auf die Konflikt-Nachricht zu senden; eine expliziten Rückschreibung vom zweiten Agenten (720) zu empfangen; eine Snoop-Antwort zu empfangen, die auf einen zweiten Agenten (720) verweisen soll, wobei die Snoop-Antwort eine Rückschreibung einer modifizierten Cache-Zeile in den Speicher enthalten soll, die der bestimmten Speicherzeile entsprechen soll; eine an den ersten Agenten (710) zu adressierende Erledigung zu senden, wobei die Erledigung Daten der bestimmten Speicherzeile auf der Grundlage der Rückschreibung enthalten soll.
  22. System nach Anspruch 21, das ferner den zweiten Cache-Agenten (720) umfasst, um: die Snoop-Anforderung zu empfangen; aus der Snoop-Anforderung die Anforderung des ersten Cache-Agenten zu identifizieren, die bestimmte Zeile des bestimmten Speicherplatzes in einem exklusiven Zustand zu cachen; Senden der Snoop-Antwort an den Home-Agenten (705).
  23. System nach Anspruch 21, wobei der erste Cache-Agent (710) die Aufgabe hat: die Anfrage an den Heimat-Agenten (705) zu senden; und die vollständigen Daten empfangen; die Daten der bestimmten Speicherzeile in eine entsprechende Cache-Zeile schreiben; und die entsprechende Cache-Zeile in einen exklusiven Zustand überführen.
  24. System nach Anspruch 21, wobei die Anforderung von dem ersten Cache-Agenten (710) eine Kohärenzprotokollanforderung umfassen soll.
  25. System nach Anspruch 21, wobei die Erledigung vor dem Empfang von Antworten auf alle Snoop-Anforderungen, die der Anforderung vom ersten Cache-Agenten (710) entsprechen, zu senden ist.
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 DE112013002069T5 (de) 2015-01-08
DE112013002069B4 true DE112013002069B4 (de) 2022-12-01

Family

ID=50485278

Family Applications (14)

Application Number Title Priority Date Filing Date
DE112013005086.2T Pending DE112013005086T5 (de) 2012-10-22 2013-03-15 Kohärenzprotokoll für Hochleistungszwischenverbindung
DE112013004105.7T Pending DE112013004105T5 (de) 2012-10-22 2013-03-15 Kohärenzprotokolltabellen
DE112013003723.8T Active DE112013003723B4 (de) 2012-10-22 2013-03-15 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013007751.5T Active DE112013007751B3 (de) 2012-10-22 2013-03-15 Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
DE112013005093.5T Pending DE112013005093T5 (de) 2012-10-22 2013-03-15 Hochleistungszusammenschaltungsbitübertragungsschicht
DE112013005090.0T Pending DE112013005090T5 (de) 2012-10-22 2013-03-15 Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE112013002069.6T Active DE112013002069B4 (de) 2012-10-22 2013-03-15 Hohes Leistungsverbindungskohärenz-Protokoll
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
DE112013002090.4T Pending DE112013002090T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013007752.3T Active DE112013007752B3 (de) 2012-10-22 2013-03-27 Hochleistungsverdrahtungs-Bitübertragungsschicht
DE201311002880 Pending DE112013002880T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikslische 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 (6)

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

Family Applications After (7)

Application Number Title Priority Date Filing Date
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
DE112013002090.4T Pending DE112013002090T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013007752.3T Active DE112013007752B3 (de) 2012-10-22 2013-03-27 Hochleistungsverdrahtungs-Bitübertragungsschicht
DE201311002880 Pending DE112013002880T5 (de) 2012-10-22 2013-03-27 Hochleistungsfähige physikslische 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) US9378171B2 (de)
EP (2) EP3410304B1 (de)
JP (2) JP6139689B2 (de)
KR (27) KR101686359B1 (de)
CN (26) CN104380269B (de)
BR (1) BR112015006432A2 (de)
DE (14) DE112013005086T5 (de)
RU (2) RU2599971C2 (de)
WO (11) WO2014065878A1 (de)

Families Citing this family (210)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104081722B (zh) * 2012-01-13 2018-05-22 英特尔公司 SoC构造中的高效对等通信支持
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
CN104380269B (zh) 2012-10-22 2018-01-30 英特尔公司 高性能互连相干协议
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
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 华为技术有限公司 一种数据传输方法及装置
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
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
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム
WO2015099724A1 (en) * 2013-12-26 2015-07-02 Intel Corporation Pci express enhancements
CN105765544B (zh) * 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
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 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для управления турборежимом
US9696920B2 (en) 2014-06-02 2017-07-04 Micron Technology, Inc. Systems and methods for improving efficiencies of a memory system
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
US10082538B2 (en) * 2014-11-14 2018-09-25 Cavium, Inc. Testbench builder, system, device and method
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
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
US10025746B2 (en) * 2014-12-20 2018-07-17 Intel Corporation High performance interconnect
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
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
US20160285624A1 (en) * 2015-03-26 2016-09-29 Intel Corporation Pseudorandom bit sequences in an interconnect
US9946676B2 (en) 2015-03-26 2018-04-17 Intel Corporation Multichip package link
US9639276B2 (en) * 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
US10282315B2 (en) 2015-03-27 2019-05-07 Cavium, Llc Software assisted hardware configuration for software defined network system-on-chip
US9720838B2 (en) 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
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
EP3297220B1 (de) * 2015-06-10 2019-04-17 Huawei Technologies Co. Ltd. Signalübertragungsverfahren, steuergerät und signalübertragungssystem
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
CN107924378B (zh) * 2015-07-30 2020-12-18 瓦伦斯半导体有限责任公司 高带宽通道的无缝添加
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
US20200244397A1 (en) * 2015-09-26 2020-07-30 Intel Corporation Stream identifier lane protection
US9720439B2 (en) 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
CN112612731B (zh) * 2015-09-26 2024-09-03 英特尔公司 多芯片封装链路错误检测
DE112015006953T5 (de) 2015-09-26 2018-06-14 Intel Corporation Training einer gültigen lane
US10671476B2 (en) * 2015-09-26 2020-06-02 Intel Corporation In-band margin probing on an operational interconnect
GB2543745B (en) * 2015-10-15 2018-07-04 Advanced Risc Mach Ltd An apparatus and method for operating a virtually indexed physically tagged cache
US10198384B2 (en) 2016-03-01 2019-02-05 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
WO2018057039A1 (en) * 2016-09-26 2018-03-29 Hewlett-Packard Development Company, L. 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设备的时钟分离设计方法和系统
TWI610179B (zh) * 2016-12-07 2018-01-01 慧榮科技股份有限公司 主機裝置與資料傳輸速率控制方法
CN108170370B (zh) 2016-12-07 2021-01-26 慧荣科技股份有限公司 数据储存装置与数据传输速率控制方法
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
WO2019140049A1 (en) * 2018-01-10 2019-07-18 Lumeova, Inc. Method, devices and system for wireless communication channels 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
CN113039732A (zh) 2018-09-06 2021-06-25 诺基亚通信公司 Acqi解码置信度检测
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
US11940483B2 (en) 2019-01-31 2024-03-26 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
DE112020000640T5 (de) 2019-01-31 2021-11-25 Tektronix, Inc. Systeme, Verfahren und Vorrichtungen für Hochgeschwindigkeits-Eingangs-/Ausgangs-Margin-Tests
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
EP3723345A1 (de) * 2019-04-10 2020-10-14 ABB Schweiz AG Aggregationsserver und verfahren zur weiterleitung von knotendaten
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
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 三菱电机株式会社 光通信装置及通信系统
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
RU2738955C1 (ru) * 2019-11-27 2020-12-21 Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) Способ трёхкратного резервирования межсоединений
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
US20230081394A1 (en) * 2020-02-28 2023-03-16 Arizona Board Of Regents On Behalf Of Arizona State University A software-defined board support package (sw-bsp) for stand-alone reconfigurable accelerators
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
US12061562B2 (en) * 2020-05-29 2024-08-13 Netlist, Inc. Computer memory expansion device and method of operation
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 코딩 방법 및 장치
US12056029B2 (en) 2020-07-27 2024-08-06 Intel Corporation In-system validation of interconnects by error injection and measurement
US11360906B2 (en) * 2020-08-14 2022-06-14 Alibaba Group Holding Limited Inter-device processing system with cache coherency
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架构的聚焦超声治疗设备控制方法
US12061232B2 (en) 2020-09-21 2024-08-13 Tektronix, Inc. Margin test data tagging and predictive expected margins
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
TWI809570B (zh) 2020-11-24 2023-07-21 美商泰克特洛尼克斯公司 用於高速輸入/輸出裕度測試的系統、方法和裝置
US11489695B2 (en) 2020-11-24 2022-11-01 Qorvo Us, Inc. Full-duplex communications over a single-wire bus
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
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 인터페이스 장치 및 그 동작 방법
KR102518317B1 (ko) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US20220327074A1 (en) * 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
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
US12092689B2 (en) 2021-12-08 2024-09-17 Qorvo Us, Inc. Scan test in a single-wire bus circuit
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
CN115099356B (zh) * 2022-07-11 2024-08-09 大连理工大学 工业不平衡数据分类方法、装置、电子设备及存储介质
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
KR102712015B1 (ko) * 2024-01-03 2024-09-30 주식회사 메타씨앤아이 디스플레이 장치에 사용되는 직렬 인터페이스 회로 장치 및 이를 제어하는 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524234A (en) 1992-11-13 1996-06-04 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache including write-back latency control
US5644753A (en) 1995-03-31 1997-07-01 Sun Microsystems, Inc. Fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system

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
AU665521B2 (en) * 1990-10-03 1996-01-11 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
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
DE69628493T2 (de) * 1995-03-31 2004-05-19 Sun Microsystems, Inc., Santa Clara Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
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
US6345339B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
US6334172B1 (en) * 1998-02-17 2001-12-25 International Business Machines Corporation Cache coherency protocol with tagged state for modified values
US6141733A (en) * 1998-02-17 2000-10-31 International Business Machines Corporation Cache coherency protocol with independent implementation of optimized cache operations
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
US6430188B1 (en) * 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
ES2194287T3 (es) * 1998-09-30 2003-11-16 Cit Alcatel Metodo y disposicion para transicion entre un estado de baja potencia y un estado de plena otencia en un sistema de comunicacion.
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
WO2000074306A2 (en) 1999-05-28 2000-12-07 Basic Resources, Inc. Wireless transceiver network employing node-to-node data messaging
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
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit 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
US7596139B2 (en) * 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
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
US20030093632A1 (en) * 2001-11-12 2003-05-15 Intel Corporation Method and apparatus for sideband read return header in memory interconnect
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations 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
US7426597B1 (en) * 2003-05-07 2008-09-16 Nvidia Corporation Apparatus, system, and method for bus link width optimization of a graphics system
US7136953B1 (en) 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
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
US8606946B2 (en) * 2003-11-12 2013-12-10 Qualcomm Incorporated Method, system and computer program for driving a data signal in data interface communication data link
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
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
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
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
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
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
CN101902434A (zh) * 2004-04-30 2010-12-01 夏普株式会社 无线通信系统
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
US20060041696A1 (en) * 2004-05-21 2006-02-23 Naveen Cherukuri Methods and apparatuses for the physical layer initialization of a link-based system interconnect
US8046488B2 (en) 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
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 华为技术有限公司 导出和导入无线局域网鉴别与保密基础结构证书信息方法
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
US7543115B1 (en) * 2006-01-11 2009-06-02 Intel Corporation Two-hop source snoop based cache coherence protocol
US7512741B1 (en) * 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging 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
JP2010500641A (ja) * 2006-08-08 2010-01-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子装置及び通信同期方法
US7986718B2 (en) 2006-09-15 2011-07-26 Itron, Inc. Discovery phase 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
CN101715575A (zh) * 2006-12-06 2010-05-26 弗森多系统公司(dba弗森-艾奥) 采用数据管道管理数据的装置、系统和方法
WO2008087579A2 (en) * 2007-01-15 2008-07-24 Koninklijke Philips Electronics N.V. Method of generating low peak-to-average power ratio ( papr) binary preamble sequences for ofdm systems
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
KR20100018085A (ko) * 2007-05-08 2010-02-16 인터디지탈 테크날러지 코포레이션 피기백 긍정 ack/부정 ack 필드 표시자 및 폴링 표시자를 제공하기 위한 방법 및 장치
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
US20090063889A1 (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
WO2009108205A1 (en) 2008-02-29 2009-09-03 Hewlett-Packard Development Company, L.P. Modular system and retractable assembly for electronic devices
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
US9037768B2 (en) * 2008-04-28 2015-05-19 Hewlett-Packard Development Company, L.P. Virtual-interrupt-mode interface and method for virtualizing an interrupt mode
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 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
CN102210143B (zh) * 2008-09-08 2014-12-31 三星电子株式会社 设计用于接收移动/手持信号的数字电视接收机中的子频道获取
US9119165B2 (en) * 2009-09-10 2015-08-25 Nextnav, Llc Coding in a wide area positioning system (WAPS)
CA2736768A1 (en) * 2008-09-10 2010-03-18 Commlabs, Inc. Wide area positioning system
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 杭州华三通信技术有限公司 一种支持可变速率的方法和网络设备
US8300571B2 (en) * 2008-12-17 2012-10-30 Viasat, Inc. Start of frame correlation for physical layer header 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
KR101598093B1 (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 天际微芯(北京)科技有限公司 训练序列结构及训练方法
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
US8335911B2 (en) * 2009-05-21 2012-12-18 Oracle America, Inc. Dynamic allocation of resources in a threaded, heterogeneous processor
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
US8892820B2 (en) * 2010-03-19 2014-11-18 Netapp, Inc. Method and system for local caching of remote storage data
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 瑞昱半导体股份有限公司 一种用于信号传输的省电方法及装置
US8402295B2 (en) * 2010-07-09 2013-03-19 Qualcomm Incorporated Techniques employing flits for clock gating
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
US9104793B2 (en) * 2010-09-24 2015-08-11 Intel Corporation Method and system of adapting communication links to link conditions on a platform
US8751714B2 (en) 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
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
WO2013085501A1 (en) 2011-12-07 2013-06-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 东南大学 一种基于状态机的协议构造方法
US9875204B2 (en) 2012-05-18 2018-01-23 Dell Products, Lp System and method for providing a processing node with input/output functionality provided by an I/O complex switch
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
US8935578B2 (en) 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
US8996757B2 (en) * 2012-09-29 2015-03-31 Intel Corporation Method and apparatus to generate platform correctable TX-RX
US9003091B2 (en) 2012-10-18 2015-04-07 Hewlett-Packard Development Company, L.P. Flow control for a Serial Peripheral Interface bus
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9600431B2 (en) 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US9280507B2 (en) * 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
CN104380269B (zh) 2012-10-22 2018-01-30 英特尔公司 高性能互连相干协议
WO2014133527A1 (en) 2013-02-28 2014-09-04 Intel Corporation Leveraging an enumeration and/or configuration mechanism of one interconnect protocol for a different interconnect protocol
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
CN105765544B (zh) * 2013-12-26 2019-04-09 英特尔公司 多芯片封装链路
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524234A (en) 1992-11-13 1996-06-04 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache including write-back latency control
US5644753A (en) 1995-03-31 1997-07-01 Sun Microsystems, Inc. Fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112013002069B4 (de) Hohes Leistungsverbindungskohärenz-Protokoll
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
DE102018006756A1 (de) Beschleuniger-Fabric
DE112013007724B4 (de) System, vorrichtung und verfahren zur gemeinsamen benutzung von speicher und i/o-diensten zwischen knoten
DE112013001361B4 (de) System auf einem Chip, Verfahren, maschinenlesbares Medium und System für die Bereitstellung einer Snoop-Filterung zugeordnet mit einem Datenpuffer
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE112016007566T5 (de) Systeme, Verfahren und Vorrichtungen zur heterogenen Berechnung
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE102018006797A1 (de) Kohärente Speichereinrichtungen über PCIe
DE112017001825T5 (de) Prozessoren, verfahren, systeme und instruktionen zum atomischen speichern von daten, die breiter als eine nativ unterstützte datenbreite sind, in einem speicher
DE112017001148T5 (de) Abflachende portalbrücke .
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE112016006065T5 (de) Spekulative nummerierung von adressräumen für bus-einrichtungsfunktionen
DE112006002237T5 (de) Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112015006516T5 (de) BUS-Einrichtung-Funktion-Adressraumabbildung
DE102019109119A1 (de) Host-verwalteter kohärenter gerätespeicher
DE112012005700T5 (de) Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit
DE112017004897T5 (de) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition
DE102019132213A1 (de) Adressenübersetzung für skalierbare verlinkte Vorrichtungen
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung

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