KR101847943B1 - 고성능 상호연결 물리 계층 - Google Patents
고성능 상호연결 물리 계층 Download PDFInfo
- Publication number
- KR101847943B1 KR101847943B1 KR1020147033103A KR20147033103A KR101847943B1 KR 101847943 B1 KR101847943 B1 KR 101847943B1 KR 1020147033103 A KR1020147033103 A KR 1020147033103A KR 20147033103 A KR20147033103 A KR 20147033103A KR 101847943 B1 KR101847943 B1 KR 101847943B1
- Authority
- KR
- South Korea
- Prior art keywords
- link
- physical layer
- processor
- state
- mode
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/622—State-only directory, i.e. not recording identity of sharing or owning nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
링크의 재초기화가 링크의 종료 없이 일어날 수 있고, 링크는 다수의 레인들 내의 각각의 레인에 결합되는 송신기 및 수신기를 포함하고, 링크의 재초기화는 레인들 각각을 통해 사전 정의된 시퀀스를 전송하는 것을 포함해야 한다.
Description
본 개시 내용은 일반적으로 컴퓨터 개발의 분야에 관한 것으로서, 보다 구체적으로는, 상호 의존적 제약 시스템들의 조정을 수반하는 소프트웨어 개발에 관한 것이다.
반도체 처리 및 논리 설계의 진보는 집적 회로 디바이스들에 존재할 수 있는 논리의 양의 증가를 가능하게 하였다. 그 결과, 컴퓨터 시스템 구성들이 시스템에 있는 단일 또는 다수의 집적 회로들로부터 개개의 집적 회로들에 존재하는 다수의 코어들, 다수의 하드웨어 스레드들, 및 다수의 논리 프로세서들은 물론, 이러한 프로세서들 내에 통합되어 있는 다른 인터페이스들로 진화하였다. 프로세서 또는 집적 회로는 전형적으로 단일의 물리 프로세서 다이를 포함하고 있으며, 이 경우 프로세서 다이는 임의의 수의 코어들, 하드웨어 스레드들 또는 논리 프로세서들, 인터페이스들, 메모리, 제어기 허브들 등을 포함할 수 있다.
더 많은 처리 능력을 더 작은 패키지들에 집어 넣을 수 있는 가능성이 더 많아진 결과로서, 더 작은 컴퓨팅 디바이스들의 인기가 증가하였다. 스마트폰, 태블릿, 초박형 노트북, 및 다른 사용자 장비가 기하급수적으로 늘어났다. 그렇지만, 이 더 작은 디바이스들은 폼 팩터(form factor)를 초과하는 데이터 저장 및 복잡한 처리 둘 다를 위해 서버들에 의존한다. 그 결과, 고성능 컴퓨팅 시장(즉, 서버 공간)에서의 요구도 역시 증가하였다. 예를 들어, 현대의 서버들에서, 컴퓨팅 능력을 증가시키기 위해, 전형적으로 다수의 코어들을 갖는 단일의 프로세서 뿐만 아니라, 다수의 물리 프로세서들(다수의 소켓들이라고도 함)도 있다. 그러나, 컴퓨팅 시스템 내의 디바이스들의 수와 함께 처리 능력이 증가함에 따라, 소켓들과 다른 디바이스들 사이의 통신이 더 중요하게 된다.
실제로, 상호연결부들은 전기적 통신을 주로 처리했던 보다 종래의 멀티-드롭 버스들(multi-drop buses)에서 고속 통신을 용이하게 하는 완전히 발전된 상호연결 아키텍처들로 성장해 왔다. 안타깝게도, 훨씬 더 높은 레이트로 사용하고자 하는 장래의 프로세서들에 대한 요구에 따라, 기존의 상호연결 아키텍처들의 능력에도 상응하는 요구가 부과된다.
도 1은 하나의 실시예에 따른, 컴퓨터 시스템에서 I/O 디바이스들을 연결시키는 직렬 점대점 상호연결부(serial point-to-point interconnect)를 포함하는 시스템의 간략화된 블록도.
도 2는 하나의 실시예에 따른, 계층화된 프로토콜 스택의 간략화된 블록도.
도 3은 트랜잭션 기술자(transaction descriptor)의 일 실시예를 나타낸 도면.
도 4는 직렬 점대점 링크(serial point-to-point link)의 일 실시예를 나타낸 도면.
도 5는 잠재적인 HPI(High Performance Interconnect, 고성능 상호연결) 시스템 구성들의 실시예들을 나타낸 도면.
도 6은 HPI와 연관되어 있는 계층화된 프로토콜 스택의 일 실시예를 나타낸 도면.
도 7은 한 예시적인 상태 머신의 한 표현을 나타낸 도면.
도 8은 예시적인 제어 수퍼시퀀스들(control supersequences)을 나타낸 도면.
도 9는 부분 폭 상태(partial width state)로의 한 예시적인 천이의 흐름도.
도 10은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예를 나타낸 도면.
도 11은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 나타낸 도면.
도 12는 프로세서에 대한 블록도의 일 실시예를 나타낸 도면.
도 13은 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 나타낸 도면.
도 14는 다수의 프로세서 소켓들을 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예를 나타낸 도면.
도 15는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 나타낸 도면.
다양한 도면들에서 유사한 참조 번호들 및 명칭들은 유사한 요소들을 나타낸다.
도 2는 하나의 실시예에 따른, 계층화된 프로토콜 스택의 간략화된 블록도.
도 3은 트랜잭션 기술자(transaction descriptor)의 일 실시예를 나타낸 도면.
도 4는 직렬 점대점 링크(serial point-to-point link)의 일 실시예를 나타낸 도면.
도 5는 잠재적인 HPI(High Performance Interconnect, 고성능 상호연결) 시스템 구성들의 실시예들을 나타낸 도면.
도 6은 HPI와 연관되어 있는 계층화된 프로토콜 스택의 일 실시예를 나타낸 도면.
도 7은 한 예시적인 상태 머신의 한 표현을 나타낸 도면.
도 8은 예시적인 제어 수퍼시퀀스들(control supersequences)을 나타낸 도면.
도 9는 부분 폭 상태(partial width state)로의 한 예시적인 천이의 흐름도.
도 10은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예를 나타낸 도면.
도 11은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 나타낸 도면.
도 12는 프로세서에 대한 블록도의 일 실시예를 나타낸 도면.
도 13은 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 나타낸 도면.
도 14는 다수의 프로세서 소켓들을 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예를 나타낸 도면.
도 15는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 나타낸 도면.
다양한 도면들에서 유사한 참조 번호들 및 명칭들은 유사한 요소들을 나타낸다.
이하의 설명에서, 본 발명의 완전한 이해를 제공하기 위해, 특정의 유형들의 프로세서들 및 시스템 구성들, 특정의 하드웨어 구조들, 특정의 구조적 및 미세 구조적 상세들, 특정의 레지스터 구성들, 특정의 명령어 유형들, 특정의 시스템 구성요소들, 특정의 프로세서 파이프라인 스테이지들, 특정의 상호연결 계층들, 특정의 패킷/트랜잭션 구성들, 특정의 트랜잭션 이름들, 특정의 프로토콜 교환들, 특정의 링크 폭들, 특정의 구현들, 및 동작 등의 예들과 같은 수많은 구체적인 상세들이 기술되어 있다. 그렇지만, 이 구체적인 상세들이 본 개시 내용의 발명 요지를 실시하는 데 꼭 이용될 필요는 없다는 것이 당업자에게 명백할 것이다. 다른 경우에, 본 개시 내용이 불필요하게 모호해 지지 않도록 하기 위해, 특정의 및 대안의 프로세서 아키텍처들, 기술된 알고리즘들에 대한 특정의 논리 회로들/코드, 특정의 펌웨어 코드, 저레벨 상호연결 동작, 특정의 논리 구성들, 특정의 제조 기법들 및 물질들, 특정의 컴파일러 구현들, 코드로 된 알고리즘들의 특정의 표현, 특정의 절전 및 게이팅 기법들/논리 및 컴퓨터 시스템의 다른 특정의 동작 상세들과 같은 공지된 구성요소들 또는 방법들에 대한 아주 상세한 설명은 하지 않았다.
비록 이하의 실시예들이 컴퓨팅 플랫폼들 또는 마이크로프로세서들에서와 같은 특정의 집적 회로들에서의 에너지 절감, 에너지 효율, 처리 효율 등과 관련하여 기술될 수 있지만, 다른 실시예들은 다른 유형들의 집적 회로들 및 논리 디바이스들에 적용가능하다. 본 명세서에 기술되어 있는 실시예들의 유사한 기법들 및 내용들이 이러한 특징들로부터 역시 이득을 볼 수 있는 다른 유형들의 회로들 또는 반도체 디바이스들에 적용될 수 있다. 예를 들어, 개시된 실시예들은 서버 컴퓨터 시스템, 데스크톱 컴퓨터 시스템들, 랩톱들, Ultrabooks™로 제한되지 않고, 핸드헬드 디바이스들, 스마트폰들, 태블릿들, 다른 씬 노트북들, SOC(systems on a chip, 시스템 온 칩) 디바이스들, 및 임베디드 응용 분야들과 같은 다른 디바이스들에서도 사용될 수 있다. 핸드헬드 디바이스들의 어떤 예들은 셀룰러폰들, 인터넷 프로토콜 디바이스들, 디지털 카메라들, PDA들(personal digital assistants, 개인 휴대 단말기들), 및 핸드헬드 PC들을 포함한다. 여기서, 저전력 상호연결부에서 성능을 향상시키기 위해(또는 심지어 전력을 절감하기 위해) 고성능 상호연결부를 위한 유사한 기법들이 적용될 수 있다. 임베디드 응용 분야들은 전형적으로 마이크로컨트롤러, DSP(digital signal processor, 디지털 신호 처리기), 시스템 온 칩(system on a chip), 네트워크 컴퓨터들(NetPC), 셋톱 박스들, 네트워크 허브들, WAN(wide area network, 원거리 통신망) 스위치들, 또는 이하에서 개시되는 기능들 및 동작들을 수행할 수 있는 임의의 다른 시스템을 포함한다. 더욱이, 본 명세서에 기술되어 있는 장치들, 방법들, 및 시스템들이 물리 컴퓨팅 디바이스들로 제한되지 않고, 또한 에너지 절감 및 효율을 위한 소프트웨어 최적화들에도 관련되어 있을 수 있다. 이하의 설명에서 손쉽게 명백하게 될 수 있는 바와 같이, 본 명세서에서 (하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합과 관련하여) 기술되어 있는 방법들, 장치들, 및 시스템들의 실시예들은 성능 고려사항들과 균형을 이루는 "녹색 기술" 미래에 아주 중요한 것으로 생각될 수 있다.
컴퓨팅 시스템들이 진보함에 따라, 그 안의 구성요소들은 더욱 복잡해지고 있다. 최적의 구성요소 동작을 위한 대역폭 요구가 충족되는 것을 보장하기 위해, 구성요소들을 결합시키고 그들 사이에서 통신을 하는 상호연결 아키텍처도 복잡도가 증가하였다. 게다가, 상이한 시장 세그먼트 요구는 각자의 시장에 적합하도록 하기 위해 상이한 측면들의 상호연결 아키텍처들을 요구한다. 예를 들어, 서버들은 더 높은 성능을 필요로 하는 반면, 모바일 생태계는 때때로 전력 절감을 위해 전체 성능을 희생시킬 수 있다. 그렇지만, 최대의 전력 절감으로 가능한 최고의 성능을 제공하는 것이 대부분의 패브릭들(fabrics)의 유일한 목적이다. 게다가, 각종의 상이한 상호연결부들이 어쩌면 본 명세서에 기술되어 있는 발명 요지로부터 이득을 볼 수 있다.
예들 중에서도 특히, PCIe(PCI(Peripheral Component Interconnect) Express) 상호연결 패브릭 아키텍처 및 QPI(QuickPath Interconnect) 패브릭 아키텍처가 어쩌면 본 명세서에 기술되어 있는 하나 이상의 원리들에 따라 개선될 수 있다. 예를 들어, PCIe의 주된 목표는 상이한 벤더들로부터의 구성요소들 및 디바이스들이 다수의 시장 세그먼트: 클라이언트들(데스크톱들 및 모바일), 서버들(스탠더드 및 엔터프라이즈), 그리고 임베디드 및 통신 디바이스들에 걸쳐 있는 개방형 아키텍처에서 연동(inter-operate)할 수 있게 하는 것이다. PCI Express는 아주 다양한 장래의 컴퓨팅 및 통신 플랫폼들에 대해 정의된 고성능의 범용 I/O 상호연결부이다. 어떤 PCI 속성들(그의 사용 모델, 로드-저장(load-store) 아키텍처, 및 소프트웨어 인터페이스들 등)은 그의 리비전들(revisions)에 걸쳐 유지된 반면, 이전의 병렬 버스 구현들은 고확장성의 완전 직렬 인터페이스(fully serial interface)로 교체되었다. PCI Express의 더 최신의 버전들은, 새로운 성능 레벨들 및 특징들을 제공하기 위해, 점대점 상호연결부들, 스위치 기반 기술, 및 패킷화된 프로토콜에서의 진보들을 이용하고 있다. 전력 관리, QoS(Quality Of Service), 핫 플러그(Hot-Plug)/핫 스왑(Hot-Swap) 지원, 데이터 무결성, 및 오류 처리는 PCI Express에 의해 지원되는 진보된 특징들 중 일부이다. 비록 본 명세서에서의 주된 논의가 새로운 HPI(high-performance interconnect) 아키텍처와 관련되어 있지만, 본 명세서에 기술되어 있는 본 발명의 측면들은 PCIe 호환 아키텍처, QPI 호환 아키텍처, MIPI 호환 아키텍처, 고성능 아키텍처, 또는 다른 공지된 상호연결 아키텍처와 같은 다른 상호연결 아키텍처들에 적용될 수 있다.
도 1을 참조하면, 한 세트의 구성요소들을 상호연결시키는 점대점 링크들로 이루어져 있는 패브릭의 일 실시예가 예시되어 있다. 시스템(100)은 제어기 허브(115)에 결합되어 있는 프로세서(105) 및 시스템 메모리(110)를 포함한다. 프로세서(105)는 마이크로프로세서, 호스트 프로세서, 임베디드 프로세서, 코프로세서, 또는 다른 프로세서와 같은 임의의 처리 요소를 포함할 수 있다. 프로세서(105)는 FSB(front-side bus, 프론트 사이트 버스)(106)를 통해 제어기 허브(115)에 결합되어 있다. 하나의 실시예에서, FSB(106)는 이하에서 기술되는 바와 같이 직렬 점대점 상호연결부이다. 다른 실시예에서, 링크(106)는 상이한 상호연결 표준과 호환되는 직렬 차동 상호연결 아키텍처(serial, differential interconnect architecture)를 포함한다.
시스템 메모리(110)는 RAM(random access memory, 랜덤 액세스 메모리), 비휘발성(non-volatile, NV) 메모리, 또는 시스템(100) 내의 디바이스들에 의해 액세스가능한 다른 메모리와 같은 임의의 메모리 디바이스를 포함한다. 시스템 메모리(110)는 메모리 인터페이스(116)를 통해 제어기 허브(115)에 결합되어 있다. 메모리 인터페이스의 예들은 DDR(double-data rate, 더블 데이터 레이트) 메모리 인터페이스, 듀얼 채널 DDR 메모리 인터페이스, 및 DRAM(dynamic RAM, 동적 RAM) 메모리 인터페이스를 포함한다.
하나의 실시예에서, 제어기 허브(115)는 PCIe 상호연결 계층구조에서와 같은 루트 허브(root hub), 루트 컴플렉스(root complex), 또는 루트 제어기(root controller)를 포함할 수 있다. 제어기 허브(115)의 예들은 칩셋, MCH(memory controller hub, 메모리 제어기 허브), 노스브리지(northbridge), ICH(interconnect controller hub, 상호연결부 제어기 허브), 사우스브리지(southbridge), 및 루트 제어기/허브를 포함한다. 종종, 칩셋이라는 용어는 2개의 물리적으로 분리된 제어기 허브들, 예컨대, ICH(interconnect controller hub)에 결합되어 있는 MCH(memory controller hub)를 말한다. 유의할 점은, 이하에 기술되는 것과 유사한 방식으로, 현재의 시스템들이 프로세서(105)와 통합된 MCH를 종종 포함하는 반면, 제어기(115)는 I/O 디바이스들과 통신한다는 것이다. 어떤 실시예들에서, 피어-투-피어 라우팅(peer-to-peer routing)이 루트 컴플렉스(115)를 통해 선택적으로 지원된다.
여기서, 제어기 허브(115)는 직렬 링크(119)를 통해 스위치/브리지(120)에 결합되어 있다. 인터페이스들/포트들(117 및 121)이라고도 할 수 있는 입력/출력 모듈들(117 및 121)은, 제어기 허브(115)와 스위치(120) 사이에 통신을 제공하기 위해, 계층화된 프로토콜 스택을 포함/구현할 수 있다. 하나의 실시예에서, 다수의 디바이스들이 스위치(120)에 결합되어 있을 수 있다.
스위치/브리지(120)는 패킷들/메시지들을 업스트림으로는(즉, 루트 컴플렉스를 향해 계층구조의 위쪽으로) 디바이스(125)로부터 제어기 허브(115)로 그리고 다운스트림으로는(즉, 루트 제어기로부터 계층구조의 아래쪽으로) 프로세서(105) 또는 시스템 메모리(110)로부터 디바이스(125)로 라우팅한다. 하나의 실시예에서, 스위치(120)는 다수의 가상 PCI 대 PCI 브리지 디바이스들(virtual PCI-to-PCI bridge devices)의 논리 어셈블리(logical assembly)라고 한다. 디바이스(125)는 I/O 디바이스, NIC(Network Interface Controller, 네트워크 인터페이스 제어기), 애드인 카드(add-in card), 오디오 프로세서, 네트워크 프로세서, 하드 드라이브, 저장 디바이스, CD/DVD ROM, 모니터, 프린터, 마우스, 키보드, 라우터, 휴대용 저장 디바이스, Firewire 디바이스, USB(Universal Serial Bus) 디바이스, 스캐너, 및 다른 입력/출력 디바이스들과 같은, 전자 시스템에 결합될 임의의 내장형 또는 외장형 디바이스 또는 구성요소를 포함한다. 종종, 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 스택, 차세대 고성능 컴퓨팅 상호연결(HPI) 스택, 또는 다른 계층화된 스택과 같은 임의의 형태의 계층화된 통신 스택을 포함할 수 있다. 하나의 실시예에서, 프로토콜 스택(200)은 트랜잭션 계층(205), 링크 계층(210), 및 물리 계층(220)을 포함할 수 있다. 도 1에서의 인터페이스들(117, 118, 121, 122, 126, 및 131)과 같은 인터페이스가 통신 프로토콜 스택(200)으로서 표현될 수 있다. 통신 프로토콜 스택으로서의 표현은 또한 프로토콜 스택을 구현/포함하는 모듈 또는 인터페이스라고 할 수 있다.
구성요소들 사이에서 정보를 전달하기 위해 패킷들이 사용될 수 있다. 전송측 구성요소로부터 수신측 구성요소로 정보를 전달하기 위해, 패킷들이 트랜잭션 계층(205) 및 데이터 링크 계층(210)에서 형성될 수 있다. 전송된 패킷들이 다른 계층들을 통해 흘러감에 따라, 그들은 그 계층들에서 패킷들을 처리하는 데 사용되는 부가 정보로 확장된다. 수신측에서, 정반대의 프로세스가 일어나고, 패킷들이 그들의 물리 계층(220) 표현으로부터 데이터 링크 계층(210) 표현으로 그리고 마지막으로 (트랜잭션 계층 패킷들에 대해) 수신측 디바이스의 트랜잭션 계층(205)에 의해 처리될 수 있는 형태로 변환된다.
하나의 실시예에서, 트랜잭션 계층(205)은 디바이스의 처리 코어와 상호연결 아키텍처(데이터 링크 계층(210) 및 물리 계층(220) 등) 사이의 인터페이스를 제공할 수 있다. 이와 관련하여, 트랜잭션 계층(205)의 주된 임무는 패킷들(즉, 트랜잭션 계층 패킷들 또는 TLP들)의 조립 및 해체를 포함할 수 있다. 트랜잭션 계층(205)은 또한 TLP들에 대한 크레디트 기반 흐름 제어(credit-based flow control)를 관리할 수 있다. 어떤 구현예들에서, 분할된 트랜잭션들(즉, 시간상 분리되어 있는 요청 및 응답을 갖는 트랜잭션들)이 이용될 수 있어, 예들 중에서도 특히, 목표 디바이스가 응답을 위한 데이터를 수집하는 동안 링크가 다른 트래픽을 전달할 수 있게 한다.
상호연결 패브릭을 이용하여 가상 채널들 및 네트워크들을 실현하기 위해, 크레디트 기반 흐름 제어가 사용될 수 있다. 하나의 예에서, 디바이스가 트랜잭션 계층(205)에서 수신 버퍼들 각각에 대해 초기 크레디트 양(initial amount of credits)을 광고할 수 있다. 도 1에서 제어기 허브(115)와 같이, 링크의 반대쪽 끝에 있는 외부 장치는 각각의 TLP에 의해 소비되는 크레디트들의 수를 카운팅할 수 있다. 트랜잭션이 크레디트 한계(credit limit)를 초과하지 않으면, 트랜잭션이 전송될 수 있다. 응답을 수신할 시에, 일정량의 크레디트가 복원된다. 이러한 크레디트 방식의 장점의 하나의 예는, 잠재적인 장점들 중에서도 특히, 크레디트 한계에 봉착하지 않으면, 크레디트 회복(credit return)의 지연 시간이 성능에 영향을 미치지 않는다는 것이다.
하나의 실시예에서, 4개의 트랜잭션 주소 공간들은 구성 주소 공간, 메모리 주소 공간, 입력/출력 주소 공간, 및 메시지 주소 공간을 포함할 수 있다. 메모리 공간 트랜잭션들은 메모리 매핑된 장소(memory-mapped location)로/로부터 데이터를 전송하기 위해 읽기 요청들 및 쓰기 요청들 중 하나 이상을 포함한다. 하나의 실시예에서, 메모리 공간 트랜잭션들은 2개의 상이한 주소 형식들, 예컨대, 32-비트 주소와 같은 짧은 주소 형식 또는 64-비트 주소와 같은 긴 주소 형식을 사용할 수 있다. 구성 공간 트랜잭션들은 상호연결부에 연결되어 있는 다양한 디바이스들의 구성 공간에 액세스하는 데 사용될 수 있다. 구성 공간에 대한 트랜잭션들은 읽기 요청들 및 쓰기 요청들을 포함할 수 있다. 메시지 공간 트랜잭션들(또는 단순히 메시지들)이 또한 상호연결 에이전트들 사이의 대역내 통신을 지원하기 위해 정의될 수 있다. 따라서, 하나의 예시적인 실시예에서, 트랜잭션 계층(205)은 패킷 헤더/페이로드(206)를 조립할 수 있다.
이어서 도 3을 참조하면, 트랜잭션 계층 패킷 기술자(transaction layer packet descriptor)의 한 예시적인 실시예가 예시되어 있다. 하나의 실시예에서, 트랜잭션 기술자(300)는 트랜잭션 정보를 전달하기 위한 한 메커니즘일 수 있다. 이와 관련하여, 트랜잭션 기술자(300)는 한 시스템에서의 트랜잭션들의 식별을 지원한다. 다른 잠재적인 사용들은 기본 트랜잭션 정렬(default transaction ordering) 및 트랜잭션과 채널들 간의 연관의 수정들을 추적하는 것을 포함한다. 예를 들어, 트랜잭션 기술자(300)는 전역 식별자 필드(302), 속성들 필드(304) 및 채널 식별자 필드(306)를 포함할 수 있다. 예시된 예에서, 전역 식별자 필드(302)는 로컬 트랜잭션 식별자 필드(308) 및 소스 식별자 필드(310)를 포함하는 것으로 도시되어 있다. 하나의 실시예에서, 전역 트랜잭션 식별자(302)는 모든 대기 중인 요청들(outstanding requests)에 대해 고유하다.
하나의 구현예에 따르면, 로컬 트랜잭션 식별자 필드(308)는 요청측 에이전트에 의해 발생된 필드이고, 그 요청측 에이전트에 대해 완료를 필요로 하는 모든 대기 중인 요청들에 대해 고유할 수 있다. 게다가, 이 예에서, 소스 식별자(310)는 상호연결 계층구조 내에서 요청자 에이전트(requestor agent)를 일의적으로 식별해준다. 그에 따라, 소스 ID(310)와 함께, 로컬 트랜잭션 식별자(308) 필드는 계층구조 도메인(hierarchy domain) 내에서 트랜잭션의 전역적 식별을 제공한다.
속성들 필드(304)는 트랜잭션의 특성들 및 관계들을 명시한다. 이와 관련하여, 속성들 필드(304)는 어쩌면 트랜잭션들의 기본 처리의 수정을 가능하게 하는 부가 정보를 제공하기 위해 사용된다. 하나의 실시예에서, 속성들 필드(304)는 우선순위 필드(312), 예비된 필드(314), 정렬(ordering) 필드(316), 및 스누프 없음(no-snoop) 필드(318)를 포함한다. 여기서, 우선순위 서브필드(312)는 트랜잭션에 우선순위를 할당하기 위해 개시자(initiator)에 의해 수정될 수 있다. 예비된 속성 필드(314)는 장래의 또는 벤더 정의 사용을 위해 예비된 채로 있다. 우선순위 또는 보안 속성들을 사용하는 가능한 사용 모델들이 예비된 속성 필드를 사용하여 구현될 수 있다.
이 예에서, 정렬 속성 필드(316)는 기본 정렬 규칙들을 수정할 수 있는 정렬의 유형을 전달하는 선택적인 정보를 제공하기 위해 사용된다. 하나의 예시적인 구현예에 따르면, "0"의 정렬 속성은 기본 정렬 규칙들이 적용된다는 것을 나타내고, "1"의 정렬 속성은 완화된 정렬(relaxed ordering)을 나타내며, 쓰기들은 쓰기들을 동일한 방향으로 전달할 수 있고, 읽기 완료들(read completions)은 쓰기들을 동일한 방향으로 전달할 수 있다. 스누프 속성 필드(318)는 트랜잭션들이 스누핑되는지를 결정하는 데 이용된다. 도시된 바와 같이, 채널 ID 필드(306)는 트랜잭션과 연관되어 있는 채널을 식별해준다.
도 2의 논의로 돌아가서, 데이터 링크 계층(210)이라고도 하는 링크 계층(210)은 트랜잭션 계층(205)과 물리 계층(220) 사이의 중간 스테이지로서 기능할 수 있다. 하나의 실시예에서, 데이터 링크 계층(210)의 임무는 링크를 통해 2개의 구성요소들 사이에서 트랜잭션 계층 패킷들(TLP들)을 교환하기 위한 신뢰할 수 있는 메커니즘을 제공하는 것이다. 데이터 링크 계층(210)의 한쪽은 트랜잭션 계층(205)에 의해 조립된 TLP들을 수락하고, 패킷 시퀀스 식별자(211)(즉, 식별 번호 또는 패킷 번호)를 적용하며, 오류 검출 코드(즉, CRC)(212)를 계산하여 적용하며, 수정된 TLP들을 물리 링크를 거쳐 외부 장치로 전송하기 위해 물리 계층(220)으로 전달한다.
하나의 예에서, 물리 계층(220)은 패킷을 외부 장치로 물리적으로 전송하기 위해 논리 서브블록(221) 및 전기 서브블록(222)을 포함한다. 여기서, 논리 서브블록(221)은 물리 계층(221)의 "디지털" 기능들을 책임지고 있다. 이와 관련하여, 논리 서브블록은 물리 서브블록(222)에 의해 전송하기 위한 발신 정보(outgoing information)를 준비하는 송신 섹션, 및 수신된 정보를 링크 계층(210)으로 전달하기 전에 그를 식별하고 준비하는 수신기 섹션을 포함할 수 있다.
물리 블록(222)은 송신기 및 수신기를 포함한다. 송신기는 논리 서브블록(221)에 의해 심볼들을 공급받고, 송신기는 이들을 직렬화하여 외부 장치로 전송한다. 수신기는 외부 장치로부터 직렬화된 심볼들을 공급받고, 수신된 신호들을 비트 스트림으로 변환시킨다. 비트 스트림은 역직렬화되어 논리 서브블록(221)에 공급된다. 하나의 예시적인 실시예에서, 8b/10b 전송 코드가 이용되고, 10-비트 심볼들이 전송/수신된다. 여기서, 프레임들(223)로 패킷을 프레이밍(framing)하기 위해 특수 심볼들이 사용된다. 그에 부가하여, 하나의 예에서, 수신기는 또한 착신 직렬 스트림으로부터 복원된 심볼 클럭을 제공한다.
앞서 언급한 바와 같이, 비록 트랜잭션 계층(205), 링크 계층(210), 및 물리 계층(220)이 프로토콜 스택(PCIe 프로토콜 스택 등)의 특정의 실시예와 관련하여 논의되어 있지만, 계층화된 프로토콜 스택이 그렇게 제한되지 않는다. 실제로, 임의의 계층화된 프로토콜이 포함/구현되고, 본 명세서에 논의된 특징들을 채택할 수 있다. 한 예로서, 계층화된 프로토콜로서 표현되어 있는 포트/인터페이스는: (1) 패킷들을 조립하는 제1 계층, 즉 트랜잭션 계층; (2) 패킷들을 시퀀싱하는 제2 계층, 즉 링크 계층; 및 (3) 패킷들을 전송하는 제3 계층, 즉 물리 계층을 포함할 수 있다. 특정의 예로서, 본 명세서에 기술되어 있는 바와 같은 고성능 상호연결 계층화된 프로토콜이 이용된다.
다음에 도 4를 참조하면, 직렬 점대점 패브릭의 한 예시적인 실시예가 예시되어 있다. 직렬 점대점 링크는 직렬 데이터를 전송하기 위한 임의의 전송 경로를 포함할 수 있다. 도시된 실시예에서, 링크는 2개의 저전압 차동 구동 신호 쌍: 송신쌍(406/411) 및 수신쌍(412/407)을 포함할 수 있다. 그에 따라, 디바이스(405)는 데이터를 디바이스(410)로 전송하는 전송 논리(406) 및 디바이스(410)로부터 데이터를 수신하는 수신 논리(407)를 포함한다. 환언하면, 2개의 전송 경로들, 즉 경로들(416 및 417) 및 2개의 수신 경로들, 즉 경로들(418 및 419)이 링크의 어떤 구현예들에 포함되어 있다.
전송 경로는 전송 선로, 구리 선로, 광 선로, 무선 통신 채널, 적외선 통신 링크, 또는 다른 통신 경로와 같은 데이터를 전송하기 위한 임의의 경로를 말한다. 디바이스(405) 및 디바이스(410)와 같은 2개의 디바이스들 사이의 연결은 링크(415)와 같은 링크라고 한다. 한 링크는 하나의 레인(lane)을 지원할 수 있고, 각각의 레인은 한 세트의 차동 신호 쌍들(전송을 위한 하나의 쌍, 수신을 위한 하나의 쌍)을 나타낸다. 대역폭을 확장시키기 위해, 한 링크가 xN으로 표시된 다수의 레인들을 집성할 수 있고, 여기서 N은 임의의 지원된 링크 폭(1, 2, 4, 8, 12, 16, 32, 64, 또는 그 이상)이다.
차동 쌍은 차동 신호들을 전송하는 선로들(416 및 417)과 같은 2개의 전송 경로들을 말할 수 있다. 한 예로서, 선로(416)가 저전압 레벨로부터 고전압 레벨로 토글할 때(즉, 상승 엣지), 선로(417)는 고전압 레벨로부터 저전압 레벨로 구동된다(즉, 하강 엣지). 차동 신호들은, 예시적인 장점들 중에서도 특히, 어쩌면 더 나은 신호 무결성과 같은 더 나은 전기적 특성들(즉, 교차 결합, 전압 오버슈트/언더슈트, 링잉)을 나타낸다. 이것은 더 나은 타이밍 윈도우를 가능하게 하고, 이는 더 빠른 전송 주파수들을 가능하게 한다.
하나의 실시예에서, 새로운 HPI(High Performance Interconnect)가 제공된다. HPI는 차세대의 캐시 일관성 링크 기반 상호연결부를 포함할 수 있다. 한 예로서, HPI는 PCIe 또는 다른 상호연결 프로토콜이 전형적으로 프로세서들, 가속기들, I/O 디바이스들 등을 연결시키는 데 사용되는 시스템들을 비롯한 워크스테이션들 또는 서브들과 같은 고성능 컴퓨팅 플랫폼들에서 이용될 수 있다. 그렇지만, HPI가 그렇게 제한되지 않는다. 그 대신에, HPI는 본 명세서에 기술되어 있는 시스템들 또는 플랫폼들 중 임의의 것에서 이용될 수 있다. 게다가, 개발된 개개의 고안들이 PCIe, MIPI, QPI 등과 같은 다른 상호연결부들 및 플랫폼들에 적용될 수 있다.
다수의 디바이스들을 지원하기 위해, 하나의 예시적인 구현예에서, HPI는 ISA(Instruction Set Architecture) 아그노스틱(agnostic)을 포함할 수 있다(즉, HPI는 다수의 상이한 디바이스들에서 구현될 수 있다). 다른 시나리오에서, HPI는 또한, 프로세서들 또는 가속기들 뿐만 아니라, 고성능 I/O 디바이스들을 연결시키는 데도 이용될 수 있다. 예를 들어, 고성능 PCIe 디바이스가 적절한 변환 브리지(translation bridge)(즉, HPI에서 PCIe로의)를 통해 HPI에 결합될 수 있다. 더욱이, HPI 링크들이 프로세서들과 같은 많은 HPI 기반 디바이스들에 의해 다양한 방식들(예컨대, 스타, 링, 메쉬 등)로 이용될 수 있다. 도 5는 다수의 잠재적인 다중 소켓 구성들의 예시적인 구현예들을 나타낸 것이다. 2-소켓 구성(505)은, 도시되어 있는 바와 같이, 2개의 HPI 링크들을 포함할 수 있지만; 다른 구현예들에서, 하나의 HPI 링크가 이용될 수 있다. 보다 대규모의 토폴로지들에 대해, 부가의 또는 대체 특징들 중에서도 특히, 식별자(ID)가 할당가능하고 어떤 형태의 가상 경로가 있는 한, 임의의 구성이 이용될 수 있다. 도시된 바와 같이, 하나의 예에서, 4-소켓 구성(510)은 각각의 프로세서로부터 다른 프로세서로의 HPI 링크를 가진다. 그러나, 구성(515)에 도시되어 있는 8-소켓 구현예에서는, 모든 소켓들이 HPI 링크를 통해 서로 직접 연결되어 있는 것은 아니다. 그렇지만, 프로세서들 사이에 가상 경로 또는 채널이 존재하는 경우, 이 구성이 지원된다. 지원되는 프로세서들의 범위는 네이티브 도메인(native domain)에서의 2 내지 32개를 포함한다. 예들 중에서도 특히, 다수의 도메인들 또는 노드 제어기들 사이의 다른 상호연결부들의 사용을 통해 더 많은 수의 프로세서들에 도달될 수 있다.
HPI 아키텍처는, 어떤 예들에서, 프로토콜 계층들(일관성(coherent), 비일관성(non-coherent), 및 선택적으로 다른 메모리 기판 프로토콜들), 라우팅 계층, 링크 계층, 및 물리 계층을 포함하는 계층화된 프로토콜 아키텍처의 정의를 포함한다. 게다가, HPI는 예들 중에서도 특히 (PCU들(power control units, 전력 제어 유닛들)과 같은) 전력 관리자들, 테스트 및 디버그를 위한 설계(DFT), 장애 관리, 레지스터들, 보안에 관계된 강화들을 추가로 포함할 수 있다. 도 6은 한 예시적인 HPI 계층화된 프로토콜 스택의 일 실시예를 나타낸 것이다. 어떤 구현예들에서, 도 6에 예시되어 있는 계층들 중 적어도 일부는 선택적일 수 있다. 각각의 계층은 그 자신의 입도 레벨 또는 정보 할당량을 처리한다(프로토콜 계층(620a, 620b)은 패킷들(630)을 처리하고, 링크 계층(610a, 610b)은 플릿들(flits)(635)을 처리하며, 물리 계층(605a, 605b)은 피트들(phits)(640)을 처리함). 유의할 점은, 어떤 실시예들에서, 패킷이 구현에 기초하여 부분 플릿들, 단일의 플릿, 또는 다수의 플릿들을 포함할 수 있다는 것이다.
제1 예로서, 피트(640)의 폭은 링크 폭 대 비트들 간의 일대일 매핑을 포함한다(예컨대, 20 비트 링크 폭은 20 비트의 피트를 포함하는 등임). 플릿들은 184, 192, 또는 200 비트와 같은 더 큰 크기를 가질 수 있다. 유의할 점은, 피트(640)가 폭이 20 비트이고 플릿(635)의 크기가 184 비트인 경우, 하나의 플릿(635)을 전송하는 데 소수 개의 피트들(640)을 차지한다는 것이다(예컨대, 예들 중에서도 특히, 184 비트 플릿(635)을 전송하는 데 20 비트 피트 9.2개 또는 192 비트 플릿을 전송하는 데 20 비트 피트 9.6개). 유의할 점은, 물리 계층에 있는 기본 링크(fundamental link)의 폭들이 변할 수 있다는 것이다. 예를 들어, 방향별 레인들의 수는 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 등을 포함하고 있을 수 있다. 하나의 실시예에서, 링크 계층(610a, 610b)은 다수의 상이한 트랜잭션들을 단일의 플릿에 임베딩(embedding)할 수 있고, 하나 또는 다수의 헤더들(예컨대, 1 , 2, 3, 4)이 플릿 내에 임베딩될 수 있다. 하나의 예에서, HPI는, 플릿 내의 다수의 메시지들이 상이한 노드들로 보내지는 것을 가능하게 하기 위해, 헤더들을 대응하는 슬롯들로 분할한다.
하나의 실시예에서, 물리 계층(605a, 605b)은 물리 매체(전기 또는 광 등)를 통한 정보의 고속 전송을 책임지고 있을 수 있다. 물리 링크는, 계층(605a 및 605b)과 같이, 2개의 링크 계층 엔티티들 간에 점대점일 수 있다. 링크 계층(610a, 610b)은 상위 계층들로부터 물리 계층(605a, 605b)을 추상화할 수 있고, 데이터(는 물론 요청들)를 신뢰성 있게 전송할 수 있는 능력을 제공하며 2개의 직접 연결된 엔티티들 간의 흐름 제어를 관리할 수 있다. 링크 계층은 또한 물리 채널을 다수의 가상 채널들 및 메시지 클래스들(message classes)로 가상화하는 것을 책임지고 있을 수 있다. 프로토콜 계층(620a, 620b)은 프로토콜 메시지들을 물리 링크를 거쳐 전송하기 위해 물리 계층(605a, 605b)으로 넘겨 주기 전에 그들을 적절한 메시지 클래스들 및 가상 채널들에 매핑하기 위해 링크 계층(610a, 610b)에 의존한다. 링크 계층(610a, 610b)은, 예들 중에서도 특히, 요청, 스누프, 응답, 라이트백(writeback), 비일관성 데이터(non-coherent data)와 같은 다수의 메시지들을 지원할 수 있다.
HPI의 물리 계층(605a, 605b)(또는 PHY)은, 도 6에 예시되어 있는 바와 같이, 전기 계층(즉, 2개의 구성요소들을 연결시키는 전기 도체들) 위쪽에 그리고 링크 계층(610a, 610b) 아래쪽에 구현될 수 있다. 물리 계층 및 대응하는 논리는 각각의 에이전트에 존재하고 (예컨대, 링크의 양측에 있는 디바이스들 상의) 서로 분리되어 있는 2개의 에이전트들(A 및 B) 상의 링크 계층들을 연결시킬 수 있다. 로컬 및 원격 전기 계층들은 물리 매체(예컨대, 전선, 도체, 광 등)에 의해 연결된다. 하나의 실시예에서, 물리 계층(605a, 605b)은 2개의 주된 단계들 - 초기화 및 동작 - 을 가진다. 초기화 동안, 연결이 링크 계층에 불투명(opaque)하고, 시그널링은 타이밍 조절된 상태들(timed states)과 핸드쉐이크 이벤트들(handshake events)의 조합을 수반할 수 있다. 동작 중에, 연결이 링크 계층에 투명(transparent)하고, 시그널링은 모든 레인들이 단일의 링크로서 함께 동작하는 속도로 이루어진다. 동작 단계 동안, 물리 계층은 에이전트 A로부터 에이전트 B로 그리고 에이전트 B로부터 에이전트 A로 플릿들을 전송한다. 이 연결은 링크라고도 하고, 플릿들 및 현재 구성(예컨대, 폭)의 제어/상태를 링크 계층과 교환하면서 링크 계층들로부터 매체, 폭 및 속도를 비롯한 어떤 물리적 측면들을 추상화한다. 초기화 단계는 세부 단계들(minor phase)(예컨대, 폴링(Polling), 구성(Configuration))을 포함한다. 동작 단계도 또한 세부 단계들(예컨대, 링크 전력 관리 상태들)을 포함한다.
하나의 실시예에서, 링크 계층(610a, 610b)이 2개의 프로토콜 또는 라우팅 엔티티들 사이에서 신뢰할 수 있는 데이터 전송을 제공하도록 구현될 수 있다. 링크 계층은 프로토콜 계층(620a, 620b)으로부터 물리 계층(605a, 605b)을 추상화할 수 있고, 2개의 프로토콜 에이전트들(A, B) 사이의 흐름 제어를 책임지고 있을 수 있으며, 가상 채널 서비스들을 프로토콜 계층(메시지 클래스들) 및 라우팅 계층(가상 네트워크들)에 제공할 수 있다. 프로토콜 계층(620a, 620b)과 링크 계층(610a, 610b) 사이의 인터페이스는 전형적으로 패킷 레벨에 있을 수 있다. 하나의 실시예에서, 링크 계층에서의 가장 작은 전송 단위는 명시된 수의 비트들(192 비트 등)을 갖는 플릿(flit) 또는 어떤 다른 명칭이라고 한다. 링크 계층(610a, 610b)은 물리 계층(605a, 605b)의 전송 단위(피트(phit))를 링크 계층(610a, 610b)의 전송 단위(플릿)로 프레이밍하기 위해 물리 계층(605a, 605b)에 의존한다. 그에 부가하여, 링크 계층(610a, 610b)은 논리적으로 2개의 부분들 - 송신기 및 수신기 - 로 분해될 수 있다. 하나의 엔터터 상의 송신기/수신기 쌍은 다른 엔티티 상의 수신기/송신기 쌍에 연결될 수 있다. 흐름 제어는 종종 플릿 및 패킷 둘 다에 기초하여 수행된다. 오류 검출 및 정정이 또한 어쩌면 플릿 레벨에 기초하여 수행된다.
하나의 실시예에서, 라우팅 계층(615a, 615b)은 HPI 트랜잭션들을 소스로부터 목적지로 라우팅하는 유연한 분산형 방식을 제공할 수 있다. 이 방식은 유연한데, 그 이유는 다수의 토폴로지들에 대한 라우팅 알고리즘들이 각각의 라우터에서 프로그램가능 라우팅 테이블들을 통해 명시될 수 있기 때문이다(하나의 실시예에서, 프로그래밍은 펌웨어, 소프트웨어, 또는 이들의 조합에 의해 수행된다). 라우팅 기능이 분산되어 있을 수 있고; 라우팅이 일련의 라우팅 단계들을 통해 행해질 수 있으며, 각각의 라우팅 단계는 소스, 중간, 또는 목적지 라우터들에 테이블의 탐색(lookup)을 통해 정의된다. 소스에서의 탐색은 HPI 패킷을 HPI 패브릭 내로 주입(inject)하는 데 사용될 수 있다. 중간 라우터에서의 탐색은 HPI 패킷을 입력 포트로부터 출력 포트로 라우팅하는 데 사용될 수 있다. 목적지 포트에서의 탐색은 목적지 HPI 프로토콜 에이전트를 목표로 정하기 위해 사용될 수 있다. 유의할 점은, 어떤 구현예들에서, 라우팅 테이블들, 그리고 따라서 라우팅 알고리즘들이 규격에 의해 구체적으로 정의되어 있지 않기 때문에, 라우팅 계층이 씬(thin)일 수 있다는 것이다. 이것은, 시스템 구현에 의해 정의될 유연한 플랫폼 아키텍처 토폴로지들을 비롯하여, 유연성 및 각종의 사용 모델들을 가능하게 한다. 라우팅 계층(615a, 615b)은 최대 3개(또는 그 이상)의 가상 네트워크들(VN들)의 사용을 제공하기 위해 링크 계층(610a, 610b)에 의존한다 - 하나의 예에서, 몇개의 메시지 클래스들을 갖는 2개의 무교착(deadlock-free) VN들(VN0 및 VN1)이 각각의 가상 네트워크에서 정의된다 -. 공유 적응적 가상 네트워크(shared adaptive virtual network)(VNA)는 링크 계층에서 정의될 수 있지만, 이 적응적 네트워크는 라우팅 개념들에 직접 노출되지 않을 수 있는데, 그 이유는, 특징들 및 예들 중에서도 특히, 각각의 메시지 클래스 및 가상 네트워크가 전용 자원들 및 보장된 전달 진행(guaranteed forward progress)을 가질 수 있기 때문이다.
어떤 구현예들에서, HPI는 임베딩된 클럭(embedded clock)을 이용할 수 있다. 클럭 신호가 상호연결부를 사용하여 전송되는 데이터에 임베딩될 수 있다. 클럭 신호가 데이터에 임베딩되어 있는 경우, 별개의 전용 클럭 레인들이 생략될 수 있다. 이것은 유용할 수 있는데, 예를 들어, 특히 핀들을 위한 공간을 찾기 힘든 시스템들에서, 디바이스의 더 많은 핀들이 데이터 전송에 전용될 수 있게 할 수 있기 때문이다.
상호연결부의 양측에 있는 2개의 에이전트들 사이에 링크가 설정될 수 있다. 데이터를 송신하는 에이전트는 로컬 에이전트일 수 있고, 데이터를 수신하는 에이전트는 원격 에이전트일 수 있다. 링크의 다양한 측면들을 관리하기 위해 양쪽 에이전트들에 의해 상태 머신들이 이용될 수 있다. 하나의 실시예에서, 물리 계층 데이터 경로는 플릿들을 링크 계층으로부터 전기 프론트 엔드(electrical front-end)로 전송할 수 있다. 하나의 구현예에서, 제어 경로는 상태 머신(링크 훈련 상태 머신 등이라고도 함)를 포함한다. 상태 머신의 동작들 및 상태들로부터의 탈출들(exits)은 내부 신호들, 타이머들, 외부 신호들 또는 다른 정보에 의존할 수 있다. 실제로, 몇몇 초기화 상태들과 같은 상태들 중 일부는, 상태를 탈출할 타임아웃 값을 제공하기 위해, 타이머들을 가질 수 있다. 유의할 점은, 어떤 실시예들에서, 검출(detect)이 레인의 양쪽 레그들(legs)에서 이벤트를 검출하는 것(그렇지만, 꼭 동시에 검출하는 것은 아님)을 말한다는 것이다. 그렇지만, 다른 실시예들에서, 검출은 참조 에이전트(agent of reference)가 이벤트를 검출하는 것을 말한다. 디바운스(debounce)는, 하나의 예로서, 신호의 지속된 어써션(sustained assertion)을 말한다. 하나의 실시예에서, HPI는 비기능 레인들(non-function lanes)의 경우에 동작을 지원한다. 여기서, 레인들이 특정의 상태들에서 드롭(drop)될 수 있다.
상태 머신에서 정의된 상태들은, 카테고리들 및 서브카테고리들 중에서도 특히, 리셋 상태들, 초기화 상태들, 및 동작 상태들을 포함할 수 있다. 하나의 예에서, 어떤 초기화 상태들은 타임아웃(본질적으로 상태에서 진행하지 못하는 것으로 인한 강제 종료(abort)) 시에 상태를 탈출하기 위해 사용되는 보조 타이머를 가질 수 있다. 강제 종료는 상태 레지스터(status register)와 같은 레지스터들을 갱신(updating)시키는 것을 포함할 수 있다. 어떤 상태들은 또한 상태에서의 주 기능들을 타이밍 조절하는 데 사용되는 주 타이머(들)를 가질 수 있다. 예들 중에서도 특히, (핸드쉐이크 프로토콜들과 같은) 내부 또는 외부 신호들이 상태로부터 다른 상태로의 천이를 구동하도록 다른 상태들이 정의될 수 있다.
상태 머신은 또한 단일의 단계를 통한 디버그(debug), 초기화 강제 종료 시의 동결(freeze), 및 테스터들의 사용을 지원할 수 있다. 여기서, 상태 탈출들이 디버그 소프트웨어가 준비될 때까지 지연/홀드될 수 있다. 어떤 경우에, 탈출이 보조 타임아웃 때까지 지연/홀드될 수 있다. 하나의 실시예에서, 동작들 및 탈출들이 훈련 시퀀스들의 교환에 기초할 수 있다. 하나의 실시예에서, 링크 상태 머신은 로컬 에이전트 클럭 도메인(clock domain)에서 실행될 것이고, 하나의 상태에서 그 다음 상태로의 천이는 송신기 훈련 시퀀스 경계와 일치할 것이다. 현재 상태를 반영하기 위해 상태 레지스터들이 이용될 수 있다.
도 7은 HPI의 하나의 예시적인 구현예에서 에이전트들에 의해 사용되는 상태 머신의 적어도 일부분의 한 표현을 나타낸 것이다. 도 7의 상태 테이블에 포함된 상태들이 가능한 상태들의 빠짐없는 목록을 포함한다는 것을 잘 알 것이다. 예를 들어, 다이어그램을 간단화하기 위해 어떤 천이들이 생략되어 있다. 또한, 어떤 상태들이 결합, 분할 또는 생략될 수 있는 반면, 다른 상태들이 추가될 수 있다. 이러한 상태들은 다음과 같은 것들을 포함할 수 있다:
이벤트 리셋 상태( event reset state): 웜 리셋(warm reset) 또는 콜드 리셋(cold reset) 이벤트 시에 진입함. 기본값들을 복원한다. 카운터들(예컨대, 동기 카운터들)을 초기화한다. 다른 리셋 상태와 같은 다른 상태로 탈출할 수 있다.
타이밍 조절된 리셋 상태( timed reset state ): 대역내 리셋(in-band reset)을 위한 타이밍 조절된 상태. 사전 정의된 EOS(electrical ordered set, 전기 순서 집합)를 구동할 수 있고, 따라서 원격 수신기들이 EOS를 검출하고 타이밍 조절된 리셋에도 진입할 수 있다. 수신기는 전기 설정치들(electrical settings)을 보유하는 레인들을 가진다. 에이전트가 교정 리셋 상태로 탈출할 수 있다.
교정 리셋 상태( calibrate reset state ): 레인을 통한 시그널링(예컨대, 수신기 교정 상태) 또는 구동기들을 턴오프시키는 일이 없는 교정. 타이머에 기초한 상태에서의 사전 결정된 시간량일 수 있다. 동작 속도를 설정할 수 있다. 포트가 인에이블되어 있지 않을 때 대기 상태(wait state)로서 기능할 수 있다. 최소 체류 시간을 포함할 수 있다. 수신기 컨디셔닝(conditioning) 또는 스태거링 오프(staggering off)가 설계에 기초하여 행해질 수 있다. 타임아웃 및/또는 교정의 완료 후에 수신기 검출 상태(receiver detect state)로 탈출할 수 있다.
수신기 검출 상태( receiver detect state ): 레인(들) 상에서 수신기의 존재를 검출한다. 수신기 종단(예컨대, 수신기 풀다운 삽입)을 탐색할 수 있다. 명시된 값이 세트되어 있을 시에 또는 다른 명시된 값이 세트되어 있지 않을 때, 교정 리셋 상태로 탈출할 수 있다. 수신기가 검출되거나 타임아웃에 도달되는 경우, 송신기 교정 상태로 탈출할 수 있다.
송신기 교정 상태( transmitter calibrate state ): 송신기 교정을 위한 것임. 송신기 교정을 위해 할당된 타이밍 조절된 상태일 수 있다. 레인을 통한 시그널링을 포함할 수 있다. EIEOS(electric idle exit ordered set, 전기 유휴 탈출 순서 집합)와 같은 EOS를 연속적으로 구동할 수 있다. 교정을 행했을 때 또는 타이머의 만료 시에 규정 준수 상태(compliance state)로 탈출할 수 있다. 카운터가 만료되거나 보조 타임아웃이 발생한 경우, 송신기 검출 상태로 탈출할 수 있다.
송신기 검출 상태( transmitter detect state ): 유효한 시그널링에 자격을 부여한다. 에이전트가 동작들을 완료하고 원격 에이전트 시그널링에 기초하여 그 다음 상태로 탈출하는 핸드쉐이크 상태일 수 있다. 수신기는 송신기로부터의 유효한 시그널링에 자격을 부여할 수 있다. 하나의 실시예에서, 수신기는 웨이크 검출(wake detect)을 탐색하고, 하나 이상의 레인들에서 디바운스된 경우, 다른 레인들에서 그것을 탐색한다. 송신기는 검출 신호를 구동한다. 모든 레인들에 대해 디바운스가 완료된 것 및/또는 타임아웃에 응답하여 또는 모든 레인들에서의 디바운스가 완료되지 않고 타임아웃이 있는 경우 폴링 상태로 탈출할 수 있다. 여기서, 하나 이상의 모니터 레인들은 웨이크 신호(wake signal)를 디바운스하기 위해 깨어 있는 채로 있을 수 있다. 디바운스된 경우, 다른 레인들이 어쩌면 디바운스된다. 이것은 저전력 상태들에서의 전력 절감을 가능하게 할 수 있다.
폴링 상태( polling state ): 수신기는 드리프트 버퍼(drift buffer)를 조정, 초기화하고, 비트/바이트 기반으로 잠금한다(예컨대, 심볼 경계들을 식별한다). 레인들이 디스큐(deskew)될 수 있다. 원격 에이전트는, 확인 응답 메시지에 응답하여, 그 다음 상태(예컨대, 링크 폭 상태)로의 탈출을 야기할 수 있다. 폴링은, 그에 부가하여, EOS 및 훈련 시퀀스 헤더에 잠금하는 것에 의한 훈련 시퀀스 잠금을 포함할 수 있다. 원격 송신기에서의 레인간 스큐(lane to lane skew)가 최상위 속도에 대한 제1 길이 및 저속 속도에 대한 제2 길이에서 캡핑(capping)될 수 있다. 디스큐가 저속 모드는 물론 동작 모드에서도 수행될 수 있다. 수신기는 8, 16 또는 32 스큐 간격들과 같은 레인간 스큐를 디스큐하기 위한 특정의 최대값을 가질 수 있다. 수신기 동작들은 지연 시간 수정(latency fixing)을 포함할 수 있다. 하나의 실시예에서, 수신기 동작들은 유효한 레인 맵의 성공적인 디스큐 시에 완료될 수 있다. 하나의 예에서, 다수의 연속적인 훈련 시퀀스 헤더들이 확인 응답들과 함께 수신되고 수신기가 그의 동작들을 완료한 후에 확인 응답을 갖는 다수의 훈련 시퀀스들이 전송될 때, 성공적인 핸드쉐이크가 달성될 수 있다.
링크 폭 상태: 에이전트는 원격 송신기에 대한 최종적인 레인 맵(lane map)을 사용하여 통신한다. 수신기는 정보를 수신하고 디코딩한다. 수신기는 구성된 레인 맵을 구조체에서 제2 구조체에서의 이전의 레인 맵 값의 체크포인트 후에 기록할 수 있다. 수신기는 또한 확인 응답("ACK")으로 응답할 수 있다. 대역내 리셋을 개시할 수 있다. 하나의 예로서, 제1 상태는 대역내 리셋을 개시한다. 하나의 실시예에서, 플릿 구성 상태와 같은 그 다음 상태로의 탈출이 ACK에 응답하여 수행된다. 게다가, 저전력 상태에 진입하기 전에, 웨이크 검출 신호 발생의 주파수가 명시된 값(예컨대, 매 단위 구간(unit interval, UI) 수마다 1(4K UI 등)) 미만으로 떨어지는 경우, 리셋 신호가 또한 발생될 수 있다. 수신기는 현재의 레인 맵 및 이전의 레인 맵을 유지할 수 있다. 송신기는 훈련 시퀀스들이 상이한 값들을 가지는 것에 기초하여 상이한 레인 그룹들을 사용할 수 있다. 어떤 실시예들에서, 레인 맵이 몇몇 상태 레지스터들을 수정하지 않을 수 있다.
플릿잠금 구성 상태( flitlock configuration state ): 송신기가 진입하지만, 송신기 및 수신기 둘 다가 블록킹 링크 상태(blocking link state) 또는 다른 링크 상태로 탈출했을 때 상태가 탈출된 것으로 간주된다(즉, 보조 타임아웃은 고려할 가치가 없음). 링크 상태로의 송신기 탈출은, 하나의 실시예에서, 행성 정렬 신호(planetary alignment signal)를 수신한 후의 SDS(start of a data sequence, 데이터 시퀀스의 시작) 및 훈련 시퀀스(TS) 경계를 포함한다. 여기서, 수신기 탈출은 원격 송신기로부터 SDS를 수신한 것에 기초할 수 있다. 이 상태는 에이전트로부터 링크 상태로의 브리지일 수 있다. 수신기는 SDS를 식별한다. 디스크램블러(descrambler)가 초기화된 후에 SDS가 수신되면, 수신기는 BLS(blocking link state, 블록킹 링크 상태)(또는 제어 윈도우)로 탈출할 수 있다. 타임아웃이 일어나면, 리셋 상태로의 탈출이 있을 수 있다. 송신기는 구성 신호로 레인들을 구동한다. 조건들 또는 타임아웃들에 기초하여, 리셋, BLS 또는 다른 상태들로의 송신기 탈출이 있을 수 있다.
전송 링크 상태( Transmitting Link State ): 링크 상태. 플릿들이 원격 에이전트로 송신된다. 블록킹 링크 상태로부터 진입될 수 있고 타임아웃과 같은 이벤트 시에 블록킹 링크 상태로 복귀할 수 있다. 송신기는 플릿들을 전송한다. 수신기는 플릿들을 수신한다. 또한 저전력 링크 상태로 탈출할 수 있다. 어떤 구현예들에서, 전송 링크 상태(TLS)는 L0 상태라고 지칭될 수 있다.
블록킹 링크 상태( Blocking Link State ): 링크 상태. 송신기 및 수신기는 통일된 방식으로 동작하고 있다. 물리 계층 정보가 원격 에이전트로 전달되는 동안 링크 계층 플릿들이 홀드되는 타이밍 조절된 상태일 수 있다. 저전력 링크 상태(또는 설계에 기초하여 다른 링크 상태)로 탈출할 수 있다. 하나의 실시예에서, 블록킹 링크 상태(BLS)가 주기적으로 일어난다. 그 기간은 BLS 구간이라고 하며, 타이밍 조절될 수 있음은 물론 저속 속도와 동작 속도 간에 상이할 수 있다. 유의할 점은, 전송 링크 상태 또는 부분 폭 전송 링크 상태 동안과 같이, 어떤 길이의 물리 계층 제어 시퀀스가 송신될 수 있도록, 링크 계층이 플릿들을 송신하지 못하게 주기적으로 블록킹될 수 있다는 것이다. 어떤 구현예들에서, 블록킹 링크 상태(BLS)는 L0 제어 또는 L0c 상태라고 할 수 있다.
부분 폭 전송 링크 상태: 링크 상태. 부분 폭 상태에 진입함으로써 전력을 절감할 수 있다. 하나의 실시예에서, 비대칭 부분 폭은 2 방향 링크의 각각의 방향이 상이한 폭을 가지는 것을 말하며, 이는 몇몇 설계들에서 지원될 수 있다. 송신기와 같은 개시자가 부분 폭 전송 링크 상태에 진입하기 위해 부분 폭 표시를 송신하는 것의 한 예가 도 9의 예에 도시되어 있다. 여기서, 제2의 새로운 폭에서 전송하기 위해 링크를 천이하기 위해 제1 폭을 갖는 링크를 통해 전송하는 동안 부분 폭 표시가 송신된다. 불일치는 리셋을 야기할 수 있다. 유의할 점은, 속도들은 변경되지 않을 수 있지만 폭은 변경될 수 있다는 것이다. 따라서, 플릿들이 어쩌면 상이한 폭들로 송신된다. 논리적으로 전송 링크 상태와 유사할 수 있지만, 더 작은 폭이 있기 때문에, 플릿들을 전송하는 데 더 오래 걸릴 수 있다. 특정의 수신된 및 송신된 메시지들에 기초한 저전력 링크 상태, 또는 다른 이벤트들에 기초한 부분 폭 전송 링크 상태 또는 링크 블록킹 상태의 탈출과 같은 다른 링크 상태들로 탈출할 수 있다. 하나의 실시예에서, 송신기 포트는, 타이밍도에 나타낸 바와 같이 더 나은 신호 무결성(즉, 잡음 완화)을 제공하기 위해, 유휴 레인들을 스태거링된 방식으로 턴오프시킬 수 있다. 여기서, 링크 폭이 변하고 있는 기간들 동안 널 플릿들(Null flits)과 같은 비재시도가능 플릿들(non-retry-able flit)이 이용될 수 있다. 대응하는 수신기는 스태거링된 방식으로 이 널 플릿들을 드롭시키고 유휴 레인들을 턴오프시킬 수 있는 것은 물론 현재의 레인 맵 및 이전의 레인 맵을 하나 이상의 구조체들에 기록할 수 있다. 유의할 점은, 상태 및 연관된 상태 레지스터가 변경되지 않은 채로 있을 수 있다는 것이다. 어떤 구현예들에서, 부분 폭 전송 링크 상태는 부분 L0, 또는 L0p 상태라고 할 수 있다.
부분 폭 전송 링크 상태 탈출: 부분 폭 상태를 탈출한다. 어떤 구현예들에서, 블록킹 링크 상태를 사용할 수 있거나 그렇지 않을 수 있다. 하나의 실시예에서, 송신기는 유휴 레인들을 훈련 및 디스큐시키기 위해 그들을 통해 부분 폭 탈출 패턴들을 송신함으로써 탈출을 개시한다. 하나의 예로서, 탈출 패턴은 레인이 완전 전송 링크 상태로의 진입을 시작할 준비가 되어 있다는 것을 시그널링하기 위해 검출되고 디바운스되는 EIEOS로 시작하고, 유휴 레인들 상의 SDS 또는 FTS(Fast Training Sequence, 고속 훈련 시퀀스)로 끝날 수 있다. 탈출 시퀀스 동안의 어떤 실패(디스큐와 같은 수신기 동작들이 타임아웃 이전에 완료되지 않음)도 링크 계층으로의 플릿 전송을 중단시키고, 그 다음 블록킹 링크 상태 발생 시에 링크를 리셋시킴으로써 리셋을 어써트(assert)한다. SDS는 또한 레인들 상의 스크램블러/디스크램블러를 적절한 값들로 초기화시킬 수 있다.
저전력 링크 상태( Low Power link State ): 저전력 상태이다. 하나의 실시예에서, 이는 부분 폭 링크 상태보다 더 낮은 전력인데, 그 이유는 이 실시예에서의 시그널링이 모든 레인들 상에서 그리고 양쪽 방향으로 중단되기 때문이다. 송신기들은 저전력 링크 상태를 요청하기 위해 블록킹 링크 상태를 사용할 수 있다. 여기서, 수신기는 요청을 디코딩하고 ACK 또는 NAK로 응답할 수 있고; 그렇지 않은 경우, 리셋이 트리거될 수 있다. 어떤 구현예들에서, 저전력 링크 상태는 L1 상태라고 할 수 있다.
어떤 구현예들에서, 예를 들어, 특정의 교정들 및 구성들과 같은 상태들의 상태 동작들이 이미 완료되었을 때 상태들이 바이패스될 수 있게 하기 위해, 상태 천이들이 용이하게 될 수 있다. 링크의 이전의 상태 결과들 및 구성들이 저장되고 링크의 차후의 초기화들 및 구성들에서 저장 및 재사용될 수 있다. 이러한 구성들 및 상태 동작들을 반복하기 보다는, 대응하는 상태들이 바이패스될 수 있다. 그렇지만, 상태 바이패스들을 구현하는 종래의 시스템들은 종종 복잡한 설계들 및 고비용의 유효화 회피들(validation escapes)을 구현한다. 종래의 바이패스를 사용하기 보다는, 하나의 예에서, HPI는 상태 동작들이 반복될 필요가 없는 경우와 같은 특정의 상태들에서 단기 타이머들(short timers)을 이용할 수 있다. 이것은, 잠재적인 장점들 중에서도 특히, 어쩌면 더 균일하고 동기화된 상태 머신 천이들을 가능하게 할 수 있다.
하나의 예에서, 소프트웨어 기반 제어기(예컨대, 물리 계층에 대한 외부 제어점(external control point)을 통함)는 하나 이상의 특정의 상태들에 대해 단기 타이머를 인에이블시킬 수 있다. 예를 들어, 동작들이 이미 수행되고 저장된 상태에 대해, 그 상태는 그 상태로부터 다음 상태로의 신속한 탈출을 용이하게 하기 위해 단기 타이밍 조절(short-timed)될 수 있다. 그렇지만, 이전의 상태 동작이 실패하거나 단기 타이머 지속기간 내에 적용될 수 없는 경우, 상태 탈출이 수행될 수 있다. 게다가, 제어기는, 예를 들어, 상태 동작들이 새로 수행될 때, 단기 타이머를 디스에이블시킬 수 있다. 각자의 상태 각각에 대해 장기 또는 기본 타이머(long or default timer)가 세트될 수 있다. 상태에서의 구성 동작들이 장기 타이머 내에 완료될 수 없는 경우, 상태 탈출이 일어날 수 있다. 상태 동작들의 완료를 가능하게 하기 위해 장기 타이머가 적당한 지속기간으로 세트될 수 있다. 이와 달리, 단기 타이머는 상당히 더 짧을 수 있고, 이는 어떤 경우에, 예들 중에서도 특히, 이전에 수행된 상태 동작들을 다시 참조하는 일 없이 상태 동작들을 수행하는 것을 불가능하게 만든다.
어떤 경우에, 링크의 초기화(또는 재초기화) 동안, 에이전트들이 상태 머신을 통해 동작 링크 상태 쪽으로 진행할 때, 상태를 (예컨대, 리셋 또는 다른 상태로) 리셋시키는 하나 이상의 실패들 또는 상태 탈출들이 일어날 수 있다. 사실상, 링크의 초기화는, 초기화를 완료하고 링크 상태에 진입하는 일 없이, 하나 이상의 상태들을 통해 루핑(loop)할 수 있다. 하나의 예에서, 링크의 초기화 내에서의 상태 천이들에서의 비생산적인 루프의 수에 대한 카운트가 유지될 수 있다. 예를 들어, 초기화가 링크 상태에 도달함이 없이 리셋 상태로 복귀할 때마다, 카운터가 증분될 수 있다. 링크가 성공적으로 링크 상태에 진입하면 링크에 대해 카운터가 리셋될 수 있다. 이러한 카운터들이 링크의 양측에 있는 에이전트들에 의해 유지될 수 있다. 게다가, 예를 들어, 하나 이상의 외부 제어점들을 이용하는 소프트웨어 기반 제어기에 의해 임계치가 설정될 수 있다. 비생산적인 루프들의 카운트가 정의된 임계치를 충족시킬(또는 초과할) 때, 링크의 초기화가 세스펜드될 수 있다(예컨대, 리셋 상태에 또는 그 이전으로 설정되어 홀드됨). 어떤 구현예들에서, 초기화를 재시작하고 초기화를 서스펜드된(suspended) 상태로부터 해제시키기 위해, 소프트웨어 기반 제어기는 링크의 재시작 또는 재초기화를 트리거할 수 있다. 어떤 경우에, 소프트웨어 기반 도구들은, 초기화의 추가적인 루핑을 막기 위해, 서스펜드된 초기화의 특성을 분석하고 진단을 수행하며, 레지스터 값들을 설정하고, 다른 동작들을 수행할 수 있다. 실제로, 어떤 구현예들에서, 제어기는, 서스펜드된 링크 초기화를 재시작하는 것과 관련하여, 예들 중에서도 특히, 더 높은 카운터 임계치를 설정할 수 있거나, 심지어 카운터를 무시할 수 있다.
HPI의 어떤 구현예들에서, 수퍼시퀀스들이 정의될 수 있고, 각각의 수퍼시퀀스는 각자의 상태 또는 각자의 상태로/로부터의 진입/탈출에 대응한다. 수퍼시퀀스는 데이터 세트들 및 심볼들의 반복 시퀀스를 포함할 수 있다. 어떤 경우에, 예들 중에서도 특히, 상태 또는 상태 천이의 완료, 또는 대응하는 이벤트의 전달 때까지 시퀀스들이 반복할 수 있다. 어떤 경우에, 수퍼시퀀스의 반복 시퀀스는 단위 구간들(UI들)의 정의된 수와 같은 정의된 주파수에 따라 반복할 수 있다. 단위 구간(UI)은 링크 또는 시스템의 레인을 통해 단일의 비트를 전송하기 위한 시간 구간에 대응할 수 있다. 어떤 구현예들에서, 반복 시퀀스는 EOS(electrically ordered set)로 시작할 수 있다. 그에 따라, EOS의 한 인스턴스가 사전 정의된 주파수에 따라 반복할 것으로 예상될 수 있다. 이러한 순서 집합들(ordered sets)은, 예들 중에서도 특히, 16진수 형식으로 표현될 수 있는 정의된 16 바이트 코드들로서 구현될 수 있다. 하나의 예에서, 수퍼시퀀스의 EOS는 EIEOS일 수 있다. 하나의 예에서, EIEOS는 저주파수 클럭 신호(예컨대, 사전 정의된 수의 반복하는 FF00 또는 FFF000 16진수 심볼들 등)와 비슷할 수 있다. 사전 정의된 수의 훈련 시퀀스들 또는 다른 데이터와 같은 사전 정의된 데이터 세트는 EOS 다음에 올 수 있다. 이러한 수퍼시퀀스들은, 예들 중에서도 특히, 링크 상태 천이들을 비롯한 상태 천이들은 물론 초기화에서도 이용될 수 있다.
QPI에서와 같은 상호연결부의 어떤 구현예들에서, 링크가 리셋되거나 초기화될 때와 같이, 직렬 데이터 링크의 종단들이 온 및 오프될 수 있다. 이 방식은 링크의 초기화에 복잡성 및 시간을 유입시킬 수 있다. HPI의 어떤 구현예들에서, 링크의 리셋 또는 재초기화 동안을 비롯하여 링크의 종단들이 유지될 수 있다. 게다가, HPI는 디바이스들의 핫 플러깅(hot-plugging)을 허용할 수 있다. 다른 디바이스가 핫 플러깅 또는 다른 방식을 통해 유입될 때, 새로운 원격 에이전트가 추가되는 레인의 전압 특성들이 변할 것이다. 로컬 에이전트는 원격 에이전트의 존재를 검출하고 링크의 초기화를 요청하기 위해 레인 전압의 이 변화들을 감지할 수 있다. 종단들을 갖지 않는 링크의 검출, 구성, 및 초기화를 조정하기 위해, 상태 머신 상태들 및 타이머들이 상태 머신에서 정의될 수 있다.
하나의 구현예에서, HPI는 착신 시그널링에 대한 수신측 에이전트에 의한 레인의 스크리닝(screening)을 통해 종단 값들을 변경시키는 일 없이 대역내 리셋 시의 재초기화를 지원할 수 있다. 시그널링은 양호한 레인들을 식별하는 데 사용될 수 있다. 한 예로서, 링크의 발견 및 구성을 용이하게 하기 위해 송신기 디바이스에 의해 송신될 한 세트의 사전 정의된 신호들 중 임의의 하나에 대해 레인이 스크리닝될 수 있다. 하나의 예에서, 하나 이상의 초기화 또는 재초기화 작업들에 대응하는 수퍼시퀀스가 정의될 수 있다. 사전 정의된 시퀀스는 EIEOS 및 그 다음에 오는 부가의 시퀀스 데이터를 포함할 수 있다. 어떤 경우에, 레인의 양측에 있는 각각의 디바이스가 활성으로 될 때, 디바이스들은 특정의 초기화 상태 등에 대응하는 수퍼시퀀스를 송신하기 시작할 수 있다. 하나의 실시예에서, 다음과 같은 2가지 유형들의 핀 리셋들(pin resets)이 지원될 수 있다: 전원 켜기(power-on)(또는 "콜드") 리셋 및 웜 리셋. 소프트웨어에 의해 개시되거나 하나의 에이전트 상에서 (물리 또는 다른 계층에서) 발신되는 리셋은 다른 에이전트로 대역 내에서 전달될 수 있다. 그렇지만, 임베딩된 클럭의 사용으로 인해, 대역내 리셋은 특정의 전기 순서 집합 또는 EIOS와 같은 순서 집합을 사용하여 다른 에이전트로의 통신에 의해 처리될 수 있다.
순서 집합은 초기화 동안 송신될 수 있고, PHY 제어 시퀀스(또는 "블록킹 링크 상태")가 초기화 후에 송신될 수 있다. 블록킹 링크 상태는 플릿들을 송신하지 못하도록 링크 계층을 블록킹할 수 있다. 다른 예로서, 수신기에서 폐기될 수 있는 몇개의 널(NULL) 플릿들을 송신하기 위해 링크 계층 트래픽이 블록킹될 수 있다.
앞서 소개된 바와 같이, 하나의 실시예에서, 초기화는 처음에 저속 속도로 행해지고 이어서 고속 속도에서의 초기화가 뒤따를 수 있다. 저속 속도에서의 초기화는 레지스터들 및 타이머들에 대해 기본값들을 사용한다. 소프트웨어는 이어서 레지스터들, 타이머들 및 전기 파라미터들을 설정하기 위해 저속 속도 링크를 사용하고, 고속 속도 초기화를 위한 길을 닦기 위해 교정 세마포어들(calibration semaphores)을 클리어한다. 한 예로서, 초기화는, 어쩌면 그 중에서도 특히, 리셋, 검출, 폴링, 및 구성과 같은 상태들 또는 작업들로 이루어져 있을 수 있다.
하나의 예에서, 링크 계층 블록킹 제어 시퀀스(link layer blocking control sequence)(즉, 블록킹 링크 상태(BLS) 또는 L0c 상태)는, PHY 정보가 원격 에이전트로 전달되는 동안, 링크 계층 플릿들이 홀드되는 타이밍 조절된 상태를 포함할 수 있다. 여기서, 송신기 및 수신기는 블록킹 제어 시퀀스 타이머(block control sequence timer)를 시작할 수 있다. 그리고 타이머들의 만료 시에, 송신기 및 수신기는 블록킹 상태를 탈출할 수 있고, 리셋으로의 탈출, 링크를 거쳐 플릿들을 송신하는 것을 가능하게 하는 상태들을 비롯한 상이한 링크 상태(또는 다른 상태)로의 탈출과 같은 다른 조치들을 취할 수 있다.
하나의 실시예에서, 링크 훈련이 제공되고, 예컨대, 정의된 수퍼시퀀스와 관련하여, 스크램블링된 훈련 시퀀스들, 순서 집합들, 및 제어 시퀀스들 중 하나 이상을 송신하는 것을 포함할 수 있다. 훈련 시퀀스 심볼은 헤더, 예비된 부분들, 목표 지연 시간, 쌍 번호(pair number), 물리 레인 맵 코드 참조 레인들 또는 일군의 레인들, 및 초기화 상태 중 하나 이상을 포함할 수 있다. 하나의 실시예에서, 예들 중에서도 특히, 헤더가 ACK 또는 NAK와 함께 송신될 수 있다. 한 예로서, 훈련 시퀀스들이 수퍼시퀀스들의 일부로서 송신될 수 있고, 스크램블링될 수 있다.
하나의 실시예에서, 순서 집합들 및 제어 시퀀스들은 스크램블링 또는 스태거링되지 않고, 모든 레인들에서 똑같이, 동시에 그리고 완전히 전송된다. 순서 집합의 유효한 수신은 순서 집합의 적어도 일부분(또는 부분 순서 집합들에 대한 전체 순서 집합)을 검사하는 것을 포함할 수 있다. 순서 집합들은 EIOS(Electrical Idle Ordered Set, 전기 유휴 순서 집합) 또는 EIEOS와 같은 EOS(electrically ordered set)를 포함할 수 있다. 수퍼시퀀스는 SDS(start of a data sequence) 또는 FTS(Fast Training Sequence)를 포함할 수 있다. 이러한 집합들 및 제어 수퍼시퀀스들은 사전 정의될 수 있고, 임의의 패턴 또는 16진수 표현은 물론, 임의의 길이를 가질 수 있다. 예를 들어, 순서 집합들 및 수퍼시퀀스들은 8 바이트, 16 바이트, 또는 32 바이트 등의 길이일 수 있다. 한 예로서, FTS는, 그에 부가하여, 부분 폭 전송 링크 상태의 탈출 동안 고속 비트 잠금(fast bit lock)을 위해 이용될 수 있다. 유의할 점은, FTS 정의가 레인별일 수 있고 FTS의 회전된 버전을 이용할 수 있다는 것이다.
하나의 실시예에서, 수퍼시퀀스들은 훈련 시퀀스 스트림에의 EIEOS와 같은 EOS의 삽입을 포함할 수 있다. 시그널링이 시작할 때, 하나의 구현예에서, 레인들은 스태거링된 방식으로 전원이 켜진다. 그렇지만, 이 결과, 초기의 수퍼시퀀스들이 어떤 레인들 상에서는 수신기에서 절단(truncated)되어 보일 수 있다. 그렇지만, 수퍼시퀀스들이 짧은 구간들(예컨대, 약 1000 단위 구간들(또는 ~1KUI))에 걸쳐 반복될 수 있다. 훈련 수퍼시퀀스들은, 그에 부가하여, 디스큐, 구성 그리고 초기화 목표, 레인 맵 등을 전달하는 것 중 하나 이상을 위해 사용될 수 있다. EIEOS는, 예들 중에서도 특히, 레인을 비활성 상태로부터 활성 상태로 천이시키는 것, 양호한 레인들이 있는지 스크리닝하는 것, 심볼 및 TS 경계들을 식별하는 것 중 하나 이상을 위해 사용될 수 있다.
도 8을 참조하면, 예시적인 수퍼시퀀스들의 표현들이 도시되어 있다. 예를 들어, 한 예시적인 검출(Detect) 수퍼시퀀스(805)가 정의될 수 있다. 검출 수퍼시퀀스(805)는 단일의 EIEOS(또는 다른 EOS)와 그에 뒤따르는 특정의 훈련 시퀀스(TS)의 사전 정의된 수의 인스턴스들의 반복 시퀀스를 포함할 수 있다. 하나의 예에서, EIEOS가 전송되고, 그 직후에 TS의 7개의 반복된 인스턴스들이 전송될 수 있다. 7개의 TS들 중 마지막 것이 송신될 때, EIEOS가 다시 송신될 수 있고 이어서 TS의 7개의 부가의 인스턴스들이 송신될 수 있으며, 이하 마찬가지이다. 이 시퀀스는 특정의 사전 정의된 주파수에 따라 반복될 수 있다. 도 8의 예에서, EIEOS가 대략 1000개의 UI들(~1 KUI)마다 한번씩 레인들 상에 다시 나타나고 이어서 나머지 검출 수퍼시퀀스들(805)가 뒤따를 수 있다. 수신기는 반복하는 검출 수퍼시퀀스들(805)이 존재하는지 레인들을 모니터링할 수 있고, 수퍼시퀀스(805)를 유효화할 시에, 원격 에이전트가 존재하는 것으로, 레인들 상에 추가된(예컨대, 핫 플러깅된) 것으로, 깨어난 것으로, 또는 재초기화하고 있는 것으로, 기타로 결론내릴 수 있다.
다른 예에서, 폴링, 구성, 또는 루프백 조건 또는 상태를 나타내기 위해, 다른 수퍼시퀀스(810)가 정의될 수 있다. 예시적인 검출 수퍼시퀀스(805)에서와 같이, 폴링 상태, 구성 상태, 또는 루프백 상태 또는 조건을 식별하기 위해, 이러한 폴링/구성/루프(Poll/Config/Loop) 수퍼시퀀스(810)가 있는지 수신기에 의해 링크의 레인들이 모니터링될 수 있다. 하나의 예에서, 폴링/구성/루프 수퍼시퀀스(810)는 EIEOS로 시작하고, 이어서 TS의 사전 정의된 수의 반복된 인스턴스들이 뒤따른다. 예를 들어, 하나의 예에서, EIEOS에 이어서 TS의 31개의 인스턴스들이 뒤따를 수 있고, EIEOS는 대략 4000개의 UI(예컨대, ~4KUI)마다 반복할 수 있다.
게다가, 다른 예에서, PWTS(partial width transmitting state, 부분 폭 전송 상태) 탈출 수퍼시퀀스(815)가 정의될 수 있다. 하나의 예에서, PWTS 탈출 수퍼시퀀스는 수퍼시퀀스에서의 첫번째 전체 시퀀스의 전송보다 앞서 레인들을 프리컨디셔닝(pre-condition)하기 위해 반복할 초기 EIEOS를 포함할 수 있다. 예를 들어, 수퍼시퀀스(815)에서 반복될 시퀀스는 (대략 매 1KUI마다 한번씩 반복하기 위해) EIEOS로 시작할 수 있다. 게다가, 다른 TS들(training sequences) 대신에 FTS들(fast training sequences)이 이용될 수 있고, FTS는 더 빠른 비트 잠금, 바이트 잠금(byte lock), 또는 디스큐잉(deskewing)을 돕도록 구성되어 있다. 어떤 구현예들에서, 가능한 한 신속하게 그리고 비방해적으로(non-disruptively) 유휴 레인들을 다시 활성으로 만드는 것을 추가적으로 돕기 위해 FTS가 언스크램블링(unscramble)될 수 있다. 링크 송신 상태에의 진입에 선행하는 다른 수퍼시퀀스들에서와 같이, 수퍼시퀀스(815)가 중단(interrupt)되고 SDS(start of data sequence)의 송신을 통해 종료될 수 있다. 게다가, 예들 중에서도 특히, 비트들이 부분 FTS(FTSp)로부터 차감(또는 그에 추가)될 수 있게 하는 것 등에 의해, 새로운 레인들을 활성 레인들에 동기화시키는 것을 돕기 위해 FTSp가 송신될 수 있다.
검출 수퍼시퀀스(805) 및 폴링/구성/루프 수퍼시퀀스(810) 등과 같은 수퍼시퀀스들이 어쩌면 실질적으로 링크의 초기화 또는 재초기화 전체에 걸쳐 송신될 수 있다. 수신기는, 특정의 수퍼시퀀스를 수신하고 검출할 시에, 어떤 경우에, 동일한 수퍼시퀀스를 레인들을 통해 송신기로 에코잉(echoing)하는 것으로 응답할 수 있다. 송신기 및 수신기에 의한 특정의 수퍼시퀀스의 수신 및 유효화는 수퍼시퀀스를 통해 전달되는 상태 또는 조건을 확인 응답하기 위한 핸드쉐이크로서 역할할 수 있다. 예를 들어, 이러한 핸드쉐이크(예컨대, 검출 수퍼시퀀스(805)를 이용하는 것)는 링크의 재초기화를 식별하기 위해 사용될 수 있다. 다른 예에서, 이러한 핸드쉐이크는 전기 리셋(electrical reset) 또는 저전력 상태의 종료를 나타내기 위해 이용될 수 있고, 그 결과, 예들 중에서도 특히, 대응하는 레인들이 다시 투입된다. 전기 리셋의 종료는, 예를 들어, 각각이 검출 수퍼시퀀스(805)를 전송하는 송신기와 수신기 사이의 핸드쉐이크로부터 식별될 수 있다.
다른 예에서, 수퍼시퀀스들이 있는지 레인들이 모니터링될 수 있고, 레인들은 검출, 웨이크, 상태 탈출들 및 진입들이 있는지 레인들을 스크리닝하는 것과 관련하여 수퍼시퀀스들을 사용한다. 수퍼시퀀스의 사전 정의된 및 예측가능한 특성 및 형태가 또한 비트 잠금, 바이트 잠금, 디바운싱, 디스크램블링, 디스큐잉, 적응, 지연 시간 수정(latency fixing), 협상된 지연들, 및 다른 잠재적인 사용들과 같은 초기화 작업들을 수행하는 데 사용될 수 있다. 실제로, 시스템이 신속하게 이러한 조건들에 반응하여 그들을 처리할 수 있도록 하기 위해 이러한 이벤트들이 있는지 레인들이 실질적으로 연속적으로 모니터링될 수 있다.
디바운싱의 경우에, 각종의 조건들의 결과로서 과도 상태들(transients)이 레인 상에 유입될 수 있다. 예를 들어, 디바이스의 추가 또는 전원 켜기는 레인 상에 과도 상태들을 유입시킬 수 있다. 그에 부가하여, 좋지 않은 레인 품질 또는 전기 고장으로 인해 레인 상에 전압 이상(voltage irregularity)이 야기될 수 있다. 어떤 경우에, 레인 상에서의 "바운싱(bouncing)"은 잘못된 EIEOS(false EIEOS)와 같은 거짓 양성(false positive)을 생성할 수 있다. 그렇지만, 어떤 구현예들에서, 수퍼시퀀스들이 EIEOS로 시작할 수 있지만, 정의된 수퍼시퀀스들은 부가의 데이터 시퀀스들은 물론 EIEOS가 반복될 정의된 주파수를 추가로 포함할 수 있다. 그 결과, 잘못된 EIEOS가 레인 상에 나타나는 경우에도, 수신기에 있는 논리 분석기는, 잘못된 EIEOS에 뒤따르는 데이터를 유효화함으로써, EIEOS가 거짓 양성인지를 판정할 수 있다. 예를 들어, 예상된 TS 또는 다른 데이터가 EIEOS를 뒤따르지 않거나 EIEOS가 사전 정의된 수퍼시퀀스들 중 하나의 수퍼시퀀스의 사전 정의된 주파수들 중 특정의 주파수 내에서 반복하지 않는 경우, 수신기 논리 분석기는 수신된 EIEOS의 유효화에 실패할 수 있다. 디바이스가 라인에 추가될 때 기동시에 바운싱이 일어날 수 있기 때문에, 거짓 음성(false negative)이 또한 발생할 수 있다. 예를 들어, 레인들의 세트에 추가될 시에, 디바이스는 링크의 반대쪽에 그의 존재를 알려주기 위해 검출 수퍼시퀀스(805)를 송신하기 시작하고 링크의 초기화를 시작할 수 있다. 그렇지만, 레인들 상에 유입된 과도 상태들은 수퍼시퀀스의 초기 EIEOS, TS 인스턴스들, 및 다른 데이터를 손상시킬 수 있다. 그렇지만, 예들 중에서도 특히, 수신측 디바이스 상의 논리 분석기는 계속하여 레인들을 모니터링하고 반복하는 검출 수퍼시퀀스(805)에서 새로운 디바이스에 의해 송신되는 그 다음 EIEOS를 식별할 수 있다.
어떤 구현예들에서, HPI 링크는 임베딩된 클럭에 의해 용이하게 되는 다수의 속도들로 동작할 수 있다. 예를 들어, 저속 모드가 정의될 수 있다. 어떤 경우에, 저속 모드는 링크의 초기화를 용이하게 하는 것을 돕기 위해 사용될 수 있다. 링크의 교정은 소프트웨어 기반 제어기들이, 잠재적인 특성들 중에서도 특히, 링크가 어느 레인들을 사용하는지, 레인들의 구성, 링크의 동작 속도, 레인들 및 에이전트들의 동기화, 디스큐, 목표 지연 시간을 비롯한 링크의 다양한 교정된 특성들을 설정하기 위한 논리를 제공하는 것을 수반할 수 있다. 이러한 소프트웨어 기반 도구들은 물리 계층 설비들 및 논리의 다양한 측면들을 제어하기 위해 데이터를 물리 계층 레지스터들에 추가하기 위해 외부 제어점들을 사용할 수 있다.
링크의 동작 속도는 링크의 초기화에서 이용되는 소프트웨어 기반 제어기들의 유효 동작 속도보다 상당히 더 빠를 수 있다. 예들 중에서도 특히, 링크의 초기화 또는 재초기화 동안과 같이, 이러한 소프트웨어 기반 제어기들의 사용을 가능하게 하기 위해 저속 모드가 사용될 수 있다. 예를 들어, 링크가 턴온되거나, 초기화되거나 리셋되거나 기타일 때, 링크의 교정을 용이하게 하는 것을 돕기 위해 수신기와 송신기를 연결시키는 레인들에 대해 저속 모드가 적용될 수 있다.
하나의 실시예에서, 클럭이 데이터에 임베딩될 수 있고, 따라서 별도의 클럭 레인들이 없다. 클럭 복원을 용이하게 하기 위해, 레인들을 통해 송신되는 플릿들이 스크램블링될 수 있다. 수신기 클럭 복원 유닛은, 하나의 예로서, 샘플링 클럭들을 수신기에 전달할 수 있다(즉, 수신기는 데이터로부터 클럭을 복원하고, 그를 사용하여 착신 데이터를 샘플링한다). 어떤 구현예들에서, 수신기들은 착신 비트 스트림에 계속하여 적응한다. 클럭을 임베딩시킴으로써, 핀아웃(pinout)이 어쩌면 감소될 수 있다. 그렇지만, 클럭을 대역내 데이터에 임베딩시키는 것은 대역내 리셋에 도달되는 방식을 변경할 수 있다. 하나의 실시예에서, 초기화 이후에 BLS(blocking link state)가 이용될 수 있다. 또한, 고려사항들 중에서도 특히, (예컨대, 앞서 기술한 바와 같이) 리셋을 용이하게 하기 위해 초기화 동안 전기 순서 집합 수퍼시퀀스들이 이용될 수 있다. 임베딩된 클럭이 링크 상의 디바이스들 간에 공통일 수 있고, 링크의 교정 및 구성 동안 공통의 동작 클럭이 설정될 수 있다. 예를 들어, HPI 링크들은 드리프트 버퍼들과 함께 공통의 클럭을 참조할 수 있다. 이러한 구현예는, 잠재적인 장점들 중에서도 특히, 비공통의 참조 클럭들에서 사용되는 탄성 버퍼들(elastic buffers)보다 더 낮은 지연 시간을 실현할 수 있다. 게다가, 참조 클럭 분배 세그먼트들이 명시된 한계들 내에서 정합될 수 있다.
앞서 살펴본 바와 같이, HPI 링크는 기본 전원 켜기(default power-up), 초기화 등에 대한 "저속 모드"를 비롯한 다수의 속도들로 동작할 수 있다. 각각의 디바이스의 동작(또는 "고속") 속도 또는 모드는 BIOS에 의해 정적으로 설정될 수 있다. 링크 상의 공통의 클럭은 링크의 양측에 있는 각각의 디바이스의 각자의 동작 속도들에 기초하여 구성될 수 있다. 예를 들어, 링크 속도는, 예들 중에서도 특히, 2개의 디바이스 동작 속도들 중 느린 쪽에 기초할 수 있다. 임의의 동작 속도 변경은 웜 또는 콜드 리셋을 동반할 수 있다.
어떤 예들에서, 전원을 켤 시에, 링크는, 예를 들어, 100 MT/s의 전송 레이트를 갖는 저속 모드로 초기화한다. 소프트웨어는 이어서 링크의 동작 속도에 대한 2개의 측면들을 설정하고 초기화를 시작한다. 다른 경우에, 예를 들어, 저속 모드가 존재하지 않거나 이용가능하지 않을 시에, 측파대 메커니즘(sideband mechanism)이 링크 상의 공통의 클럭을 비롯하여 링크를 설정하는 데 이용될 수 있다.
하나의 실시예에서, 저속 모드 초기화 단계는 동작 속도와 동일하지만 어쩌면 더 적은 특징들을 갖는(예컨대, 전기 파라미터 설정 없음, 조정 없음 등) 인코딩, 스크램블링, TS들(training sequences), 상태들 등을 사용할 수 있다. 저속 모드 동작 단계는 또한 어쩌면 동일한 인코딩, 스크램블링 등을 사용할 수 있지만(그렇지만 다른 구현예들은 그렇지 않을 수 있음), 동작 속도와 비교하여 더 적은 상태들 및 특징들을 가질 수 있다(예컨대, 저전력 상태들이 없음).
게다가, 디바이스의 네이티브 PLL(phase lock loop) 클럭 주파수를 사용하여 저속 모드가 구현될 수 있다. 예를 들어, HPI는 PLL 클럭 주파수를 변경하는 일 없이 에뮬레이트된 저속 모드를 지원할 수 있다. 어떤 설계들이 저속 및 고속 속도를 위해 개별적인 PLL들을 사용할 수 있지만, HPI의 어떤 구현예들에서, PLL 클럭이 저속 모드 동안 동일한 빠른 동작 속도로 실행할 수 있게 하는 것에 의해 에뮬레이트된 저속 모드가 달성될 수 있다. 예를 들어, 송신기는 저속 하이 클럭 신호(slow high clock signal) 그리고 이어서 저속 로우 클럭 신호(slow low clock signal)를 에뮬레이트하기 위해 비트들을 여러번 반복하는 것에 의해 더 느린 클럭 신호를 에뮬레이트할 수 있다. 수신기는 이어서, 반복하는 비트들에 의해 에뮬레이트된 엣지들을 찾아내고 비트를 식별하기 위해, 수신된 신호를 오버샘플링할 수 있다. 이러한 구현예에서, 저속 속도 및 고속 속도에서 PLL을 공유하는 포트들이 공존할 수 있다.
2개의 디바이스들 사이에 공통의 저속 모드 속도가 초기화될 수 있다. 예를 들어, 링크 상의 2개의 디바이스들이 상이한 고속 동작 속도들을 가질 수 있다. 예를 들어, 링크 상에서의 발견 단계 또는 상태 동안 공통의 저속 모드 속도가 구성될 수 있다. 하나의 예에서, 에뮬레이션 배수(emulation multiple)가 고속 속도 대 저속 속도의 정수(또는 비정수) 비로서 설정될 수 있고, 상이한 고속 속도들이 동일한 저속 속도와 함께 동작하기 위해 하향 변환될 수 있다. 예를 들어, 적어도 하나의 공통 주파수를 지원하는 2개의 디바이스 에이전트들이 호스트 포트가 동작하고 있는 속도에 관계없이 핫 접속(hot attach)될 수 있다. 소프트웨어 발견은 이어서 가장 최적의 링크 동작 속도들을 식별하고 설정하기 위해 저속 모드 링크를 사용할 수 있다. 배수가 고속 속도 대 저속 속도의 정수 비인 경우, 상이한 고속 속도들이 (예컨대, 핫 접속의) 발견 단계 동안 사용될 수 있는 동일한 저속 속도와 함께 동작할 수 있다.
HPI의 어떤 구현예들에서, 링크 상의 레인들의 조정이 지원될 수 있다. 물리 계층은 수신기 조정 및 송신기(transmitter 또는 sender) 조정 둘 다를 지원할 수 있다. 수신기 조정에 의해, 레인 상의 송신기는 레인의 전기적 특성들에서의 단점들 및 신호의 품질을 식별하기 위해 수신기 논리가 처리할 수 있는 샘플 데이터를 수신기로 송신할 수 있다. 수신기는 이어서 수신된 샘플 데이터의 분석에 기초하여 레인을 최적화하기 위해 레인의 교정을 조절할 수 있다. 송신기 조정의 경우에, 수신기는 또다시 샘플 데이터를 수신하고 레인의 품질을 나타내는 메트릭들을 개발할 수 있지만, 이 경우에, 송신기가 피드백에 기초하여 레인을 조절할 수 있게 하기 위해 (예컨대, 소프트웨어, 하드웨어, 임베디드, 서브대역 또는 다른 채널과 같은 백채널(backchannel)을 사용하여) 메트릭들을 송신기로 전달할 수 있다. 원격 송신기로부터 송신된 폴링(Polling) 수퍼시퀀스를 사용하여 폴링(Polling) 상태의 시작에서 수신기 조정이 개시될 수 있다. 이와 유사하게, 송신기 파라미터들 각각에 대해 다음과 같은 것들을 반복함으로써 송신기 조정이 행해질 수 있다. 양쪽 에이전트들은 마스터로서 루프백 패턴(Loopback Pattern) 상태에 진입하고 명시된 패턴을 전송할 수 있다. 양쪽 수신기들은 원격 에이전트에서의 그 특정의 송신기 설정에 대한 메트릭(예컨대, BER)을 측정할 수 있다. 양쪽 에이전트들은 루프백 마커(Loopback Marker) 상태 그리고 이어서 리셋(Reset)으로 갈 수 있고, 메트릭들을 교환하기 위해 백채널들(저속 모드 TLS 또는 측파대)을 사용한다. 이 메트릭들에 기초하여, 그 다음 송신기 설정이 식별될 수 있다. 궁극적으로, 최적의 송신기 설정이 식별되고 차후의 사용을 위해 저장될 수 있다.
링크 상의 양쪽 디바이스들이 동일한 참조 클럭(예컨대, ref clk)으로부터 동작할 수 있기 때문에, 탄성 버퍼들이 생략될 수 있다(임의의 탄성 버퍼들이 바이패스될 수 있거나 가능한 가장 낮은 지연 시간을 갖는 드리프트 버퍼들로서 사용될 수 있다). 그렇지만, 각자의 수신기 비트 스트림을 원격 클럭 도메인으로부터 로컬 클럭 도메인으로 전송하기 위해 각각의 레인 상에서 위상 조절 또는 드리프트 버퍼들이 이용될 수 있다. 드리프트 버퍼들의 지연 시간이 전기적 규격(예컨대, 전압, 온도, 참조 클럭 라우팅 불일치에 의해 유입되는 잔차 SSC 등)에서 모든 소스들로부터의 드리프트의 합을 처리하는 데 충분할 수 있지만, 전송 지연을 감소시키기 위해 가능한 한 작을 수 있다. 드리프트 버퍼가 너무 얕은 경우, 드리프트 오류들이 발생할 수 있고 일련의 CRC 오류들로서 나타날 수 있다. 그 결과, 어떤 구현예들에서, 예들 중에서도 특히, 실제의 드리프트 오류가 발생하기 전에 물리 계층 리셋을 개시할 수 있는 드리프트 경보가 제공될 수 있다.
HPI의 어떤 구현예들은 양측이 동일한 공칭 참조 클럭 주파수로 그렇지만 ppm 차이로 동작하는 것을 지원할 수 있다. 이 경우에, 주파수 조절(또는 탄성) 버퍼들이 필요할 수 있고, 예들 중에서도 특히, 확장 BLS 윈도우 동안 또는 주기적으로 나타날 특수 시퀀스들 동안 재조절될 수 있다.
고려사항들 중에서도 특히, 지연 시간이 링크 계층에서 지연 시간 수정 오류들 또는 타임아웃들을 야기하지 않는다면, HPI PHY 논리 계층의 동작이 기본 전송 매체에 독립적일 수 있다.
물리 계층의 관리를 돕기 위해 HPI에 외부 인터페이스들이 제공될 수 있다. 예를 들어, (핀들, 퓨즈들, 다른 계층들로부터의) 외부 신호들, 타이머들, 제어 및 상태 레지스터들이 제공될 수 있다. 입력 신호들이 PHY 상태에 대해 언제라도 변할 수 있지만, 각각의 상태에서의 특정의 시점들에서 물리 계층에 의해 관찰될 것이다. 예를 들어, 변하는 정렬 신호(alignment signal)(이하에서 소개됨)가 수신될 수 있지만, 링크가, 예들 중에서도 특히, 전송 링크 상태에 진입한 후에는 어떤 영향도 없다. 이와 유사하게, 명령 레지스터 값들이 특정의 시점들에서만 물리 계층 엔티티들에 의해 관찰될 수 있다. 예를 들어, 물리 계층 논리는 값의 스냅샷을 취하고 차후의 동작들에서 그를 사용할 수 있다. 그 결과, 어떤 구현예들에서, 명령 레지스터들에 대한 갱신들이 이상 거동을 피하기 위해 (예컨대, 전송 링크 상태에서 또는 리셋 교정에서 홀드 중일 때, 저속 모드 전송 링크 상태에서) 특정의 기간들의 제한된 서브셋과 연관되어 있을 수 있다.
상태 값들이 하드웨어 변경들을 추적하기 때문에, 판독된 값들은 그들이 언제 판독되는지에 의존할 수 있다. 그렇지만, 링크 맵, 지연 시간, 속도 등과 같은 어떤 상태 값들은 초기화 후에 변하지 않을 수 있다. 예를 들어, 재초기화(또는 저전력 링크 상태(low power link state, LPLS) 또는 L1 상태, 탈출)가 이들을 변경시킬 수 있는 유일한 것이다(예컨대, TLS에서의 하드 레인 고장(hard lane failure)은, 예들 중에서도 특히, 재초기화가 트리거될 때까지 링크의 재구성을 야기하지 않을 수 있다).
인터페이스 신호들은 물리 계층 거동에 무관하지만 그에 영향을 미치는 신호들을 포함할 수 있다. 이러한 인터페이스 신호들은, 예들로서, 인코딩 및 타이밍 신호들을 포함할 수 있다. 인터페이스 신호들은 설계에 특유할 수 있다. 이 신호들은 입력 또는 출력일 수 있다. 예들 중에서도 특히, 세마포어들 및 프리픽스 EO(prefixed EO)와 같은 어떤 인터페이스 신호들은 어써션 엣지(assertion edge)마다 한번씩 활성일 수 있다 - 즉, 예들 중에서도 특히, 그들은 디어써트되고 이어서 또다시 효력을 발휘하도록 재어써트될 수 있다 -. 예를 들어, 표 1은 예시적인 기능들의 한 예시적인 목록을 포함하고 있다.
CSR 타이머 기본값들이 쌍으로 제공될 수 있다 - 하나는 저속 모드에 대한 것이고, 하나는 동작 속도에 대한 것임 -. 어떤 경우에, 값 0은 타이머를 디스에이블시킨다(즉, 타임아웃이 결코 일어나지 않음). 타이머들은 이하의 표 2에 나타낸 것들을 포함할 수 있다. 주 타이머들은 한 상태에서의 예상된 동작들을 타이밍 조절하는 데 사용될 수 있다. 보조 타이머들은 진행하지 않고 있는 초기화들을 강제 종료시키는 데 또는 ATE(automated test equipment, 자동화 검사 장비) 모드에서 정확한 때에 상태 천이들을 진행시키는 데 사용된다. 어떤 경우에, 한 상태에서 보조 타이머들이 주 타이머들보다 훨씬 더 클 수 있다. 지수적 타이머 세트들은 exp가 말미에 부가(suffixed)되어 있을 수 있고, 타이머 값은 2의 필드값 제곱(2필드값)(2 raised to the field value)이다. 선형 타이머들의 경우, 타이머 값은 필드 값이다. 어느 타이머든지 상이한 입도들을 사용할 수 있다. 그에 부가하여, 전력 관리 섹션에 있는 어떤 타이머들은 타이밍 프로파일이라고 하는 세트에 있을 수 있다. 이들은 동일한 이름의 타이밍도와 연관되어 있을 수 있다.
명령 및 제어 레지스터들이 제공될 수 있다. 제어 레지스터들은 사후 동작(late action)일 수 있고, 어떤 경우에, 소프트웨어에 의해 판독 또는 기입될 수 있다. 사후 동작 값들은 리셋(Reset)에서 연속적으로 효력을 발휘할 수 있다(예컨대, 소프트웨어 직면(software-facing) 스테이지로부터 하드웨어 직면(hardware-facing) 스테이지로 통과함). 제어 세마포어들(프리픽스 CP)은 RW1S이고 하드웨어에 의해 클리어될 수 있다. 제어 레지스터들은 본 명세서에 기술되어 있는 항목들 중 임의의 것을 수행하는 데 이용될 수 있다. 그들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 수정가능하고 액세스가능할 수 있다.
상태 레지스터들은 하드웨어 변경들(하드웨어에 의해 기입되고 사용됨)을 추적하기 위해 제공될 수 있고, 읽기 전용일 수 있다(그렇지만, 디버그 소프트웨어가 또한 그들에 기입할 수 있을 것이다). 이러한 레지스터들은 연동성(interoperability)에 영향을 미치지 않을 수 있고, 전형적으로 많은 사적 상태 레지스터들(private status registers)에 의해 보완될 수 있다. 상태 세마포어들(프리픽스 SP)은 상태를 세트시키는 동작들을 재실행(redo)하기 위해 소프트웨어에 의해 클리어될 수 있기 때문에 위임(mandate)될 수 있다. 기본 수단 초기(리셋 시) 값들이 초기화에 관계된 이 상태 비트들의 서브셋으로서 제공될 수 있다. 초기화 강제 종료 시에, 이 레지스터가 저장 구조로 복사될 수 있다.
도구 상자 레지스터들이 제공될 수 있다. 예를 들어, 물리 계층에서의 테스트 용이성(testability) 도구 상자 레지스터들은 패턴 발생, 패턴 검사, 및 루프백 제어 메커니즘들을 제공할 수 있다. 상위 레벨 응용 프로그램들은 마진들(margins)을 결정하기 위해 전기 파라미터들과 함께 이 레지스터들을 사용할 수 있다. 예를 들어, 테스트에서 구축된 상호연결부는 마진들을 결정하기 위해 이 도구 상자를 이용할 수 있다. 송신기 조정의 경우, 이 레지스터들은, 예들 중에서도 특히, 이전의 섹션들에 기술되어 있는 특정의 레지스터들과 함께 사용될 수 있다.
어떤 구현예들에서, HPI는 물리 계층을 이용하는 RAS(Reliability, Availability, and Serviceability, 신뢰성, 이용가능성 및 서비스가능성) 능력을 지원한다. 하나의 실시예에서, HPI는 소프트웨어를 포함할 수 있는 하나 이상의 계층들에서 핫 플러그 및 제거(hot plug and remove)를 지원한다. 핫 제거는 링크를 정지시키는 것을 포함할 수 있고, 제거될 에이전트에 대해 초기화 시작 상태/신호가 클리어될 수 있다. 원격 에이전트(즉, 제거되고 있지 않은 것(예컨대, 호스트 에이전트))는 저속 속도로 설정될 수 있고, 그의 초기화 신호가 또한 클리어될 수 있다. 예들 및 특징들 중에서도 특히, 대역내 리셋(예컨대, BLS를 통함)은 양쪽 에이전트들을 CRS(Calibrate Reset State)와 같은 리셋 상태에서 대기시킬 수 있고; 제거될 에이전트가 제거될 수 있다(또는 목표 핀 리셋, 전원 꺼짐으로 유지될 수 있음). 실제로, 상기 이벤트들 중 일부가 생략될 수 있고, 부가의 이벤트들이 추가될 수 있다.
핫 추가(hot add)는 초기화 속도의 기본값이 저속일 수 있고 초기화 신호가 추가될 에이전트에 대해 세트되어 있을 수 있는 것을 포함할 수 있다. 소프트웨어는 속도를 저속으로 설정할 수 있고 원격 에이전트에 대해 초기화 신호를 클리어할 수 있다. 링크는 저속 모드로 시작할 수 있고, 소프트웨어는 동작 속도를 결정할 수 있다. 어떤 경우에, 이 시점에서 원격 에이전트의 PLL 재잠금(PLL relock)이 수행되지 않는다. 양쪽 에이전트들에서 동작 속도가 설정될 수 있고, (이전에 행해지지 않은 경우) 조정을 위해 인에이블이 세트될 수 있다. 양쪽 에이전트들에서 초기화 시작 표시자가 클리어될 수 있고, 대역내 BLS 리셋은 양쪽 에이전트들을 CRS로 대기시킬 수 있다. 소프트웨어는 (추가될) 에이전트의 웜 리셋(예컨대, 목표 또는 자체 리셋)을 어써트할 수 있고, 이는 PLL을 재잠금할 수 있다. 소프트웨어는 또한 임의의 공지된 논리에 의해 초기화 시작 신호를 세트시킬 수 있고, 또한 원격 에이전트에 대해 세트시킬 수 있다(따라서 그를 RDS(Receiver Detect State)로 전진시킨다). 소프트웨어는 추가하는 에이전트의 웜 리셋를 디어써트(de-assert)할 수 있다(따라서 그를 RDS로 전진시킨다). 예들 중에서도 특히, 링크는 이어서 동작 속도에서 TLS(Transmitting Link State)로(또는 조정 신호(adaption signal)가 세트되어 있는 경우 루프백으로) 초기화할 수 있다. 실제로, 상기 이벤트들 중 일부가 생략될 수 있고, 부가의 이벤트들이 추가될 수 있다.
데이터 레인 고장 복구가 지원될 수 있다. 하나의 실시예에서, HPI에서의 링크는 그 자체를 전체 폭 미만(예컨대, 전체 폭의 1/2 미만)으로 구성함으로써 단일의 레인 상에서의 하드 오류(hard error)에 대해 탄력성이 있을 수 있고, 이는 그로써 결함있는 레인을 배제시킬 수 있다. 한 예로서, 이 구성은 링크 상태 머신에 의해 행해질 수 있고, 미사용 레인들은 구성 상태에서 턴오프될 수 있다. 그 결과, 예들 중에서도 특히, 플릿이 더 좁은 폭을 통해 송신될 수 있다.
HPI의 어떤 구현예들에서, 어떤 링크들에서 레인 반전(lane reversal)이 지원될 수 있다. 레인 반전은, 예를 들어, 송신기의 레인들(0/1/2...)이 수신기의 레인들(n/n-1/n-2...)에 연결되어 있는 것(예컨대, n은 19 또는 7 등일 수 있음)을 말한다. TS 헤더의 필드에서 식별되는 바와 같이, 레인 반전이 수신기에서 검출될 수 있다. 수신기는 논리 레인(logical lane)(0...n)에 대해 물리 레인(physical lane)(n...0)을 사용하여 폴링 상태에서 시작함으로써 레인 반전을 처리할 수 있다. 따라서, 레인에 대한 언급들은 논리 레인 번호를 말하는 것일 수 있다. 따라서, 보드 설계자들은 물리적 또는 전기적 설계를 더 효율적으로 정할 수 있고, 본 명세서에 기술되어 있는 바와 같이, HPI가 가상 레인 할당에 대해 동작할 수 있다. 더욱이, 하나의 실시예에서, 극성이 반전될 수 있다(즉, 차동 송신기 +/-가 수신기 -/+에 연결되어 있을 때). 극성이 또한 수신기에서 하나 이상의 TS 헤더 필드들로부터 검출되고, 하나의 실시예에서, 폴링 상태에서 처리될 수 있다.
도 10을 참조하면, 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예가 도시되어 있다. 프로세서(1000)는 마이크로프로세서, 임베디드 프로세서, 디지털 신호 처리기(DSP), 네트워크 프로세서, 핸드헬드 프로세서, 응용 프로그램 프로세서, 코프로세서, 시스템 온 칩(SOC), 또는 코드를 실행하는 다른 디바이스와 같은 임의의 프로세서 또는 처리 디바이스를 포함한다. 하나의 실시예에서, 프로세서(1000)는 비대칭 코어들 또는 대칭 코어들(예시된 실시예)을 포함할 수 있는 적어도 2개의 코어들 - 코어(1001 및 1002) - 을 포함한다. 그렇지만, 프로세서(1000)는 대칭 또는 비대칭일 수 있는 임의의 수의 처리 요소들을 포함할 수 있다.
하나의 실시예에서, 처리 요소는 소프트웨어 스레드를 지원하는 하드웨어 또는 논리를 말한다. 하드웨어 처리 요소들의 예들로는, 실행 상태 또는 아키텍처 상태(architectural state)와 같은 프로세서의 상태를 보유할 수 있는 스레드 유닛, 스레드 슬롯, 스레드, 프로세스 유닛, 컨텍스트, 컨텍스트 유닛, 논리 프로세서, 하드웨어 스레드, 코어 및/또는 임의의 다른 요소가 있다. 환언하면, 처리 요소는, 하나의 실시예에서, 소프트웨어 스레드, 운영 체제, 응용 프로그램, 또는 다른 코드와 같은 코드와 독립적으로 연관되어 있을 수 있는 임의의 하드웨어를 말한다. 물리 프로세서(또는 프로세서 소켓)는 전형적으로, 어쩌면 코어들 또는 하드웨어 스레드들과 같은 임의의 수의 다른 처리 요소들을 포함하는 집적 회로를 말한다.
코어는 종종 독립적인 아키텍처 상태를 유지할 수 있는 집적 회로 상에 위치해 있는 논리를 말하고, 여기서 각각의 독립적으로 유지되는 아키텍처 상태는 적어도 어떤 전용 실행 자원들(execution resources)과 연관되어 있다. 코어들과 달리, 하드웨어 스레드는 전형적으로 독립적인 아키텍처 상태를 유지할 수 있는 집적 회로 상에 위치해 있는 임의의 논리를 말하고, 여기서 독립적으로 유지되는 아키텍처 상태들은 실행 리소스들에의 액세스를 공유한다. 알 수 있는 바와 같이, 어떤 리소스들은 공유되고 다른 리소스들은 아키텍처 상태에 전용되어 있을 때, 하드웨어 스레드라는 용어와 코어라는 용어 사이의 경계가 겹친다. 하지만 종종, 운영 체제는 코어 및 하드웨어 스레드를 개별적인 논리 프로세서들로 보며, 이 경우 운영 체제는 각각의 논리 프로세서 상에서의 동작들을 개별적으로 스케줄링할 수 있다.
물리 프로세서(1000)는, 도 10에 예시된 바와 같이, 2개의 코어들 - 코어(1001 및 1002) - 를 포함한다. 여기서, 코어(1001 및 1002)는 대칭 코어들(즉, 동일한 구성들, 기능 유닛들, 및/또는 논리들을 갖는 코어들)인 것으로 간주된다. 다른 실시예에서, 코어(1001)는 비순차 프로세서 코어를 포함하는 반면, 코어(1002)는 순차 프로세서 코어를 포함한다. 그렇지만, 코어들(1001 및 1002)은 네이티브 코어(native core), 소프트웨어 관리 코어, 네이티브 ISA(Instruction Set Architecture, 명령어 세트 아키텍처)를 실행하도록 구성되어 있는 코어, 변환된 ISA(Instruction Set Architecture)를 실행하도록 구성되어 있는 코어, 공동 설계된 코어(co-designed core), 또는 다른 공지된 코어와 같은 임의의 유형의 코어로부터 개별적으로 선택될 수 있다. 이기종 코어 환경(즉, 비대칭 코어들)에서, 바이너리 변환(binary translation)과 같은 어떤 형태의 변환이 하나의 코어 또는 양쪽 코어들에서 코드를 스케줄링하거나 실행하는 데 이용될 수 있다. 그렇지만, 더 논의하기 위해, 코어(1001)에 예시되어 있는 기능 유닛들이 이하에서 더 상세히 기술되는데, 그 이유는 코어(1002) 내의 유닛들이 도시된 실시예에서 유사한 방식으로 동작하기 때문이다.
도시되어 있는 바와 같이, 코어(1001)는 2개의 하드웨어 스레드들(1001a 및 1001b)[하드웨어 스레드 슬롯들(1001a 및 1001b)라고도 할 수 있음]을 포함한다. 따라서, 운영 체제와 같은 소프트웨어 엔티티들은, 하나의 실시예에서, 어쩌면 프로세서(1000)를 4개의 개별적인 프로세서들(즉, 4개의 소프트웨어 스레드들을 동시에 실행할 수 있는 4개의 논리 프로세서들 또는 처리 요소들)로 본다. 앞서 언급한 바와 같이, 제1 스레드는 아키텍처 상태 레지스터들(1001a)과 연관되어 있고, 제2 스레드는 아키텍처 상태 레지스터들(1001b)와 연관되어 있으며, 제3 스레드는 아키텍처 상태 레지스터들(1002a)와 연관되어 있을 수 있고, 제4 스레드는 아키텍처 상태 레지스터들(1002b)와 연관되어 있을 수 있다. 여기서, 아키텍처 상태 레지스터들(1001a, 1001b, 1002a, 및 1002b) 각각은, 앞서 기술한 바와 같이, 처리 요소들, 스레드 슬롯들, 또는 스레드 유닛들이라고 할 수 있다. 예시된 바와 같이, 아키텍처 상태 레지스터들(1001a)은 아키텍처 상태 레지스터들(1001b)에 복제되어 있고, 따라서, 논리 프로세서(1001a) 및 논리 프로세서(1001b)에 대해 개별적인 아키텍처 상태들/컨텍스트들이 저장될 수 있다. 코어(1001)에서, 스레드들(1001a 및 1001b)에 대해 명령어 포인터들 그리고 할당기 및 이름 변경기 블록(allocator and renamer block)(1030) 내의 이름 변경 논리와 같은 다른 더 작은 자원들이 또한 복제될 수 있다. 재정렬/폐기 유닛(reorder/retirement unit)(1035) 내의 재정렬 버퍼들(re-order buffers), ITLB(1020), 로드/저장 버퍼들, 및 큐들과 같은 어떤 자원들은 파티셔닝(partitioning)을 통해 공유될 수 있다. 범용 내부 레지스터들, 페이지-테이블 베이스 레지스터(들), 하위 레벨 데이터 캐시 및 데이터-TLB(1015), 실행 유닛(들)(1040), 및 비순차 유닛(1035)의 일부분들과 같은 다른 자원들은 어쩌면 완전히 공유된다.
프로세서(1000)는 종종 완전히 공유되거나, 파티셔닝을 통해 공유되거나, 처리 요소들에 의해/처리 요소들에 전용되어 있을 수 있는 다른 자원들을 포함한다. 도 10에서, 프로세서의 예시적인 논리 유닛들/자원들을 갖는 순전히 예시적인 프로세서의 일 실시예가 예시되어 있다. 유의할 점은, 프로세서가 이 기능 유닛들 중 임의의 것을 포함하거나 포함하지 않을 수 있음은 물론, 도시되지 않은 임의의 다른 공지된 기능 유닛들, 논리, 또는 펌웨어를 포함할 수 있다는 것이다. 예시된 바와 같이, 코어(1001)는 간략화된 대표적인 비순차(out-of-order, OOO) 프로세서 코어를 포함한다. 그렇지만, 다른 실시예들에서 순차 프로세서가 이용될 수 있다. OOO 코어는 실행될/취해질 분기들을 예측하는 분기 목표 버퍼(branch target buffer)(1020) 및 명령어에 대한 주소 변환 엔트리들(address translation entries)을 저장하는 I-TLB(instruction-translation buffer, 명령어 변환 버퍼)(1020)를 포함한다.
코어(1001)는 페치된 요소들을 디코딩하는 페치 유닛(1020)에 결합되어 있는 디코딩 모듈(1025)을 추가로 포함하고 있다. 페치 논리는, 하나의 실시예에서, 스레드 슬롯들(1001a, 1001b)과, 각각, 연관되어 있는 개개의 시퀀서들을 포함하고 있다. 보통, 코어(1001)는 프로세서(1000) 상에서 실행가능한 명령어들을 정의/명시하는 제1 ISA와 연관되어 있다. 종종 제1 ISA의 일부인 기계 코드 명령어들은 수행될 명령어 또는 연산을 참조/명시하는 명령어의 일부분[연산코드(opcode)라고 함]을 포함하고 있다. 디코딩 논리(1025)는 이 명령어들을 그의 연산코드들로부터 인식하고, 제1 ISA에 의해 정의된 대로 처리하기 위해, 디코딩된 명령어들을 파이프라인으로 전달하는 회로를 포함하고 있다. 예를 들어, 이하에서 더 상세히 논의하는 바와 같이, 디코더들(1025)은, 하나의 실시예에서, 트랜잭션 명령어와 같은 특정의 명령어들을 인식하도록 설계 또는 구성되어 있는 논리를 포함한다. 디코더들(1025)에 의한 인식의 결과로서, 아키텍처 또는 코어(1001)는 적절한 명령어와 연관되어 있는 작업들을 수행하기 위해 특정의 사전 정의된 조치들을 취한다. 유의할 중요한 점은, 본 명세서에 기술되어 있는 작업들, 블록들, 동작들 및 방법들 중 임의의 것이 단일의 또는 다수의 명령어들 - 이들 중 일부는 새로운 또는 이전의 명령어들일 수 있음 - 에 응답하여 수행될 수 있다는 것이다. 유의할 점은, 디코더들(1026)이, 하나의 실시예에서, 동일한 ISA(또는 그의 서브셋)를 인식한다는 것이다. 다른 대안으로서, 이기종 코어 환경에서, 디코더들(1026)은 제2 ISA(제1 ISA의 서브셋 또는 별개의 ISA)를 인식한다.
하나의 예에서, 할당기 및 이름 변경기 블록(1030)은 명령어 처리 결과들을 저장하는 레지스터 파일들과 같은 자원들을 예비하는 할당기를 포함한다. 그렇지만, 스레드들(1001a 및 1001b)는 어쩌면 비순차 실행을 할 수 있고, 이 경우, 할당기 및 이름 변경기 블록(1030)은 또한 명령어 결과들을 추적하는 재정렬 버퍼들과 같은 다른 자원들을 예비한다. 유닛(1030)은 또한 프로그램/명령어 참조 레지스터들(reference registers)을 프로세서(1000) 내부의 다른 레지스터들로 이름을 변경하는 레지스터 이름 변경기(register renamer)를 포함할 수 있다. 재정렬/폐기 유닛(1035)은, 비순차 실행 및 비순차로 실행된 명령어들의 나중의 순차 폐기를 지원하기 위해, 앞서 언급한 재정렬 버퍼들, 로드 버퍼들 및 저장 버퍼들과 같은 구성요소들을 포함한다.
스케줄러 및 실행 유닛(들) 블록(1040)은, 하나의 실시예에서, 실행 유닛들 상에 명령어들/연산을 스케줄링하는 스케줄러 유닛을 포함하고 있다. 예를 들어, 부동 소수점 명령어는 이용가능한 부동 소수점 실행 유닛을 가지는 실행 유닛의 포트 상에 스케줄링된다. 정보 명령어 처리 결과들을 저장하기 위해 실행 유닛들과 연관되어 있는 레지스터 파일들이 또한 포함되어 있다. 예시적인 실행 유닛들은 부동 소수점 실행 유닛, 정수 실행 유닛, 점프 실행 유닛, 로드 실행 유닛, 저장 실행 유닛, 및 다른 공지된 실행 유닛들을 포함한다.
하위 레벨 데이터 캐시 및 D-TLB(data translation buffer)(1050)가 실행 유닛(들)(1040)에 결합되어 있다. 데이터 캐시는 아마도 메모리 일관성 상태들(memory coherency states)에 유지되는 데이터 피연산자들(data operands)과 같은 최근에 사용된/연산된 요소들을 저장하기 위한 것이다. D-TLB는 최근의 가상/선형 대 물리 주소 변환들을 저장하기 위한 것이다. 특정의 예로서, 프로세서는 물리 메모리를 복수의 가상 페이지들로 쪼개는 페이지 테이블 구조(page table structure)를 포함할 수 있다.
여기서, 코어들(1001 및 1002)은 온칩 인터페이스(1010)와 연관되어 있는 제2 레벨 캐시와 같은 상위 레벨 또는 퍼더-아웃(further-out) 캐시에의 액세스를 공유한다. 유의할 점은, 상위 레벨 또는 퍼더-아웃이 캐시 레벨이 증가하는 것 또는 실행 유닛(들)으로부터 더 멀어지는 것을 말한다는 것이다. 하나의 실시예에서, 상위 레벨 캐시는 제2 또는 제3 레벨 데이터 캐시와 같은 마지막 레벨 데이터 캐시 - 프로세서(1000) 상의 메모리 계층구조에서 마지막 캐시 - 이다. 그렇지만, 상위 레벨 캐시가 그렇게 제한되지 않는데, 그 이유는 상위 레벨 캐시가 명령어 캐시(instruction cache)와 연관되어 있거나 그를 포함할 수 있기 때문이다. 추적 캐시(trace cache) - 일종의 명령어 캐시 - 는 그 대신에 최근에 디코딩된 자취들(decoded traces)을 저장하기 위해 디코더(1025) 이후에 결합되어 있을 수 있다. 여기서, 명령어는 어쩌면 매크로 명령어(즉, 디코더들에 의해 인식되는 일반 명령어) - 다수의 마이크로 명령어들(마이크로 연산들)로 디코딩될 수 있음 - 를 말한다.
도시된 구성에서, 프로세서(1000)는 또한 온칩 인터페이스 모듈(1010)을 포함한다. 과거에, 이하에서 더 상세히 기술되는 메모리 제어기는 프로세서(1000)의 외부에 있는 컴퓨팅 시스템에 포함되어 있었다. 이 시나리오에서, 온칩 인터페이스(1010)는 시스템 메모리(1075), 칩셋(메모리(1075)에 연결되는 메모리 제어기 허브 및 주변 장치들을 연결시키는 I/O 제어기를 종종 포함함), 메모리 제어기 허브, 노스브리지, 또는 다른 집적 회로와 같은 프로세서(1000)의 외부에 있는 디바이스들과 통신하기 위한 것이다. 그리고 이 시나리오에서, 버스(1005)는 멀티-드롭 버스, 점대점 상호연결부, 직렬 상호연결부, 병렬 버스, 일관성(coherent)(예컨대, 캐시 일관성(cache coherent)) 버스, 계층화된 프로토콜 아키텍처, 차동 버스, 및 GTL 버스와 같은 임의의 공지된 상호연결부를 포함할 수 있다.
메모리(1075)는 프로세서(1000)에 전용되어 있거나 시스템 내의 다른 디바이스들과 공유될 수 있다. 메모리(1075)의 유형들의 흔한 예들로는 DRAM, SRAM, 비휘발성 메모리(NV 메모리), 및 다른 공지된 저장 디바이스들이 있다. 유의할 점은, 디바이스(1080)가 그래픽 가속기, 메모리 제어기 허브에 결합되어 있는 프로세서 또는 카드, I/O 제어기 허브에 결합되어 있는 데이터 저장 장치, 무선 송수신기, 플래시 디바이스, 오디오 제어기, 네트워크 제어기, 또는 다른 공지된 디바이스를 포함할 수 있다는 것이다.
그렇지만, 최근에 더 많은 논리 및 디바이스들이 SOC와 같은 단일의 다이 상에 통합됨에 따라, 이 디바이스들 각각이 프로세서(1000) 상에 포함될 수 있다. 예를 들어, 하나의 실시예에서, 메모리 제어기 허브는 프로세서(1000)와 동일한 패키지 및/또는 다이 상에 있다. 여기서, 코어의 일부분(온코어(on-core) 일부분)(1010)은 메모리(1075) 또는 그래픽 디바이스(1080)와 같은 다른 디바이스들과 인터페이스하기 위한 하나 이상의 제어기(들)를 포함한다. 이러한 디바이스들과 인터페이스하기 위한 상호연결부 및 제어기들을 포함하는 구성은 종종 온코어(또는 언코어(un-core) 구성)라고 한다. 한 예로서, 온칩 인터페이스(1010)는 온칩 통신을 위한 링 상호연결부(ring interconnect), 및 오프칩(off-chip) 통신을 위한 고속 직렬 점대점 링크(1005)를 포함한다. 그렇지만, SOC 환경에서, 네트워크 인터페이스, 코프로세서들, 메모리(1075), 그래픽 프로세서(1080), 및 임의의 다른 공지된 컴퓨터 디바이스들/인터페이스와 같은 훨씬 더 많은 디바이스들이 단일의 다이 또는 집적 회로 상에 통합될 수 있다.
하나의 실시예에서, 프로세서(1000)는, 본 명세서에 기술되어 있는 장치들 및 방법들을 지원하기 위해 또는 그들과 인터페이스하기 위해, 응용 프로그램 코드(1076)를 컴파일하고, 변환하며 그리고/또는 최적화하기 위해 컴파일러, 최적화, 및/또는 변환기 코드(1077)를 실행할 수 있다. 컴파일러는, 종종, 소스 텍스트/코드를 목표 텍스트/코드로 변환하는 프로그램 또는 한 세트의 프로그램들을 포함한다. 보통, 컴파일러에 의한 프로그램/응용 프로그램 코드의 컴파일은 상위 레벨 프로그래밍 언어 코드를 하위 레벨 기계 또는 어셈블리 언어 코드로 변환하기 위해 다수의 단계들(phases) 및 패스들(passes)에서 행해진다. 그렇지만, 간단한 컴파일에 대해서는 단일 패스 컴파일러들이 여전히 이용될 수 있다. 컴파일러는 임의의 공지된 컴파일 기법들을 이용하고, 어휘 분석, 전처리, 파싱, 의미 분석, 코드 발생, 코드 변환 및 코드 최적화와 같은 임의의 공지된 컴파일 동작들을 수행할 수 있다.
대형 컴파일러들은 종종 다수의 단계들을 포함하지만, 흔히 이들 단계는 다음과 같은 2개의 일반 단계들 내에 포함되어 있다: (1) 일반적으로 구문 처리, 의미 처리, 및 어떤 변환/최적화가 일어날 수 있는 프론트 엔드(front-end), 및 (2) 일반적으로 분석, 변환, 최적화, 및 코드 발생이 일어나는 백엔드(back-end). 어떤 컴파일러들은 컴파일러의 프론트 엔드와 백엔드의 구분의 모호함을 나타내는 미들(middle)을 참조한다. 그 결과, 컴파일러의 삽입, 연관, 발생 또는 다른 동작에 대한 참조는 상기한 단계들 또는 패스들은 물론, 컴파일러의 임의의 다른 공지된 단계들 또는 패스들 중 임의의 것에서 일어날 수 있다. 한 예시적인 예로서, 컴파일러는 어쩌면 컴파일의 프론트 엔드 단계에서 호출들/연산들을 삽입하는 것 그리고 이어서 변환 단계 동안 호출들/연산들을 하위 레벨 코드로 변환하는 것과 같은 하나 이상의 컴파일 단계들에서 연산들, 호출들, 함수들 등을 삽입한다. 유의할 점은, 동적 컴파일 동안, 컴파일러 코더 도는 동적 최적화 코드가 이러한 연산들/호출들을 삽입하는 것은 물론, 런타임 동안 실행을 위해 코드를 최적화할 수 있다는 것이다. 한 특정의 예시적인 예로서, 바이너리 코드(이미 컴파일된 코드)가 런타임 동안 동적으로 최적화될 수 있다. 여기서, 프로그램 코드는 동적 최적화 코드, 바이너리 코드, 또는 이들의 조합을 포함할 수 있다.
컴파일러와 유사하게, 바이너리 변환기와 같은 변환기는 코드를 최적화 및/또는 변환하기 위해 코드를 정적으로 또는 동적으로 변환한다. 따라서, 코드, 응용 프로그램 코드, 프로그램 코드, 또는 다른 소프트웨어 환경의 실행이라는 것은 (1) 프로그램 코드를 컴파일하기 위해, 소프트웨어 구조를 유지하기 위해, 다른 연산들을 수행하기 위해, 코드를 최적화하기 위해, 또는 코드를 변환하기 위해 컴파일러 프로그램(들), 최적화 코드 최적화기, 또는 변환기를 동적으로 또는 정적으로 실행하는 것; (2) 최적화된/컴파일된 응용 프로그램 코드와 같은, 연산들/호출들을 포함하는 메인 프로그램 코드(main program code)를 실행하는 것; (3) 소프트웨어 구조를 유지하기 위해, 다른 소프트웨어 관련 연산들을 수행하기 위해, 또는 코드를 최적화하기 위해 메인 프로그램 코드와 연관되어 있는 라이브러리들과 같은 다른 프로그램 코드를 실행하는 것; 또는 (4) 이들의 조합을 말하는 것일 수 있다.
이제 도 11을 참조하면, 멀티코어 프로세서의 일 실시예의 블록도가 도시되어 있다. 도 11의 실시예에 도시되어 있는 바와 같이, 프로세서(1100)는 다수의 도메인들(domains)을 포함한다. 구체적으로는, 코어 도메인(1130)은 복수의 코어들(1130A 내지 1130N)을 포함하고, 그래픽 도메인(1160)은 미디어 엔진(1165)을 가지는 하나 이상의 그래픽 엔진들을 포함하며, 그리고 시스템 에이전트 도메인(1110)이 있다.
다양한 실시예들에서, 시스템 에이전트 도메인(1110)은 전력 제어 이벤트들 및 전력 관리를 처리하고, 따라서 도메인들(1130 및 1160)의 개개의 유닛들(예컨대, 코어들 및/또는 그래픽 엔진들)은 주어진 유닛에서 발생하는 활성화(또는 비활성화)를 바탕으로 적절한 전력 모드/레벨(예컨대, 활성, 터보, 슬립, 하이버네이트(hibernate), 딥 슬립(deep sleep), 또는 다른 ACPI(Advanced Configuration Power Interface) 유사 상태)에서 동적으로 동작하도록 독립적으로 제어가능하다. 도메인들(1130 및 1160) 각각은 상이한 전압 및/또는 전력에서 동작할 수 있고, 게다가, 도메인들 내의 개개의 유닛들 각각은 어쩌면 독립적인 주파수 및 전압에서 동작한다. 유의할 점은, 단지 3개의 도메인들로 도시되어 있지만, 본 발명의 범주가 이와 관련하여 제한되지 않고, 다른 실시예들에서, 부가의 도메인들이 존재할 수 있다는 것이다.
도시된 바와 같이, 각각의 코어(1130)는, 다양한 실행 유닛들 및 부가의 처리 요소들에 부가하여, 저레벨 캐시들을 추가로 포함하고 있다. 여기서, 다양한 코어들이 서로에 그리고 LLC(last level cache, 마지막 레벨 캐시)(1140A 내지 1140N)의 복수의 유닛들 또는 슬라이스들로 형성되어 있는 공유 캐시 메모리에 결합되어 있고; 이 LLC들은 종종 저장 장치 및 캐시 제어기 기능을 포함하고, 코어들 간에는 물론, 어쩌면 그래픽 엔진 간에도 공유된다.
보는 바와 같이, 링 상호연결부(1150)는 코어들을 서로 결합시키고, 복수의 링 스톱들(ring stops)(1152A 내지 1152N) - 각각이 코어와 LLC 슬라이스 사이의 결합부(coupling)에 있음 - 을 통해 코어 도메인(1130), 그래픽 도메인(1160) 및 시스템 에이전트 회로(1110) 사이의 상호연결을 제공한다. 도 11에서 보는 바와 같이, 상호연결부(1150)는 주소 정보, 데이터 정보, 확인 응답 정보, 및 스누프/무효 정보를 비롯한 다양한 정보를 전달하는 데 사용된다. 링 상호연결부가 예시되어 있지만, 임의의 공지된 온다이(on-die) 상호연결부 또는 패브릭이 이용될 수 있다. 한 예시적인 예로서, 앞서 논의된 패브릭들(예컨대, 다른 온다이 상호연결부, OSF(On-chip System Fabric, 온칩 시스템 패브릭), AMBA(Advanced Microcontroller Bus Architecture) 상호연결부, 다차원 메쉬 패브릭, 또는 다른 공지된 상호연결 아키텍처) 중 일부가 유사한 방식으로 이용될 수 있다.
추가로 도시되어 있는 바와 같이, 시스템 에이전트 도메인(1110)은 연관된 디스플레이의 제어 및 그에 대한 인터페이스를 제공하는 디스플레이 엔진(1112)을 포함한다. 시스템 에이전트 도메인(1110)은 시스템 메모리에 대한 인터페이스를 제공하는 통합된 메모리 제어기(1120)(예컨대, 다수의 DIMM들로 구현된 DRAM); 메모리 일관성 연산들을 수행하는 일관성 논리(1122)와 같은 다른 유닛들을 포함할 수 있다. 프로세서와 다른 회로 사이의 상호연결을 가능하게 하기 위해 다수의 인터페이스들이 존재할 수 있다. 예를 들어, 하나의 실시예에서, 적어도 하나의 DMI(direct media interface)(1116) 인터페이스는 물론 하나 이상의 PCIe™ 인터페이스들(1114)이 제공된다. 디스플레이 엔진 및 이 인터페이스들은 전형적으로 PCIe™ 브리지(1118)를 통해 메모리에 결합되어 있다. 또한, 부가의 프로세서들 또는 다른 회로와 같은 다른 에이전트들 사이의 통신을 제공하기 위해, 하나 이상의 다른 인터페이스들이 제공될 수 있다.
이제 도 12를 참조하면, 대표적인 코어의 블록도가 도시되어 있고; 구체적으로는, 도 11의 코어(1130)와 같은 코어의 백엔드의 논리 블록들이 도시되어 있다. 일반적으로 도 12에 도시된 구조는 들어오는 명령어들을 페치하고, 다양한 처리(예컨대, 캐싱, 디코딩, 분기 예측 등)를 수행하며, 명령어들/연산들을 비순차(out-of-order, OOO) 엔진(1280)에 전달하는 데 사용되는 프론트 엔드 유닛(1270)을 가지는 비순차 프로세서를 포함한다. OOO 엔진(1280)은 디코딩된 명령어들에 대해 추가적인 처리를 수행한다.
구체적으로는, 도 12의 실시예에서, 비순차 엔진(1280)은 프론트 엔드 유닛(1270)으로부터 하나 이상의 마이크로 명령어들 또는 uop들의 형태로 되어 있을 수 있는 디코딩된 명령어들을 수신하고 그들을 레지스터들 등과 같은 적절한 자원들에 할당하는 할당 유닛(1282)을 포함한다. 그 다음에, 명령어들이 복수의 실행 유닛들(1286A 내지 1286N) 중 하나 상에서의 실행을 위해 자원들을 예약하고 자원들을 스케줄링하는 예약 스테이션(reservation station)(1284)에 제공된다. 예를 들어, 그 중에서도 특히, ALU들(arithmetic logic units, 산술 논리 유닛들), 로드 및 저장 유닛들, VPU들(vector processing units, 벡터 처리 유닛들), 부동 소수점 실행 유닛들을 비롯한 다양한 유형들의 실행 유닛들이 존재할 수 있다. 이 상이한 실행 유닛들로부터의 결과들은 정렬되지 않은 결과들을 받아서 그들을 올바른 프로그램 순서로 반환하는 ROB(reorder buffer)(1288)에 제공된다.
여전히 도 12를 참조하면, 유의할 점은, 프론트 엔드 유닛(1270) 및 비순차 엔진(1280) 둘 다가 메모리 계층구조의 상이한 레벨들에 결합되어 있다는 것이다. 구체적으로는, 명령어 레벨 캐시(1272)가 도시되어 있고, 이는 차례로 중간 레벨 캐시(1276)에 결합되어 있고, 이는 차례로 마지막 레벨 캐시(1295)에 결합되어 있다. 하나의 실시예에서, 마지막 레벨 캐시(1295)는 온칩(때로는 언코어라고 함) 유닛(1290)에 구현된다. 한 예로서, 유닛(1290)은 도 11의 시스템 에이전트(1110)와 유사하다. 앞서 논의한 바와 같이, 언코어(1290)는, 예시된 실시예에서, ED RAM을 통해 구현되는 시스템 메모리(1299)와 통신한다. 또한, 유의할 점은 비순차 엔진(1280) 내의 다양한 실행 유닛들(1286)이 중간 레벨 캐시(1276)와 역시 통신하고 있는 제1 레벨 캐시(1274)와 통신하고 있다는 것이다. 또한, 유의할 점은, 부가의 코어들(1230N-2 내지 1230N)이 LLC(1295)에 결합될 수 있다는 것이다. 비록 도 12의 실시예에서 이러한 상위 레벨로 도시되어 있지만, 다양한 수정들 및 부가의 구성요소들이 존재할 수 있다는 것을 잘 알 것이다.
도 13을 참조하면, 명령어를 실행하는 실행 유닛들을 포함하는 프로세서로 형성된 예시적인 컴퓨터 시스템의 블록도가 예시되어 있고, 상호연결부들 중 하나 이상은 본 발명의 하나의 실시예에 따른 하나 이상의 특징들을 구현한다. 시스템(1300)은, 본 명세서에 기술된 실시예에서와 같은, 본 발명에 따른, 데이터를 처리하는 알고리즘들을 수행하는 논리를 포함하는 실행 유닛들을 이용하는 프로세서(1302)와 같은 구성요소를 포함한다. 시스템(1300)은 PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ 및/또는 StrongARM™ 마이크로프로세서들에 기초한 처리 시스템을 나타내지만, (다른 마이크로프로세서들, 엔지니어링 워크스테이션들, 셋톱 박스들 등을 가지는 PC들을 포함하는) 다른 시스템들도 역시 사용될 수 있다. 하나의 실시예에서, 샘플 시스템(1300)은 미국 워싱턴주 레드몬드 소재의 Microsoft Corporation으로부터 입수가능한 WINDOWS™ 운영 체제의 한 버전을 실행하지만, 다른 운영 체제들(예를 들어, UNIX 및 Linux), 임베디드 소프트웨어, 및/또는 그래픽 사용자 인터페이스들도 역시 사용될 수 있다. 이와 같이, 본 발명의 실시예들은 하드웨어 회로 및 소프트웨어의 임의의 특정의 조합으로 제한되지 않는다.
실시예들이 컴퓨터 시스템들로 제한되지 않는다. 본 발명의 대안의 실시예들이 핸드헬드 디바이스들 및 임베디드 응용 분야들과 같은 다른 디바이스들에서 사용될 수 있다. 핸드헬드 디바이스들의 어떤 예들은 셀룰러폰, 인터넷 프로토콜 디바이스, 디지털 카메라, PDA(personal digital assistant), 및 핸드헬드 PC를 포함한다. 임베디드 응용 분야들은 적어도 하나의 실시예에 따른, 하나 이상의 명령어들을 수행할 수 있는 마이크로컨트롤러, DSP(digital signal processor), 시스템 온 칩, 네트워크 컴퓨터(NetPC), 셋톱 박스, 네트워크 허브, WAN(wide area network) 스위치, 또는 임의의 다른 시스템을 포함할 수 있다.
이 예시된 실시예에서, 프로세서(1302)는 적어도 하나의 명령어를 수행할 알고리즘을 구현하는 하나 이상의 실행 유닛들(1308)을 포함한다. 일 실시예가 단일 프로세서 데스크톱 또는 서버 시스템과 관련하여 기술될 수 있지만, 대안의 실시예들은 멀티프로세서 시스템에 포함될 수 있다. 시스템(1300)은 '허브' 시스템 아키텍처의 한 예이다. 컴퓨터 시스템(1300)은 데이터 신호들을 처리하는 프로세서(1302)를 포함하고 있다. 프로세서(1302)는, 하나의 예시적인 예로서, CISC(complex instruction set computer) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 명령어 세트들의 조합을 구현하는 프로세서, 또는, 예를 들어, DSP(digital signal processor)와 같은 임의의 다른 프로세서 디바이스를 포함한다. 프로세서(1302)는 프로세서(1302)와 시스템(1300) 내의 다른 구성요소들 사이에서 데이터 신호들을 전송하는 프로세서 버스(1310)에 결합되어 있다. 시스템(1300)의 요소들(예컨대, 그래픽 가속기(1312), 메모리 제어기 허브(1316), 메모리(1320), I/O 제어기 허브(1324), 무선 송수신기(1326), 플래시 BIOS(1328), 네트워크 제어기(1334), 오디오 제어기(1336), 직렬 확장 포트(1338), I/O 제어기(1340) 등)은 당업자에 공지되어 있는 그들의 종래의 기능들을 수행한다.
하나의 실시예에서, 프로세서(1302)는 레벨 1(L1) 내부 캐시 메모리(1304)를 포함한다. 아키텍처에 따라, 프로세서(1302)는 단일의 내부 캐시 또는 다수의 레벨들의 내부 캐시들을 가질 수 있다. 다른 실시예들은 특정의 구현 및 요구에 따라, 내부 캐시와 외부 캐시 둘 다의 조합을 포함한다. 레지스터 파일(1306)은 정수 레지스터, 부동 소수점 레지스터, 벡터 레지스터, 뱅크드 레지스터(banked register), 쉐도우 레지스터(shadow register), 체크포인트 레지스터(checkpoint register), 상태 레지스터, 및 명령어 포인터 레지스터를 비롯한 다양한 레지스터들에 상이한 유형들의 데이터를 저장할 것이다.
정수 및 부동 소수점 연산들을 수행하는 논리를 포함하는 실행 유닛(1308)이 또한 프로세서(1302)에 존재한다. 프로세서(1302)는, 하나의 실시예에서, 실행될 때, 특정의 마이크로명령어들에 대한 알고리즘들을 수행하거나 복잡한 시나리오들을 처리하는 마이크로코드를 저장하는 마이크로코드(ucode) ROM을 포함한다. 여기서, 마이크로코드는 어쩌면 프로세서(1302)에 대한 논리 버그들/수정들(bugs/fixes)을 처리하기 위해 갱신가능하다. 하나의 실시예에서, 실행 유닛(1308)은 압축 명령어 세트(packed instruction set)(1309)를 처리하는 논리를 포함한다. 압축 명령어 세트(1309)를 범용 프로세서(1302)의 명령어 세트에 포함시킴으로써, 명령어들을 실행하는 연관된 회로와 함께, 많은 멀티미디어 응용 프로그램들에서 사용되는 연산들이 범용 프로세서(1302)에서 압축 데이터를 사용하여 수행될 수 있다. 따라서, 압축 데이터에 대한 연산들을 수행하기 위해 프로세서의 데이터 버스의 전체 폭을 사용함으로써 많은 멀티미디어 응용 프로그램들이 가속되고 더 효율적으로 실행된다. 이것은 어쩌면 한번에 하나의 데이터 요소씩 하나 이상의 연산들을 수행하기 위해 프로세서의 데이터 버스에 걸쳐 더 작은 단위들의 데이터를 전송할 필요를 없애준다.
실행 유닛(1308)의 대안의 실시예들은 또한 마이크로컨트롤러, 임베디드 프로세서, 그래픽 디바이스, DSP, 및 다른 유형의 논리 회로에서 사용될 수 있다. 시스템(1300)은 메모리(1320)를 포함하고 있다. 메모리(1320)는 DRAM(dynamic random access memory) 디바이스, SRAM(static random access memory) 디바이스, 플래시 메모리 디바이스, 또는 기타 메모리 디바이스를 포함한다. 메모리(1320)는 프로세서(1302)에 의해 실행될 명령어들 및/또는 데이터 신호들에 의해 표현되는 데이터를 저장한다.
유의할 점은, 본 발명의 상기한 특징들 또는 측면들 중 임의의 것이 도 13에 예시되어 있는 하나 이상의 상호연결부에서 이용될 수 있다는 것이다. 예를 들어, 프로세서(1302)의 내부 유닛들을 결합시키기 위한 온다이 상호연결부(on-die interconnect, ODI)(도시되어 있지 않음)는 앞서 기술한 본 발명의 하나 이상의 측면들을 구현한다. 또는, 본 발명은 프로세서 버스(1310)(예컨대, 다른 공지된 고성능 컴퓨팅 상호연결부), 메모리(1320)에의 고대역폭 메모리 경로(1318), 그래픽 가속기(1312)에의 점대점 링크(예컨대, PCIe(Peripheral Component Interconnect express) 호환 패브릭), 제어기 허브 상호연결부(1322), I/O 또는 다른 예시된 구성요소들을 결합시키기 위한 다른 상호연결부(예컨대, USB, PCI, PCIe)와 연관되어 있다. 이러한 구성요소들의 어떤 예들은 오디오 제어기(1336), 펌웨어 허브(플래시 BIOS)(1328), 무선 송수신기(1326), 데이터 저장 장치(1324), 사용자 입력 및 키보드 인터페이스들(1342)을 포함하는 레거시 I/O 제어기(1310), USB(Universal Serial Bus)와 같은 직렬 확장 포트(1338), 및 네트워크 제어기(1334)를 포함한다. 데이터 저장 디바이스(1324)는 하드 디스크 드라이브, 플로피 디스크 드라이브, CD-ROM 디바이스, 플래시 메모리 디바이스, 또는 기타 대용량 저장 디바이스를 포함할 수 있다.
이제 도 14를 참조하면, 본 발명의 일 실시예에 따른 제2 시스템(1400)의 블록도가 도시되어 있다. 도 14에 도시된 바와 같이, 멀티프로세서 시스템(1400)은 점대점 상호연결 시스템이고, 점대점 상호연결부(1450)를 통해 결합되어 있는 제1 프로세서(1470) 및 제2 프로세서(1480)를 포함하고 있다. 프로세서들(1470 및 1480) 각각은 어떤 버전의 프로세서일 수 있다. 하나의 실시예에서, 1452 및 1454는 고성능 아키텍처와 같은 직렬 점대점 일관성 상호연결 패브릭의 일부이다. 그 결과, 본 발명은 QPI 아키텍처 내에 구현될 수 있다.
단지 2개의 프로세서들(1470, 1480)로 도시되어 있지만, 본 발명의 범주가 그렇게 제한되지 않는다는 것을 잘 알 것이다. 다른 실시예들에서, 주어진 프로세서에 하나 이상의 부가의 프로세서들이 존재할 수 있다.
프로세서들(1470 및 1480)은, 각각, 통합된 메모리 제어기 유닛들(1472 및 1482)을 포함하는 것으로 도시되어 있다. 프로세서(1470)는 또한 그의 버스 제어기 유닛들의 일부로서 점대점(P-P) 인터페이스들(1476 및 1478)을 포함하고; 이와 유사하게, 제2 프로세서(1480)도 P-P 인터페이스들(1486 및 1488)을 포함하고 있다. 프로세서들(1470, 1480)은 P-P(point-to-point) 인터페이스 회로들(1478, 1488)를 사용하여 P-P 인터페이스(1450)를 통해 정보를 교환할 수 있다. 도 14에 도시된 바와 같이, IMC들(1472 및 1482)은 프로세서들을 각자의 메모리들, 즉 각자의 프로세서들에 로컬적으로 접속되어 있는 주 메모리의 일부분들일 수 있는 메모리(1432) 및 메모리(1434)에 결합시킨다.
프로세서들(1470, 1480) 각각은 점대점 인터페이스 회로들(1476, 1494, 1486, 1498)을 사용하여 개개의 P-P 인터페이스들(1452, 1454)를 통해 칩셋(1490)과 정보를 교환한다. 칩셋(1490)은 또한 고성능 그래픽 상호연결부(1439)를 따라 인터페이스 회로(1492) 통해 고성능 그래픽 회로(1438)와 정보를 교환한다.
공유 캐시(도시 생략)가 어느 한 프로세서 내에 또는 양쪽 프로세서들의 외부에 포함되어 있을 수 있지만, P-P 상호연결부를 통해 프로세서들과 연결되어 있을 수 있으며, 따라서 프로세서가 저전력 모드에 있는 경우, 어느 한 프로세서 또는 양쪽 프로세서들의 로컬 캐시 정보가 공유 캐시에 저장될 수 있다.
칩셋(1490)은 인터페이스(1496)를 통해 제1 버스(1416)에 결합될 수 있다. 하나의 실시예에서, 제1 버스(1416)는 PCI(Peripheral Component Interconnect) 버스, 또는 PCI Express 버스 또는 다른 3세대 I/O 상호연결 버스와 같은 버스일 수 있지만, 본 발명의 범주가 그렇게 제한되지 않는다.
도 14에 도시된 바와 같이, 제1 버스(1416)를 제2 버스(1420)에 결합시키는 버스 브리지(1418)와 함께, 다양한 I/O 디바이스들(1414)이 제1 버스(1416)에 결합되어 있다. 하나의 실시예에서, 제2 버스(1420)는 LPC(low pin count) 버스를 포함한다. 하나의 실시예에서, 예를 들어, 키보드 및/또는 마우스(1422), 통신 디바이스(1427), 그리고 명령어들/코드 및 데이터(1430)를 종종 포함하는 디스크 드라이브 또는 다른 대용량 저장 디바이스와 같은 저장 유닛(1428)을 비롯한 다양한 디바이스들이 제2 버스(1420)에 결합되어 있다. 게다가, 오디오 I/O(1424)가 제2 버스(1420)에 결합되어 있는 것으로 도시되어 있다. 유의할 점은, 포함된 구성요소들 및 상호연결 아키텍처들이 달라지는 다른 아키텍처들이 가능하다는 것이다. 예를 들어, 도 14의 점대점 아키텍처 대신에, 시스템은 멀티-드롭 버스 또는 다른 이러한 아키텍처를 구현할 수 있다.
그 다음에 도 15를 참조하면, 본 발명에 따른 시스템 온 칩(SOC) 설계의 일 실시예가 도시되어 있다. 한 특정의 예시적인 예로서, SOC(1500)은 사용자 장비(UE)에 포함되어 있다. 하나의 실시예에서, UE는 통신하기 위해 최종 사용자에 의해 사용될 임의의 디바이스(휴대폰, 스마트폰, 태블릿, 초박형 노트북, 광대역 어댑터를 갖는 노트북, 또는 임의의 다른 유사한 통신 디바이스 등)를 말한다. 종종, GSM 네트워크에서 사실상 어쩌면 이동국(MS)에 대응하는 UE는 기지국 또는 노드에 연결한다.
여기서, SOC(1500)는 2개의 코어들(1506 및 1507)을 포함한다. 이상의 논의와 유사하게, 코어들(1506 및 1507)은 Intel® Architecture Core™ 기반 프로세서, AMD(Advanced Micro Devices, Inc.) 프로세서, MIPS 기반 프로세서, ARM 기반 프로세서 설계, 또는 이들의 고객은 물론 이들의 사용권자 또는 채택자와 같은 ISA(Instruction Set Architecture)에 부합할 수 있다. 코어들(1506 및 1507)은 시스템(1500)의 다른 부분들과 통신하기 위해 버스 인터페이스 유닛(1509) 및 L2 캐시(1511)와 연관되어 있는 캐시 제어(cache control)(1508)에 결합되어 있다. 상호연결부(1510)는 어쩌면 본 명세서에 기술되어 있는 하나 이상의 측면들을 구현하는 IOSF, AMBA, 또는 앞서 논의한 다른 상호연결부와 같은 온칩 상호연결부를 포함한다.
상호연결부(1510)는 SIM(Subscriber Identity Module) 카드와 인터페이스하는 SIM(1530), 부트 SOC(1500)를 초기화하기 위해 코어들(1506 및 1507)에 의해 실행되는 부트 코드를 보유하는 부트 ROM(1535), 외부 메모리(예컨대, DRAM(1560))와 인터페이스하는 SDRAM 제어기(1540), 비휘발성 메모리(예컨대, 플래시(1565))와 인터페이스하는 플래시 제어기(1545), 주변 장치들과 인터페이스하는 주변 장치 제어(1550)(예컨대, 직렬 주변 장치 인터페이스), 입력(예컨대, 터치 기반 입력)을 디스플레이하고 수신하는 비디오 코덱들(1520) 및 비디오 인터페이스(1525), 그래픽 관련 계산들을 수행하는 GPU(1515) 등과 같은 다른 구성요소들로의 통신 채널들을 제공한다. 이 인터페이스들 중 임의의 것은 본 명세서에 기술되어 있는 본 발명의 측면들을 포함할 수 있다.
그에 부가하여, 이 시스템은 블루투스 모듈(1570), 3G 모뎀(1575), GPS(1580), 및 WiFi(1585)와 같은 통신을 위한 주변 장치들을 예시하고 있다. 유의할 점은, 앞서 언급한 바와 같이, UE가 통신을 위한 라디오를 포함한다는 것이다. 그 결과, 이 주변 장치 통신 모듈들 모두가 필요하지는 않다. 그렇지만, UE에, 외부 통신을 위한 어떤 형태의 라디오가 포함될 것이다.
본 발명이 제한된 수의 실시예들에 대해 기술되어 있지만, 당업자라면 그 실시예들에 대한 수많은 수정들 및 변형들을 잘 알 것이다. 첨부된 청구항들이 본 발명의 진정한 사상 및 범주 내에 속하는 이러한 수정들 및 변형들 모두를 포함하는 것으로 보아야 한다.
설계는, 작성부터 시뮬레이션을 거쳐 제조까지, 다양한 스테이지들을 거칠 수 있다. 설계를 표현하는 데이터는 설계를 다수의 방식들로 표현할 수 있다. 먼저, 시뮬레이션들에서 유용한 것처럼, 하드웨어는 하드웨어 기술 언어(hardware description language) 또는 다른 기능 기술 언어(functional description language)를 사용하여 표현될 수 있다. 그에 부가하여, 설계 프로세스의 어떤 스테이지들에서 논리 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델이 생성될 수 있다. 게다가, 대부분의 설계들은, 어떤 스테이지에서, 하드웨어 모델에서의 다양한 디바이스들의 물리적 배치를 표현하는 데이터 레벨에 도달한다. 종래의 반도체 제조 기법들이 사용되는 경우에, 하드웨어 모델을 표현하는 데이터는 집적 회로를 제조하는 데 사용되는 마스크들에 대한 상이한 마스크 층들에서의 다양한 특징들의 존재 또는 부존재를 명시하는 데이터일 수 있다. 설계의 임의의 표현에서, 데이터는 임의의 형태의 머신 판독가능한 매체에 저장될 수 있다. 메모리 또는 자기 또는 광 저장 장치(디스크 등)가 이러한 정보를 전송하기 위해 변조되거나 다른 방식으로 발생되는 광 또는 전기 파를 통해 전송되는 정보를 저장하는 머신 판독가능한 매체일 수 있다. 코드 또는 설계를 표시하거나 전달하는 전기 반송파가 전송될 때, 전기 신호의 복사, 버퍼링 또는 재전송이 수행되는 한, 새로운 사본이 만들어진다.
모듈은, 본 명세서에서 사용되는 바와 같이, 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 말한다. 한 예로서, 모듈은 마이크로컨트롤러에 의해 실행되도록 구성되어 있는 코드를 저장하는 비일시적 매체와 연관되어 있는 마이크로컨트롤러와 같은 하드웨어를 포함한다. 따라서, 하나의 실시예에서, 모듈이라고 하는 것은 비일시적 매체 상에 보유될 코드를 인식 및/또는 실행하도록 구체적으로 구성되어 있는 하드웨어를 말한다. 게다가, 다른 실시예에서, 모듈의 사용은 사전 결정된 동작들을 수행하기 위해 마이크로컨트롤러에 의해 실행되도록 구체적으로 구성되어 있는 코드를 포함하는 비일시적 매체를 말한다. 그리고, 추론될 수 있는 바와 같이, 또 다른 실시예에서, 모듈이라는 용어는 (이 예에서) 마이크로컨트롤러와 비일시적 매체의 조합을 말할 수 있다. 종종, 개별적인 것으로 예시되어 있는 모듈 경계들이 흔히 달라지고 어쩌면 중복된다. 예를 들어, 제1 및 제2 모듈이, 어떤 독립적인 하드웨어, 소프트웨어 또는 펌웨어를 어쩌면 유지하면서, 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합을 공유할 수 있다. 하나의 실시예에서, 논리라는 용어의 사용은 트랜지스터, 레지스터, 또는 프로그램가능 논리 디바이스와 같은 다른 하드웨어와 같은 하드웨어를 포함한다.
'~하도록 구성'이라는 문구의 사용은, 하나의 실시예에서, 지정된 또는 결정된 작업을 수행하는 장치, 하드웨어, 논리 또는 요소를 준비하는 것, 조립하는 것, 제조하는 것, 판매를 위해 제공하는 것, 수입하는 것 및/또는 설계하는 것을 말한다. 이 예에서, 동작하지 않는 장치 또는 그의 요소는, 상기 지정된 작업을 수행하도록 설계, 결합 및/또는 상호연결되어 있는 경우, 여전히 지정된 작업을 수행'하도록 구성'되어 있다. 순전히 예시적인 예로서, 논리 게이트는 동작 동안 0 또는 1을 제공할 수 있다. 그러나, 클럭에 인에이블 신호를 제공'하도록 구성'되어 있는 논리 게이트는 1 또는 0을 제공할 수 있는 모든 잠재적인 논리 게이트를 포함하지는 않는다. 그 대신에, 논리 게이트는 동작 동안 1 또는 0 출력이 클럭을 인에이블시키는 어떤 방식으로 결합되어 있는 것이다. 또다시 유의할 점은, '~하도록 구성'이라는 용어의 사용이 동작을 필요로 하지 않고, 그 대신에, 장치, 하드웨어, 및/또는 요소의 잠재 상태에 중점을 두고 있다는 것이며, 잠재 상태에서, 장치, 하드웨어, 및/또는 요소는, 장치, 하드웨어, 및/또는 요소가 동작하고 있을 때, 특정의 작업을 수행하도록 설계되어 있다.
게다가, '~하는', '~할 수 있는', 및/또는 '~하도록 동작을 하는'이라는 문구들의 사용은, 하나의 실시예에서, 명시된 방식으로 장치, 하드웨어, 및/또는 요소의 사용을 가능하게 하는 방식으로 설계되어 있는 어떤 장치, 논리, 하드웨어, 및/또는 요소를 말한다. 앞서 살펴본 바와 같이, '~하는', '~할 수 있는', 또는 '~하는 동작을 하는'의 사용은 장치, 논리, 하드웨어, 및/또는 요소의 잠재 상태를 말하고, 여기서 장치, 논리, 하드웨어, 및/또는 요소는 동작하지 않고 명시된 방식으로 장치를 사용하는 것을 가능하게 하는 방식으로 설계되어 있다.
값은, 본 명세서에서 사용되는 바와 같이, 숫자, 상태, 논리 상태, 또는 이진 논리 상태의 임의의 공지된 표현을 포함한다. 종종, 논리 레벨(logic level), 논리 값(logic value), 또는 논리적 값(logical value)의 사용은 단순히 이진 논리 상태를 나타내는 1 및 0이라고도 한다. 예를 들어, 1은 하이 논리 레벨을 말하고, 0은 로우 논리 레벨을 말한다. 하나의 실시예에서, 트랜지스터 또는 플래시 셀과 같은 저장 셀은 단일의 논리 값 또는 다수의 논리 값들을 보유할 수 있다. 그렇지만, 컴퓨터 시스템들에서의 값들의 다른 표현들이 사용되어 왔다. 예를 들어, 십진수 10이 또한 이진수 1010 및 16진수 문자 A로 표현될 수 있다. 따라서, 값은 컴퓨터 시스템에 보유될 수 있는 정보의 임의의 표현을 포함한다.
더욱이, 상태들은 값들 또는 값들의 일부분들에 의해 표현될 수 있다. 한 예로서, 논리 1과 같은 제1 값은 기본 또는 초기 상태를 나타낼 수 있는 반면, 논리 0과 같은 제2 값은 비기본 상태를 나타낼 수 있다. 그에 부가하여, 리셋(reset) 및 세트(set)라는 용어는, 하나의 실시예에서, 각각, 기본값 및 업데이트된 값 또는 상태를 말한다. 예를 들어, 기본값은 어쩌면 하이 논리 값(즉, 리셋)을 포함하는 반면, 업데이트된 값은 어쩌면 로우 논리 값(즉, 세트)을 포함한다. 값들의 임의의 조합이 임의의 수의 상태들을 나타내는 데 이용될 수 있다는 것에 유의해야 한다.
앞서 기재된 방법들, 하드웨어, 소프트웨어, 펌웨어 또는 코드의 실시예들은 처리 요소에 의해 실행가능한 머신 액세스가능, 머신 판독가능, 컴퓨터 액세스가능, 또는 컴퓨터 판독가능 매체 상에 저장된 명령어들 또는 코드를 통해 구현될 수 있다. 비일시적 머신 판독가능 매체는 컴퓨터 또는 전자 시스템과 같은 머신에 의해 판독가능한 형태로 정보를 제공(즉, 저장 및/또는 전송)하는 임의의 메커니즘을 포함한다. 예를 들어, 비일시적 머신 액세스가능한 매체는 일시적(전파된) 신호들(예컨대, 반송파, 적외선 신호, 디지털 신호)로부터 수신되는 정보를 보유하는 SRAM(static RAM) 또는 DRAM(dynamic RAM)과 같은 RAM(random-access memory); ROM; 자기 또는 광 저장 매체; 플래시 메모리 디바이스; 전기 저장 디바이스; 광 저장 디바이스; 음향 저장 디바이스; 다른 형태의 저장 디바이스 등(이들로부터 정보를 수신할 수 있는 비일시적 매체들과 구별될 것임)을 포함한다.
본 발명의 실시예들을 수행하도록 논리를 프로그램하는 데 사용되는 명령어들은 DRAM, 캐시, 플래시 메모리, 또는 다른 저장 장치와 같은 시스템에 있는 메모리 내에 저장될 수 있다. 게다가, 명령어들은 네트워크를 통해 또는 다른 컴퓨터 판독가능 매체를 통해 배포될 수 있다. 이와 같이, 머신 판독가능한 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함할 수 있지만, 플로피 디스켓, 광 디스크, CD-ROM(Compact Disc, Read-Only Memory) 및 광자기 디스크, ROM(Read-Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 자기 또는 광 카드, 플래시 메모리로 제한되지 않는다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장하는 데 적합한 임의의 종류의 유형의(tangible) 머신 판독가능한 매체를 포함한다.
이하의 예들은 본 명세서에 따른 실시예들에 관한 것이다. 하나 이상의 실시예들은 링크를 초기화하는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있고, 링크는 다수의 레인들(lanes)을 포함할 것이며, 송신기 및 수신기는 다수의 레인들 내의 각각의 레인에 결합될 것이고, 링크의 재초기화는 레인들 각각을 통해 사전 정의된 시퀀스를 전송하는 것을 포함할 것이며, 재초기화는 링크의 종료(termination) 없이 제공될 것이다.
적어도 하나의 예에서, 사전 정의된 시퀀스는 송신기로부터 수신기로 송신될 것이고, 수신기는 사전 정의된 시퀀스를 송신기로 반복해 보낼 것이다.
적어도 하나의 예에서, 시퀀스는 EIEOS(electric idle exit ordered set)를 포함한다.
적어도 하나의 예에서, 시퀀스는 훈련 시퀀스의 복수의 인스턴스들을 추가로 포함한다.
적어도 하나의 예에서, EIEOS는 최소 주파수에 따라 시퀀스에서 반복될 것이다.
적어도 하나의 예에서, 시퀀스는 링크가 초기화될 때까지 반복될 것이다.
하나 이상의 예들은 또한 링크에서 에이전트를 검출하기 위해 사전 정의된 시퀀스의 수신된 인스턴스들을 유효화하는 것을 제공할 수 있다.
적어도 하나의 예에서, 링크는 차동 직렬 데이터 링크를 포함한다.
적어도 하나의 예에서, 시퀀스는 리셋 상태 동안 리셋 상태로부터의 탈출(exit)을 시그널링하기 위해 송신될 것이다.
하나 이상의 실시예들은 차동 직렬 데이터 링크의 레인들을 통해, 사전 정의된 시퀀스를 데이터 링크에 연결되어 있는 다른 엔티티로 전송하고, 다른 엔티티로부터 사전 정의된 시퀀스의 확인 응답(acknowledgement)을 수신하며, 데이터 링크의 초기화를 용이하게 하기 위해 사전 정의된 시퀀스를 사용하는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있다.
적어도 하나의 예에서, 플릿(flit)이 데이터 링크를 통해 제1 디바이스로부터 제2 디바이스로 송신될 수 있다. 제1 및 제2 디바이스들은 마이크로프로세서들, 그래픽 가속기들, 및 다른 디바이스들을 포함할 수 있다.
이하의 예들은 본 명세서에 따른 실시예들에 관한 것이다. 하나 이상의 실시예들은 다수의 레인들을 포함하는 링크를 통해, 레인들 각각에서 사전 정의된 시퀀스를 검출하고 사전 정의된 시퀀스의 검출에 기초하여 다른 에이전트의 상태를 결정하는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있다.
하나 이상의 예들은 또한 사전 정의된 시퀀스의 다른 에이전트로의 에코잉(echoing)을 제공할 수 있다.
적어도 하나의 예에서, 시퀀스는 EIEOS를 포함하고, 사전 정의된 시퀀스의 검출은 시퀀스의 유효화를 포함한다.
적어도 하나의 예에서, 시퀀스의 유효화는 EIEOS가 사전 정의된 주파수에 따라 반복되는 것을 식별하는 것에 적어도 부분적으로 기초한다.
적어도 하나의 예에서, 시퀀스는 특정의 링크 초기화 상태 전체에 걸쳐 반복된다.
적어도 하나의 예에서, 시퀀스는 초기화 상태를 나타낸다.
적어도 하나의 예에서, 초기화 상태는 링크의 재초기화에 포함된다.
적어도 하나의 예에서, 시퀀스는 리셋 상태 동안 검출되고 리셋 상태로부터의 탈출을 나타낸다.
하나 이상의 실시예들은 링크의 초기화 동안 루핑(looping)을 모니터링하고, 초기화 동안 성공하지 못한 루핑을 확인한 것에 응답하여, 링크의 초기화를 서스펜드시키는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있다.
하나 이상의 예들은 또한 초기화 동안의 상태 머신에서의 루프들의 카운트(count)를 유지하는 것을 제공할 수 있다.
적어도 하나의 예에서, 카운트는 링크를 사용하여 통신적으로 연결된 각각의 에이전트 상에 유지될 것이다.
적어도 하나의 예에서, 카운트는 링크의 성공적인 초기화 시에 리셋될 것이다.
적어도 하나의 예에서, 링크의 성공적인 초기화는 링크 송신 상태(link transmitting state)에 진입하는 것을 포함한다.
적어도 하나의 예에서, 루프는 링크 훈련 상태 머신(link training state machine)의 리셋 상태에 재진입하는 것을 포함한다.
적어도 하나의 예에서, 링크의 초기화는 링크 훈련 상태 머신의 리셋 상태에서 서스펜드될 것이다.
적어도 하나의 예에서, 링크의 서스펜드된 초기화는 제어기로부터의 명령에 응답하여 재시작할 것이다.
적어도 하나의 예에서, 링크는 20개 레인의 링크 폭을 가진다.
하나 이상의 실시예들은 특정의 초기화 상태와 관련하여 하나 이상의 초기화 작업들을 수행할지를 결정하고; 초기화 작업들을 수행할지를 결정한 것에 기초하여, 특정의 상태로부터 천이하기 위해 단기 타이머(short timer)를 적용하는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있다.
하나 이상의 예들은 또한 제2 초기화 상태로부터 천이하기 위해 제2 단기 타이머를 적용하는 것을 제공할 수 있고, 제2 단기 타이머는 제1 단기 타이머와 상이한 지속기간을 가진다.
적어도 하나의 예에서, 단기 타이머는 초기화 작업들을 수행하지 않기로 하는 결정에 기초하여 적용될 것이다.
적어도 하나의 예에서, 특정의 초기화 상태에 대한 장기 타이머(long timer)는 초기화 작업들을 수행하기로 하는 결정에 기초하여 적용될 것이다.
적어도 하나의 예에서, 결정은 단기 타이머가 인에이블되어 있다는 표시에 기초한다.
적어도 하나의 예에서, 단기 타이머는 소프트웨어 기반 제어기에 의해 인에이블된다.
적어도 하나의 예에서, 단기 타이머는 초기화 작업과 연관되어 있는 구성이 완료되었다는 결정에 기초하여 인에이블될 것이다.
적어도 하나의 예에서, 링크는 차동 직렬 데이터 링크를 포함한다.
하나 이상의 실시예들은 제1 모드에서는 제1 속도로 플릿들(flits)을 전송하고, 제2 모드에서는 제2 속도로 플릿들을 전송하는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있고, PLL 속도는 제1 모드 및 제2 모드에서 동일하다.
적어도 하나의 예에서, 제1 속도는 동작 속도를 포함하고, 제2 속도는 저속 속도를 포함한다.
적어도 하나의 예에서, 저속 속도는 동작 속도에 의해 에뮬레이트될 것이다.
적어도 하나의 예에서, 저속 속도를 에뮬레이트하는 것은 저속 모드에서 비트를 시뮬레이트하기 위해 일련의 비트들을 동작 속도로 송신하는 것을 포함한다.
적어도 하나의 예에서, 물리 계층 논리는 또한 제1 속도로부터 제2 속도로 천이할 것이다.
적어도 하나의 예에서, 천이는 적어도 부분적으로 소프트웨어 기반인 제어기의 요청에 기초한다.
하나 이상의 실시예들은 링크를 통해 제2 디바이스에 연결될 제1 디바이스의 동작 속도를 결정하고; 제2 디바이스의 동작 속도를 결정하며; 링크를 통한 데이터의 전송 동안 제1 및 제2 디바이스들에 의해 적용될 공통의 저속 속도를 결정하는 장치, 시스템, 머신 판독가능한 저장 장치, 머신 판독가능한 매체, 및 방법을 제공할 수 있다.
적어도 하나의 예에서, 공통의 저속 속도는 링크의 초기화 동안 결정된다.
적어도 하나의 예에서, 제1 디바이스의 동작 속도는 제2 디바이스의 동작 속도와 상이하고, 링크의 초기화는 공통의 동작 속도를 결정하는 것을 추가로 포함한다.
적어도 하나의 예에서, 공통의 동작 속도는 제1 및 제2 디바이스들의 동작 속도들 중 느린 쪽에 기초한다.
적어도 하나의 예에서, 공통의 저속 모드를 결정하는 것은 공통의 저속 속도를 실현하기 위해 제1 디바이스의 동작 속도에 적용될 제1 비를 결정하는 것 및 공통의 저속 속도를 실현하기 위해 제2 디바이스의 동작 속도에 적용될 제2 비를 결정하는 것을 포함한다.
적어도 하나의 예에서, 공통의 저속 속도는 동작 속도들에 의해 에뮬레이트될 것이다.
적어도 하나의 예에서, 저속 속도를 에뮬레이트하는 것은 공통의 저속 모드에서 비트를 시뮬레이트하기 위해 일련의 비트들을 각자의 동작 속도로 송신하는 것을 포함한다.
하나 이상의 예들은 또한 링크에 결합되도록 구성되어 있는 물리 계층(PHY) - 링크는 제1 수의 레인들을 포함함 - 을 제공할 수 있고, PHY는 동기화(동기) 카운터(synchronization (sync) counter)를 포함하며, PHY는 훈련 시퀀스와 연관되어 있는 동기 카운터와 정렬되어 있는 EIEOS(Electrically Idle Exit Order Set)를 전송할 것이다.
적어도 하나의 예에서, 동기 카운터로부터의 동기 카운터 값이 각각의 훈련 시퀀스 동안 교환되지 않는다.
하나 이상의 예들은 또한 링크에 결합되도록 구성되어 있는 물리 계층(PHY) - 링크는 제1 수의 레인들을 포함함 - 을 제공할 수 있고, PHY는 동기화(동기) 카운터를 포함하며, PHY는 훈련 시퀀스와 연관되어 있는 동기 카운터와 정렬되어 있는 EIEOS(Electrically Idle Exit Order Set)를 전송할 것이다.
적어도 하나의 예에서, 동기 카운터로부터의 동기 카운터 값이 각각의 훈련 시퀀스 동안 교환되지 않는다.
적어도 하나의 예에서, 동기 카운터와의 EIEOS 정렬은 각각의 훈련 시퀀스 동안 동기 카운터로부터의 동기 카운터 값의 교환을 위한 프록시로서 기능할 것이다.
하나 이상의 예들은 또한 링크에 결합되도록 구성되어 있는 물리 계층(PHY) - PHY는 제어 필드를 포함하는 소프트웨어 수정가능 레지스터, 및 복수의 상태들 사이에서 천이하는 PHY 상태 머신을 포함함 - 을 제공할 수 있고, PHY 상태 머신은, 레지스터의 제어 필드의 제1 값에 기초하여, 제1 상태와 제2 상태 사이의 천이를 홀드할 것이다.
적어도 하나의 예에서, PHY 상태 머신은, 소프트웨어가 레지스터의 제어 필드를 제2 값으로 갱신한 것에 응답하여, 제1 상태와 제2 상태 사이에서 천이할 것이다.
하나 이상의 예들은 또한 링크에 결합되도록 구성되어 있는 물리 계층(PHY) - PHY는 복수의 상태들 사이에서 천이하는 PHY 상태 머신을 포함함 - 을 제공할 수 있고, PHY 상태 머신은 핸드쉐이크 이벤트(handshake event)에 기초하여 제1 상태로부터 제2 상태로 천이하고 주 타이머 이벤트(primary timer event)에 기초하여 PHY를 제3 상태로부터 제4 상태로 천이시킬 수 있다.
적어도 하나의 예에서, PHY 상태 머신은, 보조 타이머 이벤트(secondary timer event)와 결합하여 주 타이머 이벤트에 기초하여, PHY를 제5 상태로부터 제6 상태로 천이시킬 수 있다.
하나 이상의 예들은 또한 링크에 결합되도록 구성되어 있는 물리 계층(PHY) - 링크는 제1 수의 레인들을 포함함 - 을 제공할 수 있고, PHY는 플릿들을 제1 속도로 전송할 것이고 플릿들을 제2 속도로 전송할 것이며, PLL(phased locked loop) 속도는 고속 모드 및 저속 모드에서 동일하다.
적어도 하나의 예에서, 제1 속도는 저속 속도이고, 제2 속도는 고속 속도이다.
적어도 하나의 예에서, PHY가 플릿들을 저속 속도로 전송는 것은 PHY가, PLL 속도를 변경함이 없이 플릿들의 비트를 저속 속도로 에뮬레이트하기 위해, 플릿들의 비트를 제1 속도로 연속적으로 여러 번 전송하는 것을 포함한다.
하나 이상의 예들은 또한 링크에 결합되도록 구성되어 있는 물리 계층(PHY) - 링크는 제1 수의 레인들을 포함함 - 을 제공할 수 있고, PHY는 저속 모드에서는 저속 속도로 플릿들을 전송할 것이고, 고속 모드에서는 고속 속도로 플릿들을 전송할 것이며 - 고속 속도는 저속 속도의 2배 초과임 -, PLL(phased locked loop) 속도는 고속 모드 및 저속 모드에서 동일하다.
본 명세서 전체에 걸쳐 "하나의 실시예" 또는 "일 실시예"라고 말하는 것은 그 실시예와 관련하여 기술된 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 여러 곳에서 나오는 "하나의 실시예에서" 또는 "일 실시예에서"와 같은 문구들 모두가 꼭 동일한 실시예를 말하는 것은 아니다. 게다가, 특정의 특징들, 구조들, 또는 특성들이 하나 이상의 실시예들에서 임의의 적당한 방식으로 결합될 수 있다.
이상의 명세서에서, 특정의 예시적인 실시예들을 참조하여 상세한 설명이 주어져 있다. 그렇지만, 첨부된 청구항들에 기재된 본 발명의 보다 광의의 사상 및 범주를 벗어나지 않고 본 발명에 대해 다양한 수정들 및 변경들이 행해질 수 있다는 것이 명백할 것이다. 그에 따라, 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다. 게다가, 실시예 및 다른 예시적인 표현의 상기 사용이 꼭 동일한 실시예 또는 동일한 예를 말하는 것은 아니며, 상이한 다른 실시예들은 물론 어쩌면 동일한 실시예를 말하는 것일 수 있다.
Claims (45)
- 장치로서,
프로토콜 계층(layer), 링크 계층 및 물리 계층을 구현하기 위한 모듈을 포함하고,
상기 물리 계층은 송신기 및 수신기를 포함하고,
상기 물리 계층은 저속 모드 및 동작 속도를 포함하는 다양한 속도들에서 동작하고,
상기 저속 모드에 대한 저속 모드 단위 구간(unit interval)은 상기 동작 속도에 대한 동작 속도 단위 구간의 정수배이고,
상기 저속 모드는 상기 동작 속도에서 동일한 비트를 복수회 송신하는 송신기 및 수신된 비트를 식별하기 위해 수신된 신호를 복수회 오버샘플링하는 수신기를 이용하여 에뮬레이트되는 장치. - 제1항에 있어서,
상기 물리 계층은 직렬 차동 링크(serial differential link)에 결합하도록 구성되는 장치. - 제1항에 있어서,
상기 프로토콜 계층은 캐시 일관성 트랜잭션들(cache coherent transactions) 및 비일관성 트랜잭션들(non-coherent transactions)을 지원하는 장치. - 제1항에 있어서,
상기 물리 계층은 다른 물리 계층과 피트(phit) 레벨에서 통신하도록 구성되는 장치. - 제4항에 있어서,
피트는 링크의 폭과 동일한 다수의 비트들을 포함하는 장치. - 제1항에 있어서,
상기 물리 계층이 상기 저속 모드 및 상기 동작 속도에서 동작하는 경우, 상기 동작 속도에서 상기 송신기 및 상기 수신기를 클럭킹하는 PLL(Phase Locked Loop) 디바이스를 더 포함하는 장치. - 제1항에 있어서,
상기 물리 계층은 기본 전원 켜기(default powerup)에 대해 상기 저속 모드에서 동작하는 장치. - 제1항에 있어서,
상기 물리 계층은 상기 저속 모드로부터 상기 동작 속도로 천이하는 장치. - 제1항에 있어서,
상기 동작 속도와 상기 저속 모드 사이의 천이는 리셋에 의해 동반되는 장치. - 제9항에 있어서,
상기 리셋은 웜 리셋(warm reset) 또는 콜드 리셋(cold reset)을 포함하는 장치. - 제1항에 있어서,
상기 장치는 2개의 소켓 서버에 결합된 프로세서를 포함하는 장치. - 제1항에 있어서,
상기 장치는 적어도 4개의 소켓들을 포함하는 서버에 결합된 프로세서를 포함하는 장치. - 제1항에 있어서,
상기 장치는 마이크로서버에서 복수의 다른 SoC(System on a Chip)와 결합된 SoC를 포함하는 장치. - 제1항에 있어서,
상기 장치는 비 인텔® 기반 명령어 세트(non-Intel®-based instruction set)를 지원하는 프로세서를 포함하는 장치. - 장치로서,
물리 계층, 링크 계층 및 프로토콜 계층을 포함하는 적층된 스택을 구현하기 위한 모듈을 포함하고,
상기 물리 계층은 송신기, 수신기, 및 상기 송신기 및 상기 수신기에 동작 주파수를 제공하는 PLL을 포함하고,
상기 송신기 및 상기 수신기는 동작 모드로부터 저속 모드로 천이하고, 상기 천이는 리셋에 의해 동반되고,
상기 송신기는, 상기 저속 모드에서, 상기 동작 주파수에서 동일한 비트를 정수 복수회로(integer multiple of times) 송신하고, 상기 수신기는, 상기 저속 모드에서, 수신된 비트를 식별하기 위해 상기 동작 주파수에서 수신된 신호를 정수 복수회로 오버샘플링하는 장치. - 시스템으로서,
제1 명령어 세트를 인식하는 디코더들을 포함하는 제1 프로세서;
상기 제1 명령어 세트와 상이한 제2 명령어 세트를 인식하는 디코더들을 포함하는 제2 프로세서; 및
적어도 상기 제1 프로세서와 상기 제2 프로세서 사이에서 인터페이스하는 제어기 - 상기 제어기는, 물리 계층, 링크 계층 및 프로토콜 계층을 포함하는 적층된 스택을 구현하고, 상기 물리 계층은 상기 제1 프로세서로 송신하는 송신기 및 상기 제1 프로세서로부터 수신하는 수신기를 포함하고, 상기 물리 계층은 저속 모드 및 동작 속도를 포함하는 다양한 속도들에서 동작할 수 있고, 상기 저속 모드에 대한 저속 모드 단위 구간은 상기 동작 속도에 대한 동작 속도 단위 구간의 정수배이고, 상기 저속 모드는 상기 동작 속도에서 동일한 비트를 복수회 송신하는 송신기 및 수신된 비트를 식별하기 위해 수신된 신호를 복수회 오버샘플링하는 수신기를 이용하여 에뮬레이트됨 -
를 포함하는 시스템. - 제16항에 있어서,
상기 물리 계층은 직렬 차동 링크를 통해 상기 제1 프로세서에 포함된 프로세서 물리 계층에 결합되는 시스템. - 제16항에 있어서,
상기 프로토콜 계층은 캐시 일관성 트랜잭션들 및 비일관성 트랜잭션들을 지원하는 시스템. - 제17항에 있어서,
상기 물리 계층은 상기 제1 프로세서와 상기 제어기 사이의 링크의 폭의 크기를 갖는 피트 입도(phit granularity)에서 상기 프로세서 물리 계층과 통신하도록 구성되는 시스템. - 제16항에 있어서,
상기 물리 계층은 기본 전원 켜기에 대해 상기 저속 모드에서 동작하는 시스템. - 제16항에 있어서,
상기 제1 명령어 세트는 인텔® 기반 명령어 세트를 포함하는 시스템. - 제15항에 있어서,
상기 리셋은 웜 리셋 또는 콜드 리셋을 포함하는 장치. - 제15항에 있어서,
상기 적층된 스택은 복수의 프로세서 시스템에 구현되는 장치. - 제15항에 있어서,
상기 프로토콜 계층은 캐시 일관성 트랜잭션들 및 비일관성 트랜잭션들을 지원하는 장치. - 제15항에 있어서,
상기 적층된 스택은 8개의 SoC들보다 많은 SoC들을 포함하는 시스템 내의 SoC에 구현되는 장치. - 제15항에 있어서,
상기 적층된 스택은 터치 스크린 인터페이스에 결합된 SoC에 구현되는 장치. - 제15항에 있어서,
상기 적층된 스택은, 인텔® 기반 명령어 세트를 디코딩할 수 있는 제1 프로세서와 인터페이스하고, 비 인텔® 기반 명령어 세트를 디코딩할 수 있는 제2 프로세서와 인터페이스하는 제어기에 구현되는 장치. - 코드를 포함하는 컴퓨터 판독가능한 저장매체로서,
상기 코드는, 실행될 때, 적층된 프로토콜 스택의 물리 계층으로 하여금, 동작 모드 및 저속 모드를 포함하는 복수의 모드에서 동작하게 하고,
상기 물리 계층의 송신기는 상기 동작 모드에서 동작 속도로 송신하고, 상기 물리 계층의 수신기는 상기 동작 모드에서 상기 동작 속도로 수신하고,
상기 물리 계층의 송신기는 상기 저속 모드에서 상기 동작 속도로 각각의 송신된 비트의 정수배를 송신하고, 상기 수신기는 상기 저속 모드에서 수신된 비트를 결정하기 위해 상기 동작 속도에서 수신된 신호를 정수 복수회로 샘플링하는, 컴퓨터 판독가능한 저장매체. - 제28항에 있어서,
상기 코드는 또한, 실행될 때, 상기 물리 계층으로 하여금 기본 전원 켜기 중에 저속 모드에서 동작하게 하는 컴퓨터 판독가능한 저장매체. - 제28항에 있어서,
상기 코드는 또한, 실행될 때, 상기 물리 계층으로 하여금 상기 동작 모드와 상기 저속 모드 사이의 천이 시에 리셋하게 하는 컴퓨터 판독가능한 저장매체. - 장치로서,
물리 계층, 링크 계층, 및 프로토콜 계층을 구현하기 위한 모듈을 포함하고,
상기 프로토콜 계층은 캐시 일관성 트랜잭션들을 지원하도록 구성되고, 상기 물리 계층은 직렬 차동 상호접속에 결합되고 제1 모드에서 제1 속도로 데이터를 송신하고 제2 모드에서 제2 속도로 데이터를 송신하고, PLL 속도는 상기 제1 모드 및 상기 제2 모드에서 동일한 장치. - 제31항에 있어서,
상기 제1 속도는 동작 속도를 포함하고, 상기 제2 속도는 저속 속도를 포함하는 장치. - 제32항에 있어서,
상기 저속 속도는 동작 속도에 의해 에뮬레이트되는 장치. - 제33항에 있어서,
상기 저속 속도를 에뮬레이트하는 것은 저속 모드에서 비트를 시뮬레이트하기 위해 일련의 비트들을 동작 속도로 전송하는 것을 포함하는 장치. - 제31항에 있어서,
상기 물리 계층은 상기 제1 속도로부터 상기 제2 속도로 더 천이하는 장치. - 제35항에 있어서,
상기 천이는 적어도 부분적으로 소프트웨어 기반의 제어기의 요청에 기초하는 장치. - 삭제
- 삭제
- 장치로서,
캐시 일관성 트랜잭션들을 지원하고 복수의 프로세서를 포함하는 차동 점대점 상호접속 아키텍처에 결합되는 제어기를 포함하고,
상기 제어기는, 링크 상의 제2 디바이스에 접속되는 제1 디바이스의 동작 속도를 결정하고, 상기 제2 디바이스의 동작 속도를 결정하고, 상기 링크 상의 데이터의 전송 중에 상기 제1 디바이스 및 상기 제2 디바이스에 의해 적용되는 공통 저속 속도를 결정하는 장치. - 제39항에 있어서,
상기 공통 저속 속도는 상기 링크의 초기화 중에 결정되는 장치. - 제40항에 있어서,
상기 제1 디바이스의 동작 속도는 상기 제2 디바이스의 동작 속도와 상이하고, 상기 링크의 초기화는 공통 동작 속도를 결정하는 제어기를 더 포함하는 장치. - 제41항에 있어서,
상기 공통 동작 속도는 상기 제1 디바이스 및 상기 제2 디바이스의 동작 속도들 중 느린 쪽에 기초하는 장치. - 제39항에 있어서,
상기 공통 저속 속도를 결정하는 제어기는, 상기 공통 저속 속도를 구현하기 위해 상기 제1 디바이스의 동작 속도에 인가되는 제1 비율을 결정하고, 상기 공통 저속 속도를 구현하기 위해 상기 제2 디바이스의 동작 속도에 인가되는 제2 비율을 결정하는 제어기를 포함하는 장치. - 제39항에 있어서,
상기 공통 저속 속도는 상기 동작 속도들에 의해 에뮬레이트되는 장치. - 제44항에 있어서,
상기 저속 속도를 에뮬레이트하는 것은, 상기 공통 저속 속도에서 비트를 시뮬레이트하기 위해 일련의 비트들을 각각의 동작 속도로 전송하는 것을 포함하는 장치.
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/032690 WO2014065877A1 (en) | 2012-10-22 | 2013-03-15 | High performance interconnect physical layer |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147027189A Division KR101598746B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177009525A Division KR101772037B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150059721A KR20150059721A (ko) | 2015-06-02 |
KR101847943B1 true KR101847943B1 (ko) | 2018-04-11 |
Family
ID=50485278
Family Applications (27)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167034124A KR101831550B1 (ko) | 2012-10-22 | 2013-03-15 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
KR1020187004227A KR101861312B1 (ko) | 2012-10-22 | 2013-03-15 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
KR1020167035979A KR101815173B1 (ko) | 2012-10-22 | 2013-03-15 | 코히어런스 프로토콜 테이블 |
KR1020177018159A KR101985120B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020147027189A KR101598746B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
KR1020177001836A KR101828756B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020147033103A KR101847943B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
KR1020157007231A KR101696124B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020157007228A KR101686360B1 (ko) | 2012-10-22 | 2013-03-15 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
KR1020157007216A KR101700261B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020177000908A KR101815180B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020177018169A KR101905055B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020157007208A KR101691756B1 (ko) | 2012-10-22 | 2013-03-15 | 코히어런스 프로토콜 테이블 |
KR1020177009525A KR101772037B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
KR1020157007221A KR101686359B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020177000400A KR101754890B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020167034107A KR101755005B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020157007232A KR101700545B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020157010316A KR101681509B1 (ko) | 2012-10-22 | 2013-03-16 | 다중슬롯 링크층 플릿 |
KR1020167010386A KR101861452B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020157007226A KR101695340B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020177000322A KR101815178B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020147032656A KR101599852B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020187012101A KR101912074B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020147027297A KR101615908B1 (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 (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167034124A KR101831550B1 (ko) | 2012-10-22 | 2013-03-15 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
KR1020187004227A KR101861312B1 (ko) | 2012-10-22 | 2013-03-15 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
KR1020167035979A KR101815173B1 (ko) | 2012-10-22 | 2013-03-15 | 코히어런스 프로토콜 테이블 |
KR1020177018159A KR101985120B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020147027189A KR101598746B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
KR1020177001836A KR101828756B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
Family Applications After (20)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157007231A KR101696124B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020157007228A KR101686360B1 (ko) | 2012-10-22 | 2013-03-15 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
KR1020157007216A KR101700261B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020177000908A KR101815180B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020177018169A KR101905055B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020157007208A KR101691756B1 (ko) | 2012-10-22 | 2013-03-15 | 코히어런스 프로토콜 테이블 |
KR1020177009525A KR101772037B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 상호연결 물리 계층 |
KR1020157007221A KR101686359B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020177000400A KR101754890B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020167034107A KR101755005B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
KR1020157007232A KR101700545B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 코히어런스 프로토콜 |
KR1020157010316A KR101681509B1 (ko) | 2012-10-22 | 2013-03-16 | 다중슬롯 링크층 플릿 |
KR1020167010386A KR101861452B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020157007226A KR101695340B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020177000322A KR101815178B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020147032656A KR101599852B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020187012101A KR101912074B1 (ko) | 2012-10-22 | 2013-03-27 | 고성능 인터커넥트 물리 계층 |
KR1020147027297A KR101615908B1 (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 | 고성능 인터커넥트 링크 계층 |
Country Status (9)
Country | Link |
---|---|
US (20) | US9418035B2 (ko) |
EP (2) | EP2909728A4 (ko) |
JP (2) | JP6139689B2 (ko) |
KR (27) | KR101831550B1 (ko) |
CN (26) | CN104769570B (ko) |
BR (1) | BR112015006432A2 (ko) |
DE (14) | DE112013002069B4 (ko) |
RU (2) | RU2599971C2 (ko) |
WO (11) | WO2014065876A1 (ko) |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013105967A1 (en) * | 2012-01-13 | 2013-07-18 | Intel Corporation | Efficient peer-to-peer communication support in soc fabrics |
US8943255B2 (en) * | 2012-05-29 | 2015-01-27 | Lsi Corporation | Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices |
KR101831550B1 (ko) | 2012-10-22 | 2018-02-22 | 인텔 코포레이션 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
US9479196B2 (en) | 2012-10-22 | 2016-10-25 | Intel Corporation | High performance interconnect link layer |
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 |
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 |
US9306863B2 (en) * | 2013-12-06 | 2016-04-05 | Intel Corporation | Link transfer, bit error detection and link retry using flit bundles asynchronous to link fabric packets |
US9397792B2 (en) | 2013-12-06 | 2016-07-19 | Intel Corporation | Efficient link layer retry protocol utilizing implicit acknowledgements |
JP6221717B2 (ja) * | 2013-12-12 | 2017-11-01 | 富士通株式会社 | ストレージ装置、ストレージシステム及びデータ管理プログラム |
JP6461959B2 (ja) * | 2013-12-26 | 2019-01-30 | インテル コーポレイション | マルチチップパッケージリンク |
CN108052466B (zh) | 2013-12-26 | 2022-01-04 | 英特尔公司 | Pci快速增强 |
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 |
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 |
US9665505B2 (en) | 2014-11-14 | 2017-05-30 | Cavium, Inc. | Managing buffered communication between sockets |
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 |
US10282315B2 (en) | 2015-03-27 | 2019-05-07 | Cavium, Llc | Software assisted hardware configuration for software defined network system-on-chip |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
US9720838B2 (en) * | 2015-03-27 | 2017-08-01 | Intel Corporation | Shared buffered memory routing |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US9760515B2 (en) | 2015-04-06 | 2017-09-12 | Qualcomm Incorporated | Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY) |
US10417128B2 (en) | 2015-05-06 | 2019-09-17 | Oracle International Corporation | Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches |
US20160353357A1 (en) * | 2015-05-27 | 2016-12-01 | Qualcomm Incorporated | Methods and systems for multiplexed communication in dense wireless environments |
CN106664236B (zh) * | 2015-06-10 | 2019-11-12 | 华为技术有限公司 | 一种信号传输方法、控制器和信号传输系统 |
US9697145B2 (en) * | 2015-06-12 | 2017-07-04 | Apple Inc. | Memory interface system |
US10089275B2 (en) | 2015-06-22 | 2018-10-02 | Qualcomm Incorporated | Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system |
US20160371222A1 (en) * | 2015-06-22 | 2016-12-22 | Qualcomm Incorporated | COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER |
KR102485999B1 (ko) * | 2015-07-01 | 2023-01-06 | 삼성전자주식회사 | 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템 |
US9692589B2 (en) * | 2015-07-17 | 2017-06-27 | Intel Corporation | Redriver link testing |
KR20180036758A (ko) * | 2015-07-30 | 2018-04-09 | 발렌스 세미컨덕터 엘티디. | 고 대역폭 레인들의 원활한 추가 |
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 |
WO2017052662A1 (en) * | 2015-09-26 | 2017-03-30 | Intel Corporation | Stream identifier lane protection |
US10671476B2 (en) * | 2015-09-26 | 2020-06-02 | Intel Corporation | In-band margin probing on an operational interconnect |
DE112015006961T5 (de) * | 2015-09-26 | 2018-06-14 | Intel Corporation | Verbindungsfehlerdetektion in mehrfachchipgehäusen |
US9720439B2 (en) | 2015-09-26 | 2017-08-01 | Intel Corporation | Methods, apparatuses, and systems for deskewing link splits |
WO2017052663A1 (en) * | 2015-09-26 | 2017-03-30 | Intel Corporation | Valid lane training |
GB2543745B (en) * | 2015-10-15 | 2018-07-04 | Advanced Risc Mach Ltd | An apparatus and method for operating a virtually indexed physically tagged cache |
US10698847B2 (en) | 2016-03-01 | 2020-06-30 | Qorvo Us, Inc. | One wire bus to RFFE translation system |
US10128964B2 (en) | 2016-03-10 | 2018-11-13 | Qualcomm Incorporated | Multiphase preamble data sequences for receiver calibration and mode data signaling |
US9779028B1 (en) | 2016-04-01 | 2017-10-03 | Cavium, Inc. | Managing translation invalidation |
CN105933286B (zh) * | 2016-04-05 | 2019-08-02 | 浪潮电子信息产业股份有限公司 | 一种验证协议的方法及装置 |
RU2643620C2 (ru) * | 2016-05-11 | 2018-02-02 | федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") | Способ планирования задач предобработки данных Интернета Вещей для систем анализа |
US10713202B2 (en) * | 2016-05-25 | 2020-07-14 | Samsung Electronics Co., Ltd. | Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports |
US10503641B2 (en) * | 2016-05-31 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache coherence for processing in memory |
US11144691B2 (en) * | 2016-06-02 | 2021-10-12 | Siemens Industry Software Inc. | Virtual Ethernet mutable port group transactor |
TWI613547B (zh) * | 2016-06-16 | 2018-02-01 | 新漢股份有限公司 | 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法 |
US10103837B2 (en) * | 2016-06-23 | 2018-10-16 | Advanced Micro Devices, Inc. | Asynchronous feedback training |
US10484361B2 (en) * | 2016-06-30 | 2019-11-19 | Intel Corporation | Systems, methods, and apparatuses for implementing a virtual device observation and debug network for high speed serial IOS |
US10303605B2 (en) * | 2016-07-20 | 2019-05-28 | Intel Corporation | Increasing invalid to modified protocol occurrences in a computing system |
US10929059B2 (en) | 2016-07-26 | 2021-02-23 | MemRay Corporation | Resistance switching memory-based accelerator |
US10379904B2 (en) * | 2016-08-31 | 2019-08-13 | Intel Corporation | Controlling a performance state of a processor using a combination of package and thread hint information |
RU2016137176A (ru) * | 2016-09-16 | 2018-03-19 | Оракл Интернэйшнл Корпорейшн | Связывание преобразованного исходного кода с первоначальным исходным кодом с помощью метаданных |
US10255181B2 (en) * | 2016-09-19 | 2019-04-09 | Qualcomm Incorporated | Dynamic input/output coherency |
US10936045B2 (en) | 2016-09-26 | 2021-03-02 | Hewlett-Packard Development Company, L.P. | Update memory management information to boot an electronic device from a reduced power mode |
US10846258B2 (en) * | 2016-09-30 | 2020-11-24 | Intel Corporation | Voltage modulated control lane |
US10152446B2 (en) * | 2016-10-01 | 2018-12-11 | Intel Corporation | Link-physical layer interface adapter |
CN108121842B (zh) * | 2016-11-30 | 2021-04-27 | 深圳市中兴微电子技术有限公司 | 多处理器系统芯片的低功耗工作方式的验证方法和装置 |
CN106527576A (zh) * | 2016-12-01 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种pcie设备的时钟分离设计方法和系统 |
CN108170370B (zh) | 2016-12-07 | 2021-01-26 | 慧荣科技股份有限公司 | 数据储存装置与数据传输速率控制方法 |
TWI610179B (zh) * | 2016-12-07 | 2018-01-01 | 慧榮科技股份有限公司 | 主機裝置與資料傳輸速率控制方法 |
TWI633777B (zh) * | 2016-12-13 | 2018-08-21 | 威盛電子股份有限公司 | 傳輸介面晶片以及其測試方法 |
KR20180071598A (ko) | 2016-12-20 | 2018-06-28 | 주식회사 포스코 | 중장비 위치 추적 시스템 |
KR101946135B1 (ko) * | 2017-01-11 | 2019-02-08 | 울산과학기술원 | 비휘발성 메모리를 이용하는 데이터베이스 관리 시스템 및 방법 |
US11159636B2 (en) * | 2017-02-08 | 2021-10-26 | Arm Limited | Forwarding responses to snoop requests |
US11182315B2 (en) | 2017-02-10 | 2021-11-23 | Intel Corporation | Apparatuses, methods, and systems for hardware control of processor performance levels |
US10572434B2 (en) | 2017-02-27 | 2020-02-25 | International Business Machines Corporation | Intelligent certificate discovery in physical and virtualized networks |
US10784986B2 (en) | 2017-02-28 | 2020-09-22 | Intel Corporation | Forward error correction mechanism for peripheral component interconnect-express (PCI-e) |
CN107491407B (zh) * | 2017-07-03 | 2019-07-12 | 西安空间无线电技术研究所 | 基于fpga内serdes的自适应高速传输系统 |
US11030126B2 (en) * | 2017-07-14 | 2021-06-08 | Intel Corporation | Techniques for managing access to hardware accelerator memory |
US11249808B2 (en) * | 2017-08-22 | 2022-02-15 | Intel Corporation | Connecting accelerator resources using a switch |
CN107678854A (zh) * | 2017-08-31 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种解决计算机缓存一致性冲突的方法 |
US10474611B2 (en) | 2017-09-19 | 2019-11-12 | International Business Machines Corporation | Aligning received bad data indicators (BDIS) with received data on a cross-chip link |
CN107589698B (zh) * | 2017-09-20 | 2021-05-25 | 友达光电股份有限公司 | 应用于物联网中的感测装置及控制方法 |
US20190095273A1 (en) * | 2017-09-27 | 2019-03-28 | Qualcomm Incorporated | Parity bits location on i3c multilane bus |
US10963035B2 (en) * | 2017-10-11 | 2021-03-30 | Qualcomm Incorporated | Low power PCIe |
WO2019100238A1 (zh) * | 2017-11-22 | 2019-05-31 | 深圳市大疆创新科技有限公司 | 一种断链恢复的方法及飞行器 |
CN107894963B (zh) * | 2017-11-27 | 2021-07-27 | 上海兆芯集成电路有限公司 | 用于系统单芯片的通信控制器与通信方法 |
US10466911B2 (en) * | 2017-12-18 | 2019-11-05 | Western Digital Technologies, Inc. | Method using logical based addressing for latency reduction |
US10853212B2 (en) * | 2018-01-08 | 2020-12-01 | Intel Corporation | Cross-talk generation in a multi-lane link during lane testing |
EP3721565A4 (en) | 2018-01-10 | 2021-01-27 | Lumeova, Inc | METHOD, DEVICE AND SYSTEM FOR WIRELESS COMMUNICATION CHANNEL FSO |
US20190227971A1 (en) * | 2018-01-23 | 2019-07-25 | Qualcomm Incorporated | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus |
US20190294777A1 (en) * | 2018-03-26 | 2019-09-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Systems and methods for managing access to host computing devices by external devices |
US10534881B2 (en) * | 2018-04-10 | 2020-01-14 | Advanced Micro Devices, Inc. | Method of debugging a processor |
US20190042455A1 (en) * | 2018-05-04 | 2019-02-07 | Intel Corporation | Globally addressable memory for devices linked to hosts |
CN108563510B (zh) * | 2018-05-04 | 2021-07-13 | 湖南大学 | 面向e级计算的体系结构感知优化方法 |
US20190356412A1 (en) * | 2018-05-16 | 2019-11-21 | Qualcomm Incorporated | Fast termination of multilane double data rate transactions |
CN108762747B (zh) * | 2018-05-30 | 2022-02-18 | 郑州云海信息技术有限公司 | 数据处理方法以及计算机设备 |
WO2019237130A1 (en) * | 2018-06-04 | 2019-12-12 | Lightfleet Corporation | Routing and control protocol for high-performance interconnect fabrics |
CN110609866B (zh) * | 2018-06-15 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 用于协商事务的方法、设备和计算机程序产品 |
US10693589B2 (en) * | 2018-06-18 | 2020-06-23 | Huawei Technologies Co., Ltd. | Serdes with jitter injection self stress mechanism |
US11301160B2 (en) * | 2018-06-20 | 2022-04-12 | Genesys Telecommunications Laboratories, Inc. | System and method for a replication protocol in a real-time statistical engine |
CN109144943A (zh) * | 2018-06-26 | 2019-01-04 | 深圳市安信智控科技有限公司 | 基于高速串行通道互连的计算芯片与存储器芯片组合系统 |
GB2575294B8 (en) * | 2018-07-04 | 2022-07-20 | Graphcore Ltd | Host Proxy On Gateway |
US10841355B2 (en) * | 2018-07-13 | 2020-11-17 | Apple Inc. | Methods and apparatus for streaming media conversion with reduced buffering memories |
US10541841B1 (en) * | 2018-09-13 | 2020-01-21 | Advanced Micro Devices, Inc. | Hardware transmit equalization for high speed |
CN109558122B (zh) * | 2018-11-29 | 2022-08-19 | 湖南国科微电子股份有限公司 | 一种提升物理层兼容性的系统与方法 |
TWI706257B (zh) | 2018-12-13 | 2020-10-01 | 新唐科技股份有限公司 | 匯流排系統 |
US10761939B1 (en) * | 2018-12-13 | 2020-09-01 | Amazon Technologies, Inc. | Powering-down or rebooting a device in a system fabric |
US10771189B2 (en) * | 2018-12-18 | 2020-09-08 | Intel Corporation | Forward error correction mechanism for data transmission across multi-lane links |
KR102165860B1 (ko) | 2018-12-31 | 2020-10-14 | 성균관대학교산학협력단 | 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치 |
US10599601B1 (en) * | 2019-01-16 | 2020-03-24 | Qorvo Us, Inc. | Single-wire bus (SuBUS) slave circuit and related apparatus |
US11068400B2 (en) * | 2019-01-24 | 2021-07-20 | Vmware, Inc. | Failure-atomic logging for persistent memory systems with cache-coherent FPGAs |
US11099991B2 (en) | 2019-01-24 | 2021-08-24 | Vmware, Inc. | Programming interfaces for accurate dirty data tracking |
DE112020000640T5 (de) | 2019-01-31 | 2021-11-25 | Tektronix, Inc. | Systeme, Verfahren und Vorrichtungen für Hochgeschwindigkeits-Eingangs-/Ausgangs-Margin-Tests |
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 |
JP7282195B2 (ja) * | 2019-03-05 | 2023-05-26 | シーメンス インダストリー ソフトウェア インコーポレイテッド | 組み込みソフトウェアアプリケーションのための機械学習ベースの異常検出 |
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 |
RU2738955C1 (ru) * | 2019-11-27 | 2020-12-21 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) | Способ трёхкратного резервирования межсоединений |
US11740958B2 (en) | 2019-11-27 | 2023-08-29 | Intel Corporation | Multi-protocol support on common physical layer |
US10983942B1 (en) | 2019-12-11 | 2021-04-20 | Qorvo Us, Inc. | Multi-master hybrid bus apparatus |
US11132321B2 (en) * | 2020-02-26 | 2021-09-28 | Quanta Computer Inc. | Method and system for automatic bifurcation of PCIe in BIOS |
WO2021174223A1 (en) * | 2020-02-28 | 2021-09-02 | Riera Michael F | C2mpi: a hardware-agnostic message passing interface for heterogeneous computing systems |
US11115176B1 (en) * | 2020-03-04 | 2021-09-07 | Qualcomm Incorporated | System and method for adjusting clock-data timing in a multi-lane data communication link |
US11126585B1 (en) | 2020-03-09 | 2021-09-21 | Western Digital Technologies, Inc. | Data storage device with improved interface transmitter training |
US11886312B2 (en) | 2020-04-07 | 2024-01-30 | Intel Corporation | Characterizing error correlation based on error logging for computer buses |
CN111400232B (zh) * | 2020-04-10 | 2024-01-16 | 芯启源(上海)半导体科技有限公司 | 一种基于数据位宽展开的scramble与descramble硬件实现方法 |
US11288225B2 (en) | 2020-04-14 | 2022-03-29 | Western Digital Technologies, Inc. | Adapting transmitter training behavior based upon assumed identity of training partner |
US11309013B2 (en) | 2020-04-29 | 2022-04-19 | Samsung Electronics Co., Ltd. | Memory device for reducing resources used for training |
US11513981B2 (en) * | 2020-04-29 | 2022-11-29 | Dell Products L.P. | PCIe link management without sideband signals |
LU101767B1 (en) * | 2020-05-05 | 2021-11-05 | Microsoft Technology Licensing Llc | Recording a memory value trace for use with a separate cache coherency protocol trace |
US11586446B1 (en) * | 2020-05-20 | 2023-02-21 | Marvell Asia Pte Ltd | System and methods for hardware-based PCIe link up based on post silicon characterization |
US11263137B2 (en) * | 2020-05-27 | 2022-03-01 | Arm Limited | Core-to-core cache stashing and target discovery |
WO2021243340A1 (en) * | 2020-05-29 | 2021-12-02 | Netlist, Inc. | Computer memory expansion device and method of operation |
US20210013999A1 (en) * | 2020-06-04 | 2021-01-14 | Intel Corporation | Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses |
AU2021285889A1 (en) * | 2020-06-05 | 2023-02-09 | William David Schwaderer | Shapeshift data encryption methods and systems |
KR102254337B1 (ko) * | 2020-06-22 | 2021-05-21 | 한양대학교 산학협력단 | Dc-밸런싱을 고려한 pam4 5b3q 코딩 방법 및 장치 |
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 |
US11580044B2 (en) * | 2020-08-31 | 2023-02-14 | Micron Technology, Inc. | Network credit return mechanisms |
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 |
KR20230108337A (ko) | 2020-11-24 | 2023-07-18 | 텍트로닉스 인코포레이티드 | 고속 입력/출력 마진 테스팅을 위한 시스템, 방법 및 디바이스 |
US11489695B2 (en) | 2020-11-24 | 2022-11-01 | Qorvo Us, Inc. | Full-duplex communications over a single-wire bus |
CN112579479B (zh) * | 2020-12-07 | 2022-07-08 | 成都海光微电子技术有限公司 | 在维护缓存一致性时维护事务次序的处理器及其方法 |
US20220182098A1 (en) * | 2020-12-09 | 2022-06-09 | Texas Instruments Incorporated | Low power digital modes for duty-cycled integrated transceivers |
US11636037B2 (en) | 2020-12-21 | 2023-04-25 | Nxp Usa, Inc. | Methods and apparatuses involving radar system data paths |
CN112953556A (zh) * | 2021-02-05 | 2021-06-11 | 南京大学 | 基于斐波那契数列的抗串扰互联的编解码器及编码方法 |
CN112631989A (zh) * | 2021-03-08 | 2021-04-09 | 南京蓝洋智能科技有限公司 | 一种小芯片间、芯片间、小芯片与芯片间的数据传输方法 |
US11431649B1 (en) * | 2021-03-26 | 2022-08-30 | Arm Limited | Interconnect resource allocation |
CN113019479A (zh) * | 2021-03-31 | 2021-06-25 | 中国人民解放军空军军医大学 | 一种用于模拟井下工作环境的试验箱 |
IT202100008723A1 (it) | 2021-04-08 | 2022-10-08 | Phoenix ICT | Sistema per la gestione in sicurezza dei documenti digitali |
KR102668564B1 (ko) | 2021-06-01 | 2024-05-24 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
US11789658B2 (en) | 2021-04-13 | 2023-10-17 | SK Hynix Inc. | Peripheral component interconnect express (PCIe) interface system and method of operating the same |
US20220327074A1 (en) * | 2021-04-13 | 2022-10-13 | SK Hynix Inc. | PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME |
KR102518317B1 (ko) | 2021-04-13 | 2023-04-06 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
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实现下变频中单精度浮点数累积误差控制方法 |
US20220327084A1 (en) * | 2021-12-30 | 2022-10-13 | Intel Corporation | Die-to-die interconnect protocol layer |
US20220342840A1 (en) * | 2021-12-30 | 2022-10-27 | Intel Corporation | Die-to-die interconnect |
US11907132B2 (en) | 2022-03-23 | 2024-02-20 | International Business Machines Corporation | Final cache directory state indication |
US11726660B1 (en) * | 2022-04-15 | 2023-08-15 | Dell Products L.P. | Techniques for flexible physical drive expansion using a loop back connection |
US12038853B2 (en) | 2022-04-22 | 2024-07-16 | Western Digital Technologies, Inc. | Reducing link up time in PCIe systems |
CN114942814B (zh) * | 2022-06-01 | 2023-07-11 | 咪咕视讯科技有限公司 | 页面组件的聚焦方法、系统、终端设备及介质 |
US11880686B2 (en) * | 2022-06-16 | 2024-01-23 | Ampere Computing Llc | Devices transferring cache lines, including metadata on external links |
CN115099356A (zh) * | 2022-07-11 | 2022-09-23 | 大连理工大学 | 工业不平衡数据分类方法、装置、电子设备及存储介质 |
CN115238619B (zh) * | 2022-09-20 | 2023-06-27 | 北京数字光芯集成电路设计有限公司 | 数字芯片的子模块后仿真方法和系统 |
US11914473B1 (en) * | 2022-10-20 | 2024-02-27 | Micron Technology, Inc. | Data recovery using ordered data requests |
Family Cites Families (271)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4191941A (en) | 1978-04-03 | 1980-03-04 | Rca Corporation | Switch matrix for data transfers |
US4716523A (en) | 1985-06-14 | 1987-12-29 | International Business Machines Corporation | Multiple port integrated DMA and interrupt controller and arbitrator |
US5537640A (en) * | 1988-12-30 | 1996-07-16 | Intel Corporation | Asynchronous modular bus architecture with cache consistency |
NZ232224A (en) * | 1989-01-27 | 1993-03-26 | British Telecomm | Alternate burst communication for cordless phones: bursts contain synchronisation information |
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 |
EP0552288A1 (en) * | 1990-10-03 | 1993-07-28 | 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 |
EP0735487B1 (en) * | 1995-03-31 | 2001-10-31 | Sun Microsystems, Inc. | A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system |
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 |
AU5158800A (en) | 1999-05-28 | 2000-12-18 | Basic Resources, Inc. | Wireless transceiver network employing node-to-node data messaging |
US6487621B1 (en) * | 1999-08-17 | 2002-11-26 | Compaq Information Technologies Group, L.P. | Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle |
KR100566289B1 (ko) * | 1999-09-03 | 2006-03-30 | 삼성전자주식회사 | 데이타 링크 맵을 이용한 브이5.2 계층 2의 비활성화 제어 방법 및 장치 |
US7010607B1 (en) * | 1999-09-15 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Method for training a communication link between ports to correct for errors |
US6754185B1 (en) * | 1999-09-27 | 2004-06-22 | Koninklijke Philips Electronics N.V. | Multi link layer to single physical layer interface in a node of a data communication system |
US6674720B1 (en) * | 1999-09-29 | 2004-01-06 | Silicon Graphics, Inc. | Age-based network arbitration system and method |
US6751698B1 (en) * | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
US6763034B1 (en) * | 1999-10-01 | 2004-07-13 | Stmicroelectronics, Ltd. | Connection ports for interconnecting modules in an integrated circuit |
US6320406B1 (en) | 1999-10-04 | 2001-11-20 | Texas Instruments Incorporated | Methods and apparatus for a terminated fail-safe circuit |
US6665832B1 (en) * | 2000-03-31 | 2003-12-16 | Qualcomm, Incorporated | Slotted mode decoder state metric initialization |
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 |
US7236490B2 (en) * | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7596139B2 (en) * | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
EP1211837A1 (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 |
TWI381686B (zh) * | 2003-11-12 | 2013-01-01 | Qualcomm Inc | 具有改良的鏈路控制之高資料速率介面 |
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 |
US7177987B2 (en) * | 2004-01-20 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for responses between different cache coherency protocols |
US7620696B2 (en) * | 2004-01-20 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | System and method for conflict responses in a cache coherency protocol |
US20050172091A1 (en) * | 2004-01-29 | 2005-08-04 | Rotithor Hemant G. | Method and an apparatus for interleaving read data return in a packetized interconnect to memory |
US7210000B2 (en) * | 2004-04-27 | 2007-04-24 | Intel Corporation | Transmitting peer-to-peer transactions through a coherent interface |
US20050262250A1 (en) * | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
US7716409B2 (en) * | 2004-04-27 | 2010-05-11 | Intel Corporation | Globally unique transaction identifiers |
US20050240734A1 (en) * | 2004-04-27 | 2005-10-27 | Batson Brannon J | Cache coherence protocol |
CN1951045B (zh) * | 2004-04-30 | 2011-04-20 | 夏普株式会社 | 无线通信系统 |
CN1700639A (zh) * | 2004-05-21 | 2005-11-23 | 华为技术有限公司 | 导出和导入无线局域网鉴别与保密基础结构证书信息方法 |
US7313712B2 (en) * | 2004-05-21 | 2007-12-25 | Intel Corporation | Link power saving state |
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 |
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 |
US20060041696A1 (en) | 2004-05-21 | 2006-02-23 | Naveen Cherukuri | Methods and apparatuses for the physical layer initialization of a link-based system interconnect |
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 |
WO2006109207A1 (en) * | 2005-04-13 | 2006-10-19 | 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 |
US7506108B2 (en) * | 2006-06-30 | 2009-03-17 | Intel Corporation | Requester-generated forward for late conflicts in a cache coherency protocol |
US7721050B2 (en) * | 2006-06-30 | 2010-05-18 | Intel Corporation | Re-snoop for conflict resolution in a cache coherency protocol |
US7536515B2 (en) * | 2006-06-30 | 2009-05-19 | Intel Corporation | Repeated conflict acknowledgements in a cache coherency protocol |
WO2008018004A2 (en) * | 2006-08-08 | 2008-02-14 | Koninklijke Philips Electronics N.V. | Electronic device and method for synchronizing a communication |
US7843834B2 (en) * | 2006-09-15 | 2010-11-30 | Itron, Inc. | Use of minimal propagation delay path to optimize a mesh network |
US7600080B1 (en) * | 2006-09-22 | 2009-10-06 | Intel Corporation | Avoiding deadlocks in a multiprocessor system |
GB2443465A (en) * | 2006-11-06 | 2008-05-07 | Fujitsu Ltd | Communication systems |
WO2008070813A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a front-end, distributed raid |
KR101514630B1 (ko) * | 2007-01-15 | 2015-04-23 | 코닌클리케 필립스 엔.브이. | Ofdm 시스템을 위해 첨두 전력 대 평균 전력 비율(papr)이 낮은 2진수 프리엠블 시퀀스를 생성하는 방법 |
DE102007007136B3 (de) | 2007-02-09 | 2008-08-28 | Siemens Ag | Radelektronik und Verfahren zum Betreiben einer Radelektronik |
US8428175B2 (en) * | 2007-03-09 | 2013-04-23 | Qualcomm Incorporated | Quadrature modulation rotating training sequence |
US7978635B2 (en) | 2007-03-21 | 2011-07-12 | Qualcomm Incorporated | H-ARQ acknowledgment detection validation by re-decoding |
DE602007001576D1 (de) * | 2007-03-22 | 2009-08-27 | Research In Motion Ltd | Vorrichtung und Verfahren zur verbesserten Maskierung von Rahmenverlusten |
CA2687064C (en) * | 2007-05-08 | 2012-12-04 | Interdigital Technology Corporation | Method and apparatus for providing piggybacked positive acknowledgement/negative acknowledgement field indicator and a polling indicator |
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 |
EP2248230B1 (en) | 2008-02-29 | 2014-04-16 | Hewlett-Packard Development Company, L.P. | Modular system and retractable assembly for electronic devices |
DE102008012979A1 (de) * | 2008-03-06 | 2009-09-10 | Gip Ag | Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken |
US7492807B1 (en) | 2008-04-07 | 2009-02-17 | International Business Machines Corporation | Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods |
US9037768B2 (en) * | 2008-04-28 | 2015-05-19 | Hewlett-Packard Development Company, L.P. | Virtual-interrupt-mode interface and method for virtualizing an interrupt mode |
US8762652B2 (en) * | 2008-04-30 | 2014-06-24 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
CN101599811B (zh) * | 2008-06-02 | 2011-04-06 | 华为技术有限公司 | 一种数据处理装置,通信设备以及数据处理方法 |
US7769048B2 (en) | 2008-06-25 | 2010-08-03 | Intel Corporation | Link and lane level packetization scheme of encoding in serial links |
US8201069B2 (en) * | 2008-07-01 | 2012-06-12 | International Business Machines Corporation | Cyclical redundancy code for use in a high-speed serial link |
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 | 浙江大学 | 基于无速率码的认知无线电通信链路的建立和维护方法 |
EP2327209A4 (en) * | 2008-09-08 | 2014-12-31 | Samsung Electronics Co Ltd | SUB-CHANNEL ACQUISITION IN A DIGITAL TELEVISION RECEIVER DESIGNED TO RECEIVE MOBILE / PORTABLE SIGNALS |
EP2338313B1 (en) * | 2008-09-10 | 2018-12-12 | NextNav, LLC | Wide area positioning system |
US8917209B2 (en) * | 2009-09-10 | 2014-12-23 | Nextnav, Llc | Coding in a wide area positioning system (WAPS) |
US8265071B2 (en) * | 2008-09-11 | 2012-09-11 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
CN101430664B (zh) * | 2008-09-12 | 2010-07-28 | 中国科学院计算技术研究所 | 一种多处理器系统及Cache一致性消息传输方法 |
EP2173066B1 (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 |
WO2010096122A1 (en) * | 2008-10-29 | 2010-08-26 | Adapteva Incorporated | Mesh network |
KR100988809B1 (ko) * | 2008-11-06 | 2010-10-20 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 출력인에이블 신호 생성 방법 |
US8706479B2 (en) * | 2008-11-14 | 2014-04-22 | Broadcom Corporation | Packet loss concealment for sub-band codecs |
CN101437033B (zh) * | 2008-12-16 | 2012-07-11 | 杭州华三通信技术有限公司 | 一种支持可变速率的方法和网络设备 |
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 |
KR101598094B1 (ko) * | 2009-02-02 | 2016-02-26 | 엘지전자 주식회사 | 송/수신 시스템 및 데이터 처리 방법 |
KR20100092353A (ko) * | 2009-02-12 | 2010-08-20 | 엘지전자 주식회사 | 트래픽 암호화 키 관리방법 및 장치 |
KR101133256B1 (ko) | 2009-02-27 | 2012-04-09 | 한국과학기술원 | 시그니처 정보를 이용한 물리계층에서의 타임스탬프 처리장치 및 그 방법 |
WO2010096969A1 (zh) * | 2009-02-27 | 2010-09-02 | 华为技术有限公司 | 无源光网络中发送上行传送帧的方法及设备 |
US20100228922A1 (en) | 2009-03-09 | 2010-09-09 | Deepak Limaye | Method and system to perform background evictions of cache memory lines |
US8401400B2 (en) * | 2009-03-10 | 2013-03-19 | Tyco Electronics Subsea Communications Llc | Detection of data in signals with data pattern dependent signal distortion |
CN101854331A (zh) * | 2009-04-02 | 2010-10-06 | 天际微芯(北京)科技有限公司 | 训练序列结构及训练方法 |
US8335911B2 (en) * | 2009-05-21 | 2012-12-18 | Oracle America, Inc. | Dynamic allocation of resources in a threaded, heterogeneous processor |
US9690625B2 (en) * | 2009-06-16 | 2017-06-27 | Oracle America, Inc. | System and method for out-of-order resource allocation and deallocation in a threaded machine |
US8199759B2 (en) | 2009-05-29 | 2012-06-12 | Intel Corporation | Method and apparatus for enabling ID based streams over PCI express |
CN101561794B (zh) * | 2009-06-05 | 2012-07-04 | 威盛电子股份有限公司 | 通用串行总线装置 |
US8239704B2 (en) * | 2009-06-12 | 2012-08-07 | Cray Inc. | Global clock via embedded spanning tree |
WO2010147264A1 (en) * | 2009-06-16 | 2010-12-23 | Lg Electronics Inc. | Method of exchanging messages and transmitting and receiving devices |
US8782347B2 (en) * | 2009-06-26 | 2014-07-15 | Intel Corporation | Controllably exiting an unknown state of a cache coherency directory |
US20100332877A1 (en) | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
US8831666B2 (en) * | 2009-06-30 | 2014-09-09 | Intel Corporation | Link power savings with state retention |
CN101695193A (zh) * | 2009-09-27 | 2010-04-14 | 上海华为技术有限公司 | 一种下行数据发送和下行数据接收的方法和装置 |
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 |
US9104793B2 (en) * | 2010-09-24 | 2015-08-11 | Intel Corporation | Method and system of adapting communication links to link conditions on a platform |
US8751714B2 (en) * | 2010-09-24 | 2014-06-10 | Intel Corporation | Implementing quickpath interconnect protocol over a PCIe interface |
US9146610B2 (en) | 2010-09-25 | 2015-09-29 | Intel Corporation | Throttling integrated link |
US8805196B2 (en) * | 2010-09-30 | 2014-08-12 | Teradyne, Inc. | Electro-optical communications link |
JP5597104B2 (ja) * | 2010-11-16 | 2014-10-01 | キヤノン株式会社 | データ転送装置及びその制御方法 |
CN102142987B (zh) * | 2010-12-09 | 2014-01-08 | 浪潮(北京)电子信息产业有限公司 | 一种高速串行总线设备及其传输数据的方法 |
JP2012146041A (ja) * | 2011-01-11 | 2012-08-02 | Hitachi Ltd | 計算機装置及び信号伝送方法 |
JP2012155650A (ja) * | 2011-01-28 | 2012-08-16 | Toshiba Corp | ルータ及びメニーコアシステム |
EP2482196B1 (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 |
US9442879B2 (en) * | 2011-12-07 | 2016-09-13 | Intel Corporation | Multiple transaction data flow control unit for high-speed interconnect |
CN102571571A (zh) * | 2011-12-28 | 2012-07-11 | 南京邮电大学 | 一种应用于时延容忍网络的多层次有效路由方法 |
CN103188059A (zh) | 2011-12-28 | 2013-07-03 | 华为技术有限公司 | 快速通道互联系统中数据包重传方法、装置和系统 |
CN102594745B (zh) * | 2011-12-29 | 2015-02-04 | 东南大学 | 单载波频域均衡系统中的同步方法及其实现电路 |
US8892269B2 (en) | 2012-03-30 | 2014-11-18 | Intel Corporation | Power down and quick start of thermal sensor |
CN102685128B (zh) * | 2012-05-09 | 2015-09-30 | 东南大学 | 一种基于状态机的协议构造方法 |
US9875204B2 (en) | 2012-05-18 | 2018-01-23 | Dell Products, Lp | System and method for providing a processing node with input/output functionality provided by an I/O complex switch |
US8856573B2 (en) * | 2012-06-27 | 2014-10-07 | Intel Corporation | Setting a number (N) of fast training sequences (FTS) automatically to an optimal value |
US9280504B2 (en) | 2012-08-24 | 2016-03-08 | Intel Corporation | Methods and apparatus for sharing a network interface controller |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US8935578B2 (en) | 2012-09-29 | 2015-01-13 | Intel Corporation | Method and apparatus for optimizing power and latency on a link |
US8996757B2 (en) * | 2012-09-29 | 2015-03-31 | Intel Corporation | Method and apparatus to generate platform correctable TX-RX |
US9003091B2 (en) | 2012-10-18 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Flow control for a Serial Peripheral Interface bus |
KR101831550B1 (ko) | 2012-10-22 | 2018-02-22 | 인텔 코포레이션 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
US9280507B2 (en) * | 2012-10-22 | 2016-03-08 | Intel Corporation | High performance interconnect physical layer |
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 |
RU2633126C2 (ru) | 2013-02-28 | 2017-10-11 | Интел Корпорейшн | Усиление механизма перечисления и/или конфигурации одного протокола межсоединений для другого протокола межсоединений |
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 |
-
2013
- 2013-03-15 KR KR1020167034124A patent/KR101831550B1/ko active Application Filing
- 2013-03-15 KR KR1020187004227A patent/KR101861312B1/ko active IP Right Grant
- 2013-03-15 KR KR1020167035979A patent/KR101815173B1/ko active IP Right Grant
- 2013-03-15 DE DE112013002069.6T patent/DE112013002069B4/de active Active
- 2013-03-15 CN CN201380049212.2A patent/CN104769570B/zh active Active
- 2013-03-15 DE DE112013004094.8T patent/DE112013004094B4/de active Active
- 2013-03-15 US US13/976,960 patent/US9418035B2/en active Active
- 2013-03-15 CN CN201380016955.XA patent/CN104380269B/zh active Active
- 2013-03-15 WO PCT/US2013/032670 patent/WO2014065876A1/en active Application Filing
- 2013-03-15 KR KR1020177018159A patent/KR101985120B1/ko active IP Right Grant
- 2013-03-15 CN CN201380049199.0A patent/CN104969207A/zh active Pending
- 2013-03-15 CN CN201380049066.3A patent/CN104737147B/zh active Active
- 2013-03-15 CN CN201410582176.2A patent/CN104391816B/zh active Active
- 2013-03-15 KR KR1020147027189A patent/KR101598746B1/ko active IP Right Grant
- 2013-03-15 JP JP2015537687A patent/JP6139689B2/ja active Active
- 2013-03-15 DE DE112013003723.8T patent/DE112013003723B4/de active Active
- 2013-03-15 CN CN202010633738.7A patent/CN111737167B/zh active Active
- 2013-03-15 CN CN201380016998.8A patent/CN104335196B/zh active Active
- 2013-03-15 WO PCT/US2013/032690 patent/WO2014065877A1/en active Application Filing
- 2013-03-15 WO PCT/US2013/032699 patent/WO2014065878A1/en active Application Filing
- 2013-03-15 KR KR1020177001836A patent/KR101828756B1/ko active IP Right Grant
- 2013-03-15 KR KR1020147033103A patent/KR101847943B1/ko active IP Right Grant
- 2013-03-15 KR KR1020157007231A patent/KR101696124B1/ko active IP Right Grant
- 2013-03-15 CN CN201710038234.9A patent/CN106815151B/zh active Active
- 2013-03-15 CN CN201711159546.1A patent/CN108228495B/zh active Active
- 2013-03-15 WO PCT/US2013/032709 patent/WO2014065880A1/en active Application Filing
- 2013-03-15 CN CN201710043763.8A patent/CN107045479B/zh active Active
- 2013-03-15 US US13/976,954 patent/US20140201463A1/en not_active Abandoned
- 2013-03-15 KR KR1020157007228A patent/KR101686360B1/ko active IP Right Grant
- 2013-03-15 WO PCT/US2013/032708 patent/WO2014065879A1/en active Application Filing
- 2013-03-15 DE DE112013005093.5T patent/DE112013005093T5/de active Pending
- 2013-03-15 CN CN201380049203.3A patent/CN104969206B/zh active Active
- 2013-03-15 KR KR1020157007216A patent/KR101700261B1/ko active IP Right Grant
- 2013-03-15 KR KR1020177000908A patent/KR101815180B1/ko active IP Right Grant
- 2013-03-15 KR KR1020177018169A patent/KR101905055B1/ko active IP Right Grant
- 2013-03-15 CN CN201810011011.8A patent/CN108055214B/zh active Active
- 2013-03-15 CN CN201380049062.5A patent/CN104756097B/zh active Active
- 2013-03-15 KR KR1020157007208A patent/KR101691756B1/ko active IP Right Grant
- 2013-03-15 WO PCT/US2013/032651 patent/WO2014065875A1/en active Application Filing
- 2013-03-15 WO PCT/US2013/032601 patent/WO2014065873A1/en active Application Filing
- 2013-03-15 US US13/976,971 patent/US9378171B2/en active Active
- 2013-03-15 BR BR112015006432A patent/BR112015006432A2/pt not_active IP Right Cessation
- 2013-03-15 KR KR1020177009525A patent/KR101772037B1/ko active IP Right Grant
- 2013-03-15 KR KR1020157007221A patent/KR101686359B1/ko active IP Right Grant
- 2013-03-15 CN CN201710093224.5A patent/CN107015924B/zh active Active
- 2013-03-15 CN CN201810337297.9A patent/CN108614783B/zh active Active
- 2013-03-15 DE DE112013004105.7T patent/DE112013004105T5/de active Pending
- 2013-03-15 CN CN201710043551.XA patent/CN106681938B/zh active Active
- 2013-03-15 KR KR1020177000400A patent/KR101754890B1/ko active IP Right Grant
- 2013-03-15 DE DE112013007751.5T patent/DE112013007751B3/de active Active
- 2013-03-15 DE DE112013005090.0T patent/DE112013005090T5/de active Pending
- 2013-03-15 DE DE112013005086.2T patent/DE112013005086T5/de active Pending
- 2013-03-15 KR KR1020167034107A patent/KR101755005B1/ko active IP Right Grant
- 2013-03-15 KR KR1020157007232A patent/KR101700545B1/ko active IP Right Grant
- 2013-03-15 CN CN201710038141.6A patent/CN106776364B/zh active Active
- 2013-03-16 KR KR1020157010316A patent/KR101681509B1/ko active IP Right Grant
- 2013-03-16 WO PCT/US2013/032718 patent/WO2014065881A1/en active Application Filing
- 2013-03-16 EP EP13848818.4A patent/EP2909728A4/en not_active Withdrawn
- 2013-03-16 US US14/437,612 patent/US9753885B2/en active Active
- 2013-03-16 EP EP18185062.9A patent/EP3410304B1/en active Active
- 2013-03-16 CN CN201380055335.7A patent/CN104737142B/zh active Active
- 2013-03-27 DE DE201311002880 patent/DE112013002880T5/de active Pending
- 2013-03-27 CN CN201380017285.3A patent/CN104487958B/zh active Active
- 2013-03-27 KR KR1020167010386A patent/KR101861452B1/ko active IP Right Grant
- 2013-03-27 KR KR1020157007226A patent/KR101695340B1/ko active IP Right Grant
- 2013-03-27 CN CN201380049075.2A patent/CN104995614B/zh active Active
- 2013-03-27 DE DE112013005104.4T patent/DE112013005104T5/de active Pending
- 2013-03-27 DE DE112013002090.4T patent/DE112013002090T5/de active Pending
- 2013-03-27 KR KR1020177000322A patent/KR101815178B1/ko active IP Right Grant
- 2013-03-27 RU RU2014145179/08A patent/RU2599971C2/ru active
- 2013-03-27 DE DE112013007752.3T patent/DE112013007752B3/de active Active
- 2013-03-27 KR KR1020147032656A patent/KR101599852B1/ko active IP Right Grant
- 2013-03-27 CN CN201710067578.2A patent/CN107102960B/zh active Active
- 2013-03-27 KR KR1020187012101A patent/KR101912074B1/ko active IP Right Grant
- 2013-03-27 RU RU2014138917/08A patent/RU2579140C1/ru active
- 2013-03-27 KR KR1020147027297A patent/KR101615908B1/ko active IP Right Grant
- 2013-03-27 WO PCT/US2013/034188 patent/WO2014065883A1/en active Application Filing
- 2013-03-27 CN CN201710243776.XA patent/CN107092565B/zh active Active
- 2013-03-27 CN CN201410751146.XA patent/CN104536933B/zh active Active
- 2013-03-27 CN CN201810095156.0A patent/CN108132892B/zh active Active
- 2013-03-27 WO PCT/US2013/034153 patent/WO2014065882A1/en active Application Filing
- 2013-03-28 DE DE112013007767.1T patent/DE112013007767B3/de active Active
- 2013-03-28 DE DE112013001360.6T patent/DE112013001360B4/de active Active
- 2013-03-28 CN CN201380016778.5A patent/CN104303166B/zh active Active
- 2013-03-28 CN CN201711267378.8A patent/CN107968756B/zh active Active
- 2013-03-28 KR KR1020167019481A patent/KR101689998B1/ko active IP Right Grant
- 2013-03-28 KR KR1020157007215A patent/KR101642086B1/ko active IP Right Grant
- 2013-03-28 WO PCT/US2013/034341 patent/WO2014065884A1/en active Application Filing
- 2013-10-22 US US14/060,191 patent/US9626321B2/en active Active
-
2014
- 2014-11-12 US US14/538,897 patent/US20150067207A1/en not_active Abandoned
- 2014-11-26 US US14/554,532 patent/US20150081984A1/en not_active Abandoned
-
2016
- 2016-06-27 US US15/193,697 patent/US9892086B2/en active Active
- 2016-08-15 US US15/237,291 patent/US9916266B2/en active Active
- 2016-12-28 US US15/393,153 patent/US10248591B2/en active Active
- 2016-12-29 US US15/393,577 patent/US20170109286A1/en not_active Abandoned
-
2017
- 2017-04-27 JP JP2017088878A patent/JP6423040B2/ja active Active
- 2017-08-31 US US15/692,613 patent/US10204064B2/en active Active
- 2017-11-22 US US15/821,401 patent/US10216661B2/en active Active
-
2018
- 2018-03-12 US US15/918,895 patent/US10380046B2/en active Active
-
2019
- 2019-02-25 US US16/285,035 patent/US20190391939A1/en not_active Abandoned
- 2019-07-29 US US16/525,454 patent/US10909055B2/en active Active
-
2020
- 2020-07-23 US US16/937,499 patent/US11269793B2/en active Active
- 2020-12-25 US US17/134,242 patent/US11741030B2/en active Active
-
2021
- 2021-12-20 US US17/556,853 patent/US20220114122A1/en active Pending
-
2023
- 2023-07-05 US US18/347,236 patent/US20240012772A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10909055B2 (en) | High performance interconnect physical layer | |
US11080212B2 (en) | High performance interconnect physical layer | |
US9600431B2 (en) | High performance interconnect physical layer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
A107 | Divisional application of patent | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |