DE112013001360T5 - Hochleistungsfähige Kopplungsstruktur-Linkschicht - Google Patents
Hochleistungsfähige Kopplungsstruktur-Linkschicht Download PDFInfo
- Publication number
- DE112013001360T5 DE112013001360T5 DE112013001360.6T DE112013001360T DE112013001360T5 DE 112013001360 T5 DE112013001360 T5 DE 112013001360T5 DE 112013001360 T DE112013001360 T DE 112013001360T DE 112013001360 T5 DE112013001360 T5 DE 112013001360T5
- Authority
- DE
- Germany
- Prior art keywords
- flit
- slots
- slot
- bits
- link
- 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
- 230000008878 coupling Effects 0.000 title description 24
- 238000010168 coupling process Methods 0.000 title description 24
- 238000005859 coupling reaction Methods 0.000 title description 24
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 32
- 238000005096 rolling process Methods 0.000 claims description 17
- 230000036961 partial effect Effects 0.000 claims description 15
- 238000007667 floating Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 239000003795 chemical substances by application Substances 0.000 description 51
- 230000005540 biological transmission Effects 0.000 description 23
- 238000001514 detection method Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 239000004744 fabric Substances 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000032258 transport Effects 0.000 description 4
- 101000650776 Boana raniceps Raniseptin-2 Proteins 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 102100038192 Serine/threonine-protein kinase TBK1 Human genes 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- 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
- 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
- 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
- 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/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/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/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/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
Transaktionsdaten werden bestimmt und ein Flit wird generiert, um drei oder mehr Slots und ein gleitendes Feld einzuschließen, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots verwendet wird. Bei einem weiteren Aspekt schließt das Flit zwei oder mehr Slots, Nutzdaten und ein Cyclic Redundancy Check-(CRC)-Feld ein, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist. Das Flit wird über einen seriellen Datenlink zu einem Gerät für die Verarbeitung basierend wenigstens teilweise auf den drei oder mehr Slots gesendet.
Description
- TECHNISCHES GEBIET
- Die vorliegende Offenbarung betrifft im Allgemeinen das Gebiet der Computerentwicklung und insbesondere Softwareentwicklung, welche die Koordination von sich gegenseitig bedingenden beschränkten Systemen einbezieht.
- HINTERGRUND
- Fortschritte bei Halbleiterverarbeitung und Logikdesign haben eine Zunahme der Menge an Logik erlaubt, die bei Geräten mit integrierten Schaltungen vorhanden sein kann. Demzufolge haben sich Konfigurationen von Computersystemen von einer einzelnen oder von mehreren integrierten Schaltungen in einem System zu mehreren Kernen, mehreren Hardware-Threads und mehreren logischen Prozessoren, die bei individuellen integrierten Schaltungen vorhanden sind, sowie zu anderen Schnittstellen, die innerhalb von solchen Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise eine einzelne physikalische Prozessor-Chiplage, wobei die Prozessor-Chiplage jegliche Anzahl an Kernen, Hardware-Threads oder logischen Prozessoren, Schnittstellen, Speicher, Controller-Hubs usw. einschließen kann.
- Infolge der größeren Fähigkeit, mehr Rechenleistung in kleinere Pakete hineinzubringen, haben kleinere Computergeräte an Popularität zugenommen. Smartphones, Tablets, ultraflache Notebooks und andere Teilnehmerendgeräte haben exponentiell zugenommen. Diese kleineren Geräte sind jedoch sowohl für Datenspeicherung als auch für komplexe Verarbeitung, die den Formfaktor überschreitet, von Servern abhängig. Daher hat die Nachfrage auf dem Hochleistungsrechnermarkt (d. h., Serverspeicherplatz) ebenfalls zugenommen. Zum Beispiel gibt es in modernen Servern normalerweise nicht nur einen einzelnen Prozessor mit mehreren Kernen, sondern auch mehrere physische Prozessoren (die auch als Mehrfachsockel bezeichnet werden), um die Rechenleistung zu erhöhen. Aber während die Rechenleistung zusammen mit der Anzahl an Geräten in einem Computersystem zunimmt, wird die Kommunikation zwischen Sockeln und anderen Bauelementen kritischer.
- Tatsächlich sind Kopplungsstrukturen von traditionelleren Mehrpunktverbindungsbussen, die hauptsächlich elektrische Kommunikationen behandeln, zu voll ausgereiften Kopplungsstruktur-Architekturen gewachsen, die eine schnelle Kommunikation erleichtern. Unglücklicherweise werden die entsprechenden Anforderungen auf die Fähigkeiten von vorhandenen Kopplungsstruktur-Architekturen platziert, während die Nachfrage nach zukünftigen Prozessoren mit noch höheren Verbrauchsraten zunimmt.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht ein vereinfachtes Blockdiagramm eines Systems, das eine serielle Punkt-zu-Punkt-Kopplungsstruktur einschließt, um I/O-Geräte in einem Computersystem gemäß einer Ausführungsform zu verbinden; -
2 veranschaulicht ein vereinfachtes Blockdiagramm eines Schichtenprotokollstapels gemäß einer Ausführungsform; -
3 veranschaulicht eine Ausführungsform eines seriellen Punkt-zu-Punkt-Links. -
4 veranschaulicht Ausführungsformen von potenziellen Hochleistungs-Kopplungsstruktur-(HPI)-Systemkonfigurationen. -
5 veranschaulicht eine Ausführungsform eines mit einer HPI verbundenen Schichtenprotokollstapels. -
6 veranschaulicht eine Repräsentation eines beispielhaften Mehrslot-Flits. -
7 veranschaulicht eine Darstellung eines beispielhaften Flits, das über einen beispielhaften Datenlink mit acht Bahnen gesendet wird. -
8 veranschaulicht eine Darstellung eines beispielhaften Flits, das über einen beispielhaften Datenlink mit acht Bahnen gesendet wird. -
9 veranschaulicht eine Repräsentation eines beispielhaften Flits, das über einen beispielhaften Datenlink mit zwanzig Bahnen gesendet wird. -
10 veranschaulicht eine Repräsentation der Verwendung eines beispielhaften gleitenden Nutzdatenfeldes eines beispielhaften Mehrslot-Flits. -
11 veranschaulicht eine Ausführungsform eines Blocks für ein beispielhaftes Computersystem. - Gleiche Bezugsnummern und Bezeichnungen in den verschiedenen Zeichnungen verweisen auf ähnliche Elemente.
- AUSFÜHRLICHE BESCHREIBUNG
- In der folgenden Beschreibung sind zahlreiche konkrete Angaben dargelegt, wie Beispiele von bestimmten Typen von Prozessoren und Systemkonfigurationen, bestimmte Hardware-Anordnungen, bestimmte Details über Architektur und Mikroarchitektur, spezielle Registerkonfigurationen, spezielle Befehlstypen, spezielle Systemkomponenten, spezielle Prozessor-Pipeline-Stufen, spezielle Kopplungsstrukturschichten, spezielle Paket-/Transaktionskonfigurationen, spezielle Transaktionsnamen, spezielle Protokoll-Austauschvorgänge, spezielle Linkbreiten, spezielle Implementierungen und Operation usw., um ein gründliches Verständnis der vorliegenden Erfindung zu gewährleisten. Für einen Fachmann ist es jedoch offensichtlich, dass diese spezifischen Details nicht notwendigerweise eingesetzt werden müssen, um den Gegenstand der vorliegenden Offenbarung umzusetzen. In anderen Fällen wurde die gut detailliert Beschreibung von bekannten Komponenten oder Verfahren, wie z. B. spezielle und alternative Prozessorarchitekturen, spezielle Logikschaltungen/spezieller Code für beschriebene Algorithmen, spezieller Firmware-Code, spezielle Verbindungsoperationen auf niedriger Ebene, spezielle Logikkonfigurationen, spezielle Herstellungstechniken und Materialien, spezielle Compiler-Implementierungen, spezielle Umsetzung von Algorithmen in Code, spezielle Abschaltvorgangs- und Gating-Techniken/Logik und andere spezielle Betriebseinzelheiten von Computersystemen nicht ausführlich beschrieben, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
- Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieeinsparung, Energieeffizienz, Verarbeitungseffizienz und so weiter bei speziellen integrierten Schaltungen wie bei Computerplattformen oder Mikroprozessoren beschrieben sein können, sind andere Ausführungsformen auf andere Arten von integrierten Schaltungen und Logikbaugruppen anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleiterbauelementen angewandt werden, die auch aus diesen Merkmalen Nutzen ziehen können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf Server-Computersysteme, Desktop-Computer-Systeme, Laptops, UltrabooksTM begrenzt, sondern können auch in anderen Geräten, wie Handgeräten, Smartphones, Tablets, anderen dünnen Notebooks, Systemen auf einem Chip-(SOC)-Geräten und Embedded-Anwendungen verwendet werden. Einige Beispiele von Handheld-Geräten sind u. a. Mobiltelefone, Internet-Protokollgeräte, Digitalkameras, Personal Digital Assistants (PDAs) und Handheld-PCs. Hier können ähnliche Techniken für eine Hochleistungs-Kopplungsstruktur angewandt werden, um die Leistung bei einer Niedrigenergie-Kopplungsstruktur zu erhöhen (oder gar Energie zu sparen). Eingebettete Anwendungen schließen normalerweise u. a. einen Mikrocontroller, digitalen Signalprozessor (DSP), ein System auf einem Chip, Netzwerkcomputer (NetPC), Settop-Boxen, Netzwerkhubs, Wide Area Network-(WAN)-Switches oder andere Systeme ein, welche die nachstehend gelehrten Funktionen und Operationen durchführen können. Des Weiteren sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Computergeräte begrenzt, sondern können auch Softwareoptimierungen für Energieeinsparung und -effizienz betreffen. Wie ohne Weiteres offensichtlich in der nachfolgenden Beschreibung, können die Ausführungsformen von hier beschriebenen Verfahren, Vorrichtungen und Systemen (ob unter Bezugnahme auf Hardware, Firmware, Software oder eine Kombination davon) ausgeglichen mit Leistungsüberlegungen als für eine „grüne Technologie”-Zukunft entscheidend angesehen werden.
- Während Computersysteme sich weiterentwickeln, werden die Komponenten darin komplexer. Die Kopplungsstruktur-Architektur, um zwischen den Komponenten zu koppeln und zu kommunizieren, hat auch an Komplexität zugenommen, um sicherzustellen, dass die Nachfrage nach Bandbreite für einen optimalen Komponentenbetrieb befriedigt wird. Des Weiteren erfordern unterschiedliche Marktsegmente unterschiedliche Aspekte von Kopplungsstruktur-Architekturen, sodass sie sich für den entsprechenden Markt eignen. Beispielsweise erfordern Server eine höhere Leistung, während das mobile Ökosystem manchmal in der Lage ist, die Gesamtleistung für Energieeinsparungen zu opfern. Und doch ist es ein singulärer Zweck von den meisten Gefügen, die höchstmögliche Leistung mit maximaler Energieeinsparung bereitzustellen. Weiter kann eine Vielzahl von unterschiedlichen Kopplungsstrukturen potenziell aus dem hier beschriebenen Gegenstand einen Nutzen ziehen. Die Peripheral Component Interconnect (PCI) Express (PCIe)-Kopplungsstrukturgefüge-Architektur und die QuickPath Interconnect-(QPI)-Gefüge-Architektur können beispielsweise neben anderen Beispielen potenziell gemäß einem oder mehreren hier beschriebenen Prinzipien neben anderen Beispielen verbessert werden.
-
1 veranschaulicht eine Ausführungsform eines Gefüges bestehend aus Punkt-zu-Punkt-Links, die einen Satz von Komponenten verbinden. Das System100 schließt Prozessor105 und Systemspeicher110 gekoppelt mit dem Controller-Hub115 ein. Der Prozessor105 kann beliebige Verarbeitungselemente, wie z. B. einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Koprozessor oder anderen Prozessor einschließen. Der Prozessor105 ist über den Front-Side-Bus (FSB)106 mit dem Controller-Hub115 gekoppelt. Bei einer Ausführungsform ist der FSB106 eine serielle Punkt-zu-Punkt-Kopplungsstruktur, wie sie nachfolgend beschrieben wird. Bei einer weiteren Ausführungsform schließt der Link106 eine serielle, differenzielle Kopplungsstruktur-Architektur ein, die einem unterschiedlichen Kopplungsstruktur-Standard entspricht. - Der Systemspeicher
110 umfasst eine beliebige Speichereinheit, wie einen Random Access Memory (RAM), nichtflüchtigen (NV) Speicher oder einen anderen Speicher, der für die Komponenten des Systems100 zugänglich ist. Der Systemspeicher110 ist über die Speicherschnittstelle116 mit dem Controller-Hub115 gekoppelt. Beispiele einer Speicherschnittstelle schließen eine Doppel-Datenrate-(DDR)-Speicherschnittstelle, eine zweikanalige DDR-Speicherschnittstelle und eine dynamischer RAM-(DRAM)-Speicherschnittstelle ein. - Bei einer Ausführungsform kann der Controller-Hub
115 einen Root-Hub, Root-Komplex oder Root-Controller wie in einer PCIe-Verbindungshierarchie einschließen. - Beispiele eines Controller-Hubs
115 schließen einen Chipsatz, Memory-Controller-Hub (MCH), eine Northbridge, einen Kopplungsstruktur-Controller-Hub (ICH), eine Southbridge und einen Root-Controller/-Hub ein. Häufig verweist der Begriff Chipsatz auf zwei physikalisch getrennte Controller-Hubs, wie beispielsweise einen Memory-Controller-Hub (MCH), der mit einem Kopplungsstruktur-Controller-Hub (ICH) gekoppelt ist. Zu beachten ist, dass gegenwärtige Systeme häufig den MCH integriert im Prozessor105 einschließen, während der Controller115 mit I/O-Geräten in ähnlicher Weise wie nachfolgend beschrieben kommuniziert. Bei einigen Ausführungsformen wird das Peer-To-Peer-Routing optional durch Root-Komplex115 unterstützt. - Hier ist der Controller-Hub
115 durch den seriellen Link119 mit Switch/Brücke120 gekoppelt. Die I/O-Module117 und121 , die auch als Schnittstellen/Ports117 und121 bezeichnet werden können, können einen Schichtenprotokollstapel zum Bereitstellen der Kommunikation zwischen dem Controller-Hub115 und Switch120 einschließen/implementieren. Bei einer Ausführungsform sind mehrere Geräte fähig, mit dem Switch120 gekoppelt zu werden. - Switch/Brücke
120 routet Pakete/Nachrichten von Gerät125 Upstream, d. h., eine Hierarchie in Richtung auf einen Root-Komplex nach oben zum Controller-Hub115 , und Downstream, d. h., eine Hierarchie nach unten weg von einem Root-Controller von Prozessor105 oder Systemspeicher110 zum Gerät125 . Der Switch120 wird bei einer Ausführungsform als eine logische Baugruppe von mehreren virtuellen PCI-zu-PCI-Brücken-Geräten bezeichnet. Das Gerät125 umfasst jedes interne oder externe Gerät oder jede Komponente, die an ein elektronisches System gekoppelt wird, wie z. B. an ein I/O-Gerät, einen Netzwerk-Interface-Controller (NIC), eine Add-in-Karte, einen Audioprozessor, einen Netzwerkprozessor, ein Festplattenlaufwerk, ein Speichergerät, ein CD-/DVD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, ein tragbares Speichergerät, ein Firewire-Gerät, ein Universal Serial Bus-(USB)-Gerät, einen Scanner und andere Eingabe-/Ausgabegeräte. Häufig wird im PCIe-Fachjargon ein solches Gerät als ein Endpunkt bezeichnet. Obwohl nicht speziell gezeigt, kann das Gerät125 eine Brücke (z. B. eine PCIe-zu-PCI/PCI-X-Brücke) einschließen, um Legacy- oder andere Versionen von Geräten oder von solchen Geräten unterstützte Kopplungsstrukturgefüge zu unterstützen. - Ein Grafikbeschleuniger
130 kann ebenfalls durch einen seriellen Link132 mit dem Controller-Hub115 gekoppelt sein. Bei einer Ausführungsform ist der Grafikbeschleuniger130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Switch120 und demgemäß I/O-Gerät125 ist dann mit dem ICH gekoppelt. Die I/O-Module131 und118 implementieren auch einen mehrschichtigen Protokollstapel und verbundene Logik zum Kommunizieren zwischen dem Grafikbeschleuniger130 und dem Controller-Hub115 . Ähnlich der vorstehenden MCH-Erörterung kann ein Grafikcontroller oder der Grafikbeschleuniger130 selbst im Prozessor105 integriert sein. - Unter jetziger Bezugnahme auf
2 ist eine Ausführungsform eines Schichtenprotokollstapels veranschaulicht. Der Schichtenprotokollstapel200 kann jede Form eines Schichtenkommunikationsstapels wie einen QPI-Stapel, einen PCIe-Stapel, einen HPI-Stapel der nächsten Generation oder einen anderen Schichtstapel einschließen. Bei einer Ausführungsform kann der Protokollstapel200 die Transaktionsschicht205 , die Linkschicht210 und die physikalische Schicht220 einschließen. Eine Schnittstelle wie die Schnittstellen117 ,118 ,121 ,122 ,126 und131 in1 kann als Kommunikationsprotokollstapel200 dargestellt sein. Die Darstellung als ein Kommunikationsprotokollstapel kann auch als ein Modul oder eine Schnittstelle bezeichnet werden, die einen Protokollstapel implementiert/einschließt. - Pakete können verwendet werden, um Informationen zwischen Komponenten zu kommunizieren. Pakete können in der Transaktionsschicht
205 und der Datenlinkschicht210 gebildet sein, um die Informationen von der Sendekomponente zur Empfangskomponente zu transportieren. Während die übertragenen Pakete durch die anderen Schichten fließen, werden sie durch zusätzliche Informationen erweitert, die nötig sind, um Pakete auf diesen Schichten zu behandeln. Auf der Empfangsseite erfolgt der umgekehrte Prozess und die Pakete werden von der Darstellung ihrer physikalischen Schicht220 zur Darstellung der Datenlinkschicht210 und schließlich (für Transaktionsschichtpakete) in die Form umgewandelt, die von der Transaktionsschicht205 des Empfangsgeräts verarbeitet werden kann. - Bei einer Ausführungsform kann die Transaktionsschicht
205 eine Schnittstelle zwischen einem Prozessorkern eines Gerätes und der Kopplungsstruktur-Architektur wie der Datenlinkschicht210 und der physikalischen Schicht220 bereitstellen. In dieser Hinsicht kann eine Hauptverantwortung der Transaktionsschicht205 das Zusammenfügen und Zerlegen von Paketen (d. h., Transaktionsschichtpaketen oder TLPs) einschließen. Die Übersetzungsschicht205 kann auch kreditbasierte Flusssteuerung für TLPs verwalten. Bei einigen Implementierungen können Aufteilungstransaktionen, d. h., Transaktionen, wo Anfrage und Antwort durch Zeit getrennt sind, verwendet werden, die einem Link ermöglichen, anderen Verkehr zu transportieren, während das Zielgerät u. a. Daten für die Antwort sammelt. - Kreditbasierte Flusssteuerung kann verwendet werden, um virtuelle Kanäle und Netzwerke zu realisieren, die das Kopplungsstrukturgefüge verwenden. Bei einem Beispiel kann ein Gerät eine Anfangsmenge von Krediten für jeden der Empfangspuffer in der Transaktionsschicht
205 anbieten. Ein externes Gerät am entgegengesetzten Ende des Links, wie Controller-Hub115 in1 , kann die Anzahl der von jedem TLP verbrauchten Kredite zählen. Eine Transaktion kann gesendet werden, wenn die Transaktion keine Kreditgrenze überschreitet. Nach dem Empfangen einer Antwort wird eine Kreditmenge wiederhergestellt. Ein Beispiel eines Vorteils neben anderen potenziellen Vorteilen solch eines Kreditschemas ist, dass die Latenzzeit der Kreditrückgabe die Leistung nicht beeinträchtigt, vorausgesetzt, dass die Kreditgrenze nicht erreicht wird. - Bei einer Ausführungsform können vier Transaktionsadressbereiche einen Konfigurationsadressbereich, einen Speicheradressbereich, einen Ein-/Ausgabe-Adressbereich und einen Nachrichtenadressbereich einschließen. Speicherplatztransaktionen schließen ein oder mehrere aus Leseanfragen und Schreibanfragen ein, um Daten an einen/von einem speicherzugeordneten Ort zu übertragen. Bei einer Ausführungsform sind Speicherplatztransaktionen fähig, zwei unterschiedliche Befehlstypen, wie beispielsweise, ein kurzes Adressformat wie eine 32-Bit-Adresse oder ein langes Adressformat wie eine 64-Bit-Adresse zu verwenden. Konfigurationsraumtransaktionen können verwendet werden, um auf Konfigurationsraum von verschiedenen mit der Kopplungsstruktur verbundenen Geräten zuzugreifen. Transaktionen bezüglich des Konfigurationsraums können Leseanfragen und Schreibanfragen einschließen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) können auch definiert sein, um In-Band-Kommunikation zwischen Kopplungsstruktur-Agenten zu unterstützen. Deshalb kann bei einer beispielhaften Ausführungsform die Transaktionsschicht
205 Paketheader/-nutzdaten206 zusammenfügen. - Eine Linkschicht
210 , die auch als Datenlinkschicht210 bezeichnet wird, kann als eine Zwischenstufe zwischen der Transaktionsschicht205 und der physikalischen Schicht220 agieren. Bei einer Ausführungsform liegt eine Verantwortung der Datenlinkschicht210 darin, einen zuverlässigen Mechanismus bereitzustellen, um Transaktionsschichtpakete (TLPs) zwischen zwei Komponenten bei einem Link auszutauschen. Eine Seite der Datenlinkschicht210 akzeptiert TLPs, die von der Transaktionsschicht205 zusammengefügt sind, wendet die Paketsequenzkennung211 , d. h., eine Identifikationsnummer oder Paketnummer, an, berechnet einen Fehlererkennungscode und wendet ihn an, d. h., CRC212 , und unterbreitet die modifizierten TLPs der physikalischen Schicht220 zur Übertragung über eine physikalische zu einem externen Gerät. - Bei einem Beispiel schließt die physikalische Schicht
220 den logischen Unterblock221 und den elektrischen Unterblock222 ein, um ein Paket physikalisch zu einem externen Gerät zu senden. Hier ist der logische Unterblock221 für die „digitalen” Funktionen der physikalischen Schicht221 verantwortlich. In dieser Hinsicht kann der logische Unterblock einen Sendeteil einschließen, um ausgehende Informationen für die Übertragung durch den physikalischen Unterblock222 vorzubereiten, und einen Empfängerteil, um empfangene Informationen vor dem Weitergeben an die Linkschicht210 zu bestimmen und vorzubereiten. - Der physikalische Block
222 schließt einen Sender und einen Empfänger ein. Der Sender wird durch den logischen Unterblock221 mit Symbolen versorgt, die der Sender serialisiert und zu einem Peripheriegerät sendet. Der Empfänger wird mit serialisierten Symbolen von einem Peripheriegerät versorgt und transformiert die empfangenen Signale in einen Bitstrom. Der Bitstrom wird deserialisiert und an den logischen Unterblock221 bereitgestellt. Bei einer beispielhaften Ausführungsform wird ein 8b/10b-Übertragungscode eingesetzt, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit den Frames223 zu bilden. Außerdem stellt bei einem Beispiel der Empfänger auch einen Symboltakt bereit, der vom eingehenden seriellen Strom wiedergewonnen wurde. - Obwohl die Transaktionsschicht
205 , Linkschicht210 und physikalische Schicht220 wie vorstehend angegeben unter Bezugnahme auf eine spezielle Ausführungsform eines Protokollstapels (wie ein PCIe-Protokoll-Stapel) beschrieben wird, ist ein Schichtenprotokollstapel in dieser Hinsicht nicht eingeschränkt. Tatsächlich kann jedes Schichtenprotokoll eingeschlossen/implementiert sein und hier beschriebene Merkmale übernehmen. Als ein Beispiel kann ein Port/eine Schnittstelle, der/die als ein Schichtenprotokoll dargestellt ist, Folgendes einschließen: (1) eine erste Schicht, um Pakete zusammenzufügen, d. h., eine Transaktionsschicht; eine zweite Schicht, um Pakete zu sequentialisieren, d. h., eine Linkschicht; und eine dritte Schicht, um die Pakete zu senden, d. h., eine physikalische Schicht. Als ein spezielles Beispiel wird ein HPI-Schichtenprotokoll wie hiernach beschrieben verwendet. - Unter jetziger Bezugnahme auf
3 ist eine beispielhafte Ausführungsform eines seriellen Punkt-zu-Punkt-Gefüges veranschaulicht. Ein serieller Punkt-zu-Punkt-Link kann jeden Übertragungsweg für das Senden von seriellen Daten einschließen. Bei der gezeigten Ausführungsform kann ein Link zwei differenziell angesteuerte Niederspannungssignalpaare einschließen: ein Sendepaar306 /311 und ein Empfangspaar312 /307 . Dementsprechend schließt das Gerät305 die Sendelogik306 ein, um Daten zum Gerät310 zu senden, und die Empfangslogik307 , um Daten vom Gerät310 zu empfangen. Es sind mit anderen Worten zwei Sendepfade, d. h., die Pfade316 und317 , und zwei Empfangspfade, d. h., die Pfade318 und319 , bei einigen Implementierungen eines Links eingeschlossen. - Ein Übertragungsweg verweist auf jeden Pfad für das Senden von Daten, wie eine Sendeleitung, eine Kupferleitung, eine optische Leitung, ein drahtloser Kommunikationskanal, ein Infrarotkommunikationslink oder ein anderer Kommunikationspfad.
- Eine Verbindung zwischen zwei Geräten, wie Gerät
305 und Gerät310 , wird als ein Link bezeichnet, wie beispielsweise Link315 . Ein Link kann eine Bahn unterstützen – jede Bahn stellt einen Satz von Differenzsignalpaaren (ein Paar für Senden, ein Paar für Empfangen) dar. Um Bandbreite zu skalieren, kann ein Link mehrere durch xN bezeichnete Bahnen ansammeln, wobei N jede unterstützte Linkbreite ist wie 1, 2, 4, 8, 12, 16, 32, 64 oder breiter. - Ein Differenzpaar kann auf zwei Übertragungspfade, wie die Leitungen
316 und317 verweisen, um Differenzsignale zu senden. Wenn beispielsweise die Leitung316 von einem niedrigen Spannungspegel zu einem hohen Spannungspegel umschaltet, d. h., eine ansteigende Flanke, geht Leitung317 von einem hohen Logikpegel zu einem niedrigen Logikpegel über, d. h., eine fallende Flanke. Differenzsignale weisen neben anderen beispielhaften Vorteilen potenziell bessere elektrische Eigenschaften auf, wie bessere Signalintegrität, d. h., Kreuzkopplung, Spannungsüberschreitung/-unterschreitung, Klingeln. Dies erlaubt ein besseres Zeitfenster, das schnellere Sendefrequenzen ermöglicht. - Bei einer Ausführungsform wird eine neue HPI bereitgestellt. Die HPI kann eine cachekohärente, linkbasierte Kopplungsstruktur der nächsten Generation einschließen. Als ein Beispiel kann die HPI in Hochleistungs-Computing-Plattformen wie Workstations oder Servern verwendet werden einschließlich in Systemen, bei denen PCIe oder ein anderes Kopplungsstruktur-Protokoll normalerweise verwendet wird, um Prozessoren, Beschleuniger, I/O-Geräte und dergleichen zu verbinden. Die HPI ist jedoch dahin gehend nicht eingeschränkt. Statt dessen kann die HPI in jeglichen der hier beschriebenen Systemen oder Plattformen verwendet werden. Des Weiteren können die individuellen entwickelten Ideen auf andere Kopplungsstrukturen und Plattformen wie PCIe, MIPI, QPI usw. angewandt werden.
- Um mehrere Geräte bei einer beispielhaften Implementierung zu unterstützen, kann die HPI eine Befehlssatzarchitektur-(ISA)-Agnostik einschließen (d. h., HPI kann bei mehreren unterschiedlichen Geräten implementiert sein). Bei einem weiteren Szenarium kann die HPI auch verwendet werden, um hochleistungsfähige I/O-Geräte und nicht nur Prozessoren oder Beschleuniger zu verbinden. Beispielsweise kann ein hochleistungsfähiges PCIe-Gerät mit der HPI durch eine geeignete Übersetzungsbrücke (d. h., HPI zu PCIe) gekoppelt werden. Des Weiteren können die HPI-Links von vielen HPI-basierten Geräten wie Prozessoren auf verschiedene Arten und Weisen verwendet werden (z. B. Sterne, Ringe, Maschen usw.).
4 veranschaulicht beispielhafte Implementierungen von mehreren potenziellen Multi-Sockel-Konfigurationen. Eine Zwei-Sockel-Konfiguration405 kann wie dargestellt zwei HPI-Links einschließen; Bei anderen Implementierungen, kann jedoch ein HPI-Link verwendet sein. Für größere Topologien kann jede Konfiguration verwendet werden, solange ein Identifikator (ID) zuweisbar ist und es eine Form von einen virtuellen Pfad gibt, neben anderen zusätzlichen Merkmalen oder Ersatzmerkmalen. Wie bei einem Beispiel gezeigt, weist eine Vier-Sockel-Konfiguration410 einen HPI-Link von jedem Prozessor zu einem anderen auf. Aber bei der Acht-Sockel-Implementierung, die in der Konfiguration415 gezeigt ist, ist nicht jeder Sockel direkt miteinander durch einen HPI-Link verbunden. Wenn jedoch ein virtueller Pfad oder Kanal zwischen den Prozessoren existiert, wird die Konfiguration unterstützt. Ein Bereich von unterstützten Prozessoren schließt 2–32 in einer nativen Domäne ein. Höhere Anzahlen an Prozessoren können neben anderen Beispielen durch Verwenden von mehreren Domains oder anderen Kopplungsstrukturen zwischen Knoten-Controllern erreicht werden. - Die HPI Architektur schließt eine Definition einer Schichtenprotokoll-Architektur ein, die bei einigen Beispielen Protokollschichten (kohärente, inkohärente und optional andere speicherbasierte Protokolle), eine Routing-Schicht, eine Linkschicht und eine physikalische Schicht einschließt. Darüber hinaus kann die HPI weiter Erweiterungen einschließen, die neben anderen Beispielen mit Power Managern (wie Power Control Units (PCUs)), Design für Prüfung und Debug (DFT), Fehlerbehandlung, Registern, Sicherheit in Zusammenhang stehen.
5 veranschaulicht eine Ausführungsform eines beispielhaften HPI-Schichtenprotokollstapels. Bei einigen Implementierungen können wenigstens einige der in5 veranschaulichten Schichten optional sein. Jede Schicht befasst sich mit seiner eigenen Granularitätsebene oder Menge an Informationen (die Protokollschicht505a , b mit den Paketen530 , die Linkschicht510a , b mit den Flits535 und die physikalische Schicht505a , b mit den Phits540 ). Zu beachten ist, dass ein Paket bei einigen Ausführungsformen partielle Flits, ein einzelnes Flit oder mehrere Flits basierend auf der Implementierung einschließen kann. - Als ein erstes Beispiel schließt eine Breite einer Phit
540 eine 1-zu-1-Zuordnung der Linkbreite zu Bits ein (z. B. eine 20-Bit-Linkbreite schließt eine Phit von 20 Bits ein usw.). Flits können eine größere Größe wie 184, 192 oder 200 Bits aufweisen. Zu beachten ist, dass, wenn die Phit540 20 Bit breit ist und die Größe von Flit535 184 Bit beträgt, dann benötigt es eine Bruchzahl der Phits540 , um ein Flit535 zu senden (z. B. 9,2 Phits bei 20 Bits, um ein 184 Bit-Flit535 zu senden, oder 9,6 bei 20 Bits, um ein 192-Bit-Flit zu senden, neben anderen Beispielen). Zu beachten ist, dass die Breiten des elementaren Links auf der physikalischen Schicht variieren können. Beispielsweise kann die Anzahl an Bahnen pro Anweisung 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 usw. einschließen. Bei einer Ausführungsform ist die Linkschicht510a , b fähig, mehrere Teile von unterschiedlichen Transaktionen in einem einzelnen Flit einzubetten, und ein oder mehrere Header (z. B. 1, 2, 3, 4) können innerhalb des Flits eingebettet sein. Bei einem Beispiel teilt die HPI die Header in entsprechende Slots auf, um mehrfache Nachrichten in dem für unterschiedliche Knoten bestimmten Flit zu ermöglichen. - Die physikalische Schicht
505a , b kann bei einer Ausführungsform für die schnelle Informationsübertragung auf dem physikalischen Medium (elektrisch oder optisch usw.) verantwortlich sein. Der physikalische Link kann zwischen zwei Linkschicht-Entitäten, wie Schicht505a und505b , Punkt-zu-Punkt sein. Die Linkschicht510a , b kann die physikalische Schicht505a , b von den oberen Schichten abstrahieren und stellt das Vermögen bereit, Daten (sowie Anfragen) zuverlässig zu übertragen und die Flusssteuerung zwischen zwei direkt verbundenen Entitäten zu verwalten. Die Linkschicht kann auch für das Virtualisieren des physikalischen Kanals in mehrere virtuelle Kanäle und Nachrichtenklassen verantwortlich sein. Die Protokollschicht520a , b vertraut auf die Linkschicht510a , b, um Protokollnachrichten in die geeigneten Nachrichtenklassen und virtuellen Kanäle zuzuordnen, bevor sie an die physikalische Schicht505a , b zur Übertragung über die physikalischen Links übergeben werden. Die Linkschicht510a , b kann neben anderen Beispielen mehrfache Nachrichten wie eine Anfrage, Snoop-Antwort, ein Rückschreiben, inkohärente Daten unterstützen. - Die physikalische Schicht
505a , b (oder PHY) der HPI kann über der elektrischen Schicht (d. h., elektrische Leiter, die zwei Komponenten verbinden) und unter der Linkschicht510a , b implementiert sein, wie veranschaulicht in5 . Die physikalische Schicht und entsprechende Logik können sich bei jedem Agenten befinden und die Linkschichten bei zwei Agenten (A und B) getrennt voneinander (z. B. bei Geräten auf beiden Seiten eines Links) verbinden. Die lokalen und entfernten elektrischen Schichten sind durch physikalische Medien (z. B. Drähte, Leiter, optisch usw.) verbunden. Die physikalische Schicht505a , b hat bei einer Ausführungsform zwei wesentliche Phasen, Initialisierung und Betrieb. Während der Initialisierung ist die Verbindung zur Linkschicht undurchsichtig und Signalisierung kann eine Kombination von getimten Zuständen und Handshake-Ereignissen einbeziehen. Während des Betriebs ist die Verbindung zur Linkschicht durchsichtig und die Signalisierung erfolgt bei einer Geschwindigkeit, wobei alle Bahnen zusammen als ein einzelner Link arbeiten. Während der Betriebsphase transportiert die physikalische Schicht Flits vom Agenten A zum Agenten B und vom Agenten B zum Agenten A. Die Verbindung wird auch als ein Link bezeichnet und abstrahiert einige physikalische Aspekte, die Medien, Breite und Geschwindigkeit von den Linkschichten einschließen, während Flits und Steuerung/Status der gegenwärtigen Konfiguration (z. B. Breite) mit der Linkschicht ausgetauscht werden. Die Initialisierungsphase schließt untergeordnete Phasen, wie z. B. Abfrage, Konfiguration, ein. Die Betriebsphase schließt untergeordnete Phasen (z. B. Link-Power-Management-Zustände) ein. - Bei einer Ausführungsform kann die Linkschicht
510a , b implementiert sein, um eine zuverlässige Datenübertragung zwischen zwei Protokoll- oder Rounting-Entitäten bereitzustellen. Die Linkschicht kann die physikalische Schicht505a , b von der Protokollschicht520a , b abstrahieren und kann für die Flusssteuerung zwischen zwei Protokoll-Agenten (A, B) verantwortlich sein und virtuelle Kanal-Dienste an die Protokollschicht (Nachrichtenklassen) und Routing-Schicht (Virtuelle Netzwerke) bereitstellen. Die Schnittstelle zwischen der Protokollschicht520a , b und der Linkschicht510a , b kann sich normalerweise auf der Paketebene befinden. Bei einer Ausführungsform wird die kleinste Transfereinheit auf der Linkschicht als ein Flit mit einer bestimmten Anzahl von Bits bezeichnet, wie 192 Bits, oder mit einer anderen Bezeichnung. Die Linkschicht510a , b vertraut auf die physikalische Schicht505a , b um die Übertragungseinheit der physikalischen Schicht505a , b (Phit) in die Übertragungseinheit der Linkschicht510a , b (Flit) zu bilden. Außerdem kann die Linkschicht510a , b logisch in zwei Teile, einen Sender und einen Empfänger, aufgebrochen sein. Ein Sender/Empfänger-Paar bei einer Entität kann mit einem Empfänger/Sender-Paar bei einer anderen Entität verbunden sein. Flusssteuerung wird häufig sowohl auf einer Flit- als auch auf einer Paketbasis ausgeführt. Fehlererkennung und -korrektur wird auch potenziell auf einer Flitebenen-Basis ausgeführt. - Bei einer Ausführungsform kann die Routing-Schicht
515a , b ein flexibles und verteiltes Verfahren bereitstellen, um HPI-Transaktionen von einer Quelle zu einem Ziel zu routen. Das Schema ist flexibel, da Routing-Algorithmen für mehrere Topologien durch programmierbare Routing-Tabellen bei jedem Router spezifiziert sein können (die Programmierung wird bei einer Ausführungsform durch Firmware, Software oder eine Kombination davon ausgeführt). Die Routing-Funktionalität kann verteilt sein; das Routing kann durch eine Serie von Routing-Schritten erfolgen, wobei jeder Routing-Schritt durch ein Nachschlagen einer Tabelle entweder bei den Quell-, Zwischen- oder Ziel-Routern definiert ist. Das Nachschlagen bei einer Quelle kann verwendet werden, um ein HPI-Paket in das HPI-Gefüge einzuführen. Das Nachschlagen bei einem Zwischenrouter kann verwendet werden, um ein HPI-Paket von einem Eingabeport zu einem Ausgabeport zu routen. Das Nachschlagen bei einem Ziel-Port kann verwendet werden, um den Ziel-HPI-Protokoll-Agent zu adressieren. Zu beachten ist, dass die Routing-Schicht bei einigen Implementierungen dünn sein kann, da die Routingtabellen und deshalb die Routing-Algorithmen nicht speziell durch Spezifikation definiert sind. Dies ermöglicht Flexibilität und eine Vielzahl von Verwendungsmodellen einschließlich flexibler architektonischer Plattformtopologien, die durch die Systemimplementierung zu definieren sind. Die Routing-Schicht515a , b verlässt sich auf die Linkschicht510a , b, um die Verwendung von bis zu drei (oder mehr) virtuellen Netzwerken (VNs) bereitzustellen – bei einem Beispiel zwei VNs ohne Deadlocks, VN0 und VN1 mit mehreren in jedem virtuellen Netzwerk definierten Nachrichtenklassen. Ein gemeinsam benutztes adaptives virtuelles Netzwerk (VNA) kann in der Linkschicht definiert sein, aber dieses adaptive Netzwerk mag nicht direkt in Routing-Konzepten exponiert sein, da jede Nachrichtenklasse und jedes virtuelle Netzwerk fest zugeordnete Ressourcen und einen garantierten Fortschritt aufweisen kann, neben anderen Merkmalen und Beispielen. - Bei einer Ausführungsform kann die HPI eine Kohärenz-Protokollschicht
520a , b einschließen, unterstützt Agenten Caching-Leitungen von Daten vom Speicher. Ein Agent, der Speicherdaten zwischenspeichern möchte, kann das Kohärenz-Protokoll verwenden, um die Datenzeile zu lesen und sie in seinen Cache zu laden. Ein Agent, der eine Datenzeile in seinem Cache modifizieren möchte, kann das Kohärenz-Protokoll verwenden, um die Eigentümerschaft der Zeile vor dem Ändern der Daten zu erwerben. Nach dem Ändern einer Zeile kann ein Agent Protokollanforderungen folgen, sie in seinem Cache zu halten, bis er entweder die Zeile zurück zum Speicher schreibt oder sie in einer Antwort zu einer externen Anforderung einschließt. Schließlich kann ein Agent externe Anforderungen erfüllen, um eine Zeile in seinem Cache ungültig zu machen. Das Protokoll stellt die Kohärenz der Daten durch das Diktieren der Regeln sicher, die alle Caching-Agenten befolgen müssen. Es stellt auch die Mittel für Agenten ohne Caches bereit, um Speicherdaten zusammenhängend zu lesen und zu schreiben. - Zwei Bedingungen können erzwungen werden, um Transaktionen zu unterstützen, die das HPI-Kohärenz-Protokoll verwenden. Zuerst kann das Protokoll Datenkonsistenz als ein Beispiel auf einer Pro-Adresse-Basis neben Daten in den Caches des Agenten und zwischen diesen Daten und Daten im Speicher aufrechterhalten. Formlos kann Datenkonsistenz auf jede gültige Datenzeile in einem Cache eines Agenten verweisen, der einen aktuellsten Wert der Daten darstellt, und in einem Kohärenz-Protokollpaket gesendete Daten können den aktuellsten Wert der Daten zu dem Zeitpunkt darstellen, an dem sie gesendet wurden. Wenn keine gültige Kopie der Daten in Caches oder bei der Übertragung existiert, kann das Protokoll sicherstellen, dass der aktuellste Wert der Daten sich im Speicher befindet. Zweitens kann das Protokoll wohldefinierte Verpflichtungspunkte für Anfragen bereitstellen. Verpflichtungspunkte für Lesevorgänge können anzeigen, wann die Daten verwendbar sind; und für Schreibvorgänge können sie anzeigen, wann die geschriebenen Daten global feststellbar sind und durch nachfolgende Lesevorgänge geladen werden. Das Protokoll kann diese Verpflichtungspunkte sowohl für zwischenspeicherbare als auch für nicht zwischenspeicherbare (UC) Anfragen im kohärenten Speicherplatz unterstützen.
- Das HPI-Kohärenz-Protokoll kann auch den Fortschritt von Kohärenz-Anfragen sicherstellen, die von einem Agenten zu einer Adresse im kohärenten Speicherplatz erfolgen. Sicherlich können Transaktionen letztendlich zufriedengestellt und für einen richtigen Systembetrieb rückgeordnet werden. Das HPI-Kohärenz-Protokoll kann bei einigen Ausführungsformen kein Ahnung von der Wiederholung haben, um Ressourcenzuordnungskonflikte zu lösen. Deshalb kann das Protokoll selbst definiert sein, keine zirkulären Ressource-Abhängigkeiten zu enthalten, und Implementierungen können in ihren Designs darauf achten, keine Abhängigkeiten einzuführen, die in Deadlocks resultieren können. Zusätzlich kann das Protokoll anzeigen, wo Designs , angemessenen Zugriff auf Protokollressourcen bereitstellen können.
- Logisch kann das HPI-Kohärenz-Protokoll bei einer Ausführungsform drei Elemente einschließen: Kohärenz-(oder Caching)-Agenten, Home-Agenten und das HPI-Kopplungsstrukturgefüge, das die Agenten verbindet. Kohärenz-Agenten und Home-Agenten können zusammenarbeiten, um Datenkonsistenz durch Austauschen von Nachrichten über die Kopplungsstruktur zu erreichen. Die Linkschicht
510a , b und ihre damit in Zusammenhang stehende Beschreibung kann die Details des Kopplungsstrukturgefüges bereitstellen, einschließlich wie es an den den Kohärenz-Protokollanforderungen festhält, die hierin beschrieben werden. (Es ist zu beachten, dass die Unterteilung in Kohärenz-Agenten und Home-Agenten zur Übersichtlichkeit dient. Ein Design kann neben anderen Beispielen mehrere Agenten von beiden Arten innerhalb eines Sockels enthalten oder auch Agentenverhalten in eine einzelne Designeinheit kombinieren.) - Bei einigen Implementierungen kann HPI einen eingebetteten Takt verwenden. Ein Taktsignal kann in Daten eingebettet sein, die unter Verwendung der Kopplungsstruktur gesendet werden. Mit dem in den Daten eingebetteten Taktsignal können ausgeprägte und zugehörige Taktbahnen ausgelassen werden. Dies kann zum Beispiel nützlich sein, da es erlauben kann, dass mehr Pins eines Gerätes zur Datenübertragung zugeordnet werden, insbesondere bei Systemen, wo der Raum für Pins heiß begehrt ist.
- Die Linkschicht kann die zuverlässige Datenübertragung zwischen zwei Protokoll- oder Routing-Entitäten garantieren. Die Linkschicht kann die physikalische Schicht von der Protokollschicht abstrahieren, die Flusskontrolle zwischen zwei Protokoll-Agenten behandeln und virtuelle Kanal-Dienste an die Protokollschicht (Nachrichtenklassen) und Routing-Schicht (virtuelle Netzwerke) bereitstellen.
- Bei einigen Implementierungen kann sich die Linkschicht mit einer festen Menge von Informationen genannt ein Flit befassen. Bei einem Beispiel kann das Flit definiert sein, 192 Bit in der Länge zu sein. Es kann jedoch jeder Bereich von Bits wie 81–256 (oder mehr) in unterschiedlichen Variationen verwendet werden. Eine große Flit-Größe wie 192 Bits, kann Format, Cyclic Redundancy Check (CRC) und andere Anderungen einschließen. Zum Beispiel kann eine größere Flit-Länge auch erlauben, dass das CRC-Feld erweitert wird (z. B. auf 16 Bits), um die größeren Flit-Nutzdaten zu behandeln. Die Anzahl an Phits oder Einheitsintervallen (UI) (z. B. die verwendete Zeit, um ein einzelnes Bit oder Phit zu übertragen usw.), um ein einzelnes Flit zu übertragen, kann mit der Linkbreite variieren. Zum Beispiel kann eine 20-Bahn- oder -Bit-Linkbreite ein einzelnes 192-Bit-Flit in 9,6 UI übertragen, während eine 8-Bahn-Linkbreite das gleiche Flit in 24 UI überträgt, neben anderen potenziellen Beispielen. Linkschicht-Kreditierung und Protokoll-Paketieren kann auch auf einem Flit basieren.
-
6 veranschaulicht eine Darstellung600 eines generalisierten Flits für eine 8-Bahn-Linkbreite. Jede Spalte der Darstellung600 kann eine Linkbahn und jede Reihe eine entsprechende UI symbolisieren. Bei einigen Implementierungen kann ein einzelnes Flit in zwei oder mehr Slots unterteilt sein. Individuelle Nachrichten oder Linkschicht-Header können in jedem Slot eingeschlossen sein, was mehrere individuelle und in einigen Fällen unabhängige Nachrichten erlaubt, die potenziell unterschiedlichen Transaktionen entsprechen, die in einem einzelnen Flit gesendet werden sollen. Weiter können die in Slots eines einzelnen Flits eingeschlossenen Mehrfachnachrichten neben anderen Beispielen auch für unterschiedliche Zielknoten bestimmt sein. Zum Beispiel veranschaulicht das Beispiel von6 ein Flit-Format mit drei Slots. Die schattierten Teile können den Teil des in einem entsprechenden Slot eingeschlossenen Flits darstellen. - Im Beispiel von
6 , sind drei Slots, Slot 0, 1 und 2, bereitgestellt. Slot 0 kann 72 Bits des Flit-Raums bereitgestellt sein, von dem 22 Bits zu Nachrichten-Header-Feldern und 50 Bits zu Nachrichten-Nutzraum zugeordnet sind. Slot 1 kann 70 Bits des Flit-Raums bereitgestellt sein, von dem 20 Bits zu Nachrichten-Header-Feldern und 50 Bits zu Nachrichten-Nutzraum zugeordnet sind. Die Differenz im Nachrichten-Header-Feldraum dazwischen kann optimiert werden, um bereitzustellen, dass bestimmte Nachrichtentypen für die Einbindung in Slot 0 vorgesehen werden (z. B., wo mehr Nachrichten-Header-Codierung verwendet wird). Ein dritter Slot, Slot 2, kann bereitgestellt werden, der im Wesentlichen weniger Raum als die Slots 0 und 1 einnimmt und in diesem Fall 18 Bits des Flit-Raums verwendet. Slot 2 kann optimiert werden, um solchne Nachrichten wie Bestätigungen, Kreditrückgaben und dergleichen zu behandeln, die keine größeren Nachrichten-Nutzdaten verwenden. Zusätzlich kann ein gleitendes Nutzdatenfeld bereitgestellt werden, das ermöglicht, dass zusätzliche 11 Bits alternativ zur Ergänzung das Nutzdatenfeldes von entweder Slot 0 oder Slot 1 verwendet werden. - Mit dem speziellen Beispiel von
6 fortfahrend können andere Felder für ein Flit global sein (d. h., über das Flit und nicht auf einen speziellen Slot Anwendung finden). Zum Beispiel kann ein Kopfbit zusammen mit einem 4-Bit-Steuerfeld des Flits bereitgestellt werden, das neben anderen Beispielen dazu verwendet werden kann, um solche Informationen wie ein virtuelles Netzwerk des Flits zu bezeichnen und zu bestimmen, wie das Flit codiert sein soll. Zusätzlich kann unter anderen potenziellen Beispielen Fehlerüberwachungsfunktionalität wie durch ein zyklisches 16-Bit-CRC-Feld bereitgestellt werden. - Ein Flit-Format kann definiert werden, um den Durchsatz von Nachrichten auf der Linkschicht zu optimieren. Einige traditionelle Protokolle haben kleinere Flits ohne Slots verwendet. Zum Beispiel wurde in QPI ein 80-Bit-Flit verwendet. Während der Flit-Durchsatz eines größeren (z. B. 192-Bit-Flit) vielleicht niedrigeren Nachrichten- oder Paketdurchsatzes durch die Optimierung der Verwendung der Flit-Daten vergrößert werden kann. Bei einigen Implementierungen von QPI wurde beispielsweise der gesamte 80-Bit-Raum des Flits unabhängig von der Nachrichtengröße oder -art verwendet. Durch Aufteilen eines größeren Flits in Slots von vorbestimmten Längen und Feldern kann die Flit-Länge
192 optimiert und höhere Effizienz in Fällen realisiert werden, wenn ein oder mehrere der verfügbaren Slots manchmal unbenutzt sind. In der Tat kann vom Linkschichtverkehr angenommen werden, dass er viele unterschiedliche Arten von Nachrichten und Verkehr einschließt, einschließlich Nachrichten und Pakete mit variierenden Header-Längen und -Feldern. Die entsprechenden Längen und die Organisation von in einem Flit definierten Slots können so definiert sein, dass sie der statistischen oder erwarteten Häufigkeit von verschiedenen Nachrichten und den Notwendigkeiten dieser Nachrichten entsprechen. Zum Beispiel können zwei größere Slots für jeden kleinen Slot definiert sein, um neben anderen Beispielen eine erwartete statistische Häufigkeit des Messagings unter Verwendung dieser größeren Nachrichtentypen und Header-Längen aufzunehmen. Weiter kann auch Flexibilität bereitgestellt werden, um weiter den unterschiedlichen Verkehr aufzunehmen, wie durch ein gleitendes Nutzdatenfeld wie im Beispiel von6 . In einigen Fällen kann ein Flit-Format fest sein und die Bits, die zu speziellen Slots im Flit zugeordnet sind, einschließen. - Im Beispiel von
6 kann ein „Hdr”-Feld für das Flit generell bereitgestellt werden und einen Header-Hinweis für das Flit darstellen. In einigen Fällen kann das Hdr-Feld anzeigen, ob das Flit ein Header-Flit oder ein Daten-Flit ist. Bei Daten-Flits kann das Flit immer noch unterteilt bleiben, aber die Verwendung von bestimmten Feldern auslassen oder sie mit Nutzdaten ersetzen. In einigen Fällen können Datenfelder einen Befehlscode und Nutzdaten einschließen. Im Fall von Header-Flits kann eine Vielzahl von Header-Feldern bereitgestellt werden. Im Beispiel von6 können „Oc”-Felder für jeden Slot bereitgestellt sein, wobei das Oc-Feld einen Befehlscode darstellt. Ähnlich können ein oder mehrere Slots ein entsprechendes „msg”-Feld aufweisen, das einen Nachrichtentyp des entsprechenden im Slot einzuschließenden Paketes darstellt, vorausgesetzt, dass der Slot konzipiert ist, solche Pakettypen zu behandeln usw. „DNID”-Felder können eine Zielknoten-ID darstellen, ein „TID”-Feld kann eine Transaktions-ID darstellen, ein „RHTID”-Feld kann entweder eine Knoten-ID eines anfragenden Agenten oder eine Home-Tracker-ID darstellen, neben anderen potenziellen Feldern. Weiter können ein oder mehrere Slots mit Nutzdatenfeldern ausgestattet sein. Zusätzlich kann neben anderen Beispielen ein CRC-Feld innerhalb eines Flits eingeschlossen sein, um einen CRC-Wert für das Flit bereitzustellen. - Bei einigen Implementierungen kann die Linkbreite während der Lebensdauer des Links variieren. Zum Beispiel kann die physikalische Schicht zwischen Linkbreiten-Zuständen, wie zu und von einer vollen oder ursprünglichen Bahnbreite und einer unterschiedlichen oder partiellen Bahnbreite übergehen. Bei einigen Implementierungen, kann beispielsweise ein Link initialisiert sein, um Daten über 20 Bahnen zu übertragen. Später kann neben vielen anderen potenziellen Beispielen der Link zu einem Partialbreite-Senden-Zustand übergehen, wo nur 8 Bahnen aktiv verwendet werden. Die Bahnbreiten-Übergänge können zum Beispiel in Verbindung mit Power-Management-Tasks verwendet werden, die durch eine oder mehrere Power Control Units (PCU) geregelt sind, neben anderen Beispielen.
- Wie bereits erwähnt kann die Linkbreite den Flit-Durchsatz beeinflussen.
7 ist eine Darstellung eines beispielhaften über einen 8-Bahn-Link gesendeten 192-Bit-Flits, was in einem Durchsatz des Flits von 24 UI resultiert. Weiter können wie gezeigt im Beispiel von7 Bits des Flits in einigen Fällen nicht in Reihenfolge gesendet werden, um beispielsweise zeitsensitivere Felder früher in der Übertragung zu senden (z. B. Flit-artige Felder (z. B. Daten- oder Header-Flit), Befehlscodes usw.), spezielle Fehlererkennung oder andere Funktionalität zu bewahren oder zu erleichtern, die im Flit verkörpert sind, neben anderen Beispielen. Im Beispiel von7 werden beispielsweise die Bits 191, 167, 143, 119, 95, 71, 47 und 23 parallel auf den Bahnen 17 bis 10 während eines ersten UI (d. h., UI0) der Übertragung gesendet, während die Bits 168, 144, 120, 96, 72, 48, 24 und 0 während der 24 (oder abschließenden) UI der Flit-Übertragung (d. h., UI23) gesendet werden. Es ist zu verstehen, dass andere Ordnungsschemen, Flit-Längen, Bahnbreiten usw. bei anderen Implementierungen und Beispielen verwendet werden können. - In einigen Fällen kann die Flit-Länge ein Vielfaches der Anzahl an aktiven Bahnen sein. In solchen Fällen kann das Flit gleichmäßig auf allen aktiven Bahnen gesendet werden und die Übertragung des Flits kann im Wesentlichen gleichzeitig an einer sauberen (d. h., nicht überlappenden) Begrenzung enden. Beispielsweise können wie gezeigt in der Repräsentation von
8 Bits eines Flits als in aufeinanderfolgenden Gruppierungen von 4 Bits oder „4-Bit-Einheiten” gesendet werden. Bei diesem Beispiel ist ein 192-Bit-Flit über einen 8-Bahn-Link zu übertragen. Da 192 ein Vielfaches von 8 ist, kann das gesamte Flit sauber über den 8-Bahn-Link in 24 UI übertragen werden. In anderen Fällen kann die Breite des Flits kein Vielfaches der Anzahl an aktiven Bahnen sein. Zum Beispiel zeigt9 eine andere Repräsentation eines Beispiels von 192 Bits, die über 20 Bahnen übertragen werden. Da 192 nicht durch 20 teilbar ist, würde die Übertragung des vollen Flits eine Nicht-Integerzahl von Intervallen (z. B. 9,6 UI) erfordern. In solchen Fällen kann, anstatt „zusätzliche” Bahnen zu verschwenden, die nicht während der 10. UI der Übertragung verwendet werden, ein zweites überlappendes Flit mit den abschließenden Bits eines vorhergehenden Flits übertragen werden. Ein solches Überlappen oder Swizzling der Flits kann in einigen Implementierungen in gezackten Flit-Grenzen und Flit-Bits, die nicht in Reihenfolge gesendet werden, resultieren. Das für die Übertragung verwendete Muster kann konfiguriert sein, um zu erlauben, dass neben anderen Überlegungen zeitsensitivere Felder des Flits früher im Flit übertragen werden, Konservierung von Fehlererkennung und Korrektur. Logik kann in einem oder beiden der physikalischen und Linkschichten bereitgestellt sein, um Flit-Bits gemäß solchen Mustern zu übertragen und basierend auf der gegenwärtigen Linkbreite dynamisch zwischen Mustern zu wechseln. Weiter kann neben anderen Beispielen Logik bereitgestellt werden, um Flits von solchen geswizzleten oder geordneten Bitströmen neu zu ordnen und zu rekonstruieren. - Bei einigen Implementierungen können Flits als Header-Flits (z. B. mit Paketheader-Daten) oder Daten-Flits (z. B. mit Paketnutzdaten) charakterisiert sein. Unter erneuter Bezugnahme auf
6 kann ein Flit-Format definiert sein, das drei (3) individuelle Slots (z. B. 0, 1 und 2) einschließt, was ermöglicht, dass bis zu drei Header in einem einzelnen Flit (z. B. ein Header in jedem Slot) übertragen werden. Dementsprechend kann jeder Slot Steuerfelder und ein Nutzdatenfeld aufweisen. Zusätzlich dazu können Nutzdatenfelder für jeden Header (und Slot) definiert sein. Weiter kann ein gleitendes Nutzdatenfeld definiert sein, das flexibel als zusätzliche Nutzdatenlänge für zwei oder mehr der Slots (z. B. entweder von Slot 0 oder Slot 1) basierend auf den Header-Arten in diesen Slots verwendet werden kann. Das gleitende Feld kann bei einer Implementierung 11 Zusatzbits von Nutzdaten entweder für Slot 0 oder für Slot 1 ermöglichen. Zu beachten ist, dass bei Implementierungen, die ein größeres Flit definieren, mehr gleitende Bits verwendet werden können und in kleineren Flits weniger gleitende Bits bereitgestellt werden können. - Bei einigen Implementierungen können Zusatzbits nach Bedarf für bestimmte Nachrichten bereitgestellt werden, während immer noch innerhalb einer vordefinierten Flit-Länge (z. B. 192 Bits) verblieben und die Verwendung der Bandbreite maximiert wird, indem einem Feld ermöglicht wird, zwischen den zwei Slots zu gleiten. Unter jetziger Bezugnahme auf die Beispiele von
10 sind zwei Instanzen1005 ,1010 eines beispielhaften 192-Bit-Flits auf einem 8-Bahn-Datenlink gezeigt. In einem Fall kann ein Flit (z. B.1005 ) drei Slots einschließen, die Slots 0, 1 und 2. Jeder der Slots 0 und 1 kann 50-Bit-Nutzdatenfelder einschließen. Das gleitende Feld kann bereitgestellt werden, um alternativ das Nutzdatenfeld von entweder Slot 0 oder Slot 1 durch die Feldlänge (z. B. 11 Bits) des gleitenden Feldes zu erweitern. Die Verwendung eines gleitenden Feldes kann weiter die Effizienzgewinne erhöhen, die durch ein definiertes Mehrslot-Flit-Format bereitgestellt werden. Die Dimensionierung der Slots innerhalb des Flits und die Arten von Nachrichten, die in jeden Slot platziert werden können, können potenziell selbst mit einer reduzierten Flit-Rate eine erhöhte Bandbreite bereitstellen. - Im konkreten Beispiel von
6 können die Nachrichten, welche die Slots 1 und 2 verwenden, optimiert werden, indem die Anzahl von Bits vermindert wird, die außer Acht gelassen werden, um die Befehlscodes dieser Slots zu codieren. Wenn ein Header, der mehr Bits aufweist, als Slot 0 bereitstellen kann, in die Linkschicht eintritt, können Algorithmen bereitgestellt werden, um ihm zu ermöglichen Slot 1-Nutzdatenbits für zusätzlichen Raum zu übernehmen. Spezielle Steuerungs-(z. B. LLCTRL)-Flits können auch bereitgestellt werden, die alle drei Slots an Bits für ihre Bedürfnisse verbrauchen. Es können auch Slot-Algorithmen existieren, um zu ermöglichen, dass für Fälle wo der Link teilweise beschäftigt ist individuelle Slots eingesetzt werden, während andere Slots keine Informationen transportieren. - Im speziellen Beispiel von
10 ist die beispielhafte Verwendung von einem gleitenden Flit-Feld gezeigt. Im Fall von Standard Address Snoop-(SA-S)-Headers kann nur eine einzelne SA-S-Nachricht (und Header) erlaubt sein, die im gleichen Flit gesendet werden soll (um z. B. Konflikte zu verhindern, oder wo die SA-S-Nutzdaten mehr als 50 Bit Nutzdaten verwenden usw.). Daher kann bei solchen Beispielen ein SA-S nur entweder in Slot 0 oder in Slot 1 des gleichen Flits in solchen Fällen gesendet werden. Im Beispiel von Flit1005 ist ein SA-S-Header in Slot 0 eingeschlossen und macht vom gleitenden Feld Gebrauch. Daher ist im Beispiel von Flit1005 , die Verwendung des gleitenden Feldes zugeordnet, um die Nutzdaten der Nutzdaten von Slot 0 zu erweitern. Bei einem weiteren Beispiel von Flit1010 nimmt der SA-S-Header Slot 1 ein. Im Beispiel von Flit1010 ist stattdessen das gleitende Feld zugeordnet, um die Nutzdaten von Slot 1 zu erweitern. Andere potenzielle Beispiele können auch von der Flexibilität Gebrauch machen, die durch ein gleitendes Nutzdatenfeld eines mit Slots versehenen Flits bereitgestellt wird, indem die Prinzipien verwendet werden, die in den speziellen Beispielen der6 und10 veranschaulicht sind. - Bei einer Ausführungsform, wie diejenige die in Verbindung mit
6 veranschaulicht ist, können zwei Slots, Slot 0 und 1, als gleich dimensionierte Nutzdatenfelder aufweisend definiert sein, während Slot 2 ein viel kleineres Nutzdatenfeld für die Verwendung durch einen speziellen Teilsatz von Headern aufweist, die beispielsweise die Verwendung von solchen größeren Nutzdatenfeldern vermissen lassen. Bei einem Beispiel können die Steuerfelder von Slot 1 und 2 nicht die volle Nachrichtenklassen-Verschlüsselungen (im Gegensatz zu Slot 0) transportieren und Slot 2 kann keine volle Befehlscode-Codierung transportieren, neben anderen potenziellen Implementierungen. - Wie bereits erwähnt können bei einigen Implementierungen die Slots 1 und 2 nicht die volle Nachrichtenklassen-Verschlüsselungen transportieren, da aufgrund von Slot-Beschränkungen nicht alle Bits verwendet werden. Slot 1 kann eine Nachrichtenklasse Bit 0 transportieren. Hier sind Anfrage-(REQ) und Snoop-(SNP)-Pakete erlaubt. Bei dieser Implementierung werden REQ- und SNP-Nachrichtenklassen-Verschlüsselungen durch Bit 0 differenziert. Wenn ein Entwickler unterschiedliche Nachrichtenklassen im partiellen Nachrichtenklassenfeld ermöglichen möchte, könnte er als Resultat davon entweder eine unterschiedliche Bitposition auswählen (d. h., ein oberes Bit, das zwei unterschiedliche Arten von Nachrichten differenziert) oder unterschiedliche Nachrichtentypen zum niederwertigen Bit zuweisen. Hier sind die oberen zwei Bits jedoch als 0-en impliziert, wobei das untere Bit zwischen einem REQ und einem SNP unterscheidet. Bei diesem Beispiel transportiert Slot 2 keine Nachrichtenklassen-Bits, da nur Antwort-(RSP) (Codierung 2)-Pakete erlaubt sind.
- Deshalb ist die Nachrichtenklassen-Codierung für Slot 2 ein RSP-2. Slot 2 kann auch einen partiellen Befehlscode transportieren. Wie vorstehend kann von einem oder mehreren der Befehlscode-Bits angenommen werden, dass sie 0 sind. Als Resultat können partielle Nachrichtenklassen-Felder und partielle Befehlscodefelder verwendet werden, die einen Teilsatz von Nachrichten und Befehlscodes definieren, die verwendet werden können. Zu beachten ist, dass mehrere Sätze von Befehlscodes und Nachrichtenklassen definiert sein können. Hier ist ein Teilsatz von Nachrichtentypen (d. h., MSG Typ 1/MSG Typ 2) verfügbar, wenn ein niederwertiges Bit der Nachrichtenklasse verwendet wird. Wenn jedoch 2 Bits verwendet werden, dann wird neben anderen Beispielen ein größerer Teilsatz (z. B. Nachrichtentyp 1/Nachrichtentyp 2/Nachrichtentyp 3/Nachrichtentyp 4) bereitgestellt.
- Nachrichtenklassen-Verschlüsselungen können speziellen Arten von Headern entsprechen, die in einem oder mehreren definierten Slots in einem Flit einzuschließen (oder zu verwenden) sind. Zum Beispiel kann ein Header mehrere Größen aufweisen. Bei einem Beispiel kann ein Drei-Slot-Flit definiert sein, um potenziell vier Größen von Headern basierend auf der Art des Headers zu unterstützen. Tabelle 1 schließt eine beispielhafte Liste von potenziellen Header-Formaten und damit verbundenen Größen ein: TABELLE 1
Header-Format Kopfzeilengröße Beschreibung SA Einzelner Slot Anforderung SA-S Einzel-Slot Snoops (bindet gleitendes Nutzdatenfeld ein) SA-D Einzel-Slot Daten-Header SR-U Kleiner Slot Abschluss ohne Daten SR-O Einzel-Slot Ordnung SR-C Einzel-Slot Konfliktlösung SR D Einzel-Slot Daten-Header PW Doppel-Slot Partielles Schreiben PR Doppel-Slot Partielles Lesen P2P Doppel-Slot Peer-to-Peer NCM Doppel-Slot Inkohärentes Messaging Slot-NULL Einzelner Slot (oder nur Befehlscode) Steuerungsflit LLCRD Kleiner Slot Steuerungsflit LLCTRL Volles Flit Steuerungsflit - Kleine (oder einzelne) Slot-Header können für diejenige Nachricht sein, die klein genug ist, um in Slot 2 zu passen, und die keine Protokoll-Ordnungsanforderungen aufweist, die sie in Slot 0 zwingen. Ein kleiner Slot-Header kann auch in Slot 0 platziert werden, wenn die Slot-Beschränkungen für das Flit es anfordern. Der einzelne Slot-Header kann für diejenigen Nachrichten mit Nutzdaten sein, die in Slot 0 oder Slot 1 passen. Einige Einzel-Slot-Header können auch vom gleitenden Nutzdatenfeld Gebrauch machen.
- Beispielsweise werden SA-S-Header bei einer Ausführungsform nicht sowohl in Slot 0 als auch in Slot 1 des gleichen Flits in dem Beispiel, wo nur ein HTID oder gleitendes Feld existiert, gesendet. Bestimmte Einzel-Slot-Header können Slot 0 basierend auf Protokoll-Ordnungsanforderungen verwenden. Der Doppel-Slot-Header kann für diejenigen Nachrichten ausreichend groß sein, die sowohl die Nutzdatenfelder von Slot 0 als auch Slot 1 zusätzlich zum gleitenden Nutzdatenfeld verbrauchen, neben anderen Beispielen.
- Ein Slot-NULL-Befehlscode kann einen speziellen Befehlscode einschließen, der bei einem Beispiel entweder in Slot 0 oder in Slot 1 verwendet werden kann. Für Slot 0 kann Slot_NULL verwendet werden, wenn die Linkschicht keinen Header aufweist, der in Slot 0 zu senden ist, aber einen Header aufweist, der in Slot 1 oder 2 zu senden ist. Wenn Slot_NULL in Slot 0 verwendet wird, werden die Slot 0-Nutzdaten als reserviert betrachtet (RSVD), neben anderen Beispielen. Bei einigen Implementierungen kann Slot_NULL in Slot 1 potenziell unter zwei Bedingungen verwendet werden. Erstens, wenn Slot 0 einen doppelten Slot oder speziellen Steuerungsheader codiert und deshalb die Slot 1-Nutzdaten verbraucht. In solchen Fällen kann der Slot 1-Befehlscode auf Slot_NULL gesetzt werden. Zweitens, wenn die Linkschicht nichts in Slot 1 zu senden hat, aber einen gültigen Einzel-Slot-Header für Slot 0 oder einen kleinen Slot-Header für Slot 2 aufweist. Unter dieser Bedingung kann der Slot 1-Befehlscode auf Slot_NULL gesetzt werden und die Slot 1-Nutzdaten können als reserviert betrachtet werden, neben anderen potenziellen Beispielen.
- Bei einigen Implementierungen kann der kleine Slot 2 eine verminderte Anzahl von Befehlscode-Bits einschließen. Wenn die Linkschicht nichts in Slot 2 zu senden hat, kann sie eine „Implizite NULL” senden, indem sie einen speziellen Befehlscode wie einen Linkschichtkredit-Befehlscode codiert und das Slot 2-Nutzdatenfeld komplett auf Nullen setzt. Der Empfänger dieser Slot 2-Codierung kann das als eine Linkschichtkredit-Nachricht verarbeiten (außer im Fall von den speziellen Steuerungsflits), aber die Alle-Null-Codierung hat keine Auswirkung auf den Kredit- und Bestätigungszustand. Im Fall von speziellen Steuerungsflits können die Slot 2-Nutzdaten als RSVD betrachtet werden, und die Implizite NULL wird ignoriert, da sie das gesamte Flit verbrauchen können. Wo die Linkschicht nichts in irgendeinem der drei Slots und den CRD/ACK-Feldern zu senden hat, kann die Linkschicht neben anderen Beispielen eine spezielle Steuerungs-Null-Nachricht senden.
- Slot-Beschränkungen können für ein oder mehrere der definierten Slots eines Flits definiert sein. Bei einer Ausführungsform können Doppel-Slot-Header nur ihre Nachrichtenklasse und ihren Befehlscode in den Slot 0 platziert haben. Wenn Slot 0 einen Doppel-Slot-Header enthält, kann Slot 1 einen Slot_NULL-Befehlscode codieren, da das Slot 1-Nutzdatenfeld durch den Slot 0-Header verbraucht wird. Wenn Slot 0 einen Slot_NULL-Einzelslot oder einen kleinen Slot-Header enthält, können die Slots 1 und 2 beide einen Nicht-NULL-Header codieren. In diesem speziellen Beispiel sind nur kleine Slot-Header im Slot 2 erlaubt (z. B. veranschaulicht in
6 ). Wenn sowohl Slot 0 als auch Slot 1 Einzel-Slot-Header enthalten, kann einer von einer Art sein, die das gleitende Nutzdatenfeld verbraucht. Wenn kein Slot 0 oder Slot 1 eine Art von Header enthält, die das gleitende Nutzdatenfeld verbraucht, kann das Feld als RSVD betrachtet werden. - Zusätzlich kann bei einigen Implementierungen die Linkschicht mehrere unterschiedliche Arten von virtuellen Netzwerken oder virtuelle Kanal-Kredite verwenden. Bei einem Beispiel können zusammengefasste adaptive virtuelle Netzwerk-(VNA)-Kredite unterstützt und ein VNA-Feld bereitgestellt werden. Bei einer beispielhaften Implementierung, wenn das VNA-Feld ein Nicht-VNA Flit anzeigt (z. B. ein Flit, das einen unterschiedlichen Kredit-Pool verwendet), kann der Header für die Platzierung in den Slot 0 vorgesehen sein. Weiter kann der Slot 2-Befehlscode in diesem Fall einen Slot_2-Kredit einschließen. Wenn Slot 0 einen speziellen Steuerungsheader codiert, können weiter sowohl Slot 1- als auch Slot 2-Steuerfelder auf Fixwerte gesetzt werden und keine Header können in diese Slots platziert werden, neben anderen potenziellen Implementierungen.
- Wie bereits erwähnt, kann in Header-Flits eine Vielzahl von unterschiedlichen Feldern bereitgestellt werden, die in entsprechenden Flit-Slots eingebunden werden sollen, wie es im speziellen Beispiel von
6 veranschaulicht ist. Zu beachten ist, dass die veranschaulichten und beschriebenen Felder als Beispiel bereitgestellt sind und zusätzliche oder Ersatzfelder auch eingebunden werden können. In der Tat können einige der beschriebenen Felder optional sein und neben anderen Beispielen bei einigen Implementierungen ausgelassen werden. - Bei einem Beispiel kann ein Nachrichtenklassen-(MC)-Feld, sowie andere Felder bereitgestellt sein. Bei einigen Beispielen kann die Protokollschicht das Nachrichtenklassen-Feld verwenden, um die Protokollklasse zu definieren, die auch als das Hauptbefehlscodefeld agiert. Die Linkschicht kann das Nachrichtenklassen-Feld als Teil der virtuellen Kanal-(VC)-Definition verwenden. Einige Protokollklassen/VC können neben anderen Beispielen Mehrfachnachrichtenklassen-Verschlüsselungen aufgrund der Anzahl an Befehlscodes verwenden, die zu codieren sind. Beispielsweise können Anfragen (REQ), Snoops (SNP), Antwort (RSP), Rückschreiben, inkohärenter Bypass und inkohärente Standardtypen unterstützt werden. Wenn jede Art sechzehn Operationen codieren würde, dann gäbe es einen Befehlscode-Raum von 96 Operationen. Und wenn ein anderes Modus-Bit oder ein anderer Befehlscode-Raum für jede Art definiert wäre, dann könnten weitere 96 Operationen bereitgestellt werden; und so weiter.
- Bei einem Beispiel kann ein Befehlscode-Feld zusätzlich bereitgestellt werden. Die Protokollschicht kann den Befehlscode in Verbindung mit der Nachrichtenklasse verwenden, um einen kompletten Befehlscode zu bilden (d. h., die Nachrichtenklassen-Art und die Operation innerhalb definieren). Als ein Beispiel kann der gleiche Befehlscode mit einem REQ-Nachrichtentyp eine erste Anfrageoperation definieren, während der gleiche Befehlscode mit einer SNP-Nachrichtenklasse eine zweite, unterschiedliche SNP-Operation definieren kann, neben anderen Beispielen. Die Linkschicht kann den Befehlscode verwenden, um beispielsweise zwischen einem Home-Agent-Ziel oder einem Caching-Agent-Ziel für Pakete zu unterscheiden, wenn ein Home-Agent und ein Caching-Agent die gleiche Knoten-ID gemeinsam benutzen. Zusätzlich kann die Linkschicht neben anderen möglichen Verwendungen den Befehlscode auch verwenden, um eine Paketgröße zu bestimmen.
- Wie bereits erwähnt können Flit-Header weiter ein VNA-Feld einschließen. Bei einem Beispiel kann das Feld anzeigen, dass das Flit VNA-Kredite verwendet, wenn ein VNA-Feld auf einen ersten Wert gesetzt ist. Wenn es auf einen zweiten Wert gesetzt ist, verwendet das Flit VN0- oder VN1-Kredite, neben anderen potenziellen Implementierungen. Bei einer Ausführungsform kann ein Wert anzeigen, dass das Flit ein Einzel-Slot-Flit ist, und die Slot 1- und 2-Codes können als NULL definiert sein.
- Ein virtuelles Netzwerk-(VN)-Feld kann auch bereitgestellt werden und kann für ein Flit anzeigen, ob der bzw. die Header im Flit ein spezielles virtuelles Netzwerk, wie ein virtuelles Netzwerk VN0 oder VN1 verwenden. Dies kann sowohl für Kreditierungszwecke verwendet werden als auch um anzuzeigen, zu welchem virtuellen Netzwerk eine Nachricht abfließen sollte, wenn es VNA verwendet. Wenn ein VN-Bit für das gesamte Flit bereitgestellt wird, kann jedes VNA-Flit, das mehrere Header enthält, sicherstellen, dass alle zu VN0 abfließen oder alle zu VN1 abfließen. Alternativ können mehrere VN-Bits bereitgestellt sein. Für Nicht-VNA Flits kann nur Slot 0 erlaubt sein, einen Nicht-Steuerungsbefehlscode zu haben, sodass das VN das Netzwerk des Headers anzeigen kann.
- Bei einigen Implementierungen können Slots in einem Flit unter anderem für kleine Nutzdaten-Nachrichten wie Kreditrückgaben, ACKs, NAKs verwendet werden. Bei einem Beispiel kann ein Kanalfeld bereitgestellt werden, das für die Verwendung bei Kreditrückgaben codiert sein kann. Das Codieren in Kombination mit dem VN-Feld kann den virtuellen Kanal bereitstellen, zu dem eine Kreditrückgabe zugeordnet ist. Wo eine Nachrichtenklasse mehrere Codierungen aufweist, können sie alle zu einem einzelnen Kanalwert für Kreditierung zugeordnet sein. Wenn der Kreditrückgabetyp VNA ist, kann der Kanalwert ignoriert werden. Die Verwendung von RSVD-Verschlüsselungen kann von der Empfangskomponente als ein Fehler behandelt werden. Tabelle 2 schließt Beispiele von unterschiedlichen Kanaloptionen ein, die codiert sein können. Zu beachten ist, dass jede Kombination von Bits (oder Bits, die einen Hexadezimalwert darstellen), verwendet werden kann. Als ein Beispiel kann ein niederwertiges von 3 Bits für das Codieren verwendet werden. TABELLE 2
Kanal REQ: Anfrage SNP: Snoop RSP: Antwort RSVD: Reserviert WB: Zurückschreiben NCB: Inkohärenter Bypass NCS: Inkohärenter Standard - Bestätigungs- oder ACK-Felder können auch als in einem Flit-Slot einzuschließende Header-Felder bereitgestellt werden. Ein ACK-Feld kann von der Linkschicht verwendet werden, um von einem Empfänger zu einem Sender den fehlerfreien Empfang von Flits zu kommunizieren. Eine ACK, die einen ersten Wert aufweist, zeigt an, dass eine Anzahl von Flits wie 4, 8 oder 12 ohne Fehler empfangen worden sind. Wenn ein Sender eine ACK empfängt, kann er die entsprechenden Flits von der Linkschicht-Wiederholungwarteschlange freigeben. Ack und Ack-Felder können in Kreditrückgabe-Steuerungsflits verwendet werden (z. B. LLCRD), wobei die Gesamtzahl der Bestätigungen bestimmt durch das Erstellen des vollen Bestätigungsrückgabewertes (Bestätigen ersten Teil, Ack, Bestätigung zweiten Teil) zurückgegeben wird, neben anderen Beispielen.
- Wie bereits erwähnt kann ein Header-Anzeigebit (Hdr) auch bei einigen Implementierungen bereitgestellt und für einen oder mehrere Zwecke verwendet werden. Zum Beispiel kann ein Hdr-Paket bestimmen, ob das Paket ein Header- oder Daten-Flit ist, kann anzeigen, dass das Flit der Beginn eines neuen Paketes ist, wie auch den Beginn eines verschachtelten Linkschicht-Steuerungsflits anzeigen. Der Hdr kann für das erste Flit von allen Paketen gesetzt werden. Weiter kann ein Adressfeld bereitgestellt werden, um eine globale Systemadresse zu bestimmen. Alle kohärenten Transaktionen können eine Anzahl von ausgerichteten Bytes sein und können die Anzahl an Datenbytes zurückgeben, was die Notwendigkeit von einem Teil der Adressbits eliminiert (z. B. können bei 64 Bytes die unteren 6 Bits ausgelassen werden). Für gewisse andere Pakete muss eine volle Byte-Level-Adresse verwendet werden. Ein Längenfeld kann bei einigen Beispielen bereitgestellt werden, um eine Länge der angeforderten Daten in Bytes für jede Transaktion anzuzeigen, die ein teilweises Lesen ausführt. Das teilweise Lesen spezifiziert den Offset (z. B. der untere Teil der Adressbits, die oben ausgelassen wurden) und die Länge. Gültige Längen sind 0 bis zur Anzahl an Bytes, zu denen die Transaktionen ausgerichtet sind, weniger eins, neben anderen Beispielen.
- Zusätzliche Felder können eingeschlossen sein. Ein Byte-Freigabe-Feld kann in einigen Fällen bereitgestellt sein, um die gültigen Bytes für jede Transaktion anzuzeigen, die ein partielles Schreiben durchführt. Ein Byte-Freigabe-Feld kann jegliche Anzahl von 0 bis zur Anzahl an Bytes aufweisen, zu denen die Transaktionen ausgerichtet sind, weniger eins. Ein Anfrage-TID-(RTID)-Feld kann verwendet werden, um die unterschiedlichen Anfragen von einem einzelnen Protokoll-Agenten eindeutig zu bestimmen. Ein Home-Tracker-ID-(HTID)-Feld kann in Snoop-Paketen und Snoop-Antwortpaketen verwendet werden, um die Home-Tracker-ID der Transaktion anzuzeigen, mit der der Snoop und dessen Antwort verbunden ist. Ein RHTID-Feld kann auch bei einigen Implementierungen bereitgestellt werden und abhängig vom Befehlscode flexibel eine RTID oder eine HTID verkörpern. Zum Beispiel kann für einen Snoop RHTID als RTID interpretiert werden, da Snoops ein explizites HTID Feld aufweisen. Für Antwortpakete kann andererseits beim Adressieren eines Home-Agenten RHTID als HTID interpretiert werden. Zusätzlich kann RHTID für Antwortpakete, die einen Cache-Agenten adressieren, für Befehlscodes außer FwdCnfltO als RTID interpretiert werden, neben anderen Beispielen. Bei einigen Implementierungen können andere Nachrichtentypen standardmäßig als RTID interpretiert werden.
- Bei einigen Implementierungen können zusätzliche Felder wie ein Ziel-Knoten-ID-(DNID)-Feld, Anfrager-Knoten-ID-(RNID)-Feld, Konflikt-Knoten ID-(CNID)-Feld und ein Quellen-Knoten-ID-(SNID)-Feld bereitgestellt werden. Die DNID kann das Ziel eines Paketes bestimmen. Sie kann durch die Protokollschicht bereitgestellt und vom Link und den Routing-Schichten verwendet werden, um Pakete zu ihren Zielen zu lenken. Das RNID-Feld kann den ursprünglichen anfragenden Agenten/Initiator einer Transaktion bestimmen und von der Protokollschicht bereitgestellt werden. Die CNID kann in RspCnflt-Paketen verwendet werden, um die Knoten-ID (NID) des Agenten anzuzeigen, wo der Snoop einen Konflikt erfahren hat und der FwdCnfltO gesendet werden sollte. Ein SNID-Feld kann in SR-D-Paketen verwendet werden, um die Knoten-ID des Agenten anzuzeigen, der das SR-D-Paket sendet.
- Zusätzlich kann ein Prior Cache Line State-(PCLS)-Feld bereitgestellt werden, um den Zustand der Cachezeile zu codieren, wo sie gefunden wurde entweder bei einem Peer Caching-Agenten oder in einem Heim-Knoten. Wenn beispielsweise die Cachezeile von einem Peer-Knoten im F-Zustand bereitgestellt wurde, sollte das Feld auf einen ersten Wert gesetzt werden. Wenn die Cachezeile durch einen Heim-Knoten gesendet wurde, sollte der Heim-Knoten das Feld setzen, um entweder den I-Zustand oder den S Zustand abhängig von den Snoop-Antworten, die er empfangen hat, widerzuspiegeln. Wenn ein Agent dieses Feld nicht unterstützt, sollte es immer als ein Standardwert codiert sein. Zu beachten ist, dass das PCLS-Feld für die Leistungsüberwachung/-anpassung verwendet werden kann. Ein inkohärentes geschütztes Feld kann bezeichnen, ob eine Anfrage für normalen oder geschützten Raum ist. Siehe die nachfolgende Tabelle bezüglich den Verschlüsselungen.
- Bei einigen Implementierungen kann die HPI-Linkschicht ein Mehrslot-Flit mit expliziten Feldern, wie denjenigen, die oben beschrieben sind, sowie implizite Felder unterstützen. Zum Beispiel können Slot-Nachrichtencodierungen und Befehlscodes als implizit betrachtet werden. Zum Beispiel können die Slots 1 und 2 nicht die volle Nachrichtenklassen-Verschlüsselungen transportieren, da in einigen Fällen nicht alle Bits aufgrund von Slot-Beschränkungen erforderlich sind. Slot 1 transportiert nur Nachrichtenklasse-Bit 0, und nur REQ- und SNP-Pakete können in diesem Slot erlaubt sein. REQ- und SNP-Nachrichtenklassen-Verschlüsselungen können durch das Bit 0 differenziert werden und die oberen zwei Bits können als 0-en impliziert sein. Slot 2 kann keine Nachrichtenklassen-Bits transportieren, da nur RSP-(Codierung 2)-Pakete in diesem Slot erlaubt sind. Deshalb kann die Nachrichtenklassen-Codierung für Slot 2 RSP-2 sein. Slot 2 kann auch nur einen Teil eines Befehlscodes mit einem zweiten Teil eines Befehlscodes transportieren, von dem angenommen wird, dass er ein Standardwert ist. Dies bedeutet, dass RSP-2-Pakete mit dem zweiten Teil, der den Standardwert enthält, in Slot 2 erlaubt sind. Weiter kann das komplette Befehlscode-Feld bei einer Ausführungsform durch das Kombinieren der vollen Nachrichtenklasse mit dem vollen Befehlscodefeld erstellt werden, was einen kompletten Befehlscode bildet.
- Zusätzliche Beispiele von impliziten Feldern können die Paketlänge einschließen, die durch den Befehlscode impliziert werden kann. Weiter kann die globale Unique Transaction-ID (UTID) durch Kombinieren der Anfrager-Knoten-ID mit der Anfrager-Transaktions-ID gebildet werden. Zu beachten ist, dass es ein Überlappen im RTID-Raum zwischen P2P- und Nicht-P2P-Transaktionen geben kann. Zum Beispiel kann die globale P2P Unique Transaction ID (P2PUTID) durch Kombinieren von Anfrager-Knoten-ID mit Anfrager-Transaktions-ID gebildet werden.
- Bei einigen Implementierungen, wie die in den Beispielen von
6 veranschaulichte, kann die Struktur des Flits Transaktions-IDs (TIDs) erlauben, die 11 Bits an Flit-Raum verwenden. Als Resultat können Vorbelegung und die Aktivierung von verteilten Home-Agenten entfernt werden. Das Verwenden von 11 Bits erlaubt des Weiteren bei einigen Implementierungen, dass die TID verwendet wird, ohne Nutzen für einen erweiterten TID-Modus zu haben. - Linkschicht-Logik kann bei jedem Agenten auf jeder Seite eines Links bereitgestellt werden. Ein Sender eines Agenten oder Gerätes kann Daten von höheren Schichten (z. B. einer Protokoll- oder Routing-Schicht) empfangen und ein oder mehrere Flits generieren, um die Daten zu einem Empfänger eines Remote-Agenten zu übertragen. Der Agent kann ein Flit mit zwei oder mehr Slots generieren. In einigen Fällen kann der Agent versuchen, Mehrfachnachrichten oder Pakete innerhalb eines einzelnen Flits zu kombinieren, indem er die definierten Slots verwendet.
- Linkschicht-Logik, kann bei einigen Implementierungen zugeordnete Pfade einschließen, die jedem definierten Slot entsprechen. Die Pfade können sowohl in Hardware oder Software als auch in beidem verkörpert sein. Ein Empfänger eines Agenten kann ein Flit empfangen (wie rekonstruiert unter Verwendung der physikalischen Schicht) und Linkschicht-Logik kann jeden der Slots bestimmen und die Slots unter Verwendung des jeweiligen Pfades des Slots verarbeiten. Die Linkschicht kann die Flits und die Daten, die in jedem Slot eingeschlossen sind, gemäß einem oder mehreren codierten Feldern des Flits verarbeiten, wie beispielsweise ein Steuerfeld, Header-Feld, CRC-Feld usw.
- In einem veranschaulichende Beispiel kann ein Sender eine Schreibanfrage empfangen, die mit einer ersten Transaktion verbunden ist, eine Snooping-Anfrage, die mit einer anderen zweiten Transaktion verbunden ist, und eine oder mehrere Bestätigungen oder Kreditrückgaben, die er zu einem (oder durch) ein anderes Gerät senden kann. Der Sender kann ein einzelnes Flit zu dem anderen Gerät über einen seriellen Datenlink einer Kopplungsstruktur senden, wobei das einzelne Flit Header für jedes aus Schreibanfrage, Snoop und Bestätigung (z. B. ein Abschluss) einschließt, wobei jeder Header einen entsprechenden Flit-Slot einnimmt (wie in der 3-Slot-Implementierung, die im Beispiel von
6 veranschaulicht ist). Der Sender kann Daten puffern, die er empfängt, und Möglichkeiten bestimmen, um Mehrfachnachrichten in einem einzelnen Flit zu senden. Der Empfänger kann das kompilierte Flit empfangen und jeden Slot parallel verarbeiten, um jede der drei Nachrichten zu bestimmen und zu verarbeiten, neben vielen anderen potenziellen Beispielen. - Bei einigen Implementierungen können mehrere Header in einem Mehrslot-Flit eingeschlossen sein, um Mehrfachnachrichten unter Verwendung eines einzelnen Flits zu senden. Bei einigen Beispielen können sich die entsprechenden Header jeweils auf vollständig unabhängige Transaktionen beziehen. Bei einigen Implementierungen kann die Flexibilität des Flits eingeschränkt sein, sodass jedes Flit nur Nachrichten enthält, die zu einem speziellen virtuellen Netzwerk geleitet werden. Andere Implementierungen können auf solch eine Bedingung verzichten.
- In Fällen, bei denen Slot-Nachrichten alle auf ein gemeinsames einer Vielzahl von virtuellen Netzwerken Anwendung findet, können Bits, die traditionell für die Identifikation eines entsprechenden virtuellen Netzwerkes eines Slots reserviert worden wären, zu anderen Verwendungen zugeordnet sein, die bei einigen Implementierungen, die Effizienzgewinne, die durch das Flit-Format eingeführt sind, weiter erhöhen, neben potenziell anderen Vorteilen. Bei einem Beispiel können alle Slots in einem Mehrslot-Header-Flit mit einem einzelnen virtuellen Netzwerk wie nur VNA, nur VN0 oder nur VN1 usw. ausgerichtet sein. Durch Erzwingen dessen können Pro-Slot-Bits, die ein virtuelles Netzwerk anzeigen, entfernt werden. Dies vergrößert die Effizienz der Flit-Bit-Verwendung und ermöglicht potenziell solch andere Merkmale, wie das Erweitern von 10-Bit-TIDs auf 11-Bit-TIDs, neben anderen Beispielen. Die Erweiterung auf ein 11-Bit-TID kann bei einigen Implementierungen ermöglichen, dass das TID verwendet wird, ohne Nutzen für einen erweiterten TID-Modus zu haben.
- In der HPI kann eine große CRC-Baseline verwendet werden, um Fehlererkennung bei einem größeren Mehrslot-Flit bereitzustellen. In einigen Fällen kann die CRC-Baseline selbst Fehlererkennung über die traditionelle Fehlererkennung hinaus verbessern, einschließlich anderer CRC, Implementierung. Bei einem Beispiel, wie gezeigt im beispielhaften Mehrslot-Flit von
6 , können 16 Bits pro Flit zum CRC zugeordnet werden. Infolge des größeren CRC können auch größere Nutzdaten verwendet werden. Die 16 Bits des CRC in Kombination mit einem Polynom, das mit diesen Bits verwendet wird, verbessert die Fehlererkennung. - Der Wert eines CRC-Feldes eines Flits kann von einer Bit-Datenmaske generiert werden, die die Nutzdaten des Flits darstellt. Der CRC-Wert kann basierend auf einem bestimmten Polynom generiert werden. Bei einem Beispiel, wie das Beispiel von
6 , kann ein 192-Bit-Flit ein 16-Bit-CRC-Feld einschließen. Dementsprechend können 176-(Nicht-CRC)-Bit-Datenmasken mit einem XOR-Baum (basierend auf dem ausgewählten Polynom) verwendet werden, um die 16 CRC-Bits zu erzeugen. Zu beachten ist, dass die Flit-Nutzbits vertikal über UI innerhalb von Bahnen zugeordnet sein können. Dies kann Bündelfehlerschutz aufrechterhalten. - Die Linkschicht-Logik eines Agenten kann verwendet werden, um den CRC-Wert für ein Flit zu generieren. Der generierte CRC-Wert kann im CRC-Feld seines entsprechenden Flits codiert sein. Das Flit kann dann über einen seriellen Datenlink zu einem Empfänger gesendet werden. Die Linkschicht-Logik des Empfängers kann das gleiche Polynom anwenden, das verwendet wird, um den CRC-Wert zum im CRC-Feld eines empfangenen Flits bestimmten CRC-Wertes zu generieren. Der Empfänger kann eine Checksumme vom CRC-Wert generieren und das Resultat gegen die verbleibenden Nicht-CRC-Daten des Flits vergleichen, um zu bestimmen, ob sich irgendwelche Bitfehler aus der Übertragung des Flits über den Link ergaben. Wenn ein Fehler auf einer Bahn existiert, sollte die Checksumme ein fehlangepasstes Resultat erzeugen, das einen oder mehrere Bitfehler anzeigt, neben anderen Beispielen. Zusätzlich kann bei einigen Implementierungen der CRC-Code nach der Generierung beim Sender invertiert werden und erneut vor dem Überprüfen beim Empfänger invertiert werden, um zum Beispiel zu verhindern, dass bei einem Flit potenziell alle 0-en oder alle 1-en die CRC-Prüfung bestehen.
- Die Genauigkeit eines CRC kann auf der Länge des CRC-Wertes und der Anzahl an Bahnen, die verwendet werden, um das Flit zu senden, basieren. Zum Beispiel kann die potenzielle Rate der Fehlerhäufung zunehmen, während sich die Anzahl an im Link verwendeten Bahnen verringert. Dies kann zusätzliche Komplexität in HPI-Systeme einführen, die beispielsweise Partialbreite-Senden-Zustände unterstützen.
- In einigen Fällen kann das CRC-Polynom basierend auf der maximalen Gesamtlänge des zu schützenden Blocks (Daten + CRC-Bits), den gewünschten Fehlersicherungsmerkmalen und der Art von Ressourcen für das Implementieren des CRC sowie der gewünschten Leistung konzipiert sein. Bei einigen Beispielen kann ein CRC-Polynom entweder von einem nicht reduzierbaren Polynom oder einem nicht reduzierbaren Polynom mal dem Faktor, um alle Fehler zu erkennen, die eine ungerade Zahl von Bits beeinträchtigen, abgeleitet sein. In einigen Fällen kann jedoch das Auswählen eines reduzierbaren Polynoms aufgrund dessen, dass Ringe Nullteiler usw. aufweisen, in verpassten Fehlern resultieren.
- Bei einer beispielhaften Implementierung kann ein einfaches Polynom als der Generator für einen CRC-Code verwendet werden, um einen resultierenden CRC-Code mit der maximalen gesamten Blocklänge auszustatten. Wenn zum Beispiel r der Grad des einfachen Generatorpolynoms ist, dann kann die maximale Blocklänge (2r – 1) sein und der damit verbundene Code kann in der Lage sein, jegliche Einzelbit- oder Doppelbitfehler zu erkennen. Bei weiteren Implementierungen kann ein Generatorpolynom g(x) = p(x)(1 + x) verwendet werden, wobei p(x) ein einfaches Polynom des Grades (r – 1) ist, eine maximale Blocklänge (2r-1 – 1) ist und der resultierende Code fähig ist, Einzel-, Doppel- und Dreifachfehler zu erkennen, neben anderen Beispielen.
- Ein Polynom g(x), das andere Faktorenzerlegungen zulässt, kann verwendet werden, um die maximale gesamte Blocklänge mit einer gewünschten Fehlererkennungsleistung auszugleichen. Zum Beispiel sind BCH-Codes eine leistungsstarke Klasse von solchen Polynomen. Unabhängig von den Reduzierbarkeitseigenschaften eines Generatorpolynoms des Grades r, wenn es den Begriff „+1” einschließt, kann der Code in der Lage sein, Fehlerbilder zu erkennen, die auf ein Fenster von r angrenzenden Bits beschränkt sind. Diese Muster können als „Fehlerhäufungen” bezeichnet werden. Solche Fehlerhäufungen können zum Beispiel resultieren, wenn ein Fehler eine der Bahnen eines Links beeinträchtigt.
- Bei einem speziellen Beispiel kann ein 192-Bit-Flit ein 16-Bit-CRC-Feld einschließen. Ein 16-Bit-CRC-Polynom kann in der Linkschicht-Logik implementiert sein, um Werte des CRC-Feldes zu generieren. Bei einer Ausführungsform kann das Polynom die Erkennung von 1-Bit-, 2-Bit-, 3-Bit- und 4-Bit-Fehlern, die Erkennung von Fehlern der Burstlänge 16 oder weniger erlauben, wobei nur 1:216 von allen anderen Fehlerzuständen unbemerkt bleiben. Bei einem speziellen Beispiel kann das verwendete 16-Bit-CRC-Polynom 0x1b7db (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1) sein, um eine XOR-Tiefe von 93, 4-Bit-Erkennung des statistischen Fehlers und 16-Bit-Burstschutz neben anderen potenziellen Implementierungen und Alternativen bereitzustellen.
- Wie bereits erwähnt, können die Fehlererkennungseigenschaften eines CRC auf der Länge des CRC basieren. Zum Beispiel kann im Fall von einem 16-Bit-CRC, das ein 192-Bit-Flit schützt, die Fehlererkennung Fehler der Burstlänge 16 oder weniger erfassen. Solch eine Implementierung kann effektiv im Wesentlichen alle Einbahn-Fehler erfassen, die bei einem Link auftreten könnten, das 12 oder mehr Bahnen einsetzt, um das Flit zu senden. Bei Links oder Link-Zuständen, die weniger Bahnen verwenden, um das Flit zu senden, kann ein 16-Bit-CRC jedoch unzureichend sein. Zum Beispiel kann ein Ausfallen oder Fehler auf einer einzelnen Bahn eines 8-Bahn-Links in Fehlern mit Burstlängen von bis zu 24 Bits resultieren.
- Bei einigen Implementierungen kann ein rollender CRC eingesetzt werden, um die Fehlererkennungseigenschaften zu erweitern, die durch ein Flit-Format bereitgestellt werden, das eine feste Anzahl von Bits zu einem CRC zuordnet. Bei einer Ausführungsform kann ein rollender CRC, der auf zwei oder mehr CRC-Polynomen und zwei oder mehr entsprechenden XOR-Bäumen basiert, bereitgestellt werden (wenigstens bei einigen HPI-konformen Geräten). Für eine Sequenz von zwei oder mehr Flits kann ein erster CRC-Code durch das erste Polynom für ein erstes Flit generiert werden. Für das zweite Flit kann das zweite CRC-Polynom verwendet werden, um einen zweiten CRC-Code und so weiter zu generieren. Der erste durch das erste Polynom generierte CRC-Code kann mit dem zweiten CRC-Code eine XOR-Operation ausführen, der durch das zweite Polynom generiert ist, um einen rollenden CRC-Wert zu erzeugen. Der rollende CRC-Wert kann an den Empfänger (z. B. im CRC-Feld eines Flits) bereitgestellt werden. Der rollende CRC-Wert kann effektiv den Wert von mehreren Flits von Daten reflektieren, die die Fähigkeit des Systems verbessern, Bitfehler von höheren Burstlängen zu erkennen, während keine zusätzlichen Nutzdaten für zusätzliche CRC-Bits geopfert werden, neben anderen Beispielen.
- Bei einer Ausführungsform, wird ein rollender CRC, der auf zwei CRC-16-Gleichungen basiert, verwendet. Zwei 16-Bit-Polynome, können verwendet werden, das Polynom vom HPI CRC-16 und ein zweites Polynom. Das zweite Polynom hat die kleinste Anzahl an Gates, um einen rollenden 32-Bit-CRC-Algorithmus zu implementieren, der die Eigenschaften von 1) der Erkennung von allen 1–7 Bitfehlern; 2) pro Bahn-Burstschutz bei x8 Linkbreiten (um 24 UI in einer 8-Bahn-Länge abzudecken); 3) Erkennen von allen Fehlern der Burstlänge 16 oder weniger; und 4) nur 1:232 von allen anderen Fehlerzuständen bleiben unbemerkt, realisiert. Bei einem Beispiel kann das zweite Polynom 0x10147 (x16 + x8 + x6 + x2 + x1 + 1) umfassen. Andere beispielhafte Implementierungen können die oben veranschaulichten Prinzipien wie Implementierungen, die auf Flits einer unterschiedlichen Länge maßgeschneidert sind, oder Systeme mit Links, die eine unterschiedliche (höhere oder niedrigere) minimale Bahnbreite mit entsprechenden definierten Polynomen und CRC-Feldlängen gemäß den speziellen Designs der Implementierungen unterstützen, einsetzen.
- Die HPI kann in jede Vielzahl von Computergeräten und Systemen eingebunden sein, die neben anderen Beispielen Mainframes, Serversysteme, Personal-Computer, tragbare Rechner (wie Tablets, Smartphones, persönliche Digitalsysteme usw.), intelligente Apparate, Spiele- oder Unterhaltungskonsolen und Set-Top-Boxen einschließen. Zum Beispiel veranschaulicht
11 ein beispielhaftes Computersystem1100 gemäß einigen Implementierungen. Wie in11 gezeigt, ist das Mehrprozessorsystem1100 ein System mit einem Punkt-zu-Punkt-Kopplungsstruktursystem und umfasst einen ersten Prozessor1170 und einen zweiten Prozessor1180 , die über eine Punkt-zu-Punkt-Kopplungsstruktur1150 gekoppelt sind. Jeder der Prozessoren1170 und1180 kann eine Variante eines Prozessors sein. Bei einer Ausführungsform sind1152 und1154 Teil eines seriellen, kohärenten Punkt-zu-Punkt-Kopplungsstrukturgefüges, wie eine hochleistungsfähige Architektur. Als Resultat kann die Erfindung innerhalb der QPI-Architektur implementiert sein. - Obwohl nur zwei Prozessoren
1170 ,1180 gezeigt sind, versteht es sich, dass der Umfang der vorliegenden Erfindung nicht derart beschränkt ist. Bei anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein. - Die Prozessoren
1170 und1180 sind jeweils mit integrierten Speichercontroller-Einheiten1172 und1182 gezeigt. Der Prozessor1170 schließt außerdem als Teil seiner Bus-Controller-Einheiten Punkt-zu-Punkt-Schnittstellen (P-P)1176 und1178 ein; ähnlich schließt der zweite Prozessor1180 die P-P-Schnittstellen1186 und1188 ein. Die Prozessoren1170 ,1180 können Informationen über eine P-P-Schnittstelle1150 unter Verwendung der P-P-Schnittstellenschaltungen1178 ,1188 austauschen. Wie in11 gezeigt, koppeln die IMCs1172 und1182 die Prozessoren an die jeweiligen Speicher, namentlich an einen Speicher1132 und einen Speicher1134 , die Teile eines Hauptspeichers sein können, der lokal an den jeweiligen Prozessoren angeschlossen ist. - Die Prozessoren
1170 ,1180 tauschen jeweils Daten mit einem Chipsatz1190 über einzelne P-P-Schnittstellen1152 ,1154 aus, wobei die P-P-Schnittstellenschaltungen1176 ,1194 ,1186 ,1198 verwendet werden. Der Chipsatz1190 tauscht auch Informationen mit einer hochleistungsfähigen Grafikschaltung1138 über eine Schnittstellenschaltung1192 entlang einer hochleistungsfähigen Grafikkopplungsstruktur1139 aus. - In jedem Prozessor kann ein gemeinsam genutzter Cache (nicht abgebildet) in jedem Prozessor oder außerhalb von den beiden Prozessoren eingeschlossen sein, der jedoch mit den Prozessoren über eine P-P-Kopplungsstruktur derart verbunden ist, dass eine (oder beide) der lokalen Cache-Informationen der Prozessoren im gemeinsam benutzten Cache gespeichert werden können, wenn ein Prozessor in einen Energiesparmodus versetzt wird.
- Der Chipsatz
1190 kann über die Schnittstelle1196 mit einem ersten Bus1116 gekoppelt sein. Bei einer Ausführungsform kann erster Bus1116 ein Peripheral Component Interconnect-(PCI)-Bus sein, oder ein Bus, wie z. B. PCI Express-Bus oder ein anderer IC-Interconnect-Bus der 3. Generation sein, obwohl der Umfang der vorliegenden Erfindung nicht derart beschränkt ist. - Wie in
11 gezeigt, sind verschiedene I/O-Geräte1114 mit dem ersten Bus1116 gekoppelt zusammen mit einer Busbrücke1118 , die den ersten Bus1116 mit einem zweiten Bus1120 koppelt. Bei einer Ausführungsform schließt der zweite Bus1120 einen Low Pin Count-(LPC)-Bus ein. Verschiedene Geräte sind mit dem zweiten Bus1120 gekoppelt einschließlich beispielsweise eine Tastatur und/oder Maus1122 , Kommunikationsgeräte1127 und eine Speichereinheit1128 wie ein Plattenlaufwerk oder ein anderes Massenspeichergerät, das häufig Befehle/Code und Daten1130 bei einer Ausführungsform einschließt. Des Weiteren ist ein Audio-I/O1124 gekoppelt mit dem zweiten Bus1120 gezeigt. Zu beachten ist, dass andere Architekturen möglich sind, bei denen die eingeschlossenen Komponenten und Kopplungsstruktur-Architekturen variieren. Ein System kann beispielsweise statt der Punkt-zu-Punkt-Architektur von11 einen Multidrop-Bus oder eine andere solche Architektur implementieren. - Obwohl die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind sich Fachleute bewusst, dass viele weitere Modifikationen und Varianten davon möglich sind. Die beigefügten Ansprüche sollen alle solchen Modifikationen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.
- Ein Design kann verschiedene Stufen durchlaufen, von der Erstellung zur Simulation zur Fertigung. Daten, die ein Design repräsentieren, können das Design auf mehrere Weise repräsentieren. Zuerst einmal, wie es bei Simulationen nützlich ist, kann die Hardware unter Benutzen einer Hardware-Beschreibungssprache oder einer anderen Funktionsbeschreibungssprache dargestellt werden. Außerdem kann ein Modell auf Schaltungsebene mit Logik- und/oder Transistor-Gattern auf einigen Stufen des Design-Verfahrens hergestellt werden. Zudem erreichen die meisten Designs irgendwann eine Datenebene, die die physische Anordnung verschiedener Geräte in dem Hardware-Modell darstellt. Wenn herkömmliche Halbleiter-Fertigungstechniken benutzt werden, können die Daten, die das Hardware-Modell darstellen, diejenigen Daten sein, die die Anwesenheit oder Abwesenheit verschiedener Merkmale auf unterschiedlichen Maskenschichten für Masken spezifizieren, die zum Herstellen des integrierten Schaltkreises benutzt werden. Bei einer Darstellung des Designs können die Daten in Form eines maschinenlesbaren Mediums gespeichert sein. Ein Speicher oder ein magnetisches oder optisches Speichermedium, wie beispielsweise eine Disc, kann das maschinenlesbare Medium sein, um Informationen zu speichern, die mittels einer optischen oder elektrischen Welle übertragen werden, die moduliert oder auf andere Weise erzeugt wird, um solche Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder das Design anzeigt oder trägt, zu einem Ausmaß übertragen wird, dass das Kopieren, Puffern oder die Weiterübertragung des elektrischen Signals durchgeführt wird, wird eine neue Kopie erstellt. So kann ein Kommunikationsdienstanbieter oder ein Netzwerkdienstanbieter auf einem konkreten maschinenlesbaren Medium zumindest zeitweise einen Artikel speichern, wie z. B. Informationen, die in eine Trägerwelle codiert sind, die Techniken von Ausführungsformen der vorliegenden Erfindung verkörpern.
- Ein Modul wie hierin verwendet bezieht sich auf jede Kombination von Hardware, Software und/oder Firmware. Als ein Beispiel schließt ein Modul Hardware, wie einen Mikrocontroller ein, der mit einem nicht flüchtigen Medium verbunden ist, um Code zu speichern, der angepasst ist, um von dem Mikrocontroller ausgeführt zu werden. Deshalb verweist die Bezugnahme auf ein Modul bei einer Ausführungsform auf die Hardware, die speziell konfiguriert ist, um den Code zu erkennen und/oder auszuführen, der auf einem nicht flüchtigen Medium gespeichert wird. Bei einer weiteren Ausführungsform verweist des Weiteren die Verwendung von einem Modul auf das nicht flüchtige Medium, das den Code einschließt, der speziell angepasst ist, um durch den Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen auszuführen. Und wie bei noch einer weiteren Ausführungsform gefolgert werden kann, kann der Begriff Modul (in diesem Beispiel) auf die Kombination aus Mikrocontroller und nicht flüchtigem Medium verweisen. Modulgrenzen, die als getrennt veranschaulicht sind, variieren herkömmlicherweise oftmals und können potenziell überlappen. Beispielsweise können ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination davon gemeinsam benutzen, während einige unabhängige Hardware, Software oder Firmware potenziell zurückgehalten wird. Bei einer Ausführungsform beinhaltet eine Verwendung des Begriffes Logik Hardware, wie z. B. Transistoren, Register oder andere Hardware, wie z. B. programmierbare Logikbaugruppen.
- Die Verwendung des Ausdrucks „konfiguriert ist” bei einer Ausführungsform, verweist auf das Anordnen, Zusammensetzen, Herstellen, zum Verkauf anbieten, Importieren und/oder Konstruieren einer Vorrichtung, Hardware, Logik oder Element, um eine vorgesehene oder bestimmte Aufgabe auszuführen. Bei diesem Beispiel ist eine Vorrichtung oder ein Element davon, das nicht arbeitet, immer noch „konfiguriert”, um eine vorgesehene Aufgabe auszuführen, wenn es konzipiert, gekoppelt, und/oder verbunden ist, um diese vorgesehene Aufgabe auszuführen. Als ein rein veranschaulichendes Beispiel kann ein Logikgatter eine 0 oder 1 während des Betriebs bereitstellen. Aber ein Logikgatter, das „konfiguriert ist”, ein Freigabesignal an einen Takt bereitzustellen, schließt nicht jedes potenzielle Logikgatter ein, das 1 oder 0 bereitstellen kann. Statt dessen ist das Logikgatter eines, das in einer Weise gekoppelt ist, sodass während des Betriebs der 1- oder 0-Ausgang den Takt ermöglicht. Einmal mehr ist zu beachten, dass die Verwendung des Begriffs „konfiguriert ist” keinen Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand einer Vorrichtung, Hardware und/oder eines Elementes konzentriert, wo im latenten Zustand die Vorrichtung, die Hardware und/oder das Element konzipiert ist, eine bestimmte Aufgabe auszuführen, wenn die Vorrichtung, die Hardware, und/oder das Element arbeiten.
- Des Weiteren verweist die Verwendung der Ausdrücke „zu”, „fähig zu” und oder „betriebsfähig zu” bei einer Ausführungsform auf eine Vorrichtung, Logik, Hardware und/oder ein Element, das auf solche Art und Weise konzipiert ist, um die Verwendung der Vorrichtung, Logik, Hardware, und/oder des Elements in einer spezifizierten Weise zu ermöglichen. Wie vorstehend ist zu beachten dass die Verwendung von „zu”, „fähig zu” und oder „betriebsfähig zu” bei einer Ausführungsform auf den latenten Zustand einer Vorrichtung, Logik, Hardware, und/oder eines Elements verweist, wo die Vorrichtung, Logik, Hardware und/oder das Element nicht arbeitet, aber auf solche Art und Weise konzipiert ist, die Verwendung einer Vorrichtung in einer spezifizierten Weise zu ermöglichen.
- Ein Wert wie hierin verwendet beinhaltet jede bekannte Darstellung einer Anzahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Die Verwendung von Logikpegeln, Logikwerten oder logischen Werten wird ebenfalls als 1-en und 0-en bezeichnet, was einfach binäre logische Zustände darstellt. Beispielweise bezieht sich eine 1 auf einen hohen Logikpegel und 0 bezieht sich auf einen niedrigen Logikpegel. Bei einer Ausführungsform kann eine Speicherzelle, wie z. B. ein Transistor oder eine Flash-Zelle, einen einzelnen logischen Wert oder mehrere logische Werte enthalten. Es wurden jedoch andere Darstellungen von Werten bei Computersystemen verwendet. Die Dezimalzahl Zehn beispielsweise kann ebenfalls als ein binärer Wert
1010 und ein hexadezimaler Buchstabe A dargestellt werden. Deshalb beinhaltet ein Wert jede Darstellung von Informationen, die in einem Computersystem enthalten sein können. - Außerdem können Zustände durch Werte oder Teile von Werten dargestellt sein. Als Beispiel kann ein erster Wert, wie z. B. eine logische Eins, einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert, wie z. B. eine logische Null, einen nicht standardmäßigen Zustand darstellen kann. Zusätzlich beziehen sich bei einer Ausführungsform die Begriffe Zurücksetzen und Setzen auf einen Standard- und einen aktualisierten Wert bzw. Zustand. Ein Standwert beinhaltet beispielsweise potenziell einen hohen logischen Wert, d. h. Zurücksetzen, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert beinhaltet, d. h. Setzen. Es ist zu beachten, dass jegliche Kombination von Werten eingesetzt werden kann, um eine beliebige Anzahl an Zuständen darzustellen.
- Die Ausführungsformen von vorstehend angeführten Verfahren, Hardware, Software, Firmware oder Code können durch Befehle oder Code implementiert sein, der auf einem maschinenzugänglichen, maschinenlesbaren oder computerlesbaren Medium gespeichert ist und durch ein Verarbeitungselement ausgeführt werden kann. Ein nicht flüchtiges maschinenzugängliches/-lesbares Medium schließt jeden Mechanismus ein, der Informationen in einer von einer Maschine wie einem Computer oder einer Elektronik lesbaren Form bereitstellt (d. h. speichert und/oder überträgt). Ein nicht flüchtiges maschinenzugängliches Medium beispielsweise beinhaltet Direktzugriffsspeicher (RAM), wie z. B. statischen RAM (SRAM) oder dynamischen RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flash-Memory-Geräte; ein elektrisches Speichergerät, optische Speichergeräte, akustische Speichergeräte; eine andere Form von Speichergeräten, um Informationen, die von flüchtigen (propagierten) Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale) usw. empfangen wurden, zu halten, die von den nicht flüchtigen Medien zu unterscheiden sind, die Informationen davon empfangen können.
- Befehle, die zum Programmieren von Logik verwendet werden, damit sie Ausführungsformen der Erfindung ausführt, können in einem Speicher in dem System wie DRAM, Cache, Flash-Speicher oder anderen Speichern gespeichert sein. Außerdem können die Befehle über ein Netzwerk oder mithilfe von anderen computerlesbaren Medien verbreitet werden. Somit kann ein maschinenlesbares Medium einen beliebigen Mechanismus zum Speichern oder Übermitteln von Informationen in einer (z. B. einem Computer) maschinenlesbaren Form umfassen, ist aber nicht beschränkt auf Disketten, optische Laufwerke, CDs, Nur-Lese-Speicher (CD-ROMs), magnetooptische Disketten, Festwertspeicher (ROM), Direktzugriffsspeicher (RAM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen nichtflüchtigen, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet mithilfe von von elektrischen, optischen, akustischen oder anderen Formen von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen usw.) verwendet wird. Dementsprechend umfasst das computerlesbare Medium eine beliebige Art von nichtflüchtigem, maschinenlesbaren Medium, das zum Speichern oder Übermitteln elektronischer Befehle oder Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form geeignet ist.
- Die folgenden Beispiele betreffen Ausführungsformen gemäß dieser Spezifikation. Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren bereitstellen, um Transaktionsdaten zu bestimmen, ein Flit zu generieren, um drei oder mehr Slots und ein gleitendes Feld einzuschließen, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots verwendet wird, und das Flit zu senden, um das Flit zu übertragen.
- Bei wenigstens einem Beispiel umfasst I/O-Logik einen Schichtstapel, der physikalische Schicht-Logik, Linkschicht-Logik und Protokollschicht-Logik umfasst.
- Bei wenigstens einem Beispiel bestehen die drei oder mehr Slots aus drei definierten Slots.
- Bei wenigstens einem Beispiel umfasst das Flit 192 Bits.
- Bei wenigstens einem Beispiel umfasst der erste von den drei Slots 72 Bits, der zweite von den drei Slots umfasst 70 Bits und der dritte Slot umfasst 18 Bits
- Bei wenigstens einem Beispiel schließen der erste Slot und der zweite Slot jeweils ein entsprechendes 50-Bit-Nutzdatenfeld ein.
- Bei wenigstens einem Beispiel erweitert das gleitende Feld das Nutzdatenfeld entweder des ersten Slots oder des zweiten Slots durch elf Bits.
- Bei wenigstens einem Beispiel ist der dritte Slot angepasst, um mit ein oder mehr aus Bestätigungen und Kreditrückgaben codiert zu sein.
- Bei wenigstens einem Beispiel umfasst das Flit weiter ein 16-Bit-Cyclic Redundancy Check-(CRC)-Feld.
- Bei wenigstens einem Beispiel umfasst das Flit weiter ein 11-Bit-Transaktionskennungs-(TID)-Feld.
- Bei wenigstens einem Beispiel schließt jeder Slot einen Header einer individuellen Nachricht ein.
- Bei wenigstens einem Beispiel ist jede Nachricht mit einer entsprechenden Transaktion innerhalb eines speziellen virtuellen Netzwerkes verbunden.
- Bei wenigstens einem Beispiel umfasst das Flit weiter eine virtuelle Netzwerk-Kennung, um das spezielle virtuelle Netzwerk zu bestimmen.
- Bei wenigstens einem Beispiel sind Nachrichten-Header, die mit Transaktionen in unterschiedlichen virtuellen Netzwerken verbunden sind, in ausgeprägten Flits eingeschlossen.
- Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren bereitstellen, um ein Flit zu empfangen, wobei das Flit drei oder mehr Slots einschließt, die im Flit einzuschließen sind, und ein gleitendes Feld, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots verwendet wird, und jeden Slot zu verarbeiten, um einen oder mehrere Header in Zusammenhang mit einer oder mehreren Transaktionen zu bestimmen.
- Bei wenigstens einem Beispiel umfassen der eine oder die mehreren Header drei oder mehr Header.
- Bei wenigstens einem Beispiel entspricht jeder der Header einer entsprechenden mit einer unterschiedlichen, entsprechenden Transaktion verbundenen Nachricht.
- Bei wenigstens einem Beispiel ist jede der Transaktionen in einem speziellen virtuellen Netzwerk eingeschlossen.
- Bei wenigstens einem Beispiel kann bestimmt werden, welchen von den ersten und zweiten Slots das gleitende Feld erweitert.
- Bei wenigstens einem Beispiel ist der dritte Slot angepasst, um mit ein oder mehr aus Bestätigungen und Kreditrückgaben codiert zu sein.
- Bei wenigstens einem Beispiel kann das Flit von einem ersten Gerät zu einem zweiten Gerät über den Datenlink gesendet werden. Die ersten zweiten Geräte können Mikroprozessoren, Grafikbeschleuniger und andere Geräte einschließen.
- Ein oder mehrere Beispiele können weiter einen Schichtenprotokollstapel bereitstellen, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein 192-Bit-Flit über den seriellen Differenzlink zu senden.
- Bei wenigstens einem Beispiel schließt das 192-Bit-Flit einen 16-Bit-CRC ein
- Ein oder mehrere Beispiele können weiter einen Schichtenprotokollstapel bereitstellen, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein Flit über den seriellen Differenzlink zu senden, wobei das Flit ein 11-Bit-Transaktionskennungsfeld einschließt.
- Ein oder mehr Beispiele können weiter einen Schichtenprotokollstapel bereitstellen, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein Header-Flit zusammenzufügen, das eine Vielzahl von Slots einschließt.
- Bei wenigstens einem Beispiel schließt die Vielzahl von Nutzdaten-Slots 3 Slots ein.
- Bei wenigstens einem Beispiel sind die ersten und zweiten Slots der 3 Slots in der Größe gleich und der dritte Slot der 3 Slots ist kleiner als der erste Slot.
- Bei wenigstens einem Beispiel können spezielle Steuerungsflits alle 3 Slots verbrauchen.
- Bei wenigstens einem Beispiel schließt das Flit einen 16-Bit-CRC ein.
- Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren bereitstellen, um Transaktionsdaten zu bestimmen, ein Flit von den Transaktionsdaten zu generieren, wobei das Flit zwei oder mehr Slots, Nutzdaten und ein CRC-Feld einschließt, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist, und das Flit zum Gerät über den seriellen Datenlink zu senden.
- Bei wenigstens einem Beispiel umfasst die I/O-Logik einen Schichtstapel, der physikalische Schicht-Logik, Linkschicht-Logik und Protokollschicht-Logik umfasst.
- Bei wenigstens einem Beispiel bestehen die zwei oder mehr Slots aus drei definierten Slots.
- Bei wenigstens einem Beispiel umfasst das Flit 192 Bits.
- Bei wenigstens einem Beispiel umfasst der erste von den drei Slots 72 Bits, der zweite von den drei Slots umfasst 70 Bits und der dritte Slot umfasst 18 Bits
- Bei wenigstens einem Beispiel ist der dritte Slot angepasst, um mit ein oder mehr aus Bestätigungen und Kreditrückgaben codiert zu sein.
- Bei wenigstens einem Beispiel umfassen die Flit-Nutzdaten 176 Bits.
- Bei wenigstens einem Beispiel wird der CRC-Wert unter Verwendung eines XOR-Baums generiert und der XOR-Baum verkörpert ein Generatorpolynom. Das Polynom kann g(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1) umfassen. Der CRC-Wert kann ein rollender CRC-Wert sein.
- Bei wenigstens einem Beispiel umfasst der Datenlink wenigstens 8 Bahnen in einem ersten Zustand und das Flit umfasst 192 Bits.
- Bei wenigstens einem Beispiel umfasst der erste Zustand einen Partialbreite-Senden-Zustand, und ein Volle-Breite-Senden-Zustand umfasst einen 20-Bahn-Link.
- Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium und ein Verfahren bereitstellen, um ein Flit zu empfangen, wobei das Flit zwei oder mehr Slots, Nutzdaten und ein CRC-Feld einschließt, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist, einen Vergleichs-CRC-Wert von den Nutzdaten zu bestimmen und den Vergleichs-CRC-Wert mit dem im Flit eingeschlossenen CRC-Wert zu vergleichen.
- Bei wenigstens einem Beispiel können ein oder mehrere Fehler bei einem Datenlink basierend auf dem Vergleich erkannt werden.
- Bei wenigstens einem Beispiel umfasst das Flit 192 Bits, ein erster von den Slots umfasst 72 Bits, ein zweiter von den Slots umfasst 70 Bits und ein dritter von Slots umfasst 18 Bits.
- Bei wenigstens einem Beispiel kann der CRC-Wert unter Verwendung eines XOR-Baums abgeleitet werden, der ein Generatorpolynom verkörpert. Das Generatorpolynom kann g(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 +1) umfassen.
- Bei wenigstens einem Beispiel ist das Generatorpolynom das gleiche, das verwendet wird, um den im Flit eingeschlossenen CRC-Wert zu generieren.
- Bei wenigstens einem Beispiel umfasst der CRC-Wert einen rollenden CRC-Wert.
- Bei wenigstens einem Beispiel kann das Flit zwischen einem ersten und zweiten Gerät gesendet werden. Die ersten und zweiten Geräte können Mikroprozessoren, grafische Beschleuniger oder andere Geräte sein.
- Ein oder mehrere Beispiele können weiter einen Schichtenprotokollstapel bereitstellen, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, wobei der Schichtenprotokollstapel weiter konfiguriert ist, einen rollenden CRC für ein Flit zu berechnen, das auf dem Link zu senden ist, wobei der rollende CRC auf wenigstens zwei Polynomgleichungen basiert.
- Bei wenigstens einem Beispiel bestimmt das zweite Polynom der zwei, ob alle von 1–7 Bitfehlern pro Bahn-Burstschutz bestimmt sind und Fehler der Burstlänge 16 oder weniger erkannt wurden.
- Ein oder mehrere Beispiele können weiter einen Schichtenprotokollstapel bereitstellen, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein Header-Flit zusammenzufügen, das eine Vielzahl von Slots einschließt.
- Bei wenigstens einem Beispiel schließt die Vielzahl von Nutzdaten-Slots 3 Slots ein.
- Bei wenigstens einem Beispiel sind die ersten und zweiten Slots der 3 Slots in der Größe gleich und der dritte Slot der 3 Slots ist kleiner als der erste Slot.
- Bei wenigstens einem Beispiel können die speziellen Steuerungsflits alle 3 Slots verbrauchen.
- Bei wenigstens einem Beispiel schließt das Flit einen 16-Bit-CRC ein.
- Verweise in dieser Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder ein Charakteristikum, das/die in Verbindung mit der Ausführungsform beschrieben wird, zumindest in einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit beziehen sich die Verwendungen des Ausdrucks „in einer Ausführungsform” an verschiedenen Stellen in dieser gesamten Beschreibung nicht notwendigerweise alle auf dieselbe Ausführungsform. Des Weiteren können die bestimmten Merkmale, Strukturen oder Charakteristika auf jegliche geeignete Weise in einer oder mehreren Ausführungsformen kombiniert sein.
- Bei der vorstehenden Beschreibung wurde eine ausführliche Beschreibung mit Bezug auf spezifische beispielhafte Ausführungsformen gegeben. Es ist jedoch offensichtlich, dass verschiedene Modifizierungen und Änderungen daran vorgenommen werden können, ohne vom weiteren Sinn und Umfang der Erfindung, wie in den angehängten Ansprüchen angeführt, abzuweichen. Die Beschreibung und Zeichnungen sind demnach eher in veranschaulichendem Sinne als in einschränkendem Sinne anzusehen. Des Weiteren bezieht sich die vorstehende Verwendung von Ausführungsform und anderer beispielhafter Sprache nicht notwendigerweise auf die gleiche Ausführungsform oder das gleiche Beispiel, sondern kann sich auf unterschiedliche und verschiedene Ausführungsformen sowie potenziell die gleiche Ausführungsform beziehen.
Claims (78)
- Vorrichtung, die umfasst: I/O-Logik, um: Transaktionsdaten zu bestimmen; ein Flit zu generieren, um drei oder mehr Slots einzuschließen und ein gleitendes Feld, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots zu verwenden ist; und das Flit zu senden.
- Vorrichtung nach Anspruch 1, wobei die I/O-Logik einen Schichtstapel umfasst der physikalische Schicht-Logik, Linkschicht-Logik und Protokollschicht-Logik umfasst.
- Vorrichtung nach Anspruch 1, wobei die drei oder mehr Slots aus drei definierten Slots bestehen.
- Vorrichtung nach Anspruch 3, wobei das Flit 192 Bits umfasst.
- Vorrichtung nach Anspruch 4, wobei der erste von den drei Slots 72 Bits umfasst, der zweite von den drei Slots 70 Bits umfasst und der dritte Slot 18 Bits umfasst.
- Vorrichtung nach Anspruch 5, wobei der erste Slot und der zweite Slot jeweils ein entsprechendes 50-Bit-Nutzdatenfeld einschließt.
- Vorrichtung nach Anspruch 6, wobei das gleitende Feld das Nutzdatenfeld entweder des ersten Slots oder des zweiten Slots durch elf Bits erweitert.
- Vorrichtung nach Anspruch 5, wobei der dritte Slot angepasst ist, um mit ein oder mehr aus Bestätigungen und Kreditrückgaben codiert zu werden.
- Vorrichtung nach Anspruch 5, wobei das Flit weiter ein 16-Bit-Cyclic Redundancy Check-(CRC)-Feld umfasst.
- Vorrichtung nach Anspruch 5, wobei das Flit weiter ein 11-Bit-Transaktionskennungs-(TID)-Feld umfasst.
- Vorrichtung nach Anspruch 1, wobei jeder Slot einen Header einer individuellen Nachricht einschließt.
- Vorrichtung nach Anspruch 11, wobei jede Nachricht mit einer entsprechenden Transaktion innerhalb eines speziellen virtuellen Netzwerkes verbunden ist.
- Vorrichtung nach Anspruch 12, wobei das Flit weiter eine virtuelle Netzwerk-Kennung umfasst, um das spezielle virtuelle Netzwerk zu bestimmen.
- Vorrichtung nach Anspruch 12, wobei Nachrichten-Header, die mit Transaktionen in unterschiedlichen virtuellen Netzwerken verbunden sind, in individuellen Flits eingeschlossen werden.
- Vorrichtung, die umfasst: I/O-Logik, um: ein Flit zu empfangen, wobei das Flit drei oder mehr Slots einschließt, die im Flit einzuschließen sind, und ein gleitendes Feld, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots verwendet wird; und jeden Slot zu verarbeiten, um einen oder mehrere Header, die in Zusammenhang mit einer oder mehreren Transaktionen stehen, zu bestimmen.
- Vorrichtung nach Anspruch 15, wobei der eine oder die mehreren Header drei oder mehr Header umfassen.
- Vorrichtung nach Anspruch 16, wobei jeder der Header einer entsprechenden Nachricht entspricht, die mit einer unterschiedlichen, entsprechenden Transaktion verbunden ist.
- Vorrichtung nach Anspruch 17, wobei jede der Transaktionen in einem speziellen virtuellen Netzwerk eingeschlossen ist.
- Vorrichtung nach Anspruch 15, wobei die drei oder mehr Slots aus drei definierten Slots bestehen.
- Vorrichtung nach Anspruch 19, wobei das Flit 192 Bits umfasst.
- Vorrichtung nach Anspruch 20, wobei der erste von den drei Slots 72 Bits umfasst, der zweite von den drei Slots 70 Bits umfasst und der dritte Slot 18 Bits umfasst.
- Vorrichtung nach Anspruch 21, wobei das gleitende Feld das Nutzdatenfeld entweder des ersten Slots oder des zweiten Slots erweitert.
- Vorrichtung nach Anspruch 22, wobei die I/O-Logik weiter bestimmt, welchen von den ersten und zweiten Slots das gleitende Feld erweitern soll.
- Vorrichtung nach Anspruch 21, wobei der dritte Slot angepasst ist, um mit ein oder mehr aus Bestätigungen und Kreditrückgaben codiert zu werden.
- Verfahren, das umfasst: das Bestimmen von Transaktionsdaten, die zu einem Gerät auf einem seriellen Datenlink zu senden sind; das Generieren von einem oder mehreren Flits von den Transaktionsdaten, wobei jedes Flit drei oder mehr Slots und ein gleitendes Feld einschließt, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots verwendet wird; und das Senden des Flits zu dem Gerät über den seriellen Datenlink.
- Verfahren nach Anspruch 25, wobei das Flit 192 Bits umfasst, ein erster von den Slots 72 Bits umfasst, ein zweiter von den Slots 70 Bits umfasst und ein dritter von den Slots 18 Bits umfasst.
- Verfahren nach Anspruch 25, wobei das gleitende Feld elf Bits umfasst.
- System umfassend: ein erstes Gerät; und ein zweites Gerät, das kommunikativ mit dem ersten Gerät unter Verwendung eines seriellen Datenlinks gekoppelt ist, wobei das zweite Gerät ein Linkschichtmodul einschließt, das durch wenigstens einen Prozessor ausgeführt wird, um: Transaktionsdaten zu bestimmen, die zum ersten Gerät auf dem Datenlink zu senden sind; von den Transaktionsdaten ein oder mehrere Flits zu generieren, wobei jedes Flit drei oder mehr Slots einschließt, die im Flit einzuschließen sind, und ein gleitendes Feld, das als eine Erweiterung von irgendwelchen von zwei oder mehr der Slots verwendet wird; und das Senden des Flits zum ersten Gerät über den Datenlink.
- System nach Anspruch 28, wobei das erste Gerät einen Mikroprozessor umfasst.
- System nach Anspruch 29, wobei das zweite Gerät einen zweiten Mikroprozessor umfasst.
- System nach Anspruch 29, wobei das zweite Gerät einen Grafikbeschleuniger umfasst.
- System nach Anspruch 28, wobei das erste Gerät Linkschicht-Logik einschließt, um: die Flits über den Datenlink zu empfangen; und jeden Slot zu verarbeiten, um einen oder mehrere Header, die in Zusammenhang mit einer oder mehreren Transaktionen stehen, zu bestimmen.
- Vorrichtung, die umfasst einen Schichtenprotokollstapel, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein 192-Bit-Flit über den seriellen Differenzlink zu senden.
- Vorrichtung nach Anspruch 33, wobei das 192-Bit-Flit einen 16-Bit-CRC einschließt.
- Vorrichtung, die umfasst einen Schichtenprotokollstapel, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein Flit über den seriellen Differenzlink zu senden, wobei das Flit ein 11-Bit-Transaktionskennungsfeld einschließt.
- Vorrichtung, die umfasst einen Schichtenprotokollstapel, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein Header-Flit zusammenzufügen, der eine Vielzahl von Slots einschließt.
- Vorrichtung nach Anspruch 36, wobei die Vielzahl von Nutzdaten-Slots 3 Slots einschließt.
- Vorrichtung nach irgendeinem der Ansprüche 36–37, wobei die ersten und zweiten Slots der 3 Slots in der Größe gleich und der dritte Slot der 3 Slots kleiner als der erste Slot ist.
- Vorrichtung nach irgendeinem der Ansprüche 36–38, wobei spezielle Steuerungsflits alle 3 Slots verbrauchen können.
- Vorrichtung nach irgendeinem der Ansprüche 36–39, wobei das Flit einen 16-Bit-CRC einschließt.
- Vorrichtung, die umfasst: I/O-Logik, um: Transaktionsdaten zu bestimmen ein Flit von den Transaktionsdaten zu generieren, wobei das Flit zwei oder mehr Slots, Nutzdaten und ein Cyclic Redundancy Check-(CRC)-Feld einschließt, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist; und das Flit zu dem Gerät über den seriellen Datenlink zu senden.
- Vorrichtung nach Anspruch 41, wobei die I/O-Logik einen Schichtstapel umfasst der physikalische Schicht-Logik, Linkschicht-Logik und Protokollschicht-Logik umfasst.
- Vorrichtung nach Anspruch 41, wobei die zwei oder mehr Slots aus drei definierten Slots bestehen.
- Vorrichtung nach Anspruch 43, wobei das Flit 192 Bits umfasst.
- Vorrichtung nach Anspruch 44, wobei der erste von den drei Slots 72 Bits umfasst, der zweite von den drei Slots 70 Bits umfasst und der dritte Slot 18 Bits umfasst.
- Vorrichtung nach Anspruch 45, wobei der dritte Slot angepasst ist, um mit ein oder mehr aus Bestätigungen und Kreditrückgaben codiert zu werden.
- Vorrichtung nach Anspruch 45, wobei die Flit-Nutzdaten 176 Bits umfassen.
- Vorrichtung nach Anspruch 41, wobei die I/O Logik weiter den CRC-Wert unter Verwendung eines XOR-Baums generiert.
- Vorrichtung nach Anspruch 48, wobei der XOR-Baum ein Generatorpolynom verkörpert.
- Vorrichtung nach Anspruch 49, wobei das Polynom g(x) = (x16 + x15 + x13+ x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1) umfasst.
- Vorrichtung nach Anspruch 41, wobei die I/O Logik weiter einen rollenden CRC-Wert generiert.
- Vorrichtung nach Anspruch 51, wobei der Datenlink in einem ersten Zustand wenigstens 8 Bahnen umfasst und das Flit 192 Bits umfasst.
- Vorrichtung nach Anspruch 52, wobei der erste Zustand einen Partialbreite-Senden-Zustand umfasst und ein Volle-Breite-Senden-Zustand einen 20-Bahn-Link umfasst.
- Vorrichtung, die umfasst: I/O-Logik, um: ein Flit zu empfangen, wobei das Flit zwei oder mehr Slots, Nutzdaten und ein Cyclic Redundancy Check-(CRC)-Feld einschließt, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist; und einen Vergleich-CRC-Wert von den Nutzdaten zu bestimmen; und den Vergleich-CRC-Wert mit dem im Flit eingeschlossenen CRC-Wert zu vergleichen.
- Vorrichtung nach Anspruch 54, wobei die I/O Logik weiter einen oder mehrere Fehler beim Datenlink basierend auf dem Vergleich erkennt.
- Vorrichtung nach Anspruch 54, wobei das Flit 192 Bits umfasst, ein erster von den Slots 72 Bits umfasst, ein zweiter von den Slots 70 Bits umfasst und ein dritter von den Slots 18 Bits umfasst.
- Vorrichtung nach Anspruch 54, wobei die I/O Logik weiter den CRC-Wert unter Verwendung eines XOR-Baums ableitet.
- Vorrichtung nach Anspruch 57, wobei der XOR-Baum ein Generatorpolynom verkörpert.
- Vorrichtung nach Anspruch 58, wobei das Generatorpolynom g(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1) umfasst.
- Vorrichtung nach Anspruch 58, wobei das Generatorpolynom das gleiche ist, das verwendet wird, um den im Flit eingeschlossenen CRC-Wert zu generieren.
- Vorrichtung nach Anspruch 54, wobei der CRC-Wert einen rollenden CRC-Wert umfasst.
- Verfahren, das umfasst: das Empfangen eines Flits über einen seriellen Datenlink, wobei das Flit ein definiertes Format aufweist und das Format zwei oder mehr Slots definiert, die im Flit einzuschließen sind, und das Flit Nutzdaten und ein CRC-Feld einschließt, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist; und das Verarbeiten des Flits, um einen Vergleich-CRC-Wert von den Nutzdaten abzuleiten; und den Vergleich-CRC-Wert mit dem im Flit eingeschlossenen CRC-Wert zu vergleichen.
- Verfahren nach Anspruch 62, wobei das Flit 192 Bits umfasst, ein erster von den Slots 72 Bits umfasst, ein zweiter von den Slots 70 Bits umfasst und ein dritter von den Slots 18 Bits umfasst.
- Verfahren nach Anspruch 63, wobei die Nutzdaten 176 Bits umfassen.
- Verfahren nach Anspruch 64, weiter umfassend einen Fehler basierend auf dem Vergleichen zu erkennen.
- Verfahren nach Anspruch 62, weiter umfassend das Bestimmen, dass der CRC-Wert ein rollender CRC-Wert ist, wobei der CRC-Wert als ein rollender CRC-Wert verarbeitet wird.
- System umfassend: ein erstes Gerät; und ein zweites Gerät, das kommunikativ mit dem ersten Gerät unter Verwendung eines seriellen Datenlinks gekoppelt ist, wobei das zweite Gerät ein Linkschichtmodul einschließt, das durch wenigstens einen Prozessor ausgeführt wird, um: Transaktionsdaten zu bestimmen, die zum ersten Gerät auf dem Datenlink zu senden sind; ein Flit zu generieren, das ein definiertes Format aufweist, wobei das Format zwei oder mehr Slots definiert, die im Flit einzuschließen sind, und das Flit Nutzdaten und ein CRC-Feld einschließt, das mit einem 16-Bit-CRC-Wert codiert ist, der basierend auf den Nutzdaten generiert ist; und das Senden des Flits zum ersten Gerät über den Datenlink.
- System nach Anspruch 67, wobei das erste Gerät einen Mikroprozessor umfasst.
- System nach Anspruch 68, wobei das zweite Gerät einen zweiten Mikroprozessor umfasst.
- System nach Anspruch 68, wobei das zweite Gerät einen Grafikbeschleuniger umfasst.
- System nach Anspruch 67, wobei das erste Gerät Linkschicht-Logik einschließt, um: und das Flit zu empfangen; und einen Vergleich-CRC-Wert von den Nutzdaten abzuleiten; und den Vergleich-CRC-Wert mit dem im Flit eingeschlossenen CRC-Wert zu vergleichen, um einen Fehler beim Datenlink zu erkennen.
- Vorrichtung, die umfasst: einen Schichtenprotokollstapel, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, um mit einem seriellen Differenzlink gekoppelt zu werden, und wobei der Schichtenprotokollstapel weiter konfiguriert ist, einen rollenden CRC für ein Flit zu berechnen, das auf dem Link gesendet werden soll, wobei der rollende CRC auf wenigstens zwei Polynomgleichungen basiert.
- Vorrichtung nach Anspruch 72, wobei das zweite Polynom der zwei bestimmt, ob alle von 1–7 Bitfehlern pro Bahn-Burstschutz erkannt sind, und Fehler der Burstlänge 16 oder weniger erkannt sind.
- Vorrichtung, die umfasst: ein Schichtenprotokollstapel, der wenigstens eine Linkschicht und eine physikalische Schicht einschließt, wobei der Schichtenprotokollstapel konfiguriert ist, mit einem seriellen Differenzlink gekoppelt zu werden und wobei der Schichtenprotokollstapel weiter konfiguriert ist, ein Header-Flit zusammenzufügen, das eine Vielzahl von Slots einschließt.
- Vorrichtung nach Anspruch 74, wobei die Vielzahl von Nutzdaten-Slots 3 Slots einschließt.
- Vorrichtung nach irgendeinem der Ansprüche 74–75, wobei die ersten und zweiten Slots der 3 Slots in der Größe gleich und der dritte Slot der 3 Slots kleiner als der erste Slot ist.
- Vorrichtung nach irgendeinem der Ansprüche 74–76, wobei spezielle Steuerungsflits alle 3 Slots verbrauchen können.
- Vorrichtung nach irgendeinem der Ansprüche 74–77, wobei das Flit einen 16-Bit-CRC einschließt.
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/034341 WO2014065884A1 (en) | 2012-10-22 | 2013-03-28 | High performance interconnect link layer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112013001360T5 true DE112013001360T5 (de) | 2014-11-27 |
DE112013001360B4 DE112013001360B4 (de) | 2023-03-23 |
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 (12)
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 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
---|---|---|
DE112013007767B3 (de) | Vorrichtung und system zur verbesserten nutzung von datenverbindungen | |
DE102018006546A1 (de) | Plattformschnittstellenschicht und protokoll für beschleuniger | |
DE112017006523T5 (de) | Retimer mit kurzer latenzzeit | |
US9444492B2 (en) | High performance interconnect link layer | |
DE112015006944B4 (de) | Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe | |
DE102020120102A1 (de) | Globale dauerhafte Speicherleerung | |
DE102019129626A1 (de) | Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen | |
DE112011103207T5 (de) | Implementierung eines Quickpath Interconnect-Protokolls auf einer PCIe-Schnittstelle | |
DE112015006961T5 (de) | Verbindungsfehlerdetektion in mehrfachchipgehäusen | |
DE102019108798A1 (de) | Hochbandige verbindungsschicht für kohärente nachrichten | |
DE112016004300T5 (de) | Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse | |
DE112013007732T5 (de) | PCI-Express-Erweiterungen | |
DE112018002469T5 (de) | Alternative Protokollaushandlung in einer Hochleistungskopplungsstruktur | |
DE112016003222T5 (de) | Hochleistungsfähiger repeater | |
DE112012005991T5 (de) | Skalierbare gemeinsame Referenztaktungsarchitektur unter Verwendung einer getrennten, einzigen Taktquelle für Blade- und Rack-Server | |
DE102019109119A1 (de) | Host-verwalteter kohärenter gerätespeicher | |
DE112015006953T5 (de) | Training einer gültigen lane | |
DE112018001088T5 (de) | Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung | |
DE112016002909T5 (de) | Flexible Interconnect-Architektur | |
DE112015006516T5 (de) | BUS-Einrichtung-Funktion-Adressraumabbildung | |
DE102022119705A1 (de) | Cluster-identifikatorneuabbildung für asymmetrische topologien | |
DE112015007278B3 (de) | Verfahren, System und Vorrichtung mit einer Schnittstelle zum Koppeln von integrierten Schaltungspaketen | |
DE112013007769B3 (de) | System, Vorrichtung und Verfahren zum Erzeugen und Senden von SKP geordneten Sätzen | |
DE112015007276B3 (de) | Mehrchipbaugruppe mit einer Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe | |
DE112013007842B3 (de) | System, vorrichtung und verfahren zum erzeugen und senden von flits verschiedener protokolle in unterschiedlichen modi |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R130 | Divisional application to |
Ref document number: 112013007767 Country of ref document: DE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |