KR101689998B1 - 고성능 인터커넥트 링크 계층 - Google Patents

고성능 인터커넥트 링크 계층 Download PDF

Info

Publication number
KR101689998B1
KR101689998B1 KR1020167019481A KR20167019481A KR101689998B1 KR 101689998 B1 KR101689998 B1 KR 101689998B1 KR 1020167019481 A KR1020167019481 A KR 1020167019481A KR 20167019481 A KR20167019481 A KR 20167019481A KR 101689998 B1 KR101689998 B1 KR 101689998B1
Authority
KR
South Korea
Prior art keywords
frit
crc
slot
bit
crc value
Prior art date
Application number
KR1020167019481A
Other languages
English (en)
Other versions
KR20160089541A (ko
Inventor
제프 윌리
로버트 지 블랭켄십
제프리 씨 스완슨
로버트 제이 샤프라넥
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20160089541A publication Critical patent/KR20160089541A/ko
Application granted granted Critical
Publication of KR101689998B1 publication Critical patent/KR101689998B1/ko

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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

트랜잭션 데이터가 식별되며 플릿은 세 개 이상의 슬롯 및 슬롯들의 두 개 이상 중 임의의 하나의 슬롯의 확장으로서 사용될 플로팅 필드를 포함하도록 생성된다. 다른 양태에서, 플릿은 두 개 이상의 슬롯, 페이로드, 및 페이로드에 기초하여 생성되는 16개 비트의 CRC 값으로 인코딩될 순환 중복 검사(CRC) 필드를 포함한다. 플릿은 직렬 데이터 링크를 통해 세 개 이상의 슬롯에 적어도 부분적으로 기초하여 처리하기 위한 디바이스로 송신된다.

Description

고성능 인터커넥트 링크 계층{HIGH PERFORMANCE INTERCONNECT LINK LAYER}
본 개시는 일반적으로 컴퓨터 개발의 분야에 관련되며, 보다 상세하게는 상호-의존적인 제한된 시스템의 협력(coordination of mutually-dependent constrained systems)을 포함하는 소프트웨어 개발에 관련된다.
반도체 처리 및 로직 설계의 발전은 집적 회로 디바이스 상에 존재할 수 있는 로직의 양적 증가를 가능하게 해주었다. 결과적으로, 컴퓨터 시스템 구성은 한 시스템 내의 단일 또는 복수의 집적 회로로부터 개개의 집적 회로 상에 존재하는 복수의 코어, 복수의 하드웨어 스레드, 및 복수의 로직 프로세서뿐만 아니라 그러한 프로세서 내에 집적된 다른 인터페이스로 진화하였다. 프로세서 또는 집적 회로는 전형적으로 단일의 물리적 프로세서 다이를 포함하는데, 이 프로세서 다이는 임의 개수의 코어, 하드웨어 스레드, 로직 프로세서, 인터페이스, 메모리, 제어기 허브 등을 포함할 수 있다.
더 작은 패키지 내에 더 많은 처리 능력을 맞추는 역량이 더 커짐에 따라, 소형의 컴퓨팅 디바이스의 인기가 높아지고 있다. 스마트폰, 태블릿, 울트라씬 노트북, 및 다른 사용자 장비가 기하급수적으로 증가되었다. 그러나, 이러한 소형 디바이스들은 데이터 저장 및 폼 팩터를 초과하는 복잡한 처리를 모두 서버에 의존하고 있다. 그 결과, 고성능 컴퓨팅 마켓(즉, 서버 공간)의 수요가 또한 증가하였다. 예를 들어, 현대의 서버에서는 보통 복수 코어를 가진 단일 프로세서뿐만 아니라, 복수의 물리적 프로세서(다중 소켓이라고도 지칭함)가 컴퓨팅 성능을 높이기 위해 존재한다. 그러나 컴퓨팅 시스템에서 디바이스의 개수와 함께 처리 능력이 증가함에 따라서, 소켓과 다른 디바이스 간의 통신이 더욱 중요해지고 있다.
실제로, 애초에 전기 통신을 취급하였던 전통적인 멀티-드롭 버스로부터 고속의 통신을 용이하게 해주는 완전히 발달한 인터커넥트 아키텍처에 이르기까지 인터커넥트 기술이 성장하였다. 공교롭게도, 더욱 높은 속도로 소모하고자하는 미래의 프로세서에 대한 요구에 따라, 해당 요구는 기존의 인터커넥트 아키텍처의 역량에 집중되고 있다.
도 1은 일 실시예에 따른 컴퓨터 시스템에서 I/O 디바이스들을 접속시키기 위한 직렬 포인트-투-포인트 인터커넥트를 포함하는 시스템의 간략화한 블록도를 도시한다.
도 2는 일 실시예에 따른 계층화된 프로토콜 스택의 간략한 블록도를 도시한다.
도 3은 직렬 포인트-투-포인트 링크의 일 실시예를 도시한다.
도 4는 잠재적 고성능 인터커넥트(High Performance Interconnect (HPI)) 시스템 구성의 실시예를 도시한다.
도 5는 HPI와 연관되는 계층화된 프로토콜 스택의 일 실시예를 도시한다.
도 6은 일 예의 다중-슬롯 플릿의 표현을 도시한다.
도 7은 일 예의 8-레인 데이터 링크를 통해 송신되는 일 예의 플릿의 표현을 도시한다.
도 8은 일 예의 8-레인 데이터 링크를 통해 송신되는 일 예의 플릿의 표현을 도시한다.
도 9는 일 예의 20-레인 데이터 링크를 통해 송신되는 일 예의 플릿의 표현을 도시한다.
도 10은 일 예의 다중-슬롯 플릿의 일 예의 플로팅 페이로드 필드의 사용의 표현을 도시한다.
도 11은 일 예의 컴퓨팅 시스템의 블록의 일 실시예를 도시한다.
여러 도면에서 유사한 참조 부호 및 명칭은 유사한 구성요소를 나타낸다.
하기 설명에서, 특정 형태의 프로세서 및 시스템 구성, 특정 하드웨어 구조, 특정 아키텍처적 및 마이크로 아키텍처적 세부사항, 특정 레지스터 구성, 특정 명령어 타입, 특정 시스템 컴포넌트, 특정 프로세서 파이프라인 스테이지, 특정 인터커넥트 계층, 특정 패킷/트랜잭션 구성, 특정 트랜잭션 이름, 특정 프로토콜 교환, 특정 링크 폭, 특정 구현, 및 동작 등의 예와 같은 많은 특정한 세부 사항이 본 발명의 철저한 이해를 제공하기 위해 설명된다. 그러나, 본 기술에서 통상의 지식을 가진 자들에게는 이러한 특정 세부사항이 본 개시의 주제를 실시하기 위해 반드시 이용될 필요가 있지 않다는 것이 인식될 수 있다. 다른 사례에서, 본 개시를 불필요하게 모호하지 않도록 하기 위해, 특정하고 대안적인 프로세서 아키텍처, 설명된 알고리즘에 대한 특정 로직 회로/코드, 특정 펌웨어 코드, 로우-레벨 인터커넥트 동작, 특정 로직 구성, 특정 제조 기술 및 재료, 특정 컴파일러 구현, 코드 내 알고리즘의 특정 표현, 특정 파워다운 및 게이팅 기술/로직, 및 컴퓨터 시스템의 다른 특정 동작의 세부사항과 같은 공지된 컴포넌트 또는 방법에 관해서는 아주 자세하게 설명하지 않았다.
비록 다음과 같은 실시예가 컴퓨팅 플랫폼이나 마이크로프로세서와 같은 특정 집적 회로 내의 에너지 보존, 에너지 효율, 및 프로세싱 효율 등에 관하여 기술될 수 있을지라도, 다른 실시예가 다른 방식의 집적 회로 및 로직 디바이스에 적용 가능하다. 본 명세서에서 설명되는 실시예의 유사한 기술 및 가르침은 그러한 특징으로부터 이득을 받을 수도 있는 다른 방식의 회로 또는 반도체 디바이스에 적용될 수 있다. 예를 들면, 기술된 실시예는 서버 컴퓨터 시스템, 데스크톱 컴퓨터 시스템, 랩톱, 울트라북™으로 제한되지 않고, 휴대형 디바이스, 스마트폰, 태블릿, 다른 신(thin) 노트북, 시스템 온 칩(SOC) 디바이스, 및 임베디드 애플리케이션과 같은 다른 디바이스에서도 사용될 수 있다. 휴대형 디바이스의 일부 예는 셀룰러 폰, 인터넷 프로토콜 디바이스, 디지털 카메라, 개인 휴대정보 단말(PDA), 및 휴대 PC를 포함한다. 여기서, 고성능 인터커넥트를 위한 유사 기술은 저전력 인터커넥트에서 성능(또는 심지어는 절전)을 높이는데 적용될 수 있다. 임베디드 애플리케이션은 통상적으로 마이크로컨트롤러, 디지털 신호 프로세서(DSP), 시스템 온 칩, 네트워크 컴퓨터(NetPC), 셋톱 박스, 네트워크 허브, 광역 네트(WAN) 스위치, 또는 아래에서 교시된 기능 및 동작을 수행할 수 있는 임의의 다른 시스템을 포함한다. 더욱이, 본 명세서에서 기술된 장치, 방법 및 시스템은 물리적인 컴퓨팅 디바이스로 제한되지 않고, 에너지 보존 및 효율을 위한 소프트웨어 최적화에도 관련될 수 있다. 아래의 설명에서 쉽게 명백해지는 바와 같이, 본 명세서에서 기술된 방법, 장치 및 시스템의 실시예는 (하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합과 관련한 것이든지) 성능 고려사항과 장차 균형을 이루는 "녹색 기술"에 중요하게 고려될 수 있다.
컴퓨팅 시스템이 발달하면서, 컴퓨팅 시스템 내 컴포넌트들은 더욱 복잡해지고 있다. 컴포넌트들 간을 연결하고 통신하게 하는 인터커넥트 아키텍처 또한 최적한 컴포넌트 동작에 필요한 대역폭 요구가 충족되는 것을 보장하기 위해 복잡도가 증가되고 있다. 뿐만 아니라, 다양한 세분된 시장은 제 각각의 시장에 어울리는 인터커넥트 아키텍처의 다양한 양태를 요구하고 있다. 예를 들면, 서버는 고성능을 요구하는 반면, 모바일 에코시스템은 때로는 절전을 위해 전체 성능을 희생할 수 있다. 그렇지만, 이것은 절전을 극대화하면서 최고로 가능한 성능을 제공하려는 대부분의 패브릭의 한 가지 목적이다. 또한, 각종의 다양한 인터커넥트는 본 명세서에서 기술된 주제로부터 잠재적으로 혜택을 받을 수 있다. 예를 들어, 다른 예들 중에서 주변 소자 인터커넥트 익스프레스(Peripheral Component Interconnect (PCI) Express (PCIe)) 인터커넥트 패브릭 아키텍처 및 퀵패스 인터커넥트(QuickPath Interconnect (QPI)) 패브릭 아키텍처는 다른 예들 중에서 본 명세서에서 기술된 하나 이상의 원리에 따라서 잠재적으로 개선될 수 있다.
도 1은 도시된 한 세트의 컴포넌트들을 상호접속시키는 포인트-투-포인트 링크로 구성된 일 실시예를 도시한다. 시스템(100)은 제어기 허브(115)에 연결된 프로세서(105) 및 시스템 메모리(110)를 포함한다. 프로세서(105)는 마이크로프로세서, 호스트 프로세서, 임베디드 프로세서, 코-프로세서, 또는 여타 프로세서와 같은 임의의 프로세싱 요소를 포함할 수 있다. 프로세서(105)는 프론트-사이드 버스(front-side bus (FSB))(106)를 통해 제어기 허브(115)에 연결된다. 일 실시예에서, FSB(106)는 아래에서 기술되는 바와 같이 직렬 포인트-투-포인트 인터커넥트이다. 다른 실시예에서, 링크(106)는 다양한 인터커넥트 표준을 준용하는 직렬의 다양한 인터커넥트 아키텍처를 포함한다.
시스템 메모리(110)는 시스템(100) 내 디바이스들에 의해 액세스 가능한 랜덤 액세스 메모리(RAM), 비-휘발성(non-volatile (NV)) 메모리, 또는 여타 메모리와 같은 임의의 메모리 디바이스를 포함한다. 시스템 메모리(110)는 메모리 인터페이스(116)를 통해 제어기 허브(115)에 연결된다. 메모리 인터페이스의 예는 더블-데이터 레이트(a doubIe-data rate (DDR)) 메모리 인터페이스, 듀얼-채널 DDR 메모리 인터페이스, 및 동적 RAM(DRAM) 메모리 인터페이스를 포함한다.
일 실시예에서, 제어기 허브(115)는 PCI 인터커넥트 계층에서와 같은 루트 허브, 루트 콤플렉스, 또는 루트 제어기를 포함할 수 있다. 제어기 허브(115)의 예는 칩셋, 메모리 제어기 허브(a memory controller hub (MCH)), 노스브릿지, 인터커넥트 제어기 허브(an interconnect controller hub (ICH)), 사우스브릿지, 및 루트 제어기/허브를 포함한다. 종종 칩셋이라는 용어는 물리적으로 별개인 두 개의 제어기 허브, 예를 들면 인터커넥트 제어기 허브(ICH)에 연결된 메모리 제어기 허브(MCH)를 지칭하기도 한다. 본 발명의 시스템은 종종 프로세서(105)와 함께 집적된 MCH를 포함하지만, 제어기(115)는 아래에서 설명되는 것과 유사한 방식으로 I/O 디바이스와 통신한다는 것을 주목하여야 한다. 일부 실시예에서, 옵션으로 피어-투-피어 라우팅이 루트 콤플렉스(115)를 통해 지원된다.
여기서, 제어기 허브(115)는 직렬 링크(119)를 통해 스위치/브릿지(120)에 연결된다. 인터페이스/포트(117 및 121)라고도 불리는 입력/출력 모듈(117 및 121)은 제어기 허브(115)와 스위치(120) 사이의 통신을 제공하는 계층화된 프로토콜 스택을 포함/구현할 수 있다. 일 실시예에서, 복수의 디바이스가 스위치(120)에 연결될 수 있다.
스위치/브릿지(120)는 패킷/메시지를 디바이스(125)로부터 업스트림으로, 즉 루트 콤플렉스를 향한 계층 위쪽의 제어기 허브(115)로 라우팅하며 다운스트림으로, 즉 루트 제어기로부터 계층 아래쪽으로, 프로세서(105) 또는 시스템 메모리(110)로부터 디바이스(125)로 라우팅한다. 일 실시예에서, 스위치(120)는 복수의 가상 PCI-투-PCI 브릿지 디바이스의 로직 어셈블리라고 지칭된다. 디바이스(125)는 I/O 디바이스, 네트워크 인터페이스 제어기(a Network Interface Controller (NIC)), 애드-인 카드, 오디오 프로세서, 네트워크 프로세서, 하드-드라이브, 저장 디바이스, CD/DVD ROM, 모니터, 프린터, 마우스, 키보드, 라우터, 이동식 저장 디바이스, 파이어와이어 디바이스, 범용 직렬 버스(a UniversaI SeriaI Bus (USB)) 디바이스, 스캐너, 및 기타 입력/출력 디바이스와 같은 전자 시스템에 연결되는 임의의 내부 또는 외부 디바이스나 컴포넌트를 포함한다. 종종 PCIe에 대한 방언으로, 이를 테면 디바이스는 엔드포인트라고 지칭된다. 비록 구체적으로 도시되지 않을지라도, 디바이스(125)는 레거시 또는 다른 버전의 디바이스를 지원하거나 그러한 디바이스에 의해 지원되는 패브릭을 상호접속시키는 브릿지(예를 들면, PCIe 대 PCI/PCI-X 브릿지)를 포함할 수 있다.
그래픽 가속기(130) 또한 직렬 링크(132)를 통해 제어기 허브(115)에 연결될 수 있다. 일 실시예에서, 그래픽 가속기(130)는 ICH에 연결된 MCH에 연결된다. 그러면 스위치(120) 및 이에 따른 I/O 디바이스(125)는 ICH에 연결된다. I/O 모듈(131 및 118) 또한 그래픽 가속기(130)와 제어기 허브(115) 사이에서 통신하는 계층화된 프로토콜 스택을 구현한다. 앞에서 MCH의 설명과 유사하게, 그래픽 제어기 또는 그래픽 가속기(130) 자체는 프로세서(105) 내에 통합될 수 있다.
도 2를 참조하면, 계층화된 프로토콜 스택의 실시예가 도시된다. 계층화된 프로토콜 스택(200)은 QPI 스택, PCIe 스택, 차세대 고성능 컴퓨팅 인터커넥트(a next generation high performance computing interconnect (HPI)) 스택, 또는 다른 계층화된 스택과 같은 임의 형태의 계층화된 통신 스택을 포함할 수 있다. 일 실시예에서, 프로토콜 스택(200)은 트랜잭션 계층(205), 링크 계층(210), 및 물리 계층(220)을 포함할 수 있다. 도 1에서 인터페이스(117, 118, 121, 122, 126, 및 131)와 같은 인터페이스가 통신 프로토콜 스택(200)으로서 대표될 수 있다. 통신 프로토콜 스택이라는 표현은 프로토콜 스택을 구현/포함하는 모듈 또는 인터페이스라고도 지칭될 수 있다.
패킷은 컴포넌트들 사이에서 정보를 통신하는데 사용될 수 있다. 패킷은 트랜잭션 계층(205) 및 데이터 링크 계층(210)에서 형성되어 정보를 전송 컴포넌트로부터 수신 컴포넌트로 전달한다. 전송된 패킷이 다른 계층들을 통해 흐르기 때문에, 패킷은 패킷을 그러한 계층들에서 처리하는데 사용되는 부가적인 정보로 확장된다. 수신 측에서, 역 처리가 수행되고 패킷은 이들의 물리 계층(220) 표현으로부터 데이터 링크 계층(210) 표현으로 변환되며 최종적으로 (트랜잭션 계층 패킷의 경우) 수신 디바이스의 트랜잭션 계층(205)에 의해 처리될 수 있는 형태로 변환된다.
일 실시예에서, 트랜잭션 계층(205)은 디바이스의 프로세싱 코어와 인터커넥트 아키텍처, 이를 테면 데이터 링크 계층(210) 및 물리 계층(220) 사이에서 인터페이스를 제공할 수 있다. 이와 관련하여, 트랜잭션 계층(205)의 주요 기능은 패킷(즉, 트랜잭션 계층 패킷(transaction layer packets) 또는 TLPs)의 조립과 해체를 포함할 수 있다. 트랜잭션 계층(205)은 또한 TLP에 대하여 크레딧-기반 플로우 제어(Credit-based flow control)을 관리할 수 있다. 일부 실시예에서, 스플릿 트랜잭션(split transactions), 즉 다른 예들 중에서, 타겟 디바이스가 응답에 필요한 데이터를 수집하는 동안 링크로 하여금 다른 트래픽을 전달하게 해주는, 요청과 응답이 시간에 의해 분리되어 있는 트랜잭션이 이용될 수 있다.
크레딧-기반 플로우 제어는 인터커넥트 패브릭을 이용하는 가상 채널 및 네트워크를 실현하기 위해 사용될 수 있다. 일 예에서, 디바이스는 트랜잭션 계층(205)에서 각각의 수신 버퍼마다 초기의 크레딧 수량을 광고할 수 있다. 도 1에서 제어기 허브(115)와 같은 링크의 반대편에 있는 외부 디바이스는 각각의 TLP의해 소비된 크레딧의 개수를 카운트할 수 있다. 트랜잭션은 그 트랜잭션이 크레딧 한계치를 초과하지 않으면 전송될 수 있다. 응답을 수신하면, 크레딧 수량이 복구된다. 그러한 크레딧 체계의 장점 중 한 가지 예는, 다른 잠재적인 장점들 중에서, 크레딧 제한에 처해지지 않으면, 크레딧 반환의 지연이 성능에 영향을 미치지 않는다는 것이다.
일 실시예에서, 네 개의 트랜잭션 어드레스 공간은 구성 어드레스 공간, 메모리 어드레스 공간, 입력/출력 어드레스 공간, 및 메시지 어드레스 공간을 포함할 수 있다. 메모리 공간 트랜잭션은 데이터를 메모리-매핑된 위치로/로부터 전달하는 판독 요청 및 기록 요청 중 하나 이상을 포함한다. 일 실시예에서, 메모리 공간 트랜잭션은 두 가지 상이한 어드레스 포맷, 예를 들면, 32-비트 어드레스와 같이 짧은 어드레스 포맷, 또는 64-비트 어드레스와 같이 긴 어드레스 포맷을 이용할 수 있다. 구성 공간 트랜잭션은 인터커넥트에 접속된 각종 디바이스의 구성 공간에 액세스하는데 사용될 수 있다. 구성 공간에 대한 트랜잭션은 판독 요청 및 기록 요청을 포함할 수 있다. 메시지 공간 트랜잭션(또는 간단히 메시지)는 또한 인터커넥트 에이전트들 간의 대역-내(in-band) 통신을 지원하는 것으로 정의될 수 있다. 그러므로, 일 예의 실시예에서, 트랜잭션 계층(205)은 패킷 헤더/패이로드(206)를 조립할 수 있다.
데이터 링크 계층(210)이라고도 지칭되는 링크 계층(210)은 트랜직션 계층(205)과 물리 계층(220) 사이의 중간 단계로 동작할 수 있다. 일 실시예에서, 데이터 링크 계층(210)의 의무는 링크 상에서 두 컴포넌트 사이에서 트랜잭션 계층 패킷들(Transaction Layer Packets (TLPs))을 교환하기 위한 신뢰할 수 있는 메커니즘을 제공하는 것이다. 데이터 링크 계층(210)의 일 측은 트랜잭션 계층(205)에 의해 조립되는 TLP를 받아들이고, 패킷 시퀀스 식별자(211) 즉, 식별 번호 또는 패킷 번호를 적용하고, 오류 검출 코드, 즉 CRC(212)를 계산하여 적용하고, 물리 계층을 통해 외부 디바이스로 전송하기 위해 수정된 TLP를 물리 계층(220)에 제공한다.
일 실시예에서, 물리 계층(220)은 패킷을 외부 디바이스에 물리적으로 전송하기 위한 논리 서브-블록(221) 및 전기 서브-블록(222)을 포함한다. 여기서 논리 서브-블록(221)은 물리 계층(221)의 "디지털" 기능에 대한 역할을 수행한다. 이와 관련하여, 논리 서브-블록은 물리 서브-블록(222)에 의해 전송하기 위한 발송 정보를 준비하는 전송 섹션과, 수신된 정보를 링크 계층(210)에 전달하기 전에 수신된 정보를 식별하고 준비하는 수신 섹션을 포함할 수 있다.
물리 블록(222)은 송신기와 수신기를 포함한다. 송신기는 논리 서브-블록(221)에 의해, 송신기가 직렬화하여 외부 디바이스에 전송하는 심볼을 공급받는다. 수신기는 외부 디바이스로부터 직렬화된 심볼을 공급받고 수신된 신호를 비트-스트림으로 변환한다. 비트-스트림은 역질렬화되어 논리 서브-블록(221)에 공급된다. 일 예의 실시예에서, 8b/10b 전송 코드가 사용되고, 10-비트 심볼이 전송되고/수신된다. 여기서, 패킷을 프레임(223)으로 구성하기 위해 특수한 심볼이 사용된다. 게다가, 일 예에서, 수신기는 또한 수신하는 직렬 스트림으로부터 복구되는 심볼 클럭을 제공한다.
위에 기술된 바와 같이, 비록 트랜잭션 계층(205), 링크 계층(210) 및 물리 계층(220)이 (PCIe 프로토콜 스택과 같은) 프로토콜 스택의 특정 실시예에 관하여 설명되었지만, 계층화된 프로토콜 스택은 그것으로 제한되지 않는다. 실제로, 임의의 계층화된 프로토콜이 포함되고/구현될수 있고 본 명세서에서 논의되는 특징을 채택할 수 있다. 일 예로서, 계층화된 프로토콜로서 표현되는 포트/인터페이스는 (1) 패킷을 조립하는 제 1 계층 즉, 트랜잭션 계층과, 패킷을 순차적으로 배열하는 제 2 계층 즉, 링크 계층과, 패킷을 전송하는 제 3 계층 즉, 물리 계층을 포함할 수 있다. 특정 예로서, 본 명세서에서 기술된 바와 같이, 고성능의 인터커넥트 계층화된 프로토콜이 이용된다.
다음으로 도 3을 참조하면, 직렬 포인트-투-포인트 패브릭의 일 예의 실시예가 도시된다. 직렬 포인트-투-포인트 링크는 데이터를 직렬로 전송하기 위한 임의의 전송 경로를 포함할 수 있다. 도시된 실시예에서, 링크는 두 개의 저전압의 차동 구동된 신호 쌍들, 즉 전송 쌍(306/311) 및 수신 쌍(312/307)을 포함할 수 있다. 따라서, 디바이스(305)는 데이터를 디바이스(310)로 전송하는 전송 로직(306) 및 데이터를 디바이스(310)로부터 수신하는 수신 로직(307)을 포함한다. 다시 말해서, 두 개의 전송 경로, 즉 경로(316 및 317), 및 두 개의 수신 경로, 즉 경로(318 및 319)가 링크의 일부 구현에 포함된다.
전송 경로는 전송 회선, 구리 회선, 광 회선, 무선 통신 채널, 적외선 통신 링크, 또는 다른 통신 경로와 같이 데이터를 전송하기 위한 임의의 경로를 말한다. 두 디바이스, 이를 테면 디바이스(305)와 디바이스(310) 사이의 접속은 링크, 이를 테면 링크(315)라고 지칭된다. 링크는 하나의 레인(lane) - 각각의 레인은 한 세트의 상이한 신호 쌍(하나의 쌍은 전송 용, 하나의 쌍은 수신 용)을 나타냄 - 를 지원할 수 있다. 대역폭을 조정하기 위해, 링크는 xN으로 표기된 복수의 레인들을 묶을 수 있으며, 여기서 N은 임의의 지원된 링크 폭으로, 이를 테면 1, 2, 4, 8, 12, 16, 32, 64, 또는 그 보다 넓다.
차동 쌍은 레인(316 및 317)과 같이 차동 신호를 전송하는 두 개의 전송 경로를 지칭할 수 있다. 예로서, 회선(316)이 저전압 레벨에서 고전압 레벨로 토글할 때, 즉, 상승 에지일 때, 회선(317)은 하이 로직 레벨에서 로우 로직 레벨로, 즉 하강 에지로 진행한다. 차동 신호는 잠재적으로 더 양호한 신호 무결성(signal integrity), 즉 다른 예의 장점들 중에서, 크로스-커플링, 전압 오버슈트/언더슈트, 링잉과 같은 더 우수한 전기적 특성을 보여준다. 이것은 더 우수한 타이밍 윈도우를 가능하게 해주며, 이는 통신 주파수를 더 빠르게 해줄 수 있다.
일 실시예에서, 신규의 고성능 인터커넥트(High Performance Interconnect (HPI))가 제공된다. HPI는 차세대 캐시-코히어런트, 링크-기반 인터커넥트를 포함할 수 있다. 일 예로서, HPI는 PCIe 또는 다른 인터커넥트 프로토콜이 통상 프로세서, 가속기, 및 I/O 디바이스 등을 접속시키는데 사용되는 시스템을 포함하여, 워크스테이션 또는 서버와 같은 고성능 컴퓨팅 플랫폼에서 이용될 수 있다. 그러나, HPI는 그것으로 제한되지 않는다. 그 대신, HPI는 본 출원에서 기술된 임의의 시스템이나 플랫폼에서 이용될 수 있다. 뿐만 아니라, 개발된 개개의 사상은 다른 인터커넥트 및 플랫폼, 이를 테면 PCIe, MIPI, QPI 등에 적용될 수 있다.
일 예의 구현예에서, 복수의 디바이스를 지원하기 위하여, HPI는 명령어 집합 아키텍처 관용성(Instruction Set Architecture (ISA) agnostic)을 포함할 수 있다(즉, HPI는 복수의 상이한 디바이스들에서 구현되는 것이 가능할 수 있다). 다른 시나리오에서, HPI는 바로 프로세서 또는 가속기가 아닌 고성능 I/O 디바이스를 접속시키는데도 이용될 수 있다. 예를 들면, 고성능 PCIe 디바이스는 적절한 변환 브릿지를 통해 HPI에 (즉, HPI대 PCIe) 연결될 수 있다. 더욱이, HPI 링크는 다양한 방식으로(예를 들면, 스타, 링, 메시 등), 프로세서와 같은 많은 HPI 기반 디바이스에 의해 이용될 수 있다. 도 4는 복수의 잠재적 멀티-소켓 구성의 일 예의 구현예를 도시한다. 도시된 바와 같이, 2-소켓 구성(405)은 두 개의 HPI 링크를 포함할 수 있으나, 다른 구현예에서, 하나의 HPI 링크가 이용될 수 있다. 토폴로지가 더 큰 경우, 다른 부가적이거나 대체적인 특징들 중에서, 식별자(ID)가 할당 가능하고 몇 가지 형태의 가상 경로가 존재하는 한 임의의 구성이 이용될 수 있다. 도시된 바와 같이, 네 개의 소켓 구성(410)은 각 프로세서로부터 다른 하나의 프로세스로의 HPI 링크를 갖고 있다. 그러나 구성(415)에서 도시된 여덟 소켓 구현예에서, 매 소켓이 HPI 링크를 통해 서로 직접 접속되는 것은 아니다. 그러나, 만일 가상 경로 또는 채널이 프로세서들 사이에서 존재하면, 그 구성이 지원된다. 지원된 프로세서들의 범위는 기본 도메인에서 2-32를 포함한다. 다른 예들 중에서, 복수개 도메인 또는 노드 제어기들 사이에 복수개의 도메인 또는 다른 인터커넥트를 사용하여 프로세서를 더 많게 할 수 있다.
HPI 아키텍처는 몇몇 예에서, (코히어런트, 논-코히어런트, 및 옵션의, 여타 메모리 기반 프로토콜의) 프로토콜 계층들, 라우팅 계층, 링크 계층, 및 연관된 I/O 로직을 포함하는 물리 계층을 포함하는 계층화된 프로토콜 아키텍처의 정의를 포함한다. 뿐만 아니라, HPI는 다른 예들 중에서, (전력 제어 유닛(power control units (PCUs))와 같은) 전력 관리자, 테스트 및 디버그용 설계(design for test and debug (DFT)), 장애 관리, 레지스터, 보안에 관련된 개선된 것을 더 포함할 수 있다. 도 5는 일 예의 HPI 계층화된 프로토콜 스택의 실시예를 도시한다. 일부 구현예에서, 도 5에 도시된 계층들 중 적어도 일부는 옵션일 수 있다. 각각의 계층은 그 자체의 그래뉴러리티의 레벨 또는 정보의 퀀텀(quantum of information)을 처리한다(프로토콜 계층(505a,b)은 패킷(530)을 처리하고, 링크 계층(510a,b)은 플릿(flits)(535)을 처리하며, 물리 계층(505a,b)은 피트(phits)(540)를 처리한다). 일부 실시예에서, 구현예에 따라서 패킷은 부분적인 플릿, 단일의 플릿, 또는 복수의 플릿을 포함할 수 있다는 것을 주목하자.
제 1의 예로서, 피트(540)의 폭은 링크 폭 대 비트의 1대1 매핑을 포함한다(예를 들면, 20 비트 링크 폭은 20 비트의 피트를 포함한다. 기타 등등). 플릿은 184, 192 또는 200 비트와 같이 더 큰 크기를 가질 수 있다. 만일 피트(540)가 20 비트 폭이고 플릿(535)의 크기가 184 비트이면, 하나의 플릿(535)을 전송하기 위해 피트(540)를 분수로(예를 들면, 다른 예들 중에서, 184 비트의 플릿(535)을 전송하려면 20 비트로 9.2 피트 또는 192개 비트 플릿을 전송하려면 20 비트로 9.6으로) 처리한다는 것을 주목하자. 물리 계층에서 기본 링크의 폭은 변할 수 있다는 것을 주목하자. 예를 들면, 방향 당 레인의 개수는 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 등을 포함할 수 있다. 일 실시예에서, 링크 계층(510a,b)은 복수개의 상이한 트랜잭션을 단일 플릿 내에 넣을 수 있으며, 하나 또는 복수의 헤더(예를 들면, 1, 2, 3, 4)가 플릿 내에 넣어질 수 있다. 일 예에서, HPI는 헤더들을 대응하는 슬롯들로 나누어서 플릿 내 복수의 메시지들이 여러 노드들을 향해 전달되게 할 수 있다.
일 실시예에서, 물리 계층(505a,b)은 (전기 또는 광 등의) 물리적 매체를 통한 고속의 정보 전달의 역할을 담당할 수 있다. 물리 링크는 계층(505a 및 505b)과 같은 두 개의 링크 계층 엔티티들 사이의 포인트-투-포인트일 수 있다. 링크 계층(510a,b)은 상위 계층으로부터 물리 계층(505a,b)을 이끌어 낼 수 있으며 데이터(뿐만 아니라 요청)를 신뢰 있게 전달하는 역량을 제공하고 직접적으로 접속된 두 엔티티들 사이에서 플로우 제어를 관리한다. 링크 계층은 또한 물리적 채널을 복수의 가상 채널 및 메시지 클래스로 가상화하는 역할을 담당할 수 있다. 프로토콜 계층(520a,b)은 링크 계층(510a,b)에 의존하여 프로토콜 메시지를 적절한 메시지 클래스 및 가상 채널로 매핑한 다음 이를 물리 계층(505a,b)으로 전달하여 물리 링크를 가로질러 전달한다. 링크 계층(510a,b)은 다른 예들 중에서, 요청, 스누프, 응답, 라이트백, 논-코히어런트 데이터와 같은 복수의 메시지를 지원할 수 있다.
도 5에 도시된 바와 같이, HPI의 물리 계층(505a,b)(또는 PHY)은 전기 계층(즉, 두 컴포넌트를 접속시키는 전기 전도체) 위 그리고 링크 계층(510a,b)의 아래에서 구현될 수 있다. 물리 계층 및 대응하는 로직은 각각의 에이전트에서 상주할 수 있으며 (예를 들면, 링크의 양측의 디바이스 상에서) 서로 분리되어 있는 두 에이전트(A 및 B) 상의 링크 계층들을 접속시킨다. 로컬 및 원격 전기 계층은 물리적 매체(예를 들면, 와이어, 전도체, 광학 등)에 의해 접속된다. 일 실시예에서, 물리 계층(505a,b)은 두 가지 주요한 국면, 즉 초기화 및 동작을 가지고 있다. 초기화 동안, 접속은 링크 계층에 불투명하며 시그널링은 시간 제한 상태(timed states)와 핸드쉐이크 이벤트의 조합을 포함할 수 있다. 동작 동안, 접속은 링크 계층에 투명하며 시그널링은 일정 속도로 진행되며, 이 때 모든 레인이 함께 단일 링크로서 동작한다. 동작 국면 동안, 물리 계층은 플릿을 에이전트 A에서 에이전트 B로 그리고 에이전트 B에서 에이전트 A로 전달한다. 접속은 또한 링크라고 지칭되기도 하며 플릿 및 현재 구성(예를 들면, 폭)의 제어/상태를 링크 계층과 교환하면서 링크 계층으로부터 매체, 폭 및 속도를 포함하는 몇 가지 물리적인 양태를 이끌어 낸다. 초기화 국면은 하위 국면, 예를 들면 폴링(Polling), 구성(Configuration)을 포함한다. 운영 국면도 또한 하위 국면(예를 들면, 링크 전력 관리 상태)을 포함한다.
일 실시예에서, 링크 계층(510a,b)은 두 프로토콜 또는 라우팅 엔티티들 사이에서 신뢰 있는 데이터 전송을 제공하기 위해 구현될 수 있다. 링크 계층은 프로토콜 계층(520a,b)으로부터 물리 계층(505a,b)을 이끌어 낼 수 있고 두 프로토콜 에이전트(A, B) 사이에서 플로우 제어를 책임질 수 있으며, 가상 채널 서비스를 프로토콜 계층(메시지 클래스) 및 라우팅 계층(가상 네트워크)에 제공할 수 있다. 프로토콜 계층(520a,b)과 링크 계층(510a,b) 사이의 인터페이스는 통상적으로 패킷 레벨에서 수행될 수 있다. 일 실시예에서, 링크 계층에서 가장 작은 전송 단위는 192개 비트 또는 일부 다른 단위 값과 같은 명시된 비트 수를 가진 플릿이라고 지칭된다. 링크 계층(510a,b)은 물리 계층(505a,b)에 의존하여 물리 계층(505a,b)의 전송 단위(피트)를 링크 계층(510a,b)의 전송 단위(플릿)로 구성한다. 게다가, 링크 계층(510a,b)은 논리적으로 두 부분, 즉 송신자 및 수신자로 갈라질 수 있다. 한 엔티티에서 송신자/수신자 쌍은 다른 하나의 엔티티 상의 송신자/수신자 쌍에 접속될 수 있다. 플로우 제어는 종종 플릿 및 패킷의 두 가지를 기반으로 하여 수행된다. 오류 검출 및 정정 또한 잠재적으로 플릿 레벨 기반으로 수행된다.
일 실시예에서, 라우팅 계층(515a,b)은 근원지로부터 목적지로 HPI 트랜잭션을 라우팅하는 유연하고 분산된 방법을 제공할 수 있다. 이 방식은 복수의 토폴로지에 필요한 라우팅 알고리즘이 각각의 라우터에서 프로그램 가능 라우팅 테이블을 통해 명시될 수 있기 때문에 유연성이 있다(일 실시예에서 프로그래밍은 펌웨어, 소프트웨어, 또는 이들의 조합에 의해 수행된다). 라우팅 기능은 분산될 수 있고, 라우팅은 일련의 라우팅 단계를 통해 이루어질 수 있는데, 각각의 라우팅 단계는 근원지, 중간지, 또는 목적지 라우터에서 테이블 룩업을 통해 정의된다. 근원지에서의 룩업은 HPI 패킷을 HPI 패브릭으로 주입하는데 사용될 수 있다. 중간지 라우터에서의 룩업은 HPI 패킷을 입력 포트로부터 출력 포트로 라우팅하는데 사용될 수 있다. 목적지 포트에서 룩업은 목적지 HPI 프로토콜 에이전트를 목표로하기 위해 사용될 수 있다. 일부 구현예에서, 라우팅 테이블, 및 그의 라우팅 알고리즘은 사양서에 의해 특별히 정의되어 있지 않기 때문에 라우팅 계층은 의존적(thin)일 수 있다는 것을 주목하여야 한다. 이것은 시스템 구현에 의해 정의되는 유연 플랫폼 아키텍처 토폴로지를 포함하는, 유연성 및 각종 사용 모델의 여지를 남겨 놓는다. 라우팅 계층(515a,b)은 링크 계층(510a,b)에 의존하여 세 개까지의(또는 그 이상의) 가상 네트워크(virtuaI networks (VNs)) - 일 예로, 각 가상 네트워크에서 정의된 여러 메시지 클래스를 가진 두 개의 교착 방지(deadlock free) VNs, VN0 및 VN1 - 의 사용을 제공한다. 공유된 적응적 가상 네트워크(shared adaptive virtuaI network (VNA))는 링크 계층에서 정의될 수 있지만, 다른 특징 및 예들 중에서, 각 메시지 클래스 및 가상 네트워크가 전용의 자원을 갖고 순방향 진행(forward progress)을 보장할 수 있기 때문에, 이러한 적응적 네트워크는 라우팅 개념으로 직접 드러내지 없을 수 있다.
일 실시예에서, HPI는 메모리로부터 데이터의 라인을 캐싱하는 지원 에이전트인 코히어런스 프로토콜 계층(520a,b)을 포함할 수 있다. 메모리 데이터를 캐시하려는 에이전트는 그의 캐시에 로드하는 데이터의 라인을 판독하는 코히어런트 프로토콜을 사용할 수 있다. 그의 캐시에서 데이터의 라인을 수정하려는 에이전트는 데이터를 수정하기 전에 라인의 소유권을 얻기 위해 코히어런스 프로토콜을 사용할 수 있다. 라인을 수정한 후, 에이전트는 외부 요청에 응답하여 라인을 다시 메모리에 기록하거나 라인을 포함할 때까지 그의 캐시 내에 라인을 유지하려는 프로토콜 요건에 따를 수 있다. 끝으로, 에이전트는 외부 요청을 이행하여 그의 캐시에서 라인을 무효화할 수 있다. 프로토콜은 모든 캐싱 에이전트가 따를 수 있는 규칙을 지시함으로써 데이터의 코히어런시(coherency)를 보장한다. 이것은 또한 에이전트가 캐시 없이 메모리 데이터를 일관되게(coherently) 판독하고 기록하는 수단을 제공한다.
HPI 코히어런스 프로토콜을 이용하여 트랜잭션을 지원하기 위해 두 가지 조건이 실시될 수 있다. 첫째, 프로토콜은 일 예로, 에이전트의 캐시들 내 데이터 사이에서 그리고 이러한 데이터와 메모리 내 데이터 사이에서 어드레스별 기준으로 데이터 일관성을 유지할 수 있다. 비공식적으로, 데이터 일관성은 데이터의 가장 최근 값을 나타내는 에이전트의 캐시 내 데이터의 각각의 유효 라인을 지칭할 수 있고, 코히어런스 프로토콜 패킷에서 전송되는 데이터는 데이터가 전송되었을 당시 데이터의 가장 최근 값을 나타낼 수 있다. 데이터의 어느 유효 사본도 캐시 또는 전송에 존재하지 않을 때, 프로토콜은 가장 최근의 데이터 값이 메모리에 있음을 보장할 수 있다. 둘째, 프로토콜은 요청에 대해 잘 정의된 책임 정도를 제공할 수 있다. 판독에 대한 책임 정도는 데이터가 유용할 때를 나타낼 수 있고, 기록에 대한 책임 정도는 기록된 데이터가 전역적으로 관찰가능하고 후속 판독에 의해 로드될 때를 나타낼 수 있다. 프로토콜은 코히어런트 메모리 공간에서 캐시가능한 요청 및 캐시불가능한(uncacheable (UC)) 요청 모두에 대해 이러한 책임 정도를 지원할 수 있다.
HPI 코히어런스 프로토콜은 또한 에이전트에 의해 코히어런트 메모리 공간 내 어떤 어드레스를 향해 행한 코히어런스 요청의 순방향 진행을 보장할 수 있다. 확실히, 트랜잭션은 적절한 시스템 동작을 위해 결국 이행되고 사라질 수 있다. 일부 실시예에서, HPI 코히어런스 프로토콜은 자원 할당 충돌을 해결하기 위한 재시도의 개념이 없을 수 있다. 따라서, 프로토콜 그 자체는 순환 자원 의존성을 포함하지 않는 것으로 정의될 수 있고 구현은 그 설계에서 데드록을 초래할 수 있는 의존성을 도입하지 않도록 주의할 수 있다. 또한, 프로토콜은 설계가 프로토콜 자원으로의 공정한 액세스를 제공할 수 있는 곳을 표시할 수 있다.
논리적으로, 일 실시예에서 HIP 코히어런스 프로토콜은 세 개의 아이템 즉, 코히어런스(또는 캐싱) 에이전트, 홈 에이전트, 및 에이전트들을 접속시키는 HPI 인터커넥트 패브릭을 포함할 수 있다. 코히어런스 에이전트 및 홈 에이전트는 함께 작업하여 인터커넥트를 통해 메시지를 교환함으로써 데이터 일관성을 이룰 수 있다. 링크 계층(510a,b) 및 그의 관련 설명은 본 출원에서 논의되는 코히어런스 프로토콜 요건을 고수하는 방법을 포함하여 인터커넥트 패브릭의 세부사항을 제공할 수 있다. (코히어런스 에이전트와 홈 에이전트로의 분리는 명료하게 하기 위한 것임을 주목할 수 있다. 설계는 다른 예들 중에서, 소켓 내에 두 가지 유형의 복수개의 에이전트를 포함할 수 있거나 또는 심지어 에이전트 행위를 단일 설계 유닛에 연결할 수 있다).
일부 실시예에서, HPI는 삽입된 클록을 이용할 수 있다. 클록 신호는 인터커넥트를 이용하여 전송되는 데이터에 삽입될 수 있다. 클록 신호가 데이터에 삽입된 상태에서, 별도의 전용 클록 레인들이 생략될 수 있다. 이것은 예를 들면, 특히 핀에 필요한 공간을 구하기 힘든 시스템에서 디바이스의 더 많은 핀을 데이터 전송에 전용할 수 있게 해주기 때문에 유용할 수 있다.
링크 계층은 두 개의 프로토콜 또는 라우팅 엔티티들 사이에서 신뢰 있는 데이터 전송을 보장할 수 있다. 링크 계층은 프로토콜 계층으로부터 물리 계층을 이끌어 내고, 두 개의 프로토콜 에이전트 사이의 플로우 제어를 처리하고, 프로토콜 계층(메시지 클래스) 및 라우팅 계층(가상 네트워크)에 가상 채널 서비스를 제공할 수 있다.
일부 구현예에서, 링크 계층은 플릿이라고 하는 정보의 고정된 퀀텀을 처리할 수 있다. 일 예에서, 플릿은 192개 비트의 길이가 되도록 정의될 수 있다. 그러나 다양한 변형예에서 81-256 (또는 그 이상)과 같은 임의의 범위의 비트가 이용될 수 있다. 192개 비트와 같은 큰 플릿 크기는 포맷, 순환 중복 검사(cyclic redundancy check (CRC)), 및 다른 변경을 포함할 수 있다. 예를 들면, 더 큰 플릿 길이는 또한 더 큰 플릿 페이로드를 처리하기 위해 CRC 필드가 (예를 들면 16비트로) 확대되게 할 수 있다. 단일 플릿을 전송하기 위한 피트 또는 유닛 간격(unit intervals (UI))의 개수 (예를 들면, 단일 비트 또는 피트 등을 전송하는데 사용되는 시간)는 링크 폭에 따라 변할 수 있다. 예를 들면, 다른 잠재적 예들 중에서, 20개 레인 또는 비트 링크 폭은 9.6 UI에서 단일 192개 비트 플릿을 전송할 수 있고, 한편 8개 레인의 링크 폭은 동일한 플릿을 24 UI에서 전송한다. 링크 계층 크레딧 및 프로토콜 패킷화는 또한 플릿을 기반으로 할 수 있다.
도 6은 8개 레인 링크 폭에 대해 보편화된 플릿의 표현(600)을 도시한다. 표현(600)의 각각의 열은 링크 레인을 심볼화 할 수 있고, 각각의 행은 각각의 UI를 심볼화 할 수 있다. 일부 구현예에서, 단일 플릿은 두 개 이상의 슬롯으로 세분될 수 있다. 별도의 메시지 또는 링크 계층 헤더는 각각의 슬롯에 포함되어, 잠재적으로 상이한 트랜잭션에 대응하는 복수개의 별도 메시지, 그리고 일부의 사례에서는 독립적인 메시지를 단일 플릿으로 전송되게 할 수 있다. 또한, 단일 플릿의 슬롯에 포함되는 복수개의 메시지는 또한 다른 예들 중에서, 상이한 목적지 노드에 도달되도록 예정될 수 있다. 예를 들면, 도 6의 예는 3 개의 슬롯을 구비하는 플릿 포맷을 도시한다. 음영 부분은 각각의 슬롯에 포함되는 플릿의 일부를 표현할 수 있다.
도 6의 예에서, 세 개의 슬롯, 슬롯 0, 1, 및 2가 제공된다. 슬롯 0에는 플릿 공간의 72개 비트가 제공될 수 있고, 그 중 22개 비트는 메시지 헤더 필드로 전용되고 50개 비트는 메시지 페이로드 공간으로 전용된다. 슬롯 1에는 플릿 공간의 70개 비트가 제공될 수 있으며, 그 중 20개 비트는 메시지 헤더 필드로 전용되고 50개 비트는 메시지 페이로드 공간으로 전용된다. 이들 간의 메시지 헤더 필드 공간의 차이는 특정 메시지 타입이 (예를 들면, 더 많은 메시지 헤더 인코딩이 이용되는) 슬롯 0에 포함되기 위해 지정될 것이라는 것을 제공하기 위해 최적화될 수 있다. 플릿 공간의 18개 비트를 이용하는 경우에는 슬롯 0 및 1보다 실질적으로 적은 공간을 차지하는 제 3 슬롯인 슬롯 2가 제공될 수 있다. 슬롯 2는 더 큰 메시지 페이로드를 이용하지 않는 확인응답 및 크레딧 반환 등과 같은 메시지를 처리하도록 최적화될 수 있다. 또한, 슬롯 0 또는 슬롯 1의 페이로드 필드를 보충하기 위해 부가적인 11개 비트가 대안으로 적용되게 하는 플로팅 페이로드 필드가 제공될 수 있다.
도 6의 특정 예를 계속 참조하면, 다른 필드들이 플릿 전반에 적용될 수 있다(즉, 특정 슬롯에 적용되는 것이 아닌 플릿 전체에 적용될 수 있다). 예를 들어, 헤더 비트는 4-비트 플릿 제어 필드와 함께 제공될 수 있고, 이 4-비트 플릿 제어 필드는 다른 예들 중에서, 그러한 정보를 플릿의 가상 네트워크로서 지정하고, 플릿이 인코딩되는 방법을 식별하는데 사용될 수 있다. 또한, 다른 잠재적인 예들 중에서, 이를 테면 16개 비트의 순환 CRC 필드를 통해 오류 제어 기능이 제공될 수 있다.
플릿 포맷은 링크 계층을 통해 메시지의 처리량을 최적화하기 위해 정의될 수 있다. 일부 전통적인 프로토콜은 슬롯되지 않은 작은 플릿을 이용하였다. 예를 들면, QPI에서, 80개 비트의 플릿이 이용되었다. 플릿이 더 크면(예를 들면, 192개 비트의 플릿) 플릿 처리 량이 낮아질 수 있지만, 메시지 또는 패킷 처리량은 플릿 데이터의 사용을 최적화함으로써 높아질 수 있다. 예를 들면, QPI의 일부 구현예에서, 메시지 크기 또는 타입과 무관하게 전체 80개 비트의 플릿 공간이 이용되었다. 큰 플릿을 사전에 설정된 길이 및 필드의 슬롯으로 세분화함으로써, 이용 가능한 슬롯들 중 하나 이상이 때때로 사용되지 않는 사례에서 조차도 더 높은 효율을 실현하는 192 플릿 길이가 최적화될 수 있다. 실제로, 링크 계층 트래픽은 헤더 길이 및 필드가 변하는 메시지 및 패킷을 비롯하여, 많은 상이한 타입의 메시지 및 트래픽을 포함하는 것으로 추정될 수 있다. 플릿에서 정의된 슬롯의 각 길이 및 구성은 각종 메시지의 통계적 또는 예측된 빈도수 및 이들 메시지의 요구와 일치시키기 위해 정의될 수 있다. 예를 들어, 두 개의 큰 슬롯이 작은 슬롯마다 정의될 수 있고, 그래서 다른 예들 중에서, 이들처럼 큰 메시지 타입 및 헤더 길이를 이용하여 메시징하는 예상된 통계적 빈도수를 수용할 수 있다. 또한, 예를 들면 도 6의 예에서와 같이 플로팅 페이로드 필드를 통해, 변화하는 트래픽을 추가로 수용하는 융통성이 또한 제공될 수 있다. 일부 사례에서, 비트가 플릿 내 특정 슬롯에 전용되는 것을 비롯하여, 플릿 포맷은 고정될 수 있다.
도 6의 예에서, "Hdr" 필드는 보통 플릿을 위해 제공될 수 있고 플릿용 헤더 표시를 표현한다. 일부 예에서, Hdr 필드는 플릿이 헤더 플릿인지 아니면 데이터 플릿인지를 나타낼 수 있다. 데이터 플릿에서, 플릿은 여전히 슬롯화 상태로 유지될 수 있지만, 특정 필드의 사용을 생략하거나 페이로드 데이터로 대체할 수 있다. 일부의 사례에서, 데이터 필드는 오피코드(opcode) 및 페이로드 데이터를 포함할 수 있다. 헤더 플릿의 경우, 다양한 헤더 필드가 제공될 수 있다. 도 6의 예에서, "Oc" 필드는 각각의 슬롯마다 제공될 수 있고, Oc 필드는 오피코드를 표현한다. 유사하게, 하나 이상의 슬롯은 그 슬롯이 그런 패킷 유형 등을 처리하도록 설계되는 경우, 슬롯에 포함될 대응 패킷의 메시지 유형을 표현하는 대응하는 "msg" 필드를 가질 수 있다. 다른 잠재적 필드 중에서, "DNID" 필드는 목적지 노드 ID(a Destination Node ID)를 나타낼 수 있고, "TID" 필드는 트랜잭션 ID(a transaction ID)를 나타낼 수 있고, "RHTID" 필드는 요청자 노드 ID(a requestor node ID) 또는 홈 트래커 ID(a home tracker ID)를 나타낼 수 있다. 또한, 하나 이상의 슬롯은 페이로드 필드를 갖고 있을 수 있다. 또한, CRC 필드는 다른 예들 중에서, 플릿에 CRC 값을 제공하기 위해 플릿 내에 포함될 수 있다.
일부 구현예에서, 링크 폭은 링크의 수명 기간 동안 변할 수 있다. 예를 들면, 물리 계층은 링크 폭 상태들 사이에서 천이, 가령 전체 또는 원래 통로 폭 및 상이한 또는 부분적인 레인 폭으로 천이 및 이들 폭으로부터 천이할 수 있다. 예를 들면, 일부 구현예에서, 링크는 데이터를 20 개의 레인을 통해 전송하도록 초기화될 수 있다. 나중에, 링크는 많은 다른 잠재적 예들 중에서, 단지 8개 레인만 활발히 사용되는 부분 폭 전송상태로 천이할 수 있다. 그러한 레인 폭 천이는 예를 들면 다른 예들 중에서, 하나 이상의 전력 제어 유닛(power control units (PCU))에 의해 관리되는 전력 관리 태스크와 관련하여 이용될 수 있다.
앞에서 언급한 바와 같이, 링크 폭은 플릿 처리율에 영향을 미칠 수 있다. 도 7은 8개 레인의 링크를 통해 전송되는 일 예의 192개 비트의 플릿의 표현으로서, 24 UI에서 플릿의 처리율의 결과를 가져온다. 또한, 도 7의 예에서 도시된 바와 같이, 플릿의 비트는 예를 들면 다른 예들 중에서, 전송의 초기에 시간에 더욱 민감한 필드(예를 들면, 플릿 유형 필드 (예를 들면, 데이터 또는 헤더 플릿), 오피코드 등)를 송신하고, 플릿에서 구체화되는 특정 오류 검출 또는 다른 기능을 보존 또는 도모하기 위하여 일부 인스턴스에서 비순차적으로 전송될 수 있다. 예를 들면, 도 7의 예에서, 비트(191, 167, 143, 119, 95, 71, 47, 및 23)는 전송의 제 1 UI(즉, UI0) 동안 레인(L7 내지 L0)을 통해 병렬로 전송되는 한편, 비트(168, 144, 120, 96, 72, 48, 24, 및 0)는 플릿 전송의 24번째 (또는 최종) UI(즉, UI23) 동안 전송된다. 다른 순서화 계획, 플릿 길이, 레인 폭 등은 다른 구현예들 및 예들에서 이용될 수 있다.
일부 예에서, 플릿의 길이는 활성 레인들의 개수의 배수일 수 있다. 그러한 예에서, 플릿은 모든 액티브 레인들을 통해 균등하게 전송될 수 있고 플릿의 전송은 깨끗한(즉, 겹치지 않는) 경계에서 실질적으로 동시에 종료할 수 있다. 예를 들면, 도 8의 표현에서 도시된 바와 같이, 플릿의 비트는 4개 비트의 연속 그루핑, 또는 "니블(nibbles)"로 전송되는 것으로 간주될 수 있다. 이 예에서, 192개 비트 플릿은 8개 레인의 링크를 통해 전송될 것이다. 192는 8의 배수이므로, 전체 플릿은 24 UI에서 8개 레인의 링크를 통해 깨끗하게 전송될 수 있다. 다른 예에서, 플릿 폭은 활성 레인들의 개수의 배수가 아닐 수 있다. 예를 들면, 도 9는 20개의 레인들을 통해 전송되는 일 예의 192개 비트의 다른 표현을 도시한다. 192가 20으로 균등하게 나누어지지 않기 때문에, 전체 플릿의 전송은 비-정수의 간격(예를 들어, 9.6 UI)을 요구할 것이다. 그러한 경우, 전송의 제 10 UI 동안 이용되지 않는 "여분의(extra)" 레인들을 낭비하는 대신 제 2의 중복하는 플릿이 선행하는 플릿의 최종 비트와 함께 전송될 수 있다. 플릿의 그러한 중복 또는 혼합은 혼합된 플릿 경계를 초래할 수 있고 플릿 비트는 일부 구현예에서 비순차적으로 전송되는 결과를 초래할 수 있다. 전송을 위해 이용되는 패턴은 다른 고려 사항들 중에서, 플릿의 시간에 더욱 민감한 필드가 플릿에서 더 일찍 전송될 수 있게 하고 오류 검출 및 정정의 유지할 수 있도록 구성될 수 있다. 로직은 그러한 패턴에 따라 플릿 비트를 전송하고 현재의 링크 폭을 기반으로 패턴들 사이에서 동적으로 변하도록 물리 및 링크 계층들 중 하나 또는 둘 다에 제공될 수 있다. 또한, 로직은 다른 예들 중에서, 그와 같이 혼합되거나(swizzled) 질서정연한(ordered) 비트 스트림으로부터 플릿을 재정리하거나 재구성하기 위해 제공될 수 있다.
일부 구현예에서, 플릿은 (예를 들면, 패킷 헤더 데이터를 갖는) 헤더 플릿 또는 (예를 들면, 패킷 페이로드 데이터를 갖는) 데이터 플릿으로 특징지어질 수 있다. 도 6을 참조하면, 플릿 포맷은 세 개의 별도의 슬롯(예를 들면, 0, 1, 및 2)을 포함하여, 3개까지의 헤더(예를 들면, 각각의 슬롯에서 하나의 헤더)가 단일 플릿 내에서 전송될 수 있게 하는 것으로 정의될 수 있다. 따라서, 각각의 슬롯은 제어 필드 및 페이로드 필드를 둘 다 가질 수 있다. 이것 이외에, 페이로드 필드가 각각의 헤더 (및 슬롯) 마다 정의될 수 있다. 또한, 이러한 슬롯 내 헤더 타입에 기초하여, 슬롯들 중 두 개 이상의 (예를 들면, 슬롯 0 또는 슬롯 1의) 여분의 페이로드 길이로서 유연하게 사용될 수 있는 플로팅 페이로드 필드(a floating payload field)가 정의될 수 있다. 일 구현예에서, 플로팅 필드는 슬롯 0 또는 슬롯 1에 대해 11개 비트 여분의 페이로드를 가능하게 할 수 있다. 더 큰 플릿을 정의하는 구현예에서, 더 많은 플로팅 비트가 사용될 수 있으며 더 적은 플릿의 경우에는 더 적은 플로팅 비트가 제공될 수 있다.
일부 구현예에서, 필드가 두 슬롯 사이에서 플로팅하게 해줌으로써, 특정 메시지의 용도로서 필요한 여분의 비트가 제공되면서도 사전에 정의된 플릿 길이(예를 들면, 192개 비트)를 벗어나지 않고 대역폭의 이용을 극대화할 수 있다. 도 10의 예를 참조하면, 일 예의 192개 비트의 플릿의 두 사례(1005, 1010)가 8개 레인의 데이터 링크에서 도시된다. 일 사례에서, 플릿(예를 들면, 1005)은 세 개의 슬롯, 슬롯 0, 1, 및 2를 포함할 수 있다. 각각의 슬롯 0 및 1은 50-비트 페이로드 필드를 포함할 수 있다. 플로팅 필드는 대안으로 슬롯 0 또는 슬롯 1의 페이로드 필드를 플로팅 필드의 필드 길이(예를 들면, 11개 비트)까지 확장하는 것으로 제공될 수 있다. 플로팅 필드를 사용함으로써 정의된 다중-슬롯 플릿 포맷을 통해 제공되는 효율성 개선이 더 확장될 수 있다. 플릿 내의 슬롯의 크기 조정 및 각 슬롯에 배치될 수 있는 메시지의 타입은 플릿 비율이 줄어들지라도 대역폭을 잠재적으로 증가시킬 수 있다.
도 6의 특정 예에서, 슬롯 1 및 2를 사용할 수 있는 메시지가 최적화되어, 이들 슬롯의 오피코드를 인코딩하려고 남겨놓는 비트 수를 줄일 수 있다. 슬롯 0가 제공할 수 있는 비트를 더 많이 가진 헤더가 링크 계층에 들어갈 때, 추가 공간을 위해 헤더가 슬롯 1 페이로드 비트를 이어받게 해주는 슬롯팅 알고리즘이 제공될 수 있다. 특수한 제어(예를 들면, LLCTRL) 플릿에 필요한 비트 가치만큼의 세 슬롯을 모두 소모하는 특수한 제어 플릿이 또한 제공될 수 있다. 링크가 부분적으로 비지(busy)인 사례에서, 개개의 슬롯이 이용되는 동안 다른 슬롯이 아무 정보도 전달하지 않게 하는 슬롯팅 알고리즘이 존재할 수 있다.
도 10의 특정 예에서, 플로팅 플릿 필드의 사용 예가 도시된다. 예를 들면, 표준 어드레스 스누프(Standard Address Snoop (SA-S)) 헤더의 사례에 있어서, (예를 들면, 충돌을 방지하기 위해 또는 SA-S 페이로드가 50-비트 페이로드보다 큰 페이로드를 이용하는 경우에서, 등) 동일한 플릿 내에서 오직 단일의 SA-S 메시지 (및 헤더)가 송신되는 것으로 허용될 수 있다. 결과적으로, 그러한 예에서, SA-S는 그러한 사례에서 동일한 플릿의 슬롯 0 또는 슬롯 1에서만 송신될 수 있다. 플릿(1005)의 예에서, SA-S 헤더는 슬롯 0에 포함되며 플로팅 필드를 이용한다. 결과적으로, 플릿(1005)의 예에서, 플로팅 필드는 슬롯 0의 페이로드의 페이로드를 확장하기 위해 전용으로 사용된다. 플릿(1010)의 다른 예에서, SA-S 헤더는 슬롯 1을 차지한다. 플릿(1010)의 예에서, 플로팅 필드는 그 대신 슬롯 1의 페이로드를 확장하는데 전용된다. 다른 잠재적인 예는 도 6 및 도 10의 특정 예에서 도시된 원리를 이용하는 슬롯형 플릿의 플로팅 페이로드 필드를 통해 제공되는 융통성을 또한 이용할 수 있다.
도 6과 관련하여 도시되는 것과 같은 일 실시예에서, 예를 들면, 두 개의 슬롯 슬롯 0 및 1은 균등한 크기의 페이로드 필드를 갖는 것으로 정의될 수 있는 한편, 슬롯 2는 그러한 더 큰 페이로드 필드의 사용이 부족한 헤더의 특정 서브세트에 의해 사용하기 위한 훨씬 작은 페이로드 필드를 갖는다. 또한, 일 예에서, 다른 잠재적 구현예들 중에서, 슬롯 1 및 2 제어 필드는 (슬롯 0과는 달리) 전체 메시지 클래스 인코딩을 전달할 수 없고, 슬롯 2는 전체 오피코드 인코딩을 전달할 수 없다.
앞에서 언급한 바와 같이, 일부 실시예에서, 슬롯팅 제한으로 인해 모든 비트가 이용되는 것이 아니기 때문에, 슬롯 1 및 2는 전체 메시지 클래스 인코딩을 전달하지 않을 수 있다. 슬롯 1은 메시지 클래스 비트 0을 전달할 수 있다. 여기서, 요청(request (REQ)) 및 스누프(snoop (SNP)) 패킷이 허용된다. 이 구현예에서, REQ 및 SNP 메시지 클래스 인코딩은 비트 0에 의해 구별된다. 그 결과, 만일 설계자가 부분 메시지 클래스 필드에서 상이한 메시지 클래스를 허용하기를 원하면, 상이한 비트 위치(즉, 메시지의 두 개의 상이한 유형을 구별하는 상위 비트)를 선택하거나 상이한 메시지 유형을 하위 순서 비트에 할당할 수 있다. 그러나, 여기서 상위 두 개의 비트는 0으로 암시되며, 하위 비트는 REQ와 SNP 사이를 구별한다. 이 예에서, 단지 응답(response(RSP)) (인코딩 2) 패킷만 들어갈 수 있기 때문에, 슬롯 2는 아무런 메시지 클래스 비트도 전달하지 않는다. 따라서, 슬롯 2에 대한 메시지 클래스 인코딩은 RSP-2이다. 슬롯 2는 또한 부분 오피코드를 전달할 수 있다. 위에서와 같이, 오피코드 비트들 중 하나 이상은 0인 것으로 추정될 수 있다. 그 결과, 이용될 수 있는 메시지 및 오피코드의 서브세트를 정의하는 부분 메시지 클래스 필드 및 부분 오피코드 필드가 이용될 수 있다. 오피코드 및 메시지 클래스의 복수개의 세트가 정의될 수 있음을 주목하자. 여기서, 만일 메시지 클래스의 하위 차수 비트가 사용되면, 메시지 유형(즉, MSG 유형 1/MSG 유형 2)의 서브세트가 이용 가능하다. 그러나 다른 예들 중에서, 만일 2 비트가 사용되면, 더 큰 서브세트가 제공된다(예를 들면, 메시지 유형 1/메시지 유형 2/메시지 유형 3/메시지 유형 4).
메시지 클래스 인코딩은 플릿에 하나 이상의 정의된 슬롯을 포함(또는 이용)하도록 특정 헤더 유형에 대응할 수 있다. 예를 들면, 헤더는 복수개의 크기를 가질 수 있다. 일 예에서, 헤더 유형에 기초하여, 잠재적으로 4 가지 크기의 헤더를 지원하는 세 개의 슬롯 플릿이 정의될 수 있다. 표 1은 잠재적 헤더 포맷 및 관련 크기의 일 예의 리스팅을 포함한다.
Figure 112016069435772-pat00001
소형 (또는 단일) 슬롯 헤더는 슬롯 2에 맞게 충분히 작은 메시지용일 수 있고, 게다가 이들을 슬롯 0에 밀어넣는 프로토콜 순서화 요건을 갖지 않는다. 만일 플릿에 대한 슬로팅 제한이 이것을 요구한다면, 소형 슬롯 헤더는 또한 슬롯 0에 배치될 수 있다. 단일 슬롯 헤더는 슬롯 0 또는 슬롯 1에 맞을 수 있는 페이로드를 가진 메시지용일 수 있다. 몇몇 단일 슬롯 헤더는 또한 플로팅 페이로드 필드를 이용할 수 있다. 예를 들면, 일 실시예에서, 표준 어드레스 스누프 헤더(Standard Address Snoop (SA-S) Headers)는 단지 하나의 HTID 또는 플로팅 필드가 존재하는 예에서 동일한 플릿의 슬롯 0 및 슬롯 1 모두에서 송신되지 않을 수 있다. 특정한 단일 슬롯 헤더는 프로토콜 순서화 요건에 따라 슬롯 0을 사용할 수 있다. 다른 예들 중에서, 이중 슬롯 헤더는 플로팅 페이로드 필드뿐만 아니라, 슬롯 0 및 슬롯 1 페이로드 필드 모두를 사용하기에 충분할 정도로 큰 메시지용일 수 있다.
슬롯 NULL 오피코드는 일 예에서 슬롯 0 또는 슬롯 1에서 사용될 수 있는 특수 오피코드를 포함할 수 있다. 일 예로서, 슬롯 0의 경우, Slot_NULL은 링크 계층이 슬롯 0에서 전송할 헤더가 없지만 슬롯 1 또는 2에서 전송할 헤더를 가질 때 사용될 수 있다. 다른 예들 중에서, Slot_NULL이 슬롯 0에서 사용될 때, 슬롯 0 페이로드는 예약된 것(RSVD)으로 간주된다. 일부 구현예에서, Slot_NULL은 두 가지 조건 하에서 잠재적으로 슬롯 1에서 이용될 수 있다. 첫 번째 조건은, 슬롯 0이 이중 슬롯 또는 특별한 제어 헤더를 인코딩하고, 그래서 슬롯 1 페이로드를 사용할 때이다. 그 경우 슬롯 1 오피코드는 Slot_NULL로 설정될 수 있다. 두 번째 조건은 링크 계층이 슬롯 1에 전송할 것이 없지만 슬롯 0에 대한 유효 단일 슬롯 헤더 또는 슬롯 2에 대한 소형 슬롯 헤더를 가질 때이다. 이 조건 하에서, 다른 예들 중에서, 슬롯 1 오피코드는 Slot_NULL로 설정될 수 있고 슬롯 1 페이로드는 예약된 것으로 간주될 수 있다.
일부 구현예에서, 소형 슬롯 2는 감소된 개수의 오피코드 비트를 포함할 수 있다. 링크 계층이 슬롯 2에서 전송할 것이 없을 때, 링크 계층 크레딧 오피코드와 같은 특정 오피코드를 인코딩하고 슬롯 2 페이로드 필드를 모두 0으로 설정함으로써 명시적 NULL(Implicit NULL)을 전송할 수 있다. 이러한 슬롯 2 인코딩의 수신기는 이것을 링크 계층 크레딧 메시지로서 처리할 수 있지만 (특별한 제어 플릿의 사례를 제외함), 전체 0 인코딩은 크레딧 및 확인응답 상태에 영향을 미치지 않을 것이다. 특별한 제어 플릿들의 사례에서, 이들이 전체 플릿을 사용할 수 있기 때문에, 슬롯 2 페이로드는 RSVD인 것으로 간주될 수 있고 묵시적 NULL은 무시될 것이다. 다른 예들 중에서, 링크 계층이 세 개의 슬롯과 CRD/ACK 필드 중 임의의 슬롯에서 송신할 것이 없을 경우, 링크 계층은 특별한 제어 널 메시지를 전송할 수 있다.
슬로팅 제한은 플릿의 정의된 슬롯들 중 하나 이상에 대해 정의될 수 있다. 일 실시예에서, 이중 슬롯 헤더는 슬롯 0에 위치하는 그들의 메시지 클래스 및 오피코드를 가질 수 있을 뿐이다. 슬롯 0이 이중 슬롯 헤더를 포함할 때, 슬롯 1 페이로드 필드가 슬롯 0 헤더에 의해 사용될 것이므로, 슬롯 1은 Slot_NULL 오피코드를 인코딩할 수 있다. 슬롯 0이 Slot_NULL, 단일 슬롯, 또는 소형 슬롯 헤더를 포함할 때, 슬롯 1 및 2는 모두 논-NULL 헤더를 인코딩할 수 있다. 단지 소형 슬롯 헤더만이 이러한 특정한 예(예를 들면, 도 6에 도시됨)에서 슬롯 2에서 허용된다. 슬롯 0 및 슬롯 1 모두가 단일 슬롯 헤더를 포함할 때, 하나는 플로팅 페이로드 필드를 사용하는 유형을 가질 수 있다. 만일 슬롯 0 또는 슬롯 1의 어느 것도 플로팅 페이로드 필드를 사용하는 헤더 유형을 포함하지 않으면, 필드는 RSVD로 간주될 수 있다.
또한, 일부 구현예에서, 링크 계층은 복수개의 상이한 유형의 가상 네트워크 또는 가상 채널 크레딧을 이용할 수 있다. 일 예에서, 풀링된 가상 네트워크 적응 크레딧(pooled virtual network adaptive (VNA) credits)이 지원될 수 있고, VNA 필드가 제공될 수 있다. 일 예의 구현예에서, VNA 필드가 논-VNA 플릿(예를 들면, 상이한 크레딧 풀을 이용하는 플릿)을 표시할 때, 헤더는 슬롯 0에 위치하도록 지정될 수 있다. 또한, 슬롯 2 오피코드는 이런 사례에서는 Slot_2 크레딧을 포함할 수 있다. 또한, 다른 잠재적 구현예들 중에서, 슬롯 0이 특별한 제어 헤더를 인코딩할 때, 슬롯 1 및 슬롯 2 제어 필드는 모두 고정된 값으로 설정될 수 있고 어떤 헤더도 이러한 슬롯들에 배치되지 않을 수 있다.
앞에서 언급한 바와 같이, 각종의 상이한 필드가 도 6의 특정 예에서 도시된 바와 같은 대응하는 플릿 슬롯에 포함되도록 제공될 수 있다. 예를 통해 도시되고 기술되고 제공된 필드와 추가적인 또는 대체의 필드가 또한 포함될 수 있다는 것을 주목하자. 실제로 기술된 필드 중 일부는 다른 예들 중에서, 일부 구현예에서 옵션이며 생략될 수 있다.
일 예에서, 메시지 클래스(a message class (MC)) 필드뿐만 아니라 다른 필드가 제공될 수 있다. 일부 예에서, 프로토콜 계층은 메시지 클래스 필드를 사용하여 주요 오피코드 필드로서도 작용하는 프로토콜 클래스를 정의할 수 있다. 링크 계층은 가상 채널(virtual channel (VC)) 정의의 일부로서 메시지 클래스 필드를 사용할 수 있다. 일부 프로토콜 클래스/VC는 다른 예들 중에서, 인코딩될 오피코드의 개수로 인해 다중 메시지 클래스 인코딩을 사용할 수 있다. 예를 들면, 요청(Requests (REQ)), 스누프(Snoops (SNP)), 응답(Response (RSP)), 라이트백, 비-코히어런트 바이패스, 및 논-코히어런트 표준 유형이 지원될 수 있다. 만일 각각의 유형이 16 동작을 인코딩할 경우, 96 동작의 오피코드 공간이 있을 것이다. 그리고 만일 다른 모드 비트 또는 다른 오피코드 공간이 각각의 유형마다 정의되면, 다른 96 동작이 제공될 수 있고, 등등이다.
일 예에서, 오피코드 필드가 추가적으로 제공될 수 있다. 프로토콜 계층은 완전한 오피코드를 형성하기 위해(즉, 그 내부에 메시지 클래스 유형 및 동작을 정의하기 위해) 메시지 클래스와 함께 오피코드를 사용할 수 있다. 일 예로서, REQ 메시지 유형을 갖는 동일한 오피코드는 제 1 요◎ 동작을 정의할 수 있는 한편, SNP 메시지 클래스를 갖는 동일한 오피코드는 다른 예들 중에서, 제 2의 상이한 SNP 동작을 정의할 수 있다. 링크 계층은 홈 에이전트 및 캐싱 에이전트가 동일한 노드 ID를 공유할 때 예를 들면, 패킷에 대해 홈 에이전트 타겟 또는 캐싱 에이전트 타겟 사이를 구별하기 위해 오피코드를 사용할 수 있다. 추가적으로, 링크 계층은 또한 다른 잠재적 사용 중에서, 패킷 크기를 결정하기 위해 오피코드를 사용할 수 있다.
앞에서 언급한 바와 같이, 플릿 헤더는 가상 네트워크 적응(a Virtual network Adaptive (VNA)) 필드를 더 포함할 수 있다. 일 예에서, VNA 필드가 제 1 값으로 설정될 때, 이 필드는 플릿이 VNA 크레딧을 사용하고 있다는 것을 표시할 수 있다. 제 2 값으로 설정될 때, 플릿은 다른 잠재적 구현예들 중에서, VN0 또는 VN1 크레딧을 사용한다. 일 실시예에서, 값은 플릿이 단일 슬롯 플릿이고 슬롯 1 및 2 코드가 NULL로 정의될 수 있음을 나타낼 수 있다.
만일 플릿 내 헤더가 가상 네트워크(Virtual Network (VN)) VN0 또는 VN1과 같은 특정한 가상 네트워크를 이용한다면, 가상 네트워크 필드가 또한 제공되어 플릿에 대해 표시할 수 있다. 이것은 크레딧 목적으로 사용될 수 있으며 그리고 VNA를 사용하는 경우라면 메시지가 어느 가상 네트워크를 통과하여야 하는가를 표시하기 위해 사용될 수 있다. 만일 하나의 VN 비트가 전체 플릿에 제공되면, 복수의 헤더를 포함하는 임의의 VNA 플릿은 그들 모두가 VN0으로 전송되고 있다거나 그들 모두가 VN1로 전송되고 있다는 것을 보장할 수 있다. 대안으로, 복수의 VN 비트가 제공될 수 있다. 논 VNA 플릿의 경우, 단지 슬롯 0만이 논-제어 오피코드를 가질 수 있고, 따라서 VN은 그 헤더의 네트워크를 표시할 수 있다.
일부 구현예에서, 플릿 내 슬롯은 다른 것들 중에서, 크레딧 반환, ACK, NAK와 같은 소형 페이로드 메시지용으로 사용될 수 있다. 일 예에서, 크레딧 반환에서 사용하기 위해 인코딩될 수 있는 채널 필드가 제공될 수 있다. 이러한 인코딩은 가상 네트워크 필드와 연결하여, 신호 반환이 매핑하는 가상 채널을 제공할 수 있다. 메시지 클래스가 복수개의 인코딩을 갖는 경우, 이들은 모두 크레딧을 위한 단일 채널 값으로 매핑할 수 있다. 크레딧 반환 유형이 VNA일 때, 채널 값은 무시될 수 있다. RSVD 인코딩의 사용은 수신 컴포넌트에 의해 오류로 처리될 수 있다. 표 2는 인코딩될 수 있는 여러 채널 옵션의 예를 포함한다. 비트들의 임의의 조합(또는 16진 값을 나타내는 비트들)이 이용될 수 있다는 것을 주목하자. 일 예로서, 3 비트 중 하위 차수가 인코딩을 위해 사용될 수 있다.
Figure 112016069435772-pat00002
확인응답 또는 ACK, 필드는 또한 플릿 슬롯에 포함될 헤더 필드로서 제공될 수 있다. ACK 필드는 링크 계층에 의해 수신기로부터 송신기로 플릿의 수신 오류 없이 통신하기 위해 사용될 수 있다. 제 1 값은 갖는 ACK는 4, 8, 또는 12와 같은 복수개의 플릿이 오류없이 수신되었다는 것을 나타낸다. 송신기가 ACK를 수신할 때, 링크 계층 재시도 큐(Link Layer Retry Queue)로부터 해당 플릿을 할당 해제할 수 있다. Ack 및 Ack 필드는 크레딧 반환 제어 플릿(예를 들면, LLCRD)에서 사용될 수 있고, 이 때 반환되는 확인응답들의 총 개수는 다른 예들 중에서, 전체 확인응답 반환 값(확인응답 제 1 부분, ACK, 확인응답 제 2 부분)을 생성함으로써 결정된다.
앞에서 언급한 바와 같이, 헤더 표시 비트(a Header indication bit (Hdr))는 또한 몇몇 구현예에서 제공될 수 있으며 하나 이상의 목적을 위해 사용될 수 있다. 예를 들면, Hdr 패킷은 패킷이 헤더인지 아니면 데이터 플릿인지 식별할 수 있고, 플릿이 새로운 패킷의 시작인 것을 표시할 수 있을 뿐만 아니라, 인터리브된 링크 계층 제어 플릿의 시작을 표시할 수 있다. Hdr은 모든 패킷의 첫 플릿마다 설정될 수 있다. 또한, 전역 시스템 어드레스를 식별하는 어드레스 필드가 제공될 수 있다. 모든 코히어런트 트랜잭션은 정렬된 복수의 바이트일 수 있으며 데이터의 바이트 개수를 반환할 수 있어서, 어드레스 비트의 일부의 필요 부분을 없앨 수 있다(예를 들면, 64 바이트에서, 하위 6 비트가 생략될 수 있다). 특정의 다른 패킷의 경우, 전체 바이트 레벨 어드레스가 이용된다. 일부 예에서, 부분적 판독을 행하는 임의의 트랜잭션을 위해 요청된 바이트 데이터의 길이를 표시하는 길이 필드(a Length field)가 제공될 수 있다. 부분적 판독은 옵셋(예를 들면, 위에서 생략된 하위 부분의 어드레스 비트) 및 길이를 명시한다. 다른 예들 중에서, 유효 길이는 0 내지 트랜잭션들이 1보다 적게 정렬되는 바이트의 개수까지이다.
부가적인 필드가 포함될 수 있다. 일부 사례에서 부분적 기록을 행하는 임의의 트랜잭션에 필요한 유효 바이트를 표시하는 바이트 인에이블 필드(a Byte Enable field)가 제공될 수 있다. 바이트 인에이블 필드는 임의 개수 0 내지 트랜잭션들이 1보다 적게 정렬되는 바이트의 개수까지 가질 수 있다. 요청 TID(a Request TID (RTID)) 필드는 단일의 프로토콜 에이전트로부터 여러 요청을 고유하게 식별하는데 사용될 수 있다. 홈 트랙커 ID(a Home tracker ID (HTID)) 필드는 스누프 패킷 및 스누프 응답 패킷에서 사용되어 스누프 및 그의 응답이 연상되는 트랜잭션의 홈 트랙커 ID를 표시할 수 있다. 또한 RHTID 필드가 일부 구현예에서 제공될 수 있으며, 오피코드에 따라서, RTID 또는 HTID를 유연하게 구현할 수 있다. 예를 들면, 스누프의 경우, 스누프가 명시적인 HTID 필드를 가지므로, RHTID 필드는 RTID로서 해석될 수 있다. 한편, 홈 에이전트를 타겟으로 하는 응답 패킷의 경우, RHTID는 HTID로서 해석될 수 있다. 또한, 캐시 에이전트를 타겟으로 하는 응답 패킷의 경우, RHTID는 다른 예들 중에서, FwdCnfltO를 제외한 오피코드에 대해 RTID로서 해석될 수 있다. 일부 구현예에서, 다른 메시지 타입은 RTID로서 해석되도록 디폴트될 수 있다.
일부 구현예에서, 목적지 노드 ID(Destination Node ID (DNID)) 필드, 요청 노드 ID(Requestor Node ID (RNID)) 필드, 충돌 노드 ID(Conflict Node ID (CNID)) 필드, 및 소스 노드 ID(Source Node ID (SNID)) 필드와 같은 부가적인 필드가 제공될 수 있다. DNID는 패킷의 목적지를 식별할 수 있다. 이는 프로토콜 계층에 의해 공급되고 링크 및 라우팅 계층에 의해 사용되어 패킷을 그들의 목적지로 안내할 수 있다. RNID 필드는 트랜잭션의 원래 요청자/개시자를 식별할 수 있으며 프로토콜 계층에 의해 공급될 수 있다. CNID는 RspCnflt 패킷에서 사용되어 스누프가 충돌을 경험하였고 FwdCnfltO 가 송신되어야 하는 에이전트의 노드 ID(NID)를 표시하는데 사용될 수 있다. SNID 필드는 SR-D 패킷에서 사용되어 SR-D 패킷을 전송하는 에이전트의 노드 ID를 표시하는데 사용될 수 있다.
또한, 이전 캐시 라인 상태(a Prior Cache Line State (PCLS)) 필드는 이것이 피어 캐싱 에이전트 또는 홈 노드에서 발견되었던 캐시 라인의 상태를 인코딩하기 위해 제공될 수 있다. 예를 들면, 만일 캐시 라인이 F 상태에서 피어 노드에 의해 공급되면, 이 필드는 제 1 값으로 설정되어야 한다. 만일 캐시 라인이 홈 노드에 의해 송신되면, 홈 노드는 그가 수신한 스누프 응답에 따라서 필드를 I 상태 또는 S 상태를 반영하는 것으로 설정하여야 한다. 만일 에이전트가 이 필드를 지원하지 않으면, 에이전트는 항시 디폴트 값으로서 인코딩되게 하여야 한다. PCLS 필드는 성능 모니터링/조정 용도로 사용될 수 있다는 것을 주목하자. 논-코히어런트 보호 필드(a Non-Coherent Protected field)는 요청이 정상(Normal)인지 또는 보호 공간(Protected space) 인지 표시할 수 있다. 아래의 인코딩용 표를 참조할 것.
일부 구현예에서, HPI 링크 계층은 앞에서 기술된 것과 같은 명시적 필드 및 묵시적 필드를 가진 다중-슬롯 플릿을 지원할 수 있다. 예를 들면, 슬롯 메시지 인코딩 및 오피코드는 묵시적이라고 간주될 수 있다. 예를 들면, 슬롯 1 및 2는, 일부 사례에서 슬롯팅 제한으로 인해, 비트가 모두 필요하지 않으므로, 전체의 메시지 클래스 인코딩을 전달하지 않을 수 있다. 슬롯 1은 오직 메시지 클래스 비트 0을 전달할 뿐이며, 이 슬롯에서는 오직 REQ 및 SNP 패킷만 허용될 수 있다. REQ 및 SNP 메시지 클래스 인코딩은 비트 0에 의해 구별되며, 상위 두 비트는 0 비트인 것으로 암시될 수 있다. 슬롯 2는, 이 슬롯에서 오직 RSP (인코딩 2) 패킷만 허용되므로, 메시지 클래스 비트를 전달하지 않을 수 있다. 그러므로 슬롯 2의 메시지 클래스 인코딩은 RSP-2일 수 있다. 슬롯 2는 또한 오직 오피코드의 일부분만을 전달할 수 있고, 이때 오피코드의 제 2 부분은 디폴트 값인 것으로 추정된다. 이것은 디폴트 값을 보유하는 제 2 부분을 갖는 RSP-2 패킷이 슬롯 2에서 허용된다는 것을 의미한다. 또한, 일 실시예에서, 완료 오피코드 필드(Complete opcode field)는 전체 메시지 클래스를 전체 오피코드 필드와 조합함으로써 만들어질 수 있고, 따라서 완료 오피코드를 형성한다.
묵시적 필드의 추가 예는 오피코드에 의해 암시될 수 있는 패킷 길이를 포함할 수 있다. 또한, 전역적으로 고유 트랜잭션 ID(Unique Transaction ID (TJTID))는 요청자 NodeID를 요청자 트랜잭션 ID와 연결함으로써 형성될 수 있다. P2P 트랜잭션과 논-P2P 트랜잭션 간의 RTID 공간에는 중첩이 있을 수 있다는 것을 주목하자. 예를 들면, 전역적으로 P2P 고유 트랜잭션 ID(P2P Unique Transaction ID (P2PUTID))는 요청자 NodeID를 요청자 트랜잭션 ID와 연결함으로써 형성될 수 있다.
도 6의 예에서 도시된 것과 같은 일부 구현예에서, 플릿의 구조는 트랜잭션 ID(TID)가 플릿 공간의 11개 비트를 이용하는 것을 허용할 수 있다. 그 결과로서, 선-할당(pre-allocation) 및 분산된 홈 에이전트들의 인에이블링이 제거될 수 있다. 뿐만 아니라, 일부 구현예에서, 11개 비트의 사용은 TID가 확장된 TID 모드 용도로 사용하지 않고 사용되게 할 수 있다.
링크 계층 로직은 각각의 링크 측의 각각의 에이전트를 통해 제공될 수 있다. 에이전트 또는 디바이스의 송신기는 상위 계층(예를 들면, 프로토콜 또는 라우팅 계층)으로부터 데이터를 수신할 수 있고 하나 이상의 플릿을 생성하여 데이터를 원격 에이전트의 수신기로 전송할 수 있다. 에이전트는 두 개 이상의 슬롯을 가진 플릿을 생성할 수 있다. 일부 사례에서, 에이전트는 정의된 슬롯을 이용하여 복수의 단일 플릿 내에서 메시지 또는 패킷을 조합하려 시도할 수 있다.
일부 구현예에서, 링크 계층 로직은 각각의 정의된 슬롯에 대응하는 전용의 경로를 포함할 수 있다. 경로는 하드웨어 및 소프트웨어 중 하나 또는 둘 다로 구현될 수 있다. 에이전트의 수신기는 (물리 계층을 이용하여 재구성된 것으로서) 플릿을 수신할 수 있고 링크 계층 로직은 각 슬롯을 식별하고 각 슬롯의 경로를 이용하여 슬롯을 처리할 수 있다. 링크 계층은 플릿을 처리할 수 있으며, 각 슬롯에는 제어 필드, 헤더 필드, CRC 필드 등과 같은 플릿의 하나 이상의 인코딩된 필드에 따라서 데이터가 포함된다.
예시적인 일 예에서, 송신기는 제 1 트랜잭션과 연관된 기록 요청, 다른 제 2 트랜잭션과 연관된 스누프 요청, 그리고 송신기가 다른 디바이스로 (또는 이를 통해서) 송신될 수 있는 하나 이상의 확인응답이나 크레딧 반환을 수신할 수 있다. 송신기는 인터커넥트의 직렬 데이터 링크를 통해 단일 플릿을 다른 디바이스로 송신할 수 있고, 이러한 단일 플릿은 기록 요청, 스누프, 및 확인응답(예를 들면, 완료)의 각각마다 헤더를 포함하며, 각각의 헤더는 (예를 들면 도 6의 예에서 도시된 3-슬롯 구현예에서) 각각의 플릿 슬롯을 점유한다. 송신기는 수신하는 데이터를 버퍼할 수 있고 단일 플릿 내에서 복수의 메시지를 송신하는 기회를 식별할 수 있다. 많은 다른 잠재적인 예들 중에서, 수신기는 컴파일된 플릿을 수신하고 각 슬롯을 병렬로 처리하여 세 메시지의 각각을 식별하고 처리할 수 있다.
일부 구현예에서, 단일의 플릿을 이용하여 복수의 메시지를 송신하기 위하여 다중-슬롯 플릿에는 복수의 헤더가 포함될 수 있다. 몇몇 예에서, 각각의 헤더는 완전히 독립적인 트랜잭션과 관련될 수 있다. 일부 구현예에서, 각각의 플릿이 특정한 가상 네트워크를 향하는 메시지만을 포함하도록 플릿의 유연성이 제한될 수 있다. 다른 구현예는 그러한 조건이 없을 수 있다.
슬롯 메시지를 모두 복수의 가상 네트워크들 중 공통의 네트워크에 적용하는 사례에서, 전통적으로 슬롯의 각 가상 네트워크의 식별을 위해 예약되었을 비트는, 일부 구현예에서, 잠재적으로 다른 이득들 중에서, 플릿 포맷에 의해 도입되는 효율성 개선을 더욱 높여주는 다른 용도로 전용될 수 있다. 일 예에서, 다중-슬롯 헤더 플릿 내 모든 슬롯은 VNA 단독, VN0 단독, 또는 VN1 단독 등과 같은 단일의 가상 네트워크에 맞추어 조정될 수 있다. 이렇게 실시함으로써, 가상 네트워크를 나타내는 슬롯당 비트는 제거될 수 있다. 이로써 플릿 비트 이용 효율이 증가되며 다른 예들 중에서, 잠재적으로는 10 비트 TID를 11개 비트 TID로 확장하는 것과 같은 다른 특징이 가능해진다. 일부 구현예에서, 11개 비트 TID로 확장하게 되면 TID가 확장된 TID 모드 용도로 사용하지 않고 사용될 수 있게 할 수 있다.
HPI에서, 더 큰 CRC 베이스라인은 더 큰 다중-슬롯 플릿에서 오류 검출을 제공하는데 사용될 수 있다. 몇몇 사례에서, CRC 베이스라인은 다른 CRC를 포함하여, 오류 검출을 전통적인 오류 검출 구현보다 더 개선할 수 있다. 도 6의 일 예의 다중-슬롯 플릿에서 도시된 바와 같은 일 예에서, 플릿마다 16개 비트가 CRC에 전용될 수 있다. 더 큰 CRC의 결과로서, 더 큰 페이로드가 또한 이용될 수 있다. CRC의 16개 비트는 이러한 비트와 함께 사용되는 다항식과 합동하여 오류 검출을 개선한다.
플릿의 CRC 필드의 값은 플릿의 페이로드를 나타내는 비트 데이터 마스크로부터 생성될 수 있다. CRC 값은 특정 다항식에 기초하여 생성될 수 있다. 도 6의 예와 같은 일 예에서, 192개 비트 플릿은 16개 비트의 CRC 필드를 포함할 수 있다. 따라서, 176 (논-CRC) 비트 데이터 마스크가 (선택된 다항식에 기초하여) XOR 트리와 함께 사용되어 16 CRC 비트를 생성할 수 있다. 플릿 페이로드 비트는 레인 내에서 UI 전반에 수직으로 매핑할 수 있다. 이로써 버스트 오류 보호를 유지할 수 있다.
에이전트의 링크 계층 로직은 플릿의 CRC 값을 생성하기 위해 사용될 수 있다. 생성된 CRC 값은 그의 대응하는 플릿의 CRC 필드에서 인코딩될 수 있다. 그런 다음 플릿은 직렬 데이터 링크를 통해 수신기로 송신될 수 있다. 수신기의 링크 계층 로직은 CRC 값을 생성하는데 사용된 동일한 다항식을 수신된 플릿의 CRC 필드에서 확인되는 CRC 값에 적용할 수 있다. 수신기는 CRC 값으로부터 체크섬을 생성하고 그 결과를 나머지 논-CRC 플릿 데이터와 비교하여 링크를 통해 플릿을 전송하는 것 때문에 임의의 비트 오류가 생성하였는지를 결정할 수 있다. 만일 레인에서 오류가 존재한다면, 다른 예들 중에서, 체크섬은 하나 이상의 비트 오류를 나타내는 불일치 결과를 생성하여야 한다. 부가적으로, 일부 구현예에서, CRC 코드는 송신기에서 생성된 후 반전되고 송신기에서 다시 반전된 다음에 검사되어, 예를 들어, 잠재적으로 모두 0 또는 모두 1인 플릿이 CRC 검사를 통과하지 못하게 할 수 있다.
CRC의 정확도는 CRC 값의 길이 및 플릿을 송신하는데 사용되는 레인의 개수에 기초를 두고 있을 수 있다. 예를 들어, 잠재적인 오류 버스트 레이트는 링크에서 사용되는 레인의 개수가 줄어듦에 따라서 증가할 수 있다. 이것은 예를 들어, 상태를 전송하는 부분 폭을 지원하는 HPI 시스템에다 부가적인 복잡도를 도입시킬 수 있다.
일부 사례에서, CRC 다항식은 보호되는 블록의 최대 총 길이(데이터 + CRC 비트)와, 희망하는 오류 보호 특징과, CRC를 구현하기 위한 자원의 타입뿐만 아니라, 희망하는 성능에 기초하여 설계될 수 있다. 몇몇 예에서, CRC 다항식은 기약 다항식(irreducible polynomial) 또는 짝수 비트에 영향을 미치는 모든 오류를 검출하는 팩터 곱하기 기약 다항식으로부터 유도될 수 있다. 그러나, 일부 사례에서, 기약 다항식을 선택하게 되면 제로 제수(zero divisors)를 갖는 링으로 인하여 오류를 놓치는 결과를 가져올 수 있다.
일 예의 구현예에서, 원시 다항식은 결과적인 CRC 코드가 최대의 총 블록 길이를 갖게 해주는 CRC 코드의 생성자로서 이용될 수 있다. 예를 들어, 만일 r이 원시 생성 다항식의 차수라고 하면, 최대의 블록 길이는 (2r-1)일 수 있고, 연관된 코드는 임의의 단일 비트 또는 이중 비트 오류를 검출할 수 있다. 다른 구현예에서, 생성 다항식 g(x) = p(x)(1+x)이 이용될 수 있고, 여기서 p(x)는 차수 (r-1)의 원시 다항식이고, 최대 블록 길이는 (2r-1-1)이며, 결과 코드는 다른 예들 중에서, 단일, 이중, 및 삼중 오류를 검출할 수 있다.
다른 인수분해를 인정하는 다항식 g(x)은 최대의 총 블록길이를 희망하는 오류 검출 능력과 균형을 이루기 위해 이용될 수 있다. 예를 들어, BCH 코드는 그러한 다항식의 강력한 부류이다. 차수 r의 생성 다항식의 희석성 속성(reducibility property)과 무관하게, 이것이 "+1" 항을 포함하면, 코드는 r 인접 비트의 윈도우로 국한되는 오류 패턴을 검출할 수 있다. 이러한 패턴은 "오류 버스트"라고 지칭될 수 있다. 그러한 오류 버스트는, 예를 들면, 오류가 링크의 레인들 중 하나에 영향을 미칠 때 생성할 수 있다.
일 특정 예에서, 192개 비트 플릿은 16개 비트의 CRC 필드를 포함할 수 있다. 16개 비트의 CRC 다항식은 링크 계층 로직에서 구현되어 CRC 필드의 값을 생성할 수 있다. 일 실시예에서, 다항식은 1-비트, 2-비트, 3-비트, 및 4-비트 오류의 검출, 버스트 길이 16이나 그보다 길이가 적은 오류의 검출을 가능하게 할 수 있고, 이때 모든 다른 오류 조건들 중 1:216 만이 검출되지 않는다. 일 특정 예에서, 이용된 16개 비트의 CRC 다항식은 0x1b7db(x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1)일 수 있고 그래서 다른 잠재적인 구현예 및 대안들 중에서, 93의 XOR 깊이, 4 비트 랜덤 오류 검출, 및 16개 비트 버스트 보호를 제공할 수 있다.
앞에서 언급한 바와 같이, CRC의 오류 검출 속성은 CRC의 길이에 기초할 수 있다. 예를 들어, 192개 비트 플릿을 보호하는 16개 비트의 CRC의 경우, 오류 검출은 버스트 길이 16 이하의 오류를 포착할 수 있다. 그러한 구현예는 플릿을 전송하는 12개 이상의 레인을 이용하는 링크에서 나타날 수 있는 실질적으로 모든 단일-레인 오류를 효과적으로 포착할 수 있다. 그러나, 더 적은 레인을 이용하여 플릿을 전송하는 링크 또는 링크 상태의 경우, 16개 비트의 CRC 이면 충분할 수 있다. 예를 들어, 8개 레인의 링크의 단일 레인에서 고장 또는 오류는 결과적으로 24비트만큼 높은 버스트 길이를 가진 오류를 일으킬 수 있다.
일부 구현예에서, 롤링 CRC는 일정 개수의 비트를 CRC에 전용하는 플릿 포맷을 통해 제공되는 오류 검출 속성을 확장하는데 사용될 수 있다. 일 실시예에서, 두 개 이상의 CRC 다항식 및 두 개 이상의 대응하는 XOR 트리에 기초하는 롤링 CRC가 (적어도 일부 HPI-순응 디바이스에서) 제공될 수 있다. 두 개 이상의 플릿의 시퀀스에 대해, 제 1 CRC 코드는 제 1 플릿의 일차 다항식에 의해 생성될 수 있다. 제 2 플릿의 경우, 제 2 CRC 다항식이 사용되어 제 2 CRC 코드등을 생성할 수 있다. 일차 다항식에 의해 생성되는 제 1 CRC 코드는 이차 다항식에 의해 생성되는 제 2 CRC 코드와 XOR 연산되어 롤링 CRC 값을 생성할 수 있다. 롤링 CRC 값은 (예를 들면, 플릿의 CRC 필드 내에서) 수신기에 제공될 수 있다. 롤링 CRC 값은 시스템의 능력을 개선하는 데이터의 복수 플릿의 가치를 효과적으로 반영하여 다른 예들 중에서, 여분의 CRC 비트 때문에 페이로드를 부가적으로 희생하지 않으면서 버스트 길이가 더 높은 비트 오류를 검출할 수 있다.
일 실시예에서, 두 CRC-16 수식에 기초한 롤링 CRC가 이용된다. HPI CRC-16으로부터의 다항식 및 이차 다항식인 두 개의 16개 비트 다항식이 사용될 수 있다. 이차 다항식은 최소 개수의 게이트를 가지고 1) 모든 1-7 비트 오류의 검출, 2) (8개 레인 길이에서 24UI를 커버하는) x.8 링크 폭에서 레인 당 버스트 보호, 3) 버스트 길이 16 이하의 모든 오류의 검출, 그리고 4) 모든 다른 오류 조건들 중 오직 1:232만 검출되지 않는 속성을 실현하는 32 비트 롤링 CRC 알고리즘을 구현한다. 일 예에서, 이차 다항식은 0x10147 (x16 + x8 + x6 + x2 + x1 + 1)을 포함할 수 있다. 상이한 길이의 플릿에 맞게 만들어진 구현예, 또는 구현예의 특정 설계에 따라서 상이한 (많거나 적은) 최소 레인을 지원하는 링크가 대응하는 정의된 다항식 및 CRC 필드 길이를 갖는 시스템과 같은 다른 일예의 구현예는 앞에서 예시된 원리를 이용할 수 있다.
HPI는 다를 예들 중에서, 메인프레임, 서버 시스템, 개인용 컴퓨터, 모바일 컴퓨터(예를 들면, 태블릿, 스마트폰, 개인용 디지털 시스템 등), 스마트 기기, 게이밍 또는 엔터테인먼트 콘솔, 및 셋톱 박스를 포함하는 임의의 다양한 컴퓨팅 디바이스 및 시스템에 통합될 수 있다. 예를 들어, 도 11은 일부 구현예에 따른 일 예의 컴퓨터 시스템(1100)을 도시한다. 도 11에 도시된 바와 같이, 멀티프로세서 시스템(1100)은 포인트-투-포인트 인터커넥트 시스템이고, 포인트-투-포인트 인터커넥트(1150)를 통해 연결되는 제 1 프로세서(1170) 및 제 2 프로세서(1180)를 포함한다. 각각의 프로세서(1170 및 1180)는 프로세서의 일부 버전일 수 있다. 일 실시예에서, (1152 및 1154)는 고성능 아키텍처와 같은 직렬 포인트-투-포인트 코히어런트 인터커넥트 패브릭의 일부이다. 결과로서, 본 발명은 QPI 아키텍처 내에서 구현될 수 있다.
단지 두 프로세서들(1170, 1180)만이 도시되어 있지만, 본 발명의 범위는 이것으로 제한되지 않음은 물론이다. 다른 실시예에서, 하나 이상의 부가적인 프로세서들이 주어진 프로세서에서 존재할 수 있다.
프로세서(1170, 1180)는 각기 통합된 메모리 제어기 유닛(1172 및 1182)을 포함하는 것으로 도시된다. 프로세서(1170)는 그의 버스 제어기 유닛의 일부로서 포인트-투-포인트(P-P) 인터페이스(1176 및 1178)를 포함하며, 유사하게 제 2 프로세서(1180)는 P-P 인터페이스(1186 및 1188)를 포함한다. 프로세서(1170, 1180)는 포인트-투-포인트(P-P) 인터페이스 회로(1178, 1188)를 이용하는 P-P 인터페이스(1150)를 통해 정보를 교환할 수 있다. 도 11에 도시된 바와 같이, IMC(1172 및 1182)는 프로세서를 각각의 메모리, 즉 각각의 프로세서에 논리적으로 부착되는 메인 메모리의 일부일 수 있는 메모리(1132) 및 메모리(1134)에 연결한다.
프로세서(1170, 1180)는 각기 포인트-투-포인트 인터페이스 회로(1176, 1194, 1186, 1198)를 이용하는 개개의 P-P 인터페이스(1152, 1154)를 통해 칩셋(1190)과 정보를 교환한다. 칩셋(1190)은 또한 고성능 그래픽 인터커넥트(1139)를 따라서 놓인 인터페이스 회로(1192)를 통해 고성능 그래픽 회로(1138)와 정보를 교환한다.
공유 캐시(도시되지 않음)는 프로세서 또는 두 프로세서의 외부에 포함될 수 있지만, P-P 인터커넥트를 통해 프로세서들과 접속되어, 만일 프로세서가 저전력 모드에 놓여있을 때 프로세서들의 국부 캐시 정보 중 하나 또는 모두 공유 캐시에 저장될 수 있게 한다.
칩셋(1190)은 인터페이스(1196)를 통해 제 1 버스(1116)에 연결될 수 있다. 일 실시예에서, 본 발명의 범위가 이것으로 제한되지 않지만, 제 1 버스(1116)는 주변 컴포넌트 인터커넥트(PCI) 버스, 또는 PCI 익스프레스나 다른 3 세대 I/O 인터커넥트 버스와 같은 버스일 수 있다.
도 11에 도시된 바와 같이, 각종 I/O 디바이스(1114)는 제 1 버스(1116)를 제 2 버스(1120)에 연결하는 버스 브릿지(1118)와 함께 제 1 버스(1116)에 연결된다. 일 실시예에서, 제 2 버스(1120)는 적은 핀수(low pin count (LPC)) 버스를 포함한다. 예를 들면, 일 실시예에서 키보드 및/또는 마우스(1122), 통신 디바이스(1127) 및 종종 명령어/코드 및 데이터(1130)를 포함하는 디스크 드라이브나 다른 대량 저장 디바이스와 같은 저장 유닛(1128)을 비롯한 각종 디바이스는 제 2 버스(1120)에 연결된다. 또한, 오디오 I/O(1124) 는 제 2 버스(1120)에 연결된 것으로 도시된다. 포함된 컴포넌트 및 인터커넥트 아키텍처가 바뀐 다른 아키텍처가 가능하다는 것을 주목하여야 한다. 예를 들면, 도 11의 포인트-투-포인트 아키텍처 대신, 시스템은 멀티-드롭 버스 또는 다른 그러한 아키텍처를 구현할 수 있다.
본 발명이 제한된 개수의 실시예에 대해 기술되었지만, 본 기술에서 통상의 지식을 가진 자들에게는 이로부터 다수의 수정과 변경이 인식될 것이다. 첨부의 청구범위는 그러한 모든 수정과 변경이 본 발명의 참 사상과 범위 내에 속하는 것으로 망라하고자 한다.
설계는 시뮬레이션을 위한 창조에서부터 제조에 이르기까지 여러 단계를 거칠 수 있다. 설계를 표현하는 데이터는 다수의 방식으로 설계를 표현할 수 있다. 첫 번째로, 시뮬레이션에서 유용한 것으로서, 하드웨어는 하드웨어 서술 언어 또는 다른 기능적 서술 언어를 이용하여 표현될 수 있다. 또한, 로직 및/또는 트랜지스터 게이트를 가진 회로 레벨 모델은 설계 프로세서의 일부 단계에서 생성될 수 있다. 뿐만 아니라, 몇몇 단계에서, 대부분의 설계는 하드웨어 모델로 각종 디바이스의 물리적인 배치를 표현하는 데이터의 레벨에 이른다. 통상의 반도체 제조 기술이 사용되는 경우, 하드웨어 모델을 표현하는 데이터는 집적 회로를 제조하는데 사용되는 마스크 용도의 여러 마스크 층 상에 각종 특징의 존재 또는 부재를 명시하는 데이터일 수 있다. 설계의 임의의 표현에 있어서, 데이터는 임의의 형태의 머신 판독가능한 매체에 저장될 수 있다. 메모리 또는 디스크와 같은 자기 또는 광 저장소는 정보를 저장하기 위해 변조되거나 그렇지 않고 그러한 정보를 전송하기 위해 생성되는 광 또는 전기파를 통해 전송되는 정보를 저장하는 머신 판독가능한 매체일 수 있다. 코드나 설계를 표시 또는 전달하는 전기 반송파가 전기 신호의 복사, 버퍼링, 또는 재전송이 수행되는 범위에 이르기까지 전송될 때, 새로운 복사가 이루어진다. 그러므로, 통신 제공자 또는 네트워크 제공자는 유형의 머신-판독가능한 매체 상에, 적어도 일시적으로, 본 발명의 실시예들의 기술을 구현하는 반송파로 인코딩된 정보와 같은 물품을 저장할 수 있다.
본 명세서에서 사용된 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 말한다. 예로서, 모듈은 마이크로컨트롤러에 의해 실행되도록 적응된 코드를 저장하는 비-일시적인 매체와 연관되는 마이크로컨트롤러와 같은 하드웨어를 포함한다. 그러므로, 일 실시예에서, 모듈이라고 언급하는 것은 비-일시적 매체 상에 보유되는 코드를 인식 및/또는 실행하도록 구체적으로 구성된 하드웨어를 말하는 것이다. 뿐만 아니라, 다른 실시예에서, 모듈의 사용은 마이크로컨트롤러에 의해 실행되어 기설정된 동작을 수행하도록 명시적으로 적응된 코드를 포함하는 비-일시적 매체를 말한다. 또한 또 다른 실시예에서 추론될 수 있는 것처럼, (이 예에서) 모듈이라는 용어는 마이크로컨트롤러와 비-일시적 매체의 조합을 말할 수 있다. 종종 떼어져 있는 것처럼 도시되는 모듈 경계는 일반적으로 변하기도 하며 잠재적으로 중첩한다. 예를 들면, 제 1 및 제 2 모듈은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 공유하면서, 잠재적으로 일부의 독립적인 하드웨어, 소프트웨어, 또는 펌웨어를 유지할 수 있다. 일 실시예에서, 로직이라는 용어의 사용은 트랜지스터, 레지스터와 같은 하드웨어, 또는 프로그래머블 로직 디바이스와 같은 다른 하드웨어를 포함한다.
일 실시예에서, '로 구성된'이라는 문구의 사용은 지정되거나 결정된 작업을 수행하도록 장치, 하드웨어, 로직, 또는 소자를 배열, 조립, 제조, 판매 제안, 수입 및/또는 설계하는 것을 말한다. 이 예에서, 동작하지 않는 장치 또는 요소는 만일 이것이 지정된 작업을 수행하도록 설계되고, 연결되고, 및/또는 상호접속된다면 그 지정된 작업을 수행하도록 구성된다. 전적으로 예시적인 예로서, 로직 게이트는 동작 중에 0이나 1을 제공할 수 있다. 그러나 인에이블 신호를 클록에 제공'하도록 구성된' 로직 게이트라도 1이나 0을 제공할 수 있는 모든 잠재적인 로직 게이트를 포함하지는 않는다. 그 대신, 로직 게이트는 동작 중에 1이나 0의 출력이 생성하여 클럭을 인에이블시키게 하는 몇 가지 방식으로 연결된 로직 게이트이다. 되풀이하면 '로 구성된'이라는 용어의 사용은 동작을 필요로 하지 않지만, 그 대신 장치, 하드웨어, 및/또는 소자의 잠재한 상태에 초점을 맞추는 것임을 주목하여야 하며, 이 때 잠재적 상태에서 장치, 하드웨어, 및/또는 소자는 장치, 하드웨어, 및/또는 소자가 동작하고 있을 때 특별한 작업을 수행하도록 설계된다.
뿐만 아니라, 일 실시예에서, '하도록', '할 수 있는', 및/또는 '동작 가능한'이라는 문구의 사용은 장치, 로직, 하드웨어, 및/또는 소자를 명시된 방식으로 사용할 수 있게 하는 그런 방법으로 일부 장치, 로직, 하드웨어, 및/또는 소자가 설계된 것을 말한다. 일 실시예에서, 하도록, 할 수 있는, 또는 동작 가능한이라는 용어의 사용은 장치, 로직, 하드웨어, 및/또는 소자의 잠재한 상태를 말하며, 이 때 장치, 로직, 하드웨어, 및/또는 소자는 동작하고 있지 않지만 명시된 방식으로 장치를 사용할 수 있게 하는 그러한 방식으로 설계되어 있다.
본 명세서에서 사용된 바와 같은 값은 개수, 상태, 논리 상태, 또는 이진 논리 상태의 임의의 공지된 표현을 포함한다. 종종, 논리 레벨, 논리 값, 또는 논리 값의 사용은 단순히 이진 논리 상태를 표현하는 1의 값 및 0의 값을 말하기도 한다. 예를 들면, 1은 하이 로직 레벨을 말하며 0은 로우 로직 레벨을 말한다. 일 실시예에서, 트랜지스터 또는 플래시 셀과 같은 저장 셀은 단일의 논리 값이나 여러 논리 값을 보유할 수 있다. 그러나, 컴퓨터 시스템에서 값의 다른 표현이 사용되고 있다. 예를 들면, 십진수 10은 1010이라는 이진 값 및 16진 문자 A로서 표현될 수도 있다. 그러므로, 값은 컴퓨터 시스템에서 보유될 수 있는 정보의 임의의 표현을 포함한다.
더욱이, 상태는 값 또는 값의 부분으로 표현될 수 있다. 예로서, 논리 1과 같은 제 1 값은 디폴트 또는 초기 상태를 표현할 수 있고, 반면 논리 0과 같은 제 2 값은 비-디폴트 상태를 표현할 수 있다. 또한, 일 실시예에서, 리셋 또는 셋이라는 용어는 각기 디폴트 및 갱신된 값이나 상태를 말한다. 예를 들면, 디폴트 값은 잠재적으로 하이 논리 값, 즉 리셋을 포함하며, 반면 갱신된 값은 잠재적으로 로우 논리 값, 즉 셋을 포함한다. 값들의 임의의 조합은 임의의 개수의 상태들을 표현하기 위해 이용될 수 있다.
전술한 방법, 하드웨어, 소프트웨어, 펌웨어 또는 코드 세트의 실시예들은 프로세싱 요소에 의해 실행 가능한 머신-액세스 가능한, 머신 판독가능한, 컴퓨터 액세스 가능한, 또는 컴퓨터 판독가능한 매체 상에 저장된 명령어 또는 코드를 통해 구현될 수 있다. 비-일시적 머신-액세스 가능한/판독 가능한 매체는 컴퓨터 또는 전자 시스템과 같은 머신에 의해 판독가능한 형태의 정보를 제공(즉, 저장 및/또는 전송)하는 임의의 메커니즘을 포함한다. 예를 들면, 비-일시적인 머신-액세스 가능한 매체는 정적 랜덤 액세스 메모리(RAM) 또는 동적 RAM(DRAM)과 같은 랜덤 액세스 메모리(RAM); ROM; 자기 또는 광 저장 매체; 플래시 메모리 디바이스; 전기 저장 디바이스; 광 저장 디바이스; 음향 저장 디바이스; 일시적(전파된) 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호)로부터 수신된 정보를 보유하기 위한 다른 형태의 저장 디바이스, 등을 포함하며, 이들은 이들로부터 정보를 수신할 수 있는 비-일시적 매체와 구별될 것이다.
본 발명의 실시예들을 수행하는 로직을 프로그램하는데 사용되는 명령어는 DRAM, 캐시, 플래시 메모리, 또는 여타 저장소와 같은 시스템 내 메모리 내에 저장될 수 있다. 뿐만 아니라, 명령어는 네트워크를 통해 또는 다른 컴퓨터-판독가능한 매체에 의해 분산될 수 있다. 그래서 머신-판독가능한 매체는 머신(예를 들면, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하기 위한 임의의 메커니즘, 즉 이것으로 제한되지 않지만, 플로피 디스켓, 광 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 및 광자기 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 소거가능한 프로그래머블 판독 전용 메모리(EPROM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리(EEPROM), 자기 또는 광 카드, 플래시 메모리, 또는 전기, 광, 음향, 또는 다른 형태의 전파 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호 등)를 통해 인터넷을 거쳐 정보의 전송에 사용되는 유형의 머신-판독가능한 저장소를 포함할 수 있다. 따라서, 컴퓨터-판독가능한 매체는 전자 명령어 또는 정보를 머신(예를 들면, 컴퓨터)에 의해 판독가능한 형태로 저장 또는 전송하기에 적합한 임의의 형태의 유형의 머신-판독가능한 매체를 포함한다.
다음의 예들은 본 명세서에 따른 실시예와 관련된다. 하나 이상의 실시예는트랜잭션 데이터를 식별하고, 세 개 이상의 슬롯 및 상기 슬롯의 두 개 이상 중 임의의 하나의 슬롯의 확장으로서 사용될 플로팅 필드를 포함하는 플릿을 생성하고, 플릿을 전송하는 장치, 시스템, 머신 판독가능한 저장소, 머신 판독가능한 매체 및 방법을 제공할 수 있다.
적어도 일 예에서, I/O 로직은 물리 계층 로직, 링크 계층 로직, 및 프로토콜 계층 로직을 포함하는 계층화된 스택을 포함한다.
적어도 일 예에서, 세 개 이상의 슬롯은 세 개의 정의된 슬롯으로 구성된다.
적어도 일 예에서, 플릿은 192개 비트를 포함한다.
적어도 일 예에서, 세 개의 슬롯 중 제 1 슬롯은 72개 비트를 포함하고, 상기 세 개의 슬롯 중 제 2 슬롯은 70개 비트를 포함하고, 제 3 슬롯은 18개 비트를 포함한다.
적어도 일 예에서, 제 1 슬롯 및 제 2 슬롯은 각기 50개 비트의 페이로드 필드를 포함한다.
적어도 일 예에서, 플로팅 필드는 제 1 슬롯 또는 제 2 슬롯의 페이로드 필드를 11개 비트까지 확장하는 것이다.
적어도 일 예에서, 제 3 슬롯은 확인응답 및 크레딧 반환 중 하나 이상으로 인코딩되도록 구성된다.
적어도 일 예에서, 플릿은 16개 비트의 순환 중복 검사(CRC) 필드를 더 포함한다.
적어도 일 예에서, 플릿은 11개 비트의 트랜잭션 식별자(TID) 필드를 더 포함한다.
적어도 일 예에서, 각각의 슬롯은 별도의 메시지의 헤더를 포함한다.
적어도 일 예에서, 각각의 메시지는 특정한 가상 네트워크 내에서 각각의 트랜잭션과 연관된다.
적어도 일 예에서, 플릿은 특정한 가상 네트워크를 식별하는 가상 네트워크 식별자를 더 포함한다.
적어도 일 예에서, 여러 가상 네트워크에서 트랜잭션과 연관된 메시지 헤더는 별도의 플릿에 포함된다.
하나 이상의 예는 플릿을 수신 - 플릿은 플릿에 포함될 세 개 이상의 슬롯 및 상기 슬롯의 두 개 이상의 슬롯 중 임의의 하나의 슬롯의 확장으로서 사용될 플로팅 필드를 포함함 - 하고, 각 슬롯을 처리하여 하나 이상의 트랜잭션에 관련하는 하나 이상의 헤더를 식별하는 장치, 시스템, 머신 판독가능한 저장소, 머신 판독가능한 매체 및 방법을 제공할 수 있다.
적어도 일 예에서, 하나 이상의 헤더는 세 개 이상의 헤더를 포함한다.
적어도 일 예에서, 각각의 헤더는 상이한 각각의 트랜잭션과 연관된 각각의 메시지에 대응한다.
적어도 일 예에서, 상기 각각의 트랜잭션은 특정한 가상 네트워크에 포함된다.
적어도 일 예에서, 실시예는 플로팅 필드가 확장하는 것이 제 1 슬롯 및 제 2 슬롯 중 어느 슬롯인지를 더 식별할 수 있다.
적어도 일 예에서, 제 3 슬롯은 확인응답 및 크레딧 반환 중 하나 이상으로 인코딩되도록 구성된다.
적어도 일 예에서, 플릿은 직렬 데이터 링크를 통해 제 1 디바이스에서 제 2 디바이스로 송신될 수 있다. 제 1 디바이스 및 제 2 디바이스는 마이크로프로세서, 그래픽 가속기, 및 다른 디바이스를 포함할 수 있다.
하나 이상의 예는 적어도 링크 계층 및 물리 계층을 포함하는 계층화된 프로토콜 스택을 더 제공할 수 있으며, 계층화된 프로토콜 스택은 직렬 차동 링크에 연결되도록 구성되고, 계층화된 프로토콜 스택은 직렬 차동 링크를 통해 192개 비트의 플릿을 전송하도록 더 구성된다.
적어도 일 예에서, 192개 비트의 플릿은 16개 비트의 CRC를 포함한다.
하나 이상의 예는 적어도 링크 계층 및 물리 계층을 포함하는 계층화된 프로토콜 스택을 더 제공할 수 있으며, 계층화된 프로토콜 스택은 직렬 차동 링크에 연결되도록 구성되고, 계층화된 프로토콜 스택은 직렬 차동 링크를 통해 플릿을 전송하도록 더 구성되고, 플릿은 11개 비트의 트랜잭션 식별자 필드를 포함한다.
하나 이상의 예는 적어도 링크 계층 및 물리 계층을 포함하는 계층화된 프로토콜 스택을 더 제공할 수 있으며, 계층화된 프로토콜 스택은 직렬 차동 링크에 연결되도록 구성되고, 계층화된 프로토콜 스택은 복수의 슬롯을 포함하는 헤더 플릿을 어셈블하도록 더 구성된다.
적어도 일 예에서, 복수의 페이로드 슬롯은 3개 슬롯을 포함한다.
적어도 일 예에서, 3개 슬롯 중 제 1 슬로 및 제 2 슬롯은 크기가 동일하고 3개 슬롯 중 제 3 슬롯은 상기 제 1 슬롯보다 작다.
적어도 일 예에서, 특수 제어 플릿은 모든 3개 슬롯을 소모할 수 있다.
적어도 일 예에서, 플릿은 16개 비트의 CRC를 포함한다.
하나 이상의 실시예는 트랜잭션 데이터를 식별하고, 트랜잭션 데이터로부터 플릿을 생성 - 플릿은 두 개 이상의 슬롯, 페이로드, 및 페이로드에 기초하여 생성되는 16개 비트의 순환 중복 검사(CRC) 값으로 인코딩되는 CRC 필드를 포함함 - 하고, 플릿을 상기 직렬 데이터 링크를 통해 디바이스로 송신하는 장치, 시스템, 머신 판독가능한 저장소, 머신 판독가능한 매체 및 방법을 제공할 수 있다.
적어도 일 예에서, I/O 로직은 물리 계층 로직, 링크 계층 로직, 및 프로토콜 계층 로직을 포함하는 계층화된 스택을 포함하는 계층화된 스택을 포함한다.
적어도 일 예에서, 두 개 이상의 슬롯은 세 개의 정의된 슬롯으로 구성된다.
적어도 일 예에서, 플릿은 192개 비트를 포함한다.
적어도 일 예에서, 세 개의 슬롯 중 제 1 슬롯은 72개 비트를 포함하고, 세 개의 슬롯 중 제 2 슬롯은 70개 비트를 포함하고, 제 3 슬롯은 18개 비트를 포함한다.
적어도 일 예에서, 제 3 슬롯은 확인응답 및 크레딧 반환 중 하나 이상으로 인코딩되도록 구성된다.
적어도 일 예에서, 제 1 페이로드는 176개 비트를 포함한다.
적어도 일 예에서, CRC 값은 XOR 트리를 이용하여 생성되며 XOR 트리는 생성 다항식을 구현한다. 다항식은 g(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1)을 포함할 수 있다. CRC 값은 롤링 CRC 값일 수 있다.
적어도 일 예에서, 데이터 링크는 제 1 상태에서 적어도 8개 레인을 포함하고 상기 플릿은 192개 비트를 포함한다.
적어도 일 예에서, 제 1 상태는 부분 폭 전송 상태(a partial width transmitting state)를 포함하고 전폭 전송 상태(a full width transmitting state)는 20개 레인의 링크를 포함한다.
하나 이상의 실시예는 플릿을 수신 - 플릿은 두 개 이상의 슬롯, 페이로드, 상기 페이로드에 기초하여 생성되는 16개 비트의 순환 중복 검사(CRC) 값으로 인코딩되는 CRC 필드를 포함함 - 하고, 페이로드로부터 비교 CRC 값을 결정하고, 비교 CRC 값을 플릿에 포함된 CRC 값과 비교하는 장치, 시스템, 머신 판독가능한 저장소, 머신 판독가능한 매체 및 방법을 제공할 수 있다.
적어도 일 예에서, 하나 이상의 오류는 비교에 기초하여 데이터 링크에서 검출될 수 있다.
적어도 일 예에서, 플릿은 192개 비트를 포함하고, 슬롯 중 제 1 슬롯은 72개 비트를 포함하고, 슬롯 중 제 2 슬롯은 70개 비트를 포함하고, 슬롯 중 제 3 슬롯은 18개 비트를 포함한다.
적어도 일 예에서, CRC 값은 생성 다항식을 구현하는 XOR 트리를 이용하여 유도될 수 있다. 생성 다항식은 g(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1)을 포함할 수 있다.
적어도 일 예에서, 생성 다항식은 플릿에 포함된 CRC 값을 생성하기 위해 사용되는 것과 동일하다.
적어도 일 예에서, CRC 값은 롤링(rolling) CRC 값을 포함한다.
적어도 일 예에서, 플릿은 제 1 디바이스와 제 2 디바이스 사이에서 송신될 수 있다. 제 1 디바이스 및 제 2 디바이스는 마이크로프로세서, 그래픽 가속기, 또는 다른 디바이스일 수 있다.
하나 이상의 예는 적어도 링크 계층 및 물리 계층을 포함하는 계층화된 프로토콜 스택을 더 제공할 수 있으며, 계층화된 프로토콜 스택은 직렬 차동 링크에 연결되도록 구성되며, 계층화된 프로토콜 스택은 링크를 통해 전송될 플릿의 롤링 CRC를 계산하도록 더 구성되고, 롤링 CRC는 적어도 두 개의 다항식에 기초한다.
적어도 일 예에서, 두 개의 다항식 중 제 2 다항식은 1-7 비트 오류의 모든 오류가 검출되는지, 레인당 버스트 보호, 버스트 길이 16 이하의 오류가 검출되는지를 결정한다.
하나 이상의 예는 적어도 링크 계층 및 물리 계층을 포함하는 계층화된 프로토콜 스택을 더 제공할 수 있으며, 계층화된 프로토콜 스택은 직렬 차동 링크에 연결되도록 구성되고, 상기 계층화된 프로토콜 스택은 복수의 슬롯을 포함하는 헤더 플릿을 어셈블하도록 더 구성된다.
적어도 일 예에서, 복수의 페이로드 슬롯은 3개 슬롯을 포함한다.
적어도 일 예에서, 3개 슬롯 중 제 1 슬롯 및 제 2 슬롯은 크기가 동일하고 3개 슬롯 중 제 3 슬롯은 제 1 슬롯보다 작다.
적어도 일 예에서, 특수 제어 플릿은 모든 3개 슬롯을 소모할 수 있다.
적어도 일 예에서, 플릿은 16개 비트의 CRC를 포함한다.
본 명세서 전체에서 "일 실시예" 또는 실시예"라는 언급은 실시예와 관련하여 기술된 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있다는 것을 의미한다. 그래서, 본 명세서의 여러 곳에서 "일 실시예에서" 또는 "실시예에서"라는 문구의 출현은 반드시 동일한 실시예를 언급하는 것은 아니다. 뿐만 아니라, 특정한 특징, 구조, 또는 특성은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다.
전술한 명세서에서, 상세한 설명은 특정한 예시적인 실시예를 참조하여 제공되었다. 그러나, 첨부의 청구범위에서 진술되는 바와 같이 본 발명의 폭넓은 사상과 범위를 일탈하지 않고도 다양한 수정 및 변경이 이루어질 수 있다는 것이 분명할 것이다. 따라서, 명세서와 도면은 제한적인 의미라기보다 오히려 예시적인 의미로 간주된다. 뿐만 아니라, 실시예 및 다른 예시적인 언어의 전술한 사용은 필연적으로 동일한 실시예 또는 동일한 예를 언급하는 것이 아니고, 상이하고 구별되는 실시예는 물론이고 잠재적으로 동일한 실시예를 언급할 수 있다.

Claims (25)

  1. 링크 계층 플릿(link layer flit)의 적어도 일부분에 대한 16비트 CRC(cyclical redundancy check) 값을 생성하고, 상기 플릿의 16비트 CRC 필드를 상기 CRC 값으로 인코딩하는 링크 계층 로직과,
    상기 플릿을 수신기로 전송하는 전송 로직
    을 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 플릿은 패킷의 적어도 일부분에 포함되는
    장치.
  3. 제 1 항에 있어서,
    상기 플릿은 192 비트 플릿을 포함하는
    장치.
  4. 제 3 항에 있어서,
    상기 플릿의 페이로드는 176개 비트를 포함하는
    장치.
  5. 제 1 항에 있어서,
    상기 CRC 값을 생성하기 위해 다항식에 기반한 XOR 트리가 이용되는
    장치.
  6. 제 5 항에 있어서,
    상기 다항식은 g(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1)을 포함하는
    장치.
  7. 제 1 항에 있어서,
    상기 링크 계층 로직은 또한 상기 플릿을 전송하기 전에 상기 CRC 값을 반전시키는
    장치.
  8. 제 1 항에 있어서,
    상기 CRC 값은 롤링(rolling) CRC 값을 포함하는
    장치.
  9. 제 8 항에 있어서,
    상기 롤링 CRC 값은 32비트 롤링 CRC 값을 포함하는
    장치.
  10. 제 1 항에 있어서,
    상기 플릿은 둘 이상의 슬롯을 포함하는
    장치.
  11. 제 10 항에 있어서,
    상기 둘 이상의 슬롯은 세 개의 정의된 슬롯으로 구성되는
    장치.
  12. 제 11 항에 있어서,
    상기 세 개의 슬롯 중 제 1 슬롯은 72개 비트를 포함하고, 상기 세 개의 슬롯 중 제 2 슬롯은 70개 비트를 포함하며, 제 3 슬롯은 18개 비트를 포함하는
    장치.
  13. 제 12 항에 있어서,
    상기 플릿은 데이터 링크를 통해 상기 수신기로 전송되고, 상기 데이터 링크는 제 1 상태에서 적어도 8개의 레인(lanes)을 포함하고, 상기 플릿은 192개 비트를 포함하는
    장치.
  14. 제 13 항에 있어서,
    상기 제 1 상태는 부분 폭 전송 상태(a partial width transmitting state)를 포함하고 전폭 전송 상태(a full width transmitting state)는 20개의 레인 링크를 포함하는
    장치.
  15. 제 11 항에 있어서,
    제 3 슬롯은 확인응답(acknowledgements) 및 크레딧 반환(credit returns) 중 하나 이상으로 인코딩되도록 구성되는
    장치.
  16. 링크 계층 로직을 포함하는 장치로서,
    상기 링크 계층 로직은
    적어도 2개의 CRC 모드를 지원하고 -상기 CRC 모드 중 제 1 CRC 모드는 16비트 CRC 값을 생성하고, 제 2 CRC 모드는 32비트 롤링 CRC 값을 생성함- ,
    제 1 XOR 트리를 사용하여 192비트 플릿에 대한 16비트 CRC 값을 생성하고 -상기 제 1 XOR 트리는 제1 생성 다항식 ga(x) = (x16 + x15 + x13 + x12 + x10 + x9 + x8 + x7 + x6 + x4 + x3 + x1 + 1)을 구현함- ,
    제 2 XOR 트리를 사용하여 상기 롤링 CRC 값의 일부분을 생성하며 -상기 제 2 XOR 트리는 제 2 생성 다항식 gb(x) = (x16 + x8 + x6 + x2 + x1 + 1)을 구현함- ,
    상기 CRC 모드들 중 한 모드에 따라 생성된 CRC 값을 반전시키고,
    상기 플릿의 CRC 필드를 상기 반전된 CRC 값으로 인코딩하는
    장치.
  17. 물리적 계층, 링크 계층, 라우팅 계층, 및 프로토콜 계층을 포함하는 프로토콜 스택을 포함하되,
    상기 링크 계층은 192 비트 플릿을 생성하여 복수의 슬롯 및 상기 플릿에 대한 16비트 CRC 값을 포함하고, 상기 물리적 계층은 상기 플릿에 포함된 정보를 물리적 매체 상에서 전송하는
    장치.
  18. 제 17 항에 있어서,
    상기 CRC 값은 롤링 CRC 값을 포함하는
    장치.
  19. 제 18 항에 있어서,
    상기 롤링 CRC 값은 32비트 롤링 CRC 값을 포함하는
    장치.
  20. 링크 계층 플릿의 적어도 일부분에 대한 16비트 CRC 값을 생성하는 단계와,
    상기 CRC 값을 반전시키는 단계와,
    상기 플릿의 16비트 CRC 필드를 상기 반전된 CRC 값으로 인코딩하는 단계와,
    상기 플릿을 수신기로 전송하는 단계
    를 포함하는 방법.
  21. 제1 장치와,
    직렬 데이터 링크를 이용하여 상기 제1 장치에 통신가능하게 연결된 제2 장치
    를 포함하되, 상기 제2 장치는
    링크 계층 플릿의 적어도 일부분에 대한 16비트 CRC 값을 생성하고,
    상기 플릿의 16비트 CRC 필드를 상기 CRC 값으로 인코딩하며,
    상기 플릿을 상기 제1 장치로 전송하는
    시스템.
  22. 제 21 항에 있어서,
    상기 제2 장치는 마이크로프로세서를 포함하는
    시스템.
  23. 제 22 항에 있어서,
    상기 제1 장치는 제2 마이크로프로세서와 그래픽 가속기 중 하나를 포함하는
    시스템.
  24. 제 21 항에 있어서,
    상기 제1 장치는 링크 계층 로직을 포함하고,
    상기 링크 계층 로직은
    상기 플릿을 수신하고,
    페이로드로부터 비교 CRC 값을 유도하며,
    에러를 검출하기 위해 상기 비교 CRC 값을 상기 플릿에 포함된 상기 CRC 값과 비교하는
    시스템.
  25. 적어도 제1 명령어 세트를 인식하는 제1 프로세서와 상기 제1 명령어 세트와 상이한 제2 명령어 세트를 인식하는 제2 프로세서 사이를 인터페이스하는 컨트롤러 -상기 컨트롤러는 복수의 레인을 포함하는 링크에 연결되는 인터페이스 로직을 포함함- 와,
    상기 인터페이스 로직
    을 포함하되, 상기 인터페이스 로직은
    링크 계층 플릿의 적어도 일부분에 대한 16 비트 CRC 값을 생성하고,
    상기 플릿의 16비트 CRC 필드를 상기 CRC 값으로 인코딩하며,
    상기 플릿을 수신기로 전송하는
    장치.
KR1020167019481A 2012-10-22 2013-03-28 고성능 인터커넥트 링크 계층 KR101689998B1 (ko)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157007215A Division KR101642086B1 (ko) 2012-10-22 2013-03-28 고성능 인터커넥트 링크 계층

Publications (2)

Publication Number Publication Date
KR20160089541A KR20160089541A (ko) 2016-07-27
KR101689998B1 true KR101689998B1 (ko) 2016-12-26

Family

ID=50485278

Family Applications (27)

Application Number Title Priority Date Filing Date
KR1020157007216A KR101700261B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020177000908A KR101815180B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020157007208A KR101691756B1 (ko) 2012-10-22 2013-03-15 코히어런스 프로토콜 테이블
KR1020177018169A KR101905055B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020167034107A KR101755005B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020177009525A KR101772037B1 (ko) 2012-10-22 2013-03-15 고성능 상호연결 물리 계층
KR1020177001836A KR101828756B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020167034124A KR101831550B1 (ko) 2012-10-22 2013-03-15 다중슬롯 링크 계층 플릿에서의 제어 메시징
KR1020147027189A KR101598746B1 (ko) 2012-10-22 2013-03-15 고성능 상호연결 물리 계층
KR1020147033103A KR101847943B1 (ko) 2012-10-22 2013-03-15 고성능 상호연결 물리 계층
KR1020157007232A KR101700545B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020167035979A KR101815173B1 (ko) 2012-10-22 2013-03-15 코히어런스 프로토콜 테이블
KR1020157007221A KR101686359B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020187004227A KR101861312B1 (ko) 2012-10-22 2013-03-15 다중슬롯 링크 계층 플릿에서의 제어 메시징
KR1020157007228A KR101686360B1 (ko) 2012-10-22 2013-03-15 다중슬롯 링크 계층 플릿에서의 제어 메시징
KR1020157007231A KR101696124B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020177000400A KR101754890B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020177018159A KR101985120B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020157010316A KR101681509B1 (ko) 2012-10-22 2013-03-16 다중슬롯 링크층 플릿
KR1020147027297A KR101615908B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020167010386A KR101861452B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020187012101A KR101912074B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020157007226A KR101695340B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020147032656A KR101599852B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020177000322A KR101815178B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020167019481A KR101689998B1 (ko) 2012-10-22 2013-03-28 고성능 인터커넥트 링크 계층
KR1020157007215A KR101642086B1 (ko) 2012-10-22 2013-03-28 고성능 인터커넥트 링크 계층

Family Applications Before (25)

Application Number Title Priority Date Filing Date
KR1020157007216A KR101700261B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020177000908A KR101815180B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020157007208A KR101691756B1 (ko) 2012-10-22 2013-03-15 코히어런스 프로토콜 테이블
KR1020177018169A KR101905055B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020167034107A KR101755005B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020177009525A KR101772037B1 (ko) 2012-10-22 2013-03-15 고성능 상호연결 물리 계층
KR1020177001836A KR101828756B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020167034124A KR101831550B1 (ko) 2012-10-22 2013-03-15 다중슬롯 링크 계층 플릿에서의 제어 메시징
KR1020147027189A KR101598746B1 (ko) 2012-10-22 2013-03-15 고성능 상호연결 물리 계층
KR1020147033103A KR101847943B1 (ko) 2012-10-22 2013-03-15 고성능 상호연결 물리 계층
KR1020157007232A KR101700545B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 코히어런스 프로토콜
KR1020167035979A KR101815173B1 (ko) 2012-10-22 2013-03-15 코히어런스 프로토콜 테이블
KR1020157007221A KR101686359B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020187004227A KR101861312B1 (ko) 2012-10-22 2013-03-15 다중슬롯 링크 계층 플릿에서의 제어 메시징
KR1020157007228A KR101686360B1 (ko) 2012-10-22 2013-03-15 다중슬롯 링크 계층 플릿에서의 제어 메시징
KR1020157007231A KR101696124B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020177000400A KR101754890B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020177018159A KR101985120B1 (ko) 2012-10-22 2013-03-15 고성능 인터커넥트 물리 계층
KR1020157010316A KR101681509B1 (ko) 2012-10-22 2013-03-16 다중슬롯 링크층 플릿
KR1020147027297A KR101615908B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020167010386A KR101861452B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020187012101A KR101912074B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020157007226A KR101695340B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020147032656A KR101599852B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층
KR1020177000322A KR101815178B1 (ko) 2012-10-22 2013-03-27 고성능 인터커넥트 물리 계층

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157007215A KR101642086B1 (ko) 2012-10-22 2013-03-28 고성능 인터커넥트 링크 계층

Country Status (9)

Country Link
US (20) US20140201463A1 (ko)
EP (2) EP3410304B1 (ko)
JP (2) JP6139689B2 (ko)
KR (27) KR101700261B1 (ko)
CN (26) CN104737147B (ko)
BR (1) BR112015006432A2 (ko)
DE (14) DE112013004105T5 (ko)
RU (2) RU2579140C1 (ko)
WO (11) WO2014065879A1 (ko)

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105967A1 (en) * 2012-01-13 2013-07-18 Intel Corporation Efficient peer-to-peer communication support in soc fabrics
US8943255B2 (en) * 2012-05-29 2015-01-27 Lsi Corporation Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices
US9355058B2 (en) 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
WO2014065879A1 (en) 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer
US9367474B2 (en) * 2013-06-12 2016-06-14 Apple Inc. Translating cache hints
US20150006962A1 (en) * 2013-06-27 2015-01-01 Robert C. Swanson Memory dump without error containment loss
CN104579605B (zh) * 2013-10-23 2018-04-10 华为技术有限公司 一种数据传输方法及装置
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
US9306863B2 (en) * 2013-12-06 2016-04-05 Intel Corporation Link transfer, bit error detection and link retry using flit bundles asynchronous to link fabric packets
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム
KR101874726B1 (ko) 2013-12-26 2018-07-04 인텔 코포레이션 Pci 익스프레스 강화
JP6461959B2 (ja) * 2013-12-26 2019-01-30 インテル コーポレイション マルチチップパッケージリンク
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
US10082538B2 (en) 2014-11-14 2018-09-25 Cavium, Inc. Testbench builder, system, device and method
US9870328B2 (en) * 2014-11-14 2018-01-16 Cavium, Inc. Managing buffered communication between cores
US20160173398A1 (en) 2014-12-12 2016-06-16 Intel Corporation Method, Apparatus And System For Encoding Command Information In a Packet-Based Network
US9921768B2 (en) * 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US9444551B2 (en) * 2014-12-19 2016-09-13 Intel Corporation High performance optical repeater
US9632862B2 (en) 2014-12-20 2017-04-25 Intel Corporation Error handling in transactional buffered memory
US9740646B2 (en) * 2014-12-20 2017-08-22 Intel Corporation Early identification 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
US9639276B2 (en) * 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
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
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
EP3329381B1 (en) * 2015-07-30 2020-02-26 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
US20200244397A1 (en) * 2015-09-26 2020-07-30 Intel Corporation Stream identifier lane protection
US9720439B2 (en) 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
CN107925507B (zh) * 2015-09-26 2021-05-11 英特尔公司 多芯片封装链路错误检测
WO2017052663A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Valid lane training
WO2017052665A1 (en) * 2015-09-26 2017-03-30 Intel Corporation In-band margin probing on an operational interconnect
GB2543745B (en) * 2015-10-15 2018-07-04 Advanced Risc Mach Ltd An apparatus and method for operating a virtually indexed physically tagged cache
US10198384B2 (en) 2016-03-01 2019-02-05 Qorvo Us, Inc. One wire bus to RFFE translation system
US10128964B2 (en) 2016-03-10 2018-11-13 Qualcomm Incorporated Multiphase preamble data sequences for receiver calibration and mode data signaling
US9779028B1 (en) 2016-04-01 2017-10-03 Cavium, Inc. Managing translation invalidation
CN105933286B (zh) * 2016-04-05 2019-08-02 浪潮电子信息产业股份有限公司 一种验证协议的方法及装置
RU2643620C2 (ru) * 2016-05-11 2018-02-02 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Способ планирования задач предобработки данных Интернета Вещей для систем анализа
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
US11144691B2 (en) * 2016-06-02 2021-10-12 Siemens Industry Software Inc. Virtual Ethernet mutable port group transactor
TWI613547B (zh) * 2016-06-16 2018-02-01 新漢股份有限公司 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法
US10103837B2 (en) * 2016-06-23 2018-10-16 Advanced Micro Devices, Inc. Asynchronous feedback training
US10484361B2 (en) * 2016-06-30 2019-11-19 Intel Corporation Systems, methods, and apparatuses for implementing a virtual device observation and debug network for high speed serial IOS
US10303605B2 (en) * 2016-07-20 2019-05-28 Intel Corporation Increasing invalid to modified protocol occurrences in a computing system
US10929059B2 (en) 2016-07-26 2021-02-23 MemRay Corporation Resistance switching memory-based accelerator
US10379904B2 (en) * 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
RU2016137176A (ru) * 2016-09-16 2018-03-19 Оракл Интернэйшнл Корпорейшн Связывание преобразованного исходного кода с первоначальным исходным кодом с помощью метаданных
US10255181B2 (en) * 2016-09-19 2019-04-09 Qualcomm Incorporated Dynamic input/output coherency
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
WO2019140049A1 (en) 2018-01-10 2019-07-18 Lumeova, Inc. Method, devices and system for wireless communication channels fso
US20190227971A1 (en) * 2018-01-23 2019-07-25 Qualcomm Incorporated Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
US20190294777A1 (en) * 2018-03-26 2019-09-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for managing access to host computing devices by external devices
US10534881B2 (en) * 2018-04-10 2020-01-14 Advanced Micro Devices, Inc. Method of debugging a processor
US20190042455A1 (en) * 2018-05-04 2019-02-07 Intel Corporation Globally addressable memory for devices linked to hosts
CN108563510B (zh) * 2018-05-04 2021-07-13 湖南大学 面向e级计算的体系结构感知优化方法
US20190356412A1 (en) * 2018-05-16 2019-11-21 Qualcomm Incorporated Fast termination of multilane double data rate transactions
CN108762747B (zh) * 2018-05-30 2022-02-18 郑州云海信息技术有限公司 数据处理方法以及计算机设备
WO2019237130A1 (en) * 2018-06-04 2019-12-12 Lightfleet Corporation Routing and control protocol for high-performance interconnect fabrics
CN110609866B (zh) * 2018-06-15 2023-08-11 伊姆西Ip控股有限责任公司 用于协商事务的方法、设备和计算机程序产品
US10693589B2 (en) * 2018-06-18 2020-06-23 Huawei Technologies Co., Ltd. Serdes with jitter injection self stress mechanism
US11301160B2 (en) * 2018-06-20 2022-04-12 Genesys Telecommunications Laboratories, Inc. System and method for a replication protocol in a real-time statistical engine
CN109144943A (zh) * 2018-06-26 2019-01-04 深圳市安信智控科技有限公司 基于高速串行通道互连的计算芯片与存储器芯片组合系统
GB2575294B8 (en) * 2018-07-04 2022-07-20 Graphcore Ltd Host Proxy On Gateway
US10841355B2 (en) * 2018-07-13 2020-11-17 Apple Inc. Methods and apparatus for streaming media conversion with reduced buffering memories
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 湖南国科微电子股份有限公司 一种提升物理层兼容性的系统与方法
US10761939B1 (en) * 2018-12-13 2020-09-01 Amazon Technologies, Inc. Powering-down or rebooting a device in a system fabric
TWI706257B (zh) * 2018-12-13 2020-10-01 新唐科技股份有限公司 匯流排系統
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
KR20210119422A (ko) 2019-01-31 2021-10-05 텍트로닉스 인코포레이티드 고속 입력/출력 마진 테스팅을 위한 시스템, 방법 및 디바이스
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
WO2020180300A1 (en) * 2019-03-05 2020-09-10 Mentor Graphics Corporation Machine learning-based anomaly detections for embedded software applications
CN109947551B (zh) * 2019-03-19 2021-04-23 中南大学 一种多轮次任务分配方法、边缘计算系统及其存储介质
US11055221B2 (en) * 2019-03-22 2021-07-06 Samsung Electronics Co., Ltd. Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory
EP3723345A1 (en) * 2019-04-10 2020-10-14 ABB Schweiz AG Aggregating server and method for forwarding node data
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
IT201900005822A1 (it) * 2019-04-15 2020-10-15 Phoenix Ict S R L S Adattore di periferiche general purpose per computer
US11119958B2 (en) 2019-04-18 2021-09-14 Qorvo Us, Inc. Hybrid bus apparatus
US11226924B2 (en) 2019-04-24 2022-01-18 Qorvo Us, Inc. Single-wire bus apparatus supporting slave-initiated operation in a master circuit
CN110138761B (zh) * 2019-05-09 2021-10-15 豪威触控与显示科技(深圳)有限公司 基于mipi协议的设备间通信方法及设备拓扑结构
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
JP7259537B2 (ja) * 2019-05-16 2023-04-18 オムロン株式会社 情報処理装置
US10802967B1 (en) * 2019-06-28 2020-10-13 Intel Corporation Partial write management in a multi-tiled compute engine
US11144469B2 (en) * 2019-07-02 2021-10-12 Microsoft Technology Licensing, Llc Per-tenant incremental outward distributed proactive caching
US11444829B2 (en) 2019-09-09 2022-09-13 Intel Corporation Link layer communication by multiple link layer encodings for computer buses
US11271860B1 (en) * 2019-11-15 2022-03-08 Xilinx, Inc. Compressed tag coherency messaging
US11967985B2 (en) * 2019-11-20 2024-04-23 Mitsubishi Electric Corporation Optical communication device and communication system
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
RU2738955C1 (ru) * 2019-11-27 2020-12-21 Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) Способ трёхкратного резервирования межсоединений
US10983942B1 (en) 2019-12-11 2021-04-20 Qorvo Us, Inc. Multi-master hybrid bus apparatus
US11132321B2 (en) * 2020-02-26 2021-09-28 Quanta Computer Inc. Method and system for automatic bifurcation of PCIe in BIOS
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
EP4158486A4 (en) * 2020-05-29 2024-07-10 Netlist Inc COMPUTER MEMORY EXPANSION DEVICE AND OPERATION METHOD
US20210013999A1 (en) * 2020-06-04 2021-01-14 Intel Corporation Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses
IL298759A (en) * 2020-06-05 2023-02-01 Schwaderer William David Methods and systems for encrypting shapeshifting data
KR102254337B1 (ko) * 2020-06-22 2021-05-21 한양대학교 산학협력단 Dc-밸런싱을 고려한 pam4 5b3q 코딩 방법 및 장치
US11360906B2 (en) * 2020-08-14 2022-06-14 Alibaba Group Holding Limited Inter-device processing system with cache coherency
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
US11362939B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Flow control for a multiple flow control unit interface
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
TWI809570B (zh) 2020-11-24 2023-07-21 美商泰克特洛尼克斯公司 用於高速輸入/輸出裕度測試的系統、方法和裝置
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
KR102518317B1 (ko) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102668564B1 (ko) 2021-06-01 2024-05-24 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US20220327074A1 (en) * 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same
TWI773395B (zh) * 2021-06-22 2022-08-01 慧榮科技股份有限公司 記憶體控制器與連結識別方法
CN113971143B (zh) * 2021-10-22 2023-12-05 展讯半导体(成都)有限公司 一种内存控制器、物联网芯片及电子设备
US11755494B2 (en) 2021-10-29 2023-09-12 Advanced Micro Devices, Inc. Cache line coherence state downgrade
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
WO2023205316A1 (en) * 2022-04-22 2023-10-26 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
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013085501A1 (en) 2011-12-07 2013-06-13 Intel Corporation Multiple transaction data flow control unit for high-speed interconnect

Family Cites Families (270)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4191941A (en) 1978-04-03 1980-03-04 Rca Corporation Switch matrix for data transfers
US4716523A (en) 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
NZ232223A (en) * 1989-01-27 1993-03-26 British Telecomm Alternate burst communication for cordless phones re-established after channel failure
US4959833A (en) * 1989-03-08 1990-09-25 Ics Electronics Corporation Data transmission method and bus extender
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
WO1992006436A2 (en) * 1990-10-03 1992-04-16 Thinking Machines Corporation Parallel computer system
US5222062A (en) 1991-10-03 1993-06-22 Compaq Computer Corporation Expandable communication system with automatic data concentrator detection
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
EP0600626A1 (en) * 1992-11-13 1994-06-08 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache
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 (en) * 1994-10-03 1996-04-10 International Business Machines Corporation Alternating data valid control signals for high performance data transfer
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
EP0735480B1 (en) * 1995-03-31 2003-06-04 Sun Microsystems, Inc. Cache coherent computer system that minimizes invalidation and copyback operations
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
ES2194287T3 (es) * 1998-09-30 2003-11-16 Cit Alcatel Metodo y disposicion para transicion entre un estado de baja potencia y un estado de plena otencia en un sistema de comunicacion.
GB2342823B (en) * 1998-10-16 2000-11-29 Marconi Comm Ltd Communication system
US6526481B1 (en) * 1998-12-17 2003-02-25 Massachusetts Institute Of Technology Adaptive cache coherence protocols
US6393529B1 (en) * 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write
US6556634B1 (en) * 1999-02-10 2003-04-29 Ericsson, Inc. Maximum likelihood rake receiver for use in a code division, multiple access wireless communication system
US6185250B1 (en) * 1999-03-10 2001-02-06 Lucent Technologies Inc. Training of level learning modems
AU5161900A (en) 1999-05-28 2000-12-18 Afx Technology Group International, Inc. Wireless transceiver network employing node-to-node data messaging
US6487621B1 (en) * 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
KR100566289B1 (ko) * 1999-09-03 2006-03-30 삼성전자주식회사 데이타 링크 맵을 이용한 브이5.2 계층 2의 비활성화 제어 방법 및 장치
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US6754185B1 (en) * 1999-09-27 2004-06-22 Koninklijke Philips Electronics N.V. Multi link layer to single physical layer interface in a node of a data communication system
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
US6961347B1 (en) * 2000-06-20 2005-11-01 Hewlett-Packard Development Company, L.P. High-speed interconnection link having automated lane reordering
US6865231B1 (en) * 2000-06-20 2005-03-08 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated crossed differential pair correction
US7124252B1 (en) * 2000-08-21 2006-10-17 Intel Corporation Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
US6668335B1 (en) 2000-08-31 2003-12-23 Hewlett-Packard Company, L.P. System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths
US6892319B2 (en) * 2000-09-08 2005-05-10 Hewlett-Packard Development Company, L.P. Method for verifying abstract memory models of shared memory multiprocessors
US7327754B2 (en) 2000-09-28 2008-02-05 Teridian Semiconductor, Corp. Apparatus and method for freezing the states of a receiver during silent line state operation of a network device
US7596139B2 (en) * 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
EP1211837A1 (en) * 2000-12-04 2002-06-05 Telefonaktiebolaget Lm Ericsson Unequal error protection in a packet transmission system
EP1217613A1 (fr) * 2000-12-19 2002-06-26 Koninklijke Philips Electronics N.V. Reconstitution de trames manquantes ou mauvaises en téléphonie cellulaire
US6859864B2 (en) * 2000-12-29 2005-02-22 Intel Corporation Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US20020161975A1 (en) * 2001-02-23 2002-10-31 Zilavy Daniel V. Cache to cache copying of clean data
US7231500B2 (en) * 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US6987947B2 (en) 2001-10-30 2006-01-17 Unwired Technology Llc Multiple channel wireless communication system
US20030093632A1 (en) * 2001-11-12 2003-05-15 Intel Corporation Method and apparatus for sideband read return header in memory interconnect
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US7227845B2 (en) * 2001-12-11 2007-06-05 Motorola, Inc. Method and apparatus for enabling a communication resource reset
US7117311B1 (en) * 2001-12-19 2006-10-03 Intel Corporation Hot plug cache coherent interface method and apparatus
US7030737B2 (en) 2002-03-01 2006-04-18 Hewlett-Packard Development Company, L.P. Apparatus, system, and method for indicating a level of network activity
US7200186B2 (en) 2002-03-14 2007-04-03 Intel Corporation Methods and apparatus for reducing power usage of a transmitter and receiver coupled via a differential serial data link
US7334047B1 (en) * 2002-03-18 2008-02-19 Cisco Technology, Inc. Method and system for selective link state advertisement blocking over a data network area
US7653790B2 (en) * 2002-05-13 2010-01-26 Glasco David B Methods and apparatus for responding to a request cluster
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
US6973545B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. System with a directory based coherency protocol and split ownership and access right coherence mechanism
US20040028074A1 (en) * 2002-07-26 2004-02-12 Gary Huff Physical layer device with line state encoding
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7720135B2 (en) * 2002-11-07 2010-05-18 Intel Corporation System, method and device for autonegotiation
US7505486B2 (en) * 2002-11-19 2009-03-17 Hewlett-Packard Development Company, L.P. Degradable network data path transmission scheme
US7203853B2 (en) * 2002-11-22 2007-04-10 Intel Corporation Apparatus and method for low latency power management on a serial data link
US20040174570A1 (en) 2002-12-02 2004-09-09 Plunkett Richard Thomas Variable size dither matrix usage
US6892283B2 (en) * 2002-12-05 2005-05-10 International Business Machines Corporation High speed memory cloner with extended cache coherency protocols and responses
US7525989B2 (en) * 2002-12-16 2009-04-28 Intel Corporation System, method and device for time slot status messaging among SONET nodes
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US7047475B2 (en) * 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
US7535836B2 (en) * 2003-02-12 2009-05-19 Broadcom Corporation Method and system to provide word-level flow control using spare link bandwidth
GB2399722A (en) * 2003-03-21 2004-09-22 Sony Uk Ltd Data communication synchronisation
US7464307B2 (en) * 2003-03-25 2008-12-09 Intel Corporation High performance serial bus testing methodology
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
RU2341906C2 (ru) * 2003-11-12 2008-12-20 Квэлкомм Инкорпорейтед Интерфейс высокоскоростной передачи данных с улучшенным управлением соединением
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
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
CN101902433B (zh) * 2004-04-30 2013-04-10 夏普株式会社 无线通信系统
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
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US20060041696A1 (en) * 2004-05-21 2006-02-23 Naveen Cherukuri Methods and apparatuses for the physical layer initialization of a link-based system interconnect
US7313712B2 (en) * 2004-05-21 2007-12-25 Intel Corporation Link power saving state
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
EP1875681A1 (en) * 2005-04-13 2008-01-09 Koninklijke Philips Electronics N.V. Electronic device and method for flow control
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
US7506108B2 (en) * 2006-06-30 2009-03-17 Intel Corporation Requester-generated forward for late conflicts in a cache coherency protocol
US7536515B2 (en) * 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements in a cache coherency protocol
EP2052330A2 (en) * 2006-08-08 2009-04-29 Koninklijke Philips Electronics N.V. Electronic device and method for synchronizing a communication
US8059011B2 (en) * 2006-09-15 2011-11-15 Itron, Inc. Outage notification system
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
KR20090102789A (ko) * 2006-12-06 2009-09-30 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법
WO2008087579A2 (en) 2007-01-15 2008-07-24 Koninklijke Philips Electronics N.V. Method of generating low peak-to-average power ratio ( papr) binary preamble sequences for ofdm systems
DE102007007136B3 (de) 2007-02-09 2008-08-28 Siemens Ag Radelektronik und Verfahren zum Betreiben einer Radelektronik
US8428175B2 (en) * 2007-03-09 2013-04-23 Qualcomm Incorporated Quadrature modulation rotating training sequence
US7978635B2 (en) 2007-03-21 2011-07-12 Qualcomm Incorporated H-ARQ acknowledgment detection validation by re-decoding
DE602007001576D1 (de) * 2007-03-22 2009-08-27 Research In Motion Ltd Vorrichtung und Verfahren zur verbesserten Maskierung von Rahmenverlusten
KR101188001B1 (ko) * 2007-05-08 2012-10-05 인터디지탈 테크날러지 코포레이션 피기백 긍정 ack/부정 ack 필드 표시자 및 폴링 표시자를 제공하기 위한 방법 및 장치
US7827357B2 (en) * 2007-07-31 2010-11-02 Intel Corporation Providing an inclusive shared cache among multiple core-cache clusters
US7899111B2 (en) 2007-08-07 2011-03-01 Intel Corporation Link interface technique including data indicator symbols
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 (en) * 2007-11-20 2009-05-27 STMicroelectronics (Grenoble) SAS Transferring a stream of data between first and second electronic devices via a network 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
CN101960677A (zh) 2008-02-29 2011-01-26 惠普开发有限公司 用于电子装置的模块系统和可缩回组件
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
US8250311B2 (en) * 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
US8205045B2 (en) * 2008-07-07 2012-06-19 Intel Corporation Satisfying memory ordering requirements between partial writes and non-snoop accesses
CN101325461B (zh) * 2008-07-25 2011-04-27 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
KR101493921B1 (ko) * 2008-09-08 2015-02-16 삼성전자주식회사 이동/핸드헬드 신호 수신을 위해 설계된 디지탈 텔레비전 수신기의 서브-채널 획득
US8917209B2 (en) * 2009-09-10 2014-12-23 Nextnav, Llc Coding in a wide area positioning system (WAPS)
KR101774202B1 (ko) * 2008-09-10 2017-09-01 넥스트나브, 엘엘씨 지상 비컨 네트워크 및 이를 이용한 위치 결정 신호 생성 및 송신 방법
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 (en) 2008-10-01 2012-05-16 STMicroelectronics Srl Method of exchanging information in a Network-on-Chip communication network, corresponding Network-on-Chip communication network and computer program product
US8531943B2 (en) * 2008-10-29 2013-09-10 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 杭州华三通信技术有限公司 一种支持可变速率的方法和网络设备
US8401038B2 (en) * 2008-12-17 2013-03-19 Viasat, Inc. False lock detection for physical layer frame synchronization
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US8026726B2 (en) * 2009-01-23 2011-09-27 Silicon Image, Inc. Fault testing for interconnections
KR101598093B1 (ko) * 2009-02-02 2016-02-26 엘지전자 주식회사 송/수신 시스템 및 데이터 처리 방법
KR20100092353A (ko) * 2009-02-12 2010-08-20 엘지전자 주식회사 트래픽 암호화 키 관리방법 및 장치
WO2010096969A1 (zh) * 2009-02-27 2010-09-02 华为技术有限公司 无源光网络中发送上行传送帧的方法及设备
KR101133256B1 (ko) * 2009-02-27 2012-04-09 한국과학기술원 시그니처 정보를 이용한 물리계층에서의 타임스탬프 처리장치 및 그 방법
US20100228922A1 (en) 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines
US8401400B2 (en) * 2009-03-10 2013-03-19 Tyco Electronics Subsea Communications Llc Detection of data in signals with data pattern dependent signal distortion
CN101854331A (zh) * 2009-04-02 2010-10-06 天际微芯(北京)科技有限公司 训练序列结构及训练方法
US9690625B2 (en) * 2009-06-16 2017-06-27 Oracle America, Inc. System and method for out-of-order resource allocation and deallocation in a threaded machine
US8335911B2 (en) * 2009-05-21 2012-12-18 Oracle America, Inc. Dynamic allocation of resources in a threaded, heterogeneous processor
US8199759B2 (en) 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
CN101561794B (zh) * 2009-06-05 2012-07-04 威盛电子股份有限公司 通用串行总线装置
US8239704B2 (en) * 2009-06-12 2012-08-07 Cray Inc. Global clock via embedded spanning tree
WO2010147264A1 (en) * 2009-06-16 2010-12-23 Lg Electronics Inc. Method of exchanging messages and transmitting and receiving devices
US8782347B2 (en) * 2009-06-26 2014-07-15 Intel Corporation Controllably exiting an unknown state of a cache coherency directory
US20100332877A1 (en) 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US8831666B2 (en) * 2009-06-30 2014-09-09 Intel Corporation Link power savings with state retention
CN101695193A (zh) * 2009-09-27 2010-04-14 上海华为技术有限公司 一种下行数据发送和下行数据接收的方法和装置
US8327228B2 (en) * 2009-09-30 2012-12-04 Intel Corporation Home agent data and memory management
US8799586B2 (en) 2009-09-30 2014-08-05 Intel Corporation Memory mirroring and migration at home agent
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 (en) * 2011-01-31 2016-06-29 Canon Kabushiki Kaisha Image processing apparatus, printing apparatus and controlling method in image processing apparatus
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
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 东南大学 一种基于状态机的协议构造方法
US10102170B2 (en) 2012-05-18 2018-10-16 Dell Products, Lp System and method for providing input/output functionality by an I/O complex switch
US8856573B2 (en) * 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US9280504B2 (en) 2012-08-24 2016-03-08 Intel Corporation Methods and apparatus for sharing a network interface controller
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US8935578B2 (en) 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
US8996757B2 (en) * 2012-09-29 2015-03-31 Intel Corporation Method and apparatus to generate platform correctable TX-RX
US9003091B2 (en) 2012-10-18 2015-04-07 Hewlett-Packard Development Company, L.P. Flow control for a Serial Peripheral Interface bus
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
WO2014065879A1 (en) 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer
US9280507B2 (en) * 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
BR112015017867A2 (pt) 2013-02-28 2018-12-18 Intel Corp aproveitamento de um mecanismo de enumeração e/ou configuração de um protocolo de interconexão para um protocolo de interconexão diferente
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
JP6461959B2 (ja) * 2013-12-26 2019-01-30 インテル コーポレイション マルチチップパッケージリンク
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013085501A1 (en) 2011-12-07 2013-06-13 Intel Corporation Multiple transaction data flow control unit for high-speed interconnect

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101689998B1 (ko) 고성능 인터커넥트 링크 계층
US10365965B2 (en) High performance interconnect link layer
US10380059B2 (en) Control messaging in multislot link layer flit
US11755486B2 (en) Shared buffered memory routing
TWI616890B (zh) 共享記憶體連結中的低功率進入之技術
CN117651940A (zh) 管芯到管芯互连

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191127

Year of fee payment: 4