DE112013002069T5 - Hohes Leistungsverbindungskohärenz-Protokoll - Google Patents
Hohes Leistungsverbindungskohärenz-Protokoll Download PDFInfo
- Publication number
- DE112013002069T5 DE112013002069T5 DE112013002069.6T DE112013002069T DE112013002069T5 DE 112013002069 T5 DE112013002069 T5 DE 112013002069T5 DE 112013002069 T DE112013002069 T DE 112013002069T DE 112013002069 T5 DE112013002069 T5 DE 112013002069T5
- Authority
- DE
- Germany
- Prior art keywords
- agent
- request
- memory
- state
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache 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)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/622—State-only directory, i.e. not recording identity of sharing or owning nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing 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
Description
- FELD
- Die gegenwärtige Enthüllung bezieht sich im Allgemeinen auf das Feld der Computerentwicklung, und mehr spezifisch zur Softwareentwicklung, die Koordination von gegenseitig-abhängigen gezwungenen Systemen einschließt.
- HINTERGRUND
- Fortschritte in der Halbleiter-Verarbeitung und Logikdesign haben eine Zunahme im Betrag der Logik erlaubt, die auf Geräten des integrierten Schaltkreises anwesend sein kann. Als eine Folgeerscheinung haben sich Computersystem-Konfigurationen von einzelnen oder vielfachen integrierten Schaltkreisen in einem System zu vielfachen Kernen, vielfachen Hardware-Fäden, und vielfacher logischer Verarbeiter-Gegenwart auf individuellen integrierten Schaltkreisen, sowie anderen innerhalb solcher Verarbeiter integrierten Schnittstellen entwickelt. Ein Verarbeiter oder integrierter Schaltkreis umfassen typisch einen einzelnen physischen Verarbeiter sterben, wo der Verarbeiter stirbt, kann jede Zahl von Kernen, Hardware-Fäden, logischen Verarbeitern, Schnittstellen, Gedächtnis, Kontrolleur-Mittelpunkten usw einschließen.
- Infolge der größeren Fähigkeit, mehr in einer Prozession gehende Macht in kleineren Paketen anzupassen, haben kleinere Rechengeräte in der Volkstümlichkeit zugenommen. Smartphones, Blöcke, ultradünne Notizbücher, und andere Benutzerausrüstung sind exponential gewachsen. Jedoch sind diese kleineren Geräte auf Servern sowohl für die Datenlagerung als auch Komplex vertrauensvoll, der bearbeitet, der den Form-Faktor überschreitet. Folglich hat die Nachfrage auf dem Hochleistungsrechenmarkt (d. h. Server-Raum) auch zugenommen. Zum Beispiel, in modernen Servern, gibt es typisch nicht nur einen einzelnen Verarbeiter mit vielfachen Kernen, sondern auch vielfache physische Verarbeiter (kennzeichnete auch als vielfache Steckdosen), die Rechenmacht zu vergrößern. Aber wie die in einer Prozession gehende Macht zusammen mit der Zahl von Geräten in einem Rechensystem wächst, wird die Kommunikation zwischen Steckdosen und anderen Geräten kritischer.
- Tatsächlich sind Verbindungen von traditionelleren Multifall-Bussen gewachsen, die in erster Linie elektrische Kommunikationen zu vollen geblasenen Verbindungsarchitekturen behandelten, die schnelle Kommunikation erleichtern. Leider, als die Nachfrage nach zukünftigen Verarbeitern, um sich an sogar höheren Raten zu verzehren, die entsprechen, wird Nachfrage auf den Fähigkeiten zu vorhandenen Verbindungsarchitekturen gelegt.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
15 –17 illustrieren Darstellungen von Beispiel-Protokoll-Zustandtischen. -
-
-
-
- Wie Kennziffern und Benennungen in den verschiedenen Zeichnungen zeigen wie Elemente an.
- Detaillierte Beschreibung
- In der folgenden Beschreibung werden zahlreiche spezifische Details hervor, wie Beispiele von spezifischen Typen von Verarbeitern und System-Konfigurationen, spezifischen Hardware-Strukturen, spezifischen architektonischen und architektonischen Mikrodetails, spezifischen Register-Konfigurationen, spezifischen Instruktionstypen, spezifischen System-Bestandteilen, spezifischen Verarbeiter-Rohrleitungsstufen, spezifischen Verbindungsschichten, spezifischen Konfigurationen des Pakets/Transaktion, spezifischen Transaktionsnamen, spezifischem Protokoll-Austausch, spezifische Verbindung widths, spezifische Erfüllungen, und Operation usw. gesetzt, um ein gründliches Verstehen der gegenwärtigen Erfindung zur Verfügung zu stellen. Das kann jedoch zu einem erfahrenem in der Kunst offenbar sein, dass diese spezifischen Details nicht notwendigerweise verwendet zu werden brauchen, um den Gegenstand der gegenwärtigen Enthüllung zu üben. In anderen Beispielen gut ist das Detaillieren von bekannten Bestandteilen oder Methoden, wie spezifische und alternative Verarbeiter-Architekturen, spezifische Logikstromkreise/Code für beschriebene Algorithmen, spezifischen Firmware-Code, auf niedriger Stufe Verbindungsoperation, spezifische Logikkonfigurationen, spezifische Produktionstechniken und Materialien, spezifische Bearbeiter-Erfüllungen, spezifischer Ausdruck von Algorithmen im Code, spezifische Macht unten und gating Techniken/Logik und andere spezifische betriebliche Details des Computersystems vermieden worden, um unnötigerweise zu vermeiden, die gegenwärtige Enthüllung zu verdunkeln.
- Obwohl die folgenden Verkörperungen bezüglich der Energiebewahrung, Energieleistungsfähigkeit beschrieben werden können, Leistungsfähigkeit, und so weiter in spezifischen integrierten Schaltkreisen, wie in Rechenplattformen oder Mikroprozessoren bearbeitend, sind andere Verkörperungen auf andere Typen von integrierten Schaltkreisen und Logikgeräten anwendbar. Ähnliche Techniken und Lehren von Verkörperungen beschrieben können hierin auf andere Typen von Stromkreisen oder Halbleiterbauelementen angewandt werden, die auch aus solchen Eigenschaften einen Nutzen ziehen können. Zum Beispiel, werden die bekanntgegebenen Verkörperungen auf das Server-Computersystem, Tischcomputersysteme, Laptops, ultrabuch; nicht beschränkt, aber können auch in anderen Geräten, wie tragbare Geräte, smartphones, Blöcke, andere dünne Notizbücher, Systeme auf einem Span (SOC) Geräte, und eingebettete Anwendungen verwendet werden. Einige Beispiele von tragbaren Geräten schließen Autotelefone, Internetprotokoll-Geräte, Digitalkameras, persönliche Digitalhelfer (PDAs), und tragbare PCs ein. Hier können ähnliche Techniken für eine Hochleistungsverbindung angewandt werden, um Leistung zu vergrößern (oder sogar Macht) in einer niedrigen Macht-Verbindung zu sparen. Eingebettete Anwendungen schließen typisch einen Mikrokontrolleur, ein Digitalsignalverarbeiter (DSP), ein System auf einem Span ein, vernetzen Computer (NetPC), Satz-Spitzenkästen, vernetzen Mittelpunkte, breites Bereichsnetz (BLASSE) Schalter, oder jedes andere System, das die Funktionen und Operationen unterrichtet unten durchführen kann. Außerdem werden der Apparat, Methoden, und Systeme beschrieben hierin auf physische Rechengeräte nicht beschränkt, aber können sich auch auf Softwareoptimierungen für die Energiebewahrung und Leistungsfähigkeit beziehen. Als sogleich offenbar in der Beschreibung unten, die Verkörperungen von Methoden, Apparat werden kann, und Systeme beschrieben hierin (ob in der Verweisung auf die Hardware, firmware, Software, oder eine Kombination davon) lebenswichtig für eine 'grüne Technologie' mit Leistungsrücksichten erwogene Zukunft betrachtet werden können.
- Wie Rechensysteme vorwärts gehen, werden die Bestandteile darin komplizierter. Die Verbindungsarchitektur, um sich zu paaren und zwischen den Bestandteilen zu kommunizieren, hat auch in der Kompliziertheit zugenommen, um sicherzustellen, dass Bandbreite-Nachfrage für die optimale Teiloperation befriedigt wird. Außerdem fordern verschiedene Marktsegmente verschiedene Aspekte von Verbindungsarchitekturen, um dem jeweiligen Markt anzupassen. Zum Beispiel, verlangen Server höhere Leistung, während das bewegliche Ökosystem manchmal im Stande ist, gesamte Leistung für Macht-Ersparnisse zu opfern. Und doch ist es ein einzigartiger Zweck von den meisten Stoffen, höchstmögliche Leistung mit dem maximalen Macht-Sparen zu versorgen. Weiter kann eine Vielfalt von verschiedenen Verbindungen aus Gegenstand beschrieben hierin potenziell einen Nutzen ziehen. Zum Beispiel, kann die Peripherische Teilverbindung (PCI) Schnellzug (PCIe) Verbindungsstoff-Architektur und QuickPath-Verbindung (QPI) Stoff-Architektur, unter anderen Beispielen, gemäß einem oder mehr Grundsätzen beschrieben hierin unter anderen Beispielen potenziell verbessert werden.
-
100 schließt Verarbeiter105 und System-Gedächtnis110 verbunden mit dem Kontrolleur-Mittelpunkt115 ein. Verarbeiter105 kann jedes in einer Prozession gehende Element, wie ein Mikroprozessor, ein Gastgeber-Verarbeiter, ein eingebetteter Verarbeiter, ein Coprozessor, oder anderer Verarbeiter einschließen. Verarbeiter105 wird mit dem Kontrolleur-Mittelpunkt115 durch den Vorderseite-Bus (FSB)106 verbunden. In einer Verkörperung ist FSB106 eine Serienverbindung des Punkts-zu-Punkt, wie beschrieben, unten. In einer anderen Verkörperung, verbinden Sie sich106 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 System100 ein. System-Gedächtnis110 wird mit dem Kontrolleur-Mittelpunkt115 durch die Speicherschnittstelle116 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-Mittelpunkts115 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 Verarbeiter105 einschließen, während Kontrolleur115 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 Wurzelkomplex115 fakultativ unterstützt. - Hier wird Kontrolleur-Mittelpunkt
115 verbunden, um120 durch die Serienverbindung119 umzuschalten zu/überbrücken. Module des Eingangs/Produktion117 und121 , der auch Schnittstellen/Häfen117 und121 genannt werden kann, können einen layered Protokoll-Stapel einschließen/durchführen, um Kommunikation zwischen dem Kontrolleur-Mittelpunkt115 zur Verfügung zu stellen und120 umzuschalten. In einer Verkörperung sind vielfache Geräte dazu fähig, verbunden zu werden, um120 umzuschalten. - Schalten Sie
120 Weg-Pakete/Nachrichten vom Gerät125 stromaufwärts, d. h. eine Hierarchie zu einem Wurzelkomplex, zum Kontrolleur-Mittelpunkt115 und stromabwärts, d. h. unten eine Hierarchie weg von einem Wurzelkontrolleur, vom Verarbeiter105 oder System-Gedächtnis110 zum Gerät125 um/überbrücken Sie. Schalten Sie120 , in einer Verkörperung, wird einen logischen Zusammenbau von vielfachen virtuellen PCI-To-PCI-Brücke-Geräten genannt. Gerät125 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ät125 eine Brücke (z. B, ein PCIe zur PCI/PCI-X-Brücke) einschließen kann, um Vermächtnis oder andere Versionen von Geräten oder durch solche Geräte unterstützten Verbindungsstoffen zu unterstützen. - Graphikgaspedal
130 kann auch mit dem Kontrolleur-Mittelpunkt115 durch die Serienverbindung132 verbunden werden. In einer Verkörperung wird Graphikgaspedal130 mit einem MCH verbunden, der mit einem ICH verbunden wird. Schalten Sie120 , und entsprechend Eingabe/Ausgabe-Gerät125 um, wird dann mit dem ICH verbunden. Eingabe/Ausgabe-Module131 und118 sollen auch einen layered Protokoll-Stapel durchführen und vereinigten Logik, um zwischen dem Graphikgaspedal130 und Kontrolleur-Mittelpunkt115 zu kommunizieren. Ähnlich der MCH Diskussion oben können ein Graphikkontrolleur oder das Graphikgaspedal130 sich selbst in den Verarbeiter105 integriert werden. - Sich
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-Stapel200 Transaktionsschicht205 , Verbindungsschicht210 , und physische Schicht220 einschließen. Eine Schnittstelle, wie Schnittstellen117 ,118 ,121 ,122 ,126 , und131 in der200 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 Datenverbindungsschicht210 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 Schicht220 Darstellung zur Datenverbindungsschicht210 Darstellung und schließlich (für Transaktionsschicht-Pakete) zur Form umgestaltet, die durch die Transaktionsschicht205 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 Datenverbindungsschicht210 und Physische Schicht220 zur Verfügung stellen. In dieser Beziehung kann eine primäre Verantwortung der Transaktionsschicht205 den Zusammenbau und Zerlegung von Paketen (d. h., Transaktionsschicht-Paketen, oder TLPs) einschließen. Die Übersetzungsschicht205 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-Mittelpunkt115 in der - 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/Nutzlast206 sammeln. - Schnell sich auf die
300 ein Mechanismus sein, um Transaktionsinformation zu tragen. In dieser Beziehung, Transaktionsdeskriptor300 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 Transaktionsdeskriptor300 globales Bestimmungskennzeichnen302 , Attribut-Feld304 und Kanalbestimmungskennzeichnen306 einschließen. Im illustrierten Beispiel wird globales Bestimmungskennzeichnen302 gezeichnet, lokales Transaktionsbestimmungskennzeichnen308 und Quellbestimmungskennzeichnen310 umfassend. In einer Verkörperung ist globaler Transaktionsbezeichner302 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 Quellbezeichner310 einzigartig den requestor Agenten innerhalb einer Verbindungshierarchie. Entsprechend, zusammen mit dem Quellpersonalausweis310 , lokaler Transaktionsbezeichner stellt308 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-Feld304 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-Feld304 Vorzugsfeld312 ein, bestellte Feld314 vor, Feld316 , und Feld ohne Schnüffelei318 bestellend. Hier kann Vorzugssubfeld312 von einem Initiatoren modifiziert werden, um einen Vorrang der Transaktion zuzuteilen. Vorbestelltes Attribut-Feld314 wird vorbestellt für die Zukunft, oder von Verkäufer definierten Gebrauch verlassen. Mögliche Gebrauch-Modelle, die Vorrang oder Sicherheitsattribute verwenden, können durchgeführt werden, das vorbestellte Attribut-Feld verwendend. - In diesem Beispiel, Attribut-Feld
316 bestellend, wird verwendet, um fakultative Information zu liefern, die den Typ der Einrichtung befördert, die Verzug modifizieren kann, der Regeln bestellt. Gemäß einer Beispiel-Erfüllung zeigt ein Einrichtungsattribut '0' Verzug an, der befiehlt, dass Regeln sind zu gelten, worin ein Einrichtungsattribut '1' die entspannte Einrichtung anzeigt, worin schreibt, kann gehen schreibt in derselben Richtung, und Vollziehungen lesen, kann gehen schreibt in derselben Richtung. Schnüffelei-Attribut-Feld318 wird verwertet, um zu bestimmen, ob Transaktionen herumgeschnüffelt werden. Wie gezeigt, identifiziert Kanalpersonalausweis-Feld306 einen Kanal, mit dem eine Transaktion vereinigt wird. - In die Diskussion der
210 , auch gekennzeichnet als Datenverbindungsschicht210 , als eine Zwischenbühne zwischen der Transaktionsschicht205 und der physischen Schicht220 handeln. In einer Verkörperung verbindet sich eine Verantwortung der Daten Schicht210 stellt einen zuverlässigen Mechanismus zur Verfügung, um Transaktionsschicht-Pakete (TLPS) zwischen zwei Bestandteilen auf einer Verbindung auszutauschen. Eine Seite der Datenverbindungsschicht210 akzeptiert TLPs gesammelt durch die Transaktionsschicht205 , wendet Paket-Folge-Bezeichner211 , d. h. eine Kennnummer oder Paket-Zahl an, berechnet und wendet einen Fehlerentdeckungscode an, d. h. CRC212 , und legt den modifizierten TLPs der Physischen Schicht220 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-Block221 und elektrischen Subblock222 ein, um ein Paket einem Außengerät physisch zu übersenden. Hier ist logischer Subblock221 für die 'Digital'-Funktionen der Physischen Schicht221 verantwortlich. In dieser Beziehung kann der logische Subblock eine übersenden Abteilung einschließen, um weggehende Information auf die Übertragung durch den physischen Subblock222 , und eine Empfänger-Abteilung vorzubereiten, um zu identifizieren und erhaltene Information vor dem Übergang davon zur Verbindungsschicht210 vorzubereiten. - Physical Block
222 enthält einen Sender und einen Empfänger. Der Sender wird von logischen Unterblöcken221 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öcken221 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 Rahmen223 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 Layer210 und physikal Layer220 im Bezug auf spezifisch Ausführungsform des Protokollstacks (wie ein PCIe Protokollstack) diskutiert, aber der überlagerte Protokollstack ist nicht so begrenzt. Tatsächlich irgendein überlagerte Protokollstack kann hier enthaltet/durchgeführt oder übergenommen. Als Beispiel, ein Port oder ein Interface, das wie ein überlagerte Protokollstack presentiert wird, kann enthalten: ein erste Layer, um die Pakete zu montieren, d. h ein Transaktionsschicht, ein zweite Layer, um die Pakete zusammenzupressen, d. h. ein Link Layer und ein dritte Layer, um die Pakete zu übermitteln, d. h Physikal Layer. Als eine spezifische Beispiel, ein hochleistungsfähige verbindene überlagerte Protokoll verwendet, wie hier diskutiert wird. - Bezüglich zu dem Bild 4, ein Beispiel Ausführungsform der seriellen Punkte zu Punkte Gewebe illustriert. Ein seriellen Punkte zu Punkte Link kann Überragungsweg enthalten, um seriellen Daten zu übermitteln. Im gezeigt Ausführungsform, ein Link kann enthalten: zwei Niederspannung, unterschiedliche angetriebene Signal paare, also ein übermittelte Paar
406 /411 und ein erhaltene Paar412 /407 . Entsprechend, das Gerät405 enthält Übertragungslogic406 , um die Daten zum Gerät410 zu übermitteln und enthalten Logic407 , um die Daten vom Gerät410 zu erhalten. In anderen Wörter, zwei Übertragungswege d. h Wege416 und417 und zwei Erhaltendewege d. h Wege418 und419 , 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 und410 Geräte, sind als ein Link bezeichnet, z. B. der Link415 . 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 und417 , um unterschiedliche Signale zu übermitteln. Als ein beispeil, wenn eine Linie416 aus einer Niederspannungs Niveau schaltet, d. h ein erhöhende Flanke, Linie417 von hohe bis niedrige Niveau geführt, d. h. fallenden Flanke. Unterschiedliche Signalle können potenziel demonstrieren besser elektrische Geräte, z. B. bessere Signalle Integrität, d. h Überkopplung, Unterschwingung oder Überschwingung der Spannung, klingeln, und andere vorteile. Dieses berücksichtigen besser Zeit Fenster, die schneller Übertragung ermöglichen. - In einer Ausführungform, ein neue Hohe Leistunge Verbinder (HPI) wird anbietet. HPI kann eine neue Generation Cache Kohärent Link basierte verbindet enhalten. Als Beispiel, HPI can in hohe Leistungfähige EDV Plattform, wie z. B. Arbeitsplätze oder Server, weden in Systems enthalten, wo PCIe oder andere verbindete Protokoll werden typisch benutzt, um die prozessoren, Beschleuniger, I/O Geräte zu verbinden. Jedoch, HPI ist nicht so begrenzt. HPI wird in irgendein System oder Plattform verwendet. Weiter die individuelle Ideen entwickelt kann zu dieser Verbinderen und Plattformen z. B. PCIe, MIPI, QPI, usw gelten
- Um mehrerer Geräte zu unterstützen, HPI kann einer Befehlssatzarchitektur umfassen (ISA) Agnostiker (dh HPI ist in der Lage, in mehreren unterschiedlichen Geräten durchgeführt werden). In einem anderen Szenario kann HPI auch genutzt werden, um hohe Leistungsfähige/O-Geräte zu verbinden, und nicht nur Prozessoren oder Beschleuniger. Zum Beispiel kann ein Hochleistungs PCIe-Gerät zu HPI durch eine entsprechende Übersetzung Brücke gekoppelt werden (dh HPI auf PCIe). Darüber hinaus können die Verbindungen von vielen HPI HPI-basierte Geräte, wie beispielsweise Prozessoren, auf verschiedene Weise (zum Beispiel Sterne, Ringe, Gitter, etc.) verwendet werden. Bild 5 lautet beispielsweise Implementierungen von mehreren potentiellen Multi-Sockel-Konfigurationen. Ein Zwei-Sockel-Konfiguration
505 , wie dargestellt, kann zwei HPI Links enthalten; In anderen Implementierungen kann eine HPI Link verwendet werden. Für größere Topologien kann jede Konfiguration so lange wie ein Bezeichner (ID) verwendet wird und es gibt eine Form des virtuellen Weg, unter anderen zusätzlichen oder Ersatzfunktionen verwendet werden. Wie in einem Beispeil gezeignet ist, ein vier Buchsenkonfiguration510 hat eine HPI Verbindung von jedem Prozessor zu einem anderen. Aber im acht Socket-Implementierung in der Konfiguration515 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 Paketen630 , Verbindungsschicht610a , b mit huscht635 , und der physikalischen Schicht605a , b mit Phits640 ). 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 phit640 20 Bit breit ist und die Größe der Flit635 184 Bits ist, dann dauert es eine Bruchzahl von Phits640 ein Flit635 zu senden (zB 9,2 Phits 20 zu übertragenden Bits eine 184-Bit-Flit635 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 Verbindungsschicht610a , in der Lage ist, b Einbetten mehrere Stücke unterschiedlicher Transaktionen in einem Flit und einen oder mehrere Header (zB 1, 2, 3, 4) innerhalb des Flit eingebettet werden. In einem Beispiel spaltet HPI die Header in entsprechende Schlitze, um mehrere Nachrichten in dem Flit für verschiedene Knoten bestimmt aktivieren. - Physical Layer
605a , b, in einer Ausführungsform kann für die schnelle Übertragung von Informationen auf dem physikalischen Medium (elektrisch oder optisch usw.) verantwortlich. Die physikalische Verbindung kann Punkt-zu-Punkt zwischen zwei Schichtinstanzen, wie Schicht605a und605b sein. Die Verbindungsschicht610a , b abstrahieren kann die physikalische Schicht605a , 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 Protokollschicht620a , b beruht auf der Sicherungsschicht610a , b, um Protokoll-Nachrichten in die entsprechenden Meldeklassen und virtuelle Kanäle vor der Übergabe an die physikalische Schicht605a , 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 Layer610a , 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 Layer605a , 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 Schicht605a , b von der Protokollebene620a , 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 Protokollebene620a , b und der Sicherungsschicht610a , 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 Verbindungsschicht610ab beruht auf dem Physical Layer605a , b der Physical Layer zentrieren605a , b Einheit Umladen (Phit) in der Sicherungsschicht610a , b Einheit der Übertragung (Flit). Darüber hinaus, die Link-Layer610a , 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-Schicht615a , setzt b auf der Sicherungsschicht610a , b für die Bereitstellung der Einsatz von bis zu drei (oder mehr) virtuelle Netzwerke (VNs) – bei einem Beispiel, zwei Deadlock-freie VNs, VNO und VN1 mit mehreren Nachrichtenklassen in jedes virtuelle Netzwerk definiert. Ein gemeinsames Adaptives virtuelles Netz (VNA) kann in der Link-Ebene definiert werden, aber diese adaptive Netzwerk kann nicht direkt im routing-Konzepte, ausgesetzt werden, da jede Nachrichtenklasse und virtuelles Netzwerk kann dedizierte Ressourcen und garantiert Fortschritt, neben anderen Funktionen und Beispiele. - In einer Ausführungsform zählen HPI eine Kohärenz Protokollschicht
620a , b, Agenten, die Zwischenspeicherung von Zeilen mit Daten aus dem Speicher zu unterstützen. Vermittler wollen Cache-Speicherdaten kann das Kohärenz-Protokoll verwenden, um die Zeile von Daten in den Cache geladen zu lesen. Vermittler wollen eine Reihe von Daten im Cache zu ändern kann das Kohärenz-Protokoll verwenden, um Besitz der Linie zu erwerben, bevor Sie die Daten ändern. Nach dem Ändern einer Zeile, kann ein Agent Protokollanforderungen im Cache zu halten, bis es entweder die Zeile wieder in den Speicher schreibt oder die Zeile in einer Antwort auf eine externe Anforderung enthält folgen. Schließlich kann ein Agent externe Anforderungen eine Linie in seinem Cache ungültig erfüllen. Das Protokoll sorgt Kohärenz der Daten durch diktieren die Regeln, die alle Cache Agenten folgen können. Darüber hinaus Mittel für Agenten ohne Caches zusammenhängend lesen und Schreiben von Speicherdaten. - Zwei Bedingungen können geltend gemacht werden, um Transaktionen, die mit dem HPI-Kohärenz-Protokoll unterstützen. Erstens kann das Protokoll Datenkonsistenz, beispielsweise auf einer Basis pro Adresse unter Daten in Agenten-Caches und zwischen diesen Daten und die Daten im Arbeitsspeicher beibehalten. Informell, Datenkonsistenz steht für jede gültige Zeile der Daten in ein Agent-Cache für eine aktuelle Zahl der Daten und in eine Kohärenz Protokollpaket übertragenen Daten können den aktuelle Wert der Daten darstellen, an die Zeit, die sie gesendet wurde. Wenn keine gültige Kopie der Daten im Cache oder in Übersetzung vorhanden ist, kann das Protokoll stellen Sie sicher, dass der aktuelle Wert der Daten im Arbeitsspeicher befindet. Zweitens kann das Protokoll wohldefinierten Engagement Punkte für Anforderungen stellen. Engagement Punkte für Lesevorgänge können darauf hinweisen, wenn die Daten verwendet werden kann; und schreibt sie möglicherweise anzugeben, wenn die geschriebenen Daten weltweit beobachtbaren ist und durch nachfolgende Lesevorgänge geladen werden. Das Protokoll kann diese Verpflichtung-Punkte für zwischengespeichert werden und speicherbar (UC) Anforderungen im zusammenhängenden Speicherbereich unterstützen.
- Das HPI-Kohärenz-Protokoll kann auch den Fortschritt der Kohärenz Anforderungen von einem Agenten an eine Adresse in den zusammenhängenden Speicherplatz sorgen. Sicherlich können Transaktionen schließlich zufrieden und zog für ordnungsgemäße Systembetrieb. Das HPI-Kohärenz-Protokoll, haben einige Verkörperungen, keine Ahnung ”Wiederholen” zum Auflösen von Ressourcenkonflikten Zuweisung. So, das Protokoll selbst kann definiert werden, um keine zirkuläre Abhängigkeiten enthalten, und Implementierungen können in ihren Entwürfen Abhängigkeiten nicht einzuführen, die zu Deadlocks führen können kümmern. Darüber hinaus kann das Protokoll darauf hinweisen, wo die Entwürfe zu fairen Zugang zu Ressourcen zu leisten imstande sind.
- Logisch, das HPI-Kohärenz-Protokoll in einer Ausführungsform, zählen drei Elemente: Kohärenz(oder Zwischenspeichern)-Agents, home-Agents und der HPI interconnect Stoff verbinden die Agenten. Kohärenz und home Agents können zusammenarbeiten, um die Datenkonsistenz zu erreichen durch den Austausch von Nachrichten über die Verbindung. Die Verbindungsschicht
610a , b und die zugehörige Beschreibung bieten die Details der Interconnect-Stoff darunter wie es hält sich an das Kohärenz-Protokoll-Anforderungen, hierin diskutiert. (Es sei darauf hingewiesen, dass die Einteilung in Kohärenz und home Agents aus Gründen der Übersichtlichkeit ist. Eine Design kann enthalten mehrere Agenten beider Typen in einen Sockel oder sogar Agenten Verhaltensweisen zu einer einzigen Design-Einheit, unter anderen Beispielen kombinieren.) - In einem Beispiel können Heimagenten gestaltet werden, physische Erinnerung zu schützen. Jeder Heimagent ist verantwortlich für ein Gebiet des zusammenhängenden Speicherplatzes. Gebiete nicht-überlappen, in, dass eine einzelne Adresse von einem Heimagenten geschützt wird. Zusammen bedecken die Heimagentgebiete in einem System den zusammenhängenden Speicherplatz. Zum Beispiel kann jede Adresse von wenigstens einem Heimagenten geschützt werden. Daher in einer Verkörperung, kann jede Adresse in eines HPI Systems dem zusammenhängenden Speicherplatz zu genau einem Heimagenten aufzeichnen.
- Hausagenten im HPI Kohärenz-Protokoll, in einer Verkörperung, können dafür verantwortlich sein, Bitten zum zusammenhängenden Speicherraum zu bedienen. Für gelesen (Rd) Bitten können Hausagenten Schnüffeleien (Snp) erzeugen, ihre Antworten bearbeiten, eine Datenantwort senden, und eine Vollziehungsantwort senden. Für die Aufhebung (Inv) bittet, Hausagenten können notwendige Schnüffeleien erzeugen, ihre Antworten bearbeiten, und eine Vollziehungsantwort senden. Dafür schreiben Bitten, Hausagenten können die Daten auswendig lernen und eine Vollziehungs antwort senden.
- Hausagenten können Schnüffeleien im HPI Kohärenz-Protokoll zur Verfügung stellen und Schnüffelei-Antworten von Kohärenz-Agenten bearbeiten. Hausagenten können auch vorwärts Bitten bearbeiten, die eine spezielle Schnüffelei-Antwort von Kohärenz-Agenten für die Konfliktentschlossenheit sind. Wenn ein Hausagent eine Vorwärts bitte erhält, kann es eine Vorwärtsantwort auf den Kohärenz-Agenten senden, der die Vorwärts bitte erzeugte (d. h., der Agent, der eine widerstreitende Schnüffelei-Bitte entdeckte). Kohärenz-Agenten können die Einrichtung dieser Vorwärtsantworten und Vollziehungsantworten vom Hausagenten verwenden, um Konflikte aufzulösen.
- Ein Verständlichkeitsagent darf unterstützte Verständlichkeitsprotokollbitten ausgeben. Bitten dürfen zu einer Adresse im zusammenhängenden Speicherplatz ausgegeben werden. Daten haben für Vorlesungsbitten (Rd) außer RdCur darf sein gleichmäßig empfangen. Daten für RdCur Bitten dürften gleichmäßig gewesen sein, als das Datenpaket erzeugt wurde (obwohl es veraltet während Lieferung) geworden sein dürfte. Stellen Sie 1 Schau eine vorbildliche, nicht-ausführliche Liste des Potentials unterstützte Bitten zurück: TABELLE 1
Name Semantik Cachestatus Rdcode fordern Sie ein Cachezeile F oder S-Zustand an. F oder S RdDaten fordern Sie eine Cachezeile E, F oder S Zustand an. F oder S RdMiger fordern Sie eine Cachezeile M, E, F oder S Zustand an. M und (F oder S) RdInv fordern Sie eine Cachezeile E Zustand an. Wennzeilezuvorim M-Zustandzwischengespeicherwurde, Geschrieben die zieleSpeichervor E Datengeliefert E RdInvOwn fordern Sie ein Cachezeile M oder E-Zustand an. M RdCur fordern Sie ein CachezeilespeicherbarSchnappschuss. InvItoE Fordern Sie den exklusiven Besitz an eine Cachezeile ohne Datenempfangt an. M oder E InvItoM Fordern Sie den exklusiven Besitz an eine Cachezeile ohne Datenempfangt und Rückschreiben bald darauf ausführen an. M oder E InvXtoI Aus allen Caches spüleneine Cachezeile und erlischt die zeile in seinem Cache vor dieser Anforderung ausgegeben. WbMtoI Schreiben Sie eine Cachezeile in M Zustand zurück in den Speicher und die zeile im Cache ungültig. M WbMtoS Schreiben Sie eine Cachezeile M Zustand zurück in den Speicher und Übergangzu S-Zustand M oder S WbMtoE Schreiben Sie eine Cachezeile in M Zustand zurück in den Speicher und Übergangzu E Zustand M oder E WbMtoIPtl Schreiben Sie eine Cachezeile in M Zustand zurück in den Speichernach eine Byt e-Enable-Maske, und Übergang zu I-Zustand M WbMtoEPtl Schreiben Sie eine Cachezeile in M Zustand zurück in den Speichernach eine Byt e-Enable-Maske und übergehen Sie ziele E Zustand, und deaktivieren Sie die ziele im Cache. M oder E EvctCIn Mitteilung an die home-Agent, dass ein Cache in E Status Zeile wurde im Cachefürungültigerklärt. E WbPushMtoI SchickenSieeine ziele in M zustandhome Agent und die Linie im Cache für ungültigerklären; Home-Agent kann entweder die Zeile in Speicher zurückschreiben oderschicken Sie es an einen lokalen Cache-Agent mit M Zustand. M WbFlush Fordern SiespulenUmsetzungspezifischer Adressen in derSpeicherhierarchie schreibt an. Keine Daten ist mit der Anforderung gesendet. - HPI kann einen Kohärenz-Protokoll unter Nutzung der Grundsätze das MESI-Protokoll unterstützen. Jeder Cachezeile kann mit einem oder mehreren unterstützten Zuständegekennzeichnet warden. Ein ”M” oder ”Modified” Zustand kann auf die Cache Zeilenwert von diesem Wertgeändert wurde, in den Hauptspeicher hinweisen. Eine Linie in den M Zustand ist nur in besonderen und der entsprechenden Cache-Agenten kann die geändertenDaten zurück in den Speicher zu einem bestimmten Zeitpunkt in der Zukunftbeispielsweise schreiben bevor es ermöglicht jede andere Lesen des Maing (nichtmehr gültig) Speicherzustands verpflichtet werden. Ein Rückschreiben kann die Strecke von den M-Zustand in den E-Zustand wechseln. ”E” oder ”Exklusiv” Zustand kann angeben, dass die Cache-Line nur im aktuellen Cache vorhanden ist, sondern, dass der Wert im Hauptspeicher entspricht. DieCachezeile in E-Zustand kann der Übergang zur S-Zustand jederzeit alsReaktion auf eine Leseanforderung oder schriftlich an die Linie in den M-Status geändert werden. Die ”S” oder ”Shared” Zustand kann zeigt, dass die Cachezeile in anderen Caches der Maschine gespeichert werden kann und einen Wert hat, der der Hauptspeicher entspricht. Die Linie (geänderte an den Staat) verworfen werden kann zu jeder Zeit. Das ”Ich” oder ”Invalid” zustand kann bedeuten, dass eine Cachezeile ungültig oderunbenutzt ist. Anderen Staates können auch in unterstützte HPI, wie ein ”F” oder ”Forward” Freigabezustand, der angibt, dass der freigegebenen Zeilenwert ananderen Caches weitergeleitet werden, die auch die Zeile, unter anderen Beispielenzu teilen.
- Tabelle 2 beispielhafte Informationen enthalten, die in einigen Kohärenz-Protokollnachrichten eingefügt werden kann, einschließlich Snoop, Lese- undSchreibanforderungen, unter anderen Beispielen: TABELLE 2
Feld Nutzung cmd Nachricht-Befehl (oder Name oder Opcode) addr Adresse einer kohärenten Cache-Linie. destNID Knoten ID (NID) Ziel (Home oder Kohärenz) Agent. reqNID NID Kohärenz Agent anzufordern peerNID NID der Kohärenz-Agent, der die (vordere-Anforderungsnachricht) gesendet. reqTIDI ID der Ressource zugewiesen vom anfordernden Agent für dieTransaktion, auch bekannt als RTID (oder Transaktions-ID anfordern). HomeTID ID der Ressource von den home-Agent zum Verarbeiten derAnforderung, auch bekannt als HTID (oder Startseite Transaktions-ID) zugeordnet. data Eine Cachezeile Daten. mask Byte-Maske, um die Daten zu qualifizieren. - Snoop-Nachrichten können von home Agents generiert und auf KohärenzAgenten gerichtet werden. Ein virtuellen Kanal von Snoop (SNP) eignet sich für Schnüffler und in einer Ausführungsform sind die nur Nachrichten, die denvirtuellen SNP-Kanal verwenden. Schnüffler zählen der anfordernden Agent NIDund RTID, die er für die Anforderung zugeordnet, für den Fall, dass Snoop direktan den anfordernden Agent gesendeten Daten führt. Snoops, können in einer Ausführungsform, die von den home-Agent zumVerarbeiten der Anforderung zugeordneten HTID auch. Verarbeitung SnoopKohärenz-Agent kann die HTID die Snoop-Antwort enthalten, die es zurück anden home-Agent sendet. Schnüffler können in einige Instanz den home-AgentNID sind nicht da es enthalten Adresse, die der gezielten Kohärenz-Agent führtabgeleitet werden bei seiner Antwort zu senden. Fanout-Schnüffler (die mit”SnpF” Präfix) kein Ziel NID enthalten, da die Routing-Ebene fürdie Generierung der entsprechenden Snoop-Nachrichten an alle Peers in der Fan out-Region zuständig ist. Ein Snoop Kanalnachrichten beispielhaft aufgeführtist Tabelle 3: TABELLE 3:
Befehl Semantik Feld SnpCode Snoop, Daten in F oder S-Zustand zu erhalten. cmd, addr, destNID reqNID, reqTID, homeTID SnpData Snoop, Daten in E, F oder S-Zustand zu erhalten. SnpMigr Snoop, Daten in M, E, F oder S-Zustand zu erhalten. Snpinv Snoop, Peercache Spülung jede M-Kopie in den Speicher zu entkräften. SnpInvOwn Snoop, Daten in M oder E Zustand zu erhalten. SnpCur Snoop einen speicherbar Snapshot einer Cache-Linie zu erhalten. SnpFCode Snoop, Daten in F oder S-Zustand zu erhalten; Routing Schicht, Verteilung an alle Fanout-Peers zu behandeln cmd, addr, reqNID, reqTID, homeTID SnpFData Snoop, Daten in E, F oder S-Zustand zu erhalten; Routing Schicht, Verteilung analle Fanout-Peers zu behandeln SnpFMigr Snoop, Daten in M, E, F oder S-Zustand zu erhalte n; Routing Schicht, Verteilungan alle Fanout-Peers zu behandeln SnpFInvown Snoop, Daten in M oder E Zustand zu erhalten; Routing Schicht, Verteilung analle Fanout-Peers zu behandeln. SnpFIvn Snoop, Peercache Spülung jede M-Kopie in den Speicher zu entkräften; RoutingSchicht, Verteilung an alle Fanout-Peers zu behandeln. SnpCur Snoop einen speicherbar Snapshot einer Cache-Li nie zu erhalten; Routing Schicht, Verteilung an alle Fanout-Peers zu behandeln. - HPI unterstützen mogen auch nicht Snoop-Anforderungen, die sie an eineAdresse, z. B. als inkohärente Anforderungen implementiert ausstellen können. Beispiele für solche Anfragen kann ein nicht Snoop lesen auf Anfrage eineschreibgeschützte Linie Form Speicher, nicht-Snoop zu schreiben eine Zeile zumSpeicher und das Schreiben einer Zeile in den Speicher nach einer Maske, unteranderen möglichen Beispielen.
- Bei einem Beispiel, können vier allgemeine Arten von Antwortnachrichten in dasHPI-Kohärenz-Protokoll definiert werden: Daten, Fertigstellung, Snoop undvorwärts. Bestimmte Datennachrichten können einen zusätzlichen Abschluss-Hinweis tragen und bestimmte Snoop-Antworten können Daten tragen. Antwortnachrichten dürfen den virtuellen RSPKanal und der Kommunikation Stoffkann korrekte Nachrichtenübermittlung Reihenfolge geordneten AbschlussAntworten und weiterleiten Antworten beibehalten.
- Tabelle 4 enthält eine Liste der zumindest einige potenzielle Antwortnachrichten, die anhand eines Beispiels HPI-Kohärenz-Protokoll unterstützt: TABELLE 4
Name Semantik Feld Data M Data M Zustandist. cmd, destNID, reqTID, data Data E Data E Zustandist. Data F Data F Zustandist. Data SI Daten in S Zustand oder speicherbar ”Snapshot”. Data M Mit einer geordneten Abschluss-Antwort Data ist in M Zustand Data E Daten ist E Zustand mit einer geordneten Abschluss-Antwort. Data F Daten ist F mit einer geordneten Abschluss-Antwort. Data SI Daten in S Zustand oder speicherbar ”Snapshot”, mit einergeordneten Ab schluss-Antwort. CmpU Vollzugsmeldung ohne Bestellung Anforderungen. cmd, destNID, reqTID CmpO Vollzugsmeldung mit forward Antworten bestellt werden. RspI Cache ist im I Zustand. cmd, destNID, homeTID RspS Cache ist in S-Zustand. RspFwd Kopie der Cachezeile schickte man ersuchenden Agent, Cache-Zustand nichtgeändert haben. RspFwdI Kopie des Cachezeile war ersuchenden Agenten geschickt Cache Übergänge zugeben. RspFwdS Kopie des Cachezeile war ersuchenden Agenten, Cache Übergänge S Zu stand geschickt. RspIWb Geänderte Zeile implizit geschrieben wird zurück in den Speicher, Cache wurdeumgestellt, I Zustand. cmd, destNID, homeTID, data RspSWb Geänderte Zeile wird implizit geschrieben zurück in den Speicher, Cache in SZustand übergegangen war. RspFwdI Wb Geänderte Zeile implizit geschrieben wird zurück in den Speicher, Kopie derCachezeile an ersuchenden Agent gesendet wurde, Cache wurde umgestellt, 1 Zustand. RspFwdSWb Geänderte Zeile wird implizit geschrieben zurück in den Speicher, Kopie derCachezeile wurde geschickt, um ersuchenden Agent Cache in S Zustandübergegangen war. RspCnfIt Peer hat eine ausstehende Anforderung an derselben Adresse, eine geordneteforward Antwort anfordert, und eine Ressource für die Forward reservierthat. cmd, destNID, homeTID, peerNID - Beispielsweise können Daten Antworten einen anfordernden Kohärenz-Agent Ziel. Home-Agent kann die Daten-Antworten senden. Ein Kohärenz-Agent kann nurDaten Antworten nicht mit einen geordneten Abschluss Hinweis senden. Darüberhinaus möglicherweise Kohärenz Agenten auf das Senden von Daten Antwortennur aufgrund der Verarbeitung einer Anforderung Snoop beschränkt. KombinierteDaten und Fertigstellung Antworten können immer des Typs bestellt -Abschlussund können durch die Kommunikation-Stoff bestellten mit vorwarts Antwortengehalte n werden.
- Das HPI-Kohärenz-Protokoll können verwendet werden, die allgemeineungeordnete Vollzugsmeldung und Kohärenz-spezifische bestelltenAbschlussmeldung. Home-Agent kann Abschluss Antworten auf kohärenteAnforderungen senden und Fertigstellung Antworten können in der Regel für eineKohärenz-Agent bestimmt sein. Die geordneten Abschluss-Antwort kann derKommunikation-Stoff mit forward Antworten bestellten gehalten werden.
- Snoop Antworten können per Kohärenz Agents, insbesondere alsReaktion auf die Bearbeitung einer Anfrage Snoop und den home-Agent dieSnoop-Anforderung behandelnden als Ziel. Die DestNID ist meist ein home-Agent (bestimmt von der Adresse in der Snoop-Anforderung) und die enthalteneTID für den home-Agent-Ressource zugewiesen, um die Anforderung zuverarbeiten. Snoop Antworten mit ”Wb” im Befehl sind für implizite Rückschreibenvon veränderter Cache Linien, und sie tragen die Cachedaten. (ImpliziteRückschreiben zählen diejenigen, die ein Kohärenz-Agent auf einem anderenAgenten Wunsch stellt während die andere Anforderungen explizit von derKohärenz-Agent mithilfe ihrer Anfrage-Ressourcen erfolgen.)
- Kohärenz Agenten erzeugt eine forward-Anfrage bei einem Snoop-Anfrage-Konflikte mit eine ausstehende Anforderung. Weiterleiten von Anforderungenzielen auf den home-Agent, der Snoop, generiert, die von der Adresse in der Snoop-Anforderung bestimmt wird. So ist die DestNID eines home-Agent. Dieforward-Anforderung kann auch die TID für den home-Agent-Ressourcezugewiesen, um die ursprüngliche Anforderung und die NID der Kohärenz-Agentgeneriert die forward-Anforderung verarbeiten.
- Das HPI-Kohärenz-Protokoll unterstützt eine forward Antwort, FwdCnfItO. Home-Agenten können eine forward Antwort für jede forward Anforderungempfangen und der Kohärenz-Agent vom PeerNID Gebiet der forward-Anforderung senden. Forward Antworten tragen die Cache-Line-Adresse, alsoder Kohärenz-Agent die Nachricht die forward Ressource zuordnen kann, die esreserviert. Forward Response-Nachricht kann der anfordernden Agent NID tragenaber in einigen Fällen ist nicht der anfordernde Agent TID. Wenn ein Kohärenz-Agent zur Unterstützung von Cache zu Cache-Übertragungen für forward Antworten will, es erspart der anfordernden Agent TID beim Verarbeiten von Snoop und forward Infoanfrage. Um Konfliktlösung zu unterstützen, kann der Kommunikation-Stoff beibehalten Sortierung zwischen der forward-Antwort undalle bestellten Fertigstellungen gesendet, bevor es an den gleichen Ziel-Kohärenz-Agent.
- In einigen Systemen sind home-Agent Ressourcen vorbelegt, da ”RTIDs ”Ressourcen in der home-Agents stellen und die Zwischenspeicherung Agents RTIDs aus dem System konfigurierten Pools beim Generieren von Neuanfragen Kohärenz zuordnen. Solche Regelungen können die Anzahl der aktiven Anforderungen beschränken müssen bestimmten Zwischenspeichern Agent kannein home-Agent auf die Anzahl der RTIDs ergangen ist, vom System effektivschneiden Startseite Ressourcen statisch unter Zwischenspeichern von Agenten. Solche Systeme können ineffizienten Ressourcenverteilung und richtig Dimensionierung eines home-Agents um Anfrage Durchsatz zu unterstützen, kannunpraktisch für große Systeme, neben anderen möglichen Problemen werden. Solche Regelungen können beispielsweise RTID Pool-Verwaltung auf die Zwischenspeicherung Agenten erzwingen. Darüber hinaus kann in einigenSystemen ein caching-Agent nicht die RTID wiederverwenden bis der home-Agent die Transaktion vollständig verarbeitet hat. Warten, bis ein home-Agentalle Verarbeitungsschritte schließt, kann jedoch unnötig ZwischenspeichernAgenten drosseln. Darüber hinaus können bestimmte fließt in das Protokollumfassen Zwischenspeichern Agenten festzuhalten RTIDs über den home-AgentVersion Benachrichtigung weiter drosseln ihre Leistung, unter anderefragen.
- Home-Agents können ihre Ressourcen zuzuordnen, wie Anfragen von Cache-Agenten kommen dürfen. In solchen Fällen kann home-Agent-Ressource-Management von Kohärenz Agent Logik getrennt gehalten werden. In einigenlmplementierungen kann Zuhause Ressource Management und Kohärenz AgentLogik zumindest teilweise vermischte. In einigen Fällen können Kohärenz-Agentshaben mehr ausstehende Anforderungen an ein home-Agent als home-Agentgleichzeitig verarbeiten kann. Beispielsweise können HPI-Anforderungen an dieSchlange in der Kommunikation-Stoff. Vermeiden von Deadlocks verursachtdurch den home-Agent blockiert eingehende Anfragen, bis Ressourcen verfügbarsind, kann darüber hinaus das HPI-Kohärenz-Protokoll konfiguriert werden, umsicherzustellen, dass andere Nachrichten Fortschritterzielen, um blockierteAnforderungen zu gewährleisten, dass die aktive Transaktionen Abschlusserreichen können.
- Bei einem Beispiel kann Ressourcen-Management unterstützt werden, dadurch, dass einen Agent empfangen einer Anforderung Ressourcen zuweisen, verarbeitet der Agent senden, dass die jeweiligen Ressourcenallokation für alleAntworten auf die Anfrage der HTID Anforderung die Ressource darstellen kann, die ein home-Agent für eine bestimmte Anforderung enthalten einige Protokoll-Nachrichten reserviert. HTID (zusammenmit RNID/RTID) in Snoop-Anforderungen und forward Antworten kann verwendet werden, um Antwortenzu einem home-Agent sowie die Weiterleitung von Daten an einen anforderndenAgent, unter anderen Beispielen zu unterstützen. Darüber hinaus kann HPIunterstützen die Möglichkeit eines Agenten, eine geordnete vollständige (CmpO) früh, d. h. senden, bevor Sie der home-Agent ist fertig derAnforderungsverarbeitung, wenn festgestellt wird, sicher für einen anforderndenAgent seiner RTID Ressource wiederverwenden. Allgemeine Handhabung vonSnoops mit ähnlichen RNID/RTID kann auch durch das Protokoll definiert werden.
- Bei einem illustrativen Beispiel wenn eine bestimmte Anforderung Tracker Staatbeschäftigt, ist ein Verzeichnis-Staat lässt sich ermitteln, wann der home-Agenteine Antwort senden kann. Beispielsweise kann ein ungültiges Verzeichnis-Staaterlauben eine Antwort gesendet werden, mit Ausnahme von RdCur Anfragen gibt an, sie für die Anforderungzugeordnet. Home-Agent kann auch in Zukunft weitere standard alle Peer-Agenten snooped wurdehaben und alle ihre Antworten gesammelt, vor eine Antwort gesendet werden kann. Der exklusiven Verzeichnis-Zustand kann vorschreiben, dass der Besitzer snoopedwerden, und alle Antworten gesammelt, bevor eine Antwort gesendet wird, oderwenn der anfordernde Agent der Besitzer ist dann eine Antwort sofort gesendetwerden kann. Der Shared-Verzeichnis-Staat kann angeben, dass eineanspruchsbrechenden-Anforderung (z. B. RdInv* oder Inv*) alle Peer-Agentensnooped und versammeltensich alle Snoop Antworten. Wenn eine besti mteAnforderung Tracker-Status Rückschreiben gepuffert (WbBuffered) ist, kann derhome-Agent eine Daten-Antwort senden. Wenn die Anforderung Tracker-Statusist DataSent (Hinweis auf der home-Agent bereits eine Daten-Antwort gesendethat) oder DataXfrd (Hinweis auf, dass ein Peer eine Kopie der Zeile übertragen), kann der home-Agent die Abschluss-Antwort senden.
- In Fällen wie den beschriebenen oben ein home-Agent kann Daten senden und Fertigstellung Antworten bevor alle Antworten snoop gesammelt haben. Die HPI-Schnittstelle ermöglicht diese ”frühen” Antworten. Beim frühen Daten und Fertigstellungen zu senden, kann der home-Agent alle ausstehenden SnoopAntworten sammeln, vor der Freigabe der Ressourcen, die sie für die Anforderungzugeordnet. Home-Agent kann auch in Zukunft weitere standard-Anforderungenan die gleiche Adresse blockieren, bis alle Snoop Antworten gesammelt wordensind, dann die Ressource freigegeben. Ein home-Agent senden eine Antwortnachricht aus einem Zustand gebucht oder WbBuffered kann eineUnteraktion-Tabelle verwenden (z. B. in einer Reihe von Protokoll-Tabellen, diemit der formalen Spezifikation des HPI-Kohärenz-Protokolls enthalten) für dieNachricht zu senden, und verwenden Sie eine Sub-Aktion-Tabelle für denVerzeichnis-Staat, unter anderen Beispielen zu aktualisieren. In einigen Fällenkann eine frühzeitige Fertigstellung ohne vorab-Zuordnung von einem home-Knotens erfolgen.
- In einer verkörperungHPI-Kohärenz-Protokoll kann ausgelassenwerden, die Verwendung von entweder oder beide vorab zugewiesene Startseite Ressourcenund Kanälen Wunch bestellt. Solche Implementierungen können bestimmteNachrichten auf der HPI RSP-Kommunikationskanal bestellt werden. Beispielsweise speziell ”geordneten Abschluss” und ”vorwarts-Antwort”-Nachrichten, kann bereitgestellt werden, können, die aus den home-Agent an derKohärenz-Agent gesendet werden. Home-Agents können eine geordnete Abwicklung senden (CmpO oder Data_*_CmpO) für alle koharentLesen- und entwertung Anfragen (wie auch andere Anforderungen, z. B. eine NonSnpRd Anfragen, die nicht in Cache-Kohärenz-Konflikten beteiligt sind).
- Home Agents können senden Sie uns Antworten (FwdCnfItO) Kohärenz Agenten, Send Forward Zugriffe (RspCnfIt) zur Anzeige eines Konflikts. Eine gewisse Kohärenz Agent kann eine Anforderung wenn sie hat eine hervorragende Lese- oder Sperrung verlangen und stellt eine eingehende snoop Anforderung an den gleichen cache line wie die Anforderung. Wenn die Kohärenz Agent erhält den Vorwärts-reaktion, es prüft den aktuellen Status der ausstehenden Anforderungen zu bestimmen, wie die ursprünglichen snoop. Der Home Agent kann die nach vorn Antwort auf bestellt werden mit einem kompletten (z. b. CmpO oder Data_*_CmpO). Die Kohärenz Agent nutzen können Informationen in den snoop zur Unterstützung der Kohärenz Agent bei der Bearbeitung einer Antwort übermitteln. Beispiel: Ein forward Antwort enthält möglicherweise nicht alle ”Typ” Informationen und keine RTID. Die Art der Reaktion nach vorne abgeleitet werden kann aus Informationen, die sich aus dem vorstehenden snoop(s). Darüber hinaus ist eine Kohärenz Agent blockiert werden können herausragende snoop Zugriffe wenn alle von der ”Vorwärts” warten auf uns antworten. In einigen Implementierungen, jede Kohärenz Agent kann so gestaltet werden, daß sie zu mindestens einem Vorwärts-Ressource.
- In einigen Implementierungen kann Gewebe Kommunikationsanforderungen auf die Routing-Schicht. In einer Ausführungsform hat das HPI-Kohärenz-Protokolleine Kommunikation-Stoff-Anforderung, die spezifisch auf die Routing-Ebene ist. Das Kohärenz-Protokoll kann von der routing Schicht eine Fanout Snoop (SnpF *Opcodes – Snoop (SNP) Kanalnachrichten”) in die entsprechenden Snoops allerdie Anforderung von Gleichaltrigen in der Fanout-Satz von Kohärenz Agentenkonvertieren abhängen. Das Fanout-Set ist eines Konfigurationsparameters dieRouting-Ebene, die von der Protokollebene geteilt wird. In dieser Kohärenz-Protokoll-Spezifikation wird als Home-Agent-Konfigurations parameter beschrieben.
- In einigen Implementierungen oben kann das HPI-Kohärenz Protokoll nutzt vierder virtuellen Kanäle: REQ, WB, SNP und RSP. Die virtuelle Kanäle könnenverwendet werden, zur Entspannung Abhängigkeit Zyklen und vermeiden vonDeadlocks. In einer Ausführungsform kann jede Nachricht ohne Vervielfältigungauf allen virtuellen Kanälen und Sortierreihenfolgen-Anforderungenerfüllt auf denvirtuellen RSP-Kanal geliefert werden.
- In einigen Implementierungen kann der Kommunikation-Stoff um zu bewahren, eine Reihenfolge von bestimmten Abschluss-Mitteilungen und der FwdCnfItOkonfiguriert werden. Die Abschluss-Nachrichten sind die CmpO-Nachricht undalle Daten-Nachrichten mit CmpO befestigt (Data_*_CmpO). Gemeinsam sind alldiese Nachrichten der ”geordneten Abschluss Antworten.” Die konzeptionelle Anforderungen zwischen geordneten Abschluss Antworten und die FwdCnfItONachricht ist, dass eine FwdCnfItO nicht ”eine geordnete Abwicklung gelangt”. Genauer gesagt, tritt Wenn ein home-Agent eine geordnete Beendigung-Antwort sendet, gefolgt von einer FwdCnfItO-Meldung und beide Nachrichtensind für die gleiche Kohärenz-Agent bestimmt, dann der Kommunikation-Stoffdie geordneten Abschluss Antwort bevor die FwdCnfItO, unter anderenmöglichen Beispielen.
- Sollte es geschätzt,
dass während einige Beispiele für den Protokoll-Ablauf hierinangegeben werden., die beschriebenen Beispiele sollen lediglich ein intuitivesGefühl für das Protokoll und nicht unbedingt decken alle möglichen Szenarien undVerhaltensweisen, die das Protokoll ausstellen kann. - Ein Konflikt kann auftreten, wenn die Anforderungen an die gleiche Adresse Cache-Line von mehr als einem Kohärenz Agent etwa zur gleichen Zeit erfolgen. Als ein konkretes Beispiel kann ein Konflikt auftreten, wenn eine Snoop für eineKohärenz-Agent Standardanforderung an einen Peer-Kohärenz-Agent mit eineausstehende Anforderung an die gleiche Adresse ankommt. Da jede Snoop ineinem Konflikt enden kann, kann eine einzelne Anforderung mehrere Konfliktehaben. Lösung von Konflikten können eine koordinierte Anstrengung zwischenden home-Agent, die Kohärenz-Agents und der Kommunikation-Stoff sein. Jedoch liegt die Hauptverantwortung bei der Kohärenz-Agenten erkennenwidersprüchlicher Snoops.
- In einer Ausführungsform können home-Agents, Kohärenz Agents undKommunikation Stoff konfiguriert werden helfen, Konflikte erfolgreich zu lösen. Z. B. home-Agents herausragende Schnüffler für nur eine Anforderung pro Adressein einer Zeit, möglicherweise so, dass für eine bestimmte Adresse, ein home-Agent herausragende Schnüffler für nur eine Anforderung haben kann. Dies kanndazu dienen, Racebedingungen Wettkampfsituation, zwei Anfragen Konflikt miteinander nicht ausschließen. Es kann auch sicherstellen, dass ein Kohärenz-Agentnicht ein weiteres Snoop an die gleiche Adresse angezeigt wird, nachdem es einen Konflikt erkannt hat, aber noch nicht behoben.
- In einem anderen Beispiel es wenn ein Kohärenz-Agent eine Snoop mit einemAdressenzuordnung eine aktive Standardanforderung verarbeitet kann eineforward Ressource reserviert und sendet eine forward-Anforderung an denhome-Agent. Ein Kohärenz-Agent mit einer hervorragenden standard-Anforderung, die eine Snoop an die gleiche Adresse erhält können reagiert miteiner RspCnfIt Snoop Antwort. Diese Reaktion kann eine forward-Anforderung anden home-Agent. Da die Nachricht eine Anforderung ist vor dem Senden derKohärenz-Agent können Sie ein Hilfsmittel, um die Antwort zu behandeln, die derhome-Agent schickt verteilen. (Das Kohärenz-Protokoll ermöglicht das Blockierenwidersprüchliche Snoops, wenn der Kohärenz-Agent aus forward Mitteln, ineinigen Fällen ausgeführt wurde.) Der Kohärenz-Agent möglicherweiseinformationen zu widersprüchlichen Snoop verwenden, wenn die forwardAntwort Verarbeitung speichern. Nach der Feststellung eines Konflikts und bis zurVerarbeitung der forward Antwort kann ein Kohärenz-Agent nicht sehen, eine weitere Snoop an die gleiche Adresse gewährleistet werden.
- In einigen Beispielen zeichnet es wenn ein home-Agent eine vorwarts Anforderungerhält nicht die Snoop-Antwort auf. Stattdessen kann der home-Agent eine vorwarts Antwort an den widersprüchlichen Kohärenz-Agent senden. Eineforward-Anfrage (RspCnfIt), bei einem Beispiel, sieht aus wie eine Snoop-Antwort, aber der home-Agent behandelt es nicht als eine. Es zeichnet nicht auf dieNachricht als Antwort Snoop, aber stattdessen einen vorwärts. Insbesondere fürjede forward Anforderung (RspCnfIt) ein home-Agent empfängt, sendet er eineforward Antwort (FwdCnfItO) an den anfordernden Kohärenz-Agent.
- Der HPI-Kommunikation-Stoff bestellt vorwarts Antworten und Abschlüssezwischen den home-Agent und der gezielten Kohärenz-Agent bestellt. DasGewebe kann damit dienen, um einen frühen Konflikt von einem späten Konfliktan der widersprüchlichen Kohärenz-Agent zu unterscheiden. Aus Sicht derSystemebene tritt ein früher Konflikt, wenn eine Snoop stößt auf eineAnforderung, die der home-Agent noch nicht verarbeitet hat, und ein späterKonflikt tritt auf, wenn ein Snoop eine Anforderung trifft, die der home-Agentbereits verarbeitet wurde. Aus Sicht eines home-Agent ist ein früher Konflikt beieinem Snoop für die derzeit aktive Anforderung eine Anforderung, die der home-Agent noch nicht empfangen oder mit der Verarbeitung begonnen hat und einspäter Konflikt stößt Snoop eine Anforderung, die bereits verarbeitet wurde. Mitanderen Worten, ist ein später Konflikt mit einer Anfrage an der home-Agentbereits eine Abschluss-Antwort gesendet hat. So, wenn ein home-Agent eine forward Anforderung für einen späten Konflikt erhält, es wird bereits dieAbschluss als Reaktion auf die widersprüchliche Agent ausstehende Anforderunggesendet haben. Mit der Bestellung der forward Antworten und geordnetenAbschluss Antworten zwischen home-Agent und der Kohärenz-Agent, kann derKohärenz-Agent bestimmen, ob der Konflikt früh oder spät von denVerarbeitungsstatus der seine widersprüchlichen Forderung war.
- Wenn ein Kohärenz-Agent eine vorwärts-Antwort empfängt, verwendet er Zustand seine widersprüchlichen Forderung um zu bestimmen, ob der Konfliktfrüh oder spät war und wann man original Snoop zu verarbeiten. Aufgrund derMitteilung Stoff Reihenfolge Anforderung gibt den Status der widersprüchlichenAnforderung, ob der Konflikt früh oder spät war. Wenn der Anforderungszustand, dass die Fertigstellung eingegangen ist anzeigt, dann war es ein spät Konflikt, ansonsten war es eine frühe Konflikt. Alternativ wenn der Anforderungszustand, dassdie Anforderung für seinen Treffer noch wartet anzeigt, dann war es einefrühe Konflikt, war ansonsten es ein spät Konflikt. Der Typ des Konflikts bestimmt, wann Snoop verarbeiten: aus einer Kohärenz-Agent Sicht bedeutet ein früherKonflikt Snoop ist für eine Anforderung verarbeitet werden, bevor der Agentwidersprüchlichen Anforderung und ein später Konflikt bedeutet Snoop ist füreine Anforderung nach der Agent widersprüchlichen Anforderung verarbeitetwerden. Da die Bestellung, für einen frühen Konflikt verarbeitet der Kohärenz-Agent sofort ursprüngliche Snoop; und für einen späten Konflikt der Kohärenz-Agent wartet, bis die widersprüchliche Anforderung hat seine Daten (gelesen)und seinen Prozessor Gelegenheit auf die fertige Anfrage hatte vor derVerarbeitung Snoop zu handeln.
- Wenn widersprüchliche Snoop verarbeitet wird, generiert der Kohärenz-Agent eine Snoop-Antwort für den home-Agentschließlich aufzeichnen. Alle Konflikte mit Rückschreiben Anfragen können späten Konflikte werden. Einspäter Konflikt aus Sicht der Kohärenz-Agent ist, wenn der Agent Anforderungbevor die Snoop Anforderung verarbeitet wird. Nach dieser Definition können alleKonflikte mit Rückschreiben Anfragen als spät Konflikte behandelt werden, weilRückschreiben zuerst verarbeitet wird. Andernfalls könnten Datenkonsistenz undKohärenz verletzt werden, würde der home-Agent die Anforderung zuverarbeiten, bevor Rückschreiben Speicher verpflichtet. Da alle Konflikte mitRückschreiben späten Konflikte gelten, können Kohärenz Agenten konfiguriertwerden, um widersprüchliche Snoops zu blockieren, bis eine herausragendeRückschreiben-Anforderung abgeschlossen ist. Rückschreiben können darüberhinaus auch die Verarbeitung von Weiterleitungen blockieren. Blockieren vorwärts durch eine aktive Rückschreiben kann auch als Voraussetzung für dieUnterstützung von speicherbar-Shops, unter anderen Beispielen Protokoll umgesetzt werden.
- Wenn ein Kohärenz-Agent eine Anfrage um seinen Cache zu spähen, erhält, kann der Agent zunächst prüfen, ob die Kohärenz-Protokoll es erlauben wird, dann kann der Agent die Snoop verarbeiten und eine Antwort entwickeln. Eine oder mehrere Standtabellen kann definiert werden innerhalb eines Satzes von Standtabellen, der die Protokoll-Spezifikation festgelegt werden. Eine oder mehrere Standtabellen kann festlegen, wenn ein Kohärenz-Agent eine Snoop verarbeiten kann, ob der Agent den Cache spähen kann oder statt eine Anfrage für einen vorderen Konflikt generieren. In einem Beispiel gibt es zwei Bedingungen, bei denen ein Kohärenz-Agent eine Snoop verarbeitet. Die erste Bedingung ist, wenn die Kohärenz-Agent eine REQ (Rd* oder Inv*) Anforderung auf der Snoop-Adresse, sowie eine verfügbare vordere Ressource hat. In diesem Fall, muss der Kohärenz-Agent eine vordere Anfrage (RspCnfIt) generieren. Die zweite Bedingung ist, wenn der Kohärenz-Agent nicht eine Wb* oder EvctCIn Anfrage an den Snoop-Adresse hat. Eine Standtabelle definiert, wie ein Kohärenz-Agent den Snoop in solchen jeweiligen Bedingungen verarbeitet. In einem Beispiel, unter anderen Bedingungen, der Kohärenz-Agent kann die Snoop blockieren, bis entweder eine vordere Ressource verfügbar wird (erste Bedingung) oder die Blockierung Wb* oder EvctCIn seine CmpU Reaktion erhält (zweite Bedingung). Bitte beachten, dass NonSnp* Anfragen die Snoop Verarbeitung nicht beeinträchtigt werden und bei der Bestimmung, wie die Snoop Einträge zu verarbeiten oder zu blockieren, ein Kohärenz-Agent kann NonSnp* ignorieren.
- Bei der Generierung einer vorderen Anfrage, kann ein Kohärenz-Agent eine Ressource für eine vordere Reaktion reservieren. Die HPI-Kohärenz-Protokoll, in einem Beispiel, erfordert nicht eine Mindestanzahl von vorderer Ressourcen (über mindestens eine) und erlaubt der Kohärenz-Agent Snoops zu blockieren, wenn es keine verfügbare vordere Ressourcen gibt.
- Wie ein Kohärenz-Agent ein Snoop in seinem Cache verarbeitet, abhängig von der Art von Snoop und dem aktuellen Cache-Zustand. Es kann mehere zulässige Reaktionen geben, für eine gegebene Art von Snoop und seinem Zustand. Zum Beispiel kann ein Kohärenz-Agent mit einer total abgewanderten Linie, die eine nicht-widersprüchliche SnpMigr erhält (oder eine vordere Reaktion nach einer SnpMigr verarbeitet) eine der folgenden Möglichkeiten haben: Downgrade auf S, sendet implizite Zurückschreiben an Zuhause und Data_F an Anforderer; Downgrade auf S, sendet implizite Zurückschreiben an Zuhause; Downgrade auf I, sendet Data_M an Anforderer; Downgrade auf I, sendet implizite Zurückschreiben an Zuhause und Data_E an Anforderer; Downgrade auf I, sendet implizite Zurückschreiben an Zuhause; unter potenziellen Beipielen.
- Die HPI-Kohärenz-Protokoll ermöglicht Kohärenz-Agent, um die modifizierten Linien mit partiellen Masken in seinem Cache zu speichern. Jedoch können alle Zeilen für M Kopien eine volle oder leere Maske erforderlich. Die HPI-Kohärenzprotokoll in einem Beispiel, kann impliziten Zurückschreiben von partiellen Linien beschränken. Ein Kohärenz-Agent, die aufgrund einer Snoop-Anfrage (oder vordere Reaktion) eine partielle M-Linie zu entfernen will, zunächst eine explizite Zückschreiben einführt und dann Snoop (oder vordere) blockiert, bis die explizite Zückschreiben abgeschlossen ist.
- Bei der Aufbewahrung von Informationen für vordere Reaktionen: Die HPI-Kohärenz-Protokoll, die in einer Ausführungsform ist, ermöglicht ein Kohärenz-Agent, die Informationen vorderer Reaktionen getrennt von ausgehenden Anforderungspuffer (ORB) zu speichern. Die Trennung der Informationen erlaubt das ORB, ORB Ressourcen auszulösen und RTID, wenn alle Reaktionen gesammelt werden, unabhängig von der Eintragung in einem Konflikt. Standstabellen können verwendet werden, um festzulegen, welche Informationen für die vordere Reaktionen zu speichern und unter welchen Bedingungen sie sind.
- Vordere Reaktionen in der HPI-Kohärenz-Protokoll können die Adresse, die angeforderte Agents NID, und Haus TID, enthalten. Sie enthälten nicht die origenelle Snoop-Art oder die RTID. Eine Kohärenz-Agent kann die vordere Art und die RTID speichern, wenn er sie mit der vorderen Reaktionen verwenden wird, und er kann die Adresse verwenden, um die ankommenden vordere Reaktionen mit den richtigen vorderen Eingaben anzupassen (und um das Haus NID zu generieren). Die Speicherung der vorderen Arten kann optional sein. Wenn es keine Art gespeichert ist, der Kohärenz-Agent kann eine vordere Reaktion als FwdInv Art behandeln. Ebenso bei der Speicherung des RTID, es kann optopnal sein und werden nur dann auftreten, wenn der Kohärenz-Agent eine Cache-zu-Cache-Transfers bei der Verarbeitung von vorderen Reaktionen unterstüzt.
- Wie oben erwähnt, der Kohärenz-Agent kann eine vordere Anfrage erzeugen, wenn eine Snoop-Anfrage mit einer hervorragenden Anfrage ein Konflikt hat. Vordere Anfragen richten den Home-Agent an, der die Snoop erzeugt, die von der Adresse in dem Snoop-Anfrage bestimmt werden. So kann die destNID einen Home-Agent identifizieren. Die vordere Anfrage kann auch die TID für das Home-Agent-Ressource zugeordnet, um die ursprüngliche Anforderung und die NID des Kohärenz-Agent der die vorderen Anfrage zu bearbeiten.
- In einer Ausführungsform, ein Kohärenz-Agent kann die Anfrage für Züruckschreiben wegen Datenkonsistenz blockieren. Der Kohären-Agent kann auch die Anfrage für Züruckschreiben verwenden, um (Uncacheable-UC)-Daten vor der Verarbeitung ein vordere zu verpflichten und kann damit der Kohärenz-Agent partielle Cache-Linien statt die Protokoll-Unterstützung ein implizit partielles Züruckschreiben für vordere erlauben. In der Tat, in einer Ausführungsform kann ein Kohärenz-Agent erlaubt sein, um modifizierten Linien mit partiellen Masken in seinem Cache zu speichern (obwohl M-Kopien eine volle oder leere Maske enthalten).
- In einem Beispiel, die frühzeitige Konflikte kann durch eine vordere Reaktion einen hervorragenden Standard Anfrage, bevor sie keine Antwort erhalten hat, gelöst werden. Ein entsprechender Protokollstandstabelle kann spezifizieren, in einem Beispiel, dass eine vordere Reaktion solange die Standardanforderungseintrag noch in dem ReqSent Zustand ist, verarbeitet werden kann. Spätere Konflikte können durch eine ankommende vordere Reaktion, nachdem die ausstehende Anforderung seine vollenden Antwort erhalten hat, gelöst werden. Wenn dies geschieht entweder die Anfrage abgeschlossen weden, (bereits seine Daten erhalten oder eineInv* Anfrage war) oder in seinem RcvdCmp Zustand eingetragen. Wenn die Anfrage wartet noch immer auf seine Daten, dann muss der Kohärenz-Agent die Vordere blockieren, bis die Daten empfangen (und gebraucht) ist. Wenn der Konflikt von Rd* oder *Inv Anfrage beendet ist, dann kann die vordere Reaktion verarbeitet werden, solange der Kohärenz-Agent kein explizit Züruckschreiben der Cache-Linie eingeleitet. Es kann zulässig sein, für ein Kohärenz-Agent ein explizites Züruckschreiben einzuführen, während es eine vordere Reaktion (oder Snoop Anfrage) an die gleiche Adresse hat, so dass die partiellen Linien (zB Snoop Anträge auf partiell modifizierten Linien”) oder uncacheable richtig begangen werden in den Speicher.
- In
7 , ein erstes Beispiel ist mit einem Beispiel von Konfliktschema veranschaulicht. Eine erste Cache (oder Kohärenz) Agent705 kann eine Lese-Anforderung für eine bestimmte Datenlinien an den Hausagent710 sendet, was zu einer Lese Speicher715 resultiert. Kurz nach der Leseanforderung von Cache-Agent70 , macht ein anderer Cache-Agent720 einen Antrag auf Eigentum (RFO) in der gleichen Linie. Aber der Hausagent710 hat die Data_S_CmpO an den ersten Cache-Agent705 vor Erhalt der RFO von Cache-Agent720 gesendet. Die RFO in einem Snoop (SnpFO) ist zu führen, die an den Cache-Agent705 (wie auch andere Cache-Agenten) gesendet werden, wobei die snoop von dem ersten Cache-Agent705 vor Erhalt der vollständigen Data_S_CmpO erhalten. Der Cache-Agent705 , beim Empfang der Snoop SnPO kann einen möglichen Konflikt mit der Linie des Speicher in der Originalleseanforderung identifizieren und kann dem Hausagent710 der Konflikt durch die Reaktion auf die SnPO mit einer vorderen Reaktion für Konfliktmeldung mitteilen (RspCnfIt). Der HausAgent710 kann auf die vordere Reaktion von RspCnfIt durch Senden einer vordere Reaktion (FwdCnfItO) reagieren. Der Cache-Agent705 kann die teilenden vollständigen Daten Data_S_CmpO und der Übergang von einem I-Zustand in S-Zustand erhalten. Die vordere Reaktion FwdCnfItO kann dann von dem Cache-Agent705 und Cache-Agent705 empfangen werden, um festzustellen, wie der vordere Reaktion FwdClfItO basierend auf der Snoop SnpFO, die das Senden der vorderen Reaktion RspCnfIt, reagiert. In diesem Beispiel, kann der Cache-Agent705 ein Protokoll Standtabelle konsultieren, zum Beispiel, um eine Reaktion auf die Vorwärtsantwortnachricht FwdClfItO zu bestimmen. In dem speziellen Beispiel der7 , der Cache-Agent705 kann zu einem F-Zustand werden und sendet die S-Kopie der Daten, die er aus dem Home Agent710 erhalten hat, in der Data_S_CmpO an den zweiten Cache-Agent720 in einem Data_F meldet. Der erste Cache-Agent705 sendet auch eine Reaktionnachricht RspFwdS an den HausAgent710 , um den Heimatagent710 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-Agent705 kann einen Antrag auf Eigentums (RFO) einer bestimmten Linie des Speichers an den Hausagent710 senden. Kurz danach, ein zweiter Cache-Agent kann eine RdInvOwn an den Hausagent710 als Antrag für die gleich Linie im Speichern in einem M-Zustand, senden. Im Zusammenhang mit der RFO Nachricht von dem ersten Cache-Agent705 kann der Hausagent710 einen Snoop (SnpFO) auf den zweiten Cache-Agent720 , der der zweite Cache-Agent720 kann als ein potentieller Konflikt mit der Linie in dem Speicher unterliegen, sowohl identifizieren, die RFO und RdInvOwn Anfragen senden. Daher ist der zweite Cache-Agent720 kann eine vordere Anfrage RspCnfIt an den Hausagent720 senden. Der zweite Hausagent720 bestimmt eine Reaktion an die vordere Reaktionen aufgrund die Informationen, die in dem Original Snoop enthalten. In diesem Beispiel, antwortet der zweite Cache-Agent720 mit einem Snoop Reaktion RspI, die darauf hinweist, dass der zweite Cache-Agent720 in einem I-Zustand ist. Der Hausgent710 empfängt die Snoop Reaktion RspI und bestimmt, dass es angemessen ist, um die Daten vollständig exklusiv (Data_E_CmpO) an den ersten Cache-Agent705 , der den erste Cache-Agent in einem E-Zustand veranlläst, zu senden. Mit der vollständigen Sendung, kann der Hausagent710 beginnen dann auf der zweite Cache-Agents Anfrage RdInvOw, zu antworten, beginnend mit einem Snoop-Anforderung SnpinvO der ersten Cache-Agent705 . Der erste Cache-Agenten705 identifiziert, dass die Snoop-Ergebnisse in einem Antrag der zweite Cache-Agent720 eine exklusive M-Zustand Kopie der Linie zu erhalten. Folglich sind die Übergänge des ersten Cache-Agent705 zu den M-Zustand, um seine Kopie der Linie als eine M-Stand-Kopie (mit Data_M Nachricht) an den zweiten Cache-Agent720 . Zusätzlich, der erste Cache-Agent705 sendet auch eine Antwortnachricht RspFwdI, um anzuzeigen, dass die Kopie der Linie in den zweite Cache-Agent720 gesendet wurde und dass der erste Cache-Agent hat zu einem I-Zustand gewechselt (mit bis Eigentum an der Kopie an die zweite Cache-Agent720 angegeben). - Wendet man sich nun auf das Beispiel der
9 , ist ein weiteres vereinfachtes Flussdiagramm dargestellt. In diesem Beispiel, ein Cache-Agent720 versucht ein exklusives Eigentum an einem uncacheable (UC) Linie ohne Empfangen von Daten (zB durch eine InvItoE Nachricht) zu erfragen. Eine erste Cache-Agenten705 sendet eine konkurrierende Nachricht (RdInv) für die Cache-Linie in E-Zustand. Die HPI-Kohärenz-Protokoll kann festlegen, dass, wenn die angeforderte Linie zuvor in M-Zustand zwischengespeichert wurde, die Linie in dem Speicher geschrieben wird, bevor E-Datenin Reaktion auf die RdInv des ersten Cache-Agent705 geliefert wird. Der Hausagent710 liefert werden eine komplette (CMPO) an die InvItoE Anfrage und sendet eine snoop (SnpInv) an Cache-Agent720 auf Basis der RdInv Anfrage. Wenn der Cache-Agent720 empfängt die Snoop vor der Vollständiung, der Cache-Agent720 kann identifizieren, dass die Snoop bezieht sich auf die gleiche Cache-Linie als exklusiven gehörigen Anfrage und geben einen Konflikt durch eine vordere Anfragen RspCnfIt. Wie in den vorgehenden Beispielen, der Hausatagent710 kann konfiguriert werden, um die vordere Anfrage mit einem Forward-Reaktion (FwdCnfItO) zu reagieren. Mehrere zulässigen Antworten kann der vorderen Reaktionen zugelassen werden. Zum Beispiel kann der Cache-Agent720 ein explizites Züruckschreiben (zB WbMtoI) einführen und die Snoop-(oder vordere) blockiert, bis das explizite Züruckschreiben abgeschlossen ist (zB CmpU), wie im Beispiel der9 dargestellt ist. Der Cache-Agent kann dann die Snoop REaktion (RspI) fertigen. Der Hausagent710 kann dann die Anfrage RdInv des ersten Cache-Agent705 verarbeiten und gibt eine komplette Data_E_CmpO, unter anderen Beispielen. - In den Beispielen, wie das Beispiel vo
9 , wo ein Cache-Agent einen Snooper erhält, wenn der Agent eine hervorragende Lese oder Ungültigmachungsanforderung an die gleiche Adresse hat und eine partielle modifizierte Linie (oft als ”begraben-M” bezeichnet) zwischengespeichert hat, die HPI-Kohärenz-Protokoll, in einer Implementierung ermöglicht dem Agenten, entweder 1) durchführen eine explizite Züruckschreiben (teilweise) von der Linie, während der Blockierung der snoop oder 2) senden vordere Anfrage (RspCnfIt) an den Hausagent. Wenn (1) so gewählt wird, verarbeitet der Agent die Snoop nach Empfang des vollständigen Züruckschreiben. Wenn (2) gewählt wird, ist es möglich, dass der Agent vordere Reaktion (FwdCnfItO) erhaltet, während seine hervorragende Lese oder Ungültigmachungsanforderung immer noch auf Antworten wartet und der Agent hat immer noch eine partielle modifizierte Zeile. Wenn das der Fall ist, kann das Protokoll der Agent erlaubt, um den Vordere zu blockieren, während der Durchführung eines expliziten Züruckschreiben (teilweise) von der Linie. Während des Züruckschreiben garantiert das Protokoll des Agent keine Reaktionen für die hervorragende Lese oder Ungültig Anfrage erhalten wird. Der oben beschriebene Mechanismus (so dass Kohärenz-Agenten explizite Züruckschreiben erlauben und Snoops blockieren und nach vorne, auch wenn der Agent hat einen hervorragenden Lese oder ungültige Anfrage) wird auch verwendet, um sicherzustellen, teilweise oder UC Schreibvorgänge werden in den Speicher geschrieben, bevor der Schriftsteller erwirbt globale Beobachtbarkeit. - Kohärenz-Agenten verwenden ein Zwei-Schritt-Verfahren für das partielle/UC Schreiben. Zunächst, prüfen sie, wenn sie das Eigentum an der Cachelinie haben und eine Ownership (Ungültigkeitserklärung) Anfrage im Protokoll senden, wenn sie es nicht haben. Zweitens führen sie den Schreib. Im ersten Schritt, wenn sie eine Eigentums Anfrage durchgeführt wird, ist es möglich, dass der Antrag wird mit Anfragen anderer Agenten für die Linie in Konflikt, das bedeutet, das ser Agent könnte eine Snoop empfangen, während das Eigentum Anfrage herausragend ist. Pro-Kohärenz-Protokoll Anforderungen, wird der Agent eine zukunfts Anforderung für die widerstreitenden Snoop erteilen. Während der Wartezeit für den vordere Reaktion, kann der Agent den Besitz Antrag fertigen, die das Eigentum an der Linie, um den Agenten gewährt und ermöglicht den Agenten, um das Züruckschreiben für den Teil/UC Schreib erhalten. Während dies geschieht, kann der Agent die vordere Reaktionen erhalten, die sie verpflichtet, auch zu verarbeiten. Der Kohärenz-Agent darf nicht die beiden Aktivitäten kombinieren. Der Kohärenz-Agent, statt separat der Teil/UC Schreibdaten von der Verarbeitung des vordere züruckschreiben, führen Sie zuerst das Rückschreiben. Zum Beispiel, ein Cache-Agent kann ein Züruckschreiben Anfrage verwenden, um UC-Daten vor der Verarbeitung vorwärts begehen und partielle Cache-Linie züruckschreiben, unter anderem Beispiele und Funktionen.
- In einer Ausführungsform, kann die HPI-Kohärenz-Protokoll eine Ungültigkeitserklärung (RdInv) und akzeptierende Anfrage Exklusiv-Zustandsdaten unterstützen. Semantik uncacheable (UC) liest die Spülung von geänderten Daten in dem Speicher. Einige Architekturen ermöglichen jedoch die Weiterleitung M-Daten auf ungültigen Lesen, die den anfordernden Agenten gezwungen, die Leitung zu reinigen, wenn es M-Daten empfangen werden. Die RdInv Strom vereinfacht und erlaubt keine E Daten weitergeleitet werden sollen. Zum Beispiel, wie im Beispiel der
10 dargestellt ist, das Verzeichnis Zustand ein Hausagent710 kann anzeigen, dass es keine Agenten (zB705 ,710 ) eine Kopie der Linie haben. In solchen Fällen, kann der Hausagent710 die Daten und die Fertigstellung Antwort(en) sofort senden. HPI ermöglicht die gleiche, wenn die effektive Verzeichnis Zustand zeigt keine Beaufsichtigender können eine Kopie der Leitung haben. - Wie im Beispiel der
10 dargestellt ist, in einigen Implementierungen kann ein Agent zu einem Snoop mit einer RspIWb Nachricht antworten, die anzeigt, dass der Cache-Agent (zB705 ) ist in (oder hat übergegangen wird) ein I-Zustand, während die Beantragung eines Schreib in den Speicher. Ein RspIWb setzt die effektive Verzeichnisstand zu ungültig und ermöglicht eine Hausagent710 , um eine Reaktion ohne Snooping alle Kollegen schicken. In dem Beispiel der10 , eine zweite Cache-Agenten720 sendet RdInv Anfrage, während der Hausagent-Verzeichnis ist in einem unbekannten Zustand. In der Reaktion, der Hausatagent710 zunächst schnäpt nur den ersten Cache-Agent705 . In diesem Beispiel Cache-Agent705 hat eine modifizierte Kopie der Linie und reagiert mit einem impliziten Züruckschreiben (zB RspIWb). Wenn Home die RspIWb Nachricht erhält, es kann festgestellen, dass es keinen anderen Agent könnte eine Kopie der Linie haben und weiter feststellt, dass Cache-Agent705 seinen Cache durch die RspIWb ungültig erklärt hat. In der Reaktion, kann das Hausagent710 das Verzeichnisstand ungültig setzen. Weil das Verzeichnisstand ungültig ist, der Hausagent710 wartet, bis die Speicherschreib715 abgeschlossen ist und dann die Daten und abgeschlossene Antwort (en) (zB Data_E_CmpO) senden und die Ressource, für die Anforderung von Cache-Agenten720 geben. In diesem Beispiel, der Hausagent kann den Cache-Snooping anderer Agenten im System überspringen. Zwar in solchen Beispielen ein Hausagent (zB710 ) kann Daten senden und eine Vervollständigung der Reaktion vor der Aufnahme aller Snoop-Reaktionen (zB aufgrund der Identifizierung einer M-Kopie auf Agent705 ) senden, wie in dem dargestellten Beispiel veranschaulicht11 (mit Cache-Agent1105 ). - In den Beispielen der
10 und11 , wenn der zweite Cache-Agent720 die Data_E_CmpO Antwort vom Hausagent710 empfängt, der Cache-Agent720 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-Agent720 ist für eine neue Anforderung wiederverwenden. In der Zwischenzeit kann der Hausagent710 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-Agent720 könnte die RTID für eine neue Anfrage an die gleiche oder eine andere Hausgent wiederverwenden, und das Hausagent konnte Snoops für die neue Anfrage generiert, dass die gleiche ”einzigartigen ”Transaktions-ID wird in Snoops den gleichen Kohärenz-Agent existieren. Aus einer Perspektive Kohärenz dieser Doppel Transaktions-ID (TID) ist dennoch akzeptabel sein, weil snoops für die ursprüngliche Anfrage ein I-Zustand finden wird. - Ein Hausagent kann eine Snoop generieren, wenn der Anfrage Tracker ist Warten, Besetzt oder DataXfrd, das bedeutet, entweder der ausagent noch nich eine Daten Reaktion sendet, oder eine Snoop Reaktion einige Beaufsichtigender die Daten an den anfordernden Agenten übermittelte. Ein Hausagent kann auch Snoop Feld anfragen, um die Anfrage zu überprüfen, um sicherzustellen, dass es noch nicht zu einem Beaufsichtigender einen Snoop gesendet wurde. Beim Senden eines Snoop kann ein hausagent Beaufsichtigender (oder alle Fanout Beaufsichtigende) zu Snoop hinzufügen (Senden einer zweiten Snoop zu verhindern) und verfolgen hervorragende Snoop Reaktionen.
- Bei einiger Realisierungen der HPI, wie oben erwähnt, können Snoopsverzweigung unterstützen. Zusätzlich wird in einigen Beispielen, HPI kann eine explizite Snoopsverzweigung Verfahren, SnpF, für Snoopsverzweigung von der Routing-Schicht, unterstützen. Ein HPI Hausagent (zB
710 ) kann SnpF nutzen, um einen einzigen Snoopsverzweigung-Anforderung (zB mit einem einzigen Befehl und Botschaft), und in der Reaktion, kann der Routing-Schicht Snoops allen Beaufsichtiger-Agenten, die in der jeweiligen Verzweigungskegel basierend sind, auf der SnpF Anfrage generieren. Der Hausagent kann demnach die Snoop Reaktion von jeder Agentsabteilung erwarten. Während andere Snoop Nachrichten einen Zielknoten-ID enthalten können, Verzweigungssnoop kann ein Ziel NID weglassen, weil der Routing-Schicht für die Erzeugung der entsprechenden Snoop Nachrichten an alle Beaufsichtigers in der Verzweigungsregion verantwortlich ist. - Da die Routing-Schicht unmittelbar unterhalb der Protokollschicht ist, bei einiger Realisierungen sind Anforderungen für Kommunikationsstruktur auf der Routing-Schicht. In einer Ausführungsform kann die HPI-Kohärenz-Protokoll eine Anforderung für Kommunikationsstruktur haben, die spezifisch für die Routing-Schicht ist. Zum Beispiel, die Kohärenz-Protokoll kann auf die Routing-Schicht abhängig sein, um eine Verzweigungssnoop (SnpF* opcodes – Snoop (SNP) Kanal-Nachrichten) in die entsprechenden Snoops für alle die anfordenden Beaufsichtiger in der Verzweigungsset von Cache-Agenten zu konvertieren. Der Verzweigungsset ist ein Konfigurationsparameter der Routing-Schicht, die durch die Protokollschicht oder einen Hausagent Konfigurationsparameter geteilt wird.
- In einigen Realisierungen, kann ein Hausagent ein Verzweigungssnoop für eine aktive standard Reaktion senden. Die HPI-Routing-Schicht kann die Verzweigungssnoop Anfrage des Hausagent in regelmäßigen Snoops zu jedem des Beaufsichtiger, der durch die Routing-Schicht in der Verzweigungskegel definiert ist, konvertieren. Die HPI-Kohärenzprotokoll Hausgent wird bewusst, welche Kohärenz-Agenten, die durch die Routing-Schicht-Verzweigung bedeckt sind, die über eine HAFan out Agent Konfigurations parameter, der derjeweiligen Cache-Agenten der Verzweigungskegel nach Adresse enthaltet. Der Routing-Schicht kann die Verzweigungssnoop SnpF empfangen und wandelt es in ein Snoop für jeden enthaltenden Cache-Agent in der Verzweigungskegel (mit Ausnahme des anfordernden Agenten). In einer Realisierung kann die Routing-Schicht die Verzweigungsnoop in der entsprechenden nicht-Verzweigungssnoops (mit entsprechenden nicht-Verzweigung Opcodes, wie in Tabelle 3), unter anderen Beispielen, konvertieren.
- Ähnlich wie regelmäßige Snoops, ein Hausagent kann auf das Senden eines Verzweigunssnoops begrenzen, nur bevor es einen Abschluss als Reaktion auf eine Anfrage von Kohärenz-Protokoll durch einen Cache-Agent sendet. Es kann auch zusätzliche Bedingungen für die Verzweigungsnoops platziert werden. Als Beispiele, ein Hausagent kann eine Verzweigungssnoop senden, wenn sie nicht einer der Beaufsichtiger in der Verzweigungskegel spioniert. Mit anderen Worten, ein Hausagent kann nicht eine Verzweigungssnoop einföhren, in einiger Realisierungen, wenn der Verzweigungskegel leer ist oder wenn der anfordernde Cache-Agent der einzige Agent in der Verzweigungskegel ist, unter anderen Beispielen.
- In einer Ausführungsform, HPI kann ein explizites Züruckschreiben mit Cache-Push Hinweis (WbPushMtoI) unterstützen. Im Allgemeinen wird in einigen Beispielen, die modifizierten Daten entweder explizit Schreiben in den Speicher züruck, oder die geänderten Daten in Reaktion auf einen Snoop-Reaktion übertragen werden. Die Übertragung der modifizierten Daten in Verbindung mit einer Snoop-Reaktion kann als ein ”Pull” transfer definieren. In einiger Realisierungen kann ein ”Push”-Mechanismus unterstützt werden, wodurch ein Cache-Agent mit der modifizierten Daten direkt an einen anderen Cache-Agent zum Speichern in dem Cache des Zielagenten sendet (zusammen mit dem modifizierten Cache-Zustand).
- In einer Ausführungsform, ein Cache-Agent kann modifierten Daten züruckschreiben mit einem Hinweis an den Hausagent, dass es die modifizierten Daten in einem ”lokalen” Cache drücken könnte, die Daten in M-Zustand im lokalen Cache zu sperichern, ohn die Daten in den Speicher zu schreiben. In einer Realisierung, ein Hausagent
710 kann eine WbPushMtoI Nachricht von einem Cache-Agenten705 empfangen und den Hinweis identifizieren, dass ein anderer Cache-Agent (zB720 ) nutzen will oder vor einem Eigentum an einer bestimmten Linie in der naheren Zukunft wünscht, wie in dem Beispiel12 . Gezeigt wird. Der Hausagent710 kann die WbPushMtoI Nachricht verarbeiten und die effektive Andeutung akzeptieren und die zurückgeschrieben Daten an den andere Cache-Agent720 ohne das Schreiben der Daten in den Speicher715 drücken, wodurch der andere Cache-Agent720 bis zu einer M-Zustand hervorrufen. In einiger Realisierungen, der Hausagent710 kann alternativ WbPushMtoI Nachricht verarbeiten und entscheidet sich, um die Daten wieder in den Speicher schreiben, wie in einer WbMtoI Anfrage (wie in13 illustriert) und die züruckgeschriebenen Daten nicht direkt in einem anderen Cache-Agent720 drücken. - In einem Beispiel von Realisierung, ein Hausagent (zB
710 ) kann eine WbPushMtoI Nachricht verarbeiten, indem der Tracker Zustand WbBuffered, der anzeigen kann, dass der Hausagent die Daten noch nicht verarbeitet, checken. In einigen Fällen, ein ”push” der Daten kann bei dem Hausagent bestimmt wird, dass der Heimatagent nicht bereits ist, die Bearbeitung einer Standardanforderung an die gleiche Adresse zu konditionieren. In einigen Realisierung, die Schub kann weiter von dem Hausagent bestimmt wird, dass der gezielte Cache-Agent (zB720 , im Beispiel12 ) werden ”local” konditioniert. Wenn der gezielte Cache-Agent nicht von dem Hausagent Verzeichnis bedeckt wird, dann der Hausagent kann die Daten in den Cache des Ziel Cache-Agent übertragen und das Verzeichnis ungültig aktualisieren. Wenn der gezielte Cache-Agent von dem Verzeichnis abgedeckt wird, dann dürfte die Datenübertragung in den Cache des Cache-Agenten nur gelassen werden, wenn der gezielte Cache-Agent nicht über eine aktive InvXtoI verfügt, und wenn über den Hausagent das Verzeichnis in Exclusive mit dem gezielten Cache-Agenten als Eigentümer aktualisieren. Andere Bedingungen werden (zB in einer entsprechenden Protokoll-Zustandstabelle) für ein Hausagent bei der Bestimmung definiert, ob der Hinweis auf die Mitteilung WbPushMtoI annehmen und die Daten auf einen gezielten Cache-Agent drängen oder statt die Verarbeitung WbPushMtoI Nachricht als WbMtoI einer Antrag mit dem Schreiben der ersten Daten in den Speicher, unter anderen möglichen Beispielen. - In einigen Reralisierungen, HPI kann eine InvItoM Nachricht unterstützen, um ein Verzeichnis-Cache eines Hausagent vorzubelegen, wie ein I/O-Verzeichnis-Cache (IODC). Ein InvItoM kann ein exklusives Eigentum einer Cache-Linie anfragen, ohne den Empfang von Daten, während sie eine Absicht der Durchführung eines Züruckschreiben danach bald verlangen. Ein erforderlicher Cache-Zustand kann ein M-Zustand, und E-Zustand, oder auch beide sein. Ein Hausagent kann eine InvItoM Nachricht verarbeiten, um eine Ressource für das Züruckschreiben durch die InvItoM Nachricht vorzubelegen (einschließlich der InvItoM Opcode).
- In einiger Realisierungen, kann ein Opcode durch HPI-Kohärenz-Protokoll bereitgestellt werden, um einen Speicherstrom der Speichersteuerung mit einem oder mehreren intergierten Hausagenten, auszulösen. Zum Beispiel, ein Opcode, WbFlush, kann zu einem persistenten Speicherstrom definiert werden. Wie im Beispiel, der
14 , ein Gast (zB1405 ) kann eine WbFlush Nachricht an einen bestimmten Speichercontroller1410 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 (beispielsweise1410 ) 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 der14 , bei dem Abspritzen (oder Einleiten der Abspritzen) alle anhängigen Schreibvorgänge in Speicher (zB1415 ), die Speichersteuerung1410 kann zu dem anfordernden Gast (oder Agenten) (zB1405 ) mit einem Abschluss reagieren. Die Fertigstellung soll nicht an den Gast gesendet werden, bis die Speichersteuerung versichert hat, dass die Daten in dem persistenten Speicher machen müssen. Die WbFlush Nachricht oder entsprechenden Abschluss kann als Kontrollstelle für andere Prozesse und Steuerung abhängig oder den Antrieb des schwebenden Screiben in dem Speicher, unter anderer Verwendung und Beispiele. - Einige traditionellen Architekturen können für Data_M erfordern und entsprechende vervollständig separat gesendet werden. HPI verlängert, um die Kohärenz-Agenten die Annahme einer kombinierten Data_M_CmpO unterstützt werden. Ferner kann Hausagent konfigurieren, um eine kombinierte Data_M_CmpO Nachricht über Pufferung des impliziten Züruckschreiben-Daten zu erzeugen. Tatsächlich kann in einigen Realisierungen, ein Agent mit Logik, die Cache-und Hausagents Verhaltensweisen kombiniert, so daß, wenn der Agent eine Anforderung empfängt und M-Daten in seinem Cache findet, kann direkt die Data_M_CmpO erzeugen. In solchen Fällen kann die Data_M_CmpO Reaktion erzeugen, ohne ein RspIWb oder Pufferzüruckschreibedaten, unter anderen Beispielen.
- In einem anderen Beispiel, wie in dem Beispiel Protokollzustandstabelle
1500 15 dargestellt, eine Standsmaschine (von einer lesbaren Standmaschine Tabelle verkörpert (zB1500 )) 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 Tabelle1500 gezeigt, in einem Beispiel, ein Hausagent kann nicht erlauben, eine CMPO Abschlussmeldung zu einer Anfrage um Rd* zu lesen, sendet, das effektiv bedeutet, dass ein Hausagent, eine Reaktion bevor oder mit einem Abschluss sendet. In Fällen, in denen eine Daten_X Reaktion kann an den Hausagents Reaktion nachricht gesendet werden soll, kann der Hausgent die Daten-Reaktion mit einem Abschluss kombinieren und statt diese zu senden. - Der Zustand der Daten Reaktion kann zum ungültigen Rwaktionen und RdCur fixiert werden. Für RdMigr und RDDATA, nicht-geteilten Zustandverzeichnis können die E-Daten Sendung erlauben. Für RdMigr, RDDATA und RdCode, kann ein geteilten Zustandverzeichnis die Prüfung beinhalten, wenn alle Beaufsichtiger, die F Zustand abgehört wurden. Wenn sie waren, können die Daten mit F Zustand gesendet werden; Andernfalls können die Daten in S-Zustand gesendet werden, in dem Fall wenn ein losrissenden Beaufsichtiger eine F-Kopie hat, unter anderen möglichen Beispiele. Ferner kann ein Hausagent ein Data_M oder Data_M_CmpO Reaktion senden, in einigen Realisierungen nur wenn es die Daten aus einer RspIWb snoop Reaktion puffert. Wenn ein Hausagent RspIWb Daten puffert, kann er die Daten in dem Tracker-Eintrag speichern und den Eintragzustand zu einem WbBuffered ändert. Bitte beachten, dass, wenn ein Hausagent die Daten RspIWb puffert statt es in dem Speicher zu schreiben, sendet er eine Data_M oder Data_M_CmpO Reaktion in diesem Beispiel.
- In einer Ausführungsform, wie oben erwähnt, HPI-Kohärenz-Protokoll kann eine F Zustand, der einen Cache-Agent die F-Zustand bei der Weiterleitung der gegebenen Daten, unterstützen. In einigen Systemen oder Instanzen, die F (vordere) Cache-Zustand kann weiterleitbare sein. Wenn ein Cache eine Linie im F-Zustand hält und einen Snoop erhält, die eine Übertragung die geteilten Daten ermöglicht, der Cache kann die Daten übermitteln, und wenn es das tut, es kann die F Zustand mit den Daten senden und in seinem Cache Zustand S (oder I) vorübergehen. In einigen Umständen ist es wünschenswert, dass der Cache den Zustand F bei der Übermittlung der Daten anstelle haltet, in diesem Fall er wird an S-Zustand mit den übermittelten Daten senden.
- In einem Beispiel kann die Fähigkeit eines Cache-Agent zu halten oder ein F Zustand auf einem gemeinsam genutzten Übertragung zu übergeben kann kontrollierbar sein. In einem Beispiel, ein Konfigurationsparameter, pro Kohärenz-Agent kann anzeigen, ob ein Kohärenz-Agent übertragen wird, oder an einem F-Zustand halten. Unabhängig von der Parametereinstellung, die Kohärenz-Agent kann die gleiche Snoop Reaktion (zB RspFwdS) verwenden. Im zusätzlichen Fällen von einem Agent mit der Linie E Zustand, wenn der Snoop eintrifft, kann der Cache-Agent den Cache-Zustand in F übergehen, wenn die Weiterleitung der S-Daten und das Senden der RspFwdS Reaktion (wenn der Parameter auf F Zustand zu halten). In zusätzlichen Fällen mit einem Agent, der die Linie in M (voll) Zustand hat, wenn der Snoop kommt, der Cache-Agent kann seine Cache-Zustand zu F degradieren bei der Weiterleitung der S-Daten, Zurückschreiben die Daten in dem Speicher, und das Senden der RspFwdSWb Reaktion (wenn der Parameter auf F Zustand halten). Ferner kann ein Kohärenz-Agent mit F Zustand, der eine ”geteilten” Snoop erhält oder weiterleitet, kann nach Snoop F Zustand halten, während das Senden S-Zustand an den anfordernden Agenten. In anderen Fällen kann die Konfigurationsparameter umgeschaltet werden, damit der Zustand F zu einer Verlagerung der gemeinsamen Daten und der Übergang zu einer S (oder I) Zustand überführt werden, unter anderen Beispielen. Tatsächlich, wie in dem Beispiel Zustandstabelle
1600 16 gezeigt wird, kann ein Cache-Agent in F Zustand in einer Vielzahl von Möglichkeiten reagieren, darunter ist ein SnpMigr/FwdMigr, F, F, RspFwdS, Data_s, unter anderen Beispielen. - Wie oben erwähnt, in einigen Reaktionen, die Zustandsübergänge von einer Cache-Linie und Agents können unter Verwendung einer Zustandsmaschine gesteuert werden. In einer Realisierung kann die Zustandsmaschine durch einen Satz oder eine Bibliothek von Zustandstabellen durchgeföhrt werden, damit detailliert allen verschiedenen Kombinationen von Befehlen, Attribute vorherigen Zustände detailliert definiert werden, und andere Bedingungen, die beeinflussen können, wie die Zustandsübergänge statttfinden, sowie die Arten von Nachrichten, Datenoperationen, Masken, usw., die mit dem Zustandsübergang zugeordnet werden kann (wie in den speziellen Beispielen der
15 und16 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 Protokollzustandstabelle1700 , in einem Beispiel, kann Spalten enthalten (beispielsweise1705 ) in Bezug auf aktuelle Zustände (oder den Zuständen, von dem ein Übergang gemacht werden soll), und andere Spalten (beispielsweise1710 ) 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 Tabelle1700 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 (zB1710 ) 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. (zB1705 ). Der nächste Zustand Spalten (zB1710 ) 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 Reihen1715 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 in18 , kann eine beispielweise Protokoll Statustabelle1700 kann ein eingebettetes Referenz1805 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 Tabelle1700 . Mehrere Tabellen (zB,1700 ,1810 ) kann eine verschachtelte Tabelle (zB1800 ) sich beziehen. Als Beispiel kann ein Agent der Verarbeitung einkommenden Reaktionen zu Protokoll Reaktion eine Aktionstabelle (zB,1700 ,1810 ) und eine Teilaktion Tabelle1800 respondieren. Hier eine Aktionstabelle1700 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 und20 , vereinfachte Blockdiagramme1900 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 der19 , einen Testmotor1900 vorgesehen ist, um eine Zustandsmaschine eines Protokolls zu überprüfen. In einem Beispiel kann Testmotor1900 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 Testmodul1900 im Beispiel von1905 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-Agents1915 . Ebenso wie in dem Beispiel von1900 kann Statustabellen1905 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 Testmodul1900 model Agent und real oder modellierte Protokollmeldungen, z. B. HPI-Kohärenz-Protokollnachrichten, und Verweis Zustand Tabellen1905 (oder eine andere analysierbarem Struktur generiert von Statustabellen1905 ) empfangen kann automatisch eine entsprechende Reaktion erzeugen, führen Sie entsprechende Zustandsübergänge und So weiter, auf der Grundlage von die Statustabellen1905 . - 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
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. Prozessor2100 , in einer Ausführungsform enthält mindestens zwei Kerne – Kern2101 und2102 , die asymmetrische Kerne oder symmetrische Kerne (illustrierte Verkörperung) enthalten kann. Prozessor2100 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
2100 enthält zwei Kerne – Kern2101 und2102 . Hier sind Core2101 und2102 symmetrische Kerne, d. h. die Kerne mit dem gleichen Konfigurationen, die Funktionseinheiten bzw. die Logik betrachtet. In einer weiteren Ausführungsform beinhaltet Core2101 eine Out-of-Order-Prozessorkern, während Kern2102 ein Prozessorkern in Reihenfolge enthält. Kerne2101 und2102 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 Kern2101 illustriert ausführlich weiter unten beschrieben, da die Einheiten im Kern2102 in ähnlicher Weise in der dargestellten Ausführungsform tätig sind. - Wie dargestellt, Kern
2101 beinhaltet zwei Hardware threads,2101a und2101b , die auch als Hardware bezeichnet werden kann Thread Slot Machines,2101a und2101b . Daher anzeigen Softwareeinheiten, wie ein Betriebssystem in einer Ausführungsform potenziell Prozessor2100 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 registriert2101a , ein zweiter Thread ist verbunden mit Architektur Staat registriert2101b , ein Dritter Thread kann verbunden werden mit Architektur Staat registriert2102a , und ein vierter Thread kann verbunden werden mit Architektur Staat registriert2102b . Hier kann jeder der Architektur-Status-Register (2101a ,2101b ,2102a und2102b ) werden als bezeichnet Verarbeitung Elemente, Thread-Steckplätze oder Thread-Einheiten, wie oben beschrieben. Wie dargestellt, Architektur-Status-Register2101a repliziert werden in der Architektur Zustand registriert2101b , so dass individuelle Architektur Staaten/Kontexte für logische2101a und logischen Prozessor2101b gespeichert werden können. Im Kern2101 , andere kleineren Ressourcen, wie z. B. Anweisung Zeiger und Logik in der Zuweisung und Renamer Block2130 umbenennen können auch repliziert werden für Fäden,2101a und2101b . Einige Ressourcen, wie z. B. neu anordnen Puffer in neu ordnen/Ruhestand Einheit2135 , ILTB2120 , 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-TLB2151 , Ausführung Stck2140 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.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 Zielpuffer2120 vorherzusagen Zweige ausgeführt/getroffen werden und einen Unterricht-Übersetzung-Puffer (I-TLB)2120 Übersetzung Adresseinträge Anweisungen speichern. - Kern
2101 weitere umfasst decodieren Modul2125 gekoppelt um Einheit2120 zum Dekodieren von abgerufenen Elemente zu holen. FETCH-Logik, in einer Ausführungsform, umfasst einzelne Sequenzer Thread zugeordnete2101a ,2101b , bzw. slots. In der Regel ist Kern2101 eine erste ISA, gibt definiert/Prozessor2100 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 Decoder2125 , in einer Ausführungsform, erläutert beispielsweise Logik entwickelt oder angepasst, um genauere Anweisungen, z. B. Transaktions-Anweisung zu erkennen. Durch die Anerkennung von Decodern2125 Architektur oder Kern2101 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 Decoder2126 , in einer Ausführungsform, die gleichen ISA (oder eine Teilmenge davon) erkennen. In einer Umgebung mit heterogenen Kern erkennen Decoder2126 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äden2101a und2101b sind potenziell in der Out-of-Order-Ausführung, wo Zuweisung und Renamer Block2130 behält sich vor, andere Ressourcen, z. B. Nachbestellungen Puffer, Anweisung Ergebnisse zu verfolgen. Einheit2130 kann auch eine Register-Renamer zum Programm/Anleitung-Referenz-Register zu den anderen Registern internen Prozessor2100 umbenennen enthalten. Nachbestellungen/Ruhestand Einheit2135 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 Stck2140 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 und2102 Anteil auf höherer Ebene oder weitere dezentrales Cache, z. B. einer zweiten Ebene Cache auf dem Chip Schnittstelle2110 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 Prozessor2100 – 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 Decoder2125 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-Schnittstellenmodul2110 . Historisch gesehen ist ein Speicher-Controller, die im folgenden näher beschrieben wird, in ein Computersystem externen Prozessor2100 aufgenommen worden. In diesem Szenario ist auf dem Chip-Schnittstelle2110 mit Geräten außerhalb Prozessor2100 , z. B. Systemspeicher2175 , einen Chipsatz (oft auch ein Speicher-Controller-Hub zum Herstellen einer Verbindung mit Speicher2175 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 Bus2105 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 Prozessor2100 oder gemeinsam mit anderen Geräten in einem System. Häufige Beispiele für Speichertypen2175 DRAM, SRAM, nicht-flüchtigen Speicher (NV-Speicher) und andere bekannte Speichergeräte. Hinweis: dieses Gerät2180 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 Prozessor2100 . 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. Arbeitsspeicher2175 oder eine Grafikeinheit2180 . 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-Schnittstelle2110 umfasst ein Ring interconnect für on-Chip Kommunikation und ein High-Speed serielle Punkt-zu-link2105 für off-Chip-Kommunikation. Doch, in der Umgebung von SOC auch weitere Geräte, z. B. die Netzwerkschnittstelle, Co-Prozessoren, Speicher2175 , Grafikprozessor2180 , 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 Code2177 kompilieren, übersetzen bzw. Anwendungscode2176 zur Unterstützung der Apparate und hierin oder in Schnittstelle damit beschriebenen Methoden zu optimieren. Ein Compiler enthält oft ein Programm oder eine Sammlung von Programmen zum Zielcode Text/Text/Quellcode übersetzen. In der Regel der Programmanwendung/Code mit einem Compiler erfolgt in mehreren Phasen und übergibt Stücklistenebene Maschine oder Assembler-Ebene Programmcode Sprache umzuwandeln. Single-Pass-Compiler können doch noch für einfache Zusammenstellung genutzt werden. Ein Compiler kann alle bekannten Zusammenstellung-Techniken nutzen und alle bekannten Compiler Operationen, wie lexikalische Analyse, Vorverarbeitung, Analyse, semantische Analyse, Codegenerierung, Code-Transformation und Code-Optimierung. - Größere Compiler enthalten oft mehrere Phasen, aber meistens diese Phasen sind enthalten in zwei allgemeine Phasen: (1) ein Front-End, d. h. in der Regel syntaktische Verarbeitung, semantische Verarbeitung und einige Transformation/Optimierung können beschließen Ort und (2) ein Back-End, d. h. in der Regel wo Analyse, Transformationen, Optimierungen und Code Generation findet statt. Einige Compiler beziehen sich auf eine Mitte, die veranschaulicht, die Verwischung der Abgrenzung zwischen ein Front-End- und Back-End eines Compilers. Infolgedessen auf die Einfügung, Vereinigung, Generation, oder andere Operation eines Compilers in eines der oben genannten Phasen oder Abos, sowie alle anderen bekannten Phasen oder Bahnen eines Compilers stattfinden kann. Als illustrative Beispiel fügt ein Compiler möglicherweise Operationen, Anrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung z. B. Einfügen von Aufrufe/Operationen in einer Front-End-Phase der Kompilierung und dann die Umwandlung der Anrufe/Operationen in Low-Level-Code in einer Transformationsphase. Beachten Sie, dass bei der dynamischen Kompilierung, Compiler oder dynamische Optimierung Code kann solche Operationen/Aufrufe einfügen, sowie optimieren Sie den Code für die Ausführung während der Laufzeit. Als ein konkretes illustrativen Beispiel kann Binärcode (bereits kompilierten Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode die dynamische Optimierung-Code, der binäre Code oder eine Kombination davon enthalten.
- Ähnlich wie bei einem Compiler, Übersetzer, z. B. eine binäre Übersetzer übersetzt Code entweder statisch oder dynamisch zu optimieren bzw. Code zu übersetzen. Daher auf die Ausführung von Code, Anwendungscode, Programmcode, oder andere Software-Umgebung steht für: (1) Ausführung eines Compilers Programme, Code-Optimierung Optimierung oder Übersetzer entweder dynamisch oder statisch, kompilieren Sie Programmcode, um Softwarestrukturen, um andere Operationen, um Code zu optimieren, oder Code; zu übersetzen zu erhalten (2) Ausführung der wichtigsten Programm-Code einschließlich Operationen/Anrufe, z. B. Anwendungscode, der optimiert/zusammengestellt hat; (3) Ausführung von anderen Programmcode, wie z. B. Bibliotheken, verbunden mit dem Hauptprogramm-Code weiterhin Softwarestrukturen, um andere Software auszuführen damit zusammenhängende Tätigkeiten, oder zur Optimierung von Code; oder (4) eine Mischung aus beidem.
- Während die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Verkörperungen beschrieben wurde, werden diese fachkundige zahlreiche Modifikationen und Variationen daraus zu schätzen wissen. Es ist vorgesehen, dass die angefügten Ansprüche als in der wahren Geist und Umfang dieser vorliegende Erfindung fallen solche Modifikationen und Variationen abdecken.
- Eine Design kann durch verschiedene Phasen, von der Erstellung bis zur Simulation zur Fertigung gehen. Daten, die eine Design können das Design in verschiedener Weise darstellen. Erstens kann sich wie in Simulationen sinnvoll ist, die Hardware zum vertreten sein mit einer Hardware-Beschreibungssprache oder anderssprachigen Funktionsbeschreibung. Darüber hinaus kann ein Level Schaltung-Modell mit Logik und/oder Transistor-Gates in einigen Phasen des Design-Prozesses hergestellt werden. Darüber hinaus erreichen die meisten Designs, irgendwann ein Maß an Daten, die die physische Speicherung verschiedener Geräte in der Hardware-Modell darstellen. In dem Fall, wo konventionelle Halbleiter Fertigungstechniken verwendet werden, möglicherweise die Daten, die das Hardware-Modell der Daten vom Vorhandensein oder Fehlen von Funktionen auf verschiedenen Ebenenmasken für Masken verwendet, um die integrierte Schaltung erzeugen. In einer Darstellung des Designs können die Daten in irgendeiner Form eines Mediums maschinenlesbar gespeichert werden. Eine Erinnerung oder einen magnetischen oder optischen Speicher beispielsweise einen Datenträger möglicherweise das maschinenlesbar Medium zum Speichern von Informationen über optische übertragen oder elektrische Welle moduliert oder auf andere Weise generiert, um diese Informationen zu übermitteln. Wenn eine elektrische Trägerwelle, die angibt, oder tragen den Code oder Entwurf übertragen wird, die Pufferung, kopieren, oder erneute Übertragung des elektrischen Signals erfolgt, wird eine neue Kopie gemacht. So kann eine Kommunikation-Anbieter oder einem Netzwerkanbieter auf einem greifbaren, maschinenlesbaren Medium zumindest vorübergehend einen Artikel, wie kodiert eine Trägerwelle Informationen speichern mit Techniken der Verkörperungen der vorliegenden Erfindung.
- Ein Modul im Rahmen dieser Vereinbarung bezieht sich auf eine beliebige Kombination aus Hardware, Software und Firmware. Als Beispiel, ein Modul umfasst Hardware, wie ein Mikro-Controller, verbunden mit einem nicht vergänglich Medium zum Speichern von Code angepasst, um von den Mikro-Controller ausgeführt werden. Verweis auf ein Modul, in einer Ausführungsform, bezieht sich deshalb auf die Hardware, die speziell konfiguriert ist, zu erkennen und/oder führen Sie den Code auf einem nicht vergänglich Medium stattfinden. Darüber hinaus in einer weiteren Ausführungsform, Einsatz eines Moduls bezieht sich auf das nicht vergänglich Medium einschließlich des Codes, die speziell vom Mikrocontroller vorgegebenen Operationen ausgeführt werden. Und wie abgeleitet werden kann, in noch einer weiteren Ausführungsform, das Laufzeit-Modul (in diesem Beispiel) steht für die Kombination von den Mikrocontroller und das Medium, nicht vergänglich. Oft Modul Grenzen, die häufig als getrennt dargestellt werden, variieren und potenziell überlappen. Beispielsweise können eine erste und eine zweite Modul Hardware, Software, Firmware oder eine Kombination davon, teilen Beibehaltung aller potenziell einige unabhängige Hardware-, Software- oder Firmware. Verwenden Sie in einer Ausführungsform den Begriff Logik Hardware, wie z. B. Transistoren, Register oder sonstige Hardware, wie programmierbare Logik umfasst.
- Verwendung des Ausdrucks ”konfiguriert,' in einer Ausführungsform, bezieht sich auf Anordnung, Zusammenstellung, Produktion, anbieten, verkaufen, importieren und/oder entwerfen ein Apparat, Hardware, Logik oder Element einer benannten oder festgestellten Aufgabe. In diesem Beispiel ein Gerät oder ein Element davon, die nicht in Betrieb ist ist immer noch ”so konfiguriert, dass' eine bestimmte Aufgabe ausführen ist es ausgelegt, gekoppelt, und/oder miteinander ausführen sagte festgelegten Aufgabe. Als rein illustrativen Beispiel können eine logische Schaltung während des Betriebs eine 0 oder 1. Aber eine Logik-Gate'so konfiguriert, dass' bieten ein Enable-Signal zu einem Takt schließt nicht jede mögliche logische Schaltung, die eine 1 oder 0 liefern können. Ist vielmehr die logische Schaltung gekoppelt in irgendeiner Weise, die während des Betriebs die Ausgabe 1 oder 0 ist es, die Uhr zu ermöglichen. Beachten Sie nochmals, dass die Verwendung des Begriffs 'Konfiguration' Betrieb nicht erforderlich, sondern stattdessen auf den latenten Zustand der einen Apparat, Hardware und/oder Element, konzentrieren, wo in die latente Angabe den Apparat, Hardware, oder Element wurde entwickelt, um eine bestimmte Aufgabe ausführen, wenn die Geräte, Hardware und/oder Element arbeitet.
- Darüber hinaus nutzen Sie die Phrasen ',' 'fähig, von /' und oder 'bedienbar,' in einer Ausführungsform, bezieht sich auf einige Apparate, Logik, Hardware, und/oder Element entwickelt, so aktivieren Sie die Verwendung der Apparate, Logik, Hardware und/oder Element in einer angegebenen Weise. Beachten Sie, wie oben, bei der Nutzung zu, fähig oder bedienbar, in einer Ausführungsform, in den latenten Zustand ein Apparat, Logik, Hardware und/oder Element verweist, wo der Apparat, Logik, Hardware und/oder Element ist nicht betriebsbereit, aber soll in einer Weise Verwendung einer Vorrichtung in einer angegebenen Weise ermöglichen.
- Ein Wert enthält, im Rahmen dieser Vereinbarung, jede bekannte Darstellung eine Zahl, einen Zustand, einen logischen Zustand oder eine binäre logische Zustand. Oft die Verwendung von Logikpegeln, Logik-Werte oder Wahrheitswerte nennt man auch als 1 und 0, die einfach binären Logik Zustände darstellt. Beispielsweise eine 1 bezieht sich auf eine hohe Logikpegel und 0 bezieht sich auf eine niedrige Logikpegel. In einer Ausführungsform kann eine Speicherzelle, z. B. ein Transistor oder flash Zelle, halten einen einzelnen logischen Wert oder mehrere logische Werte können. Jedoch wurden andere Darstellungen der Werte in Computersystemen eingesetzt. Zum Beispiel kann die Dezimalzahl 10 auch als binäre Wert
2110 und eine hexadezimale Buchstaben a dargestellt werden Daher beinhaltet ein Wert jede Darstellung von Informationen fähig gehalten in einem Computersystem. - Darüber hinaus können Staaten durch Werte oder Teile von Werten dargestellt werden. Als Beispiel Ausgangszustand, wohingegen der zweite Wert, wie eine logische Null, kann einen Staat nicht der Standardkonfiguration darstellen oder ein erster Wert, wie eine logische kann einen Standard darstellen. Darüber hinaus beziehen sich die Begriffe zurücksetzen und festgelegt, in einer Ausführungsform, einer Standard und einer aktualisierten Wert und jedem Staat. Beispielsweise einen Standardwert enthält möglicherweise ein hoher Wahrheitswert, d. h. zurücksetzen, während ein aktualisierter Wert potentiell niedrigen logischen Wert enthält, d. h. Set. Beachten Sie, dass jede Kombination von Werten genutzt werden kann, um eine beliebige Anzahl von Staaten darstellen.
- Die Verkörperungen der Methoden, Hardware, Software, Firmware oder Code, die oben genannten können durchgeführt werden, über Anweisungen oder Code auf eine Maschine zugänglich, Maschine lesbar, Computer zugänglich oder Computer lesbaren Datenträger die ausführbare sind durch eine Verarbeitung Element gespeichert. Eine nicht vorübergehende Maschine-zugänglich/lesbaren Datenträger enthält keinen Mechanismus, der bereitstellt (d. h. speichert bzw. überträgt) Informationen in einer Form, die von einer Maschine wie einen Computer oder ein elektronisches System gelesen werden. Beispielsweise enthält ein nicht vorübergehende Maschine-zugängliches Medium random access memory (RAM), z. B. Statisches RAM (SRAM) oder dynamisches RAM (DRAM); ROM; magnetische oder optische Speichermedien; Flash-Speichergeräte; elektrische Speicher-Devices; optische Speichermedien; akustische Speichergeräte; andere Form von Speicher-Devices für die Abhaltung von vergänglichen erhaltenen Informationen (weitergegeben) Signale (z. B. Carrier Wellen, Infrarot-Signale, digitale Signale); etc., die sollen von den nicht-transitorische Medien unterschieden werden, die dort von Informationen erhalten kann.
- Anweisungen zum Programmlogik auszuführenden Verkörperungen der Erfindung können innerhalb eines Memory in das System, wie DRAM, Cache, flash-Speicher oder anderen Speicher gespeichert werden. Darüber hinaus können die Anweisungen über ein Netzwerk oder über andere Computer-lesbaren Medien verteilt werden. So ein maschinenlesbarer Medium kann keinen Mechanismus für die Speicherung oder Übertragung von Informationen in einer lesbaren Form von einer Maschine (z. B. Computer) unter anderem ist nicht beschränkt auf floppy-Disketten, optische Datenträger, CD, Read – Only Memory (CD-ROMs) und Magneto-optische Datenträger, Read – Only Memory (Rom), Random Access Memory (RAM), Erasable Programmable Read-Only Memory (EPROM), elektrisch Erasable Programmable Read-Only-Speicher (EEPROM), magnetische oder optische Karten, flash-Speicher oder eine greifbare, maschinenlesbaren Speicher verwendet bei der Übertragung von Informationen über das Internet durch elektrische, optische, akustische oder andere Formen der übertragene Signale (z. B. Carrier Wellen, Infrarot-Signale, digitale Signale, etc.). Dementsprechend enthält der Computer-lesbaren Datenträger jeder Art von greifbaren maschinenlesbaren Medium geeignet für Speicherung oder Übertragung von elektronischen Anweisungen oder Informationen in einer lesbaren Form von einer Maschine (z. B. Computer).
- Die folgenden Beispiele beziehen sich auf Verkörperungen gemäß dieser Spezifikation. Eine oder mehrere Verkörperungen vorsehen, ein Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage erhalten, die auf einen ersten Agent zu verweisen und eine bestimmte Leitung des Speichers in einem exklusiven Zustand zwischengespeichert werden an senden eine Snoop-Anforderung bestimmt für ein oder mehrere andere Agenten, Snoop beantwortet, das einen Kundendienstmitarbeiter verweisen, die Snoop-Reaktion auf ein Rückschreiben in Erinnerung an eine modifizierte Cachezeile gehören, ist die bestimmte Linie des Speichers entsprechen, und der erste Agent, worin das komplette besteht darin, Daten der besonderen Linie Speicher eine komplette richten schicken, basierend auf Rückschreiben.
- Bei mindestens einem Beispiel wird die modifizierte Cachezeile in bestimmten Zeile Speicher geschrieben.
- Bei mindestens einem Beispiel wird festgestellt, dass der Cache der zweite Agent eine modifizierte Cachezeile besteht. Das komplette kann vor dem Empfang von Antworten auf alle entsprechend der Anforderung aus der erste Agent basierend auf Feststellung, dass der Cache der zweite Agent eine modifizierte Cachezeile ist Snoop-Anforderungen gesendet werden.
- Bei mindestens einem Beispiel, die Snoop-Anfrage umfasst eine Snoop Antrag ungültig. Snoop ungültig Anfrage kann es sein, den Cache des empfangenden andere Agent, die bestimmten Zeile oder Speicher entspricht ungültig. Snoop ungültig Anfrage erkennen die besondere Linie Speicher und einen Befehl in der Anfrage vom ersten Agenten enthalten.
- Bei mindestens einem Beispiel kann ein Verzeichnis-Zustand überführt werden, um anzugeben, dass die bestimmten Speicher mit einem exklusiven Zustand verbunden ist.
- Eine oder mehrere Verkörperungen können bieten einen Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage zu empfangen, die eine Anforderung für eine bestimmte Cachezeile in einem exklusiven Status senden und empfangen von Daten aus dem Speicher gemäss der bestimmten Cache, wobei bestimmten Daten Daten geschrieben-zurück in den Speicher von einem anderen Agenten nach Anfrage umfasst.
- Bei mindestens einem Beispiel ist die besondere Cachezeile in einem ungültigen Zustand vor dem Request.
- Bei mindestens einem Beispiel ist der exklusive Zustand einer E-Staat darauf hinweist, dass eine Kopie der Daten in die bestimmten Cachezeile den Speicher entspricht und eine exklusive Abschrift ist.
- Bei mindestens einem Beispiel werden die bestimmten Daten in bestimmten Cachezeile kopiert. Die besondere Cachezeile kann in einen exklusiven Status basierend auf bestimmten Daten empfangen überführt werden.
- Bei mindestens einem Beispiel enthält die Daten geschrieben-zurück in den Speicher von einem anderen Agenten Daten in Reaktion auf eine Snoop entspricht der Anforderung für die bestimmten Cachezeile in einem exklusiven Zustand zurückgegeben.
- Bei mindestens einem Beispiel Snoop gehört zu einer Pluralität von Snoops und bestimmten Daten vor Antworten, die für die einzelnen Anforderungen Snoop zurückgegeben wird empfangen werden.
- Eine oder mehrere Verkörperungen vorsehen, ein Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage zu empfangen, die eine explizite Rückschreiben-Anforderung empfangen, worin die explizite Rückschreiben-Anforderung ist eine modifizierte Cachezeile entsprechen, die zu einer bestimmten Zeile Speicher entsprechen, und die explizite Rückschreiben-Anforderung enthalten einen Hinweis darauf, dass ein weiterer Cache ist die besondere Leitung des Speichers an, bestimmen, ob Daten über die modifizierte Cachezeile in den anderen Cache vor dem Schreiben der Daten über die modifizierte Cachezeile in bestimmten Zeile Speicher schieben, und senden Sie eine vollständige, um die explizite Rückschreiben-Anforderung zu entsprechen.
- Bei mindestens einem Beispiel soll bestimmen nicht, drücken Sie die Daten dazu führen, dass die Daten der die modifizierte Cachezeile in bestimmten Zeile Speicher geschrieben werden.
- Bei mindestens einem Beispiel sind die Daten über die modifizierte Cachezeile nicht zu dem anderen Cache abgelegt werden.
- Bei mindestens einem Beispiel kann ein Verzeichnis Staat gemäss der bestimmten Speicher aus einem exklusiven Staat zu einem ungültigen Zustand überführt werden.
- Bei mindestens einem Beispiel soll bestimmen die Daten dazu führen, dass die Daten der die modifizierte Cachezeile an eine erste entspricht den anderen Cache Cache-Agent gesendet werden, zum Schreiben der Daten die modifizierte Cachezeile in eine entsprechende Cachezeile des anderen Cache geschrieben werden.
- Bei mindestens einem Beispiel ist ein Verzeichnis gemäss der bestimmten Speicher für den Übergang in einen Zustand hinweist anderen Cache eine exklusive Kopie der besonderen Linie Speicher verfügt.
- Bei mindestens einem Beispiel, die explizite Rückschreiben-Anforderung besteht aus einer einzigen Kohärenz-Protokoll-Anforderung aus verschiedenen, kurz Cache-Agent, die modifizierte Cachezeile entspricht.
- Bei mindestens einem Beispiel die Daten bestimmen, ob deranderen Cache einen lokale Und Cache.
- Bei mindestens einem Beispiel umfasst bestimmen die Daten bestimmen, ob esanderen ausstehenden Anforderungen für die Zeile des Speichers gibt.
- Eine oder mehrere Verkörperungen vorsehen, ein Apparat, ein System, einemaschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, umeine Anfrage zu empfangen, die eine explizite Rückschreiben-Anforderung an einhome-Agent zu senden, worin die explizite zurückschreiben-Anforderung ist einemodifizierte Cachezeile entsprechen, die zu einer bestimmten Zeile Speicherentsprechen soll, ist die explizite Rückschreiben-Anforderung enthalten einenHinweis darauf, dass ein weiterer Cache die besondere Leitung an Speicherund einen Abschluss von der home agent für die explizite Rückschreiben-Anforderung empfangen ist.
- In mindestens ein Beispiel ist die geändert Cachezeile für den Übergang voneinem veränderten Zustand zu einem ungültigen Zustand nach, das Senden derforderung explizite zurückschreiben an.
- Bei mindestens einem Beispiel soll die explizite Rückschreiben Anforderung dazu führen, dass Daten über die modifizierte Cachezeile in anderen Cache geschriebenwerden, ohne die bestimmte Linie Speicher geschrieben wird.
- In mindestens ein Beispiel besteht die explizite Rückschreiben-Anforderung eineeinzigen Kohärenz Protokoll-Anforderung.
- Bei mindestens einem Beispiel wird die explizite zurückschreibenAnfrage um denanderen Cache zu identifizieren. Ein Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbarMedium und eine Methode, um eine Anfrage erhalten, das eine MeldungRückschreiben bündig, eine Reihe von ausstehende Schreibvorgänge von derSpeicherController zu einem bestimmten dauerhaften Speicher zu identifizierenund schreiben alle ausstehend schreibt in den bestimmten Speicher, die auf derGrundlage der zurückschreiben-bündig-Nachricht vorsehen eine oder mehrere Verkörperungen.
- Bei mindestens einem Beispiel umfasst die zurückschreiben bündig Nachricht eineKohärenz-Protokoll-Nachricht.
- Bei mindestens einem Beispiel das zurückschreiben flush Nachricht eine Cache-Agent generiert.
- Bei mindestens einem Beispiel umfasst die Reihe ausstehende Schreibvorgängealle ausstehende Schreibvorgänge des Speicher-Controllers.
- Der Apparat der Anspruch 40, worin das zurückschreiben flush Nachricht den Speicher-Controller identifizieren soll.
- Bei mindestens einem Beispiel ist die zurückschreiben bündig Nachricht eineSpeicheradresse entspricht den besonderen Speicher zu identifizieren. Bei mindestens einem Beispiel entspricht die zurückschreiben bündig Nachricht einemacht Fehler-Management-Aktivität.
- Eine oder mehrere Verkörperungen können bieten einen Apparat, ein System, eine maschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, um eine Anfrage zu empfangen, das kennzeichnen eine bestimmte Zeile einesCaches in einem vorwart Zustand, erhalten eine forderungan. Die die bestimmteLinie des Caches entspricht vorwarts bestimmen, ob den vorwarts zustand im Anschluss aneiner Antwort auf die Anfrage zu behalten, und auf die Anfrage antworten.
- Bei mindestens einem Beispiel zählt auch das ermitteln ob den forward Zustandbeibehalten bestimmen den Wert eines Konfigurationsparameters für die Agenten, wobei ein Wert des Konfigurationsparameters identifiziert, ob vorwarst auf Vorrat zu speichernden ist.
- Bei mindestens Beispiel kann der Wert des Konfigurationsparameters geändert werden.
- Bestimmen, ob den forward Zustand beibehalten kanneinschließen bestimmen, den vorwärts Staat im Anschluss an der Antwort zubehalten. Festlegung, ob den vorwarts Zustand bei behalten einschließen kann. Bestimmung für den Übergang vom vorderen Staat nach der Antwort. Bei mindestens einem Beispiel der forward Zustand für den Übergang vomforward Zustand in einen gemeinsamen Zustand ist. Bei mindestens einem Beispielist der vorwarts Zustand für den Übergang aus der vorwarts Zustand in dieungültigen Zustand.
- In mindestens ein Beispiel besteht die Anforderung eine Snoop. Auf dieAnforderung reagiert zählen Weitergabe der Daten an einen anderen Mitarbeiteraus der bestimmten Linie des Cache. Eine oder mehrere Verkörperungen vorsehen, dass ein Apparat, ein System, einemaschinenlesbare Speicher, maschinenlesbar Medium und eine Methode, umeine Anfrage erhalten, die ist es, einen Agenten einschließlich Protokoll SchichtLogik zum Generieren einer Fanout Anforderung und routing Schicht Logik umeine Vielzahl von Agenten zu identifizieren um eine Snoop laut Fanout Snooperhalten snoop, und Snoop Anfragen an jeder der mehreren Agenten senden.
- Bei mindestens einem Beispiel wird die Pluralität des Agenten aus einemKonfigurationsparameter Identifizierung jeder Agent in einem entsprechendenFanouot Kegel identifiziert. Die Konfigurationsparameter soll bei mindestens einem Beispiel jeder Agent vonAdresse zu identifizieren.
- Bei mindestens einem Beispiel kann bestimmt werden, ob eine Fanout-Snoopverwendet werden kann, um einen oder mehrere Agents snoop.
- Bei mindestens einem Beispiel der Agent ist ein home-Agent und die Snoop-Anfragen können jede umfassen eine Snoop um Cache-Daten in jedem einenforward oder freigegebenen Status zu erhalten.
- Bei mindestens einem Beispiel fordert Snoop umfassen jeweils eine SnoopZwischenspeichern von Daten in jedem veränderten, exklusive, nachvorn oderfreigegebenen Zustand zu erhalten.
- Bei mindestens einem Beispiel umfassen die Snoop-Anfragen eine Snoop umCache-Daten in je dem veränderten oder exklusive Zustand zu erhalten.
- Bei mindestens einem Beispiel fordert Snoop umfassen jeweils eine Snoop in denCache des jeweiligen Agenten, wobei Daten in geänderten Zustand in denSpeicher geschrieben werden soll.
- Bei mindestens einem Beispiel können für eine oder mehrere AnforderungenSnoop Snoop Antworten empfangen werden.
- Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine lesen Invalidate-Anforderung einleiten, die ist exklusiverKohärenz Zustandsdaten zu akzeptieren.
- Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ein Invalidate initiieren den exklusiven Besitz eine Cachezeileohne Daten empfangen und mit Angabe der Zurückschreiben der Cachezeileanfordern soll.
- Bei mindestens einem Beispiel ist das Zurückschreiben der Cachezeile in einemnahe Zeitrahmen. Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht einen Flush zu dauerhaften Speicher verursachen eineZurückschreiben bündig Anforderung initiieren soll.
- Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine einzelne Fanout Snoop Anforderung einleiten, die eineSnoop-Anfrage zu generierenden an Peer-Agente n innerhalb eines Kegels Fanoutauslösen soll.
- Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokollstapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist eine explizite Rückschreiben-Anforderung mit Cache-PushHinweis für ein home-Agent starten, dass eine referenzierte Cachezeile in einemlokalen Cache geschoben werden kann, ohne die Daten in den Speicherschreiben.
- Bei mindestens einem Beispiel kann die Cachezeile in M Zustand gespeichertwerden. Ein oder mehrere Beispiele bieten weitere Vermittler, einschließlich einengeschichteten Protokol Istapel, einschließlich einer Protokollschicht, worin dieProtokollschicht ist ein Forward gemeinsamgenutzter Daten, initiieren undgleichzeitig einen forward Staat die freigegebenen Daten zugeordnet werden sollen.
- Verweis in dieser Spezifikation auf ”ein Inbegriff' oder ”Verkörperung” bedeutet, dass eine bestimmte Funktion, Struktur oder Merkmal beschrieben im Zusammenhang mit der Verkörperung in mindestens einer Ausführungsform dervorliegenden Erfindung enthalten ist. Also die Erscheinungen der Sätze ”in einerAusführungsform” oder ”Verkörperung” an verschiedenen Orten in dieserSpezifikation sind nicht unbedingt alle die sich auf die gleichen Verkörperung. Außerdem sind die Besonderheiten, die Strukturen oder die Merkmale ingeeigneter Weise in einem oder mehreren Verkörperungen kombinierbar.
- In der vorstehenden-Spezifikation ist eine detaillierte Beschreibung mit Bezug aufspezifische vorbildliche Verkörperungen gegeben worden. Es wird jedochoffensichtlich sein, dass verschiedene Anpassungen und Änderungen darinvorgenommen werden können, ohne die breiteren Geist und den Umfang derErfindung gemäß der beigefügten Ansprüche ab. Die Spezifikation undZeichnungen, dementsprechend in einem anschaulichen Sinn statt in engerenSinne anzusehen sind. Außerdemdie vorstehenden Verwendung der Verkörperung und andere exemplarisch Sprache bezieht sich nicht unbedingt diegleichen Verkörperung oder das gleiche Beispiel, aber steht für verschiedene undunterschiedliche Verkörperungen, sowie möglicherweise die gleichenVerkörperung.
Claims (73)
- Ein Apparat schließend ein: Ein besonderer Agent einschließlich Protokollsschichtlogik zu: Empfangen Sie eine Bitte, die ist, darauf einen ersten Agenten zu verweisen, und eine besondere Linie der Erinnerung zu erbitten, in einem ausschließenden Staat aufgenommen in den Cachespeicher zu werden; schickt eine Schnüfflerbitte beabsichtigt für eine oder mehr andere Agenten; empfängt eine Schnüfflererwiderung, die ist, darauf einen zweiten Agenten zu verweisen, die Schnüfflerantwort auf schließt einen writeback zu Erinnerung einer modifizierten Cachespeicherslinie ein, die ist, der besonderen Linie der Erinnerung zu entsprechen; Und schickt ein vollständiges, zum ersten Agenten angeredet zu werden, worin das vollständige ist, Daten der besonderen Linie von auf Erinnerung basiert auf dem writeback einzuschließen.
- Der Apparat von Anspruch 1, worin ist die Protokollschichtlogik weiter zu verursachen, dass die modifizierte Cachespeicherlinie an die besondere Linie der Erinnerung geschrieben wird.
- Der Apparat von Anspruch 1, worin ist die Protokollschichtlogik weiter zu bestimmen, dass die Cachespeicherlinie des zweiten Agenten eine modifizierte Cachespeicherlinie ist.
- Der Apparat von Anspruch 3, worin ist das vollständige, vor Annahmeantworten auf alle Schnüfflerbitten geschickt zu werden, die der Bitte vom ersten auf Agenten, entsprechen, der basiert sind auf Bestimmen, dass die Cachespeicherlinie des zweiten Agenten eine modifizierte Cachespeicherlinie ist.
- Der Apparat von Anspruch 1, worin schließt die Schnüfflerbitte einen Schnüffler entkräftet Bitte ein.
- Der Apparat von Anspruch 5, worin entkräftet der Schnüffler Bitte ist, der Cachespeicher vom zu entkräften, dem anderen Agenten empfängt, der der besonderen Linie oder die Erinnerung entspricht.
- der Apparat der Anspruch 5, wobei Snoop ungültig Anfrage ist zu identifizieren, die bestimmte Linie Speicher und einen Befehl in der Anfrage vom ersten Agenten enthalten.
- das Gerät von Anspruch 1, wobei die Protokoll-Ebene-Logik weiter nach Übergang ein Verzeichnis-Zustand ist an, dass die bestimmten Speicher mit einem exklusiven Zustand verbunden ist.
- ein Gerät bestehend aus: ein Agent einschließlich Protokoll Schicht Logik: Senden Sie eine Anfrage für ein bestimmtes Cachezeile in einem exklusiven Zustand; und empfangen von Daten aus dem Speicher gemäss der bestimmten Cache, wobei bestimmten Daten Daten geschrieben-zurück in den Speicher von einem anderen Agenten nach Anfrage umfasst.
- der Apparat von Anspruch 9, wobei die besonderen cache Line ist in einem ungültigen Zustand vor dem Request.
- der Apparat der Anspruch 9, wobei der exklusive Zustand ein E-Zustand ist, dass eine Kopie der Daten in die bestimmten Cachezeile den Speicher entspricht und ist einexklusive Kopie.
- der Apparat der Anspruch 9, wobei die Protokoll-Ebene-Logik weiter Kopie der bestimmten Daten an die bestimmten Cachezeile liegt.
- der Apparat der Anspruch 12, worin die Logik des Protokoll-Ebene weiter Übergang die besondere Cachezeile in einen exklusiven Status basierend liegt auf bestimmten Daten empfangen.
- der Apparat der Anspruch 9, wobei die Daten geschrieben-zurück in den Speicher von einem anderen Agenten enthält Daten, die in Reaktion auf eine Snoop entspricht zurückgegeben die Antrag auf die bestimmten Cachezeile in einem exklusiven Zustand.
- Der Apparat von Anspruch 14, worin ist der Schnüffler eine einer Mehrheit von Schnüfflern und die besonderen Daten sind, vor Erwiderungen empfangen zu werden, zurückgekehrt für jeden der Schnüfflersbitten zu werden.
- Eine Methode schließend ein: Empfangen einer Bitte von einem ersten Agenten, eine besondere Linie der Erinnerung in einem ausschließenden Staat zu aufnehmen in den Cachespeicher; schickend einen oder mehr anderen Agenten eine Schnüfflerbitte; empfangend eine Schnüfflererwiderung von einem zweiten Agenten, die Schnüfflerantwort auf einschließt einen writeback zu Erinnerung einer modifizierten Cachespeicherslinie des zweiten Agenten, den der besonderen Linie der Erinnerung entspricht; und schickend dem ersten Agenten ein vollständiges, worin das Vollenden Sie ist, Daten der besonderen Linie von auf Erinnerung basiert auf dem writeback einzuschließen.
- Die Methode von Anspruch 16, schließend weiter schickend einem Speichersteuergerät eine Bitte ein, der besonderen Linie die modifizierte Cachespeicherlinie der Erinnerung zu schreiben.
- Die Methode von Anspruch 16, schließend weiter Bestimmen ein, dass die Cachespeicherlinie des zweiten Agenten eine modifizierte Cachespeicherlinie ist.
- Die Methode von Anspruch 16, worin ist das vollständige, vor Annahmeantworten auf alle Schnüfflerbitten geschickt zu werden, entsprechend der Bitte vom ersten Agenten.
- Die Methode von Anspruch 16, schließend weiter sich anpassend ein Verzeichnisstaat ein anzuzeigen, dass die besondere Linie der Erinnerung mit einem ausschließenden Staat verbunden ist.
- Ein System schließend ein: Ein Speichersteuergerät eines besonderen Speicherorts; ein Heimagent, der dem besonderen Speicherort entspricht; und ein erster Cachespeicheragent einer ersten Vorrichtung; worin der Heimagent ist zu: Empfangen Sie eine Bitte, die ist, darauf einen ersten Agenten zu verweisen, und eine besondere Linie der Erinnerung zu erbitten, in einem ausschließenden Staat aufgenommen in den Cachespeicher zu werden; schickt eine Schnüfflerbitte beabsichtigt für eine oder mehr andere Agenten; empfängt eine Schnüfflererwiderung, die ist, darauf einen zweiten Agenten zu verweisen, die Schnüfflerantwort auf schließt einen writeback zu Erinnerung einer modifizierten Cachespeicherslinie ein, die ist, der besonderen Linie der Erinnerung zu entsprechen; Und schickt ein vollständiges, zum ersten Agenten angeredet zu werden, worin das vollständige ist, Daten der besonderen Linie von auf Erinnerung basiert auf dem writeback einzuschließen.
- Das System von Anspruch 21, schließend weiter den zweiten Cache speicher agenten zu ein: Empfangen Sie die Schnüfflerbitte; identifiziert, von der Schnüfflerbitte, die Bitte vom ersten Cache speicher agenten, die besondere Linie des besonderen Speicherorts in einem ausschließenden Staat zu aufnehmen in den Cachespeicher; schickt die Schnüfflerantwort auf den Heimagenten.
- Das System von Anspruch 21, worin ist der erste Cachespeicheragent zu: Schicken Sie dem Heimagenten die Bitte; und empfangen Sie das vollständige; schreibt die Daten der besonderen Linie der Erinnerung in eine Korrespondieren cache speicherlinie; und passen Sie sich die Korrespondieren cache speicherlinie zu einem ausschließenden Staat an.
- Das System von Anspruch 21, worin ist die Bfitte vom ersten Cache speicher agenten, eine Verständlichkeitsprotokollbitte einzuschließen.
- Das System von Anspruch 21, worin ist das vollständige, vor Annahmeantworten auf alle Schnüfflerbitten geschickt zu werden, entsprechend der Bitte vom ersten Cache speicher agenten.
- Ein Apparat schließend ein: Ein Agent einschließlich Protokollsschichtlogik zu: Empfangen Sie eine explizite writeback Bitte, worin der explizit writeback Bitte ist, einer modifizierten Cachespeicherlinie zu entsprechen, die ist, einer besonderen Linie der Erinnerung zu entsprechen, und der explizit writeback Bitte ist, eine Andeutung einzuschließen, anzuzeigen, dass ein anderer Cachespeicher ist, die besondere Linie der Erinnerung zu erbitten; bestimmt ob Daten der modifizierten Cachespeicherslinie zum anderen Cachespeicher vor Schreiben der Daten von zu stoßen Die modifizierte Cachespeicherlinie zur besonderen Linie der Erinnerung; und schickt ein vollständiges, der expliziten writeback Bitte zu entsprechen.
- Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten nicht zu stoßen, die Daten der modifizierten Linie des geheimen Lagers veranlassen soll, zur besonderen Linie des Gedächtnisses geschrieben zu werden.
- Der Apparat des Anspruchs 27, worin die Daten der modifizierten Linie des geheimen Lagers zum anderen geheimen Lager nicht gestoßen werden sollen.
- Der Apparat des Anspruchs 27, worin die Protokoll-Schicht-Logik weiterer Übergang ein Verzeichniszustand entsprechend der besonderen Linie des Gedächtnisses von einem exklusiven Zustand bis einen ungültigen Zustand ist.
- Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten zu stoßen, die Daten der modifizierten Linie des geheimen Lagers veranlassen soll, einem ersten Agenten des geheimen Lagers entsprechend dem anderen geheimen Lager gesandt zu werden, um die Daten der modifizierten Linie des geheimen Lagers zu schreiben, die zu einer entsprechenden Linie des geheimen Lagers des anderen geheimen Lagers zu schreiben ist.
- Der Apparat des Anspruchs 30, worin die Protokoll-Schicht-Logik weiterer Übergang ein Verzeichniszustand entsprechend der besonderen Linie des Gedächtnisses zu einem Zustand ist, der anzeigt, dass das andere geheime Lager eine exklusive Kopie der besonderen Linie des Gedächtnisses hat.
- Der Apparat des Anspruchs 30, worin die ausführliche Writeback-Bitte eine einzelne Kohärenz-Protokoll-Bitte von einem verschiedenen, zweiten Agenten des geheimen Lagers entsprechend der modifizierten Linie des geheimen Lagers umfasst.
- Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten zu stoßen, die Bestimmung umfasst, ob das andere geheime Lager ein lokales geheimes Lager ist.
- Der Apparat des Anspruchs 26, worin die Bestimmung, die Daten zu stoßen, die Bestimmung umfasst, ob es andere hervorragende Bitten um die besondere Linie des Gedächtnisses gibt.
- Ein Geräteenthalten: ein Agent einschließlich der Protokoll-Schicht-Logik dazu: senden Sie eine ausführliche Writeback-Bitte an einen Hausagenten, worin die ausführliche Writeback-Bitte ist, einer modifizierten Linie des geheimen Lagers zu entsprechen, die einer besonderen Linie des Gedächtnisses entsprechen soll, ist die ausführliche Writeback-Bitte, einen Hinweis einzuschließen, um anzuzeigen, dass ein anderes geheimes Lager um die besondere Linie des Gedächtnisses bitten soll; und erhalten Sie eine Vollziehung vom Hausagenten für die ausführliche Writeback-Bitte.
- Der Apparat des Anspruchs 35, worin die Protokoll-Schicht-Logik weiter ist, um die modifizierte Linie des geheimen Lagers von einem modifizierten Zustand bis einen ungültigen Zustand im Anschluss an das Senden der ausführlichen Writeback-Bitte zu wechseln.
- Der Apparat des Anspruchs 35, worin die ausführliche Writeback-Bitte ist, Daten der modifizierten Linie des geheimen Lagers zu veranlassen, zum anderen geheimen Lager geschrieben zu werden, ohne zur besonderen Linie des Gedächtnisses geschrieben zu werden.
- Der Apparat des Anspruchs 37, worin die ausführliche Writeback-Bitte eine einzelne Kohärenz-Protokoll-Bitte umfasst.
- Der Apparat des Anspruchs 35, worin die ausführliche Writeback-Bitte ist, das andere geheime Lager zu identifizieren.
- Ein Geräteenthalten: ein Speicherkontrolleur muss: erhalten Sie eine Writeback-Erröten-Nachricht; identifizieren Sie sich eine Reihe während dessen schreibt vom Speicherkontrolleur zu einem besonderen beharrlichen Gedächtnis; und schreiben Sie, dass der ganze Satz während dessen dem besonderen auf die Writeback-Erröten-Nachricht beruhenden Gedächtnis schreibt.
- Der Apparat des Anspruchs 40, worin die Writeback-Erröten-Nachricht eine Kohärenz-Protokoll-Nachricht umfasst.
- Der Apparat des Anspruchs 41, worin die writeback von einem Agenten des geheimen Lagers erzeugte Nachricht spülen.
- Der Apparat des Anspruchs 40, worin der Satz während dessen schreibt, umfasst alle während dessen schreiben vom Speicherkontrolleur.
- Der Apparat des Anspruchs 40, worin die Writeback-Erröten-Nachricht den Speicherkontrolleur identifizieren soll.
- Der Apparat des Anspruchs 44, worin die Writeback-Erröten-Nachricht eine Speicheradresse entsprechend dem besonderen Gedächtnis identifizieren soll.
- Der Apparat des Anspruchs 40, worin die Writeback-Erröten-Nachricht einer Stromausfall-Verwaltungstätigkeit entspricht.
- Ein Geräteenthalten: ein Agent einschließlich der Protokoll-Schicht-Logik dem: identifizieren Sie das eine besondere Linie eines geheimen Lagers ist in einem Vorwärtszustand; erhalten Sie eine Bitte, die der besonderen Linie des geheimen Lagers entspricht; bestimmen Sie, den Vorwärtszustand im Anschluss an eine Antwort auf die Bitte ob zu behalten; und antworten Sie auf die Bitte.
- Der Apparat des Anspruchs 47, worin die Bestimmung, den Vorwärtszustand ob zu behalten, die Bestimmung eines Werts eines Konfigurationsparameters für den Agenten einschließt, worin sich ein Wert des Konfigurationsparameters identifiziert, ungeachtet dessen ob der Vorwärtszustand behalten werden soll.
- Der Apparat des Anspruchs 48, worin die Protokoll-Schicht-Logik weiter ist, um den Wert des Konfigurationsparameters zu ändern.
- Der Apparat des Anspruchs 47, worin die Bestimmung, den Vorwärtszustand ob zu behalten, die Bestimmung umfasst, den Vorwärtszustand im Anschluss an die Antwort zu behalten.
- Der Apparat des Anspruchs 47, worin die Bestimmung, den Vorwärtszustand ob zu behalten, die Bestimmung zum Übergang vom Vorwärtszustand im Anschluss an die Antwort umfasst.
- Der Apparat des Anspruchs 51, worin der Vorwärtszustand vom Vorwärtszustand bis einen geteilten Zustand wechseln soll.
- Der Apparat des Anspruchs 51, worin der Vorwärtszustand vom Vorwärtszustand bis den ungültigen Zustand wechseln soll.
- Der Apparat des Anspruchs 47, worin die Bitte eine Schnüffelei umfasst.
- Der Apparat des Anspruchs 47, worin die Reaktion auf die Bitte Versanddaten von der besonderen Linie des geheimen Lagers einem anderen Agenten umfasst.
- Ein Geräteenthalten. ein Agent einschließlich dessen: Protokoll-Schicht-Logik dem: erzeugen Sie eine fanout Schnüffelei-Bitte; und die Routenplanung der Schicht-Logik dem: identifizieren Sie eine Mehrzahl von Agenten, um eine Schnüffelei gemäß der fanout Schnüffelei-Bitte zu erhalten; und senden Sie Schnüffelei-Bitten an jede der Mehrzahl von Agenten.
- The apparatus of Claim 56, wherein the routing layer logic is to identify the plurality of agents from a configuration parameter identifying each agent in a corresponding fanouot cone.
- Der Apparat des Anspruchs 56, worin die wühlende Schicht-Logik die Mehrzahl von Agenten von einem Konfigurationsparameter identifizieren soll, der jeden Agenten in einem Entsprechen fanouot Kegel identifiziert.
- Der Apparat des Anspruchs 56, worin die wühlende Schicht-Logik die Mehrzahl von Agenten von einem Konfigurationsparameter identifizieren soll, der jeden Agenten in einem Entsprechen fanouot Kegel identifiziert.
- Der Apparat des Anspruchs 56, worin der Agent ein Hausagent ist.
- Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei, um Daten des geheimen Lagers in irgendjemandem eines fortgeschrittenen oder geteilten Zustands zu erhalten.
- Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei, um Daten des geheimen Lagers in irgendjemandem eines modifizierten, exklusiv zu erhalten, oder geteilten Zustands nachschicken.
- Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei, um Daten des geheimen Lagers in irgendjemandem eines modifizierten oder exklusiven Zustands zu erhalten.
- Der Apparat des Anspruchs 56, worin die Schnüffelei um jeden bittet, umfasst eine Schnüffelei zum geheimen Lager des jeweiligen Agenten, worin Daten im modifizierten Zustand zum Gedächtnis gespült werden sollen.
- Der Apparat des Anspruchs 56, worin die Protokoll-Schicht-Logik weiter ist, um Schnüffelei-Antworten für ein oder mehr von den Schnüffelei-Bitten zu erhalten.
- Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht einen gelesenen beginnen soll, macht Bitte ungültig, die ist, exklusive Kohärenz-Zustanddaten zu akzeptieren.
- Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht beginnen soll ungültig zu machen, der um exklusives Eigentumsrecht einer Linie des geheimen Lagers bitten soll, ohne Daten und mit einer Anzeige zu erhalten, die Linie des geheimen Lagers zurückzuschreiben.
- Der Apparat des Anspruchs 67, worin zurückschreibend die Linie des geheimen Lagers innerhalb eines nahen Zeitrahmens ist.
- Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht eine zurückschreiben Erröten-Bitte beginnen soll, die ist, ein Erröten von Daten zum beharrlichen Gedächtnis zu verursachen.
- Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht eine einzelne fanout Schnüffelei-Bitte beginnen soll, die ist, eine Schnüffelei-Bitte zu veranlassen, erzeugt zu werden, um Agenten innerhalb eines fanout Kegels zu spähen.
- Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht eine ausführliche Writeback-Bitte mit dem Hinweis des geheimes-Lager-Stoßes einem Hausagenten beginnen soll, dass eine Verweise angebrachte Linie des geheimen Lagers zu einem lokalen geheimen Lager gestoßen werden kann, ohne die Daten dem Gedächtnis zu schreiben.
- Der Apparat des Anspruchs 71, worin die Linie des geheimen Lagers in der M Zustand versorgen kann.
- Ein Apparat, der umfasst: ein Agent einschließlich eines layered Protokoll-Stapels einschließlich einer Protokoll-Schicht, worin die Protokoll-Schicht einen fortgeschrittenen von geteilten Daten beginnen soll, indem sie einen Vorwärtszustand aufrechterhält, mit den geteilten Daten zu vereinigend.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261717091P | 2012-10-22 | 2012-10-22 | |
US61/717,091 | 2012-10-22 | ||
PCT/US2013/032651 WO2014065875A1 (en) | 2012-10-22 | 2013-03-15 | High performance interconnect coherence protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112013002069T5 true DE112013002069T5 (de) | 2015-01-08 |
DE112013002069B4 DE112013002069B4 (de) | 2022-12-01 |
Family
ID=50485278
Family Applications (14)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112013007751.5T Active DE112013007751B3 (de) | 2012-10-22 | 2013-03-15 | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
DE112013005090.0T Pending DE112013005090T5 (de) | 2012-10-22 | 2013-03-15 | Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit |
DE112013005093.5T Pending DE112013005093T5 (de) | 2012-10-22 | 2013-03-15 | Hochleistungszusammenschaltungsbitübertragungsschicht |
DE112013003723.8T Active DE112013003723B4 (de) | 2012-10-22 | 2013-03-15 | Hochleistungsfähige physikalische Kopplungsstrukturschicht |
DE112013004105.7T Pending DE112013004105T5 (de) | 2012-10-22 | 2013-03-15 | Kohärenzprotokolltabellen |
DE112013002069.6T Active DE112013002069B4 (de) | 2012-10-22 | 2013-03-15 | Hohes Leistungsverbindungskohärenz-Protokoll |
DE112013005086.2T Pending DE112013005086T5 (de) | 2012-10-22 | 2013-03-15 | Kohärenzprotokoll für Hochleistungszwischenverbindung |
DE112013004094.8T Active DE112013004094B4 (de) | 2012-10-22 | 2013-03-15 | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
DE112013005104.4T Pending DE112013005104T5 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsverdrahtungs-Bitübertragungsschicht |
DE201311002880 Pending DE112013002880T5 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsfähige physikslische Kopplungsstrukturschicht |
DE112013007752.3T Active DE112013007752B3 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsverdrahtungs-Bitübertragungsschicht |
DE112013002090.4T Pending DE112013002090T5 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsfähige physikalische Kopplungsstrukturschicht |
DE112013001360.6T Active DE112013001360B4 (de) | 2012-10-22 | 2013-03-28 | Vorrichtung, verfahren und system zum bereitstellen einer kopplungsstruktur-linkschicht |
DE112013007767.1T Active DE112013007767B3 (de) | 2012-10-22 | 2013-03-28 | Vorrichtung und system zur verbesserten nutzung von datenverbindungen |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112013007751.5T Active DE112013007751B3 (de) | 2012-10-22 | 2013-03-15 | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
DE112013005090.0T Pending DE112013005090T5 (de) | 2012-10-22 | 2013-03-15 | Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit |
DE112013005093.5T Pending DE112013005093T5 (de) | 2012-10-22 | 2013-03-15 | Hochleistungszusammenschaltungsbitübertragungsschicht |
DE112013003723.8T Active DE112013003723B4 (de) | 2012-10-22 | 2013-03-15 | Hochleistungsfähige physikalische Kopplungsstrukturschicht |
DE112013004105.7T Pending DE112013004105T5 (de) | 2012-10-22 | 2013-03-15 | Kohärenzprotokolltabellen |
Family Applications After (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112013005086.2T Pending DE112013005086T5 (de) | 2012-10-22 | 2013-03-15 | Kohärenzprotokoll für Hochleistungszwischenverbindung |
DE112013004094.8T Active DE112013004094B4 (de) | 2012-10-22 | 2013-03-15 | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
DE112013005104.4T Pending DE112013005104T5 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsverdrahtungs-Bitübertragungsschicht |
DE201311002880 Pending DE112013002880T5 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsfähige physikslische Kopplungsstrukturschicht |
DE112013007752.3T Active DE112013007752B3 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsverdrahtungs-Bitübertragungsschicht |
DE112013002090.4T Pending DE112013002090T5 (de) | 2012-10-22 | 2013-03-27 | Hochleistungsfähige physikalische Kopplungsstrukturschicht |
DE112013001360.6T Active DE112013001360B4 (de) | 2012-10-22 | 2013-03-28 | Vorrichtung, verfahren und system zum bereitstellen einer kopplungsstruktur-linkschicht |
DE112013007767.1T Active DE112013007767B3 (de) | 2012-10-22 | 2013-03-28 | Vorrichtung und system zur verbesserten nutzung von datenverbindungen |
Country Status (9)
Country | Link |
---|---|
US (20) | US9418035B2 (de) |
EP (2) | EP3410304B1 (de) |
JP (2) | JP6139689B2 (de) |
KR (27) | KR101686359B1 (de) |
CN (26) | CN104335196B (de) |
BR (1) | BR112015006432A2 (de) |
DE (14) | DE112013007751B3 (de) |
RU (2) | RU2599971C2 (de) |
WO (11) | WO2014065873A1 (de) |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013105967A1 (en) * | 2012-01-13 | 2013-07-18 | Intel Corporation | Efficient peer-to-peer communication support in soc fabrics |
US8943255B2 (en) * | 2012-05-29 | 2015-01-27 | Lsi Corporation | Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices |
US9355058B2 (en) | 2012-10-22 | 2016-05-31 | Intel Corporation | High performance interconnect physical layer |
US9479196B2 (en) | 2012-10-22 | 2016-10-25 | Intel Corporation | High performance interconnect link layer |
US9280507B2 (en) | 2012-10-22 | 2016-03-08 | Intel Corporation | High performance interconnect physical layer |
DE112013007751B3 (de) | 2012-10-22 | 2023-01-12 | Intel Corporation | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
US9367474B2 (en) * | 2013-06-12 | 2016-06-14 | Apple Inc. | Translating cache hints |
US20150006962A1 (en) * | 2013-06-27 | 2015-01-01 | Robert C. Swanson | Memory dump without error containment loss |
CN104579605B (zh) * | 2013-10-23 | 2018-04-10 | 华为技术有限公司 | 一种数据传输方法及装置 |
US9306863B2 (en) * | 2013-12-06 | 2016-04-05 | Intel Corporation | Link transfer, bit error detection and link retry using flit bundles asynchronous to link fabric packets |
US9397792B2 (en) | 2013-12-06 | 2016-07-19 | Intel Corporation | Efficient link layer retry protocol utilizing implicit acknowledgements |
US9325449B2 (en) | 2013-12-06 | 2016-04-26 | Intel Corporation | Lane error detection and lane removal mechanism to reduce the probability of data corruption |
JP6221717B2 (ja) * | 2013-12-12 | 2017-11-01 | 富士通株式会社 | ストレージ装置、ストレージシステム及びデータ管理プログラム |
RU2645288C2 (ru) | 2013-12-26 | 2018-02-19 | Интел Корпорейшн | Усовершенствование интерфейса pci express |
EP3828717B1 (de) * | 2013-12-26 | 2024-07-03 | INTEL Corporation | Multichip-paketverbindung |
US9594719B2 (en) | 2014-02-03 | 2017-03-14 | Valens Semiconductor Ltd. | Seamless addition of high bandwidth lanes |
US9628382B2 (en) | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
CN105095147B (zh) * | 2014-05-21 | 2018-03-13 | 华为技术有限公司 | 片上网络的Flit传输方法及装置 |
RU2608881C2 (ru) | 2014-05-28 | 2017-01-25 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для управления турборежимом |
US9747048B2 (en) | 2014-06-02 | 2017-08-29 | Micron Technology, Inc. | Systems and methods for packing data in a scalable memory system protocol |
US9619214B2 (en) | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
US9571465B1 (en) * | 2014-09-18 | 2017-02-14 | Amazon Technologies, Inc. | Security verification by message interception and modification |
US9904645B2 (en) * | 2014-10-31 | 2018-02-27 | Texas Instruments Incorporated | Multicore bus architecture with non-blocking high performance transaction credit system |
US9665505B2 (en) | 2014-11-14 | 2017-05-30 | Cavium, Inc. | Managing buffered communication between sockets |
US9870328B2 (en) * | 2014-11-14 | 2018-01-16 | Cavium, Inc. | Managing buffered communication between cores |
US9778315B2 (en) * | 2014-11-14 | 2017-10-03 | Cavium, Inc. | Testbench builder, system, device and method having agent loopback functionality |
US20160173398A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Method, Apparatus And System For Encoding Command Information In a Packet-Based Network |
US9921768B2 (en) * | 2014-12-18 | 2018-03-20 | Intel Corporation | Low power entry in a shared memory link |
US9444551B2 (en) * | 2014-12-19 | 2016-09-13 | Intel Corporation | High performance optical repeater |
US9740646B2 (en) * | 2014-12-20 | 2017-08-22 | Intel Corporation | Early identification in transactional buffered memory |
US9632862B2 (en) * | 2014-12-20 | 2017-04-25 | Intel Corporation | Error handling in transactional buffered memory |
US10025746B2 (en) * | 2014-12-20 | 2018-07-17 | Intel Corporation | High performance interconnect |
US9785556B2 (en) * | 2014-12-23 | 2017-10-10 | Intel Corporation | Cross-die interface snoop or global observation message ordering |
US20160188519A1 (en) * | 2014-12-27 | 2016-06-30 | Intel Corporation | Method, apparatus, system for embedded stream lanes in a high-performance interconnect |
CN104536929A (zh) * | 2015-01-14 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种物理层初始化方法及客户端 |
US9998434B2 (en) * | 2015-01-26 | 2018-06-12 | Listat Ltd. | Secure dynamic communication network and protocol |
US9946676B2 (en) * | 2015-03-26 | 2018-04-17 | Intel Corporation | Multichip package link |
US20160285624A1 (en) * | 2015-03-26 | 2016-09-29 | Intel Corporation | Pseudorandom bit sequences in an interconnect |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US10282315B2 (en) | 2015-03-27 | 2019-05-07 | Cavium, Llc | Software assisted hardware configuration for software defined network system-on-chip |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
US9720838B2 (en) | 2015-03-27 | 2017-08-01 | Intel Corporation | Shared buffered memory routing |
US9760515B2 (en) | 2015-04-06 | 2017-09-12 | Qualcomm Incorporated | Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY) |
US10417128B2 (en) | 2015-05-06 | 2019-09-17 | Oracle International Corporation | Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches |
US20160353357A1 (en) * | 2015-05-27 | 2016-12-01 | Qualcomm Incorporated | Methods and systems for multiplexed communication in dense wireless environments |
WO2016197345A1 (zh) * | 2015-06-10 | 2016-12-15 | 华为技术有限公司 | 一种信号传输方法、控制器和信号传输*** |
US9697145B2 (en) * | 2015-06-12 | 2017-07-04 | Apple Inc. | Memory interface system |
US20160371222A1 (en) * | 2015-06-22 | 2016-12-22 | Qualcomm Incorporated | COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER |
US10089275B2 (en) | 2015-06-22 | 2018-10-02 | Qualcomm Incorporated | Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system |
KR102485999B1 (ko) * | 2015-07-01 | 2023-01-06 | 삼성전자주식회사 | 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템 |
US9692589B2 (en) * | 2015-07-17 | 2017-06-27 | Intel Corporation | Redriver link testing |
WO2017017562A1 (en) * | 2015-07-30 | 2017-02-02 | Valens Semiconductor Ltd. | Seamless addition of high bandwidth lanes |
JP6674085B2 (ja) * | 2015-08-12 | 2020-04-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9990291B2 (en) * | 2015-09-24 | 2018-06-05 | Qualcomm Incorporated | Avoiding deadlocks in processor-based systems employing retry and in-order-response non-retry bus coherency protocols |
CN112612731A (zh) * | 2015-09-26 | 2021-04-06 | 英特尔公司 | 多芯片封装链路错误检测 |
US9720439B2 (en) | 2015-09-26 | 2017-08-01 | Intel Corporation | Methods, apparatuses, and systems for deskewing link splits |
WO2017052665A1 (en) * | 2015-09-26 | 2017-03-30 | Intel Corporation | In-band margin probing on an operational interconnect |
US20200244397A1 (en) * | 2015-09-26 | 2020-07-30 | Intel Corporation | Stream identifier lane protection |
DE112015006953T5 (de) * | 2015-09-26 | 2018-06-14 | Intel Corporation | Training einer gültigen lane |
GB2543745B (en) * | 2015-10-15 | 2018-07-04 | Advanced Risc Mach Ltd | An apparatus and method for operating a virtually indexed physically tagged cache |
US10698847B2 (en) | 2016-03-01 | 2020-06-30 | Qorvo Us, Inc. | One wire bus to RFFE translation system |
US10128964B2 (en) | 2016-03-10 | 2018-11-13 | Qualcomm Incorporated | Multiphase preamble data sequences for receiver calibration and mode data signaling |
US9779028B1 (en) | 2016-04-01 | 2017-10-03 | Cavium, Inc. | Managing translation invalidation |
CN105933286B (zh) * | 2016-04-05 | 2019-08-02 | 浪潮电子信息产业股份有限公司 | 一种验证协议的方法及装置 |
RU2643620C2 (ru) * | 2016-05-11 | 2018-02-02 | федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") | Способ планирования задач предобработки данных Интернета Вещей для систем анализа |
US10713202B2 (en) * | 2016-05-25 | 2020-07-14 | Samsung Electronics Co., Ltd. | Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports |
US10503641B2 (en) * | 2016-05-31 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache coherence for processing in memory |
US11144691B2 (en) * | 2016-06-02 | 2021-10-12 | Siemens Industry Software Inc. | Virtual Ethernet mutable port group transactor |
TWI613547B (zh) * | 2016-06-16 | 2018-02-01 | 新漢股份有限公司 | 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法 |
US10103837B2 (en) * | 2016-06-23 | 2018-10-16 | Advanced Micro Devices, Inc. | Asynchronous feedback training |
US10484361B2 (en) * | 2016-06-30 | 2019-11-19 | Intel Corporation | Systems, methods, and apparatuses for implementing a virtual device observation and debug network for high speed serial IOS |
US10303605B2 (en) * | 2016-07-20 | 2019-05-28 | Intel Corporation | Increasing invalid to modified protocol occurrences in a computing system |
US10929059B2 (en) | 2016-07-26 | 2021-02-23 | MemRay Corporation | Resistance switching memory-based accelerator |
US10379904B2 (en) * | 2016-08-31 | 2019-08-13 | Intel Corporation | Controlling a performance state of a processor using a combination of package and thread hint information |
RU2016137176A (ru) * | 2016-09-16 | 2018-03-19 | Оракл Интернэйшнл Корпорейшн | Связывание преобразованного исходного кода с первоначальным исходным кодом с помощью метаданных |
US10255181B2 (en) * | 2016-09-19 | 2019-04-09 | Qualcomm Incorporated | Dynamic input/output coherency |
US10936045B2 (en) | 2016-09-26 | 2021-03-02 | Hewlett-Packard Development Company, L.P. | Update memory management information to boot an electronic device from a reduced power mode |
US10846258B2 (en) * | 2016-09-30 | 2020-11-24 | Intel Corporation | Voltage modulated control lane |
US10152446B2 (en) * | 2016-10-01 | 2018-12-11 | Intel Corporation | Link-physical layer interface adapter |
CN108121842B (zh) * | 2016-11-30 | 2021-04-27 | 深圳市中兴微电子技术有限公司 | 多处理器***芯片的低功耗工作方式的验证方法和装置 |
CN106527576A (zh) * | 2016-12-01 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种pcie设备的时钟分离设计方法和*** |
CN108170370B (zh) | 2016-12-07 | 2021-01-26 | 慧荣科技股份有限公司 | 数据储存装置与数据传输速率控制方法 |
TWI610179B (zh) * | 2016-12-07 | 2018-01-01 | 慧榮科技股份有限公司 | 主機裝置與資料傳輸速率控制方法 |
TWI633777B (zh) * | 2016-12-13 | 2018-08-21 | 威盛電子股份有限公司 | 傳輸介面晶片以及其測試方法 |
KR20180071598A (ko) | 2016-12-20 | 2018-06-28 | 주식회사 포스코 | 중장비 위치 추적 시스템 |
KR101946135B1 (ko) * | 2017-01-11 | 2019-02-08 | 울산과학기술원 | 비휘발성 메모리를 이용하는 데이터베이스 관리 시스템 및 방법 |
US11159636B2 (en) * | 2017-02-08 | 2021-10-26 | Arm Limited | Forwarding responses to snoop requests |
US11182315B2 (en) * | 2017-02-10 | 2021-11-23 | Intel Corporation | Apparatuses, methods, and systems for hardware control of processor performance levels |
US10572434B2 (en) | 2017-02-27 | 2020-02-25 | International Business Machines Corporation | Intelligent certificate discovery in physical and virtualized networks |
US10784986B2 (en) | 2017-02-28 | 2020-09-22 | Intel Corporation | Forward error correction mechanism for peripheral component interconnect-express (PCI-e) |
CN107491407B (zh) * | 2017-07-03 | 2019-07-12 | 西安空间无线电技术研究所 | 基于fpga内serdes的自适应高速传输*** |
US11030126B2 (en) * | 2017-07-14 | 2021-06-08 | Intel Corporation | Techniques for managing access to hardware accelerator memory |
US11249808B2 (en) * | 2017-08-22 | 2022-02-15 | Intel Corporation | Connecting accelerator resources using a switch |
CN107678854A (zh) * | 2017-08-31 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种解决计算机缓存一致性冲突的方法 |
US10474611B2 (en) | 2017-09-19 | 2019-11-12 | International Business Machines Corporation | Aligning received bad data indicators (BDIS) with received data on a cross-chip link |
CN107589698B (zh) * | 2017-09-20 | 2021-05-25 | 友达光电股份有限公司 | 应用于物联网中的感测装置及控制方法 |
US20190095273A1 (en) * | 2017-09-27 | 2019-03-28 | Qualcomm Incorporated | Parity bits location on i3c multilane bus |
US10963035B2 (en) * | 2017-10-11 | 2021-03-30 | Qualcomm Incorporated | Low power PCIe |
WO2019100238A1 (zh) * | 2017-11-22 | 2019-05-31 | 深圳市大疆创新科技有限公司 | 一种断链恢复的方法及飞行器 |
CN107894963B (zh) * | 2017-11-27 | 2021-07-27 | 上海兆芯集成电路有限公司 | 用于***单芯片的通信控制器与通信方法 |
US10466911B2 (en) * | 2017-12-18 | 2019-11-05 | Western Digital Technologies, Inc. | Method using logical based addressing for latency reduction |
US10853212B2 (en) * | 2018-01-08 | 2020-12-01 | Intel Corporation | Cross-talk generation in a multi-lane link during lane testing |
EP3721565A4 (de) | 2018-01-10 | 2021-01-27 | Lumeova, Inc | Verfahren, vorrichtungen und system für drahtloskommunikationskanal-fso |
US20190227971A1 (en) * | 2018-01-23 | 2019-07-25 | Qualcomm Incorporated | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus |
US20190294777A1 (en) * | 2018-03-26 | 2019-09-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Systems and methods for managing access to host computing devices by external devices |
US10534881B2 (en) * | 2018-04-10 | 2020-01-14 | Advanced Micro Devices, Inc. | Method of debugging a processor |
US20190042455A1 (en) * | 2018-05-04 | 2019-02-07 | Intel Corporation | Globally addressable memory for devices linked to hosts |
CN108563510B (zh) * | 2018-05-04 | 2021-07-13 | 湖南大学 | 面向e级计算的体系结构感知优化方法 |
US20190356412A1 (en) * | 2018-05-16 | 2019-11-21 | Qualcomm Incorporated | Fast termination of multilane double data rate transactions |
CN108762747B (zh) * | 2018-05-30 | 2022-02-18 | 郑州云海信息技术有限公司 | 数据处理方法以及计算机设备 |
WO2019237130A1 (en) * | 2018-06-04 | 2019-12-12 | Lightfleet Corporation | Routing and control protocol for high-performance interconnect fabrics |
CN110609866B (zh) * | 2018-06-15 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 用于协商事务的方法、设备和计算机程序产品 |
US10693589B2 (en) * | 2018-06-18 | 2020-06-23 | Huawei Technologies Co., Ltd. | Serdes with jitter injection self stress mechanism |
US11301160B2 (en) * | 2018-06-20 | 2022-04-12 | Genesys Telecommunications Laboratories, Inc. | System and method for a replication protocol in a real-time statistical engine |
CN109144943A (zh) * | 2018-06-26 | 2019-01-04 | 深圳市安信智控科技有限公司 | 基于高速串行通道互连的计算芯片与存储器芯片组合*** |
GB2575294B8 (en) * | 2018-07-04 | 2022-07-20 | Graphcore Ltd | Host Proxy On Gateway |
US10841355B2 (en) * | 2018-07-13 | 2020-11-17 | Apple Inc. | Methods and apparatus for streaming media conversion with reduced buffering memories |
US10541841B1 (en) * | 2018-09-13 | 2020-01-21 | Advanced Micro Devices, Inc. | Hardware transmit equalization for high speed |
CN109558122B (zh) * | 2018-11-29 | 2022-08-19 | 湖南国科微电子股份有限公司 | 一种提升物理层兼容性的***与方法 |
TWI706257B (zh) | 2018-12-13 | 2020-10-01 | 新唐科技股份有限公司 | 匯流排系統 |
US10761939B1 (en) * | 2018-12-13 | 2020-09-01 | Amazon Technologies, Inc. | Powering-down or rebooting a device in a system fabric |
US10771189B2 (en) * | 2018-12-18 | 2020-09-08 | Intel Corporation | Forward error correction mechanism for data transmission across multi-lane links |
KR102165860B1 (ko) | 2018-12-31 | 2020-10-14 | 성균관대학교산학협력단 | 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치 |
US10599601B1 (en) * | 2019-01-16 | 2020-03-24 | Qorvo Us, Inc. | Single-wire bus (SuBUS) slave circuit and related apparatus |
US11099991B2 (en) | 2019-01-24 | 2021-08-24 | Vmware, Inc. | Programming interfaces for accurate dirty data tracking |
US11068400B2 (en) * | 2019-01-24 | 2021-07-20 | Vmware, Inc. | Failure-atomic logging for persistent memory systems with cache-coherent FPGAs |
WO2020160477A1 (en) | 2019-01-31 | 2020-08-06 | Tektronix, Inc. | Systems, methods and devices for high-speed input/output margin testing |
US11940483B2 (en) | 2019-01-31 | 2024-03-26 | Tektronix, Inc. | Systems, methods and devices for high-speed input/output margin testing |
US10713209B2 (en) | 2019-02-08 | 2020-07-14 | Intel Corporation | Recalibration of PHY circuitry for the PCI Express (PIPE) interface based on using a message bus interface |
US10802966B2 (en) * | 2019-02-14 | 2020-10-13 | International Business Machines Corporation | Simultaneous, non-atomic request processing within an SMP environment broadcast scope for multiply-requested data elements using real-time parallelization |
US11637657B2 (en) | 2019-02-15 | 2023-04-25 | Intel Corporation | Low-latency forward error correction for high-speed serial links |
US11099905B2 (en) | 2019-02-26 | 2021-08-24 | International Business Machines Corporation | Efficient remote resource allocation within an SMP broadcast scope maintaining fairness between operation types |
US11249837B2 (en) * | 2019-03-01 | 2022-02-15 | Intel Corporation | Flit-based parallel-forward error correction and parity |
US20220147614A1 (en) * | 2019-03-05 | 2022-05-12 | Siemens Industry Software Inc. | Machine learning-based anomaly detections for embedded software applications |
CN109947551B (zh) * | 2019-03-19 | 2021-04-23 | 中南大学 | 一种多轮次任务分配方法、边缘计算***及其存储介质 |
US11055221B2 (en) * | 2019-03-22 | 2021-07-06 | Samsung Electronics Co., Ltd. | Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory |
US10698842B1 (en) * | 2019-04-10 | 2020-06-30 | Xilinx, Inc. | Domain assist processor-peer for coherent acceleration |
EP3723345A1 (de) | 2019-04-10 | 2020-10-14 | ABB Schweiz AG | Aggregationsserver und verfahren zur weiterleitung von knotendaten |
IT201900005822A1 (it) * | 2019-04-15 | 2020-10-15 | Phoenix Ict S R L S | Adattore di periferiche general purpose per computer |
US11119958B2 (en) | 2019-04-18 | 2021-09-14 | Qorvo Us, Inc. | Hybrid bus apparatus |
US11226924B2 (en) | 2019-04-24 | 2022-01-18 | Qorvo Us, Inc. | Single-wire bus apparatus supporting slave-initiated operation in a master circuit |
CN110138761B (zh) * | 2019-05-09 | 2021-10-15 | 豪威触控与显示科技(深圳)有限公司 | 基于mipi协议的设备间通信方法及设备拓扑结构 |
US11296994B2 (en) | 2019-05-13 | 2022-04-05 | Intel Corporation | Ordered sets for high-speed interconnects |
JP7259537B2 (ja) * | 2019-05-16 | 2023-04-18 | オムロン株式会社 | 情報処理装置 |
US10802967B1 (en) * | 2019-06-28 | 2020-10-13 | Intel Corporation | Partial write management in a multi-tiled compute engine |
US11144469B2 (en) * | 2019-07-02 | 2021-10-12 | Microsoft Technology Licensing, Llc | Per-tenant incremental outward distributed proactive caching |
US11444829B2 (en) * | 2019-09-09 | 2022-09-13 | Intel Corporation | Link layer communication by multiple link layer encodings for computer buses |
US11271860B1 (en) * | 2019-11-15 | 2022-03-08 | Xilinx, Inc. | Compressed tag coherency messaging |
CN114651426B (zh) * | 2019-11-20 | 2023-08-18 | 三菱电机株式会社 | 光通信装置及通信*** |
RU2738955C1 (ru) * | 2019-11-27 | 2020-12-21 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) | Способ трёхкратного резервирования межсоединений |
US11740958B2 (en) | 2019-11-27 | 2023-08-29 | Intel Corporation | Multi-protocol support on common physical layer |
US10983942B1 (en) | 2019-12-11 | 2021-04-20 | Qorvo Us, Inc. | Multi-master hybrid bus apparatus |
US11132321B2 (en) | 2020-02-26 | 2021-09-28 | Quanta Computer Inc. | Method and system for automatic bifurcation of PCIe in BIOS |
WO2021174223A1 (en) * | 2020-02-28 | 2021-09-02 | Riera Michael F | C2mpi: a hardware-agnostic message passing interface for heterogeneous computing systems |
US11115176B1 (en) * | 2020-03-04 | 2021-09-07 | Qualcomm Incorporated | System and method for adjusting clock-data timing in a multi-lane data communication link |
US11126585B1 (en) | 2020-03-09 | 2021-09-21 | Western Digital Technologies, Inc. | Data storage device with improved interface transmitter training |
US11886312B2 (en) | 2020-04-07 | 2024-01-30 | Intel Corporation | Characterizing error correlation based on error logging for computer buses |
CN111400232B (zh) * | 2020-04-10 | 2024-01-16 | 芯启源(上海)半导体科技有限公司 | 一种基于数据位宽展开的scramble与descramble硬件实现方法 |
US11288225B2 (en) | 2020-04-14 | 2022-03-29 | Western Digital Technologies, Inc. | Adapting transmitter training behavior based upon assumed identity of training partner |
US11309013B2 (en) | 2020-04-29 | 2022-04-19 | Samsung Electronics Co., Ltd. | Memory device for reducing resources used for training |
US11513981B2 (en) * | 2020-04-29 | 2022-11-29 | Dell Products L.P. | PCIe link management without sideband signals |
LU101767B1 (en) * | 2020-05-05 | 2021-11-05 | Microsoft Technology Licensing Llc | Recording a memory value trace for use with a separate cache coherency protocol trace |
US11586446B1 (en) * | 2020-05-20 | 2023-02-21 | Marvell Asia Pte Ltd | System and methods for hardware-based PCIe link up based on post silicon characterization |
US11263137B2 (en) * | 2020-05-27 | 2022-03-01 | Arm Limited | Core-to-core cache stashing and target discovery |
CN116134475A (zh) * | 2020-05-29 | 2023-05-16 | 奈特力斯股份有限公司 | 计算机存储器扩展设备及其操作方法 |
US20210013999A1 (en) * | 2020-06-04 | 2021-01-14 | Intel Corporation | Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses |
WO2021247766A1 (en) * | 2020-06-05 | 2021-12-09 | William David Schwaderer | Shapeshift data encryption methods and systems |
KR102254337B1 (ko) * | 2020-06-22 | 2021-05-21 | 한양대학교 산학협력단 | Dc-밸런싱을 고려한 pam4 5b3q 코딩 방법 및 장치 |
US11362939B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Flow control for a multiple flow control unit interface |
US11580044B2 (en) * | 2020-08-31 | 2023-02-14 | Micron Technology, Inc. | Network credit return mechanisms |
US11588745B2 (en) | 2020-08-31 | 2023-02-21 | Micron Technology, Inc. | Early credit return for credit-based flow control |
CN112134859B (zh) * | 2020-09-09 | 2021-07-06 | 上海沈德医疗器械科技有限公司 | 一种基于arm架构的聚焦超声治疗设备控制方法 |
DE102021121105A1 (de) * | 2020-09-28 | 2022-03-31 | Samsung Electronics Co., Ltd. | Intelligente ablagespeichervorrichtung |
TWI783293B (zh) * | 2020-11-09 | 2022-11-11 | 瑞昱半導體股份有限公司 | 訊號傳輸裝置識別方法與訊號處理系統 |
US11409677B2 (en) | 2020-11-11 | 2022-08-09 | Qorvo Us, Inc. | Bus slave circuit and related single-wire bus apparatus |
US11489695B2 (en) | 2020-11-24 | 2022-11-01 | Qorvo Us, Inc. | Full-duplex communications over a single-wire bus |
KR20230108337A (ko) | 2020-11-24 | 2023-07-18 | 텍트로닉스 인코포레이티드 | 고속 입력/출력 마진 테스팅을 위한 시스템, 방법 및 디바이스 |
CN112579479B (zh) * | 2020-12-07 | 2022-07-08 | 成都海光微电子技术有限公司 | 在维护缓存一致性时维护事务次序的处理器及其方法 |
US20220182098A1 (en) * | 2020-12-09 | 2022-06-09 | Texas Instruments Incorporated | Low power digital modes for duty-cycled integrated transceivers |
US11636037B2 (en) | 2020-12-21 | 2023-04-25 | Nxp Usa, Inc. | Methods and apparatuses involving radar system data paths |
CN112953556A (zh) * | 2021-02-05 | 2021-06-11 | 南京大学 | 基于斐波那契数列的抗串扰互联的编解码器及编码方法 |
CN112631989A (zh) * | 2021-03-08 | 2021-04-09 | 南京蓝洋智能科技有限公司 | 一种小芯片间、芯片间、小芯片与芯片间的数据传输方法 |
US11431649B1 (en) * | 2021-03-26 | 2022-08-30 | Arm Limited | Interconnect resource allocation |
CN113019479A (zh) * | 2021-03-31 | 2021-06-25 | 中国人民解放军空军军医大学 | 一种用于模拟井下工作环境的试验箱 |
IT202100008723A1 (it) | 2021-04-08 | 2022-10-08 | Phoenix ICT | Sistema per la gestione in sicurezza dei documenti digitali |
US20220327074A1 (en) * | 2021-04-13 | 2022-10-13 | SK Hynix Inc. | PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME |
KR102518317B1 (ko) * | 2021-04-13 | 2023-04-06 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
US11789658B2 (en) | 2021-04-13 | 2023-10-17 | SK Hynix Inc. | Peripheral component interconnect express (PCIe) interface system and method of operating the same |
KR102668564B1 (ko) | 2021-06-01 | 2024-05-24 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
TWI773395B (zh) * | 2021-06-22 | 2022-08-01 | 慧榮科技股份有限公司 | 記憶體控制器與連結識別方法 |
CN113971143B (zh) * | 2021-10-22 | 2023-12-05 | 展讯半导体(成都)有限公司 | 一种内存控制器、物联网芯片及电子设备 |
US11755494B2 (en) * | 2021-10-29 | 2023-09-12 | Advanced Micro Devices, Inc. | Cache line coherence state downgrade |
US11706048B1 (en) | 2021-12-16 | 2023-07-18 | Qorvo Us, Inc. | Multi-protocol bus circuit |
CN114510268B (zh) * | 2021-12-24 | 2022-09-20 | 中国人民解放军战略支援部队航天工程大学 | 一种基于gpu实现下变频中单精度浮点数累积误差控制方法 |
US20220342840A1 (en) * | 2021-12-30 | 2022-10-27 | Intel Corporation | Die-to-die interconnect |
US20220327084A1 (en) * | 2021-12-30 | 2022-10-13 | Intel Corporation | Die-to-die interconnect protocol layer |
US11907132B2 (en) | 2022-03-23 | 2024-02-20 | International Business Machines Corporation | Final cache directory state indication |
US11726660B1 (en) * | 2022-04-15 | 2023-08-15 | Dell Products L.P. | Techniques for flexible physical drive expansion using a loop back connection |
US12038853B2 (en) | 2022-04-22 | 2024-07-16 | Western Digital Technologies, Inc. | Reducing link up time in PCIe systems |
CN114942814B (zh) * | 2022-06-01 | 2023-07-11 | 咪咕视讯科技有限公司 | 页面组件的聚焦方法、***、终端设备及介质 |
US11880686B2 (en) * | 2022-06-16 | 2024-01-23 | Ampere Computing Llc | Devices transferring cache lines, including metadata on external links |
CN115099356A (zh) * | 2022-07-11 | 2022-09-23 | 大连理工大学 | 工业不平衡数据分类方法、装置、电子设备及存储介质 |
CN115238619B (zh) * | 2022-09-20 | 2023-06-27 | 北京数字光芯集成电路设计有限公司 | 数字芯片的子模块后仿真方法和*** |
US11914473B1 (en) * | 2022-10-20 | 2024-02-27 | Micron Technology, Inc. | Data recovery using ordered data requests |
Family Cites Families (271)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4191941A (en) | 1978-04-03 | 1980-03-04 | Rca Corporation | Switch matrix for data transfers |
US4716523A (en) | 1985-06-14 | 1987-12-29 | International Business Machines Corporation | Multiple port integrated DMA and interrupt controller and arbitrator |
US5537640A (en) * | 1988-12-30 | 1996-07-16 | Intel Corporation | Asynchronous modular bus architecture with cache consistency |
NZ232223A (en) * | 1989-01-27 | 1993-03-26 | British Telecomm | Alternate burst communication for cordless phones re-established after channel failure |
US4959833A (en) * | 1989-03-08 | 1990-09-25 | Ics Electronics Corporation | Data transmission method and bus extender |
CA2045756C (en) * | 1990-06-29 | 1996-08-20 | Gregg Bouchard | Combined queue for invalidates and return data in multiprocessor system |
WO1992006436A2 (en) * | 1990-10-03 | 1992-04-16 | Thinking Machines Corporation | Parallel computer system |
US5222062A (en) | 1991-10-03 | 1993-06-22 | Compaq Computer Corporation | Expandable communication system with automatic data concentrator detection |
US5434993A (en) * | 1992-11-09 | 1995-07-18 | Sun Microsystems, Inc. | Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories |
EP0600626A1 (de) * | 1992-11-13 | 1994-06-08 | Cyrix Corporation | Kohärenz eines Nachschreibcachespeicher in einem für Durchschreibcachespeicher bestimmten System |
US5325360A (en) | 1992-12-09 | 1994-06-28 | National Semiconductor Corporation | Controllable PCM state machine user interface |
US5394555A (en) * | 1992-12-23 | 1995-02-28 | Bull Hn Information Systems Inc. | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory |
US5432775A (en) | 1993-12-03 | 1995-07-11 | Advanced Micro Devices, Inc. | Auto negotiation system for a communications network |
US5551005A (en) * | 1994-02-25 | 1996-08-27 | Intel Corporation | Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches |
US5572703A (en) * | 1994-03-01 | 1996-11-05 | Intel Corporation | Method and apparatus for snoop stretching using signals that convey snoop results |
US5383143A (en) | 1994-03-30 | 1995-01-17 | Motorola, Inc. | Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation |
EP0706138A1 (de) * | 1994-10-03 | 1996-04-10 | International Business Machines Corporation | Abwechselnde Datengültigkeitssteuerungssignale für Hochgeschwindigkeitsdatenübertragung |
EP0707269A1 (de) * | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cachespeicherkohärenznetzwerk für Multiprozessor-Datenverarbeitungssystem |
EP0735480B1 (de) * | 1995-03-31 | 2003-06-04 | Sun Microsystems, Inc. | Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert |
DE69616402T2 (de) | 1995-03-31 | 2002-07-18 | Sun Microsystems, Inc. | Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem |
US5898826A (en) * | 1995-11-22 | 1999-04-27 | Intel Corporation | Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network |
US5983326A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode |
CN1179043A (zh) * | 1996-09-20 | 1998-04-15 | 摩托罗拉公司 | Tdm/tdma***中离散可变的时隙宽度 |
US5991819A (en) * | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
US6249520B1 (en) * | 1997-10-24 | 2001-06-19 | Compaq Computer Corporation | High-performance non-blocking switch with multiple channel ordering constraints |
US6052760A (en) * | 1997-11-05 | 2000-04-18 | Unisys Corporation | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks |
US5987056A (en) * | 1997-11-13 | 1999-11-16 | Lsi Logic Corporation | PN sequence hopping method and system |
US6163608A (en) * | 1998-01-09 | 2000-12-19 | Ericsson Inc. | Methods and apparatus for providing comfort noise in communications systems |
US6141733A (en) * | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
US6334172B1 (en) * | 1998-02-17 | 2001-12-25 | International Business Machines Corporation | Cache coherency protocol with tagged state for modified values |
US6345339B1 (en) * | 1998-02-17 | 2002-02-05 | International Business Machines Corporation | Pseudo precise I-cache inclusivity for vertical caches |
US6631448B2 (en) * | 1998-03-12 | 2003-10-07 | Fujitsu Limited | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol |
US7471075B2 (en) | 1998-04-17 | 2008-12-30 | Unique Technologies, Llc | Multi-test Arc fault circuit interrupter tester |
DE69813551T2 (de) * | 1998-09-30 | 2004-02-12 | Alcatel | Verfahren und Einrichtung für den Übergang eines niedrigen Leistungszustandes zu einem hohen Leistungszustand in einem Kommunikationssystem |
GB2342823B (en) * | 1998-10-16 | 2000-11-29 | Marconi Comm Ltd | Communication system |
US6526481B1 (en) * | 1998-12-17 | 2003-02-25 | Massachusetts Institute Of Technology | Adaptive cache coherence protocols |
US6393529B1 (en) * | 1998-12-21 | 2002-05-21 | Advanced Micro Devices, Inc. | Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write |
US6556634B1 (en) * | 1999-02-10 | 2003-04-29 | Ericsson, Inc. | Maximum likelihood rake receiver for use in a code division, multiple access wireless communication system |
US6185250B1 (en) * | 1999-03-10 | 2001-02-06 | Lucent Technologies Inc. | Training of level learning modems |
EP1232614A2 (de) | 1999-05-28 | 2002-08-21 | Basic Resources, Inc. | Drahtloses netzwerk mit knoten-zu-knoten datenbenachrichtigung |
US6487621B1 (en) * | 1999-08-17 | 2002-11-26 | Compaq Information Technologies Group, L.P. | Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle |
KR100566289B1 (ko) * | 1999-09-03 | 2006-03-30 | 삼성전자주식회사 | 데이타 링크 맵을 이용한 브이5.2 계층 2의 비활성화 제어 방법 및 장치 |
US7010607B1 (en) * | 1999-09-15 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Method for training a communication link between ports to correct for errors |
US6754185B1 (en) * | 1999-09-27 | 2004-06-22 | Koninklijke Philips Electronics N.V. | Multi link layer to single physical layer interface in a node of a data communication system |
US6751698B1 (en) * | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
US6674720B1 (en) * | 1999-09-29 | 2004-01-06 | Silicon Graphics, Inc. | Age-based network arbitration system and method |
US6763034B1 (en) * | 1999-10-01 | 2004-07-13 | Stmicroelectronics, Ltd. | Connection ports for interconnecting modules in an integrated circuit |
US6320406B1 (en) | 1999-10-04 | 2001-11-20 | Texas Instruments Incorporated | Methods and apparatus for a terminated fail-safe circuit |
US6665832B1 (en) * | 2000-03-31 | 2003-12-16 | Qualcomm, Incorporated | Slotted mode decoder state metric initialization |
US6865231B1 (en) * | 2000-06-20 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | High-speed interconnection adapter having automated crossed differential pair correction |
US6961347B1 (en) * | 2000-06-20 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | High-speed interconnection link having automated lane reordering |
US7124252B1 (en) * | 2000-08-21 | 2006-10-17 | Intel Corporation | Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system |
US6668335B1 (en) | 2000-08-31 | 2003-12-23 | Hewlett-Packard Company, L.P. | System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths |
US6892319B2 (en) | 2000-09-08 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Method for verifying abstract memory models of shared memory multiprocessors |
US7327754B2 (en) | 2000-09-28 | 2008-02-05 | Teridian Semiconductor, Corp. | Apparatus and method for freezing the states of a receiver during silent line state operation of a network device |
US7236490B2 (en) * | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7596139B2 (en) * | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
EP1211837A1 (de) * | 2000-12-04 | 2002-06-05 | Telefonaktiebolaget Lm Ericsson | Ungleicher Fehlerschutz in ein Paketübertragungssystem |
EP1217613A1 (de) * | 2000-12-19 | 2002-06-26 | Koninklijke Philips Electronics N.V. | Wiederherstellung von schlechten oder fehlenden Rahmen in zellularer Telefonie |
US6859864B2 (en) * | 2000-12-29 | 2005-02-22 | Intel Corporation | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line |
US20020161975A1 (en) * | 2001-02-23 | 2002-10-31 | Zilavy Daniel V. | Cache to cache copying of clean data |
US7231500B2 (en) * | 2001-03-22 | 2007-06-12 | Sony Computer Entertainment Inc. | External data interface in a computer architecture for broadband networks |
US6987947B2 (en) | 2001-10-30 | 2006-01-17 | Unwired Technology Llc | Multiple channel wireless communication system |
US6941425B2 (en) * | 2001-11-12 | 2005-09-06 | Intel Corporation | Method and apparatus for read launch optimizations in memory interconnect |
US20030093632A1 (en) * | 2001-11-12 | 2003-05-15 | Intel Corporation | Method and apparatus for sideband read return header in memory interconnect |
US7227845B2 (en) * | 2001-12-11 | 2007-06-05 | Motorola, Inc. | Method and apparatus for enabling a communication resource reset |
US7117311B1 (en) * | 2001-12-19 | 2006-10-03 | Intel Corporation | Hot plug cache coherent interface method and apparatus |
US7030737B2 (en) | 2002-03-01 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | Apparatus, system, and method for indicating a level of network activity |
US7200186B2 (en) * | 2002-03-14 | 2007-04-03 | Intel Corporation | Methods and apparatus for reducing power usage of a transmitter and receiver coupled via a differential serial data link |
US7334047B1 (en) * | 2002-03-18 | 2008-02-19 | Cisco Technology, Inc. | Method and system for selective link state advertisement blocking over a data network area |
US7653790B2 (en) * | 2002-05-13 | 2010-01-26 | Glasco David B | Methods and apparatus for responding to a request cluster |
US7020729B2 (en) * | 2002-05-16 | 2006-03-28 | Intel Corporation | Protocol independent data transmission interface |
US6973545B2 (en) * | 2002-06-28 | 2005-12-06 | Sun Microsystems, Inc. | System with a directory based coherency protocol and split ownership and access right coherence mechanism |
US20040028074A1 (en) * | 2002-07-26 | 2004-02-12 | Gary Huff | Physical layer device with line state encoding |
US7093172B2 (en) * | 2002-08-07 | 2006-08-15 | Broadcom Corporation | System and method for determining on-chip bit error rate (BER) in a communication system |
US8037224B2 (en) * | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US7720135B2 (en) * | 2002-11-07 | 2010-05-18 | Intel Corporation | System, method and device for autonegotiation |
US7505486B2 (en) * | 2002-11-19 | 2009-03-17 | Hewlett-Packard Development Company, L.P. | Degradable network data path transmission scheme |
US7203853B2 (en) * | 2002-11-22 | 2007-04-10 | Intel Corporation | Apparatus and method for low latency power management on a serial data link |
US20040174570A1 (en) | 2002-12-02 | 2004-09-09 | Plunkett Richard Thomas | Variable size dither matrix usage |
US6892283B2 (en) * | 2002-12-05 | 2005-05-10 | International Business Machines Corporation | High speed memory cloner with extended cache coherency protocols and responses |
US7525989B2 (en) * | 2002-12-16 | 2009-04-28 | Intel Corporation | System, method and device for time slot status messaging among SONET nodes |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US7047475B2 (en) * | 2003-02-04 | 2006-05-16 | Hewlett-Packard Development Company, L.P. | CRC encoding scheme for conveying status information |
US7535836B2 (en) * | 2003-02-12 | 2009-05-19 | Broadcom Corporation | Method and system to provide word-level flow control using spare link bandwidth |
GB2399722A (en) * | 2003-03-21 | 2004-09-22 | Sony Uk Ltd | Data communication synchronisation |
US7464307B2 (en) * | 2003-03-25 | 2008-12-09 | Intel Corporation | High performance serial bus testing methodology |
US7136953B1 (en) | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US7426597B1 (en) * | 2003-05-07 | 2008-09-16 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization of a graphics system |
US7792118B2 (en) * | 2003-06-19 | 2010-09-07 | Polytechnic University | Switch module memory structure and per-destination queue flow control for use in a switch |
US7577727B2 (en) * | 2003-06-27 | 2009-08-18 | Newisys, Inc. | Dynamic multiple cluster system reconfiguration |
US20050027876A1 (en) * | 2003-07-29 | 2005-02-03 | Toshitomo Umei | Data transmission method, data transmission system, and data transmission apparatus |
CN1320464C (zh) * | 2003-10-23 | 2007-06-06 | 英特尔公司 | 用于维持共享高速缓存一致性的方法和设备 |
US7146284B2 (en) * | 2003-11-07 | 2006-12-05 | Texas Instruments Incorporated | Method of testing phase lock loop status during a Serializer/Deserializer internal loopback built-in self-test |
EP2242231A1 (de) * | 2003-11-12 | 2010-10-20 | Qualcomm Incorporated | Hochgeschwindigkeits-Datenschnittstelle mit verbesserter Verbindungssteuerung |
US8090857B2 (en) * | 2003-11-24 | 2012-01-03 | Qualcomm Atheros, Inc. | Medium access control layer that encapsulates data from a plurality of received data units into a plurality of independently transmittable blocks |
US7440468B2 (en) * | 2003-12-11 | 2008-10-21 | International Business Machines Corporation | Queue management of a global link control byte in an input/output subsystem |
US8009563B2 (en) * | 2003-12-19 | 2011-08-30 | Broadcom Corporation | Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation |
US7631118B2 (en) * | 2003-12-31 | 2009-12-08 | Intel Corporation | Lane to lane deskewing via non-data symbol processing for a serial point to point link |
JP4005974B2 (ja) * | 2004-01-09 | 2007-11-14 | 株式会社東芝 | 通信装置、通信方法、および通信システム |
US7856534B2 (en) * | 2004-01-15 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Transaction references for requests in a multi-processor network |
US8176259B2 (en) * | 2004-01-20 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for resolving transactions in a cache coherency protocol |
US7620696B2 (en) * | 2004-01-20 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | System and method for conflict responses in a cache coherency protocol |
US7177987B2 (en) * | 2004-01-20 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for responses between different cache coherency protocols |
US20050172091A1 (en) * | 2004-01-29 | 2005-08-04 | Rotithor Hemant G. | Method and an apparatus for interleaving read data return in a packetized interconnect to memory |
US7210000B2 (en) * | 2004-04-27 | 2007-04-24 | Intel Corporation | Transmitting peer-to-peer transactions through a coherent interface |
US20050240734A1 (en) * | 2004-04-27 | 2005-10-27 | Batson Brannon J | Cache coherence protocol |
US7716409B2 (en) * | 2004-04-27 | 2010-05-11 | Intel Corporation | Globally unique transaction identifiers |
US20050262250A1 (en) * | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
CN101895504A (zh) * | 2004-04-30 | 2010-11-24 | 夏普株式会社 | 无线通信*** |
US20060041696A1 (en) | 2004-05-21 | 2006-02-23 | Naveen Cherukuri | Methods and apparatuses for the physical layer initialization of a link-based system interconnect |
US7957428B2 (en) * | 2004-05-21 | 2011-06-07 | Intel Corporation | Methods and apparatuses to effect a variable-width link |
US7313712B2 (en) | 2004-05-21 | 2007-12-25 | Intel Corporation | Link power saving state |
US7219220B2 (en) * | 2004-05-21 | 2007-05-15 | Intel Corporation | Methods and apparatuses for resetting the physical layers of two agents interconnected through a link-based interconnection |
CN1700639A (zh) * | 2004-05-21 | 2005-11-23 | 华为技术有限公司 | 导出和导入无线局域网鉴别与保密基础结构证书信息方法 |
US8046488B2 (en) * | 2004-05-21 | 2011-10-25 | Intel Corporation | Dynamically modulating link width |
US20060041715A1 (en) | 2004-05-28 | 2006-02-23 | Chrysos George Z | Multiprocessor chip having bidirectional ring interconnect |
US7467358B2 (en) * | 2004-06-03 | 2008-12-16 | Gwangju Institute Of Science And Technology | Asynchronous switch based on butterfly fat-tree for network on chip application |
US7295618B2 (en) * | 2004-06-16 | 2007-11-13 | International Business Machines Corporation | Automatic adaptive equalization method and system for high-speed serial transmission link |
US7436836B2 (en) * | 2004-06-30 | 2008-10-14 | Cisco Technology, Inc. | Method and apparatus for detecting support for a protocol defining supplemental headers |
US8161429B1 (en) * | 2004-08-20 | 2012-04-17 | Altera Corporation | Methods and apparatus for initializing serial links |
KR100579053B1 (ko) | 2004-08-26 | 2006-05-12 | 삼성전자주식회사 | 스마트 카드와 메모리 카드간의 멀티 인터페이스 방법 및멀티 인터페이스 카드 |
US20060047862A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Automatic hardware data link initialization |
US9727468B2 (en) * | 2004-09-09 | 2017-08-08 | Intel Corporation | Resolving multi-core shared cache access conflicts |
US7191255B2 (en) * | 2004-10-27 | 2007-03-13 | Intel Corporation | Transaction layer link down handling for PCI express |
CN100384118C (zh) * | 2004-11-03 | 2008-04-23 | 上海贝尔阿尔卡特股份有限公司 | 处理通用成帧规程帧的方法和装置 |
US7738484B2 (en) * | 2004-12-13 | 2010-06-15 | Intel Corporation | Method, system, and apparatus for system level initialization |
US7761719B2 (en) * | 2005-03-28 | 2010-07-20 | Akros Silicon Inc. | Ethernet module |
JP4791530B2 (ja) * | 2005-04-13 | 2011-10-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電子デバイス及びフロー制御方法 |
US7613864B2 (en) * | 2005-04-22 | 2009-11-03 | Sun Microsystems, Inc. | Device sharing |
US7564904B2 (en) | 2005-05-03 | 2009-07-21 | Texas Instruments Incorporated | Apparatus for and method of detection of powered devices over a network |
US7539801B2 (en) * | 2005-05-27 | 2009-05-26 | Ati Technologies Ulc | Computing device with flexibly configurable expansion slots, and method of operation |
US7694060B2 (en) * | 2005-06-17 | 2010-04-06 | Intel Corporation | Systems with variable link widths based on estimated activity levels |
US7620694B2 (en) * | 2005-09-27 | 2009-11-17 | Intel Corporation | Early issue of transaction ID |
US7633877B2 (en) | 2005-11-18 | 2009-12-15 | Intel Corporation | Method and apparatus for meeting compliance for debugging and testing a multi-speed, point-to-point link |
US20070239922A1 (en) * | 2005-12-09 | 2007-10-11 | Horigan John W | Technique for link reconfiguration |
US7924708B2 (en) * | 2005-12-13 | 2011-04-12 | Intel Corporation | Method and apparatus for flow control initialization |
US7606981B2 (en) * | 2005-12-19 | 2009-10-20 | Intel Corporation | System and method for reducing store latency |
CN1996782B (zh) * | 2005-12-26 | 2010-05-05 | 中兴通讯股份有限公司 | 一种空域自适应链路的天线选择指示方法 |
US7430628B2 (en) * | 2006-01-10 | 2008-09-30 | Kabushiki Kaisha Toshiba | System and method for optimized allocation of shared processing resources |
US7512741B1 (en) * | 2006-01-11 | 2009-03-31 | Intel Corporation | Two-hop source snoop based messaging protocol |
US7543115B1 (en) * | 2006-01-11 | 2009-06-02 | Intel Corporation | Two-hop source snoop based cache coherence protocol |
JP4572169B2 (ja) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
US9390015B2 (en) * | 2006-03-16 | 2016-07-12 | International Business Machines Corporation | Method for performing cacheline polling utilizing a store and reserve instruction |
US7783959B2 (en) * | 2006-03-23 | 2010-08-24 | Intel Corporation | Apparatus and method for reduced power consumption communications over a physical interconnect |
US7681093B2 (en) * | 2006-03-31 | 2010-03-16 | Intel Corporation | Redundant acknowledgment in loopback entry |
US7743129B2 (en) | 2006-05-01 | 2010-06-22 | International Business Machines Corporation | Methods and arrangements to detect a failure in a communication network |
US20070260615A1 (en) * | 2006-05-08 | 2007-11-08 | Eran Shen | Media with Pluggable Codec |
US7721050B2 (en) * | 2006-06-30 | 2010-05-18 | Intel Corporation | Re-snoop for conflict resolution in a cache coherency protocol |
US7536515B2 (en) * | 2006-06-30 | 2009-05-19 | Intel Corporation | Repeated conflict acknowledgements in a cache coherency protocol |
US7506108B2 (en) * | 2006-06-30 | 2009-03-17 | Intel Corporation | Requester-generated forward for late conflicts in a cache coherency protocol |
WO2008018004A2 (en) * | 2006-08-08 | 2008-02-14 | Koninklijke Philips Electronics N.V. | Electronic device and method for synchronizing a communication |
US7965758B2 (en) * | 2006-09-15 | 2011-06-21 | Itron, Inc. | Cell isolation through quasi-orthogonal sequences in a frequency hopping network |
US7600080B1 (en) * | 2006-09-22 | 2009-10-06 | Intel Corporation | Avoiding deadlocks in a multiprocessor system |
GB2443465A (en) * | 2006-11-06 | 2008-05-07 | Fujitsu Ltd | Communication systems |
US9734086B2 (en) * | 2006-12-06 | 2017-08-15 | Sandisk Technologies Llc | Apparatus, system, and method for a device shared between multiple independent hosts |
KR101514630B1 (ko) | 2007-01-15 | 2015-04-23 | 코닌클리케 필립스 엔.브이. | Ofdm 시스템을 위해 첨두 전력 대 평균 전력 비율(papr)이 낮은 2진수 프리엠블 시퀀스를 생성하는 방법 |
DE102007007136B3 (de) | 2007-02-09 | 2008-08-28 | Siemens Ag | Radelektronik und Verfahren zum Betreiben einer Radelektronik |
US8428175B2 (en) * | 2007-03-09 | 2013-04-23 | Qualcomm Incorporated | Quadrature modulation rotating training sequence |
US7978635B2 (en) | 2007-03-21 | 2011-07-12 | Qualcomm Incorporated | H-ARQ acknowledgment detection validation by re-decoding |
EP1973254B1 (de) * | 2007-03-22 | 2009-07-15 | Research In Motion Limited | Vorrichtung und Verfahren zur verbesserten Maskierung von Rahmenverlusten |
EP2156595A1 (de) * | 2007-05-08 | 2010-02-24 | InterDigital Technology Corporation | Verfahren und vorrichtung zur bereitstellung eines angehängten positivbestätigungs- bzw. negativbestätigungs-feldindikators und eines polling-indikators |
US7827357B2 (en) * | 2007-07-31 | 2010-11-02 | Intel Corporation | Providing an inclusive shared cache among multiple core-cache clusters |
US7899111B2 (en) * | 2007-08-07 | 2011-03-01 | Intel Corporation | Link interface technique including data indicator symbols |
CA2632031A1 (en) * | 2007-09-05 | 2009-03-05 | Faisal Dada | Aligning data on parallel transmission lines |
US20090125363A1 (en) * | 2007-10-22 | 2009-05-14 | Nokia Siemens Networks Oy | Method, apparatus and computer program for employing a frame structure in wireless communication |
EP2063581A1 (de) * | 2007-11-20 | 2009-05-27 | STMicroelectronics (Grenoble) SAS | Übertragung eines Datenstroms zwischen zwei elektronischen Geräten mittels eines Netzwerk-on-chip |
US8392663B2 (en) * | 2007-12-12 | 2013-03-05 | Mips Technologies, Inc. | Coherent instruction cache utilizing cache-op execution resources |
US8179901B2 (en) | 2008-02-11 | 2012-05-15 | Vitesse Semiconductor Corporation | System and method for squelching a recovered clock in an ethernet network |
EP2248230B1 (de) | 2008-02-29 | 2014-04-16 | Hewlett-Packard Development Company, L.P. | Modulares system und einfahrbare baugruppe für elektronische einrichtungen |
DE102008012979A1 (de) * | 2008-03-06 | 2009-09-10 | Gip Ag | Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken |
US7492807B1 (en) | 2008-04-07 | 2009-02-17 | International Business Machines Corporation | Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods |
JP5108975B2 (ja) * | 2008-04-28 | 2012-12-26 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 仮想割り込みモードインターフェース及び割り込みモードを仮想化するための方法 |
US8762652B2 (en) * | 2008-04-30 | 2014-06-24 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
CN101599811B (zh) * | 2008-06-02 | 2011-04-06 | 华为技术有限公司 | 一种数据处理装置,通信设备以及数据处理方法 |
US7769048B2 (en) * | 2008-06-25 | 2010-08-03 | Intel Corporation | Link and lane level packetization scheme of encoding in serial links |
US8201069B2 (en) * | 2008-07-01 | 2012-06-12 | International Business Machines Corporation | Cyclical redundancy code for use in a high-speed serial link |
US8205045B2 (en) * | 2008-07-07 | 2012-06-19 | Intel Corporation | Satisfying memory ordering requirements between partial writes and non-snoop accesses |
US8250311B2 (en) * | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
CN101325461B (zh) * | 2008-07-25 | 2011-04-27 | 浙江大学 | 基于无速率码的认知无线电通信链路的建立和维护方法 |
CA2736470A1 (en) * | 2008-09-08 | 2010-03-11 | Samsung Electronics Co., Ltd. | Sub-channel acquisition in a digital television receiver designed to receive mobile/handheld signals |
CA2736768A1 (en) * | 2008-09-10 | 2010-03-18 | Commlabs, Inc. | Wide area positioning system |
US8917209B2 (en) * | 2009-09-10 | 2014-12-23 | Nextnav, Llc | Coding in a wide area positioning system (WAPS) |
US8265071B2 (en) * | 2008-09-11 | 2012-09-11 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
CN101430664B (zh) * | 2008-09-12 | 2010-07-28 | 中国科学院计算技术研究所 | 一种多处理器***及Cache一致性消息传输方法 |
EP2173066B1 (de) | 2008-10-01 | 2012-05-16 | STMicroelectronics Srl | Verfahren zum Austauschen von Informationen in einem Network-on-Chip-Kommunikationsnetzwerk, entsprechendes Network-on-Chip-Kommunikationsnetzwerk und Computerprogrammprodukt |
WO2010096122A1 (en) * | 2008-10-29 | 2010-08-26 | Adapteva Incorporated | Mesh network |
KR100988809B1 (ko) * | 2008-11-06 | 2010-10-20 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 출력인에이블 신호 생성 방법 |
US8706479B2 (en) * | 2008-11-14 | 2014-04-22 | Broadcom Corporation | Packet loss concealment for sub-band codecs |
CN101437033B (zh) * | 2008-12-16 | 2012-07-11 | 杭州华三通信技术有限公司 | 一种支持可变速率的方法和网络设备 |
US8189504B2 (en) * | 2008-12-17 | 2012-05-29 | Viasat, Inc. | Physical layer header structure for decoding and synchronization |
US8799582B2 (en) * | 2008-12-30 | 2014-08-05 | Intel Corporation | Extending cache coherency protocols to support locally buffered data |
US8026726B2 (en) * | 2009-01-23 | 2011-09-27 | Silicon Image, Inc. | Fault testing for interconnections |
KR101598094B1 (ko) * | 2009-02-02 | 2016-02-26 | 엘지전자 주식회사 | 송/수신 시스템 및 데이터 처리 방법 |
KR20100092353A (ko) * | 2009-02-12 | 2010-08-20 | 엘지전자 주식회사 | 트래픽 암호화 키 관리방법 및 장치 |
WO2010096969A1 (zh) * | 2009-02-27 | 2010-09-02 | 华为技术有限公司 | 无源光网络中发送上行传送帧的方法及设备 |
KR101133256B1 (ko) | 2009-02-27 | 2012-04-09 | 한국과학기술원 | 시그니처 정보를 이용한 물리계층에서의 타임스탬프 처리장치 및 그 방법 |
US20100228922A1 (en) | 2009-03-09 | 2010-09-09 | Deepak Limaye | Method and system to perform background evictions of cache memory lines |
US8401400B2 (en) * | 2009-03-10 | 2013-03-19 | Tyco Electronics Subsea Communications Llc | Detection of data in signals with data pattern dependent signal distortion |
CN101854331A (zh) * | 2009-04-02 | 2010-10-06 | 天际微芯(北京)科技有限公司 | 训练序列结构及训练方法 |
US8335911B2 (en) * | 2009-05-21 | 2012-12-18 | Oracle America, Inc. | Dynamic allocation of resources in a threaded, heterogeneous processor |
US9690625B2 (en) * | 2009-06-16 | 2017-06-27 | Oracle America, Inc. | System and method for out-of-order resource allocation and deallocation in a threaded machine |
US8199759B2 (en) | 2009-05-29 | 2012-06-12 | Intel Corporation | Method and apparatus for enabling ID based streams over PCI express |
CN101561794B (zh) * | 2009-06-05 | 2012-07-04 | 威盛电子股份有限公司 | 通用串行总线装置 |
US8239704B2 (en) * | 2009-06-12 | 2012-08-07 | Cray Inc. | Global clock via embedded spanning tree |
WO2010147264A1 (en) * | 2009-06-16 | 2010-12-23 | Lg Electronics Inc. | Method of exchanging messages and transmitting and receiving devices |
US8782347B2 (en) * | 2009-06-26 | 2014-07-15 | Intel Corporation | Controllably exiting an unknown state of a cache coherency directory |
US20100332877A1 (en) | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
US8831666B2 (en) * | 2009-06-30 | 2014-09-09 | Intel Corporation | Link power savings with state retention |
CN101695193A (zh) * | 2009-09-27 | 2010-04-14 | 上海华为技术有限公司 | 一种下行数据发送和下行数据接收的方法和装置 |
US8799586B2 (en) | 2009-09-30 | 2014-08-05 | Intel Corporation | Memory mirroring and migration at home agent |
US8327228B2 (en) * | 2009-09-30 | 2012-12-04 | Intel Corporation | Home agent data and memory management |
US8819305B2 (en) * | 2009-11-16 | 2014-08-26 | Intel Corporation | Directly providing data messages to a protocol layer |
US8621128B2 (en) * | 2009-12-04 | 2013-12-31 | St-Ericsson Sa | Methods and systems for reliable link startup |
US9100809B2 (en) * | 2009-12-21 | 2015-08-04 | Julia Olincy Olincy | Automatic response option mobile system for responding to incoming texts or calls or both |
US8301813B2 (en) * | 2009-12-24 | 2012-10-30 | Ati Technologies Ulc | Method and device for disabling a higher version of a computer bus and interconnection protocol for interoperability with a device compliant to a lower version of the computer bus and interconnection protocol |
US20120227045A1 (en) | 2009-12-26 | 2012-09-06 | Knauth Laura A | Method, apparatus, and system for speculative execution event counter checkpointing and restoring |
US8804960B2 (en) * | 2010-02-22 | 2014-08-12 | International Business Machines Corporation | Implementing known scrambling relationship among multiple serial links |
US8868846B2 (en) * | 2010-03-19 | 2014-10-21 | Netapp, Inc. | Method and system for maintaining data coherency across a network |
US8473567B2 (en) * | 2010-03-29 | 2013-06-25 | Intel Corporation | Generating a packet including multiple operation codes |
US8514885B2 (en) * | 2010-03-30 | 2013-08-20 | International Business Machines Corporation | Using variable length packets to embed extra network control information |
US8539260B2 (en) * | 2010-04-05 | 2013-09-17 | Intel Corporation | Method, apparatus, and system for enabling platform power states |
CN101867401B (zh) * | 2010-05-04 | 2013-11-20 | 西安交通大学 | 一种遮挡躲避的60GHz多天线***及其信号处理方法 |
CN102238623B (zh) * | 2010-05-06 | 2014-04-09 | 中兴通讯股份有限公司 | 加快无线链路控制窗口状态应答的方法及基站子*** |
JP2011248814A (ja) * | 2010-05-31 | 2011-12-08 | Nec Corp | PCIExpressリンクエラー検出及び自動復旧機能を備えたデバイス |
US9448938B2 (en) * | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
CN101867452B (zh) | 2010-06-10 | 2013-07-17 | 国网电力科学研究院 | 一种电力专用串行实时总线的通信方法 |
KR101323055B1 (ko) * | 2010-06-17 | 2013-10-29 | 엘지디스플레이 주식회사 | 내부 디스플레이 포트 인터페이스 테스트 방법 및 장치 |
CN102315917B (zh) * | 2010-07-06 | 2014-12-17 | 瑞昱半导体股份有限公司 | 一种用于信号传输的省电方法及装置 |
CN102377608B (zh) * | 2010-08-12 | 2014-07-09 | 盛科网络(苏州)有限公司 | 物理层故障模拟***及方法 |
US8656115B2 (en) * | 2010-08-20 | 2014-02-18 | Intel Corporation | Extending a cache coherency snoop broadcast protocol with directory information |
WO2012038546A1 (en) | 2010-09-23 | 2012-03-29 | St-Ericsson Sa | Multi-lane data transmission de-skew |
US8751714B2 (en) * | 2010-09-24 | 2014-06-10 | Intel Corporation | Implementing quickpath interconnect protocol over a PCIe interface |
US9104793B2 (en) * | 2010-09-24 | 2015-08-11 | Intel Corporation | Method and system of adapting communication links to link conditions on a platform |
US9146610B2 (en) | 2010-09-25 | 2015-09-29 | Intel Corporation | Throttling integrated link |
US8805196B2 (en) * | 2010-09-30 | 2014-08-12 | Teradyne, Inc. | Electro-optical communications link |
JP5597104B2 (ja) * | 2010-11-16 | 2014-10-01 | キヤノン株式会社 | データ転送装置及びその制御方法 |
CN102142987B (zh) * | 2010-12-09 | 2014-01-08 | 浪潮(北京)电子信息产业有限公司 | 一种高速串行总线设备及其传输数据的方法 |
JP2012146041A (ja) * | 2011-01-11 | 2012-08-02 | Hitachi Ltd | 計算機装置及び信号伝送方法 |
JP2012155650A (ja) * | 2011-01-28 | 2012-08-16 | Toshiba Corp | ルータ及びメニーコアシステム |
EP2482196B1 (de) * | 2011-01-31 | 2016-06-29 | Canon Kabushiki Kaisha | Bildverarbeitungsvorrichtung, Druckvorrichtung und Steuerverfahren in einer Bildverarbeitungsvorrichtung |
US8924672B2 (en) * | 2011-02-08 | 2014-12-30 | Infineon Technologies Ag | Device with processing unit and information storage |
US8756378B2 (en) * | 2011-02-17 | 2014-06-17 | Oracle International Corporation | Broadcast protocol for a network of caches |
US8824489B1 (en) * | 2011-04-26 | 2014-09-02 | Marvell International Ltd. | Physical layer (PHY) devices for use in automotive and industrial applications |
US9189424B2 (en) | 2011-05-31 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | External cache operation based on clean castout messages |
US8868955B2 (en) | 2011-07-01 | 2014-10-21 | Intel Corporation | Enhanced interconnect link width modulation for power savings |
US8788890B2 (en) * | 2011-08-05 | 2014-07-22 | Apple Inc. | Devices and methods for bit error rate monitoring of intra-panel data link |
US8514889B2 (en) * | 2011-08-26 | 2013-08-20 | Sonics, Inc. | Use of common data format to facilitate link width conversion in a router with flexible link widths |
US9208110B2 (en) * | 2011-11-29 | 2015-12-08 | Intel Corporation | Raw memory transaction support |
US9442879B2 (en) * | 2011-12-07 | 2016-09-13 | Intel Corporation | Multiple transaction data flow control unit for high-speed interconnect |
CN103188059A (zh) | 2011-12-28 | 2013-07-03 | 华为技术有限公司 | 快速通道互联***中数据包重传方法、装置和*** |
CN102571571A (zh) * | 2011-12-28 | 2012-07-11 | 南京邮电大学 | 一种应用于时延容忍网络的多层次有效路由方法 |
CN102594745B (zh) * | 2011-12-29 | 2015-02-04 | 东南大学 | 单载波频域均衡***中的同步方法及其实现电路 |
US8892269B2 (en) | 2012-03-30 | 2014-11-18 | Intel Corporation | Power down and quick start of thermal sensor |
CN102685128B (zh) * | 2012-05-09 | 2015-09-30 | 东南大学 | 一种基于状态机的协议构造方法 |
US9122810B2 (en) | 2012-05-18 | 2015-09-01 | Dell Products, Lp | System and method for providing input/output functionality to a processing node |
US8856573B2 (en) * | 2012-06-27 | 2014-10-07 | Intel Corporation | Setting a number (N) of fast training sequences (FTS) automatically to an optimal value |
US9280504B2 (en) | 2012-08-24 | 2016-03-08 | Intel Corporation | Methods and apparatus for sharing a network interface controller |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US8996757B2 (en) * | 2012-09-29 | 2015-03-31 | Intel Corporation | Method and apparatus to generate platform correctable TX-RX |
US8935578B2 (en) | 2012-09-29 | 2015-01-13 | Intel Corporation | Method and apparatus for optimizing power and latency on a link |
US9003091B2 (en) | 2012-10-18 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Flow control for a Serial Peripheral Interface bus |
US9280507B2 (en) * | 2012-10-22 | 2016-03-08 | Intel Corporation | High performance interconnect physical layer |
DE112013007751B3 (de) | 2012-10-22 | 2023-01-12 | Intel Corporation | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
US9600431B2 (en) * | 2012-10-22 | 2017-03-21 | Intel Corporation | High performance interconnect physical layer |
US9479196B2 (en) * | 2012-10-22 | 2016-10-25 | Intel Corporation | High performance interconnect link layer |
JP6080984B2 (ja) | 2013-02-28 | 2017-02-15 | インテル・コーポレーション | 異なる相互接続プロトコルのための一つの相互接続プロトコルの列挙および/または設定機構の活用 |
US9436244B2 (en) * | 2013-03-15 | 2016-09-06 | Intel Corporation | Adaptive control loop protection for fast and robust recovery from low-power states in high speed serial I/O applications |
EP3828717B1 (de) * | 2013-12-26 | 2024-07-03 | INTEL Corporation | Multichip-paketverbindung |
US9946676B2 (en) * | 2015-03-26 | 2018-04-17 | Intel Corporation | Multichip package link |
-
2013
- 2013-03-15 DE DE112013007751.5T patent/DE112013007751B3/de active Active
- 2013-03-15 CN CN201380016998.8A patent/CN104335196B/zh active Active
- 2013-03-15 KR KR1020157007221A patent/KR101686359B1/ko active IP Right Grant
- 2013-03-15 CN CN202010633738.7A patent/CN111737167B/zh active Active
- 2013-03-15 CN CN201380049062.5A patent/CN104756097B/zh active Active
- 2013-03-15 CN CN201710038234.9A patent/CN106815151B/zh active Active
- 2013-03-15 CN CN201710038141.6A patent/CN106776364B/zh active Active
- 2013-03-15 CN CN201710043551.XA patent/CN106681938B/zh active Active
- 2013-03-15 DE DE112013005090.0T patent/DE112013005090T5/de active Pending
- 2013-03-15 WO PCT/US2013/032601 patent/WO2014065873A1/en active Application Filing
- 2013-03-15 KR KR1020147033103A patent/KR101847943B1/ko active IP Right Grant
- 2013-03-15 DE DE112013005093.5T patent/DE112013005093T5/de active Pending
- 2013-03-15 US US13/976,960 patent/US9418035B2/en active Active
- 2013-03-15 WO PCT/US2013/032690 patent/WO2014065877A1/en active Application Filing
- 2013-03-15 KR KR1020177001836A patent/KR101828756B1/ko active IP Right Grant
- 2013-03-15 US US13/976,971 patent/US9378171B2/en active Active
- 2013-03-15 KR KR1020167034124A patent/KR101831550B1/ko active Application Filing
- 2013-03-15 KR KR1020177000400A patent/KR101754890B1/ko active IP Right Grant
- 2013-03-15 US US13/976,954 patent/US20140201463A1/en not_active Abandoned
- 2013-03-15 WO PCT/US2013/032708 patent/WO2014065879A1/en active Application Filing
- 2013-03-15 CN CN201380049199.0A patent/CN104969207A/zh active Pending
- 2013-03-15 KR KR1020147027189A patent/KR101598746B1/ko active IP Right Grant
- 2013-03-15 KR KR1020167035979A patent/KR101815173B1/ko active IP Right Grant
- 2013-03-15 DE DE112013003723.8T patent/DE112013003723B4/de active Active
- 2013-03-15 WO PCT/US2013/032651 patent/WO2014065875A1/en active Application Filing
- 2013-03-15 CN CN201710093224.5A patent/CN107015924B/zh active Active
- 2013-03-15 KR KR1020187004227A patent/KR101861312B1/ko active IP Right Grant
- 2013-03-15 CN CN201711159546.1A patent/CN108228495B/zh active Active
- 2013-03-15 DE DE112013004105.7T patent/DE112013004105T5/de active Pending
- 2013-03-15 KR KR1020157007228A patent/KR101686360B1/ko active IP Right Grant
- 2013-03-15 KR KR1020177018169A patent/KR101905055B1/ko active IP Right Grant
- 2013-03-15 JP JP2015537687A patent/JP6139689B2/ja active Active
- 2013-03-15 CN CN201380049066.3A patent/CN104737147B/zh active Active
- 2013-03-15 CN CN201810011011.8A patent/CN108055214B/zh active Active
- 2013-03-15 KR KR1020157007216A patent/KR101700261B1/ko active IP Right Grant
- 2013-03-15 KR KR1020177000908A patent/KR101815180B1/ko active IP Right Grant
- 2013-03-15 CN CN201380049203.3A patent/CN104969206B/zh active Active
- 2013-03-15 DE DE112013002069.6T patent/DE112013002069B4/de active Active
- 2013-03-15 CN CN201380049212.2A patent/CN104769570B/zh active Active
- 2013-03-15 CN CN201380016955.XA patent/CN104380269B/zh active Active
- 2013-03-15 KR KR1020157007232A patent/KR101700545B1/ko active IP Right Grant
- 2013-03-15 KR KR1020177018159A patent/KR101985120B1/ko active IP Right Grant
- 2013-03-15 WO PCT/US2013/032670 patent/WO2014065876A1/en active Application Filing
- 2013-03-15 KR KR1020157007231A patent/KR101696124B1/ko active IP Right Grant
- 2013-03-15 DE DE112013005086.2T patent/DE112013005086T5/de active Pending
- 2013-03-15 WO PCT/US2013/032709 patent/WO2014065880A1/en active Application Filing
- 2013-03-15 DE DE112013004094.8T patent/DE112013004094B4/de active Active
- 2013-03-15 KR KR1020157007208A patent/KR101691756B1/ko active IP Right Grant
- 2013-03-15 KR KR1020167034107A patent/KR101755005B1/ko active IP Right Grant
- 2013-03-15 CN CN201810337297.9A patent/CN108614783B/zh active Active
- 2013-03-15 CN CN201710043763.8A patent/CN107045479B/zh active Active
- 2013-03-15 KR KR1020177009525A patent/KR101772037B1/ko active IP Right Grant
- 2013-03-15 BR BR112015006432A patent/BR112015006432A2/pt not_active IP Right Cessation
- 2013-03-15 CN CN201410582176.2A patent/CN104391816B/zh active Active
- 2013-03-15 WO PCT/US2013/032699 patent/WO2014065878A1/en active Application Filing
- 2013-03-16 EP EP18185062.9A patent/EP3410304B1/de active Active
- 2013-03-16 WO PCT/US2013/032718 patent/WO2014065881A1/en active Application Filing
- 2013-03-16 US US14/437,612 patent/US9753885B2/en active Active
- 2013-03-16 KR KR1020157010316A patent/KR101681509B1/ko active IP Right Grant
- 2013-03-16 EP EP13848818.4A patent/EP2909728A4/de not_active Withdrawn
- 2013-03-16 CN CN201380055335.7A patent/CN104737142B/zh active Active
- 2013-03-27 DE DE112013005104.4T patent/DE112013005104T5/de active Pending
- 2013-03-27 CN CN201710243776.XA patent/CN107092565B/zh active Active
- 2013-03-27 DE DE201311002880 patent/DE112013002880T5/de active Pending
- 2013-03-27 KR KR1020187012101A patent/KR101912074B1/ko active IP Right Grant
- 2013-03-27 KR KR1020177000322A patent/KR101815178B1/ko active IP Right Grant
- 2013-03-27 DE DE112013007752.3T patent/DE112013007752B3/de active Active
- 2013-03-27 CN CN201710067578.2A patent/CN107102960B/zh active Active
- 2013-03-27 CN CN201410751146.XA patent/CN104536933B/zh active Active
- 2013-03-27 KR KR1020147027297A patent/KR101615908B1/ko active IP Right Grant
- 2013-03-27 CN CN201380049075.2A patent/CN104995614B/zh active Active
- 2013-03-27 KR KR1020167010386A patent/KR101861452B1/ko active IP Right Grant
- 2013-03-27 WO PCT/US2013/034153 patent/WO2014065882A1/en active Application Filing
- 2013-03-27 KR KR1020157007226A patent/KR101695340B1/ko active IP Right Grant
- 2013-03-27 CN CN201380017285.3A patent/CN104487958B/zh active Active
- 2013-03-27 KR KR1020147032656A patent/KR101599852B1/ko active IP Right Grant
- 2013-03-27 RU RU2014145179/08A patent/RU2599971C2/ru active
- 2013-03-27 RU RU2014138917/08A patent/RU2579140C1/ru active
- 2013-03-27 DE DE112013002090.4T patent/DE112013002090T5/de active Pending
- 2013-03-27 CN CN201810095156.0A patent/CN108132892B/zh active Active
- 2013-03-27 WO PCT/US2013/034188 patent/WO2014065883A1/en active Application Filing
- 2013-03-28 KR KR1020167019481A patent/KR101689998B1/ko active IP Right Grant
- 2013-03-28 DE DE112013001360.6T patent/DE112013001360B4/de active Active
- 2013-03-28 DE DE112013007767.1T patent/DE112013007767B3/de active Active
- 2013-03-28 CN CN201711267378.8A patent/CN107968756B/zh active Active
- 2013-03-28 WO PCT/US2013/034341 patent/WO2014065884A1/en active Application Filing
- 2013-03-28 CN CN201380016778.5A patent/CN104303166B/zh active Active
- 2013-03-28 KR KR1020157007215A patent/KR101642086B1/ko active IP Right Grant
- 2013-10-22 US US14/060,191 patent/US9626321B2/en active Active
-
2014
- 2014-11-12 US US14/538,897 patent/US20150067207A1/en not_active Abandoned
- 2014-11-26 US US14/554,532 patent/US20150081984A1/en not_active Abandoned
-
2016
- 2016-06-27 US US15/193,697 patent/US9892086B2/en active Active
- 2016-08-15 US US15/237,291 patent/US9916266B2/en active Active
- 2016-12-28 US US15/393,153 patent/US10248591B2/en active Active
- 2016-12-29 US US15/393,577 patent/US20170109286A1/en not_active Abandoned
-
2017
- 2017-04-27 JP JP2017088878A patent/JP6423040B2/ja active Active
- 2017-08-31 US US15/692,613 patent/US10204064B2/en active Active
- 2017-11-22 US US15/821,401 patent/US10216661B2/en active Active
-
2018
- 2018-03-12 US US15/918,895 patent/US10380046B2/en active Active
-
2019
- 2019-02-25 US US16/285,035 patent/US20190391939A1/en not_active Abandoned
- 2019-07-29 US US16/525,454 patent/US10909055B2/en active Active
-
2020
- 2020-07-23 US US16/937,499 patent/US11269793B2/en active Active
- 2020-12-25 US US17/134,242 patent/US11741030B2/en active Active
-
2021
- 2021-12-20 US US17/556,853 patent/US20220114122A1/en active Pending
-
2023
- 2023-07-05 US US18/347,236 patent/US20240012772A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112013002069B4 (de) | Hohes Leistungsverbindungskohärenz-Protokoll | |
DE112013001361B4 (de) | System auf einem Chip, Verfahren, maschinenlesbares Medium und System für die Bereitstellung einer Snoop-Filterung zugeordnet mit einem Datenpuffer | |
DE102018006756A1 (de) | Beschleuniger-Fabric | |
DE112006002237B4 (de) | Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem | |
DE112016004300T5 (de) | Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse | |
DE102014003798B4 (de) | Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht | |
DE112016005910T5 (de) | Architechtur für Software-Definierten Interconnect-Switch | |
DE112016007566T5 (de) | Systeme, Verfahren und Vorrichtungen zur heterogenen Berechnung | |
DE102018003221A1 (de) | Unterstützung gelernter Sprungprädiktoren | |
DE112017001825T5 (de) | Prozessoren, verfahren, systeme und instruktionen zum atomischen speichern von daten, die breiter als eine nativ unterstützte datenbreite sind, in einem speicher | |
DE112017001430T5 (de) | In-band-retimer-registerzugriff | |
DE102018006797A1 (de) | Kohärente Speichereinrichtungen über PCIe | |
DE102013200503A1 (de) | Virtualisierungs-Support zum Speichern und Wiederherstellen von Zuständen einer Sprungvorhersage-Logik | |
DE102010035603A1 (de) | Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher | |
DE112016004303T5 (de) | Hardware-Vorhersageelement mit geringem Verwaltungsaufwand zur Verringerung der Leistungsumkehr für Kern-zu-Kern-Datenübertragungsoptimierungsbefehle | |
DE112017001148T5 (de) | Abflachende portalbrücke . | |
DE112013007732T5 (de) | PCI-Express-Erweiterungen | |
DE102014003690A1 (de) | Prozessoren, Verfahren und Systeme zur Befehlsemulation | |
DE112017004897T5 (de) | Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition | |
DE102014003705A1 (de) | Prozessoren, Verfahren und Systeme zur Befehlsemulation | |
DE112016006065T5 (de) | Spekulative nummerierung von adressräumen für bus-einrichtungsfunktionen | |
DE102013209643B4 (de) | Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens | |
DE112014006490T5 (de) | Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle | |
DE102018005039A1 (de) | System und verfahren für pro-agent-steuerung und - dienstqualität gemeinsam genutzter ressourcen in chip-mehrprozessor-plattformen | |
US10628314B2 (en) | Dual clusters of fully connected integrated circuit multiprocessors with shared high-level cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0013000000 Ipc: G06F0012080000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0013000000 Ipc: G06F0012080000 Effective date: 20150123 |
|
R130 | Divisional application to |
Ref document number: 112013007845 Country of ref document: DE Ref document number: 112013007764 Country of ref document: DE |
|
R016 | Response to examination communication | ||
R130 | Divisional application to |
Ref document number: 112013007845 Country of ref document: DE Ref document number: 112013007764 Country of ref document: DE |
|
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |