KR20170081730A - 고성능 인터커넥트 물리 계층 - Google Patents
고성능 인터커넥트 물리 계층 Download PDFInfo
- Publication number
- KR20170081730A KR20170081730A KR1020177018169A KR20177018169A KR20170081730A KR 20170081730 A KR20170081730 A KR 20170081730A KR 1020177018169 A KR1020177018169 A KR 1020177018169A KR 20177018169 A KR20177018169 A KR 20177018169A KR 20170081730 A KR20170081730 A KR 20170081730A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- loopback
- state
- pattern
- link
- 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/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
데이터 링크는 링크의 초기화 동안 적응된다. 링크의 적응은, 원격 에이전트로부터 의사난수 이진 시퀀스(PRBS)를 수신하는 것, 데이터 링크의 특성을 식별하도록 PRBS를 분석하는 것, 및 특성을 기술하는 메트릭 데이터를 생성하는 것을 포함한다.
Description
본 발명은 일반적으로 컴퓨터 개발 분야에 관한 것이며, 보다 구체적으로는 상호-종속된 한정된 시스템들의 협력을 수반하는 소프트웨어 개발에 관한 것이다.
반도체 프로세싱 및 로직 설계에서의 진보는 집적 회로 디바이스들 상에 존재할 수 있는 로직의 양의 증가를 허용하였다. 이로써, 컴퓨터 시스템 구성들은 시스템 내의 단일 또는 다수의 집적 회로들로부터 개별 집적 회로들 상에 존재하는 다수의 코어들, 다수의 하드웨어 스레드들 및 다수의 논리적 프로세서들 및 이러한 프로세서들 내에 집적된 다른 인터페이스들까지 진화하였다. 프로세서 또는 집적 회로는 통상적으로 단일 물리적 프로세서 다이를 포함하며, 이 프로세서 다이는 임의의 개수의 코어들, 하드웨어 스레드들, 논리적 프로세서들, 인터페이스들, 메모리, 제어기 허브들, 등을 포함할 수 있다.
보다 작은 패키지들 내에 보다 많은 프로세싱 전력들을 맞출 수 있는 보다 큰 능력으로 인해서, 보다 작은 컴퓨팅 디바이스의 인기가 증가하였다. 스마트폰, 태블릿, 아주 얇은 노트북, 및 다른 사용자 장비가 기하급수적으로 증가하였다. 그러나, 이러한 소형 디바이스들은 폼 팩터(form factor)를 초과하는 데이터 저장 및 복잡한 프로세싱 모두를 서버들에 의존한다. 결과적으로, 고성능 컴퓨팅 시장(즉, 서버 공간)에서의 수요가 또한 증가하였다. 예를 들어, 현대의 서버들에는, 다수의 코어들을 갖는 단일 프로세서만이 존재할 뿐만 아니라, 다수의 물리적 프로세서들(또한, 다수의 소켓들로 지칭됨)이 존재하며 이로써 컴퓨팅 능력을 증가시킨다. 그러나, 프로세싱 능력이 컴퓨팅 시스템에서 디바이스들의 개수와 함께 증가함에 따라, 소켓들과 다른 디바이스들 간의 통신도 매우 중요하게 되고 있다.
실제로, 인터커넥트(interconnect)들은 전기적 통신들을 주로 다루었던 보다 전통적인 멀티-드랍 버스들로부터 고속 통신을 가능하게 하는 성숙 단계의 인터커넥트 아키텍처들까지 성장하였다. 공교롭게도, 차세대 프로세서들에 대한 요구가 매우 높은-정도로 이루어짐에 따라서, 기존의 인터커넥트 아키텍처들의 역량에 대해서 상응하는 요구가 이루어지고 있다.
도 1은 일 실시예에 따라 컴퓨터 시스템 내 I/O 디바이스들을 접속시키는 직렬 점 대 점 인터커넥트를 포함하는 시스템의 간략화된 블록도를 도시한다.
도 2는 일 실시예에 따라 계층화된 프로토콜 스택의 간략화된 블록도를 도시한다.
도 3은 트랜잭션 디스크립터에 관한 일 실시예를 도시한다.
도 4는 직렬 점 대 점 링크의 일 실시예를 도시한다.
도 5는 점재적 고성능 인터커넥트(HPI) 시스템 구성들의 실시예들을 도시한다.
도 6은 HPI와 연관된 계층화된 프로토콜 스택의 일 실시예를 도시한다.
도 7은 예시의 상태 머신의 표현을 도시한다.
도 8은 예시의 제어 수퍼시퀀스들을 포시한다.
도 9는 부분 폭 상태로의 예시의 천이에 관한 흐름도를 도시한다.
도 10은 예시의 패턴 생성기의 개략도를 도시한다.
도 11은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예를 도시한다.
도 12는 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 도시한다.
도 13은 프로세서에 대한 블록도의 일 실시예를 도시한다.
도 14는 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 도시한다.
도 15는 복수의 프로세서 소켓들을 포함하는 컴퓨팅 시스템에 대한 블록의 일 실시예를 도시한다.
도 16은 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 도시한다.
다양한 도면들에서 유사한 참조 부호들 및 지정사항들은 유사한 요소들을 표시한다.
도 2는 일 실시예에 따라 계층화된 프로토콜 스택의 간략화된 블록도를 도시한다.
도 3은 트랜잭션 디스크립터에 관한 일 실시예를 도시한다.
도 4는 직렬 점 대 점 링크의 일 실시예를 도시한다.
도 5는 점재적 고성능 인터커넥트(HPI) 시스템 구성들의 실시예들을 도시한다.
도 6은 HPI와 연관된 계층화된 프로토콜 스택의 일 실시예를 도시한다.
도 7은 예시의 상태 머신의 표현을 도시한다.
도 8은 예시의 제어 수퍼시퀀스들을 포시한다.
도 9는 부분 폭 상태로의 예시의 천이에 관한 흐름도를 도시한다.
도 10은 예시의 패턴 생성기의 개략도를 도시한다.
도 11은 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 일 실시예를 도시한다.
도 12는 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 도시한다.
도 13은 프로세서에 대한 블록도의 일 실시예를 도시한다.
도 14는 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 도시한다.
도 15는 복수의 프로세서 소켓들을 포함하는 컴퓨팅 시스템에 대한 블록의 일 실시예를 도시한다.
도 16은 컴퓨팅 시스템에 대한 블록도의 다른 실시예를 도시한다.
다양한 도면들에서 유사한 참조 부호들 및 지정사항들은 유사한 요소들을 표시한다.
다음의 설명에서, 특정 타입의 프로세서들 및 시스템 구성들, 특정 하드웨어 구조들, 특정 아키텍처 및 마이크로 아키텍처 세부사항들, 특정 레지스터 구성들, 특정 인스트럭션 타입들, 특정 시스템 컴포넌트들, 특정 프로세서 파이프라인 스테이지들, 특정 인터커넥트 계층들, 특정 패킷/트랜잭션 구성들, 특정 트랜잭션 명칭들, 특정 프로토콜 교환들, 특정 링크 폭들, 특정 구현들 및 동작들 등과 같은, 다수의 특정 세부사항들이 본 발명의 완전한 이해를 제공하기 위해 제시된다. 그러나, 이러한 특정 세부사항들은 본 발명의 논의 대상을 실시하는데 있어서 반드시 채용되어야만 하는 것은 아님이 본 기술 분야의 당업자에게 명백할 것이다. 다른 예들에서, 특정 및 선택적 프로세서 아키텍처들, 기술된 알고리즘을 위한 특정 로직 회로들/코드, 특정 펌웨어 코드, 저레벨 인터커넥트 동작, 특정 로직 구성들, 특정 제조 기법들 및 재료들, 특정 컴파일러 구현사항들, 코드로의 알고리즘들의 특정 표현, 특정 파워 다운(power down) 및 게이팅 기법들/로직 및 컴퓨터 시스템의 다른 특정 동작 상의 세부사항들과 같은, 알려진 컴포넌트들 또는 방법들에 대한 양호하게 자세한 설명은 본 발명을 불필요하게 모호하게 않지 않도록 하기 위해서 생략되었다.
다음의 실시예들이 컴퓨팅 플랫폼들 또는 마이크로프로세서들에서와 같이, 특정 집적 회로들에서 에너지 보존, 에너지 효율, 프로세싱 효율 등을 참조하여서 기술될 수 있지만, 다른 실시예들이 다른 타입들의 집적 회로들 및 로직 디바이스들에 적용가능하다. 본 명세서에서 기술된 실시예들의 유사한 기법들 및 교시사항들은 또한 이러한 특징들로부터 이점들을 취할 수 있는 다른 타입들의 회로들 또는 반도체 디바이스들에 적용될 수도 있다. 예를 들어, 개시된 실시예들은 서버 컴퓨터 시스템, 데스크탑 컴퓨터 시스템들, 랩탑, Ultrabooks™에 한정되지 않고, 핸드헬드 디바이스들, 스마트폰들, 태블릿들, 다른 얇은 노트북들, SOC(systems on chip) 디바이스들, 및 내장형 애플리케이션들과 같은 다른 디바이스들에서 사용될 수도 있다. 핸드헬드 디바이스들의 몇몇 예들은 셀룰러 전화, 인터넷 프로토콜 디바이스들, 디지털 카메라들, PDA들, 핸드헬드 PC들을 포함한다. 여기서, 고성능 인터커넥트을 위한 유사한 기법들은 저 전력 인터커넥트 시에 성능을 증가(또는 심지어 전력을 절감)하도록 적용될 수 있다. 내장형 애플리케이션들은 통상적으로 마이크로제어기, 디지털 신호 프로세서(DSP), SOC, 네트워크 컴퓨터들(NetPC), 셋탑 박스들, 네트워크 허브들, WAN(wide area network) 스위치들, 또는 이하에서 교시되는 기능들 및 동작들을 수행할 수 있는 임의의 다른 시스템을 포함한다. 또한, 본 명세서에서 기술된 장치들, 방법들, 및 시스템들은 물리적 컴퓨팅 디바이스들로 한정되지 않고, 또한 에너지 보존 및 효율을 위한 소프트웨어 최적화와 관련될 수 있다. 이하의 설명에서 용이하게 자명할 바와 같이,(하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합 중 어느 것을 참조하든 상관없이) 본 명세서에서 기술된 장치들, 방법들, 및 시스템들의 실시예들은 성능 고려사항들과 균형을 이루는 "녹색 기술" 미래에 있어서 매우 중요하다고 사료될 수 있다.
컴퓨팅 시스템들이 진보함에 따라서, 그 내부의 컴포넌트들은 보다 복잡해지고 있다. 이러한 컴포넌트들 간을 연결 및 통신시키는 인터커넥트 아키텍처도 또한 최적의 컴포넌트 동작을 위해서 대역폭 요구수준이 만족되도록 보장하기 위해서 그 복잡성이 증가하였다. 또한, 상이한 시장 영역들도 각각의 시장에 맞도록 상이한 양태들의 인터커넥트 아키텍처들을 요구한다. 예를 들어, 서버들은 보다 높은 성능을 요구하는 한편, 이동 에코시스템은 때로 전력 절감을 위해서 전체적인 성능을 희생할 수도 있다. 그러나, 최대의 전력 절감으로 최고의 가능한 성능을 제공하는 것이 대부분의 구조들의 단일한 목적이다. 나아가, 다양한 상이한 인터커넥트들은 잠재적으로 본 명세서에서 기술된 논의 대상으로부터 이점을 얻을 수 있다.
다른 예들 중에서도, PCIe(PCI(Peripheral Component Interconnect) Express) 인터커넥트 구조(fabric) 아키텍처 및 QPI(QuickPath Interconnect) 구조 아키텍처는 다른 예들 중에서도, 본 명세서에서 기술된 하나 이상의 원리들에 따라서 잠재적으로 개선될 수 있다. 예를 들어, PCIe의 주요 목적은 상이한 벤더들로부터의 컴포넌트들 및 디바이스들이 개방형 아키텍처로 상호간-동작하게 하여서 다수의 시장 영역들; 클라이언트들(데스크탑 및 모바일), 서버들(표준 및 기업용), 및 내장형 디바이스들 및 통신 디바이스들에 걸쳐 있을 수 있게 하는 것이다. PCI 익스프레스(PCI Express)는 광범위한 미래의 컴퓨팅 및 통신 플랫폼들에 대해서 정의된 고성능 범용 I/O 인터커넥트이다. 그의 사용 모델, 로딩-저장 아키텍처(load-store architecture), 및 소프트웨어 인터페이스들과 같은 몇몇 PCI 속성들은 그의 개정들을 통해서 유지된 반면에, 이전의 병렬 버스 구현사항들은 매우 스케일가능하며 전적으로 직렬인 인터페이스(highly scalable, fully serial interface)에 의해서 교체되었다. PCI 익스프레스의 보다 최근의 버전들은 새로운 레벨들의 성능 및 특징들을 전달하도록 점 대 점 인터커넥트들, 스위치-기반 기술, 및 패킷화된 프로토콜에서의 진보사항들을 이용한다. 전력 관리, QoS(Quality Of Service), 핫-플러그/핫-스와프 지원(Hot-Plug/Hot-Swap support), 데이터 무결성(Data Integrity), 및 에러 핸들링(Error Handling)은 PCI 익스프레스에 의해서 지원되는 몇몇 진보된 특징들에 속한다. 본 명세서에서의 주된 논의는 새로운 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), 비휘발성(NV) 메모리, 또는 시스템(100)내의 디바이스들에 의해서 액세스 가능한 다른 메모리와 같은 임의의 메모리 디바이스를 포함한다. 시스템 메모리(110)는 메모리 인터페이스(116)를 통하여 제어기 허브(115)에 연결된다. 메모리 인터페이스의 예들은 DDR(double-data rate) 메모리 인터페이스, 듀얼-채널 DDR 메모리 인터페이스, 및 DRAM(dynamic RAM) 메모리 인터페이스를 포함한다.
일 실시예에서, 제어기 허브(115)는 예를 들어 PCIe 인터커넥트 계층(PCIe interconnection hierarchy) 내의, 루트 허브, 루트 컴플렉스(root complex), 또는 루트 제어기를 포함할 수 있다. 제어기 허브(115)의 예는 칩셋, 메모리 제어기 허브(MCH), 노스브리지(northbridge), 인터커넥트 제어기 허브(ICH), 사우스브리지(southbridge), 및 루트 제어기/허브를 포함한다. 때로, 용어 칩셋은 예를 들어 인터커넥트 제어기 허브(ICH)에 연결된 메모리 제어기 허브(MCH)와 같은, 2개의 물리적으로 별개의 제어기 허브들을 지칭한다. 현 시스템들은 때로 프로세서(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 브리지 디바이스들의 논리적 어셈블리로 지칭된다. 디바이스(125)는 입출력 디바이스, 네트워크 인터페이스 제어기(NIC), 애드-인 카드(add-in card), 오디오 프로세서, 네트워크 프로세서, 하드-드라이브, 저장 디바이스, CD/DVD ROM, 모니터, 프린터, 마우스, 키보드, 라우터, 휴대용 저장 디바이스, 파이어와이어(Firewire) 디바이스, USB(Universal Serial Bus) 디바이스, 스캐너, 및 다른 입출력 디바이스들과 같은 전자 디바이스에 연결될 임의의 내부 또는 외부 디바이스 또는 컴포넌트를 포함한다. 때로, PCIe 용어로, 예를 들어 디바이스는 엔드포인트로 지칭된다. 구체적으로 도시되지 않았지만, 디바이스(125)는 디바이스들의 레거시 또는 다른 버전들을 지원하거나 이러한 디바이스들에 의해서 지원되는 구조들을 인터커넥트하는 브리지(예를 들어, PCIe 대 PCI/PCI-X 브리지)를 포함할 수 있다.
그래픽 가속기(130)가 또한 직렬 링크(132)를 통해 제어기 허브(115)에 연결될 수도 있다. 일 실시예에서, 그래픽 가속기(130)는 ICH에 연결된 MCH에 연결된다. 스위치(120) 및 이에 따른 입출력 디바이스(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)의 1차적 책임은(예를 들어, 트랜잭션 계층 패킷들 또는 TLP들과 같은) 패킷들의 어셈블리 및 디스어셈블리(disassembly)를 포함할 수 있다. 트랙잭션 계층(205)은 또한 TLP들에 대한 크레딧-기반 플로우 제어(credit-based flow control)를 관리할 수 있다. 몇몇 구현들에서, 분할된 트랜잭션들(split transactions)이 이용될 수 있는데, 즉 요청을 갖는 트랜잭션과 응답을 갖는 트랜잭션으로 시간에 의해서 분할되며, 이로써 다른 예들 중에서도, 타겟 디바이스가 응답에 대해서 데이터를 수집하면서 다른 트래픽으로의 링크를 허용한다.
크레딧-기반 플로우 제어는 인터커넥트 구조를 이용하는 가상 채널들 및 네트워크들을 실현하는데 사용될 수 있다. 일 예에서, 디바이스는 트랙잭션 계층(205) 내의 수신 버퍼들 각각에 대한 크레딧들의 초기 양을 홍보할 수 있다. 도 1의 제어기 허브(115)와 같은, 링크의 반대편 엔드에서의 외부 디바이스는 각 TLP에 의해서 소모되는 크레딧들의 수를 카운트할 수 있다. 트랜잭션이 크레딧 한계치를 초과하지 않으면 이 트랜잭션이 전송될 수 있다. 응답을 수신하면, 크레딧의 양이 복구된다. 다른 잠재적 이점들 중에서도, 이러한 크레딧 방식의 이점의 일 예는, 크레딧 리턴(credit return)의 레이턴시가, 크레딧 한계치에 도달하지 않으면, 성능에 영향을 주지 않는다는 것이다.
일 실시예에서, 4 개의 트랜잭션 어드레스 공간들은 구성 어드레스 공간, 메모리 어드레스 공간, 입출력 어드레스 공간 및 메시지 어드레스 공간을 포함할 수 있다. 메모리 공간 트랜잭션들은 메모리-맵핑된 로케이션으로/으로부터 데이터를 전달하기 위한 판독 요청들 및 기록 요청들 중 하나 이상을 포함한다. 일 실시예에서, 메모리 공간 트랜잭션들은 예를 들어, 32 비트 어드레스와 같은 짧은 어드레스 포맷, 또는 64 비트 어드레스와 같은 긴 어드레스 포맷과 같은 2 개의 상이한 어드레스 포맷들을 사용할 수 있다. 구성 공간 트랜잭션들은 인터커넥트에 접속된 다양한 디바이스들의 구성 공간에 액세스하는데 사용될 수 있다. 구성 공간에 대한 트랙잭션들은 판독 요청 및 기록 요청을 포함할 수 있다. 메시지 공간 트랜잭션들(또는 간단히 메시지들)은 또한 인터커넥트 에이전트들(agents) 간의 대역내 통신을 지원하도록 정의될 수 있다. 따라서, 일 예시적인 실시예에서, 트랜잭션 계층(205)은 패킷 헤더/페이로드(206)를 어셈블리할 수 있다.
도 3을 신속하게 참조하면, 트랜잭션 계층 패킷 디스크립터의 예시적인 실시예가 예시된다. 일 실시예에서, 트랜잭션 디스크립터(300)는 트랜잭션 정보를 반송하기 위한 메커니즘일 수 있다. 이와 관련하여서, 트랜잭션 디스크립터(300)는 시스템 내의 트랜잭션들의 식별을 지원한다. 다른 잠재적 용도는 디폴트 트랜잭션 순서(default transaction ordering)의 수정사항들 및 트랜잭션의 채널들과의 연관사항을 추적하는 것을 포함할 수 있다. 예를 들어, 트랜잭션 디스크립터(300)는 전역 식별자 필드(302), 속성 필드(304), 및 채널 식별자 필드(306)를 포함할 수 있다. 예시된 예에서, 전역 식별자 필드(302)는 국부 트랜잭션 식별자 필드(308) 및 소스 식별자 필드(310)를 포함하는 것으로 도시된다. 일 실시예에서, 전역 트랜잭션 식별자 필드(302)는 모든 진행중인 요청들에 대해서 고유하다.
일 구현에 따라서, 국부 트랜잭션 식별자 필드(308)는 요청 에이전트에 의해서 생성된 필드이며, 이 요청 에이전트에게 완료를 요구하는 모든 진행중인 요청들에 대해서 고유할 수 있다. 또한, 본 예에서, 소스 식별자(310)는 인터커넥트 계층 내에서 요청 에이전트를 고유하게 식별한다. 따라서, 소스 식별자(310)와 함께, 국부 트랜잭션 식별자 필드(308)는 계층 영역(hierarchy domain) 내에서 트랜잭션의 전역 식별을 제공한다.
속성 필드(304)는 트랜잭션의 특성들 및 관계들을 특정한다. 이와 관련하여서, 속성 필드(304)는 트랜잭션들의 디폴트 핸들링의 수정을 가능하게 하는 추가 정보를 제공하는데 잠재적으로 사용된다. 일 실시예에서, 속성 필드(304)는 우선순위 서브 필드(312), 예비된 필드(314), 순서 필드(316), 및 비-스누프(no-snoop) 필드(318)를 포함한다. 여기서, 우선순위 서브 필드(312)는 트랜잭션에 우선순위를 할당하도록 개시자에 의해서 수정될 수 있다. 예비된 속성 필드(314)는 차후 또는 벤더-정의된 용도를 위해서 예비되게 남겨진다. 우선순위 또는 보안 속성들을 사용하는 가능한 용도 모델들이 예비된 속성 필드를 사용하여서 구현될 수 있다.
본 예에서, 순서 속성 필드(316)는 디폴트 순서 규칙들을 수정할 수 있는 순서의 타입을 반송하는 선택적 정보를 제공하는데 사용된다. 일 예시적인 구현에 따라서, 순서 속성 "0"은 디폴트 순서 규칙들이 적용될 것을 의미하며, 순서 속성 "1"은 완화된 순서(relaxed ordering)를 의미하며, 이 경우에 기록은 동일한 방향으로 기록들을 통과시키며, 판독 완료사항들은 동일한 방향으로 기록들을 통과시킬 수 있다. 스누프 속성 필드(318)는 트랜잭션들이 스누핑(snooped)되는지의 여부를 결정하는데 사용된다. 도시된 바와 같이, 채널 ID 필드(306)는 트랜잭션이 연관된 채널을 식별한다.
도 2의 논의로 돌아가면, 또한 데이터 링크 계층(210)으로 지칭된 링크 계층(210)은 트랜잭션 계층(205)과 물리 계층(220) 간의 중간의 스테이지의 역할을 할 수 있다. 일 실시예에서, 데이터 링크 계층(210)의 책임은 링크 상의 2 개의 컴포넌트들 간에 트랜잭션 계층 패킷들(TLP들)을 교환하기 위한 신뢰가능한 메커니즘을 제공하는 것이다. 데이터 링크 계층(210)의 일 측면은 트랜잭션 계층(205)에 의해서 어셈블리된 TLP들을 받아서, 패킷 시퀀스 식별자(211), 즉 식별 번호 또는 패킷 번호를 적용하고, 에러 검출 코드, 즉 CRC(212)를 계산 및 적용하고, 물리 계층을 통한 외부 디바이스로의 전송을 위해서 물리 계층(220)으로 수정된 TLP들을 제공하는 것이다.
일 예에서, 물리 계층(220)은 패킷을 외부 디바이스로 물리적으로 전송하기 위해서 논리적 서브 블록(221) 및 전기적 서브 블록(222)을 포함한다. 여기서, 논리적 서브 블록(221)은 물리 계층(220)의 "디지털" 기능들을 담당한다. 이와 관련하여서, 논리적 서브 블록(221)은 물리적 서브 블록(222)에 의한 전송을 위해서 아웃고잉 정보(outgoing information)를 준비하는 송신부 및 그것을 링크 계층(210)으로 전달하기 이전에 수신된 정보를 식별 및 준비하는 수신부를 포함한다.
물리적 블록(222)은 송신기 및 수신기를 포함한다. 송신기에는 심볼들이 논리적 서브 블록(221)에 의해서 공급되며, 송신기는 이 심볼들을 직렬화하여 외부 디바이스로 전달한다. 수신기에는 외부 디바이스로부터 직렬화된 심볼들이 제공되며, 수신기는 수신된 신호를 비트-스트림으로 변환한다. 비트-스트림은 역-직렬화되어서(de-serialized) 논리적 서브 블록(221)으로 공급된다. 일 예시적인 실시예에서, 8b/10b 전송 코드가 사용되며, 10 비트 심볼들이 송신/수신된다. 여기서, 특정 심볼들이 프레임들(223)로 패킷을 프레임하는데 사용된다. 또한, 일 예에서, 수신기는 또한 인커밍(incoming) 직렬 스트림으로부터 복구된 심볼 클록을 제공한다.
상술한 바와 같이, 트랜잭션 계층(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)와 같은 링크로 지칭된다. 링크는 하나의 레인을 지원할 수 있으며, 각 레인은 차동 신호 쌍들의 세트(전송을 위한 일 쌍 및 수신을 위한 일 쌍)를 나타낸다. 밴드폭을 스케일링하기 위해서, 링크는 xN에 의해서 표시된 다수의 레인들을 주합하고, 여기서 N은 1, 2, 4, 8, 12, 16, 32, 64 또는 그 이상과 같은 임의의 지원된 링크 폭이다.
차동 쌍은 차동 신호들을 전송하기 위한, 라인들(416 및 417)과 같은 2 개의 전송 경로들을 말한다. 예를 들어, 라인(416)이 로우 전압 레벨에서 하이 전압 레벨로 토글링(toggle)되는 때에(즉, 상승 에지), 라인(417)은 하이 로직 레벨에서 로우 로직 레벨로 도출한다(즉, 하강 에지). 차동 신호들은 다른 예시적인 장점들 중에서도, 보다 양호한 신호 무결성, 즉 크로스-연결(cross-coupling), 전압 오버슈트/언더슈트(overshoot/undershoot), 링잉(ringing)과 같은 보다 양호한 전기적 특성들을 잠재적으로 제공한다. 이것은 더 빠른 전송 주파수들을 가능하게 하는, 더욱 양호한 타이밍 윈도우를 허용한다.
일 실시예에서, 새로운 고성능 인터커넥트(HPI)가 제공된다. HPI는 차세대 캐시-코히어런트, 링크-기반 인터커넥트를 포함할 수 있다. 일 예로서, HPI는 PCIe 또는 다른 인터커넥트 프로토콜이 통상적으로 프로세서들, 가속기들, 입출력 디바이스들 등을 접속하는데 사용되는 시스템들에서를 포함하여서, 워크스테이션들 또는 서버들과 같은 고성능 컴퓨팅 플랫폼들에서 사용될 수 있다. 그러나, HPI는 이로 한정되는 것은 아니다. 대신에, HPI는 본 명세서에서 기술되는 시스템들 또는 플랫폼들 중 임의의 것에서 사용될 수도 있다. 또한, 개발된 개별 사상들은 PCIe, MIPI, QPI, 등과 같은 다른 인터커넥트들 및 플랫폼들에 적용될 수 있다.
다수의 디바이스들을 지원하기 위해서, 일 예시적인 구현에서, HPI는 독립적인(agnostic) 명령 세트 아키텍처(ISA)를 포함할 수 있다(즉, HPI는 다수의 상이한 디바이스들에서 구현될 수 있다). 다른 시나리오에서, HPI는 또한 단지 프로세서들 또는 가속기들뿐만 아니라 고성능 입출력 디바이스들을 접속하는데 사용될 수 있다. 예를 들어, 고성능 PCIe 디바이스는 적합한 변환 브리지(즉, HPI 대 PCIe)를 통해서 HPI에 연결될 수 있다. 또한, HPI 링크들은 다양한 방식들로(예를 들어, 스타들, 링들, 메시들, 등으로) 프로세서들과 같은 다수의 HPI 기반 디바이스들에 의해서 사용될 수 있다. 도 5는 다수의 잠재적 멀티-소켓 구성의 예시적인 구현들을 예시한 것이다. 도시된 2-소켓 구성(505)은 2 개의 HPI 링크들을 포함하지만, 다른 구현들에서는, 하나의 HPI 링크가 사용될 수 있다. 보다 대형의 토폴로지들에서, 식별자(ID)가 할당가능하고 다른 추가된 또는 대용 특징부들 중에서도 몇몇 형태의 가상 경로가 존재하는 한 임의의 구성이 사용될 수 있다. 도시된 바와 같이, 일 예에서, 4 개의 소켓 구성(510)은 각 프로세서로부터 서로로의 HPI 링크를 갖는다. 그러나, 구성(515)에서 도시된 8 소켓 구현에서, 매 소켓이 HPI 링크를 통해서 서로 직접적으로 접속되는 것은 아니다. 그러나, 가상 경로 또는 채널이 프로세서들 간에서 존재하면, 이 구성이 지원된다. 지원된 프로세서들의 범위는 네이티브 영역(a native domain)에서 2-32개를 포함한다. 보다 많은 개수의 프로세서들이 다른 예들 중에서도, 노드 제어기들 간의 다른 인터커넥트들 또는 다수의 영역들의 사용을 통해서 도달될 수 있다.
HPI 아키텍처는 몇몇 예들에서, 프로토콜 계층들(코히어런트, 넌-코히어런트, 및, 선택적으로는, 다른 메모리 프로토콜들), 라우팅 계층, 링크 계층, 및 물리 계층을 포함하는 계층 프로토콜 아키텍처의 정의를 포함한다. 또한, HPI는 다른 예들 중, 전력 매니저들(예를 들어, 전력 제어 유닛(power control unit; PCU)들), 테스트 및 디버그를 위한 설계(design for test and debug; DFT), 결함 처리, 레지스터들, 보안에 대한 향상을 더 포함할 수 있다. 도 5는 예시적인 HPI 계층 프로토콜 스택의 일 실시예를 도시한 것이다. 몇몇 구현들에서, 도 5에 도시된 계층들의 적어도 일부는 선택적인 것일 수 있다. 각 계층은 자신의 입도의 레벨 또는 정보의 양자(quantum)를 다룬다(패킷들(630)을 갖는 프로토콜 계층(605a, 605b), 플릿들(635)을 갖는 링크 계층(610a, 610b), 및 플릿들(640)을 갖는 물리 계층(605a, 605b)). 몇몇 실시예들에서, 패킷은 구현에 기초하여 부분적 플릿들, 단일 플릿, 또는 복수 플릿들을 포함할 수 있음에 유의한다.
제 1 예로서, 피트(640)의 폭은 비트들로의 링크 폭의 일대일 맵핑을 포함한다(예를 들어, 20 비트 링크 폭은 20비트의 피트를 포함하는 등). 플릿들은 184, 192, 또는 200 비트와 같은 더 큰 크기를 가질 수도 있다. 피트(640)가 20비트 폭이고 플릿(635)의 크기가 184비트인 경우, 하나의 플릿(635)을 전송하기 위한 아주작은 수의 피트들(640)(예를 들어, 다른 예들 중, 184 비트 플릿(635)을 전송하기 위한 20비트에서의 9.2피트, 또는 192 비트 플릿을 전송하기 위한 20비트에서의 9.6피트)을 갖는다는 것에 유의한다. 물리 계층에서의 기본 링크의 폭은 달라질 수 있음에 유의한다. 예를 들어, 방향마다의 레인들의 수는 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 등을 포함할 수 있다. 일 실시예에서, 링크 계층(610a, 610b)은 단일 플릿에 다수의 상이한 트랜잭션들을 임베드할 수 있으며, 하나 또는 복수의 헤더들(예를 들어, 1, 2, 3, 4)이 플릿 내에 임베드될 수도 있다. 일 예에서, HPI는 서로 다른 노드들로 향하는 플릿에서의 복수의 메시지들을 가능하게 하는 대응 슬롯들로, 헤더들을 분할한다.
일 실시예에서, 물리 계층(605a, 605b)은 물리적 매체(전기적 또는 광학적 등) 상의 정보의 고속 전송을 담당할 수 있다. 물리 링크는 링크 계층 엔티티들, 예를 들어 계층(605a 및 605b) 간의 점 대 점일 수 있다. 링크 계층(610a, 610b)은 상위 계층들로부터 물리 계층(605a, 605b)을 추상화하고, 신뢰성 있게 데이터(및 요청들)를 전송할 수 있는 능력을 제공하고, 직접 접속된 2개의 엔티티 간의 흐름 제어를 관리할 수 있다. 또한, 링크 계층은 다수의 가상 채널들 및 메시지 클래스들로 물리 채널을 가상화하는 것을 담당한다. 프로토콜 계층(620a, 620b)은, 물리 링크들에 걸쳐있는 전송용 물리 계층(605a, 605b)으로 전달하기 이전에, 적절한 메시지 클래스들 및 가상 채널들로 프로토콜 메시지들을 맵핑하기 위해 링크 계층(610a, 610b)에 의존한다. 링크 계층(610a, 610b)은 복수의 메시지들, 예를 들어 다른 예들 중, 요청, 스누프, 응답, 라이트 백(writeback), 넌-코히어런트 데이터를 지원할 수 있다.
도 6에 도시된 바와 같이, HPI의 물리 계층(605a, 605b)(또는 PHY)은 전기 계층(즉, 2개의 컴포넌트를 접속시키는 전기 전도체들)의 위 및 링크 계층(610a, 610b)의 아래에 구현될 수 있다. 물리 계층 및 대응 로직은 각 에이전트에 상주할 수 있으며, (예를 들어, 링크의 양쪽의 디바이스들 상의) 서로 분리된 2개의 에이전트들(A와 B)의 링크 계층들을 접속시킨다. 로컬 및 원격 전기 계층들은 물리적 매체(예를 들어, 전선들, 전도체들, 광학 등)에 의해 접속된다. 일 실시예에서, 물리 계층(605a, 605b)은 2개의 주요 위상들, 초기화 및 동작을 갖는다. 초기화 동안, 접속은 링크 계층에 불투명하고, 시그널링은 타이밍 상태들 및 핸드쉐이크 이벤트들의 조합을 포함할 수 있다. 동작 동안, 접속은 링크 계층에 투명하고, 시그널링은 모든 레인들이 단일 링크로서 함께 동작하는 속도를 갖는다. 동작 위상 동안, 물리 계층은 에이전트 A로부터 에이전트 B 및 에이전트 B로부터 에이전트 A로 플릿들을 전송한다. 또한, 접속은 링크로 지칭되며, 플릿들 및 현재 구성의 제어/상태(예를 들어, 폭)를 링크 계층과 교환하는 동안에, 링크 계층들로부터 매체, 폭 및 속도를 포함하는 몇몇 물리적 측면들을 추상화한다. 초기화 위상은 마이너 위상들(예를 들어, 폴링(Polling)) 구성을 포함한다. 또한, 동작 위상은 마이너 위상들(예를 들어, 링크 전력 관리 상태들)을 포함한다.
일 실시예에서, 링크 계층(610a, 610b)은 2개의 프로토콜 또는 라우팅 엔티티 간에 신뢰성있는 데이터 전송을 제공하도록 구현될 수 있다. 링크 계층은 프로토콜 계층(620a, 620b)으로부터 물리 계층(605a, 605b)을 추상화할 수 있고, 2개의 프로토콜 에이전트(A, B) 간의 흐름 제어를 담당할 수 있으며, 프로토콜 계층(메시지 클래스들) 및 라우팅 계층(가상 네트워크들)에 대한 가상 채널 서비스들을 제공한다. 통상적으로, 프로토콜 계층(620a, 620b)과 링크 계층(610a, 610b) 간의 인터페이스는 패킷 레벨로 존재할 수 있다. 일 실시예에서, 링크 계층에서의 최소의 전송 유닛은 192 비트들과 같은 지정된 개수의 비트들의 수인 플릿 또는 몇몇 다른 명칭으로 지칭된다. 링크 계층(610a, 610b)은, 전송의 물리 계층(605a, 605b)의 유닛(피트)을 전송의 링크 계층(610a, 610b)의 유닛(플릿)으로 프레임(frame)하기 위해 물리 계층(605a, 605b)에 의존한다. 또한, 링크 계층(610a, 610b)은 두 부분, 즉 송신기와 수신기로 논리적으로 나눌 수 있다. 하나의 엔티티 상의 송신기/수신기 쌍은 다른 엔티티 상의 수신기/송신기 쌍에 접속될 수 있다. 흐름 제어는 플릿 및 패킷 기준 모두에서 종종 수행된다. 또한, 오류 검출 및 정정은 플릿 레벨 기준으로 잠재적으로 수행된다.
일 실시예에서, 라우팅 계층(615a, 615b)은 소스로부터 목적지로 HPI 트랜잭션들을 라우팅하는 유연한 분산형 방법을 제공할 수 있다. 복수의 토폴로지들을 위한 라우팅 알고리즘들은 각 라우터의 프로그래머블 라우팅 테이블들을 통해 지정될 수 있기 때문에, 이 방식은 유연하다(일 실시예에서, 프로그래밍은 펌웨어, 소프트웨어, 또는 이들의 조합에 의해 수행된다). 라우팅 기능은 분산될 수 있다. 즉, 라우팅은 일련의 라우팅 단계들을 통해 행해질 수 있으며, 각 라우팅 단계는 소스, 중간, 또는 목적지 라우터들 중 하나에서의 테이블 조회를 통해 정의된다. 소스에서의 조회는 HPI 구조 내에 HPI 패킷을 삽입하는데 사용될 수 있다. 중간 라우터에서의 조회는 입력 포트로부터 출력 포트로 HPI 패킷을 라우팅하는데 사용될 수 있다. 목적지 포트에서의 조회는 목적지 HPI 프로토콜 에이전트를 타켓팅하는데 사용될 수 있다. 몇몇 구현들에서는, 라우팅 테이블들 및 이에 따른 라우팅 알고리즘들이 스펙에 의해 구체적으로 정의되어 있지 않기 때문에, 라우팅 계층이 얇을 수 있음에 유의한다. 이것은 시스템 구현에 의해 정의될 유연한 플랫폼 아키텍처 토폴로지들을 포함하는, 사용 모델들의 유연성 및 다양성을 가능하게 한다. 라우팅 계층(615a, 615b)은 최대 3개(또는 그 이상)의 가상 네트워크들(virtual networks; VNs)(일 예에서, 각 가상 네트워크에서 정의된 몇몇 메시지 클래스들을 가진, 2개의 교착 상태가 없는 VNs, VNO 및 VN1)의 사용을 제공하기 위해 링크 계층(610a, 610b)에 의존한다. 공유형 적응적 가상 네트워크(VNA)가 링크 계층에서 정의될 수 있지만, 이 적응적 네트워크는 라우팅 개념들에 직접 노출되지 않을 수도 있으며, 그 이유는 각 메시지 클래스 및 가상 네트워크가 다른 기능들 및 예들 중, 전용 리소스들 및 보장된 포워드 프로그레스를 가질 수 있기 때문이다.
몇몇 구현들에서, HPI는 임베디드 클럭을 이용할 수 있다. 클럭 신호는 인터커넥트를 사용하여 전송된 데이터에 임베드될 수 있다. 데이터에 임베드된 클럭 신호로, 별개의 전용 클럭 레인들이 생략될 수 있다. 예를 들어, 이것은 디바이스의 더 많은 핀들이, 특히 핀들을 위한 공간이 부족한 시스템들에서, 데이터 전송에 전용될 수 있기 때문에 유용할 수 있다.
인터커넥트의 양쪽에 있는 2개의 에이전트들 간에는 링크가 확립될 수 있다. 데이터를 송신하는 에이전트는 로컬 에이전트일 수 있으며, 데이터를 수신하는 에이전트는 원격 에이전트일 수 있다. 상태 머신들은 링크의 다양한 측면들을 관리하기 위해 두 에이전트들 모두에 의해 사용될 수 있다. 일 실시예에서, 물리 계층 데이터 경로는 링크 계층으로부터 전기적 프론트-엔드로 플릿들을 전송할 수 있다. 일 구현에서, 제어 경로는 상태 머신(또한 링크 트레이닝 상태 머신 또는 이와 유사하게 지칭됨)을 포함한다. 상태 머신의 동작들 및 상태들로부터의 종료들은 내부 신호들, 타이머들, 외부 신호들 또는 기타 정보에 따라 결정질 수 있다. 실제에 있어서, 상태들의 일부, 예를 들어 몇 가지 초기화 상태들은 상태에서 종료하는 타임아웃 값을 제공하기 위해 타이머들을 가질 수 있다. 몇몇 실시예들에서, 검출은 레인의 양쪽 레그(leg)들 상의 이벤트를 검출하는 것을 지칭(반드시 동시는 아님)한다는 것에 유의한다. 그러나, 다른 실시예들에서는, 검출이 참조의 에이전트에 의한 이벤트의 검출을 지칭한다. 일 예로서, 디바운스(debounce)는 신호의 지속적인 어써션(assertion)을 지칭한다. 일 실시예에서, HPI는 비-기능 레인들의 이벤트에서 동작을 지원한다. 여기서, 레인들은 특정 상태들에서 드롭될 수도 있다.
상태 머신에 정의된 상태들은 기타 범주들 및 하위 범주 중, 리셋 상태들, 초기화 상태들, 및 동작 상태들을 포함할 수 있다. 일 예에서, 일부 초기화 상태들은 타임아웃 시에 상태(본질적으로는, 그 상태에서 진행하고 있는 오류로 인한 중단)에서 탈출하는데 사용되는 보조 타이머를 가질 수 있다. 중단은 상태 레지스터와 같은 레지스터들의 업데이트를 포함할 수 있다. 또한, 몇몇 상태들은 그 상태에서의 주 기능들을 타이밍하는데 사용되는 주 타이머(들)를 가질 수 있다. 다른 상태들은 내부 또는 외부 신호들(예를 들어, 핸드쉐이크 프로토콜들)이 다른 예들 중, 그 상태로부터 다른 상태로의 천이를 구동하도록 정의될 수 있다.
또한, 상태 머신은 단일 단계를 통해 디버그를 지원할 수 있고, 초기화 중단 및 테스터들의 사용을 동결할 수 있다. 여기서, 디버그 소프트웨어가 준비될 때까지, 상태 종료들이 연기/유지될 수 있다. 몇몇 예에서는, 2차적인 타임아웃까지 종료가 연기/유지될 수 있다. 일 실시예에서, 동작들 및 종료들은 트레이닝 시퀀스들의 교환에 기초할 수 있다. 일 실시예에서, 링크 상태 머신은 로컬 에이전트 클럭 도메인에서 실행되며, 하나의 상태로부터 다음 상태로의 천이는 송신기 트레이닝 시퀀스 경계와 일치한다. 상태 레지스터들을 이용하여 현재 상태를 반영할 수도 있다.
도 7은 HPI의 일 예시적인 구현에서 에이전트들에 의해 사용된 상태 머신의 적어도 일 부분의 표현을 도시한 것이다. 도 7의 상태 테이블에 포함된 상태들은 가능한 상태들의 비-망라적 목록을 포함한다는 것을 인식해야 한다. 예를 들어, 몇몇 천이들은 도면을 단순화하기 위해 생략되어 있다. 또한, 몇몇 상태들은 결합, 분할, 또는 생략될 수 있으며, 다른 것들이 추가될 수도 있다. 이러한 상태들은 다음을 포함할 수 있다.
이벤트 리셋 상태: 웜 또는 콜드 리셋 이벤트 시에 진입됨. 디폴트 값들을 저장함. 카운터들(예를 들어, 동기화 카운터들)을 초기화함. 다른 상태, 예를 들어 또 다른 리셋 상태로 종료함.
타이밍 리셋 상태: 대역 내 리셋을 위해 타이밍된 상태. 사전 정의된 EOS(electrical ordered set)를 구동할 수 있으며, 이에 따라 원격 수신기들이 EOS를 검출할 수 있고, 타이밍 리셋을 입력할 수도 있음. 수신기는 전기적 설정들을 유지하는 레인들을 구비함. 에이전트에의 캘리브레이트 리셋 상태로 종료할 수 있음.
캘리브레이트 리셋 상태: 레인 상의 시그널링(예를 들어, 수신기 캘리브레이션 상태)이나 드라이버들을 턴 오프함 없는 캘리브레이션. 타이머에 기초하는, 그 상태에서 사전 결정된 양의 시간이 될 수 있음. 동작 속도를 설정할 수 있음. 포트가 인에이블되지 않은 경우, 대기 상태의 역할을 할 수 있음. 최소 상주 시간을 포함할 수 있음. 수신기 컨디셔닝(conditioning) 또는 스태거링 오프(staggering off)는 설계에 기초하여 발생할 수 있음. 타임아웃 및/또는 캘리브레이션의 완료 이후에 수신기 검출 상태로 종료할 수 있음.
수신기 검출 상태: 레인(들) 상의 수신기의 존재를 검출함. 수신기 종료(예를 들어, 수신기 풀다운(pulldown) 정지)를 탐색할 수 있음. 지정된 값이 설정될 시에, 또는 다른 지정된 값이 설정되지 않은 경우에, 캘리브레이트 리셋 상태로 종료할 수 있음. 수신기가 검출되거나, 타임아웃에 도달되는 경우, 송신기 캘리브레이트 상태로 종료할 수 있음.
송신기 캘리브레이트 상태: 송신기 캘리브레이션들을 위한 것임. 송신기 캘리브레이션들을 위해 할당되는 타이밍 상태일 수 있음. 레인 상의 시그널링을 포함할 수 있음. EOS, 예를 들어 EIEOS(electric idle exit ordered set)를 연속적으로 구동할 수 있음. 캘리브레이트된 경우이거나 타이머의 만료 시에, 컴플라이언스 상태로 종료할 수 있음. 카운터가 만료되었거나 보조 타임아웃이 발생한 경우, 송신기 검출 상태로 종료할 수 있음.
송신기 검출 상태: 유효 시그널링의 자격을 얻음. 에이전트가 원격 에이전트 시그널링에 기초하여 동작들을 완료하고 다음 상태로 종료하는 핸드쉐이크 상태일 수 있음. 수신기는 송신기로부터 유효 시그널링할 자격을 얻을 수 있음. 일 실시예에서, 수신기는 웨이크 검출을 탐색할 수 있으며, 하나 이상의 레인들 상에서 디바운스되는 경우에는, 다른 레인들 상에서 웨이크 검출을 탐색할 수 있음. 송신기는 검출 신호를 구동함. 모든 레인들 및/또는 타임아웃이 완료되는 디바운스 또는 모든 레인들 상의 디바운스가 완료되지 않고 타임아웃이 존재하는 경우에 대한 응답으로 폴링 상태로 종료할 수 있음. 여기서, 하나 이상의 모니터 레인들은 웨이크 신호를 디바운스기 위해 어웨이크(awake) 상태를 유지할 수 있음. 그리고, 디바운스되는 경우, 다른 레인들이 잠재적으로 디바운스됨. 이것은 저전력 상태들에서의 전력 절감을 가능하게 할 수 있음.
폴링 상태: 수신기는 드리프트 버퍼를 적응, 초기화하여 비트/바이트로 락킹(예를 들어, 심볼 경계들을 식별함). 레인들은 디스큐(deskew)될 수 있음. 원격 에이전트는 확인응답 메시지에 대한 응답으로 다음 상태(예를 들어, 링크 폭 상태)로의 종료를 야기할 수 있음. 폴링은 EOS와 트레이닝 시퀀스 헤더로 잠그는 것에 의한 트레이닝 시퀀스 락을 추가로 포함할 수 있음. 원격 송신기에서의 레인 투 레인 스큐(Lane to lane skew)는 최고 속도를 위한 제 1 길이 및 느린 속도를 위한 2 길이로 캡핑(capping)될 수 있음. 디스큐는 저속 모드로 수행될 수 있고 또한 동작 모드로 수행될 수도 있음. 수신기는 레인-투-레인 스큐, 예를 들어 8, 16, 또는 32 간격의 스큐를 디스큐하는 특정 최대값을 가질 수 있음. 수신기 동작들은 레이턴시 고정을 포함할 수 있음. 일 실시예에서, 수신기 동작들은 유효 레인 맵의 성공적인 디스큐로 완료될 수 있음. 일 예에서, 다수의 연속된 트레이닝 시퀀스 헤더들이 확인응답들로 수신되고, 확인응답을 가진 다수의 트레이닝 시퀀스들이, 수신기가 자신의 동작들을 완료한 이후에 송신되는 경우에, 성공적인 핸드쉐이크가 달성될 수 있음.
링크 폭 상태: 에이전트는 최종 레인 맵을 원격 송신기에게 전달함. 수신기는 정보를 수신하고 디코딩함. 수신기는 제 2 구조에서 이전의 레인 맵 값의 체크포인트 후의 구조에 구성된 레인 맵을 기록할 수 있음. 또한, 수신기는 확인응답("ACK")으로 응답할 수 있음. 대역 내 리셋을 초기화할 수 있음. 일 예로서, 제 1 상태는 대역 내 리셋을 초기화함. 일 실시예에서, ACK에 대한 응답으로, 다음 상태, 예를 들어 플릿 구성 상태로의 종료가 수행된다. 또한, 저전압 상태에 진입하기 이전에, 웨이크 검출 신호 발생의 주파수가 지정된 값 미만으로 떨어지는 경우에는(예를 들면, 4KUI와 같은 유닛 간격(UI)의 수마다 한번) 리셋 신호가 또한 생성될 수도 있다. 수신기는 현재 및 이전의 레인 맵들을 유지할 수 있다. 송신기는 상이한 값들을 갖는 트레이닝 시퀀스들에 기초하는 상이한 그룹들의 레인들을 사용할 수 있음. 몇몇 실시예들에서는, 레인 맵이 몇몇 상태 레지스터들을 수정하지 않을 수도 있음.
플릿락 구성 상태: 송신기에 의해 진입되지만, 송신기와 수신기 모두가 블로킹 링크 상태 또는 다른 링크 상태로 종료한 경우에, 이 상태로 종료되는 것으로 고려됨(즉, 보조 타임아웃 무트(moot)). 일 실시예에서, 송신기가 링크 상태로 종료하는 것은, 플레니터리(planetary) 정렬 신호를 수신한 이후에 데이터 시퀀스의 시작(start of a data sequence; SDS) 및 트레이닝 시퀀스(training sequence; TS) 경계를 포함함. 여기서, 수신기 종료는 원격 송신기로부터 SDS를 수신하는 것에 기초할 수 있음. 이러한 상태는 에이전트로부터 링크 상태로의 브리지(bridge)가 될 수 있음. 수신기는 SDS를 식별함. 디스크램블러(descrambler) 이후에 수신된 SDS가 초기화되는 경우, 수신기는 블로킹 링크 상태(blocking link state; BLS)(또는 제어 윈도우)로 종료할 수 있음. 타임아웃이 발생한 경우, 종료는 리셋 상태로 될 수 있음. 송신기는 구성 신호로 레인들을 구동함. 송신기 종료는 리셋, BLS, 또는 조건들이나 타임아웃들에 기초하는 다른 상태들로 될 수 있음.
송신 링크 상태: 링크 상태. 플릿들은 원격 에이전트로 송신됨. 블로킹 링크 상태로부터 진입되어, 타임아웃과 같은 일 이벤트 시에 블로킹 링크 상태로 복귀할 수 있음. 송신기는 플릿들을 송신함. 수신기는 플릿들을 수신함. 또한, 저전력 링크 상태로 종료할 수도 있음. 몇몇 구현들에서는, 송신 링크 상태(transmitting link state; TLS)가 LO 상태로 지칭될 수도 있음.
블로킹 링크 상태: 링크 상태. 송신기 및 수신기가 통합된 방식으로 동작함. 물리 계층 정보가 원격 에이전트에게 전달되는 동안에, 링크 계층 플릿들이 보류되는 타이밍 상태일 수 있음. 저전력 링크 상태(또는 설계에 기초하는 다른 링크 상태)로 종료할 수 있음. 일 실시예에서, 블로킹 링크 상태(BLS)는 주기적으로 발생함. 주기는 BLS 간격으로 지칭되며, 타이밍될 수 있고, 또한 느린 속도와 동작 속도 사이에서 달라질 수 있음. 링크 계층은 예를 들어 송신 링크 상태 또는 부분적 폭 송신 링크 상태 동안에, 물리 계층 제어 시퀀스의 길이가 전송될 수 있도록, 플릿들을 송신하는 것이 주기적으로 차단될 수 있음. 몇몇 구현들에서, 블로킹 링크 상태(BLS)는 LO 제어, 또는 LOc, 상태로 지칭될 수 있음.
부분 폭 전송 링크 상태: 링크 상태. 부분 폭 상태에 진입함으로써 전력을 절약할 수 있음. 일 실시예에서, 비대칭 부분 폭은 상이한 폭들을 갖는 2개의 방향 링크의 각 방향을 지칭하며, 이것은 몇몇 설계들에서 지원될 수 있음. 일 예시에서, 부분 폭 전송 링크 상태는 도 9의 예시에 도시됨. 여기서, 부분 폭 표시는 제 2의, 새로운 폭으로 송신하기 위하여, 링크를 천이할 제 1 폭을 가진 링크 상에서 송신하는 동안에 송신됨. 미스매치(mismatch)는 리셋을 야기할 수 있음. 속도들은 변경될 수 없지만, 폭은 변경될 수 있음. 따라서, 플릿들은 상이한 폭들로 잠재적으로 송신됨. 송신 링크 상태와 유사할 수 있지만, 더 작은 폭이기 때문에, 플릿들을 전송하는데 시간이 더 걸릴 수 있음. 다른 링크 상태들, 예를 들어 몇몇의 송수신되는 메시지들이나 부분 폭 전송 링크 상태의 종료에 기초하는 저전력 링크 상태 또는 다른 이벤트들에 기초하는 링크 블로킹 상태로 종료할 수 있음. 일 실시예에서, 송신기 포트는 더 양호한 신호 무결성(즉, 노이즈 완화)을 제공하도록 스태거링된 방식으로 유휴 레인들을 턴 오프할 수 있음. 여기서, 재시도-불가능 플릿들, 예를 들어 널(Null) 플릿들이 링크 폭이 달라지는 기간 동안 이용될 수 있음. 대응하는 수신기는 이들 널 플릿들을 삭제하고, 스태거링 방식으로 유휴 레인들을 턴 오프할 수 있으며, 또한 하나 이상의 구조들로 현재 및 이전의 레인 맵들을 기록할 수 있음. 상태 및 관련 상태 레지스터는 변경되지 않은 상태로 남을 수 있음. 몇몇 구현들에서, 부분 폭 전송 링크 상태는 부분 LO, 또는 LOp, 상태로 지칭될 수 있음.
부분 폭 전송 링크 상태 종료: 부분 폭 상태 종료. 몇몇 구현들에서는, 블로킹 링크 상태를 사용할 수도 있고 그렇지 않을 수도 있음. 일 실시예에서, 송신기는 그들을 트레인 및 디스큐하기 위해 유휴 레인 상의 부분 폭 종료 패턴들을 송신함으로써 종료를 개시함. 일 예로서, 종료 패턴은 레인이 전체 송신 링크 상태에의 진입을 시작할 준비가 되었다는 신호를 검출하고 디바운스하는 EIEOS로 시작되며, 유휴 레인 상에서 SDS 또는 고속 트레이닝 시퀀스(Fast Training Sequence; FTS)로 끝날 수 있음. 종료 시퀀스 동안의 실패(타임아웃 이전에 완료되지 않은 디스큐와 같은 수신기 동작들)는 링크 계층으로의 플릿 전송을 중단시키며 리셋을 어써트(assert)하며, 이것은 다음의 블로킹 링크 상태 발생 시에 링크를 재설정하는 것에 의해 처리됨. 또한, SDS는 적절한 값들로 레인 상의 스크램블러/디스크램블러를 초기화 할 수 있음.
저전력 링크 상태: 저전력 상태임. 일 실시예에서, 본 실시예에서는 시그널링이 모든 레인들 상에서 그리고 양쪽 모두의 방향들에서 정지되기 때문에, 부분 폭 링크 상태보다 저전력임. 송신기들은 저전력 링크 상태를 요청하기 위해 블로킹 링크 상태를 사용할 수 있음. 여기서, 수신기는 요청을 디코딩하고, ACK나 NAK로 응답할 수 있으며, 그렇지 않은 경우, 리셋은 트리거링될 수 있음. 몇몇 구현들에서, 저전력 링크 상태는 LI 상태로 지칭될 수 있음.
몇몇 구현들에서, 예를 들어, 상태들의 상태 동작들, 예를 들어 몇몇 캘리브레이션들 및 구성들이 이미 완료된 경우, 상태 천이들은 상태들이 바이패스될 수 있게 할 수 있다. 링크의 이전 상태 결과들 및 구성들은 링크의 후속 초기화들 및 구성들로 저장 및 재사용될 수 있다. 이러한 구성들 및 상태 동작들을 반복하는 대신에, 대응하는 상태들이 바이패스될 수 있다. 그러나, 상태 바이패스들을 구현하는 기존의 시스템들은, 종종 복잡한 설계들 및 고가의 검증 이스케이프(validation escape)를 구현한다. 일 예에서, 기존의 바이패스를 사용하는 대신에, HP1은 상태 동작들이 반복될 필요가 없는 경우와 같은 몇몇 상태들에서 짧은 타이머들을 이용할 수 있다. 이것은 다른 잠재적인 장점들 중에서도, 더 균일하고 동기화된 상태 머신 천이들을 잠재적으로 허용할 수 있다.
일 예에서, 소프트웨어-기반 제어기(예를 들어, 물리 계층을 위한 외부 제어 포인트를 통해)는 하나 이상의 특정 상태들을 위한 짧은 타이머를 가능하게 할 수 있다. 예를 들어, 동작들이 이미 수행되어 저장된 상태의 경우, 이 상태는 그 상태에서 다음 상태로 빠르게 종료하는 것을 가능하게 하도록 짧게-타이밍될 수 있다. 그러나, 이전 상태 동작이 실패하거나 또는 짧은 타이머 지속시간 이내에 적용될 수 없는 경우에는, 상태 종료가 수행될 수 있다. 또한, 예를 들어 상태 동작들이 새롭게 수행되어야 하는 경우, 제어기는 짧은 타이머를 디스에이블할 수 있다. 긴 또는 디폴트, 타이머는 각각의 상태용으로 설정될 수 있다. 이 상태에서의 구성 동작들이 긴 타이머 이내에 완료될 수 없는 경우, 상태 종료가 발생할 수 있다. 긴 타이머는 상태 동작들의 완료를 허용하도록 합리적인 지속시간으로 설정될 수 있다. 대조적으로, 짧은 타이머는, 몇몇 경우들에서, 다른 예들 중에서도 이전에 수행된 상태 동작들을 다시 참조하지 않고서 상태 동작들을 수행하는 것이 불가능할 정도로 상당히 더 짧다.
일부 경우들에서, 링크의 초기와 동안(또는 재-초기화), 에이전트가 상태 머신을 통해 동작 링크 상태로 진행하는 경우, 하나 이상의 실패 또는 상태 종료가 발생하여 상태를 리셋시킬 수 있다(예를 들어, 리셋 또는 다른 상태로). 사실상, 링크의 초기화는 초기화를 완료하지 않거나 링크 상태에 진입하지 않고서 하나 이상의 상태를 통해 루프할 수 있다. 일 예시에서, 카운트는 링크의 초기화 내에서 상태 천이 내 비생산적인 루프들의 개수에 대하여 유지될 수 있다. 예를 들어, 초기화가 링크 상태에 도달하지 않고 리셋 상태로 돌아갈 때마다 카운터가 증가될 수 있다. 카운터는 링크가 링크 상태에 성공적으로 진입할 때 링크에 대하여 리셋될 수 있다. 그러한 카운터는 링크의 양측 상의 에이전트에 의해 유지될 수 있다. 또한, 예를 들어, 하나 이상의 외부 제어 포인트를 이용하는 소프트웨어 기반 제어기에 의해, 임계값이 설정될 수 있다. 비생산적인 루프의 카운트가 정의된 임계값을 충족(또는 초과)하는 경우, 링크의 초기화는 유예(suspended)(예를 들어, 리셋 상태 시 또는 전에 설정되고 행해짐)될 수 있다. 일부 구현예들에서, 초기화를 재개하고 유예 상태에서 초기화를 복구하기 위해, 소프트웨어 기반 제어기는 링크의 재-초기화 또는 재시작을 트리거할 수 있다. 일부 경우들에서, 소프트웨어 기반 툴은 유예된 초기화의 속성을 분석하고 진단을 수행, 레지스터 값을 설정, 및 다른 동작을 수행하여 초기화의 추가 루프가 생기지 않도록 조심할 수 있다. 실제로, 일부 구현예들에서, 제어기는 더 높은 카운터 임계값을 설정하거나, 다른 예들 중에서도, 유예된 링크 초기화를 재시작하는 것에 관하여 카운터를 중단시킬 수도 있다.
HPI의 몇몇 구현들에서는, 수퍼시퀀스들이 정의될 수 있으며, 각 수퍼시퀀스는 각각의 상태 또는 각각의 상태로/로부터 진입/종료에 대응한다. 수퍼시퀀스는 데이터 세트들 및 심볼들의 반복 시퀀스를 포함할 수 있다. 몇몇 예들에서는, 다른 예들 중에서도, 상태나 상태 천이의 완료, 또는 대응하는 이벤트의 통신 시까지 그 시퀀스가 반복될 수 있다. 몇몇 예들에서, 수퍼시퀀스의 반복 시퀀스는 정의된 주파수, 예를 들어 정의된 수의 유닛 간격(unit interval; UI)들에 따라 반복될 수 있다. 유닛 간격(UI)은 링크 또는 시스템의 레인 상에서 단일 비트를 송신하기 위한 시간 간격에 대응할 수 있다. 몇몇 구현들에서, 반복 시퀀스는 EOS(electrically ordered set)로 시작될 수 있다. 따라서, EOS의 인스턴스는 사전 정의된 주파수에 따라 반복될 것으로 예상될 수 있다. 이러한 순서화된 세트들은 다른 예들 중에서도, 16 진수 형식으로 표현될 수 있는 16바이트 코드들로 정의되는 바와 같이 구현될 수 있다. 일 예에서, 수퍼시퀀스의 EOS는 EIOS(electric idle ordered set)(또는 EIEIOS)일 수 있다. 일 예에서, EIEOS는 낮은 주파수 클럭 신호(예를 들어, 반복 FFOO 또는 FFFOOO 16진수 심볼 등의 사전 정의된 수)와 유사할 수 있다. 데이터의 사전 정의된 세트는 EOS, 예를 들어 트레이닝 시퀀스들이나 그 밖의 데이터의 사전 정의된 수를 따를 수 있다. 이러한 수퍼시퀀스들은 다른 예들 중에서도, 링크 상태 천이들을 포함하는 상태 천이들 및 초기화에서 이용될 수 있다.
전술한 바와 같이, 일 실시예에서, 초기화는 처음에 느린 속도로 행해지고 그 다음에 빠른 속도로 초기화가 행해질 수 있다. 느린 속도의 초기화는 레지스터들 및 타이머들에 대한 디폴트 값들을 사용한다. 이어서, 소프트웨어는 느린 속도 링크를 사용하여 레지스터들, 타이머들 및 전기적 파라미터들을 설정하고, 빠른 속도 초기화에 대한 방법을 포장하기 위해 캘리브레이션 신호장치를 클리어한다. 일 예로서, 초기화는 잠재적으로 다른 것들 중에서도, 리셋, 검출, 폴링, 및 구성과 같은 상태들이나 작업들로 이루어질 수 있다.
일 예에서, 링크 계층 블로킹 제어 시퀀스(즉, 블로킹 링크 상태(BLS) 또는 LOc 상태)는 PHY 정보가 원격 에이전트로 전달되는 동안에, 링크 계층 플릿들이 보류되는 타이밍 상태를 포함할 수 있다. 여기서, 송신기 및 수신기는 블록 제어 시퀀스 타이머를 시작할 수 있다. 그리고 타이머의 만료 시에, 송신기 및 수신기는 블로킹 상태를 종료할 수 있으며, 다른 동작들, 예를 들어 리셋으로의 종료, 링크를 통한 플릿들의 송신을 허용하는 상태들을 포함하는 상이한 링크 상태(또는 다른 상태)로의 종료를 취할 수 있다.
일 실시예에서, 예를 들어, 링크 트레이닝에는 사전 정의된 수퍼시퀀스와 함께, 스크램블링된 트레이닝 시퀀스들, 순서화된 세트들, 및 제어 시퀀스들 중의 하나 이상이 제공되며, 이것을 포함할 수 있다. 트레이닝 시퀀스 심볼은 헤더, 예약된 부분들, 타겟 레이턴시, 페어 수, 물리적 레인 맵 코드 참조 레인들이나 레인들의 그룹, 및 초기화 상태 중의 하나 이상을 포함할 수 있다. 일 실시예에서, 헤더는 다른 예들 중에서도, ACK 또는 NAK로 송신될 수 있다. 일 예로서, 트레이닝 시퀀스들은 시퀀스들의 일부로서 송신될 수 있으며, 스크램블링될 수도 있다.
일 실시예에서, 순서화된 세트들 및 제어 시퀀스들은 스크램블링되거나 스태거링되지 않으며, 모든 레인들에서 동일하게, 동시에 및 완전하게 전송된다. 순서화된 세트의 유효한 수신은, 순서화된 세트의 적어도 일 부분(또는 부분 순서화된 세트들을 위한 전체 순서화된 세트)의 확인을 포함할 수 있다. 순서화된 세트들은 EOS(electrically ordered set), 예를 들어, EIOS(Electrical Idle Ordered Set) 또는 EIEOS를 포함할 수 있다. 수퍼시퀀스는 SDS(start of a data sequence) 또는 FTS(Fast Training Sequence)를 포함할 수 있다. 이러한 세트들 및 제어 수퍼시퀀스들은 사전 정의될 수 있으며, 임의의 패턴이나 16진수 표현, 그리고 임의의 길이를 가질 수 있다. 예를 들어, 순서화된 세트들 및 수퍼시퀀스들은 8 바이트, 16 바이트, 또는 32 바이트 등의 길이일 수 있다. 일 예로서, FTS는 부분 폭 전송 링크 상태의 종료 동안에 빠른 비트 락을 위해 추가적으로 이용될 수 있다. FTS 정의는 레인당 일 수 있고, FTS의 회전된 버전을 이용할 수 있다.
일 실시예에서, 수퍼시퀀스들은 트레이닝 시퀀스 스트림에서, EIEOS와 같은 EOS의 삽입(insertion)을 포함할 수 있다. 일 구현에서는, 시그널링이 시작될 때, 레인들은 스태거링 방식으로 파워-온 한다. 그러나, 이것은 일부 레인들 상의 수신기에서는 차단된 것으로 보이게 되는 초기의 수퍼시퀀스들을 야기할 수 있다. 그러나 수퍼시퀀스들은 짧은 간격에 걸쳐 반복될 수 있다(예를 들어, 대략 천 유닛 간격(또는 ~1KUI)). 트레이닝 수퍼시퀀스들은 디스큐, 구성 중의 하나 이상을 위해 그리고 초기화 타겟, 레인 맵 등을 전달하기 위해 추가적으로 사용될 수 있다. EIEOS는 다른 예들 중에서도, 비활성에서 활성 상태로의 레인의 전환, 양호한 레인들의 선별, 심볼 및 TS 경계들의 식별 중의 하나 이상을 위해 사용될 수 있다.
도 8로 돌아가면, 예시적인 수퍼시퀀스들의 표현들이 나타나 있다. 예를 들어, 예시적인 검출 수퍼시퀀스(805)가 정의될 수 있다. 검출 수퍼시퀀스(805)는 단일 EIEOS(또는 다른 EOS) 다음에 사전 정의된 수의 특정 트레이닝 시퀀스(TS)의 인스턴스들이 뒤따르는 반복 시퀀스를 포함할 수 있다. 일 예에서, EIEOS가 전송된 다음에 7개의 반복된 TS 인스턴스들이 즉시 뒤따라 전송될 수 있다. 7개의 TS들 중 마지막 것이 송신될 경우, EIEOS가 다시 송신된 다음에 7개의 추가적인 TS의 인스턴스들이 뒤따라 송신될 수 있다. 이 시퀀스는 특정한 사전 정의된 빈도에 따라 반복될 수 있다. 도 8의 예에서, EIEOS는 대략 천 개의 UI들(~1KUI)마다 한번씩 레인들 상에 다시 나타나면서 검출 수퍼시퀀스(805)의 나머지가 뒤따를 수 있다. 수신기는 반복 검출 수퍼시퀀스(805)의 존재에 대하여 레인들을 모니터링할 수 있으며, 검증시에, 수퍼시퀀스(705)는 원격 에이전트가 존재하고 있다거나, 레인들 상에 부가되었다거나(예를 들어, 핫 플러그(hot plug)됨), 어웨이크 상태에 있다거나, 또는 재초기화중이라는 등으로 결론을 내릴 수 있다.
다른 예에서는, 다른 수퍼시퀀스(810)가 폴링, 구성 또는 루프백 조건이나 상태를 나타내도록 정의될 수 있다. 예시적인 검출 수퍼시퀀스(805)와 같이, 링크의 레인들은, 상기 폴링/구성/루프 수퍼시퀀스(810)가 폴링 상태, 구성 상태, 또는 루프백 상태나 조건을 식별하는 수신기에 의해서 모니터링될 수 있다. 일 예에서, 폴링/구성/루프 수퍼시퀀스(810)는 EIEOS로 시작된 다음에 사전 정의된 수의 반복된 TS의 인스턴스들이 뒤따를 수 있다. 예를 들어, 일 예에서, EIEOS 다음에는 31개의 TS의 인스턴스들이 뒤따를 수 있으며, EIEOS는 대략 4천 UI(예컨대, ~4KUI) 마다 반복될 수 있다.
또한, 다른 예에서는, 부분 폭 전송 상태(PWTS) 종료 수퍼시퀀스(815)가 정의될 수 있다. 일 예에서, PWTS 종료 수퍼시퀀스는 수퍼시퀀스에서의 제 1 전체 시퀀스의 송신에 앞서, 전제-조건 레인들로 반복하는 초기 EIEOS를 포함할 수 있다. 예를 들어, 수퍼시퀀스(815)에서 반복될 시퀀스는 EIEOS(대략 1KUI 마다 반복)로 시작될 수 있다. 또한, 고속 트레이닝 시퀀스(FTS)가 다른 트레이닝 시퀀스(TS) 대신에 이용될 수 있으며, 여기서 FTS는 더 빠른 비트 락, 바이트 락, 및 디스큐를 보조하도록 구성된다. 몇몇 구현들에서, FTS는 유휴 레인들이 가능한한 신속하고 중단없이 다시 활성화되게 하는 것을 더 보조하도록 언스크램블링될 수 있다. 링크 송신 상태로의 진입에 앞선 다른 수퍼시퀀스들로, 수퍼시퀀스(815)는 데이터 시퀀스의 시작(SDS)의 송신을 통해 중단 및 종료될 수 있다. 또한, 부분 FTS(FTSp)는, 예를 들어 다른 예들 중에서도, 비트들이 FTSp로 감산 (또는 가산)될 수 있도록 함으로써 새로운 레인들이 활성 레인들로 동기화하도록 지원하기 위해 송신될 수 있다.
수퍼시퀀스들, 예를 들어 검출 수퍼시퀀스(705) 및 폴/구성/루프 수퍼시퀀스(710) 등은 실질적으로 링크의 초기화 또는 재초기화 전반에 걸쳐 잠재적으로 송신될 수 있다. 몇몇 예들에서, 특정 수퍼시퀀스를 수신 및 검출할 시에, 수신기는 레인들을 통해 송신기로 동일한 수퍼시퀀스를 에코잉(echoing)하는 것에 의해 응답할 수 있다. 송신기 및 수신기에 의한 특정 수퍼시퀀스의 수신 및 검증은, 수퍼시퀀스를 통해 전달된 상태나 조건을 확인응답하는 핸드쉐이크로서의 역할을 할 수 있다. 예를 들어, 이러한 핸드쉐이크(예를 들어, 검출 수퍼시퀀스(705)를 이용)는 링크의 재초기화를 식별하는데 사용될 수 있다. 다른 예에서, 이러한 핸드쉐이크는 다른 예들 중에서도, 대응하는 레인들이 백업되는 것을 야기하는, 전기적 리셋 또는 저전력 상태의 끝을 나타내는데 이용될 수 있다. 예를 들어, 전기적 리셋의 끝은 그 각각이 검출 수퍼시퀀스(705)를 전송하는 송신기와 수신기 간의 핸드쉐이크로부터 식별될 수 있다.
다른 예에서, 레인들은 수퍼시퀀스들을 위해 모니터링될 수 있으며, 다른 이벤트들 중에서도, 검출, 웨이크, 상태 종료들 및 엔트리들을 위한 레인들을 스크리닝하는 것과 관련하여 수퍼시퀀스들을 사용할 수 있다. 수퍼시퀀스들의 사전 정의되고 예측 가능한 특성 및 형태는, 또한 비트 락, 바이트 락, 디바운싱, 디스크램블링, 디스큐잉, 적응, 레이턴시 고정, 협상된 지연들, 및 다른 잠재적인 사용으로서 이러한 초기화 작업들을 수행하는데 사용될 수 있다. 실제, 레인들은 이러한 조건들에 반응하고 이를 처리하는 시스템의 능력을 더 빨라지게 하는 그런 이벤트들을 위해 실질적으로 연속적으로 모니터링될 수 있다.
일 실시예에서, 클럭은 데이터 내에 임베드될 수 있으며, 이에 따라 별도의 클럭 레인은 존재하지 않는다. 레인들을 통해 송신된 플릿들은 스크램블링됨으로써 클럭 복원을 가능하게 할 수 있다. 일 예로서, 수신기 클럭 복원 유닛은 샘플링 클럭들을 수신기에게 전달할 수 있다(즉, 수신기는 그 데이터로부터 클럭을 복원하며, 그것을 사용하여 인커밍(incoming) 데이터를 샘플링한다). 몇몇 구현들에서 수신기들은 입력되는 비트 스트림을 연속적으로 적응시킨다. 클럭을 임베드함으로써, 핀아웃이 잠재적으로 감소될 수 있다. 그러나, 대역 내 데이터에 클럭을 임베드하는 것은 대역 내 리셋에 접근하는 방식을 변경할 수 있다. 일 실시예에서, BLS(blocking link state)가 초기화 이후에 이용될 수 있다. 또한, EOS(electrical ordered set) 수퍼시퀀스들이 초기화 동안에 이용됨으로써, 다른 고려사항들 중에서도 리셋을 가능하게 할 수 있다. 임베디드 클럭은 링크 상의 디바이스들 간에 공통일 수 있으며, 이러한 공통 동작 클럭은 링크의 캘리브레이션 및 구성 동안에 설정될 수 있다. 예를 들어, HPI 링크들은 드리프트 버퍼들과의 공통 클럭을 나타낼 수 있다. 이러한 구현은 잠재적 장점들 중에서도, 비-공통 레퍼런스 클럭들에서 사용되는 탄성 버퍼들 보다 낮은 레이턴시를 실현할 수 있다. 또한, 레퍼런스 클럭 분배 세그먼트들은 지정된 범위들 내에서 매칭될 수 있다.
전술한 바와 같이, HPI 링크는 디폴트 파워-업, 초기화 등을 위한 "느린 모드"를 포함하는 배속들로 동작할 수 있다. 각 디바이스의 동작(또는 "빠른(fast)") 속도나 모드는 BIOS에 의해서 정적으로 설정될 수 있다. 링크 상의 공통 클럭은 링크의 양 측에 있는 각 디바이스의 각각의 동작 속도들에 기초하여 구성될 수 있다. 예를 들어, 링크 속도는 다른 예들 중에서도, 두 디바이스 동작 속도들 중의 더 느린 것에 기초할 수 있다. 임의의 동작 속도 변경은 웜(warm) 리셋 또는 콜드(cold) 리셋에 의해 달성될 수 있다.
몇몇 예들에서, 파워-온 시에, 링크는 예를 들어, 100 MT/s의 전송 레이트를 갖는 느린 모드로 초기화된다. 이어서, 소프트웨어는 링크의 동작 속도에 대한 두 측들을 셋업하고, 초기화를 시작한다. 다른 예들에서는, 예를 들어, 느린 모드의 부재시 또는 사용불가능할 시에, 측파대역 메커니즘을 이용하여 링크 상의 공통 클럭을 포함하는 링크를 셋업할 수 있다.
일 실시예에서, 느린 모드 초기화 위상은 동작 속도와 동일한 인코딩, 스크램블링, 트레이닝 시퀀스들(TS), 상태들을 사용할 수 있지만, 이것은 잠재적으로 적은 특징들(전기적 파라미터 셋업 없음, 적응 없음 등)을 갖는다. 또한, 느린 모드 동작 위상은 동일한 인코딩, 스크램블링 등을 잠재적으로 사용할 수 있지만(다른 구현들은 그렇지 않을 수도 있지만), 동작 속도에 비해 적은 상태들 및 특징들을 가질 수도 있다(예컨대, 저전력 상태들 없음).
또한, 느린 모드는 디바이스의 네이티브 PLL(phase lock loop) 클럭 주파수를 사용하여 구현될 수 있다. 예를 들어, HPI는 PLL 클럭 주파수 변경 없이도 에뮬레이트된 느린 모드를 지원할 수 있다. 몇몇 설계들이 느린 속도 및 빠른 속도를 위한 별도의 PLL들을 사용할 수도 있지만, HPI의 몇몇 구현들에서는, 느린 모드 동안에 PLL 클럭이 동일하게 빠른 동작 속도로 실행될 수 있게 함으로써 에뮬레이트된 느린 모드가 달성될 수 있다. 예를 들어, 송신기는 느리고 높은 클럭 신호를 에뮬레이팅하고 이어서 느리고 낮은 클럭 신호를 에뮬레이팅하도록 비트들을 여러번 반복함으로써, 더 느린 클럭 신호를 에뮬레이팅할 수 있다. 이어서, 수신기가 그 수신된 신호를 오버샘플링하여 상기 반복 비트들에 의해 에뮬레이팅된 에지(edge)들을 위치시킬 수 있으며, 그 비트를 식별할 수 있다. 이러한 구현들에서, PLL을 공유하는 포트들은 느린 속도 및 빠른 속도로 공존할 수 있다.
HPI의 몇몇 구현들에서는, 링크 상의 레인들의 적응이 지원될 수 있다. 물리 계층은 수신기 적응 및 송신기(또는 송신자) 적응 양쪽 모두를 지원할 수 있다. 수신기 적응으로, 레인 상의 송신기는, 수신기 로직이 레인의 전기적 특성들에서의 단점들 및 신호의 품질을 식별하도록 처리할 수 있는 샘플 데이터를 수신기에게 송신할 수 있다. 이어서, 수신기는 수신된 샘플 데이터의 분석에 기초하여, 레인의 캘리브레이션으로의 조정을 행함으로써 레인을 최적화할 수 있다. 송신기 적응의 경우에, 수신기는 다시 샘플 데이터를 수신하여 레인의 품질을 기술하는 메트릭들을 전개(develop)할 수 있지만, 이 경우에 (예컨대, 소프트웨어, 하드웨어, 임베디드, 측파대역 또는 그 밖의 채널과 같은 백채널(backchannel)을 사용하여) 메트릭들을 송신기로 전달함으로써, 그 피드백에 기초하여 송신기가 레인에 대한 조정들을 행할 수 있게 한다.
일 예시의 구현예에서, 수퍼시퀀스는 스크램블링될 수 있다. 예를 들어, 수퍼시퀀스의 일부, 예컨대, TS 페이로드는 난수 또는 의사 난수 시퀀스로 이들 일부를 XOR함으로써 스크램블링될 수 있다. 수퍼시퀀스의 다른 부분(예를 들어, EIEOS, TS 헤더, FTS 등)은 언스크램블링된 상태로 남아있을 수 있다. 일 예시에서, 의사 난수 이진 시퀀스(pseudo random binary sequence)는 적어도 23비트(PRBS23)로 이용될 수 있다. PRBS는 특정 선택된 다항식에 따라 생성될 수 있다. 예시에서, PRBS는 비슷한 비트 크기의, 셀프 시드형 저장 요소(self-seeded storage element), 예컨대, 선형 피드백 시프트 레지스터(linear feedback shift register; LFSR)에 의해 생성될 수 있다. LFSR은 길이가 8Mb 이상의 PRBS 시퀀스를 생성할 수 있는 23비트 피보나치 LFSR일 수 있다. PRBS는 시퀀스의 마지막 이후에 반복할 수 있다. 일부 구현예들에서, PRBS23 시퀀스의 전체는, 예를 들어, 적응을 포함하는, 링크의 초기화에서, 사용된 수퍼시퀀스에 포함된 트레이닝 시퀀스의 스크램블링에 사용될 수 있다.
일부 구현예들에서 PRBS 시퀀스의 전체 길이가 사용될 수 있지만, HPI는 이용가능한 PRBS 시퀀스의 가변 길이의 사용(예를 들어, PRBS23 시퀀스의 일부의 사용)을 허용하는 것을 지원할 수 있다. 일부 예시들에서, 디바이스의 제어기는 PRBS 시퀀스의 전체 길이 중 일부만이 이용된다는 것을 명시할 수 있다. 이는, 잠재적인 다른 애플리케이션들 중에서도, 예를 들어, 비트 시퀀스들의 반복성이 요구되는 테스팅 애플리케이션에서 바람직할 수 있다. 소프트웨어 기반 제어기는 적용될 PRBS의 가변 길이를 명시할 수 있다. 예를 들어, 디바이스의 BIOS는 링크상에 적용될 PRBS 길이를 명시할 수 있다. 일부 구현예들에서, PRBS 시퀀스의 전체 길이를 사용하는 것은, 예를 들어, 긴 PRBS 시퀀스의 이점을 최대화하기 위한, 디폴트 설정일 수 있다.
트레이닝 시퀀스들 및 송신 링크 상태(transmitting link state; TLS)에서의 레인 트래픽은 특정 최소 길이(예를 들어, 23비트)의 PRBS로 스크램블링될 수 있다. 스트림에 적용된 시작 시드는 링크 상의 PRBS의 전기적 이점을 강화하도록 레인들 사이에서 변할 수 있다. 하나의 예시의 구현예들에서, (x23+x21+x16+x8+x5+x2+1)과 같은 6-탭 생성 다항식(a 6-tap generator polynomial)을 구현하는 23 비트 피보나치 LFSR에 의해 생성될 수 있다.
적응 시, 에이전트의 송신기는 난수, 또는 의사 난수 패턴을 원격 수신기에 전송할 수 있다. 일부 경우들에서, 스크램블링된 수퍼시퀀스는 패턴으로서 사용될 수 있다. 수신기에서의 로직은 링크의 하나 이상의 레인들의 특성을 결정할 수 있고 예컨대 특성을 기술하는 메트릭 데이터를 생성할 수 있다. 수신기 적응의 경우에서, 수신기는 메트릭에 기초하여 레인에 대한 최적의 구성을 결정하고자 시도할 수 있고 이러한 구성을 수신기에 적용할 수 있다. 송신기 적응의 경우에서, 수신기는 메트릭에 기초하여 레인을 구성 및 적응하도록 송신기 에이전트에 의한 사용을 위해 송신기에 메트릭을 통신할 수 있다. 어느 경우든, 일부 구현예들에서, 하드웨어 또는 소프트웨어는 최적의 설정을 결정하기 위해 알고리즘 순서로 상이한 송신기 설정을 평가하는데 사용될 수 있다.
수신기 적응은 원격 송신기로부터 송신된 폴링 수퍼시퀀스를 사용하여 폴링 상태의 시작에서 개시될 수 있다. 이와 마찬가지로, 송신기 적응은 각각의 송신기 파라미터에 대하여 그 다음 것을 반복함으로써 행해질 수 있다. 두 에이전트는 마스터와 같은 루프백 패턴 상태에 진입할 수 있고 명시된 패턴을 전송할 수 있다. 또한, 두 수신기는 원격 에이전트에서 특정 송신기 설정에 대한 메트릭(예를 들어, BER)을 측정할 수 있다. 두 에이전트는 루프백 마커 상태로 갈 수 있고 그 이후 리셋하고 메트릭 교환을 위해 백채널(느린 모드 TLS 또는 측대파)을 사용할 수 있다. 메트릭에 기초하여, 다음 송신기 설정이 식별될 수 있다. 결국, 최적 송신기 설정이 식별될 수 있고 후속 사용을 위해 저장될 수 있다.
일부 구현예들에서, 적응 동안 타이머가 사용될 수 있다. 사전결정된 타이머 값의 결론으로, 송신기 및 수신기가 적응 작업을 마치고 성공적으로 레인을 적응시키도록 허용하기에 타임 값이 충분히 길었다는 가정 하에서, 적응이 종료될 수 있다. 다른 구현예들에서, 대안적인 접근법이 링크의 적응의 효율성을 개선하는데 사용될 수 있다. 예를 들어, 일 예시에서, 핸드쉐이크는 적응에 사용된 시간을 적응을 완료하는데 실제 사용된 시간에 맞추기 위해 채용될 수 있다. 일 예시에서, 송신기에 의해 송신된 샘플로부터 메트릭을 생성하는 역할을 하는 제 1 에이전트에서의 수신기는, 적응이 수신기 또는 송신기에 의해 수행되었는지에 상관없이 수신기가 링크(또는 레인(들))의 구성을 승인한다는 것을 송신기에 알리는 신호를 송신할 수 있다. 신호를 수신하면, 송신기는 확인응답 신호를 송신함으로써 핸드쉐이크를 완료할 수 있다. 일부 경우들에서, 확인응답은 다른 예시들 중에서도 송신기 에이전트에서 링크 구성에 관한 유사한 승인을 표시할 수 있다.
메트릭 정보 및 다른 피드백은 다양한 메커니즘을 통해 링크의 적응에 관하여 수신기 에이전트로부터 송신기 에이전트에게 통신될 수 있다. 송신기 적응의 경우, 송신기는 레인의 특성을 개선하기 위하여 레인의 하나 이상의 속성들에 행해질 수 있는 변경들을 식별할 수 있다. 송신기는 이러한 변경을 행할 수 있고 이러한 변경을 반영하는 레인 상에 추가 샘플 데이터를 송신할 수 있다. 몇몇 경우들에서, 변경의 품질을 보고하기 위해, 수신기는 그 이후 추가 메트릭 데이터 또는 피드백을 제공할 수 있다. 일 예시에서, 수신기는 백채널을 통해 메트릭 정보를 제공할 수 있다. 일 예시에서, 그러한 백채널은 소프트웨어 툴이 송신기로부터 수신된 샘플의 품질을 분석하게 하는 느린 모드로 링크(또는 하나 이상의 레인들)를 송신함으로써 소프트웨어 기반 백채널로서 구현될 수 있다. 소프트웨어 툴은 메트릭 정보 또는 구성 추천(configuration recommendation)으로 하여금 송신기 에이전트에 통신되게 할 수 있다. 이는 대역 내 통신, 소프트웨어-소프트웨어 메시지, 또는 다른 수단을 통해 달성될 수 있다. 다른 예시에서, 측대파 채널(a side band channel)은 백채널로서 사용될 수 있다(디바이스(들) 상에서 이용가능할 때). 또 다른 예시에서, 하드웨어 기반 채널은, 예컨대, 샘플의 전송을 위해 두 에이전트들 사이에서 하나의 레인을 예약함으로써 및 피드백 메트릭 데이터의 전송을 위해 (적어도 적응 이벤트 동안) 제 2 레인을 예약함으로써, 백채널로서 사용될 수 있다. 또 다른 예시에서, 피드백 메트릭 데이터의 송신을 위해 제어 또는 BLS 윈도우를 레버리지하는 임베딩된 채널이 이용될 수 있다. 일부 예시들에서, 제어 윈도우는 (소프트웨어에 의해 분석가능하도록) 느린 모드로 설정될 수 있고, 제어 간격은, 다른 잠재적 예시들 중에서도, 동작 속도로 샘플을 통신한다.
일부 경우들에서, 적응은 마스터-마스터 루프백 상태에서 송신기에 의해 수신기로의 PRBS(수퍼시퀀스의 PRBS 스크램블링된 부분)의 송신을 포함할 수 있다. 레인 상의 두 에이전트는 PRBS에 락킹할 수 있고 시퀀스를 적응을 위한 기준 시퀀스로서 사용할 수 있다. 하나 또는 두 에이전트는 기준 시퀀스를 수신할 수 있고 기준 시퀀스가 에이전트의 수신기에서 적절히 재생성되었는지를 결정할 수 있다. 하나 또는 두 에이전트는 그 이후 수신된 시퀀스를 예상 기준 시퀀스와 비교한 것에 기초하여 레인의 품질을 각각 평가할 수 있다. 예를 들어, 비트 에러 레이트는 비교에 기초하여 레인에 대하여 결정될 수 있다. 추가적으로, 송신기(또는 수신기)에서의 로직은, 다른 특징 중에서도, 레인의 품질을 테스트(예를 들어, 노이즈에도 불구하고 수신기에서 신호를 여전히 이해할 수 있는지 여부)하는 루프백 동안 송신 이전에 지터, 노이즈, 또는 신호에 대한 다른 특성을 의도적으로 주입할 수 있다. 결정된 비트 에러 레이트를 포함하는, 그러한 평가의 결과는 링크를 적응시키는데 사용된 메트릭 데이터에 포함될 수 있다.
셀프 테스트는 HPI의 일부 구현예들(예를 들어, 인터커넥트 빌트 인 셀프 테스트(Interconnect Built-In Self Test; IBIST))에 제공된 기능을 통해 수행될 수 있다. 수퍼시퀀스는 그러한 셀프 테스트에 이용될 수 있다. 예를 들어, 송신기 또는 마스터는 수퍼시퀀스, PRBS 시퀀스, 또는 다른 시퀀스의 전체 또는 일부를 포함하는 패턴을 송신할 수 있다. 그러한 시퀀스의 길이 및 반복성은 일부 경우들에서 제어될 수 있으며, 이는 특정 시퀀스의 전체 길이가 일부 경우들에서 적용되게 하지만, 다른 경우들에선 시퀀스의 일부(및 반복) 부분만을 적용한다. 일부 예시들에서, PRBS23 또는 PRBS23를 사용하여 스크램블링된 시퀀스는 링크의 셀프 테스트에 이용될 수 있다. 추가적으로, 시퀀스의 시작 마지막 포인트가 특히 선택되고 셀프 테스트 및 다른 기능에 사용될 수 있다. 또한, 복수의 비상관 데이터 시퀀스(non-correlated data sequences)는, 상이한 데이터 시퀀스들이 주변 레인들에 적용도게 하는 HPI의 일부 구현예들을 통해 이용가능해질 수 있다. 일 예시에서, PRBS의 복수의 비상관 버전, 예컨대, 다른 예시들 중에서도 4개 이상의 시퀀스가 제공될 수 있다.
앞서 논의된 바와 같이, 루프백은 테스팅, 적응, 초기화 등을 포함하는 다양한 작업에 사용될 수 있다. 루프백 내 두 에이전트의 동기화는 일부 경우들에서 어려울 수 있다. 예를 들어, 수신기의 에이전트는, 특정 트레이닝 시퀀스, 수퍼시퀀스 등과 같은 데이터에서 비롯될 수 있다. 또한, 루프백 진입 시, 수신기는, 이는 루프백하는 트레이닝 시퀀스와 같이, 데이터를 스플라이스(splice)할 수 있고 이는 데이터에서 비롯되었고 이는 루프백한다. 일 예시에서, 루프백 내 송신기 또는 마스터는 수신기 에이전트에 의해 기인된 TS 상의 락으로부터 루프백된 TS 상의 락으로 천이하는 로직을 포함할 수 있다. 그러한 TS 락은 에일리어싱의 위협 및 다른 문제들을 나타낼 수 있다. 일 예시에서, TS의 페이로드와 같은 TS는 새롭게 루프백된 TS들과 이전 TS을 혼돈하거나 에일리어싱할 위험성을 개선하는데 보조하도록 포맷될 수 있다. 예를 들어, 일 예시에서, TS는 디스크램블링을 위해 사용된 바이트뿐만 아니라 다른 이중 사용 반전된 바이트를 포함할 수 있는 제로화된 데이터의 서픽스를 제공받을 수 있다. 그러한 제로화된 바이트는, 다른 예들 중에서도, 새롭게 루프백된 TS가 수신기에서 비롯된 그리고 수신기에 의해 스플라이싱된 데이터 중에서 손실될 위험성을 (통계적으로) 감소 또는 제거하는데 추가적으로 사용될 수 있다. 루프백에서, 마스터는 이의 패턴의 무결성(integrity)을 검사하고, 예를 들어, 대역 내 파라미터 페이로드를 위해 사용된 핸드쉐이크(ACK) 및 변경되지 않은 페이로드를 갖는 NAK TS를 갖는 NAK-ACK 핸드쉐이크의 사용을 통해, 루프백 이후에 재락킹할 수 있다. 또한, 마스터-마스터 루프백은 마스터-마스터 루프백의 각 측에서 TS 락에 사용되는 TS 포맷으로 또한 지원될 수 있다.
HIP의 일부 구현예들에서, 테스트 특징을 위한 설계가 제공될 수 있다. 일 실시예에서, HPI는 사전 설계 테스트(post-design test), 디버그(debug), 및 검증(validation)을 가능하게 하도록 후크(hook)를 포함한다. 그러한 특징들에 관한 예시의, 철저한 리스트가 아래에 포함된다. 다음의 특징들은 예시로서 제공되며, 일부는 생략될 수 있고, 다른 것이 추가될 수 있다.
단일 스텝(single step): 단일 스텝은 소프트웨어가 에이전트를 초기화 상태를 통해 TLS와 같은 링크 상태로 스텝핑할 수 있는 디버그 특징을 포함한다. 저장 요소, 레지스터, 또는 (소프트웨어 액세스가능한) 신호는 이 모드를 가능하게 할 수 있다. 이러한 모드에서, 에이전트는 세마포어(a semaphore)를 상태에 진입하게 설정할 수 있고 상태 액션을 수행할 수 있다. 그러나, 종료 조건이 (제 2 타임아웃을 포함) 도달되면, 세마포어는 다음 상태 천이가 취해지지 않게 할 수 있다. 여기서, 실제 천이는, 예컨대, 세마포어를 클리어함으로써, 소프트웨어 기반 제어기의 방향을 발생시킬 수 있다. 이는 소프트웨어로 하여금 전송 상태 또는 루프백에 대한 진행 동안 물리 계층을 검사하게 한다. 이는, 다른 예들 중에서도, 하위 세마포어를 하위 상태로의 진입으로 설정함으로써 하위상태로 연장될 수 있다는 것을 주목하자. 에이전트는, 세마포어, 예컨대, 레지스터 내 비트가 설정되어 있는 한, 현재 상태로 남아있을 수 있다. 모든 상태의 천이는 홀드 비트가 외부 에이전트에 의해 클리어될 때까지 지연될 수 있다. 상태 규칙 정의 종료 기준은 타임 아웃 등을 포함하는 경우를 제외하고는 달리 유지될 수 있다. 2차 타이머는 디스에이블될 수 있다(예를 들어, 무시될 수 있다). 여기서, 홀드 비트의 클리어링은, 다른 예들 중에서도, 단일 스텝핑 동작에 대한 2차 타이머 타임 아웃을 제거하는 대체 자극으로 고려될 수 있다. 또한, 소프트웨어의 보조를 갖는 단일 스텝핑은 포워드 진척의 무결성을 지원하는 방식으로 수행될 수 있다.
초기화 중단 동결(Freeze on Initialization Abort): 이는 에이전트가 초기화 중단 시 리셋 상태로의 천이를 즉시 행하지 않는 디버그 특징이며, 천이를 지연 또는 유예하여 소프트웨어 기반 툴이 중단의 원인을 식별할 수 있다. 예를 들어, 소프트웨어 기반 툴은 퇴행(regress) 및 재초기화의 무결성을 지원하는 동안 중단에 대한 이유를 조사하는데 사용될 수 있다. 제어 레지스터와 같은 하나 이상의 비트를 가지고 있는 레지스터의 하나 이상의 필드는 이 액션을 제어할 수 있다. 이러한 특징은 고장으로 인한 상태 종료에 소프트웨어 제어를 제공함으로써 단일 스텝을 보완한다(단일 스텝은 정상 진행 시 행함). 일 실시예에서, 디폴트에 의해, 물리 계층 상태 머신은 임의의 초기화 중단 이후에 리셋 상태로 즉시 천이함으로써 재시도할 수 있다. 그러나, 상태 머신은 고장 시, 레지스터 내 초기화 동결 비트를 설정함으로써 리셋 상태로 천이하지 않고 동결(즉, 동일 상태로 남아 있음)될 수 있다. 일 예시로서, 초기화 중단 동결 모드에서, 초기화 중단이 발생하는 경우, 상태 머신은 레지스터 내에서 전술된 세마포어와 같은 상태 머신 홀드 비트를 설정함으로써 동결한다. 일 실시예에서, 소프트웨어는 정지된 상태 및 다른 동결 자원을 판독하기 위해 레지스터에 액세스할 수 있고 동결 상태를 사용하여 상태 머신을 디버그할 수 있다. 이 동결 상태 내 홀드 비트를 클리어링하는 것은 상태 머신으로 하여금 리셋으로 종료하게 한다. 일 실시예에서, 대역 내 리셋은 홀드를 복구하지 않는다.
자동화된 테스트 장비(Automated test Equipment; ATE): 자동화된 테스트 장비(ATE)는 TLS를 포함하는 다양한 상태에서 링크의 특징을 나타내는데(예를 들어, 마진(margin)) 사용될 수 있다. 이 경우, ATE는 에이전트로서 동작할 수 있고 전송 패턴의 사전결정된 세트를 사용하여 테스트 중인 디바이스(device under test; DUT)를 TLS로 만들 수 있다. ATE 모드에서, 레지스터 내 하나 이상의 비트를 가진 ATE 모드 필드가 설정될 수 있다. DUT는 동일한 상태 액션을 행하지만 종료 조건에 도달하는 경우, 다음 상태 천이는 취해지지 않고 2차 타임아웃이 발생할 때 실제 천이가 발생한다. 따라서, 이 모드는 천이가 소프트웨어 중재 대신에 사전 프로그래밍된 타임아웃 시에 발생하는 것을 제외하고는 단일 스텝과 유사하다. 예를 들어, ATE 모드는 상태들을 통해 진행에 기초하여 프로그램가능 타이머를 관리할 수 있다. 모드 동안 설정된 긴 타이머는 상태 내 핸드쉐이크로 하여금 소프트웨어 관리에 의해 명시될 때 아직 종료하거나 그렇지 않다면 ATE 모드에서 사용되는 동안 완료되게 할 수 있다.
일부 경우들에서, HVM(high volume manufacturing) 테스트는 DUT 포트의 송신기를 그 자신의 수신기와 접속시키고 각각의 초기화 모드에 대한 시그니처 패턴(루프백 또는 컴플라이언스 슬래이브 제외)이 송신되고 DUT를 통과 또는 실패한 것으로 확인되는 TLS에 링크 쌍을 얻음으로써 수행될 수 있다. 이는 특수 모드 없이 달성될 수 있지만, 레이턴시 고정은 정확한 사이클로 시그니처를 확인하기 위해 수행될 수 있다.
인터커넥트 빌트 인 셀프 테스트(Interconnect Built in self test; IBIST): IBIST는 컴플라이언스 및 루프백 상태를 사용하여 패 빌트 인 패턴 생성기 및 확인기(checkers)와의 인터커넥트를 테스트한다.
컴플라이언스 (Compliance): 에이전트는 검증 목적을 위해 컴플라이언스 마스터 또는 슬래이브로 이뤄질 수 있다. 에이전트는 송신기 캘리브레이트 상태(transmitter calibrate state; TCS)로부터 컴플라이언스에 진입한다. 슬래이브는 이를 자신의 로컬 클럭으로 재타이밍(re-timing)한 이후에 마스터로부터 입력 데이터를 루프백한다(임의의 극성 반전 또는 레인 반전의 언도(undo) 없이). 마스터는 컴플라이언스 패턴을 송신하고 슬래이브로부터 루프백된 것을 수신한다. 마스터는 더 특별화된 패턴을 시험해보도록 루프백 패턴에 송신될 수 있다. 마스터는 또한, 이의 송신기가 특징을 나타낼 수 있도록, 슬래이브 없이 사용될 수 있다. 컴플라이언스의 전형적인 사용은 루프백이 기능하지 않을 때 레인들의 일부 서브세트 상의 아날로그 프론트 엔드의 동작을 특징짓는 것이다. 컴플라이언스 상태는 지터 또는 노이즈 조사, 디버그, 링크 수색(exploring a link) 등에 이용될 수 있다. 컴플라이언스 상태는 마스터로부터 송신기를 이용하여 수퍼시퀀스를 구동할 수 있다. 수신기는 모니터 레인 상의 웨이크를 찾고, 웨이크를 디바운싱하고, 잘못된 레인들(bad lanes)을 드롭하고, 적응시키고 비트 락 등을 한다. 슬래이브 송신기는 자신의 수신기 액션이 완료될 때까지 컴플라이언스 패턴을 구동할 수 있다. 그 이후 루프백은 재타이밍되고 논디스큐잉된다. 슬래이브 수신기는 유사한 모니터 및 디바운드 등의 액션을 행한다. 종료는, 다를 예시들 중에서도, 타이밍된 리셋과 같은 리셋 상태로, 또는 테스트를 시작하는 루프백 패턴 상태로 이뤄질 수 있다.
루프백 ( Loopback ): 에이전트는 레인들의 서브세트의 상세한 검증을 위해 루프백 마스터로 실시될 수 있다. 성공적인 폴링 이후에, 마스터는 레인들의 서브세트를 이용하여 루프백에 진입하고 다른 에이전트는 또한 슬래이브로서는 아닌 루프백에 진입한다. 루프백 마스터는 폴링 트레이닝 시퀀스(TS) 내 루프백 마스터 비트를 사용하여 루프백에 진입하려는 자신의 의도를 통신할 수 있다. 루프백 마스터는 아니고 TS 폴링 내 그 비트를 수신하는 에이전트는 루프백 슬래이브가 될 수 있다. 폴링의 마지막에서, 접속된 양쪽 포트들은 루프백 마커 상태(Loopback Marker state; LMS)에 진입한다. 거기서부터, 마스터는 슬래이브를 루프백 패턴 상태로 취하고, 패턴들을 송신하고 이 패턴들이 슬래이브에 의해 루프백된 이후에 이 패턴들을 체크한다. 루프백 슬래이브는 디스큐된 데이터를 루프백한다(컴플라이언스 슬래이브와 다름). 상태 머신은 다른 것 이후에 하나의 테스트를 무기한으로 수행하는 루프백 내에 머물 수도 있다. 이는 비트 락을 잃지 않고서 테스트를 캐스케이드(cascading)하게 할 수 있다. Tx 적응은 또한 루프백 패턴 생성 및 검사 능력을 사용할 수 있다. Tx 적응 동안, 양쪽 에이전트는 마스터로서 역할을 하지만, 하나의 시나리오에서 Tx는 패턴을 송신하고 Rx는 비트 에러를 체크한다.
패턴 생성(Pattern Generation): 패턴 생성기는 컴플라이언스 및 루프백 상태에서 활성화될 수 있다. 일 실시예에서, 패턴 생성기, 예컨대, 도 10의 간략화된 블록도에 도시된 예시의 패턴 생성기는 하나 이상의 패턴 버퍼들을 포함할 수 있고, 각각은 레지스터와 같은 구조를 통해 액세스되는 복수의 23비트(또는 다른 길이) LFSR 시드 버퍼 및 특수 크기(예를 들어, 128비트)를 갖는다. 패턴 생성기의 워드는 패턴 버퍼 선택을 통해 간접적으로 어드레싱될 수 있다.
일 예시의 구현예에서, 패턴 버퍼의 콘텐츠는 우선 적어도 상당한 비트로 순차적으로 시작하는 인에이블된 레인들의 각각 내에 송신된다. 각각의 레인은 레지스터 메커니즘을 이용하는 임의의 버퍼를 선택할 수 있다. 동일한 패턴 버퍼를 선택하는 모든 레인들은 UI 내 동일한 데이터를 전송한다. 각각의 패턴 버퍼는 또한 패턴 제어 레지스터와 같은 레지스터 내 비트들을 사용하여 인에이블되는, 23 비트 의사 난수 생성기에 의해 독립적으로 스크램블링될 수 있다. 임의의 레인 내 전송은 예를 들어, 패턴 반전 선택 레지스터(Pattern Invert Selection Register)를 사용하여 개별적으로 반전될 수 있다. 자동 반전 특징은, 다른 예시들 중에서도, 패턴 생성기 제어 레지스터의 자동 반전 인에이블 비트를 사용하여 크로스 토크 패턴을 생성하도록 인에이블될 수 있다. 루프백을 사용하는 송신기 적응에 대하여, 스태거링된 PRBS23 패턴이 선택될 수 있다. 이 패턴은 또한 저전력 상태에서 플릿들을 스크램블링하는데 사용될 수 있다. 루프 카운트가 수신된 128 비트 패턴의 총 개수를 참조하는 것과 같이, 송신된 패턴들의 개수는 패턴 생성기 제어 레지스터 내 루프 카운트보다 더 많을 수도 있다. 마스터는 128 UI 패턴의 진정수(integral number)를 송신할 수 있다. 패턴 생성기 콘텐츠는 다음의 3가지 종료 조건 중 적어도 하나가 발생할 때까지 지속적으로 전송될 수 있다: (ⅰ) 루프 카운트 상태가 지수 루프 카운터와 같은 경우, (ⅱ) 에러 시 중지(Stop On Error)는 레지스터에 설정되고 임의의 레인 상의 에러가 발생함, 또는 (ⅲ) 테스트 중지는 레지스터에 설정됨. 디폴트에 의해서, 송신기 데이터 레인 드롭 상태 레지스터 내 드롭된 레인들에 의해 표시된 바와 같이 검출되지 않은 송신기 레인들 및 수신기 데이터 레인 드롭 상태 레지스터 내 드롭된 수신기 레인에 의해 표시된 바와 같이 드롭된 수신기 레인들은 임의의 패턴을 비교하거나 전송하지 않는다. 인클루드 드롭 레인 비트(Include Dropped Lanes bit)가 패턴 생성기 제어 레지스터 내에 설정된 경우, 드롭된 레이들은 또한 루프백 패턴 상태 내 패턴들을 구동 및 체크한다. 디스에이블된 레인들은 테스트에 참여하지 않을 수 있다. 또한, 슬래이브 송신기 레인 콘텐츠는 슬래이브 루프백 경로 선택 레지스터를 통해 제어될 수 있어서 Rx 레인으로부터 콘텐츠를 루프백하거나 패턴 생성기를 선택한다. 일부 경우들에서, 다른 특징들, 구조들, 및 예시들 중에서도, 루프백된 데이터와 슬래이브 생성된 패턴 사이에 정렬 요구사항(alignment requirement)이 존재하지 않을 수 있다.
패턴 체크 및 에러 카운팅 (Pattern Check and Error Counting): 패턴 체킹은 루프백 패턴에서 인에이블될 수 있다. 각각의 수신기 레인은 수신된 데이터를 대응 송신기 레인 내 전송된 데이터에 대하여 비교할 수 있다. 슬래이브 측 체킹은 루프백 마스터와 슬래이브 양측에서 동일한 정확한 패턴 생성 값을 프로그래밍함으로서 달성될 수 있다. 체킹 및 패턴 버퍼 스크램블링의 시작은 SDS의 마지막에 의해 마킹될 수 있다. 각각의 레인은 비교하도록 선택할 수 있거나 레지스터 값에 의존하지 않을 수 있다. 체크된 패턴의 개수는 루프 카운트에 의해 제어될 수 있다. 모든 카운트는 128비트의 패턴 버퍼 데이터를 표시한다. 루프 카운터는 긴 시간 동안 테스트를 가능하게 하도록 5비트의 지수 카운트를 가질 수 있다. 제로의 루프 카운트 값은 유한 카운트에 대응하며, 여기서, 일부 구현예들에서, 테스트는 테스트 중지 비트(Stop Test bit)를 설정함으로써 단지 종료될 수 있다. 루프백 패턴으로의 진입 시 동기화된 전기 파라미터 애플리케이션을 수용하기 위해서, 체킹은 패턴 체커 제어 레지스터 내 타임 값에 의해 명시된 타임 동안 마스킹될 수 있다. 체킹은 패턴 체커 제어 레지스터 내 선택적인 에러 체크 간격 및 선택적인 에러 체크 시작을 사용하는 간격으로 임의의 1비트 상에 선택적으로 행해질 수 있다
루프백 내 송신기 적응 동안, 양측 에이전트는 마스터로서 역할할 수 있으나 송신기는 패턴을 송신하고 수신기는 비트 에러를 체크한다. 다른 차이점은 루프백에 진입하기 이전에 테스트 시작(Start Test)이 설정되고 구조는 루프백 마커 내 테스트의 실제 시작을 지연(SDS를 송신)하는데 사용될 수 있다는 것이다. 루프백 패턴에서 루프 카운트가 만료된 경우, 송신기 적응 테스트를 종료하면서, 에이전트는 루프백 마커로 돌아가고, 타임아웃을 기다리고, 그 이후 백채널 동작에 대한 리셋으로 종료할 수 있다. 일련의 송신기 파라미터들이 시도되는 경우, 다른 예시들 보다도, 에이전트는 마지막 파라미터가 시도될 때까지 리셋 대신에 루프백 패턴으로 다시 돌아갈 수 있다.
에러 카운팅은 레인마다 집합적으로 수행되거나 전역 카운터에 의해 수행될 수 있다. 에러 카운터는 레인 에러 카운터 레지스터를 통해 액세스 가능할 수 있다. 전역 카운터에 대하여 관찰되고 선택된 레인은 패턴 체커 제어 레지스터 내 수신기 에러 카운터 레인 선택 필드에 의해 표시될 수 있다. 에러 카운터의 최소로 중요한 8비트는 모든 레인에 대하여 이용가능할 수 있다. 레인 에러 카운터 레지스터의 최대로 중요한 23비트는 상태 머신이 루프백 패턴에 진입할 때 수신기 에러 카운터 레인 선택에 의해 표시된 선택된 레인에 대해서만 이용가능할 수 있다. 레인 에러 카운터 레지스터는 최대 값만을 고수하지 않지만 그 대신 퍼 레인 기준(a per lane basis)으로 오버플로우 플래그(예를 들어, 에러 카운터 레지스터의 비트 31)를 설정함으로써 표시되는 모든 0들로 롤오버한다. 최대 에러 카운터 상의 선택되지 않은 레인들 동결에서 퍼 레인 카운터들(per lane counters)은 오버플로우를 마킹할 수 있다. 초기 마스킹, 선택적인 에러 체킹, 및 루프카운트 스톨(Loopcount Stall)은 또한 에러 카운터에 적용될 수 있다. 소프트웨어는, 다른 예시들 중에서도, 모든 1들을 비트 31:0에 기록함으로써 레인 에러 카운터 레지스터를 수동으로 클리어할 수 있다.
레인 반전(Lane Reversal): 레인 반전 또는 극성 반전이 폴링 시 수신기에서 검출되는 경우, 패턴 체킹(그리고 슬래이브인 경우엔 루프백)은 반전 및 레인의 극성 반전을 언도(undo)한 이후에 행해질 수 있다.
에이전트 루프백 마커 상태(Agent Loopback Marker State): 루프백 마커는 에이전트 상태이지만 다른 에이전트 상태들과 달리 마스터 및 슬래이브 액션 및 종료는 상이할 수 있다. 루프백 슬래이브는 임의의 극성 반전 및/또는 레인 반전을 언도할 수 있으나 루프백된 비트들을 디스크램블링 또는 리스크램블링할 수 없다. 확인응답 교환은 슬래이브가 루프백하고 있기 때문에 슬래이브에 적용될 수 없다. 슬래이브는 심볼 경계상에 루프백하기 전에 디스큐할 수 있기 때문에, 마스터는 강제로 재-바이트락(re-bytelock) 또는 재-디스큐(re-deskew)되지 않지만 마스터는 동일한 에일리어스에 대한 락을 피하기 위해 트레이닝 시퀀스를 재-락킹할 수 있다. 이를 행하는 수단은, TS 및/또는 EIEOS 또는 이들의 일부 조합을 비교하는, LFSR의 재-시딩을 포함할 수 있다. SDS의 마지막은 루프백 셋업의 마지막, 패턴 생성, 체킹 및 카운팅의 시작을 마킹한다.
에이전트 루프백 패턴 상태(Agent Loopback Pattern State)(또는 블록 링크 상태): 이 상태에서, 제어 패턴 대신에, 마스터 송신기는 IBIST 패턴을 송신할 수 있고 마스터 수신기는 수신된 패턴 내 에러를 체크할 수 있다. 송신기 적응을 위해 양측 에이전트는 마스터일 수 있다. 사전결정된 기간 동안, 송신기는 패턴을 송신할 수 있고 원격 수신기는 이 패턴을 비교하고 레지스터와 같은 저장 요소 내에 기록되는 수신된 패턴에 대한 메리트(merit) 또는 메트릭의 수치를 결정할 수 있다. 비교 방법 및 메트릭은 설계에 의존적일 수 있다(예를 들어, 지터 주입을 이용한 BER). 이 기간의 마지막에, 양측 에이전트는 백채널에 대한 리셋으로 종료하여 메트릭을 시험하고 송신기 적응의 다음 반복을 셋업할 수 있다.
레인 인에이블 / 디스에이블 (Lane Enable/Disable): 레인들은 링크로 하여금 더 낮은 길이로 동작하게 하도록 송신기, 수신기, 또는 양측에서 디스에이블될 수 있다. 레인들이 반전되는 경우 정확한 레인들을 디스에이블하는 것은 소프트웨어 기반 제어기 또는 툴의 역할일 수 있다.
전술된 바와 같이, 타이머 및 제어 모두(예를 들어, 제어 신호들, 핸드쉐이크 등)는 HPI 환경 내에서 에이전트들 상에 정의된 상태 머신 내에서의 천이를 가능하게 하는데 사용될 수 있다. 예를 들어, 타이머는 시그널링이 다른 상태 천이에서 사용될 수 있는 일부 상태 천이에서 사용될 수 있다. 또한, 메커니즘은 상태 천이를 가능하게 하기 위해 제공될 수 있다. 예를 들어, 전술된 바와 같이, ATE 모드 또는 다른 테스트 모드는, 예를 들어, 시스템의 테스트의 관찰 및 관리를 보고하기 위해, 일부 상태 천이 메커니즘을 중단(override)할 수 있는 일부 구현예들에 제공될 수 있다. 예를 들어, 일 예시의 테스트 모드에서, 각각의 타이머에 따라, 테스트 또는 테스트 관리자에 의해, 모든 상태 천이가 설정될 수 있다. 로직은 또한, 다른 예시들 중에서도, 정의된 타이머에 기초하여 천이하도록 제어 신호로 보통 천이하는 상태들을 구성하는 것을 보조하기 위해 제공될 수 있다. 그러한 다른 예시들은, 예를 들어, 소프트웨어 제어기 상태 천이, 예컨대, (예를 들어, 초기화 중단 시의 동결을 통한) 단일 스텝핑을 포함할 수 있다.
전술된 바와 같이, BLS 또는 L0c 윈도우는, 테스트, 초기화, 및 에러 체킹 애플리케이션 내에서를 포함하여, 다양한 제어 코드, 신호, 및 다른 데이터를 통신하는데 이용될 수 있다. BLS 코드의 사전정의된 세트는 BLS를 통해 제공된 UI들의 간단한 윈도우(brief window) 내에서 통신될 수 있는 것으로 정의될 수 있다. 그러나, 천이, 전송 라인 불규칙, 및 다른 팩터들은 제어 코드로 하여금 잠재적으로 오류가 발생하거나 오역되게 할 수 있는 비트 에러로 이어질 수 있다. 로직은, 제어 코드를 변환하고 처리하는데 있어서 더 적은 에러를 확인하기 위해 어느 정도의 에러 검출 및 정정을 수행하도록 링크 상의 에이전트들에 제공될 수 있다. 로직이 여전히 제어 코드 에러를 명확하게 해결할 수 없는 경우, 미스매치가 발생할 수 있다. HPI의 일부 구현예들에서, 특징들은 미스매치의 잠재적인 재해적 부작용(catastrophic side effects)에 응답하도록 제공될 수 있다. 예를 들어, 일 실시예에서, 미스매치의 검출 시, 링크는 유예될 수 있으며, 이는 잠재적으로 오류가 생긴 플릿, 적응, 및 다른 통신의 송신을 포함한다. 링크는 그 이후, 다른 예시들 중에서도, 그 다음 BLS(또는 L0c) 간격의 마지막에 리셋 모드로 자동으로 천이될 수 있다.
링크 상의 양쪽 디바이스들 모두가 동일한 레퍼런스 클럭(예컨대, ref clk)를 런 오프할 수 있으므로, 탄성 버퍼들은 생략될 수 있다(임의의 탄성 버퍼들이 최소 가능한 레이턴시를 가진 드리프트 버퍼들로서 바이패스되거나 사용될 수 있음). 그러나, 위상 조정 또는 드리프트 버퍼들이 각 레인 상에 이용되어 각각의 수신기 비트스트림을 원격 클럭 도메인에서 로컬 클럭 도메인으로 전송시킬 수 있다. 드리프트 버퍼들의 레이턴시는 전기적 스펙(예컨대, 전압, 온도, 레퍼런스 클럭 라우팅 미스매치들에 의해 도입되는 레지듀얼 SSC 등)에서 모든 소스들로부터의 드리프트 합을 처리하기에 충분할 수 있지만, 전송 지연을 감소시키기 위하여 가능한한 작을 수 있다. 드리프트 버퍼가 너무 얕은(shallow) 경우, 드리프트 오류들이 발생하여 일련의 CRC 오류들로서 나타날 수 있다. 따라서, 몇몇 구현들에서는, 다른 예들 중에서도 실제의 드리프트 오류가 발생하기 이전에 물리 계층 리셋을 개시할 수 있는 드리프트 알람(drift alarm)이 제공될 수 있다.
HPI의 몇몇 구현들은 동일한 공칭 레퍼런스 클럭 주파수이며 ppm 차이를 가지고 실행되는 양 측들을 지원할 수 있다. 이 경우에, 주파수 조정(또는 탄성) 버퍼들이 필요할 수 있으며, 확장된 BLS 윈도우 동안에 또는 다른 예들 중에서도, 주기적으로 발생하는 특수한 시퀀스들 동안에 재조정될 수 있다.
HPI PHY 논리 계층의 동작은, 레이턴시가 다른 고려사항들 중에서도, 링크 계층에서의 레이턴시 고정 오류들 또는 타임아웃들을 초래하지 않는다면, 그 아래에 놓이는 전송 매체에 독립적일 수 있다.
외부 인터페이스들은 물리 계층의 관리를 보조하도록 HPI에 제공될 수 있다. 예를 들어, (핀들, 퓨즈들, 다른 계층들로부터) 외부 신호들, 타이머들, 제어 및 상태 레지스터들이 제공될 수 있다. 입력 신호들은 PHY 상태에 대한 임의의 시간에서 변경될 수 있으며, 각각의 상태의 특정 포인트들에서 물리 계층에 의해 관측될 것이다. 예를 들어, (후술하는 바와 같은) 변경 정렬 신호가 수신될 수 있으며, 다른 예들 중에서도, 전송 링크 상태에 링크가 진입한 후에는 아무런 효과도 없다. 마찬가지로, 커맨드 레지스터 값들은 제시간의 특정 포인트들에서만 물리 계층 엔티티들에 의해 관측될 수 있다. 예를 들어, 물리 계층 로직은 그 값의 스냅샷을 취할 수 있으며, 후속 동작들에서 그것을 사용할 수 있다. 따라서, 몇몇 구현들에서, 커맨드 레지스터들의 업데이트들이 비정상적인 동작을 방지하기 위해 (예를 들어, 전송 링크 상태에서 또는 리셋 캘리브레이션에 유지할 때, 느린 모드 전송 링크 상태에서) 특정 기간들의 제한된 서브세트와 관련될 수 있다.
상태 값들은 하드웨어 변경을 추적하기 때문에, 판독 값들은 그들이 판독된 시점에 따라 달라질 수 있다. 그러나, 일부 상태 값들, 예를 들어 링크 맵, 레이턴시, 속도 등은 초기화 이후에 변경될 수 있다. 예를 들어, 재-초기화(또는 저전력 링크 상태(LPLS), 또는 L1 상태, 종료)는 이들이 변경되게 할 수 있는 유일한 것이다(예를 들어, 다른 예들 중에서도, 재-초기화가 트리거링될 때까지는, TLS에서 하드 레인 실패가 링크의 재구성을 초래할 수 없다).
인터페이스 신호들은, 외부의 신호들이지만 물리 계층 동작에 영향을 미치는 신호들을 포함할 수 있다. 예들로서, 이러한 인터페이스 신호들은 인코딩 및 타이밍 신호들을 포함할 수 있다. 인터페이스 신호들은 설계 특정한 것일 수 있다. 이러한 신호들은 입력 또는 출력일 수 있다. 몇몇 인터페이스 신호들, 예를 들어 다른 예들 중에서도, 용어 신호장치 및 EO로 불리는 것은, 어써션 에지(assertion edge)마다 한번씩 활성 상태가 될 수 있으며, 즉, 그들은 어써트 해제된 후에 다시 어써트됨으로써 다시 효력을 나타낼 수 있다. 예를 들어, 표 1은 예시적 기능들에 대한 예시적 목록을 포함한다:
CSR 타이머 디폴트 값들은 쌍으로 제공될 수 있다 - 하나는 느린 모드용이고 하나는 동작 속도용임. 몇몇 예들에서, 값 0은 타이머를 디스에이블시킨다(즉, 타임아웃이 일어나지 않음). 타이머들은 아래의 표 2에 도시된 것들을 포함할 수 있다. 주 타이머들은 일 상태에서 기대되는 동작들을 타이밍하는데 사용될 수 있다. 보조 타이머들은 진행되고 있지 않는 초기화들을 중단시키거나 자동 테스트 장비(또는 ATE) 모드로 정확한 시간에서 순방향 상태 천이들을 행하는데 사용된다. 몇몇 경우들에서, 보조 타이머들은 일 상태의 주 타이머들보다 훨씬 더 클 수 있다. 지수 타이머 세트들은 지수함수(exp)로 서픽스(suffix)될 수 있으며, 그 타이머 값은 필드 값에 2 상승된다. 선형 타이머들의 경우, 타이머 값은 필드 값이다. 각각의 타이머는 상이한 입도들을 사용할 수 있다. 또한, 전력 관리 섹션에서 몇몇 타이머들은 타이밍 프로파일로 지칭되는 세트에 존재할 수 있다. 이것들은 동일한 이름을 가진 타이밍 다이어그램과 관련될 수 있다.
명령 및 제어 레지스터들이 제공될 수 있다. 제어 레지스터들은 나중의 액션(late action)일 수 있고, 일부 경우들에서 소프트웨어에 의해 판독되거나 기록될 수 있다. 나중의 액션 값들은 리셋(Reset)에서 지속적으로 효과를 얻을 수 있다 (예를 들어, 소프트웨어-페이싱(software-facing)으로부터 하드웨어-페이싱(hardware-facing) 스테이지로 통과할 수 있다). 제어 세마포어들(프리픽스된 CP)은 RW1S이고, 하드웨어에 의해 클리어될 수 있다. 제어 레지스터들은 여기에 설명하는 임의의 아이템들을 수행하기 위해 이용될 수 있다. 이들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 변경가능하고 액세스가능할 수 있다.
상태 레지스터들은 (하드웨어에 의해 기록되고 사용된) 하드웨어 변화들을 트래킹하기 위해 제공될 수 있고, 판독 전용일 수 있다(그러나, 디버그 소프트웨어가 이들에 또한 기록될 수 있다). 이러한 레지스터들은 상호운용성에 영향을 미치지 않을 수 있으며, 통상적으로는 다수의 사설 상태 레지스터들로 보완될 수 있다. 상태 세마포어들(프리픽스된 SP)은 이들이 상태를 설정하는 액션들을 다시 수행하기 위해 소프트웨어에 의해 클리어될 수 있기 때문에 명령될 수 있다. 디폴트 평균 초기(온 리셋) 값들은 초기화와 연관된 이들 상태 비트들의 서브세트로서 제공될 수 있다. 초기화 중단시에, 이러한 레지스터는 스토리지 구조로 카피될 수 있다.
툴 박스 레지스터들이 제공될 수 있다. 예를 들어, 물리층에서의 시험가능성 툴-박스 레지스터들은 패턴 생성, 패턴 검사 및 루프백 제어 메커니즘들을 제공할 수 있다. 더 높은 레벨의 애플리케이션들이 마진들을 결정하기 위해 전기적 파라미터들에 따라 이들 레지스터들을 사용할 수 있다. 예를 들어, 테스트에 구축된 인터커넥트가 마진들을 결정하기 위해 이러한 툴-박스를 이용할 수 있다. 송신기 적응을 위해, 이들 레지스터들은 다른 예들 중에서, 이전의 섹션들에서 설명한 특정한 레지스터들과 함께 사용될 수 있다.
일부 구현들에서, HPI는 물리층을 이용하여 신뢰가능성, 이용가능성, 및 서비스가능성(RAS) 능력들을 지원한다. 일 실시예에서, HPI는 소프트웨어를 포함할 수 있는 하나 이상의 층들로 핫 플러그 및 제거(hot plug and remove)를 지원한다. 핫 제거는 링크를 수신거부(quiescing)하는 것을 포함할 수 있고, 초기화 시작 상태/신호가 제거될 에이전트에 대해 클리어될 수 있다. 원격 에이전트(즉, 제거되지 않은 에이전트(예를 들어, 호스트 에이전트))가 저속으로 설정될 수 있고, 그것의 초기화 신호가 또한 클리어될 수 있다. (예를 들어, BLS를 통한) 대역내 리셋이 에이전트들 양자로 하여금 캘리브레이트 리셋 상태(CRS)와 같은 리셋 상태에서 대기하게 할 수 있고; 다른 예들 및 특징들 중에서, 제거될 에이전트는 제거될 수 있다(또는 타겟팅된 핀 리셋에 홀딩될 수 있고, 파워 다운될 수 있다). 실제로, 상기 이벤트들 중 일부는 생략될 수 있으며, 추가의 이벤트들이 추가될 수 있다.
핫 애드(hot add)는 저속으로 디폴트할 수 있는 초기화 속도를 포함할 수 있고, 초기화 신호는 추가될 에이전트에 대해 설정될 수 있다. 소프트웨어는 속도를 저속으로 설정할 수 있고 원격 에이전트에 대한 초기화 신호를 클리어할 수 있다. 링크는 저속 모드에서 나타날 수 있고, 소프트웨어는 동작 속도를 결정할 수 있다. 일부 경우들에서, 이러한 포인트에서 수행되는 리모트(remote)의 PLL 재락킹(relock)은 없다. 동작 속도는 에이전트들 양자에 대해 설정될 수 있고 인에이블이 (이전에 행해지지 않은 경우에) 적응을 위해 설정될 수 있다. 초기화 시작 표시자는 에이전트들 양자에 대해 클리어될 수 있고, 대역내 BLS 리셋이 에이전트 양자들로 하여금 CRS에서 대기하게 할 수 있다. 소프트웨어는 (추가될) 에이전트의 웜 리셋(warm reset)(예를 들어, 타겟팅되거나 셀프-리셋)을 선언할 수 있고, 이것은 PLL로 하여금 재락킹하게 할 수 있다. 소프트웨어는 임의의 공지된 로직에 의해 초기화 시작 신호를 또한 설정할 수 있고, 리모트에 대해 더 설정할 수 있다(따라서, 이것을 수신기 검출 상태(RDS)로 전진시킨다). 소프트웨어는 추가 에이전트의 웜 리셋을 선언해제할 수 있다(따라서, 이것을 RDS로 전진시킨다). 그 후, 링크는 다른 예를 중에서, 동작 속도에서, 송신 링크 상태(TLS)로 (또는 적응 신호가 설정된 경우에는 루프백으로) 초기화할 수 있다. 실제로, 상기 이벤트들 중 일부는 생략될 수 있으며, 추가의 이벤트들이 추가될 수 있다.
데이터 레인 고장 복구가 지원될 수 있다. 일 실시예에서, HPI에서의 링크가 풀 폭(예를 들어, 풀 폭의 절반 미만)으로 자체를 구성함으로써 단일 레인에 대한 하드 에러에 대해 원상복구될 수 있고, 이에 의해, 결점이 있는 레인을 배제할 수 있다. 일례로서, 이 구성은 링크 상태 머신에 의해 행해질 수 있고, 미사용 레인들이 구성 상태에서 턴 오프될 수 있다. 그 결과, 다른 예들 중에서, 플릿(flit)이 더 좁은 폭에 걸쳐 전송될 수 있다.
HPI의 일부 구현들에서, 레인 반전이 일부 링크들에 대해 지원될 수 있다. 레인 반전은 예를 들어, 수신기의 레인들(n/n-1/n-2…)에 접속된 송신기의 레인들(0/1/2...)을 지칭할 수 있다(예를 들어, n은 19 또는 7 등일 수 있다). 레인 반전은 TS 헤더의 필드에서 식별된 바와 같이 수신기에서 검출될 수 있다. 수신기는 논리 레인(0 … n)에 대한 물리층(n ... 0)을 사용함으로써 폴링 상태에서 시작함으로써 레인 반전을 핸들링할 수 있다. 따라서, 레인에 대한 레퍼런스는 논리 레인 번호를 지칭할 수 있다. 따라서, 보드 설계자들은 물리적 또는 전기적 설계를 더욱 효율적으로 레이 다운할 수 있고, HPI는 여기에 설명한 바와 같이, 가상 레인 할당들로 작동할 수 있다. 더욱이, 일 실시예에서, 극성이 반전될 수 있다(즉, 차동 송신기(+/-)가 수신기(-/+)에 접속될 때). 극성은 또한 하나 이상의 TS 헤더 필드들로부터 수신기에서 검출될 수 있고, 일 실시예에서, 폴링 상태에서 핸들링될 수 있다.
도 11을 참조하면, 멀티코어 프로세서를 포함하는 컴퓨팅 시스템에 대한 블록도의 실시예가 도시되어 있다. 프로세서(1100)는 마이크로프로세서, 임베디드 프로세서, 디지털 신호 프로세서(DSP), 네트워크 프로세서, 핸드헬드 프로세서, 애플리케이션 프로세서, 코-프로세서, 시스템 온 칩(SOC), 또는 코드를 실행하기 위한 다른 디바이스와 같은 임의의 프로세서 또는 프로세싱 디바이스를 포함한다. 일 실시예에서, 프로세서(1100)는 비대칭 코어들 또는 대칭 코어들(예시된 실시예)을 포함할 수 있는 적어도 2개의 코어들(코어(1101 및 1102))을 포함한다. 그러나, 프로세서(1100)는 대칭 또는 비대칭일 수 있는 임의의 수의 프로세싱 엘리먼트들을 포함할 수 있다.
일 실시예에서, 프로세싱 엘리먼트는 소프트웨어 스레드를 지원하기 위한 하드웨어 또는 로직을 지칭한다. 하드웨어 프로세싱 엘리먼트들의 예들은: 스레드 유닛, 스레드 슬롯, 스레드, 프로세스 유닛, 컨텍스트, 컨텍스트 유닛, 논리 프로세서, 하드웨어 스레드, 코어, 및/또는 임의의 다른 엘리먼트를 포함하고, 이것은 실행 상태 또는 구조적 상태와 같은 프로세서에 대한 상태를 홀딩할 수 있다. 다시 말해, 일 실시예에서, 프로세싱 엘리먼트는 소프트웨어 스레드, 운영 시스템, 애플리케이션, 또는 다른 코드와 같은 코드와 독립적으로 연관될 수 있는 임의의 하드웨어를 지칭한다. 물리적 프로세서(또는 프로세서 소켓)는 코어들 또는 하드웨어 스레드들과 같은 임의의 수의 다른 프로세싱 엘리먼트들을 잠재적으로 포함하는 집적 회로를 통상적으로 지칭한다.
코어는 독립적인 구조적 상태를 유지할 수 있는 집적 회로상에 위치된 로직을 종종 지칭하고, 여기서, 각 독립적으로 유지된 구조적 상태는 적어도 일부 전용 실행 자원들과 연관된다. 코어들과 반대로, 하드웨어 스레드는 독립적인 구조적 상태를 유지할 수 있는 집적 회로상에 위치된 임의의 로직을 통상적으로 지칭하고, 여기서, 독립적으로 유지된 구조적 상태들은 실행 자원에 대한 액세스를 공유한다. 알 수 있는 바와 같이, 특정한 자원들이 공유되고 다른 자원들이 구조적 상태에 전용될 때, 하드웨어 스레드와 코어의 명칭 사이의 라인이 오버랩한다. 하지만 종종, 코어와 하드웨어 스레드는 운영 시스템에 의해 개별 논리 프로세서들로서 보여지고, 여기서, 운영 시스템은 각 논리 프로세서에 대한 동작들을 개별적으로 스케줄링할 수 있다.
도 11에 예시된 바와 같이, 물리적 프로세서(1100)는 2개의 코어들(코어(1101 및 1102))을 포함한다. 여기서, 코어(1101 및 1102)는 대칭 코어들, 즉, 일부 구성들, 기능적 유닛들, 및/또는 로직을 갖는 코어들로 고려된다. 다른 실시예에서, 코어(1101)는 비순차적(out-of-order) 프로세서 코어를 포함하지만, 코어(1102)는 순차적(in-order) 프로세서 코어를 포함한다. 그러나, 코어들(1101 및 1102)은 네이티브 코어, 소프트웨어 관리된 코어, 네이티브 명령 세트 아키텍처(ISA)를 실행하도록 적응된 코어, 변환된(translated) 명령 세트 아키텍처(ISA)를 실행하도록 적응된 코어, 병행 설계된 코어, 또는 다른 공지된 코어와 같은 임의의 타입의 코어로부터 개별적으로 선택될 수 있다. 이종의 코어 환경(즉, 비대칭 코어들)에서, 이진 변환과 같은 변환의 일부 형태가 코어들 중 하나 또는 양자에 대한 코드를 스케줄링하거나 실행하도록 이용될 수 있다. 또 다른 논의로, 코어(1101)에 예시된 기능적 유닛들이, 코어(1102)에서의 유닛들이 도시된 실시예에서 유사한 방식으로 동작하기 때문에, 더 상세히 후술된다.
도시된 바와 같이, 코어(1101)는 하드웨어 스레드 슬롯들(1101a 및 1101b)로서 또한 지칭될 수 있는 2개의 하드웨어 스레드들(1101a 및 1101b)을 포함한다. 따라서, 일 실시예에서, 운영 시스템과 같은 소프트웨어 엔터티들은 프로세서(1100)를 4개의 개별 프로세서들, 즉, 4개의 소프트웨어 스레드들을 동시에 실행할 수 있는 4개의 논리 프로세서들 또는 프로세싱 엘리먼트들로서 잠재적으로 본다. 위에서 언급한 바와 같이, 제 1 스레드는 아키텍처 상태 레지스터들(1101a)과 연관되고, 제 2 스레드는 아키텍처 상태 레지스터들(1101b)과 연관되고, 제 3 스레드는 아키텍처 상태 레지스터들(1102a)과 연관될 수 있으며, 제 4 스레드는 아키텍처 상태 레지스터들(1102b)과 연관될 수 있다. 여기서, 아키텍처 상태 레지스터들(1101a, 1101b, 1102a, 및 1102b) 각각은 상술한 바와 같이, 프로세싱 엘리먼트들, 스레드 슬롯들, 또는 스레드 유닛들로서 지칭될 수 있다. 예시된 바와 같이, 아키텍처 상태 레지스터들(1101a)은 아키텍처 상태 레지스터들(1101b)에서 복제되어서, 개별 아키텍처 상태들/컨텍스트들이 논리 프로세서(1101a) 및 논리 프로세서(1101b)용으로 저장될 수 있다. 코어(1101)에서, 할당기 및 리네이머(renamer)에서의 명령 포인터들 및 리네이밍(renaming) 로직과 같은 다른 유사한 자원들이 스레드들(1101a 및 1101b)용으로 또한 복제될 수 있다. 재정렬/리타이어먼트 유닛(1135)에서의 리-오더 버퍼들, ILTB(1120), 로딩/저장 버퍼들, 및 큐우들과 같은 일부 자원들이 파티셔닝을 통해 공유될 수 있다. 범용 내부 레지스터들, 페이지-테이블 베이스 레지스터(들), 하위 레벨 데이터-캐시 및 데이터-TLB(1115), 실행 유닛(들)(1140), 및 비순차적 유닛(1135)의 부분들과 같은 다른 자원들이 잠재적으로 전체 공유된다.
프로세서(1100)는 전체 공유되고, 파티셔닝을 통해 공유되거나, 프로세싱 엘리먼트들에/프로세싱 엘리먼트들에 의해 전용될 수 있는 다른 자원들을 종종 포함한다. 도 11에서, 프로세서의 예시적인 논리 유닛들/자원들을 갖는 순수하게 예시적인 프로세서의 실시예가 예시되어 있다. 프로세서가 임의의 이들 기능적 유닛들 뿐만 아니라 도시되지 않은 임의의 다른 공지된 기능적 유닛들, 로직, 또는 펌웨어를 포함할 수 있거나 생략할 수 있다는 것에 유의한다. 예시된 바와 같이, 코어(1101)는 단순화된 대표적인 비순차적(OOO) 프로세서 코어를 포함한다. 그러나, 순차적 프로세서가 상이한 실시예들에서 이용될 수 있다. OOO 코어는 실행되고/취해질 브랜치들을 예측하기 위한 브랜치 타겟 버퍼(1120) 및 명령들에 대한 어드레스 변환 엔트리들을 저장하기 위한 명령-변환 버퍼(I-TLB)(1120)를 포함한다.
코어(1101)는 페치된 엘리먼트들을 디코딩하기 위해 페치 유닛(1120)에 연결된 디코딩 모듈(1125)을 더 포함한다. 일 실시예에서, 페치 로직은 스레드 슬롯들(1101a, 1101b) 각각과 연관된 개별 시퀀서들을 포함한다. 일반적으로, 코어(1101)는 프로세서(1100)상에서 실행가능한 명령들을 정의/특정하는 제 1 ISA와 연관된다. 종종, 제 1 ISA의 일부인 머신 코드 명령들은 수행될 명령 또는 동작을 참조/특정하는 (연산코드(opcode)로서 지칭되는) 명령의 일부를 포함한다. 디코딩 로직(1125)은 그들의 연산코드들로부터의 이들 명령들을 인식하고 제 1 ISA에 의해 정의된 바와 같이 프로세싱을 위해 파이프라인에서 디코딩된 명령들을 패스하는 회로를 포함한다. 예를 들어, 아래에서 더 상세히 논의하는 바와 같이, 일 실시예에서, 디코더(1125)는 트랜잭션 명령과 같은 특정한 명령들을 인식하도록 설계되거나 적응된 로직을 포함한다. 디코더들(1125)에 의한 인식의 결과로서, 아키텍처 또는 코어(1101)는 적절한 명령과 연관된 작업들을 수행하기 위해 특정하고, 사전정의된 액션들을 취한다. 여기에 설명하는 임의의 작업들, 블록들, 동작들, 및 방법들이 단일 또는 다중의 명령들에 응답하여 수행될 수 있고, 이 명령들 중 일부는 새롭거나 오래된 명령들일 수 있다는 것에 유의하는 것이 중요하다. 일 실시예에서, 디코더들(1126)은 동일한 ISA(또는 그것의 서브세트)를 인식한다는 것에 유의한다. 대안으로서, 이종의 코어 환경에서, 디코더들(1126)은 제 2 ISA(제 1 ISA의 서브세트 또는 별개의 ISA)를 인식한다.
일 실시예에서, 할당기 및 리네이머 블록(1130)은 명령 프로세싱 결과들을 저장하기 위한 레지스터 파일들과 같은 자원들을 예약하기 위한 할당기를 포함한다. 그러나, 스레드들(1101a 및 1101b)은 잠재적으로 비순차적 실행이 가능할 수 있고, 여기서, 할당기 및 리네이머 블록(1130)은 명령 결과들을 트래킹하기 위해 재정렬 버퍼들과 같은 다른 자원들을 또한 예약한다. 유닛(1130)은 프로그램/명령 레퍼런스 레지스터들을 프로세서(1100) 내부의 다른 레지스터들로 리네밍하기 위한 레지스터 리네이머를 또한 포함할 수 있다. 재정렬/리타이어먼트 유닛(1135)은 비순차적 실행 및 비순차적으로 실행된 명령들의 나중의 순차적 리타이어먼트를 지원하기 위해 상기 언급한 재정렬 버퍼들, 및 저장 버퍼들과 같은 컴포넌트들을 포함한다.
일 실시예에서, 스케줄러 및 실행 유닛(들) 블록(1140)은 실행 유닛들에 대한 명령들/동작을 스케줄링하기 위한 스케줄러 유닛을 포함한다. 예를 들어, 부동 소수점 명령어(floating point instruction)가 가용 부동 소수점 실행 유닛을 갖는 실행 유닛의 포트에 대해 스케줄링된다. 실행 유닛들과 연관된 레지스터 파일들이 정보 명령 프로세싱 결과들을 저장하기 위해 또한 포함된다. 예시적인 실행 유닛들은 부동 소수점 실행 유닛, 정수 실행 유닛, 점프 실행 유닛, 부하 실행 유닛, 저장 실행 유닛, 및 다른 공지된 실행 유닛들을 포함한다.
하위 레벨 데이터 캐시 및 데이터 변환 버퍼(D-TLB)(1150)가 실행 유닛(들)(1140)에 연결된다. 데이터 캐시는 메모리 코히어런시 상태들에서 잠재적으로 홀딩된 데이터 피연산 함수들과 같은 최근에 사용되고/동작된 엘리먼트들을 저장하기 위한 것이다. D-TLB는 최근의 가상/선형-물리적 어드레스 변환들을 저장하기 위한 것이다. 특정한 예로서, 프로세서는 물리적 메모리를 복수의 가상 페이지들로 분할하기 위한 페이지 테이블 구조를 포함할 수 있다.
여기서, 코어들(1101 및 1102)은 온-칩 인터페이스(1110)와 연관된 제 2 레벨 캐시와 같은 상위 레벨 또는 더 먼(further-out) 캐시에 대한 액세스를 공유한다. 상위 레벨 또는 더 먼은 실행 유닛(들)으로부터 증가하는 또는 더 멀어지는 캐시 레벨들을 지칭한다. 일 실시예에서, 상위 레벨 캐시는 제 2 또는 제 3 레벨 데이터 캐시와 같은 프로세서(1100)에 대한 메모리 계층에서 최종 레벨 데이터 캐시-최종 캐시이다. 그러나, 상위 레벨 캐시는 명령 캐시와 연관될 수 있거나 명령 캐시를 포함할 수 있기 때문에, 이에 제한되지 않는다. 대신에, 트레이스 캐시 - 명령 캐시의 타입 - 가 최근에 디코딩된 트레이스들을 저장하기 위해 디코더(1125) 이후에 연결될 수 있다. 여기서, 명령은 다수의 마이크로명령들(마이크로-동작들)로 디코딩할 수 있는 매크로-명령(즉, 디코더들에 의해 인식된 일반 명령)을 잠재적으로 지칭한다.
도시된 구성에서, 프로세서(1100)는 온-칩 인터페이스 모듈(1110)을 또한 포함한다. 이력적으로, 더 상세히 후술하는 메모리 제어기가 프로세서(1100) 외부의 컴퓨팅 시스템에 포함된다. 이러한 시나리오에서, 온-칩 인터페이스(121)는 시스템 메모리(1175), 칩셋(메모리(1175)에 접속시키기 위한 메모리 제어기 허브 및 주변 디바이스들에 접속시키기 위한 I/O 제어기 허브를 종종 포함함), 메모리 제어기 허브, 노스브리지(northbridge), 또는 다른 집적 회로와 같은 프로세서(1100) 외부의 디바이스들과 통신하기 위한 것이다. 그리고, 이러한 시나리오에서, 버스(1105)가 멀티-드롭(multi-drop) 버스, 점 대 점 인터커넥트, 직렬 인터커넥트, 병렬 버스, 코히어런트(예를 들어, 캐시 코히어런트) 버스, 계층화된 프로토콜 아키텍처, 차동 버스, 및 GTL 버스와 같은 임의의 공지된 인터커넥트를 포함할 수 있다.
메모리(1175)는 프로세서(1100)에 전용될 수 있거나 시스템에서의 다른 디바이스들과 공유될 수 있다. 메모리(1175)의 타입들의 공통적인 예들이 DRAM, SRAM, 비휘발성 메모리(NV 메모리), 및 다른 공지된 저장 디바이스를 포함한다. 디바이스(1180)가 메모리 제어기 허브에 연결된 그래픽 가속기, 프로세서 또는 카드, I/O 제어기 허브에 연결된 데이터 스토리지, 무선 트랜시버, 플래시 디바이스, 오디오 제어기, 네트워크 제어기, 또는 다른 공지된 디바이스를 포함할 수 있다는 것에 유의한다.
그러나, 최근에, 더 많은 로직 및 디바이스들이 SOC와 같은 단일 다이상에 집적됨에 따라, 이들 디바이스들 각각은 프로세서(1100)에 통합될 수 있다. 예를 들어, 일 실시예에서, 메모리 제어기 허브가 프로세서(1100)와 동일한 패키지 및/또는 다이상에 있다. 여기서, 코어의 부분(온-코어 부분)(1110)이 메모리(1175) 또는 그래픽 디바이스(1180)와 같은 다른 디바이스들과 인터페이싱하기 위해 하나 이상의 제어기(들)를 포함한다. 인터커넥트 및 이러한 디바이스들과 인터페이싱하는 제어기들을 포함하는 구성을 종종 온-코어(또는 언-코어 구성)로서 지칭한다. 일례로서, 온-칩 인터페이스(1110)는 온-칩 통신을 위한 링 인터커넥트 및 오프-칩 통신을 위한 고속 직렬 점 대 점 링크(1105)를 포함한다. 그러나, SOC 환경에서, 네트워크 인터페이스들, 코-프로세서들, 메모리(1175), 그래픽 프로세서(1180), 및 임의의 다른 공지된 컴퓨터 디바이스들/인터페이스와 같은 더욱더 많은 디바이스들이 높은 기능성 및 낮은 전력 소모를 갖는 작은 폼 팩터를 제공하기 위해 단일 다이 또는 집적 회로상에 집적될 수 있다.
일 실시예에서, 프로세서(1100)는 여기에 설명한 장치 및 방법들을 지원하거나 이들과 인터페이스하기 위해 애플리케이션 코드(1176)를 컴파일하고, 변환하고, 그리고/또는 최적화하도록 컴파일러, 최적화, 및/또는 변환기 코드(1177)를 실행할 수 있다. 컴파일러는 소스 텍스트/코드를 타겟 텍스트/코드로 변환하기 위해 프로그램 또는 프로그램들의 세트를 종종 포함한다. 일반적으로, 컴파일러를 이용한 프로그램/애플리케이션 코드의 컴필레이션(compilation)은 하이 레벨 프로그래밍 언어 코드를 로우 레벨 기계 또는 어셈블리 언어 코드로 변환하기 위해 다중의 단계들 및 경로들에서 행해진다. 그러나, 단일 경로 컴파일러들이 단순한 컴필레이션을 위해 여전히 이용될 수 있다. 컴파일러는 임의의 공지된 컴필레이션 기법들을 이용할 수 있고, 어휘 분석, 사전 프로세싱, 파싱, 의미 분석, 코드 생성, 코드 변환, 및 코드 최적화와 같은 임의의 공지된 컴파일러 동작들을 수행할 수 있다.
더 큰 컴파일러들은 다중의 단계들을 종종 포함하지만, 이들 단계들은 대부분 종종 2개의 단계들: (1) 프론트-엔드, 즉, 일반적으로, 구문 프로세싱, 의미 프로세싱, 및 일부 변환/최적화가 발생할 수 있는 경우, 및 (2) 백-엔드, 즉, 일반적으로, 분석, 변환들, 최적화들, 및 코드 생성이 발생하는 경우에 포함된다. 일부 컴파일러들은 컴파일러의 프론트-엔드와 백-엔드 사이의 서술(delineation)의 블러링(blurring)을 예시하는 중간을 지칭한다. 그 결과, 삽입, 연관, 생성, 또는 컴파일러의 다른 동작에 대한 레퍼런스는 임의의 상기 언급한 단계들 또는 경로들 뿐만 아니라 컴파일러의 임의의 다른 공지된 단계들 또는 경로들에서 발생할 수 있다. 예시적인 예로서, 컴파일러는 컴필레이션의 프론트-엔드 단계에서의 호들/동작들의 삽입과 같은 동작들, 호들, 함수들 등을 컴필레이션의 하나 이상의 단계들에 잠재적으로 삽입한 후, 호들/동작들을 변환 단계 동안 하위 레벨 코드로 변환한다. 동적 컴필레이션 동안, 컴파일러 코드 또는 동적 최적화 코드는 이러한 동작들/호들을 삽입할 수 있을 뿐만 아니라 런타임 동안 실행을 위해 코드를 최적화할 수 있다는 것에 유의한다. 특정한 예시적인 예로서, 이진 코드(이미 컴파일링된 코드)가 런타임 동안 동적으로 최적화될 수 있다. 여기서, 프로그램 코드는 동적 최적화 코드, 이진 코드, 또는 이들 조합을 포함할 수 있다.
컴파일러와 유사하게, 이진 변환기와 같은 변환기는 코드를 최적화하고 그리고/또는 변환하기 위해 코드를 정적으로 또는 동적으로 변환한다. 따라서, 코드, 애플리케이션 코드, 프로그램 코드, 또는 다른 소프트웨어 환경의 실행에 대한 레퍼런스는: (1) 프로그램 코드를 컴파일링하고, 소프트웨어 구조들을 유지하고, 다른 동작들을 수행하고, 코드를 최적화하거나, 코드를 변환하기 위해 컴파일러 프로그램(들), 최적화 코드 최적화기, 또는 변환기를 동적으로 또는 정적으로 실행하는 것; (2) 최적화되고/컴파일링된 애플리케이션 코드와 같은 동작들/호들을 포함하는 메인 프로그램 코드를 실행하는 것; (3) 소프트웨어 구조들을 유지하고, 다른 소프트웨어 관련 동작들을 수행하거나, 코드를 최적화하기 위해 메인 프로그램 코드와 연관된 라이브러리들과 같은 다른 프로그램 코드를 실행하는 것; 또는 (4) 이들의 조합을 지칭할 수 있다.
이제, 도 12를 참조하면, 멀티코어 프로세서의 실시예의 블록도가 도시되어 있다. 도 12의 실시예에 도시된 바와 같이, 프로세서(1200)는 다중의 도메인들을 포함한다. 구체적으로, 코어 도메인(1230)은 복수의 코어들(1230A-1230N)을 포함하고, 그래픽 도메인(1260)은 미디어 엔진(1265)을 갖는 하나 이상의 그래픽 엔진들을 포함하고, 시스템 에이전트 도메인(1210)이 있다.
다양한 실시예들에서, 시스템 에이전트 도메인(1210)은 전력 제어 이벤트들 및 전력 관리를 핸들링하여, 도메인들(1230 및 1260)의 개별 유닛들(예를 들어, 코어들 및/또는 그래픽 엔진들)이 소정의 유닛에서 발생하는 활성화(또는 비활성화)의 관점에서 적절한 전력 모드/레벨(예를 들어, 활성, 터보, 슬립, 휴지, 딥 슬립, 또는 다른 어드밴스드 구성 전력 인터페이스 등의 상태)에서 동적으로 동작하도록 독립적으로 제어가능하다. 도메인들(1230 및 1260) 각각은 상이한 전압 및/또는 전력에서 동작할 수 있고, 또한, 도메인들내의 개별 유닛들은 독립적인 주파수 및 전압에서 각각 잠재적으로 동작한다. 3개의 도메인들로만 도시되어 있지만, 본 발명의 범위가 이와 관련하여 제한되지 않고 추가의 도메인들이 다른 실시예들에서 존재할 수 있다는 것을 이해하는 것에 유의한다.
도시된 바와 같이, 각 코어(1230)는 다양한 실행 유닛들 및 추가의 프로세싱 엘리먼트들에 부가하여 로우 레벨 캐시들을 더 포함한다. 여기서, 다양한 코어들이 서로에 그리고 최종 레벨 캐시(LLC)의 복수의 유닛들 또는 슬라이스들(1240A-1240N)로 형성되는 공유 캐시 메모리에 연결되고; 이들 LLC들은 스토리지 및 캐시 제어기 기능을 종종 포함하며 코어들 뿐만 아니라 그래픽 엔진 사이에서도 잠재적으로 공유된다.
알 수 있는 바와 같이, 링 인터커넥트(1250)는 코어들을 함께 연결하고, 코어와 LLC 슬라이스 사이의 연결 각각에서 복수의 링 스탑들(1252A-1252N)을 통해, 코어 도메인(1230), 그래픽 도메인(1260), 및 시스템 에이전트 회로(1210) 사이의 인터커넥션을 제공한다. 도 12에서 알 수 있는 바와 같이, 인터커넥트(1250)는 어드레스 정보, 데이터 정보, 확인응답 정보, 및 스누프/무효 정보를 포함하는 다양한 정보를 반송하기 위해 사용된다. 링 인터커넥트가 예시되어 있지만, 임의의 공지된 온-다이 인터커넥트 또는 구조(fabric)가 이용될 수 있다. 예시적인 예로서, 상기 논의한 구조들 중 일부(예를 들어, 다른 온-다이 인터커넥트, 온-칩 시스템 구조(OSF), 어드밴스드 마이크로제어기 버스 아키텍처(AMBA) 인터커넥트, 다차원 메시 구조, 또는 다른 공지된 인터커넥트 아키텍처)가 유사한 방식으로 이용될 수 있다.
더 도시된 바와 같이, 시스템 에이전트 도메인(1210)은 연관된 디스플레이의 제어 및 연관된 디스플레이에 대한 인터페이스를 제공하기 위한 것인 디스플레이 엔진(1212)을 포함한다. 시스템 에이전트 도메인(1210)은 시스템 메모리(예를 들어, 다중의 DIMM들로 구현된 DRAM)에 대한 인터페이스를 제공하는 집적 메모리 제어기(1220); 메모리 코히어런스 동작들을 수행하기 위한 코히어런스 로직(1222)과 같은 다른 유닛들을 포함할 수 있다. 다중의 인터페이스들이 프로세서와 다른 회로 사이의 인터커넥션을 가능하게 하기 위해 존재할 수 있다. 예를 들어, 일 실시예에서, 적어도 하나의 직접 미디어 인터페이스(DMI)(1216) 인터페이스뿐만 아니라 하나 이상의 PCIe(TM) 인터페이스들(1214)이 제공된다. 디스플레이 엔진 및 이들 인터페이스들은 통상적으로 PCIe(TM) 브리지(1218)를 통해 메모리에 연결된다. 또한, 추가의 프로세서들 또는 다른 회로와 같은 다른 에이전트들 사이의 통신을 제공하기 위해, 하나 이상의 다른 인터페이스들이 제공될 수 있다.
이제, 도 13을 참조하면, 대표적인 코어의 블록도; 구체적으로는, 도 12로부터의 코어(1230)와 같은 코어의 백-엔드의 논리 블록들이 도시되어 있다. 일반적으로, 도 13에 도시된 구조는 인커밍 명령들을 페치하고, 다양한 프로세싱(예를 들어, 캐싱, 디코딩, 브랜치 예측 등)을 수행하고, 명령들/동작들을 비순차적(OOO) 엔진(1380)으로 패스하기 위해 사용되는 프론트 엔드 유닛(1370)을 갖는 비순차적 프로세서를 포함한다. OOO 엔진(1380)은 디코딩된 명령들에 대한 추가의 프로세싱을 수행한다.
구체적으로는, 도 13의 실시예에서, 비순차적 엔진(1380)은 하나 이상의 마이크로-명령들 또는 uops의 형태일 수 있는 디코딩된 명령들을 프론트 엔드 유닛(1370)으로부터 수신하고, 이들을 레지스터들 등과 같은 적절한 자원들에 할당하기 위한 할당 유닛(1382)을 포함한다. 다음으로, 명령들은 자원들을 예약하여 이들을 복수의 실행 유닛들(1386A-1386N) 중 하나상에 실행을 위해 스케줄링하는 예약 스테이션(1384)에 제공된다. 예를 들어, 다른 무엇보다도 산술 논리 유닛들(ALUs), 부하 및 저장 유닛들, 벡터 프로세싱 유닛들(VPUs), 부동 소수점 실행 유닛들을 포함하는 다양한 타입들의 실행 유닛들이 존재할 수 있다. 이들 상이한 실행 유닛들로부터의 결과들은 불규칙한 결과들을 취하여 이들을 정확한 프로그램 순서로 리턴하는 재순서화 버퍼(ROB)(1388)에 제공된다.
도 13을 더 참조하면, 프론트 엔드 유닛(1370) 및 비순차적 엔진(1380) 양자가 메모리의 계층의 상이한 레벨들에 연결된다. 구체적으로는, 명령 레벨 캐시(1372), 이 명령 레벨 캐시(1372)가 이어서 연결되는 중간 레벨 캐시(1376), 및 이 중간 레벨 캐시(1376)가 이어서 연결되는 최종 레벨 캐시(1395)가 도시되어 있다. 일 실시예에서, 최종 레벨 캐시(1395)는 온-칩(때때로 언코어(uncore)로서 칭함) 유닛(1390)에서 구현된다. 일례로서, 유닛(1390)은 도 12의 시스템 에이전트(1210)와 유사하다. 상기 논의한 바와 같이, 언코어(1390)는 예시된 실시예에서, ED RAM을 통해 구현되는 시스템 메모리(1399)와 통신한다. 비순차적 엔진(1380) 내의 다양한 실행 유닛들(1386)이 중간 레벨 캐시(1376)와 또한 통신하는 제 1 레벨 캐시(1374)와 통신한다는 것에 또한 유의한다. 추가의 코어들(1330N-2 - 1330N)이 LLC(1395)에 연결될 수 있다는 것에 또한 유의한다. 도 13의 실시예에서는 이러한 하이 레벨에서 도시되어 있지만, 다양한 변경들 및 추가의 컴포넌트들이 존재할 수 있다는 것을 이해할 것이다.
도 14로 가서, 명령을 실행하기 위한 실행 유닛들을 포함하는 프로세서로 형성된 예시적인 컴퓨터 시스템의 블록도가 예시되어 있고, 여기서, 인터커넥트들 중 하나 이상은 본 발명의 일 실시예에 따른 하나 이상의 특징들을 구현한다. 시스템(1400)은 여기에 설명한 실시예에서와 같이, 본 발명에 따른 데이터를 프로세싱하기 위한 알고리즘들을 수행하기 위해 로직을 포함하는 실행 유닛들을 이용하는 프로세서(1402)와 같은 컴포넌트를 포함한다. (다른 마이크로프로세서들, 엔지니어링 워크스테이션들, 셋탑 박스들 등을 포함하는) 다른 시스템들이 또한 사용될 수 있지만, 시스템(1400)은 PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ 및/또는 StrongARM™ 마이크로프로세서들에 기초한 프로세싱 시스템들을 나타낸다. 일 실시예에서, 다른 운영 시스템들(예를 들어, UNIX 및 Linux), 임베디드 소프트웨어, 및/또는 그래픽 사용자 인터페이스들이 또한 사용될 수 있지만, 샘플 시스템(1400)은 Washington, Redmond 소재의 Microsoft Corporation로부터 입수가능한 WINDOWS™ 운영 시스템의 버전을 실행한다. 따라서, 본 발명의 실시예들은 하드웨어 회로와 소프트웨어의 임의의 특정한 조합에 제한되지 않는다.
실시예들은 컴퓨터 시스템들에 제한되지 않는다. 본 발명의 대안의 실시예들이 핸드헬드 디바이스들 및 임베디드 애플리케이션들과 같은 다른 디바이스들에서 사용될 수 있다. 핸드헬드 디바이스들의 일부 예들은 셀룰러 폰들, 인터넷 프로토콜 디바이스들, 디지털 카메라들, 휴대 정보 단말기들(PDAs), 및 핸드헬드 PC들을 포함한다. 임베디드 애플리케이션들은 마이크로 제어기, 디지털 신호 프로세서(DSP), 시스템 온 칩, 네트워크 컴퓨터(NetPC), 셋탑 박스들, 네트워크 허브들, 광역 네트워크(WAN) 스위치들, 또는 적어도 하나의 실시예에 따라 하나 이상의 명령들을 수행할 수 있는 임의의 다른 시스템을 포함할 수 있다.
이러한 예시된 실시예에서, 프로세서(1402)는 적어도 하나의 명령을 수행하기 위한 것인 알고리즘을 구현하기 위한 하나 이상의 실행 유닛들(1408)을 포함한다. 일 실시예는 단일 프로세서 데스크탑 또는 서버 시스템과 관련하여 설명될 수 있지만, 대안의 실시예들이 멀티프로세서 시스템에 포함될 수 있다. 시스템(1400)은 '허브' 시스템 아키텍처의 일례이다. 컴퓨터 시스템(1400)은 데이터 신호들을 프로세싱하기 위한 프로세서(1402)를 포함한다. 하나의 예시적인 예로서, 프로세서(1402)는 예를 들어, 복합 명령 세트 컴퓨터(CISC) 마이크로프로세서, 축소 명령 세트 컴퓨팅(RISC) 마이크로프로세서, 매우 긴 명령 워드(VLIW) 마이크로프로세서, 명령 세트들의 조합을 구현하는 프로세서, 또는 디지털 신호 프로세서와 같은 임의의 다른 프로세서 디바이스를 포함한다. 프로세서(1402)는 시스템(1400)에서의 프로세서(1402)와 다른 컴포넌트들 사이에서 데이터 신호들을 송신하는 프로세서 버스(1410)에 연결된다. 시스템(1400)의 엘리먼트들(예를 들어, 그래픽 가속기(1412), 메모리 제어기 허브(1416), 메모리(1420), I/O 제어기 허브(1424), 무선 트랜시버(1426), 플래시 BIOS(1428), 네트워크 제어기(1434), 오디오 제어기(1436), 직렬 확장 포트(1438), I/O 제어기(1440) 등)은 당업자에게 널리 공지되어 있는 그들의 종래의 기능들을 수행한다.
일 실시예에서, 프로세서(1402)는 레벨 1(L1) 내부 캐시 메모리(1404)를 포함한다. 아키텍처에 따라, 프로세서(1402)는 단일 내부 캐시 또는 다중 레벨들의 내부 캐시들을 가질 수 있다. 다른 실시예들은 특정한 구현 및 필요에 따라 내부 및 외부 캐시들 양자의 조합을 포함한다. 레지스터 파일(1406)은 정수 레지스터들, 부동 소수점 레지스터들, 벡터 레지스터들, 뱅크드(banked) 레지스터들, 새도우 레지스터들, 체크포인트 레지스터들, 상태 레지스터들, 및 명령 포인터 레지스터들을 포함하는 다양한 레지스터들에 상이한 타입들의 데이터를 저장하기 위한 것이다.
정수 및 부동 소수점 동작들을 수행하기 위한 로직을 포함하는 실행 유닛(1408)이 프로세서(1402)에 또한 상주한다. 일 실시예에서, 프로세서(1402)는 마이크로코드를 저장하기 위한 마이크로코드(ucode) ROM을 포함하고, 이것은, 실행될 때, 특정한 매크로명령들에 대한 알고리즘들을 수행하거나 복합 시나리오들을 핸들링하기 위한 것이다. 여기서, 마이크로코드는 프로세서(1402)에 대한 로직 버그들/픽스들을 핸들링하기 위해 잠재적으로 업데이트가능하다. 일 실시예에 있어서, 실행 유닛(1408)은 패킹된 명령 세트(1409)를 핸들링하기 위한 로직을 포함한다. 명령들을 실행하기 위해 연관된 회로에 따라, 범용 프로세서(1402)의 명령 세트에 패킹된 명령 세트(1409)를 포함함으로써, 다수의 멀티미디어 애플리케이션들에 의해 사용된 동작들이 범용 프로세서(1402)에서의 패킹된 데이터를 사용하여 수행될 수 있다. 따라서, 다수의 멀티미디어 애플리케이션들은 패킹된 데이터에 대한 동작들을 수행하기 위해 프로세서의 데이터 버스의 전체 폭을 사용함으로써 더욱 효율적으로 가속되고 실행된다. 이것은 하나 이상의 동작들을 수행하기 위해 프로세서의 데이터 버스를 통해 데이터의 더 작은 단위들, 한번에 하나의 데이터 엘리먼트를 전송할 필요성을 잠재적으로 제거한다.
실행 유닛(1408)의 대안의 실시예들이 마이크로 제어기들, 임베디드 프로세서들, 그래픽 디바이스들, DSP들, 및 다른 타입의 로직 회로들에서 또한 사용될 수 있다. 시스템(1400)은 메모리(1420)를 포함한다. 메모리(1420)는 동적 랜덤 액세스 메모리(DRAM) 디바이스, 정적 랜덤 액세스 메모리(SRAM) 디바이스, 플래시 메모리 디바이스, 또는 다른 메모리 디바이스를 포함한다. 메모리(1420)는 프로세서(1402)에 의해 실행될 데이터 신호들에 의해 표현된 명령들 및/또는 데이터를 저장한다.
본 발명의 임의의 상술한 특징들 또는 양태들은 도 14에 예시된 하나 이상의 인터커넥트에 대해 이용될 수 있다는 것에 유의한다. 예를 들어, 프로세서(1402)의 내부 유닛들을 연결하는, 도시되지 않은 온-다이 인터커넥트(ODI)는 상술한 본 발명의 하나 이상의 양태들을 구현한다. 또는, 본 발명은 프로세서 버스(1410)(예를 들어, 다른 공지된 고성능 컴퓨팅 인터커넥트), 메모리(1420)에 대한 고 대역폭 메모리 경로(1418), 그래픽 가속기(1412)(예를 들어, 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 컴플라이언트 구조)에 대한 점 대 점 링크, 제어기 허브 인터커넥트(1422), 다른 예시된 컴포넌트들을 연결하기 위한 I/O 또는 다른 인터커넥트(예를 들어, USB, PCI, PCIe)와 연관된다. 이러한 컴포넌트들의 일부 예들은 오디오 제어기(1436), 펌웨어 허브(플래시 BIOS)(1428), 무선 트랜스시버(1426), 데이터 스토리지(1424), 사용자 입력 및 키보드 인터페이스들(1442)을 포함하는 레거시 I/O 제어기(1410), 유니버설 시리얼 버스(USB)와 같은 직렬 확장 포트(1438), 및 네트워크 제어기(1434)를 포함한다. 데이터 스토리지 디바이스(1424)는 하드 디스크 드라이브, 플로피 디스크 드라이브, CD-ROM 디바이스, 플래시 메모리 디바이스, 또는 다른 대용량 스토리지 디바이스를 포함할 수 있다.
이제 도 15를 참조하면, 본 발명의 실시예에 따른 제 2 시스템(1500)의 블록도가 도시되어 있다. 도 15에 도시된 바와 같이, 마이크로프로세서 시스템(1500)은 점 대 점 인터커넥트 시스템이고, 점 대 점 인터커넥트(1550)를 통해 연결되는 제 1 프로세서(1570) 및 제 2 프로세서(1580)를 포함한다. 프로세서들(1570 및 1580) 각각은 일부 버전의 프로세서일 수 있다. 일 실시예에서, 도면부호들 1552 및 1554는 고성능 아키텍처와 같은 직렬 점 대 점 코히어런트 인터커넥트 구조의 일부이다. 그 결과, 본 발명은 QPI 아키텍처 내에서 구현될 수 있다.
2개의 프로세서들(1570, 1580)로만 도시되어 있지만, 본 발명의 범위가 이에 제한되지 않는다는 것을 이해해야 한다. 다른 실시예들에서, 하나 이상의 추가의 프로세서들이 소정의 프로세서에 존재할 수 있다.
집적 메모리 제어기 유닛들(1572 및 1582) 각각을 포함하는 프로세서들(1570 및 1580)이 도시되어 있다. 프로세서(1570)는 그것의 버스 제어기 유닛들의 일부로서, 점 대 점(P-P) 인터페이스들(1576 및 1578)을 또한 포함하고; 유사하게는, 제 2 프로세서(1580)는 P-P 인터페이스들(1586 및 1588)을 포함한다. 프로세서들(1570, 1580)은 점 대 점(P-P) 인터페이스 회로들(1578, 1588)을 사용하여 P-P 인터페이스(1550)를 통해 정보를 교환할 수 있다. 도 15에 도시된 바와 같이, IMC들(1572 및 1582)은 프로세서들을 각각의 메모리들, 즉, 메모리(1532) 및 메모리(1534)에 연결하고, 이 메모리들은 각각의 프로세서들에 국부적으로 부착된 메인 메모리의 일부들일 수 있다.
프로세서들(1570, 1580)은 점 대 점 인터페이스 회로들(1576, 1594, 1586, 1598)을 사용하여 개별 P-P 인터페이스들(1552, 1554)을 통해 칩셋(1590)과 정보를 각각 교환한다. 칩셋(1590)은 고성능 그래픽 인터커넥트(1539)에 따라 인터페이스 회로(1592)를 통해 고성능 그래픽 회로(1538)와 정보를 또한 교환한다.
공유 캐시(미도시)가 프로세서에 또는 프로세서들 양자 외부에 포함될 수 있지만; P-P 인터커넥트를 통해 프로세서와 접속될 수 있어서, 프로세서 또는 프로세서 양자의 로컬 캐시 정보가 프로세서가 저전력 모드에 배치되는 경우에 공유된 캐시에 저장될 수 있다.
칩셋(1590)은 인터페이스(1596)를 통해 제 1 버스(1516)에 연결될 수 있다. 일 실시예에서, 제 1 버스(1516)는 주변 컴포넌트 인터커넥트(PCI) 버스, 또는 PCI 익스프레스 버스 또는 다른 3세대 I/O 인터커넥트 버스와 같은 버스일 수 있지만, 본 발명의 범위는 이에 제한되지 않는다.
도 15에 도시된 바와 같이, 다양한 I/O 디바이스들(1514)이 제 1 버스(1516)를 제 2 버스(1520)에 연결하는 버스 브리지(1518)에 따라, 제 1 버스(1516)에 연결된다. 일 실시예에서, 제 2 버스(1520)는 로우 핀 카운트(LPC) 버스를 포함한다. 일 실시예에서, 예를 들어, 키보드 및/또는 마우스(1522), 통신 디바이스들(1527), 및 명령들/코드 및 데이터(1530)를 종종 포함하는 디스크 드라이브 또는 다른 대용량 스토리지 디바이스와 같은 스토리지 유닛(1528)을 포함하는 다양한 디바이스들이 제 2 버스(1520)에 연결된다. 또한, 제 2 버스(1520)에 연결된 오디오 I/O (1524)가 도시되어 있다. 다른 아키텍처들이 가능하고, 여기에서 포함된 컴포넌트들 및 인터커넥트 아키텍처들은 변화한다는 것에 유의한다. 예를 들어, 도 15의 점 대 점 아키텍처 대신에, 시스템은 멀티-드롭 버스 또는 다른 이러한 아키텍처를 구현할 수 있다.
다음으로, 도 16으로 가서, 본 발명에 따른 시스템 온-칩(SOC) 설계의 실시예가 도시되어 있다. 특정한 예시적인 예로서, SOC(1600)는 사용자 장비(UE)에 포함된다. 일 실시예에서, UE는 핸드헬드 폰, 스마트폰, 태블릿, 아주 얇은 노트북, 광대역 어댑터를 갖는 노트북, 또는 임의의 다른 유사한 통신 디바이스들과 같은 통신을 위해 종단 사용자에 의해 사용될 임의의 디바이스를 지칭한다. 종종, UE는 본질적으로 GSM 네트워크에서의 이동국(MS)에 잠재적으로 대응하는 기지국 또는 노드에 접속된다.
여기서, SOC(1600)는 2개의 코어들(1606 및 1607)을 포함한다. 위에서 논의한 바와 유사하게, 코어들(1606 및 1607)은 인텔® 아키텍처 코어™ 기반 프로세서, Advanced Micro Devices, Inc. (AMD) 프로세서, MIPS 기반 프로세서, ARM 기반 프로세서 설계와 같은 명령 세트 아키텍처, 또는 이들의 소비자 뿐만 아니라 이들의 특허권 사용자들 또는 신기술 사용자들에 따를 수 있다. 코어들(1606 및 1607)은 시스템(1600)의 다른 부분들과 통신하기 위해 버스 인터페이스 유닛(1609) 및 L2 캐시(1611)와 연관되는 캐시 제어(1608)에 연결된다. 인터커넥트(1610)는 위에서 논의한 IOSF, AMBA, 또는 다른 인터커넥트와 같은 온-칩 인터커넥트를 포함하고, 이 인터커넥트는 여기에 설명한 하나 이상의 양태들을 구현한다.
인터페이스(1610)는 가입자 아이덴티티 모듈(SIM) 카드와 인터페이스하기 위한 SIM (1630), SOC(1600)를 초기화하고 부팅하기 위해 코어들(1606 및 1607)에 의한 실행을 위해 부팅 코드를 홀딩하기 위한 부팅 ROM(1635), 외부 메모리(예를 들어, DRAM(1660))와 인터페이스하기 위한 SDRAM 제어기(1640), 비휘발성 메모리(예를 들어, 플래시(1665))와 인터페이스하기 위한 플래시 제어기(1645), 입력(예를 들어, 터치 인에이블링된 입력)을 디스플레이하고 수신하기 위해 주변장치들, 비디오 코덱들(1620) 및 비디오 인터페이스(1625)와 인터페이스하기 위한 주변 제어(1650)(예를 들어, 직렬 주변 인터페이스), 그래픽 관련 계산들을 수행하기 위한 GPU(1615) 등과 같은 다른 컴포넌트들에 통신 채널들을 제공한다. 임의의 이들 인터페이스들은 여기에 설명한 본 발명의 양태들을 통합할 수 있다.
또한, 시스템은 블루투스 모듈(1670), 3G 모뎀(1675), GPS(1680), 및 WiFi(1685)와 같은 통신을 위한 주변장치들을 예시한다. 상기 언급한 바와 같이, UE가 통신을 위한 무선장치를 포함한다는 것에 유의한다. 그 결과, 이들 주변 통신 모듈들 모두가 요구되지는 않는다. 그러나, UE의 일부 형태에서, 외부 통신을 위한 무선장치가 포함되어야 한다.
본 발명이 한정된 수의 실시예들에 관하여 설명되었지만, 당업자는 다수의 변형들 및 그로부터의 변경들을 이해할 것이다. 첨부한 청구항들이 본 발명의 실제 사상 및 범위내에 있는 한은 모든 이러한 변형들 및 변경들을 커버하는 것으로 의도된다.
설계는 작성으로부터 시뮬레이션으로 그리고 제조로의 다양한 스테이지들을 통과할 수 있다. 설계를 나타내는 데이터는 다수의 방식으로 설계를 나타낼 수 있다. 먼저, 시뮬레이션들에서 유용하기 때문에, 하드웨어는 하드웨어 기술 언어 또는 다른 기능적 기술 언어를 사용하여 표현될 수 있다. 추가로, 로직 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델이 설계 프로세스의 일부 스테이지들에서 생성될 수 있다. 또한, 일부 스테이지에서, 대부분의 설계들은 하드웨어 모델에서의 다양한 디바이스들의 물리적 배치를 나타내는 데이터의 레벨에 도달한다. 종래의 반도체 제조 기법들이 사용되는 경우에, 하드웨어 모델을 나타내는 데이터는 집적 회로를 생성하기 위해 사용된 마스크들에 대해 상이한 마스크 층들상에 다양한 특징들의 존재 또는 부재를 특정하는 데이터일 수 있다. 설계의 임의의 표현에서, 데이터는 임의의 형태의 머신 판독가능 매체에 저장될 수 있다. 디스크와 같은 메모리 또는 자기 또는 광학 스토리지가 정보를 송신하기 위해 변조되거나 그렇지 않으면 생성된 광학 또는 전기파를 통해 송신된 정보를 저장하기 위한 머신 판독가능 매체일 수 있다. 코드 또는 설계를 나타내거나 반송하는 전기 반송파가 전기 신호의 카피, 버퍼링, 또는 재송신이 수행된 결과 송신될 때, 새로운 카피가 이루어진다. 따라서, 통신 제공자 또는 네트워크 제공자는 본 발명의 실시예들이 기법들을 실시하는, 반송파로 인코딩된 정보와 같은 물건을 유형의 머신 판독가능 매체상에 적어도 일시적으로 저장할 수 있다.
본원에 사용된 바와 같은 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 나타낸다. 일례로, 모듈은 마이크로컨트롤러에 의해 실행되도록 적응된 코드를 저장하는 비-일시적 매체와 연관되는 마이크로컨트롤러와 같은 하드웨어를 포함한다. 그러므로, 일 실시예에서, 모듈에 대한 언급은 비-일시적 매체 상에 유지될 코드를 인식 및/또는 실행하도록 특별하게 구성되는 하드웨어를 나타낸다. 또한, 다른 실시예에서, 모듈의 사용은 소정 동작들을 수행하는 마이크로컨트롤러에 의해 실행되도록 특별하게 적응되는 코드를 포함하는 비-일시적 매체를 나타낸다. 그리고, 추론될 수 있는 바와 같이, 또 다른 실시예에서, (이 예에서의) 용어 모듈은 마이크로컨트롤러 및 비-일시적 매체의 조합을 나타낼 수 있다. 종종, 개별적으로 도시되는 모듈 경계들은 공통적으로 변화하거나 잠재적으로 중복된다. 예를 들어, 제 1 및 제 2 모듈은 일부 독립적 하드웨어, 소프트웨어, 펌웨어를 잠재적으로 유지하면서, 하드웨어, 소프트웨어, 펌웨어, 또는 이의 조합을 공유할 수 있다. 일 실시예에서, 용어 로직의 사용은 트랜지스터들, 레지스터들과 같은 하드웨어, 또는 프로그래밍 가능한 로직 디바이스들과 같은 다른 하드웨어를 포함한다.
일 실시예에서, 구 '하도록 구성된'의 사용은 지정되거나 결정된 태스크를 수행하는 장치, 하드웨어, 로직, 또는 엘리먼트를 배열, 조립, 제조, 구매 제안, 수입 및/또는 설계하는 것을 나타낸다. 이 예에서, 동작하고 있지 않은 장치 또는 이의 엘리먼트는 지정된 태스크를 수행하기 위하여 설계, 연결, 및/또는 상호접속되는 경우에 여전히 지정된 태스크를 수행하도록 구성된다. 순전히 설명적인 예에서, 로직 게이트는 동작 동안 0 또는 1을 제공할 수 있다. 그러나, 클럭에 인에이블 신호를 '제공하도록 구성된' 로직 게이트는 1 또는 0을 제공할 수 있는 모든 잠재적인 로직 게이트를 포함하지는 않는다. 그 대신에, 로직 게이트는 동작 동안 1 또는 0 출력이 클럭을 인에이블하도록 하는 어떤 방식으로 연결된 것이다. 용어 '하도록 구성된'의 사용이 동작을 필요로 하는 것이 아니라, 장치, 하드웨어, 및/또는 엘리먼트의 잠재적인 상태에 초점을 맞춘다는 것을 다시 한번 주의하고, 잠재적인 상태에서, 장치, 하드웨어, 및/또는 엘리먼트는 이들이 동작하고 있을 때 특정 태스크를 수행하도록 설계된다.
또한, 일 실시예에서, 구들 '할 수 있는' 및/또는 '하도록 동작 가능한'의 사용은 지정된 방식으로 장치, 로직, 하드웨어, 및/또는 엘리먼트의 사용을 가능하게 하는 방식으로 설계된 어떤 장치, 로직, 하드웨어, 및/또는 엘리먼트를 나타낸다. 일 실시예에서, '할 수 있는' 또는 '하도록 동작 가능한'의 사용이 장치, 로직, 하드웨어, 및/또는 엘리먼트가 동작하고 있지 않지만, 지정된 방식으로 장치의 사용을 가능하게 하는 방식으로 설계된 경우에 장치, 로직, 하드웨어, 및/또는 엘리먼트의 잠재적인 상태를 나타낸다는 것을 상술된 바와 같이 주의하라.
본원에 사용된 바와 같은 값은 수, 상태, 논리 상태, 또는 이진 논리 상태의 임의의 공지된 표현을 포함한다. 종종, 로직 레벨들, 로직 값들, 또는 논리 값들의 사용은 이진 로직 상태들을 간단하게 표현하는 1들 및 0들이라로 칭해진다. 예를 들어, 1은 하이 로직 레벨을 나타내고, 0은 로우 로직 레벨을 나타낸다. 일 실시예에서, 트랜지스터 또는 플래시 셀과 같은 스토리지 셀은 단일 논리 값 또는 다중 논리 값들을 유지할 수 있다. 그러나, 컴퓨터 시스템들에서의 값들을 다른 표현들이 사용되었다. 예를 들어, 십진수 10은 1010의 이진값 및 16진수 문자 A로서 표현될 수 있다. 그러므로, 값은 컴퓨터 시스템에 유지될 수 있는 정보의 임의의 표현을 포함한다.
더구나, 상태들은 값들 또는 값들의 부분들에 의해 표현될 수 있다. 일례로서, 논리 1과 같은 제 1 값은 디폴트 또는 초기 상태를 나타낼 수 있는 반면, 논리 0과 같은 제 2 값은 논-디폴트 상태(non-default state)를 나타낼 수 있다. 또한, 일 실시예에서, 용어들 리셋 및 세트는 각각 디폴트 및 갱신 값 또는 상태를 나타낸다. 예를 들어, 디폴트 값은 잠재적으로 하이 논리 값, 즉, 리셋을 포함하는 반면, 갱신 값은 잠재적으로 로우 논리 값, 즉, 세트를 포함한다. 값들의 임의의 조합이 임의의 수의 상태들을 나타내는데 사용될 수 있다는 것을 주의하라.
상술된 방법들, 하드웨어, 소프트웨어, 펌웨어, 또는 코드 세트의 실시예들은 프로세싱 엘리먼트에 의해 실행 가능한 머신-액세스 가능하거나, 머신 판독 가능하거나, 컴퓨터 액세스 가능하거나, 컴퓨터 판독 가능한 매체 상에 저장된 명령들 또는 코드를 통하여 구현될 수 있다. 비-일시적 머신-액세스 가능한/판독 가능한 매체는 컴퓨터 또는 전자 시스템과 같은 머신에 의해 판독 가능한 형태로 정보를 제공하는 (즉, 저장 및/또는 송신하는) 임의의 메커니즘을 포함한다. 예를 들어, 비-일시적 머신-액세스 가능한 매체는 정보가 수신될 수 있는 비-일시적 매체들과 구별되도록 의도된 정적 램(SRAM) 또는 동적 램(DRAM)과 같은 RAM(random access memory; ROM(read only memory); 자기 또는 광 저장 매체; 플래시 메모리 디바이스들; 전자 저장 디바이스들; 광 저장 디바이스들; 음향 저장 디바이스들; 일시적 (전파) 신호들(예를 들어, 반송파들, 적외선 신호들, 디지털 신호들)로부터 수신된 정보를 유지하기 위한 다른 형태의 저장 디바이스들; 등을 포함한다.
본 발명의 실시예들을 수행하는 로직을 프로그래밍하는데 사용되는 명령들은 DRAM, 캐시, 플래시 메모리, 또는 다른 스토리지와 같은, 시스템 내의 메모리 내에 저장될 수 있다. 또한, 명령들은 네트워크를 통하여 또는 다른 컴퓨터 판독 가능한 매체들을 경유하여 분배될 수 있다. 따라서, 머신-판독 가능한 매체는 플로피 디스켓들, 광 디스크들, CD-ROM (compact disc read only memory), 자기-광 디스크들, ROM, RAM, 소거 가능하고 프로그래밍 가능한 ROM(EPROM), 전기적으로 소거 가능하고 프로그래밍 가능한 ROM(EEPROM), 자기 또는 광 카드들, 플래시 메모리, 또는 전기, 광, 음향, 또는 다른 형태의 전파 신호들(예를 들어, 반송파들, 적외선 신호들, 디지털 신호들, 등)을 통한 인터넷을 통한 정보의 전송에서 사용되는 유형 머신-판독 가능한 스토리지를 포함하지만, 이에 제한되지 않는, 머신(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장 또는 송신하기 위한 임의의 메커니즘을 포함할 수 있다. 따라서, 컴퓨터-판독 가능한 매체는 머신(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 전자 명령들 또는 정보를 저장 또는 송신하는데 적합한 임의의 타입의 유형 머신-판독 가능한 매체를 포함한다.
본 명세서 전반에 걸쳐 "일 실시에" 또는 "실시예"에 대한 언급은 실시예와 관련하여 설명된 특정 특성, 구조, 또는 특징이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 장소들에서의 구들 "일 실시예에서" 또는 "실시예에서"의 출현들이 반드시 모두 동일한 실시예를 나타내는 것은 아니다. 또한, 특정 피처들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다.
상기의 명세서에서, 상세한 설명이 특정 예시적 실시예들을 참조하여 제공되었다. 그러나, 첨부된 청구항들에 설명된 바와 같은 본 발명의 넓은 사상 및 범위로부터 벗어남이 없이 다양한 변경들 및 변화들이 행해질 수 있다는 것이 분명할 것이다. 따라서, 명세서 및 도면들은 제한적인 의미라기보다는 설명적인 의미로서 간주되어야 한다. 더구나, 상기의 실시예 및 다른 예시적 언어의 사용이 반드시 동일한 실시예 또는 동일한 예를 나타내는 것이 아니라, 잠재적으로 동일한 실시예 뿐만 아니라, 상이하고 별개의 실시예들을 나타낼 수 있다.
Claims (24)
- 물리 계층 로직을 포함하는 프로세서 디바이스로서,
상기 물리 계층 로직은,
상태 머신의 루프백 상태(loopback state)에 진입하고,
선형 피드백 시프트 레지스터(linear feedback shift register)를 사용하여, 의사 난수 비트 시퀀스(pseudo random bit sequence; PRBS)를 포함하는 루프백 패턴을 생성하고,
물리적 접속을 통해 다른 프로세서 디바이스로 상기 루프백 패턴을 송신 - 상기 루프백 패턴의 인스턴스는 또한 상기 다른 프로세서 디바이스에 의해 생성되고, 상기 루프백 패턴은 상기 프로세서 디바이스의 송신기 파라미터의 제 1 설정에 따라 송신됨 - 하고,
상기 다른 프로세서 디바이스에 의해 수신된 상기 루프백 패턴과 상기 다른 프로세서 디바이스에 의해 생성된 상기 루프백 패턴의 인스턴스의 상기 다른 프로세서 디바이스에 의한 비교에 기반하여 생성된 메트릭에 기초하여 상기 프로세서 디바이스의 송신기 파라미터의 제 1 설정을 조정 - 상기 송신기 파라미터의 제 1 설정을 조정하는 것은 상기 프로세서 디바이스의 송신기 파라미터의 제 2 설정을 발생시킴 - 하고,
상기 프로세서 디바이스의 송신기 파라미터의 제 2 설정에 따라 상기 다른 프로세서 디바이스로 상기 루프백 패턴의 다른 인스턴스를 송신하는
프로세서 디바이스.
- 제 1 항에 있어서,
상기 물리 계층 로직은 또한,
상기 다른 프로세서 디바이스에 의해 생성된 상기 루프백 패턴의 인스턴스를 수신하고,
상기 프로세서 디바이스에서 국부적으로 생성된 상기 루프백 패턴과 상기 수신된 루프백 패턴의 인스턴스를 비교하고,
상기 프로세서 디바이스에서 국부적으로 생성된 상기 루프백 패턴과 상기 수신된 루프백 패턴의 인스턴스의 비교에 기초하여 특정 메트릭을 결정하되, 상기 다른 프로세서 디바이스의 송신기 파라미터는 상기 특정 메트릭에 기초하여 조정되는
프로세서 디바이스.
- 제 1 항에 있어서,
상기 루프백 패턴은 EOS(electrical ordered set)를 포함하는
프로세서 디바이스.
- 제 3 항에 있어서,
상기 루프백 패턴은 일련의 트레이닝 시퀀스(training sequence)를 더 포함하는
프로세서 디바이스.
- 제 4 항에 있어서,
상기 일련의 트레이닝 시퀀스는 사전 정의된 개수의 트레이닝 시퀀스를 포함하는
프로세서 디바이스.
- 제 5 항에 있어서,
상기 사전 정의된 개수의 트레이닝 시퀀스는 30 개의 트레이닝 시퀀스를 포함하는
프로세서 디바이스.
- 제 4 항에 있어서,
상기 루프백 패턴은 상기 EOS 및 일련의 트레이닝 시퀀스의 반복 패턴을 포함하는
프로세서 디바이스.
- 제 3 항에 있어서,
상기 EOS는 EIEOS(electrical idle exit ordered set)를 포함하는
프로세서 디바이스.
- 제 8 항에 있어서,
상기 EIEOS는 16 바이트 OS(ordered set)를 포함하고,
상기 EIEOS의 바이트 0, 2, 4, 6, 8, 10, 12 및 14는 값 8'h00을 포함하고,
상기 EIEOS의 바이트 1, 3, 5, 7, 9, 11, 13 및 15는 값 8'hFF을 포함하는
프로세서 디바이스.
- 제 1 항에 있어서,
상기 메트릭은 백채널(a backchannel)을 통해 수신되는
프로세서 디바이스.
- 제 10 항에 있어서,
상기 백채널은 소프트웨어로 구현된 백채널을 포함하는
프로세서 디바이스.
- 제 11 항에 있어서,
상기 소프트웨어로 구현된 백채널은 상기 물리적 접속에 대하여 임베딩된 클럭의 저속 모드(a slow mode)를 이용하는
프로세서 디바이스.
- 장치로서,
제 1 명령 세트를 인식하는 제 1 프로세서와 상기 제 1 명령 세트와 상이한 제 2 명령 세트를 인식하는 제 2 프로세서 사이를 인터페이싱하도록 상기 제 1 프로세서와 연관된 제어기를 포함하되,
상기 제어기는 프로토콜 계층 로직, 링크 계층 로직, 및 물리 계층 로직을 포함하고,
상기 물리 계층 로직은,
인터커넥트를 통해 상기 제 2 프로세서로 수퍼시퀀스(a supersequence)를 전송 - 상기 수퍼시퀀스는 루프백 상태를 나타내고, 상기 루프백 상태에서 송신기 적응이 수행되며, 상기 수퍼시퀀스는 일련의 트레이닝 시퀀스를 포함하고, 상기 일련의 트레이닝 시퀀스 중 하나 이상은 상기 루프백 상태를 나타내는 트레이닝 시퀀스 타입 필드 및 상기 제 1 프로세서가 상기 송신기 적응시에 마스터로서의 역할을 함을 나타내는 루프백 마스터 비트를 포함함 - 하고,
선형 피드백 시프트 레지스터를 사용하여, 의사 난수 비트 시퀀스(PRBS)를 포함하는 루프백 패턴을 생성하고,
상기 인터커넥트를 통해 상기 제 2 프로세서로 상기 루프백 패턴을 송신 - 상기 루프백 패턴은 제 1 송신기 파라미터 설정에 따라 전송됨 - 하고,
상기 제 2 프로세서에서의 상기 루프백 패턴의 수신에 기초하여 상기 제 2 프로세서에서 생성된 메트릭을 시험하고,
상기 메트릭에 기초하여 제 2 송신기 파라미터 설정을 식별하고,
상기 인터커넥트를 통해 상기 제 2 프로세서로 상기 루프백 패턴을 송신하되, 상기 루프백 패턴은 상기 제 2 송신기 파라미터 설정에 따라 전송되는
장치.
- 제 13 항에 있어서,
상기 PRBS는 23 비트 PRBS인
장치.
- 제 14 항에 있어서,
상기 PRBS는 피보나치 선형 피드백 시프트 레지스터(Fibonacci linear feedback shift register; LFSR)를 사용하여 생성되는
장치.
- 제 13 항에 있어서,
상기 PRBS는 제어 수퍼시퀀스를 포함하고 상기 수퍼시퀀스의 적어도 일부는 상기 PRBS를 사용하여 스크램블링되는
장치.
- 제 16 항에 있어서,
상기 수퍼시퀀스는 EIEOS를 포함하는 반복 시퀀스를 포함하고, 상기 시퀀스는 특정 사전정의된 빈도에 따라 반복되는
장치.
- 제 17 항에 있어서,
상기 시퀀스는 상기 EIEOS 이후에 정의된 개수의 트레이닝 시퀀스를 포함하는
장치.
- 인터커넥트를 통해 제 2 프로세서로 수퍼시퀀스를 전송하는 단계 - 상기 수퍼시퀀스는 루프백 상태를 나타내고, 상기 루프백 상태에서 송신기 적응이 수행되며, 상기 수퍼시퀀스는 일련의 트레이닝 시퀀스를 포함하고, 상기 일련의 트레이닝 시퀀스 중 하나 이상은 상기 루프백 상태를 나타내는 트레이닝 시퀀스 타입 필드 및 제 1 프로세서가 상기 송신기 적응시에 마스터로서의 역할을 함을 나타내는 루프백 마스터 비트를 포함함 - 와,
선형 피드백 시프트 레지스터를 사용하여, 의사 난수 비트 시퀀스(PRBS)를 포함하는 루프백 패턴을 생성하는 단계와,
상기 인터커넥트를 통해 상기 제 2 프로세서로 상기 루프백 패턴을 송신하는 단계 - 상기 루프백 패턴은 제 1 송신기 파라미터 설정에 따라 전송됨 - 와,
상기 제 2 프로세서에서의 상기 루프백 패턴의 수신에 기초하여 상기 제 2 프로세서에서 생성된 메트릭을 시험하는 단계와,
상기 메트릭에 기초하여 제 2 송신기 파라미터 설정을 식별하는 단계와,
상기 인터커넥트를 통해 상기 제 2 프로세서로 상기 루프백 패턴을 송신하는 단계 - 상기 루프백 패턴은 상기 제 2 송신기 파라미터 설정에 따라 전송됨 - 를 포함하는
방법.
- 시스템으로서,
제 1 프로세서와,
링크에 의해 상기 제 1 프로세서에 연결된 제 2 프로세서를 포함하되,
상기 제 2 프로세서는 물리 계층 로직을 포함하고,
상기 물리 계층 로직은,
상태 머신의 루프백 상태에 진입하고,
선형 피드백 시프트 레지스터를 사용하여, 의사 난수 비트 시퀀스(PRBS)를 포함하는 루프백 패턴의 제 1 인스턴스를 생성하고,
상기 링크를 통해 상기 제 1 프로세서로부터 상기 루프백 패턴의 제 2 인스턴스를 수신하고,
상기 루프백 패턴의 상기 제 1 인스턴스와 상기 제 2 인스턴스를 비교하고,
상기 루프백 패턴의 상기 제 1 인스턴스와 상기 제 2 인스턴스의 비교에 기초하여 메트릭을 생성하되, 상기 메트릭은 상기 제 1 프로세서의 송신기 파라미터 설정을 적응시키는 데 사용되는
시스템.
- 제 20 항에 있어서,
상기 제 1 프로세서는 상기 PRBS를 생성하는 물리 계층 로직을 포함하는
시스템.
- 제 21 항에 있어서,
상기 제 2 프로세서의 물리 계층 로직은 또한 상기 제 1 프로세서로 상기 루프백 패턴의 제 1 인스턴스를 전송하는
시스템.
- 제 22 항에 있어서,
상기 제 1 프로세서의 물리 계층 로직은 또한,
상기 링크를 통해 상기 제 2 프로세서로부터 상기 루프백 패턴의 제 1 인스턴스를 수신하고,
상기 루프백 패턴의 상기 제 2 인스턴스와 상기 제 1 인스턴스를 비교하고,
상기 루프백 패턴의 상기 제 2 인스턴스와 상기 제 1 인스턴스의 비교에 기초하여 메트릭을 생성하되, 상기 메트릭은 상기 제 2 프로세서의 송신기 파라미터 설정을 적응시키는 데 사용되는
시스템.
- 인터커넥트를 통해 제 2 프로세서로 수퍼시퀀스를 전송하는 수단 - 상기 수퍼시퀀스는 루프백 상태를 나타내고, 상기 루프백 상태에서 송신기 적응이 수행되며, 상기 수퍼시퀀스는 일련의 트레이닝 시퀀스를 포함하고, 상기 일련의 트레이닝 시퀀스 중 하나 이상은 상기 루프백 상태를 나타내는 트레이닝 시퀀스 타입 필드 및 제 1 프로세서가 상기 송신기 적응시에 마스터로서의 역할을 함을 나타내는 루프백 마스터 비트를 포함함 - 과,
선형 피드백 시프트 레지스터를 사용하여, 의사 난수 비트 시퀀스(PRBS)를 포함하는 루프백 패턴을 생성하는 수단과,
상기 인터커넥트를 통해 상기 제 2 프로세서로 상기 루프백 패턴을 송신하는 수단 - 상기 루프백 패턴은 제 1 송신기 파라미터 설정에 따라 전송됨 - 와,
상기 제 2 프로세서에서의 상기 루프백 패턴의 수신에 기초하여 상기 제 2 프로세서에서 생성된 메트릭을 시험하는 수단과,
상기 메트릭에 기초하여 제 2 송신기 파라미터 설정을 식별하는 수단과,
상기 인터커넥트를 통해 상기 제 2 프로세서로 상기 루프백 패턴을 송신하는 수단 - 상기 루프백 패턴은 상기 제 2 송신기 파라미터 설정에 따라 전송됨 - 을 포함하는
시스템.
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/032708 WO2014065879A1 (en) | 2012-10-22 | 2013-03-15 | High performance interconnect physical layer |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177000400A Division KR101754890B1 (ko) | 2012-10-22 | 2013-03-15 | 고성능 인터커넥트 물리 계층 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170081730A true KR20170081730A (ko) | 2017-07-12 |
KR101905055B1 KR101905055B1 (ko) | 2018-10-08 |
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 (11)
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 | 고성능 인터커넥트 코히어런스 프로토콜 |
Family Applications After (15)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
---|---|---|
US11741030B2 (en) | High performance interconnect |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |